{"report_id":"650c4f4f-3eae-4d31-b683-96dc484512a4","version":0,"status":"done","tags":[],"date":"2026-07-27T03:08:11Z","url":{"schema":"https","addr":"7bridgecapital.com/","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":0,"asn":0,"as":"","country":"Japan","country_code":"JP"},"final":{"url":{"schema":"https","addr":"7bridgecapital.com/","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"title":"7Bridge Capital","dom":{"size":69158,"mime_type":"text/html; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (817)","md5":"44c56a003fbae858900b9c5d25d4687c","sha1":"e1cd461ccc2fef0c0e3e3b672a1f4eada54c5e31","sha256":"d228c1d99c726369ff44c2a4428ef4bf340d30c4064bb292163807258abbe968","sha512":"9b1160862c6c7e90d9184fc2b02cdc1e66efd423adf47d2b71128853d1b4f7b27a1ef86dc678d87fffbeaa31d60f9c78b0ea226fb1ef643638b75d9c6f796eec","ssdeep":"384:wKDlcrzzzWuu5RubppxV81CrhuKtO01g8AOP8NNt10ywpnYhAPBuKNOUVALbOh8N:wKDlgnzlyEx+Kb8NNsywpb0KGpxXmqwC","tlshash":"dd63722098f21027428391b6eb39e71aaf91d007da079d56b6fc4798cfc3d929e5366c","dom_hash":"domhashbd8567e5b5f0036c06ef425548c0a147","first_seen":"","last_seen":"","times_seen":0,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"7bridgecapital.com/","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":0,"asn":0,"as":"","country":"Japan","country_code":"JP"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T03:08:11Z","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":1}},"detection":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null},"summary":[{"fqdn":"widget.intercom.io","ip":{"addr":"52.84.50.109","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"domain_registered":"2011-08-15","domain_rank":19213,"first_seen":"2020-07-20T12:16:46Z","last_seen":"2026-07-20T12:36:38.877299Z","alert_count":0,"request_count":1,"received_data":8366,"sent_data":467,"comment":"","tags":null,"fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.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"]},{"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":"www.google.no","ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2001-02-26","domain_rank":92680,"first_seen":"2012-06-26T23:22:08Z","last_seen":"2026-07-26T23:31:59.116255Z","alert_count":0,"request_count":1,"received_data":578,"sent_data":801,"comment":"","tags":null,"fingerprints":null},{"fqdn":"jnn-pa.googleapis.com","ip":{"addr":"172.217.116.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-01-25","domain_rank":1579,"first_seen":"2021-11-16T06:12:21Z","last_seen":"2026-07-20T10:03:51.986275Z","alert_count":0,"request_count":2,"received_data":1197,"sent_data":1220,"comment":"","tags":null,"fingerprints":null},{"fqdn":"www.youtube.com","ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-02-15","domain_rank":286,"first_seen":"2013-04-13T07:43:20Z","last_seen":"2026-07-20T08:23:54.066263Z","alert_count":0,"request_count":8,"received_data":3659799,"sent_data":9885,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"fonts.gstatic.com","ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2008-02-11","domain_rank":0,"first_seen":"2014-04-02T10:51:04Z","last_seen":"2026-07-26T22:19:52.505461Z","alert_count":0,"request_count":2,"received_data":81882,"sent_data":1128,"comment":"","tags":null,"fingerprints":null},{"fqdn":"www.googletagmanager.com","ip":{"addr":"142.250.178.104","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2011-11-11","domain_rank":283,"first_seen":"2012-10-04T01:07:32Z","last_seen":"2026-07-26T22:31:28.839046Z","alert_count":0,"request_count":1,"received_data":551428,"sent_data":481,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"www.gstatic.com","ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2008-02-11","domain_rank":146047,"first_seen":"2012-05-29T15:36:17Z","last_seen":"2026-07-26T23:06:30.068608Z","alert_count":0,"request_count":1,"received_data":1223,"sent_data":510,"comment":"","tags":null,"fingerprints":null},{"fqdn":"i.ytimg.com","ip":{"addr":"142.250.178.118","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2007-12-11","domain_rank":436,"first_seen":"2012-10-03T19:11:04Z","last_seen":"2026-07-20T08:16:40.328836Z","alert_count":0,"request_count":1,"received_data":81522,"sent_data":660,"comment":"","tags":null,"fingerprints":null},{"fqdn":"www.google.com","ip":{"addr":"142.251.156.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"1997-09-15","domain_rank":22,"first_seen":"2015-05-10T13:11:19Z","last_seen":"2026-07-26T22:51:17.688286Z","alert_count":0,"request_count":1,"received_data":63330,"sent_data":497,"comment":"","tags":null,"fingerprints":null},{"fqdn":"js.intercomcdn.com","ip":{"addr":"3.164.240.40","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"domain_registered":"2013-04-25","domain_rank":23692,"first_seen":"2020-02-19T12:43:00Z","last_seen":"2026-07-20T20:30:03.464796Z","alert_count":0,"request_count":2,"received_data":1647078,"sent_data":941,"comment":"","tags":null,"fingerprints":[{"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 S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.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"]},{"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"]}]},{"fqdn":"7bridgecapital.com","ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"domain_registered":"2023-05-11","domain_rank":0,"first_seen":"2026-07-27T02:49:33.36469Z","last_seen":"2026-07-27T02:49:33.36469Z","alert_count":31,"request_count":31,"received_data":2920107,"sent_data":17620,"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":"Stimulus","description":"A modest JavaScript framework for the HTML you already have.","website":"https://stimulusjs.org/","common_platform_enumeration":"","icon":"Stimulus.svg","categories":["JavaScript frameworks"]},{"name":"OneSignal","description":"OneSignal is a customer engagement messaging solution.","website":"https://onesignal.com","common_platform_enumeration":"","icon":"OneSignal.svg","categories":["Marketing automation","A/B Testing"]},{"name":"Google Analytics","description":"Google Analytics is a free web analytics service that tracks and reports website traffic.","website":"https://google.com/analytics","common_platform_enumeration":"","icon":"Google Analytics.svg","categories":["Analytics"]},{"name":"JivoChat","description":"JivoChat is a live chat solution for websites offering customizable web and mobile chat widgets.","website":"https://www.jivosite.com","common_platform_enumeration":"","icon":"JivoChat.png","categories":["Live chat"]},{"name":"PHP:7.3.33","description":"PHP is a general-purpose scripting language used for web development.","website":"https://php.net","common_platform_enumeration":"cpe:2.3:a:php:php:*:*:*:*:*:*:*:*","icon":"PHP.svg","categories":["Programming languages"]},{"name":"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"]}]},{"fqdn":"api-iam.intercom.io","ip":{"addr":"52.72.242.128","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"domain_registered":"2011-08-15","domain_rank":17818,"first_seen":"2018-08-02T22:07:54Z","last_seen":"2026-07-22T18:36:33.363011Z","alert_count":0,"request_count":2,"received_data":2260,"sent_data":1161,"comment":"","tags":null,"fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]}],"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":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"04349b75733f9a34b4021b587765005c","sha1":"6070a8a928fcfb84d659883893b6917e124ca898","sha256":"86d8798669d148db9b83305e628958589e0a0699eb4c5176a49445d3f4b45eb6","sha512":"951d0dbaee27fba356c6b0b3be78b59f088d48efe1d065da056b3c37633ccf9c7ef5932f08f294d5b5411fa7dad37f6cd9f9191bbce94af7c6e76e69eefa4cd3","ssdeep":"","tlshash":"a731a99f53b50938c5c0cffd41af066248f16115ad074c1f7e01eae54928553aeb1afb","size":1536,"data":"","first_seen":"2026-07-25T07:02:54.188598Z","last_seen":"2026-07-27T05:15:37.032657Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f9f2d672039ed5d04839b769ad71e1b0","sha1":"9a86054ee3627014bb2f372f939ff22772a90aa5","sha256":"ef099fcece6eeca3777d0d4a6ac606beb557e08dcd95cf93d0d42a0334329c10","sha512":"52923fb4476412cf751131a95f749956c1a4c83641935695522af4434c3c42047820db169481885cb549e9a6a8c5ffbbc6ac49ad08f246612debd54bd3ee68e8","ssdeep":"","tlshash":"c71000000000000000000000000000c0000c0000000000000000000000000000000000","size":2,"data":"","first_seen":"2023-03-08T15:11:30Z","last_seen":"2026-07-27T05:15:37.030249Z","times_seen":2641,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"6247dd5d2d787d98a0d5e4966146d550","sha1":"51dcfa67e8318f689e1a4589a9def15c6f9a23bd","sha256":"cbb9ab7439a233ff75c44799819b7a7de5fdb18f4e30f0236430bc751530c211","sha512":"bcdab3f3db437167cf01baaa88913e053ea2ac769bf14381fb70e62ae10544ef8f11c327a24e01218936ae2800ed21453d065820542d1222b87117980536c637","ssdeep":"","tlshash":"92b0922e6c926024a05c1116a01c008a6b8cc9bb83c814a862054cb5ea9a0ba03847b0","size":108,"data":"","first_seen":"2023-08-01T01:42:54Z","last_seen":"2026-07-27T05:12:07.259964Z","times_seen":295349,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"e18eb9d0972d240f1a5456179bb6523b","sha1":"65255f106adcff2907a98e295a8e7a38fe2884c4","sha256":"3d68db2b85d5a2915743399f09dc438963f0c50f68b02df05d47a372661603e8","sha512":"bcd5a6c26fa1f7a77f5614a7b28e238701d698cc0c96ac5d03d97628d8622125cd0cfdaf54b1db96ef25320a3fca7584abd343d67bdfb9f272ca3ef8572b360a","ssdeep":"","tlshash":"d4c04c38402080e98659101c7434fb80bd7d3b973163e047da3c621c65f5d017c94b11","size":134,"data":"","first_seen":"2023-03-07T01:02:14Z","last_seen":"2026-07-27T05:12:07.260591Z","times_seen":259182,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"12347d552552b7eb8f1aaf47a5774b81","sha1":"4701684cb61e83493e14555659e2cd07ae9aba3b","sha256":"63b85d3cc0ccb498e52cf8dc76db5119713a85031ef4a8e99edd01e403cb08f4","sha512":"a0b95f6914bf92922a13db3f81f5612e2a360e0b3bb0f6ffabbe41623a044d662e27a216d788399cad99c8ec18c5f98f481e602d672de5b3b97d5da8ec930e4c","ssdeep":"","tlshash":"6b41427ea3a4193b45fa787e21af560620726654e0158c0c813e76846cb1a4b21dbf5f","size":2083,"data":"","first_seen":"2026-05-25T17:49:28.102585Z","last_seen":"2026-07-27T05:12:07.261217Z","times_seen":17154,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"e2f0b7fc319a29e991c3e1e89d17995d","sha1":"b0cea52191c33c8192393f1c1ee89ae8e6ecc7fa","sha256":"c698a24583aee0fbd4ea28948f8ef81cf425571248505f2830b7ac91f314a677","sha512":"1d39939a5219d92323580ed030ac1cfa7676e8cb4bf7112450f409a9ca6e300cedee81dd6edfeb33f458616c9770b7a35a843cd8e14f065313a36f5d831c25af","ssdeep":"768:p1YhGD4UQXHwUPDi7pabaJjFtuYMdmq97SyY/v1M6LnB8Mzh3DRCQgDdHve4sdf:XwQAg/MFzYVM6bB9zhNFf","tlshash":"9b7353240868a8728897a507deb5ff3e9cf806790bc9966dbcb6d75c01ec6610e9f413","size":79545,"data":"","first_seen":"2026-07-27T03:08:23.031351Z","last_seen":"2026-07-27T03:08:23.031351Z","times_seen":1,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"4e226125e429d79c4c368581aa455eee","sha1":"79fa2f523a0ffb2867b44afef3e154c3dc1fb5cc","sha256":"d50c6291d73f2c5ba6b2dc494e09fe070ea0a6c0c4ce3b3c6bc4156ab944dd72","sha512":"06a7818b0a33701b90d20662e1d1a85f90f78af228c2efcf6717d56f93b7502a5cd540d471f113376717d6bd8a8b0b9f198e16a65d6412f3f946dc0e6c87ed28","ssdeep":"","tlshash":"96c08c69d3040b704270a810ab0b3b4f253700228020c845b210a60038d0b078d703e2","size":145,"data":"","first_seen":"2026-02-05T15:28:48.153036Z","last_seen":"2026-07-27T05:12:07.26659Z","times_seen":110753,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"8501e99db1c76b62dea75ad32747a129","sha1":"791537ba64bbd81ed1644b015c4830d897182fb8","sha256":"25289f89e8785a11e468135cfa545b64462e90a61e62ee0bf9fe2dce0898016a","sha512":"d34b3b6f94043e080daf7804d7305efc1bade1433a80d4c6c547ab1325aceda8235ceea8bd99062a7737401ff5d767d46e4d24a972bfa88e9c6b197947041f77","ssdeep":"","tlshash":"7b1135251b715c27806a296232dfb309b8262372583c91dc8a81e365933661bbc3235e","size":1032,"data":"","first_seen":"2026-05-25T17:49:28.106733Z","last_seen":"2026-07-27T05:12:07.269196Z","times_seen":17135,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"173a08c5d6adc5c93611a599bcb2c717","sha1":"735a7301e66ae2c3584357f7bf0bf09eefb62df0","sha256":"271e6368679a21c3416e2a0325db33d6bc445d601c72a49914081b5efd0cdf3f","sha512":"cf15a9aa7e406207f3b85c7ab7d6453fd2351616b4dbb2db767ad854f866ae8256045b8cb74948f44d09fedb6c200c56fa2e2ab83d1ab997f5b0068edee7349b","ssdeep":"","tlshash":"b0800000c08a0030c3200c082008c28038802002a8f2002208200000a0032fca0020ca","size":26,"data":"","first_seen":"2023-03-07T01:02:14Z","last_seen":"2026-07-27T05:12:07.270549Z","times_seen":257240,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"d283d1818e80d7267d72b236fae9738f","sha1":"d767efc3619e7deff9a4c50b7e456bc2e6a954ed","sha256":"b74af2f4e4ad25e4cf95fbb6734cc89812d5f428e233cb333cc010872ba20788","sha512":"98c9bb90b63dc69d03fef7c9f31b78474be36d6eecda99845cb896ec6a4ad3eb19e20a2c65ce622052159ee4dab61cef7640f7e1d1b0574aca1c74db562f1db0","ssdeep":"","tlshash":"9101475c0a057d9ce90688ccc7c6a6655bac9237be003124f82f454dbae3aeb9830967","size":760,"data":"","first_seen":"2026-07-23T08:14:51.856878Z","last_seen":"2026-07-27T05:15:37.016527Z","times_seen":1434,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"385567210550a0c1e2bde47662ed4da8","sha1":"0cd76fc5cdca83a477bcfafc3beaf3bffcd6f781","sha256":"c144e84ef4992554561c2e74eea7bcb13d689fae12a19268e4d8d07266ea66b2","sha512":"c99e8074b2ac53140f93168c7d93c4ef36a085a054ff2c1105638cf2beb1fc257ec36adcb0a095d021242d5f1d7bce230a4d082707abb7c4b1791907bfe6e10e","ssdeep":"192:yzEjQfb/44TmOavb+Nvyv8kYl90sxVjoObVWpO7sTM73gcAKc3Udq6bRXnLNy9nA:+OQfbwKavBv5Y4sxVMOUE7sTMDgcA3X0","tlshash":"6822c80fa38679fcd7d15598b7a36b037cf4821b63082a1d88cba0542cddf19429b9ed","size":10400,"data":"","first_seen":"2026-07-23T08:14:51.857803Z","last_seen":"2026-07-27T05:15:37.017103Z","times_seen":1449,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"31cce1914068185ba0e0323653b9c4a1","sha1":"733ffc803ad9c202832ff9acbd464a5681602a57","sha256":"6f10bf9e2a63c22b710dbe0ee66041bb1639ab3c4ad69333999876e989854b1f","sha512":"81d6c36e55d90964989f6b1773e52a07e2326c5d47a5ccf950f71c8df0a44eae23e51b0c98df9b05cb205838b77349dc47b4340f0e25798bea2c0bef934db931","ssdeep":"","tlshash":"ceb09b0745362d1b5dc55914bc4945b12d41d56503945ebc5540951d3145027645f5e5","size":119,"data":"","first_seen":"2026-07-24T13:38:08.037141Z","last_seen":"2026-07-27T05:16:58.475963Z","times_seen":364,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"d8fb965e7ead2924508e97e5326bd3b1","sha1":"fae376d0cb54d4433b7bdc9aba04690cd6cb5d27","sha256":"57bb660c2fdf4369ff8e37f99b26963dba87c120b80c443ff3d31e030ab3a0f5","sha512":"c03eb6a1004f9dfcd1f960a6ca70a77932794808f72476b276bb16f02d0a1855fb2d93d07aab7c0c040d4b3c0eb4f861a4c1a9368a27e3a6430e425ff6ed2568","ssdeep":"","tlshash":"8e60000c00000000033000fc0000ccf00300000cc003c0c0000000000f0000c3c00000","size":13,"data":"","first_seen":"2023-03-07T01:02:14Z","last_seen":"2026-07-27T05:12:07.279629Z","times_seen":253906,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"74c50ce8022ce22a525a52e256900155","sha1":"f1e96c49b4d2bc2e4d780772a0c6a11c24e04b4c","sha256":"1cf7a9a3fa0db721b77578d52c387ca07529a90f18cd132a07e3eb90e0b56b7a","sha512":"4309efa3d12d3f23e392ef578aab25c1acc7d4ae49e933ba2d13c8e8f588a558af8aac62b8454dc6d41893e6f66f5eab1ff4b80abd582cafbcf1ab6caa91a9c2","ssdeep":"768:P6ScO4y0BzsbJUuywjrMmlh0YScAlbcOSxbay2fDGBUPgOJpLzZshJnJ7jYABipt:qycutrMWh0YLAlKxbV5UP7Zzcn7jYAA","tlshash":"6bf2f192f20cc5ded1182f7ed64d6b3d3a3b14069102e6ea3dc6c2c2b8615b5f42fa95","size":36953,"data":"","first_seen":"2026-07-27T03:08:23.035856Z","last_seen":"2026-07-27T03:08:23.035856Z","times_seen":1,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"e91c9d874ae1e81f19d136bc3ac25103","sha1":"0fd5d9c8c5919cfa7085c8d46c73edf3cd144865","sha256":"5d0aa0b8eb430b26a6de626100b127a18015e0e6c23162696547084c3466e2f6","sha512":"07a6dd9f0101e7021680a3dee6f0c2e3c1af3d779ab4d3fabd9c3e63dcd2128e0080c0079531a70e3b8ea5a2ff4916b1f977262a3eeb4306110a0c47550f3e85","ssdeep":"","tlshash":"81a00273c62ac6570438656055977116e22857608816a00c836a564975e941bfed859a","size":62,"data":"","first_seen":"2023-12-22T18:30:51Z","last_seen":"2026-07-27T03:13:43.249467Z","times_seen":5361,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"908d5ccda6d90aab1d372185818e11c6","sha1":"917ea62d00a3e75d9b87d9a831eb81c24db4441f","sha256":"c9a8ffb3a00f63b1c983f1445fccea9aa101fe4d579aa885f7b1d8ab8e488faa","sha512":"868bb8a092222b3a369569f020417d22a4567faf3da65a85a2fa6492b812e961407d92f563bd02ec1c190d70a200301a36c9575386d779d98659d38ea7ecf40e","ssdeep":"","tlshash":"4cb092c8abc2a0625441958a413eba59f3e4bdc22706247ae052ac1aa4a470e40bf25b","size":118,"data":"","first_seen":"2026-07-25T07:02:54.17899Z","last_seen":"2026-07-27T05:15:37.069521Z","times_seen":433,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"96d66a4d9708fdb6dd5597f3bbc7d624","sha1":"e10a66fa8a836f6f948941262b70e1fc928a446e","sha256":"3cabac574ada654802fc1c4518d870f0791a9a3ac31371677e75fb683e47ce89","sha512":"06c25bc4dba52367cbe19252c1a013e1714a198141d139939944422266aaaed60ea3953c5d0f890a7f9ce7887c5f2a4cbb47173d06f829d50ac33f6f353c015d","ssdeep":"","tlshash":"ebd023cb729c1114574337141eef0448bc64b4d70dbc941d8649581058011ede03aecf","size":195,"data":"","first_seen":"2023-03-08T14:47:45Z","last_seen":"2026-07-27T05:12:07.453985Z","times_seen":207374,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"59ce6228ddf62be7f8aefab2518b85de","sha1":"900ad9ac49e0c31c073d6f6d90b1f4a96cc6fd70","sha256":"8ff18c08cbe337e7e73e5fa2906915a48539b24a7fad20153b95bce97834aaac","sha512":"dc9152b4e22f588df140c33a6635b551d942579445ef185f0fa62fd31dd807fdc9bd23ce42e0a3ff8872a4ca6e9e2942f9f76a727cbb74ea049a513e9a8a309b","ssdeep":"","tlshash":"f1c080447556b1ffd6426482c05f151562550705d9549a06d3a054e02e349899091f2d","size":166,"data":"","first_seen":"2026-07-25T07:02:54.079559Z","last_seen":"2026-07-27T05:15:37.049129Z","times_seen":444,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"b2c033e81e5f5f3d63beba88712ff6ad","sha1":"98f27a412fcc1ba29098c5d60e0577a19d2d2db9","sha256":"bea6c2d06c730cbcc0383d0be45269737019dbd4e40dab4c786861a9c82baa8f","sha512":"6fd35b35256ea2ee673f840880503a5102921fdeafea46e81d91e200506905861eabf9dc5a7640bb37d0645e5a68febbd3a4d15c26db7ed405794c8865f0632c","ssdeep":"","tlshash":"84d0a7049119108386346d5bc282dfafe59184433e01d81b299c49ec16fc957e5b98a5","size":240,"data":"","first_seen":"2026-07-25T07:02:54.154377Z","last_seen":"2026-07-27T05:15:37.05703Z","times_seen":449,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"97893f46e7e13ef37b4c2e0ac60d85ca","sha1":"9c93b4599fe3df75fb3326420f7805a0b572eb98","sha256":"e5b564a7a4059dccb9c20cd678603a6f30c5f3db3af9b421e7f87eb37b030337","sha512":"973fb08ee51bb939b314a5dca3d67e39b8d27d209f5328a9c6fc3e4d7a716b29098e81824ac0c15f9a9a98d070fe09176399f78f1828080c5d9142c9835453f4","ssdeep":"","tlshash":"c710000000000000000000000000000000000000000000000000000000000000000c00","size":2,"data":"","first_seen":"2023-10-13T15:09:37Z","last_seen":"2026-07-27T05:15:37.080977Z","times_seen":1914,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"63a7a928200fbecbaab566892f269b4c","sha1":"c71a636656586ecbfe05e9a5cfd5dd020f6fef61","sha256":"364b13b094815ae8cd606830efaae5f3f5be1e799ec75ec3bb301e1e1444aac4","sha512":"4b94f4c7820ccfc5b0ad57c2b4e2b7aec3aa7ed0e2e7b35d2e1f19b60b070eb4deec3cb87b3169bf47077f0f1c7d5d880950e8cb0f07e3428d524a0489a01ca4","ssdeep":"","tlshash":"8fc08cca89c8da99a01060ce34d3e009a368a9283a83f908d11ed1c46a40ad8e4ad47f","size":158,"data":"","first_seen":"2026-07-25T07:02:54.118953Z","last_seen":"2026-07-27T05:15:37.023582Z","times_seen":433,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c2d0b50c5f3341004fc9eb0180fbedbf","sha1":"a61e5ec146c93a860130cb8da7142fa3d1026a4b","sha256":"9c8b8d8ede5390dffefadd3c93c2cba6763f91fa72ec56525f683cd02667344d","sha512":"862f887b9b3c5580acb5d98a1e3c047e6c07f5fdb963069083a16c1b6a8380f5af6fa58d032da5b3756a57de86cfc388c7c7f96a9dbd5f0e0214407796ce8e38","ssdeep":"","tlshash":"0ad05b40ab0ae553904e3cd7c69ed9251a9155672112c01171216074d4735e487467a1","size":260,"data":"","first_seen":"2026-07-25T07:02:54.164149Z","last_seen":"2026-07-27T05:15:37.057509Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"21af29eb4a2661cde1ec2e23d5bfacd6","sha1":"7d2873f1d5edec0591009cb7c58ac0a8583acbeb","sha256":"355b175012ceed0b8437fb62d9e30416e770998561d266f70691acd8f7022641","sha512":"421539d8e4b532816aa4e443242637ff1e64519e1131ca733adb76acb7defa95088078a829c848c79f3e0c98c5065c0179d868360023547dad53797f81cee06d","ssdeep":"","tlshash":"f1c0122f63c0433609d3a2c4128f2716420991093ed51dae985663b81c3a0476068d25","size":190,"data":"","first_seen":"2026-07-25T07:02:54.080469Z","last_seen":"2026-07-27T05:15:37.060444Z","times_seen":432,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"accb66f0ecd826aac89065990e1da97f","sha1":"3c5339881a1720deed325383e8c3839b7748d254","sha256":"ca68fe3f50735b174e950c34f54dc1f4469d57f94c55f259174e8ee730ea86c4","sha512":"52408933e4d4f3fc5069da409f56adaa898366c9c2b71abc013277b38aba5e7dcac15868ffef3495cc1a64af8cbe1bdd7dcf79691ec2b15ac2eb8a3fa76f3370","ssdeep":"","tlshash":"c710000000000000000000000000000000000000000300000000000000000000300000","size":2,"data":"","first_seen":"2023-03-10T23:00:59Z","last_seen":"2026-07-27T05:15:37.08367Z","times_seen":2774,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9dd4e461268c8034f5c8564e155c67a6","sha1":"11f6ad8ec52a2984abaafd7c3b516503785c2072","sha256":"2d711642b726b04401627ca9fbac32f5c8530fb1903cc4db02258717921a4881","sha512":"a4abd4448c49562d828115d13a1fccea927f52b4d5459297f8b43e42da89238bc13626e43dcb38ddb082488927ec904fb42057443983e88585179d50551afe62","ssdeep":"","tlshash":"c700000000000000c0000030000000000000000000000000c000000000000000000000","size":1,"data":"","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-07-27T05:15:37.00293Z","times_seen":64684,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"a78c5c832247d38a96a1d593f639a2f8","sha1":"5f0015f64b3fa0c1cf637e590267ba3b24120422","sha256":"70af5859b85dd4f8bae68a68aca5782a1795821b1cdd307c803d62f76ed1859f","sha512":"effa7fe575fe0f5f3c2a7d8a377f6bc00f909e1e47ec5a6e93f6f16ffd0bf227e506ee3da11dae805d30c1e01b690cacbfb4e891f973bb5cc1daf9cd7a08daab","ssdeep":"","tlshash":"ab7000083e08a0080a2238a000ab00280022000032808a00808002a00c3200e802280a","size":22,"data":"","first_seen":"2026-07-25T07:02:54.087327Z","last_seen":"2026-07-27T05:15:37.06307Z","times_seen":432,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"49342302f3a1bf591d537268aaa3db97","sha1":"1e27d4dce5d9e78a557d902e2f9255d8f1d567e4","sha256":"217a194b2b1e9e205f2ce02d68f3d346218cf59e0ffb48dfa0f2331ed11232c4","sha512":"4214bf7801e5a15a9af9e231ca3cdb1bd8a05eb81f603da3351e3def46477af2f9a3543cd8f1cc0e19df81303618c01c3b4bd820b4f45d8be5c11a1e0f0e067f","ssdeep":"","tlshash":"59a0120074447c0116112c75c2260584b0511a0b50902401810596c002705895113ce7","size":79,"data":"","first_seen":"2026-07-25T07:02:54.160135Z","last_seen":"2026-07-27T05:15:37.004156Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"bd4496eb0285aba06273987971f6063a","sha1":"8c7d085c9d54b41debd437430b6852de7f898857","sha256":"f2a353ed5469812b863c5fbeb58b4d46b864ba4e20a49f57f9c44c7cda45f46b","sha512":"ac6567c456643fbfb8ccc60e9f3695cd5b6fd80f8699277093e0d9ca898bfe4a0fb6dc848ec48f6255d0a9eb82a6e699cf2f977aa502120cf9b8caa121f6f3fb","ssdeep":"","tlshash":"5580000000c80a2eaa80822333b883a3b8a80aefb032200080a88c28800882800288a8","size":35,"data":"","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-07-27T05:14:35.576533Z","times_seen":110035,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/js/th/b8qXrFAu9PHVrGqMZi2nqKm9TUNPrrzEh40PAl-6oVo.js","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.156.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"443622910d8e7fe75010d4a41f533e07","sha1":"9774250436c6d11ce6978a2f57e620b1b86098c1","sha256":"6fca97ac502ef4f1d5ac6a8c662da7a8a9bd4d434faebcc4878d0f025fbaa15a","sha512":"8ce4ae6fb3b48726d2ac7dd7f8bcfb87df79adfc89c666d8278594d86648345411b78b003967291c4125ebbf78a2af3c7dd7dfdb100899ecea73c8ad8bd8b7a5","ssdeep":"1536:jN7w3cPBzlUowT2cm9iXFHDYzcmNkBfXoLz:RtyokXFHDSH","tlshash":"ce532acf72d2b73559e269e6105f410a62fe940a4c85186fba10f6f42a70d4b903bf7e","size":62519,"data":"","first_seen":"2026-07-25T07:02:54.064057Z","last_seen":"2026-07-27T05:15:36.990389Z","times_seen":469,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"08a4415e9d594ff960030b921d42b91e","sha1":"1f444844b1ca616009c2b0e3564fecc065872b5b","sha256":"27a84712e4b22c415fc544d55cdee82327a829f96d03329457f76ebf9af4dcaa","sha512":"2c9fbb3f289c28bcec752f021d36c3a14b86140bd82942b06c0838931ce5999c1fd0b297b9bdb24aa145fc0244b7f3824c838d26ff7c222ad7663ddfb2c066b4","ssdeep":"","tlshash":"c71000000000000000000000000c0000000030000000000000c0000000000000000000","size":2,"data":"","first_seen":"2023-03-10T01:16:47Z","last_seen":"2026-07-27T05:15:37.086436Z","times_seen":1988,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"834dec29a06aa1149f778035ffade82d","sha1":"cc71686d432a1236d2cab595573ea9498de75463","sha256":"4f36b2c33e2478b4d3ba77a2d6ee222f79ddda0c54ed27e41f3fe2cd7a62d318","sha512":"48c414ee31ecc55c83cb5b925daaaba737aca1cf332cc37dec593c919fcf0175118fefd24df9e42662593abe95e078e5c9a09ac2502aefc496e0df715b6d590a","ssdeep":"","tlshash":"26d02ecbb1c0378ab8a66cf4f2b34a0438a322243b8080e8803a36580fe05c8d903d25","size":280,"data":"","first_seen":"2026-07-25T07:02:54.194101Z","last_seen":"2026-07-27T05:15:37.046421Z","times_seen":437,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"92eb5ffee6ae2fec3ad71c777531578f","sha1":"e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98","sha256":"3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d","sha512":"5267768822ee624d48fce15ec5ca79cbd602cb7f4c2157a516556991f22ef8c7b5ef7b18d1ff41c59370efb0858651d44a936c11b7b144c48fe04df3c6a3e8da","ssdeep":"","tlshash":"c700000000000003c00000300000000000000000000000000003000000000000000000","size":1,"data":"","first_seen":"2023-03-07T01:11:47Z","last_seen":"2026-07-27T05:12:07.343569Z","times_seen":80662,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"1750e9b76f54961545a1edf5b6bd9a5f","sha1":"9bdfc833f7e055821fae1f547e0abec9ee9b9718","sha256":"358ccf6ccf547b6106792de57295c558115f2ba6f5764c19a638c992bf90aeb4","sha512":"62c097d4b1fa74b247955132f63bb4b06f2ff9fb5074d68382f0f7d3233f82bf1a62b3153497ea23bb745f3c9ecb3c50602bc9484759a6b8b74939944750dcae","ssdeep":"","tlshash":"0fe07db0258123422174df79f0f3120430e172c67e48ac8f51256b429e388d1142353b","size":316,"data":"","first_seen":"2026-07-25T07:02:54.202304Z","last_seen":"2026-07-27T05:15:37.003465Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"da3f5f8741b5de980662d730df73f871","sha1":"896f82c86f77ec8f6696a162f44345d84f4b302e","sha256":"da48bc39846fb2dfb11eac0208ab64b9f8b2f12fc89e9832b61d63d68935138b","sha512":"4c5197263ad82b11b501108b4da2d7f9ed721fff7146f15e294451be9611cbce7e079ec7a8204d358379003f85061b186fa8f851e271c05119b44ce405066b04","ssdeep":"","tlshash":"84a022203e20ee02b3232ace023b2c08f2088002c0000c0fc03ef3c00330bc223028fa","size":78,"data":"","first_seen":"2026-07-25T07:02:54.111523Z","last_seen":"2026-07-27T05:15:37.072519Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"bfb05b64541b797fbc56b1ceab0d0707","sha1":"ff5eea3714de9fa65254f3722ee63ff9718b4cd8","sha256":"9a3032ec6f3b482ef8f786196f5fec31ee55139f79eec40f1ef9e5d487f68c37","sha512":"ef42e661cb08389b03f24f5e884fc11c24a95d58110d3bd963a916d449cc80e06554ef4863d18aa0b14c12c0004f03f3b244442f4adcc9cd895ea236dd283ff7","ssdeep":"","tlshash":"687000083c282000a22238e0080b2008002308080080a80000c000820c3200e203280a","size":22,"data":"","first_seen":"2026-07-25T07:02:54.15521Z","last_seen":"2026-07-27T05:15:37.033143Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f3c46dd141ed0afa02a1b3049bab0729","sha1":"0f9b6e8412fa13b27e3af2816a112bb28a04a735","sha256":"4962a69b03ce9dced7bd2f588eead880ca97dc93d3fd354fc911d8b6b815d11b","sha512":"006dc0d7d1ead7ff5d5cf02082d1aaebb3dfc2a9a046c9d60bddadfcb9e0ac4702e9868970fb61a9af4bf366d76a03d09a264adf462e9414296dd0d749c136f3","ssdeep":"","tlshash":"9ac08c090b0dd3a6038a6a94610a43aba15284cabe615c28ab40e0c2e68e6054066a1e","size":151,"data":"","first_seen":"2026-07-25T07:02:54.100897Z","last_seen":"2026-07-27T05:15:37.02248Z","times_seen":429,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"introduction_type":"scriptElement","is_inline":true,"md5":"89b789a9f8847e5121b485c26371e785","sha1":"5078681955585ff147d04dd7bf851fd7c58064b5","sha256":"8bd237d850c376e34f24724783d432477fc74c78d6c4f832ad6e73c06db6a9a4","sha512":"0ce11b3e46bf6e22fd033ba439f728158a45babbbeaa3d86def4c3470d1a493607065183fcb33625194df6782ce41991c529390aafa723498d8c706c53d9af57","ssdeep":"","tlshash":"cdf0e50f25f5da90102b382cc95fa44571b2831304e6ee103fed46e0aff022e99b2e46","size":608,"data":"","first_seen":"2026-07-27T02:49:41.073088Z","last_seen":"2026-07-27T03:09:30.426884Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"introduction_type":"scriptElement","is_inline":true,"md5":"a999dcdbd3aea5e4e855d36e95b6f58f","sha1":"dc985086ecd67eac1fd0dc013baa6f6e3062fc7a","sha256":"1c2684e77da91db50fc0a926ab3036b9eea0b8ef6cf442181328878233891f1c","sha512":"03996d0632ed518ed2a061ac58a71442fe17977c2df22c211e147ad5fa3b8116a62f7a702548d268fae15d9d2ac0e3c3b75a013f3aa90d0902f42a2a6ea30e96","ssdeep":"","tlshash":"ae21b15b5dd7106c5a27b0394b7fb1092a36508b2484cc00be4cd54c9f959b54b7dbed","size":1433,"data":"","first_seen":"2026-07-27T02:49:41.074152Z","last_seen":"2026-07-27T03:09:30.427696Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"introduction_type":"scriptElement","is_inline":true,"md5":"eddde79ac8c8ffb87f0a4d0911bde3c1","sha1":"0f096314f8ca449fe2feba5eee4706089d18cd54","sha256":"812cc1de7980c002b594a6b1a1cf97c50e6e7e941212126b646a5dd6e8cc6d6a","sha512":"7fa47efef3ff2c1c87b32380f33e91a21672270056d81992e2426a668eb4fdb99a7397515ee61c54e425230b77d080c40b4b3e5d6947e3fa341f5d4e0f1ec943","ssdeep":"","tlshash":"40c08c8c269b0cb150a73a464b7fa100b015611360901d31381f6344cf21e27d754a84","size":191,"data":"","first_seen":"2026-07-27T02:49:41.075159Z","last_seen":"2026-07-27T03:09:30.428496Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"introduction_type":"scriptElement","is_inline":true,"md5":"6b57fb2010cd7aadbaf17ee61654e9cc","sha1":"571850a9c0446bc5bc33d2483ed5e555496a4af1","sha256":"706d681ba4dcf5f6be4a60b27e598a076e93706ff8e30b073ee8f66a28b18a55","sha512":"d554bd148b98f0e0b38045583e72c9859dda07d4fa7b72e67c7d76938ae86b49935257f243fd25663870d0f070e23c85d957912eea6baf1cda51b755c9a8044f","ssdeep":"","tlshash":"6b119c0e688f107c22c3b03ac77e8406235ce2577768d56ab90d8ec28f125d6eda0a9d","size":958,"data":"","first_seen":"2026-07-27T02:49:41.076205Z","last_seen":"2026-07-27T03:09:30.429287Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"introduction_type":"scriptElement","is_inline":true,"md5":"af9caae9922c41b3f0f70d3a29063615","sha1":"8ea7c3842e0d5c2ea4ef3fad28705a08eb60c217","sha256":"378af856c21a03fa903836cae40321d8e8409f2ae999eeef4f1b35fcf8e997c2","sha512":"d6d9f4ccc700bf636a0d7bbbb7ab2b37dfb26c7c3cd5b0caf27a32c394d6c54b3eb0bcaedead0eda4f526323d90507aec7b5fb37943ca7390c5c48d26c40f194","ssdeep":"","tlshash":"3001cc742f760821f212c43f136bb0106890e2afbb1dfc113c95ec6adfd0e9250766a2","size":806,"data":"","first_seen":"2026-07-27T02:49:41.077207Z","last_seen":"2026-07-27T03:09:30.430113Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"introduction_type":"scriptElement","is_inline":true,"md5":"8fef39e67fddd745470ba32cebeb43aa","sha1":"6e29e84e9cc07e25e2c1297bfa18ff8928b4155d","sha256":"7850a8596de5eaa35f5a20dc5c98e3095292587031ff1c452374dac73b2c8b99","sha512":"abf0a1acb781a18d1c04c00bf9f44260e2a9010df7dafe1649848febc48800471b5a28fd8c9ec0b6da519b03fce56408d92f2f946ac565a00d5bd0a9263cb275","ssdeep":"","tlshash":"8c31c069ab534496b4ffe2026e56211c21e9f077da83cd15fe4c56a00f47f29e11cab4","size":1525,"data":"","first_seen":"2026-07-27T02:49:41.078169Z","last_seen":"2026-07-27T03:09:30.430906Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"d3789a3f91258fcf605452196e19c21c","sha1":"f468a49ed14aa61cc199cac1759cb76160b266ff","sha256":"fa37be71bea1abe989546295b5d10f6a34598aa7ce90cfed1f870131e8e30c9e","sha512":"b93e82af199ae63f26b48b71e93f5f5c7be0c5efe33aad59dcd1109142d79d988b24ba63c4c0a5731a1d2a852fe817da47371412bc5cc8579078e4c5eebb0669","ssdeep":"","tlshash":"c710000000000000000000000000000000000000000000c000000000c0000000000000","size":2,"data":"","first_seen":"2023-03-07T21:37:56Z","last_seen":"2026-07-27T05:15:37.07594Z","times_seen":837,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9485c8ae181348af0537aeb02376d77f","sha1":"67b0b7f7f914e89f6e0c6651049d5e58063eaf96","sha256":"77724e449ce352c6bb493ce82b91d7ed6b93156928d311f67cc1c57481e6c2f9","sha512":"037ffde473310d2491e664f6fba33b747a956c19bf99420da07bbde6ffbe4ca768da17177bb1643630ff6ae1448ffe79ce1613d08dbea8d610d7d51161950d1b","ssdeep":"","tlshash":"c2d02b8eec5b8595f966e9ca40766d29e0589802ec789cc11527c55261d4a195832cb3","size":266,"data":"","first_seen":"2026-07-25T07:02:54.116193Z","last_seen":"2026-07-27T05:15:37.004893Z","times_seen":432,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"56d477e14d3afb1ffba04e085eba7834","sha1":"640b4d7232aba3b4b3f243b10228f7bd6bb27aff","sha256":"21220562832a31cb34cf0cc2cfcf17728feac102affc17e2e97d7e405c224f06","sha512":"389a61bfa0b427630b58c48dd7c72c4206a76c88e6743d446674a84c0cddfdd12b8fa66086bdf5c900937cc837841b85f9c2f47f6a03237c552af2c5766ec936","ssdeep":"","tlshash":"82d02bfb5811c06ffc27059213335dc910d2f20dd5993f9ab6b2b1a4392000c70d54c7","size":283,"data":"","first_seen":"2026-07-25T07:02:54.126205Z","last_seen":"2026-07-27T05:15:37.086974Z","times_seen":432,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f0e976b756b6afe7f40bca206a2d7150","sha1":"db9bee9a7bba93a60330ec5ef1334d9c164fcd56","sha256":"029b84af88c5d6ced58173997a15fa47011e198e5449027d87e2f7b871f332c2","sha512":"486596b8b7d88539b3147ed55749794ab08962047191f33ff9915fd4e4a8a9a24bc164c0d44f24357b6e9dd72d1ccd88f981aa0cf2c7df585a83000d4baccc9f","ssdeep":"","tlshash":"3f8000883cbab30e8222283223ab200aa2ae28c232088e00a00080803a3003a8032c0c","size":29,"data":"","first_seen":"2023-03-07T01:02:14Z","last_seen":"2026-07-27T05:12:07.397554Z","times_seen":245643,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"a931635074a5017da74948b67e16c76f","sha1":"a6799582ad16a7c1ab8221c166268130df6691d2","sha256":"1fb437ac78114eda813a7c4d5771b6d3aa34908a5ca3b743d5eb5c79088cf82c","sha512":"7c96bb515bdba9ad60854b433d24e77982a321dd7ca71599fd8f79acee580802f56829a5dbb7f64932a51ad50d18a9438251a6ad8127ad2b2e332811033d2c7b","ssdeep":"","tlshash":"a5d023cc3941f262d06274b9041704dfd173384a1e1cdf4184154875667c5d9407f4c4","size":206,"data":"","first_seen":"2023-03-07T01:02:15Z","last_seen":"2026-07-27T05:12:07.298065Z","times_seen":207341,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"61e9c06ea9a85a5088a499df6458d276","sha1":"e2415cb7f63df0c9de23362326ad3c37a9adfc96","sha256":"fcb5f40df9be6bae66c1d77a6c15968866a9e6cbd7314ca432b019d17392f6f4","sha512":"61037724a2fb00a12fa8a53ada233f54ff7fc6ee02048e579b83a127ce79fc03906c35b5307beb18a3cf5021fe031ae6587448d4d60a082d73252fe2e2f4ae7f","ssdeep":"","tlshash":"c700000000000000c00000300000000000c00000000000000000000000000000000000","size":1,"data":"","first_seen":"2023-03-07T01:02:14Z","last_seen":"2026-07-27T05:12:07.404438Z","times_seen":79691,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"22fb59e0e0cdacc10fb7f1ad105606ed","sha1":"c6b3878cffd44663b546b12c26af899b037a4a53","sha256":"34469a749ff4f676f6d6a4d95bd641b9f9078810647dd3f14ac9e2aca1045513","sha512":"c39750c2a29c1873c338aba8a3bbd078bec533900b4ed5e1e46a17a8daf2b90c1999a8ea60da594bc411f49f60bb33f525f29d47990d0d6575b9231ba0ccf370","ssdeep":"","tlshash":"65d097c46bbb982c4984ce2b403311319049a21c8e080c50b230fb3bf7a075b243b0c1","size":229,"data":"","first_seen":"2026-07-25T07:02:54.072496Z","last_seen":"2026-07-27T05:15:37.064509Z","times_seen":437,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"85667210a9ca3aaa44be54eb3274f280","sha1":"f69565032aaeb8d28ca4ca0daea8784dc01baf70","sha256":"0ba3ef12c7fadaef9ac42ea9cd42db694e3a5d2f64c6d21c2690ec7649bdad85","sha512":"e04c814490d64e8424e9cd097247cc4ce5ef616c21619b8b6f35b81cc47ac3f4504d94e7ec0a8bc45c8d5fd0deea6427a7c1c5d34c0841b6ec1d9e0b785c0570","ssdeep":"","tlshash":"23a0120074447c0116112c75c2260544b0511a0b50902401810996c002705890113ce7","size":79,"data":"","first_seen":"2026-07-25T07:02:54.208693Z","last_seen":"2026-07-27T05:15:37.070706Z","times_seen":439,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9a2a6b16da447c1060cd4a5c09dc8a1c","sha1":"fbe9678c38ea75b2e7379a3bc99ec154f8339330","sha256":"5e778835b3f9e816a452ab0f9acd9459861522e6eb9f61f1c9e60fdc8d9e64cc","sha512":"0808cbb678605f7f165e7bd536f3c2f0c25dc06211624161d1209d80074d262e63db1c4ce941f6da3374566ed577862582f561ae623f28000c61877b25a7c317","ssdeep":"","tlshash":"c4e0c274241450de4a47304a908d7fcc791a86ca3d483b6aa09180d1a72cb9b636dc38","size":301,"data":"","first_seen":"2026-07-25T07:02:54.177153Z","last_seen":"2026-07-27T05:15:37.042857Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"4aae7fd3c815b1cfa3660cb3227a214c","sha1":"4531c0c13ac8462f9dd8f0dff0e13b1c3e150bcd","sha256":"cca00c516ba05df351915a75df4db57659d685c5af3622cedbba3c6b626af2a9","sha512":"c2f67d5e011e7ad703ab55ea89f91fff91b4245f5294cb73ded819757eb158102fd038f24b175c1f6eae717100cd63d9e9529cc90d124cd90a26ab4a1f650d4e","ssdeep":"","tlshash":"4d50003c30003000c0c0003000000000303c000cc0c000c0003c03c0c00f0c00000000","size":11,"data":"","first_seen":"2026-02-18T03:26:52.257023Z","last_seen":"2026-07-27T05:12:07.492664Z","times_seen":82369,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"51792c67c588ce8139b246f015ed8a85","sha1":"d3148f014e0f4790ff65a8004585d17ed319833f","sha256":"6f70d853ba1dee4fc189490cfe4b6b1ab59f5853344cd85576bd2a4af2b506fe","sha512":"963ef7a25d5437d1a045dedfe34afbab41db4c620e4378606ca3b7b0c4219e51fda11b9b0e0b761093eda33aeac0e532a27b3f1a1ee110c13ba1433cdb28c067","ssdeep":"","tlshash":"cb60003f03000003300003ff0c0cf30030fc0c0c000c033c0c003330000300000c0000","size":15,"data":"","first_seen":"2024-07-23T18:45:20Z","last_seen":"2026-07-27T05:12:07.546734Z","times_seen":175965,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"115b3cd49c739440787a505ab2ee1fa0","sha1":"3f1da71d9f392fd05f503b9c37140524df25c91b","sha256":"b36d3c52f42742303976f7fa86f396d248d2fe7b0f3b3e18c092577e621a0e0c","sha512":"78e25ce66f42fd5b77614cbad4c7ffc671997f0f317882289e9da969621935ea0110b6910e2b693a99736a7403f1e43f54c02d76485d8fd7fe72bda1265d4a6c","ssdeep":"","tlshash":"c710000000000000000000000000000000000000000000c00000000300000000000000","size":2,"data":"","first_seen":"2023-03-10T22:24:54Z","last_seen":"2026-07-27T05:15:37.061891Z","times_seen":1804,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"79563e90630af3525dff01b6638b0886","sha1":"68d2ad23b5e1102797ff78d3d0d55d97ba75c268","sha256":"9e507a6dfbf98393bbf23d487af7f1c5b2e8ea0635e3f0cddeac3a9a090a3dbe","sha512":"c11c66b5e92dce18ce4e6c7c9d956d09afd5a734c046f8fe645653931de1db0ef639567724e65e48f05bd922a78fa1547c86996fd5de1a62573c4cc2f46d2300","ssdeep":"","tlshash":"c710000000000000000000000000000000003000300000000000000003000000000000","size":2,"data":"","first_seen":"2023-03-11T15:36:04Z","last_seen":"2026-07-27T05:15:37.077069Z","times_seen":898,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c4ca4238a0b923820dcc509a6f75849b","sha1":"356a192b7913b04c54574d18c28d46e6395428ab","sha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","sha512":"4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a","ssdeep":"","tlshash":"c70000000c000000c00000300000000000000000000000000000000000000000000030","size":1,"data":"","first_seen":"2023-03-07T01:10:09Z","last_seen":"2026-07-27T05:12:07.408806Z","times_seen":133984,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"13d618642764d2b6960367a857576c87","sha1":"8a7893b1545d1dfa2ebee469c2ee8ddd0a0c0b7d","sha256":"45428e1193fa8edd3f86d91bf4fb01b486cd6c1290d013f948c732adf7fb8875","sha512":"ae679fdd05e738532172c82f852d19e014f49f54e805eb49694cf0849c98278864afe9d8cbf2d19fa29c5fa73aa5143aeb3d012d841915597b5af30af9c77ba3","ssdeep":"","tlshash":"707000083c08a000822238a000ab00280022000022808a8080a000a00c3280a800288a","size":22,"data":"","first_seen":"2026-07-25T07:02:54.077156Z","last_seen":"2026-07-27T05:15:37.088571Z","times_seen":436,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"bd0bcbfeaf7651b34de78f94db256e9a","sha1":"d5d4133262a2d4536708007fd3d58db921c73a6b","sha256":"7c4c4985dc2c7739b2b78d4608b572981a8394702ca5cef9773fe555ff0eafd3","sha512":"4d4b6a8f7b6d27a5d6e269d4b9a804986a2fdddd08cc47ed5cb726e993749117dafe9300281cf36c5065dd89063cd7c09e39e2851bb7626184be44b33d3237a8","ssdeep":"","tlshash":"faa022203e00ee02a32328cc023b2c08f20a8002c0000c8fc03ef3c00330bc023028fa","size":77,"data":"","first_seen":"2026-07-25T07:02:54.183264Z","last_seen":"2026-07-27T05:15:37.039968Z","times_seen":438,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"053fbccf1e17390f7a9adc3521ed7696","sha1":"e3d25d9c529549b5e8c066fe1e3390a03cff30a3","sha256":"5bebf4b6615a6aa6aea024a979423e3c35ed65dca89cec752afe3c5fa0262789","sha512":"8df25f0190b67780e3fe3549184050dd91e162ba06815e92e63f89fe1f07f1259f9ee294a4efde8b498c4c99dd2300947201d7859c913c85021d7b84107588cf","ssdeep":"","tlshash":"8890028430426c102202d0612a9a69b6d175448020199164f05510443921059505bd0c","size":49,"data":"","first_seen":"2026-07-25T07:02:54.198206Z","last_seen":"2026-07-27T05:15:37.07755Z","times_seen":435,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"js.intercomcdn.com/vendor.f6b64953.js","fqdn":"js.intercomcdn.com","domain":"intercomcdn.com","tld":"com"},"ip":{"addr":"3.164.240.40","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"4d9436d68f9ee1f2389a2de10ddbbdd3","sha1":"a472e4820eef593bcf64720e8c11175598a34036","sha256":"94b057d90fbc8cc546a4d555f636fd8ff6a9013c892081a180e2b9023dba9e49","sha512":"fd612974dcbff1a442af50f95441ee1f520eb30b9d8af4687fa2c1f15e077262bef5072b504e3a0144653a4c7170178ba0c9eb3fbbf431a67d315caf82f444d8","ssdeep":"6144:gO9oPLOHjCCmnwIRTyphvMFWfwuTqhhOA4OpF:gOqPLOHjCrwIRTyplMFWfwT3","tlshash":"88843a9db691f47107a712f6807f140bf3ba1969344c4450faa9c8dd28f998d923bf2e","size":397454,"data":"","first_seen":"2026-07-14T15:01:34.133346Z","last_seen":"2026-07-27T05:14:04.720549Z","times_seen":1648,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget.intercom.io/widget/p60ru8yf","fqdn":"widget.intercom.io","domain":"intercom.io","tld":"io"},"ip":{"addr":"52.84.50.109","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"64323637c5757fe2bdc37bc1697c131b","sha1":"17615e72f6a5c035e9d59f979f1d74472a2839d1","sha256":"8891fe40795928600c2b6a8981fe3f0cb1c4aea8950005aa4a01fb1c00f769bb","sha512":"582c9429172ba70962ec855b69346da532af2a1e9018380eec47ca06694e19bc5efbd5a7007f034ba6e0aaa446b4c7e4080662d3de965a0aecc8f8f5ec43219a","ssdeep":"96:p2NH8/xVRyhsXtpZ8HEZgOM09SP0FfpdYMYozfDsJeiMw938I5Zv1JVqUP:p2YVNCH8bMFOrYMYoMMiZ935pqUP","tlshash":"1ff195feb6c2793806a31576623b770c3e3b654528494490d066c8cc7a76dcbc16bfad","size":7614,"data":"","first_seen":"2026-07-24T18:07:21.49761Z","last_seen":"2026-07-27T05:14:04.74945Z","times_seen":218,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9087bfb5987e012165369f31c80da771","sha1":"e4b912603b7a38d385bb3770f3d3c3574c4c7d09","sha256":"17b51df2b060b946881ffe59fc2d1cd01fc09a7c7d40c7b4dcce2526e10308df","sha512":"df59e3a180757201879e376cbb16a70c6f55dd732e6eda3f9809868bcf9fe2eb2e73a288192394cc3b9736832423672db4a13a3f1fa1aaa8ac37d3374c01b356","ssdeep":"","tlshash":"28e026c771613759d0585eb4e27317053c62a081ab4889e9b236f60aabe49ad35e3816","size":340,"data":"","first_seen":"2026-07-25T07:02:54.191647Z","last_seen":"2026-07-27T05:15:37.080424Z","times_seen":432,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"37a6259cc0c1dae299a7866489dff0bd","sha1":"2be88ca4242c76e8253ac62474851065032d6833","sha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","sha512":"04f8ff2682604862e405bf88de102ed7710ac45c1205957625e4ee3e5f5a2241e453614acc451345b91bafc88f38804019c7492444595674e94e8cf4be53817f","ssdeep":"","tlshash":"b9300000000000000000000000000000000300000000000000000000000c0000000000","size":4,"data":"","first_seen":"2023-03-07T01:02:14Z","last_seen":"2026-07-27T05:12:07.402707Z","times_seen":278606,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c498f21d596cab179eb2e5de92013857","sha1":"8a29a189198796bd164fc566e952884b07496fbe","sha256":"cd5e183ec113a6429535157117bb1ddc54f96b68728ca66921d74b20f8e4c15c","sha512":"4904d4f49e94e06750ba6c2783c51d29ee20d33aab48ea66ed7cb33796e8225b927b0de33aaa23af79e583f48e5d32db88b8ccab4053d59cf0ac4bfd93236c57","ssdeep":"","tlshash":"e770000a3c08a000a22238e008cb2088002300080000a80000c000800cb200e202280a","size":22,"data":"","first_seen":"2026-07-25T07:02:54.145555Z","last_seen":"2026-07-27T05:15:37.054852Z","times_seen":437,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"316d406bec14ed278d88b29656ec9700","sha1":"bd547102264254e2beef20bde9dbb4a76930c603","sha256":"c20bceec8e69ac1e4c2e4e22bd2c3676487f19b8676151449558633b99b47e86","sha512":"46f1ff723d384eba48d0384e861d729824711cc28520de2cb5defc92c4db58aeff67b8349ad7d2d75368507cad41580169a73a544a2fd0364b326442be72360e","ssdeep":"","tlshash":"42c08c1814a2983a3224acc3b08f910234c528110104406483ad8031b73044aad380a9","size":145,"data":"","first_seen":"2026-07-25T07:02:54.099906Z","last_seen":"2026-07-27T05:15:37.026856Z","times_seen":429,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c2fd98c678db6a4e592fc1fce467a095","sha1":"23d71a1dee6fdcdb530042f8de4c7ab53166f476","sha256":"ce773908bfcad90b99b630fe30a23d2abf23d0530137862b34afd9426fc37f4e","sha512":"4cfdbe3278dfe3b25ee1d5b7c5e2b6136e0813ed126409b436ff14b98ff511e7849897d572bb20701f90c207a7d1a474166b8a3c01bcaa87f87836674926e582","ssdeep":"","tlshash":"14b012187d04e4376302347960230d04e151080342818c0b800ed8c047701cb00104bf","size":91,"data":"","first_seen":"2026-07-25T07:02:54.158231Z","last_seen":"2026-07-27T05:15:37.085349Z","times_seen":432,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"6e6b4e7c1a45993ae64f9aaa4672f019","sha1":"81ed544bb4656d12c73eff1d5fe3911a080f8c51","sha256":"4da86e48d9b22ffccb648bc40fa2df935429b12e5903bdeb308b218615df64b6","sha512":"5b788fd445160f1aa102912f67fc8b92f90f2f78e16690e093896b972e1a73c2ee56f3fa14c6c7261cb3aeccedcf2433d7cc65db8d881b09554b01640d3a9faf","ssdeep":"","tlshash":"158000883e08aa0c000238a0000bc008c83202022a02880000c820800c3a00e030282a","size":26,"data":"","first_seen":"2026-07-25T07:02:54.185612Z","last_seen":"2026-07-27T05:15:37.008324Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/js/vendors.js?v=1681460523","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"introduction_type":"scriptElement","is_inline":false,"md5":"a8ab6269b10f87faa9ccabe38cc127bd","sha1":"06741de6f158cafec153fb62a61432a70f951313","sha256":"9d94a0f9cdbb6deb6239e86322a35e5ac366931497be579b5381b6437370b003","sha512":"2b20e9869d52f7dd3913f7ea31f96f024fd273e879e73a2e8c6966f0f1992ceecfa8bab23fa1704a5d8ca94ddf5c591fee1ba7fe5ab4cae2a816cb9b925c8295","ssdeep":"12288:b+5PkviVmySXoHP6LkyEkNbBfgiVXIeaGM:b+5PFVbeN9gimem","tlshash":"ba052a46f256347385d2119dd86f1207a3726959644a80acf9bcd8e72cb8e8831fff78","size":852692,"data":"","first_seen":"2026-07-27T02:49:41.001609Z","last_seen":"2026-07-27T03:09:30.396329Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"0d61f8370cad1d412f80b84d143e1257","sha1":"32096c2e0eff33d844ee6d675407ace18289357d","sha256":"6b23c0d5f35d1b11f9b683f0b0a617355deb11277d91ae091d399c655b87940d","sha512":"3d637ae63d59522dd3cb1b81c1ad67e56d46185b0971e0bc7dd2d8ad3b26090acb634c252fc6a63b3766934314ea1a6e59fa0c8c2bc027a7b6a460b291cd4dfb","ssdeep":"","tlshash":"c700000000000000c000003300000000000000000000000000000000c0000000000000","size":1,"data":"","first_seen":"2023-03-07T12:12:28Z","last_seen":"2026-07-27T05:15:37.044401Z","times_seen":75492,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9e6f21901550fc1605fc3b7bb6220df5","sha1":"2c9aa881509ef9f0bdc5a0e496b852467b52bd1a","sha256":"d68cf2832956cf0a7b5ce50801e57f1a4aa9c959d170ef458bc12ee7a8e26f5f","sha512":"fe48c482cef77538444ec38384fc51fd461c90e228bcc2be17c1558ea1937e26eee63a2ea7fd01969aa1132b1413d738bc023fc6ea286b151dd8f8267278ad12","ssdeep":"","tlshash":"6ca0120074447c0116112c75c2260548f0511a0b50902401810596c002705890113ce7","size":79,"data":"","first_seen":"2026-07-25T07:02:54.172421Z","last_seen":"2026-07-27T05:15:37.059013Z","times_seen":439,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"61a6f2652a0b6db05139abddb9b96ab7","sha1":"05548eab56f32db3c8c42fd2487a3f3b3ccf0ee1","sha256":"cc6e0d6af3dc4f620458aa79c4f4c0631ebc1bd55a148f5e9a06ea8874885831","sha512":"f2f89b1252cfe849de0cb4e8e8b7ee29cf99c563c5113ede3c45d470d5d14c45e0a3e30e560a79d14bfd4c46943c24a8444a1e81e4a0e93addf71ebdeaccaef4","ssdeep":"","tlshash":"4780047cdd4c5c350f157415001740441177700d50150005170004c44f311c5140fddc","size":38,"data":"","first_seen":"2023-03-11T13:53:37Z","last_seen":"2026-07-27T05:12:07.549339Z","times_seen":266185,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9af69e91e9a0e1650ac23ca1a06d9a03","sha1":"1a26706289f10c0bd07fcca5b37e9cd1f31742ce","sha256":"b5f92e34f5614aa40d35166769b90304819bc552ad045006a56b2672ea5e635a","sha512":"23ce7998bc81e6515eb7c1d416ff1e22fe067aaf6d5348bd66654a5c6d9d65e89276e08da1431693589b7566ebdd95651132e2d6ed6ad3cc765532482f5c5d3c","ssdeep":"","tlshash":"67d023de54545753a25515f39009d6154307504f52f8cf5bd11198b414d64074087b11","size":213,"data":"","first_seen":"2026-07-25T07:02:54.07392Z","last_seen":"2026-07-27T05:15:37.02025Z","times_seen":446,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"2da41093c5101c915eba4d7ce7b0703d","sha1":"be67856563d898a7b733742a56b7c24e76f6c12b","sha256":"861a8f8ff3b790a4f6c9a8fbca93e201d714e26ee74a051cc77d25e79ef5f581","sha512":"c78400c6cb9ba66626b3f922da612a3663809ccf26a7b35521a117ee56b1f69fde071301026b99a7976cd6794a76568b7bb46065da5f4d0f23946c850b6a0e24","ssdeep":"","tlshash":"a70110862cf902b6b2d176612be37a2800f8b0476d082418e205e6a096564c2000adcb","size":684,"data":"","first_seen":"2026-07-25T07:02:54.184161Z","last_seen":"2026-07-27T05:15:37.078148Z","times_seen":440,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"7fc56270e7a70fa81a5935b72eacbe29","sha1":"6dcd4ce23d88e2ee9568ba546c007c63d9131c1b","sha256":"559aead08264d5795d3909718cdd05abd49572e84fe55590eef31a88a08fdffd","sha512":"21b4f4bd9e64ed355c3eb676a28ebedaf6d8f17bdc365995b319097153044080516bd083bfcce66121a3072646994c8430cc382b8dc543e84880183bf856cff5","ssdeep":"","tlshash":"c700000030000c00c0000030000000000000c000000000000000000000000000000000","size":1,"data":"","first_seen":"2023-03-07T01:15:06Z","last_seen":"2026-07-27T05:14:35.6246Z","times_seen":74449,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"df4ecf2995d9a4760b6fe2b232d66a91","sha1":"21dfc49632cd521980c8fd611315a62037b83142","sha256":"1d0ddd4ea3351d60237f5374532c094863db8fee5d00fdbb477612c30630d16e","sha512":"3f1e696cd9e7f7b05b35195d7967fa6fe8332b9e921ed3077b855283e083ddb38d878f6509353e11b40c8e9f2e2799dd820e790ec46ebe93a9da31576028c336","ssdeep":"","tlshash":"9ee07d68664571642f929e46868eba88d68a404dc071c9022629d0c00c745e4903de81","size":305,"data":"","first_seen":"2026-07-25T07:02:54.190462Z","last_seen":"2026-07-27T05:15:37.050016Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"e213815f8e0b9954f8d43e3a59f8b742","sha1":"563796cb191f082f24fc52b017905533a0ceccc5","sha256":"842c53eb438fb28e95c14d32423b0fe01bf557c9e623b684b19663d497bce97e","sha512":"b5bae6d10c35f01992dcc33c3f24a7cee7ac0fb56cf4a9e79453d213297ffe3b8e6e4b3eb7de9b1d10a5ca2638e81ac3fd3e66e6d76d157a75163ac7caea4f89","ssdeep":"","tlshash":"ad60000ffc0c330000033030003f000c003300000c000000000000c00c3000f0003c0c","size":14,"data":"","first_seen":"2023-03-07T01:11:47Z","last_seen":"2026-07-27T05:12:07.463208Z","times_seen":201671,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"e359fe3a1e44ddbaa1af4da0e31920e5","sha1":"ddeed82c0681f2b466e6eaa1ae187369e3bb866b","sha256":"4701d964e5da1485daa76b3c4316ca0c9e628d9bfcb33b02ecf48bd1f5c4b67a","sha512":"f135d45f0ed3321c46b38c392bb015b3960ddba8ec18d16ada1c0e8ddb7a581fba1c132a3312f39051eca9dcc478294c31a81eabf7a672ad2e7e7e7992058aa3","ssdeep":"","tlshash":"8b9022bc2c22388002022000800f0838aa0380c3c08c0200e0828a3b2c3020808c0000","size":56,"data":"","first_seen":"2026-07-27T03:08:23.066901Z","last_seen":"2026-07-27T03:08:23.066901Z","times_seen":1,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"e1469a0c2dc2156f9a727d0ed640ac13","sha1":"ba1dd0fe89c6bf92a6a0f1dfc9336ec0c722f494","sha256":"12854497ac91b3bf315b127a6c446692fb3c10bd1dcd87c3d60a592f63083cc2","sha512":"0cced30914a00cca9185467b9de158e890ae36123087ab40ce5ab41f2ff3ff858178f42c2810106003fad52d94dbebf96e5e47c7d3935f2cb2ebffe7ab387b94","ssdeep":"","tlshash":"6c0110862cf902b7b2d176612be37a2800f8b0476d082418e205e6a096564c2000adcb","size":686,"data":"","first_seen":"2026-07-25T07:02:54.118078Z","last_seen":"2026-07-27T05:15:37.046901Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"e4728480e2fb7f7ad5c9fda4ae9a24a7","sha1":"d271c64c26f1980b5bcba96d21ac5cadb06e7977","sha256":"8222c16f8274ee37719a8d83f2aefe2259e820728e881bfc83430f3c5336f732","sha512":"d5c34af2fb42a8ebf58500129c2cbbec60704cc1e3275f93dfc44dccd3b3487456bb20ed56bb7e4138e86530d9f61b4cfd2e791b5e0d857c87336a50ed923bea","ssdeep":"","tlshash":"e8d09706b91480223932382302628e07e4a2e8475df3a452a18acdc945f1944805d919","size":241,"data":"","first_seen":"2026-07-25T07:02:54.165069Z","last_seen":"2026-07-27T05:15:37.079807Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"7694f4a66316e53c8cdd9d9954bd611d","sha1":"22ea1c649c82946aa6e479e1ffd321e4a318b1b0","sha256":"8e35c2cd3bf6641bdb0e2050b76932cbb2e6034a0ddacc1d9bea82a6ba57f7cf","sha512":"2e96772232487fb3a058d58f2c310023e07e4017c94d56cc5fae4b54b44605f42a75b0b1f358991f8c6cbe9b68b64e5b2a09d0ad23fcac07ee9a9198a745e1d5","ssdeep":"","tlshash":"c700000000000000c00030300000000000000000000000000000000300000000000000","size":1,"data":"","first_seen":"2023-03-07T01:20:09Z","last_seen":"2026-07-27T05:12:07.29232Z","times_seen":56249,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"e25b5a6d5b2365cb579d486a6acba51b","sha1":"6f513d7efbf5cd1176677d41c82b897b8006217b","sha256":"81799c32d53294ca91ef92a976a6501f0a7c8c424aa44278c8f06c0f71e0eb52","sha512":"d0b8a9b323c125a111082164ec638c05109a1b0add4136f4a0b69c99b680579b4755177a7c586a92f295bd1882b7eb8e41eb6bac406ef90d4257805cfb82308f","ssdeep":"","tlshash":"e9e07db0258123422174df79f0f3120430e072c67e48ac8f51256b428e388c1142353b","size":314,"data":"","first_seen":"2026-07-25T07:02:54.113702Z","last_seen":"2026-07-27T05:15:37.075345Z","times_seen":436,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"d94eb39b7c5996a928c1d97e2d336207","sha1":"63d8851850a208fd85df769e5ccadcc4474859fe","sha256":"ea73e902e70b18a2f35dd009e26fcf9c68771ff4060e21c60533c90291328a25","sha512":"36bcc6c512fff73197bfea984000d3f197ae09de13dbc39397c2812b3f5b9e8da2d6ebead97520615c83ac480fa2c07701fba86a4a659c3114b29b9c889dbb34","ssdeep":"","tlshash":"c7100000000000000000000000000000c0000c00000000000000000300000000000000","size":2,"data":"","first_seen":"2023-03-26T06:16:09Z","last_seen":"2026-07-27T05:15:37.009629Z","times_seen":1105,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/js/app.js?v=1684946825","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"introduction_type":"scriptElement","is_inline":false,"md5":"3e5132621504d036256cf63373fe03c0","sha1":"1a460ed5dd953011072e00b0c19a01aa82c72fef","sha256":"fc307c165e547184a53a96ac052f3c32f5aa1a07cb852d010be895f32a3af295","sha512":"b0a0d2bc486acc222161d998755aead741d2385f7f6bc15e1e2bfdc5f1947ab7dbb281597c4c6b8a3c535d1330bc56616d23d01b6c691e222a6bb8d84ccb9324","ssdeep":"384:wSAUKWRrVHuPkOY2Hqnj46ldmXMxZ53BUaZe2MEgVnZDZDz9PdmnMybxko7NMuDc:wHhkxkCjRldLgOkLDZD1QnbbN7CuglwK","tlshash":"6fc2b540b2c5b4bb43a7d56284178106b0647249a81b94bcf7bdbcd48baac04f67af77","size":27696,"data":"","first_seen":"2026-07-27T02:49:41.0193Z","last_seen":"2026-07-27T03:09:30.377056Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"aac1259dfa2c6c5ead508f34e52bb990","sha1":"8ccb8a3f7ac5bd9c4f1ab74cb453f7f32903fb1b","sha256":"27a26bca625b223971909dd88fc93faeb050dc5b34d91c0871661740dcfb9d18","sha512":"2a404c9768dc86190bcc7c98645afa7b6f74488371b974d14da48d7379b2cfae6c8c5bc878ed17d0f9f4c4e62138bfe416cf9a1be31eab07e062c0f5f55ef811","ssdeep":"","tlshash":"c71000000000000c0000000000000000300000000000000000000000000c0000000000","size":2,"data":"","first_seen":"2023-03-10T08:44:37Z","last_seen":"2026-07-27T05:15:37.084285Z","times_seen":1065,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"b16d224a9cf9b154c238a00f6ce89562","sha1":"bf90040361427079f596e6a8daa5c6ce789e6d2d","sha256":"8d1320cfe03ab58ca10d024104587c313b2e9dbd142122d973f29c92637aed23","sha512":"4bfdbc6f94a21a7a7955caa00d6f05f6faada48c56a5e7a72f4e70bbe9c6ce01e2f76a8699e4d035e9981d03a5ab940122be0ac7bdbd6ec7405a17d7e5f37605","ssdeep":"","tlshash":"7d31a99f13b50938c5c0cffd41af066248f16115ad074c1f7e01eae54928553aeb1afb","size":1534,"data":"","first_seen":"2026-07-25T07:02:54.139431Z","last_seen":"2026-07-27T05:15:37.054186Z","times_seen":437,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"553043d48d6dd80a787af64045a49e96","sha1":"e63956e5e0aa636885b9ed763d13ab9fdd1ecc29","sha256":"1984338e5b6994ef452ccc065e0cbad0892b40e3ae8938d3bde4f6a76e660975","sha512":"6754bfc75e8a2d15fb5e7f309524e2b22812ff1d97cd7b18508495ab00c590eb64ced78dd0bff9aae3a5902fc2fd215cd73b76864004a441d2239777a547c631","ssdeep":"","tlshash":"8ad02bfb5811c06ffc23059213335dc910d2f20cd5993f9ab5b2b1a4392000c70d54c7","size":281,"data":"","first_seen":"2026-07-25T07:02:54.176272Z","last_seen":"2026-07-27T05:15:37.05286Z","times_seen":438,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f69a3704d7f533aa4245e6bf79aaf7f0","sha1":"11e5a704728320de77d28101f21079c644136b4c","sha256":"adb064ad7f04d21017f0801899a3867082ed16d71583c6cc7756f30beb9363ff","sha512":"d12fd361ad1905660b2bc871f8d172acac2972e2cb3c4930db744248f12624d3f6410618ed13d6b45e6881d90f82078db0e2178f55b8ae4b151994ecb9ebbcfb","ssdeep":"","tlshash":"27d09730e9010300b22c1ca230a1dfe700a0c4073e00e8268a698dec08f8202c056aec","size":243,"data":"","first_seen":"2026-07-25T07:02:54.142504Z","last_seen":"2026-07-27T05:15:37.025092Z","times_seen":448,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"130c787f212b30dec62fe9d1f64adf89","sha1":"0fe829cf5728aa8f881b127725d34bff3e703f22","sha256":"50560cc380f1458be9737fd2ee27daea8b9426db77b4b38ce5554e4a651ad09d","sha512":"650a479f750fa63552a1eb884acdc1d5a0ff7136389e396a8c311804d6490e8657b6ac81855d1d7633a27309f79c578d0a4927e35cded386db1808d1e5d8e017","ssdeep":"","tlshash":"fbf02d135782b7b2d04a560b50cf628806b2c032ec5acc8f1a33e2b40cb888a209af85","size":621,"data":"","first_seen":"2026-07-25T07:02:54.169445Z","last_seen":"2026-07-27T05:15:37.065508Z","times_seen":428,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"cbce5f030ab9bcb5d5a13f3094ed0c14","sha1":"a8dabb19b3be950bce6159811f80596a5bd78b54","sha256":"22d532f2907a94e1755ff7183e34abaed0e92f01415b2c98b71e860af2af3020","sha512":"d8d914e21a56a18b2bf24d25cf9df74cd94c4a9fdbad963cfd1eb90080d01d6cdafd27712026ecf692d43cfc977a8abf44d969e2d299d204b4da9263b9dc7036","ssdeep":"","tlshash":"e07000283c08e800022238a000bb02280222000022808a00808080a00c3200a800282e","size":22,"data":"","first_seen":"2026-07-25T07:02:54.179802Z","last_seen":"2026-07-27T05:15:37.087506Z","times_seen":432,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"0cb2ca5238ca9b85cbde05a0c6a96a2d","sha1":"e7a5d39e6f8c5139be41d138aeb818c7b5c789ba","sha256":"65cdc6799de01f75bae65d4915b26836b836cc17ab7614020fa97a1d96992d6e","sha512":"c76c6a2b76b731648ebe5b1ed2a0f02a6b803cd96721d39dd9022ea67cfc21c068cff19624d10f4fea8058e486b4138084c49a0d85113008a8f828be99dc79f8","ssdeep":"","tlshash":"c710000000000300000000000000000000000000000000000000000000000000000000","size":2,"data":"","first_seen":"2023-03-10T12:37:25Z","last_seen":"2026-07-27T05:15:37.047934Z","times_seen":6697,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"11721f4fe0fa20af0333c7eda891ca0f","sha1":"372c3c93f86eb46b9afffaebbf49c82cf42fa466","sha256":"ef2a3319810f3ae9cd5948f3229bc195d7b1558846487473b21a842f9d1b503b","sha512":"0f12b9a1099d5be03aa05cb2c7fda09fcd3d47094ee1973d5beb44d6651729d7c7d719af6b57981f3a39f9024ee36e549167a21724929930e62271547ec0e3c0","ssdeep":"","tlshash":"c7100000000c00c0000000000000000000000000000000000000000000000000300000","size":2,"data":"","first_seen":"2023-03-08T06:14:19Z","last_seen":"2026-07-27T05:15:37.032145Z","times_seen":2824,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"a7f8d6710421b13561d798da885286d4","sha1":"40bbf372af2386d0230d48c56680b364196e5238","sha256":"01233f22b0adbeec53c41f6c10babce298647c9c6c5c6ced4c143a2a88d18f4e","sha512":"86969e257ca8c46c346e574182d16d97936c58fac9d836ab3b8850d964753e8fd0b3a9f5b703cc23db2f982c8ca5b56f7b2a54ab7ce90178cd8c29a05724eb22","ssdeep":"","tlshash":"79f0e1c9b392146536ec934ebddf4d613cb16158413c512da7a066f104a06d5a8edf53","size":585,"data":"","first_seen":"2026-07-25T07:02:54.206377Z","last_seen":"2026-07-27T05:15:37.041431Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f58a7d86186e19db84e783bc06177a55","sha1":"8002a6aa19ad59d43ccc8b32ff7c6d561f9e1259","sha256":"41cd1e4850b992f8c433a1a085a6585a8e79ff96413f11e360a6743babd8cb93","sha512":"be81de332fa854c02257328706e95326c7aac28318d95e5f910a68f7b74bda38161de6fe6040a2d41ede8941285d69e4e4b22554f2fe5f6a1bd2473a4b4dd366","ssdeep":"","tlshash":"42e0c05d611b7411b0c03cd1d5cf1498f0f42236c5ce0c1d8375d4c412a2ced569cf19","size":350,"data":"","first_seen":"2026-07-25T07:02:54.088205Z","last_seen":"2026-07-27T05:15:37.027824Z","times_seen":435,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"25607f1ffaa7d1ff142e22e0e8ae6779","sha1":"207c150da361f4c91b20acad7c60918a9818305c","sha256":"8495a59d9339a0440ffe0861eaf8f3248dc31cd6f5e5447e07d6e6d376b2002c","sha512":"5a76b2517dfa3140c30a7a50b1d6f4d49ccf641725897a7d2f2131e4638d97279de45263ebb59371c7dc55e1204c94afd08eaf294e6cffb62e94580ea47223a0","ssdeep":"","tlshash":"6ad05eeb6b0f267900d33d34090b0a546a56c401ecca14e59711b8dc4f5460b40f3d2e","size":242,"data":"","first_seen":"2026-07-25T07:02:54.140729Z","last_seen":"2026-07-27T05:15:37.071234Z","times_seen":433,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"796a99cad1a6610a7fa68e368d72cb4d","sha1":"b484b5b4973974c40859b0bcdc09c6c87a9a659c","sha256":"d61a50f46cd94e534153820f129c90bcab530e78f08cf2f179b008fac3c6f3dd","sha512":"76e33f7b2eac4d092754e12c149ce663195bad3173c574ddbd997bbc8a75594e868ace5263bfbb32aa2d38fe74918ef36242241498935df9df6535aecdaa7fb7","ssdeep":"","tlshash":"69d022072287ddb6a2729804030afa15b0ff100b0f262a06f3c885026734b8cc262a97","size":214,"data":"","first_seen":"2026-07-25T07:02:54.074862Z","last_seen":"2026-07-27T05:15:37.041924Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"644dc335ba482697b43192f5bde84d9c","sha1":"fca03ed806772ffcb1cbe9621bdf964719ef1569","sha256":"76e4392222a281443de945105b1deb3a14a6b53bb350ad127d42f13f5a81ee21","sha512":"8be06ff06adc228081ce796af04e081862bdd46ee0a4388d6f8a928c423eec8e167eb52e2a40ed444812fcc4fef2774349c253e0aea07ffbc1df69ec478869a3","ssdeep":"","tlshash":"6e7000083c082000a22238e0080b200a002300080000ae0000c008800c3220aa02a82b","size":22,"data":"","first_seen":"2026-07-25T07:02:54.150082Z","last_seen":"2026-07-27T05:15:37.007017Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"7cf7f77283a4ed133a454f8eec0fde1d","sha1":"1acaa875311511909505214594d1b2ae359b041f","sha256":"ebd02e9af6bc86a3788d797b037ecb7320b599b2fb22a7e1858275bb05762365","sha512":"63f080f63fe60d371f7215c84cba76503c692da48d6ab73c199ab138da05d49925cdff3b3e3ec8c0f8b9e3a7860501b19747117f28a336f95de0d08c00d0a55f","ssdeep":"1536:z9w3cPpzlUowL2cm9ibFHDYzcmNGBfXoLL:BFyoybFHDQf","tlshash":"96531acef2d2a73555e269f6105f410a62fe9006cc85182fba15f6f42a70d4b903bf7a","size":65448,"data":"","first_seen":"2026-07-27T03:08:23.078079Z","last_seen":"2026-07-27T03:08:23.078079Z","times_seen":1,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"b5b6fee0a4d21f85dce9a49e0e9a9036","sha1":"34f9d5791d070ae880424d2e4c6c2b578271cac0","sha256":"123cbe058700145f7b9e0d18298653a900ac9389207b3b95c4a98fbec94401ab","sha512":"16b1868151143dfcb7805ad1d5a183bb7c99d79eeb35b3bb38b1d2110c7bd387c1222be2c121764afaacd7c74b503cd59fe5813f1d5d99c7d207ea7c57095e5f","ssdeep":"","tlshash":"52a0120076447c0116112c79c2260545b0511a0b54906401c10596c102705890113ce7","size":79,"data":"","first_seen":"2026-07-25T07:02:54.173327Z","last_seen":"2026-07-27T05:15:37.08965Z","times_seen":439,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"506062df458617a6bfdd35a3fbd41c54","sha1":"7e7395752c17ceee179c6a6ac0cdc54a44401c6b","sha256":"a7e4c6a4faba5d54fbf9e416b44f1e4c26d60946ee542ea3510b95b0c146e6a4","sha512":"e0aa46183e606b4bd2eac6695caecce85498b80a41894bc26fd6dfa2a7db92c78f9e69349df0daf41d79df5a8d1f95c5aef07047e4231252f0eaa123daf3d096","ssdeep":"","tlshash":"cff08bd487010de8b201bce92deb3464927f89133c503009ba12a21a5234f4d945b82d","size":540,"data":"","first_seen":"2026-07-25T07:02:54.146382Z","last_seen":"2026-07-27T05:15:37.081509Z","times_seen":433,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"0ee7840c65fd232997d06d9430eb3cd3","sha1":"d7b08c1b33e71fb050eda8eb76673e4ad9a8e2e7","sha256":"b1934a6c0e3ad971de0f6acb755aa575707e156d75224d0d6290a0f1d9fb6329","sha512":"f49fc43de4c5e49b7b4f81a3de77f3a6642f44ed070ae82a48e541a680b4992dee7b43218235a23384d386adddaca5a463a723470e778006b84dbe309db5e215","ssdeep":"","tlshash":"61e020a4b60370c596a67c844417db33f1b8b6180864679335a9f85cbc15507929bf35","size":347,"data":"","first_seen":"2026-07-25T07:02:54.163257Z","last_seen":"2026-07-27T05:15:37.066003Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"42397e761d6e41735413532880049e6f","sha1":"95f740d93be57eaa0388e50ea79e4ce0bc32a47c","sha256":"76354f8202dcb3bd872442c0934f9c7e5e9f61540f27727a42a5eb594e9143ea","sha512":"37cf8e6de170216c3bb26136f48d90eb71bc4bd34d7b8e59991083fe5c79b32d4f12a4412445f5f115a748693f51a2d3528d3f2e8b169ebcb1b4a87c2124f9b3","ssdeep":"","tlshash":"8aa024451fc0173071c174f015070010450d107dd37444d54075dcd00c34fcd3441117","size":82,"data":"","first_seen":"2026-07-25T07:02:54.195903Z","last_seen":"2026-07-27T05:15:37.000891Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"58cf531c1b4e5d67b0c780ff6899d969","sha1":"9e997fb73f7026136c3201510d77658d59407ded","sha256":"16d4dd67cf8a92581836f38ae1673f2fb1d7d97e0f913eaa6e7e102be59cc123","sha512":"b1961e02be4ed40fd3ccf43025f087eb7528a808a4349b7a97525a0b07f298ff35062c61bf5c5758027ef410cfa58aacfdaed05ca47e4bc93ef17feeff4817f9","ssdeep":"","tlshash":"eba0220c3c083002320b2cb0888b82cbc0202330e0080802c032c08222f3a0c830be3b","size":72,"data":"","first_seen":"2026-07-25T07:02:54.187451Z","last_seen":"2026-07-27T05:15:37.028323Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"5d43ef05e57cdeab7895fe8a3b6ee014","sha1":"19671e4e00cc9b5f8f6a6167c1ea8800ee539aeb","sha256":"b7893a0611b91f5fe47ce3889faf375eddbda47517f4e44c8c338eef6d2c41e5","sha512":"535346ebfe272e052e64dfa1845da29662c36e84fa5a946e52dcbb2cf4d894851a102180fb1c04603f86ec920d89fdfb62c1ddc14ea81ba4cec7d4723ad5598e","ssdeep":"","tlshash":"8db092a4a20c0b5812813919ad2b06e950e42704f82994884ac0ae2548e0a41568ead8","size":116,"data":"","first_seen":"2024-07-19T01:23:55Z","last_seen":"2026-07-27T05:12:07.417301Z","times_seen":189117,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9d0137bffa0f20d5e8e9f54f2c84cf0a","sha1":"39edf6d919f82b9692a2edfecc78427a82567c42","sha256":"269d4d56785ffc82f3ed05d8ee3b84fc18d7474663ddd06c6fd285165190bb19","sha512":"0b8b09f13f8fbeb3546c08a3501f4060ba8e5f762722ffb1a53be6d0e297abaf9719d48d50cac29940e403702c66627187396b8961aee26586ac934568af2ea9","ssdeep":"","tlshash":"db50000000300000c30000000c30f00003000030c00000000300c0cc0c000300000000","size":10,"data":"","first_seen":"2023-03-07T01:02:15Z","last_seen":"2026-07-27T05:12:07.5769Z","times_seen":184186,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"39d2592bac0eccdff1e94886f4472629","sha1":"35d3462c7a93c0264610efd6ac970e5d47ca7792","sha256":"24677b8b077f1fc6144a4e59498483aa30800bd1ba610a984f65b357cb198479","sha512":"5c9b66a1781728f08b8b4f9493c68ed5af9382c90f72cc5869f2a07f1837e50ffa4719273c1445bc025454171a535cf621e8f29a6630c32f07843708331409f2","ssdeep":"","tlshash":"88b012247c08fc22ab212c7841120d197120c04354a784d7d02ce3c00339186300b593","size":98,"data":"","first_seen":"2026-07-25T07:02:54.143979Z","last_seen":"2026-07-27T05:15:37.091083Z","times_seen":432,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"ac6dfa045179132aefaf73bbae961f84","sha1":"5b4a09943ab49ca1438497710be50b54077e9374","sha256":"18437a515c82285b4cbdaf60b46bdcd426eb4514c03ebef4e2e4a3caa0f75497","sha512":"df27138801c468c597084ae71e58544c6d3b95e9d57d3bb003339aa035e1e04eb7b85932f01573eba17613500cd7bf65d9de52570fd0dcd3f409dc5286d5f155","ssdeep":"","tlshash":"a6b012185c0835193f336ce99117681ed0b0dd06c4b4b90d8004d5d402a404e5051cbf","size":94,"data":"","first_seen":"2026-07-25T07:02:54.141577Z","last_seen":"2026-07-27T05:15:37.020775Z","times_seen":433,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"16c0e822a412e900773f94265229b860","sha1":"3f7b94f3942f43c81bf6104a63328a04122f46ef","sha256":"b15fdefcf464539466ed442882025a3860330cb62ac4613d91e8a94448850155","sha512":"662eed3905e417a9d5d68d7a9aef8c7eb97df1e6c03ad095fe7bc3f29a7820cd4b4611afd58f3ac95a91b71d7c45daeebcddd1ed5092d85b6d678b40b7fbe88f","ssdeep":"","tlshash":"60a024005c0c45013713315144370c0750d11107f0f44d0f430dc05017305050744333","size":75,"data":"","first_seen":"2026-07-25T07:02:54.207231Z","last_seen":"2026-07-27T05:15:37.066484Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"ac74e3f51cb94709e1948a70433bdfc5","sha1":"76d121cd4e0c881523d60b8dafc1b3589ae5b2b9","sha256":"a217633e7706a1bd9a42b4bd78d98f44f81e614d34e42aa97562232e0a0ad14e","sha512":"d002a88da3d454e2fac7bdbe5704290b8c7c6d1eb2375744991a1514e9fe83cfe43438c67667d42aa12f2de01cada231171ec95288d671df022d4a7f4d1eb06d","ssdeep":"","tlshash":"2990028430426c102202e0612a9a69b6d175448020199164f0951044392545d505bd0c","size":51,"data":"","first_seen":"2026-07-25T07:02:54.16226Z","last_seen":"2026-07-27T05:15:37.05996Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"e3853dd21d7b37c8e001cbeb80def269","sha1":"22eab5e6d95c0a758b5105a2ca285550e4ddf4c0","sha256":"739c47988f1b9658cc13de9f615b8e5dcd2976ae3baf5442f36d6cdb7646b1a2","sha512":"186172b3a889c4e9dc3598d3d92d43b10144f04dcf14ecb3bcc6b6d6f45448caa601ab93a2b550bd7bf82f6a1905efccb9cabc88da9b70873a953a5ee0fe8660","ssdeep":"","tlshash":"4ef02d4235828222c02270af50bb60ce00b2c261af6b8e4e8a3292d15cea48a40c6f89","size":627,"data":"","first_seen":"2026-07-25T07:02:54.196783Z","last_seen":"2026-07-27T05:15:37.023066Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"eb7194ac9d6f5a83b6c7cae43038d2ef","sha1":"9b1cfda44cba767b72373d6df56249b565efb634","sha256":"eb2bf66d92707acd8be84dbfcca1376c2562c4ec94a4d87babbbe67f4d125aae","sha512":"7ae1e7cb8edf692da592a8ddc798f6f564f5ea0d6fd6919ee5c86ca95d983d15e707615cb6ff6623c0951e0eca8a4852f1d8d8596f985ba3e214feb47bfcb886","ssdeep":"","tlshash":"6390025969497099203710e0425e292640d2c40065544041961494f65434b17d531c6a","size":57,"data":"","first_seen":"2026-07-25T07:02:54.098994Z","last_seen":"2026-07-27T05:15:37.007669Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c9f7198c57735fa7a7a8ac2cc18dd542","sha1":"d78ec33d89c7283a59982f10f71e7e305fa1ce93","sha256":"ebf49dcd836f810084c14e0f2dab4dc1768bbdc5980481bf201fcf76771dff7a","sha512":"2f340331a80aa1f95ec3e6751373d075237fce3f23bad8456eb3dbdb26e6896c6d2abe98d9af871016328071a1400c96e6c846f54f88d475394d12b82226cdee","ssdeep":"","tlshash":"075000000030000000303033000000000003c000000000000003030000000300300000","size":9,"data":"","first_seen":"2023-03-07T01:02:46Z","last_seen":"2026-07-27T05:25:00.100822Z","times_seen":34681,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"ec7e53845feb375870343182efd0b929","sha1":"63e71d0c5bcadc37a725d971054eb55e017f6989","sha256":"a2253e1fad60aa1ccf31416ca8cde6ffaa5af2510733c7186adc04a503346c5b","sha512":"339f50fe30462dd6204552b2d3d3fe5cbaeea2cadcfbde096f16b40f1d985a5a68ebb227dbbb9f37c9451a36376ed392b7fb50c6e661963124146bac7e03284a","ssdeep":"","tlshash":"cf50003cc00000c0000f03000300000cc0000c00c0c00300c3cc000c3c0cc00c000000","size":11,"data":"","first_seen":"2024-07-23T18:45:21Z","last_seen":"2026-07-27T05:12:07.411316Z","times_seen":172713,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"64e1e1cbe1ca8e88ef3a838a3e7b57d6","sha1":"5498d9b96ed2832e04a90c4ac2ab71f869b2bfdc","sha256":"0510eddd781102030eb8860671503a28e6a37f5346de429bdd47c0a37c77cc7d","sha512":"44ee2764491048592021ece402fc174f9f4d95cf25dd7227e1029cfdfbc6f574f811fac940495ee0db71db3714c70d7ee27c142876e4a191a0fda92a2e93073d","ssdeep":"","tlshash":"c710000000000000000000000000000000000000000000000000000000300000000c00","size":2,"data":"","first_seen":"2023-03-10T03:04:09Z","last_seen":"2026-07-27T05:15:37.04492Z","times_seen":1216,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"afb0fced528eaac5fe170b763cda5975","sha1":"8f0d85954d44c90a2fc59b8cc9297ea972774185","sha256":"9206ef16552ccd926e4421fe6ef369cbc40add64488b7e3d88350e3588a35c34","sha512":"67f6f6d5f810fc0fe5fe606415d86bc4efb11ca6df92a8d6b6d8280d1e4d731ea24b038f7525a6ac5084fac9f78f13d835e0679a1d0e3cba751465bafbcf4211","ssdeep":"","tlshash":"c71000000000000000000000c000000000000000000000000000000000300000000000","size":2,"data":"","first_seen":"2023-03-10T12:52:28Z","last_seen":"2026-07-27T05:15:37.006336Z","times_seen":527,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"db0e667538ab4e563e08c53acdc8adca","sha1":"7b00a8cb6da0a073775af7b8536d09fa244594ec","sha256":"b57608c5537f1c358fa12ec9a41449489847678d160fc29bea540ebfe93b1af5","sha512":"0388191a568e959e0ee4d19304a222bd647c874b02cbbe7a589757c47da8277ca1e7afb02a3eb9803a1fdf3220bae8875aad1d8f8fd624284f0fcd32abbcfeff","ssdeep":"","tlshash":"f9c0c000f44cc39725933c2f0d41873e801b120384320c030301d8cd0833beee245f60","size":180,"data":"","first_seen":"2026-07-25T07:02:54.18944Z","last_seen":"2026-07-27T05:15:37.068959Z","times_seen":433,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"fe63e72e58f232e831ebaa50436cd976","sha1":"3eb05a9376004c39c93288d95443d7f967c4d383","sha256":"fe4765abdb60dbb4296984f65320d7fa3f3047b70c94c2cd7737a9edb867a57b","sha512":"b39b8a0ffad610e40cd8116a7d35d709a6f3bed7ac49e980e5e2f26218cdaca4629af6047a9e7a7bc8857ee6fcd6da93808f9aaf4c26de44ecefc2fd92a87ef5","ssdeep":"","tlshash":"36f0ebb65a0180c490b39deb6e7f3a3f61866aa7b58110814393d725939c1d2300deed","size":546,"data":"","first_seen":"2026-07-25T07:02:54.125329Z","last_seen":"2026-07-27T05:15:37.005599Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"93dddbbea2419c0820cae293f64a56a7","sha1":"fec37c7f501f1834dcfed04edd754ab32b0661a9","sha256":"ca0f37dbe01b74a05d3b263e0f9b36a99e44350031baabb6c14c7d2d0f869d83","sha512":"e3f524dc1b1210369142abc7c52aca7bebb9edfdfb9237ebb03aae85d1a1403d2884e0062a7fae21d29207f237868efc1295460052c4ebc7860958d0102f88a5","ssdeep":"","tlshash":"0f9002c53c4456153662ac61402e44059165860e24a294829916e2940732b99850242b","size":57,"data":"","first_seen":"2026-07-25T07:02:54.19501Z","last_seen":"2026-07-27T05:15:37.079243Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"cadb00a60a3fda71b0a59c1eaa577422","sha1":"81bbc75ee8276e534256b7a30dff2b86c5e0c893","sha256":"834021cef72202c07f1e4b770a7cbf84adf11afa2f1527353f4b35cfe558e977","sha512":"437459289997803a93a4e734fc87ee0896b6fc58ad8971d9898488ca77f0305953f17bebe1ee4f0dd90c0987266edfd1241bff7d32c08f3bb103129b1b1bcfbf","ssdeep":"","tlshash":"08a0228c2880afcc00be3a28222fb00030a03032028c083c03328000af3008c30c03fe","size":65,"data":"","first_seen":"2026-07-25T07:02:54.119796Z","last_seen":"2026-07-27T05:15:37.039091Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c11d89c2ca93836ea343a05338bd670f","sha1":"62a6ad7f8271078933dcd08d5424e2393bb5da8b","sha256":"5b399a3e0eebfecdf232a414d8d0557d3eaed3041a5641a639e715c63586aaad","sha512":"f7855d7cc1bb2478457e1a465962dd6c7a86607759e9e70be7c3ae6c1eb28484222e8e51d876d28696dc1882c733ff396797d143eb074648d45c6274a8eed8c9","ssdeep":"","tlshash":"9a8004041c04d00c01511d5530df10cc045310d731100554141441c55c773451101d3c","size":34,"data":"","first_seen":"2026-07-25T07:02:54.181325Z","last_seen":"2026-07-27T05:15:37.042375Z","times_seen":420,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"207c220e7119b0530724dc731f2361b4","sha1":"7aa18fcb217183a72060d380ee0150133518dee3","sha256":"645011bcb7ff4bb41b4ecb04213d43dbbf54fef13631581a2a59f7c167aa18fa","sha512":"9c0f5f4d4d2cba1b9b96427bc6a014a81fa6fc98815e7fc6370ef28c0b65d196a6d55fc7d9ccb9125455f8eab715e16847eec069e146de094aefb9e753f21fa3","ssdeep":"","tlshash":"80c022c87b2b0c088352d9ba107b0526d86ac928d94c8760d811fb16a92a25a087bb99","size":192,"data":"","first_seen":"2026-07-25T07:02:54.165992Z","last_seen":"2026-07-27T05:15:37.090608Z","times_seen":435,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"ded6cb7b021faf2355497e718ed7afc0","sha1":"fde446763014ad7c5b2045c021bdfe8ca139fd5d","sha256":"096a45acd89683278277589df946866fc34365c96212f1a60f42b143e5ffb28c","sha512":"160406cdfc444d63df42a6cff7c879049902401b95442e7ce2b82ccbac11aee8f6dbb1eb8382e2d8d21257925b51718eea4518fc53f8161654c3d8eef36546a9","ssdeep":"","tlshash":"25d02ba5b1061051f77079a19262d8989992d6cb2af1cdeb442c41400dbfe045875b14","size":283,"data":"","first_seen":"2026-07-25T07:02:54.081421Z","last_seen":"2026-07-27T05:15:37.091558Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9f502ac14e14405587d798139e860b5f","sha1":"b267cfc679f39f2d95f9d3fa41bca0eafb931aa6","sha256":"39d2483e41bf71db160191d9a148b4bc26c0739e732727e37be0f18bdc8cabca","sha512":"f5bc3d4834c9c4ed165d49476795fb1170fdc577b58fe4b21dfc67cfb4f6eebf045a3812ef48a2f15758e790ce7e111cf9dbd9ffcc3438288c7340e6eeb7661f","ssdeep":"","tlshash":"b1c022ccbb3e600d9121f90031f84e46cb4125ac4407ede3a70128b4448180aca1f406","size":194,"data":"","first_seen":"2024-08-23T10:18:17Z","last_seen":"2026-07-27T05:12:07.556694Z","times_seen":173902,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"2cc43ad532377e05783b919d86a896d9","sha1":"69e00bdb15ac21186c8d27764e6311759ba5b99b","sha256":"007cd5f5a967155b6963ac5de46c369ee23237414c3f576b4197fe46229808ce","sha512":"404182f4b51a22a4a35e58480d372a65db2465803ca23913e379199413edf84fa74dcf0f92026d8561dcc35bdff981cb98a38c8f50ae05f7224e5c7b42b30c92","ssdeep":"","tlshash":"2cd022c93c4978d20279238888ba01f7e2fbb8dc78068b40c32442002a3ca3a5464402","size":199,"data":"","first_seen":"2024-10-31T11:08:50.83142Z","last_seen":"2026-07-27T05:12:07.467697Z","times_seen":155051,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"89124fc63620d83761110bc7e1ba5df9","sha1":"7caa348e5a262dfbebc80293ec34cc3d7e03216b","sha256":"8e1dbf14ae83c99040ff15a1b7c612b72e5847b9d3ef4948fa2a29ddace9971d","sha512":"876865b27affb00d47d87210ce6c7e84373650fbd0a0917fd1fcf949a36b4c5b61c367ebe7aa5c96389499247ff223206dd14fdd197222c9dc22a8c8b19ced44","ssdeep":"","tlshash":"c71000000000000000000000000000000000c000000000000000000000000000300000","size":2,"data":"","first_seen":"2023-03-10T23:00:59Z","last_seen":"2026-07-27T05:15:37.068508Z","times_seen":512,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"4f15bb2d5bb35eef8ed5691a49a89add","sha1":"93dc792cd6f66b017de508d1653d257572b336ef","sha256":"92e207c292ff65d3a04f6cb843c69816f6a1520ba0907168e313bfe2f983c80d","sha512":"cab6a3bfc63b8a7d457b211a2f223bb58cfc2385f4a6a33d7f48812b4747bf0a0d7abfe7979388ed3e467ea5c6d65c688f7ab189a7f3ce0abd21958f9c6f8b5d","ssdeep":"","tlshash":"e6d02ecbb1c0378ab8a66cf4f2b34a0438a322243b8080ec803a36581fe05c8d903d25","size":282,"data":"","first_seen":"2026-07-25T07:02:54.086465Z","last_seen":"2026-07-27T05:15:37.045441Z","times_seen":432,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"bae3f90cb000352645e35fad60da411c","sha1":"00023f94c170125b979cb1914925d06ab1abfbce","sha256":"1e3606d95ce27d593157594820335681a9380f51a96147303cd8000e60a95e12","sha512":"d83d07979674822b4c966ddcb3bd4feb84830834e1f9fb255774ae237056cc357599e3aab9c6f47242aada2148a65c9ea11c859b1e8f550004535cc363fa02db","ssdeep":"","tlshash":"03800000203008388088000f3032cb8afaa0a22ae2322800c8a88c2cb0e8f80ba28838","size":35,"data":"","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-07-27T05:12:07.524878Z","times_seen":182639,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"b640f7845a4341a89d25c0ca0f9b26f4","sha1":"5b98b63751f6e77fe954f5b95388d615eb263003","sha256":"3fdecbfeaacc1474406d975d54141cd22c1be7ed72ccf31bf23f5304e2b50164","sha512":"ec2592241ccbd9a0e93c49ad07121af8cb3acb2a4d8fc25e4f4599a1052d1fb51c9ef8538ac383c52e1205f9b6a17525703f2c4d4bd0d69fc090c04f93943066","ssdeep":"","tlshash":"2dd02b38e11c422b26970b4197c2183b05004642dd011d7b2eae28eb7044c9a9a1481a","size":256,"data":"","first_seen":"2025-03-17T23:26:20.961709Z","last_seen":"2026-07-27T05:12:07.525914Z","times_seen":167048,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f0a14387aa464f863985b6a6bef1d093","sha1":"51a4a9443e6f007f24b04c914d2721b2730ef3d4","sha256":"5d99f2d91f27190245664e4b3f6f485a27e025b4be90857bcafe11ad8e51111e","sha512":"8d05c11c4010e655a48e74dc053f3b5cac9072e3236bddb482312cc9a5c65db32ccb40274919820c6ace897bad2eeb88d4816605a149d1fa22561eb5a23edb61","ssdeep":"","tlshash":"1480000c3e082800000238a0000bc008c83200020800880000ce008c8c3b00e022282a","size":26,"data":"","first_seen":"2026-07-25T07:02:54.137523Z","last_seen":"2026-07-27T05:15:36.99967Z","times_seen":444,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"41cffca8e35a84d3f88f9a25719e1bcd","sha1":"7dc2fe5ff12a7a0748d95c710eaf05536eaf88e7","sha256":"c950106fab05530dced5c2d95d8c8b0082afb6c2434895b968e7e8a208b8f3f0","sha512":"1d6080e041f9cd50074d23dfb1b15d5197813d1c0668dd6a2cea31f264f590029644e6912d6e1beef5931bb634ad4fbac05e1c5dc3d2f9eed4b217a58dd989cf","ssdeep":"","tlshash":"74e026c771603759d0585eb4e27317053c62a081ab4889e9b236f60aabe49ad35e3806","size":338,"data":"","first_seen":"2026-07-25T07:02:54.168496Z","last_seen":"2026-07-27T05:15:37.024621Z","times_seen":438,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c97f06046b55e8dae6a537ed7ae34fef","sha1":"84149880d516a37ca62c27e982f46d830b79caa8","sha256":"131b8b1c3193add0da6e1bc7b54e66e599b02037f372eb68ae1086fe443811f4","sha512":"8cd93216b1b29a3b9551a054b4c950e750d68749d9f6a2c8d7ddec13ec6894949d80c67cd339cd50916de026e15fc81727f9725ae127a9d6604b5989a711fa8f","ssdeep":"","tlshash":"6ef0dc0d48fd83769ac44dc290d33c0ccb0806071cc2610f7a49fb7032632b78497e64","size":485,"data":"","first_seen":"2026-07-25T07:02:54.134293Z","last_seen":"2026-07-27T05:15:37.06243Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"219505d4d5ae5b145370ed3cef98cfa3","sha1":"89498e7304c8074715c729700b3955fc065531b0","sha256":"d298bd11845e65f3a66d13d3a5ab32c91d5430be6dd23c2bb70ef16c03e21751","sha512":"c169611018ff9ff3e5d894a922f07106d329ca6d9668b9dab35bed80b825bbe371edd8cbb5a63171e6f300470e690bf74d7704b7109cf78b286207e396916335","ssdeep":"","tlshash":"314000000000000000c3c000000000000000c000000300000030c00000000000c00000","size":6,"data":"","first_seen":"2024-07-23T18:45:21Z","last_seen":"2026-07-27T05:12:07.531378Z","times_seen":174834,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=G-CT6TVKY4QK","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.104","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"c0f9b6e732ff8249c6d213198ab8e2a0","sha1":"4c7dbd429331cede8fcddc23bc5734742aa673d3","sha256":"a2e794ecd54a0a6347c54fb7190aa6b34f85ba90ce0a567b4d18935da42c656c","sha512":"116dfb49075f99fa4f2b82e22af22fe2590175c0162cbed98b257182aff682c03b943c8218b227e909575bf7f768547e757cc1457cae306895d8b4e92f97f616","ssdeep":"6144:lJTKU0jIWXbP69FMxmRkqn0hdBScPmfxNf3EjKUGxVGaHoXuARR3n:HTT1WLP69V3KGUGxVHOLn","tlshash":"06c40bceb3d674265396f478503f01cba97b25e2b45cc8aab1c9cce02d7464a8167f78","size":550824,"data":"","first_seen":"2026-07-27T02:49:41.00768Z","last_seen":"2026-07-27T03:09:30.391873Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"53f90a23c820f4d35aad5e1fc69c3631","sha1":"adfd381939291c573a7f091f1a486b30a9598190","sha256":"c43f747e9a95c0f6b4b687850f9ddb61fc6791213cfa3bf2c08f7358c1fc93c7","sha512":"757f13afbfba4457e7c08c0ed2cc31146c8174b5b9c42a6e86d3703078d5819a577f061397bdb28f87ddd8f3dfabb09be6cc1623d83644ba6e2d1df26c15e18b","ssdeep":"","tlshash":"f1a0220c288f2032b202bc2280323c08a32f2003e8a0ec0e0028c2c20b30a8e020303f","size":72,"data":"","first_seen":"2026-07-25T07:02:54.130379Z","last_seen":"2026-07-27T05:15:37.064046Z","times_seen":444,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"5206560a306a2e085a437fd258eb57ce","sha1":"c9ee5681d3c59f7541c27a38b67edf46259e187b","sha256":"de5a6f78116eca62d7fc5ce159d23ae6b889b365a1739ad2cf36f925a140d0cc","sha512":"40422e2733a73dec2f9aac48e2ab48d3b2fdcdc1e3a88bc7ea855227e62c029246da1dd49dd057bb8a8b796b3b2a6f60d9d8a85de53df597e422b2f68c54cfb6","ssdeep":"","tlshash":"c70000000000000cc00000300000000000000000000000000000000000000000000000","size":1,"data":"","first_seen":"2023-03-07T12:04:13Z","last_seen":"2026-07-27T05:15:37.029763Z","times_seen":68591,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"3943450e225c6a2fdea1effade0ebd89","sha1":"56469df750b12b2c1ed5849865f5ede8381f153e","sha256":"ea43a462245af07a2916cdf93717d019f698edf00b308541c18dbc4983efc01c","sha512":"853b34dfcfbeb6d4c932a655b3487a87a75bfb08c079e7422078d4e2ec1c151513adaa5414c3ae267e19e2161852123fef5136402b378595e19b0139bfb0bf17","ssdeep":"","tlshash":"2ec08c090b0dd3a6038a6a94610a43aba15184ca7e611c28ab40e0c2e68e5054066a1e","size":149,"data":"","first_seen":"2026-07-25T07:02:54.138561Z","last_seen":"2026-07-27T05:15:37.070186Z","times_seen":436,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"fa317cda84211445676c1cddaaae7c0e","sha1":"56c4706fd639682e3b4522c810eee9ea11f2d38b","sha256":"2740769e28e35690a4f400ce64b425de677a1dc517b2859219e883c874e4a664","sha512":"a6c704bc3492435fa28ff4a72847e656af3f982f8988c051b3d48959f553a38a54e5606c50fbcf73af0300faa637f2b3bbe311484f190131207b31b4a7939008","ssdeep":"","tlshash":"c1c08c4a588022263b707d80c0ba192cb354096b109e8f0f8c2ee3943320f62c00643f","size":155,"data":"","first_seen":"2026-07-25T07:02:54.082992Z","last_seen":"2026-07-27T05:15:37.084803Z","times_seen":429,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"952ddc5ca686660c54f7b74840982b4b","sha1":"fe05b5837e28143d2981f9a67a56e565a7982be7","sha256":"9baacdd193c5a18c5a01ecf248bf7a316f7927c345ee3ec94fdce802d458718e","sha512":"a652cf3cc48705bc2b0fcbb449a0a61fcf31f30ad0feab7697a10c6c0e6485353c815048a9570763d74cddcb857fe49973ced6de10bc5f8239c7671fbe1881e0","ssdeep":"","tlshash":"d5c02b08746220f04e43ce395fbfc804a05c62511720128c216274c80c80a94607308d","size":139,"data":"","first_seen":"2026-07-25T07:02:54.186501Z","last_seen":"2026-07-27T05:15:37.040467Z","times_seen":433,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c2284743fe8a6178f117d584e3091d6e","sha1":"93d24c83d4a695e2a463bf66ea18a3e2147e9148","sha256":"8cf878073f71bf93dd67f56aab913b4a584f5ea15c56ea7030f96b9f26f23a4b","sha512":"7aa1cd340f7dc20e2259c9ef76fc6dd184133548d47ee9cf1c300e8ded20ae3e298748b874bb735dc639bb025be759096e3edfedd1c0396a094748bfe2734cf1","ssdeep":"","tlshash":"28c02bcf30c6da74817d001203179dc48107349f114b808743d040e400174908c1dcd7","size":138,"data":"","first_seen":"2026-02-18T11:53:38.7823Z","last_seen":"2026-07-27T05:12:07.457615Z","times_seen":77568,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"8d8b85adc4d2474a84fbca1381afb3c7","sha1":"3815645d5a8680fd3ed4ce5a3b82f8d432448698","sha256":"3eb8abc484d33a620c974de75babdd2caae4fff7dc8daad7d860dd41c93ee611","sha512":"910cbf3ddef06885833d1127febca48a7f76337a577db0e125a3157ee738bba15ad1d30405e79e1de60279b2605f489b16d8b258fd17bc0c04bce685d65fedfa","ssdeep":"","tlshash":"08a0124823d0a000e671241804070a80b1a069046d1f22048280018d60d0682405c509","size":83,"data":"","first_seen":"2023-03-07T01:02:15Z","last_seen":"2026-07-27T05:12:07.448333Z","times_seen":207677,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"909822438f3880445c5535efb48b46d9","sha1":"00685c680d8f0bfb3dda3154539bb972552fd921","sha256":"894963ac612d3c872d00cfc1a926c6f034036e99512409f06342bff53d723689","sha512":"ce5816d0da41ef048fbcd158120239337d58bf594db8b7deff493beb436c5319220f1b01ea03fd9f4b755b4fd43155f23271e1e27078167041feb5c9a784699f","ssdeep":"","tlshash":"f9c08cd873b61824c2809a73a03b46a1a88ba69c98094440e220f9a9763030d082faa5","size":156,"data":"","first_seen":"2026-07-25T07:02:54.13346Z","last_seen":"2026-07-27T05:15:37.019659Z","times_seen":436,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"771f01104d905386a134a676167edccc","sha1":"51af17721bd7b84218774f9064fe481c033d0b1c","sha256":"46874106f9ac7f3b68a422895aa223e1ea5ed0db860f179f6362cb166c65f8ca","sha512":"0c85b6b14d917b941d01903af93ca93b97b7112355ba3f19f0ac2e243427be9905abb48f24a6dd6c6a72c140bbbc7ed7d231609425b0f132375b0f990ccef8cf","ssdeep":"","tlshash":"c7100000000000000000000000000000000000000000000000030000c00000000c0000","size":2,"data":"","first_seen":"2023-03-07T01:20:09Z","last_seen":"2026-07-27T05:15:37.056531Z","times_seen":1737,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"57cec4137b614c87cb4e24a3d003a3e0","sha1":"23eb4d3f4155395a74e9d534f97ff4c1908f5aac","sha256":"18f5384d58bcb1bba0bcd9e6a6781d1a6ac2cc280c330ecbab6cb7931b721552","sha512":"4921de1edb2ecc8ca3a22823705194b902cfa471675f2d1ae8bf67d0c7b060a7c192e36ffca9f1a0d90ac2dbbdaf429ee1ec97e160eb00dc80b07000935304f3","ssdeep":"","tlshash":"c700000000000000c00030300000000000000000000000000000000300000000000000","size":1,"data":"","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-07-27T05:15:37.053526Z","times_seen":45423,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"32efc8291438b62ef493347e387cca0c","sha1":"cfde2c91f018e6df9094980266806f07d5595723","sha256":"6ea6f07e03fc88bb1c49cd7c10e57e591028e47da7ba7ee2587f34d1b9f3cc54","sha512":"81c67ce5df3bff4092525e1994a46a1798ac52f794c0a30e12fc4b3571bfa81a6d69a60144d8ed3246fe8e42b72a49108992bc01ab56c0b35f5e6c41782c4b5b","ssdeep":"","tlshash":"73e0c0197b572073a1b6288650062fcd6a682c4668c9788bd222794008acdc3544dc42","size":329,"data":"","first_seen":"2026-07-25T07:02:54.071637Z","last_seen":"2026-07-27T05:15:37.026328Z","times_seen":432,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f465da03521180d47c811a98c793a2d6","sha1":"9b76105ff4c8bb84cd630914d772f4cc73df0155","sha256":"e8183224e440eb4578fd87c4c47735f9ede4c43b1c6ebbdcd7033e98aba6a009","sha512":"b10685b1bf88080c98cfa2493e4c1734797a6ee17e9d59ddd7cbd685a9596d4c908ac2a12be9ea2aed3f6ac67ced98f3c6e76b1882f6c0731d1dd60ae5de4156","ssdeep":"","tlshash":"7450000000303000c0c300000030300003000000c00000000300c0000c0000c0000000","size":9,"data":"","first_seen":"2023-03-07T01:02:14Z","last_seen":"2026-07-27T05:12:07.290326Z","times_seen":184834,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"9818af84da6f96579e99ed315f69e0c5","sha1":"7ecf16ebb75bea5bc8309fbecd3e3df799ab4371","sha256":"dfa3bde638cb08d781f46d978f471fe535a642cb24d408bcc486a67c819cc4e4","sha512":"1a5cf2ca1f7c50defc0af583f15e3d2b0e392e8886d39ce5b6d213ee8e01ee3c1131a901b393f05cb8c9ea412fc2598cdbf33dd895e2d284fb9c7dc6ca080aa1","ssdeep":"","tlshash":"c71000000000000000000c000000000000000000000000000000000000000000000000","size":2,"data":"","first_seen":"2023-03-26T11:55:44Z","last_seen":"2026-07-27T05:15:37.066958Z","times_seen":2092,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"c3787754c9ab0b54c83fc20e994fd71e","sha1":"79836961d0829dd4343389004c5f3bd806adeb6b","sha256":"725f4326baec82abc6db3f2144c45f09d47264f86f9fbc21a9825a9e73a7368a","sha512":"8d62d1275f3fe42a18d23ee3f8dfc60eca479b3eef7c05ad6181f2aa36b8c5ba1e937408474d57a33a742058c55f7c3f805a0b48f1f3162596be217a76e9d538","ssdeep":"","tlshash":"a8b01224242de61233322ef180131d2c603a4406425f590ec04de5c0033c0cb40475ef","size":97,"data":"","first_seen":"2026-07-25T07:02:54.156202Z","last_seen":"2026-07-27T05:15:37.021339Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"d48a24ae9672ee573050e4d3aeeebe4d","sha1":"8f8c4d27852980a1ec5a8b1aba30769001314ec8","sha256":"53e5b7d706a350fe98d52499058624e15cddc1541f17370f94a899a386c50255","sha512":"02dd385ce15083c89617859325e29ce885ae235c8c5be416828066dcb5db78e69229802d87aaf759224e2656ab4c23bf1740ae1d357cfdb57ebf78ab77488921","ssdeep":"","tlshash":"43800020202088288888200b20308b8abaa0a228a83a2000a08c8e2cb822e80a038820","size":29,"data":"","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-07-27T05:12:07.414745Z","times_seen":186602,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"a5c244fde4e6f1ade71beed5c11edb59","sha1":"6bc634a7f8505a2ce340807aecfa1e50c2a578b3","sha256":"d561924e4295103128924509bbe71b3eed6625592d75ba3cc35c365189d6081d","sha512":"6ed66e7a246ab961cedd150553b6a9aa692988813dd4ee30c8b7d78d80bb8765a828112c6860d08eb382cae34e22bdd76ecda5ee1c9c7ee25a49b1d2639474f9","ssdeep":"","tlshash":"966000300c000330c0000c00000c0000003300000000003003000c0000300c0000000f","size":13,"data":"","first_seen":"2024-07-23T18:45:20Z","last_seen":"2026-07-27T05:12:07.290992Z","times_seen":173862,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"a5f3c6a11b03839d46af9fb43c97c188","sha1":"a7ee38bb7be4fc44198cb2685d9601dcf2b9f569","sha256":"86be9a55762d316a3026c2836d044f5fc76e34da10e1b45feee5f18be7edb177","sha512":"dddb9ec4c4ac04a2559d9b711eaa8e35475db3c4d6a7a06dde785dc83f3ed121710cb512733c8095ff346fc8601e7a73ecb53fac752010116e692b1ce73c8e59","ssdeep":"","tlshash":"c700000000000000c00000300000000000000000000000000000000c00000000000000","size":1,"data":"","first_seen":"2023-03-07T01:02:19Z","last_seen":"2026-07-27T05:15:10.327851Z","times_seen":86106,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"js.intercomcdn.com/frame.592a94f6.js","fqdn":"js.intercomcdn.com","domain":"intercomcdn.com","tld":"com"},"ip":{"addr":"3.164.240.40","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"5bf2177017b3e1915d1fcef960ccbef3","sha1":"30b428a5f19dfe0aaef8afbccb40ff829a5bbbd5","sha256":"31f4adefb7aec429b24ce1cf7e98614e50b7eea5ab82669b4786c3a5a858f004","sha512":"31401f77ddcfea44b91a53073dc8fc55b46d4ed56737c1d1744e36b75f7701ce8878970173bdeb02c66e8f27a8b609d37cedb37d1e720fa08be8c06d71f0b8a5","ssdeep":"12288:kNmFat0p7kl4r+RdFnGMgo/aH/5w7ZqSPUs/8kxs:TKlfFnG/d/8Wkxs","tlshash":"0745b6ccb2d6f06a43976175813f200af33e6996b44d8054e629e8d1bcb958da237f7c","size":1247851,"data":"","first_seen":"2026-07-24T18:07:21.559236Z","last_seen":"2026-07-27T05:14:04.918177Z","times_seen":214,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/_/ytembeds/_/js/k=ytembeds.base.en_US._88TwyyHKHs.2021.O/am=AAAAgA/d=1/excm=base,root/br=1/rs=AGKMywEu2TQUzdSF0AcsFBMUrFqyurKluw/m=root,base","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"779ffe8039ad87e2a1aa1c111061fae4","sha1":"7765f6360937f90e51dc4974d13c20887adca712","sha256":"9e5e6d330bae7d5d640cf35fbbd6dbac19e4eec6c5bdea7b99a664523269f90f","sha512":"17cd5c8a938106fbe74d4ea623e67c3669683343c08f866700fd6284152c7397141c9ca02451bf6a32808003c4b4bf3fcce72cbbe6c53a851a1da6d254ea3619","ssdeep":"6144:OZaBJxrsw56sgMoiImct8de1F6Suapko3iM80AvhapoXgvWbq/+:FFpgMoircDkMiM80CapoXgvWbq/+","tlshash":"30944cd97762707392a2f5a5902f0103b17a68a6f40c8c7cf798ddd16eb494942bbf38","size":442344,"data":"","first_seen":"2026-07-24T13:29:06.322297Z","last_seen":"2026-07-27T05:15:36.961391Z","times_seen":888,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"83a77a8fa8101ab38a74167392abf2af","sha1":"ecad96d097ab2adb9729e0b0c5f8063e6445e4c7","sha256":"7e8c17ebc1c4489f3752972cf347c83e9eaf85dea4b84c375746377e5216d9d3","sha512":"f2250fb803e1cab98bdeabfe1cf415d3c7a2f3daf7d4d2e650196e709a5aff915427825b1f5e403dcefd704b290b091b69cb1fb437f6e5f69c7a1023a23f0c5a","ssdeep":"","tlshash":"c71000000000000c00000000000000000000000000000000000000000000000c000000","size":2,"data":"","first_seen":"2023-03-26T05:54:38Z","last_seen":"2026-07-27T05:15:37.074752Z","times_seen":7642,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"0d80d99d7f209071a284c9ab6d14accf","sha1":"c91e7389c28a7b35eeb114484808a20cddb8c20e","sha256":"0cb21d1de060008bab472c15c63e6f15828de601f85deff00d701d26c0f6819a","sha512":"59df0ea3f533182f0884e52768ba3b5b1dea918c81a430aed117aa60584df1bfc3569ba05dc9c95426cd97513318e2bc4272ec2771e3528117cefce002576740","ssdeep":"","tlshash":"0aa012b01c1dd3d81271c03118250410d6cc2205f8260d086219825248a81067f02014","size":83,"data":"","first_seen":"2023-03-07T01:02:06Z","last_seen":"2026-07-27T05:12:07.520541Z","times_seen":338672,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"673a875cd33f946c7fb234078db0d89f","sha1":"f1cecf9e970522a619b72e66a124dbf89737b06f","sha256":"e4d6fedd18866f7aa5469a8b90a348fec071f4b82598152a7aac6419edc3ac3b","sha512":"da7502389b64be9c9f1ce98b8976e58b6f1e897b5afd9af08fba27f6d70d01021e08f621eec1d589e2ffe0bd67e8610fd8936fb35623d28eb443631414c11e87","ssdeep":"","tlshash":"c71000c000000003000000000000000000000000000000000000000000000000300000","size":2,"data":"","first_seen":"2023-03-08T06:14:19Z","last_seen":"2026-07-27T05:15:37.067469Z","times_seen":2308,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"30ba2015f57e9fb9a3b395a597ce8f96","sha1":"bea3fe0a47418c0192788fd73b50c3b7f930a3c9","sha256":"f684f5f4f99665c48ebf89434434309281912ca6ae3283b246db5b9b0725e75a","sha512":"3db38cab3bcbb8c7595c8f0d00363bd335a59959c9d266a84b8679341c9c2f9fb4d1f89ae7679bf1c2cde13f1da7f2ec0043e4b1fbc8abdea754c06b095746e3","ssdeep":"","tlshash":"c71000000000000000003000000000030000000c000000000000000000000000000000","size":2,"data":"","first_seen":"2023-03-12T15:19:25Z","last_seen":"2026-07-27T05:15:37.058502Z","times_seen":1016,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"b6a20c0d9da44983aefc2889595774b7","sha1":"a6b83289561646aee8a972f7631e8e92f56cda48","sha256":"2fdd1b9481f875ab3ee4f5d37d4f77142929c0cdf6ced65060f0aa2aed4984a5","sha512":"9baedb500c9f00af4ff8fb892caba990a86a6042c868841f50f6b10c277d8c0566f5ce7049164e86e2bccaa0a786567e18bfb5f3ca7845b5ac65123f207b110c","ssdeep":"","tlshash":"66c022cc7b2b0c088352d9ba107b0566d86ac92cd94c8761d811fb16b92a25a087bba9","size":194,"data":"","first_seen":"2026-07-25T07:02:54.124398Z","last_seen":"2026-07-27T05:15:37.065029Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"65cfbef4976ed897962f8aab52c2e7dd","sha1":"5002f4eb74d361e916cd01adcce97615bb98a93c","sha256":"7ffca58a18354a6fafd52f93908f56bade386cd0181cabc22dde999e040843c9","sha512":"af6eaa50caa0889f6d7d19ae675e875be4d2577826cade64399694acd9a3c494bd35791cc47de33782b2fd996ce97b638289cad79915949a891f5e885da04ddc","ssdeep":"","tlshash":"141154b6393fd032c2e924a6d846ee7a42d08449926210b50fb332c437f6e9cd11ad54","size":1012,"data":"","first_seen":"2026-07-25T07:02:54.112569Z","last_seen":"2026-07-27T05:15:37.048456Z","times_seen":432,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"64d8c858156192a16a990983d35fb3f9","sha1":"1ae03179ebb040c510ecf6f785c0002f21932433","sha256":"bdfd55577f7056ab007e88fcfe9352e9805fc05f504131193cbe81c001162fd3","sha512":"e6c8b62010e24ed3c7a59b3d92aa3165bc2270274b755e8ecee06a238fe29682b08510402a6e8b7b3f85027d7e403447ed4694ec2bc43c136d5c0f1cb1b3f23a","ssdeep":"","tlshash":"cd60000c3f003000000000030000cc30c30cc3c0c0f000f3c003000000000000003f0c","size":15,"data":"","first_seen":"2024-07-23T18:45:21Z","last_seen":"2026-07-27T05:12:07.407513Z","times_seen":171599,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"d224d956791813697309740c0fbcd15e","sha1":"2418655004b5f0f64a6e4075cb8ac4b53444421d","sha256":"48c035187614ea92c5bf66cec55cf8a9a0a30eaabd1bfd51234d0d5e44c93d65","sha512":"c1005f866f7b788b9fd04d3374ef4405bbadde272bf42c4bd0f8cf942bf1e9f6ebd13d50284f2eb5da4e5fd783c16dd4ef54f7e24e8eaf62496d2e744ffe13eb","ssdeep":"","tlshash":"ea8000083e08ae00800238a0280bc008c832003a0c20880000c800a80cbe02e020282a","size":26,"data":"","first_seen":"2026-07-25T07:02:54.182324Z","last_seen":"2026-07-27T05:15:37.055482Z","times_seen":444,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"37051dbe85a36239dda2c2d0af9b328a","sha1":"7d1741c1823eedcb9f90cf15bcec255ce4270c98","sha256":"ad7fece7cc20e7af63da127ccd71979b14b7d02c60526deb52e1e985c4f92c76","sha512":"d6443268e97958dbba496787bfab4ae71709996624ece68f1f89b66a6ee7273997f95e2cbc5c78df367005531d51eb9cc1a9296bced3259271c76314f4e3b962","ssdeep":"","tlshash":"bfa0223c3c383002320a2c20088b82cae0202330f0880802c020cc8220fb20c830ae3b","size":71,"data":"","first_seen":"2026-07-25T07:02:54.078023Z","last_seen":"2026-07-27T05:15:37.025592Z","times_seen":436,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"4c62bc4fd3c4e105cb3fb62fb748d59c","sha1":"f6e2d1e74e35ec4c4740ba02e890b98bda11417f","sha256":"9f4a6a370cd350425d8ac08047e7646116468672e99765ca198e6d463ee5286d","sha512":"5cb125ce0b7fdde81c6df58f6e27943a130f0d9e2a366d94ea8ed926da635dfe2b2c5778a14ed99bb35c7b2a48dcd12090cbac18370611d1c0438e1c2621efb4","ssdeep":"","tlshash":"6cd0129b738060e3d797fea709580020c1ef0b8402d2753d42d5d51070fe9ce83461e3","size":203,"data":"","first_seen":"2023-06-16T07:31:00Z","last_seen":"2026-07-27T05:12:07.419904Z","times_seen":190615,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"7121a3428492966c83430108c81b0128","sha1":"faa54a8131b597a6b972810794c8ac848b67b351","sha256":"6ece104aeb4ca53d9261705afb936cd0bebf554bd318f77613325b124a234c24","sha512":"8f54791b217786c95592d4411cc15e5cfdc7432d5db0617f60ce69a260cee1e7fd968b441bc4a2e40cdd6af24c25051881dc4b934bb3458a152b4503d52e13a1","ssdeep":"","tlshash":"c710000000000000000000000000000000000003000000000000000000000000300300","size":2,"data":"","first_seen":"2023-03-07T23:42:40Z","last_seen":"2026-07-27T05:15:37.04388Z","times_seen":2538,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/player/7a7969c2/player_embed_es6.vflset/en_US/base.js","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"ad17d7aaa5500fe1d163e297a0cb3628","sha1":"4607dffbd44e617ef494ece0d8770698d1541cad","sha256":"e8273aae46fb97f1786246772222f93463401dfcf2a0956928723ab6de5ebba0","sha512":"f787cdda2c4d3a5d970765c62929e3fb088af57fe2ef62bd9f8debe4064d563a4ac72ed8bd8c0425e9dc22766b1915a5004593d1b8652033d43e6d45245c3b96","ssdeep":"24576:JddEUuuYnFCL4xFUnYNmJYqJNI5Dt/yV2hD4k494v5/CTEF6:fdhuuYnFCL4MVJBJO5DtKV2hd49p","tlshash":"10755c9977e2b86343b2e0e5685f0142f23f584854ccd12cb97df9e52da0d0a617afb8","size":1597230,"data":"","first_seen":"2026-07-22T15:37:53.90669Z","last_seen":"2026-07-27T05:15:37.071903Z","times_seen":1351,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"382df8f48d5107dd2a96921030e79c0e","sha1":"19bd60f0b2ee5dd0d3ba977e9a464d03cf135682","sha256":"5893dbf7b9a7496a0d79489a22f335b0d20530e25f0b95656b206bf44d9bc139","sha512":"31f04d2c5e1759fe8774b17908257fc5e07199b54c7ff483008d92ee115393e249d0e8ae814a57758638a7ef3169a4a485812762f2efbc92be6cf307780f7741","ssdeep":"","tlshash":"f8b092191f6d822948a4760c66ab478ab8f8045299005c15b300648816a8e84009ae2a","size":109,"data":"","first_seen":"2026-07-25T07:02:54.150949Z","last_seen":"2026-07-27T05:15:37.038534Z","times_seen":442,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"288f4801942ba7fe2e468ad22eb3b34c","sha1":"93c816901b3435f6f5cf6b2bd92e6727e442a895","sha256":"3f0ed40e2c3c5964be4eedf2e9176f9987135e03e131c9e4faa1334b3d0f179b","sha512":"118664d8321242dd85ca89acfa377dca6520b707e6efe6ffa76f2d06facc829277bda47b5889021d70cd3f1a9a382ca7fbe5e41502906853f7527222f9a33659","ssdeep":"","tlshash":"c9e0c05d611b7411b0c03cd1d5cf1498f0f42236c5ce0c1d8375d4c012a2ced569cf19","size":348,"data":"","first_seen":"2026-07-25T07:02:54.136642Z","last_seen":"2026-07-27T05:15:37.059515Z","times_seen":437,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"4e5784c2f559c1f257d3fe1adff1b994","sha1":"a8bb93b81e79497dcbaea5f08618abe3e13614d5","sha256":"9abd5bd5bc72c038c0276119bd897de57b661a0e4b0d9849758dd698f4b11d10","sha512":"a66be2c2557a5eae52f07ea28edae7acf52d9ab08345204fc42a161d1c474ac05d43323229367c9eaffc197970a47846353096695ff79bb6fc820a804c268af4","ssdeep":"","tlshash":"19c02b08746220f04a43ce395fbfc804a05c62511720128c216274c80c80a94607308d","size":137,"data":"","first_seen":"2026-07-25T07:02:54.148131Z","last_seen":"2026-07-27T05:15:37.090165Z","times_seen":435,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"cb8abb683722cea7fb115342abc554ef","sha1":"776b83217d825a68ed51f891fb2d360c233eb726","sha256":"139ffca75e64693ada18ad987a1d7881947ff41ed7784d3dcf349f5915124464","sha512":"7fceeb9ba20bab9484738d20748f7a935aca6ab7d869417d3629d2db9884afba198b09c6fdca26a84d90d6fa5676000775da441daf4e9940fc687e476ae54a67","ssdeep":"","tlshash":"9fd097c46bbb982c4984ce2b40331131d049a21c8e080c50b230fb3bf7a075b243b0d1","size":231,"data":"","first_seen":"2026-07-25T07:02:54.205479Z","last_seen":"2026-07-27T05:15:37.011563Z","times_seen":430,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"7bfa335530acd41b8967a37e1c3e076c","sha1":"bdd8d14050dd0955829601ee023b1d449a9dd9b6","sha256":"ef226bb136cc66226cb2c478dc58478eb1fde25b90960098b4b48eaa64465b23","sha512":"feeca3580d39cf46c2d2f6719da557fdafd0278ce21b7e2710aefe013293c853c0ddafc3045baa1fc2ccc483191b5d89d47cedb49a52e3c55012e4718affa3ed","ssdeep":"","tlshash":"97c02bc49d5110548141e0bda13e215a30cab1031c200e10d730c2eb7c357d4100f74f","size":138,"data":"","first_seen":"2026-07-25T07:02:54.178036Z","last_seen":"2026-07-27T05:15:37.092511Z","times_seen":429,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/_/ytembeds/_/js/k=ytembeds.base.en_US._88TwyyHKHs.2021.O/ck=ytembeds.base.NxniuuZETZw.L.F4.O/am=AAAAgA/d=1/exm=base,root/excm=base,root/ed=1/br=1/rs=AGKMywHU6qHNitns5XqYEK-2yyUEaGOVkQ/m=r78Drb","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"6f2dc696d3e2c5e8b0536728ac5a3aea","sha1":"8da6a7915f0b3ff607db13862fc417574d8d4999","sha256":"4036991c2199a96276eabd866d75631508768ad958639f2ef3d985061bddef47","sha512":"481bcb7979552bb2b61e9faaf2cc6abdeeb36c7e5e4e0a483ba1e93c62bea4c29bd94f525ec183b9a9bb4518f02e3e9748be080d771f801fa3cc7d4e73a09116","ssdeep":"12288:Rhrh0EencTyXGld16WDVcIm4zDSG8UvCeoBJjlXc7WPz6/wWXqkZTNvl6hkTeubf:R41jofemc+tD70LCSn4AqVnYU1YtsxDT","tlshash":"a2159ff0b25271b4d147b926fab7c003b57e4903e2081879f0a7ae9c55fca942e77729","size":942843,"data":"","first_seen":"2026-07-24T13:38:07.888738Z","last_seen":"2026-07-27T05:16:58.366925Z","times_seen":351,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"f09564c9ca56850d4cd6b3319e541aee","sha1":"c3156e00d3c2588c639e0d3cf6821258b05761c7","sha256":"4ae81572f06e1b88fd5ced7a1a000945432e83e1551e6f721ee9c00b8cc33260","sha512":"2ddcd5fd66f62c38135603defc728493bc9012c9ea6abc8a9823165792136513b2c53722d2a79c0d6ea31467308bbb49eb217d151d79baf4b2085f487d0abfae","ssdeep":"","tlshash":"c700000000000300c00000300000000000000000000000000000000000000000000000","size":1,"data":"","first_seen":"2023-03-07T01:15:12Z","last_seen":"2026-07-27T05:15:37.000142Z","times_seen":57623,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"24cc3dc813f384fde380df619f1525cb","sha1":"56399e3ce57ff98d68c7de98a563e572230dff6b","sha256":"5421715bbdaf2550e31d10fc28d444310a8fe7147bbddecf0abb490358a1553b","sha512":"fdb6e7d3b9452cc36c1e877ebe47c50c82fd413f2cef945f808e47b081da88ae6aaac7aa14386687c59479e19c856f6031d7ae666fe9c5b54a0b6fe37fa062f7","ssdeep":"","tlshash":"027000c008088802080aa02008800080220088023e0a0e0008200000832000280a28aa","size":19,"data":"","first_seen":"2023-03-07T01:02:05Z","last_seen":"2026-07-27T05:12:07.544Z","times_seen":234946,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"06940d1ec461f6967164c26d60cbaefc","sha1":"2dd63cac632d95db488d6221109b5f3f932c9999","sha256":"c9f3959e3d485cc26bd83a108824fe7039921005faa810892c704386b9572acd","sha512":"4abc10cb04a87ffa25293243f9bb9d4498d4a1acebe89e239cdc92058d9f491da6b5de3ea698c856e62b3153c7d006aa340ee50912e29f019752453976fce2bb","ssdeep":"","tlshash":"ebb01224281de61233322ef080131d2c603b4402424f551ec44ce5c2032c0ce80475eb","size":96,"data":"","first_seen":"2026-07-25T07:02:54.115267Z","last_seen":"2026-07-27T05:15:37.078657Z","times_seen":437,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"86649f7e1c723028d2f82b2c50600d69","sha1":"d054d66e4c26951897c16eb69e57f9803279cdbf","sha256":"7c890a86937b21a7c49e2b3888877244c5442926548497319e537f237e78ef13","sha512":"82625c492170b8a8bc520d8e53c837ff8b7f02e4dd0e442c24edf74abdae64db605c53ef7171b7083f234b32d79179662aada511875ce13842c04185e8111905","ssdeep":"","tlshash":"c3d022072187ddb6a2729804030afa15b0ff100b0e262606f3c885026734b8cc262997","size":212,"data":"","first_seen":"2026-07-25T07:02:54.167434Z","last_seen":"2026-07-27T05:15:37.092041Z","times_seen":435,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"8019a2b7d49c53a548a55f046b75eb57","sha1":"4db451122874d00f6b6fc751e5545823a75b818a","sha256":"e313eabc79a57bc0506d61fce96ce2b6dd9cd635130b8c8d029fe24db01ce844","sha512":"e945ce874884b5d67375a48bf9169e85c9f19519dcd646eeced82292b23f9174af233c378fa483ed79a04fef47ea55c9fe0f8ec71a2bfb18c714efe75c3a112f","ssdeep":"","tlshash":"38c08ce873b61824c2809ab3a03b46a1a88ba69c98094440e220f9a9763030d082faa5","size":158,"data":"","first_seen":"2026-07-25T07:02:54.159204Z","last_seen":"2026-07-27T05:15:37.063525Z","times_seen":431,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"eval","is_inline":false,"md5":"6b74d263b2f181bb8c759bdb049f2cca","sha1":"f4ee289de7015e0faac2be30edb6240a6d7c6139","sha256":"e5a9bf69c1f1f7fa5574037a92b8b3dfc6ba7b0479d1d9e7347d39a0bdc41753","sha512":"10bbf90be8836779b50b0da8ce0f1773f474e604cc0d10101267cf42c41ab78d27a2609f824a3493b235650ac7bff8777cc297feb6a000dd7b6aacaaab88597c","ssdeep":"","tlshash":"527000083c08a200022238a2e0ab00280022000022808a0080c000a00c3200ab00a80a","size":22,"data":"","first_seen":"2026-07-25T07:02:54.203661Z","last_seen":"2026-07-27T05:15:37.029304Z","times_seen":436,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":null},"http":[{"url":{"schema":"https","addr":"www.youtube.com/s/player/7a7969c2/www-player.css","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.youtube.com/embed/Ymge-qh3m4E","date":"2026-07-27T03:07:40.421Z","timestamp":1785121660421,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /s/player/7a7969c2/www-player.css HTTP/1.1\r\nHost: www.youtube.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/embed/Ymge-qh3m4E\r\nCookie: __Secure-YNID=20.YT=OD2AqDJJ5KCd2FQHST0PP6nm_PUnOmOKKW_5n2sU3Uto7bgqmGZVezTy0eT5Ch1tu0JzTUorYggNVLrq4iBbxMgjKYV2etvlvytuKk4TF9mvut1pghwMJgUbuW8p4XdgsmD-iSy6zHQlRAhB-JrbMaRe5h5KsRdBUFWbvsxsNeH89V6KOOjVPuXhJsEWmIkl-LvE1HpLYRq5EZFVQYIOUs-Z8R5-lI8AE0vJVBeC2LGwT5UqkcaMp_COMwshp2EEUXAKmfxi2oM6g3JxUmkhMTmLxZ6-dd5IROcdvW6cdIjiQ0GqdQz5GxuAM3oOINnB4Vt5On4L4U_Gl5n7h1P_CQ; YSC=IgHKWvjgj0E; __Secure-ROLLOUT_TOKEN=CNnI7u31yczMShCAqsGz8PGVAxiAqsGz8PGVAw%3D%3D; VISITOR_INFO1_LIVE=mzxiTe7ERp4; VISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgIw%3D%3D\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\naccept-ranges: bytes\r\ncontent-encoding: br\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"youtube\"\r\nreport-to: {\"group\":\"youtube\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube\"}]}\r\ncontent-length: 57346\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 23:45:20 GMT\r\nexpires: Thu, 22 Jul 2027 23:45:20 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Wed, 22 Jul 2026 04:34:15 GMT\r\ncontent-type: text/css\r\nvary: Accept-Encoding, Origin\r\nage: 357740\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":525369,"size_decoded":58026,"mime_type":"text/css","magic":"Unicode text, UTF-8 text, with very long lines (65534), with no line terminators","md5":"839a152020ccf30ae48724d0b0c7b838","sha1":"dc9e04d667f3ebd589549aaa4cfc8a8e887505e1","sha256":"921b6856085a224b1ca2e5db139b1788c01d4dd1e70daca7006b6a7b381bdae1","sha512":"efc3700ca9d21022fb13b33c526a2f9f6c73c6c063957504b3b8ed58ef9512fa815c7f915f522af2f3fa73dd7cbfd6634566ad1dc6c86f11f4ed0a4b74f824ce","ssdeep":"6144:s8d5Fe/qoMOg7USBfUIoImM5Kia68Oi4u7:3YxMOg7USiIoIr5Kia6Tg","tlshash":"8eb4d972f0a1233cb2278d59a7d9d54d7339d983e2e12aeff11166dacbc77811326206","first_seen":"2026-07-14T08:36:18.809394Z","last_seen":"2026-07-27T05:12:07.080827Z","times_seen":4581,"resource_available":false,"data":"QGNoYXJzZXQgIlVURi04IjsuaHRtbDUtdmlkZW8tcGxheWVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MDtvdXRsaW5lOjA7Zm9udC1mYW1pbHk6WW91VHViZSBOb3RvLFJvYm90byxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtjb2xvcjojZWVlO3RleHQtYWxpZ246bGVmdDtkaXJlY3Rpb246bHRyO2ZvbnQtc2l6ZToxMXB4O2xpbmUtaGVpZ2h0OjEuMzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259Lmh0bWw1LXZpZGVvLXBsYXllciwueXRwLWNvbnRleHRtZW51ey1tcy1oaWdoLWNvbnRyYXN0LWFkanVzdDpub25lO2ZvcmNlZC1jb2xvci1hZGp1c3Q6bm9uZX0uaHRtbDUtdmlkZW8tcGxheWVyLmFkLXNob3dpbmcsLmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlLC5odG1sNS12aWRlby1wbGF5ZXIudW5zdGFydGVkLW1vZGUsLmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC10cmFuc3BhcmVudCl7YmFja2dyb3VuZC1jb2xvcjojMDAwfS55dGQtdmlkZW8tbWFzdGhlYWQtYWQtcHJpbWFyeS12aWRlby1yZW5kZXJlciAuaHRtbDUtdmlkZW8tcGxheWVyLmFkLXNob3dpbmcsLnl0ZC12aWRlby1tYXN0aGVhZC1hZC1wcmltYXJ5LXZpZGVvLXJlbmRlcmVyIC5odG1sNS12aWRlby1wbGF5ZXIuZW5kZWQtbW9kZSwueXRkLXZpZGVvLW1hc3RoZWFkLWFkLXByaW1hcnktdmlkZW8tcmVuZGVyZXIgLmh0bWw1LXZpZGVvLXBsYXllci51bnN0YXJ0ZWQtbW9kZSwueXRkLXZpZGVvLW1hc3RoZWFkLWFkLXByaW1hcnktdmlkZW8tcmVuZGVyZXIgLmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC10cmFuc3BhcmVudCl7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ueXRwLWJpZy1tb2Rle2ZvbnQtc2l6ZToxN3B4fS55dHAtYXV0b2hpZGV7Y3Vyc29yOm5vbmV9Lmh0bWw1LXZpZGVvLXBsYXllciBhe2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOmNvbG9yIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246Y29sb3IgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7b3V0bGluZTowfS5odG1sNS12aWRlby1wbGF5ZXIgYTpob3Zlcntjb2xvcjojZmZmOy13ZWJraXQtdHJhbnNpdGlvbjpjb2xvciAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmNvbG9yIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtcHJvYmFibHkta2V5Ym9hcmQtZm9jdXMgYTpmb2N1c3std2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAwIDAgMnB4IHJnYmEoMjcsMTI3LDIwNCwuOCk7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC44KX0uaHRtbDUtdmlkZW8tcGxheWVyIGgxLC5odG1sNS12aWRlby1wbGF5ZXIgaDJ7bWFyZ2luOjB9Lmh0bWw1LXZpZGVvLXBsYXllciBzdmd7cG9pbnRlci1ldmVudHM6bm9uZX0uaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLXRvdWNoLW1vZGUpIDo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6MTBweDtiYWNrZ3JvdW5kLWNvbG9yOiM0MjQyNDJ9Lnl0cC1iaWctbW9kZTpub3QoLnl0cC10b3VjaC1tb2RlKSA6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjE1cHh9Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC10b3VjaC1tb2RlKSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mn0uaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLXRvdWNoLW1vZGUpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojOGU4ZThlO2JvcmRlcjoxcHggc29saWQgIzQyNDI0Mjtib3JkZXItcmFkaXVzOjVweH0ueXRwLWJpZy1tb2RlOm5vdCgueXRwLXRvdWNoLW1vZGUpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7Ym9yZGVyLXJhZGl1czo4cHh9Lmh0bWw1LXZpZGVvLWNvbnRhaW5lcnt6LWluZGV4OjEwO3Bvc2l0aW9uOnJlbGF0aXZlfS55dHAtZW1iZWQtZXJyb3IgLmh0bWw1LXZpZGVvLWNvbnRhaW5lcntkaXNwbGF5Om5vbmV9Lmh0bWw1LW1haW4tdmlkZW97cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3V0bGluZTowfS55dHAtZml0LWNvdmVyLXZpZGVvIC5odG1sNS1tYWluLXZpZGVvey1vLW9iamVjdC1maXQ6Y292ZXI7b2JqZWN0LWZpdDpjb3Zlcn0uaHRtbDUtbWFpbi12aWRlb1tkYXRhLW5vLWZ1bGxzY3JlZW49dHJ1ZV06Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b257ZGlzcGxheTpub25lfS5odG1sNS1tYWluLXZpZGVvOm5vdChbY29udHJvbHNdKTo6LXdlYmtpdC1tZWRpYS1jb250cm9scywuaHRtbDUtbWFpbi12aWRlbzpub3QoW2NvbnRyb2xzXSk6Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtc3RhcnQtcGxheWJhY2stYnV0dG9ue2Rpc3BsYXk6bm9uZX0uaHRtbDUtbWFpbi12aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZXtkaXNwbGF5OmlubGluZX0udW5zdGFydGVkLW1vZGUgLmh0bWw1LW1haW4tdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtc3RhcnQtcGxheWJhY2stYnV0dG9ue2Rpc3BsYXk6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjMyNXB4KXsuaHRtbDUtbWFpbi12aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVzcy1wbGF5YmFjay1waWNrZXItYnV0dG9ue2Rpc3BsYXk6bm9uZX19Lmh0bWw1LW1haW4tdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksLmh0bWw1LW1haW4tdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheXtkaXNwbGF5Oi13ZWJraXQtZmxleH0ueXRwLXBsYXllci1jb250ZW50e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO3RvcDo0OHB4O2JvdHRvbTo2MXB4Oy13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLHRvcCAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLHRvcCAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wbGF5ZXItY29udGVudHtib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIDE0cHgpfS55dHAtZGVsaGktbW9kZXJuOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKTpub3QoLmFkLXNob3dpbmcpIC55dHAtcGxheWVyLWNvbnRlbnR7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgNzJweCkgKyAxNHB4KX0ueXRwLWRlbGhpLW1vZGVybjpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSk6bm90KC5hZC1zaG93aW5nKS55dHAtaGFzLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9ucyAueXRwLXBsYXllci1jb250ZW50e2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgOTRweCl9Lnl0cC1kZWxoaS1tb2Rlcm46bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpOm5vdCguYWQtc2hvd2luZykueXRwLWhhcy1mdWxsc2NyZWVuLXF1aWNrLWFjdGlvbnMueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtcGxheWVyLWNvbnRlbnR7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgNzJweCkgKyA5NHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLWRlbGhpLW1vZGVybjpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSk6bm90KC5hZC1zaG93aW5nKS55dHAtYmlnLW1vZGUgLnl0cC1wbGF5ZXItY29udGVudHtib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA5NnB4KSArIDE0cHgpfS55dHAtZGVsaGktbW9kZXJuOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKTpub3QoLmFkLXNob3dpbmcpLnl0cC1iaWctbW9kZS55dHAtaGFzLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9ucyAueXRwLXBsYXllci1jb250ZW50e2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgOTRweCl9Lnl0cC1kZWxoaS1tb2Rlcm46bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpOm5vdCguYWQtc2hvd2luZykueXRwLWJpZy1tb2RlLnl0cC1oYXMtZnVsbHNjcmVlbi1xdWljay1hY3Rpb25zLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLXBsYXllci1jb250ZW50e2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgOTRweCArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSl9Lnl0cC1zbWFsbC1tb2RlIC55dHAtcGxheWVyLWNvbnRlbnR7Ym90dG9tOjQ5cHh9Lnl0cC1lbWJlZCAueXRwLXBsYXllci1jb250ZW50e2JvdHRvbTo1M3B4fS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLXBsYXllci1jb250ZW50Om5vdCgueXRwLXVwbmV4dCl7dG9wOjYwcHh9Lnl0cC1iaWctbW9kZSAueXRwLXBsYXllci1jb250ZW50e3RvcDo2OXB4O2JvdHRvbTo3MHB4fS55dHAtYmlnLW1vZGUueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykgLnl0cC1wbGF5ZXItY29udGVudDpub3QoLnl0cC11cG5leHQpe3RvcDo4OXB4fS55dHAtcGxheWVyLWNvbnRlbnQueXRwLWl2LXBsYXllci1jb250ZW50LC55dHAtcGxheWVyLWNvbnRlbnQueXRwLXRpbWVseS1hY3Rpb25zLWNvbnRlbnR7bGVmdDoxMnB4O3JpZ2h0OjEycHh9Lnl0cC1icmFuZGluZy1zaG93biAueXRwLXBsYXllci1jb250ZW50Lnl0cC10aW1lbHktYWN0aW9ucy1jb250ZW50e3JpZ2h0OmNhbGMoMjJweCArIHZhcigtLWJyYW5kaW5nLWltYWdlLXdpZHRoKSl9Lnl0cC1iaWctbW9kZSAueXRwLXBsYXllci1jb250ZW50Lnl0cC1pdi1wbGF5ZXItY29udGVudCwueXRwLWJpZy1tb2RlIC55dHAtcGxheWVyLWNvbnRlbnQueXRwLXRpbWVseS1hY3Rpb25zLWNvbnRlbnR7bGVmdDoyNHB4O3JpZ2h0OjI0cHh9Lnl0cC1icmFuZGluZy1zaG93bi55dHAtYmlnLW1vZGUgLnl0cC1wbGF5ZXItY29udGVudC55dHAtdGltZWx5LWFjdGlvbnMtY29udGVudHtyaWdodDpjYWxjKDIycHggKyB2YXIoLS1icmFuZGluZy1pbWFnZS13aWR0aCkpfS55dHAtYXV0b2hpZGUgLnl0cC1wbGF5ZXItY29udGVudDpub3QoLmh0bWw1LWVuZHNjcmVlbiksLnl0cC1hdXRvaGlkZSAueXRwLXBsYXllci1jb250ZW50Om5vdCgueXRwLXVwbmV4dCksLnl0cC1oaWRlLWluZm8tYmFyIC55dHAtcGxheWVyLWNvbnRlbnR7dG9wOjA7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSx0b3AgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksdG9wIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYXV0b2hpZGUgLnl0cC15cGMtcGxheWVyLWNvbnRlbnQsLnl0cC1oaWRlLWNvbnRyb2xzIC55dHAtcGxheWVyLWNvbnRlbnR7Ym90dG9tOjB9Lnl0cC1hdXRvaGlkZTpub3QoLnl0cC1hZC1vdmVybGF5LW9wZW4pIC55dHAtaXYtcGxheWVyLWNvbnRlbnQsLnl0cC1hdXRvaGlkZTpub3QoLnl0cC1hZC1vdmVybGF5LW9wZW4pIC55dHAtdGltZWx5LWFjdGlvbnMtY29udGVudCwueXRwLWhpZGUtY29udHJvbHMgLnl0cC1pdi1wbGF5ZXItY29udGVudCwueXRwLWhpZGUtY29udHJvbHMgLnl0cC10aW1lbHktYWN0aW9ucy1jb250ZW50e2JvdHRvbToxMnB4fS55dHAtdGltZWx5LWFjdGlvbnMtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtyaWdodDowO3otaW5kZXg6MzU7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpOy13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTouMzNzO3RyYW5zaXRpb24tZGVsYXk6LjMzc30ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktYm90dG9tLXJpZ2h0IC55dHAtcGxheWVyLWNvbnRlbnQueXRwLXRpbWVseS1hY3Rpb25zLWNvbnRlbnQsLnl0cC1vdmVybGF5cy1jb250YWluZXIgLnl0cC1vdmVybGF5LWJvdHRvbS1yaWdodCAueXRwLXRpbWVseS1hY3Rpb25zLW92ZXJsYXl7cG9zaXRpb246cmVsYXRpdmU7aW5zZXQ6MH0ueXRwLWZpbmUtc2NydWJiaW5nLWVuYWJsZSAueXRwLXRpbWVseS1hY3Rpb25zLW92ZXJsYXl7ZGlzcGxheTpub25lfS55dHAtYWQtb3ZlcmxheS1vcGVuIC55dHAtcGxheWVyLWNvbnRlbnR7Ym90dG9tOjE1MXB4fS55dHAtc21hbGwtbW9kZS55dHAtYWQtb3ZlcmxheS1vcGVuIC55dHAtcGxheWVyLWNvbnRlbnR7Ym90dG9tOjEzOXB4fS55dHAtZW1iZWQueXRwLWFkLW92ZXJsYXktb3BlbiAueXRwLXBsYXllci1jb250ZW50e2JvdHRvbToxNDNweH0ueXRwLWJpZy1tb2RlLnl0cC1hdXRvaGlkZTpub3QoLnl0cC1hZC1vdmVybGF5LW9wZW4pIC55dHAtaXYtcGxheWVyLWNvbnRlbnQsLnl0cC1iaWctbW9kZS55dHAtYXV0b2hpZGU6bm90KC55dHAtYWQtb3ZlcmxheS1vcGVuKSAueXRwLXRpbWVseS1hY3Rpb25zLWNvbnRlbnQsLnl0cC1iaWctbW9kZS55dHAtaGlkZS1jb250cm9scyAueXRwLWl2LXBsYXllci1jb250ZW50LC55dHAtYmlnLW1vZGUueXRwLWhpZGUtY29udHJvbHMgLnl0cC10aW1lbHktYWN0aW9ucy1jb250ZW50e2JvdHRvbToyNHB4fS55dHAtYmlnLW1vZGUueXRwLWFkLW92ZXJsYXktb3BlbiAueXRwLXBsYXllci1jb250ZW50e2JvdHRvbToxNjBweH0ueXRwLWJ1dHRvbntib3JkZXI6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3BhZGRpbmc6MDtjb2xvcjppbmhlcml0O3RleHQtYWxpZ246aW5oZXJpdDtmb250LXNpemU6MTAwJTtmb250LWZhbWlseTppbmhlcml0O2N1cnNvcjpkZWZhdWx0O2xpbmUtaGVpZ2h0OmluaGVyaXR9Lnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24gc3Zne3BhZGRpbmc6dmFyKC0teXQtZGVsaGktcGlsbC10b3AtaGVpZ2h0LDEycHgpIDEycHh9Lnl0cC1iaWctbW9kZS55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uIHN2Z3t2ZXJ0aWNhbC1hbGlnbjp0b3A7cGFkZGluZzpjYWxjKCh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkgLSAyNHB4KS8yKX0ueXRwLXhzbWFsbC13aWR0aC1tb2RlLnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMgLnl0cC1sZWZ0LWNvbnRyb2xzIC55dHAtbXV0ZS1idXR0b24ueXRwLXN0YW5kYWxvbmUtbXV0ZS1idXR0b24gc3Zne3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7cGFkZGluZzo5cHh9Lnl0cC14c21hbGwtd2lkdGgtbW9kZS55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtcmlnaHQtY29udHJvbHMgLnl0cC1idXR0b246bm90KC55dHAtZXhwYW5kLXJpZ2h0LWJvdHRvbS1zZWN0aW9uLWJ1dHRvbikgc3Zne3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7cGFkZGluZzo3cHh9Lnl0cC14c21hbGwtd2lkdGgtbW9kZS55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtcmlnaHQtY29udHJvbHMgLnl0cC1leHBhbmQtcmlnaHQtYm90dG9tLXNlY3Rpb24tYnV0dG9uLnl0cC1idXR0b24gc3Zne3BhZGRpbmc6MH0ueXRwLWJ1dHRvbiwueXRwLWJ1dHRvbjpmb2N1c3tvdXRsaW5lOjB9Lnl0cC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7cGFkZGluZzowO2JvcmRlcjowfS5odG1sNS12aWRlby1wbGF5ZXIgLnl0cC1idXR0b25bYXJpYS1kaXNhYmxlZD10cnVlXSwuaHRtbDUtdmlkZW8tcGxheWVyIC55dHAtYnV0dG9uW2Rpc2FibGVkXXtvcGFjaXR5Oi41fS55dHAtYnV0dG9uOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSk6bm90KFtkaXNhYmxlZF0pOm5vdChbYXJpYS1oaWRkZW49dHJ1ZV0pe2N1cnNvcjpwb2ludGVyfS55dHAtcHJvYmFibHkta2V5Ym9hcmQtZm9jdXMgLnl0cC1idXR0b246Zm9jdXN7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCByZ2JhKDI3LDEyNywyMDQsLjgpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMnB4IHJnYmEoMjcsMTI3LDIwNCwuOCl9Lnl0cC1jaHJvbWUtYm90dG9tLC55dHAtY2hyb21lLXRvcHtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LXNoYWRvdzowIDAgMnB4IHJnYmEoMCwwLDAsLjUpfS55dHAtZG5pIC55dHAtY2hyb21lLWJvdHRvbXt0ZXh0LXNoYWRvdzpub25lfS55dHAtY2hyb21lLXRvcHtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtd3JhcDpub3dyYXA7ZmxleC13cmFwOm5vd3JhcDstd2Via2l0LWJveC1wYWNrOmVuZDstd2Via2l0LWp1c3RpZnktY29udGVudDpmbGV4LWVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7bGVmdDoxMnB4O3JpZ2h0OjEycHg7dG9wOjA7ei1pbmRleDo1OH0ueXRwLXNob3J0cy1tb2RlIC55dHAtY2hyb21lLXRvcHstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cmlnaHQ6MH0ueXRwLWd2biAueXRwLWNocm9tZS10b3AsLnl0cC1ndm4ueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLXRvcHt0b3A6MjBweH0ueXRwLWNocm9tZS1ib3R0b217Ym90dG9tOjA7aGVpZ2h0OjQ4cHg7d2lkdGg6MTAwJTt6LWluZGV4OjU5O3BhZGRpbmctdG9wOjNweDt0ZXh0LWFsaWduOmxlZnQ7ZGlyZWN0aW9uOmx0cn0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1ib3R0b217aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsNzJweCl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtYm90dG9tLnl0cC12b2x1bWUtcG9wb3Zlci1zaG93aW5ne3otaW5kZXg6MTAwMH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1jaHJvbWUtYm90dG9te2hlaWdodDozNnB4fS55dHAtZW1iZWQgLnl0cC1jaHJvbWUtYm90dG9te2hlaWdodDo0MHB4fS55dHAtZW1iZWQueXRwLWVtYmVkLW1vYmlsZSAueXRwLWNocm9tZS1ib3R0b20sLnl0cC1lbWJlZC55dHAtZW1iZWQtbW9iaWxlIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLWNocm9tZS1jb250cm9scywueXRwLWVtYmVkLnl0cC1lbWJlZC1tb2JpbGUueXRwLXNtYWxsLW1vZGUgLnl0cC1jaHJvbWUtYm90dG9tLC55dHAtZW1iZWQueXRwLWVtYmVkLW1vYmlsZS55dHAtc21hbGwtbW9kZSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1jaHJvbWUtY29udHJvbHN7aGVpZ2h0OjQ4cHh9Lnl0cC1iaWctbW9kZSAueXRwLWNocm9tZS1ib3R0b217aGVpZ2h0OjU0cHg7cGFkZGluZy10b3A6NHB4fS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1jaHJvbWUtYm90dG9te2hlaWdodDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LDk2cHgpO3BhZGRpbmctdG9wOjB9Lnl0cC1jaHJvbWUtdG9wIC55dHAtYnV0dG9uLC55dHAtc21hbGwtbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbiwueXRwLXNtYWxsLW1vZGUgLnl0cC1yZXBsYXktYnV0dG9ue29wYWNpdHk6Ljk7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MzZweDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7b3ZlcmZsb3c6aGlkZGVufS55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLC55dHAtcmVwbGF5LWJ1dHRvbntvcGFjaXR5Oi45O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjQ4cHg7cGFkZGluZzowIDJweDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7b3ZlcmZsb3c6aGlkZGVufS55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC1tdXRlLWJ1dHRvbntwYWRkaW5nOjZweH0ueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtbmV4dC1idXR0b257cGFkZGluZzowfS55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC1taW5pcGxheWVyLWJ1dHRvbiwueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtcmVtb3RlLWJ1dHRvbntwYWRkaW5nOjAgNHB4fS55dHAtZW1iZWQgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24sLnl0cC1lbWJlZCAueXRwLXJlcGxheS1idXR0b257d2lkdGg6NDBweDtwYWRkaW5nOjB9Lnl0cC1lbWJlZCAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtbWluaXBsYXllci1idXR0b24sLnl0cC1lbWJlZCAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtbXV0ZS1idXR0b24sLnl0cC1lbWJlZCAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtbmV4dC1idXR0b24sLnl0cC1lbWJlZCAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtcmVtb3RlLWJ1dHRvbntwYWRkaW5nOjB9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1yaWdodC1jb250cm9sc3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOnZhcigtLXl0LWRlbGhpLXBpbGwtdG9wLWhlaWdodCwxMnB4KTtoZWlnaHQ6dmFyKC0teXQtZGVsaGktcGlsbC1oZWlnaHQsNDhweCk7Ym9yZGVyLXJhZGl1czoyOHB4O3BhZGRpbmc6MCAxNnB4Oy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bS1saWdodCxyZ2JhKDAsMCwwLC4zKSk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMgc3Zney13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xze3BhZGRpbmc6MH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC1leHBhbmQtcmlnaHQtYm90dG9tLXNlY3Rpb24tYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMtbGVmdCwueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMtcmlnaHR7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246ZW5kOy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1lbmQ7YWxpZ24taXRlbXM6ZmxleC1lbmR9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b257b3BhY2l0eTp1bnNldDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvblthcmlhLXByZXNzZWRdOmFmdGVye2Rpc3BsYXk6bm9uZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLW11dGUtYnV0dG9ue292ZXJmbG93OnZpc2libGU7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjEwMCV9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1tdXRlLWJ1dHRvbiAueXRwLXZvbHVtZS1pY29ue292ZXJmbG93OnZpc2libGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJlcGxheS1idXR0b257b3BhY2l0eTp1bnNldH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWxlZnQtY29udHJvbHN7bWluLXdpZHRoOjA7ei1pbmRleDo1OX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xze3BhZGRpbmc6MCA0cHg7ei1pbmRleDo1OX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtYnV0dG9ue3BhZGRpbmc6MH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtYnV0dG9uOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7dG9wOjUwJTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtib3JkZXItcmFkaXVzOjQwcHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtwb2ludGVyLWV2ZW50czpub25lO3dpZHRoOjQ4cHg7aGVpZ2h0OmNhbGModmFyKC0teXQtZGVsaGktcGlsbC1oZWlnaHQsIDQ4cHgpIC0gOHB4KX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtYnV0dG9uOmhvdmVyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjEpKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtYnV0dG9uOmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktdG9uYWwtaG92ZXIscmdiYSgyNTUsMjU1LDI1NSwuMikpOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbmV4dC1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiopey13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bS1saWdodCxyZ2JhKDAsMCwwLC4zKSk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbmV4dC1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiopIHN2Z3std2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1uZXh0LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kil7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLXBpbGwtaGVpZ2h0LDQ4cHgpO2JvcmRlci1yYWRpdXM6MjhweDtwYWRkaW5nOjAgMTZweDtwYWRkaW5nOjAgNHB4IDAgMDttYXJnaW4tdG9wOnZhcigtLXl0LWRlbGhpLXBpbGwtdG9wLWhlaWdodCwxMnB4KTttYXJnaW4tbGVmdDo4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1uZXh0LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+KikueXRwLXBsYXlsaXN0LXVpe21hcmdpbi1sZWZ0OjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLW5leHQtYnV0dG9uOm5vdCgueXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcj4qKTphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjRweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czoyOHB4O2luc2V0OjRweCA0cHggNHB4IDB9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1uZXh0LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kik6aG92ZXI6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYnV0dG9uLXNlY29uZGFyeSxyZ2JhKDI1NSwyNTUsMjU1LC4xKSk7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1uZXh0LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kik6YWN0aXZlOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LXRvbmFsLWhvdmVyLHJnYmEoMjU1LDI1NSwyNTUsLjIpKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGU6bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMgLnl0cC1idXR0b257aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LDU2cHgpO3dpZHRoOnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LDU2cHgpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1yaWdodC1jb250cm9scyAueXRwLWJ1dHRvbjpiZWZvcmV7aGVpZ2h0OmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsIDU2cHgpIC0gOHB4KTt3aWR0aDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCw1NnB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGU6bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbmV4dC1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiope21hcmdpbi10b3A6Y2FsYygodmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgLSB2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkpLzIpO2hlaWdodDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCw1NnB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGU6bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbmV4dC1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiopIHN2Z3twYWRkaW5nOmNhbGMoKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LCA1NnB4KSAtIDI0cHgpLzIpfS55dHAtZGVsaGktbW9kZXJuLXdpdGgtbHVtaW5vc2l0eS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbmV4dC1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiope2JhY2tncm91bmQ6cmdiYSg4MCw4MCw4MCwuNik7YmFja2dyb3VuZC1ibGVuZC1tb2RlOmx1bWlub3NpdHk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KX0ueXRwLWRlbGhpLW1vZGVybi13aXRoLWRpZmZlcmVuY2UueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLW5leHQtYnV0dG9uOm5vdCgueXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcj4qKXtiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpkaWZmZXJlbmNlOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1leGNsdXNpb24ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLW5leHQtYnV0dG9uOm5vdCgueXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcj4qKXtiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpleGNsdXNpb247LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KX0ueXRwLWVtYmVkLnl0cC1lbWJlZC1tb2JpbGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24sLnl0cC1lbWJlZC55dHAtZW1iZWQtbW9iaWxlLnl0cC1zbWFsbC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9ue3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHh9Lnl0cC1lbWJlZC1tb2JpbGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b246bm90KC55dHAteW91dHViZS1idXR0b24pIHN2ZywueXRwLWVtYmVkLW1vYmlsZS55dHAtc21hbGwtbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbjpub3QoLnl0cC15b3V0dWJlLWJ1dHRvbikgc3Zne3dpZHRoOjQwcHg7cGFkZGluZy1sZWZ0OjRweH0ueXRwLWNocm9tZS10b3AgLnl0cC1idXR0b257cGFkZGluZy10b3A6NnB4O2hlaWdodDo0MnB4O3ZlcnRpY2FsLWFsaWduOnRvcH0ueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLXRvcCAueXRwLWJ1dHRvbntwYWRkaW5nLXRvcDo5cHg7aGVpZ2h0OjYzcHh9Lnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b257aGVpZ2h0OjEwMCV9Lnl0cC1iaWctbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbiwueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLXRvcCAueXRwLWJ1dHRvbnt3aWR0aDo1NHB4fS55dHAtcGxheS1idXR0b246bm90KC55dHAtcGxheS1idXR0b24tcGxheWxpc3QpOmJlZm9yZSwueXRwLXByZXYtYnV0dG9uOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTJweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NXB4O2JvdHRvbTowO2xlZnQ6LTEycHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wbGF5LWJ1dHRvbjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjRweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czoyOHB4O2JvcmRlci1yYWRpdXM6MjdweH0ueXRwLWJpZy1tb2RlLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wbGF5LWJ1dHRvbjphZnRlcntib3JkZXItcmFkaXVzOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkvMil9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wbGF5LWJ1dHRvbjpob3ZlcjphZnRlciwueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1wbGF5LWJ1dHRvbjpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjEpKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXBsYXktYnV0dG9uOmFjdGl2ZTphZnRlciwueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1wbGF5LWJ1dHRvbjphY3RpdmU6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktdG9uYWwtaG92ZXIscmdiYSgyNTUsMjU1LDI1NSwuMikpOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtYmlnLW1vZGUtY29uc2lzdGVudC1waWxsLWhlaWdodC55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1sZWZ0LWNvbnRyb2xzIC55dHAtcGxheS1idXR0b257aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LDU2cHgpO3dpZHRoOnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LDU2cHgpO21hcmdpbi10b3A6Y2FsYygodmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgLSB2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkpLzIpO21hcmdpbi1ib3R0b206Y2FsYygodmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgLSB2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkpLzIpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtcHJldi1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiopey13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bS1saWdodCxyZ2JhKDAsMCwwLC4zKSk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHAtZGVsaGktbW9kZXJuIC55dHAtcHJldi1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiopIHN2Z3std2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcmV2LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kil7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLXBpbGwtaGVpZ2h0LDQ4cHgpO2JvcmRlci1yYWRpdXM6MjhweDtwYWRkaW5nOjAgMTZweDtwYWRkaW5nOjAgMCAwIDRweDttYXJnaW4tdG9wOnZhcigtLXl0LWRlbGhpLXBpbGwtdG9wLWhlaWdodCwxMnB4KTttYXJnaW4tbGVmdDo4cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS55dHAtZGVsaGktbW9kZXJuIC55dHAtcHJldi1idXR0b246bm90KC55dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiopOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6NHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXItcmFkaXVzOjI4cHg7aW5zZXQ6NHB4IDAgNHB4IDRweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXByZXYtYnV0dG9uOm5vdCgueXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcj4qKTpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjEpKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXByZXYtYnV0dG9uOm5vdCgueXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcj4qKTphY3RpdmU6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktdG9uYWwtaG92ZXIscmdiYSgyNTUsMjU1LDI1NSwuMikpOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtYmlnLW1vZGUueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXByZXYtYnV0dG9uOm5vdCh5dHAtbWluaXBsYXllci1idXR0b24tY29udGFpbmVyPiope21hcmdpbi10b3A6Y2FsYygodmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgLSB2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkpLzIpO2hlaWdodDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCw1NnB4KX0ueXRwLWJpZy1tb2RlLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wcmV2LWJ1dHRvbjpub3QoeXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcj4qKSBzdmd7cGFkZGluZzpjYWxjKCh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkgLSAyNHB4KS8yKX0ueXRwLWRlbGhpLW1vZGVybi13aXRoLWx1bWlub3NpdHkueXRwLWRlbGhpLW1vZGVybiAueXRwLXByZXYtYnV0dG9uOm5vdCgueXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcj4qKXtiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpsdW1pbm9zaXR5Oy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1kaWZmZXJlbmNlLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcmV2LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kil7YmFja2dyb3VuZDpyZ2JhKDgwLDgwLDgwLC42KTtiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6ZGlmZmVyZW5jZTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpfS55dHAtZGVsaGktbW9kZXJuLXdpdGgtZXhjbHVzaW9uLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcmV2LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kil7YmFja2dyb3VuZDpyZ2JhKDgwLDgwLDgwLC42KTtiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6ZXhjbHVzaW9uOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1mdWxsc2NyZWVuLWJ1dHRvbjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTJweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NXB4O2JvdHRvbTowO2xlZnQ6MTAwJX0ueXRwLWJpZy1tb2RlIC55dHAtcGxheS1idXR0b246bm90KC55dHAtcGxheS1idXR0b24tcGxheWxpc3QpOmJlZm9yZSwueXRwLWJpZy1tb2RlIC55dHAtcHJldi1idXR0b246YmVmb3Jle3dpZHRoOjI0cHg7bGVmdDotMjRweH0ueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pOm5vdChbZGlzYWJsZWRdKTpob3ZlciwueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdLC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uW2FyaWEtcHJlc3NlZD10cnVlXSwueXRwLWNocm9tZS10b3AgLnl0cC1idXR0b246aG92ZXIsLnl0cC1yZXBsYXktYnV0dG9uOmhvdmVye29wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1zdmctZmlsbHtmaWxsOiNmZmZ9Lnl0cC1zdmctc2hhZG93e3N0cm9rZTojMDAwO3N0cm9rZS1vcGFjaXR5Oi4xNTtzdHJva2Utd2lkdGg6MnB4O2ZpbGw6bm9uZX0ueXRwLWRuaSAueXRwLXN2Zy1zaGFkb3d7ZGlzcGxheTpub25lfS55dHAtc3ZnLXNoYWRvdy1maWxse2ZpbGw6IzAwMDtmaWxsLW9wYWNpdHk6LjE1O3N0cm9rZTpub25lfS55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uW2FyaWEtcHJlc3NlZF17cG9zaXRpb246cmVsYXRpdmV9Lnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b25bYXJpYS1wcmVzc2VkXTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6M3B4O2JvcmRlci1yYWRpdXM6M3B4O2xlZnQ6MjRweDtib3R0b206OXB4O2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1yZWQtaW5kaWNhdG9yLCNlMTAwMmQpOy13ZWJraXQtdHJhbnNpdGlvbjpsZWZ0IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLHdpZHRoIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246bGVmdCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSx3aWR0aCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWVtYmVkIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uW2FyaWEtcHJlc3NlZF06YWZ0ZXJ7aGVpZ2h0OjJweDtib3JkZXItcmFkaXVzOjJweDtsZWZ0OjIwcHg7Ym90dG9tOjhweH0ueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uW2FyaWEtcHJlc3NlZF06YWZ0ZXJ7aGVpZ2h0OjNweDtib3JkZXItcmFkaXVzOjNweDtsZWZ0OjI3cHg7Ym90dG9tOjEwcHh9Lnl0cC1kbmkgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b25bYXJpYS1wcmVzc2VkXTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b25bYXJpYS1wcmVzc2VkPXRydWVdOmFmdGVye3dpZHRoOjI0cHg7bGVmdDoxMnB4Oy13ZWJraXQtdHJhbnNpdGlvbjpsZWZ0IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSx3aWR0aCAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpsZWZ0IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSx3aWR0aCAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1zbWFsbC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uW2FyaWEtcHJlc3NlZD10cnVlXTphZnRlciwueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uW2FyaWEtcHJlc3NlZD10cnVlXTphZnRlcnt3aWR0aDoxOHB4O2xlZnQ6OXB4fS55dHAtZW1iZWQgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b25bYXJpYS1wcmVzc2VkPXRydWVdOmFmdGVye3dpZHRoOjIwcHg7bGVmdDoxMHB4fS55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b25bYXJpYS1wcmVzc2VkPXRydWVdOmFmdGVye3dpZHRoOjI3cHg7bGVmdDoxNHB4fS55dHAtZW1iZWQtbW9iaWxlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uW2FyaWEtcHJlc3NlZD10cnVlXTphZnRlciwueXRwLWVtYmVkLW1vYmlsZS55dHAtc21hbGwtbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvblthcmlhLXByZXNzZWQ9dHJ1ZV06YWZ0ZXJ7bGVmdDoxNXB4fS55dHAtY29sb3Itd2hpdGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b25bYXJpYS1wcmVzc2VkXTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNkZGR9Lnl0cC1jb2xvci1wYXJ0eSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvblthcmlhLXByZXNzZWRdOmFmdGVyey13ZWJraXQtYW5pbWF0aW9uOnl0cC1wYXJ0eS1iYWNrZ3JvdW5kLWNvbG9yIC4xcyBsaW5lYXIgaW5maW5pdGU7YW5pbWF0aW9uOnl0cC1wYXJ0eS1iYWNrZ3JvdW5kLWNvbG9yIC4xcyBsaW5lYXIgaW5maW5pdGV9Lnl0cC1jaHJvbWUtdG9wLWJ1dHRvbnN7d2hpdGUtc3BhY2U6bm93cmFwfS55dHAtY2hyb21lLXRvcC1idXR0b25zIC55dHAtYnV0dG9ue3RleHQtc2hhZG93OmluaGVyaXR9W2Rpcj1ydGxdIC55dHAtc2hvcnRzLW1vZGUgLnl0cC1jaHJvbWUtdG9wLWJ1dHRvbnN7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDt3aWR0aDo0OHB4fS55dHAtY29weWxpbmstYnV0dG9uOm5vdCgueXRwLWNvcHlsaW5rLWJ1dHRvbi12aXNpYmxlKSwueXRwLW92ZXJmbG93LWJ1dHRvbjpub3QoLnl0cC1vdmVyZmxvdy1idXR0b24tdmlzaWJsZSksLnl0cC1zaGFyZS1idXR0b246bm90KC55dHAtc2hhcmUtYnV0dG9uLXZpc2libGUpe2Rpc3BsYXk6bm9uZX0ueXRwLWV4cC1ib3R0b20tY29udHJvbC1mbGV4Ym94IC55dHAtY2hyb21lLWNvbnRyb2xze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fS55dHAtY2hyb21lLWNvbnRyb2xze2hlaWdodDo0OHB4O2xpbmUtaGVpZ2h0OjQ4cHg7Zm9udC1zaXplOjEwOSU7dGV4dC1hbGlnbjpsZWZ0O2RpcmVjdGlvbjpsdHJ9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHN7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsNzJweCk7bGluZS1oZWlnaHQ6dmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCw3MnB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGU6bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpIC55dHAtY2hyb21lLWNvbnRyb2xze2hlaWdodDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LDk2cHgpO2xpbmUtaGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsOTZweCl9Lnl0cC1zbWFsbC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xze2hlaWdodDozNnB4O2xpbmUtaGVpZ2h0OjM2cHh9Lnl0cC1lbWJlZCAueXRwLWNocm9tZS1jb250cm9sc3toZWlnaHQ6NDBweDtsaW5lLWhlaWdodDo0MHB4fS55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHN7aGVpZ2h0OjU0cHg7bGluZS1oZWlnaHQ6NTRweH06bm90KC55dHAtZXhwLWJvdHRvbS1jb250cm9sLWZsZXhib3gpIC55dHAtbGVmdC1jb250cm9sc3tmbG9hdDpsZWZ0fS55dHAtbGVmdC1jb250cm9sc3toZWlnaHQ6MTAwJX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWxlZnQtY29udHJvbHMueXRwLWxlZnQtY29udHJvbHMtd2l0aC12b2x1bWV7b3ZlcmZsb3c6dmlzaWJsZX0ueXRwLWV4cC1ib3R0b20tY29udHJvbC1mbGV4Ym94IC55dHAtbGVmdC1jb250cm9sc3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc306bm90KC55dHAtZXhwLWJvdHRvbS1jb250cm9sLWZsZXhib3gpIC55dHAtcmlnaHQtY29udHJvbHN7ZmxvYXQ6cmlnaHR9Lnl0cC1yaWdodC1jb250cm9sc3toZWlnaHQ6MTAwJX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWxlZnQtY29udHJvbHMgLnl0cC1tdXRlLWJ1dHRvbi55dHAtc3RhbmRhbG9uZS1tdXRlLWJ1dHRvbnstd2Via2l0LWZsZXgtc2hyaW5rOjA7ZmxleC1zaHJpbms6MDttaW4td2lkdGg6MDttYXJnaW46dmFyKC0teXQtZGVsaGktcGlsbC10b3AtaGVpZ2h0LDEycHgpIDAgdmFyKC0teXQtZGVsaGktcGlsbC10b3AtaGVpZ2h0LDEycHgpIDEycHg7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLXBpbGwtaGVpZ2h0LDQ4cHgpO2JvcmRlci1yYWRpdXM6MjhweDtwYWRkaW5nOjAgMTZweDstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0tbGlnaHQscmdiYSgwLDAsMCwuMykpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWxlZnQtY29udHJvbHMgLnl0cC1tdXRlLWJ1dHRvbi55dHAtc3RhbmRhbG9uZS1tdXRlLWJ1dHRvbiBzdmd7LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9uLC55dHAtZGVsaGktbW9kZXJuIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9uIC55dHAtYnV0dG9ue3BhZGRpbmc6MH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWxlZnQtY29udHJvbHMgLnl0cC1tdXRlLWJ1dHRvbi55dHAtc3RhbmRhbG9uZS1tdXRlLWJ1dHRvbjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjRweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czoyOHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9uOmhvdmVyOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJ1dHRvbi1zZWNvbmRhcnkscmdiYSgyNTUsMjU1LDI1NSwuMSkpOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9uOmFjdGl2ZTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10b25hbC1ob3ZlcixyZ2JhKDI1NSwyNTUsMjU1LC4yKSk7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9ue3BhZGRpbmc6MCA0cHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9uIHN2Z3twYWRkaW5nOjEwcHggNnB4fS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1sZWZ0LWNvbnRyb2xzIC55dHAtbXV0ZS1idXR0b24gLnl0cC12b2x1bWUtaWNvbntwYWRkaW5nOjRweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGU6bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9ue2hlaWdodDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCw1NnB4KTttYXJnaW46Y2FsYygodmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgLSB2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkpLzIpIDAgY2FsYygodmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgLSB2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCwgNTZweCkpLzIpIDEycHg7cGFkZGluZzowfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1yaWdodC1jb250cm9sc3toZWlnaHQ6dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsNTZweCk7bWFyZ2luLXRvcDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLXRvcC1oZWlnaHQsMjBweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKSAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMtbGVmdHtoZWlnaHQ6dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsNTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKSAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMtcmlnaHR7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LDU2cHgpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1yaWdodC1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xzLWxlZnQ6YWZ0ZXJ7aGVpZ2h0OjI4cHg7bWFyZ2luOjEwcHggMTRweH0ueXRwLWRlbGhpLW1vZGVybi55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1jaHJvbWUtYm90dG9te2hlaWdodDp2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LXhzbWFsbC13aWR0aC1tb2RlLDY0cHgpfS55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1idXR0b257aGVpZ2h0OjMycHg7d2lkdGg6MzJweH0ueXRwLWRlbGhpLW1vZGVybi55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1jaHJvbWUtYm90dG9tIC55dHAtYnV0dG9uLnl0cC1saXZlLWJhZGdle3dpZHRoOmF1dG99Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLWJ1dHRvbjpub3QoLnl0cC1saXZlLWJhZGdlKTpiZWZvcmV7Ym9yZGVyLXJhZGl1czo1MCU7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH0ueXRwLWRlbGhpLW1vZGVybi55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHN7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQteHNtYWxsLXdpZHRoLW1vZGUsNjRweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtbGVmdC1jb250cm9scyAueXRwLW5leHQtYnV0dG9uLC55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLWxlZnQtY29udHJvbHMgLnl0cC1wcmV2LWJ1dHRvbntkaXNwbGF5Om5vbmV9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtbGVmdC1jb250cm9scyAueXRwLW11dGUtYnV0dG9uLnl0cC1zdGFuZGFsb25lLW11dGUtYnV0dG9ue2hlaWdodDo0MHB4fS55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLXJpZ2h0LWNvbnRyb2xze2hlaWdodDo0MHB4O2xpbmUtaGVpZ2h0OjQwcHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtcmlnaHQtY29udHJvbHMgLnl0cC1idXR0b257ZGlzcGxheTpub25lO21hcmdpbjo0cHggMnB4fS55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMtbGVmdDphZnRlcntkaXNwbGF5Om5vbmV9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtcmlnaHQtY29udHJvbHMgLnl0cC1idXR0b24ueXRwLXNldHRpbmdzLWJ1dHRvbntkaXNwbGF5OmlubGluZS1ibG9ja30ueXRwLWRlbGhpLW1vZGVybi55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1yaWdodC1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtZXhwYW5kLXJpZ2h0LWJvdHRvbS1zZWN0aW9uLWJ1dHRvbntkaXNwbGF5OmlubGluZS1ibG9jazstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLWNocm9tZS1ib3R0b20ueXRwLXhzbWFsbC13aWR0aC1yaWdodC1jb250cm9scy1leHBhbmRlZCAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLWNocm9tZS1ib3R0b20ueXRwLXhzbWFsbC13aWR0aC1yaWdodC1jb250cm9scy1leHBhbmRlZCAueXRwLXJpZ2h0LWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC1leHBhbmQtcmlnaHQtYm90dG9tLXNlY3Rpb24tYnV0dG9uey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuM3MgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuM3MgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSwtd2Via2l0LXRyYW5zZm9ybSAuM3MgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtY2hyb21lLWJvdHRvbS55dHAteHNtYWxsLXdpZHRoLXJpZ2h0LWNvbnRyb2xzLWV4cGFuZGVkIC55dHAtbGVmdC1jb250cm9scyAueXRwLXRpbWUtZGlzcGxheXt2aXNpYmlsaXR5OmhpZGRlbn0ueXRwLWV4cC1ib3R0b20tY29udHJvbC1mbGV4Ym94IC55dHAtdm9sdW1lLWFyZWF7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLWFyZWF7bWFyZ2luOnZhcigtLXl0LWRlbGhpLXBpbGwtdG9wLWhlaWdodCwxMnB4KSAwIHZhcigtLXl0LWRlbGhpLXBpbGwtdG9wLWhlaWdodCwxMnB4KSAxMnB4O2hlaWdodDp2YXIoLS15dC1kZWxoaS1waWxsLWhlaWdodCw0OHB4KTtib3JkZXItcmFkaXVzOjI4cHg7cGFkZGluZzowIDE2cHg7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLWxpZ2h0LHJnYmEoMCwwLDAsLjMpKTt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLWFyZWEgc3Zney13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktaG9yaXpvbnRhbC12b2x1bWUtY29udHJvbHMgLnl0cC12b2x1bWUtYXJlYXtwYWRkaW5nOjA7cG9zaXRpb246cmVsYXRpdmV9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLWFyZWEgLnl0cC12b2x1bWUtaWNvbntwYWRkaW5nOjB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLWFyZWEgLnl0cC12b2x1bWUtaWNvbiBzdmd7cGFkZGluZzp2YXIoLS15dC1kZWxoaS1waWxsLXRvcC1oZWlnaHQsMTJweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLWFyZWE6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDo0cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlci1yYWRpdXM6MjhweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktaG9yaXpvbnRhbC12b2x1bWUtY29udHJvbHMgLnl0cC12b2x1bWUtYXJlYTpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjEpKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktaG9yaXpvbnRhbC12b2x1bWUtY29udHJvbHMgLnl0cC1jaHJvbWUtYm90dG9tLnl0cC12b2x1bWUtc2xpZGVyLWFjdGl2ZSAueXRwLXZvbHVtZS1hcmVhe3BhZGRpbmctcmlnaHQ6MTZweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktaG9yaXpvbnRhbC12b2x1bWUtY29udHJvbHMueXRwLWJpZy1tb2RlOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKSAueXRwLXZvbHVtZS1hcmVhe21hcmdpbjp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLXRvcC1oZWlnaHQsMjBweCkgMCAwIDEycHg7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LDU2cHgpfS55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZS55dHAtZGVsaGktaG9yaXpvbnRhbC12b2x1bWUtY29udHJvbHMgLnl0cC12b2x1bWUtYXJlYXttYXJnaW46dmFyKC0teXQtZGVsaGktcGlsbC10b3AtaGVpZ2h0LDEycHgpIDAgdmFyKC0teXQtZGVsaGktcGlsbC10b3AtaGVpZ2h0LDEycHgpIDhweDtoZWlnaHQ6NDBweH0ueXRwLWRlbGhpLW1vZGVybi55dHAteHNtYWxsLXdpZHRoLW1vZGUueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLWFyZWEgLnl0cC1idXR0b257aGVpZ2h0OjQwcHg7d2lkdGg6NDBweDtwYWRkaW5nOjB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlLnl0cC1kZWxoaS1ob3Jpem9udGFsLXZvbHVtZS1jb250cm9scyAueXRwLXZvbHVtZS1hcmVhIHN2Z3t3aWR0aDoxOHB4O2hlaWdodDoxOHB4O3BhZGRpbmc6MTFweH0ueXRwLWF1dG9oaWRlLWZhZGUtdHJhbnNpdGlvbiwueXRwLWNocm9tZS1ib3R0b206bm90KC55dHAtZnJvc3RlZC1nbGFzcy1vcGFjaXR5LWFuaW1hdGlvbiksLnl0cC1jaHJvbWUtdG9wey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtYXV0b2hpZGUgLnl0cC1jaHJvbWUtYm90dG9tIC55dHAtYXV0b2hpZGUtZmFkZS10cmFuc2l0aW9uLC55dHAtYXV0b2hpZGUgLnl0cC1jaHJvbWUtYm90dG9tOm5vdCgueXRwLWZyb3N0ZWQtZ2xhc3Mtb3BhY2l0eS1hbmltYXRpb24pLC55dHAtYXV0b2hpZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtY29weWxpbmstYnV0dG9uLC55dHAtYXV0b2hpZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtc2hhcmUtYnV0dG9uLC55dHAtYXV0b2hpZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtd2F0Y2gtbGF0ZXItYnV0dG9uLC55dHAtYXV0b2hpZGUgLnl0cC1vdmVyZmxvdy1idXR0b24sLnl0cC1hdXRvaGlkZSAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLC55dHAtYXV0b2hpZGUgLnl0cC1zaG9ydHMtdGl0bGUtY2hhbm5lbCwueXRwLWF1dG9oaWRlIC55dHAtdGl0bGUsLnl0cC1hdXRvaGlkZSAueXRwLXRpdGxlLWNoYW5uZWwsLnl0cC1hdXRvaGlkZTpub3QoLnl0cC1jYXJkcy10ZWFzZXItc2hvd24pIC55dHAtY2FyZHMtYnV0dG9uLC55dHAtY2hyb21lLWJvdHRvbVthcmlhLWhpZGRlbj10cnVlXSwueXRwLWNocm9tZS10b3BbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWF1dG9oaWRlOm5vdCgueXRwLWF1dG9oaWRlLWFjdGl2ZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtc2hhcmUtYnV0dG9uLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKSAueXRwLWNocm9tZS10b3AgLnl0cC13YXRjaC1sYXRlci1idXR0b24sLnl0cC1hdXRvaGlkZTpub3QoLnl0cC1hdXRvaGlkZS1hY3RpdmUpIC55dHAtb3ZlcmZsb3ctYnV0dG9uLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKSAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKSAueXRwLXNob3J0cy10aXRsZS1jaGFubmVsLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKSAueXRwLXRpdGxlLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKSAueXRwLXRpdGxlLWNoYW5uZWwsLnl0cC1hdXRvaGlkZTpub3QoLnl0cC1hdXRvaGlkZS1hY3RpdmUpOm5vdCgueXRwLWNhcmRzLXRlYXNlci1zaG93bikgLnl0cC1jYXJkcy1idXR0b257ZGlzcGxheTpub25lfS55dHAtc2hvcnRzLW1vZGUgLnl0cC10aXRsZS1jaGFubmVse3BhZGRpbmctcmlnaHQ6OHB4fS55dHAtZ3JhZGllbnQtYm90dG9tLC55dHAtZ3JhZGllbnQtdG9we3dpZHRoOjEwMCU7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQURHQ0FZQUFBQVQrT3FGQUFBQWRrbEVRVlFvejQyUVFRN0FJQWdFRi9UL0Qra2JxL1JXQWxuUXl5YXpBNGFvQUI0RnNCU0EvYkZqdUYxRU9MN1ZicklyQnV1c21ydDRaWk9SZmI2ZWhiV2RuUkhFSWlJVGFFVUthNUVKcVVha1JTYUVZQkpTQ1kyZEVzdFFZN0F1eGFod1hGcnZabVdsMnJoNEpaMDd6OWRMdGVzZk5qNXEwRlUzQTVPYmJ3QUFBQUJKUlU1RXJrSmdnZz09KTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtwb2ludGVyLWV2ZW50czpub25lfS55dHAtZGVsaGktbW9kZXJuIC55dHAtZ3JhZGllbnQtdG9wLC55dHAtZGVsaGktbW9kZXJuOm5vdCgueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nKTpub3QoLnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlKSAueXRwLWdyYWRpZW50LWJvdHRvbXtkaXNwbGF5Om5vbmV9Lnl0cC1iaWctbW9kZSAueXRwLWdyYWRpZW50LWJvdHRvbSwueXRwLWJpZy1tb2RlIC55dHAtZ3JhZGllbnQtdG9we2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFFbUNBWUFBQUNqeS9xekFBQUFoa2xFUVZRNHk1MlJVUTZBTUF4Q0tkNy9KSjdSNmFlSkFkcjUwN1RqUVpxT0FFNENXQVJ3eDdKRTk0NHJjaC9rNnFPV1M3YnE1Ymg3MnpHRjgrTFRhNmdvSmVSUGdYRFlOeFdGZmtTMFFYQ0luTElOMUd4VFhBMGR0UzBvdFdKbnVYSlIxWTlXWVA5R0YxVUNZUlFZSFJTbFhNQVJiVk80dGgzc2Q3WTNPUDVkWTNCbitTa1BzR0oxK0hHR1Z0Y0FBQUFBU1VWT1JLNUNZSUk9KX0ueXRwLWF1dG9oaWRlIC55dHAtZ3JhZGllbnQtdG9wLC55dHAtYXV0b2hpZGU6bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpOm5vdCgueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUpIC55dHAtZ3JhZGllbnQtYm90dG9tLC55dHAtZ3JhZGllbnQtYm90dG9tW2FyaWEtaGlkZGVuPXRydWVdLC55dHAtZ3JhZGllbnQtdG9wW2FyaWEtaGlkZGVuPXRydWVde29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1hdXRvaGlkZTpub3QoLnl0cC1hdXRvaGlkZS1hY3RpdmUpIC55dHAtZ3JhZGllbnQtdG9wLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKTpub3QoLnl0cC1ncmlkLXNjcm9sbGluZyk6bm90KC55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZSkgLnl0cC1ncmFkaWVudC1ib3R0b217ZGlzcGxheTpub25lfS55dHAtZ3JhZGllbnQtdG9we2hlaWdodDo0OHB4O3BhZGRpbmctYm90dG9tOjUwcHg7dG9wOjA7ei1pbmRleDoyNTtiYWNrZ3JvdW5kLXBvc2l0aW9uOnRvcH0ueXRwLWVtYmVkLXBmbC55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLWdyYWRpZW50LXRvcHtoZWlnaHQ6NzBweDtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLC43NSksdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sY29sb3Itc3RvcCgwLHJnYmEoMCwwLDAsLjc1KSksdG8odHJhbnNwYXJlbnQpKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSgwLDAsMCwuNzUpIDAsdHJhbnNwYXJlbnQpO3BhZGRpbmctYm90dG9tOjB9Lnl0cC1zaG9ydHMtbW9kZS55dHAtYmlnLW1vZGUueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykgLnl0cC1ncmFkaWVudC10b3AsLnl0cC1zaG9ydHMtbW9kZS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLWdyYWRpZW50LXRvcHtoZWlnaHQ6NTAlOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmF1dG8gMjAwJTtiYWNrZ3JvdW5kLXNpemU6YXV0byAyMDAlfS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLWdyYWRpZW50LXRvcHtoZWlnaHQ6NDlweH0ueXRwLWJpZy1tb2RlIC55dHAtZ3JhZGllbnQtdG9we2hlaWdodDo2OXB4O3BhZGRpbmctYm90dG9tOjc3cHh9Lnl0cC1iaWctbW9kZS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLWdyYWRpZW50LXRvcHtoZWlnaHQ6ODlweDtwYWRkaW5nLWJvdHRvbTo1N3B4fS55dHAtZ3JhZGllbnQtYm90dG9te2hlaWdodDo2MXB4O3BhZGRpbmctdG9wOjM3cHg7Ym90dG9tOjA7ei1pbmRleDoyNDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbX0ueXRwLXNtYWxsLW1vZGUgLnl0cC1ncmFkaWVudC1ib3R0b217aGVpZ2h0OjQ5cHg7cGFkZGluZy10b3A6NDlweH0ueXRwLWVtYmVkIC55dHAtZ3JhZGllbnQtYm90dG9te2hlaWdodDo1M3B4O3BhZGRpbmctdG9wOjQ1cHh9Lnl0cC1iaWctbW9kZSAueXRwLWdyYWRpZW50LWJvdHRvbXtoZWlnaHQ6NzBweDtwYWRkaW5nLXRvcDo3NnB4fS55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlIC55dHAtZ3JhZGllbnQtYm90dG9tLC55dHAtZGVsaGktbW9kZXJuOm5vdCgueXRwLWRpc2FibGUtYm90dG9tLWdyYWRpZW50KSAueXRwLWdyYWRpZW50LWJvdHRvbXstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1kaXNhYmxlLWJvdHRvbS1ncmFkaWVudC55dHAtZ3JpZC1zY3JvbGxpbmcgLnl0cC1ncmFkaWVudC1ib3R0b20sLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nOm5vdCgueXRwLWRpc2FibGUtYm90dG9tLWdyYWRpZW50KSAueXRwLWdyYWRpZW50LWJvdHRvbXtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20ocmdiYSgwLDAsMCwwKSksY29sb3Itc3RvcChyZ2JhKDAsMCwwLDApKSx0byhyZ2JhKDAsMCwwLC44NSkpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLDApIDAscmdiYSgwLDAsMCwwKSBjYWxjKDcwJSAtIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSAtIHZhcigtLXl0cC1ncmlkLXNjcm9sbC1wZXJjZW50YWdlKSoxMDAlKSxyZ2JhKDAsMCwwLC44NSkgMTAwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMCwwLDAsMCkgMCxyZ2JhKDAsMCwwLDApIGNhbGMoNzAlIC0gdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpIC0gdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjEwMCUpLHJnYmEoMCwwLDAsLjg1KSAxMDAlKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZSAueXRwLWdyYWRpZW50LWJvdHRvbXtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20ocmdiYSgwLDAsMCwwKSksY29sb3Itc3RvcChyZ2JhKDAsMCwwLDApKSx0byhyZ2JhKDAsMCwwLC44NSkpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLDApIDAscmdiYSgwLDAsMCwwKSBjYWxjKDIwJSArIHZhcigtLXl0cC1ncmlkLXNjcm9sbC1wZXJjZW50YWdlKSoxMDAlIC0gdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKSxyZ2JhKDAsMCwwLC44NSkgMTAwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMCwwLDAsMCkgMCxyZ2JhKDAsMCwwLDApIGNhbGMoMjAlICsgdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjEwMCUgLSB2YXIoLS15dHAtZ3JpZC1wZWVrLWhlaWdodCkpLHJnYmEoMCwwLDAsLjg1KSAxMDAlKX0ueXRwLWhpZGUtaW5mby1iYXIgLnl0cC1jaHJvbWUtdG9we2hlaWdodDowfS55dHAtaGlkZS1pbmZvLWJhciAueXRwLWNocm9tZS10b3AgLnl0cC1vdmVyZmxvdy1idXR0b24sLnl0cC1oaWRlLWluZm8tYmFyIC55dHAtY2hyb21lLXRvcCAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLC55dHAtaGlkZS1pbmZvLWJhciAueXRwLWNocm9tZS10b3AgLnl0cC1zaGFyZS1idXR0b24sLnl0cC1oaWRlLWluZm8tYmFyIC55dHAtY2hyb21lLXRvcCAueXRwLXNob3J0cy10aXRsZS1jaGFubmVsLC55dHAtaGlkZS1pbmZvLWJhciAueXRwLWNocm9tZS10b3AgLnl0cC10aXRsZSwueXRwLWhpZGUtaW5mby1iYXIgLnl0cC1jaHJvbWUtdG9wIC55dHAtdGl0bGUtY2hhbm5lbCwueXRwLWhpZGUtaW5mby1iYXIgLnl0cC1jaHJvbWUtdG9wIC55dHAtd2F0Y2gtbGF0ZXItYnV0dG9uLC55dHAtaGlkZS1pbmZvLWJhciAueXRwLWdyYWRpZW50LXRvcCwueXRwLWhpZGUtaW5mby1iYXIgLnl0cC1vdmVybGF5LXRvcC1yaWdodCAueXRwLW92ZXJmbG93LWJ1dHRvbiwueXRwLWhpZGUtaW5mby1iYXIgLnl0cC1vdmVybGF5LXRvcC1yaWdodCAueXRwLXNoYXJlLWJ1dHRvbiwueXRwLWhpZGUtaW5mby1iYXIgLnl0cC1vdmVybGF5LXRvcC1yaWdodCAueXRwLXdhdGNoLWxhdGVyLWJ1dHRvbntkaXNwbGF5Om5vbmV9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUueXRwLWZ1bGwtYmxlZWQtcGxheWVyOm5vdCgueXRwLWdyaWQtc2Nyb2xsYWJsZSkgLnl0cC1ncmFkaWVudC1ib3R0b20sLnl0cC1kaXNhYmxlLWJvdHRvbS1ncmFkaWVudC55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtZnVsbC1ibGVlZC1wbGF5ZXIgLnl0cC1ncmFkaWVudC1ib3R0b217ZGlzcGxheTpub25lfS55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsLWJsZWVkLXBsYXllci55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZTpub3QoLmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlKSAueXRwLWNocm9tZS1ib3R0b217Ym90dG9tOmNhbGMoNzAlIC0gdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjEwMCUpO29wYWNpdHk6dmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpO3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtZnVsbC1ibGVlZC1wbGF5ZXIueXRwLWRlbGhpLW1vZGVybi55dHAtYXV0b2hpZGUueXRwLWdyaWQtc2Nyb2xsaW5nIC55dHAtY2hyb21lLWJvdHRvbSwueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1mdWxsLWJsZWVkLXBsYXllci55dHAtZGVsaGktbW9kZXJuOm5vdCgueXRwLWF1dG9oaWRlKSAueXRwLWNocm9tZS1ib3R0b217b3BhY2l0eTpjYWxjKDEgLSB2YXIoLS15dHAtZ3JpZC1zY3JvbGwtcGVyY2VudGFnZSkqMyl9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtZnVsbC1ibGVlZC1wbGF5ZXIueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1ib3R0b217Ym90dG9tOmNhbGModmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpICsgdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjEwMCUpfS55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcueXRwLWZ1bGwtYmxlZWQtcGxheWVyLnl0cC1ncmlkLXNjcm9sbGluZyAueXRwLWNocm9tZS1ib3R0b217cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZTpub3QoLmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlKTpub3QoLnl0cC1ncmlkLXNjcm9sbGluZykgLnl0cC1jaHJvbWUtYm90dG9te2Rpc3BsYXk6bm9uZX0ueXRwLWhpZGUtY29udHJvbHMgLnl0cC1jaHJvbWUtYm90dG9tLC55dHAtaGlkZS1jb250cm9scyAueXRwLWdyYWRpZW50LWJvdHRvbXtkaXNwbGF5Om5vbmV9QG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSl7Lnl0cC1ncmFkaWVudC1ib3R0b20sLnl0cC1ncmFkaWVudC10b3B7YmFja2dyb3VuZDojMDAwO3BhZGRpbmctYm90dG9tOjA7cGFkZGluZy10b3A6MH19QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1wYXJ0eS1iYWNrZ3JvdW5kLWNvbG9yezAle2JhY2tncm91bmQtY29sb3I6I2YwMH0yMCV7YmFja2dyb3VuZC1jb2xvcjojMGYwfTQwJXtiYWNrZ3JvdW5kLWNvbG9yOiMwMGZ9NjAle2JhY2tncm91bmQtY29sb3I6I2YwZn04MCV7YmFja2dyb3VuZC1jb2xvcjojZmYwfXRve2JhY2tncm91bmQtY29sb3I6IzBmZn19QGtleWZyYW1lcyB5dHAtcGFydHktYmFja2dyb3VuZC1jb2xvcnswJXtiYWNrZ3JvdW5kLWNvbG9yOiNmMDB9MjAle2JhY2tncm91bmQtY29sb3I6IzBmMH00MCV7YmFja2dyb3VuZC1jb2xvcjojMDBmfTYwJXtiYWNrZ3JvdW5kLWNvbG9yOiNmMGZ9ODAle2JhY2tncm91bmQtY29sb3I6I2ZmMH10b3tiYWNrZ3JvdW5kLWNvbG9yOiMwZmZ9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtcGFydHktY29sb3J7MCV7Y29sb3I6I2YwMH0yMCV7Y29sb3I6IzBmMH00MCV7Y29sb3I6IzAwZn02MCV7Y29sb3I6I2YwZn04MCV7Y29sb3I6I2ZmMH10b3tjb2xvcjojMGZmfX1Aa2V5ZnJhbWVzIHl0cC1wYXJ0eS1jb2xvcnswJXtjb2xvcjojZjAwfTIwJXtjb2xvcjojMGYwfTQwJXtjb2xvcjojMDBmfTYwJXtjb2xvcjojZjBmfTgwJXtjb2xvcjojZmYwfXRve2NvbG9yOiMwZmZ9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtcGFydHktZmlsbHswJXtmaWxsOiNmMDB9MjAle2ZpbGw6IzBmMH00MCV7ZmlsbDojMDBmfTYwJXtmaWxsOiNmMGZ9ODAle2ZpbGw6I2ZmMH10b3tmaWxsOiMwZmZ9fUBrZXlmcmFtZXMgeXRwLXBhcnR5LWZpbGx7MCV7ZmlsbDojZjAwfTIwJXtmaWxsOiMwZjB9NDAle2ZpbGw6IzAwZn02MCV7ZmlsbDojZjBmfTgwJXtmaWxsOiNmZjB9dG97ZmlsbDojMGZmfX0ueXRwLW1lbnUtc2hvd24gLnZpZGVvLWFkc3tkaXNwbGF5Om5vbmV9Lnl0cC1hZC1kaXNwbGF5LW92ZXJyaWRlIC52aWRlby1hZHN7ZGlzcGxheTppbmhlcml0fS55dHAtc3dhdGNoLWJhY2tncm91bmQtY29sb3J7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLXN0YXRpYy1icmFuZC1yZWQsI2YwMyl9Lnl0cC1kbmkgLnl0cC1zd2F0Y2gtYmFja2dyb3VuZC1jb2xvcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lnl0cC1jb2xvci13aGl0ZSAueXRwLXN3YXRjaC1iYWNrZ3JvdW5kLWNvbG9ye2JhY2tncm91bmQtY29sb3I6I2RkZH0ueXRwLWNvbG9yLXdoaXRlIC55dHAtc3dhdGNoLWJhY2tncm91bmQtY29sb3Itc2Vjb25kYXJ5e2JhY2tncm91bmQtY29sb3I6I2FhYX0ueXRwLWNvbG9yLXBhcnR5IC55dHAtcGxheS1wcm9ncmVzcy55dHAtc3dhdGNoLWJhY2tncm91bmQtY29sb3IsLnl0cC1jb2xvci1wYXJ0eSAueXRwLXN3YXRjaC1iYWNrZ3JvdW5kLWNvbG9yLC55dHAtY29sb3ItcGFydHkgLnl0cC1zd2F0Y2gtYmFja2dyb3VuZC1jb2xvci1zZWNvbmRhcnl7LXdlYmtpdC1hbmltYXRpb246eXRwLXBhcnR5LWJhY2tncm91bmQtY29sb3IgLjFzIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb246eXRwLXBhcnR5LWJhY2tncm91bmQtY29sb3IgLjFzIGxpbmVhciBpbmZpbml0ZTtiYWNrZ3JvdW5kOm5vbmV9Lnl0cC1zd2F0Y2gtY29sb3J7Y29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1zdGF0aWMtYnJhbmQtcmVkLCNmMDMpfS55dHAtc3dhdGNoLWNvbG9yLXdoaXRle2NvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10ZXh0LXNlY29uZGFyeSl9Lnl0cC1wcmVtaXVtLWxhYmVse2ZvbnQtc2l6ZTo4My4zMzMzJTtjb2xvcjojY2NjfS55dHAtZG5pIC55dHAtc3dhdGNoLWNvbG9ye2NvbG9yOiNmZmZ9Lnl0cC1jb2xvci13aGl0ZSAueXRwLXN3YXRjaC1jb2xvcntjb2xvcjojZGRkfS55dHAtY29sb3ItcGFydHkgLnl0cC1zd2F0Y2gtY29sb3J7LXdlYmtpdC1hbmltYXRpb246eXRwLXBhcnR5LWNvbG9yIC4xNXMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjp5dHAtcGFydHktY29sb3IgLjE1cyBsaW5lYXIgaW5maW5pdGV9QG1lZGlhIHByaW50ey5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtbXdlYi1wbGF5ZXIpICp7dmlzaWJpbGl0eTpoaWRkZW59Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1td2ViLXBsYXllcil7Ym9yZGVyOjFweCBzb2xpZCAjMDAwOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH06bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtY2hyb21lLXRvcCw6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheSw6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtbGFyZ2UtcGxheS1idXR0b257b3BhY2l0eToxIWltcG9ydGFudDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50fTpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC1sYXJnZS1wbGF5LWJ1dHRvbiAqLDpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC10aXRsZSw6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtdGl0bGUgKntjb2xvcjojMDAwIWltcG9ydGFudDt2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50fX0ueXRwLXBsYXllci1pbi1iYXItZGlzYWJsZS11aT46bm90KC5odG1sNS12aWRlby1jb250YWluZXIpe2Rpc3BsYXk6bm9uZTtwb2ludGVyLWV2ZW50czpub25lfS55dHAtY29tcG9zaXRlLXZpZGVvLW92ZXJsYXktcmVuZGVyZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OjA7dG9wOjA7Ym90dG9tOjA7ei1pbmRleDoxMH0ueXRwLWFkLW1vZHVsZXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS55dHAtcGxheWVyLW1pbmltaXplZC55dHAtbWluaXBsYXllci1hbHRlcm5hdGUtdWkgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXR7aGVpZ2h0OmNhbGMoMTAwJSAtIDEycHgpO3RvcDowfS52aWRlby1hZC1zdGF0dXMtYmFye3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo2MXB4O3otaW5kZXg6ODUwO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjojMDAwO29wYWNpdHk6Ljc7ZGlzcGxheTpub25lfS55dHAtZW1iZWQgLnZpZGVvLWFkLXN0YXR1cy1iYXJ7Ym90dG9tOjUzcHh9Lnl0cC1iaWctbW9kZSAudmlkZW8tYWQtc3RhdHVzLWJhcntib3R0b206NzBweH0ueXRwLWhpZGUtY29udHJvbHMgLnZpZGVvLWFkLXN0YXR1cy1iYXJ7Ym90dG9tOjB9LmFkLXNob3dpbmcgLnZpZGVvLWFkLXN0YXR1cy1iYXJ7ZGlzcGxheTpibG9ja30uYWQtc2hvd2luZy55dHAtYXV0b2hpZGUgLnZpZGVvLWFkLXN0YXR1cy1iYXIsLmFkLXNob3dpbmcueXRwLWhpZGUtY29udHJvbHMgLnZpZGVvLWFkLXN0YXR1cy1iYXJ7Ym90dG9tOjB9LnZpZGVvLWFkLWxhYmVse2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTo1cHh9LmFkLXNob3dpbmcgLmFkLXZpZGVve3Bvc2l0aW9uOmFic29sdXRlfS5hZC1zaG93aW5nIC5hZC12aWRlb3t0b3A6MH0uaHRtbDUtdmlkZW8tcGxheWVyIC52aWRlby1jbGljay10cmFja2luZywuaHRtbDUtdmlkZW8tcGxheWVyIC52aWRlby1zdHJlYW17ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlfS5odG1sNS12aWRlby1wbGF5ZXIgLmFkLWNvbnRhaW5lci1zaW5nbGUtbWVkaWEtZWxlbWVudC1hbm5vdGF0aW9uc3twb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4Ojg1MH0uaHRtbDUtdmlkZW8tcGxheWVyIC5hZC1jb250YWluZXItc2luZ2xlLW1lZGlhLWVsZW1lbnQtYW5ub3RhdGlvbnMtd29ya2Fyb3VuZHt6LWluZGV4Ojg1MH0uaHRtbDUtdmlkZW8tcGxheWVyIC5hZC1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo2MXB4O3dpZHRoOjEwMCU7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtZW1iZWQuaHRtbDUtdmlkZW8tcGxheWVyIC5hZC1vdmVybGF5e2JvdHRvbTo1M3B4fS55dHAtYWQtb3ZlcmxheS1jbG9zZWQgLmFkLW92ZXJsYXksLnl0cC1wbGF5ZXItbWluaW1pemVkLnl0cC1hZC1vdmVybGF5LWNsb3NlZCAuYWQtb3ZlcmxheXtkaXNwbGF5Om5vbmV9Lnl0cC1iaWctbW9kZSAuYWQtb3ZlcmxheXtib3R0b206NzBweH0ueXRwLWF1dG9oaWRlLnl0cC1hZC1vdmVybGF5LWNsb3NlZCAuYWQtb3ZlcmxheXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lmh0bWw1LXZpZGVvLXBsYXllciAuYWQtb3ZlcmxheSAudmlkZW8tY2xpY2stdHJhY2tpbmd7ZGlzcGxheTpub25lfS5odG1sNS12aWRlby1wbGF5ZXIgLmFkLW92ZXJsYXk+Om5vdCguaW1hLWNvbnRhaW5lcil7ei1pbmRleDo4NzB9Lmh0bWw1LXZpZGVvLXBsYXllciAuYWQtb3ZlcmxheT4uaW1hLWNvbnRhaW5lcnt6LWluZGV4OmF1dG8haW1wb3J0YW50fS5odG1sNS12aWRlby1wbGF5ZXIgLmFkLW92ZXJsYXk+LmltYS1jb250YWluZXI+Knt6LWluZGV4Ojg3MCFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmV9Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpIC5hZC1jb250YWluZXIsLmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCgueXRwLWFkLW92ZXJsYXktb3BlbikgLnZpZGVvLWFkc3tkaXNwbGF5Om5vbmV9Lml2LWVuZGNhcC1iYWNrZ3JvdW5ke3otaW5kZXg6ODIxfS5odG1sNS12aWRlby1wbGF5ZXIgLmF0dHJpYnV0aW9uLWJ1dHRvbnt0ZXh0LXNoYWRvdzpyZ2IoMCwwLDApIDAgMCA4cHgscmdiYSgwLDAsMCwuOSkgMCAwIDRweH0ueXRwLWFkLWJ1dHRvbi1pY29uLC55dHAtYWQtYnV0dG9uLXRleHQsLnl0cC1hZC1za2lwLWJ1dHRvbi1pY29uLC55dHAtYWQtc2tpcC1idXR0b24tdGV4dHtkaXNwbGF5OmlubGluZS1ibG9ja30ueXRwLWFkLXNraXAtYnV0dG9uLXRleHQtY2VudGVyZWR7dmVydGljYWwtYWxpZ246bWlkZGxlfS55dHAtYWQtcGxheWVyLW92ZXJsYXktdXBkYXRlZC1mb2N1cy1zdHlsZS55dHAtYWQtcGxheWVyLW92ZXJsYXkgLnl0cC1hZC1idXR0b24sLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS11cGRhdGVkLWZvY3VzLXN0eWxlLnl0cC1hZC1wbGF5ZXItb3ZlcmxheSBidXR0b257b3V0bGluZTowfS55dHAtcHJvYmFibHkta2V5Ym9hcmQtZm9jdXMgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS11cGRhdGVkLWZvY3VzLXN0eWxlLnl0cC1hZC1wbGF5ZXItb3ZlcmxheSAueXRwLWFkLWJ1dHRvbjpmb2N1cywueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtYWQtcGxheWVyLW92ZXJsYXktdXBkYXRlZC1mb2N1cy1zdHlsZS55dHAtYWQtcGxheWVyLW92ZXJsYXkgYnV0dG9uOmZvY3Vzey13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC44KTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCByZ2JhKDI3LDEyNywyMDQsLjgpfS55dHAtYWQtYnV0dG9uLWljb257aGVpZ2h0OmluaGVyaXQ7d2lkdGg6aW5oZXJpdDtwb2ludGVyLWV2ZW50czphdXRvfS55dHAtYWQtYnV0dG9uLWxpbmt7cGFkZGluZzowO2JvcmRlcjpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZTppbmhlcml0O3RleHQtZGVjb3JhdGlvbjpub25lOy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0ueXRwLWFkLWJ1dHRvbi1saW5rOmFjdGl2ZSwueXRwLWFkLWJ1dHRvbi1saW5rOmhvdmVye2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmV9Lnl0cC1iaWctbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW5zdHJlYW0taW5mbywueXRwLWJpZy1tb2RlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktaW5zdHJlYW0taW5mbywueXRwLWJpZy1tb2RlIC55dHAtYWQtc3VydmV5LXBsYXllci1vdmVybGF5LWluc3RyZWFtLWluZm97bGVmdDoyNHB4O2JvdHRvbTo3MHB4fS55dHAtYXV0b2hpZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWluc3RyZWFtLWluZm8sLnl0cC1hdXRvaGlkZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWluc3RyZWFtLWluZm8sLnl0cC1hdXRvaGlkZSAueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS1pbmZvLC55dHAtZW1iZWQueXRwLWF1dG9oaWRlIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1pbnN0cmVhbS1pbmZvLC55dHAtZW1iZWQueXRwLWF1dG9oaWRlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktaW5zdHJlYW0taW5mbywueXRwLWVtYmVkLnl0cC1hdXRvaGlkZSAueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS1pbmZvLC55dHAtZW1iZWQueXRwLWhpZGUtY29udHJvbHMgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWluc3RyZWFtLWluZm8sLnl0cC1lbWJlZC55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXBsYXllci1vdmVybGF5LWluc3RyZWFtLWluZm8sLnl0cC1lbWJlZC55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS1pbmZvLC55dHAtZW1iZWQueXRwLWl2LWRyYXdlci1vcGVuIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1pbnN0cmVhbS1pbmZvLC55dHAtZW1iZWQueXRwLWl2LWRyYXdlci1vcGVuIC55dHAtYWQtcGxheWVyLW92ZXJsYXktaW5zdHJlYW0taW5mbywueXRwLWVtYmVkLnl0cC1pdi1kcmF3ZXItb3BlbiAueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS1pbmZvLC55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW5zdHJlYW0taW5mbywueXRwLWhpZGUtY29udHJvbHMgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS1pbmZvLC55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS1pbmZvLC55dHAtaXYtZHJhd2VyLW9wZW4gLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWluc3RyZWFtLWluZm8sLnl0cC1pdi1kcmF3ZXItb3BlbiAueXRwLWFkLXBsYXllci1vdmVybGF5LWluc3RyZWFtLWluZm8sLnl0cC1pdi1kcmF3ZXItb3BlbiAueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS1pbmZve2JvdHRvbTo2cHg7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW5zdHJlYW0taW5mbywueXRwLWFkLXBsYXllci1vdmVybGF5LWluc3RyZWFtLWluZm8sLnl0cC1hZC1zdXJ2ZXktcGxheWVyLW92ZXJsYXktaW5zdHJlYW0taW5mb3tib3R0b206NjFweDtjdXJzb3I6ZGVmYXVsdDtsZWZ0OjE4cHg7cG9pbnRlci1ldmVudHM6YXV0bztwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsLjc1KTt6LWluZGV4Ojg1MDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1lbWJlZCAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW5zdHJlYW0taW5mbywueXRwLWVtYmVkIC55dHAtYWQtcGxheWVyLW92ZXJsYXktaW5zdHJlYW0taW5mbywueXRwLWVtYmVkIC55dHAtYWQtc3VydmV5LXBsYXllci1vdmVybGF5LWluc3RyZWFtLWluZm97Ym90dG9tOjUzcHh9Lnl0cC1hZC1jbGlja2FibGV7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1hZC1kaXNjbG9zdXJlLWJhbm5lcntib3JkZXItcmFkaXVzOjA7Ym90dG9tOmF1dG87Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OmF1dG87bGVmdDoxMnB4O3BvaW50ZXItZXZlbnRzOmF1dG87cG9zaXRpb246YWJzb2x1dGU7dG9wOjI0cHg7ei1pbmRleDo4NTB9Lnl0cC1iaWctbW9kZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWFkLWRpc2Nsb3N1cmUtYmFubmVye2xlZnQ6MjRweH0ueXRwLWFkLXBsYXllci1vdmVybGF5LWZseW91dC1jdGF7Ym90dG9tOjg2cHg7bGVmdDoxMnB4O3BvaW50ZXItZXZlbnRzOmF1dG87cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo4NTB9Lnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1mbHlvdXQtY3RhLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czo4cHg7b3ZlcmZsb3c6aGlkZGVufS55dHAtZW1iZWQgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1mbHlvdXQtY3Rhe2JvdHRvbTo3OHB4fS55dHAtZmx5b3V0LWN0YXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO3RleHQtYWxpZ246bGVmdDtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1mbHlvdXQtY3RhLWxhcmdle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNik7cGFkZGluZzo4cHg7bWluLXdpZHRoOjIwMHB4fS55dHAtZmx5b3V0LWN0YTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS55dHAtZmx5b3V0LWN0YS1sYXJnZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpfS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtYm9keXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpO2JvcmRlci1yYWRpdXM6MnB4O21heC13aWR0aDo0MDBweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowO3dpZHRoOjEwMCU7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC10cmFuc2l0aW9uOndpZHRoIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpIC41cyxtYXgtd2lkdGggLjJzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp3aWR0aCAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSAuNXMsbWF4LXdpZHRoIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtYm9keS1sYXJnZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmV9Lnl0cC1mbHlvdXQtY3RhOmhvdmVyIC55dHAtZmx5b3V0LWN0YS1ib2R5e2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KX0ueXRwLWZseW91dC1jdGE6aG92ZXIgLnl0cC1mbHlvdXQtY3RhLWJvZHktbGFyZ2V7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLXRleHQtY29udGFpbmVye21heC13aWR0aDoyNTBweDtwYWRkaW5nLWxlZnQ6NThweDtwYWRkaW5nLXJpZ2h0OjIwcHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtdGV4dC1jb250YWluZXItbGFyZ2V7cGFkZGluZy1yaWdodDoxMHB4fS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtaGVhZGxpbmUtY29udGFpbmVye2NvbG9yOiMzMzM7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxNHB4O21hcmdpbi10b3A6MTBweH0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWhlYWRsaW5lLWNvbnRhaW5lci1kYXJrLWJhY2tncm91bmR7Y29sb3I6I2RkZH0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWRlc2NyaXB0aW9uLWNvbnRhaW5lcntjb2xvcjojNzY3Njc2O2ZvbnQtc2l6ZToxM3B4O21hcmdpbi10b3A6M3B4O21hcmdpbi1ib3R0b206MTBweH0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWRlc2NyaXB0aW9uLWNvbnRhaW5lci1kYXJrLWJhY2tncm91bmR7Y29sb3I6I2RkZH0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWRlc2NyaXB0aW9ue292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWhlYWRsaW5le2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm9ybWFsOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6Mn0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWFjdGlvbi1idXR0b24tY29udGFpbmVye2RpcmVjdGlvbjpsdHI7bGluZS1oZWlnaHQ6NTZweDttYXgtd2lkdGg6MTUwcHg7cG9zaXRpb246c3RhdGljOy13ZWJraXQtYWxpZ24tc2VsZjpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXJ9Lnl0cC1mbHlvdXQtY3RhIC55dHAtZmx5b3V0LWN0YS1hY3Rpb24tYnV0dG9uLWNvbnRhaW5lci1sYXJnZXtsaW5lLWhlaWdodDppbmhlcml0O21hcmdpbjo4cHg7bWluLXdpZHRoOjEwMCV9Lnl0cC1mbHlvdXQtY3RhIC55dHAtZmx5b3V0LWN0YS1hY3Rpb24tYnV0dG9ue2JhY2tncm91bmQ6IzE2N2FjNjtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjojMTY3YWM2O2JvcmRlci1yYWRpdXM6MnB4Oy13ZWJraXQtYm94LXNoYWRvdzowIDFweCAwIHJnYmEoMCwwLDAsLjA1KTtib3gtc2hhZG93OjAgMXB4IDAgcmdiYSgwLDAsMCwuMDUpO2NvbG9yOiNmZmY7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NTAwO2hlaWdodDoyOHB4O21hcmdpbjowIDhweCAwIDA7bWF4LXdpZHRoOjE0MHB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjAgMTBweDt0ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6aW5oZXJpdH0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWFjdGlvbi1idXR0b24tbGFyZ2V7bWluLXdpZHRoOjEwMCU7Y29sb3I6IzBmMGYwZn0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWFjdGlvbi1idXR0b246aG92ZXJ7YmFja2dyb3VuZDojMTI2ZGIzfS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtYWN0aW9uLWJ1dHRvbjphY3RpdmV7YmFja2dyb3VuZDojMDk1Yjk5Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMCwwLDAsLjUpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDAsMCwwLC41KX0ueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWFjdGlvbi1idXR0b24ueXRwLWZseW91dC1jdGEtYWN0aW9uLWJ1dHRvbi1yb3VuZGVke2hlaWdodDozMnB4O2JvcmRlci1yYWRpdXM6MTZweDtwYWRkaW5nOjAgMTJweDtib3JkZXI6bm9uZTstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmU7Zm9udC1zaXplOjE0cHg7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7YmFja2dyb3VuZDojMDY1ZmQ0fS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtYWN0aW9uLWJ1dHRvbi55dHAtZmx5b3V0LWN0YS1hY3Rpb24tYnV0dG9uLXJvdW5kZWQtbGFyZ2V7YmFja2dyb3VuZC1jb2xvcjojM2VhNmZmfS55dHAtZmx5b3V0LWN0YSwueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWJvZHksLnl0cC1mbHlvdXQtY3RhIC55dHAtZmx5b3V0LWN0YS1ib2R5PmRpdntkaXJlY3Rpb246bHRyO2hlaWdodDphdXRvfS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtaWNvbi1jb250YWluZXJ7aGVpZ2h0OjEwMCU7bGVmdDo0cHg7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDo0OHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTstbXMtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtaWNvbi1jb250YWluZXItbGFyZ2V7bGVmdDo4cHg7dG9wOi0yNnB4fS55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtaWNvbi55dHAtZmx5b3V0LWN0YS1pY29uLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czo1MCV9Lnl0cC1mbHlvdXQtY3RhIC55dHAtZmx5b3V0LWN0YS1pY29ue2hlaWdodDo0OHB4O3dpZHRoOjQ4cHh9Lnl0cC1mbHlvdXQtY3RhLnl0cC1mbHlvdXQtY3RhLWluYWN0aXZley13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKX0ueXRwLWZseW91dC1jdGEueXRwLWZseW91dC1jdGEtaW5hY3RpdmUgLnl0cC1mbHlvdXQtY3RhLWljb24tY29udGFpbmVyey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpfS55dHAtZmx5b3V0LWN0YS55dHAtZmx5b3V0LWN0YS1pbmFjdGl2ZSAueXRwLWZseW91dC1jdGEtYm9keXttYXgtd2lkdGg6MDt3aWR0aDowfS55dHAtYmlnLW1vZGUgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1mbHlvdXQtY3Rhe2JvdHRvbTo5NXB4fS55dHAtc21hbGwtbW9kZSAueXRwLWZseW91dC1jdGEsLnl0cC1zbWFsbC1tb2RlIC55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtYm9keSwueXRwLXNtYWxsLW1vZGUgLnl0cC1mbHlvdXQtY3RhIC55dHAtZmx5b3V0LWN0YS1ib2R5PmRpdntoZWlnaHQ6YXV0bzttaW4taGVpZ2h0OjQwcHg7bWF4LXdpZHRoOjE5MHB4fS55dHAtc21hbGwtbW9kZSAueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWljb24tY29udGFpbmVye2hlaWdodDoxMDAlO3dpZHRoOjQwcHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtaWNvbntoZWlnaHQ6NDBweDt3aWR0aDo0MHB4fS55dHAtc21hbGwtbW9kZSAueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLXRleHQtY29udGFpbmVye21hcmdpbi1sZWZ0OjZweDtwYWRkaW5nOjRweCAyMHB4IDRweCA0MHB4fS55dHAtc21hbGwtbW9kZSAueXRwLWZseW91dC1jdGEgLnl0cC1mbHlvdXQtY3RhLWhlYWRsaW5lLWNvbnRhaW5lcntmb250LXNpemU6MTJweDttYXJnaW4tdG9wOjJweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1mbHlvdXQtY3RhIC55dHAtZmx5b3V0LWN0YS1kZXNjcmlwdGlvbi1jb250YWluZXJ7Zm9udC1zaXplOjExcHg7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1mbHlvdXQtY3RhIC55dHAtZmx5b3V0LWN0YS1pY29uLWNvbnRhaW5lcntsZWZ0OjA7dG9wOjB9Lnl0cC1zbWFsbC1tb2RlIC55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtaWNvbi1jb250YWluZXItbGFyZ2V7bGVmdDo0cHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtZmx5b3V0LWN0YSAueXRwLWZseW91dC1jdGEtYWN0aW9uLWJ1dHRvbi1jb250YWluZXJ7ZGlzcGxheTpub25lfS55dHAtYWQtZHVyYXRpb24tcmVtYWluaW5nLC55dHAtYWQtaW5mby1ob3Zlci10ZXh0LWJ1dHRvbiAueXRwLWFkLWJ1dHRvbiwueXRwLWFkLWluZm8taWNvbi1idXR0b24sLnl0cC1hZC1zaW1wbGUtYWQtYmFkZ2UsLnl0cC1hZC12aXNpdC1hZHZlcnRpc2VyLWJ1dHRvbntjb2xvcjojZmZmO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxMnB4O2xlZnQ6MDtsaW5lLWhlaWdodDoyOHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS55dHAtYWQtc2ltcGxlLWFkLWJhZGdle21hcmdpbi1sZWZ0OjVweDtvcGFjaXR5Oi43NX0ueXRwLWFkLXNpbXBsZS1hZC1iYWRnZS0tY2xlYW4tcGxheWVye21hcmdpbi1sZWZ0OjA7b3BhY2l0eToxO2NvbG9yOiNmZmY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtZmFtaWx5OllvdVR1YmUgTm90byxSb2JvdG8sYXJpYWwsc2Fucy1zZXJpZjt0ZXh0LXNoYWRvdzowIDAgMnB4IHJnYmEoMCwwLDAsLjUpO2xlZnQ6MDtsaW5lLWhlaWdodDoyOHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS55dHAtYWQtc2ltcGxlLWFkLWJhZGdlLS1zdXJ2ZXl7Zm9udC13ZWlnaHQ6NTAwfS55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciAueXRwLWFkLXNpbXBsZS1hZC1iYWRnZXttYXJnaW4tbGVmdDowfS55dHAtYWQtZHVyYXRpb24tcmVtYWluaW5ne21hcmdpbi1sZWZ0OjNweDtvcGFjaXR5Oi43NX0ueXRwLWFkLWR1cmF0aW9uLXJlbWFpbmluZy0tY2xlYW4tcGxheWVye2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5OmlubGluZS1mbGV4O21hcmdpbi1sZWZ0OjA7b3BhY2l0eToxO2NvbG9yOiNmZmY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtZmFtaWx5OllvdVR1YmUgTm90byxSb2JvdG8sYXJpYWwsc2Fucy1zZXJpZjt0ZXh0LXNoYWRvdzowIDAgMTZweCByZ2JhKDAsMCwwLC41KTtsZWZ0OjA7bGluZS1oZWlnaHQ6MjhweDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWFkLWR1cmF0aW9uLXJlbWFpbmluZy0tY2xlYW4tcGxheWVyOmJlZm9yZXtjb250ZW50OiLigKIiO3BhZGRpbmctaW5saW5lOjRweH0ueXRwLWFkLWR1cmF0aW9uLXJlbWFpbmluZy0tbXdlYntmb250LXdlaWdodDo2MDA7bWFyZ2luLWxlZnQ6M3B4fS55dHAtYWQtZHVyYXRpb24tcmVtYWluaW5nLS1td2ViLWlvc3tsZXR0ZXItc3BhY2luZzotLjJweH0ueXRwLWFkLWluZm8taG92ZXItdGV4dC1idXR0b257ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjI4cHg7bGluZS1oZWlnaHQ6aW5oZXJpdDttYXJnaW46MCA1cHg7bWFyZ2luLXJpZ2h0OjA7cG9pbnRlci1ldmVudHM6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LXNoYWRvdzowIDAgMnB4IHJnYmEoMCwwLDAsLjUpO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueXRwLWFkLWluZm8taG92ZXItdGV4dC1idXR0b24gLnl0cC1hZC1ob3Zlci10ZXh0LWNvbnRhaW5lcntiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjYWFhO2JvcmRlci1yYWRpdXM6NHB4O2JvdHRvbTozMHB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojMzMzO2Rpc3BsYXk6bm9uZTtmb250LXNpemU6MTJweDtsZWZ0Oi0xOXB4O2xpbmUtaGVpZ2h0Om5vcm1hbDtvcGFjaXR5Oi45O3BhZGRpbmc6N3B4O3BvaW50ZXItZXZlbnRzOmF1dG87cG9zaXRpb246YWJzb2x1dGU7dGV4dC1zaGFkb3c6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lfS55dHAtYWQtaW5mby1ob3Zlci10ZXh0LXNob3J0e3doaXRlLXNwYWNlOm5vd3JhcH0uaHRtbDUtdmlkZW8tcGxheWVyIC55dHAtYWQtaW5mby1ob3Zlci10ZXh0LWJ1dHRvbiAueXRwLWFkLWhvdmVyLXRleHQtY29udGFpbmVyIGF7Y29sb3I6IzE2N2FjNn0uaHRtbDUtdmlkZW8tcGxheWVyIC55dHAtYWQtaW5mby1ob3Zlci10ZXh0LWJ1dHRvbiAueXRwLWFkLWhvdmVyLXRleHQtY29udGFpbmVyIGE6aG92ZXJ7Y29sb3I6IzE2N2FjNjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS55dHAtYWQtaW5mby1ob3Zlci10ZXh0LWJ1dHRvbjpob3ZlciAueXRwLWFkLWhvdmVyLXRleHQtY29udGFpbmVyLC55dHAtYWQtb3ZlcmxheS1hZC1pbmZvLWJ1dHRvbi1jb250YWluZXI6aG92ZXIgLnl0cC1hZC1ob3Zlci10ZXh0LWNvbnRhaW5lcntkaXNwbGF5OmlubGluZS1ibG9ja30ueXRwLWFkLWhvdmVyLXRleHQtY2FsbG91dHtib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOjVweCBzb2xpZCAjZmZmOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MDtsZWZ0OjIwcHg7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt0b3A6MTAwJTt3aWR0aDowfS55dHAtYWQtaW5mby1ob3Zlci10ZXh0LWJ1dHRvbiAueXRwLWFkLWJ1dHRvbiwueXRwLWFkLWluZm8taWNvbi1idXR0b257LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDJweCAjMDAwKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDJweCAjMDAwKTtoZWlnaHQ6aW5oZXJpdDtvcGFjaXR5Oi43NTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTt3aWR0aDoxM3B4fS55dHAtYWQtaW5mby1ob3Zlci10ZXh0LWJ1dHRvbiAueXRwLWFkLWhvdmVyLXRleHQtYnV0dG9uLS1jbGVhbi1wbGF5ZXJ7b3BhY2l0eToxOy13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCA3cHggcmdiYSgwLDAsMCwuOSkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgN3B4IHJnYmEoMCwwLDAsLjkpKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWFkLWluZm8taG92ZXItdGV4dC1idXR0b24gLnl0cC1hZC1idXR0b257LXdlYmtpdC1maWx0ZXI6dW5zZXQ7ZmlsdGVyOnVuc2V0fS55dHAtYWQtaW5mby1ob3Zlci10ZXh0LWJ1dHRvbiAueXRwLWFkLWJ1dHRvbjpob3ZlciwueXRwLWFkLWluZm8taWNvbi1idXR0b246aG92ZXJ7b3BhY2l0eToxfS55dHAtYWQtY29uZmlybS1kaWFsb2ctYmFja2dyb3VuZCwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1iYWNrZ3JvdW5kLC55dHAtYWQtaW5mby1kaWFsb2ctYmFja2dyb3VuZHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpO2Rpc3BsYXk6dGFibGU7aGVpZ2h0OjEwMCU7bGVmdDowO21hcmdpbjphdXRvO3BvaW50ZXItZXZlbnRzOmF1dG87cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJTt6LWluZGV4OjIyMDF9Lnl0cC1hZHMtdGlueS1tb2RlIC55dHAtYWQtY29uZmlybS1kaWFsb2ctYmFja2dyb3VuZCwueXRwLWFkcy10aW55LW1vZGUgLnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctYmFja2dyb3VuZCwueXRwLWFkcy10aW55LW1vZGUgLnl0cC1hZC1pbmZvLWRpYWxvZy1iYWNrZ3JvdW5ke2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3cteTpzY3JvbGw7b3ZlcmZsb3cteDpoaWRkZW59Lnl0cC1hZC1jb25maXJtLWRpYWxvZy1jbG9zZS1vdmVybGF5LWJ1dHRvbiwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1jbG9zZS1idXR0b24sLnl0cC1hZC1pbmZvLWRpYWxvZy1jbG9zZS1idXR0b257aGVpZ2h0OjI0cHg7b3BhY2l0eTouNzU7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTRweDt0b3A6MTRweDt3aWR0aDoyNHB4fS55dHAtYWQtY29uZmlybS1kaWFsb2ctY2xvc2Utb3ZlcmxheS1idXR0b246aG92ZXIsLnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctY2xvc2UtYnV0dG9uOmhvdmVyLC55dHAtYWQtaW5mby1kaWFsb2ctY2xvc2UtYnV0dG9uOmhvdmVye29wYWNpdHk6MX0ueXRwLWFkLWNvbmZpcm0tZGlhbG9nLWNvbnRhaW5lciwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1jb250YWluZXIsLnl0cC1hZC1pbmZvLWRpYWxvZy1jb250YWluZXJ7ZGlzcGxheTp0YWJsZS1jZWxsO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueXRwLWFkLWNvbmZpcm0tZGlhbG9nLC55dHAtYWQtZmVlZGJhY2stZGlhbG9nLWZvcm0sLnl0cC1hZC1pbmZvLWRpYWxvZy1mb3Jte2JhY2tncm91bmQ6d2hpdGU7Ym9yZGVyOjFweCBzb2xpZCBibGFjaztjb2xvcjojNzY3Njc2O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtc2hhZG93Om5vbmU7Zm9udC1zaXplOjE0cHg7bWluLXdpZHRoOjE4MHB4O21heC13aWR0aDo1MCU7cGFkZGluZzoxNHB4O3RleHQtYWxpZ246bGVmdH0ueXRwLWFkLWluZm8tZGlhbG9nLXJlbGF0aXZlLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjcyfS55dHAtYWQtaW5mby1kaWFsb2ctcmVsYXRpdmUtY29udGFpbmVyIC55dHAtYWQtaW5mby1kaWFsb2ctZm9ybXstd2Via2l0LWJveC1zaGFkb3c6MCAwIDE1cHggcmdiYSgwLDAsMCwuMTgpO2JveC1zaGFkb3c6MCAwIDE1cHggcmdiYSgwLDAsMCwuMTgpO2JvcmRlci1jb2xvcjojZTJlMmUyO21heC13aWR0aDpub25lfS55dHAtYWQtZmVlZGJhY2stZGlhbG9nLWZvcm0gYSwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1mb3JtIGE6aG92ZXIsLnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctdW5kby1tdXRlLWJ1dHRvbiwueXRwLWFkLWluZm8tZGlhbG9nLWZvcm0gYSwueXRwLWFkLWluZm8tZGlhbG9nLWZvcm0gYTpob3ZlciwueXRwLWFkLWluZm8tZGlhbG9nLW11dGUtYnV0dG9ue2NvbG9yOiMxNjdhYzY7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctdGl0bGUsLnl0cC1hZC1pbmZvLWRpYWxvZy10aXRsZXtjb2xvcjojMzMzO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nLWJvdHRvbTo4cHh9Lnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctdGl0bGUgYSwueXRwLWFkLWluZm8tZGlhbG9nLXRpdGxlIGF7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX11bC55dHAtYWQtaW5mby1kaWFsb2ctYWQtcmVhc29uc3twYWRkaW5nOjA7bWFyZ2luOjA7bWFyZ2luLWJvdHRvbTo4cHh9Lnl0cC1hZC1pbmZvLWRpYWxvZy1hZC1yZWFzb25zIGxpe2xpc3Qtc3R5bGU6ZGlzYztsaXN0LXN0eWxlLXBvc2l0aW9uOm91dHNpZGU7bWFyZ2luLWxlZnQ6MjBweH0ueXRwLWFkLWNvbmZpcm0tZGlhbG9nLW1lc3NhZ2VzLC55dHAtYWQtaW5mby1kaWFsb2ctZmVlZGJhY2stb3B0aW9uc3ttYXJnaW4tbGVmdDo4cHh9bGFiZWwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1yZWFzb24tbGFiZWx7ZGlzcGxheTpibG9jazttYXJnaW46OHB4IDB9Lnl0cC1hZC1jb25maXJtLWRpYWxvZy1jb25maXJtLWNvbnRhaW5lciwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1jb25maXJtLWNvbnRhaW5lciwueXRwLWFkLWluZm8tZGlhbG9nLWNvbmZpcm0tY29udGFpbmVye21hcmdpbi10b3A6OHB4O3RleHQtYWxpZ246cmlnaHR9Lnl0cC1hZC1jb25maXJtLWRpYWxvZy1jYW5jZWwtYnV0dG9uLC55dHAtYWQtY29uZmlybS1kaWFsb2ctY29uZmlybS1idXR0b24sLnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctY2FuY2VsLWJ1dHRvbiwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1jb25maXJtLWJ1dHRvbiwueXRwLWFkLWluZm8tZGlhbG9nLWNvbmZpcm0tYnV0dG9ue2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXdlaWdodDo1MDA7bWFyZ2luOjRweCAwIDAgMTJweDtwYWRkaW5nOjEwcHg7Y29sb3I6IzE2N2FjNjtjdXJzb3I6cG9pbnRlcjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lnl0cC1hZC1jb25maXJtLWRpYWxvZy1jYW5jZWwtYnV0dG9uOmhvdmVyLC55dHAtYWQtY29uZmlybS1kaWFsb2ctY29uZmlybS1idXR0b246aG92ZXIsLnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctY2FuY2VsLWJ1dHRvbjpob3ZlciwueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy1jb25maXJtLWJ1dHRvbjpob3ZlciwueXRwLWFkLWluZm8tZGlhbG9nLWNvbmZpcm0tYnV0dG9uOmhvdmVye2NvbG9yOiMxNjdhYzY7Y3Vyc29yOnBvaW50ZXI7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS55dHAtYWQtaW5mby1kaWFsb2ctbXV0ZS1jb250YWluZXJ7bWFyZ2luLXRvcDo4cHh9Lnl0cC1hZC1pbmZvLWRpYWxvZy1tdXRlLWJ1dHRvbntmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZn0ueXRwLWFkLWluZm8tZGlhbG9nLW11dGUtYnV0dG9uIC55dHAtYWQtYnV0dG9uLWljb257aGVpZ2h0OjE2cHg7bWFyZ2luLXJpZ2h0OjVweDt3aWR0aDoxNnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueXRwLWFkLWZlZWRiYWNrLWRpYWxvZy11bmRvLW11dGUtYnV0dG9ue2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjUwMDttYXJnaW4tbGVmdDo1cHh9Lnl0cC1hZC1mZWVkYmFjay1kaWFsb2ctdW5kby1tdXRlLWJ1dHRvbiAueXRwLWFkLWJ1dHRvbi10ZXh0e3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lnl0cC1hZC12aXNpdC1hZHZlcnRpc2VyLWJ1dHRvbntsaW5lLWhlaWdodDppbmhlcml0O2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO21hcmdpbi1sZWZ0OjVweDt0ZXh0LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsLjc1KX0ueXRwLWFkLXZpc2l0LWFkdmVydGlzZXItYnV0dG9uOmJlZm9yZXtjb250ZW50OiIiO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTJweDtyaWdodDotMnB4O3RvcDotN3B4O2JvdHRvbTotOHB4fS55dHAtYWQtdmlzaXQtYWR2ZXJ0aXNlci1idXR0b24gLnl0cC1hZC1idXR0b24tdGV4dHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43NSk7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjEycHg7bWFyZ2luOi00cHggM3B4IC0ycHggMDtwYWRkaW5nOjVweCAwO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS55dHAtYWQtdmlzaXQtYWR2ZXJ0aXNlci1idXR0b246aG92ZXIgLnl0cC1hZC1idXR0b24tdGV4dHtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lnl0cC1hZC12aXNpdC1hZHZlcnRpc2VyLWJ1dHRvbiAueXRwLWFkLWJ1dHRvbi1pY29ue2N1cnNvcjpwb2ludGVyOy13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAycHggIzAwMCk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAycHggIzAwMCk7aGVpZ2h0OjEwcHg7b3BhY2l0eTouNzU7d2lkdGg6MTBweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDFweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMXB4KX0ueXRwLWFkLXZpc2l0LWFkdmVydGlzZXItYnV0dG9uOmhvdmVyIC55dHAtYWQtYnV0dG9uLWljb257b3BhY2l0eToxfS55dHAtYmlnLW1vZGUgLnl0cC1hZC1wcmV2aWV3LWNvbnRhaW5lciwueXRwLWJpZy1tb2RlIC55dHAtYWQtc2tpcC1idXR0b24tY29udGFpbmVye2JvdHRvbTo5NXB4fS55dHAtYmlnLW1vZGUgLnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1jb250YWluZXJ7Ym90dG9tOjE1NnB4fS55dHAtZW1iZWQueXRwLWhpZGUtY29udHJvbHMgLnl0cC1hZC1wcmV2aWV3LWNvbnRhaW5lciwueXRwLWVtYmVkLnl0cC1oaWRlLWNvbnRyb2xzIC55dHAtYWQtc2tpcC1idXR0b24tY29udGFpbmVyLC55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXByZXZpZXctY29udGFpbmVyLC55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXNraXAtYnV0dG9uLWNvbnRhaW5lcntib3R0b206MjVweH0ueXRwLWhpZGUtY29udHJvbHMgLnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1jb250YWluZXJ7Ym90dG9tOjg2cHh9Lnl0cC1hZHMtdGlueS1tb2RlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktaW5zdHJlYW0tdXNlci1zZW50aW1lbnQgLnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1jb250YWluZXJ7Ym90dG9tOjcwcHh9Lnl0cC1zZXR0aW5ncy1zaG93biAueXRwLWFkLWluc3RyZWFtLXVzZXItc2VudGltZW50LWNvbnRhaW5lciwueXRwLXNldHRpbmdzLXNob3duIC55dHAtYWQtcHJldmlldy1jb250YWluZXIsLnl0cC1zZXR0aW5ncy1zaG93biAueXRwLWFkLXNraXAtYnV0dG9uLWNvbnRhaW5lcntvcGFjaXR5Oi40O3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDo4NTB9Lnl0cC1zZXR0aW5ncy1zaG93biAueXRwLWFkLWluc3RyZWFtLXVzZXItc2VudGltZW50LWNvbnRhaW5lciAueXRwLWFkLXRvZ2dsZS1idXR0b24tbGFiZWx7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLWFkLW1lc3NhZ2Utb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvdHRvbTowO2xlZnQ6MDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6ODUwfS55dHAtYWQtbWVzc2FnZS1zbG90LC55dHAtYWQtcHJldmlldy1zbG90LC55dHAtYWQtc2tpcC1hZC1zbG90e3RleHQtc2hhZG93OjAgMCA0cHggcmdiYSgwLDAsMCwuNzUpO3BvaW50ZXItZXZlbnRzOmF1dG87ei1pbmRleDo4NTB9Lnl0cC1hZC1tZXNzYWdlLWNvbnRhaW5lciwueXRwLWFkLXByZXZpZXctY29udGFpbmVyLC55dHAtYWQtc2tpcC1idXR0b24tY29udGFpbmVye2JvdHRvbTo4NnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7ei1pbmRleDoxMDAwfS55dHAtZW1iZWQgLnl0cC1hZC1tZXNzYWdlLWNvbnRhaW5lciwueXRwLWVtYmVkIC55dHAtYWQtcHJldmlldy1jb250YWluZXIsLnl0cC1lbWJlZCAueXRwLWFkLXNraXAtYnV0dG9uLWNvbnRhaW5lcntib3R0b206NzhweH0ueXRwLWFkLW1lc3NhZ2UtY29udGFpbmVye2JvdHRvbTo4NnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2NvbG9yOiNmZmY7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eToxO3JpZ2h0OjA7ei1pbmRleDoxMDAwfS55dHAtZW1iZWQgLnl0cC1hZC1tZXNzYWdlLWNvbnRhaW5lcntib3R0b206NzhweH0ueXRwLWFkLW1lc3NhZ2UtY29udGFpbmVyLC55dHAtYWQtcHJldmlldy1jb250YWluZXJ7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjRzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC40cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNCk7Y3Vyc29yOmRlZmF1bHR9Lnl0cC1hZC1wcmV2aWV3LWNvbnRhaW5lci1kZXRhY2hlZHttYXJnaW4tcmlnaHQ6MTJweDtib3JkZXItcmFkaXVzOjRweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC42KTtoZWlnaHQ6MzZweH0ueXRwLWFkLXByZXZpZXctY29udGFpbmVyLWRldGFjaGVkOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMDAlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueXRwLWFkLXNraXAtYnV0dG9uLWNvbnRhaW5lcnstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eTouNztwb2ludGVyLWV2ZW50czphdXRvfS55dHAtYWQtc2tpcC1idXR0b24tY29udGFpbmVyLWRldGFjaGVke21hcmdpbi1yaWdodDoxMnB4O29wYWNpdHk6MX0ueXRwLWFkLW1lc3NhZ2UtY29udGFpbmVyW2FyaWEtaGlkZGVuPXRydWVdLC55dHAtYWQtcHJldmlldy1jb250YWluZXJbYXJpYS1oaWRkZW49dHJ1ZV0sLnl0cC1hZC1za2lwLWJ1dHRvbi1jb250YWluZXJbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWFkLXByZXZpZXctdGV4dHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTJweDtoZWlnaHQ6MzBweDtsZXR0ZXItc3BhY2luZzouMXB4O21pbi13aWR0aDo4MnB4O3BhZGRpbmc6MTFweCAxMHB4O3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpwcmU7d2lkdGg6YXV0b30ueXRwLWFkLXByZXZpZXctdGV4dC1tb2Rlcm57ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo0MDA7bGV0dGVyLXNwYWNpbmc6LjFweDtwYWRkaW5nOjAgOHB4O3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpwcmU7d2lkdGg6YXV0b30ueXRwLWFkLW1lc3NhZ2UtdGV4dHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTZweDtoZWlnaHQ6NTJweDtsaW5lLWhlaWdodDo1MnB4O2xldHRlci1zcGFjaW5nOi4xcHg7bWluLXdpZHRoOjgwcHg7cGFkZGluZzowIDIwcHg7dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOnByZTt3aWR0aDphdXRvfS55dHAtYWQtcHJldmlldy1pbWFnZXtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lnl0cC1hZC1wcmV2aWV3LWltYWdlPi55dHAtYWQtaW1hZ2V7ZGlzcGxheTpibG9jazt3aWR0aDo5MnB4O2hlaWdodDo1MnB4fS55dHAtYWQtcHJldmlldy1pbWFnZS1tb2Rlcm57ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfS55dHAtYWQtcHJldmlldy1pbWFnZS1tb2Rlcm4+Lnl0cC1hZC1pbWFnZXtkaXNwbGF5OmJsb2NrO2hlaWdodDozNnB4O3dpZHRoOjY1cHh9LmNvdW50ZG93bi1uZXh0LXRvLXRodW1ibmFpbCAueXRwLWFkLXByZXZpZXctdGV4dHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7aGVpZ2h0OmF1dG87bWluLXdpZHRoOjA7cGFkZGluZzowIDhweH0uY291bnRkb3duLW5leHQtdG8tdGh1bWJuYWlsIC55dHAtYWQtaW1hZ2V7aGVpZ2h0OjQxcHg7d2lkdGg6NzNweH0ubW9kZXJuLWNvdW50ZG93bi1uZXh0LXRvLXRodW1ibmFpbCAueXRwLWFkLXByZXZpZXctdGV4dC1tb2Rlcm57Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO2hlaWdodDphdXRvO21pbi13aWR0aDowO3BhZGRpbmc6MCA4cHh9Lm1vZGVybi1jb3VudGRvd24tbmV4dC10by10aHVtYm5haWwgLnl0cC1hZC1wcmV2aWV3LXRleHQtbW9kZXJuLXBvc3Ryb2xse3BhZGRpbmc6MCAxNHB4fS5tb2Rlcm4tY291bnRkb3duLW5leHQtdG8tdGh1bWJuYWlsIC55dHAtYWQtaW1hZ2V7aGVpZ2h0OjM2cHg7d2lkdGg6NjVweH0ueXRwLWFkLXNraXAtYnV0dG9ue2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNyk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC41KTtib3JkZXItcmlnaHQ6MDstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtjb2xvcjojZmZmO2RpcmVjdGlvbjpsdHI7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6bm9ybWFsO21pbi13aWR0aDowO3BhZGRpbmc6MTBweCA2cHggOHB4IDEwcHg7d2lkdGg6YXV0bzt0ZXh0LWFsaWduOmNlbnRlcjtjdXJzb3I6cG9pbnRlcn0ueXRwLWFkLXNraXAtYnV0dG9uOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuOSk7Ym9yZGVyOjFweCBzb2xpZCByZ2IoMjU1LDI1NSwyNTUpO2JvcmRlci1yaWdodDowfS55dHAtYWQtc2tpcC1idXR0b24taWNvbntoZWlnaHQ6MzZweDt3aWR0aDozNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW46LTE0cHggLTZweCAtMTJweCAtNHB4fS55dHAtYWQtc2tpcC1idXR0b24tbW9kZXJue2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNik7LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3g7Y29sb3I6I2ZmZjtkaXJlY3Rpb246bHRyO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtoZWlnaHQ6MzZweDtsaW5lLWhlaWdodDpub3JtYWw7bWluLXdpZHRoOjA7cGFkZGluZzowIDZweCAwIDE2cHg7d2lkdGg6YXV0bzt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItcmFkaXVzOjE4cHg7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1hZC1za2lwLWJ1dHRvbi1tb2Rlcm46aG92ZXJ7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKHJnYmEoMjU1LDI1NSwyNTUsLjIpKSx0byhyZ2JhKDI1NSwyNTUsMjU1LC4yKSkpLC13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20ocmdiKDE1LDE1LDE1KSksdG8ocmdiKDE1LDE1LDE1KSkpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQocmdiYSgyNTUsMjU1LDI1NSwuMikscmdiYSgyNTUsMjU1LDI1NSwuMikpLC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHJnYigxNSwxNSwxNSkscmdiKDE1LDE1LDE1KSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsMjU1LDI1NSwuMikscmdiYSgyNTUsMjU1LDI1NSwuMikpLGxpbmVhci1ncmFkaWVudChyZ2IoMTUsMTUsMTUpLHJnYigxNSwxNSwxNSkpfS55dHAtYWQtc2tpcC1idXR0b24tY29udGFpbmVyIC55dHAtYWQtc2tpcC1idXR0b24tbW9kZXJuOmZvY3Vze2JhY2tncm91bmQ6cmdiKDE1LDE1LDE1KTtvdXRsaW5lOm5vbmU7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfS55dHAtYWQtc2tpcC1idXR0b24tY29udGFpbmVyIC55dHAtYWQtc2tpcC1idXR0b24tbW9kZXJuOmZvY3VzLXZpc2libGV7YmFja2dyb3VuZDojZmZmOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMCAycHggIzBmMGYwZjtib3gtc2hhZG93OjAgMCAwIDJweCAjMGYwZjBmO2NvbG9yOiMwZjBmMGZ9Lnl0cC1hZC1za2lwLWJ1dHRvbi1pY29uLW1vZGVybntoZWlnaHQ6MzZweDt3aWR0aDozNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueXRwLWFkLXNraXAtYnV0dG9uLWljb24tZGVsaGkgLnl0cC1hZC1za2lwLWJ1dHRvbi1pY29uLW1vZGVybiBzdmd7cGFkZGluZzo2cHh9Lnl0cC1hZC1za2lwLWJ1dHRvbi1pY29uLW13ZWItZGVsaGkgLnl0cC1hZC1za2lwLWJ1dHRvbi1pY29uLWRlbGhpIC55dHAtYWQtc2tpcC1idXR0b24taWNvbi1tb2Rlcm4gc3Zne2hlaWdodDoxNnB4O3dpZHRoOjE2cHg7cGFkZGluZzo0cHh9Lnl0cC1hZC1za2lwLWJ1dHRvbi1tb2Rlcm46Zm9jdXMtdmlzaWJsZSAueXRwLWFkLXNraXAtYnV0dG9uLWljb24tbW9kZXJuIHN2ZyBwYXRoe2ZpbGw6IzBmMGYwZn0uaHRtbDUtdmlkZW8tcGxheWVyIC55dHAtYWQtb3ZlcmxheS1zbG90e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo2MXB4O3dpZHRoOjEwMCU7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3otaW5kZXg6ODUwfS55dHAtZW1iZWQuaHRtbDUtdmlkZW8tcGxheWVyIC55dHAtYWQtb3ZlcmxheS1zbG90e2JvdHRvbTo1M3B4fS55dHAtYmlnLW1vZGUgLnl0cC1hZC1vdmVybGF5LXNsb3R7Ym90dG9tOjcwcHh9Lnl0cC1hdXRvaGlkZS55dHAtYWQtb3ZlcmxheS1jbG9zZWQgLnl0cC1hZC1vdmVybGF5LXNsb3R7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYWQtb3ZlcmxheS1jb250YWluZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9Lnl0cC1hZC1vdmVybGF5LWNvbnRhaW5lciAueXRwLWFkLWVuaGFuY2VkLW92ZXJsYXksLnl0cC1hZC1vdmVybGF5LWNvbnRhaW5lciAueXRwLWFkLW92ZXJsYXktaW1hZ2UgaW1nLC55dHAtYWQtb3ZlcmxheS1jb250YWluZXIgLnl0cC1hZC10ZXh0LW92ZXJsYXl7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0cC1hZC10ZXh0LW92ZXJsYXl7aGVpZ2h0OjYzcHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjYpO21pbi13aWR0aDozMjBweDttYXJnaW46YXV0bzttYXgtd2lkdGg6NDQwcHg7cGFkZGluZy1sZWZ0OjEwcHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0fS55dHAtYWQtdGV4dC1vdmVybGF5OmhvdmVye2JvcmRlcjoxcHggc29saWQgcmdiKDU4LDU4LDU4KX0ueXRwLWFkLW92ZXJsYXktdGl0bGV7Y3Vyc29yOnBvaW50ZXI7Y29sb3I6I2ZmZjtkaXNwbGF5OmJsb2NrO2ZvbnQ6NzAwIDE0cHggYXJpYWwsc2Fucy1zZXJpZjttYXJnaW46N3B4IDIycHggMCAwO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nLWJvdHRvbTo0cHg7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt0ZXh0LXNoYWRvdzpyZ2IoMCwwLDApIDAgLTFweCAwO3doaXRlLXNwYWNlOm5vd3JhcH0ueXRwLWFkLXRleHQtb3ZlcmxheTpob3ZlciAueXRwLWFkLW92ZXJsYXktdGl0bGV7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ueXRwLWFkLW92ZXJsYXktZGVzY3tjb2xvcjojZmZmO2ZvbnQ6MTJweCBhcmlhbCxzYW5zLXNlcmlmO21hcmdpbi1ib3R0b206MnB4O21hcmdpbi10b3A6LTNweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lnl0cC1hZC1pbWFnZS1vdmVybGF5e21pbi13aWR0aDozMjBweDttYXJnaW46YXV0bztwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWFkLW92ZXJsYXktaW1hZ2V7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9ja30ueXRwLWFkLWltYWdlLW92ZXJsYXk6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ueXRwLWFkLW92ZXJsYXktbGlua3tjdXJzb3I6cG9pbnRlcjtib3R0b206OXB4O2NvbG9yOiNlYWRlOTA7Zm9udDoxMXB4IGFyaWFsLHNhbnMtc2VyaWY7cG9zaXRpb246c3RhdGljO3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtc2hhZG93OnJnYigwLDAsMCkgMCAtMXB4IDB9Lnl0cC1hZC1vdmVybGF5LWxpbmsueXRwLWFkLW92ZXJsYXktbGluay1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lnl0cC1hZC1vdmVybGF5LWFkLWluZm8tYnV0dG9uLWNvbnRhaW5lcntjb2xvcjojZmZmO2N1cnNvcjpwb2ludGVyO2hlaWdodDoxNXB4O3BhZGRpbmc6NnB4IDFweCAxMHB4IDIwcHg7cG9pbnRlci1ldmVudHM6YXV0bztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoyMXB4O3RvcDowO3dpZHRoOjE1cHh9Lnl0cC1hZC1vdmVybGF5LWFkLWluZm8tYnV0dG9uLWNvbnRhaW5lciAueXRwLWFkLWluZm8taG92ZXItdGV4dC1idXR0b257aGVpZ2h0OmluaGVyaXQ7d2lkdGg6aW5oZXJpdDttYXJnaW46MDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX0ueXRwLWFkLW92ZXJsYXktYWQtaW5mby1idXR0b24tY29udGFpbmVyIC55dHAtYWQtaG92ZXItdGV4dC1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjYpO2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NTAwO29wYWNpdHk6MX0ueXRwLWFkLW92ZXJsYXktYWQtaW5mby1idXR0b24tY29udGFpbmVyIC55dHAtYWQtYnV0dG9ue2N1cnNvcjpwb2ludGVyO2ZpbGwtb3BhY2l0eTouODtoZWlnaHQ6aW5oZXJpdDtvcGFjaXR5Oi45O3dpZHRoOmluaGVyaXQ7LXdlYmtpdC1maWx0ZXI6bm9uZTtmaWx0ZXI6bm9uZTtsaW5lLWhlaWdodDpub3JtYWw7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTstbXMtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmU7dmVydGljYWwtYWxpZ246dG9wfS55dHAtYWQtb3ZlcmxheS1jbG9zZS1jb250YWluZXJ7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjE1cHg7bWFyZ2luOjA7cGFkZGluZzo2cHggNnB4IDEwcHggMXB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7d2lkdGg6MTVweH0ueXRwLWFkLW92ZXJsYXktY2xvc2UtYnV0dG9ue2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDtmaWxsLW9wYWNpdHk6Ljg7ZmxvYXQ6cmlnaHQ7aGVpZ2h0OmluaGVyaXQ7b3BhY2l0eTouOTt3aWR0aDppbmhlcml0fS55dHAtYWQtdGV4dC1vdmVybGF5IC55dHAtYWQtb3ZlcmxheS1hZC1pbmZvLWJ1dHRvbi1jb250YWluZXIgLnl0cC1hZC1idXR0b24gc3ZnLC55dHAtYWQtdGV4dC1vdmVybGF5IC55dHAtYWQtb3ZlcmxheS1jbG9zZS1idXR0b24gc3Zne2JhY2tncm91bmQ6IzAwMDtmaWxsOiNmZmZ9Lnl0cC1hZC1pbWFnZS1vdmVybGF5IC55dHAtYWQtb3ZlcmxheS1hZC1pbmZvLWJ1dHRvbi1jb250YWluZXIgLnl0cC1hZC1idXR0b24gc3ZnLC55dHAtYWQtaW1hZ2Utb3ZlcmxheSAueXRwLWFkLW92ZXJsYXktY2xvc2UtYnV0dG9uIHN2Z3tiYWNrZ3JvdW5kOiNmZmY7ZmlsbDojNzU3NTc1fS55dHAtYWQtaW1hZ2Utb3ZlcmxheSAueXRwLWFkLW92ZXJsYXktY2xvc2UtYnV0dG9uIHBhdGh7ZmlsbDppbmhlcml0fS55dHAtYWQtb3ZlcmxheS1hZC1pbmZvLWJ1dHRvbi1jb250YWluZXI6aG92ZXIgLnl0cC1hZC1idXR0b24sLnl0cC1hZC1vdmVybGF5LWNsb3NlLWNvbnRhaW5lcjpob3ZlciAueXRwLWFkLW92ZXJsYXktY2xvc2UtYnV0dG9ue2ZpbGwtb3BhY2l0eToxfS55dHAtYWQtb3ZlcmxheS1hdHRyaWJ1dGlvbntib3R0b206OHB4O2NvbG9yOiM4ODg7Y3Vyc29yOnBvaW50ZXI7Zm9udDoxMXB4IGFyaWFsLHNhbnMtc2VyaWY7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MXB4O3BhZGRpbmc6NHB4Oy13ZWJraXQtdHJhbnNpdGlvbjpjb2xvciAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmNvbG9yIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYWQtb3ZlcmxheS1hdHRyaWJ1dGlvbjpob3Zlcntjb2xvcjojZmZmOy13ZWJraXQtdHJhbnNpdGlvbjpjb2xvciAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmNvbG9yIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtYWQtaW1hZ2Utb3ZlcmxheSAueXRwLWFkLW92ZXJsYXktYXR0cmlidXRpb257Y29sb3I6aW5oZXJpdDt0ZXh0LXNoYWRvdzpyZ2IoMCwwLDApIDAgMCA4cHgscmdiYSgwLDAsMCwuOSkgMCAwIDRweH0ueXRwLWFkLW92ZXJsYXktdGV4dC1pbWFnZXtmbG9hdDpsZWZ0fS55dHAtYWQtb3ZlcmxheS10ZXh0LWltYWdlIGltZ3std2Via2l0LWJveC1zaGFkb3c6MCAzcHggNXB4IHJnYmEoMCwwLDAsLjQ5ODAzOSk7Ym94LXNoYWRvdzowIDNweCA1cHggcmdiYSgwLDAsMCwuNDk4MDM5KTtoZWlnaHQ6NTdweDttYXJnaW46MnB4IDEwcHggMCAwO3dpZHRoOmF1dG87bWluLXdpZHRoOjU3cHh9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFse2JhY2tncm91bmQtc2l6ZTpjb3ZlcjstbW96LWJhY2tncm91bmQtc2l6ZTpjb3Zlcjstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kOndoaXRlO2hlaWdodDoxMDAlO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlO3otaW5kZXg6NjR9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWJhY2tncm91bmQtY29udGFpbmVye3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ei1pbmRleDo2NTtib3JkZXI6bm9uZX0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7LW1vei1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXI6bm9uZTtkaXNwbGF5OmJsb2NrfS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1zbG90e3BvaW50ZXItZXZlbnRzOm5vbmU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDt6LWluZGV4OjY1fS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1jYXJkey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2Rpc3BsYXk6YmxvY2s7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTE0MHB4O3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3RvcDo1MCU7d2lkdGg6MjgwcHh9Lnl0cC1hZHMtdGlueS1tb2RlIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1jYXJke21hcmdpbi1sZWZ0Oi05MHB4O3dpZHRoOjE4MHB4fS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1jYXJkLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWNhcmQtdW5pZmllZHttYXJnaW4tbGVmdDotMjE1cHg7d2lkdGg6NDMwcHg7cGFkZGluZzowIDE2cHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS55dHAtc21hbGwtbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtY2FyZC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1jYXJkLXVuaWZpZWR7bWFyZ2luLWxlZnQ6MDtsZWZ0OjA7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjI0NXB4O3BhZGRpbmc6MCAwIDAgMTZweDstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveH0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUtY29udGFpbmVye2N1cnNvcjpwb2ludGVyO3BvaW50ZXItZXZlbnRzOmF1dG99Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWhlYWRsaW5lLWNvbnRhaW5lci55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1oZWFkbGluZS1jb250YWluZXItdW5pZmllZHt3aWR0aDotd2Via2l0LWZpdC1jb250ZW50O3dpZHRoOi1tb3otZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnQ7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjI4cHggMCAxMHB4fS55dHAtc21hbGwtbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUtY29udGFpbmVyLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWhlYWRsaW5lLWNvbnRhaW5lci11bmlmaWVke3dpZHRoOi13ZWJraXQtZml0LWNvbnRlbnQ7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudDttYXJnaW46MCBhdXRvIDAgMDtwYWRkaW5nOjEwcHggMH0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmV7Y29sb3I6IzMzMztkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MjBweDttYXgtaGVpZ2h0OjIuMmVtO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nLXRvcDoxMHB4fS55dHAtc21hbGwtbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmV7Zm9udC1zaXplOjE2cHg7bWF4LWhlaWdodDoyLjJlbTtwYWRkaW5nLXRvcDo4cHh9Lnl0cC1hZHMtdGlueS1tb2RlIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1oZWFkbGluZXtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo0cHh9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9uLWNvbnRhaW5lcntjdXJzb3I6cG9pbnRlcjtwb2ludGVyLWV2ZW50czphdXRvO3doaXRlLXNwYWNlOm5vd3JhcH0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtZGVzY3JpcHRpb24tY29udGFpbmVyLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9uLWNvbnRhaW5lci11bmlmaWVke3doaXRlLXNwYWNlOm5vcm1hbDt3aWR0aDotd2Via2l0LWZpdC1jb250ZW50O3dpZHRoOi1tb3otZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnQ7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjZweCAwIDIycHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1kZXNjcmlwdGlvbi1jb250YWluZXIueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtZGVzY3JpcHRpb24tY29udGFpbmVyLXVuaWZpZWR7ZGlzcGxheTpub25lfS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1kZXNjcmlwdGlvbntjb2xvcjojNzY3Njc2O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjUwMDttYXgtaGVpZ2h0OjEuMWVtO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3dpZHRoOjEwMCU7cGFkZGluZy1ib3R0b206MTBweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9ue2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmctYm90dG9tOjhweH0ueXRwLWFkcy10aW55LW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9ue3BhZGRpbmctYm90dG9tOjB9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24tY29udGFpbmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLWNvbnRhaW5lci55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLWNvbnRhaW5lci11bmlmaWVke3BhZGRpbmc6NnB4IDB9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b257cG9pbnRlci1ldmVudHM6YXV0bztiYWNrZ3JvdW5kLWNvbG9yOiMxNjdhYzY7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoycHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOiNmZmY7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjIzcHg7aGVpZ2h0OjQ2cHg7bGluZS1oZWlnaHQ6NDZweDttaW4td2lkdGg6MTY0cHg7cGFkZGluZzowIDIwcHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9ue2ZvbnQtc2l6ZToxNXB4O2hlaWdodDozNnB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7bWluLXdpZHRoOjEyMHB4fS55dHAtYWRzLXRpbnktbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbntoZWlnaHQ6MjRweDtsaW5lLWhlaWdodDoyNHB4O21pbi13aWR0aDowfS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24tcm91bmRlZHtib3JkZXItcmFkaXVzOjI4cHg7aGVpZ2h0OjU2cHg7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjI4cHg7cGFkZGluZzowIDI0cHg7YmFja2dyb3VuZC1jb2xvcjojMDY1ZmQ0fS55dHAtc21hbGwtbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLXJvdW5kZWR7Zm9udC1zaXplOjE1cHg7aGVpZ2h0OjM2cHg7bGluZS1oZWlnaHQ6MzZweDtwYWRkaW5nOjAgMTZweDtib3JkZXItcmFkaXVzOjE4cHh9Lnl0cC1hZHMtdGlueS1tb2RlIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24tcm91bmRlZHtoZWlnaHQ6MjRweDtsaW5lLWhlaWdodDoyNHB4O2JvcmRlci1yYWRpdXM6MTJweH0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW1hZ2UtY29udGFpbmVye2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7bWFyZ2luOmF1dG87bWF4LXdpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czo1MCU7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlcjpub25lO2hlaWdodDoxMjhweDt3aWR0aDoxMjhweH0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW1hZ2V7cG9pbnRlci1ldmVudHM6YXV0bzttYXgtd2lkdGg6MTAwJX0ueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWltYWdlLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWltYWdlLXVuaWZpZWR7Ym9yZGVyLXJhZGl1czo1MCV9Lnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1pbWFnZS1jb250YWluZXJ7aGVpZ2h0OjYwcHg7d2lkdGg6NjBweH0ueXRwLWFkcy10aW55LW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWltYWdlLWNvbnRhaW5lcntoZWlnaHQ6NDBweDt3aWR0aDo0MHB4fS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1pbWFnZS1jb250YWluZXIueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW1hZ2UtY29udGFpbmVyLXVuaWZpZWR7aGVpZ2h0OjY0cHg7d2lkdGg6NjRweDtwb2ludGVyLWV2ZW50czphdXRvfS55dHAtc21hbGwtbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaW1hZ2UtY29udGFpbmVyLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWltYWdlLWNvbnRhaW5lci11bmlmaWVke21hcmdpbi1sZWZ0Oi02cHg7cGFkZGluZzo2cHg7aGVpZ2h0OjM2cHg7d2lkdGg6MzZweDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWFkcy10aW55LW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWltYWdlLWNvbnRhaW5lci55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1pbWFnZS1jb250YWluZXItdW5pZmllZHtoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1iYWNrZ3JvdW5kLWNvbnRhaW5lci55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1iYWNrZ3JvdW5kLWNvbnRhaW5lci11bmlmaWVkey13ZWJraXQtZmlsdGVyOmJsdXIoNzBweCk7ZmlsdGVyOmJsdXIoNzBweCl9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLXNsb3QueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtc2xvdC1kYXJrLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDUwLDUwLDUwLC44KX0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtc2xvdC55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1zbG90LXVuaWZpZWR7aW5zZXQ6MDtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLDApIDUwJSxyZ2JhKDAsMCwwLC44KSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDUwJSxyZ2JhKDAsMCwwLDApKSx0byhyZ2JhKDAsMCwwLC44KSkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDAsMCwwLDApIDUwJSxyZ2JhKDAsMCwwLC44KSk7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KX0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUtbGlnaHR7Y29sb3I6I2ZmZn0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUtdW5pZmllZHtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyOHB4O2ZvbnQtd2VpZ2h0OjkwMDtsaW5lLWhlaWdodDozNHB4O21heC1oZWlnaHQ6bm9uZTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy10b3A6MDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtbGluZS1jbGFtcDoyfS55dHAtc21hbGwtbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUtdW5pZmllZHtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OjkwMDtsaW5lLWhlaWdodDoyNHB4O21heC1oZWlnaHQ6bm9uZTtwYWRkaW5nLXRvcDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtbGluZS1jbGFtcDoxfS55dHAtYWRzLXRpbnktbW9kZSAueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtaGVhZGxpbmUtdW5pZmllZHtmb250LXNpemU6MTZweDtwYWRkaW5nLXRvcDoxMnB4O3BhZGRpbmctYm90dG9tOjB9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9uLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9uLWxpZ2h0e2NvbG9yOiNmZmZ9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9uLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWRlc2NyaXB0aW9uLXVuaWZpZWR7Y29sb3I6I2FhYTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MjBweDttYXgtaGVpZ2h0Om5vbmU7cGFkZGluZy1ib3R0b206MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoxOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbH0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLWRhcmt7YmFja2dyb3VuZC1jb2xvcjpyZ2IoNjIsMTY2LDI1NSk7Y29sb3I6cmdiKDE1LDE1LDE1KTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjIwcHh9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi1tb25vLWRhcmt7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2NvbG9yOnJnYigxNSwxNSwxNSk7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToyMHB4fS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24tbW9iaWxlLWNvbXBhbmlvbi1zaXple21pbi13aWR0aDowO2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmc6MCAxNnB4fS55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24tdW5pZmllZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYig2MiwxNjYsMjU1KTtib3JkZXItcmFkaXVzOjE4cHg7Y29sb3I6cmdiKDE1LDE1LDE1KTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7aGVpZ2h0OjM2cHg7bGluZS1oZWlnaHQ6MThweDttaW4td2lkdGg6MDttYXgtd2lkdGg6MjAwcHg7cGFkZGluZzowIDE2cHg7cG9zaXRpb246cmVsYXRpdmV9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi11bmlmaWVkOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0Oi02cHggMDtjdXJzb3I6cG9pbnRlcn0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLXVuaWZpZWQgLnl0cC1hZC1idXR0b24tdGV4dHtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoxOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi11bmlmaWVke2JhY2tncm91bmQtY29sb3I6cmdiKDYyLDE2NiwyNTUpO2JvcmRlci1yYWRpdXM6MThweDtjb2xvcjpyZ2IoMTUsMTUsMTUpO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtoZWlnaHQ6MzZweDtsaW5lLWhlaWdodDoxOHB4O21pbi13aWR0aDowO21heC13aWR0aDoxNTBweDtwYWRkaW5nOjAgMTZweH0ueXRwLWFkcy10aW55LW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi11bmlmaWVke2hlaWdodDoyMnB4O2xpbmUtaGVpZ2h0OjEycHh9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi11bmlmaWVkLW1vbm97YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2JvcmRlci1yYWRpdXM6MThweDtjb2xvcjpyZ2IoMTUsMTUsMTUpO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtoZWlnaHQ6MzZweDtsaW5lLWhlaWdodDoxOHB4O21pbi13aWR0aDowO21heC13aWR0aDoyMDBweDtwYWRkaW5nOjAgMTZweDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi55dHAtYWQtYWN0aW9uLWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLXVuaWZpZWQtbW9ubzpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDotNnB4IDA7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi11bmlmaWVkLW1vbm8gLnl0cC1hZC1idXR0b24tdGV4dHtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoxOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi11bmlmaWVkLW1vbm97YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2JvcmRlci1yYWRpdXM6MThweDtjb2xvcjpyZ2IoMTUsMTUsMTUpO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtoZWlnaHQ6MzZweDtsaW5lLWhlaWdodDoxOHB4O21pbi13aWR0aDowO21heC13aWR0aDoxNTBweDtwYWRkaW5nOjAgMTZweH0ueXRwLWFkcy10aW55LW1vZGUgLnl0cC1hZC1hY3Rpb24taW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLWFjdGlvbi1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi11bmlmaWVkLW1vbm97aGVpZ2h0OjIycHg7bGluZS1oZWlnaHQ6MTJweH0ueXRwLWFkLXRpbWVkLXBpZS1jb3VudGRvd24tY29udGFpbmVye2JvdHRvbTo0cHg7ZGlzcGxheTpibG9jaztsZWZ0OjZweDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjY1fS55dHAtYWQtdGltZWQtcGllLWNvdW50ZG93bi1jb250YWluZXIueXRwLWFkLXRpbWVkLXBpZS1jb3VudGRvd24tY29udGFpbmVyLXVwcGVyLXJpZ2h0e2JvdHRvbTphdXRvO2xlZnQ6YXV0bzt0b3A6NHB4O3JpZ2h0OjZweH1zdmcueXRwLWFkLXRpbWVkLXBpZS1jb3VudGRvd257YmFja2dyb3VuZDpub25lO2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDoyMHB4O29wYWNpdHk6LjQ7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7LW1zLXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7d2lkdGg6MjBweH1jaXJjbGUueXRwLWFkLXRpbWVkLXBpZS1jb3VudGRvd24tYmFja2dyb3VuZHtmaWxsOm5vbmU7c3Ryb2tlOm5vbmV9Y2lyY2xlLnl0cC1hZC10aW1lZC1waWUtY291bnRkb3duLWlubmVye2ZpbGw6bm9uZTtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6MTBweH1jaXJjbGUueXRwLWFkLXRpbWVkLXBpZS1jb3VudGRvd24tb3V0ZXJ7ZmlsbDpub25lO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDoxfWNpcmNsZS55dHAtYWQtdGltZWQtcGllLWNvdW50ZG93bi1pbm5lci55dHAtYWQtdGltZWQtcGllLWNvdW50ZG93bi1pbm5lci1saWdodHtzdHJva2U6cmdiYSgyNTUsMjU1LDI1NSwuNzUpfWNpcmNsZS55dHAtYWQtdGltZWQtcGllLWNvdW50ZG93bi1vdXRlci55dHAtYWQtdGltZWQtcGllLWNvdW50ZG93bi1vdXRlci1saWdodHtzdHJva2U6cmdiYSgyNTUsMjU1LDI1NSwuNzUpfS55dHAtYWQtc3VydmV5e3dpZHRoOmF1dG87aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtwYWRkaW5nOjAgMzJweDttYXJnaW46MDtsaW5lLWhlaWdodDpub3JtYWw7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS55dHAtYWQtc3VydmV5LnJlbGF0aXZlLXBvc2l0aW9uaW5nLXN1cnZleXtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojg1MH0ueXRwLWFkLXN1cnZleS1xdWVzdGlvbnN7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1mbGV4LWdyb3c6MTstd2Via2l0LWJveC1mbGV4OjE7ZmxleC1ncm93OjE7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW46MCBhdXRvO2hlaWdodDoxMDAlfS55dHAtYWQtc3VydmV5LXF1ZXN0aW9ue2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtZmxleC1ncm93OjE7LXdlYmtpdC1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxO3BhZGRpbmctdG9wOjA7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWZ9Lnl0cC1hZC1zdXJ2ZXktcXVlc3Rpb24tYmFja2dyb3VuZHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7YmFja2dyb3VuZC1zaXplOmNvdmVyOy1tb3otYmFja2dyb3VuZC1zaXplOmNvdmVyOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtcG9zaXRpb246NTAlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjF9Lnl0cC1hZC1zdXJ2ZXktcXVlc3Rpb24tZm9yZWdyb3VuZHt6LWluZGV4OjJ9Lnl0cC1hZC1zdXJ2ZXktcXVlc3Rpb24tdGV4dHtjb2xvcjojMTMxMzEzO2ZvbnQtc2l6ZToyMHB4O3RleHQtYWxpZ246bGVmdDt3aWR0aDozMDJweDttYXJnaW4tcmlnaHQ6NDhweDtsaW5lLWhlaWdodDoyOHB4fS55dHAtYWQtc3VydmV5LWFuc3dlcnN7cmlnaHQ6MDt0b3A6MzVweDt3aWR0aDozMDhweH0ueXRwLWFkLXN1cnZleS1hbnN3ZXJ7aGVpZ2h0OjQ4cHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VyLC55dHAtYWQtc3VydmV5LW5vbmUtb2YtdGhlLWFib3Zley13ZWJraXQtZmxleC1ncm93OjE7LXdlYmtpdC1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxO2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCV9Lnl0cC1hZC1zdXJ2ZXktbm9uZS1vZi10aGUtYWJvdmV7Zm9udC1zaXplOjEzLjdweDtoZWlnaHQ6MzVweDtwYWRkaW5nLXRvcDo0JX0ueXRwLWFkLXN1cnZleS1hbnN3ZXJzIC55dHAtYWQtc3VydmV5LW5vbmUtb2YtdGhlLWFib3Zle3BhZGRpbmctdG9wOjA7aGVpZ2h0OjQ4cHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VyLXRvZ2dsZS1idXR0b24gLnl0cC1hZC10b2dnbGUtYnV0dG9uLWljb257d2lkdGg6MjBweDtoZWlnaHQ6MjBweDstd2Via2l0LWZsZXg6MCAwIDIwcHg7LXdlYmtpdC1ib3gtZmxleDowO2ZsZXg6MCAwIDIwcHg7bWFyZ2luLXJpZ2h0OjEycHh9Lnl0cC1hZC10b2dnbGUtYnV0dG9uLWlucHV0e2Rpc3BsYXk6bm9uZX0ueXRwLWFkLXN1cnZleS1hbnN3ZXItYnV0dG9uLC55dHAtYWQtc3VydmV5LWFuc3dlci10b2dnbGUtYnV0dG9ue2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6IzYwNjA2MDtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MjBweDtsaW5lLWhlaWdodDoyOHB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt0ZXh0LWFsaWduOmxlZnQ7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3BhZGRpbmc6MDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VyLWJ1dHRvbjpob3ZlciwueXRwLWFkLXN1cnZleS1hbnN3ZXItdG9nZ2xlLWJ1dHRvbjpob3Zlcntmb250LXdlaWdodDo1MDB9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VyLWJ1dHRvbnttYXJnaW4tbGVmdDoyNHB4fS55dHAtYWQtc3VydmV5LWFuc3dlciAueXRwLWFkLXRvZ2dsZS1idXR0b24tdG9nZ2xlZHtmb250LXdlaWdodDo1MDB9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VyLXRvZ2dsZS1idXR0b24gLnl0cC1hZC10b2dnbGUtYnV0dG9uLXVudG9nZ2xlZC1pY29uIHN2ZyBwYXRoOmZpcnN0LW9mLXR5cGV7ZmlsbDojNjA2MDYwfS55dHAtYWQtc3VydmV5LWFuc3dlci10b2dnbGUtYnV0dG9uIC55dHAtYWQtdG9nZ2xlLWJ1dHRvbi10b2dnbGVkLWljb24gc3ZnIHBhdGg6bGFzdC1vZi10eXBle2ZpbGw6IzA0NWVkZH0ueXRwLWFkLXRvZ2dsZS1idXR0b24tbGFiZWx7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7LXdlYmtpdC1ib3gtcGFjazpzdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtoZWlnaHQ6MTAwJTtwb2ludGVyLWV2ZW50czphdXRvO2N1cnNvcjpwb2ludGVyfS55dHAtYWQtc3VydmV5LXBsYXllci1vdmVybGF5LXN1Ym1pdHtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MTJweDtyaWdodDowO2hlaWdodDo1MnB4O3BvaW50ZXItZXZlbnRzOmF1dG99Lnl0cC1hZC1zdXJ2ZXktc3VibWl0LWJ1dHRvbntiYWNrZ3JvdW5kOiMxYjdmY2M7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6d2hpdGU7Zm9udC1zaXplOjEzLjdweDtoZWlnaHQ6MzVweDttYXJnaW4tcmlnaHQ6NnB4O3BhZGRpbmctbGVmdDoxMnB4O3BhZGRpbmctcmlnaHQ6NTZweH0ueXRwLWFkLXN1cnZleS1zdWJtaXQtYnV0dG9uLnl0cC1hZC1zdXJ2ZXktc3VibWl0LWJ1dHRvbi1yb3VuZGVke2JhY2tncm91bmQ6IzA2NWZkNDtib3JkZXItcmFkaXVzOjE4cHg7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2hlaWdodDozNnB4O3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6MTZweH0ueXRwLWFkLXBsYXllci1vdmVybGF5LC55dHAtYWQtc3VydmV5LXBsYXllci1vdmVybGF5LC55dHAtYWQtc3VydmV5LXF1ZXN0aW9uLXBsYXllci1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym90dG9tOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1za2lwLW9yLXByZXZpZXcsLnl0cC1hZC1zdXJ2ZXktcGxheWVyLW92ZXJsYXktc2tpcC1vci1wcmV2aWV3e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cmlnaHQ6MH0ueXRwLWFkLXN1cnZleS1pbnRlcnN0aXRpYWx7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjYpOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtvcGFjaXR5OjE7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTt6LWluZGV4OjUwMDA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjVzIGVhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC41cyBlYXNlfS55dHAtYWQtc3VydmV5LWludGVyc3RpdGlhbFthcmlhLWhpZGRlbj10cnVlXXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlfS55dHAtYWQtc3VydmV5LWludGVyc3RpdGlhbC1jb250ZW50c3toZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS55dHAtYWQtc3VydmV5LWludGVyc3RpdGlhbCAueXRwLWFkLXN1cnZleS1pbnRlcnN0aXRpYWwtY29udGVudHN7aGVpZ2h0OmF1dG99Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLXRleHR7bWFyZ2luLWxlZnQ6MzJweDttYXJnaW4tdG9wOjI1cHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0O2ZvbnQtc2l6ZToyNHB4O2NvbG9yOiMxMzEzMTM7d2lkdGg6MjcycHh9Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWxvZ297YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJTstbW96LWJhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlO2hlaWdodDoyNXB4O21hcmdpbi1sZWZ0OjMycHg7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTA1cHh9Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWxvZ28taW1hZ2V7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWFjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czoycHg7Ym90dG9tOjA7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEwMCV9Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b257YmFja2dyb3VuZC1jb2xvcjojMDY1ZmQ0O2JvcmRlci1yYWRpdXM6MnB4O2NvbG9yOiNmZmY7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjE0cHg7bWluLXdpZHRoOjE2MXB4O3BhZGRpbmc6MTBweDttYXJnaW4tbGVmdDozMnB4O21hcmdpbi10b3A6MjVweDtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Ym9yZGVyOjB9Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24ueXRwLWFkLXN1cnZleS1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi1yb3VuZGVke2JhY2tncm91bmQtY29sb3I6IzA2NWZkNDtib3JkZXItcmFkaXVzOjE4cHg7aGVpZ2h0OjM2cHg7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwO21pbi13aWR0aDowO3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6MTZweDt0ZXh0LXRyYW5zZm9ybTpub25lfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NjU2cHgpey55dHAtYWQtc3VydmV5LWludGVyc3RpdGlhbC1sb2dve21hcmdpbi1sZWZ0OjQ4cHg7bWFyZ2luLXRvcDoxNXB4fS55dHAtYWQtc3VydmV5LWludGVyc3RpdGlhbC10ZXh0e2ZvbnQtc2l6ZToyMHB4O21hcmdpbi1sZWZ0OjQ4cHh9Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b257Zm9udC1zaXplOjE4cHg7bWFyZ2luLWxlZnQ6NDhweH0ueXRwLWFkLXN1cnZleS1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbi55dHAtYWQtc3VydmV5LWludGVyc3RpdGlhbC1hY3Rpb24tYnV0dG9uLXJvdW5kZWR7Zm9udC1zaXplOjE0cHg7bWFyZ2luLWxlZnQ6NDhweH0ueXRwLWFkLXN1cnZleXtwYWRkaW5nOjAgMzJweDt3aWR0aDphdXRvfS55dHAtYWQtc3VydmV5LXF1ZXN0aW9uLXRleHR7Zm9udC1zaXplOjIwcHg7bWFyZ2luLXJpZ2h0OjMycHg7bGluZS1oZWlnaHQ6MjhweDt3aWR0aDphdXRvfS55dHAtYWQtc3VydmV5LWFuc3dlcnN7dG9wOjI0cHg7d2lkdGg6YXV0b30ueXRwLWFkLXN1cnZleS1hbnN3ZXJ7aGVpZ2h0OjQ4cHh9Lnl0cC1hZC1zdXJ2ZXktbm9uZS1vZi10aGUtYWJvdmUsLnl0cC1hZC1zdXJ2ZXktc3VibWl0LWJ1dHRvbntoZWlnaHQ6MjJweDtmb250LXNpemU6MTBweH0ueXRwLWFkLXN1cnZleS1hbnN3ZXItYnV0dG9uLC55dHAtYWQtc3VydmV5LWFuc3dlci10b2dnbGUtYnV0dG9ue2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjI4cHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VyLXRvZ2dsZS1idXR0b24gLnl0cC1hZC10b2dnbGUtYnV0dG9uLWljb257aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDstd2Via2l0LWZsZXg6MCAwIDIwcHg7LXdlYmtpdC1ib3gtZmxleDowO2ZsZXg6MCAwIDIwcHg7bWFyZ2luLXJpZ2h0OjEycHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VycyAueXRwLWFkLXN1cnZleS1ub25lLW9mLXRoZS1hYm92ZXtoZWlnaHQ6NDhweH0ueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1zdWJtaXR7Ym90dG9tOjB9Lnl0cC1hZC1zdXJ2ZXktc3VibWl0LWJ1dHRvbnttYXJnaW4tcmlnaHQ6NHB4O3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6NDBweH0ueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1pbnN0cmVhbS11c2VyLXNlbnRpbWVudHtkaXNwbGF5Om5vbmV9W2Rpcj1ydGxdIC55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXByZXZpZXctY29udGFpbmVye2JvdHRvbTo0MHB4fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEyOTRweCkgYW5kIChtaW4taGVpZ2h0OjYzMHB4KXsueXRwLWFkLXN1cnZleS1pbnRlcnN0aXRpYWwtYWN0aW9uLWJ1dHRvbiwueXRwLWFkLXN1cnZleS1pbnRlcnN0aXRpYWwtbG9nbywueXRwLWFkLXN1cnZleS1pbnRlcnN0aXRpYWwtdGV4dHttYXJnaW4tbGVmdDo2NHB4fS55dHAtYWQtc3VydmV5e3dpZHRoOmF1dG87cGFkZGluZzowIDYwcHh9Lnl0cC1hZC1zdXJ2ZXktcXVlc3Rpb24tdGV4dHtmb250LXNpemU6MjRweDtsaW5lLWhlaWdodDozMnB4O21hcmdpbi1yaWdodDo0OHB4O3dpZHRoOjM1NHB4fS55dHAtYWQtc3VydmV5LWFuc3dlcnN7dG9wOjM4cHg7d2lkdGg6MzkwcHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2Vye2hlaWdodDo2MHB4fS55dHAtYWQtc3VydmV5LW5vbmUtb2YtdGhlLWFib3ZlLC55dHAtYWQtc3VydmV5LXN1Ym1pdC1idXR0b257aGVpZ2h0OjQ0cHg7Zm9udC1zaXplOjE4LjJweH0ueXRwLWFkLXN1cnZleS1hbnN3ZXItYnV0dG9uLC55dHAtYWQtc3VydmV5LWFuc3dlci10b2dnbGUtYnV0dG9ue2ZvbnQtc2l6ZToyNHB4O2xpbmUtaGVpZ2h0OjMycHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VyLXRvZ2dsZS1idXR0b24gLnl0cC1hZC10b2dnbGUtYnV0dG9uLWljb257aGVpZ2h0OjMycHg7d2lkdGg6MzJweDstd2Via2l0LWZsZXg6MCAwIDMycHg7LXdlYmtpdC1ib3gtZmxleDowO2ZsZXg6MCAwIDMycHg7bWFyZ2luLXJpZ2h0OjIwcHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2VycyAueXRwLWFkLXN1cnZleS1ub25lLW9mLXRoZS1hYm92ZXtoZWlnaHQ6NjBweH0ueXRwLWFkLXN1cnZleS1wbGF5ZXItb3ZlcmxheS1zdWJtaXR7Ym90dG9tOjI1cHh9Lnl0cC1hZC1zdXJ2ZXktc3VibWl0LWJ1dHRvbnttYXJnaW4tcmlnaHQ6OHB4O3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6NzBweH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxNzIwcHgpIGFuZCAobWluLWhlaWdodDo5ODBweCl7Lnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWFjdGlvbi1idXR0b24sLnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLWxvZ28sLnl0cC1hZC1zdXJ2ZXktaW50ZXJzdGl0aWFsLXRleHR7bWFyZ2luLWxlZnQ6OTZweH0ueXRwLWFkLXN1cnZleXt3aWR0aDoxMDAlO3BhZGRpbmc6MH0ueXRwLWFkLXN1cnZleS1xdWVzdGlvbi10ZXh0e2ZvbnQtc2l6ZTozMnB4O2xpbmUtaGVpZ2h0OjQzcHg7bWFyZ2luLXJpZ2h0OjgwcHg7d2lkdGg6NDUwcHh9Lnl0cC1hZC1zdXJ2ZXktYW5zd2Vyc3t0b3A6NTdweDt3aWR0aDo1MDBweH0ueXRwLWFkLXN1cnZleS1hbnN3ZXJ7aGVpZ2h0Ojc2cHh9Lnl0cC1hZC1zdXJ2ZXktbm9uZS1vZi10aGUtYWJvdmUsLnl0cC1hZC1zdXJ2ZXktc3VibWl0LWJ1dHRvbntoZWlnaHQ6NjdweDtmb250LXNpemU6MjcuNHB4fS55dHAtYWQtc3VydmV5LWFuc3dlci1idXR0b24sLnl0cC1hZC1zdXJ2ZXktYW5zd2VyLXRvZ2dsZS1idXR0b257Zm9udC1zaXplOjMycHg7bGluZS1oZWlnaHQ6NDNweH0ueXRwLWFkLXN1cnZleS1hbnN3ZXItdG9nZ2xlLWJ1dHRvbiAueXRwLWFkLXRvZ2dsZS1idXR0b24taWNvbntoZWlnaHQ6MzJweDt3aWR0aDozMnB4Oy13ZWJraXQtZmxleDowIDAgMzJweDstd2Via2l0LWJveC1mbGV4OjA7ZmxleDowIDAgMzJweDttYXJnaW4tcmlnaHQ6MjBweH0ueXRwLWFkLXN1cnZleS1hbnN3ZXJzIC55dHAtYWQtc3VydmV5LW5vbmUtb2YtdGhlLWFib3Zle2hlaWdodDo3NnB4fS55dHAtYWQtc3VydmV5LXBsYXllci1vdmVybGF5LXN1Ym1pdHtib3R0b206NDVweH0ueXRwLWFkLXN1cnZleS1zdWJtaXQtYnV0dG9ue21hcmdpbi1yaWdodDoxMnB4O3BhZGRpbmctbGVmdDoyMHB4O3BhZGRpbmctcmlnaHQ6MTEwcHh9fS55dHAtYWQtdG9nZ2xlLWJ1dHRvbi10b29sdGlwe2Rpc3BsYXk6bm9uZX0ueXRwLWFkLXRvZ2dsZS1idXR0b246aG92ZXIgLnl0cC1hZC10b2dnbGUtYnV0dG9uLXRvb2x0aXB7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1jb250YWluZXJbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowfS55dHAtYWQtaW5zdHJlYW0tdXNlci1zZW50aW1lbnQtY29udGFpbmVyey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC40cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuNHMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjcpO2JvdHRvbToxNDdweDtkaXNwbGF5OmlubGluZS1ibG9jaztwb2ludGVyLWV2ZW50czphdXRvO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7ei1pbmRleDo4NTB9Lnl0cC1lbWJlZCAueXRwLWFkLWluc3RyZWFtLXVzZXItc2VudGltZW50LWNvbnRhaW5lcntib3R0b206MTM5cHh9Lnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1jb250YWluZXIueXRwLWFkLWluc3RyZWFtLXVzZXItc2VudGltZW50LXNlbGVjdGVkey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC41cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTtiYWNrZ3JvdW5kOiM0NzgwZWV9Lnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1kaXNsaWtlLWJ1dHRvbiwueXRwLWFkLWluc3RyZWFtLXVzZXItc2VudGltZW50LWxpa2UtYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueXRwLWFkLWluc3RyZWFtLXVzZXItc2VudGltZW50LWNvbnRhaW5lciAueXRwLWFkLXRvZ2dsZS1idXR0b24taWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MjJweDtvcGFjaXR5Oi44O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aWR0aDoyMnB4fS55dHAtYWQtaW5zdHJlYW0tdXNlci1zZW50aW1lbnQtY29udGFpbmVyIC55dHAtYWQtdG9nZ2xlLWJ1dHRvbi1sYWJlbHtjdXJzb3I6cG9pbnRlcn0ueXRwLWFkLWluc3RyZWFtLXVzZXItc2VudGltZW50LWxpa2UtYnV0dG9uIC55dHAtYWQtdG9nZ2xlLWJ1dHRvbi1sYWJlbHtwYWRkaW5nOjEycHggMTBweCAxMnB4IDIwcHh9Lnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1kaXNsaWtlLWJ1dHRvbiAueXRwLWFkLXRvZ2dsZS1idXR0b24tbGFiZWx7cGFkZGluZzoxMnB4IDIwcHggMTJweCAxMHB4fS55dHAtYWQtaW5zdHJlYW0tdXNlci1zZW50aW1lbnQtY29udGFpbmVyIC55dHAtYWQtdG9nZ2xlLWJ1dHRvbjpob3ZlciAueXRwLWFkLXRvZ2dsZS1idXR0b24taWNvbntvcGFjaXR5OjF9Lnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1jb250YWluZXIgLnl0cC1hZC10b2dnbGUtYnV0dG9uLnl0cC1hZC10b2dnbGUtYnV0dG9uLXRvZ2dsZWQgLnl0cC1hZC10b2dnbGUtYnV0dG9uLWljb257b3BhY2l0eToxfS55dHAtYWQtaW5zdHJlYW0tdXNlci1zZW50aW1lbnQtY29udGFpbmVyIC55dHAtYWQtdG9nZ2xlLWJ1dHRvbi10b29sdGlwe2JhY2tncm91bmQ6cmdiYSgzMSwzMSwzMSwuNSk7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7aGVpZ2h0OjE4cHg7bGV0dGVyLXNwYWNpbmc6MDttYXJnaW46OXB4IDA7cGFkZGluZzo4cHggMTZweDtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXB9Lnl0cC1hZC1pbnN0cmVhbS11c2VyLXNlbnRpbWVudC1jb250YWluZXIgLnl0cC1hZC10b2dnbGUtYnV0dG9uOmhvdmVyIC55dHAtYWQtdG9nZ2xlLWJ1dHRvbi10b29sdGlwe2JvdHRvbTo0NnB4O3JpZ2h0OjIwcHh9Lnl0cC1hZC1wbGF5ZXItb3ZlcmxheS10b3AtYmFyLWdyYWRpZW50c3tiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLC43NSkgNDAlLHJnYmEoMCwwLDAsMCkgOTklKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGNvbG9yLXN0b3AoNDAlLHJnYmEoMCwwLDAsLjc1KSksY29sb3Itc3RvcCg5OSUscmdiYSgwLDAsMCwwKSkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDAsMCwwLC43NSkgNDAlLHJnYmEoMCwwLDAsMCkgOTklKTtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstbW96LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItYm90dG9tOm5vbmU7aGVpZ2h0OjQwcHg7d2lkdGg6MTAwJTtvcGFjaXR5Oi44O3RvcDowO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6ODUwfS55dHAtYWQtcGxheWVyLW92ZXJsYXktdG9wLWJhci1ncmFkaWVudHMgLnl0cC1hZC12aXNpdC1hZHZlcnRpc2VyLWJ1dHRvbjpiZWZvcmV7Y29udGVudDpub25lfS55dHAtYWQtcGxheWVyLW92ZXJsYXktdG9wLWJhci1ncmFkaWVudHMgLnl0cC1hZC12aXNpdC1hZHZlcnRpc2VyLWJ1dHRvbnttYXJnaW46YXV0byAxMXB4IGF1dG8gYXV0bztwb2ludGVyLWV2ZW50czphdXRvO3otaW5kZXg6ODUwfS55dHAtYWQtcGxheWVyLW92ZXJsYXktdG9wLWJhci1ncmFkaWVudHMgLnl0cC1hZC12aXNpdC1hZHZlcnRpc2VyLWJ1dHRvbiAueXRwLWFkLWJ1dHRvbi10ZXh0e2ZvbnQtZmFtaWx5OllvdVR1YmUgTm90byxSb2JvdG8sYXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDpub3JtYWw7bWFyZ2luOmF1dG8gMDtwYWRkaW5nOjAgNHB4IDVweDt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO3RleHQtc2hhZG93OjFweCAxcHggMXB4IHJnYmEoMCwwLDAsLjc1KTtjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lfS55dHAtYWQtcGxheWVyLW92ZXJsYXktdG9wLWJhci1ncmFkaWVudHMgLnl0cC1hZC12aXNpdC1hZHZlcnRpc2VyLWJ1dHRvbiAueXRwLWFkLWJ1dHRvbi1pY29ue2Rpc3BsYXk6bm9uZX0ueXRwLWFkLXBsYXllci1vdmVybGF5LXRvcC1iYXItZ3JhZGllbnRzIC55dHAtdmlkZW8tYWQtdG9wLWJhci10aXRsZXstd2Via2l0LWZsZXg6MTstd2Via2l0LWJveC1mbGV4OjE7ZmxleDoxO2ZvbnQtZmFtaWx5OllvdVR1YmUgTm90byxSb2JvdG8sYXJpYWwsc2Fucy1zZXJpZjt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6I2ZmZjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3RleHQtc2hhZG93OjFweCAxcHggMXB4IHJnYmEoMCwwLDAsLjc1KTt0ZXh0LWRlY29yYXRpb246bm9uZTtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6YXV0bztjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MTRweDttYXgtd2lkdGg6NTAlO2hlaWdodDoxNnB4O2xpbmUtaGVpZ2h0Om5vcm1hbDttYXJnaW46MTBweCA1cHggNXB4IDEwcHg7ei1pbmRleDo4NTA7b3BhY2l0eTouOX0ueXRwLWFkLWNsaWNrYWJsZS1lbGVtZW50OmhvdmVye2N1cnNvcjpwb2ludGVyfS55dHAtYWQtdW5kZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEzMXB4O2xlZnQ6MDtoZWlnaHQ6Y2FsYygxMDAlIC0gMjYycHgpO3dpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVufS55dHAtYmlnLW1vZGUgLnl0cC1hZC11bmRlcmxheXtoZWlnaHQ6Y2FsYygxMDAlIC0gMjgwcHgpO3RvcDoxNDBweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC11bmRlcmxheXtoZWlnaHQ6Y2FsYygxMDAlIC0gMjIycHgpO3RvcDoxMTFweH0ueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLW1lbnUtc2hvd24gLnl0cC1hZC11bmRlcmxheXtoZWlnaHQ6Y2FsYygxMDAlIC0gMTUwcHgpO3RvcDo3NXB4fS55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXVuZGVybGF5e2hlaWdodDpjYWxjKDEwMCUgLSAxMjJweCk7dG9wOjYxcHh9Lnl0cC1hZC11bmRlcmxheS1jb21wYW5pb257aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0ueXRwLWFkLXVuZGVybGF5LXNpZGUtY29udGFpbmVye2hlaWdodDoxMDAlO21heC1oZWlnaHQ6MTAwJTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWp1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmctdG9wOjEyNXB4O3BhZGRpbmctYm90dG9tOjEyNXB4fS55dHAtYWQtdW5kZXJsYXktbGVmdC1jb250YWluZXJ7bWFyZ2luLWxlZnQ6MiU7cGFkZGluZy1yaWdodDoyJX0ueXRwLWFkLXVuZGVybGF5LXJpZ2h0LWNvbnRhaW5lcnttYXJnaW4tbGVmdDo1Mi41JX0ueXRwLWFkLXVuZGVybGF5LWltYWdlLWNvbnRhaW5lcntib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjEpO2Rpc3BsYXk6YmxvY2s7bWluLWhlaWdodDo3MnB4O21pbi13aWR0aDo3MnB4O2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbi1ib3R0b206MTZweDttYXgtd2lkdGg6MTQ0cHg7bWF4LWhlaWdodDoxNDRweDstd2Via2l0LWZsZXgtc2hyaW5rOjI7ZmxleC1zaHJpbms6MjtjdXJzb3I6cG9pbnRlcn0ueXRwLWFkLXVuZGVybGF5LWltYWdle3BvaW50ZXItZXZlbnRzOmF1dG87bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6NTAlfS55dHAtYWQtdW5kZXJsYXktaGVhZGxpbmUtY29udGFpbmVye3dpZHRoOjEwMCU7LXdlYmtpdC1mbGV4LXNocmluazowO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLWJvdHRvbTo0OHB4fS55dHAtYWQtdW5kZXJsYXktaGVhZGxpbmV7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2ZvbnQtc2l6ZToyLjV2dztmb250LXdlaWdodDo3MDA7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtbGluZS1jbGFtcDoyO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVuO3dvcmQtd3JhcDpicmVhay13b3JkO292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTYwMHB4KXsueXRwLWFkLXVuZGVybGF5LWhlYWRsaW5le2ZvbnQtc2l6ZTo0MHB4fX0ueXRwLWFkLXVuZGVybGF5LWRlc2NyaXB0aW9ue3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNzUpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxNnB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3BhZGRpbmctYm90dG9tOjQwcHh9Lnl0cC1hZC11bmRlcmxheS1kZXNjcmlwdGlvbi1jb250YWluZXJ7LXdlYmtpdC1mbGV4LXNocmluazoxO2ZsZXgtc2hyaW5rOjF9Lnl0cC1hZC11bmRlcmxheS1hY3Rpb24tYnV0dG9uLWNvbnRhaW5lcntkaXNwbGF5OmlubGluZS1ibG9ja30ueXRwLWFkLXVuZGVybGF5LWNsaWNrYWJsZXt6LWluZGV4Ojg1MH0ueXRwLWFkLXVuZGVybGF5LWFjdGlvbi1idXR0b257YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMwMzAzMDM7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czoxOHB4O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctbGVmdDoxMnB4O3BhZGRpbmctcmlnaHQ6MTJweDtoZWlnaHQ6MzZweH0ueXRwLWFkLXVuZGVybGF5LWFjdGlvbi1idXR0b24tbWVkaXVte2JvcmRlci1yYWRpdXM6MjRweDtmb250LXNpemU6MThweDtwYWRkaW5nLWxlZnQ6MTZweDtwYWRkaW5nLXJpZ2h0OjE2cHg7aGVpZ2h0OjQ4cHh9Lnl0cC1hZC11bmRlcmxheS1hY3Rpb24tYnV0dG9uLWxhcmdle2JvcmRlci1yYWRpdXM6MzJweDtmb250LXNpemU6MjJweDtwYWRkaW5nLWxlZnQ6MjRweDtwYWRkaW5nLXJpZ2h0OjI0cHg7aGVpZ2h0OjY0cHh9Lnl0cC1hZC11bmRlcmxheS1hY3Rpb24tYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U5ZTllOX0ueXRwLWFkLXVuZGVybGF5LWFjdGlvbi1idXR0b24tYmx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiMzZWE2ZmY7Y29sb3I6IzAzMDMwMztib3JkZXItcmFkaXVzOjJweH0ueXRwLWFkLXVuZGVybGF5LWFjdGlvbi1idXR0b24tYmx1ZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM2NmI4ZmZ9Lnl0cC1wcm9iYWJseS1rZXlib2FyZC1mb2N1cyAueXRwLWFkLXVuZGVybGF5LWFjdGlvbi1idXR0b246Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjoycHggc29saWQgI2ZmZjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiNmZmZ9Lnl0cC1wcm9iYWJseS1rZXlib2FyZC1mb2N1cyAueXRwLWFkLXVuZGVybGF5LWFjdGlvbi1idXR0b24tYmx1ZTpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyOjJweCBzb2xpZCAjM2VhNmZmO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6IzNlYTZmZn0uaHRtbDUtdmlkZW8tY29udGFpbmVyLXRyYW5zaXRpb25pbmd7LXdlYmtpdC10cmFuc2l0aW9uOndpZHRoIDEuNXMsaGVpZ2h0IDEuNXMsbGVmdCAxLjVzLHRvcCAxLjVzO3RyYW5zaXRpb246d2lkdGggMS41cyxoZWlnaHQgMS41cyxsZWZ0IDEuNXMsdG9wIDEuNXN9Lnl0cC1hZC11bmRlcmxheS1hY3Rpb24tYnV0dG9uLXRyYW5zaXRpb257ei1pbmRleDotMX0uY29sb3ItY29udHJhc3QtZml4Lnl0cC1hZC1zdXJ2ZXl7YmFja2dyb3VuZC1jb2xvcjpibGFja30uY29sb3ItY29udHJhc3QtZml4IC55dHAtYWQtc3VydmV5LXF1ZXN0aW9uLWJhY2tncm91bmR7b3BhY2l0eTo2MCV9LmNvbG9yLWNvbnRyYXN0LWZpeCAueXRwLWFkLXN1cnZleS1hbnN3ZXItYnV0dG9uLC5jb2xvci1jb250cmFzdC1maXggLnl0cC1hZC1zdXJ2ZXktYW5zd2VyLXRvZ2dsZS1idXR0b24sLmNvbG9yLWNvbnRyYXN0LWZpeCAueXRwLWFkLXN1cnZleS1xdWVzdGlvbi10ZXh0e2NvbG9yOndoaXRlfS5jb2xvci1jb250cmFzdC1maXggLnl0cC1hZC1zdXJ2ZXktYW5zd2VyLXRvZ2dsZS1idXR0b24gLnl0cC1hZC10b2dnbGUtYnV0dG9uLXVudG9nZ2xlZC1pY29uIHN2ZyBwYXRoOmZpcnN0LW9mLXR5cGV7ZmlsbDp3aGl0ZX0ueXRwLWFkLWJhZGdle2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5OmlubGluZS1mbGV4O2xlZnQ6MDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWFkLWJhZGdlOmFmdGVye2NvbnRlbnQ6IsK3IjtwYWRkaW5nLWlubGluZTo0cHh9Lnl0cC1hZC1iYWRnZV9fcG9kLWluZGV4OmJlZm9yZXtjb250ZW50OiLCtyI7cGFkZGluZy1pbmxpbmU6NHB4IDNweH0ueXRwLWFkLWJhZGdlLS1zdGFya3tjb2xvcjojZmZmO29wYWNpdHk6Ljc1O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjI4cHh9Lnl0cC1hZC1iYWRnZS0tc3RhcmsgLnl0cC1hZC1iYWRnZV9fdGV4dHtmb250LXdlaWdodDo3MDB9Lnl0cC1hZC1iYWRnZS0tY2xlYW4tcGxheWVye2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5OmlubGluZS1mbGV4O2xlZnQ6MDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWFkLWJhZGdlLS1zdGFyay1jbGVhbi1wbGF5ZXJ7Y29sb3I6I2ZmZjtvcGFjaXR5OjE7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MjhweDt0ZXh0LXNoYWRvdzowIDAgOHB4IHJnYmEoMCwwLDAsLjUpO2xldHRlci1zcGFjaW5nOi4zNXB4fS55dHAtYWQtYmFkZ2UtLXN0YXJrLWNsZWFuLXBsYXllciAueXRwLWFkLWJhZGdlX190ZXh0LS1jbGVhbi1wbGF5ZXJ7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtZmFtaWx5OllvdVR1YmUgTm90byxSb2JvdG8sYXJpYWwsc2Fucy1zZXJpZjt0ZXh0LXNoYWRvdzowIDAgMTZweCByZ2JhKDAsMCwwLC41KX0ueXRwLWFkLWJhZGdlLS1zdGFyay1jbGVhbi1wbGF5ZXItaW9ze2xldHRlci1zcGFjaW5nOi4xcHh9Lnl0cC1hZC1ncmlkLWNhcmQtY29sbGVjdGlvbntkaXNwbGF5OmdyaWQ7Z2FwOjhweDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDEsbWlubWF4KDAsMWZyKSl9Lnl0cC1hZC1ncmlkLWNhcmQtdGV4dHttYXgtd2lkdGg6NTAwcHg7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3c7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSk7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleC1ncm93OjE7ZmxleC1ncm93OjE7LXdlYmtpdC1hbGlnbi1zZWxmOnN0cmV0Y2g7YWxpZ24tc2VsZjpzdHJldGNoOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1hZC1ncmlkLWNhcmQtdGV4dF9fYnV0dG9ue21hcmdpbjoxMnB4IDE2cHggMTJweCAxMnB4fS55dHAtYWQtZ3JpZC1jYXJkLXRleHRfX21ldGFkYXRhey13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4LWdyb3c6MTtmbGV4LWdyb3c6MTttYXJnaW4tbGVmdDoxNnB4O21hcmdpbi10b3A6MTJweDttYXJnaW4tYm90dG9tOjEycHg7bWluLXdpZHRoOjB9Lnl0cC1hZC1ncmlkLWNhcmQtdGV4dF9fbWV0YWRhdGFfX2hlYWRsaW5le2NvbG9yOiNmZmY7Zm9udC1mYW1pbHk6WW91VHViZSBOb3RvLFJvYm90byxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS44cmVtO2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47bWF4LWhlaWdodDoxLjhyZW07LXdlYmtpdC1saW5lLWNsYW1wOjE7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9Lnl0cC1hZC1ncmlkLWNhcmQtdGV4dF9fbWV0YWRhdGFfX2Rlc2NyaXB0aW9ue2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fS55dHAtYWQtZ3JpZC1jYXJkLXRleHRfX21ldGFkYXRhX19kZXNjcmlwdGlvbiA6Zmlyc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjFweDt3aWR0aDotd2Via2l0LW1heC1jb250ZW50O3dpZHRoOi1tb3otbWF4LWNvbnRlbnQ7d2lkdGg6bWF4LWNvbnRlbnR9Lnl0cC1hZC1ncmlkLWNhcmQtdGV4dF9fbWV0YWRhdGFfX2Rlc2NyaXB0aW9uIDpub3QoOmZpcnN0LWNoaWxkKXstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxfS55dHAtYWQtZ3JpZC1jYXJkLXRleHRfX21ldGFkYXRhX19kZXNjcmlwdGlvbl9fbGluZXtjb2xvcjojZmZmO2ZvbnQtZmFtaWx5OllvdVR1YmUgTm90byxSb2JvdG8sYXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDA7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0ueXRwLWFkLXBvZC1pbmRleHtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdztkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7ZGlzcGxheTppbmxpbmUtZmxleDtsZWZ0OjA7cG9zaXRpb246cmVsYXRpdmV9Lnl0cC1hZC1wb2QtaW5kZXg6YmVmb3Jle2NvbnRlbnQ6IuKAoiI7cGFkZGluZy1pbmxpbmU6NHB4IDNweH0ueXRwLWFkLXBvZC1pbmRleC0tc3Rhcmt7Y29sb3I6I2ZmZjtvcGFjaXR5OjE7Zm9udC1zaXplOjEycHg7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjI4cHg7dGV4dC1zaGFkb3c6MCAwIDE2cHggcmdiYSgwLDAsMCwuNSk7Zm9udC1mYW1pbHk6WW91VHViZSBOb3RvLFJvYm90byxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLWFkLXBvZC1pbmRleC0tbXdlYntmb250LXdlaWdodDo2MDB9Lnl0cC1hZC1wb2QtaW5kZXgtLW13ZWItaW9ze2xldHRlci1zcGFjaW5nOi0uMnB4fS55dHAtYXV0b2hpZGUgLnl0cC1hZC1wb2QtaW5kZXgtLWF1dG9oaWRle2Rpc3BsYXk6bm9uZTt2aXNpYmlsaXR5OmhpZGRlbjtvcGFjaXR5OjB9Lnl0cC1hZC1idXR0b24tdm17ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7Zm9udC13ZWlnaHQ6NTAwO2JvcmRlcjpub25lOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BvaW50ZXItZXZlbnRzOmF1dG87Y3Vyc29yOnBvaW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtYWQtYnV0dG9uLXZtX190ZXh0e3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWFkLWJ1dHRvbi12bV9faWNvbnstd2Via2l0LWZsZXgtc2hyaW5rOjA7ZmxleC1zaHJpbms6MH0ueXRwLWFkLWJ1dHRvbi12bS0tc2l6ZS1jb21wYWN0e2hlaWdodDozMnB4O2xpbmUtaGVpZ2h0OjMycHg7Ym9yZGVyLXJhZGl1czoxNnB4O2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6MCAxMnB4fS55dHAtYWQtYnV0dG9uLXZtLS1zaXplLWNvbXBhY3QgLnl0cC1hZC1idXR0b24tdm1fX2ljb257aGVpZ2h0OjE2cHg7d2lkdGg6MTZweH0ueXRwLWFkLWJ1dHRvbi12bS0tc2l6ZS1jb21wYWN0IC55dHAtYWQtYnV0dG9uLXZtX19pY29uLS10cmFpbGluZ3std2Via2l0LW1hcmdpbi1zdGFydDo0cHg7bWFyZ2luLWlubGluZS1zdGFydDo0cHg7LXdlYmtpdC1tYXJnaW4tZW5kOi00cHg7bWFyZ2luLWlubGluZS1lbmQ6LTRweH0ueXRwLWFkLWJ1dHRvbi12bS0tc2l6ZS1jb21wYWN0IC55dHAtYWQtYnV0dG9uLXZtX19pY29uLS1sZWFkaW5ney13ZWJraXQtbWFyZ2luLXN0YXJ0Oi00cHg7bWFyZ2luLWlubGluZS1zdGFydDotNHB4Oy13ZWJraXQtbWFyZ2luLWVuZDo0cHg7bWFyZ2luLWlubGluZS1lbmQ6NHB4fS55dHAtYWQtYnV0dG9uLXZtLS1zaXplLWRlZmF1bHR7aGVpZ2h0OjM2cHg7bGluZS1oZWlnaHQ6MzZweDtib3JkZXItcmFkaXVzOjE4cHg7Zm9udC1zaXplOjE0cHg7cGFkZGluZzowIDE2cHh9Lnl0cC1hZC1idXR0b24tdm0tLXNpemUtZGVmYXVsdCAueXRwLWFkLWJ1dHRvbi12bV9faWNvbntoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS55dHAtYWQtYnV0dG9uLXZtLS1zaXplLWRlZmF1bHQgLnl0cC1hZC1idXR0b24tdm1fX2ljb24tLXRyYWlsaW5ney13ZWJraXQtbWFyZ2luLXN0YXJ0OjZweDttYXJnaW4taW5saW5lLXN0YXJ0OjZweDstd2Via2l0LW1hcmdpbi1lbmQ6LTZweDttYXJnaW4taW5saW5lLWVuZDotNnB4fS55dHAtYWQtYnV0dG9uLXZtLS1zaXplLWRlZmF1bHQgLnl0cC1hZC1idXR0b24tdm1fX2ljb24tLWxlYWRpbmd7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6LTZweDttYXJnaW4taW5saW5lLXN0YXJ0Oi02cHg7LXdlYmtpdC1tYXJnaW4tZW5kOjZweDttYXJnaW4taW5saW5lLWVuZDo2cHh9Lnl0cC1hZC1idXR0b24tdm0tLXNpemUtbGFyZ2V7aGVpZ2h0OjQ4cHg7bGluZS1oZWlnaHQ6NDhweDtib3JkZXItcmFkaXVzOjI0cHg7Zm9udC1zaXplOjE4cHg7cGFkZGluZzowIDI0cHh9Lnl0cC1hZC1idXR0b24tdm0tLXNpemUtbGFyZ2UgLnl0cC1hZC1idXR0b24tdm1fX2ljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRwLWFkLWJ1dHRvbi12bS0tc2l6ZS1sYXJnZSAueXRwLWFkLWJ1dHRvbi12bV9faWNvbi0tdHJhaWxpbmd7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6OHB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6OHB4Oy13ZWJraXQtbWFyZ2luLWVuZDotOHB4O21hcmdpbi1pbmxpbmUtZW5kOi04cHh9Lnl0cC1hZC1idXR0b24tdm0tLXNpemUtbGFyZ2UgLnl0cC1hZC1idXR0b24tdm1fX2ljb24tLWxlYWRpbmd7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6LThweDttYXJnaW4taW5saW5lLXN0YXJ0Oi04cHg7LXdlYmtpdC1tYXJnaW4tZW5kOjhweDttYXJnaW4taW5saW5lLWVuZDo4cHh9Lnl0cC1hZC1idXR0b24tdm0tLXN0eWxlLXRyYW5zcGFyZW50e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ueXRwLWFkLWJ1dHRvbi12bS0tc3R5bGUtdHJhbnNwYXJlbnQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4yKX0ueXRwLWFkLWJ1dHRvbi12bS0tc3R5bGUtZmlsbGVke2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDY1ZmQ0fS55dHAtYWQtYnV0dG9uLXZtLS1zdHlsZS1maWxsZWQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDU1NmJmfS55dHAtYWQtYnV0dG9uLXZtLS1zdHlsZS1maWxsZWQtd2hpdGV7Y29sb3I6IzBmMGYwZjtiYWNrZ3JvdW5kLWNvbG9yOiNmMWYxZjF9Lnl0cC1hZC1idXR0b24tdm0tLXN0eWxlLWZpbGxlZC13aGl0ZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNkOWQ5ZDl9Lnl0cC1hZC1idXR0b24tdm0tLXN0eWxlLWZpbGxlZC13aGl0ZTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZDlkOWQ5fS55dHAtYWQtYnV0dG9uLXZtLS1zdHlsZS1maWxsZWQtZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiMzZWE2ZmY7Y29sb3I6cmdiKDE1LDE1LDE1KX0ueXRwLWFkLWJ1dHRvbi12bS0tc3R5bGUtZmlsbGVkLWRhcms6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNjViOGZmfS55dHAtYWQtYnV0dG9uLXZtLS1zdHlsZS1tb25vLWZpbGxlZHtjb2xvcjojZjFmMWYxO2JhY2tncm91bmQtY29sb3I6IzBmMGYwZn0ueXRwLWFkLWJ1dHRvbi12bS0tc3R5bGUtbW9uby1maWxsZWQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojM2YzZjNmfS55dHAtYWQtYnV0dG9uLXZtLS1zdHlsZS1tb25vLWZpbGxlZDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojM2YzZjNmfS55dHAtYWQtYnV0dG9uLXZtLS1pY29uLW9ubHl7cGFkZGluZzowfS55dHAtYWQtYnV0dG9uLXZtLS1pY29uLW9ubHkgLnl0cC1hZC1idXR0b24tdm1fX2ljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweDtwYWRkaW5nOjAgNnB4fS55dHAtYWQtZGlzY2xvc3VyZS1iYW5uZXJ7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjYpO2JvcmRlci1sZWZ0OjRweCBzb2xpZCAjZmJjMDJkO2JvcmRlci1yYWRpdXM6NHB4O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5OmlubGluZS1mbGV4O2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO21heC13aWR0aDozMTJweDtwYWRkaW5nOjhweH0ueXRwLWFkLWRpc2Nsb3N1cmUtYmFubmVyX190ZXh0e2JhY2tncm91bmQ6bm9uZTtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXgtZ3JvdzoxO2ZsZXgtZ3JvdzoxO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxZW07cGFkZGluZzo4cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS55dHAtYWQtZGlzY2xvc3VyZS1iYW5uZXJfX2NoZXZyb257LXdlYmtpdC1mbGV4LXNocmluazowO2ZsZXgtc2hyaW5rOjA7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRwLWFkLW5vdGlmaWNhdGlvbi1jb250YWluZXJ7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC40KTtib3R0b206ODZweDtjb2xvcjojZmZmO2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToxNnB4O2hlaWdodDo1MnB4O2xpbmUtaGVpZ2h0OjUycHg7bWluLXdpZHRoOjgwcHg7b3BhY2l0eToxO3BhZGRpbmc6MCAyMHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO3otaW5kZXg6NDV9Lnl0cC1lbWJlZCAueXRwLWFkLW5vdGlmaWNhdGlvbi1jb250YWluZXJ7Ym90dG9tOjc4cHh9Lnl0cC1hZC1ub3RpZmljYXRpb24tY29udGFpbmVyW2FyaWEtaGlkZGVuPXRydWVdey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO29wYWNpdHk6MH0ueXRwLWJpZy1tb2RlIC55dHAtYWQtbm90aWZpY2F0aW9uLWNvbnRhaW5lcntib3R0b206OTVweH0ueXRwLWhpZGUtY29udHJvbHMgLnl0cC1hZC1ub3RpZmljYXRpb24tY29udGFpbmVye2JvdHRvbToyNXB4fS55dHAtcHJldmlldy1hZHtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6NHB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNik7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjIycHg7Ym90dG9tOjk1cHg7ei1pbmRleDoxMDAwOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC40cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuNHMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtjdXJzb3I6ZGVmYXVsdDtwb2ludGVyLWV2ZW50czphdXRvfS55dHAtcHJldmlldy1hZFthcmlhLWhpZGRlbj10cnVlXXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtcHJldmlldy1hZF9fdGV4dHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsZXR0ZXItc3BhY2luZzouMXB4O3BhZGRpbmc6MCA4cHg7dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOnByZTt3aWR0aDphdXRvfS55dHAtcHJldmlldy1hZF9fdGV4dC0tZm9udC0tc21hbGx7Zm9udC1zaXplOjEycHg7aGVpZ2h0OmF1dG87bWluLXdpZHRoOjB9Lnl0cC1wcmV2aWV3LWFkX190ZXh0LS1wYWRkaW5nLS13aWRle3BhZGRpbmc6MCAxNHB4fS55dHAtcHJldmlldy1hZF9faW1hZ2V7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO3dpZHRoOjY1cHg7aGVpZ2h0OjM2cHg7LW8tb2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtZml0OmNvdmVyfS55dHAtYmlnLW1vZGUgLnl0cC1wcmV2aWV3LWFke3JpZ2h0OjQwcHg7Ym90dG9tOjEwNHB4fS55dHAtc21hbGwtbW9kZSAueXRwLXByZXZpZXctYWR7cmlnaHQ6MTJweDtib3R0b206NzVweH0ueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLW1lbnUtc2hvd24gLnl0cC1wcmV2aWV3LWFke3JpZ2h0OjE2cHg7Ym90dG9tOjM5cHh9Lnl0cC1oaWRlLWNvbnRyb2xzIC55dHAtcHJldmlldy1hZHtib3R0b206MjVweH0ueXRwLWF1dG9oaWRlIC55dHAtYWQtZHVyYXRpb24tcmVtYWluaW5nLWF1dG9oaWRle2Rpc3BsYXk6bm9uZX0ueXRwLWRpc3BsYXktdW5kZXJsYXktdGV4dC1ncmlkLWNhcmRze2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lnl0cC1kaXNwbGF5LXVuZGVybGF5LXRleHQtZ3JpZC1jYXJkc19fY29udGVudF9jb250YWluZXJ7aGVpZ2h0OjEwMCU7bWF4LWhlaWdodDoxMDAlOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otanVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZy1sZWZ0OjY0cHg7cGFkZGluZy1yaWdodDo2NHB4O21hcmdpbi1sZWZ0OmNhbGMoNjAlICsgMTZweCl9Lnl0cC1kaXNwbGF5LXVuZGVybGF5LXRleHQtZ3JpZC1jYXJkc19fY29udGVudF9jb250YWluZXJfX2hlYWRlcntkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otanVzdGlmeS1jb250ZW50OnN0YXJ0Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnN0YXJ0Oy13ZWJraXQtYm94LXBhY2s6c3RhcnQ7anVzdGlmeS1jb250ZW50OnN0YXJ0Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93O3dpZHRoOjEwMCU7bWF4LXdpZHRoOjUwMHB4O21hcmdpbi1ib3R0b206MjRweH0ueXRwLWRpc3BsYXktdW5kZXJsYXktdGV4dC1ncmlkLWNhcmRzX19jb250ZW50X2NvbnRhaW5lcl9faGVhZGVyX19hZF9hdmF0YXJ7cG9pbnRlci1ldmVudHM6YXV0bztjdXJzb3I6cG9pbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDttYXJnaW4tcmlnaHQ6MTZweH0ueXRwLWRpc3BsYXktdW5kZXJsYXktdGV4dC1ncmlkLWNhcmRzX19jb250ZW50X2NvbnRhaW5lcl9faGVhZGVyX19oZWFkbGluZXtjb2xvcjojZmZmO2ZvbnQtZmFtaWx5OllvdVR1YmUgTm90byxSb2JvdG8sYXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MjBweDtmb250LXdlaWdodDo5MDA7bGluZS1oZWlnaHQ6MjRweDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1saW5lLWNsYW1wOjE7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9Lnl0cC1kaXNwbGF5LXVuZGVybGF5LXRleHQtZ3JpZC1jYXJkc19fY29udGVudF9jb250YWluZXJfX2FkX2J1dHRvbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOjI0cHg7d2lkdGg6MTAwJTttYXgtd2lkdGg6NTAwcHg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lnl0cC1kaXNwbGF5LXVuZGVybGF5LXRleHQtZ3JpZC1jYXJkc19fY29udGVudF9jb250YWluZXJfX2FkX2dyaWRfY2FyZF9jb2xsZWN0aW9ue3dpZHRoOjEwMCU7bWF4LXdpZHRoOjUwMHB4O292ZXJmbG93OmhpZGRlbiBhdXRvfS55dHAtZGlzcGxheS11bmRlcmxheS10ZXh0LWdyaWQtY2FyZHNfX2NvbnRlbnRfY29udGFpbmVyX19hZF9idXR0b24+YnV0dG9ue3dpZHRoOjEwMCU7bWF4LXdpZHRoOjUwMHB4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS55dHAtZGlzcGxheS11bmRlcmxheS10ZXh0LWdyaWQtY2FyZHMgLnl0cC1hZC1hdmF0YXItLXNpemUtcmVzcG9uc2l2ZXt3aWR0aDo0OHB4O2hlaWdodDo0OHB4fS55dHAtaW1hZ2UtYmFja2dyb3VuZC0tZ3JhZGllbnQtdmVydGljYWx7aW5zZXQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLDApIDUwJSxyZ2JhKDAsMCwwLC44KSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDUwJSxyZ2JhKDAsMCwwLDApKSx0byhyZ2JhKDAsMCwwLC44KSkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDAsMCwwLDApIDUwJSxyZ2JhKDAsMCwwLC44KSk7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KX0ueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZHtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdztwYWRkaW5nOjEycHg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjk1KTtjdXJzb3I6cG9pbnRlcjttYXgtd2lkdGg6NDAwcHg7b3ZlcmZsb3c6aGlkZGVuO3BvaW50ZXItZXZlbnRzOmF1dG87LXdlYmtpdC10cmFuc2l0aW9uOndpZHRoIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpIC41cyxtYXgtd2lkdGggLjJzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp3aWR0aCAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSAuNXMsbWF4LXdpZHRoIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZmZn0ueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZC0tbGFyZ2V7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNik7bWluLXdpZHRoOjIwMHB4fS55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkLS1sYXJnZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpfS55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkLS1pbmFjdGl2ZXstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwJSk7d2lkdGg6MDttYXgtd2lkdGg6MH0ueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZF9fYXZhdGFyX2FuZF90ZXh0X2NvbnRhaW5lci0tbGFyZ2V7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1hbGlnbi1zZWxmOnN0YXJ0O2FsaWduLXNlbGY6c3RhcnR9Lnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmRfX2FkX2F2YXRhci0tbGFyZ2V7LXdlYmtpdC1hbGlnbi1zZWxmOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcn0ueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZF9fdGV4dF9jb250YWluZXJ7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6MCAyMHB4IDAgOHB4O21heC13aWR0aDoxOTJweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmRfX2hlYWRsaW5le2Rpc3BsYXk6LXdlYmtpdC1ib3g7Y29sb3I6IzBmMGYwZjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWw7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtbGluZS1jbGFtcDoyfS55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkX19oZWFkbGluZS0tbGFyZ2V7Y29sb3I6I2RkZH0ueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZF9fZGVzY3JpcHRpb257Y29sb3I6IzYwNjA2MDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNnB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZF9fZGVzY3JpcHRpb24tLWxhcmdle2NvbG9yOiNkZGR9Lnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmQgLnl0cC1hZC1idXR0b24tdm17bWF4LXdpZHRoOjE0MHB4fS55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkX19idXR0b24tLWxhcmdle21hcmdpbi10b3A6OHB4O21pbi13aWR0aDoxMDAlOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOiMwZjBmMGY7YmFja2dyb3VuZC1jb2xvcjojM2VhNmZmfS55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkX19idXR0b24tLWxhcmdlOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzY1YjhmZn0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmQsLnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJke29wYWNpdHk6Ljg2O3BhZGRpbmc6OHB4O21pbi1oZWlnaHQ6NDBweDttYXgtd2lkdGg6MTkwcHh9Lnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkLS1sYXJnZSwueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmQtLWxhcmdle21pbi13aWR0aDphdXRvfS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZC0taW5hY3RpdmUsLnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkLS1pbmFjdGl2ZXt3aWR0aDowO21heC13aWR0aDowfS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZCAueXRwLWFkLWJ1dHRvbi12bSwueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmQgLnl0cC1hZC1idXR0b24tdm17ZGlzcGxheTpub25lfS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZF9faGVhZGxpbmUsLnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkX19oZWFkbGluZXtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNnB4fS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZF9fZGVzY3JpcHRpb24sLnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkX19kZXNjcmlwdGlvbntmb250LXNpemU6MTBweDtsaW5lLWhlaWdodDoxNHB4fS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLWFkLWF2YXRhci1sb2NrdXAtY2FyZF9fZGVzY3JpcHRpb24tLWhpZGRlbi0taW4tLXNtYWxsLS1wbGF5ZXIsLnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkX19kZXNjcmlwdGlvbi0taGlkZGVuLS1pbi0tc21hbGwtLXBsYXllcntkaXNwbGF5Om5vbmV9Lnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkX190ZXh0X2NvbnRhaW5lciwueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmRfX3RleHRfY29udGFpbmVye3BhZGRpbmc6MCA0cHggMCA2cHg7bWF4LXdpZHRoOjE0NnB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtYWQtYXZhdGFyLWxvY2t1cC1jYXJkey13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bSxyZ2JhKDAsMCwwLC42KSk7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmRfX2hlYWRsaW5le2NvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10ZXh0LXByaW1hcnksI2ZmZil9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1hZC1hdmF0YXItbG9ja3VwLWNhcmRfX2Rlc2NyaXB0aW9ue2NvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10ZXh0LXNlY29uZGFyeSxyZ2JhKDI1NSwyNTUsMjU1LC43KSl9Lnl0cC1hZC1wZXJzaXN0ZW50LXByb2dyZXNzLWJhci1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0zcHg7d2lkdGg6MTAwJTtoZWlnaHQ6M3B4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMik7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3otaW5kZXg6Mzh9Lnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1wcm9ncmVzcy1iYXIgLnl0cC1hZC1wZXJzaXN0ZW50LXByb2dyZXNzLWJhci1jb250YWluZXIsLnl0cC1hdXRvaGlkZSAueXRwLWFkLXBlcnNpc3RlbnQtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcntvcGFjaXR5OjE7Ym90dG9tOjA7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtYWQtcGxheWVyLW92ZXJsYXktcHJvZ3Jlc3MtYmFyIC55dHAtYWQtcGVyc2lzdGVudC1wcm9ncmVzcy1iYXItY29udGFpbmVye2JhY2tncm91bmQtY29sb3I6IzIyMjtoZWlnaHQ6NHB4fS55dHAtYWQtcGxheWVyLW92ZXJsYXktcHJvZ3Jlc3MtYmFyIC55dHAtYWQtcGVyc2lzdGVudC1wcm9ncmVzcy1iYXItY29udGFpbmVyLS1jbGVhbi1wbGF5ZXJ7YmFja2dyb3VuZC1jb2xvcjojMjIyO2hlaWdodDozcHh9Lnl0cC1hZC1wZXJzaXN0ZW50LXByb2dyZXNzLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjA7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1jb2xvcjojZmMwfS55dHAtcGxheWVyLW1pbmltaXplZC55dHAtbWluaXBsYXllci1hbHRlcm5hdGUtdWkgLnl0cC1hZC1wZXJzaXN0ZW50LXByb2dyZXNzLWJhci1jb250YWluZXJ7d2lkdGg6Y2FsYygxMDAlIC0gMjRweCk7bGVmdDoxMnB4O2JvdHRvbToxMnB4fS55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0e3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym90dG9tOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVye2JvdHRvbTo2NXB4O2N1cnNvcjpkZWZhdWx0O2xlZnQ6MjJweDtwb2ludGVyLWV2ZW50czphdXRvO3Bvc2l0aW9uOmFic29sdXRlO3RleHQtc2hhZG93OjAgMCA0cHggcmdiYSgwLDAsMCwuNzUpO3otaW5kZXg6ODUwOy13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246Ym90dG9tIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtaW5mby1jb250YWluZXIgLnl0cC1hZC1kdXJhdGlvbi1yZW1haW5pbmd7bWFyZ2luLWxlZnQ6MH0ueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fcGxheWVyLWNhcmQtY29udGFpbmVye2JvdHRvbTo5NXB4O2xlZnQ6MjJweDtwb2ludGVyLWV2ZW50czphdXRvO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6ODUwO2JvcmRlci1yYWRpdXM6OHB4O292ZXJmbG93OmhpZGRlbjstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX3NraXAtb3ItcHJldmlldy1jb250YWluZXJ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtyaWdodDowO3Bvc2l0aW9uOmFic29sdXRlfS55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1kaXNjbG9zdXJlLWJhbm5lci1jb250YWluZXJ7Ym9yZGVyLXJhZGl1czowO2JvdHRvbTphdXRvO2N1cnNvcjpkZWZhdWx0O2hlaWdodDphdXRvO2xlZnQ6MjJweDtwb2ludGVyLWV2ZW50czphdXRvO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0MnB4O3otaW5kZXg6ODUwfS55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0IC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1kaXNjbG9zdXJlLWJhbm5lci1jb250YWluZXJ7ei1pbmRleDoyN30ueXRwLWJpZy1tb2RlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lcntib3R0b206NzRweDtsZWZ0OjQwcHh9Lnl0cC1iaWctbW9kZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fcGxheWVyLWNhcmQtY29udGFpbmVye2xlZnQ6NDBweDtib3R0b206MTA0cHh9Lnl0cC1iaWctbW9kZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtZGlzY2xvc3VyZS1iYW5uZXItY29udGFpbmVye2xlZnQ6NDBweDt0b3A6NjRweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVye2xlZnQ6MTJweDtib3R0b206NDVweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX3BsYXllci1jYXJkLWNvbnRhaW5lcntsZWZ0OjEycHg7Ym90dG9tOjc1cHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1kaXNjbG9zdXJlLWJhbm5lci1jb250YWluZXJ7bGVmdDoxMnB4O3RvcDoxMnB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lcntib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIDE0cHgpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciAuYWQtc2ltcGxlLWF0dHJpYnV0ZWQtc3RyaW5nLC55dHAtZGVsaGktbW9kZXJuIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciAueXRwLWFkLXBvZC1pbmRleCwueXRwLWRlbGhpLW1vZGVybiAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtaW5mby1jb250YWluZXIgLnl0cC12aXNpdC1hZHZlcnRpc2VyLWxpbmtfX3RleHR7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHAtZGVsaGktbW9kZXJuIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciAueXRwLWFkLWJ1dHRvbnstd2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMnB4ICMwMDApO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMnB4ICMwMDApfS55dHAtZGVsaGktbW9kZXJuIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19wbGF5ZXItY2FyZC1jb250YWluZXJ7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgNzJweCkgKyA1MHB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVye2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgMTRweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19wbGF5ZXItY2FyZC1jb250YWluZXJ7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyA1MHB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVye2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgMTRweCArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciAuYWQtc2ltcGxlLWF0dHJpYnV0ZWQtc3RyaW5nLC55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtaW5mby1jb250YWluZXIgLnl0cC1hZC1wb2QtaW5kZXgsLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciAueXRwLXZpc2l0LWFkdmVydGlzZXItbGlua19fdGV4dHt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciAueXRwLWFkLWJ1dHRvbnstd2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMnB4ICMwMDApO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMnB4ICMwMDApfS55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fcGxheWVyLWNhcmQtY29udGFpbmVye2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgNTBweCArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1iaWctbW9kZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtaW5mby1jb250YWluZXJ7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyAxNHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcueXRwLWJpZy1tb2RlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19wbGF5ZXItY2FyZC1jb250YWluZXJ7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyA1MHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLW1lbnUtc2hvd24gLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVye2xlZnQ6MTZweDtib3R0b206OXB4fS55dHAtcGxheWVyLW1pbmltaXplZC55dHAtbWVudS1zaG93biAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fcGxheWVyLWNhcmQtY29udGFpbmVye2xlZnQ6MTZweDtib3R0b206MzlweH0ueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLW1lbnUtc2hvd24gLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWRpc2Nsb3N1cmUtYmFubmVyLWNvbnRhaW5lcntsZWZ0OjE2cHg7dG9wOjE2cHh9Lnl0cC1hdXRvaGlkZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtaW5mby1jb250YWluZXIsLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWF1dG9oaWRlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19hZC1pbmZvLWNvbnRhaW5lciwueXRwLWhpZGUtY29udHJvbHMgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVyLC55dHAtaXYtZHJhd2VyLW9wZW4gLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVye2JvdHRvbToxNXB4Oy13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1hdXRvaGlkZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fcGxheWVyLWNhcmQtY29udGFpbmVyLC55dHAtZGVsaGktbW9kZXJuLnl0cC1hdXRvaGlkZSAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fcGxheWVyLWNhcmQtY29udGFpbmVye2JvdHRvbTo0NXB4Oy13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWF1dG9oaWRlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19wbGF5ZXItY2FyZC1jb250YWluZXJ7Ym90dG9tOjNweHZhcigtLXl0LWRlbGhpLXBpbGwtaGVpZ2h0LDQ4cHgpMjRweDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtc21hbGwtbW9kZS55dHAtYXV0b2hpZGUgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXRfX2FkLWluZm8tY29udGFpbmVyLC55dHAtc21hbGwtbW9kZS55dHAtaGlkZS1jb250cm9scyAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtaW5mby1jb250YWluZXIsLnl0cC1zbWFsbC1tb2RlLnl0cC1pdi1kcmF3ZXItb3BlbiAueXRwLWFkLXBsYXllci1vdmVybGF5LWxheW91dF9fYWQtaW5mby1jb250YWluZXJ7Ym90dG9tOjdweH0ueXRwLXNtYWxsLW1vZGUueXRwLWF1dG9oaWRlIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0X19wbGF5ZXItY2FyZC1jb250YWluZXJ7Ym90dG9tOjM3cHh9Lnl0cC1hZC1hdmF0YXItLXNpemUteHhze3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHh9Lnl0cC1hZC1hdmF0YXItLXNpemUteHN7d2lkdGg6MjRweDtoZWlnaHQ6MjRweH0ueXRwLWFkLWF2YXRhci0tc2l6ZS1ze3dpZHRoOjMycHg7aGVpZ2h0OjMycHh9Lnl0cC1hZC1hdmF0YXItLXNpemUtbXt3aWR0aDozNnB4O2hlaWdodDozNnB4fS55dHAtYWQtYXZhdGFyLS1zaXplLWx7d2lkdGg6NTZweDtoZWlnaHQ6NTZweH0ueXRwLWFkLWF2YXRhci0tc2l6ZS14bHt3aWR0aDo3MnB4O2hlaWdodDo3MnB4fS55dHAtYWQtYXZhdGFyLS1jaXJjdWxhcntib3JkZXItcmFkaXVzOjUwJX0ueXRwLWFkLWF2YXRhci0tcm91bmRlZC1jb3JuZXJ7Ym9yZGVyLXJhZGl1czoyMCV9Lnl0cC1hZC1kZXRhaWxzLWxpbmV7ZGlzcGxheTpibG9ja30ueXRwLWFkLWRldGFpbHMtbGluZV9fdGV4dC0tc3R5bGUtc3RhbmRhcmR7Y29sb3I6I2FhYTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MjBweDttYXgtaGVpZ2h0Om5vbmU7cGFkZGluZy1ib3R0b206MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoxOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbH0ueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXR7ei1pbmRleDo2NDtiYWNrZ3JvdW5kOndoaXRlO2hlaWdodDoxMDAlO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlO2JhY2tncm91bmQtc2l6ZTpjb3ZlcjstbW96LWJhY2tncm91bmQtc2l6ZTpjb3Zlcjstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3Zlcn0ueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXRfX2JhY2tncm91bmQtaW1hZ2UtY29udGFpbmVye3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ei1pbmRleDo2NTtib3JkZXI6bm9uZX0ueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXQgLnl0cC1pbWFnZS1iYWNrZ3JvdW5kLWltYWdle2JhY2tncm91bmQtc2l6ZTpjb3ZlcjstbW96LWJhY2tncm91bmQtc2l6ZTpjb3Zlcjstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3Zlcjstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlcjpub25lO2Rpc3BsYXk6YmxvY2t9Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0X19jb250ZW50e3otaW5kZXg6NjU7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjB9Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0X19jb250ZW50X19sb2NrdXB7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7ZGlzcGxheTpibG9jaztsZWZ0OjUwJTtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt0b3A6NTAlO21hcmdpbi1sZWZ0Oi0yMTVweDt3aWR0aDo0MzBweDtwYWRkaW5nOjAgMTZweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0X19jb250ZW50X19sb2NrdXBfX2FkLWF2YXRhci1jb250YWluZXJ7cG9pbnRlci1ldmVudHM6YXV0bztjdXJzb3I6cG9pbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleH0ueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXRfX2NvbnRlbnRfX2xvY2t1cF9faGVhZGxpbmUtY29udGFpbmVye3BvaW50ZXItZXZlbnRzOmF1dG87Y3Vyc29yOnBvaW50ZXI7d2lkdGg6LXdlYmtpdC1maXQtY29udGVudDt3aWR0aDotbW96LWZpdC1jb250ZW50O3dpZHRoOmZpdC1jb250ZW50O21hcmdpbjowIGF1dG99Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0X19jb250ZW50X19sb2NrdXBfX2hlYWRsaW5le3BhZGRpbmc6MjhweCAwIDEwcHg7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MjhweDtmb250LXdlaWdodDo5MDA7bGluZS1oZWlnaHQ6MzRweDttYXgtaGVpZ2h0Om5vbmU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1saW5lLWNsYW1wOjJ9Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0X19jb250ZW50X19sb2NrdXBfX2RldGFpbHMtbGluZS1jb250YWluZXJ7cG9pbnRlci1ldmVudHM6YXV0bztjdXJzb3I6cG9pbnRlcjt3aGl0ZS1zcGFjZTpub3JtYWw7d2lkdGg6LXdlYmtpdC1maXQtY29udGVudDt3aWR0aDotbW96LWZpdC1jb250ZW50O3dpZHRoOmZpdC1jb250ZW50O21hcmdpbjowIGF1dG99Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0X19jb250ZW50X19sb2NrdXBfX2FkLWJ1dHRvbi1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzo2cHggMDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXRfX2NvbnRlbnRfX2luc3RyZWFtLWluZm8tY29udGFpbmVye2JvdHRvbTo2cHg7Y3Vyc29yOmRlZmF1bHQ7bGVmdDoxOHB4O3BvaW50ZXItZXZlbnRzOmF1dG87cG9zaXRpb246YWJzb2x1dGU7dGV4dC1zaGFkb3c6MCAwIDRweCByZ2JhKDAsMCwwLC43NSk7ei1pbmRleDo4NTA7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtdmlkZW8taW50ZXJzdGl0aWFsLWJ1dHRvbmVkLWNlbnRlcmVkLWxheW91dCAueXRwLWFkLWJhZGdlOmFmdGVye3BhZGRpbmctcmlnaHQ6dW5zZXR9Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0IC55dHAtYWQtYmFkZ2V7bWFyZ2luLWxlZnQ6NXB4fS55dHAtdmlkZW8taW50ZXJzdGl0aWFsLWJ1dHRvbmVkLWNlbnRlcmVkLWxheW91dCAueXRwLWFkLWRldGFpbHMtbGluZXtwYWRkaW5nOjZweCAwIDIycHh9Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0IC55dHAtYWQtYnV0dG9uLXZtOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0Oi02cHggMDtjdXJzb3I6cG9pbnRlcn0ueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXRfX3RpbWVkLXBpZS1jb3VudGRvd24tY29udGFpbmVye2JvdHRvbTphdXRvO2xlZnQ6YXV0bzt0b3A6NHB4O3JpZ2h0OjZweDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NjV9Lnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0IC55dHAtYWQtYXZhdGFyLS1zaXplLXJlc3BvbnNpdmV7d2lkdGg6NjRweDtoZWlnaHQ6NjRweH0ueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXQgLnl0cC1hZC1kZXRhaWxzLWxpbmVfX3RleHQtLXN0eWxlLXJlc3BvbnNpdmV7Y29sb3I6I2FhYTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MjBweDttYXgtaGVpZ2h0Om5vbmU7cGFkZGluZy1ib3R0b206MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoxOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbH0ueXRwLXNtYWxsLW1vZGUgLnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0X19jb250ZW50X19sb2NrdXB7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7ZGlzcGxheTpibG9jazt0b3A6NTAlO3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbi1sZWZ0OjA7bGVmdDowO3RleHQtYWxpZ246bGVmdDt3aWR0aDoyNDVweDtwYWRkaW5nOjAgMCAwIDE2cHg7LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3h9Lnl0cC1zbWFsbC1tb2RlIC55dHAtdmlkZW8taW50ZXJzdGl0aWFsLWJ1dHRvbmVkLWNlbnRlcmVkLWxheW91dF9fY29udGVudF9fbG9ja3VwX19hZC1hdmF0YXItY29udGFpbmVye3BvaW50ZXItZXZlbnRzOmF1dG87Y3Vyc29yOnBvaW50ZXI7bWFyZ2luOjAgYXV0byAwIC02cHg7cGFkZGluZzo2cHg7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6LXdlYmtpdC1tYXgtY29udGVudDt3aWR0aDotbW96LW1heC1jb250ZW50O3dpZHRoOm1heC1jb250ZW50fS55dHAtc21hbGwtbW9kZSAueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXRfX2NvbnRlbnRfX2xvY2t1cF9faGVhZGxpbmUtY29udGFpbmVye3BvaW50ZXItZXZlbnRzOmF1dG87Y3Vyc29yOnBvaW50ZXI7d2lkdGg6LXdlYmtpdC1maXQtY29udGVudDt3aWR0aDotbW96LWZpdC1jb250ZW50O3dpZHRoOmZpdC1jb250ZW50O21hcmdpbjowIGF1dG8gMCAwfS55dHAtc21hbGwtbW9kZSAueXRwLXZpZGVvLWludGVyc3RpdGlhbC1idXR0b25lZC1jZW50ZXJlZC1sYXlvdXRfX2NvbnRlbnRfX2xvY2t1cF9faGVhZGxpbmV7cGFkZGluZzoxMHB4IDA7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MjBweDtmb250LXdlaWdodDo5MDA7bGluZS1oZWlnaHQ6MjRweDttYXgtaGVpZ2h0Om5vbmU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1saW5lLWNsYW1wOjF9Lnl0cC1zbWFsbC1tb2RlIC55dHAtdmlkZW8taW50ZXJzdGl0aWFsLWJ1dHRvbmVkLWNlbnRlcmVkLWxheW91dF9fY29udGVudF9fbG9ja3VwX19kZXRhaWxzLWxpbmUtY29udGFpbmVye2Rpc3BsYXk6bm9uZX0ueXRwLXNtYWxsLW1vZGUgLnl0cC12aWRlby1pbnRlcnN0aXRpYWwtYnV0dG9uZWQtY2VudGVyZWQtbGF5b3V0IC55dHAtYWQtYXZhdGFyLS1zaXplLXJlc3BvbnNpdmV7d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0ueXRwLXNraXAtYWR7ei1pbmRleDo4NTB9Lnl0cC1za2lwLWFkLWJ1dHRvbntkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdztib3JkZXI6bm9uZTstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyO2hlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6MThweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjYpOy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2NvbG9yOiNmZmY7ZGlyZWN0aW9uOmx0cjttaW4td2lkdGg6MDtwYWRkaW5nOjAgNnB4IDAgMTZweDt3aWR0aDphdXRvO3BvaW50ZXItZXZlbnRzOmF1dG87Y3Vyc29yOnBvaW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjIycHg7Ym90dG9tOjk1cHg7ei1pbmRleDoxMDAwOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC41cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLXNraXAtYWQtYnV0dG9uW2FyaWEtaGlkZGVuPXRydWVde29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1za2lwLWFkLWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20ocmdiYSgyNTUsMjU1LDI1NSwuMikpLHRvKHJnYmEoMjU1LDI1NSwyNTUsLjIpKSksLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbShyZ2IoMTUsMTUsMTUpKSx0byhyZ2IoMTUsMTUsMTUpKSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChyZ2JhKDI1NSwyNTUsMjU1LC4yKSxyZ2JhKDI1NSwyNTUsMjU1LC4yKSksLXdlYmtpdC1saW5lYXItZ3JhZGllbnQocmdiKDE1LDE1LDE1KSxyZ2IoMTUsMTUsMTUpKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudChyZ2JhKDI1NSwyNTUsMjU1LC4yKSxyZ2JhKDI1NSwyNTUsMjU1LC4yKSksbGluZWFyLWdyYWRpZW50KHJnYigxNSwxNSwxNSkscmdiKDE1LDE1LDE1KSl9Lnl0cC1za2lwLWFkLWJ1dHRvbjpmb2N1c3tiYWNrZ3JvdW5kOnJnYigxNSwxNSwxNSk7b3V0bGluZTpub25lOy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0ueXRwLXNraXAtYWQtYnV0dG9uOmZvY3VzLXZpc2libGV7YmFja2dyb3VuZDojZmZmOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMCAycHggIzBmMGYwZjtib3gtc2hhZG93OjAgMCAwIDJweCAjMGYwZjBmO2NvbG9yOiMwZjBmMGZ9Lnl0cC1za2lwLWFkLWJ1dHRvbjpmb2N1cy12aXNpYmxlIC55dHAtc2tpcC1hZC1idXR0b25fX2ljb24gc3ZnIHBhdGh7ZmlsbDojMGYwZjBmfS55dHAtc2tpcC1hZC1idXR0b25fX3RleHR7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0Om5vcm1hbDtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lnl0cC1za2lwLWFkLWJ1dHRvbl9faWNvbntoZWlnaHQ6MzZweDt3aWR0aDozNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXNraXAtYWQtYnV0dG9ue2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgMTRweCk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLHJnYmEoMCwwLDAsLjYpKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXNraXAtYWQtYnV0dG9uOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXNraXAtYWQtYnV0dG9uOmhvdmVyOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJ1dHRvbi1zZWNvbmRhcnkscmdiYSgyNTUsMjU1LDI1NSwuMSkpOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtc2tpcC1hZC1idXR0b246YWN0aXZlOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LXRvbmFsLWhvdmVyLHJnYmEoMjU1LDI1NSwyNTUsLjIpKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLnl0cC1za2lwLWFkLWJ1dHRvbntib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIDE0cHggKyB2YXIoLS15dHAtZ3JpZC1wZWVrLWhlaWdodCkpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bSxyZ2JhKDAsMCwwLC42KSl9Lnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMgLnl0cC1za2lwLWFkLWJ1dHRvbiBzdmd7cGFkZGluZzo2cHh9Lnl0cC1iaWctbW9kZSAueXRwLXNraXAtYWQtYnV0dG9ue3JpZ2h0OjQwcHg7Ym90dG9tOjEwNHB4fS55dHAtYmlnLW1vZGUueXRwLWRlbGhpLW1vZGVybiAueXRwLXNraXAtYWQtYnV0dG9ue2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgMTRweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtc2tpcC1hZC1idXR0b257Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgNzJweCkgKyAxNHB4KXZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KX0ueXRwLWJpZy1tb2RlLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtc2tpcC1hZC1idXR0b257Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyAxNHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLXNtYWxsLW1vZGUgLnl0cC1za2lwLWFkLWJ1dHRvbntyaWdodDoxMnB4O2JvdHRvbTo3NXB4fS55dHAtcGxheWVyLW1pbmltaXplZC55dHAtbWVudS1zaG93biAueXRwLXNraXAtYWQtYnV0dG9ue3JpZ2h0OjE2cHg7Ym90dG9tOjM5cHh9c3ZnLnl0cC10aW1lZC1waWUtY291bnRkb3due2JhY2tncm91bmQ6bm9uZTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6MjBweDtvcGFjaXR5Oi40Oy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3dpZHRoOjIwcHh9Y2lyY2xlLnl0cC10aW1lZC1waWUtY291bnRkb3duX19iYWNrZ3JvdW5ke3N0cm9rZTpub25lO2ZpbGw6bm9uZX1jaXJjbGUueXRwLXRpbWVkLXBpZS1jb3VudGRvd25fX2lubmVye2ZpbGw6bm9uZTtzdHJva2Utd2lkdGg6MTBweDtzdHJva2U6cmdiYSgyNTUsMjU1LDI1NSwuNzUpfWNpcmNsZS55dHAtdGltZWQtcGllLWNvdW50ZG93bl9fb3V0ZXJ7ZmlsbDpub25lO3N0cm9rZS13aWR0aDoxO3N0cm9rZTpyZ2JhKDI1NSwyNTUsMjU1LC43NSl9Lnl0cC12aXNpdC1hZHZlcnRpc2VyLWxpbmt7Y29sb3I6I2ZmZjtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7ZGlzcGxheTppbmxpbmUtZmxleDttYXJnaW4tbGVmdDoxNnB4O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LWFsaWduOmJhc2VsaW5lOy13ZWJraXQtYWxpZ24taXRlbXM6YmFzZWxpbmU7YWxpZ24taXRlbXM6YmFzZWxpbmV9Lnl0cC12aXNpdC1hZHZlcnRpc2VyLWxpbms6YmVmb3Jle2NvbnRlbnQ6IiI7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6LThweH0ueXRwLXZpc2l0LWFkdmVydGlzZXItbGluazpob3ZlciAueXRwLXZpc2l0LWFkdmVydGlzZXItbGlua19fdGV4dHtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lnl0cC12aXNpdC1hZHZlcnRpc2VyLWxpbmtfX3RleHR7Y29sb3I6I2ZmZjtjdXJzb3I6cG9pbnRlcjtmb250LWZhbWlseTpZb3VUdWJlIE5vdG8sUm9ib3RvLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE0cHg7b3BhY2l0eToxO3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtc2hhZG93OjAgMCAxNnB4IHJnYmEoMCwwLDAsLjUpO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS55dHAtaXYtdmlkZW8tY29udGVudHtwb3NpdGlvbjphYnNvbHV0ZX0ueXRwLWl2LXZpZGVvLWNvbnRlbnQgLnZpZGVvLWFubm90YXRpb25ze2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyMDt3aWR0aDoxMDAlfS5hbm5vdGF0aW9ue3Bvc2l0aW9uOmFic29sdXRlO2NvbG9yOiMwMDA7cGFkZGluZzo1cHg7dGV4dC1hbGlnbjpsZWZ0O3dvcmQtd3JhcDpicmVhay13b3JkO3otaW5kZXg6MDtjdXJzb3I6cG9pbnRlcjstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LnZpZGVvLWxlZ2FjeS1hbm5vdGF0aW9ucyAuYW5ub3RhdGlvbntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0uYW5ub3RhdGlvbi1jbG9zZS1idXR0b257LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MTZweDtsZWZ0OjA7b3BhY2l0eTouODU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTZweH0uYW5ub3RhdGlvbi1jbG9zZS1idXR0b246aG92ZXJ7b3BhY2l0eToxfS5hbm5vdGF0aW9uLWxpbmstaWNvbnstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtc2l6ZTpjb250YWluO3Bvc2l0aW9uOmFic29sdXRlfS5hbm5vdGF0aW9uLXR5cGUtY3VzdG9te3BhZGRpbmc6MDtjdXJzb3I6ZGVmYXVsdH0uYW5ub3RhdGlvbi10eXBlLWN1c3RvbT5kaXZ7ZmxvYXQ6bGVmdDtwYWRkaW5nOjA7b3ZlcmZsb3c6aGlkZGVufS5pdi1jbGljay10YXJnZXR7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1hZC1vdmVybGF5LW9wZW4gLml2LWJyYW5kaW5nLC55dHAtYWQtb3ZlcmxheS1vcGVuIC5pdi1wcm9tb3tkaXNwbGF5Om5vbmV9Lml2LWJyYW5kaW5ne2JvdHRvbTowO3JpZ2h0OjA7ei1pbmRleDozMDtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5Oi4zM3M7dHJhbnNpdGlvbi1kZWxheTouMzNzfS55dHAtaXYtZHJhd2VyLW9wZW4gLml2LWJyYW5kaW5ne29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lml2LWJyYW5kaW5nIC5icmFuZGluZy1jb250ZXh0LWNvbnRhaW5lci1vdXRlcntib3R0b206MDtmbG9hdDpsZWZ0O3BhZGRpbmctcmlnaHQ6MTBweDtwb3NpdGlvbjphYnNvbHV0ZX0uaXYtYnJhbmRpbmcgLmJyYW5kaW5nLWNvbnRleHQtY29udGFpbmVyLWlubmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyOCwyOCwyOCwuOSk7Ym90dG9tOjA7Y29sb3I6I2VlZTttYXgtd2lkdGg6MjQ2cHg7b3BhY2l0eTowO3JpZ2h0OjA7d2hpdGUtc3BhY2U6bm93cmFwO2JvcmRlci1yYWRpdXM6OHB4Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0uaXYtYnJhbmRpbmctYWN0aXZlIC5icmFuZGluZy1jb250ZXh0LWNvbnRhaW5lci1pbm5lcntvcGFjaXR5OjE7Ym9yZGVyLXJhZGl1czo4cHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lml2LWJyYW5kaW5nIC5icmFuZGluZy1pbWctY29udGFpbmVyIGltZ3tkaXNwbGF5OmJsb2NrO29wYWNpdHk6Ljc7cG9zaXRpb246cmVsYXRpdmV9Lml2LWJyYW5kaW5nIC5icmFuZGluZy1pbWctY29udGFpbmVye2Zsb2F0OnJpZ2h0fS5pdi1icmFuZGluZyBpbWcuaXYtY2xpY2stdGFyZ2V0OmhvdmVye29wYWNpdHk6MX0uaXYtYnJhbmRpbmcgLml2LWJyYW5kaW5nLWNvbnRleHQtbmFtZXttYXgtd2lkdGg6MjE1cHg7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW47cGFkZGluZzoxMHB4IDEwcHggNXB4fS5pdi1icmFuZGluZyAuaXYtYnJhbmRpbmctY29udGV4dC1zdWJzY3JpYmV7cGFkZGluZzowIDEwcHggMTBweDtmb250LXNpemU6MTFweDtjb2xvcjojYWFhfS5pdi1icmFuZGluZyAuaXYtYnJhbmRpbmctY29udGV4dC1zdWJzY3JpYmUtY2FyZXR7ZGlzcGxheTpub25lfS55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtb3ZlcmxheS1ib3R0b20tcmlnaHQgLml2LWJyYW5kaW5ne3Bvc2l0aW9uOnJlbGF0aXZlO2luc2V0OjB9Lml2LXByb21vLC5pdi1wcm9tbyAuaXYtcHJvbW8tYWN0aW9ucywuaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzLC5pdi1wcm9tbyAuaXYtcHJvbW8tY29udGVudHM+YSwuaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzPmRpdiwuaXYtcHJvbW8gLml2LXByb21vLWltZywuaXYtcHJvbW8gLml2LXByb21vLWltZyBpbWd7aGVpZ2h0OjQwcHh9Lml2LXByb21ve2JvdHRvbTo2MXB4O2xlZnQ6MDt6LWluZGV4OjMxO21heC13aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOCk7Y29sb3I6I2NjYztmb250LXNpemU6MTFweDt3aGl0ZS1zcGFjZTpub3dyYXA7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtZW1iZWQgLml2LXByb21ve2JvdHRvbTo1M3B4fS55dHAtYmlnLW1vZGUgLml2LXByb21ve2JvdHRvbTo3MHB4fS5odG1sNS12aWRlby1wbGF5ZXIuYWQtc2hvd2luZyAuaXYtcHJvbW97Ym90dG9tOjg2cHh9Lnl0cC1lbWJlZC5odG1sNS12aWRlby1wbGF5ZXIuYWQtc2hvd2luZyAuaXYtcHJvbW97Ym90dG9tOjc4cHh9Lmh0bWw1LXZpZGVvLXBsYXllci55dHAtYmlnLW1vZGUuYWQtc2hvd2luZyAuaXYtcHJvbW97Ym90dG9tOjk1cHh9Lml2LXByb21vOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOSl9Lml2LXByb21vIC5pdi1wcm9tby1jb250ZW50cz5hLC5pdi1wcm9tbyAuaXYtcHJvbW8tY29udGVudHM+ZGl2LC5pdi1wcm9tbz5kaXZ7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxvYXQ6bm9uZSFpbXBvcnRhbnQ7dmVydGljYWwtYWxpZ246bWlkZGxlOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzPmF7Y29sb3I6I2NjY30uaXYtcHJvbW8uaXYtcHJvbW8taW5hY3RpdmV7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfS5pdi1wcm9tbyAuaXYtcHJvbW8taW1ne2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZX0uaXYtcHJvbW8gLml2LXByb21vLWltZywuaXYtcHJvbW8gLml2LXByb21vLWltZyBpbWd7ei1pbmRleDoxO3dpZHRoOjQwcHh9Lml2LXByb21vIC5pdi1wcm9tby1jb250ZW50cyAuaXYtcHJvbW8tdHh0IHAsLml2LXByb21vIC5pdi1wcm9tby1jb250ZW50cyAuaXYtcHJvbW8tdHh0IHN0cm9uZywuaXYtcHJvbW8gLml2LXByb21vLWltZyAuaXYtcHJvbW8tcGxheWxpc3QtbGVuZ3RoLC5pdi1wcm9tbyAuaXYtcHJvbW8taW1nIC5pdi1wcm9tby12aWRlby1kdXJhdGlvbntvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby1iYWRnZS1saXZle21hcmdpbjo0cHggOHB4IDA7Ym9yZGVyOjFweCBzb2xpZCAjZmZmO2JhY2tncm91bmQtY29sb3I6I2U2MjExNztjb2xvcjojZmZmfS5pdi1wcm9tbyAuaXYtcHJvbW8taW1nIC5pdi1wcm9tby1wbGF5bGlzdC1sZW5ndGgsLml2LXByb21vIC5pdi1wcm9tby1pbWcgLml2LXByb21vLXZpZGVvLWR1cmF0aW9ue3Bvc2l0aW9uOmFic29sdXRlfS5pdi1wcm9tbyAuaXYtcHJvbW8taW1nIC5pdi1wcm9tby1wbGF5bGlzdC1sZW5ndGh7dG9wOjA7cmlnaHQ6MDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMjUpO3dpZHRoOjMwcHg7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KTtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDo0MHB4fS5pdi1wcm9tbyAuaXYtcHJvbW8taW1nIC5pdi1wcm9tby12aWRlby1kdXJhdGlvbntib3R0b206MnB4O3JpZ2h0OjJweDtwYWRkaW5nOjNweCAycHg7bWF4LXdpZHRoOjMycHg7YmFja2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNmZmY7Zm9udC1zaXplOjEwcHh9Lml2LXByb21vIC5pdi1wcm9tby1jb250ZW50c3twYWRkaW5nLXJpZ2h0OjMxcHg7d2lkdGg6MTAwJTttYXgtd2lkdGg6MzExcHg7LXdlYmtpdC10cmFuc2l0aW9uOm1heC13aWR0aCAuMnMgZWFzZS1vdXQscGFkZGluZy1yaWdodCAuMnMgZWFzZS1vdXQ7dHJhbnNpdGlvbjptYXgtd2lkdGggLjJzIGVhc2Utb3V0LHBhZGRpbmctcmlnaHQgLjJzIGVhc2Utb3V0fS5pdi1wcm9tbyAuaXYtcHJvbW8taW1nKy5pdi1wcm9tby1jb250ZW50c3twYWRkaW5nLWxlZnQ6NDBweDttYXgtd2lkdGg6MzUxcHh9Lml2LXByb21vIC5pdi1wcm9tby1jb250ZW50cyAuaXYtcHJvbW8tYnV0dG9uLWNvbnRhaW5lciwuaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHR7ZGlyZWN0aW9uOmx0cjttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZH0uaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHQgcHttYXJnaW46M3B4IDhweCAtNHB4O2xpbmUtaGVpZ2h0OjE4cHh9Lml2LXByb21vIC5pdi1wcm9tby1jb250ZW50cyAuaXYtcHJvbW8tdHh0IHN0cm9uZ3tjb2xvcjojZmZmO2ZvbnQtc2l6ZToxMnB4fS5pdi1wcm9tby10eHQgcCBzcGFuLC5pdi1wcm9tby10eHQgcCBzdHJvbmd7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOjI2NHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5pdi1wcm9tby13aXRoLWJ1dHRvbiAuaXYtcHJvbW8tdHh0IHAgc3BhbiwuaXYtcHJvbW8td2l0aC1idXR0b24gLml2LXByb21vLXR4dCBwIHN0cm9uZ3ttYXgtd2lkdGg6MTg0cHh9Lml2LXByb21vLXR4dCBwOmZpcnN0LWNoaWxkIHNwYW4sLml2LXByb21vLXR4dCBwOmZpcnN0LWNoaWxkIHN0cm9uZ3ttYXJnaW4tYm90dG9tOi02cHh9Lml2LXByb21vIC5pdi1wcm9tby1jb250ZW50cyAuaXYtcHJvbW8tdHh0IC5pdi1wcm9tby1saW5re3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctcmlnaHQ6MjBweDttYXgtd2lkdGg6MjQ0cHg7Y29sb3I6I2ZmZDEwMH0uaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHQgLml2LXByb21vLWxpbms6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDowO29wYWNpdHk6LjU7Y29udGVudDoiIn0uaXYtcHJvbW8gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHQ6aG92ZXIgLml2LXByb21vLWxpbms6YWZ0ZXJ7b3BhY2l0eToxfS5pdi1wcm9tby1idXR0b24tY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjMxcHh9Lml2LWJ1dHRvbntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MjhweDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O3BhZGRpbmc6MCAxMHB4O291dGxpbmU6MDtmb250LWZhbWlseTpZb3VUdWJlIE5vdG8sUm9ib3RvLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxMXB4O3RleHQtZGVjb3JhdGlvbjpub25lO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO2xpbmUtaGVpZ2h0Om5vcm1hbDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Y3Vyc29yOnBvaW50ZXI7Km92ZXJmbG93OnZpc2libGU7Ym9yZGVyLXJhZGl1czoycHg7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDAgcmdiYSgwLDAsMCwuMDUpO2JveC1zaGFkb3c6MCAxcHggMCByZ2JhKDAsMCwwLC4wNSk7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5pdi1idXR0b246aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lml2LWJ1dHRvbjpmb2N1cywuaXYtYnV0dG9uOmZvY3VzOmhvdmVyey13ZWJraXQtYm94LXNoYWRvdzowIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC40KTtib3gtc2hhZG93OjAgMCAwIDJweCByZ2JhKDI3LDEyNywyMDQsLjQpfS5uby1mb2N1cy1vdXRsaW5lIC55dC11aXgtYnV0dG9uOmZvY3VzLC5uby1mb2N1cy1vdXRsaW5lIC55dC11aXgtYnV0dG9uOmZvY3VzOmhvdmVyey13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0uaXYtYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowO3BhZGRpbmc6MH0uaXYtYnV0dG9uW2Rpc2FibGVkXSwuaXYtYnV0dG9uW2Rpc2FibGVkXTphY3RpdmUsLml2LWJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsLml2LWJ1dHRvbltkaXNhYmxlZF06aG92ZXJ7b3BhY2l0eTouNTtjdXJzb3I6YXV0bzstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmV9Lml2LWJ1dHRvbiwuaXYtYnV0dG9uW2Rpc2FibGVkXSwuaXYtYnV0dG9uW2Rpc2FibGVkXTphY3RpdmUsLml2LWJ1dHRvbltkaXNhYmxlZF06Zm9jdXMsLml2LWJ1dHRvbltkaXNhYmxlZF06aG92ZXJ7Ym9yZGVyLWNvbG9yOiMxNjdhYzY7YmFja2dyb3VuZDojMTY3YWM2O2NvbG9yOiNmZmZ9Lml2LWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kOiMxMjZkYjN9Lml2LWJ1dHRvbjphY3RpdmV7YmFja2dyb3VuZDojMDk1Yjk5Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMCwwLDAsLjUpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDAsMCwwLC41KX0uaXYtYnV0dG9uIC5pdi1idXR0b24tY29udGVudHtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc31hLml2LWJ1dHRvbjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtoZWlnaHQ6MTAwJX0uaXYtcHJvbW8tYnV0dG9ue3dpZHRoOjY0cHg7bWFyZ2luOjZweCA4cHh9Lml2LXByb21vIC5pdi1wcm9tby1hY3Rpb25zLC5pdi1wcm9tbyAuaXYtcHJvbW8tYWN0aW9ucyAuaXYtcHJvbW8tY2xvc2UsLml2LXByb21vIC5pdi1wcm9tby1hY3Rpb25zIC5pdi1wcm9tby1leHBhbmR7dG9wOjA7cmlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZX0uaXYtcHJvbW8gLml2LXByb21vLWFjdGlvbnN7d2lkdGg6MzFweH0uaXYtcHJvbW8gLml2LXByb21vLWFjdGlvbnMgLml2LXByb21vLWNsb3NlLC5pdi1wcm9tbyAuaXYtcHJvbW8tYWN0aW9ucyAuaXYtcHJvbW8tZXhwYW5ke2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLW91dDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2Utb3V0fS5pdi1wcm9tbyAuaXYtcHJvbW8tYWN0aW9ucyAuaXYtcHJvbW8tY2xvc2U6YWZ0ZXIsLml2LXByb21vIC5pdi1wcm9tby1hY3Rpb25zIC5pdi1wcm9tby1leHBhbmQ6YWZ0ZXJ7ZGlzcGxheTpibG9jaztjb250ZW50OiIifS5pdi1wcm9tbyAuaXYtcHJvbW8tYWN0aW9ucyAuaXYtcHJvbW8tY2xvc2V7b3BhY2l0eToxfS5pdi1wcm9tbyAuaXYtcHJvbW8tYWN0aW9ucyAuaXYtcHJvbW8tY2xvc2U6YWZ0ZXJ7bWFyZ2luOjE2cHggMTBweCAxNXB4IDEycHg7b3BhY2l0eTouNX0uaXYtcHJvbW8gLml2LXByb21vLWFjdGlvbnMgLml2LXByb21vLWV4cGFuZDphZnRlcnttYXJnaW46MTZweCAxMnB4IDE1cHh9Lml2LXByb21vLml2LXByb21vLXZpZGVvIC5pdi1wcm9tby1pbWcsLml2LXByb21vLml2LXByb21vLXZpZGVvIC5pdi1wcm9tby1pbWcgaW1ne3dpZHRoOjcxcHh9Lml2LXByb21vLml2LXByb21vLXZpZGVvIC5pdi1wcm9tby1pbWcrLml2LXByb21vLWNvbnRlbnRze3BhZGRpbmctbGVmdDo3MXB4O21heC13aWR0aDozODJweH0uaXYtcHJvbW8uaXYtcHJvbW8td2l0aC1idXR0b24gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHR7cGFkZGluZy1yaWdodDo4MHB4fS5pdi1wcm9tby5pdi1wcm9tby1jb2xsYXBzZWQgLml2LXByb21vLWFjdGlvbnMgLml2LXByb21vLWNsb3NlLC5pdi1wcm9tby5pdi1wcm9tby1jb2xsYXBzZWQgLml2LXByb21vLWFjdGlvbnMgLml2LXByb21vLWV4cGFuZCwuaXYtcHJvbW8uaXYtcHJvbW8tY29sbGFwc2VkIC5pdi1wcm9tby1jb250ZW50c3std2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbjstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6LjVzO3RyYW5zaXRpb24tZGVsYXk6LjVzfS5pdi1wcm9tby5pdi1wcm9tby1jb2xsYXBzZWQgLml2LXByb21vLWNvbnRlbnRze3BhZGRpbmctcmlnaHQ6MjhweDttYXgtd2lkdGg6MCFpbXBvcnRhbnR9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLWxhcmdlci11aXtsZWZ0OjE2cHh9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLWxhcmdlci11aSAuaXYtcHJvbW8tY29udGVudHMgLml2LXByb21vLXR4dHtwYWRkaW5nLWxlZnQ6NjBweH0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtbGFyZ2VyLXVpIC5pdi1wcm9tby1idXR0b24tY29udGFpbmVye2xpbmUtaGVpZ2h0OjY0cHh9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLWxhcmdlci11aSwueXRwLWxhcmdlLXdpZHRoLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtbGFyZ2VyLXVpIC5pdi1wcm9tby1jb250ZW50cywueXRwLWxhcmdlLXdpZHRoLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtbGFyZ2VyLXVpIC5pdi1wcm9tby1jb250ZW50cz5hLC55dHAtbGFyZ2Utd2lkdGgtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1sYXJnZXItdWkgLml2LXByb21vLWNvbnRlbnRzPmRpdntoZWlnaHQ6NjRweH0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtbGFyZ2VyLXVpIC5pdi1wcm9tby1idXR0b257bWluLXdpZHRoOjExMHB4O2hlaWdodDozNnB4fS55dHAtbGFyZ2Utd2lkdGgtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1sYXJnZXItdWkgLml2LXByb21vLWltZ3t0b3A6NnB4O2xlZnQ6NnB4fS55dHAtbGFyZ2Utd2lkdGgtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1sYXJnZXItdWkgLml2LXByb21vLWltZywueXRwLWxhcmdlLXdpZHRoLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtbGFyZ2VyLXVpIC5pdi1wcm9tby1pbWcgaW1ne2hlaWdodDo1MnB4O3dpZHRoOjUycHh9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLWxhcmdlci11aSAuaXYtcHJvbW8tY29udGVudHMgLml2LXByb21vLXR4dCBzdHJvbmd7Zm9udC1zaXplOjE2cHg7cGFkZGluZy10b3A6NHB4fS55dHAtbGFyZ2Utd2lkdGgtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1sYXJnZXItdWkgLml2LXByb21vLWJ1dHRvbntmb250LXNpemU6MTVweH0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtbGFyZ2VyLXVpIC5pdi1wcm9tby1jb250ZW50cyAuaXYtcHJvbW8tdHh0IC5pdi1wcm9tby1saW5re2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjEycHh9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLWxhcmdlci11aSAuaXYtcHJvbW8tY29udGVudHMgLml2LXByb21vLXR4dHttaW4td2lkdGg6MjIwcHh9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLWxhcmdlci11aSAuaXYtcHJvbW8tcm91bmQtZXhwYW5kLWljb257dG9wOjM4cHg7bGVmdDo0MnB4fS55dHAtbGFyZ2Utd2lkdGgtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1sYXJnZXItdWkgLml2LXByb21vLWJ1dHRvbnttYXJnaW46MCAxMnB4IDAgMH0uaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbnt0ZXh0LWFsaWduOmxlZnQ7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtsZWZ0OjEycHh9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8taW1nKy5pdi1wcm9tby1jb250ZW50c3ttYXgtd2lkdGg6NDAwcHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTtib3JkZXItcmFkaXVzOjJweDtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjA7d2lkdGg6MTAwJTstd2Via2l0LXRyYW5zaXRpb246d2lkdGggLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSkgLjVzLG1heC13aWR0aCAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOndpZHRoIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpIC41cyxtYXgtd2lkdGggLjJzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24uaXYtcHJvbW8tY29sbGFwc2VkIC5pdi1wcm9tby1pbWcrLml2LXByb21vLWNvbnRlbnRzey13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTouNXM7dHJhbnNpdGlvbi1kZWxheTouNXN9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ246aG92ZXIgLml2LXByb21vLWNvbnRlbnRze2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KX0uaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbi5pdi1wcm9tby1jb2xsYXBzZWQgLml2LXByb21vLWNvbnRlbnRze3BhZGRpbmctcmlnaHQ6MH0uaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8tY29udGVudHMgLml2LXByb21vLXR4dHttYXgtd2lkdGg6MjUwcHg7cGFkZGluZy10b3A6MTBweDtwYWRkaW5nLWxlZnQ6NTJweH0uaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8tY29udGVudHMgLml2LXByb21vLXR4dCBwe2xpbmUtaGVpZ2h0OjE2cHg7bWFyZ2luLXRvcDowfS5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLXJlZGVzaWduIC5pdi1wcm9tby1idXR0b24tY29udGFpbmVye2RpcmVjdGlvbjpsdHI7bWF4LXdpZHRoOjE1MHB4O2xpbmUtaGVpZ2h0OjU2cHg7cG9zaXRpb246c3RhdGljfS5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLXJlZGVzaWduIC5pdi1wcm9tby1idXR0b257bWF4LXdpZHRoOjE0MHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3dpZHRoOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbjowIDhweCAwIDB9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWFjdGlvbnMsLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHQgLml2LXByb21vLWxpbms6YWZ0ZXJ7ZGlzcGxheTpub25lfS5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLXJlZGVzaWduLC5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLXJlZGVzaWduIC5pdi1wcm9tby1jb250ZW50cywuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8tY29udGVudHM+YSwuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8tY29udGVudHM+ZGl2e2RpcmVjdGlvbjpsdHI7aGVpZ2h0OjU2cHh9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWltZ3toZWlnaHQ6NDhweDt3aWR0aDo0OHB4O3RvcDo0cHg7bGVmdDo0cHg7b3ZlcmZsb3c6dmlzaWJsZTstd2Via2l0LXRyYW5zZm9ybTpub25lOy1tcy10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWltZyBpbWd7aGVpZ2h0OjQ4cHg7d2lkdGg6NDhweH0uaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbi5pdi1wcm9tby1jb2xsYXBzZWQgLml2LXByb21vLXJvdW5kLWV4cGFuZC1pY29ue29wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMTVzIGN1YmljLWJlemllcigwLDAsLjIsMSkgLjlzO3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIGN1YmljLWJlemllcigwLDAsLjIsMSkgLjlzfS5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLXJlZGVzaWduIC5pdi1wcm9tby1yb3VuZC1leHBhbmQtaWNvbntwb3NpdGlvbjphYnNvbHV0ZTtwYWRkaW5nLWxlZnQ6MDt6LWluZGV4Ojg1MDtoZWlnaHQ6MThweDt3aWR0aDoxOHB4O2JvcmRlci1yYWRpdXM6NTAlO3RvcDozNHB4O2xlZnQ6MzhweDtiYWNrZ3JvdW5kLWNvbG9yOiM0Njg4ZjE7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAycHggMCByZ2JhKDAsMCwwLC4xMiksMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMjQpO2JveC1zaGFkb3c6MCAwIDJweCAwIHJnYmEoMCwwLDAsLjEyKSwwIDJweCAycHggMCByZ2JhKDAsMCwwLC4yNCk7b3BhY2l0eTowfS5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLXJlZGVzaWduIC5pdi1wcm9tby1yb3VuZC1leHBhbmQtaWNvbjphZnRlcntkaXNwbGF5OmJsb2NrO2NvbnRlbnQ6IiJ9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHQgc3Ryb25ne2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmctdG9wOjJweDtjb2xvcjojMzMzfS5pdi1wcm9tby13ZWJzaXRlLWNhcmQtY3RhLXJlZGVzaWduIC5pdi1wcm9tby1jb250ZW50cyAuaXYtcHJvbW8tdHh0IC5pdi1wcm9tby1saW5re3BhZGRpbmc6OHB4IDIwcHggMCAwO2ZvbnQtc2l6ZToxM3B4O2NvbG9yOiM3Njc2NzZ9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24uaXYtcHJvbW8taW5hY3RpdmUgLml2LXByb21vLWNvbnRlbnRze3dpZHRoOjB9Lml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24uaXYtcHJvbW8taW5hY3RpdmUsLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24uaXYtcHJvbW8taW5hY3RpdmUgLml2LXByb21vLWltZ3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKX0uaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbi5pdi1wcm9tby1pbmFjdGl2ZSAuaXYtcHJvbW8tcm91bmQtZXhwYW5kLWljb257ZGlzcGxheTpub25lfS55dHAtc21hbGwtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiwueXRwLXNtYWxsLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWNvbnRlbnRzLC55dHAtc21hbGwtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8tY29udGVudHM+YSwueXRwLXNtYWxsLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWNvbnRlbnRzPmRpdntoZWlnaHQ6NDBweH0ueXRwLXNtYWxsLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWltZywueXRwLXNtYWxsLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWltZyBpbWd7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweH0ueXRwLXNtYWxsLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHR7cGFkZGluZzo0cHggNHB4IDRweCA0MHB4fS55dHAtc21hbGwtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8tY29udGVudHMgLml2LXByb21vLXR4dCBzdHJvbmd7cGFkZGluZy10b3A6MDtmb250LXNpemU6MTJweH0ueXRwLXNtYWxsLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWNvbnRlbnRzIC5pdi1wcm9tby10eHQgLml2LXByb21vLWxpbmt7cGFkZGluZy10b3A6NHB4O2ZvbnQtc2l6ZToxMXB4fS55dHAtc21hbGwtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8tcm91bmQtZXhwYW5kLWljb257dG9wOjI2cHg7bGVmdDozMHB4fS55dHAtc21hbGwtbW9kZSAuaXYtcHJvbW8td2Vic2l0ZS1jYXJkLWN0YS1yZWRlc2lnbiAuaXYtcHJvbW8taW1ne3RvcDowO2xlZnQ6MH0ueXRwLXNtYWxsLW1vZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24gLml2LXByb21vLWJ1dHRvbi1jb250YWluZXJ7ZGlzcGxheTpub25lfS55dHAtYXV0b2hpZGUgLml2LXByb21vLXdlYnNpdGUtY2FyZC1jdGEtcmVkZXNpZ24uaXYtcHJvbW8tY29sbGFwc2VkIC5pdi1wcm9tby1pbWd7b3BhY2l0eTouODstd2Via2l0LXRyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSkgLjhzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSkgLjhzfS5pdi1kcmF3ZXIsLml2LWRyYXdlci1jb250ZW50LC5pdi1kcmF3ZXItaGVhZGVye3Bvc2l0aW9uOmFic29sdXRlfS5pdi1kcmF3ZXJ7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDt6LWluZGV4OjMzO3dpZHRoOjE3N3B4O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMik7Y29sb3I6I2ZmZjtmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxMnB4Oy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMzNzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjMzcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4zM3MgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0uaXYtZHJhd2VyLXNtYWxsLml2LWRyYXdlcnt3aWR0aDoxMzNweH0uaXYtZHJhd2VyLWJpZy5pdi1kcmF3ZXJ7Zm9udC1zaXplOjIwcHg7bGluZS1oZWlnaHQ6MjRweDt3aWR0aDoyOTVweH1bZGlyPWx0cl0gLml2LWRyYXdlcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDE3N3B4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTc3cHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDE3N3B4KX1bZGlyPXJ0bF0gLml2LWRyYXdlcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xNzdweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xNzdweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTE3N3B4KX0ueXRwLWF1dG9oaWRlLnl0cC1lbWJlZC1vdmVybGF5cy1hdXRvaGlkZSAuaXYtZHJhd2Vye29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1hdXRvaGlkZTpub3QoLnl0cC1hdXRvaGlkZS1hY3RpdmUpLnl0cC1lbWJlZC1vdmVybGF5cy1hdXRvaGlkZSAuaXYtZHJhd2Vye2Rpc3BsYXk6bm9uZX0uaXYtZHJhd2VyLWNvbnRlbnQgKnt0ZXh0LWFsaWduOmxlZnR9Lnl0cC1pdi1kcmF3ZXItb3BlbiAuaXYtZHJhd2Vyey13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMzNzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjMzcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4zM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX0uaXYtZHJhd2VyLWhlYWRlcnt0b3A6MDtwYWRkaW5nOjE2cHggMzJweCAwIDE2cHg7d2lkdGg6MTc3cHg7aGVpZ2h0OjQxcHh9Lml2LWRyYXdlci1zbWFsbCAuaXYtZHJhd2VyLWhlYWRlcntwYWRkaW5nOjlweCAyNHB4IDAgMTJweDtoZWlnaHQ6MjhweDt3aWR0aDoxMzNweH0uaXYtZHJhd2VyLWJpZyAuaXYtZHJhd2VyLWhlYWRlcntwYWRkaW5nOjIwcHggNDhweCAwIDMycHg7aGVpZ2h0OjY0cHg7d2lkdGg6Mjk1cHh9Lml2LWRyYXdlci1oZWFkZXItdGV4dHtmb250LXdlaWdodDo1MDA7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uaHRtbDUtdmlkZW8tcGxheWVyIC5pdi1kcmF3ZXItaGVhZGVyey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uaXYtZHJhd2VyLWNvbnRlbnR7dG9wOjQxcHg7Ym90dG9tOjA7Ym9yZGVyLXRvcDoxcHggc29saWQgdHJhbnNwYXJlbnQ7cGFkZGluZzowIDE2cHg7d2lkdGg6MTQ1cHg7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2RpcmVjdGlvbjpsdHI7dGV4dC1hbGlnbjpsZWZ0fS5pdi1kcmF3ZXItc21hbGwgLml2LWRyYXdlci1jb250ZW50e3BhZGRpbmc6MCAxMnB4O3RvcDoyOHB4O3dpZHRoOjEwOXB4fS5pdi1kcmF3ZXItYmlnIC5pdi1kcmF3ZXItY29udGVudHtwYWRkaW5nOjAgMzJweDt0b3A6NjRweDt3aWR0aDoyMzFweH0uaXYtZHJhd2VyLXNjcm9sbGVkIC5pdi1kcmF3ZXItY29udGVudHtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNCl9Lml2LWRyYXdlci1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3dpZHRoOjE2cHh9Lml2LWRyYXdlci1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYntib3JkZXI6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQtY2xpcDpjb250ZW50LWJveDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAyLDEwMiwxMDIsLjUpfS5pdi1kcmF3ZXItY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ueXRwLWF1dG9oaWRlIC5pdi1kcmF3ZXItY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uaXYtZHJhd2VyLWNvbnRlbnQ6aG92ZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY29sb3I6IzY2NiFpbXBvcnRhbnR9Lml2LWRyYXdlci1jbG9zZS1idXR0b257cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtwYWRkaW5nOjE2cHg7b3BhY2l0eTouNzU7Y3Vyc29yOnBvaW50ZXJ9Lml2LWRyYXdlci1zbWFsbCAuaXYtZHJhd2VyLWNsb3NlLWJ1dHRvbntwYWRkaW5nOjhweH0uaXYtZHJhd2VyLWJpZyAuaXYtZHJhd2VyLWNsb3NlLWJ1dHRvbntwYWRkaW5nOjI0cHh9Lml2LWRyYXdlci1jbG9zZS1idXR0b246YWZ0ZXJ7ZGlzcGxheTpibG9jaztjb250ZW50OiIifS5pdi1kcmF3ZXItY2xvc2UtYnV0dG9uOmhvdmVye29wYWNpdHk6MX0uaXYtY2FyZCwuaXYtY2FyZCBhLml2LWNsaWNrLXRhcmdldCwuaXYtY2FyZCBhLml2LWNsaWNrLXRhcmdldDpmb2N1cywuaXYtY2FyZCBhLml2LWNsaWNrLXRhcmdldDpob3ZlcntkaXNwbGF5OmJsb2NrO2NvbG9yOiM3Njc2NzY7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lml2LWNhcmR7bWFyZ2luLWJvdHRvbToxNnB4O3dpZHRoOjE0NXB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7cG9zaXRpb246cmVsYXRpdmU7d29yZC13cmFwOmJyZWFrLXdvcmQ7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC4yKTtib3gtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC4yKTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXJhZGl1czo4cHh9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZHt3aWR0aDoxMDlweH0uaXYtZHJhd2VyLWJpZyAuaXYtY2FyZHt3aWR0aDoyMzFweH0uaXYtY2FyZDpob3ZlciAuaXYtY2FyZC1wcmltYXJ5LWxpbmt7Y29sb3I6IzE2N2FjNiFpbXBvcnRhbnR9Lml2LWNhcmQgaDIsLml2LWNhcmQtYWN0aW9ue2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS53ZWJraXQgLml2LWNhcmQgaDI6YWZ0ZXIsLndlYmtpdCAuaXYtY2FyZC1hY3Rpb246YWZ0ZXJ7Y29udGVudDoi4oCMIjtwb3NpdGlvbjpzdGF0aWM7dmlzaWJpbGl0eTpoaWRkZW59Lml2LWNhcmQgaDJ7bWFyZ2luOjAgMCA4cHg7LXdlYmtpdC1saW5lLWNsYW1wOjY7bWF4LWhlaWdodDo5MHB4O2NvbG9yOiMzMzM7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE1cHh9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZCBoMntmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxMnB4O21heC1oZWlnaHQ6NzJweH0uaXYtZHJhd2VyLWJpZyAuaXYtY2FyZCBoMntmb250LXNpemU6MjBweDtsaW5lLWhlaWdodDoyNHB4O21heC1oZWlnaHQ6MTQ0cHh9Lml2LWNhcmQgLml2LWNhcmQtYWN0aW9uLC5pdi1jYXJkIC5pdi1jYXJkLW1ldGEtaW5mbywuaXYtY2FyZCBwe21hcmdpbjotNnB4IDAgMnB4fS5pdi1jYXJkLW1ldGEtaW5mb3tsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowfS5pdi1jYXJkLWltYWdle3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlMmUyZTI7d2lkdGg6MTQ1cHg7aGVpZ2h0OjE0NXB4O2JhY2tncm91bmQ6I2YxZjFmMSBuby1yZXBlYXQgNTAlOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3Zlcjtjb2xvcjojZmZmfS5pdi1kcmF3ZXItc21hbGwgLml2LWNhcmQtaW1hZ2V7d2lkdGg6MTA5cHg7aGVpZ2h0OjEwOXB4fS5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLWltYWdle3dpZHRoOjIzMXB4O2hlaWdodDoyMzFweH0uaXYtY2FyZC1pbWFnZS10ZXh0e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3BhZGRpbmc6MjBweCAxMHB4IDhweDt3aWR0aDoxMDAlO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLHRyYW5zcGFyZW50LHJnYmEoMCwwLDAsLjYpKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGNvbG9yLXN0b3AoMCx0cmFuc3BhcmVudCksdG8ocmdiYSgwLDAsMCwuNikpKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdHJhbnNwYXJlbnQgMCxyZ2JhKDAsMCwwLC42KSk7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5pdi1kcmF3ZXItc21hbGwgLml2LWNhcmQtaW1hZ2UtdGV4dHtmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxMnB4O3BhZGRpbmc6NnB4IDhweH0uaXYtZHJhd2VyLWJpZyAuaXYtY2FyZC1pbWFnZS10ZXh0e2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjIwcHg7cGFkZGluZzoxMnB4IDE2cHh9Lml2LWNhcmQtaW1hZ2UtdGV4dCAueXQtYmFkZ2V7bWFyZ2luLXJpZ2h0OjVweH0uaXYtY2FyZC1jb250ZW50e3BhZGRpbmc6OHB4IDEwcHh9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC1jb250ZW50e3BhZGRpbmc6NnB4IDhweH0uaXYtZHJhd2VyLWJpZyAuaXYtY2FyZC1jb250ZW50e3BhZGRpbmc6MTJweCAxNnB4fS5pdi1jYXJkLWNvbnRlbnQ+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uaXYtY2FyZC1jb250ZW50PjpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0uaXYtY2FyZC1hY3Rpb24sLml2LWNhcmQtbWVzc2FnZXtmb250LXdlaWdodDo1MDB9Lml2LWNhcmQtbWVzc2FnZXttYXJnaW4tYm90dG9tOjhweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTJlMmUyO3BhZGRpbmctYm90dG9tOjhweH0uaXYtY2FyZC1hY3Rpb257LXdlYmtpdC1saW5lLWNsYW1wOjQ7bWF4LWhlaWdodDo1MnB4O3doaXRlLXNwYWNlOm5vd3JhcH0uaXYtZHJhd2VyLXNtYWxsIC5pdi1jYXJkLWFjdGlvbntmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxMnB4O21heC1oZWlnaHQ6NDhweH0uaXYtZHJhd2VyLWJpZyAuaXYtY2FyZC1hY3Rpb257Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MjBweDttYXgtaGVpZ2h0OjgwcHh9Lml2LWNhcmQtYWN0aW9uIHNwYW57d2hpdGUtc3BhY2U6bm9ybWFsfS5pdi1jYXJkLWFjdGlvbi1pY29ue3BhZGRpbmc6MCAwIDAgMzBweDttaW4taGVpZ2h0OjE0cHg7YmFja2dyb3VuZC1wb3NpdGlvbjowO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDstd2Via2l0LWJhY2tncm91bmQtc2l6ZToyNHB4IGF1dG87YmFja2dyb3VuZC1zaXplOjI0cHggYXV0b30uaXYtY2FyZC1saW5rLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2t9Lml2LWNhcmQtZXBpc29kZSBoMiwuaXYtY2FyZC1tb3ZpZSBoMiwuaXYtY2FyZC1wbGF5bGlzdCBoMiwuaXYtY2FyZC12aWRlbyBoMnstd2Via2l0LWxpbmUtY2xhbXA6MzttYXgtaGVpZ2h0OjQ1cHh9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC1lcGlzb2RlIGgyLC5pdi1kcmF3ZXItc21hbGwgLml2LWNhcmQtbW92aWUgaDIsLml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC1wbGF5bGlzdCBoMiwuaXYtZHJhd2VyLXNtYWxsIC5pdi1jYXJkLXZpZGVvIGgye21heC1oZWlnaHQ6MzZweH0uaXYtZHJhd2VyLWJpZyAuaXYtY2FyZC1lcGlzb2RlIGgyLC5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLW1vdmllIGgyLC5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLXBsYXlsaXN0IGgyLC5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLXZpZGVvIGgye21heC1oZWlnaHQ6NzJweH0uaXYtY2FyZC1jaGFubmVsIGgyey13ZWJraXQtbGluZS1jbGFtcDoyO21heC1oZWlnaHQ6MzBweH0uaXYtZHJhd2VyLXNtYWxsIC5pdi1jYXJkLWNoYW5uZWwgaDJ7bWF4LWhlaWdodDoyNHB4fS5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLWNoYW5uZWwgaDJ7bWF4LWhlaWdodDo0OHB4fS5pdi1jYXJkLWVwaXNvZGUgLml2LWNhcmQtaW1hZ2UsLml2LWNhcmQtbW92aWUgLml2LWNhcmQtaW1hZ2UsLml2LWNhcmQtcGxheWxpc3QgLml2LWNhcmQtaW1hZ2UsLml2LWNhcmQtdmlkZW8gLml2LWNhcmQtaW1hZ2V7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5pdi1jYXJkLWVwaXNvZGUgLml2LWNhcmQtaW1hZ2UsLml2LWNhcmQtcGxheWxpc3QgLml2LWNhcmQtaW1hZ2UsLml2LWNhcmQtdmlkZW8gLml2LWNhcmQtaW1hZ2V7aGVpZ2h0OjgycHh9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC1lcGlzb2RlIC5pdi1jYXJkLWltYWdlLC5pdi1kcmF3ZXItc21hbGwgLml2LWNhcmQtcGxheWxpc3QgLml2LWNhcmQtaW1hZ2UsLml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC12aWRlbyAuaXYtY2FyZC1pbWFnZXtoZWlnaHQ6NjFweH0uaXYtZHJhd2VyLWJpZyAuaXYtY2FyZC1lcGlzb2RlIC5pdi1jYXJkLWltYWdlLC5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLXBsYXlsaXN0IC5pdi1jYXJkLWltYWdlLC5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLXZpZGVvIC5pdi1jYXJkLWltYWdle2hlaWdodDoxMjlweH0uaXYtY2FyZC1tb3ZpZSAuaXYtY2FyZC1pbWFnZXtoZWlnaHQ6MjA5cHh9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC1tb3ZpZSAuaXYtY2FyZC1pbWFnZXtoZWlnaHQ6MTU3cHh9Lml2LWRyYXdlci1iaWcgLml2LWNhcmQtbW92aWUgLml2LWNhcmQtaW1hZ2V7aGVpZ2h0OjMzNXB4fS5pdi1jYXJkLXZpZGVvLWR1cmF0aW9ue3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo1cHg7cmlnaHQ6NXB4O3BhZGRpbmc6MnB4IDRweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Lml2LWNhcmQtcGxheWxpc3QgLml2LWNhcmQtaW1hZ2Utb3ZlcmxheXtkaXNwbGF5OnRhYmxlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6NjNweDtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2NvbG9yOiNjZmNmY2Y7Zm9udC1zaXplOjIwcHg7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xpbmUtaGVpZ2h0OjIxcHh9Lml2LWNhcmQtcGxheWxpc3QtdmlkZW8tY291bnR7ZGlzcGxheTp0YWJsZS1jZWxsO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uaXYtY2FyZC1wbGF5bGlzdC12aWRlby1jb3VudDphZnRlcntkaXNwbGF5OmJsb2NrO21hcmdpbjphdXRvO29wYWNpdHk6LjU7Y29udGVudDoiIn0uaXYtY2FyZC1wb2xse3Bvc2l0aW9uOnJlbGF0aXZlfS5pdi1jYXJkLXBvbGwgdWx7bWF4LXdpZHRoOjEyNXB4O2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC1wb2xsIHVse21heC13aWR0aDo4OXB4fS5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLXBvbGwgdWx7bWF4LXdpZHRoOjIxMXB4fS5pdi1jYXJkLXBvbGwgZmllbGRzZXR7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowfS5pdi1jYXJkLXBvbGwgbGFiZWx7ZGlzcGxheTpibG9jaztjdXJzb3I6cG9pbnRlcjtwYWRkaW5nLWJvdHRvbTo1cHg7bWluLWhlaWdodDoxNHB4O2JhY2tncm91bmQtcG9zaXRpb246bGVmdCAwIHRvcCA1cHg7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeE55SWdhR1ZwWjJoMFBTSXhOeUkrUEdOcGNtTnNaU0JqZUQwaU9DNDFJaUJqZVQwaU9DNDFJaUJ5UFNJM0xqWWlJR1pwYkd3OUltNXZibVVpSUhOMGNtOXJaVDBpSXpBd01DSWdjM1J5YjJ0bExXOXdZV05wZEhrOUlpNDFOQ0lnYzNSeWIydGxMWGRwWkhSb1BTSXhMamdpTHo0OEwzTjJaejQ9KTtjb2xvcjpyZ2JhKDAsMCwwLC44Nyk7LXdlYmtpdC10cmFuc2l0aW9uOmNvbG9yIC41cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246Y29sb3IgLjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1wcm9iYWJseS1rZXlib2FyZC1mb2N1cyAuaXYtY2FyZC1wb2xsIGxhYmVsLml2LWNhcmQtcG9sbC1jaG9pY2UtZm9jdXNlZHstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMnB4IHJnYmEoMjcsMTI3LDIwNCwuNCk7Ym94LXNoYWRvdzowIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC40KX0uaXYtY2FyZC1wb2xsLml2LWNhcmQtcG9sbC12b3RlZCBsYWJlbHtjb2xvcjpyZ2JhKDAsMCwwLC41NCl9Lml2LWNhcmQtcG9sbC5pdi1jYXJkLXBvbGwtdm90ZWQgbGFiZWwuaXYtY2FyZC1wb2xsLWNob2ljZS1jaGVja2Vke2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeE55SWdhR1ZwWjJoMFBTSXhOeUkrUEdOcGNtTnNaU0JqZUQwaU9DNDFJaUJqZVQwaU9DNDFJaUJ5UFNJM0xqWWlJR1pwYkd3OUltNXZibVVpSUhOMGNtOXJaVDBpSXpFMk4yRmpOaUlnYzNSeWIydGxMWGRwWkhSb1BTSXhMamdpTHo0OFkybHlZMnhsSUdONFBTSTRMalVpSUdONVBTSTRMalVpSUhJOUlqUXVNak1pSUdacGJHdzlJaU14TmpkaFl6WWlMejQ4TDNOMlp6ND0pO2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0uaXYtY2FyZC1wb2xsIGlucHV0W3R5cGU9Y2hlY2tib3hde29wYWNpdHk6MDt3aWR0aDoxN3B4O2hlaWdodDoxN3B4O21hcmdpbjo1cHggMCAwO2Zsb2F0OmxlZnR9Lml2LWNhcmQtcG9sbCAuaXYtY2FyZC1wb2xsLWNob2ljZS10ZXh0e2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWxlZnQ6MjVweDtwYWRkaW5nLXRvcDo4cHh9Lml2LWRyYXdlci1iaWcgLml2LWNhcmQtcG9sbCAuaXYtY2FyZC1wb2xsLWNob2ljZS10ZXh0e3BhZGRpbmctdG9wOjJweH0uaXYtY2FyZC1wb2xsIGxpK2xpe21hcmdpbi10b3A6OHB4fS5pdi1jYXJkLXBvbGwgLml2LWNhcmQtcG9sbC1yZXN1bHR7d2lkdGg6MTAwJTtoZWlnaHQ6NHB4O2JhY2tncm91bmQtY29sb3I6I2RmZGZkZjt2aXNpYmlsaXR5OmhpZGRlbn0uaXYtY2FyZC1wb2xsIC5pdi1jYXJkLXBvbGwtcmVzdWx0IC5pdi1jYXJkLXBvbGwtcmVzdWx0LWJhcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQtY29sb3I6IzE2N2FjNjstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnQ7LW1zLXRyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnQ7dHJhbnNmb3JtLW9yaWdpbjp0b3AgbGVmdDstd2Via2l0LXRyYW5zaXRpb246dHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS5pdi1jYXJkLXBvbGwuaXYtY2FyZC1wb2xsLWV4cGFuZGVkIC5pdi1jYXJkLXBvbGwtcmVzdWx0e3Zpc2liaWxpdHk6dmlzaWJsZX0uaXYtY2FyZC1wb2xsIC5pdi1jYXJkLXBvbGwtY2hvaWNlLXBlcmNlbnR7ZGlzcGxheTpub25lO2Zsb2F0OnJpZ2h0O21hcmdpbi1sZWZ0OjVweH0uaXYtY2FyZC1wb2xsLml2LWNhcmQtcG9sbC1leHBhbmRlZCAuaXYtY2FyZC1wb2xsLWNob2ljZS1wZXJjZW50e2Rpc3BsYXk6YmxvY2t9Lml2LWNhcmQtc2lnbi1pbnt2aXNpYmlsaXR5OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cGFkZGluZzo4cHggMTBweH0uaXYtY2FyZC1zaWduLWluIHB7bWFyZ2luOjAgMCA4cHh9Lml2LWNhcmQtc2lnbi1pbiBhe2NvbG9yOiNmZmZ9Lml2LWNhcmQtdW5hdmFpbGFibGU6aG92ZXIgLml2LWNhcmQtY29udGVudCwuaXYtY2FyZC11bmF2YWlsYWJsZTpob3ZlciAuaXYtY2xpY2stdGFyZ2V0e3Zpc2liaWxpdHk6aGlkZGVufS5pdi1jYXJkLXVuYXZhaWxhYmxlOmhvdmVyIC5pdi1jYXJkLXNpZ24taW57dmlzaWJpbGl0eTp2aXNpYmxlfS5pdi1hZC1pbmZvLWljb24tY29udGFpbmVyLC5pdi1jYXJkLXNwb25zb3JlZHtwb3NpdGlvbjpyZWxhdGl2ZX0uaXYtY2FyZC1zcG9uc29yZWR7bWFyZ2luOjAgMCA4cHg7Y29sb3I6Izk5OX0uaXYtYWQtaW5mby1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6NnB4fS5pdi1hZC1pbmZvLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dG9wOjFweH0uaXYtYWQtaW5mb3tib3R0b206MjFweDtsZWZ0OjA7cmlnaHQ6MDtib3JkZXI6MXB4IHNvbGlkICMwMDA7cGFkZGluZzo3cHg7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMwMDA7Zm9udC1zaXplOjEycHh9Lml2LWFkLWluZm8tY29udGFpbmVyIC5pdi1hZC1pbmZvIGEsLml2LWFkLWluZm8tY29udGFpbmVyIC5pdi1hZC1pbmZvIGE6aG92ZXJ7Y29sb3I6IzE2N2FjNn0uaXYtYWQtaW5mby1jb250YWluZXIgLml2LWFkLWluZm8gYTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5pdi1hZC1pbmZvLWNhbGxvdXQsLml2LWFkLWluZm8taWNvbi1jb250YWluZXI6YWZ0ZXJ7bGVmdDowO2JvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6NXB4IHNvbGlkO3dpZHRoOjA7aGVpZ2h0OjB9Lml2LWFkLWluZm8tY2FsbG91dHtib3R0b206MTZweDtib3JkZXItdG9wLWNvbG9yOiMwMDB9Lml2LWFkLWluZm8taWNvbi1jb250YWluZXI6YWZ0ZXJ7Y29udGVudDoiIjtib3R0b206MTdweDtib3JkZXItdG9wLWNvbG9yOiNmZmZ9Lml2LWFkLWluZm8sLml2LWFkLWluZm8tY2FsbG91dCwuaXYtYWQtaW5mby1pY29uLWNvbnRhaW5lcjphZnRlcnt2aXNpYmlsaXR5OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAwcyAuMXM7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIC4xc30uaXYtYWQtaW5mby1jb250YWluZXI6aG92ZXIgLml2LWFkLWluZm8sLml2LWFkLWluZm8tY29udGFpbmVyOmhvdmVyIC5pdi1hZC1pbmZvLWNhbGxvdXQsLml2LWFkLWluZm8tY29udGFpbmVyOmhvdmVyIC5pdi1hZC1pbmZvLWljb24tY29udGFpbmVyOmFmdGVye3Zpc2liaWxpdHk6dmlzaWJsZTstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6MHM7dHJhbnNpdGlvbi1kZWxheTowc30uaXYtY2FyZC1wcm9kdWN0LWxpc3RpbmcgaDJ7LXdlYmtpdC1saW5lLWNsYW1wOjM7bWF4LWhlaWdodDo0NXB4O2NvbG9yOiM2NjZ9Lml2LWRyYXdlci1zbWFsbCAuaXYtY2FyZC1wcm9kdWN0LWxpc3RpbmcgaDJ7bWF4LWhlaWdodDozNnB4fS5pdi1kcmF3ZXItYmlnIC5pdi1jYXJkLXByb2R1Y3QtbGlzdGluZyBoMnttYXgtaGVpZ2h0OjcycHh9Lml2LWNhcmQtb2ZmZXItcHJpY2V7bWFyZ2luLWJvdHRvbToycHg7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjE1cHg7Y29sb3I6IzMzM30uaXYtY2FyZC1vZmZlci1tZXJjaGFudHtjb2xvcjojMDk3YTQxfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLWNvbnRhaW5lcnt3aWR0aDozNjBweDtoZWlnaHQ6Y2FsYygxMDAlIC0gMzlweCk7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjAgYXV0bzt6LWluZGV4OjM3fS5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlKSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1vdmVybGF5e3dpZHRoOjEwMCV9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tb3ZlcmxheXstLXcydy1zdGFydC1iYWNrZ3JvdW5kLWNvbG9yOiMwMDA7LS13MnctZW5kLWJhY2tncm91bmQtY29sb3I6IzAwMDtoZWlnaHQ6MTAwJX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1jb250YWluZXJ7d2lkdGg6MTAwJX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWxpbmstY29udGFpbmVye21hcmdpbi10b3A6MTBweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleC1ncm93OjE7ZmxleC1ncm93OjF9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtaGVhZGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpO2ZvbnQtc2l6ZToxNXB4O2xpbmUtaGVpZ2h0OjI0cHh9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtaGVhZGVyLWNvdW50ZG93bi1udW1iZXJ7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1hbHRlcm5hdGl2ZS1oZWFkZXItb25seSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1oZWFkZXJ7ZGlzcGxheTpub25lfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWFsdGVybmF0aXZlLWhlYWRlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KTtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxOHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LW5vLWFsdGVybmF0aXZlLWhlYWRlciAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1hbHRlcm5hdGl2ZS1oZWFkZXJ7ZGlzcGxheTpub25lfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWFsdGVybmF0aXZlLWhlYWRlci1vbmx5IC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWFsdGVybmF0aXZlLWhlYWRlcntmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoyNHB4O21hcmdpbi10b3A6MH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC10aHVtYm5haWwsLnl0cC1hdXRvbmF2LXRodW1ibmFpbC1zbWFsbHtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjoxcHggc29saWQgIzRjNGM0Yzstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdGh1bWJuYWlse3dpZHRoOjM2MHB4O2hlaWdodDoyMDJweDtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdGh1bWJuYWlsOmhvdmVyLC55dHAtYXV0b25hdi10aHVtYm5haWwtc21hbGw6aG92ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjgpOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ueXRwLWF1dG9uYXYtbGl2ZS1zdGFtcCwueXRwLWF1dG9uYXYtdGltZXN0YW1wLC55dHAtYXV0b25hdi11cGNvbWluZy1zdGFtcHtib3R0b206NHB4O3JpZ2h0OjRweDtwYWRkaW5nOjAgNHB4O2JvcmRlci1yYWRpdXM6MnB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE2cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC44KTtjb2xvcjojZmZmO3Bvc2l0aW9uOmFic29sdXRlO2xldHRlci1zcGFjaW5nOi41cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLWF1dG9uYXYtbGlzdC1vdmVybGF5e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbG9hdDpyaWdodDt3aWR0aDo0MCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC44KX0ueXRwLWF1dG9uYXYtbWl4LXRleHR7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE1cHg7bGluZS1oZWlnaHQ6MThweDtmb250LXdlaWdodDo1MDA7bWFyZ2luLXRvcDozMCV9Lnl0cC1hdXRvbmF2LW1peC1pY29ue3dpZHRoOjQyJTtoZWlnaHQ6MzAlO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIaHRiRzV6T25oc2FXNXJQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwzaHNhVzVySWlCMmFXVjNRbTk0UFNJd0lEQWdNellnTXpZaVBqeDFjMlVnZUd4cGJtczZhSEpsWmowaUkzbDBjQzF6ZG1jdGJXbDRJaUJ6ZEhKdmEyVTlJaU13TURBaUlITjBjbTlyWlMxdmNHRmphWFI1UFNJdU1UVWlJSE4wY205clpTMTNhV1IwYUQwaU1pSXZQanh3WVhSb0lHbGtQU0o1ZEhBdGMzWm5MVzFwZUNJZ1ptbHNiRDBpSTJabVppSWdaRDBpVFRJMUxqWTFJREU0WXkwdU1ESWdNaTR6TVMwdU9EY2dOQzQwTVMweUxqSTFJRFl1TURac0xqa3VPVFJqTVM0Mk9TMHhMamdnTWk0M0xUUXVNamNnTWk0M0xUZHpMVEV1TURFdE5TNHlNUzB5TGpjdE4yd3RMamt1T1ROQk9TNDFOQ0E1TGpVMElEQWdNQ0F4SURJMUxqWTFJREU0YlMweE5TNHpJREJqTGpBeExUSXVNekl1T0RZdE5DNDBNaUF5TGpJMUxUWXVNRGRzTFM0NUxTNDVNME14TUNBeE1pNDNPU0E1SURFMUxqSTNJRGtnTVRoek1TQTFMaklnTWk0M0lEZHNMamt0TGprMFl5MHhMak01TFRFdU5qVXRNaTR5TkMwekxqYzFMVEl1TWpVdE5pNHdObTB5TGpjZ01HTXRMakEwTFRFdU56TXVORGt0TXk0d09TQXhMak0xTFRRdU1td3RMamt0TGprMFl5MHhMakV6SURFdU1qWXRNUzQ0SURJdU9Ua3RNUzQ0SURVdU1UUWdNQ0F4TGpZM0xqWTNJRE11TkNBeExqZ2dOQzQyTm13dU9TMHVPVE5qTFM0NE5pMHhMakV5TFRFdU16a3RNaTQwTnkweExqTTFMVE11TnpOdE9TMDFMakUwTFM0NUxqazBZeTQ0TlNBeExqRXhJREV1TXpnZ01pNDBOeUF4TGpNMUlEUXVNaTR3TXlBeExqSTJMUzQxSURJdU5qRXRNUzR6TlNBekxqY3piQzQ1TGprell6RXVNVEl0TVM0eU5pQXhMamd0TWk0NU9TQXhMamd0TkM0Mk5pQXdMVEl1TVRVdExqWTRMVE11T0RndE1TNDRMVFV1TVRSdExUVXVOVFVnTWk0NElETXVOaUF4TGpnM0xUTXVOaUF5TGpNemVpSXZQand2YzNablBnPT0pOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3ZlcjttYXJnaW46MCBhdXRvfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdmlkZW8taW5mb3ttYXJnaW4tdG9wOjEycHh9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1wcmVtaXVtLWJhZGdle21hcmdpbi1ib3R0b206NnB4O21hcmdpbi1sZWZ0Oi0ycHg7d2lkdGg6NzRweDtoZWlnaHQ6MTZweDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSTNNQ0lnYUdWcFoyaDBQU0l4TmlJZ1ptbHNiRDBpYm05dVpTSStQSEpsWTNRZ2QybGtkR2c5SWpjd0lpQm9aV2xuYUhROUlqRTJJaUJtYVd4c1BTSWpabVptSWlCdmNHRmphWFI1UFNJdU1TSWdjbmc5SWpJaUx6NDhjR0YwYUNCbWFXeHNQU0lqWVdGaElpQmtQU0pOTWpBdU16VWdPQzQ0TTFZeE1tZ3RNUzQwT0ZZekxqUTNhRE11TWpaakxqazFJREFnTVM0M01TNHlOU0F5TGpJM0xqYzBMalUyTGpVdU9EUWdNUzR4Tmk0NE5DQXhMamszSURBZ0xqZzBMUzR5TnlBeExqUTVMUzQ0TWlBeExqazFMUzQxTlM0ME55MHhMak15TGpjdE1pNHpMamQ2YlRBdE1TNHhPV2d4TGpjNFl5NDFNeUF3SUM0NU15MHVNVElnTVM0eUxTNHpOeTR5T1MwdU1qVXVOREl0TGpZdU5ESXRNUzR3T0NBd0xTNDBOaTB1TVRRdExqZ3lMUzQwTWkweExqRmhNUzQyTWlBeExqWXlJREFnTUNBd0xURXVNVFl0TGpRemFDMHhMamd5ZW0wNUxqTTNMUzQyT0dFekxqVWdNeTQxSURBZ01DQXdMUzQxT0MwdU1EVmpMUzQyTlNBd0xURXVNRGt1TWpVdE1TNHpNUzQzTlZZeE1rZ3lOaTQwVmpVdU5qWm9NUzR6Tm13dU1EUXVOMkV4TGpZZ01TNDJJREFnTUNBeElERXVORE10TGpneVl5NHlJREFnTGpNM0xqQXpMalV1TURoMk1TNHpOSHB0TXk0MU9DQTFMakUyWXkwdU9TQXdMVEV1TmpRdExqSTVMVEl1TWkwdU9EVmhNeTR4SURNdU1TQXdJREFnTVMwdU9EUXRNaTR5T0hZdExqRTNZekF0TGpZekxqRXlMVEV1TWk0ek55MHhMamRoTWk0M01pQXlMamN5SURBZ01DQXhJREl1TlMweExqVTRZeTQ0TnlBd0lERXVOVE11TWpnZ01pQXVPRE11TkRndU5UVXVOekVnTVM0ek15NDNNU0F5TGpNMGRpNDFOMGd6TVM0M1l5NHdOQzQxTWk0eU1pNDVOQzQxTWlBeExqSTBjeTQzTGpRMklERXVNVFl1TkRaakxqWTFJREFnTVM0eE9DMHVNallnTVM0MkxTNDNPV3d1TnpZdU56TmpMUzR5TlM0ek9DMHVOaTQyT0MweExqQXlMamc1TFM0ME1pNHlMUzQ1TGpNdE1TNDBNaTR6ZW0wdExqRTNMVFV1TkROakxTNDBJREF0TGpjdU1UTXRMamsxTGpRdExqSTBMakk0TFM0MExqWTJMUzQwTmlBeExqRTFhREl1TnpKMkxTNHhZVEV1TnpJZ01TNDNNaUF3SURBZ01DMHVNemt0TVM0d09TQXhMaklnTVM0eUlEQWdNQ0F3TFM0NU1pMHVNelp0TlM0eE5pMHhMakF6TGpBMExqWTJZVEl1TWpnZ01pNHlPQ0F3SURBZ01TQXhMamd6TFM0M09HTXVPRFVnTUNBeExqUXpMak16SURFdU56UXVPVGd1TkRZdExqWTFJREV1TVRFdExqazRJREV1T1RVdExqazRMamNnTUNBeExqSXhMaklnTVM0MU5TNDFPQzR6TlM0ek9TNDFNaTQ1Tmk0MU15QXhMamN4VmpFeWFDMHhMalF5VmpjdU9EZGpNQzB1TkMwdU1Ea3RMamN0TGpJM0xTNDRPQzB1TVRjdExqRTVMUzQwTmkwdU1qZ3RMamczTFM0eU9DMHVNeklnTUMwdU5Ua3VNRGt0TGpndU1qWXRMakl1TVRjdExqTTBMalF0TGpReUxqWTRWakV5YUMweExqUXlWamN1T0ROakxTNHdNaTB1TnpVdExqUXRNUzR4TWkweExqRTBMVEV1TVRJdExqVTNJREF0TGprNExqSXpMVEV1TWpJdU4xWXhNbWd0TVM0ME1sWTFMalkyZWswME9DNDVNU0F4TW1ndE1TNDBNMVkxTGpZMmFERXVORE42VFRRM0xqUWdOQzR3TVdNd0xTNHlNaTR3TmkwdU5DNHlMUzQxTkM0eE5DMHVNVFV1TXpRdExqSXlMall0TGpJeWN5NDBOaTR3Tnk0MkxqSXlZeTR4TkM0eE5DNHlMak15TGpJdU5UUnpMUzR3Tmk0MExTNHlMalUwTFM0ek5DNHlNUzB1Tmk0eU1TMHVORFl0TGpBM0xTNDJMUzR5WVM0M05TNDNOU0F3SURBZ01TMHVNaTB1TlRWdE5pNDVJRGN1TXpkaE1pNHlJREl1TWlBd0lEQWdNUzB4TGpjNExqYzBjUzB4TGpBeUlEQXRNUzQxTmkwdU5tTXRMak0xTFM0MExTNDFNeTB4TFM0MU15MHhMamMxVmpVdU5qWm9NUzQwTTNZMExqQTVZekFnTGpndU16TWdNUzR5SURFZ01TNHlMalk1SURBZ01TNHhOaTB1TWpRZ01TNDBMUzQzTkZZMUxqWTJhREV1TkRKV01USm9MVEV1TXpSNmJUUXVNVGN0TlM0M01pNHdOQzQyTm1FeUxqSTRJREl1TWpnZ01DQXdJREVnTVM0NE15MHVOemhqTGpnMUlEQWdNUzQwTXk0ek15QXhMamMwTGprNExqUTJMUzQyTlNBeExqRXhMUzQ1T0NBeExqazFMUzQ1T0M0M0lEQWdNUzR5TVM0eUlERXVOVFV1TlRndU16VXVNemt1TlRJdU9UWXVOVE1nTVM0M01WWXhNa2cyTkM0M1ZqY3VPRGRqTUMwdU5DMHVNRGt0TGpjdExqSTNMUzQ0T0MwdU1UY3RMakU1TFM0ME5pMHVNamd0TGpnM0xTNHlPQzB1TXpJZ01DMHVOVGt1TURrdExqZ3VNall0TGpJdU1UY3RMak0wTGpRdExqUXlMalk0VmpFeWFDMHhMalF5VmpjdU9ETmpMUzR3TWkwdU56VXRMalF0TVM0eE1pMHhMakUwTFRFdU1USXRMalUzSURBdExqazRMakl6TFRFdU1qSXVOMVl4TW1ndE1TNDBNbFkxTGpZMmFERXVNelI2SWk4K1BIQmhkR2dnWm1sc2JEMGljbVZrSWlCa1BTSk5NU0F5WVRFZ01TQXdJREFnTVNBeExURm9NVE4yTVRSSU1tRXhJREVnTUNBd0lERXRNUzB4ZWlJdlBqeHdZWFJvSUdacGJHdzlJaU5tWm1ZaUlHUTlJazAyTGpVeUlEbDJNMGcwTGpjMlZqTXVORGRJT0M0eFl5NDJOQ0F3SURFdU1pNHhNaUF4TGpZNUxqTTFjeTQ0Tmk0MU55QXhMakV5SURFZ0xqUXVPVEl1TkNBeExqUTNZekFnTGpnMExTNHpJREV1TlMwdU9EY2dNUzQ1T0hFdExqZzFOUzQzTWkweUxqTTNMamN5U0RZdU5USjZiVEF0TVM0ME0yZ3hMalUzWXk0ME5pQXdJQzQ0TWkwdU1TQXhMakEyTFM0ek15NHlOUzB1TWpJdU16Y3RMalV6TGpNM0xTNDVOSE10TGpFeUxTNDNOUzB1TXpjdE1XTXRMakkxTFM0eU55MHVOVGt0TGpRdE1TNHdNaTB1TkVnMkxqVXllaUl2UGp3dmMzWm5QZz09KTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXJ9LmF1dG9uYXYtZW5kc2NyZWVue2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC5hdXRvbmF2LWVuZHNjcmVlbnstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dHAtc3VnZ2VzdGlvbnMtY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWZsb3c6cm93IHdyYXA7ZmxleC1mbG93OnJvdyB3cmFwfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXRpdGxle2NvbG9yOiNmZmY7ZGlzcGxheTotd2Via2l0LWJveDtmb250LXNpemU6MThweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MjRweDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1saW5lLWNsYW1wOjI7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm9ybWFsfS55dHAtYXV0b25hdi1hdXRob3ItYW5kLXZpZXcsLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtYXV0aG9yLC55dHAtYXV0b25hdi12aWV3LWFuZC1kYXRle21hcmdpbi10b3A6NHB4O2NvbG9yOiNhYWE7ZGlzcGxheTotd2Via2l0LWJveDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMXB4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6MTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1idXR0b24tY29udGFpbmVye3dpZHRoOjEwMCU7bWFyZ2luLXRvcDoxMnB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWJ1dHRvbnstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czoycHg7ZGlzcGxheTppbmxpbmUtZ3JpZDtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7d2lkdGg6MTc2cHg7aGVpZ2h0OjM2cHg7bGluZS1oZWlnaHQ6MzRweDt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyOjB9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtYnV0dG9uLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtYnV0dG9uLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czoxOHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWNhbmNlbC1idXR0b257YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xKTtmbG9hdDpsZWZ0fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXBsYXktYnV0dG9ue2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMyk7ZmxvYXQ6cmlnaHR9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVyOm5vdCgueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWlzLXByZW1pdW0pIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tcHJlbWl1bS1iYWRnZXtkaXNwbGF5Om5vbmV9LmNvdW50ZG93bi1ydW5uaW5nIC55dHAtcGxheWVyLWNvbnRlbnR7Ym90dG9tOjB9LmNvdW50ZG93bi1ydW5uaW5nIC55dHAtbWluaXBsYXllci1yZXBsYXktYnV0dG9uLC5jb3VudGRvd24tcnVubmluZyAueXRwLXByZXZpZXd7ZGlzcGxheTpub25lfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtc21hbGwtbW9kZSAueXRwLXN1Z2dlc3Rpb24tcGFuZWx7bWFyZ2luOjQwcHggYXV0byBhdXRvIDIwcHg7d2lkdGg6MzYwcHh9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLW92ZXJsYXl7bWFyZ2luOjQwcHggMjBweCBhdXRvIGF1dG99Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi10aHVtYm5haWwtc21hbGx7d2lkdGg6MzYwcHg7aGVpZ2h0OjIwMnB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtdGl0bGUtY2FyZHttYXJnaW4tdG9wOjEycHg7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MjRweH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtY2FuY2VsbGVkLXNtYWxsLW1vZGUgLnl0cC1hdXRvbmF2LWF1dGhvci1jYXJkLC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtdmlldy1hbmQtZGF0ZS1jYXJke21hcmdpbi10b3A6NHB4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIxcHh9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi12aWV3LWFuZC1kYXRlLWNhcmR7bWFyZ2luLXRvcDowfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtc3VnZ2VzdGlvbi1jYXJke3dpZHRoOjM2MHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC10aHVtYm5haWx7d2lkdGg6MzYwcHg7aGVpZ2h0OjIwMnB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtbWl4LXRleHR7Zm9udC1zaXplOjIyLjVweDtsaW5lLWhlaWdodDoyN3B4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tc21hbGwtbW9kZS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLWNvbnRhaW5lcnt3aWR0aDozNzRweH0uY291bnRkb3duLXJ1bm5pbmcgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tbGluay1jb250YWluZXIsLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1saW5rLWNvbnRhaW5lcnttYXJnaW4tdG9wOjEzcHg7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmNvdW50ZG93bi1ydW5uaW5nIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC10aHVtYm5haWwsLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdGh1bWJuYWlse3dpZHRoOjE4M3B4O2hlaWdodDoxMDRweDtib3JkZXItcmFkaXVzOjhweH0uY291bnRkb3duLXJ1bm5pbmcgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWhlYWRlciwuY291bnRkb3duLXJ1bm5pbmcgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXRpdGxlLC55dHAtYXV0b25hdi1jYW5jZWxsZWQtbWluaS1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWhlYWRlciwueXRwLWF1dG9uYXYtY2FuY2VsbGVkLW1pbmktbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC10aXRsZXtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxOHB4O2ZvbnQtd2VpZ2h0OjUwMH0uY291bnRkb3duLXJ1bm5pbmcgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdmlkZW8taW5mbywueXRwLWF1dG9uYXYtY2FuY2VsbGVkLW1pbmktbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXZpZGVvLWluZm97bWFyZ2luLXRvcDowO3dpZHRoOjE4M3B4fS5jb3VudGRvd24tcnVubmluZyAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXNtYWxsLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1idXR0b24tY29udGFpbmVyLC55dHAtYXV0b25hdi1jYW5jZWxsZWQtbWluaS1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tYnV0dG9uLWNvbnRhaW5lcnttYXJnaW4tdG9wOjEzcHh9LmNvdW50ZG93bi1ydW5uaW5nIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1idXR0b24sLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtYnV0dG9ue3dpZHRoOjE4M3B4O2hlaWdodDozNHB4fS55dHAtYmlnLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVye2hlaWdodDpjYWxjKDEwMCUgLSA1OC41cHgpfS55dHAtYmlnLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1saW5rLWNvbnRhaW5lcnttYXJnaW4tdG9wOjE1cHh9Lnl0cC1iaWctbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1oZWFkZXJ7Zm9udC1zaXplOjIyLjVweDtsaW5lLWhlaWdodDozNnB4fS55dHAtYmlnLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtYWx0ZXJuYXRpdmUtaGVhZGVye2ZvbnQtc2l6ZToxOS41cHg7bGluZS1oZWlnaHQ6MjdweH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWFsdGVybmF0aXZlLWhlYWRlci1vbmx5IC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWFsdGVybmF0aXZlLWhlYWRlcntmb250LXNpemU6MjIuNXB4O2xpbmUtaGVpZ2h0OjM2cHh9Lnl0cC1iaWctbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC10aHVtYm5haWx7d2lkdGg6NTQwcHg7aGVpZ2h0OjMwM3B4fS55dHAtYmlnLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1wcmVtaXVtLWJhZGdle21hcmdpbi1ib3R0b206OXB4O21hcmdpbi1sZWZ0Oi0zcHg7d2lkdGg6MTExcHg7aGVpZ2h0OjI0cHh9Lnl0cC1iaWctbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXZpZGVvLWluZm97bWFyZ2luLXRvcDoxOHB4fS55dHAtYmlnLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdGl0bGV7Zm9udC1zaXplOjI3cHg7bGluZS1oZWlnaHQ6MzZweH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWF1dGhvciwueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi12aWV3LWFuZC1kYXRle21hcmdpbi10b3A6NnB4O2ZvbnQtc2l6ZToyMXB4O2xpbmUtaGVpZ2h0OjMxLjVweH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi12aWV3LWFuZC1kYXRle21hcmdpbi10b3A6MH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tYnV0dG9uLWNvbnRhaW5lcnttYXJnaW4tdG9wOjE4cHh9Lnl0cC1iaWctbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1idXR0b257Zm9udC1zaXplOjIxcHg7d2lkdGg6MjY0cHg7aGVpZ2h0OjU0cHg7bGluZS1oZWlnaHQ6NTJweH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWJ1dHRvbi5tb2Rlcm4tYnV0dG9uc3tib3JkZXItcmFkaXVzOjI3cHh9Lnl0cC1iaWctbW9kZSAueXRwLWF1dG9uYXYtbGl2ZS1zdGFtcCwueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi10aW1lc3RhbXAsLnl0cC1iaWctbW9kZSAueXRwLWF1dG9uYXYtdXBjb21pbmctc3RhbXB7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MjRweH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLWNvbnRhaW5lcnt3aWR0aDo1NDBweH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1vdmVybGF5e21hcmdpbjphdXRvO21hcmdpbi1yaWdodDozMHB4O2hlaWdodDo0NDRweH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1vdmVybGF5IC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLWNvbnRhaW5lcnstd2Via2l0LWJveC1wYWNrOnN0YXJ0Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1zdWdnZXN0aW9uLXBhbmVse21hcmdpbjphdXRvO21hcmdpbi1sZWZ0OjMwcHg7d2lkdGg6NDMycHg7aGVpZ2h0OjQ0NHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtc3VnZ2VzdGlvbi1jYXJkLXdpdGgtbWFyZ2lue21hcmdpbi1sZWZ0OjEycHh9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LXRodW1ibmFpbC1zbWFsbHttYXJnaW4tdG9wOjA7d2lkdGg6MjEwcHg7aGVpZ2h0OjExOHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1zdWdnZXN0aW9uLWNhcmR7bWFyZ2luLXRvcDoxMHB4O3dpZHRoOjIxMHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1zdWdnZXN0aW9uLWNhcmQ6bnRoLWxhc3QtY2hpbGQoLW4rMil7bWFyZ2luLXRvcDoyMHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi10aXRsZS1jYXJke21hcmdpbi10b3A6MTBweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxNnB4O2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtYXV0aG9yLWNhcmR7bWFyZ2luLXRvcDo0cHh9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWF1dGhvci1jYXJkLC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi12aWV3LWFuZC1kYXRlLWNhcmR7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MThweH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtdmlldy1hbmQtZGF0ZSwueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtdmlldy1hbmQtZGF0ZS1jYXJke21hcmdpbi10b3A6MH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtY2FuY2VsbGVkLXNtYWxsLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1tb3JlLXZpZGVvc3t2aXNpYmlsaXR5OmhpZGRlbn0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtY2FuY2VsbGVkLXNtYWxsLW1vZGUgLnl0cC1zdWdnZXN0aW9ucy1jb250YWluZXIgLnl0cC1zdWdnZXN0aW9uLXNldDpub3QoOmZpcnN0LWNoaWxkKXtkaXNwbGF5Om5vbmV9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1zdWdnZXN0aW9uLXBhbmVsLC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtdGlueS1tb2RlIC55dHAtc3VnZ2VzdGlvbi1wYW5lbHtkaXNwbGF5Om5vbmV9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tb3ZlcmxheSwueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtY2FuY2VsbGVkLXRpbnktbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1vdmVybGF5ey13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2hlaWdodDpjYWxjKDEwMCUgLSAzOXB4KX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtY2FuY2VsbGVkLW1pbmktbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1vdmVybGF5IC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLWNvbnRhaW5lciwueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtY2FuY2VsbGVkLXRpbnktbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1vdmVybGF5IC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLWNvbnRhaW5lcnstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtoZWlnaHQ6MTAwJX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtY2FuY2VsbGVkLW1pbmktbW9kZSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1vdmVybGF5LC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtdGlueS1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLW92ZXJsYXl7bWFyZ2luLXJpZ2h0OmF1dG99Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tb3ZlcmxheXttYXJnaW4tdG9wOjB9Lnl0cC1wbGF5ZXItbWluaW1pemVkLmNvdW50ZG93bi1ydW5uaW5nIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tbGluay1jb250YWluZXIsLnl0cC1wbGF5ZXItbWluaW1pemVkLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1saW5rLWNvbnRhaW5lcnttYXJnaW4tdG9wOjMwcHh9Lnl0cC1wbGF5ZXItbWluaW1pemVkLmNvdW50ZG93bi1ydW5uaW5nIC55dHAtc3VnZ2VzdGlvbi1wYW5lbCwueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLXN1Z2dlc3Rpb24tcGFuZWx7ZGlzcGxheTpub25lfS55dHAtcGxheWVyLW1pbmltaXplZC5jb3VudGRvd24tcnVubmluZyAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1jb250YWluZXIsLnl0cC1wbGF5ZXItbWluaW1pemVkLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVye3dpZHRoOjM3NHB4O2hlaWdodDoxMDAlOy13ZWJraXQtYm94LXBhY2s6c3RhcnQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ueXRwLXBsYXllci1taW5pbWl6ZWQuY291bnRkb3duLXJ1bm5pbmcgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtY29udGFpbmVyLC55dHAtcGxheWVyLW1pbmltaXplZC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWNvbnRhaW5lcnttYXJnaW4tdG9wOjE2cHh9Lnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1pcy1wcmVtaXVtIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWhlYWRlciwueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXNtYWxsLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1pcy1wcmVtaXVtIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWhlYWRlcntkaXNwbGF5Oi13ZWJraXQtYm94fS55dHAtYXV0b25hdi1jYW5jZWxsZWQtbWluaS1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4taXMtcHJlbWl1bSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1hbHRlcm5hdGl2ZS1oZWFkZXIsLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4taXMtcHJlbWl1bSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1hbHRlcm5hdGl2ZS1oZWFkZXJ7bWFyZ2luLXRvcDo1cHh9Lnl0cC1hdXRvbmF2LWNhbmNlbGxlZC1taW5pLW1vZGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1pcy1wcmVtaXVtIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tbGluay1jb250YWluZXIsLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1lbmRzY3JlZW4taXMtcHJlbWl1bSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWxpbmstY29udGFpbmVye21hcmdpbi10b3A6OHB4fS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtbWluaS1tb2RlIC55dHAtYXV0b25hdi12aWV3LWFuZC1kYXRle2Rpc3BsYXk6LXdlYmtpdC1ib3h9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1idXR0b24tY29udGFpbmVye2Rpc3BsYXk6bm9uZX0ueXRwLWJpZy1tb2RlLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVye21hcmdpbjphdXRvO21hcmdpbi1yaWdodDo0NXB4O3dpZHRoOjU0MHB4O2hlaWdodDo2NjZweH0ueXRwLWJpZy1tb2RlLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtaGVhZGVye2ZvbnQtc2l6ZToyMi41cHg7bGluZS1oZWlnaHQ6MzZweH0ueXRwLWJpZy1tb2RlLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1zdWdnZXN0aW9uLXBhbmVse21hcmdpbjphdXRvO21hcmdpbi1sZWZ0OjQ1cHg7d2lkdGg6NjQ4cHg7aGVpZ2h0OjY2NnB4fS55dHAtYmlnLW1vZGUueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLXN1Z2dlc3Rpb24tY2FyZC13aXRoLW1hcmdpbnttYXJnaW4tbGVmdDoxOHB4fS55dHAtYmlnLW1vZGUueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtdGh1bWJuYWlsLXNtYWxse3dpZHRoOjMxNXB4O2hlaWdodDoxNzdweH0ueXRwLWJpZy1tb2RlLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LXN1Z2dlc3Rpb24tY2FyZHttYXJnaW4tdG9wOjE1cHg7d2lkdGg6MzE1cHh9Lnl0cC1iaWctbW9kZS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi1zdWdnZXN0aW9uLWNhcmQ6bnRoLWxhc3QtY2hpbGQoLW4rMil7bWFyZ2luLXRvcDozMHB4fS55dHAtYmlnLW1vZGUueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtdGl0bGUtY2FyZHttYXJnaW4tdG9wOjE1cHg7Zm9udC1zaXplOjIxcHg7bGluZS1oZWlnaHQ6MjRweH0ueXRwLWJpZy1tb2RlLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LWF1dGhvci1jYXJke21hcmdpbi10b3A6NnB4fS55dHAtYmlnLW1vZGUueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtYXV0aG9yLWNhcmQsLnl0cC1iaWctbW9kZS55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlIC55dHAtYXV0b25hdi12aWV3LWFuZC1kYXRlLWNhcmR7Zm9udC1zaXplOjE5LjVweDtsaW5lLWhlaWdodDoyN3B4fS55dHAtYmlnLW1vZGUueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNhbmNlbGxlZC1zdGF0ZSAueXRwLWF1dG9uYXYtdmlldy1hbmQtZGF0ZS1jYXJke21hcmdpbi10b3A6MH0ueXRwLWJpZy1tb2RlLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jYW5jZWxsZWQtc3RhdGUgLnl0cC1hdXRvbmF2LW1peC10ZXh0e2ZvbnQtc2l6ZToyMi41cHg7bGluZS1oZWlnaHQ6MjdweH0ueXRwLWF1dG9uYXYtYXV0aG9yLWFuZC12aWV3e2Rpc3BsYXk6bm9uZX0ueXRwLWF1dG9uYXYtY2FuY2VsbGVkLW1pbmktbW9kZS55dHAtcGxheWVyLWNvbnRlbnQsLnl0cC1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi1jYW5jZWxsZWQtbWluaS1tb2RlLnl0cC1wbGF5ZXItY29udGVudHtib3R0b206MH0uY291bnRkb3duLXJ1bm5pbmcgLnl0cC1hdXRvbmF2LW92ZXJsYXl7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4Oi0xfS5jb3VudGRvd24tcnVubmluZyAueXRwLWF1dG9uYXYtdmlldy1hbmQtZGF0ZXtkaXNwbGF5Om5vbmV9Lnl0cC1hdXRvbmF2LXN1Z2dlc3Rpb24tY2FyZFtkYXRhLWlzLWxpc3Q9dHJ1ZV0gLnl0cC1hdXRvbmF2LXRpbWVzdGFtcCwueXRwLWF1dG9uYXYtc3VnZ2VzdGlvbi1jYXJkW2RhdGEtaXMtbGl2ZT10cnVlXSAueXRwLWF1dG9uYXYtdGltZXN0YW1wLC55dHAtYXV0b25hdi1zdWdnZXN0aW9uLWNhcmRbZGF0YS1pcy1taXg9dHJ1ZV0gLnl0cC1hdXRvbmF2LXRpbWVzdGFtcCwueXRwLWF1dG9uYXYtc3VnZ2VzdGlvbi1jYXJkW2RhdGEtaXMtdXBjb21pbmc9dHJ1ZV0gLnl0cC1hdXRvbmF2LXRpbWVzdGFtcHtkaXNwbGF5Om5vbmV9Lnl0cC1hdXRvbmF2LXN1Z2dlc3Rpb24tY2FyZFtkYXRhLWlzLWxpdmU9dHJ1ZV0gLnl0cC1hdXRvbmF2LWxpdmUtc3RhbXB7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1jb2xvcjojYzAwfS55dHAtYXV0b25hdi1zdWdnZXN0aW9uLWNhcmQ6bm90KFtkYXRhLWlzLWxpdmU9dHJ1ZV0pIC55dHAtYXV0b25hdi1saXZlLXN0YW1we2Rpc3BsYXk6bm9uZX0ueXRwLWF1dG9uYXYtc3VnZ2VzdGlvbi1jYXJkW2RhdGEtaXMtdXBjb21pbmc9dHJ1ZV0gLnl0cC1hdXRvbmF2LXVwY29taW5nLXN0YW1we3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOCl9Lnl0cC1hdXRvbmF2LXN1Z2dlc3Rpb24tY2FyZDpub3QoW2RhdGEtaXMtdXBjb21pbmc9dHJ1ZV0pIC55dHAtYXV0b25hdi11cGNvbWluZy1zdGFtcHtkaXNwbGF5Om5vbmV9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtY29udGFpbmVyW2RhdGEtaXMtbGlzdD10cnVlXSAueXRwLWF1dG9uYXYtdGltZXN0YW1wLC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LWNvbnRhaW5lcltkYXRhLWlzLWxpdmU9dHJ1ZV0gLnl0cC1hdXRvbmF2LXRpbWVzdGFtcCwueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1jb250YWluZXJbZGF0YS1pcy1taXg9dHJ1ZV0gLnl0cC1hdXRvbmF2LXRpbWVzdGFtcCwueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1jb250YWluZXJbZGF0YS1pcy11cGNvbWluZz10cnVlXSAueXRwLWF1dG9uYXYtdGltZXN0YW1we2Rpc3BsYXk6bm9uZX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1jb250YWluZXJbZGF0YS1pcy1saXZlPXRydWVdIC55dHAtYXV0b25hdi1saXZlLXN0YW1we3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6I2MwMH0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1jb250YWluZXI6bm90KFtkYXRhLWlzLWxpdmU9dHJ1ZV0pIC55dHAtYXV0b25hdi1saXZlLXN0YW1we2Rpc3BsYXk6bm9uZX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1jb250YWluZXJbZGF0YS1pcy11cGNvbWluZz10cnVlXSAueXRwLWF1dG9uYXYtdXBjb21pbmctc3RhbXB7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC44KX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1jb250YWluZXI6bm90KFtkYXRhLWlzLXVwY29taW5nPXRydWVdKSAueXRwLWF1dG9uYXYtdXBjb21pbmctc3RhbXB7ZGlzcGxheTpub25lfS55dHAtYXV0b25hdi1zdWdnZXN0aW9uLWNhcmQ6bm90KFtkYXRhLWlzLW1peD10cnVlXSkgLnl0cC1hdXRvbmF2LWxpc3Qtb3ZlcmxheXtkaXNwbGF5Om5vbmV9Lmh0bWw1LXZpZGVvLXBsYXllci55dHAtYXV0b25hdi1lbmRzY3JlZW4tY2FuY2VsbGVkLXN0YXRlLmVuZGVkLW1vZGV7YmFja2dyb3VuZC1jb2xvcjojMDAwfS55dHAtYWQtb3ZlcmxheS1vcGVuLmNvdW50ZG93bi1ydW5uaW5nIC55dHAtYWQtb3ZlcmxheS1jb250YWluZXJ7b3BhY2l0eTouM30ueXRwLWFkLW92ZXJsYXktb3BlbiAueXRwLXBsYXllci1jb250ZW50Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVye2hlaWdodDpjYWxjKDEwMCUgLSAxNDNweCl9Lnl0cC1iaWctbW9kZS55dHAtYWQtb3ZlcmxheS1vcGVuIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tY291bnRkb3duLWNvbnRhaW5lcntoZWlnaHQ6Y2FsYygxMDAlIC0gMTYwcHgpfS55dHAtYXV0b25hdi1vdmVybGF5LWNhbmNlbGxlZC1zdGF0ZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDotMX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC1oZWFkZXItY2xvc2UtYnV0dG9ue2Rpc3BsYXk6bm9uZTt3aWR0aDozNnB4O2hlaWdodDozNnB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSStQSEJoZEdnZ1ptbHNiRDBpSTJabVppSWdaRDBpVFRFNUlEWXVOREVnTVRjdU5Ua2dOU0F4TWlBeE1DNDFPU0EyTGpReElEVWdOU0EyTGpReElERXdMalU1SURFeUlEVWdNVGN1TlRrZ05pNDBNU0F4T1NBeE1pQXhNeTQwTVNBeE55NDFPU0F4T1NBeE9TQXhOeTQxT1NBeE15NDBNU0F4TW5vaUx6NDhMM04yWno0PSk7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MjRweCAyNHB4O2JhY2tncm91bmQtc2l6ZToyNHB4O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MH0ueXRwLWRlbGhpLW1vZGVybjpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSk6bm90KC5hZC1zaG93aW5nKSAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC11cGRhdGVkIC55dHAtcGxheWVyLWNvbnRlbnR7cG9zaXRpb246dW5zZXR9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdXBkYXRlZCAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWNvdW50ZG93bi1jb250YWluZXJ7LXdlYmtpdC1hbGlnbi1zZWxmOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjtoZWlnaHQ6MTAwJX0ueXRwLWF1dG9uYXYtZW5kc2NyZWVuLXVwbmV4dC11cGRhdGVkIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdG9wYmFyLWNvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXVwZGF0ZWQgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtaGVhZGVyLWNsb3NlLWJ1dHRvbntkaXNwbGF5OmJsb2NrfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXVwZGF0ZWQgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVyIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tbGluay1jb250YWluZXJ7bWFyZ2luLXRvcDowOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXVwZGF0ZWQgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVyIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tbGluay1jb250YWluZXIgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi12aWRlby1pbmZve21hcmdpbi10b3A6MTJweDt3aWR0aDoxMDAlfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXVwZGF0ZWQgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi1jb3VudGRvd24tY29udGFpbmVyIC55dHAtYXV0b25hdi1lbmRzY3JlZW4tbGluay1jb250YWluZXIgLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdGh1bWJuYWlsey13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1wb3NpdGlvbjo1MCV9Lnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdXBkYXRlZCAueXRwLWF1dG9uYXYtZW5kc2NyZWVuLWJ1dHRvbi1jb250YWluZXJ7ZGlzcGxheTpub25lfS55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXVwZGF0ZWQgLnl0cC1hdXRvbmF2LWxpdmUtc3RhbXAsLnl0cC1hdXRvbmF2LWVuZHNjcmVlbi11cG5leHQtdXBkYXRlZCAueXRwLWF1dG9uYXYtdGltZXN0YW1wLC55dHAtYXV0b25hdi1lbmRzY3JlZW4tdXBuZXh0LXVwZGF0ZWQgLnl0cC1hdXRvbmF2LXVwY29taW5nLXN0YW1we2JvdHRvbTo4cHg7cmlnaHQ6OHB4O2JvcmRlci1yYWRpdXM6MTBweDtsaW5lLWhlaWdodDoxNnB4O2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzp1bnNldDtwYWRkaW5nOjAgOHB4fS55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uLWNvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dHAtZGVsaGktbW9kZXJuLnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uLWNvbnRhaW5lcnt2ZXJ0aWNhbC1hbGlnbjp0b3B9Lnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b24sLnl0cC1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9ue2hlaWdodDoxNC40cHg7d2lkdGg6MzZweDtib3JkZXItcmFkaXVzOjE0LjRweDt0b3A6NTAlO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJek1DSWdhR1ZwWjJoMFBTSXhNaUlnWm1sc2JEMGlibTl1WlNJK1BIQmhkR2dnWm1sc2JEMGlJMlptWmlJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lpQmtQU0pOTWpJdU55QXhNV015TGprMUlEQWdOUzR6TFRJdU1qRWdOUzR6TFRWekxUSXVNelV0TlMwMUxqTXROVWczTGpORE5DNHpOU0F4SURJZ015NHlNU0F5SURaek1pNHpOU0ExSURVdU15QTFlaUlnWTJ4cGNDMXlkV3hsUFNKbGRtVnViMlJrSWlCdmNHRmphWFI1UFNJdU5TSXZQanh3WVhSb0lHWnBiR3c5SWlNd01EQWlJR1pwYkd3dGIzQmhZMmwwZVQwaUxqTWlJR1pwYkd3dGNuVnNaVDBpWlhabGJtOWtaQ0lnWkQwaVRUY3VNeUF4UXpRdU16VWdNU0F5SURNdU1qRWdNaUEyY3pJdU16VWdOU0ExTGpNZ05XZ3hOUzQwUVRVdU1UWWdOUzR4TmlBd0lEQWdNQ0F5T0NBMmJDMHVNRE10TGpVMFFUVXVNVFlnTlM0eE5pQXdJREFnTUNBeU1pNDNJREY2YlRFMUxqUWdNVEZqTXk0ME5TQXdJRFl1TXkweUxqWWdOaTR6TFRaekxUSXVPRFV0TmkwMkxqTXROa2czTGpORE15NDROU0F3SURFZ01pNDJJREVnTm5NeUxqZzFJRFlnTmk0eklEWjZJaUJqYkdsd0xYSjFiR1U5SW1WMlpXNXZaR1FpSUc5d1lXTnBkSGs5SWk0MUlpOCtQQzl6ZG1jKyk7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjA4cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246YWxsIC4wOHMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9ue2hlaWdodDoxOHB4O3dpZHRoOjMwcHg7YmFja2dyb3VuZC1pbWFnZTp1bnNldDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpO2JvcmRlci1yYWRpdXM6OXB4O21hcmdpbjowIDlweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktbW9kZXJuLWljb25zIC5kZWxoaS1mYXN0LWZvbGxvdy1hdXRvbmF2LXRvZ2dsZSAueXRwLWF1dG9uYXYtdG9nZ2xlLWJ1dHRvblthcmlhLWNoZWNrZWQ9dHJ1ZV17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktdGV4dC1wcmltYXJ5LCNmZmYpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMgLmRlbGhpLWZhc3QtZm9sbG93LWF1dG9uYXYtdG9nZ2xlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uW2FyaWEtY2hlY2tlZD1mYWxzZV17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYnV0dG9uLXNlY29uZGFyeSxyZ2JhKDI1NSwyNTUsMjU1LC4xKSl9Lnl0cC1iaWctbW9kZS55dHAtZGVsaGktbW9kZXJuLnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMgLnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b257bWFyZ2luOjAgY2FsYygodmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsIDU2cHgpIC0gMzBweCkvMil9Lnl0cC14c21hbGwtd2lkdGgtbW9kZS55dHAtZGVsaGktbW9kZXJuLWljb25zLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b257aGVpZ2h0OjEzLjVweDt3aWR0aDoyMi41cHg7Ym9yZGVyLXJhZGl1czo2Ljc1cHg7bWFyZ2luOjAgNXB4fS55dHAtc21hbGwtbW9kZSAueXRwLWF1dG9uYXYtdG9nZ2xlLWJ1dHRvbiwueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9ue2hlaWdodDoxMC44cHg7d2lkdGg6MjdweDtib3JkZXItcmFkaXVzOjEwLjhweH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9ue2hlaWdodDoxOHB4O3dpZHRoOjQ1cHg7Ym9yZGVyLXJhZGl1czoxOHB4fS55dHAtZW1iZWQgLnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b257aGVpZ2h0OjEycHg7d2lkdGg6MzBweDtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b25bYXJpYS1jaGVja2VkPXRydWVde2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJek1DSWdhR1ZwWjJoMFBTSXhNaUlnWm1sc2JEMGlibTl1WlNJK1BIQmhkR2dnWm1sc2JEMGlJMlptWmlJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lpQmtQU0pOTWpJdU55QXhNV015TGprMUlEQWdOUzR6TFRJdU1qRWdOUzR6TFRWekxUSXVNelV0TlMwMUxqTXROVWczTGpORE5DNHpOU0F4SURJZ015NHlNU0F5SURaek1pNHpOU0ExSURVdU15QTFlbTB0TWk0M0xTNDNOWFl0T0M0MWJEWXVOeUEwTGpJMmVpSWdZMnhwY0MxeWRXeGxQU0psZG1WdWIyUmtJaUJ2Y0dGamFYUjVQU0l1TlNJdlBqeHdZWFJvSUdacGJHdzlJaU13TURBaUlHWnBiR3d0YjNCaFkybDBlVDBpTGpNaUlHWnBiR3d0Y25Wc1pUMGlaWFpsYm05a1pDSWdaRDBpVFRjdU15QXhRelF1TXpVZ01TQXlJRE11TWpFZ01pQTJjekl1TXpVZ05TQTFMak1nTldneE5TNDBRVFV1TVRZZ05TNHhOaUF3SURBZ01DQXlPQ0EyYkMwdU1ETXRMalUwUVRVdU1UWWdOUzR4TmlBd0lEQWdNQ0F5TWk0M0lERjZiVEUxTGpRZ01URmpNeTQwTlNBd0lEWXVNeTB5TGpZZ05pNHpMVFp6TFRJdU9EVXROaTAyTGpNdE5rZzNMak5ETXk0NE5TQXdJREVnTWk0MklERWdObk15TGpnMUlEWWdOaTR6SURaNklpQmpiR2x3TFhKMWJHVTlJbVYyWlc1dlpHUWlJRzl3WVdOcGRIazlJaTQxSWk4K1BDOXpkbWMrKTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LXRyYW5zaXRpb246YWxsIC4wOHMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmFsbCAuMDhzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b246YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjIwLjRweDt3aWR0aDoyMC40cHg7Ym9yZGVyLXJhZGl1czoyMC40cHg7bWFyZ2luLXRvcDotM3B4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlHWnBiR3c5SW01dmJtVWlJSFpwWlhkQ2IzZzlJakFnTUNBeE55QXhOeUkrUEhCaGRHZ2dabWxzYkQwaUl6Y3hOekUzTVNJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lpQmtQU0pOT0M0MUlERTJZVGN1TlNBM0xqVWdNQ0F4SURBZ01DMHhOU0EzTGpVZ055NDFJREFnTUNBd0lEQWdNVFVpSUdOc2FYQXRjblZzWlQwaVpYWmxibTlrWkNJdlBqeHdZWFJvSUdacGJHdzlJaU13TURBaUlHWnBiR3d0YjNCaFkybDBlVDBpTGpFMUlpQm1hV3hzTFhKMWJHVTlJbVYyWlc1dlpHUWlJR1E5SWsweE55QTRMalZoT0M0MUlEZ3VOU0F3SURFZ01TMHhOeUF3SURndU5TQTRMalVnTUNBd0lERWdNVGNnTUcwdE1TQXdZVGN1TlNBM0xqVWdNQ0F4SURFdE1UVWdNQ0EzTGpVZ055NDFJREFnTUNBeElERTFJREFpSUdOc2FYQXRjblZzWlQwaVpYWmxibTlrWkNJdlBqeHdZWFJvSUdacGJHdzlJaU5tWm1ZaUlHUTlJazAxTGpVZ01USm9NbFkxYUMweWVtMDBMVGQyTjJneVZqVjZJaTgrUEM5emRtYyspOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3Zlcjstd2Via2l0LXRyYW5zaXRpb246YWxsIC4wOHMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmFsbCAuMDhzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLW1vZGVybi1pY29ucyAueXRwLWF1dG9uYXYtdG9nZ2xlLWJ1dHRvbjphZnRlcntoZWlnaHQ6MTRweDt3aWR0aDoxNHB4O2JvcmRlci1yYWRpdXM6N3B4O21hcmdpbjoycHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhkcFpIUm9QU0l6TmlJZ2FHVnBaMmgwUFNJek5pSWdabWxzYkQwaWJtOXVaU0lnZG1sbGQwSnZlRDBpTUNBd0lETTJJRE0ySWo0OGNHRjBhQ0JtYVd4c1BTSWpabVptSWlCa1BTSk5NVEl1TnpVZ05DNDFhQzB6WXkwdU5pQXdMVEV1TVRjdU1qTXRNUzQyTGpZMUxTNDBNaTQwTXkwdU5qVWdNUzB1TmpVZ01TNDJkakl5TGpWak1DQXVOVGt1TWpNZ01TNHhOaTQyTlNBeExqVTVMalF6TGpReUlERWdMalkySURFdU5pNDJObWd6WXk0MU9TQXdJREV1TVRZdExqSTBJREV1TlRrdExqWTJMalF5TFM0ME15NDJOaTB4SUM0Mk5pMHhMalU1VmpZdU56VmpNQzB1TmkwdU1qUXRNUzR4TnkwdU5qWXRNUzQyTFM0ME15MHVOREl0TVMwdU5qVXRNUzQxT1MwdU5qVnRNVE11TlNBd2FDMHpZeTB1TmlBd0xURXVNVGN1TWpNdE1TNDJMalkxTFM0ME1pNDBNeTB1TmpVZ01TMHVOalVnTVM0MmRqSXlMalZqTUNBdU5Ua3VNak1nTVM0eE5pNDJOU0F4TGpVNUxqUXpMalF5SURFZ0xqWTJJREV1Tmk0Mk5tZ3pZeTQxT1NBd0lERXVNVFl0TGpJMElERXVOVGt0TGpZMkxqUXlMUzQwTXk0Mk5pMHhJQzQyTmkweExqVTVWall1TnpWak1DMHVOaTB1TWpRdE1TNHhOeTB1TmpZdE1TNDJMUzQwTXkwdU5ESXRNUzB1TmpVdE1TNDFPUzB1TmpVaUx6NDhMM04yWno0PSk7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4zKTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTo5cHggOXB4O2JhY2tncm91bmQtc2l6ZTo5cHg7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246NTAlOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246YWxsIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktbW9kZXJuLWljb25zIC5kZWxoaS1mYXN0LWZvbGxvdy1hdXRvbmF2LXRvZ2dsZSAueXRwLWF1dG9uYXYtdG9nZ2xlLWJ1dHRvbjphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXpOaUlnYUdWcFoyaDBQU0l6TmlJZ1ptbHNiRDBpYm05dVpTSWdkbWxsZDBKdmVEMGlNQ0F3SURNMklETTJJajQ4Y0dGMGFDQm1hV3hzUFNJak1EQXdJaUJrUFNKTk1USXVOelVnTkM0MWFDMHpZeTB1TmlBd0xURXVNVGN1TWpNdE1TNDJMalkxTFM0ME1pNDBNeTB1TmpVZ01TMHVOalVnTVM0MmRqSXlMalZqTUNBdU5Ua3VNak1nTVM0eE5pNDJOU0F4TGpVNUxqUXpMalF5SURFZ0xqWTJJREV1Tmk0Mk5tZ3pZeTQxT1NBd0lERXVNVFl0TGpJMElERXVOVGt0TGpZMkxqUXlMUzQwTXk0Mk5pMHhJQzQyTmkweExqVTVWall1TnpWak1DMHVOaTB1TWpRdE1TNHhOeTB1TmpZdE1TNDJMUzQwTXkwdU5ESXRNUzB1TmpVdE1TNDFPUzB1TmpWdE1UTXVOU0F3YUMwell5MHVOaUF3TFRFdU1UY3VNak10TVM0MkxqWTFMUzQwTWk0ME15MHVOalVnTVMwdU5qVWdNUzQyZGpJeUxqVmpNQ0F1TlRrdU1qTWdNUzR4Tmk0Mk5TQXhMalU1TGpRekxqUXlJREVnTGpZMklERXVOaTQyTm1nell5NDFPU0F3SURFdU1UWXRMakkwSURFdU5Ua3RMalkyTGpReUxTNDBNeTQyTmkweElDNDJOaTB4TGpVNVZqWXVOelZqTUMwdU5pMHVNalF0TVM0eE55MHVOall0TVM0MkxTNDBNeTB1TkRJdE1TMHVOalV0TVM0MU9TMHVOalVpTHo0OEwzTjJaejQ9KTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10ZXh0LXByaW1hcnksI2ZmZil9Lnl0cC14c21hbGwtd2lkdGgtbW9kZS55dHAtZGVsaGktbW9kZXJuLWljb25zLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b246YWZ0ZXJ7aGVpZ2h0OjEwLjVweDt3aWR0aDoxMC41cHg7Ym9yZGVyLXJhZGl1czo1LjI1cHg7bWFyZ2luOjFweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b246YWZ0ZXJ7bGVmdDotMnB4O2hlaWdodDoxNS4zcHg7d2lkdGg6MTUuM3B4O2JvcmRlci1yYWRpdXM6MTUuM3B4O21hcmdpbi10b3A6LTIuMjVweH0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uOmFmdGVye2xlZnQ6MDtoZWlnaHQ6MjUuNXB4O3dpZHRoOjI1LjVweDtib3JkZXItcmFkaXVzOjI1LjVweDttYXJnaW4tdG9wOi0zLjc1cHh9Lnl0cC1lbWJlZCAueXRwLWF1dG9uYXYtdG9nZ2xlLWJ1dHRvbjphZnRlcntsZWZ0OjA7aGVpZ2h0OjE3cHg7d2lkdGg6MTdweDtib3JkZXItcmFkaXVzOjE3cHg7bWFyZ2luLXRvcDotMi41cHh9Lnl0cC1hdXRvbmF2LXRvZ2dsZS1idXR0b25bYXJpYS1jaGVja2VkPXRydWVdOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlHWnBiR3c5SW01dmJtVWlJSFpwWlhkQ2IzZzlJakFnTUNBeE55QXhOeUkrUEhCaGRHZ2dabWxzYkQwaUl6QXdNQ0lnWm1sc2JDMXZjR0ZqYVhSNVBTSXVNVFVpSUdacGJHd3RjblZzWlQwaVpYWmxibTlrWkNJZ1pEMGlUVEUzSURndU5XRTRMalVnT0M0MUlEQWdNU0F4TFRFM0lEQWdPQzQxSURndU5TQXdJREFnTVNBeE55QXdiUzAxSURCTU5pNDFJRFYyTjNwdExURXVPRFlnTUV3M0xqVWdOaTQ0TW5ZekxqTTJlazA0TGpVZ01UWmhOeTQxSURjdU5TQXdJREVnTUNBd0xURTFJRGN1TlNBM0xqVWdNQ0F3SURBZ01DQXhOU0lnWTJ4cGNDMXlkV3hsUFNKbGRtVnViMlJrSWk4K1BIQmhkR2dnWm1sc2JEMGlJMlptWmlJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lpQmtQU0pOTVRZZ09DNDFZVGN1TlNBM0xqVWdNQ0F4SURFdE1UVWdNQ0EzTGpVZ055NDFJREFnTUNBeElERTFJREJ0TFRRZ01FdzJMalVnTVRKV05Yb2lJR05zYVhBdGNuVnNaVDBpWlhabGJtOWtaQ0l2UGp3dmMzWm5QZz09KTtsZWZ0OjFweDstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDE1LjZweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDE1LjZweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTUuNnB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uW2FyaWEtY2hlY2tlZD10cnVlXTphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXpOaUlnYUdWcFoyaDBQU0l6TmlJZ1ptbHNiRDBpYm05dVpTSWdkbWxsZDBKdmVEMGlNQ0F3SURNMklETTJJajQ4Y0dGMGFDQm1hV3hzUFNJak1EQXdJaUJrUFNKdE1UY2dPQzQyTFRZdU1URXRNeTQyTVdNdE1TNDFMUzQ0T0MwekxqTTVMakl0TXk0ek9TQXhMamswZGpJeUxqRXpZekFnTVM0M05DQXhMamc1SURJdU9ESWdNeTR6T1NBeExqazBUREUzSURJM0xqUjZiVEFnTUhZeE9DNDRURE16SURFNGVpSXZQand2YzNablBnPT0pO2JhY2tncm91bmQtY29sb3I6I2ZmZjstd2Via2l0LWJhY2tncm91bmQtc2l6ZTo5cHggOXB4O2JhY2tncm91bmQtc2l6ZTo5cHg7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDEycHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEycHgpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMgLmRlbGhpLWZhc3QtZm9sbG93LWF1dG9uYXYtdG9nZ2xlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uW2FyaWEtY2hlY2tlZD10cnVlXTphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXpOaUlnYUdWcFoyaDBQU0l6TmlJZ1ptbHNiRDBpYm05dVpTSWdkbWxsZDBKdmVEMGlNQ0F3SURNMklETTJJajQ4Y0dGMGFDQm1hV3hzUFNJalptWm1JaUJrUFNKdE1UY2dPQzQyTFRZdU1URXRNeTQyTVdNdE1TNDFMUzQ0T0MwekxqTTVMakl0TXk0ek9TQXhMamswZGpJeUxqRXpZekFnTVM0M05DQXhMamc1SURJdU9ESWdNeTR6T1NBeExqazBUREUzSURJM0xqUjZiVEFnTUhZeE9DNDRURE16SURFNGVpSXZQand2YzNablBnPT0pO2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtc29saWQsIzBmMGYwZil9Lnl0cC1zbWFsbC1tb2RlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uW2FyaWEtY2hlY2tlZD10cnVlXTphZnRlcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDExLjdweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDExLjdweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTEuN3B4KX0ueXRwLWJpZy1tb2RlIC55dHAtYXV0b25hdi10b2dnbGUtYnV0dG9uW2FyaWEtY2hlY2tlZD10cnVlXTphZnRlcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDE5LjVweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDE5LjVweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTkuNXB4KX0ueXRwLXhzbWFsbC13aWR0aC1tb2RlLnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMueXRwLWRlbGhpLW1vZGVybiAueXRwLWF1dG9uYXYtdG9nZ2xlLWJ1dHRvblthcmlhLWNoZWNrZWQ9dHJ1ZV06YWZ0ZXJ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCg4cHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCg4cHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDhweCl9Lnl0cC1lbWJlZCAueXRwLWF1dG9uYXYtdG9nZ2xlLWJ1dHRvblthcmlhLWNoZWNrZWQ9dHJ1ZV06YWZ0ZXJ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxM3B4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTNweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTNweCl9Lnl0cC1iZXplbHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTt0b3A6NTAlO3dpZHRoOjUycHg7aGVpZ2h0OjUycHg7ei1pbmRleDoxOTttYXJnaW4tbGVmdDotMjZweDttYXJnaW4tdG9wOi0yNnB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNSk7Ym9yZGVyLXJhZGl1czoyNnB4Oy13ZWJraXQtYW5pbWF0aW9uOnl0cC1iZXplbC1mYWRlb3V0IC41cyBsaW5lYXIgMSBub3JtYWwgZm9yd2FyZHM7YW5pbWF0aW9uOnl0cC1iZXplbC1mYWRlb3V0IC41cyBsaW5lYXIgMSBub3JtYWwgZm9yd2FyZHM7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWJlemVse2xlZnQ6NTAlO3RvcDo1MCU7d2lkdGg6NzhweDtoZWlnaHQ6NzhweDttYXJnaW4tbGVmdDotMzlweDttYXJnaW4tdG9wOi0zOXB4O2JvcmRlci1yYWRpdXM6MzlweDstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0scmdiYSgwLDAsMCwuNikpOy13ZWJraXQtYW5pbWF0aW9uOnl0cC1kZWxoaS1tb2Rlcm4tYmV6ZWwtZmFkZW91dCAxcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSAxIG5vcm1hbCBmb3J3YXJkczthbmltYXRpb246eXRwLWRlbGhpLW1vZGVybi1iZXplbC1mYWRlb3V0IDFzIGN1YmljLWJlemllciguMDUsMCwwLDEpIDEgbm9ybWFsIGZvcndhcmRzfS55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtYmV6ZWwtaWNvbiBzdmd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ueXRwLWJpZy1tb2RlIC55dHAtYmV6ZWx7d2lkdGg6NzhweDtoZWlnaHQ6NzhweDttYXJnaW4tbGVmdDotMzlweDttYXJnaW4tdG9wOi0zOXB4O2JvcmRlci1yYWRpdXM6MzlweH0ueXRwLWRlbGhpLW1vZGVybi55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1iZXplbHt3aWR0aDo2NHB4O2hlaWdodDo2NHB4O21hcmdpbi1sZWZ0Oi0zMnB4O21hcmdpbi10b3A6LTMycHg7Ym9yZGVyLXJhZGl1czozMnB4fS55dHAtYmV6ZWwtaWNvbnt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O21hcmdpbjo2cHh9Lnl0cC1wbGF5ZXItY29udGVudCAueXRwLWJlemVsLWljb257d2lkdGg6NDhweDtoZWlnaHQ6NDhweDttYXJnaW46MnB4fS55dHAtYmlnLW1vZGUgLnl0cC1iZXplbC1pY29uLC55dHAtZGVsaGktbW9kZXJuIC55dHAtYmV6ZWwtaWNvbnt3aWR0aDo1NHB4O2hlaWdodDo1NHB4O21hcmdpbjoxMnB4fS55dHAtZGVsaGktbW9kZXJuLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLWJlemVsLWljb257d2lkdGg6NDhweDtoZWlnaHQ6NDhweDttYXJnaW46OHB4fS55dHAtYmV6ZWwtdGV4dC13cmFwcGVye3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO3RvcDoxMCU7ei1pbmRleDoxOX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWJlemVsLXRleHQtd3JhcHBlcnstd2Via2l0LWFuaW1hdGlvbjp5dHAtZGVsaGktbW9kZXJuLWJlemVsLXRleHQtZmFkZW91dCAxcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSAxIG5vcm1hbCBmb3J3YXJkczthbmltYXRpb246eXRwLWRlbGhpLW1vZGVybi1iZXplbC10ZXh0LWZhZGVvdXQgMXMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSkgMSBub3JtYWwgZm9yd2FyZHN9Lnl0cC1iZXplbC10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6MTBweCAyMHB4O2ZvbnQtc2l6ZToxNzUlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNSk7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXItcmFkaXVzOjNweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWJlemVsLXRleHR7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLHJnYmEoMCwwLDAsLjYpKX0ueXRwLWJlemVsLXRleHQtaGlkZSAueXRwLWJlemVsLXRleHR7ZGlzcGxheTpub25lfUAtd2Via2l0LWtleWZyYW1lcyB5dHAtYmV6ZWwtZmFkZW91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDIpO3RyYW5zZm9ybTpzY2FsZSgyKX19QGtleWZyYW1lcyB5dHAtYmV6ZWwtZmFkZW91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDIpO3RyYW5zZm9ybTpzY2FsZSgyKX19QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1kZWxoaS1tb2Rlcm4tYmV6ZWwtZmFkZW91dHswJXtvcGFjaXR5OjB9MjUlLDc1JXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4zMyk7dHJhbnNmb3JtOnNjYWxlKDEuMzMpfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9fUBrZXlmcmFtZXMgeXRwLWRlbGhpLW1vZGVybi1iZXplbC1mYWRlb3V0ezAle29wYWNpdHk6MH0yNSUsNzUle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjMzKTt0cmFuc2Zvcm06c2NhbGUoMS4zMyl9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX19QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1kZWxoaS1tb2Rlcm4tYmV6ZWwtdGV4dC1mYWRlb3V0ezAle29wYWNpdHk6MH0yNSUsNzUle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgeXRwLWRlbGhpLW1vZGVybi1iZXplbC10ZXh0LWZhZGVvdXR7MCV7b3BhY2l0eTowfTI1JSw3NSV7b3BhY2l0eToxfXRve29wYWNpdHk6MH19Lnl0cC1jaHJvbWUtdG9wIC55dHAtY2FyZHMtYnV0dG9uey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3BvaW50ZXItZXZlbnRzOmFsbDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjYyfS55dHAtY2hyb21lLXRvcCAueXRwLWNhcmRzLWJ1dHRvblthcmlhLWhpZGRlbj10cnVlXXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLXRvcCAueXRwLWNhcmRzLWJ1dHRvbiAueXRwLWNhcmRzLWJ1dHRvbi1pY29ue3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLHJnYmEoMCwwLDAsLjYpKTtib3JkZXItcmFkaXVzOjE4cHh9Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1iaWctbW9kZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtY2FyZHMtYnV0dG9ue21heC13aWR0aDo4MHB4O3dpZHRoOjM2cHh9Lnl0cC1zaG93LWNhcmRzLXRpdGxlIC55dHAtY2FyZHMtYnV0dG9ue21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtc2hvdy1jYXJkcy10aXRsZSAueXRwLWNhcmRzLWJ1dHRvbnttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKS55dHAtc21hbGwtbW9kZSAueXRwLWNhcmRzLWJ1dHRvbntwYWRkaW5nLXRvcDoxNnB4fS55dHAtc2hvdy1jYXJkcy10aXRsZSAueXRwLWNhcmRzLWJ1dHRvbi10aXRsZXtkaXNwbGF5OmJsb2NrfS55dHAtY2FyZHMtYnV0dG9uLWljb24tc2hvcHBpbmcsLnl0cC1zbWFsbC1tb2RlIC55dHAtc2hvdy1jYXJkcy10aXRsZSAueXRwLWNhcmRzLWJ1dHRvbi10aXRsZXtkaXNwbGF5Om5vbmV9Lnl0cC1jYXJkcy1zaG9wcGluZy1hY3RpdmUgLnl0cC1jYXJkcy1idXR0b24taWNvbi1zaG9wcGluZ3tkaXNwbGF5OmlubGluZS1ibG9ja30ueXRwLWNhcmRzLXNob3BwaW5nLWFjdGl2ZSAueXRwLWNhcmRzLWJ1dHRvbi1pY29uLWRlZmF1bHR7ZGlzcGxheTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtY2FyZHMtYnV0dG9uLC55dHAtY2hyb21lLXRvcCAueXRwLWNhcmRzLWJ1dHRvbnt3aWR0aDphdXRvO2hlaWdodDphdXRvfS55dHAtY2FyZHMtYnV0dG9uLWljb257bWFyZ2luOmF1dG87d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0ueXRwLWJpZy1tb2RlIC55dHAtY2FyZHMtYnV0dG9uLWljb257d2lkdGg6NTRweDtoZWlnaHQ6NTRweH0ueXRwLWNhcmRzLWJ1dHRvbi10aXRsZXtmb250LXdlaWdodDo1MDA7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE0cHg7ZGlzcGxheTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1jYXJkcy1idXR0b24tdGl0bGV7Zm9udC1zaXplOjIwcHh9Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1iaWctbW9kZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtY2FyZHMtYnV0dG9uLXRpdGxle3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVufS55dHAtY2FyZHMtYnV0dG9uIC55dHAtc3ZnLXNoYWRvd3std2Via2l0LXRyYW5zaXRpb246c3Ryb2tlLW9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpzdHJva2Utb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWNhcmRzLXRlYXNlci1zaG93biAueXRwLWNhcmRzLWJ1dHRvbiAueXRwLXN2Zy1zaGFkb3d7c3Ryb2tlLW9wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246c3Ryb2tlLW9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSkgLjI1czt0cmFuc2l0aW9uOnN0cm9rZS1vcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpIC4yNXN9Lnl0cC1jYXJkcy1idXR0b24gLnl0cC1zdmctc2hhZG93LWZpbGx7LXdlYmtpdC10cmFuc2l0aW9uOmZpbGwtb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmZpbGwtb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWNhcmRzLXRlYXNlci1zaG93biAueXRwLWNhcmRzLWJ1dHRvbiAueXRwLXN2Zy1zaGFkb3ctZmlsbHtmaWxsLW9wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246ZmlsbC1vcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpIC4yNXM7dHJhbnNpdGlvbjpmaWxsLW9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSkgLjI1c30ueXRwLWNhcmRzLXNob3BwaW5nLWFjdGl2ZS55dHAtY2FyZHMtdGVhc2VyLXNob3duIC55dHAtY2FyZHMtYnV0dG9uIC55dHAtc3ZnLWZpbGx7ZmlsbDojMjc5M2U2fS55dHAtY2FyZHMtc2hvcHBpbmctYWN0aXZlLnl0cC1jYXJkcy10ZWFzZXItc2hvd24gLnl0cC1jYXJkcy1idXR0b24gLnl0cC1zdmctc2hhZG93e3N0cm9rZTojZmZmO3N0cm9rZS1vcGFjaXR5OjF9Lnl0cC1jYXJkcy1zaG9wcGluZy1hY3RpdmUueXRwLWNhcmRzLXRlYXNlci1zaG93biAueXRwLWNhcmRzLWJ1dHRvbiAueXRwLXN2Zy1zaGFkb3ctZmlsbHtmaWxsOiNmZmY7ZmlsbC1vcGFjaXR5OjF9Lnl0cC1jYXJkcy10ZWFzZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjguNXB4O3JpZ2h0OjA7bWF4LXdpZHRoOjkwJTtvcGFjaXR5Oi43NTtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjYxOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWJpZy1tb2RlIC55dHAtY2FyZHMtdGVhc2Vye3RvcDoxM3B4fS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKS55dHAtc21hbGwtbW9kZSAueXRwLWNhcmRzLXRlYXNlcnt0b3A6MTZweH0uaHRtbDUtdmlkZW8tcGxheWVyLmFkLXNob3dpbmc6bm90KC52aWRlb0FkVWlSZWRlc2lnbikgLnl0cC1jYXJkcy10ZWFzZXJ7dG9wOjQwcHh9Lnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUgLnl0cC1jYXJkcy10ZWFzZXIsLnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUueXRwLWNhcmRzLXRlYXNlci1zaG93biAueXRwLWNhcmRzLXRlYXNlcntvcGFjaXR5OjF9Lnl0cC1jYXJkcy10ZWFzZXItc2hvd24gLnl0cC1jYXJkcy10ZWFzZXJ7b3BhY2l0eTouOX0ueXRwLWNhcmRzLXRlYXNlci1zaG93biAueXRwLWNhcmRzLXRlYXNlcjpob3ZlcntvcGFjaXR5OjF9Lnl0cC1hdXRvaGlkZTpub3QoLnl0cC1jYXJkcy10ZWFzZXItc2hvd24pIC55dHAtY2FyZHMtdGVhc2VyLC55dHAtaXYtZHJhd2VyLW9wZW4gLnl0cC1jYXJkcy10ZWFzZXJ7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpIC4zM3M7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpIC4zM3N9Lnl0cC1pdi1kcmF3ZXItb3BlbiAueXRwLWNhcmRzLXRlYXNlcnstd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6MHM7dHJhbnNpdGlvbi1kZWxheTowc30ueXRwLWNhcmRzLXRlYXNlciAueXRwLWNhcmRzLXRlYXNlci1ib3gsLnl0cC1jYXJkcy10ZWFzZXIgLnl0cC1jYXJkcy10ZWFzZXItdGV4dHtoZWlnaHQ6MzFweH0ueXRwLWJpZy1tb2RlIC55dHAtY2FyZHMtdGVhc2VyIC55dHAtY2FyZHMtdGVhc2VyLWJveCwueXRwLWJpZy1tb2RlIC55dHAtY2FyZHMtdGVhc2VyIC55dHAtY2FyZHMtdGVhc2VyLXRleHR7aGVpZ2h0OjQ2cHh9Lnl0cC1jYXJkcy10ZWFzZXIgLnl0cC1jYXJkcy10ZWFzZXItYm94e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjE4cHg7Ym9yZGVyLXJhZGl1czoycHg7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2YxZjFmMTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjMzcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zM3MgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMzNzIGN1YmljLWJlemllciguNCwwLDEsMSk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKDApIHRyYW5zbGF0ZVgoMCk7LW1zLXRyYW5zZm9ybTpzY2FsZVgoMCkgdHJhbnNsYXRlWCgwKTt0cmFuc2Zvcm06c2NhbGVYKDApIHRyYW5zbGF0ZVgoMCk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IDA7LW1zLXRyYW5zZm9ybS1vcmlnaW46cmlnaHQgMDt0cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IDB9Lnl0cC1iaWctbW9kZSAueXRwLWNhcmRzLXRlYXNlciAueXRwLWNhcmRzLXRlYXNlci1ib3h7cmlnaHQ6MjdweH0ueXRwLWNhcmRzLXRlYXNlci1zaG93biAueXRwLWNhcmRzLXRlYXNlciAueXRwLWNhcmRzLXRlYXNlci1ib3h7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSAuMjVzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSAuMjVzLC13ZWJraXQtdHJhbnNmb3JtIC4zM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSAuMjVzOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWCgxKSB0cmFuc2xhdGVYKDE4cHgpOy1tcy10cmFuc2Zvcm06c2NhbGVYKDEpIHRyYW5zbGF0ZVgoMThweCk7dHJhbnNmb3JtOnNjYWxlWCgxKSB0cmFuc2xhdGVYKDE4cHgpfS55dHAtYmlnLW1vZGUueXRwLWNhcmRzLXRlYXNlci1zaG93biAueXRwLWNhcmRzLXRlYXNlciAueXRwLWNhcmRzLXRlYXNlci1ib3h7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKDEpIHRyYW5zbGF0ZVgoMjdweCk7LW1zLXRyYW5zZm9ybTpzY2FsZVgoMSkgdHJhbnNsYXRlWCgyN3B4KTt0cmFuc2Zvcm06c2NhbGVYKDEpIHRyYW5zbGF0ZVgoMjdweCl9W2Rpcj1ydGxdIC55dHAtY2FyZHMtdGVhc2VyLXNob3duIC55dHAtY2FyZHMtdGVhc2VyIC55dHAtY2FyZHMtdGVhc2VyLWJveHstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSkgdHJhbnNsYXRlWCgtMThweCk7LW1zLXRyYW5zZm9ybTpzY2FsZVgoMSkgdHJhbnNsYXRlWCgtMThweCk7dHJhbnNmb3JtOnNjYWxlWCgxKSB0cmFuc2xhdGVYKC0xOHB4KX1bZGlyPXJ0bF0gLnl0cC1iaWctbW9kZS55dHAtY2FyZHMtdGVhc2VyLXNob3duIC55dHAtY2FyZHMtdGVhc2VyIC55dHAtY2FyZHMtdGVhc2VyLWJveHstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSkgdHJhbnNsYXRlWCgtMjdweCk7LW1zLXRyYW5zZm9ybTpzY2FsZVgoMSkgdHJhbnNsYXRlWCgtMjdweCk7dHJhbnNmb3JtOnNjYWxlWCgxKSB0cmFuc2xhdGVYKC0yN3B4KX0ueXRwLWNhcmRzLXRlYXNlciAueXRwLWNhcmRzLXRlYXNlci10ZXh0e3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCAzNnB4IDAgMTBweDttYXgtd2lkdGg6MDtvcGFjaXR5OjA7Y29sb3I6IzAwMDtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjEwOS4wOTA5MDklO2xpbmUtaGVpZ2h0OjMxcHg7dGV4dC1zaGFkb3c6bm9uZTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjE2NXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxtYXgtd2lkdGggMHMgZWFzZSAuMTY1czt0cmFuc2l0aW9uOm9wYWNpdHkgLjE2NXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxtYXgtd2lkdGggMHMgZWFzZSAuMTY1c30ueXRwLWJpZy1tb2RlIC55dHAtY2FyZHMtdGVhc2VyIC55dHAtY2FyZHMtdGVhc2VyLXRleHR7cGFkZGluZzowIDY2cHggMCAxMnB4O2xpbmUtaGVpZ2h0OjQ2cHh9Lnl0cC1jYXJkcy10ZWFzZXItc2hvd24gLnl0cC1jYXJkcy10ZWFzZXIgLnl0cC1jYXJkcy10ZWFzZXItdGV4dHttYXgtd2lkdGg6NDE1cHg7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xNjVzIGN1YmljLWJlemllcigwLDAsLjIsMSkgLjQxNXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNjVzIGN1YmljLWJlemllcigwLDAsLjIsMSkgLjQxNXN9Lnl0cC1iaWctbW9kZS55dHAtY2FyZHMtdGVhc2VyLXNob3duIC55dHAtY2FyZHMtdGVhc2VyIC55dHAtY2FyZHMtdGVhc2VyLXRleHR7bWF4LXdpZHRoOjYzNXB4fS55dHAtY2FyZHMtdGVhc2VyLWNoYW5uZWwtYXZhdGFye2Rpc3BsYXk6bm9uZX0ueXRwLWNhcmRzLXRlYXNlci1kaXNtaXNzaWJsZSAueXRwLWNhcmRzLXRlYXNlci10ZXh0e3dpZHRoOjMwcHg7bGVmdDpjYWxjKDEwMCUgLSAzMHB4KTstd2Via2l0LXRyYW5zaXRpb246d2lkdGggLjMzcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOndpZHRoIC4zM3MgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7b3BhY2l0eToxOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bSxyZ2JhKDAsMCwwLC42KSk7cGFkZGluZzowO2JvcmRlci1yYWRpdXM6MThweH0ueXRwLWJpZy1tb2RlLnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUgLnl0cC1jYXJkcy10ZWFzZXItdGV4dHtib3JkZXItcmFkaXVzOjIycHh9Lnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUgLnl0cC1jYXJkcy10ZWFzZXItY2hhbm5lbC1hdmF0YXJ7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDttYXJnaW46NHB4O2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnR9Lnl0cC1iaWctbW9kZS55dHAtY2FyZHMtdGVhc2VyLWRpc21pc3NpYmxlIC55dHAtY2FyZHMtdGVhc2VyLWNoYW5uZWwtYXZhdGFye21hcmdpbjoxMnB4fS55dHAtY2FyZHMtdGVhc2VyLWRpc21pc3NpYmxlLnl0cC1jYXJkcy10ZWFzZXItc2hvd24gLnl0cC1jYXJkcy10ZWFzZXIgLnl0cC1jYXJkcy10ZWFzZXItdGV4dHt3aWR0aDoxMDAlO2xlZnQ6MDstd2Via2l0LXRyYW5zaXRpb246d2lkdGggLjMzcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSAuMnMsbGVmdCAuMzNzIGN1YmljLWJlemllciguMDUsMCwwLDEpIC4yczt0cmFuc2l0aW9uOndpZHRoIC4zM3MgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSkgLjJzLGxlZnQgLjMzcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSAuMnN9Lnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUgLnl0cC1jYXJkcy10ZWFzZXItaW5mby1pY29ue2hlaWdodDozMHB4O3dpZHRoOjMwcHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtwYWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdH0ueXRwLWNhcmRzLXRlYXNlci1kaXNtaXNzaWJsZSAueXRwLWNhcmRzLXRlYXNlci1jbG9zZS1idXR0b257aGVpZ2h0OjMwcHg7d2lkdGg6MjBweDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO3BhZGRpbmc6MDttYXJnaW46MCA1cHg7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6cmlnaHR9Lnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUgLnl0cC1jYXJkcy10ZWFzZXItY2xvc2UtYnV0dG9uIHBhdGh7ZmlsbDojNzE3MTcxfS55dHAtY2FyZHMtdGVhc2VyLWRpc21pc3NpYmxlIC55dHAtY2FyZHMtdGVhc2VyLWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2NvbG9yOiNmZmY7bGluZS1oZWlnaHQ6MzBweDttYXgtd2lkdGg6MzUwcHh9Lnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUgLnl0cC1jYXJkcy10ZWFzZXItYm94e2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTpub25lfS55dHAtYmlnLW1vZGUueXRwLWNhcmRzLXRlYXNlci1kaXNtaXNzaWJsZSAueXRwLWNhcmRzLXRlYXNlci1pbmZvLWljb257aGVpZ2h0OjQ1cHg7d2lkdGg6NDVweH0ueXRwLWJpZy1tb2RlLnl0cC1jYXJkcy10ZWFzZXItZGlzbWlzc2libGUgLnl0cC1jYXJkcy10ZWFzZXItY2xvc2UtYnV0dG9ue2hlaWdodDo0NXB4O3dpZHRoOjMwcHg7bWFyZ2luOjAgNy41cHh9Lnl0cC1iaWctbW9kZS55dHAtY2FyZHMtdGVhc2VyLWRpc21pc3NpYmxlIC55dHAtY2FyZHMtdGVhc2VyLWxhYmVse2xpbmUtaGVpZ2h0OjQ1cHg7bWF4LXdpZHRoOjUyNXB4fS55dHAtYmlnLW1vZGUueXRwLWNhcmRzLXRlYXNlci1kaXNtaXNzaWJsZSAueXRwLWNhcmRzLXRlYXNlci10ZXh0e3BhZGRpbmc6MH0ueXRwLWVtYmVkLnl0cC1jYXJkcy10ZWFzZXItc2hvd24ueXRwLWNhcmRzLXRlYXNlci1kaXNtaXNzaWJsZSAueXRwLWNocm9tZS10b3AtYnV0dG9ucz46bm90KC55dHAtY2FyZHMtdGVhc2VyKXt2aXNpYmlsaXR5OmhpZGRlbn0ueXRwLXRpdGxlLWVuYWJsZS1jaGFubmVsLWxvZ28gLnl0cC10aXRsZXttaW4taGVpZ2h0OjUycHh9Lnl0cC1iaWctbW9kZS55dHAtdGl0bGUtZW5hYmxlLWNoYW5uZWwtbG9nbyAueXRwLXRpdGxle21pbi1oZWlnaHQ6NzVweH0ueXRwLXNob3J0cy1tb2RlLnl0cC10aXRsZS1lbmFibGUtY2hhbm5lbC1sb2dvIC55dHAtdGl0bGV7bWluLWhlaWdodDo0MnB4fTpub3QoLnl0cC1zaG9ydHMtbW9kZSkueXRwLXRpdGxlLWVuYWJsZS1jaGFubmVsLWxvZ28gLnl0cC10aXRsZS10ZXh0e3BhZGRpbmctbGVmdDo1MHB4fTpub3QoLnl0cC1zaG9ydHMtbW9kZSkueXRwLWJpZy1tb2RlLnl0cC10aXRsZS1lbmFibGUtY2hhbm5lbC1sb2dvIC55dHAtdGl0bGUtdGV4dHtwYWRkaW5nLWxlZnQ6NzVweH0ueXRwLXRpdGxlLWxpbmt7ZGlzcGxheTpibG9jazt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbn0ueXRwLXRpdGxlLWNoYW5uZWwtbG9nb3t3aWR0aDo0MHB4O2hlaWdodDo0MHB4Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0Oy13ZWJraXQtZmxleC1zaHJpbms6MDtmbGV4LXNocmluazowO21hcmdpbjo1cHg7LXdlYmtpdC1iYWNrZ3JvdW5kLW9yaWdpbjpjb250ZW50LWJveDtiYWNrZ3JvdW5kLW9yaWdpbjpjb250ZW50LWJveDtmbG9hdDpsZWZ0O2JvcmRlci1yYWRpdXM6NTAlfS55dHAtYmlnLW1vZGUgLnl0cC10aXRsZS1jaGFubmVsLWxvZ297d2lkdGg6NjBweDtoZWlnaHQ6NjBweH0ueXRwLWVtYmVkLW1vYmlsZSAueXRwLXRpdGxlLWNoYW5uZWwtbG9nbywueXRwLWVtYmVkLW1vYmlsZS55dHAtc21hbGwtbW9kZSAueXRwLXRpdGxlLWNoYW5uZWwtbG9nb3t3aWR0aDo0OHB4O2hlaWdodDo0OHB4O21hcmdpbjowfUAtd2Via2l0LWtleWZyYW1lcyB5dHAtdGl0bGUtY2hhbm5lbC1mYWRlLWluezAle2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7bWF4LXdpZHRoOjEwJX0yNSV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM1LDM1LDM1LC45KX03NSV7bWF4LXdpZHRoOjEwMCV9fUBrZXlmcmFtZXMgeXRwLXRpdGxlLWNoYW5uZWwtZmFkZS1pbnswJXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O21heC13aWR0aDoxMCV9MjUle2JhY2tncm91bmQtY29sb3I6cmdiYSgzNSwzNSwzNSwuOSl9NzUle21heC13aWR0aDoxMDAlfX1ALXdlYmtpdC1rZXlmcmFtZXMgeXRwLXRpdGxlLWNoYW5uZWwtZmFkZS1vdXR7MCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM1LDM1LDM1LC45KTt3aWR0aDo1MDBweH03NSV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM1LDM1LDM1LC45KTt3aWR0aDo1MHB4fX1Aa2V5ZnJhbWVzIHl0cC10aXRsZS1jaGFubmVsLWZhZGUtb3V0ezAle2JhY2tncm91bmQtY29sb3I6cmdiYSgzNSwzNSwzNSwuOSk7d2lkdGg6NTAwcHh9NzUle2JhY2tncm91bmQtY29sb3I6cmdiYSgzNSwzNSwzNSwuOSk7d2lkdGg6NTBweH19QC13ZWJraXQta2V5ZnJhbWVzIHl0cC10aXRsZS1jaGFubmVsLWZhZGUtaW4tYmlnLW1vZGV7MCV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDttYXgtd2lkdGg6MTUlfTI1JXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzUsMzUsMzUsLjkpfTc1JXttYXgtd2lkdGg6MTAwJX19QGtleWZyYW1lcyB5dHAtdGl0bGUtY2hhbm5lbC1mYWRlLWluLWJpZy1tb2RlezAle2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7bWF4LXdpZHRoOjE1JX0yNSV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM1LDM1LDM1LC45KX03NSV7bWF4LXdpZHRoOjEwMCV9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtdGl0bGUtY2hhbm5lbC1mYWRlLW91dC1iaWctbW9kZXswJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzUsMzUsMzUsLjkpO3dpZHRoOjUwMHB4fTc1JXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzUsMzUsMzUsLjkpO3dpZHRoOjcwcHh9fUBrZXlmcmFtZXMgeXRwLXRpdGxlLWNoYW5uZWwtZmFkZS1vdXQtYmlnLW1vZGV7MCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM1LDM1LDM1LC45KTt3aWR0aDo1MDBweH03NSV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM1LDM1LDM1LC45KTt3aWR0aDo3MHB4fX1ALXdlYmtpdC1rZXlmcmFtZXMgeXRwLXRpdGxlLWV4cGFuZGVkLWZhZGUtaW57MCV7b3BhY2l0eTowfTI1JXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIHl0cC10aXRsZS1leHBhbmRlZC1mYWRlLWluezAle29wYWNpdHk6MH0yNSV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19QC13ZWJraXQta2V5ZnJhbWVzIHl0cC10aXRsZS1leHBhbmRlZC1mYWRlLW91dHswJXtvcGFjaXR5OjF9MjUle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgeXRwLXRpdGxlLWV4cGFuZGVkLWZhZGUtb3V0ezAle29wYWNpdHk6MX0yNSV7b3BhY2l0eToxfXRve29wYWNpdHk6MH19Lnl0cC10aXRsZS1jaGFubmVse2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoyNXB4O2Rpc3BsYXk6bm9uZTtoZWlnaHQ6NTBweDttYXJnaW4tbGVmdDotNXB4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6N3B4O2xlZnQ6MDt3aWR0aDo1MHB4fS55dHAtYmlnLW1vZGUgLnl0cC10aXRsZS1jaGFubmVse3dpZHRoOjcwcHg7aGVpZ2h0OjcwcHg7bWFyZ2luLXRvcDoxMHB4fS55dHAtdGl0bGUtZW5hYmxlLWNoYW5uZWwtbG9nbyAueXRwLXRpdGxlLWNoYW5uZWx7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXh9Lnl0cC10aXRsZS1jaGFubmVsLnl0cC10aXRsZS1zaG93LWV4cGFuZGVkey13ZWJraXQtYW5pbWF0aW9uOnl0cC10aXRsZS1jaGFubmVsLWZhZGUtaW4gLjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpO2FuaW1hdGlvbjp5dHAtdGl0bGUtY2hhbm5lbC1mYWRlLWluIC41cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0ueXRwLWJpZy1tb2RlIC55dHAtdGl0bGUtY2hhbm5lbC55dHAtdGl0bGUtc2hvdy1leHBhbmRlZHstd2Via2l0LWFuaW1hdGlvbjp5dHAtdGl0bGUtY2hhbm5lbC1mYWRlLWluLWJpZy1tb2RlIC41cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTthbmltYXRpb246eXRwLXRpdGxlLWNoYW5uZWwtZmFkZS1pbi1iaWctbW9kZSAuNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9Lnl0cC10aXRsZS1jaGFubmVsLnl0cC10aXRsZS1leHBhbmRlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzUsMzUsMzUsLjkpO2JvcmRlci1yYWRpdXM6MjVweDttYXgtd2lkdGg6MTAwJTt6LWluZGV4OjE7d2lkdGg6YXV0b30ueXRwLWJpZy1tb2RlIC55dHAtdGl0bGUtY2hhbm5lbC55dHAtdGl0bGUtZXhwYW5kZWR7Ym9yZGVyLXJhZGl1czozNXB4fS55dHAtdGl0bGUtZXhwYW5kZWQtb3ZlcmxheXtkaXNwbGF5OmNvbnRlbnRzO21heC13aWR0aDoxMDAlO29wYWNpdHk6MDtwYWRkaW5nLXJpZ2h0OjhweDt3aWR0aDphdXRvfS55dHAtYmlnLW1vZGUgLnl0cC10aXRsZS1leHBhbmRlZC1vdmVybGF5e21heC13aWR0aDoxMDAlfS55dHAtdGl0bGUtZXhwYW5kZWQgLnl0cC10aXRsZS1leHBhbmRlZC1vdmVybGF5e29wYWNpdHk6MX0ueXRwLXRpdGxlLXNob3ctZXhwYW5kZWQgLnl0cC10aXRsZS1leHBhbmRlZC1vdmVybGF5e29wYWNpdHk6MTstd2Via2l0LWFuaW1hdGlvbjp5dHAtdGl0bGUtZXhwYW5kZWQtZmFkZS1pbiAuNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7YW5pbWF0aW9uOnl0cC10aXRsZS1leHBhbmRlZC1mYWRlLWluIC41cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0ueXRwLWJpZy1tb2RlIC55dHAtdGl0bGUtc2hvdy1leHBhbmRlZCAueXRwLXRpdGxlLWV4cGFuZGVkLW92ZXJsYXl7LXdlYmtpdC1hbmltYXRpb246eXRwLXRpdGxlLWV4cGFuZGVkLWZhZGUtaW4tYmlnLW1vZGUgLjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpO2FuaW1hdGlvbjp5dHAtdGl0bGUtZXhwYW5kZWQtZmFkZS1pbi1iaWctbW9kZSAuNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9Lnl0cC10aXRsZS1leHBhbmRlZC1oZWFkaW5ne21hcmdpbjo1cHg7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxO2ZsZXg6MTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtYWxpZ24tc2VsZjpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXJ9Lnl0cC10aXRsZS1leHBhbmRlZC10aXRsZXtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo0MDA7bWFyZ2luOjB9Lnl0cC1iaWctbW9kZSAueXRwLXRpdGxlLWV4cGFuZGVkLXRpdGxle2ZvbnQtc2l6ZToyMnB4fS55dHAtdGl0bGUtZXhwYW5kZWQtdGl0bGUgYXtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtdGl0bGUtZXhwYW5kZWQtc3VidGl0bGV7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO21hcmdpbjowfS55dHAtYmlnLW1vZGUgLnl0cC10aXRsZS1leHBhbmRlZC1zdWJ0aXRsZXtmb250LXNpemU6MTZweH0ueXRwLWNocm9tZS10b3AgLnl0cC10aXRsZS1jaGFubmVsIC55dHAtc2J7LXdlYmtpdC1hbGlnbi1zZWxmOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjttYXJnaW46NXB4O2hlaWdodDphdXRvO3dpZHRoOmF1dG87cGFkZGluZzowO3BhZGRpbmctbGVmdDoxNnB4O3RleHQtc2hhZG93Om5vbmU7bWFyZ2luLXJpZ2h0OjdweH0ueXRwLWNocm9tZS10b3AgLnl0cC10aXRsZS1jaGFubmVsIC55dHAtc2Itc3Vic2NyaWJlLGEueXRwLXNiLXN1YnNjcmliZXttYXJnaW4tbGVmdDo2NXB4fS55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtdGl0bGUtY2hhbm5lbCAueXRwLXNiLXN1YnNjcmliZSwueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLXRvcCAueXRwLXRpdGxlLWNoYW5uZWwgLnl0cC1zYi11bnN1YnNjcmliZXtmb250LXNpemU6MTZweDtwYWRkaW5nOjE0cHggMjBweDttYXJnaW4tcmlnaHQ6N3B4fS55dHAtdGl0bGUtZXhwYW5kZWQgLnl0cC10aXRsZS1iZWFjb24sLnl0cC10aXRsZS1leHBhbmRlZCAueXRwLXRpdGxlLXN1YnRleHQsLnl0cC10aXRsZS1leHBhbmRlZCAueXRwLXRpdGxlLXRleHR7ZGlzcGxheTpub25lfUAtd2Via2l0LWtleWZyYW1lcyB5dHAtdGl0bGUtYmVhY29uLXB1bHNlezAle2JhY2tncm91bmQ6YmxhY2s7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtsZWZ0OjVweDt0b3A6NXB4fTUwJXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7bGVmdDowO3RvcDowfX1Aa2V5ZnJhbWVzIHl0cC10aXRsZS1iZWFjb24tcHVsc2V7MCV7YmFja2dyb3VuZDpibGFjazt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2xlZnQ6NXB4O3RvcDo1cHh9NTAle2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7d2lkdGg6NTBweDtoZWlnaHQ6NTBweDtsZWZ0OjA7dG9wOjB9fS55dHAtdGl0bGUtYmVhY29ue2JvcmRlci1yYWRpdXM6MjVweDtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDotMTstd2Via2l0LWFuaW1hdGlvbjp5dHAtdGl0bGUtYmVhY29uLXB1bHNlIDJzIDU7YW5pbWF0aW9uOnl0cC10aXRsZS1iZWFjb24tcHVsc2UgMnMgNX0udW5zdGFydGVkLW1vZGUgLnl0cC10aXRsZS1iZWFjb257ZGlzcGxheTpibG9ja30ueXRwLWJpZy1tb2RlIC55dHAtY2hhcHRlci10aXRsZS55dHAtYnV0dG9uLnl0cC1jaGFwdGVyLWNvbnRhaW5lci1kaXNhYmxlZCwueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbi55dHAtY2hhcHRlci1jb250YWluZXItZGlzYWJsZWR7b3BhY2l0eTouOX0ueXRwLWJpZy1tb2RlIC55dHAtY2hhcHRlci10aXRsZS55dHAtYnV0dG9uLC55dHAtY2hhcHRlci10aXRsZS55dHAtYnV0dG9uLC55dHAtZW1iZWQtbW9iaWxlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtY2hhcHRlci10aXRsZS55dHAtYnV0dG9uLC55dHAtc21hbGwtbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOi13ZWJraXQtZml0LWNvbnRlbnQ7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudDttYXgtd2lkdGg6MTAwJX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbnstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0tbGlnaHQscmdiYSgwLDAsMCwuMykpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbiBzdmd7LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hhcHRlci10aXRsZS55dHAtYnV0dG9ue2hlaWdodDp2YXIoLS15dC1kZWxoaS1waWxsLWhlaWdodCw0OHB4KTtib3JkZXItcmFkaXVzOjI4cHg7cGFkZGluZzowIDE2cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaGFwdGVyLXRpdGxlLnl0cC1idXR0b24gc3Zne3BhZGRpbmc6MH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjRweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BvaW50ZXItZXZlbnRzOm5vbmU7Ym9yZGVyLXJhZGl1czoyOHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hhcHRlci10aXRsZS55dHAtYnV0dG9uOmhvdmVyOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJ1dHRvbi1zZWNvbmRhcnkscmdiYSgyNTUsMjU1LDI1NSwuMSkpOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hhcHRlci10aXRsZS55dHAtYnV0dG9uOmFjdGl2ZTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10b25hbC1ob3ZlcixyZ2JhKDI1NSwyNTUsMjU1LC4yKSk7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKSAueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbntoZWlnaHQ6dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsNTZweCl9Lnl0cC1jaGFwdGVyLWNvbnRhaW5lci1kaXNhYmxlZCAueXRwLWNoYXB0ZXItdGl0bGUtY2hldnJvbiwueXRwLWVtYmVkIC55dHAtY2hhcHRlci10aXRsZS1jaGV2cm9uLC55dHAtcHJvZmlsZS1wYWdlIC55dHAtY2hhcHRlci10aXRsZS1jaGV2cm9ue2Rpc3BsYXk6bm9uZX0ueXRwLWNoYXB0ZXItdGl0bGUtY2hldnJvbnstd2Via2l0LWJveC1mbGV4OjA7LXdlYmtpdC1mbGV4OjAgMCAyMHB4O2ZsZXg6MCAwIDIwcHg7d2lkdGg6MjBweDtwb3NpdGlvbjpyZWxhdGl2ZTtib3R0b206MXB4fS55dHAtY2hhcHRlci10aXRsZS1jb250ZW50ey13ZWJraXQtYm94LWZsZXg6MDstd2Via2l0LWZsZXg6MCAxIGF1dG87ZmxleDowIDEgYXV0bzt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaGFwdGVyLXRpdGxlLWNvbnRlbnR7bGluZS1oZWlnaHQ6MjRweDtmb250LXdlaWdodDo1MDB9Lnl0cC1iaWctbW9kZSAueXRwLWNoYXB0ZXItdGl0bGUtY2hldnJvbnt3aWR0aDoyOHB4fS55dHAtY2hhcHRlci10aXRsZS1jaGV2cm9uIHN2Z3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lnl0cC1jaGFwdGVyLXRpdGxlLXByZWZpeHtwYWRkaW5nLXJpZ2h0OjVweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNoYXB0ZXItdGl0bGUtcHJlZml4LC55dHAtbGl2ZSAueXRwLWNoYXB0ZXItdGl0bGV7ZGlzcGxheTpub25lfS55dHAtZW1iZWQgLnl0cC1jaGFwdGVyLWNvbnRhaW5lciAueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbiwueXRwLWVtYmVkLnl0cC1zbWFsbC1tb2RlIC55dHAtY2hhcHRlci1jb250YWluZXIgLnl0cC1jaGFwdGVyLXRpdGxlLnl0cC1idXR0b257Y3Vyc29yOnRleHQ7d2lkdGg6MTAwJX0ueXRwLWNoYXB0ZXItY29udGFpbmVyIC55dHAtcHJvZmlsZS1wYWdlLnl0cC1jaGFwdGVyLXRpdGxlLnl0cC1idXR0b257Y3Vyc29yOnRleHR9Lnl0cC1leHAtYm90dG9tLWNvbnRyb2wtZmxleGJveCAueXRwLWNoYXB0ZXItY29udGFpbmVyey13ZWJraXQtYm94LWZsZXg6MDstd2Via2l0LWZsZXg6MCAxIDEwMCU7ZmxleDowIDEgMTAwJTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc306bm90KC55dHAtZXhwLWJvdHRvbS1jb250cm9sLWZsZXhib3gpIC55dHAtY2hhcHRlci1jb250YWluZXJ7ZmxvYXQ6bGVmdH0ueXRwLWNoYXB0ZXItY29udGFpbmVye2hlaWdodDoxMDAlO2ZvbnQtc2l6ZToxMDklO3ZlcnRpY2FsLWFsaWduOnRvcDttYXJnaW46MCA1cHggMCAwO3doaXRlLXNwYWNlOm5vd3JhcDtsaW5lLWhlaWdodDo0N3B4fS55dHAtZW1iZWQgLnl0cC1jaGFwdGVyLWNvbnRhaW5lcntsaW5lLWhlaWdodDozOXB4fS55dHAtYmlnLW1vZGUgLnl0cC1jaGFwdGVyLWNvbnRhaW5lcntsaW5lLWhlaWdodDo1M3B4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hhcHRlci1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy10b3A6dmFyKC0teXQtZGVsaGktcGlsbC10b3AtaGVpZ2h0LDEycHgpOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtZmxleDowOy13ZWJraXQtZmxleDowIDEwMCBhdXRvO2ZsZXg6MCAxMDAgYXV0b30ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1jaGFwdGVyLWNvbnRhaW5lcntwYWRkaW5nLXRvcDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLXRvcC1oZWlnaHQsMjBweCl9Lnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLWNoYXB0ZXItY29udGFpbmVye2Rpc3BsYXk6bm9uZX0ueXRwLWNvbnRleHRtZW51e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjIzMDA7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO3RleHQtYWxpZ246bGVmdDtkaXJlY3Rpb246bHRyO2ZvbnQtc2l6ZToxMXB4O2xpbmUtaGVpZ2h0OjEuMzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO3dpbGwtY2hhbmdlOndpZHRoLGhlaWdodDtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1wb3B1cC55dHAtZGVsaGktbW9kZXJuLWNvbnRleHRtZW51e2JvcmRlci1yYWRpdXM6MTJweDstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0scmdiYSgwLDAsMCwuNikpfS55dHAtY29udGV4dG1lbnUgLnl0cC1jb2xsYXBzZXtoZWlnaHQ6MjBweDtvcGFjaXR5Oi45O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjIwcHg7dG9wOjEycHg7d2lkdGg6MjBweH0ueXRwLWNvbnRleHRtZW51IC55dHAtY29sbGFwc2U6aG92ZXJ7b3BhY2l0eToxfS55dHAtZG5pLnl0cC1jb250ZXh0bWVudXt0ZXh0LXNoYWRvdzpub25lfS55dHAtYmlnLW1vZGUueXRwLWNvbnRleHRtZW51e2ZvbnQtc2l6ZToxN3B4fS55dHAtYXV0b2hpZGUueXRwLWVtYmVkLW92ZXJsYXlzLWF1dG9oaWRlLnl0cC1jb250ZXh0bWVudXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKS55dHAtZW1iZWQtb3ZlcmxheXMtYXV0b2hpZGUueXRwLWNvbnRleHRtZW51e2Rpc3BsYXk6bm9uZX0ueXRwLWNvbnRleHRtZW51IGEsLnl0cC1jb250ZXh0bWVudSBhOmZvY3VzLC55dHAtY29udGV4dG1lbnUgYTpob3Zlcntjb2xvcjppbmhlcml0O3RleHQtZGVjb3JhdGlvbjpub25lfS55dHAtY29weXRleHR7bWFyZ2luOjAgMTBweDttYXgtd2lkdGg6MjAwcHg7b3V0bGluZTpub25lO3RleHQtc2hhZG93Om5vbmU7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7LW1vei11c2VyLXNlbGVjdDp0ZXh0Oy1tcy11c2VyLXNlbGVjdDp0ZXh0Oy13ZWJraXQtdXNlci1zZWxlY3Q6dGV4dH0ueXRwLWNvcHl0ZXh0OjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2NvbG9yOmJsYWNrfS55dHAtaHRtbDUtY2xpcGJvYXJke3RvcDowO2xlZnQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTstbW96LXVzZXItc2VsZWN0OnRleHQ7LW1zLXVzZXItc2VsZWN0OnRleHQ7LXdlYmtpdC11c2VyLXNlbGVjdDp0ZXh0fS55dHAtc2hvdy1jb3B5bGluay10aXRsZS55dHAtY29weWxpbmstYnV0dG9ue21hcmdpbi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHh9Lnl0cC1vdmVyZmxvdy1wYW5lbCAueXRwLXNob3ctY29weWxpbmstdGl0bGUueXRwLWNvcHlsaW5rLWJ1dHRvbnttYXJnaW4tbGVmdDoyMHB4O21hcmdpbi1yaWdodDoyMHB4fS55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtY29weWxpbmstYnV0dG9uLC55dHAtY2hyb21lLXRvcCAueXRwLWNvcHlsaW5rLWJ1dHRvbnt3aWR0aDphdXRvO2hlaWdodDphdXRvfS5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtYmlnLW1vZGUpIC55dHAtY2hyb21lLXRvcCAueXRwLWNvcHlsaW5rLWJ1dHRvbnttaW4td2lkdGg6NDhweDttYXgtd2lkdGg6ODBweH0ueXRwLWNvcHlsaW5rLWljb257bWFyZ2luOmF1dG87d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0ueXRwLWJpZy1tb2RlIC55dHAtY29weWxpbmstaWNvbnt3aWR0aDo1NHB4O2hlaWdodDo1NHB4fS55dHAtb3ZlcmZsb3ctcGFuZWwgLnl0cC1jb3B5bGluay1pY29ue3dpZHRoOjYwcHg7aGVpZ2h0OjYwcHg7bWFyZ2luLWJvdHRvbToxMHB4fS55dHAtY29weWxpbmstdGl0bGV7Zm9udC13ZWlnaHQ6NTAwO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxNHB4O2Rpc3BsYXk6bm9uZX0ueXRwLWJpZy1tb2RlIC55dHAtY29weWxpbmstdGl0bGUsLnl0cC1vdmVyZmxvdy1wYW5lbCAueXRwLWNvcHlsaW5rLXRpdGxle2ZvbnQtc2l6ZToyMHB4fS55dHAtc2hvdy1jb3B5bGluay10aXRsZSAueXRwLWNvcHlsaW5rLXRpdGxle2Rpc3BsYXk6YmxvY2t9Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1iaWctbW9kZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtY29weWxpbmstdGl0bGV7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW59Lnl0cC1jb3VudGRvd24tdGltZXJ7d2lkdGg6MzZweDtoZWlnaHQ6MzZweDstd2Via2l0LXRyYW5zaXRpb246YWxsIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246YWxsIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3otaW5kZXg6Mzk7dGV4dC1hbGlnbjpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cmlnaHQ6MDstd2Via2l0LWJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLDAsMCwuNik7Ym94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsMCwwLC42KTtib3JkZXItcmFkaXVzOjE4cHh9Lnl0cC1icmFuZGluZy1zaG93biAueXRwLWNvdW50ZG93bi10aW1lcntib3R0b206NTJweH0ueXRwLWNvdW50ZG93bi10aW1lci10aW1le2ZvbnQtc2l6ZToxOHB4O2NvbG9yOiNGRkY7bGluZS1oZWlnaHQ6MzZweDt3aWR0aDozNnB4O2ZvbnQtd2VpZ2h0OjUwMDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7dGV4dC1zaGFkb3c6MCAwIDRweCByZ2IoMCwwLDApfS55dHAtZnJlZS1wcmV2aWV3LWNvdW50ZG93bi10aW1lcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6NXB4O2xlZnQ6MjBweDtoZWlnaHQ6MjRweDtib3R0b206MjBweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7dGV4dC1hbGlnbjpsZWZ0O2JhY2tncm91bmQtY29sb3I6IzAwMDtib3JkZXItcmFkaXVzOjRweDtjb2xvcjojZmZmO3dpZHRoOmF1dG87ei1pbmRleDo4Mjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lnl0cC1mcmVlLXByZXZpZXctY291bnRkb3duLXRpbWVyLXNlcGFyYXRvcntwYWRkaW5nOjAgM3B4fS55dC11aS1lbGxpcHNpc3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDoxLjNlbTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWw7d29yZC13cmFwOmJyZWFrLXdvcmR9Lnl0LXVpLWVsbGlwc2lzLW5vd3JhcC1zaW5nbGUtbGluZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDoxLjNlbTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOmJyZWFrLXdvcmQ7bWF4LWhlaWdodDoxLjNlbX0ueXQtdWktZWxsaXBzaXM6YWZ0ZXIsLnl0LXVpLWVsbGlwc2lzOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7cG9zaXRpb246YWJzb2x1dGV9Lnl0LXVpLWVsbGlwc2lzOmJlZm9yZXtjb250ZW50OiLigKYiO3JpZ2h0OjB9Lnl0LXVpLWVsbGlwc2lzOmFmdGVye2NvbnRlbnQ6IiI7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0ueXQtdWktZWxsaXBzaXMtMjpiZWZvcmV7dG9wOjEuM2VtfS55dC11aS1lbGxpcHNpcy0zOmJlZm9yZXt0b3A6Mi42ZW19Lnl0LXVpLWVsbGlwc2lzLTQ6YmVmb3Jle3RvcDozLjllbX0ueXQtdWktZWxsaXBzaXMtNjpiZWZvcmV7dG9wOjYuNWVtfS55dC11aS1lbGxpcHNpcy0xMDpiZWZvcmV7dG9wOjExLjdlbX0ueXQtdWktZWxsaXBzaXMtMnttYXgtaGVpZ2h0OjIuNmVtfS55dC11aS1lbGxpcHNpcy0ze21heC1oZWlnaHQ6My45ZW19Lnl0LXVpLWVsbGlwc2lzLTR7bWF4LWhlaWdodDo1LjJlbX0ueXQtdWktZWxsaXBzaXMtNnttYXgtaGVpZ2h0OjcuOGVtfS55dC11aS1lbGxpcHNpcy0xMHttYXgtaGVpZ2h0OjEzZW19LndlYmtpdCAueXQtdWktZWxsaXBzaXN7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWx9LndlYmtpdCAueXQtdWktZWxsaXBzaXMtMnstd2Via2l0LWxpbmUtY2xhbXA6Mn0ud2Via2l0IC55dC11aS1lbGxpcHNpcy0zey13ZWJraXQtbGluZS1jbGFtcDozfS53ZWJraXQgLnl0LXVpLWVsbGlwc2lzLTR7LXdlYmtpdC1saW5lLWNsYW1wOjR9LndlYmtpdCAueXQtdWktZWxsaXBzaXMtNnstd2Via2l0LWxpbmUtY2xhbXA6Nn0ud2Via2l0IC55dC11aS1lbGxpcHNpcy0xMHstd2Via2l0LWxpbmUtY2xhbXA6MTB9LndlYmtpdCAueXQtdWktZWxsaXBzaXM6YmVmb3Jle2NvbnRlbnQ6bm9ybWFsfS53ZWJraXQgLnl0LXVpLWVsbGlwc2lzOmFmdGVye2NvbnRlbnQ6IuKAjCI7cG9zaXRpb246c3RhdGljO3Zpc2liaWxpdHk6aGlkZGVufS55dC11aS1lbGxpcHNpc1tkaXI9cnRsXTpiZWZvcmV7bGVmdDowO3JpZ2h0OmF1dG99YS55dHAtY2UtbGlua3tkaXNwbGF5OmJsb2NrfWEueXRwLWNlLWxpbmssYS55dHAtY2UtbGluazpob3ZlcixhLnl0cC1jZS1saW5rOnZpc2l0ZWR7Y29sb3I6IzE2N2FjNn1hLnl0cC1jZS1saW5rOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lnl0cC1jZS1zaGFkb3d7b3BhY2l0eTowO291dGxpbmU6c29saWQgIzAwMDtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7ei1pbmRleDoxMn0ueXRwLWNlLXNoYWRvdzpub3QoW2FyaWEtaGlkZGVuPXRydWVdKXtvcGFjaXR5Oi4yNTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1jZS1lbGVtZW50e2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNCk7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCA0cHggcmdiYSgwLDAsMCwuNSk7Ym94LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsLjUpO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6MS4zZW07bWFyZ2luOi0xcHg7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC1mb250LXNtb290aGluZzphdXRvO3otaW5kZXg6MTI7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuMnMsb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxib3JkZXItY29sb3IgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuMnMsb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxib3JkZXItY29sb3IgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dmlzaWJpbGl0eTpoaWRkZW59Lnl0cC1jZS1oaWRlLWJ1dHRvbi1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjEycHg7cmlnaHQ6MTJweDt6LWluZGV4OjEzO29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgLjJzLG9wYWNpdHkgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSksYm9yZGVyLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgLjJzLG9wYWNpdHkgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSksYm9yZGVyLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3Zpc2liaWxpdHk6aGlkZGVufS55dHAtY2UtaGlkZS1idXR0b24tY29udGFpbmVyLnl0cC1jZS1oaWRlLWJ1dHRvbi1sb3dlcnttYXJnaW4tdG9wOjQ4cHh9Lnl0cC1iaWctbW9kZSAueXRwLWNlLWhpZGUtYnV0dG9uLWNvbnRhaW5lcnttYXJnaW4tdG9wOjcycHh9Lmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlIC55dHAtY2UtZWxlbWVudCwuaHRtbDUtdmlkZW8tcGxheWVyLmVuZGVkLW1vZGUgLnl0cC1jZS1oaWRlLWJ1dHRvbi1jb250YWluZXJ7ZGlzcGxheTpub25lfS55dHAtY2UtZWxlbWVudC55dHAtY2UtcGxhY2Vob2xkZXIgYS55dHAtY2UtY292ZXJpbmctb3ZlcmxheXtjdXJzb3I6ZGVmYXVsdH0ueXRwLWNlLWVsZW1lbnQueXRwLWNlLWVsZW1lbnQtc2hvdywueXRwLWNlLWhpZGUtYnV0dG9uLWNvbnRhaW5lci55dHAtY2UtZWxlbWVudC1zaG93e29wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgMHMsb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxib3JkZXItY29sb3IgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAwcyxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLGJvcmRlci1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt2aXNpYmlsaXR5OnZpc2libGV9Lnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1lbGVtZW50LWhvdmVyLC55dHAtY2UtZWxlbWVudC55dHAtY2UtZm9yY2UtZXhwYW5ke2JvcmRlcjoxcHggc29saWQgI2ZmZjtvdXRsaW5lOm5vbmU7ei1pbmRleDoxMztvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgbGluZWFyIDBzLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSksYm9yZGVyLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgMHMsb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxib3JkZXItY29sb3IgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSk7dmlzaWJpbGl0eTp2aXNpYmxlfS55dHAtY2UtZWxlbWVudC55dHAtY2UtZWxlbWVudC1zaG93OmZvY3VzLC55dHAtY2UtZWxlbWVudC55dHAtY2UtZWxlbWVudC1zaG93OmhvdmVye291dGxpbmU6bm9uZX0ueXRwLWNlLWVsZW1lbnQtc2hhZG93e2JhY2tncm91bmQtY29sb3I6IzAwMDtib3R0b206LTFweDtsZWZ0Oi0xcHg7b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0Oi0xcHg7dG9wOi0xcHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3otaW5kZXg6MTJ9Lnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1lbGVtZW50LXNob3cueXRwLWNlLWVsZW1lbnQtc2hhZG93LXNob3cgLnl0cC1jZS1lbGVtZW50LXNoYWRvd3tvcGFjaXR5Oi4yNTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1jZS1jb3ZlcmluZy1pbWFnZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO2JvdHRvbTotMnB4O2xlZnQ6LTFweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMXB4O3RvcDotMXB4fS55dHAtY2UtY292ZXJpbmctc2hhZG93LXRvcHtoZWlnaHQ6MzMlO29wYWNpdHk6Ljg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjMDAwLHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGNvbG9yLXN0b3AoMCwjMDAwKSx0byh0cmFuc3BhcmVudCkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjMDAwIDAsdHJhbnNwYXJlbnQpfS55dHAtY2UtY292ZXJpbmctb3ZlcmxheXtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO3otaW5kZXg6MTJ9Lmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlIC55dHAtY2Utc2hhZG93e2Rpc3BsYXk6bm9uZX0ueXRwLWNlLXBsYXlsaXN0LC55dHAtY2UtdmlkZW97b3ZlcmZsb3c6aGlkZGVufS55dHAtY2UtcGxheWxpc3QtdGl0bGUsLnl0cC1jZS12aWRlby10aXRsZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2NvbG9yOiNmZmY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE0cHg7bWFyZ2luOjZweCA4cHg7bWF4LWhlaWdodDoyOHB4O3RleHQtc2hhZG93OjAgMXB4IDAgcmdiYSgwLDAsMCwuNCl9Lnl0cC1jZS1wbGF5bGlzdC10aXRsZS55dHAtd2Via2l0LWVsbGlwc2lzLC55dHAtY2UtdmlkZW8tdGl0bGUueXRwLXdlYmtpdC1lbGxpcHNpc3tkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1saW5lLWNsYW1wOjI7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWNlLXZpZGVvLWR1cmF0aW9ue2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOCk7Ym9yZGVyLXJhZGl1czoycHg7Ym90dG9tOjA7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOCk7bWFyZ2luOjAgNHB4IDRweCAwO3BhZGRpbmc6NHB4IDZweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowfS55dHAtY2UtbGl2ZS12aWRlby1kdXJhdGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMCwwKTtib3JkZXItcmFkaXVzOjJweDtib3R0b206MDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC44KTttYXJnaW46MCA0cHggNHB4IDA7cGFkZGluZzo0cHggNnB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjB9Lnl0cC1jZS1wbGF5bGlzdC1jb3VudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjc1KTtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0ueXRwLWNlLXBsYXlsaXN0LWljb257bGVmdDo4cHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweH0ueXRwLWNlLXBsYXlsaXN0LWNvdW50LXRleHR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOCk7aGVpZ2h0OjI0cHg7bGluZS1oZWlnaHQ6MjRweDttYXJnaW4tbGVmdDozMnB4fS55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuMnMsb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxib3JkZXItY29sb3IgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAuMnMsb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxib3JkZXItY29sb3IgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dmlzaWJpbGl0eTpoaWRkZW59Lnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1jb250ZW50e2Rpc3BsYXk6dGFibGV9Lnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5e2Rpc3BsYXk6dGFibGUtY2VsbDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1lbGVtZW50LWhvdmVyIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXksLnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1mb3JjZS1leHBhbmQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheXt6LWluZGV4OjEzO29wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAwcyBsaW5lYXIgMHMsb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxib3JkZXItY29sb3IgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDBzIGxpbmVhciAwcyxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLGJvcmRlci1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt2aXNpYmlsaXR5OnZpc2libGV9Lnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1lbGVtZW50LWhvdmVyIC55dHAtY2UtZXhwYW5kaW5nLWltYWdlLC55dHAtY2UtZWxlbWVudC55dHAtY2UtZm9yY2UtZXhwYW5kIC55dHAtY2UtZXhwYW5kaW5nLWltYWdle3otaW5kZXg6MTN9Lnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjJweDstd2Via2l0LWJveC1zaGFkb3c6MCAwIDRweCAjMDAwO2JveC1zaGFkb3c6MCAwIDRweCAjMDAwO2hlaWdodDoxMDAlO2xlZnQ6MDttYXJnaW46LThweDtwYWRkaW5nOjhweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS55dHAtY2UtZXhwYW5kaW5nLWltYWdle2JhY2tncm91bmQtcG9zaXRpb246NTAlOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlfS55dHAtY2UtZXhwYW5kaW5nLWljb257YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtcG9zaXRpb246NTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDstd2Via2l0LWJhY2tncm91bmQtc2l6ZToyMHB4IDIwcHg7YmFja2dyb3VuZC1zaXplOjIwcHggMjBweDtib3JkZXItcmFkaXVzOjJweDtib3R0b206MnB4O2hlaWdodDoyNHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjJweDt3aWR0aDoyNHB4Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWNlLWVsZW1lbnQueXRwLWNlLWVsZW1lbnQtaG92ZXIgLnl0cC1jZS1leHBhbmRpbmctaWNvbiwueXRwLWNlLWVsZW1lbnQueXRwLWNlLWZvcmNlLWV4cGFuZCAueXRwLWNlLWV4cGFuZGluZy1pY29ue29wYWNpdHk6MH0ueXRwLWNlLWVsZW1lbnQueXRwLWNlLXRvcC1sZWZ0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheXtsZWZ0OjA7cGFkZGluZy1sZWZ0OjEwMCU7dG9wOjB9Lnl0cC1jZS1lbGVtZW50Lnl0cC1jZS10b3AtcmlnaHQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5e3BhZGRpbmctcmlnaHQ6MTAwJTtyaWdodDowO3RvcDowfS55dHAtY2UtZWxlbWVudC55dHAtY2UtYm90dG9tLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5e2JvdHRvbTowO2xlZnQ6MDtwYWRkaW5nLWxlZnQ6MTAwJX0ueXRwLWNlLWVsZW1lbnQueXRwLWNlLWJvdHRvbS1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXl7Ym90dG9tOjA7cGFkZGluZy1yaWdodDoxMDAlO3JpZ2h0OjB9Lnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1jaGFubmVsLnl0cC1jZS1lbGVtZW50LXNob3csLnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1jaGFubmVsLnl0cC1jZS1lbGVtZW50LXNob3cueXRwLWNlLWVsZW1lbnQtaG92ZXIsLnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1jaGFubmVsLnl0cC1jZS1lbGVtZW50LXNob3cueXRwLWNlLWZvcmNlLWV4cGFuZCwueXRwLWNlLWVsZW1lbnQueXRwLWNlLW1lcmNoYW5kaXNlLnl0cC1jZS1lbGVtZW50LXNob3csLnl0cC1jZS1lbGVtZW50Lnl0cC1jZS1tZXJjaGFuZGlzZS55dHAtY2UtZWxlbWVudC1zaG93Lnl0cC1jZS1lbGVtZW50LWhvdmVyLC55dHAtY2UtZWxlbWVudC55dHAtY2UtbWVyY2hhbmRpc2UueXRwLWNlLWVsZW1lbnQtc2hvdy55dHAtY2UtZm9yY2UtZXhwYW5kLC55dHAtY2UtZWxlbWVudC55dHAtY2Utd2Vic2l0ZS55dHAtY2UtZWxlbWVudC1zaG93LC55dHAtY2UtZWxlbWVudC55dHAtY2Utd2Vic2l0ZS55dHAtY2UtZWxlbWVudC1zaG93Lnl0cC1jZS1lbGVtZW50LWhvdmVyLC55dHAtY2UtZWxlbWVudC55dHAtY2Utd2Vic2l0ZS55dHAtY2UtZWxlbWVudC1zaG93Lnl0cC1jZS1mb3JjZS1leHBhbmR7Ym9yZGVyOjA7bWFyZ2luOjB9Lnl0cC1jZS1jaGFubmVsLXRpdGxle2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLWNlLWNoYW5uZWwtc3Vic2NyaWJle2NvbG9yOiM3Njc2NzY7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXRvcDo0cHg7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7LW1zLXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOnRvcCBsZWZ0Oy1tcy10cmFuc2Zvcm0tb3JpZ2luOnRvcCBsZWZ0O3RyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnR9Lnl0cC1jZS1jaGFubmVsLXN1YnNjcmliZXJzLXRleHR7Y29sb3I6Izc2NzY3NjtkaXNwbGF5Om5vbmU7bWFyZ2luLWJvdHRvbToyNHB4O21hcmdpbi10b3A6NnB4fS55dHAtY2UtY2hhbm5lbC1tZXRhZGF0YXtjb2xvcjojNzY3Njc2fS55dHAtY2UtY2hhbm5lbC10aGlzIC55dHAtY2UtY2hhbm5lbC1tZXRhZGF0YXtib3JkZXItdG9wOjFweCBzb2xpZCAjZWJlYmViO2Rpc3BsYXk6bm9uZX0ueXRwLWNlLWNoYW5uZWwtdGhhdCAueXRwLWNlLWNoYW5uZWwtbWV0YWRhdGF7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MTRweDttYXJnaW4tdG9wOjRweDttYXgtaGVpZ2h0OjQycHh9Lnl0cC1jZS1jaGFubmVsLC55dHAtY2UtY2hhbm5lbCAueXRwLWNlLWVsZW1lbnQtc2hhZG93LC55dHAtY2UtY2hhbm5lbCAueXRwLWNlLWV4cGFuZGluZy1pbWFnZXtib3JkZXItcmFkaXVzOjUwJX0ueXRwLWNlLW1lcmNoYW5kaXNlLXRpdGxlLC55dHAtY2Utd2Vic2l0ZS10aXRsZXtjb2xvcjojMzMzO2ZvbnQtd2VpZ2h0OjUwMDttYXJnaW4tYm90dG9tOjJweH0ueXRwLWNlLW1lcmNoYW5kaXNlLW1ldGFkYXRhLC55dHAtY2UtbWVyY2hhbmRpc2UtcHJpY2UtY29udGFpbmVyLC55dHAtY2Utd2Vic2l0ZS1tZXRhZGF0YXtjb2xvcjojNzY3Njc2O21hcmdpbi10b3A6NHB4fS55dHAtY2UtbWVyY2hhbmRpc2UgLnl0cC1jZS1leHBhbmRpbmctaW1hZ2V7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1zaXplOmNvbnRhaW59Lnl0cC1jZS13ZWJzaXRlLWdvdG97ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbi10b3A6NHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoxMDAlfS55dHAtY2UtbWVyY2hhbmRpc2UgLnl0cC1jZS1leHBhbmRpbmctaW1hZ2UsLnl0cC1jZS13ZWJzaXRlIC55dHAtY2UtZXhwYW5kaW5nLWltYWdle2JhY2tncm91bmQtY29sb3I6I2ZmZn0ueXRwLWNlLW1lcmNoYW5kaXNlLXByaWNle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbG9yOiM2NDY0NjQ7Zm9udC13ZWlnaHQ6ODAwO3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tcmlnaHQ6NnB4fS55dHAtY2UtbWVyY2hhbmRpc2UtYWRkaXRpb25hbC1mZWVze2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbG9yOiM3Njc2NzY7bWFyZ2luLXRvcDoycHg7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lnl0cC1jZS1tZXJjaGFuZGlzZS1pbnZpZGVvLWN0YS1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JvcmRlcjoxcHggIzAwMDtvcGFjaXR5Oi44O3BhZGRpbmc6MTBweCAwO3dpZHRoOjEwMCU7Ym90dG9tOjA7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXJ9Lnl0cC1jZS1tZXJjaGFuZGlzZS1pbnZpZGVvLWN0YXtjb2xvcjojZmZmO3doaXRlLXNwYWNlOm5vd3JhcH0ueXRwLWNlLXNpemUtMzQ2IC55dHAtY2UtbWVyY2hhbmRpc2UtaW52aWRlby1jdGEtY29udGFpbmVyLC55dHAtY2Utc2l6ZS00MjYgLnl0cC1jZS1tZXJjaGFuZGlzZS1pbnZpZGVvLWN0YS1jb250YWluZXIsLnl0cC1jZS1zaXplLTQ3MCAueXRwLWNlLW1lcmNoYW5kaXNlLWludmlkZW8tY3RhLWNvbnRhaW5lcntwYWRkaW5nOjJweCAwfS55dHAtY2Utc2l6ZS01MDYgLnl0cC1jZS1tZXJjaGFuZGlzZS1pbnZpZGVvLWN0YS1jb250YWluZXIsLnl0cC1jZS1zaXplLTU3MCAueXRwLWNlLW1lcmNoYW5kaXNlLWludmlkZW8tY3RhLWNvbnRhaW5lciwueXRwLWNlLXNpemUtNjQwIC55dHAtY2UtbWVyY2hhbmRpc2UtaW52aWRlby1jdGEtY29udGFpbmVyLC55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS1tZXJjaGFuZGlzZS1pbnZpZGVvLWN0YS1jb250YWluZXJ7cGFkZGluZzo1cHggMH0ueXRwLWNlLWxhcmdlLXJvdW5kIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYmFja2dyb3VuZCwueXRwLWNlLXBsYXlsaXN0Lnl0cC1jZS1sYXJnZS1yb3VuZCwueXRwLWNlLXZpZGVvLnl0cC1jZS1sYXJnZS1yb3VuZHtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1jZS1tZWRpdW0tcm91bmQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1iYWNrZ3JvdW5kLC55dHAtY2UtcGxheWxpc3QueXRwLWNlLW1lZGl1bS1yb3VuZCwueXRwLWNlLXZpZGVvLnl0cC1jZS1tZWRpdW0tcm91bmR7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0cC1jZS1wbGF5bGlzdC55dHAtY2Utc21hbGwtcm91bmQsLnl0cC1jZS1zbWFsbC1yb3VuZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJhY2tncm91bmQsLnl0cC1jZS12aWRlby55dHAtY2Utc21hbGwtcm91bmR7Ym9yZGVyLXJhZGl1czo0cHh9Lnl0cC1jZS1tZXJjaGFuZGlzZS1nb3Rve2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtd2VpZ2h0OjUwMDttYXJnaW4tdG9wOjRweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MTAwJX0ueXRwLWNlLXNpemUtMzQ2e2ZvbnQtc2l6ZToxMnB4fS55dHAtY2Utc2l6ZS0zNDYgLnl0cC1jZS1jb3ZlcmluZy1pY29ue2JvdHRvbTo0cHg7cmlnaHQ6NHB4fS55dHAtY2Utc2l6ZS0zNDYgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWluLXdpZHRoOjExNXB4fS55dHAtY2Utc2l6ZS0zNDYgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmc+Om5vdCgueXRwLWNlLXN1YnNjcmliZS1jb250YWluZXIpe3dpZHRoOjExNXB4fS55dHAtY2Utc2l6ZS0zNDYueXRwLWNlLWJvdHRvbS1sZWZ0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmcsLnl0cC1jZS1zaXplLTM0Ni55dHAtY2UtdG9wLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttYXJnaW46MCAwIDAgOHB4fS55dHAtY2Utc2l6ZS0zNDYueXRwLWNlLWJvdHRvbS1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nLC55dHAtY2Utc2l6ZS0zNDYueXRwLWNlLXRvcC1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21hcmdpbjowIDhweCAwIDB9Lnl0cC1jZS1zaXplLTM0NiAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJhY2tncm91bmR7bWFyZ2luOi04cHg7cGFkZGluZzo4cHh9Lnl0cC1jZS1zaXplLTM0NiAueXRwLWNlLWV4cGFuZGluZy1pY29ue2JvdHRvbToycHg7cmlnaHQ6MnB4fS55dHAtY2Utc2l6ZS0zNDYueXRwLWNlLWNoYW5uZWwtdGhhdCAueXRwLWNlLWNoYW5uZWwtbWV0YWRhdGF7bWFyZ2luLXRvcDowfS55dHAtY2Utc2l6ZS00MjZ7Zm9udC1zaXplOjEycHh9Lnl0cC1jZS1zaXplLTQyNiAueXRwLWNlLWNvdmVyaW5nLWljb257Ym90dG9tOjRweDtyaWdodDo0cHh9Lnl0cC1jZS1zaXplLTQyNiAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttaW4td2lkdGg6MTE1cHh9Lnl0cC1jZS1zaXplLTQyNiAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZz46bm90KC55dHAtY2Utc3Vic2NyaWJlLWNvbnRhaW5lcil7d2lkdGg6MTE1cHh9Lnl0cC1jZS1zaXplLTQyNi55dHAtY2UtYm90dG9tLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZywueXRwLWNlLXNpemUtNDI2Lnl0cC1jZS10b3AtbGVmdC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21hcmdpbjowIDRweCAwIDEycHh9Lnl0cC1jZS1zaXplLTQyNi55dHAtY2UtYm90dG9tLXJpZ2h0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmcsLnl0cC1jZS1zaXplLTQyNi55dHAtY2UtdG9wLXJpZ2h0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWFyZ2luOjAgMTJweCAwIDRweH0ueXRwLWNlLXNpemUtNDI2IC55dHAtY2UtZXhwYW5kaW5nLWljb257Ym90dG9tOjRweDtyaWdodDo0cHh9Lnl0cC1jZS1zaXplLTQyNi55dHAtY2UtY2hhbm5lbC10aGF0IC55dHAtY2UtY2hhbm5lbC1tZXRhZGF0YXttYXJnaW4tdG9wOjB9Lnl0cC1jZS1zaXplLTM0NiAueXRwLWNlLXBsYXlsaXN0LXRpdGxlLC55dHAtY2Utc2l6ZS0zNDYgLnl0cC1jZS12aWRlby10aXRsZSwueXRwLWNlLXNpemUtNDI2IC55dHAtY2UtcGxheWxpc3QtdGl0bGUsLnl0cC1jZS1zaXplLTQyNiAueXRwLWNlLXZpZGVvLXRpdGxlLC55dHAtY2Utc2l6ZS00NzAgLnl0cC1jZS1tZXJjaGFuZGlzZS10aXRsZXtkaXNwbGF5OmlubGluZS1ibG9jaztvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7bWF4LXdpZHRoOjg1JX0ueXRwLWNlLXNpemUtNDcwe2ZvbnQtc2l6ZToxMnB4fS55dHAtY2Utc2l6ZS00NzAgLnl0cC1jZS1jaGFubmVsLXRpdGxlLC55dHAtY2Utc2l6ZS00NzAgLnl0cC1jZS1tZXJjaGFuZGlzZS10aXRsZSwueXRwLWNlLXNpemUtNDcwIC55dHAtY2Utd2Vic2l0ZS10aXRsZXtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNHB4fS55dHAtY2Utc2l6ZS00NzAgLnl0cC1jZS1tZXJjaGFuZGlzZS1nb3RvLC55dHAtY2Utc2l6ZS00NzAgLnl0cC1jZS13ZWJzaXRlLWdvdG97Zm9udC1zaXplOjEycHh9Lnl0cC1jZS1zaXplLTQ3MCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttaW4td2lkdGg6MTM2cHh9Lnl0cC1jZS1zaXplLTQ3MCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZz46bm90KC55dHAtY2Utc3Vic2NyaWJlLWNvbnRhaW5lcil7d2lkdGg6MTM2cHh9Lnl0cC1jZS1zaXplLTQ3MC55dHAtY2UtYm90dG9tLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZywueXRwLWNlLXNpemUtNDcwLnl0cC1jZS10b3AtbGVmdC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21hcmdpbjowIDRweCAwIDEycHh9Lnl0cC1jZS1zaXplLTQ3MC55dHAtY2UtYm90dG9tLXJpZ2h0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmcsLnl0cC1jZS1zaXplLTQ3MC55dHAtY2UtdG9wLXJpZ2h0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWFyZ2luOjAgMTJweCAwIDRweH0ueXRwLWNlLXNpemUtNDcwIC55dHAtY2UtZXhwYW5kaW5nLWljb257Ym90dG9tOjRweDtyaWdodDo0cHh9Lnl0cC1jZS1zaXplLTUwNntmb250LXNpemU6MTJweH0ueXRwLWNlLXNpemUtNTA2IC55dHAtY2UtY2hhbm5lbC10aXRsZSwueXRwLWNlLXNpemUtNTA2IC55dHAtY2UtbWVyY2hhbmRpc2UtdGl0bGUsLnl0cC1jZS1zaXplLTUwNiAueXRwLWNlLXdlYnNpdGUtdGl0bGV7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MTRweH0ueXRwLWNlLXNpemUtNTA2IC55dHAtY2UtbWVyY2hhbmRpc2UtZ290bywueXRwLWNlLXNpemUtNTA2IC55dHAtY2Utd2Vic2l0ZS1nb3Rve2ZvbnQtc2l6ZToxMnB4fS55dHAtY2Utc2l6ZS01MDYgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWluLXdpZHRoOjEzNnB4fS55dHAtY2Utc2l6ZS01MDYgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmc+Om5vdCgueXRwLWNlLXN1YnNjcmliZS1jb250YWluZXIpe3dpZHRoOjEzNnB4fS55dHAtY2Utc2l6ZS01MDYueXRwLWNlLWJvdHRvbS1sZWZ0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmcsLnl0cC1jZS1zaXplLTUwNi55dHAtY2UtdG9wLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttYXJnaW46MCA0cHggMCAxMnB4fS55dHAtY2Utc2l6ZS01MDYueXRwLWNlLWJvdHRvbS1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nLC55dHAtY2Utc2l6ZS01MDYueXRwLWNlLXRvcC1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21hcmdpbjowIDEycHggMCA0cHh9Lnl0cC1jZS1zaXplLTUwNiAueXRwLWNlLWV4cGFuZGluZy1pY29ue2JvdHRvbTo0cHg7cmlnaHQ6NHB4fS55dHAtY2Utc2l6ZS01NzB7Zm9udC1zaXplOjEycHh9Lnl0cC1jZS1zaXplLTU3MCAueXRwLWNlLWNoYW5uZWwtdGl0bGUsLnl0cC1jZS1zaXplLTU3MCAueXRwLWNlLW1lcmNoYW5kaXNlLXRpdGxlLC55dHAtY2Utc2l6ZS01NzAgLnl0cC1jZS13ZWJzaXRlLXRpdGxle2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE0cHh9Lnl0cC1jZS1zaXplLTU3MCAueXRwLWNlLW1lcmNoYW5kaXNlLWdvdG8sLnl0cC1jZS1zaXplLTU3MCAueXRwLWNlLXdlYnNpdGUtZ290b3tmb250LXNpemU6MTJweH0ueXRwLWNlLXNpemUtNTcwIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21pbi13aWR0aDoxMzZweH0ueXRwLWNlLXNpemUtNTcwIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nPjpub3QoLnl0cC1jZS1zdWJzY3JpYmUtY29udGFpbmVyKXt3aWR0aDoxMzZweH0ueXRwLWNlLXNpemUtNTcwLnl0cC1jZS1ib3R0b20tbGVmdC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nLC55dHAtY2Utc2l6ZS01NzAueXRwLWNlLXRvcC1sZWZ0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWFyZ2luOjAgNHB4IDAgMTJweH0ueXRwLWNlLXNpemUtNTcwLnl0cC1jZS1ib3R0b20tcmlnaHQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZywueXRwLWNlLXNpemUtNTcwLnl0cC1jZS10b3AtcmlnaHQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttYXJnaW46MCAxMnB4IDAgNHB4fS55dHAtY2Utc2l6ZS01NzAgLnl0cC1jZS1leHBhbmRpbmctaWNvbntib3R0b206NHB4O3JpZ2h0OjRweH0ueXRwLWNlLXNpemUtNjQwe2ZvbnQtc2l6ZToxMnB4fS55dHAtY2Utc2l6ZS02NDAgLnl0cC1jZS1wbGF5bGlzdC10aXRsZSwueXRwLWNlLXNpemUtNjQwIC55dHAtY2UtdmlkZW8tdGl0bGV7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MTVweDttYXgtaGVpZ2h0OjMwcHh9Lnl0cC1jZS1zaXplLTY0MCAueXRwLWNlLWNoYW5uZWwtdGl0bGUsLnl0cC1jZS1zaXplLTY0MCAueXRwLWNlLW1lcmNoYW5kaXNlLXRpdGxlLC55dHAtY2Utc2l6ZS02NDAgLnl0cC1jZS13ZWJzaXRlLXRpdGxle2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjE1cHh9Lnl0cC1jZS1zaXplLTY0MCAueXRwLWNlLW1lcmNoYW5kaXNlLWdvdG8sLnl0cC1jZS1zaXplLTY0MCAueXRwLWNlLXdlYnNpdGUtZ290b3tmb250LXNpemU6MTJweH0ueXRwLWNlLXNpemUtNjQwIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21pbi13aWR0aDoxMzZweH0ueXRwLWNlLXNpemUtNjQwIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nPjpub3QoLnl0cC1jZS1zdWJzY3JpYmUtY29udGFpbmVyKXt3aWR0aDoxMzZweH0ueXRwLWNlLXNpemUtNjQwLnl0cC1jZS1ib3R0b20tbGVmdC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nLC55dHAtY2Utc2l6ZS02NDAueXRwLWNlLXRvcC1sZWZ0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWFyZ2luOjAgOHB4IDAgMTZweH0ueXRwLWNlLXNpemUtNjQwLnl0cC1jZS1ib3R0b20tcmlnaHQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZywueXRwLWNlLXNpemUtNjQwLnl0cC1jZS10b3AtcmlnaHQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttYXJnaW46MCAxNnB4IDAgOHB4fS55dHAtY2Utc2l6ZS02NDAgLnl0cC1jZS1leHBhbmRpbmctaWNvbntib3R0b206OHB4O3JpZ2h0OjhweH0ueXRwLWNlLXNpemUtODUze2ZvbnQtc2l6ZToxNHB4fS55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS1wbGF5bGlzdC10aXRsZSwueXRwLWNlLXNpemUtODUzIC55dHAtY2UtdmlkZW8tdGl0bGV7Zm9udC1zaXplOjE1cHg7bGluZS1oZWlnaHQ6MThweDttYXJnaW46MTBweCAxMnB4O21heC1oZWlnaHQ6MzZweH0ueXRwLWNlLXNpemUtODUzIC55dHAtY2UtdmlkZW8tZHVyYXRpb257bWFyZ2luOjAgNnB4IDZweCAwfS55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS1jaGFubmVsLXRpdGxlLC55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS1tZXJjaGFuZGlzZS10aXRsZSwueXRwLWNlLXNpemUtODUzIC55dHAtY2Utd2Vic2l0ZS10aXRsZXtmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoxOHB4fS55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS1tZXJjaGFuZGlzZS1nb3RvLC55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS13ZWJzaXRlLWdvdG97Zm9udC1zaXplOjEycHh9Lnl0cC1jZS1zaXplLTg1My55dHAtY2UtY2hhbm5lbC10aGlzIC55dHAtY2UtY2hhbm5lbC1tZXRhZGF0YXtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNHB4O21hcmdpbi10b3A6OHB4O3BhZGRpbmctdG9wOjhweDttYXgtaGVpZ2h0OjQycHg7ZGlzcGxheTpibG9ja30ueXRwLWNlLXNpemUtODUzLnl0cC1jZS1jaGFubmVsLXRoYXQgLnl0cC1jZS1jaGFubmVsLW1ldGFkYXRhe2ZvbnQtc2l6ZToxNXB4O2xpbmUtaGVpZ2h0OjE4cHg7bWFyZ2luLXRvcDo0cHg7bWF4LWhlaWdodDo1NHB4fS55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWluLXdpZHRoOjE3NnB4fS55dHAtY2Utc2l6ZS04NTMgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmc+Om5vdCgueXRwLWNlLXN1YnNjcmliZS1jb250YWluZXIpe3dpZHRoOjE3NnB4fS55dHAtY2Utc2l6ZS04NTMueXRwLWNlLWJvdHRvbS1sZWZ0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmcsLnl0cC1jZS1zaXplLTg1My55dHAtY2UtdG9wLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttYXJnaW46MCA4cHggMCAxNnB4fS55dHAtY2Utc2l6ZS04NTMueXRwLWNlLWJvdHRvbS1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nLC55dHAtY2Utc2l6ZS04NTMueXRwLWNlLXRvcC1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21hcmdpbjowIDE2cHggMCA4cHh9Lnl0cC1jZS1zaXplLTg1MyAueXRwLWNlLWV4cGFuZGluZy1pY29uey13ZWJraXQtYmFja2dyb3VuZC1zaXplOjI0cHggMjRweDtiYWNrZ3JvdW5kLXNpemU6MjRweCAyNHB4O2JvdHRvbTo4cHg7aGVpZ2h0OjMycHg7cmlnaHQ6OHB4O3dpZHRoOjMycHh9Lnl0cC1jZS1zaXplLTg1MyAueXRwLWNlLXBsYXlsaXN0LWljb257bGVmdDo4cHg7dG9wOjRweH0ueXRwLWNlLXNpemUtODUzIC55dHAtY2UtcGxheWxpc3QtY291bnQtdGV4dHtoZWlnaHQ6MzJweDtsaW5lLWhlaWdodDozMnB4O21hcmdpbi1sZWZ0OjQwcHh9Lnl0cC1jZS1zaXplLTEyODB7Zm9udC1zaXplOjE4cHh9Lnl0cC1jZS1zaXplLTEyODAgLnl0cC1jZS1wbGF5bGlzdC10aXRsZSwueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLXZpZGVvLXRpdGxle2ZvbnQtc2l6ZToyMXB4O2xpbmUtaGVpZ2h0OjI0cHg7bWFyZ2luOjE4cHggMjBweDttYXgtaGVpZ2h0OjQ4cHh9Lnl0cC1jZS1zaXplLTEyODAgLnl0cC1jZS12aWRlby1kdXJhdGlvbnttYXJnaW46MCAxMnB4IDEycHggMH0ueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLWNoYW5uZWwtdGl0bGUsLnl0cC1jZS1zaXplLTEyODAgLnl0cC1jZS1tZXJjaGFuZGlzZS10aXRsZSwueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLXdlYnNpdGUtdGl0bGV7Zm9udC1zaXplOjIxcHg7bGluZS1oZWlnaHQ6MjRweH0ueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLW1lcmNoYW5kaXNlLWdvdG8sLnl0cC1jZS1zaXplLTEyODAgLnl0cC1jZS1tZXJjaGFuZGlzZS1tZXRhZGF0YSwueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLW1lcmNoYW5kaXNlLXByaWNlLWNvbnRhaW5lciwueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLXdlYnNpdGUtZ290bywueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLXdlYnNpdGUtbWV0YWRhdGF7Zm9udC1zaXplOjE4cHg7bWFyZ2luLXRvcDo4cHh9Lnl0cC1jZS1zaXplLTEyODAgLnl0cC1jZS1jaGFubmVsLW1ldGFkYXRhe2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjIxcHg7bWF4LWhlaWdodDo2M3B4fS55dHAtY2Utc2l6ZS0xMjgwIC55dHAtY2UtY2hhbm5lbC1zdWJzY3JpYmV7aGVpZ2h0OjMycHg7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4zKTstbXMtdHJhbnNmb3JtOnNjYWxlKDEuMyk7dHJhbnNmb3JtOnNjYWxlKDEuMyl9Lnl0cC1jZS1zaXplLTEyODAueXRwLWNlLWNoYW5uZWwtdGhhdCAueXRwLWNlLWNoYW5uZWwtc3Vic2NyaWJlcnMtdGV4dHtkaXNwbGF5OmJsb2NrfS55dHAtY2Utc2l6ZS0xMjgwLnl0cC1jZS1jaGFubmVsLXRoaXMgLnl0cC1jZS1jaGFubmVsLW1ldGFkYXRhe21hcmdpbi10b3A6MTJweDtwYWRkaW5nLXRvcDoxMnB4O2Rpc3BsYXk6YmxvY2t9Lnl0cC1jZS1zaXplLTEyODAgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWluLXdpZHRoOjI2NHB4fS55dHAtY2Utc2l6ZS0xMjgwIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nPjpub3QoLnl0cC1jZS1zdWJzY3JpYmUtY29udGFpbmVyKXt3aWR0aDoyNjRweH0ueXRwLWNlLXNpemUtMTI4MC55dHAtY2UtYm90dG9tLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZywueXRwLWNlLXNpemUtMTI4MC55dHAtY2UtdG9wLWxlZnQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttYXJnaW46MCAxNnB4IDAgMzJweH0ueXRwLWNlLXNpemUtMTI4MC55dHAtY2UtYm90dG9tLXJpZ2h0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmcsLnl0cC1jZS1zaXplLTEyODAueXRwLWNlLXRvcC1yaWdodC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21hcmdpbjowIDMycHggMCAxNnB4fS55dHAtY2Utc2l6ZS0xMjgwIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYmFja2dyb3VuZHttYXJnaW46LTE2cHg7cGFkZGluZzoxNnB4fS55dHAtY2Utc2l6ZS0xMjgwIC55dHAtY2UtZXhwYW5kaW5nLWljb257LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MzJweCAzMnB4O2JhY2tncm91bmQtc2l6ZTozMnB4IDMycHg7Ym90dG9tOjEwcHg7aGVpZ2h0OjQwcHg7cmlnaHQ6MTBweDt3aWR0aDo0MHB4fS55dHAtY2Utc2l6ZS0xMjgwIC55dHAtY2UtcGxheWxpc3QtaWNvbntsZWZ0OjEwcHg7dG9wOjhweH0ueXRwLWNlLXNpemUtMTI4MCAueXRwLWNlLXBsYXlsaXN0LWNvdW50LXRleHR7aGVpZ2h0OjQwcHg7bGluZS1oZWlnaHQ6NDBweDttYXJnaW4tbGVmdDo0NnB4fS55dHAtY2Utc2l6ZS0xOTIwe2ZvbnQtc2l6ZToyOHB4fS55dHAtY2Utc2l6ZS0xOTIwIC55dHAtY2UtcGxheWxpc3QtdGl0bGUsLnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS12aWRlby10aXRsZXtmb250LXNpemU6MzJweDtsaW5lLWhlaWdodDozOHB4O21hcmdpbjoxOHB4IDIwcHg7bWF4LWhlaWdodDo3NnB4fS55dHAtY2Utc2l6ZS0xOTIwIC55dHAtY2UtdmlkZW8tZHVyYXRpb257bWFyZ2luOjAgMjBweCAyMHB4IDB9Lnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS1jaGFubmVsLXRpdGxlLC55dHAtY2Utc2l6ZS0xOTIwIC55dHAtY2UtbWVyY2hhbmRpc2UtdGl0bGUsLnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS13ZWJzaXRlLXRpdGxle2ZvbnQtc2l6ZTozMnB4O2xpbmUtaGVpZ2h0OjM4cHh9Lnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS1tZXJjaGFuZGlzZS1nb3RvLC55dHAtY2Utc2l6ZS0xOTIwIC55dHAtY2UtbWVyY2hhbmRpc2UtbWV0YWRhdGEsLnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS1tZXJjaGFuZGlzZS1wcmljZS1jb250YWluZXIsLnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS13ZWJzaXRlLWdvdG8sLnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS13ZWJzaXRlLW1ldGFkYXRhe2ZvbnQtc2l6ZToyOHB4O21hcmdpbi10b3A6MTJweH0ueXRwLWNlLXNpemUtMTkyMCAueXRwLWNlLWNoYW5uZWwtbWV0YWRhdGF7Zm9udC1zaXplOjI4cHg7bGluZS1oZWlnaHQ6MzRweDttYXgtaGVpZ2h0OjEwMnB4fS55dHAtY2Utc2l6ZS0xOTIwIC55dHAtY2UtY2hhbm5lbC1zdWJzY3JpYmV7aGVpZ2h0OjgwcHg7bWFyZ2luLXRvcDotMTZweDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgyLjUpOy1tcy10cmFuc2Zvcm06c2NhbGUoMi41KTt0cmFuc2Zvcm06c2NhbGUoMi41KX0ueXRwLWNlLXNpemUtMTkyMC55dHAtY2UtY2hhbm5lbC10aGF0IC55dHAtY2UtY2hhbm5lbC1zdWJzY3JpYmVycy10ZXh0e2Rpc3BsYXk6YmxvY2t9Lnl0cC1jZS1zaXplLTE5MjAueXRwLWNlLWNoYW5uZWwtdGhpcyAueXRwLWNlLWNoYW5uZWwtbWV0YWRhdGF7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjE4cHg7cGFkZGluZy10b3A6MThweH0ueXRwLWNlLXNpemUtMTkyMCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZ3ttaW4td2lkdGg6MzkycHh9Lnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmc+Om5vdCgueXRwLWNlLXN1YnNjcmliZS1jb250YWluZXIpe3dpZHRoOjM5MnB4fS55dHAtY2Utc2l6ZS0xOTIwLnl0cC1jZS1ib3R0b20tbGVmdC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5nLC55dHAtY2Utc2l6ZS0xOTIwLnl0cC1jZS10b3AtbGVmdC1xdWFkIC55dHAtY2UtZXhwYW5kaW5nLW92ZXJsYXktYm9keS1wYWRkaW5ne21hcmdpbjowIDI0cHggMCA0OHB4fS55dHAtY2Utc2l6ZS0xOTIwLnl0cC1jZS1ib3R0b20tcmlnaHQtcXVhZCAueXRwLWNlLWV4cGFuZGluZy1vdmVybGF5LWJvZHktcGFkZGluZywueXRwLWNlLXNpemUtMTkyMC55dHAtY2UtdG9wLXJpZ2h0LXF1YWQgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1ib2R5LXBhZGRpbmd7bWFyZ2luOjAgNDhweCAwIDI0cHh9Lnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS1leHBhbmRpbmctb3ZlcmxheS1iYWNrZ3JvdW5ke21hcmdpbjotMjRweDtwYWRkaW5nOjI0cHh9Lnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS1leHBhbmRpbmctaWNvbnstd2Via2l0LWJhY2tncm91bmQtc2l6ZTo1NnB4IDU2cHg7YmFja2dyb3VuZC1zaXplOjU2cHggNTZweDtib3R0b206MjBweDtoZWlnaHQ6NjJweDtyaWdodDoyMHB4O3dpZHRoOjYycHh9Lnl0cC1jZS1zaXplLTE5MjAgLnl0cC1jZS1wbGF5bGlzdC1pY29ue2xlZnQ6MTJweDt0b3A6MTJweH0ueXRwLWNlLXNpemUtMTkyMCAueXRwLWNlLXBsYXlsaXN0LWljb257aGVpZ2h0OjMycHg7d2lkdGg6MzJweH0ueXRwLWNlLXNpemUtMTkyMCAueXRwLWNlLXBsYXlsaXN0LWNvdW50LXRleHR7aGVpZ2h0OjU2cHg7bGluZS1oZWlnaHQ6NTZweDttYXJnaW4tbGVmdDo1NnB4fS55dHAtY2UtY2hhbm5lbC1zdWJzY3JpYmUueXRwLWNlLXN1YnNjcmliZS1idXR0b257aGVpZ2h0OmF1dG87bWFyZ2luLXRvcDowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOy1tcy10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfS55dHAtY2Utc2l6ZS0zNDYgLnl0cC1zYi1zdWJzY3JpYmUsLnl0cC1jZS1zaXplLTM0NiAueXRwLXNiLXVuc3Vic2NyaWJlLC55dHAtY2Utc2l6ZS00MjYgLnl0cC1zYi1zdWJzY3JpYmUsLnl0cC1jZS1zaXplLTQyNiAueXRwLXNiLXVuc3Vic2NyaWJlLC55dHAtY2Utc2l6ZS00NzAgLnl0cC1zYi1zdWJzY3JpYmUsLnl0cC1jZS1zaXplLTQ3MCAueXRwLXNiLXVuc3Vic2NyaWJlLC55dHAtY2Utc2l6ZS01MDYgLnl0cC1zYi1zdWJzY3JpYmUsLnl0cC1jZS1zaXplLTUwNiAueXRwLXNiLXVuc3Vic2NyaWJle2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6OHB4fS55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7YmFja2dyb3VuZC1zaXplOmNvdmVyOy1tb3otYmFja2dyb3VuZC1zaXplOmNvdmVyOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyfS55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheS55dHAtZXhwLWNvbnRhaW4tdGh1bWJuYWlse2JhY2tncm91bmQtc2l6ZTpjb250YWluOy1tb3otYmFja2dyb3VuZC1zaXplOmNvbnRhaW47LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y29udGFpbn0ueXRwLWN1ZWQtdGh1bWJuYWlsLW92ZXJsYXlbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheS1pbWFnZXtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7LW1vei1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGV9Lnl0cC1jdWVkLXRodW1ibmFpbC1vdmVybGF5Lnl0cC1leHAtZnJhbWUwIC55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheS1pbWFnZXt6LWluZGV4OjEwfS55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheS55dHAtZXhwLWNvbnRhaW4tdGh1bWJuYWlsIC55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheS1pbWFnZXtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjstbW96LWJhY2tncm91bmQtc2l6ZTpjb250YWluOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW59LmVuZGVkLW1vZGUgLnl0cC1jdWVkLXRodW1ibmFpbC1vdmVybGF5Om5vdChbYXJpYS1oaWRkZW49dHJ1ZV0pLC51bnN0YXJ0ZWQtbW9kZTpub3QoLnBsYXlpbmctbW9kZSkgLnl0cC1jdWVkLXRodW1ibmFpbC1vdmVybGF5Om5vdChbYXJpYS1oaWRkZW49dHJ1ZV0pe2N1cnNvcjpwb2ludGVyfS55dHAtY2hhcHRlci1zZWVrLXRleHR7ZGlzcGxheTpub25lO3dpZHRoOjgwJTttYXJnaW4tbGVmdDoxMCU7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NzAwO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWNoYXB0ZXItc2VlayAueXRwLWNoYXB0ZXItc2Vlay10ZXh0e3dpZHRoOjEwMCU7ZGlzcGxheTpibG9ja31ALXdlYmtpdC1rZXlmcmFtZXMgYXJyb3ctZmFkZS1vdXQtMXswJXtvcGFjaXR5OjB9MTcle29wYWNpdHk6Ljl9MzMle29wYWNpdHk6LjZ9NTAle29wYWNpdHk6LjN9Njcle29wYWNpdHk6LjN9ODMle29wYWNpdHk6LjN9dG97b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIGFycm93LWZhZGUtb3V0LTF7MCV7b3BhY2l0eTowfTE3JXtvcGFjaXR5Oi45fTMzJXtvcGFjaXR5Oi42fTUwJXtvcGFjaXR5Oi4zfTY3JXtvcGFjaXR5Oi4zfTgzJXtvcGFjaXR5Oi4zfXRve29wYWNpdHk6MH19QC13ZWJraXQta2V5ZnJhbWVzIGFycm93LWZhZGUtb3V0LTJ7MCV7b3BhY2l0eTowfTE3JXtvcGFjaXR5Oi4zfTMzJXtvcGFjaXR5Oi45fTUwJXtvcGFjaXR5Oi42fTY3JXtvcGFjaXR5Oi4zfTgzJXtvcGFjaXR5Oi4zfXRve29wYWNpdHk6MH19QGtleWZyYW1lcyBhcnJvdy1mYWRlLW91dC0yezAle29wYWNpdHk6MH0xNyV7b3BhY2l0eTouM30zMyV7b3BhY2l0eTouOX01MCV7b3BhY2l0eTouNn02NyV7b3BhY2l0eTouM304MyV7b3BhY2l0eTouM310b3tvcGFjaXR5OjB9fUAtd2Via2l0LWtleWZyYW1lcyBhcnJvdy1mYWRlLW91dC0zezAle29wYWNpdHk6MH0xNyV7b3BhY2l0eTouM30zMyV7b3BhY2l0eTouM301MCV7b3BhY2l0eTouOX02NyV7b3BhY2l0eTouNn04MyV7b3BhY2l0eTouM310b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgYXJyb3ctZmFkZS1vdXQtM3swJXtvcGFjaXR5OjB9MTcle29wYWNpdHk6LjN9MzMle29wYWNpdHk6LjN9NTAle29wYWNpdHk6Ljl9Njcle29wYWNpdHk6LjZ9ODMle29wYWNpdHk6LjN9dG97b3BhY2l0eTowfX0ueXRwLWRvdWJsZXRhcC11aS1sZWdhY3l7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO2NvbG9yOiNkZGQ7ei1pbmRleDoxOX0ueXRwLWRvdWJsZXRhcC1mYXN0LWZvcndhcmQtdmUsLnl0cC1kb3VibGV0YXAtcmV3aW5kLXZle29wYWNpdHk6MDtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lfS55dHAtZG91YmxldGFwLW92ZXJsYXktYTExeXtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6IzAwMDtvcGFjaXR5Oi4yO3otaW5kZXg6LTF9Lnl0cC1kb3VibGV0YXAtc3RhdGljLWNpcmNsZXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjYpO3RvcDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7b3ZlcmZsb3c6aGlkZGVufS55dHAtZG91YmxldGFwLXJpcHBsZXtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjIxLDIyMSwyMjEsLjE1KTstd2Via2l0LWFuaW1hdGlvbjpncm93LWNpcmNsZSAuOXMgMTthbmltYXRpb246Z3Jvdy1jaXJjbGUgLjlzIDE7dmVydGljYWwtYWxpZ246bWlkZGxlfUAtd2Via2l0LWtleWZyYW1lcyBncm93LWNpcmNsZXswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCl9dG97LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgtMjUlKTt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgtMjUlKX19QGtleWZyYW1lcyBncm93LWNpcmNsZXswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCl9dG97LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgtMjUlKTt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgtMjUlKX19Lnl0cC1kb3VibGV0YXAtc2Vlay1pbmZvLWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6NTAlfS55dHAtZG91YmxldGFwLXVpLWxlZ2FjeS55dHAtdGltZS1zZWVraW5nIC55dHAtZG91YmxldGFwLW92ZXJsYXktYTExeXtkaXNwbGF5Om5vbmV9Lnl0cC1kb3VibGV0YXAtdWktbGVnYWN5Lnl0cC1jaGFwdGVyLXNlZWsgLnl0cC1kb3VibGV0YXAtc2Vlay1pbmZvLWNvbnRhaW5lcnt0ZXh0LWFsaWduOmNlbnRlcn0ueXRwLWRvdWJsZXRhcC11aS1sZWdhY3lbZGF0YS1zaWRlPWJhY2tdOm5vdCgueXRwLWNoYXB0ZXItc2VlaykgLnl0cC1kb3VibGV0YXAtc2Vlay1pbmZvLWNvbnRhaW5lcntsZWZ0OjEwJTt0ZXh0LWFsaWduOmxlZnR9Lnl0cC1kb3VibGV0YXAtdWktbGVnYWN5W2RhdGEtc2lkZT1mb3J3YXJkXTpub3QoLnl0cC1jaGFwdGVyLXNlZWspIC55dHAtZG91YmxldGFwLXNlZWstaW5mby1jb250YWluZXJ7bGVmdDo4MCU7dGV4dC1hbGlnbjpsZWZ0fS55dHAtZG91YmxldGFwLXRvb2x0aXB7cGFkZGluZy10b3A6OHB4O2NvbG9yOiNkZGR9Lnl0cC1kb3VibGV0YXAtdWktbGVnYWN5W2RhdGEtc2lkZT1iYWNrXSAueXRwLWRvdWJsZXRhcC10b29sdGlwe21hcmdpbi1sZWZ0OjhweH0ueXRwLWRvdWJsZXRhcC11aS1sZWdhY3lbZGF0YS1zaWRlPWZvcndhcmRdIC55dHAtZG91YmxldGFwLXRvb2x0aXB7bWFyZ2luLWxlZnQ6LTVweH0ueXRwLWRvdWJsZXRhcC10b29sdGlwLWxhYmVse3RleHQtYWxpZ246bGVmdDtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9Lnl0cC1zZWVrLWljb24tdGV4dC1jb250YWluZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLWxlZnQ6MTAlO3dpZHRoOjgwJX0ueXRwLXNlZWstaWNvbnttYXJnaW4tcmlnaHQ6NXB4fS55dHAtY2hhcHRlci1zZWVrLXRleHQtbGVnYWN5e2Rpc3BsYXk6bm9uZTtmb250LXNpemU6MThweDtmb250LXdlaWdodDo3MDA7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtY2hhcHRlci1zZWVrIC55dHAtY2hhcHRlci1zZWVrLXRleHQtbGVnYWN5e2Rpc3BsYXk6YmxvY2t9Lnl0cC1kb3VibGV0YXAtYXJyb3dzLWNvbnRhaW5lcnt3aGl0ZS1zcGFjZTpub3dyYXB9Lnl0cC1kb3VibGV0YXAtYmFzZS1hcnJvd3t3aWR0aDowO2hlaWdodDowO2JvcmRlcjoxMHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6N3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206N3B4IHNvbGlkIHRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjoxLjJzO2FuaW1hdGlvbi1kdXJhdGlvbjoxLjJzOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlfS55dHAtZG91YmxldGFwLXVpLWxlZ2FjeVtkYXRhLXNpZGU9Zm9yd2FyZF0gLnl0cC1kb3VibGV0YXAtYmFzZS1hcnJvd3tib3JkZXItbGVmdDoxMXB4IHNvbGlkICNkZGR9Lnl0cC1kb3VibGV0YXAtdWktbGVnYWN5W2RhdGEtc2lkZT1iYWNrXSAueXRwLWRvdWJsZXRhcC1iYXNlLWFycm93e2JvcmRlci1yaWdodDoxMXB4IHNvbGlkICNkZGR9Lnl0cC1kb3VibGV0YXAtdWktbGVnYWN5W2RhdGEtc2lkZT1iYWNrXSAueXRwLWRvdWJsZXRhcC1iYXNlLWFycm93Om50aC1jaGlsZCgzKSwueXRwLWRvdWJsZXRhcC11aS1sZWdhY3lbZGF0YS1zaWRlPWZvcndhcmRdIC55dHAtZG91YmxldGFwLWJhc2UtYXJyb3c6Zmlyc3QtY2hpbGR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTphcnJvdy1mYWRlLW91dC0xO2FuaW1hdGlvbi1uYW1lOmFycm93LWZhZGUtb3V0LTF9Lnl0cC1kb3VibGV0YXAtdWktbGVnYWN5W2RhdGEtc2lkZT1iYWNrXSAueXRwLWRvdWJsZXRhcC1iYXNlLWFycm93Om50aC1jaGlsZCgyKSwueXRwLWRvdWJsZXRhcC11aS1sZWdhY3lbZGF0YS1zaWRlPWZvcndhcmRdIC55dHAtZG91YmxldGFwLWJhc2UtYXJyb3c6bnRoLWNoaWxkKDIpey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YXJyb3ctZmFkZS1vdXQtMjthbmltYXRpb24tbmFtZTphcnJvdy1mYWRlLW91dC0yfS55dHAtZG91YmxldGFwLXVpLWxlZ2FjeVtkYXRhLXNpZGU9YmFja10gLnl0cC1kb3VibGV0YXAtYmFzZS1hcnJvdzpmaXJzdC1jaGlsZCwueXRwLWRvdWJsZXRhcC11aS1sZWdhY3lbZGF0YS1zaWRlPWZvcndhcmRdIC55dHAtZG91YmxldGFwLWJhc2UtYXJyb3c6bnRoLWNoaWxkKDMpey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YXJyb3ctZmFkZS1vdXQtMzthbmltYXRpb24tbmFtZTphcnJvdy1mYWRlLW91dC0zfS55dHAtc2Vlay1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO3otaW5kZXg6MTA7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwb2ludGVyLWV2ZW50czpub25lO2RpcmVjdGlvbjpsdHJ9Lmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlIC55dHAtc2Vlay1vdmVybGF5e2Rpc3BsYXk6bm9uZX0ueXRwLXNlZWstb3ZlcmxheS1hbmltYXRpb257cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO29wYWNpdHk6MH0ueXRwLXNlZWstb3ZlcmxheS1hbmltYXRpb24ueXRwLXNlZWstb3ZlcmxheS1hbmltYXRpb24tYmFja3tsZWZ0OjQ4cHh9Lnl0cC1zZWVrLW92ZXJsYXktYW5pbWF0aW9uLnl0cC1zZWVrLW92ZXJsYXktYW5pbWF0aW9uLWZvcndhcmR7cmlnaHQ6NDhweH0ueXRwLXNlZWstb3ZlcmxheS1kdXJhdGlvbntjb2xvcjp3aGl0ZTtmb250LXNpemU6MjRweDtsaW5lLWhlaWdodDoyNHB4O2ZvbnQtd2VpZ2h0OjcwMDt0ZXh0LXNoYWRvdzowIDAgMXB4IHJnYmEoMCwwLDAsLjgpOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7LW1zLXRyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyfS55dHAtc2Vlay1vdmVybGF5LWFuaW1hdGlvbi1iYWNrIC55dHAtc2Vlay1vdmVybGF5LWFycm93e21hcmdpbi1yaWdodDoyMHB4fS55dHAtc2Vlay1vdmVybGF5LWFuaW1hdGlvbi1mb3J3YXJkIC55dHAtc2Vlay1vdmVybGF5LWFycm93e21hcmdpbi1sZWZ0OjIwcHh9Lnl0cC1zZWVrLW92ZXJsYXktYXJyb3cgc3Zne2Rpc3BsYXk6YmxvY2t9Lnl0cC1zZWVrLW92ZXJsYXktYXJyb3cgc3ZnIHBhdGh7LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIC41cHggcmdiYSgwLDAsMCwuOCkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgLjVweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1zZWVrLW92ZXJsYXktYXJyb3ctcGVyc2lzdGVudHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9Lnl0cC1zZWVrLW92ZXJsYXktYXJyb3ctYWRkaXRpb25hbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zbGF0ZTowIC01MCV9Lnl0cC1zZWVrLW92ZXJsYXktYW5pbWF0aW9uLWJhY2sgLnl0cC1zZWVrLW92ZXJsYXktYXJyb3ctYWRkaXRpb25hbHtsZWZ0OjB9Lnl0cC1zZWVrLW92ZXJsYXktYW5pbWF0aW9uLWZvcndhcmQgLnl0cC1zZWVrLW92ZXJsYXktYXJyb3ctYWRkaXRpb25hbHtyaWdodDowfS55dHAtc2Vlay1vdmVybGF5LW1lc3NhZ2V7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3c7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDE4MHB4KX0ueXRwLXNlZWstb3ZlcmxheS1tZXNzYWdlLWljb246bm90KDplbXB0eSl7bWFyZ2luLXJpZ2h0OjVweH0ueXRwLXNlZWstb3ZlcmxheS1tZXNzYWdlLXRleHR7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NzAwO3RleHQtc2hhZG93OjAgMCAxcHggcmdiYSgwLDAsMCwuOCk7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtbW9yZS12aWRlb3Mtdmlld3tvdmVyZmxvdzpoaWRkZW59Lnl0cC1tb3JlLXZpZGVvcy12aWV3IGEueXRwLXN1Z2dlc3Rpb24tbGluazpmb2N1czphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC44KTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCByZ2JhKDI3LDEyNywyMDQsLjgpfS55dHAtc2hvcnRzLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3LWNvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDt3aWR0aDppbmhlcml0O2hlaWdodDppbmhlcml0Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0cC1tb3JlLXZpZGVvcy12aWV3Lnl0cC1zY3JvbGwtbWF4IC55dHAtbmV4dCwueXRwLW1vcmUtdmlkZW9zLXZpZXcueXRwLXNjcm9sbC1taW4gLnl0cC1wcmV2aW91cywueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLW5leHQsLnl0cC1wcm9iYWJseS1rZXlib2FyZC1mb2N1cyAueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1wcmV2aW91cywueXRwLXRvdWNoLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtbmV4dCwueXRwLXRvdWNoLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtcHJldmlvdXN7ZGlzcGxheTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3e2JvdHRvbTo3MHB4O21hcmdpbjoyNHB4fS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXJlbGF0ZWQtdGl0bGV7bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1ib3R0b206MTJweDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MjBweH0ueXRwLWJpZy1tb2RlIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXJlbGF0ZWQtdGl0bGV7bWFyZ2luLWJvdHRvbToyNHB4O2ZvbnQtc2l6ZToyOHB4O2xpbmUtaGVpZ2h0OjMycHh9Lnl0cC1tb3JlLXZpZGVvcy12aWV3W2FyaWEtaGlkZGVuPXRydWVdIGEueXRwLXN1Z2dlc3Rpb24tbGlua3tvcGFjaXR5OjB9Lnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtc3VnZ2VzdGlvbnN7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcH0ueXRwLXRvdWNoLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtc3VnZ2VzdGlvbnN7b3ZlcmZsb3cteDphdXRvfS55dHAtdG91Y2gtbW9kZSAueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1zdWdnZXN0aW9uczo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtc3VnZ2VzdGlvbnN7aGVpZ2h0OjE4MHB4fS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24taW1hZ2V7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtcG9zaXRpb246NTAlOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3Zlcjtib3JkZXItcmFkaXVzOjhweDtoZWlnaHQ6MTA4cHg7d2lkdGg6MTkycHh9Lnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtbmV4dCwueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1wcmV2aW91c3tiYWNrZ3JvdW5kOiMzMzM7Ym9yZGVyLXJhZGl1czo1MCU7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDVweCByZ2JhKDAsMCwwLC4yKTtib3gtc2hhZG93OjAgMXB4IDVweCByZ2JhKDAsMCwwLC4yKTtoZWlnaHQ6MzJweDtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNTAlKTt3aWR0aDozMnB4fS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLW5leHQ6aG92ZXIsLnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtcHJldmlvdXM6aG92ZXJ7LXdlYmtpdC1ib3gtc2hhZG93OjAgNHB4IDVweCByZ2JhKDAsMCwwLC4yKTtib3gtc2hhZG93OjAgNHB4IDVweCByZ2JhKDAsMCwwLC4yKX0ueXRwLWJpZy1tb2RlIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLW5leHQsLnl0cC1iaWctbW9kZSAueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1wcmV2aW91c3toZWlnaHQ6NjRweDt3aWR0aDo2NHB4fS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLW5leHR7cmlnaHQ6NHB4fS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXByZXZpb3Vze2xlZnQ6NHB4fS55dHAtbW9yZS12aWRlb3MtdmlldyBhLnl0cC1zdWdnZXN0aW9uLWxpbmt7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1yaWdodDo0cHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0O3RvcDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjphbGwgLjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tb3ZlcmxheXtib3R0b206MDtmb250LXNpemU6MTJweDtsZWZ0OjA7cGFkZGluZzo4cHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH0ueXRwLXNob3J0cy1tb2RlIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tb3ZlcmxheXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtcGFjazplbmQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYm90dG9tLHJnYmEoMTIsMTIsMTIsLjgpLHRyYW5zcGFyZW50IDEwMHB4KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgwZGVnLHJnYmEoMTIsMTIsMTIsLjgpIDAsdHJhbnNwYXJlbnQgMTAwcHgpfS5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtc2hvcnRzLW1vZGUpIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tb3ZlcmxheXtvcGFjaXR5OjA7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AscmdiYSgxMiwxMiwxMiwuOCksdHJhbnNwYXJlbnQgMTAwcHgpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDEyLDEyLDEyLC44KSAwLHRyYW5zcGFyZW50IDEwMHB4KTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC41cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0ueXRwLWJpZy1tb2RlIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tb3ZlcmxheXtmb250LXNpemU6MjBweH0uaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLXNob3J0cy1tb2RlKSAueXRwLW1vcmUtdmlkZW9zLXZpZXcgYS55dHAtc3VnZ2VzdGlvbi1saW5rOmZvY3VzIC55dHAtc3VnZ2VzdGlvbi1vdmVybGF5LC5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtc2hvcnRzLW1vZGUpIC55dHAtbW9yZS12aWRlb3MtdmlldyBhLnl0cC1zdWdnZXN0aW9uLWxpbms6aG92ZXIgLnl0cC1zdWdnZXN0aW9uLW92ZXJsYXl7b3BhY2l0eToxfS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tbGluayAueXRwLXN1Z2dlc3Rpb24tZHVyYXRpb257YmFja2dyb3VuZDojMDAwO2JvcmRlci1yYWRpdXM6MnB4O2JvdHRvbTo0cHg7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE7b3BhY2l0eTouNzU7cGFkZGluZzoycHggNHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjRweH0ueXRwLWJpZy1tb2RlIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tbGluayAueXRwLXN1Z2dlc3Rpb24tZHVyYXRpb257Zm9udC1zaXplOjE3cHh9Lnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtc3VnZ2VzdGlvbi1saW5rIC55dHAtc3VnZ2VzdGlvbi1kdXJhdGlvbltkYXRhLWlzLWxpdmU9dHJ1ZV17YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1icmFuZCxyZ2JhKDIyNSwwLDQ1LC45KSk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tbGluayAueXRwLXN1Z2dlc3Rpb24tZHVyYXRpb246ZW1wdHksLnl0cC1zaG9ydHMtbW9kZSAueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1zdWdnZXN0aW9uLWxpbmsgLnl0cC1zdWdnZXN0aW9uLWR1cmF0aW9ue2Rpc3BsYXk6bm9uZX0uaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLXNob3J0cy1tb2RlKSAueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1zdWdnZXN0aW9uLXRpdGxlLC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tYXV0aG9ye292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtc2hvcnRzLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtc3VnZ2VzdGlvbi10aXRsZXtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6MjtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtc2hvcnRzLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy12aWV3IC55dHAtc3VnZ2VzdGlvbi1hdXRob3J7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MTZweH0ueXRwLXNob3J0cy1tb2RlIC55dHAtbW9yZS12aWRlb3MtdmlldyAueXRwLXN1Z2dlc3Rpb24tdGl0bGV7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MThweH0ueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1zdWdnZXN0aW9uLXRpdGxle2ZvbnQtd2VpZ2h0OjUwMH0uaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLXNob3J0cy1tb2RlKSAueXRwLW1vcmUtdmlkZW9zLXZpZXcgLnl0cC1zdWdnZXN0aW9uLXRpdGxle21heC1oZWlnaHQ6MzBweH0ueXRwLWltcHJlc3Npb24tbGlua3tiYWNrZ3JvdW5kOnJnYmEoMjMsMjMsMjMsLjgpO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjJweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czoycHg7Ym90dG9tOjVweDtoZWlnaHQ6NDdweDtwb3NpdGlvbjphYnNvbHV0ZX0ueXRwLWltcHJlc3Npb24tbGluay10ZXh0e2NvbG9yOndoaXRlO2Zsb2F0OmxlZnQ7Zm9udDo1MDAgMTZweC8xNnB4IFlvdVR1YmUgTm90byxSb2JvdG8sQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7bWFyZ2luLWxlZnQ6MTJweDttYXJnaW4tdG9wOjE2cHh9Lnl0cC1pbXByZXNzaW9uLWxpbmstbG9nb3tmbG9hdDpyaWdodDtoZWlnaHQ6MTZweDttYXJnaW4tbGVmdDo5cHg7bWFyZ2luLXJpZ2h0OjEycHg7bWFyZ2luLXRvcDoxNnB4O3dpZHRoOjcycHh9Lnl0cC1tdXNpYy1pbXByZXNzaW9uLWxpbmsgLnl0cC1pbXByZXNzaW9uLWxpbmstbG9nb3ttYXJnaW4tdG9wOjE0cHg7bWFyZ2luLWxlZnQ6MDtoZWlnaHQ6MTlweH0ueXRwLW1vYmlsZS1hMTF5LWhpZGRlbi1zZWVrLWJ1dHRvbi1mb3J3YXJkLC55dHAtbW9iaWxlLWExMXktaGlkZGVuLXNlZWstYnV0dG9uLXJld2luZHt3aWR0aDoxcHg7aGVpZ2h0OjFweH0ueXRwLW11dGVkLWF1dG9wbGF5LWVuZHNjcmVlbi1vdmVybGF5LC55dHAtbXV0ZWQtYXV0b3BsYXktb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjEwMDE7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7YmFja2dyb3VuZC1zaXplOmNvdmVyOy1tb3otYmFja2dyb3VuZC1zaXplOmNvdmVyOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyfS55dHAtbXV0ZWQtYXV0b3BsYXktZW5kc2NyZWVuLW92ZXJsYXlbYXJpYS1oaWRkZW49dHJ1ZV0sLnl0cC1tdXRlZC1hdXRvcGxheS1vdmVybGF5W2FyaWEtaGlkZGVuPXRydWVde29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLW11dGVkLWF1dG9wbGF5LWJvdHRvbS1idXR0b25ze3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjExcHg7Ym90dG9tOjB9Lnl0cC1tdXRlZC1hdXRvcGxheS1ib3R0b20tYnV0dG9ucyAueXRwLWJ1dHRvbiwueXRwLW11dGVkLWF1dG9wbGF5LWJvdHRvbS1idXR0b25zIC55dHAtd2F0ZXJtYXJre2Rpc3BsYXk6aW5saW5lLWJsb2NrO292ZXJmbG93OmhpZGRlbjt6LWluZGV4OnVuc2V0O21hcmdpbjowIDRweH0ueXRwLW11dGVkLWF1dG9wbGF5LWJvdHRvbS1idXR0b25zIC55dHAtd2F0ZXJtYXJre3JpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmV9Lnl0cC13YXRlcm1hcmsueXRwLW11dGVkLWF1dG9wbGF5LXdhdGVybWFya3tvcGFjaXR5OjF9Lnl0cC13YXRlcm1hcmsueXRwLW11dGVkLWF1dG9wbGF5LXdhdGVybWFya1thcmlhLWhpZGRlbj10cnVlXXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtbXV0ZWQtYXV0b3BsYXktZXF1YWxpemVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87Ym90dG9tOjhweH0ueXRwLWVtYmVkLW1vYmlsZSAueXRwLW11dGVkLWF1dG9wbGF5LWVxdWFsaXplcntib3R0b206MTBweH0ueXRwLW11dGVkLWF1dG9wbGF5LWVxdWFsaXplci1pY29ue21hcmdpbjphdXRvO3RvcDozcHg7d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1tdXRlZC1hdXRvcGxheS1lcXVhbGl6ZXItaWNvbnt3aWR0aDoyMHB4O2hlaWdodDoyMHB4fS55dHAtbXV0ZWQtYXV0b3BsYXktZW5kLXBhbmVse3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDowO3JpZ2h0OjA7bWFyZ2luOjAgMTAlO2Rpc3BsYXk6bm9uZX0ueXRwLW11dGVkLWF1dG9wbGF5LXNob3ctZW5kLXBhbmVsLnl0cC1tdXRlZC1hdXRvcGxheS1lbmRzY3JlZW4tb3ZlcmxheXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjQpfS55dHAtbXV0ZWQtYXV0b3BsYXktc2hvdy1lbmQtcGFuZWwgLnl0cC1tdXRlZC1hdXRvcGxheS1lbmQtcGFuZWx7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LXdyYXA6bm93cmFwO2ZsZXgtd3JhcDpub3dyYXA7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lnl0cC1tdXRlZC1hdXRvcGxheS1lbmQtdGV4dHtwb3NpdGlvbjphYnNvbHV0ZTtmb250LXdlaWdodDo1MDA7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE0cHg7bWFyZ2luLXRvcDo0MHB4fS55dHAtc2hvcnRzLW1vZGUgLnl0cC1tdXRlZC1hdXRvcGxheS1lbmQtdGV4dHttYXJnaW4tdG9wOjkwcHh9QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1lcXVhbGl6ZXItYW5pbWF0aW9uezAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgxKTt0cmFuc2Zvcm06c2NhbGVZKDEpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjUpO3RyYW5zZm9ybTpzY2FsZVkoLjUpfXRvey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgxKTt0cmFuc2Zvcm06c2NhbGVZKDEpfX1Aa2V5ZnJhbWVzIHl0cC1lcXVhbGl6ZXItYW5pbWF0aW9uezAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgxKTt0cmFuc2Zvcm06c2NhbGVZKDEpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjUpO3RyYW5zZm9ybTpzY2FsZVkoLjUpfXRvey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgxKTt0cmFuc2Zvcm06c2NhbGVZKDEpfX0ueXRwLWVxdWFsaXplci1iYXItbGVmdCwueXRwLWVxdWFsaXplci1iYXItbWlkZGxlLC55dHAtZXF1YWxpemVyLWJhci1yaWdodHtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDstbXMtdHJhbnNmb3JtLW9yaWdpbjo4cHggMTZweDt0cmFuc2Zvcm0tb3JpZ2luOjhweCAxNnB4Oy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjo4cHggMTZweDstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnl0cC1lcXVhbGl6ZXItYW5pbWF0aW9uO2FuaW1hdGlvbi1uYW1lOnl0cC1lcXVhbGl6ZXItYW5pbWF0aW9uOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlfS55dHAtZXF1YWxpemVyLWJhci1sZWZ0ey13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOi41czthbmltYXRpb24tZHVyYXRpb246LjVzfS55dHAtZXF1YWxpemVyLWJhci1taWRkbGV7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MS4zczthbmltYXRpb24tZHVyYXRpb246MS4zc30ueXRwLWVxdWFsaXplci1iYXItcmlnaHR7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246LjdzO2FuaW1hdGlvbi1kdXJhdGlvbjouN3N9Lnl0cC1wYXVzZS1vdmVybGF5e2JvcmRlci1yYWRpdXM6OHB4O2JvdHRvbTo0OXB4O2RpcmVjdGlvbjpsdHI7bGVmdDowO21hcmdpbjoxMnB4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NDI7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IDFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IDFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1wYXVzZS1vdmVybGF5W2FyaWEtaGlkZGVuPXRydWVde29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1wYXVzZS1vdmVybGF5LWNvbnRyb2xzLWhpZGRlbiAueXRwLXBhdXNlLW92ZXJsYXl7Ym90dG9tOjB9Lnl0cC1leHBhbmQtcGF1c2Utb3ZlcmxheSAuYWQtb3ZlcmxheSwueXRwLWV4cGFuZC1wYXVzZS1vdmVybGF5IC5jYXB0aW9uLXdpbmRvd3tkaXNwbGF5Om5vbmV9Lnl0cC1zaG9ydHMtbW9kZSAueXRwLXBhdXNlLW92ZXJsYXktY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4O3dpZHRoOmluaGVyaXQ7aGVpZ2h0OmluaGVyaXQ7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRwLWV4cGFuZC1wYXVzZS1vdmVybGF5IC55dHAtcGF1c2Utb3ZlcmxheXtiYWNrZ3JvdW5kOnJnYmEoMjMsMjMsMjMsLjkpO3BhZGRpbmc6MTJweCAxNnB4IDE2cHg7cmlnaHQ6MH0ueXRwLWV4cGFuZC1wYXVzZS1vdmVybGF5Lnl0cC1zaG9ydHMtbW9kZSAueXRwLXBhdXNlLW92ZXJsYXl7Ym90dG9tOmF1dG99Lnl0cC1leHBhbmQtcGF1c2Utb3ZlcmxheS55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyIC55dHAtcGF1c2Utb3ZlcmxheXtvcGFjaXR5Oi4yfS55dHAtY2Utc2hvd24gLnl0cC1wYXVzZS1vdmVybGF5LC55dHAtaXYtZHJhd2VyLW9wZW4gLnl0cC1wYXVzZS1vdmVybGF5LC55dHAtbWVudS1zaG93biAueXRwLXBhdXNlLW92ZXJsYXksLnl0cC1zZXR0aW5ncy1zaG93biAueXRwLXBhdXNlLW92ZXJsYXl7ZGlzcGxheTpub25lfS5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtZXhwYW5kLXBhdXNlLW92ZXJsYXkpIC55dHAtcGF1c2Utb3ZlcmxheSAueXRwLWNvbGxhcHNlLC5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtZXhwYW5kLXBhdXNlLW92ZXJsYXkpIC55dHAtcGF1c2Utb3ZlcmxheSAueXRwLW5leHQsLmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1leHBhbmQtcGF1c2Utb3ZlcmxheSkgLnl0cC1wYXVzZS1vdmVybGF5IC55dHAtcHJldmlvdXMsLmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1leHBhbmQtcGF1c2Utb3ZlcmxheSkgLnl0cC1wYXVzZS1vdmVybGF5IC55dHAtcmVsYXRlZC10aXRsZSwuaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLWV4cGFuZC1wYXVzZS1vdmVybGF5KSAueXRwLXBhdXNlLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uc3tkaXNwbGF5Om5vbmV9Lnl0cC1leHBhbmQtcGF1c2Utb3ZlcmxheS55dHAtYmlnLW1vZGUgLnl0cC1wYXVzZS1vdmVybGF5e3BhZGRpbmc6MjRweCAzMnB4IDMycHh9Lnl0cC1wYXVzZS1vdmVybGF5IC55dHAtY29sbGFwc2V7aGVpZ2h0OjIwcHg7b3BhY2l0eTouOTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoyMHB4O3RvcDoxMnB4O3dpZHRoOjIwcHh9Lnl0cC1tb2JpbGUueXRwLWVtYmVkLW1vYmlsZSAueXRwLXBhdXNlLW92ZXJsYXkgLnl0cC1jb2xsYXBzZXtoZWlnaHQ6NDhweDtyaWdodDowO3RvcDowO3dpZHRoOjQ4cHh9Lnl0cC1tb2JpbGUueXRwLWVtYmVkLW1vYmlsZSAueXRwLXBhdXNlLW92ZXJsYXkgLnl0cC1jb2xsYXBzZS1pY29ue21hcmdpbjphdXRvO2hlaWdodDozNnB4O3dpZHRoOjM2cHh9Lnl0cC1iaWctbW9kZSAueXRwLXBhdXNlLW92ZXJsYXkgLnl0cC1jb2xsYXBzZXtoZWlnaHQ6MzJweDtyaWdodDozNnB4O3RvcDoyNHB4O3dpZHRoOjMycHh9Lnl0cC1wYXVzZS1vdmVybGF5IC55dHAtY29sbGFwc2U6aG92ZXJ7b3BhY2l0eToxfS55dHAtcGF1c2Utb3ZlcmxheSAueXRwLWV4cGFuZHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjYpO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjMycHg7cGFkZGluZzowIDEwcHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS55dHAtbW9iaWxlLnl0cC1lbWJlZC1tb2JpbGUgLnl0cC1wYXVzZS1vdmVybGF5IC55dHAtZXhwYW5ke2hlaWdodDo0OHB4fS55dHAtYmlnLW1vZGUgLnl0cC1wYXVzZS1vdmVybGF5IC55dHAtZXhwYW5ke2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToyNHB4O3BhZGRpbmc6MTBweCAxNXB4fS55dHAtcGF1c2Utb3ZlcmxheSAueXRwLWV4cGFuZDpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpfS55dHAtcGF1c2Utb3ZlcmxheSAueXRwLWV4cGFuZCBzdmd7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjI0cHg7bWFyZ2luLWJvdHRvbToycHg7dmVydGljYWwtYWxpZ246bWlkZGxlO3dpZHRoOjI0cHh9Lnl0cC1iaWctbW9kZSAueXRwLXBhdXNlLW92ZXJsYXkgLnl0cC1leHBhbmQgc3Zne3dpZHRoOjMycHg7aGVpZ2h0OjMycHh9Lnl0cC1leHBhbmQtcGF1c2Utb3ZlcmxheSAueXRwLWV4cGFuZHtkaXNwbGF5Om5vbmV9Lnl0cC1zaG9ydHMtbW9kZSAueXRwLXBhdXNlLW92ZXJsYXktYmFja2Ryb3B7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC42KTtvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OjI0Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IDFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IDFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1zaG9ydHMtbW9kZSAueXRwLXBhdXNlLW92ZXJsYXktYmFja2Ryb3BbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheXtib3JkZXItcmFkaXVzOjJweDtib3R0b206OHB4O2xlZnQ6OHB4O3JpZ2h0OjhweDttYXJnaW46MDtwb3NpdGlvbjphYnNvbHV0ZTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtwYWRkaW5nOjE2cHggMjRweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXl7cGFkZGluZzoxMnB4IDI0cHh9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5e2JvdHRvbTozMnB4O2xlZnQ6MjhweDtyaWdodDoyOHB4fS55dHAtcHJvYmFibHkta2V5Ym9hcmQtZm9jdXMgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1uZXh0LC55dHAtcHJvYmFibHkta2V5Ym9hcmQtZm9jdXMgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1wcmV2aW91cywueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheS55dHAtc2Nyb2xsLW1heCAueXRwLW5leHQsLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkueXRwLXNjcm9sbC1taW4gLnl0cC1wcmV2aW91cywueXRwLXRvdWNoLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1uZXh0LC55dHAtdG91Y2gtbW9kZSAueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXByZXZpb3Vze2Rpc3BsYXk6bm9uZX0ueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXJlbGF0ZWQtdGl0bGV7bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1ib3R0b206MDtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTZweH0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1yZWxhdGVkLXRpdGxle21hcmdpbi1sZWZ0OjhweH0ueXRwLWJpZy1tb2RlIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtcmVsYXRlZC10aXRsZXttYXJnaW4tYm90dG9tOjI0cHg7Zm9udC1zaXplOjI4cHg7bGluZS1oZWlnaHQ6MzJweH0ueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXN1Z2dlc3Rpb25ze2RpcmVjdGlvbjpsdHI7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tdG9wOjhweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uc3ttYXJnaW4tdG9wOjZweH0ueXRwLXRvdWNoLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uc3tvdmVyZmxvdy14OmF1dG99Lnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uLWltYWdle2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjEwOHB4O3dpZHRoOjE5MnB4O2JvcmRlci1yYWRpdXM6OHB4fS55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtbmV4dCwueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXByZXZpb3Vze2JhY2tncm91bmQ6IzMzMztib3JkZXItcmFkaXVzOjUwJTstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggNXB4IHJnYmEoMCwwLDAsLjIpO2JveC1zaGFkb3c6MCAxcHggNXB4IHJnYmEoMCwwLDAsLjIpO2hlaWdodDozMnB4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjMycHg7Ym90dG9tOjUwJX0ueXRwLWJpZy1tb2RlIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtbmV4dCwueXRwLWJpZy1tb2RlIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtcHJldmlvdXN7aGVpZ2h0OjY0cHg7d2lkdGg6NjRweH0ueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLW5leHR7cmlnaHQ6MjhweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoNTAlKX0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1uZXh0e3JpZ2h0OjMycHh9W2Rpcj1ydGxdIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtbmV4dHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX0ueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXByZXZpb3Vze2xlZnQ6MjhweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1wcmV2aW91c3tsZWZ0OmFkZCgyNHB4LDhweCl9W2Rpcj1ydGxdIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtcHJldmlvdXN7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCg1MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCg1MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDUwJSl9Lnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgYS55dHAtc3VnZ2VzdGlvbi1saW5re2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6NHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246bGVmdDt0b3A6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb246YWxsIC41cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgYS55dHAtc3VnZ2VzdGlvbi1saW5re21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6OHB4fS55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtc3VnZ2VzdGlvbi1vdmVybGF5e2JvdHRvbTowO2ZvbnQtc2l6ZToxMnB4O2xlZnQ6MDtvcGFjaXR5OjA7cGFkZGluZzo4cHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDEyLDEyLDEyLC44KSx0cmFuc3BhcmVudCAxMDBweCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMTIsMTIsMTIsLjgpIDAsdHJhbnNwYXJlbnQgMTAwcHgpOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC41cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS55dHAtYmlnLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uLW92ZXJsYXl7Zm9udC1zaXplOjIwcHh9Lnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgYS55dHAtc3VnZ2VzdGlvbi1saW5rOmZvY3VzIC55dHAtc3VnZ2VzdGlvbi1vdmVybGF5LC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IGEueXRwLXN1Z2dlc3Rpb24tbGluazpob3ZlciAueXRwLXN1Z2dlc3Rpb24tb3ZlcmxheXtvcGFjaXR5OjF9Lnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uLWxpbmsgLnl0cC1zdWdnZXN0aW9uLWR1cmF0aW9ue2JhY2tncm91bmQ6IzAwMDtib3JkZXItcmFkaXVzOjJweDtib3R0b206NHB4O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxO29wYWNpdHk6Ljk7cGFkZGluZzoycHggNHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjRweH0ueXRwLWJpZy1tb2RlIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtc3VnZ2VzdGlvbi1saW5rIC55dHAtc3VnZ2VzdGlvbi1kdXJhdGlvbntmb250LXNpemU6MTdweH0ueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXN1Z2dlc3Rpb24tbGluayAueXRwLXN1Z2dlc3Rpb24tZHVyYXRpb25bZGF0YS1pcy1saXZlPXRydWVde2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1lcnJvci1pbmRpY2F0b3IsI2UxMDAyZCk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtc3VnZ2VzdGlvbi1kdXJhdGlvbjplbXB0eXtkaXNwbGF5Om5vbmV9Lnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uLWF1dGhvciwueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXN1Z2dlc3Rpb24tdGl0bGV7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uLXRpdGxle2ZvbnQtd2VpZ2h0OjUwMDttYXJnaW4tdG9wOjhweDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxOHB4O21heC1oZWlnaHQ6MzBweH0ueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXN1Z2dlc3Rpb24tYXV0aG9ye29wYWNpdHk6Ljc7bWFyZ2luLXRvcDo0cHg7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MTZweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1uZXh0LC55dHAtc21hbGwtbW9kZSAueXRwLXJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheSAueXRwLXByZXZpb3Vze2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtcmVsYXRlZC10aXRsZXttYXJnaW4tYm90dG9tOjA7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MTRweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXkgLnl0cC1zdWdnZXN0aW9uLXRpdGxle21hcmdpbi10b3A6NnB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE0cHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtcmVsYXRlZC1vbi1lcnJvci1vdmVybGF5IC55dHAtc3VnZ2VzdGlvbi1hdXRob3J7Zm9udC1zaXplOjEwcHg7bGluZS1oZWlnaHQ6MTJweH06bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtd2F0ZXJtYXJre3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjExMHB4O2hlaWdodDoyNnB4O2JvdHRvbTozOHB4O3otaW5kZXg6Mjg7b3BhY2l0eTouOTtwYWRkaW5nLXRvcDoxMXB4O3BhZGRpbmctYm90dG9tOjExcHh9Om5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLXdhdGVybWFyazpub3QoLnl0cC1tdXRlZC1hdXRvcGxheS13YXRlcm1hcmspe3JpZ2h0OjE2cHh9Om5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLXdhdGVybWFyay55dHAtd2F0ZXJtYXJrLXNtYWxse3dpZHRoOjg1cHg7aGVpZ2h0OjIwcHh9Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC13YXRlcm1hcmt7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtYmlnLW1vZGU6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtd2F0ZXJtYXJre2JvdHRvbTo1OXB4fS55dHAtaGlkZS1jb250cm9sczpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC13YXRlcm1hcmt7Ym90dG9tOjVweDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLW5hdGl2ZS1jb250cm9sczpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC13YXRlcm1hcmt7Ym90dG9tOjUwcHg7bGVmdDoxNnB4fTpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC13YXRlcm1hcms6bm90KC55dHAtbm8taG92ZXIpOm5vdCgueXRwLW11dGVkLWF1dG9wbGF5LXdhdGVybWFyayk6aG92ZXJ7b3BhY2l0eToxfTpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC1tdXRlZC1hdXRvcGxheS1vdmVybGF5IC55dHAtd2F0ZXJtYXJre3Bvc2l0aW9uOnJlbGF0aXZlO2JvdHRvbTowfS55dHAtYXV0b2hpZGU6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtd2F0ZXJtYXJrOm5vdCgueXRwLW11dGVkLWF1dG9wbGF5LXdhdGVybWFyayl7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtbXV0ZWQtYXV0b3BsYXkgLnl0cC13YXRlcm1hcms6bm90KC55dHAtbXV0ZWQtYXV0b3BsYXktd2F0ZXJtYXJrKXtkaXNwbGF5Om5vbmV9Om5vdCgueXRwLW13ZWItcGxheWVyKSAuaHRtbDUtZW5kc2NyZWVue2N1cnNvcjpkZWZhdWx0O292ZXJmbG93OmhpZGRlbjt6LWluZGV4OjM2fTpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC1lbmRzY3JlZW4tdGFrZW92ZXIuaHRtbDUtZW5kc2NyZWVue2Rpc3BsYXk6bm9uZX0ueXRwLXRpdGxlLWVuYWJsZS1jaGFubmVsLWxvZ286bm90KC55dHAtbXdlYi1wbGF5ZXIpIC5odG1sNS1lbmRzY3JlZW46bm90KC55dHAtc2hvcnRzLWJyYW5kZWQtdWkpe21hcmdpbi10b3A6MTZweH0ueXRwLWJpZy1tb2RlLnl0cC10aXRsZS1lbmFibGUtY2hhbm5lbC1sb2dvOm5vdCgueXRwLW13ZWItcGxheWVyKSAuaHRtbDUtZW5kc2NyZWVuOm5vdCgueXRwLXNob3J0cy1icmFuZGVkLXVpKXttYXJnaW4tdG9wOjMycHh9Om5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLWVuZHNjcmVlbi1jb250ZW50e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO3RvcDo1MCV9Lnl0cC1lbmRzY3JlZW4tdGFrZW92ZXI6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtZW5kc2NyZWVuLWNvbnRlbnR7ZGlzcGxheTpub25lfTpub3QoLnl0cC1td2ViLXBsYXllcikgLmh0bWw1LWVuZHNjcmVlbi55dHAtZW5kc2NyZWVuLXBhZ2luYXRle2xlZnQ6MzJweDtvdmVyZmxvdzp2aXNpYmxlO3JpZ2h0OjMycHh9Lnl0cC1iaWctbW9kZTpub3QoLnl0cC1td2ViLXBsYXllcikgLmh0bWw1LWVuZHNjcmVlbi55dHAtZW5kc2NyZWVuLXBhZ2luYXRle2xlZnQ6NDhweDtyaWdodDo0OHB4fTpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC1lbmRzY3JlZW4tbmV4dHtkaXNwbGF5Om5vbmU7aGVpZ2h0OjEwMCU7b3BhY2l0eTouOTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMzJweDt3aWR0aDozMnB4Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWJpZy1tb2RlOm5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLWVuZHNjcmVlbi1uZXh0e3JpZ2h0Oi00OHB4O3dpZHRoOjQ4cHh9Om5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLWVuZHNjcmVlbi1wYWdpbmF0ZSAueXRwLWVuZHNjcmVlbi1uZXh0e2Rpc3BsYXk6YmxvY2t9Om5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLWVuZHNjcmVlbi1uZXh0OmhvdmVye29wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Om5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLWVuZHNjcmVlbi1wcmV2aW91c3tkaXNwbGF5Om5vbmU7aGVpZ2h0OjEwMCU7bGVmdDotMzJweDtvcGFjaXR5Oi45O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjMycHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtYmlnLW1vZGU6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtZW5kc2NyZWVuLXByZXZpb3Vze2xlZnQ6LTQ4cHg7d2lkdGg6NDhweH06bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtZW5kc2NyZWVuLXBhZ2luYXRlIC55dHAtZW5kc2NyZWVuLXByZXZpb3Vze2Rpc3BsYXk6YmxvY2t9Om5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLWVuZHNjcmVlbi1wcmV2aW91czpob3ZlcntvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtbXdlYi1wbGF5ZXIuaHRtbDUtZW5kc2NyZWVue3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Y3Vyc29yOmRlZmF1bHQ7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MzZ9Lmh0bWw1LWVuZHNjcmVlbi5tb2Rlcm4tdmlkZW93YWxsLWVuZHNjcmVlbntjdXJzb3I6ZGVmYXVsdDtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDozNjstd2Via2l0LWFsaWduLWNvbnRlbnQ6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyfS55dHAtbW9kZXJuLWVuZHNjcmVlbi1jb250ZW50e2ZvbnQtc2l6ZToxMXB4fS55dHAtbW9kZXJuLWVuZHNjcmVlbi1zaW5nbGUtaXRlbSAueXRwLW1vZGVybi1lbmRzY3JlZW4tY29udGVudCAueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGx7bWFyZ2luLWJvdHRvbTowOy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93O3BhZGRpbmctYm90dG9tOnVuc2V0O2hlaWdodDoxMDAlfS55dHAtbW9kZXJuLWVuZHNjcmVlbi1zaW5nbGUtaXRlbSAueXRwLW1vZGVybi1lbmRzY3JlZW4tY29udGVudCAueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwgLnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWltYWdle21hcmdpbi1yaWdodDoxMnB4fS55dHAtZW5kc2NyZWVuLXRha2VvdmVyIC55dHAtbW9kZXJuLWVuZHNjcmVlbi1jb250ZW50LC55dHAtZW5kc2NyZWVuLXRha2VvdmVyLmh0bWw1LWVuZHNjcmVlbntkaXNwbGF5Om5vbmV9Lnl0cC10aXRsZS1lbmFibGUtY2hhbm5lbC1sb2dvIC5odG1sNS1lbmRzY3JlZW46bm90KC55dHAtc2hvcnRzLWJyYW5kZWQtdWkpe21hcmdpbi10b3A6MTZweH0ueXRwLW1vZGVybi1lbmRzY3JlZW4tY29udGVudHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpbGwsbWlubWF4KDMxMHB4LDFmcikpO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maWxsLG1pbm1heChjbGFtcCgyNTBweCwyNyUsNDUwcHgpLDFmcikpO2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoMSwxZnIpOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dyaWQtYXV0by1yb3dzOjA7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtY29sdW1uLWdhcDoxNnB4Oy1tb3otY29sdW1uLWdhcDoxNnB4O2NvbHVtbi1nYXA6MTZweDt3aWR0aDoxMDAlOy13ZWJraXQtYm94LWFsaWduOnN0cmV0Y2g7LXdlYmtpdC1hbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWl0ZW1zOnN0cmV0Y2g7cGFkZGluZzozMnB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXgtaGVpZ2h0OjEwMCV9Lnl0cC1tb2Rlcm4tZW5kc2NyZWVuLXJvdy0wIC55dHAtbW9kZXJuLWVuZHNjcmVlbi1jb250ZW50e3BhZGRpbmctdG9wOjE2cHg7cGFkZGluZy1ib3R0b206MTZweH0ueXRwLW1vZGVybi1lbmRzY3JlZW4tbGltaXQtcm93cy0xIC55dHAtbW9kZXJuLWVuZHNjcmVlbi1jb250ZW50e2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoMSwxZnIpfS55dHAtbW9kZXJuLWVuZHNjcmVlbi1saW1pdC1yb3dzLTIgLnl0cC1tb2Rlcm4tZW5kc2NyZWVuLWNvbnRlbnR7Z3JpZC10ZW1wbGF0ZS1yb3dzOnJlcGVhdCgyLDFmcil9Lnl0cC1tb2Rlcm4tZW5kc2NyZWVuLWxpbWl0LXJvd3MtMyAueXRwLW1vZGVybi1lbmRzY3JlZW4tY29udGVudHtncmlkLXRlbXBsYXRlLXJvd3M6cmVwZWF0KDMsMWZyKX0ueXRwLWVuZHNjcmVlbi1wcmV2aW91czpob3ZlcntvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZHtvcGFjaXR5OjE7b3ZlcmZsb3c6dmlzaWJsZX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUgLnl0cC1mdWxsc2NyZWVuLWdyaWQtbWFpbi1jb250ZW50e29wYWNpdHk6MTtzY3JvbGxiYXItd2lkdGg6bm9uZTtvdmVyZmxvdzpzY3JvbGx9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlIC55dHAtZnVsbHNjcmVlbi1ncmlkLW1haW4tY29udGVudHtib3R0b206MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO3RvcDowfS55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZS55dHAtZ3JpZC1zY3JvbGxhYmxlIC55dHAtZnVsbHNjcmVlbi1ncmlke3RvcDpjYWxjKDMwJSArIHZhcigtLXl0cC1ncmlkLXNjcm9sbC1wZXJjZW50YWdlKSoxMDAlKTtib3R0b206MH0uaHRtbDUtdmlkZW8tcGxheWVyLmVuZGVkLW1vZGUgLnl0cC1mdWxsc2NyZWVuLWdyaWQtZXhwYW5kLWJ1dHRvbiwuaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nKTpub3QoLnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlKSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1leHBhbmQtYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1idXR0b25zLWNvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0b3A6MDttYXJnaW4tdG9wOmNhbGModmFyKC0teXQtZGVsaGktcGlsbC1oZWlnaHQpLzIqLTEgKyB2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0KS8yKi0xKTstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O3otaW5kZXg6NzI7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLWJpZy1tb2RlIC55dHAtZnVsbHNjcmVlbi1ncmlkLWJ1dHRvbnMtY29udGFpbmVye21hcmdpbi10b3A6Y2FsYyh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCkvMiotMSArIHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQpLzIqLTEpfS55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b257b3BhY2l0eToxOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bS1saWdodCxyZ2JhKDAsMCwwLC4zKSk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b24gc3Zney13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1leHBhbmQtYnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOnZhcigtLXl0LWRlbGhpLXBpbGwtaGVpZ2h0KTtoZWlnaHQ6dmFyKC0teXQtZGVsaGktcGlsbC1oZWlnaHQpO2JvcmRlci1yYWRpdXM6NTAlO292ZXJmbG93OnZpc2libGU7c2Nyb2xsYmFyLXdpZHRoOm5vbmU7ei1pbmRleDo3Mjtwb2ludGVyLWV2ZW50czphbGw7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1iaWctbW9kZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1leHBhbmQtYnV0dG9ue3dpZHRoOnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0KTtoZWlnaHQ6dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQpfS55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b24gc3Zne3BhZGRpbmc6Y2FsYygodmFyKC0teXQtZGVsaGktcGlsbC1oZWlnaHQpIC0gdmFyKC0teXQtZGVsaGktaWNvbi1zaXplLCAyNHB4KSkvMik7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLWljb24tc2l6ZSwyNHB4KTt3aWR0aDp2YXIoLS15dC1kZWxoaS1pY29uLXNpemUsMjRweCl9Lnl0cC1iaWctbW9kZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1leHBhbmQtYnV0dG9uIHN2Z3twYWRkaW5nOmNhbGMoKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0KSAtIHZhcigtLXl0LWRlbGhpLWljb24tc2l6ZSwgMjRweCkpLzIpfS55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b246YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTt0b3A6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3dpZHRoOmNhbGMoMTAwJSAtIDhweCk7aGVpZ2h0OmNhbGMoMTAwJSAtIDhweCk7Ym9yZGVyLXJhZGl1czo1MCV9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aW9uLWJ1dHRvbntkaXNwbGF5Om5vbmU7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUgLnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aW9uLWJ1dHRvbntkaXNwbGF5OmJsb2NrO3BvaW50ZXItZXZlbnRzOmFsbH06bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b246aG92ZXI6YmVmb3JlLDpub3QoLnl0cC1ncmlkLXNjcm9sbGluZykgLnl0cC1mdWxsc2NyZWVuLWdyaWQtaG92ZXItb3ZlcmxheTpob3ZlciAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1leHBhbmQtYnV0dG9uOmJlZm9yZSw6bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtZnVsbHNjcmVlbi1ncmlkLWhvdmVyLW92ZXJsYXk6aG92ZXIgLnl0cC1tb3JlLXZpZGVvcy1idXR0b246YWZ0ZXIsOm5vdCgueXRwLWdyaWQtc2Nyb2xsaW5nKSAueXRwLW1vcmUtdmlkZW9zLWJ1dHRvbjpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjEpKX06bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b246YWN0aXZlOmJlZm9yZSw6bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtZnVsbHNjcmVlbi1ncmlkLWhvdmVyLW92ZXJsYXk6YWN0aXZlIC55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b246YmVmb3JlLDpub3QoLnl0cC1ncmlkLXNjcm9sbGluZykgLnl0cC1mdWxsc2NyZWVuLWdyaWQtaG92ZXItb3ZlcmxheTphY3RpdmUgLnl0cC1tb3JlLXZpZGVvcy1idXR0b246YWZ0ZXIsOm5vdCgueXRwLWdyaWQtc2Nyb2xsaW5nKSAueXRwLW1vcmUtdmlkZW9zLWJ1dHRvbjphY3RpdmU6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYnV0dG9uLXNlY29uZGFyeSxyZ2JhKDI1NSwyNTUsMjU1LC4yKSl9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tZ3JpZHtvcGFjaXR5OjE7b3ZlcmZsb3c6aGlkZGVuO3RvcDpjYWxjKDEwMCUgLSB2YXIoLS15dHAtZ3JpZC1wZWVrLWhlaWdodCkgLSB2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSAtIDZweCAtIHZhcigtLXl0cC1ncmlkLXNjcm9sbC1wZXJjZW50YWdlKSoxMDAlKX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1iaWctbW9kZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZHt0b3A6Y2FsYygxMDAlIC0gdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpIC0gdmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgLSA2cHggLSB2YXIoLS15dHAtZ3JpZC1zY3JvbGwtcGVyY2VudGFnZSkqMTAwJSl9Lnl0cC1ncmlkLXNjcm9sbGFibGUgLnl0cC1mdWxsc2NyZWVuLWdyaWQtaGVhZGVye2Rpc3BsYXk6bm9uZX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1ncmlkLXNjcm9sbGFibGUgLnl0cC1mdWxsc2NyZWVuLWdyaWR7ZGlzcGxheTpibG9jaztvdmVyZmxvdzp2aXNpYmxlO3RvcDpjYWxjKDEwMCUgLSB2YXIoLS15dHAtZ3JpZC1wZWVrLWhlaWdodCkgLSB2YXIoLS15dHAtZ3JpZC1zY3JvbGwtcGVyY2VudGFnZSkqMTAwJSl9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtZ3JpZC1zY3JvbGxhYmxlLnl0cC1iaWctbW9kZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZHt0b3A6Y2FsYygxMDAlIC0gdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpIC0gdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjEwMCUpfS55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcueXRwLWdyaWQtc2Nyb2xsYWJsZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1tYWluLWNvbnRlbnR7b3BhY2l0eTouNX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1ncmlkLXNjcm9sbGFibGUueXRwLWdyaWQtc2Nyb2xsaW5nIC55dHAtZnVsbHNjcmVlbi1ncmlkLW1haW4tY29udGVudHtvcGFjaXR5OjF9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1ob3Zlci1vdmVybGF5e2Rpc3BsYXk6YmxvY2s7d2lkdGg6Y2FsYygxMDAlIC0gMjRweCk7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDoxMnB4O2JvcmRlci1yYWRpdXM6MTZweDt6LWluZGV4OjcyO3BvaW50ZXItZXZlbnRzOmFsbDtjdXJzb3I6cG9pbnRlcn0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmU6bm90KC5lbmRlZC1tb2RlKSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1tYWluLWNvbnRlbnQsLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1tYWluLWNvbnRlbnR7bWFyZ2luLXRvcDoxMnB4fS55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1ob3Zlci1vdmVybGF5LC55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcueXRwLWdyaWQtc2Nyb2xsaW5nIC55dHAtZnVsbHNjcmVlbi1ncmlkLWhvdmVyLW92ZXJsYXl7ZGlzcGxheTpub25lfTpub3QoLnl0cC1ncmlkLXNjcm9sbGluZykgLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1ob3Zlci1vdmVybGF5OmhhcygueXRwLWZ1bGxzY3JlZW4tZ3JpZC1leHBhbmQtYnV0dG9uOmhvdmVyKSw6bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLnl0cC1mdWxsc2NyZWVuLWdyaWQtaG92ZXItb3ZlcmxheTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tc2Vjb25kYXJ5KX06bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLnl0cC1mdWxsc2NyZWVuLWdyaWQtaG92ZXItb3ZlcmxheTphY3RpdmUsOm5vdCgueXRwLWdyaWQtc2Nyb2xsaW5nKSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtZnVsbHNjcmVlbi1ncmlkLWhvdmVyLW92ZXJsYXk6aGFzKC55dHAtZnVsbHNjcmVlbi1ncmlkLWV4cGFuZC1idXR0b246YWN0aXZlKXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10b25hbC1ob3Zlcil9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlOm5vdCguZW5kZWQtbW9kZSkgLnl0cC1mdWxsc2NyZWVuLWdyaWQsLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tZ3JpZHtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLDApLHJnYmEoMCwwLDAsLjc1KSAxMDBweCxyZ2JhKDAsMCwwLC44NSkpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDAsMCwwLDApLHJnYmEoMCwwLDAsLjc1KSAxMDBweCxyZ2JhKDAsMCwwLC44NSkpfS55dHAtZ3JpZC1yZXBsYXktYnV0dG9ue3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7Ym9yZGVyLXJhZGl1czoxOHB4O21hcmdpbi1yaWdodDoxNnB4Oy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTtkaXNwbGF5Om5vbmV9Lnl0cC1mdWxsLWJsZWVkLXBsYXllciAueXRwLWdyaWQtcmVwbGF5LWJ1dHRvbnt3aWR0aDo2MHB4O2hlaWdodDo2MHB4O2JvcmRlci1yYWRpdXM6MzBweH0ueXRwLWdyaWQtcmVwbGF5LWJ1dHRvbiBzdmd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1zdGlsbHMtY29udGFpbmVye2Rpc3BsYXk6Z3JpZDtwYWRkaW5nOjAgMjRweDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsMWZyKTtwb2ludGVyLWV2ZW50czpub25lOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoxNnB4Oy13ZWJraXQtYm94LWFsaWduOnN0cmV0Y2g7LXdlYmtpdC1hbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWl0ZW1zOnN0cmV0Y2h9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlIC55dHAtZnVsbHNjcmVlbi1ncmlkLXN0aWxscy1jb250YWluZXIsLnl0cC1ncmlkLXNjcm9sbGluZy55dHAtZ3JpZC1zY3JvbGxhYmxlIC55dHAtZnVsbHNjcmVlbi1ncmlkLXN0aWxscy1jb250YWluZXJ7cG9pbnRlci1ldmVudHM6YXV0b30ueXRwLWZ1bGxzY3JlZW4tZ3JpZHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MTAwJTt3aWR0aDoxMDAlO3otaW5kZXg6NzI7cG9pbnRlci1ldmVudHM6bm9uZTttYXgtaGVpZ2h0OjEwMCU7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6MDt2aXNpYmlsaXR5OnZpc2libGU7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcpOm5vdCgueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUpIC55dHAtZnVsbHNjcmVlbi1ncmlke2Rpc3BsYXk6bm9uZX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1hdXRvaGlkZTpub3QoLnl0cC1ncmlkLXNjcm9sbGluZykgLnl0cC1mdWxsc2NyZWVuLWdyaWR7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7b3BhY2l0eTowfS55dHAtbW9yZS12aWRlb3MtYnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4O3dpZHRoOi13ZWJraXQtZml0LWNvbnRlbnQ7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudDstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvdzt6LWluZGV4OjcyO3BvaW50ZXItZXZlbnRzOmFsbDtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOnZhcigtLXl0LWRlbGhpLXBpbGwtdG9wLWhlaWdodCwxMnB4KSAxMnB4Oy13ZWJraXQtY29sdW1uLWdhcDo4cHg7LW1vei1jb2x1bW4tZ2FwOjhweDtjb2x1bW4tZ2FwOjhweDtib3JkZXItcmFkaXVzOjI4cHg7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLWxpZ2h0LHJnYmEoMCwwLDAsLjMpKTt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9Lnl0cC1tb3JlLXZpZGVvcy1idXR0b24gc3Zney13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKX0ueXRwLW1vcmUtdmlkZW9zLWJ1dHRvbnstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLW1vcmUtdmlkZW9zLWJ1dHRvbjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0cHg7bGVmdDo0cHg7d2lkdGg6Y2FsYygxMDAlIC0gOHB4KTtoZWlnaHQ6Y2FsYygxMDAlIC0gOHB4KTtib3JkZXItcmFkaXVzOjI4cHh9Lnl0cC1tb3JlLXZpZGVvcy1idXR0b24gLnl0cC1tb3JlLXZpZGVvcy1idXR0b24tdGh1bWJuYWlse3dpZHRoOjQwcHg7YXNwZWN0LXJhdGlvOjE2Lzk7Ym9yZGVyOjJweCBzb2xpZCB3aGl0ZTtib3JkZXItcmFkaXVzOjhweDstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCV9Lnl0cC1tb3JlLXZpZGVvcy1idXR0b24gLnl0cC1tb3JlLXZpZGVvcy1idXR0b24tdGl0bGV7Y29sb3I6dmFyKC0tT3ZlcmxheS1PdmVybGF5LVRleHQtUHJpbWFyeSwjZmZmKTt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDA7Zm9udC1mYW1pbHk6dmFyKC0tVHlwb2dyYXBoeS1Gb250LUZhbWlseSxSb2JvdG8pO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoyMHB4O2xldHRlci1zcGFjaW5nOi4xNnB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9QG1lZGlhIChtaW4td2lkdGg6MjIwMHB4KXsueXRwLWZ1bGxzY3JlZW4tZ3JpZC1zdGlsbHMtY29udGFpbmVye2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwxZnIpfX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUuaHRtbDUtdmlkZW8tcGxheWVyLmVuZGVkLW1vZGUgLmh0bWw1LWVuZHNjcmVlbntkaXNwbGF5Om5vbmV9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlLmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlIC55dHAtZnVsbHNjcmVlbi1ncmlke3RvcDowO2JvdHRvbTp2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LDcycHgpfS55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZS5odG1sNS12aWRlby1wbGF5ZXIuZW5kZWQtbW9kZSAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1zdGlsbHMtY29udGFpbmVye3dpZHRoOjEwMCU7cGFkZGluZzowIDI0cHh9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlLmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlIC55dHAtZnVsbHNjcmVlbi1ncmlkLW1haW4tY29udGVudHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS55dHAtZnVsbHNjcmVlbi1ncmlkLWFjdGl2ZS5odG1sNS12aWRlby1wbGF5ZXIuZW5kZWQtbW9kZTpub3QoLnl0cC1lbmFibGUtaG9yaXpvbnRhbC1lbmRzY3JlZW4tc2hlbGYpIC55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbDpudGgtY2hpbGQobis0KXtkaXNwbGF5Om5vbmV9QG1lZGlhIChtaW4td2lkdGg6MjIwMHB4KXsueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUuaHRtbDUtdmlkZW8tcGxheWVyLmVuZGVkLW1vZGU6bm90KC55dHAtZW5hYmxlLWhvcml6b250YWwtZW5kc2NyZWVuLXNoZWxmKSAueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGw6bnRoLWNoaWxkKDQpe2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUuaHRtbDUtdmlkZW8tcGxheWVyLmVuZGVkLW1vZGUueXRwLWVuYWJsZS1ob3Jpem9udGFsLWVuZHNjcmVlbi1zaGVsZiAueXRwLWZ1bGxzY3JlZW4tZ3JpZC1zdGlsbHMtY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93O292ZXJmbG93LXg6YXV0bzstd2Via2l0LWJveC1wYWNrOnN0YXJ0Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7c2Nyb2xsYmFyLXdpZHRoOm5vbmV9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlLmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlLnl0cC1lbmFibGUtaG9yaXpvbnRhbC1lbmRzY3JlZW4tc2hlbGYgLnl0cC1mdWxsc2NyZWVuLWdyaWQtbWFpbi1jb250ZW50ey13ZWJraXQtYm94LXBhY2s6c3RhcnQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUuaHRtbDUtdmlkZW8tcGxheWVyLmVuZGVkLW1vZGUueXRwLWVuYWJsZS1ob3Jpem9udGFsLWVuZHNjcmVlbi1zaGVsZiAueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGx7bWluLXdpZHRoOjMxJX0uaHRtbDUtdmlkZW8tcGxheWVyLmVuZGVkLW1vZGUgLnl0cC1tb3JlLXZpZGVvcy1idXR0b24ueXRwLWJ1dHRvbiwueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUgLmh0bWw1LWVuZHNjcmVlbiwueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUgLnl0cC1hZC1wbGF5ZXItb3ZlcmxheS1sYXlvdXQsLnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlIC55dHAtY2FwdGlvbi13aW5kb3ctY29udGFpbmVyLC55dHAtZ3JpZC1zY3JvbGxpbmcgLmh0bWw1LWVuZHNjcmVlbiwueXRwLWdyaWQtc2Nyb2xsaW5nIC55dHAtYWQtcGxheWVyLW92ZXJsYXktbGF5b3V0LC55dHAtZ3JpZC1zY3JvbGxpbmcgLnl0cC1jYXB0aW9uLXdpbmRvdy1jb250YWluZXJ7ZGlzcGxheTpub25lfS55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKS55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmc6bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtZnVsbHNjcmVlbi1ncmlkLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKS55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmc6bm90KC55dHAtZ3JpZC1zY3JvbGxpbmcpIC55dHAtbW9yZS12aWRlb3MtYnV0dG9uLnl0cC1idXR0b24sLnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtZnVsbHNjcmVlbi1ncmlkLC55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLW1vcmUtdmlkZW9zLWJ1dHRvbi55dHAtYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLWVycm9ye3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OjQ0O2xpbmUtaGVpZ2h0OjIyMCU7YmFja2dyb3VuZC1jb2xvcjpyZ2IoNDAsNDAsNDApfS55dHAtZW1iZWQtZXJyb3IgLnl0cC1lcnJvcntkaXNwbGF5OmJsb2NrfS55dHAtZXJyb3IucmVsYXRlZC1vbi1lcnJvci1vdmVybGF5LXZpc2libGV7bGluZS1oZWlnaHQ6MTYwJX0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1lcnJvci5yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXktdmlzaWJsZXtsaW5lLWhlaWdodDoyMjAlfS55dHAtZXJyb3IgLnl0cC1lcnJvci1jb250ZW50IGF7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ueXRwLWVycm9yIC55dHAtZXJyb3ItY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTttYXgtd2lkdGg6ODUlOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXh9Lnl0cC1lbWJlZC1lcnJvciAueXRwLWVycm9yIC55dHAtZXJyb3ItY29udGVudHttYXJnaW46MCBhdXRvfS55dHAtZXJyb3IgLnl0cC1lcnJvci1pY29uLWNvbnRhaW5lcntoZWlnaHQ6NjRweDt3aWR0aDo2NHB4O21pbi13aWR0aDo2NHB4O21pbi1oZWlnaHQ6NjRweDtmbG9hdDpsZWZ0fS55dHAtZXJyb3IgLnl0cC1lcnJvci1pY29uLWNvbnRhaW5lciBzdmd7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS55dHAtZXJyb3IgLnl0cC1zbWFsbC1yZWRpcmVjdHtkaXNwbGF5OmlubGluZTtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4O3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo4cHg7cmlnaHQ6OHB4O29wYWNpdHk6Ljd9Lnl0cC1lcnJvciAueXRwLXNtYWxsLXJlZGlyZWN0Lm5vLWxpbmt7Y3Vyc29yOmRlZmF1bHR9Lnl0cC1lcnJvci1jb250ZW50LXdyYXAtc3VicmVhc29uOmVtcHR5e2Rpc3BsYXk6bm9uZX0ueXRwLWVycm9yLnJlbGF0ZWQtb24tZXJyb3Itb3ZlcmxheS12aXNpYmxlIC55dHAtc21hbGwtcmVkaXJlY3QsLnl0cC1mdWxsc2NyZWVuIC55dHAtZXJyb3IgLnl0cC1zbWFsbC1yZWRpcmVjdHtkaXNwbGF5Om5vbmV9Lnl0cC1lcnJvciAueXRwLXNtYWxsLXJlZGlyZWN0IGF7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJX0ueXRwLWVycm9yIC55dHAtZXJyb3ItY29udGVudCAueXRwLWVycm9yLWNvbnRlbnQtd3JhcHttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvO21hcmdpbi1sZWZ0OjE2cHg7aGVpZ2h0OjEwMCV9Lnl0cC1lcnJvciAueXRwLWVycm9yLWNvbnRlbnQgLnl0cC1lcnJvci1jb250ZW50LXdyYXAtcmVhc29ue2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1lcnJvciAueXRwLWVycm9yLWNvbnRlbnQgLnl0cC1lcnJvci1pY29uLWNvbnRhaW5lcntoZWlnaHQ6OTZweDt3aWR0aDo5NnB4O21pbi13aWR0aDo5NnB4O21pbi1oZWlnaHQ6OTZweH0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1lcnJvciAueXRwLXNtYWxsLXJlZGlyZWN0e2hlaWdodDo2MHB4O3dpZHRoOjYwcHh9Lnl0cC1lcnJvciAueXRwLWVycm9yLWNvbnRlbnQgLnl0cC1lcnJvci1jb250ZW50LXdyYXAtcmVhc29ue2ZvbnQtc2l6ZToyMnB4fS55dHAtZXJyb3IucmVsYXRlZC1vbi1lcnJvci1vdmVybGF5LXZpc2libGUgLnl0cC1lcnJvci1jb250ZW50IC55dHAtZXJyb3ItY29udGVudC13cmFwLXJlYXNvbntmb250LXNpemU6MTZweH0ueXRwLWxhcmdlLXdpZHRoLW1vZGUgLnl0cC1lcnJvci5yZWxhdGVkLW9uLWVycm9yLW92ZXJsYXktdmlzaWJsZSAueXRwLWVycm9yLWNvbnRlbnQgLnl0cC1lcnJvci1jb250ZW50LXdyYXAtcmVhc29ue2ZvbnQtc2l6ZToyMnB4fS55dHAtZXJyb3IgLnl0cC1lcnJvci1jb250ZW50IC55dHAtZXJyb3ItY29udGVudC13cmFwLXN1YnJlYXNvbntmb250LXNpemU6MThweDtwYWRkaW5nLXRvcDoxMHB4fS55dHAtZXJyb3IucmVsYXRlZC1vbi1lcnJvci1vdmVybGF5LXZpc2libGUgLnl0cC1lcnJvci1jb250ZW50IC55dHAtZXJyb3ItY29udGVudC13cmFwLXN1YnJlYXNvbntmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDoycHh9Lnl0cC1sYXJnZS13aWR0aC1tb2RlIC55dHAtZXJyb3IgLnl0cC1lcnJvci1jb250ZW50IC55dHAtZXJyb3ItY29udGVudC13cmFwLXN1YnJlYXNvbntmb250LXNpemU6MThweDtwYWRkaW5nLXRvcDoxMHB4fS55dHAtc21hbGwtbW9kZSAueXRwLWVycm9yIC55dHAtZXJyb3ItY29udGVudHtsaW5lLWhlaWdodDoxNTAlfS55dHAtc21hbGwtbW9kZSAueXRwLWVycm9yIC55dHAtZXJyb3ItY29udGVudCAueXRwLWVycm9yLWljb24tY29udGFpbmVye2hlaWdodDozMnB4O3dpZHRoOjMycHg7bWluLXdpZHRoOjMycHg7bWluLWhlaWdodDozMnB4fS55dHAtdGlueS1tb2RlIC55dHAtZXJyb3ItaWNvbi1jb250YWluZXJ7ZGlzcGxheTpub25lfS55dHAtc21hbGwtbW9kZSAueXRwLWVycm9yIC55dHAtZXJyb3ItY29udGVudCAueXRwLWVycm9yLWNvbnRlbnQtd3JhcC1yZWFzb257Zm9udC1zaXplOjE0cHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtZXJyb3IgLnl0cC1lcnJvci1jb250ZW50IC55dHAtZXJyb3ItY29udGVudC13cmFwLXN1YnJlYXNvbntmb250LXNpemU6MTJweDtwYWRkaW5nLXRvcDo0cHh9Lnl0cC10aW55LW1vZGUgLnl0cC1lcnJvciAueXRwLWVycm9yLWNvbnRlbnQgLnl0cC1lcnJvci1jb250ZW50LXdyYXAtcmVhc29ue2ZvbnQtc2l6ZToxMnB4fS55dHAtdGlueS1tb2RlIC55dHAtZXJyb3IgLnl0cC1lcnJvci1jb250ZW50IC55dHAtZXJyb3ItY29udGVudC13cmFwLXN1YnJlYXNvbntmb250LXNpemU6MTBweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC1lcnJvciAueXRwLXNtYWxsLXJlZGlyZWN0e2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9Lnl0cC1iaWctbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWZ1bGxlcnNjcmVlbi1lZHUtYnV0dG9uLnl0cC1idXR0b257d2lkdGg6YXV0bztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0ZXh0LWFsaWduOmNlbnRlcjstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtZnVsbGVyc2NyZWVuLWVkdS1idXR0b24ueXRwLWJ1dHRvblthcmlhLWhpZGRlbj10cnVlXXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtZnVsbGVyc2NyZWVuLWVkdS1jaGV2cm9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjI0cHh9Lnl0cC1mdWxsZXJzY3JlZW4tZWR1LWJ1dHRvbjpub3QoLnl0cC1mdWxsZXJzY3JlZW4tZWR1LWJ1dHRvbi1zdWJ0bGUpIC55dHAtZnVsbGVyc2NyZWVuLWVkdS1jaGV2cm9ue2hlaWdodDo1MCV9Lnl0cC1mdWxsZXJzY3JlZW4tZWR1LXRleHR7aGVpZ2h0OjUwJTttYXJnaW4tdG9wOi04cHh9Lnl0cC1mdWxsZXJzY3JlZW4tZWR1LWJ1dHRvbi1zdWJ0bGUgLnl0cC1mdWxsZXJzY3JlZW4tZWR1LXRleHR7ZGlzcGxheTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1mdWxsc2NyZWVuLWJ1dHRvbjphZnRlcnt3aWR0aDoyNHB4fS55dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTAsLnl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMSwueXRwLWZ1bGxzY3JlZW4tYnV0dG9uLWNvcm5lci0yLC55dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTN7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTstbXMtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMC1hbmltYXRpb257NTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMXB4LC0xcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTFweCwtMXB4KX19QGtleWZyYW1lcyB5dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTAtYW5pbWF0aW9uezUwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTFweCwtMXB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xcHgsLTFweCl9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTEtYW5pbWF0aW9uezUwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMXB4LC0xcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMXB4LC0xcHgpfX1Aa2V5ZnJhbWVzIHl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMS1hbmltYXRpb257NTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgxcHgsLTFweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxcHgsLTFweCl9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTItYW5pbWF0aW9uezUwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMXB4LDFweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxcHgsMXB4KX19QGtleWZyYW1lcyB5dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTItYW5pbWF0aW9uezUwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMXB4LDFweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxcHgsMXB4KX19QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMy1hbmltYXRpb257NTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMXB4LDFweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMXB4LDFweCl9fUBrZXlmcmFtZXMgeXRwLWZ1bGxzY3JlZW4tYnV0dG9uLWNvcm5lci0zLWFuaW1hdGlvbns1MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC0xcHgsMXB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xcHgsMXB4KX19Lnl0cC1mdWxsc2NyZWVuLWJ1dHRvbjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pOmhvdmVyIC55dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTB7LXdlYmtpdC1hbmltYXRpb246eXRwLWZ1bGxzY3JlZW4tYnV0dG9uLWNvcm5lci0wLWFuaW1hdGlvbiAuNHMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7YW5pbWF0aW9uOnl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMC1hbmltYXRpb24gLjRzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS55dHAtZnVsbHNjcmVlbi1idXR0b246bm90KFthcmlhLWRpc2FibGVkPXRydWVdKTpob3ZlciAueXRwLWZ1bGxzY3JlZW4tYnV0dG9uLWNvcm5lci0xey13ZWJraXQtYW5pbWF0aW9uOnl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMS1hbmltYXRpb24gLjRzIGN1YmljLWJlemllciguNCwwLC4yLDEpO2FuaW1hdGlvbjp5dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTEtYW5pbWF0aW9uIC40cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0ueXRwLWZ1bGxzY3JlZW4tYnV0dG9uOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSk6aG92ZXIgLnl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMnstd2Via2l0LWFuaW1hdGlvbjp5dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTItYW5pbWF0aW9uIC40cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTthbmltYXRpb246eXRwLWZ1bGxzY3JlZW4tYnV0dG9uLWNvcm5lci0yLWFuaW1hdGlvbiAuNHMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9Lnl0cC1mdWxsc2NyZWVuLWJ1dHRvbjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pOmhvdmVyIC55dHAtZnVsbHNjcmVlbi1idXR0b24tY29ybmVyLTN7LXdlYmtpdC1hbmltYXRpb246eXRwLWZ1bGxzY3JlZW4tYnV0dG9uLWNvcm5lci0zLWFuaW1hdGlvbiAuNHMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7YW5pbWF0aW9uOnl0cC1mdWxsc2NyZWVuLWJ1dHRvbi1jb3JuZXItMy1hbmltYXRpb24gLjRzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS55dHAtZnVsbHNjcmVlbi1xdWljay1hY3Rpb25ze3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo4NnB4O3JpZ2h0OjI0cHg7ei1pbmRleDo1OX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9uc3tib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIDMwcHgpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZSAueXRwLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9uc3tib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA5NnB4KSArIDMwcHgpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9uc3tib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIDMwcHggKyB2YXIoLS15dHAtZ3JpZC1wZWVrLWhlaWdodCkpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZS55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLnl0cC1mdWxsc2NyZWVuLXF1aWNrLWFjdGlvbnN7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyAzMHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7cG9zaXRpb246YWJzb2x1dGU7bWF4LXdpZHRoOjMzJTt0b3A6MjRweDtsZWZ0OjI0cHg7ei1pbmRleDo1OX0ueXRwLW92ZXJsYXktdG9wLWxlZnQgLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhe21heC13aWR0aDo2MCV9Lnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLWJvdHRvbSAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7dG9wOnVuc2V0O2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgMzBweCl9Lnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLWJvdHRvbS55dHAtZmVhdHVyZWQtcHJvZHVjdC1zaG93biAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7Ym90dG9tOmNhbGMoMTQycHggKyB2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSl9Lnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLWJvdHRvbS55dHAtc2hvcHBpbmctcGlsbC1zaG93biAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7Ym90dG9tOmNhbGMoODZweCArIHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpKX0ueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGEtYm90dG9tLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgNzJweCkgKyAzMHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGEtYm90dG9tLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtZmVhdHVyZWQtcHJvZHVjdC1zaG93biAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7Ym90dG9tOmNhbGMoMTQycHggKyB2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSl9Lnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLWJvdHRvbS55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcueXRwLXNob3BwaW5nLXBpbGwtc2hvd24gLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhe2JvdHRvbTpjYWxjKDg2cHggKyB2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSl9Lnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLWJvdHRvbS55dHAtYmlnLW1vZGUgLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhe2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgMzBweCl9Lnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLWJvdHRvbS55dHAtYmlnLW1vZGUueXRwLWZlYXR1cmVkLXByb2R1Y3Qtc2hvd24gLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhe2JvdHRvbTpjYWxjKDE0MnB4ICsgdmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkpfS55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20ueXRwLWJpZy1tb2RlLnl0cC1zaG9wcGluZy1waWxsLXNob3duIC55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YXtib3R0b206Y2FsYyg4NnB4ICsgdmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkpfS55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20ueXRwLWJpZy1tb2RlLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyAzMHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGEtYm90dG9tLnl0cC1iaWctbW9kZS55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcueXRwLWZlYXR1cmVkLXByb2R1Y3Qtc2hvd24gLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhe2JvdHRvbTpjYWxjKDE0MnB4ICsgdmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyB2YXIoLS15dHAtZ3JpZC1wZWVrLWhlaWdodCkpfS55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20ueXRwLWJpZy1tb2RlLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtc2hvcHBpbmctcGlsbC1zaG93biAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGF7Ym90dG9tOmNhbGMoODZweCArIHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLWNocm9tZS10b3AtYnV0dG9uc3t3aWR0aDoxMDAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6ZW5kOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGEsLnl0cC1vdmVybGF5cy1jb250YWluZXIgLnl0cC1mdWxsc2NyZWVuLXF1aWNrLWFjdGlvbnN7cG9zaXRpb246cmVsYXRpdmU7aW5zZXQ6MDt6LWluZGV4OjU5Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtY2hyb21lLXRvcC1idXR0b25ze3Bvc2l0aW9uOnJlbGF0aXZlO2luc2V0OjA7ei1pbmRleDo1OH0qIC55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YSwqIC55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtZnVsbHNjcmVlbi1xdWljay1hY3Rpb25zLC55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20gLnl0cC1vdmVybGF5cy1jb250YWluZXIgLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLC55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20gLnl0cC1vdmVybGF5cy1jb250YWluZXIgLnl0cC1mdWxsc2NyZWVuLXF1aWNrLWFjdGlvbnMsLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLWJvdHRvbS55dHAtYmlnLW1vZGUgLnl0cC1vdmVybGF5cy1jb250YWluZXIgLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLC55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20ueXRwLWJpZy1tb2RlIC55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtZnVsbHNjcmVlbi1xdWljay1hY3Rpb25ze3Bvc2l0aW9uOnJlbGF0aXZlO2luc2V0OjB9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLW92ZXJsYXlzLWNvbnRhaW5lcntvcGFjaXR5Om1heCgxIC0gMyAqIHZhcigtLXl0cC1ncmlkLXNjcm9sbC1wZXJjZW50YWdlKSwwKX0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUgLnl0cC1vdmVybGF5cy1jb250YWluZXJ7b3BhY2l0eTowO2Rpc3BsYXk6bm9uZX0ueXRwLWF1dG9oaWRlIC55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YSwueXRwLWF1dG9oaWRlIC55dHAtZnVsbHNjcmVlbi1xdWljay1hY3Rpb25ze29wYWNpdHk6MH0ueXRwLWF1dG9oaWRlOm5vdCgueXRwLWF1dG9oaWRlLWFjdGl2ZSkgLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLC55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKSAueXRwLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9uc3toZWlnaHQ6MDttYXJnaW46MH0uYWQtc2hvd2luZyAueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGEsLmFkLXNob3dpbmcgLnl0cC1mdWxsc2NyZWVuLXF1aWNrLWFjdGlvbnMsLmVuZGVkLW1vZGUgLnl0cC1mdWxsc2NyZWVuLXF1aWNrLWFjdGlvbnMsLnNlZWtpbmctbW9kZSAueXRwLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9ucywueXRwLW1lbnUtc2hvd24gLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLC55dHAtbWVudS1zaG93biAueXRwLWZ1bGxzY3JlZW4tcXVpY2stYWN0aW9ucywueXRwLXNldHRpbmdzLXNob3duIC55dHAtZnVsbHNjcmVlbi1xdWljay1hY3Rpb25zLC55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLC55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1mdWxsc2NyZWVuLXF1aWNrLWFjdGlvbnN7ZGlzcGxheTpub25lfS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5e3otaW5kZXg6ODI7b3ZlcmZsb3c6aGlkZGVufS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LWJhY2tncm91bmR7YmFja2dyb3VuZDpuby1yZXBlYXQgNTAlL2NvdmVyO2JhY2tncm91bmQtY29sb3I6IzAwMDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjgyfS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LWJhY2tncm91bmQtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjMpO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjA7bGVmdDowO3otaW5kZXg6ODJ9Lnl0cC1nYXRlZC1hY3Rpb25zLW92ZXJsYXktbWluaXBsYXllci1jbG9zZS1idXR0b257ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtwYWRkaW5nOjhweDt6LWluZGV4OjgyfS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLWdhdGVkLWFjdGlvbnMtb3ZlcmxheS1taW5pcGxheWVyLWNsb3NlLWJ1dHRvbntkaXNwbGF5OmlubGluZS1ibG9ja30ueXRwLWdhdGVkLWFjdGlvbnMtb3ZlcmxheS1iYXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjAgNnB4O2xlZnQ6MjBweDtoZWlnaHQ6NTZweDtib3R0b206MjBweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7dGV4dC1hbGlnbjpsZWZ0O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNik7Ym9yZGVyLXJhZGl1czo4cHg7Y29sb3I6I2ZmZjt3aWR0aDozODBweDt6LWluZGV4OjgyfS55dHAtYmlnLW1vZGUgLnl0cC1nYXRlZC1hY3Rpb25zLW92ZXJsYXktYmFye3BhZGRpbmc6MCA5cHg7aGVpZ2h0Ojg0cHg7Ym90dG9tOjMwcHg7bGVmdDozMHB4fS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LWJ1dHRvbnN7bWFyZ2luOjEycHggNnB4fS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LWJ1dHRvbnttaW4td2lkdGg6ODBweDtoZWlnaHQ6MzJweDtwYWRkaW5nOjAgOHB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMSk7Ym9yZGVyLXJhZGl1czoyNHB4O2JvcmRlci13aWR0aDowO2N1cnNvcjpwb2ludGVyfS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LWJ1dHRvbi10aXRsZXtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luOjAgOHB4O2xpbmUtaGVpZ2h0OjMycHg7Zm9udC1zaXplOjExMCU7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNmZmZ9Lnl0cC1iaWctbW9kZSAueXRwLWdhdGVkLWFjdGlvbnMtb3ZlcmxheS1idXR0b25ze21hcmdpbjoxOHB4IDlweH0ueXRwLWJpZy1tb2RlIC55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LWJ1dHRvbnttaW4td2lkdGg6MTIwcHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzowIDEycHg7Ym9yZGVyLXJhZGl1czozcHh9Lnl0cC1iaWctbW9kZSAueXRwLWdhdGVkLWFjdGlvbnMtb3ZlcmxheS1idXR0b24tdGl0bGV7bWFyZ2luOjAgMTJweDtsaW5lLWhlaWdodDo0OHB4O2ZvbnQtc2l6ZToxMzAlO2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLWdhdGVkLWFjdGlvbnMtb3ZlcmxheS10ZXh0LWNvbnRhaW5lcnstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxO21pbi13aWR0aDoxODBweDttYXJnaW46MCA2cHh9Lnl0cC1iaWctbW9kZSAueXRwLWdhdGVkLWFjdGlvbnMtb3ZlcmxheS10ZXh0LWNvbnRhaW5lcnttaW4td2lkdGg6MjcwcHg7bWFyZ2luOjAgOXB4fS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LXN1YnRpdGxlLC55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LXRpdGxle3RleHQtdHJhbnNmb3JtOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtZ2F0ZWQtYWN0aW9ucy1vdmVybGF5LXRpdGxle2ZvbnQtc2l6ZToxNTAlO2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLWdhdGVkLWFjdGlvbnMtb3ZlcmxheS1zdWJ0aXRsZXtmb250LXNpemU6MTEwJTtmb250LXdlaWdodDo0MDA7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Lnl0cC1oZWF0LW1hcC55dHAtZmluZS1zY3J1YmJpbmctZW5hYmxlOm5vdCguYWQtc2hvd2luZykgLnl0cC1oZWF0LW1hcC1jb250YWluZXIsLnl0cC1oZWF0LW1hcC55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyOm5vdCguYWQtc2hvd2luZykgLnl0cC1oZWF0LW1hcC1jb250YWluZXJ7ZGlzcGxheTpibG9jaztvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO2hlaWdodDo0MHB4O2JvdHRvbTo1cHg7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWhlYXQtbWFwLWNvbnRhaW5lcntwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206MH0ueXRwLWRlbGhpLW1vZGVybi55dHAtaGVhdC1tYXAueXRwLWZpbmUtc2NydWJiaW5nLWVuYWJsZTpub3QoLmFkLXNob3dpbmcpIC55dHAtaGVhdC1tYXAtY29udGFpbmVyLC55dHAtZGVsaGktbW9kZXJuLnl0cC1oZWF0LW1hcC55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyOm5vdCguYWQtc2hvd2luZykgLnl0cC1oZWF0LW1hcC1jb250YWluZXJ7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpIC4xcyxtYXJnaW4tYm90dG9tIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSAuMXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSAuMXMsbWFyZ2luLWJvdHRvbSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSkgLjFzO21hcmdpbi1ib3R0b206OHB4fS55dHAtaGVhdC1tYXAueXRwLXByb2dyZXNzLWJhci1ob3Zlcjpub3QoLmFkLXNob3dpbmcpIC55dHAtdGltZWQtbWFya2Vycy1lbmFibGVkIC55dHAtaGVhdC1tYXAtY29udGFpbmVye2JvdHRvbTo3cHh9Lnl0cC1oZWF0LW1hcC55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyIC55dHAtaGVhdC1tYXAtY2hhcHRlciBzdmd7aGVpZ2h0OjQwcHh9Lnl0cC1iaWctbW9kZS55dHAtaGVhdC1tYXAueXRwLXByb2dyZXNzLWJhci1ob3ZlciAueXRwLWhlYXQtbWFwLWNoYXB0ZXIgc3Zne2hlaWdodDo2MHB4fS55dHAtaGVhdC1tYXAtY29udGFpbmVye29wYWNpdHk6MDtkaXNwbGF5Om5vbmU7d2lkdGg6MTAwJTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllciguNCwwLDEsMSk7cG9zaXRpb246YWJzb2x1dGU7b3ZlcmZsb3c6aGlkZGVuO2hlaWdodDowO2JvdHRvbTo1cHg7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLWhlYXQtbWFwLnl0cC1iaWctbW9kZS55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyIC55dHAtaGVhdC1tYXAtY29udGFpbmVye2hlaWdodDo2MHB4O2JvdHRvbTo4cHg7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWhlYXQtbWFwLWNoYXB0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ueXRwLWhlYXQtbWFwLWNoYXB0ZXIueXRwLWhlYXRtYXAtaG92ZXJ7Ym90dG9tOjJweDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtaGVhdC1tYXAtY2hhcHRlci55dHAtaGVhdG1hcC1ob3Zlcnstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1iaWctbW9kZSAueXRwLWhlYXQtbWFwLWNoYXB0ZXIueXRwLWhlYXRtYXAtaG92ZXJ7Ym90dG9tOjNweH0ueXRwLWhlYXQtbWFwLXBsYXllZF9iYXIgLnl0cC1oZWF0LW1hcC1ob3ZlcntoZWlnaHQ6MTAwJTtmaWxsOnJnYmEoMjU1LDI1NSwyNTUsLjUpfS55dHAtaGVhdC1tYXAtaG92ZXIsLnl0cC1oZWF0LW1hcC1wbGF5e2hlaWdodDowfS55dHAtaGVhdC1tYXAtZWR1e2Rpc3BsYXk6bm9uZX0ueXRwLWZpbmUtc2NydWJiaW5nLWNvbnRhaW5lcnt3aWR0aDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2hlaWdodDowfS55dHAtZmluZS1zY3J1YmJpbmctdGh1bWJuYWlse2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MSAwIGF1dG87ZmxleDoxIDAgYXV0b30ueXRwLWZpbmUtc2NydWJiaW5nLWRyYWdnYWJsZSwueXRwLWZpbmUtc2NydWJiaW5nLXRodW1ibmFpbHN7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3c7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO21pbi13aWR0aDoxNjBweDtoZWlnaHQ6MTAwJX0ueXRwLWZpbmUtc2NydWJiaW5nLWN1cnNvcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTtoZWlnaHQ6MTAwJTt3aWR0aDozcHg7YmFja2dyb3VuZDojZWVlfS55dHAtZmluZS1zY3J1YmJpbmctc2Vlay10aW1le3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbToxMTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO2Rpc3BsYXk6bm9uZX0ueXRwLWZpbmUtc2NydWJiaW5nLWVuYWJsZSAueXRwLWZpbmUtc2NydWJiaW5nLWRpc21pc3MsLnl0cC1maW5lLXNjcnViYmluZy1lbmFibGUgLnl0cC1maW5lLXNjcnViYmluZy1wbGF5LC55dHAtZmluZS1zY3J1YmJpbmctZW5hYmxlIC55dHAtZmluZS1zY3J1YmJpbmctc2Vlay10aW1le2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fS55dHAtZmluZS1zY3J1YmJpbmctZW5hYmxlIC55dHAtY2hyb21lLWNvbnRyb2xze2Rpc3BsYXk6bm9uZX0ueXRwLWZpbmUtc2NydWJiaW5nLXBsYXl7ZGlzcGxheTpub25lO2hlaWdodDozNXB4O3dpZHRoOjM1cHg7Ym90dG9tOjExMCU7cG9zaXRpb246YWJzb2x1dGV9Lnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMgLnl0cC1maW5lLXNjcnViYmluZy1wbGF5e2JvdHRvbToxMjAlfS55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtZmluZS1zY3J1YmJpbmctcGxheSBzdmd7cGFkZGluZzo4cHh9Lnl0cC1maW5lLXNjcnViYmluZy1kaXNtaXNze3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbToxMTUlO3JpZ2h0OjEwcHg7aGVpZ2h0OjI1cHg7d2lkdGg6MjVweDtkaXNwbGF5Om5vbmV9Lnl0cC1maW5lLXNjcnViYmluZy1jaGFwdGVyLXRpdGxle2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4O3dpZHRoOjE2MHB4O2hlaWdodDo5MHB4O2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjUpOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dvcmQtd3JhcDpicmVhay13b3JkOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0cC1maW5lLXNjcnViYmluZy1jaGFwdGVyLXRpdGxlLWNvbnRlbnR7cGFkZGluZzoxNXB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWJpZy1tb2RlIC55dHAtZmluZS1zY3J1YmJpbmctY2hhcHRlci10aXRsZXt3aWR0aDoyNDBweDtoZWlnaHQ6MTM1cHh9Lnl0cC1maW5lLXNjcnViYmluZy1lZHV7ZGlzcGxheTpub25lfS55dHAtZmluZS1zY3J1YmJpbmctZW5hYmxlLmh0bWw1LXZpZGVvLXBsYXllciAueXRwLWFkLW92ZXJsYXktc2xvdHtib3R0b206MTA3cHh9Lnl0cC1iaWctbW9kZS55dHAtZmluZS1zY3J1YmJpbmctZW5hYmxlLmh0bWw1LXZpZGVvLXBsYXllciAueXRwLWFkLW92ZXJsYXktc2xvdHtib3R0b206MTUxcHh9Lnl0cC1pbmZvLXBhbmVsLWFjdGlvbi1pdGVte2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjE2cHggMCAwIDE2cHg7d2lkdGg6YXV0bztkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0Oy13ZWJraXQtYm94LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lnl0cC1iaWctbW9kZSAueXRwLWluZm8tcGFuZWwtYWN0aW9uLWl0ZW17bWFyZ2luOjI0cHggMCAwIDI0cHg7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstd2Via2l0LWJveC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS55dHAtc21hbGwtbW9kZSAueXRwLWluZm8tcGFuZWwtYWN0aW9uLWl0ZW17bWFyZ2luOjhweCAxMnB4IDAgMCAwIDhweCAxMnB4IDA7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstd2Via2l0LWJveC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS55dHAtaW5mby1wYW5lbC1hY3Rpb24taXRlbS1kaXNjbGFpbWVye2N1cnNvcjpub25lO2ZvbnQtc2l6ZToxNHB4O292ZXJmbG93OmF1dG87bWFyZ2luLWJvdHRvbToxNnB4fS55dHAtaW5mby1wYW5lbC1hY3Rpb24taXRlbS1idXR0b257d2lkdGg6MTAwJTtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dHAtaW5mby1wYW5lbC1hY3Rpb24taXRlbS1pY29ue3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTstd2Via2l0LWZsZXgtc2hyaW5rOjA7ZmxleC1zaHJpbms6MH0ueXRwLWJpZy1tb2RlIC55dHAtaW5mby1wYW5lbC1hY3Rpb24taXRlbS1pY29ue3dpZHRoOjcycHg7aGVpZ2h0OjU0cHh9Lnl0cC1pbmZvLXBhbmVsLWFjdGlvbi1pdGVtLWxhYmVse21hcmdpbi1sZWZ0OjEycHg7Zm9udC1zaXplOjE0cHg7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTtvdmVyZmxvdzphdXRvfS55dHAtYmlnLW1vZGUgLnl0cC1pbmZvLXBhbmVsLWFjdGlvbi1pdGVtLWxhYmVsLC55dHAtc21hbGwtbW9kZSAueXRwLWluZm8tcGFuZWwtYWN0aW9uLWl0ZW0tbGFiZWx7bWFyZ2luLWxlZnQ6MTJweDtmb250LXNpemU6MTRweDtvdmVyZmxvdzphdXRvfS55dHAtaW5mby1wYW5lbC1kZXRhaWwtc2tyaW17cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4zKTt6LWluZGV4OjcxfS55dHAtaW5mby1wYW5lbC1kZXRhaWx7cG9zaXRpb246YWJzb2x1dGU7bGVmdDphdXRvO3JpZ2h0OjA7dG9wOjA7Ym90dG9tOjA7d2lkdGg6NjAlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7b3ZlcmZsb3c6YXV0bztkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtYmlnLW1vZGUgLnl0cC1pbmZvLXBhbmVsLWRldGFpbCwueXRwLXNtYWxsLW1vZGUgLnl0cC1pbmZvLXBhbmVsLWRldGFpbHt3aWR0aDo2MCV9W2Rpcj1sdHJdIC55dHAtaW5mby1wYW5lbC1kZXRhaWxbYXJpYS1oaWRkZW49dHJ1ZV17LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfVtkaXI9bHRyXSAueXRwLWVtYmVkLXBsYXlsaXN0IC55dHAtaW5mby1wYW5lbC1kZXRhaWxbYXJpYS1oaWRkZW49dHJ1ZV17LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSl9W2Rpcj1ydGxdIC55dHAtaW5mby1wYW5lbC1kZXRhaWxbYXJpYS1oaWRkZW49dHJ1ZV17LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfVtkaXI9cnRsXSAueXRwLWVtYmVkLXBsYXlsaXN0IC55dHAtaW5mby1wYW5lbC1kZXRhaWxbYXJpYS1oaWRkZW49dHJ1ZV17LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSl9Lnl0cC1pbmZvLXBhbmVsLWRldGFpbC1oZWFkZXJ7bWFyZ2luOjE2cHg7bGluZS1oZWlnaHQ6MjRweDtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo3MDA7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dHAtYmlnLW1vZGUgLnl0cC1pbmZvLXBhbmVsLWRldGFpbC1oZWFkZXJ7bWFyZ2luOjI0cHh9Lnl0cC1pbmZvLXBhbmVsLWRldGFpbC10aXRsZXttYXJnaW4tcmlnaHQ6MTRweDstd2Via2l0LWZsZXgtZ3JvdzoyOy13ZWJraXQtYm94LWZsZXg6MjtmbGV4LWdyb3c6Mn0ueXRwLWluZm8tcGFuZWwtZGV0YWlsLWNsb3Nle3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTstd2Via2l0LWZsZXgtc2hyaW5rOjA7ZmxleC1zaHJpbms6MH0ueXRwLWJpZy1tb2RlIC55dHAtaW5mby1wYW5lbC1kZXRhaWwtY2xvc2V7d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0ueXRwLWluZm8tcGFuZWwtZGV0YWlsLWNsb3NlIHBhdGh7ZmlsbDojYWFhfS55dHAtaW5mby1wYW5lbC1kZXRhaWwtY2xvc2U6aG92ZXIgcGF0aHtmaWxsOiNmZmZ9Lnl0cC1pbmZvLXBhbmVsLWRldGFpbC1ib2R5e2xpbmUtaGVpZ2h0OjI0cHg7bWluLWhlaWdodDo0OHB4O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO21hcmdpbjowIDE2cHg7b3ZlcmZsb3c6YXV0b30ueXRwLWJpZy1tb2RlIC55dHAtaW5mby1wYW5lbC1kZXRhaWwtYm9keXttYXJnaW46MCAyNHB4fS55dHAtaW5mby1wYW5lbC1kZXRhaWwtaXRlbXN7bGVmdDowO3JpZ2h0OjA7cGFkZGluZzowIDE2cHggMTZweCAwfS55dHAtbXV0ZWQtYXV0b3BsYXkgLnl0cC1pbmZvLXBhbmVsLWRldGFpbC1za3JpbXt6LWluZGV4OjEwMDJ9Lmh0bWw1LXZpZGVvLXBsYXllci5lbmRlZC1tb2RlIC55dHAtaW5mby1wYW5lbC1wcmV2aWV3e2Rpc3BsYXk6bm9uZX0ueXRwLWluZm8tcGFuZWwtcHJldmlld3toZWlnaHQ6YXV0bztib3R0b206YXV0bztsZWZ0OjEycHg7cmlnaHQ6YXV0bztvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6YXV0bztwb3NpdGlvbjphYnNvbHV0ZTtjdXJzb3I6cG9pbnRlcjt0ZXh0LXNoYWRvdzowIDAgMnB4IHJnYmEoMCwwLDAsLjUpO3otaW5kZXg6MjY7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjYpO2JvcmRlcjppbmhlcml0O2JvcmRlci1sZWZ0OjRweCBzb2xpZCAjM2VhNmZmO2JvcmRlci1yYWRpdXM6NHB4O3BhZGRpbmc6MDtmb250OmluaGVyaXQ7bWF4LXdpZHRoOm1pbig1MCUgLSA2NHB4LDI3MnB4KTtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWluZm8tcGFuZWwtcHJldmlld1thcmlhLWhpZGRlbj10cnVlXXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtZW1iZWQgLnl0cC1pbmZvLXBhbmVsLXByZXZpZXd7dG9wOjYwcHh9Lnl0cC1lbWJlZC55dHAtc2hvcnRzLW1vZGUgLnl0cC1pbmZvLXBhbmVsLXByZXZpZXd7dG9wOjEyMnB4fS55dHAtYmlnLW1vZGUueXRwLWF1dG9oaWRlIC55dHAtaW5mby1wYW5lbC1wcmV2aWV3LC55dHAtYmlnLW1vZGUueXRwLWhpZGUtaW5mby1iYXIgLnl0cC1pbmZvLXBhbmVsLXByZXZpZXcsLnl0cC1lbWJlZC55dHAtYXV0b2hpZGUgLnl0cC1pbmZvLXBhbmVsLXByZXZpZXcsLnl0cC1lbWJlZC55dHAtaGlkZS1pbmZvLWJhciAueXRwLWluZm8tcGFuZWwtcHJldmlld3t0b3A6MTJweH0ueXRwLW11dGVkLWF1dG9wbGF5IC55dHAtaW5mby1wYW5lbC1wcmV2aWV3e3otaW5kZXg6MTAwMjt0b3A6MTJweH0ueXRwLWxhcmdlci10YXAtYnV0dG9ucyAueXRwLWluZm8tcGFuZWwtcHJldmlld3t0b3A6ODFweH0ueXRwLWJpZy1tb2RlIC55dHAtaW5mby1wYW5lbC1wcmV2aWV3e3RvcDo4MXB4O2JvdHRvbTphdXRvO2xlZnQ6MjRweDtoZWlnaHQ6YXV0bztsaW5lLWhlaWdodDphdXRvfS55dHAtc21hbGwtbW9kZSAueXRwLWluZm8tcGFuZWwtcHJldmlld3ttaW4td2lkdGg6MTMwcHg7bWF4LXdpZHRoOm1pbig1MCUgLSA2NHB4LDIwOHB4KX0ueXRwLWl2LWRyYXdlci1vcGVuIC55dHAtaW5mby1wYW5lbC1wcmV2aWV3e2Rpc3BsYXk6bm9uZTstd2Via2l0LXRyYW5zaXRpb246ZGlzcGxheSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmRpc3BsYXkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1pbmZvLXBhbmVsLXByZXZpZXctY2hldnJvbnt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O2xpbmUtaGVpZ2h0OjBweDtwb2ludGVyLWV2ZW50czpub25lO2NvbG9yOnJnYigyNTUsMjU1LDI1NSk7LXdlYmtpdC1mbGV4LXNocmluazowO2ZsZXgtc2hyaW5rOjB9Lnl0cC1pbmZvLXBhbmVsLXByZXZpZXctY2hldnJvbjplbXB0eSwueXRwLWluZm8tcGFuZWwtcHJldmlldy1pY29uOmVtcHR5e2hlaWdodDowO3dpZHRoOjB9Lnl0cC1pbmZvLXBhbmVsLXByZXZpZXctdGV4dHtiYWNrZ3JvdW5kOm5vbmU7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE2cHg7cG9pbnRlci1ldmVudHM6bm9uZTttYXJnaW46OHB4O2NvbG9yOnJnYigyNTUsMjU1LDI1NSk7b3BhY2l0eToxO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7LXdlYmtpdC1saW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO3doaXRlLXNwYWNlOm5vcm1hbDtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbjstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWluZm8tcGFuZWwtcHJldmlldy10ZXh0W2FyaWEtaGlkZGVuPXRydWVde29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9I2lubGluZS1wcmV2aWV3LXBsYXllciAuY2FwdGlvbi13aW5kb3csI2lubGluZS1wcmV2aWV3LXBsYXllciAueXRwLWNhcHRpb24td2luZG93LWNvbnRhaW5lcntwb2ludGVyLWV2ZW50czpub25lfS55dHAtbW9kZXJuLWNhcHRpb24jaW5saW5lLXByZXZpZXctcGxheWVyIC55dHAtY2FwdGlvbi13aW5kb3ctY29udGFpbmVyLC55dHAtbW9kZXJuLWNhcHRpb24ueXRwLW13ZWItcGxheWVyIC55dHAtY2FwdGlvbi13aW5kb3ctY29udGFpbmVye3dpZHRoOmNhbGMoMTAwJSAtIDQ4cHgpfS55dHAtbW9kZXJuLWNhcHRpb24jaW5saW5lLXByZXZpZXctcGxheWVyIC5jYXB0aW9uLXdpbmRvdywueXRwLW1vZGVybi1jYXB0aW9uLnl0cC1td2ViLXBsYXllciAuY2FwdGlvbi13aW5kb3d7Ym9yZGVyOjhweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjRweDtmb250LXdlaWdodDo1MDB9Lnl0cC1tb2Rlcm4tY2FwdGlvbiNpbmxpbmUtcHJldmlldy1wbGF5ZXIgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b20sLnl0cC1tb2Rlcm4tY2FwdGlvbi55dHAtbXdlYi1wbGF5ZXIgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbToxNnB4fS55dHAtaW5wdXQtc2xpZGVyLXNlY3Rpb257ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0cC1pbnB1dC1zbGlkZXJ7LS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudDowOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtsZWZ0OjA7cmlnaHQ6MDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MjRweDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtd3JpdGluZy1tb2RlOmhvcml6b250YWwtdGI7LW1zLXdyaXRpbmctbW9kZTpsci10Yjt3cml0aW5nLW1vZGU6aG9yaXpvbnRhbC10YjtkaXJlY3Rpb246bHRyfS55dHAtaW5wdXQtc2xpZGVyOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja3tiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLHJpZ2h0IHRvcCxmcm9tKCNmZmYpLGNvbG9yLXN0b3AoI2ZmZiksY29sb3Itc3RvcCgjNjY2KSx0bygjNjY2KSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCNmZmYgMCwjZmZmIHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjNjY2IHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjNjY2IDEwMCUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCNmZmYgMCwjZmZmIHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjNjY2IHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjNjY2IDEwMCUpO2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMnB4fS55dHAtaW5wdXQtc2xpZGVyOjotbW96LXJhbmdlLXRyYWNre2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCNmZmYgMCwjZmZmIHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSxyZ2JhKDI1NSwyNTUsMjU1LC4yKSB2YXIoLS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudCkscmdiYSgyNTUsMjU1LDI1NSwuMikgMTAwJSk7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1pbnB1dC1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iey13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kOiNmZmY7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjhweDttYXJnaW4tdG9wOi02cHh9Lnl0cC1pbnB1dC1zbGlkZXI6Oi1tb3otcmFuZ2UtdGh1bWJ7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQ6I2ZmZjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6OHB4fS55dHAtaW5wdXQtc2xpZGVyOjotbXMtdGh1bWJ7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQ6I2ZmZjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6OHB4fS55dHAtdmFyaXNwZWVkLWlucHV0LXNsaWRlcjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2t7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxyaWdodCB0b3AsZnJvbSgjZmZmKSxjb2xvci1zdG9wKCNmZmYpLGNvbG9yLXN0b3AoIzkwOTA5MCksdG8oIzkwOTA5MCkpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwjZmZmIDAsI2ZmZiB2YXIoLS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudCksIzkwOTA5MCB2YXIoLS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudCksIzkwOTA5MCAxMDAlKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwjZmZmIDAsI2ZmZiB2YXIoLS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudCksIzkwOTA5MCB2YXIoLS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudCksIzkwOTA5MCAxMDAlKX1Ac3VwcG9ydHMgKCgtd2Via2l0LXdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybCkgb3IgKHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybCkpey55dHAtdmVydGljYWwtc2xpZGVyIC55dHAtaW5wdXQtc2xpZGVyey13ZWJraXQtd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOy1tcy13cml0aW5nLW1vZGU6YnQtcmw7d3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsO2RpcmVjdGlvbjpydGw7aGVpZ2h0OmluaGVyaXQ7d2lkdGg6MjRweH0ueXRwLXZlcnRpY2FsLXNsaWRlciAueXRwLWlucHV0LXNsaWRlcjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2t7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IGJvdHRvbSxsZWZ0IHRvcCxmcm9tKCNmZmYpLGNvbG9yLXN0b3AoI2ZmZiksY29sb3Itc3RvcCgjNjY2KSx0bygjNjY2KSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChib3R0b20sI2ZmZiAwLCNmZmYgdmFyKC0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQpLCM2NjYgdmFyKC0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQpLCM2NjYgMTAwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gdG9wLCNmZmYgMCwjZmZmIHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjNjY2IHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjNjY2IDEwMCUpO3dpZHRoOjRweH0ueXRwLXZlcnRpY2FsLXNsaWRlciAueXRwLWlucHV0LXNsaWRlcjo6LW1vei1yYW5nZS10cmFja3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byB0b3AsI2ZmZiAwLCNmZmYgdmFyKC0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQpLHJnYmEoMjU1LDI1NSwyNTUsLjIpIHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSxyZ2JhKDI1NSwyNTUsMjU1LC4yKSAxMDAlKTt3aWR0aDo0cHg7aGVpZ2h0OjEwMCV9Lnl0cC12ZXJ0aWNhbC1zbGlkZXIgLnl0cC1pbnB1dC1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1ie21hcmdpbi1yaWdodDotNnB4fS55dHAtdmVydGljYWwtc2xpZGVyIC55dHAtaW5wdXQtc2xpZGVyOjotbW96LXJhbmdlLXRodW1ie21hcmdpbi1yaWdodDowfX0ueXRwLWNocm9tZS1jb250cm9scyAueXRwLWp1bXAtYnV0dG9ue3dpZHRoOjQ2cHg7LXdlYmtpdC1ib3gtZmxleDowOy13ZWJraXQtZmxleDowIDAgYXV0bztmbGV4OjAgMCBhdXRvO3BhZGRpbmc6OXB4O2Rpc3BsYXk6bm9uZX0ueXRwLWNocm9tZS1jb250cm9scyAueXRwLWp1bXAtYnV0dG9uLnl0cC1qdW1wLWJ1dHRvbi1lbmFibGVke2Rpc3BsYXk6YmxvY2t9Lnl0cC1iaWctbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWp1bXAtYnV0dG9ue3BhZGRpbmctdG9wOjEycHh9Lnl0cC1zbWFsbC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtanVtcC1idXR0b257cGFkZGluZy10b3A6N3B4fS55dHAtc21hbGwtbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWp1bXAtYnV0dG9uLnl0cC1qdW1wLWJ1dHRvbi1lbmFibGVkLC55dHAtdGlueS1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtanVtcC1idXR0b24ueXRwLWp1bXAtYnV0dG9uLWVuYWJsZWR7ZGlzcGxheTpub25lfS55dHAtanVtcC1idXR0b24tdGV4dHtmaWxsOiNmZmY7Zm9udC1zaXplOjlweDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Zm9udC13ZWlnaHQ6OTAwfS55dHAtanVtcC1zcGluIC55dHAtY2lyY2xlLWFycm93ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6eXRwLWp1bXAtc3BpbjthbmltYXRpb24tbmFtZTp5dHAtanVtcC1zcGluOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOi4yNXM7YW5pbWF0aW9uLWR1cmF0aW9uOi4yNXM7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0O2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXQ7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjstbXMtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXJ9Lnl0cC1qdW1wLXNwaW4uYmFja3dhcmRzIC55dHAtY2lyY2xlLWFycm93ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6eXRwLWp1bXAtc3Bpbi1iYWNrd2FyZHM7YW5pbWF0aW9uLW5hbWU6eXRwLWp1bXAtc3Bpbi1iYWNrd2FyZHN9QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1qdW1wLXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTt0cmFuc2Zvcm06cm90YXRlKDF0dXJuKX19QGtleWZyYW1lcyB5dHAtanVtcC1zcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7dHJhbnNmb3JtOnJvdGF0ZSgxdHVybil9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtanVtcC1zcGluLWJhY2t3YXJkc3swJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pO3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfX1Aa2V5ZnJhbWVzIHl0cC1qdW1wLXNwaW4tYmFja3dhcmRzezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7dHJhbnNmb3JtOnJvdGF0ZSgxdHVybil9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9fS55dHAtbGFyZ2UtcGxheS1idXR0b257cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7dG9wOjUwJTt3aWR0aDo2OHB4O2hlaWdodDo0OHB4O21hcmdpbi1sZWZ0Oi0zNHB4O21hcmdpbi10b3A6LTI0cHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7ei1pbmRleDo2M30ueXRwLWxhcmdlLXBsYXktYnV0dG9uLnl0cC1zaG9ydHMtbW9kZXt3aWR0aDo2OHB4O2hlaWdodDo5MHB4fS55dHAtYmlnLW1vZGUgLnl0cC1sYXJnZS1wbGF5LWJ1dHRvbi55dHAtc2hvcnRzLW1vZGV7d2lkdGg6MTAycHg7aGVpZ2h0OjEzNXB4fS55dHAtZG5pIC55dHAtbGFyZ2UtcGxheS1idXR0b24sLnl0cC1kbmkueXRwLWJpZy1tb2RlIC55dHAtbGFyZ2UtcGxheS1idXR0b24sLnl0cC1kbmkueXRwLXNtYWxsLW1vZGUgLnl0cC1sYXJnZS1wbGF5LWJ1dHRvbnt3aWR0aDo3NXB4O2hlaWdodDo3NXB4O21hcmdpbi1sZWZ0Oi0zNy41cHg7bWFyZ2luLXRvcDotMzcuNXB4fS5ob3VzZS1icmFuZCAueXRwLWxhcmdlLXBsYXktYnV0dG9ue3dpZHRoOjYwcHg7aGVpZ2h0OjYwcHg7bWFyZ2luLWxlZnQ6LTMwcHg7bWFyZ2luLXRvcDotMzBweH0ueXRwLWxhcmdlLXBsYXktYnV0dG9uIHN2Z3toZWlnaHQ6MTAwJTtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJX0ueXRwLWRuaSAueXRwLWN1ZWQtdGh1bWJuYWlsLW92ZXJsYXkgLnl0cC1kbmktbGFyZ2UtcGxheS1idXR0b24tYmd7LXdlYmtpdC10cmFuc2l0aW9uOmZpbGwgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksZmlsbC1vcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246ZmlsbCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxmaWxsLW9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7ZmlsbC1vcGFjaXR5Oi44fS55dHAtZG5pIC55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheTpob3ZlciAueXRwLWRuaS1sYXJnZS1wbGF5LWJ1dHRvbi1iZ3std2Via2l0LXRyYW5zaXRpb246ZmlsbCAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxmaWxsLW9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpmaWxsIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLGZpbGwtb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtmaWxsLW9wYWNpdHk6MX0ueXRwLWJpZy1tb2RlIC55dHAtbGFyZ2UtcGxheS1idXR0b257d2lkdGg6MTAycHg7aGVpZ2h0OjcycHg7bWFyZ2luLWxlZnQ6LTUxcHg7bWFyZ2luLXRvcDotMzZweH0uaG91c2UtYnJhbmQueXRwLWJpZy1tb2RlIC55dHAtbGFyZ2UtcGxheS1idXR0b257d2lkdGg6OTBweDtoZWlnaHQ6OTBweDttYXJnaW4tbGVmdDotNDVweDttYXJnaW4tdG9wOi00NXB4fS55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheVthcmlhLWhpZGRlbj10cnVlXSAueXRwLWxhcmdlLXBsYXktYnV0dG9uLC55dHAtbWVudS1zaG93biAueXRwLWxhcmdlLXBsYXktYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLW11dGVkLWF1dG9wbGF5LWVuZC1wYW5lbCAueXRwLWxhcmdlLXBsYXktYnV0dG9ue2Rpc3BsYXk6YmxvY2t9Lnl0cC1sYXJnZS1wbGF5LWJ1dHRvbi1iZ3std2Via2l0LXRyYW5zaXRpb246ZmlsbCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxmaWxsLW9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpmaWxsIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLGZpbGwtb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTtmaWxsOiMyMTIxMjE7ZmlsbC1vcGFjaXR5Oi44fS55dHAtbGFyZ2UtcGxheS1idXR0b24tcmVkLWJnIC55dHAtbGFyZ2UtcGxheS1idXR0b24tYmd7ZmlsbDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLXN0YXRpYy1icmFuZC1yZWQsI2YwMyk7ZmlsbC1vcGFjaXR5OjF9Lnl0cC1jdWVkLXRodW1ibmFpbC1vdmVybGF5OmhvdmVyIC55dHAtbGFyZ2UtcGxheS1idXR0b24tYmcsLnl0cC1sYXJnZS1wbGF5LWJ1dHRvbi55dHAtdG91Y2gtZGV2aWNlIC55dHAtbGFyZ2UtcGxheS1idXR0b24tYmcsLnl0cC1tdXRlZC1hdXRvcGxheS1lbmRzY3JlZW4tb3ZlcmxheTpob3ZlciAueXRwLWxhcmdlLXBsYXktYnV0dG9uLWJney13ZWJraXQtdHJhbnNpdGlvbjpmaWxsIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLGZpbGwtb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmZpbGwgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSksZmlsbC1vcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO2ZpbGw6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1zdGF0aWMtYnJhbmQtcmVkLCNmMDMpO2ZpbGwtb3BhY2l0eToxfS55dHAtY29sb3ItcGFydHkgLnl0cC1jdWVkLXRodW1ibmFpbC1vdmVybGF5OmhvdmVyIC55dHAtbGFyZ2UtcGxheS1idXR0b24tYmcsLnl0cC1jb2xvci1wYXJ0eSAueXRwLWxhcmdlLXBsYXktYnV0dG9uLnl0cC10b3VjaC1kZXZpY2UgLnl0cC1sYXJnZS1wbGF5LWJ1dHRvbi1iZywueXRwLWNvbG9yLXBhcnR5IC55dHAtbXV0ZWQtYXV0b3BsYXktZW5kc2NyZWVuLW92ZXJsYXk6aG92ZXIgLnl0cC1sYXJnZS1wbGF5LWJ1dHRvbi1iZ3std2Via2l0LWFuaW1hdGlvbjp5dHAtcGFydHktZmlsbCAuMTVzIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb246eXRwLXBhcnR5LWZpbGwgLjE1cyBsaW5lYXIgaW5maW5pdGV9LmhvdXNlLWJyYW5kIC55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheTpob3ZlciAueXRwLWxhcmdlLXBsYXktYnV0dG9uLWJnLC5ob3VzZS1icmFuZCAueXRwLW11dGVkLWF1dG9wbGF5LWVuZHNjcmVlbi1vdmVybGF5OmhvdmVyIC55dHAtbGFyZ2UtcGxheS1idXR0b24tYmd7ZmlsbDojMDAwfS55dHAtbGlua2VkLWFjY291bnQtcG9wdXAtY29udGFpbmVye3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0ueXRwLWxpbmtlZC1hY2NvdW50LXBvcHVwe3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NzI7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6d2hpdGU7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjIwcHg7Y29sb3I6cmdiYSgxNywxNywxNywuOCk7Zm9udC1mYW1pbHk6WW91VHViZSBOb3RvLFJvYm90byxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtkaXNwbGF5OmJsb2NrO3dpZHRoOjQwMHB4O292ZXJmbG93LXk6YXV0b31odG1sW2RhcmtdIC55dHAtbGlua2VkLWFjY291bnQtcG9wdXB7YmFja2dyb3VuZDpyZ2JhKDMzLDMzLDMzLC45NSk7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KX0ueXRwLWxpbmtlZC1hY2NvdW50LXBvcHVwLWJ1dHRvbnN7cGFkZGluZzo4cHggOHB4IDhweCAyNHB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYigyMzgsMjM4LDIzOCk7LXdlYmtpdC1ib3gtcGFjazplbmQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fS55dHAtbGlua2VkLWFjY291bnQtcG9wdXAtYnV0dG9ue2ZvbnQtd2VpZ2h0OjUwMDtsZXR0ZXItc3BhY2luZzouMDA3cHg7bGluZS1oZWlnaHQ6MjBweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6IzA2NWZkNDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MTBweCAxNnB4fWh0bWxbZGFya10gLnl0cC1saW5rZWQtYWNjb3VudC1wb3B1cC1idXR0b257Y29sb3I6IzNlYTZmZn0ueXRwLWxpbmtlZC1hY2NvdW50LXBvcHVwLXRpdGxle2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjI4cHg7bWFyZ2luOjE2cHggMjRweDtjb2xvcjpyZ2IoMywzLDMpfWh0bWxbZGFya10gLnl0cC1saW5rZWQtYWNjb3VudC1wb3B1cC10aXRsZXtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpfS55dHAtbGlua2VkLWFjY291bnQtcG9wdXAtZGVzY3JpcHRpb257cGFkZGluZzowIDI0cHg7bWFyZ2luOjRweCAwIDI0cHh9Lnl0cC1tZHgtcHJpdmFjeS1wb3B1cC1jb25maXJte2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTRweDttYXJnaW46MTJweCAwO3BhZGRpbmc6MTBweCAyMHB4O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6IzY2Njt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lnl0cC1tZHgtcHJpdmFjeS1wb3B1cC1jYW5jZWx7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxNHB4O21hcmdpbjoxMnB4IDA7cGFkZGluZzoxMHB4IDIwcHg7Ym9yZGVyLXJhZGl1czoycHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS55dHAtbWR4LXBvcHVwLWRpYWxvZ3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4Ojc1O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1tZHgtcG9wdXAtZGlhbG9nLWlubmVyLWNvbnRlbnR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTttYXJnaW4tdG9wOi03MHB4O2xlZnQ6MDtyaWdodDowO3BhZGRpbmc6MCAyMCV9Lnl0cC1tZHgtcG9wdXAtdGl0bGV7Zm9udC1zaXplOjIwcHg7cGFkZGluZy1ib3R0b206MTZweH0ueXRwLW1keC1wb3B1cC1kZXNjcmlwdGlvbntmb250LXNpemU6MTRweH0ueXRwLW1keC1wcml2YWN5LXBvcHVwLWJ1dHRvbnN7bWFyZ2luLXRvcDoyMHB4O2hlaWdodDo0NHB4fS55dHAtYmlnLW1vZGUgLm1keC1wcml2YWN5LXBvcHVwLWJ1dHRvbnN7bWFyZ2luLXRvcDozMHB4O2hlaWdodDo2N3B4fS5odG1sNS12aWRlby1wbGF5ZXIueXRwLXBsYXllci1taW5pbWl6ZWQ6bm90KC5lbmRlZC1tb2RlKTpub3QoLmN1ZWQtbW9kZSk6bm90KC51bnN0YXJ0ZWQtbW9kZSl7b3ZlcmZsb3c6dmlzaWJsZX0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC15cGMtcGxheWVyLWNvbnRlbnR7ZGlzcGxheTpub25lfS55dHAtbWluaXBsYXllci11aXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3otaW5kZXg6Njd9Lnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZXt6LWluZGV4OjY4fS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2Utd2l0aC1jb250cm9sc3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0zMHB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTMwcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0zMHB4KX0ueXRwLW1pbmlwbGF5ZXItc2NyaW17d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjUpOy13ZWJraXQtdHJhbnNpdGlvbjouMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgLjFzO3RyYW5zaXRpb246LjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpIC4xcztvcGFjaXR5OjA7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWp1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lnl0cC1taW5pcGxheWVyLXNjcmltOmZvY3VzLXdpdGhpbntvcGFjaXR5OjF9Lmh0bWw1LXZpZGVvLXBsYXllci55dHAtcGxheWVyLW1pbmltaXplZC51bnN0YXJ0ZWQtbW9kZSAueXRwLW1pbmlwbGF5ZXItc2NyaW17b3BhY2l0eToxfS55dHAtbWluaXBsYXllci1zY3JpbTpob3ZlcntvcGFjaXR5OjF9Lnl0cC1taW5pcGxheWVyLWJ1dHRvbnN7ZGlzcGxheTpub25lfS55dHAtcGxheWVyLW1pbmltaXplZC5lbmRlZC1tb2RlIC55dHAtbWluaXBsYXllci1idXR0b25ze2Rpc3BsYXk6YmxvY2t9Lnl0cC1wbGF5ZXItbWluaW1pemVkLmFkLXNob3dpbmcgLnl0cC1taW5pcGxheWVyLWJ1dHRvbnN7ZGlzcGxheTpub25lfS55dHAtbWluaXBsYXllci1jbG9zZS1idXR0b257cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6OHB4O3otaW5kZXg6Njd9Lnl0cC1taW5pcGxheWVyLWV4cGFuZC13YXRjaC1wYWdlLWJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6OHB4O3otaW5kZXg6Njd9Lnl0cC1taW5pcGxheWVyLWV4cGFuZC13YXRjaC1wYWdlLWJ1dHRvbi55dHAtbWluaXBsYXllci1idXR0b24tYm90dG9tLXJpZ2h0e2JvdHRvbTo0cHg7cmlnaHQ6MH0ueXRwLW1pbmlwbGF5ZXItZXhwYW5kLXdhdGNoLXBhZ2UtYnV0dG9uLnl0cC1taW5pcGxheWVyLWJ1dHRvbi10b3AtbGVmdHt0b3A6MDtsZWZ0OjB9Lnl0cC1taW5pcGxheWVyLXJlcGxheS1idXR0b257cG9zaXRpb246YWJzb2x1dGU7bGVmdDo4cHg7Ym90dG9tOjhweDt3aWR0aDozMnB4O2hlaWdodDozMnB4O3otaW5kZXg6Njd9Lnl0cC1wbGF5ZXItbWluaW1pemVkLmFkLXNob3dpbmcgLnl0cC1taW5pcGxheWVyLXJlcGxheS1idXR0b257ZGlzcGxheTpub25lfS55dHAtbWluaXBsYXllci1jb250cm9sc3tkaXJlY3Rpb246bHRyO2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4O3dpZHRoOjI2NHB4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0ueXRwLW1pbmlwbGF5ZXItYnV0dG9uLWNvbnRhaW5lcnttaW4td2lkdGg6NjRweH0ueXRwLW1pbmlwbGF5ZXItdWkgLnl0cC1wbGF5LWJ1dHRvbnt3aWR0aDo3MnB4O2hlaWdodDo3MnB4fS55dHAtbWluaXBsYXllci11aSAueXRwLW5leHQtYnV0dG9uLC55dHAtbWluaXBsYXllci11aSAueXRwLXByZXYtYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjY0cHg7aGVpZ2h0OjY0cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1taW5pcGxheWVyLXVpIC55dHAtbmV4dC1idXR0b24sLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1taW5pcGxheWVyLXVpIC55dHAtcHJldi1idXR0b257d2lkdGg6MzJweDtoZWlnaHQ6MzJweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLW1pbmlwbGF5ZXItdWkgLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXJ7bWluLXdpZHRoOjMycHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1taW5pcGxheWVyLXVpIC55dHAtcGxheS1idXR0b257d2lkdGg6NDJweDtoZWlnaHQ6NDJweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLW1pbmlwbGF5ZXItdWkgLnl0cC1taW5pcGxheWVyLWNvbnRyb2xzIHN2Z3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS55dHAtbWluaXBsYXllci11aSAueXRwLXRpbWUtZGlzcGxheXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjdweDtib3R0b206MH0ueXRwLW1pbmlwbGF5ZXItdWkgLnl0cC10aW1lLWRpc3BsYXkgLnl0cC1saXZlLWJhZGdle2Rpc3BsYXk6bm9uZTt3aWR0aDphdXRvO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ueXRwLW1pbmlwbGF5ZXItdWkgLnl0cC10aW1lLWRpc3BsYXkueXRwLWxpdmUgLnl0cC1saXZlLWJhZGdle2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dHAtcGxheWVyLW1pbmltaXplZC5hZC1zaG93aW5nIC55dHAtbWluaXBsYXllci11aXtkaXNwbGF5OmJsb2NrfS55dHAtcGxheWVyLW1pbmltaXplZC5hZC1zaG93aW5nIC55dHAtbWluaXBsYXllci11aSAueXRwLW5leHQtYnV0dG9uLC55dHAtcGxheWVyLW1pbmltaXplZC5hZC1zaG93aW5nIC55dHAtbWluaXBsYXllci11aSAueXRwLXByZXYtYnV0dG9uLC55dHAtcGxheWVyLW1pbmltaXplZC5hZC1zaG93aW5nIC55dHAtbWluaXBsYXllci11aSAueXRwLXRpbWUtZGlzcGxheXtkaXNwbGF5Om5vbmV9Lnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtdG9vbHRpcC55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLXRpdGxle3dpZHRoOjIwMCU7dGV4dC1hbGlnbjpjZW50ZXI7cmlnaHQ6NDhweH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1kcmFnIC55dHAtZXhwLWNoYXB0ZXItaG92ZXItZWZmZWN0LC55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXIgLnl0cC1leHAtY2hhcHRlci1ob3Zlci1jb250YWluZXI6aG92ZXIsLnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3ZlciAueXRwLWV4cC1jaGFwdGVyLWhvdmVyLWVmZmVjdHtib3R0b206MXB4Oy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgxLjQpOy1tcy10cmFuc2Zvcm06c2NhbGVZKDEuNCk7dHJhbnNmb3JtOnNjYWxlWSgxLjQpOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyLC55dHAtc21hbGwtbW9kZS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0xcHg7ei1pbmRleDo2OH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC10aW1lLWRpc3BsYXl7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLXBsYXllci1taW5pbWl6ZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXJ7Ym90dG9tOjB9Lnl0cC1wbGF5ZXItbWluaW1pemVkIC52aWRlby1hZHMsLnl0cC1wbGF5ZXItbWluaW1pemVkLnl0cC1tZW51LXNob3duIC52aWRlby1hZHN7ZGlzcGxheTpibG9ja30ueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLW1lbnUtc2hvd24gLnl0cC1hZC1wbGF5ZXItb3ZlcmxheXtvdmVyZmxvdzpoaWRkZW59Lnl0cC1wbGF5ZXItbWluaW1pemVkLnl0cC1tZW51LXNob3duIC55dHAtYWQtcGxheWVyLW92ZXJsYXktZmx5b3V0LWN0YSwueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLW1lbnUtc2hvd24gLnl0cC1hZC1wcmV2aWV3LWNvbnRhaW5lciwueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLW1lbnUtc2hvd24gLnl0cC1hZC1za2lwLWJ1dHRvbi1jb250YWluZXJ7Ym90dG9tOjMycHh9Lnl0cC1wbGF5ZXItbWluaW1pemVkLnl0cC1tZW51LXNob3duIC55dHAtYWQtcGxheWVyLW92ZXJsYXktaW5zdHJlYW0taW5mb3tib3R0b206M3B4O2xlZnQ6NnB4fS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsIC55dHAtdG9vbHRpcC10aXRsZXt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO2ZvbnQtc2l6ZToxMnB4fS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3e21heC13aWR0aDpjYWxjKDEwMCUgLSAyNHB4KTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246cmV2ZXJzZTstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS55dHAtcGxheWVyLW1pbmltaXplZCAuaHRtbDUtbWFpbi12aWRlbywueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1taW5pcGxheWVyLXNjcmlte2JvcmRlci1yYWRpdXM6MTJweCAxMnB4IDAgMH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLmh0bWw1LW1haW4tdmlkZW97Ym9yZGVyLXJhZGl1czowfS55dHAtcGxheWVyLW1pbmltaXplZC55dHAtcGxheWVyLWRvY3VtZW50LXBpY3R1cmUtaW4tcGljdHVyZSAueXRwLW1pbmlwbGF5ZXItY2xvc2UtYnV0dG9uLC55dHAtcGxheWVyLW1pbmltaXplZC55dHAtcGxheWVyLWRvY3VtZW50LXBpY3R1cmUtaW4tcGljdHVyZSAueXRwLW1pbmlwbGF5ZXItZXhwYW5kLXdhdGNoLXBhZ2UtYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLXBsYXllci1kb2N1bWVudC1waWN0dXJlLWluLXBpY3R1cmUgLmh0bWw1LW1haW4tdmlkZW8sLnl0cC1wbGF5ZXItbWluaW1pemVkLnl0cC1wbGF5ZXItZG9jdW1lbnQtcGljdHVyZS1pbi1waWN0dXJlIC55dHAtbWluaXBsYXllci1zY3JpbSwueXRwLXBsYXllci1taW5pbWl6ZWQueXRwLXBsYXllci1kb2N1bWVudC1waWN0dXJlLWluLXBpY3R1cmUuaHRtbDUtdmlkZW8tcGxheWVye2JvcmRlci1yYWRpdXM6MH0ueXRwLXRpdGxlLW5vdGlmaWNhdGlvbnN7LXdlYmtpdC1hbGlnbi1zZWxmOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjttYXJnaW4tcmlnaHQ6NXB4O3RleHQtYWxpZ246Y2VudGVyfWJ1dHRvbi55dHAtYnV0dG9uLnl0cC10aXRsZS1ub3RpZmljYXRpb25ze21hcmdpbi1sZWZ0OjhweDt3aWR0aDo0OHB4fS55dHAtdGl0bGUtbm90aWZpY2F0aW9uczpub3QoLnl0cC1ub3RpZmljYXRpb25zLWVuYWJsZWQpIC55dHAtdGl0bGUtbm90aWZpY2F0aW9ucy1vbntkaXNwbGF5Om5vbmV9Lnl0cC10aXRsZS1ub3RpZmljYXRpb25zLnl0cC1ub3RpZmljYXRpb25zLWVuYWJsZWQgLnl0cC10aXRsZS1ub3RpZmljYXRpb25zLW9mZntkaXNwbGF5Om5vbmV9Lnl0cC1vZmZsaW5lLXNsYXRle3otaW5kZXg6MjE7b3ZlcmZsb3c6aGlkZGVufS55dHAtb2ZmbGluZS1zbGF0ZS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6bm8tcmVwZWF0IDUwJS9jb3Zlcjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjIyfS55dHAtb2ZmbGluZS1zbGF0ZS55dHAtb2ZmbGluZS1zbGF0ZS1oaWRlLWJhY2tncm91bmQgLnl0cC1vZmZsaW5lLXNsYXRlLWJhY2tncm91bmR7ZGlzcGxheTpub25lfS5odG1sNS12aWRlby1wbGF5ZXIuZW5kZWQtbW9kZSAueXRwLW9mZmxpbmUtc2xhdGUueXRwLW9mZmxpbmUtc2xhdGUtaGlkZS1iYWNrZ3JvdW5kIC55dHAtb2ZmbGluZS1zbGF0ZS1iYWNrZ3JvdW5ke2Rpc3BsYXk6YmxvY2t9Lnl0cC1vZmZsaW5lLXNsYXRlOm5vdCgueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlcikgLnl0cC1vZmZsaW5lLXNsYXRlLWJhci1mYWRlLnl0cC1vZmZsaW5lLXNsYXRlLWJhcntkaXNwbGF5Om5vbmV9Lnl0cC1vZmZsaW5lLXNsYXRlLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MCA2cHg7bGVmdDoxMnB4O2hlaWdodDo1NnB4O2JvdHRvbTo2MHB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7Y29sb3I6I2ZmZjstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7ei1pbmRleDo0Njtib3JkZXItcmFkaXVzOjhweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLW9mZmxpbmUtc2xhdGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSg0MCw0MCw0MCwuNik7Ym9yZGVyLXJhZGl1czoxMnB4fS55dHAtb2ZmbGluZS1zbGF0ZS1iYXIueXRwLW9mZmxpbmUtc2xhdGUtYmFyLWhpZGRlbntkaXNwbGF5Om5vbmV9Lnl0cC1lbWJlZCAueXRwLW9mZmxpbmUtc2xhdGUtYmFye2JvdHRvbTo1MnB4fS55dHAtYmlnLW1vZGUgLnl0cC1vZmZsaW5lLXNsYXRlLWJhcntwYWRkaW5nOjAgOXB4O2hlaWdodDo4NHB4O2JvdHRvbTo5MHB4O2xlZnQ6MThweH0ueXRwLWVtYmVkLnl0cC1iaWctbW9kZSAueXRwLW9mZmxpbmUtc2xhdGUtYmFye2JvdHRvbTo5MHB4fS55dHAtYXV0b2hpZGUgLnl0cC1vZmZsaW5lLXNsYXRlLWJhciwueXRwLWhpZGUtY29udHJvbHMgLnl0cC1vZmZsaW5lLXNsYXRlLWJhcntib3R0b206MTJweDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYXV0b2hpZGUgLnl0cC1iaWctbW9kZSAueXRwLW9mZmxpbmUtc2xhdGUtYmFyLC55dHAtaGlkZS1jb250cm9scyAueXRwLWJpZy1tb2RlIC55dHAtb2ZmbGluZS1zbGF0ZS1iYXJ7Ym90dG9tOjE4cHh9Lnl0cC1vZmZsaW5lLXNsYXRlLWljb257bWFyZ2luOjAgMTRweDt3aWR0aDoyNHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtb2ZmbGluZS1zbGF0ZS1pY29ue2Rpc3BsYXk6bm9uZX0ueXRwLWJpZy1tb2RlIC55dHAtb2ZmbGluZS1zbGF0ZS1pY29ue3dpZHRoOjM2cHh9Lnl0cC1vZmZsaW5lLXNsYXRlLWJ1dHRvbnN7bWFyZ2luOjEycHggNnB4fS55dHAtb2ZmbGluZS1zbGF0ZS1idXR0b257bWluLXdpZHRoOjgwcHg7aGVpZ2h0OjMycHg7cGFkZGluZzowIDhweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjI1KTtib3JkZXItcmFkaXVzOjJweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLW9mZmxpbmUtc2xhdGUtYnV0dG9ue2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjE4cHg7Y29sb3I6IzI4MjgyOH0ueXRwLW9mZmxpbmUtc2xhdGUtYnV0dG9uLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO2hlaWdodDoyNHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtb2ZmbGluZS1zbGF0ZS1idXR0b24taWNvbntoZWlnaHQ6MThweDt3aWR0aDoxOHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtb2ZmbGluZS1zbGF0ZS1idXR0b24taWNvbiBzdmd7ZmlsbDojMjgyODI4O2hlaWdodDoxOHB4O3dpZHRoOjE4cHh9Lnl0cC1vZmZsaW5lLXNsYXRlLWJ1dHRvbi10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW46MCA4cHg7bGluZS1oZWlnaHQ6MzJweDtmb250LXNpemU6MTEwJTtmb250LXdlaWdodDo1MDB9Lnl0cC1yZW1pbmRlci1tZW51e2JhY2tncm91bmQ6cmdiYSgyOCwyOCwyOCwuOSk7Ym9yZGVyLXJhZGl1czoycHg7Ym90dG9tOjU1cHg7b3V0bGluZTpub25lO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LXNoYWRvdzowIDAgMnB4IHJnYmEoMCwwLDAsLjUpO3doaXRlLXNwYWNlOm5vd3JhcDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZX0ueXRwLXJlbWluZGVyLW1lbnVbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLXJlbWluZGVyLW1lbnUtY29udGVudHN7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOiNlZWU7ZGlzcGxheTp0YWJsZTtwYWRkaW5nOjhweCAwO3dpZHRoOjEwMCV9Lnl0cC1yZW1pbmRlci1tZW51LWl0ZW17Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTp0YWJsZS1yb3c7aGVpZ2h0OjQwcHg7b3V0bGluZTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1yZW1pbmRlci1tZW51LWl0ZW17aGVpZ2h0OjQ5cHh9Lnl0cC1yZW1pbmRlci1tZW51LWl0ZW06bm90KFthcmlhLWRpc2FibGVkPXRydWVdKXtjdXJzb3I6cG9pbnRlcn0ueXRwLXJlbWluZGVyLW1lbnUtaXRlbTpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lnl0cC1yZW1pbmRlci1tZW51LWl0ZW0taWNvbiwueXRwLXJlbWluZGVyLW1lbnUtaXRlbS1sYWJlbHtkaXNwbGF5OnRhYmxlLWNlbGw7cGFkZGluZzowIDE1cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS55dHAtcmVtaW5kZXItbWVudS1pdGVtLWxhYmVse2ZvbnQtc2l6ZToxMTglO2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nLWxlZnQ6MDt0ZXh0LXRyYW5zZm9ybTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1yZW1pbmRlci1tZW51LWl0ZW0tbGFiZWx7cGFkZGluZzowIDE1cHggMCAwfS55dHAtcmVtaW5kZXItbWVudS1pdGVtLWljb257cGFkZGluZzowIDEwcHh9Lnl0cC1iaWctbW9kZSAueXRwLXJlbWluZGVyLW1lbnUtaXRlbS1pY29ue3BhZGRpbmc6MCAxNXB4fS55dHAtcmVtaW5kZXItbWVudS1pdGVtLWljb24gc3Zne2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRwLWJpZy1tb2RlIC55dHAtcmVtaW5kZXItbWVudS1pdGVtLWljb24gc3Zne2hlaWdodDozNnB4O3dpZHRoOjM2cHh9Lnl0cC1iaWctbW9kZSAueXRwLW9mZmxpbmUtc2xhdGUtYnV0dG9uc3ttYXJnaW46MThweCA5cHh9Lnl0cC1iaWctbW9kZSAueXRwLW9mZmxpbmUtc2xhdGUtYnV0dG9ue21pbi13aWR0aDoxMjBweDtoZWlnaHQ6NDhweDtwYWRkaW5nOjAgMTJweDtib3JkZXItcmFkaXVzOjNweH0ueXRwLWJpZy1tb2RlIC55dHAtb2ZmbGluZS1zbGF0ZS1idXR0b24tdGV4dHttYXJnaW46MCAxMnB4O2xpbmUtaGVpZ2h0OjQ4cHg7Zm9udC1zaXplOjEzMCU7Zm9udC13ZWlnaHQ6NTAwfS55dHAtb2ZmbGluZS1zbGF0ZS1tZXNzYWdlc3std2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxO21pbi13aWR0aDoxODBweDttYXJnaW46MCA2cHh9Lnl0cC1iaWctbW9kZSAueXRwLW9mZmxpbmUtc2xhdGUtbWVzc2FnZXN7bWluLXdpZHRoOjI3MHB4O21hcmdpbjowIDlweH0ueXRwLW9mZmxpbmUtc2xhdGUtbWFpbi10ZXh0LC55dHAtb2ZmbGluZS1zbGF0ZS1zdWJ0aXRsZS10ZXh0e3RleHQtdHJhbnNmb3JtOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtb2ZmbGluZS1zbGF0ZS1tYWluLXRleHR7Zm9udC1zaXplOjE0MCU7Zm9udC13ZWlnaHQ6NDAwfS55dHAtb2ZmbGluZS1zbGF0ZS1zdWJ0aXRsZS10ZXh0e2ZvbnQtc2l6ZToxMTAlO2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLW9mZmxpbmUtc2xhdGUtY2xvc2UtYnV0dG9uLC55dHAtb2ZmbGluZS1zbGF0ZS1vcGVuLWJ1dHRvbntkaXNwbGF5Om5vbmV9Lnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLWJhcnstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtYWxpZ246c3RhcnQ7LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7dG9wOjA7Ym90dG9tOjA7bGVmdDphdXRvO3JpZ2h0OjA7cGFkZGluZzoyNXB4O3BhZGRpbmctdG9wOjQ4cHg7bWluLXdpZHRoOmF1dG87d2lkdGg6MzAwcHg7aGVpZ2h0OmF1dG87Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtdHJhbnNpdGlvbjpyaWdodCAuMjVzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246cmlnaHQgLjI1cyBlYXNlLWluLW91dDt6LWluZGV4OjIzfS55dHAtYmlnLW1vZGUgLnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLWJhcntwYWRkaW5nLXRvcDo2OXB4fS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlciAueXRwLW9mZmxpbmUtc2xhdGUtYmFyLC55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlciAueXRwLW9mZmxpbmUtc2xhdGUtY2xvc2UtYnV0dG9uLC55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlci55dHAtb2ZmbGluZS1zbGF0ZS1jb2xsYXBzZWQgLnl0cC1vZmZsaW5lLXNsYXRlLW9wZW4tYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlci55dHAtb2ZmbGluZS1zbGF0ZS1jb2xsYXBzZWQgLnl0cC1vZmZsaW5lLXNsYXRlLWJhcntyaWdodDotMTAwJX0ueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlciAueXRwLW9mZmxpbmUtc2xhdGUtaWNvbntkaXNwbGF5Om5vbmV9Lnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLWNsb3NlLWJ1dHRvbiwueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlciAueXRwLW9mZmxpbmUtc2xhdGUtb3Blbi1idXR0b257cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6NTBweDtoZWlnaHQ6NTBweDt0b3A6NTAlO3JpZ2h0OjA7bWFyZ2luLXRvcDotMjVweDt6LWluZGV4OjIzfS55dHAtb2ZmbGluZS1zbGF0ZS1wcmVtaWVyZS10cmFpbGVyIC55dHAtb2ZmbGluZS1zbGF0ZS1jbG9zZS1idXR0b257ZGlzcGxheTpibG9ja30ueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlciAueXRwLW9mZmxpbmUtc2xhdGUtb3Blbi1idXR0b246YmVmb3Jle2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDoyOHB4O2xlZnQ6MTVweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDt3aWR0aDoyMHB4fS55dHAtb2ZmbGluZS1zbGF0ZS1wcmVtaWVyZS10cmFpbGVyIC55dHAtb2ZmbGluZS1zbGF0ZS1vcGVuLWJ1dHRvbiBzdmd7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowfS55dHAtb2ZmbGluZS1zbGF0ZS1wcmVtaWVyZS10cmFpbGVyLnl0cC1vZmZsaW5lLXNsYXRlLWNvbGxhcHNlZCAueXRwLW9mZmxpbmUtc2xhdGUtY2xvc2UtYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlci55dHAtb2ZmbGluZS1zbGF0ZS1jb2xsYXBzZWQgLnl0cC1vZmZsaW5lLXNsYXRlLW9wZW4tYnV0dG9ue2Rpc3BsYXk6YmxvY2t9Lnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLW1lc3NhZ2Vzey13ZWJraXQtYm94LWZsZXg6MDstd2Via2l0LWZsZXg6bm9uZTtmbGV4Om5vbmU7bWFyZ2luOjB9Lnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLW1haW4tdGV4dHtmb250LXNpemU6MjBweDtmb250LXdlaWdodDo1MDA7aGVpZ2h0OmF1dG99Lnl0cC1iaWctbW9kZSAueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlciAueXRwLW9mZmxpbmUtc2xhdGUtbWFpbi10ZXh0e21hcmdpbi10b3A6MH0ueXRwLW9mZmxpbmUtc2xhdGUtcHJlbWllcmUtdHJhaWxlciAueXRwLW9mZmxpbmUtc2xhdGUtc3VidGl0bGUtdGV4dHtjb2xvcjojYWFhO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuM2VtO21hcmdpbjo1cHggMCAyMHB4O3doaXRlLXNwYWNlOm5vcm1hbH0ueXRwLWJpZy1tb2RlIC55dHAtb2ZmbGluZS1zbGF0ZS1wcmVtaWVyZS10cmFpbGVyIC55dHAtb2ZmbGluZS1zbGF0ZS1zdWJ0aXRsZS10ZXh0e21hcmdpbi1sZWZ0OjB9Lnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLWRlc2NyaXB0aW9ue2Rpc3BsYXk6YmxvY2s7dGV4dC10cmFuc2Zvcm06bm9uZTtmb250LXNpemU6MTNweDttYXJnaW46MjBweCAwO21heC1oZWlnaHQ6MzAwcHg7b3ZlcmZsb3c6aGlkZGVufS55dHAtb2ZmbGluZS1zbGF0ZS1wcmVtaWVyZS10cmFpbGVyIC55dHAtb2ZmbGluZS1zbGF0ZS1idXR0b25ze21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjB9Lnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLWJ1dHRvbnMgLnl0cC1yZW1pbmRlci1tZW51e2JvdHRvbTphdXRvfS55dHAtb2ZmbGluZS1zbGF0ZS1wcmVtaWVyZS10cmFpbGVyIC55dHAtb2ZmbGluZS1zbGF0ZS1idXR0b257YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4zKTtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxNHB4O2hlaWdodDphdXRvO3BhZGRpbmc6NHB4IDhweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lnl0cC1vZmZsaW5lLXNsYXRlLXByZW1pZXJlLXRyYWlsZXIgLnl0cC1vZmZsaW5lLXNsYXRlLWJ1dHRvbiBzdmd7ZmlsbDojZmZmfS55dHAtb2ZmbGluZS1zbGF0ZS1wcmVtaWVyZS10cmFpbGVyIC55dHAtb2ZmbGluZS1zbGF0ZS1idXR0b24tdGV4dHtmb250LXNpemU6MTEwJTtsaW5lLWhlaWdodDozMnB4O21hcmdpbjowIDhweH0ueXRwLWNocm9tZS10b3AgLnl0cC1vdmVyZmxvdy1idXR0b257d2lkdGg6YXV0bztoZWlnaHQ6YXV0bzttaW4td2lkdGg6NDhweH0ueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykueXRwLXNtYWxsLW1vZGUgLnl0cC1vdmVyZmxvdy1idXR0b257cGFkZGluZy10b3A6MTZweH0ueXRwLW92ZXJmbG93LWljb257bWFyZ2luOmF1dG87d2lkdGg6MzZweDtoZWlnaHQ6MzZweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lnl0cC1vdmVyZmxvdy1wYW5lbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4Ojc0O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1vdmVyZmxvdy1wYW5lbFthcmlhLWhpZGRlbj10cnVlXXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1hdXRvaGlkZS55dHAtZW1iZWQtb3ZlcmxheXMtYXV0b2hpZGUgLnl0cC1vdmVyZmxvdy1wYW5lbHtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYXV0b2hpZGU6bm90KC55dHAtYXV0b2hpZGUtYWN0aXZlKS55dHAtZW1iZWQtb3ZlcmxheXMtYXV0b2hpZGUgLnl0cC1vdmVyZmxvdy1wYW5lbHtkaXNwbGF5Om5vbmV9Lnl0cC1vdmVyZmxvdy1wYW5lbC1jb250ZW50e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDowO3JpZ2h0OjA7bWFyZ2luLXRvcDotNDhweH0ueXRwLW92ZXJmbG93LXBhbmVsLWNsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo2cHg7cmlnaHQ6MTJweDtwYWRkaW5nOjA7d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0ueXRwLW1vYmlsZS55dHAtZW1iZWQtbW9iaWxlIC55dHAtb3ZlcmZsb3ctcGFuZWwtY2xvc2V7d2lkdGg6NDhweDtoZWlnaHQ6NDhweH0ueXRwLW92ZXJmbG93LXBhbmVsLWNsb3NlIHBhdGh7ZmlsbDojYWFhfS55dHAtb3ZlcmZsb3ctcGFuZWwtY2xvc2U6aG92ZXIgcGF0aHtmaWxsOiNmZmZ9Lnl0cC1vdmVyZmxvdy1wYW5lbC1hY3Rpb24tYnV0dG9uc3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtd3JhcDpub3dyYXA7ZmxleC13cmFwOm5vd3JhcDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpzdGFydDstd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDo4cHggMTJweCA3MnB4O3otaW5kZXg6NTk7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktdG9wLWxlZnR7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJX0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktdG9wLWxlZnQ+Kntwb2ludGVyLWV2ZW50czphdXRvO21hcmdpbi1ib3R0b206MTJweH0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktdG9wLXJpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7cmlnaHQ6MH0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktdG9wLXJpZ2h0Pip7cG9pbnRlci1ldmVudHM6YXV0bzttYXJnaW4tYm90dG9tOjEycHg7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6YXV0b30ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktdG9wLXJpZ2h0IC55dHAtY2hyb21lLXRvcC1idXR0b25ze21hcmdpbi1ib3R0b206MH0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktdG9wLXJpZ2h0IC55dHAtY2hyb21lLXRvcC1idXR0b25zPip7bWFyZ2luLWJvdHRvbToxMnB4fS55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtb3ZlcmxheS1ib3R0b20tbGVmdHtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2JvdHRvbTowfS55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtb3ZlcmxheS1ib3R0b20tbGVmdD4qe3BvaW50ZXItZXZlbnRzOmF1dG87bWFyZ2luLXRvcDoxMnB4fS55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtb3ZlcmxheS1ib3R0b20tcmlnaHR7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDtib3R0b206MH0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktYm90dG9tLXJpZ2h0Pip7cG9pbnRlci1ldmVudHM6YXV0bzttYXJnaW4tdG9wOjEycHg7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6MH0ueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLW92ZXJsYXktaW5saW5lLWNvbnRhaW5lcnt3aWR0aDotd2Via2l0LWZpdC1jb250ZW50O3dpZHRoOi1tb3otZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnQ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7Z2FwOjEycHh9Lnl0cC1vdmVybGF5cy1jb250YWluZXIgLnl0cC1vdmVybGF5LWlubGluZS1jb250YWluZXI+Kntwb2ludGVyLWV2ZW50czphdXRvfS55dHAtb3ZlcmxheXMtY29udGFpbmVyey13ZWJraXQtdHJhbnNpdGlvbjpib3R0b20gLjFzO3RyYW5zaXRpb246Ym90dG9tIC4xczstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWZ1bGwtYmxlZWQtcGxheWVyLnl0cC1ncmlkLXNjcm9sbGluZyAueXRwLW92ZXJsYXlzLWNvbnRhaW5lcnstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIDBzO3RyYW5zaXRpb246Ym90dG9tIDBzfS55dHAtYmlnLW1vZGUgLnl0cC1vdmVybGF5cy1jb250YWluZXJ7aW5zZXQ6OHB4IDI0cHggNzhweH0ueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykgLnl0cC1vdmVybGF5cy1jb250YWluZXJ7dG9wOjYwcHh9Lnl0cC1iaWctbW9kZTpub3QoLnl0cC1kZWxoaS1tb2Rlcm4pIC55dHAtb3ZlcmxheXMtY29udGFpbmVye3RvcDo2OXB4O2JvdHRvbTo3OHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtb3ZlcmxheXMtY29udGFpbmVye2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgMjRweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtb3ZlcmxheXMtY29udGFpbmVye2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgMjRweCArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSArIDEwMCUqdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1vdmVybGF5cy1jb250YWluZXJ7Ym90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyAyNHB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtb3ZlcmxheXMtY29udGFpbmVye2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgMjRweCArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSArIDEwMCUqdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKX0ueXRwLWF1dG9oaWRlOm5vdCgueXRwLWF1dG9oaWRlLWFjdGl2ZSkgLnl0cC1vdmVybGF5cy1jb250YWluZXIsLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWF1dG9oaWRlOm5vdCgueXRwLWF1dG9oaWRlLWFjdGl2ZSkgLnl0cC1vdmVybGF5cy1jb250YWluZXJ7Ym90dG9tOjI0cHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1vdmVybGF5cy1jb250YWluZXIsLnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtb3ZlcmxheXMtY29udGFpbmVye2JvdHRvbTozNnB4fS5odG1sNS12aWRlby1wbGF5ZXIuZW5kZWQtbW9kZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LC55dHAtZGVsaGktbW9kZXJuLnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtcGxheWxpc3QtbWVudS1idXR0b257ZGlzcGxheTpub25lfS55dHAtcGFpZC1jb250ZW50LW92ZXJsYXl7Ym9yZGVyLXJhZGl1czoycHg7Ym90dG9tOjUzcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEwOS4wOTA5MDkwOTA5JTtoZWlnaHQ6MzBweDtsZWZ0OjI1cHg7bGluZS1oZWlnaHQ6MzBweDtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LXNoYWRvdzowIDAgMnB4IHJnYmEoMCwwLDAsLjUpO3otaW5kZXg6Mjd9Lnl0cC1iaWctbW9kZSAueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LC55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXl7cG9zaXRpb246cmVsYXRpdmU7aW5zZXQ6MH0ueXRwLWV4cC1wcHAtdXBkYXRlIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXl7Ym9yZGVyLXJhZGl1czowO2JvdHRvbTphdXRvO2ZvbnQtd2VpZ2h0OjQwMDtoZWlnaHQ6YXV0bztwb2ludGVyLWV2ZW50czphdXRvO3RvcDoxNnB4O2xlZnQ6MTZweDtyaWdodDphdXRvfS55dHAtZXhwLXBwcC11cGRhdGUgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheS1saW5rey13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KTtib3JkZXItbGVmdDo0cHggc29saWQgIzNlYTZmZjtib3JkZXItcmFkaXVzOjRweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MzEycHg7cGFkZGluZzo4cHggMCA4cHggOHB4Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtZXhwLXBwcC11cGRhdGUgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheS1saW5rW2hyZWY9IiMiXXtwb2ludGVyLWV2ZW50czpub25lfS55dHAtZXhwLXBwcC11cGRhdGUgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheS1pY29ue2hlaWdodDoyNHB4O3dpZHRoOjI0cHg7LXdlYmtpdC1mbGV4LXNocmluazowO2ZsZXgtc2hyaW5rOjB9Lnl0cC1leHAtcHBwLXVwZGF0ZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LXRleHR7YmFja2dyb3VuZDpub25lOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXgtZ3JvdzoxO2ZsZXgtZ3JvdzoxO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6MWVtO3BhZGRpbmc6OHB4fS55dHAtZXhwLXBwcC11cGRhdGUgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheS1jaGV2cm9ue2hlaWdodDoyNHB4O3dpZHRoOjI0cHg7LXdlYmtpdC1mbGV4LXNocmluazowO2ZsZXgtc2hyaW5rOjB9Lnl0cC1leHAtcHBwLXVwZGF0ZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LWNoZXZyb246ZW1wdHksLnl0cC1leHAtcHBwLXVwZGF0ZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LWljb246ZW1wdHl7aGVpZ2h0OjA7d2lkdGg6MH0ueXRwLWV4cC1wcHAtdXBkYXRlLnl0cC1iaWctbW9kZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5e2JvdHRvbTphdXRvO2hlaWdodDphdXRvO2xlZnQ6MTZweDtsaW5lLWhlaWdodDppbmhlcml0fS55dHAtZXhwLXBwcC11cGRhdGUueXRwLWJpZy1tb2RlIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXksLnl0cC1leHAtcHBwLXVwZGF0ZS55dHAtZW1iZWQgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheXt0b3A6NjRweH0ueXRwLWV4cC1wcHAtdXBkYXRlLnl0cC1iaWctbW9kZS55dHAtYXV0b2hpZGUgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheSwueXRwLWV4cC1wcHAtdXBkYXRlLnl0cC1iaWctbW9kZS55dHAtaGlkZS1pbmZvLWJhciAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LC55dHAtZXhwLXBwcC11cGRhdGUueXRwLWVtYmVkLnl0cC1hdXRvaGlkZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LC55dHAtZXhwLXBwcC11cGRhdGUueXRwLWVtYmVkLnl0cC1oaWRlLWluZm8tYmFyIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXl7dG9wOjE2cHh9Lnl0cC1leHAtcHBwLXVwZGF0ZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LWluZGljYXRvcntkaXNwbGF5Om5vbmV9Lnl0cC1leHAtcHBwLXVwZGF0ZSAueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LC55dHAtZXhwLXBwcC11cGRhdGUueXRwLWJpZy1tb2RlIC55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXksLnl0cC1leHAtcHBwLXVwZGF0ZS55dHAtYmlnLW1vZGUueXRwLWRlbGhpLW1vZGVybiAueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLXBhaWQtY29udGVudC1vdmVybGF5e3Bvc2l0aW9uOnJlbGF0aXZlO2luc2V0OjB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWV4cC1wcHAtdXBkYXRlIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXktbGlua3std2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0scmdiYSgwLDAsMCwuNikpO3BhZGRpbmc6NXB4O2JvcmRlci1sZWZ0OnVuc2V0fS55dHAtZGVsaGktbW9kZXJuLnl0cC1leHAtcHBwLXVwZGF0ZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5LWluZGljYXRvcntkaXNwbGF5OmJsb2NrO3dpZHRoOjRweDtoZWlnaHQ6MjBweDtib3JkZXItcmFkaXVzOjRweDtiYWNrZ3JvdW5kLWNvbG9yOiMzZWE2ZmY7bWFyZ2luOjAgOHB4fS55dHAtZW1iZWQgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheXtib3R0b206NDVweH0ueXRwLXBhaWQtY29udGVudC1vdmVybGF5LXRleHR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MzJweDtvcGFjaXR5OjE7cGFkZGluZzowIDE0cHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1iaWctbW9kZSAueXRwLXBhaWQtY29udGVudC1vdmVybGF5e2JvdHRvbTo2MnB4O2hlaWdodDo0MnB4O2xlZnQ6NDRweDtsaW5lLWhlaWdodDo0MnB4fS55dHAtYXV0b2hpZGUgLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheSwueXRwLWl2LWRyYXdlci1vcGVuIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXl7Ym90dG9tOjZweDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246Ym90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYmlnLW1vZGUueXRwLWF1dG9oaWRlIC55dHAtcGFpZC1jb250ZW50LW92ZXJsYXksLnl0cC1iaWctbW9kZS55dHAtaXYtZHJhd2VyLW9wZW4gLnl0cC1wYWlkLWNvbnRlbnQtb3ZlcmxheXtib3R0b206MTJweH0ueXRwLXBhaWQtY29udGVudC1vdmVybGF5LXRleHRbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLW1lbnVpdGVte2Rpc3BsYXk6dGFibGUtcm93O2N1cnNvcjpkZWZhdWx0O291dGxpbmU6bm9uZX0ueXRwLW1lbnVpdGVtOm5vdCgueXRwLW1lbnVpdGVtLXdpdGgtZm9vdGVyKXtoZWlnaHQ6NDBweH0ueXRwLWJpZy1tb2RlIC55dHAtbWVudWl0ZW06bm90KC55dHAtbWVudWl0ZW0td2l0aC1mb290ZXIpe2hlaWdodDo0OXB4fS55dHAtbWVudWl0ZW06bm90KFthcmlhLWRpc2FibGVkPXRydWVdKXtjdXJzb3I6cG9pbnRlcn0ueXRwLW1lbnVpdGVtOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0ueXRwLW1lbnVpdGVtLWNvbnRlbnQsLnl0cC1tZW51aXRlbS1pY29uLC55dHAtbWVudWl0ZW0tbGFiZWwsLnl0cC1tZW51aXRlbS1zZWNvbmRhcnktaWNvbntkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246bWlkZGxlO3BhZGRpbmc6MCAxNXB4fS55dHAtbWVudWl0ZW0tbGFiZWx7cGFkZGluZy1sZWZ0OjB9Lnl0cC1tZW51aXRlbS1pY29ue3BhZGRpbmc6MCAxMHB4fS55dHAtYmlnLW1vZGUgLnl0cC1tZW51aXRlbS1pY29ue3BhZGRpbmc6MCAxNXB4fS55dHAtbWVudWl0ZW0taWNvbiBzdmd7ZGlzcGxheTpibG9jazt3aWR0aDoyNHB4O2hlaWdodDoyNHB4fS55dHAtbWVudWl0ZW0tc2Vjb25kYXJ5LWljb24gc3Zne2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTZweDtoZWlnaHQ6MTZweH0ueXRwLWJpZy1tb2RlOm5vdCgueXRwLWRlbGhpLW1vZGVybikgLnl0cC1tZW51aXRlbS1pY29uIHN2Z3t3aWR0aDozNnB4O2hlaWdodDozNnB4fS55dHAtbWVudWl0ZW0tbGFiZWx7Zm9udC1zaXplOjExOCU7Zm9udC13ZWlnaHQ6NTAwfS55dHAtZGVsaGktbW9kZXJuIC55dHAtbWVudWl0ZW0tbGFiZWx7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6dW5zZXR9Lnl0cC1tZW51aXRlbS1sYWJlbC13cmFwcGVye2Rpc3BsYXk6dGFibGUtY2VsbDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lnl0cC1tZW51aXRlbS1rZXlib2FyZC1zaG9ydGN1dHtmb250LXNpemU6MTE1JTtwYWRkaW5nLWxlZnQ6M3B4O2NvbG9yOiNjY2N9Lnl0cC1xdWFsaXR5LW1lbnUgLnl0cC1tZW51aXRlbXt3aGl0ZS1zcGFjZTpub3dyYXB9Lnl0cC1xdWFsaXR5LW1lbnUgLnl0cC1wYW5lbC1tZW51e21hcmdpbi1yaWdodDoxMHB4fS55dHAtcXVhbGl0eS1tZW51IC55dHAtbWVudWl0ZW0tbGFiZWwgc3Vwe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjB9Lnl0cC1iaWctbW9kZSAueXRwLW1lbnVpdGVtLWNvbnRlbnQsLnl0cC1iaWctbW9kZSAueXRwLW1lbnVpdGVtLWxhYmVse3BhZGRpbmc6MCAxNXB4IDAgMH0ueXRwLW1lbnVpdGVtW3JvbGU9bWVudWl0ZW1yYWRpb10gLnl0cC1tZW51aXRlbS1jb250ZW50e2Rpc3BsYXk6bm9uZX0ueXRwLW1lbnVpdGVtW3JvbGU9bWVudWl0ZW1yYWRpb10gLnl0cC1tZW51aXRlbS1sYWJlbHtwYWRkaW5nLWxlZnQ6MzVweDtwYWRkaW5nLXJpZ2h0OjIwcHg7Ym9yZGVyLWJvdHRvbTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1tZW51aXRlbVtyb2xlPW1lbnVpdGVtcmFkaW9dIC55dHAtbWVudWl0ZW0tbGFiZWx7cGFkZGluZy1sZWZ0OjUycHg7cGFkZGluZy1yaWdodDozNXB4fS55dHAtbWVudWl0ZW1bcm9sZT1tZW51aXRlbXJhZGlvXVthcmlhLWNoZWNrZWQ9dHJ1ZV0gLnl0cC1tZW51aXRlbS1sYWJlbHtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0krUEhCaGRHZ2dabWxzYkQwaUkyWm1aaUlnWkQwaVRUa2dNVFl1TWlBMExqZ2dNVEpzTFRFdU5DQXhMalJNT1NBeE9TQXlNU0EzYkMweExqUXRNUzQwZWlJdlBqd3ZjM1puUGc9PSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246bGVmdCAxMHB4IGNlbnRlcjtiYWNrZ3JvdW5kLXNpemU6MThweCAxOHB4Oy1tb3otYmFja2dyb3VuZC1zaXplOjE4cHggMThweDstd2Via2l0LWJhY2tncm91bmQtc2l6ZToxOHB4IDE4cHh9Lnl0cC1iaWctbW9kZSAueXRwLW1lbnVpdGVtW3JvbGU9bWVudWl0ZW1yYWRpb11bYXJpYS1jaGVja2VkPXRydWVdIC55dHAtbWVudWl0ZW0tbGFiZWx7YmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IDE1cHggY2VudGVyO2JhY2tncm91bmQtc2l6ZToyN3B4IDI3cHg7LW1vei1iYWNrZ3JvdW5kLXNpemU6MjdweCAyN3B4Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOjI3cHggMjdweH0ueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtbWVudWl0ZW06Zm9jdXMgLnl0cC1tZW51aXRlbS1pY29uey13ZWJraXQtYm94LXNoYWRvdzppbnNldCAycHggMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KSxpbnNldCAwIC0ycHggMCByZ2JhKDI3LDEyNywyMDQsLjgpO2JveC1zaGFkb3c6aW5zZXQgMnB4IDJweCAwIHJnYmEoMjcsMTI3LDIwNCwuOCksaW5zZXQgMCAtMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KX0ueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtbWVudWl0ZW06Zm9jdXMgLnl0cC1tZW51aXRlbS1sYWJlbHstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAycHggMCByZ2JhKDI3LDEyNywyMDQsLjgpLGluc2V0IDAgLTJweCAwIHJnYmEoMjcsMTI3LDIwNCwuOCk7Ym94LXNoYWRvdzppbnNldCAwIDJweCAwIHJnYmEoMjcsMTI3LDIwNCwuOCksaW5zZXQgMCAtMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KX0ueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtbWVudWl0ZW06Zm9jdXMgLnl0cC1tZW51aXRlbS1sYWJlbDpmaXJzdC1jaGlsZHstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMnB4IDJweCAwIHJnYmEoMjcsMTI3LDIwNCwuOCksaW5zZXQgMCAtMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KTtib3gtc2hhZG93Omluc2V0IDJweCAycHggMCByZ2JhKDI3LDEyNywyMDQsLjgpLGluc2V0IDAgLTJweCAwIHJnYmEoMjcsMTI3LDIwNCwuOCl9Lnl0cC1wcm9iYWJseS1rZXlib2FyZC1mb2N1cyAueXRwLW1lbnVpdGVtOmZvY3VzIC55dHAtbWVudWl0ZW0tY29udGVudHstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgLTJweCAtMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KSxpbnNldCAwIDJweCAwIHJnYmEoMjcsMTI3LDIwNCwuOCk7Ym94LXNoYWRvdzppbnNldCAtMnB4IC0ycHggMCByZ2JhKDI3LDEyNywyMDQsLjgpLGluc2V0IDAgMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KX0ueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtbWVudWl0ZW1bcm9sZT1tZW51aXRlbXJhZGlvXTpmb2N1cyAueXRwLW1lbnVpdGVtLWxhYmVsey13ZWJraXQtYm94LXNoYWRvdzppbnNldCAycHggMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KSxpbnNldCAtMnB4IC0ycHggMCByZ2JhKDI3LDEyNywyMDQsLjgpO2JveC1zaGFkb3c6aW5zZXQgMnB4IDJweCAwIHJnYmEoMjcsMTI3LDIwNCwuOCksaW5zZXQgLTJweCAtMnB4IDAgcmdiYSgyNywxMjcsMjA0LC44KX0ueXRwLW1lbnVpdGVtLWNvbnRlbnR7Zm9udC1zaXplOjEwOSU7dGV4dC1hbGlnbjpyaWdodH0ueXRwLW1lbnVpdGVtLXN1YmxhYmVse2Zsb2F0OmxlZnR9Lnl0cC1tZW51LWxhYmVsLXNlY29uZGFyeSwueXRwLW1lbnVpdGVtLXN1YmxhYmVse2ZvbnQtc2l6ZTo5MSU7Y29sb3I6I2NjY30ueXRwLW1lbnVpdGVtW2FyaWEtaGFzcG9wdXA9dHJ1ZV0gLnl0cC1tZW51aXRlbS1jb250ZW50e2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IDlweCBjZW50ZXI7YmFja2dyb3VuZC1zaXplOjMycHggMzJweDstbW96LWJhY2tncm91bmQtc2l6ZTozMnB4IDMycHg7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MzJweCAzMnB4O3BhZGRpbmctcmlnaHQ6MzhweH0ueXRwLW1lbnVpdGVtW2FyaWEtaGFzcG9wdXA9dHJ1ZV0gLnl0cC1tZW51aXRlbS1jb250ZW50e2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSStQSEJoZEdnZ1ptbHNiRDBpSTJabVppSWdaRDBpYlRFeUxqVTVJREl3TGpNMElEUXVOVGd0TkM0MU9TMDBMalU0TFRRdU5UbE1NVFFnT1M0M05XdzJJRFl0TmlBMmVpSXZQand2YzNablBnPT0pfVtkaXI9cnRsXSAueXRwLW1lbnVpdGVtW2FyaWEtaGFzcG9wdXA9dHJ1ZV0gLnl0cC1tZW51aXRlbS1jb250ZW50e2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSStQSEJoZEdnZ1ptbHNiRDBpSTJabVppSWdaRDBpYlRFNUxqUXhJREl3TGpBNUxUUXVOVGd0TkM0MU9TQTBMalU0TFRRdU5UbE1NVGdnT1M0MWJDMDJJRFlnTmlBMmVpSXZQand2YzNablBnPT0pfS55dHAtYmlnLW1vZGUgLnl0cC1tZW51aXRlbVthcmlhLWhhc3BvcHVwPXRydWVdIC55dHAtbWVudWl0ZW0tY29udGVudHtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IDEzcHggY2VudGVyO2JhY2tncm91bmQtc2l6ZTo0OHB4IDQ4cHg7LW1vei1iYWNrZ3JvdW5kLXNpemU6NDhweCA0OHB4Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOjQ4cHggNDhweDtwYWRkaW5nLXJpZ2h0OjU3cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1tZW51aXRlbS1jb250ZW50e2ZvbnQtc2l6ZToxNHB4O2NvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10ZXh0LXNlY29uZGFyeSxyZ2JhKDI1NSwyNTUsMjU1LC43KSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1tZW51aXRlbVthcmlhLWhhc3BvcHVwPXRydWVdIC55dHAtbWVudWl0ZW0tY29udGVudHtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IDEycHggY2VudGVyO2JhY2tncm91bmQtc2l6ZToxOHB4IDE4cHg7LW1vei1iYWNrZ3JvdW5kLXNpemU6MThweCAxOHB4Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOjE4cHggMThweDtwYWRkaW5nLXJpZ2h0OjMycHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhkcFpIUm9QU0l5TkNJZ2FHVnBaMmgwUFNJeU5DSWdkbWxsZDBKdmVEMGlNQ0F3SURJMElESTBJajQ4Y0dGMGFDQm1hV3hzUFNJalptWm1JaUJtYVd4c0xXOXdZV05wZEhrOUlpNDNJaUJrUFNKdE9TNDBJREU0TGpRdExqY3RMamNnTlM0MkxUVXVOaTAxTGpjdE5TNDNMamN0TGpjZ05pNDBJRFl1TkhvaUx6NDhMM04yWno0PSl9Lnl0cC1kZWxoaS1tb2Rlcm4gW2Rpcj1ydGxdIC55dHAtbWVudWl0ZW1bYXJpYS1oYXNwb3B1cD10cnVlXSAueXRwLW1lbnVpdGVtLWNvbnRlbnR7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhkcFpIUm9QU0l5TkNJZ2FHVnBaMmgwUFNJeU5DSWdkbWxsZDBKdmVEMGlNQ0F3SURJMElESTBJajQ4Y0dGMGFDQm1hV3hzUFNJalptWm1JaUJtYVd4c0xXOXdZV05wZEhrOUlpNDNJaUJrUFNKTk1UUXVPVFlnTVRndU9UWWdPQ0F4TW13MkxqazJMVFl1T1RZdU56RXVOekZNT1M0ME1TQXhNbXcyTGpJMUlEWXVNalY2SWk4K1BDOXpkbWMrKX0ueXRwLW1lbnVpdGVtIHN1cHtsaW5lLWhlaWdodDowO2ZvbnQtc2l6ZTouOGVtO2ZvbnQtd2VpZ2h0OjUwMH0ueXRwLW1lbnVpdGVtLWxhYmVsLWNvdW50e2NvbG9yOiNjY2N9Lnl0cC1tZW51aXRlbXRpdGxle3BhZGRpbmc6MCAxNXB4O21heC13aWR0aDoyMDBweDt0ZXh0LWFsaWduOmNlbnRlcn0ueXRwLWJpZy1tb2RlIC55dHAtbWVudWl0ZW10aXRsZXtwYWRkaW5nOjAgMjJweDttYXgtd2lkdGg6MzAwcHh9Lnl0cC1tZW51aXRlbS1pbmxpbmUtc3VydmV5LXJlc3BvbnNle21hcmdpbi1sZWZ0Oi44ZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1tZW51aXRlbS1pbmxpbmUtc3VydmV5LXJlc3BvbnNlOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lnl0cC1tZW51aXRlbS1pbmxpbmUtc3VydmV5LXJlc3BvbnNlIHN2Z3toZWlnaHQ6MjBweDt3aWR0aDoyMHB4O21hcmdpbi1ib3R0b206LTRweH0ueXRwLW1lbnVpdGVtLWhpZ2hsaWdodGVke2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1zdWdnZXN0ZWQtYWN0aW9uKX0ueXRwLW1lbnVpdGVtLWhpZ2hsaWdodC10cmFuc2l0aW9uLWVuYWJsZWQueXRwLW1lbnVpdGVtOm5vdCgueXRwLW1lbnVpdGVtLWhpZ2hsaWdodGVkKXstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAzcyBsaW5lYXIgMXM7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDNzIGxpbmVhciAxc30ueXRwLW1lbnVpdGVtLXdpdGgtZm9vdGVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nLXRvcDoxNXB4fS55dHAtbWVudWl0ZW0tZm9vdGVye3BhZGRpbmctdG9wOjVweH0ueXRwLW1lbnVpdGVtLXNlY3Rpb24taGVhZGVyIC55dHAtbWVudWl0ZW0tbGFiZWx7Y29sb3I6I2VlZTtwYWRkaW5nOjhweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLW1lbnVpdGVtLXNlY3Rpb24taGVhZGVyIC55dHAtbWVudWl0ZW0tbGFiZWx7cGFkZGluZzowfS55dHAtcGFuZWx7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cmlnaHQ6MDtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW59Lnl0cC1wYW5lbHttaW4td2lkdGg6MjUwcHh9Lnl0cC1wYW5lbC1oZWFkZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4yKTtsaW5lLWhlaWdodDppbmhlcml0O2ZvbnQtc2l6ZToxMDklO2NvbG9yOiNlZWU7cGFkZGluZzo4cHggMDtoZWlnaHQ6NDBweDt3aGl0ZS1zcGFjZTpub3dyYXB9Lnl0cC1wYW5lbC1mb290ZXJ7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMik7bGluZS1oZWlnaHQ6aW5oZXJpdDtmb250LXNpemU6MTE4JTtmb250LXdlaWdodDo1MDA7Y29sb3I6I2VlZTtwYWRkaW5nOjE2cHggMDttaW4taGVpZ2h0OjQwcHg7dmVydGljYWwtYWxpZ246bWlkZGxlO3dpZHRoOjI1MHB4fS55dHAtcGFuZWwtZm9vdGVyLWNvbnRlbnR7bWFyZ2luOjAgMTBweH0ueXRwLXBhbmVsLWZvb3Rlci55dHAtcGFuZWwtaGlkZS1mb290ZXJ7ZGlzcGxheTpub25lfS5odG1sNS12aWRlby1wbGF5ZXIgLnl0cC1wYW5lbC1mb290ZXItY29udGVudC1saW5re2NvbG9yOiMxNjdhYzZ9Lnl0cC10b3VjaC1tb2RlIC55dHAtcGFuZWwtaGVhZGVye2hlaWdodDo0MHB4fS55dHAtYmlnLW1vZGUgLnl0cC1wYW5lbC1oZWFkZXJ7aGVpZ2h0OjQ5cHh9Lnl0cC1wYW5lbC1iYWNrLWJ1dHRvbi1jb250YWluZXJ7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NDhweDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDo0OHB4fS55dHAtcGFuZWwtYmFjay1idXR0b257YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXpNaUF6TWlJK1BIQmhkR2dnWm1sc2JEMGlJMlptWmlJZ1pEMGliVEU1TGpReElESXdMakE1TFRRdU5UZ3ROQzQxT1NBMExqVTRMVFF1TlRsTU1UZ2dPUzQxYkMwMklEWWdOaUEyZWlJdlBqd3ZjM1puUGc9PSk7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH0ueXRwLXBhbmVsLXRpdGxlOmhvdmVye2N1cnNvcjpwb2ludGVyfS55dHAtcGFuZWwtb3B0aW9uc3ttYXJnaW4tbGVmdDphdXRvfS55dHAtcGFuZWwtdGl0bGV7Zm9udC13ZWlnaHQ6NTAwfVtkaXI9cnRsXSAueXRwLXBhbmVsLXRpdGxle2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSStQSEJoZEdnZ1ptbHNiRDBpSTJabVppSWdaRDBpYlRFeUxqVTVJREl3TGpNMElEUXVOVGd0TkM0MU9TMDBMalU0TFRRdU5UbE1NVFFnT1M0M05XdzJJRFl0TmlBMmVpSXZQand2YzNablBnPT0pfS55dHAtYmlnLW1vZGUgLnl0cC1wYW5lbC10aXRsZXtiYWNrZ3JvdW5kLXNpemU6NDhweCA0OHB4Oy1tb3otYmFja2dyb3VuZC1zaXplOjQ4cHggNDhweDstd2Via2l0LWJhY2tncm91bmQtc2l6ZTo0OHB4IDQ4cHg7cGFkZGluZzowIDE1cHggMCA1MnB4fS55dHAtYmlnLW1vZGUueXRwLWRlbGhpLW1vZGVybiAueXRwLXBhbmVsLXRpdGxle3BhZGRpbmc6MCAxNXB4IDAgMH0ueXRwLXBhbmVsLW9wdGlvbnN7aGVpZ2h0OjEwMCU7cGFkZGluZzowIDEwcHg7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ueXRwLWJpZy1tb2RlIC55dHAtcGFuZWwtb3B0aW9uc3twYWRkaW5nOjAgMTVweH0ueXRwLXBhbmVsLW1lbnV7cGFkZGluZzo4cHggMDtkaXNwbGF5OnRhYmxlO3dpZHRoOjEwMCU7Y29sb3I6I2VlZTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbiwueXRwLWVtYmVkIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b257d2lkdGg6NDZweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXBsYXktYnV0dG9ue3dpZHRoOjU2cHg7aGVpZ2h0OjU2cHg7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXRvcDo4cHg7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLWxpZ2h0LHJnYmEoMCwwLDAsLjMpKTt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbiBzdmd7LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b257cGFkZGluZzowfS55dHAtZGVsaGktbW9kZXJuLWljb25zIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b24gc3Zne3BhZGRpbmc6MTBweH0ueXRwLWRlbGhpLW1vZGVybi1pY29ucy55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbiBzdmd7cGFkZGluZzoxOHB4fS55dHAtZGVsaGktbW9kZXJuLWljb25zLnl0cC1iaWctbW9kZS55dHAtYmlnLW1vZGUtY29uc2lzdGVudC1waWxsLWhlaWdodCAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXBsYXktYnV0dG9uIHN2Z3twYWRkaW5nOjEwcHh9Lnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b257d2lkdGg6NTJweDtoZWlnaHQ6NTJweDttYXJnaW4tdG9wOjZweH0ueXRwLWRlbGhpLW1vZGVybi1pY29ucy55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbiBzdmd7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtwYWRkaW5nOjE0cHh9Lnl0cC1kZWxoaS1tb2Rlcm4taWNvbnMueXRwLWJpZy1tb2RlLnl0cC14c21hbGwtd2lkdGgtbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXBsYXktYnV0dG9uIHN2Z3twYWRkaW5nOjEycHggMTBweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktbW9kZXJuLWNvbXBhY3QtY29udHJvbHMgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbnt3aWR0aDp2YXIoLS15dC1kZWxoaS1waWxsLWhlaWdodCw0OHB4KTtoZWlnaHQ6dmFyKC0teXQtZGVsaGktcGlsbC1oZWlnaHQsNDhweCk7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXRvcDp2YXIoLS15dC1kZWxoaS1waWxsLXRvcC1oZWlnaHQsMTJweCk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLWxpZ2h0LHJnYmEoMCwwLDAsLjMpKTt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLW1vZGVybi1jb21wYWN0LWNvbnRyb2xzIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b24gc3Zney13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZGVsaGktbW9kZXJuLWNvbXBhY3QtY29udHJvbHMgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbntwYWRkaW5nOjB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLW1vZGVybi1jb21wYWN0LWNvbnRyb2xzIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b24gc3Zne3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7cGFkZGluZzo4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLW1vZGVybi1jb21wYWN0LWNvbnRyb2xzLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbnt3aWR0aDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCw1NnB4KTtoZWlnaHQ6dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsNTZweCk7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXRvcDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLXRvcC1oZWlnaHQsMjBweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWRlbGhpLW1vZGVybi1jb21wYWN0LWNvbnRyb2xzLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbiBzdmd7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtwYWRkaW5nOjEycHh9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1sdW1pbm9zaXR5Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbntiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpsdW1pbm9zaXR5Oy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1kaWZmZXJlbmNlLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbntiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpkaWZmZXJlbmNlOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1leGNsdXNpb24ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXBsYXktYnV0dG9ue2JhY2tncm91bmQ6cmdiYSg4MCw4MCw4MCwuNik7YmFja2dyb3VuZC1ibGVuZC1tb2RlOmV4Y2x1c2lvbjstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpfS55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1wbGF5LWJ1dHRvbnt3aWR0aDo2OXB4fS55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b24tcGxheWxpc3R7d2lkdGg6NDBweH0ueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b24tcGxheWxpc3R7d2lkdGg6NjBweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGU6bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcGxheS1idXR0b24sLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXBsYXktYnV0dG9uLXBsYXlsaXN0e21hcmdpbi10b3A6MTJweDt3aWR0aDo3MnB4O2hlaWdodDo3MnB4fS55dHAtZW1iZWQueXRwLWVtYmVkLW1vYmlsZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAtcHJldi1idXR0b24sLnl0cC1lbWJlZC55dHAtZW1iZWQtbW9iaWxlLnl0cC1zbWFsbC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC1uZXh0LWJ1dHRvbiwueXRwLWVtYmVkLnl0cC1lbWJlZC1tb2JpbGUueXRwLXNtYWxsLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24ueXRwLXByZXYtYnV0dG9uLC55dHAtZW1iZWQueXRwLWVtYmVkLnl0cC1lbWJlZC1tb2JpbGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24ueXRwLW5leHQtYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLW5leHQtYnV0dG9uLC55dHAtcGxheS1idXR0b24sLnl0cC1wcmV2LWJ1dHRvbnstd2Via2l0LWJveC1mbGV4OjA7LXdlYmtpdC1mbGV4OjAgMCBhdXRvO2ZsZXg6MCAwIGF1dG99Lnl0cC1wbGF5bGlzdC1tZW51e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtib3R0b206MDt3aWR0aDo0MDBweDttYXgtd2lkdGg6MTAwJTt6LWluZGV4OjczO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtZW1iZWQtcGxheWxpc3QgLnl0cC1wbGF5bGlzdC1tZW51e2xlZnQ6YXV0bztyaWdodDowfS55dHAtYmlnLW1vZGUgLnl0cC1wbGF5bGlzdC1tZW51e3dpZHRoOjYwMHB4fVtkaXI9bHRyXSAueXRwLXBsYXlsaXN0LW1lbnVbYXJpYS1oaWRkZW49dHJ1ZV17LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfVtkaXI9bHRyXSAueXRwLWVtYmVkLXBsYXlsaXN0IC55dHAtcGxheWxpc3QtbWVudVthcmlhLWhpZGRlbj10cnVlXXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKX1bZGlyPXJ0bF0gLnl0cC1wbGF5bGlzdC1tZW51W2FyaWEtaGlkZGVuPXRydWVdey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX1bZGlyPXJ0bF0gLnl0cC1lbWJlZC1wbGF5bGlzdCAueXRwLXBsYXlsaXN0LW1lbnVbYXJpYS1oaWRkZW49dHJ1ZV17LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSl9Lnl0cC1wbGF5bGlzdC1tZW51LWhlYWRlcntwYWRkaW5nOjE1cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzQ0NH0ueXRwLWJpZy1tb2RlIC55dHAtcGxheWxpc3QtbWVudS1oZWFkZXJ7cGFkZGluZzoyM3B4fS55dHAtcGxheWxpc3QtbWVudS10aXRsZXtoZWlnaHQ6MjBweDtsaW5lLWhlaWdodDoyMHB4O3BhZGRpbmctcmlnaHQ6MTVweDtmb250LXNpemU6MTM2JTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWJpZy1tb2RlIC55dHAtcGxheWxpc3QtbWVudS10aXRsZXtoZWlnaHQ6MzBweDtsaW5lLWhlaWdodDozMHB4O3BhZGRpbmctcmlnaHQ6MjNweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLXBsYXlsaXN0LW1lbnUtc3VidGl0bGV7Y29sb3I6I2I4YjhiODtsaW5lLWhlaWdodDoxN3B4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtYmlnLW1vZGUgLnl0cC1wbGF5bGlzdC1tZW51LXN1YnRpdGxle2xpbmUtaGVpZ2h0OjI2cHh9Lnl0cC1wbGF5bGlzdC1tZW51LWNsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxNXB4O3JpZ2h0OjE1cHg7d2lkdGg6MjRweDtoZWlnaHQ6MjRweH0ueXRwLWJpZy1tb2RlIC55dHAtcGxheWxpc3QtbWVudS1jbG9zZXt0b3A6MjNweDtyaWdodDoyM3B4O3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHh9Lnl0cC1wbGF5bGlzdC1tZW51LWNsb3NlIHBhdGh7ZmlsbDojYWFhfS55dHAtcGxheWxpc3QtbWVudS1jbG9zZTpob3ZlciBwYXRoe2ZpbGw6I2ZmZn0ueXRwLXBsYXlsaXN0LW1lbnUtaXRlbXN7cG9zaXRpb246YWJzb2x1dGU7dG9wOjY4cHg7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7b3ZlcmZsb3c6YXV0b30ueXRwLWJpZy1tb2RlIC55dHAtcGxheWxpc3QtbWVudS1pdGVtc3t0b3A6MTAzcHh9Lnl0cC1jaHJvbWUtdG9wIC55dHAtcGxheWxpc3QtbWVudS1idXR0b24sLnl0cC1lbWJlZC1wbGF5bGlzdC55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtcGxheWxpc3QtbWVudS1idXR0b257d2lkdGg6YXV0bztoZWlnaHQ6YXV0b30ueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykueXRwLXNtYWxsLW1vZGUgLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbntwYWRkaW5nLXRvcDoxNnB4fS55dHAtcGxheWxpc3QtbWVudS1idXR0b24taWNvbnt3aWR0aDozNnB4O2hlaWdodDozNnB4fS55dHAtZW1iZWQtcGxheWxpc3QgLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbi1pY29ue21hcmdpbjphdXRvfS55dHAtYmlnLW1vZGUgLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbi1pY29ue3dpZHRoOjU0cHg7aGVpZ2h0OjU0cHh9Lnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbi10ZXh0e3BhZGRpbmctcmlnaHQ6NnB4O2xpbmUtaGVpZ2h0OjM2cHg7b3BhY2l0eToxfS55dHAtZW1iZWQtcGxheWxpc3Q6bm90KC55dHAtc21hbGwtbW9kZSkgLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbnttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4fS55dHAtZW1iZWQtcGxheWxpc3QgLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbi10ZXh0e3BhZGRpbmc6MDtsaW5lLWhlaWdodDppbmhlcml0O29wYWNpdHk6MTtmb250LXdlaWdodDo1MDA7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE0cHh9Lnl0cC1lbWJlZC1wbGF5bGlzdCAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLWljb24sLnl0cC1lbWJlZC1wbGF5bGlzdCAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLXRleHR7ZGlzcGxheTpibG9ja30ueXRwLWVtYmVkLXBsYXlsaXN0Lnl0cC1zbWFsbC1tb2RlIC55dHAtcGxheWxpc3QtbWVudS1idXR0b24tdGV4dCwueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLXRpbnkgLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbi10ZXh0e2Rpc3BsYXk6Tm9uZX0ueXRwLWJpZy1tb2RlIC55dHAtcGxheWxpc3QtbWVudS1idXR0b24tdGV4dHtsaW5lLWhlaWdodDo1NHB4fS55dHAtZW1iZWQtcGxheWxpc3QueXRwLWJpZy1tb2RlIC55dHAtcGxheWxpc3QtbWVudS1idXR0b24tdGV4dHtsaW5lLWhlaWdodDppbmhlcml0O2ZvbnQtc2l6ZToyMHB4fS55dHAtcGxheWxpc3QtbWVudS1idXR0b24taWNvbiwueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLXRleHR7dmVydGljYWwtYWxpZ246bWlkZGxlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dHAtcGxheWxpc3QtbWVudS1idXR0b257bWluLXdpZHRoOjQ4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlIC55dHAtcGxheWxpc3QtbWVudS1idXR0b257bWFyZ2luLXRvcDo5cHg7aGVpZ2h0OjU2cHg7d2lkdGg6NTZweDtwYWRkaW5nOjB9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvdzttaW4td2lkdGg6MzZweDttaW4taGVpZ2h0OjM2cHg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW4tdG9wOjlweDtib3JkZXItcmFkaXVzOjI3cHg7bWF4LXdpZHRoOjQwMHB4Oy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bSxyZ2JhKDAsMCwwLC42KSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wbGF5bGlzdC1tZW51LWJ1dHRvbiAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uLWljb257LXdlYmtpdC1ib3gtZmxleDowOy13ZWJraXQtZmxleDpub25lO2ZsZXg6bm9uZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uIC55dHAtcGxheWxpc3QtbWVudS1idXR0b24tdGV4dCwueXRwLWRlbGhpLW1vZGVybiAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9uIC55dHAtcGxheWxpc3QtbWVudS1idXR0b24tdGl0bGV7ZGlzcGxheTpub25lfS55dHAtZGVsaGktbW9kZXJuIC55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtcGxheWxpc3QtbWVudS1idXR0b257cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDp1bnNldDt6LWluZGV4OjU4fS55dHAtaGlkZS1pbmZvLWJhciAueXRwLW92ZXJsYXlzLWNvbnRhaW5lciAueXRwLXBsYXlsaXN0LW1lbnUtYnV0dG9ue2Rpc3BsYXk6bm9uZX0ueXRwLXNjcnViYmVyLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTRweDtsZWZ0Oi02LjVweDt6LWluZGV4OjQzfS55dHAtZGVsaGktbW9kZXJuIC55dHAtc2NydWJiZXItY29udGFpbmVye3RvcDotM3B4O2xlZnQ6LTZweH0ueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXJ7dG9wOi05LjVweDtsZWZ0Oi0xMnB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtZGVjb3JhdGVkLXNjcnViYmVyLWNvbnRhaW5lcnt0b3A6LTlweDtsZWZ0Oi0xMnB4fS55dHAtYmlnLW1vZGUgLnl0cC1zY3J1YmJlci1jb250YWluZXJ7dG9wOi02cHg7bGVmdDotMTBweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1zY3J1YmJlci1jb250YWluZXJ7dG9wOi04cHg7bGVmdDotMTBweH0ueXRwLXNjcnViYmVyLWJ1dHRvbntoZWlnaHQ6MTNweDt3aWR0aDoxM3B4O2JvcmRlci1yYWRpdXM6Ni41cHg7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtc2NydWJiZXItYnV0dG9ue2hlaWdodDoxMnB4O3dpZHRoOjEycHg7Ym9yZGVyLXJhZGl1czo2cHh9Lnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItY29udGFpbmVyIC55dHAtc2NydWJiZXItYnV0dG9ue3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0qIC55dHAtc2NydWJiZXItYnV0dG9uLnl0cC1oaWRlLXNjcnViYmVyLWJ1dHRvbiwueXRwLWRlbGhpLW1vZGVybiAueXRwLWRyYWcgLnl0cC1zY3J1YmJlci1idXR0b24ueXRwLWhpZGUtc2NydWJiZXItYnV0dG9uLC55dHAtZGVsaGktbW9kZXJuIC55dHAtc2NydWJiZXItYnV0dG9uLnl0cC1oaWRlLXNjcnViYmVyLWJ1dHRvbnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTstbXMtdHJhbnNmb3JtOnNjYWxlKDApO3RyYW5zZm9ybTpzY2FsZSgwKX0ueXRwLWRyYWcgLnl0cC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1zY3J1YmJlci1idXR0b24ueXRwLXNjcnViYmVyLWJ1dHRvbi1ob3ZlciwueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLXNjcnViYmVyLWNvbnRhaW5lciAueXRwLXNjcnViYmVyLWJ1dHRvbi55dHAtc2NydWJiZXItYnV0dG9uLWhvdmVyey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuNTQpOy1tcy10cmFuc2Zvcm06c2NhbGUoMS41NCk7dHJhbnNmb3JtOnNjYWxlKDEuNTQpfS55dHAtYmlnLW1vZGUgLnl0cC1zY3J1YmJlci1idXR0b257aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtib3JkZXItcmFkaXVzOjEwcHg7Ym90dG9tOjIwcHg7bGVmdDoxMHB4fS55dHAtZGVjb3JhdGVkLXNjcnViYmVyLWJ1dHRvbntkaXNwbGF5Om5vbmU7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItYnV0dG9ue2Rpc3BsYXk6YmxvY2t9LnlwYy1sb2FkZWQgLnl0cC1zY3J1YmJlci1idXR0b24ueXRwLXN3YXRjaC1iYWNrZ3JvdW5kLWNvbG9ye2JhY2tncm91bmQtY29sb3I6IzI3OTNlNn0uYWQtaW50ZXJydXB0aW5nIC55dHAtc2NydWJiZXItYnV0dG9uLnl0cC1zd2F0Y2gtYmFja2dyb3VuZC1jb2xvcntiYWNrZ3JvdW5kLWNvbG9yOiNmYzB9Lnl0cC1wcm9iYWJseS1rZXlib2FyZC1mb2N1cyAueXRwLXByb2dyZXNzLWJhcjpmb2N1c3std2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMnB4IHJnYmEoMjcsMTI3LDIwNCwuOCk7Ym94LXNoYWRvdzowIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC44KX0ueXRwLWRyYWcgLnl0cC1zY3J1YmJlci1idXR0b24sLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLnl0cC1zY3J1YmJlci1idXR0b24sLnl0cC10b3VjaC1tb2RlIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtc2NydWJiZXItYnV0dG9uey13ZWJraXQtdHJhbnNmb3JtOm5vbmU7LW1zLXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWRyYWcgLnl0cC1zY3J1YmJlci1idXR0b24sLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLnl0cC1zY3J1YmJlci1idXR0b24sLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b3VjaC1tb2RlIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtc2NydWJiZXItYnV0dG9uey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuNjcpOy1tcy10cmFuc2Zvcm06c2NhbGUoMS42Nyk7dHJhbnNmb3JtOnNjYWxlKDEuNjcpOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRyYWcgLnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItY29udGFpbmVyIC55dHAtc2NydWJiZXItYnV0dG9uLC55dHAtZHJhZyAueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1zY3J1YmJlci1idXR0b24ueXRwLXNjcnViYmVyLWJ1dHRvbi1ob3ZlciwueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1zY3J1YmJlci1idXR0b24sLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItY29udGFpbmVyIC55dHAtc2NydWJiZXItYnV0dG9uLnl0cC1zY3J1YmJlci1idXR0b24taG92ZXJ7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4xNjY2NjY2NjY3KTstbXMtdHJhbnNmb3JtOnNjYWxlKDEuMTY2NjY2NjY2Nyk7dHJhbnNmb3JtOnNjYWxlKDEuMTY2NjY2NjY2Nyk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtZHJhZyAueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1zY3J1YmJlci1idXR0b24sLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1kcmFnIC55dHAtZGVjb3JhdGVkLXNjcnViYmVyLWNvbnRhaW5lciAueXRwLXNjcnViYmVyLWJ1dHRvbi55dHAtc2NydWJiZXItYnV0dG9uLWhvdmVyLC55dHAtZGVsaGktbW9kZXJuIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtZGVjb3JhdGVkLXNjcnViYmVyLWNvbnRhaW5lciAueXRwLXNjcnViYmVyLWJ1dHRvbiwueXRwLWRlbGhpLW1vZGVybiAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1zY3J1YmJlci1idXR0b24ueXRwLXNjcnViYmVyLWJ1dHRvbi1ob3Zlcnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjE2NjY2NjY2NjcpOy1tcy10cmFuc2Zvcm06c2NhbGUoMS4xNjY2NjY2NjY3KTt0cmFuc2Zvcm06c2NhbGUoMS4xNjY2NjY2NjY3KTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1zY3J1YmJlci1wdWxsLWluZGljYXRvcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjQyO2JvdHRvbToxNi45cHg7bGVmdDo2LjVweDstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0ueXRwLXNjcnViYmVyLXB1bGwtaW5kaWNhdG9yOmFmdGVyLC55dHAtc2NydWJiZXItcHVsbC1pbmRpY2F0b3I6YmVmb3Jle2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjt0b3A6MDtsZWZ0OjA7b3BhY2l0eTowO3dpZHRoOjYuNXB4O2hlaWdodDo2LjVweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjJweCAwIDAgMnB4O2JvcmRlci1jb2xvcjojZWFlYWVhfS55dHAtYmlnLW1vZGUgLnl0cC1zY3J1YmJlci1wdWxsLWluZGljYXRvcjphZnRlciwueXRwLWJpZy1tb2RlIC55dHAtc2NydWJiZXItcHVsbC1pbmRpY2F0b3I6YmVmb3Jle3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHh9Lnl0cC1zY3J1YmJlci1wdWxsLWluZGljYXRvcjphZnRlcnstd2Via2l0LXRyYW5zaXRpb246YWxsIC4xczt0cmFuc2l0aW9uOmFsbCAuMXN9Lnl0cC1zY3J1YmJlci1wdWxsLWluZGljYXRvcjpiZWZvcmV7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuMnM7dHJhbnNpdGlvbjphbGwgLjJzfS55dHAtY2hhcHRlci1ob3Zlci1jb250YWluZXIsLnl0cC1jaGFwdGVycy1jb250YWluZXJ7ei1pbmRleDozMjtwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0OjA7aGVpZ2h0OjEwMCV9Lnl0cC1jaGFwdGVycy1jb250YWluZXJ7d2lkdGg6MTAwJX0ueXRwLWNoYXB0ZXItaG92ZXItY29udGFpbmVye2Zsb2F0OmxlZnR9Lnl0cC1wcm9ncmVzcy1saXN0e3otaW5kZXg6Mzk7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4yKTtoZWlnaHQ6MTAwJTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjYpOy1tcy10cmFuc2Zvcm06c2NhbGVZKC42KTt0cmFuc2Zvcm06c2NhbGVZKC42KTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7cG9zaXRpb246cmVsYXRpdmV9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcm9ncmVzcy1saXN0e292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnJnYmEoNDAsNDAsNDAsLjYpOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjY2Nyk7LW1zLXRyYW5zZm9ybTpzY2FsZVkoLjY2Nyk7dHJhbnNmb3JtOnNjYWxlWSguNjY3KX0ueXRwLWRlbGhpLW1vZGVybi13aXRoLWx1bWlub3NpdHkueXRwLWRlbGhpLW1vZGVybiAueXRwLXByb2dyZXNzLWxpc3R7YmFja2dyb3VuZDpyZ2JhKDgwLDgwLDgwLC42KTtiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6bHVtaW5vc2l0eX0ueXRwLWRlbGhpLW1vZGVybi13aXRoLWRpZmZlcmVuY2UueXRwLWRlbGhpLW1vZGVybiAueXRwLXByb2dyZXNzLWxpc3R7YmFja2dyb3VuZDpyZ2JhKDgwLDgwLDgwLC42KTtiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6ZGlmZmVyZW5jZX0ueXRwLWRlbGhpLW1vZGVybi13aXRoLWV4Y2x1c2lvbi55dHAtZGVsaGktbW9kZXJuIC55dHAtcHJvZ3Jlc3MtbGlzdHtiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpleGNsdXNpb259Lnl0cC1iaWctbW9kZSAueXRwLXByb2dyZXNzLWxpc3R7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtLjVweCkgc2NhbGVZKC42MjUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtLjVweCkgc2NhbGVZKC42MjUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0uNXB4KSBzY2FsZVkoLjYyNSl9Lnl0cC1kcmFnIC55dHAtcHJvZ3Jlc3MtbGlzdCwueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLXByb2dyZXNzLWxpc3QsLnl0cC10b3VjaC1tb2RlIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtcHJvZ3Jlc3MtbGlzdHstd2Via2l0LXRyYW5zZm9ybTpub25lOy1tcy10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLnl0cC1wcm9ncmVzcy1saXN0LC55dHAtZGVsaGktbW9kZXJuIC55dHAtdG91Y2gtbW9kZSAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLXByb2dyZXNzLWxpc3QsLnl0cC1kcmFnIC55dHAtcHJvZ3Jlc3MtbGlzdHstd2Via2l0LXRyYW5zZm9ybTpub25lOy1tcy10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kcmFnIC55dHAtZXhwLWNoYXB0ZXItaG92ZXItZWZmZWN0LC55dHAtZXhwLWNoYXB0ZXItaG92ZXItY29udGFpbmVyOmhvdmVyLC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtZXhwLWNoYXB0ZXItaG92ZXItZWZmZWN0LC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLnl0cC10aW1lZC1tYXJrZXJzLWVuYWJsZWQgLnl0cC1wcm9ncmVzcy1saXN0ey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgxLjgpOy1tcy10cmFuc2Zvcm06c2NhbGVZKDEuOCk7dHJhbnNmb3JtOnNjYWxlWSgxLjgpOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyIC55dHAtZHJhZyAueXRwLWV4cC1jaGFwdGVyLWhvdmVyLWVmZmVjdCwueXRwLWRlbGhpLW1vZGVybi55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtZXhwLWNoYXB0ZXItaG92ZXItZWZmZWN0LC55dHAtZGVsaGktbW9kZXJuLnl0cC1wcm9ncmVzcy1iYXItaG92ZXIgLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkueXRwLXRpbWVkLW1hcmtlcnMtZW5hYmxlZCAueXRwLXByb2dyZXNzLWxpc3R7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVZKDEuNjY3KTstbXMtdHJhbnNmb3JtOnNjYWxlWSgxLjY2Nyk7dHJhbnNmb3JtOnNjYWxlWSgxLjY2Nyk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtZXhwLWNoYXB0ZXItaG92ZXItY29udGFpbmVyOmhvdmVyLC55dHAtZGVsaGktbW9kZXJuIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtZXhwLWNoYXB0ZXItaG92ZXItZWZmZWN0LC55dHAtZGVsaGktbW9kZXJuIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLnl0cC10aW1lZC1tYXJrZXJzLWVuYWJsZWQgLnl0cC1wcm9ncmVzcy1saXN0ey13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSB1bnNldDt0cmFuc2l0aW9uOnRyYW5zZm9ybSB1bnNldCwtd2Via2l0LXRyYW5zZm9ybSB1bnNldH0ueXRwLXJlcGVhdGluZy1jaGFwdGVyey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgxLjgpOy1tcy10cmFuc2Zvcm06c2NhbGVZKDEuOCk7dHJhbnNmb3JtOnNjYWxlWSgxLjgpfS55dHAtYm91bmQtdGltZS1sZWZ0LC55dHAtYm91bmQtdGltZS1yaWdodHtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5Om5vbmU7dG9wOi0yOXB4O3otaW5kZXg6Mjk7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI4LDI4LDI4LC45KTt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojZTNlM2UzO3BhZGRpbmc6NXB4IDlweDtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGVhc2UtaW47dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBlYXNlLWlufS55dHAtYmlnLW1vZGUgLnl0cC1ib3VuZC10aW1lLWxlZnQsLnl0cC1iaWctbW9kZSAueXRwLWJvdW5kLXRpbWUtcmlnaHR7dG9wOi0zNnB4fS55dHAtYm91bmQtdGltZS1sZWZ0e2xlZnQ6MH0ueXRwLWJvdW5kLXRpbWUtcmlnaHR7cmlnaHQ6MH0ueXRwLWJvdW5kLXRpbWUtbGVmdDphZnRlciwueXRwLWJvdW5kLXRpbWUtcmlnaHQ6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtib3R0b206LTVweDt3aWR0aDowO2hlaWdodDowO2JvcmRlci1zdHlsZTpzb2xpZH0ueXRwLWJvdW5kLXRpbWUtbGVmdDphZnRlcntsZWZ0OjA7Ym9yZGVyLXdpZHRoOjVweCA1cHggMCAwO2JvcmRlci1jb2xvcjpyZ2JhKDI4LDI4LDI4LC45KSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH0ueXRwLWJvdW5kLXRpbWUtcmlnaHQ6YWZ0ZXJ7cmlnaHQ6MDtib3JkZXItd2lkdGg6MCA1cHggNXB4IDA7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHJnYmEoMjgsMjgsMjgsLjkpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50fS55dHAtMTVtLXByb2dyZXNzLC55dHAtMW0tcHJvZ3Jlc3MsLnl0cC0zMG0tcHJvZ3Jlc3MsLnl0cC02MG0tcHJvZ3Jlc3MsLnl0cC1hZC1wcm9ncmVzcywueXRwLWNsaXAtZW5kLWV4Y2x1ZGUsLnl0cC1jbGlwLXN0YXJ0LWV4Y2x1ZGUsLnl0cC1ob3Zlci1wcm9ncmVzcywueXRwLWxvYWQtcHJvZ3Jlc3MsLnl0cC1wbGF5LXByb2dyZXNzLC55dHAtcHJvZ3Jlc3MtbGluZWFyLWxpdmUtYnVmZmVyLC55dHAtdGltZWQtbWFya2Vycy1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMDstbXMtdHJhbnNmb3JtLW9yaWdpbjowIDA7dHJhbnNmb3JtLW9yaWdpbjowIDB9Lnl0cC10aW1lZC1tYXJrZXJzLWNvbnRhaW5lcnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjYpOy1tcy10cmFuc2Zvcm06c2NhbGVZKC42KTt0cmFuc2Zvcm06c2NhbGVZKC42KTt0b3A6MXB4O3otaW5kZXg6NDB9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10aW1lZC1tYXJrZXJzLWNvbnRhaW5lcnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjY2Nyk7LW1zLXRyYW5zZm9ybTpzY2FsZVkoLjY2Nyk7dHJhbnNmb3JtOnNjYWxlWSguNjY3KX0ueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXIgLnl0cC10aW1lZC1tYXJrZXJzLWNvbnRhaW5lcnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoMS44KTstbXMtdHJhbnNmb3JtOnNjYWxlWSgxLjgpO3RyYW5zZm9ybTpzY2FsZVkoMS44KTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dG9wOi0ycHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOmhvdmVyIC55dHAtdGltZWQtbWFya2Vycy1jb250YWluZXJ7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVZKDEuNjY3KTstbXMtdHJhbnNmb3JtOnNjYWxlWSgxLjY2Nyk7dHJhbnNmb3JtOnNjYWxlWSgxLjY2Nyk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3ZlciAueXRwLXRpbWVkLW1hcmtlci55dHAtdGltZWQtbWFya2VyLWhvdmVyLC55dHAtcHJvZ3Jlc3MtYmFyLWhvdmVyIC55dHAtdGltZWQtbWFya2VyLnl0cC10aW1lZC1tYXJrZXItaG92ZXJ7d2lkdGg6OXB4O2hlaWdodDozcHg7Ym90dG9tOjFweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXIgLnl0cC10aW1lZC1tYXJrZXIueXRwLXRpbWVkLW1hcmtlci1ob3ZlciwueXRwLWRlbGhpLW1vZGVybiAueXRwLXByb2dyZXNzLWJhci1ob3ZlciAueXRwLXRpbWVkLW1hcmtlci55dHAtdGltZWQtbWFya2VyLWhvdmVye3dpZHRoOjEycHg7aGVpZ2h0OjQuOHB4O2JvdHRvbTouNnB4fS55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpob3ZlciAueXRwLXRpbWVkLW1hcmtlcnt3aWR0aDo1cHg7aGVpZ2h0OjEuNjdweDtib3R0b206MS41cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOmhvdmVyIC55dHAtdGltZWQtbWFya2Vye3dpZHRoOjZweDtoZWlnaHQ6Mi40cHg7Ym90dG9tOjJweH0ueXRwLXByb2dyZXNzLWJhci1zdGFydHtib3JkZXItcmFkaXVzOjNweCAwIDAgM3B4fS55dHAtcHJvZ3Jlc3MtYmFyLWVuZHtib3JkZXItcmFkaXVzOjAgM3B4IDNweCAwfS55dHAtcHJvZ3Jlc3MtYmFyLXN0YXJ0Lnl0cC1wcm9ncmVzcy1iYXItZW5ke2JvcmRlci1yYWRpdXM6M3B4fS55dHAtdGltZWQtbWFya2Vye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO3dpZHRoOjNweDtoZWlnaHQ6M3B4O2JvdHRvbToxcHg7Ym9yZGVyLXJhZGl1czo1MCU7b3BhY2l0eToxfS55dHAtZGVsaGktbW9kZXJuIC55dHAtdGltZWQtbWFya2Vye2JvdHRvbToycHh9Lnl0cC1jbGlwLWVuZC1leGNsdWRlLC55dHAtY2xpcC1zdGFydC1leGNsdWRle2Rpc3BsYXk6bm9uZTt6LWluZGV4OjM3O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1jbGlwLWVuZC1lbmFibGVkIC55dHAtY2xpcC1lbmQtZXhjbHVkZSwueXRwLWNsaXAtc3RhcnQtZW5hYmxlZCAueXRwLWNsaXAtc3RhcnQtZXhjbHVkZXtkaXNwbGF5OmJsb2NrfS55dHAtbG9vcC1yYW5nZS1lbmFibGVkIC55dHAtY2xpcC1lbmQsLnl0cC1sb29wLXJhbmdlLWVuYWJsZWQgLnl0cC1jbGlwLXN0YXJ0e3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0cC1jbGlwLWhvdmVyIC55dHAtY2xpcC1lbmQtZXhjbHVkZSwueXRwLWNsaXAtaG92ZXIgLnl0cC1jbGlwLXN0YXJ0LWV4Y2x1ZGV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1wcm9ncmVzcy1saW5lYXItbGl2ZS1idWZmZXJ7ei1pbmRleDo0NTtiYWNrZ3JvdW5kOiNjMDA7b3BhY2l0eTowfS55dHAtZW5hYmxlLWxpdmUtYnVmZmVyIC55dHAtcHJvZ3Jlc3MtbGluZWFyLWxpdmUtYnVmZmVye29wYWNpdHk6LjZ9Lnl0cC1hZC1wcm9ncmVzc3t6LWluZGV4OjM2O2JhY2tncm91bmQ6I2ZjMH0ueXRwLWxvYWQtcHJvZ3Jlc3N7ei1pbmRleDozMztiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjQpfS55dHAtbG9hZC1wcm9ncmVzcy55dHAtZmFzdC1sb2Fke2JhY2tncm91bmQ6IzAwODM4Zn0ueXRwLXBsYXktcHJvZ3Jlc3N7ei1pbmRleDozNDtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLHJpZ2h0IHRvcCxjb2xvci1zdG9wKDgwJSwjZjAzKSx0bygjZmYyNzkxKSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCNmMDMgODAlLCNmZjI3OTEpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCNmMDMgODAlLCNmZjI3OTEpfS55cGMtbG9hZGVkIC55dHAtcGxheS1wcm9ncmVzcy55dHAtc3dhdGNoLWJhY2tncm91bmQtY29sb3J7YmFja2dyb3VuZDojMjc5M2U2fS5hZC1pbnRlcnJ1cHRpbmcgLnl0cC1wbGF5LXByb2dyZXNzLnl0cC1zd2F0Y2gtYmFja2dyb3VuZC1jb2xvcntiYWNrZ3JvdW5kOiNmYzB9Lnl0cC1ob3Zlci1wcm9ncmVzc3t6LWluZGV4OjM1O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMTI1KTtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1wcm9ncmVzcy1iYXItaG92ZXIgLnl0cC1ob3Zlci1wcm9ncmVzc3tvcGFjaXR5OjF9Lnl0cC1kZWxoaS1tb2Rlcm4uYWQtaW50ZXJydXB0aW5nIC55dHAtbG9hZC1wcm9ncmVzcywueXRwLWVuYWJsZS1saXZlLWJ1ZmZlciAueXRwLWhvdmVyLXByb2dyZXNzLC55dHAtZW5hYmxlLWxpdmUtYnVmZmVyIC55dHAtbG9hZC1wcm9ncmVzc3tvcGFjaXR5OjB9Lnl0cC1ob3Zlci1wcm9ncmVzcy1saWdodHtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjUpfS55dHAtMTVtLXByb2dyZXNzLC55dHAtMW0tcHJvZ3Jlc3MsLnl0cC0zMG0tcHJvZ3Jlc3MsLnl0cC02MG0tcHJvZ3Jlc3N7d2lkdGg6MXB4O2JhY2tncm91bmQ6IzAwMDt6LWluZGV4OjM2fS55dHAtMW0tcHJvZ3Jlc3N7aGVpZ2h0OjMwJX0ueXRwLTE1bS1wcm9ncmVzc3toZWlnaHQ6NTAlfS55dHAtMzBtLXByb2dyZXNze2hlaWdodDo1NSV9Lnl0cC02MG0tcHJvZ3Jlc3N7aGVpZ2h0OjYwJX0ueXRwLWNsaXAtZW5kLC55dHAtY2xpcC1zdGFydHtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTRweDtoZWlnaHQ6MTRweDtib3R0b206LTQuNXB4O21hcmdpbi1sZWZ0Oi03cHg7ei1pbmRleDo0NDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjIxNDI4NTcxNDMpOy1tcy10cmFuc2Zvcm06c2NhbGVZKC4yMTQyODU3MTQzKTt0cmFuc2Zvcm06c2NhbGVZKC4yMTQyODU3MTQzKTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1iaWctbW9kZSAueXRwLWNsaXAtZW5kLC55dHAtYmlnLW1vZGUgLnl0cC1jbGlwLXN0YXJ0e3dpZHRoOjIxcHg7aGVpZ2h0OjIxcHg7Ym90dG9tOi02LjVweDttYXJnaW4tbGVmdDotMTAuNXB4Oy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSguMjM4MDk1MjM4KTstbXMtdHJhbnNmb3JtOnNjYWxlWSguMjM4MDk1MjM4KTt0cmFuc2Zvcm06c2NhbGVZKC4yMzgwOTUyMzgpfS55dHAtZHJhZyAueXRwLWNsaXAtZW5kLC55dHAtZHJhZyAueXRwLWNsaXAtc3RhcnQsLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLnl0cC1jbGlwLWVuZCwueXRwLXByb2dyZXNzLWJhci1jb250YWluZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLWNsaXAtc3RhcnQsLnl0cC10b3VjaC1tb2RlIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtY2xpcC1lbmQsLnl0cC10b3VjaC1tb2RlIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtY2xpcC1zdGFydHstd2Via2l0LXRyYW5zZm9ybTpub25lOy1tcy10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1jbGlwLWVuZCBzdmcsLnl0cC1jbGlwLXN0YXJ0IHN2Z3tkaXNwbGF5OmJsb2NrfS55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7Ym90dG9tOjQ3cHg7aGVpZ2h0OjVweH0ueXRwLWRlbGhpLW1vZGVybjpub3QoLnl0cC1wbGF5ZXItbWluaW1pemVkKSAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXJ7ei1pbmRleDo2MDtib3R0b206dmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCw3MnB4KTtoZWlnaHQ6NnB4fS55dHAteHNtYWxsLXdpZHRoLW1vZGUueXRwLWRlbGhpLW1vZGVybjpub3QoLnl0cC1wbGF5ZXItbWluaW1pemVkKSAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXJ7Ym90dG9tOnZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQteHNtYWxsLXdpZHRoLW1vZGUsNjRweCl9Lnl0cC1zbWFsbC1tb2RlIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcntib3R0b206MzZweDtoZWlnaHQ6NXB4fS55dHAtZW1iZWQgLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVye2JvdHRvbTozOXB4fS55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pe2N1cnNvcjpwb2ludGVyfS55dHAtYmlnLW1vZGUgLnl0cC1wcm9ncmVzcy1iYXItY29udGFpbmVye2JvdHRvbTo1Mi41cHg7aGVpZ2h0OjhweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGU6bm90KC55dHAteHNtYWxsLXdpZHRoLW1vZGUpIC55dHAtcHJvZ3Jlc3MtYmFyLWNvbnRhaW5lcntib3R0b206dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCw5NnB4KX0ueXRwLXByb2dyZXNzLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OjMxO291dGxpbmU6bm9uZX0ueXRwLWhlYXQtbWFwLXBsYXllZF9iYXIueXRwLWhlYXQtbWFwLnl0cC1wcm9ncmVzcy1iYXItaG92ZXIgLnl0cC1wcm9ncmVzcy1iYXJ7b3BhY2l0eTowfS55dHAtbW9iaWxlIC55dHAtcHJvZ3Jlc3MtYmFye3BhZGRpbmctYm90dG9tOjEwcHh9Lnl0cC1wcm9ncmVzcy1iYXItcGFkZGluZ3twb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDoxNnB4O2JvdHRvbTowO3otaW5kZXg6Mjh9Lnl0cC1iaWctbW9kZSAueXRwLXByb2dyZXNzLWJhci1wYWRkaW5ne2hlaWdodDoyNHB4fS55dHAtY2hhcHRlci1ob3Zlci1jb250YWluZXI6aG92ZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLXByb2dyZXNzLWJhci1wYWRkaW5ne2hlaWdodDoyMnB4O2JvdHRvbTotNnB4fS55dHAtYmlnLW1vZGU6bm90KC55dHAtdG91Y2gtbW9kZSkgLnl0cC1jaGFwdGVyLWhvdmVyLWNvbnRhaW5lcjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC55dHAtcHJvZ3Jlc3MtYmFyLXBhZGRpbmd7aGVpZ2h0OjMzcHg7Ym90dG9tOi05cHh9Lnl0cC10b3VjaC1tb2RlIC55dHAtY2hhcHRlci1ob3Zlci1jb250YWluZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAueXRwLXByb2dyZXNzLWJhci1wYWRkaW5ne2hlaWdodDo0MHB4O2JvdHRvbTotMTFweH1AcHJvcGVydHkgLS1zZWVrLXNjcnViYmVyLXdpZHRoe3N5bnRheDoiPGxlbmd0aD4iO2luaXRpYWwtdmFsdWU6MDtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS1zY3J1YmJlci1jb250YWluZXIteHtzeW50YXg6IjxsZW5ndGg+Ijtpbml0aWFsLXZhbHVlOjA7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tcHJvZ3Jlc3Mtd2lkdGh7c3ludGF4OiI8bGVuZ3RoPiI7aW5pdGlhbC12YWx1ZTowO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXByb2dyZXNzLWxlZnQtYnVmZmVye3N5bnRheDoiPGxlbmd0aD4iO2luaXRpYWwtdmFsdWU6MDtpbmhlcml0czpmYWxzZX1AcHJvcGVydHkgLS1wcm9ncmVzcy1yaWdodC1idWZmZXJ7c3ludGF4OiI8bGVuZ3RoPiI7aW5pdGlhbC12YWx1ZTowO2luaGVyaXRzOmZhbHNlfUBwcm9wZXJ0eSAtLXVuaWZpZWQtc2Vlay1vZmZzZXQteHtzeW50YXg6IjxsZW5ndGg+Ijtpbml0aWFsLXZhbHVlOjA7aW5oZXJpdHM6ZmFsc2V9QHByb3BlcnR5IC0tdW5pZmllZC1zZWVrLXNjcnViYmVyLXNjYWxle3N5bnRheDoiPG51bWJlcj4iO2luaXRpYWwtdmFsdWU6MTtpbmhlcml0czpmYWxzZX0ueXRwLXVuaWZpZWQtc2Vlay13cmFwcGVyey0tcHJvZ3Jlc3Mtd2lkdGg6MHB4Oy0tcHJvZ3Jlc3MtbGVmdC1idWZmZXI6MHB4Oy0tcHJvZ3Jlc3MtcmlnaHQtYnVmZmVyOjBweDstLXNlZWstc2NydWJiZXItd2lkdGg6MHB4Oy0tdW5pZmllZC1zZWVrLXNjcnViYmVyLXNjYWxlOjE7LS1zY3J1YmJlci1jb250YWluZXIteDowcHg7LS1oYWxmLXdpZHRoOmNhbGModmFyKC0tc2Vlay1zY3J1YmJlci13aWR0aCwgMHB4KSowLjUpOy0taGFsZi1oZWlnaHQ6bWluKHZhcigtLWhhbGYtd2lkdGgpLDIwcHgpOy0tdW5pZmllZC1zZWVrLW9mZnNldC14OmNhbGMobWF4KDBweCwKICAgICAgICAodmFyKC0taGFsZi13aWR0aCkgKiB2YXIoLS11bmlmaWVkLXNlZWstc2NydWJiZXItc2NhbGUpKSAtIHZhcigKICAgICAgICAgICAgLS1zY3J1YmJlci1jb250YWluZXIteAogICAgICAgICAgKSAtIHZhcigtLXByb2dyZXNzLWxlZnQtYnVmZmVyKSkgKyBtaW4oMHB4LAogICAgICAgIHZhcigtLXByb2dyZXNzLXdpZHRoKSArIHZhcigtLXByb2dyZXNzLXJpZ2h0LWJ1ZmZlcikgLSB2YXIoLS1zY3J1YmJlci1jb250YWluZXIteCkgLSAodmFyKC0taGFsZi13aWR0aCkgKiB2YXIoLS11bmlmaWVkLXNlZWstc2NydWJiZXItc2NhbGUpKSkpfS55dHAtdW5pZmllZC1zZWVrLWFjdGl2ZSAueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItYnV0dG9uLC55dHAtdW5pZmllZC1zZWVrLXdyYXBwZXJ7b3BhY2l0eTowfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKXsueXRwLXVuaWZpZWQtc2Vlay1hY3RpdmUgLnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItY29udGFpbmVyIC55dHAtZGVjb3JhdGVkLXNjcnViYmVyLWJ1dHRvbiwueXRwLXVuaWZpZWQtc2Vlay13cmFwcGVyey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX19Lnl0cC11bmlmaWVkLXNlZWstY29udGVudHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MCAxNnB4O2hlaWdodDoxMDAlfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKXsueXRwLXVuaWZpZWQtc2Vlay1hY3RpdmUgLnl0cC11bmlmaWVkLXNlZWstd3JhcHBlcnstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9fS55dHAtdW5pZmllZC1zZWVrLWFjdGl2ZSAueXRwLXVuaWZpZWQtc2Vlay13cmFwcGVye29wYWNpdHk6MTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjQ2O21hcmdpbjowO3dpZHRoOi13ZWJraXQtbWF4LWNvbnRlbnQ7d2lkdGg6LW1vei1tYXgtY29udGVudDt3aWR0aDptYXgtY29udGVudDtoZWlnaHQ6NDBweDtib3JkZXItcmFkaXVzOjIwcHg7b3ZlcmZsb3c6aGlkZGVuO3RvcDo1MCU7bGVmdDo1MCU7LXdlYmtpdC1jbGlwLXBhdGg6aW5zZXQoY2FsYyg1MCUgLSBtaW4odmFyKC0taGFsZi13aWR0aCksIHZhcigtLWhhbGYtaGVpZ2h0KSkpIGNhbGMoNTAlIC0gdmFyKC0taGFsZi13aWR0aCkpIHJvdW5kIG1pbih2YXIoLS1oYWxmLXdpZHRoKSx2YXIoLS1oYWxmLWhlaWdodCkpKTtjbGlwLXBhdGg6aW5zZXQoY2FsYyg1MCUgLSBtaW4odmFyKC0taGFsZi13aWR0aCksIHZhcigtLWhhbGYtaGVpZ2h0KSkpIGNhbGMoNTAlIC0gdmFyKC0taGFsZi13aWR0aCkpIHJvdW5kIG1pbih2YXIoLS1oYWxmLXdpZHRoKSx2YXIoLS1oYWxmLWhlaWdodCkpKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoY2FsYygtNTAlICsgdmFyKC0tdW5pZmllZC1zZWVrLW9mZnNldC14KSksLTUwJSkgc2NhbGUodmFyKC0tdW5pZmllZC1zZWVrLXNjcnViYmVyLXNjYWxlKSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoY2FsYygtNTAlICsgdmFyKC0tdW5pZmllZC1zZWVrLW9mZnNldC14KSksLTUwJSkgc2NhbGUodmFyKC0tdW5pZmllZC1zZWVrLXNjcnViYmVyLXNjYWxlKSk7dHJhbnNmb3JtOnRyYW5zbGF0ZShjYWxjKC01MCUgKyB2YXIoLS11bmlmaWVkLXNlZWstb2Zmc2V0LXgpKSwtNTAlKSBzY2FsZSh2YXIoLS11bmlmaWVkLXNlZWstc2NydWJiZXItc2NhbGUpKTtmb250LWZhbWlseTpZb3VUdWJlIE5vdG8sUm9ib3RvLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjI2cHg7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxyaWdodCB0b3AsY29sb3Itc3RvcCg4MCUsI2YwMyksdG8oI2ZmMjc5MSkpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwjZjAzIDgwJSwjZmYyNzkxKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjZjAzIDgwJSwjZmYyNzkxKX0ueXRwLXVuaWZpZWQtc2Vlay1hY3RpdmUgLnl0cC11bmlmaWVkLXNlZWstd3JhcHBlciAueXRwLXVuaWZpZWQtc2Vlay1pY29uLWxlZnQtd3JhcHBlcjpub3QoOmVtcHR5KT4ueXRwLXVuaWZpZWQtc2Vlay1pY29ue21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWxlZnQ6LTZweH0ueXRwLXVuaWZpZWQtc2Vlay1hY3RpdmUgLnl0cC11bmlmaWVkLXNlZWstd3JhcHBlciAueXRwLXVuaWZpZWQtc2Vlay1pY29uLXJpZ2h0LXdyYXBwZXI6bm90KDplbXB0eSk+Lnl0cC11bmlmaWVkLXNlZWstaWNvbnttYXJnaW4tbGVmdDo2cHg7bWFyZ2luLXJpZ2h0Oi02cHh9Lnl0cC11bmlmaWVkLXNlZWstYWN0aXZlIC55dHAtdW5pZmllZC1zZWVrLXdyYXBwZXIgLnl0cC11bmlmaWVkLXNlZWstaWNvbi1yaWdodC13cmFwcGVyOm5vdCg6ZW1wdHkpe2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aGVpZ2h0OjEwMCU7d2lkdGg6MjRweH0ueXRwLXVuaWZpZWQtc2Vlay1hY3RpdmUgLnl0cC11bmlmaWVkLXNlZWstd3JhcHBlciAueXRwLXVuaWZpZWQtc2Vlay1pY29uLWxlZnQtd3JhcHBlcjplbXB0eSwueXRwLXVuaWZpZWQtc2Vlay1hY3RpdmUgLnl0cC11bmlmaWVkLXNlZWstd3JhcHBlciAueXRwLXVuaWZpZWQtc2Vlay1pY29uLXJpZ2h0LXdyYXBwZXI6ZW1wdHl7ZGlzcGxheTpub25lfS55dHAtdW5pZmllZC1zZWVrLXNocmlua2luZyAueXRwLXVuaWZpZWQtc2Vlay13cmFwcGVye29wYWNpdHk6MH1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246bm8tcHJlZmVyZW5jZSl7Lnl0cC11bmlmaWVkLXNlZWstc2hyaW5raW5nIC55dHAtdW5pZmllZC1zZWVrLXdyYXBwZXJ7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfX0ueXRwLXVuaWZpZWQtc2Vlay1zaHJpbmtpbmcgLnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItY29udGFpbmVyIC55dHAtZGVjb3JhdGVkLXNjcnViYmVyLWJ1dHRvbntvcGFjaXR5OjF9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOm5vLXByZWZlcmVuY2Upey55dHAtdW5pZmllZC1zZWVrLXNocmlua2luZyAueXRwLWRlY29yYXRlZC1zY3J1YmJlci1jb250YWluZXIgLnl0cC1kZWNvcmF0ZWQtc2NydWJiZXItYnV0dG9uey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX19Lnl0cC1wcm9tb3Rvb2x0aXAtd3JhcHBlcnttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt3aWR0aDozMDBweDtoZWlnaHQ6MTQwcHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAzfS55dHAtZnVsbHNjcmVlbiAueXRwLXByb21vdG9vbHRpcC13cmFwcGVye3dpZHRoOjQ1MHB4O2hlaWdodDoyMTBweH0ueXRwLXByb21vdG9vbHRpcC1jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojMDY1ZmQ0O2NvbG9yOiNmZmY7Zm9udC1zaXplOjExMCU7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjIwcHg7dGV4dC10cmFuc2Zvcm06bm9uZTtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1wcm9tb3Rvb2x0aXAtY29udGVudHtwYWRkaW5nOjE2cHggMTZweCA0cHh9Lnl0cC1mdWxsc2NyZWVuIC55dHAtcHJvbW90b29sdGlwLWNvbnRlbnR7cGFkZGluZzoyNHB4IDI0cHggNnB4fS55dHAtcHJvbW90b29sdGlwLXRpdGxle21hcmdpbi1ib3R0b206OHB4O2ZvbnQtc2l6ZToxMjAlO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxNnB4fS55dHAtZnVsbHNjcmVlbiAueXRwLXByb21vdG9vbHRpcC10aXRsZXttYXJnaW4tYm90dG9tOjEycHg7bGluZS1oZWlnaHQ6MjRweH0ueXRwLXByb21vdG9vbHRpcC1idXR0b25ze3BhZGRpbmc6OHB4IDRweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1wYWNrOmVuZDstd2Via2l0LWp1c3RpZnktY29udGVudDpmbGV4LWVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lnl0cC1mdWxsc2NyZWVuIC55dHAtcHJvbW90b29sdGlwLWJ1dHRvbnN7cGFkZGluZzoxMnB4IDZweH0ueXRwLXByb21vdG9vbHRpcC1hY2NlcHQtYnV0dG9uLC55dHAtcHJvbW90b29sdGlwLWRpc21pc3MtYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtc2l6ZToxMjAlO2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nOjEwcHggMTZweDtjdXJzb3I6cG9pbnRlcn0ueXRwLWZ1bGxzY3JlZW4gLnl0cC1wcm9tb3Rvb2x0aXAtYWNjZXB0LWJ1dHRvbiwueXRwLWZ1bGxzY3JlZW4gLnl0cC1wcm9tb3Rvb2x0aXAtZGlzbWlzcy1idXR0b257cGFkZGluZzoxNXB4IDI0cHh9Lnl0cC1wcm9tb3Rvb2x0aXAtcG9pbnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1zdHlsZTpzb2xpZDt0b3A6MTAwJTtib3JkZXItd2lkdGg6MTJweDtib3JkZXItY29sb3I6IzA2NWZkNCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudH0ueXRwLWZ1bGxzY3JlZW4gLnl0cC1wcm9tb3Rvb2x0aXAtcG9pbnRlcntib3JkZXItd2lkdGg6MThweH0ueXRwLXByb21vdG9vbHRpcC1kZXRhaWxzLWljb257d2lkdGg6MThweH0ueXRwLXByb21vdG9vbHRpcC1kZXRhaWxzLWljb24gc3Zne2hlaWdodDoyMnB4O3dpZHRoOjIycHg7bWFyZ2luOi03cHggLTVweH0ueXRwLWZ1bGxzY3JlZW4gLnl0cC1wcm9tb3Rvb2x0aXAtZGV0YWlscy1pY29ue3dpZHRoOjIycHh9Lnl0cC1mdWxsc2NyZWVuIC55dHAtcHJvbW90b29sdGlwLWRldGFpbHMtaWNvbiBzdmd7aGVpZ2h0OjMwcHg7d2lkdGg6MzBweDttYXJnaW46LTlweCAtN3B4fS55dHAtcmVtb3Rle2xlZnQ6MDtib3R0b206NjFweDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLWVtYmVkIC55dHAtcmVtb3Rle2JvdHRvbTo1M3B4fS55dHAtcmVtb3RlW2FyaWEtaGlkZGVuPXRydWVde29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246Ym90dG9tIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1iaWctbW9kZSAueXRwLXJlbW90ZXtib3R0b206NzBweH0ueXRwLWhpZGUtY29udHJvbHMgLnl0cC1yZW1vdGV7Ym90dG9tOjEycHg7LXdlYmtpdC10cmFuc2l0aW9uOmJvdHRvbSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtcmVtb3RlLWRpc3BsYXktc3RhdHVze3otaW5kZXg6MTU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxMnB4O2JvdHRvbTo2MXB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNik7cGFkZGluZy1yaWdodDo1cHg7Ym9yZGVyLXJhZGl1czo1cHg7b3BhY2l0eTouODV9Lnl0cC1lbWJlZCAueXRwLXJlbW90ZS1kaXNwbGF5LXN0YXR1c3tib3R0b206NTNweH0ueXRwLWJpZy1tb2RlIC55dHAtcmVtb3RlLWRpc3BsYXktc3RhdHVze2JvdHRvbTo3MHB4fS55dHAtcmVtb3RlLWRpc3BsYXktc3RhdHVzLWljb257ZmxvYXQ6bGVmdDt3aWR0aDo0MHB4O2hlaWdodDo0MHB4fS55dHAtYmlnLW1vZGUgLnl0cC1yZW1vdGUtZGlzcGxheS1zdGF0dXMtaWNvbnt3aWR0aDo2MHB4O2hlaWdodDo2MHB4fS55dHAtcmVtb3RlLWRpc3BsYXktc3RhdHVzLXRleHR7dGV4dC1zaGFkb3c6MCAwIDJweCByZ2JhKDAsMCwwLC41KTtwYWRkaW5nLXRvcDoxMHB4O3BhZGRpbmctbGVmdDo1cHg7Zm9udC1zaXplOjEzMCU7Zm9udC13ZWlnaHQ6NTAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dHAtYmlnLW1vZGUgLnl0cC1yZW1vdGUtZGlzcGxheS1zdGF0dXMtdGV4dHtwYWRkaW5nLXRvcDoxNXB4O2xlZnQ6MTA1cHh9Lnl0cC1iaWctbW9kZSAueXRwLXJlbW90ZS1kaXNwbGF5LXN0YXR1cy10ZXh0e3RvcDozMHB4fS55dHAtcmVwbGF5LWJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTtib3R0b206MDttYXJnaW4tbGVmdDotMjRweDt6LWluZGV4OjU5fS55dHAtZW1iZWQgLnl0cC1yZXBsYXktYnV0dG9ue2JvdHRvbTo0cHg7bWFyZ2luLWxlZnQ6LTIwcHh9Lnl0cC1iaWctbW9kZSAueXRwLXJlcGxheS1idXR0b257Ym90dG9tOjcuNXB4O21hcmdpbi1sZWZ0Oi0yN3B4fS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLXJlcGxheS1idXR0b257Ym90dG9tOjEwcHh9Lnl0cC1iaWctbW9kZS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLXJlcGxheS1idXR0b257Ym90dG9tOjI0LjVweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLXBsYXktYnV0dG9ue21hcmdpbi1sZWZ0OjhweH0ueXRwLWRlbGhpLW1vZGVybi55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLWJ1dHRvbi55dHAtYXV0b25hdi10b2dnbGV7cGFkZGluZy1sZWZ0OjB9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC12b2x1bWUtYXJlYXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS55dHAtZGVsaGktbW9kZXJuLnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC1jaHJvbWUtYm90dG9tIC55dHAtdm9sdW1lLWFyZWE6aG92ZXI6YWZ0ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ueXRwLWRlbGhpLW1vZGVybi55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLXRpbWUtd3JhcHBlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BhZGRpbmc6MCA0cHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1jaGFwdGVyLXRpdGxlLnl0cC1idXR0b257YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ueXRwLWRlbGhpLW1vZGVybi55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXJpZ2h0LWNvbnRyb2xze2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1wbGF5LWJ1dHRvbjpob3ZlcjphZnRlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS55dHAtZGVsaGktbW9kZXJuLnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC1jaHJvbWUtYm90dG9tIC55dHAtdGltZS13cmFwcGVyOm5vdCgueXRwLW1pbmlwbGF5ZXItdWkgKik6aG92ZXI6YWZ0ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ueXRwLWRlbGhpLW1vZGVybi55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLWNoYXB0ZXItdGl0bGUueXRwLWJ1dHRvbjpob3ZlcjphZnRlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS55dHAtZGVsaGktbW9kZXJuLnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC1jaHJvbWUtYm90dG9tIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtcmlnaHQtY29udHJvbHMgLnl0cC1idXR0b246aG92ZXI6YmVmb3Jle2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1uZXh0LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kik6aG92ZXI6YWZ0ZXIsLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1wcmV2LWJ1dHRvbjpub3QoLnl0cC1taW5pcGxheWVyLWJ1dHRvbi1jb250YWluZXI+Kik6aG92ZXI6YWZ0ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b217cGFkZGluZzowOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAwIDAgcmdiYSgyMjcsMjI3LDIyNywuNSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAwIDAgcmdiYSgyMjcsMjI3LDIyNywuNSk7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IGJvdHRvbSxsZWZ0IHRvcCxmcm9tKHJnYigxOSwxOSwxOSkpLHRvKHJnYig1Miw1Miw1MikpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSxyZ2IoMTksMTksMTkpLHJnYig1Miw1Miw1MikpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcscmdiKDE5LDE5LDE5KSxyZ2IoNTIsNTIsNTIpKX0ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLXByb2dyZXNzLWJhci1jb250YWluZXJ7aGVpZ2h0OjhweDtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGNvbG9yLXN0b3AoNTAlLHJnYmEoMCwwLDAsMCkpLHRvKHJnYigxOSwxOSwxOSkpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2JhKDAsMCwwLDApIDUwJSxyZ2IoMTksMTksMTkpKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSgwLDAsMCwwKSA1MCUscmdiKDE5LDE5LDE5KSl9Lnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC1wcm9ncmVzcy1saXN0e2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbShyZ2IoNjgsNjgsNjgpKSx0byhyZ2IoOTUsOTUsOTUpKSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AscmdiKDY4LDY4LDY4KSxyZ2IoOTUsOTUsOTUpKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiKDY4LDY4LDY4KSxyZ2IoOTUsOTUsOTUpKX0ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLXBsYXktcHJvZ3Jlc3N7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IGJvdHRvbSxsZWZ0IHRvcCxmcm9tKHJnYigxOTQsMCwwKSksdG8ocmdiKDIzMCw2LDYpKSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChib3R0b20scmdiKDE5NCwwLDApLHJnYigyMzAsNiw2KSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRlZyxyZ2IoMTk0LDAsMCkscmdiKDIzMCw2LDYpKX0ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLXNjcnViYmVyLWJ1dHRvbntoZWlnaHQ6OHB4O3dpZHRoOjhweDtib3JkZXItcmFkaXVzOjhweDtib3JkZXI6NHB4IHNvbGlkIHJnYigyNTUsMjU1LDI1NSk7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IGJvdHRvbSxsZWZ0IHRvcCxmcm9tKHJnYigxMzcsMTM3LDEzNykpLHRvKHJnYigxODYsMTg2LDE4NikpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSxyZ2IoMTM3LDEzNywxMzcpLHJnYigxODYsMTg2LDE4NikpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcscmdiKDEzNywxMzcsMTM3KSxyZ2IoMTg2LDE4NiwxODYpKTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC1jaHJvbWUtYm90dG9tIC55dHAtYnV0dG9uOm5vdCgueXRwLWNoYXB0ZXItdGl0bGUpe2JvcmRlci1yaWdodDoxcHggc29saWQgYmxhY2s7LXdlYmtpdC1ib3gtc2hhZG93OjFweCAwIHJnYmEoMjI3LDIyNywyMjcsLjIpO2JveC1zaGFkb3c6MXB4IDAgcmdiYSgyMjcsMjI3LDIyNywuMik7b3BhY2l0eTouOX0ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1idXR0b24ueXRwLWF1dG9uYXYtdG9nZ2xle2JvcmRlci1sZWZ0OjFweCBzb2xpZCBibGFjaztwYWRkaW5nLWxlZnQ6NHB4Oy13ZWJraXQtYm94LXNoYWRvdzoxcHggMCByZ2JhKDIyNywyMjcsMjI3LC4yKSxpbnNldCAxcHggMCByZ2JhKDIyNywyMjcsMjI3LC4yKTtib3gtc2hhZG93OjFweCAwIHJnYmEoMjI3LDIyNywyMjcsLjIpLGluc2V0IDFweCAwIHJnYmEoMjI3LDIyNywyMjcsLjIpfS55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtY2hyb21lLWJvdHRvbSAueXRwLXRpbWUtZGlzcGxheXtwYWRkaW5nLWxlZnQ6MTBweH0ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLWNocm9tZS1ib3R0b20gLnl0cC1idXR0b246YWN0aXZlOmZvY3VzLC55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtc3VidGl0bGVzLWJ1dHRvblthcmlhLXByZXNzZWQ9dHJ1ZV17YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKHJnYigxOSwxOSwxOSkpLHRvKHJnYig1Miw1Miw1MikpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCxyZ2IoMTksMTksMTkpLHJnYig1Miw1Miw1MikpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2IoMTksMTksMTkpLHJnYig1Miw1Miw1MikpfS55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtdm9sdW1lLXBhbmVsLnl0cC12b2x1bWUtY29udHJvbC1ob3ZlcnttYXJnaW4tbGVmdDo4cHh9Lnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC12b2x1bWUtc2xpZGVyLWhhbmRsZTpiZWZvcmV7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IGJvdHRvbSxsZWZ0IHRvcCxmcm9tKHJnYigxOTQsMCwwKSksdG8ocmdiKDIzMCw2LDYpKSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChib3R0b20scmdiKDE5NCwwLDApLHJnYigyMzAsNiw2KSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRlZyxyZ2IoMTk0LDAsMCkscmdiKDIzMCw2LDYpKTttYXJnaW4tbGVmdDotNnB4fS55dHAtcmV0cm8tcGxheWVyOm5vdCguYWQtc2hvd2luZyk6bm90KC5hZC1pbnRlcnJ1cHRpbmcpIC55dHAtYmV6ZWx7Ym9yZGVyLXJhZGl1czp1bnNldDtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgYm90dG9tLGxlZnQgdG9wLGZyb20ocmdiKDE5LDE5LDE5KSksdG8ocmdiKDUyLDUyLDUyKSkpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYm90dG9tLHJnYigxOSwxOSwxOSkscmdiKDUyLDUyLDUyKSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRlZyxyZ2IoMTksMTksMTkpLHJnYig1Miw1Miw1MikpOy13ZWJraXQtYW5pbWF0aW9uOmJlemVsLWZhZGUtaW4gMXMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSkgMSBub3JtYWwgZm9yd2FyZHM7YW5pbWF0aW9uOmJlemVsLWZhZGUtaW4gMXMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSkgMSBub3JtYWwgZm9yd2FyZHN9QC13ZWJraXQta2V5ZnJhbWVzIGJlemVsLWZhZGUtaW57MCV7b3BhY2l0eTowfTI1JSw3NSV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDIpO3RyYW5zZm9ybTpzY2FsZSgyKX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfX1Aa2V5ZnJhbWVzIGJlemVsLWZhZGUtaW57MCV7b3BhY2l0eTowfTI1JSw3NSV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDIpO3RyYW5zZm9ybTpzY2FsZSgyKX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfX0ueXRwLXJldHJvLXBsYXllcjpub3QoLmFkLXNob3dpbmcpOm5vdCguYWQtaW50ZXJydXB0aW5nKSAueXRwLXRvb2x0aXAtYmcsLnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC10b29sdGlwLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKXtib3JkZXItcmFkaXVzOjB9Lnl0cC1yZXRyby1wbGF5ZXI6bm90KC5hZC1zaG93aW5nKTpub3QoLmFkLWludGVycnVwdGluZykgLnl0cC10b29sdGlwLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKXstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMXB4IDFweCByZ2JhKDIyNywyMjcsMjI3LC4yKTtib3gtc2hhZG93Omluc2V0IDFweCAxcHggcmdiYSgyMjcsMjI3LDIyNywuMik7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IGJvdHRvbSxsZWZ0IHRvcCxmcm9tKHJnYigxOSwxOSwxOSkpLHRvKHJnYig1Miw1Miw1MikpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSxyZ2IoMTksMTksMTkpLHJnYig1Miw1Miw1MikpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcscmdiKDE5LDE5LDE5KSxyZ2IoNTIsNTIsNTIpKX0ueXRwLXNldHRpbmdzLWJ1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLXNldHRpbmdzLWJ1dHRvbiBzdmd7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtc2V0dGluZ3MtYnV0dG9uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gc3Zney13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzMGRlZyk7LW1zLXRyYW5zZm9ybTpyb3RhdGUoMzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzBkZWcpfS55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZS1ncmV5OmFmdGVyLC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZTphZnRlciwueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtNGstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtNWstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtOGstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtaGQtcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtaGRyLXF1YWxpdHktYmFkZ2U6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtyaWdodDo1cHg7aGVpZ2h0OjlweDt3aWR0aDoxM3B4O2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1yZWQtaW5kaWNhdG9yLCNlMTAwMmQpO2JvcmRlci1yYWRpdXM6MXB4O2xpbmUtaGVpZ2h0Om5vcm1hbH0ueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtM2QtYmFkZ2UtZ3JleTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiM2NjZ9Lnl0cC1jb2xvci13aGl0ZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtM2QtYmFkZ2UtZ3JleTphZnRlciwueXRwLWNvbG9yLXdoaXRlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZTphZnRlciwueXRwLWNvbG9yLXdoaXRlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC00ay1xdWFsaXR5LWJhZGdlOmFmdGVyLC55dHAtY29sb3Itd2hpdGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTVrLXF1YWxpdHktYmFkZ2U6YWZ0ZXIsLnl0cC1jb2xvci13aGl0ZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtOGstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWNvbG9yLXdoaXRlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC1oZC1xdWFsaXR5LWJhZGdlOmFmdGVyLC55dHAtY29sb3Itd2hpdGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLWhkci1xdWFsaXR5LWJhZGdlOmFmdGVye2JhY2tncm91bmQtY29sb3I6I2RkZH0ueXRwLWNvbG9yLXBhcnR5IC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZS1ncmV5OmFmdGVyLC55dHAtY29sb3ItcGFydHkgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTNkLWJhZGdlOmFmdGVyLC55dHAtY29sb3ItcGFydHkgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTRrLXF1YWxpdHktYmFkZ2U6YWZ0ZXIsLnl0cC1jb2xvci1wYXJ0eSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtNWstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWNvbG9yLXBhcnR5IC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC04ay1xdWFsaXR5LWJhZGdlOmFmdGVyLC55dHAtY29sb3ItcGFydHkgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLWhkLXF1YWxpdHktYmFkZ2U6YWZ0ZXIsLnl0cC1jb2xvci1wYXJ0eSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtaGRyLXF1YWxpdHktYmFkZ2U6YWZ0ZXJ7LXdlYmtpdC1hbmltYXRpb246eXRwLXBhcnR5LWJhY2tncm91bmQtY29sb3IgLjFzIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb246eXRwLXBhcnR5LWJhY2tncm91bmQtY29sb3IgLjFzIGxpbmVhciBpbmZpbml0ZX0ueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtaGQtcXVhbGl0eS1iYWRnZTphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBeE15QTVJajQ4Y0dGMGFDQm1hV3hzTFc5d1lXTnBkSGs5SWk0Mk5EY2lJR1pwYkd3dGNuVnNaVDBpWlhabGJtOWtaQ0lnWkQwaVRUVWdOMmd4ZGpGSU5YcHROUzAwZGpGSU9GWXplazB6SURaV05XZ3lkakY2VFRJZ04yZ3hkakZJTW5wdE5TQXdhRE4yTVVnM2VtMHpMVEZvTVhZeGFDMHhlaUl2UGp4d1lYUm9JR1pwYkd3OUlpTm1abVlpSUdacGJHd3RjblZzWlQwaVpYWmxibTlrWkNJZ1pEMGlUVFVnTjFZMVNETjJNa2d5VmpKb01YWXlhREpXTW1neGRqVjZiVFl0TVdndE1YWXhTRGRXTW1nemRqRm9NWHB0TFRFdE1sWXpTRGgyTTJneWVpSXZQand2YzNablBnPT0pfS55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC1oZHItcXVhbGl0eS1iYWRnZTphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBeE5DQTJJajQ4Y0dGMGFDQm1hV3hzTFc5d1lXTnBkSGs5SWk0Mk5EY2lJR1E5SWsweklEVm9NWFl4U0RONmJUVXROSFl4U0RaV01YcE5NU0EwVmpOb01uWXhlazB3SURWb01YWXhTREI2YlRVZ01HZ3pkakZJTlhwdE15MHhhREYyTVVnNGVpSXZQanh3WVhSb0lHWnBiR3c5SWlObVptWWlJR1E5SWsweklEVldNMGd4ZGpKSU1GWXdhREYyTW1neVZqQm9NWFkxZW0wMkxURklPSFl4U0RWV01HZ3pkakZvTVhwTk9DQXlWakZJTm5ZemFESjZJaTgrUEhCaGRHZ2dabWxzYkMxdmNHRmphWFI1UFNJdU5qUTNJaUJrUFNKTk1UTWdNbWd4ZGpGb0xURjZiVEFnTTJneGRqRm9MVEY2YlMweUxUSm9Nbll4YUMweWVtMHRNU0F5YURGMk1XZ3RNWHB0TVMwMGFESjJNV2d0TW5vaUx6NDhjR0YwYUNCbWFXeHNQU0lqWm1abUlpQmtQU0pOTVRRZ00zWXlhQzB4VmpONmJTMHpMVE5vTW5ZeGFDMHlkakZvTW5ZeGFDMHlkakpvTFRGV01IcHRNaUF3YURGMk1tZ3RNWG9pTHo0OEwzTjJaejQ9KTtoZWlnaHQ6NnB4O3dpZHRoOjE0cHg7cmlnaHQ6M3B4O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2UxMDAyZDtib3JkZXItd2lkdGg6MXB4fS55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC00ay1xdWFsaXR5LWJhZGdlOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F4TXlBNUlqNDhjR0YwYUNCbWFXeHNMVzl3WVdOcGRIazlJaTQyTkRjaUlHWnBiR3d0Y25Wc1pUMGlaWFpsYm05a1pDSWdaRDBpVFRFd0lEUm9NWFl4YUMweGVtMHdJRE5vTVhZeGFDMHhlazA0SURWb01uWXhTRGg2VFRjZ04yZ3hkakZJTjNwTk5TQTJhREYyTVVnMWVrMDBJRGRvTVhZeFNEUjZUVElnTm1neWRqRklNbnB0TVMweWFERjJNVWd6ZWlJdlBqeHdZWFJvSUdacGJHdzlJaU5tWm1ZaUlHWnBiR3d0Y25Wc1pUMGlaWFpsYm05a1pDSWdaRDBpVFRFeElEVjJNbWd0TVZZMWVtMHRNU0F3U0RoMk1rZzNWakpvTVhZeWFESjZUVFFnTkVnemRqRm9NWHB0TUNBelZqWklNbFkwYURGV00yZ3hWakpvTVhZemFERjJNVWcxZGpGNmJUWXROV2d4ZGpKb0xURjZJaTgrUEM5emRtYyspfS55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC01ay1xdWFsaXR5LWJhZGdlOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F4TXlBNUlqNDhjR0YwYUNCbWFXeHNMVzl3WVdOcGRIazlJaTQyTkRjaUlHWnBiR3d0Y25Wc1pUMGlaWFpsYm05a1pDSWdaRDBpVFRFd0lEUm9NWFl4YUMweGVtMHdJRE5vTVhZeGFDMHhlazA0SURWb01uWXhTRGg2VFRjZ04yZ3hkakZJTjNwTk5TQTJhREYyTVVnMWVrMHlJRGRvTTNZeFNESjZiVEF0TW1nemRqRklNbm9pTHo0OGNHRjBhQ0JtYVd4c1BTSWpabVptSWlCbWFXeHNMWEoxYkdVOUltVjJaVzV2WkdRaUlHUTlJazB4TVNBMWRqSm9MVEZXTlhwdExURWdNRWc0ZGpKSU4xWXlhREYyTW1neWVtMHdMVE5vTVhZeWFDMHhlazB5SURab00zWXhTREp0TXkweWFERjJNVWcxYlRBdE1rZ3pWak5vTTFZeVNESjJNMmd6ZWlJdlBqd3ZjM1puUGc9PSl9Lnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLThrLXF1YWxpdHktYmFkZ2U6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXhNeUE1SWo0OGNHRjBhQ0JtYVd4c0xXOXdZV05wZEhrOUlpNDJORGNpSUdacGJHd3RjblZzWlQwaVpYWmxibTlrWkNJZ1pEMGlUVEV3SURSb01YWXhhQzB4ZW0wd0lETm9NWFl4YUMweGVrMDRJRFZvTW5ZeFNEaDZUVGNnTjJneGRqRklOM3BOTlNBMmFERjJNVWcxZWsweklEVm9Nbll4U0RONmJUQXRNbWd5ZGpGSU0zcHRNaUF4YURGMk1VZzFlazB5SURSb01YWXhTREo2YlRBZ01tZ3hkakZJTW5wdE1TQXhhREoyTVVnemVpSXZQanh3WVhSb0lHWnBiR3c5SWlObVptWWlJR1pwYkd3dGNuVnNaVDBpWlhabGJtOWtaQ0lnWkQwaVRURXhJRFYyTW1ndE1WWTFlbTB0TVNBd1NEaDJNa2czVmpKb01YWXlhREo2YlRBdE0yZ3hkakpvTFRGNlRUTWdObWd5ZGpGSU0yMHdMVFZvTW5ZeFNETjZiVElnTTJneGRqRklOWHBOTXlBMGFESjJNVWd6ZW0weUxURm9NWFl4U0RWNlRUSWdOV2d4ZGpGSU1ucHRNQzB5YURGMk1VZ3llaUl2UGp3dmMzWm5QZz09KX0ueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtM2QtYmFkZ2UtZ3JleTphZnRlciwueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtM2QtYmFkZ2U6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXhNeUE1SWo0OGNHRjBhQ0JtYVd4c1BTSWpabVptSWlCa1BTSk5NaUF5YURSMk5VZ3lWalpvTTFZMVNESldOR2d6VmpOSU1ucHROU0F3YUROMk1VZzRkak5vTW5ZeFNEZDZiVE1nTVdneGRqTm9MVEY2SWk4K1BIQmhkR2dnWm1sc2JDMXZjR0ZqYVhSNVBTSXVOalEzSWlCa1BTSk5NaUF6YUROMk1VZ3llbTAySURCb01uWXhTRGg2VFRJZ05XZ3pkakZJTW5wdE9DQXhhREYyTVdndE1YcE5NaUEzYURSMk1VZ3llbTAxSURCb00zWXhTRGQ2SWk4K1BDOXpkbWMrKX0ueXRwLWNvbG9yLXdoaXRlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC1oZC1xdWFsaXR5LWJhZGdlOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F4TXlBNUlqNDhjR0YwYUNCbWFXeHNMWEoxYkdVOUltVjJaVzV2WkdRaUlHUTlJazAxSURkV05VZ3pkakpJTWxZeWFERjJNbWd5VmpKb01YWTFlbTAyTFRGb0xURjJNVWczVmpKb00zWXhhREY2YlMweExUSldNMGc0ZGpOb01ub2lMejQ4TDNOMlp6ND0pfS55dHAtY29sb3Itd2hpdGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLWhkci1xdWFsaXR5LWJhZGdlOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F4TkNBMUlqNDhjR0YwYUNCa1BTSk5NeUExVmpOSU1YWXlTREJXTUdneGRqSm9NbFl3YURGMk5YcHROaTB4U0RoMk1VZzFWakJvTTNZeGFERjZUVGdnTWxZeFNEWjJNMmd5ZWsweE5DQXpkakpvTFRGV00zcHRMVEVnTUdndE1uWXlhQzB4VmpCb01YWXlhREo2YlRBdE1tZ3RNMVl3YURSMk1tZ3RNWG9pTHo0OEwzTjJaejQ9KX0ueXRwLWNvbG9yLXdoaXRlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC00ay1xdWFsaXR5LWJhZGdlOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F4TXlBNUlqNDhjR0YwYUNCbWFXeHNMWEoxYkdVOUltVjJaVzV2WkdRaUlHUTlJazB4TVNBMWRqSm9MVEZXTlhwdExURWdNRWc0ZGpKSU4xWXlhREYyTW1neWVrMDBJRFJJTTNZeGFERjZiVEFnTTFZMlNESldOR2d4VmpOb01WWXlhREYyTTJneGRqRklOWFl4ZW0wMkxUVm9NWFl5YUMweGVpSXZQand2YzNablBnPT0pfS55dHAtY29sb3Itd2hpdGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTVrLXF1YWxpdHktYmFkZ2U6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXhNeUE1SWo0OGNHRjBhQ0JtYVd4c0xYSjFiR1U5SW1WMlpXNXZaR1FpSUdROUlrMHhNU0ExZGpKb0xURldOWHB0TFRFZ01FZzRkakpJTjFZeWFERjJNbWd5ZW0wd0xUTm9NWFl5YUMweGVrMHlJRFpvTTNZeFNESnRNeTB5YURGMk1VZzFiVEF0TWtnelZqTm9NMVl5U0RKMk0yZ3plaUl2UGp3dmMzWm5QZz09KX0ueXRwLWNvbG9yLXdoaXRlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC04ay1xdWFsaXR5LWJhZGdlOmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F4TXlBNUlqNDhjR0YwYUNCbWFXeHNMWEoxYkdVOUltVjJaVzV2WkdRaUlHUTlJazB4TVNBMWRqSm9MVEZXTlhwdExURWdNRWc0ZGpKSU4xWXlhREYyTW1neWVtMHdMVE5vTVhZeWFDMHhlazB6SURab01uWXhTRE50TUMwMWFESjJNVWd6ZW0weUlETm9NWFl4U0RWNlRUTWdOR2d5ZGpGSU0zcHRNaTB4YURGMk1VZzFlazB5SURWb01YWXhTREo2YlRBdE1tZ3hkakZJTW5vaUx6NDhMM04yWno0PSl9Lnl0cC1jb2xvci13aGl0ZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtM2QtYmFkZ2UtZ3JleTphZnRlciwueXRwLWNvbG9yLXdoaXRlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZTphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBeE15QTVJajQ4Y0dGMGFDQmtQU0pOTWlBeWFEUjJOVWd5Vmpab00xWTFTREpXTkdnelZqTklNbnB0TlNBd2FETjJNVWc0ZGpOb01uWXhTRGQ2YlRNZ01XZ3hkak5vTFRGNklpOCtQQzl6ZG1jKyl9Lnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtM2QtYmFkZ2UtZ3JleTphZnRlciwueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZTphZnRlciwueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC00ay1xdWFsaXR5LWJhZGdlOmFmdGVyLC55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTVrLXF1YWxpdHktYmFkZ2U6YWZ0ZXIsLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtOGstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC1oZC1xdWFsaXR5LWJhZGdlOmFmdGVyLC55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLWhkci1xdWFsaXR5LWJhZGdlOmFmdGVye3RvcDoxNXB4O3JpZ2h0OjZweDtwYWRkaW5nOjJweDtmb250LWZhbWlseTpWZXJkYW5hLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7dGV4dC1zaGFkb3c6MCAycHggMCByZ2JhKDAsMCwwLC42KTtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyLXJhZGl1czoxLjVweDtoZWlnaHQ6YXV0bzt3aWR0aDphdXRvfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtM2QtYmFkZ2UtZ3JleTphZnRlciwueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTNkLWJhZGdlOmFmdGVyLC55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtNGstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTVrLXF1YWxpdHktYmFkZ2U6YWZ0ZXIsLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC04ay1xdWFsaXR5LWJhZGdlOmFmdGVyLC55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtaGQtcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLWhkci1xdWFsaXR5LWJhZGdlOmFmdGVye3RvcDo0cHg7cmlnaHQ6NHB4fS55dHAtY29sb3Itd2hpdGUueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZS1ncmV5OmFmdGVyLC55dHAtY29sb3Itd2hpdGUueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZTphZnRlciwueXRwLWNvbG9yLXdoaXRlLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtNGstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWNvbG9yLXdoaXRlLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtNWstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWNvbG9yLXdoaXRlLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtOGstcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWNvbG9yLXdoaXRlLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtaGQtcXVhbGl0eS1iYWRnZTphZnRlciwueXRwLWNvbG9yLXdoaXRlLnl0cC1iaWctbW9kZSAueXRwLXNldHRpbmdzLWJ1dHRvbi55dHAtaGRyLXF1YWxpdHktYmFkZ2U6YWZ0ZXJ7Y29sb3I6IzAwMDt0ZXh0LXNoYWRvdzpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLWhkLXF1YWxpdHktYmFkZ2U6YWZ0ZXJ7Y29udGVudDoiSEQifS55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLWhkci1xdWFsaXR5LWJhZGdlOmFmdGVye2NvbnRlbnQ6IkhEUiI7Zm9udC1zaXplOjhweH0ueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC00ay1xdWFsaXR5LWJhZGdlOmFmdGVye2NvbnRlbnQ6IjRLIn0ueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC01ay1xdWFsaXR5LWJhZGdlOmFmdGVye2NvbnRlbnQ6IjVLIn0ueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC04ay1xdWFsaXR5LWJhZGdlOmFmdGVye2NvbnRlbnQ6IjhLIn0ueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtYnV0dG9uLnl0cC0zZC1iYWRnZS1ncmV5OmFmdGVyLC55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1idXR0b24ueXRwLTNkLWJhZGdlOmFmdGVye2NvbnRlbnQ6IjNEIn0ueXRwLWdlbmVyaWMtcG9wdXB7dG9wOjA7bGVmdDowO3BhZGRpbmc6NXB4IDlweDttYXgtd2lkdGg6MTQ0cHg7ei1pbmRleDo3Mn0ueXRwLWJpZy1tb2RlIC55dHAtZ2VuZXJpYy1wb3B1cHttYXgtd2lkdGg6MjE2cHh9Lmh0bWw1LXZpZGVvLXBsYXllciAueXRwLWdlbmVyaWMtcG9wdXAgYXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS55dHAtcG9wdXB7cG9zaXRpb246YWJzb2x1dGU7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6cmdiYSgyOCwyOCwyOCwuOSk7dGV4dC1zaGFkb3c6MCAwIDJweCByZ2JhKDAsMCwwLC41KTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXBvcHVwey13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bSxyZ2JhKDAsMCwwLC42KSl9Lnl0cC1kbmkgLnl0cC1wb3B1cHt0ZXh0LXNoYWRvdzpub25lfS55dHAtcG9wdXBbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLXBvcHVwLWFuaW1hdGluZ3std2Via2l0LXRyYW5zaXRpb246YWxsIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjphbGwgLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtwb2ludGVyLWV2ZW50czpub25lfS55dHAtcG9wdXAtYW5pbWF0aW5nIC55dHAtcGFuZWx7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuMjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb246YWxsIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9Lnl0cC1wYW5lbC1hbmltYXRlLWJhY2ssLnl0cC1wYW5lbC1hbmltYXRlLWZvcndhcmR7b3BhY2l0eTowfVtkaXI9bHRyXSAueXRwLXBhbmVsLWFuaW1hdGUtYmFja3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX1bZGlyPWx0cl0gLnl0cC1wYW5lbC1hbmltYXRlLWZvcndhcmR7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSl9W2Rpcj1ydGxdIC55dHAtcGFuZWwtYW5pbWF0ZS1iYWNrey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTAwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpfVtkaXI9cnRsXSAueXRwLXBhbmVsLWFuaW1hdGUtZm9yd2FyZHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKX0ueXRwLXNldHRpbmdzLW1lbnV7cmlnaHQ6MTJweDtib3R0b206NjFweDt6LWluZGV4OjcwO3dpbGwtY2hhbmdlOndpZHRoLGhlaWdodDtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1zZXR0aW5ncy1tZW51e2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgNnB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLnl0cC1zZXR0aW5ncy1tZW51e2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgNnB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpICsgdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjEwMCUpO29wYWNpdHk6Y2FsYygxIC0gdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjMpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1tZW51e29wYWNpdHk6Y2FsYygxIC0gdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjMpO2JvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgNnB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpICsgdmFyKC0teXRwLWdyaWQtc2Nyb2xsLXBlcmNlbnRhZ2UpKjEwMCUpfS55dHAtZW1iZWQgLnl0cC1zZXR0aW5ncy1tZW51e2JvdHRvbTo1M3B4fS55dHAtYmlnLW1vZGUgLnl0cC1zZXR0aW5ncy1tZW51e3JpZ2h0OjI0cHg7Ym90dG9tOjcwcHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlIC55dHAtc2V0dGluZ3MtbWVudXtib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA5NnB4KSArIDZweCl9Lnl0cC1zZXR0aW5ncy1tZW51IC55dHAtbWVudWl0ZW0tY29udGVudHttYXgtd2lkdGg6MjUwcHg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1zZXR0aW5ncy1tZW51e3otaW5kZXg6MjMwMH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXNldHRpbmdzLW1lbnUgLnl0cC1wYW5lbC1tZW51e3BhZGRpbmc6OHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtc2V0dGluZ3MtbWVudSAueXRwLW1lbnVpdGVtOm5vdCgueXRwLW1lbnVpdGVtLXdpdGgtZm9vdGVyKXtoZWlnaHQ6NDhweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXNldHRpbmdzLW1lbnUgLnl0cC1tZW51aXRlbT46Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1zZXR0aW5ncy1tZW51IC55dHAtbWVudWl0ZW0+Omxhc3QtY2hpbGR7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6OHB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjhweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXNldHRpbmdzLW1lbnUgLnl0cC1tZW51aXRlbS1pY29ue3BhZGRpbmctbGVmdDo4cHg7cGFkZGluZy1yaWdodDoyNHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtc2V0dGluZ3MtbWVudSAueXRwLW1lbnVpdGVtLWNvbnRlbnR7cGFkZGluZy1yaWdodDo4cHh9Lnl0cC1zcGVlZHNsaWRlci1jb21wb25lbnR7aGVpZ2h0Ojk1cHg7b3V0bGluZTpub25lfS55dHAtc3BlZWRzbGlkZXItY29tcG9uZW50IC55dHAtc2xpZGVye2hlaWdodDo0MHB4fS55dHAtc3BlZWRzbGlkZXItY29tcG9uZW50e3RleHQtYWxpZ246Y2VudGVyfS55dHAtc3BlZWRzbGlkZXItaW5kaWNhdG9yLWNvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS55dHAtc3BlZWRzbGlkZXItY29tcG9uZW50IC55dHAtc2xpZGVyLWhhbmRsZTphZnRlciwueXRwLXNwZWVkc2xpZGVyLWNvbXBvbmVudCAueXRwLXNsaWRlci1oYW5kbGU6YmVmb3Jle2hlaWdodDo1cHh9Lnl0cC1zcGVlZHNsaWRlci10ZXh0e2ZvbnQtc2l6ZToxNTAlO3RleHQtYWxpZ246Y2VudGVyfS55dHAtc3BlZWRzbGlkZXItcHJlbWl1bS1iYWRnZXt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeU5DSWdhR1ZwWjJoMFBTSXlOQ0lnZG1sbGQwSnZlRDBpTFRJZ0xUSWdNalFnTWpRaVBqeHdZWFJvSUdacGJHdzlJaU5qTURBaUlHUTlJazB3SURFdU5ETkRNQ0F1TmpRdU5qUWdNQ0F4TGpReklEQm9NVGN1TVRORE1Ua3VNelVnTUNBeU1DQXVOalFnTWpBZ01TNDBNM1l4Tnk0eE0yTXdJQzQzT1MwdU5qVWdNUzQwTkMweExqUTBJREV1TkRSSU1TNDBNME11TmpRZ01qQWdNQ0F4T1M0ek5TQXdJREU0TGpVMldtMHdJREFpTHo0OGNHRjBhQ0JtYVd4c1BTSWpabVptSWlCa1BTSk5OeTQ0T0NBeE1TNDBNblkwTGpJNVNEVXVNemRXTXk0MU1tZzBMamMxWXk0NU1pQXdJREV1TnpJdU1UY2dNaTQwTWk0MUxqWTVMak0wSURFdU1qSXVPREVnTVM0MklERXVORE11TXpjdU5qSXVOVFlnTVM0ek1pNDFOaUF5TGpFeElEQWdNUzR4T1MwdU5ERWdNaTR4TXkweExqSXlJREl1T0RJdExqZ3lMalk1TFRFdU9UVWdNUzR3TkMwekxqUWdNUzR3TkZwdE1DMHlMakEwYURJdU1qUmpMalkzSURBZ01TNHhPQzB1TVRVZ01TNDFNaTB1TkRjdU16VXRMak14TGpVekxTNDNOUzQxTXkweExqTTBjeTB1TVRndE1TNHdOeTB1TlRNdE1TNDBOV010TGpNMUxTNHpOaTB1T0RRdExqVTFMVEV1TkRZdExqVTJhQzB5TGpOYWJUQWdNQ0l2UGp3dmMzWm5QZz09KTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7cG9zaXRpb246YWJzb2x1dGU7bWFyZ2luLXJpZ2h0OjhweDtyaWdodDoxMDAlfS55dHAtbWVudWl0ZW0tcHJlbWl1bS1iYWRnZXt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeU5DSWdhR1ZwWjJoMFBTSXlOQ0lnZG1sbGQwSnZlRDBpTFRJZ0xUSWdNalFnTWpRaVBqeHdZWFJvSUdacGJHdzlJaU5qTURBaUlHUTlJazB3SURFdU5ETkRNQ0F1TmpRdU5qUWdNQ0F4TGpReklEQm9NVGN1TVRORE1Ua3VNelVnTUNBeU1DQXVOalFnTWpBZ01TNDBNM1l4Tnk0eE0yTXdJQzQzT1MwdU5qVWdNUzQwTkMweExqUTBJREV1TkRSSU1TNDBNME11TmpRZ01qQWdNQ0F4T1M0ek5TQXdJREU0TGpVMldtMHdJREFpTHo0OGNHRjBhQ0JtYVd4c1BTSWpabVptSWlCa1BTSk5OeTQ0T0NBeE1TNDBNblkwTGpJNVNEVXVNemRXTXk0MU1tZzBMamMxWXk0NU1pQXdJREV1TnpJdU1UY2dNaTQwTWk0MUxqWTVMak0wSURFdU1qSXVPREVnTVM0MklERXVORE11TXpjdU5qSXVOVFlnTVM0ek1pNDFOaUF5TGpFeElEQWdNUzR4T1MwdU5ERWdNaTR4TXkweExqSXlJREl1T0RJdExqZ3lMalk1TFRFdU9UVWdNUzR3TkMwekxqUWdNUzR3TkZwdE1DMHlMakEwYURJdU1qUmpMalkzSURBZ01TNHhPQzB1TVRVZ01TNDFNaTB1TkRjdU16VXRMak14TGpVekxTNDNOUzQxTXkweExqTTBjeTB1TVRndE1TNHdOeTB1TlRNdE1TNDBOV010TGpNMUxTNHpOaTB1T0RRdExqVTFMVEV1TkRZdExqVTJhQzB5TGpOYWJUQWdNQ0l2UGp3dmMzWm5QZz09KTstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7bWFyZ2luLWxlZnQ6OHB4fS55dHAtbWVudWl0ZW0tY29udGFpbmVyLXdpdGgtYmFkZ2V7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRwLXNwZWVkLXNsaWRlci1tZW51LWZvb3RlcntwYWRkaW5nOjE2cHh9Lnl0cC1zaG93LXNoYXJlLXRpdGxlLnl0cC1zaGFyZS1idXR0b257bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweH0ueXRwLW92ZXJmbG93LXBhbmVsIC55dHAtc2hvdy1zaGFyZS10aXRsZS55dHAtc2hhcmUtYnV0dG9ue21hcmdpbi1sZWZ0OjIwcHg7bWFyZ2luLXJpZ2h0OjIwcHh9Lnl0cC1iaWctbW9kZTpub3QoLnl0cC1zaG9ydHMtbW9kZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtc2hhcmUtYnV0dG9uLDpub3QoLnl0cC1zaG9ydHMtbW9kZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtc2hhcmUtYnV0dG9ue3dpZHRoOmF1dG87aGVpZ2h0OmF1dG99Lnl0cC1zaG9ydHMtbW9kZSAueXRwLXNoYXJlLWJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO3BhZGRpbmctdG9wOjRweH0uaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLWJpZy1tb2RlKSAueXRwLWNocm9tZS10b3AgLnl0cC1zaGFyZS1idXR0b257bWluLXdpZHRoOjQ4cHg7bWF4LXdpZHRoOjgwcHh9Lnl0cC1zaGFyZS1pY29ue21hcmdpbjphdXRvO3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHh9Lnl0cC1iaWctbW9kZSAueXRwLXNoYXJlLWljb257d2lkdGg6NTRweDtoZWlnaHQ6NTRweH0ueXRwLW92ZXJmbG93LXBhbmVsIC55dHAtc2hhcmUtaWNvbnt3aWR0aDo2MHB4O2hlaWdodDo2MHB4O21hcmdpbi1ib3R0b206MTBweH0ueXRwLXNoYXJlLXRpdGxle2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTRweDtkaXNwbGF5Om5vbmV9Lnl0cC1iaWctbW9kZSAueXRwLXNoYXJlLXRpdGxlLC55dHAtb3ZlcmZsb3ctcGFuZWwgLnl0cC1zaGFyZS10aXRsZXtmb250LXNpemU6MjBweH0ueXRwLXNob3ctc2hhcmUtdGl0bGUgLnl0cC1zaGFyZS10aXRsZXtkaXNwbGF5OmJsb2NrfS5odG1sNS12aWRlby1wbGF5ZXI6bm90KC55dHAtYmlnLW1vZGUpIC55dHAtY2hyb21lLXRvcCAueXRwLXNoYXJlLXRpdGxle3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVufS55dHAtc2hhcmUtcGFuZWx7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ei1pbmRleDo3NTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpO3RleHQtYWxpZ246Y2VudGVyOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtc2hhcmUtcGFuZWxbYXJpYS1oaWRkZW49dHJ1ZV17b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtc2hhcmUtcGFuZWwtaW5uZXItY29udGVudHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO21hcmdpbi10b3A6LTY1cHg7bGVmdDowO3JpZ2h0OjA7cGFkZGluZzowIDEwJX0ueXRwLWJpZy1tb2RlIC55dHAtc2hhcmUtcGFuZWwtaW5uZXItY29udGVudHttYXJnaW4tdG9wOi05OHB4fS55dHAtc2hhcmUtcGFuZWwtbG9hZGluZy1zcGlubmVye2Rpc3BsYXk6bm9uZTttYXJnaW46MjBweCBhdXRvIDA7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRwLWJpZy1tb2RlIC55dHAtc2hhcmUtcGFuZWwtbG9hZGluZy1zcGlubmVye21hcmdpbi10b3A6MzBweH0ueXRwLXNoYXJlLXBhbmVsLnl0cC1zaGFyZS1wYW5lbC1sb2FkaW5nIC55dHAtc2hhcmUtcGFuZWwtbG9hZGluZy1zcGlubmVye2Rpc3BsYXk6YmxvY2t9Lnl0cC1zaGFyZS1wYW5lbC1jbG9zZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NnB4O3JpZ2h0OjEycHg7cGFkZGluZzo2cHg7d2lkdGg6MzZweDtoZWlnaHQ6MzZweH0ueXRwLWJpZy1tb2RlIC55dHAtc2hhcmUtcGFuZWwtY2xvc2V7dG9wOjlweDtyaWdodDoyNHB4O3BhZGRpbmc6OXB4O3dpZHRoOjU0cHg7aGVpZ2h0OjU0cHh9Lnl0cC1zaGFyZS1wYW5lbC1jbG9zZSBwYXRoe2ZpbGw6I2FhYX0ueXRwLXNoYXJlLXBhbmVsLWNsb3NlOmhvdmVyIHBhdGh7ZmlsbDojZmZmfS55dHAtc2hhcmUtcGFuZWwtdGl0bGV7Zm9udC1zaXplOjE1NSU7bGluZS1oZWlnaHQ6MjBweH0ueXRwLWJpZy1tb2RlIC55dHAtc2hhcmUtcGFuZWwtdGl0bGV7bGluZS1oZWlnaHQ6MzBweH0ueXRwLXNoYXJlLXBhbmVsLWxpbmt7ZGlzcGxheTpibG9jaztoZWlnaHQ6MjhweDttYXJnaW4tdG9wOjE4cHg7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmb250LXNpemU6MjE4JTtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6MXB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47b3V0bGluZTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1zaGFyZS1wYW5lbC1saW5re2hlaWdodDo0MnB4O21hcmdpbi10b3A6MjdweH0ueXRwLXNoYXJlLXBhbmVsLWluY2x1ZGUtcGxheWxpc3R7ZGlzcGxheTpub25lO2xpbmUtaGVpZ2h0OjE1cHg7bWFyZ2luLXRvcDoxMnB4O2ZvbnQtc2l6ZToxMTglO2NvbG9yOiM5OTl9Lnl0cC1iaWctbW9kZSAueXRwLXNoYXJlLXBhbmVsLWluY2x1ZGUtcGxheWxpc3R7bGluZS1oZWlnaHQ6MjIuNXB4O21hcmdpbi10b3A6MThweH0ueXRwLXNoYXJlLXBhbmVsLWluY2x1ZGUtcGxheWxpc3QgaW5wdXRbdHlwZT1jaGVja2JveF17bWFyZ2luOjAgOHB4IDAgMH0ueXRwLXNoYXJlLXBhbmVsLXNlcnZpY2UtYnV0dG9uc3ttYXJnaW4tdG9wOjIwcHg7aGVpZ2h0OjQ0cHh9Lnl0cC1iaWctbW9kZSAueXRwLXNoYXJlLXBhbmVsLXNlcnZpY2UtYnV0dG9uc3ttYXJnaW4tdG9wOjMwcHg7aGVpZ2h0OjY3cHh9Lnl0cC1zaGFyZS1wYW5lbC55dHAtc2hhcmUtcGFuZWwtZmFpbCAueXRwLXNoYXJlLXBhbmVsLXNlcnZpY2UtYnV0dG9ucywueXRwLXNoYXJlLXBhbmVsLnl0cC1zaGFyZS1wYW5lbC1sb2FkaW5nIC55dHAtc2hhcmUtcGFuZWwtc2VydmljZS1idXR0b25ze2Rpc3BsYXk6bm9uZX0ueXRwLXNoYXJlLXBhbmVsLXNlcnZpY2UtYnV0dG9ue3BhZGRpbmc6M3B4O3dpZHRoOjM4cHg7aGVpZ2h0OjM4cHg7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lnl0cC1iaWctbW9kZSAueXRwLXNoYXJlLXBhbmVsLXNlcnZpY2UtYnV0dG9ue3BhZGRpbmc6NXB4O3dpZHRoOjU3cHg7aGVpZ2h0OjU3cHh9Lnl0cC1zaGFyZS1wYW5lbC1lcnJvcntkaXNwbGF5Om5vbmU7bWFyZ2luLXRvcDoyMHB4O2ZvbnQtc2l6ZToxMDklfS55dHAtYmlnLW1vZGUgLnl0cC1zaGFyZS1wYW5lbC1lcnJvcnttYXJnaW4tdG9wOjMwcHh9Lnl0cC1zaGFyZS1wYW5lbC1mYWlsIC55dHAtc2hhcmUtcGFuZWwtZXJyb3J7ZGlzcGxheTpibG9ja30ueXRwLXNob3BwaW5nLXByb2R1Y3QtbWVudXt6LWluZGV4OjcyO2ZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjt0ZXh0LWFsaWduOmxlZnQ7ZGlyZWN0aW9uOmx0cjtmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxLjM7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDt3aWxsLWNoYW5nZTp3aWR0aCxoZWlnaHQ7Ym9yZGVyLXJhZGl1czoxMnB4fS55dHAtc2hvcHBpbmctcHJvZHVjdC1tZW51IC55dHAtbWVudWl0ZW0tY29udGVudHttYXgtd2lkdGg6MjUwcHg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lnl0cC1zaG9ydHMtdGl0bGUtY2hhbm5lbC1sb2dve3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC1mbGV4LXNocmluazowO2ZsZXgtc2hyaW5rOjA7bWFyZ2luOjVweDstd2Via2l0LWJhY2tncm91bmQtb3JpZ2luOmNvbnRlbnQtYm94O2JhY2tncm91bmQtb3JpZ2luOmNvbnRlbnQtYm94O2Zsb2F0OmxlZnQ7LXdlYmtpdC1hbGlnbi1zZWxmOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjtib3JkZXItcmFkaXVzOjUwJX0ueXRwLWJpZy1tb2RlIC55dHAtc2hvcnRzLXRpdGxlLWNoYW5uZWwtbG9nb3t3aWR0aDo1MHB4O2hlaWdodDo1MHB4fS55dHAtZW1iZWQtbW9iaWxlIC55dHAtc2hvcnRzLXRpdGxlLWNoYW5uZWwtbG9nbywueXRwLWVtYmVkLW1vYmlsZS55dHAtc21hbGwtbW9kZSAueXRwLXNob3J0cy10aXRsZS1jaGFubmVsLWxvZ297d2lkdGg6MjRweDtoZWlnaHQ6MjRweDttYXJnaW46MH0ueXRwLXNob3J0cy10aXRsZS1leHBhbmRlZC1oZWFkaW5ne21hcmdpbjozcHg7LXdlYmtpdC1ib3gtZmxleDppbml0aWFsOy13ZWJraXQtZmxleDppbml0aWFsO2ZsZXg6aW5pdGlhbDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtYWxpZ24tc2VsZjpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXJ9Lnl0cC1zaG9ydHMtdGl0bGUtZXhwYW5kZWQtdGl0bGV7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NDAwO21hcmdpbjowfS55dHAtYmlnLW1vZGUgLnl0cC1zaG9ydHMtdGl0bGUtZXhwYW5kZWQtdGl0bGV7Zm9udC1zaXplOjIycHh9Lnl0cC1zaG9ydHMtdGl0bGUtZXhwYW5kZWQtdGl0bGUgYXtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtc2hvcnRzLXRpdGxlLWV4cGFuZGVkLXRpdGxle3dvcmQtYnJlYWs6YnJlYWstd29yZDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MThweH0ueXRwLWJpZy1tb2RlIC55dHAtc2hvcnRzLXRpdGxlLWV4cGFuZGVkLXRpdGxle2ZvbnQtc2l6ZToxOHB4fS55dHAtc2hvcnRzLXRpdGxlLWNoYW5uZWx7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjA7ZGlzcGxheTpub25lO2hlaWdodDphdXRvO21hcmdpbi1sZWZ0OjA7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnN0YXRpYzt0b3A6N3B4O2xlZnQ6OHB4O3dpZHRoOmF1dG99Lnl0cC1iaWctbW9kZSAueXRwLXNob3J0cy10aXRsZS1jaGFubmVse21hcmdpbi10b3A6MTBweH0ueXRwLXRpdGxlLWVuYWJsZS1jaGFubmVsLWxvZ28gLnl0cC1zaG9ydHMtdGl0bGUtY2hhbm5lbHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleH0ueXRwLWNocm9tZS10b3AgLnl0cC1zaG9ydHMtdGl0bGUtY2hhbm5lbCAueXRwLXNiey13ZWJraXQtYWxpZ24tc2VsZjpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXI7bWFyZ2luOjVweDtoZWlnaHQ6YXV0bzt3aWR0aDphdXRvO3BhZGRpbmc6MDtwYWRkaW5nLWxlZnQ6MDt0ZXh0LXNoYWRvdzpub25lOy13ZWJraXQtZmxleC1zaHJpbms6MDtmbGV4LXNocmluazowfS55dHAtY2hyb21lLXRvcCAueXRwLXNob3J0cy10aXRsZS1jaGFubmVsIC55dHAtc2Itc3Vic2NyaWJle21hcmdpbi1sZWZ0OjB9Lnl0cC1zaG9ydHMtbW9kZSBhLnl0cC1zYi1zdWJzY3JpYmV7bWFyZ2luLWxlZnQ6MH0ueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLXRvcCAueXRwLXNob3J0cy10aXRsZS1jaGFubmVsIC55dHAtc2Itc3Vic2NyaWJlLC55dHAtYmlnLW1vZGUgLnl0cC1jaHJvbWUtdG9wIC55dHAtc2hvcnRzLXRpdGxlLWNoYW5uZWwgLnl0cC1zYi11bnN1YnNjcmliZXtmb250LXNpemU6MTZweDtwYWRkaW5nOjE0cHggMjBweDttYXJnaW4tcmlnaHQ6MTBweH0ueXRwLWF1dG9oaWRlOm5vdCgueXRwLWF1dG9oaWRlLWFjdGl2ZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtc2hvcnRzLXRpdGxlLWNoYW5uZWx7bWFyZ2luLXRvcDo3cHh9Lnl0cC1za2lwLWludHJvLWJ1dHRvbntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjkwMTk2MDc4NDMpO2JvdHRvbTo1OHB4O2hlaWdodDo0OHB4O3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6MTZweDtyaWdodDoxMHB4O3otaW5kZXg6MTB9Lnl0cC1lbWJlZCAueXRwLXNraXAtaW50cm8tYnV0dG9ue2JvdHRvbTo1MHB4O2hlaWdodDo0MHB4fS55dHAtc2tpcC1pbnRyby1idXR0b246aG92ZXJ7YmFja2dyb3VuZDojMDAwfS55dHAtYmlnLW1vZGUgLnl0cC1za2lwLWludHJvLWJ1dHRvbntib3R0b206NzlweDtyaWdodDo0MHB4fS55dHAtc2tpcC1pbnRyby1idXR0b24tdGV4dHtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bWF4LXdpZHRoOjIwMHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6bm93cmFwfS55dHAtc2xpZGVyLXNlY3Rpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTUwcHg7aGVpZ2h0OjEwMCU7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTowfS55dHAtc2xpZGVye2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtvdXRsaW5lOjB9Lnl0cC1zbGlkZXItaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtib3JkZXItcmFkaXVzOjEwcHg7bWFyZ2luLXRvcDotMTBweDtiYWNrZ3JvdW5kOiNmZmY7b3V0bGluZTowfS55dHAtc2xpZGVyLWhhbmRsZTphZnRlciwueXRwLXNsaWRlci1oYW5kbGU6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt0b3A6NTAlO2xlZnQ6MDtoZWlnaHQ6M3B4O21hcmdpbi10b3A6LTJweDt3aWR0aDoxNzBweDtvdXRsaW5lOjB9Lnl0cC1zbGlkZXItaGFuZGxlOmJlZm9yZXtsZWZ0Oi0xNjBweDtiYWNrZ3JvdW5kOiNmZmZ9Lnl0cC1zbGlkZXItaGFuZGxlOmFmdGVye2xlZnQ6MTBweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjIpfS55dHAtcHJvYmFibHkta2V5Ym9hcmQtZm9jdXMgLnl0cC1zbGlkZXItc2VjdGlvbjpmb2N1c3std2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAwIDAgMnB4IHJnYmEoMjcsMTI3LDIwNCwuOCk7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC44KX0ueXRwLW92ZXJsYXl7ei1pbmRleDoxMDtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3RvcDowO2xlZnQ6MH0ueXRwLXNwZWVkbWFzdGVyLW92ZXJsYXl7dGV4dC1hbGlnbjpjZW50ZXI7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLXNwZWVkbWFzdGVyLXVzZXItZWR1ey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItcmFkaXVzOjE4cHg7ZGlzcGxheTotd2Via2l0LWlubGluZS1ib3g7ZGlzcGxheTotd2Via2l0LWlubGluZS1mbGV4O2Rpc3BsYXk6aW5saW5lLWZsZXg7aGVpZ2h0OjMycHg7bWFyZ2luLXRvcDoyMHB4O3BhZGRpbmc6NnB4IDE2cHg7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNil9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1zcGVlZG1hc3Rlci11c2VyLWVkdXstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0scmdiYSgwLDAsMCwuNikpfS55dHAtc3BlZWRtYXN0ZXItdXNlci1lZHUueXRwLXNwZWVkbWFzdGVyLWhhcy1pY29uey13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0cC1zcGVlZG1hc3Rlci1pY29uLC55dHAtc3BlZWRtYXN0ZXItbGFiZWx7ZGlzcGxheTotd2Via2l0LWlubGluZS1ib3g7ZGlzcGxheTotd2Via2l0LWlubGluZS1mbGV4O2Rpc3BsYXk6aW5saW5lLWZsZXh9Lnl0cC1zcGVlZG1hc3Rlci1pY29ue21hcmdpbi1sZWZ0OjRweH0ueXRwLXNwZWVkbWFzdGVyLWljb24gc3Zne2Rpc3BsYXk6YmxvY2s7d2lkdGg6MjRweDtoZWlnaHQ6MjRweH0ueXRwLXdlYmdsLXNwaGVyaWNhbC1jb250cm9se3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0OHB4O2xlZnQ6MTJweDtvcGFjaXR5Oi42O2N1cnNvcjpwb2ludGVyO3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7LXdlYmtpdC10cmFuc2l0aW9uOnRvcCAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0b3AgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3otaW5kZXg6NDM7b3V0bGluZTpub25lfS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAueXRwLXdlYmdsLXNwaGVyaWNhbC1jb250cm9se3RvcDo2MHB4fS55dHAtYmlnLW1vZGUgLnl0cC13ZWJnbC1zcGhlcmljYWwtY29udHJvbHt0b3A6NjlweDt3aWR0aDo3NXB4O2hlaWdodDo3NXB4fS55dHAtYmlnLW1vZGUueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykgLnl0cC13ZWJnbC1zcGhlcmljYWwtY29udHJvbHt0b3A6NjBweH0ueXRwLXdlYmdsLXNwaGVyaWNhbC1jb250cm9sLnl0cC1kcmFnZ2luZywueXRwLXdlYmdsLXNwaGVyaWNhbC1jb250cm9sOmhvdmVye29wYWNpdHk6MX0ueXRwLWF1dG9oaWRlIC55dHAtd2ViZ2wtc3BoZXJpY2FsLWNvbnRyb2wsLnl0cC1oaWRlLWluZm8tYmFyIC55dHAtd2ViZ2wtc3BoZXJpY2FsLWNvbnRyb2x7dG9wOjEycHg7LXdlYmtpdC10cmFuc2l0aW9uOnRvcCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246dG9wIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC13ZWJnbC1zcGhlcmljYWw6bm90KC55dHAtbWVudS1zaG93bikgLmh0bWw1LXZpZGVvLWNvbnRhaW5lcntjdXJzb3I6bW92ZTtjdXJzb3I6LXdlYmtpdC1ncmFiO2N1cnNvcjpncmFifS55dHAtd2ViZ2wtc3BoZXJpY2FsLnl0cC1kcmFnZ2luZzpub3QoLnl0cC1tZW51LXNob3duKSAuaHRtbDUtdmlkZW8tY29udGFpbmVye2N1cnNvcjptb3ZlO2N1cnNvcjotd2Via2l0LWdyYWJiaW5nO2N1cnNvcjpncmFiYmluZ30ueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtd2ViZ2wtc3BoZXJpY2FsLWNvbnRyb2w6Zm9jdXN7LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCByZ2JhKDI3LDEyNywyMDQsLjgpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMnB4IHJnYmEoMjcsMTI3LDIwNCwuOCl9LmVuZGVkLW1vZGUgLnl0cC13ZWJnbC1zcGhlcmljYWwtY29udHJvbCwueXRwLW1lbnUtc2hvd24gLnl0cC13ZWJnbC1zcGhlcmljYWwtY29udHJvbHtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOnRvcCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246dG9wIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1vdmVybGF5cy1jb250YWluZXIgLnl0cC13ZWJnbC1zcGhlcmljYWwtY29udHJvbHtwb3NpdGlvbjpyZWxhdGl2ZTtpbnNldDowfS55dHAtc3Bpbm5lcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTt0b3A6NTAlO3dpZHRoOjY0cHg7bWFyZ2luLWxlZnQ6LTMycHg7ei1pbmRleDoxODtwb2ludGVyLWV2ZW50czpub25lfS55dHAtYmlnLW1vZGUgLnl0cC1zcGlubmVye3dpZHRoOjEyOHB4O21hcmdpbi1sZWZ0Oi02NHB4fS55dHAtc3Bpbm5lci1tZXNzYWdle3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO21hcmdpbi10b3A6NTAlO3dpZHRoOjMwMHB4O2ZvbnQtc2l6ZToxMjclO2xpbmUtaGVpZ2h0OjE4MiU7bWFyZ2luLWxlZnQ6LTE1MHB4O2Rpc3BsYXk6bm9uZTt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrO29wYWNpdHk6LjV9Lnl0cC1zcGlubmVyLWNvbnRhaW5lcntwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7cGFkZGluZy1ib3R0b206MTAwJTt0b3A6NTAlO2xlZnQ6NTAlO21hcmdpbi10b3A6LTUwJTttYXJnaW4tbGVmdDotNTAlO2FuaW1hdGlvbjp5dHAtc3Bpbm5lci1saW5zcGluIDEuNTY4MjM1Mjk0MTE3NnMgbGluZWFyIGluZmluaXRlOy13ZWJraXQtYW5pbWF0aW9uOnl0cC1zcGlubmVyLWxpbnNwaW4gMS41NjgyMzUyOTQxMTc2cyBsaW5lYXIgaW5maW5pdGV9Lnl0cC1zcGlubmVyLXJvdGF0b3J7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTstd2Via2l0LWFuaW1hdGlvbjp5dHAtc3Bpbm5lci1lYXNlc3BpbiA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aDthbmltYXRpb246eXRwLXNwaW5uZXItZWFzZXNwaW4gNTMzMm1zIGN1YmljLWJlemllciguNCwwLC4yLDEpIGluZmluaXRlIGJvdGh9Lnl0cC1zcGlubmVyLWxlZnQsLnl0cC1zcGlubmVyLXJpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO292ZXJmbG93OmhpZGRlbn0ueXRwLXNwaW5uZXItbGVmdHtyaWdodDo0OSV9Lnl0cC1zcGlubmVyLXJpZ2h0e2xlZnQ6NDklfS55dHAtc3Bpbm5lci1jaXJjbGV7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjIwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojZGRkICNkZGQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXdpZHRoOjZweH0ueXRwLWJpZy1tb2RlIC55dHAtc3Bpbm5lci1jaXJjbGV7Ym9yZGVyLXdpZHRoOjEycHh9Lnl0cC1zcGlubmVyLWxlZnQgLnl0cC1zcGlubmVyLWNpcmNsZXtsZWZ0OjA7cmlnaHQ6LTEwMCU7Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtYW5pbWF0aW9uOnl0cC1zcGlubmVyLWxlZnQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aDthbmltYXRpb246eXRwLXNwaW5uZXItbGVmdC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSBpbmZpbml0ZSBib3RofS55dHAtc3Bpbm5lci1yaWdodCAueXRwLXNwaW5uZXItY2lyY2xle2xlZnQ6LTEwMCU7cmlnaHQ6MDtib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LWFuaW1hdGlvbjp5dHAtcmlnaHQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgaW5maW5pdGUgYm90aDthbmltYXRpb246eXRwLXJpZ2h0LXNwaW4gMTMzM21zIGN1YmljLWJlemllciguNCwwLC4yLDEpIGluZmluaXRlIGJvdGh9QC13ZWJraXQta2V5ZnJhbWVzIHl0cC1zcGlubmVyLWxpbnNwaW57dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKX19QGtleWZyYW1lcyB5dHAtc3Bpbm5lci1saW5zcGlue3Rvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7dHJhbnNmb3JtOnJvdGF0ZSgxdHVybil9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtc3Bpbm5lci1lYXNlc3BpbnsxMi41JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX0yNSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9MzcuNSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQwNWRlZyl9NTAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg1NDBkZWcpfTYyLjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg2NzVkZWcpfTc1JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoODEwZGVnKX04Ny41JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTQ1ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoM3R1cm4pfX1Aa2V5ZnJhbWVzIHl0cC1zcGlubmVyLWVhc2VzcGluezEyLjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX0yNSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDI3MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfTM3LjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0MDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDA1ZGVnKX01MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDU0MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg1NDBkZWcpfTYyLjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg2NzVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNjc1ZGVnKX03NSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDgxMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg4MTBkZWcpfTg3LjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5NDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTQ1ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoM3R1cm4pO3RyYW5zZm9ybTpyb3RhdGUoM3R1cm4pfX1ALXdlYmtpdC1rZXlmcmFtZXMgeXRwLXNwaW5uZXItbGVmdC1zcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzBkZWcpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzBkZWcpfX1Aa2V5ZnJhbWVzIHl0cC1zcGlubmVyLWxlZnQtc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTMwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDEzMGRlZyl9NTAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMzBkZWcpfX1ALXdlYmtpdC1rZXlmcmFtZXMgeXRwLXJpZ2h0LXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzBkZWcpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzBkZWcpfX1Aa2V5ZnJhbWVzIHl0cC1yaWdodC1zcGluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTMwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC0xMzBkZWcpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg1ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEzMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMTMwZGVnKX19Lnl0cC1zZm57YmFja2dyb3VuZDpyZ2JhKDI4LDI4LDI4LC44KTtib3JkZXItcmFkaXVzOjRweDtjb2xvcjojZmZmO2xlZnQ6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDt6LWluZGV4OjY0O21pbi13aWR0aDoyNmVtfS55dHAtc2ZuLWNsb3Nle2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjVweDt0b3A6NXB4O3BhZGRpbmc6NXB4fS55dHAtc2ZuLWNvbnRlbnR7cGFkZGluZzo1cHh9Lnl0cC1zZm4tY29udGVudD5kaXY+ZGl2e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nOjAgLjVlbTt0ZXh0LWFsaWduOnJpZ2h0O3dpZHRoOjEwZW19Lnl0cC1zZm4tY3Bue2ZvbnQtZmFtaWx5OkNvbnNvbGFzLE1vbmFjbyxtb25vc3BhY2U7Zm9udC1zaXplOjEycHh9Lnl0cC1ob3Jpem9uY2hhcnR7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjJweDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjpib3R0b219Lnl0cC1ob3Jpem9uY2hhcnQ+c3BhbntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZX0ueXRwLXN0b3J5Ym9hcmQtZnJhbWVwcmV2aWV3e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjE2O2JhY2tncm91bmQ6IzAwMDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1maW5lLXNjcnViYmluZy1lbmFibGUgLnl0cC1zdG9yeWJvYXJkLWZyYW1lcHJldmlld3tjdXJzb3I6cG9pbnRlcn0ueXRwLXN0b3J5Ym9hcmQtZnJhbWVwcmV2aWV3W2FyaWEtaGlkZGVuPXRydWVde29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1zdG9yeWJvYXJkLWZyYW1lcHJldmlldy1pbWd7b3BhY2l0eTouNH0ueXRwLXN0b3J5Ym9hcmQtZnJhbWVwcmV2aWV3LXRpbWVzdGFtcHtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7Y29sb3I6I2RkZDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMpO2JvcmRlci1yYWRpdXM6MThweDtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtib3R0b206MzZweDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7cGFkZGluZzo0cHggMTBweH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1zdG9yeWJvYXJkLWZyYW1lcHJldmlldy1pbWd7b3BhY2l0eToxfS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXN0b3J5Ym9hcmQtZnJhbWVwcmV2aWV3LXRpbWVzdGFtcHtkaXNwbGF5OmluaXRpYWx9Lnl0cC1pbmxpbmUtcHJldmlldy1tb2RlIC55dHAtc3Rvcnlib2FyZC1mcmFtZXByZXZpZXctaW1ne29wYWNpdHk6MX0ueXRwLWlubGluZS1wcmV2aWV3LW1vZGUgLnl0cC1zdG9yeWJvYXJkLWZyYW1lcHJldmlldy10aW1lc3RhbXB7ZGlzcGxheTppbml0aWFsfS55dHAtc2J7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxvYXQ6bm9uZX0ueXRwLXNiIC55dHAtc2ItdW5zdWJzY3JpYmUsLnl0cC1zYi55dHAtc2Itc3Vic2NyaWJlZCAueXRwLXNiLXN1YnNjcmliZXtkaXNwbGF5Om5vbmV9Lnl0cC1zYi55dHAtc2Itc3Vic2NyaWJlZCAueXRwLXNiLXVuc3Vic2NyaWJle2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fS55dHAtc2Itc3Vic2NyaWJlLC55dHAtc2ItdW5zdWJzY3JpYmV7Ym9yZGVyLXJhZGl1czoxOHB4O2JvcmRlcjpub25lO2RpcmVjdGlvbjpsdHI7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2xldHRlci1zcGFjaW5nOi4wMDdweDtsaW5lLWhlaWdodDoxNnB4O3BhZGRpbmc6MTBweCAxNnB4O3doaXRlLXNwYWNlOm5vd3JhcDstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lfS55dHAtc2hvcnRzLW1vZGUgLnl0cC1zYi1zdWJzY3JpYmUsLnl0cC1zaG9ydHMtbW9kZSAueXRwLXNiLXVuc3Vic2NyaWJle2JvcmRlci1yYWRpdXM6M3B4O3BhZGRpbmc6M3B4IDZweDtmb250LXdlaWdodDo1MDB9Lnl0cC1zYi1zdWJzY3JpYmUsYS55dHAtc2Itc3Vic2NyaWJle2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMDMwMzAzfS55dHAtc2hvcnRzLW1vZGUgLnl0cC1zYi1zdWJzY3JpYmUsLnl0cC1zaG9ydHMtbW9kZSBhLnl0cC1zYi1zdWJzY3JpYmV7YmFja2dyb3VuZC1jb2xvcjojZmZmfS55dHAtc2Itc3Vic2NyaWJlIC55dHAtc2ItY291bnR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOCl9Lnl0cC1zYi11bnN1YnNjcmliZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpO2NvbG9yOiNmZmZ9Lnl0cC1zaG9ydHMtbW9kZSAueXRwLXNiLXVuc3Vic2NyaWJle2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Y29sb3I6I2NjYzt0ZXh0LXRyYW5zZm9ybTpub25lfS55dHAtc2Itc3Vic2NyaWJlLnl0cC1zYi1kaXNhYmxlZCwueXRwLXNiLXVuc3Vic2NyaWJlLnl0cC1zYi1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDMsMTQ0LDEzOSk7Y3Vyc29yOmRlZmF1bHR9Lnl0cC1zYi1zdWJzY3JpYmU6Zm9jdXMsLnl0cC1zYi11bnN1YnNjcmliZTpmb2N1c3tvdXRsaW5lOm5vbmV9Lnl0cC1zYi55dHAtc2ItY2xhc3NpY3tiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JvcmRlci1yYWRpdXM6MnB4O21hcmdpbjo0cHggMH0ueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi1zdWJzY3JpYmUueXRwLXNiLWRpc2FibGVkLC55dHAtc2ItY2xhc3NpYyAueXRwLXNiLXVuc3Vic2NyaWJlLnl0cC1zYi1kaXNhYmxlZHtvcGFjaXR5Oi41O2N1cnNvcjpkZWZhdWx0fS55dHAtc2ItdGV4dHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleH0ueXRwLXNiLWNvdW50e21hcmdpbi1sZWZ0OjRweH0ueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi1zdWJzY3JpYmUsLnl0cC1zYi1jbGFzc2ljIC55dHAtc2ItdW5zdWJzY3JpYmV7Ym9yZGVyLXJhZGl1czoycHg7Zm9udC1zaXplOjEycHghaW1wb3J0YW50O2ZvbnQtd2VpZ2h0OjQwMDtwYWRkaW5nOjAhaW1wb3J0YW50O3RleHQtdHJhbnNmb3JtOm5vbmV9Lnl0cC1zYi1jbGFzc2ljIC55dHAtc2Itc3Vic2NyaWJle2JvcmRlcjoxcHggc29saWQgI2U2MjExN30ueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi11bnN1YnNjcmliZXtib3JkZXI6MXB4IHNvbGlkICNjY2N9Lnl0cC1zYi1jbGFzc2ljIC55dHAtc2ItY291bnQsLnl0cC1zYi1jbGFzc2ljIC55dHAtc2ItdGV4dHtwYWRkaW5nOjNweCA2cHh9Lnl0cC1zYi1jbGFzc2ljIC55dHAtc2ItY291bnR7bWFyZ2luOi0xcHg7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjJweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czoycHh9Lnl0cC1zYi1jbGFzc2ljIC55dHAtc2Itc3Vic2NyaWJlIC55dHAtc2ItY291bnR7Ym9yZGVyLWxlZnQ6MH0ueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi1zdWJzY3JpYmUgLnl0cC1zYi1jb3VudCwueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi11bnN1YnNjcmliZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTAsMjUwLDI1MCl9Lnl0cC1zYi1jbGFzc2ljIC55dHAtc2Itc3Vic2NyaWJlIC55dHAtc2ItdGV4dHtjb2xvcjojZmVmZWZlO2JhY2tncm91bmQtY29sb3I6I2U2MjExN30ueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi1jb3VudCwueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi11bnN1YnNjcmliZSAueXRwLXNiLXRleHR7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2NvbG9yOiM3MzczNzN9Lnl0cC1zYi1jbGFzc2ljIC55dHAtc2ItaWNvbntoZWlnaHQ6MTJweDttYXJnaW4tcmlnaHQ6NnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDoycHg7d2lkdGg6MTZweH0ueXRwLWJpZy1tb2RlIC55dHAtc2Itc3Vic2NyaWJlLC55dHAtYmlnLW1vZGUgLnl0cC1zYi11bnN1YnNjcmliZXtib3JkZXItcmFkaXVzOjIycHh9Lnl0cC1zYi1jbGFzc2ljIC55dHAtc2Itc3Vic2NyaWJlIC55dHAtc2ItaWNvbntiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQU1DQVlBQUFCcjV6MkJBQUFBblVsRVFWUTRUMlA4Ly8rL0p3TUR3MXdHQmdaSkJ0TEFjd1lHaG1URy8vLy9QeU5ETTh5cTV5QUQvcE5tTWFwcW5BWThrNUpnRUZteGxJSE56aG12K1RnTmVNckp5Y0Fvd01rZ05ITTZBNGRmT0U1RGNCcnduSk9UNGYvdkh3eU1iQXdNWEduSkRQd1Q1bUExaEVnRGtoajRKNEFpQ2hNUTlzS01hUXdjL2hHa2U0SGlRQ1EyYWlsTlNDOUFCbmhCazdJRXNiWkMxVDFsWUdCSUF3QlMxVXhCRTkvMmlBQUFBQUJKUlU1RXJrSmdnZz09KX0ueXRwLXNiLWNsYXNzaWMgLnl0cC1zYi11bnN1YnNjcmliZSAueXRwLXNiLWljb257YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFNQ0FZQUFBQnI1ejJCQUFBQS9VbEVRVlE0VDZXU01Vb0VRUkJGNjA4aWFMcVo0QW5FMERPSVlHWXVHTmpkTTRqUmlMa1lqU0lzTEYwdGdwa2dFM2dBY2NEVUc1aDZBQ01OcDc1TW9NeXV5bzVzcDlYMWZ0WC9CVm53WWNGKytSY2dwYlJHY2lJaVkrLzlReWMrR0JCajNNeXk3RnBFUm1ZMkNTR2NEUWFvNmk2QTgwNlE1TEgzL3U1cjlha0pxcXBhS2N2eW8rY0xWUFVFd0tHSXZKblpmZ2podWUvYk4wQlZqMFRrd016eVBNK2ZVa3JMSk1jQXRrbStBTmh6enIzT210NEg3QUM0RkpFbEVia2d1UVZnZytSajI3YWhLSXIzM3hLYldpSEd1QTdnQnNCcTk5bk1ycHFtT2EzcnV2MHI3aDhwcEpSR0pDT0FlK2ZjN2J3N0dSemo0QW5tS2M3V1B3RldSRjBOYzlSUXh3QUFBQUJKUlU1RXJrSmdnZz09KX0uY2FwdGlvbi13aW5kb3d7cG9zaXRpb246YWJzb2x1dGU7bGluZS1oZWlnaHQ6bm9ybWFsO3otaW5kZXg6NDE7cG9pbnRlci1ldmVudHM6YXV0bztjdXJzb3I6bW92ZTtjdXJzb3I6LXdlYmtpdC1ncmFiO2N1cnNvcjpncmFiOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmV9Lnl0cC1jYXB0aW9uLXdpbmRvdy1jb250YWluZXJ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtwb2ludGVyLWV2ZW50czpub25lfS55dHAtbmF0aXZlLWNvbnRyb2xzIC5jYXB0aW9uLXdpbmRvd3t6LWluZGV4OjIxNDc0ODM2NDd9LmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy10b3B7bWFyZ2luLXRvcDo0OHB4Oy13ZWJraXQtdHJhbnNpdGlvbjptYXJnaW4tYm90dG9tIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxtYXJnaW4tdG9wIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm1hcmdpbi1ib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG1hcmdpbi10b3AgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LXRvcHttYXJnaW4tdG9wOjYwcHh9Lnl0cC1iaWctbW9kZSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LXRvcHttYXJnaW4tdG9wOjY5cHh9Lnl0cC1iaWctbW9kZS55dHAtZW1iZWQ6bm90KC5hZC1zaG93aW5nKSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LXRvcHttYXJnaW4tdG9wOjg5cHh9Lnl0cC1hdXRvaGlkZSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LXRvcCwueXRwLWhpZGUtaW5mby1iYXIgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy10b3B7bWFyZ2luLXRvcDowOy13ZWJraXQtdHJhbnNpdGlvbjptYXJnaW4tYm90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG1hcmdpbi10b3AgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjptYXJnaW4tYm90dG9tIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG1hcmdpbi10b3AgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWF1dG9oaWRlLWFjdGl2ZSAuY2FwdGlvbi13aW5kb3d7cG9pbnRlci1ldmVudHM6bm9uZX15dGQtcmVlbC12aWRlby1yZW5kZXJlciAuc2hvcnQtdmlkZW8tY29udGFpbmVyIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctdG9we21hcmdpbi10b3A6NjlweH0uY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbXttYXJnaW4tYm90dG9tOjYxcHg7LXdlYmtpdC10cmFuc2l0aW9uOm1hcmdpbi1ib3R0b20gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG1hcmdpbi10b3AgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246bWFyZ2luLWJvdHRvbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSksbWFyZ2luLXRvcCAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZpbmUtc2NydWJiaW5nLWVuYWJsZSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbSwueXRwLWZpbmUtc2NydWJiaW5nLWVuYWJsZSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbXttYXJnaW4tYm90dG9tOjExMHB4fS55dHAtZmluZS1zY3J1YmJpbmctZW5hYmxlLnl0cC1hZC1vdmVybGF5LW9wZW4gLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbToyMDBweH0ueXRwLWJpZy1tb2RlLnl0cC1maW5lLXNjcnViYmluZy1lbmFibGUgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbToxNTVweH0ueXRwLWVtYmVkIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9te21hcmdpbi1ib3R0b206NTNweH0ueXRwLWJpZy1tb2RlIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9te21hcmdpbi1ib3R0b206NzBweH0ueXRwLWF1dG9oaWRlIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9tLC55dHAtaGlkZS1jb250cm9scyAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbSwueXRwLW11dGVkLWF1dG9wbGF5IC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9te21hcmdpbi1ib3R0b206MDstd2Via2l0LXRyYW5zaXRpb246bWFyZ2luLWJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxtYXJnaW4tdG9wIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246bWFyZ2luLWJvdHRvbSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxtYXJnaW4tdG9wIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYXV0b2hpZGUueXRwLWRlbGhpLW1vZGVybiAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbSwueXRwLWF1dG9oaWRlLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9tLC55dHAtYXV0b2hpZGUueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b20sLnl0cC1hdXRvaGlkZS55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtYmlnLW1vZGUgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b20sLnl0cC1oaWRlLWNvbnRyb2xzLnl0cC1kZWxoaS1tb2Rlcm4gLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b20sLnl0cC1oaWRlLWNvbnRyb2xzLnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9tLC55dHAtaGlkZS1jb250cm9scy55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbSwueXRwLWhpZGUtY29udHJvbHMueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcueXRwLWJpZy1tb2RlIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9tLC55dHAtbXV0ZWQtYXV0b3BsYXkueXRwLWRlbGhpLW1vZGVybiAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbSwueXRwLW11dGVkLWF1dG9wbGF5Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9tLC55dHAtbXV0ZWQtYXV0b3BsYXkueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b20sLnl0cC1tdXRlZC1hdXRvcGxheS55dHAtZGVsaGktbW9kZXJuLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZy55dHAtYmlnLW1vZGUgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbTowfS55dHAtbmF0aXZlLWNvbnRyb2xzIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9te21hcmdpbi1ib3R0b206NDVweDstd2Via2l0LXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmV9Lnl0cC1hZC1vdmVybGF5LW9wZW4gLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbToxNTFweH0ueXRwLWVtYmVkLnl0cC1hZC1vdmVybGF5LW9wZW4gLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbToxNDNweH0ueXRwLWJpZy1tb2RlLnl0cC1hZC1vdmVybGF5LW9wZW4gLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbToxNjBweH0ueXRwLWRlbGhpLW1vZGVybiAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbXttYXJnaW4tYm90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgNzJweCkgKyAxNHB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgMTRweCl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tbWV0YWRhdGEtYm90dG9tIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9te21hcmdpbi1ib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIDE1NHB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20ueXRwLWJpZy1tb2RlIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9te21hcmdpbi1ib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA5NnB4KSArIDE1NHB4KX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1ncmlkLXBlZWtpbmcgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgMTRweCArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1iaWctbW9kZSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbXttYXJnaW4tYm90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyAxNHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC5jYXB0aW9uLXdpbmRvdy55dHAtY2FwdGlvbi13aW5kb3ctYm90dG9te21hcmdpbi1ib3R0b206Y2FsYyh2YXIoLS15dC1kZWxoaS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA3MnB4KSArIDE1NHB4ICsgdmFyKC0teXRwLWdyaWQtcGVlay1oZWlnaHQpKX0ueXRwLWRlbGhpLW1vZGVybi55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nLnl0cC1iaWctbW9kZSAuY2FwdGlvbi13aW5kb3cueXRwLWNhcHRpb24td2luZG93LWJvdHRvbXttYXJnaW4tYm90dG9tOmNhbGModmFyKC0teXQtZGVsaGktYmlnLW1vZGUtYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgOTZweCkgKyAxNTRweCArIHZhcigtLXl0cC1ncmlkLXBlZWstaGVpZ2h0KSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUgLmNhcHRpb24td2luZG93Lnl0cC1jYXB0aW9uLXdpbmRvdy1ib3R0b217ZGlzcGxheTpub25lO29wYWNpdHk6MH0uaHRtbDUtdmlkZW8tcGxheWVyIC5jYXB0aW9uLXdpbmRvdy55dHAtZHJhZ2dpbmcsLmh0bWw1LXZpZGVvLXBsYXllci55dHAtYWQtb3ZlcmxheS1vcGVuIC5jYXB0aW9uLXdpbmRvdy55dHAtZHJhZ2dpbmcsLmh0bWw1LXZpZGVvLXBsYXllci55dHAtZGVsaGktbW9kZXJuIC5jYXB0aW9uLXdpbmRvdy55dHAtZHJhZ2dpbmd7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MDstd2Via2l0LXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmU7Y3Vyc29yOm1vdmU7Y3Vyc29yOi13ZWJraXQtZ3JhYmJpbmc7Y3Vyc29yOmdyYWJiaW5nfS55dHAtY2FwdGlvbi13aW5kb3ctcm9sbHVwLnl0cC1yb2xsdXAtbW9kZXtvdmVyZmxvdzpoaWRkZW59LmNhcHRpb24td2luZG93IC55dHAtaWNvbiwuY2FwdGlvbi13aW5kb3cgc3Zne3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7dmVydGljYWwtYWxpZ246Ym90dG9tO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDoxZW07bWF4LWhlaWdodDoxZW19Lnl0cC1lbWJlZCAuY2FwdGlvbi13aW5kb3cgLnl0cC1pY29uLC55dHAtZW1iZWQgLmNhcHRpb24td2luZG93IHN2Z3t3aWR0aDo0MHB4O2hlaWdodDo0MHB4fS55dHAtYmlnLW1vZGUgLmNhcHRpb24td2luZG93IHN2Z3t3aWR0aDo1NHB4O2hlaWdodDo1NHB4fS55dHAtY2FwdGlvbi13aW5kb3ctcm9sbHVwLnl0cC1yb2xsdXAtbW9kZSAuY2FwdGlvbnMtdGV4dHstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjQzM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNDMzcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC40MzNzIGN1YmljLWJlemllcigwLDAsLjIsMSl9LmNhcHRpb24tZWRpdHtvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTowO2JhY2tncm91bmQ6cmdiYSg4LDgsOCwuNzUpO2JvcmRlcjpub25lO3BhZGRpbmc6MDtjdXJzb3I6cG9pbnRlcn0uY2FwdGlvbi1lZGl0IHN2Z3ttYXgtaGVpZ2h0OjYwJTttYXgtd2lkdGg6NjAlfS5jYXB0aW9uLWVkaXQ6Zm9jdXMsLmNhcHRpb24td2luZG93OmZvY3VzIC5jYXB0aW9uLWVkaXQsLnl0cC1jYXB0aW9uLXdpbmRvdy1yb2xsdXAgLmNhcHRpb24tZWRpdDpob3ZlciwueXRwLWNhcHRpb24td2luZG93LXJvbGx1cDpob3ZlciAuY2FwdGlvbi1lZGl0e29wYWNpdHk6MX0uaHRtbDUtdmlkZW8tcGxheWVyIC5jYXB0aW9uLXZpc3VhbC1saW5lIC55dHAtY2FwdGlvbi1zZWdtZW50OmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDouMjVlbTtwYWRkaW5nLXRvcDowfS5odG1sNS12aWRlby1wbGF5ZXIgLmNhcHRpb24tdmlzdWFsLWxpbmUgLnl0cC1jYXB0aW9uLXNlZ21lbnQ6bGFzdC1jaGlsZHtwYWRkaW5nLXJpZ2h0Oi4yNWVtO3BhZGRpbmctYm90dG9tOjB9Lmh0bWw1LXZpZGVvLXBsYXllciAueXRwLXZlcnRpY2FsLWNhcHRpb24gLmNhcHRpb24tdmlzdWFsLWxpbmUgLnl0cC1jYXB0aW9uLXNlZ21lbnQ6Zmlyc3QtY2hpbGR7cGFkZGluZy10b3A6LjI1ZW07cGFkZGluZy1sZWZ0OjB9Lmh0bWw1LXZpZGVvLXBsYXllciAueXRwLXZlcnRpY2FsLWNhcHRpb24gLmNhcHRpb24tdmlzdWFsLWxpbmUgLnl0cC1jYXB0aW9uLXNlZ21lbnQ6bGFzdC1jaGlsZHtwYWRkaW5nLWJvdHRvbTouMjVlbTtwYWRkaW5nLXJpZ2h0OjB9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9ue2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy1tb3otanVzdGlmeS1jb250ZW50OmxlZnQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6bGVmdDstd2Via2l0LWJveC1wYWNrOmxlZnQ7anVzdGlmeS1jb250ZW50OmxlZnR9Lnl0cC1maW5lLXNjcnViYmluZy1lbmFibGUgLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdle2JvdHRvbTo2MHB4O2xlZnQ6NjBweH0ueXRwLWJpZy1tb2RlLnl0cC1maW5lLXNjcnViYmluZy1lbmFibGUgLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdle2JvdHRvbTo5MHB4O2xlZnQ6OTBweH0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2V7ei1pbmRleDo2MDtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MTZweDtsZWZ0OjE2cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC44KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjMpO2JvcmRlci1yYWRpdXM6MzRweDtoZWlnaHQ6MzRweDt3aWR0aDozNHB4O3BhZGRpbmc6N3B4O2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxiYWNrZ3JvdW5kLWNvbG9yIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpLHdpZHRoIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLGJhY2tncm91bmQtY29sb3IgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksd2lkdGggLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpO29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXRpbWVseS1zaGVsZi1wcmVzZW50e2Rpc3BsYXk6bm9uZX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtZnVsbHNjcmVlbi55dHAtdGltZWx5LXNoZWxmLXByZXNlbnR7ZGlzcGxheTp1bnNldH0uYWQtc2hvd2luZyAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtZnVsbHNjcmVlbi55dHAtdGltZWx5LXNoZWxmLXByZXNlbnR7ZGlzcGxheTpub25lfXl0ZC13YXRjaC1mbGV4eVt0aGVhdGVyXSAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXRpbWVseS1zaGVsZi1wcmVzZW50e2Rpc3BsYXk6dW5zZXR9eXRkLXdhdGNoLWZsZXh5W3RoZWF0ZXJdIC5hZC1zaG93aW5nIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS55dHAtdGltZWx5LXNoZWxmLXByZXNlbnR7ZGlzcGxheTpub25lfS55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtb3ZlcmxheS1ib3R0b20tbGVmdCAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2V7cG9zaXRpb246cmVsYXRpdmU7Ym90dG9tOjA7bGVmdDowfS55dHAtZGVsaGktbW9kZXJuIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZXstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0scmdiYSgwLDAsMCwuNikpO2JvcmRlcjpub25lO2hlaWdodDo0MHB4O3dpZHRoOjQwcHg7Ym9yZGVyLXJhZGl1czo0MHB4O3BhZGRpbmc6MTJweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2U6bm90KC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1leHBhbmRlZCl7cGFkZGluZzowIDhweH0uYWQtc2hvd2luZyAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2V7ZGlzcGxheTpub25lfS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZVthcmlhLWhpZGRlbj10cnVlXXstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSx0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSx3aWR0aCAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpLHdpZHRoIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtvcGFjaXR5OjB9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlOmhvdmVyey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxiYWNrZ3JvdW5kLWNvbG9yIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLHRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpLHdpZHRoIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLGJhY2tncm91bmQtY29sb3IgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSksdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksd2lkdGggLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpO2JhY2tncm91bmQtY29sb3I6cmdiYSgzMywzMywzMywuOTUpfS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS13aXRoLWNvbnRyb2xzey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTU5cHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTlweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTU5cHgpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS13aXRoLWNvbnRyb2xzey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygodmFyKC0teXQtZGVsaGktYm90dG9tLWNvbnRyb2xzLWhlaWdodCwgNzJweCkgKyA2cHgpKi0xKSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgNnB4KSotMSkpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLXl0LWRlbGhpLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDcycHgpICsgNnB4KSotMSkpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZSAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2Utd2l0aC1jb250cm9sc3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKGNhbGMoKHZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLWJvdHRvbS1jb250cm9scy1oZWlnaHQsIDk2cHgpICsgNnB4KSotMSkpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKCh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA5NnB4KSArIDZweCkqLTEpKTt0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKCh2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1ib3R0b20tY29udHJvbHMtaGVpZ2h0LCA5NnB4KSArIDZweCkqLTEpKX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtZnVsbHNjcmVlbi55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS13aXRoLWNvbnRyb2xzey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTgwcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtODBweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTgwcHgpfS55dHAtb3ZlcmxheXMtY29udGFpbmVyIC55dHAtb3ZlcmxheS1ib3R0b20tbGVmdCAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2Utd2l0aC1jb250cm9sc3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2U6aXMoLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWV4cGFuZGVkLC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1jb250ZW50LWZvcndhcmQpe3dpZHRoOmF1dG99Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWljb24tY29udGFpbmVye2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4fS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1pY29ue2hlaWdodDoxOHB4O3dpZHRoOjE4cHg7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhkcFpIUm9QU0l6TmlJZ2FHVnBaMmgwUFNJek5pSWdabWxzYkQwaUkyWm1aaUlnZG1sbGQwSnZlRDBpTUNBd0lESTBJREkwSWo0OGNHRjBhQ0JtYVd4c1BTSnViMjVsSWlCa1BTSk5NQ0F3YURJMGRqSTBTREI2SWk4K1BIQmhkR2dnWkQwaVRURTRJRFpvTFRKak1DMHlMakl4TFRFdU56a3ROQzAwTFRSVE9DQXpMamM1SURnZ05rZzJZeTB4TGpFZ01DMHlJQzQ1TFRJZ01uWXhNbU13SURFdU1TNDVJRElnTWlBeWFERXlZekV1TVNBd0lESXRMamtnTWkweVZqaGpNQzB4TGpFdExqa3RNaTB5TFRKdExUWXRNbU14TGpFZ01DQXlJQzQ1SURJZ01tZ3ROR013TFRFdU1TNDVMVElnTWkweWJUWWdNVFpJTmxZNGFESjJNbU13SUM0MU5TNDBOU0F4SURFZ01YTXhMUzQwTlNBeExURldPR2cwZGpKak1DQXVOVFV1TkRVZ01TQXhJREZ6TVMwdU5EVWdNUzB4Vmpob01ub2lMejQ4TDNOMlp6ND0pOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1zaXplOmNvbnRhaW47LXdlYmtpdC1mbGV4LXNocmluazowO2ZsZXgtc2hyaW5rOjB9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWljb24ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtaWNvbi1jdXN0b20taWNvbiwueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtaWNvbi55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1pY29uLWN1c3RvbS1pY29ue2JhY2tncm91bmQtaW1hZ2U6bm9uZTt3aWR0aDoyMHB4O2hlaWdodDoyMHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1pY29ue2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLXRpdGxle2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojZmZmO21hcmdpbi1sZWZ0OjZweDttYXJnaW4tcmlnaHQ6NnB4O2N1cnNvcjpwb2ludGVyfS55dHAtZGVsaGktbW9kZXJuIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS10aXRsZXtmb250LXdlaWdodDo1MDB9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLXRpdGxlOmVtcHR5e2Rpc3BsYXk6bm9uZX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2V7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC42KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDhweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoOHB4KTtib3JkZXItcmFkaXVzOjhweDt3aWR0aDoyOThweDtoZWlnaHQ6NjRweDtwYWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tY29udGFpbmVye2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYWxpZ24taXRlbXM6c3RyZXRjaDstd2Via2l0LWJveC1hbGlnbjpzdHJldGNoO2FsaWduLWl0ZW1zOnN0cmV0Y2g7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjI5MHB4O3BhZGRpbmc6NHB4fS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1kZXRhaWxze2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbW96LWp1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7Zm9udC1zaXplOjEycHg7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxO2ZsZXg6MTtwYWRkaW5nOjAgOHB4O292ZXJmbG93OmhpZGRlbn0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tZGV0YWlscyAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tdGl0bGV7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Zm9udC1zaXplOjE0cHh9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWRldGFpbHMgLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLXN1YnRpdGxle292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO29wYWNpdHk6Ljc7Zm9udC13ZWlnaHQ6NDAwfS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1kZXRhaWxzIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1tZXRhZGF0YS10ZXh0e29wYWNpdHk6Ljc7Zm9udC13ZWlnaHQ6NTAwfS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1pbWd7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZDojZmZmO2hlaWdodDo1NnB4O3dpZHRoOjU2cHg7b3ZlcmZsb3c6aGlkZGVufS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1pbWc+aW1ne3dpZHRoOmluaGVyaXQ7aGVpZ2h0OmluaGVyaXQ7LW8tb2JqZWN0LWZpdDpjb250YWluO29iamVjdC1maXQ6Y29udGFpbn06aXMoOmlzKC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1wcmV2aWV3LWNvbGxhcHNlZCwueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtcHJldmlldy1leHBhbmRlZCksLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWNvbnRlbnQtZm9yd2FyZC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1leHBhbmRlZCkgLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWljb257ZGlzcGxheTpub25lfTppcygueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtcHJldmlldy1jb2xsYXBzZWQsLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLXByZXZpZXctZXhwYW5kZWQpIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1leHBhbmRlZC1jb250ZW50LWNvbnRhaW5lcntkaXNwbGF5Om5vbmV9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWNvbnRlbnQtZm9yd2FyZC1jb250YWluZXJ7ZGlzcGxheTotbW96LWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tcHJvZHVjdC10aHVtYm5haWx7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6MDttYXJnaW4taW5saW5lLXN0YXJ0OjA7b3BhY2l0eTowO3dpZHRoOjA7LXdlYmtpdC10cmFuc2l0aW9uOm1hcmdpbi1pbmxpbmUtc3RhcnQgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpLG9wYWNpdHkgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSwtd2Via2l0LW1hcmdpbi1zdGFydCAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSwtd2Via2l0LW1hcmdpbi1zdGFydCAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjptYXJnaW4taW5saW5lLXN0YXJ0IC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxvcGFjaXR5IC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOm1hcmdpbi1pbmxpbmUtc3RhcnQgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpLG9wYWNpdHkgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpLC13ZWJraXQtbWFyZ2luLXN0YXJ0IC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTstd2Via2l0LXRyYW5zaXRpb246d2lkdGggLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb246d2lkdGggLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpO2JvcmRlci1yYWRpdXM6NHB4O2hlaWdodDoxOHB4fS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1wcm9kdWN0LXRodW1ibmFpbDpmaXJzdC1jaGlsZHstd2Via2l0LXRyYW5zaXRpb246bWFyZ2luLWlubGluZS1zdGFydCAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksb3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpLC13ZWJraXQtbWFyZ2luLXN0YXJ0IC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpLC13ZWJraXQtbWFyZ2luLXN0YXJ0IC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOm1hcmdpbi1pbmxpbmUtc3RhcnQgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpLG9wYWNpdHkgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb246bWFyZ2luLWlubGluZS1zdGFydCAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksb3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksLXdlYmtpdC1tYXJnaW4tc3RhcnQgLjNzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1wcm9kdWN0LXRodW1ibmFpbHtoZWlnaHQ6MjRweH0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtcHJldmlldy1leHBhbmRlZCAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tcHJvZHVjdC10aHVtYm5haWx7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6MnB4O21hcmdpbi1pbmxpbmUtc3RhcnQ6MnB4O29wYWNpdHk6MTt3aWR0aDoxOHB4fS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1wcmV2aWV3LWV4cGFuZGVkIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1wcm9kdWN0LXRodW1ibmFpbDpmaXJzdC1jaGlsZHstd2Via2l0LW1hcmdpbi1zdGFydDowO21hcmdpbi1pbmxpbmUtc3RhcnQ6MH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtcHJldmlldy1leHBhbmRlZCAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tcHJvZHVjdC10aHVtYm5haWx7d2lkdGg6MjRweH06aXMoLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLXByZXZpZXctY29sbGFwc2VkLC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1jb250ZW50LWZvcndhcmQueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtZXhwYW5kZWQpIC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1wcm9kdWN0LXRodW1ibmFpbDpmaXJzdC1jaGlsZHstd2Via2l0LW1hcmdpbi1zdGFydDoycHg7bWFyZ2luLWlubGluZS1zdGFydDoycHg7b3BhY2l0eToxO3dpZHRoOjE4cHg7LXdlYmtpdC1tYXJnaW4tc3RhcnQ6MDttYXJnaW4taW5saW5lLXN0YXJ0OjB9Lnl0cC1kZWxoaS1tb2Rlcm4gOmlzKC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1wcmV2aWV3LWNvbGxhcHNlZCwueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtY29udGVudC1mb3J3YXJkLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWV4cGFuZGVkKSAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tcHJvZHVjdC10aHVtYm5haWw6Zmlyc3QtY2hpbGR7d2lkdGg6MjRweH0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tbW9yZS1wcm9kdWN0cy1pY29ue2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MTJweDt3aWR0aDoycHg7Ym9yZGVyLXJhZGl1czowIDEycHggMTJweCAwO2JhY2tncm91bmQtY29sb3I6I2ZmZjtvcGFjaXR5Oi4zMjstd2Via2l0LW1hcmdpbi1zdGFydDoycHg7bWFyZ2luLWlubGluZS1zdGFydDoycHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLW1vcmUtcHJvZHVjdHMtaWNvbntoZWlnaHQ6MThweDtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWNvbnRlbnQtZm9yd2FyZC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1leHBhbmRlZCAueXRwLXN1Z2dlc3RlZC1hY3Rpb24tbW9yZS1wcm9kdWN0cy1pY29ue2Rpc3BsYXk6dW5zZXR9Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWRpc21pc3MtYnV0dG9uLWljb257aGVpZ2h0OjE4cHg7d2lkdGg6MThweDtiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXlOQ0lnYUdWcFoyaDBQU0l5TkNJZ1ptbHNiRDBpSTJabVppSWdkbWxsZDBKdmVEMGlNQ0F3SURJMElESTBJajQ4Y0dGMGFDQmtQU0pOTVRZdU1qUWdPUzR4TnlBeE15NDBNU0F4TW13eUxqZ3pJREl1T0RNdE1TNDBNU0F4TGpReFRERXlJREV6TGpReGJDMHlMamd6SURJdU9ETXRNUzQwTVMweExqUXhUREV3TGpVNUlERXlJRGN1TnpZZ09TNHhOMnd4TGpReExURXVOREZNTVRJZ01UQXVOVGxzTWk0NE15MHlMamd6ZWswMExqa3pJRFF1T1ROakxUTXVPVEVnTXk0NU1TMHpMamt4SURFd0xqSTBJREFnTVRRdU1UUWdNeTQ1TVNBekxqa3hJREV3TGpJMElETXVPVEVnTVRRdU1UUWdNQ0F6TGpreExUTXVPVEVnTXk0NU1TMHhNQzR5TkNBd0xURTBMakUwTFRNdU9TMHpMamt4TFRFd0xqSTBMVE11T1RFdE1UUXVNVFFnTUcweE15NDBNeTQzTVdNekxqVXhJRE11TlRFZ015NDFNU0E1TGpJeUlEQWdNVEl1TnpOekxUa3VNaklnTXk0MU1TMHhNaTQzTXlBd0xUTXVOVEV0T1M0eU1pQXdMVEV5TGpjell6TXVOVEl0TXk0MU1TQTVMakl5TFRNdU5URWdNVEl1TnpNZ01DSXZQand2YzNablBnPT0pOy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1zaXplOmNvbnRhaW47b3BhY2l0eTouNjstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWRpc21pc3MtYnV0dG9uLWljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweDtiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0krUEhCaGRHZ2dabWxzYkQwaUkyWm1aaUlnWkQwaVRURTVJRFl1TkRFZ01UY3VOVGtnTlNBeE1pQXhNQzQxT1NBMkxqUXhJRFVnTlNBMkxqUXhJREV3TGpVNUlERXlJRFVnTVRjdU5Ua2dOaTQwTVNBeE9TQXhNaUF4TXk0ME1TQXhOeTQxT1NBeE9TQXhPU0F4Tnk0MU9TQXhNeTQwTVNBeE1ub2lMejQ4TDNOMlp6ND0pO29wYWNpdHk6MX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtZGlzbWlzcy1idXR0b24taWNvbjpob3ZlcntvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZS1leHBhbmRlZC1jb250ZW50LWNvbnRhaW5lcntkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtZmxleC1zaHJpbms6MDtmbGV4LXNocmluazowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO29wYWNpdHk6MX0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtZXhwYW5kZWQtY29udGVudC1jb250YWluZXJbYXJpYS1oaWRkZW49dHJ1ZV17LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO29wYWNpdHk6MH0ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2Utd2l0aC1vZmZsaW5lLXNsYXRle2JvdHRvbTozMnB4fS55dHAtZmVhdHVyZWQtcHJvZHVjdC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZXtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjYpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoOHB4KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpO2JvcmRlci1yYWRpdXM6OHB4O3dpZHRoOjI4MHB4O2hlaWdodDo2NHB4O3BhZGRpbmc6MDtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtZmVhdHVyZWQtcHJvZHVjdC55dHAtc3VnZ2VzdGVkLWFjdGlvbi1iYWRnZXstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0scmdiYSgwLDAsMCwuNikpfS55dHAtZmVhdHVyZWQtcHJvZHVjdD4ueXRwLXN1Z2dlc3RlZC1hY3Rpb24tYmFkZ2UtZXhwYW5kZWQtY29udGVudC1jb250YWluZXI+Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLXRpdGxle2Rpc3BsYXk6bm9uZX0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtY29udGFpbmVye2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYWxpZ24taXRlbXM6c3RyZXRjaDstd2Via2l0LWJveC1hbGlnbjpzdHJldGNoO2FsaWduLWl0ZW1zOnN0cmV0Y2g7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjI3MnB4O3BhZGRpbmc6NHB4fS55dHAtZmVhdHVyZWQtcHJvZHVjdC1jb250YWluZXI+Lnl0cC1zdWdnZXN0ZWQtYWN0aW9uLWJhZGdlLWRpc21pc3MtYnV0dG9uLWljb257YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJK1BIQmhkR2dnWm1sc2JEMGlJMlptWmlJZ1pEMGlUVEU1SURZdU5ERWdNVGN1TlRrZ05TQXhNaUF4TUM0MU9TQTJMalF4SURVZ05TQTJMalF4SURFd0xqVTVJREV5SURVZ01UY3VOVGtnTmk0ME1TQXhPU0F4TWlBeE15NDBNU0F4Tnk0MU9TQXhPU0F4T1NBeE55NDFPU0F4TXk0ME1TQXhNbm9pTHo0OEwzTjJaejQ9KTtvcGFjaXR5Oi44O2hlaWdodDoxOHB4O3dpZHRoOjE4cHg7YXNwZWN0LXJhdGlvOjF9Lnl0cC1mZWF0dXJlZC1wcm9kdWN0LXRodW1ibmFpbHtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjRweDtiYWNrZ3JvdW5kOiNmZmY7aGVpZ2h0OjU2cHg7d2lkdGg6NTZweDtvdmVyZmxvdzpoaWRkZW59Lnl0cC1mZWF0dXJlZC1wcm9kdWN0LXRodW1ibmFpbD5pbWd7d2lkdGg6aW5oZXJpdDtoZWlnaHQ6aW5oZXJpdDstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWlufS55dHAtZmVhdHVyZWQtcHJvZHVjdC1vcGVuLWluLW5ld3twb3NpdGlvbjphYnNvbHV0ZTtib3R0b206NHB4O3JpZ2h0OjRweDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjgpO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlHWnBiR3c5SWlObVptWWlJSFpwWlhkQ2IzZzlJakFnTUNBME9DQTBPQ0krUEhCaGRHZ2dabWxzYkQwaWJtOXVaU0lnWkQwaVRUQWdNR2cwT0hZME9FZ3dlaUl2UGp4d1lYUm9JR1E5SWswek9DQXpPRWd4TUZZeE1HZ3hORlkyU0RFd1l5MHlMakl4SURBdE5DQXhMamM1TFRRZ05IWXlPR013SURJdU1qRWdNUzQzT1NBMElEUWdOR2d5T0dNeUxqSXhJREFnTkMweExqYzVJRFF0TkZZeU5HZ3ROSHBOTWpnZ05uWTBhRGN1TVRkTU1UVXVOVEVnTWprdU5qWnNNaTQ0TXlBeUxqZ3pURE00SURFeUxqZ3pWakl3YURSV05ub2lMejQ4TDNOMlp6ND0pO3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7b3ZlcmZsb3c6aGlkZGVufS55dHAtZmVhdHVyZWQtcHJvZHVjdC1kZXRhaWxze2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbW96LWp1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7Zm9udC1zaXplOjEycHg7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxO2ZsZXg6MTtwYWRkaW5nOjAgOHB4O292ZXJmbG93OmhpZGRlbn0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtZGV0YWlscyAueXRwLWZlYXR1cmVkLXByb2R1Y3QtdGl0bGV7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Zm9udC1zaXplOjE0cHh9Lnl0cC1mZWF0dXJlZC1wcm9kdWN0LWRldGFpbHMgLnl0cC1mZWF0dXJlZC1wcm9kdWN0LWNvdW50ZG93bntmb250LWZhbWlseTpZb3VUdWJlIFNhbnMsUm9ib3RvLHNhbnMtc2VyaWY7Zm9udC1zaXplOjJyZW07bGluZS1oZWlnaHQ6Mi44cmVtO2ZvbnQtd2VpZ2h0OjcwMH0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtZGV0YWlscyAueXRwLWZlYXR1cmVkLXByb2R1Y3QtYWZmaWxpYXRlLWRpc2NsYWltZXJ7Zm9udC13ZWlnaHQ6NTAwfS55dHAtZmVhdHVyZWQtcHJvZHVjdC1kZXRhaWxzIC55dHAtZmVhdHVyZWQtcHJvZHVjdC1hZmZpbGlhdGUtZGlzY2xhaW1lci13aGVuLXByb21vdGlvbi10ZXh0LWVuYWJsZWR7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbi1yaWdodDo0cHg7b3BhY2l0eTouN30ueXRwLWZlYXR1cmVkLXByb2R1Y3QtaW5mby1pY29ue2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlHWnBiR3c5SWlObVptWWlJSFpwWlhkQ2IzZzlJakFnTUNBME9DQTBPQ0krUEhCaGRHZ2dabWxzYkQwaWJtOXVaU0lnWkQwaVRUQWdNR2cwT0hZME9FZ3dlaUl2UGp4d1lYUm9JR1E5SWsweU1pQXpOR2cwVmpJeWFDMDBlbTB5TFRNd1F6RXlMamsxSURRZ05DQXhNaTQ1TlNBMElESTBjemd1T1RVZ01qQWdNakFnTWpBZ01qQXRPQzQ1TlNBeU1DMHlNRk16TlM0d05TQTBJREkwSURSdE1DQXpObU10T0M0NE1pQXdMVEUyTFRjdU1UZ3RNVFl0TVRaVE1UVXVNVGdnT0NBeU5DQTRjekUySURjdU1UZ2dNVFlnTVRZdE55NHhPQ0F4TmkweE5pQXhObTB0TWkweU1tZzBkaTAwYUMwMGVpSXZQand2YzNablBnPT0pO2hlaWdodDoxOHB4O3dpZHRoOjE4cHg7bWFyZ2luLXJpZ2h0OjhweDtvcGFjaXR5Oi44O2FzcGVjdC1yYXRpbzoxfS55dHAtZmVhdHVyZWQtcHJvZHVjdC1vdmVyZmxvdy1pY29ue2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlpMDFJQzAxSURNMklETTJJajQ4Y0dGMGFDQm1hV3hzUFNJalptWm1JaUJrUFNKTk1USWdPR014TGpFZ01DQXlMUzQ1SURJdE1uTXRMamt0TWkweUxUSXRNaUF1T1MweUlESWdMamtnTWlBeUlESnRNQ0F5WXkweExqRWdNQzB5SUM0NUxUSWdNbk11T1NBeUlESWdNaUF5TFM0NUlESXRNaTB1T1MweUxUSXRNbTB3SURaakxURXVNU0F3TFRJZ0xqa3RNaUF5Y3k0NUlESWdNaUF5SURJdExqa2dNaTB5TFM0NUxUSXRNaTB5SWk4K1BDOXpkbWMrKTtoZWlnaHQ6MjBweDt3aWR0aDoyMHB4O29wYWNpdHk6Ljg7YXNwZWN0LXJhdGlvOjF9Lnl0cC1mZWF0dXJlZC1wcm9kdWN0LWRldGFpbHMgLnl0cC1mZWF0dXJlZC1wcm9kdWN0LXZlbmRvcntvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWZlYXR1cmVkLXByb2R1Y3QtZGV0YWlscyAueXRwLWZlYXR1cmVkLXByb2R1Y3QtdmVuZG9yLXdoZW4tcHJvbW90aW9uLXRleHQtZW5hYmxlZHtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvcGFjaXR5Oi43O2ZvbnQtd2VpZ2h0OjQwMH0ueXRwLWZlYXR1cmVkLXByb2R1Y3Qtd2hlbi1wcm9tb3Rpb24tdGV4dC1lbmFibGVke2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4fS55dHAtZmVhdHVyZWQtcHJvZHVjdC13aGVuLXByb21vdGlvbi10ZXh0LWVuYWJsZWQgLnl0cC1mZWF0dXJlZC1wcm9kdWN0LXRyZW5kaW5ne292ZXJmbG93OmhpZGRlbn0ueXRwLWZlYXR1cmVkLXByb2R1Y3Qtd2hlbi1wcm9tb3Rpb24tdGV4dC1lbmFibGVkIC55dHAtZmVhdHVyZWQtcHJvZHVjdC10cmVuZGluZy10ZXh0e29wYWNpdHk6Ljc7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lnl0cC1mZWF0dXJlZC1wcm9kdWN0LXRyZW5kaW5nPi55dHAtZmVhdHVyZWQtcHJvZHVjdC10cmVuZGluZy1pY29ue2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdMVGsyTUNBNU5qQWdPVFl3SWo0OGNHRjBhQ0JtYVd4c1BTSWpabVptSWlCa1BTSnRNVEl6TFRJME1DMDBNeTAwTXlBeU9USXRNamt4SURFMk55QXhOamNnTWpReExUSTBNVWcyTlROMkxUWXdhREl5TjNZeU1qZG9MVFU1ZGkweE1qTk1OVE00TFRNeU1TQXpOekV0TkRnNGVpSXZQand2YzNablBnPT0pO2hlaWdodDoxMnB4O3dpZHRoOjEycHg7bWFyZ2luLXRvcDoycHg7bWFyZ2luLXJpZ2h0OjRweDtvcGFjaXR5Oi44O2FzcGVjdC1yYXRpbzoxfS55dHAtZmVhdHVyZWQtcHJvZHVjdC1kZXRhaWxzIC55dHAtZmVhdHVyZWQtcHJvZHVjdC10cmVuZGluZ3tkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleH0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtZGV0YWlscyAueXRwLWZlYXR1cmVkLXByb2R1Y3QtcHJpY2UtY29udGFpbmVye292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtZmVhdHVyZWQtcHJvZHVjdC1kZXRhaWxzIC55dHAtZmVhdHVyZWQtcHJvZHVjdC1wcmljZS1jb250YWluZXIgLnl0cC1mZWF0dXJlZC1wcm9kdWN0LXByaWNlLXdoZW4tcHJvbW90aW9uLXRleHQtZW5hYmxlZHtvcGFjaXR5Oi43O2ZvbnQtd2VpZ2h0OjQwMH0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtZGV0YWlscyAueXRwLWZlYXR1cmVkLXByb2R1Y3QtcHJpY2UtY29udGFpbmVyIC55dHAtZmVhdHVyZWQtcHJvZHVjdC1wcm9tb3Rpb24tdGV4dHtmb250LXdlaWdodDo1MDA7bWFyZ2luLWxlZnQ6NHB4fS55dHAtZmVhdHVyZWQtcHJvZHVjdC1kZXRhaWxzIC55dHAtZmVhdHVyZWQtcHJvZHVjdC1zYWxlcy1vcmlnaW5hbC1wcmljZXt0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoO21hcmdpbi1sZWZ0OjRweH0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtZGV0YWlscyAueXRwLWZlYXR1cmVkLXByb2R1Y3QtcHJpY2UtZHJvcC1yZWZlcmVuY2UtcHJpY2V7bWFyZ2luLWxlZnQ6NHB4fS55dHAtZmVhdHVyZWQtcHJvZHVjdC1zYWxlcy1vcmlnaW5hbC1wcmljZTplbXB0eXtkaXNwbGF5Om5vbmV9Lnl0cC1mZWF0dXJlZC1wcm9kdWN0LXByb21vdGlvbi10ZXh0OmVtcHR5e2Rpc3BsYXk6bm9uZX0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtcHJpY2UtZHJvcC1yZWZlcmVuY2UtcHJpY2U6ZW1wdHl7ZGlzcGxheTpub25lfS55dHAtZmVhdHVyZWQtcHJvZHVjdC1hZmZpbGlhdGUtZGlzY2xhaW1lci13aGVuLXByb21vdGlvbi10ZXh0LWVuYWJsZWQ6ZW1wdHl7ZGlzcGxheTpub25lfS55dHAtZmVhdHVyZWQtcHJvZHVjdC1leGNsdXNpdmUtYmFkZ2UtY29udGFpbmVyLC55dHAtZmVhdHVyZWQtcHJvZHVjdC1leGNsdXNpdmUtY29udGFpbmVye2Rpc3BsYXk6LW1vei1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDstd2Via2l0LWp1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0Oy13ZWJraXQtYm94LXBhY2s6c3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lnl0cC1mZWF0dXJlZC1wcm9kdWN0LWV4Y2x1c2l2ZS1iYWRnZXtkaXNwbGF5Oi1tb3otZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AscmlnaHQgdG9wLGZyb20oIzdmMGU3ZiksY29sb3Itc3RvcCgjZGIxZGRiKSx0bygjZWQ1NThmKSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCM3ZjBlN2YsI2RiMWRkYiwjZWQ1NThmKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjN2YwZTdmLCNkYjFkZGIsI2VkNTU4Zik7Ym9yZGVyLXJhZGl1czo0cHg7cGFkZGluZzoycHggNHB4fS55dHAtZmVhdHVyZWQtcHJvZHVjdC1leGNsdXNpdmUtYmFkZ2UtdGV4dHtsaW5lLWhlaWdodDoxMDAlO2ZvbnQtd2VpZ2h0OjcwMH0ueXRwLWZlYXR1cmVkLXByb2R1Y3QtZGV0YWlscyAueXRwLWZlYXR1cmVkLXByb2R1Y3QtZXhjbHVzaXZlLWNvdW50ZG93bnttYXJnaW4tbGVmdDo0cHg7bGluZS1oZWlnaHQ6MTAwJX0ueXRwLXRpbWUtZGlzcGxheXtmb250LXNpemU6MTA5JTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3A7cGFkZGluZzowIDVweDt3aGl0ZS1zcGFjZTpub3dyYXA7bGluZS1oZWlnaHQ6NDdweH0ueXRwLWVtYmVkLnl0cC1lbWJlZC1tb2JpbGUgLnl0cC10aW1lLWRpc3BsYXksLnl0cC1lbWJlZC55dHAtZW1iZWQtbW9iaWxlLnl0cC1zbWFsbC1tb2RlIC55dHAtdGltZS1kaXNwbGF5e2xpbmUtaGVpZ2h0OjUxcHh9Lnl0cC1lbWJlZCAueXRwLXRpbWUtZGlzcGxheSwueXRwLXNtYWxsLW1vZGUgLnl0cC10aW1lLWRpc3BsYXl7bGluZS1oZWlnaHQ6MzlweH0ueXRwLWJpZy1tb2RlIC55dHAtdGltZS1kaXNwbGF5e2xpbmUtaGVpZ2h0OjUzcHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10aW1lLWRpc3BsYXk6bm90KC55dHAtbWluaXBsYXllci11aSAqKXtkaXNwbGF5OmlubGluZS1ibG9jazstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDp2YXIoLS15dC1kZWxoaS1waWxsLWhlaWdodCw0OHB4KTtmb250LXNpemU6MTRweDttaW4td2lkdGg6MDtwYWRkaW5nOnZhcigtLXl0LWRlbGhpLXBpbGwtdG9wLWhlaWdodCwxMnB4KSA4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKSAueXRwLXRpbWUtZGlzcGxheXtsaW5lLWhlaWdodDp2YXIoLS15dC1kZWxoaS1iaWctbW9kZS1waWxsLWhlaWdodCw1NnB4KTtmb250LXNpemU6MTZweDtwYWRkaW5nOnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtdG9wLWhlaWdodCwyMHB4KSAxMnB4fS55dHAtdm9sdW1lLXNsaWRlci1hY3RpdmUgLnl0cC10aW1lLWRpc3BsYXktYWxsb3ctYXV0b2hpZGV7ZGlzcGxheTpub25lfS55dHAtZGVsaGktbW9kZXJuIC55dHAtdGltZS13cmFwcGVyOm5vdCgueXRwLW1pbmlwbGF5ZXItdWkgKil7bWluLXdpZHRoOjA7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OnZhcigtLXl0LWRlbGhpLXBpbGwtaGVpZ2h0LDQ4cHgpO2JvcmRlci1yYWRpdXM6MjhweDtwYWRkaW5nOjAgMTZweDstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0tbGlnaHQscmdiYSgwLDAsMCwuMykpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRpbWUtd3JhcHBlcjpub3QoLnl0cC1taW5pcGxheWVyLXVpICopIHN2Z3std2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLXhzbWFsbC13aWR0aC1tb2RlIC55dHAtdGltZS13cmFwcGVyOm5vdCgueXRwLW1pbmlwbGF5ZXItdWkgKil7aGVpZ2h0OjQwcHg7bGluZS1oZWlnaHQ6NDBweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRpbWUtd3JhcHBlcjpub3QoLnl0cC1taW5pcGxheWVyLXVpICopOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6NHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXItcmFkaXVzOjI4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10aW1lLXdyYXBwZXI6bm90KC55dHAtbWluaXBsYXllci11aSAqKTpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjEpKTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRpbWUtd3JhcHBlcjpub3QoLnl0cC1taW5pcGxheWVyLXVpICopOmFjdGl2ZTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS10b25hbC1ob3ZlcixyZ2JhKDI1NSwyNTUsMjU1LC4yKSk7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4ueXRwLWJpZy1tb2RlOm5vdCgueXRwLXhzbWFsbC13aWR0aC1tb2RlKSAueXRwLXRpbWUtd3JhcHBlcntoZWlnaHQ6dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsNTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1sdW1pbm9zaXR5Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10aW1lLXdyYXBwZXI6bm90KC55dHAtbWluaXBsYXllci11aSAqKXtiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpsdW1pbm9zaXR5Oy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1kaWZmZXJlbmNlLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10aW1lLXdyYXBwZXI6bm90KC55dHAtbWluaXBsYXllci11aSAqKXtiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpkaWZmZXJlbmNlOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1leGNsdXNpb24ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRpbWUtd3JhcHBlcjpub3QoLnl0cC1taW5pcGxheWVyLXVpICope2JhY2tncm91bmQ6cmdiYSg4MCw4MCw4MCwuNik7YmFja2dyb3VuZC1ibGVuZC1tb2RlOmV4Y2x1c2lvbjstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpfS55dHAtdGltZS1jdXJyZW50LC55dHAtdGltZS1kdXJhdGlvbiwueXRwLXRpbWUtc2VwYXJhdG9ye2NvbG9yOiNkZGR9Lnl0cC10aW1lLXdyYXBwZXItZGVsaGl7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10aW1lLWN1cnJlbnR7Y29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LXRleHQtcHJpbWFyeSwjZmZmKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRpbWUtZHVyYXRpb24sLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10aW1lLXNlcGFyYXRvcntjb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktdGV4dC1wcmltYXJ5LCNmZmYpO2ZvbnQtd2VpZ2h0OjQwMH0ueXRwLWxpdmUgLnl0cC10aW1lLWNvbnRlbnRze2Rpc3BsYXk6bm9uZX0qIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbGl2ZS1iYWRnZSwueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbGl2ZS1iYWRnZSwueXRwLXNtYWxsLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1saXZlLWJhZGdle2Rpc3BsYXk6bm9uZTt3aWR0aDphdXRvO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ueXRwLWJpZy1tb2RlLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1saXZlLWJhZGdlLC55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbGl2ZS1iYWRnZSwueXRwLXNtYWxsLW1vZGUueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWxpdmUtYmFkZ2V7dGV4dC10cmFuc2Zvcm06bm9uZX0ueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbGl2ZSAueXRwLWxpdmUtYmFkZ2UsLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1saXZlIC55dHAtbGl2ZS1iYWRnZXtkaXNwbGF5OmlubGluZS1ibG9ja30ueXRwLWxpdmUtYmFkZ2U6YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjZweDtoZWlnaHQ6NnB4O3ZlcnRpY2FsLWFsaWduOjQlO21hcmdpbi1yaWdodDo1cHg7YmFja2dyb3VuZDojNzU3NTc1O2NvbnRlbnQ6IiI7Ym9yZGVyLXJhZGl1czo2cHh9Lnl0cC1iaWctbW9kZSAueXRwLWxpdmUtYmFkZ2U6YmVmb3Jle3dpZHRoOjlweDtoZWlnaHQ6OXB4O2JvcmRlci1yYWRpdXM6OXB4fS5odG1sNS12aWRlby1wbGF5ZXIgLnl0cC1saXZlLWJhZGdlW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0sLmh0bWw1LXZpZGVvLXBsYXllciAueXRwLWxpdmUtYmFkZ2VbZGlzYWJsZWRde29wYWNpdHk6MX0ueXRwLWxpdmViYWRnZS1jb2xvciAueXRwLWxpdmUtYmFkZ2UueXRwLWxpdmUtYmFkZ2UtaXMtbGl2ZWhlYWQ6YmVmb3Jle2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtYnJhbmQscmdiYSgyMjUsMCw0NSwuOSkpfS55dHAtdGltZS1kaXNwbGF5Lnl0cC1jbGlwe292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleH0ueXRwLWNsaXAtd2F0Y2gtZnVsbC12aWRlby1idXR0b24sLnl0cC1jbGlwLXdhdGNoLWZ1bGwtdmlkZW8tYnV0dG9uLXNlcGFyYXRvciwueXRwLXRpbWUtY2xpcC1pY29ue2Rpc3BsYXk6bm9uZX0ueXRwLWNsaXAgLnl0cC1jbGlwLXdhdGNoLWZ1bGwtdmlkZW8tYnV0dG9uLC55dHAtY2xpcCAueXRwLWNsaXAtd2F0Y2gtZnVsbC12aWRlby1idXR0b24tc2VwYXJhdG9yLC55dHAtY2xpcCAueXRwLXRpbWUtY2xpcC1pY29ue2Rpc3BsYXk6aW5saW5lfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2xpcCAueXRwLWNsaXAtd2F0Y2gtZnVsbC12aWRlby1idXR0b24tc2VwYXJhdG9ye2Rpc3BsYXk6bm9uZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNsaXAgLnl0cC1jbGlwLXdhdGNoLWZ1bGwtdmlkZW8tYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmctdG9wOjEycHg7bWFyZ2luLWxlZnQ6OHB4O2hlaWdodDp2YXIoLS15dC1kZWxoaS1waWxsLWhlaWdodCw0OHB4KTtib3JkZXItcmFkaXVzOjI4cHg7cGFkZGluZzowIDE2cHg7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLWxpZ2h0LHJnYmEoMCwwLDAsLjMpKTt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jbGlwIC55dHAtY2xpcC13YXRjaC1mdWxsLXZpZGVvLWJ1dHRvbiBzdmd7LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfS55dHAtZGVsaGktbW9kZXJuLnl0cC1iaWctbW9kZTpub3QoLnl0cC14c21hbGwtd2lkdGgtbW9kZSkgLnl0cC1jbGlwIC55dHAtY2xpcC13YXRjaC1mdWxsLXZpZGVvLWJ1dHRvbntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6dmFyKC0teXQtZGVsaGktYmlnLW1vZGUtcGlsbC1oZWlnaHQsNTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1sdW1pbm9zaXR5Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jbGlwIC55dHAtY2xpcC13YXRjaC1mdWxsLXZpZGVvLWJ1dHRvbntiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpsdW1pbm9zaXR5Oy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1kaWZmZXJlbmNlLnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jbGlwIC55dHAtY2xpcC13YXRjaC1mdWxsLXZpZGVvLWJ1dHRvbntiYWNrZ3JvdW5kOnJnYmEoODAsODAsODAsLjYpO2JhY2tncm91bmQtYmxlbmQtbW9kZTpkaWZmZXJlbmNlOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCl9Lnl0cC1kZWxoaS1tb2Rlcm4td2l0aC1leGNsdXNpb24ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNsaXAgLnl0cC1jbGlwLXdhdGNoLWZ1bGwtdmlkZW8tYnV0dG9ue2JhY2tncm91bmQ6cmdiYSg4MCw4MCw4MCwuNik7YmFja2dyb3VuZC1ibGVuZC1tb2RlOmV4Y2x1c2lvbjstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpfS55dHAtdGltZS1jbGlwLWljb257bWFyZ2luLWxlZnQ6MTZweDttYXJnaW4tcmlnaHQ6NXB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtdGltZS1jbGlwLWljb257bWFyZ2luLWxlZnQ6MH0ueXRwLXRpbWUtY2xpcC1pY29uIHN2Z3t3aWR0aDoxNnB4O2hlaWdodDoxNnB4O21hcmdpbi1ib3R0b206LTNweDtmaWxsOiNkZGR9Lnl0cC1jbGlwLXdhdGNoLWZ1bGwtdmlkZW8tYnV0dG9uLXNlcGFyYXRvcnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjhweDtmb250LXdlaWdodDo3MDB9Lnl0cC1jbGlwLXdhdGNoLWZ1bGwtdmlkZW8tYnV0dG9ue2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjcwMDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLXNtYWxsLW1vZGUgLnl0cC1jbGlwLXdhdGNoLWZ1bGwtdmlkZW8tYnV0dG9uLC55dHAtc21hbGwtbW9kZSAueXRwLWNsaXAtd2F0Y2gtZnVsbC12aWRlby1idXR0b24tc2VwYXJhdG9ye2Rpc3BsYXk6bm9uZX0ueXRwLWVtYmVkIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtbGl2ZSAueXRwLWxpdmUtYmFkZ2V7d2lkdGg6YXV0b30ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRpbWUtY29udGVudHN7b3ZlcmZsb3c6aGlkZGVufS55dHAtbm8tbGluayxzcGFuLnl0cC10aXRsZS1jaGFubmVsLW5hbWV7Y3Vyc29yOmRlZmF1bHQ7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRwLXRpdGxle292ZXJmbG93OmhpZGRlbjstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fS55dHAtZnVsbHNjcmVlbi1tZXRhZGF0YS1ib3R0b20gLnl0cC10aXRsZSAueXRwLXRpdGxlLXRleHQsLnl0cC1mdWxsc2NyZWVuLW1ldGFkYXRhLXRvcCAueXRwLXRpdGxlIC55dHAtdGl0bGUtdGV4dCwueXRwLWhpZGUtZnVsbHNjcmVlbi10aXRsZSAueXRwLXRpdGxlIC55dHAtdGl0bGUtdGV4dHtkaXNwbGF5Om5vbmV9Lnl0cC10aXRsZS10ZXh0e3ZlcnRpY2FsLWFsaWduOnRvcDttYXgtd2lkdGg6MTAwJTtwYWRkaW5nLXRvcDoxMnB4O2ZvbnQtc2l6ZToxOHB4Oy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTtmbGV4OjE7cGFkZGluZy1sZWZ0OjRweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWJpZy1tb2RlIC55dHAtdGl0bGUtdGV4dHtwYWRkaW5nLXRvcDoxOHB4O2ZvbnQtc2l6ZToyN3B4O3BhZGRpbmctbGVmdDo2cHh9Lnl0cC1lbWJlZDpub3QoLmFkLXNob3dpbmcpIC55dHAtdGl0bGUtdGV4dHtwYWRkaW5nLXRvcDoyMXB4fS55dHAtc2hvcnRzLW1vZGUueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykgLnl0cC10aXRsZS10ZXh0e2ZvbnQtc2l6ZToxNnB4O3doaXRlLXNwYWNlOm5vcm1hbDtwYWRkaW5nLXRvcDoxNHB4O3BhZGRpbmctcmlnaHQ6NTNweH0ueXRwLWJpZy1tb2RlLnl0cC1lbWJlZDpub3QoLmFkLXNob3dpbmcpIC55dHAtdGl0bGUtdGV4dHtwYWRkaW5nLXRvcDozNnB4fS55dHAtYmlnLW1vZGUueXRwLXNob3J0cy1tb2RlLnl0cC1lbWJlZDpub3QoLmFkLXNob3dpbmcpIC55dHAtdGl0bGUtdGV4dHtwYWRkaW5nLXRvcDoxN3B4O2ZvbnQtc2l6ZToyM3B4O3BhZGRpbmctcmlnaHQ6NjRweH0ueXRwLXRpdGxlLXRleHQtbGFyZ2VyLWxpbmUtaGVpZ2h0IC55dHAtdGl0bGUtdGV4dHtsaW5lLWhlaWdodDoxLjM1fS55dHAtc2hvcnRzLW1vZGUueXRwLWVtYmVkOm5vdCguYWQtc2hvd2luZykgLnl0cC10aXRsZS1saW5re292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDozOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt2aXNpYmlsaXR5OnZpc2libGV9Lnl0cC10aXRsZS1zdWJ0ZXh0e2ZvbnQtc2l6ZToxNHB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtdGl0bGUtY2hhbm5lbC1uYW1le21hcmdpbi10b3A6LjI1cmVtO2Rpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LXRleHQtc2Vjb25kYXJ5KX0ueXRwLWJpZy1tb2RlIC55dHAtdGl0bGUtc3VidGV4dHtmb250LXNpemU6MjBweH0ueXRwLXRpdGxlLXN1YnRleHQgYTplbXB0eXtkaXNwbGF5Om5vbmV9Lnl0cC10aXRsZS1mdWxsZXJzY3JlZW4tbGlua3tjdXJzb3I6ZGVmYXVsdH0ueXRwLW1lbnVpdGVtLXRvZ2dsZS1jaGVja2JveHtoZWlnaHQ6MTRweDt3aWR0aDozNnB4O2Zsb2F0OnJpZ2h0O3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1yYWRpdXM6MTRweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjMpOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjA4cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246YWxsIC4wOHMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTstbXMtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX0ueXRwLWJpZy1tb2RlIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94e2hlaWdodDoyMXB4O3dpZHRoOjU0cHg7Ym9yZGVyLXJhZGl1czoyMXB4fS55dHAtbWVudWl0ZW1bYXJpYS1jaGVja2VkPXRydWVdIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94e2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1yZWQtaW5kaWNhdG9yLCNlMTAwMmQpfS55dHAtbWVudWl0ZW1bYXJpYS1kaXNhYmxlZD10cnVlXSAueXRwLW1lbnVpdGVtLXRvZ2dsZS1jaGVja2JveHtvcGFjaXR5Oi4zfS55dHAtbWVudWl0ZW1bYXJpYS1kaXNhYmxlZD10cnVlXXtjb2xvcjojOTA5MDkwfS55dHAtbWVudWl0ZW1bYXJpYS1kaXNhYmxlZD10cnVlXSBwYXRoe2ZpbGw6IzkwOTA5MH0ueXRwLWNvbnRleHRtZW51IC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94e2JvcmRlci1yYWRpdXM6MDtoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS55dHAtY29udGV4dG1lbnUueXRwLWJpZy1tb2RlIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94e2hlaWdodDozNnB4O3dpZHRoOjM2cHh9Lnl0cC1jb250ZXh0bWVudSAueXRwLW1lbnVpdGVtIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94e2JhY2tncm91bmQ6bm9uZX0ueXRwLWNvbnRleHRtZW51IC55dHAtbWVudWl0ZW1bYXJpYS1jaGVja2VkPXRydWVdIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94e2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSStQSEJoZEdnZ1ptbHNiRDBpSTJabVppSWdaRDBpVFRrZ01UWXVNaUEwTGpnZ01USnNMVEV1TkNBeExqUk1PU0F4T1NBeU1TQTNiQzB4TGpRdE1TNDBlaUl2UGp3dmMzWm5QZz09KX0ueXRwLWNvbnRleHRtZW51IC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94OmFmdGVye2NvbnRlbnQ6bm9uZX0ueXRwLWNvbnRleHRtZW51IC55dHAtbWVudWl0ZW1bYXJpYS1jaGVja2VkPXRydWVdIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94OmJlZm9yZXstd2Via2l0LXRyYW5zZm9ybTpub25lOy1tcy10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX0ueXRwLWJpZy1tb2RlIC55dHAtY29udGV4dG1lbnUgLnl0cC1tZW51aXRlbVthcmlhLWNoZWNrZWQ9dHJ1ZV0gLnl0cC1tZW51aXRlbS10b2dnbGUtY2hlY2tib3g6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOm5vbmU7LW1zLXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfS55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO2hlaWdodDoyMHB4O3dpZHRoOjIwcHg7Ym9yZGVyLXJhZGl1czoyMHB4O21hcmdpbi10b3A6LTNweDtiYWNrZ3JvdW5kLWNvbG9yOiNiZGJkYmQ7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDVweCAwIHJnYmEoMCwwLDAsLjYpO2JveC1zaGFkb3c6MCAxcHggNXB4IDAgcmdiYSgwLDAsMCwuNik7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuMDhzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjphbGwgLjA4cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtYmlnLW1vZGUgLnl0cC1tZW51aXRlbS10b2dnbGUtY2hlY2tib3g6YWZ0ZXJ7bGVmdDowO2hlaWdodDozMHB4O3dpZHRoOjMwcHg7Ym9yZGVyLXJhZGl1czozMHB4O21hcmdpbi10b3A6ZGl2aWRlKHN1YigyMXB4LDMwcHgpLDIpfS55dHAtbWVudWl0ZW1bYXJpYS1jaGVja2VkPXRydWVdIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94OmFmdGVye2JhY2tncm91bmQtY29sb3I6I2ZmZjstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDE2cHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgxNnB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxNnB4KX0ueXRwLWJpZy1tb2RlIC55dHAtbWVudWl0ZW1bYXJpYS1jaGVja2VkPXRydWVdIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94OmFmdGVyey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjRweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDI0cHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDI0cHgpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94LC55dHAtZGVsaGktbW9kZXJuLmJpZy1tb2RlIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94e2hlaWdodDoyNHB4O3dpZHRoOjQwcHg7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtbWVkaXVtLWxpZ2h0LHJnYmEoMCwwLDAsLjMpKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLW1lbnVpdGVtW2FyaWEtY2hlY2tlZD10cnVlXSAueXRwLW1lbnVpdGVtLXRvZ2dsZS1jaGVja2JveCwueXRwLWRlbGhpLW1vZGVybi5iaWctbW9kZSAueXRwLW1lbnVpdGVtW2FyaWEtY2hlY2tlZD10cnVlXSAueXRwLW1lbnVpdGVtLXRvZ2dsZS1jaGVja2JveHtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1idXR0b24tcHJpbWFyeSxyZ2JhKDI1NSwyNTUsMjU1LC4zKSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1tZW51aXRlbVthcmlhLWRpc2FibGVkPXRydWVdIC55dHAtbWVudWl0ZW0tdG9nZ2xlLWNoZWNrYm94LC55dHAtZGVsaGktbW9kZXJuLmJpZy1tb2RlIC55dHAtbWVudWl0ZW1bYXJpYS1kaXNhYmxlZD10cnVlXSAueXRwLW1lbnVpdGVtLXRvZ2dsZS1jaGVja2JveHtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bS1saWdodCxyZ2JhKDAsMCwwLC4zKSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1tZW51aXRlbS10b2dnbGUtY2hlY2tib3g6YWZ0ZXIsLnl0cC1kZWxoaS1tb2Rlcm4uYmlnLW1vZGUgLnl0cC1tZW51aXRlbS10b2dnbGUtY2hlY2tib3g6YWZ0ZXJ7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDttYXJnaW4tbGVmdDoycHg7bWFyZ2luLXRvcDoycHg7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQtY29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LXRleHQtc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjcpKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLW1lbnVpdGVtW2FyaWEtY2hlY2tlZD10cnVlXSAueXRwLW1lbnVpdGVtLXRvZ2dsZS1jaGVja2JveDphZnRlciwueXRwLWRlbGhpLW1vZGVybi5iaWctbW9kZSAueXRwLW1lbnVpdGVtW2FyaWEtY2hlY2tlZD10cnVlXSAueXRwLW1lbnVpdGVtLXRvZ2dsZS1jaGVja2JveDphZnRlcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDE2cHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgxNnB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxNnB4KX0ueXRwLXRvb2x0aXB7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAzO2ZvbnQtc2l6ZToxMTglO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxNXB4Oy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtwb2ludGVyLWV2ZW50czpub25lfS55dHAtdG9vbHRpcDpub3QoLnl0cC1mcm9zdGVkLWdsYXNzLWZhZGUtdHJhbnNpdGlvbil7b3BhY2l0eTowfS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcDpub3QoLnl0cC1mcm9zdGVkLWdsYXNzLWZhZGUtdHJhbnNpdGlvbil7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSx0b3AgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSx0b3AgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSx0b3AgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtYmlnLW1vZGUgLnl0cC10b29sdGlwe2xpbmUtaGVpZ2h0OjIycHh9Lnl0cC10b29sdGlwOm5vdChbYXJpYS1oaWRkZW49dHJ1ZV0pe29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lOy1tcy10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguNCwwLDEsMSksb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxvcGFjaXR5IC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLG9wYWNpdHkgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC10b29sdGlwLnl0cC1wcmV2aWV3e3BhZGRpbmc6MnB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyOCwyOCwyOCwuOSk7Ym9yZGVyLXJhZGl1czoycHh9Lnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlld3tib3JkZXItcmFkaXVzOjEycHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlld3std2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0tbGlnaHQscmdiYSgwLDAsMCwuMykpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3IHN2Z3std2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlldy55dHAtZnJvc3RlZC1nbGFzcy1mYWRlLXRyYW5zaXRpb257b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksdG9wIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksdG9wIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksdG9wIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3Lnl0cC1mcm9zdGVkLWdsYXNzLWZhZGUtdHJhbnNpdGlvbjpub3QoW2FyaWEtaGlkZGVuPXRydWVdKXtvcGFjaXR5OjF9Lnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlldyAueXRwLXRvb2x0aXAtdGl0bGV7cGFkZGluZzowIDlweDt0ZXh0LWFsaWduOnN0YXJ0O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3IC55dHAtdG9vbHRpcC10aXRsZXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6NXB4IDlweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3IC55dHAtdG9vbHRpcC1iZ3ttYXJnaW46NHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcC55dHAtdGV4dC1kZXRhaWwueXRwLXByZXZpZXcgLnl0cC10b29sdGlwLXRpdGxlIC55dHAtdG9vbHRpcC1rZXlib2FyZC1zaG9ydGN1dHttYXJnaW4tbGVmdDo4cHh9Lnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlldyAueXRwLXRvb2x0aXAtdGV4dHtwYWRkaW5nOjAgOXB4O3doaXRlLXNwYWNlOm5vd3JhcH0ueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3IC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dHtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcC55dHAtdGV4dC1kZXRhaWwueXRwLXByZXZpZXcgLnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e2Rpc3BsYXk6bm9uZX0ueXRwLXRvb2x0aXA6bm90KC55dHAtcHJldmlldykgLnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e2JvcmRlci1yYWRpdXM6NHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcDpub3QoLnl0cC1wcmV2aWV3KSAueXRwLXRvb2x0aXAtYm90dG9tLXRleHR7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0cC10b29sdGlwLWJnLC55dHAtdG9vbHRpcC55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCl7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKXtwYWRkaW5nOjFweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXN0eWxlIC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dCwueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXN0eWxlIC55dHAtdG9vbHRpcC10aXRsZXtkaXNwbGF5Om5vbmV9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwOm5vdCgueXRwLXByZXZpZXcpIC55dHAtdG9vbHRpcC1wcm9ncmVzcy1iYXItcGlsbHtkaXNwbGF5Om5vbmV9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1zdHlsZSAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXBpbGx7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDotd2Via2l0LWZpdC1jb250ZW50O3dpZHRoOi1tb3otZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnQ7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOjE4cHg7dG9wOjQ1cHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bS1saWdodCxyZ2JhKDAsMCwwLC4zKSk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcC55dHAtdG9vbHRpcC1wcm9ncmVzcy1iYXItc3R5bGUgLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1waWxsIHN2Z3std2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1zdHlsZSAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXBpbGwgLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1waWxsLXRpdGxle21hcmdpbi1sZWZ0OjhweDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW59Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1zdHlsZSAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXBpbGwgLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1waWxsLXRpdGxlOmVtcHR5e2Rpc3BsYXk6bm9uZX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXN0eWxlOm5vdCgueXRwLXByZXZpZXcpIC55dHAtdG9vbHRpcC1wcm9ncmVzcy1iYXItcGlsbHt0b3A6LTE2cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1zdHlsZSAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXBpbGwueXRwLWZyb3N0ZWQtZ2xhc3MtZmFkZS10cmFuc2l0aW9ue3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbi10b3A6MTBweDt0b3A6dW5zZXQ7bWF4LXdpZHRoOnVuc2V0O2hlaWdodDotd2Via2l0LWZpdC1jb250ZW50O2hlaWdodDotbW96LWZpdC1jb250ZW50O2hlaWdodDpmaXQtY29udGVudDtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSx0b3AgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSx0b3AgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLC13ZWJraXQtdHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSx0b3AgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcC55dHAtdG9vbHRpcC1wcm9ncmVzcy1iYXItc3R5bGU6bm90KC55dHAtcHJldmlldykgLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1waWxsLnl0cC1mcm9zdGVkLWdsYXNzLWZhZGUtdHJhbnNpdGlvbntib3R0b206OHB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcC55dHAtdG9vbHRpcC1wcm9ncmVzcy1iYXItc3R5bGU6bm90KFthcmlhLWhpZGRlbj10cnVlXSkgLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1waWxsLnl0cC1mcm9zdGVkLWdsYXNzLWZhZGUtdHJhbnNpdGlvbntvcGFjaXR5OjF9Lnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1waWxse2Rpc3BsYXk6bm9uZX0ueXRwLWRlbGhpLW1vZGVybi55dHAtYmlnLW1vZGUgLnl0cC10b29sdGlwLnl0cC10b29sdGlwLXByb2dyZXNzLWJhci1zdHlsZSAueXRwLXRvb2x0aXAtcHJvZ3Jlc3MtYmFyLXBpbGx7dG9wOjY3cHh9Lnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlldyAueXRwLXRvb2x0aXAtYmd7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxMnB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MTJweH0ueXRwLXRvb2x0aXAtdGV4dC13cmFwcGVye2JvcmRlci1yYWRpdXM6M3B4fS55dHAtdG9vbHRpcC55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLXRleHQtd3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206NXB4O2xlZnQ6MDt3aWR0aDoxMDAlO3RleHQtYWxpZ246Y2VudGVyO3otaW5kZXg6MX0ueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3IC55dHAtdG9vbHRpcC10ZXh0LXdyYXBwZXJ7bWFyZ2luOjRweCAwO292ZXJmbG93OmhpZGRlbjttYXgtaGVpZ2h0OjQ2cHh9Lnl0cC1iaWctbW9kZSAueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3IC55dHAtdG9vbHRpcC10ZXh0LXdyYXBwZXJ7bWFyZ2luOjZweCAwO21heC1oZWlnaHQ6NjlweH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXA6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC10ZXh0LXdyYXBwZXIueXRwLWZyb3N0ZWQtZ2xhc3MtZmFkZS10cmFuc2l0aW9ue29wYWNpdHk6MDtib3JkZXItcmFkaXVzOjhweDstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0tbGlnaHQscmdiYSgwLDAsMCwuMykpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXA6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC10ZXh0LXdyYXBwZXIueXRwLWZyb3N0ZWQtZ2xhc3MtZmFkZS10cmFuc2l0aW9uIHN2Z3std2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwOm5vdCgueXRwLXRleHQtZGV0YWlsKSAueXRwLXRvb2x0aXAtdGV4dC13cmFwcGVyLnl0cC1mcm9zdGVkLWdsYXNzLWZhZGUtdHJhbnNpdGlvbnstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLHRvcCAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLHRvcCAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLHRvcCAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwOm5vdCgueXRwLXRleHQtZGV0YWlsKTpub3QoW2FyaWEtaGlkZGVuPXRydWVdKSAueXRwLXRvb2x0aXAtdGV4dC13cmFwcGVyLnl0cC1mcm9zdGVkLWdsYXNzLWZhZGUtdHJhbnNpdGlvbntvcGFjaXR5OjF9Lnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI4LDI4LDI4LC45KTtib3JkZXItcmFkaXVzOjJweDtwYWRkaW5nOjVweCA5cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXA6bm90KC55dHAtZnJvc3RlZC1nbGFzcy1mYWRlLXRyYW5zaXRpb24pIC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dHtib3JkZXItcmFkaXVzOjhweDstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZHJvcC1maWx0ZXI6dmFyKC0teXQtZnJvc3RlZC1nbGFzcy1iYWNrZHJvcC1maWx0ZXItb3ZlcnJpZGUsYmx1cigxNnB4KSk7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1tZWRpdW0tbGlnaHQscmdiYSgwLDAsMCwuMykpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXA6bm90KC55dHAtZnJvc3RlZC1nbGFzcy1mYWRlLXRyYW5zaXRpb24pIC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dCBzdmd7LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfS55dHAtdG9vbHRpcC1vcGFxdWUgLnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e2JhY2tncm91bmQtY29sb3I6cmdiKDI4LDI4LDI4KX0ueXRwLXRvb2x0aXAueXRwLXByZXZpZXcgLnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e2Rpc3BsYXk6aW5saW5lO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS55dHAtdG9vbHRpcC1pbWFnZS1lbmFibGVkIC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dHtwYWRkaW5nLWxlZnQ6MzRweH0ueXRwLWJpZy1tb2RlIC55dHAtdG9vbHRpcC1pbWFnZS1lbmFibGVkIC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dHtwYWRkaW5nLWxlZnQ6NDVweH0ueXRwLXRvb2x0aXAueXRwLXRleHQtZGV0YWlsLnl0cC1wcmV2aWV3IC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3BhZGRpbmc6MH0ueXRwLXRvb2x0aXAtYmd7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Om5vbmV9Lnl0cC10b29sdGlwLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lnl0cC10b29sdGlwLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKS55dHAtZnJvc3RlZC1nbGFzcy1mYWRlLXRyYW5zaXRpb246aXMoW2FyaWEtaGlkZGVuPXRydWVdKXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS55dHAtcHJvZ3Jlc3MtYmFyLXNuYXAgLnl0cC10b29sdGlwLWJne291dGxpbmU6MXB4IHNvbGlkICNmZmY7b3V0bGluZS1vZmZzZXQ6LTFweH0ueXRwLXRvb2x0aXAueXRwLXByZXZpZXcgLnl0cC10b29sdGlwLWJne2Rpc3BsYXk6YmxvY2t9Lnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlldyAueXRwLXRvb2x0aXAtYmd7ZmxvYXQ6bGVmdH0ueXRwLWRlbGhpLW1vZGVybiAueXRwLXRvb2x0aXAtYmcueXRwLWZyb3N0ZWQtZ2xhc3MtZmFkZS10cmFuc2l0aW9ue29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLHRvcCAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLHRvcCAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLG9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLHRvcCAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwOm5vdChbYXJpYS1oaWRkZW49dHJ1ZV0pIC55dHAtdG9vbHRpcC1iZy55dHAtZnJvc3RlZC1nbGFzcy1mYWRlLXRyYW5zaXRpb257b3BhY2l0eToxfS55dHAtdG9vbHRpcC1kdXJhdGlvbntkaXNwbGF5Om5vbmV9Lnl0cC10b29sdGlwLnl0cC10ZXh0LWRldGFpbC55dHAtcHJldmlldy55dHAtaGFzLWR1cmF0aW9uIC55dHAtdG9vbHRpcC1kdXJhdGlvbntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjNweDtib3R0b206M3B4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyOCwyOCwyOCwuOSk7cGFkZGluZzoycHggNHB4O2JvcmRlci1yYWRpdXM6MnB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcC55dHAtdGV4dC1kZXRhaWwueXRwLXByZXZpZXcueXRwLWhhcy1kdXJhdGlvbiAueXRwLXRvb2x0aXAtZHVyYXRpb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC42KTtib3JkZXItcmFkaXVzOiNmZmZ9Lnl0cC10b29sdGlwLXRpdGxle2Rpc3BsYXk6bm9uZX0ueXRwLXRvb2x0aXAtdGl0bGUgc3Zne2Rpc3BsYXk6bm9uZX0ueXRwLWJpZy1tb2RlLnl0cC1maW5lLXNjcnViYmluZy1leHAgLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKSAueXRwLXRvb2x0aXAtZWR1e2ZvbnQtc2l6ZToxOHB4fS55dHAtYmlnLW1vZGUueXRwLWZpbmUtc2NydWJiaW5nLWV4cCAueXRwLXByZXZpZXc6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC1lZHUgc3Zne2hlaWdodDoxOHB4O3dpZHRoOjE4cHh9Lnl0cC1maW5lLXNjcnViYmluZy1leHAgLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKSAueXRwLXRvb2x0aXAtZWR1e2Rpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MTAzJTtoZWlnaHQ6YXV0bztmb250LXNpemU6MTJweDtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsLjc1KX0ueXRwLXRvb2x0aXAtZWR1e2Rpc3BsYXk6bm9uZX0ueXRwLWZpbmUtc2NydWJiaW5nLWV4cCAueXRwLXByZXZpZXc6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC1lZHUgc3ZnLC55dHAtcHJvZ3Jlc3MtYmFyLWRlY29yYXRpb24gLnl0cC10b29sdGlwLXRpdGxlIHN2Z3tkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O21hcmdpbi1yaWdodDozcHg7ZmlsbDp3aGl0ZTt0ZXh0LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsLjc1KX0ueXRwLXByZXZpZXc6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC10aXRsZXt3aWR0aDoyMDAlO3RleHQtYWxpZ246Y2VudGVyO3JpZ2h0OjgwcHg7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7aGVpZ2h0OjE2cHg7Ym9yZGVyOjA7dG9wOjQ1cHg7dGV4dC1zaGFkb3c6MCAwIDRweCByZ2JhKDAsMCwwLC43NSl9Lnl0cC1iaWctbW9kZSAueXRwLXRvb2x0aXAueXRwLXByZXZpZXc6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC10aXRsZXt3aWR0aDoyMDAlO3RleHQtYWxpZ246Y2VudGVyO3JpZ2h0OjEyMHB4O3RvcDo2MXB4O2hlaWdodDoyNHB4fS55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e2JhY2tncm91bmQ6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6NDVweDt0ZXh0LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsLjc1KX0ueXRwLWJpZy1tb2RlIC55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLWJvdHRvbS10ZXh0e3RvcDo2NXB4fS55dHAtdG9vbHRpcC1rZXlib2FyZC1zaG9ydGN1dHtkaXNwbGF5Om5vbmV9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC10b29sdGlwLWtleWJvYXJkLXNob3J0Y3V0e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4zMDE5NjA3ODQzKTttaW4td2lkdGg6MTFweDtib3JkZXItcmFkaXVzOjRweDttYXJnaW4tbGVmdDo0cHg7Y29sb3I6I2ZmZjtwYWRkaW5nOjAgMnB4fS55dHAtZGVsaGktbW9kZXJuIC55dHAtdG9vbHRpcC1rZXlib2FyZC1zaG9ydGN1dDplbXB0eXtkaXNwbGF5Om5vbmU7d2lkdGg6MH0ueXRwLXByZXZpZXc6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC10ZXh0LW5vLXRpdGxle3RvcDozM3B4fS55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLXRleHQtbm8tdGl0bGUueXRwLW1vZGVybi10b29sdGlwLXRleHR7dG9wOjI1cHh9Lnl0cC1iaWctbW9kZSAueXRwLXByZXZpZXc6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC10ZXh0LW5vLXRpdGxle3RvcDo0MXB4fS55dHAtdG9vbHRpcC55dHAtdGV4dC1kZXRhaWwgLnl0cC10b29sdGlwLXRpdGxle2Rpc3BsYXk6YmxvY2s7Y29sb3I6I2FhYTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lnl0cC10b29sdGlwLWltYWdle3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czoxMHB4O3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6bm9uZTt0b3A6MnB4O2xlZnQ6N3B4Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1zaXplOmNvbnRhaW59Lnl0cC1iaWctbW9kZSAueXRwLXRvb2x0aXAtaW1hZ2V7d2lkdGg6MjVweDtoZWlnaHQ6MjVweDtib3JkZXItcmFkaXVzOjEyLjVweDt0b3A6M3B4O2xlZnQ6MTBweH0ueXRwLXRvb2x0aXAtaW1hZ2UtZW5hYmxlZCAueXRwLXRvb2x0aXAtaW1hZ2V7ZGlzcGxheTppbmhlcml0fS55dHAtaW5saW5lLXByZXZpZXctbW9kZSAueXRwLXByZXZpZXc6bm90KC55dHAtdGV4dC1kZXRhaWwpIC55dHAtdG9vbHRpcC1ib3R0b20tdGV4dCwueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKSAueXRwLXRvb2x0aXAtYm90dG9tLXRleHR7dG9wOi00cHh9Lnl0cC1pbmxpbmUtcHJldmlldy1tb2RlIC55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLXRleHQtbm8tdGl0bGUsLnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLXRleHQtbm8tdGl0bGV7dG9wOi00cHh9Lnl0cC1pbmxpbmUtcHJldmlldy1tb2RlIC55dHAtcHJldmlldzpub3QoLnl0cC10ZXh0LWRldGFpbCkgLnl0cC10b29sdGlwLWVkdSwueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC1wcmV2aWV3Om5vdCgueXRwLXRleHQtZGV0YWlsKSAueXRwLXRvb2x0aXAtZWR1e2Rpc3BsYXk6bm9uZX0ueXRwLXVubXV0ZS55dHAtcG9wdXB7cG9zaXRpb246YWJzb2x1dGU7dG9wOnN1Yig0OHB4LDEycHgpO2xlZnQ6MDt6LWluZGV4OjEwMDE7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOiMwMDA7Zm9udC1zaXplOjEyNyU7Zm9udC13ZWlnaHQ6NTAwO2JhY2tncm91bmQ6bm9uZTtwYWRkaW5nOjEycHh9Lnl0cC1iaWctbW9kZSAueXRwLXVubXV0ZS55dHAtcG9wdXB7dG9wOnN1Yig0OHB4LDE4cHgpO3BhZGRpbmc6MThweH0ueXRwLWF1dG9oaWRlIC55dHAtdW5tdXRlLC55dHAtaGlkZS1pbmZvLWJhciAueXRwLXVubXV0ZXt0b3A6MH0ueXRwLXVubXV0ZS1pbm5lcntwYWRkaW5nLWxlZnQ6M3B4O3BhZGRpbmctcmlnaHQ6MTJweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSk7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2YxZjFmMTt0ZXh0LXNoYWRvdzpub25lO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0cC1iaWctbW9kZSAueXRwLXVubXV0ZS1pbm5lcntwYWRkaW5nLWxlZnQ6NXB4O3BhZGRpbmctcmlnaHQ6MThweH0ueXRwLXVubXV0ZS1pY29ue3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRwLWVtYmVkIC55dHAtdW5tdXRlLWljb257d2lkdGg6NDBweDtoZWlnaHQ6NDBweH0ueXRwLXVubXV0ZS1pY29uIC55dHAtc3ZnLWZpbGx7ZmlsbDojMDAwfS55dHAtdW5tdXRlLXRleHR7bWF4LXdpZHRoOjIwMHB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lnl0cC1iaWctbW9kZSAueXRwLXVubXV0ZS1pY29ue3dpZHRoOjU0cHg7aGVpZ2h0OjU0cHh9Lnl0cC11bm11dGUueXRwLXBvcHVwLnl0cC11bm11dGUtYW5pbWF0ZWQgLnl0cC11bm11dGUtaW5uZXJ7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOm5vbmU7cGFkZGluZzowfS55dHAtdW5tdXRlLWFuaW1hdGVkIC55dHAtdW5tdXRlLWljb257cGFkZGluZy1sZWZ0OjJweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjEwO2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTtib3JkZXItcmFkaXVzOjJweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjFmMWYxfS55dHAtdW5tdXRlLWFuaW1hdGVkIC55dHAtdW5tdXRlLWJveHtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7Ym90dG9tOjA7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2YxZjFmMX0ueXRwLXVubXV0ZS1hbmltYXRlZCAueXRwLXVubXV0ZS10ZXh0e3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTA7cGFkZGluZy10b3A6MXB4O3BhZGRpbmctcmlnaHQ6MTBweH0ueXRwLXVubXV0ZS1leHBhbmQgLnl0cC11bm11dGUtYm94e3dpZHRoOjA7LXdlYmtpdC1hbmltYXRpb246eXRwLXVubXV0ZS13aWR0aC1hbmltIC41cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpIDMuNXMgZm9yd2FyZHM7YW5pbWF0aW9uOnl0cC11bm11dGUtd2lkdGgtYW5pbSAuNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSAzLjVzIGZvcndhcmRzfS55dHAtdW5tdXRlLWV4cGFuZCAueXRwLXVubXV0ZS10ZXh0e29wYWNpdHk6MDstd2Via2l0LWFuaW1hdGlvbjp5dHAtdW5tdXRlLWFscGhhLWFuaW0gLjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpIDMuOHMgZm9yd2FyZHM7YW5pbWF0aW9uOnl0cC11bm11dGUtYWxwaGEtYW5pbSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSkgMy44cyBmb3J3YXJkc30ueXRwLXVubXV0ZS1zaHJpbmsgLnl0cC11bm11dGUtYm94e3dpZHRoOjEwMCU7LXdlYmtpdC1hbmltYXRpb246eXRwLXVubXV0ZS13aWR0aC1hbmltIC41cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpIDUuNXMgcmV2ZXJzZSBmb3J3YXJkczthbmltYXRpb246eXRwLXVubXV0ZS13aWR0aC1hbmltIC41cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpIDUuNXMgcmV2ZXJzZSBmb3J3YXJkc30ueXRwLXVubXV0ZS1zaHJpbmsgLnl0cC11bm11dGUtdGV4dHtvcGFjaXR5OjE7LXdlYmtpdC1hbmltYXRpb246eXRwLXVubXV0ZS1hbHBoYS1hbmltIC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSA1LjRzIHJldmVyc2UgZm9yd2FyZHM7YW5pbWF0aW9uOnl0cC11bm11dGUtYWxwaGEtYW5pbSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSkgNS40cyByZXZlcnNlIGZvcndhcmRzfUAtd2Via2l0LWtleWZyYW1lcyB5dHAtdW5tdXRlLXdpZHRoLWFuaW17MCV7d2lkdGg6MH10b3t3aWR0aDoxMDAlfX1Aa2V5ZnJhbWVzIHl0cC11bm11dGUtd2lkdGgtYW5pbXswJXt3aWR0aDowfXRve3dpZHRoOjEwMCV9fUAtd2Via2l0LWtleWZyYW1lcyB5dHAtdW5tdXRlLWFscGhhLWFuaW17MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19QGtleWZyYW1lcyB5dHAtdW5tdXRlLWFscGhhLWFuaW17MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19Lnl0cC11cG5leHR7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3A7b3BhY2l0eToxO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlO2hlaWdodDoxMDAlOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjphbGwgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7ei1pbmRleDozOX0ueXRwLXVwbmV4dC10b3B7d2lkdGg6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO2JvdHRvbTo1MCU7bWFyZ2luLWJvdHRvbTo0OHB4fS55dHAtc21hbGwtbW9kZSAueXRwLXVwbmV4dC10b3B7bWFyZ2luLWJvdHRvbToyNnB4fS55dHAtc21hbGwtbW9kZS55dHAtZW1iZWQgLnl0cC11cG5leHQtbW9iaWxlIC55dHAtdXBuZXh0LXRvcHttYXJnaW4tYm90dG9tOjB9Lnl0cC11cG5leHQtYm90dG9te3dpZHRoOjEwMCU7cG9zaXRpb246YWJzb2x1dGU7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bzt0b3A6NTAlO21hcmdpbi10b3A6NDhweH0ueXRwLXNtYWxsLW1vZGUgLnl0cC11cG5leHQtYm90dG9te21hcmdpbi10b3A6MjZweH0ueXRwLXNtYWxsLW1vZGUueXRwLWVtYmVkIC55dHAtdXBuZXh0LW1vYmlsZSAueXRwLXVwbmV4dC1ib3R0b217bWFyZ2luLXRvcDo0OHB4fS55dHAtdXBuZXh0LXRpdGxle2Rpc3BsYXk6YmxvY2s7cGFkZGluZzowIDEwcHggMnB4O21hcmdpbi1sZWZ0OjMycHg7bWFyZ2luLXJpZ2h0OjMycHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjIwMCU7Zm9udC13ZWlnaHQ6NTAwO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7d29yZC13cmFwOm5vcm1hbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dHAtc21hbGwtbW9kZSAueXRwLXVwbmV4dC10aXRsZXtmb250LXNpemU6MTUwJX0ueXRwLXVwbmV4dC1hdXRob3J7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDoxLjNlbTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowIDEwcHggMTBweDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxMzAlfS55dHAtdXBuZXh0LWhlYWRlcntkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxNDAlO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmctYm90dG9tOjhweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0ueXRwLXNtYWxsLW1vZGUgLnl0cC11cG5leHQtaGVhZGVye3BhZGRpbmctYm90dG9tOjB9Lnl0cC11cG5leHQtY2FuY2Vse2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bm9uZTt0ZXh0LWFsaWduOmNlbnRlcn0ueXRwLXVwbmV4dC1jYW5jZWwtYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0Om5vbmU7cGFkZGluZzoxMHB4IDIwcHg7Zm9udC1zaXplOjE0MCU7Zm9udC13ZWlnaHQ6NTAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ueXRwLXVwbmV4dC1jYW5jZWwtYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTUpO2JvcmRlci1yYWRpdXM6MnB4fS55dHAtdXBuZXh0LWF1dG9wbGF5LWljb257cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt3aWR0aDo2NHB4O2hlaWdodDo2NHB4O21hcmdpbjotMzJweCAwIDAgLTMycHg7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmFsbCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRwLXNtYWxsLW1vZGUgLnl0cC11cG5leHQtYXV0b3BsYXktaWNvbnt3aWR0aDo1MHB4O2hlaWdodDo1MHB4O21hcmdpbjotMjVweCAwIDAgLTI1cHh9Lnl0cC1zbWFsbC1tb2RlLnl0cC1lbWJlZCAueXRwLXVwbmV4dC1tb2JpbGUgLnl0cC11cG5leHQtYXV0b3BsYXktaWNvbnttYXJnaW4tdG9wOjB9Lnl0cC1lbWJlZCAueXRwLWVuZHNjcmVlbi10YWtlb3Zlcn4ueXRwLXJlcGxheS1idXR0b257ZGlzcGxheTpub25lfS55dHAtdXBuZXh0LXBhdXNlZHtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxMjAlO2ZvbnQtc3R5bGU6aXRhbGljO29wYWNpdHk6MH0ueXRwLXVwbmV4dC1hdXRvcGxheS1wYXVzZWQgLnl0cC11cG5leHQtcGF1c2Vke29wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246YWxsIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246YWxsIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS55dHAtdXBuZXh0IC55dHAtY3VlZC10aHVtYm5haWwtb3ZlcmxheS1pbWFnZXtvcGFjaXR5Oi40fS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXVwbmV4dCAueXRwLWN1ZWQtdGh1bWJuYWlsLW92ZXJsYXktaW1hZ2V7b3BhY2l0eTouNjR9Lnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtdXBuZXh0IC55dHAtdXBuZXh0LXRvcHt0b3A6MDttYXJnaW46MTJweCAwIDAgMTJweH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC11cG5leHQgLnl0cC11cG5leHQtYXV0aG9yLC55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXVwbmV4dCAueXRwLXVwbmV4dC1oZWFkZXIsLnl0cC1wbGF5ZXItbWluaW1pemVkIC55dHAtdXBuZXh0IC55dHAtdXBuZXh0LXRpdGxle3RleHQtYWxpZ246bGVmdDttYXJnaW4tYm90dG9tOjRweH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC11cG5leHQgLnl0cC11cG5leHQtYXV0aG9yLC55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXVwbmV4dCAueXRwLXVwbmV4dC1oZWFkZXJ7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpO3BhZGRpbmc6MH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC11cG5leHQgLnl0cC11cG5leHQtdGl0bGV7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNmZmY7cGFkZGluZzowIDc1cHggMCAwfS55dHAtcGxheWVyLW1pbmltaXplZCAueXRwLXVwbmV4dCAueXRwLXVwbmV4dC1hdXRvcGxheS1pY29ue3dpZHRoOjYycHg7aGVpZ2h0OjYycHg7bWFyZ2luOi0zMXB4IDAgMCAtMzFweH0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC11cG5leHQgLnl0cC11cG5leHQtY2FuY2VsLWJ1dHRvbiwueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC11cG5leHQgLnl0cC11cG5leHQtcGF1c2Vke2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0ueXRwLXBsYXllci1taW5pbWl6ZWQgLnl0cC11cG5leHQgLnl0cC11cG5leHQtY2FuY2VsLWJ1dHRvbntwYWRkaW5nOjhweDttYXJnaW4tdG9wOjhweH0ueXRwLWJpZy1tb2RlOm5vdCgueXRwLW13ZWItcGxheWVyKSAueXRwLXVwbmV4dC1hdXRvcGxheS1pY29ue3dpZHRoOjE0NnB4O2hlaWdodDoxNDZweDttYXJnaW46LTczcHggMCAwIC03M3B4fS55dHAtYmlnLW1vZGU6bm90KC55dHAtbXdlYi1wbGF5ZXIpIC55dHAtdXBuZXh0LWJvdHRvbXttYXJnaW4tdG9wOjc2cHh9Lnl0cC1iaWctbW9kZTpub3QoLnl0cC1td2ViLXBsYXllcikgLnl0cC11cG5leHQtdG9we21hcmdpbi1ib3R0b206NzZweH0ueXRwLW13ZWItcGxheWVyLnl0cC1zbWFsbC1tb2RlIC55dHAtdXBuZXh0LXRvcHttYXJnaW4tYm90dG9tOjA7Ym90dG9tOjUwJX0ueXRwLW13ZWItcGxheWVyLnl0cC1zbWFsbC1tb2RlIC55dHAtdXBuZXh0LWF1dG9wbGF5LWljb257dG9wOjYwJX0ueXRwLW13ZWItcGxheWVyLnl0cC1zbWFsbC1tb2RlIC55dHAtdXBuZXh0LWJvdHRvbXttYXJnaW4tdG9wOjA7dG9wOjcwJX0ueXRwLXVzZXItaW5mby1wYW5lbHtiYWNrZ3JvdW5kOnJnYmEoMjgsMjgsMjgsLjgpO2NvbG9yOiNmZmY7cmlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoyOTJweDtoZWlnaHQ6NzRweDtib3R0b206MDt6LWluZGV4OjgwO21pbi13aWR0aDoyNmVtO2Rpc3BsYXk6dGFibGV9Lnl0cC11c2VyLWluZm8tcGFuZWwgLnl0cC1jb2xsYXBzZXtoZWlnaHQ6MjBweDtvcGFjaXR5Oi45O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjIwcHg7dG9wOjEycHg7d2lkdGg6MjBweH0ueXRwLXVzZXItaW5mby1wYW5lbCAueXRwLWNvbGxhcHNlOmhvdmVye29wYWNpdHk6MX0ueXRwLXVzZXItaW5mby1wYW5lbC1jb250ZW50e2Rpc3BsYXk6dGFibGUtY2VsbDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZzoxNHB4IDA7Zm9udC1zaXplOjE2cHh9Lnl0cC11c2VyLWluZm8tcGFuZWwtY29udGVudD5kaXY+ZGl2e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtd2VpZ2h0OjUwMDtwYWRkaW5nOjAgLjVlbTt0ZXh0LWFsaWduOnJpZ2h0O3dpZHRoOjEwZW19Lnl0cC11c2VyLWluZm8tcGFuZWwtaWNvbntkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246bWlkZGxlO3dpZHRoOjI0cHg7cGFkZGluZzowIDE0cHh9Lnl0cC11c2VyLWluZm8tcGFuZWwtbG9naW57Y29sb3I6IzNlYTZmZjtjdXJzb3I6cG9pbnRlcn0ueXRwLXVzZXItaW5mby1wYW5lbC1pbmZve21heC13aWR0aDoyMDBweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lnl0cC12aWRlby1tZW51LWl0ZW17ZGlzcGxheTpibG9jaztoZWlnaHQ6NDRweDtwYWRkaW5nOjEwcHh9Lnl0cC1iaWctbW9kZSAueXRwLXZpZGVvLW1lbnUtaXRlbXtoZWlnaHQ6NjZweDtwYWRkaW5nOjE1cHh9Lnl0cC12aWRlby1tZW51LWl0ZW1bYXJpYS1jaGVja2VkPXRydWVde2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lnl0cC12aWRlby1tZW51LWl0ZW06aG92ZXIsLnl0cC12aWRlby1tZW51LWl0ZW1bYXJpYS1jaGVja2VkPXRydWVdOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTUpfS55dHAtdmlkZW8tbWVudS1pdGVtLWluZGV4LC55dHAtdmlkZW8tbWVudS1pdGVtLW5vdy1wbGF5aW5ne3BhZGRpbmctcmlnaHQ6OXB4O21pbi13aWR0aDoxMHB4O2hlaWdodDo0NHB4O2xpbmUtaGVpZ2h0OjQ0cHg7ZmxvYXQ6bGVmdH0ueXRwLWJpZy1tb2RlIC55dHAtdmlkZW8tbWVudS1pdGVtLWluZGV4LC55dHAtYmlnLW1vZGUgLnl0cC12aWRlby1tZW51LWl0ZW0tbm93LXBsYXlpbmd7cGFkZGluZy1yaWdodDoxM3B4O2hlaWdodDo2NnB4O2xpbmUtaGVpZ2h0OjY2cHh9Lnl0cC12aWRlby1tZW51LWl0ZW0tbm93LXBsYXlpbmd7ZGlzcGxheTpub25lO2NvbG9yOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tc3RhdGljLWJyYW5kLXJlZCwjZjAzKX0ueXRwLWNvbG9yLXdoaXRlIC55dHAtdmlkZW8tbWVudS1pdGVtLW5vdy1wbGF5aW5ne2NvbG9yOiNkZGR9Lnl0cC1jb2xvci1wYXJ0eSAueXRwLXZpZGVvLW1lbnUtaXRlbS1ub3ctcGxheWluZ3std2Via2l0LWFuaW1hdGlvbjp5dHAtcGFydHktY29sb3IgLjE1cyBsaW5lYXIgaW5maW5pdGU7YW5pbWF0aW9uOnl0cC1wYXJ0eS1jb2xvciAuMTVzIGxpbmVhciBpbmZpbml0ZX0ueXRwLXZpZGVvLW1lbnUtaXRlbVthcmlhLWNoZWNrZWQ9dHJ1ZV0gLnl0cC12aWRlby1tZW51LWl0ZW0tbm93LXBsYXlpbmd7ZGlzcGxheTppbmxpbmV9Lnl0cC12aWRlby1tZW51LWl0ZW1bYXJpYS1jaGVja2VkPXRydWVdIC55dHAtdmlkZW8tbWVudS1pdGVtLWluZGV4e2Rpc3BsYXk6bm9uZX0ueXRwLXZpZGVvLW1lbnUtaXRlbS10aXRsZXtwYWRkaW5nLWxlZnQ6OXB4O2ZvbnQtc2l6ZToxMjAlO21heC1oZWlnaHQ6Mi42ZW07b3ZlcmZsb3c6aGlkZGVufS55dHAtdmlkZW8tbWVudS1pdGVtLWF1dGhvcntwYWRkaW5nLWxlZnQ6OXB4O2NvbG9yOiNiOGI4Yjg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lnl0cC12aWRlby1tZW51LWl0ZW0tdGh1bWJuYWlse2Zsb2F0OmxlZnQ7d2lkdGg6NjRweDtoZWlnaHQ6MzZweDttYXJnaW46NHB4O2JvcmRlcjowIHNvbGlkIHZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tc3RhdGljLWJyYW5kLXJlZCwjZjAzKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTZweDstd2Via2l0LWJhY2tncm91bmQtc2l6ZTo2NHB4IDQ4cHg7YmFja2dyb3VuZC1zaXplOjY0cHggNDhweH0ueXRwLWNvbG9yLXdoaXRlIC55dHAtdmlkZW8tbWVudS1pdGVtLXRodW1ibmFpbHtib3JkZXItY29sb3I6I2RkZH0ueXRwLWNvbG9yLXBhcnR5IC55dHAtdmlkZW8tbWVudS1pdGVtLXRodW1ibmFpbHstd2Via2l0LWFuaW1hdGlvbjp5dHAtcGFydHktYmFja2dyb3VuZC1jb2xvciAuMXMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjp5dHAtcGFydHktYmFja2dyb3VuZC1jb2xvciAuMXMgbGluZWFyIGluZmluaXRlfS55dHAtYmlnLW1vZGUgLnl0cC12aWRlby1tZW51LWl0ZW0tdGh1bWJuYWlse3dpZHRoOjk2cHg7aGVpZ2h0OjU0cHg7bWFyZ2luOjZweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTlweDstd2Via2l0LWJhY2tncm91bmQtc2l6ZTo5NnB4IDcycHg7YmFja2dyb3VuZC1zaXplOjk2cHggNzJweH0ueXRwLXZpZGVvLW1lbnUtaXRlbVthcmlhLWNoZWNrZWQ9dHJ1ZV0gLnl0cC12aWRlby1tZW51LWl0ZW0tdGh1bWJuYWlse21hcmdpbjoycHg7Ym9yZGVyLXdpZHRoOjJweH0ueXRwLWJpZy1tb2RlIC55dHAtdmlkZW8tbWVudS1pdGVtW2FyaWEtY2hlY2tlZD10cnVlXSAueXRwLXZpZGVvLW1lbnUtaXRlbS10aHVtYm5haWx7bWFyZ2luOjRweH0ueXRwLXZpZGVvd2FsbC1zdGlsbHtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2N1cnNvcjpwb2ludGVyO3ZlcnRpY2FsLWFsaWduOnRvcDtvcGFjaXR5OjA7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC4xKTstbXMtdHJhbnNmb3JtOnNjYWxlKC4xKTt0cmFuc2Zvcm06c2NhbGUoLjEpfS55dHAtc2hvdy10aWxlcyAueXRwLXZpZGVvd2FsbC1zdGlsbHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTstbXMtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjNzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxvcGFjaXR5IC4zcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtdmlkZW93YWxsLXN0aWxsLW1pbmkgLnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1hdXRob3IsLnl0cC12aWRlb3dhbGwtc3RpbGwtbWluaSAueXRwLXZpZGVvd2FsbC1zdGlsbC1pbmZvLWR1cmF0aW9uLC55dHAtdmlkZW93YWxsLXN0aWxsLW1pbmkgLnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1saXZle2Rpc3BsYXk6bm9uZX0ueXRwLXZpZGVvd2FsbC1zdGlsbFtkYXRhLWlzLWxpdmU9dHJ1ZV0gLnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1kdXJhdGlvbntkaXNwbGF5Om5vbmV9Lnl0cC12aWRlb3dhbGwtc3RpbGxbZGF0YS1pcy1saXZlPXRydWVdIC55dHAtdmlkZW93YWxsLXN0aWxsLWluZm8tbGl2ZXtkaXNwbGF5OmJsb2NrfS55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1taXgsLnl0cC12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVsLXJlZ3VsYXJ7ZGlzcGxheTpub25lO2hlaWdodDoyLjE1ZW07cGFkZGluZy1yaWdodDoxMHB4O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NTAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpfS55dHAtdmlkZW93YWxsLXN0aWxsLW1pbmkgLnl0cC12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVsLW1peCwueXRwLXZpZGVvd2FsbC1zdGlsbC1taW5pIC55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1yZWd1bGFye2ZvbnQtc2l6ZToxMDAlfS55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0Ykc1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklpQjJhV1YzUW05NFBTSXdJREFnTXpZZ016WWlQangxYzJVZ2VHeHBibXM2YUhKbFpqMGlJM2wwY0MxemRtY3RjR3hoZVd4cGMzUWlJSE4wY205clpUMGlJekF3TUNJZ2MzUnliMnRsTFc5d1lXTnBkSGs5SWk0eE5TSWdjM1J5YjJ0bExYZHBaSFJvUFNJeUlpOCtQSEJoZEdnZ2FXUTlJbmwwY0MxemRtY3RjR3hoZVd4cGMzUWlJR1pwYkd3OUlpTm1abVlpSUdROUlrMHlNaTQxTXlBeU1TNDBNblkyTGpnMWJEVXVOall0TXk0ME1pMDFMalkyTFRNdU5ESjZiUzB4TVM0ek15QXdhRGt1TURaMk1pNHlPRWd4TVM0eWVtMHdMVGt1TVRSb01UTXVObll5TGpJNFNERXhMako2YlRBZ05DNDFOMmd4TXk0MmRqSXVNamhJTVRFdU1ub2lMejQ4TDNOMlp6ND0pO3dpZHRoOjIuMTVlbTtoZWlnaHQ6Mi4xNWVtfS55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1taXgtaWNvbntkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGJHNXpPbmhzYVc1clBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNoc2FXNXJJaUIyYVdWM1FtOTRQU0l3SURBZ016WWdNellpUGp4MWMyVWdlR3hwYm1zNmFISmxaajBpSTNsMGNDMXpkbWN0YldsNElpQnpkSEp2YTJVOUlpTXdNREFpSUhOMGNtOXJaUzF2Y0dGamFYUjVQU0l1TVRVaUlITjBjbTlyWlMxM2FXUjBhRDBpTWlJdlBqeHdZWFJvSUdsa1BTSjVkSEF0YzNabkxXMXBlQ0lnWm1sc2JEMGlJMlptWmlJZ1pEMGlUVEkxTGpZMUlERTRZeTB1TURJZ01pNHpNUzB1T0RjZ05DNDBNUzB5TGpJMUlEWXVNRFpzTGprdU9UUmpNUzQyT1MweExqZ2dNaTQzTFRRdU1qY2dNaTQzTFRkekxURXVNREV0TlM0eU1TMHlMamN0TjJ3dExqa3VPVE5CT1M0MU5DQTVMalUwSURBZ01DQXhJREkxTGpZMUlERTRiUzB4TlM0eklEQmpMakF4TFRJdU16SXVPRFl0TkM0ME1pQXlMakkxTFRZdU1EZHNMUzQ1TFM0NU0wTXhNQ0F4TWk0M09TQTVJREUxTGpJM0lEa2dNVGh6TVNBMUxqSWdNaTQzSURkc0xqa3RMamswWXkweExqTTVMVEV1TmpVdE1pNHlOQzB6TGpjMUxUSXVNalV0Tmk0d05tMHlMamNnTUdNdExqQTBMVEV1TnpNdU5Ea3RNeTR3T1NBeExqTTFMVFF1TW13dExqa3RMamswWXkweExqRXpJREV1TWpZdE1TNDRJREl1T1RrdE1TNDRJRFV1TVRRZ01DQXhMalkzTGpZM0lETXVOQ0F4TGpnZ05DNDJObXd1T1MwdU9UTmpMUzQ0TmkweExqRXlMVEV1TXprdE1pNDBOeTB4TGpNMUxUTXVOek50T1MwMUxqRTBMUzQ1TGprMFl5NDROU0F4TGpFeElERXVNemdnTWk0ME55QXhMak0xSURRdU1pNHdNeUF4TGpJMkxTNDFJREl1TmpFdE1TNHpOU0F6TGpjemJDNDVMamt6WXpFdU1USXRNUzR5TmlBeExqZ3RNaTQ1T1NBeExqZ3ROQzQyTmlBd0xUSXVNVFV0TGpZNExUTXVPRGd0TVM0NExUVXVNVFJ0TFRVdU5UVWdNaTQ0SURNdU5pQXhMamczTFRNdU5pQXlMak16ZWlJdlBqd3ZjM1puUGc9PSk7d2lkdGg6Mi4xNWVtO2hlaWdodDoyLjE1ZW19Lnl0cC12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVsLWxlbmd0aHtmb250LXdlaWdodDo0MDB9Lnl0cC12aWRlb3dhbGwtc3RpbGwtbWluaSAueXRwLXZpZGVvd2FsbC1zdGlsbC1saXN0bGFiZWwtbGVuZ3Roe2Rpc3BsYXk6bm9uZX0ueXRwLXZpZGVvd2FsbC1zdGlsbDpmb2N1cyAueXRwLXZpZGVvd2FsbC1zdGlsbC1saXN0bGFiZWwtbWl4LC55dHAtdmlkZW93YWxsLXN0aWxsOmZvY3VzIC55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1yZWd1bGFyLC55dHAtdmlkZW93YWxsLXN0aWxsOmhvdmVyIC55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1taXgsLnl0cC12aWRlb3dhbGwtc3RpbGw6aG92ZXIgLnl0cC12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVsLXJlZ3VsYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfS55dHAtdmlkZW93YWxsLXN0aWxsW2RhdGEtaXMtbGlzdD10cnVlXTpub3QoW2RhdGEtaXMtbWl4PXRydWVdKSAueXRwLXZpZGVvd2FsbC1zdGlsbC1saXN0bGFiZWwtcmVndWxhcntkaXNwbGF5OmJsb2NrfS55dHAtdmlkZW93YWxsLXN0aWxsW2RhdGEtaXMtbWl4PXRydWVdIC55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1taXh7ZGlzcGxheTpibG9ja30ueXRwLXZpZGVvd2FsbC1zdGlsbC1pbWFnZXstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZCAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtc2l6ZTpjb3Zlcjtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH0ueXRwLXZpZGVvd2FsbC1zdGlsbC1yb3VuZC1sYXJnZSAueXRwLXZpZGVvd2FsbC1zdGlsbC1pbWFnZXtib3JkZXItcmFkaXVzOjEycHh9Lnl0cC12aWRlb3dhbGwtc3RpbGwtcm91bmQtbWVkaXVtIC55dHAtdmlkZW93YWxsLXN0aWxsLWltYWdle2JvcmRlci1yYWRpdXM6OHB4fS55dHAtdmlkZW93YWxsLXN0aWxsLXJvdW5kLWxhcmdlIC55dHAtdmlkZW93YWxsLXN0aWxsLWltYWdle2JvcmRlci1yYWRpdXM6NHB4fS55dHAtdmlkZW93YWxsLXN0aWxsLWluZm8tYXV0aG9ye2Zsb2F0OmxlZnQ7bWFyZ2luLXRvcDoycHh9Lnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1jb250ZW50e2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLHJnYmEoMTIsMTIsMTIsLjgpLHRyYW5zcGFyZW50IDEwMHB4KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSgxMiwxMiwxMiwuOCkgMCx0cmFuc3BhcmVudCAxMDBweCk7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlO2JvdHRvbTowO2NvbG9yOiNmZmY7bGVmdDowO29wYWNpdHk6MDtwYWRkaW5nOjEwcHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH0ueXRwLXZpZGVvd2FsbC1zdGlsbC55dHAtdmlkZW93YWxsLXNob3ctdGV4dCAueXRwLXZpZGVvd2FsbC1zdGlsbC1pbmZvLWNvbnRlbnQsLnl0cC12aWRlb3dhbGwtc3RpbGw6Zm9jdXMgLnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1jb250ZW50LC55dHAtdmlkZW93YWxsLXN0aWxsOmhvdmVyIC55dHAtdmlkZW93YWxsLXN0aWxsLWluZm8tY29udGVudHtvcGFjaXR5OjF9Lnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1kdXJhdGlvbntiYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLXJhZGl1czoycHg7Ym90dG9tOjJweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTtvcGFjaXR5Oi43NTtwYWRkaW5nOjJweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoycHh9Lnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1kdXJhdGlvbjplbXB0eXtkaXNwbGF5Om5vbmV9Lnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby1saXZle2JhY2tncm91bmQ6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJhY2tncm91bmQtYnJhbmQscmdiYSgyMjUsMCw0NSwuOSkpO2JvcmRlci1yYWRpdXM6MnB4O2JvdHRvbToycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE7b3BhY2l0eTouOTtwYWRkaW5nOjJweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoycHg7ZGlzcGxheTpub25lO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ueXRwLXZpZGVvd2FsbC1zdGlsbC1pbmZvLXRpdGxle2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjExOCU7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMjttYXgtaGVpZ2h0OjMwcHg7b3ZlcmZsb3c6aGlkZGVufS55dHAtYmlnLW1vZGUgLnl0cC12aWRlb3dhbGwtc3RpbGwtaW5mby10aXRsZXtmb250LXdlaWdodDo0MDA7bWF4LWhlaWdodDo0OHB4fS55dHAtdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjg2KTtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0ueXRwLXZpZGVvd2FsbC1zdGlsbDpmb2N1cyAueXRwLXZpZGVvd2FsbC1zdGlsbC1saXN0bGFiZWwsLnl0cC12aWRlb3dhbGwtc3RpbGw6aG92ZXIgLnl0cC12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVse2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuODYpfS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbHt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO3ZlcnRpY2FsLWFsaWduOnRvcDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO21hcmdpbi1ib3R0b206MTZweDstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzIGN1YmljLWJlemllcigwLDAsLjIsMSk7LXdlYmtpdC10cmFuc2l0aW9uOmJveC1zaGFkb3cgLjNzIGN1YmljLWJlemllcigwLDAsLjIsMSk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtYm94LXNoYWRvdyAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOi13ZWJraXQtYm94LXNoYWRvdyAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjNzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4zcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLC13ZWJraXQtYm94LXNoYWRvdyAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTtmb250LXNpemU6MTFweH0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtaW5mb3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0cC1zaG93LXRpbGVzIC55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbHtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTstbXMtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLG9wYWNpdHkgLjNzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGN1YmljLWJlemllcigwLDAsLjIsMSksb3BhY2l0eSAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSwtd2Via2l0LXRyYW5zZm9ybSAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxvcGFjaXR5IC4zcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbFtkYXRhLWlzLWxpdmU9dHJ1ZV0gLnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWluZm8tZHVyYXRpb257ZGlzcGxheTpub25lfS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1saXN0bGFiZWwtbWl4LC55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1saXN0bGFiZWwtcmVndWxhcntkaXNwbGF5Om5vbmU7aGVpZ2h0OjIuMTVlbTtwYWRkaW5nLXJpZ2h0OjEwcHg7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo1MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1saXN0bGFiZWwtaWNvbntkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGJHNXpPbmhzYVc1clBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNoc2FXNXJJaUIyYVdWM1FtOTRQU0l3SURBZ016WWdNellpUGp4MWMyVWdlR3hwYm1zNmFISmxaajBpSTNsMGNDMXpkbWN0Y0d4aGVXeHBjM1FpSUhOMGNtOXJaVDBpSXpBd01DSWdjM1J5YjJ0bExXOXdZV05wZEhrOUlpNHhOU0lnYzNSeWIydGxMWGRwWkhSb1BTSXlJaTgrUEhCaGRHZ2dhV1E5SW5sMGNDMXpkbWN0Y0d4aGVXeHBjM1FpSUdacGJHdzlJaU5tWm1ZaUlHUTlJazB5TWk0MU15QXlNUzQwTW5ZMkxqZzFiRFV1TmpZdE15NDBNaTAxTGpZMkxUTXVOREo2YlMweE1TNHpNeUF3YURrdU1EWjJNaTR5T0VneE1TNHllbTB3TFRrdU1UUm9NVE11Tm5ZeUxqSTRTREV4TGpKNmJUQWdOQzQxTjJneE15NDJkakl1TWpoSU1URXVNbm9pTHo0OEwzTjJaejQ9KTt3aWR0aDoyLjE1ZW07aGVpZ2h0OjIuMTVlbX0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVsLW1peC1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0Ykc1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklpQjJhV1YzUW05NFBTSXdJREFnTXpZZ016WWlQangxYzJVZ2VHeHBibXM2YUhKbFpqMGlJM2wwY0MxemRtY3RiV2w0SWlCemRISnZhMlU5SWlNd01EQWlJSE4wY205clpTMXZjR0ZqYVhSNVBTSXVNVFVpSUhOMGNtOXJaUzEzYVdSMGFEMGlNaUl2UGp4d1lYUm9JR2xrUFNKNWRIQXRjM1puTFcxcGVDSWdabWxzYkQwaUkyWm1aaUlnWkQwaVRUSTFMalkxSURFNFl5MHVNRElnTWk0ek1TMHVPRGNnTkM0ME1TMHlMakkxSURZdU1EWnNMamt1T1RSak1TNDJPUzB4TGpnZ01pNDNMVFF1TWpjZ01pNDNMVGR6TFRFdU1ERXROUzR5TVMweUxqY3ROMnd0TGprdU9UTkJPUzQxTkNBNUxqVTBJREFnTUNBeElESTFMalkxSURFNGJTMHhOUzR6SURCakxqQXhMVEl1TXpJdU9EWXROQzQwTWlBeUxqSTFMVFl1TURkc0xTNDVMUzQ1TTBNeE1DQXhNaTQzT1NBNUlERTFMakkzSURrZ01UaHpNU0ExTGpJZ01pNDNJRGRzTGprdExqazBZeTB4TGpNNUxURXVOalV0TWk0eU5DMHpMamMxTFRJdU1qVXROaTR3Tm0weUxqY2dNR010TGpBMExURXVOek11TkRrdE15NHdPU0F4TGpNMUxUUXVNbXd0TGprdExqazBZeTB4TGpFeklERXVNall0TVM0NElESXVPVGt0TVM0NElEVXVNVFFnTUNBeExqWTNMalkzSURNdU5DQXhMamdnTkM0Mk5td3VPUzB1T1ROakxTNDROaTB4TGpFeUxURXVNemt0TWk0ME55MHhMak0xTFRNdU56TnRPUzAxTGpFMExTNDVMamswWXk0NE5TQXhMakV4SURFdU16Z2dNaTQwTnlBeExqTTFJRFF1TWk0d015QXhMakkyTFM0MUlESXVOakV0TVM0ek5TQXpMamN6YkM0NUxqa3pZekV1TVRJdE1TNHlOaUF4TGpndE1pNDVPU0F4TGpndE5DNDJOaUF3TFRJdU1UVXRMalk0TFRNdU9EZ3RNUzQ0TFRVdU1UUnRMVFV1TlRVZ01pNDRJRE11TmlBeExqZzNMVE11TmlBeUxqTXplaUl2UGp3dmMzWm5QZz09KTt3aWR0aDoyLjE1ZW07aGVpZ2h0OjIuMTVlbX0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVsLWxlbmd0aHtmb250LXdlaWdodDo0MDB9Lnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsW2RhdGEtaXMtbGlzdD10cnVlXTpub3QoW2RhdGEtaXMtbWl4PXRydWVdKSAueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtbGlzdGxhYmVsLXJlZ3VsYXJ7ZGlzcGxheTpibG9ja30ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGxbZGF0YS1pcy1taXg9dHJ1ZV0gLnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWxpc3RsYWJlbC1taXh7ZGlzcGxheTpibG9ja30ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtaW1hZ2V7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQgLjFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO2JhY2tncm91bmQtcG9zaXRpb246NTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDstd2Via2l0LWJhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7d2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjhweH0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGw6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYnV0dG9uLXNlY29uZGFyeSk7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAwIDhweCB2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYnV0dG9uLXNlY29uZGFyeSk7Ym94LXNoYWRvdzowIDAgMCA4cHggdmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LWJ1dHRvbi1zZWNvbmRhcnkpO2JvcmRlci1yYWRpdXM6OHB4fS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktdG9uYWwtaG92ZXIpOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMCA4cHggdmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LXRvbmFsLWhvdmVyKTtib3gtc2hhZG93OjAgMCAwIDhweCB2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktdG9uYWwtaG92ZXIpO2JvcmRlci1yYWRpdXM6OHB4fUBzdXBwb3J0cyAoYXNwZWN0LXJhdGlvOjEvMSl7Lnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWltYWdle2FzcGVjdC1yYXRpbzoxNi85fX1Ac3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86MS8xKXsueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtaW1hZ2V7aGVpZ2h0OjA7cGFkZGluZy1ib3R0b206NTYuMjUlfX0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtaW5mb3ttYXJnaW4tdG9wOjhweH0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtaW5mby1hdXRob3I6bm90KDplbXB0eSl7bWFyZ2luLXRvcDo0cHg7Zm9udC1zaXplOjEzMCU7bWF4LWhlaWdodDoyMHB4O292ZXJmbG93OmhpZGRlbjtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtdmlldy1jb3VudC1hbmQtZGF0ZS1pbmZvOm5vdCg6ZW1wdHkpe2ZvbnQtc2l6ZToxMzAlO21heC1oZWlnaHQ6MjBweDtvdmVyZmxvdzpoaWRkZW47Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Lnl0cC1mdWxsc2NyZWVuLWdyaWQtYWN0aXZlIC55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1pbmZvLWF1dGhvciwueXRwLWZ1bGxzY3JlZW4tZ3JpZC1wZWVraW5nIC55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1pbmZvLWF1dGhvcnttYXgtaGVpZ2h0OnVuc2V0fS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1pbmZvLWNvbnRlbnR7Y29sb3I6I2ZmZjt3aWR0aDoxMDAlO29wYWNpdHk6MTtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWluZm8tZHVyYXRpb24sLnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWluZm8tbGl2ZXtib3JkZXItcmFkaXVzOjJweDtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206OHB4O3JpZ2h0OjhweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTtvcGFjaXR5Oi43NTtwYWRkaW5nOjJweDtmb250LXNpemU6MTIwJX0ueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtaW5mby1kdXJhdGlvbntiYWNrZ3JvdW5kOiMwMDA7Zm9udC13ZWlnaHQ6NTAwO29wYWNpdHk6Ljc1fS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1pbmZvLWxpdmV7YmFja2dyb3VuZDp2YXIoLS15dC1zeXMtY29sb3ItYmFzZWxpbmUtLW92ZXJsYXktYmFja2dyb3VuZC1icmFuZCxyZ2JhKDIyNSwwLDQ1LC45KSk7b3BhY2l0eTouOTtkaXNwbGF5Om5vbmU7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbDpub3QoW2RhdGEtaXMtbGl2ZT10cnVlXSkgLnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWluZm8tbGl2ZXtkaXNwbGF5Om5vbmV9Lnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWluZm8tZHVyYXRpb246ZW1wdHl7ZGlzcGxheTpub25lfS55dHAtbW9kZXJuLXZpZGVvd2FsbC1zdGlsbC1pbmZvLXRpdGxlOm5vdCg6ZW1wdHkpe2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1saW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2ZvbnQtc2l6ZToxNTAlO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxLjI7bWF4LWhlaWdodDo0MHB4O292ZXJmbG93OmhpZGRlbn0ueXRwLWZ1bGxzY3JlZW4tZ3JpZC1hY3RpdmUgLnl0cC1tb2Rlcm4tdmlkZW93YWxsLXN0aWxsLWluZm8tdGl0bGUsLnl0cC1mdWxsc2NyZWVuLWdyaWQtcGVla2luZyAueXRwLW1vZGVybi12aWRlb3dhbGwtc3RpbGwtaW5mby10aXRsZXttYXgtaGVpZ2h0OnVuc2V0fS55dHAtdmFyaWFibGUtc3BlZWQtcGFuZWwtY29udGVudHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZzoyNHB4IDE2cHggMTZweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1jb250ZW50IC55dHAtaW5wdXQtc2xpZGVyLXNlY3Rpb257LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleC1ncm93OjE7ZmxleC1ncm93OjF9Lnl0cC1zcGVlZC1kaXNwbGF5LWNvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tYm90dG9tOjI0cHh9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1kaXNwbGF5e3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6OTAwO2xpbmUtaGVpZ2h0OjIycHh9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1zbGlkZXItY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4O2dhcDoxNnB4O21hcmdpbi1ib3R0b206MjRweH0ueXRwLXZhcmlhYmxlLXNwZWVkLXBhbmVsLXNsaWRlci1jb250YWluZXIgLnl0cC1pbnB1dC1zbGlkZXJ7d2lkdGg6MTAwJX0ueXRwLXZhcmlhYmxlLXNwZWVkLXBhbmVsLWNoaXBze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4O2dhcDo4cHg7LXdlYmtpdC1ib3gtYWxpZ246c3RhcnQ7LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1idXR0b257Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE2cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKTtjb2xvcjojZmZmO2hlaWdodDozMnB4O3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1yYWRpdXM6MTZweDstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLXZhcmlhYmxlLXNwZWVkLXBhbmVsLWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjIpfS55dHAtdmFyaWFibGUtc3BlZWQtcGFuZWwtYnV0dG9uOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjMpfS55dHAtdmFyaWFibGUtc3BlZWQtcGFuZWwtY2hpcHMgLnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1idXR0b257Zm9udC1zaXplOjEycHg7d2lkdGg6NTNweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo0cHh9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1zbGlkZXItY29udGFpbmVyIC55dHAtdmFyaWFibGUtc3BlZWQtcGFuZWwtYnV0dG9ue2ZvbnQtc2l6ZToyNHB4O3dpZHRoOjMycHh9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1jb250ZW50IC55dHAtc3BlZWRzbGlkZXItaW5kaWNhdG9yLWNvbnRhaW5lcntkaXNwbGF5Om5vbmV9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1wcmVzZXQtYnV0dG9uLXdyYXBwZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0cC12YXJpYWJsZS1zcGVlZC1wYW5lbC1wcmVzZXQtYnV0dG9uLWxhYmVsLXRleHR7Zm9udC1zaXplOjEwcHg7bGluZS1oZWlnaHQ6MTRweDttYXJnaW4tdG9wOjRweDtmb250LXdlaWdodDo0MDA7Y29sb3I6dmFyKC0teXQtc3lzLWNvbG9yLWJhc2VsaW5lLS1vdmVybGF5LXRleHQtc2Vjb25kYXJ5LHJnYmEoMjU1LDI1NSwyNTUsLjcpKX0ueXRwLXZhcmlhYmxlLXNwZWVkLXBhbmVsLXByZW1pdW0tdXBzZWxsLWljb257ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7d2lkdGg6MTRweDtoZWlnaHQ6MTRweDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXlOQ0lnYUdWcFoyaDBQU0l5TkNJZ2RtbGxkMEp2ZUQwaUxUSWdMVElnTWpRZ01qUWlQanh3WVhSb0lHWnBiR3c5SWlOak1EQWlJR1E5SWswd0lERXVORE5ETUNBdU5qUXVOalFnTUNBeExqUXpJREJvTVRjdU1UTkRNVGt1TXpVZ01DQXlNQ0F1TmpRZ01qQWdNUzQwTTNZeE55NHhNMk13SUM0M09TMHVOalVnTVM0ME5DMHhMalEwSURFdU5EUklNUzQwTTBNdU5qUWdNakFnTUNBeE9TNHpOU0F3SURFNExqVTJXbTB3SURBaUx6NDhjR0YwYUNCbWFXeHNQU0lqWm1abUlpQmtQU0pOTnk0NE9DQXhNUzQwTW5ZMExqSTVTRFV1TXpkV015NDFNbWcwTGpjMVl5NDVNaUF3SURFdU56SXVNVGNnTWk0ME1pNDFMalk1TGpNMElERXVNakl1T0RFZ01TNDJJREV1TkRNdU16Y3VOakl1TlRZZ01TNHpNaTQxTmlBeUxqRXhJREFnTVM0eE9TMHVOREVnTWk0eE15MHhMakl5SURJdU9ESXRMamd5TGpZNUxURXVPVFVnTVM0d05DMHpMalFnTVM0d05GcHRNQzB5TGpBMGFESXVNalJqTGpZM0lEQWdNUzR4T0MwdU1UVWdNUzQxTWkwdU5EY3VNelV0TGpNeExqVXpMUzQzTlM0MU15MHhMak0wY3kwdU1UZ3RNUzR3TnkwdU5UTXRNUzQwTldNdExqTTFMUzR6TmkwdU9EUXRMalUxTFRFdU5EWXRMalUyYUMweUxqTmFiVEFnTUNJdlBqd3ZjM1puUGc9PSk7Ym9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyfS55dHAtdmFyaWFibGUtc3BlZWQtcGFuZWwtcHJlbWl1bS1iYWRnZXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMDAlO21hcmdpbi1yaWdodDo4cHg7dG9wOjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47d2lkdGg6MjRweDtoZWlnaHQ6MjJweDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXlOQ0lnYUdWcFoyaDBQU0l5TkNJZ2RtbGxkMEp2ZUQwaUxUSWdMVElnTWpRZ01qUWlQanh3WVhSb0lHWnBiR3c5SWlOak1EQWlJR1E5SWswd0lERXVORE5ETUNBdU5qUXVOalFnTUNBeExqUXpJREJvTVRjdU1UTkRNVGt1TXpVZ01DQXlNQ0F1TmpRZ01qQWdNUzQwTTNZeE55NHhNMk13SUM0M09TMHVOalVnTVM0ME5DMHhMalEwSURFdU5EUklNUzQwTTBNdU5qUWdNakFnTUNBeE9TNHpOU0F3SURFNExqVTJXbTB3SURBaUx6NDhjR0YwYUNCbWFXeHNQU0lqWm1abUlpQmtQU0pOTnk0NE9DQXhNUzQwTW5ZMExqSTVTRFV1TXpkV015NDFNbWcwTGpjMVl5NDVNaUF3SURFdU56SXVNVGNnTWk0ME1pNDFMalk1TGpNMElERXVNakl1T0RFZ01TNDJJREV1TkRNdU16Y3VOakl1TlRZZ01TNHpNaTQxTmlBeUxqRXhJREFnTVM0eE9TMHVOREVnTWk0eE15MHhMakl5SURJdU9ESXRMamd5TGpZNUxURXVPVFVnTVM0d05DMHpMalFnTVM0d05GcHRNQzB5TGpBMGFESXVNalJqTGpZM0lEQWdNUzR4T0MwdU1UVWdNUzQxTWkwdU5EY3VNelV0TGpNeExqVXpMUzQzTlM0MU15MHhMak0wY3kwdU1UZ3RNUzR3TnkwdU5UTXRNUzQwTldNdExqTTFMUzR6TmkwdU9EUXRMalUxTFRFdU5EWXRMalUyYUMweUxqTmFiVEFnTUNJdlBqd3ZjM1puUGc9PSk7Ym9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGxpbmVhcix2aXNpYmlsaXR5IDBzIGxpbmVhciAuMXM7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyBsaW5lYXIsdmlzaWJpbGl0eSAwcyBsaW5lYXIgLjFzfS55dHAtdmFyaWFibGUtc3BlZWQtcGFuZWwtcHJlbWl1bS1iYWRnZS12aXNpYmxle29wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OjBzO3RyYW5zaXRpb24tZGVsYXk6MHN9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC12b2x1bWUtcG9wb3Zlcnt2aXNpYmlsaXR5OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItcmFkaXVzOjIycHg7cGFkZGluZzoxMnB4IDEwcHg7bWFyZ2luLWJvdHRvbTowOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXl0LWZyb3N0ZWQtZ2xhc3MtYmFja2Ryb3AtZmlsdGVyLW92ZXJyaWRlLGJsdXIoMTZweCkpO2JhY2tkcm9wLWZpbHRlcjp2YXIoLS15dC1mcm9zdGVkLWdsYXNzLWJhY2tkcm9wLWZpbHRlci1vdmVycmlkZSxibHVyKDE2cHgpKTtiYWNrZ3JvdW5kOnZhcigtLXl0LXN5cy1jb2xvci1iYXNlbGluZS0tb3ZlcmxheS1iYWNrZ3JvdW5kLW1lZGl1bS1saWdodCxyZ2JhKDAsMCwwLC4zKSk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXIgc3Zney13ZWJraXQtZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXZvbHVtZS1wb3BvdmVyey13ZWJraXQtdHJhbnNpdGlvbjptYXJnaW4tYm90dG9tIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOm1hcmdpbi1ib3R0b20gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO2JvdHRvbTp2YXIoLS15dC1kZWxoaS1waWxsLWhlaWdodCw0OHB4KX1Ac3VwcG9ydHMgKCgtd2Via2l0LXdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybCkgb3IgKHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybCkpey55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXIgLnl0cC1pbnB1dC1zbGlkZXItc2VjdGlvbi55dHAtdmVydGljYWwtc2xpZGVyIC55dHAtaW5wdXQtc2xpZGVye2hlaWdodDo5NnB4fX0ueXRwLWRlbGhpLW1vZGVybiAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXZvbHVtZS1wb3BvdmVyIC55dHAtaW5wdXQtc2xpZGVyOjotd2Via2l0LXNsaWRlci10aHVtYnt3aWR0aDoxMnB4O2hlaWdodDoxMnB4Oy13ZWJraXQtYm94LXNoYWRvdzowIDFweCAxcHggcmdiYSgwLDAsMCwuOCk7Ym94LXNoYWRvdzowIDFweCAxcHggcmdiYSgwLDAsMCwuOCk7bWFyZ2luLXJpZ2h0Oi01cHh9Lnl0cC1kZWxoaS1tb2Rlcm4gLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC12b2x1bWUtcG9wb3ZlciAueXRwLWlucHV0LXNsaWRlcjo6LW1vei1yYW5nZS10aHVtYnt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O2JveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsLjgpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXIgLnl0cC1pbnB1dC1zbGlkZXI6Oi1tcy10aHVtYnt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O2JveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsLjgpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXIgLnl0cC1pbnB1dC1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNre3dpZHRoOjJweDstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsLjgpO2JveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsLjgpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXIgLnl0cC1pbnB1dC1zbGlkZXI6Oi1tb3otcmFuZ2UtdHJhY2t7d2lkdGg6MnB4O2JveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsLjgpfS55dHAtZGVsaGktbW9kZXJuIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXIgLnl0cC1pbnB1dC1zbGlkZXI6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9Lnl0cC1kZWxoaS1tb2Rlcm46bm90KC5zZWVraW5nLW1vZGUpIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXIueXRwLXZvbHVtZS1wb3BvdmVyLWhvdmVyaW5ne3Zpc2liaWxpdHk6dmlzaWJsZTttYXJnaW4tYm90dG9tOjhweDstd2Via2l0LXRyYW5zaXRpb246bWFyZ2luLWJvdHRvbSAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7dHJhbnNpdGlvbjptYXJnaW4tYm90dG9tIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRwLWRlbGhpLW1vZGVybi55dHAteHNtYWxsLXdpZHRoLW1vZGUgLnl0cC12b2x1bWUtcG9wb3ZlcntsZWZ0Oi00cHh9Lnl0cC1iaWctbW9kZS55dHAtZGVsaGktbW9kZXJuOm5vdCguc2Vla2luZy1tb2RlKSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLXN0YW5kYWxvbmUtbXV0ZS1idXR0b24gLnl0cC12b2x1bWUtcG9wb3ZlcntsZWZ0OjRweH0ueXRwLWJpZy1tb2RlLnl0cC1kZWxoaS1tb2Rlcm46bm90KC5zZWVraW5nLW1vZGUpIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXBvcG92ZXJ7Ym90dG9tOnZhcigtLXl0LWRlbGhpLWJpZy1tb2RlLXBpbGwtaGVpZ2h0LDU2cHgpfS55dHAtdm9sdW1lLXBhbmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjA7aGVpZ2h0OjEwMCU7LXdlYmtpdC10cmFuc2l0aW9uOm1hcmdpbiAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSx3aWR0aCAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOm1hcmdpbiAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSx3aWR0aCAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOjB9Lnl0cC1kZWxoaS1ob3Jpem9udGFsLXZvbHVtZS1jb250cm9scy55dHAtdm9sdW1lLXBhbmVsey13ZWJraXQtdHJhbnNpdGlvbjptYXJnaW4gLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpLHdpZHRoIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOm1hcmdpbiAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksd2lkdGggLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtdm9sdW1lLXNsaWRlci1hY3RpdmUgLnl0cC12b2x1bWUtcGFuZWx7d2lkdGg6NTJweDttYXJnaW4tcmlnaHQ6M3B4Oy13ZWJraXQtdHJhbnNpdGlvbjptYXJnaW4gLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSksd2lkdGggLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjptYXJnaW4gLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSksd2lkdGggLjJzIGN1YmljLWJlemllcigwLDAsLjIsMSl9Lnl0cC1kZWxoaS1ob3Jpem9udGFsLXZvbHVtZS1jb250cm9scy55dHAtdm9sdW1lLXNsaWRlci1hY3RpdmUgLnl0cC12b2x1bWUtcGFuZWx7LXdlYmtpdC10cmFuc2l0aW9uOm1hcmdpbiAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksd2lkdGggLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246bWFyZ2luIC4ycyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSx3aWR0aCAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lnl0cC1iaWctbW9kZSAueXRwLXZvbHVtZS1zbGlkZXItYWN0aXZlIC55dHAtdm9sdW1lLXBhbmVse3dpZHRoOjc4cHg7bWFyZ2luLXJpZ2h0OjVweH0ueXRwLXByb2JhYmx5LWtleWJvYXJkLWZvY3VzIC55dHAtdm9sdW1lLXBhbmVsOmZvY3Vzey13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAycHggcmdiYSgyNywxMjcsMjA0LC44KTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCByZ2JhKDI3LDEyNywyMDQsLjgpfS55dHAtYmlnLW1vZGUgLnl0cC12b2x1bWUtc2xpZGVye21pbi1oZWlnaHQ6NTRweH0ueXRwLXZvbHVtZS1zbGlkZXJ7aGVpZ2h0OjEwMCU7bWluLWhlaWdodDozNnB4O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0ueXRwLXZvbHVtZS1zbGlkZXItaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7d2lkdGg6MTJweDtoZWlnaHQ6MTJweDtib3JkZXItcmFkaXVzOjZweDttYXJnaW4tdG9wOi02cHg7YmFja2dyb3VuZDojZmZmfS55dHAtZGVsaGktaG9yaXpvbnRhbC12b2x1bWUtY29udHJvbHMgLnl0cC12b2x1bWUtc2xpZGVyLWhhbmRsZXstd2Via2l0LWZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwwLDAsLjgpKTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0cC1iaWctbW9kZSAueXRwLXZvbHVtZS1zbGlkZXItaGFuZGxle3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Ym9yZGVyLXJhZGl1czo5cHg7bWFyZ2luLXRvcDotOXB4fS55dHAtYmlnLW1vZGUueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXNsaWRlci1oYW5kbGV7d2lkdGg6MTJweDtoZWlnaHQ6MTJweDttYXJnaW4tdG9wOi02cHg7Ym9yZGVyLXJhZGl1czo2cHg7LXdlYmtpdC1maWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSk7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfS55dHAtdm9sdW1lLXNsaWRlci1oYW5kbGU6YWZ0ZXIsLnl0cC12b2x1bWUtc2xpZGVyLWhhbmRsZTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3RvcDo1MCU7bGVmdDowO2hlaWdodDozcHg7bWFyZ2luLXRvcDotMnB4O3dpZHRoOjY0cHh9Lnl0cC1iaWctbW9kZS55dHAtZGVsaGktaG9yaXpvbnRhbC12b2x1bWUtY29udHJvbHMgLnl0cC12b2x1bWUtc2xpZGVyLWhhbmRsZTphZnRlciwueXRwLWJpZy1tb2RlLnl0cC1kZWxoaS1ob3Jpem9udGFsLXZvbHVtZS1jb250cm9scyAueXRwLXZvbHVtZS1zbGlkZXItaGFuZGxlOmJlZm9yZSwueXRwLWRlbGhpLWhvcml6b250YWwtdm9sdW1lLWNvbnRyb2xzIC55dHAtdm9sdW1lLXNsaWRlci1oYW5kbGU6YWZ0ZXIsLnl0cC1kZWxoaS1ob3Jpem9udGFsLXZvbHVtZS1jb250cm9scyAueXRwLXZvbHVtZS1zbGlkZXItaGFuZGxlOmJlZm9yZXtoZWlnaHQ6MnB4O21hcmdpbi10b3A6LTFweH0ueXRwLWJpZy1tb2RlIC55dHAtdm9sdW1lLXNsaWRlci1oYW5kbGU6YWZ0ZXIsLnl0cC1iaWctbW9kZSAueXRwLXZvbHVtZS1zbGlkZXItaGFuZGxlOmJlZm9yZXtoZWlnaHQ6NHB4O21hcmdpbi10b3A6LTJweDt3aWR0aDo5NnB4fS55dHAtdm9sdW1lLXNsaWRlci1oYW5kbGU6YmVmb3Jle2xlZnQ6LTU4cHg7YmFja2dyb3VuZDojZmZmfS55dHAtYmlnLW1vZGUgLnl0cC12b2x1bWUtc2xpZGVyLWhhbmRsZTpiZWZvcmV7bGVmdDotODdweH0ueXRwLXZvbHVtZS1zbGlkZXItaGFuZGxlOmFmdGVye2xlZnQ6NnB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMil9Lnl0cC1iaWctbW9kZSAueXRwLXZvbHVtZS1zbGlkZXItaGFuZGxlOmFmdGVye2xlZnQ6OXB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMil9Lnl0cC13YXRjaC1vbi15b3V0dWJlLWJ1dHRvbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MWVtfS55dHAtd2F0Y2gtb24teW91dHViZS1idXR0b257Ym9yZGVyLXJhZGl1czoyOHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMyk7Zm9udDo1MDAgMTZweC8xNnB4IFlvdVR1YmUgTm90byxSb2JvdG8sQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC40cyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNHMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksLXdlYmtpdC10cmFuc2Zvcm0gLjRzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dHAtY29udGludWUtd2F0Y2hpbmctYnV0dG9uLnl0cC13YXRjaC1vbi15b3V0dWJlLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzBmMGYwZn0ueXRwLXdhdGNoLW9uLXlvdXR1YmUtYnV0dG9uOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lnl0cC1jb250aW51ZS13YXRjaGluZy1idXR0b24ueXRwLXdhdGNoLW9uLXlvdXR1YmUtYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U1ZTVlNTtjb2xvcjojMGYwZjBmfS55dHAtd2F0Y2gtb24teW91dHViZS1idXR0b246Zm9jdXN7Ym9yZGVyOjJweCBzb2xpZCB3aGl0ZX0ueXRwLWNvbnRpbnVlLXdhdGNoaW5nLWJ1dHRvbi55dHAtd2F0Y2gtb24teW91dHViZS1idXR0b246Zm9jdXN7Ym9yZGVyOjJweCBzb2xpZCB3aGl0ZTtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzBmMGYwZn0ueXRwLXdhdGNoLW9uLXlvdXR1YmUtYnV0dG9uOmFjdGl2ZXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguOTQpOy1tcy10cmFuc2Zvcm06c2NhbGUoLjk0KTt0cmFuc2Zvcm06c2NhbGUoLjk0KTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjFzIGN1YmljLWJlemllciguMDUsMCwwLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSwtd2Via2l0LXRyYW5zZm9ybSAuMXMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9LndhdGNoLWFnYWluLW9uLXlvdXR1YmUtZW5kc2NyZWVue2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufS53YXRjaC1hZ2Fpbi1vbi15b3V0dWJlLWVuZHNjcmVlbnstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRwLXdhdGNoLWFnYWluLW9uLXlvdXR1YmUtZW5kc2NyZWVuLW1vcmUtdmlkZW9zLWNvbnRhaW5lcnt3aWR0aDoxMDAlfS55dHAtYmlnLW1vZGUgLnl0cC13YXRjaC1hZ2Fpbi1vbi15b3V0dWJlLWVuZHNjcmVlbi1tb3JlLXZpZGVvcy1jb250YWluZXIgLnl0cC1tb3JlLXZpZGVvcy12aWV3e2JvdHRvbTp1bnNldH0ueXRwLXdhdGNoLWFnYWluLW9uLXlvdXR1YmUtZW5kc2NyZWVuLW1vcmUtdmlkZW9zLWNvbnRhaW5lciAueXRwLW1vcmUtdmlkZW9zLXZpZXd7Ym9yZGVyLXJhZGl1czoycHg7ZGlyZWN0aW9uOmx0cjttYXJnaW46MTJweDtiYWNrZ3JvdW5kOnJnYmEoMjMsMjMsMjMsLjkpO3BhZGRpbmc6MTJweCAxNnB4IDE2cHg7cG9zaXRpb246cmVsYXRpdmV9Lnl0cC1zaG93LXdhdGNoLWxhdGVyLXRpdGxlLnl0cC13YXRjaC1sYXRlci1idXR0b257bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweH0ueXRwLW92ZXJmbG93LXBhbmVsIC55dHAtc2hvdy13YXRjaC1sYXRlci10aXRsZS55dHAtd2F0Y2gtbGF0ZXItYnV0dG9ue21hcmdpbi1sZWZ0OjIwcHg7bWFyZ2luLXJpZ2h0OjIwcHh9Lnl0cC1iaWctbW9kZSAueXRwLWNocm9tZS10b3AgLnl0cC13YXRjaC1sYXRlci1idXR0b24sLnl0cC1jaHJvbWUtdG9wIC55dHAtd2F0Y2gtbGF0ZXItYnV0dG9ue3dpZHRoOmF1dG87aGVpZ2h0OmF1dG99Lmh0bWw1LXZpZGVvLXBsYXllcjpub3QoLnl0cC1iaWctbW9kZSkgLnl0cC1jaHJvbWUtdG9wIC55dHAtd2F0Y2gtbGF0ZXItYnV0dG9ue21pbi13aWR0aDo0OHB4O21heC13aWR0aDo4MHB4fS55dHAtd2F0Y2gtbGF0ZXItaWNvbnttYXJnaW46YXV0bzt3aWR0aDozNnB4O2hlaWdodDozNnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS55dHAtYmlnLW1vZGUgLnl0cC13YXRjaC1sYXRlci1pY29ue3dpZHRoOjU0cHg7aGVpZ2h0OjU0cHh9Lnl0cC1vdmVyZmxvdy1wYW5lbCAueXRwLXdhdGNoLWxhdGVyLWljb257d2lkdGg6NjBweDtoZWlnaHQ6NjBweDttYXJnaW4tYm90dG9tOjEwcHh9Lnl0cC13YXRjaC1sYXRlci10aXRsZXtmb250LXdlaWdodDo1MDA7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE0cHg7ZGlzcGxheTpub25lfS55dHAtYmlnLW1vZGUgLnl0cC13YXRjaC1sYXRlci10aXRsZSwueXRwLW92ZXJmbG93LXBhbmVsIC55dHAtd2F0Y2gtbGF0ZXItdGl0bGV7Zm9udC1zaXplOjIwcHh9Lnl0cC1zaG93LXdhdGNoLWxhdGVyLXRpdGxlIC55dHAtd2F0Y2gtbGF0ZXItdGl0bGV7ZGlzcGxheTpibG9ja30uaHRtbDUtdmlkZW8tcGxheWVyOm5vdCgueXRwLWJpZy1tb2RlKSAueXRwLWNocm9tZS10b3AgLnl0cC13YXRjaC1sYXRlci10aXRsZXt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbn0ueXRwLXdhdGNoLWxhdGVyLWljb24gLnl0cC1zcGlubmVyLWNvbnRhaW5lcnt3aWR0aDoyMHB4O3BhZGRpbmctYm90dG9tOjIwcHg7bWFyZ2luLXRvcDotMTBweDttYXJnaW4tbGVmdDotMTBweH0ueXRwLWJpZy1tb2RlIC55dHAtd2F0Y2gtbGF0ZXItaWNvbiAueXRwLXNwaW5uZXItY29udGFpbmVye3dpZHRoOjM1cHg7cGFkZGluZy1ib3R0b206MzVweDttYXJnaW4tdG9wOi0xNy41cHg7bWFyZ2luLWxlZnQ6LTE3LjVweH0ueXRwLXdhdGNoLWxhdGVyLWljb24gLnl0cC1zcGlubmVyLWNpcmNsZXtib3JkZXItd2lkdGg6M3B4fS55dHAtYmlnLW1vZGUgLnl0cC13YXRjaC1sYXRlci1pY29uIC55dHAtc3Bpbm5lci1jaXJjbGV7Ym9yZGVyLXdpZHRoOjVweH0ud2ViZ2x7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjExO3dpZHRoOjEwMCV9LmVuZGVkLW1vZGUgLndlYmdse2Rpc3BsYXk6bm9uZX0ueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAteW91dHViZS1idXR0b24sLnl0cC1kbmkueXRwLWVtYmVkIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC15b3V0dWJlLWJ1dHRvbiwueXRwLWVtYmVkIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC15b3V0dWJlLWJ1dHRvbiwueXRwLWVtYmVkLnl0cC1zbWFsbC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC15b3V0dWJlLWJ1dHRvbiwueXRwLXNtYWxsLW1vZGUgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24ueXRwLXlvdXR1YmUtYnV0dG9ue3dpZHRoOjY3cHh9Lnl0cC1lbWJlZCAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAteW91dHViZS1idXR0b24ueXRwLXlvdXR1YmUtbXVzaWMtYnV0dG9ue3dpZHRoOjEyMHB4fS55dHAtZW1iZWQgLnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24ueXRwLXlvdXR1YmUtYnV0dG9uLnl0cC15b3V0dWJlLW11c2ljLWJ1dHRvbiBzdmd7bWFyZ2luLWxlZnQ6LTI1cHg7aGVpZ2h0OjI0cHh9Lnl0cC1jaHJvbWUtY29udHJvbHMgLnl0cC1idXR0b24ueXRwLXlvdXR1YmUtYnV0dG9uLm5vLWxpbmssLnl0cC1zbWFsbC1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC15b3V0dWJlLWJ1dHRvbi5uby1saW5re2N1cnNvcjpkZWZhdWx0O3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0cC1iaWctbW9kZSAueXRwLWNocm9tZS1jb250cm9scyAueXRwLWJ1dHRvbi55dHAteW91dHViZS1idXR0b24sLnl0cC1kbmkueXRwLWJpZy1tb2RlIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAtYnV0dG9uLnl0cC15b3V0dWJlLWJ1dHRvbnt3aWR0aDoxMDBweH0ueXRwLWVtYmVkIC55dHAtY2hyb21lLWNvbnRyb2xzIC55dHAteW91dHViZS1idXR0b24ueXRwLXlvdXR1YmUtbXVzaWMtYnV0dG9ue2hlaWdodDoyNXB4O21hcmdpbi1ib3R0b206N3B4fS55dHAtZHJhd2Vye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7d2lkdGg6MzUwcHg7dGV4dC1hbGlnbjpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6NDc7LXdlYmtpdC10cmFuc2l0aW9uOndpZHRoIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTt0cmFuc2l0aW9uOndpZHRoIC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWJpZy1tb2RlIC55dHAtZHJhd2Vye3dpZHRoOjQyNXB4fS55dHAtZHJhd2VyLWNsb3NlZHt3aWR0aDoyNXB4fS55dHAtYmlnLW1vZGUgLnl0cC1kcmF3ZXItY2xvc2Vke3dpZHRoOjM4cHh9Lnl0cC1kcmF3ZXItY29udGVudHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MzUwcHg7aGVpZ2h0OjEwMCU7cGFkZGluZzo0OHB4IDI1cHggMjVweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRwLWJpZy1tb2RlIC55dHAtZHJhd2VyLWNvbnRlbnR7d2lkdGg6NDI1cHg7cGFkZGluZzo3MHB4IDE1cHggMTVweH0ueXRwLWRyYXdlci1jbG9zZWQgLnl0cC1kcmF3ZXItY29udGVudHtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzIGN1YmljLWJlemllciguNCwwLDEsMSl9Lnl0cC1kcmF3ZXItY2xvc2UtYnV0dG9ue3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtwYWRkaW5nOjVweDtmaWxsOndoaXRlfS55dHAtYmlnLW1vZGUgLnl0cC1kcmF3ZXItY2xvc2UtYnV0dG9ue3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7cGFkZGluZzo3cHh9Lnl0cC1kcmF3ZXItY2xvc2VkIC55dHAtZHJhd2VyLWNsb3NlLWJ1dHRvbntkaXNwbGF5Om5vbmV9Lnl0cC1kcmF3ZXItb3Blbi1idXR0b257ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDowO3dpZHRoOjE1cHg7aGVpZ2h0OjMycHg7bWFyZ2luLXRvcDotMTZweDtwYWRkaW5nOjEwcHggNXB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNyl9Lnl0cC1iaWctbW9kZSAueXRwLWRyYXdlci1vcGVuLWJ1dHRvbnt3aWR0aDoyM3B4O2hlaWdodDo0OHB4O21hcmdpbi10b3A6LTI0cHg7cGFkZGluZzoxNXB4IDhweH0ueXRwLWRyYXdlci1jbG9zZWQgLnl0cC1kcmF3ZXItb3Blbi1idXR0b257ZGlzcGxheTpibG9ja30ueXRwLWRyYXdlci1vcGVuLWJ1dHRvbjphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jaztib3JkZXI6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjojYWFhO2JvcmRlci1sZWZ0Om5vbmU7Y29udGVudDoiIn0ueXRwLWJpZy1tb2RlIC55dHAtZHJhd2VyLW9wZW4tYnV0dG9uOmFmdGVye2JvcmRlci1ib3R0b20td2lkdGg6OHB4O2JvcmRlci1yaWdodC13aWR0aDo4cHg7Ym9yZGVyLXRvcC13aWR0aDo4cHh9Lmh0bWw1LXlwYy1tb2R1bGV7bGluZS1oZWlnaHQ6MS4yO3RleHQtYWxpZ246bGVmdH0uaHRtbDUteXBjLWFjdGlvbi1oZWFkaW5ne21hcmdpbi1ib3R0b206NXB4O2ZvbnQtc2l6ZToxOHB4O2NvbG9yOiM5OTl9Lnl0cC1zbWFsbC1tb2RlIC5odG1sNS15cGMtYWN0aW9uLWhlYWRpbmd7ZGlzcGxheTpub25lfS5odG1sNS15cGMtdGl0bGV7Zm9udC1zaXplOjIwcHh9Lmh0bWw1LXlwYy10aHVtYm5haWx7ZmxvYXQ6bGVmdH0uaHRtbDUteXBjLXRodW1ibmFpbCBpbWd7d2lkdGg6MTAwcHg7bWFyZ2luOjAgMTBweCAxMHB4IDB9Lmh0bWw1LXlwYy10aHVtYm5haWwgaW1nLmF2YXRhcntib3JkZXItcmFkaXVzOjUwJTtvdmVyZmxvdzpoaWRkZW59Lmh0bWw1LXlwYy10aHVtYm5haWwgaW1nLmxhbmRzY2FwZXt3aWR0aDoxNjBweH0ueXRwLXNtYWxsLW1vZGUgLmh0bWw1LXlwYy10aHVtYm5haWwgaW1ne3dpZHRoOjUwcHh9Lnl0cC1zbWFsbC1tb2RlIC5odG1sNS15cGMtdGh1bWJuYWlsIGltZy5sYW5kc2NhcGV7d2lkdGg6ODBweH0ueXRwLWJpZy1tb2RlIC5odG1sNS15cGMtdGh1bWJuYWlsIGltZ3t3aWR0aDoxNTBweDttYXJnaW46MCAxNXB4IDE4cHggMH0ueXRwLWJpZy1tb2RlIC5odG1sNS15cGMtdGh1bWJuYWlsIGltZy5sYW5kc2NhcGV7d2lkdGg6MjQwcHh9Lmh0bWw1LXlwYy1kZXNjcmlwdGlvbntmb250LXNpemU6MTRweH0ueXRwLXNtYWxsLW1vZGUgLmh0bWw1LXlwYy1kZXNjcmlwdGlvbnttYXJnaW4tdG9wOjEwcHh9Lnl0cC1iaWctbW9kZSAuaHRtbDUteXBjLWRlc2NyaXB0aW9ue21hcmdpbi10b3A6MzhweH0uaHRtbDUteXBjLXB1cmNoYXNle2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTRweDttYXJnaW46MTJweCAwO3BhZGRpbmc6MTBweCAyMHB4O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6IzI3OTNlNn0ueXRwLWJpZy1tb2RlIC5odG1sNS15cGMtcHVyY2hhc2V7bWFyZ2luOjE4cHggMDtwYWRkaW5nOjE1cHggMjBweDtib3JkZXItcmFkaXVzOjNweH0uaHRtbDUteXBjLXB1cmNoYXNlOmhvdmVye2JhY2tncm91bmQ6IzEyNmRiM30uaHRtbDUteXBjLXB1cmNoYXNlLmh0bWw1LXlwYy1yb3VuZGVke2JvcmRlci1yYWRpdXM6MThweH0uaHRtbDUteXBjLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cGFkZGluZzo1cHg7bWFyZ2luLWxlZnQ6MTJweDtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDo2Njtwb2ludGVyLWV2ZW50czpub25lO3RleHQtc2hhZG93OjAgMCAycHggcmdiYSgwLDAsMCwuNSl9Lnl0cC1iaWctbW9kZSAuaHRtbDUteXBjLW92ZXJsYXl7cGFkZGluZzo4cHg7bWFyZ2luLWxlZnQ6MjRweH0uaHRtbDUteXBjLWVuZHNjcmVlbntkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7cGFkZGluZzo1MXB4IDIxcHggMjFweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjc1KTt6LWluZGV4OjM2fS55dHAtc21hbGwtbW9kZSAuaHRtbDUteXBjLWVuZHNjcmVlbntwYWRkaW5nLXRvcDoyMXB4fS55dHAteXBjLWNsaWNrd3JhcC1vdmVybGF5e3BhZGRpbmc6MjVweCAyMHB4IDA7ei1pbmRleDo2OX0ueXRwLXlwYy1jbGlja3dyYXAtaGVhZGVye2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM4ODg7cGFkZGluZzowIDAgMTVweCA1cHg7Zm9udC1zaXplOjE4MiU7Zm9udC13ZWlnaHQ6NDAwfS55dHAteXBjLWNsaWNrd3JhcC1kZXNjcmlwdGlvbnttYXJnaW46MTVweCAwIDAgNXB4O2ZvbnQtc2l6ZToxMjclfS55dHAteXBjLWNsaWNrd3JhcC1jb25maXJte21hcmdpbjoyMHB4IDAgMCA1cHg7cGFkZGluZzo3cHggMTBweDtiYWNrZ3JvdW5kLWNvbG9yOiMzN2Q7Ym9yZGVyLXJhZGl1czoycHh9Lnl0cC15cGMtY2xpY2t3cmFwLWNvbmZpcm06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMjZjfS55dHAteXRvLXByZXJvbGwtbWVzc2FnZXtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cGFkZGluZzo1cHg7bWFyZ2luLWxlZnQ6MTJweDtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDo2NTtwb2ludGVyLWV2ZW50czpub25lO3RleHQtc2hhZG93OjAgMCAycHggcmdiYSgwLDAsMCwuNSl9Lnl0cC15dG8tcHJlcm9sbCAueXRwLXl0by1wcmVyb2xsLW1lc3NhZ2V7ZGlzcGxheTpibG9ja31zZW50aW5lbHt9"}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":12,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/roboto/v48/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://www.youtube.com/embed/Ymge-qh3m4E","date":"2026-07-27T03:07:40.446Z","timestamp":1785121660446,"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":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/roboto/v48/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 HTTP/1.1\r\nHost: fonts.gstatic.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\nOrigin: https://www.youtube.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\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\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 40128\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 02:17:07 GMT\r\nexpires: Fri, 23 Jul 2027 02:17:07 GMT\r\ncache-control: public, max-age=31536000\r\nage: 348633\r\nlast-modified: Thu, 29 May 2025 23:30:55 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":40128,"size_decoded":40941,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 40128, version 1.0","md5":"9a01b69183a9604ab3a439e388b30501","sha1":"8ed1d59003d0dbe6360481017b44665153665fbe","sha256":"20b535fa80c8189e3b87d1803038389960203a886d502bc2ef1857affc2f38d2","sha512":"0e6795255b6eea00b5403fd7e3b904d52776d49ac63a31c2778361262883697943aedcb29feee85694ba6f19eaa34dddb9a5bfe7118f4a25b4757e92c331feca","ssdeep":"768:Vce3jkow68wmT4IBX0tXdlSirS61gSjcz0GPwHbP+w2jec56O:VcI/iEEEtXdFJj+0GPwHbP+w5rO","tlshash":"3703023a5e3ccf1a84157a703950f6d9a8481e548e9d143b4f1ac7bf085dde2209b6d4","first_seen":"2025-01-08T22:59:02.845106Z","last_seen":"2026-07-27T05:13:54.226554Z","times_seen":946887,"resource_available":false,"data":"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"}},"time_used":58,"timings":{"blocked":17,"dns":0,"connect":0,"send":0,"wait":18,"receive":23,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/favicon-16x16.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.683Z","timestamp":1785121660683,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /favicon-16x16.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 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 03:07:40 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-27T05:14:02.688672Z","times_seen":143744,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iIC8+Cjx0aXRsZT4gNDA0IE5vdCBGb3VuZA0KPC90aXRsZT48c3R5bGU+QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9fTwvc3R5bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KPGRpdiBzdHlsZT0iaGVpZ2h0OmF1dG87IG1pbi1oZWlnaHQ6MTAwJTsgIj4gICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6ODAwcHg7IG1hcmdpbi1sZWZ0OiAtNDAwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDMwJTsgbGVmdDo1MCU7Ij4KICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjowOyBmb250LXNpemU6MTUwcHg7IGxpbmUtaGVpZ2h0OjE1MHB4OyBmb250LXdlaWdodDpib2xkOyI+NDA0PC9oMT4KPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kDQo8L2gyPgo8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZvbnQtc2l6ZToxMnB4O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFja2dyb3VuZC1jb2xvcjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyI+Cjxicj5Qcm91ZGx5IHBvd2VyZWQgYnkgTGl0ZVNwZWVkIFdlYiBTZXJ2ZXI8cD5QbGVhc2UgYmUgYWR2aXNlZCB0aGF0IExpdGVTcGVlZCBUZWNobm9sb2dpZXMgSW5jLiBpcyBub3QgYSB3ZWIgaG9zdGluZyBjb21wYW55IGFuZCwgYXMgc3VjaCwgaGFzIG5vIGNvbnRyb2wgb3ZlciBjb250ZW50IGZvdW5kIG9uIHRoaXMgc2l0ZS48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4K"}},"time_used":99,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":99,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/generate_204?5mCs-A","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.youtube.com/embed/Ymge-qh3m4E","date":"2026-07-27T03:07:41.622Z","timestamp":1785121661622,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /generate_204?5mCs-A HTTP/1.1\r\nHost: www.youtube.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://www.youtube.com/embed/Ymge-qh3m4E\r\nCookie: __Secure-YNID=20.YT=OD2AqDJJ5KCd2FQHST0PP6nm_PUnOmOKKW_5n2sU3Uto7bgqmGZVezTy0eT5Ch1tu0JzTUorYggNVLrq4iBbxMgjKYV2etvlvytuKk4TF9mvut1pghwMJgUbuW8p4XdgsmD-iSy6zHQlRAhB-JrbMaRe5h5KsRdBUFWbvsxsNeH89V6KOOjVPuXhJsEWmIkl-LvE1HpLYRq5EZFVQYIOUs-Z8R5-lI8AE0vJVBeC2LGwT5UqkcaMp_COMwshp2EEUXAKmfxi2oM6g3JxUmkhMTmLxZ6-dd5IROcdvW6cdIjiQ0GqdQz5GxuAM3oOINnB4Vt5On4L4U_Gl5n7h1P_CQ; YSC=IgHKWvjgj0E; __Secure-ROLLOUT_TOKEN=CNnI7u31yczMShCAqsGz8PGVAxiAqsGz8PGVAw%3D%3D; VISITOR_INFO1_LIVE=mzxiTe7ERp4; VISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgIw%3D%3D\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 204 \r\ncontent-length: 0\r\ncross-origin-resource-policy: cross-origin\r\ndate: Mon, 27 Jul 2026 03:07:41 GMT\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"204","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":172,"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-27T05:14:11.3544Z","times_seen":17556491,"resource_available":true,"data":""}},"time_used":9,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"api-iam.intercom.io/messenger/web/launcher_settings","fqdn":"api-iam.intercom.io","domain":"intercom.io","tld":"io"},"ip":{"addr":"52.72.242.128","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:41.944Z","timestamp":1785121661944,"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":"*.intercom.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Thu, 13 Nov 2025 00:00:00 GMT","end":"Fri, 11 Dec 2026 23:59:59 GMT"},"fingerprint":{"sha1":"E2:7C:0F:4C:CC:B1:6F:45:04:99:4A:D4:CB:5C:0B:60:CA:75:CD:8E","sha256":"A6:51:D4:CB:51:4E:EF:B9:AD:B6:95:84:A1:3B:92:C1:BF:81:F5:22:36:A3:50:A2:8E:92:09:4A:15:D0:7E:CC"}}},"request":{"raw":"POST /messenger/web/launcher_settings HTTP/1.1\r\nHost: api-iam.intercom.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 372\r\nOrigin: https://7bridgecapital.com\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://7bridgecapital.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":"POST","post_data":{"size":372,"data":"app_id=p60ru8yf\u0026v=3\u0026g=66bb81a04b6586d610d306b31f5535a175253c0c\u0026s=0cc473ee-9742-4783-bd37-83b91a29bffc\u0026r=\u0026platform=web\u0026installation_type=js-snippet\u0026installation_version=undefined\u0026Idempotency-Key=fff5facb6dac913f\u0026internal=\u0026is_intersection_booted=false\u0026page_title=7Bridge%20Capital\u0026user_active_company_id=undefined\u0026user_data=%7B%7D\u0026referer=https%3A%2F%2F7bridgecapital.com%2F"}},"response":{"raw":"HTTP/2 403 \r\ndate: Mon, 27 Jul 2026 03:07:42 GMT\r\ncontent-type: application/json; charset=utf-8\r\nstatus: 403 Forbidden\r\nvary: Accept-Encoding, Accept\r\nx-intercom-version: 53849cf9d179aec43dd9f54e6d0d7f7e969cc5fc\r\naccess-control-expose-headers: x-request-id, x-runtime\r\nx-request-id: 001kl60mk8cte1hhn1kg\r\nx-frame-options: SAMEORIGIN\r\ncache-control: no-cache\r\naccess-control-allow-origin: https://7bridgecapital.com\r\nstrict-transport-security: max-age=31556952; includeSubDomains; preload\r\nreferrer-policy: strict-origin-when-cross-origin\r\naccess-control-max-age: 86400\r\nx-xss-protection: 1; mode=block\r\nx-request-queueing: 0\r\ntiming-allow-origin: *\r\naccess-control-allow-headers: Content-Type, Idempotency-Key, X-INTERCOM-APP, X-INTERCOM-PAGE-TITLE, X-INTERCOM-USER-DATA, traceparent, X-Continue-Intercom-Trace\r\naccess-control-allow-credentials: true\r\naccess-control-allow-methods: POST, GET, OPTIONS\r\nx-runtime: 0.008503\r\nx-content-type-options: nosniff\r\nserver: nginx\r\ncontent-encoding: gzip\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"403","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":113,"size_decoded":1141,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"694bc6e0147dc0c2eea6196dd67796a1","sha1":"ac776592358e6430523d9b78e0336c4b687324da","sha256":"3bfc1a1c8468f0b43a576128cf1c5c2b2f19df66ad9654ecda61a66821937239","sha512":"ffcf4c7704c6d81aca5b9cb774f56bcff091bdf478cc9ed6b0975104b6fb4b31a21f6bac2c2558e48842bcf9fbfbd85697fa9fb9dc2bdc15de0ceb46a9e1a764","ssdeep":"","tlshash":"6eb0120fc5567cb79f910953accf149986ece0b190e408e5845c929f894e541d51735f","first_seen":"2026-07-27T03:08:23.000456Z","last_seen":"2026-07-27T03:08:23.000456Z","times_seen":1,"resource_available":false,"data":"eyJ0eXBlIjoiZXJyb3IubGlzdCIsInJlcXVlc3RfaWQiOiIwMDFrbDYwbWs4Y3RlMWhobjFrZyIsImVycm9ycyI6W3siY29kZSI6ImJsb2NrZWQiLCJtZXNzYWdlIjoiQXBwIHN1c3BlbmRlZCJ9XX0="}},"time_used":386,"timings":{"blocked":0,"dns":3,"connect":92,"send":0,"wait":103,"receive":0,"ssl":187},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/#","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.039Z","timestamp":1785121660039,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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\nx-powered-by: PHP/7.3.33\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 03:07:40 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Stimulus","description":"A modest JavaScript framework for the HTML you already have.","website":"https://stimulusjs.org/","common_platform_enumeration":"","icon":"Stimulus.svg","categories":["JavaScript frameworks"]},{"name":"OneSignal","description":"OneSignal is a customer engagement messaging solution.","website":"https://onesignal.com","common_platform_enumeration":"","icon":"OneSignal.svg","categories":["Marketing automation","A/B Testing"]},{"name":"Google Analytics","description":"Google Analytics is a free web analytics service that tracks and reports website traffic.","website":"https://google.com/analytics","common_platform_enumeration":"","icon":"Google Analytics.svg","categories":["Analytics"]},{"name":"JivoChat","description":"JivoChat is a live chat solution for websites offering customizable web and mobile chat widgets.","website":"https://www.jivosite.com","common_platform_enumeration":"","icon":"JivoChat.png","categories":["Live chat"]},{"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":"PHP:7.3.33","description":"PHP is a general-purpose scripting language used for web development.","website":"https://php.net","common_platform_enumeration":"cpe:2.3:a:php:php:*:*:*:*:*:*:*:*","icon":"PHP.svg","categories":["Programming languages"]},{"name":"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"]}],"data":{"size":62535,"size_decoded":9664,"mime_type":"text/html; charset=UTF-8","magic":"HTML document, Unicode text, UTF-8 text, with very long lines (373)","md5":"11c7b8c0579173a59cbd6200fcb3b2b1","sha1":"778f60e77bbebccd5a06135d504c67c1aa8b220f","sha256":"4517916a4b6cf0f1f57bdcb70b84d4e41c8759fb50b47e3411d60cee6200ff79","sha512":"09feacb35a41631f5a3f31b6452a32049cb53e24d993194f637929f4008b2b3ee6c4d7bc3e9529a92efca979f7e94adcd73b5257991d76d454e1278887a50712","ssdeep":"384:pKDlzzzzWuu+RubppxV8lC1huKtO01g89OP8uNt10ywpnYhAPBuKNOUVALbOh8ZJ:pKDlznzlLExSKi8uNsywpb0KGpxXQqN","tlshash":"7853402094f1103702c394b6eb39e61abfc1d507da0baa46b6fc47988fd3c929e5356c","first_seen":"2026-07-27T03:08:23.001367Z","last_seen":"2026-07-27T03:08:23.001367Z","times_seen":1,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KCjxoZWFkPgogICAgPHRpdGxlPjdCcmlkZ2UgQ2FwaXRhbDwvdGl0bGU+CiAgICAKICAgIAogICAgCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KICAgIDxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjZmZmZmZmIj4KICAgIDxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iL2ZvbnRzL091dGZpdC1SZWd1bGFyLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC93b2ZmMiIgY3Jvc3NvcmlnaW4+CiAgICA8bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii9mb250cy9SZWRIYXREaXNwbGF5LUJsYWNrLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC93b2ZmMiIgY3Jvc3NvcmlnaW4+CiAgICA8bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii9mb250cy9SZWRIYXREaXNwbGF5LUJvbGQud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L3dvZmYyIiBjcm9zc29yaWdpbj4KCiAgICA8bWV0YSBuYW1lPSJjc3JmLXBhcmFtIiBjb250ZW50PSJfY3NyZiI+CiAgICA8bWV0YSBuYW1lPSJjc3JmLXRva2VuIiBjb250ZW50PSI0b3pNZWthbTZ0dm5BcXpHV2dPcnhpNEdGWWxRYmxHeEZNWTI1RjZXQXp1VjZ2b3BNYzZDN3AxcTJZc09OT1B4VkdsUy1qcGRPZFJDaUZYZENQazNlZz09Ij4KCiAgICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ii9mYXZpY29uLmljbyI+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxODB4MTgwIiBocmVmPSIvYXBwbGUtdG91Y2gtaWNvbi5wbmciPgogICAgPGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS9wbmciIHNpemVzPSIzMngzMiIgaHJlZj0iL2Zhdmljb24tMzJ4MzIucG5nIj4KICAgIDxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBzaXplcz0iMTZ4MTYiIGhyZWY9Ii9mYXZpY29uLTE2eDE2LnBuZyI+CiAgICA8bGluayByZWw9Im1hbmlmZXN0IiBocmVmPSIvc2l0ZS53ZWJtYW5pZmVzdCI+CiAgICA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iI2ZmZmZmZiI+CgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IjdicmlkZ2UgQ2FwaXRhbCwgYSBsZWFkaW5nIEJpdGNvaW4gaW52ZXN0bWVudCBjb21wYW55IGZvdW5kZWQgb24gSnVuZSAzcmQsIDIwMDIuIFdlIHNwZWNpYWxpemUgaW4gcHJvdmlkaW5nIHNlY3VyZSwgcmVsaWFibGUgYW5kIHByb2ZpdGFibGUgaW52ZXN0bWVudCBzb2x1dGlvbnMgaW4gdGhlIGR5bmFtaWMgd29ybGQgb2YgY3J5cHRvY3VycmVuY2llcy4uISEiPiAKICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJhcnRpY2xlIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0iN2JyaWRnZSBDYXBpdGFsLCBhIGxlYWRpbmcgQml0Y29pbiBpbnZlc3RtZW50IGNvbXBhbnkgZm91bmRlZCBvbiBKdW5lIDNyZCwgMjAwMi4gV2Ugc3BlY2lhbGl6ZSBpbiBwcm92aWRpbmcgc2VjdXJlLCByZWxpYWJsZSBhbmQgcHJvZml0YWJsZSBpbnZlc3RtZW50IHNvbHV0aW9ucyBpbiB0aGUgZHluYW1pYyB3b3JsZCBvZiBjcnlwdG9jdXJyZW5jaWVzLi4hISEiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlIiBjb250ZW50PSJpbWcvc2hhcmUvc2hhcmUyLmpwZyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6c2VjdXJlX3VybCIgY29udGVudD0iaW1nL3NoYXJlL3NoYXJlMi5qcGciPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnVwZGF0ZWRfdGltZSIgY29udGVudD0iMjAyMy0wNy0zMSI+CiAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnkiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjpzaXRlIiBjb250ZW50PSIiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjpjcmVhdG9yIiBjb250ZW50PSIiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjpkZXNjcmlwdGlvbiIgY29udGVudD0iN2JyaWRnZSBDYXBpdGFsLCBhIGxlYWRpbmcgQml0Y29pbiBpbnZlc3RtZW50IGNvbXBhbnkgZm91bmRlZCBvbiBKdW5lIDNyZCwgMjAwMi4gV2Ugc3BlY2lhbGl6ZSBpbiBwcm92aWRpbmcgc2VjdXJlLCByZWxpYWJsZSBhbmQgcHJvZml0YWJsZSBpbnZlc3RtZW50IHNvbHV0aW9ucyBpbiB0aGUgZHluYW1pYyB3b3JsZCBvZiBjcnlwdG9jdXJyZW5jaWVzLi4hISI+CiAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmltYWdlIiBjb250ZW50PSJpbWcvc2hhcmUvc2hhcmUyLmpwZyI+CiAgICA8bGluayBocmVmPSJpbWcvc2hhcmUvc2hhcmUyLmpwZyIgcmVsPSJpbWFnZV9zcmMiPgogICAgPGxpbmsgaHJlZj0iL2Nzcy9tYWluLmNzcz92PTE2ODQ5NDY4MjUiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLm9uZXNpZ25hbC5jb20vc2Rrcy9PbmVTaWduYWxTREsuanMiIGFzeW5jPSIiPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQ+CiAgICAgICAgd2luZG93Lk9uZVNpZ25hbCA9IHdpbmRvdy5PbmVTaWduYWwgfHwgW107CiAgICAgICAgT25lU2lnbmFsLnB1c2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIE9uZVNpZ25hbC5pbml0KHsKICAgICAgICAgICAgICAgIGFwcElkOiAiNzg2MjdjNTUtZGE0Ny00ZmM0LTgxMzEtY2M1Yjg5OTkzNGU0IiwKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CgogICAgICAgIE9uZVNpZ25hbC5wdXNoKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBPbmVTaWduYWwub24oJ3N1YnNjcmlwdGlvbkNoYW5nZScsIGZ1bmN0aW9uKGlzU3Vic2NyaWJlZCkgewogICAgICAgICAgICAgICAgaWYgKGlzU3Vic2NyaWJlZCkgewogICAgICAgICAgICAgICAgICAgIE9uZVNpZ25hbC5nZXRVc2VySWQoKS50aGVuKGZ1bmN0aW9uKHVzZXJJZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAodXNlcklkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAnb3NfaWQ9JyArIHVzZXJJZDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIDwvc2NyaXB0PgoKICAgIDxzY3JpcHQ+CiAgICAgICAgd2luZG93LmludGVyY29tU2V0dGluZ3MgPSB7CiAgICAgICAgICAgIGFwaV9iYXNlOiAiaHR0cHM6Ly9hcGktaWFtLmludGVyY29tLmlvIiwKICAgICAgICAgICAgYXBwX2lkOiAicDYwcnU4eWYiCiAgICAgICAgfTsKCiAgICAgICAgLy8gV2UgcHJlLWZpbGxlZCB5b3VyIGFwcCBJRCBpbiB0aGUgd2lkZ2V0IFVSTDogJ2h0dHBzOi8vd2lkZ2V0LmludGVyY29tLmlvL3dpZGdldC9wNjBydTh5ZicKICAgICAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciB3ID0gd2luZG93OwogICAgICAgICAgICB2YXIgaWMgPSB3LkludGVyY29tOwogICAgICAgICAgICBpZiAodHlwZW9mIGljID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgICBpYygncmVhdHRhY2hfYWN0aXZhdG9yJyk7CiAgICAgICAgICAgICAgICBpYygndXBkYXRlJywgdy5pbnRlcmNvbVNldHRpbmdzKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkID0gZG9jdW1lbnQ7CiAgICAgICAgICAgICAgICB2YXIgaSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIGkuYyhhcmd1bWVudHMpOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIGkucSA9IFtdOwogICAgICAgICAgICAgICAgaS5jID0gZnVuY3Rpb24oYXJncykgewogICAgICAgICAgICAgICAgICAgIGkucS5wdXNoKGFyZ3MpOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIHcuSW50ZXJjb20gPSBpOwogICAgICAgICAgICAgICAgdmFyIGwgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgcyA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgICAgICAgICAgICAgcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgICAgICAgICAgICAgcy5hc3luYyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgcy5zcmMgPSAnaHR0cHM6Ly93aWRnZXQuaW50ZXJjb20uaW8vd2lkZ2V0L3A2MHJ1OHlmJzsKICAgICAgICAgICAgICAgICAgICB2YXIgeCA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgICAgICAgICAgICAgICAgIHgucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocywgeCk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScpIHsKICAgICAgICAgICAgICAgICAgICBsKCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHcuYXR0YWNoRXZlbnQpIHsKICAgICAgICAgICAgICAgICAgICB3LmF0dGFjaEV2ZW50KCdvbmxvYWQnLCBsKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgbCwgZmFsc2UpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSkoKTsKICAgIDwvc2NyaXB0PgoKICAgIDwhLS0gR29vZ2xlIHRhZyAoZ3RhZy5qcykgLS0+CiAgICA8c2NyaXB0IGFzeW5jIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RhZy9qcz9pZD1HLUNUNlRWS1k0UUsiPjwvc2NyaXB0PgogICAgPHNjcmlwdD4KICAgICAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTsKCiAgICAgICAgZnVuY3Rpb24gZ3RhZygpIHsKICAgICAgICAgICAgZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTsKICAgICAgICB9CiAgICAgICAgZ3RhZygnanMnLCBuZXcgRGF0ZSgpKTsKCiAgICAgICAgZ3RhZygnY29uZmlnJywgJ0ctQ1Q2VFZLWTRRSycpOwogICAgPC9zY3JpcHQ+CgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgIGFkcm9sbF9hZHZfaWQgPSAiS0VSTUVIR0lNVkRRTENFRk0yVVVLVSI7CiAgICAgICAgYWRyb2xsX3BpeF9pZCA9ICJWR09EWVhUWEVaR0VWQ1FEVFBJUlhWIjsKICAgICAgICBhZHJvbGxfdmVyc2lvbiA9ICIyLjAiOwogICAgICAgIChmdW5jdGlvbih3LCBkLCBlLCBvLCBhKSB7CiAgICAgICAgICAgIHcuX19hZHJvbGxfbG9hZGVkID0gdHJ1ZTsKICAgICAgICAgICAgdy5hZHJvbGwgPSB3LmFkcm9sbCB8fCBbXTsKICAgICAgICAgICAgdy5hZHJvbGwuZiA9IFsnc2V0UHJvcGVydGllcycsICdpZGVudGlmeScsICd0cmFjayddOwogICAgICAgICAgICB2YXIgcm91bmR0cmlwVXJsID0gImh0dHBzOi8vcy5hZHJvbGwuY29tL2ovIiArIGFkcm9sbF9hZHZfaWQgKyAiL3JvdW5kdHJpcC5qcyI7CiAgICAgICAgICAgIGZvciAoYSA9IDA7IGEgPCB3LmFkcm9sbC5mLmxlbmd0aDsgYSsrKSB7CiAgICAgICAgICAgICAgICB3LmFkcm9sbFt3LmFkcm9sbC5mW2FdXSA9IHcuYWRyb2xsW3cuYWRyb2xsLmZbYV1dIHx8IChmdW5jdGlvbihuKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICB3LmFkcm9sbC5wdXNoKFtuLCBhcmd1bWVudHNdKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pKHcuYWRyb2xsLmZbYV0pCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZSA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgICAgIG8gPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsKICAgICAgICAgICAgZS5hc3luYyA9IDE7CiAgICAgICAgICAgIGUuc3JjID0gcm91bmR0cmlwVXJsOwogICAgICAgICAgICBvLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsIG8pOwogICAgICAgIH0pKHdpbmRvdywgZG9jdW1lbnQpOwogICAgICAgIGFkcm9sbC50cmFjaygicGFnZVZpZXciKTsKICAgIDwvc2NyaXB0PgogICAgCiAgICAKCjwvaGVhZD4KCjxib2R5IGNsYXNzPSJwYWdlIHBhZ2UtLWluZGV4IiBkYXRhLWNvbnRyb2xsZXI9InNvYy1wcm9vZiI+CiAgICA8ZGl2IGlkPSJmYi1yb290Ij48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InNvYy1wcm9vZi1jb250YWluZXIiIGRhdGEtc29jLXByb29mLXRhcmdldD0iY29udGFpbmVyIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9IndyYXBwZXIiPgoKCgoKICAgICAgICA8IS0tIE1lbnUgLS0+CgogICAgICAgIDxoZWFkZXIgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXJfX2lubmVyIiBkYXRhLWNvbnRyb2xsZXI9Im5hdiI+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaGVhZGVyX19idXJnZXIiIGRhdGEtYWN0aW9uPSJjbGljay0mZ3Q7bmF2I29wZW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLW1lbnUiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9ImhlYWRlcl9fbG9nby13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9pbWcvbG9nby1mdWxsLnN2ZyIgYWx0PSI3QlJJREdFIiB3aWR0aD0iMTcyIiBoZWlnaHQ9IjQwIiBsb2FkaW5nPSJlYWdlciIgY2xhc3M9ImhlYWRlcl9fbG9nbyI+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDxuYXYgY2xhc3M9ImhlYWRlcl9fbmF2IG5hdiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2X19saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19pdGVtIGhhcy1zdWJtZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXZfX2xpbmsiPlByb2R1Y3RzPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im5hdl9fc3VibWVudS1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/YT1zdGFrZSIgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1zdGFrZSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLXRpdGxlIGZsZXgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YWtpbmcgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay1kZXNjIj5HZXQgaGlnaGVyIEFQWTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPXJld2FyZHMiIGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtY29pbnMiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmstdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10aXRsZSI+UmV3YXJkczwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmstZGVzYyI+R2V0IDdCUklER0UgZm9yIGRhaWx5IGFjdGlvbnM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX2l0ZW0gaGFzLXN1Ym1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdl9fbGluayI+Q29tcGFueTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2X19zdWJtZW51LWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX3N1Ym1lbnUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iP2E9YWJvdXQiIGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtYnVzaW5lc3MiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmstdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10aXRsZSI+QWJvdXQ8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLWRlc2MiPldobyB3ZSBhcmU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnRydXN0cGlsb3QuY29tLyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtc3RhciI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLXRpdGxlIj5SZXZpZXdzPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay1kZXNjIj5QZW9wbGUgdHJ1c3QgdXM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPWVjb3N5c3RlbSIgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1ib2x0Ij48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLXRleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmstdGl0bGUiPkVjb3N5c3RlbTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmstZGVzYyI+TGVhcm4gYWJvdXQgTWF0cml4IFRlY2hub2xvZ3k8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPW1hdHJpeCIgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1yb2NrZXQiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmstdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10aXRsZSI+TWF0cml4PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay1kZXNjIj5UZWNobm9sb2d5IGluIGFjdGlvbjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX3N1Ym1lbnUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iP2E9Y29tbXVuaXR5IiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLXRodW1icy11cCI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLXRpdGxlIj5Db21tdW5pdHk8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLWRlc2MiPkxpdmUgYWN0aXZpdHkgaW4gU29jaWFsIE1lZGlhPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX2l0ZW0gaGFzLXN1Ym1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdl9fbGluayI+TGVhcm48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdl9fc3VibWVudS1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPWZhcSIgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1xdWVzdGlvbiI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLXRpdGxlIj5GQVE8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLWRlc2MiPkFsbCB0aGUgYW5zd2VyczwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX3N1Ym1lbnUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rIiBocmVmPSI/YT1zdXBwb3J0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1ib29rIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLXRleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmstdGl0bGUiPkdldCBIZWxwPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay1kZXNjIj5PbmxpbmUgMjQvNzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX3N1Ym1lbnUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgIGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtaGVscCI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLXRpdGxlIj5Eb2N1bWVudGF0aW9uPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay1kZXNjIj5GdWxsIGRpc2Nsb3N1cmU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im5hdl9faXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iP2E9YmxvZyIgY2xhc3M9Im5hdl9fbGluayI+QmxvZzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9uYXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LW1vYmlsZSBoaWRkZW4iIGRhdGEtbmF2LXRhcmdldD0icGFuZWwiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtbW9iaWxlX19oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LW1vYmlsZV9fY2xvc2UiIGRhdGEtYWN0aW9uPSJjbGljay0mZ3Q7bmF2I2Nsb3NlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtY2xvc2UiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXYtbW9iaWxlX19sb2dvLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2xvZ28tZnVsbC5zdmciIGFsdD0iN0JSSURHRSIgd2lkdGg9IjE3MiIgaGVpZ2h0PSI0MCIgbG9hZGluZz0iZWFnZXIiIGNsYXNzPSJuYXYtbW9iaWxlX19sb2dvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1tb2JpbGVfX2JvZHktd3JhcHBlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtbW9iaWxlX19ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmF2IGNsYXNzPSJuYXYtbW9iaWxlX19tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWl0ZW0gaGFzLXN1Ym1lbnUiIGRhdGEtY29udHJvbGxlcj0iYWNjb3JkaW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWxpbmsiIGRhdGEtYWN0aW9uPSJjbGljay0mZ3Q7YWNjb3JkaW9uI3RvZ2dsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1tb2JpbGVfX21lbnUtbGluay1sYWJlbCI+UHJvZHVjdHM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1hcnJvdy1kb3duIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudSIgZGF0YS1hY2NvcmRpb24tdGFyZ2V0PSJib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPXN0YWtlIiBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudS1saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rha2luZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPXJld2FyZHMiIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWxpbmsiPlJld2FyZHM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2LW1vYmlsZV9fbWVudS1pdGVtIGhhcy1zdWJtZW51IiBkYXRhLWNvbnRyb2xsZXI9ImFjY29yZGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LW1vYmlsZV9fbWVudS1saW5rIiBkYXRhLWFjdGlvbj0iY2xpY2stJmd0O2FjY29yZGlvbiN0b2dnbGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWxpbmstbGFiZWwiPkNvbXBhbnk8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1hcnJvdy1kb3duIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudSIgZGF0YS1hY2NvcmRpb24tdGFyZ2V0PSJib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPWFib3V0IiBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudS1saW5rIj5BYm91dDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im5hdi1tb2JpbGVfX3N1Ym1lbnUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cudHJ1c3RwaWxvdC5jb20vIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Im5hdi1tb2JpbGVfX3N1Ym1lbnUtbGluayI+UmV2aWV3czwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im5hdi1tb2JpbGVfX3N1Ym1lbnUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iP2E9ZWNvc3lzdGVtIiBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudS1saW5rIj5FY29zeXN0ZW08L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPW1hdHJpeCIgY2xhc3M9Im5hdi1tb2JpbGVfX3N1Ym1lbnUtbGluayI+TWF0cml4PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudS1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/YT1jb21tdW5pdHkiIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWxpbmsiPkNvbW11bml0eTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWl0ZW0gaGFzLXN1Ym1lbnUiIGRhdGEtY29udHJvbGxlcj0iYWNjb3JkaW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWxpbmsiIGRhdGEtYWN0aW9uPSJjbGljay0mZ3Q7YWNjb3JkaW9uI3RvZ2dsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1tb2JpbGVfX21lbnUtbGluay1sYWJlbCI+TGVhcm48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1hcnJvdy1kb3duIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudSIgZGF0YS1hY2NvcmRpb24tdGFyZ2V0PSJib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPWZhcSI+RkFRPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudS1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/YT1kb2N1bWVudGF0aW9uIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Im5hdi1tb2JpbGVfX3N1Ym1lbnUtbGluayI+RG9jdW1lbnRhdGlvbjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPWJsb2ciIGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWxpbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWxpbmstbGFiZWwiPkJsb2c8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmF2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtbW9iaWxlX19mb290ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1tb2JpbGVfX2FjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtbW9iaWxlX19oZWxwIGJ0biBidG4tLXByaW1hcnkgYnRuLS1tZCIgZGF0YS1hY3Rpb249ImNsaWNrLSZndDtuYXYjY2xvc2UiIG9uY2xpY2s9IndpbmRvdy5JbnRlcmNvbSAmJiB3aW5kb3cuSW50ZXJjb20oJ3Nob3cnKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG5fX2xhYmVsIj5HZXQgaGVscDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtaGVscCI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LW1vYmlsZV9fc29jaWFsIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZm9sbG93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9sbG93X19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vIiBjbGFzcz0iZm9sbG93X19saW5rIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IkZhY2Vib29rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1zb2MtZmFjZWJvb2siPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9sbG93X19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tLyIgY2xhc3M9ImZvbGxvd19fbGluayIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJUd2l0dGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1zb2MtdHdpdHRlciI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb2xsb3dfX2l0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdC5tZS8iIGNsYXNzPSJmb2xsb3dfX2xpbmsiIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0iVGVsZWdyYW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLXNvYy10ZWxlZ3JhbSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb2xsb3dfX2l0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlzY29yZC5nZy8iIGNsYXNzPSJmb2xsb3dfX2xpbmsiIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0iRGlzY29yZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtc29jLWRpc2NvcmQiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9sbG93X19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vIiBjbGFzcz0iZm9sbG93X19saW5rIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9Ik1lZGl1bSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtc29jLW1lZGl1bSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb2xsb3dfX2l0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tLyIgY2xhc3M9ImZvbGxvd19fbGluayIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJZb3V0dWJlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1zb2MteW91dHViZSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2LW1vYmlsZV9fZG9jcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2LW1vYmlsZV9fZG9jcy1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9kb2NzL1Rlcm1zX29mX1VzZS5wZGYiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0ibmF2LW1vYmlsZV9fZG9jcy1saW5rIj5UZXJtcyBvZiBVc2U8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2LW1vYmlsZV9fZG9jcy1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9kb2NzL1ByaXZhY3kucGRmIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Im5hdi1tb2JpbGVfX2RvY3MtbGluayI+UHJpdmFjeTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlcl9fYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiIGNsYXNzPSJoZWFkZXJfX2xhbmctY29udGFpbmVyIiBkYXRhLWNvbnRyb2xsZXI9ImRyb3Bkb3duIGxhbmciPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1faWQiIHZhbHVlPSIxNzg1MTIxNjYwNjQ3NiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90b2tlbiIgdmFsdWU9IjA5MjRhZDk1NGM5MDFlMzA5Yzg0N2M5YTdlNDQ4NDJlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iaGVhZGVyX19sYW5nIiBkYXRhLWRyb3Bkb3duLXRhcmdldD0idHJpZ2dlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLWdsb2JlIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXJfX2xhbmctZHJvcGRvd24gZHJvcGRvd24gaGlkZGVuIiBkYXRhLWRyb3Bkb3duLXRhcmdldD0iZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnVfX2xpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93bi1tZW51X19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImRyb3Bkb3duLW1lbnVfX2J1dHRvbiIgZGF0YS1sYW5nPSJlbiIgZGF0YS1hY3Rpb249Imxhbmcjc3dpdGNoIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9pbWcvbGFuZ3MvZW4ucG5nIiBhbHQ9IiIgbG9hZGluZz0ibGF6eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkcm9wZG93bi1tZW51X19idXR0b24tbGFiZWwiPkVuZ2xpc2g8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duX19hcnJvdyI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkxhbmdGb3JtW2xhbmddIiB2YWx1ZT0iZW4iIGRhdGEtbGFuZy10YXJnZXQ9InZhbHVlIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic291cmNlIiB2YWx1ZT0iLyI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il9jc3JmIiB2YWx1ZT0iNG96TWVrYW02dHZuQXF6R1dnT3J4aTRHRllsUWJsR3hGTVkyNUY2V0F6dVY2dm9wTWM2QzdwMXEyWXNPTk9QeFZHbFMtanBkT2RSQ2lGWGRDUGszZWc9PSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPWxvZ2luIiBjbGFzcz0iaGVhZGVyX19sb2dpbiI+TG9naW48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPXNpZ251cCIgY2xhc3M9ImhlYWRlcl9fY29ubmVjdCBidG4gYnRuLS1zZWNvbmRhcnkgYnRuLS1tZCB3LVsyMDBweF0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuX19sYWJlbCI+Q29ubmVjdDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtYm9sdCI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/YT1zaWdudXAiIGNsYXNzPSJoZWFkZXJfX2Nvbm5lY3QtaWNvbiBidG4gYnRuLS1zZWNvbmRhcnkgYnRuLS1yYWlzZWQgYnRuLS1zbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy11c2VyIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9oZWFkZXI+CiAgICAgICAgCjxtYWluIGNsYXNzPSJtYWluIj4KCiAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiBzZWN0aW9uLS1tZCByZWxhdGl2ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBzbTpncmlkLWNvbHMtWzlmcixfOGZyXSBnYXAtNDAiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic206bWF4LXctWzY4MHB4XSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXBwZXJjYXNlIHRyYWNraW5nLVs1cHhdIG1iLTE2IHNtOm1heC13LVszNGNoXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDdCcmlkZ2UgQ2FwaXRhbCBsaXF1aWRpdHkgcHJvdmlkZXI8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3M9InRleHQtcHJpbWFyeS1oMSBmb250LWJsYWNrIG1iLTI0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSBTdXByZW1lIDxicj4gPG1hcms+Q3J5cHRvIFBvd2VyPC9tYXJrPiA8L2gxPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtZGFyayBtYi00MCBzbTptYXgtdy1bNTAwcHhdIj4KICAgICAgICAgICAgICAgICAgICAgICAgUHJvdmlkZSBEZUZpIGxpcXVpZGl0eSB0byBlYXJuIHVwIHRvIDEyJSBBUFkuIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGZsZXgtd3JhcCBnYXAtMjQgbWItNjQiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/YT1zaWdudXAiIGNsYXNzPSJidG4gYnRuLS1wcmltYXJ5IGJ0bi0tbWQgbWluLXctWzI4MHB4XSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG5fX2xhYmVsIj5VbmxvY2sgRGVwb3NpdCBQb3dlcnM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLWtleSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXByaW1hcnktaDYgdGV4dC1kYXJrIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdldCB1cCB0byA8YnI+IDxtYXJrPjEyJSBBUFk8L21hcms+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnRydXN0cGlsb3QuY29tLyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0cnVzdHBpbG90LWV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL3RydXN0cGlsb3QvdHJ1c3RwaWxvdC1zdGFycy5zdmciIGFsdD0iIiB3aWR0aD0iMTcwIiBoZWlnaHQ9IjMyIiBsb2FkaW5nPSJsYXp5IiBjbGFzcz0idHJ1c3RwaWxvdC1leHRfX3N0YXJzIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRydXN0cGlsb3QtZXh0X190ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRydXN0cGlsb3QtZXh0X19yZXZpZXdzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWFyayBjbGFzcz0idGV4dC1zZWNvbmRhcnkiPjEgMDAwKzwvbWFyaz4gcmV2aWV3cyBvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9pbWcvdHJ1c3RwaWxvdC90cnVzdHBpbG90LWJsYWNrLnN2ZyIgYWx0PSIiIHdpZHRoPSIxMDYiIGhlaWdodD0iMjQiIGxvYWRpbmc9ImxhenkiIGNsYXNzPSJ0cnVzdHBpbG90LWV4dF9fbG9nbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9pbWcvbGlxdWlkaXR5LWFzc2V0cy5wbmciIGxvYWRpbmc9ImVhZ2VyIiBhbHQ9IkxpcXVpZGl0eSBhc3NldHMiIHdpZHRoPSI1MjAiIGhlaWdodD0iNDkyIiBjbGFzcz0idW50aWwtc206aGlkZGVuIG14LWF1dG8gbXQtMjQiPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXQtNDAiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJtYXNzLW1lZGlhIj4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im1hc3MtbWVkaWFfX2l0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5tYXJrZXR3YXRjaC5jb20vcHJlc3MtcmVsZWFzZS8iIGNsYXNzPSJtYXNzLW1lZGlhX19saW5rIiB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2ltZy9tYXNzLW1lZGlhL21hcmtldHdhdGNoLnBuZyIgYWx0PSJNYXJrZXQgV2F0Y2giIHdpZHRoPSIxNjYiIGhlaWdodD0iMjQiPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im1hc3MtbWVkaWFfX2l0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2FwbmV3cy5jb20vcHJlc3MtcmVsZWFzZS9tYXJrZXRlcnNtZWRpYS90ZWNobm9sb2d5LTAwYjI2N2Y5Nzc4OGU1MTQ1OTIwNzJhODY0MDRhYTE2IiBjbGFzcz0ibWFzcy1tZWRpYV9fbGluayIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9pbWcvbWFzcy1tZWRpYS9hc3NvY2lhdGVkLXByZXNzLnBuZyIgYWx0PSJBc3NvY2lhdGVkIFByZXNzIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjI2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJtYXNzLW1lZGlhX19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9tYXJrZXRzLmJ1c2luZXNzaW5zaWRlci5jb20vIiBjbGFzcz0ibWFzcy1tZWRpYV9fbGluayIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9pbWcvbWFzcy1tZWRpYS9idXNpbmVzcy1pbnNpZGVyLnBuZyIgYWx0PSJCdXNpbmVzcyBJbnNpZGVyIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjQwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJtYXNzLW1lZGlhX19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZGlnaXRhbGpvdXJuYWwuY29tLyIgY2xhc3M9Im1hc3MtbWVkaWFfX2xpbmsiIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL21hc3MtbWVkaWEvZGlnaXRhbC1qb3VybmFsLnBuZyIgYWx0PSJEaWdpdGFsIEpvdXJuYWwiIHdpZHRoPSIxMDAiIGhlaWdodD0iNDQiPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJsdXIgYmx1ci0tYmx1ZSIgc3R5bGU9InRvcDogLTI5MHB4OyBsZWZ0OiAyNDBweDsgd2lkdGg6IDk0MHB4OyBoZWlnaHQ6IDk0MHB4OyI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYmx1ciBibHVyLS1ncmVlbiIgc3R5bGU9InRvcDogMTAwcHg7IGxlZnQ6IDA7IHdpZHRoOiA4MDBweDsgaGVpZ2h0OiA4MDBweDsiPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJsdXIgYmx1ci0tYmx1ZSIgc3R5bGU9InRvcDogNDIwcHg7IGxlZnQ6IC0yOTBweDsgd2lkdGg6IDk0MHB4OyBoZWlnaHQ6IDk0MHB4OyBvcGFjaXR5OiAwLjI7Ij48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJibHVyIGJsdXItLWdyZWVuIiBzdHlsZT0idG9wOiAxNTBweDsgbGVmdDogMzQ0cHg7IHdpZHRoOiAxMDUwcHg7IGhlaWdodDogMTA1MHB4OyBvcGFjaXR5OiAwLjI7Ij4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJibHVyIGJsdXItLWJsdWUiIHN0eWxlPSJ0b3A6IDIwMHB4OyByaWdodDogLTIwcHg7IHdpZHRoOiAxMDUwcHg7IGhlaWdodDogMTA1MHB4OyBvcGFjaXR5OiAwLjQ7Ij48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJibHVyIGJsdXItLWdyZWVuIiBzdHlsZT0idG9wOiAtMTUwcHg7IHJpZ2h0OiAtMzAwcHg7IHdpZHRoOiAxMDUwcHg7IGhlaWdodDogMTA1MHB4OyBvcGFjaXR5OiAwLjU7Ij4KICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KCgogICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24gc2VjdGlvbi0teHMiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIG1iLTQ4Ij4KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRleHQtcHJpbWFyeS1oMSBmb250LWJsYWNrIG1iLTE2Ij5TaG9ydC1UZXJtICYgTG9uZy1UZXJtPC9oMj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWRhcmsiPkNob29zZSB3aGljaCBwbGFuIHdvcmtzIGJlc3QgZm9yIHlvdTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMSB4czpncmlkLWNvbHMtMiBnYXAteC00MCBnYXAteS00OCBtYXgtdy1bODYwcHhdIG14LWF1dG8gbWItNDAiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9pbWcvY2FsZW5kYXItNjAtZGF5cy5wbmciIGFsdD0iMjQgaG91cnMiIGxvYWRpbmc9ImxhenkiIHdpZHRoPSIxODAiIGhlaWdodD0iMTkyIiBjbGFzcz0ibWItMjQgbXgtYXV0byI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtcHJpbWFyeS1oMiBmb250LWJsYWNrIHRleHQtcHJpbWFyeSBtYi04Ij4xMDQlIEFQWTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWJvZHktaDUgdGV4dC1kYXJrIj5VcCB0byAxMDQlIGRhaWx5PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2ltZy9jYWxlbmRhci0zNjUtZGF5cy5wbmciIGFsdD0iMzY1IGRheXMiIGxvYWRpbmc9ImxhenkiIHdpZHRoPSIxODAiIGhlaWdodD0iMTkyIiBjbGFzcz0ibWItMjQgbXgtYXV0byI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtcHJpbWFyeS1oMiBmb250LWJsYWNrIHRleHQtcHJpbWFyeSBtYi04Ij40LjUlIEFQWTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWJvZHktaDUgdGV4dC1kYXJrIj5VcCB0byA0LjUlIGRhaWx5PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2ltZy9jYWxlbmRhci0xMi1kYXlzLnBuZyIgYWx0PSIzNjUgZGF5cyIgbG9hZGluZz0ibGF6eSIgd2lkdGg9IjE4MCIgaGVpZ2h0PSIxOTIiIGNsYXNzPSJtYi0yNCBteC1hdXRvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1wcmltYXJ5LWgyIGZvbnQtYmxhY2sgdGV4dC1wcmltYXJ5IG1iLTgiPjEyJSBBUFk8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1ib2R5LWg1IHRleHQtZGFyayI+VXAgdG8gMTIlIGRhaWx5PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ib2R5LXRpbnkgdGV4dC1jZW50ZXIgbWItNDAiPgogICAgICAgICAgICAgICAgICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgbm8gZGFpbHkgcGF5b3V0cyBmb3IgTFAgcGxhbnMuIFlvdSBjYW4gY2xhaW0geW91ciBwcm9maXRzIG9uIHRoZSBkZXBvc2l0IG1hdHVyaXR5IGRhdGUuIDwvcD4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgbXQtNDAgZ2FwLXgtNDAgZ2FwLXktMjQiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPXNpZ251cCIgY2xhc3M9ImJ0biBidG4tLXByaW1hcnkgYnRuLS1tZCBtaW4tdy1bMjQwcHhdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuX19sYWJlbCI+Q2hvb3NlIGEgUGxhbjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLWxpcXVpZGl0eSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/YT1mYXEiIGNsYXNzPSJsaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1ib29rIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IExQIEZBUSA8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CgoKICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIHNlY3Rpb24tLXhzIHNlY3Rpb24tLWRhcmsgeHM6YmctW3VybCgnL2ltZy9iZy1saXF1aWRpdHkuanBnJyldIGJnLVsjMDAwMTAzXSBiZy1jb3ZlciBiZy1uby1yZXBlYXQgYmctY2VudGVyICFwdC0wIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMSBzbTpncmlkLWNvbHMtMiBnYXAteC02NCBnYXAteS0yNCBpdGVtcy1jZW50ZXIgbWF4LXctWzExNDBweF0gbXgtYXV0byBtYi00OCI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGV4dC1wcmltYXJ5LWgxIGZvbnQtYmxhY2sgbWItOCI+UG93ZXIgVXAhPC9oMj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXByaW1hcnktaDMiPgogICAgICAgICAgICAgICAgICAgICAgICA8bWFyayBjbGFzcz0idGV4dC1zZWNvbmRhcnkiPllvdXIgQVBZIHdpdGggN2JyaWRnZSBDYXBpdGFsPC9tYXJrPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFuc2xhdGUteS04Ij4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibWItMjQiPgogICAgICAgICAgICAgICAgICAgICAgICA3YnJpZGdlIENhcGl0YWwgaXMgcGVnZ2VkIHdpdGggdGhlIFVTIGRvbGxhciBpbiAxOjEgcmF0aW8uIEJhY2sgaW52ZXN0ZWQgYW1vdW50IHdpdGggN2JyaWRnZSBDYXBpdGFsIHRvIGJvb3N0IHlvdXIgQVBZLiA8L3A+CiAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgIEJhY2sgMTAwJSBvZiB0aGUgTFAgZGVwb3NpdCB3aXRoIDdicmlkZ2UgQ2FwaXRhbCB0byBnZXQgYWRkaXRpb25hbCBwcm9maXQgb2YgKzElIEFQWSogPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ib2R5LXRpbnkgdGV4dC1ncmF5LWRhcmsgdy1maXQgbXgtYXV0byI+CiAgICAgICAgICAgICAgICAqIExQIHJld2FyZHMgYXJlIHBhaWQgaW4gYm90aCBpbnZlc3RlZCBjcnlwdG9jdXJyZW5jeSBhbmQgN2JyaWRnZSBDYXBpdGFsIGF0IHRoZSBzYW1lIEFQWSByYXRlLiA8YnI+CiAgICAgICAgICAgICAgICAqKllvdSBtdXN0IGJhY2sgbm8gbGVzcyB0aGFuIDElIG9mIHRoZSBMUCBkZXBvc2l0IGFtb3VudCB0byBnZXQgdGhlIEFQWSBib29zdC4gPC9wPgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKCjxkaXYgY2xhc3M9ImFib3V0LXZpZGVvIHRleHQtY2VudGVyIj4KICAgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgaGVpZ2h0OiAwOyBvdmVyZmxvdzogaGlkZGVuOyI+CiAgICAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvWW1nZS1xaDNtNEUiIHRpdGxlPSJBIFlvdVR1YmUgdmlkZW8iIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW49IiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyI+PC9pZnJhbWU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIAoKCiAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiBzZWN0aW9uLS1tZCByZWxhdGl2ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBzbTpncmlkLWNvbHMtMiBnYXAteC02NCBnYXAteS0yNCBpdGVtcy1jZW50ZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGc6cGwtODAgcmVsYXRpdmUiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL25lb3MtcHJlc2FsZS5wbmciIGFsdD0iN2JyaWRnZSBDYXBpdGFsIFByZXNhbGUiIHdpZHRoPSI0ODQiIGhlaWdodD0iNDgwIiBsb2FkaW5nPSJsYXp5IiBjbGFzcz0idW50aWwtc206bXgtYXV0byB1bnRpbC1zbTptYXgtdy1bNzAlXSI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIj4KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRleHQtcHJpbWFyeS1oMSBmb250LWJsYWNrIG1iLTI0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgN2JyaWRnZSBDYXBpdGFsIFRva2VuIDxtYXJrIGNsYXNzPSJ0ZXh0LXByaW1hcnkiPlByZXNhbGU8L21hcms+PC9oMj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXgtdy1bNjAwcHhdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im1iLTMyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2hhbmdlIGFueSBjcnlwdG8gZm9yIDdicmlkZ2UgQ2FwaXRhbCB3aXRoIHplcm8gZXhjaGFuZ2UgZmVlLiA8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA3YnJpZGdlIENhcGl0YWwgY3VycmVudCBwcmljZTogJDEgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibWItMzIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnV5IDdicmlkZ2UgQ2FwaXRhbCBiZWZvcmUgaXQgaXMgbGlzdGVkIG9uIGV4Y2hhbmdlcy4gPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPWxvZ2luIiBjbGFzcz0iYnRuIGJ0bi0tcHJpbWFyeSBidG4tLW1kIG1pbi13LVsyNjBweF0iPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG5fX2xhYmVsIj5CdXkgN2JyaWRnZSBDYXBpdGFsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtd2FsbGV0Ij48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJsdXIgYmx1ci0tYmx1ZSIgc3R5bGU9InRvcDogLTE0MHB4OyByaWdodDogLTMyMHB4OyB3aWR0aDogMTA1MHB4OyBoZWlnaHQ6IDEwNTBweDsgb3BhY2l0eTogMC4yOyI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYmx1ciBibHVyLS1ncmVlbiIgc3R5bGU9InRvcDogNzBweDsgbGVmdDogLTE2MHB4OyB3aWR0aDogODAwcHg7IGhlaWdodDogODAwcHg7IG9wYWNpdHk6IDAuMzsiPgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKCiAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiBzZWN0aW9uLS1sZyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVsYXRpdmUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgbWItNDgiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtZGFyayBtYi0xNiI+WW91ciBKb3VybmV5IHRvIEZpbmFuY2lhbCBGcmVlZG9tPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0ZXh0LXByaW1hcnktaDEgZm9udC1ibGFjayI+QmVnaW5zIDxtYXJrPkhlcmU8L21hcms+PC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBzbTpncmlkLWNvbHMtMyBnYXAtMjQgbWQ6Z2FwLTQwIG1heC13LVsxMTAwcHhdIG14LWF1dG8iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQgYmctd2hpdGUvNTAiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX190b3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faWNvbiBpY29uLXJhaXNlZCBpY29uLXJhaXNlZC0tcHJpbWFyeSBpY29uLXJhaXNlZC0tbWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy11c2VyIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdGl0bGUiPkNyZWF0ZSBBY2NvdW50PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2Rlc2MiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lnbiB1cCBhbmQgZ28gdG8geW91ciBEYXNoYm9hcmQgRGVwb3NpdCBzZWN0aW9uLiA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkIGJnLXdoaXRlLzUwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2ljb24gaWNvbi1yYWlzZWQgaWNvbi1yYWlzZWQtLXByaW1hcnkgaWNvbi1yYWlzZWQtLW1kIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtY29pbnMiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX190aXRsZSI+Q2hvb3NlIENyeXB0byBBc3NldDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19kZXNjIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBjb2luIHRvIGludmVzdCBpbiBhbmQgbWFrZSBhIGRlcG9zaXQgb2YgYW55IGFtb3VudCBhbmQgdGltZWZyYW1lLiA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkIGJnLXdoaXRlLzUwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2ljb24gaWNvbi1yYWlzZWQgaWNvbi1yYWlzZWQtLXByaW1hcnkgaWNvbi1yYWlzZWQtLW1kIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtY3VwIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdGl0bGUiPkVhcm4gUmV3YXJkcyE8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fZGVzYyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZWVwIGNyeXB0byBpbiB5b3VyIHdhbGxldCBhbmQgY2xhaW0gcmV3YXJkcyBldmVyeSAyNCBob3Vycy4gPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZmxleC13cmFwIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBtdC00MCBnYXAteC00MCBnYXAteS0yNCI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImJ0biBidG4tLXByaW1hcnkgYnRuLS1tZCBtaW4tdy1bMjQwcHhdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuX19sYWJlbCI+RGVwb3NpdCBOb3c8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1zdGFrZSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/YT1mYXEiIGNsYXNzPSJsaW5rIiB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtYm9vayI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiBEZXBvc2l0IEZBUSA8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsdXIgYmx1ci0tYmx1ZSIgc3R5bGU9InRvcDogLTI4MHB4OyBsZWZ0OiAtNzcwcHg7IG9wYWNpdHk6IDAuMjsiPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibHVyIGJsdXItLWdyZWVuIiBzdHlsZT0idG9wOiAtMTMwcHg7IGxlZnQ6IC0yNzBweDsgd2lkdGg6IDkwMHB4OyBoZWlnaHQ6IDkwMHB4OyI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibHVyIGJsdXItLWJsdWUiIHN0eWxlPSJ0b3A6IC0yMzBweDsgbGVmdDogNTMwcHg7IG9wYWNpdHk6IDAuMjsiPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibHVyIGJsdXItLWdyZWVuIiBzdHlsZT0idG9wOiAtNDIwcHg7IGxlZnQ6IDExMDBweDsgd2lkdGg6IDkwMHB4OyBoZWlnaHQ6IDkwMHB4OyI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgCiAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiBzZWN0aW9uLS1tZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIHRleHQtY2VudGVyIHRleHQtZGFyayI+CiAgICAgICAgICAgIDxoMiBjbGFzcz0idGV4dC1wcmltYXJ5LWgxIGZvbnQtYmxhY2sgbWItNDAiPgogICAgICAgICAgICAgICAgQ29tcGFueSA8bWFyaz5TdGF0aXN0aWNzPC9tYXJrPgogICAgICAgICAgICA8L2gyPgogICAgICAgICAgICA8cCBjbGFzcz0ibWItNjQiPk1ha2luZyB2aXNpb24gY29tZSB0cnVlIGlzIHRvdWdoIHdpdGhvdXQgdGhlIHdvcmxk4oCZcyBicmlnaHRlc3QgbWluZHMuIDxicj4KICAgICAgICAgICAgICAgIFRoZXNlIHBlb3BsZQogICAgICAgICAgICAgICAgc2hhcGUgdGhlIGZ1dHVyZS48L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubGluZS1ncmlkIGdyaWQtY29scy0xIHNtOmdyaWQtY29scy1bcmVwZWF0KDIsX21pbi1jb250ZW50KV0gZ2FwLXgtWzE4MHB4XSBnYXAteS02NCBzbTpnYXAteS1bODBweF0gc206dGV4dC1sZWZ0Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVudGlsLXNtOmZsZXgtY29sIGZsZXggZ2FwLXgtMjQgZ2FwLXktNCBpdGVtcy1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtcHJpbWFyeS1oMSB0ZXh0LXNlY29uZGFyeSI+PG1hcms+NTY4NjwvbWFyaz48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8cD5EYXlzIE9ubGluZTwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idW50aWwtc206ZmxleC1jb2wgZmxleCBnYXAteC0yNCBnYXAteS00IGl0ZW1zLWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1wcmltYXJ5LWgxIj48bWFyaz4zMjA8L21hcms+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPHA+VXNlcnM8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVudGlsLXNtOmZsZXgtY29sIGZsZXggZ2FwLXgtMjQgZ2FwLXktNCBpdGVtcy1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtcHJpbWFyeS1oMSB0ZXh0LXNlY29uZGFyeSI+PG1hcms+JDQyNzI2NC44MjwvbWFyaz48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8cD5JbnZlc3RlZDwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idW50aWwtc206ZmxleC1jb2wgZmxleCBnYXAteC0yNCBnYXAteS00IGl0ZW1zLWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1wcmltYXJ5LWgxIHRleHQtc2Vjb25kYXJ5Ij48bWFyaz4kNTA1MTAuNzc8L21hcms+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPHA+UGF5b3V0PC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgCiAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiBzZWN0aW9uLS1sZyI+CiAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0ZXh0LXByaW1hcnktaDEgZm9udC1ibGFjayBtYi0yNCI+CiAgICAgICAgICAgICAgICAgICAgIDxtYXJrPkdvIEJleW9uZDwvbWFyaz4gWW91ciBMaW1pdHMKICAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1heC13LVs4NDBweF0gbXgtYXV0byBtYi01NiB0ZXh0LWRhcmsiPgogICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibWItMjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgV2hlbiB5b3UgZWFybiA3YnJpZGdlIENhcGl0YWwsIERlcG9zaXQgeW91ciBjcnlwdG8gb3IgaW52aXRlIGZvbGxvd2VycywgeW91IGVhcm4gQ29tbWlzc2lvbnMgYW5kIGFkdmFuY2UgaW4gbGV2ZWwuIDwvcD4KICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgaGlnaGVyIHlvdXIgbGV2ZWwgaXMsIHRoZSBtb3JlIGJlbmVmaXRzIHlvdSBnZXQuIDxicj4gSGVyZeKAmXMgaG93IFJld2FyZCBpcyBjYWxjdWxhdGVkOiA8L3A+CiAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAteC0yNCBnYXAteS00OCB1bnRpbC1zbTpmbGV4LWNvbCB1bnRpbC1zbTppdGVtcy1jZW50ZXIgc206anVzdGlmeS1iZXR3ZWVuIG1heC13LVs5ODBweF0gbXgtYXV0byBtYi00OCI+CiAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctWzIxMHB4XSI+CiAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2ltZy9sZXZlbHMtc3Rhci0xLnBuZyIgYWx0PSIiIHdpZHRoPSI5OSIgaGVpZ2h0PSI5NSIgY2xhc3M9Im14LWF1dG8gbXQtOCBtYi1bMTBweF0iPgogICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1wcmltYXJ5LWgyIHRleHQtcHJpbWFyeSBmb250LWJsYWNrIG1iLTgiPjEwJTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1kYXJrIHRleHQtYm9keS1oNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yIDEtMjAgUmVmZXJyYWxzIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy1bMjEwcHhdIj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2xldmVscy1zdGFyLTIucG5nIiBhbHQ9IiIgd2lkdGg9IjE0MiIgaGVpZ2h0PSIxMTMiIGNsYXNzPSJteC1hdXRvIj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtcHJpbWFyeS1oMiB0ZXh0LXByaW1hcnkgZm9udC1ibGFjayBtYi04Ij4yMCU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtZGFyayB0ZXh0LWJvZHktaDUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciAyMS0xMDAgUmVmZXJyYWxzIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy1bMjEwcHhdIj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2xldmVscy1zdGFyLTMucG5nIiBhbHQ9IiIgd2lkdGg9IjE2OSIgaGVpZ2h0PSIxMTMiIGNsYXNzPSJteC1hdXRvIj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtcHJpbWFyeS1oMiB0ZXh0LXByaW1hcnkgZm9udC1ibGFjayBtYi04Ij41MCU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtZGFyayB0ZXh0LWJvZHktaDUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciAxMDArIFJlZmVycmFscyA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1ib2R5LXRpbnkgdGV4dC1sZWZ0IG1heC13LVs0MDBweF0gbXgtYXV0byI+CiAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgKkRlcG9zaXRkIDdicmlkZ2UgQ2FwaXRhbCBhcmUgbm90IGFwcGxpY2FibGUuIDwvcD4KICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAqKjEwMCA3YnJpZGdlIENhcGl0YWwgd2VsY29tZSBnaWZ0IGlzIG5vdCBhcHBsaWNhYmxlLiA8L3A+CiAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgKioqQSBmb2xsb3dlciBpcyBjb25zaWRlcmVkIGFjdGl2ZSBpZiB0aGV5IGhhdmUgJDEwMCBpbiB0aGVpciBiYWxhbmNlIGZvciB0aGUgd2FsbGV0IGJhbGFuY2UgcHJvZ3JhbSwgb3IgYW4gYWN0aXZlIGRlcG9zaXQgZm9yIHRoZSBqb2ludCBEZXBvc2l0IHByb2dyYW0uIDwvcD4KICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L2Rpdj4KICAgICAgICAgPGRpdiBjbGFzcz0iYmx1ciBibHVyLS12aXAiIHN0eWxlPSJ0b3A6IDE4MHB4OyBsZWZ0OiAtMzMwcHg7IHdpZHRoOiAxMDUwcHg7IGhlaWdodDogMTA1MHB4OyBvcGFjaXR5OiAwLjI7Ij4KICAgICAgICAgPC9kaXY+CiAgICAgICAgIDxkaXYgY2xhc3M9ImJsdXIgYmx1ci0tdmlwIiBzdHlsZT0idG9wOiA5MHB4OyByaWdodDogLTE4MHB4OyB3aWR0aDogNzgwcHg7IGhlaWdodDogNzgwcHg7IG9wYWNpdHk6IDAuMjsiPjwvZGl2PgogICAgIDwvc2VjdGlvbj4KPC9tYWluPgoKCiAgICAgICAgPGZvb3RlciBjbGFzcz0iZm9vdGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl9faW5uZXIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJfX2xvZ28tbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2xvZ28tZnVsbC5zdmciIGFsdD0iTmVvcyIgbG9hZGluZz0ibGF6eSIgd2lkdGg9IjI0MCIgaGVpZ2h0PSI1NiIgY2xhc3M9ImZvb3Rlcl9fbG9nbyI+CiAgICAgICAgICAgICAgICAgICAgPC9hPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJfX21lbnVzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLW1lbnVfX2NhdGVnb3J5Ij5Qcm9kdWN0czwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJmb290ZXItbWVudV9fbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXItbWVudV9faXRlbSAgIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1tZW51X19saW5rIiBocmVmPSI/YT1zdGFrZSI+U3Rha2luZzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyLW1lbnVfX2l0ZW0gICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJmb290ZXItbWVudV9fbGluayIgaHJlZj0iP2E9cmV3YXJkcyI+UmV3YXJkczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1tZW51X19jYXRlZ29yeSI+Q29tcGFueTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJmb290ZXItbWVudV9fbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXItbWVudV9faXRlbSAgIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1tZW51X19saW5rIiBocmVmPSI/YT1hYm91dCI+QWJvdXQ8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlci1tZW51X19pdGVtICAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZm9vdGVyLW1lbnVfX2xpbmsiIGhyZWY9Ij9hPWVjb3N5c3RlbSI+RWNvc3lzdGVtPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXItbWVudV9faXRlbSAgIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1tZW51X19saW5rIiBocmVmPSI/YT1tYXRyaXgiPk1hdHJpeCBUZWNoPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXItbWVudV9faXRlbSAgIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1tZW51X19saW5rIiBocmVmPSI/YT1jb21tdW5pdHkiPkNvbW11bml0eTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyLW1lbnVfX2l0ZW0gICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJmb290ZXItbWVudV9fbGluayIgaHJlZj0iaHR0cHM6Ly93d3cudHJ1c3RwaWxvdC5jb20vIiB0YXJnZXQ9Il9ibGFuayI+UmV2aWV3czwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1tZW51X19jYXRlZ29yeSI+TGVhcm48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZm9vdGVyLW1lbnVfX2xpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyLW1lbnVfX2l0ZW0gICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJmb290ZXItbWVudV9fbGluayIgaHJlZj0iP2E9YmxvZyI+QmxvZzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyLW1lbnVfX2l0ZW0gICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJmb290ZXItbWVudV9fbGluayIgaHJlZj0iP2E9ZG9jdW1lbnRhdGlvbiI+RG9jdW1lbnRhdGlvbjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyLW1lbnVfX2l0ZW0gICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJmb290ZXItbWVudV9fbGluayIgaHJlZj0iP2E9ZmFxIj5GQVE8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlci1tZW51X19pdGVtICAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZm9vdGVyLW1lbnVfX2xpbmsiIGhyZWY9Ij9hPXN1cHBvcnQiPkdldCBIZWxwPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLW1lbnVfX2NhdGVnb3J5Ij5MZWdhbDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJmb290ZXItbWVudV9fbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXItbWVudV9faXRlbSAgIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1tZW51X19saW5rIiBocmVmPSIvZG9jcy9UZXJtc19vZl9Vc2UucGRmIiB0YXJnZXQ9Il9ibGFuayI+VGVybXMgb2YgVXNlPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXItbWVudV9faXRlbSAgIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1tZW51X19saW5rIiBocmVmPSIvZG9jcy9Qcml2YWN5LnBkZiIgdGFyZ2V0PSJfYmxhbmsiPlByaXZhY3kgUG9saWN5PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXItbWVudV9faXRlbSAgIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1tZW51X19saW5rIiBocmVmPSJodHRwczovL29wZW5jb3Jwb3JhdGVzLmNvbS9jb21wYW5pZXMvaGsvMDgwMDQzMCIgdGFyZ2V0PSJfYmxhbmsiPkxlZ2FsIEluZm9ybWF0aW9uPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyX19taXNjIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyX19mb2xsb3ciPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZm9sbG93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvbGxvd19faXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS8iIGNsYXNzPSJmb2xsb3dfX2xpbmsiIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0iRmFjZWJvb2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtc29jLWZhY2Vib29rIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvbGxvd19faXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vIiBjbGFzcz0iZm9sbG93X19saW5rIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IlR3aXR0ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtc29jLXR3aXR0ZXIiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9sbG93X19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly90Lm1lLyIgY2xhc3M9ImZvbGxvd19fbGluayIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJUZWxlZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1zb2MtdGVsZWdyYW0iPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9sbG93X19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9kaXNjb3JkLmdnLyIgY2xhc3M9ImZvbGxvd19fbGluayIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJEaXNjb3JkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLXNvYy1kaXNjb3JkIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvbGxvd19faXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS8iIGNsYXNzPSJmb2xsb3dfX2xpbmsiIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0iTWVkaXVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLXNvYy1tZWRpdW0iPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9sbG93X19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vIiBjbGFzcz0iZm9sbG93X19saW5rIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IllvdXR1YmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtc29jLXlvdXR1YmUiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJfX2FwcHMgYXBwcyBhcHBzLS1naG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBzX19saW5rIiB0aXRsZT0iQXBwIFN0b3JlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2ltZy9hcHBzL2JhZGdlLWFwcC1zdG9yZS5zdmciIGFsdD0iQXBwIFN0b3JlIiBsb2FkaW5nPSJsYXp5IiBjbGFzcz0iYXBwc19fYmFkZ2UiIHdpZHRoPSIxMjgiIGhlaWdodD0iMzgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBzX19saW5rIiB0aXRsZT0iR29vZ2xlIFBsYXkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2FwcHMvYmFkZ2UtZ29vZ2xlLXBsYXkuc3ZnIiBhbHQ9Ikdvb2dsZSBQbGF5IiBsb2FkaW5nPSJsYXp5IiBjbGFzcz0iYXBwc19fYmFkZ2UiIHdpZHRoPSIxMjgiIGhlaWdodD0iMzgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyX19ib3R0b20iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyX190cnVzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cudHJ1c3RwaWxvdC5jb20vIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImZvb3Rlcl9fdHJ1c3RwaWxvdCB0cnVzdHBpbG90LWNvbXBhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2ltZy90cnVzdHBpbG90L3RydXN0cGlsb3Qtd2hpdGUuc3ZnIiBhbHQ9IlRydXN0cGlsb3QiIHdpZHRoPSIxMjciIGhlaWdodD0iMjkiIGxvYWRpbmc9ImxhenkiIGNsYXNzPSJ0cnVzdHBpbG90LWNvbXBhY3RfX2xvZ28iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2ltZy90cnVzdHBpbG90L3RydXN0cGlsb3Qtc3RhcnMuc3ZnIiBhbHQ9IlRydXN0cGlsb3QgcmF0aW5nIiB3aWR0aD0iMTI3IiBoZWlnaHQ9IjI0IiBsb2FkaW5nPSJsYXp5IiBjbGFzcz0idHJ1c3RwaWxvdC1jb21wYWN0X19zdGFycyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl9fY29weSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZmluZC1hbmQtdXBkYXRlLmNvbXBhbnktaW5mb3JtYXRpb24uc2VydmljZS5nb3YudWsiIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2dvdnVrLnBuZyIgd2lkdGg9Ijc2IiBoZWlnaHQ9IjYxIiBhbHQ9IiIgbG9hZGluZz0ibGF6eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjdCcmlkZ2UgQ2FwaXRhbCA8YnI+IMKpIDIwMjU8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl9fZG9tYWlucyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyI+N0JyaWRnZSBDYXBpdGFsPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1hIGhyZWY9IiMiPm5lb3NpZnkuY288L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+bmVvc2lmeS5uZXQ8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+bmVvc2lmeS5vcmc8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+bmVvc2lmeS5pbmZvPC9hLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb290ZXI+CiAgICA8L2Rpdj4KICAgIDxzY3JpcHQgc3JjPSIvanMvdmVuZG9ycy5qcz92PTE2ODE0NjA1MjMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Ii9qcy9hcHAuanM/dj0xNjg0OTQ2ODI1Ij48L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdD4KICAgIHZhciB0ZWxlZ3JhbVVzZXJuYW1lID0gJ1NldmVuYnJpZGdlY2FwaXRhbFN1cHBvcnQnOyAvLyBSZXBsYWNlIHdpdGggeW91ciBUZWxlZ3JhbSB1c2VybmFtZQoKICAgIHZhciB3aWRnZXRDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIHdpZGdldENvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCd0ZWxlZ3JhbS13aWRnZXQtY29udGFpbmVyJyk7CiAgICB3aWRnZXRDb250YWluZXIuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnOwogICAgd2lkZ2V0Q29udGFpbmVyLnN0eWxlLmxlZnQgPSAnMjBweCc7CiAgICB3aWRnZXRDb250YWluZXIuc3R5bGUuYm90dG9tID0gJzIwcHgnOwogICAgd2lkZ2V0Q29udGFpbmVyLnN0eWxlLnpJbmRleCA9ICc5OTk5JzsKCiAgICB2YXIgdGVsZWdyYW1MaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogICAgdGVsZWdyYW1MaW5rLmhyZWYgPSAnaHR0cHM6Ly90Lm1lLycgKyB0ZWxlZ3JhbVVzZXJuYW1lOwoKICAgIHZhciB0ZWxlZ3JhbUxvZ28gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKICAgIHRlbGVncmFtTG9nby5zcmMgPSAnaW1nL3RlbGVncmFtbG9nby5wbmcnOwogICAgdGVsZWdyYW1Mb2dvLmFsdCA9ICdUZWxlZ3JhbSc7CiAgICB0ZWxlZ3JhbUxvZ28ud2lkdGggPSAnNzUnOwoKICAgIHRlbGVncmFtTGluay5hcHBlbmRDaGlsZCh0ZWxlZ3JhbUxvZ28pOwogICAgd2lkZ2V0Q29udGFpbmVyLmFwcGVuZENoaWxkKHRlbGVncmFtTGluayk7CiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHdpZGdldENvbnRhaW5lcik7CiAgPC9zY3JpcHQ+CiAgCiAgPHNjcmlwdCBzcmM9Ii8vY29kZS5qaXZvc2l0ZS5jb20vd2lkZ2V0L0VFWW5EcWxoZlYiIGFzeW5jPjwvc2NyaXB0PgogIAogCiAgPHN0eWxlPgoubWdtIHsKICAgIGJvcmRlci1yYWRpdXM6IDdweDsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHotaW5kZXg6IDkwOwogICAgYm90dG9tOiA4MHB4OwogICAgcmlnaHQ6IDIwcHg7CiAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgcGFkZGluZzogMTBweCAyN3B4OwogICAgYm94LXNoYWRvdzogMHB4IDVweCAxM3B4IDBweCByZ2JhKDAsIDAsIDAsIC4zKTsKICAgIGJvcmRlcjogNHB4IHNvbGlkOwogICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM3M2Q2MjMsICNGMEI4MzIpIDE7Cn0KLm1nbSBhIHsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGNvbG9yOiAjMDA4MGRiOwp9Ci5tZ20gYSwKLm1nbSBhOmFjdGl2ZSB7CiAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7CiAgICBjb2xvcjogIzAwODBkYjsKfQo8L3N0eWxlPgo8ZGl2IGNsYXNzPSJtZ20iIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CiAgICA8ZGl2IGNsYXNzPSJ0eHQiIHN0eWxlPSJjb2xvcjogYmxhY2s7Ij48L2Rpdj4KPC9kaXY+Cgo8c2NyaXB0IGRhdGEtY2Zhc3luYz0iZmFsc2UiIHNyYz0iIyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIHZhciBsaXN0Q291bnRyaWVzID0gWydVSycsICdVSycsICdHZXJtYW55JywgJ0ZyYW5jZScsICdJdGFseScsICdVSycsICdTb3V0aCBBZnJpY2EnLCAnVUsnLCAnQ2FuYWRhJywgJ0FyZ2VudGluYScsICdTYXVkaSBBcmFiaWEnLCAnTWV4aWNvJywgJ1VLJywgJ1VLJywgJ1VLJywgJ1VLJywgJ1N3ZWRlbicsICdTb3V0aCBBZnJpY2EnLCAnVUsnLCAnSXRhbHknLCAnVUsnLCAnVUsnLCAnVUsnLCAnR3JlZWNlJywgJ0N1YmEnLCAnVUsnLCAnUG9ydHVnYWwnLCAnQXVzdHJpYScsICdTb3V0aCBBZnJpY2EnLCAnUGFuYW1hJywgJ1VLJywgJ1VLJywgJ05ldGhlcmxhbmRzJywgJ1N3aXR6ZXJsYW5kJywgJ0JlbGdpdW0nLCAnSXNyYWVsJywgJ0N5cHJ1cyddOwogICAgdmFyIGxpc3RQbGFucyA9IFsnJDEwMDAnLCAnJDE1MDAnLCAnJDQwMCcsICckNDEwMCcsICckMTAwJywgJyQ1MDAwJywgJyQyLDMwMCcsICckNzAwJywgJyQxMDAnLCAnJDQ1MDAnLCAnJDksNTAwJywgJyQzNDAwJywgJyQyMDAwJywgJyQ0NjAwJywgJyQzLDcwMCcsICckNzUwMCcsICckODYyMycsICckMTYwMCddOwogICAgdmFyIHRyYW5zYXJyYXkgPSBbJ2p1c3QgPGI+aW52ZXN0ZWQ8L2I+JywgJ2hhcyA8Yj53aXRoZHJhd248L2I+JywgJ2lzIDxiPnRyYWRpbmcgd2l0aDwvYj4nXTsKCiAgICBpbnRlcnZhbCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg0MDAwMCAtIDgwMDAgKyAxKSArIDgwMDApOwogICAgdmFyIHJ1biA9IHNldEludGVydmFsKHJlcXVlc3QsIGludGVydmFsKTsKCiAgICBmdW5jdGlvbiByZXF1ZXN0KCkgewogICAgICAgIGNsZWFySW50ZXJ2YWwocnVuKTsKICAgICAgICBpbnRlcnZhbCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg0MDAwMCAtIDgwMDAgKyAxKSArIDgwMDApOwogICAgICAgIHZhciBjb3VudHJ5ID0gbGlzdENvdW50cmllc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBsaXN0Q291bnRyaWVzLmxlbmd0aCldOwogICAgICAgIHZhciB0cmFuc3R5cGUgPSB0cmFuc2FycmF5W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRyYW5zYXJyYXkubGVuZ3RoKV07CiAgICAgICAgdmFyIHBsYW4gPSBsaXN0UGxhbnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbGlzdFBsYW5zLmxlbmd0aCldOwogICAgICAgIHZhciBtc2cgPSAnU29tZW9uZSBmcm9tIDxiPicgKyBjb3VudHJ5ICsgJzwvYj4gJyArIHRyYW5zdHlwZSArICcgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKDApOyI+JyArIHBsYW4gKyAnPC9hPic7CiAgICAgICAgJCgiLm1nbSAudHh0IikuaHRtbChtc2cpOwogICAgICAgICQoIi5tZ20iKS5zdG9wKHRydWUpLmZhZGVJbigzMDApOwogICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAkKCIubWdtIikuc3RvcCh0cnVlKS5mYWRlT3V0KDMwMCk7CiAgICAgICAgfSwgMTAwMDApOwogICAgICAgIHJ1biA9IHNldEludGVydmFsKHJlcXVlc3QsIGludGVydmFsKTsKICAgIH0KPC9zY3JpcHQ+CiAKICAKCgo8L2JvZHk+Cgo8L2h0bWw+"}},"time_used":211,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":201,"receive":10,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/_/ytembeds/_/js/k=ytembeds.base.en_US._88TwyyHKHs.2021.O/ck=ytembeds.base.NxniuuZETZw.L.F4.O/am=AAAAgA/d=1/exm=base,root/excm=base,root/ed=1/br=1/rs=AGKMywHU6qHNitns5XqYEK-2yyUEaGOVkQ/m=r78Drb","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.youtube.com/embed/Ymge-qh3m4E","date":"2026-07-27T03:07:40.865Z","timestamp":1785121660865,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /s/_/ytembeds/_/js/k=ytembeds.base.en_US._88TwyyHKHs.2021.O/ck=ytembeds.base.NxniuuZETZw.L.F4.O/am=AAAAgA/d=1/exm=base,root/excm=base,root/ed=1/br=1/rs=AGKMywHU6qHNitns5XqYEK-2yyUEaGOVkQ/m=r78Drb HTTP/1.1\r\nHost: www.youtube.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://www.youtube.com/embed/Ymge-qh3m4E\r\nCookie: __Secure-YNID=20.YT=OD2AqDJJ5KCd2FQHST0PP6nm_PUnOmOKKW_5n2sU3Uto7bgqmGZVezTy0eT5Ch1tu0JzTUorYggNVLrq4iBbxMgjKYV2etvlvytuKk4TF9mvut1pghwMJgUbuW8p4XdgsmD-iSy6zHQlRAhB-JrbMaRe5h5KsRdBUFWbvsxsNeH89V6KOOjVPuXhJsEWmIkl-LvE1HpLYRq5EZFVQYIOUs-Z8R5-lI8AE0vJVBeC2LGwT5UqkcaMp_COMwshp2EEUXAKmfxi2oM6g3JxUmkhMTmLxZ6-dd5IROcdvW6cdIjiQ0GqdQz5GxuAM3oOINnB4Vt5On4L4U_Gl5n7h1P_CQ; YSC=IgHKWvjgj0E; __Secure-ROLLOUT_TOKEN=CNnI7u31yczMShCAqsGz8PGVAxiAqsGz8PGVAw%3D%3D; VISITOR_INFO1_LIVE=mzxiTe7ERp4; VISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgIw%3D%3D\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\naccept-ranges: bytes\r\ncontent-encoding: br\r\ncontent-security-policy: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/youtube-main-app-web-scs-key\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"youtube-main-app-web-scs-key\"\r\nreport-to: {\"group\":\"youtube-main-app-web-scs-key\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube-main-app-web-scs-key\"}]}\r\ntiming-allow-origin: *youtube.com\r\ncontent-length: 235736\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 13:04:24 GMT\r\nexpires: Sat, 24 Jul 2027 13:04:24 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Fri, 24 Jul 2026 05:09:16 GMT\r\ncontent-type: text/javascript; charset=UTF-8\r\nvary: Accept-Encoding\r\nage: 223396\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":942843,"size_decoded":236650,"mime_type":"text/javascript; charset=UTF-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (65533), with no line terminators","md5":"6f2dc696d3e2c5e8b0536728ac5a3aea","sha1":"8da6a7915f0b3ff607db13862fc417574d8d4999","sha256":"4036991c2199a96276eabd866d75631508768ad958639f2ef3d985061bddef47","sha512":"481bcb7979552bb2b61e9faaf2cc6abdeeb36c7e5e4e0a483ba1e93c62bea4c29bd94f525ec183b9a9bb4518f02e3e9748be080d771f801fa3cc7d4e73a09116","ssdeep":"12288:Rhrh0EencTyXGld16WDVcIm4zDSG8UvCeoBJjlXc7WPz6/wWXqkZTNvl6hkTeubf:R41jofemc+tD70LCSn4AqVnYU1YtsxDT","tlshash":"a2159ff0b25271b4d147b926fab7c003b57e4903e2081879f0a7ae9c55fca942e77729","first_seen":"2026-07-24T13:38:07.888738Z","last_seen":"2026-07-27T05:16:58.366925Z","times_seen":351,"resource_available":true,"data":"InVzZSBzdHJpY3QiO19GX2luc3RhbGxDc3MoIjpyb290ey0tdDdmNGYyYzZkNTQ4MzZjZTA6aW5pdGlhbDstLXQ3ZDhiOGU1ZWUyOTFhZWMwOmluaXRpYWw7LS10NDcyNmM2OGVmNmQ3YjA4Zjppbml0aWFsOy0tdGYwYTBkMTE1NDgyNzg0N2Y6aW5pdGlhbDstLXQzZTQxZDdiMTdiMTg3ZjY5OmluaXRpYWw7LS10ZmY2NTk5MzM4NGJiNDU2MDppbml0aWFsOy0tdGUyODY3YjEzZDc3MWQwNTU6aW5pdGlhbDstLXQ5MzNkNzkyMmYzMTU4ZGM1OmluaXRpYWw7LS10MjY0ZTJjOWNiODc4OTFmOTppbml0aWFsOy0tdDIwNmYzZmEyZTAxYWYyMmQ6aW5pdGlhbDstLXQzNGY0NmYwZjJjMTNkMzI4OmluaXRpYWw7LS10ODU0Yzc5MzM4ZDhjYThhNzppbml0aWFsOy0tdDIwNDgwNzE3ZGU4MGY1NTU6aW5pdGlhbDstLXQyZDgwN2JiNzllNzU2MDZkOmluaXRpYWw7LS10NjE3ZGI3NzZhZjBkZTE5Njppbml0aWFsOy0tdGI2MjgxMTdmYzE2NGFkODc6aW5pdGlhbDstLXRkNTQ1ZGYwNGUyYzY1OWQ3OmluaXRpYWw7LS10NTM5OTFkNTk5YjE0ODhmNTppbml0aWFsOy0tdGE4ODlkZmRhOTYwNWEzNTg6aW5pdGlhbDstLXQ1OTc4ZGE4ZDU4NGI4ZmU5OmluaXRpYWw7LS10MTI0YjdkYWZlOWJjMzY2ZDppbml0aWFsOy0tdGRiZTUwZDI3ZDUxZjUwOTM6aW5pdGlhbDstLXRhNTY0ZDgyMTJiY2NiMTZhOmluaXRpYWw7LS10OTlmNzc0Njg0Y2JiOTcwMzppbml0aWFsOy0tdDRlNmRmOWIyYjZiOTdlMDA6aW5pdGlhbDstLXRiOGIzMWFjNTYyZmJlOWI1OmluaXRpYWw7LS10NTg4NDY3MjAwNGQ1NjEyMDppbml0aWFsOy0tdGVmNzBjYTI0NTQ0NWI1MmI6aW5pdGlhbDstLXQ0ZjA5MjJlNWEzZDBjMjBmOmluaXRpYWw7LS10N2RmYTZmODRjOTM0NmVkZjppbml0aWFsOy0tdGVjYmRmOTI0YjYzYjI3ZmM6aW5pdGlhbDstLXQxNDA1ZTcwYTM5Mjc2MjkzOmluaXRpYWw7LS10YWQ4NDQzZmFlZDY2YzExMTppbml0aWFsOy0tdGU2ZDJiNDI4ZGU2ODU1NGE6aW5pdGlhbDstLXRjOTgwYzU0NzgxMjRjOGM3OmluaXRpYWw7LS10OTY1NjQ0ZWNkYmU0YjdiODppbml0aWFsOy0tdGIxNGExMGMzYjQzYTE1YTM6aW5pdGlhbDstLXRiMTNmZjg3OTc4MjllNzllOmluaXRpYWw7LS10ZTU2NjhlNjExMWFiYTBlZDppbml0aWFsOy0tdGE3ZDYyOGZhY2ZlODRkMTg6aW5pdGlhbDstLXRiZTQyMjY5NTM0NjU1ZTY3OmluaXRpYWw7LS10YWI4MDU5MjM2MDYzY2FkYjppbml0aWFsOy0tdDczNWU0MzVhOGI3YWQ2N2M6aW5pdGlhbDstLXQyMWFmMDhmZGJmNmExNDA2OmluaXRpYWw7LS10YzYwNDExM2QwOWZlZTA1ZDppbml0aWFsOy0tdDA4YTdjNmMxNzZjYmM1YzI6aW5pdGlhbDstLXQ4Y2RjOTg0NmE3NmNhZjFmOmluaXRpYWw7LS10ZTFiNjRlNjk3MTA0MDM5Njppbml0aWFsOy0tdDQxNmU1OTMxZmM0NjQ1ODk6aW5pdGlhbDstLXRiN2Q3NGJiMzI5MWM5NTFkOmluaXRpYWw7LS10ZjNmYzg1NWFmMjI4NWY1Zjppbml0aWFsOy0tdDBhMTI0OWY3YzllODJiNWU6aW5pdGlhbDstLXQwMmMwYTJjODY4YzE0Y2U4OmluaXRpYWw7LS10ZDg1NjJjZGMyMDNiYzY4Mzppbml0aWFsOy0tdDUzZGRhOTEyNWU4ZDEzMjQ6aW5pdGlhbDstLXQ1NDRlMzE3MTRmNjNkNTNjOmluaXRpYWw7LS10ODdlYWJmMTEzYTE1YWM5Njppbml0aWFsOy0tdDg1OGI4MDlmODA0NGU5NjI6aW5pdGlhbDstLXQwZjU5MjkxY2U1NTA0NTQzOmluaXRpYWw7LS10ZmFhZTk2NjkyY2MxODJlNDppbml0aWFsOy0tdDUxOGU5MjVmNjFiZGNiOTE6aW5pdGlhbDstLXRiOTI3ZjVjMDE0OTAwNGM2OmluaXRpYWw7LS10ODMyZjIyY2U2NjE4ZTk5ZTppbml0aWFsOy0tdDQ1YjJhMzgzMTQ5MjQzNTc6aW5pdGlhbDstLXQ2OTMxYWExODI2YjM3M2IyOmluaXRpYWw7LS10ZWQ0MjM2NTM2ODk5ZTRiMzppbml0aWFsOy0tdGRjOGFmNjc1MGYwZGFkMGQ6aW5pdGlhbDstLXQzNDEwYzkxNjQ5ZTVlYjhhOmluaXRpYWw7LS10NGFlYWE4NTdkZThhNzg2Yjppbml0aWFsOy0tdDI5NmM3ZjgxZGQwOWE5YzM6aW5pdGlhbDstLXRmYTM0NzVjNTA4ZjVkZmVmOmluaXRpYWw7LS10OWJjMGI3NDAyNDJkYTAxNzppbml0aWFsOy0tdDQ0MWEwZTQ0ZTQ5NTM4MWE6aW5pdGlhbDstLXRkZTQxMzM4ZmMyYmQ0YmE1OmluaXRpYWw7LS10NGQ3Nzc2YzI4ZGIyMTEyMjppbml0aWFsOy0tdDdlMzRkNWJhYTRlYTYyNzc6aW5pdGlhbDstLXRjNGIyNjA0MmQ0Y2IxNDFmOmluaXRpYWw7LS10NTIwOGZkMTc3YTc4OGNmYTppbml0aWFsOy0tdGZmYzJmZDNhNjQ0ZjYyNzU6aW5pdGlhbDstLXQ2MjE2MTg2YzI4YjM4MzRiOmluaXRpYWw7LS10NGE2ZGExOWUxNmJmMjIxYTppbml0aWFsOy0tdGQ5YzE5ZjRmOGNlY2Q1NmU6aW5pdGlhbDstLXQzZjNiZGI0MTQwZDNlYWQ3OmluaXRpYWw7LS10OTA0YTg4YzYyM2NhMjdhYjppbml0aWFsOy0tdDJjM2JiZmY2YzE1YTNlYjI6aW5pdGlhbDstLXQwY2NkMWFjZTAwMGQ1ZTkzOmluaXRpYWw7LS10Yzg3ZjZhN2YwNWU2NWZjNDppbml0aWFsOy0tdGMwNGJhM2U3MzU2MTk1M2M6aW5pdGlhbDstLXQ3YzQ5NjVjMTFmODUzN2MwOmluaXRpYWw7LS10NDMyZmJkYmQ3ZjJmM2Y3MTppbml0aWFsOy0tdGFmMWJkZDk2MTQyM2MxNWY6aW5pdGlhbDstLXQ5ZDdiZGNhZWZjOTc1ZDQ0OmluaXRpYWw7LS10NGZiMGY2N2IyNTFlMWE0Mjppbml0aWFsOy0tdGEwOGUwMzY0MTBjMTQ1Mzg6aW5pdGlhbDstLXQ3ZjliN2UxNjAzZTIwYjk0OmluaXRpYWx9LmRpYWxvZ3twb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21heC1oZWlnaHQ6MTAwJTttYXgtd2lkdGg6MTAwJTstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzoxNnB4O21hcmdpbjowIGF1dG87b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2ZvbnQtc2l6ZToxLjNyZW07Y29sb3I6IzAzMDMwMztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOm5vbmV9LmRpYWxvZy5tb2Rlcm4tZGlhbG9ne2JveC1zaGFkb3c6MCAwIDI0cHggMTJweCByZ2JhKDAsMCwwLDAuMjUpfS5kaWFsb2cucm91bmRlZC1jb250YWluZXJ7Ym9yZGVyLXJhZGl1czoxMnB4fS5kaWFsb2cubW9kZXJuLWRpYWxvZy1sYXlvdXR7cGFkZGluZzowO2JvcmRlci1yYWRpdXM6MjRweH0uZGlhbG9nLWJvZHl7b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVuO21heC1oZWlnaHQ6MzAwcHg7bWF4LWhlaWdodDoxMDB2aH0uZGlhbG9nLnNjcm9sbGFibGUgLmRpYWxvZy1ib2R5e292ZXJmbG93LXk6dmlzaWJsZTtvdmVyZmxvdy14OnZpc2libGU7bWF4LWhlaWdodDp1bnNldH0uZGlhbG9nLWNvbnRhaW5lcntwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ei1pbmRleDo0fS5kaWFsb2ctaGVhZGVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZGlhbG9nLWJ1dHRvbnMsLmRpYWxvZy1oZWFkZXJ7ZmxleC1zaHJpbms6MH0uZGlhbG9nLWJ1dHRvbnN7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7bWFyZ2luLXRvcDoxMnB4fS5kaWFsb2ctYnV0dG9ucz4qe21hcmdpbi1sZWZ0OjhweH0uZGlhbG9nLWJ1dHRvbnM+OmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjB9LmRpYWxvZy1mbGV4LWJ1dHRvbnstbW96LWJveC1mbGV4OjE7ZmxleDoxfS5kaWFsb2ctZmxleC1idXR0b24gLmJ1dHRvbi13aXRoLWljb24uY29tcGFjdHttYXJnaW46MH0uZGlhbG9nLWJvZHkgYSwuZGlhbG9nLWhlYWRlciBhe2NvbG9yOiMwNjVmZDR9LmRpYWxvZy1ib2R5IHl0bS1tZW51LWl0ZW0gYXtjb2xvcjpjdXJyZW50Y29sb3J9QG1lZGlhIChtaW4td2lkdGg6MzMwcHgpIGFuZCAobWluLWhlaWdodDozMzBweCl7LmRpYWxvZ3ttaW4td2lkdGg6MjUwcHg7bWF4LXdpZHRoOjM1NnB4fS5kaWFsb2ctY29udGFpbmVye21hcmdpbjowIDQwcHg7cGFkZGluZzowO3BhZGRpbmc6MCBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KX19LmRpYWxvZy1mdWxsc2NyZWVue21pbi13aWR0aDoxMDAlO21pbi1oZWlnaHQ6MTAwJTttYXJnaW46MDtwYWRkaW5nOjA7aGVpZ2h0OjFweH0uZGlhbG9nLWZ1bGxzY3JlZW4+LmRpYWxvZy1ib2R5e2hlaWdodDoxMDAlfS5kaWFsb2cubW9kZXJuLWRpYWxvZy1sYXlvdXQuZGlhbG9nLWZ1bGxzY3JlZW57Ym9yZGVyLXJhZGl1czowfS5kaWFsb2ctY29udGFpbmVyLmRpYWxvZy1mdWxsc2NyZWVue21hcmdpbjowfWMzLXRvYXN0e2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDo1O2xlZnQ6MDtyaWdodDowO2JvdHRvbTowOy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjE0cHggMjRweDtmb250LXNpemU6MS40cmVtO2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMGYwZjBmO3dpbGwtY2hhbmdlOnRyYW5zZm9ybTttYXJnaW4tYm90dG9tOi0xMDAlfWMzLXRvYXN0Lmh1Zy10b2FzdHttYXgtd2lkdGg6MzQ0cHh9YzMtdG9hc3QuaW52ZXJzZS10aGVtZXtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzAzMDMwM31jMy10b2FzdC5pbnZlcnNlLXRoZW1lIC5idXR0b24td2l0aC1pY29ue2NvbG9yOiMwNjVmZDR9W2hhcy1zYWZlLWFyZWEtaW4tbWF4PXRydWVdIGMzLXRvYXN0e3BhZGRpbmc6MTRweCAyNHB4O3BhZGRpbmc6MTRweCBtYXgoMjRweCxlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSkgMTRweCBtYXgoMjRweCxlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKX1baGFzLXBpdm90LWJhcj10cnVlXSBjMy10b2FzdHstLXNhZmUtYXJlYS1pbnNldC10b3A6ZW52KHNhZmUtYXJlYS1pbnNldC10b3ApOy0tc2FmZS1hcmVhLWluc2V0LWJvdHRvbTplbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7Ym90dG9tOjQ4cHg7Ym90dG9tOmNhbGMoNDhweCArIHZhcigtLXNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTttYXJnaW4tYm90dG9tOi0xMDAlO21hcmdpbi1ib3R0b206Y2FsYygtMTAwJSArIHZhcigtLXNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTt6LWluZGV4OjJ9W21vZGFsLW9wZW4tYm9keV0gYzMtdG9hc3QsW3Nob3J0cy1wbGF5ZXI9dHJ1ZV0gYzMtdG9hc3R7Ym90dG9tOjhweDttYXJnaW4tYm90dG9tOi0xMDAlO3otaW5kZXg6NX1jMy10b2FzdFtkaXI9b3V0XXt0cmFuc2l0aW9uOm1hcmdpbiAxOTVtcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfWMzLXRvYXN0W2Rpcj1pbl17dHJhbnNpdGlvbjptYXJnaW4gMjI1bXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKTttYXJnaW4tYm90dG9tOjB9QGtleWZyYW1lcyBzcGlubmVyezAle3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9dG97dHJhbnNmb3JtOnJvdGF0ZSgxdHVybil9fS5zcGlubmVyV3JhcHBlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5zcGlubmVye2Rpc3BsYXk6YmxvY2s7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjoxMnB4IGF1dG87d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MnB4IHNvbGlkICNlZWU7Ym9yZGVyLXRvcC1jb2xvcjojNjY2O2FuaW1hdGlvbjpzcGlubmVyIC44cyBsaW5lYXIgaW5maW5pdGV9LnNwaW5uZXI+LmhpZGRlbntkaXNwbGF5Om5vbmV9LnNwaW5uZXI6bm90KFtoaWRkZW5dKXtjb2xvcjojMzMzO2ZvbnQtc2l6ZToxLjZyZW19aHRtbHtjb2xvcjojMDMwMzAzO2JhY2tncm91bmQtY29sb3I6I2ZmZjtmb250LXNpemU6MTBweDtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZn1ib2R5e21hcmdpbjowO3BhZGRpbmc6MDtwYWRkaW5nOjAgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCk7Zm9udC1zaXplOjEuMnJlbTtvdmVyZmxvdy14OmhpZGRlbn1baGlkZGVuXVtoaWRkZW5de2Rpc3BsYXk6bm9uZTt2aXNpYmlsaXR5OmhpZGRlbn15dG0tYXBwPi5zcGlubmVye21hcmdpbi10b3A6MTAwcHh9eXRtLWhlYWRlcntkaXNwbGF5OmJsb2NrfWhlYWRlcntoZWlnaHQ6NDhweH0ucGxheWVyLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NDhweDtyaWdodDowO3JpZ2h0OmVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpO2xlZnQ6MDtsZWZ0OmVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCk7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6Mn1baGFzLXBsYXllci1jdXN0b20tY29udHJvbD10cnVlXSAucGxheWVyLWNvbnRhaW5lcntvdmVyZmxvdzp2aXNpYmxlIWltcG9ydGFudH0jcGxheWVyLmlubGluZS1wbGF5ZXItaGlkZGVuLC5pbmxpbmUtcGxheWVyLWhpZGRlbntvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZX0ucGxheWVyLWNvbnRhaW5lciAucGxheWVyLXNpemUseXRtLXdhdGNoIC5wbGF5ZXItc2l6ZXtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO3BhZGRpbmctYm90dG9tOjU2LjI1JTtvdmVyZmxvdzpoaWRkZW59LnBsYXllci1jb250YWluZXIgI3BsYXllci5wbGF5ZXItc2l6ZSx5dG0td2F0Y2ggLnBsYXllci1zaXple2JhY2tncm91bmQtY29sb3I6IzAwMH0ucGxheWVyLWNpbmVtYXRpY3N7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO2JhY2tncm91bmQ6IzAwMH0ucGxheWVyLWNpbmVtYXRpY3N+I3BsYXllci5wbGF5ZXItc2l6ZSwucGxheWVyLWNpbmVtYXRpY3N+LnBsYXllci1zaXple2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LnBhZ2Utc2hvcnRzIC5wbGF5ZXItY29udGFpbmVyIC5wbGF5ZXItc2l6ZSwucGFnZS1zaG9ydHMgeXRtLXdhdGNoIC5wbGF5ZXItc2l6ZXtwYWRkaW5nLWJvdHRvbTowfS5wbGF5ZXItY29udGFpbmVyIC5wbGF5ZXItYXBpe2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ucGxheWVyLWFwaVtoaWRkZW5dLC5wbGF5ZXItYXBpW2xvYWRpbmc9dHJ1ZV0sLnBsYXllci1hcGlbcGxheWFibGU9ZmFsc2Vde2Rpc3BsYXk6bm9uZX0jcGxheWVyLmlubGluZS1vbi10aHVtYm5haWx7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowfS5wbGF5ZXItY29udGFpbmVyIC5odG1sNS12aWRlby1wbGF5ZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjB9eXRtLWFwcHtkaXNwbGF5OmJsb2NrO292ZXJmbG93LXg6aGlkZGVufVtoYXMtc29mdC1iYXI9dHJ1ZV0geXRtLWFwcHtwYWRkaW5nLWJvdHRvbTozMHB4fVtoYXMtcGl2b3QtYmFyPXRydWVdIHl0bS1hcHB7cGFkZGluZy1ib3R0b206NDhweH15dG0taGVhZGVyLmlzLWF1dG9tb3RpdmUseXRtLWhlYWRlci5zdGlja3ktcGxheWVyLHl0bS1tb2JpbGUtdG9wYmFyLXJlbmRlcmVyLmlzLWF1dG9tb3RpdmUseXRtLW1vYmlsZS10b3BiYXItcmVuZGVyZXIuc2hvcnRzLXRvcGJhcix5dG0tbW9iaWxlLXRvcGJhci1yZW5kZXJlci5zdGlja3ktcGxheWVye3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6NDtwYWRkaW5nOjA7cGFkZGluZzowIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpIDAgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KX15dG0tbW9iaWxlLXRvcGJhci1yZW5kZXJlci5zdGlja3ktcGxheWVyLm91dHt0b3A6LTQ4cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMTk1bXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbH15dG0tbW9iaWxlLXRvcGJhci1yZW5kZXJlci5zdGlja3ktcGxheWVyLmlue3RvcDowO3RyYW5zaXRpb246dHJhbnNmb3JtIDIyNW1zIGN1YmljLWJlemllcigwLDAsLjIsMSk7dHJhbnNpdGlvbi1wcm9wZXJ0eTphbGx9LnBsYXllci1jb250YWluZXIuc3RpY2t5LXBsYXllcntwb3NpdGlvbjpmaXhlZDt0b3A6NDhweDtyaWdodDowO3JpZ2h0OmVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpO2xlZnQ6MDtsZWZ0OmVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCk7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6Mn0ucGxheWVyLWNvbnRhaW5lci5oZWFkZXItaW4tcGxheWVyLC5wbGF5ZXItY29udGFpbmVyLnN0aWNreS1wbGF5ZXIuaGVhZGVyLWluLXBsYXllcnt0b3A6MH15dG0tYXBwLmlzLWF1dG9tb3RpdmUseXRtLWFwcC5zdGlja3ktcGxheWVye2Rpc3BsYXk6YmxvY2s7cGFkZGluZy10b3A6NDhweH15dG0tYXBwLmlzLWF1dG9tb3RpdmUuaGVhZGVyLWluLXBsYXllcix5dG0tYXBwLnN0aWNreS1wbGF5ZXIuaGVhZGVyLWluLXBsYXllcntwYWRkaW5nLXRvcDowfUBtZWRpYSAobWluLXdpZHRoOjkzMXB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Ym9keS5wYWdlLXNob3J0c1tlbmdhZ2VtZW50LXBhbmVsLW9wZW5dIC5wbGF5ZXItY29udGFpbmVyLGJvZHkucGFnZS1zaG9ydHNbZW5nYWdlbWVudC1wYW5lbC1vcGVuXSAucGxheWVyLWNvbnRhaW5lci5zdGlja3ktcGxheWVye3JpZ2h0OjI1NnB4fWJvZHkucGFnZS1zaG9ydHNbZW5nYWdlbWVudC1wYW5lbC1vcGVuXSAucGxheWVyLXBsYWNlaG9sZGVyLXdyYXBwZXJ7d2lkdGg6Y2FsYygxMDAlIC0gMjU2cHgpfWJvZHk6bm90KC5wYWdlLXNob3J0cykgLnBsYXllci1jb250YWluZXIsYm9keTpub3QoLnBhZ2Utc2hvcnRzKSAucGxheWVyLWNvbnRhaW5lci5zdGlja3ktcGxheWVye3JpZ2h0OjI1NnB4fWJvZHk6bm90KC5wYWdlLXNob3J0cykgLnBsYXllci1wbGFjZWhvbGRlci13cmFwcGVye3dpZHRoOmNhbGMoMTAwJSAtIDI1NnB4KX0ubXdlYi10YWJsZXQtbWV0YWRhdGEtc3BsaXQtdmlldyBib2R5LnBhZ2Utc2hvcnRzW2VuZ2FnZW1lbnQtcGFuZWwtb3Blbl0gLnBsYXllci1jb250YWluZXIsLm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keS5wYWdlLXNob3J0c1tlbmdhZ2VtZW50LXBhbmVsLW9wZW5dIC5wbGF5ZXItY29udGFpbmVyLnN0aWNreS1wbGF5ZXJ7cmlnaHQ6MzM2cHh9Lm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keS5wYWdlLXNob3J0c1tlbmdhZ2VtZW50LXBhbmVsLW9wZW5dIC5wbGF5ZXItcGxhY2Vob2xkZXItd3JhcHBlcnt3aWR0aDpjYWxjKDEwMCUgLSAzMzZweCl9Lm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keTpub3QoLnBhZ2Utc2hvcnRzKSAucGxheWVyLWNvbnRhaW5lciwubXdlYi10YWJsZXQtbWV0YWRhdGEtc3BsaXQtdmlldyBib2R5Om5vdCgucGFnZS1zaG9ydHMpIC5wbGF5ZXItY29udGFpbmVyLnN0aWNreS1wbGF5ZXJ7cmlnaHQ6MzM2cHh9Lm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keTpub3QoLnBhZ2Utc2hvcnRzKSAucGxheWVyLXBsYWNlaG9sZGVyLXdyYXBwZXJ7d2lkdGg6Y2FsYygxMDAlIC0gMzM2cHgpfS5td2ViLWFsbC1sYW5kc2NhcGUtdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgLnBsYXllci1jb250YWluZXJ7Ym90dG9tOjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn1Ac3VwcG9ydHMgKGFzcGVjdC1yYXRpbzoxNi85KXsubXdlYi1sYW5kc2NhcGUtZnVsbC1zaXplLXBsYXllciAucGxheWVyLWNvbnRhaW5lciAucGxheWVyLXNpemUsLm13ZWItbGFuZHNjYXBlLWZ1bGwtc2l6ZS1wbGF5ZXIgeXRtLXdhdGNoIC5wbGF5ZXItc2l6ZXtwYWRkaW5nLWJvdHRvbTp1bnNldDthc3BlY3QtcmF0aW86MTYvOX19Lm13ZWItbGFuZHNjYXBlLWZ1bGwtc2l6ZS1wbGF5ZXIgLnBsYXllci1jb250YWluZXIgLnBsYXllci1zaXplLC5td2ViLWxhbmRzY2FwZS1mdWxsLXNpemUtcGxheWVyIHl0bS13YXRjaCAucGxheWVyLXNpemV7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gNDhweCk7bWF4LWhlaWdodDpjYWxjKDEwMHN2aCAtIDQ4cHgpfX1AbWVkaWEgKG1pbi1hc3BlY3QtcmF0aW86MjEvMTApIGFuZCAobWluLXdpZHRoOjkzMXB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Lm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgLnBsYXllci1jb250YWluZXJ7Ym90dG9tOjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn19QG1lZGlhIChtaW4tYXNwZWN0LXJhdGlvOjE2LzkpIGFuZCAobWF4LXdpZHRoOjkzMHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Lm13ZWItcGhvbmUtbWV0YWRhdGEtc3BsaXQtdmlldyBib2R5LnBhZ2Utc2hvcnRzW2VuZ2FnZW1lbnQtcGFuZWwtb3Blbl0gLnBsYXllci1jb250YWluZXIsLm13ZWItcGhvbmUtbWV0YWRhdGEtc3BsaXQtdmlldyBib2R5LnBhZ2Utc2hvcnRzW2VuZ2FnZW1lbnQtcGFuZWwtb3Blbl0gLnBsYXllci1jb250YWluZXIuc3RpY2t5LXBsYXllcntyaWdodDozMzZweH0ubXdlYi1waG9uZS1tZXRhZGF0YS1zcGxpdC12aWV3IGJvZHkucGFnZS1zaG9ydHNbZW5nYWdlbWVudC1wYW5lbC1vcGVuXSAucGxheWVyLXBsYWNlaG9sZGVyLXdyYXBwZXJ7d2lkdGg6Y2FsYygxMDAlIC0gMzM2cHgpfS5td2ViLXBob25lLW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keTpub3QoLnBhZ2Utc2hvcnRzKSAucGxheWVyLWNvbnRhaW5lciwubXdlYi1waG9uZS1tZXRhZGF0YS1zcGxpdC12aWV3IGJvZHk6bm90KC5wYWdlLXNob3J0cykgLnBsYXllci1jb250YWluZXIuc3RpY2t5LXBsYXllcntyaWdodDozMzZweH0ubXdlYi1waG9uZS1tZXRhZGF0YS1zcGxpdC12aWV3IGJvZHk6bm90KC5wYWdlLXNob3J0cykgLnBsYXllci1wbGFjZWhvbGRlci13cmFwcGVye3dpZHRoOmNhbGMoMTAwJSAtIDMzNnB4KX0ubXdlYi1waG9uZS1tZXRhZGF0YS1zcGxpdC12aWV3IC5wbGF5ZXItY29udGFpbmVye2JvdHRvbTowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9QHN1cHBvcnRzIChhc3BlY3QtcmF0aW86MTYvOSl7Lm13ZWItbGFuZHNjYXBlLWZ1bGwtc2l6ZS1wbGF5ZXIgLm13ZWItcGhvbmUtbWV0YWRhdGEtc3BsaXQtdmlldyAucGxheWVyLWNvbnRhaW5lciAucGxheWVyLXNpemUsLm13ZWItbGFuZHNjYXBlLWZ1bGwtc2l6ZS1wbGF5ZXIgLm13ZWItcGhvbmUtbWV0YWRhdGEtc3BsaXQtdmlldyB5dG0td2F0Y2ggLnBsYXllci1zaXple3BhZGRpbmctYm90dG9tOnVuc2V0O2hlaWdodDphdXRvO2FzcGVjdC1yYXRpbzoxNi85fX19QG1lZGlhIChtaW4td2lkdGg6MTI4MHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Ym9keS5wYWdlLXNob3J0c1tlbmdhZ2VtZW50LXBhbmVsLW9wZW5dIC5wbGF5ZXItY29udGFpbmVyLGJvZHkucGFnZS1zaG9ydHNbZW5nYWdlbWVudC1wYW5lbC1vcGVuXSAucGxheWVyLWNvbnRhaW5lci5zdGlja3ktcGxheWVye3JpZ2h0OjUwMHB4fWJvZHkucGFnZS1zaG9ydHNbZW5nYWdlbWVudC1wYW5lbC1vcGVuXSAucGxheWVyLXBsYWNlaG9sZGVyLXdyYXBwZXJ7d2lkdGg6Y2FsYygxMDAlIC0gNTAwcHgpfWJvZHk6bm90KC5wYWdlLXNob3J0cykgLnBsYXllci1jb250YWluZXIsYm9keTpub3QoLnBhZ2Utc2hvcnRzKSAucGxheWVyLWNvbnRhaW5lci5zdGlja3ktcGxheWVye3JpZ2h0OjUwMHB4fWJvZHk6bm90KC5wYWdlLXNob3J0cykgLnBsYXllci1wbGFjZWhvbGRlci13cmFwcGVye3dpZHRoOmNhbGMoMTAwJSAtIDUwMHB4KX0ubXdlYi10YWJsZXQtbWV0YWRhdGEtc3BsaXQtdmlldyBib2R5LnBhZ2Utc2hvcnRzW2VuZ2FnZW1lbnQtcGFuZWwtb3Blbl0gLnBsYXllci1jb250YWluZXIsLm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keS5wYWdlLXNob3J0c1tlbmdhZ2VtZW50LXBhbmVsLW9wZW5dIC5wbGF5ZXItY29udGFpbmVyLnN0aWNreS1wbGF5ZXJ7cmlnaHQ6NTAwcHh9Lm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keS5wYWdlLXNob3J0c1tlbmdhZ2VtZW50LXBhbmVsLW9wZW5dIC5wbGF5ZXItcGxhY2Vob2xkZXItd3JhcHBlcnt3aWR0aDpjYWxjKDEwMCUgLSA1MDBweCl9Lm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keTpub3QoLnBhZ2Utc2hvcnRzKSAucGxheWVyLWNvbnRhaW5lciwubXdlYi10YWJsZXQtbWV0YWRhdGEtc3BsaXQtdmlldyBib2R5Om5vdCgucGFnZS1zaG9ydHMpIC5wbGF5ZXItY29udGFpbmVyLnN0aWNreS1wbGF5ZXJ7cmlnaHQ6NTAwcHh9Lm13ZWItdGFibGV0LW1ldGFkYXRhLXNwbGl0LXZpZXcgYm9keTpub3QoLnBhZ2Utc2hvcnRzKSAucGxheWVyLXBsYWNlaG9sZGVyLXdyYXBwZXJ7d2lkdGg6Y2FsYygxMDAlIC0gNTAwcHgpfX1AbWVkaWEgKG1heC13aWR0aDo5MzBweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpe3l0bS1tb2JpbGUtdG9wYmFyLXJlbmRlcmVyLnNob3J0cy10b3BiYXJ7cmlnaHQ6NzJweH0ucGxheWVyLWNvbnRhaW5lciAucGxheWVyLXNpemUseXRtLXdhdGNoIC5wbGF5ZXItc2l6ZXtwYWRkaW5nLWJvdHRvbTpjYWxjKDU2LjI1JSAtIDk2cHgpfS5td2ViLWxhbmRzY2FwZS1mdWxsLXNpemUtcGxheWVyIC5wbGF5ZXItY29udGFpbmVyIC5wbGF5ZXItc2l6ZSwubXdlYi1sYW5kc2NhcGUtZnVsbC1zaXplLXBsYXllciB5dG0td2F0Y2ggLnBsYXllci1zaXple2hlaWdodDpjYWxjKDU2LjI1dncgLSA5NnB4KTtwYWRkaW5nLWJvdHRvbTp1bnNldDttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSA0OHB4KTttYXgtaGVpZ2h0OmNhbGMoMTAwc3ZoIC0gNDhweCl9fUBtZWRpYSAobWF4LXdpZHRoOjI5OXB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSksKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7LnBsYXllci1jb250YWluZXIgLnBsYXllci1zaXplLHl0bS13YXRjaCAucGxheWVyLXNpemV7cGFkZGluZy1ib3R0b206NTYuMjUlfX1AbWVkaWEgKG1heC13aWR0aDozMjBweCkgYW5kIChtYXgtaGVpZ2h0OjI0MHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7LnBsYXllci1jb250YWluZXIgLnBsYXllci1zaXplLHl0bS13YXRjaCAucGxheWVyLXNpemV7cGFkZGluZy1ib3R0b206NTYuMjUlfX1AbWVkaWEgKG1pbi13aWR0aDo1NTBweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCksKG1pbi13aWR0aDo5MzFweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpe3l0bS1hcHB7cGFkZGluZy10b3A6NDhweH15dG0taGVhZGVyLHl0bS1oZWFkZXItYmFyLHl0bS1tb2JpbGUtdG9wYmFyLXJlbmRlcmVye3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6NH19LmNvbnRlbnQtZXJyb3J7Zm9udC1zaXplOjEuNHJlbTtwYWRkaW5nOjEycHg7dGV4dC1hbGlnbjpjZW50ZXJ9I3BsYXllci10aHVtYm5haWwtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtvYmplY3QtZml0OmNvdmVyO21pbi1oZWlnaHQ6MH0jcGxheWVyLWNvbnRhaW5lci1pZFtwbGF5YWJsZT10cnVlXSAjcGxheWVyLXRodW1ibmFpbC1vdmVybGF5e3Zpc2liaWxpdHk6aGlkZGVufWJvZHkucGFnZS1zaG9ydHMsaHRtbFtwYWdlLXNob3J0c117b3ZlcnNjcm9sbC1iZWhhdmlvci15Om5vbmV9Ym9keS5sb2FkaW5nLnBhZ2Utc2hvcnRzICNoZWFkZXIsYm9keS5sb2FkaW5nLnBhZ2Utc2hvcnRzIC5wbGF5ZXItcGxhY2Vob2xkZXItd3JhcHBlcntkaXNwbGF5Om5vbmV9Ym9keS5wYWdlLXNob3J0cyAjcGxheWVyLWNvbnRhaW5lci1pZCxib2R5LnBhZ2Utc2hvcnRzIC5wbGF5ZXItY29udGFpbmVyICNwbGF5ZXJ7aGVpZ2h0OjEwMCU7dG9wOjB9KnstbXMtZmxleDowIDEgYXV0b31idXR0b257cGFkZGluZzowO2JvcmRlcjpub25lO291dGxpbmU6bm9uZTtmb250OmluaGVyaXQ7dGV4dC10cmFuc2Zvcm06aW5oZXJpdDtjb2xvcjppbmhlcml0O2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9aHRtbHt3b3JkLXdyYXA6YnJlYWstd29yZDtjb2xvcjojMDMwMzAzO2JhY2tncm91bmQtY29sb3I6I2ZmZjstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJX1ib2R5W2Rpc2FibGUtdGFwLWhpZ2hsaWdodD10cnVlXSBbcm9sZT1idXR0b25dLGJvZHlbZGlzYWJsZS10YXAtaGlnaGxpZ2h0PXRydWVdIGEsYm9keVtkaXNhYmxlLXRhcC1oaWdobGlnaHQ9dHJ1ZV0gYnV0dG9uey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH1odG1sW2Rhcmtlci1kYXJrLXRoZW1lXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9aHRtbC53YXRjaC1zY3JvbGx7c2Nyb2xsLXBhZGRpbmctdG9wOjQ4cHh9aHRtbC53YXRjaC1zY3JvbGwuc3RpY2t5LXBsYXllcntzY3JvbGwtcGFkZGluZy10b3A6Y2FsYyg0OHB4ICsgNTYuMjV2dyl9aW5wdXR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtwYWRkaW5nLWJvdHRvbTo0cHg7b3V0bGluZTpub25lOy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjA7bWFyZ2luLWJvdHRvbToxcHg7Zm9udDppbmhlcml0O2NvbG9yOiMwMzAzMDM7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzczNzM3Mzt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfWlucHV0OmZvY3Vze21hcmdpbi1ib3R0b206MDtib3JkZXItYm90dG9tLXdpZHRoOjJweDtib3JkZXItYm90dG9tLWNvbG9yOiMwMzAzMDN9aW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6IzYwNjA2MDtvcGFjaXR5OjF9aW5wdXQ6OnBsYWNlaG9sZGVye2NvbG9yOiM2MDYwNjA7b3BhY2l0eToxfXRleHRhcmVhe2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7cGFkZGluZy1ib3R0b206NHB4O291dGxpbmU6bm9uZTstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czowO21hcmdpbi1ib3R0b206MXB4O2ZvbnQ6aW5oZXJpdDtjb2xvcjojMDMwMzAzOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTttaW4taGVpZ2h0OjguNHJlbTt3aWR0aDoxMDAlO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO3BhZGRpbmc6OHB4fXRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOiM2MDYwNjA7b3BhY2l0eToxfXRleHRhcmVhOjpwbGFjZWhvbGRlcntjb2xvcjojNjA2MDYwO29wYWNpdHk6MX1mb3Jte21hcmdpbjowfWF7Y29sb3I6Y3VycmVudENvbG9yO3RleHQtZGVjb3JhdGlvbjpub25lfWgxe2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO21heC1oZWlnaHQ6Mi41ZW07LXdlYmtpdC1saW5lLWNsYW1wOjI7b3ZlcmZsb3c6aGlkZGVuO2xpbmUtaGVpZ2h0OjEuMjU7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmb250LXdlaWdodDo0MDA7bWFyZ2luOjAgMCAzcHg7bWFyZ2luLWJvdHRvbTowfWgye2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO21heC1oZWlnaHQ6Mi41ZW07LXdlYmtpdC1saW5lLWNsYW1wOjI7b3ZlcmZsb3c6aGlkZGVuO2xpbmUtaGVpZ2h0OjEuMjU7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmb250LXdlaWdodDo0MDA7bWFyZ2luOjAgMCAzcHg7Zm9udC1zaXplOjEuOHJlbTttYXJnaW4tYm90dG9tOjB9aDN7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7bWF4LWhlaWdodDoyLjVlbTstd2Via2l0LWxpbmUtY2xhbXA6MjtvdmVyZmxvdzpoaWRkZW47bGluZS1oZWlnaHQ6MS4yNTt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW46MCAwIDNweDtmb250LXNpemU6MS40cmVtO21hcmdpbi1ib3R0b206MH1oNHtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDttYXgtaGVpZ2h0OjIuNWVtOy13ZWJraXQtbGluZS1jbGFtcDoyO292ZXJmbG93OmhpZGRlbjtsaW5lLWhlaWdodDoxLjI1O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Zm9udC13ZWlnaHQ6NDAwO21hcmdpbjowIDAgM3B4O2ZvbnQtc2l6ZToxLjNyZW07bWFyZ2luLWJvdHRvbTowfWltZ3ttaW4td2lkdGg6MXB4O21pbi1oZWlnaHQ6MXB4O2ZpbHRlcjpub25lfWltZzpub3QoW3NyY10pe3Zpc2liaWxpdHk6aGlkZGVufTpmb2N1c3tvdXRsaW5lOm5vbmV9cHttYXJnaW46MH0uaXRlbXttYXJnaW4tdG9wOjEycHg7ZGlzcGxheTpibG9ja30uaXRlbTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MTJweH1AbWVkaWEgKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpLChtYXgtd2lkdGg6Mjk5cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpey5pdGVte21hcmdpbi10b3A6OHB4fX0uaW1hZ2Utb3ZlcmxheS10ZXh0e3RleHQtc2hhZG93OjFweCAxcHggaHNsYSgwLDAlLDYuNyUsLjIpLC0xcHggMXB4IGhzbGEoMCwwJSw2LjclLC4yKSwtMXB4IC0xcHggaHNsYSgwLDAlLDYuNyUsLjIpLDFweCAtMXB4IGhzbGEoMCwwJSw2LjclLC4yKX0jcGxheWVyLWNvbnRyb2wtY29udGFpbmVyey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZX1bZGlyPXJ0bF0gI3BsYXllci1zaG9ydHMtY29udGFpbmVye2RpcmVjdGlvbjpydGx9W2ZhdXgtZnVsbHNjcmVlbj10cnVlXSAjcGxheWVyLWNvbnRyb2wtY29udGFpbmVyLFtmYXV4LWZ1bGxzY3JlZW49dHJ1ZV0gLnBsYXllci1jb250YWluZXIgI3BsYXllcixbc2hvcnRzLXBsYXllcj10cnVlXSAjcGxheWVyLXNob3J0cy1jb250YWluZXIsW3Nob3J0cy1wbGF5ZXI9dHJ1ZV0gLnBsYXllci1jb250YWluZXIgI3BsYXllcntwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtwYWRkaW5nLWJvdHRvbTowfS5td2ViLWxhbmRzY2FwZS1mdWxsLXNpemUtcGxheWVyIC5wbGF5ZXItY29udGFpbmVyOi13ZWJraXQtZnVsbC1zY3JlZW4gLnBsYXllci1zaXplLC5td2ViLWxhbmRzY2FwZS1mdWxsLXNpemUtcGxheWVyIC5wbGF5ZXItY29udGFpbmVyOmZ1bGxzY3JlZW4gLnBsYXllci1zaXplLC5td2ViLWxhbmRzY2FwZS1mdWxsLXNpemUtcGxheWVyIFtmYXV4LWZ1bGxzY3JlZW49dHJ1ZV0gLnBsYXllci1jb250YWluZXIgLnBsYXllci1zaXple2hlaWdodDoxMDAlO21heC1oZWlnaHQ6MTAwJTthc3BlY3QtcmF0aW86YXV0b31bZmF1eC1mdWxsc2NyZWVuPXRydWVdW2Z1bGxzY3JlZW4tcmVqZWN0ZWQ9dHJ1ZV0gI2FwcHtkaXNwbGF5Om5vbmV9W3Nob3J0cy1wbGF5ZXI9dHJ1ZV0gLnBsYXllci1jb250YWluZXIgLmh0bWw1LXZpZGVvLWNvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfVtmYXV4LWZ1bGxzY3JlZW49dHJ1ZV0gLnBsYXllci1jb250YWluZXIsW2ZhdXgtZnVsbHNjcmVlbj10cnVlXSB5dG0tbW9iaWxlLXRvcGJhci1yZW5kZXJlcixbc2hvcnRzLXBsYXllcj10cnVlXSAucGxheWVyLWNvbnRhaW5lcixbc2hvcnRzLXBsYXllcj10cnVlXSB5dG0tbW9iaWxlLXRvcGJhci1yZW5kZXJlcjpub3QoLnNob3J0cy10b3BiYXIpe292ZXJmbG93OnZpc2libGU7ei1pbmRleDo0fVtzaG9ydHMtcGxheWVyPXRydWVdIC5wbGF5ZXItY29udGFpbmVyIC55dHAtdW5tdXRlLnl0cC1wb3B1cHt0b3A6NzVweDtsZWZ0OjA7bGVmdDplbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpfVtyb2xlPWJ1dHRvbl0sYnV0dG9uLGlucHV0W3R5cGU9Y2hlY2tib3hdLHNlbGVjdHtjdXJzb3I6cG9pbnRlcn15dG0tcmVlbC1wbGF5ZXItb3ZlcmxheS1yZW5kZXJlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7LW1vei1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxfXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyW2lzLXdlYl17d2lkdGg6dmFyKC0teXRkLXNob3J0cy1wbGF5ZXItd2lkdGgpO2hlaWdodDp2YXIoLS15dGQtc2hvcnRzLXBsYXllci1oZWlnaHQpfXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyW2lzLXdlYl0gLnJlZWwtcGxheWVyLW92ZXJsYXktbWV0YWRhdGF7bWFyZ2luLXJpZ2h0OnZhcigtLWFjdGlvbi1idXR0b24tZnVsbC13aWR0aC1uZWdhdGl2ZSk7cGFkZGluZy1yaWdodDp2YXIoLS1hY3Rpb24tYnV0dG9uLWZ1bGwtd2lkdGgpfXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyW2lzLXdlYl1bZXh0cmFjdC1hY3Rpb24tYmFyXXt3aWR0aDpjYWxjKHZhcigtLXl0ZC1zaG9ydHMtcGxheWVyLXdpZHRoKSArIDcycHgpfXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyW2lzLXdlYl1bZXh0cmFjdC1hY3Rpb24tYmFyXSAucmVlbC1wbGF5ZXItb3ZlcmxheS1tZXRhZGF0YXttYXJnaW4tcmlnaHQ6MDtwYWRkaW5nLXJpZ2h0OjB9eXRtLXJlZWwtcGxheWVyLW92ZXJsYXktcmVuZGVyZXJbaXMtd2ViXVtleHRyYWN0LWFjdGlvbi1iYXJdIC5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnN7bWFyZ2luLWJvdHRvbToxNnB4fXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyW2lzLXdlYl1bZXh0cmFjdC1vdmVybGF5XXt3aWR0aDoxMDAlfXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyW2lzLXdlYl1bZXh0cmFjdC1vdmVybGF5XSAucmVlbC1wbGF5ZXItb3ZlcmxheS1tZXRhZGF0YXt3aWR0aDpjYWxjKCgxMDAlIC0gbWF4KHZhcigtLXl0ZC1zaG9ydHMtcGxheWVyLXdpZHRoKSwgMzE1cHgpKS8yKTttYXJnaW4tcmlnaHQ6bWF4KHZhcigtLXl0ZC1zaG9ydHMtcGxheWVyLXdpZHRoKSwzMTVweCk7cGFkZGluZy1yaWdodDowO2JhY2tncm91bmQtaW1hZ2U6bm9uZTtmaWx0ZXI6dW5zZXQ7bWluLXdpZHRoOjM2MHB4O21heC13aWR0aDo0ODBweDtwYWRkaW5nLWxlZnQ6MTZweH15dG0tcmVlbC1wbGF5ZXItb3ZlcmxheS1yZW5kZXJlcltpcy13ZWJdW2V4dHJhY3Qtb3ZlcmxheV0gLnJlZWwtcGxheWVyLW92ZXJsYXktYWN0aW9uc3stbW96LWJveC1mbGV4OjE7ZmxleC1ncm93OjF9eXRtLXJlZWwtcGxheWVyLW92ZXJsYXktcmVuZGVyZXIgYnV0dG9uOm5vdChbYXJpYS1wcmVzc2VkPXRydWVdKSBjMy1pY29ue2ZpbHRlcjpkcm9wLXNoYWRvdygwIDFweCA2cHggcmdiYSgwLDAsMCwuNCkpfXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyIC55dFNwZWNCdXR0b25TaGFwZVdpdGhMYWJlbExhYmVse3RleHQtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLDAuOCl9LnJlZWwtcGxheWVyLW92ZXJsYXktbWFpbi1jb250ZW50e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWZsZXg6MTtmbGV4LWdyb3c6MTstbW96LWJveC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZW5kOy1tb3otYm94LWFsaWduOnN0cmV0Y2g7YWxpZ24taXRlbXM6c3RyZXRjaH0ucmVlbC1wbGF5ZXItb3ZlcmxheS1tZXRhZGF0YXtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtZmxleDoxO2ZsZXg6MSAxIDAlO2FsaWduLXNlbGY6ZmxleC1lbmQ7LW1vei1ib3gtcGFjazplbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO21pbi13aWR0aDowO21hcmdpbjowIDAgMTZweCAxNnB4fXl0bS1yZWVsLXBsYXllci1vdmVybGF5LXJlbmRlcmVyW2RhdGEtaGFzLWluZm8tcGFuZWw9dHJ1ZV0rLlByb2dyZXNzQmFyU2hvd2luZ3twYWRkaW5nLXRvcDoxNnB4fS5yZWVsLXBsYXllci1vdmVybGF5LW1ldGFkYXRhIHl0LW1ldGFkYXRhLWJhZGdlLXJlbmRlcmVye2hlaWdodDoyNHB4O3BhZGRpbmc6M3B4IDRweCAzcHggMH0ucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25ze2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjowIDRweCAxNnB4IDRweDstbW96LWJveC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LnJlZWwtcGxheWVyLW92ZXJsYXktdG9wLWJhcntoZWlnaHQ6NDhweDt3aWR0aDo0OHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctdG9wOjJweH0ucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIC5idXR0b24td2l0aC1pY29ue21hcmdpbjowIWltcG9ydGFudDttaW4td2lkdGg6MDt0ZXh0LXRyYW5zZm9ybTpub25lfS5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgLmJ1dHRvbi13aXRoLWljb24gLmJ1dHRvbi1yZW5kZXJlci10ZXh0e21hcmdpbi10b3A6N3B4O21heC13aWR0aDo2NHB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIHl0bS1idXR0b24tcmVuZGVyZXJ7bWF4LXdpZHRoOjY0cHh9LnJlZWwtcGxheWVyLW92ZXJsYXktYWN0aW9ucyB5dG0tYm90dG9tLXNoZWV0LXJlbmRlcmVyLC5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgeXRtLW1lbnUtcmVuZGVyZXJ7bWFyZ2luLXRvcDo0cHg7ZGlzcGxheTpibG9jazstbW96LWJveC1mbGV4OjE7ZmxleDoxO3BhZGRpbmctcmlnaHQ6NHB4O3BhZGRpbmctdG9wOjRweDtwYWRkaW5nLWJvdHRvbTo4cHh9LnJlZWwtcGxheWVyLW92ZXJsYXktYWN0aW9ucyBwaXZvdC1idXR0b24tdmlldy1tb2RlbCwucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIHl0bS1idXR0b24tcmVuZGVyZXIsLnJlZWwtcGxheWVyLW92ZXJsYXktYWN0aW9ucyB5dG0tdG9nZ2xlLWJ1dHRvbi1yZW5kZXJlcntkaXNwbGF5OmJsb2NrO3BhZGRpbmctdG9wOjRweDtwYWRkaW5nLWJvdHRvbTo4cHg7bWFyZ2luOjB9QG1lZGlhIChtYXgtd2lkdGg6OTMwcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKXsucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zey1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSA0OHB4KX0ucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIHBpdm90LWJ1dHRvbi12aWV3LW1vZGVsLC5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgeXRtLWJ1dHRvbi1yZW5kZXJlciwucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIHl0bS10b2dnbGUtYnV0dG9uLXJlbmRlcmVye2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDouM2VtfS5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgeXRtLWJvdHRvbS1zaGVldC1yZW5kZXJlciwucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIHl0bS1tZW51LXJlbmRlcmVye2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDowfX0ucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIHl0bS1tZW51LXJlbmRlcmVyIC5pY29uLWJ1dHRvbntoZWlnaHQ6NDhweDt3aWR0aDo0OHB4fS5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgYnV0dG9uPi5idXR0b24td2l0aC1pY29uLWlubmVyey1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn15dG0tcmVlbC1wbGF5ZXItb3ZlcmxheS1yZW5kZXJlciB5dG0tcHJvZmlsZS1pY29ue2JvcmRlcjoxcHggc29saWQgI2ZmZn1AbWVkaWEgKG1heC1oZWlnaHQ6NDExcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKXsucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zIC5idXR0b24td2l0aC1pY29uLC5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgeXRtLWZvcmNlZC1tdXRlLW1lc3NhZ2UtcmVuZGVyZXJ7bWluLWhlaWdodDo0MHB4fS5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgLmJ1dHRvbi13aXRoLWljb24gLmJ1dHRvbi1yZW5kZXJlci10ZXh0LC5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgLnl0QXR0cmlidXRlZFN0cmluZ0hvc3R7ZGlzcGxheTpub25lfS5yZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMgeXRtLW1lbnUtcmVuZGVyZXIgLmljb24tYnV0dG9ue2hlaWdodDozMnB4fX0ubG9nby1pbi1wbGF5ZXIsLm1vYmlsZS10b3BiYXItbG9nb3tjb2xvcjojZjAzO3BhZGRpbmc6MCAxMnB4O3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7bWFyZ2luLWxlZnQ6LTFweH0ubG9nby1pbi1wbGF5ZXIuZnVsbC1sb2dvLC5tb2JpbGUtdG9wYmFyLWxvZ28uZnVsbC1sb2dve3dpZHRoOjkzcHg7aGVpZ2h0OjIwcHg7Y29sb3I6IzAwMDttYXJnaW4tbGVmdDowfS5sb2dvLWluLXBsYXllci5zaG9ydHMtbG9nbywubW9iaWxlLXRvcGJhci1sb2dvLnNob3J0cy1sb2dve3dpZHRoOjczcHg7aGVpZ2h0OjI1cHg7Y29sb3I6IzAwMDttYXJnaW4tbGVmdDowfS5sb2dvLWluLXBsYXllci5mdWxsLWxvZ28tcmVkLC5tb2JpbGUtdG9wYmFyLWxvZ28uZnVsbC1sb2dvLXJlZHt3aWR0aDoxMDFweH0ubG9nby1pbi1wbGF5ZXItZW5kcG9pbnQsLm1vYmlsZS10b3BiYXItaGVhZGVyLWVuZHBvaW50e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjQ4cHg7dGV4dC1hbGlnbjpsZWZ0fS5sb2dvLWluLXBsYXllci5mdWxsLWxvZ297Y29sb3I6I2ZmZn0ubW9ub2Nocm9tYXRpYyBzdmcgcGF0aHtmaWxsOiNmZmZ9eXRtLXN1YnNjcmliZS1idXR0b24tcmVuZGVyZXJ7ZGlzcGxheTpibG9ja315dG0tc3Vic2NyaWJlLWJ1dHRvbi1yZW5kZXJlciAuYnV0dG9uLXJlbmRlcmVyLWljb257aGVpZ2h0OjE2cHg7d2lkdGg6MTZweH0ubW9kZXJuLXN1YnNjcmliZS1idXR0b257ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uc3Vic2NyaWJlLWJ1dHRvbi1jb3VudHtjb2xvcjojNjA2MDYwO2ZvbnQtc2l6ZToxLjRyZW07bWFyZ2luOjAgOHB4fUBrZXlmcmFtZXMgbm90aWZpY2F0aW9uLWJlbGwtZmFkZS1pbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZX19Lm5vdGlmaWNhdGlvbi1iZWxsLWNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NTtoZWlnaHQ6MzZweDtib3JkZXItcmFkaXVzOjUwJTtvdmVyZmxvdzpoaWRkZW59Lm5vdGlmaWNhdGlvbi1iZWxsLWNvbnRhaW5lci5oaWRkZW57ZGlzcGxheTpub25lfS5ub3RpZmljYXRpb24tYmVsbHtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6LTJweDthbmltYXRpb246bm90aWZpY2F0aW9uLWJlbGwtZmFkZS1pbiAuMnMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSl9Lm1vZGVybi1zdWJzY3JpYmUtYnV0dG9uLWNvbnRhaW5lcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS5tb2Rlcm4tc3Vic2NyaWJlLWJ1dHRvbiAueXRBdHRyaWJ1dGVkU3RyaW5nSG9zdHt0cmFuc2l0aW9uOmFsbCAuMnM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7cGFkZGluZy1sZWZ0OjB9Lll0bVZpZGVvSW5mb0V4cGFuZGVkIC5tb2Rlcm4tc3Vic2NyaWJlLWJ1dHRvbiAueXRBdHRyaWJ1dGVkU3RyaW5nSG9zdCwueXRtVmlkZW9JbmZvRXhwYW5kZWQgLm1vZGVybi1zdWJzY3JpYmUtYnV0dG9uIC55dEF0dHJpYnV0ZWRTdHJpbmdIb3N0e3RyYW5zaXRpb246bm9uZX0ud2l0aC1ub3RpZmljYXRpb24tYmVsbCAueXRBdHRyaWJ1dGVkU3RyaW5nSG9zdHtwYWRkaW5nLWxlZnQ6MjRweH0ueXRDb3JlSW1hZ2VIb3N0e3Zpc2liaWxpdHk6aGlkZGVuO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi1oZWlnaHQ6MXB4O21pbi13aWR0aDoxcHh9Lnl0Q29yZUltYWdlTG9hZGVke3Zpc2liaWxpdHk6aW5oZXJpdH0ueXRDb3JlSW1hZ2VGaWxsUGFyZW50SGVpZ2h0e2hlaWdodDoxMDAlfS55dENvcmVJbWFnZUZpbGxQYXJlbnRXaWR0aHt3aWR0aDoxMDAlfS55dENvcmVJbWFnZU9iamVjdFBvc2l0aW9uVG9wTGVmdHtvYmplY3QtcG9zaXRpb246dG9wIGxlZnR9Lnl0Q29yZUltYWdlT2JqZWN0UG9zaXRpb25Ub3BSaWdodHtvYmplY3QtcG9zaXRpb246dG9wIHJpZ2h0fS55dENvcmVJbWFnZUNvbnRlbnRNb2RlU2NhbGVUb0ZpbGx7b2JqZWN0LWZpdDpmaWxsfS55dENvcmVJbWFnZUNvbnRlbnRNb2RlU2NhbGVBc3BlY3RGaXR7b2JqZWN0LWZpdDpjb250YWlufS55dENvcmVJbWFnZUNvbnRlbnRNb2RlU2NhbGVBc3BlY3RGaWxse29iamVjdC1maXQ6Y292ZXJ9Lnl0Q29yZUltYWdlQ29udGVudE1vZGVDZW50ZXJ7b2JqZWN0LWZpdDpub25lO29iamVjdC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyfS55dENvcmVJbWFnZUZsaXBSdGx7dHJhbnNmb3JtOnNjYWxlWCgtMSl9Lnl0Q29yZUltYWdlR3JhZGllbnRDb250YWluZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ueXRDb3JlSW1hZ2VHcmFkaWVudHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZX06cm9vdHstLXl0LWF0dHJpYnV0ZWQtc3RyaW5nLWxpbmstaG92ZXItY29sb3I6dW5zZXR9Lnl0QXR0cmlidXRlZFN0cmluZ0lubGluZUJsb2NrTW9ke2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dEF0dHJpYnV0ZWRTdHJpbmdJbWFnZUFsaWdubWVudEJvdHRvbXt2ZXJ0aWNhbC1hbGlnbjpib3R0b219Lnl0QXR0cmlidXRlZFN0cmluZ0ltYWdlQWxpZ25tZW50QmFzZWxpbmV7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9Lnl0QXR0cmlidXRlZFN0cmluZ0ltYWdlQWxpZ25tZW50VmVydGljYWxDZW50ZXJ7dmVydGljYWwtYWxpZ246bWlkZGxlO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotLjA3ZW19Lnl0QXR0cmlidXRlZFN0cmluZ0xpc3RHcm91cHstbW96LXBhZGRpbmctc3RhcnQ6MjBweDtwYWRkaW5nLWlubGluZS1zdGFydDoyMHB4fS55dEF0dHJpYnV0ZWRTdHJpbmdMaW5re3RleHQtZGVjb3JhdGlvbjpub25lO2Rpc3BsYXk6aW5saW5lfS55dEF0dHJpYnV0ZWRTdHJpbmdMaW5rQ2FsbFRvQWN0aW9uQ29sb3J7Y29sb3I6IzA2NWZkNH0ueXRBdHRyaWJ1dGVkU3RyaW5nTGlua092ZXJsYXlDYWxsVG9BY3Rpb25Db2xvcntjb2xvcjojM2VhNmZmfS55dEF0dHJpYnV0ZWRTdHJpbmdMaW5rW3JvbGU9YnV0dG9uXXtjdXJzb3I6cG9pbnRlcn0ueXRBdHRyaWJ1dGVkU3RyaW5nTGlua0luaGVyaXRDb2xvciAueXRBdHRyaWJ1dGVkU3RyaW5nTGlua0NhbGxUb0FjdGlvbkNvbG9ye2NvbG9yOmluaGVyaXR9Lnl0QXR0cmlidXRlZFN0cmluZ0xpbmtJbmhlcml0Q29sb3IgLnl0QXR0cmlidXRlZFN0cmluZ0xpbmtDYWxsVG9BY3Rpb25Db2xvcjpob3Zlcntjb2xvcjp2YXIoLS15dC1hdHRyaWJ1dGVkLXN0cmluZy1saW5rLWhvdmVyLWNvbG9yKX0ueXRBdHRyaWJ1dGVkU3RyaW5nRWxsaXBzaXNUcnVuY2F0ZXtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ueXRBdHRyaWJ1dGVkU3RyaW5nV2hpdGVTcGFjZU5vV3JhcHt3aGl0ZS1zcGFjZTpub3dyYXB9Lnl0QXR0cmlidXRlZFN0cmluZ1doaXRlU3BhY2VQcmVXcmFwe3doaXRlLXNwYWNlOnByZS13cmFwfS55dEF0dHJpYnV0ZWRTdHJpbmdJZ25vcmVTcGxpdExpbmVze3doaXRlLXNwYWNlOm5vcm1hbH0ueXRBdHRyaWJ1dGVkU3RyaW5nVGV4dEFsaWdubWVudExlZnR7ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmxlZnR9Lnl0QXR0cmlidXRlZFN0cmluZ1RleHRBbGlnbm1lbnRSaWdodHtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246cmlnaHR9Lnl0QXR0cmlidXRlZFN0cmluZ1RleHRBbGlnbm1lbnRDZW50ZXJ7ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcn0ueXRBdHRyaWJ1dGVkU3RyaW5nVGV4dEFsaWdubWVudEp1c3RpZmllZHtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246anVzdGlmeX0ueXRBdHRyaWJ1dGVkU3RyaW5nVGV4dEFsaWdubWVudExheW91dFN0YXJ0e2Rpc3BsYXk6YmxvY2s7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS55dEF0dHJpYnV0ZWRTdHJpbmdUZXh0QWxpZ25tZW50VW5rbm93bntkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246aW5oZXJpdH0ueXRBdHRyaWJ1dGVkU3RyaW5nV29yZFdyYXBwaW5ne292ZXJmbG93LXdyYXA6YW55d2hlcmV9Lnl0QXR0cmlidXRlZFN0cmluZ1VuZGVybGluZWR7LW1vei10ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmU7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lfS55dEF0dHJpYnV0ZWRTdHJpbmdTdHJpa2V0aHJvdWdoey1tb3otdGV4dC1kZWNvcmF0aW9uLWxpbmU6bGluZS10aHJvdWdoO3RleHQtZGVjb3JhdGlvbi1saW5lOmxpbmUtdGhyb3VnaH0ueXRBdHRyaWJ1dGVkU3RyaW5nVW5kZXJsaW5lU3RyaWtldGhyb3VnaHstbW96LXRleHQtZGVjb3JhdGlvbi1saW5lOnVuZGVybGluZSBsaW5lLXRocm91Z2g7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lIGxpbmUtdGhyb3VnaH0ueXRBdHRyaWJ1dGVkU3RyaW5nTGluZVN0eWxlTm9uZXt0ZXh0LWRlY29yYXRpb246bm9uZX0ueXRBdHRyaWJ1dGVkU3RyaW5nTGluZVN0eWxlU2luZ2xley1tb3otdGV4dC1kZWNvcmF0aW9uLXN0eWxlOnNvbGlkO3RleHQtZGVjb3JhdGlvbi1zdHlsZTpzb2xpZH0ueXRBdHRyaWJ1dGVkU3RyaW5nTGluZVN0eWxlRG90ey1tb3otdGV4dC1kZWNvcmF0aW9uLXN0eWxlOmRvdHRlZDt0ZXh0LWRlY29yYXRpb24tc3R5bGU6ZG90dGVkfS55dEF0dHJpYnV0ZWRTdHJpbmdCYXNlbGluZU9mZnNldFN1YnNjcmlwdHt2ZXJ0aWNhbC1hbGlnbjpzdWJ9Lnl0QXR0cmlidXRlZFN0cmluZ0Jhc2VsaW5lT2Zmc2V0U3VwZXJzY3JpcHR7dmVydGljYWwtYWxpZ246c3VwZXJ9Lnl0QXR0cmlidXRlZFN0cmluZ0Jhc2VsaW5lT2Zmc2V0VW5rbm93bnt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX0ueXRBdHRyaWJ1dGVkU3RyaW5nSXRhbGljaXplZHtmb250LXN0eWxlOml0YWxpY30ueXRBdHRyaWJ1dGVkU3RyaW5nSGVhZGluZzF7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjhyZW07bGluZS1oZWlnaHQ6Mi42cmVtO2ZvbnQtd2VpZ2h0OjUwMH0ueXRBdHRyaWJ1dGVkU3RyaW5nSGVhZGluZzJ7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6Mi4ycmVtO2ZvbnQtd2VpZ2h0OjUwMH0ueXRBdHRyaWJ1dGVkU3RyaW5nSGVhZGluZzN7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MnJlbTtmb250LXdlaWdodDo1MDB9Lnl0QnV0dG9uT3JBbmNob3JIb3N0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS55dEJ1dHRvbk9yQW5jaG9yQnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlcjpub25lO2NvbG9yOmluaGVyaXQ7cGFkZGluZzowO21hcmdpbjowO2N1cnNvcjpwb2ludGVyO291dGxpbmUtd2lkdGg6MDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7YmFja2dyb3VuZDpub25lO3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtYWxpZ246dW5zZXQ7d2lkdGg6MTAwJTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9Lnl0QnV0dG9uT3JBbmNob3JBbmNob3J7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6aW5oZXJpdDtwYWRkaW5nOjA7bWFyZ2luOjA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCV9Lnl0UmFkaW9TaGFwZUhvc3R7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9ja30ueXRSYWRpb1NoYXBlSW5wdXR7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTouMDAwMDAxO21hcmdpbjowO2xlZnQ6MTJweDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9Lnl0UmFkaW9TaGFwZUxhYmVsQ29udGFpbmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDpob3Jpem9udGFsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLWhlaWdodDo0OHB4O3dpZHRoOjEwMCU7Y29sb3I6IzAzMDMwM30ueXRSYWRpb1NoYXBlS2V5Ym9hcmRGb2N1c2Vke291dGxpbmU6MnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtvdXRsaW5lLW9mZnNldDotMnB4O2JvcmRlci1yYWRpdXM6OHB4fS55dFJhZGlvU2hhcGVEaXNhYmxlZHtjb2xvcjojOTA5MDkwfS55dFJhZGlvU2hhcGVMYWJlbHstbW96LWJveC1mbGV4OjE7ZmxleC1ncm93OjE7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1yaWdodDoxMnB4O2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS42cmVtO2xpbmUtaGVpZ2h0OjIuMnJlbTtmb250LXdlaWdodDo0MDB9aW5wdXQ6Y2hlY2tlZCtsYWJlbD4ueXRSYWRpb1NoYXBlUmFkaW8+OmZpcnN0LWNoaWxke2Rpc3BsYXk6bm9uZX1pbnB1dDpub3QoOmNoZWNrZWQpK2xhYmVsPi55dFJhZGlvU2hhcGVSYWRpbz46bGFzdC1jaGlsZHtkaXNwbGF5Om5vbmV9Lnl0UmFkaW9TaGFwZVJhZGlvRGVmYXVsdFN0eWxle2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3BhZGRpbmc6MCAxMnB4O2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9aW5wdXQ6bm90KDpjaGVja2VkKStsYWJlbD4ueXRSYWRpb1NoYXBlQ2hlY2tJY29uPjpmaXJzdC1jaGlsZHt2aXNpYmlsaXR5OmhpZGRlbn0ueXRSYWRpb1NoYXBlQ29tcGFjdHttaW4taGVpZ2h0OjQwcHh9Lnl0UmFkaW9TaGFwZUV2ZW50UGFzc3Rocm91Z2h7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRSYWRpb1NoYXBlVGFwcGFibGV7Y3Vyc29yOnBvaW50ZXJ9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxIb3N0e2Rpc3BsYXk6YmxvY2s7Y29sb3I6IzAzMDMwM30ueXRMaXN0SXRlbVZpZXdNb2RlbEhvc3Q6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxIaWRkZW57ZGlzcGxheTpub25lfS55dExpc3RJdGVtVmlld01vZGVsS2V5Ym9hcmRGb2N1c2VkOmZvY3VzLXdpdGhpbntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4wNSk7b3V0bGluZToycHggc29saWQgY3VycmVudENvbG9yO291dGxpbmUtb2Zmc2V0Oi0ycHg7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxCdXR0b25PckFuY2hvcnt3aWR0aDphdXRvfS55dExpc3RJdGVtVmlld01vZGVsQnV0dG9uT3JBbmNob3I6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxOb1RyYWlsaW5nVGV4dCAueXRMaXN0SXRlbVZpZXdNb2RlbEJ1dHRvbk9yQW5jaG9yLC55dExpc3RJdGVtVmlld01vZGVsTm9UcmFpbGluZ1RleHQgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUZXh0V3JhcHBlcnttaW4td2lkdGg6MH0ueXRMaXN0SXRlbVZpZXdNb2RlbFRleHRXcmFwcGVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbW96LWJveC1mbGV4OjE7ZmxleC1ncm93OjE7bWluLWhlaWdodDo0NHB4Oy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZVdyYXBwZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRMaXN0SXRlbVZpZXdNb2RlbFRpdGxle2NvbG9yOiMwMzAzMDM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS42cmVtO2xpbmUtaGVpZ2h0OjIuMnJlbTtmb250LXdlaWdodDo0MDA7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7bWF4LWhlaWdodDo0LjRyZW07ZGlzcGxheTpib3g7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9QHN1cHBvcnRzICgtd2Via2l0LWxpbmUtY2xhbXA6MSl7Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZXstd2Via2l0LWxpbmUtY2xhbXA6MjttYXgtaGVpZ2h0Om5vbmV9fS55dExpc3RJdGVtVmlld01vZGVsVGl0bGV7bWF4LWhlaWdodDo0LjRyZW19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxTaW5nbGVMaW5lVGl0bGV7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6Mi4ycmVtO2ZvbnQtd2VpZ2h0OjQwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjIuMnJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRMaXN0SXRlbVZpZXdNb2RlbFNpbmdsZUxpbmVUaXRsZXstd2Via2l0LWxpbmUtY2xhbXA6MTttYXgtaGVpZ2h0Om5vbmV9fS55dExpc3RJdGVtVmlld01vZGVsU2luZ2xlTGluZVRpdGxle21heC1oZWlnaHQ6Mi4ycmVtfS55dExpc3RJdGVtVmlld01vZGVsU3VidGl0bGV7Y29sb3I6IzYwNjA2MDtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuMnJlbTtsaW5lLWhlaWdodDoxLjhyZW07Zm9udC13ZWlnaHQ6NDAwfS55dExpc3RJdGVtVmlld01vZGVsV2l0aEJhZGdle21hcmdpbi1sZWZ0OjhweH0ueXRMaXN0SXRlbVZpZXdNb2RlbFN1YnRpdGxlQ29udGFpbmVye21hcmdpbi10b3A6MnB4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDpob3Jpem9udGFsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxTdXBlcmxhYmVse2NvbG9yOiM2MDYwNjA7bWFyZ2luLWJvdHRvbToycHg7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS44cmVtO2ZvbnQtd2VpZ2h0OjQwMH0ueXRMaXN0SXRlbVZpZXdNb2RlbFNlbGVjdGlvblRleHR7Y29sb3I6IzYwNjA2MDttYXJnaW4tbGVmdDo0cHh9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZ1NlbGVjdGlvblRleHR7bWFyZ2luLWxlZnQ6MTJweDtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjQwMH0ueXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nTGFiZWx7Y29sb3I6IzAzMDMwMztmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNnJlbTtsaW5lLWhlaWdodDoyLjJyZW07Zm9udC13ZWlnaHQ6NDAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6NC40cmVtO2Rpc3BsYXk6Ym94O2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm9ybWFsfUBzdXBwb3J0cyAoLXdlYmtpdC1saW5lLWNsYW1wOjEpey55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdMYWJlbHstd2Via2l0LWxpbmUtY2xhbXA6MjttYXgtaGVpZ2h0Om5vbmV9fS55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdMYWJlbHttYXgtaGVpZ2h0OjQuNHJlbX0ueXRMaXN0SXRlbVZpZXdNb2RlbE5ld0NvbnRlbnRJbmRpY2F0b3J7d2lkdGg6NHB4O2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjojMDY1ZmQ0fS55dExpc3RJdGVtVmlld01vZGVsQ2hldnJvbkljb257aGVpZ2h0OjE4cHg7d2lkdGg6MThweDtmbGV4LXNocmluazowfS55dExpc3RJdGVtVmlld01vZGVsTGVhZGluZ3ttYXJnaW4tcmlnaHQ6MTJweH0ueXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nOmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjEycHh9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZzpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDoxMnB4fS55dExpc3RJdGVtVmlld01vZGVsUHJpb3JpdGl6ZVRyYWlsaW5nIC55dExpc3RJdGVtVmlld01vZGVsQnV0dG9uT3JBbmNob3IsLnl0TGlzdEl0ZW1WaWV3TW9kZWxQcmlvcml0aXplVHJhaWxpbmcgLnl0TGlzdEl0ZW1WaWV3TW9kZWxTdWJ0aXRsZUNvbnRhaW5lciwueXRMaXN0SXRlbVZpZXdNb2RlbFByaW9yaXRpemVUcmFpbGluZyAueXRMaXN0SXRlbVZpZXdNb2RlbFRleHRXcmFwcGVyLC55dExpc3RJdGVtVmlld01vZGVsUHJpb3JpdGl6ZVRyYWlsaW5nIC55dExpc3RJdGVtVmlld01vZGVsVGl0bGVXcmFwcGVye21pbi13aWR0aDowfS55dExpc3RJdGVtVmlld01vZGVsUHJpb3JpdGl6ZVRyYWlsaW5nIC55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmcsLnl0TGlzdEl0ZW1WaWV3TW9kZWxQcmlvcml0aXplVHJhaWxpbmcgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZ0xhYmVsLC55dExpc3RJdGVtVmlld01vZGVsUHJpb3JpdGl6ZVRyYWlsaW5nIC55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdTZWxlY3Rpb25UZXh0e2ZsZXgtc2hyaW5rOjB9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxCdXR0b25Db250YWluZXIsLnl0TGlzdEl0ZW1WaWV3TW9kZWxJbWFnZUNvbnRhaW5lcnthbGlnbi1zZWxmOnN0YXJ0O2ZsZXgtc2hyaW5rOjA7aGVpZ2h0OjQ0cHg7bWluLXdpZHRoOjM2cHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS55dExpc3RJdGVtVmlld01vZGVsQXZhdGFyLC55dExpc3RJdGVtVmlld01vZGVsSW1hZ2V7bWF4LWhlaWdodDozNnB4fS55dExpc3RJdGVtVmlld01vZGVsQWNjZXNzb3J5e2JvcmRlci1yYWRpdXM6MnB4O292ZXJmbG93OmhpZGRlbjtjb2xvcjojMDMwMzAzfS55dExpc3RJdGVtVmlld01vZGVsTGF5b3V0V3JhcHBlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0TGlzdEl0ZW1WaWV3TW9kZWxCb3R0b21BY2Nlc3Nvcnl7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3BhZGRpbmctdG9wOjRweH0ueXRMaXN0SXRlbVZpZXdNb2RlbE1haW5Db250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRMaXN0SXRlbVZpZXdNb2RlbFN1YnRpdGxlQmFkZ2VXcmFwcGVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxTdWJ0aXRsZUJhZGdlV3JhcHBlcjpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDo4cHh9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb250YWluZXJ7cGFkZGluZzoycHggMTZweDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOjhweH0ueXRMaXN0SXRlbVZpZXdNb2RlbERpc2FibGVIb3Jpem9udGFsUGFkZGluZ3twYWRkaW5nOjJweCAwfS55dExpc3RJdGVtVmlld01vZGVsSW5Qb3B1cHtib3JkZXItcmFkaXVzOjB9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxEaXNhYmxlZHtjb2xvcjojNjA2MDYwO3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxEaXNhYmxlZCAueXRMaXN0SXRlbVZpZXdNb2RlbEFjY2Vzc29yeSwueXRMaXN0SXRlbVZpZXdNb2RlbERpc2FibGVkIC55dExpc3RJdGVtVmlld01vZGVsVGl0bGV7Y29sb3I6IzYwNjA2MH0ueXRMaXN0SXRlbVZpZXdNb2RlbFRhcHBhYmxle2N1cnNvcjpwb2ludGVyOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMDUpfS55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGUueXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHkgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZXtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNnJlbTtsaW5lLWhlaWdodDoyLjJyZW07Zm9udC13ZWlnaHQ6NTAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6NC40cmVtO2Rpc3BsYXk6Ym94O2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm9ybWFsfUBzdXBwb3J0cyAoLXdlYmtpdC1saW5lLWNsYW1wOjEpey55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGUueXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHkgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZXstd2Via2l0LWxpbmUtY2xhbXA6MjttYXgtaGVpZ2h0Om5vbmV9fS55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGUueXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHkgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZXttYXgtaGVpZ2h0OjQuNHJlbX0ueXRMaXN0SXRlbVZpZXdNb2RlbFRhcHBhYmxlLnl0TGlzdEl0ZW1WaWV3TW9kZWxBY3Rpb25UeXBvZ3JhcGh5IC55dExpc3RJdGVtVmlld01vZGVsVGl0bGUueXRMaXN0SXRlbVZpZXdNb2RlbFNpbmdsZUxpbmVUaXRsZXtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNnJlbTtsaW5lLWhlaWdodDoyLjJyZW07Zm9udC13ZWlnaHQ6NTAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6Mi4ycmVtO2Rpc3BsYXk6Ym94O2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm9ybWFsfUBzdXBwb3J0cyAoLXdlYmtpdC1saW5lLWNsYW1wOjEpey55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGUueXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHkgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZS55dExpc3RJdGVtVmlld01vZGVsU2luZ2xlTGluZVRpdGxley13ZWJraXQtbGluZS1jbGFtcDoxO21heC1oZWlnaHQ6bm9uZX19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUYXBwYWJsZS55dExpc3RJdGVtVmlld01vZGVsQWN0aW9uVHlwb2dyYXBoeSAueXRMaXN0SXRlbVZpZXdNb2RlbFRpdGxlLnl0TGlzdEl0ZW1WaWV3TW9kZWxTaW5nbGVMaW5lVGl0bGV7bWF4LWhlaWdodDoyLjJyZW19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUYXBwYWJsZS55dExpc3RJdGVtVmlld01vZGVsQWN0aW9uVHlwb2dyYXBoeSAueXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nTGFiZWx7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6Mi4ycmVtO2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjQuNHJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRMaXN0SXRlbVZpZXdNb2RlbFRhcHBhYmxlLnl0TGlzdEl0ZW1WaWV3TW9kZWxBY3Rpb25UeXBvZ3JhcGh5IC55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdMYWJlbHstd2Via2l0LWxpbmUtY2xhbXA6MjttYXgtaGVpZ2h0Om5vbmV9fS55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGUueXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHkgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZ0xhYmVse21heC1oZWlnaHQ6NC40cmVtfS55dExpc3RJdGVtVmlld01vZGVsSGFzU3VidGl0bGV7cGFkZGluZzo2cHggMTZweH0ueXRMaXN0SXRlbVZpZXdNb2RlbEhhc1N1YnRpdGxlLnl0TGlzdEl0ZW1WaWV3TW9kZWxEaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmd7cGFkZGluZzo2cHggMH0ueXRMaXN0SXRlbVZpZXdNb2RlbENvbXBhY3QgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUZXh0V3JhcHBlcnttaW4taGVpZ2h0OjM2cHh9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0IC55dExpc3RJdGVtVmlld01vZGVsVGl0bGV7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NDAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6NHJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRMaXN0SXRlbVZpZXdNb2RlbENvbXBhY3QgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZXstd2Via2l0LWxpbmUtY2xhbXA6MjttYXgtaGVpZ2h0Om5vbmV9fS55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdCAueXRMaXN0SXRlbVZpZXdNb2RlbFRpdGxle21heC1oZWlnaHQ6NHJlbX0ueXRMaXN0SXRlbVZpZXdNb2RlbENvbXBhY3QgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZS55dExpc3RJdGVtVmlld01vZGVsU2luZ2xlTGluZVRpdGxle2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NDAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6MnJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRMaXN0SXRlbVZpZXdNb2RlbENvbXBhY3QgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZS55dExpc3RJdGVtVmlld01vZGVsU2luZ2xlTGluZVRpdGxley13ZWJraXQtbGluZS1jbGFtcDoxO21heC1oZWlnaHQ6bm9uZX19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0IC55dExpc3RJdGVtVmlld01vZGVsVGl0bGUueXRMaXN0SXRlbVZpZXdNb2RlbFNpbmdsZUxpbmVUaXRsZXttYXgtaGVpZ2h0OjJyZW19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0IC55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdTZWxlY3Rpb25UZXh0e2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDB9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0IC55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdMYWJlbHtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjQwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjRyZW07ZGlzcGxheTpib3g7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9QHN1cHBvcnRzICgtd2Via2l0LWxpbmUtY2xhbXA6MSl7Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0IC55dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdMYWJlbHstd2Via2l0LWxpbmUtY2xhbXA6MjttYXgtaGVpZ2h0Om5vbmV9fS55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdCAueXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nTGFiZWx7bWF4LWhlaWdodDo0cmVtfS55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdC55dExpc3RJdGVtVmlld01vZGVsQWN0aW9uVHlwb2dyYXBoeS55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGUgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUaXRsZXtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjRyZW07ZGlzcGxheTpib3g7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9QHN1cHBvcnRzICgtd2Via2l0LWxpbmUtY2xhbXA6MSl7Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0Lnl0TGlzdEl0ZW1WaWV3TW9kZWxBY3Rpb25UeXBvZ3JhcGh5Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUYXBwYWJsZSAueXRMaXN0SXRlbVZpZXdNb2RlbFRpdGxley13ZWJraXQtbGluZS1jbGFtcDoyO21heC1oZWlnaHQ6bm9uZX19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0Lnl0TGlzdEl0ZW1WaWV3TW9kZWxBY3Rpb25UeXBvZ3JhcGh5Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUYXBwYWJsZSAueXRMaXN0SXRlbVZpZXdNb2RlbFRpdGxle21heC1oZWlnaHQ6NHJlbX0ueXRMaXN0SXRlbVZpZXdNb2RlbENvbXBhY3QueXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHkueXRMaXN0SXRlbVZpZXdNb2RlbFRhcHBhYmxlIC55dExpc3RJdGVtVmlld01vZGVsVGl0bGUueXRMaXN0SXRlbVZpZXdNb2RlbFNpbmdsZUxpbmVUaXRsZXtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjJyZW07ZGlzcGxheTpib3g7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9QHN1cHBvcnRzICgtd2Via2l0LWxpbmUtY2xhbXA6MSl7Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0Lnl0TGlzdEl0ZW1WaWV3TW9kZWxBY3Rpb25UeXBvZ3JhcGh5Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUYXBwYWJsZSAueXRMaXN0SXRlbVZpZXdNb2RlbFRpdGxlLnl0TGlzdEl0ZW1WaWV3TW9kZWxTaW5nbGVMaW5lVGl0bGV7LXdlYmtpdC1saW5lLWNsYW1wOjE7bWF4LWhlaWdodDpub25lfX0ueXRMaXN0SXRlbVZpZXdNb2RlbENvbXBhY3QueXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHkueXRMaXN0SXRlbVZpZXdNb2RlbFRhcHBhYmxlIC55dExpc3RJdGVtVmlld01vZGVsVGl0bGUueXRMaXN0SXRlbVZpZXdNb2RlbFNpbmdsZUxpbmVUaXRsZXttYXgtaGVpZ2h0OjJyZW19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0Lnl0TGlzdEl0ZW1WaWV3TW9kZWxBY3Rpb25UeXBvZ3JhcGh5Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUYXBwYWJsZSAueXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nTGFiZWx7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MnJlbTtmb250LXdlaWdodDo1MDA7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7bWF4LWhlaWdodDo0cmVtO2Rpc3BsYXk6Ym94O2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm9ybWFsfUBzdXBwb3J0cyAoLXdlYmtpdC1saW5lLWNsYW1wOjEpey55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdC55dExpc3RJdGVtVmlld01vZGVsQWN0aW9uVHlwb2dyYXBoeS55dExpc3RJdGVtVmlld01vZGVsVGFwcGFibGUgLnl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZ0xhYmVsey13ZWJraXQtbGluZS1jbGFtcDoyO21heC1oZWlnaHQ6bm9uZX19Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0Lnl0TGlzdEl0ZW1WaWV3TW9kZWxBY3Rpb25UeXBvZ3JhcGh5Lnl0TGlzdEl0ZW1WaWV3TW9kZWxUYXBwYWJsZSAueXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nTGFiZWx7bWF4LWhlaWdodDo0cmVtfS55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdCAueXRMaXN0SXRlbVZpZXdNb2RlbENoZXZyb25JY29ue2hlaWdodDoxNnB4O3dpZHRoOjE2cHh9Lnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0IC55dExpc3RJdGVtVmlld01vZGVsQnV0dG9uQ29udGFpbmVye2hlaWdodDozNnB4O21pbi13aWR0aDozNnB4fS55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdCAueXRMaXN0SXRlbVZpZXdNb2RlbEltYWdlQ29udGFpbmVye2hlaWdodDozNnB4O21pbi13aWR0aDoyNHB4fS55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdCAueXRMaXN0SXRlbVZpZXdNb2RlbEltYWdle21heC1oZWlnaHQ6MjRweH0ueXRMaXN0SXRlbVZpZXdNb2RlbENvbXBhY3QueXRMaXN0SXRlbVZpZXdNb2RlbEhhc1N1YnRpdGxlIC55dExpc3RJdGVtVmlld01vZGVsVGV4dFdyYXBwZXJ7bWluLWhlaWdodDo0MnB4fS55dExpc3RJdGVtVmlld01vZGVsQ29tcGFjdC55dExpc3RJdGVtVmlld01vZGVsSGFzU3VidGl0bGUgLnl0TGlzdEl0ZW1WaWV3TW9kZWxCdXR0b25Db250YWluZXIsLnl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0Lnl0TGlzdEl0ZW1WaWV3TW9kZWxIYXNTdWJ0aXRsZSAueXRMaXN0SXRlbVZpZXdNb2RlbEltYWdlQ29udGFpbmVye2hlaWdodDo0MnB4fS55dExpc3RJdGVtVmlld01vZGVsSXNPdmVybGF5LC55dExpc3RJdGVtVmlld01vZGVsSXNPdmVybGF5IC55dExpc3RJdGVtVmlld01vZGVsVGl0bGV7Y29sb3I6I2ZmZn0ueXRMaXN0SXRlbVZpZXdNb2RlbElzT3ZlcmxheSAueXRMaXN0SXRlbVZpZXdNb2RlbFN1YnRpdGxle2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC43KX0ueXRMaXN0SXRlbVZpZXdNb2RlbElzT3ZlcmxheSAueXRMaXN0SXRlbVZpZXdNb2RlbEFjY2Vzc29yeXtjb2xvcjojZmZmfS55dENoZWNrYm94U2hhcGVIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDpob3Jpem9udGFsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLWhlaWdodDo0OHB4O3dpZHRoOjEwMCU7Y29sb3I6IzAzMDMwMztwb3NpdGlvbjpyZWxhdGl2ZX0ueXRDaGVja2JveFNoYXBlSG9zdENvbXBhY3R7bWluLWhlaWdodDo0MHB4fS55dENoZWNrYm94U2hhcGVJbnB1dHtwb3NpdGlvbjphYnNvbHV0ZTttYXJnaW46MDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO29wYWNpdHk6LjAwMDAwMTt6LWluZGV4OjE7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRDaGVja2JveFNoYXBlTGFiZWx7LW1vei1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctcmlnaHQ6MTJweDtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNnJlbTtsaW5lLWhlaWdodDoyLjJyZW07Zm9udC13ZWlnaHQ6NDAwfS55dENoZWNrYm94U2hhcGVEaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmcgLnl0Q2hlY2tib3hTaGFwZUxhYmVse3BhZGRpbmctcmlnaHQ6MH0ueXRDaGVja2JveFNoYXBlQ2hlY2tib3hEZWZhdWx0U3R5bGV7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7cGFkZGluZzowIDEycHh9aW5wdXQ6Y2hlY2tlZH4ueXRDaGVja2JveFNoYXBlQ2hlY2tib3g+OmZpcnN0LWNoaWxke2Rpc3BsYXk6bm9uZX1pbnB1dDpub3QoOmNoZWNrZWQpfi55dENoZWNrYm94U2hhcGVDaGVja2JveD46bGFzdC1jaGlsZHtkaXNwbGF5Om5vbmV9Lnl0U3dpdGNoTGlzdEl0ZW1WaWV3TW9kZWxIb3N0e2Rpc3BsYXk6YmxvY2t9LnRvZ2dsZWFibGVMaXN0SXRlbVZpZXdNb2RlbEhvc3R7ZGlzcGxheTpibG9ja30ueXRMaXN0Vmlld01vZGVsSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59QG1lZGlhIChtYXgtd2lkdGg6Mjk5LjlweCl7Lnl0TGlzdFZpZXdNb2RlbEhvc3RLYWlvc1NwYXROYXZ7cGFkZGluZzozcHh9fS55dERvd25sb2FkTGlzdEl0ZW1WaWV3TW9kZWxIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uWXRtQ29tcGFjdE1lZGlhSXRlbUhvc3R7cGFkZGluZzowIDEycHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXh9Lll0bUNvbXBhY3RNZWRpYUl0ZW1Ib3N0W2RhdGEtaGFzLXN1YnNjcmliZS1idXR0b249dHJ1ZV0gLll0bUNvbXBhY3RNZWRpYUl0ZW1NZXRhZGF0YXtwYWRkaW5nOjA7LW1vei1ib3gtYWxpZ246bm9ybWFsO2FsaWduLWl0ZW1zOm5vcm1hbDttYXJnaW46YXV0bzstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lll0bUNvbXBhY3RNZWRpYUl0ZW1Ib3N0W2RhdGEtaGFzLXN1YnNjcmliZS1idXR0b249dHJ1ZV0gLll0bUNvbXBhY3RNZWRpYUl0ZW1NZXRhZGF0YSB5dG0tbWVudS1yZW5kZXJlcntoZWlnaHQ6MTAwJX0uWXRtQ29tcGFjdE1lZGlhSXRlbUhvc3RbZGF0YS1oYXMtc3Vic2NyaWJlLWJ1dHRvbj10cnVlXSAuWXRtQ29tcGFjdE1lZGlhSXRlbUNvbnRhaW5lcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleH0uWXRtQ29tcGFjdE1lZGlhSXRlbUhvc3RbZGF0YS1oYXMtc3Vic2NyaWJlLWJ1dHRvbj10cnVlXSAudmlkZW8tdGh1bWJuYWlsLWltZ3t3aWR0aDo2N3B4O2hlaWdodDo2N3B4O21pbi1oZWlnaHQ6MDtib3JkZXItcmFkaXVzOjUwJX0uWXRtQ29tcGFjdE1lZGlhSXRlbUhvc3RbZGF0YS1oYXMtc3Vic2NyaWJlLWJ1dHRvbj10cnVlXSAuY2hhbm5lbC1zdWJzY3JpYmUtYnV0dG9ue3BhZGRpbmc6MCAwIDAgOHB4fS5ZdG1Db21wYWN0TWVkaWFJdGVtSG9zdFtkYXRhLWNvbG9yLXBhbGV0dGUtYXBwbGllZD10cnVlXSAuWXRtQ29tcGFjdE1lZGlhSXRlbVN1YmhlYWR7b3BhY2l0eToxfS5ZdG1Db21wYWN0TWVkaWFJdGVtSG9zdD5he2Rpc3BsYXk6YmxvY2t9QG1lZGlhIChtYXgtd2lkdGg6Mjk5cHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKSwobWF4LXdpZHRoOjI5OXB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KXsuWXRtQ29tcGFjdE1lZGlhSXRlbUhvc3R7ZGlzcGxheTpibG9jaztwYWRkaW5nOjAgOHB4fS5ZdG1Db21wYWN0TWVkaWFJdGVtSG9zdCAudmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1jb21wYWN0LnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItY29tcGFjdHt3aWR0aDoxMDAlO2hlaWdodDphdXRvO3BhZGRpbmctYm90dG9tOjU2LjI1JX19Lll0bUNvbXBhY3RNZWRpYUl0ZW1Ib3N0IC5lbmdhZ2VtZW50LWJhcntoZWlnaHQ6MjRweDttYXJnaW4tdG9wOjRweH0uWXRtQ29tcGFjdE1lZGlhSXRlbU11bHRpY29sdW1ue3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH0uWXRtQ29tcGFjdE1lZGlhSXRlbUltYWdle2ZsZXgtc2hyaW5rOjB9Lll0bUNvbXBhY3RNZWRpYUl0ZW1JbWFnZS5zdGFja2Vke3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi10b3A6NnB4fS5ZdG1Db21wYWN0TWVkaWFJdGVtTWV0YWRhdGF7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxO21pbi13aWR0aDowO292ZXJmbG93OnZpc2libGV9QG1lZGlhIChtaW4td2lkdGg6NTUwcHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpLChtaW4td2lkdGg6OTMxcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKXsuWXRtQ29tcGFjdE1lZGlhSXRlbU1ldGFkYXRhW2RhdGEtaGFzLWJhZGdlcz10cnVlXSAuWXRtQ29tcGFjdE1lZGlhSXRlbUhlYWRsaW5le2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfX1AbWVkaWEgKG1heC13aWR0aDo1NDlweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCksKG1heC13aWR0aDo5MzBweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey5ZdG1Db21wYWN0TWVkaWFJdGVtTWV0YWRhdGFbZGF0YS1oYXMtYmFkZ2VzPXRydWVdIC5ZdG1Db21wYWN0TWVkaWFJdGVtSGVhZGxpbmV7bWF4LWhlaWdodDoyLjVlbTstd2Via2l0LWxpbmUtY2xhbXA6Mn0uWXRtQ29tcGFjdE1lZGlhSXRlbU1ldGFkYXRhLmhhcy1lbmdhZ2VtZW50LWJhciAuWXRtQ29tcGFjdE1lZGlhSXRlbUhlYWRsaW5le21heC1oZWlnaHQ6Mi41ZW07LXdlYmtpdC1saW5lLWNsYW1wOjJ9Lll0bUNvbXBhY3RNZWRpYUl0ZW1NZXRhZGF0YS5oYXMtZW5nYWdlbWVudC1iYXJbZGF0YS1oYXMtYmFkZ2VzPXRydWVdIC5ZdG1Db21wYWN0TWVkaWFJdGVtSGVhZGxpbmV7bWF4LWhlaWdodDoxLjI1ZW07LXdlYmtpdC1saW5lLWNsYW1wOjF9fUBtZWRpYSAobWF4LXdpZHRoOjI5OXB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSksKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7Lll0bUNvbXBhY3RNZWRpYUl0ZW1NZXRhZGF0YXtwYWRkaW5nOjRweCAwfS5ZdG1Db21wYWN0TWVkaWFJdGVtTWV0YWRhdGFbZGF0YS1oYXMtYmFkZ2VzPXRydWVdIC5ZdG1Db21wYWN0TWVkaWFJdGVtSGVhZGxpbmV7ZGlzcGxheTotd2Via2l0LWJveDt3aGl0ZS1zcGFjZTpub3JtYWx9fS5ZdG1Db21wYWN0TWVkaWFJdGVtTWV0YWRhdGFDb250ZW50e2Rpc3BsYXk6YmxvY2s7LW1vei1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjAgOHB4fS5ZdG1Db21wYWN0TWVkaWFJdGVtTWV0YWRhdGFDb250ZW50LnN0YWNrZWR7bWFyZ2luLXRvcDo4cHh9QG1lZGlhIChtYXgtd2lkdGg6Mjk5cHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKSwobWF4LXdpZHRoOjI5OXB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KXsuWXRtQ29tcGFjdE1lZGlhSXRlbU1ldGFkYXRhQ29udGVudHtwYWRkaW5nOjB9fS5ZdG1Db21wYWN0TWVkaWFJdGVtSGVhZGxpbmVQbGFjZWhvbGRlcntoZWlnaHQ6MTZweDttYXgtd2lkdGg6MzAwcHg7bWFyZ2luLWJvdHRvbTo4cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMSk7Ym9yZGVyLXJhZGl1czoycHh9Lll0bUNvbXBhY3RNZWRpYUl0ZW1TdWJoZWFke2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO21heC1oZWlnaHQ6Mi41ZW07LXdlYmtpdC1saW5lLWNsYW1wOjI7b3ZlcmZsb3c6aGlkZGVuO2xpbmUtaGVpZ2h0OjEuMjU7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmb250LXdlaWdodDo0MDA7b3BhY2l0eTouNn0uWXRtQ29tcGFjdE1lZGlhSXRlbVN1YmhlYWRQbGFjZWhvbGRlcntoZWlnaHQ6MTZweDt3aWR0aDoxMjBweDttYXJnaW4tYm90dG9tOjNweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4xKTtib3JkZXItcmFkaXVzOjJweH0uWXRtQ29tcGFjdE1lZGlhSXRlbUhlYWRsaW5le2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO21heC1oZWlnaHQ6Mi41ZW07LXdlYmtpdC1saW5lLWNsYW1wOjI7bGluZS1oZWlnaHQ6MS4yNTt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2ZvbnQtd2VpZ2h0OjQwMDttYXJnaW46MCAwIDNweDtmb250LXNpemU6MS4zcmVtO292ZXJmbG93OmhpZGRlbjttYXJnaW46MDtmb250LXNpemU6MS40cmVtfS5ZdG1Db21wYWN0TWVkaWFJdGVtSGVhZGxpbmUgLnl0bS1jaGFubmVsLW5hbWV7Zm9udC1zaXplOjEuNHJlbX1AbWVkaWEgKG1heC13aWR0aDo1NDlweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCksKG1heC13aWR0aDo5MzBweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey5ZdG1Db21wYWN0TWVkaWFJdGVtSGVhZGxpbmV7bWF4LWhlaWdodDozLjc1ZW07LXdlYmtpdC1saW5lLWNsYW1wOjN9fS5ZdG1Db21wYWN0TWVkaWFJdGVtQnlsaW5le2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2ZvbnQtc2l6ZToxLjJyZW19Lll0bUNvbXBhY3RNZWRpYUl0ZW1TdGF0c3tkaXNwbGF5OmlubGluZS1ibG9jazttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Zm9udC1zaXplOjEuMnJlbX0uWXRtQ29tcGFjdE1lZGlhSXRlbVN0YXRzfi5ZdG1Db21wYWN0TWVkaWFJdGVtU3RhdHM6YmVmb3Jle2NvbnRlbnQ6XCLCoMK3wqBcIn0uWXRtQ29tcGFjdE1lZGlhSXRlbURlc2NyaXB0aW9ue21hcmdpbjo4cHggMDtwYWRkaW5nOjA7Zm9udC1zaXplOjEuMnJlbX0uWXRtQ29tcGFjdE1lZGlhSXRlbU1lbnV7ZmxleC1zaHJpbms6MDtjb2xvcjojMDMwMzAzfS5mb3JtYXR0ZWQtc3RyaW5nLWRlZW1waGFzaXple2NvbG9yOiM2MDYwNjB9LmZvcm1hdHRlZC1zdHJpbmctYm9sZHtmb250LXdlaWdodDo1MDB9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUhvc3R7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyLXJhZGl1czppbmhlcml0O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowfS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUcmlnZ2VyRXZlbnRze3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUhvdmVyRWZmZWN0e3RyYW5zaXRpb246YWxsIC4zcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKTt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHksdHJhbnNmb3JtO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjEpO29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoLjkpO3dpbGwtY2hhbmdlOm9wYWNpdHksdHJhbnNmb3JtO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MH0ueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlSG92ZXJlZCAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlSG92ZXJFZmZlY3R7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKX0ueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlU3Ryb2tle3dpbGwtY2hhbmdlOm9wYWNpdHk7b3BhY2l0eTowO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MH0ueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRG93biAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRm9jdXNlZCAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbHtvcGFjaXR5Oi4xfS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUaHVtYm5haWxTaXplU21hbGx7bWFyZ2luOi00cHh9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVTbWFsbCAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVGh1bWJuYWlsU2l6ZVNtYWxsIC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVIb3ZlckVmZmVjdCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVGh1bWJuYWlsU2l6ZVNtYWxsIC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVTdHJva2V7Ym9yZGVyLXJhZGl1czo0cHh9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVNZWRpdW17bWFyZ2luOi04cHh9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVNZWRpdW0gLnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUZpbGwsLnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVNZWRpdW0gLnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUhvdmVyRWZmZWN0LC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUaHVtYm5haWxTaXplTWVkaXVtIC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVTdHJva2V7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVMYXJnZXttYXJnaW46LTEycHh9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVMYXJnZSAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVGh1bWJuYWlsU2l6ZUxhcmdlIC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVIb3ZlckVmZmVjdCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVGh1bWJuYWlsU2l6ZUxhcmdlIC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVTdHJva2V7Ym9yZGVyLXJhZGl1czoxNnB4fS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVDaXJjdWxhciAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlQ2lyY3VsYXIgLnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUhvdmVyRWZmZWN0LC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVDaXJjdWxhciAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlU3Ryb2tle2JvcmRlci1yYWRpdXM6NTAlfS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUb3VjaFJlc3BvbnNlIC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVGaWxse2JhY2tncm91bmQtY29sb3I6IzAwMH0ueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVG91Y2hSZXNwb25zZSAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlU3Ryb2tle2JvcmRlcjoxcHggc29saWQgIzAwMH0ueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVG91Y2hSZXNwb25zZUludmVyc2UgLnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUZpbGx7YmFja2dyb3VuZC1jb2xvcjojZmZmfS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUb3VjaFJlc3BvbnNlSW52ZXJzZSAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlU3Ryb2tle2JvcmRlcjoxcHggc29saWQgI2ZmZn0ueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVG91Y2hSZXNwb25zZUludmVyc2UueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRG93biAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbCwueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVG91Y2hSZXNwb25zZUludmVyc2UueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRm9jdXNlZCAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbHtvcGFjaXR5Oi4yfS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVPdmVybGF5VG91Y2hSZXNwb25zZSAueXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlRmlsbHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZU92ZXJsYXlUb3VjaFJlc3BvbnNlIC55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVTdHJva2V7Ym9yZGVyOjFweCBzb2xpZCAjZmZmfS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVPdmVybGF5VG91Y2hSZXNwb25zZUludmVyc2UgLnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUZpbGx7YmFja2dyb3VuZC1jb2xvcjojMDAwfS55dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVPdmVybGF5VG91Y2hSZXNwb25zZUludmVyc2UgLnl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVN0cm9rZXtib3JkZXI6MXB4IHNvbGlkICMwMDB9QGtleWZyYW1lcyBwb3BvdmVyLWZhZGUtaW57MCV7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIHBvcG92ZXItZmFkZS1vdXR7dG97b3BhY2l0eTowfX0ueXRQb3BvdmVyQ29tcG9uZW50SG9zdHttYXJnaW46MDtwb3NpdGlvbjphYnNvbHV0ZX0ueXRQb3BvdmVyQ29tcG9uZW50SG9zdC5cXDpwb3BvdmVyLW9wZW4sLnl0UG9wb3ZlckNvbXBvbmVudEhvc3Q6cG9wb3Zlci1vcGVue2FuaW1hdGlvbjpwb3BvdmVyLWZhZGUtaW4gLjE1cyBlYXNlLWlufS55dFBvcG92ZXJDb21wb25lbnRIb3N0Q2xvc2luZy5cXDpwb3BvdmVyLW9wZW4sLnl0UG9wb3ZlckNvbXBvbmVudEhvc3RDbG9zaW5nOnBvcG92ZXItb3BlbnthbmltYXRpb246cG9wb3Zlci1mYWRlLW91dCA3NW1zIGVhc2Utb3V0IGZvcndhcmRzfS55dFRvb2x0aXBDb250YWluZXJIb3N0e2Rpc3BsYXk6YmxvY2t9Lnl0VG9vbHRpcENvbnRhaW5lckRlZmF1bHRUb29sdGlwQ29udGVudHtwYWRkaW5nOjhweDtib3JkZXItc3R5bGU6bm9uZTtib3JkZXItcmFkaXVzOjRweDtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzYwNjA2MDtvcGFjaXR5Oi45O2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDB9Lnl0VG9vbHRpcENvbnRhaW5lclBsYXllclRvb2x0aXBDb250ZW50LC55dFRvb2x0aXBDb250YWluZXJQbGF5ZXJUb29sdGlwQ29udGVudEJsdXJyZWR7cGFkZGluZzo0cHggOHB4O2JvcmRlci1zdHlsZTpub25lO2JvcmRlci1yYWRpdXM6OHB4O2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMyk7dGV4dC1zaGFkb3c6MCAycHggOHB4ICMwMDA7b3BhY2l0eTouOTtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjQwMH0ueXRUb29sdGlwQ29udGFpbmVyUGxheWVyVG9vbHRpcENvbnRlbnRCbHVycmVke29wYWNpdHk6dW5zZXQ7YmFja2Ryb3AtZmlsdGVyOmJsdXIoOHB4KTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC42KX0ueXRUb29sdGlwQ29udGFpbmVyRWZmZWN0TWFrZXJUb29sdGlwQ29udGVudHtwYWRkaW5nOjRweCA4cHg7Ym9yZGVyLXN0eWxlOm5vbmU7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwZjBmMGY7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS44cmVtO2ZvbnQtd2VpZ2h0OjQwMH0ueXRUb29sdGlwQ29udGFpbmVySG90a2V5e2Rpc3BsYXk6aW5saW5lO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMpO2JvcmRlci1yYWRpdXM6NHB4O3BhZGRpbmc6MCA2cHg7bWFyZ2luLWxlZnQ6OHB4O2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NTAwfTpyb290ey0teXQtbGlnaHQtcmltLWNvbG9yOnVuc2V0Oy0teXQtbGlnaHQtd2FzaC1vcGFjaXR5OjA7LS15dC1saWdodC13YXNoLXg6MDstLXl0LWxpZ2h0LXdhc2gteTowOy0teXQtbGlnaHQtd2FzaC1zaXplOjk2cHg7LS15dC1saWdodC13YXNoLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4zKX0uY29udHJpYll0TGlnaHRTaGFwZUhvc3R7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czppbmhlcml0O3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7cG9pbnRlci1ldmVudHM6bm9uZX0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0OmJlZm9yZXtjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtib3JkZXItcmFkaXVzOmluaGVyaXQ7cGFkZGluZzouNXB4Oy13ZWJraXQtbWFzazpsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApIGNvbnRlbnQtYm94LGxpbmVhci1ncmFkaWVudCgjZmZmIDAgMCk7bWFzay1jb21wb3NpdGU6ZXhjbHVkZTtwb2ludGVyLWV2ZW50czpub25lfS5jb250cmliWXRMaWdodFNoYXBlU3RhdGljUmltTGlnaHRTb2xpZDpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodmFyKC0teXQtbGlnaHQtcmltLWNvbG9yLHJnYmEoMjU1LDI1NSwyNTUsMC4yKSksdHJhbnNwYXJlbnQgNzUlKX0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0VG9uYWw6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHZhcigtLXl0LWxpZ2h0LXJpbS1jb2xvcixyZ2JhKDAsMCwwLDAuMDUpKSx0cmFuc3BhcmVudCA3NSUpfS5jb250cmliWXRMaWdodFNoYXBlU3RhdGljUmltTGlnaHRPdXRsaW5le2luc2V0Oi0xcHh9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNSaW1MaWdodE91dGxpbmU6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHZhcigtLXl0LWxpZ2h0LXJpbS1jb2xvcixyZ2JhKDI1NSwyNTUsMjU1LDAuMykpLHRyYW5zcGFyZW50IDc1JSl9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNSaW1MaWdodFNvbGlkSW52ZXJzZTpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodmFyKC0teXQtbGlnaHQtcmltLWNvbG9yLHJnYmEoMjU1LDI1NSwyNTUsMC4yKSksdHJhbnNwYXJlbnQgNzUlKX0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0VG9uYWxJbnZlcnNlOmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh2YXIoLS15dC1saWdodC1yaW0tY29sb3IscmdiYSgyNTUsMjU1LDI1NSwwLjE1KSksdHJhbnNwYXJlbnQgNzUlKX0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0T3V0bGluZUludmVyc2V7aW5zZXQ6LTFweH0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0T3V0bGluZUludmVyc2U6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHZhcigtLXl0LWxpZ2h0LXJpbS1jb2xvcixyZ2JhKDI1NSwyNTUsMjU1LDAuMTUpKSx0cmFuc3BhcmVudCA3NSUpfS5jb250cmliWXRMaWdodFNoYXBlU3RhdGljUmltTGlnaHRPdmVybGF5U29saWQ6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHZhcigtLXl0LWxpZ2h0LXJpbS1jb2xvcixyZ2JhKDI1NSwyNTUsMjU1LDAuMikpLHRyYW5zcGFyZW50IDc1JSl9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNSaW1MaWdodE92ZXJsYXlUb25hbDpiZWZvcmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodmFyKC0teXQtbGlnaHQtcmltLWNvbG9yLHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkpLHRyYW5zcGFyZW50IDc1JSl9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNSaW1MaWdodE92ZXJsYXlPdXRsaW5le2luc2V0Oi0xcHh9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNSaW1MaWdodE92ZXJsYXlPdXRsaW5lOmJlZm9yZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh2YXIoLS15dC1saWdodC1yaW0tY29sb3IscmdiYSgyNTUsMjU1LDI1NSwwLjE1KSksdHJhbnNwYXJlbnQgNzUlKX0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1dhc2hMaWdodHtjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3R0b206NTAlO2xlZnQ6MDtib3JkZXItcmFkaXVzOmluaGVyaXQ7ZmlsdGVyOmJsdXIoMTBweCl9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNXYXNoTGlnaHRTYWZhcml7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNXYXNoTGlnaHRTb2xpZHtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4xNSl9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNXYXNoTGlnaHRUb25hbHtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4yKX0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1dhc2hMaWdodFNvbGlkSW52ZXJzZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4zKX0uY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1dhc2hMaWdodFRvbmFsSW52ZXJzZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4wNSl9LmNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNXYXNoTGlnaHRPdmVybGF5U29saWR7YmFja2dyb3VuZDojZmZmfS5jb250cmliWXRMaWdodFNoYXBlU3RhdGljV2FzaExpZ2h0T3ZlcmxheVRvbmFse2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjE1KX0uY29udHJpYll0TGlnaHRTaGFwZUR5bmFtaWNXYXNoTGlnaHR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSkgdHJhbnNsYXRlKHZhcigtLXl0LWxpZ2h0LXdhc2gteCwwKSx2YXIoLS15dC1saWdodC13YXNoLXksMCkpO2JvcmRlci1yYWRpdXM6aW5oZXJpdDt3aWR0aDp2YXIoLS15dC1saWdodC13YXNoLXNpemUsOTZweCk7aGVpZ2h0OnZhcigtLXl0LWxpZ2h0LXdhc2gtc2l6ZSw5NnB4KTtvcGFjaXR5OnZhcigtLXl0LWxpZ2h0LXdhc2gtb3BhY2l0eSwwKTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgZmFydGhlc3QtY29ybmVyIGF0IGNlbnRlcixyZ2JhKDI1NSwyNTUsMjU1LC4yKSAwLHRyYW5zcGFyZW50IDEwMCUpO3BvaW50ZXItZXZlbnRzOm5vbmU7ZmlsdGVyOmJsdXIoMTVweCl9Lnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3N0e2JvcmRlci1yYWRpdXM6aW5oZXJpdDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6YXV0bztjb250YWluOmxheW91dCBzdHlsZSBwYWludDstbW96LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKXsueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheXt0cmFuc2l0aW9uOm9wYWNpdHkgLjQ1cyBjdWJpYy1iZXppZXIoLjI1LDEsLjgsMSl9fS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlUHJlc3NlZCAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheXt0cmFuc2l0aW9uLWR1cmF0aW9uOjQwbXN9Lnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXlEZWZhdWx0IC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5e2JhY2tncm91bmQtY29sb3I6I2ZmZn0ueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheURlZmF1bHQ6aG92ZXIgLnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXl7b3BhY2l0eTouMDV9Lnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXlEZWZhdWx0Lnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVQcmVzc2VkIC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5e29wYWNpdHk6LjF9OnJvb3RbZGFya10gLnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXlEZWZhdWx0IC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5e2JhY2tncm91bmQtY29sb3I6IzAwMH06cm9vdFtkYXJrXSAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheURlZmF1bHQ6aG92ZXIgLnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXl7b3BhY2l0eTouMn06cm9vdFtkYXJrXSAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheURlZmF1bHQueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZVByZXNzZWQgLnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXl7b3BhY2l0eTouM30ueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheUludmVyc2UgLnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojMDAwfS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5SW52ZXJzZTpob3ZlciAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheXtvcGFjaXR5Oi4yfS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5SW52ZXJzZS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlUHJlc3NlZCAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheXtvcGFjaXR5Oi4zfTpyb290W2RhcmtdIC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5SW52ZXJzZSAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9OnJvb3RbZGFya10gLnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXlJbnZlcnNlOmhvdmVyIC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5e29wYWNpdHk6LjA1fTpyb290W2RhcmtdIC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5SW52ZXJzZS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlUHJlc3NlZCAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheXtvcGFjaXR5Oi4xfS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlVG91Y2hMaWdodHtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowO2hlaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtmaWx0ZXI6Ymx1cigyNHB4KTtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsI2ZmZiAwLHJnYmEoMjU1LDI1NSwyNTUsLjYpIDM1JSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzAlLHRyYW5zcGFyZW50IDEwMCUpO2JvcmRlci1yYWRpdXM6NTAlfS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJMaWdodHtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7ZmlsdGVyOmJsdXIoMzJweCk7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCNmZmYgMCxyZ2JhKDI1NSwyNTUsMjU1LC41KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDgwJSxyZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO2JvcmRlci1yYWRpdXM6NTAlfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKXsueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyTGlnaHR7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlLHdpZHRoIC4xNXMgY3ViaWMtYmV6aWVyKC4yNSwxLC41LDEpLGhlaWdodCAuMTVzIGN1YmljLWJlemllciguMjUsMSwuNSwxKX19Lnl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3N0OmhvdmVyIC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJMaWdodHtvcGFjaXR5Oi4yfS55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG9zdC55dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlUHJlc3NlZCAueXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyTGlnaHR7b3BhY2l0eTouMzU7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDRzfS5hbmltYXRlZFJvbGxpbmdDaGFyYWN0ZXJIb3N0e2Rpc3BsYXk6aW5saW5lfS5hbmltYXRlZFJvbGxpbmdOdW1iZXJIb3N0e2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NTAwO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDpob3Jpem9udGFsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93O292ZXJmbG93OmhpZGRlbn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SG9zdHtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MDt3aGl0ZS1zcGFjZTpub3dyYXA7bWluLXdpZHRoOjA7dGV4dC10cmFuc2Zvcm06bm9uZTtmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MThweDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lLXdpZHRoOjA7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQ6bm9uZTt0ZXh0LWRlY29yYXRpb246bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7LW1vei1ib3gtZmxleDoxO2ZsZXg6MTtmbGV4LWJhc2lzOjAuMDAwMDAwMDAxcHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS55dFNwZWNCdXR0b25TaGFwZU5leHRFbGV2YXRlZENvbnRlbnR7ei1pbmRleDoxO3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb24sLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlY29uZGFyeUljb257bGluZS1oZWlnaHQ6MDtmaWxsOmN1cnJlbnRDb2xvcn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbnstbW96LWJveC1mbGV4OjA7ZmxleDpub25lfS55dFNwZWNCdXR0b25TaGFwZU5leHRCdXR0b25UZXh0Q29udGVudHt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWlkZGxlZ3JvdW5kQXNzZXR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7d2lkdGg6cm91bmQodXAsMTAwJSwxcHgpO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjtwb2ludGVyLWV2ZW50czpub25lfS55dFNwZWNCdXR0b25TaGFwZU5leHRGZWF0dXJlUGhvbmVXcmFwcGVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYc3twYWRkaW5nOjAgOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtwYWRkaW5nOjAgN3B4O2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtwYWRkaW5nOjAgNnB4O2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7cGFkZGluZzowIDhweDt3aWR0aDozMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmQgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLWxlZnQ6LTJweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25UcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tbGVmdDoycHg7bWFyZ2luLXJpZ2h0Oi0ycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6MnB4O21hcmdpbi1sZWZ0Oi0ycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6MnB4O21hcmdpbi1sZWZ0Oi0ycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRTZWNvbmRhcnlJY29ue21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6LTJweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhze2hlaWdodDoyNHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjI0cHg7Ym9yZGVyLXJhZGl1czoxMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMgLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1pZGRsZWdyb3VuZEFzc2V0e2JvcmRlci1yYWRpdXM6MTJweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9ue3dpZHRoOjI0cHg7cGFkZGluZzowfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkU3RhcnR7Ym9yZGVyLXJhZGl1czoxMnB4IDAgMCAxMnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkU3RhcnQ6YWZ0ZXJ7Y29udGVudDpcIlwiO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjRweDtoZWlnaHQ6MTZweDt3aWR0aDoxcHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7Ym9yZGVyLXJhZGl1czowIDEycHggMTJweCAwfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZ05vVGV4dCAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6MH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZUljb25TaXplIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue2hlaWdodDoxMnB4O3dpZHRoOjEycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5ne3BhZGRpbmc6MCA4cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmV7cGFkZGluZzowIDdweDtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtwYWRkaW5nOjAgNnB4O2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7cGFkZGluZzowIDhweDt3aWR0aDozMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZCAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tbGVmdDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1yaWdodDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6NHB4O21hcmdpbi1sZWZ0Oi00cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi00cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjRweDttYXJnaW4tbGVmdDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWHMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRTZWNvbmRhcnlJY29ue21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6LTRweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhzLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplU3twYWRkaW5nOjAgMTJweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtwYWRkaW5nOjAgMTFweDtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtwYWRkaW5nOjAgMTBweDtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSksKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVTLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi0xMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZHtwYWRkaW5nOjAgMTJweDt3aWR0aDo0NHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZCAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tbGVmdDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1yaWdodDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6NHB4O21hcmdpbi1sZWZ0Oi00cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVTLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVTLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjRweDttYXJnaW4tbGVmdDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRTZWNvbmRhcnlJY29ue21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6LTRweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplU3toZWlnaHQ6MzJweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDozMnB4O2JvcmRlci1yYWRpdXM6MTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMgLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1pZGRsZWdyb3VuZEFzc2V0e2JvcmRlci1yYWRpdXM6MTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257d2lkdGg6MTZweDtoZWlnaHQ6MTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbnt3aWR0aDozMnB4O3BhZGRpbmc6MH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVycmlkZVNtYWxsU2l6ZUljb24gLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkU3RhcnR7Ym9yZGVyLXJhZGl1czoxNnB4IDAgMCAxNnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRTdGFydDphZnRlcntjb250ZW50OlwiXCI7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMSk7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6OHB4O2hlaWdodDoxNnB4O3dpZHRoOjFweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkRW5ke2JvcmRlci1yYWRpdXM6MCAxNnB4IDE2cHggMH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZ05vVGV4dCAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6MH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlSWNvblNpemU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVycmlkZVNtYWxsU2l6ZUljb24pIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue2hlaWdodDoxOHB4O3dpZHRoOjE4cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVTLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmd7cGFkZGluZzowIDEycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVTLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtwYWRkaW5nOjAgMTFweDtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke3BhZGRpbmc6MCAxMHB4O2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi0xMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25CdXR0b24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkRW5ke3BhZGRpbmc6MCAxMnB4O3dpZHRoOjQ0cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVTLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmQgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLWxlZnQ6LTRweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1yaWdodDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1yaWdodDo0cHg7bWFyZ2luLWxlZnQ6LTRweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVMueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjRweDttYXJnaW4tbGVmdDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlY29uZGFyeUljb257bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1yaWdodDotNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplUy55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU17cGFkZGluZzowIDE2cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmV7cGFkZGluZzowIDE1cHg7Ym9yZGVyLXdpZHRoOjFweDtib3JkZXItc3R5bGU6c29saWR9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7cGFkZGluZzowIDE0cHg7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7cGFkZGluZzowIDE2cHg7d2lkdGg6NTJweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmQgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLWxlZnQ6LTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvblRyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1sZWZ0OjZweDttYXJnaW4tcmlnaHQ6LTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tbGVmdDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMTBweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1sZWZ0Oi02cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlY29uZGFyeUljb257bWFyZ2luLWxlZnQ6NnB4O21hcmdpbi1yaWdodDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi0xMHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTXtoZWlnaHQ6MzZweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6MThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0gLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1pZGRsZWdyb3VuZEFzc2V0e2JvcmRlci1yYWRpdXM6MThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0gLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257d2lkdGg6MjRweDtoZWlnaHQ6MjRweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbnt3aWR0aDozNnB4O3BhZGRpbmc6MH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRTdGFydHtib3JkZXItcmFkaXVzOjE4cHggMCAwIDE4cHg7cG9zaXRpb246cmVsYXRpdmV9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZFN0YXJ0OmFmdGVye2NvbnRlbnQ6XCJcIjtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDo2cHg7aGVpZ2h0OjI0cHg7d2lkdGg6MXB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7Ym9yZGVyLXJhZGl1czowIDE4cHggMThweCAwfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nTm9UZXh0IC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1yaWdodDowfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VJY29uU2l6ZS55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZCAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbiwueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlSWNvblNpemU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uKTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25Pbmx5RGVmYXVsdCkgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257aGVpZ2h0OjE4cHg7d2lkdGg6MThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZ3twYWRkaW5nOjAgMTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5le3BhZGRpbmc6MCAxNXB4O2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7cGFkZGluZzowIDE0cHg7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTE2cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7cGFkZGluZzowIDE2cHg7d2lkdGg6NTJweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZU0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZCAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tbGVmdDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25UcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tbGVmdDo2cHg7bWFyZ2luLXJpZ2h0Oi02cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVNLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tbGVmdDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi0xMHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tbGVmdDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlY29uZGFyeUljb257bWFyZ2luLWxlZnQ6NnB4O21hcmdpbi1yaWdodDotNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTS55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTEwcHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMe3BhZGRpbmc6MCAyNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5le3BhZGRpbmc6MCAyM3B4O2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke3BhZGRpbmc6MCAyMnB4O2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTI0cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25CdXR0b24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkRW5ke3BhZGRpbmc6MCAyNHB4O3dpZHRoOjcycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25CdXR0b24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkRW5kIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1sZWZ0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25UcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLWxlZnQ6LThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTE2cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjhweDttYXJnaW4tbGVmdDotOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRTZWNvbmRhcnlJY29ue21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6LThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUx7aGVpZ2h0OjQ4cHg7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6NDhweDtib3JkZXItcmFkaXVzOjI0cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMIC55dFNwZWNCdXR0b25TaGFwZU5leHRNaWRkbGVncm91bmRBc3NldHtib3JkZXItcmFkaXVzOjI0cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25CdXR0b257d2lkdGg6NDhweDtwYWRkaW5nOjB9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25CdXR0b24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTEycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZFN0YXJ0e2JvcmRlci1yYWRpdXM6MjRweCAwIDAgMjRweDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkU3RhcnQ6YWZ0ZXJ7Y29udGVudDpcIlwiO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjEycHg7aGVpZ2h0OjI0cHg7d2lkdGg6MXB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7Ym9yZGVyLXJhZGl1czowIDI0cHggMjRweCAwfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nTm9UZXh0IC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1yaWdodDowfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5ne3BhZGRpbmc6MCAyMHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmV7cGFkZGluZzowIDE5cHg7Ym9yZGVyLXdpZHRoOjFweDtib3JkZXItc3R5bGU6c29saWR9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtwYWRkaW5nOjAgMThweDtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSksKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMjBweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZHtwYWRkaW5nOjAgMjBweDt3aWR0aDo2OHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTC55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25CdXR0b24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkRW5kIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1sZWZ0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvblRyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6LThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTEycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2Vjb25kYXJ5SWNvbnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVMLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMTJweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhse3BhZGRpbmc6MCAzMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtwYWRkaW5nOjAgMzFweDtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7cGFkZGluZzowIDMwcHg7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi0zMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmR7cGFkZGluZzowIDMycHg7d2lkdGg6ODhweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25CdXR0b24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2VnbWVudGVkRW5kIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1sZWZ0Oi0xMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvblRyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1sZWZ0OjEycHg7bWFyZ2luLXJpZ2h0Oi0xMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjEycHg7bWFyZ2luLWxlZnQ6LTEycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMjBweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLXJpZ2h0OjEycHg7bWFyZ2luLWxlZnQ6LTEycHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRTZWNvbmRhcnlJY29ue21hcmdpbi1sZWZ0OjEycHg7bWFyZ2luLXJpZ2h0Oi0xMnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMjBweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhse2hlaWdodDo1NnB4O2ZvbnQtc2l6ZToyNHB4O2xpbmUtaGVpZ2h0OjU2cHg7Ym9yZGVyLXJhZGl1czoyOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwgLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1pZGRsZWdyb3VuZEFzc2V0e2JvcmRlci1yYWRpdXM6MjhweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9ue3dpZHRoOjU2cHg7cGFkZGluZzowfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbi55dFNwZWNCdXR0b25TaGFwZU5leHRBbGlnbkJ5VGV4dHttYXJnaW4tbGVmdDotMTZweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZFN0YXJ0e2JvcmRlci1yYWRpdXM6MjhweCAwIDAgMjhweDtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZFN0YXJ0OmFmdGVye2NvbnRlbnQ6XCJcIjtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDoxNnB4O2hlaWdodDoyNHB4O3dpZHRoOjFweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZHtib3JkZXItcmFkaXVzOjAgMjhweCAyOHB4IDB9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nTm9UZXh0IC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1yaWdodDowfS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZ3twYWRkaW5nOjAgMjRweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtwYWRkaW5nOjAgMjNweDtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtwYWRkaW5nOjAgMjJweDtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSksKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi0yNHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZHtwYWRkaW5nOjAgMjRweDt3aWR0aDo4MHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uQnV0dG9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFNlZ21lbnRlZEVuZCAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tbGVmdDotOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uVHJhaWxpbmcgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDotOHB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbnttYXJnaW4tcmlnaHQ6OHB4O21hcmdpbi1sZWZ0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi0xNnB4fS55dFNwZWNCdXR0b25TaGFwZU5leHRTaXplWGwueXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlUGFkZGluZy55dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nIC55dFNwZWNCdXR0b25TaGFwZU5leHRJY29ue21hcmdpbi1yaWdodDo4cHg7bWFyZ2luLWxlZnQ6LThweH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsLnl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkxlYWRpbmdUcmFpbGluZyAueXRTcGVjQnV0dG9uU2hhcGVOZXh0U2Vjb25kYXJ5SWNvbnttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYbC55dFNwZWNCdXR0b25TaGFwZU5leHRNYWluc3RhZ2VQYWRkaW5nLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmcueXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHR7bWFyZ2luLWxlZnQ6LTE2cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE9uZU9mZkN1c3RvbVRleHRXcmFwQ29udGFpbmVye2hlaWdodDphdXRvO3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWJvdHRvbTo4cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE9uZU9mZkN1c3RvbVRleHRXcmFwQ29udGFpbmVyIC55dFNwZWNCdXR0b25TaGFwZU5leHRCdXR0b25UZXh0Q29udGVudHtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjhyZW07ZGlzcGxheTpib3g7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9QHN1cHBvcnRzICgtd2Via2l0LWxpbmUtY2xhbXA6MSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE9uZU9mZkN1c3RvbVRleHRXcmFwQ29udGFpbmVyIC55dFNwZWNCdXR0b25TaGFwZU5leHRCdXR0b25UZXh0Q29udGVudHstd2Via2l0LWxpbmUtY2xhbXA6NDttYXgtaGVpZ2h0Om5vbmV9fS55dFNwZWNCdXR0b25TaGFwZU5leHREaXNhYmxlVGV4dEVsbGlwc2lzIC55dFNwZWNCdXR0b25TaGFwZU5leHRCdXR0b25UZXh0Q29udGVudHt0ZXh0LW92ZXJmbG93OmNsaXB9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25Pbmx5RGVmYXVsdHttaW4td2lkdGg6MDtib3JkZXItcmFkaXVzOjUwJTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3BhZGRpbmc6MH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbk9ubHlEZWZhdWx0Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEFsaWduQnlUZXh0e21hcmdpbi1sZWZ0Oi04cHh9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFdvcmthcm91bmRJY29uTm9Cb3JkZXJSYWRpdXN7Ym9yZGVyLXJhZGl1czp1bnNldH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWR7Y29sb3I6I2ZmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiMwNjVmZDR9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzA1NTZiZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiMwNjVmZDR9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzA1NTZiZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmV7Y29sb3I6IzA2NWZkNH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmV7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4xKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6I2RlZjFmZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjEpfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZTphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojZGVmMWZmO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0e2NvbG9yOiMwNjVmZDR9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNkZWYxZmY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNkZWYxZmY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fX1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSksKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHR7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9fS55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb24ueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7Y29sb3I6IzA2NWZkNH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFse1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6I2RlZjFmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNkYWRmZTY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNkZWYxZmZ9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbDphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojZGFkZmU2O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbHtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKX19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke2NvbG9yOiMwNjVmZDR9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6dW5zZXQ7Ym9yZGVyLWNvbG9yOiMwNjVmZDR9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNkZWYxZmY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6dW5zZXQ7Ym9yZGVyLWNvbG9yOiMwNjVmZDR9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbi55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNkZWYxZmY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fX1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSksKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9fS55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb25JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHR7Y29sb3I6IzNlYTZmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiMyNjM4NTA7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbkludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0VGV4dDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnRyYW5zcGFyZW50fX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb25JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHQ6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzI2Mzg1MDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb25JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHR7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9fS55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb25PdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtjb2xvcjojMDMwMzAzfS55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb25PdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiMzZWE2ZmZ9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbk92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiM2NWI4ZmY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbk92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzNlYTZmZn19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uT3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzY1YjhmZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fS55dFNwZWNCdXR0b25TaGFwZU5leHRDYWxsVG9BY3Rpb25PdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Y29sb3I6IzNlYTZmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uT3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzAwMDtib3JkZXItY29sb3I6IzNlYTZmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uT3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiM2NWI4ZmY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbk92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLWNvbG9yOiMzZWE2ZmZ9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbk92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojNjViOGZmO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbk92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke2NvbG9yOiNmZmZ9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzAzMDMwM30ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9uby55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzI3MjcyNztib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9uby55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojMDMwMzAzfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZDphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojMjcyNzI3O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9uby55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5le2NvbG9yOiMwMzAzMDN9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjEpfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjEpfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0VGV4dHtjb2xvcjojMDMwMzAzfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDp0cmFuc3BhcmVudH19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9uby55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHR7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9fS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFse2NvbG9yOiMwMzAzMDN9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMDUpfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9uby55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWw6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9fS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Y29sb3I6IzAzMDMwM30ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9uby55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6dW5zZXQ7Ym9yZGVyLWNvbG9yOiMwMzAzMDN9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMSk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnVuc2V0O2JvcmRlci1jb2xvcjojMDMwMzAzfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWQ6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm9JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtjb2xvcjojMDMwMzAzfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWR7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6I2Q5ZDlkOTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6I2ZmZn19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVkOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNkOWQ5ZDk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fX1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSksKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtjb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5le2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuMil9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm9JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjIpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5lOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4yKX19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZTphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMik7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0VGV4dHtjb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0VGV4dDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnRyYW5zcGFyZW50fX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0e2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7Y29sb3I6I2ZmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMSl9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm9JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4yKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWw6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMSl9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm9JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4yKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbHtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKX19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm9JbnZlcnNlLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Y29sb3I6I2ZmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnVuc2V0O2JvcmRlci1jb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4yKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0TW9ub0ludmVyc2UueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnVuc2V0O2JvcmRlci1jb2xvcjojZmZmfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4yKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRNb25vSW52ZXJzZS55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke2JvcmRlci13aWR0aDoycHg7Ym9yZGVyLXN0eWxlOnNvbGlkfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWR7Y29sb3I6IzAwMH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWR7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojZTZlNmU2O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNmZmZ9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVkOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNlNmU2ZTY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5le2NvbG9yOiNmZmZ9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3V0bGluZXtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjMpfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjMpfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0VGV4dHtjb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFRleHQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDp0cmFuc3BhcmVudH19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0OmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4xKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFse2NvbG9yOiNmZmZ9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWwgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwwLjgpKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbHtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4xKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheS55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMik7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWw6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMSl9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWw6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjIpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWwueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlQmFja2Ryb3BGaWx0ZXJFeHBlcmltZW50e2JhY2tkcm9wLWZpbHRlcjpibHVyKDRweCl9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtjb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojMDAwO2JvcmRlci1jb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojMDAwO2JvcmRlci1jb2xvcjojZmZmfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWQ6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXkueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXlEYXJrLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtjb2xvcjojMDAwfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5RGFyay55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWR7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5RGFyay55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6I2U2ZTZlNjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6I2ZmZn19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVkOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiNlNmU2ZTY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7Y29sb3I6I2ZmZn0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWwgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEljb257ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwwLjgpKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMyl9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXlEYXJrLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoNDAsNDAsNDAsMC42KTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWw6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMyl9fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJsYXlEYXJrLnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoNDAsNDAsNDAsMC42KTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5RGFyay55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVCYWNrZHJvcEZpbHRlckV4cGVyaW1lbnR7YmFja2Ryb3AtZmlsdGVyOmJsdXIoOHB4KX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtjb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5RGFyay55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzAwMDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjMpfS55dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5RGFyay55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoNDAsNDAsNDAsMC42KTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4zKX19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDQwLDQwLDQwLDAuNik7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fX1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSksKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0T3ZlcmxheURhcmsueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEJyYW5kR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke2NvbG9yOiNmZmZ9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEJyYW5kR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCNlMTAwMmQgMzAlLCNlMDEzNzggODUlKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0QnJhbmRHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCNlMTAwMmQgMzAlLCNlMDEzNzggODUlKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0QnJhbmRHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsI2UxMDAyZCAzMCUsI2UwMTM3OCA4NSUpfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRCcmFuZEdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZDphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsI2UxMDAyZCAzMCUsI2UwMTM3OCA4NSUpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEJyYW5kR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0QnJhbmRHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke2NvbG9yOiMwMzAzMDN9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEJyYW5kR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnVuc2V0O2JvcmRlci1jb2xvcjojMDMwMzAzfS55dFNwZWNCdXR0b25TaGFwZU5leHRCcmFuZEdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRCcmFuZEdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDp1bnNldDtib3JkZXItY29sb3I6IzAzMDMwM319QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0QnJhbmRHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOmFjdGl2ZTpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRCcmFuZEdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Ym9yZGVyLXdpZHRoOjJweDtib3JkZXItc3R5bGU6c29saWR9fS55dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtjb2xvcjojZmZmfS55dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtcbiAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjN2YwZTdmIDAsI2FhMDlhYSAyMCUsI2ZmNGU0NSAxMDAlKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0R2VuQWlHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCMwMDdhNjUgMCwjN2YwZTdmIDEwMCUpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjN2YwZTdmIDAsI2FhMDlhYSAyMCUsI2ZmNGU0NSAxMDAlKX19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0R2VuQWlHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQ6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCMwMDdhNjUgMCwjN2YwZTdmIDEwMCUpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEdlbkFpR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0RmlsbGVke2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0R2VuQWlHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbHtjb2xvcjojMDMwMzAzfS55dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFse1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHJnYmEoMTI3LDE0LDEyNywwLjIpIDAscmdiYSgxNzAsOSwxNzAsMC4yKSAyMCUscmdiYSgyNTUsNzgsNjksMC4yKSAxMDAlKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0R2VuQWlHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcscmdiYSgwLDEyMiwxMDEsMC4yKSAwLHJnYmEoMTI3LDE0LDEyNywwLjIpIDEwMCUpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsOmhvdmVyOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHJnYmEoMTI3LDE0LDEyNywwLjIpIDAscmdiYSgxNzAsOSwxNzAsMC4yKSAyMCUscmdiYSgyNTUsNzgsNjksMC4yKSAxMDAlKX19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0R2VuQWlHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbDphY3RpdmU6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcscmdiYSgwLDEyMiwxMDEsMC4yKSAwLHJnYmEoMTI3LDE0LDEyNywwLjIpIDEwMCUpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEdlbkFpR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9fS55dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWR7Y29sb3I6IzAzMDMwM30ueXRTcGVjQnV0dG9uU2hhcGVOZXh0R2VuQWlHcmFkaWVudC55dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2Vke1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6dW5zZXQ7Ym9yZGVyLWNvbG9yOiMwMzAzMDN9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEdlbkFpR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMSk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fUBtZWRpYSAoaG92ZXI6bm9uZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEdlbkFpR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZDpob3Zlcjpub3QoLnl0U3BlY0J1dHRvblNoYXBlTmV4dEVuYWJsZUxpZ2h0VG91Y2hSZXNwb25zZSl7XG4gICAgLyohIHJ0bDppZ25vcmUgKi9iYWNrZ3JvdW5kOnVuc2V0O2JvcmRlci1jb2xvcjojMDMwMzAzfX1AbWVkaWEgKGhvdmVyOm5vbmUpey55dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEZvY3VzZWQ6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpLChmb3JjZWQtY29sb3JzOmFjdGl2ZSl7Lnl0U3BlY0J1dHRvblNoYXBlTmV4dEdlbkFpR3JhZGllbnQueXRTcGVjQnV0dG9uU2hhcGVOZXh0Rm9jdXNlZHtib3JkZXItd2lkdGg6MnB4O2JvcmRlci1zdHlsZTpzb2xpZH19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dERpc2FibGVkLnl0U3BlY0J1dHRvblNoYXBlTmV4dEZpbGxlZHtjb2xvcjojOTA5MDkwfS55dFNwZWNCdXR0b25TaGFwZU5leHREaXNhYmxlZC55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWR7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMDUpfUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHREaXNhYmxlZC55dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWR7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9fS55dFNwZWNCdXR0b25TaGFwZU5leHREaXNhYmxlZC55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5le2NvbG9yOiM5MDkwOTB9Lnl0U3BlY0J1dHRvblNoYXBlTmV4dERpc2FibGVkLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmV7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4xKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RGlzYWJsZWQueXRTcGVjQnV0dG9uU2hhcGVOZXh0VGV4dHtjb2xvcjojOTA5MDkwfUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHREaXNhYmxlZC55dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0e2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RGlzYWJsZWQueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7Y29sb3I6IzkwOTA5MH0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0RGlzYWJsZWQueXRTcGVjQnV0dG9uU2hhcGVOZXh0VG9uYWx7XG4gIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMDUpfUBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKSwoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dFNwZWNCdXR0b25TaGFwZU5leHREaXNhYmxlZC55dFNwZWNCdXR0b25TaGFwZU5leHRUb25hbHtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKX19Lnl0U3BlY0J1dHRvblNoYXBlTmV4dFJhaXNlZC55dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5le1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6I2ZmZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzowIDRweCAxNnB4IDAgcmdiYSgwLDAsMCwwLjEpLDAgMnB4IDhweCAwIHJnYmEoMCwwLDAsMC4xKX0ueXRTcGVjQnV0dG9uU2hhcGVOZXh0UmFpc2VkLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzI3MjcyNztib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0UmFpc2VkLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6aG92ZXI6bm90KC55dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVMaWdodFRvdWNoUmVzcG9uc2Upe1xuICAgIC8qISBydGw6aWdub3JlICovYmFja2dyb3VuZDojZmZmO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH19QG1lZGlhIChob3Zlcjpub25lKXsueXRTcGVjQnV0dG9uU2hhcGVOZXh0UmFpc2VkLnl0U3BlY0J1dHRvblNoYXBlTmV4dE91dGxpbmU6YWN0aXZlOm5vdCgueXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlKXtcbiAgICAvKiEgcnRsOmlnbm9yZSAqL2JhY2tncm91bmQ6IzI3MjcyNztib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9fS55dFNwZWNCdXR0b25TaGFwZVdpdGhMYWJlbEhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRTcGVjQnV0dG9uU2hhcGVXaXRoTGFiZWxMYWJlbHttYXJnaW46NHB4IC04cHggMDtjb2xvcjojMDMwMzAzO2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NDAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6MnJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRTcGVjQnV0dG9uU2hhcGVXaXRoTGFiZWxMYWJlbHstd2Via2l0LWxpbmUtY2xhbXA6MTttYXgtaGVpZ2h0Om5vbmV9fS55dFNwZWNCdXR0b25TaGFwZVdpdGhMYWJlbElzT3ZlcmxheSAueXRTcGVjQnV0dG9uU2hhcGVXaXRoTGFiZWxMYWJlbHttYXgtd2lkdGg6NjRweDtjb2xvcjojZmZmfS55dFNwZWNCdXR0b25WaWV3TW9kZWxIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4fS55dEJhZGdlVmlld01vZGVsSG9zdHtkaXNwbGF5OmlubGluZS1ibG9ja30ueXRCck56QmFkZ2VTaGFwZUhvc3R7ZGlzcGxheTpibG9ja30ueXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlTnpSYXRpbmdSZWRTcXVhcmV7YmFja2dyb3VuZDojZjAzOTM2O2hlaWdodDoyLjJyZW07d2lkdGg6Mi4ycmVtO2JvcmRlci1yYWRpdXM6MDtjb2xvcjpibGFjazt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6Y2xpcDtwYWRkaW5nOjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7dGV4dC1hbGlnbjpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVOelJhdGluZ1llbGxvd0NpcmNsZXtiYWNrZ3JvdW5kOiNmZmVmMDA7aGVpZ2h0OjIuMnJlbTt3aWR0aDoyLjJyZW07Ym9yZGVyLXJhZGl1czo1MCU7Y29sb3I6YmxhY2s7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmNsaXA7cGFkZGluZzowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlTnpSYXRpbmdHcmVlbkNpcmNsZXtiYWNrZ3JvdW5kOiM0MmM3NTg7aGVpZ2h0OjIuMnJlbTt3aWR0aDoyLjJyZW07Ym9yZGVyLXJhZGl1czo1MCU7Y29sb3I6YmxhY2s7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmNsaXA7cGFkZGluZzowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdTbWFsbEdyZWVuU3F1YXJle2JhY2tncm91bmQ6cmdiKDAsMTY2LDgxKTtoZWlnaHQ6MS44cmVtO3dpZHRoOjEuOHJlbTtjb2xvcjp3aGl0ZTtib3JkZXI6MXB4IHNvbGlkIHdoaXRlO2JvcmRlci1yYWRpdXM6MTAlO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzpjbGlwO3BhZGRpbmc6MDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDt0ZXh0LWFsaWduOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nU21hbGxCbHVlU3F1YXJle2JhY2tncm91bmQ6cmdiKDAsMTQ5LDIxOCk7aGVpZ2h0OjEuOHJlbTt3aWR0aDoxLjhyZW07Y29sb3I6d2hpdGU7Ym9yZGVyOjFweCBzb2xpZCB3aGl0ZTtib3JkZXItcmFkaXVzOjEwJTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6Y2xpcDtwYWRkaW5nOjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7dGV4dC1hbGlnbjpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVCclJhdGluZ0xhcmdlQmx1ZVNxdWFyZXtiYWNrZ3JvdW5kOnJnYigwLDE0OSwyMTgpO2hlaWdodDoyLjJyZW07d2lkdGg6Mi4ycmVtO2NvbG9yOndoaXRlO2JvcmRlcjoxcHggc29saWQgd2hpdGU7Ym9yZGVyLXJhZGl1czoxMCU7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmNsaXA7cGFkZGluZzowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdTbWFsbFllbGxvd1NxdWFyZXtiYWNrZ3JvdW5kOnJnYigyNTEsMTkzLDIxKTtoZWlnaHQ6MS44cmVtO3dpZHRoOjEuOHJlbTtjb2xvcjp3aGl0ZTtib3JkZXI6MXB4IHNvbGlkIHdoaXRlO2JvcmRlci1yYWRpdXM6MTAlO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzpjbGlwO3BhZGRpbmc6MDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDt0ZXh0LWFsaWduOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nTGFyZ2VZZWxsb3dTcXVhcmV7YmFja2dyb3VuZDpyZ2IoMjUxLDE5MywyMSk7aGVpZ2h0OjIuMnJlbTt3aWR0aDoyLjJyZW07Y29sb3I6d2hpdGU7Ym9yZGVyOjFweCBzb2xpZCB3aGl0ZTtib3JkZXItcmFkaXVzOjEwJTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6Y2xpcDtwYWRkaW5nOjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7dGV4dC1hbGlnbjpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVCclJhdGluZ1NtYWxsT3JhbmdlU3F1YXJle2JhY2tncm91bmQ6cmdiKDI0NSwxMzAsMzIpO2hlaWdodDoxLjhyZW07d2lkdGg6MS44cmVtO2NvbG9yOndoaXRlO2JvcmRlcjoxcHggc29saWQgd2hpdGU7Ym9yZGVyLXJhZGl1czoxMCU7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmNsaXA7cGFkZGluZzowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdMYXJnZU9yYW5nZVNxdWFyZXtiYWNrZ3JvdW5kOnJnYigyNDUsMTMwLDMyKTtoZWlnaHQ6Mi4ycmVtO3dpZHRoOjIuMnJlbTtjb2xvcjp3aGl0ZTtib3JkZXI6MXB4IHNvbGlkIHdoaXRlO2JvcmRlci1yYWRpdXM6MTAlO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzpjbGlwO3BhZGRpbmc6MDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDt0ZXh0LWFsaWduOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nU21hbGxSZWRTcXVhcmV7YmFja2dyb3VuZDpyZ2IoMjM2LDI5LDM3KTtoZWlnaHQ6MS44cmVtO3dpZHRoOjEuOHJlbTtjb2xvcjp3aGl0ZTtib3JkZXI6MXB4IHNvbGlkIHdoaXRlO2JvcmRlci1yYWRpdXM6MTAlO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzpjbGlwO3BhZGRpbmc6MDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDt0ZXh0LWFsaWduOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nTGFyZ2VSZWRTcXVhcmV7YmFja2dyb3VuZDpyZ2IoMjM2LDI5LDM3KTtoZWlnaHQ6Mi4ycmVtO3dpZHRoOjIuMnJlbTtjb2xvcjp3aGl0ZTtib3JkZXI6MXB4IHNvbGlkIHdoaXRlO2JvcmRlci1yYWRpdXM6MTAlO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzpjbGlwO3BhZGRpbmc6MDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDt0ZXh0LWFsaWduOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nU21hbGxCbGFja1NxdWFyZXtiYWNrZ3JvdW5kOnJnYigwLDAsMCk7aGVpZ2h0OjEuOHJlbTt3aWR0aDoxLjhyZW07Y29sb3I6d2hpdGU7Ym9yZGVyOjFweCBzb2xpZCB3aGl0ZTtib3JkZXItcmFkaXVzOjEwJTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6Y2xpcDtwYWRkaW5nOjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7dGV4dC1hbGlnbjpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVCclJhdGluZ0xhcmdlQmxhY2tTcXVhcmV7YmFja2dyb3VuZDpyZ2IoMCwwLDApO2hlaWdodDoyLjJyZW07d2lkdGg6Mi4ycmVtO2NvbG9yOndoaXRlO2JvcmRlcjoxcHggc29saWQgd2hpdGU7Ym9yZGVyLXJhZGl1czoxMCU7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmNsaXA7cGFkZGluZzowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRTZWN0aW9uSGVhZGVyVmlld01vZGVsSG9zdHtkaXNwbGF5OmJsb2NrfS55dFNlY3Rpb25IZWFkZXJWaWV3TW9kZWxCYWRnZVdpdGhMYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jazstbW96LW1hcmdpbi1lbmQ6OHB4O21hcmdpbi1pbmxpbmUtZW5kOjhweH0ueXRTZWN0aW9uSGVhZGVyVmlld01vZGVsQmFkZ2VzOm5vdCg6bGFzdC1jaGlsZCl7LW1vei1tYXJnaW4tZW5kOjhweDttYXJnaW4taW5saW5lLWVuZDo4cHh9Lnl0U2VjdGlvbkhlYWRlclZpZXdNb2RlbFRyYWlsaW5nQWN0aW9uc0NvbnRhaW5lcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dFNlY3Rpb25IZWFkZXJWaWV3TW9kZWxUcmFpbGluZ0FjdGlvbnNDb250YWluZXI+Om5vdCg6bGFzdC1jaGlsZCl7LW1vei1tYXJnaW4tZW5kOjhweDttYXJnaW4taW5saW5lLWVuZDo4cHh9Lnl0U2VjdGlvbkhlYWRlclZpZXdNb2RlbENoZXZyb25zQ29udGFpbmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDpob3Jpem9udGFsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0U2VjdGlvbkhlYWRlclZpZXdNb2RlbENoZXZyb246bm90KDpsYXN0LWNoaWxkKXstbW96LW1hcmdpbi1lbmQ6OHB4O21hcmdpbi1pbmxpbmUtZW5kOjhweH0ueXRSYWRpb0J1dHRvbkdyb3VwVmlld01vZGVsSG9zdHtkaXNwbGF5OmJsb2NrfS55dFJhZGlvQnV0dG9uR3JvdXBWaWV3TW9kZWxGaWVsZHNldHtib3JkZXI6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjB9Lnl0UmFkaW9CdXR0b25Hcm91cFZpZXdNb2RlbEVycm9ye2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDA7Y29sb3I6I2MzMDAyN30ueXRTZWxlY3RhYmxlSXRlbVZpZXdNb2RlbEhvc3R7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9ja30ueXRTZWxlY3RhYmxlSXRlbVZpZXdNb2RlbENvbnRhaW5lcntwYWRkaW5nLWJvdHRvbToyMHB4fS55dFNlbGVjdGFibGVJdGVtVmlld01vZGVsTmF0aXZlQ29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlfS55dFNlbGVjdGFibGVJdGVtVmlld01vZGVsTmF0aXZlUmFkaW9CdXR0b257aGVpZ2h0OjA7bGVmdDowO21hcmdpbjowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjB9Lnl0U2VsZWN0YWJsZUl0ZW1WaWV3TW9kZWxOYXRpdmVMYWJlbHtjdXJzb3I6cG9pbnRlcn0ueXRTZWxlY3RhYmxlSXRlbVZpZXdNb2RlbERpc2FibGVke2N1cnNvcjpkZWZhdWx0fS55dENhcmRWaWV3TW9kZWxIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0ueXRDYXJkVmlld01vZGVsT3V0bGluZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9Lnl0Q2FyZFZpZXdNb2RlbFJhaXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsMCwwLDAuMjUpO291dGxpbmUtc3R5bGU6c29saWQ7b3V0bGluZS1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjE4cyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKSxvdXRsaW5lLWNvbG9yIC4xOHMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksb3V0bGluZS13aWR0aCAuMThzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dENhcmRWaWV3TW9kZWxDYXJkU2VsZWN0ZWR7Ym94LXNoYWRvdzowIDJweCA4cHggMCByZ2JhKDAsMCwwLDAuMjUpO291dGxpbmU6IzAzMDMwMyBzb2xpZCAycHg7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4xOHMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksb3V0bGluZS1jb2xvciAuMThzIGN1YmljLWJlemllciguMDUsMCwwLDEpLG91dGxpbmUtd2lkdGggLjE4cyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRDYXJkVmlld01vZGVsVG9uYWx7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMDUpfS55dENhcmRWaWV3TW9kZWxJbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOiMwZjBmMGZ9Lnl0Q2FyZFZpZXdNb2RlbENvbnRlbnRXcmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9Lnl0Q2FyZFZpZXdNb2RlbFRvcENvbnRlbnRDb250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7d2lkdGg6MTAwJX0ueXRDYXJkVmlld01vZGVsVG9wQ29udGVudHstbW96LWJveC1mbGV4OjE7ZmxleC1ncm93OjF9Lnl0Q2FyZFZpZXdNb2RlbElubGluZVRyYWlsaW5nQWN0aW9ue2FsaWduLXNlbGY6ZmxleC1zdGFydH0ueXRDYXJkVmlld01vZGVsSW5saW5lQ2VudGVyVHJhaWxpbmdBY3Rpb257YWxpZ24tc2VsZjpjZW50ZXJ9Lnl0Q2FyZFZpZXdNb2RlbElubGluZVRyYWlsaW5nQWN0aW9uTWFyZ2lue21hcmdpbjo2cHh9Lnl0Q2FyZFZpZXdNb2RlbE92ZXJsYXlUcmFpbGluZ0FjdGlvbntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMnB4O3RvcDoxMnB4fS55dENhcmRWaWV3TW9kZWxDYXJkVmlld01vZGVsSW5uZXJ7Ym9yZGVyLXJhZGl1czoxMnB4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTstbW96LWJveC1mbGV4OjE7ZmxleDoxfS55dENhcmRWaWV3TW9kZWxTZWxlY3RlZHtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCAjMDMwMzAzfS55dENhcmRWaWV3TW9kZWxCb3R0b21Db250ZW50UGFkZGluZywueXRDYXJkVmlld01vZGVsVG9wQ29udGVudFBhZGRpbmd7cGFkZGluZzoxMnB4fS55dENhcmRWaWV3TW9kZWxDbGlja2FibGV7Y3Vyc29yOnBvaW50ZXJ9Lnl0Q2FyZFZpZXdNb2RlbERpc2FibGVkT3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC43KTtpbnNldDowO3Bvc2l0aW9uOmFic29sdXRlfS55dENhcmRWaWV3TW9kZWxCYWNrZ3JvdW5kV3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MH0ueXRDYXJkVmlld01vZGVsQmFja2dyb3VuZHt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6ZmlsbH0ueXRDaGVja2JveEdyb3VwVmlld01vZGVsSG9zdHtkaXNwbGF5OmJsb2NrfS55dENoZWNrYm94R3JvdXBWaWV3TW9kZWxGaWVsZHNldHtib3JkZXI6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjB9Lnl0Q2hlY2tib3hJdGVtVmlld01vZGVsSG9zdHtkaXNwbGF5OmJsb2NrfS55dFBhbmVsRm9vdGVyVmlld01vZGVsSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO3BhZGRpbmc6MTJweH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbEhpZGVEaXZpZGVye2JvcmRlci10b3A6bm9uZX0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbERpc2FibGVQYWRkaW5ne3BhZGRpbmc6MTJweCAwIDB9Lnl0UGFuZWxGb290ZXJWaWV3TW9kZWxEaXNhYmxlUGFkZGluZy55dFBhbmVsRm9vdGVyVmlld01vZGVsSGlkZURpdmlkZXJ7cGFkZGluZy10b3A6MH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbFJvd0JvdHRvbVBhZGRpbmd7cGFkZGluZy1ib3R0b206MTJweH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbFRleHRQYWRkaW5ne3BhZGRpbmctcmlnaHQ6MjRweH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbFRleHRSb3d7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LW1vei1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2NvbG9yOiM2MDYwNjA7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MnJlbTtmb250LXdlaWdodDo0MDB9Lnl0UGFuZWxGb290ZXJWaWV3TW9kZWxCdXR0b25TdGFja3tkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0UGFuZWxGb290ZXJWaWV3TW9kZWxCdXR0b25TdGFja1RvcEJ1dHRvbnttYXJnaW46MCAwIDhweH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvd3tkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvd1RyYWlsaW5ney1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvd0xlZnRCdXR0b257bWFyZ2luLXJpZ2h0OjhweH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvd0Z1bGxXaWR0aHt3aWR0aDoxMDAlfS55dFBhbmVsRm9vdGVyVmlld01vZGVsQnV0dG9uUm93RXhwYW5key1tb3otYm94LWZsZXg6MTtmbGV4OjF9Lnl0UGFuZWxGb290ZXJWaWV3TW9kZWxCdXR0b25Sb3dTaHJpbmt7LW1vei1ib3gtZmxleDowO2ZsZXg6MH0ueXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvd0hpZGRlbntkaXNwbGF5Om5vbmV9Lnl0U3BlY0ljb25TaGFwZUhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Lnl0U3Bpbm5lclNoYXBlV3JhcHBlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dFNwaW5uZXJTaGFwZVNwaW5uZXJ7ZGlzcGxheTpibG9jazstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjEycHggYXV0bzt3aWR0aDozMnB4O2hlaWdodDozMnB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoycHggc29saWQgI2VlZTtib3JkZXItdG9wLWNvbG9yOiM2NjY7YW5pbWF0aW9uOnNwaW5uZXIgLjhzIGxpbmVhciBpbmZpbml0ZX0ueXRTcGlubmVyU2hhcGVTcGlubmVyOm5vdChbaGlkZGVuXSl7Y29sb3I6IzMzMztmb250LXNpemU6MS42cmVtfUBrZXlmcmFtZXMgc3Bpbm5lcnswJXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRve3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX0ueXRMb3R0aWVDb21wb25lbnRIb3N0e2Rpc3BsYXk6YmxvY2t9Lnl0TG90dGllQ29tcG9uZW50SG9zdCBzdmd7ZGlzcGxheTpibG9ja30ueXRBbmltYXRlZEljb25Ib3N0e2Rpc3BsYXk6YmxvY2t9Lnl0QW5pbWF0ZWRJY29uSG9zdCAuYW5pbWF0ZWQtbGlrZS1pY29uLC55dEFuaW1hdGVkSWNvbkhvc3QgLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweDttYXJnaW46MH0ueXRBbmltYXRlZEljb25Ib3N0IC5hbmltYXRlZC1saWtlLWljb24gLmFuaW1hdGVkLWxpa2UtaWNvbiwueXRBbmltYXRlZEljb25Ib3N0IC5hbmltYXRlZC1saWtlLWljb24gLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb24sLnl0QW5pbWF0ZWRJY29uSG9zdCAuY3VzdG9tLWFuaW1hdGVkLWxpa2UtaWNvbiAuYW5pbWF0ZWQtbGlrZS1pY29uLC55dEFuaW1hdGVkSWNvbkhvc3QgLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb24gLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb257cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMnB4LC0xMnB4KTtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4fS55dEFuaW1hdGVkSWNvbkhvc3QgLmFuaW1hdGVkLXN1YnNjcmliZS1pY29ue3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEycHgsLTEycHgpO2hlaWdodDo0OHB4O3dpZHRoOjQ4cHh9Lnl0QW5pbWF0ZWRJY29uSG9zdFtkYXRhLXNpemU9XCIxOFwiXSAuYW5pbWF0ZWQtbGlrZS1pY29uLC55dEFuaW1hdGVkSWNvbkhvc3RbZGF0YS1zaXplPVwiMThcIl0gLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb257aGVpZ2h0OjE4cHg7d2lkdGg6MThweH0ueXRBbmltYXRlZEljb25Ib3N0W2RhdGEtc2l6ZT1cIjE4XCJdIC5hbmltYXRlZC1saWtlLWljb24gLmFuaW1hdGVkLWxpa2UtaWNvbiwueXRBbmltYXRlZEljb25Ib3N0W2RhdGEtc2l6ZT1cIjE4XCJdIC5hbmltYXRlZC1saWtlLWljb24gLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb24sLnl0QW5pbWF0ZWRJY29uSG9zdFtkYXRhLXNpemU9XCIxOFwiXSAuY3VzdG9tLWFuaW1hdGVkLWxpa2UtaWNvbiAuYW5pbWF0ZWQtbGlrZS1pY29uLC55dEFuaW1hdGVkSWNvbkhvc3RbZGF0YS1zaXplPVwiMThcIl0gLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb24gLmN1c3RvbS1hbmltYXRlZC1saWtlLWljb257dHJhbnNmb3JtOnRyYW5zbGF0ZSgtOXB4LC05cHgpO2hlaWdodDozNnB4O3dpZHRoOjM2cHh9Lnl0QW5pbWF0ZWRJY29uSG9zdFtkYXRhLXNpemU9XCIxOFwiXSAuYW5pbWF0ZWQtc3Vic2NyaWJlLWljb257dHJhbnNmb3JtOnRyYW5zbGF0ZSgtOXB4LC05cHgpO2hlaWdodDozNnB4O3dpZHRoOjM2cHh9Lnl0SG9yaXpvbnRhbFNsaWRlclZpZXdNb2RlbEhvc3R7ZGlzcGxheTpibG9ja30ueXRTbGlkZXJTaGFwZUhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjoxNnB4IDEycHh9Lnl0U2xpZGVyU2hhcGVIb3N0SW5jcmVtZW50QnV0dG9ue2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXN0eWxlOm5vbmU7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmV9Lnl0U2xpZGVyU2hhcGVIb3N0SW5jcmVtZW50QnV0dG9uSWNvbldyYXBwZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjA1KTtoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS55dFNsaWRlclNoYXBlSG9zdEluY3JlbWVudEJ1dHRvbkljb257ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiMwMzAzMDM7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweH0ueXRTbGlkZXJTaGFwZUhvc3RJbmNyZW1lbnRCdXR0b246ZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHQ7Y29sb3I6IzkwOTA5MH0ueXRTbGlkZXJTaGFwZUhvc3RTbGlkZXJ7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDtmb250OmluaGVyaXQ7Y29sb3I6IzAzMDMwMzstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjAgMTJweDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O291dGxpbmU6bm9uZTtwYWRkaW5nLWJvdHRvbTowOy0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoyNHB4fS55dFNsaWRlclNoYXBlSG9zdFNsaWRlcjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2t7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIzAzMDMwMyAwLCMwMzAzMDMgdmFyKC0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQpLCM5MDkwOTAgdmFyKC0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQpLCM5MDkwOTAgMTAwJSk7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjEycHh9Lnl0U2xpZGVyU2hhcGVIb3N0U2xpZGVyOjotbW96LXJhbmdlLXRyYWNre2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCMwMzAzMDMgMCwjMDMwMzAzIHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjOTA5MDkwIHZhcigtLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50KSwjOTA5MDkwIDEwMCUpO2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMnB4fS55dFNsaWRlclNoYXBlSG9zdFNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQ6IzAzMDMwMzt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6OHB4O21hcmdpbi10b3A6LTZweH0ueXRTbGlkZXJTaGFwZUhvc3RTbGlkZXI6Oi1tb3otcmFuZ2UtdGh1bWJ7YmFja2dyb3VuZDojMDMwMzAzO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0U2xpZGVyU2hhcGVIb3N0U2xpZGVyOjotbXMtdGh1bWJ7YmFja2dyb3VuZDojMDMwMzAzO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0U2xpZGVyU2hhcGVWZXJ0aWNhbHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzttYXJnaW46MDt3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7ZGlyZWN0aW9uOnJ0bH0ueXRTbGlkZXJTaGFwZVZlcnRpY2FsU2xpZGVyey1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjA7Zm9udDppbmhlcml0O2NvbG9yOiMwMzAzMDM7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO21hcmdpbjowIDEycHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtvdXRsaW5lOm5vbmU7cGFkZGluZy1ib3R0b206MDstLXl0LXNsaWRlci1zaGFwZS1ncmFkaWVudC1wZXJjZW50OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MjRweH0ueXRTbGlkZXJTaGFwZVZlcnRpY2FsU2xpZGVyOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byB0b3AsIzAzMDMwMyAwLCMwMzAzMDMgdmFyKC0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQpLCM5MDkwOTAgdmFyKC0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQpLCM5MDkwOTAgMTAwJSk7d2lkdGg6NHB4O2JvcmRlci1yYWRpdXM6MTJweH0ueXRTbGlkZXJTaGFwZVZlcnRpY2FsU2xpZGVyOjotbW96LXJhbmdlLXRyYWNre2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHRvcCwjMDMwMzAzIDAsIzAzMDMwMyB2YXIoLS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudCksIzkwOTA5MCB2YXIoLS15dC1zbGlkZXItc2hhcGUtZ3JhZGllbnQtcGVyY2VudCksIzkwOTA5MCAxMDAlKTt3aWR0aDo0cHg7Ym9yZGVyLXJhZGl1czoxMnB4fS55dFNsaWRlclNoYXBlVmVydGljYWxTbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1ie2FwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kOiMwMzAzMDM7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjhweDttYXJnaW4tcmlnaHQ6LTZweH0ueXRTbGlkZXJTaGFwZVZlcnRpY2FsU2xpZGVyOjotbW96LXJhbmdlLXRodW1ie2JhY2tncm91bmQ6IzAzMDMwMzt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6OHB4fS55dFNsaWRlclNoYXBlVmVydGljYWxTbGlkZXI6Oi1tcy10aHVtYntiYWNrZ3JvdW5kOiMwMzAzMDM7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjhweH1AbWVkaWEgKGZvcmNlZC1jb2xvcnM6YWN0aXZlKXsueXRTbGlkZXJTaGFwZUhvc3RTbGlkZXJ7LW1vei1hcHBlYXJhbmNlOmF1dG87YXBwZWFyYW5jZTphdXRvOy13ZWJraXQtYXBwZWFyYW5jZTphdXRvfX0ueXRQYW5lbEhlYWRlclZpZXdNb2RlbEhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7cGFkZGluZzoxMHB4IDE2cHg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7bWluLWhlaWdodDo0OHB4Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59Lnl0UGFuZWxIZWFkZXJWaWV3TW9kZWxIb3N0SGlkZURpdmlkZXJ7Ym9yZGVyLWJvdHRvbTpub25lfS55dFBhbmVsSGVhZGVyVmlld01vZGVsSG9zdENvbXBhY3R7cGFkZGluZzo4cHggMTJweH0ueXRQYW5lbEhlYWRlclZpZXdNb2RlbFRpdGxlV3JhcHBlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0UGFuZWxIZWFkZXJWaWV3TW9kZWxUaXRsZUhlYWRlcnttYXJnaW46MH0ueXRQYW5lbEhlYWRlclZpZXdNb2RlbFRpdGxlSGVhZGVyTm9uSW50ZXJhY3RpdmV7cG9pbnRlci1ldmVudHM6bm9uZX0ueXRQYW5lbEhlYWRlclZpZXdNb2RlbFRpdGxle2NvbG9yOiMwMzAzMDM7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjhyZW07bGluZS1oZWlnaHQ6Mi42cmVtO2ZvbnQtd2VpZ2h0OjcwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjIuNnJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRQYW5lbEhlYWRlclZpZXdNb2RlbFRpdGxley13ZWJraXQtbGluZS1jbGFtcDoxO21heC1oZWlnaHQ6bm9uZX19Lnl0UGFuZWxIZWFkZXJWaWV3TW9kZWxUaXRsZXttYXgtaGVpZ2h0OjIuNnJlbX0ueXRQYW5lbEhlYWRlclZpZXdNb2RlbFN1YnRpdGxle21hcmdpbi10b3A6MnB4O2NvbG9yOiM2MDYwNjA7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS44cmVtO2ZvbnQtd2VpZ2h0OjQwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjEuOHJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRQYW5lbEhlYWRlclZpZXdNb2RlbFN1YnRpdGxley13ZWJraXQtbGluZS1jbGFtcDoxO21heC1oZWlnaHQ6bm9uZX19Lnl0UGFuZWxIZWFkZXJWaWV3TW9kZWxTdWJ0aXRsZXttYXgtaGVpZ2h0OjEuOHJlbX0ueXRQYW5lbEhlYWRlclZpZXdNb2RlbFRyYWlsaW5nQnV0dG9uc3tkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6bm93cmFwO21hcmdpbi1sZWZ0OjEycHh9Lnl0UGFuZWxIZWFkZXJWaWV3TW9kZWxCdXR0b246bm90KDpsYXN0LWNoaWxkKXtwYWRkaW5nLXJpZ2h0OjI0cHh9Lnl0UGFuZWxIZWFkZXJWaWV3TW9kZWxCdXR0b25PckFuY2hvcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtvdXRsaW5lOm5vbmV9Lnl0UGFuZWxIZWFkZXJWaWV3TW9kZWxCdXR0b25PckFuY2hvckZvY3VzZWR7b3V0bGluZToycHggc29saWQgY3VycmVudENvbG9yfS55dFNoZWV0Vmlld01vZGVsSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0U2hlZXRWaWV3TW9kZWxDb250ZXh0dWFse2JhY2tkcm9wLWZpbHRlcjpibHVyKDhweCk7Ym9yZGVyLXJhZGl1czoxMnB4O2JveC1zaGFkb3c6MCA0cHggMzJweCAwIHJnYmEoMCwwLDAsMC4xKTtvdmVyZmxvdzpoaWRkZW59Lnl0U2hlZXRWaWV3TW9kZWxQYWRkZWRDb250ZW50e3BhZGRpbmc6MTZweCAwfS55dFNoZWV0Vmlld01vZGVsRGlzYWJsZUJhY2tkcm9wRmlsdGVye2JhY2tkcm9wLWZpbHRlcjpub25lfS55dFNwZWNCb3R0b21TaGVldExheW91dEhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7bWluLWhlaWdodDowfS55dFNwZWNCb3R0b21TaGVldExheW91dENvbnRhaW5lcntib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmZpeGVkO21hcmdpbjowIDhweCAyNHB4O2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwfUBtZWRpYSAobWluLWFzcGVjdC1yYXRpbzoxMy85KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSkgYW5kIChtaW4td2lkdGg6NDE2cHgpLChtaW4td2lkdGg6OTMxcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKSBhbmQgKG1pbi13aWR0aDo0MTZweCl7Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0Q29udGFpbmVye3dpZHRoOjQwMHB4O21hcmdpbjowIGF1dG8gMjRweCBhdXRvfX0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRIZWFkZXJXcmFwcGVye292ZXJmbG93OmhpZGRlbjstbW96LWJveC1mbGV4OjA7ZmxleDpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNmZmY7Y3Vyc29yOi1tb3otZ3JhYjtjdXJzb3I6Z3JhYn0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRIZWFkZXJXcmFwcGVySXNEcmFnZ2luZ3tjdXJzb3I6LW1vei1ncmFiYmluZztjdXJzb3I6Z3JhYmJpbmd9Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0SGVhZGVyV3JhcHBlckJvdHRvbUJvcmRlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSl9Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0RHJhZ0xpbmV7YmFja2dyb3VuZDojMDMwMzAzO29wYWNpdHk6LjE1O2JvcmRlci1yYWRpdXM6NHB4O2hlaWdodDo0cHg7bWFyZ2luOjAgYXV0bzt3aWR0aDo0MHB4O21hcmdpbi10b3A6OHB4fS55dFNwZWNCb3R0b21TaGVldExheW91dEhlYWRlcnstbW96LWJveC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7bWFyZ2luLXRvcDo4cHh9Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0SGVhZGVyV2l0aFRpdGxle21hcmdpbi1ib3R0b206N3B4fS55dFNwZWNCb3R0b21TaGVldExheW91dFRpdGxlV3JhcHBlcnstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7bWFyZ2luLWxlZnQ6MTJweH0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRUaXRsZXtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNnJlbTtsaW5lLWhlaWdodDoyLjJyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiMwMzAzMDM7bWF4LWhlaWdodDoyMHB4O21hcmdpbjowfS55dFNwZWNCb3R0b21TaGVldExheW91dFN1YnRpdGxle2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDA7Y29sb3I6IzYwNjA2MDttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDo0cHg7bWF4LWhlaWdodDoxNnB4fS55dFNwZWNCb3R0b21TaGVldExheW91dE1vZGVybiAueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRUaXRsZXtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjJyZW07bGluZS1oZWlnaHQ6Mi44cmVtO2ZvbnQtd2VpZ2h0OjcwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjIuOHJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRNb2Rlcm4gLnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0VGl0bGV7LXdlYmtpdC1saW5lLWNsYW1wOjE7bWF4LWhlaWdodDpub25lfX1AbWVkaWEgKG1heC13aWR0aDo1MjcuOXB4KXsueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRNb2Rlcm4gLnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0VGl0bGV7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjhyZW07bGluZS1oZWlnaHQ6Mi42cmVtO2ZvbnQtd2VpZ2h0OjcwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjIuNnJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRNb2Rlcm4gLnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0VGl0bGV7LXdlYmtpdC1saW5lLWNsYW1wOjE7bWF4LWhlaWdodDpub25lfX19Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0TW9kZXJuIC55dFNwZWNCb3R0b21TaGVldExheW91dFRpdGxle21heC1oZWlnaHQ6Mi44cmVtfUBtZWRpYSAobWF4LXdpZHRoOjUyNy45cHgpey55dFNwZWNCb3R0b21TaGVldExheW91dE1vZGVybiAueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRUaXRsZXttYXgtaGVpZ2h0OjIuNnJlbX19Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0TW9kZXJuIC55dFNwZWNCb3R0b21TaGVldExheW91dFN1YnRpdGxle2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDA7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7bWF4LWhlaWdodDoxLjhyZW07ZGlzcGxheTpib3g7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3JtYWx9QHN1cHBvcnRzICgtd2Via2l0LWxpbmUtY2xhbXA6MSl7Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0TW9kZXJuIC55dFNwZWNCb3R0b21TaGVldExheW91dFN1YnRpdGxley13ZWJraXQtbGluZS1jbGFtcDoxO21heC1oZWlnaHQ6bm9uZX19Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0TW9kZXJuIC55dFNwZWNCb3R0b21TaGVldExheW91dFN1YnRpdGxle21heC1oZWlnaHQ6MS44cmVtfS55dFNwZWNCb3R0b21TaGVldExheW91dEFjdGlvbkhlYWRlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiMwMzAzMDM7bWFyZ2luOjAgMTJweH0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRDb250ZW50V3JhcHBlcnstbW96LWJveC1mbGV4OjE7ZmxleDoxOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO292ZXJmbG93LXk6c2Nyb2xsfS55dFNwZWNCb3R0b21TaGVldExheW91dEJvdHRvbVNoZWV0Q29udGVudHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Y29sb3I6IzAzMDMwM30ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRGb290ZXJXcmFwcGVye2Rpc3BsYXk6YmxvY2s7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47LW1vei1ib3gtZmxleDowO2ZsZXg6bm9uZTtwb3NpdGlvbjpzdGlja3k7Ym90dG9tOjB9Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0Rm9vdGVyQnV0dG9uV3JhcHBlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDttYXJnaW46MTJweCAwfS55dFNwZWNCb3R0b21TaGVldExheW91dEZvb3RlckJ1dHRvbldyYXBwZXJMYW5kc2NhcGVCdXR0b25XcmFwcGVye21hcmdpbjo2cHggMH0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRTZWNvbmRhcnlCdXR0b257ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7bWFyZ2luLXJpZ2h0OjhweDttYXJnaW4tbGVmdDoxMnB4fS55dFNwZWNCb3R0b21TaGVldExheW91dFNlY29uZGFyeUJ1dHRvblRyYWlsaW5nUGFpcnstbW96LWJveC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0U2Vjb25kYXJ5QnV0dG9uU3BsaXRQYWlyey1tb3otYm94LWZsZXg6MTtmbGV4OjE7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRTZWNvbmRhcnlCdXR0b25QcmltYXJ5U3BsaXRQYWlyey1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0UHJpbWFyeUJ1dHRvbntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS55dFNwZWNCb3R0b21TaGVldExheW91dFByaW1hcnlCdXR0b25EZWZhdWx0e21hcmdpbjowIDEycHg7d2lkdGg6MTAwJX0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRQcmltYXJ5QnV0dG9uVHJhaWxpbmdQYWlyey1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDttYXJnaW4tcmlnaHQ6MTJweH0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRQcmltYXJ5QnV0dG9uUHJpbWFyeVNwbGl0UGFpciwueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRQcmltYXJ5QnV0dG9uU3BsaXRQYWlyey1tb3otYm94LWZsZXg6MTtmbGV4OjE7bWFyZ2luLXJpZ2h0OjEycHg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRGb290ZXJMYWJlbFdyYXBwZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbjowIDEycHg7aGVpZ2h0OjMwcHh9Lnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0Rm9vdGVyTGFiZWxXcmFwcGVyV2l0aG91dEJ1dHRvbnN7bWFyZ2luLWJvdHRvbToxMnB4fS55dFNwZWNCb3R0b21TaGVldExheW91dExlYWRpbmdMYWJlbCwueXRTcGVjQm90dG9tU2hlZXRMYXlvdXRUcmFpbGluZ0xhYmVse21hcmdpbi10b3A6MTJweDtjb2xvcjojNjA2MDYwO2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NDAwfS55dENvbnRleHR1YWxTaGVldExheW91dEhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQtY29sb3I6I2ZmZjtoZWlnaHQ6MTAwJTttaW4td2lkdGg6MTI4cHg7bWF4LXdpZHRoOjQwMHB4O3dpZHRoOjEwMCU7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gNDhweCk7bWluLWhlaWdodDowfS55dENvbnRleHR1YWxTaGVldExheW91dEhvc3RPbGRNaW5XaWR0aHttaW4td2lkdGg6MjU2cHh9Lnl0Q29udGV4dHVhbFNoZWV0TGF5b3V0QWRkUGFkZGluZ3twYWRkaW5nLWJvdHRvbTo4cHh9Lnl0Q29udGV4dHVhbFNoZWV0TGF5b3V0SGVhZGVyQ29udGFpbmVyey1tb3otYm94LWZsZXg6MDtmbGV4OjB9Lnl0Q29udGV4dHVhbFNoZWV0TGF5b3V0Q29udGVudENvbnRhaW5lcnstbW96LWJveC1mbGV4OjE7ZmxleC1ncm93OjE7b3ZlcmZsb3cteTphdXRvO3Njcm9sbGJhci1jb2xvcjp0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtzY3JvbGxiYXItd2lkdGg6dGhpbn0ueXRDb250ZXh0dWFsU2hlZXRMYXlvdXRDb250ZW50Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3dpZHRoOjE2cHh9Lnl0Q29udGV4dHVhbFNoZWV0TGF5b3V0Q29udGVudENvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7aGVpZ2h0OjU2cHg7Ym9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyOjRweCBzb2xpZCB0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNsaXA6Y29udGVudC1ib3g7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ueXRDb250ZXh0dWFsU2hlZXRMYXlvdXRDb250ZW50Q29udGFpbmVyOmhvdmVye3Njcm9sbGJhci1jb2xvcjojOTA5MDkwIHRyYW5zcGFyZW50fS55dENvbnRleHR1YWxTaGVldExheW91dENvbnRlbnRDb250YWluZXI6aG92ZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY29sb3I6IzkwOTA5MH0ueXRDb250ZXh0dWFsU2hlZXRMYXlvdXRGb290ZXJDb250YWluZXJ7LW1vei1ib3gtZmxleDowO2ZsZXg6MH0ueXR3VmFyaWFibGVTcGVlZENvbnRyb2xsZXJWaWV3TW9kZWxIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXJnaW46MTJweH0ueXR3VmFyaWFibGVTcGVlZENvbnRyb2xsZXJWaWV3TW9kZWxTcGVlZEluZGljYXRvckNvbnRhaW5lcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOmF1dG99Lnl0d1ZhcmlhYmxlU3BlZWRDb250cm9sbGVyVmlld01vZGVsUGxheWJhY2tTcGVlZERpc3BsYXl7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjtjb2xvcjojMDMwMzAzO2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6Mi44cmVtO2xpbmUtaGVpZ2h0OjMuOHJlbTtmb250LXdlaWdodDo5MDB9QG1lZGlhIChtYXgtd2lkdGg6NTI3LjlweCl7Lnl0d1ZhcmlhYmxlU3BlZWRDb250cm9sbGVyVmlld01vZGVsUGxheWJhY2tTcGVlZERpc3BsYXl7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyLjRyZW07bGluZS1oZWlnaHQ6My4ycmVtO2ZvbnQtd2VpZ2h0OjkwMH19Lnl0d1ZhcmlhYmxlU3BlZWRDb250cm9sbGVyVmlld01vZGVsUHJlbWl1bUJhZGdle3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEwMCU7bWFyZ2luLXJpZ2h0OjhweH0ueXR3VmFyaWFibGVTcGVlZENvbnRyb2xsZXJWaWV3TW9kZWxTbGlkZXJDb250YWluZXJ7bWFyZ2luOjhweCAwfS55dHdWYXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbFBsYXliYWNrU3BlZWRCdXR0b257bWFyZ2luOjAgNHB4fS55dHdWYXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbEJ1dHRvbkNvbnRhaW5lcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0d1ZhcmlhYmxlU3BlZWRDb250cm9sbGVyU3BlZWRCdXR0b25WaWV3TW9kZWxIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbW96LWJveC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1zZWxmOmZsZXgtc3RhcnR9Lnl0d1ZhcmlhYmxlU3BlZWRDb250cm9sbGVyU3BlZWRCdXR0b25WaWV3TW9kZWxTcGVlZExhYmVse21hcmdpbi10b3A6NHB4O2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6IzAzMDMwM30ueXRXZWJTY3JpbUhvc3R7cG9zaXRpb246Zml4ZWQ7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjgpfS55dFdlYlNjcmltSG9zdFJlbGF0aXZle3Bvc2l0aW9uOmFic29sdXRlfS55dFdlYlNjcmltSG9zdE1vZGVybk92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMyl9Lnl0V2ViU2NyaW1Ib3N0Qm90dG9tU2hlZXR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNil9Lnl0V2ViU2NyaW1Ib3N0RW5nYWdlbWVudFBhbmVse3otaW5kZXg6MDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTt0b3A6MTAwdnd9Lnl0V2ViU2NyaW1Ib3N0RHJhZ2dhYmxlRW5nYWdlbWVudFBhbmVse3otaW5kZXg6Mzt0b3A6MH0ueXRXZWJTY3JpbUhvc3REcmF3ZXJMYXlvdXR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNik7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCl9Lnl0V2ViU2NyaW1EaWFsb2dDb250YWluZXJ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ei1pbmRleDo0fS55dFdlYlNjcmltSGlkZGVuQnV0dG9ue3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTJweDt3aWR0aDoxMnB4O3BhZGRpbmc6MDtib3JkZXI6bm9uZTtvdXRsaW5lOm5vbmU7Zm9udDppbmhlcml0O3RleHQtdHJhbnNmb3JtOmluaGVyaXQ7Y29sb3I6aW5oZXJpdDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fWJvdHRvbS1zaGVldC1jb250YWluZXJ7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDo1fWJvdHRvbS1zaGVldC1jb250YWluZXIgLmNsb3NlLWJ1dHRvbntwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEycHg7d2lkdGg6MTJweH1jMy1vdmVybGF5LmJvdHRvbS1zaGVldC1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjYpfVtib3R0b20tc2hlZXQtb3Blbl17b3ZlcmZsb3c6aGlkZGVufVttb2RhbC1vcGVuLWJvZHlde3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDtyaWdodDowfS5iMy1pZnJhbWUtYW5jZXN0b3JbbW9kYWwtb3Blbi1ib2R5XXtwb3NpdGlvbjphYnNvbHV0ZX0ubW9kYWwtaGlkZGVuLWJ1dHRvbntwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEycHg7d2lkdGg6MTJweH0uYnV0dG9uLXdpdGgtaWNvbntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTttaW4td2lkdGg6NS4xNGVtO21hcmdpbjowIC4yOWVtO2ZvbnQtc2l6ZToxLjRyZW07Ym9yZGVyLXJhZGl1czozcHh9LmJ1dHRvbi13aXRoLWljb24tYnV0dG9ue3BhZGRpbmc6LjdlbSAuNTdlbX0uYnV0dG9uLXdpdGgtaWNvbi5jb21wYWN0e21hcmdpbjotLjdlbSAtLjU3ZW19LmJ1dHRvbi13aXRoLWljb24uY29tcGFjdCsuYnV0dG9uLXdpdGgtaWNvbi5jb21wYWN0e21hcmdpbi1sZWZ0Oi43ZW19LmJ1dHRvbi13aXRoLWljb24taW5uZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uYnV0dG9uLXdpdGgtaWNvbi1idXR0b25bZGlzYWJsZWRdLC5idXR0b24td2l0aC1pY29uLmRpc2FibGVkIC5idXR0b24td2l0aC1pY29uLWJ1dHRvbntjb2xvcjojOTA5MDkwfS5idXR0b24tcmVuZGVyZXJbZGF0YS1zdHlsZT1TVFlMRV9CUkFORF17Y29sb3I6I2UxMDAyZH0uYnV0dG9uLXJlbmRlcmVyW2RhdGEtc3R5bGU9U1RZTEVfUFJJTUFSWV06bm90KFtkaXNhYmxlZD10cnVlXSl7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwNjVmZDR9LmJ1dHRvbi1yZW5kZXJlcltkYXRhLXN0eWxlPVNUWUxFX1BSSU1BUlldW2Rpc2FibGVkPXRydWVde2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJ1dHRvbi1yZW5kZXJlcltkYXRhLXN0eWxlPVNUWUxFX1RFWFRde2NvbG9yOiM2MDYwNjB9LmJ1dHRvbi1yZW5kZXJlcltkYXRhLXN0eWxlPVNUWUxFX1RFWFRdIC5sb2dvLWFycm93e2ZpbGw6I2ZmZn0uYnV0dG9uLXJlbmRlcmVyW2RhdGEtc3R5bGU9U1RZTEVfQkxVRV9URVhUXXtjb2xvcjojMDY1ZmQ0fS5idXR0b24tcmVuZGVyZXJbZGF0YS1zdHlsZT1TVFlMRV9CTFVFX1RFWFRfV0lUSF9JTlZFUlNFX1RIRU1FXXtjb2xvcjojM2VhNmZmfS5idXR0b24tcmVuZGVyZXJbZGF0YS1zdHlsZT1TVFlMRV9ERVNUUlVDVElWRV17YmFja2dyb3VuZC1jb2xvcjojZTEwMDJkO2JvcmRlci1jb2xvcjojZTEwMDJkO2NvbG9yOiNmZmZ9LmJ1dHRvbi1yZW5kZXJlcltkYXRhLXN0eWxlPVNUWUxFX1NVR0dFU1RJVkVde2JvcmRlcjoxcHggc29saWQgIzA2NWZkNDtjb2xvcjojMDY1ZmQ0fS5idXR0b24tcmVuZGVyZXJbZGF0YS1zdHlsZT1TVFlMRV9PVkVSTEFZXXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4zKTtjb2xvcjojZmZmfS5idXR0b24tcmVuZGVyZXJbZGF0YS1zdHlsZT1TVFlMRV9EQVJLXXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4zKTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyl9LmJ1dHRvbi1yZW5kZXJlcltkYXRhLXN0eWxlPVNUWUxFX0lOQUNUSVZFX09VVExJTkVde2NvbG9yOiM2MDYwNjA7Ym9yZGVyOjFweCBzb2xpZCAjNjA2MDYwO3BhZGRpbmc6NXB4IDExcHh9LmJ1dHRvbi1yZW5kZXJlcltkYXRhLWljb24tb25seT10cnVlXXttaW4td2lkdGg6MDttYXJnaW46MH0uYnV0dG9uLXJlbmRlcmVyW2RhdGEtaWNvbi1vbmx5PWZhbHNlXSAuYnV0dG9uLXJlbmRlcmVyLWljb257bWFyZ2luOjAgOHB4fS5idXR0b24tcmVuZGVyZXItdGV4dHthbGlnbi1zZWxmOmNlbnRlcjttaW4taGVpZ2h0OjFlbTtsaW5lLWhlaWdodDoxZW07Zm9udC13ZWlnaHQ6NTAwfVtpcy1idXN5PXRydWVdIC5idXR0b24tcmVuZGVyZXItaWNvbixbaXMtYnVzeT10cnVlXSAuYnV0dG9uLXJlbmRlcmVyLXRleHR7dmlzaWJpbGl0eTpoaWRkZW59LmJ1dHRvbi13aXRoLWljb24tc3Bpbm5lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDttYXJnaW46YXV0b30uYnV0dG9uLXJlbmRlcmVyLXdpdGgtYW5pbWF0aW9uIC5idXR0b24td2l0aC1pY29uLWJ1dHRvbntvdmVyZmxvdzp2aXNpYmxlfWMzLWljb257ZGlzcGxheTotbW96LWlubGluZS1ib3g7ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4LXNocmluazowO3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7ZmlsbDpjdXJyZW50Q29sb3I7c3Ryb2tlOm5vbmV9W2Rpcj1ydGxdIGMzLWljb25bZmxpcC1mb3ItcnRsPXRydWVde3RyYW5zZm9ybTpzY2FsZVgoLTEpfS5pY29uLWJ1dHRvbntib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7cGFkZGluZzo4cHg7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fWMzLWljb24gc3Zne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9YzMtaWNvbi5pY29uLXN0YXRlLW91dGxpbmVbaWNvbi1zdGF0ZS1maWxsZWRde2Rpc3BsYXk6bm9uZX1jMy1pY29uLmljb24tc3RhdGUtZmlsbGVkW2ljb24tc3RhdGUtb3V0bGluZV17ZGlzcGxheTpub25lfS5waXZvdC1iYXItaXRlbS10YWIgYzMtaWNvbltpY29uLXN0YXRlLWZpbGxlZF17ZGlzcGxheTpub25lfS5waXZvdC1iYXItaXRlbS10YWIgYzMtaWNvbltpY29uLXN0YXRlLW91dGxpbmVde2Rpc3BsYXk6YmxvY2t9LnBpdm90LWJhci1pdGVtLXRhYlthcmlhLXNlbGVjdGVkPXRydWVdIGMzLWljb25baWNvbi1zdGF0ZS1maWxsZWRde2Rpc3BsYXk6YmxvY2t9LnBpdm90LWJhci1pdGVtLXRhYlthcmlhLXNlbGVjdGVkPXRydWVdIGMzLWljb25baWNvbi1zdGF0ZS1vdXRsaW5lXXtkaXNwbGF5Om5vbmV9I21lbnUsLm1lbnUtY29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt6LWluZGV4OjR9Lm1lbnUtY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7bWF4LWhlaWdodDoxMDAlO292ZXJmbG93LXk6YXV0bztjb2xvcjojMDMwMzAzO2JhY2tncm91bmQtY29sb3I6I2ZmZjtwYWRkaW5nOjNweH0ubWVudS1jb250ZW50Lm1lbnUtYm90dG9te2JvdHRvbTowO2NvbG9yOiMwMzAzMDM7cGFkZGluZzowO3Bvc2l0aW9uOmZpeGVkO21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCV9LmJvdHRvbS1tZW51LWNhbmNlbHtib3JkZXItdG9wOjFweCBzb2xpZCAjZjFmMWYxO3BhZGRpbmc6OHB4IDB9Lm1lbnUtY29udGVudD5he2Rpc3BsYXk6YmxvY2t9Lm1lbnUtY2FuY2VsLWJ1dHRvbntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5tZW51LWNhbmNlbC1pY29ue21hcmdpbjowIDhweH0ubWVudS1jb250ZW50Lm1lbnUtYm90dG9tIGMzLWljb257Y29sb3I6IzAzMDMwMzttYXJnaW46MCAzMnB4IDAgMH0ubWVudS1jb250ZW50Om5vdCgubWVudS1zaG93LWljb25zKSAubWVudS1pdGVtLWJ1dHRvbiBjMy1pY29ue2Rpc3BsYXk6bm9uZX1AbWVkaWEgKG1pbi13aWR0aDozMzBweCl7Lm1lbnUtY29udGVudDpub3QoLm1lbnUtYm90dG9tKXttaW4td2lkdGg6MjUwcHg7bWF4LXdpZHRoOjM1NnB4O21hcmdpbjo0MHB4fX0ubWVudS1mdWxsLXdpZHRoIC5tZW51LWNvbnRlbnR7YmFja2dyb3VuZC1jb2xvcjojZmZmO21pbi13aWR0aDoxMDAlO21pbi1oZWlnaHQ6MTAwJTttYXJnaW46MDtwYWRkaW5nOjA7aGVpZ2h0OjFweDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1lbnUtY29udGVudC5yb3VuZGVkLWNvbnRhaW5lcntib3JkZXItcmFkaXVzOjhweH0uaWNvbi1idXR0b24uc21hbGx7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowO3dpZHRoOjE2cHh9eXRtLW1lbnUtaXRlbXtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6M3B4IDB9eXRtLW1lbnUtaXRlbSAubWVudS1pdGVtLWJ1dHRvbntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDttaW4taGVpZ2h0OjQ4cHg7cGFkZGluZzo4cHggMTZweDttYXJnaW4tbGVmdDowO3dpZHRoOjEwMCU7Y3Vyc29yOnBvaW50ZXI7dGV4dC1hbGlnbjppbml0aWFsO3RleHQtdHJhbnNmb3JtOnVuc2V0Oy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS42cmVtO2xpbmUtaGVpZ2h0OjIuMnJlbTtmb250LXdlaWdodDo0MDB9eXRtLW1lbnUtaXRlbSAubWVudS1pdGVtLWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4wNSl9eXRtLW1lbnUtaXRlbSBjMy1pY29ue21hcmdpbi1yaWdodDoyNHB4fS5tZW51LWJvdHRvbSAubWVudS1pdGVtLWJ1dHRvbntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZToxLjZyZW07cGFkZGluZzoxMXB4IDE2cHh9Lnl0d1BsYXllckJvdHRvbUNvbnRyb2xzSG9zdHtkaXNwbGF5OmJsb2NrfS55dHdQbGF5ZXJCb3R0b21Db250cm9sc0Z1bGxzY3JlZW5CdXR0b25XcmFwcGVyey1tb3otbWFyZ2luLXN0YXJ0OmF1dG87bWFyZ2luLWlubGluZS1zdGFydDphdXRvfS55dEJhZGdlU2hhcGVIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDpob3Jpem9udGFsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLXJhZGl1czoycHg7cGFkZGluZzowIDRweH0ueXRCYWRnZVNoYXBlVHlwb2dyYXBoeXtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuMnJlbTtsaW5lLWhlaWdodDoxLjhyZW07Zm9udC13ZWlnaHQ6NTAwfS55dEJhZGdlU2hhcGVJY29ue2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXJpZ2h0OjJweDtoZWlnaHQ6MTZweDt3aWR0aDoxNnB4fS55dEJhZGdlU2hhcGVNb2Rlcm4gLnl0QmFkZ2VTaGFwZUljb257bWFyZ2luLXJpZ2h0OjJweDtoZWlnaHQ6MTJweDt3aWR0aDoxMnB4fS55dEJhZGdlU2hhcGVOb1RleHR7cGFkZGluZzowIDFweDttaW4taGVpZ2h0OjE4cHh9Lnl0QmFkZ2VTaGFwZU5vVGV4dCAueXRCYWRnZVNoYXBlSWNvbnttYXJnaW4tcmlnaHQ6MH0ueXRCYWRnZVNoYXBlVGh1bWJuYWlsQmFkZ2V7Ym9yZGVyLXJhZGl1czo0cHg7cGFkZGluZzoxcHggNHB4fS55dEJhZGdlU2hhcGVUaHVtYm5haWxCYWRnZSAueXRCYWRnZVNoYXBlSWNvbnttYXJnaW4tcmlnaHQ6NHB4O2hlaWdodDoxMnB4O3dpZHRoOjEycHh9Lnl0QmFkZ2VTaGFwZVRodW1ibmFpbEJhZGdlLnl0QmFkZ2VTaGFwZU5vVGV4dCAueXRCYWRnZVNoYXBlSWNvbnttYXJnaW4tcmlnaHQ6MH0ueXRCYWRnZVNoYXBlVGh1bWJuYWlsQmFkZ2VSZWRlc2lnbntiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpO2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjAgNnB4fS55dEJhZGdlU2hhcGVTdGF0dXNCYWRnZXtib3JkZXItcmFkaXVzOjRweDtwYWRkaW5nOjFweCA0cHh9Lnl0QmFkZ2VTaGFwZVN0YXR1c0JhZGdlIC55dEJhZGdlU2hhcGVJY29ue21hcmdpbi1yaWdodDo0cHg7aGVpZ2h0OjEycHg7d2lkdGg6MTJweH0ueXRCYWRnZVNoYXBlU3RhdHVzQmFkZ2UueXRCYWRnZVNoYXBlTm9UZXh0IC55dEJhZGdlU2hhcGVJY29ue21hcmdpbi1yaWdodDowfS55dEJhZGdlU2hhcGVUZXh0e2Rpc3BsYXk6YmxvY2s7d2hpdGUtc3BhY2U6bm93cmFwfS55dEJhZGdlU2hhcGVUZXh0Q2xpcFRleHRPdmVyZmxvd3tvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRCYWRnZVNoYXBlVGV4dEhhc011bHRpcGxlQmFkZ2VzSW5Sb3d7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bWF4LXdpZHRoOjIwY2h9Lnl0QmFkZ2VTaGFwZURlZmF1bHR7XG4gIC8qICFrZWVwICovY29sb3I6IzYwNjA2MDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9Lnl0QmFkZ2VTaGFwZURlZmF1bHQueXRCYWRnZVNoYXBlT3ZlcmxheXtjb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpfS55dEJhZGdlU2hhcGVEZWZhdWx0Lnl0QmFkZ2VTaGFwZU1vZGVybntjb2xvcjojNjA2MDYwO2JhY2tncm91bmQ6bm9uZTtwYWRkaW5nLWxlZnQ6MH0ueXRCYWRnZVNoYXBlTWVkaWF7XG4gIC8qICFrZWVwICovY29sb3I6IzYwNjA2MDtvdXRsaW5lOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7b3V0bGluZS1vZmZzZXQ6LTFweH0ueXRCYWRnZVNoYXBlTWVkaWEueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiM2MDYwNjA7b3V0bGluZToxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO291dGxpbmUtb2Zmc2V0Oi0xcHh9Lnl0QmFkZ2VTaGFwZU1lZGlhT3ZlcmxheXtcbiAgLyogIWtlZXAgKi9jb2xvcjojZmZmO291dGxpbmU6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4zKTtvdXRsaW5lLW9mZnNldDotMXB4fS55dEJhZGdlU2hhcGVNZWRpYU92ZXJsYXkueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiNmZmY7b3V0bGluZToxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMpO291dGxpbmUtb2Zmc2V0Oi0xcHh9Lnl0QmFkZ2VTaGFwZVByb21vdGVke1xuICAvKiAha2VlcCAqL2NvbG9yOiMwMzAzMDM7cGFkZGluZy1sZWZ0OjB9Lnl0QmFkZ2VTaGFwZVByb21vdGVkLnl0QmFkZ2VTaGFwZU1vZGVybntjb2xvcjojMDMwMzAzO2JhY2tncm91bmQ6bm9uZTtwYWRkaW5nLWxlZnQ6MH0ueXRCYWRnZVNoYXBlUHJvbW90ZWRJbnZlcnRlZC55dEJhZGdlU2hhcGVNb2Rlcm57Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOm5vbmU7cGFkZGluZy1sZWZ0OjB9Lnl0QmFkZ2VTaGFwZVRpbWVseXtcbiAgLyogIWtlZXAgKi9jb2xvcjojNjA2MDYwfS55dEJhZGdlU2hhcGVUaW1lbHkgLnl0QmFkZ2VTaGFwZUljb257Y29sb3I6I2UxMDAyZH0ueXRCYWRnZVNoYXBlVGltZWx5e3BhZGRpbmctbGVmdDowfS55dEJhZGdlU2hhcGVUaW1lbHkueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiM2MDYwNjB9Lnl0QmFkZ2VTaGFwZVRpbWVseS55dEJhZGdlU2hhcGVNb2Rlcm4gLnl0QmFkZ2VTaGFwZUljb257Y29sb3I6I2UxMDAyZH0ueXRCYWRnZVNoYXBlVGltZWx5Lnl0QmFkZ2VTaGFwZU1vZGVybntwYWRkaW5nLWxlZnQ6MH0ueXRCYWRnZVNoYXBlUHJlbWl1bXtcbiAgLyogIWtlZXAgKi9jb2xvcjojZmZmO2JhY2tncm91bmQ6I2UxMDAyZH0ueXRCYWRnZVNoYXBlUHJlbWl1bS55dEJhZGdlU2hhcGVNb2Rlcm57Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiNlMTAwMmR9Lnl0QmFkZ2VTaGFwZVNhbGV7XG4gIC8qICFrZWVwICovY29sb3I6I2MzMDAyN30ueXRCYWRnZVNoYXBlU2FsZSAueXRCYWRnZVNoYXBlSWNvbntjb2xvcjojYzMwMDI3fS55dEJhZGdlU2hhcGVTYWxle3BhZGRpbmctbGVmdDowfS55dEJhZGdlU2hhcGVTYWxlLnl0QmFkZ2VTaGFwZU1vZGVybiwueXRCYWRnZVNoYXBlU2FsZS55dEJhZGdlU2hhcGVNb2Rlcm4gLnl0QmFkZ2VTaGFwZUljb257Y29sb3I6I2MzMDAyN30ueXRCYWRnZVNoYXBlU2FsZS55dEJhZGdlU2hhcGVNb2Rlcm57cGFkZGluZy1sZWZ0OjB9Lnl0QmFkZ2VTaGFwZU1lbWJlcnNoaXB7XG4gIC8qICFrZWVwICovY29sb3I6IzEwNzUxNjtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9Lnl0QmFkZ2VTaGFwZU1lbWJlcnNoaXAueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiMxMDc1MTY7YmFja2dyb3VuZDpub25lO3BhZGRpbmctbGVmdDowfS55dEJhZGdlU2hhcGVDb21tZXJjZXtcbiAgLyogIWtlZXAgKi9jb2xvcjojMTA3NTE2O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjA1KX0ueXRCYWRnZVNoYXBlQ29tbWVyY2UueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiMxMDc1MTY7YmFja2dyb3VuZDpub25lO3BhZGRpbmctbGVmdDowfS55dEJhZGdlU2hhcGVMaXZle1xuICAvKiAha2VlcCAqL2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDIyNSwwLDQ1LDAuOSl9Lnl0QmFkZ2VTaGFwZUxpdmUueXRCYWRnZVNoYXBlT3ZlcmxheXtjb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgyMjUsMCw0NSwwLjkpfS55dEJhZGdlU2hhcGVMaXZlLnl0QmFkZ2VTaGFwZU1vZGVybntjb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgyMjUsMCw0NSwwLjkpfS55dEJhZGdlU2hhcGVTdGF0dXNOZXd7XG4gIC8qICFrZWVwICovY29sb3I6IzA2NWZkNDtvdXRsaW5lOjFweCBzb2xpZCAjMDY1ZmQ0O291dGxpbmUtb2Zmc2V0Oi0xcHh9Lnl0QmFkZ2VTaGFwZVN0YXR1c05ldy55dEJhZGdlU2hhcGVNb2Rlcm57Y29sb3I6IzA2NWZkNDtvdXRsaW5lOjFweCBzb2xpZCAjMDY1ZmQ0O291dGxpbmUtb2Zmc2V0Oi0xcHh9Lnl0QmFkZ2VTaGFwZVN0YXR1c0NvbXBsZXRle1xuICAvKiAha2VlcCAqL2NvbG9yOiMwMDU5MTc7YmFja2dyb3VuZDojZGVmZmRlfS55dEJhZGdlU2hhcGVTdGF0dXNDb21wbGV0ZS55dEJhZGdlU2hhcGVNb2Rlcm57Y29sb3I6IzAwNTkxNztiYWNrZ3JvdW5kOiNkZWZmZGV9Lnl0QmFkZ2VTaGFwZVN0YXR1c1dhcm5pbmd7XG4gIC8qICFrZWVwICovY29sb3I6IzdjMjkwMDtiYWNrZ3JvdW5kOiNmZmVhY2Z9Lnl0QmFkZ2VTaGFwZVN0YXR1c1dhcm5pbmcueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiM3YzI5MDA7YmFja2dyb3VuZDojZmZlYWNmfS55dEJhZGdlU2hhcGVTdGF0dXNFcnJvcntcbiAgLyogIWtlZXAgKi9jb2xvcjojOTkwNDEyO2JhY2tncm91bmQ6cmdiYSgyNTUsODUsMTE5LDAuMil9Lnl0QmFkZ2VTaGFwZVN0YXR1c0Vycm9yLnl0QmFkZ2VTaGFwZU1vZGVybntjb2xvcjojOTkwNDEyO2JhY2tncm91bmQ6cmdiYSgyNTUsODUsMTE5LDAuMil9Lnl0QmFkZ2VTaGFwZVN0YXR1c0RlZmF1bHR7XG4gIC8qICFrZWVwICovY29sb3I6IzAzMDMwMztiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKX0ueXRCYWRnZVNoYXBlU3RhdHVzRGVmYXVsdC55dEJhZGdlU2hhcGVNb2Rlcm57Y29sb3I6IzAzMDMwMztiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKX0ueXRCYWRnZVNoYXBlVGh1bWJuYWlsRGVmYXVsdHtcbiAgLyogIWtlZXAgKi9jb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpfS55dEJhZGdlU2hhcGVUaHVtYm5haWxEZWZhdWx0Lnl0QmFkZ2VTaGFwZU1vZGVybntjb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpfS55dEJhZGdlU2hhcGVUaHVtYm5haWxMaXZle1xuICAvKiAha2VlcCAqL2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDIyNSwwLDQ1LDAuOSl9Lnl0QmFkZ2VTaGFwZVRodW1ibmFpbExpdmUueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDIyNSwwLDQ1LDAuOSl9Lnl0QmFkZ2VTaGFwZVRodW1ibmFpbFNwZWNpYWx7XG4gIC8qICFrZWVwICovY29sb3I6IzAzMDMwMztiYWNrZ3JvdW5kOiNmZmZ9Lnl0QmFkZ2VTaGFwZVRodW1ibmFpbFNwZWNpYWwgLnl0QmFkZ2VTaGFwZUljb257Y29sb3I6I2UxMDAyZH0ueXRCYWRnZVNoYXBlVGh1bWJuYWlsU3BlY2lhbC55dEJhZGdlU2hhcGVNb2Rlcm57Y29sb3I6IzAzMDMwMztiYWNrZ3JvdW5kOiNmZmZ9Lnl0QmFkZ2VTaGFwZVRodW1ibmFpbFNwZWNpYWwueXRCYWRnZVNoYXBlTW9kZXJuIC55dEJhZGdlU2hhcGVJY29ue2NvbG9yOiNlMTAwMmR9Lnl0QmFkZ2VTaGFwZVRodW1ibmFpbERlZmF1bHRSZWRlc2lnbntcbiAgLyogIWtlZXAgKi9jb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjMpfS55dEJhZGdlU2hhcGVUaHVtYm5haWxEZWZhdWx0UmVkZXNpZ24ueXRCYWRnZVNoYXBlTW9kZXJue2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMyl9Lnl0QmFkZ2VTaGFwZUFke2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMDMwMzAzO3doaXRlLXNwYWNlOm5vd3JhcDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjA7Zm9udC1zaXplOnVuc2V0O2xpbmUtaGVpZ2h0OnVuc2V0fS55dEJhZGdlU2hhcGVBZC55dEJhZGdlU2hhcGVBZHNJbmNsdWRlRG90OmFmdGVye2NvbnRlbnQ6XCLCt1wiOy1tb3otcGFkZGluZy1lbmQ6NHB4O3BhZGRpbmctaW5saW5lLWVuZDo0cHg7LW1vei1wYWRkaW5nLXN0YXJ0OjRweDtwYWRkaW5nLWlubGluZS1zdGFydDo0cHh9Lnl0QmFkZ2VTaGFwZUFkLnl0QmFkZ2VTaGFwZU92ZXJsYXl7Y29sb3I6I2ZmZn0ueXRCYWRnZVNoYXBlTWVkaXVtRm9udEFkQmFkZ2V7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MnJlbTtmb250LXdlaWdodDo1MDB9Lnl0QmFkZ2VTaGFwZUxhcmdlRm9udEFkQmFkZ2V7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6Mi4ycmVtO2ZvbnQtd2VpZ2h0OjUwMH0ueXRCYWRnZVNoYXBlSXNFbXB0eXtkaXNwbGF5Om5vbmV9LmFjY291bnRJbmZvSG9zdHtkaXNwbGF5OmJsb2NrfS5saWtlLWJ1dHRvbi1yZW5kZXJlciBbYXJpYS1wcmVzc2VkPXRydWVdIGMzLWljb257Y29sb3I6IzA2NWZkNH0ubGlrZS1idXR0b24tcmVuZGVyZXIgW2FyaWEtcHJlc3NlZD10cnVlXSBjMy1pY29uIHBhdGh7ZmlsbDojM2VhNmZmO3N0cm9rZTojZmZmO3N0cm9rZS13aWR0aDoxcHh9eXRtLW1lbnUtcmVuZGVyZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXh9LmJvdHRvbS1zaGVldC1tZWRpYS1tZW51LWl0ZW0geXRtLW1lbnUtaXRlbXtwYWRkaW5nOjA7aGVpZ2h0OjQ4cHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uYm90dG9tLXNoZWV0LW1lZGlhLW1lbnUtaXRlbSAubWVudS1pdGVtLWJ1dHRvbntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjA7bWFyZ2luLWxlZnQ6MTJweDtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNnJlbTtsaW5lLWhlaWdodDoyLjJyZW07Zm9udC13ZWlnaHQ6NDAwfS5ib3R0b20tc2hlZXQtbWVkaWEtbWVudS1pdGVtIGMzLWljb257bWFyZ2luLXJpZ2h0OjEycHh9eXRtLXRodW1ibmFpbC1vdmVybGF5LXRpbWUtc3RhdHVzLXJlbmRlcmVye21hcmdpbjo1cHh9eXRtLXRodW1ibmFpbC1vdmVybGF5LXRpbWUtc3RhdHVzLXJlbmRlcmVyW3RodW1ibmFpbC1zaXplPXNtYWxsXXttYXJnaW46MnB4fXl0bS10aHVtYm5haWwtb3ZlcmxheS10aW1lLXN0YXR1cy1yZW5kZXJlclt0aHVtYm5haWwtc2l6ZT1tZWRpdW1de21hcmdpbjo0cHh9eXRtLXRodW1ibmFpbC1vdmVybGF5LXRpbWUtc3RhdHVzLXJlbmRlcmVyW3RodW1ibmFpbC1zaXplPWxhcmdlXXttYXJnaW46OHB4fXl0bS10aHVtYm5haWwtb3ZlcmxheS10aW1lLXN0YXR1cy1yZW5kZXJlcltkYXRhLXN0eWxlPUxJVkVdLHl0bS10aHVtYm5haWwtb3ZlcmxheS10aW1lLXN0YXR1cy1yZW5kZXJlcltkYXRhLXN0eWxlPVNIT1JUU117dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfWltZy5jdXN0b20tdGh1bWJuYWlsLnZpZGVvLXRodW1ibmFpbC1pbWd7b2JqZWN0LWZpdDpzY2FsZS1kb3duO21heC1oZWlnaHQ6MTAwJTttYXgtd2lkdGg6MTAwJX0udmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1jb21wYWN0LC52aWRlby10aHVtYm5haWwtY29udGFpbmVyLWxhcmdle3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtc2hyaW5rOjA7b3ZlcmZsb3c6aGlkZGVufS52aWRlby10aHVtYm5haWwtaW1ne3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3dpZHRoOjEwMCU7bWluLWhlaWdodDoxMDAlO21hcmdpbjphdXRvfS52aWRlby10aHVtYm5haWwtYmd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMSl9LnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItbGFyZ2V7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctYm90dG9tOjU2LjI1JX0udmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1sYXJnZS5zdGFja2Vke2JvcmRlci1yYWRpdXM6MTJweDtib3JkZXItdG9wOjFweCBzb2xpZCAjZmZmfS52aWRlby10aHVtYm5haWwtY29udGFpbmVyLWNvbXBhY3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE2MHB4O2hlaWdodDo5MHB4fS5jdXN0b20tdGh1bWJuYWlsLWJhY2tncm91bmQtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjE4MHB4O2hlaWdodDoxODBweH0uY3VzdG9tLXRodW1ibmFpbC1iYWNrZ3JvdW5kLWNvbnRhaW5lciAuY3VzdG9tLXRodW1ibmFpbHtvcGFjaXR5Oi43O2ZpbHRlcjpibHVyKDMwcHgpfS52aWRlby10aHVtYm5haWwtY29udGFpbmVyLWNvbXBhY3Qtcm91bmRlZHtib3JkZXItcmFkaXVzOjhweH0ub3JpZ2luYWwtYXNwZWN0LXJhdGlvIGltZ3toZWlnaHQ6MTAwJTt3aWR0aDphdXRvfS5zdGFja2Vke2JvcmRlci1yYWRpdXM6MTJweDtib3JkZXItdG9wOjFweCBzb2xpZCAjZmZmfUBtZWRpYSAobWF4LXdpZHRoOjU0OXB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KXsuYmlnLXNob3J0cy1zaW5nbGV0b24gLnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItbGFyZ2V7cGFkZGluZy1ib3R0b206MTI1JX0uYmlnLXNob3J0cy1zaW5nbGV0b24gLnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItbGFyZ2UgaW1ne29iamVjdC1maXQ6Y292ZXI7d2lkdGg6MTAwJX19QG1lZGlhIChtYXgtd2lkdGg6NTQ5cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpe3l0bS1pdGVtLXNlY3Rpb24tcmVuZGVyZXI6Zmlyc3Qtb2YtdHlwZSAudmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1sYXJnZXttYXJnaW4tdG9wOjB9LnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItbGFyZ2U6d2hlcmUoLm5vdC1yZW5kZXJlZC1mcm9tLXJpY2gtaXRlbSl7bWFyZ2luOi0xM3B4IC0xMnB4IDA7cGFkZGluZy10b3A6MTNweH0uc3R5bGUtcmVjb21tZW5kYXRpb25zLWluLXBvcnRyYWl0IC52aWRlby10aHVtYm5haWwtY29udGFpbmVyLWxhcmdlLnJvdW5kZWQtdGh1bWJuYWlse2JvcmRlci1yYWRpdXM6MTJweDttYXJnaW46MDtwYWRkaW5nLXRvcDowfX1AbWVkaWEgKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7LnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItbGFyZ2V7bWFyZ2luOjA7cGFkZGluZy10b3A6MH19LnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItbGFyZ2UudGh1bWJuYWlsLWNvdmVyLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czoxMnB4fUBtZWRpYSAobWluLXdpZHRoOjU1MHB4KSBhbmQgKG9yaWVudGF0aW9uOnBvcnRyYWl0KSwobWluLXdpZHRoOjkzMXB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7LnZpZGVvLXRodW1ibmFpbC1jb250YWluZXItbGFyZ2Uucm91bmRlZC10aHVtYm5haWx7Ym9yZGVyLXJhZGl1czoxMnB4fX1AbWVkaWEgKG1pbi1hc3BlY3QtcmF0aW86MTMvOSkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpLChtaW4td2lkdGg6OTMxcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKXsudmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1sYXJnZS5yb3VuZGVkLXRodW1ibmFpbHtib3JkZXItcmFkaXVzOjEycHh9fUBtZWRpYSAobWF4LXdpZHRoOjkzMHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7LnN0eWxlLXJlY29tbWVuZGF0aW9ucy1pbi1wb3J0cmFpdCAudmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1sYXJnZS5yb3VuZGVkLXRodW1ibmFpbCxwbGF5ZXItZnVsbHNjcmVlbi1jb250cm9scyAudmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1sYXJnZS5yb3VuZGVkLXRodW1ibmFpbHtib3JkZXItcmFkaXVzOjEycHh9fS52aWRlby10aHVtYm5haWwtZmlsbC1wYXJlbnR7bWFyZ2luOjA7cGFkZGluZy10b3A6MDtib3JkZXItcmFkaXVzOjEycHh9Lnl0U3BlY0RpYWxvZ0xheW91dEhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQtY29sb3I6I2ZmZn0ueXRTcGVjRGlhbG9nTGF5b3V0Q29udGFpbmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ib3R0b206MjRweH0ueXRTcGVjRGlhbG9nTGF5b3V0VG9wUGFkZGluZ3twYWRkaW5nLXRvcDoyNHB4fS55dFNwZWNEaWFsb2dMYXlvdXRJY29ue21hcmdpbjoyNHB4IDI0cHggMH0ueXRTcGVjRGlhbG9nTGF5b3V0SWNvbkFib3ZlTWVkaWF7bWFyZ2luLWJvdHRvbToyNHB4fS55dFNwZWNEaWFsb2dMYXlvdXRJY29uQ2VudGVyQWxpZ257YWxpZ24tc2VsZjpjZW50ZXJ9Lnl0U3BlY0RpYWxvZ0xheW91dEFzc2V0e3dpZHRoOjEwMCU7bWluLWhlaWdodDowO2ZsZXgtc2hyaW5rOjQ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVufS55dFNwZWNEaWFsb2dMYXlvdXRBc3NldEl0ZW17d2lkdGg6MTAwJTtmbGV4LXNocmluazowO29iamVjdC1maXQ6Y292ZXJ9Lnl0U3BlY0RpYWxvZ0xheW91dERpYWxvZ0hlYWRlckNvbnRhaW5lcntwYWRkaW5nOjI0cHggMjRweCA4cHh9Lnl0U3BlY0RpYWxvZ0xheW91dERpYWxvZ0hlYWRlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtc2hyaW5rOjB9Lnl0U3BlY0RpYWxvZ0xheW91dERpYWxvZ0hlYWRlckFib3ZlQXNzZXR7cGFkZGluZy1ib3R0b206MjRweH0ueXRTcGVjRGlhbG9nTGF5b3V0VGl0bGV7Y29sb3I6IzAzMDMwMzstbW96LWJveC1mbGV4OjE7ZmxleDoxO21hcmdpbi1ib3R0b206MDtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjJyZW07bGluZS1oZWlnaHQ6Mi44cmVtO2ZvbnQtd2VpZ2h0OjcwMDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jazttYXgtaGVpZ2h0OjUuNnJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRTcGVjRGlhbG9nTGF5b3V0VGl0bGV7LXdlYmtpdC1saW5lLWNsYW1wOjI7bWF4LWhlaWdodDpub25lfX0ueXRTcGVjRGlhbG9nTGF5b3V0VGl0bGV7bWF4LWhlaWdodDo1LjZyZW19Lnl0U3BlY0RpYWxvZ0xheW91dExlYWRpbmdBY3Rpb25IZWFkZXJ7Y29sb3I6IzAzMDMwMzttYXJnaW4tcmlnaHQ6MTJweH0ueXRTcGVjRGlhbG9nTGF5b3V0VHJhaWxpbmdBY3Rpb25IZWFkZXJ7Y29sb3I6IzAzMDMwMzttYXJnaW4tbGVmdDphdXRvfS55dFNwZWNEaWFsb2dMYXlvdXRDb250ZW50e2NvbG9yOiMwMzAzMDM7b3ZlcmZsb3cteTphdXRvfS55dFNwZWNEaWFsb2dMYXlvdXRDb250ZW50SW5uZXJ7b3ZlcmZsb3c6dmlzaWJsZTtwYWRkaW5nOjAgMjRweH0ueXRTcGVjRGlhbG9nTGF5b3V0Rm9vdGVyQ29udGFpbmVye3BhZGRpbmctdG9wOjE2cHg7cGFkZGluZy1sZWZ0OjI0cHg7cGFkZGluZy1yaWdodDoyNHB4fS55dFNwZWNEaWFsb2dMYXlvdXRGb290ZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWZsb3c6cm93IHdyYXAtcmV2ZXJzZTtmbGV4LXNocmluazowO21hcmdpbjotOHB4IDAgMCAtOHB4fS55dFNwZWNEaWFsb2dMYXlvdXREaWFsb2dCdXR0b25zSW5saW5lRW5key1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDplbmR9Lnl0U3BlY0RpYWxvZ0xheW91dEJ1dHRvbntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjhweCAwIDAgOHB4fS55dFNwZWNEaWFsb2dMYXlvdXREaWFsb2dCdXR0b25zSW5saW5lU3RyZXRjaGVkey1tb3otYm94LWZsZXg6MTtmbGV4OjF9Lnl0U3BlY0RpYWxvZ0xheW91dENlbnRlckFsaWduIC55dFNwZWNEaWFsb2dMYXlvdXRDb250ZW50LC55dFNwZWNEaWFsb2dMYXlvdXRDZW50ZXJBbGlnbiAueXRTcGVjRGlhbG9nTGF5b3V0VGl0bGV7dGV4dC1hbGlnbjpjZW50ZXJ9Lnl0U3BlY0RpYWxvZ0xheW91dERpYWxvZ0J1dHRvbnNTdGFja2Vkey1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1AbWVkaWEgKG1heC13aWR0aDozMzBweCl7Lnl0U3BlY0RpYWxvZ0xheW91dFJlc3BvbnNpdmV7bWluLXdpZHRoOmNhbGMoMTAwdncgLSA5NnB4KTttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMHZofX1AbWVkaWEgKG1pbi13aWR0aDozMzFweCkgYW5kIChtYXgtd2lkdGg6NTI3cHgpey55dFNwZWNEaWFsb2dMYXlvdXRSZXNwb25zaXZle21pbi13aWR0aDpjYWxjKDEwMHZ3IC0gOTZweCk7bWluLXdpZHRoOm1pbigzMjBweCwxMDB2dyAtIDk2cHgpO21heC13aWR0aDpjYWxjKDEwMHZ3IC0gOTZweCk7bWF4LXdpZHRoOm1pbig0MDBweCwxMDB2dyAtIDk2cHgpO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDk2cHgpfX1AbWVkaWEgKG1pbi13aWR0aDo1MjhweCl7Lnl0U3BlY0RpYWxvZ0xheW91dFJlc3BvbnNpdmV7bWluLXdpZHRoOjMyMHB4O21heC13aWR0aDpjYWxjKDEwMHZ3IC0gOTZweCk7bWF4LXdpZHRoOm1pbig1NjBweCwxMDB2dyAtIDk2cHgpO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDk2cHgpO21heC1oZWlnaHQ6bWluKDU2MHB4LDEwMHZoIC0gOTZweCl9fS55dFNwZWNEaWFsb2dMYXlvdXRGdWxsc2NyZWVue2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lnl0U3BlY0RpYWxvZ0xheW91dEZ1bGxzY3JlZW4gLnl0U3BlY0RpYWxvZ0xheW91dENvbnRhaW5lciwueXRTcGVjRGlhbG9nTGF5b3V0RnVsbHNjcmVlbiAueXRTcGVjRGlhbG9nTGF5b3V0Q29udGVudHtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lnl0U3BlY0RpYWxvZ0xheW91dEZ1bGxzY3JlZW4gLnl0U3BlY0RpYWxvZ0xheW91dENvbnRlbnRJbm5lcntkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7cGFkZGluZzowfUBtZWRpYSAobWluLXdpZHRoOjUyOHB4KXsueXRTcGVjRGlhbG9nTGF5b3V0RXh0ZW5kZWRNYXhIZWlnaHR7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gOTZweCl9fS55dFNwZWNEaWFsb2dMYXlvdXRBc3NldEluc2V0IC55dFNwZWNEaWFsb2dMYXlvdXRBc3NldHt3aWR0aDphdXRvO3BhZGRpbmc6MCAyNHB4O2JvcmRlci1yYWRpdXM6MTJweH0ueXRTcGVjRGlhbG9nTGF5b3V0QXNzZXRJbnNldCAueXRTcGVjRGlhbG9nTGF5b3V0QXNzZXRJdGVte2JvcmRlci1yYWRpdXM6MTJweH0ueXR3UGl2b3RCdXR0b25WaWV3TW9kZWxIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXJ9Lnl0d1Bpdm90QnV0dG9uVmlld01vZGVsSG9zdEltYWdle2JvcmRlci1yYWRpdXM6NnB4O3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7ZGlzcGxheTpibG9ja30ueXR3UGl2b3RCdXR0b25WaWV3TW9kZWxIb3N0SWNvbntib3JkZXI6MXB4IHNvbGlkICNmZmY7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzo2cHh9Lnl0d1Bpdm90QnV0dG9uVmlld01vZGVsSG9zdFtkYXRhLWJhY2tncm91bmQtY29sb3I9VEhFTUVfQVRUUklCVVRFX09WRVJMQVlfQkFDS0dST1VORF9NRURJVU1dIC55dHdQaXZvdEJ1dHRvblZpZXdNb2RlbEhvc3RJY29ue2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjYpfS55dHdSZWVsQWN0aW9uQmFyVmlld01vZGVsSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lnl0d1JlZWxBY3Rpb25CYXJWaWV3TW9kZWxIb3N0Pip7bWFyZ2luLXRvcDoxNnB4fS55dHdSZWVsQWN0aW9uQmFyVmlld01vZGVsSG9zdD50b2dnbGUtYnV0dG9uLXZpZXctbW9kZWx7bWFyZ2luLXRvcDowfS55dHdSZWVsQWN0aW9uQmFyVmlld01vZGVsSG9zdE1vYmlsZXt3aWR0aDo1NnB4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0d1JlZWxBY3Rpb25CYXJWaWV3TW9kZWxIb3N0TW9iaWxlIC55dFNwZWNCdXR0b25TaGFwZVdpdGhMYWJlbExhYmVse2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTZweDttYXJnaW46MH0ueXR3UmVlbEFjdGlvbkJhclZpZXdNb2RlbEhvc3RNb2JpbGUgLnl0U3BlY0J1dHRvblNoYXBlTmV4dEhvc3Q6Zm9jdXN7YmFja2dyb3VuZDp1bnNldH0ueXR3UmVlbEFjdGlvbkJhclZpZXdNb2RlbEhvc3RNb2JpbGUgYnV0dG9uOm5vdChbYXJpYS1wcmVzc2VkPXRydWVdKSBjMy1pY29ue2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMnB4IHJnYmEoMCwwLDAsMC4zKSl9Lnl0d1JlZWxBY3Rpb25CYXJWaWV3TW9kZWxIb3N0TW9iaWxlQWN0aW9uQnV0dG9ue3BhZGRpbmctdG9wOjRweDtwYWRkaW5nLWJvdHRvbTo4cHg7bWFyZ2luOjB9Lnl0d1JlZWxBY3Rpb25CYXJWaWV3TW9kZWxIb3N0RGVza3RvcHstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dHdSZWVsQWN0aW9uQmFyVmlld01vZGVsSG9zdERlc2t0b3AgLnl0U3BlY0J1dHRvblNoYXBlV2l0aExhYmVsTGFiZWx7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjJyZW07bGluZS1oZWlnaHQ6MS44cmVtO2ZvbnQtd2VpZ2h0OjQwMH0ueXR3UmVlbEFjdGlvbkJhclZpZXdNb2RlbEhvc3REZXNrdG9wQWN0aW9uQnV0dG9ue3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206OHB4O21hcmdpbjowfUBtZWRpYSAobWF4LWhlaWdodDo0MTFweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey55dHdSZWVsQWN0aW9uQmFyVmlld01vZGVsSG9zdD4qe21hcmdpbi10b3A6MH0ueXR3UmVlbEFjdGlvbkJhclZpZXdNb2RlbEhvc3QgLnl0U3BlY0J1dHRvblNoYXBlV2l0aExhYmVsTGFiZWx7ZGlzcGxheTpub25lfX0ueXRSZWVsTWV0YXBhbmVsVmlld01vZGVsSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtYWxpZ246c3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDttYXgtd2lkdGg6NDgwcHh9Lnl0UmVlbE1ldGFwYW5lbFZpZXdNb2RlbE1ldGFwYW5lbEl0ZW06bm90KDpmaXJzdC1jaGlsZCl7cGFkZGluZy10b3A6NHB4O21heC13aWR0aDoxMDAlfS55dFJlZWxNZXRhcGFuZWxWaWV3TW9kZWxNZXRhcGFuZWxJdGVtOm5vdCg6bGFzdC1jaGlsZCl7cGFkZGluZy1ib3R0b206NHB4O21heC13aWR0aDoxMDAlfS55dEFuaW1hdGVkQWN0aW9uSG9zdHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlfS55dEFuaW1hdGVkQWN0aW9uTG90dGlle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwb2ludGVyLWV2ZW50czpub25lfS55dEFuaW1hdGVkQWN0aW9uQmFja2dyb3VuZHt3aWR0aDoxMDAlfS55dEFuaW1hdGVkQWN0aW9uQmFja2dyb3VuZENvbnRhaW5lcntvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czoxOHB4fS55dEFuaW1hdGVkQWN0aW9uQ29udGVudFdpdGhCYWNrZ3JvdW5ke3Bvc2l0aW9uOnJlbGF0aXZlfS5wbGF5ZXItc2V0dGluZ3MtaGVhZGVye21hcmdpbi1ib3R0b206MjBweH0ucGxheWVyLWNhcHRpb24tc2V0dGluZ3MsLnBsYXllci1xdWFsaXR5LXNldHRpbmdzLC5wbGF5ZXItc3BlZWQtc2V0dGluZ3N7d2lkdGg6MTAwJTttYXJnaW46NHB4IDAgMTJweH0uY29weURlYnVnSW5mb1BsYXllckRlYnVnSW5mb3tiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3BhZGRpbmctYm90dG9tOjRweDtvdXRsaW5lOm5vbmU7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDttYXJnaW4tYm90dG9tOjFweDtmb250OmluaGVyaXQ7Y29sb3I6IzAzMDMwMzstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7bWluLWhlaWdodDo4LjRyZW07d2lkdGg6MTAwJTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtwYWRkaW5nOjhweH0uY29weURlYnVnSW5mb1BsYXllckRlYnVnSW5mbzo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjojNjA2MDYwO29wYWNpdHk6MX0uY29weURlYnVnSW5mb1BsYXllckRlYnVnSW5mbzo6cGxhY2Vob2xkZXJ7Y29sb3I6IzYwNjA2MDtvcGFjaXR5OjF9LmNvcHlEZWJ1Z0luZm9QbGF5ZXJEZWJ1Z0luZm97aGVpZ2h0OjQwdmg7ZGlyZWN0aW9uOmx0cn0uc3RhYmxlVm9sdW1lVG9nZ2xlSG9zdHtkaXNwbGF5OmJsb2NrfS55dFBsYXllckNvbnRyb2xzQ29udGFpbmVySG9zdHstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmV9Lnl0UGxheWVyQ29udHJvbHNDb250YWluZXJSZW5kZXJlZHtwb3NpdGlvbjpmaXhlZDtpbnNldDowO3BhZGRpbmctYm90dG9tOjB9Lnl0U2hvcnRzRW1iZWRzSG9zdHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLHJnYmEoMCwwLDAsLjQpIDAscmdiYSgwLDAsMCwwKSAxNjBweCksbGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDAsMCwwLC40KSAwLHJnYmEoMCwwLDAsMCkgOTZweCl9Lnl0U2hvcnRzRW1iZWRzUmVlbFBsYXllck92ZXJsYXlSZW5kZXJlciAucmVlbC1wbGF5ZXItb3ZlcmxheS1hY3Rpb25zLC55dFNob3J0c0VtYmVkc1JlZWxQbGF5ZXJPdmVybGF5UmVuZGVyZXIgLnJlZWwtcGxheWVyLW92ZXJsYXktbWV0YWRhdGEsLnl0U2hvcnRzRW1iZWRzUmVlbFBsYXllck92ZXJsYXlSZW5kZXJlciAucmVlbC1wbGF5ZXItb3ZlcmxheS10b3AtYmFye3otaW5kZXg6Mn0ueXRTaG9ydHNFbWJlZHNUb3BiYXJDb250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LW1vei1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6Mjt3aWR0aDoxMDAlfS55dFNob3J0c0VtYmVkc1ZvbHVtZUNvbnRyb2xze3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjQ4cHh9Lnl0bUN1ZWRPdmVybGF5SG9zdHtkaXNwbGF5OmJsb2NrO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuN3M7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5fS55dG1DdWVkT3ZlcmxheUhpZGRlbiwueXRtQ3VlZE92ZXJsYXlIb3N0LmhpZGRlbnt2aXNpYmlsaXR5OmhpZGRlbjtvcGFjaXR5OjB9Lnl0bUN1ZWRPdmVybGF5UGxheUJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0zNnB4O21hcmdpbi10b3A6LTM2cHg7d2lkdGg6NzJweDtoZWlnaHQ6NzJweDtwYWRkaW5nOjA7Ym9yZGVyOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcn0ueXRtQ3VlZE92ZXJsYXlQbGF5QnV0dG9uLnNob3J0cywueXRtQ3VlZE92ZXJsYXlTaG9ydHN7bWFyZ2luLWxlZnQ6LTUwcHg7bWFyZ2luLXRvcDotNTBweDt3aWR0aDoxMDBweDtoZWlnaHQ6MTAwcHh9Lnl0bUN1ZWRPdmVybGF5UGxheUJ1dHRvbkljb257d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtjb2xvcjojZjAzfUBtZWRpYSAoZm9yY2VkLWNvbG9yczphY3RpdmUpey55dG1DdWVkT3ZlcmxheVBsYXlCdXR0b25JY29ue2NvbG9yOkJ1dHRvblRleHR9Lnl0bUN1ZWRPdmVybGF5UGxheUJ1dHRvbkljb24gcGF0aDpmaXJzdC1jaGlsZHtmaWxsOkJ1dHRvblRleHR9Lnl0bUN1ZWRPdmVybGF5UGxheUJ1dHRvbkljb24gLmxvZ28tYXJyb3csLnl0bUN1ZWRPdmVybGF5UGxheUJ1dHRvbkljb24gcGF0aDpudGgtY2hpbGQoMil7ZmlsbDpDYW52YXN9fS55dG1DdWVkT3ZlcmxheUdyYWRpZW50e3dpZHRoOjEwMCU7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwuOCkscmdiYSgwLDAsMCwuNikscmdiYSgwLDAsMCwwKSk7aGVpZ2h0OjdyZW19Lnl0Q2hhcHRlcmVkUHJvZ3Jlc3NCYXJIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjNweH0ueXRDaGFwdGVyZWRQcm9ncmVzc0JhckNoYXB0ZXJlZFBsYXllckJhckNoYXB0ZXJ7aGVpZ2h0OjNweDttYXJnaW46MCAxcHg7cG9zaXRpb246cmVsYXRpdmV9Lnl0Q2hhcHRlcmVkUHJvZ3Jlc3NCYXJDaGFwdGVyZWRQbGF5ZXJCYXJDaGFwdGVyU2VlbntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjZjAzIDgwJSwjZmYyNzkxKX0ueXRDaGFwdGVyZWRQcm9ncmVzc0JhckNoYXB0ZXJlZFBsYXllckJhckNoYXB0ZXJJc1NjcnViYmluZ3ttYXJnaW46MCAycHh9Lnl0Q2hhcHRlcmVkUHJvZ3Jlc3NCYXJDaGFwdGVyZWRQbGF5ZXJCYXJDaGFwdGVyOmZpcnN0LW9mLXR5cGV7bWFyZ2luLWxlZnQ6MH0ueXRDaGFwdGVyZWRQcm9ncmVzc0JhckNoYXB0ZXJlZFBsYXllckJhckNoYXB0ZXI6bGFzdC1vZi10eXBle21hcmdpbi1yaWdodDowfS55dENoYXB0ZXJlZFByb2dyZXNzQmFyQ2hhcHRlcmVkUGxheWVyQmFyRmlsbHtoZWlnaHQ6M3B4O3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCNmMDMgODAlLCNmZjI3OTEpfS55dENoYXB0ZXJlZFByb2dyZXNzQmFyQ2hhcHRlcmVkUGxheWVyQmFyTG9hZGVke2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMyk7aGVpZ2h0OjNweDtwb3NpdGlvbjphYnNvbHV0ZX0ueXRDaGFwdGVyZWRQcm9ncmVzc0JhckhvdmVyZWRNYWNyb01hcmtlcnt0cmFuc2Zvcm06c2NhbGVZKDIpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyfS55dEZvY3VzZWRDaGFwdGVyUHJvZ3Jlc3NCYXJMaW5lSG9zdHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCV9Lnl0Rm9jdXNlZENoYXB0ZXJQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckxpbmV7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjNweDt3aWR0aDoxMDAlfS55dEZvY3VzZWRDaGFwdGVyUHJvZ3Jlc3NCYXJMaW5lUHJvZ3Jlc3NCYXJMaW5lUm91bmRlZHtib3JkZXItcmFkaXVzOjEuNXB4O292ZXJmbG93OmhpZGRlbn0ueXRGb2N1c2VkQ2hhcHRlclByb2dyZXNzQmFyTGluZVByb2dyZXNzQmFyTGluZUJvdHRvbUluc2V0e2hlaWdodDo1cHg7Ym9yZGVyLXJhZGl1czoyLjVweDtvdmVyZmxvdzpoaWRkZW59Lnl0Rm9jdXNlZENoYXB0ZXJQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckJhY2tncm91bmR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmO29wYWNpdHk6LjY7d2lkdGg6MTAwJX0ueXRGb2N1c2VkQ2hhcHRlclByb2dyZXNzQmFyTGluZVByb2dyZXNzQmFyUGxheWVke3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDowO2JvdHRvbTowO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCNmMDMgODAlLCNmZjI3OTEpfS55dEhlYXRTZWVrZXJIb3N0e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2ZpbGw6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lnl0SGVhdFNlZWtlckhpZ2hDb250cmFzdHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDApLDkwJSxyZ2JhKDAsMCwwLC42KSk7ZmlsbDpyZ2JhKDI1NSwyNTUsMjU1LC41KX0ueXRQbGF5ZXJQcm9ncmVzc0Jhckhvc3R7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MTAwJTtkaXJlY3Rpb246bHRyfS55dFBsYXllclByb2dyZXNzQmFySG9zdFJlYWRPbmx5e3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0UGxheWVyUHJvZ3Jlc3NCYXJIb3N0SGlkZGVue29wYWNpdHk6MH0ueXRQbGF5ZXJQcm9ncmVzc0Jhckhvc3RMb3dlclBsYXllcntib3R0b206MDtsZWZ0OjMwcHg7cmlnaHQ6MzBweDtoZWlnaHQ6NDRweH0ueXRQbGF5ZXJQcm9ncmVzc0Jhckhvc3RCb3R0b21FZGdle2hlaWdodDoyOHB4O2xlZnQ6MDtyaWdodDowO2JvdHRvbTotN3B4fS55dFBsYXllclByb2dyZXNzQmFySG9zdEJvdHRvbUluc2V0e2hlaWdodDoyOHB4O2JvdHRvbTowO2xlZnQ6MDtyaWdodDowfS55dFBsYXllclByb2dyZXNzQmFySG9zdEN1c3RvbXtwb3NpdGlvbjpyZWxhdGl2ZX0ueXRQbGF5ZXJQcm9ncmVzc0JhckJhY2tncm91bmR7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHJnYmEoMCwwLDAsMCkscmdiYSgwLDAsMCwuNSkpO29wYWNpdHk6MTt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzIGN1YmljLWJlemllciguMiwwLC42LDEpfS55dFBsYXllclByb2dyZXNzQmFyQmFja2dyb3VuZEhpZGV7b3BhY2l0eTowfS55dFBsYXllclByb2dyZXNzQmFyRHJhZ0NvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRQbGF5ZXJQcm9ncmVzc0JhckRyYWdDb250YWluZXJCb3R0b21FZGdle2hlaWdodDowO3BhZGRpbmc6MTkuNXB4IDAgOC41cHh9Lnl0UGxheWVyUHJvZ3Jlc3NCYXJIZWF0c2Vla2VyQ29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO2JvdHRvbToxLjVweH0ueXRQbGF5ZXJQcm9ncmVzc0JhckhlYXRzZWVrZXJDb250YWluZXJJbnNldHtib3R0b206MTQuNXB4fS55dFBsYXllclByb2dyZXNzQmFyUHJvZ3Jlc3NCYXJ7d2lkdGg6MTAwJTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0UGxheWVyUHJvZ3Jlc3NCYXJQcm9ncmVzc0Jhckluc2V0e3BhZGRpbmc6MTZweCAwIDEycHg7d2lkdGg6Y2FsYygxMDAlIC0gMjRweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNpdGlvbjp3aWR0aCAuMXMgY3ViaWMtYmV6aWVyKC4wNSwwLDAsMSksdHJhbnNmb3JtIC4xcyBjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRQbGF5ZXJQcm9ncmVzc0JhclByb2dyZXNzQmFySW5zZXRNaW5pbWl6ZWR7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO3dpZHRoOjEwMCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTJweCl9Lnl0UHJvZ3Jlc3NCYXJMaW5lSG9zdHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCV9Lnl0UHJvZ3Jlc3NCYXJMaW5lUHJvZ3Jlc3NCYXJMaW5le3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDozcHg7d2lkdGg6MTAwJX0ueXRQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckxpbmVSb3VuZGVke2JvcmRlci1yYWRpdXM6MS41cHg7b3ZlcmZsb3c6aGlkZGVufS55dFByb2dyZXNzQmFyTGluZVByb2dyZXNzQmFyTGluZUJvdHRvbUluc2V0e2hlaWdodDo1cHg7Ym9yZGVyLXJhZGl1czoyLjVweDtvdmVyZmxvdzpoaWRkZW59Lnl0UHJvZ3Jlc3NCYXJMaW5lUHJvZ3Jlc3NCYXJCYWNrZ3JvdW5ke3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6I2ZmZjtvcGFjaXR5Oi4zO3dpZHRoOjEwMCV9Lnl0UHJvZ3Jlc3NCYXJMaW5lUHJvZ3Jlc3NCYXJMb2FkZWR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmO29wYWNpdHk6LjZ9Lnl0UHJvZ3Jlc3NCYXJMaW5lUHJvZ3Jlc3NCYXJIb3ZlcmVke3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6I2ZmZjtvcGFjaXR5Oi43fS55dFByb2dyZXNzQmFyTGluZVByb2dyZXNzQmFyUGxheWVke3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2ZvcmNlZC1jb2xvci1hZGp1c3Q6bm9uZTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjZjAzIDgwJSwjZmYyNzkxKX0ueXRQcm9ncmVzc0JhclBsYXloZWFkSG9zdHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlfS55dFByb2dyZXNzQmFyUGxheWhlYWRQcm9ncmVzc0JhclBsYXloZWFkRG90e2hlaWdodDoxMnB4O3dpZHRoOjEycHg7Ym9yZGVyLXJhZGl1czo1MCU7Zm9yY2VkLWNvbG9yLWFkanVzdDpub25lO2JhY2tncm91bmQtY29sb3I6I2YwMzt0cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzIGVhc2V9Lnl0UHJvZ3Jlc3NCYXJQbGF5aGVhZFByb2dyZXNzQmFyUGxheWhlYWREb3RMYXJnZXtoZWlnaHQ6MTZweDt3aWR0aDoxNnB4fS55dFByb2dyZXNzQmFyUGxheWhlYWRQcm9ncmVzc0JhclBsYXloZWFkRG90SGlkZXt0cmFuc2Zvcm06c2NhbGUoMCl9Lnl0UHJvZ3Jlc3NCYXJQbGF5aGVhZFByb2dyZXNzQmFyUGxheWhlYWRDdXN0b217aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtwb2ludGVyLWV2ZW50czpub25lfS55dFByb2dyZXNzQmFyUGxheWhlYWRQcm9ncmVzc0JhclBsYXloZWFkQ3VzdG9tTGFyZ2V7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRQcm9ncmVzc0JhclBsYXloZWFkUHJvZ3Jlc3NCYXJQbGF5aGVhZEN1c3RvbUhpZGV7dHJhbnNmb3JtOnNjYWxlKDApfS55dFBsYXllclN0b3J5Ym9hcmRIb3N0e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo4MHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0UGxheWVyU3Rvcnlib2FyZEhvc3RCaWdib2FyZHt3aWR0aDoxMDAlO2xlZnQ6NTAlfS55dFBsYXllclN0b3J5Ym9hcmRIb3N0TXdlYlNob3J0c3ttYXJnaW4tYm90dG9tOjQ4cHh9Lnl0UGxheWVyU3Rvcnlib2FyZEhvc3RJbmxpbmVQbGF5ZXJ7Ym90dG9tOmNhbGMoNTZweCp2YXIoLS1zdG9yeWJvYXJkLXNjYWxlLCAxKSl9Lnl0UGxheWVyU3Rvcnlib2FyZEhvc3REZXNrdG9wU2hvcnRze21hcmdpbi1ib3R0b206MTZweH0ueXRQbGF5ZXJTdG9yeWJvYXJkSG9zdElzRHJhZ2dpbmd7bWFyZ2luLWJvdHRvbTo4MHB4fS55dFBsYXllclN0b3J5Ym9hcmRIb3N0RmFkZUlue2FuaW1hdGlvbjpmYWRlLWluIC4xcyBjdWJpYy1iZXppZXIoLjIsMCwuNiwxKX0ueXRQbGF5ZXJTdG9yeWJvYXJkU3Rvcnlib2FyZEltYWdlV3JhcHBlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjJweCBzb2xpZCB3aGl0ZTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0UGxheWVyU3Rvcnlib2FyZEJpZ2JvYXJkV3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2JhY2tncm91bmQ6IzAwMH0ueXRQbGF5ZXJTdG9yeWJvYXJkQmlnYm9hcmRJbWFnZVdyYXBwZXJ7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7cG9zaXRpb246YWJzb2x1dGU7b3ZlcmZsb3c6aGlkZGVufS55dFBsYXllclN0b3J5Ym9hcmRUaW1lc3RhbXB7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7dGV4dC1zaGFkb3c6MCAwIDRweCByZ2JhKDAsMCwwLC43NSl9Lnl0UGxheWVyU3Rvcnlib2FyZFRpbWVzdGFtcFNob3J0c3tmb250LWZhbWlseTpZb3VUdWJlIFNhbnMsUm9ib3RvLHNhbnMtc2VyaWY7Zm9udC1zaXplOjIuOHJlbTtsaW5lLWhlaWdodDozLjhyZW07Zm9udC13ZWlnaHQ6NzAwfUBtZWRpYSAobWF4LXdpZHRoOjUyNy45cHgpey55dFBsYXllclN0b3J5Ym9hcmRUaW1lc3RhbXBTaG9ydHN7Zm9udC1mYW1pbHk6WW91VHViZSBTYW5zLFJvYm90byxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyLjRyZW07bGluZS1oZWlnaHQ6My4ycmVtO2ZvbnQtd2VpZ2h0OjcwMH19Lnl0UGxheWVyU3Rvcnlib2FyZFRpbWVzdGFtcFNob3J0c3twYWRkaW5nLXRvcDo4cHh9Lnl0UGxheWVyU3Rvcnlib2FyZFRpbWVzdGFtcElzSG92ZXJpbmd7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6Mi4ycmVtO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6Y2FsYygxLjZyZW0qdmFyKC0tc3Rvcnlib2FyZC1zY2FsZSwgMSkpO2xpbmUtaGVpZ2h0OmNhbGMoMi4ycmVtKnZhcigtLXN0b3J5Ym9hcmQtc2NhbGUsIDEpKX0ueXRQbGF5ZXJTdG9yeWJvYXJkTWV0YWRhdGF7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOmNhbGMoLTZweCp2YXIoLS1zdG9yeWJvYXJkLXNjYWxlLCAxKSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLDEwMCUpO2xlZnQ6NTAlO2NvbG9yOiNmZmY7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MTAwJTtmb250LXNpemU6Y2FsYygxMnB4KnZhcigtLXN0b3J5Ym9hcmQtc2NhbGUsIDEpKX0ueXRQbGF5ZXJTdG9yeWJvYXJkTWV0YWRhdGFCaWdib2FyZHt3aWR0aDphdXRvO2NvbG9yOiNmZmY7bWF4LXdpZHRoOjEwMCU7Ym90dG9tOjZweDtib3JkZXItcmFkaXVzOjE2cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNik7cGFkZGluZzo4cHggMTZweDstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstbW96LWNvbHVtbi1nYXA6MXJlbTtjb2x1bW4tZ2FwOjFyZW07bWluLXdpZHRoOjB9Lnl0UGxheWVyU3Rvcnlib2FyZFRpdGxle21heC13aWR0aDoxMDAlO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tYm90dG9tOjRweDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dFBsYXllclN0b3J5Ym9hcmRUaXRsZUJpZ2JvYXJke21hcmdpbi1ib3R0b206MDtmb250LXdlaWdodDo3MDB9Lnl0UGxheWVyU3Rvcnlib2FyZFRpbWVkTWFya2VySWNvbldyYXBwZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXh9Lnl0UGxheWVyU3Rvcnlib2FyZFRpbWVkTWFya2VySWNvbntoZWlnaHQ6MTRweDt3aWR0aDoxNHB4O21hcmdpbi1yaWdodDo0cHh9Lnl0UGxheWVyU3Rvcnlib2FyZFN0b3J5Ym9hcmRJbWFnZXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlfUBrZXlmcmFtZXMgZmFkZS1pbnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX0ueXRNd2ViU2hvcnRzUGxheWVyQ29udHJvbHNIb3N0e3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjA7Ym90dG9tOjA7aGVpZ2h0OjNweDtkaXJlY3Rpb246bHRyO3RyYW5zaXRpb24tcHJvcGVydHk6aGVpZ2h0LG1hcmdpbi1sZWZ0LG1hcmdpbi1yaWdodCxwYWRkaW5nLHZpc2liaWxpdHk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMjVzfS55dE13ZWJTaG9ydHNQbGF5ZXJDb250cm9sc0hvc3RJc1NjcnViYmFibGVNb2Rle21hcmdpbi1yaWdodDoxNnB4O21hcmdpbi1sZWZ0OjE2cHg7aGVpZ2h0OjE2cHg7cGFkZGluZy1ib3R0b206MTZweDt0cmFuc2l0aW9uLWR1cmF0aW9uOi41c30ueXRNd2ViU2hvcnRzUGxheWVyQ29udHJvbHNIb3N0SGlkZVByb2dyZXNzQmFye3Zpc2liaWxpdHk6aGlkZGVuO2hlaWdodDowfS55dE13ZWJTaG9ydHNQbGF5ZXJDb250cm9sc0dlc3R1cmVPdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDB2aDt3aWR0aDoxMDB2dztpbnNldDowO3BvaW50ZXItZXZlbnRzOmF1dG99Lnl0d0F1dG9uYXZUb29sdGlwSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjI1JTt3aWR0aDoxMDAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2NvbG9yOiNmZmZ9Lnl0d1BsYXllclVzZXJFZHVUb29sdGlwSG9zdHtkaXNwbGF5OmJsb2NrfS55dHdQbGF5ZXJVc2VyRWR1VG9vbHRpcFRvb2x0aXBDb250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjAgOHB4O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS55dHdQbGF5ZXJVc2VyRWR1VG9vbHRpcFRvb2x0aXBXcmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOi1tb3otbWF4LWNvbnRlbnQ7d2lkdGg6bWF4LWNvbnRlbnQ7bWFyZ2luLXRvcDoxNnB4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ei1pbmRleDo2O2JvcmRlci1yYWRpdXM6MTZweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC42KTtwYWRkaW5nOjdweCAxNnB4O21heC13aWR0aDoxMDAlOy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ueXR3UGxheWVyVXNlckVkdVRvb2x0aXBUb29sdGlwV3JhcHBlcjplbXB0eXtkaXNwbGF5Om5vbmV9Lnl0d1NwZWVkbWFzdGVyVG9vbHRpcEhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXh9Lnl0d1NwZWVkbWFzdGVyVG9vbHRpcEhvc3Q6bm90KC55dHdTcGVlZG1hc3RlclRvb2x0aXBLaWxsc3dpdGNoKXstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6I2ZmZjtwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0OjA7cmlnaHQ6MH0ueXR3U3BlZWRtYXN0ZXJUb29sdGlwTGFiZWx7dGV4dC1hbGlnbjpqdXN0aWZ5O2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxOHB4fVtkaXI9cnRsXSAueXR3U3BlZWRtYXN0ZXJUb29sdGlwTGFiZWx7ZGlyZWN0aW9uOnJ0bH0ueXR3U3BlZWRtYXN0ZXJUb29sdGlwSWNvbnttYXJnaW4tbGVmdDo0cHh9Lnl0bVNob3J0c0dlc3R1cmVPdmVybGF5Q29udHJvbHNHZXN0dXJlT3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2xlZnQ6MDt0b3A6MDtib3R0b206MDtyaWdodDowO3BvaW50ZXItZXZlbnRzOmF1dG99Lnl0bVNob3J0c0dlc3R1cmVPdmVybGF5Q29udHJvbHNHZXN0dXJlQ29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO2JvdHRvbTowO3JpZ2h0OjA7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3d9Lnl0bVNob3J0c0dlc3R1cmVPdmVybGF5Q29udHJvbHNTcGVlZG1hc3Rlckdlc3R1cmVBcmVhe2hlaWdodDoxMDAlO3dpZHRoOjI1JX0ueXRtU2hvcnRzR2VzdHVyZU92ZXJsYXlDb250cm9sc01lbnVHZXN0dXJlQXJlYXtoZWlnaHQ6MTAwJTt3aWR0aDo1MCV9Lnl0bVZpZGVvQ292ZXJIb3N0e2Rpc3BsYXk6YmxvY2s7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxO3RyYW5zaXRpb246dHJhbnNmb3JtIC43czt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHl9Lnl0bVZpZGVvQ292ZXJIb3N0LmVuZGVke3otaW5kZXg6MH0ueXRtVmlkZW9Db3Zlckhvc3QuaGlkZGVue3Zpc2liaWxpdHk6aGlkZGVuO29wYWNpdHk6MH0ueXRtVmlkZW9Db3ZlclRodW1ibmFpbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvdmVyO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Lnl0ZFZvbHVtZUNvbnRyb2xzSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDttYXgtaGVpZ2h0OjQ4cHh9Lnl0ZFZvbHVtZUNvbnRyb2xzRGlzYWJsZVNsaWRlcnt3aWR0aDo0OHB4fS55dGRWb2x1bWVDb250cm9sc1ZvbHVtZUNvbnRyb2xzQ29udGFpbmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLXJhZGl1czo1MHB4O3Bvc2l0aW9uOnJlbGF0aXZlOy1tb3otYm94LWZsZXg6MTtmbGV4OjEgMSBhdXRvO21heC13aWR0aDoxNjhweH0ueXRkVm9sdW1lQ29udHJvbHNWb2x1bWVDb250cm9sc0NvbnRhaW5lclZlcnRpY2Fse21heC13aWR0aDo0OHB4O3dpZHRoOjQ4cHg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tb3otYm94LXBhY2s6c3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7Z2FwOjYwcHg7aGVpZ2h0Oi1tb3otZml0LWNvbnRlbnQ7aGVpZ2h0OmZpdC1jb250ZW50O3BvaW50ZXItZXZlbnRzOm5vbmV9Lnl0ZFZvbHVtZUNvbnRyb2xzVm9sdW1lQ29udHJvbHNDb250YWluZXJFeHBhbmRlZHtwb2ludGVyLWV2ZW50czphbGx9Lnl0ZFZvbHVtZUNvbnRyb2xzTXV0ZUljb25CdXR0b25Db250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7d2lkdGg6NDhweDtoZWlnaHQ6NDhweDtib3JkZXItcmFkaXVzOjUwcHh9Lnl0ZFZvbHVtZUNvbnRyb2xzTXV0ZUljb25CdXR0b257ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZW5kO3otaW5kZXg6MTtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7cGFkZGluZzoxMnB4O2N1cnNvcjpwb2ludGVyO3BvaW50ZXItZXZlbnRzOmFsbDtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLDAuOCkpfS55dGRWb2x1bWVDb250cm9sc1NsaWRlckNvbnRhaW5lcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MDtvcGFjaXR5OjA7b3ZlcmZsb3c6aGlkZGVuO3Zpc2liaWxpdHk6aGlkZGVuO3RyYW5zaXRpb246dmlzaWJpbGl0eSAuMTJzIGxpbmVhcixvcGFjaXR5IC4xMnMgbGluZWFyLHdpZHRoIC4xMnMgbGluZWFyfS55dGRWb2x1bWVDb250cm9sc1NsaWRlckNvbnRhaW5lckV4cGFuZGVke3Zpc2liaWxpdHk6dmlzaWJsZTt3aWR0aDoxMDAlO29wYWNpdHk6MTt0cmFuc2l0aW9uOnZpc2liaWxpdHkgLjNzIGxpbmVhcixvcGFjaXR5IC4zcyBsaW5lYXIsd2lkdGggLjNzIGxpbmVhcjt6LWluZGV4OjF9Lnl0ZFZvbHVtZUNvbnRyb2xzU2xpZGVyQ29udGFpbmVyV2l0aFNjcmlte3BhZGRpbmctcmlnaHQ6MTJweH0ueXRkVm9sdW1lQ29udHJvbHNTbGlkZXJDb250YWluZXJWZXJ0aWNhbHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4zKTtib3JkZXItcmFkaXVzOjUwcHg7aGVpZ2h0OjQ4cHg7bWluLWhlaWdodDo0OHB4O3BhZGRpbmc6MCAxMnB4O21hcmdpbjowO3RyYW5zaXRpb246dmlzaWJpbGl0eSAuM3MgbGluZWFyLG9wYWNpdHkgLjNzIGxpbmVhcix3aWR0aCAwcyBsaW5lYXIgLjNzLG1hcmdpbiAuM3MgbGluZWFyfS55dGRWb2x1bWVDb250cm9sc1NsaWRlckNvbnRhaW5lclZlcnRpY2FsRG93bnt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9Lnl0ZFZvbHVtZUNvbnRyb2xzU2xpZGVyQ29udGFpbmVyVmVydGljYWxFeHBhbmRlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNDAsNDAsNDAsMC42KTttYXJnaW4tdG9wOjhweDt3aWR0aDoxMzNweDt0cmFuc2l0aW9uOnZpc2liaWxpdHkgLjNzIGxpbmVhcixvcGFjaXR5IC4zcyBsaW5lYXIsd2lkdGggMHMgbGluZWFyLG1hcmdpbiAuM3MgbGluZWFyfS55dGRWb2x1bWVDb250cm9sc1NsaWRlckNvbnRhaW5lckRpc2FibGVTbGlkZXJ7ZGlzcGxheTpub25lfS55dGRWb2x1bWVDb250cm9sc05hdGl2ZVNsaWRlcnstLWdyYWRpZW50LXBlcmNlbnQ6MDstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7Ym9yZGVyOm5vbmU7bWFyZ2luLWJvdHRvbToxcHg7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jazttaW4td2lkdGg6MDt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7cGFkZGluZzo4cHggMDtmb3JjZWQtY29sb3ItYWRqdXN0Om5vbmV9Lnl0ZFZvbHVtZUNvbnRyb2xzTmF0aXZlU2xpZGVyOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwjZmZmIDAsI2ZmZiB2YXIoLS1ncmFkaWVudC1wZXJjZW50KSxyZ2JhKDI1NSwyNTUsMjU1LDAuMykgdmFyKC0tZ3JhZGllbnQtcGVyY2VudCkscmdiYSgyNTUsMjU1LDI1NSwwLjMpIDEwMCUpO2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMnB4fS55dGRWb2x1bWVDb250cm9sc05hdGl2ZVNsaWRlcjo6LW1vei1yYW5nZS10cmFja3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwjZmZmIDAsI2ZmZiB2YXIoLS1ncmFkaWVudC1wZXJjZW50KSxyZ2JhKDAsMCwwLDAuMSkgdmFyKC0tZ3JhZGllbnQtcGVyY2VudCkscmdiYSgwLDAsMCwwLjEpIDEwMCUpO2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoxMnB4fS55dGRWb2x1bWVDb250cm9sc05hdGl2ZVNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbi10b3A6LTYuNXB4fS55dGRWb2x1bWVDb250cm9sc05hdGl2ZVNsaWRlcjo6LW1vei1yYW5nZS10aHVtYnt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JhY2tncm91bmQtY29sb3I6d2hpdGU7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOm5vbmV9Lnl0ZFZvbHVtZUNvbnRyb2xzTmF0aXZlU2xpZGVyOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja3toZWlnaHQ6MnB4fS55dGRWb2x1bWVDb250cm9sc05hdGl2ZVNsaWRlcjo6LW1vei1yYW5nZS10cmFja3toZWlnaHQ6MnB4fS55dGRWb2x1bWVDb250cm9sc011dGVJY29ue2NvbG9yOndoaXRlfS55dGRWb2x1bWVDb250cm9sc0JhY2tncm91bmRTY3JpbXtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4O3otaW5kZXg6MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4zKTt0cmFuc2l0aW9uOndpZHRoIC4yNXMgbGluZWFyO3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTBweH0ueXRkVm9sdW1lQ29udHJvbHNCYWNrZ3JvdW5kU2NyaW1FeHBhbmRlZHt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjMpfS55dGRWb2x1bWVDb250cm9sc0JhY2tncm91bmRTY3JpbUV4cGFuZGVkSG92ZXJTdGF0ZTphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6NHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoyOHB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjEpO3RyYW5zaXRpb24tcHJvcGVydHk6d2lkdGgsYmFja2dyb3VuZC1jb2xvcn0ueXR3UGxheWVyRnVsbHNjcmVlbkFjdGlvbk1lbnVIb3N0e2Rpc3BsYXk6YmxvY2t9Lnl0d1BsYXllckZ1bGxzY3JlZW5BY3Rpb25NZW51Q2lyY2xlQnV0dG9uc3ttYXJnaW4tcmlnaHQ6OHB4fS55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxIb3N0e2Rpc3BsYXk6YmxvY2t9Lnl0bUZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludFZpZXdNb2RlbEJ1dHRvbntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOnJvdzstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDo0OHB4O2JvcmRlci1yYWRpdXM6MjRweDtwYWRkaW5nLWxlZnQ6MTJweDtwYWRkaW5nLXJpZ2h0OjEycHg7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MnJlbTtmb250LXdlaWdodDo0MDA7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMyk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxCdXR0b24gYnV0dG9ue3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXRtRnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsQnV0dG9uIHN2Z3tmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0bUZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludFZpZXdNb2RlbFNpbmdsZVRodW1ibmFpbHtwYWRkaW5nOjZweCA4cHg7Ym9yZGVyLXJhZGl1czoxNnB4fS55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxIb3N0Om5vdCgueXRtRnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsVGl0bGVIaWRkZW4pIC55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxTaW5nbGVUaHVtYm5haWx7cGFkZGluZzo2cHggMTJweH0ueXRtRnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsVGh1bWJuYWlsU3RhY2t7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLXRvcDotMXB4fS55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxIb3N0Om5vdCgueXRtRnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsVGl0bGVIaWRkZW4pIC55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxUaHVtYm5haWxTdGFja3ttYXJnaW4tbGVmdDo4cHh9Lnl0bUZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludFZpZXdNb2RlbEZhZGVkVGh1bWJuYWlse2hlaWdodDoycHg7bWFyZ2luLWJvdHRvbToxcHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoycHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MnB4fS55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxTbWFsbEZhZGVkVGh1bWJuYWlse3dpZHRoOjEwcHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMyl9Lnl0bUZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludFZpZXdNb2RlbExhcmdlRmFkZWRUaHVtYm5haWx7d2lkdGg6MjBweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC43KX0ueXRtRnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsVGh1bWJuYWlsQ29udGFpbmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MzZweDtoZWlnaHQ6MjBweDtib3JkZXI6MnB4IHNvbGlkIHdoaXRlO2JvcmRlci1yYWRpdXM6OHB4O292ZXJmbG93OmhpZGRlbn0ueXRtRnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsU2luZ2xlVGh1bWJuYWlsIC55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxUaHVtYm5haWxDb250YWluZXJ7d2lkdGg6NjRweDtoZWlnaHQ6MzZweDtib3JkZXI6bm9uZTtvdXRsaW5lOjJweCBzb2xpZCAjZmZmO2JvcmRlci1yYWRpdXM6OHB4fS55dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxUaHVtYm5haWx7ZGlzcGxheTpibG9ja30ueXRtU2xpbU1ldGFkYXRhQnV0dG9uUmVuZGVyZXJIb3N0e21hcmdpbi1yaWdodDoxMnB4fXl0bS1zbGltLW1ldGFkYXRhLXRvZ2dsZS1idXR0b24tcmVuZGVyZXIuY2lyY2xlLWJ1dHRvbnN7bWFyZ2luLXJpZ2h0OjEycHh9eXRtLXNsaW0tbWV0YWRhdGEtdG9nZ2xlLWJ1dHRvbi1yZW5kZXJlci5jaXJjbGUtYnV0dG9ucyAuYnV0dG9uLXJlbmRlcmVyLXRleHR7ZGlzcGxheTpub25lfXl0bS1zbGltLW1ldGFkYXRhLXRvZ2dsZS1idXR0b24tcmVuZGVyZXIuY2lyY2xlLWJ1dHRvbnMgLmJ1dHRvbi1yZW5kZXJlcnt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O21pbi13aWR0aDphdXRvO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMyk7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luOjB9eXRtLXNsaW0tbWV0YWRhdGEtdG9nZ2xlLWJ1dHRvbi1yZW5kZXJlci5jaXJjbGUtYnV0dG9ucyAuYnV0dG9uLXJlbmRlcmVyLWljb257d2lkdGg6MjBweDtoZWlnaHQ6MjBweH0uZnVsbHNjcmVlbi1jb250cm9sc3stLWNvbnRyb2xzLWhlaWdodDoyMTVweDtib3R0b206Y2FsYyh2YXIoLS1jb250cm9scy1oZWlnaHQpKi0xKTtsZWZ0OjA7cmlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6dmFyKC0tY29udHJvbHMtaGVpZ2h0KTt6LWluZGV4OjI7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6MTJweDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmZ1bGxzY3JlZW4tY29udHJvbHMtdmlkZW8tdGl0bGV7Y29sb3I6I2ZmZn0uZnVsbHNjcmVlbi1jb250cm9scy5leHBhbmRlZHtib3R0b206MH0uZnVsbHNjcmVlbi1yZWNvbW1lbmRhdGlvbnMtd3JhcHBlcnstbW96LWJveC1mbGV4OjE7ZmxleDoxO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O292ZXJmbG93LXg6YXV0bzstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTtzY3JvbGxiYXItd2lkdGg6bm9uZX0uZnVsbHNjcmVlbi1yZWNvbW1lbmRhdGlvbnMtd3JhcHBlcjo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfUBtZWRpYSAocG9pbnRlcjpmaW5lKXsuZnVsbHNjcmVlbi1jb250cm9sc3stLWNvbnRyb2xzLWhlaWdodDoyMjhweH0uZnVsbHNjcmVlbi1yZWNvbW1lbmRhdGlvbnMtd3JhcHBlcntzY3JvbGxiYXItd2lkdGg6YXV0bzstbXMtb3ZlcmZsb3ctc3R5bGU6YXV0bztvdmVyZmxvdy15OmF1dG99LmZ1bGxzY3JlZW4tcmVjb21tZW5kYXRpb25zLXdyYXBwZXI6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjE2cHh9LmZ1bGxzY3JlZW4tcmVjb21tZW5kYXRpb25zLXdyYXBwZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2hlaWdodDo1NnB4O2JvcmRlci1yYWRpdXM6OHB4O2JvcmRlcjo0cHggc29saWQgdHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jbGlwOmNvbnRlbnQtYm94O2JhY2tncm91bmQtY29sb3I6IzYwNjA2MH0uZnVsbHNjcmVlbi1yZWNvbW1lbmRhdGlvbnMtd3JhcHBlcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojOTA5MDkwfS5mdWxsc2NyZWVuLXJlY29tbWVuZGF0aW9ucy13cmFwcGVyOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5OmJsb2NrfX0uZnVsbHNjcmVlbi1idXR0b25zLXdyYXBwZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjQ0cHh9LmZ1bGxzY3JlZW4tcmVjb21tZW5kYXRpb257d2lkdGg6MjAwcHg7bWluLXdpZHRoOjIwMHB4O21hcmdpbjowIDhweH0udG9wLWZ1bGxzY3JlZW4tY29udHJvbHN7cGFkZGluZzoxMnB4O2NvbG9yOiNmZmY7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDo2fS5mdWxsc2NyZWVuLWNsb3NlLWJ1dHRvbi13cmFwcGVye21hcmdpbi10b3A6LThweDttYXJnaW4tbGVmdDphdXRvfS5mdWxsc2NyZWVuLWFjdGlvbi1tZW51e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbToxMnB4O2hlaWdodDo0OHB4O2xlZnQ6MjRweDtyaWdodDoyNHB4O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ei1pbmRleDoyfS5hY3Rpb24tbWVudS1lbmdhZ2VtZW50LWJ1dHRvbnMtd3JhcHBlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtib3JkZXItcmFkaXVzOjQ4cHg7cGFkZGluZzo0cHggMDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4zKTt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9LmFjdGlvbi1tZW51LWVuZ2FnZW1lbnQtYnV0dG9ucy13cmFwcGVyIGJ1dHRvbnt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9LmFjdGlvbi1tZW51LWVuZ2FnZW1lbnQtYnV0dG9ucy13cmFwcGVyIHN2Z3tmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9LmFjdGlvbi1tZW51LWVuZ2FnZW1lbnQtYnV0dG9ucy13cmFwcGVyPjpmaXJzdC1jaGlsZHttYXJnaW4tbGVmdDo4cHh9LmZ1bGxzY3JlZW4tYWN0aW9uLW1lbnUsLmZ1bGxzY3JlZW4tYWN0aW9uLW1lbnUgLnl0QXR0cmlidXRlZFN0cmluZ0hvc3QsLmZ1bGxzY3JlZW4tcmVjb21tZW5kYXRpb257Y29sb3I6I2ZmZn0uZnVsbHNjcmVlbi13YXRjaC1uZXh0LWVudHJ5cG9pbnQtd3JhcHBlcnttYXJnaW4tbGVmdDphdXRvO2hlaWdodDoxMDAlfS5mdWxsc2NyZWVuLW1vcmUtdmlkZW9zLWVuZHBvaW50e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4fS5zdGFja2VkLXZpZGVvcy13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6Mjt3aWR0aDo2NHB4O2hlaWdodDoxMDAlfS5zdGFja2VkLXZpZGVvLXByZXZpZXd7d2lkdGg6NjRweDtoZWlnaHQ6MzZweDt0cmFuc2Zvcm0tb3JpZ2luOnRvcCBjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7YmFja2dyb3VuZDpibGFjaztib3JkZXI6MXB4IHNvbGlkIHdoaXRlO2JvcmRlci1yYWRpdXM6M3B4O292ZXJmbG93OmhpZGRlbjstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LnN0YWNrZWQtdmlkZW8tcHJldmlldyAuc3RhY2tlZC12aWRlby1wcmV2aWV3LWltYWdle3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0uc3RhY2tlZC12aWRlby1wcmV2aWV3OmZpcnN0LWNoaWxke3otaW5kZXg6M30uc3RhY2tlZC12aWRlby1wcmV2aWV3Om50aC1jaGlsZCgyKXt6LWluZGV4OjI7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTRweCkgc2NhbGUoLjg3NSl9LnN0YWNrZWQtdmlkZW8tcHJldmlldzpudGgtY2hpbGQoMikgLnN0YWNrZWQtdmlkZW8tcHJldmlldy1pbWFnZXtvcGFjaXR5Oi43NX0uc3RhY2tlZC12aWRlby1wcmV2aWV3Om50aC1jaGlsZCgzKXt6LWluZGV4OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLThweCkgc2NhbGUoLjc1KX0uc3RhY2tlZC12aWRlby1wcmV2aWV3Om50aC1jaGlsZCgzKSAuc3RhY2tlZC12aWRlby1wcmV2aWV3LWltYWdle29wYWNpdHk6LjV9Lm1vcmUtdmlkZW9zLW1lc3NhZ2V7bWFyZ2luLXJpZ2h0OjEycHg7dGV4dC1hbGlnbjpyaWdodH0ubW9yZS12aWRlb3MtbWVzc2FnZS10aXRsZXtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNnB4fS5tb3JlLXZpZGVvcy1tZXNzYWdlLXN1YnRpdGxle2ZvbnQtc2l6ZToxMHB4O2xpbmUtaGVpZ2h0OjE0cHg7b3BhY2l0eTouN30ucXVpY2stYWN0aW9ucy13cmFwcGVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjEwMCU7bWFyZ2luLWxlZnQ6YXV0b30ucXVpY2stYWN0aW9ucy1iYXItYnV0dG9ucy13cmFwcGVye3BhZGRpbmctbGVmdDoxMnB4fS53YXRjaC1vbi15b3V0dWJlLWJ1dHRvbi13cmFwcGVye2RpcmVjdGlvbjpsdHJ9QG1lZGlhIChtYXgtaGVpZ2h0OjIyMXB4KXsud2F0Y2gtb24teW91dHViZS1idXR0b24td3JhcHBlciAueXRTcGVjQnV0dG9uU2hhcGVOZXh0SG9zdHtoZWlnaHQ6NDBweDtwYWRkaW5nOjAgMjBweH19LndhdGNoLW9uLXlvdXR1YmUtYnV0dG9ue3BhZGRpbmctbGVmdDo0cHh9Lm5vLWxhYmVsLWV4cCB5dG0tc2xpbS1tZXRhZGF0YS1idXR0b24tcmVuZGVyZXIsLm5vLWxhYmVsLWV4cCB5dG0tc2xpbS1tZXRhZGF0YS10b2dnbGUtYnV0dG9uLXJlbmRlcmVyLmNpcmNsZS1idXR0b25zLC5uby1sYWJlbC1leHA+eXRtLWJ1dHRvbi1yZW5kZXJlci5jaXJjbGUtYnV0dG9uc3ttYXJnaW4tcmlnaHQ6OHB4fVtkaXI9cnRsXSAubm8tbGFiZWwtZXhwIHl0bS1zbGltLW1ldGFkYXRhLXRvZ2dsZS1idXR0b24tcmVuZGVyZXIuY2lyY2xlLWJ1dHRvbnMubGlrZS1idXR0b24tbm8tbGFiZWwtZXhwe2RpcmVjdGlvbjpydGx9QG1lZGlhIChtYXgtd2lkdGg6NTQ5cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpey5mcy13YXRjaC1zeXN0ZW06bm90KC5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbik6bm90KC5lbmFibGUtZnVsbHNjcmVlbi1jb250cm9scy1mb3ItcG9ydHJhaXQpIC5mdWxsc2NyZWVuLWFjdGlvbi1tZW51LC5mcy13YXRjaC1zeXN0ZW06bm90KC5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbik6bm90KC5lbmFibGUtZnVsbHNjcmVlbi1jb250cm9scy1mb3ItcG9ydHJhaXQpIC5mdWxsc2NyZWVuLWNvbnRyb2xze2Rpc3BsYXk6bm9uZX19eXRtLWN1c3RvbS1jb250cm9sIC5pY29uLWJ1dHRvbntoZWlnaHQ6NDhweDt3aWR0aDo0OHB4O3BhZGRpbmc6MTJweH1AbWVkaWEgKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpLChtYXgtd2lkdGg6Mjk5cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpe3l0bS1jdXN0b20tY29udHJvbCAuaWNvbi1idXR0b246bm90KC5wbGF5ZXItc2V0dGluZ3MtaWNvbil7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweDtwYWRkaW5nOjhweH15dG0tY3VzdG9tLWNvbnRyb2wgLmljb24tYnV0dG9uOm5vdCgucGxheWVyLXNldHRpbmdzLWljb24pPmMzLWljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH19eXRtLWN1c3RvbS1jb250cm9sIC5hdXRvbmF2LXVzZXItZWR1Y2F0aW9uLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjUlO3dpZHRoOjEwMCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Y29sb3I6I2ZmZn0uaW50ZXJjZXB0LWVsZW1lbnQtY2xpY2tzIC5wbGF5ZXItY29udHJvbHMtYm90dG9tLC5pbnRlcmNlcHQtZWxlbWVudC1jbGlja3MgLnBsYXllci1jb250cm9scy1taWRkbGUsLmludGVyY2VwdC1lbGVtZW50LWNsaWNrcyAucGxheWVyLWNvbnRyb2xzLXRvcCwuaW50ZXJjZXB0LWVsZW1lbnQtY2xpY2tzIC53YXRjaC1wYWdlLXByb2dyZXNzLWJhcntwb2ludGVyLWV2ZW50czpub25lfXl0bS1jdXN0b20tY29udHJvbCAuZmluZS1zY3J1YmJpbmctb3ZlcmxheSAuaWNvbi1idXR0b24+YzMtaWNvbiBzdmcgcGF0aCx5dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1ib3R0b20gLmZ1bGxzY3JlZW4taWNvbiBjMy1pY29uIHN2ZyBwYXRoLHl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLWJvdHRvbSAuaWNvbi1idXR0b24+YzMtaWNvbiBzdmcgcGF0aCx5dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGUgLmljb24tYnV0dG9uIGMzLWljb24gc3ZnIHBhdGgseXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtcGIgLmljb24tYnV0dG9uPmMzLWljb24seXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtdG9wIC5pY29uLWJ1dHRvbj5jMy1pY29uIHN2ZyBwYXRoLHl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLXRvcCB5dG0tY2xvc2VkLWNhcHRpb25pbmctYnV0dG9uIGJ1dHRvblthcmlhLXByZXNzZWQ9ZmFsc2VdPmMzLWljb24gc3ZnIHBhdGgseXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtdG9wIHl0bS1jbG9zZWQtY2FwdGlvbmluZy1idXR0b24gYnV0dG9uW2FyaWEtcHJlc3NlZD10cnVlXT5jMy1pY29uIHN2ZyBwYXRoe2ZpbGw6I2ZmZn15dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGUgLmljb24tYnV0dG9uLmljb24tZGlzYWJsZSBjMy1pY29uIHN2ZyBwYXRoLHl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLXRvcCB5dG0tY2xvc2VkLWNhcHRpb25pbmctYnV0dG9uIGJ1dHRvbj5jMy1pY29uIHN2ZyBwYXRoe2ZpbGw6cmdiYSgyNTUsMjU1LDI1NSwwLjMpfXl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLXRvcHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt6LWluZGV4OjI7cmlnaHQ6MjRweH1AbWVkaWEgKG1heC1oZWlnaHQ6MjIxcHgpe3l0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLXRvcHtyaWdodDowfX15dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy10b3AueXR3UGxheWVyVG9wQ29udHJvbHNDb250YWluZXJXaXRoRW1iZWRkZWRWaWRlb0RldGFpbHN7bGVmdDowfUBtZWRpYSAobWluLXdpZHRoOjM4MHB4KXt5dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy10b3AueXR3UGxheWVyVG9wQ29udHJvbHNDb250YWluZXJXaXRoRW1iZWRkZWRWaWRlb0RldGFpbHN7bGVmdDoxNHB4fX15dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy10b3AtcmlnaHR7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXh9W2Rpcj1ydGxdIHl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLWJhY2tncm91bmQsW2Rpcj1ydGxdIHl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLXRvcHtkaXJlY3Rpb246cnRsfWJvZHlbZmF1eC1mdWxsc2NyZWVuPXRydWVdIHl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLXRvcHt0b3A6ZW52KHNhZmUtYXJlYS1pbnNldC10b3ApfXl0bS1jdXN0b20tY29udHJvbCBjMy1vdmVybGF5e3Zpc2liaWxpdHk6dmlzaWJsZX0jcGxheWVyLWNvbnRyb2wtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9ufSNwbGF5ZXItY29udHJvbC1vdmVybGF5IC5wbGF5ZXItY29udHJvbHMtY29udGVudHtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47dmlzaWJpbGl0eTpoaWRkZW59I3BsYXllci1jb250cm9sLW92ZXJsYXkudXNlLW9wYWNpdHkgLnBsYXllci1jb250cm9scy1jb250ZW50e29wYWNpdHk6MDt2aXNpYmlsaXR5OnVuc2V0fSNwbGF5ZXItY29udHJvbC1vdmVybGF5IC5wbGF5ZXItY29udHJvbHMtYmFja2dyb3VuZHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDt6LWluZGV4OjA7b3BhY2l0eTowfSNwbGF5ZXItY29udHJvbC1vdmVybGF5IC5wbGF5ZXItY29udHJvbHMtYmFja2dyb3VuZDpub3QoLmZ1bGxzY3JlZW4tcmVjcy1leHBhbmRlZCl7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMCwwLDAsLjYpIDAscmdiYSgwLDAsMCwuNTQpIDI1JSxyZ2JhKDAsMCwwLC4zNikgNTAlLHJnYmEoMCwwLDAsLjE4KSA3NSUscmdiYSgwLDAsMCwwKSk7YmFja2dyb3VuZC1zaXplOjFweCA1MCU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9I3BsYXllci1jb250cm9sLW92ZXJsYXkgLnBsYXllci1jb250cm9scy1iYWNrZ3JvdW5kLmZ1bGxzY3JlZW4tcmVjcy1leHBhbmRlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC42KX0jcGxheWVyLWNvbnRyb2wtb3ZlcmxheSAucGxheWVyLWNvbnRyb2xzLWJhY2tncm91bmQtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDt0b3A6MDt2aXNpYmlsaXR5OnZpc2libGV9I3BsYXllci1jb250cm9sLW92ZXJsYXkgLnBsYXllci1jb250cm9scy1iYWNrZ3JvdW5kLWFjdGlvbi1pdGVtc3twb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjJ9I3BsYXllci1jb250cm9sLW92ZXJsYXkuYW5pbWF0aW9uLWVuYWJsZWR7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjdzO3RyYW5zaXRpb24tcHJvcGVydHk6YWxsfSNwbGF5ZXItY29udHJvbC1vdmVybGF5LmFuaW1hdGlvbi1lbmFibGVkIC5wbGF5ZXItY29udHJvbHMtYmFja2dyb3VuZHt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMnN9I3BsYXllci1jb250cm9sLW92ZXJsYXkucG9pbnRlci1ldmVudHMtb2Zme3BvaW50ZXItZXZlbnRzOm5vbmV9I3BsYXllci1jb250cm9sLW92ZXJsYXkuZmFkZWlue3BvaW50ZXItZXZlbnRzOmF1dG99I3BsYXllci1jb250cm9sLW92ZXJsYXkuZmFkZWluIC5wbGF5ZXItY29udHJvbHMtYmFja2dyb3VuZHt6LWluZGV4OjI7b3BhY2l0eToxfSNwbGF5ZXItY29udHJvbC1vdmVybGF5LmZhZGVpbiAucGxheWVyLWNvbnRyb2xzLWNvbnRlbnR7dmlzaWJpbGl0eTp2aXNpYmxlfSNwbGF5ZXItY29udHJvbC1vdmVybGF5LmZhZGVpbi51c2Utb3BhY2l0eSAucGxheWVyLWNvbnRyb2xzLWNvbnRlbnR7b3BhY2l0eToxO3Zpc2liaWxpdHk6dW5zZXR9I3BsYXllci1jb250cm9sLW92ZXJsYXkuaGlkZGVue2Rpc3BsYXk6bm9uZX1ib2R5W2ZhdXgtZnVsbHNjcmVlbj10cnVlXSAud2F0Y2gtcGFnZS1wcm9ncmVzcy1iYXJ7bGVmdDoyNHB4O3JpZ2h0OjI0cHh9Ym9keVtmYXV4LWZ1bGxzY3JlZW49dHJ1ZV0gLmVuYWJsZS1mdWxsc2NyZWVuLWNvbnRyb2xzIC53YXRjaC1wYWdlLXByb2dyZXNzLWJhcntib3R0b206MzBweH1ib2R5W2ZhdXgtZnVsbHNjcmVlbj10cnVlXSAuZW5hYmxlLWZ1bGxzY3JlZW4tY29udHJvbHMuZnMtd2F0Y2gtc3lzdGVtIC53YXRjaC1wYWdlLXByb2dyZXNzLWJhcntib3R0b206NTBweH0uZnVsbHNjcmVlbi1jb250cm9scy1hbHdheXMtb24gLndhdGNoLXBhZ2UtcHJvZ3Jlc3MtYmFye2JvdHRvbTo1MnB4fS5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbiAucGxheWVyLWNvbnRyb2xzLWJvdHRvbXtib3R0b206ODJweH0uZnVsbHNjcmVlbi1jb250cm9scy1hbHdheXMtb24gLmZ1bGxzY3JlZW4tYWN0aW9uLW1lbnV7bGVmdDoxMnB4O3JpZ2h0OjEycHh9QG1lZGlhIChtaW4td2lkdGg6MzgwcHgpey5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbiAuZnVsbHNjcmVlbi1hY3Rpb24tbWVudXtsZWZ0OjMwcHg7cmlnaHQ6MzBweH19QG1lZGlhIChtYXgtaGVpZ2h0OjIyMXB4KXsuZnVsbHNjcmVlbi1jb250cm9scy1hbHdheXMtb24gLndhdGNoLXBhZ2UtcHJvZ3Jlc3MtYmFye2JvdHRvbTozMnB4O3otaW5kZXg6MztoZWlnaHQ6NDBweDtsZWZ0OjEycHg7cmlnaHQ6MTJweH0uZnVsbHNjcmVlbi1jb250cm9scy1hbHdheXMtb24gLndhdGNoLXBhZ2UtcHJvZ3Jlc3MtYmFyIC55dFBsYXllclByb2dyZXNzQmFyRHJhZ0NvbnRhaW5lcnstbW96LWJveC1hbGlnbjplbmQ7YWxpZ24taXRlbXM6ZW5kfS5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbiAud2F0Y2gtcGFnZS1wcm9ncmVzcy1iYXIgLnl0UGxheWVyUHJvZ3Jlc3NCYXJQcm9ncmVzc0JhcntwYWRkaW5nLWJvdHRvbToxMnB4fS5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbiAucGxheWVyLWNvbnRyb2xzLWJvdHRvbXtib3R0b206NThweH0uZnVsbHNjcmVlbi1jb250cm9scy1hbHdheXMtb24gLnBsYXllci1jb250cm9scy1ib3R0b20ucGxheWVyLWNvbnRyb2xzLWJvdHRvbS1sZWZ0e2xlZnQ6MDtyaWdodDo0NHB4fS5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbiAucGxheWVyLWNvbnRyb2xzLWJvdHRvbS5wbGF5ZXItY29udHJvbHMtYm90dG9tLXJpZ2h0e2xlZnQ6dW5zZXQ7cmlnaHQ6MDt6LWluZGV4OjR9LmZ1bGxzY3JlZW4tY29udHJvbHMtYWx3YXlzLW9uIC5mdWxsc2NyZWVuLWFjdGlvbi1tZW51e2xlZnQ6MnB4O3JpZ2h0OjJweDtib3R0b206MnB4fS5mdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbiAuZnVsbHNjcmVlbi1tb3JlLXZpZGVvcy1lbmRwb2ludHttYXJnaW4tdG9wOjEycHh9LmZ1bGxzY3JlZW4tY29udHJvbHMtYWx3YXlzLW9uIC5zdGFja2VkLXZpZGVvLXByZXZpZXcsLmZ1bGxzY3JlZW4tY29udHJvbHMtYWx3YXlzLW9uIC5zdGFja2VkLXZpZGVvcy13cmFwcGVye3dpZHRoOjQycHg7aGVpZ2h0OjI0cHh9LmZ1bGxzY3JlZW4tY29udHJvbHMtYWx3YXlzLW9uIC5wbGF5ZXItdGltZS1jaGFwdGVyLXRpdGxle2Rpc3BsYXk6bm9uZX19LnBsYXllci1jb250cm9scy1oaWRle2Rpc3BsYXk6bm9uZX0ueXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlIb3N0e2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lnl0bU11dGVkQXV0b3BsYXlPdmVybGF5QnJhbmRpbmdJY29ue3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo2cHg7cmlnaHQ6MTJweDtjb2xvcjojZmZmfVtkaXI9cnRsXSAueXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlCcmFuZGluZ0ljb257bGVmdDoxMnB4O3JpZ2h0OmF1dG99Lnl0bU11dGVkQXV0b3BsYXlPdmVybGF5QmFja2dyb3VuZHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjYpfS55dG1NdXRlZEF1dG9wbGF5T3ZlcmxheUFjdGlvbk1lbnV7b3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuN3M7dHJhbnNpdGlvbi1wcm9wZXJ0eTphbGx9Lnl0bU11dGVkQXV0b3BsYXlPdmVybGF5SGlkZUFjdGlvbk1lbnV7b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVufS55dG1NdXRlZEF1dG9wbGF5T3ZlcmxheUVxdWFsaXplcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MTVweDtyaWdodDoxMnB4fVtkaXI9cnRsXSAueXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlFcXVhbGl6ZXJ7bGVmdDoxMnB4O3JpZ2h0OmF1dG99QGtleWZyYW1lcyB5dG0tZXF1YWxpemVyLWFuaW1hdGlvbnswJXt0cmFuc2Zvcm06c2NhbGVZKDEpfTUwJXt0cmFuc2Zvcm06c2NhbGVZKC41KX10b3t0cmFuc2Zvcm06c2NhbGVZKDEpfX0ueXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlFcXVhbGl6ZXIgLnl0bS1lcXVhbGl6ZXItYmFyLWxlZnQsLnl0bU11dGVkQXV0b3BsYXlPdmVybGF5RXF1YWxpemVyIC55dG0tZXF1YWxpemVyLWJhci1taWRkbGUsLnl0bU11dGVkQXV0b3BsYXlPdmVybGF5RXF1YWxpemVyIC55dG0tZXF1YWxpemVyLWJhci1yaWdodHtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDt0cmFuc2Zvcm0tb3JpZ2luOjhweCAxNnB4Oy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjo4cHggMTZweDthbmltYXRpb24tbmFtZTp5dG0tZXF1YWxpemVyLWFuaW1hdGlvbjthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlfS55dG1NdXRlZEF1dG9wbGF5T3ZlcmxheUVxdWFsaXplciAueXRtLWVxdWFsaXplci1iYXItbGVmdHthbmltYXRpb24tZHVyYXRpb246LjVzfS55dG1NdXRlZEF1dG9wbGF5T3ZlcmxheUVxdWFsaXplciAueXRtLWVxdWFsaXplci1iYXItbWlkZGxle2FuaW1hdGlvbi1kdXJhdGlvbjoxLjNzfS55dG1NdXRlZEF1dG9wbGF5T3ZlcmxheUVxdWFsaXplciAueXRtLWVxdWFsaXplci1iYXItcmlnaHR7YW5pbWF0aW9uLWR1cmF0aW9uOi43c30ueXRTaG9ydHNUb3VjaEZlZWRiYWNrSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS55dFNob3J0c1RvdWNoRmVlZGJhY2tIaWRkZW57ZGlzcGxheTpub25lfS55dFNob3J0c1RvdWNoRmVlZGJhY2tUb3VjaEZlZWRiYWNre2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dFNob3J0c1RvdWNoRmVlZGJhY2tMaWtlQW5pbWF0aW9uV3JhcHBlcnt3aWR0aDoyNDBweDtoZWlnaHQ6MjQwcHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS55dFNob3J0c1RvdWNoRmVlZGJhY2tMaWtlQW5pbWF0aW9ue3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Lnl0U2hvcnRzVG91Y2hGZWVkYmFja1BsYXlQYXVzZUFuaW1hdGlvbnt3aWR0aDo5NnB4O2hlaWdodDo5NnB4fUBtZWRpYSAobWF4LXdpZHRoOjkzMHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVySG9zdHtvdmVyZmxvdy15OnNjcm9sbH19Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyU2NyaW1Db250YWluZXJ7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDo1fS5ZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlckNvbnRhaW5lcntib3JkZXItcmFkaXVzOjIwcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO21hcmdpbjowIDhweCAyNHB4O21heC13aWR0aDo0MDBweDtkaXNwbGF5OmJsb2NrO292ZXJmbG93OnNjcm9sbH0uWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJIZWFkZXJ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTQwcHg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjIwcHggMDt3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1yYWRpdXM6MTJweH0uWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJDZW50cmFsSWNvbntoZWlnaHQ6NjVweDt3aWR0aDo2NXB4O2NvbG9yOiNmMDM7YmFja2dyb3VuZC1jb2xvcjojZmZmO3BhZGRpbmc6MTVweDtib3JkZXItcmFkaXVzOjQ1cHh9Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyQ2xvc2V7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7cmlnaHQ6MTBweDtib3JkZXItcmFkaXVzOjI0cHh9Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyRHJhZ0hhbmRsZXtiYWNrZ3JvdW5kOiMwMzAzMDM7b3BhY2l0eTouMTU7Ym9yZGVyLXJhZGl1czo0cHg7aGVpZ2h0OjRweDttYXJnaW46MCBhdXRvO3dpZHRoOjQwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjhweH0uWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJDb250ZW50c3tkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZzoyNHB4fS5ZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlckNvbnRlbnRzPmRpdntwYWRkaW5nLWJvdHRvbTo2cHh9Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyQ29udGVudHM+eXRtLWJ1dHRvbi1yZW5kZXJlcntwYWRkaW5nLXRvcDo2cHh9Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyVGl0bGV7Zm9udC1zaXplOjJyZW07bGluZS1oZWlnaHQ6Mi44cmVtfUBtZWRpYSAobWluLXdpZHRoOjMwMHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSksKG1pbi13aWR0aDozMDBweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyVGl0bGV7bGV0dGVyLXNwYWNpbmc6LjAwNWVtfX0uWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJTdWJ0aXRsZXtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjEuOHJlbX1AbWVkaWEgKG1pbi13aWR0aDozMDBweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpLChtaW4td2lkdGg6MzAwcHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpey5ZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlclN1YnRpdGxle2xldHRlci1zcGFjaW5nOi4wMWVtfX0uWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJPdmVybGF5Q29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowO3otaW5kZXg6NTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjEwMCV9QG1lZGlhIChtYXgtd2lkdGg6OTMwcHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKXsuWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJPdmVybGF5Q29udGFpbmVye3RvcDowfX1AbWVkaWEgKG1pbi13aWR0aDo1NTBweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyT3ZlcmxheUNvbnRhaW5lcntib3R0b206NTAlfX1AbWVkaWEgKG1pbi13aWR0aDo5MzFweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey5ZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlck92ZXJsYXlDb250YWluZXJ7Ym90dG9tOjI1JX19QG1lZGlhIChtYXgtaGVpZ2h0OjUwMHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Lll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyT3ZlcmxheUNvbnRhaW5lcntib3R0b206MH19W2JvdHRvbS1zaGVldC1vdmVybGF5LWJvZHktb3Blbl17cG9zaXRpb246Zml4ZWQ7bGVmdDowO3JpZ2h0OjA7dG9wOjA7b3ZlcmZsb3c6aGlkZGVufS55dG0tZm9yY2VkLW11dGUtbWVzc2FnZSAuYnV0dG9uLXdpdGgtaWNvbi1pbm5lcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4zKTtib3JkZXI6MXB4IHNvbGlkICNmZmY7Ym9yZGVyLXJhZGl1czozcHg7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtwYWRkaW5nOjZweH0ueXRtLWZvcmNlZC1tdXRlLW1lc3NhZ2UgLmJ1dHRvbi13aXRoLWljb24taW5uZXIgYzMtaWNvbntoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fXl0bS1pbmZvLXBhbmVsLWNvbnRhaW5lci1yZW5kZXJlci5pdGVte21hcmdpbi10b3A6MH15dG0taW5mby1wYW5lbC1jb250YWluZXItcmVuZGVyZXJ7YmFja2dyb3VuZC1jb2xvcjojZGVmMWZmO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn15dG0taW5mby1wYW5lbC1jb250YWluZXItcmVuZGVyZXJbYmFja2dyb3VuZD1JTkZPX1BBTkVMX0NPTlRBSU5FUl9CQUNLR1JPVU5EX1NZU1RFTV06Zmlyc3QtY2hpbGR7Ym9yZGVyOm5vbmV9eXRtLWluZm8tcGFuZWwtY29udGFpbmVyLXJlbmRlcmVyW2JhY2tncm91bmQ9SU5GT19QQU5FTF9DT05UQUlORVJfQkFDS0dST1VORF9TWVNURU1de2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpfXl0bS1pbmZvLXBhbmVsLWNvbnRhaW5lci1yZW5kZXJlcltiYWNrZ3JvdW5kPUlORk9fUEFORUxfQ09OVEFJTkVSX0JBQ0tHUk9VTkRfR1JBWV17YmFja2dyb3VuZC1jb2xvcjojZmZmfXl0bS1pbmZvLXBhbmVsLWNvbnRhaW5lci1yZW5kZXJlcltiYWNrZ3JvdW5kPUlORk9fUEFORUxfQ09OVEFJTkVSX0JBQ0tHUk9VTkRfT1ZFUkxBWV9CTEFDS117YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNil9Lnl0bS1pbmZvLXBhbmVsLWNvbnRhaW5lci1oZWFkZXJ7aGVpZ2h0OjM2cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NTAwfS55dG0taW5mby1wYW5lbC1jb250YWluZXItaGVhZGVyLWxlZnQtaXRlbXN7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXRtLWluZm8tcGFuZWwtY29udGFpbmVyLWhlYWRlci1pY29ue21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjhweH0ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVySG9zdFt5dG0taW5mby1wYW5lbC1jb250ZW50LWhhcy1tZW51PXRydWVde2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3d9Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlckhvc3RbeXRtLWluZm8tcGFuZWwtY29udGVudC1oYXMtbWVudT10cnVlXSAueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyV3JhcHBlcntwYWRkaW5nLWJvdHRvbToxMnB4fS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJIb3N0Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlckhvc3RJc1dhdGNoSW5mb1BhbmVse21hcmdpbjoxMnB4O2JvcmRlci1yYWRpdXM6MTJweH0ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVySG9zdFt5dG0taW5mby1wYW5lbC1jb250ZW50LXRydW5jYXRlLXBhcmFncmFwaHM9dHJ1ZV0gLnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlclBhcmFncmFwaHstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczstd2Via2l0LWxpbmUtY2xhbXA6M30ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVySG9zdFtkYXRhLWJhY2tncm91bmQ9SU5GT19QQU5FTF9DT05URU5UX0JBQ0tHUk9VTkRfT1ZFUkxBWV9CTEFDS10gLnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlcklubGluZVNvdXJjZXtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjUwMH0ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVySG9zdFtkYXRhLWJhY2tncm91bmQ9SU5GT19QQU5FTF9DT05URU5UX0JBQ0tHUk9VTkRfQkxVRV17YmFja2dyb3VuZC1jb2xvcjojZGVmMWZmfS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJIb3N0Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlckhvc3RDaW5lbWF0aWNCYWNrZ3JvdW5ke2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpfS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJXcmFwcGVye3BhZGRpbmc6MTJweCAxNnB4IDE2cHggMTZweH0ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyV3JhcHBlcltkYXRhLWhhcy1pY29uPXRydWVde3BhZGRpbmc6MTRweCAxMnB4fS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJCb2R5e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDpob3Jpem9udGFsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93fS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJUZXh0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJUaXRsZUNvbnRhaW5lcntjb2xvcjojMDY1ZmQ0O21hcmdpbi1ib3R0b206NHB4O2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NTAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6NHJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyVGl0bGVDb250YWluZXJ7LXdlYmtpdC1saW5lLWNsYW1wOjI7bWF4LWhlaWdodDpub25lfX0ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyVGl0bGVDb250YWluZXJ7bWF4LWhlaWdodDo0cmVtfS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJMaW5rSWNvbntwYWRkaW5nLWxlZnQ6MXB4O3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHg7dmVydGljYWwtYWxpZ246dGV4dC10b3B9Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlck1ldGFkYXRhe21hcmdpbi1ib3R0b206NHB4O2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDB9Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlclB1Ymxpc2hUaW1le2Rpc3BsYXk6aW5saW5lO2NvbG9yOiM2MDYwNjA7cGFkZGluZy1sZWZ0OjNweH0ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyUGFyYWdyYXBoe2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXdlaWdodDo0MDB9Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlcklubGluZVNvdXJjZXtkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjojMDY1ZmQ0O3BhZGRpbmctbGVmdDoycHh9Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlcklubGluZVNvdXJjZVRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lnl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlclRodW1ibmFpbHtmbGV4LXNocmluazowO2hlaWdodDo2NHB4O3dpZHRoOjY0cHg7bWFyZ2luLWxlZnQ6OHB4fS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJFbmRwb2ludHt3aWR0aDoxMDAlfS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJIZWFkZXJSaWdodEl0ZW1ze2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVySGVhZGVySWNvbnttYXJnaW4tbGVmdDo0cHg7bWFyZ2luLXJpZ2h0OjRweDtoZWlnaHQ6MTZweDt3aWR0aDoxNnB4fS55dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJNZW51e2Rpc3BsYXk6YmxvY2t9Lnl0bUxvZ29FbnRpdHlIb3N0e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjQ4cHh9Lnl0bUxvZ29FbnRpdHlDb250YWluZXJ7d2lkdGg6MTIycHg7bWFyZ2luLXJpZ2h0OjEycHh9Lnl0bUxvZ29FbnRpdHlMb2dve3BhZGRpbmc6MDtoZWlnaHQ6NDhweDt3aWR0aDphdXRvO2NvbG9yOnVuc2V0fS5wbGF5ZXJJbnRlcnN0aXRpYWxSZW5kZXJlckhvc3R7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOiM2MDYwNjB9LnBsYXllckludGVyc3RpdGlhbFJlbmRlcmVyU2NyaW17d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtcGFjazplbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDAsMCwwLC40KSAwLHJnYmEoMCwwLDAsLjYpIDc1JSxyZ2JhKDAsMCwwLC42KSl9Lnl0QmlnYm9hcmRTdG9yeWJvYXJkSG9zdHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbn0ueXRtQTExeVN0eWxlc0hpZGRlbkJ1dHRvbntwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEycHg7d2lkdGg6MTJweH0ueXRtQ2xvc2VkQ2FwdGlvbmluZ0J1dHRvbkhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHh9Lnl0bUNsb3NlZENhcHRpb25pbmdCdXR0b25JY29uRGlzYWJsZWR7Y29sb3I6IzkwOTA5MH0ueXRtQ2xvc2VkQ2FwdGlvbmluZ0J1dHRvbkljb25EaXNhYmxlZE92ZXJsYXl7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjMpfS55dG1DbG9zZWRDYXB0aW9uaW5nQnV0dG9uWXRJY29uT3ZlcmxheXtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLDAuOCkpfS55dG1DbG9zZWRDYXB0aW9uaW5nQnV0dG9uQnV0dG9ue2N1cnNvcjpwb2ludGVyO3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7cGFkZGluZzoxMnB4O2JvcmRlcjpub25lO291dGxpbmU6bm9uZTtmb250OmluaGVyaXQ7dGV4dC10cmFuc2Zvcm06aW5oZXJpdDtjb2xvcjppbmhlcml0O2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Lnl0bUNyZWF0b3JFbmRzY3JlZW5Ib3N0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2ZvbnQtc2l6ZToxLjJyZW07dmlzaWJpbGl0eTpoaWRkZW59Lnl0bUNyZWF0b3JFbmRzY3JlZW5JbkN1ZVJhbmdle3Zpc2liaWxpdHk6dmlzaWJsZX0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemU4NTN7Zm9udC1zaXplOjEuNHJlbX0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemUxMjgwe2ZvbnQtc2l6ZToxLjhyZW19Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplMTkyMHtmb250LXNpemU6Mi40cmVtfS55dG1DcmVhdG9yRW5kc2NyZWVuRWxlbWVudHtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllciguMDUsMCwwLDEpfS55dG1DcmVhdG9yRW5kc2NyZWVuRWxlbWVudFZpc2libGV7b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG99Lnl0bUNyZWF0b3JFbmRzY3JlZW5TY3JpbXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7b3BhY2l0eTowO3RyYW5zaXRpb246YWxsIC4yczt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjA1LDAsMCwxKX0ueXRtQ3JlYXRvckVuZHNjcmVlblNjcmltVmlzaWJsZXtvcGFjaXR5Oi4yNX0ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudEhvc3R7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3RyYW5zaXRpb246ei1pbmRleCAuMnMgc3RlcC1lbmQ7ei1pbmRleDo2O3Bvc2l0aW9uOnJlbGF0aXZlfS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50SG9zdEFjdGl2ZXt0cmFuc2l0aW9uOnotaW5kZXggLjJzIHN0ZXAtc3RhcnQ7ei1pbmRleDo3fS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50VGh1bWJuYWlse2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsMC42KX0ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudFJvdW5ke2JvcmRlci1yYWRpdXM6NTAlfS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC44KTtoZWlnaHQ6MTAwJTtwYWRkaW5nOjhweDttYXJnaW46LThweDtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgLjJzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMDUsMCwwLDEpO2NvbG9yOiNmZmY7dmlzaWJpbGl0eTpoaWRkZW47YWxpZ24tY29udGVudDpjZW50ZXI7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVufS55dG1DcmVhdG9yRW5kc2NyZWVuUm91bmRpbmdTbWFsbCAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXl7Ym9yZGVyLXJhZGl1czo0cHh9Lnl0bUNyZWF0b3JFbmRzY3JlZW5Sb3VuZGluZ01lZGl1bSAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXl7Ym9yZGVyLXJhZGl1czo4cHh9Lnl0bUNyZWF0b3JFbmRzY3JlZW5Sb3VuZGluZ0xhcmdlIC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheXtib3JkZXItcmFkaXVzOjEycHh9Lnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5UmlnaHR7bGVmdDowfS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheVJpZ2h0QWN0aXZle3BhZGRpbmctbGVmdDpjYWxjKDEwMCUgKyA4cHgpfS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUxlZnR7cmlnaHQ6MH0ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlMZWZ0QWN0aXZle3BhZGRpbmctcmlnaHQ6Y2FsYygxMDAlICsgOHB4KX0ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlMZWZ0QWN0aXZlLC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheVJpZ2h0QWN0aXZle29wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7bWF4LXdpZHRoOm5vbmV9Lnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudHt3aWR0aDoxMTVweDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luLWxlZnQ6MTJweDttYXJnaW4tcmlnaHQ6OHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlBY3RpdmVSaWdodCAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlDb250ZW50e21hcmdpbi1sZWZ0OjhweDttYXJnaW4tcmlnaHQ6MTJweH0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemU0MjYgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudCwueXRtQ3JlYXRvckVuZHNjcmVlblNpemU0NzAgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudCwueXRtQ3JlYXRvckVuZHNjcmVlblNpemU1MDYgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudCwueXRtQ3JlYXRvckVuZHNjcmVlblNpemU1NzAgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudHt3aWR0aDoxMzZweH0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemU0MjYgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudHttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjEycHh9Lnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5QWN0aXZlUmlnaHQgLnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplNDI2IC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUNvbnRlbnR7bWFyZ2luLWxlZnQ6MTJweDttYXJnaW4tcmlnaHQ6OHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTY0MCAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlDb250ZW50e3dpZHRoOjEzNnB4O21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjhweH0ueXRtQ3JlYXRvckVuZHNjcmVlbkVsZW1lbnRPdmVybGF5QWN0aXZlUmlnaHQgLnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplNjQwIC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUNvbnRlbnR7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDoxNnB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTg1MyAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlDb250ZW50e3dpZHRoOjE3NnB4O21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjhweH0ueXRtQ3JlYXRvckVuZHNjcmVlbkVsZW1lbnRPdmVybGF5QWN0aXZlUmlnaHQgLnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplODUzIC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUNvbnRlbnR7bWFyZ2luLWxlZnQ6OHB4O21hcmdpbi1yaWdodDoxNnB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTEyODAgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudHt3aWR0aDoyNjRweDttYXJnaW4tbGVmdDozMnB4O21hcmdpbi1yaWdodDoxNnB4fS55dG1DcmVhdG9yRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlBY3RpdmVSaWdodCAueXRtQ3JlYXRvckVuZHNjcmVlblNpemUxMjgwIC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUNvbnRlbnR7bWFyZ2luLWxlZnQ6MTZweDttYXJnaW4tcmlnaHQ6MzJweH0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemUxOTIwIC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUNvbnRlbnR7d2lkdGg6MzkycHg7bWFyZ2luLWxlZnQ6NDhweDttYXJnaW4tcmlnaHQ6MjRweH0ueXRtQ3JlYXRvckVuZHNjcmVlbkVsZW1lbnRPdmVybGF5QWN0aXZlUmlnaHQgLnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplMTkyMCAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlDb250ZW50e21hcmdpbi1sZWZ0OjI0cHg7bWFyZ2luLXJpZ2h0OjQ4cHh9Lnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudHttYXgtaGVpZ2h0OjEwMCU7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlUaXRsZXtmb250LXNpemU6MS4ycmVtO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxLjI1O21hcmdpbi1ib3R0b206MnB4O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtbGluZS1jbGFtcDoyfS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTg1MyAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlUaXRsZXtmb250LXNpemU6MS42cmVtfS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTEyODAgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5VGl0bGV7Zm9udC1zaXplOjJyZW19Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplMTkyMCAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlUaXRsZXtmb250LXNpemU6Mi40cmVtfS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheU1ldGFkYXRhQ2hhbm5lbCwueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlNZXRhZGF0YVdlYnNpdGV7Zm9udC1zaXplOjEuMnJlbTttYXJnaW4tdG9wOjRweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueXRtQ3JlYXRvckVuZHNjcmVlblNpemU4NTMgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5TWV0YWRhdGFDaGFubmVsLC55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTg1MyAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlNZXRhZGF0YVdlYnNpdGV7Zm9udC1zaXplOjEuNnJlbX0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemUxMjgwIC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheU1ldGFkYXRhQ2hhbm5lbCwueXRtQ3JlYXRvckVuZHNjcmVlblNpemUxMjgwIC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheU1ldGFkYXRhV2Vic2l0ZXtmb250LXNpemU6MS44cmVtO21hcmdpbi10b3A6OHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTE5MjAgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5TWV0YWRhdGFDaGFubmVsLC55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTE5MjAgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5TWV0YWRhdGFXZWJzaXRle2ZvbnQtc2l6ZToycmVtO21hcmdpbi10b3A6MTJweH0ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlNZXRhZGF0YUNoYW5uZWx7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjIpO3BhZGRpbmctdG9wOjRweDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6M30ueXRtQ3JlYXRvckVuZHNjcmVlblNpemU2NDAgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5TWV0YWRhdGFDaGFubmVsey13ZWJraXQtbGluZS1jbGFtcDoyfS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTU3MCAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlNZXRhZGF0YUNoYW5uZWx7LXdlYmtpdC1saW5lLWNsYW1wOjF9Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplMzQ2IC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheU1ldGFkYXRhQ2hhbm5lbCwueXRtQ3JlYXRvckVuZHNjcmVlblNpemU0MjYgLnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5TWV0YWRhdGFDaGFubmVsLC55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTQ3MCAueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlNZXRhZGF0YUNoYW5uZWwsLnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplNTA2IC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheU1ldGFkYXRhQ2hhbm5lbHtkaXNwbGF5Om5vbmV9Lnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5TWV0YWRhdGFXZWJzaXRle3doaXRlLXNwYWNlOm5vd3JhcH0ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlDYWxsVG9BY3Rpb257Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi10b3A6NHB4O2ZvbnQtc2l6ZToxcmVtO3RyYW5zaXRpb246YWxsIC4yc30ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlDYWxsVG9BY3Rpb246aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtjdXJzb3I6cG9pbnRlcn0ueXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlCdXR0b257bWFyZ2luLXRvcDo0cHg7bWFyZ2luLWJvdHRvbTo0cHh9Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplMzQ2IC55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUJ1dHRvbntkaXNwbGF5Om5vbmV9Lnl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRTY3JpbXtwb2ludGVyLWV2ZW50czpub25lO2JhY2tncm91bmQtY29sb3I6IzAwMDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5OmJsb2NrO3otaW5kZXg6NjtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgLjJzfS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50U2NyaW1DaGFubmVse2JvcmRlci1yYWRpdXM6NTAlfS55dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50U2NyaW1BY3RpdmV7b3BhY2l0eTouMjV9Lnl0d0FuaW1hdGVkU3Vic2NyaWJlQnV0dG9uSG9zdHt3aWR0aDoxMDAlfS55dHdBbmltYXRlZFN1YnNjcmliZUJ1dHRvbkNvbnRlbnRDb250YWluZXJ7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czoxOHB4fS55dHdBbmltYXRlZFN1YnNjcmliZUJ1dHRvbkZsZXhDb250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudH0ueXR3QW5pbWF0ZWRTdWJzY3JpYmVCdXR0b25DYW5BbmltYXRle3RyYW5zaXRpb246d2lkdGggLjVzIGVhc2V9Lnl0d0FuaW1hdGVkU3Vic2NyaWJlQnV0dG9uU3RhdGljV2lkdGggLnl0d0FuaW1hdGVkU3Vic2NyaWJlQnV0dG9uRmxleENvbnRhaW5lcnt3aWR0aDphdXRvfS55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50SG9zdHtkaXNwbGF5OmJsb2NrO2N1cnNvcjpwb2ludGVyO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2JveC1zaGFkb3c6MCAwIDRweCByZ2JhKDAsMCwwLDAuNik7dHJhbnNpdGlvbjphbGwgLjJzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMDUsMCwwLDEpO3otaW5kZXg6NX0ueXRtQ3JlYXRvckVuZHNjcmVlblJvdW5kaW5nU21hbGwgLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRIb3N0e2JvcmRlci1yYWRpdXM6NHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuUm91bmRpbmdNZWRpdW0gLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRIb3N0e2JvcmRlci1yYWRpdXM6OHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuUm91bmRpbmdMYXJnZSAueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudEhvc3R7Ym9yZGVyLXJhZGl1czoxMnB4fS55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50SG9zdEFjdGl2ZXtib3JkZXItY29sb3I6I2ZmZn0ueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRvcE92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjMzJX0ueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRodW1ibmFpbFRpdGxle2NvbG9yOiNmZmY7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjEuMnJlbTtmb250LXdlaWdodDo1MDA7bWFyZ2luOjZweCA4cHggMDtsaW5lLWhlaWdodDoxLjI1O3RleHQtc2hhZG93OjAgMXB4IDAgcmdiYSgwLDAsMCwwLjMpO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6Mjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTY0MCAueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRodW1ibmFpbFRpdGxle2ZvbnQtc2l6ZToxLjRyZW19Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplODUzIC55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50VGh1bWJuYWlsVGl0bGV7Zm9udC1zaXplOjEuNnJlbTttYXJnaW46MTBweCAxMnB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTEyODAgLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRUaHVtYm5haWxUaXRsZXtmb250LXNpemU6MnJlbTttYXJnaW46MTRweCAxNnB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTE5MjAgLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRUaHVtYm5haWxUaXRsZXtmb250LXNpemU6Mi40cmVtO21hcmdpbjoxOHB4IDIwcHh9Lnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRUaHVtYm5haWx7b2JqZWN0LWZpdDpjb3Zlcn0ueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRpbWVTdGF0dXN7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cmlnaHQ6MH0ueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRpbWVTdGF0dXMgLnl0QmFkZ2VTaGFwZUhvc3R7Zm9udC1zaXplOmluaGVyaXR9Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplODUzIC55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50VGltZVN0YXR1cyAueXRCYWRnZVNoYXBlSG9zdHtwYWRkaW5nOjJweCA0cHg7bWFyZ2luLWJvdHRvbToycHg7bWFyZ2luLXJpZ2h0OjJweH0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemUxMjgwIC55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50VGltZVN0YXR1cyAueXRCYWRnZVNoYXBlSG9zdHtwYWRkaW5nOjZweCA4cHg7bWFyZ2luLWJvdHRvbTo4cHg7bWFyZ2luLXJpZ2h0OjhweH0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemUxOTIwIC55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50VGltZVN0YXR1cyAueXRCYWRnZVNoYXBlSG9zdHtwYWRkaW5nOjEwcHggMTJweDttYXJnaW4tYm90dG9tOjE2cHg7bWFyZ2luLXJpZ2h0OjE2cHh9Lnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRUb3BHcmFkaWVudHtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5Oi44O2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYigwLDAsMCksdHJhbnNwYXJlbnQpfS55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50UGxheWxpc3RMZW5ndGhPdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNik7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjJweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyl9Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplODUzIC55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50UGxheWxpc3RMZW5ndGhPdmVybGF5e3BhZGRpbmc6NHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTEyODAgLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRQbGF5bGlzdExlbmd0aE92ZXJsYXl7cGFkZGluZzo4cHh9Lnl0bUNyZWF0b3JFbmRzY3JlZW5TaXplMTkyMCAueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFBsYXlsaXN0TGVuZ3RoT3ZlcmxheXtwYWRkaW5nOjEycHh9Lnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRQbGF5bGlzdExlbmd0aHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyl9Lnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRQbGF5bGlzdEljb257Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjcpO21hcmdpbjowIDJweH0ueXRtQ3JlYXRvckVuZHNjcmVlblNpemU4NTMgLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRQbGF5bGlzdEljb257bWFyZ2luOjAgNHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTEyODAgLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRQbGF5bGlzdEljb257bWFyZ2luOjAgOHB4fS55dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZTE5MjAgLnl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRQbGF5bGlzdEljb257bWFyZ2luOjAgMTJweH0ueXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFNjcmlte2JhY2tncm91bmQtY29sb3I6IzAwMDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5OmJsb2NrO3otaW5kZXg6NTtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgLjJzfS55dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50U2NyaW1BY3RpdmV7b3BhY2l0eTouMjV9Lnl0UGZwQXV0b25hdkhvc3R7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5OmJsb2NrfS55dFBmcEF1dG9uYXZWaXNpYmxle3BvaW50ZXItZXZlbnRzOmF1dG87YmFja2dyb3VuZDpibGFja30ueXRQZnBBdXRvbmF2U2NyaW17cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC42KTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOndoaXRlO3BvaW50ZXItZXZlbnRzOmF1dG99Lnl0UGZwQXV0b25hdkhlYWRlcntmb250LXNpemU6MTRweDttYXJnaW4tYm90dG9tOjhweH0ueXRQZnBBdXRvbmF2VGl0bGV7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi1ib3R0b206NHB4fS55dFBmcEF1dG9uYXZCeWxpbmV7Zm9udC1zaXplOjE2cHg7bWFyZ2luLWJvdHRvbToyNHB4fS55dFBmcEF1dG9uYXZCeWxpbmUsLnl0UGZwQXV0b25hdlRpdGxle21heC13aWR0aDo4MCU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS55dFBmcEF1dG9uYXZQbGF5QnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjcycHg7aGVpZ2h0OjcycHg7bWFyZ2luLWJvdHRvbToyNHB4O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXI6MDtiYWNrZ3JvdW5kOm5vbmU7Y29sb3I6d2hpdGV9Lnl0UGZwQXV0b25hdlJpbmd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjcycHg7aGVpZ2h0OjcycHh9Lnl0UGZwQXV0b25hdlBsYXlJY29ue3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7ZmlsbDp3aGl0ZX0ueXRQZnBDb250cm9sc0hvc3R7ZGlzcGxheTpibG9jaztwb2ludGVyLWV2ZW50czpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS55dFBmcENvbnRyb2xzSG9zdCA6Zm9jdXMtdmlzaWJsZXtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCAjM2VhNmZmfS55dFBmcENvbnRyb2xzT3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtwb2ludGVyLWV2ZW50czphdXRvO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259Lnl0UGZwQ29udHJvbHNDcmVhdG9yRW5kc2NyZWVuQ29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6Mn0ueXRQZnBDb250cm9sc0ZhZGVJbntwb2ludGVyLWV2ZW50czphdXRvfS55dFBmcENvbnRyb2xzQmlnYm9hcmQsLnl0UGZwQ29udHJvbHNCb3R0b21CYXIsLnl0UGZwQ29udHJvbHNHcmFkaWVudFRvcCwueXRQZnBDb250cm9sc1Byb2dyZXNzQmFyQ29udGFpbmVyLC55dFBmcENvbnRyb2xzVmlkZW9UaXRsZXt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyx2aXNpYmlsaXR5IC4yNXN9Lnl0UGZwQ29udHJvbHNPdmVybGF5Om5vdCgueXRQZnBDb250cm9sc0ZhZGVJbikgLnl0UGZwQ29udHJvbHNCaWdib2FyZCwueXRQZnBDb250cm9sc092ZXJsYXk6bm90KC55dFBmcENvbnRyb2xzRmFkZUluKSAueXRQZnBDb250cm9sc0JvdHRvbUJhciwueXRQZnBDb250cm9sc092ZXJsYXk6bm90KC55dFBmcENvbnRyb2xzRmFkZUluKSAueXRQZnBDb250cm9sc0dyYWRpZW50VG9wLC55dFBmcENvbnRyb2xzT3ZlcmxheTpub3QoLnl0UGZwQ29udHJvbHNGYWRlSW4pIC55dFBmcENvbnRyb2xzUHJvZ3Jlc3NCYXJDb250YWluZXIsLnl0UGZwQ29udHJvbHNPdmVybGF5Om5vdCgueXRQZnBDb250cm9sc0ZhZGVJbikgLnl0UGZwQ29udHJvbHNWaWRlb1RpdGxle29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbn0ueXRQZnBDb250cm9sc0dyYWRpZW50VG9we3dpZHRoOjEwMCU7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwuOCkscmdiYSgwLDAsMCwuNikscmdiYSgwLDAsMCwwKSk7cG9pbnRlci1ldmVudHM6bm9uZTtoZWlnaHQ6NDlweDt6LWluZGV4OjV9Lnl0UGZwQ29udHJvbHNWaWRlb1RpdGxle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwYWRkaW5nOjEycHg7bWFyZ2luOjA7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOndoaXRlO2ZvbnQtc2l6ZToxOHB4O3BvaW50ZXItZXZlbnRzOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS55dFBmcENvbnRyb2xzTGFyZ2VQbGF5QnV0dG9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3dpZHRoOjc1cHg7aGVpZ2h0Ojc1cHg7Ym9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6MjtwYWRkaW5nOjA7Ym9yZGVyOjA7YmFja2dyb3VuZC1jb2xvcjp1bnNldH0ueXRQZnBDb250cm9sc0xhcmdlUGxheUJ1dHRvbkljb25CZ3tmaWxsLW9wYWNpdHk6Ljg7dHJhbnNpdGlvbjpmaWxsIC4xcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLGZpbGwtb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ueXRQZnBDb250cm9sc092ZXJsYXk6aG92ZXIgLnl0UGZwQ29udHJvbHNMYXJnZVBsYXlCdXR0b25JY29uQmd7ZmlsbC1vcGFjaXR5OjE7dHJhbnNpdGlvbjpmaWxsIC4xcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLGZpbGwtb3BhY2l0eSAuMXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0ueXRQZnBDb250cm9sc1ZpZGVvV2FsbEVuZHNjcmVlbntwYWRkaW5nOjQ4cHggMDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoyfS55dFBmcENvbnRyb2xzQXV0b25hdntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjJ9Lnl0UGZwQ29udHJvbHNQcm9ncmVzc0JhckNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206NDBweDtsZWZ0OjA7cmlnaHQ6MDtwb2ludGVyLWV2ZW50czphdXRvO3otaW5kZXg6M30ueXRQZnBDb250cm9sc0JvdHRvbUJhcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtoZWlnaHQ6NDBweDtwYWRkaW5nLWxlZnQ6M3B4O2NvbG9yOndoaXRlO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNik7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cG9pbnRlci1ldmVudHM6YXV0bzt6LWluZGV4OjJ9Lnl0UGZwQ29udHJvbHNMZWZ0Q29udHJvbHMsLnl0UGZwQ29udHJvbHNSaWdodENvbnRyb2xze2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0UGZwQ29udHJvbHNWb2x1bWVDb250cm9sc3ttYXgtd2lkdGg6MTEycHh9Lnl0UGZwQ29udHJvbHNUaW1lRGlzcGxheS55dFBmcENvbnRyb2xzVGltZURpc3BsYXl7Y29sb3I6d2hpdGU7Zm9udC1zaXplOjEuNHJlbTttYXJnaW4tbGVmdDo4cHg7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9QG1lZGlhIChtYXgtd2lkdGg6MzQ5cHgpey55dFBmcENvbnRyb2xzVGltZURpc3BsYXkueXRQZnBDb250cm9sc1RpbWVEaXNwbGF5e2Rpc3BsYXk6bm9uZX19QG1lZGlhIChtYXgtd2lkdGg6Mjk5cHgpey55dFBmcENvbnRyb2xzQ2FwdGlvbnNCdXR0b257ZGlzcGxheTpub25lfX1AbWVkaWEgKG1heC13aWR0aDoyNDlweCl7Lnl0UGZwQ29udHJvbHNWb2x1bWVDb250cm9scy55dFBmcENvbnRyb2xzVm9sdW1lQ29udHJvbHN7ZGlzcGxheTpub25lfX1AbWVkaWEgKG1heC13aWR0aDoxOTlweCl7Lnl0UGZwQ29udHJvbHNTZXR0aW5nc0J1dHRvbntkaXNwbGF5Om5vbmV9fS55dFBmcENvbnRyb2xzSGlkZGVuU2Vla0J1dHRvbi55dFBmcENvbnRyb2xzSGlkZGVuU2Vla0J1dHRvbntoZWlnaHQ6MTJweDt3aWR0aDoxMnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCV9Lnl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlckhvc3R7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOjhweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjojMDAwO2Rpc3BsYXk6YmxvY2t9Lnl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlckhvc3Q6Zm9jdXMtdmlzaWJsZSAueXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVyT3ZlcmxheSwueXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVySG9zdDpmb2N1cy13aXRoaW4gLnl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlck92ZXJsYXksLnl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlckhvc3Q6aG92ZXIgLnl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlck92ZXJsYXl7b3BhY2l0eToxfS55dFBmcEVuZHNjcmVlblZpZGVvUmVuZGVyZXJUaHVtYm5haWx7b2JqZWN0LWZpdDpjb3Zlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MH0ueXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVyT3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dDtjb2xvcjp3aGl0ZX0ueXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVyT3ZlcmxheVRpdGxlQnlsaW5le3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2hlaWdodDo2MHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHJnYmEoMCwwLDAsLjgpLHJnYmEoMCwwLDAsLjYpIDYwJSxyZ2JhKDAsMCwwLDApKTtwYWRkaW5nOjhweH0ueXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVyVGl0bGV7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE4cHg7Y29sb3I6d2hpdGV9Lnl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlckJ5bGluZXtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MTZweDttYXJnaW4tdG9wOjRweDtjb2xvcjp3aGl0ZX0ueXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVyRHVyYXRpb257cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjhweDtyaWdodDo4cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC44KTtib3JkZXItcmFkaXVzOjRweDtwYWRkaW5nOjJweCA0cHg7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEycHg7Y29sb3I6d2hpdGV9Lnl0UGZwTW9yZVZpZGVvc0hvc3R7ZGlzcGxheTpibG9jaztwb2ludGVyLWV2ZW50czpub25lfUBtZWRpYSAobWF4LWhlaWdodDoyODlweCl7Lnl0UGZwTW9yZVZpZGVvc0hvc3R7ZGlzcGxheTpub25lfX0ueXRQZnBNb3JlVmlkZW9zT3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206NDhweDtsZWZ0OjEycHg7cmlnaHQ6MTJweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTIsMTIsMTIsLjgpO3otaW5kZXg6MjtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cG9pbnRlci1ldmVudHM6YXV0bztib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzo4cHggMDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lnl0UGZwTW9yZVZpZGVvc0hlYWRlcntkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO3BhZGRpbmc6MCAxNnB4Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ueXRQZnBNb3JlVmlkZW9zVGl0bGV7Y29sb3I6d2hpdGU7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjIwcHg7bWFyZ2luOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS55dFBmcE1vcmVWaWRlb3NDbG9zZUJ1dHRvbntwYWRkaW5nOjRweDttYXJnaW4tcmlnaHQ6LTRweDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOm5vbmU7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6NTAlfS55dFBmcE1vcmVWaWRlb3NDbG9zZUJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS55dFBmcE1vcmVWaWRlb3NDbG9zZUljb257Y29sb3I6d2hpdGU7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRQZnBNb3JlVmlkZW9zVmlkZW9MaXN0Q29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7cGFkZGluZzowIDEycHggNHB4IDEycHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzpoaWRkZW59Lnl0UGZwTW9yZVZpZGVvc1ZpZGVvTGlzdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtvdmVyZmxvdy14OmF1dG87aGVpZ2h0OjEwMCU7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3Njcm9sbGJhci13aWR0aDpub25lO3Njcm9sbC1iZWhhdmlvcjpzbW9vdGh9Lnl0UGZwTW9yZVZpZGVvc1ZpZGVvTGlzdDo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfS55dFBmcE1vcmVWaWRlb3NWaWRlb0xpc3R7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7LW1vei1ib3gtZmxleDoxO2ZsZXgtZ3JvdzoxO3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnl9Lnl0UGZwTW9yZVZpZGVvc1ZpZGVvSXRlbXtoZWlnaHQ6MDttYXJnaW46MCA2cHg7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQ6YmxhY2s7c2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQ7cGFkZGluZy1ib3R0b206MTM1cHg7d2lkdGg6MjQwcHg7bWluLXdpZHRoOjI0MHB4fUBtZWRpYSAobWF4LXdpZHRoOjEwNDBweCl7Lnl0UGZwTW9yZVZpZGVvc1ZpZGVvSXRlbXtwYWRkaW5nLWJvdHRvbTpjYWxjKDE0LjA2MjUlIC0gNi43NXB4KTt3aWR0aDpjYWxjKDI1JSAtIDEycHgpO21pbi13aWR0aDpjYWxjKDI1JSAtIDEycHgpfX1AbWVkaWEgKG1heC13aWR0aDo3ODBweCl7Lnl0UGZwTW9yZVZpZGVvc1ZpZGVvSXRlbXtwYWRkaW5nLWJvdHRvbTpjYWxjKDE4LjU2MjUlIC0gMy4zNzVweCk7d2lkdGg6Y2FsYygzMyUgLSA2cHgpO21pbi13aWR0aDpjYWxjKDMzJSAtIDZweCl9fUBtZWRpYSAobWF4LXdpZHRoOjUzNHB4KXsueXRQZnBNb3JlVmlkZW9zVmlkZW9JdGVte3BhZGRpbmctYm90dG9tOmNhbGMoMjguMTI1JSAtIDMuMzc1cHgpO3dpZHRoOmNhbGMoNTAlIC0gNnB4KTttaW4td2lkdGg6Y2FsYyg1MCUgLSA2cHgpfX1AbWVkaWEgKG1heC13aWR0aDoyODhweCl7Lnl0UGZwTW9yZVZpZGVvc1ZpZGVvSXRlbXtwYWRkaW5nLWJvdHRvbTpjYWxjKDU2LjI1JSAtIDMuMzc1cHgpO3dpZHRoOmNhbGMoMTAwJSAtIDZweCk7bWluLXdpZHRoOmNhbGMoMTAwJSAtIDZweCl9fS55dFBmcE1vcmVWaWRlb3NWaWRlb0l0ZW06Zmlyc3QtY2hpbGR7bWFyZ2luLWxlZnQ6YXV0b30ueXRQZnBNb3JlVmlkZW9zVmlkZW9JdGVtOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OmF1dG99Lnl0UGZwTW9yZVZpZGVvc1BhZGRsZUxlZnQsLnl0UGZwTW9yZVZpZGVvc1BhZGRsZVJpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzMsMzMsMzMsLjgpO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6NTAlO2NvbG9yOndoaXRlO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt6LWluZGV4OjI7Ym94LXNoYWRvdzowIDRweCA0cHggcmdiYSgwLDAsMCwuMjUpfS55dFBmcE1vcmVWaWRlb3NQYWRkbGVMZWZ0OmhvdmVyLC55dFBmcE1vcmVWaWRlb3NQYWRkbGVSaWdodDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYig1MCw1MCw1MCl9Lnl0UGZwTW9yZVZpZGVvc1BhZGRsZUxlZnR7bGVmdDowfS55dFBmcE1vcmVWaWRlb3NQYWRkbGVSaWdodHtyaWdodDowfS55dFBmcE1vcmVWaWRlb3NQYWRkbGVJY29ue2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9Lnl0UGZwTW9yZVZpZGVvc01vcmVWaWRlb3NCdXR0b257cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjU2cHg7bGVmdDoxMnB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNik7Y29sb3I6d2hpdGU7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoxOHB4O3BhZGRpbmc6OHB4IDE2cHg7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NTAwO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6NTtwb2ludGVyLWV2ZW50czphdXRvO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ueXRQZnBNb3JlVmlkZW9zTW9yZVZpZGVvc0J1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS55dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJIb3N0e3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXgtc2hyaW5rOjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOjhweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjojMDAwO2Rpc3BsYXk6YmxvY2t9Lnl0UGZwRW5kc2NyZWVuUGxheWxpc3RSZW5kZXJlckhvc3Q6Zm9jdXMtdmlzaWJsZSAueXRQZnBFbmRzY3JlZW5QbGF5bGlzdFJlbmRlcmVyT3ZlcmxheSwueXRQZnBFbmRzY3JlZW5QbGF5bGlzdFJlbmRlcmVySG9zdDpmb2N1cy13aXRoaW4gLnl0UGZwRW5kc2NyZWVuUGxheWxpc3RSZW5kZXJlck92ZXJsYXksLnl0UGZwRW5kc2NyZWVuUGxheWxpc3RSZW5kZXJlckhvc3Q6aG92ZXIgLnl0UGZwRW5kc2NyZWVuUGxheWxpc3RSZW5kZXJlck92ZXJsYXl7b3BhY2l0eToxfS55dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJUaHVtYm5haWx7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyfS55dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJPdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0O2NvbG9yOndoaXRlfS55dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJPdmVybGF5VGl0bGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjYwcHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwuOCkscmdiYSgwLDAsMCwuNikgNjAlLHJnYmEoMCwwLDAsMCkpO3BhZGRpbmc6OHB4fS55dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJUaXRsZXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MThweDttYXgtaGVpZ2h0OjM2cHg7Y29sb3I6d2hpdGU7b3ZlcmZsb3c6aGlkZGVufS55dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJCb3R0b21PdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOCk7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOndoaXRlO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ueXRQZnBFbmRzY3JlZW5QbGF5bGlzdFJlbmRlcmVySWNvbntmaWxsOmN1cnJlbnRDb2xvcjt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O21hcmdpbi1yaWdodDo0cHh9Lnl0UGZwVmlkZW9XYWxsRW5kc2NyZWVuSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MH0ueXRQZnBWaWRlb1dhbGxFbmRzY3JlZW5WaXNpYmxle2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6cmdiKDEyLDEyLDEyKX0ueXRQZnBWaWRlb1dhbGxFbmRzY3JlZW5Jc09ic2N1cmVke3Zpc2liaWxpdHk6aGlkZGVufS55dFBmcFZpZGVvV2FsbEVuZHNjcmVlblZpZGVvTGlzdENvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlOy1tb3otYm94LWZsZXg6MTtmbGV4LWdyb3c6MTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BvaW50ZXItZXZlbnRzOmF1dG87cGFkZGluZzoxMnB4Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ueXRQZnBWaWRlb1dhbGxFbmRzY3JlZW5WaWRlb0xpc3R7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3BhZGRpbmc6MH0ueXRQZnBWaWRlb1dhbGxFbmRzY3JlZW5QYWRkbGVMZWZ0LC55dFBmcFZpZGVvV2FsbEVuZHNjcmVlblBhZGRsZVJpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzMsMzMsMzMsLjkpO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6NTAlO2NvbG9yOndoaXRlO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt6LWluZGV4OjI7Ym94LXNoYWRvdzowIDRweCA0cHggcmdiYSgwLDAsMCwuMjUpfS55dFBmcFZpZGVvV2FsbEVuZHNjcmVlblBhZGRsZUxlZnQ6aG92ZXIsLnl0UGZwVmlkZW9XYWxsRW5kc2NyZWVuUGFkZGxlUmlnaHQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IoNTAsNTAsNTApfS55dFBmcFZpZGVvV2FsbEVuZHNjcmVlblBhZGRsZUxlZnR7bGVmdDo4cHh9Lnl0UGZwVmlkZW9XYWxsRW5kc2NyZWVuUGFkZGxlUmlnaHR7cmlnaHQ6OHB4fS55dFBmcFZpZGVvV2FsbEVuZHNjcmVlblBhZGRsZUljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ueXRQZnBWaWRlb1dhbGxFbmRzY3JlZW5WaWRlb0l0ZW17cG9zaXRpb246YWJzb2x1dGU7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS55dFBsYXllckNvbnRyb2xzUGxheWVyQWN0aW9uSW5kaWNhdG9ySG9zdHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6N30ueXRQbGF5ZXJDb250cm9sc1BsYXllckFjdGlvbkluZGljYXRvckFjdGlvbnt3aWR0aDo2MHB4O2hlaWdodDo2MHB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpO2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtvcGFjaXR5OjA7YW5pbWF0aW9uOmFjdGlvbi1mYWRlLW91dCAuNXMgbGluZWFyIDEgbm9ybWFsIGZvcndhcmRzfS55dFBsYXllckNvbnRyb2xzUGxheWVyQWN0aW9uSW5kaWNhdG9ySWNvbnt3aWR0aDozNnB4O2hlaWdodDozNnB4O2ZpbGw6I2ZmZn1Aa2V5ZnJhbWVzIGFjdGlvbi1mYWRlLW91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSgyKX19Lnl0d1BsYXllclRpbWVEaXNwbGF5SG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NTAwO292ZXJmbG93OmhpZGRlbn0ueXR3UGxheWVyVGltZURpc3BsYXlUaW1lQ2h1bmtze2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lnl0d1BsYXllclRpbWVEaXNwbGF5TGl2ZURvdDpiZWZvcmV7Y29udGVudDpcIlwiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjZweDt3aWR0aDo2cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyk7bWFyZ2luLXJpZ2h0OjRweH0ueXR3UGxheWVyVGltZURpc3BsYXlMaXZlRG90Lnl0d1BsYXllclRpbWVEaXNwbGF5TGl2ZUhlYWQ6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgyMjUsMCw0NSwwLjkpO29wYWNpdHk6MX0ueXR3UGxheWVyVGltZURpc3BsYXlUaW1lRGVsaW1pdGVye2NvbG9yOiNmZmY7bWFyZ2luOjAgNHB4O29wYWNpdHk6Ljd9Lnl0d1BsYXllclRpbWVEaXNwbGF5VGltZVNlY29uZHtvcGFjaXR5Oi43fS55dHdQbGF5ZXJUaW1lRGlzcGxheUNoYXB0ZXJUZXh0e21hcmdpbi1sZWZ0OjhweH0ueXR3UGxheWVyVGltZURpc3BsYXlQbGF5ZXJCYXJBY3Rpb25Db250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXR3UGxheWVyVGltZURpc3BsYXlQbGF5ZXJCYXJCdXR0b24ueXR3UGxheWVyVGltZURpc3BsYXlQaWxse21hcmdpbjowIDAgMCA4cHh9Lnl0d1BsYXllclRpbWVEaXNwbGF5UGxheWVyQmFyQnV0dG9ue292ZXJmbG93OmhpZGRlbjttYXgtd2lkdGg6MjQwcHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0ueXR3UGxheWVyVGltZURpc3BsYXlDaGV2cm9ue2NvbG9yOiNmZmY7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweDttYXJnaW4tcmlnaHQ6LTRweH0ueXR3UGxheWVyVGltZURpc3BsYXlQaWxse2hlaWdodDoyNHB4Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjRweCA2cHg7Ym9yZGVyLXJhZGl1czoxNnB4O2ZvbnQtc2l6ZToxLjRyZW07YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMyk7dGV4dC1zaGFkb3c6MCAwIDJweCAjMDAwfS55dHdQbGF5ZXJUaW1lRGlzcGxheVBpbGwgYnV0dG9ue3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ueXR3UGxheWVyVGltZURpc3BsYXlQaWxsIHN2Z3tmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDAsMCwwLC44KSl9Lnl0d1BsYXllclRpbWVEaXNwbGF5UGlsbHttYXJnaW4tbGVmdDoxNnB4fUBtZWRpYSAobWF4LWhlaWdodDoyMjFweCl7Lnl0d1BsYXllclRpbWVEaXNwbGF5RnVsbHNjcmVlbkNvbnRyb2xzQWx3YXlzT257ZGlzcGxheTpub25lfX0ueXR3UGxheWVyVGltZURpc3BsYXlTY3JlZW5SZWFkZXJPbmx5e3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDtoZWlnaHQ6MXB4O3BhZGRpbmc6MDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47Y2xpcDpyZWN0KDAsMCwwLDApO3doaXRlLXNwYWNlOm5vd3JhcDtib3JkZXItd2lkdGg6MH0ueXR3UGxheWVyU2Vla092ZXJsYXlIb3N0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwb2ludGVyLWV2ZW50czpub25lO2RpcmVjdGlvbjpsdHJ9Lnl0d1BsYXllclNlZWtPdmVybGF5QW5pbWF0aW9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtvcGFjaXR5OjB9Lnl0d1BsYXllclNlZWtPdmVybGF5QW5pbWF0aW9uQmFja3tsZWZ0OjQ4cHh9Lnl0d1BsYXllclNlZWtPdmVybGF5QW5pbWF0aW9uRm9yd2FyZHtyaWdodDo0OHB4fS55dHdQbGF5ZXJTZWVrT3ZlcmxheUR1cmF0aW9ue2NvbG9yOiNmZmY7dGV4dC1zaGFkb3c6MCAwIDFweCByZ2JhKDAsMCwwLDAuOCk7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyLjRyZW07bGluZS1oZWlnaHQ6My4ycmVtO2ZvbnQtd2VpZ2h0OjcwMH1AbWVkaWEgKG1heC13aWR0aDo1MjcuOXB4KXsueXR3UGxheWVyU2Vla092ZXJsYXlEdXJhdGlvbntmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjJyZW07bGluZS1oZWlnaHQ6Mi44cmVtO2ZvbnQtd2VpZ2h0OjcwMH19Lnl0d1BsYXllclNlZWtPdmVybGF5QW5pbWF0aW9uQmFjayAueXR3UGxheWVyU2Vla092ZXJsYXlBcnJvd3ttYXJnaW4tcmlnaHQ6MjBweH0ueXR3UGxheWVyU2Vla092ZXJsYXlBbmltYXRpb25Gb3J3YXJkIC55dHdQbGF5ZXJTZWVrT3ZlcmxheUFycm93e21hcmdpbi1sZWZ0OjIwcHh9Lnl0d1BsYXllclNlZWtPdmVybGF5QXJyb3cgLnl0d1BsYXllclNlZWtPdmVybGF5QXJyb3dTdmd7ZGlzcGxheTpibG9ja30ueXR3UGxheWVyU2Vla092ZXJsYXlBcnJvdyAueXR3UGxheWVyU2Vla092ZXJsYXlBcnJvd1BhdGh7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAuNXB4IHJnYmEoMCwwLDAsMC44KSl9Lnl0d1BsYXllclNlZWtPdmVybGF5QXJyb3dQZXJzaXN0ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX0ueXR3UGxheWVyU2Vla092ZXJsYXlBcnJvd0FkZGl0aW9uYWx7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2xhdGU6MCAtNTAlfS55dHdQbGF5ZXJTZWVrT3ZlcmxheUFuaW1hdGlvbkJhY2sgLnl0d1BsYXllclNlZWtPdmVybGF5QXJyb3dBZGRpdGlvbmFse2xlZnQ6MH0ueXR3UGxheWVyU2Vla092ZXJsYXlBbmltYXRpb25Gb3J3YXJkIC55dHdQbGF5ZXJTZWVrT3ZlcmxheUFycm93QWRkaXRpb25hbHtyaWdodDowfS55dHdQbGF5ZXJFbmRzY3JlZW5Ib3N0e2Rpc3BsYXk6YmxvY2t9Lnl0d1BsYXllckVuZHNjcmVlbkNvbnRhaW5lcntjb2xvcjojZmZmfS55dHdQbGF5ZXJFbmRzY3JlZW5QbGF5ZXJFbmRzY3JlZW57cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMyk7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MnJlbTtmb250LXdlaWdodDo0MDB9Lnl0d1BsYXllckVuZHNjcmVlblBsYXllckVuZHNjcmVlbltkYXRhLWhhcy10aW1lci1jb3VudGRvd249dHJ1ZV17YmFja2dyb3VuZC1jb2xvcjojMDAwO3BhZGRpbmc6OHB4IDE2cHg7bWFyZ2luOjAgYXV0bztkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn1AbWVkaWEgKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpLChtYXgtd2lkdGg6Mjk5cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpey55dHdQbGF5ZXJFbmRzY3JlZW5QbGF5ZXJFbmRzY3JlZW5bZGF0YS1oYXMtdGltZXItY291bnRkb3duPXRydWVde3BhZGRpbmc6OHB4fX1bZGlyPXJ0bF0gLnl0d1BsYXllckVuZHNjcmVlblBsYXllckVuZHNjcmVlbltkYXRhLWhhcy10aW1lci1jb3VudGRvd249dHJ1ZV17ZGlyZWN0aW9uOnJ0bH0ueXR3UGxheWVyRW5kc2NyZWVuVG9wUGFuZWx7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlO2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn1AbWVkaWEgKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpLChtYXgtd2lkdGg6Mjk5cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpey55dHdQbGF5ZXJFbmRzY3JlZW5Ub3BQYW5lbHtkaXNwbGF5Om5vbmV9fS55dHdQbGF5ZXJFbmRzY3JlZW5IZWFkZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjE2cHh9Lnl0d1BsYXllckVuZHNjcmVlbkNvdW50ZG93bkNvbnRhaW5lcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyk7bWFyZ2luLWJvdHRvbToxMnB4O21hcmdpbi10b3A6NHB4fUBtZWRpYSAobWF4LXdpZHRoOjI5OXB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSksKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7Lnl0d1BsYXllckVuZHNjcmVlbkNvdW50ZG93bkNvbnRhaW5lcnttYXJnaW4tYm90dG9tOjhweH19Lnl0d1BsYXllckVuZHNjcmVlbkNvdW50ZG93bk51bWJlcntmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojZmZmfS55dHdQbGF5ZXJFbmRzY3JlZW5DdWVkVmlkZW9Db250YWluZXJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tb3otYm94LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lnl0d1BsYXllckVuZHNjcmVlbkN1ZWRWaWRlb0NvbnRhaW5lcjpmaXJzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MTJweH0ueXR3UGxheWVyRW5kc2NyZWVuQ3VlZFRodW1ibmFpbE92ZXJsYXl7d2lkdGg6NTAlO2ZsZXgtYmFzaXM6Y2FsYyg1MCUgLSA2cHgpO3Bvc2l0aW9uOnJlbGF0aXZlfUBtZWRpYSAobWF4LXdpZHRoOjI5OXB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSksKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpwb3J0cmFpdCl7Lnl0d1BsYXllckVuZHNjcmVlbkN1ZWRUaHVtYm5haWxPdmVybGF5e2ZsZXgtYmFzaXM6Y2FsYyg1MCUgLSA0cHgpfX0ueXR3UGxheWVyRW5kc2NyZWVuQ3VlZFRodW1ibmFpbE92ZXJsYXk+Lnl0d1BsYXllckVuZHNjcmVlblRodW1ibmFpbENvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDphdXRvO3BhZGRpbmctYm90dG9tOjU2LjI1JX0ueXR3UGxheWVyRW5kc2NyZWVuVGh1bWJuYWlsT3ZlcmxheXN7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cmlnaHQ6MH0ueXR3UGxheWVyRW5kc2NyZWVuVmlkZW9JbmZve3dpZHRoOjUwJTtmbGV4LWJhc2lzOmNhbGMoNTAlIC0gNnB4KX1AbWVkaWEgKG1heC13aWR0aDoyOTlweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpLChtYXgtd2lkdGg6Mjk5cHgpIGFuZCAob3JpZW50YXRpb246cG9ydHJhaXQpey55dHdQbGF5ZXJFbmRzY3JlZW5WaWRlb0luZm97ZmxleC1iYXNpczpjYWxjKDUwJSAtIDRweCl9fS55dHdQbGF5ZXJFbmRzY3JlZW5WaWRlb1RpdGxle2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjJyZW07Zm9udC13ZWlnaHQ6NDAwO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO21heC1oZWlnaHQ6NHJlbTtkaXNwbGF5OmJveDtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vcm1hbH1Ac3VwcG9ydHMgKC13ZWJraXQtbGluZS1jbGFtcDoxKXsueXR3UGxheWVyRW5kc2NyZWVuVmlkZW9UaXRsZXstd2Via2l0LWxpbmUtY2xhbXA6MjttYXgtaGVpZ2h0Om5vbmV9fS55dHdQbGF5ZXJFbmRzY3JlZW5WaWRlb1RpdGxle21heC1oZWlnaHQ6NHJlbTtjb2xvcjojZmZmO21hcmdpbi1ib3R0b206NHB4fS55dHdQbGF5ZXJFbmRzY3JlZW5WaWRlb0F1dGhvcntmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuMnJlbTtsaW5lLWhlaWdodDoxLjhyZW07Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC43KX0ueXR3UGxheWVyRW5kc2NyZWVuQnV0dG9uQ29udGFpbmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0ueXR3UGxheWVyRW5kc2NyZWVuQWN0aW9uQnV0dG9ue3dpZHRoOjEwMCV9Lnl0d1BsYXllckVuZHNjcmVlbkFjdGlvbkJ1dHRvbj46Zmlyc3QtY2hpbGR7d2lkdGg6MTAwJX0ueXR3UGxheWVyRW5kc2NyZWVuQWN0aW9uQnV0dG9uOmZpcnN0LWNoaWxke21hcmdpbi1yaWdodDoxMnB4fS55dG1DdXN0b21Db250cm9sSG9zdHtkaXNwbGF5OmJsb2NrfS55dG1DdXN0b21Db250cm9sSG9zdCA6Zm9jdXMtdmlzaWJsZXtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCAjM2VhNmZmfS55dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlckhvc3R7Y29sb3I6I2ZmZjtwYWRkaW5nOjEycHggMCAwIDEycHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyO3RvcDo1MnB4O21pbi13aWR0aDoxMzBweDttYXgtd2lkdGg6bWluKDUwJSAtIDY0cHgsMjcycHgpfS55dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlckhvc3RBdXRvaGlkZXthbmltYXRpb246ZmFkZSAzcyBlYXNlLWluIDEwcyBmb3J3YXJkczthbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzfUBtZWRpYSAobWF4LWFzcGVjdC1yYXRpbzozLzQpey55dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlckhvc3RUb3BDb250cm9sc1N0YWNrZWRJblBvcnRyYWl0e3RvcDoxMTJweH19Lnl0bUVtYmVkc0luZm9QYW5lbFJlbmRlcmVySGlkZGVue2Rpc3BsYXk6bm9uZX0ueXRtRW1iZWRzSW5mb1BhbmVsUmVuZGVyZXJCdXR0b257LW1vei1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC42KTtib3JkZXItbGVmdDo0cHggc29saWQgIzNlYTZmZjtib3JkZXItcmFkaXVzOjRweDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MzEycHg7cGFkZGluZzo4cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lnl0bUVtYmVkc0luZm9QYW5lbFJlbmRlcmVyVGV4dHtmb250LXNpemU6MS4zcmVtO3BhZGRpbmctbGVmdDo4cHg7Zm9udC1mYW1pbHk6Um9ib3RvLFwiQXJpYWxcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjRyZW07bGluZS1oZWlnaHQ6MnJlbTtmb250LXdlaWdodDo0MDA7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7bWF4LWhlaWdodDo0cmVtO2Rpc3BsYXk6Ym94O2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm9ybWFsfUBzdXBwb3J0cyAoLXdlYmtpdC1saW5lLWNsYW1wOjEpey55dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlclRleHR7LXdlYmtpdC1saW5lLWNsYW1wOjI7bWF4LWhlaWdodDpub25lfX0ueXRtRW1iZWRzSW5mb1BhbmVsUmVuZGVyZXJUZXh0e21heC1oZWlnaHQ6NHJlbX1Aa2V5ZnJhbWVzIGZhZGV7dG97b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmV9fS55dEVtYmVkc0luZm9QYW5lbERldGFpbHNWaWV3TW9kZWxCb2R5VGV4dHtwYWRkaW5nOjAgMTJweCAxMnB4IDEycHg7Y29sb3I6IzYwNjA2MDtmb250LWZhbWlseTpSb2JvdG8sXCJBcmlhbFwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoycmVtO2ZvbnQtd2VpZ2h0OjQwMH0ueXRBdXRvY3JvcEJ1dHRvbkhvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDAlO21hcmdpbi10b3A6NjBweH0ueXRBdXRvY3JvcEJ1dHRvblZpc2libGV7dmlzaWJpbGl0eTp2aXNpYmxlfS55dEF1dG9jcm9wQnV0dG9uSGlkZGVue3Zpc2liaWxpdHk6aGlkZGVufS55dEF1dG9jcm9wQnV0dG9uQXV0b0Nyb3BCdXR0b257Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNyk7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDQwLDQwLDQwLDAuNik7Ym9yZGVyLXJhZGl1czoxOHB4fS55dEZ1bGxzY3JlZW5WaWRlb1JlY29tbWVuZGF0aW9uc0hvc3R7LW1vei1ib3gtZmxleDoxO2ZsZXg6MTtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDtvdmVyZmxvdy14OmF1dG99QG1lZGlhIG5vdCAocG9pbnRlcjpmaW5lKXsueXRGdWxsc2NyZWVuVmlkZW9SZWNvbW1lbmRhdGlvbnNIb3N0ey1tcy1vdmVyZmxvdy1zdHlsZTpub25lO3Njcm9sbGJhci13aWR0aDpub25lfS55dEZ1bGxzY3JlZW5WaWRlb1JlY29tbWVuZGF0aW9uc0hvc3Q6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX19QG1lZGlhIChwb2ludGVyOmZpbmUpey55dEZ1bGxzY3JlZW5WaWRlb1JlY29tbWVuZGF0aW9uc0hvc3R7b3ZlcmZsb3cteTphdXRvfS55dEZ1bGxzY3JlZW5WaWRlb1JlY29tbWVuZGF0aW9uc0hvc3Q6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjE2cHh9Lnl0RnVsbHNjcmVlblZpZGVvUmVjb21tZW5kYXRpb25zSG9zdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7aGVpZ2h0OjU2cHg7Ym9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyOjRweCBzb2xpZCB0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNsaXA6Y29udGVudC1ib3g7YmFja2dyb3VuZC1jb2xvcjojNjA2MDYwfS55dEZ1bGxzY3JlZW5WaWRlb1JlY29tbWVuZGF0aW9uc0hvc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzkwOTA5MH19Lnl0RnVsbHNjcmVlblZpZGVvUmVjb21tZW5kYXRpb25zUmVjb21tZW5kYXRpb257d2lkdGg6MjAwcHg7bWluLXdpZHRoOjIwMHB4O21hcmdpbjowIDhweDtjb2xvcjojZmZmfS55dHdQbGF5ZXJGdWxsc2NyZWVuQ29udHJvbHNIb3N0e2Rpc3BsYXk6YmxvY2t9Lnl0d1BsYXllckZ1bGxzY3JlZW5Ub3BDb250cm9sc0hvc3R7cGFkZGluZzoxMnB4O2NvbG9yOiNmZmY7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDo2fS55dHdQbGF5ZXJGdWxsc2NyZWVuVG9wQ29udHJvbHNGdWxsc2NyZWVuQ29udHJvbHNWaWRlb1RpdGxle21hcmdpbjowO2NvbG9yOiNmZmZ9Lnl0d1BsYXllckZ1bGxzY3JlZW5Ub3BDb250cm9sc0Z1bGxzY3JlZW5DbG9zZUJ1dHRvbldyYXBwZXJ7bWFyZ2luLXRvcDotOHB4O21hcmdpbi1sZWZ0OmF1dG99Lnl0bVBhaWRDb250ZW50T3ZlcmxheUhvc3R7Y29sb3I6I2ZmZjthbmltYXRpb246ZmFkZSAzcyBlYXNlLWluIDIwcyBmb3J3YXJkczthbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzO3BhZGRpbmc6MTJweCAwIDEycHggMTJweDtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleH0ueXRtUGFpZENvbnRlbnRPdmVybGF5SGlkZGVue2Rpc3BsYXk6bm9uZX0ueXRtUGFpZENvbnRlbnRPdmVybGF5TGlua3stbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNik7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkICMzZWE2ZmY7Ym9yZGVyLXJhZGl1czo0cHg7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjMxMnB4O3BhZGRpbmc6OHB4O3RleHQtZGVjb3JhdGlvbjpub25lfS55dG1QYWlkQ29udGVudE92ZXJsYXlUZXh0e2ZvbnQtc2l6ZToxLjNyZW07cGFkZGluZy1sZWZ0OjhweH1Aa2V5ZnJhbWVzIGZhZGV7dG97b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmV9fS5wbGF5ZXItY29udHJvbHMtYm90dG9te2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTozMHB4O3otaW5kZXg6MjtoZWlnaHQ6NDRweH0ucGxheWVyLWNvbnRyb2xzLWJvdHRvbSAucGxheWVyLWJvdHRvbS1jb250cm9scy1mdWxsc2NyZWVuLWljb24tdmlzaWJsZS1hcmVhey1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDozNnB4O2hlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6NTAlO3BhZGRpbmc6NnB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjMpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH0ucGxheWVyLWNvbnRyb2xzLWJvdHRvbSAucGxheWVyLWJvdHRvbS1jb250cm9scy1mdWxsc2NyZWVuLWljb24tdmlzaWJsZS1hcmVhIGJ1dHRvbnt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9LnBsYXllci1jb250cm9scy1ib3R0b20gLnBsYXllci1ib3R0b20tY29udHJvbHMtZnVsbHNjcmVlbi1pY29uLXZpc2libGUtYXJlYSBzdmd7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfS5wbGF5ZXItY29udHJvbHMtYm90dG9tLnBsYXllci1jb250cm9scy1ib3R0b20tbGVmdHtsZWZ0OjEycHg7cmlnaHQ6NzhweH0ucGxheWVyLWNvbnRyb2xzLWJvdHRvbS5wbGF5ZXItY29udHJvbHMtYm90dG9tLXJpZ2h0e3JpZ2h0OjI0cHh9LnBsYXllci1jb250cm9scy1ib3R0b20gLmljb24tYnV0dG9uLmZ1bGxzY3JlZW4taWNvbntkaXNwbGF5OmJsb2NrOy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4O3BhZGRpbmc6NnB4fWJvZHlbZmF1eC1mdWxsc2NyZWVuPXRydWVdIC5wbGF5ZXItY29udHJvbHMtYm90dG9te2JvdHRvbTo0NHB4fWJvZHlbZmF1eC1mdWxsc2NyZWVuPXRydWVdIC5lbmFibGUtZnVsbHNjcmVlbi1jb250cm9scyAucGxheWVyLWNvbnRyb2xzLWJvdHRvbXtib3R0b206NzRweH1ib2R5W2ZhdXgtZnVsbHNjcmVlbj10cnVlXSAuZW5hYmxlLWZ1bGxzY3JlZW4tY29udHJvbHMuZnMtd2F0Y2gtc3lzdGVtIC5wbGF5ZXItY29udHJvbHMtYm90dG9te2JvdHRvbTo5NHB4fS55dHdQbGF5ZXJNaWRkbGVDb250cm9sc0hvc3R7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXh9Lnl0d1BsYXllck1pZGRsZUNvbnRyb2xzQTExeVNlZWtCdXR0b257cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO2hlaWdodDoxMnB4O3dpZHRoOjEycHh9eXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtbWlkZGxle2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3dpZHRoOjEwMCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7ei1pbmRleDo2fXl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLW1pZGRsZS5wcmV2ZW50LWNvbnRyb2xzLWNvbGxpc2lvbnt3aWR0aDotbW96LWZpdC1jb250ZW50O3dpZHRoOmZpdC1jb250ZW50O2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKX15dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGUgLmljb24tYnV0dG9ue2hlaWdodDo0OHB4O3dpZHRoOjQ4cHg7cGFkZGluZzo2cHg7Ym9yZGVyLXJhZGl1czoyNHB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjMpfXl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLW1pZGRsZSAuaWNvbi1idXR0b24+YzMtaWNvbntoZWlnaHQ6MzJweDt3aWR0aDozMnB4fXl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLW1pZGRsZSAucGxheWVyLW1pZGRsZS1jb250cm9scy1wcmV2LW5leHQtYnV0dG9ue2hlaWdodDo0OHB4O3dpZHRoOjQ4cHg7cGFkZGluZzo2cHg7YmFja2dyb3VuZDpub25lfXl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLW1pZGRsZSAucGxheWVyLW1pZGRsZS1jb250cm9scy1wcmV2LW5leHQtYnV0dG9uIGMzLWljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH15dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGUgLnBsYXllci1taWRkbGUtY29udHJvbHMtcHJldi1uZXh0LWJ1dHRvbiAucGxheWVyLW1pZGRsZS1jb250cm9scy1wcmV2LW5leHQtdmlzaWJsZS1hcmVhey1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6MzZweDt3aWR0aDozNnB4O3BhZGRpbmc6NnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjMpO3RleHQtc2hhZG93OjAgMCAycHggIzAwMH15dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGUgLnBsYXllci1taWRkbGUtY29udHJvbHMtcHJldi1uZXh0LWJ1dHRvbiAucGxheWVyLW1pZGRsZS1jb250cm9scy1wcmV2LW5leHQtdmlzaWJsZS1hcmVhIGJ1dHRvbnt0ZXh0LXNoYWRvdzowIDAgMnB4ICMwMDB9eXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtbWlkZGxlIC5wbGF5ZXItbWlkZGxlLWNvbnRyb2xzLXByZXYtbmV4dC1idXR0b24gLnBsYXllci1taWRkbGUtY29udHJvbHMtcHJldi1uZXh0LXZpc2libGUtYXJlYSBzdmd7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLDAsMCwuOCkpfXl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLW1pZGRsZSAuaWNvbi1idXR0b24uZW5kc2NyZWVuLXJlcGxheS1idXR0b257aGVpZ2h0OmF1dG87d2lkdGg6YXV0bztib3JkZXItcmFkaXVzOjU2cHh9eXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtbWlkZGxlIC5pY29uLWJ1dHRvbi5lbmRzY3JlZW4tcmVwbGF5LWJ1dHRvbj5jMy1pY29ue2hlaWdodDo0MHB4O3dpZHRoOjQwcHg7cGFkZGluZzo4cHh9eXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtbWlkZGxlIC5wbGF5ZXItY29udHJvbC1wbGF5LXBhdXNlLWljb24uaWNvbi1idXR0b257aGVpZ2h0OjU2cHg7d2lkdGg6NTZweDtwYWRkaW5nOjEwcHg7Ym9yZGVyLXJhZGl1czo1MCV9eXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtbWlkZGxlIC5wbGF5ZXItY29udHJvbC1wbGF5LXBhdXNlLWljb24uaWNvbi1idXR0b24+YzMtaWNvbntoZWlnaHQ6MzZweDt3aWR0aDozNnB4O3BhZGRpbmc6dW5zZXR9eXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtbWlkZGxlIC5lbmRzY3JlZW4tcmVwbGF5LWJ1dHRvbi5pY29uLWJ1dHRvbix5dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGUgLnBsYXllci1jb250cm9sLXBsYXktcGF1c2UtaWNvbnttYXJnaW46MCAzNHB4fXl0bS1jdXN0b20tY29udHJvbCAucGxheWVyLWNvbnRyb2xzLW1pZGRsZSAuc2NyZWVucmVhZGVyLXNhZmUtaGlkZS1taWRkbGUtYnV0dG9uc3twb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MH15dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGUgLnBsYXllci1jb250cm9scy1zcGlubmVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpfVtkaXI9cnRsXSB5dG0tY3VzdG9tLWNvbnRyb2wgLnBsYXllci1jb250cm9scy1taWRkbGU6bm90KC5wcmV2ZW50LWNvbnRyb2xzLWNvbGxpc2lvbil7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9eXRtLWN1c3RvbS1jb250cm9sIC5wbGF5ZXItY29udHJvbHMtbWlkZGxlIC5wbGF5ZXItY29udHJvbHMtbWlkZGxlLWNvcmUtYnV0dG9uc3tkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tb3otYm94LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZGlyZWN0aW9uOmx0cn0ueXRtVmlkZW9JbmZvSG9zdHstbW96LWJveC1mbGV4OjE7ZmxleDoxO292ZXJmbG93OmhpZGRlbjttaW4td2lkdGg6MH0ueXRtVmlkZW9JbmZvVmlkZW9EZXRhaWxzQ29udGFpbmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4O3BhZGRpbmctbGVmdDoxMnB4O21pbi1oZWlnaHQ6NS4ycmVtfS55dG1WaWRlb0luZm9WaWRlb1RpdGxle2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MnJlbTtsaW5lLWhlaWdodDoyLjhyZW07Zm9udC13ZWlnaHQ6NzAwfUBtZWRpYSAobWF4LXdpZHRoOjUyNy45cHgpey55dG1WaWRlb0luZm9WaWRlb1RpdGxle2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS44cmVtO2xpbmUtaGVpZ2h0OjIuNnJlbTtmb250LXdlaWdodDo3MDB9fS55dG1WaWRlb0luZm9WaWRlb1RpdGxle2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOjEwMCU7cGFkZGluZy10b3A6MTBweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO21hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCNmZmYgOTUlLHJnYmEoMCwwLDAsMCkpfVtkaXI9cnRsXSAueXRtVmlkZW9JbmZvVmlkZW9UaXRsZXttYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCNmZmYgOTUlLHJnYmEoMCwwLDAsMCkpfS55dG1WaWRlb0luZm9DaGFubmVsVGl0bGV7bWF4LXdpZHRoOjEwMCU7Zm9udC1zaXplOjEuMnJlbTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtZGVjb3JhdGlvbjpub25lO29wYWNpdHk6MTtsaW5lLWhlaWdodDoxLjF9Lnl0bVZpZGVvSW5mb1ZpZGVvVGl0bGVDb250YWluZXJ7bWluLWhlaWdodDozNnB4Oy1tb3otYm94LWZsZXg6MTtmbGV4OjE7b3ZlcmZsb3c6aGlkZGVuO2NvbG9yOiNmZmY7bWFyZ2luLXJpZ2h0OjEycHg7cGFkZGluZy1sZWZ0OjB9Lnl0bVZpZGVvSW5mb0xvZ29FbmFibGVke3BhZGRpbmctbGVmdDo1MnB4fS55dG1WaWRlb0luZm9DaGFubmVsTG9nb3t3aWR0aDozNnB4O2hlaWdodDozNnB4O2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2ZsZXgtc2hyaW5rOjA7bWFyZ2luOjEycHg7bWFyZ2luLXRvcDo4cHg7Ym9yZGVyLXJhZGl1czo1MCU7ei1pbmRleDo3O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS55dG1WaWRlb0luZm9DaGFubmVsQ29udGFpbmVye2hlaWdodDo1LjJyZW07cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO21pbi13aWR0aDo1MnB4O21heC13aWR0aDpjYWxjKDEwMCUgLSAxMnB4KTttYXJnaW46NHB4O21hcmdpbi10b3A6OHB4O292ZXJmbG93OmhpZGRlbn1bZGlyPXJ0bF0gLnl0bVZpZGVvSW5mb0NoYW5uZWxDb250YWluZXJ7bGVmdDphdXRvO3JpZ2h0OjB9Lnl0bVZpZGVvSW5mb092ZXJsYXl7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtb3JpZW50Omhvcml6b250YWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpyb3c7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjgpO21hcmdpbi1sZWZ0OjRweDtoZWlnaHQ6MTAwJTt0cmFuc2l0aW9uOmFsbCAuMnM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4wNSwwLDAsMSk7b3BhY2l0eTowO21heC13aWR0aDowO3BhZGRpbmctbGVmdDo1MnB4O3BhZGRpbmctcmlnaHQ6MTBweDt6LWluZGV4OjU7cG9zaXRpb246cmVsYXRpdmV9Lnl0bVZpZGVvSW5mb0V4cGFuZGVke29wYWNpdHk6MTttYXgtd2lkdGg6MTAwJX0ueXRtVmlkZW9JbmZvQ2hhbm5lbEluZm97ZGlzcGxheTpibG9jaztwYWRkaW5nLXJpZ2h0OjhweDstbW96LWJveC1mbGV4OjE7ZmxleDoxO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczthbGlnbi1zZWxmOmNlbnRlcjttYXgtd2lkdGg6MTAwJX0ueXRtVmlkZW9JbmZvRmx5b3V0Q2hhbm5lbFRpdGxle2ZvbnQtc2l6ZToxLjRyZW07Y29sb3I6I2ZmZjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO21heC13aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbToycHg7YWxpZ24tc2VsZjpjZW50ZXJ9Lnl0bVZpZGVvSW5mb0ZseW91dENoYW5uZWxTdWJ0aXRsZXtmb250LXNpemU6MS4ycmVtO2NvbG9yOiNmZmY7dGV4dC1vdmVyZmxvdzplbGxpcHNpczttYXgtd2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfS55dG1WaWRlb0luZm9TdWJzY3JpYmVCdXR0b257YWxpZ24tc2VsZjpjZW50ZXJ9Lnl0bVZpZGVvSW5mb1N1YnNjcmliZUJ1dHRvbiAuaXMtc3Vic2NyaWJlZCAueXRBdHRyaWJ1dGVkU3RyaW5nSG9zdHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyl9Lnl0bVZpZGVvSW5mb0hpZGUsLnl0bVZpZGVvSW5mb1N1YnNjcmliZUJ1dHRvbiAuc3Vic2NyaWJlLWJ1dHRvbi1jb3VudHtkaXNwbGF5Om5vbmV9Lnl0bVZpZGVvSW5mb0xpbms6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9Lnl0bVZpZGVvSW5mb0NoYW5uZWxBdmF0YXJ7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo0OHB4O2hlaWdodDo0OHB4fS55dG1NdXRlQnV0dG9uSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6NDhweDtoZWlnaHQ6NDhweH0ueXRtTXV0ZUJ1dHRvbkJ1dHRvbntjdXJzb3I6cG9pbnRlcjt3aWR0aDo0OHB4O2hlaWdodDo0OHB4O3BhZGRpbmc6MTJweDtib3JkZXI6bm9uZTtvdXRsaW5lOm5vbmU7Zm9udDppbmhlcml0O3RleHQtdHJhbnNmb3JtOmluaGVyaXQ7Y29sb3I6aW5oZXJpdDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS55dHdBdXRvbmF2VG9nZ2xlQnV0dG9uSG9zdHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6NDhweDtoZWlnaHQ6NDhweH0ueXR3QXV0b25hdlRvZ2dsZUJ1dHRvblNwYW5uZXJJY29uT2ZmLC55dHdBdXRvbmF2VG9nZ2xlQnV0dG9uU3Bhbm5lckljb25Pbnt3aWR0aDozNnB4O2hlaWdodDoxNHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS55dHdBdXRvbmF2VG9nZ2xlQnV0dG9uU3Bhbm5lckljb25PZmYgc3ZnLC55dHdBdXRvbmF2VG9nZ2xlQnV0dG9uU3Bhbm5lckljb25PbiBzdmd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjM2cHg7aGVpZ2h0OjE0cHh9Lnl0d0F1dG9uYXZUb2dnbGVCdXR0b25QbGF5SWNvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2xlZnQ6MjJweDt3aWR0aDoyMHB4O2hlaWdodDoyMHB4fVtkaXI9cnRsXSAueXR3QXV0b25hdlRvZ2dsZUJ1dHRvblBsYXlJY29ue2xlZnQ6NnB4fS55dHdBdXRvbmF2VG9nZ2xlQnV0dG9uUGF1c2VJY29ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7bGVmdDo2cHg7d2lkdGg6MjBweDtoZWlnaHQ6MjBweH1bZGlyPXJ0bF0gLnl0d0F1dG9uYXZUb2dnbGVCdXR0b25QYXVzZUljb257bGVmdDoyMnB4fS55dHdQbGF5ZXJBdXRvbmF2VG9nZ2xlSG9zdHtkaXNwbGF5OmJsb2NrfS55dHdQbGF5ZXJBdXRvbmF2VG9nZ2xlSG9zdCAueXR3QXV0b25hdlRvZ2dsZUJ1dHRvblBsYXlJY29ue2NvbG9yOiNmZmZ9Lnl0d1BsYXllclRvcENvbnRyb2xzSG9zdHtkaXNwbGF5OmJsb2NrfS55dHdQbGF5ZXJUb3BDb250cm9sc1BsYXllckNvbnRyb2xzVG9wUmlnaHR7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXh9Lnl0d1BsYXllclRvcENvbnRyb2xzQ29udGFpbmVyV2l0aEVtYmVkZGVkVmlkZW9EZXRhaWxzey1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH1AbWVkaWEgKG1heC1hc3BlY3QtcmF0aW86My80KXsueXR3UGxheWVyVG9wQ29udHJvbHNDb250YWluZXJXaXRoRW1iZWRkZWRWaWRlb0RldGFpbHN7LW1vei1ib3gtb3JpZW50OnZlcnRpY2FsOy1tb3otYm94LWRpcmVjdGlvbjpyZXZlcnNlO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfX1AbWVkaWEgKG1heC1hc3BlY3QtcmF0aW86My80KXsueXR3UGxheWVyVG9wQ29udHJvbHNDb250YWluZXJXaXRoRW1iZWRkZWRWaWRlb0RldGFpbHNQbGF5ZXJDb250cm9sc1RvcFJpZ2h0ey1tb3otYm94LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH19Lnl0bVdhdGNoUGxheWVyQ29udHJvbHNIb3N0e2Rpc3BsYXk6YmxvY2t9Lnl0bVdhdGNoUGxheWVyQ29udHJvbHNCYWNrZ3JvdW5kQWN0aW9uSXRlbXN7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyfXl0bS1ub3RpZmljYXRpb24tYWN0aW9uLXJlbmRlcmVye2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lm5vdGlmaWNhdGlvbi1hY3Rpb24tcmVzcG9uc2UtdGV4dHstbW96LWJveC1mbGV4OjE7ZmxleC1ncm93OjE7cGFkZGluZy1yaWdodDoxcmVtfS5ub3RpZmljYXRpb24tYWN0aW9uLWJ1dHRvbntmbGV4LXNocmluazowfS51bmlmaWVkLXNoYXJlLXVybC1pbnB1dHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3BhZGRpbmctYm90dG9tOjRweDtvdXRsaW5lOm5vbmU7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDttYXJnaW4tYm90dG9tOjFweDtmb250OmluaGVyaXQ7Y29sb3I6IzAzMDMwMztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNzM3MzczO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LnVuaWZpZWQtc2hhcmUtdXJsLWlucHV0OmZvY3Vze21hcmdpbi1ib3R0b206MDtib3JkZXItYm90dG9tLXdpZHRoOjJweDtib3JkZXItYm90dG9tLWNvbG9yOiMwMzAzMDN9LnVuaWZpZWQtc2hhcmUtdXJsLWlucHV0OjotbW96LXBsYWNlaG9sZGVye2NvbG9yOiM2MDYwNjA7b3BhY2l0eToxfS51bmlmaWVkLXNoYXJlLXVybC1pbnB1dDo6cGxhY2Vob2xkZXJ7Y29sb3I6IzYwNjA2MDtvcGFjaXR5OjF9LnVuaWZpZWQtc2hhcmUtdXJsLWlucHV0e3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jaztwYWRkaW5nOjEycHg7Y29sb3I6IzA2NWZkNDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4wNSk7Ym9yZGVyLWJvdHRvbS1zdHlsZTpub25lO2JvcmRlci1yYWRpdXM6OHB4fS5ib3R0b20tc2hlZXQtc2hhcmUtaXRlbSAudW5pZmllZC1zaGFyZS11cmwtaW5wdXR7aGVpZ2h0OjQ4cHg7bWFyZ2luLWJvdHRvbToxMnB4fS5zaGFyZS10YXJnZXQtbGlua3tkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MTJweH0uYm90dG9tLXNoZWV0LXNoYXJlLWl0ZW0gLnNoYXJlLXRhcmdldC1saW5re3BhZGRpbmc6MDttYXJnaW4tbGVmdDoxMnB4O2hlaWdodDo0OHB4O2ZvbnQtZmFtaWx5OlJvYm90byxcIkFyaWFsXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS42cmVtO2xpbmUtaGVpZ2h0OjIuMnJlbTtmb250LXdlaWdodDo0MDB9ZnVsbHNjcmVlbi1vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1jb2xvcjojZmZmO292ZXJmbG93OnNjcm9sbDt6LWluZGV4OjR9c2VudGluZWx7fSIpOwp0aGlzLmRlZmF1bHRfYmFzZT10aGlzLmRlZmF1bHRfYmFzZXx8e307KGZ1bmN0aW9uKF8pe3ZhciB3aW5kb3c9dGhpczsKdHJ5ewpfLkN0PWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5zZXJ2aWNlSWQ9bmV3IF8uTnIoYSxiKX10b1N0cmluZygpe3JldHVybiB0aGlzLnNlcnZpY2VJZC50b1N0cmluZygpfX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoIml1VDVPYyIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgd3Q7Xy52dD1mdW5jdGlvbihhLGIpe3JldHVybiBhPT1iPyEwOmEmJmI/YS53aWR0aD09Yi53aWR0aCYmYS5oZWlnaHQ9PWIuaGVpZ2h0OiExfTtfLnh0PWZ1bmN0aW9uKGEsYil7Yi5oYXNPd25Qcm9wZXJ0eSgiZGlzcGxheU5hbWUiKXx8KGIuZGlzcGxheU5hbWU9YS50b1N0cmluZygpKTtiW3d0XT1hfTt3dD1TeW1ib2woIklhIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uSWU9ZnVuY3Rpb24oKXt0aGlzLmlkPSJiIn07Xy5JZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZH07Xy5GdD1uZXcgXy5OcigiTXBKd1pjIiwiTXBKd1pjIik7dmFyIEd0O0d0PW5ldyBfLkllO18uSHQ9Y2xhc3MgZXh0ZW5kcyBfLkple2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoR3QsYSk7dGhpcy5ub2RlPWE7dGhpcy5raW5kPWJ9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKLyoKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCi8qCgogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQoqLwp2YXIgQUEsQkEsREEsV2FhLFhhYSxPQSxQQSwkYWEsYWJhLFNBLFRBLGRiYSxlYmEsZmJhLGRCLGdiYSxqYmEsa2JhLGhCLGtCLGxCLHJCLHNCLHRCLHVCLHZCLHdCLG5iYSxwYmEsb2JhLEVCLHNiYSxEQixGQixIQix0YmEsdWJhLHZiYSxRQixTQixUQix3YmEsYUMsWUIsY0MsVUIsZUMsaEMsaUMsa0MseWJhLHpiYSxBYmEsc0MsdkMsRGJhLHpDLENDLEZiYSxHYmEsRWJhLFZhYSxLQSxvQztfLnlBPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLmZiKXJldHVybiBhLmo7dGhyb3cgRXJyb3IoImgiKTt9O18uekE9ZnVuY3Rpb24oYSxiKXtpZihhLm5vZGVUeXBlPT09MSYmL14oc2NyaXB0fHN0eWxlKSQvaS50ZXN0KGEudGFnTmFtZSkpdGhyb3cgRXJyb3IoImgiKTthLmlubmVySFRNTD1fLnlBKGIpfTtBQT1mdW5jdGlvbihhLGIpe3ZhciBjPXt9O2ZvcihsZXQgZCBpbiBhKWNbZF09Yi5jYWxsKHZvaWQgMCxhW2RdLGQsYSk7cmV0dXJuIGN9OwpfLkl0PWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoIk1hIik7fTtCQT1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gbnVsbDthPV8uWHQoXy5lZChhLDIsdm9pZCAwLF8uRHYpKTtyZXR1cm4gYT09PW51bGx8fGE9PT12b2lkIDA/bnVsbDpfLmdiKGEpfTtfLkNBPWZ1bmN0aW9uKGE9Myl7dmFyIGI9Xy5adDtpZighYil7c3dpdGNoKGEpe2Nhc2UgMDphPUVycm9yKCJSYSIpO2JyZWFrO2Nhc2UgMTphPUVycm9yKCJVYSIpO2JyZWFrO2Nhc2UgMjphPUVycm9yKCJWYSIpO2JyZWFrO2RlZmF1bHQ6YT1FcnJvcigiV2EiKX10aHJvdyBhO31yZXR1cm4gYn07REE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPU9iamVjdC5jcmVhdGUoVmFhKTtkLnNvdXJjZT1hO2QuVGc9YjtjIT12b2lkIDAmJihkLmVxdWFsPWMpO2E9KCk9PntfLnJ1KGQpO18ucHUoZCk7aWYoZC52YWx1ZT09PV8uSXYpdGhyb3cgZC5lcnJvcjtyZXR1cm4gZC52YWx1ZX07YVtfLlp1XT1kO3JldHVybiBhfTsKXy5FQT1mdW5jdGlvbihhKXt2YXIgYj1fLmt1KG51bGwpO3RyeXtyZXR1cm4gYSgpfWZpbmFsbHl7Xy5rdShiKX19O1dhYT1mdW5jdGlvbihhKXthPXtbXy5FdV06ITAsZGVidWdOYW1lOmF9OyFfLlp0fHxfLkJ1KGEpO3JldHVybiBhfTtfLkZBPWZ1bmN0aW9uKGEpe3JldHVybiBhLmRlYnVnTmFtZXx8YS5uYW1lfHwiW2NvbXBvbmVudF0ifTtfLkdBPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1fLkZBKGEpO18uTXU9e25hbWU6Yz9gJHtkfSAoJHtjfSlgOmQsbGo6YS5jb21wb25lbnRUeXBlIT09Xy5LdixwYXJlbnQ6Xy5NdX07YT1iKCk7Xy5NdT1fLk11LnBhcmVudDtyZXR1cm4gYX07Xy5IQT1mdW5jdGlvbigpe3ZhciBhPV8uTXU7cmV0dXJuIGE/YS5sajohMX07Xy5JQT1mdW5jdGlvbihhKXtfLmd2LS07aWYoYSlmb3IobGV0IGIgb2YgXy5ZdiliLmNsZWFyKCk7ZWxzZSBfLmd2PjB8fF8uY3YuaXNGbHVzaGluZyYmIV8uS3UuUml8fF8uanYoKX07Cl8uSkE9ZnVuY3Rpb24oYSxiKXtiPXtjb21wb25lbnRTdGFjazpfLlN1KF8uUHUpLHByOl8uUXU/LnNsaWNlKCk/P1tdLGZoOjMsQWw6Xy5MdSgpLHRhZ05hbWU6Yn07cmV0dXJuW2EsYl19O18uTEE9ZnVuY3Rpb24oKXtpZih0eXBlb2YgS0E9PT0iZnVuY3Rpb24iKXZhciBhPUtBO2Vsc2UgaWYodHlwZW9mIEtBPT09Im9iamVjdCIpYT1LQS5jb25zdHJ1Y3RvcjtlbHNlIHRocm93IEVycm9yKHZvaWQgMCk7cmV0dXJuIF8uQ2MoYj0+YiBpbnN0YW5jZW9mIGEpfTtYYWE9ZnVuY3Rpb24oKXtpZighXy51Py5TeW1ib2w/LmZvcilyZXR1cm4gbmV3IFdlYWtNYXA7dmFyIGE9U3ltYm9sLmZvcigiZ29vZ2xlLmdvZW0iKSxiPV8udVthXTtpZihiKXJldHVybiBiO2I9bmV3IFdlYWtNYXA7cmV0dXJuIF8udVthXT1ifTsKT0E9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnRhZ05hbWUsZD1hLnRhZ05hbWU7YT1NQS5oYXMoZCkmJiFZYWEuaGFzKGQpOygoYj1NQS5oYXMoYykpfHxhKSYmYSYmIWImJk5BLmhhcyhjLnRvTG93ZXJDYXNlKCkpJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57dGhyb3cgXy5VdShFcnJvcigiSWJgIitjKyJgIitkKSwyLGMpO30pfTtQQT1mdW5jdGlvbigpe307Xy5RQT1mdW5jdGlvbihhLGIsYyl7aWYoYz09bnVsbClhLnJlbW92ZUF0dHJpYnV0ZShiKTtlbHNle3ZhciBkOyhkPWIubGFzdEluZGV4T2YoInhtbDoiLDApPT09MD8iaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIjpiLmxhc3RJbmRleE9mKCJ4bGluazoiLDApPT09MD8iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI6bnVsbCk/YS5zZXRBdHRyaWJ1dGVOUyhkLGIsYyk6YS5zZXRBdHRyaWJ1dGUoYixjKX19OwokYWE9ZnVuY3Rpb24oYSxiLGMpe2E9YS5zdHlsZTtpZih0eXBlb2YgYz09PSJzdHJpbmciKWEuY3NzVGV4dD1jO2Vsc2V7YS5jc3NUZXh0PSIiO2ZvcihsZXQgZiBpbiBjKWlmKFphYS5jYWxsKGMsZikpe2I9YTt2YXIgZD1mLGU9Y1tmXTtkLmluZGV4T2YoIi0iKT49MD9iLnNldFByb3BlcnR5KGQsZSk6YltkXT1lfX19O2FiYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dHlwZW9mIGM7ZD09PSJvYmplY3QifHxkPT09ImZ1bmN0aW9uIj9hW2JdPWM6Xy5RQShhLGIsYyl9O1NBPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IFBBO2FbXy5SQS5kZWZhdWx0XT1hYmE7YS5zdHlsZT0kYWE7cmV0dXJuIGF9O1RBPWZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuIGI9PWMmJmQ9PWV9O18uWEE9ZnVuY3Rpb24oKXtmb3IodmFyIGE9Xy5VQSxiPV8uVkEoKTtiIT09bnVsbDspe2xldCBjPWIubmV4dFNpYmxpbmc7YS5yZW1vdmVDaGlsZChiKTtfLldBLmRlbGV0ZWQucHVzaChiKTtiPWN9fTsKXy5WQT1mdW5jdGlvbigpe3JldHVybiBfLllBP18uWUEubmV4dFNpYmxpbmc6Xy5VQS5maXJzdENoaWxkfTsKZGJhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1fLldBLGU9Xy5aQSxmPV8uJEEsaD1fLmFCLGs9Xy5ZQSxsPV8uVUEsbT1fLmJCO18uWkE9YS5vd25lckRvY3VtZW50O18uV0E9bmV3IGJiYShhKTtfLmJCPWI7Xy5hQj1bXTtfLllBPW51bGw7Yj1fLlVBPWEucGFyZW50Tm9kZTt2YXIgbj1jYmEuY2FsbChhKTtpZigobj1uLm5vZGVUeXBlPT09MTF8fG4ubm9kZVR5cGU9PT05P24uYWN0aXZlRWxlbWVudDpudWxsKSYmYS5jb250YWlucyhuKSl7Zm9yKGE9W107biE9PWI7KWEucHVzaChuKSxuPW4ucGFyZW50Tm9kZXx8KGI/bi5ob3N0Om51bGwpO2I9YX1lbHNlIGI9W107Xy4kQT1iO3RyeXtyZXR1cm4gYygpfWZpbmFsbHl7Yz1fLldBLF8uY0ImJmMuZGVsZXRlZC5sZW5ndGg+MCYmKDAsXy5jQikoYy5kZWxldGVkKSxfLlpBPWUsXy5XQT1kLF8uYkI9bSxfLmFCPWgsXy5ZQT1rLF8uVUE9bCxfLiRBPWZ9fTsKZWJhPWZ1bmN0aW9uKGEsYj17fSl7dmFyIHttYXRjaGVzOmM9VEF9PWI7cmV0dXJuKGQsZSxmKT0+ZGJhKGQsYywoKT0+YShkLGUsZikpfTtmYmE9ZnVuY3Rpb24oYSl7YT1TdHJpbmcoYSk7Zm9yKHZhciBiPShkLGUsZik9Pnt2YXIgaD1NYXRoLm1pbihlLmxlbmd0aC1mLGQubGVuZ3RoKTtmb3IobGV0IGw9MDtsPGg7bCsrKXt2YXIgaz1lW2YrbF07aWYoZFtsXSE9PSgiQSI8PWsmJms8PSJaIj9rLnRvTG93ZXJDYXNlKCk6aykpcmV0dXJuITF9cmV0dXJuITB9LGM9MDsoYz1hLmluZGV4T2YoIjwiLGMpKSE9LTE7KXtpZihiKCJceDNjL3NjcmlwdCIsYSxjKXx8YigiXHgzYyEtLSIsYSxjKSlyZXR1cm4ielNveXoiO2MrPTF9cmV0dXJuIGF9OwpkQj1mdW5jdGlvbihhKXtpZihhLmlzQ29ubmVjdGVkIT09dm9pZCAwKXJldHVybiBhLmlzQ29ubmVjdGVkO3ZhciBiPWEub3duZXJEb2N1bWVudDtpZighYilyZXR1cm4gYT09PWRvY3VtZW50O2lmKHR5cGVvZiBiLmNvbnRhaW5zPT09ImZ1bmN0aW9uIilyZXR1cm4gYi5jb250YWlucyhhKTtmb3IoO2E7KXtpZihhPT09YilyZXR1cm4hMDthPWEucGFyZW50Tm9kZX1yZXR1cm4hMX07Z2JhPWZ1bmN0aW9uKGEsYj0hMSl7dmFyIGM9Xy5DQSgpLGQ9Xy5NdTtyZXR1cm4gZT0+e3ZhciBmPSExLGg9ZS5jdXJyZW50VGFyZ2V0O2gmJihmPSFkQihoKXx8YiYmaFtlQl09PT0hMCk7dmFyIGs9Yz8uaWEsbD1iJiZoJiZoW2VCXT09PSEwO2lmKGZ8fGspe2lmKGgmJmRCKGgpJiYoa3x8bCkpdGhyb3cgXy5VdShFcnJvcigia2MiKSw0KTt9ZWxzZXt2YXIgbT0oKT0+YShlKTt0cnl7Xy5SdSgoKT0+Xy5FQShtKSxkKX1jYXRjaChuKXtfLm92KG4sYyl9fX19OwpfLmdCPWZ1bmN0aW9uKGEsYixjKXtpZihPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChmQixhKSYmKGE9ZkJbYV0sT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoYSxiKSYmKGE9YVtiXSxhIGluc3RhbmNlb2YgQXJyYXkpKSl7bGV0IGU9bnVsbCxmPSExO2ZvcihsZXQgaD0wLGs9YS5sZW5ndGg7aDxrOysraCl7bGV0IGw9YVtoXTt2YXIgZD1sLmliO2lmKCFkKXJldHVybiBsLmthO2U9PT1udWxsJiYoZT17fSk7ZD1PYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChlLGQpP2VbZF06ZVtkXT1jKGQpO2lmKGQ9PT1sLm5iKXJldHVybiBsLmthO2Q9PW51bGwmJihmPSEwKX1pZihmKXJldHVybiBudWxsfWI9aGJhW2JdO3JldHVybiB0eXBlb2YgYj09PSJudW1iZXIiP2I6bnVsbH07CmpiYT1mdW5jdGlvbihhLGIpe2I9Xy5nQihhLnRvTG93ZXJDYXNlKCksYiwoKT0+e3Rocm93IF8uVXUoRXJyb3IoIm1jIiksNCxhLnRvTG93ZXJDYXNlKCkpO30pO3JldHVybiBiPT09bnVsbD9udWxsOmliYVtiXT8/bnVsbH07a2JhPWZ1bmN0aW9uKGEsYixjKXtpZihjPT09bnVsbHx8Yz09PXZvaWQgMClyZXR1cm4gYztiPWIudG9Mb3dlckNhc2UoKTthPWpiYShhLGIpO3JldHVybiBhPT09bnVsbD9jOmEoYixjKX07aEI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1XYWEoYik7Yj1fLiR0KGMpO3RyeXthKGMpfWZpbmFsbHl7Xy4kdChiKX1yZXR1cm4oKT0+dm9pZCBfLkN1KGMpfTtfLmlCPWZ1bmN0aW9uKGEpe3JldHVybiBfLkFhKGEpPyJub2RlVHlwZSJpbiBhOiExfTtfLmpCPWZ1bmN0aW9uKGEpe3JldHVybiBfLmlCKGEpJiZhLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREV9O2tCPWZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIiKX07CmxCPWZ1bmN0aW9uKGEpe2E9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKGEpKTthLl9pc1NpZ25hbFRleHROb2RlPSEwO3JldHVybiBhfTtfLm9CPWZ1bmN0aW9uKGEpe3JldHVybiBhIT1udWxsJiZhLkdpPT09Xy5tQnx8YSBpbnN0YW5jZW9mIF8uZmJ8fG5CKGEpfTtfLnBCPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKG5CKGEpJiZCQShhKSlfLnpBKGIsQkEoYSkpO2Vsc2UgaWYoYSBpbnN0YW5jZW9mIF8uZmIpXy56QShiLGEpO2Vsc2UgaWYoYSE9bnVsbCYmYS5HaT09PV8ubUIpe2lmKGEuR2khPT1fLm1CKXRocm93IEVycm9yKCJOYSIpO2E9Xy5nYihhLnRvU3RyaW5nKCkpO18uekEoYixhKX1mb3IobGV0IGMgb2YgYi5jaGlsZE5vZGVzKWMuX2lzU2FmZU9yU2FuaXRpemVkSHRtbE5vZGU9ITA7cmV0dXJuIGJ9OwpfLnFCPWZ1bmN0aW9uKGEpe2E9dHlwZW9mIGE7cmV0dXJuIGE9PT0ic3RyaW5nInx8YT09PSJudW1iZXIifHxhPT09ImJvb2xlYW4ifTtyQj1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIF8uU2F8fF8uWGEoYSl8fCExfTtzQj1mdW5jdGlvbihhLGIpe3ZhciBjPWEucGFyZW50RWxlbWVudDtpZighYylyZXR1cm4gYjtfLmpCKGIpJiZPQShjLGIpO2MucmVwbGFjZUNoaWxkKGIsYSk7cmV0dXJuIGJ9O3RCPWZ1bmN0aW9uKGEsYil7dmFyIGM9YVswXS5wYXJlbnRFbGVtZW50O2lmKGMpaWYoYVswXS5wcmV2aW91c1NpYmxpbmd8fGFbYS5sZW5ndGgtMV0ubmV4dFNpYmxpbmcpe2MuaW5zZXJ0QmVmb3JlKGIsYVswXSk7Zm9yKGxldCBkPWEubGVuZ3RoLTE7ZD49MDtkLS0pYy5yZW1vdmVDaGlsZChhW2RdKX1lbHNlIGMudGV4dENvbnRlbnQ9IiIsYy5hcHBlbmRDaGlsZChiKTtyZXR1cm4gYn07CnVCPWZ1bmN0aW9uKGEsYil7aWYoYVswXS5wYXJlbnRFbGVtZW50KXt2YXIgYz1hWzBdLnBhcmVudEVsZW1lbnQ7bGV0IGY9Yi5sZW5ndGgsaD1hLmxlbmd0aCxrPWYsbD0wLG09MCxuPWFbaC0xXS5uZXh0U2libGluZyxwPW51bGw7Zm9yKDtsPGh8fG08azspaWYoYVtsXT09PWJbbV0pbCsrLG0rKztlbHNle2Zvcig7YVtoLTFdPT09YltrLTFdOyloLS0say0tO2lmKGg9PT1sKWZvcih2YXIgZD1rPGY/bT9iW20tMV0ubmV4dFNpYmxpbmc6YltrLW1dOm47bTxrOyl7dmFyIGU9YlttKytdO18uakIoZSkmJk9BKGMsZSk7Yy5pbnNlcnRCZWZvcmUoZSxkKX1lbHNlIGlmKGs9PT1tKWZvcig7bDxoOylkPWFbbF0scCYmcC5oYXMoZCl8fGMucmVtb3ZlQ2hpbGQoZCksbCsrO2Vsc2UgaWYoYVtsXT09PWJbay0xXSYmYlttXT09PWFbaC0xXSlkPWFbLS1oXS5uZXh0U2libGluZyxjLmluc2VydEJlZm9yZShiW20rK10sYVtsKytdLm5leHRTaWJsaW5nKSxjLmluc2VydEJlZm9yZShiWy0ta10sZCksCmFbaF09YltrXTtlbHNle2lmKCFwKWZvcihwPW5ldyBNYXAsZD1tO2Q8azspcC5zZXQoYltkXSxkKyspO2Q9cC5nZXQoYVtsXSk7aWYoZD09bnVsbCljLnJlbW92ZUNoaWxkKGFbbF0pLGwrKztlbHNlIGlmKG08ZCYmZDxrKXtlPWw7bGV0IHI9MSx0O2Zvcig7KytlPGgmJmU8azspe3Q9cC5nZXQoYVtlXSk7aWYodD09bnVsbHx8dCE9PWQrcilicmVhaztyKyt9aWYocj5kLW0pZm9yKGU9YVtsXTttPGQ7KWMuaW5zZXJ0QmVmb3JlKGJbbSsrXSxlKTtlbHNlIGMucmVwbGFjZUNoaWxkKGJbbSsrXSxhW2wrK10pfWVsc2UgbCsrfX19cmV0dXJuIGJ9O3ZCPWZ1bmN0aW9uKGEpe2lmKCFBcnJheS5pc0FycmF5KGEpKXJldHVybiBhPy5wYXJlbnRFbGVtZW50O2ZvcihsZXQgYiBvZiBhKWlmKGE9dkIoYikpcmV0dXJuIGE7cmV0dXJuIG51bGx9O3dCPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5fZGlzcG9zZUVmZmVjdHM7YS5fZGlzcG9zZUVmZmVjdHM9Yz8oKT0+e2MoKTtiKCl9OmJ9OwpfLnpCPWZ1bmN0aW9uKGEsYixjKXtpZih0eXBlb2YgYz09PSJib29sZWFuIiYmbGJhLmhhcyhiKSlfLlFBKGEsYixTdHJpbmcoYykpO2Vsc2UgaWYoYz09PSExJiZtYmEuaGFzKGIpKV8uUUEoYSxiLG51bGwpO2Vsc2UgaWYoYiE9PSJpZG9tS2V5IiYmYiE9PSJza2lwIiYmYiE9PSJza2lwY2hpbGRyZW4iJiZiIT09ImNoaWxkcmVuIiYmYiE9PSJlbCIpaWYoYi5zdGFydHNXaXRoKCJvbiIpKXtpZihiWzJdIT09IjoiKXRocm93IF8uVXUoRXJyb3IoImxjYCIrYiksNCxhLnRhZ05hbWUpO2xldCBmPWIuc2xpY2UoMyk7dmFyIGQ9Xy5IQSgpO2lmKGM9PT12b2lkIDApZHx8Zj09PSJqc2FjdGlvbiJ8fHhCLmluY2x1ZGVzKGYpfHwoYVtgb24ke2Z9YF09bnVsbCk7ZWxzZSBpZihmPT09ImpzYWN0aW9uIil7Yz1BcnJheS5pc0FycmF5KGMpP2M6W2NdO2ZvcihsZXQgaCBvZiBjKXtpZih0eXBlb2YgaCE9PSJvYmplY3QifHxoPT09bnVsbHx8dHlwZW9mIGgucW4hPT0iZnVuY3Rpb24iKXRocm93IEVycm9yKCJzY2AiKwpiKTtoLnFuKDAsYSxkP18uWXU6KCk9Pnt9KX19ZWxzZXtpZih0eXBlb2YgYz09PSJmdW5jdGlvbiIpe2R8fGFbZUJdIT09dm9pZCAwfHwoYVtlQl09ITEsd0IoYSwoKT0+e2FbZUJdPSEwfSkpO3ZhciBlPWdiYShjLCFkKX1lbHNle25iYShiLGMpO2lmKGMucW4pe2MucW4oMCxhLGYsZD9fLll1OigpPT57fSk7cmV0dXJufWU9Yy5VcCgwKX1pZihkJiZhW2BvbiR7Zn1gXT09PXZvaWQgMClhLmFkZEV2ZW50TGlzdGVuZXIoZixlKSxfLll1KCgpPT52b2lkIGEucmVtb3ZlRXZlbnRMaXN0ZW5lcihmLGUpKTtlbHNlIGlmKGR8fCF4Qi5pbmNsdWRlcyhmKSlhW2BvbiR7Zn1gXT1lfX1lbHNle2lmKGIuc3RhcnRzV2l0aCgiZGF0YS0iKSYmdHlwZW9mIGM9PT0ic3RyaW5nIil0cnl7Yz1mYmEoYyl9Y2F0Y2goZil7Yz0ielNveXoifXR5cGVvZiBjIT09ImZ1bmN0aW9uInx8YS5fZGlzcG9zZUVmZmVjdHMhPW51bGw/KChkPWIuc3RhcnRzV2l0aCgicHJvcDoiKSkmJihiPWIuc2xpY2UoNSkpLGI9PT0KInN0eWxlIj9fLkhBKCk/dHlwZW9mIGM9PT0ib2JqZWN0IiYmYyE9PW51bGw/b2JhKGEsYyk6eUIoYSxiLGMpOnlCKGEsYixjKTooXy5LdS55diYmKGQmJnBiYShhLnRhZ05hbWUpfHwoYz1rYmEoYS50YWdOYW1lLGIsYykpKSxkP2FbYl09YzpxYmEoYSxiLGMpKSk6KGEuX3NpZ25hbFByb3BzfHwoYS5fc2lnbmFsUHJvcHM9W10pLGEuX3NpZ25hbFZhbHVlc3x8KGEuX3NpZ25hbFZhbHVlcz1bXSksYS5fc2lnbmFsUHJvcHMucHVzaChiKSl9fTtfLkFCPWZ1bmN0aW9uKGEsYix7bGo6Y309e30pe2lmKGI/LmVsKXtsZXQgZD1iLmVsO2QubXo/LihhKTthLl9kaXNwb3NlUmVmfHwoYS5fZGlzcG9zZVJlZj0oKT0+e2QudXo/LigpO2RlbGV0ZSBhLl9kaXNwb3NlUmVmfSxjJiZfLll1KCgpPT57YS5fZGlzcG9zZVJlZj8uKCl9KSl9fTsKbmJhPWZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGIhPT0ib2JqZWN0Inx8Yj09PW51bGwpdGhyb3cgXy5VdShFcnJvcigicWNgIithKyJgIit0eXBlb2YgYiksNCk7aWYodHlwZW9mIGIuVXAhPT0iZnVuY3Rpb24iKXRocm93IF8uVXUoRXJyb3IoInJjYCIrYSsiYCIrT2JqZWN0LmtleXMoYikpLDQpO307cGJhPWZ1bmN0aW9uKGEpe3JldHVybiBhLmxlbmd0aD4wJiZhLmluY2x1ZGVzKCItIikmJiFyYmEuaW5jbHVkZXMoYS50b0xvd2VyQ2FzZSgpKX07Cm9iYT1mdW5jdGlvbihhLGIpe3ZhciBjPV8uWnQsZD1hW0JCXSxlPWFbQ0JdO2lmKGUpZm9yKHZhciBmIG9mIHNiYShlLGIpKURCKGQsZiksRUIoYS5zdHlsZSxmLG51bGwpO2U9bmV3IFNldDtmb3IobGV0IGggaW4gYil7aWYoIWIuaGFzT3duUHJvcGVydHkoaCkpY29udGludWU7ZS5hZGQoaCk7bGV0IGs9YltoXTtpZih0eXBlb2Ygaz09PSJmdW5jdGlvbiImJmMpe2lmKCFkKXtkPW5ldyBNYXA7bGV0IGw9YVtCQl09ZDt3QihhLCgpPT57Zm9yKGxldCBtIG9mIGwudmFsdWVzKCkpbSgpO2wuY2xlYXIoKX0pfURCKGQsaCk7Zj1fLnV2KCgpPT57Xy50digoKT0+e3ZhciBsPWsoKTtFQihhLnN0eWxlLGgsbCl9LCJRRHpISmUiKX0pO2Quc2V0KGgsZil9ZWxzZSBEQihkLGgpLEVCKGEuc3R5bGUsaCxrKX1hW0NCXT1lfTsKRUI9ZnVuY3Rpb24oYSxiLGMpe2M9PW51bGx8fGM9PT0hMT9iLnN0YXJ0c1dpdGgoIi0tIil8fGIuaW5jbHVkZXMoIi0iKT9hLnJlbW92ZVByb3BlcnR5KGIpOmFbYl09IiI6Yi5zdGFydHNXaXRoKCItLSIpfHxiLmluY2x1ZGVzKCItIik/YS5zZXRQcm9wZXJ0eShiLFN0cmluZyhjKSk6YVtiXT1jfTtzYmE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24qKCl7Zm9yKGxldCBjIG9mIGEpYyBpbiBifHwoeWllbGQgYyl9KCl9O0RCPWZ1bmN0aW9uKGEsYil7aWYoYSl7dmFyIGM9YS5nZXQoYik7YyYmKGMoKSxhLmRlbGV0ZShiKSl9fTtGQj1mdW5jdGlvbihhKXtyZXR1cm4oMCxfLnFyKShhKSYmIl9fd2l6X1JxTVlNImluIGF9O18uR0I9ZnVuY3Rpb24oYSl7cmV0dXJuIEZCKGEpP2EuX193aXpfUnFNWU0uUWU6YX07SEI9ZnVuY3Rpb24oYSxiLC4uLmMpe2I9Yj8/e307cmV0dXJue3R5cGU6YSxwcm9wczpiLGNoaWxkcmVuOmMsW18uTHZdOiEwfX07Xy5JQj1mdW5jdGlvbihhKXtyZXR1cm4gYS5jaGlsZHJlbn07Cl8uTEI9ZnVuY3Rpb24oYSl7dmFyIGI9SkIhPT1IQjtKQj1hP18uS0I6SEI7cmV0dXJuIGJ9O3RiYT1mdW5jdGlvbigpe3ZhciBhPV8uQ0EoMSksYj1fLmN1KGEsXy5NQik7aWYoIV8uYnUoYikpcmV0dXJuIGI7YT1fLmN1KGEsXy5OQik7aWYoIV8uYnUoYSkpcmV0dXJuIGEubncoKX07Xy5QQj1mdW5jdGlvbihhLGIpe2I9PW51bGwmJihiPShfLk9CLnN2Pz9kb2N1bWVudCkuX193aXpkaXNwYXRjaGVyLmFKKCkpO2IuZ2V0KF8uRnQpLm8uZGlzcGF0Y2hFdmVudChuZXcgXy5IdChhLF8ubUIpKX07CnViYT1mdW5jdGlvbihhKXtpZihBcnJheS5pc0FycmF5KGEpKXtpZihhLmxlbmd0aD4xKXRocm93IF8uVXUoRXJyb3IoInZjYCIrYS5sZW5ndGgrImAiK2EubWFwKFFCKS5qb2luKCIsICIpKSw0LCJTQ1JJUFQiKTthPWFbMF19aWYoYT09bnVsbClyZXR1cm4gbnVsbDtpZighKGEgaW5zdGFuY2VvZiBfLmpiKSl7aWYod2luZG93Py50cnVzdGVkVHlwZXM/LmlzU2NyaXB0KGEpKXRocm93IEVycm9yKCJ1YyIpO2lmKFN0cmluZyhhKS50cmltKCkubGVuZ3RoPT09MClyZXR1cm4gbnVsbDt0aHJvdyBFcnJvcigid2NgIitRQihhKSk7fXJldHVybiBhfTt2YmE9ZnVuY3Rpb24oYSxiKXtiPXViYShiKTtiIT09bnVsbCYmXy5uYihhLGIpfTsKXy5SQj1mdW5jdGlvbihhKXtpZihBcnJheS5pc0FycmF5KGEpKXtpZihhLmxlbmd0aD4xKXRocm93IF8uVXUoRXJyb3IoInhjYCIrYS5sZW5ndGgrImAiK2EubWFwKFFCKS5qb2luKCIsICIpKSw0LCJTVFlMRSIpO2E9YVswXX1pZihhPT1udWxsfHxTdHJpbmcoYSkudHJpbSgpLmxlbmd0aD09PTApcmV0dXJuIG51bGw7dGhyb3cgRXJyb3IoInljYCIrUUIoYSkpO307UUI9ZnVuY3Rpb24oYSl7cmV0dXJuYCgke3R5cGVvZiBhfSkgJHthIT1udWxsJiZ0eXBlb2YgYT09PSJvYmplY3QiP2EuY29uc3RydWN0b3IubmFtZTp0eXBlb2YgYX0gJHthfWB9O1NCPWZ1bmN0aW9uKCl7fTtUQj1mdW5jdGlvbigpe3JldHVybiBudWxsfTsKXy5YQj1mdW5jdGlvbihhLGI9e30pe3ZhciBjPVVCKCksZD0hMCxlLGY9ISFfLkt1LkpxO2YmJihlPXRiYSgpKTtfLnR2KCgpPT57dmFyIGg9IWQmJmIuV2UmJmYsaz1oP3ZCKGNbMF0pOnZvaWQgMDtkPSExO2IuV2UmJl8uZ3YrKzt2YXIgbD1jWzBdLG09Yy5fX3dpel9ScU1ZTS5RZSxuPV8uTEIoITApO3RyeXtsZXQgdjt0cnl7dj1hKCl9Y2F0Y2goRil7Xy5vdihGKSx2PWtCKCl9bGV0IHo9d2JhKGwsdixjKSxFPV8uVkIudnkoeik/P3o7QXJyYXkuaXNBcnJheShFKXx8KGMuX193aXpfUnFNWU0uUWU9W0VdKTtsZXQgQT1jLl9fd2l6X1JxTVlNLlFlO2lmKG0mJighQXJyYXkuaXNBcnJheShtKXx8bS5sZW5ndGghPT0wKSl7dmFyIHA9QXJyYXkuaXNBcnJheShtKT9tWzBdOm0scj1wW18uV0JdLHQ9cC5fZGlzcG9zZUVmZmVjdHM7cC5fZGlzcG9zZUVmZmVjdHM9dm9pZCAwO3A9QXJyYXkuaXNBcnJheShBKT9BWzBdOkE7cFtfLldCXT1yO3BbXy5XQl0mJihwW18uV0JdLlVxPXA9PT1BPwoxOkEubGVuZ3RoKTtwLl9kaXNwb3NlRWZmZWN0cz10fWNbMF09RTtiLldlJiZfLklBKCExKX1jYXRjaCh2KXt0aHJvdyBiLldlJiZfLklBKCEwKSxfLlV1KHYsNCk7fWZpbmFsbHl7Xy5MQihuKX1oJiZfLlBCKGssZSl9LGIuZGVidWdOYW1lKTtyZXR1cm4gY307CndiYT1mdW5jdGlvbihhLGIsYyl7Zm9yKDt0eXBlb2YgYj09PSJmdW5jdGlvbiI7KWI9YigpO2lmKGI/LltfLkx2XSl0aHJvdyBfLlV1KEVycm9yKCJ6Y2AiK2IudHlwZT8uWmMpLDQsYi50eXBlPy5aYyk7aWYoYT09bnVsbClyZXR1cm4gYj09bnVsbD9rQigpOl8ucUIoYik/bEIoYik6ckIoYik/bEIoYi50b1N0cmluZygpKTpfLmlCKGIpP2I6Yi5sZW5ndGg9PT0wP2tCKCk6WUIoYixjKTtpZihfLmlCKGEpKXtpZihiPT1udWxsKXJldHVybiBzQihhLGtCKCkpO2lmKF8ucUIoYikpcmV0dXJuIGFDKGEsYik7aWYockIoYikpcmV0dXJuIGFDKGEsYi50b1N0cmluZygpKTtpZihfLmlCKGIpKXJldHVybiBzQihhLGIpO2lmKGIubGVuZ3RoPT09MClyZXR1cm4gc0IoYSxrQigpKTtiPVlCKGIsYyk7dUIoW2FdLGMuX193aXpfUnFNWU0uUWUpO3JldHVybiBifWE9Xy5iQyhhKTtpZihiPT1udWxsKXJldHVybiB0QihhLGtCKCkpO2lmKF8ucUIoYikpcmV0dXJuIHRCKGEsbEIoYikpO2lmKHJCKGIpKXJldHVybiB0QihhLApsQihiLnRvU3RyaW5nKCkpKTtpZihfLmlCKGIpKXJldHVybiB1QihhLFtiXSlbMF07aWYoYi5sZW5ndGg9PT0wKXJldHVybiB0QihhLGtCKCkpO2I9WUIoYixjKTt1QihhLGMuX193aXpfUnFNWU0uUWUpO3JldHVybiBifTthQz1mdW5jdGlvbihhLGIpe2Eubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT9hLnRleHRDb250ZW50IT09U3RyaW5nKGIpJiYoYS50ZXh0Q29udGVudD1TdHJpbmcoYikpOmE9c0IoYSxsQihiKSk7cmV0dXJuIGF9O18uYkM9ZnVuY3Rpb24oYSxiLGM9ITEpe3JldHVybiBjQyhhLGI/P1tdLGMpfTtZQj1mdW5jdGlvbihhLGIpe3ZhciBjPV8uYkMoYSx2b2lkIDAsITApO2lmKGMubGVuZ3RoPT09MClyZXR1cm4ga0IoKTtiLl9fd2l6X1JxTVlNLlFlPWM7cmV0dXJuIGF9OwpjQz1mdW5jdGlvbihhLGI9W10sYz0hMSxkLGU9LTEpe2lmKGE9PW51bGwpcmV0dXJuIGI7aWYoIUFycmF5LmlzQXJyYXkoYikmJl8uakIoYikpc3dpdGNoKF8uakIoYSkmJk9BKGIsYSksYi50YWdOYW1lKXtjYXNlICJTQ1JJUFQiOnZiYShiLGEpO3JldHVybjtjYXNlICJTVFlMRSI6aWYoXy5SQihhKSE9PW51bGwpdGhyb3cgRXJyb3IoImgiKTtyZXR1cm59aWYoQXJyYXkuaXNBcnJheShhKSl7Zm9yKHZhciBmPTA7ZjxhLmxlbmd0aDtmKyspY0MoYVtmXSxiLGMsYSxmKTtyZXR1cm4gYn1pZihhIGluc3RhbmNlb2YgXy5kQylyZXR1cm4gZj1hLm9jKCksY0MoZixiLGMsZCxlKTtpZihfLnFCKGEpKXJldHVybiBhPWxCKGEpLGQmJmMmJihkW2VdPWEpLGVDKGIsYSk7aWYoXy5vQihhKSl7Yz1fLnBCKGEpO2ZvcihjPWMuZmlyc3RDaGlsZDtjOylmPWMubmV4dFNpYmxpbmcsZUMoYixjKSxjPWY7cmV0dXJuIGJ9aWYockIoYSkpcmV0dXJuIGE9bEIoYS50b1N0cmluZygpKSxkJiZjJiYoZFtlXT0KYSksZUMoYixhKTtpZihfLmlCKGEpKXJldHVybiBlQyhiLGEpO2lmKHR5cGVvZiBhPT09ImZ1bmN0aW9uIil7Zj1fLlhCKCgpPT57dmFyIGs9YSgpO2lmKGs9PW51bGx8fF8ucUIoaykpcmV0dXJuIGs7aWYoXy5vQihrKSlyZXR1cm4gaz1fLnBCKGspLEFycmF5LmZyb20oay5jaGlsZE5vZGVzKTt0aHJvdyBfLlV1KEVycm9yKCJBYmAiKyhfLk11Py5uYW1lPz8idW5rbm93biIpKyJgIit0eXBlb2YgayksNCk7fSx7ZGVidWdOYW1lOiJxbUYybmUiLHpwOmF9KVswXTtpZihBcnJheS5pc0FycmF5KGYpKXtmb3IodmFyIGggb2YgZillQyhiLGgpO3JldHVybiBifWQmJmMmJihkW2VdPWYpO3JldHVybiBlQyhiLGYpfWlmKGE/LltfLkx2XSl7ZD1hO2U9Xy5MQighMCk7aD1KQjt0cnl7Zj1oKGQudHlwZSxkLnByb3BzLC4uLmQuY2hpbGRyZW4pfWZpbmFsbHl7Xy5MQihlKX1yZXR1cm4gY0MoZixiLGMpfXRocm93IF8uVXUoRXJyb3IoIkFjIiksNCk7fTsKVUI9ZnVuY3Rpb24oYSl7dmFyIGI9T2JqZWN0LmFzc2lnbihbXSx7X193aXpfUnFNWU06e1FlOltdfX0pO2lmKCFhKXJldHVybiBiO2JbMF09WUIoYSxiKTtyZXR1cm4gYn07ZUM9ZnVuY3Rpb24oYSxiKXtBcnJheS5pc0FycmF5KGEpP2EucHVzaChiKTphLmFwcGVuZENoaWxkKGIpO3JldHVybiBhfTtfLmZDPWZ1bmN0aW9uKGEpe2lmKEFycmF5LmlzQXJyYXkoYSkpe2ZvcihsZXQgYj0wO2I8YS5sZW5ndGg7YisrKWFbYl09Xy5mQyhhW2JdKTtyZXR1cm4gYX1yZXR1cm4gYSBpbnN0YW5jZW9mIF8uZEM/KGE9YS5vYygpLF8uZkMoYSkpOmF9OwpfLmdDPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPV8uRkEoYSksZj1sPT57ZD1sO3ZhciBtPV8uTEIoITApLG49Xy5rdShfLnp2KTt0cnl7Yz1fLmZDKGEoYikpfWZpbmFsbHl7Xy5rdShuKSxfLkxCKG0pfSFBcnJheS5pc0FycmF5KGMpJiZfLkZ1KGwpfTtlPV8uS3UuR3A/aEIoZixlKTpfLnV2KGYsXy5LdS5yaXx8ISFfLlp0KTtpZighYi5qbil7Zj1fLiR0KGQpO3RyeXtyZXR1cm4oMCxfLnZ2KShhLGIsYyksY31maW5hbGx5e18uJHQoZil9fSFGQihjKSYmQXJyYXkuaXNBcnJheShjKSYmKGM9VUIoYykpO3ZhciBoPV8uR0IoYyk7Zj1BcnJheS5pc0FycmF5KGgpP2hbMF06aDt2YXIgaz0hMTtpZihmKXtsZXQgbD1iPy5pZG9tS2V5Pz9hLG09aCE9PWY7Zi5fZGlzcG9zZUVmZmVjdHM9ZTtsZXQgbj1mW18uV0JdfHx7fSxwPUZCKGMpP2M6bi55bjtPYmplY3QuYXNzaWduKG4se2tleTpsLFVxOm0/aC5sZW5ndGg6MSxvd25lcjpkLGxKOiEhZltfLldCXSx5bjpwfSk7ZltfLldCXT1ufWVsc2Ugaz0KITA7KCgpPT57dmFyIGw9Xy4kdChkKTt0cnl7KDAsXy52dikoYSxiLGgpfWZpbmFsbHl7Xy4kdChsKX19KSgpO2smJmUoKTtyZXR1cm4gY307aEM9ZnVuY3Rpb24oYSxiKXtpZighYS52JiZiKXthLnY9ITA7dHJ5e2EuSGYoKX1jYXRjaChjKXtfLkt1LmhhbmRsZUVycm9yPy4oLi4uXy5KQShjLGEuaj8uWmMpKX1fLmJ3LkhmKGEpO2EuZWw9bnVsbDtiLl9faW5zdGFuY2UmJmRlbGV0ZSBiLl9faW5zdGFuY2V9fTtfLmpDPWZ1bmN0aW9uKGEsYixjPSExKXthLl9zaWduYWxQcm9wcyE9bnVsbCYmYS5fZGlzcG9zZUVmZmVjdHM9PW51bGwmJihjP2EuX2Rpc3Bvc2VFZmZlY3RzPV8udXYoKCk9PnZvaWQgaUMoYSxiKSxfLkt1LnJpfHwhIV8uWnQpOmlDKGEsYikpfTsKaUM9ZnVuY3Rpb24oYSxiKXtfLnR2KCgpPT57dmFyIGM9YS5fc2lnbmFsUHJvcHMsZD1hLl9zaWduYWxWYWx1ZXM7Zm9yKGxldCBlPTA7ZTxjLmxlbmd0aDtlKyspe2xldCBmPWNbZV0saD1iW2ZdKCk7ZFtlXSE9PWgmJihkW2VdPWgsXy56QihhLGYsaCkpfX0sImUzWVZiYiIpfTtfLmxDPWZ1bmN0aW9uKGEsYiwuLi5jKXtiPz8oYj17fSk7cmV0dXJuIF8uSEEoKXx8Xy5NdT09bnVsbD9uZXcgeGJhKGEsYixjKTprQyhhLGIsYyl9OwprQz1mdW5jdGlvbihhLGIsYyl7aWYoYT09PV8uSUIpcmV0dXJuIGM7aWYodHlwZW9mIGE9PT0iZnVuY3Rpb24iKXJldHVybiBfLk11JiYhXy5IQSgpJiYoYi5qbj0hMCksXy5HQShhLCgpPT57Yy5sZW5ndGg+MCYmKGIuY2hpbGRyZW49Yy5sZW5ndGg9PT0xP2NbMF06Yyk7aWYoYS5jb21wb25lbnRUeXBlPT09Xy5Ldil7bGV0IGU7aEIoKCk9Pnt2YXIgZj1iO2lmKGEuY29tcG9uZW50VHlwZSE9PV8uS3YpZT0hMTtlbHNle2Z8fChmPXt9KTt2YXIgaD1uZXcgXy5tQyhmLGEpLGs9Xy5rdShfLnp2KTt0cnl7dmFyIGw9aC5vYyhmKX1maW5hbGx5e18ua3Uoayl9bCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50PyhsLl9faW5zdGFuY2U9aCxoLmVsPWwsaC5qPWEsYS5aYz1sLnRhZ05hbWUudG9Mb3dlckNhc2UoKSxfLmJ3LkdmKGgpLGU9bCk6ZT1sfX0sYS5uYW1lKTtpZihlKXJldHVybiBlfXJldHVybiBfLmdDKGEsYil9LGIuZGVidWdJbnN0YW5jZSk7dmFyIGQ9eWJhKGEsYik7Zm9yKGxldCBlIGluIGIpXy56QihkLAplLGJbZV0pO18uakMoZCxiKTtfLmJDKGMsZCk7Xy5BQihkLGIse2xqOiEwfSk7KDAsXy54dikoZCxiKTtyZXR1cm4gZH07eWJhPWZ1bmN0aW9uKGEsYil7YT0oTkEuaGFzKGEudG9Mb3dlckNhc2UoKSk/MDpNQS5oYXMoYS5zdGFydHNXaXRoKCJzdmc6Iik/YS5yZXBsYWNlKCJzdmc6IiwiIik6YSkpP2RvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGEuc3RhcnRzV2l0aCgic3ZnOiIpP2EucmVwbGFjZSgic3ZnOiIsIiIpOmEpOigwLF8ud3YpKGEsYil8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYSk7YVtfLm5DXT0hMDtyZXR1cm4gYX07Cl8ucEM9ZnVuY3Rpb24oYSl7aWYoYSl7YS5fZGlzcG9zZVJlZj8uKCk7YS5fZGlzcG9zZUVmZmVjdHM/LigpO2lmKGEuX19pbnN0YW5jZSYmYS5fX2luc3RhbmNlIGluc3RhbmNlb2Ygb0Mpe3ZhciBiPWEuX19pbnN0YW5jZTtoQyhiLGEpO2IgaW5zdGFuY2VvZiBfLm1DJiZiLkQoKX1mb3IoYj0wO2I8YS5jaGlsZE5vZGVzLmxlbmd0aDtiKyspXy5wQyhhLmNoaWxkTm9kZXNbYl0pfX07emJhPWZ1bmN0aW9uKGEpe3FDLnB1c2goYSk9PT0xJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntzZXRUaW1lb3V0KCgpPT57dmFyIGI9Wy4uLnFDXTtxQz1bXTtmb3IobGV0IGMgb2YgYil0cnl7Zm9yKGI9MDtiPGMubGVuZ3RoO2IrKylfLnBDKGNbYl0pfWNhdGNoKGQpe18uS3UuaGFuZGxlRXJyb3I/LiguLi5fLkpBKGQpKX19KX0pfTtfLks9ZnVuY3Rpb24oYSxiLC4uLmMpe3JldHVybiBKQihhLGIsLi4uYyl9O18uckM9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5rdShfLnl2KTt0cnl7YSgpfWZpbmFsbHl7Xy5rdShiKX19OwpBYmE9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9O3NDPWZ1bmN0aW9uKGEsYixjPSIiKXtmdW5jdGlvbiBkKCl7cmV0dXJuIGUoKX12YXIgZT10eXBlb2YgYT09PSJmdW5jdGlvbiI/REEoYSxBYmEsYj8uZXF1YWxzKTpEQShhLnNvdXJjZSxhLlRnLGI/LmVxdWFscyk7dmFyIGY9ZVtfLlp1XTtmLmRlYnVnTmFtZT1fLmV1KGI/LmRlYnVnTmFtZSxjLCJbbGlua2VkU2lnbmFsXSIpO2RbXy5adV09ZjtyZXR1cm5bZCxoPT57Xy5ydShmKTtfLnl1KGYsaCk7Zi5QYj0hMTtmLnJqPV8ubXV9LGg9PntfLnJ1KGYpO2lmKGYudmFsdWU9PT1fLkl2KXRocm93IGYuZXJyb3I7Xy5qdT8uTGUhPT0hMXx8Xy53dShmKTtfLnl1KGYsaChmLnZhbHVlKSk7Zi5QYj0hMTtmLnJqPV8ubXV9XX07Xy51Qz1mdW5jdGlvbigpe3RDfHwodEM9e09jOiExLFV5OjAsc3RhY2s6W10sc2Vzc2lvbklkOiIiLGRoOnZvaWQgMCxwcm9jZXNzb3JzOltdLFdoOigpPT4hMH0pO3JldHVybiB0Q307CnZDPWZ1bmN0aW9uKCl7dmFyIGE9Xy51QygpO3JldHVybiBhLnN0YWNrW2Euc3RhY2subGVuZ3RoLTFdfTtfLndDPWZ1bmN0aW9uKGEpe3ZhciBiPV8udUMoKTtyZXR1cm4gYi5PYz9iLmRoP2IuZGhbYV06ITA6ITF9O0RiYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8ud0MoYSkmJl8udUMoKS5XaChhLGIsQmJhKT9uZXcgQ2JhKGEsYixjKTp4Q307Cl8ueUM9ZnVuY3Rpb24oYSxiLGMpe2lmKHR5cGVvZiBjPT09ImZ1bmN0aW9uIil7dmFyIGQ9YztjPXZvaWQgMH12YXIgZT1EYmEoYSxiLGMpO2lmKGM/LmVuZFRpbWUhPW51bGwpcmV0dXJuIGQmJl8uSXAoRXJyb3IoIkVjIikpLGU7ZSE9PXhDJiZjPy5hY3RpdmUhPT0hMSYmXy51QygpLnN0YWNrLnB1c2goZSk7aWYoIWQpcmV0dXJuIGU7aWYoZT09PXhDKXJldHVybiBkKGUpO3RyeXtsZXQgZj1kKGUpO2lmKGYgaW5zdGFuY2VvZiBQcm9taXNlKXJldHVybiBmLnRoZW4oaD0+e2UuZW5kKCk7cmV0dXJuIGh9LGg9PntlLmVuZCgiU1BBTl9TVEFUVVNfRVJST1IiKTt0aHJvdyBoO30pO2UuZW5kKCk7cmV0dXJuIGZ9Y2F0Y2goZil7dGhyb3cgZS5lbmQoIlNQQU5fU1RBVFVTX0VSUk9SIiksZjt9fTsKekM9ZnVuY3Rpb24oYSxiLGMsZCl7YSBpbnN0YW5jZW9mIEVsZW1lbnQmJihjLmRlYnVnTmFtZXx8KGMuZGVidWdOYW1lPWA8JHthLnRhZ05hbWUudG9Mb3dlckNhc2UoKX1gKyhhLnRhZ05hbWUuaW5jbHVkZXMoIi0iKT8iPiI6YC4ke2EuY2xhc3NOYW1lfT5gKSksXy54KCJ5dHdpel9lbmFibGVfZGVidWdfY29tcG9uZW50X3Byb3BzIikmJihhLmRlYnVnUHJvcHN8fChhLmRlYnVnUHJvcHM9QUEoYixlPT4oKT0+ZSgpKSksYi5kYXRhPT09dm9pZCAwfHwiZGF0YSJpbiBhJiYhYS5pc1dlYkNvbXBvbmVudFdyYXBwZXJ8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLmRlYnVnUHJvcHMsImRhdGEiLHtnZXQ6KCk9Pl8uQnYoYi5kYXRhKSxzZXQ6ZT0+e2Q/LmRhdGE/LihlKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSkpfTsKXy5BQz1mdW5jdGlvbihhLGIpe2lmKGEubGVuZ3RoPT09MCYmIWI/LmluaXRpYWwpcmV0dXJuIHNDKGEse2RlYnVnTmFtZTpiPy5kZWJ1Z05hbWV9LCJoIik7dmFyIFtjLGQsZV09c0Moe3NvdXJjZTooKT0+YSgpLFRnOihmLGgpPT5oPy52YWx1ZT9hKGgudmFsdWUpOmI/LmluaXRpYWw/YShiLmluaXRpYWwpOmZ9LHtkZWJ1Z05hbWU6Yj8uZGVidWdOYW1lfSwiaSIpO3JldHVybltjLGQsZV19OwpfLkw9ZnVuY3Rpb24oYSxiPSIiKXt2YXIgYz1kPT5fLnlDKCJ5dENvbXBvbmVudCIse30sZT0+e3ZhciBmPUJDPXt9O2lmKGM/Lmlkb21Db21wYXQmJmQuam4pe2xldCBbayxsXT1FYmEoZCx0eXBlb2YgYy5pZG9tQ29tcGF0PT09Im9iamVjdCI/Yz8uaWRvbUNvbXBhdC5jYWxsYmFja3M6e30pO3ZhciBoPUNDKGEsZCk7Zi5Hej1oO0JDPXZvaWQgMDt6QyhoLGQsYyxrKTtlLkRlKHtkZWJ1Z05hbWU6Yy5kZWJ1Z05hbWV9KTtlPV8uR0IoaCk7ZT1BcnJheS5pc0FycmF5KGUpP2VbMF06ZTtlW18uV0JdfHwoZVtfLldCXT17fSk7ZVtfLldCXS5xQj1sO18uQ3YoZCxoKTtyZXR1cm4gaH1kPUFBKGQsRmJhKTtoPUNDKGEsZCk7ekMoaCxkLGMpO2YuR3o9aDtCQz12b2lkIDA7ZS5EZSh7ZGVidWdOYW1lOmMuZGVidWdOYW1lfSk7Xy5DdihkLGgpO3JldHVybiBofSk7Yy5kZWJ1Z05hbWU9YjtyZXR1cm4gY307Q0M9ZnVuY3Rpb24oYSxiKXthPWEoYik7cmV0dXJuIF8uZkMoYSl9OwpGYmE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj09PSJjaGlsZHJlbiJ8fGI9PT0icmVmInx8dHlwZW9mIGE9PT0iZnVuY3Rpb24ifHxhPT09dm9pZCAwP2E6KCk9PmF9O0diYT1mdW5jdGlvbihhLGIpe3JldHVybigpPT5fLkJ2KGEpPz9ifTtfLkRDPWZ1bmN0aW9uKGEsYil7dmFyIGM9ey4uLmF9O2ZvcihsZXQgZCBpbiBiKWIuaGFzT3duUHJvcGVydHkoZCkmJihjW2RdPUdiYShhW2RdLGJbZF0pKTtyZXR1cm4gY307CkViYT1mdW5jdGlvbihhLGIpe3ZhciBjPXt9LGQ9e307Zm9yKGxldCBlIGluIGEpe2xldCBmPWFbZV07aWYoZSE9PSJjaGlsZHJlbiImJmUhPT0icmVmIilpZih0eXBlb2YgZj09PSJmdW5jdGlvbiIpaWYoZSBpbiBifHxmLmxlbmd0aD4wKWRbZV09ZixhW2VdPSguLi5oKT0+ZFtlXSguLi5oKTtlbHNle2lmKGU9PT0iZGF0YSIpe2xldCBbaCxrXT1fLkFDKGYse2RlYnVnTmFtZTpgJHtlfTpjd2lzYH0pO2FbZV09aDtjW2VdPWt9fWVsc2UgaWYoIShhW2VdPT09dm9pZCAwJiZlIGluIGIpKXtsZXQgW2gsa109Xy5KKGFbZV0se2RlYnVnTmFtZTpgJHtlfTpjd2lzYH0sIlZiY2dDZCIpO2FbZV09aDtjW2VdPWt9fXJldHVybltjLGZ1bmN0aW9uKGUpe2ZvcihsZXQgZiBpbiBlKXtsZXQgaD1lW2ZdO2YhPT0iY2hpbGRyZW4iJiZmIT09InJlZiImJih0eXBlb2YgaD09PSJmdW5jdGlvbiI/ZiBpbiBiP2RbZl09aDpoLmxlbmd0aD4wJiYoZFtmXT1oLF8uSXAobmV3IF8uWGooSGJhLGYpKSk6ZiBpbgpiJiZoPT09dm9pZCAwfHwoY1tmXXx8Xy5IcChuZXcgXy5YaihJYmEsZikpLF8uckMoKCk9PntjW2ZdKGgpfSkpKX19XX07ClZhYT17Li4uXy5YdSx2YWx1ZTpfLkd2LFBiOiEwLGVycm9yOm51bGwsZXF1YWw6Xy5pdSxraW5kOiJsaW5rZWRTaWduYWwiLFhtKGEpe3JldHVybiBhLnZhbHVlPT09Xy5Hdnx8YS52YWx1ZT09PV8uSHZ9LFltKGEpe2lmKGEudmFsdWU9PT1fLkh2KXRocm93IEVycm9yKCJoIik7dmFyIGI9YS52YWx1ZTthLnZhbHVlPV8uSHY7dmFyIGM9Xy50dShhKSxkPSExO3RyeXtsZXQgZj1hLnNvdXJjZSgpLGg9YiE9PV8uR3YmJmIhPT1fLkl2O3ZhciBlPWEuVGcoZixoP3tzb3VyY2U6YS5zb3VyY2VWYWx1ZSx2YWx1ZTpifTp2b2lkIDApO2Euc291cmNlVmFsdWU9ZjtfLmt1KG51bGwpO2Q9aCYmZSE9PV8uSXYmJmEuZXF1YWwoYixlKX1jYXRjaChmKXtlPV8uSXYsYS5lcnJvcj1mfWZpbmFsbHl7Xy5rdShjKSxhJiZfLnZ1KGEpfWQ/YS52YWx1ZT1iOihhLnZhbHVlPWUsYS52ZXJzaW9uKyspfX07Xy5tQj17fTtfLkl0LnByb3RvdHlwZS5qPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudH07Cl8uSXQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudH07S0E9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07Xy5kQz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuQ289bnVsbH19O29DPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMucHJvcHM9YTt0aGlzLnY9ITF9R2YoKXt9SmkoKXt9SGYoKXt9S2koKXt9fTt0cnl7bGV0IGE9d2luZG93Py50b3A/P18udTthLlUzYkhIZj8/KGEuVTNiSEhmPTApO2EuVTNiSEhmKyt9Y2F0Y2goYSl7Xy51LlUzYkhIZj8/KF8udS5VM2JISGY9MCksXy51LlUzYkhIZisrfTtfLkZDPW5ldyBXZWFrTWFwO18uR0M9WGFhKCk7dmFyIG1iYT1uZXcgU2V0KCJhbGxvd2Z1bGxzY3JlZW4gYWxsb3d0cmFuc3BhcmVuY3kgYXN5bmMgYXV0b2ZvY3VzIGF1dG9wbGF5IGNoZWNrZWQgY29udHJvbHMgZGVmYXVsdCBkZWZlciBkaXNhYmxlZCBkaXNhYmxlcmVtb3RlcGxheWJhY2sgZm9ybW5vdmFsaWRhdGUgaGlkZGVuIGluZXJ0IGlzbWFwIGl0ZW1zY29wZSBqc3NoYWRvdyBqc3Nsb3QgbG9vcCBtdWx0aXBsZSBtdXRlZCBub21vZHVsZSBub3ZhbGlkYXRlIG9wZW4gcGxheXNpbmxpbmUgcmVhZG9ubHkgcmVxdWlyZWQgcmV2ZXJzZWQgc2NvcGVkIHNlYW1sZXNzIHNlbGVjdGVkIHNvcnRhYmxlIHR5cGVtdXN0bWF0Y2giLnNwbGl0KCIgIikpLGxiYT1uZXcgU2V0KFsiY29udGVudGVkaXRhYmxlIiwiZHJhZ2dhYmxlIiwic3BlbGxjaGVjayJdKTt2YXIgTUE9bmV3IFNldCgiYSBhbHRHbHlwaCBhbHRHbHlwaERlZiBhbHRHbHlwaEl0ZW0gYW5pbWF0ZSBhbmltYXRlQ29sb3IgYW5pbWF0ZU1vdGlvbiBhbmltYXRlVHJhbnNmb3JtIGNpcmNsZSBjbGlwUGF0aCBjb2xvci1wcm9maWxlIGN1cnNvciBkZWZzIGRlc2MgZWxsaXBzZSBmZUJsZW5kIGZlQ29sb3JNYXRyaXggZmVDb21wb25lbnRUcmFuc2ZlciBmZUNvbXBvc2l0ZSBmZUNvbnZvbHZlTWF0cml4IGZlRGlmZnVzZUxpZ2h0aW5nIGZlRGlzcGxhY2VtZW50TWFwIGZlRGlzdGFudExpZ2h0IGZlRHJvcFNoYWRvdyBmZUZsb29kIGZlRnVuY0EgZmVGdW5jQiBmZUZ1bmNHIGZlRnVuY1IgZmVHYXVzc2lhbkJsdXIgZmVJbWFnZSBmZU1lcmdlIGZlTWVyZ2VOb2RlIGZlTW9ycGhvbG9neSBmZU9mZnNldCBmZVBvaW50TGlnaHQgZmVTcGVjdWxhckxpZ2h0aW5nIGZlU3BvdExpZ2h0IGZlVGlsZSBmZVR1cmJ1bGVuY2UgZmlsdGVyIGZvbnQgZm9udC1mYWNlIGZvbnQtZmFjZS1mb3JtYXQgZm9udC1mYWNlLW5hbWUgZm9udC1mYWNlLXNyYyBmb250LWZhY2UtdXJpIGZvcmVpZ25PYmplY3QgZyBnbHlwaCBnbHlwaFJlZiBoa2VybiBpbWFnZSBsaW5lIGxpbmVhckdyYWRpZW50IG1hcmtlciBtYXNrIG1ldGFkYXRhIG1pc3NpbmctZ2x5cGggbXBhdGggcGF0aCBwYXR0ZXJuIHBvbHlnb24gcG9seWxpbmUgcmFkaWFsR3JhZGllbnQgcmVjdCBzY3JpcHQgc2V0IHN0b3Agc3R5bGUgc3ZnIHN3aXRjaCBzeW1ib2wgdGV4dCB0ZXh0UGF0aCB0aXRsZSB0cmVmIHRzcGFuIHVzZSB2aWV3IHZrZXJuIi5zcGxpdCgiICIpKSwKTkE9bmV3IFNldChbImEiLCJmb250Iiwic2NyaXB0Iiwic3R5bGUiLCJ0aXRsZSJdKSxZYWE9bmV3IFNldChbImRlc2MiLCJmb3JlaWduT2JqZWN0IiwidGl0bGUiXSk7Xy5SQT17ZGVmYXVsdDoiX19kZWZhdWx0In07dmFyIFphYT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1BBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG51bGwpO18uSEM9U0EoKTtfLmNCPW51bGw7dmFyIGJiYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmNyZWF0ZWQ9W107dGhpcy5kZWxldGVkPVtdO3RoaXMubm9kZT1hfX07dmFyIGNiYT10eXBlb2YgTm9kZSE9PSJ1bmRlZmluZWQiJiZOb2RlLnByb3RvdHlwZS5nZXRSb290Tm9kZXx8ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcyxiPWE7YTspYj1hLGE9YS5wYXJlbnROb2RlO3JldHVybiBifTtfLldBPW51bGw7Xy5ZQT1udWxsO18uVUE9bnVsbDtfLlpBPW51bGw7Xy4kQT1bXTtfLmJCPVRBO18uYUI9W107Xy5JQz1mdW5jdGlvbihhKXtyZXR1cm4gZWJhKChiLGMsZCk9PntfLlVBPV8uWUE9YjtfLllBPW51bGw7YyhkKTtfLlhBKCk7Xy5ZQT1fLlVBO18uVUE9Xy5VQS5wYXJlbnROb2RlO3JldHVybiBifSxhKX0oKTtfLkpDPW5ldyBQQTtSZWdFeHAucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJzdGlja3kiKTt2YXIgZUI9U3ltYm9sKCJqYyIpO3ZhciBoYmE9e2FsaWduOjEsYWx0OjEsImFyaWEtYWN0aXZlZGVzY2VuZGFudCI6MTAsImFyaWEtYXRvbWljIjoxLCJhcmlhLWF1dG9jb21wbGV0ZSI6MSwiYXJpYS1idXN5IjoxLCJhcmlhLWNoZWNrZWQiOjEsImFyaWEtY29udHJvbHMiOjEwLCJhcmlhLWN1cnJlbnQiOjEsImFyaWEtZGVzY3JpYmVkYnkiOjEwLCJhcmlhLWRpc2FibGVkIjoxLCJhcmlhLWRyb3BlZmZlY3QiOjEsImFyaWEtZXhwYW5kZWQiOjEsImFyaWEtaGFzcG9wdXAiOjEsImFyaWEtaGlkZGVuIjoxLCJhcmlhLWludmFsaWQiOjEsImFyaWEtbGFiZWwiOjEsImFyaWEtbGFiZWxsZWRieSI6MTAsImFyaWEtbGV2ZWwiOjEsImFyaWEtbGl2ZSI6MSwiYXJpYS1tdWx0aWxpbmUiOjEsImFyaWEtbXVsdGlzZWxlY3RhYmxlIjoxLCJhcmlhLW9yaWVudGF0aW9uIjoxLCJhcmlhLW93bnMiOjEwLCJhcmlhLXBvc2luc2V0IjoxLCJhcmlhLXByZXNzZWQiOjEsImFyaWEtcmVhZG9ubHkiOjEsImFyaWEtcmVsZXZhbnQiOjEsImFyaWEtcmVxdWlyZWQiOjEsCiJhcmlhLXNlbGVjdGVkIjoxLCJhcmlhLXNldHNpemUiOjEsImFyaWEtc29ydCI6MSwiYXJpYS12YWx1ZW1heCI6MSwiYXJpYS12YWx1ZW1pbiI6MSwiYXJpYS12YWx1ZW5vdyI6MSwiYXJpYS12YWx1ZXRleHQiOjEsYXN5bmM6OCxhdXRvY2FwaXRhbGl6ZToxLGF1dG9jb21wbGV0ZToxLGF1dG9jb3JyZWN0OjEsYXV0b2ZvY3VzOjEsYXV0b3BsYXk6MSxiZ2NvbG9yOjEsYm9yZGVyOjEsY2VsbHBhZGRpbmc6MSxjZWxsc3BhY2luZzoxLGNoZWNrZWQ6MSxjaXRlOjEsImNsYXNzIjoxLGNvbG9yOjEsY29sczoxLGNvbHNwYW46MSxjb250ZW50ZWRpdGFibGU6MSxjb250cm9sczoxLGNvbnRyb2xzbGlzdDoxLGNvb3JkczoxLGNyb3Nzb3JpZ2luOjEsZGF0ZXRpbWU6MSxkaXI6OCxkaXNhYmxlZDoxLGRvd25sb2FkOjEsZHJhZ2dhYmxlOjEsZW5jdHlwZToxLGZhY2U6MSwiZm9yIjoxMCxmb3JtZW5jdHlwZToxLGZyYW1lYm9yZGVyOjEsaGVpZ2h0OjEsaGlkZGVuOjEsaHJlZjo0LGhyZWZsYW5nOjEsCmlkOjEwLGluZXJ0OjEsaXNtYXA6MSxpdGVtaWQ6MSxpdGVtcHJvcDoxLGl0ZW1yZWY6MSxpdGVtc2NvcGU6MSxpdGVtdHlwZToxLGxhYmVsOjEsbGFuZzoxLGxpc3Q6MTAsbG9hZGluZzo4LGxvb3A6MSxtYXg6MSxtYXhsZW5ndGg6MSxtZWRpYToxLG1pbjoxLG1pbmxlbmd0aDoxLG11bHRpcGxlOjEsbXV0ZWQ6MSxuYW1lOjEwLG5vbmNlOjEsb3BlbjoxLHBsYWNlaG9sZGVyOjEscGxheXNpbmxpbmU6MSxwb3N0ZXI6MSxwcmVsb2FkOjEscmVsOjEscmVxdWlyZWQ6MSxyZXZlcnNlZDoxLHJvbGU6MSxyb3dzOjEscm93c3BhbjoxLHNlbGVjdGVkOjEsc2hhcGU6MSxzaXplOjEsc2l6ZXM6MSxzbG90OjEsc3BhbjoxLHNwZWxsY2hlY2s6MSxzcmM6NCxzcmNzZXQ6MTIsc3RhcnQ6MSxzdGVwOjEsc3R5bGU6NSxzdW1tYXJ5OjEsdGFiaW5kZXg6MSx0YXJnZXQ6OCx0aXRsZToxLHRyYW5zbGF0ZToxLHR5cGU6MSx1c2VtYXA6MSx2YWxpZ246MSx2YWx1ZToxLHdpZHRoOjEsd3JhcDoxfSxmQj0Ke2E6e2hyZWY6W3trYTozfV19LGFyZWE6e2hyZWY6W3trYTozfV19LGF1ZGlvOntzcmM6W3trYTozfV19LGJ1dHRvbjp7Zm9ybWFjdGlvbjpbe2thOjN9XSxmb3JtbWV0aG9kOlt7a2E6MX1dfSxmb3JtOnthY3Rpb246W3trYTozfV0sbWV0aG9kOlt7a2E6MX1dfSxpZnJhbWU6e3NyY2RvYzpbe2thOjJ9XX0saW1nOntzcmM6W3trYTozfV0sc3Jjc2V0Olt7a2E6MTF9XX0saW5wdXQ6e2FjY2VwdDpbe2thOjF9XSxmb3JtYWN0aW9uOlt7a2E6M31dLGZvcm1tZXRob2Q6W3trYToxfV0scGF0dGVybjpbe2thOjF9XSxyZWFkb25seTpbe2thOjF9XSxzcmM6W3trYTozfV19LGxpbms6e2hyZWY6W3trYTozLGliOiJyZWwiLG5iOiJhbHRlcm5hdGUifSx7a2E6MyxpYjoicmVsIixuYjoiYXV0aG9yIn0se2thOjMsaWI6InJlbCIsbmI6ImJvb2ttYXJrIn0se2thOjMsaWI6InJlbCIsbmI6ImNhbm9uaWNhbCJ9LHtrYTozLGliOiJyZWwiLG5iOiJjaXRlIn0se2thOjMsaWI6InJlbCIsbmI6ImhlbHAifSwKe2thOjMsaWI6InJlbCIsbmI6Imljb24ifSx7a2E6MyxpYjoicmVsIixuYjoibGljZW5zZSJ9LHtrYTozLGliOiJyZWwiLG5iOiJuZXh0In0se2thOjMsaWI6InJlbCIsbmI6InByZWZldGNoIn0se2thOjMsaWI6InJlbCIsbmI6ImRucy1wcmVmZXRjaCJ9LHtrYTozLGliOiJyZWwiLG5iOiJwcmVyZW5kZXIifSx7a2E6MyxpYjoicmVsIixuYjoicHJlY29ubmVjdCJ9LHtrYTozLGliOiJyZWwiLG5iOiJwcmVsb2FkIn0se2thOjMsaWI6InJlbCIsbmI6InByZXYifSx7a2E6MyxpYjoicmVsIixuYjoic2VhcmNoIn0se2thOjMsaWI6InJlbCIsbmI6InN1YnJlc291cmNlIn1dfSxzY3JpcHQ6e2RlZmVyOlt7a2E6MX1dfSxzb3VyY2U6e3NyYzpbe2thOjN9XSxzcmNzZXQ6W3trYToxMX1dfSx0ZXh0YXJlYTp7cmVhZG9ubHk6W3trYToxfV19LHZpZGVvOntzcmM6W3trYTozfV19fTt2YXIgSmJhPS9eKD8hamF2YXNjcmlwdDopKD86W2EtejAtOSsuLV0rOnxbXiY6XC8/I10qKD86W1wvPyNdfCQpKS9pLGliYT17WzFdOm51bGwsWzJdOihhLGIpPT5iIGluc3RhbmNlb2YgXy5mYj9fLnlBKGIpOl8uRnEudG9TdHJpbmcoKSxbM106KGEsYik9Pl8uWGEoYik/Xy5ZYShiKTpKYmEudGVzdChTdHJpbmcoYikpP1N0cmluZyhiKTpfLkZxLnRvU3RyaW5nKCksWzRdOihhLGIpPT5iIGluc3RhbmNlb2YgXy5TYT9fLlVhKGIpOl8uRnEudG9TdHJpbmcoKSxbNV06KGEsYik9PlN0cmluZyhiKSxbN106bnVsbCxbOF06bnVsbCxbMTBdOm51bGx9O18uS2JhPVN5bWJvbCgibmMiKTt2YXIgbkI9Xy5MQSgpO3ZhciBLQz1TQSgpLHFiYT1LQ1tfLlJBLmRlZmF1bHRdLHlCPUtDLnN0eWxlLHhCPVsiZm9jdXNpbiIsImZvY3Vzb3V0Il0sQkI9U3ltYm9sKCJvYyIpLENCPVN5bWJvbCgicGMiKSxyYmE9ImFubm90YXRpb24teG1sIGNvbG9yLXByb2ZpbGUgZm9udC1mYWNlIGZvbnQtZmFjZS1zcmMgZm9udC1mYWNlLXVyaSBmb250LWZhY2UtZm9ybWF0IGZvbnQtZmFjZS1uYW1lIG1pc3NpbmctZ2x5cGgiLnNwbGl0KCIgIik7dmFyIEpCO0pCPUhCO18uV0I9U3ltYm9sKCJ0YyIpO18uTGJhPV8uZHUoIldpekluamVjdGlvbkNvbnRleHRfTW9kZWxSb290RWxlbWVudCIpO18uTWJhPV8uZHUoIldpekluamVjdGlvbkNvbnRleHRfUmVuZGVyZXJEYXRhIik7Xy5OYmE9Xy5kdSgiV2l6SW5qZWN0aW9uQ29udGV4dF9JbmplY3RpbmdDb25zdHJ1Y3RvciIpO18uTUI9Xy5kdSgiV2l6SW5qZWN0aW9uQ29udGV4dF9BcHBDb250ZXh0Iik7Xy5OQj1fLmR1KCJXaXpJbmplY3Rpb25Db250ZXh0X0Rpc3BhdGNoZXIiKTtfLkxDPV8uZHUoIldpekluamVjdGlvbkNvbnRleHRfUm9vdEVsZW1lbnQiKTtfLk9iYT1fLmR1KCJXaXpJbmplY3Rpb25Db250ZXh0X0FzeW5jRGVwcyIpO18uUGJhPV8uZHUoIldpekluamVjdGlvbkNvbnRleHRfT2JqZWN0Q3JlYXRpb25UcmFja2VyIik7Xy5PQj17fTtfLlZCPXtNSzpTQixjTDpTQixsb2c6U0IsUko6VEIsdnk6VEIsZko6KGEsYik9PntiKCl9fTtfLk1DPW51bGw7Xy5tQz1jbGFzcyBleHRlbmRzIG9De2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoYSk7dGhpcy5vPWI7dGhpcy5aZj1bXTt0aGlzLkI9MDt0aGlzLkQ9Xy51dihjPT57dGhpcy5xbD1jO18uWXUoKCk9PntoQyh0aGlzLHRoaXMuZWwpfSl9LF8uS3Uucml8fCEhXy5adCl9b2MoYSl7dmFyIGI9Xy5NQztfLk1DPXRoaXM7dGhpcy5CPTA7dmFyIGM9Xy5rdShfLnp2KSxkPV8uJHQodGhpcy5xbCk7dHJ5e3JldHVybiB0aGlzLm8oYSl9ZmluYWxseXtfLiR0KGQpLF8ua3UoYyksXy5NQz1ifX1nZXQgY29tcG9uZW50TmFtZSgpe3JldHVybiBfLkZBKHRoaXMubyl9fTt2YXIgeGJhO18ubkM9U3ltYm9sKCJDYyIpO3hiYT1jbGFzcyBleHRlbmRzIF8uZEN7Y29uc3RydWN0b3IoYSxiLGMpe3N1cGVyKCk7dGhpcy5raW5kPWE7dGhpcy5wcm9wcz1iO3RoaXMuY2hpbGRyZW49Y31vYygpe3ZhciBhPWtDKHRoaXMua2luZCx0aGlzLnByb3BzLHRoaXMuY2hpbGRyZW4pO2lmKHRoaXMuQ28hPW51bGwpZm9yKGxldCBiIG9mIHRoaXMuQ28pYT1iKGEpO3JldHVybiBhfX07dmFyIHFDPVtdO18ud3U9YT0+e3Rocm93IF8uVXUoRXJyb3IoImJiYCIrYS5kZWJ1Z05hbWUpLDQpO307KGZ1bmN0aW9uKCl7dmFyIGE9Xy5jQjtfLmNCPWI9PnthPy4oYik7emJhKGIpfX0pKCk7dmFyIENiYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYz17fSl7dmFyIGQ9Xy51QygpO3RoaXMubmFtZT1hO3RoaXMuaWQ9ZC5VeSsrO3RoaXMuc2Vzc2lvbklkPWQuc2Vzc2lvbklkO3RoaXMuYXR0cmlidXRlcz1iO3RoaXMuc3RhdHVzPSJTUEFOX1NUQVRVU19VTlNFVCI7dGhpcy5zdGFydFRpbWU9Yy5zdGFydFRpbWU/PygwLF8uZWwpKCk7dGhpcy5qPWMuYWN0aXZlO2lmKGE9dkMoKSl0aGlzLnBhcmVudElkPWEuaWQsYS5jaGlsZHJlbnx8KGEuY2hpbGRyZW49W10pLGEuY2hpbGRyZW4ucHVzaCh0aGlzKTtmb3IobGV0IGUgb2YgZC5wcm9jZXNzb3JzKXRyeXtlLkdtPy4odGhpcyl9Y2F0Y2goZil7Xy5JcChmKX1jLmVuZFRpbWUhPW51bGwmJih0aGlzLmo9ITEsdGhpcy5lbmQoIlNQQU5fU1RBVFVTX09LIixjLmVuZFRpbWUpKX1lbmQoYT0iU1BBTl9TVEFUVVNfT0siLGI9KDAsXy5lbCkoKSl7dmFyIGM9Xy51QygpO3RoaXMuZW5kVGltZT1iO3RoaXMuZHVyYXRpb249dGhpcy5lbmRUaW1lLQp0aGlzLnN0YXJ0VGltZTt0aGlzLnN0YXR1cz1hO3RoaXMuaiE9PSExJiYodkMoKT09PXRoaXM/Yy5zdGFjay5wb3AoKTpfLklwKEVycm9yKCJEY2AiK1N0cmluZyh0aGlzLm5hbWUpKSkpO2ZvcihsZXQgZCBvZiBjLnByb2Nlc3NvcnMpdHJ5e2QubHI/Lih0aGlzKX1jYXRjaChlKXtfLklwKGUpfX1EZShhKXtPYmplY3QuYXNzaWduKHRoaXMuYXR0cmlidXRlcyxhKX19LHhDPXtlbmQoKXt9LERlKCl7fX0sdEMsQmJhPXtXeigpe3JldHVybiBfLnVDKCkuc3RhY2tbMF19fTt2YXIgQkM9dm9pZCAwO3ZhciBJYmE9IklET00gaW50ZXJvcCBzZXR0ZXIgdW5kZWZpbmVkLiBLZXk6IixIYmE9IkNhbGxiYWNrIGRldGVjdGVkIHRoYXQgd2FzIG5vdCBzZXQgaW4gdGhlIGlkb21Db21wYXQgY2FsbGJhY2tzIG1hcC4gS2V5OiI7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBSYmEsUWJhO1JiYT1mdW5jdGlvbihhKXt2YXIgYj1PYmplY3QuY3JlYXRlKFFiYSk7Yi5UZz1hO2E9KCk9PntfLnJ1KGIpO18ucHUoYik7aWYoYi52YWx1ZT09PV8uSXYpdGhyb3cgYi5lcnJvcjtyZXR1cm4gYi52YWx1ZX07YVtfLlp1XT1iO3JldHVybiBhfTtfLk49ZnVuY3Rpb24oYSxiLGM9IiIpe3ZhciBkPVJiYShhKTthPWRbXy5adV07YS5kZWJ1Z05hbWU9Xy5ldShiPy5kZWJ1Z05hbWUsYywiW2NvbXB1dGVkXSIpO2I/LmVxdWFscyE9bnVsbCYmKGEuZXF1YWw9Yi5lcXVhbHMpO3JldHVybiBkfTsKUWJhPXsuLi5fLlh1LHZhbHVlOl8uR3YsUGI6ITAsZXJyb3I6bnVsbCxlcXVhbDpfLml1LGtpbmQ6ImNvbXB1dGVkIixYbShhKXtyZXR1cm4gYS52YWx1ZT09PV8uR3Z8fGEudmFsdWU9PT1fLkh2fSxZbShhKXtpZihhLnZhbHVlPT09Xy5Idil0aHJvdyBFcnJvcigiaCIpO3ZhciBiPWEudmFsdWU7YS52YWx1ZT1fLkh2O3ZhciBjPV8udHUoYSksZD0hMTt0cnl7dmFyIGU9YS5UZygpO18ua3UobnVsbCk7ZD1iIT09Xy5HdiYmYiE9PV8uSXYmJmUhPT1fLkl2JiZhLmVxdWFsKGIsZSl9Y2F0Y2goZil7ZT1fLkl2LGEuZXJyb3I9Zn1maW5hbGx5e18ua3UoYyksYSYmXy52dShhKX1kP2EudmFsdWU9YjooYS52YWx1ZT1lLGEudmVyc2lvbisrKX19Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgU2JhO18uTkM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4oKT0+e3ZhciBjPWEoKTtpZighYyl7bGV0IGQ9RXJyb3IoIk9jYCIrYik7UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoZCwyLGIpO30pfXJldHVybiBjfX07Xy5PPWZ1bmN0aW9uKGEpe3JldHVybiBTYmEoYSl9OwpTYmE9ZnVuY3Rpb24oYSl7aWYoYS5BPT09dm9pZCAwKXJldHVybiBhLlc/LigpO2lmKHR5cGVvZiBhLkEhPT0iZnVuY3Rpb24iKXtsZXQgZT1hLnRoZW4sZj1hLlcsaD1hLkE7cmV0dXJuIGg/ZShoKTpmPy4oKX12YXIgYj1hLkEsYz1fLk4oKCk9PiEhYigpLHZvaWQgMCwiQmpRUlEiKSxkPV8uTkMoYiwiSWYiKTtyZXR1cm4gXy5YQigoKT0+e3ZhciBlPWMoKSxmO18udXYoKCk9Pnt2YXIgaD1fLmt1KF8uenYpO3RyeXtmPV8uZkMoZT9hLnRoZW4oZCk6YS5XPy4oKSl9ZmluYWxseXtfLmt1KGgpfX0sITApO3JldHVybiBmfSx7ZGVidWdOYW1lOmEuZGVidWdJbnN0YW5jZT8/IlJsRHVkZCIsenA6YS50aGVuLFdlOiEwfSl9O18uV0M9bmV3IE1hcDtfLlhDPVN5bWJvbCgiTmMiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5rRz1mdW5jdGlvbihhKXt2YXIgYj1fLkNBKDEpO2lmKCgwLF8ubHYpKGIpKXRocm93IEVycm9yKCJpYiIpO3JldHVybiBfLmh1KGEsYil9O18ubUc9ZnVuY3Rpb24oKXtyZXR1cm4gXy5adD9fLmtHKF8ubEcpOnZvaWQgMH07Xy5mZGE9U3ltYm9sKCIkYyIpO18uZ2RhPVN5bWJvbCgiYWQiKTtfLmxHPV8uZ3Uoe2RlZmF1bHRWYWx1ZTp2b2lkIDB9LCJ5RHA1T2MiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGhjYTtfLm5FPWZ1bmN0aW9uKGEsYil7YT1fLnB2KGhjYSxhLGIpO18uZnYoYSl9O2hjYT17Li4uXy4kdixlZmZlY3RUeXBlOl8uZHZ9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLm9IPWZ1bmN0aW9uKGEsYil7YT1fLiR0KGEpO3RyeXtfLkVBKGIpfWZpbmFsbHl7Xy4kdChhKX19Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLm9FPWZ1bmN0aW9uKCl7aWYoXy5IQSgpKXRocm93IEVycm9yKCJCYyIpO3JldHVybiBfLk1DfTtfLnBFPWZ1bmN0aW9uKGEpe3ZhciBiPV8ub0UoKTtpZihiPT1udWxsKXRocm93IEVycm9yKCJUYyIpO3ZhciBjPWIuQisrO2IuWmZ8fChiLlpmPVtdKTt2YXIgZD1iLlpmO2RbY118fChkW2NdPXtrZXk6YSxob3N0OmJ9KTtpZihhIT09ZFtjXS5rZXkpdGhyb3cgRXJyb3IoIlNjYCIrKGIuaj9iLmo/Lm5hbWU6YiBpbnN0YW5jZW9mIF8ubUM/Xy5GQShiLm8pOmA8JHtiLmVsLnRhZ05hbWUudG9Mb3dlckNhc2UoKX0+YCkpO3JldHVybiBkW2NdfTtfLnFFPWZ1bmN0aW9uKGEsYil7cmV0dXJuIWF8fGEubGVuZ3RoIT09Yj8ubGVuZ3RofHxhLnNvbWUoKGMsZCk9PmMhPT1iW2RdKX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBpY2EsdEUsamNhLHdFO2ljYT1mdW5jdGlvbihhKXt2YXIgYj1udWxsLGMsZD17Q2s6bnVsbCxnZXQgdmFsdWUoKXtkLnZMPy4oKTtyZXR1cm4gZC5Da30sdm86ITEsa3U6ITEsc2V0IHZhbHVlKGUpe2Qud0w/LihlKTtkLkNrPWU7ZC52bz0hMH0sbXooZSl7YyYmZSE9PWMmJihjLl9kaXNwb3NlUmVmPXZvaWQgMCxiPy4oKSk7Yz1lO2I9YShlKXx8bnVsbH0sdXooKXtiPy4oKTtiPWQudmFsdWU9bnVsbH0sW18uTXZdOiEwfTtyZXR1cm4gZH07Xy5zRT1mdW5jdGlvbihhKXt2YXIgYj1bXTtpZihfLkhBKCkpcmV0dXJuIGEoKTt2YXIgYz1fLnBFKCJ1c2VNZW1vSW50ZXJuYWwiKTtfLnFFKGMubWwsYikmJihjLm1sPWIsYy52YWx1ZT1hKCkpO3JldHVybiBjLnZhbHVlfTtfLnVFPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRFKGEsITEsYil9O18udkU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdEUoYSwhMCxiKX07CnRFPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5IQSgpP3dFKGEsYixjKTpqY2EoYSxiLGMpfTtqY2E9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBfLnNFKCgpPT53RShhLGIsYykpfTt3RT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Xy5adCxlPWljYShmPT57ZS52YWx1ZT1mO3ZhciBoPSgoKT0+e3ZhciBrPV8ua3UobnVsbCk7dHJ5e3JldHVybiBjPy4oZil9Y2F0Y2gobCl7Xy5vdihsLGQpfWZpbmFsbHl7Xy5rdShrKX19KSgpO3JldHVybigpPT57aD8uKCl9fSk7ZS5qdT1hO2UubHU9YjtlLnZKPSFfLkhBKCk7cmV0dXJuIGV9O18uQkU9U3ltYm9sKCJXYyIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLm1GPXtWYjohMSxzdGF0ZToidmlzaWJsZSJ9O18ubkY9e1ZiOiExLHN0YXRlOiJoaWRkZW4ifTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5wSD1mdW5jdGlvbihhKXt2YXIgYj1fLkNBKCk7cmV0dXJuIGM9Pnt2YXIgZD1hLm9ic2VydmVyPz9fLnkoKS5yZXNvbHZlKF8uTHgpLGU9Yy5qZj8/YyxmPVtdO2EuZWImJmYucHVzaChkLm9ic2VydmUoYywoKT0+e18ub0goYiwoKT0+e2EuTmIoITAsYyl9KX0sYS5lYikpO2EuTmMmJmYucHVzaChkLm9ic2VydmUoYywoKT0+e18ub0goYiwoKT0+e2EuTmIoITEsYyl9KX0sYS5OYykpO2EuTGgmJmEuTGomJmYucHVzaChkLm9ic2VydmUoYywoKT0+e18ub0goYiwoKT0+e2EuTGooKX0pfSxhLkxoKSk7ZS52aXNpYmlsaXR5TW9uaXRvcktleXM9KGUudmlzaWJpbGl0eU1vbml0b3JLZXlzPz9bXSkuY29uY2F0KGYpfX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBQRDtfLlJEPWZ1bmN0aW9uKGEpe3ZhciBiPV8uQihhLF8uT0QpO2lmKGIpcmV0dXJuIGI7aWYoKGI9Xy5CKGEsV2JhKSkmJmIuY29tbWFuZHMpcmV0dXJuIFBEKGIuY29tbWFuZHMpO2lmKChiPV8uQihhLFhiYSkpJiZiLmNvbW1hbmRzKXJldHVybiBQRChiLmNvbW1hbmRzKTtpZigoYT1fLkIoYSxZYmEpKSYmYS5pZGVudGlmaWVyJiZhLmNvbW1hbmQmJihRRHx8KFFEPVtdKSwhUUQuaW5jbHVkZXMoYS5pZGVudGlmaWVyKSkpcmV0dXJuIFFELnB1c2goYS5pZGVudGlmaWVyKSxfLkIoYS5jb21tYW5kLF8uT0QpfTtQRD1mdW5jdGlvbihhKXtpZihhLmxlbmd0aCE9PTApe3ZhciBiPVtdO2ZvcihsZXQgYyBvZiBhKShhPV8uUkQoYykpJiZiLnB1c2goYSk7cmV0dXJue2NvbW1hbmRFeGVjdXRvckNvbW1hbmQ6e2NvbW1hbmRzOmJ9fX19O18uU0Q9bmV3IF8uSSgiY29tbWFuZEV4ZWN1dG9yQ29tbWFuZCIpO18uT0Q9bmV3IF8uSSgiaW5uZXJ0dWJlQ29tbWFuZCIpO3ZhciBXYmE9bmV3IF8uSSgicGFyYWxsZWxDb21tYW5kIik7dmFyIFliYT1uZXcgXy5JKCJwZXJmb3JtT25jZUNvbW1hbmQiKTt2YXIgWGJhPW5ldyBfLkkoInNlcmlhbENvbW1hbmQiKTt2YXIgUUQ9dm9pZCAwOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlREPW5ldyBfLkkoInJlZWxXYXRjaEVuZHBvaW50Iik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uVUQ9bmV3IF8uVnMoIkNPTU1BTkRfSEFORExFUl9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlZEPW5ldyBfLkkoInVybEVuZHBvaW50Iik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBaYmEsZGNhLCRiYSxlY2E7Xy5XRD1mdW5jdGlvbihhKXt0cnl7cmV0dXJuIGEoKX1jYXRjaChiKXtfLklwKGIpfX07Xy5ZRD1mdW5jdGlvbihhLGIsYyl7cmV0dXJue2Zvcm06e2N1cnJlbnREYXRhOl8uWEQ/LnJlc3BvbnNlPz97fSxzb3VyY2VEYXRhOmEsZXZlbnQ6Yj8uZXZlbnQsY2xpY2tlZFZpc3VhbEVsZW1lbnQ6Yj8uY2xpY2tlZFZpc3VhbEVsZW1lbnQsaW1wbGljaXRHZXN0dXJlVHlwZTpiPy5pbXBsaWNpdEdlc3R1cmVUeXBlLGF1dG9uYXY6Yj8uYXV0b25hdixCZDpiPy5CZH0sbWQ6Y319OwpfLmJFPWZ1bmN0aW9uKGEpe3ZhciBiPWEuaHYsYz1hLnV4LGQ9YS5iaCxlPWEuSWQsZj1hLnFkLGg9YS5BbyxrPWEuaW5uZXJ0dWJlQ29tbWFuZHx8Xy5SRChkKTtpZihrKXthPXt9O3ZhciB7UnE6bCxocmVmOm19PV8uWkQoayk7bCYmbT8oYS5ocmVmPW0sWmJhKGEsbCxtLGIpLCRiYShhLGwpLGYmJihhLnFkPSEwKSk6KGEucm9sZT0iYnV0dG9uIixhLnRhYmluZGV4PSIwIik7Xy5CKGssYWNhKSYmKGEuYXJpYUhhc1BvcHVwPSEwKTtlfHwoYS5vbmNsaWNrPW49PntsJiZtfHxuLnByZXZlbnREZWZhdWx0KCk7Xy4kRChrKTt2YXIgcD17Li4uXy5ZRChrLHtldmVudDpufSksLi4uaH07bi5wcmV2ZW50RGVmYXVsdCgpO18uYUUoayxwKTtuLnN0b3BQcm9wYWdhdGlvbigpfSxsJiZtfHwoYS5vbmtleWRvd249bj0+e2lmKG4ua2V5PT09IkVudGVyInx8bi5rZXk9PT0iICIpbi5zdG9wUHJvcGFnYXRpb24oKSxuLnByZXZlbnREZWZhdWx0KCksbi5jdXJyZW50VGFyZ2V0LmNsaWNrKCl9KSk7CnJldHVybnsuLi5jLC4uLmF9fX07Xy5aRD1mdW5jdGlvbihhKXthPV8uQihhLF8uU0QpPy5jb21tYW5kc3x8W2FdO2ZvcihsZXQgYiBvZiBhKWlmKGE9Xy5CKGI/LmNvbW1hbmRNZXRhZGF0YSxfLnp3KT8udXJsLF8ueCgid2ViX3JlbW92ZV93ZWJfbmF2aWdhdGlvbl9lbmRwb2ludF9kYXRhIil8fChhPWF8fF8uQihiLGJjYSk/LnVybCksYSYmYSE9PSIvc2VydmljZV9hamF4Iil7bGV0IGM9Xy5iYihhLGNjYSk7aWYoYylyZXR1cm4gYT1fLllhKGMpLHtScTpiLGhyZWY6YX07Xy5JcChuZXcgXy5YaigiQXR0cmlidXRlZFN0cmluZyBVUkwgY291bGQgbm90IGJlIHNhbml0aXplZCIsYSkpfXJldHVybnt9fTsKWmJhPWZ1bmN0aW9uKGEsYixjLGQpe2M9IV8uZmooYyk7aWYoXy5CKGIsXy5jRSk/Lm5vZm9sbG93fHxfLkIoYixfLkF3KT8ubm9mb2xsb3d8fF8uQihiLF8uVkQpPy5ub2ZvbGxvd3x8Xy5CKGIsXy5URCk/Lm5vZm9sbG93fHxjKWEucmVsPSJub2ZvbGxvdyI7YS50YXJnZXQ9ZGNhKGIsZCl9O2RjYT1mdW5jdGlvbihhLGI9IiIpe3JldHVybiBfLkIoYSxfLlZEKT8udGFyZ2V0PT09IlRBUkdFVF9ORVdfV0lORE9XIj8iX2JsYW5rIjpifTskYmE9ZnVuY3Rpb24oYSxiKXtiLmNsaWNrVHJhY2tpbmdQYXJhbXMmJihhLnBhcmFtcz17aXRjdDpiLmNsaWNrVHJhY2tpbmdQYXJhbXN9KTthLm9ucG9pbnRlcmRvd249Yz0+e2VjYShjLGIpfTthLm51PWJ9OwpfLiREPWZ1bmN0aW9uKGEpeyhhLmxvZ2dpbmdVcmxzfHxbXSkuZm9yRWFjaChiPT57dmFyIGM9Yi5iYXNlVXJsO2IuYXR0cmlidXRpb25TcmNNb2RlPT09IkFUVFJJQlVUSU9OX1NSQ19NT0RFX1hIUl9PUFRJT04iPyhjPWRvY3VtZW50LmZlYXR1cmVQb2xpY3k/LmFsbG93ZWRGZWF0dXJlcygpLmluY2x1ZGVzKCJhdHRyaWJ1dGlvbi1yZXBvcnRpbmciKT9jKyImbmlzPTYiOmMrIiZuaXM9NSIsXy5hbihjLHZvaWQgMCx2b2lkIDAsdm9pZCAwLCIiLCEwLCEwKSk6Xy5hbihjKX0pfTtlY2E9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmN1cnJlbnRUYXJnZXQ7YT1fLldEKCgpPT5jLmhyZWYpO2I9Yi5jbGlja1RyYWNraW5nUGFyYW1zP3tpdGN0OmIuY2xpY2tUcmFja2luZ1BhcmFtc306e307YSYmXy51eihhLGIsOCwhMCl9O18uZEU9ZnVuY3Rpb24oYSxiKXsoYT1fLlJEKGEpKSYmXy5hRShhLGIpfTsKXy5hRT1mdW5jdGlvbihhLGIpe18uWXQoXy5VRCxjPT57Yj9jLnJlc29sdmVDb21tYW5kKGEsYik6Yy5yZXNvbHZlQ29tbWFuZChhKX0pfTtfLmNFPW5ldyBfLkkoImJyb3dzZUVuZHBvaW50Iik7dmFyIGJjYT1uZXcgXy5JKCJ3ZWJOYXZpZ2F0aW9uRW5kcG9pbnREYXRhIik7dmFyIGFjYT1uZXcgXy5JKCJtb2RhbEVuZHBvaW50Iik7Xy5mY2E9bmV3IF8uSSgidXNlckZlZWRiYWNrRW5kcG9pbnQiKTtfLmVFPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5kYXRhPVtdO3RoaXMuRGY9bnVsbH1wdXNoKGEpe3RoaXMuRGY/dGhpcy5EZihhKTp0aGlzLmRhdGEucHVzaChhKX19O18uWEQ9e307Xy5mRT1fLkooXy5YRCx2b2lkIDAsIlRIUk9PIilbMF07Xy5KKG51bGwsdm9pZCAwLCJjeDRUSWQiKTtfLkoobnVsbCx2b2lkIDAsIlFYYU91ZCIpO18uSigiIix2b2lkIDAsIkRSV085YyIpO18uSihfLnF6KCk/ITE6ITAsdm9pZCAwLCJ2eXp5aWQiKTtfLmdFPW5ldyBfLmVFO3ZhciBjY2E9W18uSXEsXy5KcSxfLktxLF8uTXEsXy5McSxfLkdxLF8uTnEsXy5QcV07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8ucUg9ZnVuY3Rpb24oYSl7aWYoYS5jb21wb3NlZFBhdGgpcmV0dXJuIGEuY29tcG9zZWRQYXRoKCk7aWYoIWEudW8pe2xldCBiPVtdLGM9YS50YXJnZXQ7Zm9yKDtjOyliLnB1c2goYyksYz1jLnBhcmVudE5vZGU7Yi5wdXNoKHdpbmRvdyk7YS51bz1ifXJldHVybiBhLnVvfTtfLnJIPWZ1bmN0aW9uKGEsYixjKXtmb3IobGV0IGQgb2YgYSl7aWYoZD09PWIpYnJlYWs7Zm9yKGxldCBlIG9mIGMpaWYoZC50YWdOYW1lPT09ZXx8ZC5yb2xlPT09ImJ1dHRvbiImJmU9PT0iQlVUVE9OIilyZXR1cm4hMH1yZXR1cm4hMX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBCZGEsQ2RhLERkYSx2SCx3SCxFZGE7QmRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5vYnNlcnZlcj8/Xy55KCkucmVzb2x2ZShfLkx4KTtpZihhKXt2YXIgZD1hLmpmPz9hLGU9W107Yi5lYiYmZS5wdXNoKGMub2JzZXJ2ZShhLCgpPT57Yi5OYighMCxhKX0sYi5lYikpO2IuTmMmJmUucHVzaChjLm9ic2VydmUoYSwoKT0+e2IuTmIoITEsYSl9LGIuTmMpKTtiLkxoJiZiLkxqJiZlLnB1c2goYy5vYnNlcnZlKGEsKCk9PntiLkxqKCl9LGIuTGgpKTtkLnZpc2liaWxpdHlNb25pdG9yS2V5cz0oZC52aXNpYmlsaXR5TW9uaXRvcktleXM/P1tdKS5jb25jYXQoZSl9fTtfLnRIPWZ1bmN0aW9uKGEpe3JldHVybiEhXy5zSChhKX07Xy51SD1mdW5jdGlvbihhLGIsYyxkLGUpe3JldHVybiBmPT57dmFyIGg9Xy5tRygpO18ubkUoKCk9PntpZihmKXtDZGEoZixhKCksZSk7dmFyIGs9RGRhKGYsYSgpLGIsYyxkLGgpO18uWXUoayl9fSwiYWpRWTYiKX19OwpDZGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXZIKGIpLGU9d0goYiksZj1kJiZfLm1GLGg9ZSYmXy5uRjsoZHx8ZSkmJkJkYShhLHtOYjprPT57dmFyIGw9Xy55KCkucmVzb2x2ZShfLlVEKTtrJiZkPyhsLnJlc29sdmVDb21tYW5kKGQse2Zvcm06e2VsZW1lbnQ6Yz9hOnZvaWQgMH0sbWQ6ITB9KSxkPXZIKGIpKTohayYmZSYmKGwucmVzb2x2ZUNvbW1hbmQoZSx7Zm9ybTp7ZWxlbWVudDpjP2E6dm9pZCAwfSxtZDohMH0pLGU9d0goYikpfSxlYjpmLE5jOmh9KX07CkRkYT1mdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGg9bmV3IE1hcDtpZihiPV8uc0goYikpYT1kPy5vblRhcD8udmFsdWV8fGEsYz1FZGEoYixhLGM/Lm9uVGFwLGUsZiksYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYyksaC5zZXQoImNsaWNrIixjKSxfLngoIndlYl9lbmFibGVfYWRkaXRpb25hbF9ldmVudF9saXN0ZW5lcl9mb3JfdGFwX2NvbW1hbmQiKSYmKGM9az0+e3ZhciBsPWEudGFnTmFtZTtsPT09IkJVVFRPTiJ8fGw9PT0iQSJ8fGw9PT0iSU5QVVQifHxrLmtleSE9PSJFbnRlciImJmsua2V5IT09IiAifHxlJiZfLnJIKF8ucUgoayksYSxlKXx8KGsucHJldmVudERlZmF1bHQoKSxhLmNsaWNrKCkpfSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGMpLGguc2V0KCJrZXlkb3duIixjKSk7cmV0dXJuKCk9Pntmb3IobGV0IFtrLGxdb2YgaClhLnJlbW92ZUV2ZW50TGlzdGVuZXIoayxsKX19OwpfLnNIPWZ1bmN0aW9uKGEpe3JldHVybihhPV8uQihhLF8ueEgpPy5vblRhcCkmJl8uUkQoYSl9O3ZIPWZ1bmN0aW9uKGEpe3JldHVybihhPV8uQihhLF8ueEgpPy5vblZpc2libGUpJiZfLlJEKGEpfTt3SD1mdW5jdGlvbihhKXtyZXR1cm4oYT1fLkIoYSxfLnhIKT8ub25IaWRkZW4pJiZfLlJEKGEpfTtfLnlIPWZ1bmN0aW9uKGEpe3JldHVybiBfLlJEKF8uQihhLF8ueEgpPy5vbkhvdmVyU3RhcnQpfTtfLnpIPWZ1bmN0aW9uKGEpe3JldHVybiBfLlJEKF8uQihhLF8ueEgpPy5vbkhvdmVyRW5kKX07RWRhPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9az0+e18ueSgpLnJlc29sdmUoXy5VRCkucmVzb2x2ZUNvbW1hbmQoYSxrKX0saD1rPT57ZCYmXy5ySChfLnFIKGspLGIsZCl8fGYoay50YXJnZXQ/e2Zvcm06e2VsZW1lbnQ6ay50YXJnZXQsc291cmNlRGF0YTphLG11dGF0aW9uQ29udGV4dDplfX06dm9pZCAwKX07YyYmKGg9az0+e2MoayxmKX0pO3JldHVybiBofTtfLnhIPW5ldyBfLkkoImNvbW1hbmRDb250ZXh0Iik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uakg9bmV3IF8uVnMoIktFWV9NQU5BR0VSX1RPS0VOIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uUD1mdW5jdGlvbiguLi5hKXt2YXIgYj0hMDtmb3IobGV0IGMgb2YgYSlpZih0eXBlb2YgYyE9PSJzdHJpbmciKXtiPSExO2JyZWFrfXJldHVybiBiP2Euam9pbigiICIpLnRyaW0oKXx8dm9pZCAwOigpPT57dmFyIGM9IiI7Zm9yKGxldCBkIG9mIGEpaWYodHlwZW9mIGQ9PT0iZnVuY3Rpb24iJiYoZD1kKCkpLGQpaWYodHlwZW9mIGQ9PT0ic3RyaW5nIiljKz0iICIrZDtlbHNlIGZvcihsZXQgZSBpbiBkKXtpZighZC5oYXNPd25Qcm9wZXJ0eShlKSljb250aW51ZTtsZXQgZj1kW2VdO3R5cGVvZiBmPT09ImZ1bmN0aW9uIiYmKGY9ZigpKTtmJiYoYys9IiAiK2UpfWM9Yy50cmltKCl8fHZvaWQgMDtyZXR1cm4gXy5CdihjKX19Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIga0g7a0g9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9PmEoKT9hKCk6dm9pZCAwfTsKXy5uSD1fLkwoYT0+e3ZhciBiPV8udUUoImEiLGEucmVmKSxjPWEudWM/YS51YzpfLk4oKCk9Pl8uYkUoe2lubmVydHViZUNvbW1hbmQ6Xy5SRChhLmNvbW1hbmQ/LigpKT8/YS5jb21tYW5kPy4oKSxJZDphLklkPy4oKSxodjphLnRhcmdldD8uKCl9KXx8e30sdm9pZCAwLCJUQXZ6MCIpO3JldHVybiBfLksoImEiLHtlbDpiLGhyZWY6KCk9PmMoKS5ocmVmLHJlbDooKT0+YygpLnJlbCxjbGFzczooKT0+YygpLmNsYXNzTmFtZT8/YS5jbGFzc05hbWU/LigpLHN0eWxlOigpPT57aWYoYS5zdHlsZT8uKCkpcmV0dXJuIGEuc3R5bGUoKTtpZihhLmRpc2FibGVkPy4oKSlyZXR1cm4icG9pbnRlci1ldmVudHM6bm9uZSJ9LCJhcmlhLWhhc3BvcHVwIjooKT0+ISFjKCkuYXJpYUhhc1BvcHVwLCJmb3JjZS1uZXctc3RhdGUiOmtIKCgpPT5jKCkucWQpLHRpdGxlOmtIKCgpPT5jKCkudGl0bGU/P2EudGl0bGU/LigpKSxyb2xlOmtIKCgpPT5hLnJvbGU/LigpfHxjKCkucm9sZSksdGFyZ2V0OmtIKCgpPT4KYygpLnRhcmdldCksZGlyOmtIKCgpPT5hLmRpcj8uKCl8fGMoKS5kaXIpLHRhYmluZGV4OigpPT5jKCkudGFiaW5kZXghPT12b2lkIDA/TnVtYmVyKGMoKS50YWJpbmRleCk6YS50YWJJbmRleD8uKCksImFyaWEtaGlkZGVuIjooKT0+YygpLmFyaWFIaWRkZW4/P2EuYXJpYUhpZGRlbj8uKCksImFyaWEtbGFiZWwiOigpPT5jKCkuYXJpYUxhYmVsPz9hLmFyaWFMYWJlbD8uKCksImFyaWEtY3VycmVudCI6YS5hcmlhQ3VycmVudCwiYXJpYS1kaXNhYmxlZCI6YS5kaXNhYmxlZCwiYXJpYS1leHBhbmRlZCI6YS5hcmlhRXhwYW5kZWQsImFyaWEtbGFiZWxsZWRieSI6YS5IbywiYXJpYS1kZXNjcmliZWRieSI6YS5IZSwiYXJpYS1zZWxlY3RlZCI6YS5hcmlhU2VsZWN0ZWQsInRhYi1pZGVudGlmaWVyIjphLnRhYklkZW50aWZpZXIsIm9uOnBvaW50ZXJkb3duIjpmdW5jdGlvbihkKXtjKCkub25wb2ludGVyZG93bj8uKGQpfSwib246Y2xpY2siOmZ1bmN0aW9uKGQpe2MoKS5vbmNsaWNrPy4oZCk7CmEub25DbGljaz8uKGQpfSwib246Zm9jdXNpbiI6YS5keiwib246Zm9jdXNvdXQiOmEuZXosIm9uOm1vdXNlZW50ZXIiOmZ1bmN0aW9uKGQpe2Eub25Ib3Zlcj8uKGQpO2EuaXo/LihkKX0sIm9uOm1vdXNlbGVhdmUiOmZ1bmN0aW9uKGQpe2Euano/LihkKX0sIm9uOmtleWRvd24iOmZ1bmN0aW9uKGQpe2MoKS5vbmtleWRvd24/LihkKX19LGEuY2hpbGRyZW4pfSwidCIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlZDPV8uTCgoe2NvbW1hbmQ6YSxyZW5kZXJlckNvbnRleHQ6YixjaGlsZHJlbjpjLGNsYXNzTmFtZTpkLFp2OmUsc3R5bGU6ZixvbkNsaWNrOmgsYXJpYUN1cnJlbnQ6ayxIZTpsLGFyaWFIaWRkZW46bSxhcmlhTGFiZWw6bixIbzpwLGFyaWFTZWxlY3RlZDpyLGRpc2FibGVkOnQsZGlyOnYsdGFiSW5kZXg6eix0YXJnZXQ6RSx0aXRsZTpBLHRvZ2dsZWFibGU6Rix0b2dnbGVkOkN9KT0+e2Z1bmN0aW9uIEcobWEpe3ZhciB0YT1fLnNIKGI/LigpKT8/YT8uKCk7aWYodGEpe2xldCBUPW1hLnRhcmdldD97Zm9ybTp7ZWxlbWVudDptYS50YXJnZXQsc291cmNlRGF0YTp0YSxtdXRhdGlvbkNvbnRleHQ6VX19OnZvaWQgMDtfLnkoKS5yZXNvbHZlKF8uVUQpLnJlc29sdmVDb21tYW5kKHRhLFQpfWg/LihtYSl9ZnVuY3Rpb24gRCgpe29hKFM/LlhlKCk/PyExKX1mdW5jdGlvbiBIKCl7b2EoITEpfWZ1bmN0aW9uIFIoKXt2YXIgbWE9Xy55SChiPy4oKSk7bWEmJl8ueSgpLnJlc29sdmUoXy5VRCkucmVzb2x2ZUNvbW1hbmQobWEpfQpmdW5jdGlvbiBNKCl7dmFyIG1hPV8uekgoYj8uKCkpO21hJiZfLnkoKS5yZXNvbHZlKF8uVUQpLnJlc29sdmVDb21tYW5kKG1hKX12YXIgUz1fLnkoKS5yZXNvbHZlKF8uSW4oXy5qSCkpLFtZLHBhXT1fLkooITEsdm9pZCAwLCJUTkxKRWMiKSxvYT1wYSxVPV8ubUcoKSxoYT0oKT0+Rj8uKCk/Qz8uKCk6dm9pZCAwO3JldHVybiBfLksoXy5PLHtBOmZ1bmN0aW9uKCl7dmFyIG1hPV8uc0goYj8uKCkpPz9hPy4oKSx0YTtpZih0YT1tYSl7bGV0IHtScTpULGhyZWY6YmF9PV8uWkQobWEpO3RhPSEoIVR8fCFiYSl9cmV0dXJuIHRhfSx0aGVuOigpPT5fLksoXy5uSCx7Y29tbWFuZDphLHN0eWxlOmYsSGU6bCxhcmlhSGlkZGVuOm0sYXJpYUxhYmVsOm4sSG86cCxhcmlhU2VsZWN0ZWQ6cixkaXNhYmxlZDp0LGRpcjp2LHRhYkluZGV4OnosdGFyZ2V0OkUsdGl0bGU6QSxvbkNsaWNrOmgsY2xhc3NOYW1lOl8uUCgieXRCdXR0b25PckFuY2hvckhvc3QiLCJ5dEJ1dHRvbk9yQW5jaG9yQW5jaG9yIiwKZCwoKT0+WSgpP2U/LigpOiIiKSxkejpELGV6OkgsaXo6UixqejpNLGFyaWFDdXJyZW50OigpPT5rPy4oKT8/aGEoKX0sYyksVzooKT0+Xy5LKCJidXR0b24iLHsib246Y2xpY2siOkcsIm9uOmZvY3VzaW4iOkQsIm9uOmZvY3Vzb3V0IjpILCJvbjptb3VzZWVudGVyIjpSLCJvbjptb3VzZWxlYXZlIjpNLGNsYXNzOl8uUCgieXRCdXR0b25PckFuY2hvckhvc3QiLCJ5dEJ1dHRvbk9yQW5jaG9yQnV0dG9uIixkLCgpPT5ZKCk/ZT8uKCk6IiIpLHN0eWxlOmYsImFyaWEtZGVzY3JpYmVkYnkiOmwsImFyaWEtaGlkZGVuIjptLCJhcmlhLWxhYmVsIjpuLCJhcmlhLWxhYmVsbGVkYnkiOnAsImFyaWEtcHJlc3NlZCI6aGEsZGlyOnYsZGlzYWJsZWQ6dCx0YWJpbmRleDooKT0+ej8uKCk/PygoXy5Pa3x8Xy5yeigpKSYmXy54KCJ3ZWJfZW5hYmxlX3NhZmFyaV9idXR0b25fdGFiaW5kZXhfZml4Iik/MDp2b2lkIDApLHRpdGxlOkF9LGMpfSl9LCJ2Iik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoIlpRS3gxIik7CgpfLlhkKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uSUU9ZnVuY3Rpb24oLi4uYSl7cmV0dXJuKCk9Pnt2YXIgYj0iIjtmb3IobGV0IGMgb2YgYSl7bGV0IGQ9dHlwZW9mIGM9PT0iZnVuY3Rpb24iP2MoKTpjO2lmKGQpZm9yKGxldCBlIGluIGQpe2xldCBmPWRbZV07Zm9yKDt0eXBlb2YgZj09PSJmdW5jdGlvbiI7KWY9ZigpO2YhPT12b2lkIDAmJmYhPT1udWxsJiYoYis9YDsgJHtlfTogJHtmfWApfX1yZXR1cm4gYi5sZW5ndGg+MD9fLkJ2KGIuc2xpY2UoMikpOl8uQnYoKX19Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnJGPWZ1bmN0aW9uKC4uLmEpe3JldHVybiBfLnZFKF8uQkUsYj0+e3ZhciBjPWEubWFwKGQ9PmQ/LihiKSk7cmV0dXJuKCk9PnZvaWQgYy5mb3JFYWNoKGQ9PnZvaWQgZD8uKCkpfSl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmhLPWZ1bmN0aW9uKCl7Z0t8fChnSz1uZXcgTGVhKTtyZXR1cm4gZ0t9O3ZhciBNZWE9Xy5MKGE9PntmdW5jdGlvbiBiKGhhKXtpZihoYSl7dmFyIG1hPU0uZ2V0KGhhKTttYSYmKG1hLmNhbmNlbCgpLE0uZGVsZXRlKGhhKSk7Zm9yKGxldCB0YSBvZiBoYS5nZXRBbmltYXRpb25zKCkpdGEuY2FuY2VsKCl9fWZ1bmN0aW9uIGMoaGEsbWEsdGEpe21hPV8uamYuR2EobWEsMyx0YSk7Uy5zZXQoaGEsbWEpfWZ1bmN0aW9uIGQoKXttKCExKTtpZihSKXt2YXIgaGE9UjtSPW51bGw7dmFyIG1hPURhdGUubm93KCktRztjKGhhLCgpPT57Uy5kZWxldGUoaGEpO3ZhciB7d2lkdGg6dGEsaGVpZ2h0OlQsb3BhY2l0eTpiYX09d2luZG93LmdldENvbXB1dGVkU3R5bGUoaGEpLGFhPU51bWJlci5wYXJzZUZsb2F0KHRhKXx8MCxPYT1OdW1iZXIucGFyc2VGbG9hdChUKXx8MCxKYj1OdW1iZXIucGFyc2VGbG9hdChiYSl8fC41O2hhLnN0eWxlLndpZHRoPWAke2FhfXB4YDtoYS5zdHlsZS5oZWlnaHQ9YCR7T2F9cHhgO2hhLnN0eWxlLm9wYWNpdHk9YCR7SmJ9YDtiKGhhKTthYT0KVT8wOjJFMztoYS5zdHlsZS50cmFuc2l0aW9uPWBvcGFjaXR5ICR7YWF9bXMgY3ViaWMtYmV6aWVyKDAuMjUsIDEsIDAuNSwgMSlgO2hhLnN0eWxlLm9wYWNpdHk9aGEub2Zmc2V0V2lkdGg9PT0tMT8iMSI6IjAiO2MoaGEsKCk9PntTLmRlbGV0ZShoYSk7aGEuc3R5bGUuY3NzVGV4dD0iIn0sYWErMTAwKX0sTWF0aC5tYXgoMCwzMDAtbWEpKX19ZnVuY3Rpb24gZSgpe2QoKTtDPW51bGx9dmFyIHtjbGFzc05hbWU6ZixzdHlsZTpofT1fLkRDKGEse2NsYXNzTmFtZToiIixzdHlsZToiZGVmYXVsdCJ9KSxbayxsXT1fLkooITEsdm9pZCAwLCJLYlVUamYiKSxtPWwsW24scF09Xy5KKHZvaWQgMCx2b2lkIDAsIkdlRnZFZiIpLFtyLHRdPV8uSih2b2lkIDAsdm9pZCAwLCJpM2ZkVmUiKSxbdix6XT1fLkoodm9pZCAwLHZvaWQgMCwiTGVkVjRiIiksRT1fLnJGKCksQT1fLnJGKCksRj1fLnJGKCksQz1udWxsLEc9MCxEPTAsSD0hMCxSPW51bGwsTT1uZXcgTWFwLFM9bmV3IE1hcCxZPTAscGE9CjAsb2E9bnVsbCxVPXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXM7Xy5ZdSgoKT0+e2ZvcihsZXQgaGEgb2YgUy52YWx1ZXMoKSlfLmpmLkFhKGhhKTtTLmNsZWFyKCk7YihBLnZhbHVlKTtiKEYudmFsdWUpO29hIT09bnVsbCYmXy5qZi5BYShvYSl9KTtyZXR1cm4gXy5LKCJ5dC1saWdodC10b3VjaC1mZWVkYmFjay1zaGFwZSIse2VsOkUsY2xhc3M6Xy5QKCJ5dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG9zdCIsZix7eXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZVByZXNzZWQ6ayx5dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJPdmVybGF5RGVmYXVsdDooKT0+aCgpPT09ImRlZmF1bHQiLHl0TGlnaHRUb3VjaEZlZWRiYWNrU2hhcGVIb3Zlck92ZXJsYXlJbnZlcnNlOigpPT5oKCk9PT0iaW52ZXJzZSJ9KSwib246cG9pbnRlcmVudGVyIjpmdW5jdGlvbigpe3ZhciBoYT1DPz8oQz1FLnZhbHVlPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKT8/Cm51bGwpO2hhJiZ6KGAkeyhoYS5oZWlnaHR8fDApKjIuNX1weGApfSwib246cG9pbnRlcmRvd24iOmZ1bmN0aW9uKGhhKXt2YXIgbWE9RGF0ZS5ub3coKTtpZighKG1hLUQ8MTAwKSl7RD1tYTttKCEwKTt2YXIgdGE9Qz8/KEM9RS52YWx1ZT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/P251bGwpO2lmKHRhKXt2YXIgVD1oYS5jbGllbnRYLXRhLmxlZnQ7aGE9aGEuY2xpZW50WS10YS50b3A7dmFyIGJhPU1hdGgubWF4KCh0YS53aWR0aHx8MCkqMiwodGEuaGVpZ2h0fHwwKSo4LjUpLGFhPWJhLzQwOCoxNDAwO3RhPUg/QS52YWx1ZTpGLnZhbHVlO0g9IUg7aWYoUj10YSl7dGEuc3R5bGUuY3NzVGV4dD0iIjtiKHRhKTtsZXQgT2E9Uy5nZXQodGEpO09hIT09dm9pZCAwJiYoXy5qZi5BYShPYSksUy5kZWxldGUodGEpKTt0YS5zdHlsZS5sZWZ0PWAke1R9cHhgO3RhLnN0eWxlLnRvcD1gJHtoYX1weGA7VXx8KFQ9bmV3IEtleWZyYW1lRWZmZWN0KHRhLFt7d2lkdGg6IjBweCIsaGVpZ2h0OiIwcHgiLApvcGFjaXR5OiIwLjMwNiJ9LHt3aWR0aDpgJHtiYSouMjV9cHhgLGhlaWdodDpgJHtiYSouMjV9cHhgLG9wYWNpdHk6IjAuNzc0IixvZmZzZXQ6LjI1fSx7d2lkdGg6YCR7YmEqLjZ9cHhgLGhlaWdodDpgJHtiYSouNn1weGAsb3BhY2l0eToiMC44MjgiLG9mZnNldDouNn0se3dpZHRoOmAke2JhfXB4YCxoZWlnaHQ6YCR7YmF9cHhgLG9wYWNpdHk6IjAuOSJ9XSx7ZHVyYXRpb246YWEsZmlsbDoiZm9yd2FyZHMiLGVhc2luZzoiY3ViaWMtYmV6aWVyKDAuMTcsIDAuMTcsIDAuMSwgMSkifSksVD1uZXcgQW5pbWF0aW9uKFQsZG9jdW1lbnQudGltZWxpbmUpLE0uc2V0KHRhLFQpLFQucGxheSgpKX1HPW1hfX19LCJvbjpwb2ludGVydXAiOmQsIm9uOnBvaW50ZXJsZWF2ZSI6ZSwib246cG9pbnRlcmNhbmNlbCI6ZSwib246cG9pbnRlcm1vdmUiOmZ1bmN0aW9uKGhhKXt2YXIgbWE9Qz8/KEM9RS52YWx1ZT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/P251bGwpO21hJiYoWT1oYS5jbGllbnRYLQptYS5sZWZ0LHBhPWhhLmNsaWVudFktbWEudG9wLGsoKSYmKGhhLmNsaWVudFg8bWEubGVmdHx8aGEuY2xpZW50WD5tYS5yaWdodHx8aGEuY2xpZW50WTxtYS50b3B8fGhhLmNsaWVudFk+bWEuYm90dG9tKT9kKCk6b2E9PT1udWxsJiYob2E9Xy5qZi5HYSgoKT0+e29hPW51bGw7cChgJHtZfXB4YCk7dChgJHtwYX1weGApfSwzKSkpfSwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sXy5LKCJkaXYiLHtjbGFzczoieXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZUhvdmVyT3ZlcmxheSJ9KSxfLksoImRpdiIse2NsYXNzOiJ5dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlSG92ZXJMaWdodCIsc3R5bGU6Xy5JRSh7bGVmdDpuLHRvcDpyLHdpZHRoOnYsaGVpZ2h0OnZ9KX0pLF8uSygiZGl2Iix7ZWw6QSxjbGFzczoieXRMaWdodFRvdWNoRmVlZGJhY2tTaGFwZVRvdWNoTGlnaHQifSksXy5LKCJkaXYiLHtlbDpGLGNsYXNzOiJ5dExpZ2h0VG91Y2hGZWVkYmFja1NoYXBlVG91Y2hMaWdodCJ9KSl9LCJhYSIpO3ZhciBMZWE9Y2xhc3MgZXh0ZW5kcyBfLmFle2NvbnN0cnVjdG9yKCl7c3VwZXIoKTt0aGlzLmo9bmV3IE1hcDt2YXIgW2EsYl09Xy5KKFtdLHZvaWQgMCwiSUtmWkJkIik7dGhpcy52PWI7dGhpcy5vPV8uTigoKT0+e3ZhciBjPWEoKTtmb3IobGV0IGQgb2YgYylkLlB5Py4oKTtyZXR1cm4gYy5tYXAoZD0+ZC5lbGVtZW50KX0sdm9pZCAwLCJaTVJ0d2QiKX1sYSgpe2dLPW51bGw7c3VwZXIubGEoKX19LGdLPW51bGw7Xy55RT1fLkwoYT0+e3ZhciBiPV8udkUoXy5CRSksW2MsZF09Xy5KKHt4OjAseTowLG9wYWNpdHk6MCxzaXplOjB9LHZvaWQgMCwiR3dYY0RkIiksZT0oKT0+e2lmKGEuY29uZmlnKCk/LmprKXt2YXIgaD1iLnZhbHVlO2lmKGgpe3ZhciBrPV8uaEsoKS5vO3ZhciBsPWsoKTtpZihsLmxlbmd0aCl7bGV0IHQ9aC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtrPXQubGVmdCt0LndpZHRoLzI7dmFyIG09dC50b3ArdC5oZWlnaHQvMjtsZXQgdj1JbmZpbml0eTt2YXIgbj0wLHA9MDtsZXQgej05Njtmb3IobGV0IEUgb2YgbCl7aWYoRT09PWh8fCFFLmlzQ29ubmVjdGVkfHxFLm9mZnNldFBhcmVudD09PW51bGwpY29udGludWU7bD1FLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGwud2lkdGg9PT0wJiZsLmhlaWdodD09PTApY29udGludWU7bGV0IEE9TWF0aC5tYXgobC5sZWZ0LE1hdGgubWluKGssbC5yaWdodCkpLEY9TWF0aC5tYXgobC50b3AsTWF0aC5taW4obSxsLmJvdHRvbSkpO3ZhciByPQpBLU1hdGgubWF4KHQubGVmdCxNYXRoLm1pbihBLHQucmlnaHQpKTtsZXQgQz1GLU1hdGgubWF4KHQudG9wLE1hdGgubWluKEYsdC5ib3R0b20pKTtyPXIqcitDKkM7cjx2JiYodj1yLG49QSxwPUYsej1NYXRoLm1heChsLndpZHRoLGwuaGVpZ2h0KSl9aD1NYXRoLnNxcnQodik7ZChoPDEwMD97eDpuLWsseTpwLW0sb3BhY2l0eToxLWgvMzAwLHNpemU6TWF0aC5tYXgoOTYseioyLjUpfTp7eDowLHk6MCxvcGFjaXR5OjAsc2l6ZTowfSl9ZWxzZSBkKHt4OjAseTowLG9wYWNpdHk6MCxzaXplOjB9KX19fTtfLm5FKCgpPT57aWYoYS5jb25maWcoKT8uamspe3ZhciBoPW5ldyBfLld0KGUsMTAwKSxrPSgpPT57aC52KCl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGspO3JldHVybigpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsayk7aC5kaXNwb3NlKCl9fX0sInJQWUMxZCIpO18ubkUoKCk9PnthLmNvbmZpZygpPy5qayYmZSgpfSwiUXA2UFJkIik7CnZhciBmPSgpPT5hLmNvbmZpZygpPy5WYSE9PTUmJmEuY29uZmlnKCk/LlZhIT09OSYmYS5jb25maWcoKT8uVmEhPT02O3JldHVybiBfLksoXy5PLHtBOigpPT5hLmNvbmZpZygpPy5WYSE9PTAmJiFfLmdyLHRoZW46KCk9Pl8uSygieXQtbGlnaHQtc2hhcGUiLHtlbDpiLCJhcmlhLWhpZGRlbiI6InRydWUiLGNsYXNzOl8uUCgiY29udHJpYll0TGlnaHRTaGFwZUhvc3QiLGEuY2xhc3NOYW1lLHtjb250cmliWXRMaWdodFNoYXBlU3RhdGljUmltTGlnaHQ6KCk9PiEwLGNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNSaW1MaWdodFNvbGlkOigpPT5hLmNvbmZpZygpPy5WYT09PTEsY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0VG9uYWw6KCk9PmEuY29uZmlnKCk/LlZhPT09Myxjb250cmliWXRMaWdodFNoYXBlU3RhdGljUmltTGlnaHRTb2xpZEludmVyc2U6KCk9PmEuY29uZmlnKCk/LlZhPT09Mixjb250cmliWXRMaWdodFNoYXBlU3RhdGljUmltTGlnaHRUb25hbEludmVyc2U6KCk9PgphLmNvbmZpZygpPy5WYT09PTQsY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0T3ZlcmxheVRvbmFsOigpPT5hLmNvbmZpZygpPy5WYT09PTgsY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0T3ZlcmxheVNvbGlkOigpPT5hLmNvbmZpZygpPy5WYT09PTcsY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0T3V0bGluZTooKT0+YS5jb25maWcoKT8uVmE9PT01LGNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNSaW1MaWdodE92ZXJsYXlPdXRsaW5lOigpPT5hLmNvbmZpZygpPy5WYT09PTksY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1JpbUxpZ2h0T3V0bGluZUludmVyc2U6KCk9PmEuY29uZmlnKCk/LlZhPT09Nn0pLHN0eWxlOl8uSUUoeyItLXl0LWxpZ2h0LXJpbS1jb2xvciI6KCk9PmEuY29uZmlnKCk/LmR2LCItLXl0LWxpZ2h0LXdhc2gtb3BhY2l0eSI6KCk9PmMoKS5vcGFjaXR5LCItLXl0LWxpZ2h0LXdhc2gteCI6KCk9PmAke2MoKS54fXB4YCwiLS15dC1saWdodC13YXNoLXkiOigpPT4KYCR7YygpLnl9cHhgLCItLXl0LWxpZ2h0LXdhc2gtc2l6ZSI6KCk9PmAke2MoKS5zaXplfXB4YH0pfSxfLksoXy5PLHtBOigpPT5hLmNvbmZpZygpPy5qayx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJjb250cmliWXRMaWdodFNoYXBlRHluYW1pY1dhc2hMaWdodCJ9KX0pLF8uSyhfLk8se0E6KCk9PmEuY29uZmlnKCk/LkNCLHRoZW46KCk9Pl8uSyhNZWEse3N0eWxlOigpPT57dmFyIGg7YTp7aWYoaD1hLmNvbmZpZygpPy5WYSlzd2l0Y2goaCl7Y2FzZSAxOmNhc2UgNDpoPSJkZWZhdWx0IjticmVhayBhO2Nhc2UgMjpjYXNlIDM6Y2FzZSA1Omg9ImludmVyc2UiO2JyZWFrIGF9aD12b2lkIDB9cmV0dXJuIGh9fSl9KSxfLksoXy5PLHtBOmYsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczpfLlAoImNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNXYXNoTGlnaHQiLHtjb250cmliWXRMaWdodFNoYXBlU3RhdGljV2FzaExpZ2h0U2FmYXJpOigpPT5fLk9rfHxfLklsLGNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNXYXNoTGlnaHRTb2xpZDooKT0+CmEuY29uZmlnKCk/LlZhPT09MSxjb250cmliWXRMaWdodFNoYXBlU3RhdGljV2FzaExpZ2h0VG9uYWw6KCk9PmEuY29uZmlnKCk/LlZhPT09Myxjb250cmliWXRMaWdodFNoYXBlU3RhdGljV2FzaExpZ2h0U29saWRJbnZlcnNlOigpPT5hLmNvbmZpZygpPy5WYT09PTIsY29udHJpYll0TGlnaHRTaGFwZVN0YXRpY1dhc2hMaWdodFRvbmFsSW52ZXJzZTooKT0+YS5jb25maWcoKT8uVmE9PT00LGNvbnRyaWJZdExpZ2h0U2hhcGVTdGF0aWNXYXNoTGlnaHRPdmVybGF5VG9uYWw6KCk9PmEuY29uZmlnKCk/LlZhPT09OCxjb250cmliWXRMaWdodFNoYXBlU3RhdGljV2FzaExpZ2h0T3ZlcmxheVNvbGlkOigpPT5hLmNvbmZpZygpPy5WYT09PTd9KSxzdHlsZTpfLklFKHtiYWNrZ3JvdW5kOigpPT5gcmFkaWFsLWdyYWRpZW50KCR7YS5jb25maWcoKT8uZXZ9LCB0cmFuc3BhcmVudClgfSl9KX0pKX0pfSwiZGEiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5XZCgibnZYNFZiIik7CgpfLlhkKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBoRyxkZGEsY2RhLGlHLGpHO18uZkc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4oQXJyYXkuaXNBcnJheShhKT9hOkFycmF5LmZyb20oYSkpLm1hcChiKX07Xy5nRz1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGEucGEhPT0iZnVuY3Rpb24iP18uZkcoYS5wYSxhLmNoaWxkcmVuKTphLnRiPT09IklOREVYIj9jZGEoYSk6ZGRhKGEpfTtoRz1mdW5jdGlvbihhKXtmb3IobGV0IGIgb2YgYSliPy4oKX07CmRkYT1mdW5jdGlvbihhKXt2YXIgYj1hLnRiPT09dm9pZCAwfHxhLnRiPT09IlJFRkVSRU5DRSIsYz1iP249Pm46YS50YixkPVtdLGU9W10sZj1bXSxoPVtdLGs9W10sbD1bXSxtPSEwO18uWXUoKCk9PntoRyhoKX0pO3JldHVybiBfLlhCKCgpPT57dmFyIG49aUcoYSkscD1uLmxlbmd0aDtpZihwPT09MCl7aWYoZC5sZW5ndGg9PT0wJiYhbSlyZXR1cm4gZjtoRyhoKTtkPW47ZT1bXTtmb3Iobj0wO248ZC5sZW5ndGg7bisrKWUucHVzaChjKGRbbl0pKTtmPVtdO2g9W107az1bXTtsPVtdO2EuZmFsbGJhY2smJihoWzBdPWpHKCgpPT57ZlswXT1fLmZDKGEuZmFsbGJhY2soKSl9KSk7bT0hMTtyZXR1cm4gZn12YXIgcj1uZXcgZWRhO2Zvcih2YXIgdD1kLmxlbmd0aC0xO3Q+PTA7dC0tKXIucHVzaChlW3RdLHQpO3Q9QXJyYXkocCk7dmFyIHY9QXJyYXkocCksej1BcnJheShwKSxFPUFycmF5KHApLEE9QXJyYXkoYj8wOnApO2ZvcihsZXQgRj0wO0Y8cDtGKyspe2xldCBDPW5bRl0sRz1jKEMpLApEPXIucG9wKEcpO0QhPW51bGw/KHpbRl09ZltEXSx2W0ZdPWVbRF0sdFtGXT1oW0RdLEVbRl09a1tEXSxifHwoQVtGXT1sW0RdKSxfLnJDKCgpPT57RVtGXShGKTtpZighYilBW0ZdKEMpfSksZGVsZXRlIGhbRF0pOnRbRl09akcoKCk9Pnt2YXIgSD1fLkooRix2b2lkIDAsIlBMVDFzIiksUj1IWzBdO0VbRl09SFsxXTt2W0ZdPUc7aWYoYil6W0ZdPV8uZkMoYS5jaGlsZHJlbihDLFIpKTtlbHNle2xldCBNPV8uSihDLHZvaWQgMCwiYms4UkpkIiksUz1NWzBdO0FbRl09TVsxXTt6W0ZdPV8uZkMoYS5jaGlsZHJlbihTLFIpKX19KX1oRyhoKTtkPW47ZT12O2Y9ejtoPXQ7az1FO2w9QTttPSExO3JldHVybiB6fSx7ZGVidWdOYW1lOmEuZGVidWdJbnN0YW5jZT8/Im5zVEdIZCIsenA6YS5wYSxXZTohMH0pfTsKY2RhPWZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM9W10sZD1bXSxlPVtdLGY9ITE7Xy5ZdSgoKT0+e2hHKGUpfSk7cmV0dXJuIF8uWEIoKCk9Pnt2YXIgaD1pRyhhKTtmJiZoLmxlbmd0aD4wJiYoZS5wb3AoKSgpLGIucG9wKCksZj0hMSk7dmFyIGs9QXJyYXkoaC5sZW5ndGgpO2ZvcihsZXQgbT0wO208aC5sZW5ndGg7bSsrKXtpZihtPGIubGVuZ3RoKXtiW21dIT09aFttXSYmKF8uckMoKCk9PnZvaWQgY1ttXShoW21dKSksYlttXT1oW21dKTtrW21dPWRbbV07Y29udGludWV9dmFyIGw9akcoKCk9PntiW21dPWhbbV07dmFyIG49Xy5KKGhbbV0sdm9pZCAwLCJ1aUMwY2IiKSxwPW5bMF07Y1ttXT1uWzFdO2tbbV09Xy5mQyhhLmNoaWxkcmVuKHAsbSkpfSk7ZVttXT1sfWZvcig7Yi5sZW5ndGg+aC5sZW5ndGg7KWIucG9wKCksZS5wb3AoKSgpLGMucG9wKCk7aC5sZW5ndGg9PT0wJiYhZiYmYS5mYWxsYmFjayYmKGw9akcoKCk9PntrWzBdPV8uZkMoYS5mYWxsYmFjaygpKX0pLGVbMF09bCxmPQohMCk7cmV0dXJuIGQ9a30se2RlYnVnTmFtZTphLmRlYnVnSW5zdGFuY2U/PyJuc1RHSGQiLFdlOiEwfSl9O2lHPWZ1bmN0aW9uKGEpe2E9YS5wYSgpO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2E6QXJyYXkuZnJvbShhKX07akc9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5DQSgpO3JldHVybiBfLnV2KGM9Pnt2YXIgZD1fLmt1KF8uenYpO3RyeXtjLnBhcmVudD1iLGEoYyl9ZmluYWxseXtfLmt1KGQpfX0sITEpfTt2YXIgZWRhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5tYXA9bmV3IE1hcH1wdXNoKGEsYil7dmFyIGM9dGhpcy5tYXA7aWYoYy5oYXMoYSkpe3RoaXMuanx8KHRoaXMuaj1uZXcgTWFwKTtpZih0aGlzLmo/LmhhcyhiKSl0aHJvdyBfLlV1KEVycm9yKCJaY2AiK2IpLDQpO3RoaXMuai5zZXQoYixjLmdldChhKSl9Yy5zZXQoYSxiKX1wb3AoYSl7dmFyIGI9dGhpcy5tYXAsYz1iLmdldChhKTtjIT09dm9pZCAwJiZ0aGlzLmo/LmhhcyhjKT8oYi5zZXQoYSx0aGlzLmouZ2V0KGMpKSx0aGlzLmouZGVsZXRlKGMpKTpiLmRlbGV0ZShhKTtyZXR1cm4gY319Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIga2NhLGxjYSxGRSxHRTtfLkNFPWZ1bmN0aW9uKGEpe3JldHVybiBhfTtfLkRFPWZ1bmN0aW9uKGEpe3JldHVybntpc0RlZmF1bHQ6ITAsY2hpbGRyZW46YS5jaGlsZHJlbn19O18uRUU9ZnVuY3Rpb24oYSl7cmV0dXJuIGtjYShhKX07CmtjYT1mdW5jdGlvbihhKXt2YXIgYj1sY2EoYSksYz1fLk4oKCk9PnthOnt2YXIgZD0tMTtmb3IobGV0IGU9MDtlPGIubGVuZ3RoO2UrKyl7bGV0IGY9YltlXTtmPy5bXy5Mdl0mJihmPUZFKGYpKTtmIGluc3RhbmNlb2YgXy5kQyYmKGY9R0UoZikpO2lmKGYuaXNEZWZhdWx0KWQ9PT0tMSYmKGQ9ZSk7ZWxzZSBpZihfLkJ2KGYud2hlbikpe2Q9ZTticmVhayBhfX19cmV0dXJuIGR9LHZvaWQgMCwiTVNUeFdiIik7cmV0dXJuIF8uWEIoKCk9Pnt2YXIgZD1jKCksZTtfLnV2KCgpPT57dmFyIGY9Xy5rdShfLnp2KTt0cnl7aWYoZD09PS0xKWU9bnVsbDtlbHNle3ZhciBoPWJbZF07dmFyIGs9aD8uW18uTHZdP0ZFKGgpOmggaW5zdGFuY2VvZiBfLmRDP0dFKGgpOmg7dmFyIGw9az09PW51bGw/bnVsbDprLmlzRGVmYXVsdD9rLmNoaWxkcmVuKCk6dHlwZW9mIGsud2hlbj09PSJmdW5jdGlvbiI/ay5jaGlsZHJlbihfLk5DKGsud2hlbiwiQ2FzZSIpKTprLmNoaWxkcmVuKGsud2hlbik7ZT1fLmZDKGwpfX1maW5hbGx5e18ua3UoZil9fSk7CnJldHVybiBlfSx7ZGVidWdOYW1lOmEuZGVidWdJbnN0YW5jZT8/InZJMXJ0ZiIsV2U6ITB9KX07bGNhPWZ1bmN0aW9uKGEpe2E9YS5jaGlsZHJlbjtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hOlthXX07RkU9ZnVuY3Rpb24oYSl7cmV0dXJuIGEudHlwZT09PV8uREU/e2lzRGVmYXVsdDohMCxjaGlsZHJlbjphLmNoaWxkcmVuWzBdfTp7d2hlbjphLnByb3BzLndoZW4sY2hpbGRyZW46YS5jaGlsZHJlblswXX19O0dFPWZ1bmN0aW9uKGEpe3ZhciBiPWEucHJvcHM7YT1hLmNoaWxkcmVuWzBdO3JldHVybiBiLndoZW4/e3doZW46Yi53aGVuLGNoaWxkcmVuOmF9Ontpc0RlZmF1bHQ6ITAsY2hpbGRyZW46YX19O18uQ0UuZGVidWdOYW1lPSJ0YmhNY2YiO18uREUuZGVidWdOYW1lPSJ6eU1GemIiOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgRGNhO0RjYT1mdW5jdGlvbihhKXtzd2l0Y2goYS5acSl7Y2FzZSBfLlF2Ol8uVXYuc2NoZWR1bGUoYSk7YnJlYWs7ZGVmYXVsdDpfLmViKGEuWnEsdm9pZCAwKX19O18ub0Y9ZnVuY3Rpb24oYSl7aWYoXy5qdT09PV8uV3UpUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoRXJyb3IoInliIiksMik7fSk7ZWxzZXtpZigoMCxfLmx2KShfLmp1KSl0aHJvdyBfLlV1KEVycm9yKCJ6YiIpLDQpO3ZhciBiPV8uWnQsYz1fLk11O0RjYSh7WnE6Xy5RdixydW46KCk9PntpZihiJiYhYi5pYSl7dmFyIGQ9Xy4kdChiKTt0cnl7Xy5SdSgoKT0+e3ZhciBlPWEoKTt0eXBlb2YgZT09PSJmdW5jdGlvbiImJl8uWXUoZSl9LGMpfWNhdGNoKGUpe18uVXUoZSw0KSxfLm92KGUpfWZpbmFsbHl7Xy4kdChkKX19fX0pfX07Xy5LQj1fLmxDO18ucUY9U3ltYm9sKCJYYyIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgV0osVko7Xy5USj1mdW5jdGlvbihhLGIpe3ZhciBjPV8ucEUoIm9uQ2hhbmdlIiksZD1fLm9FKCk7Xy5xRShjLm1sLGIpJiYoYy5tbD1iLGMuc3I9YSxkLnVmfHwoZC51Zj1bXSksZC51Zi5wdXNoKGMpKX07Xy5VSj1mdW5jdGlvbihhKXtfLkhBKCk/Xy5vRigoKT0+Xy5FQShhKSk6Xy5USigoKT0+Xy5FQShhKSxbXSl9O1dKPWZ1bmN0aW9uKGEpe3ZhciBiPVsuLi5hXTthLmxlbmd0aD0wO2ZvcihsZXQgYyBvZiBiKWlmKFZKKGMpLGE9Yy5zcixjLnNyPW51bGwsYT1hPy4oKSljLnJyPWF9O1ZKPWZ1bmN0aW9uKGEpe3ZhciBiPWEucnI7YS5ycj1udWxsO2I/LigpfTtfLmR3KHtTbyhhKXt2YXIgYj1fLiR0KGEucWwpO3RyeXthLnVmPy5sZW5ndGgmJldKKGEudWYpfWZpbmFsbHl7Xy4kdChiKX19LEdmKGEpe3ZhciBiPV8uJHQoYS5xbCk7dHJ5e2EudWY/Lmxlbmd0aCYmV0ooYS51Zil9ZmluYWxseXtfLiR0KGIpfX0sSGYoYSl7YS5aZj8ubGVuZ3RoJiZhLlpmLmZvckVhY2goVkopfX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmFEPW51bGw7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBoZGEsaWRhLGtkYSxtZGEscUcsbmRhLHNHLHJHLHVHLHdHLHZHLHhHLHRHLG9kYSxwZGEsc2RhLEJHLHRkYSxBRyxyZGEscWRhLGpkYSxsZGE7aGRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5hRCxkPTA7Xy5hRD17c3U6KCk9PntkKys7Xy5yQygoKT0+e2EoITEpfSl9LEhyOigpPT57LS1kPT09MCYmXy5yQygoKT0+e2EoITApfSl9fTt0cnl7cmV0dXJuIGIoKX1maW5hbGx5e18uYUQ9Y319O2lkYT1mdW5jdGlvbihhKXt2YXIgW2IsY109Xy5KKCEwLHZvaWQgMCwiYkt0TzZkIik7cmV0dXJuIGhkYShjLCgpPT57dmFyIGQ9Xy5mQyhhLmNoaWxkcmVuKCkpO3JldHVybiBfLksoXy5PLHtBOmIsdGhlbjooKT0+ZCxXOmEuZmFsbGJhY2t9KX0pfTsKXy5uRz1mdW5jdGlvbih7Y2hpbGRyZW46YSxFZjpiLGNhbGxiYWNrczpjfSl7dmFyIGQ9bmV3IE1hcDtiPWI/P1tdO2ZvcihsZXQgZSBvZiBiKWQuc2V0KGUuaWQuQ2IudG9rZW4sZSk7Yz1jPz9bXTtmb3IobGV0IGUgb2YgYylkLnNldChlLmlkLkNiLnRva2VuLGUpO2Q9T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKGpkYSkse2RlYnVnTmFtZToiW2NvbnRleHRPd25lcl0iLGVudHJpZXM6ZH0pO18uQnUoZCk7ZD1fLiR0KGQpO3RyeXtsZXQgZT1fLmZDKGEpO3JldHVybiBfLksoXy5JQixudWxsLGUpfWZpbmFsbHl7Xy4kdChkKX19O18ub0c9ZnVuY3Rpb24oYSxiKXtyZXR1cm57W18uZ2RhXTohMCxpZDphLHZhbHVlOmJ9fTtrZGE9ZnVuY3Rpb24oe1NnOmF9KXtyZXR1cm4gXy5LKF8uSUIsbnVsbCxhKCkpfTtfLnBHPWZ1bmN0aW9uKGEsYil7YT17Li4uYSxwYXJlbnQ6Xy5tRygpfTtyZXR1cm4gXy5LKF8ubkcse0VmOltfLm9HKF8ubEcsYSldfSxfLksoa2RhLHtTZzpifSkpfTsKbWRhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBsZGEoYSxiKX07cUc9ZnVuY3Rpb24oYSxiKXt0aGlzLm89e307dGhpcy5qPVtdO3RoaXMuQWU9dGhpcy5zaXplPTA7dmFyIGM9YXJndW1lbnRzLmxlbmd0aDtpZihjPjEpe2lmKGMlMil0aHJvdyBFcnJvcigiYmQiKTtmb3IodmFyIGQ9MDtkPGM7ZCs9Mil0aGlzLnNldChhcmd1bWVudHNbZF0sYXJndW1lbnRzW2QrMV0pfWVsc2UgaWYoYSlpZihhIGluc3RhbmNlb2YgcUcpZm9yKGM9YS5yZCgpLGQ9MDtkPGMubGVuZ3RoO2QrKyl0aGlzLnNldChjW2RdLGEuZ2V0KGNbZF0pKTtlbHNlIGZvcihkIGluIGEpdGhpcy5zZXQoZCxhW2RdKX07bmRhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PT1ifTsKc0c9ZnVuY3Rpb24oYSl7aWYoYS5zaXplIT1hLmoubGVuZ3RoKXtmb3IodmFyIGI9MCxjPTA7YjxhLmoubGVuZ3RoOyl7dmFyIGQ9YS5qW2JdO3JHKGEubyxkKSYmKGEualtjKytdPWQpO2IrK31hLmoubGVuZ3RoPWN9aWYoYS5zaXplIT1hLmoubGVuZ3RoKXtiPXt9O2ZvcihkPWM9MDtjPGEuai5sZW5ndGg7KXtsZXQgZT1hLmpbY107ckcoYixlKXx8KGEualtkKytdPWUsYltlXT0xKTtjKyt9YS5qLmxlbmd0aD1kfX07ckc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYil9O3VHPWZ1bmN0aW9uKCl7dGhpcy5vPW5ldyBxRzt0aGlzLmo9bmV3IHRHKCIiKTt0aGlzLmoubmV4dD10aGlzLmouVWE9dGhpcy5qfTt3Rz1mdW5jdGlvbihhLGIpe2lmKGI9YS5vLmdldChiKSliLnJlbW92ZSgpLHZHKGEsYik7cmV0dXJuIGJ9Owp2Rz1mdW5jdGlvbihhLGIpe2IubmV4dD1hLmoubmV4dDtiLlVhPWEuajthLmoubmV4dD1iO2ZvcihiLm5leHQuVWE9YjthLm8uc2l6ZT4xMDA7KWEucmVtb3ZlTm9kZShhLmouVWEpfTt4Rz1mdW5jdGlvbihhLGIpe2EuaiE9YiYmYS5yZW1vdmVOb2RlKGIpO3JldHVybiBiLnZhbHVlfTt0Rz1mdW5jdGlvbihhLGIpe3RoaXMua2V5PWE7dGhpcy52YWx1ZT1ifTtvZGE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9eUc7aWYoYT09bnVsbHx8IWMuRWcpcmV0dXJuIGI7ZS5qLmdldChhKT09PXZvaWQgMCYmZS5qLnNldChhLFtiLGQ/P1tdLCExXSk7Yz1lLmouZ2V0KGEpO2lmKCFjKXJldHVybiBiO3ZhciBbZixoLGtdPWM7aWYoaD8ubGVuZ3RoJiZkPy5sZW5ndGgmJmQuc29tZSgobCxtKT0+bCE9PWhbbV0pKXJldHVybiBlLmoucmVtb3ZlKGEpLGI7ZD8ubGVuZ3RoJiZlLmouc2V0KGEsW2YsZCxrXSk7cmV0dXJuIGs/ZjpifTsKXy56Rz1mdW5jdGlvbihhLGI9e0VnOiEwfSl7cmV0dXJue01nOmZ1bmN0aW9uKGMsZCl7dmFyIGU9Xy5OKCgpPT5hKGMoKSksdm9pZCAwLCJHbXJibGIiKSxbZixoXT1fLkFDKCgpPT57dmFyIGs9YygpLGw9ZSgpLG09ZD8ubWFwKG49Pm4oKSk/P1tdO3JldHVybiBvZGEobCxrLGIsbSl9KTtfLm5FKCgpPT57dmFyIGs9ZSgpO2shPW51bGwmJihrPXlHLnJlZ2lzdGVyKGssW2YsaF0sKCk9PmQ/Lm1hcChsPT5sKCkpPz9bXSksXy5ZdShrKSl9LCJVbWFjNmMiKTtyZXR1cm5bZixmdW5jdGlvbihrKXtoKGspO3ZhciBsPWUoKTtsIT1udWxsJiZ5Ry51cGRhdGUobCwoKT0+ayxiKX1dfSxnZXREYXRhOmZ1bmN0aW9uKGMpe2M9YShjKTtyZXR1cm4geUcuZ2V0KGMsYil9LGdrOmZ1bmN0aW9uKGMsZCl7Yz1hKGMpO3JldHVybiB5Ry51cGRhdGUoYyxkLGIpfX19OwpfLlc9ZnVuY3Rpb24oYSl7dmFyIHtkYXRhOmIsbWFwcGluZzpjLHdyYXBwZXI6ZCxySzplfT1wZGEoYSk7cWRhKGIsYyk7dmFyIGY9KCk9PkFHKF8uQnYoYikpLGg9KCk9Pnt2YXIgaz1BRyhfLkJ2KGIpKSxsPVtdO2ZvcihsZXQgbSBvZiBrKShrPUJHKG0pKSYmbC5wdXNoKGspO3JldHVybiBsfTtyZXR1cm4gYS5kYXRhP18uSyhpZGEse2ZhbGxiYWNrOmV9LCgpPT5fLksoXy5nRyx7cGE6aH0sKGssbCk9Pnt2YXIgbT1kP3A9PmQoKCk9PmNba10ocCxsKSxuLGwpOnA9PmNba10ocCxsKTttLmRlYnVnTmFtZXx8KG0uZGVidWdOYW1lPVN0cmluZyhrKSk7aWYoIWNbU3RyaW5nKGspXSlyZXR1cm4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIik7bS5jb21wb25lbnRUeXBlIT09Xy5LdiYmcmRhKFN0cmluZyhrKSk7dmFyIG49c2RhKGYsayxsKTtyZXR1cm4gXy5LKG0se2RhdGE6bn0pfSkpOl8uSyhfLklCLG51bGwpfTsKcGRhPWZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0SWR8fHRkYShhLmNoaWxkcmVuKTtpZighYS5kYXRhfHwhYilyZXR1cm57Li4uYSxtYXBwaW5nOmEuY2hpbGRyZW59O3ZhciBjPWBzdGFtcGVyLSR7dWRhKyt9YCxkPSgpPT4odHlwZW9mIGEudGFyZ2V0SWQ9PT0iZnVuY3Rpb24iP2EudGFyZ2V0SWQoYyk6YS50YXJnZXRJZCk/P2M7W2JdPXZkYSgoKT0+e3ZhciBmPVsuLi5BRyhhLmRhdGEoKSldO2YudGFyZ2V0SWQ9ZDtyZXR1cm4gZn0pO3ZhciBlPXsuLi4oXy55KCkucmVzb2x2ZShfLkluKHdkYSkpfHx7fSkuQUssLi4uYS5jaGlsZHJlbn07aWYoYS5Kcil7bGV0IGY9ZS5ub3RpZmljYXRpb25UZXh0UmVuZGVyZXIsaD1lLm5vdGlmaWNhdGlvbk11bHRpQWN0aW9uUmVuZGVyZXI7ZiYmKGUubm90aWZpY2F0aW9uVGV4dFJlbmRlcmVyPSh7ZGF0YTprfSxsKT0+YS5KcihmKHtkYXRhOmt9LGwpKSk7aCYmKGUubm90aWZpY2F0aW9uTXVsdGlBY3Rpb25SZW5kZXJlcj0oe2RhdGE6a30sCmwpPT5hLkpyKGgoe2RhdGE6a30sbCkpKX1yZXR1cm57Li4uYSxkYXRhOmIsbWFwcGluZzplLHdyYXBwZXI6KGYsaCxrKT0+Xy5wRyh7dGFyZ2V0SWQ6ZCxZSzprfSxhLndyYXBwZXI/KCk9PmEud3JhcHBlcihmLGgsayk6Zil9fTtzZGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybiBfLk4oKCk9Pnt2YXIgZT1hKClbYygpXTtpZihlKWQ9ZVtiXTtlbHNlIHJldHVybiBfLklwKG5ldyBfLlhqKGBTdGFtcGVyIGZhaWxlZCB0byBmaW5kICR7U3RyaW5nKGIpfSBhdCBpbmRleCAke2MoKX0gb2YgZGF0YSBhcnJheSBvZiBsZW5ndGggJHthKCkubGVuZ3RofSAoYi8zNjU2NDMzNTkpLiBEaWQgeW91IGFjY2VzcyBhIHNpZ25hbCBhZnRlciBhIGNvbXBvbmVudCBoYXMgYmVlbiBjbGVhbmVkIHVwP2ApKSxkO3JldHVybiBlW2JdfSx2b2lkIDAsInNFcnRqZCIpfTsKQkc9ZnVuY3Rpb24oYSl7dmFyIGI9dm9pZCAwO2ZvcihsZXQgYyBpbiBhKWlmKCEoIWEpLmhhc093blByb3BlcnR5KGMpKXtiPWM7YnJlYWt9cmV0dXJuIGJ9O3RkYT1mdW5jdGlvbihhKXtmb3IobGV0IGIgb2YgT2JqZWN0LmtleXMoYSkpaWYoeGRhLmluY2x1ZGVzKGIpfHx5ZGEuaW5jbHVkZXMoYil8fHpkYS5pbmNsdWRlcyhiKSlyZXR1cm4hMDtyZXR1cm4hMX07QUc9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/QXJyYXkuaXNBcnJheShhKSYmYSBpbnN0YW5jZW9mIEFycmF5P2E6W2FdOltdfTtyZGE9ZnVuY3Rpb24oYSl7Xy54KCJ3ZWJfZW5hYmxlX3JlbmRlcmVyX2xvZ2dlciIpJiZfLnkoKS5yZXNvbHZlKF8uSW4oXy5DRykpPy53eShhKX07CnFkYT1mdW5jdGlvbihhLGIpe3ZhciBjPV8ueSgpLnJlc29sdmUoXy5JbihBZGEpKTtjJiZfLm5FKCgpPT57dmFyIGQ9QUcoXy5CdihhKSksZT0wLGY9ITE7Zm9yKHZhciBoIG9mIGQpe2Q9QkcoaCk7aWYoIWR8fCFiW1N0cmluZyhkKV0pe2Y9ITA7YnJlYWt9ZSsrfWg9Yy5WSztkPWMuV0s7ZT4wJiYhZj9oLm8oZCgpKTpoLmooZCgpKX0sIkRoT1V4ZSIpfTtqZGE9e1JoKGEpe2lmKF8uZnUgaW4gYXx8Xy5mZGEgaW4gYSl7bGV0IGI9dGhpcy5lbnRyaWVzLmdldChhLkNiLnRva2VuKTtpZihiIT09dm9pZCAwKXJldHVybiBiLnZhbHVlfXJldHVybiB0aGlzLnBhcmVudD9fLmN1KHRoaXMucGFyZW50LGEpOl8uYXV9fTsKbGRhPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5qPWFbXy51LlN5bWJvbC5pdGVyYXRvcl0oKTt0aGlzLm89Yn1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzfW5leHQoKXt2YXIgYT10aGlzLmoubmV4dCgpO3JldHVybnt2YWx1ZTphLmRvbmU/dm9pZCAwOnRoaXMuby5jYWxsKHZvaWQgMCxhLnZhbHVlKSxkb25lOmEuZG9uZX19fTtfLmc9cUcucHJvdG90eXBlO18uZy5NYz1mdW5jdGlvbigpe3NHKHRoaXMpO3ZhciBhPVtdO2ZvcihsZXQgYj0wO2I8dGhpcy5qLmxlbmd0aDtiKyspYS5wdXNoKHRoaXMub1t0aGlzLmpbYl1dKTtyZXR1cm4gYX07Xy5nLnJkPWZ1bmN0aW9uKCl7c0codGhpcyk7cmV0dXJuIHRoaXMuai5jb25jYXQoKX07Xy5nLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gckcodGhpcy5vLGEpfTtfLmcuZXF1YWxzPWZ1bmN0aW9uKGEsYil7aWYodGhpcz09PWEpcmV0dXJuITA7aWYodGhpcy5zaXplIT1hLnNpemUpcmV0dXJuITE7Yj1ifHxuZGE7c0codGhpcyk7dmFyIGM7Zm9yKGxldCBkPTA7Yz10aGlzLmpbZF07ZCsrKWlmKCFiKHRoaXMuZ2V0KGMpLGEuZ2V0KGMpKSlyZXR1cm4hMTtyZXR1cm4hMH07Xy5nLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXplPT0wfTtfLmcuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLm89e307dGhpcy5BZT10aGlzLnNpemU9dGhpcy5qLmxlbmd0aD0wfTsKXy5nLnJlbW92ZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5kZWxldGUoYSl9O18uZy5kZWxldGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHJHKHRoaXMubyxhKT8oZGVsZXRlIHRoaXMub1thXSwtLXRoaXMuc2l6ZSx0aGlzLkFlKyssdGhpcy5qLmxlbmd0aD4yKnRoaXMuc2l6ZSYmc0codGhpcyksITApOiExfTtfLmcuZ2V0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHJHKHRoaXMubyxhKT90aGlzLm9bYV06Yn07Xy5nLnNldD1mdW5jdGlvbihhLGIpe3JHKHRoaXMubyxhKXx8KHRoaXMuc2l6ZSs9MSx0aGlzLmoucHVzaChhKSx0aGlzLkFlKyspO3RoaXMub1thXT1ifTtfLmcuZm9yRWFjaD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMucmQoKTtmb3IobGV0IGQ9MDtkPGMubGVuZ3RoO2QrKyl7bGV0IGU9Y1tkXSxmPXRoaXMuZ2V0KGUpO2EuY2FsbChiLGYsZSx0aGlzKX19O18uZy5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgcUcodGhpcyl9O18uZy5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIF8uc2godGhpcy5iZCghMCkpLmooKX07Cl8uZy52YWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gXy5zaCh0aGlzLmJkKCExKSkuaigpfTtfLmcuZW50cmllcz1mdW5jdGlvbigpe3ZhciBhPXRoaXM7cmV0dXJuIG1kYSh0aGlzLmtleXMoKSxmdW5jdGlvbihiKXtyZXR1cm5bYixhLmdldChiKV19KX07Xy5nLmJkPWZ1bmN0aW9uKGEpe3NHKHRoaXMpO3ZhciBiPTAsYz10aGlzLkFlLGQ9dGhpcyxlPW5ldyBfLm9oO2UubmV4dD1mdW5jdGlvbigpe2lmKGMhPWQuQWUpdGhyb3cgRXJyb3IoImNkIik7aWYoYj49ZC5qLmxlbmd0aClyZXR1cm4gXy5hczt2YXIgZj1kLmpbYisrXTtyZXR1cm57dmFsdWU6YT9mOmQub1tmXSxkb25lOiExfX07cmV0dXJuIGV9O18uZz11Ry5wcm90b3R5cGU7Xy5nLmdldD1mdW5jdGlvbihhLGIpe3JldHVybihhPXdHKHRoaXMsYSkpP2EudmFsdWU6Yn07Xy5nLnNldD1mdW5jdGlvbihhLGIpe3ZhciBjPXdHKHRoaXMsYSk7Yz9jLnZhbHVlPWI6KGM9bmV3IHRHKGEsYiksdGhpcy5vLnNldChhLGMpLHZHKHRoaXMsYykpfTtfLmcudWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qLm5leHQudmFsdWV9O18uZy5zaGlmdD1mdW5jdGlvbigpe3JldHVybiB4Ryh0aGlzLHRoaXMuai5uZXh0KX07Xy5nLnBvcD1mdW5jdGlvbigpe3JldHVybiB4Ryh0aGlzLHRoaXMuai5VYSl9O18uZy5yZW1vdmU9ZnVuY3Rpb24oYSl7cmV0dXJuKGE9dGhpcy5vLmdldChhKSk/KHRoaXMucmVtb3ZlTm9kZShhKSwhMCk6ITF9O18uZy5yZW1vdmVOb2RlPWZ1bmN0aW9uKGEpe2EucmVtb3ZlKCk7dGhpcy5vLnJlbW92ZShhLmtleSl9O18uZy5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuby5pc0VtcHR5KCl9OwpfLmcucmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYn0pfTtfLmcuTWM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGF9KX07Xy5nLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIGI9PWF9KX07Xy5nLmNsZWFyPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLm8uc2l6ZT4wOyl0aGlzLnJlbW92ZU5vZGUodGhpcy5qLlVhKX07Xy5nLmZvckVhY2g9ZnVuY3Rpb24oYSxiKXtmb3IobGV0IGM9dGhpcy5qLm5leHQ7YyE9dGhpcy5qO2M9Yy5uZXh0KWEuY2FsbChiLGMudmFsdWUsYy5rZXksdGhpcyl9O18uZy5tYXA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtmb3IobGV0IGQ9dGhpcy5qLm5leHQ7ZCE9dGhpcy5qO2Q9ZC5uZXh0KWMucHVzaChhLmNhbGwoYixkLnZhbHVlLGQua2V5LHRoaXMpKTtyZXR1cm4gY307Cl8uZy5zb21lPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBjPXRoaXMuai5uZXh0O2MhPXRoaXMuajtjPWMubmV4dClpZihhLmNhbGwoYixjLnZhbHVlLGMua2V5LHRoaXMpKXJldHVybiEwO3JldHVybiExfTtfLmcuZXZlcnk9ZnVuY3Rpb24oYSxiKXtmb3IobGV0IGM9dGhpcy5qLm5leHQ7YyE9dGhpcy5qO2M9Yy5uZXh0KWlmKCFhLmNhbGwoYixjLnZhbHVlLGMua2V5LHRoaXMpKXJldHVybiExO3JldHVybiEwfTt0Ry5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dGhpcy5VYS5uZXh0PXRoaXMubmV4dDt0aGlzLm5leHQuVWE9dGhpcy5VYTtkZWxldGUgdGhpcy5VYTtkZWxldGUgdGhpcy5uZXh0fTt2YXIgeUc9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5vPW5ldyBNYXA7dGhpcy52PW5ldyBNYXA7dGhpcy5qPW5ldyB1R31nZXQoYSxiKXt2YXIgYz10aGlzLm8uZ2V0KGEpO2lmKGMpcmV0dXJuIGNbMF0oKTtpZihiLkVnJiZhIT1udWxsKXJldHVybiB0aGlzLmouZ2V0KGEpPy5bMF19dXBkYXRlKGEsYixjKXt2YXIgZD10aGlzLm8uZ2V0KGEpO2lmKGQpe2xldCBbZSxmXT1kO2I9YihlKCkpO2YoYik7Yy5FZyYmYSE9bnVsbCYmKGM9dGhpcy52LmdldChhKSx0aGlzLmouc2V0KGEsW2IsYz8uKCk/P1tdLCEwXSkpO3JldHVybiEwfWlmKGMuRWcmJmEhPW51bGwmJihjPXRoaXMuai5nZXQoYSkpKXtsZXQgW2UsZl09YztiPWIoZSk7dGhpcy5qLnNldChhLFtiLGYsITBdKTtyZXR1cm4hMH1yZXR1cm4hMX1yZWdpc3RlcihhLGIsYyl7aWYoYT09bnVsbClyZXR1cm4oKT0+e307dGhpcy5vLnNldChhLGIpO2MmJnRoaXMudi5zZXQoYSxjKTtyZXR1cm4oKT0+e3RoaXMuby5nZXQoYSk9PT0KYiYmKHRoaXMuby5kZWxldGUoYSksdGhpcy52LmRlbGV0ZShhKSl9fX07Xy5DRz1uZXcgXy5WcygiUkVOREVSRVJfTE9HR0VSX1RPS0VOIik7dmFyIHdkYT1uZXcgXy5WcygiUkVOREVSRVJfU1RBTVBFUl9PUFRJT05TX1RPS0VOIik7dmFyIEFkYT1uZXcgXy5WcygiUkVOREVSRVJfU1RBTVBFUl9TVUNDRVNTX1NMSV9UT0tFTiIpO3ZhciB4ZGE9ImNvbXBhY3RSYWRpb1JlbmRlcmVyIGNvbXBhY3RQbGF5bGlzdFJlbmRlcmVyIHBsYXlsaXN0VmlkZW9SZW5kZXJlciBjb21wYWN0VmlkZW9SZW5kZXJlciBmZWVkTnVkZ2VSZW5kZXJlciBncmlkVmlkZW9SZW5kZXJlciBwcmltZXRpbWVQcm9tb1JlbmRlcmVyIHJhZGlvUmVuZGVyZXIgcHJpbWV0aW1lUHJvbW9SZW5kZXJlciByZWVsSXRlbVJlbmRlcmVyIHJlZWxTaGVsZlJlbmRlcmVyIHJpY2hTaGVsZlJlbmRlcmVyIHNlYXJjaEhpc3RvcnlRdWVyeVJlbmRlcmVyIHNoZWxmUmVuZGVyZXIgdmlkZW9XaXRoQ29udGV4dFJlbmRlcmVyIHZpZGVvQ2FyZFJlbmRlcmVyIHN0YXRlbWVudEJhbm5lclJlbmRlcmVyIG1pbmlHYW1lQ2FyZFZpZXdNb2RlbCBzaG9ydHNMb2NrdXBWaWV3TW9kZWwgbG9ja3VwVmlld01vZGVsIGdyaWRTaGVsZlZpZXdNb2RlbCIuc3BsaXQoIiAiKSx6ZGE9WyJub3RpZmljYXRpb25UZXh0UmVuZGVyZXIiLCJub3RpZmljYXRpb25NdWx0aUFjdGlvblJlbmRlcmVyIl0sCnlkYT0icHJpbWV0aW1lUHJvbW9SZW5kZXJlciBzdGF0ZW1lbnRCYW5uZXJSZW5kZXJlciBicmFuZFZpZGVvU2hlbGZSZW5kZXJlciBicmFuZFZpZGVvU2luZ2xldG9uUmVuZGVyZXIgZmVlZE51ZGdlUmVuZGVyZXIgcGxheWxpc3RWaWRlb1JlbmRlcmVyIi5zcGxpdCgiICIpLHtNZzp2ZGF9PV8uekcoYT0+Xy5CdihhPy50YXJnZXRJZCkpO3ZhciB1ZGE9MDtfLlcuZGVidWdOYW1lPSJFakpiQ2UiOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgVmJhO1ZiYT1mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChhLGIsdm9pZCAwKX07Xy5ORD1mdW5jdGlvbihhKXthPVsoYSYxNjcxMTY4MCk+Pj4xNiwoYSY2NTI4MCk+Pj44LGEmMjU1LChhJjQyNzgxOTAwODApPj4+MjRdO2lmKCFWYmEoYSxiPT5iPT09KGImMjU1KSkpdGhyb3cgRXJyb3IoIlJjYCIrYS5qb2luKCIsIikpO3JldHVybmByZ2JhKCR7YVswXX0sJHthWzFdfSwke2FbMl19LCR7KGFbM10vMjU1KS50b0ZpeGVkKDMpfSlgfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5rQT1mdW5jdGlvbih7dHlwZTphLHBheWxvYWQ6Yn0pe2E9e3R5cGU6YX07YiE9PXZvaWQgMCYmKGEucGF5bG9hZD1iKTtyZXR1cm4gYX07LyoKCiBDb3B5cmlnaHQgMjAxNS1wcmVzZW50IERhbiBBYnJhbW92CiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCiovCl8ubEE9KCk9Pk1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZyg3KS5zcGxpdCgiIikuam9pbigiLiIpO18ubUE9YEBAcmVkdXgvSU5JVCR7Xy5sQSgpfWA7Xy5SYWE9YEBAcmVkdXgvUkVQTEFDRSR7Xy5sQSgpfWA7Xy5uQT10eXBlb2YgU3ltYm9sPT09ImZ1bmN0aW9uIiYmU3ltYm9sLm9ic2VydmFibGV8fCJAQG9ic2VydmFibGUiOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLm9BPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5rQSh7dHlwZToiUkVQTEFDRV9FTlRJVFkiLHBheWxvYWQ6e3hsOmMsZW50aXR5VHlwZTphLGtleTpifX0pfTtfLnBBPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5rQSh7dHlwZToiVVBEQVRFX0VOVElUWSIscGF5bG9hZDp7eGw6YyxlbnRpdHlUeXBlOmEsa2V5OmIsSXk6dm9pZCAwfX0pfTtfLnFBPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYVtiXT9hW2JdW2NdfHxudWxsOm51bGx9OygoKT0+e3ZhciBhPWQ9Pm5ldyBVaW50OEFycmF5KGQpLGI9ZD0+e3ZhciBlPW5ldyBVaW50OEFycmF5KGQubGVuZ3RoKTtmb3IobGV0IGY9MDtmPGQubGVuZ3RoO2YrKyllW2ZdPWRbZl07cmV0dXJuIGV9LGM9bmV3IFVpbnQ4QXJyYXkoWzFdKTtyZXR1cm4gYy5sZW5ndGg9PT0xJiZjWzBdPT09MT9hOmJ9KSgpO18uckE9QXJyYXkoMTAyNCk7Xy5zQT10eXBlb2YgVGV4dERlY29kZXIhPT0idW5kZWZpbmVkIj9uZXcgVGV4dERlY29kZXI6dm9pZCAwO18udEE9dHlwZW9mIFRleHRFbmNvZGVyIT09InVuZGVmaW5lZCI/bmV3IFRleHRFbmNvZGVyOnZvaWQgMDtfLnVBPXthbmltYXRpb25FbnRpdHk6MzAyLGFjY291bnRMaW5rU3RhdHVzRW50aXR5OjEyMixhc2tTdHVkaW9HZW5lcmF0ZWREYXRhRW50aXR5OjYzMCxib29sZWFuRW50aXR5OjMwNyxhc2tTdHVkaW9Db252ZXJzYXRpb25TdW1tYXJ5RW50aXR5OjYzNyxidXR0b25FbnRpdHk6MzU4LGNhcHRpb25UcmFjazoyMjUsY2hhbm5lbEhhbmRsZToyNzUsY2hpcEVudGl0eTo0OTgsY29tbWVyY2VBY3F1aXNpdGlvbkNsaWVudFBheWxvYWRFbnRpdHk6Mjc2LGNvbW1lcmNlQ2FydExpc3RFbnRpdHk6MjM2LGNvbW1lcmNlVG9rZW5CYWxhbmNlRW50aXR5OjUzMixjb21wb3NpdGVTb3VyY2VFbnRpdHk6NTk0LGNvbnRleHROb3RlRmVlZEVudGl0eVBheWxvYWQ6NDgzLGNvbnRleHROb3RlVXNlclJhdGluZ0VudGl0eVBheWxvYWQ6NTc2LGNvbnRpbnVhdGlvblRva2VuRW50aXR5OjQwNixkb3dubG9hZFF1YWxpdHlQaWNrZXJFbnRpdHk6MjAyLGRvd25sb2Fkc1BhZ2VSZWZyZXNoVG9rZW5FbnRpdHk6Mjk5LApkb3dubG9hZHNQYWdlVmlld0NvbmZpZ3VyYXRpb25FbnRpdHk6MjY0LGRvd25sb2FkU3RhdHVzRW50aXR5OjE0MSxkaXNtaXNzU3RhdGU6NTQwLHNmdkF1ZGlvSXRlbUN1cnJlbnRseVBsYXlpbmdFbnRpdHk6MTg2LGVtb2ppRm91bnRhaW5EYXRhRW50aXR5OjM5MyxlbW9qaUN1c3RvbWl6YXRpb25TZXRFbnRpdHk6NDk2LGZha2VDaGFubmVsOjIsZmFrZVBsYXlsaXN0OjI3OSxmYWtlUGxheWxpc3RFbnRyeUNvbGxlY3Rpb246MjgwLGZha2VWaWRlbzoxODIsZmFrZVZpZGVvRGVzY3JpcHRpb246Mjc4LGZlYXR1cmVkUHJvZHVjdHNFbnRpdHk6MzkyLHNhdmVkUHJvZHVjdHNTdGF0ZUVudGl0eTo1OTgsZmxvd1N0YXRlRW50aXR5OjI1MixpY29uQmFkZ2VFbnRpdHk6MjI5LGludGVyc3RpdGlhbEludGVyYWN0aW9uU3RhdGVFbnRpdHk6NDQzLGxpa2VCdXR0b25BbmltYXRpb25FbnRpdHk6NTY3LGxpdmVDaGF0UG9sbFN0YXRlRW50aXR5OjIxNyxsaXZlVmlld2VyTGVhZGVyYm9hcmRDaGF0RW50cnlQb2ludFN0YXRlRW50aXR5OjU2MywKbGl2ZVZpZXdlckxlYWRlcmJvYXJkUG9pbnRzRW50aXR5OjU2NCxsaXZlUmVhY3Rpb25zRGF0YUVudGl0eTo1MDMsbG9nb0VudGl0eToyNDUsbWFjcm9NYXJrZXJFbnRpdHk6MzI5LG1haW5Eb3dubG9hZHNMaWJyYXJ5RW50aXR5OjE1OCxtYWluRG93bmxvYWRzTGlzdEVudGl0eToxNjQsbWFpblBsYXlsaXN0RG93bmxvYWRTdGF0ZUVudGl0eTozNzMsbWFpblBsYXlsaXN0RW50aXR5OjMwNixtYWluUGxheWxpc3RWaWRlb0VudGl0eTozNjgsbWFpblZpZGVvRG93bmxvYWRTdGF0ZUVudGl0eToyNjIsbWFpblZpZGVvRW50aXR5OjI2MSxtYXJrZXJzRW5nYWdlbWVudFBhbmVsU3luY0VudGl0eToxOTYsbWFya2Vyc1Zpc2liaWxpdHlPdmVycmlkZUVudGl0eTozMTIsbXVzaWNBbGJ1bVJlbGVhc2VEZXRhaWw6MTgsbXVzaWNBbGJ1bVJlbGVhc2VEb3dubG9hZE1ldGFkYXRhRW50aXR5OjI1OSxtdXNpY0FsYnVtUmVsZWFzZToxNyxtdXNpY0FsYnVtUmVsZWFzZVVzZXJEZXRhaWw6MTksbXVzaWNBcnRpc3REZXRhaWw6MjEsCm11c2ljQXJ0aXN0OjIwLG11c2ljQXJ0aXN0VXNlckRldGFpbDoyMixtdXNpY0Rvd25sb2Fkc0xpYnJhcnlFbnRpdHk6MjU3LG11c2ljTGlicmFyeUVkaXQ6MTIxLG11c2ljTGlicmFyeVN0YXR1c0VudGl0eTozMTgsbXVzaWNQbGF5bGlzdDoyNCxtdXNpY1BsYXlsaXN0RG93bmxvYWRNZXRhZGF0YUVudGl0eToyNDgsbXVzaWNTaGFyZToxMDAsbXVzaWNUcmFja0RldGFpbDoyOSxtdXNpY1RyYWNrRG93bmxvYWRNZXRhZGF0YUVudGl0eToyMzQsbXVzaWNUcmFjazoyOCxtdXNpY1RyYWNrVXNlckRldGFpbDozMCxvZmZsaW5lT3JjaGVzdHJhdGlvbkFjdGlvbldyYXBwZXJFbnRpdHk6MTY5LG9mZmxpbmVWaWRlb1BvbGljeToxMzAsb2ZmbGluZVZpZGVvU3RyZWFtczoxOTgsb2ZmbGluZWFiaWxpdHlFbnRpdHk6MjQ2LG9yY2hlc3RyYXRpb25XZWJTYW1wbGluZ0VudGl0eToyNDIscGFnZUhlYWRlckVudGl0eTo0OTUscGFydHlHYW1lUGFuZWxFbnRpdHk6NjE4LHNsaWRlckdhbWVQYW5lbEVudGl0eTo2MzMsCnBkcFN0YXRlRW50aXR5OjUyNCxwaW5uZWRQcm9kdWN0RW50aXR5OjI3MyxwbGF5YmFja0RhdGE6MTE5LHBsYXllclN0YXRlRW50aXR5OjMyMyxwbGF5bGlzdFRodW1ibmFpbEVkaXRzRW50aXR5OjUzOSxxdWFudGl0eUluY3JlbWVudGVyRW50aXR5OjM1NixyZWZyZXNoOjE0OCxzYXZlVG9QbGF5bGlzdExpc3RFbnRpdHk6MjMxLHNlbGVjdGVkQ2hpcEluZGV4RW50aXR5UGF5bG9hZDo0Nzksc2VsZWN0aW9uVmFsdWVMaXN0RW50aXR5OjYzNCxzZXR0aW5nRW50aXR5OjI5NyxzdHJpbmdFbnRpdHk6MzgyLHN1Z2dlc3RlZEZlZWRiYWNrQ2hpcFN0YXRlRW50aXR5OjQ4NSx0cmFuc2ZlcjoxMjAsdHJlbmRpbmdPZmZlckVudGl0eTo0NjksdW5wbHVnZ2VkU2lkZXNoZWV0SGVhZGVyU3RhdGVFbnRpdHk6NjM1LHZpZGVvRG93bmxvYWRDb250ZXh0RW50aXR5OjQ2MSx2aWRlb092ZXJ2aWV3QXN5bmNEYXRhRW50aXR5OjU0NSx2aWRlb1BsYXliYWNrUG9zaXRpb25FbnRpdHk6NzYsdm90aW5nRW50aXR5OjU2MSwKeXRNYWluQ2hhbm5lbEVudGl0eToxNTIseW91Y2hhdFBlbmRpbmdSZXNwb25zZUVudGl0eTo1NTMseXRNYWluRG93bmxvYWRlZFZpZGVvRW50aXR5OjE1NSx5dE1haW5WaWRlb0VudGl0eToxNTF9O18udkE9e307Zm9yKGxldCBbYSxiXW9mIE9iamVjdC5lbnRyaWVzKF8udUEpKXtsZXQgYz1hLGQ9YjtkJiYoXy52QVtkXT1jKX07KCgpPT57dmFyIGE9ZD0+bmV3IFVpbnQ4QXJyYXkoZCksYj1kPT57dmFyIGU9bmV3IFVpbnQ4QXJyYXkoZC5sZW5ndGgpO2ZvcihsZXQgZj0wO2Y8ZC5sZW5ndGg7ZisrKWVbZl09ZFtmXTtyZXR1cm4gZX0sYz1uZXcgVWludDhBcnJheShbMV0pO3JldHVybiBjLmxlbmd0aD09PTEmJmNbMF09PT0xP2E6Yn0pKCk7Xy5TYWE9Xy4kbCgieXQtaWRiLXByZWYtc3RvcmFnZSIse3NlOntwcmVmczp7UGQ6MX19LHNoYXJlZDohMSx1cGdyYWRlKGEsYil7YigxKSYmXy5vbChfLmtsKGEsInByZWZzIix7a2V5UGF0aDoia2V5In0pLCJieUV4cGlyYXRpb24iLCJleHBpcmF0aW9uVGltZXN0YW1wTXMiKX0sdmVyc2lvbjoxfSk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBqRTtfLmlFPWZ1bmN0aW9uKGEsYil7YT1bKGEmMTY3MTE2ODApPj4+MTYsKGEmNjUyODApPj4+OCxhJjI1NV07cmV0dXJuYHJnYmEoJHthWzBdfSwgJHthWzFdfSwgJHthWzJdfSwgJHtifSlgfTtfLmtFPWZ1bmN0aW9uKGEpe2lmKGEuc291cmNlcylmb3IobGV0IGIgb2YgYS5zb3VyY2VzKWlmKGIuY2xpZW50UmVzb3VyY2U/LmltYWdlTmFtZXx8Yi5jdXN0b21JbWFnZVNvdXJjZSYmXy5CKGIuY3VzdG9tSW1hZ2VTb3VyY2UsakUpPy5jbGllbnRSZXNvdXJjZT8uaWNvbilyZXR1cm4gYn07Cl8ubEU9ZnVuY3Rpb24oYSl7aWYoYT8uY2xpZW50UmVzb3VyY2U/LmltYWdlTmFtZSl7bGV0IGI9YS5jbGllbnRSZXNvdXJjZT8uaW1hZ2VOYW1lO2E6e3N3aXRjaChiKXtjYXNlICJ5dF9wcmVtaXVtX3dvcmRtYXJrX2hlYWRlcl9saWdodCI6Y2FzZSAieXRfcHJlbWl1bV93b3JkbWFya19oZWFkZXJfZGFyayI6YT0iWU9VVFVCRV9QUkVNSVVNX0xPR09fU0hPUlQiO2JyZWFrIGE7Y2FzZSAieXRfd29yZG1hcmtfaGVhZGVyX2xpZ2h0IjpjYXNlICJ5dF93b3JkbWFya19oZWFkZXJfZGFyayI6YT0iTE9HT19XSVRIX1RFWFQiO2JyZWFrIGF9YT12b2lkIDB9cmV0dXJuIGF8fGdjYS5nZXQoYil8fGJ9aWYoYT8uY3VzdG9tSW1hZ2VTb3VyY2UmJihhPV8uQihhLmN1c3RvbUltYWdlU291cmNlLGpFKT8uY2xpZW50UmVzb3VyY2U/Lmljb24pKXJldHVybiBhfTtqRT1uZXcgXy5JKCJ5b3V0dWJlSWNvblNvdXJjZSIpO18ubUU9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7dmFyIGdjYT1uZXcgTWFwKFtbInl0X291dGxpbmVfYmFnX2JsYWNrXzI0IiwiYmFnIl1dKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5LRD1mdW5jdGlvbihhKXtpZihhPWEubWF0Y2goVWJhKSlyZXR1cm57aWNvbk5hbWU6YVsyXSxoeDphWzFdLnRvVXBwZXJDYXNlKCk9PT0iRklMTCIsaWNvblNpemU6TnVtYmVyKGFbM10pfX07Xy5MRD1uZXcgXy5WcygiSUNPTl9XSVpfQ09NUE9ORU5UX1RPS0VOIik7dmFyIFViYTtVYmE9L15ZVElDT05fKGZpbGx8b3V0bGluZSlfKFthLXpBLVowLTlfXSspX3MoWzAtOV0rKSQvaTsKXy5NRD1fLkwoKHtpY29uOmEsYWN0aXZlOmIsY2xhc3NOYW1lOmMsc3R5bGU6ZCx5cDplLGhjOmYscm9sZTpoLEdlOmssSGM6bCxhcmlhSGlkZGVuOm0sYXJpYUV4cGFuZGVkOm4sYXJpYUxhYmVsOnAsdGFiaW5kZXg6cixpZDp0LHNpemU6dixhZzp6LFpwOkUsZXI6QSx0aXRsZTpGfSk9Pnt2YXIgQz1fLk4oKCk9Pnt2YXIgUj1hPy4oKTtpZihSKXJldHVybiBfLktEKFIpfSx2b2lkIDAsIk0waTV2ZiIpLEc9KCk9PkMoKT8uaWNvbk5hbWU/P2E/LigpLEQ9KCk9PnY/LigpPz9DKCk/Lmljb25TaXplLEg9KCk9PmI/LigpPz9DKCk/Lmh4O3JldHVybiBfLksoXy5PLHtBOmEsdGhlbjooKT0+e3ZhciBSPV8ueSgpLnJlc29sdmUoXy5MRCk7cmV0dXJuIF8uSyhSLHtpY29uOkcseXA6ZSxoYzpmLEdlOmssSGM6bCxhcmlhRXhwYW5kZWQ6bix0YWJpbmRleDpyLGlkOnQsYWN0aXZlOkgsc2l6ZTpELHJvbGU6aCxjbGFzc05hbWU6YyxhcmlhSGlkZGVuOm0sYXJpYUxhYmVsOnAsc3R5bGU6KCk9Pgp7aWYoIUQoKSlyZXR1cm4gZD8uKCk7dmFyIE09YHdpZHRoOiAke0QoKX1weDsgaGVpZ2h0OiAke0QoKX1weDtgO3JldHVybiBkPy4oKT9gJHtNfSAke2QoKX1gOk19LHRpdGxlOkYsYWc6eixacDpFLGVyOkF9KX19KX0sImoiKTtfLk1ELmlkb21Db21wYXQ9e2NhbGxiYWNrczp7ZXI6ITB9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEtFLExFLG1jYSxuY2EsTkUscGNhLHFjYSxyY2EsdWNhLHdjYSx2Y2EsWEUseGNhLHljYSxBY2EsemNhO18uSkU9ZnVuY3Rpb24oYSl7YSY9MTY3NzcyMTU7dmFyIGI9WyhhJjE2NzExNjgwKT4+MTYsKGEmNjUyODApPj44LGEmMjU1XTthPWJbMF07dmFyIGM9YlsxXTtiPWJbMl07YT1OdW1iZXIoYSk7Yz1OdW1iZXIoYyk7Yj1OdW1iZXIoYik7aWYoYSE9KGEmMjU1KXx8YyE9KGMmMjU1KXx8YiE9KGImMjU1KSl0aHJvdyBFcnJvcigiUWNgIithKyJgIitjKyJgIitiKTtjPWE8PDE2fGM8PDh8YjtyZXR1cm4gYTwxNj8iIyIrKDE2Nzc3MjE2fGMpLnRvU3RyaW5nKDE2KS5zbGljZSgxKToiIyIrYy50b1N0cmluZygxNil9O0tFPWZ1bmN0aW9uKGEpe3JldHVybiBhLnNvdXJjZXMhPT12b2lkIDB8fGEucHJvY2Vzc29yIT09dm9pZCAwfTsKTEU9ZnVuY3Rpb24oYSl7dmFyIGI9YS50aHVtYm5haWxzO2lmKGIpe2E9e3NvdXJjZXM6W119O2ZvcihsZXQgYyBvZiBiKWI9e30sYi51cmw9Yy51cmwsYi53aWR0aD1jLndpZHRoLGIuaGVpZ2h0PWMuaGVpZ2h0LGEuc291cmNlcy5wdXNoKGIpO3JldHVybiBhfX07bWNhPWZ1bmN0aW9uKGEsYixjKXtjPWM/W2NdOltdO2Eub3BhY2l0eSYmYy5wdXNoKGBvcGFjaXR5OiAke2Eub3BhY2l0eX07YCk7YiYmYS5wbGFjZWhvbGRlckNvbG9yPyhhPV8uTkQoYS5wbGFjZWhvbGRlckNvbG9yKSxjLnB1c2goYGJhY2tncm91bmQtY29sb3I6ICR7YX07YCkpOmMucHVzaCgiYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Iik7cmV0dXJuIGMuam9pbigiICIpfTsKbmNhPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9WyJ5dENvcmVJbWFnZUhvc3QiXTtiJiZmLnB1c2goYik7Y3x8Zi5wdXNoKCJ5dENvcmVJbWFnZUZpbGxQYXJlbnRIZWlnaHQiKTtkfHxmLnB1c2goInl0Q29yZUltYWdlRmlsbFBhcmVudFdpZHRoIik7c3dpdGNoKGEuY29udGVudE1vZGUpe2Nhc2UgIkNPTlRFTlRfTU9ERV9TQ0FMRV9BU1BFQ1RfRklUIjpmLnB1c2goInl0Q29yZUltYWdlQ29udGVudE1vZGVTY2FsZUFzcGVjdEZpdCIpO2JyZWFrO2Nhc2UgIkNPTlRFTlRfTU9ERV9TQ0FMRV9BU1BFQ1RfRklMTCI6Zi5wdXNoKCJ5dENvcmVJbWFnZUNvbnRlbnRNb2RlU2NhbGVBc3BlY3RGaWxsIik7YnJlYWs7Y2FzZSAiQ09OVEVOVF9NT0RFX0NFTlRFUiI6Zi5wdXNoKCJ5dENvcmVJbWFnZUNvbnRlbnRNb2RlQ2VudGVyIik7YnJlYWs7ZGVmYXVsdDpmLnB1c2goInl0Q29yZUltYWdlQ29udGVudE1vZGVTY2FsZVRvRmlsbCIpfWEuZmxpcEZvclJ0bExheW91dCYmZi5wdXNoKCJ5dENvcmVJbWFnZUZsaXBSdGwiKTsKc3dpdGNoKGUpe2Nhc2UgIlRPUF9TVEFSVCI6Zi5wdXNoKGRvY3VtZW50LmJvZHk/LmdldEF0dHJpYnV0ZSgiZGlyIik9PT0icnRsIj8ieXRDb3JlSW1hZ2VPYmplY3RQb3NpdGlvblRvcFJpZ2h0IjoieXRDb3JlSW1hZ2VPYmplY3RQb3NpdGlvblRvcExlZnQiKX1yZXR1cm4gZi5qb2luKCIgIil9O18uTUU9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIob3JpZW50YXRpb246IGxhbmRzY2FwZSkiKS5tYXRjaGVzfTtORT1mdW5jdGlvbihhKXt2YXIgYj17fTthPV8uQihhLnByb2Nlc3NvcixvY2EpO3ZhciBjPShjPWE/LmltYWdlVGludD8uY29sb3IpP18uTkQoYyk6dm9pZCAwO2MmJihiLmNvbG9yPWMpO2lmKGM9cGNhKGEpKWIubnk9YztpZihhPXFjYShhKSliLk56PWE7cmV0dXJuIGJ9OwpwY2E9ZnVuY3Rpb24oYSl7dmFyIGI9YT8ubGluZWFyR3JhZGllbnQ7aWYoYiYmYj8uY29sb3JzJiZiPy5jb2xvcnM/Lmxlbmd0aCE9PTApe3ZhciBjPWIuY29sb3JzLm1hcChlPT5fLk5EKGUpKTthPWIuYW5nbGUhPT12b2lkIDA/YCR7Yi5hbmdsZX1kZWcsIGA6IiI7dmFyIGQ9Yi5wb3NpdGlvbnM7aWYoIWR8fGQubGVuZ3RoIT09Yy5sZW5ndGgpcmV0dXJuYGxpbmVhci1ncmFkaWVudCgke2F9JHtjLmpvaW4oIiwgIil9KWA7Yj1jLm1hcCgoZSxmKT0+YCR7ZX0gJHtkW2ZdKjEwMH0lYCk7cmV0dXJuYGxpbmVhci1ncmFkaWVudCgke2F9JHtiLmpvaW4oIiwgIil9KWB9fTsKcWNhPWZ1bmN0aW9uKGEpe2lmKChhPWE/LnJhZGlhbEdyYWRpZW50KSYmYT8uY29sb3JzJiZhPy5jb2xvcnM/Lmxlbmd0aCE9PTApe3ZhciBiPWEuY29sb3JzLm1hcChrPT5fLk5EKGspKSxjPWEuY2VudGVyVW5pdD8/IkRJTUVOU0lPTl9VTklUX0ZSQUNUSU9OIixkPWM9PT0iRElNRU5TSU9OX1VOSVRfUE9JTlQiPyJweCI6IiUiLGU9Yz09PSJESU1FTlNJT05fVU5JVF9GUkFDVElPTiI/MTAwOjE7Yz1gJHsoYS5jZW50ZXJYPz8uNSkqZX0ke2R9YDtkPWAkeyhhLmNlbnRlclk/Py41KSplfSR7ZH1gO3ZhciBmPWEucmFkaXVzO2U9IiI7ZT1mIT09dm9pZCAwP2BjaXJjbGUgJHtmfXB4YDoiZWxsaXBzZSI7dmFyIGg9YS5wb3NpdGlvbnM7aWYoIWh8fGgubGVuZ3RoIT09Yi5sZW5ndGgpcmV0dXJuYHJhZGlhbC1ncmFkaWVudCgke2V9IGF0ICR7Y30gJHtkfSwgJHtiLmpvaW4oIiwgIil9KWA7YT1iLm1hcCgoayxsKT0+YCR7a30gJHtoW2xdKjEwMH0lYCk7cmV0dXJuYHJhZGlhbC1ncmFkaWVudCgke2V9IGF0ICR7Y30gJHtkfSwgJHthLmpvaW4oIiwgIil9KWB9fTsKXy5PRT1mdW5jdGlvbihhKXtfLmpmLkdhKCgpPT57dHJ5e2EoKX1jYXRjaChiKXtfLk90KGIpfX0sOCl9O3JjYT1mdW5jdGlvbihhKXt2YXIgYj0oMSthLm1hcmdpbikqKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR8fHdpbmRvdy5pbm5lckhlaWdodCk7YS5qPWEuai5maWx0ZXIoYz0+e3ZhciBkPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7KGQ9Yj5kLnRvcCYmISFkLmhlaWdodCkmJmEuQihjKTtyZXR1cm4hZCYmYy5wYXJlbnROb2RlfSk7YS52PSExfTtfLlBFPWZ1bmN0aW9uKGEpe2lmKCJtYXRjaE1lZGlhImluIHdpbmRvdylyZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEoYS5sYW5kc2NhcGUrIiwiK2EucG9ydHJhaXQpLm1hdGNoZXN9O18uVEU9ZnVuY3Rpb24oKXtpZihRRT09PXZvaWQgMCl7bGV0IGE9Xy5QRShzY2EpO1FFPWEhPT12b2lkIDA/YTpfLlJFPj05MzAmJlNFPj01NTB8fF8uUkU+PTU1MCYmU0U+PTkzMH1yZXR1cm4gUUV9Owp1Y2E9ZnVuY3Rpb24oYSxiKXthLkptPWI7dGNhLm9ic2VydmUoYSl9Owp3Y2E9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGspe3ZhciBsPU1hdGgucm91bmQoKDAsXy5lbCkoKS1kKTtVRT1NYXRoLm1heCgwLFVFLTEpO2w9e2R1cmF0aW9uTG9hZGluZ01zOmwsd2lkdGhQeDphLm5hdHVyYWxXaWR0aCxoZWlnaHRQeDphLm5hdHVyYWxIZWlnaHQsdmlld1dpZHRoUHg6YS5jbGllbnRXaWR0aCx2aWV3SGVpZ2h0UHg6YS5jbGllbnRIZWlnaHQsZmluaXNoZWRMb2FkaW5nOiEwLGlzTG9hZEVycm9yOmssbG9hZE51bWJlcjplLGNvbmN1cnJlbnRMb2FkczpVRX07YiYmYi5pbWFnZUNsYXNzaWZpY2F0aW9uVHlwZSE9bnVsbCYmKGwuaW1hZ2VDbGFzc2lmaWNhdGlvblR5cGU9Yi5pbWFnZUNsYXNzaWZpY2F0aW9uVHlwZSk7aWYoIWspdHJ5e2xldCBtPXBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoYS5zcmMpO2lmKG0mJm0ubGVuZ3RoPjApe2xldCBuPW1bbS5sZW5ndGgtMV07bi50cmFuc2ZlclNpemUmJihsLmRvd25sb2FkZWRCeXRlcz1uLnRyYW5zZmVyU2l6ZSl9fWNhdGNoKG0pe31fLkVwKCJ0aHVtYm5haWxMb2FkZWQiLApsKTtpZihrPVZFLmdldChhKSlhLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLGsub25Mb2FkKSxhLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixrLm9uRXJyb3IpO1ZFLmRlbGV0ZShhKX1pZihfLngoIndlYl9pbWFnZV9sb2FkX3RlbGVtZXRyeSIpKXt2Y2EoYSk7VUUrKztXRSsrO3ZhciBkPSgwLF8uZWwpKCksZT1XRSxmPSgpPT57YyghMSl9LGg9KCk9PntjKCEwKX07YS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmKTthLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixoKTtWRS5zZXQoYSx7b25Mb2FkOmYsb25FcnJvcjpofSl9fTt2Y2E9ZnVuY3Rpb24oYSl7dmFyIGI9VkUuZ2V0KGEpO2ImJihhLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLGIub25Mb2FkKSxhLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixiLm9uRXJyb3IpLFVFPU1hdGgubWF4KDAsVUUtMSksVkUuZGVsZXRlKGEpKX07ClhFPWZ1bmN0aW9uKGEsYixjKXtiJiZfLlR0KGEsYik7YyYmYS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW1hZ2UtdW5sb2FkZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfTt4Y2E9ZnVuY3Rpb24oYSxiLGMsZCxlPSEwKXtmdW5jdGlvbiBmKCl7dmFyIGg9YyhiLGEpO2gmJmEuZ2V0QXR0cmlidXRlKCJzcmMiKSE9PWgmJihoIT09YS5zcmMmJihhLnNyYz1oKSx3Y2EoYSxkKSxkJiZYRShhLGQudGosZC5CbSkpfWEucmVtb3ZlQXR0cmlidXRlKCJzcmMiKTtkJiZYRShhLGQudGosZC5CbSk7YiYmKGU/dWNhKGEsZik6ZigpKX07eWNhPWZ1bmN0aW9uKGEsYixjKXtpZighYilyZXR1cm4hMTtiPWMoYixhKTtjPWEuZ2V0QXR0cmlidXRlKCJzcmMiKTtyZXR1cm4gYiYmYj09PWMmJmEuY29tcGxldGV9OwpBY2E9ZnVuY3Rpb24oYSxiLGM9ITEpe3ZhciBkPUtFKGEpP3suLi5hfTpMRShhKTtpZihkKXtkLmNvbnRlbnRNb2RlPWQuY29udGVudE1vZGU/P2IuY29udGVudE1vZGU7dmFyIGU9Yi5vbkxvYWQ7Yi5vbkxvYWQ9bD0+e3ZhciBtPWwudGFyZ2V0O2MmJm0ubmF0dXJhbFdpZHRoPT09MTIwfHxfLlN0KG0sInl0Q29yZUltYWdlTG9hZGVkIik7Yi5zZyYmbS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW1hZ2UtbG9hZGVkIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKTtlPy4obCl9O2IuQWImJmIuVGEmJihiLndpZHRoPWIuQWIpO2IuZGMmJmIuWWEmJihiLmhlaWdodD1iLmRjKTt2YXIgZj1fLmtFKGQpLGg9ZiYmXy5sRShmKSxrPU5FKGQpO2lmKGgpe2E9Zi5jbGllbnRSZXNvdXJjZT8uaW1hZ2VDb2xvcj9fLk5EKGYuY2xpZW50UmVzb3VyY2UuaW1hZ2VDb2xvcik6dm9pZCAwO2lmKGs9YXx8ay5jb2xvciliLnN0eWxlPWIuc3R5bGU/Yi5zdHlsZS5lbmRzV2l0aCgiOyIpP2Iuc3R5bGUrCmAgY29sb3I6ICR7a307YDpiLnN0eWxlK2A7IGNvbG9yOiAke2t9O2A6YGNvbG9yOiAke2t9O2A7cmV0dXJue3R5cGU6Imljb24iLGljb25OYW1lOmgsY29uZmlnOnsuLi5iLC4uLihiLmFsdD97fTp7YXJpYUhpZGRlbjoidHJ1ZSJ9KSxhcmlhTGFiZWw6Yi5hbHQscm9sZToiaW1nIn19fUtFKGEpfHwoYi5hbHQ9YS5hY2Nlc3NpYmlsaXR5JiZhLmFjY2Vzc2liaWxpdHkuYWNjZXNzaWJpbGl0eURhdGEmJmEuYWNjZXNzaWJpbGl0eS5hY2Nlc3NpYmlsaXR5RGF0YS5sYWJlbHx8Yi5hbHQsYi5zdHlsZT1tY2EoYSxiLldyLGIuc3R5bGUpLGIuaXNQcmVsb2FkZWQ9ISFfLkIoYSx6Y2EpPy5pc1ByZWxvYWRlZCk7Yi5jbGFzc05hbWU9bmNhKGQsYi5jbGFzc05hbWUsYi5ZYSxiLlRhLGIub2JqZWN0UG9zaXRpb24pO2IudGo9Inl0Q29yZUltYWdlTG9hZGVkIjtyZXR1cm57dHlwZToiaW1hZ2UiLGltYWdlOmQsY29uZmlnOmJ9fX07emNhPW5ldyBfLkkoIndlYlRodW1ibmFpbERldGFpbHNFeHRlbnNpb25EYXRhIik7dmFyIG9jYT1uZXcgXy5JKCJib3JkZXJJbWFnZVByb2Nlc3NvciIpO3ZhciBDY2E7W18uQmNhLENjYV09Xy5KKF8uTUUoKSx2b2lkIDAsIk8zWDJ3ZCIpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCgpPT57Q2NhKF8uTUUoKSl9KTtfLmZGPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5tYXJnaW49YTt0aGlzLkI9Yjt0aGlzLmo9W107dGhpcy52PSExO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLCgpPT57dGhpcy5vKCl9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCgpPT57dGhpcy5vKCl9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidXBkYXRldWkiLCgpPT57dGhpcy5vKCl9KTt2YXIgYz1uZXcgXy5XdCgoMCxfLkNhKSh0aGlzLm8sdGhpcyksMTAwKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwoKT0+e2MudigpfSwhMCk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsKDAsXy5DYSkodGhpcy5vLHRoaXMpKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RhdGUtbmF2aWdhdGVzdGFydCIsKCk9Pnt0aGlzLmo9W119KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RhdGUtbmF2aWdhdGVlbmQiLCgwLF8uQ2EpKHRoaXMubyx0aGlzKSl9b2JzZXJ2ZShhKXt0aGlzLmouaW5jbHVkZXMoYSl8fAp0aGlzLmoucHVzaChhKX11bm9ic2VydmUoYSl7dGhpcy5qPXRoaXMuai5maWx0ZXIoYj0+YiE9PWEpfW8oKXt0aGlzLnZ8fChfLk9FKCgpPT57cmNhKHRoaXMpfSksdGhpcy52PSEwKX1kaXNjb25uZWN0KCl7dGhpcy5qPVtdfX07dmFyIHNjYSxRRSxTRTtzY2E9e2xhbmRzY2FwZToiKG1pbi13aWR0aDogOTMxcHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkiLHBvcnRyYWl0OiIobWluLXdpZHRoOiA1NTBweCkgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIn07UUU9dm9pZCAwO18uZ0Y9dm9pZCAwO18uUkU9d2luZG93LmlubmVyV2lkdGg7U0U9d2luZG93LmlubmVySGVpZ2h0O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCgpPT57Xy5nRj1RRT12b2lkIDB9KTt2YXIgdGNhPSJJbnRlcnNlY3Rpb25PYnNlcnZlciJpbiB3aW5kb3c/bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChhLGIpPT57YS5maWx0ZXIoYz0+Yy5pbnRlcnNlY3Rpb25SZWN0LmhlaWdodD4wKS5mb3JFYWNoKCh7dGFyZ2V0OmN9KT0+e2MuSm0/LigpO2IudW5vYnNlcnZlKGMpfSl9LHtyb290TWFyZ2luOiIxMCUiLHRocmVzaG9sZDouMDF9KTpfLlRFKCk/e29ic2VydmUoYSl7Xy5qZi5HYSgoKT0+e3RyeXthLkptPy4oKX1jYXRjaChiKXtfLk90KGIpfX0sOCl9LHVub2JzZXJ2ZSgpe319Om5ldyBfLmZGKC4xLGE9PntfLmpmLkdhKCgpPT57dHJ5e2EuSm0/LigpfWNhdGNoKGIpe18uT3QoYil9fSw4KX0pO3ZhciBWRT1uZXcgV2Vha01hcCxXRT0wLFVFPTA7Xy5oRj1fLkwoYT0+e3ZhciBiPSExLGM9Xy51RSgiaW1nIixkPT57Xy5ZdSgoKT0+e2I9ITA7ZC5vbmxvYWQ9bnVsbH0pfSk7Xy5uRSgoKT0+e3ZhciBkPWEuZGF0YT8uKCksZT1hLkdsPy4oKS5TZyxmPWEuY29uZmlnKCksaD1jLnZhbHVlO2lmKGgpe3ZhciBrPShsLG0pPT57aWYoIWIpcmV0dXJuIGU/ZShsLG0pOmx9O18ueCgid2ViX2ltYWdlX2RvbnRfcmVsb2FkX3NhbWVfc3JjIikmJnljYShoLGQsayk/Xy54KCJ3ZWJfaW1hZ2VfZG9udF9yZWxvYWRfc2FtZV9zcmNfc2ltdWxhdGVfbG9hZCIpJiZoLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsb2FkIix7YnViYmxlczohMSxjYW5jZWxhYmxlOiExLGRldGFpbDp7bWVzc2FnZToiU2ltdWxhdGluZyBsb2FkIGV2ZW50IGZvciBhbHJlYWR5IGxvYWRlZCBpbWFnZSJ9fSkpOnhjYShoLGR8fG51bGwsayxmLGEubGF6eT8uKCkpfX0sIlJmRWdCYyIpO3JldHVybiBfLksoImltZyIse2VsOmMsY2xhc3M6KCk9PmEuY29uZmlnKCkuY2xhc3NOYW1lLAphbHQ6KCk9PmEuY29uZmlnKCkuYWx0LCJhcmlhLWhpZGRlbiI6KCk9PmEuY29uZmlnKCkuYXJpYUhpZGRlbiwiZGF0YS1kaXNhYmxlZCI6KCk9PmEuY29uZmlnKCkuaGMsc3R5bGU6KCk9PmEuY29uZmlnKCkuc3R5bGUsd2lkdGg6KCk9PmEuY29uZmlnKCkud2lkdGgsaGVpZ2h0OigpPT5hLmNvbmZpZygpLmhlaWdodCxkcmFnZ2FibGU6KCk9PmEuY29uZmlnKCkuZHJhZ2dhYmxlLCJvbjplcnJvciI6ZD0+YS5jb25maWcoKS5vbkVycm9yPy4oZCksIm9uOmxvYWQiOmQ9PmEuY29uZmlnKCkub25Mb2FkPy4oZCl9KX0sImwiKTtfLmhGLmlkb21Db21wYXQ9ITA7dmFyIGlGO18uakY9Xy5MKGE9Pnt2YXIgW2IsY109Xy5KKCExLHZvaWQgMCwiVEZhRUtkIiksZD0oKT0+e3ZhciBmPWEuZGF0YSgpO3JldHVybiBLRShmKT97Li4uZn06TEUoZik/P3t9fSxlPSgpPT4hZCgpLnNvdXJjZXM/Lmxlbmd0aHx8YigpO3JldHVybiBfLksoXy5PLHtBOigpPT57aWYoIV8ueCgid2ViX2xpbmVhcl9ncmFkaWVudF9raWxsc3dpdGNoIikpcmV0dXJuIE5FKGQoKSkubnl8fE5FKGQoKSkuTnp9LHRoZW46Zj0+Xy5LKCJkaXYiLHtjbGFzczpfLlAoInl0Q29yZUltYWdlSG9zdCIsInl0Q29yZUltYWdlR3JhZGllbnRDb250YWluZXIiLHt5dENvcmVJbWFnZUxvYWRlZDplfSl9LF8uSygiZGl2Iix7Y2xhc3M6Inl0Q29yZUltYWdlR3JhZGllbnQiLCJhcmlhLWhpZGRlbiI6InRydWUiLHN0eWxlOl8uSUUoe2JhY2tncm91bmQ6Zn0pfSksXy5LKGlGLHsuLi5hLG9uTG9hZDpoPT57YyghMCk7YS5vbkxvYWQ/LihoKX19KSksVzooKT0+Xy5LKGlGLHsuLi5hfSl9KX0sIm0iKTsKaUY9Xy5MKGE9Pnt2YXIgYj0oKT0+QWNhKGEuZGF0YSgpLHtjb250ZW50TW9kZTphLmNvbnRlbnRNb2RlPy4oKSx0ajphLnRqPy4oKSxpc1ByZWxvYWRlZDphLmlzUHJlbG9hZGVkPy4oKSxzZzphLnNnPy4oKSxCbTphLkJtPy4oKSx5cjphLnlyPy4oKSxZYTphLllhPy4oKSxUYTphLlRhPy4oKSxvYmplY3RQb3NpdGlvbjphLm9iamVjdFBvc2l0aW9uPy4oKSxBYjphLkFiPy4oKSxkYzphLmRjPy4oKSxXcjphLldyPy4oKSxOZzphLk5nPy4oKSxpc1RvZ2dsZWQ6YS5pc1RvZ2dsZWQ/LigpLGFsdDphLmFsdD8uKCksY2xhc3NOYW1lOmEuY2xhc3NOYW1lPy4oKSxvbkVycm9yOmEub25FcnJvcixvbkxvYWQ6YS5vbkxvYWQsc3R5bGU6YS5zdHlsZT8uKCksY29sb3I6YS5jb2xvcj8uKCksd2lkdGg6YS53aWR0aD8uKCksaGVpZ2h0OmEuaGVpZ2h0Py4oKSxhcmlhSGlkZGVuOmEuYXJpYUhpZGRlbj8uKCksZHJhZ2dhYmxlOmEuZHJhZ2dhYmxlPy4oKSxoYzphLmhjPy4oKSxzaXplOmEuc2l6ZT8uKCksCmltYWdlQ2xhc3NpZmljYXRpb25UeXBlOmEuaW1hZ2VDbGFzc2lmaWNhdGlvblR5cGU/LigpfSxhLlV3Py4oKSk7cmV0dXJuIF8uSyhfLkVFLG51bGwsXy5LKF8uQ0Use3doZW46KCk9PmIoKT8udHlwZT09PSJpbWFnZSJ9LCgpPT5fLksoXy5oRix7ZGF0YTooKT0+YigpLmltYWdlLEdsOntTZzooYyxkKT0+e3ZhciBlPWIoKS5pbWFnZS5zb3VyY2VzO3ZhciBmPWIoKS5jb25maWcuaXNQcmVsb2FkZWQsaD1iKCkuY29uZmlnLk5nLGs9YigpLmNvbmZpZy5BYixsPWIoKS5jb25maWcuZGMsbT1iKCkuY29uZmlnLnlyO2lmKCFlfHxlLmxlbmd0aD09PTB8fGVbMF0uY2xpZW50UmVzb3VyY2UpZT1udWxsO2Vsc2UgaWYoZiYmZVswXS51cmwpZT1lWzBdLnVybDtlbHNle2g9PT12b2lkIDAmJihoPSEwKTtkPWg/Xy5tRSooa3x8ZD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/LndpZHRofHwwKTpfLm1FKihsfHxkPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKT8uaGVpZ2h0fHwwKTtiOmlmKGQpe2lmKG0pZm9yKGxldCBuIG9mIGUpaWYoZj0Kbi51cmw/LmluZGV4T2YobSksZiE9PXZvaWQgMCYmZj49MCl7ZT1uO2JyZWFrIGJ9Zm9yKGxldCBuIG9mIGUpaWYobi53aWR0aCYmbi5oZWlnaHQmJihoJiZuLndpZHRoPj1kfHwhaCYmbi5oZWlnaHQ+PWQpKXtlPW47YnJlYWsgYn1mb3IobT1lLmxlbmd0aC0xO20+PTA7bS0tKWlmKGgmJmVbbV0ud2lkdGh8fCFoJiZlW21dLmhlaWdodCl7ZT1lW21dO2JyZWFrIGJ9ZT1lWzBdfWVsc2UgZT1lLmxlbmd0aD49MT9lW2UubGVuZ3RoLTFdOm51bGw7ZT1lPy51cmw/ZS51cmw6ZT8uaW1hZ2VEYXRhP2UuaW1hZ2VEYXRhOm51bGx9cmV0dXJuIGV8fCIifX0sY29uZmlnOigpPT57dmFyIGM9YigpLmNvbmZpZztmb3IobGV0IGQgaW4gYyljW2RdPT09dm9pZCAwJiZkZWxldGUgY1tkXTtyZXR1cm4gY30sbGF6eTphLlRifSkpLF8uSyhfLkNFLHt3aGVuOigpPT5iKCk/LnR5cGU9PT0iaWNvbiJ9LCgpPT5fLksoXy5NRCx7aWNvbjooKT0+YigpLmljb25OYW1lLHJvbGU6KCk9PmIoKS5jb25maWcucm9sZSwKY2xhc3NOYW1lOigpPT5iKCkuY29uZmlnLmNsYXNzTmFtZSxzdHlsZTooKT0+YigpLmNvbmZpZy5zdHlsZSxhcmlhTGFiZWw6KCk9PmIoKS5jb25maWcuYXJpYUxhYmVsLGFyaWFIaWRkZW46KCk9PmIoKS5jb25maWcuYXJpYUhpZGRlbixoYzooKT0+YigpLmNvbmZpZy5oYyxhY3RpdmU6KCk9PmIoKS5jb25maWcuaXNUb2dnbGVkLHNpemU6KCk9PmIoKS5jb25maWcuc2l6ZX0pKSl9LCJuIik7Xy5qRi5pZG9tQ29tcGF0PXtjYWxsYmFja3M6e2NhbGxiYWNrOiEwLG9uRXJyb3I6ITAsb25Mb2FkOiEwfX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uTko9bmV3IF8uSSgic2lnbmFsQWN0aW9uIik7Xy5PSj1jbGFzc3tjb25zdHJ1Y3RvcihhLGI9ITEsYz1udWxsKXt0aGlzLmFjdGlvbk5hbWU9YTt0aGlzLmo9Yjt0aGlzLmFyZ3M9Yzt0aGlzLnJldHVyblZhbHVlPVtdfX07Xy5QSj1uZXcgTWFwOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmhFPW5ldyBfLkkoImxheW91dFByb3BlcnRpZXMiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5rRj1uZXcgXy5WcygiREFSS19USEVNRV9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmxGPW5ldyBfLlZzKCJBUFBfRElSRUNUSU9OX1RPS0VOIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8udUY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iPy5pbml0aWFsO3JldHVybiBfLk4oKCk9PntfLkJ2KCEwKTtyZXR1cm4gYz1hKGMpfSx7ZXF1YWxzOmI/LmlzRXF1YWx9LCJyU2xLc2MiKX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBFY2EsRmNhLHZGLEdjYSx5RixCRixDRixKY2EsTGNhLERGLEVGLE5jYSxIRixPY2EsUWNhLElGLFJjYSxKRixTY2EsS0YsTEYsVGNhLE1GLFVjYSxORixWY2EsV2NhLEljYSxIY2E7CkVjYT1mdW5jdGlvbihhKXt2YXIgYj17c3RhdGU6Ik5PTkUifSxjPXtSaDpkPT57c3dpdGNoKGQuQ2IudG9rZW4pe2Nhc2UgXy5QYmEuQ2IudG9rZW46dmFyIGU9YjticmVhaztjYXNlIF8uT2JhLkNiLnRva2VuOmU9YS5XSDticmVhaztjYXNlIF8uTEMuQ2IudG9rZW46ZT1hLnJvb3RFbGVtZW50O2JyZWFrO2Nhc2UgXy5MYmEuQ2IudG9rZW46ZT1hLllKO2JyZWFrO2Nhc2UgXy5NQi5DYi50b2tlbjplPWEuRm87YnJlYWs7Y2FzZSBfLk1iYS5DYi50b2tlbjplPWEucmVuZGVyZXJEYXRhO2JyZWFrO2Nhc2UgXy5OYmEuQ2IudG9rZW46ZT1hLm9KO2JyZWFrO2Nhc2UgXy5OQi5DYi50b2tlbjplPWEucnZ9aWYoZSlkPWU7ZWxzZSBhOntmb3IoZT1jLnBhcmVudDtlOyl7dmFyIGY9ZTtpZihmLlJoKXtkPWYuUmgoZCk7YnJlYWsgYX1lPWUucGFyZW50fWU9ZC5DYi50b2tlbjtmPV8uV0MuZ2V0KGUpO2YhPT12b2lkIDA/ZD1mOihmPWQuQ2IuTXosZC5DYi5LcD8oZD1kLkNiLktwKCksZSYmZj09PQoicm9vdCImJl8uV0Muc2V0KGUsZCkpOmQ9Xy5hdSl9cmV0dXJuIGR9fTtfLkJ1KGMpO3JldHVybiBjfTtGY2E9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWJ9O3ZGPWZ1bmN0aW9uKGEsYil7aWYoYT09PWIpYT0hMDtlbHNlIGlmKEFycmF5LmlzQXJyYXkoYSkmJkFycmF5LmlzQXJyYXkoYikpYTppZihfLnlhKGEpJiZfLnlhKGIpJiZhLmxlbmd0aD09Yi5sZW5ndGgpe3ZhciBjPWEubGVuZ3RoLGQ9dkZ8fEZjYTtmb3IobGV0IGU9MDtlPGM7ZSsrKWlmKCFkKGFbZV0sYltlXSkpe2E9ITE7YnJlYWsgYX1hPSEwfWVsc2UgYT0hMTtlbHNlIGlmKF8uQWEoYSkmJl8uQWEoYikpYTppZihfLkZ4KGEpLmxlbmd0aCE9Xy5GeChiKS5sZW5ndGgpYT0hMTtlbHNle2ZvcihjIGluIGEpaWYoIXZGKGFbY10sYltjXSkpe2E9ITE7YnJlYWsgYX1hPSEwfWVsc2UgYT0hMTtyZXR1cm4gYX07Xy53Rj1mdW5jdGlvbihhLGIsYyl7Yz09PXZvaWQgMD9kZWxldGUgYVtiLm5hbWVdOmFbYi5uYW1lXT1jfTsKR2NhPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPSExO2FbXy5xRl0/UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoRXJyb3IoIkhiIiksMixhLnRhZ05hbWUpO30pOl8uWnQmJmQhPT1fLlhDP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pnt0aHJvdyBfLlV1KEVycm9yKCJFYiIpLDIsYS50YWdOYW1lKTt9KTooYS50ZXh0Q29udGVudCE9PSIiJiZhLnRleHRDb250ZW50IT09bnVsbHx8YS5jaGlsZEVsZW1lbnRDb3VudD4wKSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoRXJyb3IoIkZiIiksMixhLnRhZ05hbWUpO30pO3ZhciBmPV8uUnUoKCk9Pnt2YXIgaD1fLmt1KF8uenYpLGs9KCk9Pnt2YXIgbD0oXy5PQi5zdj8/Xy52ZChhKSkuX193aXpkaXNwYXRjaGVyO2w9RWNhKHtyb290RWxlbWVudDp7dmFsdWU6YX0sRm86Y3x8bD8ubnc/LigpLHJ2Omx9KTtsPV8uJHQobCk7dmFyIG09Xy5MQighMCk7Xy5ndisrO3RyeXtfLmJDKGIoKSxhKSwKXy5JQSghMSl9Y2F0Y2gobil7dGhyb3cgXy5JQSghMCksbjt9ZmluYWxseXtfLkxCKG0pLF8uJHQobCl9fTt0cnl7cmV0dXJuIGQ9PT1fLlhDP18udXYoaywhMSk6Xy5pdyhrKX1jYXRjaChsKXt0aHJvdyBfLlV1KGwsNCksbDt9ZmluYWxseXtfLmt1KGgpfX0pO2FbXy5xRl09ITA7cmV0dXJuKCk9PntlP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pnt0aHJvdyBfLlV1KEVycm9yKCJHYiIpLDIsYS50YWdOYW1lKTt9KTooYS50ZXh0Q29udGVudD0iIixmKCksZT0hMCxhW18ucUZdPSExKX19O18ueEY9ZnVuY3Rpb24oYSxiLGMpe2M/PyhjPXt9KTt2YXIgZD1jLkZvLGU9ISFfLkt1LkpxO2I9R2NhKGEsYixkLGMuSWspO2UmJl8uUEIoYSxkKTtfLlZCLmxvZyhhKTtyZXR1cm4gYn07Cl8uQUY9ZnVuY3Rpb24oYSl7dmFyIGI9e2FuZHJvaWRJbmNsdWRlRm9udFBhZGRpbmc6ITF9LGM9MCxkPVtdLGU9W10sZj1bXTtpZihhLnNpbXBsZVRleHQpcmV0dXJuIGIuY29udGVudD1hLnNpbXBsZVRleHQsYjtpZihhLnJ1bnM9PT12b2lkIDApcmV0dXJuIGIuY29udGVudD0iIixiO2ZvcihsZXQgbSBvZiBhLnJ1bnMpe3ZhciBoPW0udGV4dDthPWg/Lmxlbmd0aDtpZihoJiZhKXtkLnB1c2goaCk7aWYobS5ib2xkfHxtLml0YWxpY3N8fG0uc3RyaWtldGhyb3VnaHx8bS51bmRlcmxpbmV8fG0udGV4dENvbG9yIT1udWxsJiZtLnRleHRDb2xvciE9PTB8fG0uZGVlbXBoYXNpemUpe2g9ZTt2YXIgaz1oLnB1c2gsbD17c3RhcnRJbmRleDpjLGxlbmd0aDphfTttLmJvbGQmJihsLndlaWdodExhYmVsPSJGT05UX1dFSUdIVF9NRURJVU0iKTttLml0YWxpY3MmJihsLml0YWxpYz0hMCk7bS5zdHJpa2V0aHJvdWdoJiYobC5zdHJpa2V0aHJvdWdoPSJMSU5FX1NUWUxFX1NJTkdMRSIpO20udW5kZXJsaW5lJiYKKGwudW5kZXJsaW5lPSJMSU5FX1NUWUxFX1NJTkdMRSIpO20udGV4dENvbG9yIT1udWxsJiZtLnRleHRDb2xvciE9PTA/bC5mb250Q29sb3I9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmhhc0F0dHJpYnV0ZSgiZGFyayIpP20uZGFya01vZGVUZXh0Q29sb3J8fG0udGV4dENvbG9yOm0udGV4dENvbG9yOm0uZGVlbXBoYXNpemUmJihsLmZvbnRDb2xvcj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaGFzQXR0cmlidXRlKCJkYXJrIik/eUYoIiNhYWEiKTp5RigiIzYwNjA2MCIpKTtrLmNhbGwoaCxsKX1tLm5hdmlnYXRpb25FbmRwb2ludCYmKGg9ZixrPWgucHVzaCxsPXtzdGFydEluZGV4OmMsbGVuZ3RoOmEsb25UYXA6e2lubmVydHViZUNvbW1hbmQ6bS5uYXZpZ2F0aW9uRW5kcG9pbnR9fSxtLmxvZ2dpbmdEaXJlY3RpdmVzJiZfLndGKGwsekYsbS5sb2dnaW5nRGlyZWN0aXZlcyksay5jYWxsKGgsbCkpO2MrPWF9fWIuY29udGVudD1kLmpvaW4oIiIpO2Iuc3R5bGVSdW5zPWUubGVuZ3RoPwplOnZvaWQgMDtiLmNvbW1hbmRSdW5zPWYubGVuZ3RoP2Y6dm9pZCAwO3JldHVybiBifTt5Rj1mdW5jdGlvbihhKXt2YXIgYj1wYXJzZUludDtpZighSGNhLnRlc3QoYSkpdGhyb3cgRXJyb3IoIlBjYCIrYSk7YS5sZW5ndGg9PTQmJihhPWEucmVwbGFjZShJY2EsIiMkMSQxJDIkMiQzJDMiKSk7cmV0dXJuIGIoImZmIithLnRvTG93ZXJDYXNlKCkuc3Vic3RyaW5nKDEpLDE2KX07QkY9ZnVuY3Rpb24oYSl7aWYoYSlyZXR1cm4gT2JqZWN0LmVudHJpZXMoYSkuZmlsdGVyKChbLGJdKT0+YiE9PXZvaWQgMCYmYiE9PW51bGwmJmIhPT0iIikubWFwKChbYixjXSk9PmAke2IucmVwbGFjZSgvKFthLXpBLVpdKSg/PVtBLVpdKS9nLCIkMS0iKS50b0xvd2VyQ2FzZSgpfTogJHtjfTtgKS5qb2luKCIiKXx8dm9pZCAwfTsKQ0Y9ZnVuY3Rpb24oYSl7aWYoIWE/LnZhbHVlfHwhYT8udW5pdClyZXR1cm4iIjtzd2l0Y2goYS51bml0KXtjYXNlICJESU1FTlNJT05fVU5JVF9GUkFDVElPTiI6dmFyIGI9IiUiO2JyZWFrO2RlZmF1bHQ6Yj0icHgifWE9YS52YWx1ZTtiPT09IiUiJiYoYSo9MTAwKTtyZXR1cm5gJHthfSR7Yn1gfTtKY2E9ZnVuY3Rpb24oYSxiKXt2YXIgYz17Li4uYn07Zm9yKGxldCBbZCxlXW9mIG5ldyBNYXAoW1sib250b3VjaHN0YXJ0IixhLm9udG91Y2hzdGFydF0sWyJvbnRvdWNoZW5kIixhLm9udG91Y2hlbmRdLFsib250b3VjaG1vdmUiLGEub250b3VjaG1vdmVdXSkpe2xldCBmPWQsaD1lO2JbZl09az0+e2NbZl0/LihrKTtoKGspfX19OwpMY2E9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bInl0QXR0cmlidXRlZFN0cmluZ0xpbmsiXTtiPy51Ynx8KGI/LmlzT3ZlcmxheT9jLnB1c2goInl0QXR0cmlidXRlZFN0cmluZ0xpbmtPdmVybGF5Q2FsbFRvQWN0aW9uQ29sb3IiKTpjLnB1c2goInl0QXR0cmlidXRlZFN0cmluZ0xpbmtDYWxsVG9BY3Rpb25Db2xvciIpLGI/LlhhJiZjLnB1c2goInl0QXR0cmlidXRlZFN0cmluZ0xpbmtJbmhlcml0Q29sb3IiKSk7Yz17Y2xhc3NOYW1lOmMuam9pbigiICIpLHRhYmluZGV4OiIwIn07dmFyIGQ9YS5vblRhcHx8YS5vbkxvbmdQcmVzcztpZighZClyZXR1cm4gYzt2YXIgZT1hLm9uVGFwT3B0aW9ucz8uYWNjZXNzaWJpbGl0eUluZm8/LmFjY2Vzc2liaWxpdHlMYWJlbDtlJiYoYy5hcmlhTGFiZWw9ZSk7Yj1fLmJFKHtiaDpkLHV4OmMsSWQ6ISFiPy5JZCxxZDohMH0pO2Eub25Mb25nUHJlc3MmJihkPW5ldyBLY2EoKCk9Pnt2YXIgZj1fLlJEKGEub25Mb25nUHJlc3MpO2YmJl8ueSgpLnJlc29sdmUoXy5VRCkucmVzb2x2ZUNvbW1hbmQoZil9KSwKYiYmSmNhKGQsYikpO3JldHVybiBifHxjfTtERj1mdW5jdGlvbihhKXt2YXIgYj1hO2E8PTE2Nzc3MjE1JiYoYis9cGFyc2VJbnQoImZmMDAwMDAwIiwxNikpO3JldHVybiBfLk5EKGIpfTtFRj1mdW5jdGlvbih7aXNEYXJrVGhlbWU6YSxleHRlbnNpb246YixPcjpjfSl7dmFyIGQ9dm9pZCAwO2lmKGI9Yj8uY29sb3JNYXApe2E9YT8iVVNFUl9JTlRFUkZBQ0VfVEhFTUVfREFSSyI6IlVTRVJfSU5URVJGQUNFX1RIRU1FX0xJR0hUIjtmb3IobGV0IGUgb2YgYilpZihhPT09ZS5rZXkpe2Q9ZS52YWx1ZTticmVha319ZD09bnVsbCYmYyYmKGQ9Yyk7aWYoZClyZXR1cm4gREYoZCl9OwpOY2E9ZnVuY3Rpb24oYSxiPSExKXt2YXIgYz17fTtpZihhLnRleHREZWNvcmF0b3Ipe3ZhciBkPWEudGV4dERlY29yYXRvcjt2YXIgZT17fTt2YXIgZj1fLkIoZCxfLkZGKSxoPV8uQihkLEdGKTtpZihmKXtkPU9iamVjdDtoPWQuYXNzaWduO2xldCBrPXt9OyhiPUVGKHtleHRlbnNpb246Xy5CKGYuaGlnaGxpZ2h0VGV4dERlY29yYXRvckV4dGVuc2lvbnMsTWNhKSxpc0RhcmtUaGVtZTpiLE9yOmYuYmFja2dyb3VuZENvbG9yfSkpJiYoa1siYmFja2dyb3VuZC1jb2xvciJdPWIpO2YuYmFja2dyb3VuZENvcm5lclJhZGl1cyE9PXZvaWQgMCYmKGtbImJvcmRlci1yYWRpdXMiXT1gJHtmLmJhY2tncm91bmRDb3JuZXJSYWRpdXN9cHhgKTtmLmxlZnRQYWRkaW5nIT09dm9pZCAwJiYoa1sicGFkZGluZy1sZWZ0Il09YCR7Zi5sZWZ0UGFkZGluZ31weGApO2YucmlnaHRQYWRkaW5nIT09dm9pZCAwJiYoa1sicGFkZGluZy1yaWdodCJdPWAke2YucmlnaHRQYWRkaW5nfXB4YCk7Zi50b3BQYWRkaW5nIT09CnZvaWQgMCYmKGtbInBhZGRpbmctdG9wIl09YCR7Zi50b3BQYWRkaW5nfXB4YCk7Zi5ib3R0b21QYWRkaW5nIT09dm9pZCAwJiYoa1sicGFkZGluZy1ib3R0b20iXT1gJHtmLmJvdHRvbVBhZGRpbmd9cHhgKTtoLmNhbGwoZCxlLGspfWVsc2UgaCYmKGY9T2JqZWN0LGQ9Zi5hc3NpZ24sYj1iPyIjMmJhNjQwIjoiIzEwNzUxNiIsYj1oLmNvbG9yP0RGKGguY29sb3IpOmIsZC5jYWxsKGYsZSx7cGFkZGluZzoiMnB4IiwiYm9yZGVyLXRvcCI6YHNvbGlkICR7Yn0gMnB4YCwiYm9yZGVyLWJvdHRvbSI6YHNvbGlkICR7Yn0gMnB4YCxiYWNrZ3JvdW5kOmBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAke2J9IDNweCwgcmdiYSgwLCAwLCAwLCAwKSAzcHgpLCBsaW5lYXItZ3JhZGllbnQoMzE1ZGVnLCAke2J9IDNweCwgcmdiYSgwLCAwLCAwLCAwKSAzcHgpYH0pKTtlPU9iamVjdC5rZXlzKGUpLmxlbmd0aCE9PTA/ZTp2b2lkIDA7Yy5zdHlsZT1lO2E9YS50ZXh0RGVjb3JhdG9yO2U9W107Yj1fLkIoYSwKR0YpO18uQihhLF8uRkYpP2UucHVzaCgieXRBdHRyaWJ1dGVkU3RyaW5nSGlnaGxpZ2h0VGV4dERlY29yYXRvciIpOmImJmUucHVzaCgieXRBdHRyaWJ1dGVkU3RyaW5nQnJhY2tldFRleHREZWNvcmF0b3IiKTthPWUuam9pbigiICIpO2MuY2xhc3NOYW1lPWE7Yy5kaXI9ImF1dG8ifXJldHVybiBjfTtIRj1mdW5jdGlvbih7Y29uZmlnOmEsaW1hZ2U6YixnajpjLE9sOmQscnVuOmUsdGFnOmYsdGV4dExlbmd0aDpoLHN0YXJ0SW5kZXg6az0wLGxlbmd0aDpsfSl7az09PXZvaWQgMCYmKGs9MCk7ZT17cnVuOmUsc3RhcnRJbmRleDprLHdsOmwhPT12b2lkIDA/aytsOmgsdGFnOmZ9O2ImJihlLmltYWdlPWIpO2MmJihlLmdqPWMpO2QmJihlLk9sPWQpO2EmJihlLmNvbmZpZz1hKTtyZXR1cm4gZX07Ck9jYT1mdW5jdGlvbihhLGIpe2lmKGEud2VpZ2h0KXJldHVybiBhLndlaWdodDtzd2l0Y2goYS53ZWlnaHRMYWJlbCl7Y2FzZSAiRk9OVF9XRUlHSFRfVEhJTiI6cmV0dXJuIDEwMDtjYXNlICJGT05UX1dFSUdIVF9FWFRSQV9MSUdIVCI6cmV0dXJuIDIwMDtjYXNlICJGT05UX1dFSUdIVF9MSUdIVCI6cmV0dXJuIDMwMDtjYXNlICJGT05UX1dFSUdIVF9NRURJVU0iOnJldHVybiA1MDA7Y2FzZSAiRk9OVF9XRUlHSFRfU0VNSV9CT0xEIjpyZXR1cm4gNjAwO2Nhc2UgIkZPTlRfV0VJR0hUX0JPTEQiOnJldHVybiBiPzkwMDo3MDA7Y2FzZSAiRk9OVF9XRUlHSFRfRVhUUkFfQk9MRCI6cmV0dXJuIDgwMDtjYXNlICJGT05UX1dFSUdIVF9CTEFDSyI6cmV0dXJuIDkwMDtkZWZhdWx0OnJldHVybiA0MDB9fTsKUWNhPWZ1bmN0aW9uKGEsYj0hMSxjKXtiPUVGKHtleHRlbnNpb246Xy5CKGEuc3R5bGVSdW5FeHRlbnNpb25zLFBjYSksaXNEYXJrVGhlbWU6YixPcjphLmZvbnRDb2xvcn0pO3ZhciBkPVtdO2ImJmQucHVzaCgieXRBdHRyaWJ1dGVkU3RyaW5nTGlua0luaGVyaXRDb2xvciIpO2EuaXRhbGljJiZkLnB1c2goInl0QXR0cmlidXRlZFN0cmluZ0l0YWxpY2l6ZWQiKTthLnVuZGVybGluZSYmYS5zdHJpa2V0aHJvdWdoP2QucHVzaCgieXRBdHRyaWJ1dGVkU3RyaW5nVW5kZXJsaW5lU3RyaWtldGhyb3VnaCIsSUYoYS51bmRlcmxpbmUpKTphLnVuZGVybGluZT9kLnB1c2goInl0QXR0cmlidXRlZFN0cmluZ1VuZGVybGluZWQiLElGKGEudW5kZXJsaW5lKSk6YS5zdHJpa2V0aHJvdWdoJiZkLnB1c2goInl0QXR0cmlidXRlZFN0cmluZ1N0cmlrZXRocm91Z2giLElGKGEuc3RyaWtldGhyb3VnaCkpO2lmKGEuYmFzZWxpbmVPZmZzZXQpe2E6c3dpdGNoKGEuYmFzZWxpbmVPZmZzZXQpe2Nhc2UgIkJBU0VMSU5FX09GRlNFVF9TVUJTQ1JJUFQiOnZhciBlPQoieXRBdHRyaWJ1dGVkU3RyaW5nQmFzZWxpbmVPZmZzZXRTdWJzY3JpcHQiO2JyZWFrIGE7Y2FzZSAiQkFTRUxJTkVfT0ZGU0VUX1NVUEVSU0NSSVBUIjplPSJ5dEF0dHJpYnV0ZWRTdHJpbmdCYXNlbGluZU9mZnNldFN1cGVyc2NyaXB0IjticmVhayBhO2RlZmF1bHQ6ZT0ieXRBdHRyaWJ1dGVkU3RyaW5nQmFzZWxpbmVPZmZzZXRVbmtub3duIn1kLnB1c2goZSl9ZD1kLmpvaW4oIiAiKTtlPXt9O2lmKGEud2VpZ2h0fHxhLndlaWdodExhYmVsKWUuZm9udFdlaWdodD1PY2EoYSxjPy5xaCkudG9TdHJpbmcoKTtiJiYoZS5jb2xvcj1iKTtyZXR1cm57Y2xhc3NOYW1lOmQsc3R5bGU6ZX19O0lGPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlICJMSU5FX1NUWUxFX0RPVCI6cmV0dXJuInl0QXR0cmlidXRlZFN0cmluZ0xpbmVTdHlsZURvdCI7Y2FzZSAiTElORV9TVFlMRV9OT05FIjpyZXR1cm4ieXRBdHRyaWJ1dGVkU3RyaW5nTGluZVN0eWxlTm9uZSI7ZGVmYXVsdDpyZXR1cm4ieXRBdHRyaWJ1dGVkU3RyaW5nTGluZVN0eWxlU2luZ2xlIn19OwpSY2E9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgIlRFWFRfQUxJR05NRU5UX0xFRlQiOnJldHVybiJ5dEF0dHJpYnV0ZWRTdHJpbmdUZXh0QWxpZ25tZW50TGVmdCI7Y2FzZSAiVEVYVF9BTElHTk1FTlRfUklHSFQiOnJldHVybiJ5dEF0dHJpYnV0ZWRTdHJpbmdUZXh0QWxpZ25tZW50UmlnaHQiO2Nhc2UgIlRFWFRfQUxJR05NRU5UX0NFTlRFUiI6cmV0dXJuInl0QXR0cmlidXRlZFN0cmluZ1RleHRBbGlnbm1lbnRDZW50ZXIiO2Nhc2UgIlRFWFRfQUxJR05NRU5UX0pVU1RJRklFRCI6cmV0dXJuInl0QXR0cmlidXRlZFN0cmluZ1RleHRBbGlnbm1lbnRKdXN0aWZpZWQiO2Nhc2UgIlRFWFRfQUxJR05NRU5UX0xBWU9VVF9TVEFSVCI6cmV0dXJuInl0QXR0cmlidXRlZFN0cmluZ1RleHRBbGlnbm1lbnRMYXlvdXRTdGFydCI7ZGVmYXVsdDpyZXR1cm4ieXRBdHRyaWJ1dGVkU3RyaW5nVGV4dEFsaWdubWVudFVua25vd24ifX07CkpGPWZ1bmN0aW9uKGEsYil7cmV0dXJuISFifHwhKGEuY29tbWFuZFJ1bnMmJmEuY29tbWFuZFJ1bnMubGVuZ3RoIT09MHx8YS5wYXJhZ3JhcGhTdHlsZVJ1bnMmJmEucGFyYWdyYXBoU3R5bGVSdW5zLmxlbmd0aCE9PTApfTtTY2E9ZnVuY3Rpb24oYSl7cmV0dXJuIGI9Pnt2YXIgYz1hLnJ1bjsoYy5vblRhcCE9PXZvaWQgMHx8Yy5vbkxvbmdQcmVzcyE9PXZvaWQgMCkmJl8uQihjLHpGKSYmXy5KeChiLHtkYXRhOntsb2dnaW5nRGlyZWN0aXZlczpfLkIoYyx6Ril9LG9ic2VydmVyOl8ueSgpLnJlc29sdmUoXy5MeCksTmM6Xy5uRixlYjpfLm1GLGxheWVyOmIubGF5ZXJ9KX19O0tGPWZ1bmN0aW9uKGEsYixjLGQpe2ZvcihsZXQgZSBvZiBhLmxjKXtpZih0eXBlb2YgZT09PSJzdHJpbmciKXRocm93IEVycm9yKCJZYyIpO2lmKGUuc3RhcnQ8PWImJmM8PWUuZW5kKXtLRihlLGIsYyxkKTtyZXR1cm59fWEubGMucHVzaCh7ZGF0YTpkLGxjOltdLHN0YXJ0OmIsZW5kOmN9KX07CkxGPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBkPWIubGMubGVuZ3RoO2Q+PTA7ZC0tKXtsZXQgZT1iLmxjW2RdO3ZhciBjPWIubGNbZC0xXTtsZXQgZj1kPT09Yi5sYy5sZW5ndGg/Yi5lbmQ6ZS5zdGFydDtjPWQ9PT0wP2Iuc3RhcnQ6Yy5lbmQ7ZiE9PWMmJmIubGMuc3BsaWNlKGQsMCxhLnNsaWNlKGMsZikpO2UmJkxGKGEsZSl9fTtUY2E9ZnVuY3Rpb24oYSl7YS5zb3J0KChiLGMpPT57aWYoYi5zdGFydEluZGV4PGMuc3RhcnRJbmRleClyZXR1cm4tMTtpZihjLnN0YXJ0SW5kZXg8Yi5zdGFydEluZGV4KXJldHVybiAxO2I9Yi53bC1iLnN0YXJ0SW5kZXg7Yz1jLndsLWMuc3RhcnRJbmRleDtyZXR1cm4gYj5jPy0xOmM+Yj8xOjB9KX07Ck1GPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PT1iPyEwOmE9PT12b2lkIDB8fGI9PT12b2lkIDA/ITE6Xy54KCJ3ZWJfYXR0cmlidXRlZF9zdHJpbmdfZGVlcF9lcXVhbF9idWdmaXgiKT92RihhLGIpOmEuY29udGVudD09PWIuY29udGVudCYmYS5zdHlsZVJ1bnM/Lmxlbmd0aD09PWIuc3R5bGVSdW5zPy5sZW5ndGgmJmEuY29tbWFuZFJ1bnM/Lmxlbmd0aD09PWIuY29tbWFuZFJ1bnM/Lmxlbmd0aCYmYS5hdHRhY2htZW50UnVucz8ubGVuZ3RoPT09Yi5hdHRhY2htZW50UnVucz8ubGVuZ3RoJiZhLmRlY29yYXRpb25SdW5zPy5sZW5ndGg9PT1iLmRlY29yYXRpb25SdW5zPy5sZW5ndGh9O1VjYT1mdW5jdGlvbih7bGM6YX0pe3JldHVybiBhLm1hcChORil9OwpORj1mdW5jdGlvbihhKXtpZih0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiBhO3ZhciBiPWEuZGF0YTtiLmltYWdlIT09dm9pZCAwJiZiLmdqIT09dm9pZCAwPyhiPWEuZGF0YS5PbCxhPV8uSygic3BhbiIse2NsYXNzOmI/LmNsYXNzTmFtZSxzdHlsZTpCRihiPy5zdHlsZSksZGlyOmI/LmRpcixyb2xlOmI/LnJvbGUsdGFiaW5kZXg6Yj8udGFiaW5kZXghPT12b2lkIDA/TnVtYmVyKGIudGFiaW5kZXgpOnZvaWQgMCwiZm9yY2UtbmV3LXN0YXRlIjpiPy5xZCwib246Y2xpY2siOmI/Lm9uY2xpY2ssIm9uOnRvdWNoZW5kIjpiPy5vbnRvdWNoZW5kLCJvbjp0b3VjaG1vdmUiOmI/Lm9udG91Y2htb3ZlLCJvbjp0b3VjaHN0YXJ0IjpiPy5vbnRvdWNoc3RhcnR9LF8uSyhfLmpGLHtkYXRhOmEuZGF0YS5pbWFnZSwuLi5hLmRhdGEuZ2p9KSkpOihiPWEuZGF0YS5jb25maWcsYT1fLksoYS5kYXRhLnRhZyx7ZWw6Xy5yRihTY2EoYS5kYXRhKSksInByb3A6X2RhdGEiOmI/Lm51LCJwcm9wOnBhcmFtcyI6Yj8ucGFyYW1zLApjbGFzczpiPy5jbGFzc05hbWUsc3R5bGU6QkYoYj8uc3R5bGUpLGRpcjpiPy5kaXIsaHJlZjpiPy5ocmVmLHJlbDpiPy5yZWwscm9sZTpiPy5yb2xlLHRhcmdldDpiPy50YXJnZXQsdGl0bGU6Yj8udGl0bGUsdGFiaW5kZXg6Yj8udGFiaW5kZXghPT12b2lkIDA/TnVtYmVyKGIudGFiaW5kZXgpOnZvaWQgMCwiYXJpYS1oYXNwb3B1cCI6Yj8uYXJpYUhhc1BvcHVwLCJmb3JjZS1uZXctc3RhdGUiOmI/LnFkLCJhcmlhLWhpZGRlbiI6Yj8uYXJpYUhpZGRlbiwiYXJpYS1leHBhbmRlZCI6Yj8uYXJpYUV4cGFuZGVkLCJhcmlhLWxhYmVsIjpiPy5hcmlhTGFiZWwsIm9uOmNsaWNrIjpiPy5vbmNsaWNrLCJvbjp0b3VjaGVuZCI6Yj8ub250b3VjaGVuZCwib246dG91Y2htb3ZlIjpiPy5vbnRvdWNobW92ZSwib246dG91Y2hzdGFydCI6Yj8ub250b3VjaHN0YXJ0LCJvbjpwb2ludGVyZG93biI6Yj8ub25wb2ludGVyZG93biwib246a2V5ZG93biI6Yj8ub25rZXlkb3dufSxhLmxjLm1hcChORikpKTsKcmV0dXJuIF8uZkMoYSl9O1ZjYT1mdW5jdGlvbihhLGIpe3JldHVybiBhPT09Yj8hMDphPT09dm9pZCAwfHxiPT09dm9pZCAwPyExOmEuQ2o9PT1iLkNqJiZhLnViPT09Yi51YiYmYS5tYT09PWIubWEmJmEuaGVhZGVyUnVucz09PWIuaGVhZGVyUnVucyYmYS5pc092ZXJsYXk9PT1iLmlzT3ZlcmxheSYmYS5YYT09PWIuWGEmJmEudXNlcklucHV0PT09Yi51c2VySW5wdXQmJmEucWg9PT1iLnFofTtXY2E9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pih7YXJpYUxhYmVsOmEuYXJpYUxhYmVsPy4oKSxjbGFzc05hbWU6YS5jbGFzc05hbWU/LigpLHljOmEueWM/LigpLGlzT3ZlcmxheTphLmlzT3ZlcmxheT8uKCksWGE6YS5YYT8uKCksbWE6YS5tYT8uKCksQ2o6YS5Daj8uKCksdWI6YS51Yj8uKCkscmc6YS5yZz8uKCksbm9XcmFwOmEubm9XcmFwPy4oKSxJZDphLklkPy4oKSx1c2VySW5wdXQ6YS51c2VySW5wdXQ/LigpLGhlYWRlclJ1bnM6YS5oZWFkZXJSdW5zPy4oKSxxaDphLnFoPy4oKX0pfTsKSWNhPS8jKC4pKC4pKC4pLztIY2E9L14jKD86WzAtOWEtZl17M30pezEsMn0kL2k7Xy5YY2E9bmV3IF8uSSgiZW1vamkiKTt2YXIgekY9bmV3IF8uSSgibG9nZ2luZ0RpcmVjdGl2ZXMiKTtfLlljYT1uZXcgXy5JKCJ1bnBsdWdnZWRTdHJpbmdSdW5JbWFnZSIpO3ZhciBNY2E9bmV3IF8uSSgiaGlnaGxpZ2h0VGV4dERlY29yYXRvckNvbG9yTWFwRXh0ZW5zaW9uIik7dmFyIFBjYT1uZXcgXy5JKCJzdHlsZVJ1bkNvbG9yTWFwRXh0ZW5zaW9uIik7dmFyIFpjYT1uZXcgXy5JKCJhY2Nlc3NpYmlsaXR5UHJvcGVydGllcyIpO3ZhciBHRj1uZXcgXy5JKCJicmFja2V0VGV4dERlY29yYXRvciIpO18uRkY9bmV3IF8uSSgiaGlnaGxpZ2h0VGV4dERlY29yYXRvciIpO3ZhciAkY2E9bmV3IF8uSSgiaW1hZ2VUeXBlIik7dmFyIGFkYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuRD01MDA7dGhpcy5qPU5hTjt0aGlzLnY9dGhpcy5vPSExO3RoaXMuQj1hPT57dmFyIGI9bmV3IEN1c3RvbUV2ZW50KCJMT05HX1BSRVNTIik7YS5jaGFuZ2VkVG91Y2hlc1swXS50YXJnZXQ/LmRpc3BhdGNoRXZlbnQoYil9O3RoaXMub250b3VjaHN0YXJ0PWE9Pnt0aGlzLmo9Xy5xeChfLmpmLCgpPT57dGhpcy5CKGEpO3RoaXMubz0hMH0sdGhpcy5EKX07dGhpcy5vbnRvdWNobW92ZT0oKT0+e18uamYuQWEodGhpcy5qKTt0aGlzLmo9TmFOO3RoaXMubz0hMTt0aGlzLnY9ITB9O3RoaXMub250b3VjaGVuZD1hPT57dGhpcy5qJiYhdGhpcy5vJiYhdGhpcy52JiZhLmNoYW5nZWRUb3VjaGVzWzBdLnRhcmdldD8uZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImNsaWNrIikpO18uamYuQWEodGhpcy5qKTt0aGlzLmo9TmFOO3RoaXMudj10aGlzLm89ITF9fX07dmFyIEtjYT1jbGFzcyBleHRlbmRzIGFkYXtjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMuY2FsbGJhY2s9YTt0aGlzLkI9Yj0+e3RoaXMuY2FsbGJhY2s/LihiKX19fTt2YXIgYmRhO2JkYT1fLngoImFsbG93X25lc3RlZF9yZW5kZXJfa3MiKT92b2lkIDA6e0lrOl8uWEN9OwpfLlY9Xy5MKGE9Pnt2YXIgYj1XY2EoYSksYz1lPT57dmFyIGYsaCxrPV8uckYocD0+e2Y9ZSgpO2g9Xy51digoKT0+e2Zvcih2YXIgciBvZiBtKCkpe2xldCB0PU5GKHIpO3Q9dHlwZW9mIHQ9PT0ic3RyaW5nIj9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KTp0O2lmKCEodCBpbnN0YW5jZW9mIE5vZGUpKXtyPW5ldyBfLlhqKCJQYXJ0IGlzIG5vdCBhIG5vZGUiLHQsdHlwZW9mIHQpO18uR3Aocik7YnJlYWt9cC5hcHBlbmRDaGlsZCh0KX19KX0pLGw9Xy51RihiLHtpc0VxdWFsOlZjYX0pLG09KCk9Pnt2YXIgcD1lKCkscj1sKCksdD1bXSx2PXAuY29udGVudC5sZW5ndGgsej1fLnkoKS5yZXNvbHZlKF8uSW4oXy5rRikpPy4oKTtpZihwLnBhcmFncmFwaFN0eWxlUnVucylmb3IobGV0IE0gb2YgcC5wYXJhZ3JhcGhTdHlsZVJ1bnMpe3ZhciBFPXQsQT1FLnB1c2g7YTp7aWYoIU0ubGlzdEdyb3VwPy5saXN0SXRlbXMpe3ZhciBGPVtdO2JyZWFrIGF9Rj1bXTtiOnN3aXRjaChNLmxpc3RHcm91cC5saXN0VHlwZSl7Y2FzZSAiTElTVF9UWVBFX0JVTExFVCI6dmFyIEM9CiJ1bCI7YnJlYWsgYjtkZWZhdWx0OkM9InNwYW4ifUYucHVzaChIRih7cnVuOk0sdGV4dExlbmd0aDp2LHRhZzpDLGNvbmZpZzp7Y2xhc3NOYW1lOiJ5dEF0dHJpYnV0ZWRTdHJpbmdMaXN0R3JvdXAifSxzdGFydEluZGV4Ok0uc3RhcnRJbmRleCxsZW5ndGg6TS5sZW5ndGh9KSk7Zm9yKGxldCBTIG9mIE0ubGlzdEdyb3VwLmxpc3RJdGVtcyl7Yjpzd2l0Y2goTS5saXN0R3JvdXAubGlzdFR5cGUpe2Nhc2UgIkxJU1RfVFlQRV9CVUxMRVQiOkM9ImxpIjticmVhayBiO2RlZmF1bHQ6Qz0ic3BhbiJ9Ri5wdXNoKEhGKHtydW46TSx0ZXh0TGVuZ3RoOnYsdGFnOkMsc3RhcnRJbmRleDpTLnN0YXJ0SW5kZXgsbGVuZ3RoOlMubGVuZ3RofSkpfX1BLmNhbGwoRSwuLi5GKX1pZihwLnN0eWxlUnVucyYmIXI/LkNqKWZvcih2YXIgRyBvZiBwLnN0eWxlUnVucylFPVFjYShHLHosciksdC5wdXNoKEhGKHtydW46Ryx0ZXh0TGVuZ3RoOnYsdGFnOiJzcGFuIixjb25maWc6RSxzdGFydEluZGV4Okcuc3RhcnRJbmRleCwKbGVuZ3RoOkcubGVuZ3RofSkpO2lmKHAuZGVjb3JhdGlvblJ1bnMpZm9yKHZhciBEIG9mIHAuZGVjb3JhdGlvblJ1bnMpRz1OY2EoRCx6KSxFPV8uQihELnRleHREZWNvcmF0b3IsR0YpLEE9Xy5CKEQudGV4dERlY29yYXRvcixHRiksdC5wdXNoKEhGKHtydW46RCx0ZXh0TGVuZ3RoOnYsdGFnOiJzcGFuIixjb25maWc6RyxzdGFydEluZGV4Ol8uQihELnRleHREZWNvcmF0b3IsXy5GRik/LnN0YXJ0SW5kZXh8fEU/LnN0YXJ0SW5kZXh8fDAsbGVuZ3RoOl8uQihELnRleHREZWNvcmF0b3IsXy5GRik/Lmxlbmd0aHx8QT8ubGVuZ3RofHwwfSkpO2lmKHAuY29tbWFuZFJ1bnMmJiFyPy5tYSlmb3IodmFyIEggb2YgcC5jb21tYW5kUnVucyl6PUxjYShILHIpLHQucHVzaChIRih7cnVuOkgsdGV4dExlbmd0aDp2LHRhZzoiYSIsY29uZmlnOnosc3RhcnRJbmRleDpILnN0YXJ0SW5kZXgsbGVuZ3RoOkgubGVuZ3RofSkpO2lmKHAuYXR0YWNobWVudFJ1bnMpZm9yKGxldCBNIG9mIHAuYXR0YWNobWVudFJ1bnMpe3A9CntjbGFzc05hbWU6Inl0QXR0cmlidXRlZFN0cmluZ0lubGluZUJsb2NrTW9kIn07TS5lbGVtZW50Py5wcm9wZXJ0aWVzJiYoSD17fSx6PV8uQihNLmVsZW1lbnQ/LnByb3BlcnRpZXMsXy5oRSksej8ubWFyZ2luJiYoej16Lm1hcmdpbixEPShHPV8udygiSFRNTF9ESVIiKT09PSJydGwifHxkb2N1bWVudC5ib2R5LmdldEF0dHJpYnV0ZSgiZGlyIik9PT0icnRsIik/ei5lbmR8fHoucmlnaHQ6ei5zdGFydHx8ei5sZWZ0LEc9Rz96LnN0YXJ0fHx6LmxlZnQ6ei5lbmR8fHoucmlnaHQsRCYmKEhbIm1hcmdpbi1sZWZ0Il09Q0YoRCkpLEcmJihIWyJtYXJnaW4tcmlnaHQiXT1DRihHKSksei50b3AmJihIWyJtYXJnaW4tdG9wIl09Q0Yoei50b3ApKSx6LmJvdHRvbSYmKEhbIm1hcmdpbi1ib3R0b20iXT1DRih6LmJvdHRvbSkpKSxIPU9iamVjdC5rZXlzKEgpLmxlbmd0aCE9PTA/SDp2b2lkIDAscC5zdHlsZT1IKTtIPXthbHQ6IiIsWWE6ITAsVGE6ITB9O3o9WyJ5dEF0dHJpYnV0ZWRTdHJpbmdJbWFnZUVsZW1lbnQiXTsKaWYoTS5hbGlnbm1lbnQpe2E6c3dpdGNoKE0uYWxpZ25tZW50KXtjYXNlICJBTElHTk1FTlRfQkFTRUxJTkUiOkQ9Inl0QXR0cmlidXRlZFN0cmluZ0ltYWdlQWxpZ25tZW50QmFzZWxpbmUiO2JyZWFrIGE7Y2FzZSAiQUxJR05NRU5UX1ZFUlRJQ0FMX0NFTlRFUiI6RD0ieXRBdHRyaWJ1dGVkU3RyaW5nSW1hZ2VBbGlnbm1lbnRWZXJ0aWNhbENlbnRlciI7YnJlYWsgYTtkZWZhdWx0OkQ9Inl0QXR0cmlidXRlZFN0cmluZ0ltYWdlQWxpZ25tZW50Qm90dG9tIn16LnB1c2goRCl9TS5lbGVtZW50Py5wcm9wZXJ0aWVzJiYoRD17fSxHPV8uQihNLmVsZW1lbnQucHJvcGVydGllcyxfLmhFKSxHPy5oZWlnaHQmJihELmhlaWdodD1DRihHLmhlaWdodCkpLEc/LndpZHRoJiYoRC53aWR0aD1DRihHLndpZHRoKSksRD1PYmplY3Qua2V5cyhEKS5sZW5ndGghPT0wP0Q6dm9pZCAwLEguc3R5bGU9QkYoRCksSC5hbHQ9Xy5CKE0uZWxlbWVudC5wcm9wZXJ0aWVzLFpjYSk/LmxhYmVsfHwiIik7SC5jbGFzc05hbWU9Cnouam9pbigiICIpO3o9TS5lbGVtZW50Py50eXBlP18uQihNLmVsZW1lbnQudHlwZSwkY2EpPy5pbWFnZTp2b2lkIDA7dC5wdXNoKEhGKHtydW46TSx0ZXh0TGVuZ3RoOnYsdGFnOiJpbWciLGltYWdlOnosZ2o6SCxPbDpwLHN0YXJ0SW5kZXg6TS5zdGFydEluZGV4LGxlbmd0aDpNLmxlbmd0aD8/MH0pKX1pZihyPy5oZWFkZXJSdW5zKWZvcih2YXIgUiBvZiByLmhlYWRlclJ1bnMpaWYoUi5oZWFkZXJNYXBwaW5nJiZbIkFUVFJJQlVURURfU1RSSU5HX0hFQURFUl9NQVBQSU5HX0hFQURJTkdfMSIsIkFUVFJJQlVURURfU1RSSU5HX0hFQURFUl9NQVBQSU5HX0hFQURJTkdfMiIsIkFUVFJJQlVURURfU1RSSU5HX0hFQURFUl9NQVBQSU5HX0hFQURJTkdfMyJdLmluY2x1ZGVzKFIuaGVhZGVyTWFwcGluZykpe2E6e3N3aXRjaChSLmhlYWRlck1hcHBpbmcpe2Nhc2UgIkFUVFJJQlVURURfU1RSSU5HX0hFQURFUl9NQVBQSU5HX0hFQURJTkdfMSI6cj0ieXRBdHRyaWJ1dGVkU3RyaW5nSGVhZGluZzEiOwpicmVhayBhO2Nhc2UgIkFUVFJJQlVURURfU1RSSU5HX0hFQURFUl9NQVBQSU5HX0hFQURJTkdfMiI6cj0ieXRBdHRyaWJ1dGVkU3RyaW5nSGVhZGluZzIiO2JyZWFrIGE7Y2FzZSAiQVRUUklCVVRFRF9TVFJJTkdfSEVBREVSX01BUFBJTkdfSEVBRElOR18zIjpyPSJ5dEF0dHJpYnV0ZWRTdHJpbmdIZWFkaW5nMyI7YnJlYWsgYX1yPXZvaWQgMH10LnB1c2goSEYoe3J1bjpSLHRleHRMZW5ndGg6dix0YWc6InNwYW4iLGNvbmZpZzpyP3tjbGFzc05hbWU6cn06dm9pZCAwLHN0YXJ0SW5kZXg6Ui5zdGFydEluZGV4LGxlbmd0aDpSLmxlbmd0aH0pKX1pZihsKCk/LnVzZXJJbnB1dClmb3IobGV0IE0gb2YgdCl7aWYoTS50YWc9PT0iYSJ8fE0udGFnPT09ImxpIiljb250aW51ZTtsZXQgUzsoUz1NKS5jb25maWd8fChTLmNvbmZpZz17fSk7TS50YWc9PT0idWwiP00uY29uZmlnLmRpcj1fLnkoKS5yZXNvbHZlKF8ubEYpOk0uY29uZmlnLmRpcj0iYXV0byJ9aWYoZSgpLmNvbnRlbnQpe3Y9ZSgpLmNvbnRlbnQ7ClRjYSh0KTtSPXtkYXRhOm51bGwsc3RhcnQ6MCxlbmQ6di5sZW5ndGgsbGM6W119O2ZvcihsZXQgTSBvZiB0KUtGKFIsTS5zdGFydEluZGV4LE0ud2wsTSk7TEYodixSKTt0PVIubGN9ZWxzZSB0PVtdO3JldHVybiB0fSxuPSEwO18ubkUoKCk9PntlKCk7bCgpO2lmKG4mJihuPSExLE1GKGUoKSxmKSkpcmV0dXJuO3ZhciBwPW0oKTtQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57dmFyIHI9ay52YWx1ZTtyJiYoci5pbm5lclRleHQ9IiIsaD8uKCksaD1fLnhGKHIsKCk9Pl8uSyhVY2Ese2xjOnB9KSxiZGEpKX0pfSwidjJaMG9lIik7cmV0dXJuIF8uSygic3BhbiIse2VsOmssY2xhc3M6KCk9Pnt2YXIgcDtpZihwPWUoKSl7cD1lKCk7dmFyIHI9YigpO2xldCB0PVtdO3QucHVzaCgieXRBdHRyaWJ1dGVkU3RyaW5nSG9zdCIpO3I/LmNsYXNzTmFtZSYmdC5wdXNoKHI/LmNsYXNzTmFtZSk7cj8ueWM/dC5wdXNoKCJ5dEF0dHJpYnV0ZWRTdHJpbmdFbGxpcHNpc1RydW5jYXRlIik6cj8ubm9XcmFwPwp0LnB1c2goInl0QXR0cmlidXRlZFN0cmluZ1doaXRlU3BhY2VOb1dyYXAiKTpyPy5yZ3x8dC5wdXNoKCJ5dEF0dHJpYnV0ZWRTdHJpbmdXaGl0ZVNwYWNlUHJlV3JhcCIpO3I/LlhhJiZ0LnB1c2goInl0QXR0cmlidXRlZFN0cmluZ0xpbmtJbmhlcml0Q29sb3IiKTtwLmFsaWdubWVudCYmdC5wdXNoKFJjYShwLmFsaWdubWVudCkpO3AubGluZUJyZWFrTW9kZSYmdC5wdXNoKCJ5dEF0dHJpYnV0ZWRTdHJpbmdXb3JkV3JhcHBpbmciKTtwPXQuam9pbigiICIpfXJldHVybiBwfSxzdHlsZTphLnN0eWxlLGRpcjooKT0+YigpLnVzZXJJbnB1dD8iYXV0byI6dm9pZCAwLCJhcmlhLWxhYmVsIjooKT0+SkYoZSgpLGIoKS5hcmlhTGFiZWwpP2IoKS5hcmlhTGFiZWw6dm9pZCAwLHJvbGU6KCk9PkpGKGUoKSxiKCkuYXJpYUxhYmVsKT8idGV4dCI6dm9pZCAwfSl9LGQ9Xy51RigoKT0+e3ZhciBlPWEudGV4dD8uKCk7aWYoZSlyZXR1cm4gZT1lPy5jb250ZW50IT09dm9pZCAwP2U6Xy5BRihlKSwKZT8uY29udGVudD9lOnZvaWQgMH0se2lzRXF1YWw6TUZ9KTtyZXR1cm4gYS5ZdT9jKGQpOl8uSyhfLk8se0E6ZCx0aGVuOmN9KX0sInEiKTtfLlYuaWRvbUNvbXBhdD0hMDsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIFFKO1FKPWZ1bmN0aW9uKGEsYil7aWYoIWEpcmV0dXJuIG51bGw7YT1PYmplY3Qua2V5cyhhKTtmb3IobGV0IGMgb2YgYSlpZihhPWMudG9Mb3dlckNhc2UoKSxhLmluZGV4T2YoYixhLmxlbmd0aC1iLmxlbmd0aCk+LTEpcmV0dXJuIGM7cmV0dXJuIG51bGx9O18uUko9ZnVuY3Rpb24oYSl7dmFyIGI9UUooYSwiYWN0aW9uIil8fFFKKGEsImNvbW1hbmQiKXx8UUooYSwiZW5kcG9pbnQiKTtpZighYilyZXR1cm4gbnVsbDt7dmFyIGM9Inl0IitiO2xldCBkPV8uUEouZ2V0KGMpO2Q/Yz1kOihiPWB5dC0ke2IucmVwbGFjZSgvKFtBLVpdKS9nLCItJDEiKS50b0xvd2VyQ2FzZSgpfWAsXy5QSi5zZXQoYyxiKSxjPWIpfV8uQihhLF8uTkopJiYoYys9Ii0iK18uQihhLF8uTkopLnNpZ25hbC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL18vZywiLSIpKTtyZXR1cm4gY307Xy5TSj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaj1uZXcgTWFwfX07Xy53YShfLlNKKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEZkYSxHZGEsQ0gsSGRhLERILEVILEZILElkYTtGZGE9ZnVuY3Rpb24oYSxiPTAsYz0tMSl7aWYoIWEudG90YWxMZW5ndGh8fCFjKXJldHVybiBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDApKTtjPDAmJihjPWEudG90YWxMZW5ndGgtYik7YS5mb2N1cyhiKTtpZighKGItYS52K2M8PWEualthLm9dLmxlbmd0aCkpe3ZhciBkPWEubyxlPWEudjthLmZvY3VzKGIrYy0xKTtlPW5ldyBVaW50OEFycmF5KGEudithLmpbYS5vXS5sZW5ndGgtZSk7bGV0IGY9MDtmb3IobGV0IGg9ZDtoPD1hLm87aCsrKWUuc2V0KGEualtoXSxmKSxmKz1hLmpbaF0ubGVuZ3RoO2Euai5zcGxpY2UoZCxhLm8tZCsxLGUpO2Eubz0wO2Eudj0wO2EuZm9jdXMoYil9ZD1hLmpbYS5vXTtyZXR1cm4gbmV3IERhdGFWaWV3KGQuYnVmZmVyLGQuYnl0ZU9mZnNldCtiLWEudixjKX07CkdkYT1mdW5jdGlvbihhLGI9MCxjPS0xKXthPUZkYShhLGIsYyk7cmV0dXJuIG5ldyBVaW50OEFycmF5KGEuYnVmZmVyLGEuYnl0ZU9mZnNldCxhLmJ5dGVMZW5ndGgpfTtDSD1mdW5jdGlvbihhLGIpe2EuZm9jdXMoYik7cmV0dXJuIGEualthLm9dW2ItYS52XX07CkhkYT1mdW5jdGlvbihhKXtpZighYS5sZW5ndGgpcmV0dXJuIiI7dHJ5e2lmKF8uc0EpcmV0dXJuIF8uc0EuZGVjb2RlKGEpO2lmKHR5cGVvZiBGZXRjaEludGVybmFsIT09InVuZGVmaW5lZCIpcmV0dXJuIEZldGNoSW50ZXJuYWwuZGVjb2RlRnJvbVVURjgoYSl9Y2F0Y2h7fWZvcih2YXIgYj0wLGM9W10sZD1hLmxlbmd0aDtiPGQ7KXtsZXQgZj0wO2Zvcig7ZjwxMDI0JiZiPGQ7KXt2YXIgZT1hW2IrK107aWYoZTwxMjgpe18uckFbZisrXT1lO2NvbnRpbnVlfWlmKGU8MjI0KWU9KGUmMzEpPDw2fGFbYisrXSY2MztlbHNlIGlmKGU8MjQwKWU9KGUmMTUpPDwxMnwoYVtiKytdJjYzKTw8NnxhW2IrK10mNjM7ZWxzZXtpZihmKzE9PT0xMDI0KXstLWI7YnJlYWt9ZT0oZSY3KTw8MTh8KGFbYisrXSY2Myk8PDEyfChhW2IrK10mNjMpPDw2fGFbYisrXSY2MztlLT02NTUzNjtfLnJBW2YrK109NTUyOTZ8ZT4+MTA7ZT01NjMyMHxlJjEwMjN9Xy5yQVtmKytdPWV9ZT1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywKXy5yQSk7ZjwxMDI0JiYoZT1lLnN1YnN0cmluZygwLGYpKTtjLnB1c2goZSl9cmV0dXJuIGMuam9pbigiIil9O0RIPWZ1bmN0aW9uKGEpe3ZhciBiPUNIKGEuaixhLnBvcyk7KythLnBvcztpZihiPDEyOClyZXR1cm4gYjtmb3IodmFyIGM9YiYxMjcsZD0xO2I+PTEyODspYj1DSChhLmosYS5wb3MpLCsrYS5wb3MsZCo9MTI4LGMrPShiJjEyNykqZDtyZXR1cm4gY307RUg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLm87Zm9yKGEubz0tMTthLnBvcysxPD1hLmoudG90YWxMZW5ndGg7KXtjPDAmJihjPURIKGEpKTt2YXIgZD1jPj4zO2xldCBlPWMmNztpZihkPT09YilyZXR1cm4hMDtpZihkPmIpe2Eubz1jO2JyZWFrfWM9LTE7c3dpdGNoKGUpe2Nhc2UgMDpESChhKTticmVhaztjYXNlIDE6YS5wb3MrPTg7YnJlYWs7Y2FzZSAyOmQ9REgoYSk7YS5wb3MrPWQ7YnJlYWs7Y2FzZSA1OmEucG9zKz00fX1yZXR1cm4hMX07Cl8uR0g9ZnVuY3Rpb24oYSl7YT1uZXcgSWRhKG5ldyBGSChbXy51YyhkZWNvZGVVUklDb21wb25lbnQoYSkpXSkpO2lmKEVIKGEsMikpe3ZhciBiPURIKGEpO3ZhciBjPUdkYShhLmosYS5wb3MsYik7YS5wb3MrPWI7Yj1jfWVsc2UgYj12b2lkIDA7Yj1iP0hkYShiKTp2b2lkIDA7YT1FSChhLDQpP0RIKGEpOnZvaWQgMDtjPV8udkFbYV07aWYodHlwZW9mIGM9PT0idW5kZWZpbmVkIil0aHJvdyBhPW5ldyBfLlhqKCJGYWlsZWQgdG8gcmVjb2duaXplIGZpZWxkIG51bWJlciIse25hbWU6IkVudGl0eUtleUhlbHBlckVycm9yIixXSTphfSksXy5HcChhKSxhO3JldHVybntSSTphLGVudGl0eVR5cGU6YyxlbnRpdHlJZDpifX07Xy5ISD1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEuZW50aXRpZXMsInBsYXllclN0YXRlRW50aXR5IixiKX07Xy5JSD1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEuZW50aXRpZXMsImJvb2xlYW5FbnRpdHkiLGIpfTsKRkg9Y2xhc3N7Y29uc3RydWN0b3IoYT1bXSl7dGhpcy5qPVtdO3RoaXMudG90YWxMZW5ndGg9dGhpcy52PXRoaXMubz0wO2EuZm9yRWFjaChiPT57dGhpcy5hcHBlbmQoYil9KX1hcHBlbmQoYSl7dmFyIGI9dGhpcy5qLmxlbmd0aD09PTA/ITE6KGI9dGhpcy5qW3RoaXMuai5sZW5ndGgtMV0pJiZiLmJ1ZmZlcj09PWEuYnVmZmVyJiZiLmJ5dGVPZmZzZXQrYi5sZW5ndGg9PT1hLmJ5dGVPZmZzZXQ7Yj8oYj10aGlzLmpbdGhpcy5qLmxlbmd0aC0xXSx0aGlzLmpbdGhpcy5qLmxlbmd0aC0xXT1uZXcgVWludDhBcnJheShiLmJ1ZmZlcixiLmJ5dGVPZmZzZXQsYi5sZW5ndGgrYS5sZW5ndGgpLHRoaXMudj10aGlzLm89MCk6dGhpcy5qLnB1c2goYSk7dGhpcy50b3RhbExlbmd0aCs9YS5sZW5ndGh9c3BsaXQoYSl7dmFyIGI9bmV3IEZILGM9bmV3IEZIO2ZvcihsZXQgZCBvZiB0aGlzLmopYT49ZC5sZW5ndGg/KGIuYXBwZW5kKGQpLGEtPWQubGVuZ3RoKTphPyhiLmFwcGVuZChuZXcgVWludDhBcnJheShkLmJ1ZmZlciwKZC5ieXRlT2Zmc2V0LGEpKSxjLmFwcGVuZChuZXcgVWludDhBcnJheShkLmJ1ZmZlcixkLmJ5dGVPZmZzZXQrYSxkLmxlbmd0aC1hKSksYT0wKTpjLmFwcGVuZChkKTtyZXR1cm57ako6YixiTDpjfX1pc0ZvY3VzZWQoYSl7cmV0dXJuIGE+PXRoaXMudiYmYTx0aGlzLnYrdGhpcy5qW3RoaXMub10ubGVuZ3RofWZvY3VzKGEpe2lmKCF0aGlzLmlzRm9jdXNlZChhKSlmb3IoYTx0aGlzLnYmJih0aGlzLnY9dGhpcy5vPTApO3RoaXMudit0aGlzLmpbdGhpcy5vXS5sZW5ndGg8PWEmJnRoaXMubzx0aGlzLmoubGVuZ3RoOyl0aGlzLnYrPXRoaXMualt0aGlzLm9dLmxlbmd0aCx0aGlzLm8rPTF9fTtJZGE9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWE7dGhpcy5wb3M9MDt0aGlzLm89LTF9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEplYSxhSztKZWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1aSixkPV8uamYuR2EoKCk9PntjLlMoe3RleHQ6Yi50ZXh0LGxvY2F0aW9uOiRKLGFuY2hvcjphLG9mZnNldDpiLm9mZnNldCxzdHlsZTpiLnN0eWxlLGhvdGtleTpiLmhvdGtleX0pO2MubyghMCl9LDQsYi5kZWxheSk7Yy5qKGQpfTthSz1mdW5jdGlvbigpe3ZhciBhPVpKLGI9YS52KCk7YiYmKF8uamYuQWEoYiksYS5qKHZvaWQgMCkpO2EubyghMSl9OwpfLmJLPWZ1bmN0aW9uKGEsYil7dmFyIFtjLGRdPV8uQUMoKCk9PmEoKT8/Yj8uKCk/LnRleHQpO3JldHVybltlPT57dmFyIGY9Xy5OKCgpPT4oe2xvY2F0aW9uOiJib3R0b20iLG9mZnNldDoxNixkZWxheToxLC4uLmI/LigpLHRleHQ6YygpPz8iIn0pLHZvaWQgMCwiSUpVMzhkIik7Xy5uRSgoKT0+e3ZhciBsPWYoKTtfLkVBKCgpPT57Xy5qZi5HYSgoKT0+e1pKLm5vdGlmeShlLGwpfSw0KX0pfSwiV2xzZ1pjIik7dmFyIGg9KCk9PntKZWEoZSxmKCkpfSxrPSgpPT57YUsoKX07ZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixoKTtlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixoKTtlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGspO2UuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsayk7ZS5hZGRFdmVudExpc3RlbmVyKCJ0YXAiLGspO18uWXUoKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGgpO2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsCmspO2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGgpO2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsayk7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0YXAiLGspO2FLKCl9KX0sZF19O3ZhciAkSj17bGVmdDoiMHB4IixyaWdodDoiYXV0byIsdG9wOiItMTAwcHgiLGJvdHRvbToiYXV0byJ9O3ZhciBaSj1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXtbdGhpcy5zdGF0ZSx0aGlzLlNdPV8uSih2b2lkIDAsdm9pZCAwLCJMZmt4b2YiKTtbdGhpcy5zaG93LHRoaXMub109Xy5KKCExLHZvaWQgMCwiazFGa29lIik7W3RoaXMudix0aGlzLmpdPV8uSih2b2lkIDAsdm9pZCAwLCJVbDhNSWMiKX1ub3RpZnkoYSxiKXt0aGlzLnN0YXRlKCk/LmFuY2hvcj09PWEmJnRoaXMuUyh7dGV4dDpiLnRleHQsbG9jYXRpb246JEosYW5jaG9yOmEsb2Zmc2V0OmIub2Zmc2V0LHN0eWxlOmIuc3R5bGUsaG90a2V5OmIuaG90a2V5fSl9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5jSz1uZXcgXy5JKCJ0b29sdGlwVmlld01vZGVsIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uZEs9ZnVuY3Rpb24oYSxiKXtfLmFFKGEsey4uLmIsUHA6ITB9KX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBUYmE7VGJhPWZ1bmN0aW9uKGEsYil7dmFyIFtjLGRdPV8uSighMSx2b2lkIDAsIm1OeXd6YyIpLGU9ITEsZixoPWs9PntpZihmKXJldHVybiBfLksoZix7Li4ua30pO2lmKCFlKXtsZXQgbD1hKCk7ZT0hMDtpZihsIGluc3RhbmNlb2YgUHJvbWlzZSl7bGV0IG09Xy5hRDttPy5zdSgpO2wudGhlbihuPT57Zj1uO2QoITApO20/LkhyKCl9KS5jYXRjaChuPT57bT8uSHIoKTtpZihiPy5kZWJ1Z05hbWUpe3ZhciBwPW5ldyBfLlhqKCJmYWlsZWQgdG8gbG9hZCBjaHVuayIsYi5kZWJ1Z05hbWUsbj8udG9TdHJpbmc/LigpKTtfLkdwKHApfWVsc2UgXy5HcChuKTt0aHJvdyBuO30pfWVsc2UgcmV0dXJuIGY9bCxfLksoZix7Li4ua30pfXJldHVybiBfLksoXy5PLHtBOmMsdGhlbjooKT0+Xy5LKGYsey4uLmt9KX0pfTtfLmJELnNldChoLGEpO3JldHVybiBofTtfLmNEPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFRiYShhLGI/e2RlYnVnTmFtZTpifTp2b2lkIDApfTtfLkpEPW5ldyBfLlZzKCJDSFVOS19SRUdJU1RSWV9UT0tFTiIpO18uYkQ9bmV3IFdlYWtNYXA7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uZUs9bmV3IF8uVnMoIkxJR0hUX0VGRkVDVF9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgS2VhO18uZks9ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI9IiI7Zm9yKGxldCBjIG9mIEtlYSlpZihhLmVuZHNXaXRoKGMpKXtiPWEuc2xpY2UoMCwtYy5sZW5ndGgpO2JyZWFrfWlmKGImJihhPU51bWJlcihiKSwhaXNOYU4oYSkpKXJldHVybiBhfX07S2VhPVsicmVtIiwicHgiLCJtcyIsIiUiLCJzIl07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBLZGEsUkg7Xy5RSD1mdW5jdGlvbihhKXt2YXIgYj1fLlBIKCk7cmV0dXJuIEtkYShhLGIpfTtfLlBIPWZ1bmN0aW9uKCl7dmFyIGE9Xy55KCkucmVzb2x2ZShfLkluKFJIKSksW2IsY109Xy5KKGEsdm9pZCAwLCJ6TElZUmMiKTthfHxfLll0KFJILGMpO3JldHVybiBifTtLZGE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5OKCgpPT57dmFyIGM9YSgpO3JldHVybiBjP2IoKT8uKGMpOnZvaWQgMH0sdm9pZCAwLCJlUXhobWIiKX07Ukg9bmV3IF8uVnMoIlNFTUFOVElDX0xBWU9VVF9SRVNPTFZFUl9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmlLPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiT3RLU0plIik7cmV0dXJuIF8uVUN9O18uaks9Xy5jRCgoKT0+Xy5pSygpLCJ0b3VjaEZlZWRiYWNrU2hhcGUiKTtfLll0KF8uSkQsYT0+e2EuSigidG91Y2hGZWVkYmFja1NoYXBlIiwiT3RLU0plIixfLmlLKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIga0ssTmVhLGxLLFBlYSxtSyxRZWEsUmVhLG5LLHBLLFZlYSxXZWEsWGVhLFllYTtrSz1mdW5jdGlvbihhKXt2YXIgYj1bXTtmb3IobGV0IFtjLGRdb2YgYS5qLmVudHJpZXMoKSliLnB1c2goe2VsZW1lbnQ6YyxQeTpkfSk7YS52KGIpfTtOZWE9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7ZD0wfXZhciBkPTA7cmV0dXJuIGZ1bmN0aW9uKGUpe2R8fChkPV8udS5zZXRUaW1lb3V0KGMsYiksYS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSl9fTtsSz1mdW5jdGlvbihhKXtyZXR1cm4haXNOYU4oTnVtYmVyKGEpKSYmIS9eW1xzXHhhMF0qJC8udGVzdChhKX07ClBlYT1mdW5jdGlvbihhLGIsYyxkLGUsZixoKXtjPW5ldyBBbmltYXRpb24obmV3IEtleWZyYW1lRWZmZWN0KGEsW3t0cmFuc2Zvcm06InRyYW5zbGF0ZVkoMHB4KSJ9LHt0cmFuc2Zvcm06YHRyYW5zbGF0ZVkoJHsoZj9tSyhiLGMsZCxlKTpkPy0xOjEpKmh9cHgpYH1dLE9lYSksZG9jdW1lbnQudGltZWxpbmUpO2I/KGEuc3R5bGUuZGlzcGxheT0iIixjLm9uZmluaXNoPW51bGwpOmMub25maW5pc2g9KCk9PnthLnN0eWxlLmRpc3BsYXk9Im5vbmUifTtjLnBsYXkoKTtyZXR1cm4gY307bUs9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9TnVtYmVyKGEpKzEwO2I/YT8oYT1OdW1iZXIoYSksYj1OdW1iZXIoYiksYz1jP2I8YT9lOmUrMTA6YjxhP2UtMTA6ZSk6Yz1jPzMwOjA6Yz1hPT09IjAiP2U6Yz9lLTEwOmUrMTA7cmV0dXJuIGQtY307ClFlYT1mdW5jdGlvbihhLGIpe3N3aXRjaChhKXtjYXNlICJtb25vIjpzd2l0Y2goYil7Y2FzZSAiZmlsbGVkIjpyZXR1cm4gMTtjYXNlICJ0b25hbCI6cmV0dXJuIDM7Y2FzZSAib3V0bGluZSI6cmV0dXJuIDU7ZGVmYXVsdDpyZXR1cm4gMH1jYXNlICJtb25vLWludmVyc2UiOnN3aXRjaChiKXtjYXNlICJmaWxsZWQiOnJldHVybiAyO2Nhc2UgInRvbmFsIjpyZXR1cm4gNDtjYXNlICJvdXRsaW5lIjpyZXR1cm4gNjtkZWZhdWx0OnJldHVybiAwfWRlZmF1bHQ6cmV0dXJuIDB9fTsKUmVhPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGgpe3ZhciB7ZGlzYWJsZWQ6ayxpY29uUG9zaXRpb246bCxzdHlsZTptLGZvY3VzZWQ6bix1c2VPdXRsaW5lZEljb246cCxBYzpyfT1uSyhhKSx0PSgpPT4hIUEoKSYmbCgpPT09Imljb24tb25seSIsdj0oKT0+ISFBKCkmJmwoKT09PSJpY29uLW9ubHktNDAiLHo9KCk9PiEhQSgpJiZsKCk9PT0iaWNvbi13aXRoLWxhYmVsIixFPSgpPT4oaygpPyJkaXNhYmxlZCI6YSgpLnN0YXRlKT09PSJkaXNhYmxlZCJ8fGsoKSxBPSgpPT4hIWJ8fCEhZD8uKCl8fCEhcj8uKCksRj0oKT0+Xy54KCJhbmltYXRlX2ljb25fZGlzYWJsZWRfa2lsbHN3aXRjaCIpP2g/LigpOmg/LigpJiYhRSgpLEM9Xy5QSCgpLEc9KCk9Pl8ub0soYSgpLCEwLEMsYSgpLmlnbm9yZUljb25TaXplT3ZlcnJpZGUpO3JldHVybnt0eXBlOigpPT5tKCk9PT0iY2FsbC10by1hY3Rpb24taW52ZXJzZSI/InRleHQiOm0oKT09PSJvdmVybGF5LWRhcmsiJiZhKCkudHlwZSE9PSJmaWxsZWQiJiYKYSgpLnR5cGUhPT0idG9uYWwiPyJ0b25hbCI6YSgpLnR5cGUsdG46KCk9PihuKCl8fGY/LigpKSYmIWsoKSxJbDooKT0+ISFBKCkmJmwoKT09PSJsZWFkaW5nIixLbDooKT0+ISFBKCkmJmwoKT09PSJ0cmFpbGluZyIsSmw6KCk9PiEhQSgpJiYhKCFjJiYhZT8uKCkpJiZsKCk9PT0ibGVhZGluZy10cmFpbGluZyIsRXc6dCxGdzp2LEd3OnosaWNvbkJ1dHRvbjooKT0+dCgpfHx2KCl8fHooKSxqaTpFLHZ6OigpPT4hYSgpLmlnbm9yZUljb25TaXplT3ZlcnJpZGUmJnBLKGEoKSxBKCkpLG14OmI/YjooKT0+Xy5LKF8uRUUsbnVsbCxfLksoXy5DRSx7d2hlbjpyfSwoKT0+Xy5LKCJkaXYiLHtzdHlsZTpfLklFKHt3aWR0aDooKT0+YCR7RygpfXB4YCxoZWlnaHQ6KCk9PmAke0coKX1weGB9KSwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sXy5LKF8uVyx7ZGF0YTpyfSx7YW5pbWF0ZWRBc3NldFZpZXdNb2RlbDooe2RhdGE6RH0pPT5fLksoXy5xSyx7ZGF0YTpELHNuOiEwfSl9KSkpLF8uSyhfLkRFLApudWxsLCgpPT5fLksoXy5NRCx7aWNvbjpkLFpwOigpPT5hKCkuY3VzdG9tQ29sb3JzPy5tSixzaXplOkcsYWN0aXZlOigpPT5hKCkudG9nZ2xlZCYmIXA/LigpLGFnOigpPT57YSgpfSxHZTpGfSkpKSxhQTpjP2M6KCk9Pl8uSyhfLk1ELHtpY29uOmUsc2l6ZTpHLGFjdGl2ZTooKT0+YSgpLnRvZ2dsZWQmJiFwPy4oKSxhZzooKT0+e2EoKX19KX19OwpuSz1mdW5jdGlvbihhKXtyZXR1cm57c2l6ZTooKT0+YSgpLnNpemUsc3R5bGU6KCk9PmEoKS5zdHlsZSxmb2N1c2VkOigpPT5hKCkuZm9jdXNlZCxkaXNhYmxlZDooKT0+YSgpLmRpc2FibGVkLG9uVGFwOmI9PmEoKS5vblRhcD8uKGIpLG9pOigpPT5hKCkub2ksdWM6KCk9PmEoKS51YyxjdXN0b21Db2xvcnM6KCk9PmEoKS5jdXN0b21Db2xvcnMsc2VnbWVudGVkUG9zaXRpb246KCk9PmEoKS5zZWdtZW50ZWRQb3NpdGlvbix0b2dnbGVkOigpPT5hKCkudG9nZ2xlZCx0b2dnbGVhYmxlOigpPT5hKCkudG9nZ2xlYWJsZSxhY2Nlc3NpYmlsaXR5TGFiZWw6KCk9PmEoKS5hY2Nlc3NpYmlsaXR5TGFiZWwsSGU6KCk9PmEoKS5IZSxvblRvZ2dsZTpiPT5hKCkub25Ub2dnbGU/LihiKSxpY29uUG9zaXRpb246KCk9PmEoKS5pY29uUG9zaXRpb24sb25lT2ZmQ3VzdG9tVGV4dFdyYXA6KCk9PmEoKS5vbmVPZmZDdXN0b21UZXh0V3JhcCxJZjooKT0+YSgpLklmLEFwOigpPT5hKCkuQXAsdG9vbHRpcFRleHQ6KCk9PgphKCkudG9vbHRpcFRleHQsRG46KCk9PmEoKS5EbixhcmlhSGlkZGVuOigpPT5hKCkuYXJpYUhpZGRlbixhcmlhRXhwYW5kZWQ6KCk9PmEoKS5hcmlhRXhwYW5kZWQsdGFiSW5kZXg6KCk9PmEoKS50YWJJbmRleCxidXR0b25UZXh0OigpPT5hKCkuYnV0dG9uVGV4dCxXYTooKT0+YSgpLldhLGFiOigpPT5hKCkuYWIsb25DbGlja1JhdGVMaW1pdE1zOigpPT5hKCkub25DbGlja1JhdGVMaW1pdE1zLG9uSG92ZXI6Yj0+YSgpLm9uSG92ZXI/LihiKSxtaWRkbGVncm91bmRBc3NldDooKT0+YSgpLm1pZGRsZWdyb3VuZEFzc2V0LEFjOigpPT5hKCkuQWMsZGlzYWJsZUxpZ2h0U2hhcGU6KCk9PmEoKS5kaXNhYmxlTGlnaHRTaGFwZSx1c2VPdXRsaW5lZEljb246KCk9PmEoKS51c2VPdXRsaW5lZEljb259fTsKcEs9ZnVuY3Rpb24oYSxiKXtiPShhLmljb25Qb3NpdGlvbj09PSJpY29uLW9ubHkifHxhLmljb25Qb3NpdGlvbj09PSJpY29uLW9ubHktNDAifHxhLmljb25Qb3NpdGlvbj09PSJpY29uLXdpdGgtbGFiZWwiKSYmYjtyZXR1cm4hYS5zZWdtZW50ZWRQb3NpdGlvbiYmYiYmYS5zaXplPT09IlMifTsKXy5vSz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1jKCk7aWYoXy54KCJ3ZWJfYnV0dG9uX2ljb25fc2l6ZV9leHBlcmltZW50Iikpe2E6e2M9Xy5mSyhlPy4oU2VhKSk/PzEyO3ZhciBmPV8uZksoZT8uKFRlYSkpPz8xODtlPV8uZksoZT8uKHJLKSk/PzI0O2xldCBoPWEuaWNvblBvc2l0aW9uPT09Imljb24tb25seSImJiFhLnNlZ21lbnRlZFBvc2l0aW9ufHxhLmljb25Qb3NpdGlvbj09PSJpY29uLW9ubHktNDAifHxhLmljb25Qb3NpdGlvbj09PSJpY29uLXdpdGgtbGFiZWwiO3N3aXRjaChhLnNpemUpe2Nhc2UgIlhTIjphPWM7YnJlYWsgYTtjYXNlICJTIjphPSFkJiZwSyhhLGIpP2U6ZjticmVhayBhO2Nhc2UgIk0iOmE9aD9lOmY7YnJlYWsgYTtkZWZhdWx0OmE9ZX19cmV0dXJuIGF9Yz1fLmZLKGU/LihVZWEpKT8/MTY7Zj1fLmZLKGU/LihySykpPz8yNDtzd2l0Y2goYS5zaXplKXtjYXNlICJYUyI6cmV0dXJuIGM7Y2FzZSAiUyI6cmV0dXJuIWQmJnBLKGEsYik/ZjpjO2RlZmF1bHQ6cmV0dXJuIGZ9fTsKVmVhPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlICJmaWxsZWQiOnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRGaWxsZWQiO2Nhc2UgIm91dGxpbmUiOnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRPdXRsaW5lIjtjYXNlICJ0b25hbCI6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dFRvbmFsIjtkZWZhdWx0OnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRUZXh0In19OwpXZWE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgImNhbGwtdG8tYWN0aW9uIjpyZXR1cm4ieXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uIjtjYXNlICJjYWxsLXRvLWFjdGlvbi1vdmVybGF5IjpyZXR1cm4ieXRTcGVjQnV0dG9uU2hhcGVOZXh0Q2FsbFRvQWN0aW9uT3ZlcmxheSI7Y2FzZSAibW9ubyI6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8iO2Nhc2UgIm92ZXJsYXkiOnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5IjtjYXNlICJvdmVybGF5LWRhcmsiOnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRPdmVybGF5RGFyayI7Y2FzZSAiY2FsbC10by1hY3Rpb24taW52ZXJzZSI6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dENhbGxUb0FjdGlvbkludmVyc2UiO2Nhc2UgIm1vbm8taW52ZXJzZSI6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm9JbnZlcnNlIjtjYXNlICJicmFuZC1ncmFkaWVudCI6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dEJyYW5kR3JhZGllbnQiOwpjYXNlICJnZW4tYWktZ3JhZGllbnQiOnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRHZW5BaUdyYWRpZW50IjtjYXNlICJyYWlzZWQiOnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRSYWlzZWQiO2RlZmF1bHQ6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dE1vbm8ifX07WGVhPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlICJYUyI6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVYcyI7Y2FzZSAiUyI6cmV0dXJuInl0U3BlY0J1dHRvblNoYXBlTmV4dFNpemVTIjtjYXNlICJMIjpyZXR1cm4ieXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZUwiO2Nhc2UgIlhMIjpyZXR1cm4ieXRTcGVjQnV0dG9uU2hhcGVOZXh0U2l6ZVhsIjtkZWZhdWx0OnJldHVybiJ5dFNwZWNCdXR0b25TaGFwZU5leHRTaXplTSJ9fTsKWWVhPWZ1bmN0aW9uKGEpe3JldHVybiBiPT57dmFyIGM9Xy5oSygpO18ubkUoKCk9PntiJiYoYSgpP2Muai5zZXQoYix2b2lkIDApOmMuai5kZWxldGUoYiksa0soYykpfSwib0dRY2ljIik7Xy5ZdSgoKT0+e2Muai5kZWxldGUoYik7a0soYyl9KX19O18udEs9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJuTzVkVGQiKTtyZXR1cm4gXy5ZSn07Xy5xSz1fLmNEKCgpPT5fLnRLKCksImFuaW1hdGVkQXNzZXRWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiYW5pbWF0ZWRBc3NldFZpZXdNb2RlbCIsIm5PNWRUZCIsXy50Syl9KTt2YXIgT2VhPXtkdXJhdGlvbjoxRTMsZWFzaW5nOiJlYXNlIixmaWxsOiJmb3J3YXJkcyJ9LHVLPV8uTChhPT57dmFyIGI9Xy51RSgiYW5pbWF0ZWQtcm9sbGluZy1jaGFyYWN0ZXIiKSxjPXZvaWQgMCxkPV8uTigoKT0+bEsoYS5KYz8uKCkpfHxsSyhhLnhlPy4oKSksdm9pZCAwLCJxU0REOWQiKSxbZSxmXT1fLkooMCx2b2lkIDAsIlNJZ0tEZCIpO18ub0YoKCk9PntpZih3aW5kb3cuUmVzaXplT2JzZXJ2ZXImJl8ueCgid2ViX2ZpeF9yb2xsaW5nX251bWJlcnNfem9vbV9zYWZhcmkiKSl7bGV0IGg9bmV3IF8uV3QoKCk9Pnt2YXIgbD1NYXRoLnJvdW5kKChiLnZhbHVlLnF1ZXJ5U2VsZWN0b3IoImRpdiIpPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ/PzApKjEwMCkvMTAwO2wmJmYobCl9LDUwMCksaz1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9PntoLnYoKX0pO2sub2JzZXJ2ZShiLnZhbHVlKTtfLll1KCgpPT57ay5kaXNjb25uZWN0KCk7aC5kaXNwb3NlKCl9KX19KTtfLm5FKCgpPT4Ke3ZhciBoPV8ueCgid2ViX2ZpeF9yb2xsaW5nX251bWJlcnNfem9vbV9zYWZhcmkiKT9lOmEuQmg7aWYoaCgpKXtjPy5jYW5jZWwoKTtpZihkKCkpe3ZhciBrPWEueGU/LigpP051bWJlcihhLnhlKCkpKzEwOmEuRWQoKT8wOjMwO2EueGI/LigpfHwoay09bUsoYS5KYz8uKCksYS54ZT8uKCksYS5FZCgpLGspKX1lbHNlIGlmKGs9YS5FZCgpPzA6MiwhYS54Yj8uKCkpe3ZhciBsPWEuRWQoKT8tMToxO2stPWx9Yi52YWx1ZS5zdHlsZS5tYXJnaW5Ub3A9YC0ke2sqaCgpfXB4YDthLnhiPy4oKT9jPVBlYShiLnZhbHVlLGEuSmM/LigpLGEueGU/LigpLGEuRWQoKSxrLGQoKSxoKCkpOmIudmFsdWUuc3R5bGUuZGlzcGxheT1hLkpjPy4oKT8iIjoibm9uZSJ9fSwiTko0Z0EiKTtyZXR1cm4gXy5LKCJhbmltYXRlZC1yb2xsaW5nLWNoYXJhY3RlciIse2VsOmIsY2xhc3M6ImFuaW1hdGVkUm9sbGluZ0NoYXJhY3Rlckhvc3QifSxfLksoXy5PLHtBOmQsdGhlbjooKT0+Xy5LKFplYSxudWxsKSxXOigpPT4KXy5LKCRlYSx7SmM6YS5KY30pfSkpfSwiZ2EiKTt1Sy5pZG9tQ29tcGF0PSEwO3ZhciBaZWE9Xy5MKCgpPT57dmFyIGE9W107Zm9yKGxldCBiPTE7YjwzMDtiKyspYS5wdXNoKF8uSygiZGl2IixudWxsLGIlMTApKTtyZXR1cm4gXy5LKF8uSUIsbnVsbCxfLksoImRpdiIsbnVsbCwiXHUwMGEwIiksYSxfLksoImRpdiIsbnVsbCwiXHUwMGEwIikpfSwiaGEiKSwkZWE9Xy5MKCh7SmM6YX0pPT5fLksoXy5JQixudWxsLF8uSygiZGl2IixudWxsLCJcdTAwYTAiKSxfLksoXy5PLHtBOigpPT4hYT8uKCl8fC9eW1xzXHhhMF0qJC8udGVzdChhPy4oKSksdGhlbjooKT0+Xy5LKCJkaXYiLG51bGwsIlx1MDBhMCIpLFc6KCk9Pl8uSygiZGl2IixudWxsLGEpfSksXy5LKCJkaXYiLG51bGwsIlx1MDBhMCIpKSwiaWEiKTt2YXIgdks9Xy5MKGE9Pnt2YXIgYj12b2lkIDAsYz12b2lkIDA7Xy5uRSgoKT0+e2I9YS5YYigpO2M9YS5udW1iZXJWYWx1ZT8uKCl9LCJyN3RxUWQiKTt2YXIgZD1fLk4oKCk9PntpZighYS5YYigpKXJldHVybltdO3ZhciBlPWEuUXA/LigpfHwhY3x8IWEubnVtYmVyVmFsdWU/LigpfHxjPGEubnVtYmVyVmFsdWUoKSxmPWEuWGIoKSxoPWEuZ2g/LigpP2EuaGVpZ2h0UHgoKSphLmdoKCk6YS5oZWlnaHRQeCgpLGs9ISFhLnhiPy4oKSxsPVtdLG09MCxuPTAscD0oYj9iLnJlcGxhY2UoL1xEL2csIiIpLmxlbmd0aDowKS0oZj9mLnJlcGxhY2UoL1xEL2csIiIpLmxlbmd0aDowKSxyPWI/Yi5zcGxpdCgvKFxkKS8pLmZpbHRlcihCb29sZWFuKTpbXTtmb3IoZj1mLnNwbGl0KC8oXGQpLykuZmlsdGVyKEJvb2xlYW4pO3A8MDspe3ZhciB0PWZbbl07bC5wdXNoKHtKYzp0LEVkOmUsQmg6aCx4YjprfSk7bisrO2xLKHQpJiZwKyt9Zm9yKDttPHA7KXQ9clttXSxsLnB1c2goe3hlOnQsRWQ6ZSwKQmg6aCx4YjprfSksbSsrLGxLKHQpfHxwKys7Zm9yKDtuPGYubGVuZ3RoOylwPWZbbl0sdD1yW21dLGxLKHApPT09bEsodCk/KG4rKyxtKyspOmxLKHApPyhtKysscD12b2lkIDApOmxLKHQpJiYobisrLHQ9dm9pZCAwKSxsLnB1c2goe0pjOnAseGU6dCxFZDplLEJoOmgseGI6a30pO3JldHVybiBsfSx2b2lkIDAsIndtbkhSIik7cmV0dXJuIF8uSygieXQtYW5pbWF0ZWQtcm9sbGluZy1udW1iZXIiLHtjbGFzczoiYW5pbWF0ZWRSb2xsaW5nTnVtYmVySG9zdCIsc3R5bGU6KCk9PmEuWGIoKT9bYGhlaWdodDogJHthLmdoPy4oKT9hLmhlaWdodFB4KCkqYS5naCgpOmEuaGVpZ2h0UHgoKX1weDtgLGBsaW5lLWhlaWdodDogJHthLmhlaWdodFB4KCl9cHg7YF0uam9pbigiICIpOiIiLGRpcjoibHRyIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sXy5LKF8uZ0cse3BhOmQsdGI6IklOREVYIn0sZT0+Xy5LKHVLLHtKYzooKT0+ZSgpLkpjLHhlOigpPT5lKCkueGUsQmg6KCk9PmUoKS5CaCxFZDooKT0+CmUoKS5FZCx4YjooKT0+ZSgpLnhifSkpKX0sImthIik7dksuaWRvbUNvbXBhdD0hMDt2YXIgYWZhPVsibW9ubyIsIm1vbm8taW52ZXJzZSIsIm92ZXJsYXkiXSxiZmE9WyJmaWxsZWQiXTt2YXIgd0s9e2N1cGNha2U6MS41LGRvbnV0OjEuNixlY2xhaXI6Mixmcm95bzoyLjIsZ2luZ2VyYnJlYWQ6Mi4zLGhvbmV5Y29tYjozLCJpY2UgY3JlYW0gc2FuZHdpY2giOjQsamVsbHliZWFuOjQuMSxraXRrYXQ6NC40LGxvbGxpcG9wOjUuMSxtYXJzaG1hbGxvdzo2LG5vdWdhdDo3LjF9LHhLO2E6e3ZhciB5Sz1fLmJjKCk7eUs9eUsudG9Mb3dlckNhc2UoKTtpZih5Sy5pbmRleE9mKCJhbmRyb2lkIikhPS0xKXt2YXIgeks9eUsubWF0Y2goL2FuZHJvaWRccyooXGQrKFwuXGQrKT8pW147fCldKls7KV0vKTtpZih6Syl7bGV0IGE9cGFyc2VGbG9hdCh6S1sxXSk7aWYoYTwxMDApe3hLPWE7YnJlYWsgYX19dmFyIEFLPXlLLm1hdGNoKCIoIitPYmplY3Qua2V5cyh3Sykuam9pbigifCIpKyIpIik7eEs9QUs/d0tbQUtbMF1dOjB9ZWxzZSB4Sz12b2lkIDB9Xy5CSz14Sz49MDt2YXIgQ0ssRks7e3ZhciBESz1fLmJjKCk7bGV0IGE9REsubWF0Y2goL1woKGlQYWR8aVBob25lfGlQb2QpKCBTaW11bGF0b3IpPzsvKTtpZighYXx8YS5sZW5ndGg8MilDSz12b2lkIDA7ZWxzZXt2YXIgRUs9REsubWF0Y2goL1woKGlQYWR8aVBob25lfGlQb2QpKCBTaW11bGF0b3IpPzsgKFU7ICk/Q1BVIChpUGhvbmUgKT9PUyAoXGQrX1xkKVtfIF0vKTtDSz1FSyYmRUsubGVuZ3RoPT09Nj9OdW1iZXIoRUtbNV0ucmVwbGFjZSgiXyIsIi4iKSk6MH19Rks9Q0s7Xy5HSz1GSz49MDt2YXIgVWVhPXt5dFN5c01lYXN1cmVtZW50UmVmZXJlbmNlOiJZVF9TWVNfTUVBU1VSRU1FTlRfUkVGRVJFTkNFX0lDT05fU0laRV9DT05ERU5TRUQifSxySz17eXRTeXNNZWFzdXJlbWVudFJlZmVyZW5jZToiWVRfU1lTX01FQVNVUkVNRU5UX1JFRkVSRU5DRV9JQ09OX1NJWkVfQ09NRk9SVEFCTEUifSxTZWE9e3l0U3lzTWVhc3VyZW1lbnRSZWZlcmVuY2U6IllUX1NZU19NRUFTVVJFTUVOVF9SRUZFUkVOQ0VfSUNPTl9TSVpFX01JTkkifSxUZWE9e3l0U3lzTWVhc3VyZW1lbnRSZWZlcmVuY2U6IllUX1NZU19NRUFTVVJFTUVOVF9SRUZFUkVOQ0VfSUNPTl9TSVpFX0NPTVBBQ1QifSxjZmE9Xy5MKGE9Pl8uSyhfLk8se0E6YS51Yyx0aGVuOmI9Pl8uSyhfLm5ILHt1YzpiLGRpc2FibGVkOmEuZGlzYWJsZWQsY2xhc3NOYW1lOmEuY2xhc3NOYW1lLHN0eWxlOmEuc3R5bGUsdGl0bGU6YS50aXRsZSxhcmlhTGFiZWw6YS5hcmlhTGFiZWwsSGU6YS5IZSxhcmlhQ3VycmVudDooKT0+YS50b2dnbGVhYmxlPy4oKSYmCmEudG9nZ2xlZD8uKCksYXJpYUV4cGFuZGVkOmEuYXJpYUV4cGFuZGVkLHJlZjphLnJlZixvbkhvdmVyOmEub25Ib3Zlcn0sYS5jaGlsZHJlbiksVzooKT0+Xy5LKCJidXR0b24iLHtlbDpfLnJGKGEucmVmKSwib246Y2xpY2siOmEub25DbGljaywib246bW91c2VlbnRlciI6YS5vbkhvdmVyLGNsYXNzOmEuY2xhc3NOYW1lLHRpdGxlOmEudGl0bGUsc3R5bGU6YS5zdHlsZSxkaXNhYmxlZDphLmRpc2FibGVkLCJhcmlhLXByZXNzZWQiOigpPT5hLnRvZ2dsZWFibGU/LigpPyEhYS50b2dnbGVkPy4oKTp2b2lkIDAsImFyaWEtbGFiZWwiOmEuYXJpYUxhYmVsLCJhcmlhLWRlc2NyaWJlZGJ5IjphLkhlLCJhcmlhLWRpc2FibGVkIjphLmppLCJhcmlhLWhpZGRlbiI6YS5hcmlhSGlkZGVuLCJhcmlhLWV4cGFuZGVkIjphLmFyaWFFeHBhbmRlZCx0YWJpbmRleDooKT0+YS50YWJJbmRleD8uKCk/PygoXy5Pa3x8Xy5yeigpKSYmXy54KCJ3ZWJfZW5hYmxlX3NhZmFyaV9idXR0b25fdGFiaW5kZXhfZml4Iik/CjA6dm9pZCAwKX0sYS5jaGlsZHJlbil9KSwibGEiKSxkZmE9Xy5MKCh7ZGF0YTphLElsOmIsSmw6YyxLbDpkLGljb25CdXR0b246ZSxpeDpmLFp6OmgsaWNvbjprLHNlY29uZGFyeUljb246bCxVQTptLEp5Om4samk6cCxkaXNhYmxlTGlnaHRTaGFwZTpyfSk9Pnt2YXIgdD1fLnkoKS5yZXNvbHZlKF8uSW4oXy5lSykpLHY9Xy5JRSh7Y29sb3I6KCk9PmEoKS5jdXN0b21Db2xvcnM/Lmljb25Db2xvcn0pO3JldHVybiBfLksoSEsse2NsYXNzTmFtZToiIixzdHlsZToiZGlzcGxheTogaW5oZXJpdDsganVzdGlmeS1jb250ZW50OiBjZW50ZXIifSxfLksoXy5PLHtkZWJ1Z0luc3RhbmNlOiJWNHoxVWMiLEE6KCk9PmsmJihiKCl8fGMoKXx8ZT8uKCkpLHRoZW46KCk9Pl8uSyhISyxudWxsLF8uSygiZGl2Iix7Y2xhc3M6ZixzdHlsZTp2LCJhcmlhLWhpZGRlbiI6InRydWUifSxrPy4oKSkpfSksXy5LKF8uTyx7ZGVidWdJbnN0YW5jZToib2szYnRiIixBOigpPT4oYSgpLmJ1dHRvblRleHR8fAphKCkuYWJ8fGEoKS5XYSkmJiFlPy4oKSx0aGVuOigpPT5fLksoSEssbnVsbCxfLksoSUsse2NsYXNzTmFtZTptLGljb25Qb3NpdGlvbjooKT0+YSgpLmljb25Qb3NpdGlvbix0ZXh0OigpPT5hKCkuYnV0dG9uVGV4dCxvbmVPZmZDdXN0b21UZXh0V3JhcDooKT0+YSgpLm9uZU9mZkN1c3RvbVRleHRXcmFwLFdhOigpPT5hKCkuV2EsYWI6KCk9PmEoKS5hYn0pKX0pLF8uSyhfLk8se2RlYnVnSW5zdGFuY2U6IkRPNVJ6IixBOmQsdGhlbjooKT0+Xy5LKEhLLG51bGwsXy5LKCJkaXYiLHtjbGFzczpmLHN0eWxlOnZ9LGs/LigpKSl9KSxfLksoXy5PLHtkZWJ1Z0luc3RhbmNlOiJibm9qU2MiLEE6Yyx0aGVuOigpPT5fLksoSEssbnVsbCxfLksoImRpdiIse2NsYXNzOmgsc3R5bGU6dn0sbD8uKCkpKX0pLF8uSyhfLk8se2RlYnVnSW5zdGFuY2U6IkhOM2thZCIsQTooKT0+IWEoKS5kaXNhYmxlZCYmISh0Py5XbyYmIXA/LigpKSx0aGVuOigpPT5fLksoXy5qSyx7bW9kZWw6KCk9Pnt2YXIgej0KYSgpO3JldHVybntjb2xvcjp6LnN0eWxlPT09Im92ZXJsYXktZGFyayI/NDp6LnN0eWxlPT09Im92ZXJsYXkiP3oudHlwZT09PSJmaWxsZWQiPzQ6Mzp6LnR5cGU9PT0iZmlsbGVkInx8ei5zdHlsZT09PSJjYWxsLXRvLWFjdGlvbi1pbnZlcnNlInx8ei5zdHlsZT09PSJtb25vLWludmVyc2UiPzI6MX19fSl9KSxfLksoXy5XLHtkYXRhOigpPT5hKCkubWlkZGxlZ3JvdW5kQXNzZXR9LHthbmltYXRlZEFzc2V0Vmlld01vZGVsOih7ZGF0YTp6fSk9Pl8uSyhfLnFLLHtkYXRhOnosY2xhc3NOYW1lOm4sc246ITB9KX0pLF8uSyhfLk8se0E6KCk9PnQ/Lkl1JiYhcD8uKCkmJiFyPy4oKSx0aGVuOigpPT5fLksoXy55RSx7Y29uZmlnOigpPT57dmFyIHo9YSgpLEU9ei5zdHlsZSxBPXoudHlwZSxGPV8ueSgpLnJlc29sdmUoXy5JbihfLmVLKSk7cmV0dXJue1ZhOlFlYShFLEEpLGprOkY/LlZvJiZBPT09InRvbmFsIixldjp6LmN1c3RvbUNvbG9ycz8uYmFja2dyb3VuZENvbG9yLGR2OnouY3VzdG9tQ29sb3JzPy5ib3JkZXJDb2xvciwKQ0I6Rj8uV299fX0pfSkpfSwibWEiKSxJSz1fLkwoYT0+e3ZhciBiPSgpPT5hLmljb25Qb3NpdGlvbj8uKCk9PT0iaWNvbi13aXRoLWxhYmVsInx8YS5vbmVPZmZDdXN0b21UZXh0V3JhcD8uKCk7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6YS5jbGFzc05hbWUsImFyaWEtaGlkZGVuIjooKT0+YS5hcmlhSGlkZGVuPy4oKSYmKCEhYS5hYj8uKCl8fCEhYS5XYT8uKCkpfSxfLksoXy5FRSxudWxsLF8uSyhfLkNFLHt3aGVuOigpPT5hLmFiPy4oKX0sKCk9Pl8uSyh2Syx7WGI6KCk9PmEuYWIoKS5YYixudW1iZXJWYWx1ZTooKT0+YS5hYigpLm51bWJlclZhbHVlLGhlaWdodFB4OigpPT5hLmFiKCkuaGVpZ2h0UHgsZ2g6KCk9PmEuYWIoKS5naCx4YjooKT0+YS5hYigpLnhiLFFwOigpPT5hLmFiKCkuUXB9KSksXy5LKF8uQ0Use3doZW46KCk9PmEuV2E/LigpfSwoKT0+Xy5LKF8uVix7dGV4dDooKT0+KHsuLi5hLldhKCksbGluZUJyZWFrTW9kZTpiKCk/IkxJTkVfQlJFQUtfTU9ERV9CWV9XT1JEX1dSQVBQSU5HIjoKYS5XYSgpLmxpbmVCcmVha01vZGUsYWxpZ25tZW50OmIoKT8iVEVYVF9BTElHTk1FTlRfQ0VOVEVSIjphLldhKCkuYWxpZ25tZW50fSksdWI6ITAsbm9XcmFwOigpPT4hYigpfSkpLF8uSyhfLkNFLHt3aGVuOigpPT5hLmljb25Qb3NpdGlvbj8uKCk9PT0iaWNvbi13aXRoLWxhYmVsIiYmYS50ZXh0Py4oKX0sKCk9Pl8uSyhfLlYse3RleHQ6KCk9Pih7Y29udGVudDphLnRleHQoKSxsaW5lQnJlYWtNb2RlOiJMSU5FX0JSRUFLX01PREVfQllfV09SRF9XUkFQUElORyIsYWxpZ25tZW50OiJURVhUX0FMSUdOTUVOVF9DRU5URVIifSksdWI6ITAsbm9XcmFwOiExfSkpLF8uSyhfLkRFLG51bGwsKCk9PmEudGV4dCkpKX0sIm5hIiksZWZhPV8uTChhPT5fLksoXy5PLHtkZWJ1Z0luc3RhbmNlOiJrTTdTZ2MiLEE6YS5oYXNMYWJlbCx0aGVuOigpPT5fLksoImxhYmVsIix7Y2xhc3M6YS5jbGFzc05hbWV9LGEuY2hpbGRyZW4sYS50ZXh0Q29udGVudD8uKCkpLFc6KCk9PmEuY2hpbGRyZW59KSwib2EiKSwKSEs9Xy5MKGE9PmEuY2hpbGRyZW4sInBhIik7Xy5KSz1fLkwoKHtkYXRhOmEsaWNvbjpiLGljb25OYW1lOmMsR2U6ZCxzZWNvbmRhcnlJY29uOmUsUXI6ZixYSTpoLGFwOmt9KT0+e18ubUcoKTt2YXIge3NpemU6bCxzdHlsZTptLGRpc2FibGVkOm4sb25UYXA6cCxvaTpyLHVjOnQsY3VzdG9tQ29sb3JzOnYsc2VnbWVudGVkUG9zaXRpb246eix0b2dnbGVkOkUsdG9nZ2xlYWJsZTpBLGFjY2Vzc2liaWxpdHlMYWJlbDpGLG9uVG9nZ2xlOkMsaWNvblBvc2l0aW9uOkcsb25lT2ZmQ3VzdG9tVGV4dFdyYXA6RCxJZjpILEFwOlIsdG9vbHRpcFRleHQ6TSxEbjpTLGFyaWFIaWRkZW46WSxhcmlhRXhwYW5kZWQ6cGEsdGFiSW5kZXg6b2EsYnV0dG9uVGV4dDpVLFdhOmhhLGFiOm1hLG9uQ2xpY2tSYXRlTGltaXRNczp0YSxvbkhvdmVyOlQsbWlkZGxlZ3JvdW5kQXNzZXQ6YmEsZGlzYWJsZUxpZ2h0U2hhcGU6YWF9PW5LKGEpLHt0eXBlOk9hLHRuOkpiLElsOnphLEtsOkxiLEpsOmNjLEV3OmxjLEZ3OlZiLEd3OnRkLGljb25CdXR0b246QmUsCmppOmFkLHZ6Om5zLG14Ok1nLGFBOlpCfT1SZWEoYSxiLGUsYyxmLGgsZCksW2ZmYV09Xy5iSyhNLFMpLExUPXJiPT57cD8uKHJiKTtBKCkmJkM/LihyYil9LE1UPV8uTigoKT0+dGE/LigpLHZvaWQgMCwic2lLeXdiIiksZ2ZhPV8uTigoKT0+TVQoKT9OZWEoTFQsTVQoKSk6TFQsdm9pZCAwLCJ3RFRjTiIpLCRCPV8ueSgpLnJlc29sdmUoXy5JbihfLmVLKSk7Yj1fLk4oKCk9PmJhKCl8fCRCPy5JdSx2b2lkIDAsInpVUVJPZSIpO3ZhciBoZmE9WWVhKCgpPT57dmFyIHJiPW0oKSxhaT1PYSgpO3JldHVybiEhXy55KCkucmVzb2x2ZShfLkluKF8uZUspKT8uVm8mJmFmYS5pbmNsdWRlcyhyYikmJmJmYS5pbmNsdWRlcyhhaSl9KTtyZXR1cm4gXy5LKGVmYSx7Y2xhc3NOYW1lOl8uUCgieXRTcGVjQnV0dG9uU2hhcGVXaXRoTGFiZWxIb3N0Iix7eXRTcGVjQnV0dG9uU2hhcGVXaXRoTGFiZWxJc092ZXJsYXk6KCk9Pm0oKT09PSJvdmVybGF5Inx8bSgpPT09Im92ZXJsYXktZGFyayJ9KSxoYXNMYWJlbDp0ZCwKdGV4dENvbnRlbnQ6KCk9Pl8uSyhJSyx7dGV4dDpVLGNsYXNzTmFtZToieXRTcGVjQnV0dG9uU2hhcGVXaXRoTGFiZWxMYWJlbCIsYXJpYUhpZGRlbjohMCxvbmVPZmZDdXN0b21UZXh0V3JhcDpELGljb25Qb3NpdGlvbjpHLFdhOmhhLGFiOm1hfSl9LF8uSyhjZmEse3VjOnQsY2xhc3NOYW1lOl8uUCgieXRTcGVjQnV0dG9uU2hhcGVOZXh0SG9zdCIsKCk9PlZlYShPYSgpKSwoKT0+YWQoKT92b2lkIDA6V2VhKG0oKSksKCk9PlhlYShsKCkpLHt5dFNwZWNCdXR0b25TaGFwZU5leHREaXNhYmxlZDphZCx5dFNwZWNCdXR0b25TaGFwZU5leHRGb2N1c2VkOkpiLHl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25UcmFpbGluZzpMYix5dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZzp6YSx5dFNwZWNCdXR0b25TaGFwZU5leHRJY29uTGVhZGluZ1RyYWlsaW5nOmNjLHl0U3BlY0J1dHRvblNoYXBlTmV4dEljb25MZWFkaW5nVHJhaWxpbmdOb1RleHQ6KCk9PmNjKCkmJiEoVSgpfHxoYSgpKSwKeXRTcGVjQnV0dG9uU2hhcGVOZXh0SWNvbkJ1dHRvbjooKT0+bGMoKXx8dGQoKSx5dFNwZWNCdXR0b25TaGFwZU5leHRJY29uT25seURlZmF1bHQ6VmIseXRTcGVjQnV0dG9uU2hhcGVOZXh0QWxpZ25CeVRleHQ6cix5dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRTdGFydDooKT0+eigpPT09InN0YXJ0Iix5dFNwZWNCdXR0b25TaGFwZU5leHRTZWdtZW50ZWRFbmQ6KCk9PnooKT09PSJlbmQiLHl0U3BlY0J1dHRvblNoYXBlTmV4dE92ZXJyaWRlU21hbGxTaXplSWNvbjpucyx5dFNwZWNCdXR0b25TaGFwZU5leHRPbmVPZmZDdXN0b21UZXh0V3JhcENvbnRhaW5lcjpELHl0U3BlY0J1dHRvblNoYXBlTmV4dERpc2FibGVUZXh0RWxsaXBzaXM6SCx5dFNwZWNCdXR0b25TaGFwZU5leHRFbmFibGVCYWNrZHJvcEZpbHRlckV4cGVyaW1lbnQ6KCk9Pnt2YXIgcmI7aWYocmI9IVIoKSkhKHJiPV8uR0smJkZLPj0xNCkmJihyYj1fLkJLKSYmKHJiPV8udS5uYXZpZ2F0b3I/LmRldmljZU1lbW9yeT49CjgpLHJiPXJiPyFfLngoIndlYl9kaXNhYmxlX2JhY2tkcm9wX2ZpbHRlciIpOiExO3JldHVybiByYn0seXRTcGVjQnV0dG9uU2hhcGVOZXh0RW5hYmxlTGlnaHRUb3VjaFJlc3BvbnNlOigpPT4hISRCPy5XbyYmIWFkKCkseXRTcGVjQnV0dG9uU2hhcGVOZXh0TWFpbnN0YWdlSWNvblNpemU6KCk9Pl8ueCgid2ViX2J1dHRvbl9pY29uX3NpemVfZXhwZXJpbWVudCIpLHl0U3BlY0J1dHRvblNoYXBlTmV4dE1haW5zdGFnZVBhZGRpbmc6KCk9Pl8ueCgid2ViX2J1dHRvbl9tYWluc3RhZ2VfcGFkZGluZyIpfSksc3R5bGU6KCk9Pnt2YXIgcmI9digpO2lmKHJiKXt2YXIgYWk9cmIuY29sb3I7dmFyIE5UPXJiLmJhY2tncm91bmRDb2xvcjtyYj1yYi5ib3JkZXJDb2xvcjt2YXIgcHM9IiI7YWkmJihwcys9YGNvbG9yOiAke2FpfTtgKTtOVCYmKHBzKz1gYmFja2dyb3VuZC1jb2xvcjogJHtOVH07YCk7cmImJihwcys9YGJvcmRlci1jb2xvcjogJHtyYn07YCk7YWk9e3N0eWxlOnBzfX1lbHNlIGFpPQp7fTtyZXR1cm4gYWkuc3R5bGV9LG9uQ2xpY2s6cmI9PntnZmEoKShyYil9LG9uSG92ZXI6cmI9PntUPy4ocmIpfSxkaXNhYmxlZDpuLGFyaWFMYWJlbDpGLHRvZ2dsZWFibGU6QSx0b2dnbGVkOkUsdGl0bGU6KCk9PiFrPy4oKSYmTSgpP00oKToiIixqaTphZCxhcmlhSGlkZGVuOlksYXJpYUV4cGFuZGVkOnBhLHRhYkluZGV4Om9hLHJlZjpyYj0+eyRCPy5WbyYmaGZhKHJiKTtrPy4oKSYmZmZhKHJiKX19LF8uSyhkZmEse2RhdGE6YSxJbDp6YSxKbDpjYyxLbDpMYixpY29uQnV0dG9uOkJlLGljb246TWcsVUE6Xy5QKCJ5dFNwZWNCdXR0b25TaGFwZU5leHRCdXR0b25UZXh0Q29udGVudCIse3l0U3BlY0J1dHRvblNoYXBlTmV4dEVsZXZhdGVkQ29udGVudDpifSksaXg6Xy5QKCJ5dFNwZWNCdXR0b25TaGFwZU5leHRJY29uIix7eXRTcGVjQnV0dG9uU2hhcGVOZXh0RWxldmF0ZWRDb250ZW50OmJ9KSxaejpfLlAoInl0U3BlY0J1dHRvblNoYXBlTmV4dFNlY29uZGFyeUljb24iLHt5dFNwZWNCdXR0b25TaGFwZU5leHRFbGV2YXRlZENvbnRlbnQ6Yn0pLApzZWNvbmRhcnlJY29uOlpCLEp5OiJ5dFNwZWNCdXR0b25TaGFwZU5leHRNaWRkbGVncm91bmRBc3NldCIsamk6YWQsZGlzYWJsZUxpZ2h0U2hhcGU6YWF9KSkpfSwicmEiKTtfLkpLLmlkb21Db21wYXQ9e2NhbGxiYWNrczp7aWNvbjohMCxzZWNvbmRhcnlJY29uOiEwfX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBMZGEsTWRhLE5kYSxPZGE7TGRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5WSC5UZSgpLmdldFN0YXRlKCk7cmV0dXJuIGI/YShjLC4uLmIpOmEoYyl9O18uWEg9ZnVuY3Rpb24oKXtpZihXSClyZXR1cm4gV0g7dmFyIFthLCxiXT1fLkooMCx2b2lkIDAsIk1CMUhiIik7Xy5WSC5UZSgpLnN1YnNjcmliZSgoKT0+e01kYShiKX0pO3JldHVybiBXSD1hfTtNZGE9ZnVuY3Rpb24oYSl7WUh8fChZSD0hMCxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57YShiPT5iKzEpO1lIPSExfSkpfTtfLlpIPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uVkgucHcoKShhLGIpfTtfLmJJPW5ldyBfLlZzKCJTVEFURV9TVE9SRV9UT0tFTiIpO05kYT1uZXcgXy5WcygiU0VMRUNUX1RPS0VOIik7T2RhPW5ldyBfLlZzKCJESVNQQVRDSF9UT0tFTiIpO3ZhciBXSCxZSDtfLlZIPXtwdzooKT0+Xy55KCkucmVzb2x2ZShfLkluKE5kYSkpPz9MZGEsbXc6KCk9Pl8ueSgpLnJlc29sdmUoXy5JbihPZGEpKT8/Xy5WSC5UZSgpLmRpc3BhdGNoLmJpbmQoXy5WSC5UZSgpKSxUZTooKT0+Xy55KCkucmVzb2x2ZShfLmJJKX07WUg9ITE7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uY0k9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uTigoKT0+e18uWEgoKSgpO3JldHVybiBfLlpIKGEpfSx7ZGVidWdOYW1lOiJkOEI2MmMifSwiREVYa2hkIil9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgaWZhLGpmYSxPSyxOSyxuZmEsUkssb2ZhLHBmYSxUSyxxZmEscmZhLFNLLHNmYSx0ZmEsdWZhLHZmYTtpZmE9ZnVuY3Rpb24oYSxiKXtiLmZvckVhY2goYz0+e3ZhciBkPW51bGw7Yz9kPWMuYXBwbHkobnVsbCxhLmFyZ3MpOihjPUVycm9yKCJyZCIpLGMucGFyYW1zPWEuYWN0aW9uTmFtZSxfLlVpKGMpKTthLnJldHVyblZhbHVlLnB1c2goZCl9KX07amZhPWZ1bmN0aW9uKGEsYixjKXtiLmZvckVhY2goZD0+e3ZhciBlPV8uUkooZCk7ZSYmKGQ9bmV3IF8uT0ooZSwhMCxbZCxjLHZvaWQgMF0pLChlPWEuai5nZXQoZC5hY3Rpb25OYW1lKSkmJmlmYShkLGUpLGQuanx8ZC5yZXR1cm5WYWx1ZS5sZW5ndGghPT0wfHwoZD1uZXcgXy5YaigiVW5oYW5kbGVkIGFjdGlvbiIsZC5hY3Rpb25OYW1lKSxfLldpKGQpKSl9KX07Xy5LSz1mdW5jdGlvbihhKXtyZXR1cm4oYSY0Mjc4MTkwMDgwKT4+PjI0PT09MD9fLmlFKGEsIjEiKTpfLk5EKGEpfTsKXy5NSz1mdW5jdGlvbigpe0xLfHwoTEs9bmV3IGtmYSk7cmV0dXJuIExLfTtPSz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yy5hY3Rpb24sZT1jLmVsZW1lbnQ7ZSYmZCYmKGxmYS5pbmNsdWRlcyhiKXx8Xy53KCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJXRUJfUkVNSVgifHxhLkQmJmEuRC5BSihlKT9OSyhhLGIsYyk6YS52JiYoYS5vfHwoYS5vPW5ldyBXZWFrTWFwKSxkPWEudi5vYnNlcnZlKGUsKCk9PntOSyhhLGIsYyk7YS5vLmRlbGV0ZShlKX0se1ZiOiEwLHN0YXRlOiJ2aXNpYmxlIn0pLGEuby5zZXQoZSxkKSkpfTtfLlBLPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5CLmdldChiKTtpZihjKXt2YXIgZD1hLmouZ2V0KGMpO2QmJihkZWxldGUgZC5lbGVtZW50LGEuai5zZXQoYyxkKSk7YS5CLmRlbGV0ZShiKTthLnYmJmEubyYmKGM9YS5vLmdldChiKSkmJihhLnYucmYoYyksYS5vLmRlbGV0ZShiKSl9fTsKXy5RSz1mdW5jdGlvbihhLGIsYyl7Xy5QSyhhLGMpO3ZhciBkPWEuai5nZXQoYik7ZHx8KGQ9e30sYS5qLnNldChiLGQpKTtkLmVsZW1lbnQ9YzthLkIuc2V0KGMsYik7T0soYSxiLGQpfTtOSz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yy5hY3Rpb247KGM9Yy5lbGVtZW50KSYmZCYmKGpmYShhLkssW2RdLGMpLGEuai5kZWxldGUoYiksYS5CLmRlbGV0ZShjKSxhLlkuYWRkKGIpKX07Cm5mYT1mdW5jdGlvbihhLGIsYyl7aWYoYyYmYilzd2l0Y2goYyl7Y2FzZSAiQlVUVE9OX0VOVElUWV9TRUxFQ1RPUl9UWVBFX1JFTU9WRV9BRFNfQURfU1RBVEUiOnJldHVybihhPV8uSEgoYSxiKSk/e2lzSGlkZGVuOmEuYWRzU3RhdGU9PT0iQURTX1NUQVRFX05PTkUifHxhLmFkc1N0YXRlPT09IkFEU19TVEFURV9VTktOT1dOIn06e2lzSGlkZGVuOiEwfTtjYXNlICJCVVRUT05fRU5USVRZX1NFTEVDVE9SX1RZUEVfQ0hBVEJPVF9QRU5ESU5HX1JFU1BPTlNFIjpyZXR1cm57aXNIaWRkZW46ITEsaXNEaXNhYmxlZDohIV8ucUEoYS5lbnRpdGllcywieW91Y2hhdFBlbmRpbmdSZXNwb25zZUVudGl0eSIsYik/LmlzUGVuZGluZ1Jlc3BvbnNlfTtjYXNlICJCVVRUT05fRU5USVRZX1NFTEVDVE9SX1RZUEVfQk9PTEVBTl9ESVNBQkxFRCI6cmV0dXJue2lzSGlkZGVuOiExLGlzRGlzYWJsZWQ6ISFfLklIKGEsYik/LnZhbHVlfTtjYXNlICJCVVRUT05fRU5USVRZX1NFTEVDVE9SX1RZUEVfQVNLX1NUVURJT19DT05WRVJTQVRJT05fU1VNTUFSWSI6cmV0dXJuIGE9Cl8ucUEoYS5lbnRpdGllcywiYXNrU3R1ZGlvQ29udmVyc2F0aW9uU3VtbWFyeUVudGl0eSIsYik/LnN0YXRlLGE9PT0iQVNLX1NUVURJT19DT05WRVJTQVRJT05fU1VNTUFSWV9TVEFURV9QRU5ESU5HIj97aXNIaWRkZW46ITEsYXJpYURpc2FibGVkOiEwLGFyaWFCdXN5OiEwLGFjY2Vzc2liaWxpdHlMYWJlbDoiR2VuZXJhdGluZyBzdW1tYXJ5Li4uIixpY29uTmFtZTp2b2lkIDAsQWM6bWZhfTphPT09IkFTS19TVFVESU9fQ09OVkVSU0FUSU9OX1NVTU1BUllfU1RBVEVfVU5SRUFEInx8YT09PSJBU0tfU1RVRElPX0NPTlZFUlNBVElPTl9TVU1NQVJZX1NUQVRFX0ZBSUxFRCI/KGE9YT09PSJBU0tfU1RVRElPX0NPTlZFUlNBVElPTl9TVU1NQVJZX1NUQVRFX1VOUkVBRCIse2lzSGlkZGVuOiExLGFyaWFEaXNhYmxlZDohMCxhY2Nlc3NpYmlsaXR5TGFiZWw6YT8iVW5yZWFkIHN1bW1hcnkiOiJGYWlsZWQgdG8gZ2VuZXJhdGUgc3VtbWFyeSIsaWNvbk5hbWU6IllUSUNPTl9GSUxMX0RPVF9TMjQiLApBYzp2b2lkIDAsLi4uKGEmJntjdXN0b21Db2xvcnM6e2NvbG9yOiJ2YXIoLS15dC1zcGVjLWNhbGwtdG8tYWN0aW9uKSIsaWNvbkNvbG9yOiJ2YXIoLS15dC1zcGVjLWNhbGwtdG8tYWN0aW9uKSJ9fSl9KTp7aXNIaWRkZW46ITB9O2Nhc2UgIkJVVFRPTl9FTlRJVFlfU0VMRUNUT1JfVFlQRV9DT01NRVJDRV9UT0tFTl9CQUxBTkNFIjpyZXR1cm4gYT1fLnFBKGEuZW50aXRpZXMsImNvbW1lcmNlVG9rZW5CYWxhbmNlRW50aXR5IixiKSxhPy5zZXJ2ZXJUb2tlbkJhbGFuY2UhPW51bGw/KGE9TnVtYmVyKGEuc2VydmVyVG9rZW5CYWxhbmNlKSxhPWlzTmFOKGEpP3ZvaWQgMDpTdHJpbmcoYS8xRTYpLHtpc0hpZGRlbjohMSxXYTphP3tjb250ZW50OmF9OnZvaWQgMH0pOntpc0hpZGRlbjohMX07ZGVmYXVsdDpyZXR1cm57aXNIaWRkZW46ITF9fX07ClJLPWZ1bmN0aW9uKGEpe3JldHVybnt0ZXh0OmEudG9vbHRpcFRleHQ/PyIiLGxvY2F0aW9uOm9mYShhLnBsYWNlbWVudCksc3R5bGU6YS5zdHlsZSxob3RrZXk6YS5ob3RrZXl9fTtvZmE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgIlRPT0xUSVBfVklFV19NT0RFTF9QTEFDRU1FTlRfQk9UVE9NIjpyZXR1cm4iYm90dG9tIjtjYXNlICJUT09MVElQX1ZJRVdfTU9ERUxfUExBQ0VNRU5UX1RPUCI6cmV0dXJuInRvcCI7Y2FzZSAiVE9PTFRJUF9WSUVXX01PREVMX1BMQUNFTUVOVF9MRUZUIjpyZXR1cm4ibGVmdCI7Y2FzZSAiVE9PTFRJUF9WSUVXX01PREVMX1BMQUNFTUVOVF9SSUdIVCI6cmV0dXJuInJpZ2h0IjtkZWZhdWx0OnJldHVybiJib3R0b20ifX07CnBmYT1mdW5jdGlvbihhLGIpe3ZhciBjPV8uUkQoYT8ub25UYXApLGQ9e307YyYmKGQuYko9KCk9PlNLKGEsYyxiPy52YWx1ZT8udmlzdWFsRWxlbWVudCkpO2Q9Xy5iRSh7Ymg6YS5vblRhcCxxZDohMCxBbzpkfSk7cmV0dXJuIGQ/LmhyZWY/ZDp2b2lkIDB9O1RLPWZ1bmN0aW9uKGEsYixjLGQsZSl7Yz17ckM6Y307Xy5kSyhhLHtmb3JtOntjdXJyZW50RGF0YTpjLHNvdXJjZURhdGE6YyxlbGVtZW50OmIsZXZlbnQ6ZH0sLi4uZX0pfTsKcWZhPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9dm9pZCAwO3JldHVybiBoPT57dmFyIGs9Xy5SRChjP2E/Lm9uRGlzYWJsZWRUYXA6YT8ub25UYXApO2lmKGspaWYoZj1mPz9iPy52YWx1ZSxfLngoIndlYl9idXR0b25fdm1fY2xpY2tfY2xpZW50X3ZlX2tpbGxzd2l0Y2giKSlUSyhrLGYsYSxoKTtlbHNle2xldCBsPVNLKGEsayxmPy52aXN1YWxFbGVtZW50KTtpZihlKXtUSyhrLGUsYSxoLHtjbGlja2VkVmlzdWFsRWxlbWVudDpsLGZvcm06e2VsZW1lbnQ6ZX19KTtyZXR1cm59VEsoayxmLGEsaCx7Y2xpY2tlZFZpc3VhbEVsZW1lbnQ6bH0pfWQmJmQoaCl9fTtyZmE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXZvaWQgMDtyZXR1cm4gZT0+e3ZhciBmPV8uUkQoYT8ub25Ib3Zlcik7ZiYmKGQ9ZD8/Yj8udmFsdWUsYz9USyhmLGMsYSxlLHtmb3JtOntlbGVtZW50OmN9fSk6VEsoZixkLGEsZSkpfX07ClNLPWZ1bmN0aW9uKGEsYixjKXtiPWI/LmNsaWNrVHJhY2tpbmdQYXJhbXM7YT1hPy5sb2dnaW5nRGlyZWN0aXZlcz8uY2xpZW50VmVTcGVjPy51aVR5cGU7aWYoYyYmYSYmIWIpcmV0dXJuIGN9OwpzZmE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NUWUxFX0NUQSI6cmV0dXJuImNhbGwtdG8tYWN0aW9uIjtjYXNlICJCVVRUT05fVklFV19NT0RFTF9TVFlMRV9NT05PIjpjYXNlICJCVVRUT05fVklFV19NT0RFTF9TVFlMRV9CUkFORCI6cmV0dXJuIm1vbm8iO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NUWUxFX09WRVJMQVkiOnJldHVybiJvdmVybGF5IjtjYXNlICJCVVRUT05fVklFV19NT0RFTF9TVFlMRV9PVkVSTEFZX0RBUksiOnJldHVybiJvdmVybGF5LWRhcmsiO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NUWUxFX0JSQU5EX0dSQURJRU5UIjpyZXR1cm4iYnJhbmQtZ3JhZGllbnQiO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NUWUxFX0JSQU5EX0FJIjpyZXR1cm4iZ2VuLWFpLWdyYWRpZW50IjtjYXNlICJCVVRUT05fVklFV19NT0RFTF9TVFlMRV9SQUlTRUQiOnJldHVybiJyYWlzZWQiO2RlZmF1bHQ6cmV0dXJuIm1vbm8ifX07CnRmYT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAiQlVUVE9OX1ZJRVdfTU9ERUxfVFlQRV9GSUxMRUQiOnJldHVybiJmaWxsZWQiO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1RZUEVfT1VUTElORSI6cmV0dXJuIm91dGxpbmUiO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1RZUEVfVEVYVCI6cmV0dXJuInRleHQiO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1RZUEVfVE9OQUwiOnJldHVybiJ0b25hbCI7ZGVmYXVsdDpyZXR1cm4idGV4dCJ9fTt1ZmE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NUQVRFX0FDVElWRSI6cmV0dXJuImFjdGl2ZSI7Y2FzZSAiQlVUVE9OX1ZJRVdfTU9ERUxfU1RBVEVfSU5BQ1RJVkUiOnJldHVybiJkaXNhYmxlZCI7Y2FzZSAiQlVUVE9OX1ZJRVdfTU9ERUxfU1RBVEVfRElTQUJMRUQiOnJldHVybiJkaXNhYmxlZCI7ZGVmYXVsdDpyZXR1cm4iYWN0aXZlIn19Owp2ZmE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NJWkVfWFNNQUxMIjpyZXR1cm4iWFMiO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NJWkVfQ09NUEFDVCI6cmV0dXJuIlMiO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NJWkVfREVGQVVMVCI6cmV0dXJuIk0iO2Nhc2UgIkJVVFRPTl9WSUVXX01PREVMX1NJWkVfTEFSR0UiOnJldHVybiJMIjtjYXNlICJCVVRUT05fVklFV19NT0RFTF9TSVpFX1hMQVJHRSI6cmV0dXJuIlhMIjtkZWZhdWx0OnJldHVybiJNIn19O3ZhciBsZmE9WyJicm93c2UtdmlkZW8tbWVudS1idXR0b24iLCJ1bmlmaWVkLXZlcmlmaWVkLWJhZGdlIiwidG9wYmFyLWd1aWRlLW1lbnUiXSxrZmE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLks9Xy5TSi5qYygpO3RoaXMuaj1uZXcgTWFwO3RoaXMuQj1uZXcgV2Vha01hcDt0aGlzLlk9bmV3IFNldH1kaXNwb3NlKCl7dGhpcy5EJiZfLmNmKHRoaXMuRCwieXQtdmlzaWJpbGl0eS1tb25pdG9yLXJlZnJlc2hlZCIsdGhpcy5JLCExLHRoaXMpO3RoaXMudiYmdGhpcy52LmRpc3Bvc2UoKX1JKCl7Zm9yKGxldCBbYSxiXW9mIHRoaXMuai5lbnRyaWVzKCkpT0sodGhpcyxhLGIpfX0sTEs7dmFyIG1mYT17YW5pbWF0ZWRBc3NldFZpZXdNb2RlbDp7Z2VuZXJpY0JlaGF2aW9yOnthdXRvcGxheTohMCxsb29wOiEwfSxsb3R0aWVBc3NldDp7dGhlbWVkVXJsOntsaWdodDoiaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20veW91dHViZS9pbWcvbG90dGllL3lvdWNoYXRfYW5pbWF0aW9ucy9wcm9ncmVzc19pbmRpY2F0b3Jfc29sb192MS5qc29uIixkYXJrOiJodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9sb3R0aWUveW91Y2hhdF9hbmltYXRpb25zL3Byb2dyZXNzX2luZGljYXRvcl9zb2xvX3YxLmpzb24ifX19fTt2YXIgd2ZhPVsieW91LWNoYXQtZW50cnlwb2ludC1idXR0b24iXTsKXy5IRD1fLkwoKHtkYXRhOmEsY2xhc3NOYW1lOmIsc3R5bGU6YyxidXR0b25PdmVycmlkZXM6ZCxhYjplLG9uQ2xpY2s6Zix0YXJnZXQ6aH0pPT57dmFyIGs9Xy51RSgiYnV0dG9uLXZpZXctbW9kZWwiLEQ9PntELmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ5dC1yZW5kZXJpZG9tLWZpbmlzaGVkIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiExLGNvbXBvc2VkOiEwfSkpO3ZhciBIPWEoKS50YXJnZXRJZDtIJiZfLlFLKF8uTUsoKSxILEQpO3JldHVybigpPT57Xy5QSyhfLk1LKCksRCl9fSksbD1fLmNJKEQ9Pm5mYShELGEoKT8uZW50aXR5S2V5LGEoKT8uYnV0dG9uRW50aXR5U2VsZWN0b3JUeXBlKSksbT0oKT0+YSgpPy5lbnRpdHlLZXkmJmEoKT8uYnV0dG9uRW50aXR5U2VsZWN0b3JUeXBlP2woKTp2b2lkIDAsbj0oKT0+Xy54KCJXZWJGRUFsbFN0dWRpb0J5Q2hhbm5lbF9fd2ViX2J1dHRvbl92aWV3X21vZGVsX2VudGl0eV9vdmVycmlkZXMiKT9tKCk6dm9pZCAwLHA9CigpPT57dmFyIEQ9bigpO2lmKEQ/Lmljb25OYW1lIT09dm9pZCAwKXJldHVybiBELmljb25OYW1lO2lmKEQ/LkFjPT09dm9pZCAwKXJldHVybiBhKCk/Lmljb25OYW1lfHxhKCk/Lnl0SWNvbn0scj1fLnkoKS5yZXNvbHZlKF8uSW4oXy5rRikpPy4oKSx0PSgpPT57dmFyIEQ9ZD8uKCksSD1tKCksUj1uKCksTT1EO2EoKT8uYnV0dG9uRW50aXR5U2VsZWN0b3JUeXBlJiYoTT17Li4uRCxkaXNhYmxlZDohIUg/LmlzRGlzYWJsZWR8fCEhRD8uZGlzYWJsZWR9KTtEPWEoKTt2YXIgUz1NLFk9ZT8uKCkscGE9Uj8uYXJpYURpc2FibGVkfHxIPy5pc0Rpc2FibGVkfHxSPy5hcmlhQnVzeXx8TT8uZGlzYWJsZWQ/dm9pZCAwOmY7TT1oPy4oKTtpZihEKXt2YXIgb2E9dGZhKEQudHlwZSk7dmFyIFU9ISFELnRpdGxlfHwhIUQudGl0bGVGb3JtYXR0ZWQ7dmFyIGhhPSEhKEQuaWNvbk5hbWV8fEQuaWNvbkltYWdlfHxELnl0SWNvbnx8RC5sZWFkaW5nQXNzZXQpO1U9aGEmJiFVPyJpY29uLW9ubHkiOgpoYT9ELmljb25Qb3NpdGlvbj09PSJCVVRUT05fVklFV19NT0RFTF9JQ09OX1BPU0lUSU9OX0FCT1ZFIj8iaWNvbi13aXRoLWxhYmVsIjpELmljb25UcmFpbGluZ3x8RC5pY29uUG9zaXRpb249PT0iQlVUVE9OX1ZJRVdfTU9ERUxfSUNPTl9QT1NJVElPTl9UUkFJTElORyI/InRyYWlsaW5nIjoibGVhZGluZyI6dm9pZCAwO1U9PT0iaWNvbi1vbmx5LTQwIiYmKG9hPSJ0ZXh0Iik7aGE9Uz8uc3RhdGU/P3VmYShELnN0YXRlKTt2YXIgbWE9Uz8uZGlzYWJsZWQ/PyhELnN0YXRlPT09IkJVVFRPTl9WSUVXX01PREVMX1NUQVRFX0RJU0FCTEVEInx8RC5zdGF0ZT09PSJCVVRUT05fVklFV19NT0RFTF9TVEFURV9JTkFDVElWRSIpO18ueCgid2ViX2J1dHRvbl92bV9yZWZhY3Rvcl9kaXNhYmxlZCIpJiYobWE9Uz8uZGlzYWJsZWQ/P2hhPT09ImRpc2FibGVkIik7WT1ZJiZZLlhiJiYhaXNOYU4oTnVtYmVyKFkubnVtYmVyVmFsdWUpKT9ZOnZvaWQgMDt2YXIgdGE9RC50aXRsZSxUPUQudGl0bGVGb3JtYXR0ZWQsCmJhPUQuYWNjZXNzaWJpbGl0eVRleHQsYWE9c2ZhKEQuc3R5bGUpLE9hPXZmYShELmJ1dHRvblNpemUpO3BhPXFmYShELGssbWEscGEsTSk7dmFyIEpiPW1hJiYhRC5vbkRpc2FibGVkVGFwLHphPXBmYShELGspLExiPUQuY3VzdG9tRm9udENvbG9yLGNjPUQuY3VzdG9tQmFja2dyb3VuZENvbG9yO3ZhciBsYz1ELmN1c3RvbUJvcmRlckNvbG9yO2xldCB0ZD1ELmN1c3RvbURhcmtUaGVtZUZvbnRDb2xvcixCZT1ELmN1c3RvbURhcmtUaGVtZUJhY2tncm91bmRDb2xvcjt2YXIgVmI9RC5jdXN0b21EYXJrVGhlbWVCb3JkZXJDb2xvcjtMYj1yJiZ0ZD90ZDpMYjtjYz1yJiZCZT9CZTpjYztsYz1yJiZWYj9WYjpsYztsYz17Y29sb3I6TGI/Xy5ORChMYik6dm9pZCAwLGJhY2tncm91bmRDb2xvcjpjYz9fLk5EKGNjKTp2b2lkIDAsYm9yZGVyQ29sb3I6bGM/Xy5ORChsYyk6dm9pZCAwfTtWYj1fLkIoRC50b29sdGlwRGF0YSxfLmNLKTtjYz1fLkIoRC5kaXNhYmxlZFRvb2x0aXBEYXRhLF8uY0spOwpEPXtidXR0b25UZXh0OnRhLFdhOlQsYWI6WSxhY2Nlc3NpYmlsaXR5TGFiZWw6YmEsc3R5bGU6YWEsdHlwZTpvYSxzdGF0ZTpoYSxzaXplOk9hLGljb25Qb3NpdGlvbjpVLG9uVGFwOnBhLGRpc2FibGVkOkpiLHVjOnphLGN1c3RvbUNvbG9yczpsYyx0b29sdGlwVGV4dDpELnRvb2x0aXAsRG46bWEmJmNjP1JLKGNjKTpWYj9SSyhWYik6dm9pZCAwLG9uSG92ZXI6cmZhKEQsayxNKSxtaWRkbGVncm91bmRBc3NldDpELm1pZGRsZWdyb3VuZEFzc2V0LEFjOkQubGVhZGluZ0Fzc2V0LC4uLlN9fWVsc2UgRD17c3R5bGU6Im1vbm8iLHR5cGU6InRleHQiLHN0YXRlOiJhY3RpdmUiLHNpemU6Ik0ifTtELmZvY3VzZWQ9RigpO1I/LmFjY2Vzc2liaWxpdHlMYWJlbCE9PXZvaWQgMCYmKEQuYWNjZXNzaWJpbGl0eUxhYmVsPVIuYWNjZXNzaWJpbGl0eUxhYmVsKTtSPy5jdXN0b21Db2xvcnMhPT12b2lkIDAmJihELmN1c3RvbUNvbG9ycz1SLmN1c3RvbUNvbG9ycyk7Uj8uQWMhPT12b2lkIDA/KEQuQWM9ClIuQWMsRC5pY29uUG9zaXRpb249Imljb24tb25seSIpOlI/Lmljb25OYW1lIT09dm9pZCAwJiYoRC5BYz12b2lkIDAsRC5pY29uUG9zaXRpb249Imljb24tb25seSIpO0g/LldhJiYoRC5XYT1ILldhKTtyZXR1cm4gRH0sdj1fLlBIKCksej0oKT0+e3ZhciBEPXQoKTtyZXR1cm4gXy5vSyhELCEhcCgpfHwhIUQuQWMsdil9LFtFLEFdPV8uSighMSx2b2lkIDAsIlBwbk5BIiksRj1FO18ubkUoKCk9Pnt2YXIgRD1fLkIoYSgpPy5vblZpc2libGUsXy5PRCk7RCYmXy5hRShELHttZDohMH0pfSwiZWZldXkiKTt2YXIgQz0oKT0+e3ZhciBEPWEoKT8uaWNvbkltYWdlO3JldHVybiBEP3tzb3VyY2VzOltEXX06dm9pZCAwfSxHPUhUTUxFbGVtZW50LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgicG9wb3ZlciIpO3JldHVybiBfLksoImJ1dHRvbi12aWV3LW1vZGVsIix7ZWw6ayxjbGFzczpfLlAoInl0U3BlY0J1dHRvblZpZXdNb2RlbEhvc3QiLGIsKCk9Pnt2YXIgRD1hKCk/LnRhcmdldElkOwppZihEKXJldHVybiB3ZmEuaW5jbHVkZXMoRCk/RDp2b2lkIDB9KSwib246Zm9jdXNpbiI6ZnVuY3Rpb24oKXt2YXIgRD1fLnkoKS5yZXNvbHZlKF8uSW4oXy5qSCkpO0QmJkEoRC5YZSgpKX0sIm9uOmZvY3Vzb3V0IjpmdW5jdGlvbigpe0EoITEpfSwiYXJpYS1kaXNhYmxlZCI6KCk9Pm4oKT8uYXJpYURpc2FibGVkPyJ0cnVlIjp2b2lkIDAsImFyaWEtYnVzeSI6KCk9Pm4oKT8uYXJpYUJ1c3k/InRydWUiOnZvaWQgMH0sXy5LKF8uTyx7QTooKT0+IShtKCk/LmlzSGlkZGVuPz8hMSksdGhlbjooKT0+Xy5LKF8uTyx7QTpDLHRoZW46RD0+Xy5LKF8uSksse2RhdGE6dCxpY29uOigpPT5fLksoXy5qRix7ZGF0YTpELGFsdDoiIixBYjp6LGRjOnosVGE6ITAsWWE6ITB9KSxhcDpHfSksVzooKT0+Xy5LKF8uSksse2RhdGE6dCxpY29uTmFtZTpwLEdlOigpPT4hIWM/LigpPy5hbmltYXRlSWNvbixhcDpHfSl9KX0pKX0sInRhIik7Xy5IRC5pZG9tQ29tcGF0PXtjYWxsYmFja3M6e29uQ2xpY2s6ITB9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5XZCgiRGx2RjFkIik7CgpfLlhkKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uWUM9bmV3IF8uSSgiYWNjZXNzaWJpbGl0eUNvbnRleHQiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5zTD1uZXcgXy5JKCJhdmF0YXJWaWV3TW9kZWwiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5RRj1mdW5jdGlvbihhKXtpZihhKXt2YXIgYj1fLnkoKS5yZXNvbHZlKF8uSW4oXy5rRikpPy4oKSxjPWEuZGFya1RoZW1lSW1hZ2U/P2EuaW1hZ2U7cmV0dXJuIGI/YzphLmltYWdlfX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uUkY9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJSYXE0Y2IiKTtyZXR1cm4gXy5JRH07Xy5TRj1fLmNEKCgpPT5fLlJGKCksImF2YXRhclZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJhdmF0YXJWaWV3TW9kZWwiLCJSYXE0Y2IiLF8uUkYpfSk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uJEY9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJQelVkWmIiKTtyZXR1cm4gXy5FRH07Xy5hRz1fLmNEKCgpPT5fLiRGKCksImJhZGdlVmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooImJhZGdlVmlld01vZGVsIiwiUHpVZFpiIixfLiRGKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnVMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiV3FsY1ZiIik7cmV0dXJuIF8ueER9O18udkw9Xy5jRCgoKT0+Xy51TCgpLCJkZXNjcmlwdGlvblByZXZpZXdWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiZGVzY3JpcHRpb25QcmV2aWV3Vmlld01vZGVsIiwiV3FsY1ZiIixfLnVMKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLndMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgidWhsTEdiIik7cmV0dXJuIF8ud0R9O18ueEw9Xy5jRCgoKT0+Xy53TCgpLCJmbGV4aWJsZUFjdGlvbnNWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiZmxleGlibGVBY3Rpb25zVmlld01vZGVsIiwidWhsTEdiIixfLndMKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnlMPWZ1bmN0aW9uKCl7aWYoISgibWF0Y2hNZWRpYSJpbiB3aW5kb3cpKXJldHVybiBfLldpKEVycm9yKCJ0ZCIpKSwoKT0+MDt2YXIgYT13aW5kb3cubWF0Y2hNZWRpYSgiKG1heC13aWR0aDogNTI3LjlweCkiKSxiPXdpbmRvdy5tYXRjaE1lZGlhKCIobWluLXdpZHRoOiA1MjhweCkgYW5kIChtYXgtd2lkdGg6IDgzOS45cHgpIiksYz13aW5kb3cubWF0Y2hNZWRpYSgiKG1pbi13aWR0aDogODQwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzLjlweCkiKSxkPXdpbmRvdy5tYXRjaE1lZGlhKCIobWluLXdpZHRoOiAxMDI0cHgpIiksW2UsZl09Xy5KKGEubWF0Y2hlcyx2b2lkIDAsIlRtSUtjYiIpLFtoLGtdPV8uSihiLm1hdGNoZXMsdm9pZCAwLCJaMGZUS2QiKSxbbCxtXT1fLkooYy5tYXRjaGVzLHZvaWQgMCwidzR4eTdiIiksW24scF09Xy5KKGQubWF0Y2hlcyx2b2lkIDAsIkRyYk5DIikscj1FPT57ZihFLm1hdGNoZXMpfSx0PUU9PntrKEUubWF0Y2hlcyl9LHY9RT0+e20oRS5tYXRjaGVzKX0sCno9RT0+e3AoRS5tYXRjaGVzKX07Xy5VSigoKT0+e2EuYWRkRXZlbnRMaXN0ZW5lcj8oYS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHIpLGIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0KSxjLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdiksZC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHopKTphLmFkZExpc3RlbmVyJiYoYS5hZGRMaXN0ZW5lcihyKSxiLmFkZExpc3RlbmVyKHQpLGMuYWRkTGlzdGVuZXIodiksZC5hZGRMaXN0ZW5lcih6KSk7Xy5ZdSgoKT0+e2EucmVtb3ZlRXZlbnRMaXN0ZW5lcj8oYS5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHIpLGIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0KSxjLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdiksZC5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHopKTphLnJlbW92ZUxpc3RlbmVyJiYoYS5yZW1vdmVMaXN0ZW5lcihyKSxiLnJlbW92ZUxpc3RlbmVyKHQpLGMucmVtb3ZlTGlzdGVuZXIodiksCmQucmVtb3ZlTGlzdGVuZXIoeikpfSl9KTtyZXR1cm4oKT0+ZSgpPzE6aCgpPzI6bCgpPzM6bigpPzQ6MH07Xy5BTD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Xy55KCkucmVzb2x2ZShfLkluKHpMKSksW2UsZl09Xy5KKGQsdm9pZCAwLCJ4R3NSUSIpO2R8fF8uWXQoekwsZik7cmV0dXJuIF8uTigoKT0+e3ZhciBoPWEoKTtyZXR1cm4gaCYmYigpP2UoKT8uKGgsYixjKTp2b2lkIDB9LHZvaWQgMCwiYnNvc2RkIil9O3ZhciB6TD1uZXcgXy5WcygiU0VNQU5USUNfVFlQT0dSQVBIWV9SRVNPTFZFUl9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlRIPWZ1bmN0aW9uKGEpe3JldHVybigpPT5fLkIoYSgpLF8uWUMpfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEJMPWZ1bmN0aW9uKGEpe2lmKGEpcmV0dXJuIF8ueSgpLnJlc29sdmUoXy5JbihfLmtGKSk/LigpP2EuZGFya1RoZW1lOmEubGlnaHRUaGVtZX0sQ0w9bmV3IF8uSSgiYmFkZ2VWaWV3TW9kZWwiKTt2YXIgQ2ZhPW5ldyBfLlZzKCJDT01NT05fTUFSS19WSUVXX01PREVMX1RPS0VOIik7dmFyIERmYTtfLkRMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiRnFIY0dlIik7cmV0dXJuIF8udEZ9O0RmYT1fLmNEKCgpPT5fLkRMKCksInNlY3Rpb25IZWFkZXJMYXlvdXQiKTtfLll0KF8uSkQsYT0+e2EuSigic2VjdGlvbkhlYWRlckxheW91dCIsIkZxSGNHZSIsXy5ETCl9KTtfLnZEPV8uTCgoe2NsYXNzTmFtZTphLGRhdGE6YixkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6YyxkaXNhYmxlVmVydGljYWxQYWRkaW5nOmQsVGk6ZSxLbjpmLGlzT3ZlcmxheTpoLEVzOmssZ0w6bCxpSjptfSk9Pnt2YXIgbj1fLlRIKCgpPT5iKCkucmVuZGVyZXJDb250ZXh0KSxwPV8ueUwoKSxyPV8uQUwoKCk9PmIoKS5oZWFkbGluZVR5cG9ncmFwaHlUb2tlbixwLHttYXhMaW5lczoyfSk7cD1fLkFMKCgpPT5iKCkuc3VidGl0bGVUeXBvZ3JhcGh5VG9rZW4scCk7dmFyIHQ9Xy5RSCgoKT0+YigpLmhvcml6b250YWxQYWRkaW5nKSx2PV8uUUgoKCk9PmIoKS50b3BQYWRkaW5nKSx6PV8uUUgoKCk9PmIoKS5ib3R0b21QYWRkaW5nKTtyZXR1cm4gXy5LKCJ5dC1zZWN0aW9uLWhlYWRlci12aWV3LW1vZGVsIix7Y2xhc3M6Xy5QKCJ5dFNlY3Rpb25IZWFkZXJWaWV3TW9kZWxIb3N0IixhKSxzdHlsZTpfLklFKHsiYmFja2dyb3VuZC1jb2xvciI6KCk9PkJMKGIoKS5iYWNrZ3JvdW5kQ29sb3IpPwpfLk5EKEJMKGIoKS5iYWNrZ3JvdW5kQ29sb3IpKTp2b2lkIDB9KX0sXy5LKERmYSx7YXJpYUxhYmVsOigpPT5uKCk/LmxhYmVsLEF3OiExLHRpdGxlOigpPT5fLksoXy5WLHt0ZXh0OigpPT5iKCkuaGVhZGxpbmUsWGE6ITB9KSxraDohMCxzdWJsYWJlbDooKT0+Xy5LKEVmYSx7ZGF0YTpifSksTHc6KCk9PiEhYigpLnN1YmxhYmVsfHwhIWIoKS5ib3R0b21CYWRnZXx8ISFiKCkuYm90dG9tQmFkZ2VzLHN1cGVybGFiZWw6KCk9Pl8uSyhGZmEse2RhdGE6Yn0pLE13OigpPT4hIWIoKS5zdXBlcmxhYmVsfHwhIWIoKS50b3BCYWRnZSxsZWFkaW5nSW1hZ2U6KCk9Pl8uSyhHZmEse2xlYWRpbmdBY2Nlc3Nvcnk6KCk9PmIoKS5sZWFkaW5nQWNjZXNzb3J5fSksSHc6KCk9PiEhYigpLmxlYWRpbmdBY2Nlc3NvcnksdHJhaWxpbmdBY3Rpb25zOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dFNlY3Rpb25IZWFkZXJWaWV3TW9kZWxUcmFpbGluZ0FjdGlvbnNDb250YWluZXIifSxfLksoXy5XLHtkYXRhOigpPT4KYigpLnRyYWlsaW5nQWN0aW9uc30se2ZsZXhpYmxlQWN0aW9uc1ZpZXdNb2RlbDpfLnhMfSksXy5LKF8uTyx7QTptLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0U2VjdGlvbkhlYWRlclZpZXdNb2RlbENoZXZyb25zQ29udGFpbmVyIn0sXy5LKF8uZ0cse3BhOigpPT5sPy4oKXx8W119LEU9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0U2VjdGlvbkhlYWRlclZpZXdNb2RlbENoZXZyb24ifSxFKSkpfSkpLE53OigpPT5tPy4oKXx8ISFiKCkudHJhaWxpbmdBY3Rpb25zLGRpc2FibGVIb3Jpem9udGFsUGFkZGluZzooKT0+Yz8uKCl8fGIoKS5kaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmcsZGlzYWJsZVZlcnRpY2FsUGFkZGluZzooKT0+ZD8uKCl8fGIoKS5kaXNhYmxlVmVydGljYWxQYWRkaW5nLFRpOmUsS246Zixpc092ZXJsYXk6aCxyaDooKT0+ISFfLnNIKGIoKS5yZW5kZXJlckNvbnRleHQpLGhvdmVyRWZmZWN0RW5hYmxlZDooKT0+YigpLmhvdmVyRWZmZWN0RW5hYmxlZCxvbkNsaWNrOkU9Pgp7dmFyIEE9Xy5zSChiKCkucmVuZGVyZXJDb250ZXh0KTtBJiZfLmFFKEEse2Zvcm06e2VsZW1lbnQ6RS50YXJnZXQsZXZlbnQ6RX19KX0sYm90dG9tQWNjZXNzb3J5OigpPT5fLksoXy5XLHtkYXRhOigpPT5iKCkuYm90dG9tQWNjZXNzb3J5fSx7ZGVzY3JpcHRpb25QcmV2aWV3Vmlld01vZGVsOih7ZGF0YTpFfSk9Pl8uSyhfLnZMLHtkYXRhOkUsWGM6ITB9KSxjb21tb25NYXJrVmlld01vZGVsOih7ZGF0YTpFfSk9Pl8uSyhfLklCLG51bGwsXy55KCkucmVzb2x2ZShfLkluKENmYSkpPy4oe2RhdGE6RX0pKX0pLHp3OigpPT4hIWIoKS5ib3R0b21BY2Nlc3NvcnksRXM6ayxoZWFkbGluZVR5cG9ncmFwaHlUb2tlbjpyLHN1YnRpdGxlVHlwb2dyYXBoeVRva2VuOnAsanE6dCxmQjp2LEh1Onp9KSl9LCJ3YSIpOwp2YXIgR2ZhPV8uTCgoe2xlYWRpbmdBY2Nlc3Nvcnk6YX0pPT5fLksoXy5JQixudWxsLF8uSyhfLk8se0E6KCk9PmEoKS5pbWFnZT8/Xy5RRihhKCkudGhlbWVkSW1hZ2UpLHRoZW46Yj0+Xy5LKF8uakYse2RhdGE6YixhbHQ6IiIsVGE6ITAsWWE6ITB9KX0pLF8uSyhfLk8se0E6KCk9Pl8uQihhKCkuYXZhdGFyLF8uc0wpLHRoZW46Yj0+Xy5LKF8uU0Yse2RhdGE6Yn0pfSkpLCJ4YSIpLEVmYT1fLkwoKHtkYXRhOmF9KT0+Xy5LKF8uSUIsbnVsbCxfLksoInNwYW4iLHtjbGFzczpfLlAoe3l0U2VjdGlvbkhlYWRlclZpZXdNb2RlbEJhZGdlV2l0aExhYmVsOigpPT4oISFhKCkuYm90dG9tQmFkZ2VzfHwhIWEoKS5ib3R0b21CYWRnZSkmJiEhYSgpLnN1YmxhYmVsfSl9LF8uSyhfLk8se0E6KCk9Pl8uQihhKCkuYm90dG9tQmFkZ2UsQ0wpLHRoZW46Yj0+Xy5LKF8uYUcse2RhdGE6Yn0pfSksXy5LKF8uVyx7ZGF0YTooKT0+YSgpLmJvdHRvbUJhZGdlc30se2JhZGdlVmlld01vZGVsOih7ZGF0YTpifSk9PgpfLksoXy5hRyx7ZGF0YTpiLGNsYXNzOl8uUCgieXRTZWN0aW9uSGVhZGVyVmlld01vZGVsQmFkZ2VzIil9KX0pKSxfLksoXy5PLHtBOigpPT5hKCkuc3VibGFiZWwsdGhlbjpiPT5fLksoXy5WLHt0ZXh0OmJ9KX0pKSwieWEiKSxGZmE9Xy5MKCh7ZGF0YTphfSk9Pl8uSyhfLklCLG51bGwsXy5LKF8uTyx7QTooKT0+Xy5CKGEoKS50b3BCYWRnZSxDTCksdGhlbjpiPT5fLksoXy5hRyx7ZGF0YTpiLGNsYXNzOl8uUCh7eXRTZWN0aW9uSGVhZGVyVmlld01vZGVsQmFkZ2VXaXRoTGFiZWw6KCk9PiEhYigpJiYhIWEoKS5zdXBlcmxhYmVsfSl9KX0pLF8uSyhfLk8se0E6KCk9PmEoKS5zdXBlcmxhYmVsLHRoZW46Yj0+Xy5LKF8uVix7dGV4dDpifSl9KSksInphIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoImN5Q1ZsZCIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgTkg7Tkg9ZnVuY3Rpb24oKXt9O18uT0g9ZnVuY3Rpb24oKXtyZXR1cm4iOiIrKEpkYS5qKyspLnRvU3RyaW5nKDM2KX07Xy53YShOSCk7TkgucHJvdG90eXBlLmo9MDt2YXIgSmRhPU5ILmpjKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uRkk9bmV3IF8uVnMoIlNVQk1JVF9BUElfU0VSVklDRV9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmtMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgib3NUdHhlIik7cmV0dXJuIF8uQUR9O18ubEw9Xy5jRCgoKT0+Xy5rTCgpLCJiYXNpY0NvbnRlbnRWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiYmFzaWNDb250ZW50Vmlld01vZGVsIiwib3NUdHhlIixfLmtMKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlRGPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiRGx2RjFkIik7cmV0dXJuIF8uSER9O18uVUY9Xy5jRCgoKT0+Xy5URigpLCJidXR0b25WaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiYnV0dG9uVmlld01vZGVsIiwiRGx2RjFkIixfLlRGKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLm1MPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiRnNvWHpjIik7cmV0dXJuIF8uekR9O18ubkw9Xy5jRCgoKT0+Xy5tTCgpLCJjb250ZW50TGlzdEl0ZW1WaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiY29udGVudExpc3RJdGVtVmlld01vZGVsIiwiRnNvWHpjIixfLm1MKX0pO18ub0w9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJwZTJvamIiKTtyZXR1cm4gXy5DRH07Xy5wTD1fLmNEKCgpPT5fLm9MKCksImxpc3RJdGVtVmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooImxpc3RJdGVtVmlld01vZGVsIiwicGUyb2piIixfLm9MKX0pO18ucUw9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJVQU01bSIpO3JldHVybiBfLnlEfTtfLnJMPV8uY0QoKCk9Pl8ucUwoKSwibG9ja3VwVmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooImxvY2t1cFZpZXdNb2RlbCIsIlVBTTVtIixfLnFMKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLkZMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiVk9VUDlkIik7cmV0dXJuIF8udUR9O18uR0w9Xy5jRCgoKT0+Xy5GTCgpLCJsaW5lYXJMYXlvdXRWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigibGluZWFyTGF5b3V0Vmlld01vZGVsIiwiVk9VUDlkIixfLkZMKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgS0ksYWVhLCRJLGFKLGJlYTtfLkdJPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PT1iPyEwOmE/LmZvcm1JZD09PWI/LmZvcm1JZCYmYT8uZmllbGRJZD09PWI/LmZpZWxkSWR9O18uSEk9ZnVuY3Rpb24oYSl7cmV0dXJuIEVycm9yKCJuZGAiK2EucmVwbGFjZSgvXG5ccyovZywiICIpKX07Xy5JST1mdW5jdGlvbihhKXtyZXR1cm4gRXJyb3IoIm9kYCIrYS5yZXBsYWNlKC9cblxzKi9nLCIgIikpfTtfLkpJPWZ1bmN0aW9uKCl7cmV0dXJue25qOiExLGZiOiEwLHpkOiExLGlzU3VibWl0dGluZzohMSxjczowfX07S0k9ZnVuY3Rpb24oYSxiKXt2YXIgYz0hMDtmb3IobGV0IGQgb2YgT2JqZWN0LmtleXMoYSkpe2lmKGQ9PT0iZm9ybUlkIiljb250aW51ZTtsZXQgZT1hW2RdO2Uua2luZD09PTEmJihLSShlLnZhbHVlLGIpfHwoYz0hMSkpfWIoYS5mb3JtSWQpfHwoYz0hMSk7cmV0dXJuIGN9OwpfLk1JPWZ1bmN0aW9uKGEpe3ZhciBiPUxJLmdldChhKTtpZihiKXJldHVybiBiO2I9YS5yZXBsYWNlKC9fKFthLXpBLVowLTldKS9nLChjLGQpPT5kLnRvVXBwZXJDYXNlKCkpO0xJLnNldChhLGIpO3JldHVybiBifTtfLk9JPWZ1bmN0aW9uKCl7Tkk/LihhPT5hKzEpfTtfLlJJPWZ1bmN0aW9uKGEpe1BJP1BJKCk6KFtQSSwsTkldPV8uSigwLHZvaWQgMCwiVnhZMGZiIiksUEkoKSk7cmV0dXJuIF8uUUkuZ2V0KGEpfTtfLlNJPWZ1bmN0aW9uKGEsYil7aWYoYSl7dmFyIGM9Xy5SSShhKTtpZihjKXtpZihiJiZiIT09Yy5VaSl0aHJvdyBfLklJKGBGb3JtIHR5cGUgbWlzbWF0Y2ggZm9yIGZvcm1JZCAke2F9OiBwcm92aWRlZCBmb3JtVHlwZSAiJHtifSIgZG9lcyBub3QgbWF0Y2ggc3RvcmVkIGZvcm1UeXBlICIke2MuVWl9Ii5gKTtyZXR1cm4gYy5mb3JtfX19OwpfLlZJPWZ1bmN0aW9uKGEpe3ZhciBiPV8uUkkoYSk7aWYoIWIpdGhyb3cgXy5USShhKTtpZihiLlNwPT09MClyZXR1cm4gYi5mb3JtO2I9Yi5wZztpZighYil0aHJvdyBfLlVJKGEpO2E9Xy5TSShiLlZ6KTtpZighYSl0aHJvdyBfLkhJKGBGb3JtSWQgJHtiLlZ6fSBub3QgZm91bmQuYCk7cmV0dXJuIGF9O2FlYT1mdW5jdGlvbihhKXt0cnl7dmFyIGI9Xy5WSShhKX1jYXRjaChjKXtyZXR1cm4hMX0oYT1LSShiLGM9Pl8uUUkuZGVsZXRlKGMpKSkmJl8uT0koKTtyZXR1cm4gYX07Xy5XST1mdW5jdGlvbihhLGIpe2lmKGI9PT0iZm9ybUlkIil0aHJvdyBfLklJKCJGaWVsZCBpZCBjYW5ub3QgYmUgZm9ybUlkLiIpO2lmKGE9Xy5TSShhKSlyZXR1cm4gYj1fLk1JKGIpLGFbYl19O18uWEk9ZnVuY3Rpb24oYSl7aWYoYT1fLlJJKGEpKXJldHVybiBhLkRsfTsKXy5aST1mdW5jdGlvbihhKXt2YXIgYj1fLk4oKCk9Pl8uQnYoYSk/P3t9LHtlcXVhbHM6Xy5HSX0sIkxETkxiZCIpLGM9Xy5OKCgpPT57dmFyIHtmb3JtSWQ6ZCxmaWVsZElkOmV9PWIoKTtpZihkJiZlKXt2YXIgZjtpZihmPV8uV0koZCxlKSl7aWYoISgiZnVuY3Rpb24iPT10eXBlb2YgXy5ZSSYmZiBpbnN0YW5jZW9mIF8uWUkpKXRocm93IF8uSUkoYEZpZWxkICR7ZX0gaW4gZm9ybSAke2R9IGlzIG5vdCBhIFNjYWxhckZpZWxkLmApO31lbHNlIGY9dm9pZCAwO3JldHVybiBmfX0sdm9pZCAwLCJvOG8wMGQiKTtyZXR1cm4oKT0+YygpfTskST1mdW5jdGlvbihhLGIpe3ZhciBjPShjPV8uUkkoYSkpP2MuQ246dm9pZCAwO2lmKCFjKXRocm93IF8uSEkoYE1pc3NpbmcgdG9Gb3JtRGF0YSBmdW5jdGlvbiBmb3IgRm9ybUlkICR7YX0uYCk7cmV0dXJuIGMoYil9OwphSj1mdW5jdGlvbihhLGIpe3ZhciBjPShjPV8uUkkoYSkpP2MuQ2w6dm9pZCAwO2lmKCFjKXRocm93IF8uSEkoYE1pc3NpbmcgZm9ybURhdGFFeHRlbnNpb25GaWVsZCBmb3IgRm9ybUlkICR7YX0uYCk7cmV0dXJue1tjXTpifX07CmJlYT1hc3luYyBmdW5jdGlvbihhKXt2YXIgYj1fLlZJKGEpLGM9Xy5YSShhKTt2YXIgZD0oZD1fLlJJKGEpKT9kLnN1Ym1pdENvbmZpZzp2b2lkIDA7dmFyIGU9Xy55KCkucmVzb2x2ZShfLkluKF8uRkkpKSxmPV8uUkkoYSk7ZiYmKGYuWmQ9ey4uLmYuWmQsaXNTdWJtaXR0aW5nOiEwfSxfLk9JKCkpO3RyeXtpZihkJiZlKXtsZXQgaz0kSShhLGIpO3ZhciBoPWFKKGEsayk7bGV0IGw9YXdhaXQgZS5iaShkLnN1Ym1pdElkLGgse3N1Ym1pdEFjdGlvbjoiU1VCTUlUX0FDVElPTl9TVUJNSVNTSU9OIixhbGxGaWVsZHM6ITB9LGQucGFyYW1zLGQuY2xpY2tUcmFja2luZ1BhcmFtcyk7aWYobC5zdWJtaXRFcnJvcil0aHJvdyBiSihsLnN1Ym1pdEVycm9yKTthd2FpdCBjPy5IbT8uKGwpfWVsc2UgYXdhaXQgYz8ub25TdWJtaXQ/LihiKX1jYXRjaChrKXtyZXR1cm4gayBpbnN0YW5jZW9mIEVycm9yP1Byb21pc2UucmVqZWN0KGspOlByb21pc2UucmVqZWN0KGJKKGspKX1maW5hbGx5e2lmKGE9Cl8uUkkoYSkpYS5aZD17Li4uYS5aZCxpc1N1Ym1pdHRpbmc6ITEsY3M6YS5aZC5jcysxfSxfLk9JKCl9fTtfLmNKPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5OKCgpPT5fLkJ2KGEpPz8iIix2b2lkIDAsIkdSbXByIiksZD1fLk4oKCk9Pl8uU0koYygpLGIpLHZvaWQgMCwicGJUZUJiIiksZT1fLk4oKCk9Pnt2YXIgaD1jKCk7cmV0dXJuKGg9Xy5SSShoKSk/aC5aZDpfLkpJKCl9LHZvaWQgMCwidWN2NkxiIiksZj1fLk4oKCk9Pnt2YXIgaD1kKCk7aWYoIWgpcmV0dXJue2Zvcm1EYXRhOnZvaWQgMCxldzp2b2lkIDB9O2g9JEkoYygpLGgpO3JldHVybntmb3JtRGF0YTpoLGV3OmFKKGMoKSxoKX19LHZvaWQgMCwiaEg2MXFjIik7cmV0dXJue2Zvcm06KCk9PmQoKSxkYXRhOigpPT5mKCksc3RhdGU6KCk9PmUoKSxzdWJtaXQ6YXN5bmMoKT0+e2F3YWl0IGJlYShjKCkpfSxkaXNwb3NlOigpPT5hZWEoYygpKX19O18uZEo9U3ltYm9sKCJkZCIpO3ZhciBiSjtfLlRJPWE9Pl8uSEkoYEZvcm0gc2Vzc2lvbiBmb3IgRm9ybUlkICR7YX0gbm90IGZvdW5kLmApO18uVUk9YT0+Xy5ISShgTmVzdGVkIGZvcm0gYWNjZXNzb3IgZm9yIEZvcm1JZCAke2F9IG5vdCBmb3VuZC5gKTtiSj1hPT5fLklJKGBVbmtub3duIGVycm9yIGR1cmluZyBmb3JtIHN1Ym1pc3Npb246ICR7SlNPTi5zdHJpbmdpZnkoYSl9YCk7dmFyIExJPW5ldyBNYXA7dmFyIFBJLE5JO18uUUk9bmV3IE1hcDsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEhmYT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAiQ0FSRF9TVFlMRV9PVVRMSU5FIjpyZXR1cm4ieXRDYXJkVmlld01vZGVsT3V0bGluZSI7Y2FzZSAiQ0FSRF9TVFlMRV9UT05BTCI6cmV0dXJuInl0Q2FyZFZpZXdNb2RlbFRvbmFsIjtjYXNlICJDQVJEX1NUWUxFX0lOVkVSU0UiOnJldHVybiJ5dENhcmRWaWV3TW9kZWxJbnZlcnRlZCI7ZGVmYXVsdDpyZXR1cm4ieXRDYXJkVmlld01vZGVsUmFpc2VkIn19O3ZhciBITD1uZXcgXy5JKCJzZWN0aW9uSGVhZGVyVmlld01vZGVsIik7dmFyIElmYTtfLklMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiVmJYclVlIik7cmV0dXJuIF8uaEh9O0lmYT1fLmNEKCgpPT5fLklMKCksImNvbnZlcnNhdGlvblZpZGVvSWRlYUNhcmRWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiY29udmVyc2F0aW9uVmlkZW9JZGVhQ2FyZFZpZXdNb2RlbCIsIlZiWHJVZSIsXy5JTCl9KTt2YXIgSmZhO18uSkw9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJwRVNsRGIiKTtyZXR1cm4gXy5lRn07SmZhPV8uY0QoKCk9Pl8uSkwoKSwidGhlbWVkSW1hZ2VWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigidGhlbWVkSW1hZ2VWaWV3TW9kZWwiLCJwRVNsRGIiLF8uSkwpfSk7dmFyIEtmYT1uZXcgXy5WcygiQVNLX1NUVURJT19DQVJEX1ZJRVdfTU9ERUxfVE9LRU4iKTt2YXIgTGZhPW5ldyBfLlZzKCJBU0tfU1RVRElPX1ZJREVPX0VESVRfUFJFVklFV19WSUVXX01PREVMX1RPS0VOIik7dmFyIE1mYT1uZXcgXy5WcygiQVVESUVOQ0VfT05MSU5FX0hFQVRNQVBfVklFV19NT0RFTF9UT0tFTiIpO3ZhciBOZmE9bmV3IF8uVnMoIkNPTU1FTlRTX0RJR0VTVF9DT05URU5UX1ZJRVdfTU9ERUxfVE9LRU4iKTt2YXIgT2ZhPW5ldyBfLlZzKCJQUklNRVRJTUVfT0ZGRVJJTkdfSU5fUkVWSUVXX0NBUkRfQ09OVEVOVF9WSUVXX01PREVMX1RPS0VOIik7dmFyIFBmYT1uZXcgXy5WcygiWVRDUF9GVU5ORUxfVklFV19NT0RFTF9UT0tFTiIpO3ZhciBRZmE7Xy5LTD1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoInFWRGdCZCIpO3JldHVybiBfLmRGfTtRZmE9Xy5jRCgoKT0+Xy5LTCgpLCJjaW5lbWF0aWNDb250YWluZXJWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiY2luZW1hdGljQ29udGFpbmVyVmlld01vZGVsIiwicVZEZ0JkIixfLktMKX0pO3ZhciBSZmE7Xy5MTD1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoImk2WG9tZSIpO3JldHVybiBfLlBGfTtSZmE9Xy5jRCgoKT0+Xy5MTCgpLCJyYWRpb0J1dHRvbkl0ZW1WaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigicmFkaW9CdXR0b25JdGVtVmlld01vZGVsIiwiaTZYb21lIixfLkxMKX0pO3ZhciBTZmE7Xy5NTD1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoImJ6ajBqZCIpO3JldHVybiBfLnRMfTtTZmE9Xy5jRCgoKT0+Xy5NTCgpLCJpbmxpbmVFeHBhbmRlclZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJpbmxpbmVFeHBhbmRlclZpZXdNb2RlbCIsImJ6ajBqZCIsXy5NTCl9KTt2YXIgVGZhO18uTkw9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJGaU5HT2MiKTtyZXR1cm4gXy5nSH07VGZhPV8uY0QoKCk9Pl8uTkwoKSwiZGlzbWlzc2libGVJdGVtIik7Xy5ZdChfLkpELGE9PnthLkooImRpc21pc3NpYmxlSXRlbSIsIkZpTkdPYyIsXy5OTCl9KTt2YXIgVWZhPW5ldyBfLlZzKCJDT05URU5UX1NFQ1RJT05fVklFV19NT0RFTF9UT0tFTiIpO3ZhciBWZmE7Xy5PTD1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoInVSSWFDIik7cmV0dXJuIF8uQkh9O1ZmYT1fLmNEKCgpPT5fLk9MKCksImNoYW5uZWxBdHRyaWJ1dGlvblZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJjaGFubmVsQXR0cmlidXRpb25WaWV3TW9kZWwiLCJ1UklhQyIsXy5PTCl9KTt2YXIgUEw9Xy5MKGE9Pnt2YXIgYj1fLlFIKCgpPT5hLmRhdGEoKS50b3BDb250ZW50UGFkZGluZ1Rva2VuKSxjPV8uUUgoKCk9PmEuZGF0YSgpLmJvZHlDb250ZW50UGFkZGluZ1ZhbHVlcz8udG9wUGFkZGluZ1Rva2VufHxhLmRhdGEoKS5ib2R5Q29udGVudFBhZGRpbmdUb2tlbiksZD1fLlFIKCgpPT5hLmRhdGEoKS5ib2R5Q29udGVudFBhZGRpbmdWYWx1ZXM/LmJvdHRvbVBhZGRpbmdUb2tlbnx8YS5kYXRhKCkuYm9keUNvbnRlbnRQYWRkaW5nVG9rZW4pLGU9Xy5RSCgoKT0+YS5kYXRhKCkuYm9keUNvbnRlbnRQYWRkaW5nVmFsdWVzPy5ob3Jpem9udGFsUGFkZGluZ1Rva2VufHxhLmRhdGEoKS5ib2R5Q29udGVudFBhZGRpbmdUb2tlbiksZj0oKT0+YS5kYXRhKCkuYmFja2dyb3VuZCxoPSgpPT5hLmRhdGEoKS50cmFpbGluZ0FjdGlvbkxheW91dD09PSJDQVJEX1RSQUlMSU5HX0FDVElPTl9MQVlPVVRfT1ZFUkxBWSIsaz0oKT0+YS5kYXRhKCkudHJhaWxpbmdBY3Rpb25MYXlvdXQ9PT0KIkNBUkRfVFJBSUxJTkdfQUNUSU9OX0xBWU9VVF9JTkxJTkVfQ0VOVEVSIixsPV8ueSgpLnJlc29sdmUoXy5JbihVZmEpKSxtPV8ueSgpLnJlc29sdmUoXy5JbihLZmEpKSxuPV8ueSgpLnJlc29sdmUoXy5JbihMZmEpKSxwPV8ueSgpLnJlc29sdmUoXy5JbihOZmEpKSxyPV8ueSgpLnJlc29sdmUoXy5JbihNZmEpKSx0PV8ueSgpLnJlc29sdmUoXy5JbihQZmEpKSx2PV8ueSgpLnJlc29sdmUoXy5JbihPZmEpKSx6PSgpPT5hLmRhdGEoKS5jYXJkU3RhdGU/LmVuYWJsZW1lbnRTdGF0ZT09PSJDQVJEX0VOQUJMRU1FTlRfU1RBVEVfRElTQUJMRUQiLEU9KCk9PiF6KCkmJl8udEgoYS5kYXRhKCkucmVuZGVyZXJDb250ZXh0KSxBPSgpPT57aWYoYS5pc0V4cGFuZGVkPy4oKSE9PXZvaWQgMClyZXR1cm4gYS5pc0V4cGFuZGVkPy4oKTtzd2l0Y2goYS5kYXRhKCkuY2FyZFN0YXRlPy5leHBhbnNpb25TdGF0ZSl7Y2FzZSAiQ0FSRF9FWFBBTlNJT05fU1RBVEVfRVhQQU5ERUQiOnJldHVybiEwOwpjYXNlICJDQVJEX0VYUEFOU0lPTl9TVEFURV9DT0xMQVBTRUQiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuIGEuaXNTZWxlY3RlZD8uKCl9fTtyZXR1cm4gXy5LKCJ5dC1jYXJkLXZpZXctbW9kZWwiLHtjbGFzczpfLlAoInl0Q2FyZFZpZXdNb2RlbEhvc3QiLGEuY2xhc3NOYW1lKX0sXy5LKFRmYSx7Y29udGVudElkOigpPT5hLmRhdGEoKS5jb250ZW50SWR9LCgpPT5fLksoImRpdiIse2VsOl8uckYoXy51SCgoKT0+RSgpP2EuZGF0YSgpLnJlbmRlcmVyQ29udGV4dDp2b2lkIDAsdm9pZCAwLHZvaWQgMCxbIkEiLnRvU3RyaW5nKCksIkJVVFRPTiIudG9TdHJpbmcoKSwuLi4oXy54KCJXZWJGRUFsbFN0dWRpb0J5Q2hhbm5lbF9fZW5hYmxlX2FuYWx5dGljc19odWJfd2ViIik/WyJZVC1MSVNULUlURU0tVklFVy1NT0RFTCJdOltdKV0pKSxjbGFzczpfLlAoInl0Q2FyZFZpZXdNb2RlbENhcmRWaWV3TW9kZWxJbm5lciIse3l0Q2FyZFZpZXdNb2RlbENsaWNrYWJsZTpFfSwoKT0+SGZhKGEuZGF0YSgpLmNhcmRTdHlsZSksCnt5dENhcmRWaWV3TW9kZWxDYXJkU2VsZWN0ZWQ6KCk9PiEhYS5pc1NlbGVjdGVkPy4oKX0sKCk9PntpZihhLmlzU2VsZWN0ZWQ/LigpPT09dm9pZCAwKXthOntzd2l0Y2goYS5kYXRhKCkuY2FyZFN0YXRlPy5zZWxlY3Rpb25TdGF0ZSl7Y2FzZSAiQ0FSRF9TRUxFQ1RJT05fU1RBVEVfU0VMRUNURUQiOnZhciBGPSJ5dENhcmRWaWV3TW9kZWxTZWxlY3RlZCI7YnJlYWsgYX1GPXZvaWQgMH1yZXR1cm4gRn19KSxyb2xlOigpPT5FKCkmJiFfLkIoYS5kYXRhKCkudG9wQ29udGVudCxITCk/ImJ1dHRvbiI6dm9pZCAwLCJhcmlhLWRpc2FibGVkIjp6LHRhYmluZGV4OigpPT56KCk/LTE6RSgpJiYhXy5CKGEuZGF0YSgpLnRvcENvbnRlbnQsSEwpPzA6dm9pZCAwfSxfLksoXy5XLHtkYXRhOmYsd3JhcHBlcjpGPT5fLksoImRpdiIse2NsYXNzOiJ5dENhcmRWaWV3TW9kZWxCYWNrZ3JvdW5kV3JhcHBlciJ9LEYoKSl9LHtjaW5lbWF0aWNDb250YWluZXJWaWV3TW9kZWw6UWZhLHRoZW1lZEltYWdlVmlld01vZGVsOih7ZGF0YTpGfSk9PgpfLksoSmZhLHtkYXRhOkYsY2xhc3NOYW1lOiJ5dENhcmRWaWV3TW9kZWxCYWNrZ3JvdW5kIn0pfSksXy5LKCJkaXYiLHtjbGFzczoieXRDYXJkVmlld01vZGVsQ29udGVudFdyYXBwZXIifSxfLksoXy5PLHtBOigpPT4haCgpLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0Q2FyZFZpZXdNb2RlbFRvcENvbnRlbnRDb250YWluZXIifSxfLksoImRpdiIse2NsYXNzOl8uUCgieXRDYXJkVmlld01vZGVsVG9wQ29udGVudCIse3l0Q2FyZFZpZXdNb2RlbFRvcENvbnRlbnRQYWRkaW5nOigpPT4hYS5kYXRhKCkuZGlzYWJsZVRvcENvbnRlbnRQYWRkaW5nJiZhLmRhdGEoKS50b3BDb250ZW50fSksc3R5bGU6Xy5JRSh7cGFkZGluZzpifSl9LF8uSyhfLlcse2RhdGE6KCk9PmEuZGF0YSgpLnRvcENvbnRlbnR9LHtjb250ZW50TGlzdEl0ZW1WaWV3TW9kZWw6Xy5uTCxiYXNpY0NvbnRlbnRWaWV3TW9kZWw6Xy5sTCxsaW5lYXJMYXlvdXRWaWV3TW9kZWw6Xy5HTCxsaXN0SXRlbVZpZXdNb2RlbDpfLnBMLApzZWN0aW9uSGVhZGVyVmlld01vZGVsOl8udkR9KSksXy5LKCJkaXYiLHtjbGFzczpfLlAoInl0Q2FyZFZpZXdNb2RlbElubGluZVRyYWlsaW5nQWN0aW9uIix7eXRDYXJkVmlld01vZGVsSW5saW5lQ2VudGVyVHJhaWxpbmdBY3Rpb246ayx5dENhcmRWaWV3TW9kZWxJbmxpbmVUcmFpbGluZ0FjdGlvbk1hcmdpbjooKT0+YS5kYXRhKCkudHJhaWxpbmdBY3Rpb259KX0sXy5LKF8uVyx7ZGF0YTooKT0+YS5kYXRhKCkudHJhaWxpbmdBY3Rpb259LHtidXR0b25WaWV3TW9kZWw6Xy5VRn0pKSl9KSxfLksoImRpdiIse2NsYXNzOl8uUCh7eXRDYXJkVmlld01vZGVsQm90dG9tQ29udGVudFBhZGRpbmc6KCk9PiFhLmRhdGEoKS5kaXNhYmxlQm9keUNvbnRlbnRQYWRkaW5nJiZhLmRhdGEoKS5ib2R5Q29udGVudH0pLHN0eWxlOl8uSUUoeyJwYWRkaW5nLXRvcCI6YywicGFkZGluZy1ib3R0b20iOmQsInBhZGRpbmctbGVmdCI6ZSwicGFkZGluZy1yaWdodCI6ZX0pfSxfLksoXy5XLHtkYXRhOigpPT4KYS5kYXRhKCkuYm9keUNvbnRlbnR9LHtiYXNpY0NvbnRlbnRWaWV3TW9kZWw6Xy5sTCxjaGFubmVsQXR0cmlidXRpb25WaWV3TW9kZWw6VmZhLGNvbnRlbnRJbnNwaXJhdGlvbkNvbnZlcnNhdGlvblZpZGVvSWRlYUNhcmRWaWV3TW9kZWw6SWZhLGNvbnRlbnRMaXN0SXRlbVZpZXdNb2RlbDpfLm5MLGRlc2NyaXB0aW9uUHJldmlld1ZpZXdNb2RlbDpfLnZMLGlubGluZUV4cGFuZGVyVmlld01vZGVsOih7ZGF0YTpGfSk9Pl8uSyhTZmEse2RhdGE6Rixpc1NlbGVjdGVkOkF9KSxsaW5lYXJMYXlvdXRWaWV3TW9kZWw6Xy5HTCxsaXN0SXRlbVZpZXdNb2RlbDpfLnBMLGxvY2t1cFZpZXdNb2RlbDooe2RhdGE6Rn0pPT5fLksoXy5yTCx7ZGF0YTpGLHdxOiEwfSksLi4uKG0mJnthc2tTdHVkaW9DYXJkVmlld01vZGVsOm19KSwuLi4obiYme2Fza1N0dWRpb1ZpZGVvRWRpdFByZXZpZXdWaWV3TW9kZWw6bn0pLC4uLihyJiZ7YXVkaWVuY2VPbmxpbmVIZWF0bWFwVmlld01vZGVsOnJ9KSwuLi4ocCYmCntjb21tZW50c0RpZ2VzdENvbnRlbnRWaWV3TW9kZWw6cH0pLC4uLihsJiZ7Y29udGVudFNlY3Rpb25WaWV3TW9kZWw6bH0pLC4uLih2JiZ7cHJpbWV0aW1lT2ZmZXJpbmdJblJldmlld0NhcmRDb250ZW50Vmlld01vZGVsOnZ9KSwuLi4odCYme2Z1bm5lbFZpZXdNb2RlbDp0fSl9KSkpLF8uSyhfLk8se0E6KCk9PmgoKSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dENhcmRWaWV3TW9kZWxPdmVybGF5VHJhaWxpbmdBY3Rpb24ifSxfLksoXy5XLHtkYXRhOigpPT5hLmRhdGEoKS50cmFpbGluZ0FjdGlvbn0se2J1dHRvblZpZXdNb2RlbDpfLlVGfSkpfSksXy5LKF8uTyx7QTp6LHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0Q2FyZFZpZXdNb2RlbERpc2FibGVkT3ZlcmxheSIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9KX0pKSkpfSwiQWEiKTt2YXIgV2ZhPVsiQSIudG9TdHJpbmcoKSwiQlVUVE9OIi50b1N0cmluZygpXSxYZmE9Xy5MKGE9PntmdW5jdGlvbiBiKEgpe2UoKS5pc0Rpc2FibGVkfHwoZj9mKEgudGFyZ2V0LGUoKSxrPy4oKSk6QSghRSgpKSl9ZnVuY3Rpb24gYyhIKXtILmtleT09PSIgIiYmKEgucHJldmVudERlZmF1bHQoKSxILnRhcmdldC5jbGljaygpKX12YXIgZD1fLngoImVuYWJsZV9uYXRpdmVfaW5wdXRfc2VsZWN0YWJsZV9pdGVtIiksZT1hLmRhdGEsZj1hLm9uU2VsZWN0ZWQsaD1hLlNoLGs9YS5ncm91cE5hbWUsbD1hLmNsYXNzTmFtZSxtPWEucm9sZSxuPSJyYWRpbyIrXy5PSCgpLHA9Xy5RSCgoKT0+ZSgpLnZlcnRpY2FsUGFkZGluZ1Rva2VuKSxyPV8uUUgoKCk9PmUoKS5ob3Jpem9udGFsUGFkZGluZ1Rva2VuKSx0PSgpPT5lKCkuY29udGVudCxbdix6XT1fLkooITEsdm9pZCAwLCJVbTdGZ2MiKSxFPXYsQT16LEY9KCk9PiEhZSgpLmlzRGlzYWJsZWQsQz0oKT0+e2lmKGghPT12b2lkIDApe2xldCBIPQpoKCk7cmV0dXJuISghSHx8ZSgpLmtleSE9PUgpfXJldHVybiBFKCl9LEc9KCk9PmghPT12b2lkIDAmJmUoKS5iZWhhdmlvcj09PSJTRUxFQ1RBQkxFX0lURU1fQkVIQVZJT1JfRVhQQU5ERURfTk9UX1NFTEVDVEVEIj8hMTpDKCksRD0oKT0+e2lmKGghPT12b2lkIDAmJkMoKSlzd2l0Y2goZSgpLmJlaGF2aW9yKXtjYXNlICJTRUxFQ1RBQkxFX0lURU1fQkVIQVZJT1JfU0VMRUNURURfTk9UX0VYUEFOREVEIjpyZXR1cm4hMTtjYXNlICJTRUxFQ1RBQkxFX0lURU1fQkVIQVZJT1JfRVhQQU5ERURfTk9UX1NFTEVDVEVEIjpyZXR1cm4hMH19O3JldHVybiBkP18uSygieXQtc2VsZWN0YWJsZS1pdGVtLXZpZXctbW9kZWwiLHtzdHlsZTpfLklFKHsicGFkZGluZy10b3AiOnAsInBhZGRpbmctYm90dG9tIjpwLCJwYWRkaW5nLWxlZnQiOnIsInBhZGRpbmctcmlnaHQiOnJ9KSxjbGFzczpfLlAoInl0U2VsZWN0YWJsZUl0ZW1WaWV3TW9kZWxIb3N0IixsLCJ5dFNlbGVjdGFibGVJdGVtVmlld01vZGVsQ29udGFpbmVyIiwKInl0U2VsZWN0YWJsZUl0ZW1WaWV3TW9kZWxOYXRpdmVDb250YWluZXIiLHt5dFNlbGVjdGFibGVJdGVtVmlld01vZGVsRGlzYWJsZWQ6Rn0pLCJwcm9wOmNoZWNrZWQiOkd9LF8uSygiaW5wdXQiLHtpZDpuLHR5cGU6InJhZGlvIixuYW1lOmEuZ3JvdXBOYW1lLCJwcm9wOmNoZWNrZWQiOkcsZGlzYWJsZWQ6Riwib246Y2xpY2siOmIsIm9uOmtleWRvd24iOmMsY2xhc3M6Inl0U2VsZWN0YWJsZUl0ZW1WaWV3TW9kZWxOYXRpdmVSYWRpb0J1dHRvbiJ9KSxfLksoImxhYmVsIix7Zm9yOm4sY2xhc3M6Inl0U2VsZWN0YWJsZUl0ZW1WaWV3TW9kZWxOYXRpdmVMYWJlbCIsIm9uOmtleWRvd24iOmN9LF8uSyhfLlcse2RhdGE6dH0se2NhcmRWaWV3TW9kZWw6KHtkYXRhOkh9KT0+Xy5LKFBMLHtkYXRhOkgsaXNTZWxlY3RlZDpHLGlzRXhwYW5kZWQ6RH0pfSkpKTpfLksoInl0LXNlbGVjdGFibGUtaXRlbS12aWV3LW1vZGVsIix7c3R5bGU6Xy5JRSh7InBhZGRpbmctdG9wIjpwLCJwYWRkaW5nLWJvdHRvbSI6cCwKInBhZGRpbmctbGVmdCI6ciwicGFkZGluZy1yaWdodCI6cn0pLCJhcmlhLWNoZWNrZWQiOkcsY2xhc3M6Xy5QKCJ5dFNlbGVjdGFibGVJdGVtVmlld01vZGVsSG9zdCIsbCwieXRTZWxlY3RhYmxlSXRlbVZpZXdNb2RlbENvbnRhaW5lciIse3l0U2VsZWN0YWJsZUl0ZW1WaWV3TW9kZWxEaXNhYmxlZDpGfSksIm9uOmNsaWNrIjpmdW5jdGlvbihIKXtpZighZSgpLmlzRGlzYWJsZWQpe3ZhciBSPUguY3VycmVudFRhcmdldDtpZihfLngoIndlYl9zZWxlY3RhYmxlX2l0ZW1fY2hpbGRfdGFwX2tpbGxfc3dpdGNoIikpUj0hMTtlbHNle3ZhciBNPV8ucUgoSCk7Uj1fLnJIKE0sUixXZmEpfVJ8fChmP2YoSC5jdXJyZW50VGFyZ2V0LGUoKSxrPy4oKSk6QSghRSgpKSl9fSwicHJvcDpjaGVja2VkIjpHLHJvbGU6bSwiYXJpYS1kaXNhYmxlZCI6Rix0YWJpbmRleDowfSxfLksoXy5XLHtkYXRhOnR9LHtjYXJkVmlld01vZGVsOih7ZGF0YTpIfSk9Pl8uSyhQTCx7ZGF0YTpILGlzU2VsZWN0ZWQ6RywKaXNFeHBhbmRlZDpEfSl9KSl9LCJCYSIpO18uRUw9Xy5MKGE9PntmdW5jdGlvbiBiKHosRSxBKXt2YXIgRj1jKCkuZm9ybUZpZWxkTWV0YWRhdGEmJm0oKSE9PXZvaWQgMD8zOmQoKT8yOjE7Rj09PTEmJkUua2V5IT1udWxsJiZ0KEUua2V5KTtGPT09MyYmRS5rZXkhPW51bGwmJm0oKT8udXBkYXRlVmFsdWUoRS5rZXkpO2U/Lih6LEUsQSl9dmFyIHtkYXRhOmMsV2I6ZCxvblNlbGVjdGVkOmUsU2g6Zixncm91cE5hbWU6aCxjbGFzc05hbWU6ayxuYTpsfT1fLkRDKGEse1diOiEwfSksbT1fLlpJKCgpPT5jKCkuZm9ybUZpZWxkTWV0YWRhdGEpLG49KCk9Pmg/LigpfHxjKCkua2V5LFtwLHJdPV8uQUMoKCk9PmMoKS5kZWZhdWx0U2VsZWN0ZWRLZXkpLHQ9cix2PSgpPT4oYygpLmZvcm1GaWVsZE1ldGFkYXRhJiZtKCkhPT12b2lkIDA/MzpkKCk/MjoxKT09PTM/bSgpPy52YWx1ZTpkKCk/Zj8uKCk6cCgpO3JldHVybiBfLksoInl0LXJhZGlvLWJ1dHRvbi1ncm91cC12aWV3LW1vZGVsIix7Y2xhc3M6Xy5QKCJ5dFJhZGlvQnV0dG9uR3JvdXBWaWV3TW9kZWxIb3N0IiwKayl9LF8uSygiZmllbGRzZXQiLHtjbGFzczoieXRSYWRpb0J1dHRvbkdyb3VwVmlld01vZGVsRmllbGRzZXQiLHJvbGU6InJhZGlvZ3JvdXAiLCJhcmlhLWludmFsaWQiOigpPT4hIW0oKT8uZXJyb3JzPy5bMF0sImFyaWEtZGVzY3JpYmVkYnkiOigpPT5tKCk/LmVycm9ycz8uWzBdP2BlcnJvci0ke2MoKS5rZXl9YDp2b2lkIDB9LF8uSyhfLlcse2RhdGE6KCk9PmMoKS5yYWRpb0J1dHRvbnN9LHtyYWRpb0J1dHRvbkl0ZW1WaWV3TW9kZWw6KHtkYXRhOnp9KT0+Xy5LKFJmYSx7ZGF0YTp6LG9uU2VsZWN0ZWQ6YixTaDp2LGdyb3VwTmFtZTpuLG5hOmx9KSxzZWxlY3RhYmxlSXRlbVZpZXdNb2RlbDooe2RhdGE6en0pPT5fLksoWGZhLHtkYXRhOnosb25TZWxlY3RlZDpiLFNoOnYsZ3JvdXBOYW1lOm4scm9sZToicmFkaW8ifSl9KSksXy5LKF8uTyx7QTooKT0+bSgpPy5lcnJvcnM/LlswXSx0aGVuOno9Pl8uSygiZGl2Iix7aWQ6KCk9PmBlcnJvci0ke2MoKS5rZXl9YCxjbGFzczoieXRSYWRpb0J1dHRvbkdyb3VwVmlld01vZGVsRXJyb3IifSwKKCk9PnooKS5tZXNzYWdlKX0pKX0sIkNhIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoImQyTFR4YiIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLkFFPV8uTCgoe25hbWU6YSxvbkNoYW5nZTpiLG9uQ2xpY2s6YyxjaGVja2VkOmQsWWU6ZSxoazpmLFlpOmgscWo6ayxuYTpsLFZjOm0sYXJpYUxhYmVsOm4sY2xhc3NOYW1lOnAsZGlzYWJsZWQ6cixob3Jpem9udGFsUGFkZGluZzp0LHZlcnRpY2FsUGFkZGluZzp2fSk9Pnt2YXIgej0icmFkaW8iK18uT0goKSxFPV8udUUoImlucHV0IiksQT1fLngoImVuYWJsZV9pb3Nfd2Vidmlld19yYWRpb19idXR0b25fcmVzcG9uc2l2ZW5lc3MiKSxbRixDXT1fLkooITEsdm9pZCAwLCJmTHJYNmQiKTtyZXR1cm4gXy5LKCJyYWRpby1zaGFwZSIse2NsYXNzOl8uUCgieXRSYWRpb1NoYXBlSG9zdCIscCl9LF8uSygiaW5wdXQiLHtlbDpFLGNsYXNzOl8uUCgieXRSYWRpb1NoYXBlSW5wdXQiLHt5dFJhZGlvU2hhcGVUYXBwYWJsZTooKT0+KCEhYnx8ISFjKSYmIXI/LigpfSksaWQ6eiwicHJvcDpjaGVja2VkIjpkLG5hbWU6YSx0eXBlOiJyYWRpbyIsZGlzYWJsZWQ6ciwib246Y2hhbmdlIjpmdW5jdGlvbihHKXtFLnZhbHVlLmNoZWNrZWQ9CiEhZD8uKCk7Yj8uKEcpO0cuc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjpjbGljayI6ZnVuY3Rpb24oRyl7Yz8uKEcpO0cuc3RvcFByb3BhZ2F0aW9uKCl9LCJhcmlhLWxhYmVsIjpuLCJvbjpmb2N1c2luIjpmdW5jdGlvbigpe18ueSgpLnJlc29sdmUoXy5JbihfLmpIKSk/LlhlKCkmJkMoITApfSwib246Zm9jdXNvdXQiOmZ1bmN0aW9uKCl7QyghMSl9fSksXy5LKCJsYWJlbCIse2NsYXNzOl8uUCgieXRSYWRpb1NoYXBlTGFiZWxDb250YWluZXIiLGsse3l0UmFkaW9TaGFwZUNvbXBhY3Q6bCx5dFJhZGlvU2hhcGVLZXlib2FyZEZvY3VzZWQ6Rix5dFJhZGlvU2hhcGVUYXBwYWJsZTooKT0+KCEhYnx8ISFjKSYmIXI/LigpLHl0UmFkaW9TaGFwZURpc2FibGVkOnJ9KSxmb3I6en0sXy5LKF8uTyx7QTooKT0+IWg/LigpLHRoZW46KCk9Pl8uSyhTSCx7Y2hlY2tlZDpkLGhrOmYsZ2c6ITAsVmM6bSxEczpBfSl9KSxfLksoXy5PLHtBOigpPT4hIWUsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczpfLlAoInl0UmFkaW9TaGFwZUxhYmVsIiwKe3l0UmFkaW9TaGFwZUV2ZW50UGFzc3Rocm91Z2g6QX0pLCJhcmlhLWhpZGRlbiI6KCk9PiEhbj8uKCksc3R5bGU6Xy5JRSh7InBhZGRpbmctbGVmdCI6dCwicGFkZGluZy1yaWdodCI6dCwicGFkZGluZy10b3AiOnYsInBhZGRpbmctYm90dG9tIjp2fSl9LGU/LigpKX0pLF8uSyhfLk8se0E6aCx0aGVuOigpPT5fLksoU0gse2NoZWNrZWQ6ZCxoazpmLGdnOiExLFZjOm0sRHM6QX0pfSkpKX0sInciKTtfLkFFLmlkb21Db21wYXQ9e2NhbGxiYWNrczp7b25DaGFuZ2U6ITAsb25DbGljazohMCxZZTohMH19Owp2YXIgU0g9Xy5MKCh7aGs6YSxWYzpiLERzOmN9KT0+e3ZhciBkPV8ueCgiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyIpPyJDSVJDTEVfRlVMTCI6IkNJUkNMRSI7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dFJhZGlvU2hhcGVSYWRpbyIsYix7eXRSYWRpb1NoYXBlQ2hlY2tJY29uOmEseXRSYWRpb1NoYXBlUmFkaW9EZWZhdWx0U3R5bGU6KCk9PiFiPy4oKSx5dFJhZGlvU2hhcGVFdmVudFBhc3N0aHJvdWdoOmN9KSwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sXy5LKF8uTUQse2ljb246KCk9PmE/LigpPyJDSEVDSyI6IkNJUkNMRSJ9KSxfLksoXy5NRCx7aWNvbjooKT0+YT8uKCk/IkNIRUNLIjpkLGFjdGl2ZTooKT0+IWE/LigpfSkpfSwieCIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLldkKCJ6Q2tLQmMiKTsKCl8uWGQoKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5WRj1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoImFjRnVWYyIpO3JldHVybiBfLkdEfTtfLldGPV8uY0QoKCk9Pl8uVkYoKSwiY29sbGVjdGlvblRodW1ibmFpbFZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJjb2xsZWN0aW9uVGh1bWJuYWlsVmlld01vZGVsIiwiYWNGdVZjIixfLlZGKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLllGPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiZjkwdENiIik7cmV0dXJuIF8uRkR9O18uWkY9Xy5jRCgoKT0+Xy5ZRigpLCJ0b2dnbGVCdXR0b25WaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigidG9nZ2xlQnV0dG9uVmlld01vZGVsIiwiZjkwdENiIixfLllGKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmJHPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiTFZpTU0iKTtyZXR1cm4gXy5ERH07Xy5jRz1fLmNEKCgpPT5fLmJHKCksInN1YnNjcmliZUJ1dHRvblZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJzdWJzY3JpYmVCdXR0b25WaWV3TW9kZWwiLCJMVmlNTSIsXy5iRyl9KTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGRHO18uZUc9ZnVuY3Rpb24oYSl7dmFyIGI9Xy55KCkucmVzb2x2ZShfLkluKGRHKSksW2MsZF09Xy5KKGIsdm9pZCAwLCJIZkRkSyIpO2J8fF8uWXQoZEcsZCk7cmV0dXJuIF8uTigoKT0+e3ZhciBlPWEoKTtyZXR1cm4gZT9jKCk/LihlKTp2b2lkIDB9LHZvaWQgMCwidjcwRTdiIil9O2RHPW5ldyBfLlZzKCJTRU1BTlRJQ19DT0xPUl9SRVNPTFZFUl9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmlIPW5ldyBfLlZzKCJIT1JJWk9OVEFMX0JBUl9WSUVXX01PREVMX1RPS0VOIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uTEg9YXN5bmMgZnVuY3Rpb24oKXthd2FpdCBfLnkoKS5yZXNvbHZlKF8uSkgpO3JldHVybiBfLnkoKS5yZXNvbHZlKF8uS0gpKCl9O18uTUg9ZnVuY3Rpb24oKXtyZXR1cm4gXy55KCkucmVzb2x2ZShfLktIKSgpfTtuZXcgXy5jcztfLkpIPW5ldyBfLlZzKCJXQVRDSF9QTEFZRVJfUFJPTUlTRV9UT0tFTiIpO25ldyBfLmNzO18uS0g9bmV3IF8uVnMoIkdFVF9TSE9SVFNfUExBWUVSX0ZVTkNUSU9OX1RPS0VOIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uVUg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYz0+e3ZhciBkPU9iamVjdC5rZXlzKGIpO18ubkUoKCk9PntpZihhPy4oKSl7Zm9yKGxldCBlIG9mIGQpYy5hZGRFdmVudExpc3RlbmVyKGUsYltlXSk7Xy5ZdSgoKT0+e2ZvcihsZXQgZSBvZiBkKWMucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLGJbZV0pfSl9fSwiYlhaR2ZlIil9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGRJLFBkYSxmSSxRZGEsaUksU2RhO2RJPWZ1bmN0aW9uKGEpe2lmKGEpc3dpdGNoKGEpe2Nhc2UgIkxJU1RfSVRFTV9JQ09OX0FDQ0VTU09SWV9TSVpFX1hTTUFMTCI6cmV0dXJuIDE2O2Nhc2UgIkxJU1RfSVRFTV9JQ09OX0FDQ0VTU09SWV9TSVpFX1NNQUxMIjpyZXR1cm4gMTg7Y2FzZSAiTElTVF9JVEVNX0lDT05fQUNDRVNTT1JZX1NJWkVfU1RBTkRBUkQiOnJldHVybiAyNDtjYXNlICJMSVNUX0lURU1fSUNPTl9BQ0NFU1NPUllfU0laRV9MQVJHRSI6cmV0dXJuIDM2O2Nhc2UgIkxJU1RfSVRFTV9JQ09OX0FDQ0VTU09SWV9TSVpFX1hMQVJHRSI6cmV0dXJuIDQ4O2RlZmF1bHQ6cmV0dXJuIDI0fX07ClBkYT1mdW5jdGlvbihhLGIpe2lmKCFhPy5lbnRpdHlTZWxlY3RvclR5cGV8fCFhPy5lbnRpdHlLZXkpcmV0dXJue307c3dpdGNoKGEuZW50aXR5U2VsZWN0b3JUeXBlKXtjYXNlICJMSVNUX0lURU1fVklFV19NT0RFTF9FTlRJVFlfU0VMRUNUT1JfVFlQRV9DQVBUSU9OX0xBTkdVQUdFX1NFTEVDVElPTl9URVhUIjpyZXR1cm4gYT1fLk1IKCk/LmdldE9wdGlvbigiY2FwdGlvbnMiLCJ0cmFjayIpLGI9dHlwZW9mIGE/LnRyYW5zbGF0aW9uTGFuZ3VhZ2U9PT0ib2JqZWN0IiYmYS50cmFuc2xhdGlvbkxhbmd1YWdlPy5sYW5ndWFnZU5hbWV8fGE/LmRpc3BsYXlOYW1lfHwiIix7ZGF0YTp7Li4uKCEhYiYme3NlbGVjdGlvblRleHQ6e2NvbnRlbnQ6Yn19KSwuLi4oISFiJiZ7bGVhZGluZ0ltYWdlOntzb3VyY2VzOlt7Y2xpZW50UmVzb3VyY2U6e2ltYWdlTmFtZToiQ0xPU0VEX0NBUFRJT05fU0VMRUNURUQifX1dfX0pLGlzRGlzYWJsZWQ6dHlwZW9mIGE9PT0idW5kZWZpbmVkIn19O2Nhc2UgIkxJU1RfSVRFTV9WSUVXX01PREVMX0VOVElUWV9TRUxFQ1RPUl9UWVBFX0FVRElPX1RSQUNLX1NFTEVDVElPTl9URVhUIjpyZXR1cm4gYT0KXy5NSCgpPy5nZXRBdWRpb1RyYWNrKCl8fHZvaWQgMCxiPWE/LmdldExhbmd1YWdlSW5mbygpPy5nZXROYW1lKCkse2RhdGE6e3NlbGVjdGlvblRleHQ6e2NvbnRlbnQ6Yn0sLi4uKGImJiFhPy5nZXRMYW5ndWFnZUluZm8oKT8uZ2V0SXNEZWZhdWx0KCkmJntsZWFkaW5nSW1hZ2U6e3NvdXJjZXM6W3tjbGllbnRSZXNvdXJjZTp7aW1hZ2VOYW1lOiJQRVJTT05fUkFEQVJfRklMTEVEIn19XX19KX19O2Nhc2UgIkxJU1RfSVRFTV9WSUVXX01PREVMX0VOVElUWV9TRUxFQ1RPUl9UWVBFX1BMQVlCQUNLX1NQRUVEX1NFTEVDVElPTl9URVhUIjpyZXR1cm4gYT1fLngoIndlYl9zaG9ydHNfcGxheWJhY2tfcmF0ZV9waWNrZXIiKSxfLmVJWyJjb3VudGVyZmFjdHVhbHMud2ViX3Nob3J0c19wbGF5YmFja19yYXRlX3BpY2tlciJdPVN0cmluZyhhKSxhPyhhPV8uTUgoKT8uZ2V0UGxheWJhY2tSYXRlKCksYj1fLk1IKCk/LmdldEF2YWlsYWJsZVBsYXliYWNrUmF0ZXMoKSxhPXtkYXRhOntzZWxlY3Rpb25UZXh0Ontjb250ZW50OmE9PT0KMT9fLmFBKCJQTEFZRVJfU1BFRURfTk9STUFMIix2b2lkIDAsIk5vcm1hbCIpOl8uYUEoIlBMQVlCQUNLX1NQRUVEX1giLHtzcGVlZF9yYXRlX3BsYWNlaG9sZGVyOmAke2E/LnRvRml4ZWQoMil9YH0pfSxpc0Rpc2FibGVkOiFiPy5sZW5ndGh9fSk6YT17fSxhO2Nhc2UgIkxJU1RfSVRFTV9WSUVXX01PREVMX0VOVElUWV9TRUxFQ1RPUl9UWVBFX1JFTU9WRV9BRFNfQURfU1RBVEUiOnJldHVybiBhPWE/LmVudGl0eUtleT8oYT1fLkhIKGIsYS5lbnRpdHlLZXkpKT97aXNIaWRkZW46YT8uYWRzU3RhdGUhPT0iQURTX1NUQVRFX1BMQVlJTkcifTp7aXNIaWRkZW46ITB9Ont9LGE7ZGVmYXVsdDpyZXR1cm57fX19O2ZJPWZ1bmN0aW9uKGEpe2lmKGEmJihhPWEuc3BsaXQoIjoiKSxhLmxlbmd0aD4xKSlyZXR1cm4gYVswXS5sZW5ndGg+MD9hWzBdOnZvaWQgMH07UWRhPWZ1bmN0aW9uKGEpe2lmKGEmJiFnSS5oYXMoYSkpe3ZhciBiPWZJKGEpO2ImJmdJLnNldChhLGIpfX07CmlJPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD17Li4uaEkoKX07aWYoYiYmYz09PSJMSVNUX0lURU1fU0VMRUNUSU9OX1NUWUxFX1JBRElPIil7bGV0IGU9ZkkoYSk7ZSYmZ0kuZm9yRWFjaCgoZixoKT0+e2Y9PT1lJiZoIT09YSYmKGRbaF09ITEpfSl9ZFthXT1iO1JkYShkKX07U2RhPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZD0+e2lmKCFjPy4oKSl7dmFyIGU9Zj0+e18uckgoXy5xSChmKSxkLGIpfHxhKGYpfTtkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixlKTtyZXR1cm4oKT0+e2QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLGUpfX19fTtfLmVJPXt9O18uakk9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJtbTJOMGMiKTtyZXR1cm4gXy56RX07Xy5rST1fLmNEKCgpPT5fLmpJKCksInN3aXRjaEJ1dHRvblZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJzd2l0Y2hCdXR0b25WaWV3TW9kZWwiLCJtbTJOMGMiLF8uakkpfSk7dmFyIG1JO18ubEk9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJoYjBXbWYiKTtyZXR1cm4gXy5YRn07bUk9Xy5jRCgoKT0+Xy5sSSgpLCJhY2NvdW50TGlua0J1dHRvblZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJhY2NvdW50TGlua0J1dHRvblZpZXdNb2RlbCIsImhiMFdtZiIsXy5sSSl9KTt2YXIgVGRhO18ubkk9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJoTmVsdmQiKTtyZXR1cm4gXy5hSX07VGRhPV8uY0QoKCk9Pl8ubkkoKSwibGlzdEl0ZW1MaWtlQ291bnRWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigibGlzdEl0ZW1MaWtlQ291bnRWaWV3TW9kZWwiLCJoTmVsdmQiLF8ubkkpfSk7dmFyIFVkYTtfLm9JPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgicjVDT0hmIik7cmV0dXJuIF8uJEh9O1VkYT1fLmNEKCgpPT5fLm9JKCksImxpc3RJdGVtVmlld0NvdW50Vmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooImxpc3RJdGVtVmlld0NvdW50Vmlld01vZGVsIiwicjVDT0hmIixfLm9JKX0pO3ZhciBwST1fLkwoKHtkYXRhOmEsZ2c6YixjZTpjLGlzVG9nZ2xlZDpkLERnOmUsbmE6Zn0pPT57dmFyIGg9KCk9PmIoKT9hKCkubGVhZGluZ0ltYWdlOmEoKS50cmFpbGluZ0ltYWdlPz9fLlFGKGEoKS50aGVtZWRUcmFpbGluZ0ltYWdlKSxrPSgpPT57YTp7dmFyIHI9YSgpLmxpc3RJdGVtSWNvbkFmdGVyU2VsZWN0aW9uVGV4dDtpZighYz8uKCkpc3dpdGNoKHIpe2Nhc2UgIkxJU1RfSVRFTV9JQ09OX0FGVEVSX1NFTEVDVElPTl9URVhUX0VYUEFORF9NT1JFIjpyPSJleHBhbmRfbW9yZSI7YnJlYWsgYTtjYXNlICJMSVNUX0lURU1fSUNPTl9BRlRFUl9TRUxFQ1RJT05fVEVYVF9OT05FIjpicmVhaztkZWZhdWx0OnI9ImNoZXZyb25fcmlnaHQiO2JyZWFrIGF9cj12b2lkIDB9cmV0dXJuIHJ9LGw9Xy5QKCJ5dExpc3RJdGVtVmlld01vZGVsSW1hZ2VDb250YWluZXIiLHt5dExpc3RJdGVtVmlld01vZGVsTGVhZGluZzpiLHl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZzooKT0+IWIoKX0pLAptPV8uUCgieXRMaXN0SXRlbVZpZXdNb2RlbEFjY2Vzc29yeSIsInl0TGlzdEl0ZW1WaWV3TW9kZWxJbWFnZSIpLG49Xy5QKCJ5dExpc3RJdGVtVmlld01vZGVsQWNjZXNzb3J5Iix7eXRMaXN0SXRlbVZpZXdNb2RlbExlYWRpbmc6Yix5dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmc6KCk9PiFiKCl9KSxwPV8uZUcoKCk9PmIoKT9hKCkubGVhZGluZ0ljb25Db2xvclRva2VuOmEoKS50cmFpbGluZ0ljb25Db2xvclRva2VuKTtyZXR1cm4gXy5LKF8uTyx7QTooKT0+e3ZhciByPWEoKSx0PWIoKTtyZXR1cm4hISh0JiYoci5sZWFkaW5nSW1hZ2V8fHIubGVhZGluZ0FjY2Vzc29yeSl8fCF0JiYoci50cmFpbGluZ0ltYWdlfHxyLnRyYWlsaW5nQnV0dG9ufHxyLnRyYWlsaW5nQnV0dG9uc3x8ci50cmFpbGluZ0FjY2Vzc29yaWVzTGlzdHx8ci5zZWxlY3Rpb25UZXh0fHxyLnRoZW1lZFRyYWlsaW5nSW1hZ2V8fHIudHJhaWxpbmdJbWFnZUFjY2Vzc29yeVR5cGU9PT0iTElTVF9JVEVNX0lNQUdFX0FDQ0VTU09SWV9UWVBFX05FV19DT05URU5UX0lORElDQVRPUiJ8fApyLnRyYWlsaW5nTGFiZWwpKX0sdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoXy5PLHtBOmgsdGhlbjpyPT5fLksoImRpdiIse2NsYXNzOmwsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LF8uSyhfLmpGLHtkYXRhOnIsYWx0OiIiLFRhOiEwLFlhOiEwLEFiOigpPT57dmFyIHQ9KGIoKT9hKCkubGVhZGluZ0ltYWdlQWNjZXNzb3J5VHlwZT09PSJMSVNUX0lURU1fSU1BR0VfQUNDRVNTT1JZX1RZUEVfSUNPTiI6YSgpLnRyYWlsaW5nSW1hZ2VBY2Nlc3NvcnlUeXBlPT09IkxJU1RfSVRFTV9JTUFHRV9BQ0NFU1NPUllfVFlQRV9JQ09OIik/YigpP2RJKGEoKS5sZWFkaW5nSWNvbkFjY2Vzc29yeVNpemUpOmRJKGEoKS50cmFpbGluZ0ljb25BY2Nlc3NvcnlTaXplKTp2b2lkIDA7cmV0dXJuIHR9LGNsYXNzTmFtZTptLGlzVG9nZ2xlZDooKT0+IWU/LigpJiZkPy4oKSxzdHlsZTpfLklFKHtjb2xvcjpwfSl9KSl9KSxfLksoXy5PLHtBOigpPT5iKCkmJmEoKS5sZWFkaW5nQWNjZXNzb3J5LHRoZW46KCk9PgpfLksoImRpdiIse2NsYXNzOmx9LF8uSyhfLlcse2RhdGE6KCk9PmEoKS5sZWFkaW5nQWNjZXNzb3J5fSx7YXZhdGFyVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLlNGLHtkYXRhOnIsZ2Q6bSxNazooKT0+Zj8uKCk/e3NpemU6ImV4dHJhLXNtYWxsIn06e3NpemU6Im1lZGl1bSJ9fSksY29sbGVjdGlvblRodW1ibmFpbFZpZXdNb2RlbDooe2RhdGE6cn0pPT5fLksoXy5XRix7ZGF0YTpyLG1heEhlaWdodDozNix3aWR0aDo1NixjZzohMH0pfSkpfSksXy5LKF8uTyx7QTooKT0+IWIoKSYmYSgpLnRyYWlsaW5nQnV0dG9uLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0TGlzdEl0ZW1WaWV3TW9kZWxCdXR0b25Db250YWluZXIifSxfLksoXy5XLHtkYXRhOigpPT5hKCkudHJhaWxpbmdCdXR0b259LHtidXR0b25WaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKF8uVUYse2RhdGE6cixjbGFzc05hbWU6bn0pfSkpfSksXy5LKF8uTyx7QTooKT0+IWIoKSYmYSgpLnRyYWlsaW5nQnV0dG9ucz8uYnV0dG9ucywKdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRMaXN0SXRlbVZpZXdNb2RlbEJ1dHRvbkNvbnRhaW5lciJ9LF8uSyhfLlcse2RhdGE6KCk9PmEoKS50cmFpbGluZ0J1dHRvbnM/LmJ1dHRvbnN9LHtidXR0b25WaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKF8uVUYse2RhdGE6cixjbGFzc05hbWU6bn0pLGFjY291bnRMaW5rQnV0dG9uVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhtSSx7ZGF0YTpyLGNsYXNzTmFtZTpufSksc3dpdGNoQnV0dG9uVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLmtJLHtkYXRhOnIsY2xhc3NOYW1lOm59KSxzdWJzY3JpYmVCdXR0b25WaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKF8uY0cse2RhdGE6cixpc092ZXJsYXk6ITEsUWQ6ITEsY2xhc3NOYW1lOm59KSx0b2dnbGVCdXR0b25WaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKF8uWkYse2RhdGE6cixjbGFzc05hbWU6bn0pfSkpfSksXy5LKF8uTyx7QTooKT0+IWIoKSYmYSgpLnRyYWlsaW5nQWNjZXNzb3JpZXNMaXN0Py50cmFpbGluZ0FjY2Vzc29yaWVzLAp0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dExpc3RJdGVtVmlld01vZGVsQnV0dG9uQ29udGFpbmVyIn0sXy5LKF8uVyx7ZGF0YTooKT0+YSgpLnRyYWlsaW5nQWNjZXNzb3JpZXNMaXN0Py50cmFpbGluZ0FjY2Vzc29yaWVzfSx7YnV0dG9uVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLlVGLHtkYXRhOnIsY2xhc3NOYW1lOm59KSxhY2NvdW50TGlua0J1dHRvblZpZXdNb2RlbDooe2RhdGE6cn0pPT5fLksobUkse2RhdGE6cixjbGFzc05hbWU6bn0pLHN3aXRjaEJ1dHRvblZpZXdNb2RlbDooe2RhdGE6cn0pPT5fLksoXy5rSSx7ZGF0YTpyLGNsYXNzTmFtZTpufSksc3Vic2NyaWJlQnV0dG9uVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLmNHLHtkYXRhOnIsaXNPdmVybGF5OiExLFFkOiExLGNsYXNzTmFtZTpufSksdG9nZ2xlQnV0dG9uVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLlpGLHtkYXRhOnIsY2xhc3NOYW1lOm59KSxiYWRnZVZpZXdNb2RlbDooe2RhdGE6cn0pPT4KXy5LKF8uYUcse2RhdGE6cixjbGFzczpufSksbGlzdEl0ZW1MaWtlQ291bnRWaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKFRkYSx7ZGF0YTpyLGNsYXNzTmFtZTpufSksbGlzdEl0ZW1WaWV3Q291bnRWaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKFVkYSx7ZGF0YTpyLGNsYXNzTmFtZTpufSl9KSl9KSxfLksoXy5PLHtBOigpPT4hYigpJiYhIWEoKS5zZWxlY3Rpb25UZXh0LHRoZW46KCk9Pl8uSyhfLklCLG51bGwsXy5LKF8uVix7dGV4dDooKT0+YSgpLnNlbGVjdGlvblRleHQsY2xhc3NOYW1lOl8uUCgieXRMaXN0SXRlbVZpZXdNb2RlbFNlbGVjdGlvblRleHQiLCJ5dExpc3RJdGVtVmlld01vZGVsVHJhaWxpbmdTZWxlY3Rpb25UZXh0Iil9KSxfLksoXy5PLHtBOmssdGhlbjpyPT5fLksoXy5NRCx7aWNvbjpyLGNsYXNzTmFtZToieXRMaXN0SXRlbVZpZXdNb2RlbENoZXZyb25JY29uIixhcmlhSGlkZGVuOiEwLHN0eWxlOl8uSUUoe2NvbG9yOnB9KX0pfSkpfSksXy5LKF8uTyx7QTooKT0+CiFiKCkmJmEoKS50cmFpbGluZ0ltYWdlQWNjZXNzb3J5VHlwZT09PSJMSVNUX0lURU1fSU1BR0VfQUNDRVNTT1JZX1RZUEVfTkVXX0NPTlRFTlRfSU5ESUNBVE9SIix0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOmx9LF8uSygiZGl2Iix7Y2xhc3M6Inl0TGlzdEl0ZW1WaWV3TW9kZWxOZXdDb250ZW50SW5kaWNhdG9yIn0pKX0pLF8uSyhfLk8se0E6KCk9PiFiKCkmJmEoKS50cmFpbGluZ0xhYmVsLHRoZW46KCk9Pl8uSyhfLlYse3RleHQ6KCk9PmEoKS50cmFpbGluZ0xhYmVsLGNsYXNzTmFtZTpfLlAoInl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZ0xhYmVsIiwieXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nIil9KX0pKX0pfSwieiIpO3ZhciBWZGE9Xy5MKCh7ZGF0YTphfSk9Pnt2YXIgYj1fLnkoKS5yZXNvbHZlKF8uSW4oXy5pSCkpO3JldHVybiBfLksoImRpdiIse2NsYXNzOiJ5dExpc3RJdGVtVmlld01vZGVsQm90dG9tQWNjZXNzb3J5In0sXy5LKF8uVyx7ZGF0YTooKT0+YSgpLmJvdHRvbUFjY2Vzc29yeX0sey4uLihiJiZ7aG9yaXpvbnRhbEJhclZpZXdNb2RlbDpifSl9KSl9LCJBIik7dmFyIHFJPV8uTChhPT57dmFyIGI9YS5kYXRhLGM9YS5jbGFzc05hbWUsZD1fLmVHKCgpPT5iKCkuaXNEaXNhYmxlZCYmYigpLmxhYmVsRGlzYWJsZWRDb2xvclRva2VuP2IoKS5sYWJlbERpc2FibGVkQ29sb3JUb2tlbjpiKCkubGFiZWxUZXh0Q29sb3JUb2tlbiksZT1fLmVHKCgpPT5iKCkuc3VwZXJMYWJlbENvbG9yVG9rZW4pO3JldHVybiBfLksoXy5PLHtBOigpPT5iKCkuc3VwZXJsYWJlbHx8YigpLnRpdGxlfHxiKCkuc3VidGl0bGV8fGIoKS5zdWJ0aXRsZUJhZGdlLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Y30sXy5LKF8uTyx7QTooKT0+YigpLnN1cGVybGFiZWwsdGhlbjpmPT5fLksoXy5WLHt0ZXh0OmYsY2xhc3NOYW1lOiJ5dExpc3RJdGVtVmlld01vZGVsU3VwZXJsYWJlbCIsc3R5bGU6Xy5JRSh7Y29sb3I6ZX0pfSl9KSxfLksoXy5PLHtBOigpPT5iKCkudGl0bGUsdGhlbjpmPT5fLksoImRpdiIse2NsYXNzOiJ5dExpc3RJdGVtVmlld01vZGVsVGl0bGVXcmFwcGVyIn0sCl8uSyhfLlYse3RleHQ6ZixjbGFzc05hbWU6Xy5QKCJ5dExpc3RJdGVtVmlld01vZGVsVGl0bGUiLHt5dExpc3RJdGVtVmlld01vZGVsU2luZ2xlTGluZVRpdGxlOigpPT5iKCkudGl0bGVNYXhMaW5lcz09PTF9KSxzdHlsZTpfLklFKHtjb2xvcjpkfSl9KSl9KSxfLksoXy5PLHtBOigpPT5iKCkuc3VidGl0bGVCYWRnZXx8YigpLnN1YnRpdGxlLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0TGlzdEl0ZW1WaWV3TW9kZWxTdWJ0aXRsZUNvbnRhaW5lciJ9LF8uSygiZGl2Iix7Y2xhc3M6Inl0TGlzdEl0ZW1WaWV3TW9kZWxTdWJ0aXRsZUJhZGdlV3JhcHBlciJ9LF8uSyhfLlcse2RhdGE6KCk9PmIoKS5zdWJ0aXRsZUJhZGdlfSx7YmFkZ2VWaWV3TW9kZWw6KHtkYXRhOmZ9KT0+Xy5LKF8uYUcse2RhdGE6Zn0pfSkpLF8uSyhXZGEse2RhdGE6Yix5dzooKT0+ISFiKCkuc3VidGl0bGVCYWRnZX0pKX0pKX0pfSwiQiIpLFdkYT1fLkwoYT0+e3ZhciBiPV8uZUcoKCk9PmEuZGF0YSgpLnN1YkxhYmVsQ29sb3JUb2tlbik7CnJldHVybiBfLksoXy5PLHtBOigpPT5hLmRhdGEoKS5zdWJ0aXRsZSx0aGVuOmM9Pl8uSyhfLlYse3RleHQ6YyxjbGFzc05hbWU6Xy5QKCJ5dExpc3RJdGVtVmlld01vZGVsU3VidGl0bGUiLHt5dExpc3RJdGVtVmlld01vZGVsV2l0aEJhZGdlOmEueXd9KSxzdHlsZTpfLklFKHtjb2xvcjpifSl9KX0pfSwiQyIpO3ZhciBYZGE9Xy5MKCh7ZGF0YTphLGNlOmIsZnU6Yyxpc1RvZ2dsZWQ6ZCxkaXNhYmxlZDplLFh4OmYsbmE6aCxCYzprLGRpc2FibGVIb3Jpem9udGFsUGFkZGluZzpsLGhvcml6b250YWxQYWRkaW5nOm0sWXg6bix1QjpwLG9uVGFwOnIsYXJpYUxhYmVsOnQsRGc6dn0pPT57dmFyIHo9KCk9PiEhYSgpLmlzRGlzYWJsZWR8fCEhZT8uKCksRT1fLmVHKCgpPT5hKCkudHJhaWxpbmdJY29uQ29sb3JUb2tlbik7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dExpc3RJdGVtVmlld01vZGVsTGF5b3V0V3JhcHBlciIse3l0TGlzdEl0ZW1WaWV3TW9kZWxDb250YWluZXI6KCk9PiFmPy4oKSx5dExpc3RJdGVtVmlld01vZGVsRGlzYWJsZWQ6eix5dExpc3RJdGVtVmlld01vZGVsSGFzU3VidGl0bGU6KCk9PiEhYSgpLnN1YnRpdGxlLHl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0OmgseXRMaXN0SXRlbVZpZXdNb2RlbFRhcHBhYmxlOm4seXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHk6Xy54KCJ3ZWJfZW5hYmxlX2xpc3RfaXRlbV9hY3Rpb25fdHlwb2dyYXBoeSIpLAp5dExpc3RJdGVtVmlld01vZGVsSW5Qb3B1cDprLHl0TGlzdEl0ZW1WaWV3TW9kZWxEaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6KCk9Pmw/LigpJiYhZj8uKCkseXRMaXN0SXRlbVZpZXdNb2RlbE5vVHJhaWxpbmdUZXh0OigpPT4hYSgpLnNlbGVjdGlvblRleHQmJiFhKCkudHJhaWxpbmdMYWJlbH0sKCk9PnthOntzd2l0Y2goYSgpLmxheW91dFByaW9yaXR5KXtjYXNlICJMSVNUX0lURU1fTEFZT1VUX1BSSU9SSVRZX1RSQUlMSU5HIjp2YXIgQT0ieXRMaXN0SXRlbVZpZXdNb2RlbFByaW9yaXRpemVUcmFpbGluZyI7YnJlYWsgYX1BPXZvaWQgMH1yZXR1cm4gQX0pLHN0eWxlOl8uSUUoeyJwYWRkaW5nLWxlZnQiOm0sInBhZGRpbmctcmlnaHQiOm19KX0sXy5LKCJkaXYiLHtjbGFzczoieXRMaXN0SXRlbVZpZXdNb2RlbE1haW5Db250YWluZXIifSxfLksocEkse2RhdGE6YSxnZzohMCxjZTpiLGlzVG9nZ2xlZDpkLERnOnYsbmE6aH0pLF8uSyhfLk8se0E6cCx0aGVuOigpPT5fLksoXy5WQywKe2NvbW1hbmQ6KCk9Pl8uc0goYSgpLnJlbmRlcmVyQ29udGV4dCksb25DbGljazpyLGRpc2FibGVkOnosY2xhc3NOYW1lOl8uUCgieXRMaXN0SXRlbVZpZXdNb2RlbEJ1dHRvbk9yQW5jaG9yIiwieXRMaXN0SXRlbVZpZXdNb2RlbFRleHRXcmFwcGVyIiksdG9nZ2xlYWJsZTpkIT09dm9pZCAwLHRvZ2dsZWQ6ZCxhcmlhTGFiZWw6dH0sXy5LKHFJLHtkYXRhOmF9KSksVzooKT0+Xy5LKHFJLHtkYXRhOmEsY2xhc3NOYW1lOiJ5dExpc3RJdGVtVmlld01vZGVsVGV4dFdyYXBwZXIifSl9KSxfLksoXy5PLHtBOigpPT4hIWMsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRMaXN0SXRlbVZpZXdNb2RlbFRyYWlsaW5nIixzdHlsZTpfLklFKHtjb2xvcjpFfSl9LGMmJl8uSyhjLG51bGwpKSxXOigpPT5fLksocEkse2RhdGE6YSxnZzohMSxjZTpiLGlzVG9nZ2xlZDpkLERnOnYsbmE6aH0pfSkpLF8uSyhfLk8se0E6KCk9PmEoKS5ib3R0b21BY2Nlc3NvcnksdGhlbjooKT0+Xy5LKFZkYSx7ZGF0YTphfSl9KSl9LAoiRCIpO3ZhciBbaEksUmRhXT1fLkooe30sdm9pZCAwLCJwZHJhRiIpLGdJPW5ldyBNYXA7dmFyIHNJPV8uTChhPT57dmFyIHtuYW1lOmIsb25DaGFuZ2U6YyxvbkNsaWNrOmQsY2hlY2tlZDplLFllOmYsWWk6aCxxajprLG5hOmwsVmM6bSxkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6bixob3Jpem9udGFsUGFkZGluZzpwLGRpc2FibGVkOnIsYXJpYUxhYmVsOnR9PV8uREMoYSx7Y2hlY2tlZDohMSxkaXNhYmxlZDohMX0pO2E9ImNoZWNrYm94IitfLk9IKCk7cmV0dXJuIF8uSygiY2hlY2tib3gtc2hhcGUiLG51bGwsXy5LKCJsYWJlbCIse2NsYXNzOl8uUCgieXRDaGVja2JveFNoYXBlSG9zdCIsayx7eXRDaGVja2JveFNoYXBlSG9zdENvbXBhY3Q6bCx5dENoZWNrYm94U2hhcGVEaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6bn0pLHN0eWxlOl8uSUUoeyJwYWRkaW5nLWxlZnQiOnAsInBhZGRpbmctcmlnaHQiOnB9KX0sXy5LKCJpbnB1dCIse2NsYXNzOiJ5dENoZWNrYm94U2hhcGVJbnB1dCIsaWQ6YSxjaGVja2VkOmUsbmFtZTpiLHR5cGU6ImNoZWNrYm94IixkaXNhYmxlZDpyLAoiYXJpYS1sYWJlbCI6dCwicHJvcDpjaGVja2VkIjplLCJvbjpjaGFuZ2UiOmZ1bmN0aW9uKHYpe2M/Lih2KTt2LnN0b3BQcm9wYWdhdGlvbigpfSwib246Y2xpY2siOmZ1bmN0aW9uKHYpe2Q/Lih2KTt2LnN0b3BQcm9wYWdhdGlvbigpfX0pLF8uSyhfLk8se0E6KCk9PiFoPy4oKSx0aGVuOigpPT5fLksockkse2dnOiEwLFZjOm19KX0pLF8uSyhfLk8se0E6KCk9PiEhZix0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dENoZWNrYm94U2hhcGVMYWJlbCJ9LGY/LigpKX0pLF8uSyhfLk8se0E6aCx0aGVuOigpPT5fLksockkse2dnOiExLFZjOm19KX0pKSl9LCJFIik7c0kuaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntvbkNoYW5nZTohMCxvbkNsaWNrOiEwLFllOiEwfX07CnZhciByST1fLkwoKHtWYzphfSk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dENoZWNrYm94U2hhcGVDaGVja2JveCIsYSx7eXRDaGVja2JveFNoYXBlQ2hlY2tib3hEZWZhdWx0U3R5bGU6KCk9PiFhPy4oKX0pLCJhcmlhLWhpZGRlbiI6InRydWUifSxfLksoXy5NRCx7aWNvbjpfLngoImVuYWJsZV93ZWJfZGVsaGlfaWNvbnMiKT8ic3F1YXJlIjoiQk9YX0VNUFRZIn0pLF8uSyhfLk1ELHtpY29uOl8ueCgiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyIpPyJjaGVja19zcXVhcmUiOiJCT1hfQ0hFQ0siLGFjdGl2ZTohMH0pKSwiRiIpO3ZhciB0ST1fLkwoKHtkYXRhOmEsSWE6YixuYTpjLG9uVGFwOmQseHM6ZSxjZTpmLGRpc2FibGVkOmgsQmM6ayxkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6bCxpc092ZXJsYXk6bSxpc1RvZ2dsZWQ6bixhcmlhTGFiZWw6cCxhcmlhUHJlc3NlZDpyLERnOnQsYnA6dn0pPT57ZnVuY3Rpb24geihiYSl7YmEuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGFhPWEoKS5lbnRpdHlLZXksT2E9RygpLmlzU2VsZWN0ZWQ7aWYoYWEmJk0oKSl7aWYoRygpLnNlbGVjdGlvblN0eWxlPT09IkxJU1RfSVRFTV9TRUxFQ1RJT05fU1RZTEVfUkFESU8iJiZPYSlyZXR1cm47aUkoYWEsIU9hLEcoKS5zZWxlY3Rpb25TdHlsZSl9ZD9kKGJhKTooYWE9Xy5zSChHKCkucmVuZGVyZXJDb250ZXh0KSxPYT1fLnkoKS5yZXNvbHZlKF8uVUQpLGFhJiZPYSYmT2EucmVzb2x2ZUNvbW1hbmQoYWEsYmEudGFyZ2V0P3tmb3JtOntlbGVtZW50OmJhLnRhcmdldCxzb3VyY2VEYXRhOmFhfX06dm9pZCAwKSl9dmFyIEU9IV8ueCgid2ViX2VuYWJsZV9raWxsc3dpdGNoX2Zvcl9zZWxlY3RhYmxlX2xpc3RfaXRlbV9vbl90YXBfZml4IiksCkE9IV8ueCgid2ViX2VuYWJsZV9raWxsc3dpdGNoX2Zvcl9za2lwX2NoaWxkX3RhZ3MiKSxGPV8uUUgoKCk9PmEoKS5ob3Jpem9udGFsUGFkZGluZ1Rva2VuKSxDPSgpPT5sPy4oKXx8YSgpLmRpc2FibGVIb3Jpem9udGFsUGFkZGluZyxHPV8uTigoKT0+e3ZhciBiYT1hKCksYWE9digpLE9hPWEoKT8uZW50aXR5U2VsZWN0b3JUeXBlP3suLi5iYSwuLi5hYS5kYXRhfTpiYTtPYS5zZWxlY3Rpb25TdHlsZT09PSJMSVNUX0lURU1fU0VMRUNUSU9OX1NUWUxFX1JBRElPIiYmUWRhKE9hLmVudGl0eUtleSk7dmFyIEpiPU9hLmVudGl0eUtleTtiYT1KYj9oSSgpW0piXTp2b2lkIDA7YWE9ISFPYS5pc1NlbGVjdGVkO3ZhciB6YT1iYSE9PXZvaWQgMD9iYTphYTtKYiYmT2Euc2VsZWN0aW9uU3R5bGU9PT0iTElTVF9JVEVNX1NFTEVDVElPTl9TVFlMRV9SQURJTyImJmFhJiZiYT09PXZvaWQgMCYmcXVldWVNaWNyb3Rhc2soKCk9PntpSShKYiwhMCxPYS5zZWxlY3Rpb25TdHlsZSl9KTtyZXR1cm57Li4uT2EsCmlzU2VsZWN0ZWQ6emF9fSx2b2lkIDAsInZSa255IiksRD0oKT0+ISFHKCkuaXNEaXNhYmxlZHx8ISFoPy4oKSxIPV8uVEgoKCk9PkcoKS5yZW5kZXJlckNvbnRleHQpLFI9KCk9PnA/LigpfHxIKCk/LmxhYmVsLE09KCk9PiEoIUcoKS5zZWxlY3Rpb25TdHlsZXx8RygpLnNlbGVjdGlvblN0eWxlPT09IkxJU1RfSVRFTV9TRUxFQ1RJT05fU1RZTEVfVU5TUEVDSUZJRUQiKSxTPSgpPT4oXy50SChHKCkucmVuZGVyZXJDb250ZXh0KXx8ZCkmJiFNKCksWT0oKT0+Xy50SChHKCkucmVuZGVyZXJDb250ZXh0KXx8ISFkfHxNKCkscGE9Xy5QKCJ5dExpc3RJdGVtVmlld01vZGVsQ29udGFpbmVyIix7eXRMaXN0SXRlbVZpZXdNb2RlbFRhcHBhYmxlOlkseXRMaXN0SXRlbVZpZXdNb2RlbEFjdGlvblR5cG9ncmFwaHk6Xy54KCJ3ZWJfZW5hYmxlX2xpc3RfaXRlbV9hY3Rpb25fdHlwb2dyYXBoeSIpLHl0TGlzdEl0ZW1WaWV3TW9kZWxDb21wYWN0OmMseXRMaXN0SXRlbVZpZXdNb2RlbEluUG9wdXA6aywKeXRMaXN0SXRlbVZpZXdNb2RlbERpc2FibGVIb3Jpem9udGFsUGFkZGluZzooKT0+Qz8uKCkmJk0oKX0pLG9hPV8uUCgieXRMaXN0SXRlbVZpZXdNb2RlbEltYWdlQ29udGFpbmVyIiwoKT0+RygpLmxlYWRpbmdJbWFnZXx8RygpLmxlYWRpbmdBY2Nlc3Nvcnk/Inl0TGlzdEl0ZW1WaWV3TW9kZWxUcmFpbGluZyI6Inl0TGlzdEl0ZW1WaWV3TW9kZWxMZWFkaW5nIiksW1UsaGFdPV8uSighMSx2b2lkIDAsImN1WTRtZiIpLG1hPSgpPT57dmFyIGJhO2lmKGJhPV8ueCgid2ViX2J1dHRvbl9vcl9hbmNob3JfbGlzdF9pdGVtIikmJlM/LigpKWJhPWEoKSxiYT0hKGJhLnRyYWlsaW5nTGFiZWx8fGJhLnNlbGVjdGlvblRleHQpO3JldHVybiBiYX0sdGE9KCk9Pl8uSyhYZGEse2RhdGE6RyxjZTpmLGZ1OmUsaXNUb2dnbGVkOm4sZGlzYWJsZWQ6aCxYeDpNLG5hOmMsQmM6ayxkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6Qyxob3Jpem9udGFsUGFkZGluZzpGLFl4OlMsdUI6bWEsb25UYXA6ZCxhcmlhTGFiZWw6UiwKRGc6dH0pLFQ9KCk9PntpZihiPy4oKSl7bGV0IGJhPUcoKS5zZWxlY3Rpb25TdHlsZTtyZXR1cm4gYmE9PT0iTElTVF9JVEVNX1NFTEVDVElPTl9TVFlMRV9DSEVDS0JPWCI/Im1lbnVpdGVtY2hlY2tib3giOmJhPT09IkxJU1RfSVRFTV9TRUxFQ1RJT05fU1RZTEVfUkFESU8ifHxiYT09PSJMSVNUX0lURU1fU0VMRUNUSU9OX1NUWUxFX0RFRkFVTFQiPyJtZW51aXRlbXJhZGlvIjoibWVudWl0ZW0ifXJldHVybiJsaXN0aXRlbSJ9O3JldHVybiBfLksoInl0LWxpc3QtaXRlbS12aWV3LW1vZGVsIix7ZWw6Xy5yRihfLnVIKCgpPT5EKCk/dm9pZCAwOkcoKS5yZW5kZXJlckNvbnRleHQsdm9pZCAwLHZvaWQgMCxfLngoIndlYl9idXR0b25fb3JfYW5jaG9yX2xpc3RfaXRlbSIpP1siQSIudG9TdHJpbmcoKSwiQlVUVE9OIi50b1N0cmluZygpXTpbXSksU2RhKGZ1bmN0aW9uKGJhKXtEKCl8fEUmJk0oKXx8KE0oKT96KGJhKTpkPy4oYmEpKX0sQT9bIkEiLnRvU3RyaW5nKCksIkJVVFRPTiIudG9TdHJpbmcoKV06CltdLCgpPT4hWSgpKSxfLlVIKCgpPT5TPy4oKSx7Zm9jdXNpbjpmdW5jdGlvbigpe18ueSgpLnJlc29sdmUoXy5JbihfLmpIKSk/LlhlKCkmJmhhKCEwKX0sZm9jdXNvdXQ6ZnVuY3Rpb24oKXtoYSghMSl9fSkpLGNsYXNzOl8uUCgieXRMaXN0SXRlbVZpZXdNb2RlbEhvc3QiLHt5dExpc3RJdGVtVmlld01vZGVsSXNPdmVybGF5Om0seXRMaXN0SXRlbVZpZXdNb2RlbEtleWJvYXJkRm9jdXNlZDpVLHl0TGlzdEl0ZW1WaWV3TW9kZWxIaWRkZW46KCk9PmEoKT8uZW50aXR5U2VsZWN0b3JUeXBlP3YoKS5pc0hpZGRlbjohMX0pLCJkYXRhLXRhcmdldC1pZCI6KCk9PkcoKS50YXJnZXRJZCxyb2xlOlQsdGFiaW5kZXg6KCk9Pnt2YXIgYmE9UygpO1koKTt2YXIgYWE9bWEoKSxPYT1EKCk7YmE9IWFhJiYoXy54KCJ3ZWJfZW5hYmxlX2tpbGxzd2l0Y2hfdGFiaW5kZXhfZml4Iik/ZHx8YmE6YmEpP09hPy0xOjA6dm9pZCAwO3JldHVybiBiYX0sIm9uOmtleWRvd24iOmZ1bmN0aW9uKGJhKXtpZighQXx8CiFbIkEiLnRvU3RyaW5nKCksIkJVVFRPTiIudG9TdHJpbmcoKV0uaW5jbHVkZXMoYmEudGFyZ2V0LnRhZ05hbWUpKWlmKGJhLmtleT09PSJFbnRlciJ8fE0oKSYmYmEua2V5PT09IiAiKWJhLnByZXZlbnREZWZhdWx0KCksRCgpfHwoRSYmTSgpP3ooYmEpOmJhLmN1cnJlbnRUYXJnZXQuY2xpY2soKSl9LCJhcmlhLWxhYmVsIjpSLCJhcmlhLWNoZWNrZWQiOigpPT57dmFyIGJhPVQoKTtyZXR1cm4gYmE9PT0ibWVudWl0ZW1jaGVja2JveCJ8fGJhPT09Im1lbnVpdGVtcmFkaW8iP0coKS5pc1NlbGVjdGVkOnZvaWQgMH0sImFyaWEtcHJlc3NlZCI6KCk9PmI/LigpfHxNKCk/dm9pZCAwOnI/LigpfSxfLksoXy5PLHtBOk0sdGhlbjooKT0+Xy5LKF8uRUUsbnVsbCxfLksoXy5DRSx7d2hlbjooKT0+RygpLnNlbGVjdGlvblN0eWxlPT09IkxJU1RfSVRFTV9TRUxFQ1RJT05fU1RZTEVfQ0hFQ0tCT1gifSwoKT0+Xy5LKHNJLHtZZTp0YSxuYTpjLGNoZWNrZWQ6KCk9PiEhRygpLmlzU2VsZWN0ZWQsCllpOigpPT4hKCFHKCkubGVhZGluZ0ltYWdlJiYhRygpLmxlYWRpbmdBY2Nlc3NvcnkpLHFqOnBhLFZjOm9hLGRpc2FibGVIb3Jpem9udGFsUGFkZGluZzpDLGhvcml6b250YWxQYWRkaW5nOkYsb25DbGljazpFP3o6dm9pZCAwLGRpc2FibGVkOkQsYXJpYUxhYmVsOlJ9KSksXy5LKF8uQ0Use3doZW46KCk9PkcoKS5zZWxlY3Rpb25TdHlsZT09PSJMSVNUX0lURU1fU0VMRUNUSU9OX1NUWUxFX1JBRElPIn0sKCk9Pl8uSyhfLkFFLHtZZTp0YSxuYTpjLGNoZWNrZWQ6KCk9PiEhRygpLmlzU2VsZWN0ZWQsWWk6KCk9PiEoIUcoKS5sZWFkaW5nSW1hZ2UmJiFHKCkubGVhZGluZ0FjY2Vzc29yeSkscWo6cGEsVmM6b2Esb25DbGljazpFP3o6dm9pZCAwLGRpc2FibGVkOkQsYXJpYUxhYmVsOlJ9KSksXy5LKF8uQ0Use3doZW46KCk9PkcoKS5zZWxlY3Rpb25TdHlsZT09PSJMSVNUX0lURU1fU0VMRUNUSU9OX1NUWUxFX0RFRkFVTFQifSwoKT0+Xy5LKF8uQUUse1llOnRhLG5hOmMsY2hlY2tlZDooKT0+CiEhRygpLmlzU2VsZWN0ZWQsWWk6KCk9PiEoIUcoKS5sZWFkaW5nSW1hZ2UmJiFHKCkubGVhZGluZ0FjY2Vzc29yeSkscWo6cGEsVmM6b2EsaGs6ITAsb25DbGljazpFP3o6dm9pZCAwLGRpc2FibGVkOkQsYXJpYUxhYmVsOlJ9KSksXy5LKF8uREUsbnVsbCx0YSkpLFc6dGF9KSl9LCJHIiksWWRhPV8uTChhPT57dmFyIGI9Xy5jSShjPT5QZGEoYS5kYXRhKCksYykpO3JldHVybiBfLksodEksey4uLmEsYnA6Yn0pfSwiSCIpO18uQ0Q9Xy5MKGE9Pl8uSyhfLk8se0E6KCk9PiEhYS5kYXRhKCk/LmVudGl0eVNlbGVjdG9yVHlwZSx0aGVuOigpPT5fLksoWWRhLHsuLi5hfSksVzooKT0+Xy5LKHRJLHsuLi5hLGJwOigpPT4oe30pfSl9KSwiSSIpO18uQ0QuaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntvblRhcDohMCx4czohMH19Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLldkKCJwZTJvamIiKTsKCl8uWGQoKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5RTD1mdW5jdGlvbihhLGIpe2lmKGEmJmIpc3dpdGNoKGIpe2Nhc2UgIlNFTEVDVElPTl9UWVBFX0JPT0wiOnJldHVybiBhLmJvb2xWYWx1ZTtjYXNlICJTRUxFQ1RJT05fVFlQRV9JTlQiOnJldHVybiBhLmludFZhbHVlO2Nhc2UgIlNFTEVDVElPTl9UWVBFX1NUUklORyI6cmV0dXJuIGEuc3RyaW5nVmFsdWU7Y2FzZSAiU0VMRUNUSU9OX1RZUEVfUFJJVkFDWV9TVEFUVVMiOnJldHVybiBhLnByaXZhY3lTdGF0dXNWYWx1ZTtjYXNlICJTRUxFQ1RJT05fVFlQRV9USU1FX1BJQ0tFUl9GT1JNQVQiOnJldHVybiBhLnRpbWVQaWNrZXJGb3JtYXRWYWx1ZTtjYXNlICJTRUxFQ1RJT05fVFlQRV9FTkdBR0VNRU5UX1BFUk1JU1NJT04iOnJldHVybiBhLmVuZ2FnZW1lbnRQZXJtaXNzaW9uVmFsdWV9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5DST1mdW5jdGlvbihhKXtfLlZILm13KCkoYSl9O18uREk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLlhIKCk7cmV0dXJuIF8uTigoKT0+e2MoKTtyZXR1cm4gXy5aSChhLFtfLkJ2KGIpfHwiIl0pfSx7ZGVidWdOYW1lOiJMVVpzbGYifSwiWjEwNXQiKX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uUkw9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5xQShhLmVudGl0aWVzLCJsaWtlU3RhdHVzRW50aXR5IixiKX07Xy5TTD1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEuZW50aXRpZXMsImxpa2VDb3VudEVudGl0eSIsYil9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgWWZhPWZ1bmN0aW9uKGEpe3ZhciBiPV8uTigoKT0+Xy5CdihhKT8/e30se2VxdWFsczpfLkdJfSwielRVWlFjIiksYz1fLk4oKCk9Pnt2YXIge2Zvcm1JZDpkLGZpZWxkSWQ6ZX09YigpO2lmKGQmJmUpe2E6e2xldCBoPV8uU0koZCk7aWYoaCl7dmFyIGY9Xy5NSShlKTtpZihmPWhbZl0pe2lmKCEoImZ1bmN0aW9uIj09dHlwZW9mIF8uVEwmJmYgaW5zdGFuY2VvZiBfLlRMKSl0aHJvdyBfLklJKGBGaWVsZCAke2V9IGluIGZvcm0gJHtkfSBpcyBub3QgYSBTY2FsYXJMaXN0RmllbGQuYCk7YnJlYWsgYX19Zj12b2lkIDB9cmV0dXJuIGZ9fSx2b2lkIDAsIkUwS1NGZCIpO3JldHVybigpPT5jKCl9LFpmYT1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEuZW50aXRpZXMsInNlbGVjdGlvblZhbHVlTGlzdEVudGl0eSIsYil9LCRmYT1mdW5jdGlvbihhLGIpe2IuaW5jbHVkZXMoYSk/Yj1iLmZpbHRlcihjPT5jIT09YSk6Yi5wdXNoKGEpO3JldHVyblsuLi5iXX0sVUw9bmV3IF8uSSgiY2hlY2tib3hJdGVtVmlld01vZGVsIik7dmFyIGFnYT1fLkwoYT0+e3ZhciB7ZGF0YTpiLFdiOmMsc2VsZWN0ZWQ6ZCxvblRhcDplLGdyb3VwTmFtZTpmLGNsYXNzTmFtZTpoLG5hOmssZGlzYWJsZUhvcml6b250YWxQYWRkaW5nOmwsTGk6bX09Xy5EQyhhLHtXYjohMSxzZWxlY3RlZDohMSxuYTohMSxkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6ITEsTGk6ITF9KSxuPSgpPT5jKCk/MjpiKCkuZm9ybUZpZWxkTWV0YWRhdGEmJiFtKCk/MzoxO18uVUooKCk9PntuKCk9PT0yJiZiKCkuZGVmYXVsdFNlbGVjdGVkP18uR3AoRXJyb3IoInVkIikpOm4oKT09PTEmJmQoKT9fLkdwKEVycm9yKCJ2ZCIpKTpuKCk9PT0zJiZkKCkmJl8uR3AoRXJyb3IoIndkIikpfSk7dmFyIHA9Xy5aSSgoKT0+YigpLmZvcm1GaWVsZE1ldGFkYXRhKSxbcix0XT1fLkFDKCgpPT57aWYobigpPT09MSlyZXR1cm4gYigpLmRlZmF1bHRTZWxlY3RlZH0pO3JldHVybiBfLksoInl0LWNoZWNrYm94LWl0ZW0tdmlldy1tb2RlbCIse2NsYXNzOl8uUCgieXRDaGVja2JveEl0ZW1WaWV3TW9kZWxIb3N0IiwKaCl9LF8uSyhfLkNELHtkYXRhOigpPT57dmFyIHY9YigpLHo9bigpPT09Mz9wKCk/LnZhbHVlfHwhMTpuKCk9PT0xP3IoKTpkKCk7cmV0dXJue3RpdGxlOnYudGV4dCxzdWJ0aXRsZTp2LnN1YnRleHQsc3VwZXJsYWJlbDp2LnN1cGVybGFiZWwsaXNTZWxlY3RlZDohIXosaXNEaXNhYmxlZDp2LmlzRGlzYWJsZWQsc2VsZWN0aW9uU3R5bGU6IkxJU1RfSVRFTV9TRUxFQ1RJT05fU1RZTEVfQ0hFQ0tCT1gifX0sb25UYXA6KCk9Pnt2YXIgdj0hKG4oKT09PTM/cCgpPy52YWx1ZTpuKCk9PT0xP3IoKTpkKCkpO24oKT09PTM/cCgpPy51cGRhdGVWYWx1ZSh2KTpuKCk9PT0xJiZ0KHYpO2U/Lih2LGIoKSxmPy4oKSl9LG5hOmssZGlzYWJsZUhvcml6b250YWxQYWRkaW5nOmx9KSl9LCJEYSIpO18udEQ9Xy5MKCh7ZGF0YTphLFdiOmIsZEE6YyxnejpkLGdyb3VwTmFtZTplLGRpc2FibGVIb3Jpem9udGFsUGFkZGluZzpmLG5hOmh9KT0+e3ZhciBrPV8uREkoWmZhLCgpPT5hKCkuaGlkZUl0ZW1zRW50aXR5S2V5KSxsPSgpPT5iPy4oKT8yOmEoKS5mb3JtRmllbGRNZXRhZGF0YT8zOjEsbT0oKT0+ZT8uKCl8fGEoKS5rZXk7Xy5VSigoKT0+e2woKT09PTImJmEoKS5kZWZhdWx0U2VsZWN0ZWRLZXlzP18uR3AoRXJyb3IoInhkIikpOmwoKT09PTEmJmM/LigpP18uR3AoRXJyb3IoInlkIikpOmwoKT09PTMmJihjPy4oKSE9PXZvaWQgMCYmXy5HcChFcnJvcigiemQiKSksYSgpLmRlZmF1bHRTZWxlY3RlZEtleXMmJl8uR3AoRXJyb3IoIkFkIikpKX0pO3ZhciBuPVlmYSgoKT0+YSgpLmZvcm1GaWVsZE1ldGFkYXRhKSxbcCxyXT1fLkFDKCgpPT57aWYobCgpPT09MSlyZXR1cm4gYSgpLmRlZmF1bHRTZWxlY3RlZEtleXN9KSx0PV8uWkkoKCk9Pih7Zm9ybUlkOmEoKS5zZWFyY2hRdWVyeUZpZWxkTWV0YWRhdGE/LmZvcm1JZHx8CiIiLGZpZWxkSWQ6YSgpLnNlYXJjaFF1ZXJ5RmllbGRNZXRhZGF0YT8uZmllbGRJZHx8IiJ9KSksdj1fLk4oKCk9Pnt2YXIgRT1hKCkuY2hlY2tib3hlc3x8W10sQT1rKCk7aWYoQT8udmFsdWVzJiZBLnZhbHVlcy5sZW5ndGg+MCl7bGV0IEM9QS50eXBlLEc9bmV3IFNldChBLnZhbHVlcy5tYXAoRD0+Xy5RTChELEMpKS5maWx0ZXIoRD0+RCE9PXZvaWQgMCkpO0U9RS5maWx0ZXIoRD0+e0Q9Xy5CKEQsVUwpO2lmKCFEPy52YWx1ZSlyZXR1cm4hMDtEPV8uUUwoRC52YWx1ZSxDKTtyZXR1cm4gRD09PXZvaWQgMHx8IUcuaGFzKEQpfSl9dmFyIEY9KHQoKT8udmFsdWV8fCIiKS50b0xvd2VyQ2FzZSgpO3JldHVybiBGP0UuZmlsdGVyKEM9PntDPV8uQihDLFVMKTtyZXR1cm4gQz8udGV4dD8uY29udGVudD9DLnRleHQuY29udGVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKEYpOiExfSk6RX0sdm9pZCAwLCJYNlk1TWMiKSx6PWFzeW5jKEUsQSxGKT0+e0U9W107bCgpPT09MSYmQS5rZXk/KEU9CiRmYShBLmtleSxwKCl8fFtdKSxyKEUpKTpsKCk9PT0zJiZBLmtleSYmKEU9bigpPy52YWx1ZXx8W10sRS5pbmNsdWRlcyhBLmtleSk/KEU9RS5pbmRleE9mKEEua2V5KSxFIT09LTEmJmF3YWl0IG4oKT8ucmVtb3ZlKEUpKTphd2FpdCBuKCk/LmFkZChBLmtleSksRT1uKCk/LnZhbHVlfHxbXSk7ZD8uKEEsRSxGKX07cmV0dXJuIF8uSygieXQtY2hlY2tib3gtZ3JvdXAtdmlldy1tb2RlbCIse2NsYXNzOl8uUCgieXRDaGVja2JveEdyb3VwVmlld01vZGVsSG9zdCIpfSxfLksoImZpZWxkc2V0Iix7Y2xhc3M6Xy5QKCJ5dENoZWNrYm94R3JvdXBWaWV3TW9kZWxGaWVsZHNldCIpfSxfLksoImRpdiIse3JvbGU6Imxpc3QifSxfLksoXy5XLHtkYXRhOnZ9LHtjaGVja2JveEl0ZW1WaWV3TW9kZWw6KHtkYXRhOkV9KT0+Xy5LKGFnYSx7ZGF0YTpFLFdiOiEwLHNlbGVjdGVkOigpPT57dmFyIEE9bCgpPT09Mj9jPy4oKXx8W106bCgpPT09Mz9uKCk/LnZhbHVlfHxbXTpwKCl8fFtdLEY9RSgpLmtleTsKcmV0dXJuIEY/QS5pbmNsdWRlcyhGKTohMX0sb25UYXA6eixncm91cE5hbWU6bSxkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6ZixuYTpofSl9KSkpKX0sIkVhIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoInZEY2sxZCIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLkpKPWZ1bmN0aW9uKGEsYil7aWYoIWEmJiFiKXJldHVybiJtZWRpdW0iO2E9TWF0aC5tYXgoYXx8MCxifHwwKTtyZXR1cm4gYT49MjU2PyJsYXJnZSI6YT49OTY/Im1lZGl1bSI6InNtYWxsIn07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBHZWE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgMjpyZXR1cm4ieXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlVG91Y2hSZXNwb25zZUludmVyc2UiO2Nhc2UgMzpyZXR1cm4ieXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlT3ZlcmxheVRvdWNoUmVzcG9uc2UiO2Nhc2UgNDpyZXR1cm4ieXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlT3ZlcmxheVRvdWNoUmVzcG9uc2VJbnZlcnNlIjtkZWZhdWx0OnJldHVybiJ5dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUb3VjaFJlc3BvbnNlIn19LEhlYT1mdW5jdGlvbihhLGIpe2lmKGIpcmV0dXJuInl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVTbWFsbCI7aWYoYSlzd2l0Y2goYSl7Y2FzZSAibGFyZ2UiOnJldHVybiJ5dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUaHVtYm5haWxTaXplTGFyZ2UiO2Nhc2UgIm1lZGl1bSI6cmV0dXJuInl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVNZWRpdW0iO2RlZmF1bHQ6cmV0dXJuInl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZVRodW1ibmFpbFNpemVTbWFsbCJ9fSwKSWVhPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5qPW5ldyBBbmltYXRpb24obmV3IEtleWZyYW1lRWZmZWN0KGEsW3tvZmZzZXQ6MCxvcGFjaXR5Oi4xLGVhc2luZzoiY3ViaWMtYmV6aWVyKDAuMDUsIDAuMDAsIDAuMDAsIDEuMDApIn0se29mZnNldDoxLG9wYWNpdHk6MH1dLHtkdXJhdGlvbjo0MDB9KSxkb2N1bWVudC50aW1lbGluZSk7dGhpcy5vPW5ldyBBbmltYXRpb24obmV3IEtleWZyYW1lRWZmZWN0KGIsW3tvZmZzZXQ6MCxvcGFjaXR5Oi4yLGVhc2luZzoiY3ViaWMtYmV6aWVyKDAuMjAsIDAuMDAsIDAuNjAsIDEuMDApIn0se29mZnNldDoxLG9wYWNpdHk6MH1dLHtkdXJhdGlvbjo0MDB9KSxkb2N1bWVudC50aW1lbGluZSl9cGxheSgpe3RoaXMuai5wbGF5Py4oKTt0aGlzLm8ucGxheT8uKCl9Y2FuY2VsKCl7dGhpcy5qLmNhbmNlbD8uKCk7dGhpcy5vLmNhbmNlbD8uKCl9fTtfLlVDPV8uTCgoe21vZGVsOmEsVG06YixWbTpjLFVtOmQsUmI6ZX0pPT57ZnVuY3Rpb24gZigpe3YoKTtyKCExKX1mdW5jdGlvbiBoKCl7dD8uY2FuY2VsKCk7cighMCl9dmFyIGs9Xy51RSgieXQtdG91Y2gtZmVlZGJhY2stc2hhcGUiKSxsPV8udUUoImRpdiIpLG09Xy51RSgiZGl2IiksW24scF09Xy5BQygoKT0+Yz8uKCl8fGQ/LigpPyExOiEhYj8uKCl8fCExKSxyPXAsdD12b2lkIDAsdj0oKT0+eyF0JiZtLnZhbHVlJiZsLnZhbHVlJiZ0eXBlb2YgQW5pbWF0aW9uPT09ImZ1bmN0aW9uIiYmdHlwZW9mIEtleWZyYW1lRWZmZWN0PT09ImZ1bmN0aW9uIiYmKHQ9bmV3IEllYShtLnZhbHVlLGwudmFsdWUpKTt0Py5wbGF5KCl9O18ubkUoKCk9PntjPy4oKSYmdigpfSwiQ1kyUyIpO18ubkUoKCk9PntiPy4oKSYmdD8uY2FuY2VsKCl9LCJ2ZXFmNmIiKTtfLm5FKCgpPT57ZD8uKCkmJnQ/LmNhbmNlbCgpfSwiVFZyZkNjIik7Xy5ZdSgoKT0+e3QmJih0Py5jYW5jZWwoKSx0PXZvaWQgMCl9KTsKcmV0dXJuIF8uSygieXQtdG91Y2gtZmVlZGJhY2stc2hhcGUiLHtlbDprLGNsYXNzOl8uUCgieXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlSG9zdCIsKCk9PkdlYShhKCkuY29sb3IpLCgpPT5IZWEoYSgpLnRodW1ibmFpbFNpemUsISFhKCkuaXNFeHRlbmRlZCkse3l0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZUZvY3VzZWQ6KCk9PiEhYSgpLmZvY3VzZWQmJiFhKCkuZGlzYWJsZWQseXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlQ2lyY3VsYXI6KCk9PiEhYSgpLmNpcmN1bGFyLHl0U3BlY1RvdWNoRmVlZGJhY2tTaGFwZURvd246bix5dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVUcmlnZ2VyRXZlbnRzOigpPT4hIWEoKS5tQix5dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVIb3ZlcmVkOigpPT5lPy4oKX0pLHN0eWxlOl8uSUUoe21hcmdpbjooKT0+YSgpLm1hcmdpbj9gLSR7YSgpLm1hcmdpbn1weGA6dm9pZCAwLCJtYXJnaW4tdG9wIjooKT0+YSgpLnhwP2AtJHthKCkueHB9cHhgOnZvaWQgMH0pLCJvbjptb3VzZWRvd24iOmgsCiJvbjptb3VzZXVwIjpmLCJvbjpwb2ludGVybGVhdmUiOmZ1bmN0aW9uKCl7dD8uY2FuY2VsKCk7cighMSl9LCJvbjp0b3VjaHN0YXJ0IjpoLCJvbjp0b3VjaGVuZCI6ZiwiYXJpYS1oaWRkZW4iOiEwfSxfLksoXy5PLHtBOigpPT4hIWEoKS5ObCx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVIb3ZlckVmZmVjdCIsc3R5bGU6Xy5JRSh7ImJvcmRlci1yYWRpdXMiOigpPT5hKCkuYm9yZGVyUmFkaXVzLGJhY2tncm91bmQ6KCk9Pnt7bGV0IEU9YSgpLk5sO2lmKEUpe3ZhciB6PVtdO2ZvcihsZXQgQSBvZiBFPy5saWdodGluZ1RlY2huaXF1ZXN8fFtdKXN3aXRjaChBKXtjYXNlIDI6ei5wdXNoKGBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAke0U/LnBhbGV0dGU/LmtleUxpZ2h0fSwgJHtFPy5wYWxldHRlPy5iYWNrZ3JvdW5kfSlgKX16LnB1c2goYSgpLk5sPy5wYWxldHRlPy5iYWNrZ3JvdW5kKTt6PXouam9pbigiLCAiKX1lbHNlIHo9dm9pZCAwfXJldHVybiB6fX0pfSl9KSwKXy5LKCJkaXYiLHtjbGFzczoieXRTcGVjVG91Y2hGZWVkYmFja1NoYXBlU3Ryb2tlIixzdHlsZTpfLklFKHsiYm9yZGVyLXJhZGl1cyI6KCk9PmEoKS5ib3JkZXJSYWRpdXMsImJvcmRlci1jb2xvciI6KCk9PmEoKS50cz8ucGFsZXR0ZT8uYmFja2dyb3VuZH0pLGVsOmx9KSxfLksoImRpdiIse2NsYXNzOiJ5dFNwZWNUb3VjaEZlZWRiYWNrU2hhcGVGaWxsIixzdHlsZTpfLklFKHsiYm9yZGVyLXJhZGl1cyI6KCk9PmEoKS5ib3JkZXJSYWRpdXMsImJhY2tncm91bmQtY29sb3IiOigpPT5hKCkudHM/LnBhbGV0dGU/LmJhY2tncm91bmR9KSxlbDptfSkpfSwiVCIpO18uVUMuaWRvbUNvbXBhdD0hMDsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5XZCgiT3RLU0plIik7CgpfLlhkKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBPYWEsUGFhLFFhYTtPYWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz17fSxkPU9iamVjdC5rZXlzKGEpO2ZvcihsZXQgZSBvZiBkKWNbZV09YihlLGFbZV0pO3JldHVybiBjfTtQYWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdHlwZW9mIGEhPT0ib2JqZWN0Inx8YT09PW51bGw/ITE6T2JqZWN0LmtleXMoYikuZXZlcnkoYz0+YyBpbiBhKX07Xy5pQT1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5rZXlzKGEpLm1hcChiPT5bYixiXSkpfTtRYWE9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBPYWEoYywoZCxlKT0+KGYsLi4uaCk9PlBhYShmLGEpP2UoZltiXSwuLi5oKTplKGYsLi4uaCkpfTtfLmpBPWZ1bmN0aW9uKGEpe3JldHVybihiLGMpPT5RYWEoYSxiLGMpfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIFRhYT1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEsInBsYXlsaXN0TG9vcFN0YXRlRW50aXR5IixiKT8/dm9pZCAwfSxVYWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5xQShhLCJ0b2dnbGVNZW51U2VydmljZUl0ZW1FbnRpdHkiLGIpPz92b2lkIDB9LHdBPV8uaUEoe2VudGl0aWVzOnt9fSk7Xy54QT1fLmpBKHdBKSh3QS5lbnRpdGllcyx7YkE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4oXy5xQShhLCJzZnZBdWRpb0l0ZW1DdXJyZW50bHlQbGF5aW5nRW50aXR5IixiKT8/dm9pZCAwKT8uc2Z2QXVkaW9JdGVtUGxheWJhY2tTdGF0ZT8/dm9pZCAwfSx0SzpUYWEsZUI6VWFhfSk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uWkM9bmV3IF8uSSgibGlzdEl0ZW1WaWV3TW9kZWwiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIHZJO18udUk9ZnVuY3Rpb24oYSxiKXtpZihfLnRBPy5lbmNvZGVJbnRvKXtsZXQge3JlYWQ6ZCx3cml0dGVuOmV9PV8udEEuZW5jb2RlSW50byhhLGIpO3JldHVybiBkPGEubGVuZ3RoP2EubGVuZ3RoKjQ6ZX12YXIgYz0wO2ZvcihsZXQgZD0wO2Q8YS5sZW5ndGg7ZCsrKXtsZXQgZT1hLmNoYXJDb2RlQXQoZCk7ZTwxMjg/YltjKytdPWU6KGU8MjA0OD9iW2MrK109ZT4+NnwxOTI6KChlJjY0NTEyKT09PTU1Mjk2JiZkKzE8YS5sZW5ndGgmJihhLmNoYXJDb2RlQXQoZCsxKSY2NDUxMik9PT01NjMyMD8oZT02NTUzNisoKGUmMTAyMyk8PDEwKSsoYS5jaGFyQ29kZUF0KCsrZCkmMTAyMyksYltjKytdPWU+PjE4fDI0MCxiW2MrK109ZT4+MTImNjN8MTI4KTpiW2MrK109ZT4+MTJ8MjI0LGJbYysrXT1lPj42JjYzfDEyOCksYltjKytdPWUmNjN8MTI4KX1yZXR1cm4gY307CnZJPWZ1bmN0aW9uKGEsYixjKXtpZihiJiZjJiZjLmJ1ZmZlcj09PWIuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKXtsZXQgZD1iLm1lbW9yeS5yZWFsbG9jKGMuYnl0ZU9mZnNldCxhKTtpZihkKXJldHVybiBuZXcgVWludDhBcnJheShiLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcixkLGEpfWE9Yj9uZXcgVWludDhBcnJheShiLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcixiLm1lbW9yeS5tYWxsb2MoYSksYSk6bmV3IFVpbnQ4QXJyYXkoYSk7YyYmYS5zZXQoYyk7cmV0dXJuIGF9O18ud0k9ZnVuY3Rpb24oYSxiKXtiPWEucG9zK2I7aWYoIShhLmJ1Zi5sZW5ndGg+PWIpKXtmb3IodmFyIGM9YS5idWYubGVuZ3RoKjI7YzxiOyljKj0yO2EuYnVmPXZJKGMsYS53YXNtLGEuYnVmLnN1YmFycmF5KDAsYS5wb3MpKTthLnZpZXc9bmV3IERhdGFWaWV3KGEuYnVmLmJ1ZmZlcixhLmJ1Zi5ieXRlT2Zmc2V0LGEuYnVmLmJ5dGVMZW5ndGgpfX07Cl8ueEk9ZnVuY3Rpb24oYSxiKXtpZihiPjI2ODQzNTQ1NSl7Xy53SShhLDQpO2xldCBjPWImMTA3Mzc0MTgyMztmb3IobGV0IGQ9MDtkPDQ7ZCsrKWEudmlldy5zZXRVaW50OChhLnBvcyxjJjEyN3wxMjgpLGM+Pj49NyxhLnBvcys9MTtiPU1hdGguZmxvb3IoYi8yNjg0MzU0NTYpfWZvcihfLndJKGEsNCk7Yj4xMjc7KWEudmlldy5zZXRVaW50OChhLnBvcyxiJjEyN3wxMjgpLGI+Pj49NyxhLnBvcys9MTthLnZpZXcuc2V0VWludDgoYS5wb3MsYik7YS5wb3MrPTF9OwpfLnpJPWZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IF8ueUk7aWYoXy50QSlhPV8udEEuZW5jb2RlKGEpO2Vsc2V7dmFyIGQ9bmV3IFVpbnQ4QXJyYXkoTWF0aC5jZWlsKGEubGVuZ3RoKjEuMikpLGU9Xy51SShhLGQpO2QubGVuZ3RoPGUmJihkPW5ldyBVaW50OEFycmF5KGUpLGU9Xy51SShhLGQpKTtkLmxlbmd0aD5lJiYoZD1kLnN1YmFycmF5KDAsZSkpO2E9ZH1hIT09dm9pZCAwJiYoXy54SShjLDE4KSxkPWEubGVuZ3RoLF8ueEkoYyxkKSxfLndJKGMsZCksYy5idWYuc2V0KGEsYy5wb3MpLGMucG9zKz1kKTthPV8udUFbYl07aWYodHlwZW9mIGE9PT0idW5kZWZpbmVkIil0aHJvdyBiPW5ldyBfLlhqKCJGYWlsZWQgdG8gcmVjb2duaXplIGVudGl0eSB0eXBlIix7bmFtZToiRW50aXR5S2V5SGVscGVyRXJyb3IiLGVudGl0eVR5cGU6Yn0pLF8uR3AoYiksYjthIT09dm9pZCAwJiYoXy54SShjLDMyKSxfLnhJKGMsYSkpO18ueEkoYyw0MCk7Xy54SShjLDEpO2I9bmV3IFVpbnQ4QXJyYXkoYy5idWYuYnVmZmVyLApjLmJ1Zi5ieXRlT2Zmc2V0LGMucG9zKTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KF8uc2MoYiwwKSl9O18ueUk9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLndhc209dm9pZCAwO3RoaXMucG9zPTA7dGhpcy5qPVtdO3RoaXMuYnVmPXZJKDQwOTYpO3RoaXMudmlldz1uZXcgRGF0YVZpZXcodGhpcy5idWYuYnVmZmVyLHRoaXMuYnVmLmJ5dGVPZmZzZXQsdGhpcy5idWYuYnl0ZUxlbmd0aCl9fTtfLnpJKCIiLCJkb3dubG9hZHNQYWdlVmlld0NvbmZpZ3VyYXRpb25FbnRpdHkiKTtfLnpJKCJET1dOTE9BRFNfTElTVF9FTlRJVFlfSURfTUFOVUFMX0RPV05MT0FEUyIsIm1haW5Eb3dubG9hZHNMaXN0RW50aXR5Iik7Xy56SSgiRE9XTkxPQURTX0xJU1RfRU5USVRZX0lEX1NNQVJUX0RPV05MT0FEUyIsIm1haW5Eb3dubG9hZHNMaXN0RW50aXR5Iik7Xy56SSgiRE9XTkxPQURTX0xJU1RfRU5USVRZX0lEX1NNQVJUX0RPV05MT0FEUyIsInJlZnJlc2giKTtfLnpJKCJTTUFSVF9ET1dOTE9BRFNfRU5BQkxFRCIsInNldHRpbmdFbnRpdHkiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5BST1uZXcgXy5JKCJvZmZsaW5lUGxheWxpc3RFbmRwb2ludCIpO18uQkk9bmV3IF8uSSgib2ZmbGluZVZpZGVvRW5kcG9pbnQiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIFpkYTtfLkVJPWZ1bmN0aW9uKGEsYixjLGQsZSl7YT1iP2Euc3dpdGNoT2ZmQ29tbWFuZDphLnN3aXRjaE9uQ29tbWFuZDtpZihkJiZlKVpkYShhLGMsZSk7ZWxzZSBfLmJFKHtiaDphfSk/Lm9uY2xpY2s/LihjKX07WmRhPWZ1bmN0aW9uKGEsYixjKXthPV8uYkUoe2JoOmEsQW86e0VpOntvblN1Y2Nlc3M6KCk9PntjKCExKX0sbno6KCk9PntjKCExKX19fX0pO2E/Lm9uY2xpY2smJihhLm9uY2xpY2soYiksYyghMCkpfTtfLiRkYT1uZXcgXy5JKCJzd2l0Y2hCdXR0b25WaWV3TW9kZWwiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGVKPWZ1bmN0aW9uKGEpe2lmKGEpcmV0dXJuIF8uQihhLF8uJGRhKX07Xy5mSj1fLkwoKHtkYXRhOmEsb25UYXA6YixrSzpjLG1LOmQsZGlzYWJsZUhvcml6b250YWxQYWRkaW5nOmUsTGk6ZixuYTpofSk9PntmdW5jdGlvbiBrKEYpe2lmKCFGLm91KXtGLm91PSEwO3ZhciBDPWVKKEEoKSk7IUN8fEMuaXNEaXNhYmxlZHx8YSgpLmlnbm9yZVRhcFVudGlsQ29tbWFuZENvbXBsZXRlcyYmdigpfHwoYj8uKEYpLF8uRUkoQyxFKCksRixhKCkuaWdub3JlVGFwVW50aWxDb21tYW5kQ29tcGxldGVzLHopLChhKCkuZm9ybUZpZWxkTWV0YWRhdGEmJiFmPy4oKT8zOjEpPT09Mz9sKCk/LnVwZGF0ZVZhbHVlKCFFKCkpOnAoIUUoKSksYz8uKEUoKSkpfX12YXIgbD1fLlpJKCgpPT5hKCkuZm9ybUZpZWxkTWV0YWRhdGEpLFttLG5dPV8uQUMoKCk9PmVKKEEoKSk/LnN3aXRjaGVkT25CeURlZmF1bHR8fCExKSxwPW4sW3IsdF09Xy5KKCExLHZvaWQgMCwiT3ZrdWxlIiksdj1yLHo9dCxFPSgpPT4oYSgpLmZvcm1GaWVsZE1ldGFkYXRhJiYhZj8uKCk/MzoxKT09PTM/bCgpPy52YWx1ZXx8CiExOm0oKSxBPSgpPT57dmFyIEY7aWYoIShGPWEoKS5zd2l0Y2hCdXR0b24pKXt2YXIgQz1hKCk7Rj1kPy4oKTtDPXtzd2l0Y2hPbkNvbW1hbmQ6Qy5zd2l0Y2hPbkNvbW1hbmQsc3dpdGNoT2ZmQ29tbWFuZDpDLnN3aXRjaE9mZkNvbW1hbmQsc3dpdGNoZWRPbkJ5RGVmYXVsdDpDLnN3aXRjaGVkT25CeURlZmF1bHQsaXNEaXNhYmxlZDpDLmlzRGlzYWJsZWQsYTExeUxhYmVsU3dpdGNoZWRPbjpDLmExMXlMYWJlbFN3aXRjaGVkT24sYTExeUxhYmVsU3dpdGNoZWRPZmY6Qy5hMTF5TGFiZWxTd2l0Y2hlZE9mZn07RiE9PXZvaWQgMCYmKEMuaXNEaXNhYmxlZD1GKTtGPXtzd2l0Y2hCdXR0b25WaWV3TW9kZWw6Q319Qz1lSihGKTtpZighQylyZXR1cm4gRjt2YXIgRz1hKCkudGl0bGU/LmNvbnRlbnQ7cmV0dXJuIEc/e3N3aXRjaEJ1dHRvblZpZXdNb2RlbDp7Li4uQyxhMTF5TGFiZWxTd2l0Y2hlZE9uOkcsYTExeUxhYmVsU3dpdGNoZWRPZmY6R319OkZ9O3JldHVybiBfLksoInN3aXRjaC1saXN0LWl0ZW0tdmlldy1tb2RlbCIsCntjbGFzczoieXRTd2l0Y2hMaXN0SXRlbVZpZXdNb2RlbEhvc3QiLCJvbjpjbGljayI6a30sXy5LKF8uQ0Qse2RhdGE6KCk9Pih7dGl0bGU6YSgpLnRpdGxlLHN1YnRpdGxlOmEoKS5hdHRyaWJ1dGVkU3VidGl0bGUsbGVhZGluZ0ltYWdlOmEoKS5sZWFkaW5nSW1hZ2UsbGVhZGluZ0FjY2Vzc29yeTphKCkubGVhZGluZ0FjY2Vzc29yeSxpc0Rpc2FibGVkOmEoKS5pc0Rpc2FibGVkfSksaXNUb2dnbGVkOkUsRGc6ITAsbmE6aCx4czooKT0+Xy5LKF8uVyx7ZGF0YTpBfSx7c3dpdGNoQnV0dG9uVmlld01vZGVsOih7ZGF0YTpGfSk9Pl8uSyhfLmtJLHtkYXRhOkYscXI6RSxvblRhcDprfSl9KSxkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6ZX0pKX0sIkoiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGNlYSxnSixkZWEsaEosaUosZWVhLGZlYSxnZWEsaGVhLGplYSxrZWEsbGVhLG1lYSxqSixrSixtSixuZWEsb2VhLHBlYSx0ZWEsdWVhLHFKLHJKLHNKLHdlYSx0SixpZWEsdUo7Y2VhPWZ1bmN0aW9uKGEsYj0yKXtfLnhJKGEsMTApO2Euai5wdXNoKGEucG9zKTthLmoucHVzaChiKTthLnBvcys9Yn07CmdKPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBfLnlJO2lmKGEhPT12b2lkIDApe2NlYShiLE1hdGguY2VpbChNYXRoLmxvZzIoYS5sZW5ndGgqNCsyKS83KSk7Xy53SShiLGEubGVuZ3RoKjEuMik7dmFyIGM9Xy51SShhLGIuYnVmLnN1YmFycmF5KGIucG9zKSk7Yi5wb3MrYz5iLmJ1Zi5sZW5ndGgmJihfLndJKGIsYyksYz1fLnVJKGEsYi5idWYuc3ViYXJyYXkoYi5wb3MpKSk7Yi5wb3MrPWM7YT1iLmoucG9wKCk7Yz1iLmoucG9wKCk7bGV0IGQ9Yi5wb3MtYy1hO2Zvcig7YS0tOyl7bGV0IGU9YT8xMjg6MDtiLnZpZXcuc2V0VWludDgoYysrLGQmMTI3fGUpO2Q+Pj03fX1iPW5ldyBVaW50OEFycmF5KGIuYnVmLmJ1ZmZlcixiLmJ1Zi5ieXRlT2Zmc2V0LGIucG9zKTtyZXR1cm4obmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpKS5kZWNvZGUoYil9OwpkZWE9ZnVuY3Rpb24oYSxiKXtpZighYilyZXR1cm5bXTtiPV8uekkoYiwibWFpblBsYXlsaXN0RW50aXR5Iik7dmFyIGM9YS5tYWluUGxheWxpc3RFbnRpdHk/LltiXTtiPVtdO2lmKCFjPy52aWRlb3MpcmV0dXJuIGI7Zm9yKGxldCBkIG9mIGMudmlkZW9zKXtjPWE/Lm1haW5QbGF5bGlzdFZpZGVvRW50aXR5Py5bZF0/LnZpZGVvO2lmKCFjKWNvbnRpbnVlOyh7ZW50aXR5SWQ6Y309Xy5HSChjKSk7YyYmYi5wdXNoKGMpfXJldHVybiBifTtoSj1mdW5jdGlvbihhKXtyZXR1cm4iZG93bmxvYWRlZE11c2ljUGxheWxpc3RFbnRpdGllcyJpbiBhfTsKaUo9ZnVuY3Rpb24oYSl7dmFyIGI9YS5tdXNpY1BsYXlsaXN0RG93bmxvYWRNZXRhZGF0YUVudGl0eSxjPVtdO2lmKCFiKXJldHVybiBjO2ZvcihsZXQgaCBvZiBPYmplY3Qua2V5cyhiKSl7YTp7dmFyIGQ9YSxlPV8uR0goaCkuZW50aXR5SWQ7aWYoZSl7dmFyIGY9Xy5xQShkLCJtdXNpY1BsYXlsaXN0IixfLnpJKGUsIm11c2ljUGxheWxpc3QiKSk7ZD1fLnFBKGQsIm11c2ljUGxheWxpc3REb3dubG9hZE1ldGFkYXRhRW50aXR5IixfLnpJKGUsIm11c2ljUGxheWxpc3REb3dubG9hZE1ldGFkYXRhRW50aXR5IikpO2lmKGYmJmQpe2Y9e211c2ljUGxheWxpc3RFbnRpdHk6ZixtdXNpY1BsYXlsaXN0RG93bmxvYWRTdGF0ZUVudGl0eTpkfTticmVhayBhfX1mPXZvaWQgMH1kPU51bWJlcihiW2hdPy5hZGRlZFRpbWVzdGFtcE1pbGxpcyk7ZD1pc05hTihkKT8oMCxfLmVsKSgpOmQ7ZiE9PXZvaWQgMCYmYy5wdXNoKHtkb3dubG9hZGVkTXVzaWNQbGF5bGlzdEVudGl0aWVzOmYsYWRkZWRUaW1lc3RhbXBNaWxsaXM6ZH0pfXJldHVybiBjfTsKZWVhPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBTZXQ7Zm9yKGxldCBjIG9mIGEpaWYoIm11c2ljUGxheWxpc3RFbnRpdHkiaW4gYyYmIm11c2ljUGxheWxpc3REb3dubG9hZFN0YXRlRW50aXR5ImluIGMpZm9yKGxldCBkIG9mIGMubXVzaWNQbGF5bGlzdEVudGl0eS50cmFja3MpYi5hZGQoZCk7cmV0dXJuIGJ9OwpmZWE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5tdXNpY1RyYWNrRG93bmxvYWRNZXRhZGF0YUVudGl0eSxjPVtdO2lmKCFiKXJldHVybltdO2ZvcihsZXQgbSBvZiBPYmplY3Qua2V5cyhiKSl7YTp7dmFyIGQ9YSxlPV8uR0gobSkuZW50aXR5SWQ7aWYoZSl7Yj1fLnFBKGQsIm11c2ljVHJhY2siLF8uekkoZSwibXVzaWNUcmFjayIpKTt2YXIgZj1fLnFBKGQsIm11c2ljQXJ0aXN0IixfLnpJKGUsIm11c2ljQXJ0aXN0IikpfHx7fTtiOnt2YXIgaD1lO2lmKGgpe2U9Xy5xQShkLCJwbGF5YmFja0RhdGEiLF8uekkoaCwicGxheWJhY2tEYXRhIikpPz9udWxsO3ZhciBrPV8ucUEoZCwidHJhbnNmZXIiLF8uekkoaCwidHJhbnNmZXIiKSk/P251bGwsbD1fLnFBKGQsIm9mZmxpbmVWaWRlb1N0cmVhbXMiLF8uekkoaCwib2ZmbGluZVZpZGVvU3RyZWFtcyIpKT8/bnVsbDtkPV8ucUEoZCwib2ZmbGluZVZpZGVvUG9saWN5IixfLnpJKGgsIm9mZmxpbmVWaWRlb1BvbGljeSIpKT8/bnVsbDtpZihlfHwKa3x8bHx8ZCl7ZD17cGxheWJhY2tEYXRhRW50aXR5OmUsdHJhbnNmZXJFbnRpdHk6ayxzdHJlYW1FbnRpdHk6bCxwb2xpY3lFbnRpdHk6ZH07YnJlYWsgYn19ZD12b2lkIDB9aWYoZCYmYiYmZil7Yj17bXVzaWNUcmFja0VudGl0eTpiLG11c2ljQXJ0aXN0RW50aXR5OmYsLi4uZH07YnJlYWsgYX19Yj12b2lkIDB9Zj1OdW1iZXIoXy5xQShhLCJtdXNpY1RyYWNrRG93bmxvYWRNZXRhZGF0YUVudGl0eSIsbSk/LmFkZGVkVGltZXN0YW1wTWlsbGlzKTtmPWlzTmFOKGYpPygwLF8uZWwpKCk6ZjtiIT09dm9pZCAwJiZjLnB1c2goe2Rvd25sb2FkZWRNdXNpY0VudGl0aWVzOmIsYWRkZWRUaW1lc3RhbXBNaWxsaXM6Zn0pfXJldHVybiBjfTsKZ2VhPWZ1bmN0aW9uKGEpe3ZhciBiPWZlYShhKS5zb3J0KChjLGQpPT5kLmFkZGVkVGltZXN0YW1wTWlsbGlzLWMuYWRkZWRUaW1lc3RhbXBNaWxsaXMpLm1hcChjPT4iZG93bmxvYWRlZE11c2ljRW50aXRpZXMiaW4gYz9jLmRvd25sb2FkZWRNdXNpY0VudGl0aWVzOmhKKGMpP2MuZG93bmxvYWRlZE11c2ljUGxheWxpc3RFbnRpdGllczp7fSk7YT1pSihhKS5zb3J0KChjLGQpPT5kLmFkZGVkVGltZXN0YW1wTWlsbGlzLWMuYWRkZWRUaW1lc3RhbXBNaWxsaXMpLm1hcChjPT4iZG93bmxvYWRlZE11c2ljRW50aXRpZXMiaW4gYz9jLmRvd25sb2FkZWRNdXNpY0VudGl0aWVzOmhKKGMpP2MuZG93bmxvYWRlZE11c2ljUGxheWxpc3RFbnRpdGllczp7fSk7cmV0dXJue2Rvd25sb2FkZWRNdXNpY0VudGl0aWVzOmIsZG93bmxvYWRlZE11c2ljUGxheWxpc3RFbnRpdGllczphfX07CmhlYT1mdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBTZXQsZD1pSihhKS5tYXAoZT0+ZS5kb3dubG9hZGVkTXVzaWNQbGF5bGlzdEVudGl0aWVzKTtkPWVlYShkKTtmb3IobGV0IGUgb2YgZCkoe2VudGl0eUlkOmR9PV8uR0goZSkpLGQmJmMuYWRkKGQpOyh7ZG93bmxvYWRlZE11c2ljRW50aXRpZXM6YX09Z2VhKGEpKTtyZXR1cm4gYS5maWx0ZXIoZT0+e2lmKGUubXVzaWNUcmFja0VudGl0eT8udmlkZW9JZCl7ZT1lLm11c2ljVHJhY2tFbnRpdHk7dmFyIGY7aWYoZj1iPT09IlBQT00iPyEwOiFjLmhhcyhlLnZpZGVvSWQpKWI6c3dpdGNoKGU9ZS5tdXNpY1ZpZGVvVHlwZSxiKXtjYXNlICJQUFNFIjpmPWU9PT0iTVVTSUNfVklERU9fVFlQRV9QT0RDQVNUX0VQSVNPREUiO2JyZWFrIGI7ZGVmYXVsdDpmPWUhPT0iTVVTSUNfVklERU9fVFlQRV9QT0RDQVNUX0VQSVNPREUifWU9Zn1lbHNlIGU9ITE7cmV0dXJuIGV9KS5tYXAoZT0+ZS5tdXNpY1RyYWNrRW50aXR5Py52aWRlb0lkKX07CmplYT1mdW5jdGlvbihhLGIpe2lmKCFiKXJldHVybltdO2lmKE9iamVjdC52YWx1ZXMoaWVhKS5pbmNsdWRlcyhiKSlyZXR1cm4gaGVhKGEsYik7Yj1fLnpJKGIsIm11c2ljUGxheWxpc3QiKTtiPWEubXVzaWNQbGF5bGlzdD8uW2JdO2E9W107aWYoIWI/LnRyYWNrcylyZXR1cm4gYTtmb3IobGV0IGMgb2YgYi50cmFja3MpKHtlbnRpdHlJZDpifT1fLkdIKGMpKSxiJiZhLnB1c2goYik7cmV0dXJuIGF9OwprZWE9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IFNldChhKTtpZihiLmhhcygiVFJBTlNGRVJfU1RBVEVfRkFJTEVEIikmJmIuc2l6ZT09PTEpcmV0dXJuIlRSQU5TRkVSX1NUQVRFX0ZBSUxFRCI7Yi5kZWxldGUoIlRSQU5TRkVSX1NUQVRFX0ZBSUxFRCIpO2lmKGIuaGFzKCJUUkFOU0ZFUl9TVEFURV9VTktOT1dOIikmJmIuc2l6ZT09PTEpcmV0dXJuIlRSQU5TRkVSX1NUQVRFX1BSRV9UUkFOU0ZFUiI7Yi5kZWxldGUoIlRSQU5TRkVSX1NUQVRFX1VOS05PV04iKTtpZihiLmhhcygiVFJBTlNGRVJfU1RBVEVfUFJFX1RSQU5TRkVSIikmJmIuc2l6ZT09PTF8fGIuc2l6ZT09PTApcmV0dXJuIlRSQU5TRkVSX1NUQVRFX1BSRV9UUkFOU0ZFUiI7YT1iLmhhcygiVFJBTlNGRVJfU1RBVEVfVFJBTlNGRVJSSU5HIik7Yj1iLmhhcygiVFJBTlNGRVJfU1RBVEVfVFJBTlNGRVJfSU5fUVVFVUUiKTtyZXR1cm4gYXx8Yj8iVFJBTlNGRVJfU1RBVEVfVFJBTlNGRVJSSU5HIjoiVFJBTlNGRVJfU1RBVEVfQ09NUExFVEUifTsKbGVhPWZ1bmN0aW9uKGEsYil7Yj1fLncoIklOTkVSVFVCRV9DTElFTlRfTkFNRSIpPT09IldFQl9SRU1JWCI/amVhKGEsYik6ZGVhKGEsYik7aWYoIWIubGVuZ3RoKXJldHVybiJUUkFOU0ZFUl9TVEFURV9VTktOT1dOIjtiPWIubWFwKGM9PntjPWM/KGM9Xy5xQShhLCJ0cmFuc2ZlciIsXy56SShjLCJ0cmFuc2ZlciIpKSk/Yy50cmFuc2ZlclN0YXRlPz8iVFJBTlNGRVJfU1RBVEVfVU5LTk9XTiI6IlRSQU5TRkVSX1NUQVRFX1VOS05PV04iOiJUUkFOU0ZFUl9TVEFURV9VTktOT1dOIjtyZXR1cm4gY30pO3JldHVybiBrZWEoYil9O21lYT1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEuZW50aXRpZXMsImRvd25sb2FkU3RhdHVzRW50aXR5IixfLnpJKGIsImRvd25sb2FkU3RhdHVzRW50aXR5IikpPy5kb3dubG9hZFN0YXRlPT09IkRPV05MT0FEX1NUQVRFX1VTRVJfREVMRVRFRCI/ITA6ITF9O2pKPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBDU1MhPT0idW5kZWZpbmVkIiYmQ1NTLnN1cHBvcnRzPy4oInNlbGVjdG9yKDpoYXMoKikpIil9OwprSj1mdW5jdGlvbihhKXtyZXR1cm4gYS52aXNpYmlsaXR5IT09ImhpZGRlbiImJmEuZGlzcGxheSE9PSJub25lIn07bUo9ZnVuY3Rpb24oYSl7aWYoakooKXx8YS50YWdOYW1lIT09IkRFVEFJTFMiPyFhLm1hdGNoZXMobEopOmEucXVlcnlTZWxlY3Rvcigic3VtbWFyeSIpIT09bnVsbClyZXR1cm4tMTthPWEuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpfHwiMCI7cmV0dXJuIE51bWJlcihhKX07bmVhPWZ1bmN0aW9uKGEpe3JldHVybiBhLnNvbWUoYj0+bUooYik+MCl9O29lYT1mdW5jdGlvbihhKXtpZihhLnRleHRDb250ZW50fHxhLmFyaWFMYWJlbClyZXR1cm4hMDtpZihhIGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCl7aWYoIWEubGFiZWxzKXJldHVybiExO2ZvcihsZXQgYiBvZiBhLmxhYmVscylpZihiLnRleHRDb250ZW50KXJldHVybiEwfXJldHVybiExfTtwZWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc29ydCgoYixjKT0+bUooYyktbUooYikpfTsKXy5uSj1mdW5jdGlvbihhKXthPUFycmF5LmZyb20oYS5xdWVyeVNlbGVjdG9yQWxsKGxKKSkuZmlsdGVyKGI9PihrSihiLnN0eWxlKT9rSih3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShiKSk6ITEpJiZvZWEoYikpO3JldHVybiBuZWEoYSk/cGVhKGEpOmF9Owp0ZWE9ZnVuY3Rpb24oYSxiLGMpe2lmKGIpcmV0dXJuW29KXTtzd2l0Y2goYSl7Y2FzZSAiVFJBTlNGRVJfU1RBVEVfVFJBTlNGRVJfSU5fUVVFVUUiOmNhc2UgIlRSQU5TRkVSX1NUQVRFX0NPTVBMRVRFIjpyZXR1cm5bcEpdO2Nhc2UgIlRSQU5TRkVSX1NUQVRFX1BSRV9UUkFOU0ZFUiI6Y2FzZSAiVFJBTlNGRVJfU1RBVEVfVFJBTlNGRVJSSU5HIjpyZXR1cm4gYz9bcEpdOltxZWEscEpdO2Nhc2UgIlRSQU5TRkVSX1NUQVRFX1BBVVNFRF9CWV9VU0VSIjpyZXR1cm5bcmVhLHBKXTtjYXNlICJUUkFOU0ZFUl9TVEFURV9GQUlMRUQiOmNhc2UgIlRSQU5TRkVSX1NUQVRFX1dBSVRJTkdfRk9SX1BMQVlFUl9SRVNQT05TRV9SRUZSRVNIIjpyZXR1cm5bc2VhLHBKXTtkZWZhdWx0OnJldHVybltvSl19fTsKdWVhPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0ZWEoYSxiLGQpLm1hcChlPT57dmFyIGY9ZS50ZXh0LGg9ZS5pY29uVHlwZSxrPWUuaWk7ZT1lLktoO2Y9Zj97Y29udGVudDpmfTp2b2lkIDA7aD1oJiZ7c291cmNlczpbe2NsaWVudFJlc291cmNlOntpbWFnZU5hbWU6aH19XX07dmFyIGw9Xy5xZChjKTtpZihsKXtsZXQgbT1fLkIobCxfLkJJKSxuPV8uQihsLF8uQUkpO20mJms/bS5hY3Rpb249azpuJiZlJiYobi5hY3Rpb249ZSl9cmV0dXJue3RpdGxlOmYsbGVhZGluZ0ltYWdlOmgscmVuZGVyZXJDb250ZXh0OmwmJntjb21tYW5kQ29udGV4dDp7b25UYXA6e2lubmVydHViZUNvbW1hbmQ6bH19fX19KX07cUo9ZnVuY3Rpb24oYSl7YT1fLnNIKGEucmVuZGVyZXJDb250ZXh0KTtyZXR1cm4gXy5CKGEsXy5CSSk/LnZpZGVvSWR9O3JKPWZ1bmN0aW9uKGEpe2E9Xy5zSChhLnJlbmRlcmVyQ29udGV4dCk7cmV0dXJuIF8uQihhLF8uQUkpPy5wbGF5bGlzdElkfTsKc0o9ZnVuY3Rpb24oYSl7YT1fLkIoYSxfLlpDKTtyZXR1cm4hIWEmJl8udEgoYS5yZW5kZXJlckNvbnRleHQpfTt3ZWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGlzdEl0ZW1zPy5zb21lKGI9PntpZihzSihiKSlyZXR1cm4hMDtiPV8uQihiLHZlYSk7cmV0dXJuISFiJiYoXy50SChiLnJlbmRlcmVyQ29udGV4dCl8fHNKKGIuZGVmYXVsdExpc3RJdGVtKXx8c0ooYi50b2dnbGVkTGlzdEl0ZW0pKX0pfTt0Sj1mdW5jdGlvbihhLGIpe3ZhciBjPWEubGVuZ3RoO2FbYj09PS0xP2MtMTooYi0xK2MpJWNdPy5mb2N1cygpfTtpZWE9e2RDOiJQUEFEIixPQzoiUFBEUCIsTEY6IlBQT00iLHFHOiJQUFJDIix3RzoiUFBTRSIseEc6IlBQU1YifTt1Sj0iYVtocmVmXSBhW3RhYmluZGV4XSBhcmVhW2hyZWZdIGlmcmFtZSBbdGFiaW5kZXhdIFtjb250ZW50RWRpdGFibGVdIHN1bW1hcnkgaW5wdXQ6bm90KFtkaXNhYmxlZF0pIHNlbGVjdDpub3QoW2Rpc2FibGVkXSkgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSkgb2JqZWN0Om5vdChbZGlzYWJsZWRdKSIuc3BsaXQoIiAiKTsKakooKSYmdUoucHVzaCgiZGV0YWlsczpub3QoOmhhcyhzdW1tYXJ5KSkiKTt2YXIgbEo9dUouam9pbigiLCIpO3ZhciB2ZWE9bmV3IF8uSSgidG9nZ2xlYWJsZUxpc3RJdGVtVmlld01vZGVsIik7dmFyIHhlYT1fLkwoYT0+e3ZhciB7ZGF0YTpiLGNsYXNzTmFtZTpjLG5hOmQsSWE6ZSxCYzpmfT1fLkRDKGEse25hOiExLElhOiExLEJjOiExfSksaD1fLmNJKG49PnthOnt2YXIgcD1iKCkuZW50aXR5S2V5LHI9YigpLmVudGl0eVNlbGVjdG9yVHlwZTtpZihyKXN3aXRjaChyKXtjYXNlICJUT0dHTEVBQkxFX0xJU1RfSVRFTV9FTlRJVFlfU0VMRUNUT1JfVFlQRV9UT0dHTEVfTUVOVV9TRVJWSUNFX0lURU1fRU5USVRZIjppZighcClicmVhaztuPShuPV8ueEEuZUIobixwKSkmJm4uaXNUb2dnbGVkIT09dm9pZCAwP3tpc1RvZ2dsZWQ6bi5pc1RvZ2dsZWR9OnZvaWQgMDticmVhayBhO2RlZmF1bHQ6Xy5JcChuZXcgXy5YaigiRXJyb3I6IGVudGl0eVNlbGVjdG9yVHlwZSBkZWZpbmVkIGJ1dCBub3QgbWF0Y2hlZCBpbiBzZWxlY3Rvci4iLG4scikpfW49dm9pZCAwfXJldHVybiBufSksW2ssbF09Xy5BQygoKT0+aCgpPy5pc1RvZ2dsZWQhPT12b2lkIDA/aCgpPy5pc1RvZ2dsZWQ6YigpLmluaXRpYWxTdGF0ZT8uaXNUb2dnbGVkPz8KYigpLmluaXRpYWxJc1RvZ2dsZWQ/PyExKSxtPSgpPT57dmFyIG49aygpP2IoKS50b2dnbGVkTGlzdEl0ZW06YigpLmRlZmF1bHRMaXN0SXRlbTtyZXR1cm4gXy5CKF8uQihuLF8uWkMpPy5yZW5kZXJlckNvbnRleHQsXy5ZQyk/LmxhYmVsfTtyZXR1cm4gXy5LKCJ0b2dnbGVhYmxlLWxpc3QtaXRlbS12aWV3LW1vZGVsIix7ZWw6Xy5yRihfLnVIKCgpPT5iKCkucmVuZGVyZXJDb250ZXh0LHtvblRhcDoobixwKT0+e3AoKTtoKCk/LmlzVG9nZ2xlZCE9PXZvaWQgMHx8bCghaygpKX19KSksY2xhc3M6Xy5QKCJ0b2dnbGVhYmxlTGlzdEl0ZW1WaWV3TW9kZWxIb3N0IixjKX0sXy5LKF8uTyx7QTooKT0+e2lmKGsoKSl7dmFyIG49YigpLnRvZ2dsZWRMaXN0SXRlbTtuPV8uQihuLF8uWkMpfWVsc2Ugbj1iKCkuZGVmYXVsdExpc3RJdGVtLG49Xy5CKG4sXy5aQyk7cmV0dXJuIG59LHRoZW46bj0+Xy5LKF8uQ0Qse2RhdGE6bixpc1RvZ2dsZWQ6ayxuYTpkLElhOmUsQmM6ZixhcmlhTGFiZWw6bSwKYXJpYVByZXNzZWQ6a30pfSkpfSwiSyIpO3ZhciB5ZWE9Xy5hQSgiRE9XTkxPQUQiLHt9LCJEb3dubG9hZCIpLHplYT1fLmFBKCJERUxFVEVfRlJPTV9ET1dOTE9BRFMiLHt9LCJEZWxldGUgZnJvbSBkb3dubG9hZHMiKSxBZWE9Xy5hQSgiUkVUUlkiLHt9LCJSZXRyeSIpLEJlYT1fLmFBKCJQQVVTRV9ET1dOTE9BRElORyIse30sIlBhdXNlIGRvd25sb2FkaW5nIiksQ2VhPV8uYUEoIlJFU1VNRV9ET1dOTE9BRCIse30sIlJlc3VtZSBkb3dubG9hZCIpLG9KPXt0ZXh0OnllYSxpY29uVHlwZToiT0ZGTElORV9ET1dOTE9BRCIsaWk6IkFDVElPTl9BREQiLEtoOiJBQ1RJT05fQUREIn0scEo9e3RleHQ6emVhLGljb25UeXBlOiJERUxFVEUiLGlpOiJBQ1RJT05fUkVNT1ZFIixLaDoiQUNUSU9OX1JFTU9WRSJ9LHNlYT17dGV4dDpBZWEsaWNvblR5cGU6Ik9GRkxJTkVfRE9XTkxPQUQiLGlpOiJBQ1RJT05fUkVUUlkiLEtoOiJBQ1RJT05fUkVNT1ZFIn0scWVhPXt0ZXh0OkJlYSxpY29uVHlwZToiT0ZGTElORV9QQVVTRSIsaWk6IkFDVElPTl9QQVVTRSIsCktoOiJBQ1RJT05fUEFVU0UifSxyZWE9e3RleHQ6Q2VhLGljb25UeXBlOiJPRkZMSU5FX0RPV05MT0FEIixpaToiQUNUSU9OX1JFU1VNRSIsS2g6IkFDVElPTl9SRVNVTUUifTtfLkwoYT0+e3ZhciBiPV8uY0koaD0+e3ZhciBrPXFKKGEuZGF0YSgpKSxsPXJKKGEuZGF0YSgpKTtrPyhoPWguZW50aXRpZXMsaz8obD1fLnFBKGgsInRyYW5zZmVyIixfLnpJKGssInRyYW5zZmVyIikpKT9rPWwudHJhbnNmZXJTdGF0ZT8/IlRSQU5TRkVSX1NUQVRFX1VOS05PV04iOihsPV8ucUEoaCwib2ZmbGluZU9yY2hlc3RyYXRpb25BY3Rpb25XcmFwcGVyRW50aXR5IixfLnpJKGssIm9mZmxpbmVPcmNoZXN0cmF0aW9uQWN0aW9uV3JhcHBlckVudGl0eSIpKSxrPV8ucUEoaCwibWFpblZpZGVvRW50aXR5IixfLnpJKGssIm1haW5WaWRlb0VudGl0eSIpKSxrPWx8fGs/IlRSQU5TRkVSX1NUQVRFX1RSQU5TRkVSX0lOX1FVRVVFIjoiVFJBTlNGRVJfU1RBVEVfVU5LTk9XTiIpOms9IlRSQU5TRkVSX1NUQVRFX1VOS05PV04iKTprPWw/bGVhKGguZW50aXRpZXMsbCk6IlRSQU5TRkVSX1NUQVRFX1VOS05PV04iO3JldHVybiBrfSksYz1fLkRJKG1lYSwoKT0+cUooYS5kYXRhKCkpKSwKZD1fLmNJKGg9Pnt2YXIgaz1xSihhLmRhdGEoKSksbD1ySihhLmRhdGEoKSk7IWsmJmw/KGs9aC5lbnRpdGllcyxsPyhsPWdKKGwpLGs9Xy5xQShrLCJvZmZsaW5lYWJpbGl0eUVudGl0eSIsXy56SShsLCJvZmZsaW5lYWJpbGl0eUVudGl0eSIpKT8uYWRkVG9PZmZsaW5lQnV0dG9uU3RhdGU/PyJBRERfVE9fT0ZGTElORV9CVVRUT05fU1RBVEVfRU5BQkxFRCIpOms9IkFERF9UT19PRkZMSU5FX0JVVFRPTl9TVEFURV9ESVNBQkxFRCIpOihsPWguZW50aXRpZXMsaz8oaz1nSihrKSxrPV8ucUEobCwib2ZmbGluZWFiaWxpdHlFbnRpdHkiLF8uekkoaywib2ZmbGluZWFiaWxpdHlFbnRpdHkiKSk/LmFkZFRvT2ZmbGluZUJ1dHRvblN0YXRlPz8iQUREX1RPX09GRkxJTkVfQlVUVE9OX1NUQVRFX0VOQUJMRUQiKTprPSJBRERfVE9fT0ZGTElORV9CVVRUT05fU1RBVEVfRElTQUJMRUQiKTtyZXR1cm4ga30pLGU9KCk9PnVlYShiKCksYygpLF8uc0goYS5kYXRhKCkucmVuZGVyZXJDb250ZXh0KSwKISFySihhLmRhdGEoKSkpLGY9KCk9PmQoKSE9PSJBRERfVE9fT0ZGTElORV9CVVRUT05fU1RBVEVfRU5BQkxFRCI7cmV0dXJuIF8uSygieXQtZG93bmxvYWQtbGlzdC1pdGVtLXZpZXctbW9kZWwiLHtjbGFzczoieXREb3dubG9hZExpc3RJdGVtVmlld01vZGVsSG9zdCIsaGlkZGVuOmZ9LF8uSyhfLk8se0E6KCk9PiFmKCksdGhlbjooKT0+Xy5LKF8uTyx7QTplLHRoZW46aD0+Xy5LKF8uZ0cse3BhOmh9LGs9Pl8uSyhfLkNELHtkYXRhOmssbmE6YS5uYSxJYTphLklhLEJjOmEuQmMsZGlzYWJsZUhvcml6b250YWxQYWRkaW5nOmEuZGlzYWJsZUhvcml6b250YWxQYWRkaW5nfSkpfSl9KSl9LCJMIikuaWRvbUNvbXBhdD0hMDtfLkJEPV8uTCgoe2RhdGE6YSxuYTpiLGNlOmMsQmM6ZCxpc092ZXJsYXk6ZSxkaXNhYmxlSG9yaXpvbnRhbFBhZGRpbmc6Zn0pPT57dmFyIGg9KCk9PndlYShhKCkpJiZkPy4oKTtyZXR1cm4gXy5LKCJ5dC1saXN0LXZpZXctbW9kZWwiLHtjbGFzczpfLlAoInl0TGlzdFZpZXdNb2RlbEhvc3QiLHt5dExpc3RWaWV3TW9kZWxIb3N0S2Fpb3NTcGF0TmF2Ol8uZ3ImJmRvY3VtZW50LmJvZHkuaGFzQXR0cmlidXRlKCJzcGF0aWFsLW5hdmlnYXRpb24tZW5hYmxlZCIpJiZkb2N1bWVudC5ib2R5LmdldEF0dHJpYnV0ZSgic3BhdGlhbC1uYXZpZ2F0aW9uLWVuYWJsZWQiKT09PSJ0cnVlIn0pLHJvbGU6KCk9PmgoKT8ibWVudSI6Imxpc3QiLHN0eWxlOl8uSUUoeyJtYXgtaGVpZ2h0IjooKT0+e3ZhciBrPWEoKT8udmlzaWJsZUVsZW1lbnRDb3VudDtpZihrKXJldHVybmAkeyhrKy41KSo0MH1weGB9fSksIm9uOmtleWRvd24iOmZ1bmN0aW9uKGspe2lmKGQ/LigpJiZfLngoIndlYl9lbmFibGVfYXJyb3dfa2V5X25hdmlnYXRpb25faW5fZHJvcGRvd24iKSl7dmFyIGw9Cl8ubkooay5jdXJyZW50VGFyZ2V0KTtpZihsLmxlbmd0aCE9PTApe3ZhciBtPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwobCxkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtzd2l0Y2goay5rZXkpe2Nhc2UgIkFycm93RG93biI6ay5wcmV2ZW50RGVmYXVsdCgpO2xbKG0rMSklbC5sZW5ndGhdPy5mb2N1cygpO2JyZWFrO2Nhc2UgIkFycm93VXAiOmsucHJldmVudERlZmF1bHQoKTt0SihsLG0pO2JyZWFrO2Nhc2UgIlRhYiI6ay5wcmV2ZW50RGVmYXVsdCgpLGsuc2hpZnRLZXk/dEoobCxtKTpsWyhtKzEpJWwubGVuZ3RoXT8uZm9jdXMoKX19fX19LF8uSyhfLlcse2RhdGE6KCk9PmEoKS5saXN0SXRlbXN9LHtsaXN0SXRlbVZpZXdNb2RlbDooe2RhdGE6a30pPT5fLksoXy5DRCx7ZGF0YTprLElhOmgsbmE6YixjZTpjLEJjOmQsaXNPdmVybGF5OmUsZGlzYWJsZUhvcml6b250YWxQYWRkaW5nOmZ9KSx0b2dnbGVhYmxlTGlzdEl0ZW1WaWV3TW9kZWw6KHtkYXRhOmt9KT0+Xy5LKHhlYSwKe2RhdGE6ayxJYTpoLG5hOmIsQmM6ZH0pLGRvd25sb2FkTGlzdEl0ZW1WaWV3TW9kZWw6KCk9Pl8uSyhfLklCLG51bGwpLHN3aXRjaExpc3RJdGVtVmlld01vZGVsOigpPT5fLksoXy5JQixudWxsKX0pKX0sIk0iKTtfLkJELmlkb21Db21wYXQ9ITA7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoIkh4amxiYiIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLktKPW5ldyBfLkkoImJ1dHRvblZpZXdNb2RlbCIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnNEPV8uTChhPT57ZnVuY3Rpb24gYihuKXt2YXIgcD1jKCk7dmFyIHI9ZCgpO3IhPT12b2lkIDA/cD1yOihyPV8uQihwLnNlY29uZGFyeUJ1dHRvbixfLktKKSxwPV8uQihwLnByaW1hcnlCdXR0b24sXy5LSik/LmlzRnVsbFdpZHRoIT09ITF8fHImJnI/LmlzRnVsbFdpZHRoIT09ITE/MTozKTtyZXR1cm4gbj09PXB9dmFyIHtkYXRhOmMsdHlwZTpkLGRpc2FibGVQYWRkaW5nOmUsTmk6ZixYcTpofT1fLkRDKGEse3R5cGU6dm9pZCAwLGRpc2FibGVQYWRkaW5nOiExLE5pOiExfSksaz0oKT0+YygpLnN0YWNraW5nPT09IlBBTkVMX0ZPT1RFUl9TVEFDS0lOR19WRVJUSUNBTCIsbD0oKT0+KHtkaXNhYmxlZDpmKCksc3RhdGU6ZigpPyJkaXNhYmxlZCI6ImFjdGl2ZSJ9KSxtPSgpPT5jKCkubGVhZGluZ0xhYmVsfHxjKCkudHJhaWxpbmdMYWJlbDtyZXR1cm4gXy5LKCJ5dC1wYW5lbC1mb290ZXItdmlldy1tb2RlbCIse2NsYXNzOl8uUCgieXRQYW5lbEZvb3RlclZpZXdNb2RlbEhvc3QiLAp7eXRQYW5lbEZvb3RlclZpZXdNb2RlbEhpZGVEaXZpZGVyOigpPT5jKCkuc2hvdWxkSGlkZURpdmlkZXIseXRQYW5lbEZvb3RlclZpZXdNb2RlbERpc2FibGVQYWRkaW5nOmV9KX0sXy5LKF8uTyx7QTptLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dFBhbmVsRm9vdGVyVmlld01vZGVsVGV4dFJvdyIse3l0UGFuZWxGb290ZXJWaWV3TW9kZWxSb3dCb3R0b21QYWRkaW5nOigpPT57dmFyIG49YygpO3JldHVybiEoIW4ubGVhZGluZ0xhYmVsJiYhbi50cmFpbGluZ0xhYmVsfHwhbi5wcmltYXJ5QnV0dG9uJiYhbi5zZWNvbmRhcnlCdXR0b24pfX0pfSxfLksoXy5WLHt0ZXh0OigpPT5jKCkubGVhZGluZ0xhYmVsLGNsYXNzTmFtZTpfLlAoe3l0UGFuZWxGb290ZXJWaWV3TW9kZWxUZXh0UGFkZGluZzptfSl9KSxfLksoXy5WLHt0ZXh0OigpPT5jKCkudHJhaWxpbmdMYWJlbH0pKX0pLF8uSyhfLk8se0E6ayx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dFBhbmVsRm9vdGVyVmlld01vZGVsQnV0dG9uU3RhY2sifSwKXy5LKCJkaXYiLHtjbGFzczpfLlAoInl0UGFuZWxGb290ZXJWaWV3TW9kZWxQcmltYXJ5QnV0dG9uIix7eXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblN0YWNrVG9wQnV0dG9uOigpPT5jKCkuc2Vjb25kYXJ5QnV0dG9ufSl9LF8uSyhfLlcse2RhdGE6KCk9PmMoKS5wcmltYXJ5QnV0dG9ufSx7YnV0dG9uVmlld01vZGVsOih7ZGF0YTpufSk9Pl8uSyhfLkhELHtkYXRhOm4sYnV0dG9uT3ZlcnJpZGVzOmwsb25DbGljazpofSl9KSksXy5LKF8uVyx7ZGF0YTooKT0+YygpLnNlY29uZGFyeUJ1dHRvbn0se2J1dHRvblZpZXdNb2RlbDpfLkhEfSkpfSksXy5LKF8uTyx7QTooKT0+IWsoKSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOl8uUCgieXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvdyIse3l0UGFuZWxGb290ZXJWaWV3TW9kZWxCdXR0b25Sb3dUcmFpbGluZzooKT0+YigzKX0pfSxfLksoImRpdiIse2NsYXNzOl8uUCgieXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvd0xlZnRCdXR0b24iLAp7eXRQYW5lbEZvb3RlclZpZXdNb2RlbEJ1dHRvblJvd0Z1bGxXaWR0aDooKT0+YigxKSx5dFBhbmVsRm9vdGVyVmlld01vZGVsQnV0dG9uUm93SGlkZGVuOigpPT4hYygpLnNlY29uZGFyeUJ1dHRvbnx8YigwKSx5dFBhbmVsRm9vdGVyVmlld01vZGVsQnV0dG9uUm93U2hyaW5rOigpPT5iKDIpfSl9LF8uSyhfLlcse2RhdGE6KCk9PmMoKS5zZWNvbmRhcnlCdXR0b259LHtidXR0b25WaWV3TW9kZWw6Xy5IRH0pKSxfLksoImRpdiIse2NsYXNzOl8uUCgieXRQYW5lbEZvb3RlclZpZXdNb2RlbFByaW1hcnlCdXR0b24iLHt5dFBhbmVsRm9vdGVyVmlld01vZGVsQnV0dG9uUm93RnVsbFdpZHRoOigpPT5iKDApfHxiKDEpLHl0UGFuZWxGb290ZXJWaWV3TW9kZWxCdXR0b25Sb3dFeHBhbmQ6KCk9PmIoMil9KX0sXy5LKF8uVyx7ZGF0YTooKT0+YygpLnByaW1hcnlCdXR0b259LHtidXR0b25WaWV3TW9kZWw6KHtkYXRhOm59KT0+Xy5LKF8uSEQse2RhdGE6bixidXR0b25PdmVycmlkZXM6bCwKb25DbGljazpofSl9KSkpfSkpfSwiRmEiKTtfLnNELmlkb21Db21wYXQ9ITA7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoImxQV2prYiIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmVMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiakJpc2FmIik7cmV0dXJuIF8uVEN9O18uZkw9Xy5jRCgoKT0+Xy5lTCgpLCJiYWRnZVNoYXBlIik7Xy5ZdChfLkpELGE9PnthLkooImJhZGdlU2hhcGUiLCJqQmlzYWYiLF8uZUwpfSk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciB5ZmE9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4ieXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlTnpSYXRpbmdHcmVlbkNpcmNsZSI7Y2FzZSAxOnJldHVybiJ5dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVOelJhdGluZ1llbGxvd0NpcmNsZSI7Y2FzZSAyOnJldHVybiJ5dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVOelJhdGluZ1JlZFNxdWFyZSI7Y2FzZSAzOnJldHVybiJ5dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVCclJhdGluZ1NtYWxsR3JlZW5TcXVhcmUiO2Nhc2UgNDpyZXR1cm4ieXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdTbWFsbEJsdWVTcXVhcmUiO2Nhc2UgNTpyZXR1cm4ieXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdMYXJnZUJsdWVTcXVhcmUiO2Nhc2UgNjpyZXR1cm4ieXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdTbWFsbFllbGxvd1NxdWFyZSI7CmNhc2UgNzpyZXR1cm4ieXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdMYXJnZVllbGxvd1NxdWFyZSI7Y2FzZSA4OnJldHVybiJ5dEJyTnpCYWRnZVNoYXBlQmFkZ2VTdHlsZVR5cGVCclJhdGluZ1NtYWxsT3JhbmdlU3F1YXJlIjtjYXNlIDk6cmV0dXJuInl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nTGFyZ2VPcmFuZ2VTcXVhcmUiO2Nhc2UgMTA6cmV0dXJuInl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nU21hbGxSZWRTcXVhcmUiO2Nhc2UgMTE6cmV0dXJuInl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nTGFyZ2VSZWRTcXVhcmUiO2Nhc2UgMTI6cmV0dXJuInl0QnJOekJhZGdlU2hhcGVCYWRnZVN0eWxlVHlwZUJyUmF0aW5nU21hbGxCbGFja1NxdWFyZSI7Y2FzZSAxMzpyZXR1cm4ieXRCck56QmFkZ2VTaGFwZUJhZGdlU3R5bGVUeXBlQnJSYXRpbmdMYXJnZUJsYWNrU3F1YXJlIn19LHpmYT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAiQkFER0VfQ09NTUVSQ0UiOmNhc2UgIkJBREdFX01FTUJFUlNfT05MWSI6cmV0dXJuIDEwOwpjYXNlICJCQURHRV9ESVNDT1VOVCI6cmV0dXJuIDg7Y2FzZSAiQkFER0VfU1RBVFVTX05FVyI6cmV0dXJuIDEzO2Nhc2UgIkJBREdFX1BSRU1JVU0iOnJldHVybiA3O2Nhc2UgIkJBREdFX1BST01PVEVEIjpyZXR1cm4gNDtjYXNlICJCQURHRV9QUk9NT1RFRF9JTlZFUlRFRCI6cmV0dXJuIDU7Y2FzZSAiQkFER0VfTUVESUEiOnJldHVybiAxO2Nhc2UgIkJBREdFX1RJTUVMWSI6cmV0dXJuIDY7Y2FzZSAiQkFER0VfTElWRV9OT1ciOnJldHVybiAxOTtjYXNlICJCQURHRV9TVEFUVVNfQ09NUExFVEUiOnJldHVybiAxNDtjYXNlICJCQURHRV9TVEFUVVNfV0FSTklORyI6cmV0dXJuIDE1O2Nhc2UgIkJBREdFX1NUQVRVU19FUlJPUiI6cmV0dXJuIDE2O2Nhc2UgIkJBREdFX1NUQVRVU19ERUZBVUxUIjpyZXR1cm4gMTc7ZGVmYXVsdDpyZXR1cm4gMH19LEFmYT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAiQkFER0VfTlpfUkFUSU5HX0dSRUVOX0NJUkNMRSI6cmV0dXJuIDA7Y2FzZSAiQkFER0VfTlpfUkFUSU5HX1lFTExPV19DSVJDTEUiOnJldHVybiAxOwpjYXNlICJCQURHRV9OWl9SQVRJTkdfUkVEX1NRVUFSRSI6cmV0dXJuIDI7Y2FzZSAiQkFER0VfQlJfUkFUSU5HX1NNQUxMX0dSRUVOX1NRVUFSRSI6cmV0dXJuIDM7Y2FzZSAiQkFER0VfQlJfUkFUSU5HX1NNQUxMX0JMVUVfU1FVQVJFIjpyZXR1cm4gNDtjYXNlICJCQURHRV9CUl9SQVRJTkdfTEFSR0VfQkxVRV9TUVVBUkUiOnJldHVybiA1O2Nhc2UgIkJBREdFX0JSX1JBVElOR19TTUFMTF9ZRUxMT1dfU1FVQVJFIjpyZXR1cm4gNjtjYXNlICJCQURHRV9CUl9SQVRJTkdfTEFSR0VfWUVMTE9XX1NRVUFSRSI6cmV0dXJuIDc7Y2FzZSAiQkFER0VfQlJfUkFUSU5HX1NNQUxMX09SQU5HRV9TUVVBUkUiOnJldHVybiA4O2Nhc2UgIkJBREdFX0JSX1JBVElOR19MQVJHRV9PUkFOR0VfU1FVQVJFIjpyZXR1cm4gOTtjYXNlICJCQURHRV9CUl9SQVRJTkdfU01BTExfUkVEX1NRVUFSRSI6cmV0dXJuIDEwO2Nhc2UgIkJBREdFX0JSX1JBVElOR19MQVJHRV9SRURfU1FVQVJFIjpyZXR1cm4gMTE7CmNhc2UgIkJBREdFX0JSX1JBVElOR19TTUFMTF9CTEFDS19TUVVBUkUiOnJldHVybiAxMjtjYXNlICJCQURHRV9CUl9SQVRJTkdfTEFSR0VfQkxBQ0tfU1FVQVJFIjpyZXR1cm4gMTN9fTt2YXIgQmZhPV8uTCgoe2RhdGE6YX0pPT5fLksoImJyLW56LWJhZGdlLXNoYXBlIix7Y2xhc3M6Xy5QKCgpPT55ZmEoYSgpLnVpKSkscm9sZTooKT0+YSgpLmFjY2Vzc2liaWxpdHlUZXh0PyJpbWciOnZvaWQgMCwiYXJpYS1sYWJlbCI6KCk9PmEoKS5hY2Nlc3NpYmlsaXR5VGV4dH0sKCk9PmEoKT8udGV4dCksInVhIik7Xy5FRD1fLkwoYT0+e3ZhciBiPSgpPT57dmFyIGM9YS5kYXRhKCk7aWYoYyl7dmFyIGQ9ISFhLnpMPy4oKSxlPWEub2c/LigpLGY9YS5Eaj8uKCksaD1hLmVwPy4oKSxrPWEucXg/LigpO2E6c3dpdGNoKGMuYmFkZ2VTdHlsZSl7Y2FzZSAiQkFER0VfT1ZFUkxBWSI6dmFyIGw9ITA7YnJlYWsgYTtkZWZhdWx0Omw9ITF9Yz17dHlwZTpkPzE4OnpmYShjLmJhZGdlU3R5bGUpLHVpOkFmYShjLmJhZGdlU3R5bGUpLHRleHQ6Yy5iYWRnZVRleHQsaWNvbjpjLmljb25OYW1lLGlzT3ZlcmxheTpsLG9nOmV8fF8ueCgid2ViX21vZGVybl9iYWRnZV92aWV3X21vZGVsIiksYWNjZXNzaWJpbGl0eVRleHQ6Yy5hY2Nlc3NpYmlsaXR5TGFiZWx8fF8uQihjLnJlbmRlcmVyQ29udGV4dCxfLllDKT8ubGFiZWwsRGo6ZixlcDpoLG9BOmssbnM6Xy5CKGMudG9vbHRpcE9uSG92ZXIsXy5jSyk/LnRvb2x0aXBUZXh0fX1lbHNlIGM9dm9pZCAwO3JldHVybiBjfTtyZXR1cm4gXy5LKCJ5dC1iYWRnZS12aWV3LW1vZGVsIiwKe2NsYXNzOl8uUCgieXRCYWRnZVZpZXdNb2RlbEhvc3QiLGEuY2xhc3MpfSxfLksoXy5FRSxudWxsLF8uSyhfLkNFLHt3aGVuOigpPT4hIWIoKT8udWl9LCgpPT5fLksoQmZhLHtkYXRhOigpPT5iKCl9KSksXy5LKF8uQ0Use3doZW46KCk9PiEhYigpJiYhYigpLnVpfSwoKT0+Xy5LKF8uZkwse2RhdGE6KCk9PmIoKX0pKSkpfSwidmEiKTtfLkVELmlkb21Db21wYXQ9ITA7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoIlB6VWRaYiIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnZKPWZ1bmN0aW9uKGEsYixjLGQpe2R8fChkPXtidWJibGVzOiEwLGNhbmNlbGFibGU6ITEsY29tcG9zZWQ6ITB9KTtjIT09bnVsbCYmYyE9PXZvaWQgMCYmKGQuZGV0YWlsPWMpO3ZhciBlPW5ldyBDdXN0b21FdmVudChiLGQpO18uRUEoKCk9PnZvaWQgYS5kaXNwYXRjaEV2ZW50KGUpKTtyZXR1cm4gZX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uZEw9ZnVuY3Rpb24oKXt9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnJFPV8uTChhPT57dmFyIHtGSTpiLGZGOmMscEM6ZCxhc3NldFR5cGU6ZSxRZzpmLGtoOmgsdms6ayx6azpsLFB3Om0scWs6bixVbzpwLGJ1dHRvblN0eWxlOnIsRXo6dCxQcjp2LGNvbnRlbnRBbGlnbm1lbnQ6eixpc0Z1bGxzY3JlZW46RSxrcDpBLHdpZHRoOkYsbWF4SGVpZ2h0OkMsdXE6RyxudDpELHNxOkgsbHQ6Un09Xy5EQyhhLHtQdzowLFVvOjAsYnV0dG9uU3R5bGU6MCxjb250ZW50QWxpZ25tZW50OjAsbWF4SGVpZ2h0OjAsaXNGdWxsc2NyZWVuOiExLGtwOiExLGtoOiEwLHVxOiExLHNxOiExfSk7YT10PygpPT50KHtidXR0b25PdmVycmlkZXM6KCk9Pih7c3R5bGU6cj8uKCk9PT0xPyJjYWxsLXRvLWFjdGlvbiI6Im1vbm8iLHR5cGU6ImZpbGxlZCIsc3RhdGU6ImFjdGl2ZSIsc2l6ZToiTSJ9KSxjbGFzc05hbWU6Xy5QKHt5dFNwZWNEaWFsb2dMYXlvdXRCdXR0b246ITAseXRTcGVjRGlhbG9nTGF5b3V0RGlhbG9nQnV0dG9uc0lubGluZVN0cmV0Y2hlZDooKT0+cD8uKCk9PT0KMHx8cD8uKCk9PT0yfSl9KTp2b2lkIDA7dmFyIE09dj8oKT0+dih7YnV0dG9uT3ZlcnJpZGVzOntzdHlsZToibW9ubyIsdHlwZToib3V0bGluZSIsc3RhdGU6ImFjdGl2ZSIsc2l6ZToiTSJ9LGNsYXNzTmFtZTpfLlAoe3l0U3BlY0RpYWxvZ0xheW91dEJ1dHRvbjohMCx5dFNwZWNEaWFsb2dMYXlvdXREaWFsb2dCdXR0b25zSW5saW5lU3RyZXRjaGVkOigpPT5wPy4oKT09PTB8fHA/LigpPT09Mn0pfSk6dm9pZCAwLFM9KCk9PighIWYmJmgoKXx8ISFrfHwhIWwpJiZtKCk9PT0wO3JldHVybiBfLksoImRpYWxvZy1sYXlvdXQiLHtlbDpfLnJGKGIsXy5kTCksY2xhc3M6Xy5QKHt5dFNwZWNEaWFsb2dMYXlvdXRIb3N0OiEwLHl0U3BlY0RpYWxvZ0xheW91dEZ1bGxzY3JlZW46RSx5dFNwZWNEaWFsb2dMYXlvdXRSZXNwb25zaXZlOigpPT4hRSgpJiYhQSgpLHl0U3BlY0RpYWxvZ0xheW91dEV4dGVuZGVkTWF4SGVpZ2h0OigpPT5DKCk9PT0xLHl0U3BlY0RpYWxvZ0xheW91dEFzc2V0SW5zZXQ6KCk9PgplPy4oKT09PTF9KSxzdHlsZTooKT0+Rj8uKCkhPT12b2lkIDA/YHdpZHRoOiAke0YoKX1weDtgOiIifSxjP18uSygiZGl2Iix7Y2xhc3M6Xy5QKHt5dFNwZWNEaWFsb2dMYXlvdXRJY29uOiEwLHl0U3BlY0RpYWxvZ0xheW91dEljb25BYm92ZU1lZGlhOigpPT4hIWQmJm0oKT09PTEseXRTcGVjRGlhbG9nTGF5b3V0SWNvbkNlbnRlckFsaWduOigpPT56KCk9PT0xfSl9LF8uSyhjLG51bGwpKTpudWxsLF8uSyhfLk8se0E6Ryx0aGVuOigpPT5EP18uSygiZGl2Iix7Y2xhc3M6Inl0U3BlY0RpYWxvZ0xheW91dERpYWxvZ0hlYWRlckNvbnRhaW5lciJ9LF8uSyhELG51bGwpKTpudWxsLFc6KCk9Pl8uSyhfLklCLG51bGwsXy5LKF8uTyx7QTpTLHRoZW46KCk9Pl8uSyhZUCx7Y29udGVudEFsaWdubWVudDp6LHZrOmssems6bCxRZzpmLGtoOmgsVGw6ISFkfSl9KSxkP18uSygiZGl2Iix7Y2xhc3M6Inl0U3BlY0RpYWxvZ0xheW91dEFzc2V0In0sXy5LKGQse2NsYXNzTmFtZToieXRTcGVjRGlhbG9nTGF5b3V0QXNzZXRJdGVtIn0pKToKbnVsbCl9KSxfLksoImRpdiIse2NsYXNzOl8uUCh7eXRTcGVjRGlhbG9nTGF5b3V0Q29udGFpbmVyOigpPT4hQSgpLHl0U3BlY0RpYWxvZ0xheW91dENlbnRlckFsaWduOigpPT56Py4oKT09PTEseXRTcGVjRGlhbG9nTGF5b3V0VG9wUGFkZGluZzooKT0+IVMoKSYmIUEoKSYmIUcoKSYmIShmJiZoKCkmJiFEJiZtPy4oKT09PTEpfHwhIWQmJm0/LigpPT09MH0pfSxfLksoXy5PLHtBOigpPT5mJiZoKCkmJiFEJiZtPy4oKT09PTEsdGhlbjooKT0+Xy5LKFlQLHtjb250ZW50QWxpZ25tZW50Onosdms6ayx6azpsLFFnOmYsa2g6aCxUbDohMX0pfSksbj9fLksoImRpdiIse2NsYXNzOiJ5dFNwZWNEaWFsb2dMYXlvdXRDb250ZW50In0sXy5LKCJkaXYiLHtjbGFzczpfLlAoe3l0U3BlY0RpYWxvZ0xheW91dENvbnRlbnRJbm5lcjooKT0+IUEoKX0pfSxfLksobixudWxsKSkpOm51bGwsXy5LKF8uTyx7QTpILHRoZW46KCk9PlI/Xy5LKCJkaXYiLHtjbGFzczoieXRTcGVjRGlhbG9nTGF5b3V0Rm9vdGVyQ29udGFpbmVyIn0sCl8uSyhSLG51bGwpKTpudWxsfSksYXx8TT9fLksoUmlhLHthdzpfLlAoe3l0U3BlY0RpYWxvZ0xheW91dEZvb3RlckNvbnRhaW5lcjohMCx5dFNwZWNEaWFsb2dMYXlvdXRGb290ZXI6ITAseXRTcGVjRGlhbG9nTGF5b3V0RGlhbG9nQnV0dG9uc1N0YWNrZWQ6KCk9PnA/LigpPT09Mix5dFNwZWNEaWFsb2dMYXlvdXREaWFsb2dCdXR0b25zSW5saW5lRW5kOigpPT5wPy4oKT09PTF9KSxZdDphLGN1Ok19KTpudWxsKSl9LCJQYiIpOwp2YXIgWVA9Xy5MKGE9Pnt2YXIge2NvbnRlbnRBbGlnbm1lbnQ6Yix2azpjLFFnOmQsa2g6ZSx6azpmLFRsOmgsRXY6a309Xy5EQyhhLHtUbDohMSxFdjohMH0pO3JldHVybiBfLksoImRpdiIse2NsYXNzOl8uUCh7eXRTcGVjRGlhbG9nTGF5b3V0RGlhbG9nSGVhZGVyQ29udGFpbmVyOiEwLHl0U3BlY0RpYWxvZ0xheW91dERpYWxvZ0hlYWRlcjohMCx5dFNwZWNEaWFsb2dMYXlvdXREaWFsb2dIZWFkZXJBYm92ZUFzc2V0OmgseXRTcGVjRGlhbG9nTGF5b3V0Q2VudGVyQWxpZ246KCk9PmI/LigpPT09MSYmaygpfSl9LF8uSyhfLk8se0E6KCk9PmsoKSx0aGVuOigpPT5jP18uSygiZGl2Iix7Y2xhc3M6Inl0U3BlY0RpYWxvZ0xheW91dExlYWRpbmdBY3Rpb25IZWFkZXIifSxfLksoYyxudWxsKSk6bnVsbH0pLGQ/Xy5LKF8uTyx7QTplLHRoZW46KCk9Pl8uSygiaDIiLHtjbGFzczoieXRTcGVjRGlhbG9nTGF5b3V0VGl0bGUifSxfLksoZCxudWxsKSl9KTpudWxsLGY/Xy5LKCJkaXYiLG51bGwsCl8uSyhmLG51bGwpKTpudWxsKX0sIlFiIiksUmlhPV8uTCgoe2F3OmEsWXQ6YixjdTpjfSk9Pl8uSygiZGl2Iix7Y2xhc3M6YX0sYz9fLksoYyxudWxsKTpudWxsLGI/Xy5LKGIsbnVsbCk6bnVsbCksIlJiIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoInZpVVdWIik7CgpfLlhkKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uYk09bmV3IF8uVnMoIkxPVFRJRV9MT0FERVJfVE9LRU4iKTtfLmNNPV8uTCgoe2RhdGE6YSxjbGFzc05hbWU6YixhbmltYXRpb25OYW1lOmMsYW5pbWF0aW9uUmVmOmQsR0k6ZX0pPT57dmFyIGY9Xy52RSgibG90dGllLWNvbXBvbmVudCIpLGg7Xy5ZdSgoKT0+dm9pZCBoPy5kZXN0cm95KCkpO3ZhciBrO18ubkUoKCk9Pnt2YXIgbD1fLkJ2KGMpO2lmKGwhPT1rKXtrPWw7dmFyIG09e2FuaW1hdGlvbk5hbWU6bCxhbmltYXRpb25SZWY6Xy5CdihkKSwuLi5fLkJ2KGEpfTt0cnl7Xy55KCkucmVzb2x2ZShfLmJNKSgpLnRoZW4obj0+e2g/LmRlc3Ryb3koKTt2YXIgcD1lPy4oKT8udmFsdWU/P2YudmFsdWUscj1tLmFuaW1hdGlvblJlZix0PW0ubGlzdGVuZXJzO249bi5sb2FkQW5pbWF0aW9uKHtjb250YWluZXI6cCxyZW5kZXJlclNldHRpbmdzOm0ucmVuZGVyZXJTZXR0aW5ncywuLi5tLmFuaW1hdGlvbkNvbmZpZ30pO3ImJihyLmxvdHRpZUVsPW4pO2lmKHQpZm9yKGxldCBbdix6XW9mIE9iamVjdC5lbnRyaWVzKHQpKXI9diwodD16KSYmbi5hZGRFdmVudExpc3RlbmVyKHIsCnQpO2g9bn0pfWNhdGNoKG4pe2w9IkxvdHRpZUNvbXBvbmVudCBlcnJvci4iLG4ubWVzc2FnZSYmKGwrPWAgT3JpZ2luYWwgZGVzY3JpcHRpb246ICR7bi5tZXNzYWdlfWApLF8uY3cobixsKSxfLklwKG4pLG0ubGlzdGVuZXJzPy5lcnJvciYmbS5saXN0ZW5lcnMuZXJyb3Iobil9fX0sInhPQ2s1Iik7cmV0dXJuIF8uSyhfLk8se0E6KCk9PiFlPy4oKSx0aGVuOigpPT5fLksoImxvdHRpZS1jb21wb25lbnQiLHtjbGFzczpfLlAoInl0TG90dGllQ29tcG9uZW50SG9zdCIsYiksZWw6Zn0pfSl9LCJLYSIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgYmdhO2JnYT1mdW5jdGlvbihhLGIsYyxkKXtmdW5jdGlvbiBlKGgsayl7aWYoYi52YWx1ZT09PWsmJiFiLmNhbmNlbGxlZCl7Zm9yKDthLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYS5maXJzdENoaWxkKTthLmNsYXNzTGlzdC5hZGQoInl0U3BlY0ljb25TaGFwZUhvc3QiKTtoKGEsZCl9fXZhciBmPV8ueSgpLnJlc29sdmUoXy5YTCkucHkoYyk7dHlwZW9mIGY9PT0iZnVuY3Rpb24iPyhiLnZhbHVlPW51bGwsZShmLG51bGwpKTooYi52YWx1ZT1mLGYudGhlbihoPT57ZShoLGYpfSkpfTtfLlhMPW5ldyBfLlZzKCJJQ09OX01BTkFHRVJfVE9LRU4iKTtfLllMPV8uTChhPT57dmFyIGI9e3ZhbHVlOm51bGwsY2FuY2VsbGVkOiExfTtfLll1KCgpPT57Yi5jYW5jZWxsZWQ9ITB9KTt2YXIgYz1fLk4oYS5kYXRhLHtlcXVhbHM6KGQsZSk9PmQuaWNvbk5hbWU9PT1lLmljb25OYW1lJiZkLmljb25TdHlsZT09PWUuaWNvblN0eWxlJiZkLmljb25TaXplPT09ZS5pY29uU2l6ZSYmZC5seD09PWUubHgmJmQua3g9PT1lLmt4fSwiY2syNGpiIik7cmV0dXJuIF8uSygic3BhbiIse2NsYXNzOiJ5dC1pY29uLXNoYXBlIixlbDpfLnJGKGQ9PntfLm5FKCgpPT57dmFyIGU9YS5vcHRpb25zPy4oKSxmPWMoKTtiZ2EoZCxiLGYsZSl9LCJ2ODc4SmUiKX0pfSl9LCJIYSIpO18uWUwuaWRvbUNvbXBhdD0hMDsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEVQPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDE4OmNhc2UgMTk6Y2FzZSAyMDpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0sR2lhPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDM6cmV0dXJuInl0QmFkZ2VTaGFwZUFkIjtjYXNlIDE6cmV0dXJuInl0QmFkZ2VTaGFwZU1lZGlhIjtjYXNlIDI6cmV0dXJuInl0QmFkZ2VTaGFwZU1lZGlhT3ZlcmxheSI7Y2FzZSA0OnJldHVybiJ5dEJhZGdlU2hhcGVQcm9tb3RlZCI7Y2FzZSA1OnJldHVybiJ5dEJhZGdlU2hhcGVQcm9tb3RlZEludmVydGVkIjtjYXNlIDY6cmV0dXJuInl0QmFkZ2VTaGFwZVRpbWVseSI7Y2FzZSA3OnJldHVybiJ5dEJhZGdlU2hhcGVQcmVtaXVtIjtjYXNlIDg6cmV0dXJuInl0QmFkZ2VTaGFwZVNhbGUiO2Nhc2UgOTpyZXR1cm4ieXRCYWRnZVNoYXBlTWVtYmVyc2hpcCI7Y2FzZSAxMDpyZXR1cm4ieXRCYWRnZVNoYXBlQ29tbWVyY2UiO2Nhc2UgMTI6cmV0dXJuInl0QmFkZ2VTaGFwZUxpdmUiO2Nhc2UgMTM6cmV0dXJuInl0QmFkZ2VTaGFwZVN0YXR1c05ldyI7CmNhc2UgMTQ6cmV0dXJuInl0QmFkZ2VTaGFwZVN0YXR1c0NvbXBsZXRlIjtjYXNlIDE1OnJldHVybiJ5dEJhZGdlU2hhcGVTdGF0dXNXYXJuaW5nIjtjYXNlIDE2OnJldHVybiJ5dEJhZGdlU2hhcGVTdGF0dXNFcnJvciI7Y2FzZSAxNzpyZXR1cm4ieXRCYWRnZVNoYXBlU3RhdHVzRGVmYXVsdCI7Y2FzZSAxODpyZXR1cm4gXy54KCJlbmFibGVfbG9ja3VwX3JlZGVzaWduIik/Inl0QmFkZ2VTaGFwZVRodW1ibmFpbERlZmF1bHRSZWRlc2lnbiI6Inl0QmFkZ2VTaGFwZVRodW1ibmFpbERlZmF1bHQiO2Nhc2UgMTk6cmV0dXJuInl0QmFkZ2VTaGFwZVRodW1ibmFpbExpdmUiO2Nhc2UgMjA6cmV0dXJuInl0QmFkZ2VTaGFwZVRodW1ibmFpbFNwZWNpYWwiO2RlZmF1bHQ6cmV0dXJuInl0QmFkZ2VTaGFwZURlZmF1bHQifX07dmFyIEhpYT1uZXcgU2V0KFsiT1VUTElORV9CQUciXSk7Cl8uVEM9Xy5MKCh7ZGF0YTphfSk9Pnt2YXIgYj0oKT0+e3ZhciBkPWEoKS5pY29uO2lmKGQpYTp7ZD1fLktEKGQpPy5pY29uTmFtZT8/ZDtsZXQgaD0ieW91dHViZV9maWxsIjtIaWEuaGFzKGQudG9VcHBlckNhc2UoKSkmJihoPSJ5b3V0dWJlX291dGxpbmUiKTtsZXQgaz1oPT09InlvdXR1YmVfZmlsbCI/InlvdXR1YmVfb3V0bGluZSI6InlvdXR1YmVfZmlsbCIsbD1fLnkoKS5yZXNvbHZlKF8uWEwpO3ZhciBlPVsxMiwyNF07Zm9yKGYgb2YgZSl7ZT17aWNvbk5hbWU6ZCxpY29uU3R5bGU6aCxpY29uU2l6ZTpmfTtsZXQgbT17aWNvbk5hbWU6ZCxpY29uU3R5bGU6ayxpY29uU2l6ZTpmfTtpZihsLmooZSkpe3ZhciBmPWU7YnJlYWsgYX1pZihsLmoobSkpe2Y9bTticmVhayBhfX1mPXZvaWQgMH1lbHNlIGY9dm9pZCAwO3JldHVybiBmfSxbY109Xy5iSygoKT0+YSgpLm5zKTtyZXR1cm4gXy5LKCJiYWRnZS1zaGFwZSIse2VsOl8uckYoZD0+e2MoZCl9KSxjbGFzczpfLlAoInl0QmFkZ2VTaGFwZUhvc3QiLAooKT0+R2lhKGEoKS50eXBlKSx7eXRCYWRnZVNoYXBlT3ZlcmxheTooKT0+YSgpLmlzT3ZlcmxheSx5dEJhZGdlU2hhcGVBZHNJbmNsdWRlRG90OigpPT5hKCkuQm8seXRCYWRnZVNoYXBlVGh1bWJuYWlsQmFkZ2U6KCk9PkVQKGEoKS50eXBlKSx5dEJhZGdlU2hhcGVUaHVtYm5haWxCYWRnZVJlZGVzaWduOigpPT5fLngoImVuYWJsZV9sb2NrdXBfcmVkZXNpZ24iKSYmRVAoYSgpLnR5cGUpLHl0QmFkZ2VTaGFwZVN0YXR1c0JhZGdlOigpPT57YTpzd2l0Y2goYSgpLnR5cGUpe2Nhc2UgMTM6Y2FzZSAxNDpjYXNlIDE1OmNhc2UgMTY6Y2FzZSAxNzp2YXIgZD0hMDticmVhayBhO2RlZmF1bHQ6ZD0hMX1yZXR1cm4gZH0seXRCYWRnZVNoYXBlTm9UZXh0OigpPT4hYSgpLnRleHQseXRCYWRnZVNoYXBlSXNFbXB0eTooKT0+IWEoKS50ZXh0JiYhYSgpLmljb24mJiFhKCkuYW5pbWF0aW9uLHl0QmFkZ2VTaGFwZU1vZGVybjooKT0+YSgpLm9nfHxfLngoIndlYl9tb2Rlcm5fYmFkZ2Vfc2hhcGUiKSwKeXRCYWRnZVNoYXBlVHlwb2dyYXBoeTooKT0+e2E6e3ZhciBkPWEoKTtpZihkLm9BKXN3aXRjaChkLnR5cGUpe2Nhc2UgMDpjYXNlIDE6Y2FzZSAxMDpkPSEwO2JyZWFrIGE7ZGVmYXVsdDpkPSExfWVsc2UgZD0hMX1yZXR1cm4hZH0seXRCYWRnZVNoYXBlTWVkaXVtRm9udEFkQmFkZ2U6KCk9PmEoKS5HeSx5dEJhZGdlU2hhcGVMYXJnZUZvbnRBZEJhZGdlOigpPT5hKCkuanl9KSxzdHlsZTpfLklFKHsiYmFja2dyb3VuZC1jb2xvciI6KCk9PmEoKS5jdXN0b21Db2xvcnM/LmJhY2tncm91bmRDb2xvcn0pLHJvbGU6KCk9PmEoKS5hY2Nlc3NpYmlsaXR5VGV4dD8iaW1nIjp2b2lkIDAsImFyaWEtbGFiZWwiOigpPT5hKCkuYWNjZXNzaWJpbGl0eVRleHR9LF8uSyhfLk8se0E6KCk9PmEoKS5hbmltYXRpb24sdGhlbjpkPT5fLksoXy5jTSx7Y2xhc3NOYW1lOiJ5dEJhZGdlU2hhcGVJY29uIixkYXRhOmQsYW5pbWF0aW9uTmFtZTooKT0+ZCgpLmFuaW1hdGlvbkNvbmZpZy5uYW1lfHwiIn0pfSksCl8uSyhfLk8se0E6KCk9PmIoKSYmIWEoKT8uYW5pbWF0aW9uLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0QmFkZ2VTaGFwZUljb24ifSxfLksoXy5ZTCx7ZGF0YTooKT0+YigpfSkpfSksXy5LKCJkaXYiLHtjbGFzczpfLlAoInl0QmFkZ2VTaGFwZVRleHQiLHt5dEJhZGdlU2hhcGVUZXh0Q2xpcFRleHRPdmVyZmxvdzooKT0+YSgpLmVwLHl0QmFkZ2VTaGFwZVRleHRIYXNNdWx0aXBsZUJhZGdlc0luUm93OigpPT4oYSgpLkRqfHwwKT4xfSl9LCgpPT5hKCk/LnRleHQpKX0sInliIik7Xy5UQy5pZG9tQ29tcGF0PSEwOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLldkKCJqQmlzYWYiKTsKCl8uWGQoKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIEJKO18ud0o9ZnVuY3Rpb24oYSxiLGMsZD0wKXsoZD1fLmlxKGQpKSYmXy5meChhLmNsaWVudCxkLGIsYyl9O18ueEo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmdldFNjcmVlbkxheWVyJiZiLmdldFNjcmVlbkxheWVyKCk7Yi52aXN1YWxFbGVtZW50P18ud0ooYSxiLnZpc3VhbEVsZW1lbnQsdm9pZCAwLGMpOihfLkR4KCksYj1fLlZpKF8uQngoKS5qKS5iaW5kKF8uQngoKSkoYiksYS5DZihiLHZvaWQgMCxjKSl9O18ueUo9ZnVuY3Rpb24oYSxiLGMpe18uVmkoXy5meCkodm9pZCAwLGEsYixjLHZvaWQgMCl9O18ueko9ZnVuY3Rpb24oYSxiPTApeyhiPV8uaXEoYikpJiZhJiZfLnlKKGIsXy5VdyhhKSl9O18uQUo9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5nRS5wdXNoKHtjb21tYW5kOmEsc291cmNlRGF0YTpiLGNvbW1hbmRDb250ZXh0OmR9KTtjJiZhLmNsaWNrVHJhY2tpbmdQYXJhbXMmJl8uekooYS5jbGlja1RyYWNraW5nUGFyYW1zKX07CkJKPWZ1bmN0aW9uKGEpe2lmKCFhPy5ydW5zKXJldHVybiEwO2ZvcihsZXQgYiBvZiBhLnJ1bnMpaWYoYi5icmFja2V0fHxiLmVycm9yVW5kZXJsaW5lfHxiLmRlZW1waGFzaXplfHxfLkIoYixfLlhjYSl8fF8uQihiLF8uWWNhKSlyZXR1cm4hMTtyZXR1cm4hMH07Xy5DSj1mdW5jdGlvbihhKXtyZXR1cm4gYT9hLnNpbXBsZVRleHQ/YS5zaW1wbGVUZXh0OmEucnVucz9hLnJ1bnMubWFwKGI9PmIudGV4dCkuam9pbigiIik6IiI6IiJ9O18uREo9ZnVuY3Rpb24oYSl7aWYoYSlyZXR1cm4gYS5sYWJlbD9hLmxhYmVsOl8uREooYS5hY2Nlc3NpYmlsaXR5RGF0YSl9O18uRGVhPW5ldyBfLkkoInlwY09mZmVyc0VuZHBvaW50Iik7Xy5FZWE9bmV3IF8uSSgieXBjR2V0T2ZmZXJzRW5kcG9pbnQiKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGhlbWUtbWV0YSIpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAiKTtfLkZlYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyIik7Xy5FSj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyLWNvbnRhaW5lci1pZCIpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGF5ZXItY29udHJvbC1jb250YWluZXIiKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyLWVuZHNjcmVlbi1jb250YWluZXIiKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyLXNob3J0cy1jb250YWluZXIiKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGxheWVyLWNpbmVtYXRpY3MtY29udGFpbmVyIik7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZ1bGwtc2NyZWVuLWNvbnRlbnQtaWQiKTtfLkZKPV8uS3koImluaXQiKTt2YXIgR0o7CkdKPV8uTCgoe3J1bjphLG1hOmJ9KT0+e3ZhciBjPSgpPT5hKCkubmF2aWdhdGlvbkVuZHBvaW50O3JldHVybiBfLksoXy5FRSxudWxsLF8uSyhfLkNFLHt3aGVuOigpPT5hKCkuYm9sZH0sKCk9Pnt2YXIgZD1fLk4oKCk9Pih7Li4uYSgpLGJvbGQ6dm9pZCAwfSksdm9pZCAwLCJTbFpsNiIpO3JldHVybiBfLksoInN0cm9uZyIse2NsYXNzOiJmb3JtYXR0ZWQtc3RyaW5nLWJvbGQifSxfLksoR0ose3J1bjpkLG1hOmJ9KSl9KSxfLksoXy5DRSx7d2hlbjooKT0+YSgpLmRlZW1waGFzaXplfSwoKT0+e3ZhciBkPV8uTigoKT0+KHsuLi5hKCksZGVlbXBoYXNpemU6dm9pZCAwfSksdm9pZCAwLCJ5SXh3ZGQiKTtyZXR1cm4gXy5LKCJzcGFuIix7Y2xhc3M6ImZvcm1hdHRlZC1zdHJpbmctZGVlbXBoYXNpemUifSxfLksoR0ose3J1bjpkLG1hOmJ9KSl9KSxfLksoXy5DRSx7d2hlbjooKT0+YSgpLml0YWxpY3N9LCgpPT57dmFyIGQ9Xy5OKCgpPT4oey4uLmEoKSxpdGFsaWNzOnZvaWQgMH0pLHZvaWQgMCwKIlFOWEhIYiIpO3JldHVybiBfLksoImVtIixudWxsLF8uSyhHSix7cnVuOmQsbWE6Yn0pKX0pLF8uSyhfLkNFLHt3aGVuOigpPT5hKCkudGV4dENvbG9yfSwoKT0+e3ZhciBkPV8uTigoKT0+KHsuLi5hKCksdGV4dENvbG9yOnZvaWQgMH0pLHZvaWQgMCwieEplRzNiIik7cmV0dXJuIF8uSygic3BhbiIse3N0eWxlOigpPT5gY29sb3I6ICR7Xy5KRShhKCkudGV4dENvbG9yKX1gfSxfLksoR0ose3J1bjpkLG1hOmJ9KSl9KSxfLksoXy5DRSx7d2hlbjooKT0+YSgpLnN0cmlrZXRocm91Z2h9LCgpPT57dmFyIGQ9Xy5OKCgpPT4oey4uLmEoKSxzdHJpa2V0aHJvdWdoOnZvaWQgMH0pLHZvaWQgMCwiWENSNmhkIik7cmV0dXJuIF8uSygicyIsbnVsbCxfLksoR0ose3J1bjpkLG1hOmJ9KSl9KSxfLksoXy5DRSx7d2hlbjooKT0+IWEoKS5uYXZpZ2F0aW9uRW5kcG9pbnR8fGIoKX0sKCk9Pl8uSyhfLklCLG51bGwsKCk9PmEoKS50ZXh0KSksXy5LKF8uREUsbnVsbCwoKT0+Xy5LKF8ubkgse2NvbW1hbmQ6YywKdGFiSW5kZXg6MH0sXy5LKF8uSUIsbnVsbCwoKT0+YSgpLnRleHQpKSkpfSwiTiIpOwpfLklKPV8uTCgoe2RhdGE6YSwuLi5ifSk9Pnt2YXIgYz0oKT0+Yi5tYT8uKCksZD0oKT0+Yi51Yj8uKCksZT0oKT0+Yi5JZD8uKCksZj0oKT0+Yi51c2VySW5wdXQ/LigpLGg9KCk9PmIuWGE/LigpLGs9KCk9PmIucmc/LigpPz8hMDtyZXR1cm4gXy5LKF8uRUUsbnVsbCxfLksoXy5DRSx7d2hlbjooKT0+IShhPy4oKSYmT2JqZWN0LmtleXMoYSgpKS5sZW5ndGgpfSwoKT0+bnVsbCksXy5LKF8uQ0Use3doZW46KCk9Pnt2YXIgbDtpZihsPUJKKGEoKSkpbD1hKCksbD0hIShsPy5jb250ZW50IT09dm9pZCAwP2w6Xy5BRihsKSkuY29udGVudDtyZXR1cm4gbH19LCgpPT5fLksoXy5WLHt0ZXh0OmEsYXJpYUxhYmVsOigpPT5fLkRKKGEoKS5hY2Nlc3NpYmlsaXR5Py5hY2Nlc3NpYmlsaXR5RGF0YSksWGE6aCxtYTpjLHViOmQscmc6ayxJZDplLHVzZXJJbnB1dDpmLFl1OiEwfSkpLF8uSyhfLkNFLHt3aGVuOigpPT5CSihhKCkpfSwoKT0+bnVsbCksXy5LKF8uQ0Use3doZW46KCk9Pnt2YXIgbDsKaWYoKGw9YT8uKCkmJk9iamVjdC5rZXlzKGEoKSkubGVuZ3RoKSYmIShsPWEoKS5hY2Nlc3NpYmlsaXR5KSlhOntsPWEoKTtpZihsLnJ1bnMpZm9yKGxldCBtIG9mIGwucnVucylpZihtLm5hdmlnYXRpb25FbmRwb2ludCl7bD0hMTticmVhayBhfWw9ITB9cmV0dXJuIGwmJmEoKS5ydW5zJiZhKCkucnVucy5sZW5ndGg+MX19LCgpPT5fLksoInNwYW4iLHsiYXJpYS1sYWJlbCI6KCk9Pl8uREooYSgpLmFjY2Vzc2liaWxpdHk/LmFjY2Vzc2liaWxpdHlEYXRhKSxjbGFzczoiZm9ybWF0dGVkLXN0cmluZy10ZXh0Iixyb2xlOiJ0ZXh0In0sXy5LKEhKLHtzaW1wbGVUZXh0OigpPT5hKCkuc2ltcGxlVGV4dCxydW5zOigpPT5hKCkucnVucyxtYTpjfSkpKSxfLksoXy5ERSxudWxsLCgpPT5fLksoSEose3NpbXBsZVRleHQ6KCk9PmEoKS5zaW1wbGVUZXh0LHJ1bnM6KCk9PmEoKS5ydW5zLG1hOmN9KSkpfSwiTyIpO18uSUouaWRvbUNvbXBhdD0hMDsKdmFyIEhKPV8uTCgoe3NpbXBsZVRleHQ6YSxydW5zOmIsbWE6Y30pPT5fLksoXy5PLHtBOigpPT5hJiZhKCksdGhlbjpkPT5kLFc6KCk9Pl8uSyhfLk8se0E6KCk9PmImJmIoKSx0aGVuOmQ9Pl8uSyhfLmdHLHtwYTpkLHRiOiJJTkRFWCJ9LGU9Pl8uSyhHSix7cnVuOmUsbWE6KCk9PiEhYz8uKCl9KSl9KX0pLCJQIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uTEo9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJaUUt4MSIpO3JldHVybiBfLlZDfTtfLk1KPV8uY0QoKCk9Pl8uTEooKSwiYnV0dG9uT3JBbmNob3IiKTtfLll0KF8uSkQsYT0+e2EuSigiYnV0dG9uT3JBbmNob3IiLCJaUUt4MSIsXy5MSil9KTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIFlLO1lLPWE9PmI9PigpPT5iPy4oKSE9PXZvaWQgMD9TdHJpbmcoYigpKSthOnZvaWQgMDtfLlpLPVlLKCJweCIpO18ueGZhPVlLKCIlIik7Xy4kSz1ZSygicyIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmFMPWZ1bmN0aW9uKC4uLmEpe3ZhciBiPVtdO2ZvcihsZXQgYyBvZiBhKWlmKGMpaWYodHlwZW9mIGM9PT0ic3RyaW5nIiliLnB1c2goYyk7ZWxzZSBmb3IobGV0IFtkLGVdb2YgT2JqZWN0LmVudHJpZXMoYykpYT1kLGUmJmIucHVzaChhKTtyZXR1cm4gYi5qb2luKCIgIil9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmJMPW5ldyBfLlZzKCJQQU5FTF9DT05UUk9MTEVSX1RPS0VOIik7Xy5jTD1uZXcgXy5WcygiU0hFRVRfQ09OVFJPTExFUl9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmdMPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgicjlLTWpiIik7cmV0dXJuIF8uJEN9O18uaEw9Xy5jRCgoKT0+Xy5nTCgpLCJ1cHNlbGxWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigidXBzZWxsVmlld01vZGVsIiwicjlLTWpiIixfLmdMKX0pO18uaUw9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJWY0dTOCIpO3JldHVybiBfLkVDfTtfLmpMPV8uY0QoKCk9Pl8uaUwoKSwibWluaUFwcFNjb3JlQ2hhbGxlbmdlVmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooIm1pbmlBcHBTY29yZUNoYWxsZW5nZVZpZXdNb2RlbCIsIlZjR1M4IixfLmlMKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlZMPW5ldyBfLkkoImJ1dHRvblJlbmRlcmVyIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV0w9ZnVuY3Rpb24oYSl7cmV0dXJue3J1bnM6W3t0ZXh0OmF9XX19Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlpMPV8uTChhPT57KHt3cmFwcGVyOmF9PV8uREMoYSx7d3JhcHBlcjohMX0pKTtyZXR1cm4gXy5LKF8uTyx7QTphLHRoZW46KCk9Pl8uSygieXQtc3Bpbm5lci1zaGFwZSIse2NsYXNzOiJ5dFNwaW5uZXJTaGFwZVdyYXBwZXIifSxfLksoImRpdiIse2NsYXNzOiJ5dFNwaW5uZXJTaGFwZVNwaW5uZXIifSkpLFc6KCk9Pl8uSygieXQtc3Bpbm5lci1zaGFwZSIse2NsYXNzOiJ5dFNwaW5uZXJTaGFwZVNwaW5uZXIifSl9KX0sIklhIik7Xy5aTC5pZG9tQ29tcGF0PSEwOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLiRMPXtFbzohMSxscTohMSx2cDoiIix1cDoiIix3cjohMSxDcTohMX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uYU09ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT0wfHxhPT09MX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBlTSxjZ2EsZGdhLGZNLGdNLGlNLGpNLGVnYSxnZ2EsaWdhLGtnYSxtZ2Esb2dhLHBNLHBnYSxxZ2Esbk07Xy5kTT1mdW5jdGlvbihhKXtmb3IobGV0IGIgaW4gYSlyZXR1cm4gYn07ZU09ZnVuY3Rpb24oLi4uYSl7cmV0dXJuIGEubGVuZ3RoPT09MD9iPT5iOmEubGVuZ3RoPT09MT9hWzBdOmEucmVkdWNlKChiLGMpPT4oLi4uZCk9PmIoYyguLi5kKSkpfTtjZ2E9ZnVuY3Rpb24oKXt2YXIgYT1bXTtyZXR1cm4gYj0+KGMsZCk9PntjPWIoYyxkKTt2YXIgZT0oKT0+e3Rocm93IEVycm9yKCJRYiIpO30sZj17Z2V0U3RhdGU6Yy5nZXRTdGF0ZSxkaXNwYXRjaDooaCwuLi5rKT0+ZShoLC4uLmspfTtkPWEubWFwKGg9PmgoZikpO2U9ZU0oLi4uZCkoYy5kaXNwYXRjaCk7cmV0dXJuey4uLmMsZGlzcGF0Y2g6ZX19fTsKZGdhPWZ1bmN0aW9uKGEpe09iamVjdC5rZXlzKGEpLmZvckVhY2goYj0+e3ZhciBjPWFbYl07aWYodHlwZW9mIGModm9pZCAwLHt0eXBlOl8ubUF9KT09PSJ1bmRlZmluZWQiKXRocm93IEVycm9yKCJSYmAiK2IpO2lmKHR5cGVvZiBjKHZvaWQgMCx7dHlwZTpgQEByZWR1eC9QUk9CRV9VTktOT1dOX0FDVElPTiR7Xy5sQSgpfWB9KT09PSJ1bmRlZmluZWQiKXRocm93IEVycm9yKCJTYmAiK2IrImAiK18ubUEpO30pfTsKZk09ZnVuY3Rpb24oYSl7dmFyIGI9T2JqZWN0LmtleXMoYSksYz17fTtmb3IobGV0IGY9MDtmPGIubGVuZ3RoO2YrKyl7bGV0IGg9YltmXTt0eXBlb2YgYVtoXT09PSJmdW5jdGlvbiImJihjW2hdPWFbaF0pfXZhciBkPU9iamVjdC5rZXlzKGMpO3RyeXtkZ2EoYyl9Y2F0Y2goZil7dmFyIGU9Zn1yZXR1cm4gZnVuY3Rpb24oZj17fSxoKXtpZihlKXRocm93IGU7dmFyIGs9ITEsbD17fTtmb3IobGV0IG09MDttPGQubGVuZ3RoO20rKyl7bGV0IG49ZFttXSxwPWZbbl0scj0oMCxjW25dKShwLGgpO2lmKHR5cGVvZiByPT09InVuZGVmaW5lZCIpdGhyb3cgZj1oJiZoLnR5cGUsRXJyb3IoIlRiYCIrKGY/YCIke1N0cmluZyhmKX0iYDoiKHVua25vd24gdHlwZSkiKSsiYCIrbik7bFtuXT1yO2s9a3x8ciE9PXB9cmV0dXJuKGs9a3x8ZC5sZW5ndGghPT1PYmplY3Qua2V5cyhmKS5sZW5ndGgpP2w6Zn19OwpnTT1mdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZCgpe2lmKG4pdGhyb3cgRXJyb3IoIlViIik7cmV0dXJuIGt9ZnVuY3Rpb24gZShyKXtpZih0eXBlb2YgciE9PSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IoIlZiYCIrdHlwZW9mIHIpO2lmKG4pdGhyb3cgRXJyb3IoIldiIik7dmFyIHQ9ITA7bT09PWwmJihtPWwuc2xpY2UoKSk7bS5wdXNoKHIpO3JldHVybiBmdW5jdGlvbigpe2lmKHQpe2lmKG4pdGhyb3cgRXJyb3IoIlhiIik7dD0hMTttPT09bCYmKG09bC5zbGljZSgpKTt2YXIgdj1tLmluZGV4T2Yocik7bS5zcGxpY2UodiwxKTtsPW51bGx9fX1mdW5jdGlvbiBmKHIpe2lmKHR5cGVvZiByIT09Im9iamVjdCJ8fHI9PT1udWxsKXZhciB0PSExO2Vsc2V7Zm9yKHQ9cjtPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkhPT1udWxsOyl0PU9iamVjdC5nZXRQcm90b3R5cGVPZih0KTt0PU9iamVjdC5nZXRQcm90b3R5cGVPZihyKT09PXR9aWYoIXQpdGhyb3cgRXJyb3IoIlliYCIrdHlwZW9mIHIpOwppZih0eXBlb2Ygci50eXBlPT09InVuZGVmaW5lZCIpdGhyb3cgRXJyb3IoIlpiIik7aWYobil0aHJvdyBFcnJvcigiJGIiKTt0cnl7bj0hMCxrPWgoayxyKX1maW5hbGx5e249ITF9dD1sPW07Zm9yKGxldCB2PTA7djx0Lmxlbmd0aDt2KyspKDAsdFt2XSkoKTtyZXR1cm4gcn1pZih0eXBlb2YgYj09PSJmdW5jdGlvbiImJnR5cGVvZiBjPT09ImZ1bmN0aW9uInx8dHlwZW9mIGM9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgYXJndW1lbnRzWzNdPT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiYWMiKTt0eXBlb2YgYj09PSJmdW5jdGlvbiImJnR5cGVvZiBjPT09InVuZGVmaW5lZCImJihjPWIsYj12b2lkIDApO2lmKHR5cGVvZiBjIT09InVuZGVmaW5lZCIpe2lmKHR5cGVvZiBjIT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiYmNgIit0eXBlb2YgYyk7cmV0dXJuIGMoZ00pKGEsYil9aWYodHlwZW9mIGEhPT0iZnVuY3Rpb24iKXRocm93IEVycm9yKCJjY2AiK3R5cGVvZiBhKTt2YXIgaD1hLGs9CmIsbD1bXSxtPWwsbj0hMTtmKHt0eXBlOl8ubUF9KTt2YXIgcD17ZGlzcGF0Y2g6ZixzdWJzY3JpYmU6ZSxnZXRTdGF0ZTpkLHJlcGxhY2VSZWR1Y2VyOmZ1bmN0aW9uKHIpe2lmKHR5cGVvZiByIT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiZGNgIit0eXBlb2Ygcik7aD1yO2Yoe3R5cGU6Xy5SYWF9KTtyZXR1cm4gcH0sW18ubkFdOmZ1bmN0aW9uKCl7cmV0dXJue3N1YnNjcmliZShyKXtmdW5jdGlvbiB0KCl7ci5uZXh0JiZyLm5leHQoZCgpKX1pZih0eXBlb2YgciE9PSJvYmplY3QifHxyPT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJlY2AiK3R5cGVvZiByKTt0KCk7cmV0dXJue3Vuc3Vic2NyaWJlOmUodCl9fSxbXy5uQV0oKXtyZXR1cm4gdGhpc319fX07cmV0dXJuIHB9OwpfLmhNPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD17Li4uYX07Zm9yKGxldCBlIG9mIE9iamVjdC5rZXlzKGIpKXtsZXQgZj1hW2VdLGg9YltlXTtpZihoPT09dm9pZCAwKWRlbGV0ZSBkW2VdO2Vsc2UgaWYoZj09PXZvaWQgMClkW2VdPWg7ZWxzZSBpZihBcnJheS5pc0FycmF5KGgpJiZBcnJheS5pc0FycmF5KGYpKWRbZV09Yz9bLi4uZiwuLi5oXTpoO2Vsc2UgaWYoIUFycmF5LmlzQXJyYXkoaCkmJl8uQWEoaCkmJiFBcnJheS5pc0FycmF5KGYpJiZfLkFhKGYpKWRbZV09Xy5oTShmLGgsYyk7ZWxzZSBpZih0eXBlb2YgaD09PXR5cGVvZiBmKWRbZV09aDtlbHNlIHJldHVybiBiPW5ldyBfLlhqKCJBdHRlbXB0ZWQgdG8gbWVyZ2UgZmllbGRzIG9mIGRpZmZlcmluZyB0eXBlcy4iLHtuYW1lOiJEZWVwTWVyZ2VFcnJvciIsa2V5OmUsSGo6Zix1cGRhdGVWYWx1ZTpofSksXy5HcChiKSxhfXJldHVybiBkfTsKaU09ZnVuY3Rpb24oYSxiLGMsZCl7aWYoZD09PXZvaWQgMCl7bGV0IHtbY106ZSwuLi5mfT1hW2JdfHx7fTtyZXR1cm57Li4uYSxbYl06Zn19cmV0dXJuey4uLmEsW2JdOnsuLi5hW2JdLFtjXTpkfX19O2pNPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YVtiXXx8e30saD1mW2NdO2lmKCFoJiYhXy54KCJ3ZWJfZW5hYmxlX2VudGl0eV91cHNlcnRfb25fdXBkYXRlIikpcmV0dXJuIGE7ZD1fLmhNKGh8fHt9LGQsZT09PSJSRVBFQVRFRF9GSUVMRFNfTUVSR0VfT1BUSU9OX0FQUEVORCIpO3JldHVybnsuLi5hLFtiXTp7Li4uZixbY106ZH19fTsKZWdhPWZ1bmN0aW9uKGE9e30sYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiRU5USVRZX0xPQURFRCI6cmV0dXJuIGIucGF5bG9hZC5yZWR1Y2UoKGMsZCk9Pnt2YXIgZT1kLm9wdGlvbnM/LnBlcnNpc3RlbmNlT3B0aW9uO2lmKGUmJmUhPT0iRU5USVRZX1BFUlNJU1RFTkNFX09QVElPTl9VTktOT1dOIiYmZSE9PSJFTlRJVFlfUEVSU0lTVEVOQ0VfT1BUSU9OX0lOTUVNT1JZX0FORF9QRVJTSVNUIilyZXR1cm4gYztpZighZC5lbnRpdHlLZXkpcmV0dXJuIF8uR3AoRXJyb3IoImdjIikpLGM7aWYoZC50eXBlPT09IkVOVElUWV9NVVRBVElPTl9UWVBFX1JFUExBQ0UiKXtpZighZC5wYXlsb2FkKXJldHVybiBkPW5ldyBfLlhqKCJSRVBMQUNFIGVudGl0eSBtdXRhdGlvbiBpcyBtaXNzaW5nIGEgcGF5bG9hZCIse2VudGl0eUtleTpkLmVudGl0eUtleX0pLF8uR3AoZCksYzt2YXIgZj1fLmRNKGQucGF5bG9hZCk7cmV0dXJuIGlNKGMsZixkLmVudGl0eUtleSxkLnBheWxvYWRbZl0pfWlmKGQudHlwZT09PQoiRU5USVRZX01VVEFUSU9OX1RZUEVfREVMRVRFIil7YTp7ZD1kLmVudGl0eUtleTt0cnl7bGV0IGg9Xy5HSChkKS5lbnRpdHlUeXBlO2Y9aU0oYyxoLGQpO2JyZWFrIGF9Y2F0Y2goaCl7aWYoaCBpbnN0YW5jZW9mIEVycm9yKXtkPW5ldyBfLlhqKCJGYWlsZWQgdG8gZGVzZXJpYWxpemUgZW50aXR5IGtleSIse2VudGl0eUtleTpkLG9yaWdpbmFsTWVzc2FnZTpoLm1lc3NhZ2V9KTtfLkdwKGQpO2Y9YzticmVhayBhfXRocm93IGg7fWY9dm9pZCAwfXJldHVybiBmfWlmKGQudHlwZT09PSJFTlRJVFlfTVVUQVRJT05fVFlQRV9VUERBVEUiKXtpZighZC5wYXlsb2FkKXJldHVybiBkPW5ldyBfLlhqKCJVUERBVEUgZW50aXR5IG11dGF0aW9uIGlzIG1pc3NpbmcgYSBwYXlsb2FkIix7ZW50aXR5S2V5OmQuZW50aXR5S2V5fSksXy5HcChkKSxjO2Y9Xy5kTShkLnBheWxvYWQpO3JldHVybiBqTShjLGYsZC5lbnRpdHlLZXksZC5wYXlsb2FkW2ZdLGQuZmllbGRNYXNrPy5tZXJnZU9wdGlvbnM/LnJlcGVhdGVkRmllbGRzTWVyZ2VPcHRpb24pfXJldHVybiBjfSwKYSk7Y2FzZSAiUkVQTEFDRV9FTlRJVFkiOnJldHVybiBpTShhLGIucGF5bG9hZC5lbnRpdHlUeXBlLGIucGF5bG9hZC5rZXksYi5wYXlsb2FkLnhsKTtjYXNlICJSRVBMQUNFX0VOVElUSUVTIjpyZXR1cm4gT2JqZWN0LmtleXMoYi5wYXlsb2FkKS5yZWR1Y2UoKGMsZCk9Pnt2YXIgZT1iLnBheWxvYWRbZF07cmV0dXJuIE9iamVjdC5rZXlzKGUpLnJlZHVjZSgoZixoKT0+aU0oZixkLGgsZVtoXSksYyl9LGEpO2Nhc2UgIlVQREFURV9FTlRJVFkiOnJldHVybiBqTShhLGIucGF5bG9hZC5lbnRpdHlUeXBlLGIucGF5bG9hZC5rZXksYi5wYXlsb2FkLnhsLGIucGF5bG9hZC5JeSk7ZGVmYXVsdDpyZXR1cm4gYX19OwpfLmxNPWZ1bmN0aW9uKCl7aWYoXy5rTSlyZXR1cm4gXy5rTTtpZih3aW5kb3cubG90dGllKXJldHVybiBfLmtNPVByb21pc2UucmVzb2x2ZSh3aW5kb3cubG90dGllKTt2YXIgYT1fLmh3KF8udygiTE9UVElFX1VSTCIpKTtyZXR1cm4gYT9fLmtNPW5ldyBQcm9taXNlKChiLGMpPT57dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoKT0+e2IobG90dGllKX0pO2QuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGU9Pnt2YXIgZj0iTG90dGllIGxpYnJhcnkgZmFpbGVkIHRvIGxvYWQuIjtlP2UubWVzc2FnZSYmKGYrPWAgT3JpZ2luYWwgZGVzY3JpcHRpb246ICR7ZS5tZXNzYWdlfWAsXy5jdyhlLGYpKTplPUVycm9yKGYpO18uSXAoZSk7YyhlKX0pO2Quc2V0QXR0cmlidXRlKCJhc3luYyIsIiIpO18ub2IoZCxhKTtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGQpfSk6UHJvbWlzZS5yZWplY3QoRXJyb3IoIkJkIikpfTsKZ2dhPWZ1bmN0aW9uKGE9ZmdhLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIlNFVF9JU19CT1RUT01fU0hFRVRfT1BFTl9TVEFURSI6cmV0dXJuey4uLmEsamo6Yi5wYXlsb2FkfTtkZWZhdWx0OnJldHVybiBhfX07aWdhPWZ1bmN0aW9uKGE9aGdhLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIlNFVF9DSU5FTUFUSUNfU0VUVElOR19TVEFURSI6cmV0dXJuey4uLmEsaXNBbGxvd2VkOmIucGF5bG9hZH07ZGVmYXVsdDpyZXR1cm4gYX19OwprZ2E9ZnVuY3Rpb24oYT1qZ2EsYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX0VSUk9SX01FU1NBR0VfQ1JFQVRFX1BMQVlMSVNUX1NUQVRFIjpyZXR1cm57Li4uYSxlcnJvck1lc3NhZ2U6Yi5wYXlsb2FkfTtjYXNlICJTRVRfVElUTEVfQ1JFQVRFX1BMQVlMSVNUX1NUQVRFIjpyZXR1cm57Li4uYSx0aXRsZTpiLnBheWxvYWR9O2Nhc2UgIlNFVF9QUklWQUNZX0NSRUFURV9QTEFZTElTVF9TVEFURSI6cmV0dXJuey4uLmEscHJpdmFjeTpiLnBheWxvYWR9O2Nhc2UgIlNFVF9JU19ESVNBQkxFRF9DUkVBVEVfUExBWUxJU1RfU1RBVEUiOnJldHVybnsuLi5hLGlzRGlzYWJsZWQ6Yi5wYXlsb2FkfTtkZWZhdWx0OnJldHVybiBhfX07bWdhPWZ1bmN0aW9uKGE9bGdhLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIlNFVF9JU19EUkFXRVJfTEFZT1VUX09QRU5fU1RBVEUiOnJldHVybnsuLi5hLGpqOmIucGF5bG9hZH07ZGVmYXVsdDpyZXR1cm4gYX19OwpvZ2E9ZnVuY3Rpb24oYT1uZ2EsYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX0lTX0ZVTExTQ1JFRU5fU1RBVEUiOnJldHVybnsuLi5hLGlzRnVsbHNjcmVlbjpiLnBheWxvYWR9O2Nhc2UgIlNFVF9OQVZJR0FUSU9OX0JVVFRPTiI6dmFyIGM9ey4uLmEubmF2aWdhdGlvbkJ1dHRvbnN9O2NbYi5wYXlsb2FkLnRhcmdldElkXT1iLnBheWxvYWQuYnV0dG9uO3JldHVybnsuLi5hLG5hdmlnYXRpb25CdXR0b25zOmN9O2Nhc2UgIlNFVF9UT1BfUEFORUxfSURfU1RBVEUiOnJldHVybnsuLi5hLHFzOmIucGF5bG9hZH07Y2FzZSAiU0VUX1NFQ09OREFSWV9IRUFERVIiOnJldHVybiBjPXsuLi5hLnNlY29uZGFyeUhlYWRlcn0sY1tiLnBheWxvYWQucGFuZWxJZF09Yi5wYXlsb2FkLnNlY29uZGFyeUhlYWRlcix7Li4uYSxzZWNvbmRhcnlIZWFkZXI6Y307ZGVmYXVsdDpyZXR1cm4gYX19O18ub009ZnVuY3Rpb24oKXttTXx8KG1NPW5ldyBuTSk7cmV0dXJuIG1NfTsKcE09ZnVuY3Rpb24oYSxiKXtiPWI/LkFzfHxfLnkoKS5yZXNvbHZlKF8uSW4oXy5rRikpPy4oKTtzd2l0Y2goYSl7Y2FzZSAiTElLRSI6YT1fLm9NKCkuZ2V0U3RhdGUoKTthPShhPV8ucUEoYS5lbnRpdGllcywibGlrZUJ1dHRvbkFuaW1hdGlvbkVudGl0eSIsIkVoeHNhV3RsWDJKMWRIUnZibDloYm1sdFlYUnBiMjVmWlc1MGFYUjVJTGNFS0FFJTNEIikpJiZhLmFuaW1hdGlvbkxpZ2h0VXJsJiZhLmFuaW1hdGlvbkRhcmtVcmw/e0VjOnthbmltYXRpb25Db25maWc6e25hbWU6Yj8iY3VzdG9tX2FuaW1hdGVkX2xpa2VfaWNvbl9kYXJrIjoiY3VzdG9tX2FuaW1hdGVkX2xpa2VfaWNvbiIscGF0aDpiP2EuYW5pbWF0aW9uRGFya1VybDphLmFuaW1hdGlvbkxpZ2h0VXJsLGxvb3A6ITEsYXV0b3BsYXk6ITEscmVuZGVyZXJTZXR0aW5nczp7dmlld0JveE9ubHk6ITAsY2xhc3NOYW1lOiJjdXN0b20tYW5pbWF0ZWQtbGlrZS1pY29uIn19fSx0b3RhbEZyYW1lczoxMjAsemg6ITB9OnZvaWQgMDsKaWYoYSlyZXR1cm4gYTtiPWBhbmltYXRlZF9saWtlX2ljb25fJHtiPyJkYXJrIjoibGlnaHQifV92NWA7cmV0dXJue0VjOnthbmltYXRpb25Db25maWc6e25hbWU6YixwYXRoOmBodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9sb3R0aWUvYW5pbWF0ZWRfbGlrZV9pY29uLyR7Yn0uanNvbmAsbG9vcDohMSxhdXRvcGxheTohMSxyZW5kZXJlclNldHRpbmdzOnt2aWV3Qm94T25seTohMCxjbGFzc05hbWU6ImFuaW1hdGVkLWxpa2UtaWNvbiJ9fX0sdG90YWxGcmFtZXM6MTIwLHpoOiEwfTtjYXNlICJOT1RJRklDQVRJT05fQkVMTCI6cmV0dXJue0VjOnthbmltYXRpb25Db25maWc6e25hbWU6Yj8ibm90aWZpY2F0aW9uX2JlbGxfZGFyayI6Im5vdGlmaWNhdGlvbl9iZWxsX2xpZ2h0IixwYXRoOmBodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9sb3R0aWUvc3Vic2NyaWJlX2FjdGlvbi9zdWJzY3JpYmVfYWN0aW9uX2JlbGxfaWNvbl8ke2I/ImRhcmsiOiJsaWdodCJ9X3Y0Lmpzb25gLApsb29wOiExLGF1dG9wbGF5OiExLHJlbmRlcmVyU2V0dGluZ3M6e2NsYXNzTmFtZToiYW5pbWF0ZWQtc3Vic2NyaWJlLWljb24ifX19LHRvdGFsRnJhbWVzOjEyMCx6aDohMX19fTtwZ2E9ZnVuY3Rpb24oYSxiKXtfLmpmLnBiKGFzeW5jKCk9Pnt0cnl7YXdhaXQgXy5sTSgpO2xldCBjPWF3YWl0IChhd2FpdCBmZXRjaChhKSkuanNvbigpO3FNLnNldChhLGMpO3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2IoYyl9KX1jYXRjaChjKXtfLklwKGMpfX0pfTtxZ2E9ZnVuY3Rpb24oYSl7dmFyIGI9e2FuaW1hdGlvbkNvbmZpZzp7fSxsaXN0ZW5lcnM6e319LGM9KCk9PnthKCEwKX07Yi5saXN0ZW5lcnMuckk9YztiLmxpc3RlbmVycy5lcnJvcj1jO2IubGlzdGVuZXJzLnNJPSgpPT57YSghMSl9O3JldHVybiBifTsKbk09Y2xhc3N7Y29uc3RydWN0b3IoKXt2YXIgYT1mTSh7ZW5nYWdlbWVudFBhbmVsOm9nYSx0aTpnZ2EsZUk6aWdhLERwOm1nYSxtSTprZ2EsUUo6cmdhLEJLOnNnYSxDSzp0Z2EsLi4udWdhLC4uLnZnYX0pLGI9ZU0oY2dhKCkpO3RoaXMuc3RvcmU9Z00oYSx2b2lkIDAsYil9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5zdG9yZS5nZXRTdGF0ZSgpfWRpc3BhdGNoKGEpe3JldHVybiB0aGlzLnN0b3JlLmRpc3BhdGNoKGEpfXN1YnNjcmliZShhKXtyZXR1cm4gdGhpcy5zdG9yZS5zdWJzY3JpYmUoYSl9cmVwbGFjZVJlZHVjZXIoYSl7cmV0dXJuIHRoaXMuc3RvcmUucmVwbGFjZVJlZHVjZXIoYSl9W1N5bWJvbC5vYnNlcnZhYmxlXSgpe3JldHVybiB0aGlzLnN0b3JlW1N5bWJvbC5vYnNlcnZhYmxlXSgpfX07dmFyIHFNPW5ldyBNYXA7dmFyIHdnYT17SnA6bnVsbH07dmFyIHVnYT17VHI6ZnVuY3Rpb24oYT1fLiRMLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIlNFVF9TSEFSRURfQU5JTUFURURfVEhVTUJOQUlMX0VOQUJMRUQiOnJldHVybnsuLi5hLEVvOmIucGF5bG9hZH07Y2FzZSAiU0VUX1NIQVJFRF9JTkxJTkVfUFJFVklFV19FTkFCTEVEIjpyZXR1cm57Li4uYSxscTpiLnBheWxvYWR9O2Nhc2UgIlNFVF9TSEFSRURfQ1VSUkVOVF9QQUdFX1RZUEUiOnJldHVybnsuLi5hLHZwOmIucGF5bG9hZH07Y2FzZSAiU0VUX1NIQVJFRF9DVVJSRU5UX1BBR0VfU1VCX1RZUEUiOnJldHVybnsuLi5hLHVwOmIucGF5bG9hZH07Y2FzZSAiU0VUX1NIQVJFRF9QRVJTSVNURU5UX1BBTkVMX1ZJU0lCTEUiOnJldHVybnsuLi5hLHdyOmIucGF5bG9hZH07Y2FzZSAiU0VUX1NIQVJFRF9JU19TRUFSQ0hCT1hfSElEREVOIjpyZXR1cm57Li4uYSxDcTpiLnBheWxvYWR9O2RlZmF1bHQ6cmV0dXJuIGF9fSxhMTF5OmZNKHtKcDpmdW5jdGlvbihhPXdnYS5KcCxiKXtzd2l0Y2goYi50eXBlKXtjYXNlICJTRVRfRVBIRU1FUkFMX0FDVElPTiI6cmV0dXJuIGIucGF5bG9hZDsKZGVmYXVsdDpyZXR1cm4gYX19fSksZW50aXRpZXM6ZnVuY3Rpb24oYT17fSxiKXtyZXR1cm4gZWdhKGEsYil9fTt2YXIgck09e1hsOiExLGZtOiExLGptOiExLHBsYXllclN0YXRlOi0xLGlzRnVsbHNjcmVlbjohMSxtajohMSxabDohMSxnbTohMSxUajoyLHhqOjB9O3ZhciB4Z2E9Zk0oe1hsOmZ1bmN0aW9uKGE9ck0uWGwsYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX0lTX0RFU0tUT1BfU01BTExfV0lEVEgiOnJldHVybiBiLnBheWxvYWQuWGw7ZGVmYXVsdDpyZXR1cm4gYX19LGZtOmZ1bmN0aW9uKGE9ck0uZm0sYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX0lTX1NIT1JUU19BQ1RJVkUiOnJldHVybiBiLnBheWxvYWQuZm07ZGVmYXVsdDpyZXR1cm4gYX19LGptOmZ1bmN0aW9uKGE9ck0uam0sYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX0lTX1dBVENIX1dISUxFX01PREUiOnJldHVybiBiLnBheWxvYWQuam07ZGVmYXVsdDpyZXR1cm4gYX19LHBsYXllclN0YXRlOmZ1bmN0aW9uKGE9ck0ucGxheWVyU3RhdGUsYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX1BMQVlFUl9TVEFURSI6cmV0dXJuIGIucGF5bG9hZC5wbGF5ZXJTdGF0ZTtkZWZhdWx0OnJldHVybiBhfX0saXNGdWxsc2NyZWVuOmZ1bmN0aW9uKGE9ck0uaXNGdWxsc2NyZWVuLApiKXtzd2l0Y2goYi50eXBlKXtjYXNlICJTRVRfSVNfRlVMTFNDUkVFTiI6cmV0dXJuIGIucGF5bG9hZC5pc0Z1bGxzY3JlZW47ZGVmYXVsdDpyZXR1cm4gYX19LG1qOmZ1bmN0aW9uKGE9ck0ubWosYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX0lTX1NNQUxMX1NDUkVFTl9TUVVFRVpFQkFDSyI6cmV0dXJuIGIucGF5bG9hZC5tajtkZWZhdWx0OnJldHVybiBhfX0sZ206ZnVuY3Rpb24oYT1yTS5nbSxiKXtzd2l0Y2goYi50eXBlKXtjYXNlICJTRVRfSVNfU0hPUlRTX1BJUF9BQ1RJVkUiOnJldHVybiBiLnBheWxvYWQuZ207ZGVmYXVsdDpyZXR1cm4gYX19LFpsOmZ1bmN0aW9uKGE9ck0uWmwsYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX0lTX1BMQVlCQUNLX1NUQVJURUQiOnJldHVybiBiLnBheWxvYWQuWmw7ZGVmYXVsdDpyZXR1cm4gYX19LFRqOmZ1bmN0aW9uKGE9ck0uVGosYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX1NIT1JUU19MQVlPVVQiOnJldHVybiBiLnBheWxvYWQuVGo7CmRlZmF1bHQ6cmV0dXJuIGF9fSx4ajpmdW5jdGlvbihhPXJNLnhqLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIlNFVF9NRVRBUEFORUxfU1RZTEUiOnJldHVybiBiLnBheWxvYWQueGo7ZGVmYXVsdDpyZXR1cm4gYX19fSk7dmFyIGZnYT17amo6ITF9O3ZhciBoZ2E9e2lzQWxsb3dlZDohMX07dmFyIGpnYT17ZXJyb3JNZXNzYWdlOiIiLHRpdGxlOiIiLHByaXZhY3k6IiIsaXNEaXNhYmxlZDohMH07dmFyIGxnYT17amo6ITF9O3ZhciBuZ2E9e2lzRnVsbHNjcmVlbjohMSxxczp2b2lkIDAsbmF2aWdhdGlvbkJ1dHRvbnM6e30sc2Vjb25kYXJ5SGVhZGVyOnt9fTt2YXIgeWdhPXtyZXNwb25zZTp2b2lkIDB9O3ZhciByZ2E9KGE9eWdhLGIpPT57c3dpdGNoKGIudHlwZSl7Y2FzZSAiTE9DQVRJT05fQ09MTEVDVElPTl9SRVNQT05TRV9DSEFOR0UiOnJldHVybnsuLi5hLHJlc3BvbnNlOmIucGF5bG9hZH07ZGVmYXVsdDpyZXR1cm4gYX19O3ZhciB6Z2E9e25leHRDb21tYW5kOnZvaWQgMCxUeTohMSxidzp2b2lkIDAsUHg6ITF9O3ZhciBzZ2E9KGE9emdhLGIpPT57c3dpdGNoKGIudHlwZSl7Y2FzZSAiUkVQT1JUX0NIQU5ORUxfTkVYVF9ESVNBQkxFRF9DSEFOR0UiOnJldHVybnsuLi5hLFR5OmIucGF5bG9hZH07Y2FzZSAiUkVQT1JUX0NIQU5ORUxfTkVYVF9DT01NQU5EX0NIQU5HRSI6cmV0dXJuey4uLmEsbmV4dENvbW1hbmQ6Yi5wYXlsb2FkfTtjYXNlICJSRVBPUlRfQ0hBTk5FTF9NT0RBTF9GT09URVJfUkVOREVSRVJfU1VCTUlTU0lPTl9EQVRBX0NIQU5HRSI6cmV0dXJuey4uLmEsYnc6Yi5wYXlsb2FkfTtjYXNlICJSRVBPUlRfQ0hBTk5FTF9ORVhUX0lNUEVSU09OQVRJT05fVkFMSURJVFlfQ0hBTkdFIjpyZXR1cm57Li4uYSxQeDpiLnBheWxvYWR9O2RlZmF1bHQ6cmV0dXJuIGF9fTt2YXIgQWdhPXtVejp2b2lkIDAsVHo6dm9pZCAwfTt2YXIgdGdhPShhPUFnYSxiKT0+e3N3aXRjaChiLnR5cGUpe2Nhc2UgIlJFUE9SVF9GT1JNX01PREFMX1JFTkRFUkVSX0RBVEFfQ0hBTkdFIjpyZXR1cm57Li4uYSxVejpiLnBheWxvYWR9O2Nhc2UgIlJFUE9SVF9ERVRBSUxTX0ZPUk1fUkVOREVSRVJfREFUQV9DSEFOR0UiOnJldHVybnsuLi5hLFR6OmIucGF5bG9hZH07ZGVmYXVsdDpyZXR1cm4gYX19O3ZhciBCZ2E9e307dmFyIHNNPXtzaDohMSx3aDpfLngoIndlYl9wbGF5bGlzdF9wYW5lbF9kZWZhdWx0X2NvbGxhcHNlZCIpLHZnOltdLFppOiExfTt2YXIgQ2dhPWZNKHtzaDpmdW5jdGlvbihhPXNNLnNoLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIk1BSU5fQVBQX1NFVF9JU19MSVZFX0NIQVRfQ09MTEFQU0VEIjpyZXR1cm4gYi5wYXlsb2FkP2IucGF5bG9hZC5zaDphO2RlZmF1bHQ6cmV0dXJuIGF9fSx3aDpmdW5jdGlvbihhPXNNLndoLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIk1BSU5fQVBQX1NFVF9JU19QTEFZTElTVF9QQU5FTF9DT0xMQVBTRUQiOnJldHVybiBiLnBheWxvYWQud2g7ZGVmYXVsdDpyZXR1cm4gYX19LHZnOmZ1bmN0aW9uKGE9c00udmcsYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiTUFJTl9BUFBfQUREX09QRU5fRU5HQUdFTUVOVF9QQU5FTCI6cmV0dXJuWy4uLmEsYi5wYXlsb2FkLnh6XTtjYXNlICJNQUlOX0FQUF9SRU1PVkVfT1BFTl9FTkdBR0VNRU5UX1BBTkVMIjpyZXR1cm4gYS5sZW5ndGg9PT0wP2E6YS5maWx0ZXIoYz0+YyE9PWIucGF5bG9hZC5vSyk7ZGVmYXVsdDpyZXR1cm4gYX19LFppOmZ1bmN0aW9uKGE9CnNNLlppLGIpe3N3aXRjaChiLnR5cGUpe2Nhc2UgIk1BSU5fQVBQX1NFVF9IQVNfUExBWUxJU1QiOnJldHVybiBiLnBheWxvYWQuWmk7ZGVmYXVsdDpyZXR1cm4gYX19fSk7dmFyIHZnYT17eEw6ZnVuY3Rpb24oYT1CZ2EsYil7c3dpdGNoKGIudHlwZSl7Y2FzZSAiU0VUX1RSQU5TQ1JJUFRJT05fU1RBVEUiOnJldHVybnsuLi5hLGpMOmIucGF5bG9hZH07Y2FzZSAiU0VUX09WRVJMQVlfU1RBVEUiOnJldHVybnsuLi5hLG92ZXJsYXk6Yi5wYXlsb2FkfTtjYXNlICJSRVNFVF9WT0lDRV9TRUFSQ0hfU1RBVEUiOnJldHVybnt9O2RlZmF1bHQ6cmV0dXJuIGF9fSxzaG9ydHM6eGdhLEFkOkNnYX07dmFyIG1NPXZvaWQgMDttTT1uZXcgbk07Xy50TT1fLkwoYT0+e3ZhciB7YW5pbWF0ZWRJY29uVHlwZTpiLGFjdGl2ZTpjLEhjOmQsYW5pbWF0aW9uUmVmOmUsSEE6ZixzaXplOmh9PV8uREMoYSx7SGM6dm9pZCAwLGFuaW1hdGlvblJlZjp7fSxzaXplOjI0fSksW2ssbF09Xy5KKHZvaWQgMCx2b2lkIDAsIlR2Z21DZSIpLG09KCk9PnBNKGIoKSxkPy4oKSk/LkVjLmFuaW1hdGlvbkNvbmZpZy5uYW1lPz8iIixuPSgpPT57aWYocE0oYigpLGQ/LigpKSl7dmFyIHtwYXRoOkF9PXBNKGIoKSxkPy4oKSkuRWMuYW5pbWF0aW9uQ29uZmlnO3JldHVybiBxTS5nZXQoQSl8fGsoKX19LFtwLHJdPV8uSighMSx2b2lkIDAsImpmMkR5YiIpLHQ9cWdhKHIpLHY9KCk9PnBNKGIoKSxkPy4oKSk/LkVjLmFuaW1hdGlvbkNvbmZpZz8ucmVuZGVyZXJTZXR0aW5ncz8uY2xhc3NOYW1lPz8iIix6PXZvaWQgMCxFPXZvaWQgMDtfLm5FKCgpPT57dmFyIEE9cE0oYigpLGQ/LigpKSxGPW0oKSxDPW4oKSxHPXAoKSxEPWMoKTtpZihBJiYoRSE9PUYmJihFPQpGLHo9RCxGPWUoKSx0LmFuaW1hdGlvbkNvbmZpZz1BLkVjLmFuaW1hdGlvbkNvbmZpZyx0LmFuaW1hdGlvblJlZj1GLEMmJih0LmFuaW1hdGlvbkNvbmZpZy5hbmltYXRpb25EYXRhPUMsdC5hbmltYXRpb25Db25maWcucGF0aD12b2lkIDApLEY9QS5FYy5hbmltYXRpb25Db25maWcucGF0aCwhcU0uZ2V0KEYpJiZBLnpoJiZGJiZwZ2EoRixsKSksIShHfHxBLnpoJiYhQykpKXtpZihDPSFlKCkubG90dGllRWwpRD8oRz1BLnRvdGFsRnJhbWVzLHQuYW5pbWF0aW9uQ29uZmlnLmluaXRpYWxTZWdtZW50PVtHLTEsR10pOnQuYW5pbWF0aW9uQ29uZmlnLmluaXRpYWxTZWdtZW50PXZvaWQgMDt6PT09RHx8Q3x8KEM9ZSgpLEQ/Qy5sb3R0aWVFbD8ucGxheVNlZ21lbnRzKFswLEEudG90YWxGcmFtZXNdLCEwKTpDLmxvdHRpZUVsPy5wbGF5U2VnbWVudHMoWzAsMV0sITApKTt6PUR9fSwiWEIxR1NiIik7cmV0dXJuIF8uSygiYW5pbWF0ZWQtaWNvbiIse2NsYXNzOiJ5dEFuaW1hdGVkSWNvbkhvc3QiLAoiZGF0YS1zaXplIjooKT0+aCgpfSxfLksoXy5PLHtBOigpPT4hKCFwTShiKCksZD8uKCkpPy5FYy5hbmltYXRpb25Db25maWcucGF0aHx8cE0oYigpLGQ/LigpKT8uemgmJiFuKCl8fHAoKSksdGhlbjooKT0+Xy5LKF8uY00se2RhdGE6dCxhbmltYXRpb25OYW1lOm0sY2xhc3NOYW1lOnYsYW5pbWF0aW9uUmVmOmV9KSxXOmZ9KSl9LCJNYSIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLnVNPWZ1bmN0aW9uKGEpe3JldHVybiBfLnNFKCgpPT4oe3ZhbHVlOmF9KSl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgeU0sek0sRGdhLEFNLEJNLENNLERNLEVNLEdNLEZnYSxJTSxHZ2EsTE0sSGdhLE1NLFJNLFNNLFRNLGJOLEtnYSxjTixlTixMZ2EsT2dhLE5nYSxNZ2EsaE4sUGdhLFJnYSxpTixqTixrTixTZ2EsVGdhLGxOLFVnYSxtTixuTixwTixWZ2EsV2dhLFhnYSxxTixhaGEsJGdhLHJOLFpnYSxZZ2EsZGhhLGNoYSxzTixiaGEsZmhhLHZOLFgsQU4sQ04sZ2hhLGloYSxoaGEsamhhLE1OLGxoYSxtaGEsUU4sbmhhLG9oYSxUTixxaGEsYU8scmhhLHNoYSx0aGEsdWhhLHZoYSx3aGEseGhhLEVnYSxGTSxITSxiTyx5aGEsT00sUU0sSWdhLEpnYSx6aGEsQWhhO18udk09ZnVuY3Rpb24oYSl7dmFyIGI9Xy4kdChhKTtyZXR1cm57W1N5bWJvbC5kaXNwb3NlXSgpe18uJHQoYil9fX07Xy54TT1mdW5jdGlvbigpe2lmKF8uWHooKSl7dmFyIGE9Xy5HaChgJHtfLlZqKCl9Ojp5dC1tYXctcGxheWVyYCk7aWYoYSlyZXR1cm4gbmV3IF8ud00oYSl9fTsKeU09ZnVuY3Rpb24oYSxiKXtmb3IoO2EubGVuZ3RoPmI7KWEucG9wKCl9O3pNPWZ1bmN0aW9uKGEpe2E9QXJyYXkoYSk7eU0oYSwwKTtyZXR1cm4gYX07RGdhPWZ1bmN0aW9uKGEsYixjLGQpeyhkW2JdfHxkW18uUkEuZGVmYXVsdF0pKGEsYixjKX07QU09ZnVuY3Rpb24oYSxiLGMpe2I9bmV3IEVnYShiLGMpO3JldHVybiBhLl9faW5jcmVtZW50YWxET01EYXRhPWJ9OwpCTT1mdW5jdGlvbihhLGIpe2lmKGEuX19pbmNyZW1lbnRhbERPTURhdGEpcmV0dXJuIGEuX19pbmNyZW1lbnRhbERPTURhdGE7dmFyIGM9YS5ub2RlVHlwZT09PTE/YS5sb2NhbE5hbWU6YS5ub2RlTmFtZSxkPWEubm9kZVR5cGU9PT0xP2EuZ2V0QXR0cmlidXRlKCJrZXkiKTpudWxsO2I9QU0oYSxjLGEubm9kZVR5cGU9PT0xP2R8fGI6bnVsbCk7aWYoYS5ub2RlVHlwZT09PTEmJihjPWEuYXR0cmlidXRlcyxkPWMubGVuZ3RoKSl7YT1iLmp8fChiLmo9ek0oZCoyKSk7Zm9yKGxldCBlPTAsZj0wO2U8ZDtlKz0xLGYrPTIpe2xldCBoPWNbZV0saz1oLnZhbHVlO2FbZl09aC5uYW1lO2FbZisxXT1rfX1yZXR1cm4gYn07Q009ZnVuY3Rpb24oKXtfLllBPV8uVkEoKX07CkRNPWZ1bmN0aW9uKGEsYil7Q00oKTt2YXIgYzthOntpZihjPV8uWUEpe2Rve2lmKGM9PT1udWxsKWJyZWFrO3ZhciBkPWMsZT1hLGY9YjtsZXQgaD1CTShkLGYpO2lmKCgwLF8uYkIpKGQsZSxoLm8sZixoLmtleSkpYnJlYWsgYX13aGlsZShiJiYoYz1jLm5leHRTaWJsaW5nKSl9Yz1udWxsfWN8fChhPT09IiN0ZXh0Ij8oYT1fLlpBLmNyZWF0ZVRleHROb2RlKCIiKSxBTShhLCIjdGV4dCIsbnVsbCkpOihjPV8uWkEsZD1fLlVBLHR5cGVvZiBhPT09ImZ1bmN0aW9uIj9jPW5ldyBhOmM9KGQ9YT09PSJzdmciPyJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI6YT09PSJtYXRoIj8iaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCI6ZD09bnVsbHx8Qk0oZCkubz09PSJmb3JlaWduT2JqZWN0Ij9udWxsOmQubmFtZXNwYWNlVVJJKT9jLmNyZWF0ZUVsZW1lbnROUyhkLGEpOmMuY3JlYXRlRWxlbWVudChhKSxBTShjLGEsYiksYT1jKSxfLldBLmNyZWF0ZWQucHVzaChhKSxjPQphKTthPWM7aWYoYSE9PV8uWUEpe2lmKF8uJEEuaW5kZXhPZihhKT49MClmb3IoYj1fLlVBLGM9YS5uZXh0U2libGluZyxkPV8uWUE7ZCE9PW51bGwmJmQhPT1hOyllPWQubmV4dFNpYmxpbmcsYi5pbnNlcnRCZWZvcmUoZCxjKSxkPWU7ZWxzZSBfLlVBLmluc2VydEJlZm9yZShhLF8uWUEpO18uWUE9YX19O0VNPWZ1bmN0aW9uKGEsYil7RE0oYSxiKTtfLlVBPV8uWUE7Xy5ZQT1udWxsO3JldHVybiBfLlVBfTtHTT1mdW5jdGlvbihhLGIsYyxkKXtGTS5wdXNoKERnYSk7Rk0ucHVzaChhKTtGTS5wdXNoKGIpO0ZNLnB1c2goYyk7Rk0ucHVzaChkKX07CkZnYT1mdW5jdGlvbihhPV8uSEMpe3ZhciBiPV8uVUEsYz1CTShiKSxkPV8uYUI7Yz1jLmp8fChjLmo9ek0oZC5sZW5ndGgpKTtmb3IodmFyIGU9IWMubGVuZ3RofHwhMSxmPTA7ZjxkLmxlbmd0aDtmKz0yKXt2YXIgaD1kW2ZdO2lmKGUpY1tmXT1oO2Vsc2UgaWYoY1tmXSE9PWgpYnJlYWs7bGV0IGw9ZFtmKzFdO2lmKGV8fGNbZisxXSE9PWwpY1tmKzFdPWwsR00oYixoLGwsYSl9aWYoZjxkLmxlbmd0aHx8ZjxjLmxlbmd0aCl7Zm9yKGY9ZT1mO2Y8Yy5sZW5ndGg7Zis9MilfLkpDW2NbZl1dPWNbZisxXTtmb3IoZj1lO2Y8ZC5sZW5ndGg7Zis9MillPWRbZl0saD1kW2YrMV0sXy5KQ1tlXSE9PWgmJkdNKGIsZSxoLGEpLGNbZl09ZSxjW2YrMV09aCxkZWxldGUgXy5KQ1tlXTt5TShjLGQubGVuZ3RoKTtmb3IodmFyIGsgaW4gXy5KQylHTShiLGssdm9pZCAwLGEpLGRlbGV0ZSBfLkpDW2tdfWE9SE07SE09Yj1GTS5sZW5ndGg7Zm9yKGs9YTtrPGI7ays9NSkoMCxGTVtrXSkoRk1baysxXSwKRk1baysyXSxGTVtrKzNdLEZNW2srNF0pO0hNPWE7eU0oRk0sYSk7eU0oZCwwKX07SU09ZnVuY3Rpb24oYSwuLi5iKXtETSgiI3RleHQiLG51bGwpO2I9Xy5ZQTt2YXIgYz1CTShiKTtpZihjLnRleHQhPT1hKXtjPWMudGV4dD1hO2ZvcihsZXQgZD0xO2Q8YXJndW1lbnRzLmxlbmd0aDtkKz0xKWM9KDAsYXJndW1lbnRzW2RdKShjKTtiLmRhdGEhPT1jJiYoYi5kYXRhPWMpfX07CkdnYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT1bXTthLl9kaXNwb3NlRWZmZWN0cz1fLnV2KCgpPT57Xy50digoKT0+e3ZhciBmPWMoKTtpZihmPT09bnVsbHx8Zj09PXZvaWQgMClmPSIiO2lmKF8ucUIoZil8fGY9PT1udWxsKWQ/PyhkPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIiKSksZC5wYXJlbnROb2RlIT09YSYmKGQuX2lzU2lnbmFsVGV4dE5vZGU9ITAsYS5pbnNlcnRCZWZvcmUoZCxiKSksZC50ZXh0Q29udGVudD1TdHJpbmcoZik7ZWxzZSBpZihfLm9CKGYpKXtsZXQgaD1lLmxlbmd0aD4wP2VbZS5sZW5ndGgtMV0ubmV4dFNpYmxpbmc6Yjtmb3IobGV0IGsgb2YgZSlhLnJlbW92ZUNoaWxkKGspO2Y9Xy5wQihmKTtlPUFycmF5LmZyb20oZi5jaGlsZE5vZGVzKTtmb3IobGV0IGsgb2YgZSlhLmluc2VydEJlZm9yZShrLGgpfWVsc2UgdGhyb3cgRXJyb3IoIkFiYCIrKF8uTXU/Lm5hbWU/PyJ1bmtub3duIikrImAiK3R5cGVvZiBmKTt9LCJWdkRnQyIpfSxfLkt1LnJpfHwhIV8uWnQpfTsKXy5LTT1mdW5jdGlvbihhKXtpZighXy5KTSlyZXR1cm4hMTtmb3IobGV0IGIgb2YgT2JqZWN0LmtleXMoXy5KTSkpaWYoYS5oYXNPd25Qcm9wZXJ0eShiKSlyZXR1cm4hMDtyZXR1cm4hMX07TE09ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGgpe2lmKGEubGVuZ3RoPT09MSlyZXR1cm4gYVswXTt2YXIgYj17fTtfLndGKGIsXy5TRCx7Y29tbWFuZHM6YX0pO3JldHVybiBifX07SGdhPWZ1bmN0aW9uKGEpe3ZhciBiPUFycmF5LmlzQXJyYXkoYS5pdGVtcyk/YS5pdGVtczpBcnJheS5mcm9tKGEuaXRlbXMpO3JldHVybiBfLmZHKGIsYS5jaGlsZHJlbil9O01NPWZ1bmN0aW9uKGEpe2E9Xy5uSihhKTthLmxlbmd0aD4wJiZhWzBdLmZvY3VzKCl9O18uTk09ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWU9PnthLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixkKTtyZXR1cm4gYy5jYWxsKGEsZSl9O2EuYWRkRXZlbnRMaXN0ZW5lcihiLGQsdm9pZCAwKX07Cl8uUE09ZnVuY3Rpb24oYSl7T018fChPTT1fLkNkKCJBIikpO09NLmhyZWYhPT1hJiZfLkx5KE9NLGEpO3JldHVybiBPTX07Uk09ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIiI7aWYoUU1bYV0pcmV0dXJuIFFNW2FdO3ZhciBiPV8uUE0oYSkucGF0aG5hbWU7UU1bYV09Yi5zdGFydHNXaXRoKCIvIik/YjoiLyIrYjtyZXR1cm4gUU1bYV19OwpTTT1mdW5jdGlvbihhKXtyZXR1cm4gYT09PSIvIj8iaG9tZSI6YS5zdGFydHNXaXRoKCIvcmVzdWx0cyIpPyJzZWFyY2giOmEuc3RhcnRzV2l0aCgiL3dhdGNoIik/IndhdGNoIjphLnN0YXJ0c1dpdGgoIi9zaG9ydHMiKT8ic2hvcnRzIjphLnN0YXJ0c1dpdGgoIi9oYXNodGFnIik/Imhhc2h0YWciOmEuc3RhcnRzV2l0aCgiL2NyZWF0ZV9jaGFubmVsIik/ImNyZWF0ZV9jaGFubmVsIjphLnN0YXJ0c1dpdGgoIi9wb3N0LyIpPyJwb3N0IjphLnN0YXJ0c1dpdGgoIi9AIil8fGEuc3RhcnRzV2l0aCgiL3VzZXIvIil8fGEuc3RhcnRzV2l0aCgiL2NoYW5uZWwvIik/ImNoYW5uZWwiOmEuc3RhcnRzV2l0aCgiL2V4cGVyaW1lbnRzIik/ImV4cGVyaW1lbnRzIjphLnN0YXJ0c1dpdGgoIi9zcG9uc29yX2NoYW5uZWwiKT8ic3BvbnNvcnNoaXAiOmEuc3RhcnRzV2l0aCgiL3NlbGVjdF9zaXRlIik/InNldHRpbmdzIjphLnN0YXJ0c1dpdGgoIi9sb2NhdGUiKT8ibG9jYXRlIjphLnN0YXJ0c1dpdGgoIi9yZWRlZW0iKT8KInJlZGVlbSI6YS5zdGFydHNXaXRoKCIvbXVzaWNwcmVtaXVtIil8fGEuc3RhcnRzV2l0aCgiL3ByZW1pdW0iKXx8YS5zdGFydHNXaXRoKCIvcmVkIik/InByZW1pdW0iOmEuc3RhcnRzV2l0aCgiL3BhaWRfbWVtYmVyc2hpcHMiKT8icGFpZF9tZW1iZXJzaGlwcyI6YS5zdGFydHNXaXRoKCIvb29wcyIpPyJvb3BzIjphLnN0YXJ0c1dpdGgoIi9jbGlwIik/ImNsaXAiOl8uWEQ/LnJlc3BvbnNlPy5wYWdlPT09IjQwNCI/IjQwNCI6YS5zdGFydHNXaXRoKCIvZmVlZC9oaXN0b3J5Iik/Imhpc3RvcnkiOmEuc3RhcnRzV2l0aCgiL2ZlZWQvbGlicmFyeSIpPyJsaWJyYXJ5IjphLnN0YXJ0c1dpdGgoIi9mZWVkL3N1YnNjcmlwdGlvbnMiKT8ic3Vic2NyaXB0aW9ucyI6YS5zdGFydHNXaXRoKCIvZmVlZC90cmVuZGluZyIpPyJ0cmVuZGluZyI6YS5zdGFydHNXaXRoKCIvZmVlZC9uZXdzX2Rlc3RpbmF0aW9uIik/Im5ld3MiOmEuc3RhcnRzV2l0aCgiL3BsYXlsaXN0Iik/InBsYXlsaXN0IjphLnN0YXJ0c1dpdGgoIi9taW5vcl9tb21lbnQiKT8KIm1pbm9yX21vbWVudCI6YS5zdGFydHNXaXRoKCIvcGxheWFibGUvIil8fGEubWF0Y2goIl4vcGxheWFibGVzLyg/IXNhdmVkKS4iKT8ibWluaV9hcHAiOmEuc3RhcnRzV2l0aCgiL3BsYXlhYmxlcyIpPyJwbGF5YWJsZXMiOmEuc3RhcnRzV2l0aCgiL2NyZWF0ZS9saXZlL2pvaW4iKT8ib3Blbl9pbl9hcHAiOmEuc3RhcnRzV2l0aCgiL2ZlZWQvZXhwbG9yZSIpPyJleHBsb3JlIjoiYnJvd3NlIn07ClRNPWZ1bmN0aW9uKCl7dmFyIGE9Xy5YRD8ucmVzcG9uc2UsYj1hPy5lbmRwb2ludDtpZighYilyZXR1cm4gYT8ucGFnZT09PSJ3YXRjaCI/IndhdGNoIjpTTShSTSh3aW5kb3cubG9jYXRpb24uaHJlZikpO2E9Xy5CKGI/LmNvbW1hbmRNZXRhZGF0YSxfLnp3KT8ud2ViUGFnZVR5cGU7dmFyIGM9ITE7aWYoYSYmIUlnYS5pbmNsdWRlcyhhKSlzd2l0Y2goYSl7Y2FzZSAiV0VCX1BBR0VfVFlQRV9TRUFSQ0giOnJldHVybiJzZWFyY2giO2Nhc2UgIldFQl9QQUdFX1RZUEVfU0hPUlRTIjpyZXR1cm4ic2hvcnRzIjtjYXNlICJXRUJfUEFHRV9UWVBFX0NIQU5ORUwiOnJldHVybiJjaGFubmVsIjtjYXNlICJXRUJfUEFHRV9UWVBFX1NFVFRJTkdTIjpyZXR1cm4ic2V0dGluZ3MiO2Nhc2UgIldFQl9QQUdFX1RZUEVfUExBWUxJU1QiOnJldHVybiJwbGF5bGlzdCI7Y2FzZSAiV0VCX1BBR0VfVFlQRV9PUEVOX0lOX0FQUCI6cmV0dXJuIm9wZW5faW5fYXBwIjtjYXNlICJXRUJfUEFHRV9UWVBFX01JTklfQVBQIjpyZXR1cm4ibWluaV9hcHAiOwpjYXNlICJXRUJfUEFHRV9UWVBFX1dBVENIIjpyZXR1cm4gXy5CKGI/LmNvbW1hbmRNZXRhZGF0YSxfLnp3KT8udXJsJiZSTShfLkIoYi5jb21tYW5kTWV0YWRhdGEsXy56dykudXJsKS5zdGFydHNXaXRoKCIvY2xpcCIpPyJjbGlwIjoid2F0Y2giO2Nhc2UgIldFQl9QQUdFX1RZUEVfQlJPV1NFIjpyZXR1cm4oYj1fLkIoYixfLmNFKT8uYnJvd3NlSWQpP0pnYVtiXXx8ImJyb3dzZSI6ImJyb3dzZSI7ZGVmYXVsdDpjPSEwfWlmKF8uQihiLF8uRWVhKXx8Xy5CKGIsXy5EZWEpKXJldHVybiJzcG9uc29yc2hpcCI7dmFyIGQ9Uk0od2luZG93LmxvY2F0aW9uLmhyZWYpO2lmKGQuc3RhcnRzV2l0aCgiL2V4cGVyaW1lbnRzIikpcmV0dXJuImV4cGVyaW1lbnRzIjtpZihkLnN0YXJ0c1dpdGgoIi9jcmVhdGVfY2hhbm5lbCIpKXJldHVybiJjcmVhdGVfY2hhbm5lbCI7aWYoXy5CKGIsXy5WRCkmJmQuc3RhcnRzV2l0aCgiL3Nob3J0cyIpKXJldHVybiJzaG9ydHMiO2lmKF8uQihiLF8uVkQpJiYKZC5zdGFydHNXaXRoKCIvd2F0Y2giKSlyZXR1cm4id2F0Y2giO2MmJihiPW5ldyBfLlhqKCJVbnN1cHBvcnRlZCBtV2ViIHBhZ2UgdHlwZSIse3BhdGhuYW1lOmQsd2ViUGFnZVR5cGU6YX0pLF8uR3AoYikpO3JldHVybiJicm93c2UifTtfLlVNPWZ1bmN0aW9uKGEpe2E/LmhyZWY/YT0oYT1hLmhyZWYpP1NNKFJNKGE/YTp3aW5kb3cubG9jYXRpb24uaHJlZikpOlRNKCk6YT1hPy5wYWdlVHlwZTtyZXR1cm4gYXx8VE0oKX07Xy5WTT1mdW5jdGlvbihhKXtyZXR1cm4gXy5VTShhKT09PSJ3YXRjaCJ9O18uV009ZnVuY3Rpb24oKXtyZXR1cm4gXy5VTSgpPT09InNob3J0cyJ9O18uWE09ZnVuY3Rpb24oYSxiKXt3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoYSx7ZGV0YWlsOmJ9KSl9OwpfLlpNPWZ1bmN0aW9uKCl7Xy5ZTSYmXy5IcChuZXcgXy5YaihgVW5leHBlY3RlZCBjYWxsIHRvIHJlcXVlc3RCYWNrTmF2aWdhdGlvbiwgZnJhZ21lbnQ6ICR7d2luZG93LmxvY2F0aW9uLmhhc2h9YCkpO18uRko9bmV3IF8uQmYoYT0+e2Z1bmN0aW9uIGIoKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLGIpO3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixiKTthKCl9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixiKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsYil9KTtfLk5NKHdpbmRvdywicG9wc3RhdGUiLCgpPT57c2V0VGltZW91dCgoKT0+e30pfSk7aGlzdG9yeS5iYWNrKCk7cmV0dXJuIF8uRkp9OwpfLiRNPWZ1bmN0aW9uKGEsYj0hMSl7aWYoXy5ZTSl7dmFyIGM9d2luZG93LmxvY2F0aW9uO2E9Xy5kYihgIyR7YX1gKTthIT09dm9pZCAwJiZjLnJlcGxhY2UoYSl9ZWxzZSB3aW5kb3cubG9jYXRpb24uaGFzaD1hO2J8fF8ueCgibXdlYl9lbmFibGVfa2V0b19jb250ZW50Iil8fF8uWE0oInVwZGF0ZXVpIil9O18uYU49ZnVuY3Rpb24oYSl7aWYoYSYmYS5zaW1wbGVUZXh0KXJldHVybiBhLnNpbXBsZVRleHQ7dmFyIGI9IiI7aWYoYSYmYS5ydW5zKWZvcihsZXQgYz0wO2M8YS5ydW5zLmxlbmd0aDtjKyspYS5ydW5zW2NdLnRleHQmJihiKz1hLnJ1bnNbY10udGV4dCk7cmV0dXJuIGJ9O2JOPWZ1bmN0aW9uKGEpe3JldHVybiBfLmtBKHt0eXBlOiJTRVRfSVNfQk9UVE9NX1NIRUVUX09QRU5fU1RBVEUiLHBheWxvYWQ6YX0pfTsKS2dhPWZ1bmN0aW9uKGEpe2lmKGEmJmEuZm9jdXMpaWYoYSE9PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpYS5mb2N1cygpO2Vsc2UgcmV0dXJuIGNOKGFzeW5jKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtyZXR1cm4gY04oKCk9PnthLmZvY3VzKCl9KX0pfTtfLmROPWZ1bmN0aW9uKGEpe3ZhciBiPTU7c2V0VGltZW91dChhc3luYygpPT57Zm9yKHZhciBjPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1jfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09ZG9jdW1lbnQuYm9keSkmJmI+PTAmJmE7KXthd2FpdCBLZ2EoYSk7aWYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWEpYnJlYWs7YT1hLnBhcmVudEVsZW1lbnQ7LS1ifX0sMTUpfTtjTj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IFByb21pc2UoYj0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2IoYSgpKX0pfSl9OwplTj1mdW5jdGlvbihhKXtpZih0eXBlb2YgYS5jaGlsZHJlbj09PSJmdW5jdGlvbiIpcmV0dXJuIGEuY2hpbGRyZW4oKSxudWxsO2ZvcihsZXQgYiBvZiBhLmNoaWxkcmVuKWIoKTtyZXR1cm4gbnVsbH07Xy5mTj1mdW5jdGlvbihhLGIpe18uUnUoKCk9PkxnYShhLGIpKX07TGdhPWZ1bmN0aW9uKGEsYil7dmFyIGM9bnVsbDtfLmd2Kys7dHJ5e2M9KDAsXy5JQykoYSwoKT0+e18uZ04oYil9KSxfLklBKCExKX1jYXRjaChkKXt0aHJvdyBfLklBKCEwKSxkO31yZXR1cm4gYz09PW51bGw/YTpjfTsKXy5nTj1mdW5jdGlvbihhKXtpZihhIT09dm9pZCAwJiZhIT09bnVsbClpZihhIGluc3RhbmNlb2YgXy5kQylmb3IodmFyIGI9Xy5VQTtfLlZBKCkhPW51bGwmJl8ubkMgaW4gXy5WQSgpJiZiLmNvbnRhaW5zKF8uVkEoKSk7KUNNKCk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgYyBvZiBhKV8uZ04oYyk7ZWxzZSBpZihhIGluc3RhbmNlb2YgXy5TYSlJTShhLnRvU3RyaW5nKCkpO2Vsc2UgaWYoXy5pQihhKSl7aWYoXy5WQSgpIT09YSl0aHJvdyBFcnJvcigiRGJgIithLnRhZ05hbWUrImAiKyhfLk11Py5uYW1lPz8idW5rbm93biIpKTtDTSgpfWVsc2UgaWYoYz1hLGMhPW51bGwmJmMuR2k9PT1fLm1CfHxjIGluc3RhbmNlb2YgXy5mYnx8Xy5MQSgpKGMpKXtiPV8ucEIoYSk7Yj1BcnJheS5mcm9tKGIuY2hpbGROb2Rlcyk7Zm9yKHZhciBkIG9mIGIpXy5VQS5hcHBlbmRDaGlsZChkKSxDTSgpfWVsc2UgaWYoXy5YYShhKSYmKGE9YS50b1N0cmluZygpKSxkPXR5cGVvZiBhLApkPT09ImJvb2xlYW4ifHxkPT09Im51bWJlciJ8fGQ9PT0ic3RyaW5nIilJTShhKTtlbHNlIGlmKHR5cGVvZiBhPT09ImZ1bmN0aW9uIiliPV8uVUEsKGQ9Xy5WQSgpKSYmKGQuX2lzU2lnbmFsVGV4dE5vZGV8fGQuX2lzU2FmZU9yU2FuaXRpemVkSHRtbE5vZGUpfHxHZ2EoYixkLGEpLENNKCk7ZWxzZSBpZihhLnR5cGU9PT1IZ2EpXy5nTihhLnR5cGUoT2JqZWN0LmFzc2lnbih7fSxhLnByb3BzLHtjaGlsZHJlbjphLmNoaWxkcmVuWzBdfSkpKTtlbHNle2lmKHR5cGVvZiBhLnR5cGU9PT0ic3RyaW5nIil7YTp7YS5jZHx8RU0oYS50eXBlLGEucHJvcHMuaWRvbUtleSk7Yz1fLlVBO2ZvcihiIGluIGEucHJvcHMpaWYoYS5wcm9wc1tiXSE9PV8uS2JhKXtkPWEucHJvcHNbYl07bGV0IGU9Xy5hQjtlLnB1c2goYik7ZS5wdXNoKGQpfUZnYShfLkt1LmF0dHJpYnV0ZXMpO18uakMoYyxhLnByb3BzLCEwKTtpZigoYS5wcm9wcy5za2lwfHxhLnByb3BzLnNraXBjaGlsZHJlbikmJl8uVUEuaGFzQ2hpbGROb2RlcygpKV8uWUE9Cl8uVUEubGFzdENoaWxkO2Vsc2V7aWYoYS50eXBlPT09InN0eWxlIiYmXy5SQihhLmNoaWxkcmVuKT09PW51bGwpe18uWUE9Xy5VQS5sYXN0Q2hpbGQ7Yj12b2lkIDA7YnJlYWsgYX1fLmdOKGEuY2hpbGRyZW4pfV8uWEEoKTtfLllBPV8uVUE7Xy5VQT1fLlVBLnBhcmVudE5vZGU7YS5jZCYmKGEuY2Q9ITEpO18uQUIoYyxhLnByb3BzKTtiPWN9cmV0dXJuIGJ9aWYoYS50eXBlPT09Xy5JQilfLmdOKGEuY2hpbGRyZW4pO2Vsc2UgaWYoIU1nYShhKSl7Yj1hO3RyeXtOZ2EoYil9Y2F0Y2goZSl7Xy5LdS5oYW5kbGVFcnJvcj8uKC4uLl8uSkEoZSxiLnR5cGU/LlpjKSl9Yi5jZCYmKF8uWEEoKSxfLllBPV8uVUEsXy5VQT1fLlVBLnBhcmVudE5vZGUsYi5jZD0hMSl9fX07T2dhPWZ1bmN0aW9uKGEsYil7dmFyIGM7YS5wcm90b3R5cGU/Lm9jPT09dm9pZCAwP2M9bmV3IF8ubUMoYixhKTpjPW5ldyBhKGIpO2Muaj1hO2Mud289e25leHRTdGF0ZTpjLnN0YXRlLE14OiExfTtyZXR1cm4gY307Ck5nYT1mdW5jdGlvbihhKXt2YXIgYj1hLnR5cGUsYz1iLlpjO2lmKGI9PT1lTilhLnByb3BzLmNoaWxkcmVuPWEuY2hpbGRyZW4sYihhLnByb3BzKTtlbHNle2EuY2hpbGRyZW4ubGVuZ3RoPjAmJihhLnByb3BzLmNoaWxkcmVuPWEuY2hpbGRyZW4pO3ZhciBkOyhkPWEucHJvcHMpLmlkb21LZXl8fChkLmlkb21LZXk9Yik7dmFyIGU9ITE7aWYoYyl7dmFyIGY9RU0oYyxhLnByb3BzLmlkb21LZXkpO2EuY2Q9ITA7dmFyIGg9Zi5fX2luc3RhbmNlfWh8fChlPSEwLGg9T2dhKGIsYS5wcm9wcyksaC5wcm9wcz1udWxsLGYmJihmLl9faW5zdGFuY2U9aCxoLmVsPWYpKTsoe25leHRTdGF0ZTpjfT1oLndvPz97bmV4dFN0YXRlOmguc3RhdGUsTXg6ITF9KTtoLndvPXZvaWQgMDtiLmx3JiYoYz1iLmx3KGEucHJvcHMsYykpO3ZhciBrPWgucHJvcHMsbD1oLnN0YXRlO2gucHJvcHM9YS5wcm9wcztoLnN0YXRlPWM7Yz0oKT0+e3ZhciBtPWg7Xy5idy5TbyhtKTt2YXIgbj1tLm9jKG0ucHJvcHMpOwpuPyhtLnByb3BzLmlkb21LZXkmJihuLnByb3BzLmlkb21LZXk9bS5wcm9wcy5pZG9tS2V5KSxtPW4pOm09dm9pZCAwO2lmKG49bSluLmNkPWEuY2QsbT1fLmdOKG4pLGEuY2Q9bi5jZCxiLlpjfHwobT8oYi5aYz1tLnRhZ05hbWUudG9Mb3dlckNhc2UoKSxtLl9faW5zdGFuY2U9aCxoLmVsPW0pOmguWmY/Lmxlbmd0aCYmXy5LdS5oYW5kbGVFcnJvcj8uKC4uLl8uSkEoRXJyb3IoIkNkIikpKSk7ZT8oaC5KaSgpLF8uYncuSmkoaCkpOihoLktpKGssbCksXy5idy5LaShoLGssYS5wcm9wcykpO2guR2YoKTtfLmJ3LkdmKGgpfTsoZD1oLm8pP18uR0EoZCxjLGgucHJvcHMuZGVidWdJbnN0YW5jZSk6YygpfX07Ck1nYT1mdW5jdGlvbihhKXt2YXIgYj1hLnR5cGU7aWYoYi5wcm90b3R5cGU/Lm9jIT09dm9pZCAwfHxiPT09ZU58fGIuY29tcG9uZW50VHlwZT09PV8uS3YpcmV0dXJuITE7YS5wcm9wcy5jaGlsZHJlbj1hLmNoaWxkcmVuLmxlbmd0aD4xP2EuY2hpbGRyZW46YS5jaGlsZHJlblswXTt2YXIgYz1hLnByb3BzLmlkb21LZXk/P2EudHlwZTtpZihfLlZBKCkmJl8uVkEoKVtfLldCXT8ua2V5PT09Yyl7Yj1fLlZBKCk7Yz1iW18uV0JdO2lmKCFjKXRocm93IEVycm9yKCJDYmAiK2IudGFnTmFtZSk7Yy5xQj8uKGEucHJvcHMpO1BnYShjKTtyZXR1cm4hMH1pZihRZ2EuaGFzKGIubmFtZSkpdGhyb3cgRXJyb3IoIkJiYCIrYi5uYW1lKyJgIisoXy5NdT8ubmFtZT8/InVua25vd24iKSk7YS5wcm9wcy5qbj0hMDsoYj1fLkdBKGEudHlwZSwoKT0+Xy5nQyhhLnR5cGUsYS5wcm9wcyksYS5wcm9wcy5kZWJ1Z0luc3RhbmNlKSkmJlJnYShiKTtyZXR1cm4hMH07CmhOPWZ1bmN0aW9uKGEpe2ZvcihsZXQgYj0wO2I8Xy5iQyhhKS5sZW5ndGg7YisrKUNNKCl9O1BnYT1mdW5jdGlvbihhKXt2YXIgYj1fLlZBKClbXy5XQl0/LnluO2lmKGIpaE4oYik7ZWxzZSBmb3IobGV0IGM9MDtjPGEuVXE7YysrKShiPV8uVkEoKVtfLldCXT8ueW4pP2hOKGIpOkNNKCl9O1JnYT1mdW5jdGlvbihhKXthPV8uR0IoYSk7YT1BcnJheS5pc0FycmF5KGEpP2E6W2FdO2ZvcihsZXQgYiBvZiBhKV8uVUEuaW5zZXJ0QmVmb3JlKGIsXy5WQSgpKSxDTSgpfTtpTj1mdW5jdGlvbihhLGIpe3JldHVybiBjPT57YSYmXy5kRShhKTtiJiZiKGMpfX07ak49ZnVuY3Rpb24oYSl7dmFyIGI9MjE7aWYoIWEpcmV0dXJuIGI7Yis9YS5oZWFkZXJUaXRsZT8yNzowO2IrPWEuaGVhZGVyVGl0bGUmJmEuaWg/NDowO3JldHVybiBiKz1hLmhlYWRlclRpdGxlJiZhLmhlYWRlclN1YnRpdGxlPzE2OjB9OwprTj1mdW5jdGlvbihhKXt2YXIgYj0wO2lmKCFhKXJldHVybiBiO2IrPWEuVWZ8fGEuVmY/NDg6MDtiKz1hLlBmfHxhLk1mPzMwOjA7cmV0dXJuIGIrPWEuVWZ8fGEuVmZ8fCFhLlBmJiYhYS5NZj8wOjEyfTsKU2dhPWZ1bmN0aW9uKGEse2tleTpiLHBheWxvYWQ6Y30pe2lmKGI9PT0iRHJhZyBTdGFydCIpcmV0dXJuey4uLmEsQ2M6ITEsVmU6Yy5jbGllbnRZfTtpZihiPT09IkRyYWcgTW92ZSIpe2I9TWF0aC5taW4oYy5UcCxjLmhxW2MuSGldKyhjLmZxPz9qTihjLmhlYWRlcikpLShjLk5wPz9rTihjLmZvb3RlcikpKTtsZXQgZD1NYXRoLm1heChjLm1wPy0xKihhLlZlLTI0KTowLGMuY2xpZW50WS1hLlZlKTtyZXR1cm57Li4uYSxPYjpkLEZjOk1hdGgubWluKGIsTWF0aC5tYXgoMCwoYS5QYz9iOmMucXApLWQpKX19cmV0dXJuIGI9PT0iU25hcCBUbyBGdWxsIFNjcmVlbiI/ey4uLmEsQ2M6ITEsT2I6MCxQYzohMCxGYzpjLm1heEhlaWdodH06Yj09PSJTbmFwIFRvIE5ldXRyYWwgUG9zaXRpb24iP3suLi5hLENjOiExLE9iOjAsUGM6ITEsRmM6Yy5tYXhIZWlnaHR9OmI9PT0iQ2xvc2UgU2hlZXQiP3suLi5hLENjOiEwLE9iOmMuY2xpZW50SGVpZ2h0LFBjOiExLEZjOmMubWF4SGVpZ2h0fTphfTsKVGdhPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBfLnRoLGM9YTtyZXR1cm57c3Vic2NyaWJlKGQpe2Iuc3Vic2NyaWJlKCJjaGFuZ2VkIixkKX0sZGlzcGF0Y2goZCxlKXtjPVNnYShjLHtrZXk6ZCxwYXlsb2FkOmV9KTtiLnB1Ymxpc2goImNoYW5nZWQiLGMpfX19O2xOPWZ1bmN0aW9uKGEpe3JldHVybiBiPT57Yi5zdG9wUHJvcGFnYXRpb24oKTtyZXR1cm4gYT8uKGIpfX07VWdhPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuInl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0UHJpbWFyeUJ1dHRvbkRlZmF1bHQiO2Nhc2UgMTpyZXR1cm4ieXRTcGVjQm90dG9tU2hlZXRMYXlvdXRQcmltYXJ5QnV0dG9uVHJhaWxpbmdQYWlyIjtjYXNlIDI6cmV0dXJuInl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0UHJpbWFyeUJ1dHRvblNwbGl0UGFpciI7Y2FzZSAzOnJldHVybiJ5dFNwZWNCb3R0b21TaGVldExheW91dFByaW1hcnlCdXR0b25QcmltYXJ5U3BsaXRQYWlyIn19O21OPWZ1bmN0aW9uKCl7Xy55KCkucmVzb2x2ZShfLmNMKS5KZSgpfTsKbk49ZnVuY3Rpb24oYSl7cmV0dXJue2hlYWRlclRpdGxlOmEuaGVhZGVyVGl0bGU/LigpLGhlYWRlclN1YnRpdGxlOmEuaGVhZGVyU3VidGl0bGU/LigpLFdmOmEuV2YsTmY6YS5OZixPZjphLk9mLFJlOmEuUmU/LigpLE1mOmEuTWY/LigpLFBmOmEuUGY/LigpLEhhOmEuSGE/LigpLHBmOmEucGY/LigpLEdrOmEuR2s/LigpLEdoOmEuR2gsZm9jdXNPbkNsb3NlOmEuZm9jdXNPbkNsb3NlPy4oKSxpc0Rpc2FibGVkOmEuaXNEaXNhYmxlZD8uKCksZGlzYWJsZWRDb21tYW5kOmEuZGlzYWJsZWRDb21tYW5kPy4oKSxVZTphLlVlLEdiOmEuR2IsU2U6YS5TZSxqaDphLmpoKCksWGk6YS5YaSgpLGhoOmEuaGgoKSxVZjphLlVmKCksVmY6YS5WZigpLGloOmEuaWgoKX19O3BOPWZ1bmN0aW9uKGEpe29OfHwob049Xy54TSgpKTtvTj8uc2V0KCJyZWNlbnQtY3VzdG9tLXNwZWVkIixTdHJpbmcoYSoxMDApKX07VmdhPWZ1bmN0aW9uKGEpe2E9YS50YXJnZXQudmFsdWVBc051bWJlcjtfLk1IKCk/LnNldFBsYXliYWNrUmF0ZShhKX07CldnYT1mdW5jdGlvbihhKXtwTihhLnRhcmdldC52YWx1ZUFzTnVtYmVyKX07WGdhPWZ1bmN0aW9uKGEpe18uTUgoKT8uc2V0UGxheWJhY2tSYXRlKGEpO3BOKGEpfTtxTj1mdW5jdGlvbihhKXtpZighYSlyZXR1cm57fTt2YXIgYj1hLmZvcmVncm91bmRUaXRsZUNvbG9yLGM9YS5iYWNrZ3JvdW5kQ29sb3I7YT1hLmJvcmRlckNvbG9yO3ZhciBkPSJ0ZXh0IjthP2Q9Im91dGxpbmUiOmMmJihkPSJmaWxsZWQiKTtyZXR1cm57dHlwZTpkLGN1c3RvbUNvbG9yczp7Y29sb3I6Yj9fLk5EKGIpOnZvaWQgMCxiYWNrZ3JvdW5kQ29sb3I6Yz9fLk5EKGMpOnZvaWQgMCxib3JkZXJDb2xvcjphP18uTkQoYSk6dm9pZCAwfX19OwphaGE9ZnVuY3Rpb24oe3JlbmRlcmVyOmEsSW06Yix3QTpjLFNjOmQsZHc6ZSxRZjpmLEJsOmgsaXNTdWJzY3JpYmU6az0hMSxDSjpsPSExLG9MOm09ITF9KXt2YXIgbj1ZZ2EoYSk7ayYmKG4uc3R5bGU9Im1vbm8iLG4udHlwZT0iZmlsbGVkIik7ZT0hYS5pY29ufHwhZSYmYS50ZXh0P2EuaWNvbj9hLmljb25Qb3NpdGlvbj09PSJCVVRUT05fSUNPTl9QT1NJVElPTl9UWVBFX1JJR0hUX09GX1RFWFQiPyJ0cmFpbGluZyI6ImxlYWRpbmciOnZvaWQgMDpmPyJpY29uLW9ubHkiOiJpY29uLW9ubHktNDAiO2U9PT0iaWNvbi1vbmx5LTQwIiYmKG4udHlwZT0idGV4dCIpO209ey4uLlpnYShhLG0pfTtsPSEhYS5pc1NlbGVjdGVkfHwhXy54KCJ3ZWJfcHJvcGFnYXRlX2lzX3ByZXNzZWRfa2lsbHN3aXRjaCIpJiYhIWw7Zj1hLmlzU2VsZWN0ZWQhPT12b2lkIDA7aD1oPT09dm9pZCAwP2EuaXNEaXNhYmxlZDpoO2s9YS50ZXh0P18uQUYoYS50ZXh0KTp2b2lkIDA7dmFyIHA9KHA9YS5hY2Nlc3NpYmlsaXR5RGF0YT8uYWNjZXNzaWJpbGl0eURhdGE/LmxhYmVsfHwKYS5hY2Nlc3NpYmlsaXR5Py5sYWJlbCk/cDpfLmFOKGEudGV4dCk7Yj0kZ2EoYSxiLGMpO2M9ck4oYSk7Yz8ubGVuZ3RoPyhjPV8uYkUoe2lubmVydHViZUNvbW1hbmQ6TE0oYykscWQ6ITB9KSxjPWM/LmhyZWY/Yzp2b2lkIDApOmM9dm9pZCAwO3JldHVybnsuLi5uLC4uLm0saWNvblBvc2l0aW9uOmUsLi4uZCxmb2N1c2VkOiExLHRvZ2dsZWQ6bCx0b2dnbGVhYmxlOmYsZGlzYWJsZWQ6aCxXYTprLGFjY2Vzc2liaWxpdHlMYWJlbDpwLG9uVGFwOmIsdWM6YywuLi5xTihhLmNvbG9yRGF0YT8uYmFzaWNDb2xvclBhbGV0dGVEYXRhKSxvbmVPZmZDdXN0b21UZXh0V3JhcDphLm9uZU9mZkN1c3RvbVRleHRXcmFwfX07JGdhPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZD0+e3ZhciBlPXJOKGEpO2IoZSxkKTtpZighYylmb3IobGV0IGYgb2YgZSlfLmRLKGYpfX07CnJOPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2EuY29tbWFuZCYmYi5wdXNoKGEuY29tbWFuZCk7YS5zZXJ2aWNlRW5kcG9pbnQmJmIucHVzaChhLnNlcnZpY2VFbmRwb2ludCk7YS5uYXZpZ2F0aW9uRW5kcG9pbnQmJmIucHVzaChhLm5hdmlnYXRpb25FbmRwb2ludCk7cmV0dXJuIGJ9O1pnYT1mdW5jdGlvbihhLGIpe2lmKGIpc3dpdGNoKGEuc2l6ZSl7Y2FzZSAiU0laRV9TTUFMTCI6cmV0dXJue3NpemU6IlMifTtjYXNlICJTSVpFX0xBUkdFIjpyZXR1cm57c2l6ZToiTCJ9O2Nhc2UgIlNJWkVfWExBUkdFIjpyZXR1cm57c2l6ZToiWEwifTtjYXNlICJTSVpFX1hTTUFMTCI6cmV0dXJue3NpemU6IlhTIn07ZGVmYXVsdDpyZXR1cm57c2l6ZToiTSJ9fXN3aXRjaChhLnN0eWxlKXtjYXNlICJTVFlMRV9DT01QQUNUX0dSQVkiOnJldHVybntzaXplOiJTIn07ZGVmYXVsdDpyZXR1cm57c2l6ZToiTSJ9fX07CllnYT1mdW5jdGlvbihhKXtzd2l0Y2goYS5zdHlsZSl7Y2FzZSAiU1RZTEVfVklTSUJMWV9ESVNBQkxFRCI6cmV0dXJue3N0eWxlOiJjYWxsLXRvLWFjdGlvbiIsdHlwZToidGV4dCIsc3RhdGU6ImRpc2FibGVkIn07Y2FzZSAiU1RZTEVfUFJJTUFSWSI6Y2FzZSAiU1RZTEVfUEFZTUVOVCI6Y2FzZSAiU1RZTEVfQ0FMTF9UT19BQ1RJT05fRklMTEVEIjpyZXR1cm57c3R5bGU6ImNhbGwtdG8tYWN0aW9uIix0eXBlOiJmaWxsZWQiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9DQUxMX1RPX0FDVElPTl9UT05BTCI6cmV0dXJue3N0eWxlOiJjYWxsLXRvLWFjdGlvbiIsdHlwZToidG9uYWwiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9PVVRMSU5FIjpjYXNlICJTVFlMRV9TVUdHRVNUSVZFIjpjYXNlICJTVFlMRV9TVUdHRVNURURfQUNUSU9OIjpyZXR1cm57c3R5bGU6ImNhbGwtdG8tYWN0aW9uIix0eXBlOiJvdXRsaW5lIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfQkxVRV9URVhUIjpjYXNlICJTVFlMRV9BTEVSVF9JTkZPIjpyZXR1cm57c3R5bGU6ImNhbGwtdG8tYWN0aW9uIiwKdHlwZToidGV4dCIsc3RhdGU6ImFjdGl2ZSJ9O2Nhc2UgIlNUWUxFX09WRVJMQVkiOnJldHVybntzdHlsZToib3ZlcmxheSIsdHlwZToiZmlsbGVkIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfV0hJVEVfV0lUSF9CT1JERVIiOnJldHVybntzdHlsZToib3ZlcmxheSIsdHlwZToib3V0bGluZSIsc3RhdGU6ImFjdGl2ZSJ9O2Nhc2UgIlNUWUxFX0xJR0hUX1RFWFQiOnJldHVybntzdHlsZToib3ZlcmxheSIsdHlwZToidGV4dCIsc3RhdGU6ImFjdGl2ZSJ9O2Nhc2UgIlNUWUxFX01PTk9fRklMTEVEX09WRVJMQVkiOnJldHVybntzdHlsZToib3ZlcmxheSIsdHlwZToiZmlsbGVkIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfTU9OT19UT05BTF9PVkVSTEFZIjpjYXNlICJTVFlMRV9EQVJLX09OX0JMQUNLIjpyZXR1cm57c3R5bGU6Im92ZXJsYXkiLHR5cGU6InRvbmFsIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfT1ZFUkxBWV9QUk9URUNURUQiOnJldHVybntzdHlsZToib3ZlcmxheS1kYXJrIiwKdHlwZToidG9uYWwiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9NT05PX0ZJTExFRCI6Y2FzZSAiU1RZTEVfREVTVFJVQ1RJVkUiOnJldHVybntzdHlsZToibW9ubyIsdHlwZToiZmlsbGVkIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfREVGQVVMVCI6Y2FzZSAiU1RZTEVfQ09NUEFDVF9HUkFZIjpjYXNlICJTVFlMRV9NT05PX1RPTkFMIjpyZXR1cm57c3R5bGU6Im1vbm8iLHR5cGU6InRvbmFsIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfSU5BQ1RJVkVfT1VUTElORSI6Y2FzZSAiU1RZTEVfTU9OT19PVVRMSU5FIjpyZXR1cm57c3R5bGU6Im1vbm8iLHR5cGU6Im91dGxpbmUiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9CTFVFX1RFWFRfV0lUSF9JTlZFUlNFX1RIRU1FIjpyZXR1cm57c3R5bGU6ImNhbGwtdG8tYWN0aW9uLWludmVyc2UiLHR5cGU6InRleHQiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9CUkFORF9HUkFESUVOVCI6cmV0dXJue3N0eWxlOiJicmFuZC1ncmFkaWVudCIsCnR5cGU6ImZpbGxlZCIsc3RhdGU6ImFjdGl2ZSJ9O2Nhc2UgIlNUWUxFX0dFTkVSQVRJVkVfR1JBRElFTlQiOnJldHVybntzdHlsZToiZ2VuLWFpLWdyYWRpZW50Iix0eXBlOiJmaWxsZWQiLHN0YXRlOiJhY3RpdmUifTtkZWZhdWx0OnJldHVybntzdHlsZToibW9ubyIsdHlwZToidGV4dCIsc3RhdGU6ImFjdGl2ZSJ9fX07CmRoYT1mdW5jdGlvbih7cmVuZGVyZXI6YSxlbGVtZW50OmIsdG9nZ2xlZDpjLEltOmQsUnU6ZSxTYzpmLGR3OmgsUWY6ayxCbDpsLG5MOm0sYWI6bn0pe3ZhciBwPWJoYShhLGMpO2g9IWEuZGVmYXVsdEljb258fCFoJiZhLmRlZmF1bHRUZXh0P2EuZGVmYXVsdEljb24/ImxlYWRpbmciOnZvaWQgMDprPyJpY29uLW9ubHkiOiJpY29uLW9ubHktNDAiO2g9PT0iaWNvbi1vbmx5LTQwIiYmKHAudHlwZT0idGV4dCIpO2E6c3dpdGNoKGEuc3R5bGU/LnN0eWxlVHlwZSl7Y2FzZSAiU1RZTEVfQ09NUEFDVF9HUkFZIjprPXtzaXplOiJTIn07YnJlYWsgYTtkZWZhdWx0Oms9e3NpemU6Ik0ifX1rPXsuLi5rfTt2YXIgcj0ocj1jJiZhLnRvZ2dsZWRUZXh0fHxhLmRlZmF1bHRUZXh0KT9fLkFGKHIpOnZvaWQgMDttPyhtPV8uYU4oYyYmYS50b2dnbGVkVGV4dHx8YS5kZWZhdWx0VGV4dCkpJiZuJiYhaXNOYU4oTnVtYmVyKG4ubnVtYmVyVmFsdWUpKT8obi5YYj1tLGMmJihuLm51bWJlclZhbHVlKz0KMSkpOm49dm9pZCAwOm49dm9pZCAwO209KG09KGM/YS50b2dnbGVkQWNjZXNzaWJpbGl0eURhdGF8fGEudG9nZ2xlZFRleHQ/LmFjY2Vzc2liaWxpdHk6YS5hY2Nlc3NpYmlsaXR5RGF0YXx8YS5kZWZhdWx0VGV4dD8uYWNjZXNzaWJpbGl0eSk/LmFjY2Vzc2liaWxpdHlEYXRhPy5sYWJlbHx8YS5hY2Nlc3NpYmlsaXR5Py5sYWJlbCk/bTpfLmFOKGMmJmEudG9nZ2xlZFRleHR8fGEuZGVmYXVsdFRleHQpO2w9bD09PXZvaWQgMD9hLmlzRGlzYWJsZWQ6bDtiPWNoYShhLGMsZCxiLGUpO2Q9c04oYSxjKTtkPy5sZW5ndGg/KGQ9Xy5iRSh7aW5uZXJ0dWJlQ29tbWFuZDpMTShkKSxxZDohMH0pLGQ9ZD8uaHJlZj9kOnZvaWQgMCk6ZD12b2lkIDA7cmV0dXJuey4uLnAsLi4uayxpY29uUG9zaXRpb246aCwuLi5mLGZvY3VzZWQ6ITEsdG9nZ2xlZDohIWMsdG9nZ2xlYWJsZTohMCxXYTpyLGFiOm4sYWNjZXNzaWJpbGl0eUxhYmVsOm0sZGlzYWJsZWQ6bCxvblRhcDpiLHVjOmQsLi4ucU4oYS5jb2xvckRhdGE/LmJhc2ljQ29sb3JQYWxldHRlRGF0YSl9fTsKY2hhPWZ1bmN0aW9uKGEsYixjLGQsZT17fSl7cmV0dXJuIGY9Pnt2YXIgaD1hLmxvZ2dpbmdEaXJlY3RpdmVzPy5jbGllbnRWZVNwZWM/LnVpVHlwZT9fLnV4KGEubG9nZ2luZ0RpcmVjdGl2ZXMuY2xpZW50VmVTcGVjLnVpVHlwZSk6dm9pZCAwO2UuY2xpY2tlZFZpc3VhbEVsZW1lbnR8fChlLmNsaWNrZWRWaXN1YWxFbGVtZW50PWgpO2g9c04oYSxiKTtjKGgsZik7Zm9yKGxldCBuIG9mIGgpe2g9bjt2YXIgaz1kLGw9ZixtPWU7bS5mb3JtP20uZm9ybS5ldmVudD1sOm0uZm9ybT17ZWxlbWVudDprLGV2ZW50Omx9O18uZEsoaCxtKX19fTsKc049ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtiPyhhLnRvZ2dsZWRDb21tYW5kJiZjLnB1c2goYS50b2dnbGVkQ29tbWFuZCksYS50b2dnbGVkU2VydmljZUVuZHBvaW50JiZjLnB1c2goYS50b2dnbGVkU2VydmljZUVuZHBvaW50KSk6KGEuZGVmYXVsdENvbW1hbmQmJmMucHVzaChhLmRlZmF1bHRDb21tYW5kKSxhLmRlZmF1bHRTZXJ2aWNlRW5kcG9pbnQmJmMucHVzaChhLmRlZmF1bHRTZXJ2aWNlRW5kcG9pbnQpLGEuZGVmYXVsdE5hdmlnYXRpb25FbmRwb2ludCYmYy5wdXNoKGEuZGVmYXVsdE5hdmlnYXRpb25FbmRwb2ludCkpO3JldHVybiBjfTsKYmhhPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS50b2dnbGVkU3R5bGV8fGEuc3R5bGU7c3dpdGNoKChiP2M6YS5zdHlsZSk/LnN0eWxlVHlwZSl7Y2FzZSAiU1RZTEVfVklTSUJMWV9ESVNBQkxFRCI6cmV0dXJue3N0eWxlOiJjYWxsLXRvLWFjdGlvbiIsdHlwZToidGV4dCIsc3RhdGU6ImRpc2FibGVkIn07Y2FzZSAiU1RZTEVfUFJJTUFSWSI6Y2FzZSAiU1RZTEVfUEFZTUVOVCI6cmV0dXJue3N0eWxlOiJjYWxsLXRvLWFjdGlvbiIsdHlwZToiZmlsbGVkIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfU1VHR0VTVElWRSI6cmV0dXJue3N0eWxlOiJjYWxsLXRvLWFjdGlvbiIsdHlwZToib3V0bGluZSIsc3RhdGU6ImFjdGl2ZSJ9O2Nhc2UgIlNUWUxFX0JMVUVfVEVYVCI6cmV0dXJue3N0eWxlOiJjYWxsLXRvLWFjdGlvbiIsdHlwZToidGV4dCIsc3RhdGU6ImFjdGl2ZSJ9O2Nhc2UgIlNUWUxFX0RFU1RSVUNUSVZFIjpjYXNlICJTVFlMRV9NT05PX0ZJTExFRCI6cmV0dXJue3N0eWxlOiJtb25vIiwKdHlwZToiZmlsbGVkIixzdGF0ZToiYWN0aXZlIn07Y2FzZSAiU1RZTEVfT1ZFUkxBWSI6cmV0dXJue3N0eWxlOiJvdmVybGF5Iix0eXBlOiJmaWxsZWQiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9MSUdIVF9URVhUIjpyZXR1cm57c3R5bGU6Im92ZXJsYXkiLHR5cGU6InRleHQiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9NT05PX1RPTkFMX09WRVJMQVkiOnJldHVybntzdHlsZToib3ZlcmxheSIsdHlwZToidG9uYWwiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9ERUZBVUxUIjpjYXNlICJTVFlMRV9DT01QQUNUX0dSQVkiOnJldHVybntzdHlsZToibW9ubyIsdHlwZToidG9uYWwiLHN0YXRlOiJhY3RpdmUifTtjYXNlICJTVFlMRV9JTkFDVElWRV9PVVRMSU5FIjpyZXR1cm57c3R5bGU6Im1vbm8iLHR5cGU6Im91dGxpbmUiLHN0YXRlOiJhY3RpdmUifTtkZWZhdWx0OnJldHVybntzdHlsZToibW9ubyIsdHlwZToidGV4dCIsc3RhdGU6ImFjdGl2ZSJ9fX07Cl8udE49ZnVuY3Rpb24oYSl7cmV0dXJuIF8uSyhfLmdHLHtwYTooKT0+W2EuY29tcG9uZW50KCldfSxiPT5iPy4oKSl9O2ZoYT1mdW5jdGlvbihhLGIsYyl7aWYoYz09PW51bGx8fGM9PT12b2lkIDApcmV0dXJuIGM7dmFyIGQ9Xy5nQihhLnRhZ05hbWUudG9Mb3dlckNhc2UoKSxiLCgpPT57dGhyb3cgRXJyb3IoIm1jIik7fSk7aWYoZD09PW51bGwpcmV0dXJuIGM7ZD1laGFbZF07aWYoZC5oZT8uKGMpKXtpZihkLktkKXJldHVybiBkLktkKGMpO3Rocm93IEVycm9yKCJEZCIpO31yZXR1cm4gZC5wZD9kLnBkKGEudGFnTmFtZSxiLFN0cmluZyhjKSk6Y307Xy51Tj1mdW5jdGlvbihhKXtyZXR1cm4gYS5mb3JlZ3JvdW5kVGl0bGVDb2xvcj09PSJUSEVNRV9BVFRSSUJVVEVfVEVYVF9ESVNBQkxFRCJ8fGEuZm9yZWdyb3VuZEljb25Db2xvcj09PSJUSEVNRV9BVFRSSUJVVEVfSUNPTl9ESVNBQkxFRCJ9O3ZOPWZ1bmN0aW9uKGEpe2lmKGEmJl8uS00oYSkpcmV0dXJuIGF9OwpYPWZ1bmN0aW9uKGEsYil7KGI9Xy5hQShhLHt9LGIpKXx8Xy5XaShFcnJvcigiRWRgIithKSk7cmV0dXJuIGJ9O18ud049ZnVuY3Rpb24oYSl7cmV0dXJue3VybEVuZHBvaW50Ont1cmw6YX0sY29tbWFuZE1ldGFkYXRhOnt3ZWJDb21tYW5kTWV0YWRhdGE6e3VybDphfX19fTtfLnhOPWZ1bmN0aW9uKCl7cmV0dXJuIF8ub00oKS5nZXRTdGF0ZSgpLnRpPy5qan07Xy55Tj1mdW5jdGlvbihhKXtfLnkoKS5yZXNvbHZlKF8uY0wpLndnKHtRazphfSl9O18uek49ZnVuY3Rpb24oKXtfLnkoKS5yZXNvbHZlKF8uY0wpLkplKCl9O18uQk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1hPy5wYXJlbnRFbGVtZW50Py5jaGlsZHJlbjtpZihjKWZvcihsZXQgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXtsZXQgZT1jW2RdO2NbZF0hPT1hJiYoYj9lLnNldEF0dHJpYnV0ZSgiaW5lcnQiLCJ0cnVlIik6ZS5yZW1vdmVBdHRyaWJ1dGUoImluZXJ0IiksQU4oZSxiKSl9fTsKQU49ZnVuY3Rpb24oYSxiKXtiPyhhLmhhc0F0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKSYmYS5zZXRBdHRyaWJ1dGUoImRhdGEtb2xkLWFyaWEtaGlkZGVuIixhLmdldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKSksYS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpKTooYS5oYXNBdHRyaWJ1dGUoImRhdGEtb2xkLWFyaWEtaGlkZGVuIikmJihhLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLGEuZ2V0QXR0cmlidXRlKCJkYXRhLW9sZC1hcmlhLWhpZGRlbiIpKSxhLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1vbGQtYXJpYS1oaWRkZW4iKSksYS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIikpfTtDTj1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGxheWVyLWNvbnRhaW5lci1pZCIpO2ImJkFOKGIsYSl9OwpnaGE9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudDtyZXR1cm4oYT1hLnNjcm9sbGluZ0VsZW1lbnQ/YS5zY3JvbGxpbmdFbGVtZW50Ol8uY3J8fGEuY29tcGF0TW9kZSE9IkNTUzFDb21wYXQiP2EuYm9keXx8YS5kb2N1bWVudEVsZW1lbnQ6YS5kb2N1bWVudEVsZW1lbnQpJiZ0eXBlb2YgYS5zY3JvbGxUb3A9PT0ibnVtYmVyIj9hLnNjcm9sbFRvcDp0eXBlb2Ygd2luZG93LnBhZ2VZT2Zmc2V0PT09Im51bWJlciI/d2luZG93LnBhZ2VZT2Zmc2V0OjB9OwpfLkpOPWZ1bmN0aW9uKGEsYj1kb2N1bWVudC5hY3RpdmVFbGVtZW50LGM9ITEpe2EhPT1fLkROW18uRE4ubGVuZ3RoLTFdJiZfLkROLnB1c2goYSk7YiE9PWRvY3VtZW50LmJvZHk/RU4uc2V0KGEsYik6RU4uaGFzKGEpfHxFTi5zZXQoYSxudWxsKTtjP18uT0UoKCk9PntoaGEoYSxhLnF1ZXJ5U2VsZWN0b3IoImRpYWxvZyIpKX0pOl8uT0UoKCk9PnthPy5xdWVyeVNlbGVjdG9yKCJkaWFsb2ciKT8uZm9jdXMoKX0pO18uRE4ubGVuZ3RoPjF8fChGTj1naGEoKSxfLkJOKGEsITApLEdOJiZITiYmY2FuY2VsQW5pbWF0aW9uRnJhbWUoR04pLElOPXJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e18ueE4oKXx8KGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJtb2RhbC1vcGVuLWJvZHkiLCIiKSxkb2N1bWVudC5ib2R5LnN0eWxlLnRvcD1gLSR7Rk59cHhgLHdpbmRvdy5zY3JvbGxUbygwLC1GTiksSU49bnVsbCl9KSl9OwppaGE9ZnVuY3Rpb24oYSl7cmV0dXJuIEFycmF5LmZyb20oYS5xdWVyeVNlbGVjdG9yQWxsKCdhLGlucHV0Om5vdChbZGlzYWJsZWRdKSxzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLGJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6bm90KC5tb2RhbC1oaWRkZW4tYnV0dG9uKSxbdGFiaW5kZXg9IjAiXScpKS5maWx0ZXIoYj0+e2lmKGIudGV4dENvbnRlbnQpcmV0dXJuITA7aWYoYiBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpe2lmKCFiLmxhYmVscylyZXR1cm4hMTtmb3IobGV0IGMgb2YgYi5sYWJlbHMpaWYoYy50ZXh0Q29udGVudClyZXR1cm4hMH1yZXR1cm4hMX0pfTsKaGhhPWZ1bmN0aW9uKGEsYil7dmFyIGM9aWhhKGEpLGQ9Y1swXTtpZighZCYmYiliLmZvY3VzKCk7ZWxzZXt2YXIgZT1jW2MubGVuZ3RoLTFdO2lmKGQpe2QuZm9jdXMoKTtsZXQgZj1oPT57aC5rZXlDb2RlPT09MjcmJihhLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGYpLF8uS04oYSkpO2gua2V5Q29kZSE9PTM4JiZoLmtleUNvZGUhPT00MCYmaC5rZXlDb2RlIT09OXx8amhhKGQsZSl9O2EuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZil9fX07amhhPWZ1bmN0aW9uKGEsYil7aWYoIUxOKXtMTj0hMDt2YXIgYz1NTigpO2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYyxhKTtjLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLCgpPT57Yi5mb2N1cygpfSk7Yz1NTigpO2IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYyxiLm5leHRTaWJsaW5nKTtjLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLCgpPT57YS5mb2N1cygpfSl9fTsKTU49ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7YS5jbGFzc05hbWU9Im1vZGFsLWhpZGRlbi1idXR0b24iO2Euc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIik7YS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpO3JldHVybiBhfTsKXy5LTj1mdW5jdGlvbihhKXt2YXIgYj1FTi5nZXQoYSk7RU4uZGVsZXRlKGEpO2lmKGtoYSl7aWYoXy5CTihhLCExKSxfLldNKCkmJmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInl0bS1lbmdhZ2VtZW50LXBhbmVsIikmJkNOKCEwKSxfLnhiKF8uRE4sYSksXy5ETi5sZW5ndGghPT0wKXtiJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntfLmROKGIpfSk7cmV0dXJufX1lbHNle18ueGIoXy5ETixhKTtpZihfLkROLmxlbmd0aCE9PTApe2ImJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e18uZE4oYil9KTtyZXR1cm59Xy5CTihhLCExKTtfLldNKCkmJmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInl0bS1lbmdhZ2VtZW50LXBhbmVsIikmJkNOKCEwKX1JTiYmSE4mJmNhbmNlbEFuaW1hdGlvbkZyYW1lKElOKTtHTj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pntkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgibW9kYWwtb3Blbi1ib2R5Iik7ZG9jdW1lbnQuYm9keS5zdHlsZS50b3A9CiIiO2ImJl8uZE4oYik7Xy5mcj9fLk9FKCgpPT57d2luZG93LnNjcm9sbFRvKDAsRk4pfSk6d2luZG93LnNjcm9sbFRvKDAsRk4pO0dOPW51bGx9KX07bGhhPWZ1bmN0aW9uKGEsYixjPV8uTk4pe2lmKGEpe3ZhciBkPV8ueSgpLnJlc29sdmUoXy5MeCk7ZD9fLkp4KGEse2RhdGE6YixvYnNlcnZlcjpkLE5iOmMsTmM6Xy5uRixlYjpfLm1GLGxheWVyOmEubGF5ZXJ9KTpfLklwKG5ldyBfLlhqKCJXYXJuaW5nOiBtb25pdG9yVmlzaWJpbGl0eSBjYWxsZWQgd2l0aCBudWxsIG9ic2VydmVyIixhLnRhZ05hbWUsYj8ubG9nZ2luZ0RpcmVjdGl2ZXMsYj8udHJhY2tpbmdQYXJhbXMpKX1lbHNlIF8uSXAobmV3IF8uWGooIldhcm5pbmc6IG1vbml0b3JWaXNpYmlsaXR5IGNhbGxlZCB3aXRoIG51bGwgZWxlbWVudCIsYj8ubG9nZ2luZ0RpcmVjdGl2ZXMsYj8udHJhY2tpbmdQYXJhbXMsYj8ucmVuZGVyZXJDb250ZXh0KSl9OwptaGE9ZnVuY3Rpb24oYSxiKXthJiZfLk9FKCgpPT57bGhhKGEsYixfLk5OKX0pfTtRTj1mdW5jdGlvbihhKXtyZXR1cm4gYT09PSJTSE9SVFNfTElLRSImJl8ueCgiZW5hYmxlX3Nob3J0c19oZWFydF9pY29uX2luX3Nob3J0c193YXRjaF9wYWdlIik/InNob3J0c190aHVtYnNfdXAiOl8ueCgiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyIpJiZhJiZPTlthXT9PTlthXTphJiZQTlthXT9QTlthXTphfTtuaGE9ZnVuY3Rpb24oKXtpZihSTil7dmFyIGE9Xy55KCkucmVzb2x2ZShfLkluKFNOKSk7Uk49ITE7YT8udigpfX07b2hhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iW2IubGVuZ3RoLTFdIT09IiQiO2M9ZmhhKGEsYixjKTtkP2FbYl09YzooZD1jPT1udWxsP251bGw6U3RyaW5nKGMpLF8uUUEoYSxiLnNsaWNlKDAsLTEpLGQpKX07ClROPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiPWEuY29tcG9uZW50O2ImJihiPy5ldmVudHM/LnB1Ymxpc2goIkRJU0NPTk5FQ1RFRCIpLGI/LmRLPy4oKSk7YS5MSD8uSGY/LigpO2ZvcihiPTA7YjxhLmNoaWxkTm9kZXMubGVuZ3RoO2IrKylUTihhLmNoaWxkTm9kZXNbYl0pfX07Xy5VTj1mdW5jdGlvbigpe3JldHVybiBfLkZKLnRoZW4oKCk9Pnt3aW5kb3cubG9jYXRpb24uaGFzaD09PSIjbWVudSImJihfLllNP18uJE0oIiIpOl8uWk0oKSk7cmV0dXJuIF8uRkp9KX07CnFoYT1mdW5jdGlvbihhKXt2YXIgYj17c3RhY2s6W10sZXJyb3I6dm9pZCAwLGhhc0Vycm9yOiExfTt0cnl7aWYoYS5pc0Rpc2FibGVkJiZhLmRpc2FibGVkQ29tbWFuZClfLkFKKGEuZGlzYWJsZWRDb21tYW5kLGEsITEpO2Vsc2V7Vk49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbnUiKTtWTnx8KFZOPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLFZOLmlkPSJtZW51Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKFZOKSk7d2luZG93LmxvY2F0aW9uLmhhc2ghPT0iI21lbnUiJiZfLiRNKCJtZW51Iik7Vk4uY2xhc3NOYW1lPWEuaXNGdWxsV2lkdGg/Im1lbnUtY29udGFpbmVyIG1lbnUtZnVsbC13aWR0aCI6Im1lbnUtY29udGFpbmVyIjthLmNsYXNzTmFtZSYmKFZOLmNsYXNzTmFtZSs9IiAiK2EuY2xhc3NOYW1lKTsic2Nyb2xsVG8iaW4gVk4mJlZOLnNjcm9sbFRvKDAsMCk7dmFyIGM9YS5GQXx8Xy5tRygpO18uVnooYixfLnZNKGEub3duZXImJiFhLm93bmVyLmlhPwphLm93bmVyOm51bGwpKTtfLngoIm13ZWJfYzNfbWVudV9zaWduYWxzX3JlbmRlciIpPyhwaGEoYSksV058fChXTj1fLnhGKFZOLCgpPT5fLksoXy5JQixudWxsLF8uSyhYTix7RGg6KCk9PllOKCl9LF8uSyhfLnROLHtjb21wb25lbnQ6KCk9Pnt2YXIgZD1ZTigpO2lmKGQpcmV0dXJuKCk9Pl8ucEcoY3x8e30sKCk9Pl8uSyhfLnROLHtjb21wb25lbnQ6KCk9PmQuY29udGVudH0pKX19KSksXy5LKF8uWk4se2xhYmVsOl8uJE4uQ0xPU0Usb25jbGljazpfLlVOfSkpLHtJazpfLlhDfSkpKTooXy5mTihWTixudWxsKSxfLmZOKFZOLF8uSyhfLklCLG51bGwsXy5LKFhOLHtEaDphfSxhLmNvbnRlbnQoKSksXy5LKF8uWk4se2xhYmVsOl8uJE4uQ0xPU0Usb25jbGljazpfLlVOfSkpKSk7YS5ybj09PXZvaWQgMCYmKGEucm49ITApO18uSk4oVk4sYS5mb2N1c09uQ2xvc2UsYS5ybil9fWNhdGNoKGQpe2IuZXJyb3I9ZCxiLmhhc0Vycm9yPSEwfWZpbmFsbHl7Xy5XeihiKX19OwphTz1mdW5jdGlvbigpe1ZOJiZ3aW5kb3cubG9jYXRpb24uaGFzaCE9PSIjbWVudSImJihfLktOKFZOKSxfLngoIm13ZWJfYzNfbWVudV9zaWduYWxzX3JlbmRlciIpPyhXTj8uKCksV049dm9pZCAwKTpUTihWTiksVk4uaXNDb25uZWN0ZWQmJmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoVk4pLFZOPW51bGwpfTtyaGE9LyYvZztzaGE9LzwvZzt0aGE9Lz4vZzt1aGE9LyIvZzt2aGE9LycvZzt3aGE9L1x4MDAvZzt4aGE9L1tceDAwJjw+IiddLztfLndNPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaj1uZXcgXy56aChhKX1zZXQoYSxiLGMpe2M9YyE9PXZvaWQgMD9EYXRlLm5vdygpK2M6dm9pZCAwO3RoaXMuai5zZXQoYSxiLGMpfWdldChhKXtyZXR1cm4gdGhpcy5qLmdldChhKX1yZW1vdmUoYSl7dGhpcy5qLnJlbW92ZShhKX19O0VnYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMuaj1udWxsO3RoaXMubz1hO3RoaXMua2V5PWI7dGhpcy50ZXh0PXZvaWQgMH19O0ZNPVtdOwpITT0wO2JPPXsiKiI6e2FzeW5jOjEsZGlyOjAsbG9hZGluZzoyLHRhcmdldDozfX07eWhhPVt7YXV0bzohMCxsdHI6ITAscnRsOiEwfSx7YXN5bmM6ITB9LHtlYWdlcjohMCxsYXp5OiEwfSx7X3NlbGY6ITAsX2JsYW5rOiEwfV07T009bnVsbDtRTT17fTtJZ2E9IldFQl9QQUdFX1RZUEVfQUNDT1VOVFMgV0VCX1BBR0VfVFlQRV9XRUxDT01FIFdFQl9QQUdFX1RZUEVfQUNDT1VOVF9TRUxFQ1RPUiBXRUJfUEFHRV9UWVBFX1NJR05fSU5fSURFTlRJRklFUl9FTlRSWSBXRUJfUEFHRV9UWVBFX1NJR05fSU5fUEFTU1dPUkRfRU5UUlkgV0VCX1BBR0VfVFlQRV9TSUdOX0lOX0RFVklDRV9QUk9NUFRfQ0hBTExFTkdFIFdFQl9QQUdFX1RZUEVfUFJFTUlVTV9MSVRFX1VQU0VMTCBXRUJfUEFHRV9UWVBFX1VOS05PV04iLnNwbGl0KCIgIik7CkpnYT17RkV3aGF0X3RvX3dhdGNoOiJob21lIixGRWhhc2h0YWc6Imhhc2h0YWciLEZFdHJlbmRpbmc6InRyZW5kaW5nIixGRWhpc3Rvcnk6Imhpc3RvcnkiLFNQdW5saW1pdGVkOiJwcmVtaXVtIixGRW1lbWJlcnNoaXBzX2FuZF9wdXJjaGFzZXM6InBhaWRfbWVtYmVyc2hpcHMiLFNQcmVkZWVtX2NvZGU6InJlZGVlbSIsU1B2ZXJpZnlfbG9jYXRpb246ImxvY2F0ZSIsU1BtaW5vcl9tb21lbnQ6Im1pbm9yX21vbWVudCIsRkVtaW5pX2FwcF9jb250YWluZXI6Im1pbmlfYXBwIixGRW5ld3NfZGVzdGluYXRpb246Im5ld3MiLFNQb3Blbl9pbl9hcHA6Im9wZW5faW5fYXBwIixGRWV4cGxvcmU6ImV4cGxvcmUiLEZFc3Vic2NyaXB0aW9uczoic3Vic2NyaXB0aW9ucyIsRkVzZnZfYXVkaW9fcGl2b3Q6InNmdl9hdWRpb19waXZvdCIsRkVwbGF5bGlzdF9hZ2dyZWdhdGlvbjoicGxheWxpc3RfYWdncmVnYXRpb24ifTtfLllNPSExO3poYT17YUQ6InlvdXR1YmVfZmlsbCIsUkY6InlvdXR1YmVfb3V0bGluZSJ9OwpBaGE9e2pGOiJMSUtFIixFRjoiTk9USUZJQ0FUSU9OX0JFTEwifTtfLktCPV8ubEM7dmFyIFFnYT1uZXcgU2V0KFsiRm9yIiwiSWYiLCJNYXRjaCIsIldhdGNoIl0pLGNPPXtbXy5SQS5kZWZhdWx0XTooKT0+Xy56QixzdHlsZTooKT0+Xy56Qn07Zm9yKGxldCBhIGluIGNPKV8uS3UuYXR0cmlidXRlc1thXT1jT1thXShfLkt1LmF0dHJpYnV0ZXNbYV0pO18uQmhhPW5ldyBfLkkoInNpZ25JbkVuZHBvaW50Iik7Xy5kTz1uZXcgXy5JKCJsaWtlRW5kcG9pbnQiKTt2YXIgQ2hhPW5ldyBfLkkoImhvcml6b250YWxTbGlkZXJWaWV3TW9kZWwiKTt2YXIgRGhhPW5ldyBfLlZzKCJWSURFT19OT1RJQ0VTX1ZJRVdfTU9ERUxfVE9LRU4iKTt2YXIgRWhhPV8uTChhPT57ZnVuY3Rpb24gYihrKXt2YXIgbD1oKCktYS5zdGVwU2l6ZSgpO2QudmFsdWUudmFsdWVBc051bWJlcj1sO2QudmFsdWUuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0IikpO2QudmFsdWUuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImNoYW5nZSIpKTtrLnN0b3BQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIGMoayl7dmFyIGw9aCgpK2Euc3RlcFNpemUoKTtkLnZhbHVlLnZhbHVlQXNOdW1iZXI9bDtkLnZhbHVlLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIpKTtkLnZhbHVlLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJjaGFuZ2UiKSk7ay5zdG9wUHJvcGFnYXRpb24oKX12YXIgZD1fLnVFKCJpbnB1dCIpLFtlLGZdPV8uQUMoKCk9PmEudmFsdWUoKT8/MCksaD1lO18ubkUoKCk9Pnt2YXIgaz1kLnZhbHVlO2sudmFsdWVBc051bWJlcj1oKCk7dmFyIGw9aCgpLG09YS5taW5WYWx1ZSgpLG49YS5SbCgpO2suc3R5bGUuc2V0UHJvcGVydHkoIi0teXQtc2xpZGVyLXNoYXBlLWdyYWRpZW50LXBlcmNlbnQiLApgJHsobC1tKS9uKjEwMH0lYCl9LCJqVDVDQ2YiKTtyZXR1cm4gXy5LKCJzbGlkZXItc2hhcGUiLHtjbGFzczpfLlAoInl0U2xpZGVyU2hhcGVIb3N0Iix7eXRTbGlkZXJTaGFwZVZlcnRpY2FsOigpPT5hLmlzVmVydGljYWwoKX0pfSxfLksoXy5PLHtBOmEuVWosdGhlbjooKT0+Xy5LKCJidXR0b24iLHtjbGFzczoieXRTbGlkZXJTaGFwZUhvc3RJbmNyZW1lbnRCdXR0b24iLCJhcmlhLWxhYmVsIjphLmpsLGRpc2FibGVkOigpPT5oKCk9PT1hLm1pblZhbHVlKCksIm9uOmNsaWNrIjpifSxfLksoXy5VQyx7bW9kZWw6e2NpcmN1bGFyOiEwfX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0U2xpZGVyU2hhcGVIb3N0SW5jcmVtZW50QnV0dG9uSWNvbldyYXBwZXIifSxfLksoXy5NRCx7aWNvbjoiQkFSX0hPUklaT05UQUwiLGNsYXNzTmFtZToieXRTbGlkZXJTaGFwZUhvc3RJbmNyZW1lbnRCdXR0b25JY29uIn0pKSl9KSxfLksoImlucHV0Iix7Y2xhc3M6KCk9PmEuaXNWZXJ0aWNhbCgpPyJ5dFNsaWRlclNoYXBlVmVydGljYWxTbGlkZXIiOgoieXRTbGlkZXJTaGFwZUhvc3RTbGlkZXIiLHR5cGU6InJhbmdlIixpZDoic2xpZGVyIixlbDpkLG1pbjphLm1pblZhbHVlLG1heDphLm1heFZhbHVlLCJhcmlhLWxhYmVsIjphLmFyaWFMYWJlbCwiYXJpYS12YWx1ZW1pbiI6YS5taW5WYWx1ZSwiYXJpYS12YWx1ZW1heCI6YS5tYXhWYWx1ZSwiYXJpYS12YWx1ZW5vdyI6aCwiYXJpYS12YWx1ZXRleHQiOigpPT5TdHJpbmcoaCgpKSx2YWx1ZTpoLHN0ZXA6YS5zdGVwU2l6ZSwib246aW5wdXQiOmZ1bmN0aW9uKGspe2EuUmM/LihrKTtmKE51bWJlcihkLnZhbHVlPy52YWx1ZT8/MCkpO2suc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjpjaGFuZ2UiOmZ1bmN0aW9uKGspe2Eub25DaGFuZ2U/LihrKTtrLnN0b3BQcm9wYWdhdGlvbigpfX0pLF8uSyhfLk8se0E6YS5Vaix0aGVuOigpPT5fLksoImJ1dHRvbiIse2NsYXNzOiJ5dFNsaWRlclNoYXBlSG9zdEluY3JlbWVudEJ1dHRvbiIsImFyaWEtbGFiZWwiOmEuUGwsZGlzYWJsZWQ6KCk9PmgoKT09PQphLm1heFZhbHVlKCksIm9uOmNsaWNrIjpjfSxfLksoXy5VQyx7bW9kZWw6e2NpcmN1bGFyOiEwfX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0U2xpZGVyU2hhcGVIb3N0SW5jcmVtZW50QnV0dG9uSWNvbldyYXBwZXIifSxfLksoXy5NRCx7aWNvbjoiQUREIixjbGFzc05hbWU6Inl0U2xpZGVyU2hhcGVIb3N0SW5jcmVtZW50QnV0dG9uSWNvbiJ9KSkpfSkpfSwiT2EiKTt2YXIgRmhhPV8uTChhPT57dmFyIGI9KCk9Pnt2YXIgYztpZigoYz1hLmRhdGEoKSkmJmMubWF4VmFsdWUmJmMubWluVmFsdWUmJmMuc3RlcENvdW50KXt2YXIgZD1jLnZhbHVlRGVub21pbmF0b3I/PzEsZT0oYy5tYXhWYWx1ZS1jLm1pblZhbHVlKS9kO2M9e3ZhbHVlOihjLmluaXRpYWxWYWx1ZT8/Yy5taW5WYWx1ZSkvZCxhcmlhTGFiZWw6Xy5CKGMucmVuZGVyZXJDb250ZXh0LF8uWUMpPy5sYWJlbD8/IiIsbWluVmFsdWU6Yy5taW5WYWx1ZS9kLG1heFZhbHVlOmMubWF4VmFsdWUvZCxSbDplLHN0ZXBTaXplOmUvYy5zdGVwQ291bnQsb25DaGFuZ2U6aU4oYy5vblNsaWRlclZhbHVlU2V0Q29tbWFuZCxhLll5KSxSYzppTihjLm9uU2xpZGVyVG91Y2hDb21tYW5kLGEuZnopLFBsOl8uQihjLmluY3JlYXNlQnV0dG9uLF8uS0opPy5hY2Nlc3NpYmlsaXR5VGV4dD8/IiIsamw6Xy5CKGMuZGVjcmVhc2VCdXR0b24sXy5LSik/LmFjY2Vzc2liaWxpdHlUZXh0Pz8iIixpc1ZlcnRpY2FsOiExLApVajohIV8uQihjLmluY3JlYXNlQnV0dG9uLF8uS0opJiYhIV8uQihjLmRlY3JlYXNlQnV0dG9uLF8uS0opfX1lbHNlIGM9e307cmV0dXJuIGN9O3JldHVybiBfLksoImRpdiIse2NsYXNzOiJ5dEhvcml6b250YWxTbGlkZXJWaWV3TW9kZWxIb3N0In0sXy5LKEVoYSx7dmFsdWU6KCk9PmIoKS52YWx1ZSxhcmlhTGFiZWw6KCk9PmIoKS5hcmlhTGFiZWwsbWluVmFsdWU6KCk9PmIoKS5taW5WYWx1ZSxtYXhWYWx1ZTooKT0+YigpLm1heFZhbHVlLHN0ZXBTaXplOigpPT5iKCkuc3RlcFNpemUsUmw6KCk9PmIoKS5SbCxQbDooKT0+YigpLlBsLGpsOigpPT5iKCkuamwsaXNWZXJ0aWNhbDooKT0+YigpLmlzVmVydGljYWwsb25DaGFuZ2U6Yz0+e2IoKS5vbkNoYW5nZShjKX0sUmM6Yz0+e2IoKS5SYyhjKX0sVWo6KCk9PmIoKS5Van0pKX0sIlBhIik7dmFyIGVPPV8uTCgoe2RhdGE6YX0pPT5fLksoImRpdiIse2NsYXNzOiJ5dFBhbmVsSGVhZGVyVmlld01vZGVsVGl0bGVXcmFwcGVyIn0sXy5LKF8uTyx7QTooKT0+YSgpLnRpdGxlLHRoZW46Yj0+Xy5LKCJoMiIse2NsYXNzOl8uUCgieXRQYW5lbEhlYWRlclZpZXdNb2RlbFRpdGxlSGVhZGVyIix7eXRQYW5lbEhlYWRlclZpZXdNb2RlbFRpdGxlSGVhZGVyTm9uSW50ZXJhY3RpdmU6IV8ueCgid2ViX3BhbmVsX2hlYWRlcl90aXRsZV9ub25faW50ZXJhY3RpdmVfa2lsbHN3aXRjaCIpfSl9LF8uSyhfLlYse3RleHQ6YixjbGFzc05hbWU6Inl0UGFuZWxIZWFkZXJWaWV3TW9kZWxUaXRsZSJ9KSl9KSxfLksoXy5PLHtBOigpPT5hKCkuc3VidGl0bGUsdGhlbjpiPT5fLksoXy5WLHt0ZXh0OmIsY2xhc3NOYW1lOiJ5dFBhbmVsSGVhZGVyVmlld01vZGVsU3VidGl0bGUifSl9KSksIlFhIiksZk89Xy5MKCh7ZGF0YTphfSk9Pnt2YXIgYj1fLlRIKCgpPT5hKCkucmVuZGVyZXJDb250ZXh0KTtyZXR1cm4gXy5LKCJ5dC1wYW5lbC1oZWFkZXItdmlldy1tb2RlbCIsCntjbGFzczpfLlAoInl0UGFuZWxIZWFkZXJWaWV3TW9kZWxIb3N0Iix7eXRQYW5lbEhlYWRlclZpZXdNb2RlbEhvc3RIaWRlRGl2aWRlcjooKT0+ISFhKCkuc2hvdWxkSGlkZURpdmlkZXIseXRQYW5lbEhlYWRlclZpZXdNb2RlbEhvc3RDb21wYWN0OigpPT4hIWEoKS5zdWJ0aXRsZX0pLCJhcmlhLWxhYmVsIjooKT0+YigpPy5sYWJlbH0sXy5LKF8uTyx7QTooKT0+Xy50SChhKCkucmVuZGVyZXJDb250ZXh0KSx0aGVuOigpPT5fLksoXy5NSix7Y2xhc3NOYW1lOiJ5dFBhbmVsSGVhZGVyVmlld01vZGVsQnV0dG9uT3JBbmNob3IiLGNvbW1hbmQ6KCk9Pl8uc0goYSgpLnJlbmRlcmVyQ29udGV4dCksWnY6Inl0UGFuZWxIZWFkZXJWaWV3TW9kZWxCdXR0b25PckFuY2hvckZvY3VzZWQifSxfLksoZU8se2RhdGE6YX0pKSxXOigpPT5fLksoZU8se2RhdGE6YX0pfSksXy5LKCJkaXYiLHtjbGFzczoieXRQYW5lbEhlYWRlclZpZXdNb2RlbFRyYWlsaW5nQnV0dG9ucyJ9LF8uSyhfLlcse2RhdGE6KCk9PgphKCkudHJhaWxpbmdCdXR0b25zfSx7YnV0dG9uVmlld01vZGVsOih7ZGF0YTpjfSk9Pl8uSyhfLkhELHtkYXRhOmMsY2xhc3NOYW1lOiJ5dFBhbmVsSGVhZGVyVmlld01vZGVsQnV0dG9uIn0pfSkpKX0sIlJhIik7Zk8uaWRvbUNvbXBhdD0hMDt2YXIgZ089Xy5MKGE9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dFNwZWNCb3R0b21TaGVldExheW91dEhvc3QiLCJ5dFNwZWNCb3R0b21TaGVldExheW91dENvbnRhaW5lciIsInl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0TW9kZXJuIiksc3R5bGU6KCk9PmEuQ2MoKT9gdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR7YS5PYigpfXB4KTt0cmFuc2l0aW9uOiAwLjJzYDoiIn0sYS5oZWFkZXI/LigpLF8uSygiZGl2Iix7aWQ6YS5IaSxjbGFzczoieXRTcGVjQm90dG9tU2hlZXRMYXlvdXRDb250ZW50V3JhcHBlciIsc3R5bGU6Xy5JRSh7Im1heC1oZWlnaHQiOigwLF8uWkspKGEuRmMpfSksIm9uOnNjcm9sbCI6bE4oYS5qciksIm9uOnRvdWNobW92ZSI6bE4oKX0sXy5LKCJkaXYiLHtlbDpfLnJGKGEubnApLGNsYXNzOiJ5dFNwZWNCb3R0b21TaGVldExheW91dEJvdHRvbVNoZWV0Q29udGVudCIsIm9uOmNsaWNrIjpmdW5jdGlvbihiKXthLnBmPy4oKT9iLnN0b3BQcm9wYWdhdGlvbigpOmEuWXEoYil9fSwKYS5ib2R5Py4oKSkpLGEuZm9vdGVyPy4oKSksIlNhIik7Z08uaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntqcjohMCxucDohMCxZcTohMH19O3ZhciBoTz1fLkwoYT0+e3ZhciB7bGVhZGluZ0xhYmVsOmIsdHJhaWxpbmdMYWJlbDpjLFJlOmQscHJpbWFyeUJ1dHRvbjplLEl3OmYsc2Vjb25kYXJ5QnV0dG9uOmgsS3c6ayxPcDpsLEN3Om19PV8uREMoYSx7bGVhZGluZ0xhYmVsOnZvaWQgMCx0cmFpbGluZ0xhYmVsOnZvaWQgMCxSZTp2b2lkIDB9KSxuPSgpPT5iKCl8fGMoKXx8ZigpfHxrKCk7cmV0dXJuIF8uSyhfLk8se0E6bSx0aGVuOigpPT5fLksoXy5JQixudWxsLGw/LigpKSxXOigpPT5fLksoXy5PLHtBOm4sdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRTcGVjQm90dG9tU2hlZXRMYXlvdXRGb290ZXJXcmFwcGVyIn0sXy5LKF8uTyx7QTooKT0+YigpfHxjKCksdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczpfLlAoInl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0Rm9vdGVyTGFiZWxXcmFwcGVyIix7eXRTcGVjQm90dG9tU2hlZXRMYXlvdXRGb290ZXJMYWJlbFdyYXBwZXJXaXRob3V0QnV0dG9uczooKT0+IWYoKX0pfSxfLksoXy5PLAp7QTpiLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0TGVhZGluZ0xhYmVsIn0sYil9KSxfLksoXy5PLHtBOmMsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRTcGVjQm90dG9tU2hlZXRMYXlvdXRUcmFpbGluZ0xhYmVsIn0sYyl9KSl9KSxfLksoXy5PLHtBOigpPT5mKCl8fGsoKSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOl8uUCgieXRTcGVjQm90dG9tU2hlZXRMYXlvdXRGb290ZXJCdXR0b25XcmFwcGVyIix7eXRTcGVjQm90dG9tU2hlZXRMYXlvdXRGb290ZXJCdXR0b25XcmFwcGVyTGFuZHNjYXBlQnV0dG9uV3JhcHBlcjpfLkJjYX0pfSxfLksoXy5PLHtBOigpPT5rKCkmJmQoKSE9PTAsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczpfLlAoInl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0U2Vjb25kYXJ5QnV0dG9uIix7eXRTcGVjQm90dG9tU2hlZXRMYXlvdXRTZWNvbmRhcnlCdXR0b25UcmFpbGluZ1BhaXI6KCk9PmQoKT09PTEmJmsoKSwKeXRTcGVjQm90dG9tU2hlZXRMYXlvdXRTZWNvbmRhcnlCdXR0b25TcGxpdFBhaXI6KCk9PmQoKT09PTImJmsoKSx5dFNwZWNCb3R0b21TaGVldExheW91dFNlY29uZGFyeUJ1dHRvblByaW1hcnlTcGxpdFBhaXI6KCk9PmQoKT09PTMmJmYoKX0pfSxoPy4oKSl9KSxfLksoXy5PLHtBOmYsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczpfLlAoInl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0UHJpbWFyeUJ1dHRvbiIsKCk9PlVnYShkKCkpKX0sZT8uKCkpfSkpfSkpfSl9KX0sIlRhIik7aE8uaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntwcmltYXJ5QnV0dG9uOiEwLHNlY29uZGFyeUJ1dHRvbjohMCxPcDohMH19O3ZhciBpTz1fLkwoYT0+e3ZhciB7dGl0bGU6YixzdWJ0aXRsZTpjLGdxOmQsRHc6ZSx4bzpmLHh3Omgsd3M6ayx2czpsLHVzOm0sUXE6bixPdzpwLGlzRHJhZ2dpbmc6cn09Xy5EQyhhLHt0aXRsZTp2b2lkIDAsc3VidGl0bGU6dm9pZCAwfSk7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dFNwZWNCb3R0b21TaGVldExheW91dEhlYWRlcldyYXBwZXIiLHt5dFNwZWNCb3R0b21TaGVldExheW91dEhlYWRlcldyYXBwZXJJc0RyYWdnaW5nOnJ9KSxpZDpwLCJvbjp0b3VjaHN0YXJ0IjpsTihrKSwib246dG91Y2htb3ZlIjpsTihsKSwib246dG91Y2hlbmQiOmxOKG0pLCJvbjptb3VzZWRvd24iOmxOKG4pfSxfLksoImRpdiIse2NsYXNzOiJ5dFNwZWNCb3R0b21TaGVldExheW91dERyYWdMaW5lIn0pLF8uSyhfLk8se0E6ZSx0aGVuOigpPT5fLksoXy5JQixudWxsLGQ/LigpKSxXOigpPT5fLksoImRpdiIse2NsYXNzOl8uUCh7eXRTcGVjQm90dG9tU2hlZXRMYXlvdXRIZWFkZXI6ITAsCnl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0SGVhZGVyV2l0aFRpdGxlOmJ9KX0sXy5LKCJkaXYiLHtjbGFzczoieXRTcGVjQm90dG9tU2hlZXRMYXlvdXRUaXRsZVdyYXBwZXIifSxfLksoXy5PLHtBOmIsdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoImgyIix7Y2xhc3M6Inl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0VGl0bGUifSxiKSxfLksoXy5PLHtBOmMsdGhlbjooKT0+Xy5LKCJoMyIse2NsYXNzOiJ5dFNwZWNCb3R0b21TaGVldExheW91dFN1YnRpdGxlIn0sYyl9KSl9KSksXy5LKF8uTyx7QTooKT0+YigpJiZoKCksdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRTcGVjQm90dG9tU2hlZXRMYXlvdXRBY3Rpb25IZWFkZXIifSxmPy4oKSl9KSl9KSl9LCJVYSIpO2lPLmlkb21Db21wYXQ9e2NhbGxiYWNrczp7d3M6ITAsdnM6ITAsdXM6ITAsUXE6ITAseG86ITAsZ3E6ITAsaXNEcmFnZ2luZzohMH19O3ZhciBqTz1fLkwoYT0+e2Z1bmN0aW9uIGIoYWEpe2lmKCFZJiZ0eXBlb2YgTXV0YXRpb25PYnNlcnZlciE9PSJ1bmRlZmluZWQiKXt2YXIgT2E9e2NoaWxkTGlzdDohMH07Ik11dGF0aW9uT2JzZXJ2ZXIiaW4gd2luZG93JiYoWT1uZXcgTXV0YXRpb25PYnNlcnZlcihjLmJpbmQodm9pZCAwLGFhKSksWS5vYnNlcnZlKGFhLE9hKSl9fWZ1bmN0aW9uIGMoYWEpe3R5cGVvZiBZIT09InVuZGVmaW5lZCImJihwYVsiY29udGVudC13cmFwcGVyIl09PT12b2lkIDAmJihwYVsiY29udGVudC13cmFwcGVyIl09YWEuY2hpbGRyZW5bMF0uY2xpZW50SGVpZ2h0KSxHKHBhWyJjb250ZW50LXdyYXBwZXIiXSksIShDKCk+UigpKSYmQygpPjAmJk0oQygpKSl9ZnVuY3Rpb24gZCgpe0Uod2luZG93LmlubmVySGVpZ2h0KTshKEMoKT5SKCkpJiZDKCk+MCYmTShDKCkpO29hLlBjWzBdKCkmJkMoKT5SKCk/VSgpLmRpc3BhdGNoKCJTbmFwIFRvIEZ1bGwgU2NyZWVuIix7bWF4SGVpZ2h0OlMoKX0pOlUoKS5kaXNwYXRjaCgiU25hcCBUbyBOZXV0cmFsIFBvc2l0aW9uIiwKe21heEhlaWdodDpSKCl9KX1mdW5jdGlvbiBlKGFhKXtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvcj0ibm9uZSI7YWEucHJldmVudERlZmF1bHQoKTtVKCkuZGlzcGF0Y2goIkRyYWcgU3RhcnQiLHtjbGllbnRZOmFhLnRvdWNoZXNbMF0uY2xpZW50WX0pfWZ1bmN0aW9uIGYoYWEpe2FhLnByZXZlbnREZWZhdWx0KCk7VSgpLmRpc3BhdGNoKCJEcmFnIE1vdmUiLHtjbGllbnRZOmFhLnRvdWNoZXNbMF0uY2xpZW50WSxtcDpDKCk+UigpLFRwOlMoKSxxcDpSKCksaHE6cGEsSGk6ImNvbnRlbnQtd3JhcHBlciIsaGVhZGVyOm5OKGEpLGZvb3RlcjpuTihhKSxmcTpwYVsiYm90dG9tLXNoZWV0LWhlYWRlciJdLE5wOnBhWyJib3R0b20tc2hlZXQtZm9vdGVyIl19KX1mdW5jdGlvbiBoKGFhKXthYS5idXR0b249PT0wJiYoYWEucHJldmVudERlZmF1bHQoKSx0YSghMCksVSgpLmRpc3BhdGNoKCJEcmFnIFN0YXJ0Iix7Y2xpZW50WTphYS5jbGllbnRZfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsClQpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixrKSl9ZnVuY3Rpb24gaygpe3RhKCExKTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixUKTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsayk7bSgpfWZ1bmN0aW9uIGwoKXtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvcj0iIjttKCl9ZnVuY3Rpb24gbSgpe29hLlBjWzBdKCk/b2EuT2JbMF0oKT49NjA/VSgpLmRpc3BhdGNoKCJTbmFwIFRvIE5ldXRyYWwgUG9zaXRpb24iLHttYXhIZWlnaHQ6UigpfSk6VSgpLmRpc3BhdGNoKCJTbmFwIFRvIEZ1bGwgU2NyZWVuIix7bWF4SGVpZ2h0OlMoKX0pOm9hLk9iWzBdKCk+PTYwP24oKTpvYS5PYlswXSgpPD0tNjAmJkMoKT5SKCk/VSgpLmRpc3BhdGNoKCJTbmFwIFRvIEZ1bGwgU2NyZWVuIix7bWF4SGVpZ2h0OlMoKX0pOlUoKS5kaXNwYXRjaCgiU25hcCBUbyBOZXV0cmFsIFBvc2l0aW9uIix7bWF4SGVpZ2h0OlIoKX0pfQpmdW5jdGlvbiBuKCl7VSgpLmRpc3BhdGNoKCJDbG9zZSBTaGVldCIse2NsaWVudEhlaWdodDp6KCksbWF4SGVpZ2h0OjB9KTtzZXRUaW1lb3V0KCgpPT57bU4oKX0sMjUwKX12YXIgcD1fLnVFKCJkaXYiKSxyPV8udUUoImRpdiIpLFt0LHZdPV8uSih3aW5kb3cuaW5uZXJIZWlnaHQsdm9pZCAwLCJDbU9zVSIpLHo9dCxFPXYsW0EsRl09Xy5KKDAsdm9pZCAwLCJwMEZsaGIiKSxDPUEsRz1GLFtELEhdPV8uQUMoKCk9Pnt2YXIgYWE9bk4oYSk7cmV0dXJuLjYqeigpLWpOKGFhKS1rTihhYSl9KSxSPUQsTT1ILFM9KCk9Pnt2YXIgYWE9bk4oYSksT2E9eigpLEpiPXBhWyJib3R0b20tc2hlZXQtaGVhZGVyIl0semE9cGFbImJvdHRvbS1zaGVldC1mb290ZXIiXTtyZXR1cm4gT2EtKGFhLmpoJiZKYiE9PXZvaWQgMD9KYjpqTihhYSkpLShhYS5oaCYmemEhPT12b2lkIDA/emE6a04oYWEpKS0yNC0yNH0sWT1udWxsLHBhPXt9LG9hPXtWZTpfLkooMCx2b2lkIDAsInN4ZEVTZCIpLE9iOl8uSigwLAp2b2lkIDAsIkdaenFlYiIpLENjOl8uSighMSx2b2lkIDAsInZKQnVwYyIpLFBjOl8uSighMSx2b2lkIDAsIlh5UkRwIiksRmM6Xy5BQyhSKX0sVT0oKCk9Pnt2YXIgYWE9bnVsbDtyZXR1cm4oKT0+e2lmKCFhYSl7bGV0IE9hPXtWZTpvYS5WZVswXSgpLE9iOm9hLk9iWzBdKCksQ2M6b2EuQ2NbMF0oKSxQYzpvYS5QY1swXSgpLEZjOm9hLkZjWzBdKCl9O2FhPVRnYShPYSl9cmV0dXJuIGFhfX0pKCk7Xy5VSigoKT0+e3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGQpO1UoKS5zdWJzY3JpYmUoYWE9PntvYS5WZVsxXShhYS5WZSk7b2EuT2JbMV0oYWEuT2IpO29hLkNjWzFdKGFhLkNjKTtvYS5QY1sxXShhYS5QYyk7b2EuRmNbMV0oYWEuRmMpfSk7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57cC52YWx1ZSYmKHBhWyJib3R0b20tc2hlZXQtaGVhZGVyIl09cC52YWx1ZS5jbGllbnRIZWlnaHQpO3IudmFsdWUmJihwYVsiYm90dG9tLXNoZWV0LWZvb3RlciJdPXIudmFsdWUuY2xpZW50SGVpZ2h0KX0pfSk7Cl8uWXUoKCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixkKTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixUKTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsayk7WSYmKFkuZGlzY29ubmVjdCgpLFk9bnVsbCl9KTt2YXIgW2hhLG1hXT1fLkooITEsdm9pZCAwLCJLc2lUWWUiKSx0YT1tYSxUPWFhPT57VSgpLmRpc3BhdGNoKCJEcmFnIE1vdmUiLHtjbGllbnRZOmFhLmNsaWVudFksbXA6QygpPlIoKSxUcDpTKCkscXA6UigpLGhxOnBhLEhpOiJjb250ZW50LXdyYXBwZXIiLGhlYWRlcjpuTihhKSxmb290ZXI6bk4oYSksZnE6cGFbImJvdHRvbS1zaGVldC1oZWFkZXIiXSxOcDpwYVsiYm90dG9tLXNoZWV0LWZvb3RlciJdfSl9LGJhPV8uUCh7ImJvdHRvbS1zaGVldC1jb250ZW50LXdpdGhvdXQtaWNvbiI6KCk9PiFhLkhhPy4oKX0pO3JldHVybiBfLksoImJvdHRvbS1zaGVldC1sYXlvdXQiLG51bGwsXy5LKGdPLHtIaToiY29udGVudC13cmFwcGVyIiwKQ2M6KCk9Pm9hLkNjWzBdKCksT2I6KCk9Pm9hLk9iWzBdKCksRmM6KCk9Pm9hLkZjWzBdKCksSGE6YS5IYSxwZjphLnBmLGpyOigpPT57dmFyIGFhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3R0b20tc2hlZXQtaGVhZGVyIiksT2E9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQtd3JhcHBlciIpO2lmKGFhJiZPYSl7dmFyIEpiPXt5dFNwZWNCb3R0b21TaGVldExheW91dEhlYWRlcldyYXBwZXI6ITAseXRTcGVjQm90dG9tU2hlZXRMYXlvdXRIZWFkZXJXcmFwcGVyQm90dG9tQm9yZGVyOiEwfTthYS5jbGFzc05hbWU9T2Euc2Nyb2xsVG9wPjE/Xy5hTChKYik6Inl0U3BlY0JvdHRvbVNoZWV0TGF5b3V0SGVhZGVyV3JhcHBlciJ9fSxZcTptTixucDphYT0+e2IoYWEpO3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2MoYWEpfSl9LGhlYWRlcjooKT0+Xy5LKCJkaXYiLHtlbDpwfSxfLksoaU8se2lzRHJhZ2dpbmc6aGEsd3M6ZSx2czpmLHVzOmwsUXE6aCx0aXRsZTphLmhlYWRlclRpdGxlLApzdWJ0aXRsZTphLmhlYWRlclN1YnRpdGxlLE93OiJib3R0b20tc2hlZXQtaGVhZGVyIixncTphLlVlLER3OmEuamgseG86YS5XZix4dzphLmlofSkpLGZvb3RlcjooKT0+Xy5LKCJkaXYiLHtlbDpyfSxfLksoaE8se1JlOmEuUmUsbGVhZGluZ0xhYmVsOmEuTWYsdHJhaWxpbmdMYWJlbDphLlBmLHByaW1hcnlCdXR0b246YS5OZixJdzphLlVmLHNlY29uZGFyeUJ1dHRvbjphLk9mLEt3OmEuVmYsT3A6YS5TZSxDdzphLmhofSkpLGJvZHk6KCk9Pl8uSyhfLk8se0E6YS5YaSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOmJhfSxhLkdiPy4oKSl9KX0pKX0sIlZhIik7ak8uaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntXZjohMCxVZTohMCxHYjohMCxTZTohMCxOZjohMCxPZjohMH19O18uTChhPT57dmFyIGI9Xy55KCkucmVzb2x2ZShfLmNMKTtyZXR1cm4gXy5LKCJ5dC1jb250ZXh0dWFsLXNoZWV0LWxheW91dCIse2NsYXNzOl8uUCgieXRDb250ZXh0dWFsU2hlZXRMYXlvdXRIb3N0Iix7eXRDb250ZXh0dWFsU2hlZXRMYXlvdXRBZGRQYWRkaW5nOmEucnUseXRDb250ZXh0dWFsU2hlZXRMYXlvdXRIb3N0T2xkTWluV2lkdGg6KCk9PiEhYS5oYXNIZWFkZXI/LigpfHwhIWEuQnc/LigpfHxfLngoImVuYWJsZV9jb250ZXh0dWFsX3NoZWV0X29sZF9taW5fd2lkdGhfa2lsbHN3aXRjaCIpfSksZWw6Xy5yRihfLmRMKSwib246Y2xpY2siOigpPT57YT8udks/LigpfHxiLkplKCl9fSxfLksoXy5PLHtBOigpPT4hIWEuaGVhZGVyLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0Q29udGV4dHVhbFNoZWV0TGF5b3V0SGVhZGVyQ29udGFpbmVyIn0sYS5oZWFkZXIoKSl9KSxfLksoXy5PLHtBOigpPT4hIWEuY29udGVudCx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dENvbnRleHR1YWxTaGVldExheW91dENvbnRlbnRDb250YWluZXIifSwKYS5jb250ZW50KCkpfSksXy5LKF8uTyx7QTooKT0+ISFhLmZvb3Rlcix0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dENvbnRleHR1YWxTaGVldExheW91dEZvb3RlckNvbnRhaW5lciJ9LGEuZm9vdGVyKCkpfSkpfSwiV2EiKS5pZG9tQ29tcGF0PXtjYWxsYmFja3M6e2hlYWRlcjohMCxjb250ZW50OiEwLGZvb3RlcjohMCxoYXNIZWFkZXI6ITAsZ0o6ITAsQnc6ITAscnU6ITB9fTt2YXIgR2hhPV8uTCgoe2RhdGE6YSxjbGFzc05hbWU6YixvbkNsaWNrOmN9KT0+Xy5LKCJ5dHctdmFyaWFibGUtc3BlZWQtY29udHJvbGxlci1zcGVlZC1idXR0b24tdmlldy1tb2RlbCIse2NsYXNzOl8uUCgieXR3VmFyaWFibGVTcGVlZENvbnRyb2xsZXJTcGVlZEJ1dHRvblZpZXdNb2RlbEhvc3QiLGIpfSxfLksoXy5XLHtkYXRhOigpPT5hKCkucGxheWJhY2tTcGVlZEJ1dHRvbn0se2J1dHRvblZpZXdNb2RlbDooe2RhdGE6ZH0pPT5fLksoXy5IRCx7ZGF0YTpkLG9uQ2xpY2s6Y30pfSksXy5LKF8uVix7Y2xhc3NOYW1lOiJ5dHdWYXJpYWJsZVNwZWVkQ29udHJvbGxlclNwZWVkQnV0dG9uVmlld01vZGVsU3BlZWRMYWJlbCIsdGV4dDooKT0+YSgpLmJ1dHRvbkxhYmVsfSkpLCJYYSIpO3ZhciBvTjsKXy5rTz1fLkwoKHtkYXRhOmEscHo6Yj1WZ2Esb3o6Yz1XZ2EscXo6ZD1YZ2F9KT0+e3ZhciBbZSxmXT1fLkooMTAwLHZvaWQgMCwiZDBOS3liIiksW2gsa109Xy5KKCExLHZvaWQgMCwiWFh2Z2tiIiksbD1tPT57ZihtLnRhcmdldC52YWx1ZUFzTnVtYmVyKTtiPy4obSl9O18ubkUoKCk9PntpZihhKCkuc2xpZGVyKXt2YXIgbT1fLkIoYSgpLnNsaWRlcixDaGEpO20mJihtLmluaXRpYWxWYWx1ZSYmbS52YWx1ZURlbm9taW5hdG9yP2YobS5pbml0aWFsVmFsdWUvbS52YWx1ZURlbm9taW5hdG9yKTpmKDApKX19LCJSdkhEcmYiKTtyZXR1cm4gXy5LKCJ2YXJpYWJsZS1zcGVlZC1jb250cm9sbGVyLXZpZXctbW9kZWwiLHtjbGFzczoieXR3VmFyaWFibGVTcGVlZENvbnRyb2xsZXJWaWV3TW9kZWxIb3N0In0sXy5LKCJkaXYiLHtjbGFzczoieXR3VmFyaWFibGVTcGVlZENvbnRyb2xsZXJWaWV3TW9kZWxTcGVlZEluZGljYXRvckNvbnRhaW5lciJ9LF8uSyhfLk8se0E6KCk9PmUoKT4yLHRoZW46KCk9PgpfLksoImRpdiIse2NsYXNzOiJ5dHdWYXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbFByZW1pdW1CYWRnZSJ9LF8uSyhfLlcse2RhdGE6KCk9PmEoKS5iYWRnZX0se2JhZGdlVmlld01vZGVsOih7ZGF0YTptfSk9Pl8uSyhfLkVELHtkYXRhOm19KX0pKX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0d1ZhcmlhYmxlU3BlZWRDb250cm9sbGVyVmlld01vZGVsUGxheWJhY2tTcGVlZERpc3BsYXkiLCJhcmlhLWxpdmUiOiJwb2xpdGUiLCJhcmlhLWF0b21pYyI6InRydWUiLCJhcmlhLWJ1c3kiOmh9LCgpPT5fLmFBKCJQTEFZQkFDS19TUEVFRF9YIix7c3BlZWRfcmF0ZV9wbGFjZWhvbGRlcjpgJHtlKCkudG9GaXhlZCgyKX1gfSkpKSxfLksoImRpdiIse2NsYXNzOiJ5dHdWYXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbFNsaWRlckNvbnRhaW5lciIsIm9uOmZvY3VzaW4iOmZ1bmN0aW9uKG0pe20udGFyZ2V0LnRhZ05hbWU9PT0iSU5QVVQiJiZrKCEwKX0sIm9uOmZvY3Vzb3V0IjpmdW5jdGlvbihtKXttLnRhcmdldC50YWdOYW1lPT09CiJJTlBVVCImJmsoITEpfX0sXy5LKF8uVyx7ZGF0YTooKT0+YSgpLnNsaWRlcn0se2hvcml6b250YWxTbGlkZXJWaWV3TW9kZWw6KHtkYXRhOm19KT0+Xy5LKEZoYSx7ZGF0YTooKT0+KHsuLi5tKCksaW5pdGlhbFZhbHVlOmUoKSoxMDB9KSxmejpsLFl5OmN9KX0pKSxfLksoImRpdiIse2NsYXNzOiJ5dHdWYXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbEJ1dHRvbkNvbnRhaW5lciJ9LF8uSyhfLlcse2RhdGE6KCk9PmEoKS5wbGF5YmFja1NwZWVkQnV0dG9uc30se3ZhcmlhYmxlU3BlZWRDb250cm9sbGVyU3BlZWRCdXR0b25WaWV3TW9kZWw6KHtkYXRhOm19KT0+Xy5LKEdoYSx7ZGF0YTptLGNsYXNzTmFtZToieXR3VmFyaWFibGVTcGVlZENvbnRyb2xsZXJWaWV3TW9kZWxQbGF5YmFja1NwZWVkQnV0dG9uIixvbkNsaWNrOigpPT57dmFyIG49bSgpPy5wbGF5YmFja1NwZWVkQnV0dG9uQ2VudGlWYWx1ZTtuJiYoZihuLzEwMCksZD8uKG4vMTAwKSl9fSl9KSkpfSwiWmEiKTt2YXIgSGhhPW5ldyBfLlZzKCJDT05URU5UX0ZFRURCQUNLX1ZJRVdfTU9ERUxfVE9LRU4iKTt2YXIgbE89Xy5MKCh7ZGF0YTphfSk9Pnt2YXIgYj1fLnkoKS5yZXNvbHZlKF8uVUQpLGM9Xy5wSCh7TmI6KGYsaCk9PntfLngoInNoZWV0X2ZvY3VzX2ZpcnN0X2tpbGxzd2l0Y2giKXx8IWZ8fF8uekgoYT8uKCk/LnJlbmRlcmVyQ29udGV4dCl8fE1NKGgpfSxlYjp7VmI6ITEsc3RhdGU6InZpc2libGUifX0pLGQ9Xy55KCkucmVzb2x2ZShfLkluKEhoYSkpLGU9Xy55KCkucmVzb2x2ZShfLkluKERoYSkpO3JldHVybiBfLksoInl0LXNoZWV0LXZpZXctbW9kZWwiLHsib246bW91c2Vkb3duIjpmdW5jdGlvbihmKXtfLngoInNoZWV0X2ZvY3VzX2ZpcnN0X2tpbGxzd2l0Y2giKSYmZi5jdXJyZW50VGFyZ2V0IT09Zi50YXJnZXQmJmYucHJldmVudERlZmF1bHQoKX0sIm9uOmZvY3VzIjpmdW5jdGlvbihmKXtfLngoInNoZWV0X2ZvY3VzX2ZpcnN0X2tpbGxzd2l0Y2giKSYmTU0oZi5jdXJyZW50VGFyZ2V0KX0sIm9uOm1vdXNlbGVhdmUiOmZ1bmN0aW9uKCl7dmFyIGY9Xy56SChhPy4oKT8ucmVuZGVyZXJDb250ZXh0KTsKZiYmYi5yZXNvbHZlQ29tbWFuZChmKX0sY2xhc3M6Xy5QKCJ5dFNoZWV0Vmlld01vZGVsSG9zdCIse3l0U2hlZXRWaWV3TW9kZWxDb250ZXh0dWFsOiExLHl0U2hlZXRWaWV3TW9kZWxEaXNhYmxlQmFja2Ryb3BGaWx0ZXI6ITF9KSxlbDpfLnJGKGMpLHRhYmluZGV4Oi0xfSxfLksoXy5PLHtBOmEsdGhlbjpmPT5fLksoak8se1VlOigpPT5fLksoXy5XLHtkYXRhOigpPT5mKCkuaGVhZGVyfSx7cGFuZWxIZWFkZXJWaWV3TW9kZWw6Zk99KSxqaDohMCxpaDohMSxHYjooKT0+Xy5LKF8uVyx7ZGF0YTooKT0+ZigpLmNvbnRlbnR9LHtjaGVja2JveEdyb3VwVmlld01vZGVsOih7ZGF0YTpofSk9Pl8uSyhfLnRELHtkYXRhOmgsV2I6ITF9KSxyYWRpb0J1dHRvbkdyb3VwVmlld01vZGVsOih7ZGF0YTpofSk9Pl8uSyhfLkVMLHtkYXRhOmgsV2I6ITF9KSxsaXN0Vmlld01vZGVsOih7ZGF0YTpofSk9Pl8uSyhfLkJELHtkYXRhOmgsQmM6ITB9KSx2YXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbDpfLmtPLApsaW5lYXJMYXlvdXRWaWV3TW9kZWw6Xy5HTCx1cHNlbGxWaWV3TW9kZWw6Xy5oTCxtaW5pQXBwU2NvcmVDaGFsbGVuZ2VWaWV3TW9kZWw6Xy5qTCwuLi4oZSYme3ZpZGVvTm90aWNlc1ZpZXdNb2RlbDplfSksLi4uKGQmJntjb250ZW50RmVlZGJhY2tWaWV3TW9kZWw6KHtkYXRhOmh9KT0+Xy5LKGQse2RhdGE6aCxjbGFzc05hbWU6Inl0U2hlZXRWaWV3TW9kZWxQYWRkZWRDb250ZW50In0pfSl9KSxYaTohMCxTZTooKT0+Xy5LKF8uVyx7ZGF0YTooKT0+ZigpLmZvb3Rlcn0se3BhbmVsRm9vdGVyVmlld01vZGVsOl8uc0R9KSxoaDohMCxVZjohMSxWZjohMSxIYTohMH0pfSkpfSwiJGEiKTtsTy5pZG9tQ29tcGF0PSEwO18ubU89bmV3IF8uVnMoIklDT05fU0VUX1RPS0VOIik7Xy5uTz1uZXcgXy5WcygiSUNPTl9VUkxfUFJPVklERVJfVE9LRU4iKTtfLm9PPW5ldyBfLlZzKCJJQ09OX01BUF9GTl9UT0tFTiIpO3ZhciBTTj1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMuaj1hO3RoaXMubz1ifXYoKXt2YXIgYT0oXy54KCJlbmFibGVfd2ViX2RlbGhpX2ljb25zIik/SWhhOkpoYSk/P3RoaXMubztpZihhPy5sZW5ndGgpe2xldCBiPVtdO2E9KG5ldyBTZXQoYSkpLnZhbHVlcygpO2ZvcihsZXQgYyBvZiBhKWZvcihsZXQgZCBvZiBPYmplY3QudmFsdWVzKHpoYSkpYi5wdXNoKHtpY29uTmFtZTpjLGljb25TdHlsZTpkfSk7dGhpcy5qLnlhKGIpfWVsc2UgUHJvbWlzZS5yZXNvbHZlKCl9fTtTTltfLkxuXT1bXy5YTCxfLkluKG5ldyBfLlZzKCJQUkVGRVRDSF9JQ09OU19UT0tFTiIpKV07dmFyIEtoYT0vXig/IWphdmFzY3JpcHQ6KSg/OlthLXowLTkrLi1dKzp8W14mOlwvPyNdKig/OltcLz8jXXwkKSkvaSxlaGE9e1sxXTp7cGQ6bnVsbCxoZTpudWxsLEtkOm51bGx9LFsyXTp7cGQ6ZnVuY3Rpb24oYSxiLGMpe2E9Yzt4aGEudGVzdChhKSYmKGEuaW5kZXhPZigiJiIpIT0tMSYmKGE9YS5yZXBsYWNlKHJoYSwiJmFtcDsiKSksYS5pbmRleE9mKCI8IikhPS0xJiYoYT1hLnJlcGxhY2Uoc2hhLCImbHQ7IikpLGEuaW5kZXhPZigiPiIpIT0tMSYmKGE9YS5yZXBsYWNlKHRoYSwiJmd0OyIpKSxhLmluZGV4T2YoJyInKSE9LTEmJihhPWEucmVwbGFjZSh1aGEsIiZxdW90OyIpKSxhLmluZGV4T2YoIiciKSE9LTEmJihhPWEucmVwbGFjZSh2aGEsIiYjMzk7IikpLGEuaW5kZXhPZigiXHgwMCIpIT0tMSYmKGE9YS5yZXBsYWNlKHdoYSwiJiMwOyIpKSk7cmV0dXJuIGF9LGhlKGEpe3JldHVybiBhIGluc3RhbmNlb2YgXy5mYn0sS2Q6YT0+Xy55QShhKX0sWzNdOntwZDpmdW5jdGlvbihhLApiLGMpe3JldHVybiBLaGEudGVzdChjKT9jOl8uRnEudG9TdHJpbmcoKX0saGUoYSl7cmV0dXJuIF8uWGEoYSl9LEtkOmE9Pl8uWWEoYSl9LFs0XTp7cGQ6ZnVuY3Rpb24oKXtyZXR1cm4gXy5GcS50b1N0cmluZygpfSxoZShhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIF8uU2F9LEtkOmE9Pl8uVWEoYSkudG9TdHJpbmcoKX0sWzVdOntwZDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGN9LGhlKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifSxLZDphPT5hLnRvU3RyaW5nKCl9LFs3XTp7cGQ6ZnVuY3Rpb24oKXtyZXR1cm4iIC8qekNsb3N1cmV6Ki8gIn0saGUoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBfLmpifSxLZDphPT5fLmxiKGEpfSxbOF06e3BkKGEsYixjKXtjPVN0cmluZyhjKS50b0xvd2VyQ2FzZSgpO2E6e2xldCBkPW51bGw7KGE9Yk9bYV0pJiYoZD1hW2JdKTtpZih0eXBlb2YgZCE9PSJudW1iZXIiJiYoKGE9Yk9bIioiXSkmJihkPWFbYl0pLHR5cGVvZiBkIT09Im51bWJlciIpKXtiPQohMTticmVhayBhfWI9ITA9PT15aGFbZF1bU3RyaW5nKGMpLnRvTG93ZXJDYXNlKCldfXJldHVybiBiP2M6InpDbG9zdXJleiJ9LGhlOm51bGwsS2Q6bnVsbH0sWzEwXTp7cGQ6bnVsbCxoZTpudWxsLEtkOm51bGx9fTtfLnBPPV8uTCgoe2RhdGE6YSx0ZzpiLEhhOmMsaWNvbjpkLHByb2Nlc3NBbGxFbmRwb2ludHM6ZSxwcmV2ZW50RGVmYXVsdDpmLHN0b3BQcm9wYWdhdGlvbjpoLHdJOmssY2xhc3NOYW1lOmwsYnV0dG9uT3ZlcnJpZGVzOm0sUWY6bixpc1N1YnNjcmliZTpwLG9pOnIsQmw6dH0pPT57dmFyIHY9Xy5tRygpLHo9KEYsQyk9PntmPy4oKSYmQy5wcmV2ZW50RGVmYXVsdCgpO2g/LigpJiZDLnN0b3BQcm9wYWdhdGlvbigpO2lmKCFrPy4oKSl7Rj1hKCk7dmFyIEc9ISFlPy4oKTtpZighRi5faXNCdXN5KXtiJiZiKCk7dmFyIEQ9IUYubmF2aWdhdGlvbkVuZHBvaW50fHwhIV8uQihGLm5hdmlnYXRpb25FbmRwb2ludCxfLll6KXx8ISFfLkIoRi5uYXZpZ2F0aW9uRW5kcG9pbnQsXy5aeik7Rz8oRi50cmFja2luZ1BhcmFtcyYmRCYmXy56SihGLnRyYWNraW5nUGFyYW1zKSxGLnNlcnZpY2VFbmRwb2ludCYmXy5BSihGLnNlcnZpY2VFbmRwb2ludCxGLCExLHtldmVudDpDLEJkOnZ9KSxGLm5hdmlnYXRpb25FbmRwb2ludCYmCl8uQUooRi5uYXZpZ2F0aW9uRW5kcG9pbnQsRiwhMSx7ZXZlbnQ6QyxCZDp2fSksRi5jb21tYW5kJiZfLkFKKEYuY29tbWFuZCxGLCExLHtldmVudDpDLEJkOnZ9KSk6KEc9dk4oRi5zZXJ2aWNlRW5kcG9pbnQpfHx2TihGLm5hdmlnYXRpb25FbmRwb2ludCl8fHZOKEYuY29tbWFuZCkpJiZfLkFKKEcsRixELHtldmVudDpDLEJkOnZ9KX19fSxFPSgpPT57aWYoYz8uKCkhPT0hMSlyZXR1cm4gZD8uKCl8fGEoKS5pY29uPy5pY29uVHlwZX0sQT1fLk4oKCk9Pih7Li4uYWhhKHtyZW5kZXJlcjphKCksSW06eix3QTohMCxTYzptPy4oKSxWeTohMCxRZjpuPy4oKSxpc1N1YnNjcmliZTpwPy4oKXx8ITEsQmw6dD8uKCl9KSxvaTpyPy4oKX0pLHZvaWQgMCwiUGM0dDNiIik7cmV0dXJuIF8uSygieXRtLWJ1dHRvbi1yZW5kZXJlciIse2hpZGRlbjooKT0+IWEoKS50ZXh0JiYhXy5ESihhKCkuYWNjZXNzaWJpbGl0eURhdGF8fGEoKS5hY2Nlc3NpYmlsaXR5KSxjbGFzczpfLlAobCwoKT0+RT8uKCk/CmBpY29uLSR7RSgpLnRvTG93ZXJDYXNlKCl9YDp2b2lkIDAse2Rpc2FibGVkOigpPT5hKCkudGhlbWVkQmFzaWNDb2xvclBhbGV0dGUmJl8udU4oYSgpLnRoZW1lZEJhc2ljQ29sb3JQYWxldHRlKX0pfSxfLksoXy5KSyx7ZGF0YTpBLGljb25OYW1lOkV9KSl9LCJhYiIpO18ucE8uaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntvbkJ1dHRvbkNsaWNrQ2FsbGJhY2s6ITB9fTtfLnFPPV8uTCgoe2RhdGE6YSxRZjpiLHN0eWxlOmMsYnV0dG9uT3ZlcnJpZGVzOmQsY2xhc3NOYW1lOmUsc3RvcFByb3BhZ2F0aW9uOmYsUms6aCxIYzprLHN6Omx9KT0+e3ZhciBbbSxuXT1fLkFDKGEpLHA9KCk9Pnt2YXIgdD1tKCk7dmFyIHY9Yz8uKCk/LmFuaW1hdGVJY29uPT09InRydWUiLHo9dC50b2dnbGVkSWNvbiYmdC50b2dnbGVkSWNvbi5pY29uVHlwZSxFPXQuZGVmYXVsdEljb24mJnQuZGVmYXVsdEljb24uaWNvblR5cGU7dD12P0V8fG51bGw6dC5pc1RvZ2dsZWQmJnp8fEV8fG51bGw7dj1tKCk7cmV0dXJuKGM/LigpPy5hbmltYXRlSWNvbj09PSJ0cnVlIj90OnQ9PT0iTElLRSImJnYuaXNUb2dnbGVkPyJMSUtFX0ZJTExFRCI6dD09PSJESVNMSUtFIiYmdi5pc1RvZ2dsZWQ/IkRJU0xJS0VfRklMTEVEIjp0KT8/dm9pZCAwfSxyPSh0LHYpPT57aD9oKHQsdik6KGY/LigpJiZ2LnN0b3BQcm9wYWdhdGlvbigpLHQ9IW0oKS5pc1RvZ2dsZWQsbih7Li4ubSgpLGlzVG9nZ2xlZDp0fSksCmw/Lih0KSl9O3JldHVybiBfLksoInl0bS10b2dnbGUtYnV0dG9uLXJlbmRlcmVyIix7Y2xhc3M6ZX0sXy5LKF8uSksse2RhdGE6KCk9Pnt2YXIgdD1tKCksdj1tKCksej0hKHYuaXNUb2dnbGVkPyF2LnRvZ2dsZWRTZXJ2aWNlRW5kcG9pbnQ6IXYuZGVmYXVsdFNlcnZpY2VFbmRwb2ludCksRT12O3YuZGVmYXVsdE5hdmlnYXRpb25FbmRwb2ludCYmKEU9e30pO3JldHVybiBkaGEoe3JlbmRlcmVyOnQsSW06cixSdTpfLllEKEUse30seiksU2M6ZD8uKCksVnk6ITAsdG9nZ2xlZDohIW0oKS5pc1RvZ2dsZWQsUWY6Yj8uKCl9KX0saWNvbjooKT0+Xy5LKF8uTUQse2ljb246cCxHZTooKT0+ISFjPy4oKT8uYW5pbWF0ZUljb24sYWN0aXZlOigpPT5tKCkuaXNUb2dnbGVkLEhjOmt9KX0pKX0sImJiIik7Xy5xTy5pZG9tQ29tcGF0PXtjYWxsYmFja3M6e1JrOiEwLHN6OiEwfX07Xy4kTj17S0I6WCgiQUNDT1VOVF9MQUJFTCIpLE1COlgoIkFDVF9PTl9USElTX0NPTU1FTlQiKSxOQjpYKCJBRERfVE9fRFJPUERPV05fTEFCRUwiKSxPQjpYKCJBRF9CQURHRV9ISU5UIiksUEI6WCgiQURfQkFER0VfVEVYVCIpLGNDOlgoIkFMTF9DSEFOTkVMU19MQUJFTCIpLGVDOlgoIkFNQklFTlRfTU9ERSIpLGZDOlgoIkFNQklFTlRfTU9ERV9PRkYiKSxnQzpYKCJBTUJJRU5UX01PREVfT04iKSxoQzpYKCJBTkRST0lEX0RFUFJFQ0FUSU9OX01FU1NBR0VfQk9EWSIpLGlDOlgoIkFORFJPSURfREVQUkVDQVRJT05fTUVTU0FHRV9IRUFERVIiKSxrQzpYKCJBUFBfVVBTRUxMX1NVQlRJVExFIiksbEM6WCgiQVBQX1VQU0VMTF9USVRMRSIpLE5zOlgoIkFVRElPX1RSQUNLIiwiQXVkaW8gVHJhY2siKSxuazpYKCJBVVRPTkFWX1RPR0dMRSIpLG1DOlgoIkFVVE9QTEFZX0lOX1RFTl9TRUNPTkRTIiksbkM6WCgiQVVUT1BMQVlfUEFVU0VEIiksb0M6WCgiQVVUT1BMQVlfUExBWV9OT1ciKSwKT3M6WCgiQVVUT1BMQVlfVVBfTkVYVF9JTiIpLFBzOlgoIkFVVE9fWk9PTSIsIkF1dG8gem9vbSIpLEJBQ0s6WCgiQkFDSyIpLHFDOlgoIkJSQU5ERURfU0lHTl9JTl9ESUFMT0dfREVTQ1JJUFRJT04iLCJBY2Nlc3MgYWxsIGZlYXR1cmVzIGFuZCBnZXQgYSBzZWFtbGVzcyBleHBlcmllbmNlIiksQ0FOQ0VMOlgoIkNBTkNFTCIpLHVDOlgoIkNIQU5ORUxfU1dJVENIRVJfTEFCRUwiKSxDTE9TRTpYKCJDTE9TRSIsImNsb3NlIiksUnM6WCgiQ0xPU0VEX0NBUFRJT05TX0RJU0FCTEVEIiksU3M6WCgiQ0xPU0VEX0NBUFRJT05TX09GRiIpLFRzOlgoIkNMT1NFRF9DQVBUSU9OU19PTiIpLFVzOlgoIkNMT1NFRF9DQVBUSU9OU19PTl9MQU5HVUFHRSIpLHhDOlgoIkNMT1NFX1NFQVJDSF9MQUJFTCIpLHlDOlgoIkNMT1NFX1NFVFRJTkdTX0xBQkVMIiksekM6WCgiQ09NTUVOVF9NT0RBTF9DT05URU5UIiksV3M6WCgiQ09ORklSTV9PSyIpLEFDOlgoIkNPTk5FQ1RfVE9fVEhFX0lOVEVSTkVUIiksClhzOlgoIkNPUElFRF9UT19DTElQQk9BUkQiKSxZczpYKCJDT1BZIiksVG46WCgiQ09QWV9ERUJVR19JTkZPIiksWnM6WCgiQ09QWV9FTUJFRF9DT0RFIiksQ0M6WCgiQ09QWV9MSU5LX0xBQkVMIiksYnQ6WCgiQ09QWV9WSURFT19VUkwiKSxmdDpYKCJDT1BZX1ZJREVPX1VSTF9BVF9DVVJSRU5UX1RJTUUiKSxEQzpYKCJDUkVBVEVfQ0hBTk5FTF9USVRMRSIpLElDOlgoIkRFTEVURV9GUk9NX0RPV05MT0FEUyIpLFhuOlgoIkRJQUxPRyIpLERPTkU6WCgiRE9ORSIpLE5DOlgoIkRPV05MT0FEIiksa3Q6WCgiRkFJTEVEX0NPUFlfRVJST1JfTUVTU0FHRSIpLGJEOlgoIkZMQUdfQ09ORklSTSIpLGNEOlgoIkZMQUdfQ09OVEVOVCIpLGREOlgoIkZMQUdfTEFCRUwiKSxlRDpYKCJGTEFHX1RJVExFIiksZkQ6WCgiRlVMTFNDUkVFTl9HRU5FUklDX0VSUk9SIiksVkU6WCgiR0lGVFMiLCJHaWZ0cyIpLFdFOlgoIkdPT0dMRV9DT01QQU5ZIiksbXQ6WCgiSElERV9QTEFZRVJfQ09OVFJPTFMiLAoiSGlkZSBwbGF5ZXIgY29udHJvbHMiKSxZRTpYKCJISURFX1BMQVlMSVNUX1ZJREVPUyIpLFpFOlgoIkhJREVfU0VBUkNIX0ZJTFRFUlNfTEFCRUwiKSxIT01FOlgoIkhPTUUiLCJIb21lIiksZEY6WCgiSU5WQUxJRF9SRVNQT05TRV9SRUNFSVZFRCIpLGdGOlgoIkxFQVZFX0FfQ09NTUVOVF9USVRMRSIsIkxlYXZlIGEgY29tbWVudD8iKSxoRjpYKCJMSUJSQVJZIiwiTGlicmFyeSIpLGtGOlgoIkxJU1RFTklORyIpLExPQURJTkc6WCgiTE9BRElORyIpLGxGOlgoIkxPTkdfUFJFU1NfTUlDX1RPX1NQRUFLIiwiTG9uZyBwcmVzcyBtaWNfaWNvbl9wbGFjZWhvbGRlciB0byBzcGVhayIpLHV0OlgoIkxPT1AiKSxvRjpYKCJNRU5VX0RFU0tUT1AiKSxwRjpYKCJNRU5VX0VYSVQiKSxxRjpYKCJNRU5VX0ZFRURCQUNLIiksckY6WCgiTUVOVV9IRUxQIiksc0Y6WCgiTUVOVV9JTVBSRVNTVU0iKSx2dDpYKCJNRU5VX1BMQVlFUl9TRVRUSU5HUyIpLHRGOlgoIk1FTlVfU0VUVElOR1MiKSx1RjpYKCJNRU5VX1NJR05fSU4iKSwKdkY6WCgiTUVOVV9USVRMRSIpLHdGOlgoIk1FTlVfWU9VUl9EQVRBIiksQUY6WCgiTU9SRV9JTkZPIiksd3Q6WCgiTU9SRV9PUFRJT05TIiksYm86WCgiTU9SRV9WSURFT1MiLCJNb3JlIHZpZGVvcyIpLHh0OlgoIk1PUkVfVklERU9TX0NMT1NFX0JVVFRPTl9BUklBX0xBQkVMIiwiSGlkZSBtb3JlIHZpZGVvcyIpLHp0OlgoIk1PUkVfVklERU9TX0ZST01fQ0hBTk5FTCIsIk1vcmUgdmlkZW9zIGZyb20gJGNoYW5uZWxfbmFtZV9wbGFjZWhvbGRlciIpLGVvOlgoIk1PUkVfVklERU9TX05FWFRfQlVUVE9OX0FSSUFfTEFCRUwiLCJOZXh0IHZpZGVvcyIpLGZvOlgoIk1PUkVfVklERU9TX1BSRVZJT1VTX0JVVFRPTl9BUklBX0xBQkVMIiwiUHJldmlvdXMgdmlkZW9zIiksQXQ6WCgiTVVURV9WT0xVTUUiKSxDRjpYKCJORVdfUExBWUxJU1QiKSxERjpYKCJORVhUX1ZJREVPIiksQ3Q6WCgiTk9USUZJQ0FUSU9OX0VSUk9SX01FU1NBR0UiKSxGRjpYKCJOT1RfRk9VTkRfQ1RBIiksR0Y6WCgiTk9UX0ZPVU5EX01FU1NBR0UiKSwKSEY6WCgiTk9UX0ZPVU5EX1RJVExFIiksSUY6WCgiTk9fRE9XTkxPQURTIiksSkY6WCgiTk9fTUlDX0lOUFVUIiksS0Y6WCgiT0ZGTElORV9DSEVDS19DT05ORUNUSU9OIiksRHQ6WCgiT09QU19NRVNTQUdFIiksTUY6WCgiT1BFTl9BUFAiKSxORjpYKCJPUEVOX1lPVVRVQkUiKSxPRjpYKCJPUEVOX1lPVVRVQkVfQVBQIiwiT3BlbiBZb3VUdWJlIGFwcCIpLFBBVVNFOlgoIlBBVVNFIiksVUY6WCgiUExBWSIpLEV0OlgoIlBMQVlFUl9DQVBUSU9OIiksRnQ6WCgiUExBWUVSX0NBUFRJT05fT0ZGIiksVkY6WCgiUExBWUVSX0NBUFRJT05fT04iKSxHdDpYKCJQTEFZRVJfRE9VQkxFX1NQRUVEX1VTRVJfRURVIiksV0Y6WCgiUExBWUVSX0RPVUJMRV9UQVBfVE9fU0VFSyIpLFhGOlgoIlBMQVlFUl9ET1VCTEVfVEFQX1RPX1NIT1dfT1JfSElERV9QTEFZRVJfQ09OVFJPTFMiKSxIdDpYKCJQTEFZRVJfRVhJVF9GVUxMU0NSRUVOIiksSXQ6WCgiUExBWUVSX0ZBU1RGT1JXQVJEX1NFQ09ORFMiKSwKSnQ6WCgiUExBWUVSX0ZVTExTQ1JFRU4iKSxsbzpYKCJQTEFZRVJfTElWRV9MQUJFTCIpLFlGOlgoIlBMQVlFUl9MSVZFX05PVyIpLFpGOlgoIlBMQVlFUl9NSU5JTUlaRSIpLEt0OlgoIlBMQVlFUl9ORVhUIiksTHQ6WCgiUExBWUVSX1BBVVNFIiksUGc6WCgiUExBWUVSX1BMQVkiKSxNdDpYKCJQTEFZRVJfUFJFVklPVVMiKSxhRzpYKCJQTEFZRVJfUFJPR1JFU1NfQkFSIiksTnQ6WCgiUExBWUVSX1FVQUxJVFkiKSxPdDpYKCJQTEFZRVJfUVVBTElUWV9BVVRPIiksUHQ6WCgiUExBWUVSX1JFUExBWSIpLFF0OlgoIlBMQVlFUl9SRVdJTkRfU0VDT05EUyIpLG1vOlgoIlBMQVlFUl9TUEVFRCIpLGJHOlgoIlBMQVlFUl9TUEVFRFVQX1VTRVJfRURVIiksUnQ6WCgiUExBWUVSX1NQRUVEX0RFQ1JFQVNFIiksU3Q6WCgiUExBWUVSX1NQRUVEX0lOQ1JFQVNFIiksbm86WCgiUExBWUVSX1NQRUVEX05PUk1BTCIpLFR0OlgoIlBMQVlFUl9TUEVFRF9SRUNFTlQiKSxVdDpYKCJQTEFZRVJfVElNRV9EVVJBVElPTiIpLApWdDpYKCJQTEFZRVJfVElNRV9FTEFQU0VEIiksY0c6WCgiUExBWUxJU1RfREVTQ1JJUFRJT05fSU5WQUxJRF9DSEFSQUNURVJTIiksZEc6WCgiUExBWUxJU1RfTUlYX0RFVEFJTEVEX0xPTkdfQllMSU5FIiksZUc6WCgiUExBWUxJU1RfTkFNRV9JTlZBTElEX0NIQVJBQ1RFUlMiKSxmRzpYKCJQTEFZTElTVF9OQU1FX01JU1NJTkciKSxnRzpYKCJQTEFZTElTVF9OQU1FX1RPT19MT05HIiksaEc6WCgiUExBWUxJU1RfUEFORUxfRU5EX09GX1BMQVlMSVNUIiksaUc6WCgiUExBWUxJU1RfUEFORUxfTkVYVCIpLGpHOlgoIlBMQVlMSVNUX1BBTkVMX1VOTElTVEVEX1BMQVlMSVNUIiksa0c6WCgiUExBWUxJU1RfVEVYVF9JTlBVVF9DSEFSX0NPVU5UIiksbEc6WCgiUExBWV9BTEwiKSxtRzpYKCJQTEVBU0VfRklYX0VSUk9SUyIpLFh0OlgoIlBSRU1JVU1fQkFER0VfTEFCRUwiLCJQcmVtaXVtIiksbkc6WCgiUFJFVklPVVNfVklERU8iKSxvRzpYKCJQUklWQUNZX1BPTElDWSIpLHJHOlgoIlJFTE9BRCIpLApzRzpYKCJSRVFVSVJFRF9MQUJFTCIpLHlHOlgoIlNBVkVfUExBWUxJU1QiKSxBRzpYKCJTQ1JVQl9TTElERV9VU0VSX0VEVSIpLENHOlgoIlNFQVJDSCIsIlNlYXJjaCIpLERHOlgoIlNFQVJDSF9BUFBFTkRfTEFCRUwiKSxFRzpYKCJTRUFSQ0hfQ0hBTk5FTCIpLEZHOlgoIlNFQVJDSF9DTEVBUl9MQUJFTCIpLEdHOlgoIlNFQVJDSF9FTlRJVFlfU1VHR0VTVElPTl9BTEJVTV9OT19BUlRJU1QiLCJBbGJ1bSIpLEhHOlgoIlNFQVJDSF9FTlRJVFlfU1VHR0VTVElPTl9NT1ZJRSIsIk1vdmllIiksSUc6WCgiU0VBUkNIX0VOVElUWV9TVUdHRVNUSU9OX1NPTkdfTk9fQVJUSVNUIiwiU29uZyIpLEpHOlgoIlNFQVJDSF9FTlRJVFlfU1VHR0VTVElPTl9UVl9TSE9XIiwiVFYgU2hvdyIpLEtHOlgoIlNFQVJDSF9GSUxURVJTX0xBQkVMIiksTEc6WCgiU0VBUkNIX0xBQkVMIiksTUc6WCgiU0VBUkNIX1BQUF9QTEFDRUhPTERFUl9URVhUIiksTkc6WCgiU0VFS19TTElERVIiKSxPRzpYKCJTRVRUSU5HU19MQUJFTCIpLApQRzpYKCJTRVRUSU5HU19NSUNfUEVSTUlTU0lPTiIpLFNHOlgoIlNIT1JUU19UQUJfTEFCRUwiLCJTaG9ydHMiKSxURzpYKCJTSE9XX0xFU1MiKSxVRzpYKCJTSE9XX01PUkUiKSxadDpYKCJTSE9XX1BMQVlFUl9DT05UUk9MUyIsIlNob3cgcGxheWVyIGNvbnRyb2xzIiksVkc6WCgiU0hPV19QTEFZTElTVF9WSURFT1MiKSxXRzpYKCJTSE9XX1NFQVJDSF9GSUxURVJTX0xBQkVMIiksYXU6WCgiU0lHTl9JTl9MQUJFTCIpLFpHOlgoIlNJR05fSU5fT05fV0VCIikseWs6WCgiU1RBQkxFX1ZPTFVNRSIpLGpIOlgoIlNUQUJMRV9WT0xVTUVfT0ZGIiksa0g6WCgiU1RBQkxFX1ZPTFVNRV9PTiIpLGJ1OlgoIlNUQVRTX0ZPUl9ORVJEUyIpLGxIOlgoIlNVR0dFU1RJT05fRElTTUlTU0VEX0xBQkVMIiksbUg6WCgiU1VHR0VTVElPTl9ESVNNSVNTX0xBQkVMIiksbkg6WCgiU1VHR0VTVElPTl9ORVdfVklERU9TX1RFWFQiKSxvSDpYKCJTVUdHRVNUSU9OX1RIVU1CTkFJTF9BVFRSSUJVVElPTl9MQUJFTCIsCiJWaWV3IGltYWdlIHNvdXJjZSIpLHBIOlgoIlNVR0dFU1RJT05fVEhVTUJOQUlMX0xBQkVMIikscUg6WCgiVEVSTVNfT0ZfU0VSVklDRSIpLHJIOlgoIlRJTUVTVEFNUF9NSU5VVEVTIiksc0g6WCgiVElNRVNUQU1QX1NFQ09ORFMiKSx0SDpYKCJUT0dHTEVfT0ZGIiksdUg6WCgiVE9HR0xFX09OIiksdkg6WCgiVFJFTkRJTkciKSxkdTpYKCJUUk9VQkxFU0hPT1RfUExBWUJBQ0tfSVNTVUUiKSxldTpYKCJUUllfQUdBSU5fTEFURVIiKSx3SDpYKCJUUllfQUdBSU5fTUlDX1BFUk1JU1NJT04iKSx4SDpYKCJUVVJOX09GRl9BVVRPUExBWV9DT05GSVJNX0JVVFRPTl9USVRMRSIpLHlIOlgoIlRVUk5fT0ZGX0FVVE9QTEFZX0RJQUxPR19ERVNDUklQVElPTiIpLHpIOlgoIlRVUk5fT0ZGX0FVVE9QTEFZX0RJQUxPR19USVRMRSIpLGd1OlgoIlVOTVVURV9WT0xVTUUiKSxzbzpYKCJWSURFT19MSU5LX0xBQkVMIil9O18uTGhhPU9iamVjdC5mcmVlemU/T2JqZWN0LmZyZWV6ZShPYmplY3QuY3JlYXRlKG51bGwpKTp7fTtfLk5OPSgpPT57fTt3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaz8uYmluZCh3aW5kb3cpO18uWk49Xy5MKGE9Pnt2YXIge2xhYmVsOmIsb25jbGljazpjLHNob3dTcGlubmVyOmQsdGk6ZSxlbmdhZ2VtZW50UGFuZWw6ZixLeDpoLERwOmsscmVsYXRpdmU6bCxvcGFjaXR5Om19PV8uREMoYSx7c2hvd1NwaW5uZXI6ITEsUks6ITEsdGk6ITEsZW5nYWdlbWVudFBhbmVsOiExLERwOiExLHJlbGF0aXZlOiExLEt4OiExLG9wYWNpdHk6dm9pZCAwfSk7cmV0dXJuIF8uSygieXR3LXNjcmltIix7Y2xhc3M6Xy5QKCJ5dFdlYlNjcmltSG9zdCIsInl0V2ViU2NyaW1Ib3N0TW9kZXJuT3ZlcmxheSIse3l0V2ViU2NyaW1Ib3N0Qm90dG9tU2hlZXQ6ZSx5dFdlYlNjcmltSG9zdEVuZ2FnZW1lbnRQYW5lbDooKT0+IWUoKSYmZigpLHl0V2ViU2NyaW1Ib3N0RHJhZ2dhYmxlRW5nYWdlbWVudFBhbmVsOigpPT4hZSgpJiZmKCkmJmgoKSx5dFdlYlNjcmltSG9zdERyYXdlckxheW91dDooKT0+IWUoKSYmIWYoKSYmaygpLHl0V2ViU2NyaW1Ib3N0UmVsYXRpdmU6bH0pLCJvbjpjbGljayI6Yywib246dG91Y2htb3ZlIjpmdW5jdGlvbihuKXtuLnByZXZlbnREZWZhdWx0KCk7Cm4uc3RvcFByb3BhZ2F0aW9uKCl9LHN0eWxlOigpPT5tKCkhPT12b2lkIDA/YGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAke20oKX0pO2A6IiJ9LF8uSyhfLk8se0E6ZCx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dFdlYlNjcmltRGlhbG9nQ29udGFpbmVyIn0sXy5LKF8uWkwsbnVsbCkpfSksXy5LKCJidXR0b24iLHtjbGFzczoieXRXZWJTY3JpbUhpZGRlbkJ1dHRvbiIsImFyaWEtbGFiZWwiOmJ9KSl9LCJjYiIpO3ZhciBGTixFTixJTixHTixMTixITixraGE7Rk49MDtFTj1uZXcgTWFwO0lOPW51bGw7R049bnVsbDtMTj0hMTtfLkROPVtdO0hOPSFfLngoImNhbmNlbF9tb2RhbF9wZW5kaW5nX2FuaW1hdGlvbnNfa2lsbHN3aXRjaCIpO2toYT0hXy54KCJyZXNob3dfbmVzdGVkX21vZGFsX3NpYmxpbmdzX2tpbGxzd2l0Y2giKTt2YXIgck87Cl8uc089Xy5MKCh7dHE6YX0pPT57ZnVuY3Rpb24gYihHKXtpZigoYSgpJiZkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudHx8IWEoKSYmIWRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50KSYmRyl7dmFyIEQ9Ry5RayxIPUcudmlld01vZGVsO2sudmFsdWU/RihHKTpEPy5pc0Rpc2FibGVkJiZEPy5kaXNhYmxlZENvbW1hbmQ/KENOKCEwKSxfLkFKKEQuZGlzYWJsZWRDb21tYW5kLGgudmFsdWUsITEpKTood2luZG93LmxvY2F0aW9uLmhhc2ghPT0iI2JvdHRvbS1zaGVldCImJl8uJE0oImJvdHRvbS1zaGVldCIsITApLGsudmFsdWU9ITAsZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoImJvdHRvbS1zaGVldC1vcGVuIiwiIiksXy5vTSgpLmRpc3BhdGNoKGJOKCEwKSksck89Xy5tRygpLHAoRCksdihIKSxDTighMCksaC52YWx1ZXx8Xy5JcChFcnJvcigiRmQiKSksXy5KTihoLnZhbHVlLEQ/LmZvY3VzT25DbG9zZSwhMCkpfX1mdW5jdGlvbiBjKCl7ay52YWx1ZSYmKGsudmFsdWU9ITEsZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUoImJvdHRvbS1zaGVldC1vcGVuIiksCm4oKT8uR2g/LigpLHJPPXZvaWQgMCxwKHZvaWQgMCksdih2b2lkIDApLENOKCExKSxfLktOKGgudmFsdWUpLF8ub00oKS5kaXNwYXRjaChiTighMSkpKX1mdW5jdGlvbiBkKCl7ay52YWx1ZSYmd2luZG93LmxvY2F0aW9uLmhhc2ghPT0iI2JvdHRvbS1zaGVldCImJmMoKX1hc3luYyBmdW5jdGlvbiBlKCl7YXdhaXQgXy5GSjt3aW5kb3cubG9jYXRpb24uaGFzaD09PSIjYm90dG9tLXNoZWV0IiYmKGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50fHxfLllNP18uJE0oIiIsITApOmF3YWl0IF8uWk0oKSxkKCkpO0EoKSYmKGIoQSgpKSxGKHZvaWQgMCkpfWZ1bmN0aW9uIGYoRyl7Xy56TigpO0cuc3RvcFByb3BhZ2F0aW9uKCl9dmFyIGg9Xy51RSgiYm90dG9tLXNoZWV0LWNvbnRhaW5lciIpLGs9Xy51TSghMSksW2wsbV09Xy5KKHZvaWQgMCx2b2lkIDAsInZXdVhrYiIpLG49bCxwPW0sW3IsdF09Xy5KKHZvaWQgMCx2b2lkIDAsIkJmUkFMYiIpLHY9dCxbeixFXT1fLkoodm9pZCAwLHZvaWQgMCwKInk3dE5sYyIpLEE9eixGPUUsQz0oKT0+ISghbigpJiYhcigpKTtfLlVKKCgpPT57d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGQpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdGF0ZS1uYXZpZ2F0ZXN0YXJ0IixjKTtfLnkoKS5yZXNvbHZlKF8uY0wpLlB6KHt3ZzpHPT57RyYmYih7dmlld01vZGVsOkcudmlld01vZGVsLFFrOkcuUWt9KX0sSmU6YXN5bmMoKT0+e2F3YWl0IGUoKX0sZG06YXN5bmMoKT0+ISFfLnhOKCksWHA6KCk9PmgudmFsdWUsb3c6Rz0+R30sYSgpKTtfLll1KCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGQpO3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzdGF0ZS1uYXZpZ2F0ZXN0YXJ0IixjKX0pfSk7cmV0dXJuIF8uSygiYm90dG9tLXNoZWV0LWNvbnRhaW5lciIse2VsOmgscm9sZToiZGlhbG9nIixoaWRkZW46KCk9PiFDKCksImFyaWEtbW9kYWwiOiEwLCJhcmlhLWxhYmVsIjooKT0+bigpPy5oZWFkZXJUaXRsZT8KbigpLmhlYWRlclRpdGxlOl8uJE4uWG59LF8uSyhfLk8se0E6Qyx0aGVuOigpPT5fLksoXy5JQixudWxsLF8uSyhfLlpOLHtsYWJlbDpfLiROLkNMT1NFLG9uY2xpY2s6Xy56Tix0aTohMH0pLF8uSyhfLk8se0E6cix0aGVuOkc9Pl8uSyhsTyx7ZGF0YTpHfSksVzooKT0+Xy5LKF8uTyx7QTpuLHRoZW46Rz0+Xy5wRyhyT3x8e30sKCk9Pl8uSyhqTyx7SGE6KCk9PkcoKS5IYSxwZjooKT0+RygpLnBmLEdrOigpPT5HKCkuR2ssR2g6KCk9PkcoKS5HaCxmb2N1c09uQ2xvc2U6KCk9PkcoKS5mb2N1c09uQ2xvc2UsaXNEaXNhYmxlZDooKT0+RygpLmlzRGlzYWJsZWQsZGlzYWJsZWRDb21tYW5kOigpPT5HKCkuZGlzYWJsZWRDb21tYW5kLFVlOigpPT5fLksoXy50Tix7Y29tcG9uZW50OigpPT5HKCkuVWV9KSxqaDooKT0+ISFHKCkuVWUsR2I6KCk9Pl8uSyhfLnROLHtjb21wb25lbnQ6KCk9PkcoKS5HYn0pLFhpOigpPT4hIUcoKS5HYixTZTooKT0+Xy5LKF8udE4se2NvbXBvbmVudDooKT0+CkcoKS5TZX0pLGhoOigpPT4hIUcoKS5TZSxoZWFkZXJUaXRsZTooKT0+RygpLmhlYWRlclRpdGxlLGhlYWRlclN1YnRpdGxlOigpPT5HKCkuaGVhZGVyU3VidGl0bGUsV2Y6KCk9Pl8uSyhfLnROLHtjb21wb25lbnQ6KCk9PkcoKS5XZn0pLGloOigpPT4hIUcoKS5XZixOZjooKT0+Xy5LKF8udE4se2NvbXBvbmVudDooKT0+RygpLk5mfSksVWY6KCk9PiEhRygpLk5mLE9mOigpPT5fLksoXy50Tix7Y29tcG9uZW50OigpPT5HKCkuT2Z9KSxWZjooKT0+ISFHKCkuT2YsUmU6KCk9PkcoKS5SZSxNZjooKT0+RygpLk1mLFBmOigpPT5HKCkuUGZ9KSl9KX0pLF8uSygiYnV0dG9uIix7Y2xhc3M6ImNsb3NlLWJ1dHRvbiIsImFyaWEtbGFiZWwiOl8uJE4uQ0xPU0UsIm9uOmNsaWNrIjpmfSkpfSkpfSwiZGIiKTtfLnNPLmlkb21Db21wYXQ9ITA7Xy50Tz1fLkwoKHthcmlhTGFiZWw6YSxVSDpiLGFyaWFQcmVzc2VkOmMsYXJpYUV4cGFuZGVkOmQsYXJpYURpc2FibGVkOmUsY2xhc3NOYW1lOmYsY29udGVudDpoLGJxOmssaWQ6bCxuYW1lOm0sb25jbGljazpuLG9udG91Y2hzdGFydDpwLG9udG91Y2htb3ZlOnIsb250b3VjaGVuZDp0LGJ4OnZ9KT0+e3Y9Xy51RSgiYnV0dG9uIix2KTtyZXR1cm4gXy5LKCJidXR0b24iLHtpZDpsLGNsYXNzOl8uUCgiaWNvbi1idXR0b24iLGYpLGVsOnYsImFyaWEtbGFiZWwiOmEsImFyaWEtbGFiZWxsZWRieSI6YiwiYXJpYS1wcmVzc2VkIjpjLCJhcmlhLWV4cGFuZGVkIjpkLCJhcmlhLWhhc3BvcHVwIjprLCJhcmlhLWRpc2FibGVkIjplLCJvbjpjbGljayI6biwib246dG91Y2hzdGFydCI6bE4ocCksIm9uOnRvdWNobW92ZSI6bE4ociksIm9uOnRvdWNoZW5kIjpsTih0KX0sXy5LKF8uTyx7QTooKT0+ISFoLHRoZW46KCk9Pmg/LigpLFc6KCk9Pl8uSyhfLk1ELHtpY29uOm19KX0pKX0sImViIik7Cl8udE8uaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntjb250ZW50OiEwLG9uY2xpY2s6ITAsb250b3VjaHN0YXJ0OiEwLG9udG91Y2htb3ZlOiEwLG9udG91Y2hlbmQ6ITAsYng6ITB9fTt2YXIgUk4sUE4sT047Uk49ITA7ClBOPXtBVkFUQVJfQ0lSQ0xFX0JMVUU6IkFWQVRBUl9MT0dHRURfT1VUIixCQUNLOiJBUlJPV19CQUNLIixCTE9DS19VU0VSOiJCTE9DSyIsQlJPQURDQVNUOiJwb2RjYXN0IixDQVBUSU9OUzoiQ0xPU0VEX0NBUFRJT04iLENIRUNLX0JMVUU6IkNIRUNLIixDSEVDS19DSVJDTEVfRklMTEVEOiJDSEVDS19DSVJDTEVfRklMTEVEIixDSEVDS19DSVJDTEVfVEhJQ0s6IkNIRUNLX0NJUkNMRV9PVVRMSU5FIixDT1VSU0U6ImxpZ2h0YnVsYiIsRElTTElLRV9DT01NRU5UOiJESVNMSUtFIixESVNMSUtFX0NPTU1FTlRfRklMTEVEOiJESVNMSUtFX0ZJTExFRCIsRElTTElLRV9TRUxFQ1RFRDoiRElTTElLRV9GSUxMRUQiLERJU01JU1NBTF9CTEFDSzoiRElTTUlTU0FMIixFWFBBTkRfTU9SRToiRVhQQU5EIixGQVNISU9OX0xPR086ImZhc2hpb24iLEdBTUlORzoiZ2FtaW5nIixHQU1JTkdfTE9HTzoiZ2FtaW5nIixHRUFSOiJTRVRUSU5HUyIsSEVMUDoiSEVMUF9PVVRMSU5FIixMSUtFX0NPTU1FTlQ6IkxJS0UiLApMSUtFX0NPTU1FTlRfRklMTEVEOiJMSUtFX0ZJTExFRCIsTElLRV9TRUxFQ1RFRDoiTElLRV9GSUxMRUQiLExJVkU6IlJBREFSX0xJVkUiLExPR086IllPVVRVQkUiLE1PUkVfQ0hFVlJPTjoiRVhQQU5EIixNT1JFX1ZFUlRfV0hJVEU6Ik1PUkVfVkVSVCIsTVVTSUM6ImF1ZGlvIixNVVNJQ19GSUxMRUQ6ImF1ZGlvX2ZpbGxlZCIsTkVXUzoibmV3cyIsT0ZGSUNJQUxfQVJUSVNUX0JBREdFOiJhdWRpbyIsUExBWUFCTEVTX0xPR086InRpY190YWNfdG9lIixQTEFZRVJfTkVYVDoiU0tJUF9ORVhUX0ZJTExFRCIsUExBWUVSX1BBVVNFOiJQQVVTRV9GSUxMRUQiLFBMQVlFUl9QTEFZOiJQTEFZX0FSUk9XX0ZJTExFRCIsUExBWUVSX1BSRVZJT1VTOiJTS0lQX1BSRVZJT1VTX0ZJTExFRCIsUExBWUVSX1JFUExBWToiUkVQTEFZIixQTEFZX0FMTDoiUExBWV9BUlJPV19GSUxMRUQiLFJFTU9WRToiRElTTUlTU0FMIixTSE9SVFNfRElTTElLRToic2hvcnRzX3RodW1ic19kb3duIixTSE9SVFNfTElLRToic2hvcnRzX3RodW1ic191cCIsClNQT05TT1JTSElQX1NUQVI6IlNQT05TT1JTSElQX1NUQVJfRklMTEVEIixUQUJfQUNDT1VOVDoiQVZBVEFSX0xPR0dFRF9PVVQiLFRBQl9UUkVORElORzoiZmlyZSIsVEFCX1RSRU5ESU5HX0ZJTExFRDoiZmlyZV9maWxsZWQiLFRSRU5ESU5HOiJmaXJlIixUUk9QSFk6InRyb3BoeSIsVk9MVU1FX0RPV05fT1VUTElORToiVk9MVU1FX0RPV04iLFZPTFVNRV9VUDoiVk9MVU1FX1VQX0ZJTExFRCIsVk9MVU1FX1VQX09VVExJTkU6IlZPTFVNRV9VUCIsWU9VVFVCRV9MT0dPOiJMT0dPX1dJVEhfVEVYVCIsWU9VVFVCRV9QUkVNSVVNX0xPR086IllPVVRVQkVfUFJFTUlVTV9MT0dPX1NIT1JUIixZT1VUVUJFX1NIT1JUU19GSUxMX05PX1RSSUFOR0xFX1JFRF8xNjoieW91dHViZV9zaG9ydHNfbm9fdHJpYW5nbGVfZmlsbGVkIixZT1VUVUJFX1NIT1JUU19GSUxMX05PX1RSSUFOR0xFX1dISVRFXzE2OiJ5b3V0dWJlX3Nob3J0c19ub190cmlhbmdsZV9maWxsZWQifTsKT049e0xPR086IkxPR08iLFBMQVlBQkxFU19MT0dPOiJwbGF5YWJsZXMiLFNIT1JUU19ESVNMSUtFOiJ0aHVtYl9kb3duIixTSE9SVFNfTElLRToidGh1bWJfdXAiLFRBQl9UUkVORElORzoidHJlbmRpbmciLFRBQl9UUkVORElOR19GSUxMRUQ6InRyZW5kaW5nX2ZpbGxlZCIsVFJFTkRJTkc6InRyZW5kaW5nIn07Cl8udU89Xy5MKCh7aWNvbjphLGFjdGl2ZTpiLGNsYXNzTmFtZTpjLHN0eWxlOmQseXA6ZSxoYzpmLHJvbGU6aCxHZTprLEhjOmwsYXJpYUhpZGRlbjptLGFyaWFFeHBhbmRlZDpuLGFyaWFMYWJlbDpwLGlkOnIsYWc6dCxzaXplOnZ9KT0+e25oYSgpO3ZhciB6PSgpPT5RTihhPy4oKSksRT1fLk4oKCk9PnthOnt2YXIgRj1RTihhPy4oKSksQz1iPy4oKTt2YXIgRz12Py4oKTtpZihGKXt2YXIgRD1fLnkoKS5yZXNvbHZlKF8uWEwpLEg9Ri50b0xvd2VyQ2FzZSgpO0Y9e2ljb25OYW1lOkgsaWNvblN0eWxlOkguZW5kc1dpdGgoIl9maWxsZWQiKXx8Ri5lbmRzV2l0aCgiX29uIil8fEM/InlvdXR1YmVfZmlsbCI6dm9pZCAwLGljb25TaXplOkd9O0M9RC5qKEYpOyFDJiZHJiYoRi5pY29uU2l6ZT12b2lkIDAsQz1ELmooRikpOyFDJiZILmVuZHNXaXRoKCJfZmlsbGVkIikmJihGLmljb25OYW1lPUguc3Vic3RyaW5nKDAsSC5sZW5ndGgtNyksQz1ELmooRikpO0N8fChGLmljb25TdHlsZT12b2lkIDAsCkM9RC5qKEYpKTtpZihDKXtHPUY7YnJlYWsgYX1fLklwKG5ldyBfLlhqKCJJY29uIG5vdCBzdXBwb3J0ZWQiLHtpY29uTmFtZTpGLmljb25OYW1lfSkpfUc9dm9pZCAwfXJldHVybiBHfSx2b2lkIDAsIk02WGtHYiIpLEE9KCk9Pih7aWNvbldpZHRoOiIxMDAlIixpY29uSGVpZ2h0OiIxMDAlIixhZzp0Py4oKX0pO3JldHVybiBfLksoXy5FRSxudWxsLF8uSyhfLkNFLHt3aGVuOigpPT5RTihhPy4oKSkmJms/LigpJiZiPy4oKSE9PXZvaWQgMCYmT2JqZWN0LnZhbHVlcyhBaGEpLmluY2x1ZGVzKFFOKGE/LigpKXx8IiIpfSwoKT0+Xy5LKF8udE0se2FuaW1hdGVkSWNvblR5cGU6eixhY3RpdmU6KCk9PiEhYj8uKCksSGM6bCxzaXplOnYsSEE6KCk9Pl8uSyhfLnVPLHtpY29uOmEsYWN0aXZlOmIsR2U6ITF9KX0pKSxfLksoXy5DRSx7d2hlbjooKT0+UU4oYT8uKCkpJiZFKCl9LCgpPT5fLksoImMzLWljb24iLHtjbGFzczpjLHN0eWxlOmQscm9sZTpoLCJkYXRhLXNlbGVjdGVkIjplLCJkYXRhLWRpc2FibGVkIjpmLAoiZmlsbC1pY29uIjooKT0+Yj8uKCk9PT0hMCxpZDpyLCJpY29uLXN0YXRlLW91dGxpbmUiOigpPT5iPy4oKT09PSExPyIiOnZvaWQgMCwiaWNvbi1zdGF0ZS1maWxsZWQiOigpPT5iPy4oKT09PSEwPyIiOnZvaWQgMCwiYXJpYS1oaWRkZW4iOm0sImFyaWEtZXhwYW5kZWQiOm4sImFyaWEtbGFiZWwiOnB9LF8uSyhfLllMLHtkYXRhOigpPT5FKCksb3B0aW9uczpBfSkpKSl9LCJmYiIpO18udU8uaWRvbUNvbXBhdD0hMDtfLkwoKHtuYW1lOmEsbGFiZWw6YixvbmNsaWNrOmMsYnE6ZCxyb2xlOmV9KT0+Xy5LKCJkaXYiLHtjbGFzczoiaWNvbi1idXR0b24iLHJvbGU6ZSwiYXJpYS1sYWJlbCI6YiwiYXJpYS1oYXNwb3B1cCI6ZCwib246Y2xpY2siOmN9LF8uSyhfLnVPLHtpY29uOmF9KSksImdiIikuaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntvbmNsaWNrOiEwfX07CnZhciBKaGE9ImFsaWduX2xlZnQgYXJyb3dfbGVmdCBmbGFnIGhvbWUgbG9nb193aXRoX3RleHQgbWVzc2FnZV9idWJibGVfYWxlcnQgbWljIG9wZW5fbmV3IG92ZXJmbG93X2hvcml6b250YWwgb3ZlcmZsb3dfdmVydGljYWwgcGxheV9jaXJjbGVfc2hvcnRzIHNlYXJjaCBzaG9ydHNfY29tbWVudCBzaG9ydHNfc2hhcmUgc2hvcnRzX3RodW1ic19kb3duIHNob3J0c190aHVtYnNfdXAgd2F2ZWZvcm0geF9tYXJrIHlvdXR1YmVfc2hvcnRzIHlvdXR1YmVfc2hvcnRzX2JyYW5kXzI0Ii5zcGxpdCgiICIpLEloYT0iYWxlcnRfYnViYmxlIGFycm93X2xlZnQgYXJyb3dfdXBfcmlnaHQgZmxhZyBob21lIGxvZ29fd2l0aF90ZXh0IG1pYyBvdmVyZmxvd19ob3Jpem9udGFsIG92ZXJmbG93X3ZlcnRpY2FsIHBsYXlfY2lyY2xlX3Nob3J0cyBzZWFyY2ggc2hhcmUgc2hvcnRzIHRleHRfYWxpZ25fbGVmdCB0ZXh0X2J1YmJsZSB0aHVtYl9kb3duIHRodW1iX3VwIHdhdmVmb3JtIHggeW91dHViZV9zaG9ydHNfYnJhbmRfMjQiLnNwbGl0KCIgIik7Xy52Tz1fLkwoYT0+e3ZhciB7aWNvblR5cGU6YixsYWJlbDpjLGFyaWFMYWJlbDpkLGFyaWFQcmVzc2VkOmUsZGlzYWJsZWQ6ZixvbmNsaWNrOmgsc3R5bGU6ayxWbDpsLExtOm0sT3g6bixiYXNpY0NvbG9yUGFsZXR0ZURhdGE6cCxkYXRhOnIsYXJpYUhpZGRlbjp0fT1fLkRDKGEse2ljb25UeXBlOiIiLFZsOiExLExtOiIiLE94OiExLGFyaWFIaWRkZW46ITF9KTtfLnVFKCJkaXYiLHY9PntyPy4oKSYmbWhhKHYscj8uKCkpfSk7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJidXR0b24td2l0aC1pY29uIGJ1dHRvbi1yZW5kZXJlciBjb21wYWN0IixtKSxzdHlsZTooKT0+e3ZhciB2O2lmKHY9cD8uKCkpe3ZhciB6PSIiLEU7Zm9yKEUgaW4gdil7aWYoIXYuaGFzT3duUHJvcGVydHkoRSkpY29udGludWU7bGV0IEE9dltFXSxGPUUuaW5jbHVkZXMoImZvcmVncm91bmQiKT8iY29sb3IiOlN0cmluZyhFKS5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnRvTG93ZXJDYXNlKCk7QSYmCih6Kz1gJHtGfToke18uTkQoQSl9O2ApfXY9en1lbHNlIHY9dm9pZCAwO3JldHVybiB2Py50b1N0cmluZygpfSwiZGF0YS1zdHlsZSI6KCk9PnR5cGVvZiBrPy4oKT09PSJzdHJpbmciP2soKTprPy4oKT8uc3R5bGVUeXBlLCJkYXRhLWljb24tb25seSI6KCk9PiFjPy4oKSwiaXMtYnVzeSI6bCwiYXJpYS1idXN5IjpsLCJhcmlhLWhpZGRlbiI6dH0sXy5LKCJidXR0b24iLHtjbGFzczoiYnV0dG9uLXdpdGgtaWNvbi1idXR0b24iLCJvbjpjbGljayI6ZnVuY3Rpb24odil7aD8uKHYpO3Yuc3RvcFByb3BhZ2F0aW9uKCl9LGRpc2FibGVkOmYsImFyaWEtbGFiZWwiOigpPT5kPy4oKXx8IiIsImFyaWEtcHJlc3NlZCI6KCk9PmU/LigpPz92b2lkIDB9LF8uSygiZGl2Iix7Y2xhc3M6ImJ1dHRvbi13aXRoLWljb24taW5uZXIifSxfLksoXy5PLHtBOigpPT4hbj8uKCkmJmIoKSx0aGVuOigpPT5fLksoXy51Tyx7aWNvbjpiLGNsYXNzTmFtZToiYnV0dG9uLXJlbmRlcmVyLWljb24ifSl9KSxfLksoImRpdiIsCntjbGFzczoiYnV0dG9uLXJlbmRlcmVyLXRleHQifSxfLksoXy5PLHtBOmMsdGhlbjooKT0+Xy5LKF8uSUose2RhdGE6Y30pfSkpLF8uSyhfLk8se0E6KCk9Pm4oKSYmYigpLHRoZW46KCk9Pl8uSyhfLnVPLHtpY29uOmIsY2xhc3NOYW1lOiJidXR0b24tcmVuZGVyZXItaWNvbiJ9KX0pLF8uSyhfLk8se0E6bCx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJidXR0b24td2l0aC1pY29uLXNwaW5uZXIgc3Bpbm5lciJ9KX0pKSkpfSwiaWIiKTtfLkhDW18uUkFbImRlZmF1bHQiXV09b2hhOyhmdW5jdGlvbigpe3ZhciBhPV8uY0I7Xy5jQj1iPT57YT8uKGIpO18uT0UoKCk9Pntmb3IobGV0IGM9MDtjPGIubGVuZ3RoO2MrKylUTihiW2NdKX0pfX0pKCk7Xy53Tz1fLkwoKHtjaGlsZHJlbjphLG9uY2xpY2s6Yixyb2xlOmMsSHk6ZH0pPT57dmFyIGU9Xy51RSgiYnV0dG9uIik7Xy5VSigoKT0+e2Q/LihlLnZhbHVlKX0pO3JldHVybiBfLksoInl0bS1tZW51LWl0ZW0iLG51bGwsXy5LKCJidXR0b24iLHtjbGFzczoibWVudS1pdGVtLWJ1dHRvbiIsZWw6ZSwib246Y2xpY2siOmIscm9sZTpjfSxhKSl9LCJqYiIpO18ud08uaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntvbmNsaWNrOiEwLEh5OiEwfX07Xy5MKCh7dXJsOmEsbEs6YixjaGlsZHJlbjpjfSk9Pl8uSygieXRtLW1lbnUtaXRlbSIsbnVsbCxfLksoImEiLHtocmVmOmEsY2xhc3M6Im1lbnUtaXRlbS1idXR0b24iLHRhcmdldDooKT0+Yj8uKCk/Il9ibGFuayI6dm9pZCAwfSxjKSksImtiIikuaWRvbUNvbXBhdD0hMDsKXy5MKCh7Y29tbWFuZDphLGNoaWxkcmVuOmJ9KT0+Xy5LKCJ5dG0tbWVudS1pdGVtIixudWxsLF8uSyhfLm5ILHtjb21tYW5kOigpPT5hKCk/P3ZvaWQgMCxjbGFzc05hbWU6Im1lbnUtaXRlbS1idXR0b24ifSxiKSksImxiIikuaWRvbUNvbXBhdD0hMDt2YXIgVk4sV04sW1lOLHBoYV09Xy5KKG51bGwsdm9pZCAwLCJHQ0tnOGUiKSx4Tz1fLkwoKHtEaDphfSk9Pl8uSyhfLndPLG51bGwsXy5LKCJkaXYiLHtjbGFzczoibWVudS1jYW5jZWwtYnV0dG9uIn0sXy5LKF8uTUQse2ljb246KCk9PmEoKS5UZCxjbGFzc05hbWU6Im1lbnUtY2FuY2VsLWljb24ifSksKCk9PmEoKS5jYW5jZWxCdXR0b25MYWJlbCkpLCJtYiIpLFhOPV8uTCgoe0RoOmEsY2hpbGRyZW46Yn0pPT57dmFyIGM9Xy51RSgiZGl2IiwoKT0+e30pO3JldHVybiBfLksoImRpdiIse2VsOmMsY2xhc3M6Xy5QKCJtZW51LWNvbnRlbnQiLHsibWVudS1ib3R0b20iOigpPT5hKCkubnEsIm1lbnUtc2hvdy1pY29ucyI6KCk9PmEoKS5IYXx8YSgpLm5xfHxhKCkuaXNGdWxsV2lkdGgsInJvdW5kZWQtY29udGFpbmVyIjooKT0+IWEoKS5pc0Z1bGxXaWR0aH0pLCJvbjpjbGljayI6ZnVuY3Rpb24oKXthKCkuU3d8fGEoKS5FSXx8Xy5VTigpfSxyb2xlOigpPT5hKCkuaXNGdWxsV2lkdGg/CnZvaWQgMDoiZGlhbG9nIiwiYXJpYS1tb2RhbCI6KCk9PiFhKCkuaXNGdWxsV2lkdGgsImFyaWEtbGFiZWxsZWRieSI6KCk9PmEoKS5WSH0sYixfLksoXy5PLHtBOigpPT4hYSgpLlN3LHRoZW46KCk9Pl8uSyhfLk8se0E6KCk9PiEhYSgpLm5xLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6ImJvdHRvbS1tZW51LWNhbmNlbCJ9LF8uSyh4Tyx7RGg6YX0pKSxXOigpPT5fLksoeE8se0RoOmF9KX0pfSkpfSwibmIiKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RhdGUtY2hhbmdlIixhTyk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGFPKTt2YXIgeU87eU89Xy5MKGE9Pnt2YXIgYj1hLmNoaWxkcmVuLGM9Xy5adHx8dm9pZCAwLGQ9Xy5tRygpO3JldHVybiBfLksoInl0bS1tZW51IixudWxsLGIoe29uQ2xpY2s6ZT0+e2Euc3RvcFByb3BhZ2F0aW9uPy4oKSYmZS5zdG9wUHJvcGFnYXRpb24oKTthLnByZXZlbnREZWZhdWx0Py4oKSYmZS5wcmV2ZW50RGVmYXVsdCgpO3FoYSh7Y29udGVudDphLmNvbnRlbnQsY2FuY2VsQnV0dG9uTGFiZWw6YS5jYW5jZWxCdXR0b25MYWJlbD8uKCksVGQ6YS5UZD8uKCksY2xhc3NOYW1lOmEuZGY/LigpLGZvY3VzT25DbG9zZTplLmN1cnJlbnRUYXJnZXQsSGE6YS5IYT8uKCksaXNEaXNhYmxlZDphLmlzRGlzYWJsZWQ/LigpLGRpc2FibGVkQ29tbWFuZDphLmRpc2FibGVkQ29tbWFuZD8uKCksb3duZXI6YyxGQTpkfSl9fSkpfSwicGIiKTsKXy56Tz1fLkwoYT0+Xy5LKHlPLHsuLi5hLGNvbnRlbnQ6YS5jaGlsZHJlbn0sKHtvbkNsaWNrOmJ9KT0+Xy5LKF8uTyx7QTooKT0+YS5idXR0b25PdmVycmlkZXM/LigpLHRoZW46Yz0+Xy5LKF8uSksse2RhdGE6KCk9Pih7b25UYXA6YixpY29uUG9zaXRpb246Imljb24tb25seSIsc3R5bGU6Im1vbm8iLHR5cGU6InRleHQiLHNpemU6Ik0iLHN0YXRlOiJhY3RpdmUiLGFjY2Vzc2liaWxpdHlMYWJlbDphLmxhYmVsPy4oKSwuLi5jKCl9KSxpY29uTmFtZTphLmljb25UeXBlfSksVzooKT0+Xy5LKF8udE8se25hbWU6YS5pY29uVHlwZSxhcmlhTGFiZWw6YS5sYWJlbCxjbGFzc05hbWU6Xy5QKGEuRmgse3NtYWxsOmEubGJ9KSxvbmNsaWNrOmIsYnE6ITB9KX0pKSwicWIiKTtfLnpPLmlkb21Db21wYXQ9e2NhbGxiYWNrczp7Y2hpbGRyZW46ITB9fTsKXy5NaGE9Xy5MKGE9Pl8uSyh5Tyx7Li4uYSxjb250ZW50OmEuY2hpbGRyZW59LCh7b25DbGljazpifSk9Pl8uSyhfLk8se0E6KCk9PmEuYnV0dG9uT3ZlcnJpZGVzPy4oKSx0aGVuOmM9Pl8uSyhfLkpLLHtkYXRhOigpPT4oe29uVGFwOmIsaWNvblBvc2l0aW9uOiJpY29uLXdpdGgtbGFiZWwiLHN0eWxlOiJtb25vIix0eXBlOiJ0ZXh0IixzaXplOiJNIixzdGF0ZToiYWN0aXZlIixhY2Nlc3NpYmlsaXR5TGFiZWw6YS5hcmlhTGFiZWw/LigpLFdhOmEubGFiZWw/LigpP18uQUYoYS5sYWJlbCgpKTp2b2lkIDAsLi4uYygpfSksaWNvbk5hbWU6YS5pY29uVHlwZX0pLFc6KCk9Pl8uSyhfLnZPLHtpY29uVHlwZTphLmljb25UeXBlLGxhYmVsOmEubGFiZWwsYXJpYUxhYmVsOmEuYXJpYUxhYmVsLGFyaWFQcmVzc2VkOiExLG9uY2xpY2s6YixzdHlsZTphLnN0eWxlLFZsOmEuVmwsTG06YS5hSX0pfSkpLCJyYiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgT2hhLFBoYSxCTyxRaGEsUmhhLENPLFNoYSxHTyxITyxWaGEsVWhhLFdoYSxYaGEsWWhhLFpoYSxhaWEsUE8sYmlhLGNpYSxkaWEsZWlhLGZpYSxoaWEsZ2lhLFdPLGlpYSxYTyxqaWEsa2lhLGVQLGhQLGxQLG1pYSxuaWEsa1AsalAsTmhhLFRoYTtPaGE9ZnVuY3Rpb24oYSl7Zm9yKGxldCBiIG9mIE9iamVjdC52YWx1ZXMoTmhhKSlpZihfLmlxKGIpPT09YSlyZXR1cm4hMDtyZXR1cm4hMX07ClBoYT1mdW5jdGlvbihhLGIsYyxkLGUsZixoLGssbCl7dmFyIG09KDAsXy5EdykoKTtmPW5ldyBfLlR3KHt2ZVR5cGU6Yix5b3V0dWJlRGF0YTpmLGpzcGJZb3V0dWJlRGF0YTp2b2lkIDB9KTtsPV8uV3coe2F1dG9tYXRlZExvZ0V2ZW50U291cmNlOmx9LG0pO2UmJihsLmN0dEF1dGhJbmZvPWUpO2U9e2NzbjptLHBhZ2VWZTpmLmdldEFzSnNvbigpfTtfLngoImV4cGVjdGF0aW9uX2xvZ2dpbmciKSYmayYmay5zY3JlZW5DcmVhdGVkTG9nZ2luZ0V4cGVjdGF0aW9ucyYmKGUuc2NyZWVuQ3JlYXRlZExvZ2dpbmdFeHBlY3RhdGlvbnM9ay5zY3JlZW5DcmVhdGVkTG9nZ2luZ0V4cGVjdGF0aW9ucyk7YyYmYy52aXN1YWxFbGVtZW50PyhlLmltcGxpY2l0R2VzdHVyZT17cGFyZW50Q3NuOmMuY2xpZW50U2NyZWVuTm9uY2UsZ2VzdHVyZWRWZTpjLnZpc3VhbEVsZW1lbnQuZ2V0QXNKc29uKCl9LGgmJihlLmltcGxpY2l0R2VzdHVyZS5nZXN0dXJlVHlwZT1oKSk6YyYmXy5JcChuZXcgXy5YaigibmV3U2NyZWVuKCkgcGFyZW50IGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhIFZFIC0gcm9vdFZlIiwKYikpO2QmJihlLmNsb25lQ3NuPWQpO2E/Xy5DcCgic2NyZWVuQ3JlYXRlZCIsZSxhLGwpOl8uRXAoInNjcmVlbkNyZWF0ZWQiLGUsbCk7Xy5zbShfLkN3LG5ldyBfLkJ3KG0pKTtfLkV3LmNsZWFyKCk7Xy5Gdy5jbGVhcigpO18uR3cuY2xlYXIoKTtyZXR1cm4gbX07Xy5BTz1mdW5jdGlvbihhLGIsYyxkLGUsZixoKXtfLnd4KGEsYixjLGUsaCl9O0JPPWZ1bmN0aW9uKGEsYil7YS5LLmhhcyhiKXx8YS5LLnNldChiLFtdKTtyZXR1cm4gYS5LLmdldChiKX07ClFoYT1mdW5jdGlvbihhLGIsYz0wKXtfLlZpKCgpPT57Yi50aGVuKGQ9PnthLmouaGFzKGMpJiZhLkImJmEuQigpO3ZhciBlPV8uaXEoYyksZj1fLlZ3KGMpO2lmKGUmJmYpe3ZhciBoPXthdXRvbWF0ZWRMb2dFdmVudFNvdXJjZTozfTtkPy5yZXNwb25zZT8udHJhY2tpbmdQYXJhbXMmJl8uYngoYS5jbGllbnQsZSxmLF8uVXcoZC5yZXNwb25zZS50cmFja2luZ1BhcmFtcyksITEsaCk7ZD8ucGxheWVyUmVzcG9uc2U/LnRyYWNraW5nUGFyYW1zJiZfLmJ4KGEuY2xpZW50LGUsZixfLlV3KGQucGxheWVyUmVzcG9uc2UudHJhY2tpbmdQYXJhbXMpLCExLGgpfX0pfSkoKX07UmhhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8YS5ELmxlbmd0aDtiKyspe3ZhciBjPWEuRFtiXTt0cnl7YygpfWNhdGNoKGQpe18uR3AoZCl9fWEuRC5sZW5ndGg9MDtmb3IoYj0wO2I8YS5VLmxlbmd0aDtiKyspe2M9YS5VW2JdO3RyeXtjKCl9Y2F0Y2goZCl7Xy5HcChkKX19fTsKQ089ZnVuY3Rpb24oYSxiLGMsZD17fSl7dmFyIGU9dm9pZCAwO2QubGF5ZXJ8fChkLmxheWVyPTApO2U9ZC5wYXJlbnRMYXllciE9PXZvaWQgMD9kLnBhcmVudExheWVyOmQubGF5ZXI7dmFyIGY9Xy5pcShlKTtlPV8uVncoZSk7dmFyIGg9Y3x8ZSxrO2gmJihkLnBhcmVudENzbiE9PXZvaWQgMD9rPXtjbGllbnRTY3JlZW5Ob25jZTpkLnBhcmVudENzbix2aXN1YWxFbGVtZW50Omh9OmYmJmYhPT0iVU5ERUZJTkVEX0NTTiImJihrPXtjbGllbnRTY3JlZW5Ob25jZTpmLHZpc3VhbEVsZW1lbnQ6aH0pKTt2YXIgbCxtPV8udygiRVZFTlRfSUQiKTtmPT09IlVOREVGSU5FRF9DU04iJiZtJiYobD17c2VydmxldERhdGE6e3NlcmlhbGl6ZWRTZXJ2bGV0RXZlbnRJZDptfX0pO18ueCgiY29tYmluZV92ZV9ncmFmdHMiKSYmZiYmXy5reChhLGYpO18ueCgibm9fY2xpZW50X3ZlX2F0dGFjaF91bmxlc3Nfc2hvd24iKSYmaCYmZiYmXy5jeChoLGYpO3RyeXt2YXIgbj1QaGEoYS5jbGllbnQsYixrLApkLnRwLGQuY3R0QXV0aEluZm8sbCxkLmltcGxpY2l0R2VzdHVyZVR5cGUsZC5sb2dnaW5nRXhwZWN0YXRpb25zLGQuYXV0b21hdGVkTG9nRXZlbnRTb3VyY2UpfWNhdGNoKHIpe18uY3cocix7R0s6Yixyb290VmU6ZSxxSzpjLG5JOmYscEs6ayx0cDpkLnRwfSk7Xy5HcChyKTtyZXR1cm59Xy5tcShuLGIsZC5sYXllcixkLmN0dEF1dGhJbmZvKTtmJiZmIT09IlVOREVGSU5FRF9DU04iJiZlJiYhT2hhKGYpJiYoXy52eChhLmNsaWVudCxmLGUsITApLGEuby5kZWxldGUoZikpO2I9Qk8oYSxkLmxheWVyfHwwKTtiLmxlbmd0aD4wJiYhYltiLmxlbmd0aC0xXS5jc24mJihiW2IubGVuZ3RoLTFdLmNzbj1ufHwiIik7Xy56cSh7Y2xpZW50U2NyZWVuTm9uY2U6bn0pO18uRHgoKTtfLlZpKF8uQngoKS5LKS5iaW5kKF8uQngoKSkoKTt2YXIgcD1fLlZ3KGQubGF5ZXIpO2YmJmYhPT0iVU5ERUZJTkVEX0NTTiImJnAmJl8ueCgibXVzaWNfd2ViX21hcmtfcm9vdF92aXNpYmxlIikmJl8uVmkoXy5BTykodm9pZCAwLApuLHAsdm9pZCAwLHZvaWQgMCx2b2lkIDApO2Euai5kZWxldGUoZC5sYXllcnx8MCk7YS5CPXZvaWQgMDthLmhhLmdldChkLmxheWVyKT8uZm9yRWFjaCgocix0KT0+e3I/Xy5peChhLHQscixkLmxheWVyKTpwJiZfLml4KGEsdCxwLGQubGF5ZXIpfSk7UmhhKGEpfTtTaGE9ZnVuY3Rpb24oYSxiLGMsZD17fSl7YS5qLmFkZChkLmxheWVyfHwwKTthLkI9KCk9PntDTyhhLGIsYyxkKTt2YXIgZT1fLlZ3KGQubGF5ZXIpO2lmKGUpe2xldCBmPV8uaXEoZC5sYXllcik7Zm9yKGxldCBoIG9mIGEuWSl7bGV0IGs9aFswXSxsPWhbMV18fGU7Zj9fLmp4KGEsayxsLGQubGF5ZXIsZik6Xy5peChhLGssbCxkLmxheWVyKX1mb3IobGV0IGggb2YgYS5NKV8ubXgoYSxoWzBdLGhbMV0pfX07Y3x8Xy5pcShkLmxheWVyKXx8YS5CKCk7aWYoZC5mbClmb3IobGV0IGUgb2YgZC5mbClRaGEoYSxlLGQubGF5ZXIpO2Vsc2UgXy5HcChFcnJvcigiTmIiKSl9OwpfLkRPPWZ1bmN0aW9uKGEsYixjLGQ9e30pe18uVmkoKCk9PntUaGEuaW5jbHVkZXMoYil8fChfLklwKG5ldyBfLlhqKCJjcmVhdGVDbGllbnRTY3JlZW4oKSBjYWxsZWQgd2l0aCBhIG5vbi1wYWdlIFZFIixiKSksYj04Mzc2OSk7aWYoIWQuaXNIaXN0b3J5TmF2aWdhdGlvbil7bGV0IGU9ZC5sYXllcnx8MDthLmdhLnNldChlLFtdKTtCTyhhLGUpLnB1c2goe3Jvb3RWZTpiLGtleTpkLmtleXx8IiJ9KX1hLlk9W107YS5NPVtdO2QuZmw/U2hhKGEsYixjLGQpOkNPKGEsYixjLGQpfSkoKX07Xy5FTz1mdW5jdGlvbihhLGIsYyxkKXtiPV8uZGIoYik7cmV0dXJuIGIhPT12b2lkIDA/YS5vcGVuKGIsYyxkKTpudWxsfTtfLkZPPWZ1bmN0aW9uKGEsYixjKXtjPWMhPW51bGw/Ij0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYykpOiIiO3JldHVybiBfLlNiKGEsYitjKX07R089ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5ReShfLmVkKGEsYikpPz8hMX07CkhPPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5XeChhLGIsXy54dyhjKSwhMSl9O18uSU89ZnVuY3Rpb24oYSxiKXt2YXIgYztfLnViKGEsZD0+e2M9YltkXTtyZXR1cm4hIWN9KTtyZXR1cm4gY307Xy5KTz1mdW5jdGlvbihhLGIsYz0wKXsoYz1fLmlxKGMpKSYmYSYmXy5WaShfLkFPKSh2b2lkIDAsYyxhLHZvaWQgMCxiLHZvaWQgMCl9O18uS089ZnVuY3Rpb24oKXtyZXR1cm4hIV8udygiTVdFQl9GSVJFRk9YX1lUX0xBVU5DSEVSIil9O18uTE89ZnVuY3Rpb24oKXtyZXR1cm4gXy5rTT9fLmtNOl8ubE0oKX07Xy5NTz1mdW5jdGlvbihhLGI9NSxjKXtpZihiIT09MCl7dmFyIGQ9dHlwZW9mIGE9PT0iZnVuY3Rpb24iP2EoKTpkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGEpO2Q/Yz8ucmw/Xy5kTihkKTpkLmZvY3VzKCk6c2V0VGltZW91dCgoKT0+e18uTU8oYSxiLTEsYyl9LDUwMCl9fTtWaGE9ZnVuY3Rpb24oKXt2YXIgYT1VaGEoKTtyZXR1cm4gSE8oYSw3LCEwKX07ClVoYT1mdW5jdGlvbigpe3ZhciBhPW5ldyBOTzthPUhPKGEsNSwhMCk7YT1ITyhhLDIsITApO2E9SE8oYSw0LCExKTthPUhPKGEsOCwhMCk7cmV0dXJuIEhPKGEsOSwhMCl9O1doYT1mdW5jdGlvbigpe3ZhciBhPVZoYSgpO3JldHVybiBITyhhLDEwLCEwKX07WGhhPWZ1bmN0aW9uKCl7dmFyIGE9V2hhKCk7cmV0dXJuIEhPKGEsMTIsITApfTtZaGE9ZnVuY3Rpb24oKXt2YXIgYT1YaGEoKTtyZXR1cm4gSE8oYSwxMywhMSl9O1poYT1mdW5jdGlvbigpe3ZhciBhPVloYSgpO3JldHVybiBITyhhLDE0LCEwKX07YWlhPWZ1bmN0aW9uKGEpe3JldHVybiAkaGEuc29tZShiPT5iLnRlc3QoYSkpfTsKUE89ZnVuY3Rpb24oYSxiKXt7dmFyIGM9YS5mb3JtQ29udGVudD8ubG9jYWxlO2xldCBkPWM/LnNwbGl0KCItIilbMF07Yz1jJiZPTy5pbmNsdWRlcyhjKT9jOmQmJk9PLmluY2x1ZGVzKGQpP2Q6dm9pZCAwfWM9KGM/PyJlbiIpLnJlcGxhY2VBbGwoIi0iLCJfIikudG9Mb3dlckNhc2UoKTthPWEuaW5pdGlhbGl6YXRpb25EYXRhPy51c2VOaWdodGx5UmVsZWFzZT8ibmlnaHRseSI6ImxpdmUiO3JldHVybiBiPy5nZXRFbmFibGVBbG9oYUJpbmFyeVNwbGl0Py4oKT8oMCxfLll4KWBodHRwczovL3d3dy5nc3RhdGljLmNvbS91c2Vydm9pY2UvZmVlZGJhY2svY2xpZW50L3dlYi8ke2F9L21haW5fbGlnaHRfYmluYXJ5LmpzYDooMCxfLll4KWBodHRwczovL3d3dy5nc3RhdGljLmNvbS91c2Vydm9pY2UvZmVlZGJhY2svY2xpZW50L3dlYi8ke2F9L21haW5fYmluYXJ5X18ke2N9LmpzYH07CmJpYT1mdW5jdGlvbihhLGIsYyxkKXtpZihRTyYmUk89PT1iKXJldHVybiBRTztSTz1iO3ZhciBlPVBPKGEsZCk7cmV0dXJuIFFPPWIuZmVlZGJhY2tWMkdsb2JhbE9iamVjdD9Qcm9taXNlLnJlc29sdmUoYi5mZWVkYmFja1YyR2xvYmFsT2JqZWN0KTpuZXcgUHJvbWlzZSgoZixoKT0+e3ZhciBrPV8uQ2QoIlNDUklQVCIpO18ub2IoayxlKTtrLm9ubG9hZD0oKT0+e2IuZmVlZGJhY2tWMkdsb2JhbE9iamVjdD9mKGIuZmVlZGJhY2tWMkdsb2JhbE9iamVjdCk6aChFcnJvcigiR2QiKSl9O2sub25lcnJvcj0oKT0+e2goRXJyb3IoIkhkYCIrZS50b1N0cmluZygpKSl9O2MuYm9keS5hcHBlbmRDaGlsZChrKX0pfTsKY2lhPWZ1bmN0aW9uKGEsYixjLGQpe2lmKFNPJiZUTz09PWIpcmV0dXJuIFNPO1RPPWI7dmFyIGU9UE8oYSxkKTtyZXR1cm4gU089Yi5mZWVkYmFja1YyR2xvYmFsT2JqZWN0P1Byb21pc2UucmVzb2x2ZShiLmZlZWRiYWNrVjJHbG9iYWxPYmplY3QpOm5ldyBQcm9taXNlKChmLGgpPT57dmFyIGs9Xy5DZCgiU0NSSVBUIik7Xy5vYihrLGUpO2sub25sb2FkPSgpPT57Yi5mZWVkYmFja1YyR2xvYmFsT2JqZWN0P2YoYi5mZWVkYmFja1YyR2xvYmFsT2JqZWN0KTpoKEVycm9yKCJHZCIpKX07ay5vbmVycm9yPSgpPT57aChFcnJvcigiSGRgIitlLnRvU3RyaW5nKCkpKX07Yy5ib2R5LmFwcGVuZENoaWxkKGspfSl9O2RpYT1hc3luYyBmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1EYXRlLm5vdygpO2E9YXdhaXQgKGF3YWl0IGJpYShhLGMsZCxiKSkuaW5pdGlhbGl6ZUZlZWRiYWNrQ2xpZW50QXN5bmMoYSxlLGIpO2EuaW5pdGlhdGVBbG9oYSgpO3JldHVybiBhfTsKZWlhPWFzeW5jIGZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPURhdGUubm93KCk7YT1hd2FpdCAoYXdhaXQgY2lhKGEsYyxkLmRvY3VtZW50LGIpKS5pbml0aWFsaXplRmVlZGJhY2tDbGllbnRBc3luYyhhLGUsYixkKTthLmluaXRpYXRlQWxvaGEoKTtyZXR1cm4gYX07CmZpYT1hc3luYyBmdW5jdGlvbihhLGIsYyl7dmFyIGQ9Y3x8Xy51O2lmKGI/LmdldEVuYWJsZUFsb2hhQmluYXJ5U3BsaXQ/LigpKXtpZihkLmlzRm9ybU9wZW5lZCl0aHJvdyBuZXcgVU87ZC5pc0Zvcm1PcGVuZWQ9ITA7YS5jYWxsYmFja3M9YS5jYWxsYmFja3N8fHt9O2xldCBlPWEuY2FsbGJhY2tzLm9uQ2xvc2V8fCgoKT0+e30pO2EuY2FsbGJhY2tzLm9uQ2xvc2U9Zj0+e2QuaXNGb3JtT3BlbmVkPSExO2UoZil9O3RyeXtyZXR1cm4gZWlhKGEsYixkLGQpfWNhdGNoKGYpe3Rocm93IGQuaXNGb3JtT3BlbmVkPSExLGY7fX1lbHNle2lmKGQuaXNGb3JtT3BlbmVkKXRocm93IG5ldyBVTztkLmlzRm9ybU9wZW5lZD0hMDthLmNhbGxiYWNrcz1hLmNhbGxiYWNrc3x8e307bGV0IGU9YS5jYWxsYmFja3Mub25DbG9zZXx8KCgpPT57fSk7YS5jYWxsYmFja3Mub25DbG9zZT1mPT57ZC5pc0Zvcm1PcGVuZWQ9ITE7ZShmKX07dHJ5e3JldHVybiBkaWEoYSxiLGQsZC5kb2N1bWVudCl9Y2F0Y2goZil7dGhyb3cgZC5pc0Zvcm1PcGVuZWQ9CiExLGY7fX19O2hpYT1hc3luYyBmdW5jdGlvbihhLGIpe3JldHVybiBuZXcgUHJvbWlzZSgoYyxkKT0+e051bWJlci5pc0ludGVnZXIoTnVtYmVyKGEpKSYmTnVtYmVyKGEpPjA/KGQ9Z2lhKGI/PyIiKSsiL2Fsb2hhX2Zvcm1fcHJvcGVydGllcz9wcm9kdWN0SWQ9IithLF8ubHkoZCxlPT57ZT1lLnRhcmdldDt2YXIgZj1udWxsO3RyeXt2YXIgaD1KU09OLGs9aC5zdHJpbmdpZnk7aWYoZS5yYSl7dmFyIGw9ZS5yYS5yZXNwb25zZVRleHQ7bC5pbmRleE9mKCIpXX0nXG4iKT09MCYmKGw9bC5zdWJzdHJpbmcoNSkpO3ZhciBtPV8uRXYobCl9ZWxzZSBtPXZvaWQgMDtmPV8uWHgoVk8say5jYWxsKGgsbSkpfWNhdGNoKG4pe2s9bmV3IFZPLG09WmhhKCksbT1ITyhtLDE1LCEwKSxtPUhPKG0sMjAsITEpLG09SE8obSwyNSwhMSksbT1ITyhtLDI2LCExKSxmPV8uS3coaywxLG0pfWMoZil9LCJHRVQiLCIiLHt9LDJFMywhMCkpOmQoRXJyb3IoIklkYCIrYSkpfSl9OwpnaWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGFpYShhKT9hOiJodHRwczovL3d3dy5nb29nbGUuY29tL3Rvb2xzL2ZlZWRiYWNrIn07CldPPWZ1bmN0aW9uKGEsYixjLGQpe2EudGltZU9mU3RhcnRDYWxsPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3ZhciBlPWN8fF8udSxmPWUuZG9jdW1lbnQsaD1hLm5vbmNlfHxfLmliKGUuZG9jdW1lbnQpO2gmJiFhLm5vbmNlJiYoYS5ub25jZT1oKTtpZihhLmZsb3c9PSJoZWxwIil7dmFyIGs9Xy5zYSgiZG9jdW1lbnQubG9jYXRpb24uaHJlZiIsZSk7IWEuaGVscENlbnRlckNvbnRleHQmJmsmJihhLmhlbHBDZW50ZXJDb250ZXh0PWsuc3Vic3RyaW5nKDAsMTIwMCkpO2s9ITA7aWYoYiYmSlNPTiYmSlNPTi5zdHJpbmdpZnkpe2xldCBsPUpTT04uc3RyaW5naWZ5KGIpOyhrPWwubGVuZ3RoPD0xMjAwKSYmKGEucHNkSnNvbj1sKX1rfHwoYj17aW52YWxpZFBzZDohMH0pfWI9W2EsYixjLGRdO2UuR09PR0xFX0ZFRURCQUNLX1NUQVJUX0FSR1VNRU5UUz1iO2M9YS5mZWVkYmFja1NlcnZlclVyaXx8Ii8vd3d3Lmdvb2dsZS5jb20vdG9vbHMvZmVlZGJhY2siO2lmKGQ9ZS5HT09HTEVfRkVFREJBQ0tfU1RBUlQpZC5hcHBseShlLApiKTtlbHNle2U9YysiL2xvYWQuanM/Ijtmb3IobGV0IGwgaW4gYSliPWFbbF0sYj09bnVsbHx8Xy5BYShiKXx8KGUrPWVuY29kZVVSSUNvbXBvbmVudChsKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpKyImIik7YT1fLnhkKGYpLmNyZWF0ZUVsZW1lbnQoIlNDUklQVCIpO2gmJmEuc2V0QXR0cmlidXRlKCJub25jZSIsaCk7Xy5vYihhLF8uVGEoZSkpO2YuYm9keS5hcHBlbmRDaGlsZChhKX19OwppaWE9YXN5bmMgZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5mbG93PT09InN1Ym1pdCIsZj0hIV8uZHIsaD10eXBlb2Ygd2luZG93IT09InVuZGVmaW5lZCImJiEhKHdpbmRvdy5fX2thcm1hX198fHdpbmRvdy5qYXNtaW5lfHx3aW5kb3cubW9jaGF8fHdpbmRvdy5qZXN0KTtpZihlJiZoKVdPKGEsYixjLGQpO2Vsc2V7aD0oYXdhaXQgaGlhKGEucHJvZHVjdElkLGEuZmVlZGJhY2tTZXJ2ZXJVcmkpKT8udigpO2Y9IWZ8fGg/LmdldEVuYWJsZU13ZWIoKTt2YXIgaz0hYS50aW55Tm9Qb2ludGVyfHxoPy5nZXRFbmFibGVUaW55Tm9Qb2ludGVyKCk7Zj0hZSYmKCFofHxoLmdldEFsb2hhQXV0b0dhUm9sbG91dCgpJiZmJiZrKTtlPWUmJmg/LmdldEVuYWJsZUFsb2hhSGVhZGxlc3MoKSYmYS5yZXBvcnQ7Znx8ZT9hd2FpdCBYTyhhLGIsYyxoLGQpOldPKGEsYixjLGQpfX07ClhPPWFzeW5jIGZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9Y3x8Xy51LGg9YS5zZXJ2ZXJFbnZpcm9ubWVudD09PSJERVYiO2M9Y3x8Xy51O2M9YS5ub25jZXx8Xy5pYihjLmRvY3VtZW50KTtoPXtpbnRlZ3JhdGlvbktleXM6e3Byb2R1Y3RJZDphLnByb2R1Y3RJZCxmZWVkYmFja0J1Y2tldDphLmJ1Y2tldCx0cmlnZ2VySWQ6YS50cmlnZ2VySWQsbWljcm9mZWVkYmFja1Njb3JlOmEubWljcm9mZWVkYmFja1Njb3JlfSxjYWxsYmFja3M6e29uQ2xvc2U6YS5jYWxsYmFjayxvbkxvYWQ6YS5vbkxvYWRDYWxsYmFja30sZm9ybUNvbnRlbnQ6e2xvY2FsZTphLmxvY2FsZSxkaXNhYmxlU2NyZWVuc2hvdDphLmRpc2FibGVTY3JlZW5zaG90dGluZyxwcm9kdWN0RGlzcGxheU5hbWU6dm9pZCAwLGFubm91bmNlbWVudDp2b2lkIDAsaXNzdWVDYXRlZ29yaWVzOnZvaWQgMCxpbmNsdWRlU2V2ZXJpdHlTZWxlY3Rpb246dm9pZCAwLGN1c3RvbUltYWdlU3JjOnZvaWQgMCx0aGFua1lvdU1lc3NhZ2U6dm9pZCAwLAp1c2VyRW1haWw6dm9pZCAwLGRlZmF1bHRGb3JtSW5wdXRWYWx1ZXM6dm9pZCAwLGRlZmF1bHRGb3JtSW5wdXRWYWx1ZXNTdHJpbmc6dm9pZCAwLGFidXNlTGluazphLmFidXNlTGluayxhZGRpdGlvbmFsRGF0YUNvbnNlbnQ6YS5hZGRpdGlvbmFsRGF0YUNvbnNlbnR9LGluaXRpYWxpemF0aW9uRGF0YTp7aXNMb2NhbFNlcnZlcjpoLG5vbmNlOmMsdXNlTmlnaHRseVJlbGVhc2U6aCxmZWVkYmFja0pzVXJsOnZvaWQgMCxmZWVkYmFja0Nzc1VybDp2b2lkIDAsZmVlZGJhY2tKc1VybFNlcmlhbGl6ZWQ6dm9pZCAwLGZlZWRiYWNrQ3NzVXJsU2VyaWFsaXplZDp2b2lkIDAsc3VibWlzc2lvblNlcnZlclVyaTphLmZlZWRiYWNrU2VydmVyVXJpLGNvbG9yU2NoZW1lOmEuY29sb3JTY2hlbWV9LGV4dHJhRGF0YTp7cHJvZHVjdFZlcnNpb246YS5wcm9kdWN0VmVyc2lvbixhdXRoVXNlcjphLmF1dGh1c2VyLGNvbmZpZ3VyYXRvcklkOmEuY29uZmlndXJhdG9ySWQsY3VzdG9tWkluZGV4OmEuY3VzdG9tWkluZGV4LAp0aW55Tm9Qb2ludGVyOmEudGlueU5vUG9pbnRlcixhbGxvd05vbkxvZ2dlZEluRmVlZGJhY2s6YS5hbGxvd05vbkxvZ2dlZEluRmVlZGJhY2ssZW5hYmxlQW5vbnltb3VzRmVlZGJhY2s6YS5lbmFibGVBbm9ueW1vdXNGZWVkYmFja319O2EucmVwb3J0JiYoaC5oZWFkbGVzc1JlcG9ydD1hLnJlcG9ydCk7YiYmKGE9bmV3IE1hcChPYmplY3QuZW50cmllcyhiKSksaC5leHRyYURhdGEucHJvZHVjdFNwZWNpZmljRGF0YT1hKTtlJiYoZT1uZXcgTWFwKE9iamVjdC5lbnRyaWVzKGUpKSxoLmV4dHJhRGF0YS5wcm9kdWN0U3BlY2lmaWNCaW5hcnlEYXRhPWUpO2F3YWl0IGZpYShoLGQsZil9OwpfLllPPWZ1bmN0aW9uKGEsYixjLGQpe3RyeXtpZihhLmZsb3c9PT0iaGVscCIpe2xldCBlPWEuaGVscENlbnRlclBhdGgucmVwbGFjZSgvXlwvLywiIik7Xy5FTyhjfHx3aW5kb3csYGh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tLyR7ZX1gKX1lbHNlIGlpYShhLGIsYyxkKS5jYXRjaChlPT57IWV8fGUgaW5zdGFuY2VvZiBVT3x8V08oYSxiLGMsZCl9KX1jYXRjaChlKXtYTyhhLGIsYyxudWxsLGQpLmNhdGNoKGY9PnshZnx8ZiBpbnN0YW5jZW9mIFVPfHxXTyhhLGIsYyxkKX0pfX07Xy5aTz1mdW5jdGlvbigpe3ZhciBhPV8uSU8oWyJmdWxsc2NyZWVuRWxlbWVudCIsIndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50IiwibW96RnVsbFNjcmVlbkVsZW1lbnQiLCJtc0Z1bGxzY3JlZW5FbGVtZW50Il0sZG9jdW1lbnQpO3JldHVybiBhP2E6bnVsbH07Cl8uJE89ZnVuY3Rpb24oYSl7dmFyIGI9YS5nZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2tsaXN0Iix7aW5jbHVkZUFzcjohMH0pPz9bXTtyZXR1cm4gYj1qaWEoYixhKX07Xy5hUD1mdW5jdGlvbihhKXtyZXR1cm4gYS5nZXRPcHRpb24oImNhcHRpb25zIiwidHJhbnNsYXRpb25MYW5ndWFnZXMiLHtpbmNsdWRlQXNyOiEwfSl8fFtdfTtqaWE9ZnVuY3Rpb24oYSxiKXtiPV8uYVAoYik7aWYoIWI/Lmxlbmd0aClyZXR1cm4gYTt2YXIgYz1iLmZpbHRlcihkPT5kKTtiPWEuZmlsdGVyKGQ9PmQubGFuZ3VhZ2VDb2RlPy5zdGFydHNXaXRoKCJlbiIpKTtmb3IobGV0IGQgb2YgYylpZihiLmxlbmd0aCl7Yz1iWzBdO2xldCBlPXsuLi5jfTtjLmxhbmd1YWdlQ29kZSE9PWQubGFuZ3VhZ2VDb2RlJiYoZS5kaXNwbGF5TmFtZT1gJHtjLmxhbmd1YWdlTmFtZX0gPj4gJHtkLmxhbmd1YWdlTmFtZX1gLGUudHJhbnNsYXRpb25MYW5ndWFnZT1kLGEucHVzaChlKSl9cmV0dXJuIGF9OwpraWE9ZnVuY3Rpb24oKXtfLk1PKCdbYXJpYS1sYWJlbD0iWW91VHViZSJdJyw1LHtybDohMH0pfTtlUD1mdW5jdGlvbihhKXt2YXIgYj1iUDtiJiYoYT9jUD1fLnhGKGIsKCk9Pl8uSyhkUCxudWxsLF8uSyhfLnROLHtjb21wb25lbnQ6bGlhfSkpLHtJazpfLlhDfSk6KGNQPy4oKSxjUD1udWxsKSl9O2hQPWZ1bmN0aW9uKCl7Y1AmJihjUCgpLGNQPW51bGwpO2ZQKHZvaWQgMCk7Z1AoIm91dCIpO2JQJiYoYlAucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChiUCksYlA9bnVsbCl9O2xQPWZ1bmN0aW9uKCl7aVAubGVuZ3RoJiYoZ1AoIm91dCIpLHNldFRpbWVvdXQoKCk9PntpUC5zaGlmdCgpO2lQLmxlbmd0aD4wPyhoUCgpLGpQKCksa1AoKSk6KGVQKCksaFAoKSl9LDE5NSkpfTttaWE9ZnVuY3Rpb24oKXtfLk5NKHdpbmRvdywic3RhdGUtbmF2aWdhdGVlbmQiLCgpPT57c2V0VGltZW91dChraWEsMUUzKX0pfTsKbmlhPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImMzLXRvYXN0Iik7aWYoYil7bGV0IGM9Yi5xdWVyeVNlbGVjdG9yKCJidXR0b24iKTtjJiZfLk5NKGMsImZvY3VzIiwoKT0+e2NsZWFyVGltZW91dChtUCk7bVA9c2V0VGltZW91dChsUCxhKTtfLk5NKGMsImJsdXIiLCgpPT57Xy5PRShfLm5QKX0pfSl9fTtrUD1mdW5jdGlvbigpe2dQKCJpbiIpO3ZhciB7Y29udGVudDphLGR1cmF0aW9uTXM6Yn09aVAubGVuZ3RoP2lQWzBdOnt9O2ZQKGEpO2NQfHxlUChhKTttUD1zZXRUaW1lb3V0KCgpPT57bFAoKX0sMjI1KyhifHwwKSk7Xy5VTSgpPT09ImxpYnJhcnkiP21pYSgpOmIhPT12b2lkIDAmJm5pYShiKX07alA9ZnVuY3Rpb24oKXtiUHx8KGJQPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGJQLmlkPSJ0b2FzdHMiLChfLlpPKCl8fGRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKGJQKSxlUCgpKX07Cl8ucFA9ZnVuY3Rpb24oYSxiPW9QLGM9ITEpe2pQKCk7Yj1ifHxvUDtjJiZpUC5sZW5ndGg+MD8oY2xlYXJUaW1lb3V0KG1QKSxfLk9FKCgpPT57aVBbMF09e2NvbnRlbnQ6YSxkdXJhdGlvbk1zOmJ9O2tQKCl9KSk6KGlQLnB1c2goe2NvbnRlbnQ6YSxkdXJhdGlvbk1zOmJ9KSxpUC5sZW5ndGg9PT0xJiZfLk9FKGtQKSl9O18ublA9ZnVuY3Rpb24oKXtpUC5sZW5ndGg+MCYmKGNsZWFyVGltZW91dChtUCksbFAoKSl9O18ucVA9ZnVuY3Rpb24oYSl7Xy5YTSgibmF2aWdhdGUiLGEpfTtfLnJQPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueCgibXdlYl9uZXdfZnVsbHNjcmVlbiIpPyEhXy5aTygpOiEhXy5aTygpfHx3aW5kb3cubG9jYXRpb24uaGFzaD09PSIjZmF1eGZ1bGxzY3JlZW4ifTsKXy5zUD1mdW5jdGlvbihhKXthPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEudG9TdHJpbmcoKSk7YS5mb2N1cygpO2Euc2V0U2VsZWN0aW9uUmFuZ2UoMCxhLnZhbHVlLmxlbmd0aCk7YT0hMTt0cnl7YT1kb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpfWNhdGNoKGIpe31fLnBQKGE/KCk9Pm9pYTooKT0+cGlhKX07Xy50UD1mdW5jdGlvbigpe3JldHVybiEhXy53KCJJRF9UT0tFTiIpfTtOaGE9e0hDOjAsdkM6MSxCQzoyLHlGOjMsWG46NCxESDo1LEJGOjYsUUc6NyxwRzo4LHVHOjksVEY6MTAsbkY6MTEsMDoiREVGQVVMVCIsMToiQ0hBVCIsMjoiQ09OVkVSU0FUSU9OUyIsMzoiTUlOSVBMQVlFUiIsNDoiRElBTE9HIiw1OiJWT1oiLDY6Ik1VU0lDX1dBVENIX1RBQlMiLDc6IlNIQVJFIiw4OiJQVVNIX05PVElGSUNBVElPTlMiLDk6IlJJQ0hfR1JJRF9XQVRDSCIsMTA6IlBJQ1RVUkVfSU5fUElDVFVSRSIsMTE6Ik1FRElBX0NMSUVOVCJ9OwpUaGE9WzM2MTEsMjc2ODYsMjIxMDU4LDg1MDEzLDIzNDYyLDI0MTE4NywxNTc1NTcsNDIwMTYsMjY5MjYsNTEyMzYsNzkxNDgsNTAxNjAsNzc1MDQsMzEwMjgxLDE1MzU4Nyw4NzkwNywxODYzMCwxNzcwMTgsMTc3MDIzLDU0NDQ1LDMyMTY2NiwzMjYzNTMsMzI2MzU0LDgwOTM1LDE1MjE3MiwxODQ1NTMsMTA1Njc1LDE1MDcyMywzNzUyMSwxNDcyODUsNDc3ODYsMjMxMjU1LDIzMTI1NCwyMzEyNTgsMjMxMjU5LDk4MzQ5LDIzNzI5OSwxNjgyNzEsMTY4OTU0LDE2ODI3NywxNjgyNzMsMTY4MjcwLDEyMzY5NSwyNzIwMTgsMzM4NDk3LDIyNjk4NywyMjY5OTAsMjI2OTg4LDY4MjcsMjk0MzQsMjU1MDEwLDE3MTM4OCwyNDQxODksMjM2MjA4LDcyODIsMTI0NDQ4LDI5OTkwMywyOTk4OTcsMjk5OTA0LDI5OTkwMSwyOTk4OTksMjk5OTAyLDI5OTkwMCwyOTk4OTgsMTk2MDg4LDI1MDg5NywxOTgxMDQsMzIyNzYsMTk1MTE1LDE5NTExNCw3NjI3OCwyMDA2MzUsMjMwNTk0LDE0Nzg2OCwxNDc4NjksCjI3NjI0Myw5MzkxMSwyNzQxODgsMjc2NjUxLDMxMzY4MCwxMDY1MzEsMjU3MjM0LDI1MjU5OCwyNTI1OTcsMjUyNjAwLDI1MjU5OSwyNTI1OTYsMjI1MDMxLDE3Nzg0MywyNzI1OSwyNzI2MiwyNzI2MywyMTc1OSwyODM2NzAsMTYwODY2LDIwNDI0OSwyMjI5MDAsMjA0MjUwLDE4MDYyNiwxNzc5NTksMTc3OTU3LDE4MDYyOCwyMDU3MTYsMTk3ODc4LDI3Mzc2NiwxNzEyNDMsMTYwNzg5LDE3MTI0NCwxNzEyNDEsMTcxMjQ1LDE3MTI0MiwyMjU1NjAsMTgwNjI3LDE3Nzk2MCwyMzE1ODksMTc3OTU4LDE4MDYyOSwyMDU3MTcsMTk3ODc5LDE3NzU2NSwyMTI1NzMsMjEwNzA5LDk5NDQxMiwyMzA2ODQsMjI5ODAxLDIzMDY4NSwzMzQzMTAsMzM0MzExLDMzNDMxMiwxOTczMzcsMjA5MDEwLDE5NzMzNiwxOTczMzgsMTk4NjE4LDMwMDg4NCwxNzU0OTIsMTk4MDUyLDE5ODA1MSwxOTc4NTIsMTk3OTc2LDMxNzM3NywxNzU0OTMsMTc1NDk0LDE3NTQ5NSwxODkyNTQsMTc1NDk2LDE3NTQ5NywzODQwOCwKMTc1NDk4LDE3NTUwMywxNzU1MDQsMTc1NTA1LDE3NTUwNiwxNzU1MDcsMTc1NTA4LDgwNjM3LDY4NzI3LDIwNjkzMywyMDc5NDQsMjA2OTM0LDMwMzEyMywyMDY5MjksMjIxNTc1LDY4NzI4LDIyMTU3Niw4MDM1Myw4MDM1NiwzMDgwMzMsMjQ5MTA3LDE4MDYzNSw3NDYxMCw0NTcwNyw4Mzk2Miw4Mzk3MCw0NjcxMywxNjY1OTEsODk3MTEsNzQ2MTIsMjEzODA5LDE3OTYwNywyNDUwMDYsMTU1NzkyLDkzMjY1LDc0NjExLDEzMTM4MCwxMjg5NzksMTM5MzExLDEyODk3OCwxMzEzOTEsMTA1MzUwLDEzOTMxMiwzMzM2MzcsMTM0ODAwLDEzMTM5MiwxMTM1MzMsMjI5Mjk4LDkzMjUyLDk5MzU3LDk0NTIxLDExNDI1MiwxMTM1MzIsOTQ1MjIsOTQ1ODMsMjAyMzcxLDg4RTMsMTM5NTgwLDkzMjUzLDkzMjU0LDk0Mzg3LDk0Mzg4LDkzMjU1LDk3NDI0LDcyNTAyLDIxOTg2OCwyMTI5OTEsMTEwMTExLDc2MDE5LDExNzA5MiwxMTcwOTMsODk0MzEsMTkxODMxLDExMDQ2NiwyMzEzNDYsNzcyNDAsCjYwNTA4LDE4NjA5MSwxNDgxMjMsMTQ4MTI0LDEzNzQwMSwxMzc0MDIsMTM3MDQ2LDczMzkzLDI0Njc3NiwxMTM1MzQsMjc2MjAwLDkyMDk4LDEzMTM4MSw4NDUxNyw4Mzc1OSwzMDk1ODAsMjMwNjc2LDI0OTE4MywyMzA2NzksMjMwNjc4LDIzMDY3NywyMzA2ODEsMjMwNjgwLDE2MjcxMSwyMzUyMzQsMTYyNzEyLDgwMzU3LDk5NDQxMSwyNDMzMTUsMzEzNTA2LDMyMTk2NCw4NjExMyw3MjU5OCwxNjg0MTMsNzI3MzMsMTA3MzQ5LDEyNDI3NSwxMTgyMDMsMjAwNDEwLDEzMzI3NSwxNjAxNTcsMTUyNTY5LDE1NjY1MSwxMzMyNzQsMTYwMTU5LDE2MDE1OCwxMzMyNzIsMTMzMjczLDEzMzI3NiwxNDQ1MDcsMTQzMjQ3LDE3NTk5NCwxNTY2NTIsMTQzMjQ4LDE0MzI0OSwxNDMyNTAsMTQzMjUxLDE4OTg5MiwxODk4OTQsMTg5ODkzLDE1NjY1MywyMTQyMzYsMTQ0NDAxLDExNzQzMSwxMzM3OTcsMjI1MTM3LDI3MzkwNSwyMjI2MTIsMjIyNjEzLDE1Mzk2NCwyMDExMzMsMjAxMTM0LDIwMTEzNSwKMjAxMTM2LDIwMTEzNywxMjg1NzIsMjAwNDExLDIwMDQxMiwxOTAzMzcsMTMzNDA1LDExNzQyOSwxMTc0MzAsMTc3OTUwLDE3NDczNCwxNzc5NTEsMjAxMTM4LDIwMTEzOSwyMDExNDAsMjAxMTQxLDIwMTE0MiwxMTc0MzIsMTczOTk2LDE3Mzk5NSwxNzQ5NTMsMTczOTk0LDE3Mzk5NywxMjAwODAsMTE3MjU5LDE3ODU0NiwyOTc3NTIsMTk3ODkxLDE1NjY1NSwxNTY2NTQsMTIxNjkyLDIxMTQxNCwyMTE0MTEsMjExNDEyLDIxMTQxMywyMTE0MDMsMTg0ODQ2LDE4NTk5MywzMzUwNDgsMTQ1NjU2LDE1NjY1NiwxNDU2NTUsMTQ1NjUzLDE0NTY1NCwxNDU2NTcsMTMyOTcyLDEzMzA1MSwxMzM2NTgsMTMyOTcxLDMzNjcyOCw5NzYxNSwxODEyNjIsMTkwNzYyLDI1MDM0NCwyNTQwMjcsMTQzMzU5LDE0MzM1NiwxNDMzNjEsMTQzMzU4LDE0MzM2MCwxNDMzNTcsMTQyMzAzLDE0MzM1MywyODIxNTksMTcyODU5LDE0MzM1NCwxNDQ0NzksMTQzMzU1LDMxNDAyLDE4MTU5MCwxMzM2MjQsMTQ2NDc3LAoxMzM2MjMsMTMzNjIyLDEzMzYyMSwxOTI0MTgsODQ3NzQsMzA0Nzc2LDE5Nzk5MywyNDE0NjAsMTYwODAxLDE5Nzk5NSw5NTExNywxNzI3MjEsMTUwNDk3LDk4OTMwLDk4OTMxLDk4OTMyLDMzODU3MCwzMzg0NzQsMzM4NDc4LDMzODQ3MywxNTMzMjAsMTUzMzIxLDQzMzQ3LDMwNTI2OCwyNDkyOTUsMjEwMDE2LDIxMDAxNywyNjI2ODYsMjExODUxLDIxMTg1MiwzMDcyMTksMjExODUzLDMyNzgxMCwxMjk4ODksMTk3ODg4LDE5Nzg4OSwxNDkxMjMsMjIxOTU5LDIyMTYyNywyMjE5NTgsNDU0NzQsMTAwMzUyLDk4NDQzLDExNzk4NSwzMzM3MDgsNzQ2MTMsMTU1OTExLDc0NjE0LDY0NTAyLDEzNjAzMiw3NDYxNSw3NDYxNiwxMjIyMjQsNzQ2MTcsNzc4MjAsNzQ2MTgsMjYyOTg4LDI2Mjk4OSwyMjY5ODEsOTMyNzgsOTMyNzQsOTMyNzUsOTMyNzYsMjAwNjg4LDIwMDY4NiwyMDA2ODcsMTk5ODQxLDIyMTEwLDI5NDMzLDEzMzc5OCwxMzIyOTUsMjgxMzMyLDEyMDU0MSwyMjIxMTIsODIwNDcsCjExMzU1MCw3NTgzNiw3NTgzNywzMDM4ODIsMTkyNDA5LDIwMzIyMSw0MjM1Miw4NDUxMiw3NjA2NSw3NTk4OSwyMDU5MTEsMjA1OTEyLDI1MjY0OSwyMDU5MTMsMjUyNjUwLDI1MjY1MSw1MTg3OSwxNjYyMywzMjU5NCwyNzI0MCwzMzgxMDksMjkzMzI0LDMyNjMzLDc0ODU4LDMwNDE1MCwyOTcwNDUsMjc1MTk4LDI3MTg4NCwyMjI5MzIsMjc5MTE5LDMxMjU4MSwyNzE4ODYsMjEzOTE1LDI3NTE5OSwzMTA3NDgsMjI1MjE2LDI1MTI0NCwyNTgyNTEsMjE4Njc0LDI1MTI2NiwyNTgyNTAsMjUxMjY1LDMwMTY2MiwyNTEyNDUsMjcxODg1LDMxNTgxOCwxNTY5OTksMzk0NSwxNjk4OSw0NTUyMCwyNTQ4OCwyNTQ5MiwyNTQ5NCwyMzIxMTMsNTU3NjAsMTQwNTcsMTg0NTEsNTcyMDQsNTcyMDMsMTc4OTcsMTgxOTgsMTc4OTgsMTc5MDksNDM5ODAsMjIxMDUzLDE5NTUyOSwxODk2NjAsMzA4MDg4LDMwNjQ0OCwzMDY0NDcsMzA4MDg3LDMwODA4Niw0NjIyMCwxMTcyMSwxNDc5OTQsNDk5NTQsOTYzNjksCjM4NTQsMjE3NjQwLDE1MTYzMyw1NjI1MSwyMDUxOTIsMjE2Nzk3LDE1OTEwOCwxODE1NjgsMjM0Nzg5LDI1NjI0LDE1MjAzNiwxNjkwNiw5OTk5OSw2ODE3Miw0Nzk3Myw3Mjc3MywyNjk3MCwyNjk3MSw5NjgwNSwxNzc1MiwyODIxODEsMjc4OTI2LDczMjMzLDIwNTkyMywxMDk1MTIsMjIyNTYsMTQxMTUsMjI2OTYsMjM0NDA5LDIzNDQwOCw4OTI3OCw4OTI3NywxOTU3NDUsMTA5NTEzLDQzMjc4LDQzNDU5LDQzNDY0LDg5Mjc5LDQzNzE3LDU1NzY0LDIyMjU1LDE0NzkxMiw4OTI4MSw0MDk2Myw0MzI3Nyw0MzQ0Miw5MTgyNCwyODM4OTgsMTIwMTM3LDE4NjM1MCwxODYzNTEsMjU2NjkwLDI2NDM0OSwyNjQzNTEsMjY0MzUwLDI2NDM1MiwyMTEwMjYsMjUwODk2LDk2MzY3LDM2ODUwLDcyNjk0LDM3NDE0LDM2ODUxLDEyNDg2MywxMjEzNDMsNzM0OTEsNTQ0NzMsMTY2ODYxLDQzMzc1LDQ2Njc0LDMwMjYzMSwzMzE0NzMsMjQyNTI4LDE0MzgxNSwxMzkwOTUsMTQ0NDAyLDE0OTk2OCwxNDk5NjksCjMyNDczLDcyOTAxLDcyOTA2LDUwNjEyLDUwNjEzLDUwOTQyLDg0OTM4LDg0OTQzLDg0OTM5LDg0OTQxLDg0OTQ0LDg0OTQwLDg0OTQyLDM1NTg1LDUxOTI2LDc5OTgzLDE4OTIxLDU3ODkzLDQxMTgyLDEzNTczMiwzMzQyNCwyMjIwNywzNjIyOSwyMjIwNiwyMjIwNSw0NDc2MywzMzQyNyw2Nzc5MywyMjE4MiwzNzA5MSwzNDY1MCw1MDYxNywyMjI4NywyNTE0NCw5NzkxNywyMjAxMjIsNjIzOTcsMTUwODcxLDE1MDg3NCwxMjU1OTgsMTM3OTM1LDM2OTYxLDEwODAzNSwzMjM0OTMsMjc0MjYsMjc4NTcsMjc4NDYsMjc4NTQsNjk2OTIsNjE0MTEsMzkyOTksMzg2OTYsNjI1MjAsMzYzODIsMTA4NzAxLDE5MjY4MiwyNzk1MzEsNTA2NjMsMzYzODcsMTQ5MDgsMzc1MzMsMTA1NDQzLDYxNjM1LDYyMjc0LDE2MTY3MCwxMzM4MTgsMTgyMTE5LDY1NzAyLDY1NzAzLDY1NzAxLDMyMDQ2NCw3NjI1NiwyOTgxNTcsMjYzODQzLDMxNTIzNCwxOTYwNzUsMTk0NzY4LDI1MjIwMSwxOTQ3NjksMTkxODg1LAoyODE0ODAsMjMzNjM0LDI2NTgxMCwxOTQ3NzAsMjk2OTMzLDE5NTM1MCwzMjczODUsMzI0NTg2LDMwMTYwNywxOTUzNDksMTk0NzcxLDI5MzA0MSwzMDExMjEsMjkzMDQyLDI5MzA0MywzMDExMTYsMTY2MzgyLDM3NjcxLDQ5OTUzLDIyMDY2OSw2MDAwMDEsNjAwMDAyLDZFNSwzMzUxMzQsMjQ5MjI5LDIxMzc3NCwyMDQ1NzIsMTkxMzg5LDI3MjI1NCwyNzIyNTMsMjUzODMwLDI1MzgzMSwyNTM4MzIsMjcyMjUyLDI1MzgzMywyNTM4MzQsMjA0NTc0LDE5MTM5MCwxNzk1NTYsMjM4NTk2LDIxMjY2MSwxOTEzOTIsMTk3ODI2LDE5MTM5MywyMDQ1NzMsMzYyMTYsMjgyMzcsMjQxMjEyLDI3MjA0OSwxNzM3MTgsMzk1NTMsMTkyNTQ3LDI5MjIyLDMwNDg0NSwyNjEwNywyNDEyMTEsMzgwNTAsMjYxMDgsMjc1ODEwLDEyMDc0NSwyNjEwOSwyNjExMCw2Njg4MSwyODIzNiwxNDU4NiwyOTc2NzIsMTYwNTk4LDU3OTI5LDIyNjczNiw3NDcyMyw0NDA5OCwxNzM2ODksNDQwOTksMjM1MjgsNjE2OTksCjEzNDEwNCwxMzQxMDMsMTk4MzEzLDU5MTQ5LDE4MTAxMywyNzgzMDYsMjgyNDcyLDI3Nzg0OCwxNzMxOTEsMTczMTkyLDE3MzE5MywxMDE5NTEsMTcxNTAyLDE5NjA0MywxOTgzMDUsOTczNDYsMTE4MDUxLDk1MTAyLDY0ODgyLDExOTUwNSw2MzU5NSwyOTQxMTksMjU3MjY4LDYzMzQ5LDI4MTEyNywyNDA1NTMsOTUxMDEsNzUyNDAsMjcwMzksNjg4MjMsMjE1MzcsODM0NjQsNzU3MDcsMjUyOTA0LDE3MDIxNSwyMjMwMzMsODMxMTMsMTAxOTUyLDEwMTk1Myw3OTYxMCwxMjU3NTUsMjQ0MDIsMjQ0MDAsMzI5MjUsMTkzNDA2LDU3MTczLDE4MzM1MSwxNTY0MjEsMTIyNTAyLDE0NTI2OCwxMzg0ODAsNjQ0MjMsNjQ0MjQsMzM5ODYsMTAwODI4LDEyOTA4OSwyOTk1NDEsMjE0MDksMjgyMjE4LDI5OTUwNiwzMzM5NTYsMjk5NTQwLDI5OTUwNywyOTk1MDksMjk5NTM5LDI5OTUwOCwyOTk1MTAsMTg1NjEyLDIyMjgyNSwzMjMzMzEsMjQ1MzY2LDEzNTE1NSwxMzUxNTYsMTM1MTU3LDEzNTE1OCwKMTU4MjI1LDEzNTE1OSwxMzUxNjAsMTY3NjUxLDEzNTE2MSwxMzUxNjIsMTM1MTYzLDE1ODIyNiwxNTgyMjcsMTM1MTY0LDEzNTE2NSwxMzUxNjYsMTEwNzAsMTEwNzQsMTc4ODAsMjcwNTYwLDMwNzA5LDMwNzA3LDMwNzExLDMwNzEwLDMwNzA4LDE4NTIxMywxODUyNzMsMTQ2MTQzLDYzNjQ4LDYzNjQ5LDIyMTA1NiwyNjQ0OTAsMjExMTg5LDExMTA1OSwyMTExODgsNTc1NCwyNjQ0OTEsMjA0NDUsMjMzNDcxLDE1MTMwOCwzMTM3NTAsMTUxMTUyLDIyODA2NywxMzA5NzUsMTMwOTc2LDI0NzI0NCwyNzE2MjIsMjcxODEzLDI2MTIxMCwyMTA4MTUsMjk1MDY5LDI0NjEyNywzMTY4NTgsMjQ1MjU2LDI0NDk1MCwxOTE5MjUsMTY3NjM3LDIzNDU0NSwxOTcxOTYsMzAyNzM1LDIxNDI5NSwxMTAzODYsMjIxMDU0LDI3Mzk2MCwyODIxMTEsMzEyMjkwLDExMzc0NiwzMjU1OTMsMjY4ODg2LDY2NTU3LDE4MzIxNSwxNzMxMCwyODYzMSwyMDE5MzUsMjE1ODksMjQyMDM2LDIzODM1MSwxNjQ4MTcsCjE2ODAxMSwxNTQ5NDYsNjgwMTIsMTYyNjE3LDYwNDgwLDE4NDQzMSwxMzg2NjQsMjk0MDg5LDI0OTgyNywxOTRFMywxNDExMjEsMTY0NTAyLDMxNTcxLDE5NTAwMiwyMDY3OTMsMTQxOTc4LDIzMzk4NSwyNTA4OTUsMjU0MDUyLDI1NDA1MywyNTQwNTQsMjU0MDUxLDI1NDA1MCwyNTQwNTUsMTUwMTA1LDMwNDE2OSwxNTAxMDYsMTUwMTA3LDE1MDEwOCw3Njk4MCw0MTU3Nyw0NTQ2OSwzODY2OSwxMzc2OCwxMzc3NywxNDE4NDIsNjI5ODUsMjEzMTkwLDQ3MjQsMjIzMDUyLDU5MzY5LDQzOTI3LDQzOTI4LDEyOTI0LDE5Nzg1MywxMDAzNTUsNTYyMTksMjc2NjksMjA5OTI4LDEwMzM3LDIwMzY0OCwyMDM2NDksNDc4OTYsMzI2OTM3LDEyMjYyOSwxODYyMDQsMjIyODI0LDI3NTg2OSwzMTIyOTUsMjcxNjczLDI3NDYzNywzMTc0NjIsMTM5NzIzLDEzOTcyMiwxMjEyNTgsMjUzNzg5LDI1Mzc4NywyNTM3ODYsMjUzNzg4LDI1Mzc5MCwxMDc1OTgsMTI3OTkxLDk2NjM5LDEwNzUzNiwxMzAxNjksCjIxNjUyMiwyOTYzMTYsOTY2NjEsMTQ1MTg4LDMyMDQyOCwyMTM5MDQsMjY5MzQyLDk2NjU4LDExNjY0NiwxNTk0MjgsMTY4NjExLDE2ODYxMiwxMjExMjIsMjE5ODYyLDk2NjYwLDI4MjIwOCwxMjc3MzgsMTI3MDgzLDE1NTI4MSwxNjI5NTksMjIwODg2LDIyNzM1NiwyNDgwMDcsMTYzNTY2LDMwNzY0NiwxODY2NDEsMTQ3ODQyLDI3MzY0NiwyNzM2NDcsMjE3OTMyLDEwNDQ0Myw5NjY1OSwxNDc1OTUsMTA2NDQyLDI0NzE2MiwyMzE0OTMsMjEzNDI3LDI5NjgxMywyNDY1NzUsMTgyNDIzLDE2Mjc3NiwyMjg5MDgsMTM0ODQwLDYzNjY3LDYzNjY4LDYzNjY5LDEzMDY4NiwzMzcxNzIsMjQ4MzgxLDE0NzAzNiwyMzkwOTQsMjYyNzQzLDE4OTgxMCwyMzkwOTUsNzgzMTQsMTQ3Nzk5LDMwNTkxOSwzMDU5MjQsMjM3MTQ2LDE3NDA0OSwxNDg2NDksNTU3NjEsMTI3MDk4LDEzNDg0MSw5NjM2OCw2NzM3NCw0ODk5MiwxNDYxNzYsMTc2MTA1LDMyMzMyMSwzMjMzMjIsMjMzMDM1LDQ5OTU2LDI2NzY0NSwKMjc1NzgyLDE5MDE5MCwyMjU3MzksMzE5NjEsMjYzODgsMjM4MTEsNUU0LDEyNjI1MCw5NjM3MCwyMTA1NDksMzI5NDkwLDQ3MzU1LDQ3MzU2LDM3OTM1LDQ1NTIxLDMzMTUzNiwzMzE1MzQsMzMxNTM1LDMzMTUzMywyMTc2MCw4Mzc2OSw0OTk3Nyw0OTk3NCw5MzQ5Nyw5MzQ5OCwzNDMyNSwxNDA3NTksMTE1ODAzLDEyMzcwNywxMDAwODEsMzUzMDksMjM3NzA2LDY4MzE0LDI1NjAyLDEwMDMzOSwxNzA4NzMsMTQzNTE2LDI5OTI0NywxNzg5MjEsMjY4NTc0LDI1NDg4NCwyNTgyMzIsNTkwMTgsMTgyNDgsNTA2MjUsOTcyOSwzNzE2OCwzNzE2OSwyMTY2NywxNjc0OSwxODYzNSwzOTMwNSwxODA0NiwyMjEwNTcsMzAxODk3LDMwMTkwMCwyNjk5OTAsNTM5NjksODIxMyw5MzkyNiwyMjEwNTUsMjEwNTQyLDIxMjU1MiwxMDI4NTIsMTEwMDk5LDIyNjc4LDY5MDc2LDEzNzU3NSwxMzkyMjQsMTAwODU2LDIzNTc3MCwxNTQ0MzAsMjM1ODYxLDIwOTc1NywxNzczNiwzODMyLDE0NzExMSw1NTc1OSwKNjQwMzEsMjM0NzQ2LDkzMDQ0LDkzMDQ1LDI4MTMwMiwxNzA3MDEsMTcwNzAyLDE5NDc5NiwzNDM4OCwxNjc4NDEsMTcwNDE5LDE3NjU3LDE3NjU1LDM5NTc5LDM5NTc4LDE3MDQxMiw3NzQ0OCw4MTk2LDExMzU3LDY5ODc3LDgxOTcsMTY4NTAxLDE1NjUxMiwxNjE2MTMsMTU2NTA5LDIwODI3NCwxNjE2MTIsMTYxNjE0LDI2NzY5MiwyNjc4NTEsMjY3NTc3LDI3OTc1NSwyNjc2OTMsMjY3Njk0LDI2NzU3OCwyNjI4MDEsMzM0NDk2LDMzNTg0NCwyNzEyMTgsMjY2MTMxLDI2NjEzMiwyNjc5NzcsMjY3NTc5LDI2MjgwMCwyNjI3OTksMjYyODAyLDI2NzU4MCwyNjI3OTgsMjY3Njk1LDI2NzU4MSwyNzMyMzIsODIwMzldO3ZhciBOTz1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9Z2V0RW5hYmxlU3NFbmdpbmUoKXtyZXR1cm4gR08odGhpcywyKX1nZXRFbmFibGVBd3IoKXtyZXR1cm4gR08odGhpcywzKX1nZXRBbG9oYUF1dG9HYVJvbGxvdXQoKXtyZXR1cm4gR08odGhpcyw1KX1nZXRFbmFibGVDb25maWd1cmF0b3IoKXtyZXR1cm4gR08odGhpcyw2KX1nZXRFbmFibGVNd2ViKCl7cmV0dXJuIEdPKHRoaXMsNyl9Z2V0RW5hYmxlQ3RsQ29uc2VudENoZWNrYm94KCl7cmV0dXJuIEdPKHRoaXMsOCl9Z2V0RW5hYmxlSWZyYW1lKCl7cmV0dXJuIEdPKHRoaXMsOSl9Z2V0RW5hYmxlU2NyZWVuc2hvdE51ZGdlKCl7cmV0dXJuIEdPKHRoaXMsMTApfWdldEVuYWJsZVdlYlN0YXJ0dXBDb25maWdFbmRwb2ludCgpe3JldHVybiBHTyh0aGlzLDExKX1nZXRFbmFibGVKdW5rTnVkZ2UoKXtyZXR1cm4gR08odGhpcywxMil9Z2V0RW5hYmxlQ29uZmlndXJhdG9yTG9jYWxlKCl7cmV0dXJuIEdPKHRoaXMsCjEzKX1nZXRFbmFibGVUaW55Tm9Qb2ludGVyKCl7cmV0dXJuIEdPKHRoaXMsMTQpfWdldEVuYWJsZVN1cHBvcnRTZXNzaW9uTG9nZ2luZygpe3JldHVybiBHTyh0aGlzLDE1KX1nZXRFbmFibGVGaWxlVXBsb2FkRm9yU2NyZWVuc2hvdCgpe3JldHVybiBHTyh0aGlzLDE2KX1nZXRFbmFibGVEaXJlY3REZWZsZWN0aW9uRm9yU2luZ2xlQ2F0ZWdvcnkoKXtyZXR1cm4gR08odGhpcywxNyl9Z2V0RW5hYmxlSW1hZ2VTYW5pdGl6YXRpb24oKXtyZXR1cm4gR08odGhpcywxOCl9Z2V0RW5hYmxlQWxvaGFCaW5hcnlTcGxpdCgpe3JldHVybiBHTyh0aGlzLDE5KX1nZXRFbmFibGVEYkZlZWRiYWNrSW50ZW50cygpe3JldHVybiBHTyh0aGlzLDIwKX1nZXRFbmFibGVNYXJrTWFuZGF0b3J5RmllbGRzV2l0aFJlcXVpcmVkKCl7cmV0dXJuIEdPKHRoaXMsMjEpfWdldEVuYWJsZUZlZWRiYWNrQ2F0ZWdvcnlDdXN0b21VaSgpe3JldHVybiBHTyh0aGlzLDIyKX1nZXRFbmFibGVSZWFsdGltZUN0bCgpe3JldHVybiBHTyh0aGlzLAoyMyl9Z2V0RW5hYmxlQWxvaGFIZWFkbGVzcygpe3JldHVybiBHTyh0aGlzLDI0KX1nZXRVcGRhdGVGZWVkYmFja0NvbmZpcm1hdGlvbkNsYXJpdHkoKXtyZXR1cm4gR08odGhpcywyNSl9Z2V0RW5hYmxlVmlld0ZlZWRiYWNrUmVwb3J0c0xpbmsoKXtyZXR1cm4gR08odGhpcywyNil9fTt2YXIgVk89Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfXYoKXtyZXR1cm4gXy5OeCh0aGlzLE5PLDEpfX07dmFyICRoYT1bL2h0dHBzOlwvXC9zYW5kYm94XC5nb29nbGVcLmNvbVwvdG9vbHNcL2ZlZWRiYWNrLywvaHR0cHM6XC9cL2ZlZWRiYWNrLWZyb250ZW5kLXF1YWxbYS16MC05Ll0qXC5nb29nbGVcLmNvbVwvaW5hcHAvLC9odHRwczpcL1wvZmVlZGJhY2stZnJvbnRlbmQtcXVhbFthLXowLTkuXSpcLmdvb2dsZVwuY29tXC90b29sc1wvZmVlZGJhY2svLC9odHRwczpcL1wvLipcLmdvb2dsZXVzZXJjb250ZW50XC5jb21cL2luYXBwL107dmFyIE9PPSJhZiBhbSBhci1FRyBhci1KTyBhci1NQSBhci1TQSBhci1YQiBhciBheiBiZSBiZyBibiBicyBjYSBjcyBjeSBkYSBkZS1BVCBkZS1DSCBkZSBlbCBlbiBlbi1HQiBlbi1BVSBlbi1DQSBlbi1JRSBlbi1JTiBlbi1OWiBlbi1TRyBlbi1YQSBlbi1YQyBlbi1aQSBlcyBlcy00MTkgZXMtQVIgZXMtQk8gZXMtQ0wgZXMtQ08gZXMtQ1IgZXMtRE8gZXMtRUMgZXMtR1QgZXMtSE4gZXMtTVggZXMtTkkgZXMtUEEgZXMtUEUgZXMtUFIgZXMtUFkgZXMtU1YgZXMtVVMgZXMtVVkgZXMtVkUgZXQgZXUgZmEgZmkgZmlsIGZyLUNBIGZyLUNIIGZyIGdsIGdzdyBndSBoZSBoaSBociBodSBoeSBpZCBpbiBpcyBpdCBpdyBqYSBrYSBrayBrbSBrbiBrbyBreSBsbiBsbyBsdCBsdiBtayBtbCBtbiBtbyBtciBtcyBteSBuYiBuZSBubCBubyBwYSBwbCBwdCBwdC1CUiBwdC1QVCBybyBydSBzaSBzayBzbCBzcSBzci1MYXRuIHNyIHN2IHN3IHRhIHRlIHRoIHRsIHRyIHVrIHVyIHV6IHZpIHpoIHpoLUNOIHpoLUhLIHpoLVRXIHp1Ii5zcGxpdCgiICIpO3ZhciBVTz1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoIkZvcm0gaXMgZWl0aGVyIGxvYWRpbmcgb3IgYWxyZWFkeSBvcGVuZWQiKTt0aGlzLm5hbWU9IkR1cGxpY2F0ZUZvcm1FcnJvciJ9fSxRTyxTTyxSTyxUTztfLnJhKCJ1c2VyZmVlZGJhY2suQ29sb3JTY2hlbWVzIix7aUY6MSxHQzoyfSk7Xy5yYSgidXNlcmZlZWRiYWNrLmFwaS5zdGFydEZlZWRiYWNrIixfLllPKTtfLnFpYT1uZXcgXy5JKCJuYXRpdmVBcHBEZWVwbGlua0VuZHBvaW50Iik7Xy5yaWE9TWF0aC5yYW5kb20oKTt2YXIgc2lhPW5ldyBfLlZzKCJTVEFUSUNfQVBQX1BST1BTX1RPS0VOIik7Xy52UD1uZXcgXy5WcygiVE9BU1RfT1BUSU9OUyIpO3ZhciBvUD1fLnNqKCJtd2ViX2MzX3RvYXN0X2R1cmF0aW9uX21zIiw1RTMpLGJQLGNQPW51bGwsW3dQLGdQXT1fLkooIm91dCIsdm9pZCAwLCJXY1pjZWUiKSxbbGlhLGZQXT1fLkoodm9pZCAwLHZvaWQgMCwiWFZ5eHhmIiksaVA9W10sbVAsZFA9Xy5MKGE9Pnt2YXIgYj1fLnkoKS5yZXNvbHZlKF8uSW4oXy52UCkpO3JldHVybiBfLksoImMzLXRvYXN0Iix7ZGlyOndQLHJvbGU6KCk9PndQKCk9PT0iaW4iPyJhbGVydCI6IiIsY2xhc3M6Xy5QKHsiaHVnLXRvYXN0IjohIWI/LlZ1LCJpbnZlcnNlLXRoZW1lIjohIWI/LkN4fSl9LGEuY2hpbGRyZW4pfSwic2IiKTtkUC5pZG9tQ29tcGF0PSEwO18udGlhPV8udXgoMzA3OTUzKTsoe01nOl8udWlhLGdrOl8ueFB9PV8uekcoYT0+YS5jaGFubmVsSWQpKTsoe01nOl8udmlhLGdrOl8ud2lhfT1fLnpHKGE9Pl8uQihhLm5vdGlmaWNhdGlvblByZWZlcmVuY2VUb2dnbGVCdXR0b24/LnRvZ2dsZUJ1dHRvblJlbmRlcmVyPy5kZWZhdWx0U2VydmljZUVuZHBvaW50LF8uQnkpPy5wYXJhbXMpKTtfLnlQPW5ldyBfLlZzKCJMQVlFUl9UT0tFTiIpO18uelA9Xy5MKCh7VW86YSxzdGF5T3Blbk9uQ2xpY2s6Yixpc1BlcnNpc3RlbnQ6YyxjaGlsZHJlbjpkfSk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKHsiZGlhbG9nLWZsZXgtYnV0dG9uIjooKT0+YT8uKCkhPT0xfSksIm9uOmNsaWNrIjpmdW5jdGlvbigpe2I/LigpfHxjPy4oKXx8Xy55KCkucmVzb2x2ZShfLnlQKS5sZCgpfSx0YWJpbmRleDooKT0+KGI/LigpfHxjPy4oKSx2b2lkIDApfSxkKSwidWIiKTtfLnpQLmlkb21Db21wYXQ9ITA7Xy5BUD1fLkwoKHtjaGlsZHJlbjphfSk9Pnt2YXIgYj1fLnkoKS5yZXNvbHZlKF8uSW4oc2lhKSk/LlVJO3JldHVybiBfLksoImRpdiIseyJhcmlhLWxpdmUiOiJwb2xpdGUiLHRhYmluZGV4OmI/MDp2b2lkIDB9LGEpfSwidmIiKTtfLkFQLmlkb21Db21wYXQ9ITA7Xy54aWE9Xy5zaigibXdlYl9pb3NfZnVsbHNjcmVlbl9wbGF5YmFja190cmFuc2l0aW9uX2RlbGF5X21zIil8fDUwMDtfLnlpYT1fLnNqKCJtd2ViX2lvc19mdWxsc2NyZWVuX3N5c3RlbV9wYXVzZV9lcGlsc29uX21zIil8fDM1MDt2YXIgb2lhPV8uJE4uWHMscGlhPV8uJE4ua3Q7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uYVE9ZnVuY3Rpb24oYSxiKXtyZXR1cm57b3BlblBvcHVwQWN0aW9uOntwb3B1cFR5cGU6IlRPQVNUIixwb3B1cDp7bm90aWZpY2F0aW9uQWN0aW9uUmVuZGVyZXI6e3Jlc3BvbnNlVGV4dDphfX0sLi4uKGIhPT12b2lkIDA/e2R1cmF0aW9uSGludE1zOmJ9Ont9KX19fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy53bmE9bmV3IF8uSSgiZW50aXR5VXBkYXRlQ29tbWFuZCIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLk5XPW5ldyBfLkkoInNob3dTaGVldENvbW1hbmQiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy54bmE9bmV3IF8uSSgibGlzdFZpZXdNb2RlbCIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLk9XPW5ldyBfLlZzKCJTQ1JFRU5fTUFOQUdFUl9UT0tFTiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgeW5hO18uUFc9ZnVuY3Rpb24oYSl7cmV0dXJuIHluYVthXT8/IkVWRU5UX1NQQU5fVFlQRV9VTktOT1dOIn07CnluYT17Y2xpY2s6IkVWRU5UX1NQQU5fVFlQRV9DTElDSyIsZGJsY2xpY2s6IkVWRU5UX1NQQU5fVFlQRV9EQkxDTElDSyIsbW91c2Vkb3duOiJFVkVOVF9TUEFOX1RZUEVfTU9VU0VET1dOIixtb3VzZXVwOiJFVkVOVF9TUEFOX1RZUEVfTU9VU0VVUCIsbW91c2VvdmVyOiJFVkVOVF9TUEFOX1RZUEVfTU9VU0VPVkVSIixtb3VzZW91dDoiRVZFTlRfU1BBTl9UWVBFX01PVVNFT1VUIixtb3VzZWVudGVyOiJFVkVOVF9TUEFOX1RZUEVfTU9VU0VFTlRFUiIsbW91c2VsZWF2ZToiRVZFTlRfU1BBTl9UWVBFX01PVVNFTEVBVkUiLG1vdXNlbW92ZToiRVZFTlRfU1BBTl9UWVBFX01PVVNFTU9WRSIsY29udGV4dG1lbnU6IkVWRU5UX1NQQU5fVFlQRV9DT05URVhUTUVOVSIsa2V5ZG93bjoiRVZFTlRfU1BBTl9UWVBFX0tFWURPV04iLGtleXVwOiJFVkVOVF9TUEFOX1RZUEVfS0VZVVAiLGtleXByZXNzOiJFVkVOVF9TUEFOX1RZUEVfS0VZUFJFU1MiLHRvdWNoc3RhcnQ6IkVWRU5UX1NQQU5fVFlQRV9UT1VDSFNUQVJUIiwKdG91Y2hlbmQ6IkVWRU5UX1NQQU5fVFlQRV9UT1VDSEVORCIsdG91Y2htb3ZlOiJFVkVOVF9TUEFOX1RZUEVfVE9VQ0hNT1ZFIix0b3VjaGNhbmNlbDoiRVZFTlRfU1BBTl9UWVBFX1RPVUNIQ0FOQ0VMIixwb2ludGVyZG93bjoiRVZFTlRfU1BBTl9UWVBFX1BPSU5URVJET1dOIixwb2ludGVydXA6IkVWRU5UX1NQQU5fVFlQRV9QT0lOVEVSVVAiLHBvaW50ZXJtb3ZlOiJFVkVOVF9TUEFOX1RZUEVfUE9JTlRFUk1PVkUiLHBvaW50ZXJvdmVyOiJFVkVOVF9TUEFOX1RZUEVfUE9JTlRFUk9WRVIiLHBvaW50ZXJvdXQ6IkVWRU5UX1NQQU5fVFlQRV9QT0lOVEVST1VUIixwb2ludGVyZW50ZXI6IkVWRU5UX1NQQU5fVFlQRV9QT0lOVEVSRU5URVIiLHBvaW50ZXJsZWF2ZToiRVZFTlRfU1BBTl9UWVBFX1BPSU5URVJMRUFWRSIscG9pbnRlcmNhbmNlbDoiRVZFTlRfU1BBTl9UWVBFX1BPSU5URVJDQU5DRUwiLGdvdHBvaW50ZXJjYXB0dXJlOiJFVkVOVF9TUEFOX1RZUEVfR09UUE9JTlRFUkNBUFRVUkUiLApsb3N0cG9pbnRlcmNhcHR1cmU6IkVWRU5UX1NQQU5fVFlQRV9MT1NUUE9JTlRFUkNBUFRVUkUiLHN1Ym1pdDoiRVZFTlRfU1BBTl9UWVBFX1NVQk1JVCIsY2hhbmdlOiJFVkVOVF9TUEFOX1RZUEVfQ0hBTkdFIixpbnB1dDoiRVZFTlRfU1BBTl9UWVBFX0lOUFVUIixmb2N1czoiRVZFTlRfU1BBTl9UWVBFX0ZPQ1VTIixibHVyOiJFVkVOVF9TUEFOX1RZUEVfQkxVUiIscmVzZXQ6IkVWRU5UX1NQQU5fVFlQRV9SRVNFVCIsc2VsZWN0OiJFVkVOVF9TUEFOX1RZUEVfU0VMRUNUIixpbnZhbGlkOiJFVkVOVF9TUEFOX1RZUEVfSU5WQUxJRCIsbG9hZDoiRVZFTlRfU1BBTl9UWVBFX0xPQUQiLHVubG9hZDoiRVZFTlRfU1BBTl9UWVBFX1VOTE9BRCIsYmVmb3JldW5sb2FkOiJFVkVOVF9TUEFOX1RZUEVfQkVGT1JFVU5MT0FEIixkb21jb250ZW50bG9hZGVkOiJFVkVOVF9TUEFOX1RZUEVfRE9NQ09OVEVOVExPQURFRCIscmVzaXplOiJFVkVOVF9TUEFOX1RZUEVfUkVTSVpFIixzY3JvbGw6IkVWRU5UX1NQQU5fVFlQRV9TQ1JPTEwiLApwYWdlc2hvdzoiRVZFTlRfU1BBTl9UWVBFX1BBR0VTSE9XIixwYWdlaGlkZToiRVZFTlRfU1BBTl9UWVBFX1BBR0VISURFIixwbGF5OiJFVkVOVF9TUEFOX1RZUEVfUExBWSIscGF1c2U6IkVWRU5UX1NQQU5fVFlQRV9QQVVTRSIscGxheWluZzoiRVZFTlRfU1BBTl9UWVBFX1BMQVlJTkciLHdhaXRpbmc6IkVWRU5UX1NQQU5fVFlQRV9XQUlUSU5HIixzZWVraW5nOiJFVkVOVF9TUEFOX1RZUEVfU0VFS0lORyIsc2Vla2VkOiJFVkVOVF9TUEFOX1RZUEVfU0VFS0VEIixlbmRlZDoiRVZFTlRfU1BBTl9UWVBFX0VOREVEIix2b2x1bWVjaGFuZ2U6IkVWRU5UX1NQQU5fVFlQRV9WT0xVTUVDSEFOR0UiLHRpbWV1cGRhdGU6IkVWRU5UX1NQQU5fVFlQRV9USU1FVVBEQVRFIixyYXRlY2hhbmdlOiJFVkVOVF9TUEFOX1RZUEVfUkFURUNIQU5HRSIsZHJhZ3N0YXJ0OiJFVkVOVF9TUEFOX1RZUEVfRFJBR1NUQVJUIixkcmFnOiJFVkVOVF9TUEFOX1RZUEVfRFJBRyIsZHJhZ2VuZDoiRVZFTlRfU1BBTl9UWVBFX0RSQUdFTkQiLApkcmFnZW50ZXI6IkVWRU5UX1NQQU5fVFlQRV9EUkFHRU5URVIiLGRyYWdsZWF2ZToiRVZFTlRfU1BBTl9UWVBFX0RSQUdMRUFWRSIsZHJhZ292ZXI6IkVWRU5UX1NQQU5fVFlQRV9EUkFHT1ZFUiIsZHJvcDoiRVZFTlRfU1BBTl9UWVBFX0RST1AiLGFuaW1hdGlvbnN0YXJ0OiJFVkVOVF9TUEFOX1RZUEVfQU5JTUFUSU9OU1RBUlQiLGFuaW1hdGlvbmVuZDoiRVZFTlRfU1BBTl9UWVBFX0FOSU1BVElPTkVORCIsYW5pbWF0aW9uaXRlcmF0aW9uOiJFVkVOVF9TUEFOX1RZUEVfQU5JTUFUSU9OSVRFUkFUSU9OIix0cmFuc2l0aW9ucnVuOiJFVkVOVF9TUEFOX1RZUEVfVFJBTlNJVElPTlJVTiIsdHJhbnNpdGlvbnN0YXJ0OiJFVkVOVF9TUEFOX1RZUEVfVFJBTlNJVElPTlNUQVJUIix0cmFuc2l0aW9uZW5kOiJFVkVOVF9TUEFOX1RZUEVfVFJBTlNJVElPTkVORCIsdHJhbnNpdGlvbmNhbmNlbDoiRVZFTlRfU1BBTl9UWVBFX1RSQU5TSVRJT05DQU5DRUwifTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5RVz1uZXcgXy5JKCJzaG93RW5nYWdlbWVudFBhbmVsRW5kcG9pbnQiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKLyoKCk1hdGgudXVpZC5qcyAodjEuNCkKaHR0cDovL3d3dy5icm9vZmEuY29tCm1haWx0bzpyb2JlcnRAYnJvb2ZhLmNvbQpDb3B5cmlnaHQgKGMpIDIwMTAgUm9iZXJ0IEtpZWZmZXIKRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXMuCiovCnZhciB6bmEsUlcsQW5hLEJuYSxDbmEsRG5hLEVuYSxUVyxGbmEsVVcsR25hLEhuYSxWVyxJbmEsSm5hLFhXLFlXLFpXLCRXLExuYSxNbmEsYlgsaFgsTm5hLE9uYSxQbmEsalgsa1gsUm5hLG1YLFNuYSxvWCxwWCxVbmEsVm5hLG5YLFduYSxUbmEsbFgscVgsWW5hLGFvYSxib2EsY29hLGRvYSxlb2Esc1gsZm9hLGdvYSx0WCxob2EsdVgsdlgsaW9hLGtvYSx4WCxsb2EseVgsbm9hLG9vYSxwb2EscW9hLEJYLHJvYSxzb2EsQ1gsdG9hLHVvYSx2b2Esd29hLHhvYSx5b2Esem9hLEFvYSxCb2EsQ29hLEhYLElYLEZvYSxtb2EsS1gsSG9hLEpYLElvYSxKb2EsS29hLE1YLExvYSxOWCxNb2EsTm9hLE9vYSxQb2EsUW9hLFJvYSxTb2EsT1gsVG9hLFBYLFFYLFZvYSxVb2EsV29hLFhvYSxZb2EsWm9hLCRvYSxWWCxVWCxXWCwkWCxYWCxZWCxaWCxhWSxhcGEsYnBhLGNwYSxiWSxlWSxkWSxkcGEsZlksZXBhLGZwYSxncGEsaHBhLGdZLGpwYSxpcGEsbHBhLHBwYSxqWSxxcGEsa1ksbFksblksbVksCmlZLHJwYSxzcGEsdXBhLHBZLHdwYSxvWSxyWSxzWSx0WSx1WSx6cGEsQXBhLHdZLHhZLHlZLEFZLENwYSxCWSxEcGEsRFksRXBhLEZZLEhZLEZwYSxJWSxKWSxIcGEsS1ksTVksSXBhLEpwYSxMcGEsTXBhLE5wYSxQcGEsUnBhLFRwYSxVcGEsTlksV3BhLFZwYSxQWSxTWSxPWSxSWSxacGEsWXBhLGJxYSxkcWEsZXFhLGZxYSxncWEsV1ksaHFhLGlxYSxqcWEsa3FhLGxxYSxtcWEsY3FhLFZZLHRxYSxucWEselgsdXFhLFdXLERvYSxjWixLbmEseHFhLGRaLGVaLHlxYSx6cWEsQXFhLEJxYSxDcWEsRHFhLGFYLGZaLGdYLGNYLGRYLGVYLGZYLEVxYSxnWixoWixGcWEsaVosR3FhLEhxYSxpWCxqWixJcWEsUW5hLFhuYSxKcWEsWm5hLCRuYSxyWCxMcWEsam9hLFhZLGtaLE1xYSxxWSxBWDt6bmE9ZnVuY3Rpb24oYSxiKXtiPSgwLF8ueWcpKGIpO2I9Xy5FZihiLGIpO2Iudj0hMDtfLkpmKGEsYik7cmV0dXJuIGF9OwpSVz1mdW5jdGlvbihhLGIpe2E9YS53YXRjaEVuZHBvaW50U3VwcG9ydGVkQXV0aG9yaXphdGlvblRva2VuQ29uZmlnPy52aWRlb0F1dGhvcml6YXRpb25Ub2tlbj8uY3JlZGVudGlhbFRyYW5zZmVyVG9rZW5zfHxbXTtmb3IobGV0IGM9MDtjPGEubGVuZ3RoOysrYylpZihhW2NdLnNjb3BlPT09YilyZXR1cm4gYVtjXS50b2tlbnx8dm9pZCAwfTsKQW5hPWZ1bmN0aW9uKGEsYixjPXt9KXtfLlZpKCgpPT57dmFyIGQ9Xy5CKGI/LmNvbW1hbmRNZXRhZGF0YSxfLnp3KT8ucm9vdFZlfHxfLkIoYj8uY29tbWFuZE1ldGFkYXRhLF8ubngpPy5zY3JlZW5WaXN1YWxFbGVtZW50Py51aVR5cGU7aWYoZCl7dmFyIGU9Xy5CKGI/LmNvbW1hbmRNZXRhZGF0YSxfLmVhYSk7aWYoZT8ucGFyZW50VHJhY2tpbmdQYXJhbXMpe3ZhciBmPV8uVXcoZS5wYXJlbnRUcmFja2luZ1BhcmFtcyk7aWYoZS5wYXJlbnRDc24pdmFyIGg9ZS5wYXJlbnRDc259ZWxzZSBjLmNsaWNrZWRWaXN1YWxFbGVtZW50P2Y9Yy5jbGlja2VkVmlzdWFsRWxlbWVudDpiLmNsaWNrVHJhY2tpbmdQYXJhbXMmJihmPV8uVXcoYi5jbGlja1RyYWNraW5nUGFyYW1zKSk7YTp7ZT1fLkIoYixfLkF3KTt2YXIgaz1fLkIoYixfLmRhYSk7aWYoZSl7aWYoaz1SVyhlLCJWSURFTyIpKXtlPXt0b2tlbjprLHZpZGVvSWQ6ZS52aWRlb0lkfTticmVhayBhfX1lbHNlIGlmKGsmJihlPVJXKGssCiJQTEFZTElTVCIpKSl7ZT17dG9rZW46ZSxwbGF5bGlzdElkOmsucGxheWxpc3RJZH07YnJlYWsgYX1lPXZvaWQgMH1jPXtjdHRBdXRoSW5mbzplLHBhcmVudENzbjpoLC4uLmN9O18ueCgiZXhwZWN0YXRpb25fbG9nZ2luZyIpJiYoYy5sb2dnaW5nRXhwZWN0YXRpb25zPV8uQihiPy5jb21tYW5kTWV0YWRhdGEsXy5ueCk/LmxvZ2dpbmdFeHBlY3RhdGlvbnN8fHZvaWQgMCk7Xy5ETyhhLGQsZixjKX1lbHNlIF8uSXAobmV3IF8uWGooIkVycm9yOiBUcnlpbmcgdG8gY3JlYXRlIGEgbmV3IHNjcmVlbiB3aXRob3V0IGEgcm9vdFZlVHlwZSIsYikpfSkoKX07Qm5hPWZ1bmN0aW9uKGEsYil7YT1gU0xJX05BTUVfWU9VVFVCRV9FTUJFRFNfV0VCX0ZVTExTQ1JFRU5fUkVRVUVTVF9TTElfJHthfWA7Xy5FeS5yZWdpc3Rlci5oYXMoYSk/Yj1fLkV5LnJlZ2lzdGVyLmdldChhKTooYj1iKCksXy5FeS5yZWdpc3Rlci5zZXQoYSxiKSk7cmV0dXJuIGJ9O0NuYT1mdW5jdGlvbih7c2VydmljZUlkOmF9KXtyZXR1cm4gYS5vfTsKRG5hPWZ1bmN0aW9uKCl7dmFyIGE9Xy5HeSxiPVtTV10sYz1iLm1hcChsPT5DbmEobCkpLGQ9Yi5tYXAobD0+YS5tYXBwaW5ncy5nZXQobC50b1N0cmluZygpKSkuZmlsdGVyKGw9PmwpO2lmKGQubGVuZ3RoPT09Yi5sZW5ndGgpcmV0dXJuIF8uS3koZC5tYXAoKGwsbSk9Pl8ubnkoYSxsLGJbbV0pKSk7dmFyIGU9Xy5WZCgpLmFmKGMpO2Q9Xy5JZihjLm1hcChsPT5lW2xdKSk7dmFyIGY9ZG9jdW1lbnQuaGlkZGVuLGg9LTEsaz1fLnNqKCJnZXRfYXN5bmNfdGltZW91dF9tcyIsLTEpO2s+LTEmJihoPXNldFRpbWVvdXQoKCk9PntfLklwKG5ldyBfLlhqKCJNb2R1bGUgdGltZW91dC4iLGMsZixkb2N1bWVudC5oaWRkZW4pKX0saykpO3JldHVybiB6bmEoZC50aGVuKCgpPT5iLm1hcChsPT5fLm55KGEsYS5tYXBwaW5ncy5nZXQobC50b1N0cmluZygpKSxsKSkpLktnKGw9Pntmb3IobGV0IG0gb2YgYS5qKW0obCk7dGhyb3cgbDt9KSwoKT0+e2NsZWFyVGltZW91dChoKX0pfTsKRW5hPWZ1bmN0aW9uKCl7cmV0dXJuIERuYSgpLnRoZW4oYT0+YVswXSl9O1RXPWZ1bmN0aW9uKGEsYil7YS5EZj1iO2ZvcihsZXQgYyBvZiBhLmRhdGEpYihjKTthLmRhdGE9W119O0ZuYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8PTI/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYSxiKTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhLGIsYyl9O1VXPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2ZvcihsZXQgZD0wO2Q8YXJndW1lbnRzLmxlbmd0aDtkKyspe2xldCBlPWFyZ3VtZW50c1tkXTtpZihBcnJheS5pc0FycmF5KGUpKWZvcihsZXQgZj0wO2Y8ZS5sZW5ndGg7Zis9ODE5Mil7dmFyIGM9Rm5hKGUsZixmKzgxOTIpO2M9VVcuYXBwbHkobnVsbCxjKTtmb3IobGV0IGg9MDtoPGMubGVuZ3RoO2grKyliLnB1c2goY1toXSl9ZWxzZSBiLnB1c2goZSl9cmV0dXJuIGJ9OwpHbmE9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBfLkJmKGZ1bmN0aW9uKGIpe3ZhciBjPWEubGVuZ3RoLGQ9W107aWYoYyl7dmFyIGU9ZnVuY3Rpb24oaCxrLGwpe2MtLTtkW2hdPWs/e2Z1bGZpbGxlZDohMCx2YWx1ZTpsfTp7ZnVsZmlsbGVkOiExLHJlYXNvbjpsfTtjPT0wJiZiKGQpfTtmb3IobGV0IGg9MDtoPGEubGVuZ3RoO2grKyl7dmFyIGY9YVtoXTtfLkhmKGYsXy5EYShlLGgsITApLF8uRGEoZSxoLCExKSl9fWVsc2UgYihkKX0pfTtIbmE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5NeigiTE9HR0VEX0lOIixmdW5jdGlvbihjKXthLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpO18uTnooYil9KX07Vlc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4oKT0+e3ZhciBjPV8ueSgpO2MucmVzb2x2ZShfLkluKGEpKXx8Xy5KeihjLHtqYTphLFBhOmEsW18uTG5dOmJ9KTtyZXR1cm4gYy5yZXNvbHZlKGEpfX07CkluYT1mdW5jdGlvbihhKXtpZihXVz09PXZvaWQgMCl0aHJvdyBFcnJvcigic2IiKTtpZihXVylmb3IobGV0IFtiLGNdb2YgV1cpYShiLGMpO18uTnYuYWRkKGEpO1dXPXZvaWQgMH07Sm5hPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlICJjYW5hcnkiOnJldHVybiJDTElFTlRfQ0FOQVJZX1NUQVRFX0NBTkFSWSI7Y2FzZSAiY29udHJvbCI6cmV0dXJuIkNMSUVOVF9DQU5BUllfU1RBVEVfQ09OVFJPTCI7Y2FzZSAibm9uZSI6cmV0dXJuIkNMSUVOVF9DQU5BUllfU1RBVEVfTk9ORSI7ZGVmYXVsdDpyZXR1cm4iQ0xJRU5UX0NBTkFSWV9TVEFURV9VTktOT1dOIn19O1hXPWZ1bmN0aW9uKGEsYj0iIil7dmFyIGM9W107Zm9yKGxldCBkIGluIGEpe2lmKCFhLmhhc093blByb3BlcnR5KGQpKWNvbnRpbnVlO2xldCBlPWIhPT0iIj9iKyIuIitkOmQ7dHlwZW9mIGFbZF09PT0ib2JqZWN0Ij9jLnB1c2goLi4uWFcoYVtkXSxlKSk6Yy5wdXNoKFtlLGFbZF1dKX1jLnNvcnQoKTtyZXR1cm4gY307CllXPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2ZvcihsZXQgYyBvZiBhLmV2ZW50cy52YWx1ZXMoKSliLnB1c2goYyk7cmV0dXJuIGJ9O1pXPWZ1bmN0aW9uKGEpe18uRnk9PW51bGwmJihfLkZ5PW5ldyBLbmEpO3ZhciBiPV8uRnk7dmFyIGM9Yi52O2EuZGltZW5zaW9ucz1hLmRpbWVuc2lvbnN8fHt9O2EuZGltZW5zaW9ucy5jc249Xy5pcSgpfHwiIjt2YXIgZD1YVyhhLmRpbWVuc2lvbnMpLmpvaW4oIjsiKTthLnJlY29yZHMhPW51bGwmJihjLmV2ZW50cy5oYXMoZCk/Yy5ldmVudHMuZ2V0KGQpLnJlY29yZHM/LnB1c2goLi4uYS5yZWNvcmRzKTpjLmV2ZW50cy5zZXQoZCxhKSk7Yi5qLmVuYWJsZWR8fGIuai5zdGFydCgpO2IubysrO2Iubz49MTAwJiZiLmZsdXNoKCl9OyRXPWZ1bmN0aW9uKGEpe2E9YS5rZXl8fGEuaWQ7aWYoIWEpdGhyb3cgRXJyb3IoImZjIik7cmV0dXJuIGF9OwpMbmE9ZnVuY3Rpb24oKXtpZihhWClyZXR1cm4gYVgoKTthWD1fLiRsKCJQZXJzaXN0ZW50RW50aXR5U3RvcmVEYiIse3NlOntFbnRpdHlTdG9yZTp7UGQ6MX0sRW50aXR5QXNzb2NpYXRpb25TdG9yZTp7UGQ6Mn19LHNoYXJlZDohMSx1cGdyYWRlKGEsYil7YigxKSYmXy5vbChfLmtsKGEsIkVudGl0eVN0b3JlIix7a2V5UGF0aDoia2V5In0pLCJlbnRpdHlUeXBlIiwiZW50aXR5VHlwZSIpO2IoMikmJihhPV8ua2woYSwiRW50aXR5QXNzb2NpYXRpb25TdG9yZSIse2tleVBhdGg6WyJwYXJlbnRFbnRpdHlLZXkiLCJjaGlsZEVudGl0eUtleSJdfSksXy5vbChhLCJieVBhcmVudEVudGl0eUtleSIsInBhcmVudEVudGl0eUtleSIpLF8ub2woYSwiYnlDaGlsZEVudGl0eUtleSIsImNoaWxkRW50aXR5S2V5IikpfSx2ZXJzaW9uOjN9KTtyZXR1cm4gYVgoKX07TW5hPWZ1bmN0aW9uKGEpe3JldHVybiBfLkNsKExuYSgpLGEpfTsKYlg9ZnVuY3Rpb24oYSl7cmV0dXJuIHdpbmRvdy5JbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KGEpOkFycmF5KGEpfTsKaFg9ZnVuY3Rpb24oYSl7dmFyIGI9YS5rZXksYz1hLmNvdW50ZXJbMF1eYlswXSxkPWEuY291bnRlclsxXV5iWzFdLGU9YS5jb3VudGVyWzJdXmJbMl0sZj1hLmNvdW50ZXJbM11eYlszXTtmb3IodmFyIGg9MztoPj0wJiYhKGEuY291bnRlcltoXT0tfmEuY291bnRlcltoXSk7aC0tKTtmb3IodmFyIGssbCxtPTQ7bTw0MDspaD1jWFtjPj4+MjRdXmRYW2Q+PjE2JjI1NV1eZVhbZT4+OCYyNTVdXmZYW2YmMjU1XV5iW20rK10saz1jWFtkPj4+MjRdXmRYW2U+PjE2JjI1NV1eZVhbZj4+OCYyNTVdXmZYW2MmMjU1XV5iW20rK10sbD1jWFtlPj4+MjRdXmRYW2Y+PjE2JjI1NV1eZVhbYz4+OCYyNTVdXmZYW2QmMjU1XV5iW20rK10sZj1jWFtmPj4+MjRdXmRYW2M+PjE2JjI1NV1eZVhbZD4+OCYyNTVdXmZYW2UmMjU1XV5iW20rK10sYz1oLGQ9ayxlPWw7YT1hLm87aD1iWzQwXTthWzBdPWdYW2M+Pj4yNF1eaD4+PjI0O2FbMV09Z1hbZD4+MTYmMjU1XV5oPj4xNiYyNTU7YVsyXT1nWFtlPj44JgoyNTVdXmg+PjgmMjU1O2FbM109Z1hbZiYyNTVdXmgmMjU1O2g9Yls0MV07YVs0XT1nWFtkPj4+MjRdXmg+Pj4yNDthWzVdPWdYW2U+PjE2JjI1NV1eaD4+MTYmMjU1O2FbNl09Z1hbZj4+OCYyNTVdXmg+PjgmMjU1O2FbN109Z1hbYyYyNTVdXmgmMjU1O2g9Yls0Ml07YVs4XT1nWFtlPj4+MjRdXmg+Pj4yNDthWzldPWdYW2Y+PjE2JjI1NV1eaD4+MTYmMjU1O2FbMTBdPWdYW2M+PjgmMjU1XV5oPj44JjI1NTthWzExXT1nWFtkJjI1NV1eaCYyNTU7aD1iWzQzXTthWzEyXT1nWFtmPj4+MjRdXmg+Pj4yNDthWzEzXT1nWFtjPj4xNiYyNTVdXmg+PjE2JjI1NTthWzE0XT1nWFtkPj44JjI1NV1eaD4+OCYyNTU7YVsxNV09Z1hbZSYyNTVdXmgmMjU1fTsKTm5hPWFzeW5jIGZ1bmN0aW9uKGEsYixjKXthLmp8fChhLmo9YXdhaXQgYS5vLmltcG9ydEtleSgicmF3IixhLnYse25hbWU6IkFFUy1DVFIifSwhMSxbImVuY3J5cHQiXSkpO2E9YXdhaXQgYS5vLmVuY3J5cHQoe25hbWU6IkFFUy1DVFIiLGNvdW50ZXI6YyxsZW5ndGg6MTI4fSxhLmosYik7cmV0dXJuIG5ldyBVaW50OEFycmF5KGEpfTtPbmE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBFcnJvcj9uZXcgaVgoIlVOS05PV05fRU5DT0RFX0VSUk9SIix7b3JpZ2luYWxNZXNzYWdlOmEubWVzc2FnZX0pOm5ldyBpWCgiVU5LTk9XTl9FTkNPREVfRVJST1IiKX07UG5hPWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgRXJyb3I/bmV3IGlYKCJVTktOT1dOX0RFQ09ERV9FUlJPUiIse29yaWdpbmFsTWVzc2FnZTphLm1lc3NhZ2V9KTpuZXcgaVgoIlVOS05PV05fREVDT0RFX0VSUk9SIil9OwpqWD1mdW5jdGlvbihhLGIpe2E9YSBpbnN0YW5jZW9mIGlYP2E6YihhKTtfLkdwKGEpO3Rocm93IGE7fTtrWD1mdW5jdGlvbihhKXthPShuZXcgVGV4dEVuY29kZXIpLmVuY29kZShhKS5zdWJhcnJheSgwLDE2KTt2YXIgYj1uZXcgVWludDhBcnJheSgxNik7Yi5zZXQoYSk7cmV0dXJuIGJ9O1JuYT1mdW5jdGlvbihhKXt2YXIgYj1RbmFbYV07aWYoYilyZXR1cm4gYjtfLklwKG5ldyBfLlhqKCJFbnRpdHkgbW9kZWwgbm90IGZvdW5kLiIse2VudGl0eVR5cGU6YX0pKX07bVg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbFgoYS5vLGIudmVyc2lvbikuZGVjb2RlKGIuZGF0YSxiLmtleSl9O1NuYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGEuai5vYmplY3RTdG9yZSgiRW50aXR5U3RvcmUiKS5nZXQoYikudGhlbihkPT57aWYoZCl7aWYoYyYmZC5lbnRpdHlUeXBlIT09Yyl0aHJvdyBFcnJvcigiaGMiKTtyZXR1cm4gbVgoYSxkKX19KX07Cm9YPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0kVyhiKTtyZXR1cm4gblgoYSxkKS50aGVuKCgpPT5UbmEoYSxiLGMpKX07cFg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEudltjXTtkfHwoZD1uZXcgU2V0LGEudltjXT1kKTtkLmFkZChiKX07ClVuYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9JFcoYiksZT1sWChhLm8sMSksZj17Li4uYn07cmV0dXJuIGEuai5vYmplY3RTdG9yZSgiRW50aXR5U3RvcmUiKS5nZXQoZCkudGhlbihoPT57aWYoaCl7aWYoaC5lbnRpdHlUeXBlIT09Yyl0aHJvdyBFcnJvcigiaGMiKTtmLmVudGl0eU1ldGFkYXRhfHwoaD1tWChhLGgpLGYuZW50aXR5TWV0YWRhdGE9aC5lbnRpdHlNZXRhZGF0YSl9fSkudGhlbigoKT0+e3ZhciBoPXtrZXk6ZCxlbnRpdHlUeXBlOmMsZGF0YTplLmVuY29kZShmLGQpLHZlcnNpb246MX07cmV0dXJuIF8uVmsuYWxsKFtfLmxsKGEuai5vYmplY3RTdG9yZSgiRW50aXR5U3RvcmUiKSxoKSxvWChhLGYsYyldKX0pLnRoZW4oKCk9PntwWChhLGQsYyk7cmV0dXJuIGR9KX07ClZuYT1mdW5jdGlvbihhLGIpe3ZhciBjPV8uR0goYikuZW50aXR5VHlwZTtyZXR1cm4gXy5Way5hbGwoW2Euai5vYmplY3RTdG9yZSgiRW50aXR5U3RvcmUiKS5kZWxldGUoYiksblgoYSxiKV0pLnRoZW4oKCk9PntwWChhLGIsYyl9KX07blg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5qLm9iamVjdFN0b3JlKCJFbnRpdHlBc3NvY2lhdGlvblN0b3JlIikuaW5kZXgoImJ5UGFyZW50RW50aXR5S2V5IikuZGVsZXRlKElEQktleVJhbmdlLm9ubHkoYikpfTsKV25hPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWxYKGEubywxKTtyZXR1cm4gU25hKGEsYixkKS50aGVuKGY9PntpZihmfHxfLngoIndlYl9lbmFibGVfZW50aXR5X3Vwc2VydF9vbl91cGRhdGUiKSl7Zj1fLmhNKGZ8fHt9LGMpO3ZhciBoPXtrZXk6YixlbnRpdHlUeXBlOmQsZGF0YTplLmVuY29kZShmLGIpLHZlcnNpb246MX07cmV0dXJuIF8uVmsuYWxsKFtfLmxsKGEuai5vYmplY3RTdG9yZSgiRW50aXR5U3RvcmUiKSxoKSxvWChhLGYsZCldKX19KS50aGVuKCgpPT57cFgoYSxiLGQpO3JldHVybiBifSl9OwpUbmE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSRXKGIpO2M9Um5hKGMpO2lmKCFjKXJldHVybiBfLlZrLnJlc29sdmUoW10pO2I9bmV3IGMoYik7YT1hLmoub2JqZWN0U3RvcmUoIkVudGl0eUFzc29jaWF0aW9uU3RvcmUiKTtjPVtdO2ZvcihsZXQgZSBvZiBiLm8oKSljLnB1c2goXy5sbChhLHtwYXJlbnRFbnRpdHlLZXk6ZCxjaGlsZEVudGl0eUtleTplfSkpO3JldHVybiBfLlZrLmFsbChjKS50aGVuKGU9PmUubWFwKGY9PmZbMV0pKX07bFg9ZnVuY3Rpb24oYSxiPTApe2E9YS5qW2JdO2lmKCFhKXRocm93IGI9bmV3IGlYKCJJTlZBTElEX0VOQ09ERVJfVkVSU0lPTiIse0lwOmJ9KSxfLkdwKGIpLGI7cmV0dXJuIGF9O3FYPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBjIG9mIGEub2JzZXJ2ZXJzKWMoYil9OwpZbmE9YXN5bmMgZnVuY3Rpb24oYSxiKXt2YXIgYz1hd2FpdCBNbmEoYS50b2tlbiksZDtjPWF3YWl0IF8uaWwoYyxbIkVudGl0eVN0b3JlIiwiRW50aXR5QXNzb2NpYXRpb25TdG9yZSJdLCJyZWFkd3JpdGUiLGU9PntkPW5ldyBYbmEoZSxhLmopO3JldHVybiBiKGQpfSk7aWYoZCl7bGV0IGU9ZC52O09iamVjdC5rZXlzKGUpLmxlbmd0aD4wJiYoYS5jaGFubmVsLnBvc3RNZXNzYWdlKGUpLHFYKGEsZSkpfXJldHVybiBjfTthb2E9YXN5bmMgZnVuY3Rpb24oKXt0cnl7bGV0IGI9YXdhaXQgXy5QbCgpO2lmKGImJl8uV2ooKSYmdHlwZW9mIF8udS5Ccm9hZGNhc3RDaGFubmVsIT09InVuZGVmaW5lZCIpe3ZhciBhPW5ldyBabmE7cmV0dXJuIG5ldyAkbmEoYixhKX19Y2F0Y2goYil7YiBpbnN0YW5jZW9mIEVycm9yJiZfLkdwKGIpfX07CmJvYT1mdW5jdGlvbihhKXthPWEub3B0aW9ucz8ucGVyc2lzdGVuY2VPcHRpb247cmV0dXJuIGE9PT0iRU5USVRZX1BFUlNJU1RFTkNFX09QVElPTl9QRVJTSVNUInx8YT09PSJFTlRJVFlfUEVSU0lTVEVOQ0VfT1BUSU9OX0lOTUVNT1JZX0FORF9QRVJTSVNUIn07CmNvYT1hc3luYyBmdW5jdGlvbihhKXtyWHx8KHJYPWFvYSgpKTt2YXIgYj1hd2FpdCByWDtiJiZhd2FpdCBZbmEoYixjPT57dmFyIGQ9e307Zm9yKGxldCBlIG9mIGEpe2lmKCFlLmVudGl0eUtleXx8IWJvYShlKSljb250aW51ZTtsZXQgZj1fLmRNKGUucGF5bG9hZCksaD12b2lkIDA7ZS50eXBlPT09IkVOVElUWV9NVVRBVElPTl9UWVBFX1JFUExBQ0UiJiYoaD0oKT0+VW5hKGMsZS5wYXlsb2FkW2ZdLGYpKTtlLnR5cGU9PT0iRU5USVRZX01VVEFUSU9OX1RZUEVfREVMRVRFIiYmKGg9KCk9PlZuYShjLGUuZW50aXR5S2V5KSk7ZS50eXBlPT09IkVOVElUWV9NVVRBVElPTl9UWVBFX1VQREFURSImJihoPSgpPT5XbmEoYyxlLmVudGl0eUtleSxlLnBheWxvYWRbZl0sZikpO2gmJihkW2UuZW50aXR5S2V5XT1kW2UuZW50aXR5S2V5XT9kW2UuZW50aXR5S2V5XS50aGVuKGgpOmgoKSl9cmV0dXJuIF8uVmsuYWxsKE9iamVjdC52YWx1ZXMoZCkpfSl9Owpkb2E9YXN5bmMgZnVuY3Rpb24oYSxiKXshKGE9YS5tdXRhdGlvbnMpfHxhLmxlbmd0aDw9MHx8KGImJmIuZGlzcGF0Y2goXy5rQSh7dHlwZToiRU5USVRZX0xPQURFRCIscGF5bG9hZDphfSkpLGF3YWl0IGNvYShhKSxhLmxlbmd0aD0wKX07ZW9hPWZ1bmN0aW9uKGEpe3ZhciBiPV8udUMoKTtiLk9jPSEwO2Iuc2Vzc2lvbklkPWEuc2Vzc2lvbklkfHwiIjtiLmRoPWEuZGg7YS5XaCE9bnVsbCYmKGIuV2g9YS5XaCl9O3NYPWZ1bmN0aW9uKGEpe18udUMoKS5wcm9jZXNzb3JzLnB1c2goYSl9O2ZvYT1mdW5jdGlvbigpe18uVnAuc3Vic2NyaWJlKCJoYW5kbGVFcnJvciIsYT0+e3RyeXtmb3IobGV0IGIgaW4gXy5lSSl0cnl7bGV0IGM9Xy5lSVtiXTt0eXBlb2YgXy5lSVtiXT09PSJmdW5jdGlvbiImJihjPWMoKSk7YS5wYXJhbXNbYl09dHlwZW9mIF8uZUlbYl09PT0ib2JqZWN0Ij9KU09OLnN0cmluZ2lmeShjKTpTdHJpbmcoYyl9Y2F0Y2goYyl7Xy5JcChjKX19Y2F0Y2goYil7Xy5JcChiKX19KX07CmdvYT1mdW5jdGlvbigpe307dFg9ZnVuY3Rpb24oYSxiLGM9MCl7KGM9Xy5pcShjKSkmJmEmJl8ueUooYyxhLGIpfTtob2E9ZnVuY3Rpb24oYSl7cmV0dXJuIFVXKE9iamVjdC5rZXlzKGEpLm1hcChiPT5iPT09InBsYXlsaXN0RWRpdEVuZHBvaW50Ij9fLkIoYSxfLkF6KS5jbGllbnRBY3Rpb25zfHxbXTphW2JdLmFjdGlvbnN8fGFbYl0uY2xpZW50QWN0aW9uc3x8W10pKX07dVg9ZnVuY3Rpb24oYSl7YT1fLkIoYT8uY29tbWFuZE1ldGFkYXRhLF8uencpO3JldHVybiBhPy51cmw/YS51cmw6bnVsbH07dlg9ZnVuY3Rpb24oYSxiKXtmb3IobGV0IGMgb2YgYSlfLkFKKGMsYiwhMCl9Owppb2E9ZnVuY3Rpb24oKXtfLkpNPXdYO1RXKF8uZ0UsKHtjb21tYW5kOmEsc291cmNlRGF0YTpiLGNvbW1hbmRDb250ZXh0OmN9KT0+e18ueSgpLnJlc29sdmUoXy5VRCkucmVzb2x2ZUNvbW1hbmQoYSxfLllEKGIsYykpfHwoYT1uZXcgXy5YaigiQ29tbWFuZCBub3QgaGFuZGxlZCBieSBDb21tYW5kSGFuZGxlciIsT2JqZWN0LmtleXMoYSksYyksXy5HcChhKSl9KX07a29hPWZ1bmN0aW9uKCl7dmFyIGE9Xy5QRShqb2EpO3JldHVybiBhIT09dm9pZCAwP2E6Xy5SRTw9Mjk5fTt4WD1mdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50O3JldHVybiBfLnZiKFsiZnVsbHNjcmVlbmNoYW5nZSIsIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCJtb3pmdWxsc2NyZWVuY2hhbmdlIiwiTVNGdWxsc2NyZWVuQ2hhbmdlIl0sYj0+YG9uJHtiLnRvTG93ZXJDYXNlKCl9YGluIGEpfTsKbG9hPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQ7cmV0dXJuIF8udmIoWyJmdWxsc2NyZWVuZXJyb3IiLCJ3ZWJraXRmdWxsc2NyZWVuZXJyb3IiLCJtb3pmdWxsc2NyZWVuZXJyb3IiLCJNU0Z1bGxzY3JlZW5FcnJvciJdLGI9PmBvbiR7Yi50b0xvd2VyQ2FzZSgpfWBpbiBhKX07eVg9ZnVuY3Rpb24oYSxiLGMpe18ucmlhPF8uc2ooIndlYl9zbGlfbG9nX3dhcm5pbmdfc2FtcGxlX3NpemVfcmF0ZSIsLjAwMSkmJl8uSXAobmV3IF8uWGooYFtTTEldICIke2F9IiBlcnJvcmAse3NsaU5hbWU6YSxkaW1lbnNpb25zOmIsZGV0YWlsczpjfSkpfTsKbm9hPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2N8fF8uSXAobmV3IF8uWGooIkZ1bGxzY3JlZW4gY2hhbmdlIHNsaSBjYWxsZWQgYmVmb3JlIHN0YXJ0LiIpKX12YXIgYj16WCxjPSExLGQ9e2p3Om1vYX0uancoImZ1bGxzY3JlZW5fcmVxdWVzdCIpLGU9bG9hKCl8fCJmdWxsc2NyZWVuZXJyb3IiO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKGUsZj0+e2EoKTtkLnpnKCJGQUlMVVJFIik7eVgoImZ1bGxzY3JlZW4gcmVxdWVzdCIsYigpLHtldmVudDpmfSk7Yz0hMX0pO2U9eFgoKXx8ImZ1bGxzY3JlZW5jaGFuZ2UiO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKGUsKCk9PnthKCk7ZC56ZygiU1VDQ0VTUyIpO2M9ITF9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZnVsbHNjcmVlbnJlcXVlc3QiLCgpPT57Yz0hMDtkLkRyKGIoKSl9KX07Cm9vYT1mdW5jdGlvbihhKXt2YXIgYj1hLmZhbGxiYWNrRW5kcG9pbnQsYz1hLnRpbWVvdXRNcztpZighXy54KCJtd2ViX2MzX25pdHJhdGVfY2xpZW50X29wZW5fYXBwX2ZhbGxiYWNrX2tzIikmJmEudXJsKXt2YXIgZD1fLlpiKGEudXJsLCJmZWF0dXJlIil8fCIiO2Q9ZC5zdGFydHNXaXRoKCJlMTVtXyIpfHxkLnN0YXJ0c1dpdGgoImUxZF8iKXx8ZC5zdGFydHNXaXRoKCJlM2RfIik7Xy5mciYmZCYmIWImJihhPWEudXJsLGEuc3RhcnRzV2l0aCgidm5kLnlvdXR1YmU6Ly8iKT9hPWEucmVwbGFjZSgidm5kLnlvdXR1YmU6Ly8iLCJodHRwczovLyIpOmEuc3RhcnRzV2l0aCgieW91dHViZTovLyIpJiYoYT1hLnJlcGxhY2UoInlvdXR1YmU6Ly8iLCJodHRwczovLyIpKSxfLlhiKGEsMCwicmVkaXJlY3RfYXBwX3N0b3JlX2lvcyIsYS5zZWFyY2goXy5ZYikpPj0wfHwoYT1fLkZPKGEsInJlZGlyZWN0X2FwcF9zdG9yZV9pb3MiLCIxIikpLGI9Xy53TihhKSwhY3x8Yzw9MCkmJihjPV8uc2ooIm13ZWJfZGVlcF9saW5rX2ZhbGxiYWNrX3RpbWVvdXRfbXMiLAozRTMpKX1yZXR1cm57ZmFsbGJhY2tFbmRwb2ludDpiLHRpbWVvdXRNczpjfX07cG9hPWZ1bmN0aW9uKGEsYil7Xy54KCJtd2ViX2FwcF9idXR0b25fbG9nX2tzIil8fHRYKF8udGlhKTtiLmV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTthPV8uQihhLF8ucWlhKTthPy51cmwmJih3aW5kb3cubG9jYXRpb249YS51cmwpO3ZhciB7ZmFsbGJhY2tFbmRwb2ludDpjLHRpbWVvdXRNczpkfT1hP29vYShhKTp7ZmFsbGJhY2tFbmRwb2ludDp2b2lkIDAsdGltZW91dE1zOnZvaWQgMH07QVg9PT12b2lkIDAmJmQmJmQ+MCYmKEFYPXNldFRpbWVvdXQoKCk9PntBWD12b2lkIDA7YyYmXy5BSihjLGIuc291cmNlRGF0YSwhMCl9LGQpLF8uTk0od2luZG93LCJ2aXNpYmlsaXR5Y2hhbmdlIiwoKT0+e0FYJiYod2luZG93LmNsZWFyVGltZW91dChBWCksQVg9dm9pZCAwKX0pKX07CnFvYT1mdW5jdGlvbihhKXt2YXIgYj14WCgpO2ImJndpbmRvdy5hZGRFdmVudExpc3RlbmVyKGIsKCk9Pnt2YXIgYz0hIV8uWk8oKTtjfHxfLk1PKCIueXR3UGxheWVyQm90dG9tQ29udHJvbHNGdWxsc2NyZWVuQnV0dG9uV3JhcHBlciAuZnVsbHNjcmVlbi1pY29uIC5idXR0b24iKTthLnNldEZhdXhGdWxsc2NyZWVuKGMpfSl9O0JYPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNnb29nbGUtZmVlZGJhY2siKTtiJiYoXy5CTihiLGEpLGEmJl8uTU8oKCk9PmIucXVlcnlTZWxlY3RvcigiaWZyYW1lIik/LmNvbnRlbnREb2N1bWVudD8ucXVlcnlTZWxlY3RvcigiLnV2RmVlZGJhY2tGb3JtZm9ybS1pbml0aWFsLWZvY3VzLWVsZW1lbnQsIC51dkZlZWRiYWNrUnNhZGlhbG9nZGlhbG9nIC5zY1NoYXJlZE1hdGVyaWFsYnV0dG9ucm9vdCIpLDUse3JsOiEwfSkpfTsKcm9hPWZ1bmN0aW9uKCl7dmFyIGE9Xy5YRC5yZXNwb25zZT8ucmVzcG9uc2U/LnJlc3BvbnNlQ29udGV4dD8uc2VydmljZVRyYWNraW5nUGFyYW1zPy5maWx0ZXIoYz0+Yy5zZXJ2aWNlPT09IkdGRUVEQkFDSyIpWzBdLnBhcmFtcz8uZmlsdGVyKGM9PmMua2V5PT09ImUiKVswXSxiPW5ldyBTZXQoXy53KCJGRVhQX0VYUEVSSU1FTlRTIixbXSkpOyhhPy52YWx1ZT8uc3BsaXQoIiwiKXx8W10pLmZvckVhY2goYz0+e2IuYWRkKE51bWJlcihjKSl9KTtyZXR1cm4gQXJyYXkuZnJvbShiKS5qb2luKCIsIil9Owpzb2E9ZnVuY3Rpb24oKXtyZXR1cm4gXy5XRCgoKT0+e3ZhciBhPV8uWEQucmVzcG9uc2U/LnJlc3BvbnNlPy5yZXNwb25zZUNvbnRleHQ/LnNlcnZpY2VUcmFja2luZ1BhcmFtcz8uZmlsdGVyKGM9PmMuc2VydmljZT09PSJHRkVFREJBQ0siKVswXS5wYXJhbXM/LmZpbHRlcihjPT5jLmtleT09PSJwcmVtaXVtX21lbWJlcnNoaXAiKVswXSxiPV8uWEQucmVzcG9uc2U/LnBsYXllclJlc3BvbnNlPy5yZXNwb25zZUNvbnRleHQ/LnNlcnZpY2VUcmFja2luZ1BhcmFtcz8uZmlsdGVyKGM9PmMuc2VydmljZT09PSJHRkVFREJBQ0siKVswXS5wYXJhbXM/LmZpbHRlcihjPT5jLmtleT09PSJwcmVtaXVtX21lbWJlcnNoaXAiKVswXTtyZXR1cm4gYT9hLnZhbHVlOmI/Yi52YWx1ZTpudWxsfSl9OwpDWD1mdW5jdGlvbihhKXsobmV3IF8uZnkoYS5vbGRVUkwpKS52PT09IiNmZWVkYmFjayImJndpbmRvdy5sb2NhdGlvbi5oYXNoIT09IiNmZWVkYmFjayImJihCWCghMSksKGE9d2luZG93LkdPT0dMRV9GRUVEQkFDS19ERVNUUk9ZX0ZVTkNUSU9OKSYmYSgpKX07dG9hPWZ1bmN0aW9uKCl7Xy5GSi50aGVuKCgpPT57d2luZG93LmxvY2F0aW9uLmhhc2g9PT0iI2ZlZWRiYWNrIiYmKF8uWU0/Xy4kTSgiIik6Xy5aTSgpKTtyZXR1cm4gXy5GSn0pfTt1b2E9ZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsQ1gpO3RvYSgpO0JYKCExKTtfLkVwKCJ1c2VyRmVlZGJhY2tFdmVudCIse30pfTt2b2E9ZnVuY3Rpb24oKXtyZXR1cm57cHJvZHVjdElkOiI3NzUyMiIsbG9jYWxlOl8udygiSFRNTF9MQU5HIiwiZW4iKSxhbGxvd05vbkxvZ2dlZEluRmVlZGJhY2s6ITAsYnVja2V0OiJDMyIsY2FsbGJhY2s6dW9hLG9uTG9hZENhbGxiYWNrOigpPT57QlgoITApfX19Owp3b2E9ZnVuY3Rpb24oYSl7dmFyIGI9dm9hKCksYz17Y2xpZW50QXBwVmVyc2lvbjpfLncoIkNMSUVOVF9BUFBfVkVSU0lPTiIsIiIpLGV4cGVyaW1lbnRzOnJvYSgpLGxvZ2dlZF9pbjpfLnRQKCksRGV2aWNlOl8uYmMoKSxwcmVtaXVtX21lbWJlcnNoaXA6c29hKCl9O18uVk0oKXx8Xy5XTSgpO2EmJmEuZm9yRWFjaChkPT57KGQ9ZC51c2VyRmVlZGJhY2tFbmRwb2ludFByb2R1Y3RTcGVjaWZpY1ZhbHVlRGF0YSkmJmQua2V5JiYoY1tkLmtleV09ZC52YWx1ZSl9KTtfLlVOKCkudGhlbigoKT0+e18uJE0oImZlZWRiYWNrIik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLENYKTtfLllPKGIsYyl9KX07eG9hPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBEWDtiLmFib3J0KGEpO3JldHVybiBiLnNpZ25hbH07CnlvYT1mdW5jdGlvbigpe2lmKHRoaXMuYWJvcnRlZCl0aHJvdyB0aGlzLnJlYXNvbj8/bmV3IERPTUV4Y2VwdGlvbigic2lnbmFsIGlzIGFib3J0ZWQgd2l0aG91dCByZWFzb24iLCJBYm9ydEVycm9yIik7fTt6b2E9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IERYO2ZvcihsZXQgYyBvZiBhKWlmKGMuYWJvcnRlZCl7Yi5hYm9ydChjLnJlYXNvbik7YnJlYWt9ZWxzZSBFWC5zZXQoYi5zaWduYWwsYiksRlguYWRkKGMsYi5zaWduYWwpO3JldHVybiBiLnNpZ25hbH07QW9hPWZ1bmN0aW9uKCl7Zm9yKGxldCBhIG9mIEZYLmdldCh0aGlzKSlFWC5nZXQoYSkuYWJvcnQodGhpcy5yZWFzb24pfTtCb2E9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IERYO3NldFRpbWVvdXQoKCk9PntiLmFib3J0KG5ldyBET01FeGNlcHRpb24oInNpZ25hbCB0aW1lZCBvdXQiLCJUaW1lb3V0RXJyb3IiKSl9LGEpO3JldHVybiBiLnNpZ25hbH07CkNvYT1mdW5jdGlvbigpe3ZhciBhPVtdLGI7dmFyIGM9Y3x8R1gubGVuZ3RoO2ZvcihiPTA7Yjw4O2IrKylhW2JdPUdYWzB8TWF0aC5yYW5kb20oKSpjXTtyZXR1cm4gYS5qb2luKCIiKX07SFg9ZnVuY3Rpb24oYSl7Zm9yKGxldCBbLGJdb2YgT2JqZWN0LmVudHJpZXMoRG9hKSl7bGV0IGM9YjtpZihjPT09IlNMSV9TVEFUVVNfIithKXJldHVybiBjfXJldHVybiJTTElfU1RBVFVTX1VOS05PV04ifTtJWD1mdW5jdGlvbihhLGIsYyl7Yj1IWChiKTtaVyh7ZGltZW5zaW9uczpjLHJlY29yZHM6W3tuYW1lOmEsc3RhdGU6IlNMSV9TVEFURV9FTkQiLHN0YXR1czpifV19KX07Rm9hPWZ1bmN0aW9uKGEpe3JldHVybiBCbmEoYSwoKT0+bmV3IEVvYShhKSl9O21vYT1mdW5jdGlvbihhKXtyZXR1cm4gRm9hKGEpfTtLWD1mdW5jdGlvbihhLGIpe0pYKGEsYCR7Yn0gd2FzIGNhbGxlZCBidXQgbm90IHNldGApfTtIb2E9ZnVuY3Rpb24oYSl7cmV0dXJuIEdvYS5pbmRleE9mKGEpPi0xfTsKSlg9ZnVuY3Rpb24oYSxiLGMpe2M9YyE9PXZvaWQgMD9PYmplY3Qua2V5cyhhKS5maWx0ZXIoYyk6T2JqZWN0LmtleXMoYSk7YT1uZXcgXy5YaihgW0NvbW1hbmQgSGFuZGxlcl0gJHtifWAse2ZpbHRlcmVkQ29tbWFuZE5hbWVzOmMsb3JpZ2luYWxDb21tYW5kOmF9KTtfLkdwKGEpfTtJb2E9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLkIoYSxfLk5KKTtpZihjJiYoYz1iW2Muc2lnbmFsXSkpcmV0dXJuIGMoKTtmb3IobGV0IGQgb2YgT2JqZWN0LmtleXMoYSkpaWYoYltkXSYmKGE9YltkXSkpcmV0dXJuIGEoKX07Sm9hPWZ1bmN0aW9uKGEsYixjPSExLGQ9ITEsZT1bXSl7TFguaW5zdGFuY2U9bmV3IExYKGEsYixjLGQsZSl9OwpLb2E9ZnVuY3Rpb24oYSl7aWYoIWEuRCYmXy53QygiY29tbWFuZCIpKXtsZXQgYj1hLnJlc29sdmVDb21tYW5kO2EucmVzb2x2ZUNvbW1hbmQ9ZnVuY3Rpb24oYyxkKXthOntmb3IoZSBpbiBjKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjLGUpKXt2YXIgZT17Y29tbWFuZFR5cGU6ZX07YnJlYWsgYX1lPXt9fXJldHVybiBfLnlDKCJjb21tYW5kIixlLGIuYmluZCh0aGlzLGMsZCkpfTthLkQ9ITB9fTsKTVg9ZnVuY3Rpb24oYSxiLGMpeyFjPy5tZCYmYS5qJiYoYi5jbGlja1RyYWNraW5nUGFyYW1zPyhjPWM/LmZvcm0/LmVsZW1lbnQsYS5qLmNsaWNrQ29tbWFuZChiLG51bGwsYyYmYy5nZXRTY3JlZW5MYXllciYmYy5nZXRTY3JlZW5MYXllcigpKSk6Yi5jbGlja1RyYWNraW5nUGFyYW1zP2Euai5jbGlja0NvbW1hbmQoYik6IV8ueCgiZGlzYWJsZV9jbGlja2VkX3Zpc3VhbF9lbGVtZW50X2luX2NvbW1hbmRfaGFuZGxlciIpJiZjPy5jbGlja2VkVmlzdWFsRWxlbWVudCYmXy53SihhLmosYy5jbGlja2VkVmlzdWFsRWxlbWVudCkpfTsKTG9hPWZ1bmN0aW9uKGEsYixjKXtpZighYS5CKXJldHVybntoYW5kbGVkOiExfTt2YXIgZD1Jb2EoYixhLkIpO3JldHVybiBkPygoYS5LLnNvbWUoZT0+ISFfLkIoYixlKSl8fGM/LlBwfHwhYS5JKSYmTVgoYSxiLGMpLHtoYW5kbGVkOiEwLFprOihhc3luYygpPT57YXdhaXQgKGQgaW5zdGFuY2VvZiBQcm9taXNlP2F3YWl0IGQ6ZCkucmVzb2x2ZShiLGMpfSkoKX0pOntoYW5kbGVkOiExfX07Ck5YPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1Nb2EoYik7aWYoIWM/LlRLKXtsZXQgZj1Mb2EoYSxiLGMpO2lmKGYuaGFuZGxlZClyZXR1cm4gZn1pZihkKXJldHVybiBOb2EoYSxiLGMpO2lmKCFhLnYpcmV0dXJuIEpYKGIsIlVuaGFuZGxlZCBjb21tYW5kIGJ5IGJ1aWxkQ29tbWFuZFBheWxvYWQiKSx7aGFuZGxlZDohMX07dmFyIGU9YS52KGIsYyk7Yz8uRWkmJihlLkVpPWMuRWkpO2lmKGUudHlwZT09PTApe2lmKCFhLm5hdmlnYXRlKXJldHVybiBLWChiLCJuYXZpZ2F0ZSIpLHtoYW5kbGVkOiExfTtpZighXy5CKGUuY29tbWFuZD8uY29tbWFuZE1ldGFkYXRhLF8uencpPy51cmwpcmV0dXJuIEpYKGIsIlBhZ2UgcmVxdWVzdHMgbmVlZCB0byBzcGVjaWZ5IGEgdXJsIikse2hhbmRsZWQ6ITF9O2lmKE9vYShhLGUuY29tbWFuZCkpcmV0dXJue2hhbmRsZWQ6ITF9O18ueCgibG9nZ2luZ19hdm9pZF9ibG9ja2luZ19kdXJpbmdfbmF2aWdhdGlvbiIpJiZfLmlvKCkudHJhbnNpdGlvbigiYXBwbGljYXRpb25fbmF2aWdhdGluZyIpOwpiPWEubmF2aWdhdGUoZSl8fFtdO2Q9UHJvbWlzZS5yZXNvbHZlKEduYShiKS50aGVuKCgpPT57YS5vLmRlbGV0ZShlLmNvbW1hbmQpfSkpO2EuaiYmIWEuWSYmQW5hKGEuaixlLmNvbW1hbmQse2NsaWNrZWRWaXN1YWxFbGVtZW50OmM/LmNsaWNrZWRWaXN1YWxFbGVtZW50LGZsOmIsbGF5ZXI6ZS5sYXllcixhdXRvbWF0ZWRMb2dFdmVudFNvdXJjZTo0fSk7cmV0dXJue2hhbmRsZWQ6ITAsWms6ZH19aWYoZS50eXBlPT09MSlyZXR1cm4gS1goYiwiaGFuZGxlU2VydmljZVJlcXVlc3QiKSx7aGFuZGxlZDohMX07ZS50eXBlPT09MiYmS1goYiwic2VuZEFjdGlvbiIpO3JldHVybntoYW5kbGVkOiExfX07TW9hPWZ1bmN0aW9uKGEpe3ZhciBiPV8uQihhLF8uenopPy5zaWduYWw9PT0iQ0xJRU5UX1NJR05BTCI7cmV0dXJuISFfLkIoYSxfLlNEKXx8Yn07Ck5vYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT1fLkIoYixfLlNEKTtlP2Q9ZT8uY29tbWFuZHN8fFtdOl8uQihiLF8uenopPy5zaWduYWw9PT0iQ0xJRU5UX1NJR05BTCImJihkPV8uQihiLF8uenopPy5hY3Rpb25zfHxbXSk7aWYoZCl7KGU9UG9hKGEsZCkpJiZNWChhLGIsYyk7Yj1bXTtmb3IobGV0IGYgb2YgZCl0cnl7ZD17Li4uY307ZSYmKGQubWQ9ITApO2xldCBoPU5YKGEsZixkKTtoLmhhbmRsZWQmJmIucHVzaChoLlprKX1jYXRjaChoKXtoIGluc3RhbmNlb2YgRXJyb3ImJl8uR3AoaCl9cmV0dXJue2hhbmRsZWQ6ITAsWms6UHJvbWlzZS5hbGxTZXR0bGVkKGIpLnRoZW4oKCk9Pnt9KX19SlgoYiwiQ291bGQgbm90IGhhbmRsZSB0aGUgbWV0YSBjb21tYW5kIik7cmV0dXJue2hhbmRsZWQ6ITF9fTtPb2E9ZnVuY3Rpb24oYSxiKXtpZihhLm8uaGFzKGIpKXJldHVybiEwO2Euby5hZGQoYik7cmV0dXJuITF9OwpQb2E9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi5ldmVyeShjPT5hLk0uc29tZShkPT4hIV8uQihjLGQpKSl9O1FvYT1mdW5jdGlvbihhLGIpe2E9YS5nZXRBdmFpbGFibGVBdWRpb1RyYWNrcygpO2lmKGEubGVuZ3RoKXJldHVybiBhPy5maW5kKGM9PmM/LmdldExhbmd1YWdlSW5mbygpPy5nZXRJZCgpPT09Yil9O1JvYT1mdW5jdGlvbihhLGIsYyl7YT1fLiRPKGEpO2lmKGEubGVuZ3RoKXJldHVybiBjP2EuZmluZChkPT5kLnRyYW5zbGF0aW9uTGFuZ3VhZ2U/ZC50cmFuc2xhdGlvbkxhbmd1YWdlLmxhbmd1YWdlQ29kZT09PWI6ITEpOmE/LmZpbmQoZD0+ZC5sYW5ndWFnZUNvZGU9PT1iKX07ClNvYT1mdW5jdGlvbihhKXt2YXIgYj1hLmdldEF2YWlsYWJsZUF1ZGlvVHJhY2tzKCk7aWYoYj8ubGVuZ3RoKXt2YXIgYz1hLmdldEF1ZGlvVHJhY2soKTthPXtsaXN0SXRlbXM6Wy4uLmIubWFwKGQ9Pih7bGlzdEl0ZW1WaWV3TW9kZWw6e3RpdGxlOntjb250ZW50OmQuZ2V0TGFuZ3VhZ2VJbmZvKCkuZ2V0TmFtZSgpfSxpc1NlbGVjdGVkOmQuZ2V0TGFuZ3VhZ2VJbmZvKCkuZ2V0SWQoKT09PWM/LmdldExhbmd1YWdlSW5mbygpLmdldElkKCksc2VsZWN0aW9uU3R5bGU6IkxJU1RfSVRFTV9TRUxFQ1RJT05fU1RZTEVfREVGQVVMVCIscmVuZGVyZXJDb250ZXh0Ontjb21tYW5kQ29udGV4dDp7b25UYXA6e2lubmVydHViZUNvbW1hbmQ6e3NpZ25hbFNlcnZpY2VFbmRwb2ludDp7c2lnbmFsOiJDTElFTlRfU0lHTkFMIixhY3Rpb25zOlt7YXVkaW9UcmFja1NlbGVjdEFjdGlvbkNvbW1hbmQ6e2xhbmd1YWdlQ29kZTpkLmdldExhbmd1YWdlSW5mbygpLmdldElkKCl9fV19fX19fX19KSldLAp2aXNpYmxlRWxlbWVudENvdW50OjV9O3JldHVybntzaG93U2hlZXRDb21tYW5kOntwYW5lbExvYWRpbmdTdHJhdGVneTp7aW5saW5lQ29udGVudDp7c2hlZXRWaWV3TW9kZWw6e2hlYWRlcjp7cGFuZWxIZWFkZXJWaWV3TW9kZWw6e3RpdGxlOntjb250ZW50Ol8uYUEoIkFVRElPX1RSQUNLIix2b2lkIDAsIkF1ZGlvIFRyYWNrIil9fX0sY29udGVudDp7bGlzdFZpZXdNb2RlbDphfX19fX19fX07T1g9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ2V0T3B0aW9uKCJjYXB0aW9ucyIsInRyYWNrbGlzdCIse2luY2x1ZGVBc3I6ITB9KX07VG9hPWZ1bmN0aW9uKGEpe3ZhciBiPU9YKGEpO2lmKGI/Lmxlbmd0aClyZXR1cm4gYjthLmxvYWRNb2R1bGUoImNhcHRpb25zIik7cmV0dXJuIE9YKGEpfTsKUFg9ZnVuY3Rpb24oYSl7dmFyIGI9YS5nZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2siKTtpZihiKXJldHVybiBiO2EubG9hZE1vZHVsZSgiY2FwdGlvbnMiKTtyZXR1cm4gYS5nZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2siKX07UVg9ZnVuY3Rpb24oYSxiKXtyZXR1cm57cGFuZWxIZWFkZXJWaWV3TW9kZWw6e3RpdGxlOntjb250ZW50Ol8uYUEoYSx2b2lkIDAsYil9fX19OwpWb2E9ZnVuY3Rpb24oYSl7dmFyIGI9VG9hKGEpO2lmKGI/Lmxlbmd0aCl7dmFyIGM9UFgoYSk7YT17bGlzdEl0ZW1zOlt7bGlzdEl0ZW1WaWV3TW9kZWw6e3RpdGxlOntjb250ZW50Ol8uYUEoIlBMQVlFUl9DQVBUSU9OX09GRiIsdm9pZCAwLCJPZmYiKX0saXNTZWxlY3RlZDohYz8ubGFuZ3VhZ2VDb2RlLHNlbGVjdGlvblN0eWxlOiJMSVNUX0lURU1fU0VMRUNUSU9OX1NUWUxFX0RFRkFVTFQiLHJlbmRlcmVyQ29udGV4dDp7Y29tbWFuZENvbnRleHQ6e29uVGFwOntpbm5lcnR1YmVDb21tYW5kOntzaWduYWxTZXJ2aWNlRW5kcG9pbnQ6e3NpZ25hbDoiQ0xJRU5UX1NJR05BTCIsYWN0aW9uczpbe2NhcHRpb25MYW5ndWFnZVNlbGVjdEFjdGlvbkNvbW1hbmQ6e2xhbmd1YWdlQ29kZToiIn19LHtoaWRlU2hlZXRDb21tYW5kOnt9fV19fX19fX19LC4uLmIubWFwKGQ9Pih7bGlzdEl0ZW1WaWV3TW9kZWw6e3RpdGxlOntjb250ZW50OmQuZGlzcGxheU5hbWV9LGlzU2VsZWN0ZWQ6ZC5kaXNwbGF5TmFtZT09PQpjPy5kaXNwbGF5TmFtZSxzZWxlY3Rpb25TdHlsZToiTElTVF9JVEVNX1NFTEVDVElPTl9TVFlMRV9ERUZBVUxUIixyZW5kZXJlckNvbnRleHQ6e2NvbW1hbmRDb250ZXh0OntvblRhcDp7aW5uZXJ0dWJlQ29tbWFuZDp7c2lnbmFsU2VydmljZUVuZHBvaW50OntzaWduYWw6IkNMSUVOVF9TSUdOQUwiLGFjdGlvbnM6W3tjYXB0aW9uTGFuZ3VhZ2VTZWxlY3RBY3Rpb25Db21tYW5kOntsYW5ndWFnZUNvZGU6ZC5sYW5ndWFnZUNvZGV9fSx7aGlkZVNoZWV0Q29tbWFuZDp7fX1dfX19fX19fSkpLHtsaXN0SXRlbVZpZXdNb2RlbDp7dGl0bGU6e2NvbnRlbnQ6Xy5hQSgiQVVUT19UUkFOU0xBVEUiLHZvaWQgMCwiQXV0by10cmFuc2xhdGUiKX0saXNTZWxlY3RlZDohIWMudHJhbnNsYXRpb25MYW5ndWFnZSxzZWxlY3Rpb25TdHlsZToiTElTVF9JVEVNX1NFTEVDVElPTl9TVFlMRV9ERUZBVUxUIiwuLi4oISFjLnRyYW5zbGF0aW9uTGFuZ3VhZ2UmJntzZWxlY3Rpb25UZXh0Ontjb250ZW50OmM/LnRyYW5zbGF0aW9uTGFuZ3VhZ2U/Lmxhbmd1YWdlTmFtZXx8CiIifX0pLHJlbmRlcmVyQ29udGV4dDp7Y29tbWFuZENvbnRleHQ6e29uVGFwOntpbm5lcnR1YmVDb21tYW5kOntzaWduYWxTZXJ2aWNlRW5kcG9pbnQ6e3NpZ25hbDoiQ0xJRU5UX1NJR05BTCIsYWN0aW9uczpbVW9hKGEpXX19fX19fX1dLHZpc2libGVFbGVtZW50Q291bnQ6NX07cmV0dXJue3Nob3dTaGVldENvbW1hbmQ6e3BhbmVsTG9hZGluZ1N0cmF0ZWd5OntpbmxpbmVDb250ZW50OntzaGVldFZpZXdNb2RlbDp7aGVhZGVyOlFYKCJQTEFZRVJfQ0FQVElPTiIsIkNhcHRpb25zIiksY29udGVudDp7bGlzdFZpZXdNb2RlbDphfX19fX19fX07ClVvYT1mdW5jdGlvbihhKXt2YXIgYj1fLmFQKGEpO2lmKCFiPy5sZW5ndGgpdGhyb3cgRXJyb3IoImJlIik7dmFyIGM9UFgoYSk7YT17bGlzdEl0ZW1zOlsuLi5iLmZpbHRlcihkPT4hZC5sYW5ndWFnZUNvZGU/LnN0YXJ0c1dpdGgoImVuIikpLm1hcChkPT4oe2xpc3RJdGVtVmlld01vZGVsOnt0aXRsZTp7Y29udGVudDpkLmxhbmd1YWdlTmFtZXx8IiJ9LGlzU2VsZWN0ZWQ6ZC5sYW5ndWFnZU5hbWU9PT1jPy50cmFuc2xhdGlvbkxhbmd1YWdlPy5sYW5ndWFnZU5hbWUsc2VsZWN0aW9uU3R5bGU6IkxJU1RfSVRFTV9TRUxFQ1RJT05fU1RZTEVfREVGQVVMVCIscmVuZGVyZXJDb250ZXh0Ontjb21tYW5kQ29udGV4dDp7b25UYXA6e2lubmVydHViZUNvbW1hbmQ6e3NpZ25hbFNlcnZpY2VFbmRwb2ludDp7c2lnbmFsOiJDTElFTlRfU0lHTkFMIixhY3Rpb25zOlt7Y2FwdGlvbkxhbmd1YWdlU2VsZWN0QWN0aW9uQ29tbWFuZDp7bGFuZ3VhZ2VDb2RlOmQubGFuZ3VhZ2VDb2RlLGlzQXV0b1RyYW5zbGF0ZWQ6ITB9fSwKe2hpZGVTaGVldENvbW1hbmQ6e319XX19fX19fX0pKV0sdmlzaWJsZUVsZW1lbnRDb3VudDo1fTtyZXR1cm57c2hvd1NoZWV0Q29tbWFuZDp7cGFuZWxMb2FkaW5nU3RyYXRlZ3k6e2lubGluZUNvbnRlbnQ6e3NoZWV0Vmlld01vZGVsOntoZWFkZXI6UVgoIkFVVE9fVFJBTlNMQVRFIiwiQXV0by10cmFuc2xhdGUiKSxjb250ZW50OntsaXN0Vmlld01vZGVsOmF9fX19fX19O1dvYT1mdW5jdGlvbihhKXt2YXIgYj1fLlZ3KCk7aWYoYil7dmFyIGM9e3dlYkNsaWVudENvbXBvbmVudHNEYXRhOntjb21wb25lbnRzOkFycmF5LmZyb20oYS5pZHMsZD0+KHtpZDpkfSkpfX07YS5pZHMuY2xlYXIoKTtfLmh4KCkudmlzdWFsRWxlbWVudFN0YXRlQ2hhbmdlZChiLGMpfX07ClhvYT1mdW5jdGlvbihhKXt2YXIgYj16WDthLmFkZEV2ZW50TGlzdGVuZXIoIm9uU3RhdGVDaGFuZ2UiLGM9PntpZihhKXt2YXIgZD1hLmdldFZpZGVvRGF0YSgpLnZpZGVvX2lkO2QhPT1SWCYmYz09PTEmJihSWD1kLFNYLm8oYigpKSxUWC5vKGIoKSkpfX0pO2EuYWRkRXZlbnRMaXN0ZW5lcigib25FcnJvciIsYz0+e1NYLmooYigpKTt5WCgicGxheWVyIGVycm9yIixiKCkse2Vycm9yQ29kZTpjfSl9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGxheWJhY2stdW5wbGF5YWJsZSIsYz0+e1RYLmooYigpKTt5WCgicGxheWVyIHVucGxheWFibGUiLGIoKSx7cmVhc29uOmMuZGV0YWlsPy5yZWFzb259KX0pfTtZb2E9YXN5bmMgZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmouZ2V0KGIpO2lmKGMpcmV0dXJuIGMucHJvbWlzZTtjPW5ldyBfLmNzO2Euai5zZXQoYixjKTtyZXR1cm4gYy5wcm9taXNlfTsKWm9hPWFzeW5jIGZ1bmN0aW9uKGEsYil7dmFyIGM9YS5PbS5nZXQoYik7cmV0dXJuIGM/YzpZb2EoYSxiKX07JG9hPWFzeW5jIGZ1bmN0aW9uKGEsYil7aWYoYS5wYW5lbExvYWRpbmdTdHJhdGVneT8ucmVxdWVzdFRlbXBsYXRlKXRyeXtsZXQgYz1hd2FpdCBhLm8uUWkoYik7aWYoYylyZXR1cm4gYy5jb250ZW50O18uR3AoRXJyb3IoImNlIikpfWNhdGNoKGMpe18uR3AoYyl9fTtWWD1mdW5jdGlvbihhLGIpe3JldHVybiBVWChhKT8ub3coYik/P2J9O1VYPWZ1bmN0aW9uKGEpe3JldHVybiBfLlpPKCkmJmEuTT9hLk06YS5jb250YWluZXJ9O1dYPWZ1bmN0aW9uKGEpe2EuWSYmKGNsZWFyVGltZW91dChhLlkpLGEuWT12b2lkIDApO2EuQiYmKGNsZWFyVGltZW91dChhLkIpLGEuQj12b2lkIDApfTsKJFg9YXN5bmMgZnVuY3Rpb24oYSxiLGMsZD1jKXt2YXIgZT17c3RhY2s6W10sZXJyb3I6dm9pZCAwLGhhc0Vycm9yOiExfTt0cnl7bGV0IGY9Xy5adCxoPWF3YWl0IGEuZG0oKTtfLlZ6KGUsXy52TShmKSk7aWYoaClpZihhLm8pe2lmKGEuY3VycmVudFRhcmdldD09PWMpcmV0dXJuO1hYKGEpO1lYKGEpO2F3YWl0IFVYKGEpPy5KZSgpfWVsc2UgaWYoIV8ueCgiZGVsYXlfc2hlZXRfb3Blbl9raWxsc3dpdGNoIikpe2lmKF8ueCgid2ViX2Nsb3NlX3NoZWV0X2lmX3NhbWVfdGFyZ2V0X2tpbGxzd2l0Y2giKSYmYyYmYS5jdXJyZW50VGFyZ2V0PT09Yyl7VVgoYSk/LkplKCk7cmV0dXJufWEudj17ZGF0YTpiLHRhcmdldDpWWChhLGMpfTtyZXR1cm59Yi52aWV3TW9kZWwmJihiPXt2aWV3TW9kZWw6Yi52aWV3TW9kZWwsVXI6Yi5VcixleHBhbmRUb0Z1bGxXaWR0aDpiLmV4cGFuZFRvRnVsbFdpZHRoLG9wZW5Ub1NpZGU6Yi5vcGVuVG9TaWRlfSk7VVgoYSk/LndnKGIsYyxkKTthLmN1cnJlbnRUYXJnZXQ9CmM7YS5vPyhhLkkoKSxhLmN1cnJlbnRUYXJnZXQ/LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGEuSSksYS5jdXJyZW50VGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIixhLlopLFpYKGEpKTphLkQmJlpYKGEpfWNhdGNoKGYpe2UuZXJyb3I9ZixlLmhhc0Vycm9yPSEwfWZpbmFsbHl7Xy5XeihlKX19O1hYPWZ1bmN0aW9uKGEpe2EuY3VycmVudFRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsYS5JKTthLmN1cnJlbnRUYXJnZXQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGEuWil9O1lYPWZ1bmN0aW9uKGEpe3ZhciBiPVVYKGEpPy5YcCgpO2I/LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGEuVSk7Yj8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsYS5LKX07ClpYPWZ1bmN0aW9uKGEpe3ZhciBiPVVYKGEpPy5YcCgpO2I/LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGEuVSk7Yj8uYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsYS5LKX07YVk9YXN5bmMgZnVuY3Rpb24oYSl7aWYoYS5vKXtpZihhLmopcmV0dXJuO1hYKGEpO1lYKGEpfWVsc2UgYS5EJiYoWVgoYSksYS5LKCkpO2F3YWl0IFVYKGEpPy5KZSgpO2EuY3VycmVudFRhcmdldD12b2lkIDA7YS5qPSExO2Eubz0hMTthLmhpZGVEZWxheU1zPTA7YS5zaG93RGVsYXlNcz0wO2EuRD0hMTthLnYmJiFfLngoImRlbGF5X3NoZWV0X29wZW5fa2lsbHN3aXRjaCIpJiYoYXdhaXQgYS53ZyhhLnYuZGF0YSxhLnYudGFyZ2V0KSxhLnY9dm9pZCAwKX07CmFwYT1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPTA7cmV0dXJue2NsZWFyOmZ1bmN0aW9uKCl7Yz1iLmxlbmd0aD0wfSxwdXNoOmZ1bmN0aW9uKGQpe2JbY109ZDtjPShjKzEpJWF9LFp4OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBkPWIubGVuZ3RoO2ZvcihsZXQgZT0wO2U8ZDtlKyspeWllbGQgYlsoYytlKSVkXX0oKX19fTticGE9ZnVuY3Rpb24oYSl7YS55bHx8KGEueWw9W10pO3ZhciBiPWEueWwubWFwKF8uUFcpLGM9bmV3IFNldChiKSxkPWFwYShhLmJ1ZmZlclNpemUpO3JldHVybntmbHVzaDpmdW5jdGlvbigpe3ZhciBlPUFycmF5LmZyb20oZC5aeCgpKTtkLmNsZWFyKCk7ZT1lLm1hcChmPT4oe25hbWU6Zi5uYW1lLHRpbWVzdGFtcDpmLnN0YXJ0VGltZSxhdHRyaWJ1dGVzOmYuYXR0cmlidXRlc30pKTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9LEdtKGUpe2UubmFtZT09PSJldmVudCImJmMuaGFzKGUuYXR0cmlidXRlcy50eXBlKXx8ZC5wdXNoKGUpfX19OwpjcGE9ZnVuY3Rpb24oYSl7dmFyIHtmbHVzaDpiLEdtOmN9PWJwYShhKTtzWCh7R206Y30pO18uVnAuc3Vic2NyaWJlKCJoYW5kbGVFcnJvciIsZD0+e3RyeXtkLnBhcmFtcy5icmVhZGNydW1icz1iKCl9Y2F0Y2goZSl7Xy5HcChlLCJXQVJOSU5HIil9fSl9O2JZPWZ1bmN0aW9uKCl7Xy5Teigid2ViX3RyYWNpbmdfYWN0aW9uIik7Xy5Ueigid2ViX3RyYWNpbmdfYWN0aW9uIix7fSx2b2lkIDAsIkxBVEVOQ1lfQUNUSU9OX1dFQl9UUkFDSU5HIil9O2VZPWZ1bmN0aW9uKCl7aWYoY1kpcmV0dXJuIndlYl90cmFjaW5nX2FjdGlvbiI7ZFkoKTtzZXRJbnRlcnZhbChkWSw2RTUpO2NZPSEwO3JldHVybiJ3ZWJfdHJhY2luZ19hY3Rpb24ifTtkWT1mdW5jdGlvbigpe18uU3ooIndlYl90cmFjaW5nX2FjdGlvbiIpO18uVHooIndlYl90cmFjaW5nX2FjdGlvbiIse30sdm9pZCAwLCJMQVRFTkNZX0FDVElPTl9XRUJfVFJBQ0lORyIpfTsKZHBhPWZ1bmN0aW9uKGEsYj1lWSgpLGMpe3JldHVybigwLF8uY3QpKGEubmFtZSwoYS5lbmRUaW1lPz9hLnN0YXJ0VGltZSktYS5zdGFydFRpbWUsYS5zdGFydFRpbWUse3dlYlRyYWNpbmc6e1thLm5hbWVdOmEuYXR0cmlidXRlc319LGMsYix7c3BhblN0YXR1czphLnN0YXR1cyxyb290U3Bhbk5vbmNlOnZvaWQgMCxxdTp2b2lkIDB9KX07Zlk9ZnVuY3Rpb24oYSxiLGMsZCl7Yz1kcGEoYSxiLGMpO2lmKGEuY2hpbGRyZW4pZm9yKGxldCBlIG9mIGEuY2hpbGRyZW4pZlkoZSxiLGMsZHx8Yyl9OwplcGE9ZnVuY3Rpb24oYSl7dmFyIGI9Z29hLmJpbmQobnVsbCwieXQudGVsZW1ldHJ5X2V4dGVuc2lvbiIpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixjPT57Yy5kYXRhJiZ0eXBlb2YgYy5kYXRhPT09Im9iamVjdCImJihjPWMuZGF0YSxjLmZyb209PT0iZXh0ZW5zaW9uIiYmYy5hcHA9PT0ieXQudGVsZW1ldHJ5IiYmKGIoIlJlY2VpdmVkIG1lc3NhZ2UgZnJvbSBleHRlbnNpb24iLGMpLGEub25NZXNzYWdlKGMpKSl9KTtyZXR1cm4gZnVuY3Rpb24oYyxkKXtjPXthcHA6Inl0LnRlbGVtZXRyeSIsZnJvbToiYXBwIixrZXk6YyxwYXlsb2FkOmR9O2IoIlNlbmRpbmcgbWVzc2FnZSB0byBleHRlbnNpb24iLGMpO3dpbmRvdy5wb3N0TWVzc2FnZShjLCIqIil9fTsKZnBhPWZ1bmN0aW9uKCl7dmFyIGE9ZXBhKHtvbk1lc3NhZ2UoKXt9fSksYj1bXTtyZXR1cm57bHIoYyl7Yy5wYXJlbnRJZD09bnVsbCYmYi5wdXNoKGMpPT09MSYmc2V0VGltZW91dCgoKT0+e3ZhciBkPVsuLi5iXTtiLmxlbmd0aD0wO2EoInNwYW5zUmVwb3J0ZWQiLHtzcGFuczpkfSl9LDNFMyl9fX07Z3BhPWZ1bmN0aW9uKCl7dmFyIGE9d2luZG93LmZldGNoO3dpbmRvdy5mZXRjaD0oLi4uYik9Pnt2YXIgW2MsZD17fV09YixlPV8ueUMoImh0dHBFdmVudCIse21ldGhvZDpkLm1ldGhvZHx8IkdFVCIscGF0aDpnWShjKSx0eXBlOiJmZXRjaCJ9LHthY3RpdmU6ITF9KTtyZXR1cm4gYSguLi5iKS50aGVuKGY9PntlLkRlKHtzdGF0dXNDb2RlOmYuc3RhdHVzLHN0YXR1c1RleHQ6Zi5zdGF0dXNUZXh0fSk7ZS5lbmQoKTtyZXR1cm4gZn0pLmNhdGNoKGY9PntlLmVuZCgiU1BBTl9TVEFUVVNfRVJST1IiKTt0aHJvdyBmO30pfX07CmhwYT1mdW5jdGlvbigpe3ZhciBhPVhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZS5vcGVuLGI9WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLnNlbmQ7WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24oYyxkLGU9ITAsZixoKXt0aGlzLnY9e21ldGhvZDpjLHVybDpkLnRvU3RyaW5nKCl9O3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKCk9Pnt2YXIgaz10aGlzLmo7az8uRGUoe3N0YXR1c0NvZGU6dGhpcy5zdGF0dXMscmVzcG9uc2VDb250ZW50TGVuZ3RoOnRoaXMucmVzcG9uc2VUZXh0Lmxlbmd0aH0pO2s/LmVuZCgpfSk7dGhpcy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9Pnt2YXIgaz10aGlzLmo7az8uRGUoe3N0YXR1c0NvZGU6dGhpcy5zdGF0dXMsc3RhdHVzVGV4dDp0aGlzLnN0YXR1c1RleHR9KTtrPy5lbmQoIlNQQU5fU1RBVFVTX0VSUk9SIil9KTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwoKT0+e3ZhciBrPXRoaXMuajtrPy5EZSh7c3RhdHVzQ29kZTp0aGlzLnN0YXR1cywKYWJvcnRlZDohMH0pO2s/LmVuZCgpfSk7YS5hcHBseSh0aGlzLFtjLGQsZSxmLGhdKX07WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oYyl7dmFyIHttZXRob2Q6ZCx1cmw6ZX09dGhpcy52fHx7bWV0aG9kOiJOL0EiLHVybDoiTi9BIn07dGhpcy5qPV8ueUMoImh0dHBFdmVudCIse21ldGhvZDpkLHBhdGg6Z1koZSksdHlwZToieGhyIn0se2FjdGl2ZTohMX0pO2IuYXBwbHkodGhpcyxbY10pfX07Z1k9ZnVuY3Rpb24oYSl7dHJ5e2lmKGEgaW5zdGFuY2VvZiBVUkwpcmV0dXJuIGEucGF0aG5hbWU7YSBpbnN0YW5jZW9mIFJlcXVlc3QmJihhPWEudXJsKTtyZXR1cm4obmV3IFVSTChhLCJodHRwczovL3lvdXR1YmUuY29tIikpLnBhdGhuYW1lfWNhdGNoKGIpe3JldHVybiI8dW5hYmxlIHRvIHBhcnNlIHBhdGg+In19OwpqcGE9ZnVuY3Rpb24oKXt3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKCk9Pnt0cnl7bGV0IGE9d2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKTtpZihhLmxlbmd0aD4wKXtsZXQgYj1hWzBdLGM9d2luZG93LnBlcmZvcm1hbmNlLnRpbWVPcmlnaW47Xy55QygicGFnZUxvYWQiLHtuYXZpZ2F0aW9uVHlwZTppcGEoYi50eXBlKSx1bmxvYWRFdmVudFN0YXJ0Ok1hdGgucm91bmQoYi51bmxvYWRFdmVudFN0YXJ0KSx1bmxvYWRFdmVudEVuZDpNYXRoLnJvdW5kKGIudW5sb2FkRXZlbnRFbmQpLGRvbUludGVyYWN0aXZlOk1hdGgucm91bmQoYi5kb21JbnRlcmFjdGl2ZSksZG9tQ29udGVudExvYWRlZEV2ZW50U3RhcnQ6TWF0aC5yb3VuZChiLmRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0KSxkb21Db250ZW50TG9hZGVkRXZlbnRFbmQ6TWF0aC5yb3VuZChiLmRvbUNvbnRlbnRMb2FkZWRFdmVudEVuZCksCmRvbUNvbXBsZXRlOk1hdGgucm91bmQoYi5kb21Db21wbGV0ZSksbG9hZEV2ZW50U3RhcnQ6TWF0aC5yb3VuZChiLmxvYWRFdmVudFN0YXJ0KSxsb2FkRXZlbnRFbmQ6TWF0aC5yb3VuZChiLmxvYWRFdmVudEVuZCkscmVkaXJlY3RDb3VudDpiLnJlZGlyZWN0Q291bnR9LHthY3RpdmU6ITEsc3RhcnRUaW1lOmMrYi5zdGFydFRpbWUsZW5kVGltZTpjK2IubG9hZEV2ZW50RW5kfSl9fWNhdGNoKGEpe319KX07CmlwYT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAibmF2aWdhdGUiOnJldHVybiJQRVJGT1JNQU5DRV9OQVZJR0FUSU9OX1RJTUlOR19UWVBFX05BVklHQVRFIjtjYXNlICJyZWxvYWQiOnJldHVybiJQRVJGT1JNQU5DRV9OQVZJR0FUSU9OX1RJTUlOR19UWVBFX1JFTE9BRCI7Y2FzZSAiYmFja19mb3J3YXJkIjpyZXR1cm4iUEVSRk9STUFOQ0VfTkFWSUdBVElPTl9USU1JTkdfVFlQRV9CQUNLX0ZPUldBUkQiO2Nhc2UgInByZXJlbmRlciI6cmV0dXJuIlBFUkZPUk1BTkNFX05BVklHQVRJT05fVElNSU5HX1RZUEVfUFJFUkVOREVSIjtkZWZhdWx0OnJldHVybiJQRVJGT1JNQU5DRV9OQVZJR0FUSU9OX1RJTUlOR19UWVBFX1VOS05PV04ifX07CmxwYT1mdW5jdGlvbigpe0luYSgoYSxiKT0+e3ZhciBjPW5ldyBNYXAsZCxlPWVZKCk7Zm9yKGxldCBoIG9mIGEuc3BhbnMpe2lmKGgubWFya2VyKWNvbnRpbnVlO3ZhciBmPWIuZ2V0KGguaWQpPy5nZXQoXy5Pdik7bGV0IGs9Zj9rcGFbZi50eXBlXTp2b2lkIDA7aWYoIWZ8fGguZHVyYXRpb25Ncz09PXZvaWQgMHx8az09PXZvaWQgMCl7aC5wYXJlbnRJZCE9PXZvaWQgMCYmKGY9Yy5nZXQoaC5wYXJlbnRJZCksZiE9PXZvaWQgMCYmYy5zZXQoaC5pZCxmKSk7Y29udGludWV9bGV0IGw9YS5uSytoLnlLLG09aC5wYXJlbnRJZCE9PXZvaWQgMD9jLmdldChoLnBhcmVudElkKTp2b2lkIDAsbixwO3N3aXRjaChmLnR5cGUpe2Nhc2UgIlJlbmRlciI6Y2FzZSAiRWZmZWN0IjpjYXNlICJPbkluaXQiOmNhc2UgIlJlbmRlckVmZmVjdCI6cD1mLmxvY2F0aW9uO2JyZWFrO2Nhc2UgIkNyZWF0ZVJlYWN0aXZlQ29tcG9uZW50IjpuPWYuY29tcG9uZW50TmFtZTticmVhaztjYXNlICJDb21wdXRlZCI6bj0KZi5oSTtwPWYubG9jYXRpb247YnJlYWs7Y2FzZSAiU2lnbmFsVXBkYXRlIjpuPWYuU0t9aWYoZj0oMCxfLmN0KSgiY293X3NwYW4iLGguZHVyYXRpb25NcyxsLHt3ZWJUcmFjaW5nOntjb3dTcGFuOnt0eXBlOmssbmFtZTpuLGNvZGVMb2NhdGlvbjpwfX19LG0sZSx7cm9vdFNwYW5Ob25jZTpkfSkpYy5zZXQoaC5pZCxmKSxkPT09dm9pZCAwJiYoZD1mKX19KX07CnBwYT1mdW5jdGlvbigpe3ZhciBhPWhZLnZhbHVlLGI9e307Zm9yKGxldCBjIG9mIGEuSHYpYltjXT0hMDtlb2Eoe3Nlc3Npb25JZDpfLkZuKCksZGg6YixXaChjLGQsZSl7cmV0dXJuIG1wYT9jPT09InNob3J0VG9TaG9ydCJ8fGU/Lld6KCk/Lm5hbWU9PT0ic2hvcnRUb1Nob3J0IjohMH19KTtmb2EoKTtfLndDKCJwYWdlTG9hZCIpJiZqcGEoKTtfLndDKCJjb3dTcGFuIikmJmxwYSgpO18ud0MoImh0dHBFdmVudCIpJiYoZ3BhKCksaHBhKCkpO2EuUXYmJnNYKG5wYSk7YS5SdiYmc1goZnBhKCkpO2EuTXE+MCYmY3BhKHt5bDpvcGEsYnVmZmVyU2l6ZTphLk1xfSl9OwpqWT1mdW5jdGlvbihhLGIpe2I9PT12b2lkIDB8fGEuZ2V0QXR0cmlidXRlKCJ2aWV3Qm94Iil8fGEuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IixgMCAwICR7Yn0gJHtifWApO2Euc2V0QXR0cmlidXRlKCJmb2N1c2FibGUiLCJmYWxzZSIpO2Euc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKTtiPV8ueCgia2lsbHN3aXRjaF9yZW1vdmVfaWNvbl9maWxsX2NvbG9yIik7YS5nZXRBdHRyaWJ1dGUoImZpbGwiKSE9PSJjdXJyZW50Y29sb3IiJiZhLmdldEF0dHJpYnV0ZSgiZmlsbCIpIT09ImN1cnJlbnRDb2xvciJ8fGJ8fGEucmVtb3ZlQXR0cmlidXRlKCJmaWxsIik7dHJ5e2Euc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsYS5zdHlsZS5kaXNwbGF5PSJpbmhlcml0IixhLnN0eWxlLndpZHRoPSIxMDAlIixhLnN0eWxlLmhlaWdodD0iMTAwJSJ9Y2F0Y2goYyl7aVkoe2Vycm9yOmM/LnRvU3RyaW5nP2MudG9TdHJpbmcoKToiIn0pO3RyeXthLnN0eWxlLmNzc1RleHQ9InBvaW50ZXItZXZlbnRzOiBub25lOyBkaXNwbGF5OiBpbmhlcml0OyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyJ9Y2F0Y2goZCl7aVkoe2Vycm9yOmQ/LnRvU3RyaW5nPwpkLnRvU3RyaW5nKCk6IiJ9KX19cmV0dXJuIGF9OwpxcGE9ZnVuY3Rpb24oYSl7aWYoXy54KCJ3aWxfaWNvbnNfY2FjaGVfcHVyZ2Vfa2lsbHN3aXRjaCIpKXJldHVybiExO3RyeXt2YXIgYj1fLnUubG9jYWxTdG9yYWdlfWNhdGNoKGUpe3JldHVybiExfWlmKCFifHwhYS5CKXJldHVybiExO3ZhciBjPWU9Pnt0cnl7Yj8uc2V0SXRlbSgieXQtaWNvbnMtbGFzdC1wdXJnZWQiLGUudG9TdHJpbmcoKSl9Y2F0Y2goZil7aVkoe2Vycm9yOmY/LnRvU3RyaW5nP2YudG9TdHJpbmcoKToiIn0pfX0sZD1OdW1iZXIoYi5nZXRJdGVtKCJ5dC1pY29ucy1sYXN0LXB1cmdlZCIpKTtpZighZClyZXR1cm4gZD1uZXcgRGF0ZSxkPWQuc2V0RGF0ZShkLmdldERhdGUoKS1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqOTArMSkpLGMoZCksITE7aWYoZnVuY3Rpb24oZSxmKXtlPW5ldyBEYXRlKGUpO2Y9bmV3IERhdGUoZik7cmV0dXJuIGYuZ2V0TW9udGgoKS1lLmdldE1vbnRoKCkrMTIqKGYuZ2V0RnVsbFllYXIoKS1lLmdldEZ1bGxZZWFyKCkpfShkLERhdGUubm93KCkpPAozKXJldHVybiExO3RyeXtyZXR1cm4gXy51LmNhY2hlcy5kZWxldGUoInl0LWljb25zIikudGhlbihlPT57ZSYmYyhEYXRlLm5vdygpKTtyZXR1cm4gZX0pLmNhdGNoKCgpPT4hMSkuZmluYWxseSgoKT0+e2EuSz0hMX0pfWNhdGNoKGUpe3JldHVybiBpWSh7ZXJyb3I6ZT8udG9TdHJpbmc/ZS50b1N0cmluZygpOiIifSksITF9fTsKa1k9YXN5bmMgZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnVybDtpZighcnBhKGMpKXRocm93IEVycm9yKCJkZSIpO3JldHVybiBzcGEoYSxjKS50aGVuKGQ9PmQuY2xvbmUoKS50ZXh0KCkpLnRoZW4oZD0+e3ZhciBlPV8uZ2IoZCk7ZD1iLnNpemU7dmFyIGY9Xy5DZCgiRElWIik7Xy56QShmLGUpO2lmKGYuZmlyc3RFbGVtZW50Q2hpbGQhPT12b2lkIDApZT1mLmZpcnN0RWxlbWVudENoaWxkO2Vsc2UgZm9yKGU9Zi5maXJzdENoaWxkO2UmJmUubm9kZVR5cGUhPTE7KWU9ZS5uZXh0U2libGluZztlPV8uRGQoZSk7ZD1qWShlLGQpO2EuRFtjXT1kLmNsb25lTm9kZSghMCk7ZGVsZXRlIGEuWVtjXTtyZXR1cm4gZH0pLmNhdGNoKCgpPT57fSl9OwpsWT1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4oZSxmKT0+e3ZhciBoPV8uQ2QoIkRJViIpLGs9e2ljb25XaWR0aDpgJHtiLnNpemV9cHhgLGljb25IZWlnaHQ6YCR7Yi5zaXplfXB4YCxqeDoiYmxvY2siLC4uLmYsaWNvbkNvbG9yOmY/Lmljb25Db2xvcj8/ImN1cnJlbnRjb2xvciJ9O2Y9ay5pY29uQ29sb3I7dmFyIGw9ay5hZztrPWB3aWR0aDogJHtrLmljb25XaWR0aH07IGhlaWdodDogJHtrLmljb25IZWlnaHR9OyBkaXNwbGF5OiAke2suanh9O2A7bCYmKGsrPWAgZmlsdGVyOiAke2x9O2ApO2M9PT0wJiYoays9YCBmaWxsOiAke2Z9O2ApO2M9PT0xJiYobD1iLnVybCxrKz1gIC13ZWJraXQtbWFzazogdXJsKCR7bH0pIG5vLXJlcGVhdCBjZW50ZXIgLyBjb3ZlcjsgbWFzazogdXJsKCR7bH0pIG5vLXJlcGVhdCBjZW50ZXIgLyBjb3ZlcjsgYmFja2dyb3VuZC1jb2xvcjogJHtmfWApO2IudnUmJmEuS2s9PT0icnRsIiYmKGsrPSIgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7IHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7Iik7Cmguc2V0QXR0cmlidXRlKCJzdHlsZSIsayk7Yz09PTAmJmQmJmguYXBwZW5kQ2hpbGQoZCk7ZS5hcHBlbmRDaGlsZChoKX19OwpuWT1mdW5jdGlvbihhLGIpe2lmKGIpe2EuY291bnRlcis9MTthPWBfeXQke2EuY291bnRlcn1gO2I9W2IsLi4uYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpXTtmb3IobGV0IGMgb2YgYilpZihjLnRhZ05hbWU9PT0ic3R5bGUiJiZjLnRleHRDb250ZW50KWMudGV4dENvbnRlbnQ9bVkoYy50ZXh0Q29udGVudCxhLCEwKTtlbHNlIGZvcihsZXQgZCBvZiBjLmF0dHJpYnV0ZXMpe2QubmFtZT09PSJpZCImJihkLnZhbHVlKz1hKTtbIm1hc2siLCJmaWxsIiwiY2xpcC1wYXRoIl0uaW5jbHVkZXMoZC5uYW1lKSYmKGQudmFsdWU9bVkoZC52YWx1ZSxhKSk7aWYoZC5uYW1lPT09InN0eWxlIil7Yj1jLnN0eWxlO3RyeXtiLmNzc1RleHQ9bVkoYi5jc3NUZXh0LGEsITApfWNhdGNoKGUpe2lZKHtlcnJvcjplPy50b1N0cmluZz8uKCl8fCIiLGVsOmMub3V0ZXJIVE1MLHN0eWxlOiEhYixjc3NUZXh0OmI/LmNzc1RleHR9KX19ZC5uYW1lPT09InhsaW5rOmhyZWYiJiYoZC52YWx1ZT1kLnZhbHVlLnJlcGxhY2UoLyMoLiopLywKYCMkMSR7YX1gKSl9fX07bVk9ZnVuY3Rpb24oYSxiLGM9ITEpe3ZhciBkPS91cmxcKFsiJ10/IyguKj8pWyInXT9cKS87YyYmKGQ9L3VybFwoWyInXT8jKC4qPylbIiddP1wpL2cpO3JldHVybiBhLnJlcGxhY2UoZCxgdXJsKCMkMSR7Yn0pYCl9O2lZPWZ1bmN0aW9uKGEpe18uSXAobmV3IF8uWGooIkVycm9yIGluIEljb25NYW5hZ2VyIixhKSl9O3JwYT1mdW5jdGlvbihhKXtmb3IobGV0IGIgb2YgdHBhKWlmKGEuc3RhcnRzV2l0aChiKSYmYS5lbmRzV2l0aCgiLnN2ZyIpKXJldHVybiEwO3JldHVybiExfTsKc3BhPWFzeW5jIGZ1bmN0aW9uKGEsYil7YS5RYSYmYXdhaXQgdXBhKGEpO3ZhciBjPWEuWVtiXTtpZighYyl7bGV0IGQ9YXN5bmMoKT0+e3ZhciBlPWEuQj9hLlp8fGF3YWl0IGEuVTp2b2lkIDA7cmV0dXJuIGEub2E/YS5nYShiLGUpLmNhdGNoKGEuaGEuYmluZChhLGIsZSkpOmEuaGEoYixlKS5jYXRjaChhLmdhLmJpbmQoYSxiLGUpKX07Yz1hLk1hP25ldyBQcm9taXNlKChlLGYpPT57Xy5ZaigoKT0+e2QoKS50aGVuKGUpLmNhdGNoKGYpfSwxMCl9KTpkKCk7YS5ZW2JdPWN9cmV0dXJuIGMuY2F0Y2goZD0+e2RlbGV0ZSBhLllbYl07aVkoe2Vycm9yOmQ/LnRvU3RyaW5nP2QudG9TdHJpbmcoKToiIix1cmw6Yn0pO3Rocm93IGQ7fSl9O3VwYT1mdW5jdGlvbihhKXt2YXIgYj1hLnY/LnByb21pc2U7Ynx8KGEudj1uZXcgXy5jcyxiPWEudi5wcm9taXNlLF8udS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PnthLnY/LnJlc29sdmUoKTthLnY9bnVsbH0pKTtyZXR1cm4gYn07CnBZPWFzeW5jIGZ1bmN0aW9uKGEsYil7aWYoYS5JPHZwYSlyZXR1cm4gYS5JKz0xLG9ZKGEsYikuZmluYWxseSgoKT0+ey0tYS5JO2lmKE9iamVjdC5rZXlzKGEubykubGVuZ3RoKXtsZXQgZD1PYmplY3Qua2V5cyhhLm8pWzBdLGU9YS5vW2RdO2RlbGV0ZSBhLm9bZF07ZS5yZXNvbHZlKHBZKGEsZCkpfX0pO3ZhciBjPW5ldyBfLmNzO2Eub1tiXT1jO3JldHVybiBjLnByb21pc2V9O3dwYT1hc3luYyBmdW5jdGlvbihhLGIsYyxkKXtkJiZuZXcgUHJvbWlzZShlPT57Xy5Zaihhc3luYygpPT57YS5vYSYmYXdhaXQgZC5tYXRjaChiKS5jYXRjaCgoKT0+e30pfHxhd2FpdCBkLnB1dChiLGMuY2xvbmUoKSkuY2F0Y2goZj0+e2lZKHtlcnJvcjpmPy50b1N0cmluZz9mLnRvU3RyaW5nKCk6IiIsdXJsOmJ9KX0pO2UoKX0sNTApfSl9OwpvWT1hc3luYyBmdW5jdGlvbihhLGIsYz0yKXtyZXR1cm4gXy51LmZldGNoKGIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIscHJpb3JpdHk6ImxvdyJ9KS50aGVuKGQ9PmQub2s/ZDpQcm9taXNlLnJlamVjdChFcnJvcigiZWVgIitkLnN0YXR1cysiYCIrZC5zdGF0dXNUZXh0KSkpLmNhdGNoKGQ9PntpZihjPjApcmV0dXJuIG9ZKGEsYixjLTEpO3Rocm93IGQ7fSl9OwpyWT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hW2IuaWNvbk5hbWVdfHxbXTthPXZvaWQgMDtmb3IobGV0IGggb2YgZSl7YTp7dmFyIGY9Yi5pY29uU2l6ZTtlPWIuaWNvblN0eWxlO2Y9IWZ8fGY9PT1oWzJdO2xldCBrPXFZW2hbMF1dO2lmKGQmJmQhPT1oWzFdfHwhZnx8ZSYmZSE9PWspe2U9ITE7YnJlYWsgYX1pZighYSl7ZT0hMDticmVhayBhfWU9cVlbaFswXV07ZT0hIWIuaWNvblN0eWxlfHxlPT09InlvdXR1YmVfb3V0bGluZSI7Zj1hLnZlcnNpb248PWhbMV07ZT0oISFiLmljb25TaXplfHxoWzJdPT09MjQpJiZlJiZmfWUmJihhPXtuYW1lOmIuaWNvbk5hbWUsc3R5bGU6cVlbaFswXV0sc2l6ZTpoWzJdLHZlcnNpb246aFsxXSx2dTohIWhbM10sdXJsOmMoYi5pY29uTmFtZSxoKX0pfXJldHVybiBhfTtzWT1mdW5jdGlvbihhLGIsYyxkPSExKXtyZXR1cm5gJHthfSR7cVlbY1swXV19JHtkPyJfZXhwZXJpbWVudGFsIjoiIn0vJHtifS92JHtjWzFdfS8ke2NbMl19cHguc3ZnYH07CnRZPWZ1bmN0aW9uKGEpe3JldHVybiBfLncoIklOTkVSVFVCRV9DTElFTlRfTkFNRSIpIT09IldFQl9SRU1JWCImJl8udygiSU5ORVJUVUJFX0NMSUVOVF9OQU1FIikhPT0iV0VCX0NSRUFUT1IiPyJib29rbWFyayI6YX07dVk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy54KCJlbmFibGVfd2ViX2RlbGhpX2ljb25zIil8fGI/eHBhW2EudG9VcHBlckNhc2UoKV06eXBhW2EudG9VcHBlckNhc2UoKV19O3pwYT1mdW5jdGlvbihhLGIpe3JldHVybiBzWSgiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kvIixhLGIpfTtBcGE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gc1koImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pLyIsYSxiLCEwKX07d1k9ZnVuY3Rpb24oKXt2WS5pbnN0YW5jZXx8KHZZLmluc3RhbmNlPW5ldyB2WSk7cmV0dXJuIHZZLmluc3RhbmNlfTsKeFk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQnBhLmhhcyhiKXx8Xy53KCJJU19IT01FUEFHRV9DT0xEIil8fF8udygiSVNfUkVTVUxUU19QQUdFX0NPTEQiKXx8Xy53KCJJU19XQVRDSF9QQUdFX0NPTEQiKT9hLnNpZ25hbHMuaW5kZXhPZihiKT49MDohMH07eVk9ZnVuY3Rpb24oYSl7dmFyIGI9ITE7cmV0dXJuKCk9PntifHwoYj0hMCxhKCkpfX07QVk9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZih6WS5oYXMoZCkpXy5DaygpLkdhKGIsYyxlKTtlbHNle2xldCBmPWEuai5nZXQoZCk7ZiYmXy5DaygpLkdhKCgpPT57eFkoYSxkKXx8KGYuaGc/Xy5DaygpLkdhKGIsYyk6Zi5Cbi5wdXNoKCgpPT57Xy5DaygpLkdhKGIsYyl9KSl9LGMsZSl9fTtDcGE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9KCk9PnthLldtKGIpfTtmb3IobGV0IGYgb2YgZClhLmFkZExpc3RlbmVyKGYsZSk7YS5qLnNldChiLHtzaWduYWxzOmMsVng6ITAsaXNJbml0aWFsaXplZDohMSxoZzohMSxCbjpbXX0pO0JZKGEsYil9OwpCWT1mdW5jdGlvbihhLGIpe2lmKCF4WShhLGIpKXt2YXIgYz1hLmouZ2V0KGIpO2lmKGMmJiFjLmhnKXt2YXIgZD0hMSxlPTAsZj0wO2ZvcihsZXQgaCBvZiBjLnNpZ25hbHMpe2xldCBrPSF4WShhLGgpO2lmKHpZLmhhcyhoKSlkPSEwO2Vsc2V7bGV0IGw9YS5qLmdldChoKTtsP2smJiFsLmhnJiYoZisrLGMuaXNJbml0aWFsaXplZHx8bC5Cbi5wdXNoKCgpPT57QlkoYSxiKX0pKTprJiZlKyt9fWMuaXNJbml0aWFsaXplZD0hMDtjLlZ4P2QmJihjLmhnPSEwKTplPT09MCYmZj09PTAmJihjLmhnPSEwKTtpZihjLmhnKWZvcihsZXQgaCBvZiBjLkJuKWgoKX19fTsKRHBhPWZ1bmN0aW9uKGEpe2E9YS5vcGVuUG9wdXBBY3Rpb258fGE7dmFyIGI9YS5wb3B1cFR5cGUsYz1hLnBvcHVwO3N3aXRjaChiKXtjYXNlICJUT0FTVCI6Zm9yKGxldCBkIGluIGMpYy5oYXNPd25Qcm9wZXJ0eShkKSYmXy5wUCgoKT0+Xy5LKF8uVyx7ZGF0YTooKT0+Y30se25vdGlmaWNhdGlvbkFjdGlvblJlbmRlcmVyOkNZfSksYS5kdXJhdGlvbkhpbnRNcyxhLnJldXNlUG9wdXApO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoImZlYCIrYik7fX07CkRZPWZ1bmN0aW9uKGEsYil7dmFyIGM9dVgoYSk7aWYoYyl7dmFyIGQ9dm9pZCAwLGU9Xy5CKGE/LmNvbW1hbmRNZXRhZGF0YSxfLnp3KTtlJiZlLnJvb3RWZSYmKGQ9ZS5yb290VmUpO18ucVAoe2hyZWY6YyxwYXJhbXM6e2l0Y3Q6YS5jbGlja1RyYWNraW5nUGFyYW1zLGF1dG9uYXY6Yj8uYXV0b25hdn0sdGFyZ2V0Ol8uS08oKSYmXy5CKGEsXy5CaGEpPyJfYmxhbmsiOnZvaWQgMCxhazpkLGNsaWNrZWRWaXN1YWxFbGVtZW50OmIuY2xpY2tlZFZpc3VhbEVsZW1lbnQsaW1wbGljaXRHZXN0dXJlVHlwZTpiLmltcGxpY2l0R2VzdHVyZVR5cGUsZWxlbWVudDpiLmV2ZW50Py50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50P2IuZXZlbnQudGFyZ2V0OnZvaWQgMCxlbmRwb2ludDphLHBhcmVudExheWVyOmIucGFyZW50TGF5ZXJ9KX19OwpFcGE9ZnVuY3Rpb24oYSxiKXtpZihfLngoImVtYmVkc19lbmFibGVfZW1jM2RzX3BmcCIpKWlmKEVZKXt2YXIgYz1fLkIoYSxfLkF3KSxkPWM/LnZpZGVvSWQsZT1jPy5wbGF5bGlzdElkO2R8fGU/KGE9e3ZpZGVvX2lkOmR9LGMmJihhLnBsYXllcl9wYXJhbXM9Yy5wbGF5ZXJQYXJhbXMpLGU/KGEubGlzdD1lLEVZLmxvYWRQbGF5bGlzdChhKSk6RVkubG9hZFZpZGVvQnlQbGF5ZXJWYXJzKGEpKTooYz1uZXcgXy5YaigiRW1jM2RzIFdhdGNoRW5kcG9pbnQgbWFsZm9ybWVkIix7Y29tbWFuZDpKU09OLnN0cmluZ2lmeShhKX0pLF8uR3AoYyksRFkoYSxiKSl9ZWxzZSBjPW5ldyBfLlhqKCJFbWMzZHMgV2F0Y2hFbmRwb2ludCByZXNvbHZlZCB3aXRob3V0IHBsYXllckFwaSIse2NvbW1hbmQ6SlNPTi5zdHJpbmdpZnkoYSl9KSxfLkdwKGMpLERZKGEsYik7ZWxzZSBEWShhLGIpfTtGWT1mdW5jdGlvbihhKXtyZXR1cm57cmVzb2x2ZTooYixjPXt9KT0+e2EoYixjLmZvcm18fHt9KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9fX07CkhZPWZ1bmN0aW9uKGEsYil7R1kucHVzaCh7YWN0aW9uOmEsY29udGV4dDpifSl9O0ZwYT1mdW5jdGlvbigpe1RXKEdZLCh7YWN0aW9uOmEsY29udGV4dDpifSk9PntfLnkoKS5yZXNvbHZlKF8uVUQpLnJlc29sdmVDb21tYW5kKGEse2Zvcm06Yn0pfHxKWChhLCJBY3Rpb24gbm90IGhhbmRsZWQgYnkgQ29tbWFuZEhhbmRsZXIiLEhvYSl9KX07CklZPWZ1bmN0aW9uKGEsYixjKXtmb3IobGV0IGYgb2YgaG9hKGEpKUhZKGYsYyk7YT1iLmRhdGE/LmFjdGlvbnM/P1tdO2Zvcih2YXIgZCBvZiBhKUhZKGQsYyk7ZD1iLmRhdGE/LmNvbW1hbmRzPz9bXTtmb3IodmFyIGUgb2YgZClIWShlLGMpOyhlPWIuZGF0YT8uY29tbWFuZCkmJkhZKGUsYyk7dlgoYi5kYXRhPy5vblJlc3BvbnNlUmVjZWl2ZWRBY3Rpb25zPz9bXSxjLnNvdXJjZURhdGEpO3ZYKGIuZGF0YT8ub25SZXNwb25zZVJlY2VpdmVkQ29tbWFuZHM/P1tdLGMuc291cmNlRGF0YSk7dlgoYi5kYXRhPy5vblJlc3BvbnNlUmVjZWl2ZWRFbmRwb2ludHM/P1tdLGMuc291cmNlRGF0YSk7KGI9Yi5kYXRhPy51cGRhdGVGbG93Q29tbWFuZCkmJkhZKGIsYyl9OwpKWT1hc3luYyBmdW5jdGlvbihhLGI9Xy5MaGEpe3ZhciBjPWI7Xy5CKGEsXy5BeSl8fChjPU9iamVjdC5hc3NpZ24oe2NzbjpfLmlxKCl8fCIifSxiKSk7Yj1hd2FpdCBfLnkoKS5yZXNvbHZlKF8uSHkpKCk7aWYoYi5KdyhhKSlyZXR1cm4gYi5RaShhLGMpLnRoZW4oZD0+ZD8uZGF0YT9kLmRhdGE6ZCkudGhlbihkPT57dmFyIGU7KGU9ZD8uZGF0YT8udHJhY2tpbmdQYXJhbXMpJiZfLmx4KF8uaHgoKSxlKTtyZXR1cm57Y29kZTpkJiZkLmVycm9yPyJFUlJPUiI6IlNVQ0NFU1MiLGRhdGE6ZH19KTt0aHJvdyBuZXcgXy5Yaigibm8gcmVxdWVzdCBidWlsZGVyIGZvdW5kIixhKTt9O0hwYT1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmtleXMoYSkuc29tZShiPT5iIGluIEdwYSl9OwpLWT1mdW5jdGlvbihhKXt2YXIgYj1hLmRhdGE/LmNvbnRlbnRzPy5bMF07aWYoIWJ8fCFIcGEoYikpcmV0dXJuIGE7Yj17b3BlblBvcHVwQWN0aW9uOntwb3B1cFR5cGU6IkRJQUxPRyIscG9wdXA6Yn19O2EuZGF0YS5hY3Rpb25zfHwoYS5kYXRhLmFjdGlvbnM9W10pO2EuZGF0YS5hY3Rpb25zLnB1c2goYik7cmV0dXJuIGF9OwpNWT1mdW5jdGlvbihhLGIsYyl7Xy5CKGEsXy5BeSkmJmEuY2xpY2tUcmFja2luZ1BhcmFtcyYmKExZPV8uVXcoYS5jbGlja1RyYWNraW5nUGFyYW1zKSk7cmV0dXJuIEpZKGEsYykudGhlbihkPT57aWYoXy5CKGEsXy5BeSk/LnJlcXVlc3Q9PT0iQ09OVElOVUFUSU9OX1JFUVVFU1RfVFlQRV9SRUVMX1dBVENIX1NFUVVFTkNFIil7dmFyIGU9ZC5kYXRhO2UmJiFlLm9uUmVzcG9uc2VSZWNlaXZlZEFjdGlvbnMmJihlLmVudHJpZXN8fGUucHJldkVudHJpZXMpJiYoZS5lbnRyaWVzPyhlLm9uUmVzcG9uc2VSZWNlaXZlZEFjdGlvbnM9W10sZS5vblJlc3BvbnNlUmVjZWl2ZWRBY3Rpb25zLnB1c2goe2FwcGVuZFJlZWxXYXRjaFNlcXVlbmNlQ29udGludWF0aW9uRW50cmllc0FjdGlvbjp7ZW50cmllczplLmVudHJpZXMsY29udGludWF0aW9uRW5kcG9pbnQ6ZS5jb250aW51YXRpb25FbmRwb2ludH19KSk6ZS5wcmV2RW50cmllcyYmKGUub25SZXNwb25zZVJlY2VpdmVkQWN0aW9ucz1bXSwKZS5vblJlc3BvbnNlUmVjZWl2ZWRBY3Rpb25zLnB1c2goe2FwcGVuZFJlZWxXYXRjaFNlcXVlbmNlQ29udGludWF0aW9uRW50cmllc0FjdGlvbjp7cHJldkVudHJpZXM6ZS5wcmV2RW50cmllcyxwcmV2Q29udGludWF0aW9uRW5kcG9pbnQ6ZS5wcmV2Q29udGludWF0aW9uRW5kcG9pbnR9fSkpKX1pZihfLkIoYSxfLlV6KXx8Xy5CKGEsXy5kTykpYi5jdXJyZW50RGF0YXx8KGIuY3VycmVudERhdGE9Xy5YRD8ucmVzcG9uc2U/P3t9KSxiLnNvdXJjZURhdGF8fChiLnNvdXJjZURhdGE9YSk7SVkoYSxLWShkKSxiKTtfLkIoYSxfLkF5KSYmZD8uZGF0YT8udHJhY2tpbmdQYXJhbXMmJl8ubHgoXy5oeCgpLGQuZGF0YS50cmFja2luZ1BhcmFtcyxMWSk7cmV0dXJuIGR9LGQ9Pnt2YXIgZT1PYmplY3Qua2V5cyhhKS5maWx0ZXIoZj0+Xy5NYShmLCJFbmRwb2ludCIpKVswXTtlJiYoZT1hW2VdLChlPWU/Lm9uRmFpbHVyZUFjdGlvbj8/ZT8ub25GYWlsdXJlQ29tbWFuZCkmJkhZKGUsYikpO3Rocm93IGQ7Cn0pfTtJcGE9ZnVuY3Rpb24oYSxiKXtfLkIoYSxfLmNFKT8ubmF2aWdhdGlvblR5cGU9PT0iQlJPV1NFX05BVklHQVRJT05fVFlQRV9TVEFZX09OX1BBR0UiP01ZKGEsYik6RFkoYSxiKX07SnBhPWZ1bmN0aW9uKGEsYil7aWYoYT0oXy5CKGEsXy5TRCl8fGEpLmNvbW1hbmRzKWZvcihsZXQgYyBvZiBhKV8uS00oYyk/Xy5BSihjLGIuc291cmNlRGF0YSwhMCxiKTpIWShjLGIpfTsKTHBhPWFzeW5jIGZ1bmN0aW9uKGEpe2E9Xy5CKGEsS3BhKTtpZihhPy50ZXh0JiZuYXZpZ2F0b3IuY2xpcGJvYXJkKXRyeXtpZihhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChhLnRleHQpLGEuc3VjY2Vzc0FjdGlvbnMmJmEuc3VjY2Vzc0FjdGlvbnMubGVuZ3RoIT09MClmb3IobGV0IGIgb2YgYS5zdWNjZXNzQWN0aW9ucylfLkFKKGIse30sITEpfWNhdGNoKGIpe2lmKGEuZmFpbHVyZUFjdGlvbnMmJmEuZmFpbHVyZUFjdGlvbnMubGVuZ3RoIT09MClmb3IobGV0IGMgb2YgYS5mYWlsdXJlQWN0aW9ucylfLkFKKGMse30sITEpfX07TXBhPWZ1bmN0aW9uKGEpeygwLF8ud2lhKSh7bm90aWZpY2F0aW9uUHJlZmVyZW5jZVRvZ2dsZUJ1dHRvbjp7dG9nZ2xlQnV0dG9uUmVuZGVyZXI6YS5zb3VyY2VEYXRhfX0sYj0+KHsuLi5iLG5vdGlmaWNhdGlvblByZWZlcmVuY2VUb2dnbGVCdXR0b246e3RvZ2dsZUJ1dHRvblJlbmRlcmVyOmEuc291cmNlRGF0YX19KSl9OwpOcGE9ZnVuY3Rpb24oYSxiKXtNWShhLGIpLnRoZW4oKCk9PntNcGEoYil9KX07UHBhPWZ1bmN0aW9uKGEpe18ucVAoe2hyZWY6Xy5LeihgdGVsOiR7Xy5CKGEsT3BhKS5waG9uZU51bWJlcn1gLFtfLkhxXSkudG9TdHJpbmcoKSxlbmRwb2ludDphfSl9O1JwYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIEpZKGEsYykudGhlbihkPT57SVkoYSxLWShkKSxiKTt2YXIgZT1fLldEKCgpPT5kLmRhdGEucmVkaXJlY3RFbmRwb2ludCk7ZSYmXy5BSihlLGQuZGF0YSwhMSl9LGQ9PntfLnBQKCgpPT5RcGEpO3Rocm93IGQ7fSl9O1RwYT1mdW5jdGlvbihhKXt2YXIgYj1fLkIoYSxTcGEpLGM9YHNtczoke2IucGhvbmVOdW1iZXJzJiZiLnBob25lTnVtYmVyc1swXX1gO2IubWVzc2FnZVRleHQmJihjKz1gPyZib2R5PSR7ZW5jb2RlVVJJKGIubWVzc2FnZVRleHQpfWApO18ucVAoe2hyZWY6Xy5LeihjLFtfLk9xXSkudG9TdHJpbmcoKSxlbmRwb2ludDphfSl9OwpVcGE9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLmhhc2g9PT0iI2RpYWxvZyJ9O05ZPWFzeW5jIGZ1bmN0aW9uKCl7YXdhaXQgXy5GSjtyZXR1cm4gbmV3IFByb21pc2UoYT0+e3ZhciBiPV8ueSgpLnJlc29sdmUoXy5JbihfLnlQKSk7Yj8ucnEoKSYmYi5sZCgpO3dpbmRvdy5sb2NhdGlvbi5oYXNoPT09IiNkaWFsb2ciP18uWU0/c2V0VGltZW91dCgoKT0+e18uJE0oIiIpO2EoKX0sMTAwKTpfLlpNKCkudGhlbigoKT0+e2EoKX0pOmEoKX0pfTsKV3BhPWZ1bmN0aW9uKGEsYixjLGQpe1ZwYShjKTtjPU9ZKGEpO3ZhciBlPW5hdmlnYXRvcixmPV8uZnImJl8udygiTVdFQl9JT1NfTkFUSVZFX1NIQVJFIiksaD17dXJsOmN9O2lmKCghXy5mcnx8ZikmJmUuc2hhcmUmJmMmJmUuY2FuU2hhcmUmJmUuY2FuU2hhcmUoaCkpe2xldCBrPV8uRXgoXy5oeCgpLHt2ZVR5cGU6OTc3MH0pLGw9e291dGJvdW5kQXBwRGF0YTp7b3V0Ym91bmRBcHA6IkRJUkVDVF9TWVNURU1fQUNUSVZJVFlfRElBTE9HIn0sc2hhcmluZ0RhdGE6e3NlcmlhbGl6ZWRTaGFyZUVudGl0eTpkfX07Xy5KTyhrLGwsNyk7ZS5zaGFyZShoKS50aGVuKCgpPT57dFgoayxsLDcpfSkuY2F0Y2gobT0+e20ubmFtZSE9PSJBYm9ydEVycm9yIiYmKF8uSXAobmV3IF8uWGooIlN5c3RlbSBTaGFyZSBQYW5lbCBmYWlsZWQgdG8gb3Blbi4iKSksUFkoYSxiKSl9KX1lbHNlIFBZKGEsYil9OwpWcGE9ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI9Xy5oeCgpO18uRE8oYiwyMTc2MCx2b2lkIDAse2xheWVyOjcscGFyZW50TGF5ZXI6MH0pO18ubHgoYixhLHZvaWQgMCw3KX19O1BZPWZ1bmN0aW9uKGEsYil7dmFyIGM9T1koYSk7Xy5ncnx8Xy5URSgpfHxfLnJQKCk/Xy55KCkucmVzb2x2ZShfLnlQKS5vcGVuRGlhbG9nKHtVbjooKT0+Xy5LKFhwYSx7ZGF0YTphfSl9KTpfLnlOKHtoZWFkZXJUaXRsZToiU2hhcmUiLEdiOigpPT5fLksoImRpdiIse2NsYXNzOiJib3R0b20tc2hlZXQtc2hhcmUtaXRlbSJ9LF8uSyhfLk8se0E6KCk9PmMsdGhlbjpkPT5fLksoUVkse3Nob3J0VXJsOmQsdHJhY2tpbmdQYXJhbXM6UlkoYSl9KX0pLFNZKGEpPy5tYXAoZD0+ZD8uc2hhcmVUYXJnZXRSZW5kZXJlcj9fLksoVFkse2RhdGE6ZC5zaGFyZVRhcmdldFJlbmRlcmVyfSk6bnVsbCkpLEhhOiExLGZvY3VzT25DbG9zZTpiPy5ldmVudD8udGFyZ2V0fSl9OwpTWT1mdW5jdGlvbihhKXtpZihhLmNvbnRlbnRzJiZhLmNvbnRlbnRzWzBdKXJldHVybihhPWEuY29udGVudHNbMF0udGhpcmRQYXJ0eU5ldHdvcmtTZWN0aW9uPy5zaGFyZVRhcmdldENvbnRhaW5lcj8udGhpcmRQYXJ0eVNoYXJlVGFyZ2V0U2VjdGlvblJlbmRlcmVyPy5zaGFyZVRhcmdldHMpJiZhLmxlbmd0aD41P2Euc2xpY2UoMCw1KTphfTtPWT1mdW5jdGlvbihhKXtyZXR1cm4gYS5jb250ZW50cyYmYS5jb250ZW50c1swXT9fLkIoYS5jb250ZW50c1swXS50aGlyZFBhcnR5TmV0d29ya1NlY3Rpb24/LmNvcHlMaW5rQ29udGFpbmVyLFVZKT8uc2hvcnRVcmw6IiJ9O1JZPWZ1bmN0aW9uKGEpe3JldHVybiBfLkIoXy5CKGE/LmNvbnRlbnRzPy5bMF0udGhpcmRQYXJ0eU5ldHdvcmtTZWN0aW9uPy5jb3B5TGlua0NvbnRhaW5lcixVWSk/LmNvcHlCdXR0b24sXy5WTCk/LnRyYWNraW5nUGFyYW1zfTsKWnBhPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5CKGEsXy5aeik/LnNoYXJlUGFuZWxUeXBlLGQ9Xy5CKGEsXy5aeik/LnNlcmlhbGl6ZWRTaGFyZUVudGl0eTtNWShhLGIpLnRoZW4oZT0+e1lwYShlLGIsYyxkKX0pfTtZcGE9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYS5jb2RlPT09IlNVQ0NFU1MiJiZhLmRhdGEpYT1hLmRhdGEsYS5jb250ZW50cyYmYS5jb250ZW50cy51bmlmaWVkU2hhcmVQYW5lbFJlbmRlcmVyJiZjPT09IlNIQVJFX1BBTkVMX1RZUEVfVU5JRklFRF9TSEFSRV9QQU5FTCImJldwYShhLmNvbnRlbnRzLnVuaWZpZWRTaGFyZVBhbmVsUmVuZGVyZXIse2V2ZW50OmI/LmV2ZW50fSxhLnRyYWNraW5nUGFyYW1zLGQpO2Vsc2V7Xy5nRj09PXZvaWQgMCYmKF8uZ0Y9a29hKCkpO2xldCBlPV8uZ0Y/JHBhOmFxYTtfLnBQKCgpPT5lKX19O2JxYT1mdW5jdGlvbihhKXthPWEucGFuZWxJZGVudGlmaWVyfHxhLmlkZW50aWZpZXI/LnRhZztpZighYSl0aHJvdyBFcnJvcigiZ2UiKTtyZXR1cm4gYX07CmRxYT1hc3luYyBmdW5jdGlvbihhLGIpe3ZhciBjPV8uQihhLF8uUVcpO2lmKGMpe3ZhciBkPV8uV0QoKCk9PmI/LmV2ZW50Py5jdXJyZW50VGFyZ2V0fHxiPy5lbGVtZW50KSxlPWJxYShjKTt2YXIgZj1jP2MuZ2xvYmFsQ29uZmlndXJhdGlvbj8uaW5pdGlhbFN0YXRlfHxjLmVuZ2FnZW1lbnRQYW5lbDp2b2lkIDA7aWYoZSl7bGV0IGg9Xy55KCkucmVzb2x2ZShfLmJMKSxrPWF3YWl0IF8ueSgpLnJlc29sdmUoXy5IeSkoKTthd2FpdCBjcWEoaCx7aWRlbnRpZmllcjplLElqOmYsdGFyZ2V0OmR9KTtjLmdsb2JhbENvbmZpZ3VyYXRpb24mJihhPWF3YWl0IGsuUWkoYSksYXdhaXQgVlkoaCx7aWRlbnRpZmllcjplLElqOmE/LmNvbnRlbnQsdG46ITF9KSl9fX07CmVxYT1mdW5jdGlvbihhLGIpe2lmKGE9Xy5FTyh3aW5kb3csYSwibG9naW5Qb3B1cCIsIndpZHRoPTgwMCxoZWlnaHQ9NjAwLHJlc2l6YWJsZT15ZXMsc2Nyb2xsYmFycz15ZXMiKSlIbmEoKCk9PntiKCl9KSxhLm1vdmVUbygoc2NyZWVuLndpZHRoLTgwMCkvMiwoc2NyZWVuLmhlaWdodC02MDApLzIpfTtmcWE9ZnVuY3Rpb24oYSxiKXtfLktPKCk/KChiPXVYKGEpKSYmXy5FTyh3aW5kb3csYiksYS5jbGlja1RyYWNraW5nUGFyYW1zJiZfLnpKKGEuY2xpY2tUcmFja2luZ1BhcmFtcykpOl8udygiSU5ORVJUVUJFX0NMSUVOVF9OQU1FIik9PT0iV0VCX0VNQkVEREVEX1BMQVlFUiI/KGE9dVgoYSkpJiZlcWEoYSwoKT0+e3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0pOkRZKGEsYil9OwpncWE9ZnVuY3Rpb24oYSl7aWYoYS5zb3VyY2VEYXRhLnN1YnNjcmliZUJ1dHRvblJlbmRlcmVyPy5jaGFubmVsSWQpKDAsXy54UCkoe2NoYW5uZWxJZDphLnNvdXJjZURhdGEuc3Vic2NyaWJlQnV0dG9uUmVuZGVyZXIuY2hhbm5lbElkfSxjPT4oey4uLmMsc3Vic2NyaWJlZDohYS5zb3VyY2VEYXRhLnN1YnNjcmliZUJ1dHRvblJlbmRlcmVyLnN1YnNjcmliZWR9KSk7ZWxzZXt2YXIgYj1fLkIoYS5zb3VyY2VEYXRhLnNlcnZpY2VFbmRwb2ludCxfLkR5KTtiJiYoMCxfLnhQKSh7Y2hhbm5lbElkOmIuY2hhbm5lbElkcz8uWzBdfSxjPT4oey4uLmMsc3Vic2NyaWJlZDohMX0pKX19O1dZPWZ1bmN0aW9uKGEsYixjKXtNWShhLGIsYykudGhlbigoKT0+e2dxYShiKX0pfTsKaHFhPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5CKGEsXy5WRCksZD1jLnVybDtjPWMudGFyZ2V0PT09IlRBUkdFVF9ORVdfV0lORE9XIj8iX2JsYW5rIjoiIjt2YXIgZTthLmNsaWNrVHJhY2tpbmdQYXJhbXMmJihlPXtpdGN0OmEuY2xpY2tUcmFja2luZ1BhcmFtc30pO3ZhciBmPWI/LnNvdXJjZURhdGE/LnBhcmFtcz8udGltZXN0YW1wO2YmJihlPXsuLi5lLHRpbWVzdGFtcDpmfSk7Xy5xUCh7aHJlZjpkLHBhcmFtczplLHRhcmdldDpjLGVuZHBvaW50OmEsYWs6Xy5CKGE/LmNvbW1hbmRNZXRhZGF0YSxfLnp3KT8ucm9vdFZlLGVsZW1lbnQ6Yi5ldmVudD8udGFyZ2V0fSl9O2lxYT1mdW5jdGlvbihhKXt3b2EoXy5CKGEsXy5mY2EpPy5hZGRpdGlvbmFsRGF0YXMpfTsKanFhPWZ1bmN0aW9uKGEpe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJuYXZpZ2F0ZSIsYj0+e3ZhciBjPWIuZGV0YWlsO2MucGFyYW1zfHwoYy5wYXJhbXM9e30pO2I9Yy5wYXJhbXM7dmFyIGQ9Yi5pdGN0O2QmJihfLmh4KCkuQ2YoZCksZGVsZXRlIGIuaXRjdCk7Yj1jLmhyZWY7aWYoIVhZW2JdKXtkPSExO2lmKGIuc3RhcnRzV2l0aCgiaHR0cCIpfHxiLnN0YXJ0c1dpdGgoIi8vIikpe3ZhciBlPWI/Xy5QTShiKS5ob3N0bmFtZXx8d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lOiIiLGY9d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO2lmKGQ9ZSE9PWYpZT1lLnNwbGl0KCIuIikuc2xpY2UoLTIpLGY9Zi5zcGxpdCgiLiIpLnNsaWNlKC0yKSxlLmxlbmd0aCYmZi5sZW5ndGgmJihkPWUuam9pbigiLiIpIT09Zi5qb2luKCIuIikpfVhZW2JdPWR9ZD1YWVtiXTtpZihkKV8uRU8od2luZG93LGIpO2Vsc2V7ZD1hLmdldFdlYlBsYXllckNvbnRleHRDb25maWcoKTthOntpZighYS5nZXRWaWRlb0RhdGEoKS5pc0xpdmUpe2lmKChmPQpjLnBhcmFtcykmJmYudGltZXN0YW1wKXtmPWYudGltZXN0YW1wO2JyZWFrIGF9aWYoIV8ueCgiZW1iZWRzX2VtYzNkc19hbHdheXNfY3VydGltZV9rcyIpJiYoZj0vXmh0dHBzPzpcL1wvd3d3LnlvdXR1YmUuY29tXC93YXRjaFw/dj0oW0EtWmEtejAtOV8tXXsxMX0pLy5leGVjKGMuaHJlZik/LlsxXSkmJmY9PT1hLmdldFZpZGVvRGF0YSgpLnZpZGVvX2lkJiYoZj1hLmdldEN1cnJlbnRUaW1lKCksZj4wKSl7Zj1NYXRoLmZsb29yKGYpLnRvU3RyaW5nKCk7YnJlYWsgYX19Zj12b2lkIDB9ZT0oZT1jLmVsZW1lbnQpP18uVXgoZSk/P3ZvaWQgMDp2b2lkIDA7YTp7aWYoZSl7dmFyIGg9ZS5nZXRBc0pzb24oKTtlPWgudmVUeXBlO2g9aC50cmFja2luZ1BhcmFtcztpZihlKXtlPVN0cmluZyhlKTticmVhayBhfWlmKGgmJihlPV8uRW8oXy5DbyhoKSwyKSkpe2U9ZS50b1N0cmluZygpO2JyZWFrIGF9fWU9dm9pZCAwfWV8fChNYXRoLnJhbmRvbSgpPF8uc2ooImVtYmVkc19sb2dfd2FybmluZ19zYW1wbGVfc2l6ZV9yYXRlIiwKLjAwMSkmJl8uSXAobmV3IF8uWGooIlVzaW5nIGZhbGxiYWNrIFZFIGZvciBlbGVtZW50OiAiLHt0YWdOYW1lOmMuZWxlbWVudD8udGFnTmFtZSxjbGFzc0xpc3Q6Yy5lbGVtZW50Py5jbGFzc0xpc3QudG9TdHJpbmcoKSxkZXRhaWw6Y30pKSxlPSgyMTQyODMpLnRvU3RyaW5nKCkpO2M9e307ZC53aWRnZXRSZWZlcnJlciYmKGMuZW1iZWRzX3dpZGdldF9yZWZlcnJlcj1kLndpZGdldFJlZmVycmVyKTtkLmxvYWRlclVybCYmKGMuZW1iZWRzX3JlZmVycmluZ19ldXJpPWQubG9hZGVyVXJsLnN1YnN0cmluZygwLDEyOCkpO2QuaXNFbWJlZCYmZC5lbWJlZHNJZnJhbWVPcmlnaW5QYXJhbSYmKGMuZW1iZWRzX3JlZmVycmluZ19vcmlnaW49ZC5lbWJlZHNJZnJhbWVPcmlnaW5QYXJhbSk7ZC5pc0VtYmVkJiZkLmVtYmVkc0ZlYXR1cmUmJihjLmZlYXR1cmU9ZC5lbWJlZHNGZWF0dXJlKTtkPWU7Yj0obmV3IFVSTChiLCJodHRwczovL3d3dy55b3V0dWJlLmNvbSIpKS50b1N0cmluZygpO2YmJgooYj1fLmVqKGIse3RpbWVfY29udGludWU6Zn0pKTtpZihkKXtpZighXy5NaygiY29iYWx0Iikpe2Y9W107ZT0wO2ZvcihoPTA7aDxkLmxlbmd0aDtoKyspe2xldCBrPWQuY2hhckNvZGVBdChoKTtrPjI1NSYmKGZbZSsrXT1rJjI1NSxrPj49OCk7ZltlKytdPWt9ZD1fLnNjKGYsNCl9Yj1fLmVqKGIse3NvdXJjZV92ZV9wYXRoOmR9KX1jJiYoYj1fLmVqKGIsYykpO18uRU8od2luZG93LGIpfX0pfTsKa3FhPWZ1bmN0aW9uKCl7dmFyIGE9e307YVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9maWxsL2Nsb3NlZF9jYXB0aW9uL3YxMS8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik0zLjAxIDNDMyAzIDMgMyAzLjAxIDNMMyAyMWgxOFYzSDMuMDF6TTExIDExSDkuNXYtLjVoLTJ2M2gyVjEzSDExdjFjMCAuNTUtLjQ1IDEtMSAxSDdjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXYxem03IDBoLTEuNXYtLjVoLTJ2M2gyVjEzSDE4djFjMCAuNTUtLjQ1IDEtMSAxaC0zYy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF2MXoifSkpO2FbImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pL3lvdXR1YmVfZmlsbF9leHBlcmltZW50YWwvY2xvc2VkX2NhcHRpb25zL3YzLzI0cHguc3ZnIl09Cl8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixmaWxsOiJjdXJyZW50Q29sb3IiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTIxIDNIM2EyIDIgMCAwMC0yIDJ2MTRhMiAyIDAgMDAyIDJoMThhMiAyIDAgMDAyLTJWNWEyIDIgMCAwMC0yLTJaTTkuMDM4IDguMDg5Yy42OTcuMTc4IDEuMjk0LjYwNiAxLjczNyAxLjE3NmExIDEgMCAwMS0xLjU3OCAxLjIyOGMtLjIxLS4yNy0uNDQ0LS40MTMtLjY1NC0uNDY3YS44Ni44NiAwIDAwLS42MzIuMDg1Yy0uMjIyLjExOS0uNDUzLjM0Mi0uNjMxLjY4NEEyLjY0IDIuNjQgMCAwMDcgMTJhMi42NCAyLjY0IDAgMDAuMjgxIDEuMjA1Yy4xNzcuMzQyLjQwOC41NjUuNjMuNjg0YS44Ni44NiAwIDAwLjYzMi4wODVjLjIwOS0uMDU0LjQ0NC0uMTk3LjY1NC0uNDY3YTEgMSAwIDAxMS41NzggMS4yMjhjLS40NDMuNTctMS4wNC45OTgtMS43MzcgMS4xNzZhMi44NiAyLjg2IDAgMDEtMi4wNjYtLjI1N2MtLjYzMS0uMzM2LTEuMTMxLS44ODEtMS40NjYtMS41MjZBNC42IDQuNiAwIDAxNSAxMmMtLjAwNC0uNzQuMTctMS40Ny41MDYtMi4xMjguMzM2LS42NDUuODM1LTEuMTkgMS40NjYtMS41MjZhMi44NiAyLjg2IDAgMDEyLjA2Ni0uMjU3Wm04IDBjLjY5Ny4xNzggMS4yOTQuNjA2IDEuNzM3IDEuMTc2YTEgMSAwIDAxLTEuNTc4IDEuMjI4Yy0uMjEtLjI3LS40NDQtLjQxMy0uNjU0LS40NjdhLjg2Ljg2IDAgMDAtLjYzMi4wODVjLS4yMjIuMTE5LS40NTMuMzQyLS42MzEuNjg0QTIuNjQgMi42NCAwIDAwMTUgMTJhMi42NCAyLjY0IDAgMDAuMjgxIDEuMjA1Yy4xNzcuMzQyLjQwOC41NjUuNjMuNjg0YS44Ni44NiAwIDAwLjYzMi4wODVjLjIwOS0uMDU0LjQ0NC0uMTk3LjY1NC0uNDY3YTEgMSAwIDAxMS41NzggMS4yMjhjLS40NDMuNTctMS4wNC45OTgtMS43MzcgMS4xNzZhMi44NiAyLjg2IDAgMDEtMi4wNjYtLjI1N2MtLjYzMS0uMzM2LTEuMTMxLS44ODEtMS40NjYtMS41MjZBNC42IDQuNiAwIDAxMTMgMTJjLS4wMDQtLjc0LjE3LTEuNDcuNTA2LTIuMTI4LjMzNi0uNjQ1LjgzNS0xLjE5IDEuNDY2LTEuNTI2YTIuODYgMi44NiAwIDAxMi4wNjYtLjI1N1oifSkpOwphWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX2ZpbGwvcGF1c2UvdjkvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNOSAxOUg3VjVoMlptOC0xNGgtMnYxNGgyWiJ9KSk7YVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9maWxsX2V4cGVyaW1lbnRhbC9wYXVzZS92OS8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixmaWxsOiJjdXJyZW50Q29sb3IiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTYuNSAzQTEuNSAxLjUgMCAwMDUgNC41djE1QTEuNSAxLjUgMCAwMDYuNSAyMWgyYTEuNSAxLjUgMCAwMDEuNS0xLjV2LTE1QTEuNSAxLjUgMCAwMDguNSAzaC0yWm05IDBBMS41IDEuNSAwIDAwMTQgNC41djE1YTEuNSAxLjUgMCAwMDEuNSAxLjVoMmExLjUgMS41IDAgMDAxLjUtMS41di0xNUExLjUgMS41IDAgMDAxNy41IDNoLTJaIn0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9maWxsL3BsYXlfYXJyb3cvdjcvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJtNyA0IDEyIDgtMTIgOFY0eiJ9KSk7YVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9maWxsX2V4cGVyaW1lbnRhbC9wbGF5L3Y0LzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZpbGw6ImN1cnJlbnRDb2xvciIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNNSA0LjYyM1YxOS4zOGExLjUgMS41IDAgMDAyLjI2IDEuMjlMMjIgMTIgNy4yNiAzLjMzQTEuNSAxLjUgMCAwMDUgNC42MjNaIn0pKTthWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX2ZpbGwveW91dHViZV9sb2dvX2ljb24vdjYvMjRweC5zdmciXT0KXy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTIxLjU4IDcuMTlhMi41MSAyLjUxIDAgMDAtMS43Ny0xLjc3QzE4LjI1IDUgMTIgNSAxMiA1cy02LjI1IDAtNy44MS40MmEyLjUxIDIuNTEgMCAwMC0xLjc3IDEuNzdBMjUuODcgMjUuODcgMCAwMDIgMTJhMjUuODcgMjUuODcgMCAwMC40MiA0LjgxIDIuNTEgMi41MSAwIDAwMS43NyAxLjc3QzUuNzUgMTkgMTIgMTkgMTIgMTlzNi4yNSAwIDcuODEtLjQyYTIuNTEgMi41MSAwIDAwMS43Ny0xLjc3QTI1Ljg3IDI1Ljg3IDAgMDAyMiAxMmEyNS44NyAyNS44NyAwIDAwLS40Mi00Ljgxek0xMCAxNC42NXYtNS4zTDE1IDEyeiJ9KSk7YVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9maWxsX2V4cGVyaW1lbnRhbC95b3V0dWJlL3YyLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLApmaWxsOiJjdXJyZW50Q29sb3IiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTEyIDVzLTYuMjQ5IDAtNy44MS40MmMtLjg2LjIzLTEuNTQuOTEtMS43NyAxLjc3QzIgOC43NSAyIDEyIDIgMTJzMCAzLjI1LjQyIDQuODFjLjIzLjg2LjkxIDEuNTQgMS43NyAxLjc3QzUuNzUxIDE5IDEyIDE5IDEyIDE5czYuMjQ5IDAgNy44MS0uNDJjLjg2LS4yMyAxLjU0LS45MSAxLjc3LTEuNzdDMjIgMTUuMjUgMjIgMTIgMjIgMTJzMC0zLjI1LS40Mi00LjgxYy0uMjMtLjg2LS45MS0xLjU0LTEuNzctMS43N0MxOC4yNDkgNSAxMiA1IDEyIDVabS0yIDEwVjlsNSAzLTUgM1oifSkpO2FbImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pL3lvdXR1YmVfb3V0bGluZS9hcnJvd19jaXJjbGUvdjYvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImVuYWJsZS1iYWNrZ3JvdW5kIjoibmV3IDAgMCAyNCAyNCIsCmhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTIyIDEyYzAgNS41MS00LjQ5IDEwLTEwIDEwUzIgMTcuNTEgMiAxMmgxYzAgNC45NiA0LjA0IDkgOSA5czktNC4wNCA5LTktNC4wNC05LTktOUM4LjgxIDMgNS45MiA0LjY0IDQuMjggNy4zOGMtLjExLjE4LS4yMi4zNy0uMzEuNTZMMy45NCA4SDh2MUgxLjk2VjNoMXY0Ljc0Yy4wNC0uMDkuMDctLjE3LjExLS4yNS4xMS0uMjIuMjMtLjQyLjM1LS42M0M1LjIyIDMuODYgOC41MSAyIDEyIDJjNS41MSAwIDEwIDQuNDkgMTAgMTB6In0pKTthWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmVfZXhwZXJpbWVudGFsL2Fycm93X2NvdW50ZXJjbG9ja3dpc2UvdjIvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZmlsbDoiY3VycmVudENvbG9yIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLAp3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMyAyYTEgMSAwIDAwLTEgMXY2aDZhMSAxIDAgMDAwLTJINS43NTdhOCA4IDAgMTEtMS40ODUgNy4wNyAxIDEgMCAxMC0xLjkzMS41MTcgMTAuMDAyIDEwLjAwMiAwIDAwMTguMDkzIDIuNzgyQTkuOTk5IDkuOTk5IDAgMDA0IDZWM2ExIDEgMCAwMC0xLTFaIn0pKTthWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmUvYmVsbC92MTEvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImVuYWJsZS1iYWNrZ3JvdW5kIjoibmV3IDAgMCAyNCAyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMTAgMjBoNGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJ6bTEwLTIuNjVWMTlINHYtMS42NWwyLTEuODh2LTUuMTVDNiA3LjQgNy41NiA1LjEgMTAgNC4zNHYtLjM4YzAtMS40MiAxLjQ5LTIuNSAyLjk5LTEuNzYuNjUuMzIgMS4wMSAxLjAzIDEuMDEgMS43NnYuMzljMi40NC43NSA0IDMuMDYgNCA1Ljk4djUuMTVsMiAxLjg3em0tMSAuNDItMi0xLjg4di01LjQ3YzAtMi40Ny0xLjE5LTQuMzYtMy4xMy01LjEtMS4yNi0uNTMtMi42NC0uNS0zLjg0LjAzQzguMTUgNi4xMSA3IDcuOTkgNyAxMC40MnY1LjQ3bC0yIDEuODhWMThoMTR2LS4yM3oifSkpOwphWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmVfZXhwZXJpbWVudGFsL2JlbGwvdjExLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZpbGw6ImN1cnJlbnRDb2xvciIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMTYgMTlhNCA0IDAgMTEtOCAwSDQuNzY1QzMuMjEgMTkgMi4yNSAxNy4zMDQgMy4wNSAxNS45N2wxLjgwNi0zLjAxQTEgMSAwIDAwNSAxMi40NDZWOGE3IDcgMCAwMTE0IDB2NC40NDZjMCAuMTgxLjA1LjM2LjE0Mi41MTVsMS44MDcgMy4wMWMuOCAxLjMzMy0uMTYxIDMuMDI5LTEuNzE2IDMuMDI5SDE2Wk0xMiAzYTUgNSAwIDAwLTUgNXY0LjQ0NmEzIDMgMCAwMS0uNDI4IDEuNTQzTDQuNzY1IDE3aDE0LjQ2OGwtMS44MDUtMy4wMUEzIDMgMCAwMTE3IDEyLjQ0NVY4YTUgNSAwIDAwLTUtNVptLTIgMTZhMiAyIDAgMTA0IDBoLTRaIn0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lL2Nsb2NrL3YxMC8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik0xNC45NyAxNi45NSAxMCAxMy44N1Y3aDJ2NS43Nmw0LjAzIDIuNDktMS4wNiAxLjd6TTEyIDNjLTQuOTYgMC05IDQuMDQtOSA5czQuMDQgOSA5IDkgOS00LjA0IDktOS00LjA0LTktOS05bTAtMWM1LjUyIDAgMTAgNC40OCAxMCAxMHMtNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTIgNi40OCAyIDEyIDJ6In0pKTthWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmVfZXhwZXJpbWVudGFsL2Nsb2NrL3YxMC8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixmaWxsOiJjdXJyZW50Q29sb3IiLApoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik0xMiAxQzUuOTI1IDEgMSA1LjkyNSAxIDEyczQuOTI1IDExIDExIDExIDExLTQuOTI1IDExLTExUzE4LjA3NSAxIDEyIDFabTAgMmE5IDkgMCAxMTAgMTguMDAxQTkgOSAwIDAxMTIgM1ptMCAzYTEgMSAwIDAwLTEgMXY1LjU2NWwuNDg1LjI5MiAzLjMzIDJhMSAxIDAgMDAxLjAzLTEuNzE0TDEzIDExLjQzNVY3YTEgMSAwIDAwLTEtMVoifSkpO2FbImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pL3lvdXR1YmVfb3V0bGluZS9jbG9zZWRfY2FwdGlvbi92MTEvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImVuYWJsZS1iYWNrZ3JvdW5kIjoibmV3IDAgMCAyNCAyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNNiAxNHYtNGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXYxSDkuNXYtLjVoLTJ2M2gyVjEzSDExdjFjMCAuNTUtLjQ1IDEtMSAxSDdjLS41NSAwLTEtLjQ1LTEtMXptOCAxaDNjLjU1IDAgMS0uNDUgMS0xdi0xaC0xLjV2LjVoLTJ2LTNoMnYuNUgxOHYtMWMwLS41NS0uNDUtMS0xLTFoLTNjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxem02LTExSDR2MTZoMTZWNG0xLTF2MThIM1YzLjAxQzMgMyAzIDMgMy4wMSAzSDIxeiJ9KSk7CmFbImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pL3lvdXR1YmVfb3V0bGluZV9leHBlcmltZW50YWwvY2xvc2VkX2NhcHRpb25zL3YzLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZpbGw6ImN1cnJlbnRDb2xvciIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMjEgM0gzYTIgMiAwIDAwLTIgMnYxNGEyIDIgMCAwMDIgMmgxOGEyIDIgMCAwMDItMlY1YTIgMiAwIDAwLTItMlpNMyAxOVY1aDE4djE0SDNaTTYuOTcyIDguMzQ2Yy0uNjMxLjMzNi0xLjEzMS44ODEtMS40NjYgMS41MjZBNC42IDQuNiAwIDAwNSAxMmMtLjAwNC43NC4xNyAxLjQ3LjUwNiAyLjEyOC4zMzYuNjQ1LjgzNSAxLjE5MSAxLjQ2NiAxLjUyNmEyLjg2IDIuODYgMCAwMDIuMDY2LjI1N2MuNjk3LS4xNzggMS4yOTQtLjYwNiAxLjczNy0xLjE3NmExIDEgMCAwMC0xLjU3OC0xLjIyOGMtLjIxLjI3LS40NDQuNDEzLS42NTQuNDY3YS44Ni44NiAwIDAxLS42MzItLjA4NWMtLjIyMi0uMTE5LS40NTMtLjM0Mi0uNjMxLS42ODRBMi42NCAyLjY0IDAgMDE3IDEyYTIuNiAyLjYgMCAwMS4yODEtMS4yMDVjLjE3Ny0uMzQyLjQwOC0uNTY1LjYzLS42ODRhLjg2Ljg2IDAgMDEuNjMyLS4wODVjLjIwOS4wNTQuNDQ0LjE5Ny42NTQuNDY3YTEgMSAwIDAwMS41NzgtMS4yMjhjLS40NDMtLjU3LTEuMDQtLjk5OC0xLjczNy0xLjE3NmEyLjg2IDIuODYgMCAwMC0yLjA2Ni4yNTdabTggMGMtLjYzMS4zMzYtMS4xMzEuODgxLTEuNDY2IDEuNTI2QTQuNiA0LjYgMCAwMDEzIDEyYy0uMDA0Ljc0LjE3IDEuNDcuNTA2IDIuMTI4LjMzNi42NDUuODM1IDEuMTkxIDEuNDY2IDEuNTI2YTIuODYgMi44NiAwIDAwMi4wNjYuMjU3Yy42OTctLjE3OCAxLjI5NC0uNjA2IDEuNzM3LTEuMTc2YTEgMSAwIDAwLTEuNTc4LTEuMjI4Yy0uMjEuMjctLjQ0NC40MTMtLjY1NC40NjdhLjg2Ljg2IDAgMDEtLjYzMi0uMDg1Yy0uMjIyLS4xMTktLjQ1My0uMzQyLS42MzEtLjY4NEEyLjY0IDIuNjQgMCAwMTE1IDEyYTIuNiAyLjYgMCAwMS4yODEtMS4yMDVjLjE3Ny0uMzQyLjQwOC0uNTY1LjYzLS42ODRhLjg2Ljg2IDAgMDEuNjMyLS4wODVjLjIwOS4wNTQuNDQ0LjE5Ny42NTQuNDY3YTEgMSAwIDAwMS41NzgtMS4yMjhjLS40NDMtLjU3LTEuMDQtLjk5OC0xLjczNy0xLjE3NmEyLjg2IDIuODYgMCAwMC0yLjA2Ni4yNTdaIn0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lL2dlYXIvdjEwLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJlbmFibGUtYmFja2dyb3VuZCI6Im5ldyAwIDAgMjQgMjQiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTEyIDkuNWMxLjM4IDAgMi41IDEuMTIgMi41IDIuNXMtMS4xMiAyLjUtMi41IDIuNS0yLjUtMS4xMi0yLjUtMi41IDEuMTItMi41IDIuNS0yLjVtMC0xYy0xLjkzIDAtMy41IDEuNTctMy41IDMuNXMxLjU3IDMuNSAzLjUgMy41IDMuNS0xLjU3IDMuNS0zLjUtMS41Ny0zLjUtMy41LTMuNXpNMTMuMjIgM2wuNTUgMi4yLjEzLjUxLjUuMThjLjYxLjIzIDEuMTkuNTYgMS43Mi45OGwuNC4zMi41LS4xNCAyLjE3LS42MiAxLjIyIDIuMTEtMS42MyAxLjU5LS4zNy4zNi4wOC41MWMuMDUuMzIuMDguNjQuMDguOThzLS4wMy42Ni0uMDguOThsLS4wOC41MS4zNy4zNiAxLjYzIDEuNTktMS4yMiAyLjExLTIuMTctLjYyLS41LS4xNC0uNC4zMmMtLjUzLjQzLTEuMTEuNzYtMS43Mi45OGwtLjUuMTgtLjEzLjUxLS41NSAyLjI0aC0yLjQ0bC0uNTUtMi4yLS4xMy0uNTEtLjUtLjE4Yy0uNi0uMjMtMS4xOC0uNTYtMS43Mi0uOTlsLS40LS4zMi0uNS4xNC0yLjE3LjYyLTEuMjEtMi4xMiAxLjYzLTEuNTkuMzctLjM2LS4wOC0uNTFjLS4wNS0uMzItLjA4LS42NS0uMDgtLjk4cy4wMy0uNjYuMDgtLjk4bC4wOC0uNTEtLjM3LS4zNkwzLjYgOC41NmwxLjIyLTIuMTEgMi4xNy42Mi41LjE0LjQtLjMyYy41My0uNDQgMS4xMS0uNzcgMS43Mi0uOTlsLjUtLjE4LjEzLS41MS41NC0yLjIxaDIuNDRNMTQgMmgtNGwtLjc0IDIuOTZjLS43My4yNy0xLjQuNjYtMiAxLjE0bC0yLjkyLS44My0yIDMuNDYgMi4xOSAyLjEzYy0uMDYuMzctLjA5Ljc1LS4wOSAxLjE0cy4wMy43Ny4wOSAxLjE0bC0yLjE5IDIuMTMgMiAzLjQ2IDIuOTItLjgzYy42LjQ4IDEuMjcuODcgMiAxLjE0TDEwIDIyaDRsLjc0LTIuOTZjLjczLS4yNyAxLjQtLjY2IDItMS4xNGwyLjkyLjgzIDItMy40Ni0yLjE5LTIuMTNjLjA2LS4zNy4wOS0uNzUuMDktMS4xNHMtLjAzLS43Ny0uMDktMS4xNGwyLjE5LTIuMTMtMi0zLjQ2LTIuOTIuODNjLS42LS40OC0xLjI3LS44Ny0yLTEuMTRMMTQgMnoifSkpOwphWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmVfZXhwZXJpbWVudGFsL2dlYXIvdjEwLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZpbGw6ImN1cnJlbnRDb2xvciIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMTIuODQ0IDFoLTEuNjg3YTIgMiAwIDAwLTEuOTYyIDEuNjE2IDMgMyAwIDAxLTMuOTIgMi4yNjMgMiAyIDAgMDAtMi4zOC44OTFsLS44NDIgMS40NmEyIDIgMCAwMC40MTcgMi41MDcgMyAzIDAgMDEwIDQuNTI1IDIgMiAwIDAwLS40MTcgMi41MDdsLjg0MyAxLjQ2YTIgMiAwIDAwMi4zOC44OTIgMy4wMDEgMy4wMDEgMCAwMTMuOTE4IDIuMjYzQTIgMiAwIDAwMTEuMTU3IDIzaDEuNjg2YTIgMiAwIDAwMS45NjMtMS42MTUgMy4wMDIgMy4wMDIgMCAwMTMuOTItMi4yNjMgMiAyIDAgMDAyLjM4LS44OTJsLjg0Mi0xLjQ2YTIgMiAwIDAwLS40MTgtMi41MDcgMyAzIDAgMDEwLTQuNTI2IDIgMiAwIDAwLjQxOC0yLjUwOGwtLjg0My0xLjQ2YTIgMiAwIDAwLTIuMzgtLjg5MSAzIDMgMCAwMS0zLjkxOS0yLjI2M0EyIDIgMCAwMDEyLjg0NCAxWm0tMS43NjcgMi4zNDdhNiA2IDAgMDAuMDgtLjM0N2gxLjY4N2E0Ljk4IDQuOTggMCAwMDIuNDA3IDMuMzcgNC45OCA0Ljk4IDAgMDA0LjEyMi40bC44NDMgMS40NkE0Ljk4IDQuOTggMCAwMDE4LjUgMTJhNC45OCA0Ljk4IDAgMDAxLjcxNiAzLjc3bC0uODQzIDEuNDZhNC45OCA0Ljk4IDAgMDAtNC4xMjMuNEE0Ljk3OSA0Ljk3OSAwIDAwMTIuODQzIDIxaC0xLjY4NmE0Ljk4IDQuOTggMCAwMC0yLjQwOC0zLjM3MSA0Ljk5OSA0Ljk5OSAwIDAwLTQuMTItLjM5OWwtLjg0NC0xLjQ2QTQuOTc5IDQuOTc5IDAgMDA1LjUgMTJhNC45OCA0Ljk4IDAgMDAtMS43MTUtMy43N2wuODQyLTEuNDU5YTQuOTggNC45OCAwIDAwNC4xMjMtLjM5OSA0Ljk4MSA0Ljk4MSAwIDAwMi4zMjctMy4wMjVaTTE2IDEyYTQgNCAwIDExLTcuOTk5IDAgNCA0IDAgMDE4IDBabS00IDJhMiAyIDAgMTAwLTQgMiAyIDAgMDAwIDRaIn0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lL2xpbmsvdjgvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMTcuNzggMTZjMi4zNSAwIDQuMjYtMi4wMiA0LjI2LTQuNVMyMC4xMyA3IDE3Ljc4IDdIMTN2MWg0Ljc4YzEuOCAwIDMuMjYgMS41NyAzLjI2IDMuNVMxOS41OCAxNSAxNy43OCAxNUgxM3YxaDQuNzh6TTExIDE1SDYuMTljLTEuOCAwLTMuMjYtMS41Ny0zLjI2LTMuNVM0LjM5IDggNi4xOSA4SDExVjdINi4xOWMtMi4zNSAwLTQuMjYgMi4wMi00LjI2IDQuNVMzLjg0IDE2IDYuMTkgMTZIMTF2LTF6bTUtNEg4djFoOHYtMXoifSkpO2FbImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pL3lvdXR1YmVfb3V0bGluZV9leHBlcmltZW50YWwvbGluay92OC8yNHB4LnN2ZyJdPV8uSygic3ZnIiwKe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZmlsbDoiY3VycmVudENvbG9yIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik05IDE4Yy4yMjYgMCAuNDQ4LS4wMTIuNjY3LS4wMzdBOC4wMDEgOC4wMDEgMCAwMTguMDcgMTZIN2E0IDQgMCAxMTAtOGgyYTQgNCAwIDAxNCA0IDIgMiAwIDAwMS42NjggMS45NzNBNS45OTkgNS45OTkgMCAwMDkgNkg3YTYgNiAwIDEwMCAxMmgyWm04IDBhNiA2IDAgMTAwLTEyaC0yYy0uMjI1IDAtLjQ0OC4wMTItLjY2Ny4wMzZBOCA4IDAgMDExNS45MyA4SDE3YTQgNCAwIDExMCA4aC0yYTQgNCAwIDAxLTQtNCAyIDIgMCAwMC0xLjY2OC0xLjk3M0E2IDYgMCAwMDE1IDE4aDJaIn0pKTthWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmUvc2hhcmUvdjEyLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLApoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik0xNSA1LjYzIDIwLjY2IDEyIDE1IDE4LjM3VjE0aC0xYy0zLjk2IDAtNy4xNCAxLTkuNzUgMy4wOSAxLjg0LTQuMDcgNS4xMS02LjQgOS44OS03LjFsLjg2LS4xM1Y1LjYzTTE0IDN2NkM2LjIyIDEwLjEzIDMuMTEgMTUuMzMgMiAyMWMyLjc4LTMuOTcgNi40NC02IDEyLTZ2Nmw4LTktOC05eiJ9KSk7YVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lX2V4cGVyaW1lbnRhbC9zaGFyZS92MTIvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZmlsbDoiY3VycmVudENvbG9yIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik0xMCAzLjE1OFY3LjUxYy01LjQyOC4yMjMtOC4yNyAzLjc1LTguODc1IDExLjE5OS0uMDQuNDg3LS4wNy45NzUtLjA5IDEuNDY0bC0uMDE0LjM5NWMtLjAxNC40NzMuNTc4LjY4NC44OC4zMi4zMDItLjM2OC42MS0uNzMuOTI1LTEuMDg2bC4yNDQtLjI3M2MxLjc5LTEuOTY3IDMtMi42NzcgNC45My0yLjkxN2ExOC4wMTEgMTguMDExIDAgMDEyLS4xMTJ2NC4zNDZhMSAxIDAgMDAxLjY0Ni43NjNsOS44MDUtOC4yOTcgMS41NS0xLjMxLTEuNTUtMS4zMS05LjgwNS04LjI5N0ExIDEgMCAwMDEwIDMuMTU4Wm0yIDYuMjd2LjAwMi00LjExNmw3LjkwNCA2LjY4OEwxMiAxOC42ODl2LTQuMjEybC0yLjAyMy4wMjRjLTEuOTM1LjAyMi0zLjU4Ny4xNy01LjE5NyAxLjAyNGE5IDkgMCAwMC0xLjM0OC44OTNjLjM1NS0xLjk0Ny45MTYtMy4zOSAxLjYzLTQuNDI1IDEuMDYyLTEuNTQxIDIuNjA3LTIuMzg1IDUuMDItMi40ODVMMTIgOS40MjhaIn0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lL3ZvbHVtZV9vZmYvdjQvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJtMy4xNSAzLjg1IDQuMTcgNC4xN0w2LjE2IDlIM3Y2aDMuMTZMMTIgMTkuOTN2LTcuMjJsMi40NSAyLjQ1Yy0uMTUuMDctLjMuMTMtLjQ1LjE4djEuMDRjLjQzLS4xLjgzLS4yNyAxLjItLjQ4bDEuODEgMS44MWMtLjg4LjYyLTEuOSAxLjA0LTMuMDEgMS4ydjEuMDFjMS4zOS0uMTcgMi42Ni0uNzEgMy43My0xLjQ5bDIuNDIgMi40Mi43MS0uNzEtMTctMTctLjcxLjcxek0xMSAxMS43MXY2LjA3TDYuNTIgMTRINHYtNGgyLjUybDEuNS0xLjI3TDExIDExLjcxem0tLjY3LTQuOTItLjcxLS43MUwxMiA0LjA3djQuMzlsLTEtMVY2LjIybC0uNjcuNTd6TTE0IDguNjZWNy42MmMyIC40NiAzLjUgMi4yNCAzLjUgNC4zOCAwIC41OC0uMTMgMS4xMy0uMzMgMS42NGwtLjc5LS43OWMuMDctLjI3LjEyLS41NS4xMi0uODUgMC0xLjU4LTEuMDYtMi45LTIuNS0zLjM0em0wLTMuNThWNC4wN2MzLjk1LjQ5IDcgMy44NSA3IDcuOTMgMCAxLjU2LS40NiAzLjAxLTEuMjMgNC4yNGwtLjczLS43M2MuNjEtMS4wMy45Ni0yLjIzLjk2LTMuNTEgMC0zLjUyLTIuNjEtNi40My02LTYuOTJ6In0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lX2V4cGVyaW1lbnRhbC92b2x1bWVfbXV0ZS92Mi8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixmaWxsOiJjdXJyZW50Q29sb3IiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTExLjQ4NSAyLjE0MyAzLjkxMyA2LjY4N0E2IDYgMCAwMDEgMTEuODMydi4zMzhhNiA2IDAgMDAyLjkxMyA1LjE0NGw3LjU3MiA0LjU0M0ExIDEgMCAwMDEzIDIxVjNhMS4wMDEgMS4wMDEgMCAwMC0xLjUxNS0uODU3Wk00Ljk0MiA4LjQgMTEgNC43Njd2MTQuNDY2bC02LjA1OC0zLjYzNEE0IDQgMCAwMTMgMTIuMTY5di0uMzM4QTQgNCAwIDAxNC45NDIgOC40Wm0xNi4zNTEtLjEwOEwxOSAxMC41ODZsLTIuMjkzLTIuMjkzYTEgMSAwIDEwLTEuNDE0IDEuNDE0TDE3LjU4NiAxMmwtMi4yOTMgMi4yOTNhMSAxIDAgMTAxLjQxNCAxLjQxNEwxOSAxMy40MTRsMi4yOTMgMi4yOTNhMSAxIDAgMTAxLjQxNC0xLjQxNEwyMC40MTQgMTJsMi4yOTMtMi4yOTRhMSAxIDAgMTAtMS40MTQtMS40MTRaIn0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lL3ZvbHVtZV9vbi92My8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik0xNy41IDEyYzAgMi4xNC0xLjUgMy45Mi0zLjUgNC4zOHYtMS4wNGMxLjQ0LS40MyAyLjUtMS43NiAyLjUtMy4zNCAwLTEuNTgtMS4wNi0yLjktMi41LTMuMzRWNy42MmMyIC40NiAzLjUgMi4yNCAzLjUgNC4zOHpNMTIgNC4wN3YxNS44Nkw2LjE2IDE1SDNWOWgzLjE2TDEyIDQuMDd6bS0xIDIuMTVMNi41MiAxMEg0djRoMi41MkwxMSAxNy43OFY2LjIyek0yMSAxMmMwIDQuMDgtMy4wNSA3LjQ0LTcgNy45M3YtMS4wMWMzLjM5LS40OSA2LTMuNCA2LTYuOTJzLTIuNjEtNi40My02LTYuOTJWNC4wN2MzLjk1LjQ5IDcgMy44NSA3IDcuOTN6In0pKTthWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmVfZXhwZXJpbWVudGFsL3ZvbHVtZV9tYXgvdjIvMjRweC5zdmciXT0KXy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZpbGw6ImN1cnJlbnRDb2xvciIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMTEuNDg1IDIuMTQzIDMuOTEzIDYuNjg3QTYgNiAwIDAwMSAxMS44MzJ2LjMzOGE2IDYgMCAwMDIuOTEzIDUuMTQ0bDcuNTcyIDQuNTQzQTEgMSAwIDAwMTMgMjFWM2ExLjAwMSAxLjAwMSAwIDAwLTEuNTE1LS44NTdabTYuODggMi4wNzlhMSAxIDAgMDAtLjAwMSAxLjQxNCA5IDkgMCAwMTAgMTIuNzI4IDEgMSAwIDAwMS40MTQgMS40MTQgMTEgMTEgMCAwMDAtMTUuNTU2IDEgMSAwIDAwLTEuNDEzIDBaTTQuOTQxIDguNDAybC4wMDEtLjAwMkwxMSA0Ljc2N3YxNC40NjZsLTYuMDU4LTMuNjM1QTQgNCAwIDAxMyAxMi4xNjh2LS4zMzdhNCA0IDAgMDExLjk0MS0zLjQyOVpNMTUuNTM1IDcuMDVhMSAxIDAgMDAwIDEuNDE1IDUgNSAwIDAxMCA3LjA3IDEgMSAwIDAwMS40MTUgMS40MTUgNi45OTkgNi45OTkgMCAwMDAtOS45IDEgMSAwIDAwLTEuNDE1IDBaIn0pKTsKYVsiaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2kveW91dHViZV9vdXRsaW5lL3hfbWFyay92NC8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZW5hYmxlLWJhY2tncm91bmQiOiJuZXcgMCAwIDI0IDI0IixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Im0xMi43MSAxMiA4LjE1IDguMTUtLjcxLjcxTDEyIDEyLjcxbC04LjE1IDguMTUtLjcxLS43MUwxMS4yOSAxMiAzLjE1IDMuODVsLjcxLS43MUwxMiAxMS4yOWw4LjE1LTguMTUuNzEuNzFMMTIuNzEgMTJ6In0pKTthWyJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS95b3V0dWJlX291dGxpbmVfZXhwZXJpbWVudGFsL3gvdjExLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZpbGw6ImN1cnJlbnRDb2xvciIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0IiwKd2lkdGg6IjI0In0sXy5LKCJwYXRoIix7ZDoiTTE3LjI5MyA1LjI5MyAxMiAxMC41ODYgNi43MDcgNS4yOTNhMSAxIDAgMTAtMS40MTQgMS40MTRMMTAuNTg2IDEybC01LjI5MyA1LjI5M2ExIDEgMCAwMDEuNDE0IDEuNDE0TDEyIDEzLjQxNGw1LjI5MyA1LjI5M2ExIDEgMCAwMDEuNDE0LTEuNDE0TDEzLjQxNCAxMmw1LjI5My01LjI5M2ExIDEgMCAxMC0xLjQxNC0xLjQxNFoifSkpO2FbImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3lvdXR1YmUvaW1nL2ljb25zL213ZWIveW91dHViZV9maWxsL2VxdWFsaXplci92MS8yNHB4LnN2ZyJdPV8uSygic3ZnIix7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsdmlld0JveDoiLTQgLTQgMjQgMjQiLHZlcnNpb246IjEuMSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwieG1sbnM6eGxpbmsiOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieG1sbnM6eXQiOiJodHRwOi8vd3d3LnlvdXR1YmUuY29tIn0sXy5LKCJnIiwKe2lkOiJ5dG0tZXF1YWxpemVyLWljb24iLGZpbGw6IiNmZmYifSxfLksoInJlY3QiLHtjbGFzczoieXRtLWVxdWFsaXplci1iYXItbGVmdCIseDoiMSIseToiNyIsd2lkdGg6IjQiLGhlaWdodDoiOSJ9KSxfLksoInJlY3QiLHtjbGFzczoieXRtLWVxdWFsaXplci1iYXItbWlkZGxlIix4OiI2Iix5OiIyIix3aWR0aDoiNCIsaGVpZ2h0OiIxNCJ9KSxfLksoInJlY3QiLHtjbGFzczoieXRtLWVxdWFsaXplci1iYXItcmlnaHQiLHg6IjExIix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiIxMiJ9KSkpO2FbImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3lvdXR1YmUvaW1nL2ljb25zL213ZWIveW91dHViZV9maWxsL3Nob3J0c190ZXh0X2xvZ28vdjIvNzJweC5zdmciXT1fLksoInN2ZyIse3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLHZpZXdCb3g6IjAgMCA3MiAyNCIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwieG1sbnM6eGxpbmsiOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIn0sCl8uSygiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDI0LCAyKSJ9LF8uSygicGF0aCIse2Q6Im0uNzMyMTcgMTMuNzg4NiAyLjU3NzMyLS4wNTE1Yy0uMDUxNTUgMi4zMTk1LjM2MDgyIDMuMDQxMiAxLjM0MDIxIDMuMDQxMi45NTM2MSAwIDEuMzQwMi0uNjE4NiAxLjM0MDItMS44ODE0IDAtMS44ODE1LS45NzkzOC0yLjgzNTEtMi4zNzExMy00LjA0NjRDMS40Nzk1OSA4Ljk5NDc5LjU1MTc1OCA3Ljk2Mzg2LjU1MTc1OCA1LjIzMTljMC0yLjYwMzA5IDEuMTU5NzkyLTQuMTQ5NDggNC4xNzUyNjItNC4xNDk0OCAyLjkxMjM3IDAgNC4xMjM3MSAxLjcwMTAzIDMuNzExMzMgNS4yMDYxOWwtMi41NzczMi4xNTQ2M2MuMDUxNTUtMi4zOTY5LS4yMDYxOC0zLjIyMTY0LTEuMjYyODgtMy4yMjE2NC0uOTc5MzggMC0xLjMxNDQ0LjY0NDMzLTEuMzE0NDQgMS44Mjk4OSAwIDEuNzc4MzUuNzQ3NDMgMi4zMTk1OSAyLjM0NTM3IDMuODQwMjEgMS45ODQ1MyAxLjg4MTQgMy4wOTI3OCAyLjk4OTcgMy4wOTI3OCA1LjU0MTIgMCAzLjI0NzUtMS4yNjI4OSA0LjQ4NDYtNC4yMDEwMyA0LjQ4NDYtMy4wNjcwMS4wMjU3LTQuMzA0MTI1LTEuNjIzNy0zLjc4ODY2LTUuMTI4OVpNOS42NzU1NC43NDc0MDVoMi44MzUwNlY0LjU4NzYxYzAgMS4xNTk3OS0uMDUxNiAxLjk1ODc2LS4xNTQ3IDIuOTM4MTRoLjA1MTZjLjU0MTItMS4xNTk3OSAxLjQ0MzMtMS43NTI1NyAyLjYwMzEtMS43NTI1NyAxLjc1MjYgMCAyLjUgMS4yMzcxMSAyLjUgMy4zNTA1MXY5LjUzNjExaC0yLjgzNTFWOS4zMjk4OGMwLTEuMDMwOTMtLjI1NzctMS41NDYzOS0uOTAyLTEuNTQ2MzktLjQ4OTcgMC0uOTI3OS4yODM1LTEuMjM3MS43OTg5N1YxOC42NTk4SDkuNzAxMzFWLjc0NzQwNWgtLjAyNTc3Wk0xOC42NzAzIDEzLjI3MzJ2LTEuODI5OWMwLTQuMDcyMTYgMS4xODU2LTUuNjQ0MzMgMy45OTQ4LTUuNjQ0MzMgMi44MDkzIDAgMy44NjYgMS42MjM3MSAzLjg2NiA1LjY0NDMzdjEuODI5OWMwIDMuOTY5MS0xLjAwNTIgNS41OTI4LTMuOTQzMyA1LjU5MjgtMi45ODk3IDAtMy45MTc1LTEuNjc1My0zLjkxNzUtNS41OTI4Wm01IDEuMDMwOXYtMy45NDMzYzAtMS43MjY3OC0uMjU3OC0yLjYwMzA3LTEuMDgyNS0yLjYwMzA3LS43OTkgMC0xLjA1NjcuODc2MjktMS4wNTY3IDIuNjAzMDd2My45NDMzYzAgMS44MDQxLjI1NzcgMi42Mjg5IDEuMDU2NyAyLjYyODkuODI0NyAwIDEuMDgyNS0uODI0OCAxLjA4MjUtMi42Mjg5Wk0yNy42NjUyIDYuMDMwODloMi4xOTA3bC4yNTc4IDIuNzMxOTZoLjEwM2MuMjgzNi0yLjAxMDMxIDEuMjExNC0zLjAxNTQ2IDIuMzk2OS0zLjAxNTQ2LjE1NDcgMCAuMzA5My4wMjU3Ny41MTU1LjA1MTU0bC0uMTU0NiAzLjI3MzJjLTEuMTg1Ni0uMjU3NzMtMi4xMzkyLS4wNTE1NS0yLjU3NzMuNzIxNjVWMTguNjM0aC0yLjczMlY2LjAzMDg5Wk0zNC44MDQ0IDE1LjY3MDFWOC4yNzMyaC0xLjAzMDlWNi4wNTY3aDEuMTU5OGwuMzYwOC0zLjczNzExaDIuMTEzNFY2LjA1NjdoMS45MzN2Mi4yMTY1aC0xLjgwNDF2Ni45ODQ1YzAgMS4xODU2LjE1NDYgMS40NDMzLjYxODUgMS40NDMzLjQxMjQgMCAuNzczMi0uMDUxNSAxLjEwODMtLjE4MDRsLjM2MDggMS44MDQxYy0uODUwNS40MTI0LTEuOTMzLjU0MTMtMi42MDMxLjU0MTMtMS44Mjk5LS4wMjU4LTIuMjE2NS0uOTc5NC0yLjIxNjUtMy4xOTU5Wk00MC4yNjgyIDE0LjgxOTZsMi4zOTY5LS4wNTE1Yy0uMTI4OSAxLjM5MTcuMzYwOCAyLjE5MDcgMS4yMTEzIDIuMTkwNy43MjE3IDAgMS4xMzQxLS40NjM5IDEuMTM0MS0xLjEwODMgMC0uODc2My0uNzk5LTEuNDY5LTIuMTY1LTIuNS0xLjYyMzctMS4yMzcxLTIuNjAzMS0yLjE2NDktMi42MDMxLTQuMjAxIDAtMi4yNDIyNyAxLjE4NTYtMy4zMjQ3NCAzLjYzNC0zLjMyNDc0IDIuNjAzMSAwIDMuNjM0MSAxLjI4ODY2IDMuNDI3OSA0LjM1NTY0bC0yLjM5NjkuMTAzMWMtLjAyNTgtMS45MDcxOS0uMjgzNS0yLjQ0ODQzLTEuMDgyNS0yLjQ0ODQzLS43NzMyIDAtMS4xMDgzLjM4NjYtMS4xMDgzIDEuMDgyNDcgMCAuOTc5MzguNTY3MSAxLjQ0MzI2IDEuNDk0OSAyLjExMzM2IDIuMjE2NSAxLjY0OTUgMy4yNDc0IDIuNDc0MyAzLjI0NzQgNC41MzYxIDAgMi4yNjgxLTEuMjg4NyAzLjQwMjEtMy43MzcxIDMuNDAyMS0yLjc4MzUtLjAyNTgtMy44MTQ0LTEuNTQ2NC0zLjQ1MzYtNC4xNDk1WiIsCmZpbGw6IiNmZmYifSkpLF8uSygiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDAsIDApIn0sXy5LKCJwYXRoIix7ZDoiTTE4LjQ1IDguODUxYzEuOTA0LTEuMDY2IDIuNTQxLTMuNCAxLjQyMi01LjIxNC0xLjExOS0xLjgxNC0zLjU3LTIuNDItNS40NzUtMS4zNTVMNS41NSA3LjI0N2MtMS4yOS43MjItMi4wNDkgMi4wNjktMS45NjggMy40OTEuMDgxIDEuNDIzLjk4OSAyLjY4MyAyLjM1MyAzLjI2OGwuOTQyLjQwNC0xLjMyNy43NDJjLTEuOTA0IDEuMDY2LTIuNTQxIDMuNC0xLjQyMiA1LjIxNCAxLjExOSAxLjgxNCAzLjU3IDIuNDIxIDUuNDc1IDEuMzU1bDguODQ3LTQuOTY1YzEuMjktLjcyMiAyLjA0OS0yLjA2OCAxLjk2OC0zLjQ5LS4wODEtMS40MjMtLjk4OS0yLjY4NC0yLjM1My0zLjI2OWwtLjk0Mi0uNDAzIDEuMzI3LS43NDNaTTEwIDE0LjU2N2EuMjUuMjUgMCAwMC4zNzQuMjE3bDQuNDUtMi41NjdhLjI1LjI1IDAgMDAwLS40MzNsLTQuNDUtMi41NjdhLjI1LjI1IDAgMDAtLjM3NC4yMTZ2NS4xMzRaIiwKImZpbGwtcnVsZSI6ImV2ZW5vZGQiLGZpbGw6IiNmZmYifSkpKTthWyJodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9pY29ucy9td2ViL3lvdXR1YmVfZmlsbC93YXRlcm1hcmsvdjIvMTEwcHguc3ZnIl09Xy5LKCJzdmciLHt3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIix2aWV3Qm94OiIwIDAgMTEwIDI2Iix2ZXJzaW9uOiIxLjEiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInhtbG5zOnhsaW5rIjoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhtbG5zOnl0IjoiaHR0cDovL3d3dy55b3V0dWJlLmNvbSJ9LF8uSygicGF0aCIse2lkOiJ5dHAtc3ZnLXdhdGVybWFyayIsZDoiTSAxNi42ODcwMDYsMC45OTk5ODUyNCBDIDEzLjU1MTA2OSwxLjAzMjc5NzIgNy4wMjQ1MTE0LDEuMTYyNDg1MiA0Ljk5OTUxMjYsMS42ODc0ODUyIGMgLTEuNDk5OTk5MSwwLjQgLTIuNTk5OTk4NCwxLjYgLTIuOTk5OTk4MiwzIC0wLjY5OTk5OTUsMi43IC0wLjY4NzQ5OTUsOC4zMTI0OTk4IC0wLjY4NzQ5OTUsOC4zMTI0OTk4IDAsMCAtMC4wMTI1LDUuNjEyNSAwLjY4NzQ5OTUsOC4zMTI1IDAuMzk5OTk5OCwxLjUgMS41OTk5OTkxLDIuNiAyLjk5OTk5ODIsMyAyLjY5OTk5ODQsMC43IDEzLjQwNjI0MjQsMC42ODc1IDEzLjQwNjI0MjQsMC42ODc1IDAsMCAxMC43MDYyNDMsMC4wMTI1IDEzLjQwNjI0MSwtMC42ODc1IDEuNSwtMC40IDIuNTk5OTk5LC0xLjYgMi45OTk5OTksLTMgMC42OTk5OTksLTIuNyAwLjY4NzQ5OSwtOC4zMTI1IDAuNjg3NDk5LC04LjMxMjUgMCwwIDAuMTEyNSwtNS42MTI0OTk4IC0wLjY4NzQ5OSwtOC4zMTI0OTk4IC0wLjQsLTEuNSAtMS41OTk5OTksLTIuNiAtMi45OTk5OTksLTMgQyAyOS4xMTE5OTgsMC45ODc0ODUyNCAxOC40MDU3NTUsMC45OTk5ODUyNCAxOC40MDU3NTUsMC45OTk5ODUyNCBjIDAsMCAtMC42NzM0MzcsLTAuMDEwOTM4IC0xLjcxODc0OSwwIHogbSA3Mi4yMTg3MDYsMC45MDYyNDk5NiAwLDIxLjI4MTI0OTggMi43ODEyNDgsMCAwLjMxMjUsLTEuMzc1IDAuMDkzNzUsMCBjIDAuMywwLjUgMC43MTg3NSwwLjg4NzUgMS4yMTg3NDksMS4xODc1IDAuNSwwLjMgMS4wODc1LDAuNDA2MjUgMS42ODc0OTksMC40MDYyNSAxLjEsMCAxLjk5OTk5OSwtMC40OTM3NSAyLjQ5OTk5OSwtMS41OTM3NSAwLjUsLTEuMSAwLjgxMjQ5OSwtMi43MDYyNSAwLjgxMjQ5OSwtNC45MDYyNSBsIDAsLTIuNDA2MjUgYyAwLC0xLjYgLTAuMTEyNSwtMi45MDYyNSAtMC4zMTI0OTksLTMuOTA2MjUgLTAuMiwtMC44OTk5OTk5IC0wLjUsLTEuNTkzNzQ5OSAtMSwtMi4wOTM3NDk5IC0wLjUsLTAuNCAtMS4xMDYyNDksLTAuNTkzNzQ5OSAtMS45MDYyNDksLTAuNTkzNzQ5OSAtMC41OTk5OTksMCAtMS4xODc0OTksMC4xOTk5OTk5IC0xLjY4NzQ5OSwwLjQ5OTk5OTkgLTAuNDk5OTk5LDAuMyAtMS4wMTg3NDksMC44MDYyNSAtMS4yMTg3NDksMS40MDYyNSBsIDAsLTcuOTA2MjQ5OSAtMy4yODEyNDgsMCB6IG0gLTQ5Ljk5OTk3LDAuNzgxMjUgMy45MDYyNDgsMTMuOTA2MjQ5OCAwLjE4NzUsNi43MTg3NSAzLjMxMjQ5OCwwIDAsLTYuNzE4NzUgMy44NzQ5OTcsLTEzLjkwNjI0OTggLTMuMzc0OTk4LDAgLTEuNDA2MjQ5LDYuMzEyNDk5OSBjIC0wLjQsMS44OTk5OTk5IC0wLjcxMjQ5OSwzLjE5OTk5OTkgLTAuODEyNDk5LDMuOTk5OTk5OSBsIC0wLjA5Mzc1LDAgYyAtMC4yLC0xLjEgLTAuNTEyNSwtMi40IC0wLjgxMjUsLTMuOTk5OTk5OSBsIC0xLjM3NDk5OSwtNi4zMTI0OTk5IC0zLjQwNjI0OCwwIHogbSAyOS41OTM3MzIsMCAwLDIuNzE4NzUgMy40MDYyNDgsMCAwLDE3LjkwNjI0OTggMy4yODEyNDgsMCAwLC0xNy45MDYyNDk4IDMuNDA2MjQ4LDAgYyAwLDAgMC4wMDYyLC0yLjcxODc1IC0wLjA5Mzc1LC0yLjcxODc1IGwgLTkuOTk5OTk0LDAgeiBtIC01My40OTk5NjcsNS4xMjUgOC45MDYyNDQsNS4xODc0OTk4IC04LjkwNjI0NCw1LjA5Mzc1IDAsLTEwLjI4MTI0OTggeiBtIDg5LjQwNjE5MywwLjA5Mzc1IGMgLTEuNywwIC0yLjg5Mzc1LDAuNTkzNzQ5OSAtMy41OTM3NSwxLjU5Mzc0OTkgLTAuNjk5OTksMC45OTk5OTk5IC0wLjk5OTk5NSwyLjYwNjI0OTkgLTAuOTk5OTk1LDQuOTA2MjQ5OSBsIDAsMi41OTM3NSBjIDAsMi4yIDAuMzAwMDA1LDMuOTA2MjUgMC45OTk5OTUsNC45MDYyNSAwLjcsMS4xIDEuOCwxLjU5Mzc1IDMuNSwxLjU5Mzc1IDEuNCwwIDIuMzg3NSwtMC4zIDMuMTg3NSwtMSAwLjcsLTAuNyAxLjA5Mzc1LC0xLjY5Mzc1IDEuMDkzNzUsLTMuMDkzNzUgbCAwLC0wLjUgLTIuOTA2MjUsLTAuMjE4NzUgYyAwLDEgLTAuMDgxMiwxLjYgLTAuMjgxMjUsMiAtMC4xLDAuNCAtMC41LDAuNjI1IC0xLDAuNjI1IC0wLjMsMCAtMC42MTI1LC0wLjExMjUgLTAuODEyNSwtMC4zMTI1IC0wLjIsLTAuMyAtMC4zMDYyNSwtMC41OTM3NSAtMC40MDYyNSwtMS4wOTM3NSAtMC4xLC0wLjUgLTAuMDkzNywtMS4yMTg3NSAtMC4wOTM3LC0yLjIxODc1IGwgMCwtMC43ODEyNSA1LjcxODc1LC0wLjA5Mzc1IDAsLTIuNjI1IGMgMCwtMS42IC0wLjEwNjI1LC0yLjc4NzUgLTAuNDA2MjUsLTMuNjg3NSAtMC4yLC0wLjg5OTk5OTkgLTAuNzEyNSwtMS41OTk5OTk5IC0xLjMxMjUsLTEuOTk5OTk5OSAtMC43LC0wLjQgLTEuNDg3NSwtMC41OTM3NDk5IC0yLjY4NzUsLTAuNTkzNzQ5OSB6IG0gLTUwLjQ5OTk2NywwLjA5Mzc1IGMgLTEuMDk5OTk5LDAgLTIuMDE4NzQ5LDAuMTg3NDk5OSAtMi43MTg3NDgsMC42ODc0OTk5IC0wLjcsMC40IC0xLjIsMS4xMjUgLTEuNDk5OTk5LDIuMTI0OTk5OSAtMC4zLDEgLTAuNSwyLjI3NSAtMC41LDMuODc1IGwgMCwyLjIxODc1IGMgMCwxLjUgMC4xMDYyNSwyLjc4MTI1IDAuNDA2MjUsMy43ODEyNSAwLjIsMC45IDAuNzA2MjQ5LDEuNjI1IDEuNDA2MjQ5LDIuMTI1IDAuNjk5OTk5LDAuNSAxLjcxMjQ5OSwwLjY4MTI1IDIuODEyNDk4LDAuNzgxMjUgMS4xOTk5OTksMCAyLjA4MTI0OSwtMC4yODc1IDIuNzgxMjQ5LC0wLjY4NzUgMC42OTk5OTksLTAuNCAxLjA5OTk5OSwtMS4wOTM3NSAxLjQ5OTk5OSwtMi4wOTM3NSAwLjM5OTk5OSwtMSAwLjQ5OTk5OSwtMi4zMDYyNSAwLjQ5OTk5OSwtMy45MDYyNSBsIDAsLTIuMjE4NzUgYyAwLC0xLjYgLTAuMiwtMi44NzUgLTAuNDk5OTk5LC0zLjg3NSAtMC4zLC0wLjg5OTk5OTkgLTAuOCwtMS42MjQ5OTk5IC0xLjQ5OTk5OSwtMi4xMjQ5OTk5IC0wLjcsLTAuNSAtMS41ODc1LC0wLjY4NzQ5OTkgLTIuNjg3NDk5LC0wLjY4NzQ5OTkgeiBtIDEyLjE4NzQ5MywwLjA5Mzc1IDAsMTEuOTA2MjQ5OCBjIC0wLjEsMC4zIC0wLjI5Mzc1LDAuNDg3NSAtMC41OTM3NSwwLjY4NzUgLTAuMiwwLjIgLTAuNTEyNSwwLjMxMjUgLTAuODEyNDk5LDAuMzEyNSAtMC4zLDAgLTAuNTg3NSwtMC4xMDYyNSAtMC42ODc1LC0wLjQwNjI1IC0wLjEsLTAuMyAtMC4xODc1LC0wLjcwNjI1IC0wLjE4NzUsLTEuNDA2MjUgbCAwLC0xMC45OTk5OTk4IC0zLjQwNjI0OCwwIDAsMTEuMjE4NzQ5OCBjIDAsMS40IDAuMTg3NSwyLjM5Mzc1IDAuNjg3NSwzLjA5Mzc1IDAuNDk5OTk5LDAuNyAxLjIxODc0OSwxIDIuMjE4NzQ4LDEgMS40LDAgMi40ODc0OTksLTAuNjkzNzUgMy4xODc0OTksLTIuMDkzNzUgbCAwLjA5Mzc1LDAgMC4zMTI1LDEuNzgxMjUgMi41OTM3NDksMCAwLC0xNC45OTk5OTk4IGMgMCwwIC0zLjQwNjI0OCwwLjAwNjIgLTMuNDA2MjQ4LC0wLjA5Mzc1IHogbSAxNy4zMTI0ODksMCAwLDExLjkwNjI0OTggYyAtMC4xLDAuMyAtMC4yOTM3NDksMC40ODc1IC0wLjU5Mzc0OSwwLjY4NzUgLTAuMiwwLjIgLTAuNTEyNSwwLjMxMjUgLTAuODEyNSwwLjMxMjUgLTAuMywwIC0wLjU4NzQ5OSwtMC4xMDYyNSAtMC42ODc0OTksLTAuNDA2MjUgLTAuMSwtMC4zIC0wLjIxODc1LC0wLjcwNjI1IC0wLjIxODc1LC0xLjQwNjI1IGwgMCwtMTAuOTk5OTk5OCAtMy40MDYyNDgsMCAwLDExLjIxODc0OTggYyAwLDEuNCAwLjIxODc1LDIuMzkzNzUgMC43MTg3NDksMy4wOTM3NSAwLjUsMC43IDEuMTg3NSwxIDIuMTg3NDk5LDEgMS4zOTk5OTksMCAyLjUxODc0OSwtMC42OTM3NSAzLjIxODc0OCwtMi4wOTM3NSBsIDAuMDkzNzUsMCAwLjI4MTI1LDEuNzgxMjUgMi42MjQ5OTgsMCAwLC0xNC45OTk5OTk4IGMgMCwwIC0zLjQwNjI0OCwwLjAwNjIgLTMuNDA2MjQ4LC0wLjA5Mzc1IHogbSAyMC45MDYyMzUsMi4wOTM3NDk4IGMgMC40LDAgMC41ODEyNSwwLjExMjUgMC43ODEyNSwwLjMxMjUgMC4yLDAuMyAwLjMwNjI1LDAuNTkzNzUgMC40MDYyNSwxLjA5Mzc1IDAuMSwwLjUgMC4wOTM3LDEuMjE4NzUgMC4wOTM3LDIuMjE4NzUgbCAwLDEuMDkzNzUgLTIuNSwwIDAsLTEuMDkzNzUgYyAwLC0xIC0wLjAwNiwtMS43MTg3NSAwLjA5MzcsLTIuMjE4NzUgMCwtMC40IDAuMTEyNSwtMC44IDAuMzEyNSwtMSAwLjIsLTAuMyAwLjUxMjUsLTAuNDA2MjUgMC44MTI1LC0wLjQwNjI1IHogbSAtNTAuNDk5OTY3LDAuMTI1IGMgMC41LDAgMC44LDAuMTg3NSAxLDAuNjg3NSAwLjE5OTk5OSwwLjUgMC4yODEyNDksMS4zMDYyNSAwLjI4MTI0OSwyLjQwNjI1IGwgMCw0LjY4NzUgYyAwLDEuMSAtMC4wODEyNSwxLjkwNjI1IC0wLjI4MTI0OSwyLjQwNjI1IC0wLjIsMC41IC0wLjUsMC42ODc1IC0xLDAuNjg3NSAtMC41LDAgLTAuNzk5OTk5LC0wLjE4NzUgLTAuOTk5OTk5LC0wLjY4NzUgLTAuMiwtMC41IC0wLjMxMjUsLTEuMzA2MjUgLTAuMzEyNSwtMi40MDYyNSBsIDAsLTQuNjg3NSBjIDAsLTEuMSAwLjExMjUsLTEuOTA2MjUgMC4zMTI1LC0yLjQwNjI1IDAuMiwtMC41IDAuNDk5OTk5LC0wLjY4NzUgMC45OTk5OTksLTAuNjg3NSB6IG0gMzkuNjg3NDc2LDAuMDkzNzUgYyAwLjMsMCAwLjYxMjUsMC4xMDYyNSAwLjgxMjUsMC40MDYyNSAwLjIsMC4zIDAuMjc1LDAuNjc1IDAuMzc1LDEuMzc1IDAuMSwwLjYgMC4xMjQ5OTksMS41MTg3NSAwLjEyNDk5OSwyLjcxODc1IGwgMC4wOTM3NSwxLjkwNjI1IGMgMCwxLjEgMC4wMDYyLDEuOTkzNzUgLTAuMDkzNzUsMi41OTM3NSAtMC4xLDAuNiAtMC4xOTk5OTksMS4wODEyNSAtMC40OTk5OTksMS4yODEyNSAtMC4yLDAuMyAtMC41MDYyNSwwLjQwNjI1IC0wLjkwNjI1LDAuNDA2MjUgLTAuMywwIC0wLjUxMjQ5OSwtMC4wODc1IC0wLjgxMjQ5OSwtMC4xODc1IC0wLjIsLTAuMSAtMC4zOTM3NSwtMC4yOTM3NSAtMC41OTM3NSwtMC41OTM3NSBsIDAsLTguNSBjIDAuMSwtMC40IDAuMjkzNzUsLTAuNyAwLjU5Mzc1LC0xIDAuMywtMC4zIDAuNjA2MjQ5LC0wLjQwNjI1IDAuOTA2MjQ5LC0wLjQwNjI1IHoiLApjbGFzczoieXRwLXN2Zy1maWxsIixmaWxsOiIjZmZmIn0pKTthWyJodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9pY29ucy9td2ViL3lvdXR1YmVfZmlsbC95b3V0dWJlX3Nob3J0c19icmFuZF8yNC92Mi8yNHB4LnN2ZyJdPV8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoiMjQiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCJ9LF8uSygicGF0aCIse2Q6Im0xOS40NSwzLjg4YzEuMTIsMS44Mi40OCw0LjE1LTEuNDIsNS4yMmwtMS4zMi43NC45NC40MWMxLjM2LjU4LDIuMjcsMS44NSwyLjM1LDMuMjcuMDgsMS40My0uNjgsMi43Ny0xLjk3LDMuNDlsLTgsNC40N2MtMS45MSwxLjA2LTQuMzUuNDYtNS40OC0xLjM1LTEuMTItMS44Mi0uNDgtNC4xNSwxLjQyLTUuMjJsMS4zMy0uNzQtLjk0LS40MWMtMS4zNi0uNTgtMi4yNy0xLjg1LTIuMzUtMy4yNy0uMDgtMS40My42OC0yLjc3LDEuOTctMy40OWw4LTQuNDdjMS45MS0xLjA2LDQuMzUtLjQ2LDUuNDgsMS4zNVoiLApmaWxsOiIjZjAzIn0pLF8uSygicGF0aCIse2Q6Im0xMCwxNWw1LTMtNS0zdjZaIixmaWxsOiIjZmZmIn0pKTthWyJodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9pY29ucy9td2ViL3lvdXR1YmVfZmlsbC95b3V0dWJlL3YyLzI0cHguc3ZnIl09Xy5LKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCA2NyA2MCIsZmlsbDoiIn0sXy5LKCJwYXRoIix7ZDoiTTYzIDE0Ljg3YTcuODg1IDcuODg1IDAgMDAtNS41Ni01LjU2QzUyLjU0IDggMzIuODggOCAzMi44OCA4UzEzLjIzIDggOC4zMiA5LjMxYy0yLjcuNzItNC44MyAyLjg1LTUuNTYgNS41NkMxLjQ1IDE5Ljc3IDEuNDUgMzAgMS40NSAzMHMwIDEwLjIzIDEuMzEgMTUuMTNjLjcyIDIuNyAyLjg1IDQuODMgNS41NiA1LjU2QzEzLjIzIDUyIDMyLjg4IDUyIDMyLjg4IDUyczE5LjY2IDAgMjQuNTYtMS4zMWMyLjctLjcyIDQuODMtMi44NSA1LjU2LTUuNTZDNjQuMzEgNDAuMjMgNjQuMzEgMzAgNjQuMzEgMzBzMC0xMC4yMy0xLjMxLTE1LjEzeiJ9KSwKXy5LKCJwYXRoIix7ZmlsbDoiI0ZGRiIsY2xhc3M6ImxvZ28tYXJyb3ciLGQ6Ik0yNi42IDM5LjQzTDQyLjkzIDMwIDI2LjYgMjAuNTd6In0pKTthWyJodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9pY29ucy9td2ViL3lvdXR1YmVfb3V0bGluZS9mdWxsc2NyZWVuX2V4aXQvdjEvMjRweC5zdmciXT1fLksoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImVuYWJsZS1iYWNrZ3JvdW5kIjoibmV3IDAgMCAyNCAyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMjQifSxfLksoInBhdGgiLHtkOiJNMTAsMTBINlY5aDNWNmgxVjEweiBNMTgsOWgtM1Y2aC0xdjRoNFY5eiBNMTUsMTVoM3YtMWgtNHY0aDFWMTV6IE0xMCwxNEg2djFoM3YzaDFWMTR6In0pKTthWyJodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9pY29ucy9td2ViL3lvdXR1YmVfb3V0bGluZS9mdWxsc2NyZWVuL3YxLzI0cHguc3ZnIl09Cl8uSygic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZW5hYmxlLWJhY2tncm91bmQiOiJuZXcgMCAwIDI0IDI0IixoZWlnaHQ6IjI0Iix2aWV3Qm94OiIwIDAgMjQgMjQiLHdpZHRoOiIyNCJ9LF8uSygicGF0aCIse2Q6Ik03LDExSDZWNmg1djFIN1YxMXogTTE4LDZoLTV2MWg0djRoMVY2eiBNMTgsMTNoLTF2NGgtNHYxaDVWMTN6IE0xMSwxN0g3di00SDZ2NWg1VjE3eiJ9KSk7cmV0dXJuIGF9O2xxYT1mdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUoRW5hKCkpfTttcWE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gc1koImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3lvdXR1YmUvaW1nL2ljb25zL213ZWIvIixhLGIpfTsKY3FhPWFzeW5jIGZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5pZGVudGlmaWVyLGQ9Yi5JaixlPWIuZXh0cmFzLGY9Yi50YXJnZXQsaD1iLlBtO2I9Yi5uQTtkJiZhd2FpdCBWWShhLHtpZGVudGlmaWVyOmMsSWo6ZCx0bjohMSxleHRyYXM6ZSxQbTpofSk7YXdhaXQgYS5pc1Zpc2libGUoYyl8fChhPWF3YWl0IFpvYShhLGMpLF8uWE0oImVuZ2FnZW1lbnQtcGFuZWwtcHVzaCIse2lkZW50aWZpZXI6Yyx3ejphLExKOmYsbkE6Yn0pLGMmJl8ub00oKS5kaXNwYXRjaChfLmtBKHt0eXBlOiJNQUlOX0FQUF9BRERfT1BFTl9FTkdBR0VNRU5UX1BBTkVMIixwYXlsb2FkOnt4ejpjfX0pKSl9O1ZZPWFzeW5jIGZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5pZGVudGlmaWVyLGQ9Yi5JajtiPWIuUG07YyYmKGQmJmEuT20uc2V0KGMsZCksXy5YTSgiZW5nYWdlbWVudC1wYW5lbC11cGRhdGUiLHtpZGVudGlmaWVyOmMsd3o6ZCxQbTpifSkpfTsKdHFhPWZ1bmN0aW9uKGEpe3ZhciBiPV8ueSgpO25xYSgpO18uSnooYix7amE6Xy5MeCxNYjpvcWF9KTtfLkp6KGIse2phOl8ubEYsTWI6Xy53KCJIVE1MX0RJUiIpPT09InJ0bCI/InJ0bCI6Imx0ciJ9KTtfLkp6KGIse2phOl8ua0YsTWI6KCk9PiEwfSk7Xy5KeihiLHtqYTpfLm1PLFBhOllZfSk7Xy5KeihiLHtqYTpfLlhMLFBhOlpZfSk7Xy5KeihiLHtqYTpfLm9PLE1iOmtxYX0pO18uSnooYix7amE6Xy5MRCxNYjpfLnVPfSk7Xy5KeihiLHtqYTpfLmNMLFBhOnBxYX0pO18uSnooYix7amE6Xy5iSSxXYzpfLm9NfSk7Xy5KeihiLHtqYTpfLnlQLE1iOm5ldyBxcWF9KTtfLkp6KGIse2phOl8udlAsTWI6e1Z1OiEwLEN4OiEwfX0pO18uSnooYix7amE6Xy5KSCxXYzooKT0+UHJvbWlzZS5yZXNvbHZlKGEpfSk7Xy5KeihiLHtqYTpfLktILFdjOigpPT4oKT0+YX0pO18uSnooYix7amE6JFksUGE6YVp9KTtfLkp6KGIse2phOl8uYkwsUGE6cnFhfSk7Xy5KeihiLHtqYTpfLk9XLFdjOl8uaHh9KTsKXy5KeihiLHtqYTpfLmJNLE1iOl8uTE99KTtpZihfLngoIndlYl9lbmFibGVfcmVuZGVyZXJfbG9nZ2VyIikpe2xldCBjPW5ldyBEWDtfLk5NKHdpbmRvdywibmF2aWdhdGUiLCgpPT57Yy5hYm9ydCgpfSk7Xy5KeihiLHtqYTpfLkNHLE1iOm5ldyBzcWEoYy5zaWduYWwpfSl9fTtucWE9ZnVuY3Rpb24oKXt2YXIgYT1fLnkoKSxiPWEucmVzb2x2ZShfLkl5KTtfLkd5Lm1hcHBpbmdzLnNldChTVy50b1N0cmluZygpLHt0eXBlOiJtYXBwaW5nIix2YWx1ZTpifSk7Xy5KeihhLHtqYTpfLkh5LE1iOmxxYX0pfTt6WD1mdW5jdGlvbigpe3ZhciBhPXt9LGI9Xy5WdygpO2ImJihhLmRlc3RpbmF0aW9uU2NyZWVuPWIuZ2V0QXNKc29uKCkudmVUeXBlfHx2b2lkIDApO2EubmF2VHlwZT0iU0xJX05BVl9UWVBFX0NPTEQiO2EuYWN0aW9uVHlwZT0iTEFURU5DWV9BQ1RJT05fRU1CRUQiO3JldHVybntuYXZpZ2F0aW9uOmF9fTsKdXFhPWZ1bmN0aW9uKGEsYj17fSl7cmV0dXJue3R5cGU6Mixjb21tYW5kOmEsZm9ybTpiLmZvcm19fTsKXy5iWj1mdW5jdGlvbihhKXtfLkFxKCJlcF9pbml0X2lqcyIpO3RxYShhKTt2YXIgYj1kb2N1bWVudC5ib2R5O2lmKCFiKXRocm93IEVycm9yKCJpZSIpO2I9bmV3IHZxYSh7cm9vdDpiLHBKOl8ueSgpfSk7Yi5pbnN0YWxsKHdxYSk7Yi50cmFuc2l0aW9uKCJpbml0aWFsaXplZCIpO18uQXEoImVwX2luaXRfaWplIik7Xy54KCJlbWJlZHNfdHJhY2luZ19rcyIpfHxwcGEoKTtfLllNPSEwOyhfLk1rKCJpZW1vYmlsZSIpfHxfLk1rKCJ3aW5kb3dzIHBob25lIikmJl8uTWsoImVkZ2UiKSkmJl8uTWsoIjsgdmlydHVhbCIpfHwoWG9hKGEpLG5vYSgpKTtxb2EoYSk7RVk9YTtqcWEoYSk7YT0hXy54KCJtd2ViX2NvbW1hbmRfaGFuZGxlcl9zY3JlZW5fbWFuYWdlcl9raWxsc3dpdGNoIik7Yj1bXy5RVyxfLlV6LF8uQ3ldO0pvYShfLngoIm13ZWJfY29tbWFuZF9oYW5kbGVyX2Rpc2FibGVfYnVpbGRfY29tbWFuZF9wYXlsb2FkX3N0dWIiKT91cWE6dm9pZCAwLGE/Xy5oeCgpOnZvaWQgMCxhLAphLGIpO18uSnooXy55KCkse2phOl8uVUQsTWI6TFguaW5zdGFuY2V9KTtpb2EoKTtGcGEoKX07V1c9W107RG9hPXtnSDoiU0xJX1NUQVRVU19VTktOT1dOIixlSDoiU0xJX1NUQVRVU19TVUNDRVNTIixjSDoiU0xJX1NUQVRVU19GQUlMVVJFIixmSDoiU0xJX1NUQVRVU19USU1FT1VUIixhSDoiU0xJX1NUQVRVU19BQk9SVEVEIixiSDoiU0xJX1NUQVRVU19DQU5DRUxMRUQiLGRIOiJTTElfU1RBVFVTX1JFSkVDVEVEIn07Y1o9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmV2ZW50cz1uZXcgTWFwfWNsZWFyKCl7dGhpcy5ldmVudHMuY2xlYXIoKX19OwpLbmE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLkQ9bmV3IHhxYTt0aGlzLnY9bmV3IGNaO3RoaXMuQj1uZXcgY1o7dGhpcy5vPTA7dGhpcy5mbHVzaEludGVydmFsPTNFNDt0aGlzLmo9bmV3IF8uankodGhpcy5mbHVzaEludGVydmFsKTt0aGlzLmoubGlzdGVuKCJ0aWNrIix0aGlzLmZsdXNoLCExLHRoaXMpfWZsdXNoKCl7aWYodGhpcy5vKXt2YXIgYT17bG9nZ2VkRXZlbnRzOllXKHRoaXMudiksdW5sb2dnZWRFdmVudHM6WVcodGhpcy5CKX07aWYoXy54KCJleHBvcnRfcGxheWVyX3ZlcnNpb25fdG9feXRjb25maWciKSl7dmFyIGI7KGI9Xy53KCJQTEFZRVJfQ0xJRU5UX1ZFUlNJT04iKSk/KGI9Yi5zcGxpdCgiLSIpWzBdLnJlcGxhY2UoL1wuL2csIiIpLGI9aXNOYU4oTnVtYmVyKGIpKT8iMCI6Yik6Yj0iIjt2YXIgYz1fLncoIlBMQVlFUl9DTElFTlRfVkVSU0lPTiIpO2lmKGMpe2M9Yy5zcGxpdCgiLSIpO2xldCBkPSIiO2MubGVuZ3RoPjEmJihkPWNbYy5sZW5ndGgtMV0pO2M9CkpuYShkLnN0YXJ0c1dpdGgoImNhbmFyeV9leHBlcmltZW50Iik/ImNhbmFyeSI6ZC5zdGFydHNXaXRoKCJjYW5hcnlfY29udHJvbCIpPyJjb250cm9sIjoibm9uZSIpfWVsc2UgYz0iQ0xJRU5UX0NBTkFSWV9TVEFURV9VTktOT1dOIjthLmRpbWVuc2lvbnM9e3BsYXllckNsaWVudFZlcnNpb246YixwbGF5ZXJDYW5hcnlTdGF0ZTpjfX10aGlzLkQuZmx1c2goYSk7dGhpcy52LmNsZWFyKCk7dGhpcy5CLmNsZWFyKCk7dGhpcy5vPTA7dGhpcy5qLmVuYWJsZWQmJnRoaXMuai5zdG9wKCl9fX07eHFhPWNsYXNze2ZsdXNoKGEsYil7Xy54KCJlbmFibGVfY2xpZW50X3NsaV9sb2dnaW5nIikmJl8uRXAoInNsaUV2ZW50QmF0Y2giLGEse3NlbmRJc29sYXRlZFBheWxvYWQ6ISFifSl9fTtkWj1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX19OwplWj1jbGFzcyBleHRlbmRzIGRae2dldCBlbnRpdHlNZXRhZGF0YSgpe3JldHVybiB0aGlzLmouZW50aXR5TWV0YWRhdGF9c2V0IGVudGl0eU1ldGFkYXRhKGEpe3RoaXMuai5lbnRpdHlNZXRhZGF0YT1hfX07eXFhPWNsYXNzIGV4dGVuZHMgZFp7bygpe3ZhciBhPVtdO3RoaXMuai52aWRlbyYmYS5wdXNoKHRoaXMuai52aWRlbyk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19fTt6cWE9Y2xhc3MgZXh0ZW5kcyBkWntvKCl7dmFyIGE9W107dGhpcy5qLnZpZGVvJiZhLnB1c2godGhpcy5qLnZpZGVvKTt0aGlzLmoucGxheWxpc3QmJmEucHVzaCh0aGlzLmoucGxheWxpc3QpO3RoaXMuai52aWRlb0l0ZW0mJmEucHVzaCh0aGlzLmoudmlkZW9JdGVtKTt0aGlzLmoucGxheWxpc3RJdGVtJiZhLnB1c2godGhpcy5qLnBsYXlsaXN0SXRlbSk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19fTsKQXFhPWNsYXNzIGV4dGVuZHMgZFp7bygpe3ZhciBhPVtdO3RoaXMuai5sb2NhbEltYWdlRW50aXRpZXMmJmEucHVzaCguLi50aGlzLmoubG9jYWxJbWFnZUVudGl0aWVzKTt0aGlzLmoudmlkZW9Eb3dubG9hZENvbnRleHRFbnRpdHkmJmEucHVzaCh0aGlzLmoudmlkZW9Eb3dubG9hZENvbnRleHRFbnRpdHkpO3JldHVyblsuLi4obmV3IFNldChhKSldfX07QnFhPWNsYXNzIGV4dGVuZHMgZFp7bygpe3ZhciBhPVtdO3RoaXMuai5yZWNvbW1lbmRlZFZpZGVvTWV0YWRhdGEmJmEucHVzaCguLi4obmV3IEFxYSh0aGlzLmoucmVjb21tZW5kZWRWaWRlb01ldGFkYXRhKSkubygpKTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX19O0NxYT1jbGFzcyBleHRlbmRzIGRae28oKXt2YXIgYT1bXTt0aGlzLmoucGxheWJhY2tQb3NpdGlvbiYmYS5wdXNoKHRoaXMuai5wbGF5YmFja1Bvc2l0aW9uKTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX19OwpEcWE9Y2xhc3MgZXh0ZW5kcyBkWntvKCl7dmFyIGE9W107dGhpcy5qLmNyZWF0b3JFbnRpdHkmJmEucHVzaCh0aGlzLmouY3JlYXRvckVudGl0eSk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19fTtmWj0hMTsKRXFhPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMuY291bnRlcj1bMCwwLDAsMF07dGhpcy5vPW5ldyBVaW50OEFycmF5KDE2KTt0aGlzLmo9MTY7aWYoIWZaKXt2YXIgYixjPW5ldyBVaW50OEFycmF5KDI1NiksZD1uZXcgVWludDhBcnJheSgyNTYpO3ZhciBlPTE7Zm9yKGI9MDtiPDI1NjtiKyspY1tlXT1iLGRbYl09ZSxlXj1lPDwxXihlPj43JiYyODMpO2dYPW5ldyBVaW50OEFycmF5KDI1Nik7Y1g9YlgoMjU2KTtkWD1iWCgyNTYpO2VYPWJYKDI1Nik7Zlg9YlgoMjU2KTtmb3IobGV0IGg9MDtoPDI1NjtoKyspe2U9aD9kWzI1NV5jW2hdXTowO2VePWU8PDFeZTw8Ml5lPDwzXmU8PDQ7ZT1lJjI1NV5lPj4+OF45OTtnWFtoXT1lO2I9ZTw8MV4oZT4+NyYmMjgzKTt2YXIgZj1iXmU7Y1hbaF09Yjw8MjR8ZTw8MTZ8ZTw8OHxmO2RYW2hdPWY8PDI0fGNYW2hdPj4+ODtlWFtoXT1lPDwyNHxkWFtoXT4+Pjg7ZlhbaF09ZTw8MjR8ZVhbaF0+Pj44fWZaPQohMH1lPWJYKDQ0KTtmb3IoYz0wO2M8NDtjKyspZVtjXT1hWzQqY108PDI0fGFbNCpjKzFdPDwxNnxhWzQqYysyXTw8OHxhWzQqYyszXTtmb3IoZD0xO2M8NDQ7YysrKWE9ZVtjLTFdLGMlNHx8KGE9KGdYW2E+PjE2JjI1NV1eZCk8PDI0fGdYW2E+PjgmMjU1XTw8MTZ8Z1hbYSYyNTVdPDw4fGdYW2E+Pj4yNF0sZD1kPDwxXihkPj43JiYyODMpKSxlW2NdPWVbYy00XV5hO3RoaXMua2V5PWV9ZW5jcnlwdChhKXt2YXIgYj1hLmxlbmd0aDthPW5ldyBVaW50OEFycmF5KGEuYnVmZmVyLnNsaWNlKGEuYnl0ZU9mZnNldCxhLmJ5dGVPZmZzZXQrYikpO2Zvcih2YXIgYz10aGlzLm8sZD0wO2Q8YiYmdGhpcy5qPDE2OylhW2QrK11ePWNbdGhpcy5qKytdO2Zvcih2YXIgZT1iLShiLWQpJTE2O2Q8ZTspaFgodGhpcyksYVtkKytdXj1jWzBdLGFbZCsrXV49Y1sxXSxhW2QrK11ePWNbMl0sYVtkKytdXj1jWzNdLGFbZCsrXV49Y1s0XSxhW2QrK11ePWNbNV0sYVtkKytdXj1jWzZdLGFbZCsrXV49Y1s3XSwKYVtkKytdXj1jWzhdLGFbZCsrXV49Y1s5XSxhW2QrK11ePWNbMTBdLGFbZCsrXV49Y1sxMV0sYVtkKytdXj1jWzEyXSxhW2QrK11ePWNbMTNdLGFbZCsrXV49Y1sxNF0sYVtkKytdXj1jWzE1XTtpZihkPGIpZm9yKGhYKHRoaXMpLHRoaXMuaj0wO2Q8YjspYVtkKytdXj1jW3RoaXMuaisrXTtyZXR1cm4gYX19O2daPSExO0ZxYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMudj1hO3RoaXMubz1ifWFzeW5jIGVuY3J5cHQoYSxiKXt0cnl7cmV0dXJuIGF3YWl0IE5uYSh0aGlzLGEsYil9Y2F0Y2goYyl7dGhyb3cgXy5JcChjKSxnWj0hMCxjO319fTsKaVo9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5vPWF9ZW5jcnlwdChhLGIpe3RoaXMuanx8KHRoaXMuaj1uZXcgRXFhKHRoaXMubykpO3ZhciBjPXRoaXMuajtmb3IobGV0IGQ9MDtkPDQ7ZCsrKWMuY291bnRlcltkXT1iW2QqNF08PDI0fGJbZCo0KzFdPDwxNnxiW2QqNCsyXTw8OHxiW2QqNCszXTtjLmo9MTY7cmV0dXJuIHRoaXMuai5lbmNyeXB0KGEpfWRlY3J5cHQoYSxiKXtyZXR1cm4gdGhpcy5lbmNyeXB0KGEsYil9fTsKR3FhPWNsYXNze2NvbnN0cnVjdG9yKGEpe2E6e2lmKCFnWiYmIV8uSmwpe2lmKGhaKXt2YXIgYj1oWjticmVhayBhfWhaPXdpbmRvdy5jcnlwdG8/LnN1YnRsZTtpZihoWj8uaW1wb3J0S2V5JiZoWj8uc2lnbiYmaFo/LmVuY3J5cHQpe2I9aFo7YnJlYWsgYX1oWj12b2lkIDB9Yj12b2lkIDB9YiYmKHRoaXMuaj1uZXcgRnFhKGEsYikpO3RoaXMubz1uZXcgaVooYSl9YXN5bmMgZW5jcnlwdChhLGIpe2lmKHRoaXMuail0cnl7cmV0dXJuIGF3YWl0IHRoaXMuai5lbmNyeXB0KGEsYil9Y2F0Y2goYyl7Xy5JcChjKSxnWj0hMCx0aGlzLmo9dm9pZCAwfXJldHVybiB0aGlzLm8uZW5jcnlwdChhLGIpfWRlY3J5cHQoYSxiKXtyZXR1cm4gdGhpcy5lbmNyeXB0KGEsYil9fTsKSHFhPXtJTlZBTElEX0VOQ09ERVJfVkVSU0lPTjoiSW52YWxpZCBlbmNvZGVyIHZlcnNpb24iLEtFWV9DUkVBVElPTl9GQUlMRUQ6IkZhaWxlZCB0byBjcmVhdGUgZW5jb2RlciBrZXkiLFVOS05PV05fREVDT0RFX0VSUk9SOiJGYWlsZWQgdG8gZGVjb2RlIFBFUyBkYXRhIixVTktOT1dOX0VOQ09ERV9FUlJPUjoiRmFpbGVkIHRvIGVuY29kZSBQRVMgZGF0YSIsV1JPTkdfREFUQV9UWVBFOiJFbmNvZGVyIGNhbm5vdCBwcm9jZXNzIHRoZSBkYXRhIHR5cGUifTtpWD1jbGFzcyBleHRlbmRzIF8uWGp7Y29uc3RydWN0b3IoYSxiPXt9KXtzdXBlcihIcWFbYV0se25hbWU6IlBFU0VuY29kZXJFcnJvciIsdHlwZTphLC4uLmJ9KTt0aGlzLnR5cGU9YTt0aGlzLmxldmVsPSJXQVJOSU5HIjtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxpWC5wcm90b3R5cGUpfX07CmpaPWNsYXNze2VuY29kZShhLGIpe3RyeXtyZXR1cm4gdGhpcy52KGEsYil9Y2F0Y2goYyl7algoYyxPbmEpfX1kZWNvZGUoYSxiKXt0cnl7cmV0dXJuIHRoaXMubyhhLGIpfWNhdGNoKGMpe2pYKGMsUG5hKX19fTtJcWE9Y2xhc3MgZXh0ZW5kcyBqWntjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMuaj1hfXYoYSxiKXtiPWtYKGIpO2E9KG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKEpTT04uc3RyaW5naWZ5KGEpKTtyZXR1cm4gdGhpcy5qLmVuY3J5cHQoYSxiKX1vKGEsYil7aWYoIShhIGluc3RhbmNlb2YgVWludDhBcnJheSkpdGhyb3cgbmV3IGlYKCJXUk9OR19EQVRBX1RZUEUiLHtJcDoxfSk7dmFyIGM9bmV3IFRleHREZWNvZGVyO2I9a1goYik7YT10aGlzLmouZGVjcnlwdChhLGIpO3JldHVybiBKU09OLnBhcnNlKGMuZGVjb2RlKGEpKX19OwpRbmE9e2FuaW1hdGlvbkVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJhbmltYXRpb25FbnRpdHkifX0sYWNjb3VudExpbmtTdGF0dXNFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iYWNjb3VudExpbmtTdGF0dXNFbnRpdHkifX0sYXNrU3R1ZGlvR2VuZXJhdGVkRGF0YUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJhc2tTdHVkaW9HZW5lcmF0ZWREYXRhRW50aXR5In19LGJvb2xlYW5FbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iYm9vbGVhbkVudGl0eSJ9fSxidXR0b25FbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iYnV0dG9uRW50aXR5In19LGNhcHRpb25UcmFjazpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJjYXB0aW9uVHJhY2sifX0sCmNoYW5uZWxIYW5kbGU6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iY2hhbm5lbEhhbmRsZSJ9fSxjaGF0TG9hZGluZ1N0YXRlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImNoYXRMb2FkaW5nU3RhdGVFbnRpdHkifX0sYXNrU3R1ZGlvQ29udmVyc2F0aW9uU3VtbWFyeUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJhc2tTdHVkaW9Db252ZXJzYXRpb25TdW1tYXJ5RW50aXR5In19LGNoaXBFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iY2hpcEVudGl0eSJ9fSxjb21tZXJjZUFjcXVpc2l0aW9uQ2xpZW50UGF5bG9hZEVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJjb21tZXJjZUFjcXVpc2l0aW9uQ2xpZW50UGF5bG9hZEVudGl0eSJ9fSwKY29tbWVyY2VDYXJ0TGlzdEVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJjb21tZXJjZUNhcnRMaXN0RW50aXR5In19LGNvbW1lcmNlVG9rZW5CYWxhbmNlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImNvbW1lcmNlVG9rZW5CYWxhbmNlRW50aXR5In19LGNvbXBvc2l0ZVNvdXJjZUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJjb21wb3NpdGVTb3VyY2VFbnRpdHkifX0sbXVsdGl2aWV3U3RhZ2luZ0VudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT1bXTt0aGlzLmouY29tcG9zaXRlU291cmNlS2V5cyYmYS5wdXNoKC4uLnRoaXMuai5jb21wb3NpdGVTb3VyY2VLZXlzKTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX1nZXRUeXBlTmFtZSgpe3JldHVybiJtdWx0aXZpZXdTdGFnaW5nRW50aXR5In19LGNvbnRleHROb3RlRmVlZEVudGl0eVBheWxvYWQ6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iY29udGV4dE5vdGVGZWVkRW50aXR5UGF5bG9hZCJ9fSwKY29udGV4dE5vdGVVc2VyUmF0aW5nRW50aXR5UGF5bG9hZDpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJjb250ZXh0Tm90ZVVzZXJSYXRpbmdFbnRpdHlQYXlsb2FkIn19LGNvbnRpbnVhdGlvblRva2VuRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImNvbnRpbnVhdGlvblRva2VuRW50aXR5In19LGRvd25sb2FkUXVhbGl0eVBpY2tlckVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJkb3dubG9hZFF1YWxpdHlQaWNrZXJFbnRpdHkifX0sZG93bmxvYWRzUGFnZVJlZnJlc2hUb2tlbkVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJkb3dubG9hZHNQYWdlUmVmcmVzaFRva2VuRW50aXR5In19LGRvd25sb2Fkc1BhZ2VWaWV3Q29uZmlndXJhdGlvbkVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJkb3dubG9hZHNQYWdlVmlld0NvbmZpZ3VyYXRpb25FbnRpdHkifX0sCmRvd25sb2FkU3RhdHVzRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImRvd25sb2FkU3RhdHVzRW50aXR5In19LGRpc21pc3NTdGF0ZTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJkaXNtaXNzU3RhdGUifX0sc2Z2QXVkaW9JdGVtQ3VycmVudGx5UGxheWluZ0VudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJzZnZBdWRpb0l0ZW1DdXJyZW50bHlQbGF5aW5nRW50aXR5In19LGVtb2ppRm91bnRhaW5EYXRhRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImVtb2ppRm91bnRhaW5EYXRhRW50aXR5In19LGVtb2ppQ3VzdG9taXphdGlvblNldEVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJlbW9qaUN1c3RvbWl6YXRpb25TZXRFbnRpdHkifX0sCmZha2VDaGFubmVsOmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5hbHRlcm5hdGVDaGFubmVsJiZhLnB1c2godGhpcy5qLmFsdGVybmF0ZUNoYW5uZWwpO3RoaXMuai5hbHRlcm5hdGVDaGFubmVsTGlzdCYmYS5wdXNoKC4uLnRoaXMuai5hbHRlcm5hdGVDaGFubmVsTGlzdCk7dGhpcy5qLm9uZW9mQ2hhbm5lbEVudGl0eSYmYS5wdXNoKHRoaXMuai5vbmVvZkNoYW5uZWxFbnRpdHkpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuImZha2VDaGFubmVsIn19LGZha2VQbGF5bGlzdDpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT1bXTt0aGlzLmouZW50cnlDb2xsZWN0aW9uJiZhLnB1c2godGhpcy5qLmVudHJ5Q29sbGVjdGlvbik7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4iZmFrZVBsYXlsaXN0In19LGZha2VQbGF5bGlzdEVudHJ5Q29sbGVjdGlvbjpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT0KW107dGhpcy5qLnBhcmVudFBsYXlsaXN0JiZhLnB1c2godGhpcy5qLnBhcmVudFBsYXlsaXN0KTtpZih0aGlzLmouZW50cmllcylmb3IobGV0IGIgb2YgdGhpcy5qLmVudHJpZXMpYS5wdXNoKC4uLihuZXcgeXFhKGIpKS5vKCkpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuImZha2VQbGF5bGlzdEVudHJ5Q29sbGVjdGlvbiJ9fSxmYWtlVmlkZW86Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLmRlc2NyaXB0aW9uRW50aXR5JiZhLnB1c2godGhpcy5qLmRlc2NyaXB0aW9uRW50aXR5KTt0aGlzLmouY3JlYXRvcnMmJmEucHVzaCguLi50aGlzLmouY3JlYXRvcnMpO3RoaXMuai50aGVCaWdnZXN0RmFuJiZhLnB1c2godGhpcy5qLnRoZUJpZ2dlc3RGYW4pO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuImZha2VWaWRlbyJ9fSxmYWtlVmlkZW9EZXNjcmlwdGlvbjpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJmYWtlVmlkZW9EZXNjcmlwdGlvbiJ9fSwKZmVhdHVyZWRQcm9kdWN0c0VudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJmZWF0dXJlZFByb2R1Y3RzRW50aXR5In19LHNhdmVkUHJvZHVjdHNTdGF0ZUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJzYXZlZFByb2R1Y3RzU3RhdGVFbnRpdHkifX0sZmxvd1N0YXRlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImZsb3dTdGF0ZUVudGl0eSJ9fSxpY29uQmFkZ2VFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iaWNvbkJhZGdlRW50aXR5In19LGludGVyc3RpdGlhbEludGVyYWN0aW9uU3RhdGVFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iaW50ZXJzdGl0aWFsSW50ZXJhY3Rpb25TdGF0ZUVudGl0eSJ9fSxsaWtlQnV0dG9uQW5pbWF0aW9uRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImxpa2VCdXR0b25BbmltYXRpb25FbnRpdHkifX0sCmxpdmVDaGF0UG9sbFN0YXRlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImxpdmVDaGF0UG9sbFN0YXRlRW50aXR5In19LGRhdGFGcmVzaG5lc3NFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4iZGF0YUZyZXNobmVzc0VudGl0eSJ9fSxsaXZlVmlld2VyTGVhZGVyYm9hcmRDaGF0RW50cnlQb2ludFN0YXRlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImxpdmVWaWV3ZXJMZWFkZXJib2FyZENoYXRFbnRyeVBvaW50U3RhdGVFbnRpdHkifX0sbGl2ZVZpZXdlckxlYWRlcmJvYXJkUG9pbnRzRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuImxpdmVWaWV3ZXJMZWFkZXJib2FyZFBvaW50c0VudGl0eSJ9fSxsaXZlUmVhY3Rpb25zRGF0YUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJsaXZlUmVhY3Rpb25zRGF0YUVudGl0eSJ9fSwKbG9nb0VudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJsb2dvRW50aXR5In19LG1hY3JvTWFya2VyRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuIm1hY3JvTWFya2VyRW50aXR5In19LG1haW5Eb3dubG9hZHNMaWJyYXJ5RW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5kb3dubG9hZHNMaXN0JiZhLnB1c2godGhpcy5qLmRvd25sb2Fkc0xpc3QpO3RoaXMuai5zbWFydERvd25sb2Fkc0xpc3QmJmEucHVzaCh0aGlzLmouc21hcnREb3dubG9hZHNMaXN0KTt0aGlzLmoucmVjb21tZW5kZWREb3dubG9hZHNMaXN0JiZhLnB1c2godGhpcy5qLnJlY29tbWVuZGVkRG93bmxvYWRzTGlzdCk7dGhpcy5qLnJlZnJlc2gmJmEucHVzaCh0aGlzLmoucmVmcmVzaCk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibWFpbkRvd25sb2Fkc0xpYnJhcnlFbnRpdHkifX0sCm1haW5Eb3dubG9hZHNMaXN0RW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5yZWZyZXNoJiZhLnB1c2godGhpcy5qLnJlZnJlc2gpO2lmKHRoaXMuai5kb3dubG9hZHMpZm9yKGxldCBiIG9mIHRoaXMuai5kb3dubG9hZHMpYS5wdXNoKC4uLihuZXcgenFhKGIpKS5vKCkpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm1haW5Eb3dubG9hZHNMaXN0RW50aXR5In19LG1haW5QbGF5bGlzdERvd25sb2FkU3RhdGVFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLmxvY2FsSW1hZ2VFbnRpdGllcyYmYS5wdXNoKC4uLnRoaXMuai5sb2NhbEltYWdlRW50aXRpZXMpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm1haW5QbGF5bGlzdERvd25sb2FkU3RhdGVFbnRpdHkifX0sbWFpblBsYXlsaXN0RW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5jaGFubmVsT3duZXImJgphLnB1c2godGhpcy5qLmNoYW5uZWxPd25lcik7dGhpcy5qLnZpZGVvcyYmYS5wdXNoKC4uLnRoaXMuai52aWRlb3MpO3RoaXMuai5jb2xsYWJvcmF0b3JDaGFubmVscyYmYS5wdXNoKC4uLnRoaXMuai5jb2xsYWJvcmF0b3JDaGFubmVscyk7dGhpcy5qLmRvd25sb2FkU3RhdGUmJmEucHVzaCh0aGlzLmouZG93bmxvYWRTdGF0ZSk7dGhpcy5qLnJlZnJlc2gmJmEucHVzaCh0aGlzLmoucmVmcmVzaCk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibWFpblBsYXlsaXN0RW50aXR5In19LG1haW5QbGF5bGlzdFZpZGVvRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai52aWRlbyYmYS5wdXNoKHRoaXMuai52aWRlbyk7dGhpcy5qLmNoYW5uZWxDb250cmlidXRvciYmYS5wdXNoKHRoaXMuai5jaGFubmVsQ29udHJpYnV0b3IpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm1haW5QbGF5bGlzdFZpZGVvRW50aXR5In19LAptYWluVmlkZW9Eb3dubG9hZFN0YXRlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5wbGF5YmFja0RhdGEmJmEucHVzaCh0aGlzLmoucGxheWJhY2tEYXRhKTt0aGlzLmoubG9jYWxJbWFnZUVudGl0aWVzJiZhLnB1c2goLi4udGhpcy5qLmxvY2FsSW1hZ2VFbnRpdGllcyk7dGhpcy5qLnZpZGVvRG93bmxvYWRDb250ZXh0RW50aXR5JiZhLnB1c2godGhpcy5qLnZpZGVvRG93bmxvYWRDb250ZXh0RW50aXR5KTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX1nZXRUeXBlTmFtZSgpe3JldHVybiJtYWluVmlkZW9Eb3dubG9hZFN0YXRlRW50aXR5In19LG1haW5WaWRlb0VudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT1bXTt0aGlzLmoub3duZXImJmEucHVzaCh0aGlzLmoub3duZXIpO3RoaXMuai5kb3dubG9hZFN0YXRlJiZhLnB1c2godGhpcy5qLmRvd25sb2FkU3RhdGUpO3RoaXMuai51c2VyU3RhdGUmJmEucHVzaCguLi4obmV3IENxYSh0aGlzLmoudXNlclN0YXRlKSkubygpKTsKdGhpcy5qLmFkZGl0aW9uYWxNZXRhZGF0YSYmYS5wdXNoKC4uLihuZXcgQnFhKHRoaXMuai5hZGRpdGlvbmFsTWV0YWRhdGEpKS5vKCkpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm1haW5WaWRlb0VudGl0eSJ9fSxtYXJrZXJzRW5nYWdlbWVudFBhbmVsU3luY0VudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJtYXJrZXJzRW5nYWdlbWVudFBhbmVsU3luY0VudGl0eSJ9fSxtYXJrZXJzVmlzaWJpbGl0eU92ZXJyaWRlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuIm1hcmtlcnNWaXNpYmlsaXR5T3ZlcnJpZGVFbnRpdHkifX0sbXVzaWNBbGJ1bVJlbGVhc2VEZXRhaWw6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLmFsYnVtUmVsZWFzZSYmYS5wdXNoKHRoaXMuai5hbGJ1bVJlbGVhc2UpO3RoaXMuai50cmFja3MmJmEucHVzaCguLi50aGlzLmoudHJhY2tzKTsKcmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNBbGJ1bVJlbGVhc2VEZXRhaWwifX0sbXVzaWNBbGJ1bVJlbGVhc2VEb3dubG9hZE1ldGFkYXRhRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai50cmFja0Rvd25sb2FkTWV0YWRhdGFzJiZhLnB1c2goLi4udGhpcy5qLnRyYWNrRG93bmxvYWRNZXRhZGF0YXMpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm11c2ljQWxidW1SZWxlYXNlRG93bmxvYWRNZXRhZGF0YUVudGl0eSJ9fSxtdXNpY0FsYnVtUmVsZWFzZTpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT1bXTt0aGlzLmoubXVzaWNMaWJyYXJ5U3RhdHVzRW50aXR5JiZhLnB1c2godGhpcy5qLm11c2ljTGlicmFyeVN0YXR1c0VudGl0eSk7dGhpcy5qLnByaW1hcnlBcnRpc3RzJiZhLnB1c2goLi4udGhpcy5qLnByaW1hcnlBcnRpc3RzKTt0aGlzLmouZGV0YWlscyYmYS5wdXNoKHRoaXMuai5kZXRhaWxzKTsKdGhpcy5qLnVzZXJEZXRhaWxzJiZhLnB1c2godGhpcy5qLnVzZXJEZXRhaWxzKTt0aGlzLmoudHJhY2tzJiZhLnB1c2goLi4udGhpcy5qLnRyYWNrcyk7dGhpcy5qLnNoYXJlJiZhLnB1c2godGhpcy5qLnNoYXJlKTt0aGlzLmouZG93bmxvYWRNZXRhZGF0YSYmYS5wdXNoKHRoaXMuai5kb3dubG9hZE1ldGFkYXRhKTt0aGlzLmoucmVmcmVzaCYmYS5wdXNoKHRoaXMuai5yZWZyZXNoKTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX1nZXRUeXBlTmFtZSgpe3JldHVybiJtdXNpY0FsYnVtUmVsZWFzZSJ9fSxtdXNpY0FsYnVtUmVsZWFzZVVzZXJEZXRhaWw6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLmFsYnVtUmVsZWFzZSYmYS5wdXNoKHRoaXMuai5hbGJ1bVJlbGVhc2UpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm11c2ljQWxidW1SZWxlYXNlVXNlckRldGFpbCJ9fSxtdXNpY0FydGlzdERldGFpbDpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT0KW107dGhpcy5qLnBhcmVudEFydGlzdCYmYS5wdXNoKHRoaXMuai5wYXJlbnRBcnRpc3QpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm11c2ljQXJ0aXN0RGV0YWlsIn19LG11c2ljQXJ0aXN0OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5kZXRhaWxzJiZhLnB1c2godGhpcy5qLmRldGFpbHMpO3RoaXMuai51c2VyRGV0YWlscyYmYS5wdXNoKHRoaXMuai51c2VyRGV0YWlscyk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNBcnRpc3QifX0sbXVzaWNBcnRpc3RVc2VyRGV0YWlsOmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5wYXJlbnRBcnRpc3QmJmEucHVzaCh0aGlzLmoucGFyZW50QXJ0aXN0KTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX1nZXRUeXBlTmFtZSgpe3JldHVybiJtdXNpY0FydGlzdFVzZXJEZXRhaWwifX0sbXVzaWNEb3dubG9hZHNMaWJyYXJ5RW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPQpbXTt0aGlzLmouZG93bmxvYWRlZFRyYWNrcyYmYS5wdXNoKC4uLnRoaXMuai5kb3dubG9hZGVkVHJhY2tzKTt0aGlzLmouc21hcnREb3dubG9hZGVkVHJhY2tzJiZhLnB1c2goLi4udGhpcy5qLnNtYXJ0RG93bmxvYWRlZFRyYWNrcyk7dGhpcy5qLmRvd25sb2FkZWRFcGlzb2RlcyYmYS5wdXNoKC4uLnRoaXMuai5kb3dubG9hZGVkRXBpc29kZXMpO3RoaXMuai5kb3dubG9hZGVkQWxidW1SZWxlYXNlcyYmYS5wdXNoKC4uLnRoaXMuai5kb3dubG9hZGVkQWxidW1SZWxlYXNlcyk7dGhpcy5qLnNtYXJ0RG93bmxvYWRlZEFsYnVtUmVsZWFzZXMmJmEucHVzaCguLi50aGlzLmouc21hcnREb3dubG9hZGVkQWxidW1SZWxlYXNlcyk7dGhpcy5qLmRvd25sb2FkZWRQbGF5bGlzdHMmJmEucHVzaCguLi50aGlzLmouZG93bmxvYWRlZFBsYXlsaXN0cyk7dGhpcy5qLnNtYXJ0RG93bmxvYWRlZFBsYXlsaXN0cyYmYS5wdXNoKC4uLnRoaXMuai5zbWFydERvd25sb2FkZWRQbGF5bGlzdHMpO3RoaXMuai5tZXRhZGF0YU9ubHlUcmFja3MmJgphLnB1c2goLi4udGhpcy5qLm1ldGFkYXRhT25seVRyYWNrcyk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNEb3dubG9hZHNMaWJyYXJ5RW50aXR5In19LG11c2ljTGlicmFyeUVkaXQ6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNMaWJyYXJ5RWRpdCJ9fSxtdXNpY0xpYnJhcnlTdGF0dXNFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNMaWJyYXJ5U3RhdHVzRW50aXR5In19LG11c2ljUGxheWxpc3Q6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLnRyYWNrcyYmYS5wdXNoKC4uLnRoaXMuai50cmFja3MpO3RoaXMuai5yZWZyZXNoJiZhLnB1c2godGhpcy5qLnJlZnJlc2gpO3RoaXMuai5tdXNpY0xpYnJhcnlTdGF0dXNFbnRpdHkmJmEucHVzaCh0aGlzLmoubXVzaWNMaWJyYXJ5U3RhdHVzRW50aXR5KTsKdGhpcy5qLmRldGFpbHMmJmEucHVzaCh0aGlzLmouZGV0YWlscyk7dGhpcy5qLmRvd25sb2FkTWV0YWRhdGEmJmEucHVzaCh0aGlzLmouZG93bmxvYWRNZXRhZGF0YSk7dGhpcy5qLnNpZGVsb2FkTWV0YWRhdGEmJmEucHVzaCh0aGlzLmouc2lkZWxvYWRNZXRhZGF0YSk7dGhpcy5qLnVzZXJEZXRhaWxzJiZhLnB1c2godGhpcy5qLnVzZXJEZXRhaWxzKTt0aGlzLmouZW50cnlDb2xsZWN0aW9uJiZhLnB1c2godGhpcy5qLmVudHJ5Q29sbGVjdGlvbik7dGhpcy5qLnNoYXJlJiZhLnB1c2godGhpcy5qLnNoYXJlKTt0aGlzLmoucG9kY2FzdFNob3dBZGRpdGlvbmFsTWV0YWRhdGEmJmEucHVzaCguLi4obmV3IERxYSh0aGlzLmoucG9kY2FzdFNob3dBZGRpdGlvbmFsTWV0YWRhdGEpKS5vKCkpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm11c2ljUGxheWxpc3QifX0sbXVzaWNQbGF5bGlzdERvd25sb2FkTWV0YWRhdGFFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9CltdO3RoaXMuai50cmFja0Rvd25sb2FkTWV0YWRhdGFzJiZhLnB1c2goLi4udGhpcy5qLnRyYWNrRG93bmxvYWRNZXRhZGF0YXMpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm11c2ljUGxheWxpc3REb3dubG9hZE1ldGFkYXRhRW50aXR5In19LG11c2ljU2hhcmU6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNTaGFyZSJ9fSxtdXNpY1RyYWNrRGV0YWlsOmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5wYXJlbnRUcmFjayYmYS5wdXNoKHRoaXMuai5wYXJlbnRUcmFjayk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNUcmFja0RldGFpbCJ9fSxtdXNpY1RyYWNrRG93bmxvYWRNZXRhZGF0YUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT1bXTt0aGlzLmoucGxheWJhY2tEYXRhJiZhLnB1c2godGhpcy5qLnBsYXliYWNrRGF0YSk7CnRoaXMuai5sb2NhbEltYWdlRW50aXRpZXMmJmEucHVzaCguLi50aGlzLmoubG9jYWxJbWFnZUVudGl0aWVzKTt0aGlzLmoudmlkZW9Eb3dubG9hZENvbnRleHRFbnRpdHkmJmEucHVzaCh0aGlzLmoudmlkZW9Eb3dubG9hZENvbnRleHRFbnRpdHkpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm11c2ljVHJhY2tEb3dubG9hZE1ldGFkYXRhRW50aXR5In19LG11c2ljVHJhY2s6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLm11c2ljTGlicmFyeVN0YXR1c0VudGl0eSYmYS5wdXNoKHRoaXMuai5tdXNpY0xpYnJhcnlTdGF0dXNFbnRpdHkpO3RoaXMuai5hcnRpc3RzJiZhLnB1c2goLi4udGhpcy5qLmFydGlzdHMpO3RoaXMuai5hdWRpb01vZGVWZXJzaW9uJiZhLnB1c2godGhpcy5qLmF1ZGlvTW9kZVZlcnNpb24pO3RoaXMuai52aWRlb01vZGVWZXJzaW9uJiZhLnB1c2godGhpcy5qLnZpZGVvTW9kZVZlcnNpb24pO3RoaXMuai51c2VyRGV0YWlscyYmCmEucHVzaCh0aGlzLmoudXNlckRldGFpbHMpO3RoaXMuai5kZXRhaWxzJiZhLnB1c2godGhpcy5qLmRldGFpbHMpO3RoaXMuai5hbGJ1bVJlbGVhc2UmJmEucHVzaCh0aGlzLmouYWxidW1SZWxlYXNlKTt0aGlzLmouc2hhcmUmJmEucHVzaCh0aGlzLmouc2hhcmUpO3RoaXMuai5saWJyYXJ5RWRpdCYmYS5wdXNoKHRoaXMuai5saWJyYXJ5RWRpdCk7dGhpcy5qLmRvd25sb2FkTWV0YWRhdGEmJmEucHVzaCh0aGlzLmouZG93bmxvYWRNZXRhZGF0YSk7dGhpcy5qLnBsYXliYWNrUG9zaXRpb24mJmEucHVzaCh0aGlzLmoucGxheWJhY2tQb3NpdGlvbik7dGhpcy5qLmx5cmljcyYmYS5wdXNoKHRoaXMuai5seXJpY3MpO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuIm11c2ljVHJhY2sifX0sbXVzaWNUcmFja1VzZXJEZXRhaWw6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLnBhcmVudFRyYWNrJiZhLnB1c2godGhpcy5qLnBhcmVudFRyYWNrKTsKcmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ibXVzaWNUcmFja1VzZXJEZXRhaWwifX0sb2ZmbGluZU9yY2hlc3RyYXRpb25BY3Rpb25XcmFwcGVyRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuIm9mZmxpbmVPcmNoZXN0cmF0aW9uQWN0aW9uV3JhcHBlckVudGl0eSJ9fSxvZmZsaW5lVmlkZW9Qb2xpY3k6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4ib2ZmbGluZVZpZGVvUG9saWN5In19LG9mZmxpbmVWaWRlb1N0cmVhbXM6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4ib2ZmbGluZVZpZGVvU3RyZWFtcyJ9fSxvZmZsaW5lYWJpbGl0eUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJvZmZsaW5lYWJpbGl0eUVudGl0eSJ9fSxvcmNoZXN0cmF0aW9uV2ViU2FtcGxpbmdFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9CltdO3RoaXMuai5mYWtlQ2hpbGRyZW4mJmEucHVzaCguLi50aGlzLmouZmFrZUNoaWxkcmVuKTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX1nZXRUeXBlTmFtZSgpe3JldHVybiJvcmNoZXN0cmF0aW9uV2ViU2FtcGxpbmdFbnRpdHkifX0scGFnZUhlYWRlckVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJwYWdlSGVhZGVyRW50aXR5In19LHBhcnR5R2FtZVBhbmVsRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuInBhcnR5R2FtZVBhbmVsRW50aXR5In19LHNsaWRlckdhbWVQYW5lbEVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJzbGlkZXJHYW1lUGFuZWxFbnRpdHkifX0scGRwU3RhdGVFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4icGRwU3RhdGVFbnRpdHkifX0scGlubmVkUHJvZHVjdEVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJwaW5uZWRQcm9kdWN0RW50aXR5In19LApwbGF5YmFja0RhdGE6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLnRyYW5zZmVyJiZhLnB1c2godGhpcy5qLnRyYW5zZmVyKTt0aGlzLmouYWRzUGxheWJhY2tEYXRhJiZhLnB1c2goLi4udGhpcy5qLmFkc1BsYXliYWNrRGF0YSk7dGhpcy5qLmRybUxpY2Vuc2UmJmEucHVzaCh0aGlzLmouZHJtTGljZW5zZSk7dGhpcy5qLm9mZmxpbmVWaWRlb1BvbGljeSYmYS5wdXNoKHRoaXMuai5vZmZsaW5lVmlkZW9Qb2xpY3kpO3RoaXMuai52aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eSYmYS5wdXNoKHRoaXMuai52aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eSk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4icGxheWJhY2tEYXRhIn19LHBsYXllclN0YXRlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuInBsYXllclN0YXRlRW50aXR5In19LHBsYXlsaXN0VGh1bWJuYWlsRWRpdHNFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4icGxheWxpc3RUaHVtYm5haWxFZGl0c0VudGl0eSJ9fSwKcXVhbnRpdHlJbmNyZW1lbnRlckVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJxdWFudGl0eUluY3JlbWVudGVyRW50aXR5In19LHJlZnJlc2g6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4icmVmcmVzaCJ9fSxzYXZlVG9QbGF5bGlzdExpc3RFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4ic2F2ZVRvUGxheWxpc3RMaXN0RW50aXR5In19LHNlbGVjdGVkQ2hpcEluZGV4RW50aXR5UGF5bG9hZDpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJzZWxlY3RlZENoaXBJbmRleEVudGl0eVBheWxvYWQifX0sc2VsZWN0aW9uVmFsdWVMaXN0RW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuInNlbGVjdGlvblZhbHVlTGlzdEVudGl0eSJ9fSxzZXR0aW5nRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuInNldHRpbmdFbnRpdHkifX0sCnN0cmluZ0VudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJzdHJpbmdFbnRpdHkifX0sc3VnZ2VzdGVkRmVlZGJhY2tDaGlwU3RhdGVFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4ic3VnZ2VzdGVkRmVlZGJhY2tDaGlwU3RhdGVFbnRpdHkifX0sdHJhbnNmZXI6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7dmFyIGE9W107dGhpcy5qLm9mZmxpbmVWaWRlb1N0cmVhbXMmJmEucHVzaCguLi50aGlzLmoub2ZmbGluZVZpZGVvU3RyZWFtcyk7dGhpcy5qLmNhcHRpb25UcmFjayYmYS5wdXNoKC4uLnRoaXMuai5jYXB0aW9uVHJhY2spO3JldHVyblsuLi4obmV3IFNldChhKSldfWdldFR5cGVOYW1lKCl7cmV0dXJuInRyYW5zZmVyIn19LHRyZW5kaW5nT2ZmZXJFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4idHJlbmRpbmdPZmZlckVudGl0eSJ9fSwKdW5wbHVnZ2VkU2lkZXNoZWV0SGVhZGVyU3RhdGVFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4idW5wbHVnZ2VkU2lkZXNoZWV0SGVhZGVyU3RhdGVFbnRpdHkifX0sdmlkZW9Eb3dubG9hZENvbnRleHRFbnRpdHk6Y2xhc3MgZXh0ZW5kcyBlWntvKCl7cmV0dXJuW119Z2V0VHlwZU5hbWUoKXtyZXR1cm4idmlkZW9Eb3dubG9hZENvbnRleHRFbnRpdHkifX0sdmlkZW9PdmVydmlld0FzeW5jRGF0YUVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJ2aWRlb092ZXJ2aWV3QXN5bmNEYXRhRW50aXR5In19LHZpZGVvUGxheWJhY2tQb3NpdGlvbkVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXtyZXR1cm5bXX1nZXRUeXBlTmFtZSgpe3JldHVybiJ2aWRlb1BsYXliYWNrUG9zaXRpb25FbnRpdHkifX0sdm90aW5nRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuInZvdGluZ0VudGl0eSJ9fSwKeXRNYWluQ2hhbm5lbEVudGl0eTpjbGFzcyBleHRlbmRzIGVae28oKXt2YXIgYT1bXTt0aGlzLmoudXNlckNoYW5uZWxEZXRhaWxzJiZhLnB1c2godGhpcy5qLnVzZXJDaGFubmVsRGV0YWlscyk7cmV0dXJuWy4uLihuZXcgU2V0KGEpKV19Z2V0VHlwZU5hbWUoKXtyZXR1cm4ieXRNYWluQ2hhbm5lbEVudGl0eSJ9fSx5b3VjaGF0UGVuZGluZ1Jlc3BvbnNlRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3JldHVybltdfWdldFR5cGVOYW1lKCl7cmV0dXJuInlvdWNoYXRQZW5kaW5nUmVzcG9uc2VFbnRpdHkifX0seXRNYWluRG93bmxvYWRlZFZpZGVvRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai52aWRlbyYmYS5wdXNoKHRoaXMuai52aWRlbyk7dGhpcy5qLnBsYXliYWNrRGF0YSYmYS5wdXNoKHRoaXMuai5wbGF5YmFja0RhdGEpO3RoaXMuai5vZmZsaW5lVmlkZW9Qb2xpY3kmJmEucHVzaCh0aGlzLmoub2ZmbGluZVZpZGVvUG9saWN5KTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX1nZXRUeXBlTmFtZSgpe3JldHVybiJ5dE1haW5Eb3dubG9hZGVkVmlkZW9FbnRpdHkifX0sCnl0TWFpblZpZGVvRW50aXR5OmNsYXNzIGV4dGVuZHMgZVp7bygpe3ZhciBhPVtdO3RoaXMuai5jaGFubmVsT3duZXImJmEucHVzaCh0aGlzLmouY2hhbm5lbE93bmVyKTt0aGlzLmoucGxheWJhY2tQb3NpdGlvbiYmYS5wdXNoKHRoaXMuai5wbGF5YmFja1Bvc2l0aW9uKTt0aGlzLmoubG9jYWxJbWFnZUVudGl0aWVzJiZhLnB1c2goLi4udGhpcy5qLmxvY2FsSW1hZ2VFbnRpdGllcyk7dGhpcy5qLmRvd25sb2FkU3RhdHVzJiZhLnB1c2godGhpcy5qLmRvd25sb2FkU3RhdHVzKTtyZXR1cm5bLi4uKG5ldyBTZXQoYSkpXX1nZXRUeXBlTmFtZSgpe3JldHVybiJ5dE1haW5WaWRlb0VudGl0eSJ9fX07WG5hPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5qPWE7dGhpcy5vPWI7dGhpcy52PXt9fX07CkpxYT1jbGFzcyBleHRlbmRzIGpae3YoYSl7cmV0dXJuIGF9byhhKXtpZihhIGluc3RhbmNlb2YgVWludDhBcnJheSl0aHJvdyBuZXcgaVgoIldST05HX0RBVEFfVFlQRSIse0lwOjB9KTtyZXR1cm4gYX19O1puYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaj17fTt0aGlzLmpbMF09bmV3IEpxYTtpZighXy54KCJhZXNfcGVzX2VuY29kZXJfa2lsbHN3aXRjaCIpKXt2YXIgYT10aGlzLmo7dHJ5e2xldCBkPV8uVmooKTt2YXIgYj1rWChkKTt2YXIgYz1uZXcgSXFhKG5ldyBpWihiKSxuZXcgR3FhKGIpKX1jYXRjaChkKXt0aHJvdyBhPWQgaW5zdGFuY2VvZiBFcnJvcj9uZXcgaVgoIktFWV9DUkVBVElPTl9GQUlMRUQiLHtvcmlnaW5hbE1lc3NhZ2U6ZC5tZXNzYWdlfSk6bmV3IGlYKCJLRVlfQ1JFQVRJT05fRkFJTEVEIiksXy5HcChhKSxhO31hWzFdPWN9fX07CiRuYT1jbGFzcyBleHRlbmRzIF8uYWV7Y29uc3RydWN0b3IoYSxiKXtzdXBlcigpO3RoaXMudG9rZW49YTt0aGlzLmo9Yjt0aGlzLm9ic2VydmVycz1bXTthPW5ldyBfLnUuQnJvYWRjYXN0Q2hhbm5lbChgUEVSU0lTVEVOVF9FTlRJVFlfU1RPUkVfU1lOQzoke18uVmooKX1gKTthLm9ubWVzc2FnZT10aGlzLm8uYmluZCh0aGlzKTt0aGlzLmNoYW5uZWw9YX1vYnNlcnZlKGEpe3RoaXMub2JzZXJ2ZXJzLnB1c2goYSk7cmV0dXJuKCk9Pnt2YXIgYj10aGlzLm9ic2VydmVycy5pbmRleE9mKGEpO2I+PTAmJnRoaXMub2JzZXJ2ZXJzLnNwbGljZShiLDEpfX1vKGEpe3FYKHRoaXMsYS5kYXRhKX1sYSgpe3RoaXMuY2hhbm5lbC5jbG9zZSgpfX07CkxxYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3ZhciBhPUtxYTt0aGlzLm9ic2VydmVycz1bXTt0aGlzLnZhbHVlPWF9c3Vic2NyaWJlKGEpe2lmKGEuZWohPW51bGwpdGhyb3cgRXJyb3IoIkZjIik7YS5laj10aGlzLm9ic2VydmVycy5sZW5ndGg7dGhpcy5vYnNlcnZlcnMucHVzaChhKTt0cnl7YSh0aGlzLnZhbHVlKX1jYXRjaChiKXt9cmV0dXJuKCk9Pnt2YXIgYj10aGlzLm9ic2VydmVyc1t0aGlzLm9ic2VydmVycy5sZW5ndGgtMV07dGhpcy5vYnNlcnZlcnNbYS5lal09YjtiLmVqPWEuZWo7dGhpcy5vYnNlcnZlcnMucG9wKCl9fXVwZGF0ZShhKXt0aGlzLnZhbHVlPWEodGhpcy52YWx1ZSk7dGhpcy5ub3RpZnkoKX1zZXQoYSl7dGhpcy52YWx1ZT1hO3RoaXMubm90aWZ5KCl9bm90aWZ5KCl7Zm9yKGxldCBhIG9mIHRoaXMub2JzZXJ2ZXJzKXRyeXthKHRoaXMudmFsdWUpfWNhdGNoKGIpe319fTsKam9hPXtsYW5kc2NhcGU6IihtYXgtd2lkdGg6IDI5OXB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIixwb3J0cmFpdDoiKG1heC13aWR0aDogMjk5cHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSJ9O1hZPXt9O2taPWNsYXNze2NvbnN0cnVjdG9yKCl7aWYodGhpcy5jb25zdHJ1Y3Rvcj09PWtaKXRocm93IG5ldyBUeXBlRXJyb3IoInNkIik7fWRpc3Bvc2UoKXt9ZGlzY29ubmVjdCgpe31vYnNlcnZlKGEsYixjKXtyZXR1cm57ZWxlbWVudDphLG9wdGlvbjpjfX1yZigpe319OwpNcWE9Y2xhc3MgZXh0ZW5kcyBrWntjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dGhpcy5pc0Nvbm5lY3RlZD0hMDt0aGlzLnY9ITE7dGhpcy5vYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIodGhpcy5CLmJpbmQodGhpcykse3Jvb3RNYXJnaW46Ii0wLjFweCJ9KTt0aGlzLm89bmV3IE1hcDt0aGlzLmo9bmV3IE1hcH1kaXNwb3NlKCl7dGhpcy5kaXNjb25uZWN0KCk7dGhpcy5qLmNsZWFyKCl9ZGlzY29ubmVjdChhPSExKXt0aGlzLmlzQ29ubmVjdGVkPSExO3RoaXMudj1hO3RoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO2ZvcihsZXQgYiBvZiB0aGlzLm8udmFsdWVzKCkpYi5kaXNjb25uZWN0KCl9QihhKXtmb3IobGV0IGMgb2YgYSl7dmFyIGI9dGhpcy5qLmdldChjLnRhcmdldCk7aWYoIWIpY29udGludWU7YT1jLmlzSW50ZXJzZWN0aW5nO2ZvcihsZXQgW2QsZV1vZiBiKXtiPWQ7bGV0IGY9ZTtiJiYoYi5zdGF0ZT09PSJ2aXNpYmxlIiYmYXx8Yi5zdGF0ZT09PSJoaWRkZW4iJiYKIWEpJiYoZihjLnRhcmdldCxiLnN0YXRlKSxiLlZiJiZ0aGlzLnJmKHtlbGVtZW50OmMudGFyZ2V0LG9wdGlvbjpifSkpfX19RChhKXtmb3IobGV0IGIgb2YgYSlpZigoYT10aGlzLmouZ2V0KGIudGFyZ2V0KSkmJmIuaXNJbnRlcnNlY3RpbmcpZm9yKGxldCBbYyxkXW9mIGEpe2E9YztsZXQgZT1kO2EmJmEuc3RhdGU9PT0icHJlc2NhbiImJihlKGIudGFyZ2V0LGEuc3RhdGUpLGEuVmImJnRoaXMucmYoe2VsZW1lbnQ6Yi50YXJnZXQsb3B0aW9uOmF9KSl9fW9ic2VydmUoYSxiLGMpe3ZhciBkPShkPXRoaXMuai5nZXQoYSkpJiZkLmhhcyhjKT97ZWxlbWVudDphLG9wdGlvbjpjfTp2b2lkIDA7aWYoZClyZXR1cm4gZDtkPXtlbGVtZW50OmEsb3B0aW9uOmN9O3RoaXMuai5oYXMoYSl8fHRoaXMuai5zZXQoYSxuZXcgTWFwKTt2YXIgZT10aGlzLmouZ2V0KGEpO2UmJiFlLmhhcyhjKSYmZS5zZXQoYyxiKTt0aGlzLnZ8fChjLnN0YXRlPT09InByZXNjYW4iJiYoYj0wLGEuaGFzQXR0cmlidXRlKCJwcmVzY2FuLWhlaWdodCIpJiYKKGM9TnVtYmVyKGEuZ2V0QXR0cmlidXRlKCJwcmVzY2FuLWhlaWdodCIpKSxpc05hTihjKXx8KGI9YykpLHRoaXMuby5oYXMoYik/Yj10aGlzLm8uZ2V0KGIpOihjPWAtMC4xcHggLTAuMXB4ICR7Yn1weCAtMC4xcHhgLGM9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKHRoaXMuRC5iaW5kKHRoaXMpLHtyb290TWFyZ2luOmN9KSx0aGlzLm8uc2V0KGIsYyksYj1jKSxiLm9ic2VydmUoYSkpLHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZShhKSk7cmV0dXJuIGR9cmYoYSl7dmFyIGI9dGhpcy5qLmdldChhLmVsZW1lbnQpO2lmKGImJmIuaGFzKGEub3B0aW9uKSl7Yi5kZWxldGUoYS5vcHRpb24pO2lmKGEmJmEub3B0aW9uLnN0YXRlPT09InByZXNjYW4iKWZvcihsZXQgYyBvZiB0aGlzLm8udmFsdWVzKCkpYy51bm9ic2VydmUoYS5lbGVtZW50KTtiLnNpemU9PT0wJiYodGhpcy5qLmRlbGV0ZShhLmVsZW1lbnQpLHRoaXMub2JzZXJ2ZXIudW5vYnNlcnZlKGEuZWxlbWVudCkpfX19OwpxWT1bInlvdXR1YmVfZmlsbCIsInlvdXR1YmVfb3V0bGluZSJdO0FYPXZvaWQgMDt2YXIgTnFhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMudmFsdWU9YX1kZXJlZigpe3JldHVybiB0aGlzLnZhbHVlfX0sT3FhPXR5cGVvZiBXZWFrUmVmPT09ImZ1bmN0aW9uIj9XZWFrUmVmOk5xYTt2YXIgRlg9bmV3IGNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaj1hO3RoaXMubWFwPW5ldyBXZWFrTWFwfWFkZChhLGIpe3RoaXMubWFwLmhhcyhhKXx8KHRoaXMuaihhKSx0aGlzLm1hcC5zZXQoYSxbXSkpO3RoaXMubWFwLmdldChhKS5wdXNoKG5ldyBPcWEoYikpfWdldChhKXt2YXIgYj10aGlzO3JldHVybiBmdW5jdGlvbiooKXt2YXIgYz1iLm1hcC5nZXQoYSk7aWYoYyl7dmFyIGQ9MDtmb3IobGV0IGUgb2YgYyl7bGV0IGY9ZS5kZXJlZigpO2YmJihkKysseWllbGQgZil9aWYoMipkPGMubGVuZ3RoKXtkPTA7Zm9yKGxldCBlIG9mIGMpZS5kZXJlZigpJiYoY1tkKytdPWUpO2MubGVuZ3RoPWR9fX0oKX19KGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixBb2Ese29uY2U6ITB9KX0pLEVYPW5ldyBXZWFrTWFwLERYPUFib3J0Q29udHJvbGxlcixsWj1BYm9ydFNpZ25hbDt0eXBlb2YgbFouYWJvcnQhPT0iZnVuY3Rpb24iJiYobFouYWJvcnQ9eG9hKTsKdHlwZW9mIGxaLnByb3RvdHlwZS50aHJvd0lmQWJvcnRlZCE9PSJmdW5jdGlvbiImJihsWi5wcm90b3R5cGUudGhyb3dJZkFib3J0ZWQ9eW9hKTt0eXBlb2YgbFouYW55IT09ImZ1bmN0aW9uIiYmKGxaLmFueT16b2EpO3R5cGVvZiBsWi50aW1lb3V0IT09ImZ1bmN0aW9uIiYmKGxaLnRpbWVvdXQ9Qm9hKTt2YXIgR1g9IjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Ii5zcGxpdCgiIik7dmFyIFVZPW5ldyBfLkkoImNvcHlMaW5rUmVuZGVyZXIiKTt2YXIgUHFhPW5ldyBfLkkoImF1ZGlvVHJhY2tTZWxlY3RBY3Rpb25Db21tYW5kIik7dmFyIFFxYT1uZXcgXy5JKCJjYXB0aW9uTGFuZ3VhZ2VTZWxlY3RBY3Rpb25Db21tYW5kIik7dmFyIFJxYT1uZXcgXy5JKCJzaG93QXVkaW9UcmFja1BpY2tlckFjdGlvbkNvbW1hbmQiKTt2YXIgU3FhPW5ldyBfLkkoInNob3dDYXB0aW9uTGFuZ3VhZ2VTZWxlY3RBY3Rpb25Db21tYW5kIik7dmFyIE9wYT1uZXcgXy5JKCJwaG9uZURpYWxlckVuZHBvaW50Iik7dmFyIFNwYT1uZXcgXy5JKCJzZW5kU21zRW5kcG9pbnQiKTt2YXIgS3BhPW5ldyBfLkkoImNvcHlUZXh0RW5kcG9pbnQiKTt2YXIgbVo9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5uYW1lPWF9byhhPXt9KXtJWCh0aGlzLm5hbWUsIlNVQ0NFU1MiLGEpfWooYT17fSl7SVgodGhpcy5uYW1lLCJGQUlMVVJFIixhKX19LEVvYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLm5hbWU9IlNMSV9OQU1FX1lPVVRVQkVfRU1CRURTX1dFQl9GVUxMU0NSRUVOX1JFUVVFU1RfU0xJIjt0aGlzLnNsaUlkPWE7dGhpcy50aW1lb3V0TXM9M0U0O3RoaXMubz0iIjt0aGlzLnY9LTE7dGhpcy5qPSExO3RoaXMuZGltZW5zaW9ucz17fX1nZXRJZCgpe3JldHVybiB0aGlzLnNsaUlkfURyKGE9e30pe3RoaXMuanx8KHRoaXMuaj0hMCx0aGlzLmRpbWVuc2lvbnM9YSx0aGlzLm89Q29hKCksWlcoe2RpbWVuc2lvbnM6dGhpcy5kaW1lbnNpb25zLHJlY29yZHM6W3tuYW1lOnRoaXMubmFtZSxzdGF0ZToiU0xJX1NUQVRFX1NUQVJUIixzbGlJZDp0aGlzLm99XX0pLHRoaXMudGltZW91dE1zPjAmJih0aGlzLnY9c2V0VGltZW91dCgoKT0+Cnt0aGlzLnpnKCJUSU1FT1VUIil9LHRoaXMudGltZW91dE1zKSkpfXpnKGEpe3RoaXMuaiYmKHRoaXMudGltZW91dE1zPjAmJmNsZWFyVGltZW91dCh0aGlzLnYpLHRoaXMuaj0hMSxhPXtkaW1lbnNpb25zOnRoaXMuZGltZW5zaW9ucyxyZWNvcmRzOlt7bmFtZTp0aGlzLm5hbWUsc3RhdHVzOkhYKGEpLHN0YXRlOiJTTElfU1RBVEVfRU5EIixzbGlJZDp0aGlzLm99XX0sXy5FeS5yZWdpc3Rlci5kZWxldGUoYCR7dGhpcy5uYW1lfV8ke3RoaXMuc2xpSWR9YCksWlcoYSkpfX07dmFyIFNYPW5ldyBtWigiU0xJX05BTUVfWU9VVFVCRV9FTUJFRFNfV0VCX1BMQVlFUl9FUlJPUl9TTEkiKSxUWD1uZXcgbVooIlNMSV9OQU1FX1lPVVRVQkVfRU1CRURTX1dFQl9QTEFZRVJfVU5QTEFZQUJMRV9TTEkiKTt2YXIgR29hPVsiY2xpY2tUcmFja2luZ1BhcmFtcyIsImNvbW1hbmRNZXRhZGF0YSIsImxvZ2dpbmdVcmxzIiwiYnVpbGRDb21tYW5kUGF5bG9hZCJdO3ZhciBMWD1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYz0hMSxkPSExLGU9W10pe3ZhciBmPXdYO3RoaXMudj1hO3RoaXMubmF2aWdhdGU9dm9pZCAwO3RoaXMuaj1iO3RoaXMuWT1jO3RoaXMuST1kO3RoaXMuQj1mO3RoaXMuSz1lO3RoaXMuTT1bXTt0aGlzLm89bmV3IFNldDt0aGlzLkQ9ITE7S29hKHRoaXMpfXJlc29sdmVDb21tYW5kKGEsYil7cmV0dXJuIE5YKHRoaXMsYSxiKS5oYW5kbGVkfX07dmFyIG5aPW5ldyBfLlZzKCJFTlRJVFlfU1RBVEVfVE9LRU4iKTt2YXIgb1o9Y2xhc3N7YXN5bmMgcmVzb2x2ZShhLGIpe2F3YWl0IHRoaXMucmVzb2x2ZUNvbW1hbmQoYSxiKX19O3ZhciBwWj1jbGFzcyBleHRlbmRzIG9ae2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5zdG9yZT1hfWFzeW5jIHJlc29sdmVDb21tYW5kKGEpe2lmKGE9Xy5CKGEsXy53bmEpPy5lbnRpdHlCYXRjaFVwZGF0ZSlhPXsuLi5hLG11dGF0aW9uczpbLi4uKGEubXV0YXRpb25zfHxbXSldfSxhd2FpdCBkb2EoYSx0aGlzLnN0b3JlKX19O3BaW18uTG5dPVtuWl07dmFyICRZPW5ldyBfLlZzKCJQQU5FTF9MT0FESU5HX1NUUkFURUdZX1RPS0VOIik7dmFyIHFaPWNsYXNzIGV4dGVuZHMgb1p7Y29uc3RydWN0b3IoYSxiKXtzdXBlcigpO3RoaXMuY29udHJvbGxlcj1hO3RoaXMucGFuZWxMb2FkaW5nU3RyYXRlZ3k9Yn1hc3luYyByZXNvbHZlQ29tbWFuZChhLGIpe3ZhciBjPV8uQihhLF8uTlcpO2lmKGM/LnBhbmVsTG9hZGluZ1N0cmF0ZWd5KXt2YXIgZD1WWCh0aGlzLmNvbnRyb2xsZXIsYj8uZm9ybT8uZWxlbWVudCksZT1jLmNvbnRleHR1YWxTaGVldFByZXNlbnRhdGlvbkNvbmZpZz8ucG9zaXRpb24sZj1jLmNvbnRleHR1YWxTaGVldFByZXNlbnRhdGlvbkNvbmZpZz8uaG92ZXJDb25maWcsaD1jLmNvbnRleHR1YWxTaGVldFByZXNlbnRhdGlvbkNvbmZpZz8uZXhwYW5kVG9GdWxsV2lkdGgsaz1jLmNvbnRleHR1YWxTaGVldFByZXNlbnRhdGlvbkNvbmZpZz8ub3BlblRvU2lkZTthd2FpdCB0aGlzLnBhbmVsTG9hZGluZ1N0cmF0ZWd5LmV4ZWN1dGUoe2NvbW1hbmQ6YSxkYXRhOmMucGFuZWxMb2FkaW5nU3RyYXRlZ3ksZ246YXN5bmMgbD0+CntpZihsLnNoZWV0Vmlld01vZGVsKXtpZihmKXt2YXIgbT10aGlzLmNvbnRyb2xsZXI7bS5vPSEhZi5wcmV2ZW50Q2xvc2VXaGlsZUhvdmVyZWQ7bS5oaWRlRGVsYXlNcz1mLmhpZGVEZWxheU1zPz8wO20uc2hvd0RlbGF5TXM9Zi5zaG93RGVsYXlNcz8/MH1hd2FpdCB0aGlzLmNvbnRyb2xsZXIud2coe3ZpZXdNb2RlbDpsLnNoZWV0Vmlld01vZGVsLFVyOmUsZXhwYW5kVG9GdWxsV2lkdGg6aCxvcGVuVG9TaWRlOmt9LGQsYj8uZm9ybT8uZWxlbWVudCl9fSxidjp7bGF5ZXI6MH19KX19fTtxWltfLkxuXT1bXy5jTCwkWV07dmFyIFRxYT1jbGFzcyBleHRlbmRzIG9ae2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1hc3luYyByZXNvbHZlQ29tbWFuZChhKXt2YXIgYj1fLkIoYSxQcWEpO2ImJihhPWF3YWl0IF8uTEgoKSkmJmE/LmlzUmVhZHk/LigpJiYoYj1Rb2EoYSxiPy5sYW5ndWFnZUNvZGUpKSYmYS5zZXRBdWRpb1RyYWNrKGIpfX07dmFyIHJaPWNsYXNzIGV4dGVuZHMgb1p7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLmo9YX1hc3luYyByZXNvbHZlQ29tbWFuZChhKXt2YXIgYj1fLkIoYSxRcWEpO2lmKGImJihhPWF3YWl0IF8uTEgoKSkpe3ZhciBjPWI/Lmxhbmd1YWdlQ29kZTtiPWI/LmlzQXV0b1RyYW5zbGF0ZWQ7YS5nZXRWaWRlb0RhdGEmJl8uJE8oYSkubGVuZ3RoJiYoKGM9Um9hKGEsYyxiKSk/YS5zZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2siLGMpOihhLnNldE9wdGlvbigiY2FwdGlvbnMiLCJzdGlja3lMb2FkaW5nIix7fSksYS5zZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2siLHt9KSkpO2E9YS5pc1N1YnRpdGxlc09uKCk/Xy5hQSgiQ0FQVElPTl9PTl9UT0FTVCIsdm9pZCAwLCJTdWJ0aXRsZXMvQ0MgdHVybmVkIG9uIik6Xy5hQSgiQ0FQVElPTl9PRkZfVE9BU1QiLHZvaWQgMCwiU3VidGl0bGVzL0NDIHR1cm5lZCBvZmYiKTt0aGlzLmoucmVzb2x2ZUNvbW1hbmQoXy5hUShfLldMKGEpLDVFMykpfX19OwpyWltfLkxuXT1bXy5VRF07dmFyIHNaPWNsYXNzIGV4dGVuZHMgb1p7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLmo9YX1hc3luYyByZXNvbHZlQ29tbWFuZChhLGIpe18uQihhLFJxYSkmJihhPWF3YWl0IF8uTEgoKSkmJihhPVNvYShhKSkmJnRoaXMuai5yZXNvbHZlQ29tbWFuZChhLGIpfX07c1pbXy5Mbl09W18uVURdO3ZhciB0Wj1jbGFzcyBleHRlbmRzIG9ae2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5qPWF9YXN5bmMgcmVzb2x2ZUNvbW1hbmQoYSxiKXtfLkIoYSxTcWEpJiYoYT1hd2FpdCBfLkxIKCkpJiYoKGE9Vm9hKGEpKT90aGlzLmoucmVzb2x2ZUNvbW1hbmQoYSxiKTooYj1fLmFBKCJDTE9TRURfQ0FQVElPTlNfRElTQUJMRUQiLHZvaWQgMCwiTm8gY2FwdGlvbnMgYXJlIGF2YWlsYWJsZSBmb3IgdGhpcyB2aWRlbyIpLHRoaXMuai5yZXNvbHZlQ29tbWFuZChfLmFRKF8uV0woYikpKSkpfX07dFpbXy5Mbl09W18uVURdO3ZhciBzcWE9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5zaWduYWw9YTt0aGlzLmo9dGhpcy5vLmJpbmQodGhpcyk7dGhpcy5sb2dnaW5nRW5hYmxlZD0hMDt0aGlzLmlkcz1uZXcgU2V0O2EuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHRoaXMuaik7dGhpcy5qb2JJZD1fLllqKHRoaXMuaiwxRTQpfXd5KGEpe3RoaXMubG9nZ2luZ0VuYWJsZWQmJiF0aGlzLmlkcy5oYXMoYSkmJnRoaXMuaWRzLmFkZChhKX1vKCl7dGhpcy5sb2dnaW5nRW5hYmxlZCYmKHRoaXMubG9nZ2luZ0VuYWJsZWQ9ITEsXy5qZi5BYSh0aGlzLmpvYklkKSx0aGlzLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsdGhpcy5qKSxXb2EodGhpcykpfX07dmFyIFJYO3ZhciBVcWE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLk9tPW5ldyBNYXA7dGhpcy5qPW5ldyBNYXB9T3ooYSxiKXtpZihhKXt0aGlzLk9tLnNldChhLGIpO3ZhciBjPXRoaXMuai5nZXQoYSk7YyYmKGMucmVzb2x2ZShiKSx0aGlzLmouZGVsZXRlKGEpKX19fTt2YXIgYVo9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLm89YTt0aGlzLnY9Yn1qKCl7aWYodGhpcy5wYW5lbExvYWRpbmdTdHJhdGVneSYmdGhpcy5wYW5lbExvYWRpbmdTdHJhdGVneS5pbmxpbmVDb250ZW50KXJldHVybiB0aGlzLnBhbmVsTG9hZGluZ1N0cmF0ZWd5LmlubGluZUNvbnRlbnR9YXN5bmMgZXhlY3V0ZShhKXt2YXIgYj1hLlRJLGM9YS5wYXJlbnRWZSxkPWEuYnYsZT1hLmduLGY9YS5jb21tYW5kO3RoaXMucGFuZWxMb2FkaW5nU3RyYXRlZ3k9YS5kYXRhOyhhPXRoaXMucGFuZWxMb2FkaW5nU3RyYXRlZ3k/LnNjcmVlblZlP3RoaXMucGFuZWxMb2FkaW5nU3RyYXRlZ3k/LnNjcmVlblZlOmIpJiZfLkRPKHRoaXMudixhLGMsZCk7KGM9dGhpcy5qKCkpJiZhd2FpdCBlKGMpO3RoaXMucGFuZWxMb2FkaW5nU3RyYXRlZ3k/LnJlcXVlc3RUZW1wbGF0ZSYmKGY9YXdhaXQgJG9hKHRoaXMsZikpJiZhd2FpdCBlKGYpfX07YVpbXy5Mbl09W18uSXksXy5PV107dmFyIHBxYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaj10aGlzLm89ITE7dGhpcy5zaG93RGVsYXlNcz10aGlzLmhpZGVEZWxheU1zPTA7dGhpcy5EPSExO3RoaXMuST0oKT0+e3RoaXMuaj0hMH07dGhpcy5aPSgpPT57dGhpcy5qPSExfTt0aGlzLlU9KCk9Pnt0aGlzLmo9ITB9O3RoaXMuSz0oKT0+e3RoaXMuaj0hMX19UHooYSxiPSExKXtiP3RoaXMuTT1hOnRoaXMuY29udGFpbmVyPWF9YXN5bmMgd2coYSxiLGM9Yil7V1godGhpcyk7dGhpcy5zaG93RGVsYXlNcz90aGlzLlk9c2V0VGltZW91dChhc3luYygpPT57YXdhaXQgJFgodGhpcyxhLGIsYyl9LHRoaXMuc2hvd0RlbGF5TXMpOmF3YWl0ICRYKHRoaXMsYSxiLGMpfWFzeW5jIEplKCl7V1godGhpcyk7dGhpcy5oaWRlRGVsYXlNcz90aGlzLkI9c2V0VGltZW91dChhc3luYygpPT57YXdhaXQgYVkodGhpcyl9LHRoaXMuaGlkZURlbGF5TXMpOmF3YWl0IGFZKHRoaXMpfWFzeW5jIGRtKCl7cmV0dXJuIFVYKHRoaXMpPy5kbSgpPz8KITF9fTt2YXIgb3BhPVsidG91Y2htb3ZlIiwic2Nyb2xsIl07dmFyIHVaPSExO3ZhciBjWT0hMTt2YXIgbnBhPXtscihhKXthLnBhcmVudElkPT1udWxsJiYodVp8fChiWSgpLHNldEludGVydmFsKGJZLDZFNSksdVo9ITApLGZZKGEsIndlYl90cmFjaW5nX2FjdGlvbiIpKX19O3ZhciBoWSxLcWE9e2lMOl8ueCgid2ViX3RyYWNpbmdfYWxsX2NvbXBvbmVudHMiKSxRdjpfLngoIndlYl90cmFjaW5nX2V4cG9ydF90b19jc2kiKSxIdjpmdW5jdGlvbihhLGIpe2E9Xy5yaihhLGIpO3JldHVybiBBcnJheS5pc0FycmF5KGEpP18uSHcoYSxjPT5TdHJpbmcoY3x8IiIpKTpbU3RyaW5nKGF8fCIiKV19KCJ3ZWJfdHJhY2luZ19lbmFibGVkX3NwYW5zIiksUnY6Xy54KCJ3ZWJfdHJhY2luZ19leHBvcnRfdG9fZGV2dG9vbHMiKSxNcTpfLnNqKCJ0ZWxfbWF4X2JyZWFkY3J1bWJzIiwwKX07aFk9bmV3IExxYTt2YXIga3BhPXtSZW5kZXI6IkNPV19TUEFOX1RZUEVfUkVOREVSIixPbkluaXQ6IkNPV19TUEFOX1RZUEVfT05fSU5JVCIsRWZmZWN0OiJDT1dfU1BBTl9UWVBFX0VGRkVDVCIsQ29tcHV0ZWQ6IkNPV19TUEFOX1RZUEVfQ09NUFVURUQiLFNpZ25hbFVwZGF0ZToiQ09XX1NQQU5fVFlQRV9TSUdOQUxfVVBEQVRFIixSZW5kZXJFZmZlY3Q6IkNPV19TUEFOX1RZUEVfUkVOREVSX0VGRkVDVCIsQ3JlYXRlUmVhY3RpdmVDb21wb25lbnQ6IkNPV19TUEFOX1RZUEVfQ09NUE9ORU5UX1JFTkRFUiJ9O3ZhciBtcGE9Xy54KCJ3ZWJfc2hvcnRzX2VuYWJsZV90cmFjaW5nIik7dmFyIHRwYT1bImh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20iLCJodHRwczovL3R2LnlvdXR1YmUuY29tIiwiaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20iLCJodHRwczovL3d3dy55b3V0dWJlLmNvbSJdLHZwYT1fLnNqKCJ3aWxfaWNvbl9tYXhfY29uY3VycmVudF9mZXRjaGVzIixJbmZpbml0eSksWlk9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMpe3RoaXMuRmE9YTt0aGlzLktrPWI7dGhpcy5ZPXt9O3RoaXMuRD17fTt0aGlzLm89e307dGhpcy5JPXRoaXMuY291bnRlcj0wO3RoaXMuQj0hIV8udS5jYWNoZXM7dGhpcy5VPVByb21pc2UucmVzb2x2ZSh2b2lkIDApO3RoaXMuWj12b2lkIDA7dGhpcy52PW51bGw7dGhpcy5NPV8ueCgid2lsX2ljb25fdXNlX21hc2tfcmVuZGVyaW5nIik/MTowO3RoaXMub2E9Xy54KCJ3aWxfaWNvbl9uZXR3b3JrX2ZpcnN0Iik7dGhpcy5NYT1fLngoIndpbF9pY29uX3JlbmRlcl93aGVuX2lkbGUiKTt0aGlzLlFhPSFfLngoIndpbF9pY29uX2xvYWRfaW1tZWRpYXRlbHkiKTsKdGhpcy5LPSExO2E9KCk9Pnt0aGlzLkImJih0aGlzLlU9Xy51LmNhY2hlcy5vcGVuKCJ5dC1pY29ucyIpLnRoZW4oZD0+dGhpcy5aPWQpLmNhdGNoKCgpPT57dGhpcy5CPSExfSkpfTtjPWM/LigpfHx7fTtmb3IobGV0IFtkLGVdb2YgT2JqZWN0LmVudHJpZXMoYykpYz1kLGI9Xy5mQyhlKSxqWShiKSx0aGlzLkRbY109Yi5jbG9uZU5vZGUoITApO3RoaXMuSz1xcGEodGhpcyk7dGhpcy5LIGluc3RhbmNlb2YgUHJvbWlzZT90aGlzLksudGhlbihhKTphKCl9aihhKXtyZXR1cm4hIXRoaXMubWYoYSl9YXN5bmMgeWEoYSl7aWYoYS5sZW5ndGgpe3ZhciBiPVtdO2ZvcihsZXQgYyBvZiBhKShhPXRoaXMubWYoYykpJiYhdGhpcy5EW2EudXJsXSYmYi5wdXNoKGtZKHRoaXMsYSkudGhlbigoKT0+e30pLmNhdGNoKCgpPT57fSkpO1Byb21pc2UuYWxsKGIpfX1weShhKXt2YXIgYj10aGlzLm1mKGEpO3JldHVybiBiP3RoaXMuTT09PTE/bFkodGhpcyxiLHRoaXMuTSk6KGE9dGhpcy5EW2IudXJsXSk/CihhPWEuY2xvbmVOb2RlKCEwKSxuWSh0aGlzLGEpLGxZKHRoaXMsYix0aGlzLk0sYSkpOmtZKHRoaXMsYikudGhlbihjPT57dmFyIGQ9Yz8wOjE7blkodGhpcyxjKTtyZXR1cm4gbFkodGhpcyxiLGQsYyl9KTooXy5IcChuZXcgXy5YaigiSWNvbiBub3QgZm91bmQiLHtpY29uU2hhcGU6YX0pKSwoKT0+e30pfWFzeW5jIGdhKGEsYil7cmV0dXJuIHBZKHRoaXMsYSkudGhlbihjPT57d3BhKHRoaXMsYSxjLGIpO3JldHVybiBjfSl9YXN5bmMgaGEoYSxiKXtyZXR1cm4gYj9iLm1hdGNoKGEpLnRoZW4oYz0+YyYmYy5vaz9jOlByb21pc2UucmVqZWN0KCkpOlByb21pc2UucmVqZWN0KCl9bWYoYSl7cmV0dXJuIHRoaXMuRmEubWYoYSl9fTtaWVtfLkxuXT1bXy5tTyxfLmxGLF8uSW4oXy5vTyldO3ZhciB5cGE9e0FDQ0VTU19USU1FOiJjbG9jayIsQUNDT1VOVF9CT1g6Xy53KCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJXRUJfQ1JFQVRPUiI/InBlcnNvbl9ib3giOiJwZXJzb25fYWNjb3VudCIsQUNDT1VOVF9CT1hfQ0FJUk86InBlcnNvbl9hY2NvdW50X2NhaXJvIixBQ0NPVU5UX0NJUkNMRToicGVyc29uX2NpcmNsZSIsQUNDT1VOVF9DSVJDTEVfQ0FJUk86InBlcnNvbl9jaXJjbGVfY2Fpcm8iLEFDQ09VTlRfTElOS0VEOiJhY2NvdW50X2xpbmtfc3VjY2VzcyIsQUNDT1VOVF9VTkxJTktFRDoiYWNjb3VudF9saW5rIixBRERfRlJJRU5EOiJwZW9wbGUiLEFERF9NT0RFUkFUT1I6InNoaWVsZF9hZGQiLEFERF9UT19MSUJSQVJZOiJib29rbWFyayIsQUREX1RPX1BMQVlMSVNUOiJhZGQiLEFERF9UT19RVUVVRV9UQUlMOiJsaXN0X3F1ZXVlIixBRERfVE9fUkVNT1RFX1FVRVVFOiJsaXN0X211c2ljIixBRERfVE9fV0FUQ0hfTEFURVI6ImNsb2NrIixBRERfVklERU9fTElOSzoiZmlsbV9zdHJpcF9hZGQiLApBTEVSVF9XQVJOX1JFRDoiYWxlcnRfdHJpYW5nbGUiLEFSUk9XX0JBQ0s6ImFycm93X2xlZnQiLEFSUk9XX0RJQUdPTkFMX1VQX1JJR0hUX0ZJTExFRDoiYXJyb3dfZGlhZ29uYWxfdXBfcmlnaHQiLEFSUk9XX0RST1BfRE9XTjoiY2hldnJvbl9kb3duIixBUlJPV19EUk9QX1VQOiJjaGV2cm9uX3VwIixBUlJPV19GT1JXQVJEOiJhcnJvd19yaWdodCIsQVJUSVNUOiJwZXJzb25fbXVzaWMiLEFVRElPVFJBQ0s6ImF1ZGlvIixBVVRPX0FXRVNPTUU6InNwYXJrbGUiLEFWQVRBUl9BTk9OWU1PVVM6InBlcnNvbl9jaXJjbGUiLEFWQVRBUl9MT0dHRURfT1VUOiJwZXJzb25fY2lyY2xlIixCQUNLOiJhcnJvd19sZWZ0IixCQVJfQ0hBUlQ6ImJhcl9ncmFwaCIsQkxPQ0s6InNsYXNoX2NpcmNsZV9sZWZ0IixCTE9DS19VU0VSOiJzbGFzaF9jaXJjbGVfbGVmdCIsQk9PS01BUktfQk9SREVSOiJib29rbWFyayIsQlJFQUtJTkdfTkVXU19BTFRfMToiYXJ0aWNsZV9hbGVydCIsQlJPQURDQVNUX0NBSVJPOiJwb2RjYXN0X2NhaXJvIiwKQlVHX1JFUE9SVDoiYnVnIixDQU1FUkFfQUxUOiJjYW1lcmEiLENBTVBBSUdOOiJtZWdhcGhvbmUiLENBTkNFTDoieF9jaXJjbGUiLENBUFRJT05TOiJjbG9zZWRfY2FwdGlvbiIsQ0FTVF9PVVRMSU5FOiJjaHJvbWVjYXN0IixDSEFOTkVMX05PVElGSUNBVElPTl9QUkVGRVJFTkNFX09GRjoiYmVsbCIsQ0hBTk5FTF9OT1RJRklDQVRJT05fUFJFRkVSRU5DRV9PTjoiYmVsbF9vbiIsQ0hBVDoibWVzc2FnZV9idWJibGVfbGVmdCIsQ0hBVF9CVUJCTEU6Im1lc3NhZ2VfYnViYmxlX2VtcHR5IixDSEFUX1NQQVJLOiJzcGFya19tZXNzYWdlX2J1YmJsZV9sZWZ0IixDSEVDS19CT1hfT1VUTElORV9CTEFOSzoiYm94X2VtcHR5IixDSEVDS19DSVJDTEVfT1VUTElORToiY2hlY2tfY2lyY2xlIixDSEVDS19DSVJDTEVfVEhJQ0s6ImNoZWNrX2NpcmNsZSIsQ0xBUklGWToiYXJ0aWNsZV9jbGFyaWZ5IixDTE9TRURfQ0FQVElPTl9TRUxFQ1RFRDoiY2xvc2VkX2NhcHRpb24iLENMT1NFOiJ4X21hcmsiLApDTE9VRF9VUExPQUQ6ImNsb3VkX2Fycm93X3VwIixDT0xMQVBTRToiY2hldnJvbl91cCIsQ09MTEFQU0VfQ0FJUk86ImNoZXZyb25fdXBfY2Fpcm8iLENPTExFQ1RJT046ImxheWVycyIsQ09MT1JfTEVOUzoicGFsZXR0ZSIsQ09NTUVOVDoibWVzc2FnZV9idWJibGVfcmlnaHQiLENPTlNFTlRfU0hJRUxEOiJwZXJzb25fc2hpZWxkIixDT05URU5UX0NVVDoic2Npc3NvcnMiLENPTlRFTlRfQ1VUX0NBSVJPOiJzY2lzc29yc19jYWlybyIsQ09VUlNFOl8ueCgid2ViX2VuYWJsZV9jb3Vyc2VfaWNvbl91cGRhdGUiKT8iY3JlYXRvcl9hY2FkZW15IjoibGlnaHRidWxiIixDT1VSU0VfQ0FJUk86Xy54KCJ3ZWJfZW5hYmxlX2NvdXJzZV9pY29uX3VwZGF0ZSIpPyJjcmVhdG9yX2FjYWRlbXlfY2Fpcm8iOiJsaWdodGJ1bGJfY2Fpcm8iLENSRUFUSU9OX0xJVkU6InJhZGFyX2xpdmUiLENSRUFUSU9OX1BPU1Q6ImJveF9wZW5jaWwiLENSRUFUSU9OX1VQTE9BRDoibXlfdmlkZW9zIixDUkVBVElPTl9VUExPQURfUkVEOiJ1cGxvYWQiLApDUkVBVE9SX01FVEFEQVRBX01PTkVUSVpBVElPTjoiZG9sbGFyX3NpZ24iLENSRUFUT1JfTUVUQURBVEFfTU9ORVRJWkFUSU9OX09GRjoiZG9sbGFyX3NpZ25fb2ZmIixDUkVBVE9SX1NUVURJTzoieW91dHViZV9zdHVkaW8iLERBU0hCT0FSRDoiZ3JpZF9hc3ltbWV0cmljYWwiLERFTEVURToidHJhc2hfY2FuIixERUxFVEVfU1dFRVA6InRyYXNoX2NhbiIsREVTS1RPUDoibGFwdG9wIixESVNMSUtFOiJ0aHVtYl9kb3duIixESVNMSUtFX1NFTEVDVEVEOiJ0aHVtYl9kb3duIixESVNNSVNTQUw6InhfbWFyayIsRElTTUlTU19RVUVVRToibGlzdF9yZW1vdmUiLERPTkVfQUxMOiJjaGVja19kb3VibGUiLERPV05fQVJST1c6ImFycm93X2Rvd24iLERPX05PVF9ESVNUVVJCOiJzbGFzaF9jaXJjbGVfbGVmdCIsRFJBRlQ6InBhcGVyX2Nvcm5lcl9mb2xkZWQiLERSQUdfSEFORExFOiJiYXJzXzIiLEVESVQ6InBlbmNpbCIsRU1PSkk6ImZhY2VfdmVyeV9oYXBweSIsRU1PSklfRkxBR1M6ImZsYWciLApFTU9KSV9PQkpFQ1RTOiJsaWdodGJ1bGIiLEVNT0pJX1BFT1BMRToiZmFjZV92ZXJ5X2hhcHB5IixFTU9KSV9SRUNFTlQ6ImNsb2NrIixFTVBUWV9IRUFSVDoiaGVhcnQiLEVNUFRZX0xJS0U6InRodW1iX3VwIixFUlJPUl9CTEFDSzoiYWxlcnRfY2lyY2xlIixFUlJPUl9PVVRMSU5FOiJhbGVydF9jaXJjbGUiLEVYSVRfQVBQOiJhcnJvd19pbiIsRVhJVF9UT19BUFA6ImFycm93X2luIixFWFBBTkQ6ImNoZXZyb25fZG93biIsRVhQQU5EX0FMTDoiY2hldnJvbl9leHBhbmQiLEVYUEFORF9DQUlSTzoiY2hldnJvbl9kb3duX2NhaXJvIixFWFBBTkRfTEVTUzoiY2hldnJvbl91cCIsRVhQQU5EX01PUkU6ImNoZXZyb25fZG93biIsRVhQTE9SRToiY29tcGFzcyIsRVhQTE9SRV9ERVNUSU5BVElPTjoiY29tcGFzcyIsRVhURVJOQUxfTElOSzoib3Blbl9uZXciLEZBQl9VUExPQUQ6InVwbG9hZCIsRkFDRV9IQVBQWV9PVVRMSU5FOiJmYWNlX2hhcHB5IixGQUNUX0NIRUNLOiJhcnRpY2xlX2NoZWNrIiwKRkFTSElPTl9MT0dPOiJmYXNoaW9uIixGQVNISU9OX0xPR09fQ0FJUk86ImZhc2hpb25fY2Fpcm8iLEZBVk9SSVRFOiJoZWFydCIsRkVFREJBQ0s6Im1lc3NhZ2VfYnViYmxlX2FsZXJ0IixGRUVEQkFDS19DQUlSTzoibWVzc2FnZV9idWJibGVfYWxlcnRfY2Fpcm8iLEZJTExfQVJST1dfU09MSURfRE9XTl8xNjoiYXJyb3dfc29saWRfZG93biIsRklMTF9BUlJPV19TT0xJRF9VUF8xNjoiYXJyb3dfc29saWRfdXAiLEZJTExfRE9MTEFSX1NJR05fSEVBUlRfMTI6ImRvbGxhcl9zaWduX2hlYXJ0IixGSUxURVI6Im1lbnVfZmlsdGVyIixGSVJTVF9QQUdFOiJjaGV2cm9uX2ZpcnN0IixGTEFHOiJmbGFnIixGVUxMX0hFQVJUOiJoZWFydCIsR0FNRV9DT05TT0xFX0RQQUQ6ImdhbWVfY29uc29sZV9kcGFkIixHQU1FX0NPTlNPTEVfRkFDRV9CVVRUT05TOiJnYW1lX2NvbnNvbGVfZmFjZV9idXR0b25zIixHQU1JTkdfTE9HTzoiZ2FtaW5nIixHQU1JTkdfTE9HT19DQUlSTzoiZ2FtaW5nX2NhaXJvIiwKR09fVE9fUEFHRToiYXJyb3dfcmlnaHQiLEdST1VQUzoicGVvcGxlX2dyb3VwIixIQVBQWToiZmFjZV9oYXBweSIsSEVBTFRIX0FORF9TQUZFVFk6InNoaWVsZF9wbHVzIixIRUxQOiJxdWVzdGlvbl9jaXJjbGUiLEhFTFBfQ0FJUk86InF1ZXN0aW9uX2NpcmNsZV9jYWlybyIsSEVMUF9PVVRMSU5FOiJxdWVzdGlvbl9jaXJjbGUiLEhJREU6InNsYXNoX2NpcmNsZV9sZWZ0IixJTUFHRToiaW1hZ2UiLElORklOSVRZX0lDT046ImluZmluaXR5IixJTkZPOiJpbmZvX2NpcmNsZSIsSU5GT19PVVRMSU5FOiJpbmZvX2NpcmNsZSIsSU5TRVJUX0NIQVJUOiJiYXJfZ3JhcGhfYm94X3ZlcnRpY2FsIixJTlNFUlRfQ0hBUlRfT1VUTElORUQ6ImJhcl9ncmFwaF9ib3hfdmVydGljYWwiLElOU0VSVF9QSE9UTzoiaW1hZ2UiLEtFRVA6InBpbiIsS0VFUF9PRkY6InBpbl9vZmYiLEtFWUJPQVJEOiJrZXlib2FyZCIsS0VZQk9BUkRfQVJST1dfRE9XTjoiY2hldnJvbl9kb3duIixLRVlCT0FSRF9BUlJPV19VUDoiY2hldnJvbl91cCIsCktJRFNfQkxPQ0s6InNsYXNoX2NpcmNsZV9sZWZ0IixMQU5HVUFHRToiZ2xvYmUiLExBU1RfUEFHRToiY2hldnJvbl9sYXN0IixMQVVOQ0g6Im9wZW5fbmV3IixMRUFSTklORzoibGlnaHRidWxiIixMRUFSTklOR19DQUlSTzoibGlnaHRidWxiX2NhaXJvIixMSUJSQVJZX0FERDp0WSgibGlicmFyeV9hZGQiKSxMSUJSQVJZX09VVExJTkU6ImxpYnJhcnkiLExJQlJBUllfUkVNT1ZFOnRZKCksTElHSFRCVUxCX1NQQVJLX09VVExJTkU6ImxpZ2h0YnVsYl9zcGFyayIsTElLRVNfUExBWUxJU1Q6InRodW1iX3VwIixMSUtFU19QTEFZTElTVF9DQUlSTzoidGh1bWJfdXBfY2Fpcm8iLExJS0U6InRodW1iX3VwIixMSUtFX1NFTEVDVEVEOiJ0aHVtYl91cCIsTElWRToicmFkYXJfbGl2ZSIsTElWRV9DQUlSTzoicmFkYXJfbGl2ZV9jYWlybyIsTElWRV9VTkxJU1RFRDoibGluayIsTE9DQVRJT05fT046ImxvY2F0aW9uX3BvaW50IixMT0NBVElPTl9QSU46ImxvY2F0aW9uX3BvaW50IixMT09QOiJhcnJvd19yZXBlYXQiLApMT09QX0FDVElWRToiYXJyb3dfcmVwZWF0IixMT09QX09ORToiYXJyb3dfcmVwZWF0XzEiLExPT1BfT05FX0FDVElWRToiYXJyb3dfcmVwZWF0XzEiLE1FSDoiZmFjZV9tZWgiLE1FTUJFUlNfT05MWV9NT0RFX09GRjoibWVzc2FnZV9idWJibGVfbGVmdCIsTUVOVToiYmFyc18zIixNRVNTQUdFOiJtZXNzYWdlX2J1YmJsZV9sZWZ0IixNSUNST1BIT05FX09OOiJtaWMiLE1JWDoieW91dHViZV9taXgiLE1PTkVUSVpBVElPTl9PTjoiZG9sbGFyX3NpZ25fY2lyY2xlIixNT05FWV9GSUxMOiJkb2xsYXJfc2lnbl9jb250YWluZXIiLE1PTkVZX0ZJTExfSlBZOiJ5ZW5fc2lnbl9jb250YWluZXIiLE1PTkVZX0hFQVJUOiJkb2xsYXJfc2lnbl9oZWFydCIsTU9SRV9IT1JJWjoib3ZlcmZsb3dfaG9yaXpvbnRhbCIsTU9SRV9WRVJUOiJvdmVyZmxvd192ZXJ0aWNhbCIsTVVTSUM6ImF1ZGlvIixNVVNJQ19DQUlSTzoiYXVkaW9fY2Fpcm8iLE1VU0lDX05PVEVfU1lNQk9MOiJtdXNpYyIsTVVTSUNfU0hVRkZMRToiYXJyb3dfc2h1ZmZsZSIsCk1ZX0NIQU5ORUw6InBlcnNvbl9jaXJjbGUiLE1ZX0xPQ0FUSU9OOiJsb2NhdGlvbl9wb2ludCIsTkVXU19TVE9SWToibmV3cyIsTkVYVDoiY2hldnJvbl9yaWdodCIsTk9USUZJQ0FUSU9OUzoiYmVsbCIsTk9USUZJQ0FUSU9OU19BQ1RJVkU6ImJlbGxfb24iLE5PVElGSUNBVElPTlNfQ0FJUk86ImJlbGxfY2Fpcm8iLE5PVElGSUNBVElPTlNfRE9ORV9DSEVDS01BUks6ImNoZWNrIixOT1RJRklDQVRJT05TX0lOQk9YOiJiZWxsIixOT1RJRklDQVRJT05TX05PTkU6ImJlbGwiLE5PVElGSUNBVElPTlNfT0ZGOiJiZWxsX29mZiIsTk9UX0lOVEVSRVNURUQ6InNsYXNoX2NpcmNsZV9sZWZ0IixPRkZJQ0lBTF9BUlRJU1RfQkFER0U6ImF1ZGlvIixPRkZMSU5FX0NMT1VEOiJjbG91ZF9vZmYiLE9GRkxJTkVfRE9XTkxPQUQ6ImRvd25sb2FkIixPRkZMSU5FX0RPV05MT0FEX0NBSVJPOiJkb3dubG9hZF9jYWlybyIsT0ZGTElORV9QQVVTRToicGF1c2UiLE9QRU5fSU5fTkVXOiJvcGVuX25ldyIsCk9VVExJTkVfQURKVVNUOiJhZGp1c3QiLE9VVExJTkVfQVJST1dfU09MSURfRE9XTl8xNjoiYXJyb3dfc29saWRfZG93biIsT1VUTElORV9BUlJPV19TT0xJRF9VUF8xNjoiYXJyb3dfc29saWRfdXAiLE9VVExJTkVfQkFHOiJiYWciLE9VVExJTkVfQ0xPQ0tfSEFMRl9DSVJDTEU6ImNsb2NrX2hhbGZfY2lyY2xlIixPVVRMSU5FX01PQklMRV9ET1dOTE9BRDoibW9iaWxlX2Rvd25sb2FkIixPVVRMSU5FX09WRVJGTE9XX0hPUklaT05UQUxfMzI6Im92ZXJmbG93X2hvcml6b250YWwiLE9VVExJTkVfT1ZFUkZMT1dfVkVSVElDQUw6Im92ZXJmbG93X3ZlcnRpY2FsIixPVVRMSU5FX1lPVVRVQkVfSU1QUk9WRV9UVjoieW91dHViZV9pbXByb3ZlX3R2IixQQUlEOiJkb2xsYXJfc2lnbiIsUEFVU0VfT1VUTElORUQ6InBhdXNlIixQQVlNRU5UOiJjcmVkaXRfY2FyZCIsUEVSU09OX1JBREFSX0ZJTExFRDoicGVyc29uX3JhZGFyIixQSE9ORV9ET1dOTE9BRDoibW9iaWxlX2Rvd25sb2FkIixQTEFZQUJMRVNfTE9HTzoidGljX3RhY190b2UiLApQTEFZQUJMRVNfTE9HT19DQUlSTzoidGljX3RhY190b2VfY2Fpcm8iLFBMQVlMSVNUUzoibGlzdF9wbGF5X2Fycm93IixQTEFZTElTVFNfQ0FJUk86Imxpc3RfcGxheV9hcnJvd19jYWlybyIsUExBWUxJU1RfQUREOnRZKCJsaXN0X2FkZCIpLFBMQVlMSVNUX0FERF9DSEVDSzp0WSgibGlzdF9jaGVjayIpLFBMQVlMSVNUX1BMQVk6Imxpc3RfcGxheV9hcnJvdyIsUExBWV9BTEw6InBsYXlfYXJyb3ciLFBMQVlfQ0lSQ0xFOiJwbGF5X2Fycm93X2NpcmNsZSIsUExBWV9PVVRMSU5FRDoicGxheV9hcnJvd19jaXJjbGUiLFBSSVZBQ1lfSU5GTzoic2hpZWxkIixQUklWQUNZX1BSSVZBVEU6ImxvY2siLFBSSVZBQ1lfUFVCTElDOiJlYXJ0aCIsUFJJVkFDWV9VTkxJU1RFRDoibGluayIsUFJPTU9URToibWVnYXBob25lIixQVVJDSEFTRVM6InByaWNlX3RhZyIsUFVSQ0hBU0VfU1VQRVJfQ0hBVDoic3VwZXJfY2hhdCIsUFVSQ0hBU0VfU1VQRVJfU1RJQ0tFUjoic3VwZXJfc3RpY2tlciIsUVVFU1RJT05fQU5TV0VSOiJtZXNzYWdlX2J1YmJsZV9xdWVzdGlvbiIsClFVRVVFX1BMQVlfTEFTVDoibGlzdF9xdWV1ZV9sYXN0IixRVUVVRV9QTEFZX05FWFQ6Imxpc3RfcGxheV9hcnJvdyIsUkVNSVhfRklMTEVEOiJ5b3V0dWJlX3Nob3J0c19yZW1peCIsUkVNT1ZFOiJiYXJfY2lyY2xlIixSRU1PVkVfQ0lSQ0xFOiJiYXJfY2lyY2xlIixSRU1PVkVfQ0lSQ0xFX09VVExJTkU6ImJhcl9jaXJjbGUiLFJFTU9WRV9ET05FOiJjaGVja19kb3VibGVfb2ZmIixSRU1PVkVfRlJPTV9ISVNUT1JZOiJiYXJfY2lyY2xlIixSRU1PVkVfRlJPTV9QTEFZTElTVDoiYmFyX2NpcmNsZSIsUkVNT1ZFX01PREVSQVRPUjoic2hpZWxkX29mZiIsUkVQTEFZOiJhcnJvd19jaXJjbGUiLFJFUExBWV8xMDoic2tpcF9iYWNrXzEwIixSRVBPUlRfUFJPQkxFTToiYWxlcnRfdHJpYW5nbGUiLFNBRDoiZmFjZV9zYWQiLFNBVkVfUExBWUxJU1Q6ImJvb2ttYXJrIixTQ0hFRFVMRToiY2xvY2siLFNDSE9PTDoiY3JlYXRvcl9hY2FkZW15IixTQ1JFRU5fRlVMTFNDUkVFTjoic2NyZWVuX2Z1bGwiLApTRUFSQ0hfSElTVE9SWToiYXJyb3dfdGltZSIsU0VMTDoicHJpY2VfdGFnIixTRVRUSU5HUzoiZ2VhciIsU0VUVElOR1NfQ0FJUk86ImdlYXJfY2Fpcm8iLFNFVFRJTkdTX0xJR0hUOiJnZWFyIixTRVRUSU5HU19NQVRFUklBTDoiZ2VhciIsU0hBUkVfQVJST1c6InNoYXJlIixTSElFTERfV0lUSF9BVkFUQVI6InBlcnNvbl9zaGllbGQiLFNIT1BQSU5HX0JBRzoiYmFnIixTSE9QUElOR19CQUdfQ0FJUk86ImJhZ19jYWlybyIsU0hPUFBJTkdfQ0FSVDoiY2FydCIsU0hPUlRTX0NPTU1FTlQ6InlvdXR1YmVfc2hvcnRzX21lc3NhZ2VfYnViYmxlX3JpZ2h0IixTSE9SVFNfRElTTElLRToieW91dHViZV9zaG9ydHNfdGh1bWJfZG93biIsU0hPUlRTX0xJS0U6InlvdXR1YmVfc2hvcnRzX3RodW1iX3VwIixTSE9SVFNfU0hBUkU6InlvdXR1YmVfc2hvcnRzX3NoYXJlIixTSFVGRkxFOiJhcnJvd19zaHVmZmxlIixTTE9XX01PREVfT0ZGOiJtZXNzYWdlX2J1YmJsZV9sZWZ0IixTT0NJQUw6InBlb3BsZSIsClNPUlQ6Im1lbnVfc29ydCIsU1BBUktfTElHSFRCVUxCX09VVExJTkU6InNwYXJrX2xpZ2h0YnVsYiIsU1BFRURfMVg6IjF4IixTUEVFRF8xX1BPSU5UXzJYOiIxX3BvaW50XzJ4IixTUEVFRF8xX1BPSU5UXzVYOiIxX3BvaW50XzV4IixTUEVFRF8xX1BPSU5UXzhYOiIxX3BvaW50Xzh4IixTUEVFRF8yWDoiMngiLFNQRUVEX1BPSU5UXzJYOiJwb2ludF8yeCIsU1BFRURfUE9JTlRfOFg6InBvaW50Xzh4IixTUE9OU09SU0hJUF9TVEFSOiJzdGFyX2NpcmNsZSIsU1RBRkZfUElDSzoic3BvdGxpZ2h0IixTVEFSVF9EVlI6ImFkZCIsU1RBUl9CT1JERVI6InN0YXIiLFNUQVJfQ0lSQ0xFX1JJQkJPTl9PVVRMSU5FOiJzdGFyX2NpcmNsZV9yaWJib24iLFNUSUNLRVJfRU1PVElDT046ImZhY2VfaGFwcHkiLFNUT1BfRFZSOiJzdG9wIixTVUJTQ1JJQkU6InlvdXR1YmVfbG9nb19pY29uIixTVUJTQ1JJQkVfUExVUzoiYWRkX2NhaXJvIixTVUJTQ1JJUFRJT05fTUFOQUdFUjoiZ2VhciIsU1VQRVJWSVNPUl9BQ0NPVU5UOiJwZW9wbGUiLApTVVBFUl9DSEFUX0ZPUl9HT09EOiJoYW5kc19oZWFydCIsU1dBUF9IT1JJWjoiYXJyb3dfc3dhcF9ob3Jpem9udGFsIixTV0lUQ0hfQUNDT1VOVFM6InBlcnNvbl9hY2NvdW50IixUQUJfQUNDT1VOVDoicGVyc29uIixUQUJfQUNUSVZJVFk6ImJlbGwiLFRBQl9CT09LTUFSSzoiYm9va21hcmsiLFRBQl9FWFBMT1JFOiJjb21wYXNzIixUQUJfSE9NRToiaG9tZSIsVEFCX0hPTUVfQ0FJUk86ImhvbWVfY2Fpcm8iLFRBQl9JTkJPWDoibWFpbCIsVEFCX0xJS0VEOiJ0aHVtYl91cCIsVEFCX01VU0lDX1BSRU1JVU06InlvdXR1YmVfbXVzaWMiLFRBQl9TSE9SVFM6InlvdXR1YmVfc2hvcnRzIixUQUJfU0hPUlRTX0NBSVJPOiJ5b3V0dWJlX3Nob3J0c19jYWlybyIsVEFCX1NVQlNDUklQVElPTlM6InN1YnNjcmlwdGlvbnMiLFRBQl9TVUJTQ1JJUFRJT05TX0NBSVJPOiJzdWJzY3JpcHRpb25zX2NhaXJvIixUQUJfVFJFTkRJTkc6ImZpcmUiLFRJTUVSOiJzdG9wd2F0Y2giLFRSQUlMRVI6InlvdXR1YmVfb3JpZ2luYWxzIiwKVFJFTkRJTkc6ImZpcmUiLFRSRU5ESU5HX0NBSVJPOiJmaXJlX2NhaXJvIixUUkVORElOR19ET1dOOiJyYXRpbmdfZG93biIsVFJFTkRJTkdfVVA6InJhdGluZ191cCIsVFJPUEhZOiJ0cm9waHkiLFRST1BIWV9DRUxFQlJBVElPTlM6ImZpcmV3b3JrcyIsVFVORToiYWRqdXN0IixVTkJMT0NLX1VTRVI6ImJhcl9jaXJjbGUiLFVOTElNSVRFRDoieW91dHViZV9sb2dvX2ljb24iLFVOUExVR0dFRF9MSVZFX0dVSURFOiJyYWRhcl9saXZlIixVTlBMVUdHRURfU1BPUlRTOiJleWVfb2ZmIixVUExPQURTOiJsaWJyYXJ5IixVUF9BUlJPVzoiYXJyb3dfdXAiLFZFUlRJQ0FMX0FMSUdOX0JPVFRPTToiZG93bmxvYWQiLFZFUllfSEFQUFk6ImZhY2VfdmVyeV9oYXBweSIsVkVSWV9TQUQ6ImZhY2VfdmVyeV9zYWQiLFZJREVPR0FNRV9BU1NFVDoiZ2FtaW5nIixWSURFT1M6InBsYXlfYXJyb3dfY2lyY2xlIixWSURFT19DQUxMOiJ2aWRlb19jYW1lcmFfYWRkIixWSURFT19MSUJSQVJZX1dISVRFOiJsaWJyYXJ5IiwKVklERU9fWU9VVFVCRToieW91dHViZV9sb2dvX2ljb24iLFZJRVdfTElTVDoibGlzdF92aWV3IixWSUVXX0xJU1RfQ0FJUk86Imxpc3Rfdmlld19jYWlybyIsVklTSUJJTElUWToiZXllIixWSVNJQklMSVRZX09GRjoiZXllX29mZiIsVk9MVU1FX01VVEU6InZvbHVtZV9vZmYiLFZPTFVNRV9VUDoidm9sdW1lX29uIixXQUxMUEFQRVI6ImltYWdlIixXQVJOSU5HOiJhbGVydF90cmlhbmdsZSIsV0FUQ0hfSElTVE9SWToiYXJyb3dfdGltZSIsV0FUQ0hfSElTVE9SWV9DQUlSTzoiYXJyb3dfdGltZV9jYWlybyIsV0FUQ0hfTEFURVI6ImNsb2NrIixXQVRDSF9MQVRFUl9DQUlSTzoiY2xvY2tfY2Fpcm8iLFdBVENIX1JFTEFURURfTUlYOiJ5b3V0dWJlX21peCIsV0hBVF9UT19XQVRDSDoiaG9tZSIsWU9VVFVCRV9DUkVBVEVfUkVEX0xPR086InlvdXR1YmVfY3JlYXRlX2xvZ28iLFlPVVRVQkVfTVVTSUNfTU9OT0NIUk9NRToieW91dHViZV9tdXNpYyIsWU9VVFVCRV9NVVNJQ19NT05PQ0hST01FX0NBSVJPOiJ5b3V0dWJlX211c2ljX2NhaXJvIiwKWU9VVFVCRV9TSE9SVFNfRklMTF9OT19UUklBTkdMRV9SRURfMTY6InlvdXR1YmVfc2hvcnRzX25vX3RyaWFuZ2xlIixZT1VUVUJFX1NIT1JUU19GSUxMX05PX1RSSUFOR0xFX1dISVRFXzE2OiJ5b3V0dWJlX3Nob3J0c19ub190cmlhbmdsZSIsWU9VVFVCRV9TSE9SVFNfT1VUTElORV8yNDoieW91dHViZV9zaG9ydHMiLFlUX09VVExJTkVfTVVTSUNfMjQ6Im11c2ljIn07dmFyIHhwYT17QUNDRVNTX1RJTUU6ImNsb2NrIixBQ0NPVU5UX0JPWDoicGVyc29uX3NxdWFyZSIsQUNDT1VOVF9CT1hfQ0FJUk86InBlcnNvbl9zcXVhcmUiLEFDQ09VTlRfQ0lSQ0xFOiJwZXJzb25fY2lyY2xlIixBQ0NPVU5UX0NJUkNMRV9DQUlSTzoicGVyc29uX2NpcmNsZSIsQUNDT1VOVF9MSU5LRUQ6ImFjY291bnRfbGluayIsQUNDT1VOVF9VTkxJTktFRDoiYWNjb3VudF9saW5rIixBRERfQ0lSQ0xFOiJhZGRfY2lyY2xlIixBRERfQ0lSQ0xFX09VVExJTkU6ImFkZF9jaXJjbGUiLEFERF9GUklFTkQ6InBlcnNvbl9jaGlsZCIsQUREX01PREVSQVRPUjoic2hpZWxkX2FkZCIsQUREX1RPX0xJQlJBUlk6ImJvb2ttYXJrIixBRERfVE9fUExBWUxJU1Q6ImFkZCIsQUREX1RPX1FVRVVFX1RBSUw6InF1ZXVlIixBRERfVE9fUkVNT1RFX1FVRVVFOiJwbGF5bGlzdF9hdWRpbyIsQUREX1RPX1dBVENIX0xBVEVSOiJjbG9jayIsQUREX1ZJREVPX0xJTks6ImZpbG1fc3RyaXBfYWRkIixBRE1JTl9QQU5FTF9TRVRUSU5HUzoicGVyc29uX2dlYXIiLApBTEVSVF9XQVJOX1JFRDoiYWxlcnRfdHJpYW5nbGUiLEFMSUdOX0xFRlQ6InRleHRfYWxpZ25fbGVmdCIsQVJST1dTX0FMRVJUOiJhcnJvd19zcGxpdF9hbGVydCIsQVJST1dfQkFDSzoiYXJyb3dfbGVmdCIsQVJST1dfQ0lSQ0xFOiJhcnJvd19jb3VudGVyY2xvY2t3aXNlIixBUlJPV19DSVJDTEVfUExBWToicmVwbGF5IixBUlJPV19DSVJDTEVfUklHSFQ6ImFycm93X2Nsb2Nrd2lzZSIsQVJST1dfRElBR09OQUw6ImFycm93X3VwX2xlZnQiLEFSUk9XX0RJQUdPTkFMX1VQX1JJR0hUOiJhcnJvd191cF9yaWdodCIsQVJST1dfRFJPUF9ET1dOOiJ0cmlhbmdsZV9kb3duIixBUlJPV19EUk9QX1VQOiJ0cmlhbmdsZV91cCIsQVJST1dfRk9SV0FSRDoiYXJyb3dfcmlnaHQiLEFSUk9XX1BBVVNFOiJwYXVzZV9oaXN0b3J5IixBUlJPV19VTkRPOiJ1bmRvIixBUlRJQ0xFOiJ0ZXh0X3BhZ2UiLEFSVElDTEVfQUxFUlQ6InRleHRfcGFnZV9hbGVydCIsQVJUSUNMRV9DSEVDSzoidGV4dF9wYWdlX2NoZWNrIiwKQVJUSUNMRV9DTEFSSUZZOiJ0ZXh0X3BhZ2VfaW5mbyIsQVJUSVNUOiJwZXJzb25fYXVkaW8iLEFVRElPVFJBQ0s6ImF1ZGlvIixBVURJT19CQURHRToiYXVkaW9fYmFkZ2UiLEFVRElPX1NVUlJPVU5EOiJzdXJyb3VuZF9zb3VuZCIsQVVUT19BV0VTT01FOiJzcGFya2xlcyIsQVZBVEFSX0FOT05ZTU9VUzoicGVyc29uX2NpcmNsZSIsQVZBVEFSX0xPR0dFRF9PVVQ6InBlcnNvbl9jaXJjbGUiLEJBQ0s6ImFycm93X2xlZnQiLEJBUl9DSEFSVDoiY2hhcnRfYmFyIixCQVJfQ0lSQ0xFOiJtaW51c19jaXJjbGUiLEJBUl9IT1JJWk9OVEFMOiJtaW51cyIsQkxPQ0s6ImNpcmNsZV9zbGFzaCIsQkxPQ0tfVVNFUjoiY2lyY2xlX3NsYXNoIixCT09LTUFSS19CT1JERVI6ImJvb2ttYXJrIixCT1hfT1BFTl9DSEVDSzoicXVpeiIsQk9YX1BFTkNJTDoic3F1YXJlX3BlbmNpbCIsQk9YX1NUQUNLXzM6InNxdWFyZTNfc3RhY2siLEJSRUFLSU5HX05FV1NfQUxUXzE6InRleHRfcGFnZV9hbGVydCIsCkJST0FEQ0FTVDoicG9kY2FzdCIsQlJPQURDQVNUX0NBSVJPOiJwb2RjYXN0IixCVUdfUkVQT1JUOiJidWciLENBTUVSQV9BTFQ6ImNhbWVyYSIsQ0FNUEFJR046Im1lZ2FwaG9uZSIsQ0FOQ0VMOiJ4X2NpcmNsZSIsQ0FQVElPTlM6ImNsb3NlZF9jYXB0aW9ucyIsQ0FTVF9JQ09OOiJjaHJvbWVjYXN0IixDQVNUX09VVExJTkU6ImNocm9tZWNhc3QiLENIQU5ORUxfTk9USUZJQ0FUSU9OX1BSRUZFUkVOQ0VfT0ZGOiJiZWxsIixDSEFOTkVMX05PVElGSUNBVElPTl9QUkVGRVJFTkNFX09OOiJiZWxsX3dhdmVzIixDSEFUOiJ0ZXh0X2J1YmJsZSIsQ0hBVF9CVUJCTEU6ImJ1YmJsZSIsQ0hFQ0tfQk9YOiJjaGVja19zcXVhcmUiLENIRUNLX0JPWF9PVVRMSU5FX0JMQU5LOiJzcXVhcmUiLENIRUNLX0NJUkNMRV9GSUxMRUQ6ImNoZWNrX2NpcmNsZSIsQ0hFQ0tfQ0lSQ0xFX09VVExJTkU6ImNoZWNrX2NpcmNsZSIsQ0hFQ0tfQ0lSQ0xFX1RISUNLOiJjaGVja19jaXJjbGUiLENIRUNLX0RPVUJMRToiY2hlY2tfZG9uZSIsCkNIRUNLX0RPVUJMRV9PRkY6ImNoZWNrX2RvbmVfc2xhc2giLENIRVZST05fTEVGVDoiY2hldnJvbl9sZWZ0IixDSEVWUk9OX1JJR0hUOiJjaGV2cm9uX3JpZ2h0IixDSEVWUk9OX1JJR0hUX0NBSVJPOiJjaGV2cm9uX3JpZ2h0IixDSVJDTEVTX09WRVJMQVA6ImFjY291bnRfbGluayIsQ0xBUFBFUkJPQVJEX0NBSVJPOiJjbGFwcGVyYm9hcmQiLENMQVJJRlk6InRleHRfcGFnZV9pbmZvIixDTE9DS19BUlJPV1M6ImNsb2NrX3NwbGl0IixDTE9DS19BUlJPV1NfQUxFUlQ6ImNsb2NrX3NwbGl0X2FsZXJ0IixDTE9TRURfQ0FQVElPTjoiY2xvc2VkX2NhcHRpb25zIixDTE9TRURfQ0FQVElPTl9TRUxFQ1RFRDoiY2xvc2VkX2NhcHRpb25zIixDTE9TRToieCIsQ0xPVURfVVBMT0FEOiJjbG91ZF9hcnJvd191cCIsQ09MTEFQU0U6ImNoZXZyb25fdXAiLENPTExBUFNFX0NBSVJPOiJjaGV2cm9uX3VwIixDT0xMRUNUSU9OOiJzcXVhcmUzZF9zdGFjayIsQ09MT1JfTEVOUzoicGFpbnRfcGFsZXR0ZSIsCkNPTU1FTlQ6InRleHRfYnViYmxlIixDT05TRU5UX1NISUVMRDoicGVyc29uX3NoaWVsZCIsQ09OVEVOVF9DVVQ6InNjaXNzb3JzIixDT05URU5UX0NVVF9DQUlSTzoic2Npc3NvcnMiLENPVVJTRToiZ3JhZHVhdGlvbl9jYXAiLENPVVJTRV9DQUlSTzoiZ3JhZHVhdGlvbl9jYXAiLENSRUFUSU9OX0xJVkU6ImxpdmUiLENSRUFUSU9OX1BPU1Q6InNxdWFyZV9wZW5jaWwiLENSRUFUSU9OX1VQTE9BRDoidmlkZW8iLENSRUFUSU9OX1VQTE9BRF9SRUQ6InVwbG9hZCIsQ1JFQVRPUl9BQ0FERU1ZOiJncmFkdWF0aW9uX2NhcCIsQ1JFQVRPUl9NRVRBREFUQV9NT05FVElaQVRJT046ImRvbGxhcl9zaWduX2NpcmNsZSIsQ1JFQVRPUl9NRVRBREFUQV9NT05FVElaQVRJT05fT0ZGOiJkb2xsYXJfc2lnbl9jaXJjbGVfc2xhc2giLENSRUFUT1JfU1RVRElPOiJ5b3V0dWJlX3N0dWRpbyIsREFSS19USEVNRToidGhlbWUiLERFTEVURToidHJhc2hfY2FuIixERUxFVEVfU1dFRVA6InRyYXNoX2NhbiIsCkRFU0tUT1A6ImxhcHRvcCIsRElTTElLRToidGh1bWJfZG93biIsRElTTElLRV9TRUxFQ1RFRDoidGh1bWJfZG93biIsRElTTUlTU0FMOiJ4IixESVNNSVNTX1FVRVVFOiJwbGF5bGlzdF94IixET0dGT09EOiJwYXdwcmludCIsRE9MTEFSX1NJR046ImRvbGxhcl9zaWduX2NpcmNsZSIsRE9MTEFSX1NJR05fQ0lSQ0xFOiJkb2xsYXJfc2lnbl9jaXJjbGUiLERPTExBUl9TSUdOX0NPTlRBSU5FUjoiZG9sbGFyX3NpZ25fcmVjdGFuZ2xlIixET1dOX0FSUk9XOiJhcnJvd19kb3duIixET19OT1RfRElTVFVSQjoiY2lyY2xlX3NsYXNoIixEUkFGVDoiZG9jdW1lbnQiLERSQUdfSEFORExFOiJlcXVhbCIsRUFSVEg6Imdsb2JlIixFRElUOiJwZW5jaWwiLEVNT0pJOiJmYWNlX3ZlcnlfaGFwcHkiLEVNT0pJX0ZMQUdTOiJmbGFnIixFTU9KSV9PQkpFQ1RTOiJsaWdodGJ1bGIiLEVNT0pJX1BFT1BMRToiZmFjZV92ZXJ5X2hhcHB5IixFTU9KSV9SRUNFTlQ6ImNsb2NrIixFTVBUWV9IRUFSVDoiaGVhcnQiLApFTVBUWV9MSUtFOiJ0aHVtYl91cCIsRVJST1JfQkxBQ0s6ImFsZXJ0X2NpcmNsZSIsRVJST1JfT1VUTElORToiYWxlcnRfY2lyY2xlIixFUlJPUl9XSElURToiYWxlcnRfY2lyY2xlIixFWElUX0FQUDoiYXJyb3dfaW4iLEVYSVRfVE9fQVBQOiJhcnJvd19pbiIsRVhQQU5EOiJjaGV2cm9uX2Rvd24iLEVYUEFORF9BTEw6ImNoZXZyb25fZXhwYW5kIixFWFBBTkRfQ0FJUk86ImNoZXZyb25fZG93biIsRVhQQU5EX0xFU1M6ImNoZXZyb25fdXAiLEVYUEFORF9NT1JFOiJjaGV2cm9uX2Rvd24iLEVYUExPUkU6ImNvbXBhc3MiLEVYUExPUkVfREVTVElOQVRJT046ImNvbXBhc3MiLEVYVEVSTkFMX0xJTks6ImFycm93X3VwX3JpZ2h0IixFWUVfT0ZGOiJleWVfc2xhc2giLEZBQl9VUExPQUQ6InVwbG9hZCIsRkFDRV9IQVBQWV9PVVRMSU5FOiJmYWNlX2hhcHB5IixGQUNFX01FSDoiZmFjZV9uZXV0cmFsIixGQUNUX0NIRUNLOiJ0ZXh0X3BhZ2VfY2hlY2siLEZBU0hJT05fTE9HTzoiZmFzaGlvbiIsCkZBU0hJT05fTE9HT19DQUlSTzoiZmFzaGlvbiIsRkFWT1JJVEU6InRodW1iX3VwIixGRUVEQkFDSzoiYWxlcnRfYnViYmxlIixGRUVEQkFDS19DQUlSTzoiYWxlcnRfYnViYmxlIixGSUxMX0FSUk9XX1NPTElEX0RPV05fMTY6ImFycm93X3NvbGlkX2Rvd24iLEZJTExfQVJST1dfU09MSURfVVBfMTY6ImFycm93X3NvbGlkX3VwIixGSUxMX0RPTExBUl9TSUdOX0hFQVJUXzEyOiJkb2xsYXJfc2lnbl9oZWFydCIsRklSU1RfUEFHRToiY2hldnJvbl9sZWZ0X2VuZCIsRkxBR19DQUlSTzoiZmxhZyIsRkxBU0hfT0ZGOiJmbGFzaF9zbGFzaCIsRkxBU0hfT046ImZsYXNoIixGVUxMX0hFQVJUOiJoZWFydCIsR0FNSU5HX0xPR086ImdhbWluZyIsR0FNSU5HX0xPR09fQ0FJUk86ImdhbWluZyIsR09fVE9fUEFHRToiYXJyb3dfcmlnaHQiLEdSSURfQVNZTU1FVFJJQ0FMOiJkYXNoYm9hcmQiLEdST1VQUzoicGVyc29uMyIsSEFORF9TV0lQRV9MRUZUOiJnZXN0dXJlX3N3aXBlX2xlZnQiLEhBTkRfU1dJUEVfUklHSFQ6Imdlc3R1cmVfc3dpcGVfcmlnaHQiLApIQVBQWToiZmFjZV9oYXBweSIsSEVBTFRIX0FORF9TQUZFVFk6InNoaWVsZF9oZWFsdGgiLEhFQVJUX0JPWDoiaGVhcnRfY3ViZSIsSEVMUDoiaGVscF9jaXJjbGUiLEhFTFBfQ0FJUk86ImhlbHBfY2lyY2xlIixIRUxQX09VVExJTkU6ImhlbHBfY2lyY2xlIixISURFOiJjaXJjbGVfc2xhc2giLElOQ09HTklUT19DQUlSTzoiaW5jb2duaXRvIixJTkZJTklUWV9JQ09OOiJpbmZpbml0eSIsSU5GTzoiaW5mb19jaXJjbGUiLElORk9fT1VUTElORToiaW5mb19jaXJjbGUiLElOU0VSVF9DSEFSVDoiY2hhcnRfYmFyX3NxdWFyZSIsSU5TRVJUX0NIQVJUX09VVExJTkVEOiJjaGFydF9iYXJfc3F1YXJlIixJTlNFUlRfUEhPVE86ImltYWdlIixLRUVQOiJwaW4iLEtFRVBfT0ZGOiJwaW5fc2xhc2giLEtFWUJPQVJEOiJrZXlib2FyZCIsS0VZQk9BUkRfQVJST1dfRE9XTjoiY2hldnJvbl9kb3duIixLRVlCT0FSRF9BUlJPV19VUDoiY2hldnJvbl91cCIsS0lEU19CTE9DSzoiY2lyY2xlX3NsYXNoIiwKTEFOR1VBR0U6Imdsb2JlIixMQVNUX1BBR0U6ImNoZXZyb25fcmlnaHRfZW5kIixMQVVOQ0g6ImFycm93X3VwX3JpZ2h0IixMRUFSTklORzoibGlnaHRidWxiIixMRUFSTklOR19DQUlSTzoibGlnaHRidWxiIixMSUJSQVJZX0FERDoiYm9va21hcmsiLExJQlJBUllfSU1BR0U6ImltYWdlX3N0YWNrIixMSUJSQVJZX01VU0lDOiJhdWRpb19zcXVhcmVfc3RhY2siLExJQlJBUllfT1VUTElORToicGxheV9zcXVhcmVfc3RhY2siLExJQlJBUllfUkVNT1ZFOiJib29rbWFyayIsTElCUkFSWV9TQVZFRDoiY2hlY2tfc3F1YXJlX3N0YWNrIixMSUtFU19QTEFZTElTVDoidGh1bWJfdXAiLExJS0VTX1BMQVlMSVNUX0NBSVJPOiJ0aHVtYl91cCIsTElLRToidGh1bWJfdXAiLExJS0VfU0VMRUNURUQ6InRodW1iX3VwIixMSVNUX1FVRVVFOiJxdWV1ZSIsTElWRV9DQUlSTzoibGl2ZSIsTElWRV9VTkxJU1RFRDoibGluayIsTE9DQVRJT05fT046ImxvY2F0aW9uX3BpbiIsTE9DQVRJT05fUElOOiJsb2NhdGlvbl9waW4iLApMT0NBVElPTl9QT0lOVDoibG9jYXRpb25fcGluIixMT09QOiJyZXBlYXQiLExPT1BfQUNUSVZFOiJyZXBlYXQiLExPT1BfT05FOiJyZXBlYXQxIixMT09QX09ORV9BQ1RJVkU6InJlcGVhdDEiLE1FRVQ6Imdvb2dsZV9tZWV0IixNRUg6ImZhY2VfbmV1dHJhbCIsTUVNQkVSU0hJUFM6Im1lbWJlcnNoaXBzIixNRU1CRVJTX09OTFlfTU9ERV9PRkY6InRleHRfYnViYmxlIixNRU5VX0ZJTFRFUjoiZmlsdGVyIixNRVNTQUdFOiJ0ZXh0X2J1YmJsZSIsTUVTU0FHRV9CVUJCTEVfR0VBUjoiYnViYmxlX2dlYXIiLE1FU1NBR0VfQlVCQkxFX0xFRlQ6InRleHRfYnViYmxlIixNRVNTQUdFX0JVQkJMRV9MRUZUX0JPT1NUOiJidWJibGVfc3BhcmtsZXMiLE1FU1NBR0VfQlVCQkxFX09WRVJMQVA6ImJ1YmJsZV9zdGFjayIsTUVTU0FHRV9CVUJCTEVfUVVFU1RJT046ImhlbHBfYnViYmxlIixNSUNST1BIT05FX09OOiJtaWMiLE1PTkVUSVpBVElPTl9PTjoiZG9sbGFyX3NpZ25fY2lyY2xlIixNT05FWV9GSUxMOiJkb2xsYXJfc2lnbl9yZWN0YW5nbGUiLApNT05FWV9GSUxMX0pQWToieWVuX3NpZ25fcmVjdGFuZ2xlIixNT05FWV9IQU5EOiJkb2xsYXJfc2lnbl9jaXJjbGVfaGFuZCIsTU9ORVlfSEVBUlQ6ImRvbGxhcl9zaWduX2hlYXJ0IixNT09OX1o6InNsZWVwX3RpbWVyIixNT1JFX0hPUklaOiJvdmVyZmxvd19ob3Jpem9udGFsIixNT1JFX1ZFUlQ6Im92ZXJmbG93X3ZlcnRpY2FsIixNVVNJQzoiYXVkaW8iLE1VU0lDX0NBSVJPOiJhdWRpbyIsTVVTSUNfRVhQTElDSVRfQkFER0U6ImV4cGxpY2l0IixNVVNJQ19ORVdfUkVMRUFTRToiYXVkaW9fYmFkZ2UiLE1VU0lDX05PVEVfU1lNQk9MOiJhdWRpbyIsTVVTSUNfU0NJU1NPUlM6ImF1ZGlvX3NjaXNzb3JzIixNVVNJQ19TSFVGRkxFOiJzaHVmZmxlIixNWV9DSEFOTkVMOiJwZXJzb25fY2lyY2xlIixNWV9MT0NBVElPTjoibG9jYXRpb25fcGluIixNWV9WSURFT1M6InZpZGVvIixNWV9WSURFT1NfQ0FJUk86InZpZGVvIixORVdTX0NBSVJPOiJuZXdzIixORVdTX1NUT1JZOiJuZXdzIiwKTkVYVDoiY2hldnJvbl9yaWdodCIsTk9URV9BREQ6ImJ1YmJsZV9wZW5jaWwiLE5PVElGSUNBVElPTlM6ImJlbGwiLE5PVElGSUNBVElPTlNfQUNUSVZFOiJiZWxsX3dhdmVzIixOT1RJRklDQVRJT05TX0NBSVJPOiJiZWxsIixOT1RJRklDQVRJT05TX0RPTkVfQ0hFQ0tNQVJLOiJjaGVjayIsTk9USUZJQ0FUSU9OU19JTkJPWDoiYmVsbCIsTk9USUZJQ0FUSU9OU19OT05FOiJiZWxsIixOT1RJRklDQVRJT05TX09GRjoiYmVsbF9zbGFzaCIsTk9UX0lOVEVSRVNURUQ6ImNpcmNsZV9zbGFzaCIsT0ZGSUNJQUxfQVJUSVNUX0JBREdFOiJhdWRpbyIsT0ZGTElORV9DTE9VRDoiY2xvdWRfc2xhc2giLE9GRkxJTkVfRE9XTkxPQUQ6ImRvd25sb2FkIixPRkZMSU5FX0RPV05MT0FEX0NBSVJPOiJkb3dubG9hZCIsT0ZGTElORV9QQVVTRToicGF1c2UiLE9QRU5fSU5fTkVXOiJhcnJvd191cF9yaWdodCIsT1VUTElORV9BREpVU1Q6ImFkanVzdCIsT1VUTElORV9BUlJPV19TT0xJRF9ET1dOOiJhcnJvd19zb2xpZF9kb3duIiwKT1VUTElORV9BUlJPV19TT0xJRF9ET1dOXzE2OiJhcnJvd19zb2xpZF9kb3duIixPVVRMSU5FX0FSUk9XX1NPTElEX1VQOiJhcnJvd19zb2xpZF91cCIsT1VUTElORV9BUlJPV19TT0xJRF9VUF8xNjoiYXJyb3dfc29saWRfdXAiLE9VVExJTkVfQkFHOiJiYWciLE9VVExJTkVfQ0xPQ0tfSEFMRl9DSVJDTEU6ImNsb2NrX2hhbGZfZGFzaGVkIixPVVRMSU5FX01PQklMRV9ET1dOTE9BRDoibW9iaWxlX2Fycm93X2Rvd24iLE9VVExJTkVfT1ZFUkZMT1dfSE9SSVpPTlRBTF8zMjoib3ZlcmZsb3dfaG9yaXpvbnRhbCIsT1VUTElORV9PVkVSRkxPV19WRVJUSUNBTDoib3ZlcmZsb3dfdmVydGljYWwiLE9VVExJTkVfWU9VVFVCRV9JTVBST1ZFX1RWOiJzdGFyX3R2IixPVVRMSU5FX1lPVVRVQkVfU0hPUlRTX1BMVVM6InNob3J0c19hZGQiLFBBSUQ6ImRvbGxhcl9zaWduX2NpcmNsZSIsUEFVU0VfT1VUTElORUQ6InBhdXNlIixQQVlNRU5UOiJjcmVkaXRfY2FyZCIsUEVPUExFOiJwZXJzb25fY2hpbGQiLApQRU9QTEVfMjoicGVyc29uMl9yZWN0YW5nbGUiLFBFT1BMRV9BTFQ6InBlcnNvbjIiLFBFT1BMRV9HUk9VUDoicGVyc29uMyIsUEVPUExFX05PVEU6ImJ1YmJsZV9hc3RlcmlzayIsUEVSU09OXzI6InBlcnNvbjIiLFBFUlNPTl9BQ0NPVU5UOiJwZXJzb25fc3F1YXJlX3N0YWNrIixQRVJTT05fTUlOVVM6InBlcnNvbl94IixQRVJTT05fTVVTSUM6InBlcnNvbl9hdWRpbyIsUEVSU09OX1JBREFSOiJwZXJzb25fd2F2ZXMiLFBFUlNPTl9SQURBUl9GSUxMRUQ6InBlcnNvbl93YXZlcyIsUEVSU09OX1NFVFRJTkc6InBlcnNvbl9nZWFyIixQSE9ORUxJTks6InFyX2NvZGUiLFBIT05FOiJwaG9uZSIsUEhPTkVfRE9XTkxPQUQ6Im1vYmlsZV9hcnJvd19kb3duIixQSUNUVVJFX0lOX1BJQ1RVUkU6InBpY3R1cmVfaW5fcGljdHVyZSIsUExBWUFCTEVTX0xPR086InBsYXlhYmxlcyIsUExBWUFCTEVTX0xPR09fQ0FJUk86InBsYXlhYmxlcyIsUExBWUxJU1RTOiJwbGF5bGlzdCIsUExBWUxJU1RTX0NBSVJPOiJwbGF5bGlzdCIsClBMQVlMSVNUX0FERF9DSEVDSzoiYm9va21hcmsiLFBMQVlfQUxMOiJwbGF5IixQTEFZX0FSUk9XOiJwbGF5IixQTEFZX0FSUk9XX0NJUkNMRToicGxheV9jaXJjbGUiLFBMQVlfQVJST1dfSEFMRl9DSVJDTEU6InBsYXlfY2lyY2xlX2hhbGZfZGFzaGVkIixQTEFZX0FSUk9XX09VVExJTkVEOiJwbGF5IixQTEFZX0NJUkNMRToicGxheV9jaXJjbGUiLFBMQVlfT1VUTElORUQ6InBsYXlfY2lyY2xlIixQT0RDQVNUX0FERDoicG9kY2FzdF9hZGQiLFBPRENBU1RfQ0hFQ0s6InBvZGNhc3RfY2hlY2siLFBSSVZBQ1lfSU5GTzoic2hpZWxkX3giLFBSSVZBQ1lfUFJJVkFURToibG9jayIsUFJJVkFDWV9QVUJMSUM6Imdsb2JlIixQUklWQUNZX1VOTElTVEVEOiJsaW5rIixQUk9NT1RFOiJtZWdhcGhvbmUiLFBVUkNIQVNFUzoicHJpY2VfdGFnIixQVVJDSEFTRV9TVVBFUl9DSEFUOiJzdXBlcl9jaGF0IixQVVJDSEFTRV9TVVBFUl9TVElDS0VSOiJzdXBlcl9zdGlja2VyIixRVUVTVElPTl9BTlNXRVI6ImhlbHBfYnViYmxlIiwKUVVFU1RJT05fQ0lSQ0xFOiJoZWxwX2NpcmNsZSIsUVVFVUVfUExBWV9MQVNUOiJxdWV1ZV9sYXN0IixRVUVVRV9QTEFZX05FWFQ6InF1ZXVlX25leHQiLFFVT1RBVElPTl9NQVJLOiJxdW90ZSIsUkFEQVJfTElWRToibGl2ZSIsUkVNT1ZFOiJtaW51c19jaXJjbGUiLFJFTU9WRV9DSVJDTEU6Im1pbnVzX2NpcmNsZSIsUkVNT1ZFX0NJUkNMRV9PVVRMSU5FOiJtaW51c19jaXJjbGUiLFJFTU9WRV9GUk9NX0hJU1RPUlk6Im1pbnVzX2NpcmNsZSIsUkVNT1ZFX0ZST01fUExBWUxJU1Q6Im1pbnVzX2NpcmNsZSIsUkVNT1ZFX01PREVSQVRPUjoic2hpZWxkX3NsYXNoIixSRVBMQVk6ImFycm93X2NvdW50ZXJjbG9ja3dpc2UiLFJFUExBWV8xMDoic2tpcDEwX2JhY2siLFJFUExBWV9BUlJPVzoicmVwbGF5IixSRVBPUlRfUFJPQkxFTToiYWxlcnRfdHJpYW5nbGUiLFJTU19PRkY6InJzc19zbGFzaCIsU0FEOiJmYWNlX3NhZCIsU0FWRV9QTEFZTElTVDoiYm9va21hcmsiLFNDSEVEVUxFOiJjbG9jayIsClNDSE9PTDoiZ3JhZHVhdGlvbl9jYXAiLFNDUkVFTl9ERUZBVUxUOiJwbGF5ZXJfZGVmYXVsdCIsU0NSRUVOX0ZVTExTQ1JFRU46InBsYXllcl9mdWxsX2VudGVyIixTQ1JFRU5fTElHSFQ6ImFtYmllbnRfbW9kZSIsU0NSRUVOX1JPVEFUSU9OOiJyb3RhdGVfcG9ydHJhaXQiLFNDUkVFTl9TV0lUQ0g6InBsYXllcl9zd2l0Y2giLFNDUkVFTl9USEVBVFJFOiJwbGF5ZXJfdGhlYXRlciIsU0VBUkNIX0NBSVJPOiJzZWFyY2giLFNFQVJDSF9ISVNUT1JZOiJoaXN0b3J5IixTRUxMOiJwcmljZV90YWciLFNFVFRJTkdTOiJnZWFyIixTRVRUSU5HU19DQUlSTzoiZ2VhciIsU0VUVElOR1NfTElHSFQ6ImdlYXIiLFNFVFRJTkdTX01BVEVSSUFMOiJnZWFyIixTRVRUSU5HU19SRU1PVEU6InJlbW90ZV93YXZlcyIsU0hBUkU6InNoYXJlIixTSEFSRV9BUlJPVzoic2hhcmUiLFNIQVJFX0NBSVJPOiJzaGFyZSIsU0hJRUxEOiJzaGllbGRfeCIsU0hJRUxEX0VNUFRZOiJzaGllbGQiLFNISUVMRF9PRkY6InNoaWVsZF9zbGFzaCIsClNISUVMRF9XSVRIX0FWQVRBUjoicGVyc29uX3NoaWVsZCIsU0hPUFBJTkdfQkFHOiJiYWciLFNIT1BQSU5HX0JBR19DQUlSTzoiYmFnIixTSE9QUElOR19DQVJUOiJjYXJ0IixTSE9SVFNfQ09NTUVOVDoidGV4dF9idWJibGUiLFNIT1JUU19ESVNMSUtFOiJ0aHVtYl9kb3duIixTSE9SVFNfTElLRToidGh1bWJfdXAiLFNIT1JUU19TSEFSRToic2hhcmUiLFNLSVBfRk9SV0FSRF8zMDoic2tpcDMwX2ZvcndhcmQiLFNMQVNIX0NJUkNMRV9MRUZUOiJjaXJjbGVfc2xhc2giLFNMQVNIX0NJUkNMRV9SSUdIVDoiY2lyY2xlX3NsYXNoIixTTE9XX01PREU6ImJ1YmJsZV9zbG93IixTTE9XX01PREVfT0ZGOiJ0ZXh0X2J1YmJsZSIsU0xPV19NT1RJT05fVklERU86InBsYXlfY2lyY2xlX2hhbGZfZGFzaGVkIixTT0NJQUw6InBlcnNvbl9jaGlsZCIsU1BBUktMRToic3BhcmtsZXMiLFNQQVJLX0lNQUdFOiJpbWFnZV9zcGFyayIsU1BBUktfTElHSFRCVUxCX09VVExJTkU6InNwYXJrX2xpZ2h0YnVsYiIsClNQQVJLX1BFTkNJTDoicGVuY2lsX3NwYXJrIixTUEFSS19SQURBUjoic3Bhcmtfd2F2ZXMiLFNQQVJLX1ZJREVPOiJ2aWRlb19zcGFyayIsU1BFQUtFUl9HUk9VUDoic3BlYWtlcl9zdGFjayIsU1BFQUtFUl9PRkY6InNwZWFrZXJfc2xhc2giLFNQRUVEXzFYOiJuMXgiLFNQRUVEXzFfUE9JTlRfMlg6Im4xcG9pbnQyeCIsU1BFRURfMV9QT0lOVF81WDoibjFwb2ludDV4IixTUEVFRF8xX1BPSU5UXzhYOiJuMXBvaW50OHgiLFNQRUVEXzJYOiJuMngiLFNQT05TT1JTSElQX1NUQVI6InN0YXJfY2lyY2xlIixTUE9SVFM6ImJhc2tldGJhbGwiLFNQT1RMSUdIVDoic3BvdGxpZ2h0IixTVEFGRl9QSUNLOiJzcG90bGlnaHQiLFNUQVJUX0RWUjoiYWRkIixTVEFSX0JPUkRFUjoic3RhciIsU1RBUl9DSVJDTEVfUklCQk9OOiJtZW1iZXJzaGlwc19naWZ0IixTVEFSX0hBTEY6InN0YXJfZnVsbF9oYWxmIixTVEFSX1NIT09USU5HOiJoeXBlIixTVElDS0VSOiJzdGlja2VyIixTVElDS0VSX0VNT1RJQ09OOiJmYWNlX2hhcHB5IiwKU1RPUF9EVlI6InN0b3AiLFNVQlNDUklCRToieW91dHViZSIsU1VCU0NSSUJFX1BMVVM6ImFkZCIsU1VCU0NSSVBUSU9OX01BTkFHRVI6ImdlYXIiLFNVUEVSU1RBUjoic3VwZXJfc3RhciIsU1VQRVJWSVNPUl9BQ0NPVU5UOiJwZXJzb25fY2hpbGQiLFNVUEVSX0NIQVRfRk9SX0dPT0Q6ImhhbmRzX2hlYXJ0IixTV0FQX0hPUklaOiJhcnJvd19zd2FwX2hvcml6b250YWwiLFNXSVRDSF9BQ0NPVU5UUzoicGVyc29uX3NxdWFyZV9zdGFjayIsVEFCX0FDQ09VTlQ6InBlcnNvbiIsVEFCX0FDVElWSVRZOiJiZWxsIixUQUJfQk9PS01BUks6ImJvb2ttYXJrIixUQUJfRVhQTE9SRToiY29tcGFzcyIsVEFCX0hPTUU6ImhvbWUiLFRBQl9IT01FX0NBSVJPOiJob21lIixUQUJfSU5CT1g6Im1haWwiLFRBQl9MSUtFRDoidGh1bWJfdXAiLFRBQl9NVVNJQ19QUkVNSVVNOiJ5b3V0dWJlX211c2ljIixUQUJfU0hPUlRTOiJzaG9ydHMiLFRBQl9TSE9SVFNfQ0FJUk86InNob3J0cyIsVEFCX1NVQlNDUklQVElPTlM6InN1YnNjcmlwdGlvbnMiLApUQUJfU1VCU0NSSVBUSU9OU19DQUlSTzoic3Vic2NyaXB0aW9ucyIsVEFCX1RSRU5ESU5HOiJ0cmVuZGluZyIsVEFSR0VUOiJ0YXJnZXQiLFRBUkdFVF9BREQ6InRhcmdldF9hZGQiLFRFTVBMQVRFX0FERDoidGVtcGxhdGVfYWRkIixURVhUOiJmb250IixUSUNLRVRfU1RBUjoic3Rhcl90aWNrZXQiLFRJTUVSOiJzdG9wd2F0Y2giLFRSRU5ESU5HX0NBSVJPOiJ0cmVuZGluZyIsVFJFTkRJTkdfRE9XTjoiYXJyb3dfdHJlbmRfZG93biIsVFJFTkRJTkdfVVA6ImFycm93X3RyZW5kX3VwIixUUk9QSFlfQ0FJUk86InRyb3BoeSIsVFJPUEhZX0NFTEVCUkFUSU9OUzoiZmlyZXdvcmtzIixUUk9QSFlfU1RBUjoic3Rhcl90cm9waHkiLFRVTkU6ImFkanVzdCIsVFZfT0ZGOiJ0dl9zbGFzaCIsVU5CTE9DS19VU0VSOiJtaW51c19jaXJjbGUiLFVORkFWT1JJVEU6InRodW1iX2Rvd24iLFVOTElNSVRFRDoieW91dHViZSIsVU5QTFVHR0VEX0xJVkVfR1VJREU6ImxpdmUiLFVOUExVR0dFRF9TUE9SVFM6ImV5ZV9zbGFzaCIsClVQTE9BRFM6InBsYXlfc3F1YXJlX3N0YWNrIixVUF9BUlJPVzoiYXJyb3dfdXAiLFZFUlRJQ0FMX0FMSUdOX0JPVFRPTToiY2hldnJvbl9kb3duX2VuZCIsVkVSVElDQUxfQUxJR05fVE9QOiJjaGV2cm9uX3VwX2VuZCIsVkVSWV9IQVBQWToiZmFjZV92ZXJ5X2hhcHB5IixWRVJZX1NBRDoiZmFjZV92ZXJ5X3NhZCIsVklERU9TOiJwbGF5X2NpcmNsZSIsVklERU9fQ0FMTDoidmlkZW9fY2FtZXJhX2FkZCIsVklERU9fTElCUkFSWV9XSElURToicGxheV9zcXVhcmVfc3RhY2siLFZJREVPX1FVQUxJVFlfNEs6Im40ayIsVklERU9fUVVBTElUWV84SzoibjhrIixWSURFT19ZT1VUVUJFOiJ5b3V0dWJlIixWSUVXX0xJU1RfQ0FJUk86InZpZXdfbGlzdCIsVklFV19NT0RVTEU6InZpZXdfY29sdW1uM19yb3cyIixWSVNJQklMSVRZOiJleWUiLFZJU0lCSUxJVFlfT0ZGOiJleWVfc2xhc2giLFZPTFVNRV9ET1dOOiJ2b2x1bWVfbWluIixWT0xVTUVfTVVURToidm9sdW1lX211dGUiLFZPTFVNRV9PRkY6InZvbHVtZV9tdXRlIiwKVk9MVU1FX1NUQUJMRToic3RhYmxlX3ZvbHVtZSIsVk9MVU1FX1VQOiJ2b2x1bWVfbWF4IixXQUxMUEFQRVI6ImltYWdlIixXQVJOSU5HOiJhbGVydF90cmlhbmdsZSIsV0FUQ0hfSElTVE9SWToiaGlzdG9yeSIsV0FUQ0hfSElTVE9SWV9DQUlSTzoiaGlzdG9yeSIsV0FUQ0hfTEFURVI6ImNsb2NrIixXQVRDSF9MQVRFUl9DQUlSTzoiY2xvY2siLFdBVENIX1JFTEFURURfTUlYOiJtaXgiLFdIQVRfVE9fV0FUQ0g6ImhvbWUiLFlPVVRVQkVfQ1JFQVRFX1JFRF9MT0dPOiJ5b3V0dWJlX2NyZWF0ZV9sb2dvIixZT1VUVUJFX0xJTktFRF9UVjoidHZfbW9iaWxlIixZT1VUVUJFX01VU0lDX01PTk9DSFJPTUU6InlvdXR1YmVfbXVzaWMiLFlPVVRVQkVfTVVTSUNfTU9OT0NIUk9NRV9DQUlSTzoieW91dHViZV9tdXNpYyIsWU9VVFVCRV9TSE9SVFNfQVJST1dfRE9XTjoiYXJyb3dfZG93biIsWU9VVFVCRV9TSE9SVFNfQVJST1dfVVA6ImFycm93X3VwIixZT1VUVUJFX1NIT1JUU19GSUxMX05PX1RSSUFOR0xFX1JFRF8xNjoic2hvcnRzX2VtcHR5IiwKWU9VVFVCRV9TSE9SVFNfRklMTF9OT19UUklBTkdMRV9XSElURV8xNjoic2hvcnRzX2VtcHR5IixZT1VUVUJFX1NIT1JUU19PVVRMSU5FXzI0OiJzaG9ydHMiLFlPVVRVQkVfU0hPUlRTX09VVExJTkVfV0lUSF9URVhUXzI0OiJzaG9ydHNfdGV4dF9sb2dvIixZVF9PVVRMSU5FX01VU0lDXzI0OiJhdWRpbyJ9O3ZhciBWcWE9ezE1OltbMSwzLDI0XV0sIjFfcG9pbnRfMngiOltbMSwxLDI0XV0sIjFfcG9pbnRfNXgiOltbMSwxLDI0XV0sIjFfcG9pbnRfOHgiOltbMSwxLDI0XV0sIjF4IjpbWzEsMSwyNF1dLCIyX3BvaW50XzV4IjpbWzEsMSwyNF1dLCIyZCI6W1sxLDEsMjRdXSwiMngiOltbMSwzLDI0XV0sIjNkIjpbWzEsMSwyNF1dLCIzeCI6W1sxLDMsMjRdXSwiNGQiOltbMSwxLDI0XV0sIjRrIjpbWzAsMywyNF0sWzEsMywyNF1dLDYwOltbMSwzLDI0XV0sIjhrIjpbWzAsMiwyNF0sWzEsMiwyNF1dLGFjY2Vzc2liaWxpdHk6W1sxLDQsMjRdXSxhY2NvdW50X2xpbms6W1sxLDgsMjRdXSxhY2NvdW50X2xpbmtfZXJyb3I6W1sxLDYsMjRdXSxhY2NvdW50X2xpbmtfc29tZTpbWzAsNSwyNF1dLGFjY291bnRfbGlua19zdWNjZXNzOltbMCw1LDI0XV0sYWRkOltbMSw5LDE2XSxbMSw5LDI0XV0sYWRkX2NhaXJvOltbMCw0LDE2XSxbMCw0LDI0XSxbMSw0LDI0XV0sYWRkX2NpcmNsZTpbWzEsNiwyNF0sClsxLDYsMzZdXSxhZGRfaGFsZl9jaXJjbGU6W1sxLDIsMjRdXSxhZGp1c3Q6W1swLDksMjRdLFsxLDksMThdLFsxLDksMjRdXSxhaXJwbGFuZTpbWzAsNSwyNF0sWzEsNSwyMF0sWzEsNSwyNF1dLGFpcnBsYXk6W1sxLDYsMTZdLFsxLDYsMjRdXSxhaXJwbGF5X29mZjpbWzEsMSwyNF1dLGFsYnVtOltbMCw4LDI0XSxbMSw4LDI0XV0sYWxlcnRfY2lyY2xlOltbMCwxMSwyNF0sWzEsMTEsMTZdLFsxLDExLDI0XV0sYWxlcnRfdHJpYW5nbGU6W1swLDEwLDEyXSxbMCwxMCwyNF0sWzEsMTAsMjRdXSxhbGlnbl9jZW50ZXI6W1swLDYsMjRdLFsxLDYsMjRdXSxhbGlnbl9sZWZ0OltbMCw2LDI0XSxbMSw2LDI0XV0sYWxpZ25fcmlnaHQ6W1swLDYsMjRdLFsxLDYsMjRdXSxhcnJvd19jYXBzOltbMCwyLDI0XSxbMSwyLDI0XV0sYXJyb3dfY2lyY2xlOltbMSw2LDI0XSxbMSw2LDQ4XV0sYXJyb3dfY2lyY2xlX2Rhc2g6W1sxLDEsMjRdXSxhcnJvd19jaXJjbGVfcGxheTpbWzEsMSwyNF0sWzEsMSwKMzZdLFsxLDEsNDhdXSxhcnJvd19jaXJjbGVfcmlnaHQ6W1swLDMsMjRdLFsxLDMsMTJdLFsxLDMsMTZdLFsxLDMsMThdLFsxLDMsMjRdXSxhcnJvd19kaWFnb25hbDpbWzEsNSwyNF1dLGFycm93X2RpYWdvbmFsX2Rvd25fcmlnaHQ6W1swLDEsMTJdLFswLDEsMTZdLFswLDEsMThdLFswLDEsMjRdLFsxLDEsMTJdLFsxLDEsMTZdLFsxLDEsMThdLFsxLDEsMjRdXSxhcnJvd19kaWFnb25hbF91cF9yaWdodDpbWzAsMSwxMl0sWzAsMSwxNl0sWzAsMSwxOF0sWzAsMSwyNF0sWzEsMSwxMl0sWzEsMSwxNl0sWzEsMSwxOF0sWzEsMSwyNF1dLGFycm93X2Rvd246W1swLDMsMjRdLFsxLDMsMjRdXSxhcnJvd19kb3duX2NpcmNsZTpbWzAsNCwxMl0sWzAsNCwxNl0sWzAsNCwxOF0sWzAsNCwyNF1dLGFycm93X2ZsaXA6W1sxLDEwLDE2XSxbMSwxMCwxOF0sWzEsMTAsMjRdXSxhcnJvd19mbGlwX2RvbGxhcl9zaWduOltbMSwyLDI0XV0sYXJyb3dfaW46W1swLDgsMjRdLFsxLDgsMjRdXSxhcnJvd19sZWZ0OltbMSwKOCwyNCwhMF1dLGFycm93X2xlZnRfY2Fpcm86W1sxLDIsMjQsITBdXSxhcnJvd19tZXJnZTpbWzEsMiwyNF1dLGFycm93X291dDpbWzAsMiwyNF1dLGFycm93X3BhdXNlOltbMSwxLDI0XV0sYXJyb3dfcmVkbzpbWzEsMSwyNF1dLGFycm93X3JlbWl4OltbMSwxLDI0XV0sYXJyb3dfcmVwZWF0OltbMCw1LDI0XSxbMSw1LDI0XV0sYXJyb3dfcmVwZWF0XzE6W1swLDMsMjRdLFsxLDMsMjRdXSxhcnJvd19yaWdodDpbWzEsMywyNCwhMF1dLGFycm93X3NodWZmbGU6W1swLDUsMjRdLFsxLDUsMjRdXSxhcnJvd19za2lwX2ZvcndhcmQ6W1swLDEsMjRdLFsxLDEsMjRdXSxhcnJvd19zb2xpZF9kb3duOltbMCw0LDE2XSxbMCw0LDI0XSxbMSw0LDE2XSxbMSw0LDI0XV0sYXJyb3dfc29saWRfdXA6W1swLDQsMTZdLFswLDQsMjRdLFsxLDQsMTZdLFsxLDQsMjRdXSxhcnJvd19zcGxpdDpbWzAsMywyNF0sWzEsMywyNF1dLGFycm93X3N3YXBfaG9yaXpvbnRhbDpbWzAsNSwyNF0sWzEsNSwxOF0sClsxLDUsMjRdXSxhcnJvd190aW1lOltbMCw4LDI0XSxbMSw4LDI0XV0sYXJyb3dfdGltZV9jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLGFycm93X3RpbWVfZm9yd2FyZDpbWzEsMSwyNF1dLGFycm93X3VuZG86W1sxLDEsMjRdXSxhcnJvd191cDpbWzAsMywyNF0sWzEsMywyNF1dLGFycm93X3VwX2NpcmNsZTpbWzAsNCwxMl0sWzAsNCwxNl0sWzAsNCwxOF0sWzAsNCwyNF1dLGFycm93c19hbGVydDpbWzEsMSwyNF1dLGFydGljbGU6W1sxLDIsMjRdXSxhcnRpY2xlX2FsZXJ0OltbMSwyLDI0XV0sYXJ0aWNsZV9jaGVjazpbWzEsMiwyNF1dLGFydGljbGVfY2xhcmlmeTpbWzEsMiwyNF1dLGF1ZGlvOltbMCwxNCwxMl0sWzAsMTQsMTZdLFswLDE0LDE4XSxbMCwxNCwyNF0sWzEsMTQsMThdLFsxLDE0LDI0XV0sYXVkaW9fYmFkZ2U6W1swLDMsMTJdLFswLDMsMTZdLFswLDMsMjRdXSxhdWRpb19jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLGF1ZGlvX29mZjpbWzEsMiwyNF1dLGF1ZGlvX3N1cnJvdW5kOltbMCwKMSwyNF0sWzEsMSwyNF1dLGJhY2tncm91bmQ6W1sxLDEsMjRdXSxiYWNrc3BhY2U6W1swLDUsMjRdLFsxLDUsMjRdXSxiYWc6W1swLDcsMTJdLFswLDcsMThdLFswLDcsMjRdLFsxLDcsMThdLFsxLDcsMjRdXSxiYWdfYm9va21hcms6W1sxLDIsMjRdXSxiYWdfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxiYXJfY2lyY2xlOltbMSw0LDI0XV0sYmFyX2dyYXBoOltbMCwyLDI0XSxbMSwyLDI0XV0sYmFyX2dyYXBoX2JveF92ZXJ0aWNhbDpbWzAsNiwyNF0sWzEsNiwyNF1dLGJhcl9ob3Jpem9udGFsOltbMSwyLDE2XSxbMSwyLDI0XV0sYmFyc18yOltbMSw5LDE2XSxbMSw5LDI0XV0sYmFyc18zOltbMCwyLDI0XSxbMSwyLDI0XV0sYmVha2VyOltbMSwyLDI0XV0sYmVsbDpbWzAsMTEsMjRdLFsxLDExLDI0XV0sYmVsbF9jYWlybzpbWzAsMywyNF0sWzEsMywyNF1dLGJlbGxfb2ZmOltbMSw1LDI0XV0sYmVsbF9vZmZfY2Fpcm86W1sxLDIsMjRdXSxiZWxsX29uOltbMCw3LDI0XV0sYmVsbF9vbl9jYWlybzpbWzAsCjIsMjRdXSxibHVyOltbMSwyLDI0XV0sYm9vazpbWzEsMywyNF1dLGJvb2ttYXJrOltbMCwxMCwyNF0sWzEsMTAsMjRdXSxib29rbWFya19jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLGJveF8zZDpbWzAsMSwyNF0sWzEsMSwyNF1dLGJveF9iYXI6W1swLDMsMjRdXSxib3hfY2hlY2s6W1swLDYsMThdLFswLDYsMjRdLFswLDYsMzZdLFsxLDYsMjRdXSxib3hfY2hldnJvbl9yaWdodDpbWzEsMywyNF1dLGJveF9kYXNoZWRfdHJpYW5nbGU6W1sxLDMsMjRdXSxib3hfZW1wdHk6W1sxLDUsMjRdXSxib3hfb3Blbl9jaGVjazpbWzAsNCwyNF0sWzEsNCwxNl0sWzEsNCwyNF1dLGJveF9wZW5jaWw6W1sxLDMsMTZdLFsxLDMsMjRdXSxib3hfcGxhY2Vob2xkZXJfbGVmdDpbWzEsMSwyNF1dLGJveF9zZWFyY2g6W1sxLDEsMjRdXSxib3hfc3RhY2tfMzpbWzAsMSwyNF0sWzEsMSwyNF1dLGJveGVzXzI6W1sxLDMsMjRdXSxicmllZmNhc2U6W1sxLDIsMjRdXSxicmllZmNhc2Vfc2xhc2g6W1swLAozLDI0XV0sYnJpZ2h0bmVzczpbWzAsMywyNF0sWzEsMywyNF1dLGJyb2FkY2FzdDpbWzAsMywyNF0sWzEsMywxMl0sWzEsMywxNl0sWzEsMywxOF0sWzEsMywyNF0sWzEsMyw0OF1dLGJ1ZzpbWzAsNCwyNF0sWzEsNCwyNF1dLGJ1c2luZXNzOltbMSw0LDI0XV0sY2FibGU6W1sxLDIsMjRdXSxjYWxjdWxhdG9yOltbMCwzLDI0XSxbMSwzLDI0XV0sY2FsZW5kYXI6W1swLDQsMjRdLFsxLDQsMjRdXSxjYW1lcmE6W1swLDEwLDI0XSxbMSwxMCwyNF1dLGNhbWVyYV9hdWRpbzpbWzEsNSwyNF1dLGNhbWVyYV9lZmZlY3RzOltbMSw0LDI0XV0sY2FtZXJhX2ZsaXA6W1sxLDQsMjRdXSxjYW1lcmFfaGFzaHRhZzpbWzEsNSwyNF1dLGNhbWVyYV9zd2l0Y2g6W1swLDMsMjRdLFsxLDMsMjRdXSxjYXJkOltbMCwzLDEyXSxbMCwzLDE2XSxbMCwzLDI0XV0sY2FydDpbWzAsNCwyNF0sWzEsNCwyNF1dLGNhcnRfc3Bhcms6W1sxLDEsMjRdXSxjYXQ6W1swLDMsMjRdLFsxLDMsMjRdXSxjZWxlYnJhdGlvbjpbWzEsCjIsMjRdXSxjaGVjazpbWzAsMTMsMTJdLFswLDEzLDE2XSxbMCwxMywyNF0sWzEsMTMsMTZdLFsxLDEzLDI0XV0sY2hlY2tfY2lyY2xlOltbMCwxMCwxOF0sWzAsMTAsMjRdLFsxLDEwLDI0XV0sY2hlY2tfZG91YmxlOltbMSwxLDI0XV0sY2hlY2tfZG91YmxlX29mZjpbWzEsMSwyNF1dLGNoZXZyb25fY29sbGFwc2U6W1sxLDMsMjRdXSxjaGV2cm9uX2Rvd246W1sxLDksMThdLFsxLDksMjRdXSxjaGV2cm9uX2Rvd25fY2Fpcm86W1sxLDIsMjRdXSxjaGV2cm9uX2Rvd25fY2lyY2xlOltbMCwzLDI0XV0sY2hldnJvbl9leHBhbmQ6W1sxLDUsMjRdXSxjaGV2cm9uX2ZpcnN0OltbMSwxLDI0XV0sY2hldnJvbl9sYXN0OltbMSwxLDI0XV0sY2hldnJvbl9sZWZ0OltbMSw5LDE2LCEwXSxbMSw5LDE4LCEwXSxbMSw5LDI0LCEwXV0sY2hldnJvbl9sZWZ0X2NpcmNsZTpbWzAsMywyNF1dLGNoZXZyb25fbGVmdF9pb3M6W1sxLDMsMjRdXSxjaGV2cm9uX2xlZnRfaW9zX2NhaXJvOltbMSwyLDI0XV0sCmNoZXZyb25fcmlnaHQ6W1swLDcsMTYsITBdLFswLDcsMTgsITBdLFswLDcsMjQsITBdLFsxLDcsMTYsITBdLFsxLDcsMTgsITBdLFsxLDcsMjQsITBdXSxjaGV2cm9uX3JpZ2h0X2NhaXJvOltbMSwyLDI0XV0sY2hldnJvbl9yaWdodF9jaXJjbGU6W1swLDMsMjRdXSxjaGV2cm9uX3JpZ2h0X2lvczpbWzEsMSwyNF1dLGNoZXZyb25fdXA6W1sxLDksMTZdLFsxLDksMThdLFsxLDksMjRdXSxjaGV2cm9uX3VwX2NhaXJvOltbMSwyLDI0XV0sY2hldnJvbl91cF9jaXJjbGU6W1swLDMsMjRdXSxjaHJvbWVjYXN0OltbMCwxMSwyNF0sWzEsMTEsMjRdXSxjaHJvbWVjYXN0X2FuaW1hdGVfZnJhbWVfMTpbWzEsNSwyNF1dLGNocm9tZWNhc3RfYW5pbWF0ZV9mcmFtZV8yOltbMSw1LDI0XV0sY2hyb21lY2FzdF9hbmltYXRlX2ZyYW1lXzM6W1sxLDUsMjRdXSxjaHJvbWVjYXN0X2NhaXJvOltbMCwyLDI0XSxbMSwyLDI0XV0sY2hyb21lY2FzdF9tb2JpbGU6W1sxLDQsMjRdLFsxLDQsMzZdXSxjaHJvbWVjYXN0X3dhdmVmb3JtOltbMSwKMiwyNF1dLGNpcmNsZTpbWzAsOSwyNF0sWzEsOSwyNF1dLGNpcmNsZV9mdWxsOltbMCwzLDI0XV0sY2lyY2xlX2hhbGZfZnVsbDpbWzEsMSwyNF1dLGNpcmNsZXNfNjpbWzAsMSwyNF1dLGNpcmNsZXNfb3ZlcmxhcDpbWzAsMSwyNF0sWzEsMSwyNF1dLGNpcmNsZXNfb3ZlcmxhcF9jaGVjazpbWzAsMSwxNl0sWzAsMSwyNF1dLGNsYXBwZXJib2FyZDpbWzAsMywyNF0sWzEsMywyNF1dLGNsYXBwZXJib2FyZF9jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLGNsb2NrOltbMCwxMCwyNF0sWzEsMTAsMTZdLFsxLDEwLDI0XV0sY2xvY2tfYXJyb3dzOltbMSwxLDI0XV0sY2xvY2tfYXJyb3dzX2FsZXJ0OltbMSwxLDI0XV0sY2xvY2tfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxjbG9ja19oYWxmX2NpcmNsZTpbWzAsMSwyNF0sWzEsMSwyNF1dLGNsb3NlZF9jYXB0aW9uOltbMCwxMSwyNF0sWzEsMTEsMjRdXSxjbG91ZDpbWzEsMiwyNF1dLGNsb3VkX2Fycm93X2Rvd246W1sxLDMsMjRdXSxjbG91ZF9hcnJvd191cDpbWzAsCjYsMjRdLFsxLDYsMjRdXSxjbG91ZF9jaGVjazpbWzAsMywyNF0sWzEsMywyNF1dLGNsb3VkX2VsbGlwc2lzOltbMCwzLDI0XSxbMSwzLDI0XV0sY2xvdWRfb2ZmOltbMSwyLDI0XV0sY29kZTpbWzEsMiwyNF1dLGNvbXBhc3M6W1swLDksMjRdLFsxLDksMjRdXSxjb21wYXNzX2NhaXJvOltbMCwxLDI0XSxbMSwxLDI0XV0sY29udHJvbGxlcjpbWzAsMiwyNF0sWzEsMiwyNF1dLGNvcHk6W1sxLDMsMjRdXSxjb3B5cmlnaHQ6W1swLDQsMjRdLFsxLDQsMjRdXSxjcmVhdG9yX2FjYWRlbXk6W1swLDMsMTJdLFswLDMsMTZdLFswLDMsMjRdLFsxLDMsMjRdXSxjcmVhdG9yX2FjYWRlbXlfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxjcmVkaXRfY2FyZDpbWzEsNCwyNF1dLGNyb3A6W1sxLDQsMTZdLFsxLDQsMjRdXSxjcm9wX3JvdGF0ZTpbWzEsMiwyNF1dLGNyb3duOltbMCw1LDE2XSxbMCw1LDI0XSxbMSw1LDEyXSxbMSw1LDE2XSxbMSw1LDI0XV0sY3ViZV9zcGFyazpbWzEsMSwyNF1dLApjdXJ2ZV9zOltbMCwxLDI0XV0sZGFzaGJvYXJkX3BsdXM6W1sxLDEsMTZdLFsxLDEsMThdLFsxLDEsMjBdLFsxLDEsMjRdXSxkaWVfMzpbWzAsNSwyNF0sWzEsNSwyNF1dLGRpcmVjdGlvbnM6W1sxLDMsMjRdXSxkb2dmb29kOltbMSwxLDI0XV0sZG9sbGFyX3NpZ246W1swLDcsMjRdLFsxLDcsMjRdXSxkb2xsYXJfc2lnbl9jaXJjbGU6W1swLDEyLDE2XSxbMCwxMiwyNF0sWzEsMTIsMTZdLFsxLDEyLDI0XV0sZG9sbGFyX3NpZ25fY2lyY2xlX3BhdXNlOltbMSwyLDI0XV0sZG9sbGFyX3NpZ25fY2lyY2xlX3BsdXM6W1sxLDEsMjRdXSxkb2xsYXJfc2lnbl9jb250YWluZXI6W1sxLDcsMjRdXSxkb2xsYXJfc2lnbl9oZWFydDpbWzAsMjQsMTJdLFswLDI0LDI0XSxbMSwyNCwxNl0sWzEsMjQsMjRdXSxkb2xsYXJfc2lnbl9vZmY6W1sxLDMsMjRdXSxkb3Q6W1swLDIsMTJdLFswLDIsMjRdXSxkb3dubG9hZDpbWzAsMTEsMjRdLFsxLDExLDE2XSxbMSwxMSwyNF1dLGRvd25sb2FkX2NhaXJvOltbMCwKMiwyNF0sWzEsMiwyNF1dLGRvd25sb2FkZWQ6W1swLDgsMjRdXSxkb3dubG9hZGluZzpbWzEsNSwyNF1dLGRvd25sb2FkaW5nXzA6W1sxLDUsMjRdXSxkb3dubG9hZGluZ18xOltbMSw2LDI0XV0sZG93bmxvYWRpbmdfMjpbWzEsNiwyNF1dLGRvd25sb2FkaW5nXzM6W1sxLDYsMjRdXSxkb3dubG9hZGluZ180OltbMSw2LDI0XV0sZG93bmxvYWRpbmdfNTpbWzEsNywyNF1dLGRvd25sb2FkaW5nXzY6W1sxLDYsMjRdXSxkcml2ZV9hZGQ6W1sxLDIsMjRdXSxlYXJ0aDpbWzAsMTIsMjRdLFsxLDEyLDE2XSxbMSwxMiwxOF0sWzEsMTIsMjRdXSxleHBsaWNpdDpbWzAsNywxOF0sWzAsNywyNF0sWzEsNywyNF1dLGV5ZTpbWzAsNiwyNF0sWzEsNiwyNF1dLGV5ZV9vZmY6W1sxLDQsMjRdXSxleWVkcm9wcGVyOltbMSwyLDI0XV0sZmFjZV9hZGQ6W1sxLDEsMjRdXSxmYWNlX2Fycm93c19kaWFnb25hbDpbWzEsMSwyNF1dLGZhY2VfaGFwcHk6W1swLDEyLDI0XSxbMCwxMiwzNl0sWzEsMTIsMjRdLApbMSwxMiwzNl1dLGZhY2VfaW1hZ2U6W1sxLDIsMjRdXSxmYWNlX21laDpbWzAsMTAsMjRdLFswLDEwLDM2XSxbMSwxMCwyNF0sWzEsMTAsMzZdXSxmYWNlX21laF8yOltbMCw2LDI0XSxbMCw2LDM2XSxbMSw2LDI0XSxbMSw2LDM2XV0sZmFjZV9wYWludGJydXNoOltbMSwyLDI0XV0sZmFjZV9zYWQ6W1swLDEyLDI0XSxbMCwxMiwzNl0sWzEsMTIsMjRdLFsxLDEyLDM2XV0sZmFjZV91bmhhcHB5OltbMCwxMCwyNF0sWzAsMTAsMzZdLFsxLDEwLDI0XSxbMSwxMCwzNl1dLGZhY2VfdXBzZXQ6W1swLDEwLDI0XSxbMCwxMCwzNl0sWzEsMTAsMjRdLFsxLDEwLDM2XV0sZmFjZV92ZXJ5X2hhcHB5OltbMCwxMiwyNF0sWzAsMTIsMzZdLFsxLDEyLDI0XSxbMSwxMiwzNl1dLGZhY2VfdmVyeV9zYWQ6W1swLDEwLDI0XSxbMCwxMCwzNl0sWzEsMTAsMjRdLFsxLDEwLDM2XV0sZmFzaGlvbjpbWzAsNCwyNF0sWzEsNCwyNF1dLGZhc2hpb25fY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxmYXN0X2JhY2s6W1swLAozLDI0XSxbMSwzLDI0XV0sZmFzdF9mb3J3YXJkOltbMCw1LDI0XV0sZmlsbV9zdHJpcDpbWzAsNywyNF0sWzEsNywyNF1dLGZpbG1fc3RyaXBfYWRkOltbMSwyLDI0XV0sZmlsdGVyX2ZhY2U6W1swLDUsMjRdLFsxLDUsMjRdXSxmaWx0ZXJfcGhvdG86W1swLDgsMjRdLFsxLDgsMjRdXSxmaXJlOltbMCwxMCwxMl0sWzAsMTAsMjRdLFsxLDEwLDE2XSxbMSwxMCwyNF1dLGZpcmVfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxmaXJld29ya3M6W1sxLDMsMjRdXSxmbGFnOltbMCwxMCwyNF0sWzEsMTAsMjRdXSxmbGFnX2NhaXJvOltbMCwyLDI0XSxbMSwyLDI0XV0sZmxhc2hfYXV0bzpbWzAsMywyNF0sWzEsMywyNF1dLGZsYXNoX2NpcmNsZTpbWzAsNSwxOF0sWzAsNSwyNF0sWzEsNSwyNF1dLGZsYXNoX29mZjpbWzAsNSwyNF0sWzEsNSwyNF1dLGZsYXNoX29uOltbMCw1LDI0XSxbMSw1LDI0XV0sZmxpcF9ob3Jpem9udGFsOltbMSw0LDI0XV0sZmxpcF9ob3Jpem9udGFsX2Rhc2g6W1sxLAoxLDI0XV0sZmxpcF92ZXJ0aWNhbF9kYXNoOltbMSwxLDI0XV0sZm9sZGVyOltbMCw0LDE2XSxbMCw0LDI0XSxbMSw0LDI0XV0sZm9udF9zcXVhcmVfc3Bhcms6W1sxLDEsMTZdLFsxLDEsMjRdXSxmb290YmFsbDpbWzAsNCwyNF0sWzEsNCwyNF1dLGdhbWluZzpbWzAsMywyNF0sWzEsMywyNF1dLGdhbWluZ19jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLGdlYXI6W1swLDEwLDI0XSxbMSwxMCwyNF1dLGdlYXJfY2Fpcm86W1swLDMsMjRdLFsxLDMsMjRdXSxnaG9zdDpbWzAsNSwyNF0sWzEsNSwyNF1dLGdpZjpbWzEsMywyNF1dLGdpZnQ6W1swLDMsMjRdLFsxLDMsMjRdXSxnbG9iZTpbWzAsNCwyNF0sWzAsNCwzNl0sWzEsNCwyNF0sWzEsNCwzNl1dLGdsb2JlX2ltYWdlOltbMCwzLDI0XSxbMCwzLDM2XSxbMSwzLDI0XSxbMSwzLDM2XV0sZ2xvdzpbWzEsMiwyNF1dLGdvb2dsZV9sZW5zOltbMSw0LDI0XV0sZ3JlYXRlcl90aGFuXzIwOltbMSwyLDI0XV0sZ3JpZF8yeDI6W1sxLDEsMjRdXSwKZ3JpZF8zX2J5XzM6W1swLDEsMjRdLFsxLDEsMjRdXSxncmlkX2FzeW1tZXRyaWNhbDpbWzAsMSwyNF0sWzEsMSwyNF1dLGhhbmQ6W1sxLDIsMjRdXSxoYW5kX2xvbmdfcHJlc3M6W1swLDMsMjRdLFsxLDMsMjRdXSxoYW5kX3BpbmNoX2luOltbMSwyLDI0XV0saGFuZF9zd2lwZV9sZWZ0OltbMSwxLDI0XV0saGFuZF9zd2lwZV9yaWdodDpbWzEsMiwyNF1dLGhhbmRfdGFwOltbMCwyLDI0XSxbMSwyLDI0XV0saGFuZF93YXZlOltbMSwyLDI0XV0saGFuZHNfaGVhcnQ6W1swLDMsMjRdLFsxLDMsMjRdXSxoYXNodGFnOltbMSwyLDE2XSxbMSwyLDE4XSxbMSwyLDIwXSxbMSwyLDI0XV0saGQ6W1swLDgsMjRdLFsxLDgsMjRdXSxoZWFkc2V0OltbMCw4LDI0XSxbMSw4LDI0XV0saGVhcnQ6W1swLDE5LDEzXSxbMCwxOSwyNF0sWzEsMTksMTZdLFsxLDE5LDI0XV0saGVhcnRfYm94OltbMSwxLDI0XV0saGVhcnRfY2lyY2xlOltbMSwyLDE2XSxbMSwyLDE4XSxbMSwyLDIwXSxbMSwyLDI0XV0sCmhlYXJ0X29mZjpbWzEsMiwyNF1dLGhpZXJhcmNoeTpbWzAsNCwyNF0sWzEsNCwyNF1dLGhpZ2hsaWdodHM6W1sxLDIsMjRdXSxob21lOltbMCwxMCwyNF0sWzEsMTAsMjRdXSxob21lX2NhaXJvOltbMCwyLDI0XSxbMSwyLDI0XV0saG91cmdsYXNzOltbMSwzLDE2XSxbMSwzLDI0XV0saW1hZ2U6W1swLDgsMjRdLFsxLDgsMjRdXSxpbWFnZV9hZGQ6W1sxLDQsMjRdXSxpbWFnZV93YWxscGFwZXI6W1sxLDEsMjRdXSxpbmNvZ25pdG86W1swLDksMjRdLFsxLDksMjRdXSxpbmNvZ25pdG9fY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxpbmZpbml0ZTpbWzAsMiwyNF1dLGluZmluaXR5OltbMSwyLDI0XV0saW5mb19jaXJjbGU6W1sxLDExLDE2XSxbMSwxMSwxOF0sWzEsMTEsMjBdLFsxLDExLDI0XV0saW5mb19jaXJjbGVfc3Bhcms6W1sxLDIsMjRdXSxqb3VybmV5OltbMSwyLDI0XV0sa2V5OltbMSw1LDI0XV0sa2V5Ym9hcmQ6W1swLDQsMjRdLFsxLDQsMjRdXSxsYWJlbDpbWzAsNCwyNF0sClsxLDQsMjRdXSxsYXB0b3A6W1sxLDMsMjRdXSxsYXB0b3BfbW9iaWxlOltbMCw0LDI0XSxbMSw0LDI0XV0sbGF5ZXJzOltbMCwxLDI0XSxbMSwxLDI0XV0sbGVhZjpbWzEsMiwyNF1dLGxlbnM6W1sxLDEsMjRdXSxsZXNzX3RoYW5fNDpbWzEsMiwyNF1dLGxpYnJhcnk6W1swLDcsMjRdLFsxLDcsMjRdXSxsaWJyYXJ5X2FkZDpbWzEsNywxNl0sWzEsNywyNF1dLGxpYnJhcnlfaW1hZ2U6W1sxLDEsMjRdXSxsaWJyYXJ5X211c2ljOltbMCwzLDI0XSxbMSwzLDI0XV0sbGlicmFyeV9zYXZlZDpbWzAsNywyNF1dLGxpZ2h0YnVsYjpbWzAsNCwxMl0sWzAsNCwyNF0sWzEsNCwyNF1dLGxpZ2h0YnVsYl9jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLGxpZ2h0YnVsYl9zcGFyazpbWzEsMiwyNF1dLGxpbms6W1sxLDgsMThdLFsxLDgsMjRdXSxsaW5rX29mZjpbWzEsMSwyNF1dLGxpc3RfYWRkOltbMSw1LDI0XV0sbGlzdF9jaGVjazpbWzAsMiwyNF1dLGxpc3RfbXVzaWM6W1sxLDMsMjRdXSxsaXN0X3BlbmNpbDpbWzEsCjUsMjRdXSxsaXN0X3BsYXlfYXJyb3c6W1swLDgsMjRdLFsxLDgsMTJdLFsxLDgsMjRdXSxsaXN0X3BsYXlfYXJyb3dfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxsaXN0X3F1ZXVlOltbMSwxLDI0XV0sbGlzdF9xdWV1ZV9sYXN0OltbMCwzLDI0XSxbMSwzLDI0XV0sbGlzdF9xdWV1ZV9uZXh0OltbMSwxLDI0XV0sbGlzdF9yZW1vdmU6W1sxLDEsMjRdXSxsaXN0X3ZpZXc6W1sxLDIsMjRdXSxsaXN0X3ZpZXdfY2Fpcm86W1sxLDIsMjRdXSxsaXZlX21vYmlsZV9sYW5kc2NhcGVfb3JpZW50YXRpb246W1sxLDEsMjRdXSxsaXZlX3Bob3RvOltbMSwyLDI0XV0sbGl2ZV93YXZlczpbWzEsMiwxOF0sWzEsMiwyNF1dLGxvY2F0aW9uX3BvaW50OltbMCw2LDEyXSxbMCw2LDI0XSxbMSw2LDI0XV0sbG9jYXRpb25fcG9pbnRfb2ZmOltbMSwxLDI0XV0sbG9jazpbWzAsMTMsMTJdLFswLDEzLDI0XSxbMSwxMywxMl0sWzEsMTMsMTZdLFsxLDEzLDE4XSxbMSwxMywyNF1dLGxvY2tfb3BlbjpbWzEsCjQsMjRdXSxtYWdpY193YW5kOltbMCwzLDI0XSxbMSwzLDI0XV0sbWFpbDpbWzAsOSwyNF0sWzEsOSwyNF1dLG1hcDpbWzEsMywyNF1dLG1hdGhfYWRkOltbMCwzLDI0XV0sbWF0aF9hbmQ6W1swLDMsMjRdXSxtYXRoX2RpdmlkZTpbWzAsMywyNF1dLG1hdGhfZXF1YWxzOltbMCwzLDI0XV0sbWF0aF9lcXVhbHNfc2xhc2g6W1sxLDMsMjRdXSxtYXRoX2dyZWF0ZXJfdGhhbjpbWzAsMywyNF1dLG1hdGhfZ3JlYXRlcl90aGFuX29yX2VxdWFsOltbMSwxLDI0XV0sbWF0aF9sZXNzX3RoYW46W1swLDMsMjRdXSxtYXRoX2xlc3NfdGhhbl9vcl9lcXVhbDpbWzEsNCwyNF1dLG1hdGhfbXVsdGlwbHk6W1swLDMsMjRdXSxtYXRoX29yOltbMCwzLDI0XV0sbWF0aF9wZXJjZW50OltbMCwzLDI0XV0sbWF0aF9zdWJ0cmFjdDpbWzAsMywyNF1dLG1heGltaXplX2NhaXJvOltbMSwxLDI0XV0sbWVkYWw6W1sxLDIsMjRdXSxtZWRhbF9zdGFyOltbMSwyLDI0XV0sbWVldDpbWzEsMSwyNF1dLG1lZ2FwaG9uZTpbWzAsCjUsMjRdLFsxLDUsMjRdXSxtZW1iZXJzaGlwczpbWzAsOSwxMl0sWzAsOSwxNl0sWzAsOSwxOF0sWzAsOSwyNF0sWzEsOSwyNF1dLG1lbnRpb246W1sxLDUsMTZdLFsxLDUsMjRdXSxtZW51X2ZpbHRlcjpbWzAsMSwyNF0sWzEsMSwyNF1dLG1lbnVfc29ydDpbWzEsNCwyNF1dLG1lc3NhZ2VfYnViYmxlX2FsZXJ0OltbMCw2LDI0XSxbMSw2LDI0XV0sbWVzc2FnZV9idWJibGVfYWxlcnRfY2Fpcm86W1sxLDIsMjRdXSxtZXNzYWdlX2J1YmJsZV9lbXB0eTpbWzEsMSwyNF1dLG1lc3NhZ2VfYnViYmxlX2dlYXI6W1sxLDEsMjRdXSxtZXNzYWdlX2J1YmJsZV9sZWZ0OltbMCwxLDI0XSxbMSwxLDI0XV0sbWVzc2FnZV9idWJibGVfbGVmdF9ib29zdDpbWzEsMSwyNF1dLG1lc3NhZ2VfYnViYmxlX2xlZnRfb2ZmOltbMSwxLDE2XSxbMSwxLDI0XV0sbWVzc2FnZV9idWJibGVfb3ZlcmxhcDpbWzAsOCwyNF0sWzEsOCwyNF1dLG1lc3NhZ2VfYnViYmxlX3F1ZXN0aW9uOltbMCwyLDE2XSxbMCwyLAoyNF0sWzEsMiwxNl0sWzEsMiwyNF1dLG1lc3NhZ2VfYnViYmxlX3JpZ2h0OltbMCwxNCwyNF0sWzAsMTQsMzJdLFsxLDE0LDE2XSxbMSwxNCwyNF1dLG1lc3NhZ2VfYnViYmxlX3JpZ2h0X2NhcHRpb246W1sxLDEsMjRdXSxtaWM6W1swLDE0LDI0XSxbMSwxNCwyNF1dLG1pY19vZmY6W1sxLDIsMjRdXSxtaW5pcGxheWVyX2V4aXQ6W1sxLDEsMjRdXSxtb2JpbGU6W1swLDQsMjRdLFsxLDQsMjRdXSxtb2JpbGVfY2hlY2s6W1sxLDIsMjRdXSxtb2JpbGVfZG93bmxvYWQ6W1sxLDMsMjRdXSxtb2JpbGVfbGFuZHNjYXBlOltbMSwzLDI0XV0sbW9iaWxlX3NjcmVlbl9ob3Jpem9udGFsOltbMSwxLDI0XV0sbW9iaWxlX3NjcmVlbl92ZXJ0aWNhbDpbWzEsMSwyNF1dLG1vbmV5X2hhbmQ6W1sxLDIsMjRdXSxtb25pdG9yX2Rpc3BsYXk6W1swLDQsMTZdLFswLDQsMjRdLFsxLDQsMTZdLFsxLDQsMjRdXSxtb25pdG9yX2Rpc3BsYXlfb2ZmOltbMSwxLDI0XV0sbW9vbl96OltbMCwxLDI0XSxbMSwKMSwyNF1dLG1vdGlvbjpbWzEsMiwyNF1dLG1vdmU6W1sxLDQsMjRdXSxtdXNpYzpbWzAsNiwyNF0sWzEsNiwxNl0sWzEsNiwxOF0sWzEsNiwyNF1dLG11c2ljX29mZjpbWzEsMywyNF1dLG11c2ljX3NjaXNzb3JzOltbMSwzLDI0XV0sbXVzaWNfc2hhcGU6W1sxLDMsMjRdXSxtdXNpY192aWRlbzpbWzEsNCwyNF1dLG11c2ljX3ZpZGVvX29mZjpbWzEsMSwyNF1dLG15X3ZpZGVvczpbWzEsNiwyNF1dLG15X3ZpZGVvc19jYWlybzpbWzEsMiwyNF1dLG5ld3M6W1swLDMsMjRdLFsxLDMsMTJdLFsxLDMsMjRdXSxuZXdzX2NhaXJvOltbMCwyLDI0XSxbMSwyLDI0XV0sbm9kZV9sZWZ0OltbMSwyLDI0XV0sbm9kZV9yaWdodDpbWzEsMiwyNF1dLG5vdGU6W1swLDEsMTZdLFswLDEsMjRdLFsxLDEsMTZdLFsxLDEsMjRdXSxub3RlX2FkZDpbWzEsMSwxNl0sWzEsMSwyNF1dLG5vdGVfc3Bhcms6W1swLDIsMTZdLFswLDIsMjRdLFsxLDIsMTZdLFsxLDIsMjRdXSxvZG9tZXRlcjpbWzAsNCwyNF0sClsxLDQsMjRdXSxvcGVuX25ldzpbWzAsNywyNF0sWzEsNywxMl0sWzEsNywyNF1dLG92ZXJmbG93X2hvcml6b250YWw6W1sxLDYsMjRdLFsxLDYsMzJdXSxvdmVyZmxvd192ZXJ0aWNhbDpbWzEsMTMsMjRdXSxvdmVyZmxvd192ZXJ0aWNhbF9jYWlybzpbWzEsMSwyNF1dLHBhaW50X2J1Y2tldDpbWzEsMywyNF1dLHBhbGV0dGU6W1sxLDEsMjRdXSxwYW5lbHM6W1swLDIsMjRdLFsxLDIsMjRdXSxwYXBlcl9jb3JuZXJfZm9sZGVkOltbMCwyLDI0XSxbMSwyLDI0XV0scGFwZXJfb3Blbl9pbl9uZXc6W1swLDEsMjRdLFsxLDEsMjRdXSxwYXVzZTpbWzAsOSwyNF1dLHBhdXNlX2NpcmNsZTpbWzAsMiwxMl0sWzAsMiwxNl0sWzAsMiwyNF1dLHBkZjpbWzEsMiwyNF1dLHBlbmNpbDpbWzEsMTAsMTZdLFsxLDEwLDE4XSxbMSwxMCwyNF1dLHBlb3BsZTpbWzAsNiwxMl0sWzAsNiwyNF0sWzEsNiwyNF1dLHBlb3BsZV8yOltbMCwxLDI0XSxbMSwxLDI0XV0scGVvcGxlX2dyb3VwOltbMCw0LDI0XSwKWzEsNCwxNl0sWzEsNCwyNF1dLHBlb3BsZV9ub3RlOltbMCwxLDE4XSxbMCwxLDI0XSxbMSwxLDI0XV0scGVyc29uOltbMCw3LDEyXSxbMCw3LDEzXSxbMCw3LDE2XSxbMCw3LDI0XSxbMCw3LDQ4XSxbMSw3LDEzXSxbMSw3LDE2XSxbMSw3LDI0XV0scGVyc29uXzI6W1sxLDEsMjRdXSxwZXJzb25fYWNjb3VudDpbWzEsNiwyNF1dLHBlcnNvbl9hY2NvdW50X2NhaXJvOltbMSwxLDI0XV0scGVyc29uX2FkZDpbWzEsNywyNF1dLHBlcnNvbl9ib3g6W1sxLDUsMjRdXSxwZXJzb25fY2lyY2xlOltbMCwxMCwyNF0sWzEsMTAsMjRdXSxwZXJzb25fY2lyY2xlX2NhaXJvOltbMCwyLDI0XSxbMSwyLDI0XV0scGVyc29uX2NpcmNsZV9zbGFzaDpbWzEsMiwyNF1dLHBlcnNvbl9taW51czpbWzAsMSwyNF0sWzEsMSwyNF1dLHBlcnNvbl9tdXNpYzpbWzAsNCwyNF0sWzEsNCwyNF1dLHBlcnNvbl9yYWRhcjpbWzAsNywxMl0sWzAsNywyNF0sWzEsNywxNl0sWzEsNywxOF0sWzEsNywyNF1dLHBlcnNvbl9zZXR0aW5nOltbMSwKNiwyNF1dLHBlcnNvbl9zaGllbGQ6W1sxLDgsMjRdXSxwZXJzb25fc3F1YXJlX3NwYXJrOltbMCwxLDI0XSxbMSwxLDI0XV0scGVyc29uX3dhdmVmb3JtOltbMSwyLDI0XV0scGhvbmU6W1swLDMsMjRdLFsxLDMsMjRdXSxwaWN0dXJlX2luX3BpY3R1cmU6W1swLDIsMjRdLFsxLDIsMjRdXSxwaWN0dXJlX2luX3BpY3R1cmVfY29tYmluZTpbWzEsMSwyNF1dLHBpbjpbWzAsNywxMl0sWzAsNywyNF0sWzEsNywxNl0sWzEsNywyNF1dLHBpbl9vZmY6W1sxLDEsMjRdXSxwbGF5X2Fycm93OltbMCw3LDI0XSxbMSw3LDI0XV0scGxheV9hcnJvd19jaXJjbGU6W1swLDIsMjRdLFsxLDIsMjRdXSxwbGF5X2Fycm93X2Rpc2FibGVkOltbMCwxLDEyXSxbMCwxLDI0XV0scGxheV9hcnJvd19oYWxmX2NpcmNsZTpbWzAsNSwyNF0sWzEsNSwyNF1dLHBvZGNhc3Q6W1swLDYsMjRdLFsxLDYsMTJdLFsxLDYsMTZdLFsxLDYsMThdLFsxLDYsMjRdXSxwb2RjYXN0X2FkZDpbWzAsMiwyNF0sWzEsMiwyNF1dLApwb2RjYXN0X2NhaXJvOltbMCwyLDI0XSxbMSwyLDI0XV0scG9kY2FzdF9jaGVjazpbWzAsMiwyNF1dLHBvaW50XzJ4OltbMSwxLDI0XV0scG9pbnRfM3g6W1sxLDMsMjRdXSxwb2ludF81eDpbWzEsMywyNF1dLHBvaW50Xzh4OltbMSwxLDI0XV0scG9sbDpbWzEsMTAsMTZdLFsxLDEwLDI0XSxbMSwxMCw0MF1dLHBvdW5kOltbMSwzLDI0XV0scHJlc2VudGF0aW9uOltbMSwzLDI0XV0scHJlc2VudGF0aW9uX3JlbW92ZTpbWzEsMSwyNF1dLHByaWNlX3RhZzpbWzAsOCwxMl0sWzAsOCwyNF0sWzEsOCwyNF1dLHByaWNlX3RhZ19oZWFydDpbWzEsMiwyNF1dLHFyX2NvZGU6W1sxLDMsMjRdXSxxdWVzdGlvbl9jaXJjbGU6W1sxLDUsMjRdXSxxdWVzdGlvbl9jaXJjbGVfY2Fpcm86W1sxLDIsMjRdXSxxdWVzdGlvbl9oZWFkOltbMSwyLDI0XV0scXVvdGF0aW9uX21hcms6W1swLDEsMjRdLFsxLDEsMjRdXSxxdW90YXRpb25fbWFya19vZmY6W1sxLDEsMjRdXSxyYWRhcl9saXZlOltbMCw3LDI0XSwKWzEsNywxMl0sWzEsNywxNl0sWzEsNywyNF1dLHJhZGFyX2xpdmVfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxyYXRpbmdfZG93bjpbWzEsMSwyNF1dLHJhdGluZ191cDpbWzEsNywxMl0sWzEsNywxNl0sWzEsNywyNF1dLHJlY29yZDpbWzAsMiwyNF1dLHJlbWl4OltbMSwyLDE2XSxbMSwyLDI0XV0scmVwbGF5X2Fycm93OltbMSwxLDI0XV0scm90YXRlXzkwOltbMSwxLDI0XV0scm90YXRlXzkwX2Nsb2Nrd2lzZTpbWzEsMiwyNF1dLHJzczpbWzEsMiwxNl0sWzEsMiwyNF1dLHJzc19vZmY6W1sxLDEsMTZdLFsxLDEsMjRdXSxydWJ5OltbMSwyLDEyXSxbMSwyLDE2XSxbMSwyLDE4XSxbMSwyLDI0XV0sc2FtcGxlczpbWzAsMiwyNF0sWzEsMiwyNF1dLHNhdHVyYXRpb246W1sxLDIsMjRdXSxzY2FsZTpbWzEsNCwyNF1dLHNjaXNzb3JzOltbMCw4LDEyXSxbMCw4LDI0XSxbMSw4LDI0XV0sc2Npc3NvcnNfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxzY2lzc29yc19jdXQ6W1sxLDQsCjE2XSxbMSw0LDE4XSxbMSw0LDI0XV0sc2NyZWVuX2RlZmF1bHQ6W1swLDEsMjRdLFswLDEsNDhdLFsxLDEsMjRdLFsxLDEsNDhdXSxzY3JlZW5fZnVsbDpbWzEsNywyNF1dLHNjcmVlbl9mdWxsX2NhaXJvOltbMSwxLDI0XV0sc2NyZWVuX2Z1bGxfZXhpdDpbWzEsNiwyNF1dLHNjcmVlbl9mdWxsX2V4aXRfY2Fpcm86W1sxLDEsMjRdXSxzY3JlZW5fZnVsbHNjcmVlbjpbWzAsMSwyNF0sWzAsMSw0OF0sWzEsMSwyNF0sWzEsMSw0OF1dLHNjcmVlbl9saWdodDpbWzEsMSwyNF1dLHNjcmVlbl9taW5pX3BsYXllcjpbWzAsMSwyNF0sWzAsMSw0OF0sWzEsMSwyNF0sWzEsMSw0OF1dLHNjcmVlbl9tdWx0aV92aWV3OltbMCwzLDI0XSxbMSwzLDI0XV0sc2NyZWVuX3JvdGF0aW9uOltbMSwyLDE4XSxbMSwyLDI0XV0sc2NyZWVuX3N3aXRjaDpbWzAsMSwyNF0sWzEsMSwyNF1dLHNjcmVlbl90aGVhdHJlOltbMCwxLDI0XSxbMCwxLDQ4XSxbMSwxLDI0XSxbMSwxLDQ4XV0sc2NyZWVuX3ZlcnRpY2FsOltbMSwKMSwyNF1dLHNjcmVlbl94OltbMSwyLDI0XV0sc2Q6W1swLDMsMjRdLFsxLDMsMjRdXSxzZWFyY2g6W1swLDE1LDI0XSxbMSwxNSwyNF1dLHNlYXJjaF9jYWlybzpbWzEsMiwyNF1dLHNlYXJjaF9zdXBlcnNjcmlwdDpbWzEsMSwyNF1dLHNlbmQ6W1swLDcsMTgsITBdLFswLDcsMjQsITBdLFsxLDcsMTgsITBdLFsxLDcsMjQsITBdXSxzZXR0aW5nc19yZW1vdGU6W1sxLDEsMjRdXSxzaGFkb3dfaGFyZDpbWzAsMywyNF1dLHNoYWRvd19zb2Z0OltbMCwzLDI0XV0sc2hhcGVzOltbMCwzLDI0XSxbMSwzLDI0XV0sc2hhcmU6W1swLDEyLDI0LCEwXSxbMCwxMiwzMiwhMF0sWzEsMTIsMTYsITBdLFsxLDEyLDI0LCEwXV0sc2hhcmVfY2Fpcm86W1sxLDIsMjRdXSxzaGFyZV9pb3M6W1sxLDIsMjRdXSxzaGFyZV9saW5rOltbMCwxLDI0XSxbMSwxLDI0XV0sc2hpZWxkOltbMSw2LDI0XV0sc2hpZWxkX2FkZDpbWzEsMiwyNF1dLHNoaWVsZF9jaGVjazpbWzEsMSwyNF1dLHNoaWVsZF9lbXB0eTpbWzAsCjEsMTZdLFswLDEsMThdLFswLDEsMjRdLFsxLDEsMTZdLFsxLDEsMThdLFsxLDEsMjRdXSxzaGllbGRfb2ZmOltbMSwxLDI0XV0sc2hpZWxkX292ZXJmbG93OltbMSwyLDI0XV0sc2hpZWxkX3BsdXM6W1sxLDEsMjRdXSxzaGllbGRfc2VhcmNoOltbMSwyLDI0XV0sc2hvcnRzX2xheW91dF9ib3R0b206W1sxLDEsMjRdXSxzaG9ydHNfbGF5b3V0X2NlbnRlcmVkX3NxdWFyZTpbWzEsMSwyNF1dLHNob3J0c19sYXlvdXRfZm9yZWdyb3VuZDpbWzEsMSwyNF1dLHNob3J0c19sYXlvdXRfbGFuZHNjYXBlX2JvdHRvbTpbWzEsMSwyNF1dLHNob3J0c19sYXlvdXRfbGFuZHNjYXBlX3RvcDpbWzEsMSwyNF1dLHNob3J0c19sYXlvdXRfbGVmdDpbWzEsMSwyNF1dLHNob3J0c19sYXlvdXRfcGlwOltbMSwxLDI0XV0sc2hvcnRzX2xheW91dF9yaWdodDpbWzEsMSwyNF1dLHNob3J0c19sYXlvdXRfc2luZ2xlOltbMSwxLDI0XV0sc2hvcnRzX2xheW91dF90b3A6W1sxLDEsMjRdXSxza2lwX2JhY2tfMTA6W1swLAoxLDI0XV0sc2tpcF9iYWNrXzE1OltbMCwxLDI0XV0sc2tpcF9iYWNrXzIwOltbMCwxLDI0XV0sc2tpcF9iYWNrXzMwOltbMCwxLDI0XV0sc2tpcF9iYWNrXzU6W1swLDEsMjRdXSxza2lwX2JhY2tfNjA6W1swLDEsMjRdXSxza2lwX2Rvd246W1swLDYsMjRdXSxza2lwX2ZvcndhcmRfMTA6W1swLDEsMjRdXSxza2lwX2ZvcndhcmRfMTU6W1swLDEsMjRdXSxza2lwX2ZvcndhcmRfMjA6W1swLDEsMjRdXSxza2lwX2ZvcndhcmRfMzA6W1swLDEsMjRdXSxza2lwX2ZvcndhcmRfNTpbWzAsMSwyNF1dLHNraXBfZm9yd2FyZF82MDpbWzAsMSwyNF1dLHNraXBfbmV4dDpbWzAsNywyNF1dLHNraXBfcHJldmlvdXM6W1swLDYsMjRdXSxza2lwX3VwOltbMCw2LDI0XV0sc2xhc2hfY2lyY2xlX2xlZnQ6W1sxLDcsMjRdXSxzbGFzaF9jaXJjbGVfcmlnaHQ6W1sxLDIsMjRdXSxzb2NjZXJfYmFsbDpbWzEsMywyNF1dLHNvY2Nlcl9jYXJkOltbMCwyLDEyXSxbMCwyLDE2XSxbMCwyLDI0XV0sc3BhY2ViYXI6W1sxLAoyLDI0XV0sc3Bhcms6W1swLDExLDEyXSxbMCwxMSwxNl0sWzAsMTEsMjRdLFsxLDExLDI0XV0sc3BhcmtfY2hhdDpbWzEsMSwxNl0sWzEsMSwyNF1dLHNwYXJrX2ltYWdlOltbMSwyLDI0XV0sc3BhcmtfbGlnaHRidWxiOltbMCwzLDI0XSxbMSwzLDI0XV0sc3BhcmtfbWVzc2FnZV9idWJibGU6W1sxLDQsMTZdLFsxLDQsMjRdXSxzcGFya19tZXNzYWdlX2J1YmJsZV9sZWZ0OltbMSwxLDI0XV0sc3BhcmtfbXVzaWM6W1sxLDIsMjRdXSxzcGFya19wZW5jaWw6W1sxLDIsMjRdXSxzcGFya19yYWRhcjpbWzAsMSwxMl0sWzAsMSwxNl0sWzAsMSwyNF0sWzEsMSwxMl0sWzEsMSwxNl0sWzEsMSwyNF1dLHNwYXJrX3RleHQ6W1sxLDEsMjRdXSxzcGFya192aWRlbzpbWzEsMiwyNF1dLHNwYXJrbGU6W1swLDQsMjRdLFsxLDQsMjRdXSxzcGVha2VyOltbMSwyLDI0XV0sc3BlYWtlcl9ncm91cDpbWzEsMSwyNF1dLHNwZWFrZXJfZ3JvdXBfb2ZmOltbMSwxLDI0XV0sc3BlYWtlcl9oZWFkc2V0OltbMSwKMiwyNF1dLHNwZWFrZXJfb2ZmOltbMSwxLDI0XV0sc3BsaXQ6W1sxLDQsMjRdXSxzcG9ydHM6W1swLDEsMjRdXSxzcG90bGlnaHQ6W1swLDMsMjRdLFsxLDMsMjRdXSxzdGFyOltbMCw2LDEyXSxbMCw2LDE2XSxbMCw2LDI0XSxbMSw2LDEyXSxbMSw2LDE2XSxbMSw2LDI0XV0sc3Rhcl9jaXJjbGU6W1swLDYsMTJdLFswLDYsMTZdLFswLDYsMThdLFswLDYsMjRdXSxzdGFyX2NpcmNsZV9yaWJib246W1swLDEsMTZdLFswLDEsMjBdLFswLDEsMjRdLFswLDEsMzZdLFsxLDEsMTZdLFsxLDEsMjBdLFsxLDEsMjRdLFsxLDEsMzZdXSxzdGFyX2hhbGY6W1swLDMsMTJdLFswLDMsMTZdLFswLDMsMjRdXSxzdGFyX3Nob290aW5nOltbMCwzLDI0XSxbMSwzLDI0XV0sc3RhdGlzdGljc19ncmFwaDpbWzEsMiwyNF1dLHN0aWNrZXI6W1sxLDMsMjRdXSxzdG9wOltbMCw2LDI0XSxbMCw2LDM2XV0sc3RvcHdhdGNoOltbMCw1LDE2XSxbMCw1LDI0XSxbMSw1LDE2XSxbMSw1LDI0XV0sc3RvcHdhdGNoXzEwOltbMCwKMSwyNF1dLHN0b3B3YXRjaF8zOltbMCwxLDI0XV0sc3Vic2NyaXB0aW9uczpbWzAsMTIsMjRdLFsxLDEyLDE4XSxbMSwxMiwyNF1dLHN1YnNjcmlwdGlvbnNfY2Fpcm86W1swLDIsMjRdLFsxLDIsMjRdXSxzdWJ0aXRsZXM6W1swLDUsMTJdLFswLDUsMjRdLFsxLDUsMjRdXSxzdXBlcl9jaGF0OltbMSw4LDE4XSxbMSw4LDI0XV0sc3VwZXJfc3RpY2tlcjpbWzAsOCwxNl0sWzAsOCwyNF0sWzEsOCwxNl0sWzEsOCwyNF1dLHN1cGVyX3N0b3JlOltbMSwzLDI0XV0sc3VwZXJzdGFyOltbMSwxLDI0XV0sdGFibGV0OltbMSwxLDI0XV0sdGFyZ2V0OltbMCwyLDI0XSxbMSwyLDE2XSxbMSwyLDI0XV0sdGFyZ2V0X2FkZDpbWzAsMiwyNF0sWzEsMiwxNl0sWzEsMiwyNF1dLHRlbXBsYXRlX2FkZDpbWzEsMywxNl0sWzEsMywyNF1dLHRlbXBsYXRlX3BsYXk6W1swLDMsMjRdLFsxLDMsMjRdXSx0ZXh0OltbMCw5LDI0XSxbMSw5LDE2XSxbMSw5LDE4XSxbMSw5LDI0XV0sdGV4dF9iZWxsX2NhaXJvOltbMSwKMSwxMl0sWzEsMSwxNl0sWzEsMSwxOF0sWzEsMSwyNF1dLHRleHRfYm9sZDpbWzEsMSwyNF1dLHRleHRfYm94OltbMSw1LDI0XV0sdGV4dF9pdGFsaWM6W1sxLDEsMjRdXSx0ZXh0X291dGxpbmU6W1sxLDIsMjRdXSx0ZXh0X3ByZXNldDpbWzEsMSwyNF1dLHRleHRfc2VyaWY6W1sxLDEsMjRdXSx0ZXh0X3NoYWRvdzpbWzEsMiwyNF1dLHRleHRfc3RyaWtldGhyb3VnaDpbWzEsMSwyNF1dLHRleHRfdW5kZXJsaW5lOltbMSwxLDI0XV0sdGhlbWVfc3dpdGNoOltbMCwxLDI0XSxbMSwxLDI0XV0sdGhlcm1vbWV0ZXI6W1sxLDIsMjRdXSx0aHVtYl9kb3duOltbMCwyNSwxNl0sWzAsMjUsMjRdLFswLDI1LDM2XSxbMSwyNSwxNl0sWzEsMjUsMjRdLFsxLDI1LDM2XV0sdGh1bWJfdXA6W1swLDI0LDE2XSxbMCwyNCwyNF0sWzAsMjQsMzZdLFsxLDI0LDE2XSxbMSwyNCwyNF0sWzEsMjQsMzZdXSx0aHVtYl91cF9jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLHRodW1iX3VwX2Rvd246W1swLDQsCjI0XSxbMSw0LDI0XV0sdGljX3RhY190b2U6W1swLDQsMTJdLFswLDQsMjRdLFsxLDQsMTZdLFsxLDQsMjRdXSx0aWNfdGFjX3RvZV9jYWlybzpbWzAsMiwyNF0sWzEsMiwyNF1dLHRpY2tldF9zdGFyOltbMSwxLDI0XV0sdGlsdDpbWzEsNCwyNF1dLHRpbWVfc3RhbXBfcGx1czpbWzEsMSwyNF1dLHRpbWVsaW5lOltbMSwzLDI0XV0sdG9vbGJveDpbWzEsNCwyNF1dLHRyYW5zY3JpcHQ6W1sxLDIsMTZdLFsxLDIsMjRdXSx0cmFuc2NyaXB0X3NlYXJjaDpbWzEsMSwxNl0sWzEsMSwyNF1dLHRyYW5zaXRpb246W1swLDUsMjRdLFsxLDUsMjRdXSx0cmFuc2xhdGU6W1sxLDQsMTZdLFsxLDQsMjRdXSx0cmFzaF9jYW46W1sxLDEwLDE2XSxbMSwxMCwxOF0sWzEsMTAsMjRdXSx0cmlhbmdsZV9kb3duOltbMSw4LDI0XV0sdHJpYW5nbGVfdGhyZWVfbGVmdDpbWzAsMSwyNF1dLHRyaWFuZ2xlX3RocmVlX3JpZ2h0OltbMCwxLDI0XV0sdHJvcGh5OltbMCwzLDI0XSxbMSwzLDI0XV0sdHJvcGh5X2NhaXJvOltbMCwKMiwyNF0sWzEsMiwyNF1dLHRyb3BoeV9zdGFyOltbMSwxLDI0XV0sdHJ1Y2s6W1swLDUsMjRdLFsxLDUsMjRdXSx0djpbWzAsOCwxMl0sWzAsOCwxNl0sWzAsOCwyNF0sWzEsOCwxNl0sWzEsOCwyNF1dLHR2X2Fycm93X2xlZnQ6W1sxLDIsMjRdXSx0dl9jaXJjbGU6W1swLDMsMjRdLFsxLDMsMjRdXSx0dl9kb2xsYXJfc2lnbjpbWzAsMSwyNF0sWzEsMSwyNF1dLHR2X29mZjpbWzEsMiwyNF1dLHR2X3F1ZXVlOltbMSw0LDI0XV0sdHZfcXVldWVfY2hldnJvbjpbWzEsMiwyNF1dLHVwbG9hZDpbWzEsNSwyNF1dLHVwbG9hZGluZzpbWzEsMSwyNF1dLHZhcmlhYmxlOltbMSw0LDI0XV0sdmVyaWZpZWRfY2lyY2xlOltbMSw0LDI0XV0sdmlkZW9fY2FtZXJhOltbMCw5LDI0XSxbMSw5LDI0XV0sdmlkZW9fY2FtZXJhX2FkZDpbWzEsMiwyNF1dLHZpZGVvX2NhbWVyYV9vZmY6W1sxLDEsMjRdXSx2aWRlb19saW5rOltbMSw1LDE2XSxbMSw1LDI0XV0sdmlkZW9fcmV2ZXJzZTpbWzEsMSwyNF1dLAp2aWRlb19zcGFyazpbWzEsMiwyNF1dLHZpZGVvX3N0aXRjaDpbWzEsMiwyNF1dLHZpZGVvX3dhdmVmb3JtOltbMSwxLDI0XV0sdm9sdW1lX2Rvd246W1swLDIsMjRdLFsxLDIsMjRdXSx2b2x1bWVfZmFkZTpbWzEsMiwyNF1dLHZvbHVtZV9vZmY6W1swLDQsMjRdLFsxLDQsMjRdXSx2b2x1bWVfb246W1swLDMsMjRdLFsxLDMsMjRdXSx2b2x1bWVfc3RhYmxlOltbMCwxLDI0XSxbMSwxLDI0XV0sdnI6W1swLDcsMjRdLFsxLDcsMjRdXSx3YXZlZm9ybTpbWzEsMywyNF1dLHdhdmVmb3JtX211c2ljOltbMCwyLDE4XSxbMCwyLDI0XSxbMCwyLDQ4XV0sd2F2ZWZvcm1fc3Bhcms6W1sxLDIsMjRdXSx3cmVuY2g6W1swLDMsMjRdLFsxLDMsMjRdXSx4OltbMSwxMSwxOF0sWzEsMTEsMjRdXSx4X2NhaXJvOltbMSwxLDI0XV0seF9jaXJjbGU6W1swLDksMjRdLFsxLDksMjRdXSx4X21hcms6W1sxLDQsMjBdLFsxLDQsMjRdXSx4X29jdGFnb246W1sxLDMsMjRdXSx5ZW5fc2lnbl9jb250YWluZXI6W1swLAoyLDI0XSxbMSwyLDI0XV0seW91dHViZV9pbXByb3ZlX3R2OltbMSwxLDI0XV0seW91dHViZV9raWRzOltbMCw1LDI0XSxbMSw1LDI0XV0seW91dHViZV9sYWJzOltbMCwxLDI0XV0seW91dHViZV9saW5rZWRfdHY6W1sxLDQsMjRdXSx5b3V0dWJlX2xvZ29faWNvbjpbWzAsNiwyNF0sWzEsNiwyNF1dLHlvdXR1YmVfbWl4OltbMSw1LDEyXSxbMSw1LDE2XSxbMSw1LDI0XV0seW91dHViZV9tdXNpYzpbWzAsNywyNF0sWzEsNywyNF1dLHlvdXR1YmVfbXVzaWNfY2Fpcm86W1sxLDIsMjRdXSx5b3V0dWJlX29yaWdpbmFsczpbWzAsNiwyNF0sWzEsNiwyNF1dLHlvdXR1YmVfc2hvcnRzOltbMCwxMSwxMl0sWzAsMTEsMjBdLFswLDExLDI0XSxbMSwxMSwyMF0sWzEsMTEsMjRdXSx5b3V0dWJlX3Nob3J0c19hcnJvd19kb3duOltbMSwxLDI0XV0seW91dHViZV9zaG9ydHNfYXJyb3dfbGVmdDpbWzEsMiwyNF1dLHlvdXR1YmVfc2hvcnRzX2Fycm93X3VwOltbMSwxLDI0XV0seW91dHViZV9zaG9ydHNfY2Fpcm86W1swLAoyLDI0XSxbMSwyLDI0XV0seW91dHViZV9zaG9ydHNfY2FtZXJhOltbMSwzLDI0XV0seW91dHViZV9zaG9ydHNfY2hldnJvbl9sZWZ0X2lvczpbWzEsMiwyNF1dLHlvdXR1YmVfc2hvcnRzX2dyZWVuX3NjcmVlbjpbWzAsMSwyNF0sWzEsMSwyNF1dLHlvdXR1YmVfc2hvcnRzX2hlYXJ0OltbMCwyLDI0XSxbMCwyLDMyXV0seW91dHViZV9zaG9ydHNfbWVzc2FnZV9idWJibGVfcmlnaHQ6W1swLDIsMjRdLFswLDIsMzJdXSx5b3V0dWJlX3Nob3J0c19ub190cmlhbmdsZTpbWzAsNCwxNl0sWzAsNCwyNF0sWzAsNCwzMl0sWzEsNCwxNl0sWzEsNCwyNF0sWzEsNCwzMl1dLHlvdXR1YmVfc2hvcnRzX292ZXJmbG93X3ZlcnRpY2FsOltbMSwyLDI0XV0seW91dHViZV9zaG9ydHNfcGx1czpbWzEsNSwxNl0sWzEsNSwyNF1dLHlvdXR1YmVfc2hvcnRzX3JlbWl4OltbMCwyLDI0XSxbMCwyLDMyXV0seW91dHViZV9zaG9ydHNfc2VhcmNoOltbMSwzLDI0XV0seW91dHViZV9zaG9ydHNfc2hhcmU6W1swLAoyLDI0XSxbMCwyLDMyXV0seW91dHViZV9zaG9ydHNfc3RpY2tlcjpbWzEsMSwxOF0sWzEsMSwyNF1dLHlvdXR1YmVfc2hvcnRzX3RodW1iX2Rvd246W1swLDIsMjRdLFswLDIsMzJdXSx5b3V0dWJlX3Nob3J0c190aHVtYl91cDpbWzAsMiwyNF0sWzAsMiwzMl1dLHlvdXR1YmVfc2hvcnRzX3dhdmVmb3JtOltbMSwyLDE4XSxbMSwyLDI0XV0seW91dHViZV9zdHVkaW86W1swLDgsMjRdLFsxLDgsMjRdXSx5b3V0dWJlX3R2OltbMCw4LDI0XSxbMSw4LDI0XV0sem9vbV9hdXRvOltbMCwyLDI0XSxbMSwyLDI0XV19O3ZhciBXcWE9e2FjY2Vzc2liaWxpdHk6W1swLDQsMjRdLFsxLDQsMjRdXSxhY2NvdW50X2xpbms6W1swLDgsMjRdLFsxLDgsMjRdXSxhY2NvdW50X2xpbmtfZXJyb3I6W1sxLDYsMjRdXSxhZGQ6W1sxLDksMThdLFsxLDksMjRdXSxhZGRfY2lyY2xlOltbMCw2LDE4XSxbMCw2LDI0XSxbMSw2LDI0XSxbMSw2LDM2XV0sYWRkX3NxdWFyZV9zdGFjazpbWzEsMSwyNF1dLGFkZF90djpbWzEsMSwyNF1dLGFkZF90dl9jaGV2cm9uX3JpZ2h0OltbMSwxLDI0XV0sYWRqdXN0OltbMCw5LDI0XSxbMSw5LDI0XV0sYWlycGxhbmU6W1swLDUsMjRdLFswLDUsNDhdLFsxLDUsMjRdXSxhaXJwbGF5OltbMSw2LDI0XV0sYWlycGxheV9zbGFzaDpbWzEsMSwyNF1dLGFsYnVtOltbMCw4LDI0XSxbMSw4LDE4XSxbMSw4LDI0XSxbMSw4LDQ4XV0sYWxlcnRfYnViYmxlOltbMSwyLDE4XSxbMSwyLDI0XV0sYWxlcnRfY2lyY2xlOltbMCwxMSwyNF0sWzEsMTEsMTJdLFsxLDExLDI0XSxbMSwxMSw0OF1dLGFsZXJ0X29jdGFnb246W1swLAoyLDI0XSxbMSwyLDI0XV0sYWxlcnRfdHJpYW5nbGU6W1swLDEwLDEyXSxbMCwxMCwyNF0sWzAsMTAsNDhdLFsxLDEwLDI0XV0sYW1iaWVudF9tb2RlOltbMSwxLDI0XV0sYW1wZXJzYW5kOltbMSwxLDI0XV0sYXBpOltbMCwyLDI0XSxbMSwyLDI0XV0sYXJjaGl2ZTpbWzEsMSwyNF1dLGFycm93X2FyY19mb3J3YXJkOltbMSwxLDI0XV0sYXJyb3dfY2xvY2t3aXNlOltbMSwxLDI0XV0sYXJyb3dfY291bnRlcmNsb2Nrd2lzZTpbWzEsMiwyNF0sWzEsMiw0OF1dLGFycm93X2NvdW50ZXJjbG9ja3dpc2VfZGFzaGVkOltbMSwxLDI0XV0sYXJyb3dfZG93bjpbWzEsMywyNF1dLGFycm93X2Rvd25fY2lyY2xlOltbMCw0LDI0XSxbMSw0LDI0XV0sYXJyb3dfZG93bl9jaXJjbGVfc2xhc2g6W1swLDEsMjRdLFsxLDEsMjRdXSxhcnJvd19kb3duX3JpZ2h0OltbMSwxLDI0XV0sYXJyb3dfZmxpcDpbWzEsMTAsMjRdXSxhcnJvd19pbjpbWzEsOCwxOF0sWzEsOCwyNF1dLGFycm93X2xlZnQ6W1sxLDgsCjI0LCEwXSxbMSw4LDM2LCEwXV0sYXJyb3dfbWVyZ2U6W1sxLDIsMjRdXSxhcnJvd19vdXQ6W1sxLDIsMjRdXSxhcnJvd19yaWdodDpbWzEsMywyNCwhMF1dLGFycm93X3JpZ2h0X3JlY3RhbmdsZTpbWzAsMiwyNF0sWzEsMiwyNF1dLGFycm93X3NvbGlkX2Rvd246W1swLDQsMThdLFswLDQsMjRdLFsxLDQsMThdLFsxLDQsMjRdXSxhcnJvd19zb2xpZF91cDpbWzAsNCwxOF0sWzAsNCwyNF0sWzEsNCwxOF0sWzEsNCwyNF1dLGFycm93X3NwbGl0OltbMSwzLDI0XV0sYXJyb3dfc3BsaXRfYWxlcnQ6W1sxLDEsMjRdXSxhcnJvd19zd2FwX2hvcml6b250YWw6W1sxLDUsMjRdXSxhcnJvd190cmVuZF9kb3duOltbMSwxLDI0XV0sYXJyb3dfdHJlbmRfdXA6W1sxLDIsMTJdLFsxLDIsMjRdXSxhcnJvd190dXJuX2Rvd25fcmlnaHQ6W1sxLDIsMThdLFsxLDIsMjRdXSxhcnJvd191cDpbWzEsMywyNF1dLGFycm93X3VwX2NpcmNsZTpbWzAsNCwyNF0sWzEsNCwyNF1dLGFycm93X3VwX2xlZnQ6W1sxLAoxLDI0XV0sYXJyb3dfdXBfcmVjdGFuZ2xlX3BvcnRyYWl0OltbMSwxLDI0XV0sYXJyb3dfdXBfcmlnaHQ6W1sxLDIsMThdLFsxLDIsMjRdLFsxLDIsMzZdXSxhc3BlY3RfcmF0aW9fdzE2X2g5OltbMSwxLDI0XV0sYXNwZWN0X3JhdGlvX3c5X2gxNjpbWzEsMSwyNF1dLGF1ZGlvOltbMCwxNCwxMl0sWzAsMTQsMThdLFswLDE0LDI0XSxbMSwxNCwxMl0sWzEsMTQsMThdLFsxLDE0LDI0XSxbMSwxNCw0OF1dLGF1ZGlvX2Fycm93X2ZsaXA6W1swLDIsMjRdLFsxLDIsMjRdXSxhdWRpb19iYWRnZTpbWzAsMywyNF0sWzEsMywyNF1dLGF1ZGlvX3NjaXNzb3JzOltbMSwxLDI0XV0sYXVkaW9fc2xhc2g6W1swLDIsMjRdLFsxLDIsMjRdXSxhdWRpb19zcGFyazpbWzEsMSwyNF1dLGF1ZGlvX3NxdWFyZV9zdGFjazpbWzAsMiwyNF0sWzEsMiwyNF1dLGF1ZGlvX3N0YWZmOltbMCwyLDI0XSxbMSwyLDI0XV0sYmFja3NwYWNlOltbMCw1LDI0XSxbMSw1LDI0XV0sYmFnOltbMCw3LDI0XSxbMSw3LDI0XV0sCmJhZ19ib29rbWFyazpbWzEsMiwyNF1dLGJhc2tldGJhbGw6W1swLDIsMjRdLFsxLDIsMjRdXSxiZWFrZXI6W1sxLDIsMjRdXSxiZWQ6W1swLDEsMjRdLFswLDEsNDhdLFsxLDEsMjRdLFsxLDEsNDhdXSxiZWxsOltbMCwxMSwyNF0sWzEsMTEsMjRdXSxiZWxsX3NsYXNoOltbMSwxLDI0XV0sYmVsbF93YXZlczpbWzAsMiwyNF0sWzEsMiwyNF1dLGJsdXI6W1sxLDIsMjRdXSxib29rOltbMCwzLDI0XSxbMSwzLDI0XV0sYm9va19hdWRpbzpbWzEsMSwyNF1dLGJvb2ttYXJrOltbMCwxMCwxOF0sWzAsMTAsMjRdLFsxLDEwLDE4XSxbMSwxMCwyNF1dLGJyaWVmY2FzZTpbWzEsMiwyNF1dLGJyaWVmY2FzZV9zbGFzaDpbWzAsMywyNF0sWzEsMywyNF1dLGJyaWdodG5lc3M6W1swLDMsMjRdLFsxLDMsMjRdXSxicm93c2VyOltbMCwyLDI0XSxbMSwyLDI0XV0sYnJvd3Nlcl9zbGFzaDpbWzEsMSwyNF1dLGJ1YmJsZTpbWzEsMSwyNF1dLGJ1YmJsZV9hc3RlcmlzazpbWzAsMiwyNF0sWzEsMiwyNF1dLApidWJibGVfZWxsaXBzaXM6W1sxLDEsMjRdXSxidWJibGVfZ2VhcjpbWzEsMSwyNF1dLGJ1YmJsZV9saXN0OltbMSwxLDI0XV0sYnViYmxlX3BlbmNpbDpbWzEsMSwyNF1dLGJ1YmJsZV9zbGFzaDpbWzAsMiwyNF0sWzEsMiwyNF1dLGJ1YmJsZV9zbG93OltbMCwyLDI0XSxbMCwyLDQ4XSxbMSwyLDI0XSxbMSwyLDQ4XV0sYnViYmxlX3NwYXJrOltbMSwxLDI0XV0sYnViYmxlX3NwYXJrbGVzOltbMSwxLDI0XV0sYnViYmxlX3N0YWNrOltbMCwyLDI0XSxbMSwyLDI0XV0sYnVnOltbMCw0LDE4XSxbMCw0LDI0XSxbMSw0LDI0XV0sYnVzaW5lc3M6W1swLDQsMjRdLFsxLDQsMjRdXSxjYWJsZTpbWzEsMiwyNF1dLGNhbGN1bGF0b3I6W1swLDMsMjRdLFsxLDMsMjRdXSxjYWxlbmRhcjpbWzAsNCwyNF0sWzEsNCwyNF1dLGNhbGVuZGFyX2V2ZW50OltbMCwyLDI0XSxbMSwyLDI0XV0sY2FsZW5kYXJfdG9kYXk6W1sxLDEsMjRdXSxjYW1lcmE6W1swLDEwLDI0XSxbMSwxMCwxOF0sWzEsMTAsMjRdXSwKY2FtZXJhX2F1ZGlvOltbMSw1LDI0XV0sY2FtZXJhX2ZsaXA6W1sxLDQsMjRdXSxjYW1lcmFfaGFzaHRhZzpbWzEsNSwyNF1dLGNhbWVyYV9zcGFya2xlczpbWzEsMSwyNF1dLGNhbWVyYV9zd2l0Y2g6W1swLDMsMjRdLFsxLDMsMjRdXSxjYXJkOltbMCwzLDI0XV0sY2FydDpbWzAsNCwyNF0sWzEsNCwyNF1dLGNhcnRfYWRkOltbMSwxLDI0XV0sY2FydF9zcGFyazpbWzEsMSwyNF1dLGNhdDpbWzAsMywyNF0sWzEsMywyNF1dLGNlbGVicmF0aW9uOltbMSwyLDI0XV0sY2hhcnRfYmFyOltbMSwyLDEyXSxbMSwyLDI0XV0sY2hhcnRfYmFyX3NlYXJjaDpbWzAsMiwyNF0sWzEsMiwyNF1dLGNoYXJ0X2Jhcl9zcXVhcmU6W1swLDMsMjRdLFsxLDMsMThdLFsxLDMsMjRdXSxjaGFydF9saW5lOltbMSwxLDI0XV0sY2hhcnRfcGllOltbMCwyLDI0XSxbMSwyLDI0XV0sY2hhcnRfc2NhdHRlcl9wbG90OltbMSwxLDI0XV0sY2hlY2s6W1sxLDEzLDEyXSxbMSwxMywxOF0sWzEsMTMsMjRdLFsxLDEzLAozNl1dLGNoZWNrX2NpcmNsZTpbWzAsMTAsMjRdLFsxLDEwLDI0XV0sY2hlY2tfZG9uZTpbWzEsMSwyNF1dLGNoZWNrX2RvbmVfc2xhc2g6W1sxLDEsMjRdXSxjaGVja19zaGllbGQ6W1sxLDEsMjRdXSxjaGVja19zcXVhcmU6W1swLDIsMjRdLFsxLDIsMjRdXSxjaGVja19zcXVhcmVfc3RhY2s6W1swLDEsMjRdXSxjaGV2cm9uX2NvbGxhcHNlOltbMSwzLDI0XV0sY2hldnJvbl9kb3duOltbMSw5LDE4XSxbMSw5LDI0XV0sY2hldnJvbl9kb3duX2NpcmNsZTpbWzAsMywyNF0sWzEsMywyNF1dLGNoZXZyb25fZG93bl9lbmQ6W1sxLDEsMjRdXSxjaGV2cm9uX2V4cGFuZDpbWzEsNSwyNF1dLGNoZXZyb25fbGVmdDpbWzEsOSwyNCwhMF1dLGNoZXZyb25fbGVmdF9jaXJjbGU6W1swLDMsMjRdLFsxLDMsMjRdXSxjaGV2cm9uX2xlZnRfZW5kOltbMSwxLDI0XV0sY2hldnJvbl9sZWZ0X2lvczpbWzEsMywyNF1dLGNoZXZyb25fcmlnaHQ6W1sxLDcsMTgsITBdLFsxLDcsMjQsITBdXSxjaGV2cm9uX3JpZ2h0X2NpcmNsZTpbWzAsCjMsMjRdLFsxLDMsMjRdXSxjaGV2cm9uX3JpZ2h0X2VuZDpbWzEsMSwyNF1dLGNoZXZyb25fcmlnaHRfc3F1YXJlOltbMSwxLDI0XV0sY2hldnJvbl91cDpbWzEsOSwxMl0sWzEsOSwyNF1dLGNoZXZyb25fdXBfY2lyY2xlOltbMCwzLDI0XSxbMSwzLDI0XV0sY2hldnJvbl91cF9lbmQ6W1sxLDEsMjRdXSxjaHJvbWVjYXN0OltbMCwxMSwyNF0sWzEsMTEsMThdLFsxLDExLDI0XSxbMSwxMSwzNl1dLGNocm9tZWNhc3RfbW9iaWxlOltbMSw0LDI0XSxbMSw0LDM2XV0sY2hyb21lY2FzdF93YXZlZm9ybTpbWzEsMiwyNF1dLGNpcmNsZTpbWzAsOSwyNF0sWzEsOSwyNF1dLGNpcmNsZV9mdWxsOltbMCwzLDI0XV0sY2lyY2xlX2Z1bGxfaGFsZjpbWzAsMSwyNF1dLGNpcmNsZV9oYWxmX2ZpbGxlZDpbWzEsMSwyNF1dLGNpcmNsZV9zbGFzaDpbWzAsNCwyNF0sWzEsNCwxOF0sWzEsNCwyNF0sWzEsNCw0OF1dLGNpcmNsZXM2OltbMSwxLDI0XV0sY2xhcHBlcmJvYXJkOltbMCwzLDI0XSxbMSwzLAoyNF1dLGNsYXBwZXJib2FyZF9zbGFzaDpbWzEsMSwyNF1dLGNsYXBwZXJib2FyZF9zcGFya2xlczpbWzAsMiwyNF0sWzEsMiwyNF1dLGNsb2NrOltbMCwxMCwyNF0sWzAsMTAsNDhdLFsxLDEwLDI0XV0sY2xvY2tfYXJyb3dfY2xvY2t3aXNlOltbMSwxLDI0XV0sY2xvY2tfaGFsZl9kYXNoZWQ6W1sxLDEsMjRdXSxjbG9ja19zcGxpdDpbWzAsMiwyNF0sWzEsMiwyNF1dLGNsb2NrX3NwbGl0X2FsZXJ0OltbMCwyLDI0XSxbMSwyLDI0XV0sY2xvc2VkX2NhcHRpb25zOltbMCwzLDI0XSxbMCwzLDQ4XSxbMSwzLDI0XSxbMSwzLDQ4XV0sY2xvdWQ6W1sxLDIsMjRdXSxjbG91ZF9hcnJvd19kb3duOltbMSwzLDI0XV0sY2xvdWRfYXJyb3dfdXA6W1swLDYsMjRdLFsxLDYsMThdLFsxLDYsMjRdXSxjbG91ZF9jaGVjazpbWzAsMywyNF0sWzEsMywyNF1dLGNsb3VkX2VsbGlwc2lzOltbMCwzLDI0XSxbMSwzLDI0XV0sY2xvdWRfc2xhc2g6W1sxLDIsMjRdLFsxLDIsNDhdXSxjbXNfYWxsb3dsaXN0OltbMCwKMiwyNF0sWzEsMiwyNF1dLGNvZGU6W1sxLDIsMjRdXSxjb21wYXJlOltbMSwyLDI0XV0sY29tcGFzczpbWzAsOSwyNF0sWzEsOSwyNF1dLGNvcHk6W1sxLDMsMjRdXSxjb3B5X3RvX2FsbDpbWzEsMSwyNF1dLGNvcHlyaWdodDpbWzAsNCwyNF0sWzEsNCwyNF1dLGNvcHlyaWdodF9zZWFyY2g6W1swLDIsMjRdLFsxLDIsMjRdXSxjb3Zlcl9jbGFpbTpbWzEsMSwyNF1dLGNyZWF0aXZlX2NvbW1vbnM6W1swLDIsMjRdLFsxLDIsMjRdXSxjcmVkaXRfY2FyZDpbWzAsNCwyNF0sWzEsNCwyNF1dLGNyb3A6W1sxLDQsMThdLFsxLDQsMjRdXSxjcm9wX3JvdGF0ZTpbWzEsMiwyNF1dLGNyb3NzaGFpcjpbWzEsMSwxOF0sWzEsMSwyNF1dLGNyb3duOltbMCw1LDE4XSxbMCw1LDI0XSxbMSw1LDI0XV0sY3N2OltbMCwyLDI0XSxbMSwyLDI0XV0sY3ViZTpbWzAsMiwyNF0sWzEsMiwyNF1dLGN1YmVfc3Bhcms6W1sxLDEsMjRdXSxjdXJzb3JfY2xpY2s6W1swLDIsMjRdLFsxLDIsMjRdXSxjdXJ2ZTpbWzEsCjEsMjRdXSxjdnA6W1swLDIsMjRdLFsxLDIsMjRdXSxkYW5jZV9zcGFyazpbWzAsMSwyNF1dLGRhc2hib2FyZDpbWzAsMiwyNF0sWzEsMiwyNF1dLGRhc2hib2FyZF9hZGQ6W1sxLDEsMjRdXSxkaWVfZmFjZTM6W1swLDIsMjRdLFsxLDIsMjRdXSxkaXJlY3Rpb25zOltbMSwzLDI0XV0sZGlzcGxheTpbWzAsMiwyNF0sWzEsMiwyNF1dLGRpc3BsYXlfc2xhc2g6W1sxLDEsMjRdXSxkaXZpZGU6W1sxLDEsMjRdXSxkb2N1bWVudDpbWzAsMiwyNF0sWzEsMiwyNF1dLGRvY3VtZW50X2Fycm93X3VwX3JpZ2h0OltbMCwyLDI0XSxbMSwyLDI0XV0sZG9sbGFyX3NpZ25fYXJyb3dfZmxpcDpbWzEsMSwyNF1dLGRvbGxhcl9zaWduX2NpcmNsZTpbWzAsMTIsMjRdLFsxLDEyLDEyXSxbMSwxMiwxOF0sWzEsMTIsMjRdXSxkb2xsYXJfc2lnbl9jaXJjbGVfYWRkOltbMSwxLDI0XV0sZG9sbGFyX3NpZ25fY2lyY2xlX2hhbmQ6W1sxLDEsMjRdXSxkb2xsYXJfc2lnbl9jaXJjbGVfcGF1c2U6W1sxLDIsMjRdXSwKZG9sbGFyX3NpZ25fY2lyY2xlX3NsYXNoOltbMSwyLDEyXSxbMSwyLDI0XV0sZG9sbGFyX3NpZ25faGVhcnQ6W1swLDI0LDEyXSxbMCwyNCwyNF0sWzEsMjQsMTJdLFsxLDI0LDI0XV0sZG9sbGFyX3NpZ25fcmVjdGFuZ2xlOltbMSwxLDI0XV0sZG9sbGFyX3NpZ25fdHY6W1swLDIsMjRdLFsxLDIsMjRdXSxkb3Q6W1swLDIsMTJdLFswLDIsMjRdXSxkb3dubG9hZDpbWzEsMTEsMThdLFsxLDExLDI0XV0sZHBhZDpbWzAsMiwyNF0sWzEsMiwyNF1dLGVtYmVkOltbMCwyLDI0XSxbMSwyLDI0XV0sZXF1YWw6W1sxLDIsMThdLFsxLDIsMjRdXSxlcXVhbF9zbGFzaDpbWzEsMSwyNF1dLGV4cGxpY2l0OltbMCw3LDI0XSxbMSw3LDI0XV0sZXllOltbMCw2LDI0XSxbMSw2LDI0XV0sZXllX3NsYXNoOltbMSwxLDI0XV0sZXllZHJvcHBlcjpbWzEsMiwyNF1dLGV5ZWdsYXNzZXM6W1sxLDEsMjRdXSxmYWNlX2FkZDpbWzEsMSwyNF1dLGZhY2VfaGFwcHk6W1swLDEyLDI0XSxbMCwxMiwzNl0sWzAsCjEyLDQ4XSxbMSwxMiwyNF0sWzEsMTIsMzZdXSxmYWNlX2ltYWdlOltbMSwyLDI0XV0sZmFjZV9tZWg6W1swLDEwLDI0XSxbMSwxMCwyNF1dLGZhY2VfbmV1dHJhbDpbWzAsNCwyNF0sWzAsNCwzNl0sWzEsNCwyNF0sWzEsNCwzNl1dLGZhY2VfcGFpbnRicnVzaDpbWzEsMiwyNF1dLGZhY2Vfc2FkOltbMCwxMiwyNF0sWzAsMTIsMzZdLFsxLDEyLDI0XSxbMSwxMiwzNl1dLGZhY2Vfc2NhbGU6W1sxLDEsMjRdXSxmYWNlX3NwYXJrbGVzOltbMCwyLDI0XSxbMSwyLDI0XV0sZmFjZV91bmhhcHB5OltbMCwxMCwyNF0sWzAsMTAsMzZdLFsxLDEwLDI0XSxbMSwxMCwzNl1dLGZhY2VfdXBzZXQ6W1swLDEwLDI0XSxbMSwxMCwyNF1dLGZhY2VfdmVyeV9oYXBweTpbWzAsMTIsMjRdLFswLDEyLDM2XSxbMSwxMiwyNF0sWzEsMTIsMzZdXSxmYWNlX3Zlcnlfc2FkOltbMCwxMCwyNF0sWzEsMTAsMjRdXSxmYXNoaW9uOltbMCw0LDI0XSxbMSw0LDI0XV0sZmFzdF9mb3J3YXJkOltbMCw1LDI0XSxbMSwKNSwyNF1dLGZhc3RfcmV3aW5kOltbMCwyLDI0XSxbMSwyLDI0XV0sZmlsbV9zdHJpcDpbWzAsNywyNF0sWzAsNyw0OF0sWzEsNywyNF1dLGZpbG1fc3RyaXBfYWRkOltbMSwyLDI0XV0sZmlsbV9zdHJpcF9hdWRpbzpbWzEsMSwyNF1dLGZpbHRlcjpbWzEsMSwyNF1dLGZpbHRlcl9hdWRpbzpbWzEsMSwyNF1dLGZpbHRlcl9waG90bzpbWzAsOCwyNF0sWzEsOCwyNF1dLGZpcmV3b3JrczpbWzEsMywyNF1dLGZsYWc6W1swLDEwLDI0XSxbMCwxMCw0OF0sWzEsMTAsMThdLFsxLDEwLDI0XSxbMSwxMCw0OF1dLGZsYXNoOltbMCwyLDI0XSxbMSwyLDI0XV0sZmxhc2hfYXV0bzpbWzAsMywyNF0sWzEsMywyNF1dLGZsYXNoX2NpcmNsZTpbWzAsNSwyNF0sWzEsNSwyNF1dLGZsYXNoX3NsYXNoOltbMCwyLDI0XSxbMSwyLDI0XV0sZmxpcF9ob3Jpem9udGFsOltbMSw0LDI0XV0sZmxpcF9ob3Jpem9udGFsX2hhbGZfZGFzaGVkOltbMSwxLDI0XV0sZmxpcF92ZXJ0aWNhbF9oYWxmX2Rhc2hlZDpbWzEsCjEsMjRdXSxmb2xkZXI6W1swLDQsMjRdLFsxLDQsMjRdXSxmb250OltbMSwxLDI0XV0sZm9udF9ib2xkOltbMSwxLDI0XV0sZm9udF9pdGFsaWM6W1sxLDEsMjRdXSxmb250X291dGxpbmU6W1sxLDEsMjRdXSxmb250X3ByZXNlbnQ6W1sxLDEsMjRdXSxmb250X3NlcmlmOltbMSwxLDI0XV0sZm9udF9zaGFkb3c6W1sxLDEsMjRdXSxmb250X3NwYXJrOltbMSwxLDI0XV0sZm9udF9zcXVhcmU6W1swLDIsMjRdLFsxLDIsMjRdXSxmb250X3NxdWFyZV9zcGFyazpbWzEsMSwxOF0sWzEsMSwyNF1dLGZvbnRfc3RyaWtldGhyb3VnaDpbWzEsMSwyNF1dLGZvbnRfc3R5bGU6W1sxLDIsMThdLFsxLDIsMjRdXSxmb250X3VuZGVybGluZTpbWzEsMSwyNF1dLGZvb3RiYWxsOltbMCw0LDI0XSxbMSw0LDI0XSxbMSw0LDM2XV0sZ2FtZV9jb250cm9sbGVyOltbMSwxLDI0XV0sZ2FtaW5nOltbMCwzLDI0XSxbMSwzLDI0XV0sZ2VhcjpbWzAsMTAsMjRdLFswLDEwLDQ4XSxbMSwxMCwxOF0sWzEsMTAsMjRdLApbMSwxMCw0OF1dLGdlc3R1cmVfbG9uZ19wcmVzczpbWzAsMiwyNF0sWzEsMiwyNF1dLGdlc3R1cmVfcGluY2hfaW46W1sxLDEsMjRdXSxnZXN0dXJlX3N3aXBlX2xlZnQ6W1sxLDEsMjRdXSxnZXN0dXJlX3N3aXBlX3JpZ2h0OltbMSwxLDI0XV0sZ2VzdHVyZV9zd2lwZV91cDpbWzEsMSwyNF1dLGdlc3R1cmVfdGFwOltbMCwyLDI0XSxbMSwyLDI0XV0sZ2hvc3Q6W1swLDUsMjRdLFsxLDUsMjRdXSxnaWY6W1swLDMsMThdLFswLDMsMjRdLFsxLDMsMThdLFsxLDMsMjRdXSxnaWZ0OltbMCwzLDI0XSxbMSwzLDI0XV0sZ2xvYmU6W1sxLDQsMjRdXSxnbG9iZV9pbWFnZTpbWzEsMywyNF1dLGdsb3c6W1sxLDIsMjRdXSxnb29nbGU6W1swLDEsMjRdXSxnb29nbGVfYmxvZ2dlcjpbWzAsMSwyNF1dLGdvb2dsZV9kcml2ZV9hZGQ6W1sxLDEsMjRdXSxnb29nbGVfbGVuczpbWzEsNCwyNF1dLGdvb2dsZV9tZWV0OltbMCwyLDI0XSxbMSwyLDI0XV0sZ29vZ2xlX3F1aWNrX3NoYXJlOltbMSwxLDI0XV0sCmdyYWR1YXRpb25fY2FwOltbMCwzLDE4XSxbMCwzLDI0XSxbMSwzLDI0XV0sZ3JlYXRlcl90aGFuOltbMSwxLDI0XV0sZ3JlYXRlcl90aGFuX24yMDpbWzEsMSwyNF1dLGdyZWF0ZXJfdGhhbl9vcl9lcXVhbF90bzpbWzEsMSwyNF1dLGhhbmQ6W1sxLDIsMjRdXSxoYW5kX3dhdmU6W1sxLDIsMjRdXSxoYW5kc19jbGFwOltbMSwxLDI0XV0saGFuZHNfaGVhcnQ6W1swLDMsMjRdLFsxLDMsMjRdXSxoYXNodGFnOltbMSwyLDI0XV0saGQ6W1swLDgsMjRdLFsxLDgsMjRdXSxoZWFkc2V0OltbMCw4LDI0XSxbMSw4LDI0XV0saGVhcmluZzpbWzAsMiwyNF0sWzEsMiwyNF1dLGhlYXJ0OltbMCwxOSwyNF0sWzEsMTksMThdLFsxLDE5LDI0XV0saGVhcnRfY2lyY2xlOltbMSwyLDI0XV0saGVhcnRfY3ViZTpbWzEsMSwyNF1dLGhlYXJ0X3NsYXNoOltbMSwxLDI0XV0saGVscF9idWJibGU6W1swLDIsMjRdLFsxLDIsMjRdXSxoZWxwX2NpcmNsZTpbWzEsMiwxOF0sWzEsMiwyNF1dLGhpZXJhcmNoeTpbWzAsCjQsMjRdLFsxLDQsMjRdXSxoaWdobGlnaHRzOltbMSwyLDI0XV0saGlzdG9yeTpbWzEsMSwyNF1dLGhvbWU6W1swLDEwLDI0XSxbMSwxMCwyNF1dLGhvdXJnbGFzczpbWzEsMywxOF0sWzEsMywyNF1dLGh5cGU6W1swLDIsMjRdLFsxLDIsMjRdXSxpbWFnZTpbWzAsOCwyNF0sWzEsOCwyNF1dLGltYWdlX2FkZDpbWzAsNCwyNF0sWzEsNCwyNF1dLGltYWdlX2ZyYW1lOltbMSwxLDI0XV0saW1hZ2VfbGlzdDpbWzAsMiwyNF0sWzEsMiwyNF1dLGltYWdlX2xpc3Rfc2xhc2g6W1sxLDEsMjRdXSxpbWFnZV9zcGFyazpbWzEsMSwyNF1dLGltYWdlX3N0YWNrOltbMCwyLDI0XSxbMSwyLDI0XV0saW1hZ2Vfdmlld2ZpbmRlcjpbWzEsMSwyNF1dLGluY29nbml0bzpbWzAsOSwyNF0sWzEsOSwyNF1dLGluZmluaXR5OltbMSwyLDI0XV0saW5mb19jaXJjbGU6W1sxLDEwLDE4XSxbMSwxMCwyNF1dLGluZm9fY2lyY2xlX3NwYXJrOltbMSwxLDI0XV0samV3ZWw6W1sxLDEsMjRdXSxqb3VybmV5OltbMSwKMiwyNF1dLGtleTpbWzEsNSwyNF1dLGtleWJvYXJkOltbMCw0LDI0XSxbMSw0LDI0XV0sbGFiZWw6W1swLDQsMjRdLFsxLDQsMjRdXSxsYWJlbF9zbGFzaDpbWzAsMiwyNF0sWzEsMiwyNF1dLGxhcHRvcDpbWzEsMywyNF1dLGxhcHRvcF9tb2JpbGU6W1swLDQsMjRdLFsxLDQsMjRdXSxsYXlvdXRfYm90dG9tOltbMSwxLDI0XV0sbGF5b3V0X2ZvcmVncm91bmQ6W1sxLDEsMjRdXSxsYXlvdXRfZnVsbDpbWzEsMSwyNF1dLGxheW91dF9sZWZ0OltbMSwxLDI0XV0sbGF5b3V0X21pZGRsZTpbWzEsMSwyNF1dLGxheW91dF9waWN0dXJlX2luX3BpY3R1cmU6W1sxLDEsMjRdXSxsYXlvdXRfcmlnaHQ6W1sxLDEsMjRdXSxsYXlvdXRfdG9wOltbMSwxLDI0XV0sbGVhZjpbWzEsMiwyNF1dLGxlc3NfdGhhbjpbWzEsMSwyNF1dLGxlc3NfdGhhbl9uNDpbWzEsMSwyNF1dLGxlc3NfdGhhbl9vcl9lcXVhbF90bzpbWzEsMSwyNF1dLGxpY2Vuc2U6W1swLDIsMjRdLFsxLDIsMjRdXSxsaWNlbnNlX2FsZXJ0OltbMSwKMSwyNF1dLGxpY2Vuc2Vfc2VhcmNoOltbMSwxLDI0XV0sbGljZW5zZV9zbGFzaDpbWzEsMSwyNF1dLGxpZ2h0YnVsYjpbWzAsNCwyNF0sWzEsNCwyNF1dLGxpbms6W1sxLDgsMThdLFsxLDgsMjRdXSxsaW5rX3NsYXNoOltbMSwxLDI0XV0sbGl2ZTpbWzEsMywxMl0sWzEsMywyNF1dLGxpdmVfcGhvdG86W1sxLDIsMjRdXSxsaXZlX3dhdmVzOltbMSwyLDE4XSxbMSwyLDI0XV0sbG9jYXRpb25fcGluOltbMCwyLDI0XSxbMSwyLDI0XV0sbG9jYXRpb25fcGluX3NsYXNoOltbMSwxLDI0XV0sbG9jazpbWzAsMTMsMTJdLFswLDEzLDI0XSxbMSwxMywxOF0sWzEsMTMsMjRdLFsxLDEzLDQ4XV0sbG9ja19jbG9jazpbWzEsMSwyNF1dLGxvY2tfbjI6W1sxLDEsMjRdXSxsb2NrX29wZW46W1swLDQsMjRdLFsxLDQsMjRdXSxtYWdpY193YW5kOltbMCwzLDI0XSxbMSwzLDI0XV0sbWFpbDpbWzAsOSwyNF0sWzEsOSwyNF1dLG1hcDpbWzEsMywyNF1dLG1lZGFsOltbMSwyLDI0XV0sbWVkYWxfc3RhcjpbWzEsCjIsMjRdXSxtZWdhcGhvbmU6W1swLDUsMjRdLFsxLDUsMTJdLFsxLDUsMjRdXSxtZW1iZXJzaGlwczpbWzAsOSwyNF0sWzAsOSwzNl0sWzEsOSwyNF1dLG1lbWJlcnNoaXBzX2dpZnQ6W1sxLDEsMjRdXSxtZW50aW9uOltbMSw1LDI0XV0sbWVudTpbWzEsMSwyNF1dLG1pYzpbWzAsMTQsMThdLFswLDE0LDI0XSxbMCwxNCwzNl0sWzAsMTQsNDhdLFsxLDE0LDE4XSxbMSwxNCwyNF0sWzEsMTQsNDhdXSxtaWNfc2xhc2g6W1sxLDIsMjRdXSxtaWNfc3Bhcms6W1swLDEsMThdLFswLDEsMjRdLFsxLDEsMThdLFsxLDEsMjRdXSxtaW51czpbWzEsMiwxOF0sWzEsMiwyNF1dLG1pbnVzX2NpcmNsZTpbWzAsMywyNF0sWzEsMywxOF0sWzEsMywyNF1dLG1pbnVzX3NxdWFyZTpbWzAsMiwyNF0sWzEsMiwyNF1dLG1peDpbWzAsNCwyNF0sWzEsNCwxOF0sWzEsNCwyNF1dLG1vYmlsZTpbWzAsNCwyNF0sWzEsNCwyNF1dLG1vYmlsZV9hcnJvd19kb3duOltbMSwxLDI0XV0sbW9iaWxlX2Fycm93X2luOltbMSwKMSwyNF1dLG1vYmlsZV9hcnJvd19vdXQ6W1sxLDEsMjRdXSxtb2JpbGVfY2hlY2s6W1sxLDIsMjRdXSxtb2JpbGVfbGFuZHNjYXBlOltbMCwzLDI0XSxbMSwzLDI0XV0sbW90aW9uOltbMSwyLDI0XV0sbW92ZTpbWzEsNCwxOF0sWzEsNCwyNF1dLG11c2ljX3ZpZGVvOltbMCw0LDI0XSxbMSw0LDI0XV0sbXVzaWNfdmlkZW9fc2xhc2g6W1sxLDEsMjRdXSxuMTU6W1sxLDEsMjRdXSxuMXBvaW50Mng6W1sxLDEsMjRdXSxuMXBvaW50NXg6W1sxLDEsMjRdXSxuMXBvaW50OHg6W1sxLDEsMjRdXSxuMXg6W1sxLDEsMjRdXSxuMmQ6W1sxLDEsMjRdXSxuMnBvaW50NXg6W1sxLDEsMjRdXSxuMng6W1sxLDEsMjRdXSxuM2Q6W1sxLDEsMjRdXSxuM3g6W1sxLDEsMjRdXSxuNGQ6W1sxLDEsMjRdXSxuNGs6W1swLDEsMjRdLFsxLDEsMjRdXSxuNjA6W1sxLDEsMjRdXSxuOGs6W1swLDEsMjRdLFsxLDEsMjRdXSxuZXdfcmVsZWFzZTpbWzEsMSwyNF1dLG5ld3M6W1swLDMsMjRdLFsxLDMsMjRdXSxuZXdzX2FsZXJ0OltbMCwKMSwyNF1dLG5vZGVfbGVmdDpbWzEsMiwyNF1dLG5vZGVfcmlnaHQ6W1sxLDIsMjRdXSxub3RlOltbMCwxLDE4XSxbMCwxLDI0XSxbMSwxLDE4XSxbMSwxLDI0XV0sbm90ZV9zcGFyazpbWzAsMiwxOF0sWzAsMiwyNF0sWzEsMiwxOF0sWzEsMiwyNF1dLG9wZW5faW5fcGFuZWw6W1sxLDIsMjRdXSxvcmlnaW5hbHM6W1swLDEsMjRdLFsxLDEsMjRdXSxvdmVyZmxvd19ob3Jpem9udGFsOltbMSw2LDI0XSxbMSw2LDM2XV0sb3ZlcmZsb3dfdmVydGljYWw6W1sxLDEzLDE4XSxbMSwxMywyNF0sWzEsMTMsMzZdXSxwYWdlX3NlYXJjaDpbWzEsMSwyNF1dLHBhaW50X2J1Y2tldDpbWzEsMywyNF1dLHBhaW50X3BhbGV0dGU6W1sxLDEsMjRdXSxwYW5lbHM6W1swLDIsMjRdLFsxLDIsMjRdXSxwYXVzZTpbWzAsOSwyNF0sWzAsOSwzNl0sWzAsOSw0OF0sWzEsOSwyNF1dLHBhdXNlX2NpcmNsZTpbWzAsMiwyNF0sWzEsMiwyNF1dLHBhdXNlX2hpc3Rvcnk6W1sxLDEsMjRdXSxwYXdwcmludDpbWzAsCjIsMjRdLFsxLDIsMjRdXSxwZGY6W1sxLDIsMjRdXSxwZW5jaWw6W1swLDEwLDI0XSxbMSwxMCwxOF0sWzEsMTAsMjRdXSxwZW5jaWxfc3Bhcms6W1sxLDEsMjRdXSxwZXJjZW50OltbMSwxLDI0XV0scGVyc29uOltbMCw3LDI0XSxbMSw3LDEyXSxbMSw3LDI0XV0scGVyc29uMjpbWzEsMSwyNF1dLHBlcnNvbjJfcmVjdGFuZ2xlOltbMCwxLDI0XSxbMSwxLDI0XV0scGVyc29uMzpbWzAsMiwyNF0sWzEsMiwxOF0sWzEsMiwyNF1dLHBlcnNvbl9hZGQ6W1swLDcsMjRdLFsxLDcsMThdLFsxLDcsMjRdXSxwZXJzb25fYXVkaW86W1swLDMsMjRdLFsxLDMsMThdLFsxLDMsMjRdLFsxLDMsNDhdXSxwZXJzb25fYmFja2dyb3VuZF9zcGFyazpbWzEsMSwyNF1dLHBlcnNvbl9jaGVjazpbWzEsMSwyNF1dLHBlcnNvbl9jaGlsZDpbWzAsMiwxMl0sWzAsMiwyNF0sWzEsMiwyNF1dLHBlcnNvbl9jaXJjbGU6W1swLDEwLDI0XSxbMSwxMCwyNF0sWzEsMTAsNDhdXSxwZXJzb25fY2lyY2xlX3NsYXNoOltbMSwKMiwyNF1dLHBlcnNvbl9nZWFyOltbMCwyLDI0XSxbMSwyLDI0XV0scGVyc29uX3NoaWVsZDpbWzEsNywyNF1dLHBlcnNvbl9zcXVhcmU6W1swLDIsMjRdLFsxLDIsMThdLFsxLDIsMjRdXSxwZXJzb25fc3F1YXJlX3NwYXJrOltbMCwxLDI0XSxbMSwxLDI0XV0scGVyc29uX3NxdWFyZV9zdGFjazpbWzAsMiwyNF0sWzEsMiwxOF0sWzEsMiwyNF1dLHBlcnNvbl92aWV3ZmluZGVyOltbMCwxLDI0XSxbMSwxLDI0XV0scGVyc29uX3dhdmVmb3JtOltbMSwyLDI0XV0scGVyc29uX3dhdmVzOltbMCwxLDI0XSxbMSwxLDI0XV0scGVyc29uX3g6W1sxLDEsMjRdXSxwaG9uZTpbWzAsMywyNF0sWzEsMywxMl0sWzEsMywyNF1dLHBpYW5vOltbMSwxLDI0XV0scGljdHVyZV9pbl9waWN0dXJlOltbMCwyLDI0XSxbMSwyLDI0XV0scGljdHVyZV9pbl9waWN0dXJlX3N0YWNrOltbMSwxLDI0XV0scGluOltbMCw3LDI0XSxbMSw3LDE4XSxbMSw3LDI0XV0scGluX3NsYXNoOltbMCwyLDI0XSxbMSwyLDE4XSwKWzEsMiwyNF1dLHBsYXk6W1swLDQsMThdLFswLDQsMjRdLFswLDQsMzZdLFswLDQsNDhdLFsxLDQsMjRdXSxwbGF5X2NpcmNsZTpbWzAsMiwyNF0sWzAsMiw0OF0sWzEsMiwyNF1dLHBsYXlfY2lyY2xlX2hhbGZfZGFzaGVkOltbMSwxLDI0XV0scGxheV9wYXVzZTpbWzAsMSwyNF0sWzEsMSwyNF1dLHBsYXlfc2xhc2g6W1swLDEsMjRdLFsxLDEsMjRdXSxwbGF5X3NxdWFyZV9oYWxmX2Rhc2hlZDpbWzEsMSwyNF1dLHBsYXlfc3F1YXJlX3N0YWNrOltbMCwxLDI0XSxbMSwxLDI0XV0scGxheWFibGVzOltbMCwyLDI0XSxbMSwyLDE4XSxbMSwyLDI0XV0scGxheWVyX2RlZmF1bHQ6W1swLDEsMjRdLFsxLDEsMjRdXSxwbGF5ZXJfZnVsbF9lbnRlcjpbWzEsMSwyNF1dLHBsYXllcl9mdWxsX2VudGVyX2FsdDpbWzEsMSwyNF1dLHBsYXllcl9mdWxsX2VudGVyX3BvcnRyYWl0OltbMSwyLDI0XV0scGxheWVyX2Z1bGxfZXhpdDpbWzEsMSwyNF1dLHBsYXllcl9mdWxsX2V4aXRfYWx0OltbMSwxLAoyNF1dLHBsYXllcl9taW5pX2VudGVyOltbMCwxLDI0XSxbMSwxLDI0XV0scGxheWVyX21pbmlfZXhpdDpbWzEsMSwyNF1dLHBsYXllcl9tdWx0aXZpZXc6W1swLDEsMjRdLFsxLDEsMjRdXSxwbGF5ZXJfc3dpdGNoOltbMCwxLDI0XSxbMSwxLDI0XV0scGxheWVyX3RoZWF0ZXI6W1swLDEsMjRdLFsxLDEsMjRdXSxwbGF5bGlzdDpbWzEsNSwxMl0sWzEsNSwxOF0sWzEsNSwyNF0sWzEsNSw0OF1dLHBsYXlsaXN0X2FkZDpbWzEsMywxOF0sWzEsMywyNF1dLHBsYXlsaXN0X2F1ZGlvOltbMCwzLDI0XSxbMSwzLDE4XSxbMSwzLDI0XSxbMSwzLDQ4XV0scGxheWxpc3RfYXVkaW9fc2xhc2g6W1sxLDEsMjRdXSxwbGF5bGlzdF9jaGVjazpbWzEsMSwyNF1dLHBsYXlsaXN0X3BlbmNpbDpbWzEsMiwyNF0sWzEsMiw0OF1dLHBsYXlsaXN0X3g6W1sxLDMsMThdLFsxLDMsMjRdXSxwb2RjYXN0OltbMCw2LDEyXSxbMCw2LDI0XSxbMSw2LDEyXSxbMSw2LDE4XSxbMSw2LDI0XSxbMSw2LDQ4XV0scG9kY2FzdF9hZGQ6W1swLAoyLDI0XSxbMSwyLDI0XV0scG9kY2FzdF9jaGVjazpbWzAsMiwyNF1dLHBvaW50Mng6W1sxLDEsMjRdXSxwb2ludDN4OltbMSwxLDI0XV0scG9pbnQ1eDpbWzEsMSwyNF1dLHBvaW50OHg6W1sxLDEsMjRdXSxwb2xsOltbMSwxMCwxOF0sWzEsMTAsMjRdLFsxLDEwLDM2XV0scG9zdDpbWzAsMiwxMl0sWzAsMiwxOF0sWzAsMiwyNF0sWzEsMiwxMl0sWzEsMiwxOF0sWzEsMiwyNF1dLHByZW1pdW06W1swLDEsMjRdLFsxLDEsMjRdXSxwcmVzZW50YXRpb246W1sxLDMsMjRdXSxwcmljZV90YWc6W1swLDgsMjRdLFswLDgsNDhdLFsxLDgsMjRdXSxwcmljZV90YWdfaGVhcnQ6W1sxLDIsMjRdXSxwcmljZV90YWdfcmVjdGFuZ2xlOltbMSwxLDI0XV0scXJfY29kZTpbWzEsMywyNF1dLHFyX2NvZGVfdmlld2ZpbmRlcjpbWzEsMSwyNF1dLHF1ZXN0aW9uX2hlYWQ6W1sxLDIsMjRdXSxxdWV1ZTpbWzEsMSwyNF1dLHF1ZXVlX2xhc3Q6W1sxLDEsMjRdXSxxdWV1ZV9uZXh0OltbMSwxLDI0XV0scXVpejpbWzAsCjEsMjRdLFsxLDEsMjRdXSxxdW90ZTpbWzAsMSwyNF0sWzEsMSwyNF1dLHF1b3RlX3NsYXNoOltbMCwxLDI0XSxbMSwxLDI0XV0scmVjb3JkOltbMCwyLDI0XV0scmVkbzpbWzEsMiwxOF0sWzEsMiwyNF1dLHJlbWl4OltbMSwyLDI0XV0scmVtaXhfc3BhcmtsZXM6W1sxLDEsMjRdXSxyZW1vdGVfd2F2ZXM6W1sxLDEsMjRdXSxyZXBlYXQ6W1swLDIsMjRdLFsxLDIsMjRdXSxyZXBlYXQxOltbMCwxLDI0XSxbMSwxLDI0XV0scmVwbGF5OltbMSwyLDI0XSxbMSwyLDM2XV0scm90YXRlX2Nsb2Nrd2lzZTpbWzEsMSwyNF1dLHJvdGF0ZV9jb3VudGVyY2xvY2t3aXNlOltbMSwxLDI0XV0scm90YXRlX2xhbmRzY2FwZTpbWzEsMiwxOF0sWzEsMiwyNF1dLHJvdGF0ZV9wb3J0cmFpdDpbWzEsMSwyNF1dLHJzczpbWzEsMiwyNF1dLHJzc19zbGFzaDpbWzEsMSwyNF1dLHJ1Ynk6W1sxLDIsMjRdXSxzYW1wbGVzOltbMCwyLDI0XSxbMSwyLDI0XV0sc2F0dXJhdGlvbjpbWzEsMiwyNF1dLHNjYWxlOltbMSwKNCwyNF1dLHNjaXNzb3JzOltbMCw4LDI0XSxbMSw4LDE4XSxbMSw4LDI0XV0sc2Npc3NvcnNfY3V0OltbMSw0LDI0XV0sc2NyaWJibGU6W1sxLDEsMjRdXSxzZDpbWzAsMywyNF0sWzEsMywyNF1dLHNlYXJjaDpbWzAsMTUsMjRdLFsxLDE1LDE4XSxbMSwxNSwyNF0sWzEsMTUsNDhdXSxzZWFyY2hfc2hpZWxkOltbMCwxLDI0XSxbMSwxLDI0XV0sc2VhcmNoX3NwYXJrOltbMSwzLDE4XSxbMSwzLDI0XV0sc2Vla19mb3J3YXJkOltbMCwxLDI0XV0sc2Vla19yZXdpbmQ6W1swLDEsMjRdXSxzZW5kOltbMCw3LDE4LCEwXSxbMCw3LDI0LCEwXSxbMSw3LDE4LCEwXSxbMSw3LDI0LCEwXV0sc2hhZG93OltbMSwxLDI0XV0sc2hhZG93X2hhcmQ6W1swLDMsMjRdLFsxLDMsMjRdXSxzaGFkb3dfc29mdDpbWzAsMywyNF0sWzEsMywyNF1dLHNoYXBlczpbWzAsMywyNF0sWzEsMywyNF1dLHNoYXJlOltbMCwxMiwyNCwhMF0sWzEsMTIsMTgsITBdLFsxLDEyLDI0LCEwXV0sc2hhcmVfYW5kcm9pZDpbWzAsCjIsMjRdLFsxLDIsMjRdXSxzaGFyZV9pb3M6W1sxLDIsMjRdXSxzaGFycGVuOltbMSwxLDI0XV0sc2hpZWxkOltbMCw2LDI0XSxbMSw2LDI0XV0sc2hpZWxkX2FkZDpbWzEsMiwyNF1dLHNoaWVsZF9oZWFsdGg6W1sxLDEsMjRdXSxzaGllbGRfb3ZlcmZsb3c6W1sxLDIsMjRdXSxzaGllbGRfc2xhc2g6W1sxLDEsMjRdXSxzaGllbGRfeDpbWzAsMywyNF0sWzEsMywxOF0sWzEsMywyNF1dLHNob3J0czpbWzAsMywxOF0sWzAsMywyNF0sWzEsMywyNF1dLHNob3J0c19hZGQ6W1sxLDEsMThdLFsxLDEsMjRdXSxzaG9ydHNfZW1wdHk6W1swLDMsMThdLFswLDMsMjRdLFsxLDMsMjRdXSxzaHVmZmxlOltbMCw0LDI0XSxbMSw0LDE4XSxbMSw0LDI0XV0sc2tpcDEwX2JhY2s6W1sxLDIsMjRdLFsxLDIsMzZdXSxza2lwMTBfZm9yd2FyZDpbWzEsMSwyNF1dLHNraXAxNV9iYWNrOltbMSwxLDI0XV0sc2tpcDE1X2ZvcndhcmQ6W1sxLDEsMjRdXSxza2lwMjBfYmFjazpbWzEsMSwyNF1dLHNraXAyMF9mb3J3YXJkOltbMSwKMSwyNF1dLHNraXAzMF9iYWNrOltbMSwxLDI0XV0sc2tpcDMwX2ZvcndhcmQ6W1sxLDIsMjRdLFsxLDIsMzZdXSxza2lwNV9iYWNrOltbMSwxLDI0XV0sc2tpcDVfZm9yd2FyZDpbWzEsMSwyNF1dLHNraXA2MF9iYWNrOltbMSwxLDI0XV0sc2tpcDYwX2ZvcndhcmQ6W1sxLDEsMjRdXSxza2lwX2Rvd246W1swLDYsMjRdLFsxLDYsMjRdXSxza2lwX25leHQ6W1swLDcsMTJdLFswLDcsMjRdLFswLDcsMzZdLFsxLDcsMjRdXSxza2lwX3ByZXZpb3VzOltbMCw2LDI0XSxbMCw2LDM2XSxbMSw2LDI0XV0sc2tpcF91cDpbWzAsNiwyNF0sWzEsNiwyNF1dLHNsYXNoX2ZvcndhcmQ6W1sxLDEsMjRdXSxzbGVlcF90aW1lcjpbWzAsMiwyNF0sWzEsMiwyNF1dLHNsaXA6W1sxLDEsMThdLFsxLDEsMjRdXSxzbm93Zmxha2U6W1sxLDEsMjRdXSxzb2NjZXJfYmFsbDpbWzEsMywyNF1dLHNvbmFyOltbMSwxLDI0XV0sc29ydDpbWzEsMywxMl0sWzEsMywxOF0sWzEsMywyNF1dLHNwYWNlYmFyOltbMSwyLAoyNF1dLHNwYXJrOltbMCwxMSwxMl0sWzAsMTEsMjRdLFsxLDExLDI0XV0sc3BhcmtfYnViYmxlX2NoYXQ6W1sxLDEsMjRdXSxzcGFya19saWdodGJ1bGI6W1swLDMsMjRdLFsxLDMsMjRdXSxzcGFya19zZWFyY2g6W1sxLDEsMjRdXSxzcGFya193YXZlczpbWzAsMiwyNF0sWzEsMiwyNF1dLHNwYXJrbGVzOltbMCwyLDI0XSxbMSwyLDI0XV0sc3BlYWtlcjpbWzEsMiwyNF1dLHNwZWFrZXJfaGVhZHNldDpbWzEsMiwyNF1dLHNwZWFrZXJfc2xhc2g6W1sxLDEsMjRdXSxzcGVha2VyX3N0YWNrOltbMSwxLDI0XV0sc3BlYWtlcl9zdGFja19zbGFzaDpbWzEsMSwyNF1dLHNwZWVkb21ldGVyOltbMCwyLDI0XSxbMSwyLDI0XV0sc3BsaWNlOltbMSwxLDI0XV0sc3BsaXQ6W1sxLDQsMjRdXSxzcG90bGlnaHQ6W1swLDMsMjRdLFsxLDMsMjRdXSxzcHJlYWRzaGVldDpbWzEsMSwyNF1dLHNxdWFyZTpbWzAsMiwyNF0sWzEsMiwyNF1dLHNxdWFyZTNfc3RhY2s6W1swLDIsMjRdLFsxLDIsMjRdXSwKc3F1YXJlM2Rfc3RhY2s6W1swLDIsMjRdLFsxLDIsMjRdXSxzcXVhcmVfZ3JpZDJ4MjpbWzEsMSwyNF1dLHNxdWFyZV9ncmlkM3gzOltbMCwyLDI0XSxbMSwyLDI0XV0sc3F1YXJlX3BhaW50YnJ1c2g6W1sxLDEsMjRdXSxzcXVhcmVfcGVuY2lsOltbMCwzLDI0XSxbMSwzLDE4XSxbMSwzLDI0XV0sc3RhYmxlX3ZvbHVtZTpbWzAsMiwyNF0sWzEsMiwyNF1dLHN0YXI6W1swLDYsMTJdLFswLDYsMjRdLFsxLDYsMTJdLFsxLDYsMjRdXSxzdGFyX2NpcmNsZTpbWzAsNiwxMl0sWzAsNiwxOF0sWzAsNiwyNF0sWzAsNiwzNl0sWzEsNiwyNF1dLHN0YXJfZnVsbF9oYWxmOltbMCwxLDEyXSxbMCwxLDI0XV0sc3Rhcl9oYWxmX2ZpbGxlZDpbWzEsMiwxMl0sWzEsMiwyNF1dLHN0YXJfdGlja2V0OltbMCwyLDI0XSxbMSwyLDI0XV0sc3Rhcl90cm9waHk6W1sxLDEsMjRdXSxzdGFyX3R2OltbMSwxLDI0XV0sc3RpY2tlcjpbWzEsMywxOF0sWzEsMywyNF1dLHN0b3A6W1swLDYsMjRdLFswLDYsMzZdLApbMSw2LDI0XV0sc3RvcF9jaXJjbGU6W1swLDIsMjRdLFsxLDIsMjRdXSxzdG9wd2F0Y2g6W1swLDUsMjRdLFsxLDUsMjRdXSxzdG9wd2F0Y2gxMDpbWzAsMSwyNF1dLHN0b3B3YXRjaDM6W1swLDEsMjRdXSxzdG9yYWdlOltbMCwyLDI0XSxbMSwyLDI0XV0sc3Vic2NyaXB0aW9uczpbWzAsMTIsMjRdLFsxLDEyLDI0XSxbMSwxMiw0OF1dLHN1YnRpdGxlczpbWzAsNSwyNF0sWzAsNSw0OF0sWzEsNSwyNF1dLHN1YnRpdGxlc19idWJibGU6W1sxLDEsMjRdXSxzdW06W1sxLDEsMjRdXSxzdXBlcl9jaGF0OltbMCw4LDI0XSxbMSw4LDI0XV0sc3VwZXJfc3RhcjpbWzEsMSwyNF1dLHN1cGVyX3N0aWNrZXI6W1swLDgsMjRdLFsxLDgsMjRdXSxzdXBlcl9zdG9yZTpbWzAsMywyNF0sWzEsMywyNF1dLHN1cHBvcnRfYWdlbnQ6W1sxLDEsMjRdXSxzdXJyb3VuZF9zb3VuZDpbWzAsMiwyNF0sWzEsMiwyNF1dLHRhYmxldF9sYW5kc2NhcGU6W1sxLDEsMjRdXSx0YXJnZXQ6W1sxLDIsMjRdXSx0YXJnZXRfYWRkOltbMSwKMiwyNF1dLHRlbXBsYXRlX2FkZDpbWzEsMywyNF1dLHRlbXBsYXRlX3BsYXk6W1swLDMsMjRdLFsxLDMsMjRdXSx0ZW1wbGF0ZV9wbGF5X3NwYXJrOltbMSwxLDI0XV0sdGV4dF9hbGlnbl9jZW50ZXI6W1swLDIsMjRdLFsxLDIsMjRdXSx0ZXh0X2FsaWduX2xlZnQ6W1swLDIsMjRdLFsxLDIsMjRdXSx0ZXh0X2FsaWduX3JpZ2h0OltbMCwyLDI0XSxbMSwyLDI0XV0sdGV4dF9idWJibGU6W1swLDQsMjRdLFsxLDQsMTJdLFsxLDQsMThdLFsxLDQsMjRdXSx0ZXh0X3BhZ2U6W1swLDIsMjRdLFsxLDIsMjRdXSx0ZXh0X3BhZ2VfYWxlcnQ6W1sxLDEsMjRdXSx0ZXh0X3BhZ2VfY2hlY2s6W1sxLDEsMjRdXSx0ZXh0X3BhZ2VfaW5mbzpbWzEsMSwyNF1dLHRleHRfc3Bhcms6W1sxLDEsMjRdXSx0ZXh0dXJlOltbMSwxLDI0XV0sdGhlYXRlcjpbWzEsMSwyNF1dLHRoZW1lOltbMCwyLDI0XSxbMSwyLDI0XV0sdGhlcm1vbWV0ZXI6W1sxLDIsMjRdXSx0aHVtYl9kb3duOltbMCwyNSwxOF0sWzAsCjI1LDI0XSxbMCwyNSwzNl0sWzAsMjUsNDhdLFsxLDI1LDE4XSxbMSwyNSwyNF0sWzEsMjUsMzZdLFsxLDI1LDQ4XV0sdGh1bWJfdXA6W1swLDI0LDEyXSxbMCwyNCwxOF0sWzAsMjQsMjRdLFswLDI0LDM2XSxbMCwyNCw0OF0sWzEsMjQsMTJdLFsxLDI0LDE4XSxbMSwyNCwyNF0sWzEsMjQsMzZdLFsxLDI0LDQ4XV0sdGh1bWJfdXBfZG93bjpbWzAsNCwyNF0sWzEsNCwyNF1dLHRpbHQ6W1sxLDQsMjRdXSx0aW1lbGluZTpbWzEsMywyNF1dLHRpbWVsaW5lX3NwYXJrOltbMSwxLDI0XV0sdGltZXN0YW1wX2FkZDpbWzEsMSwyNF1dLHRvb2xib3g6W1swLDQsMjRdLFsxLDQsMjRdXSx0cmFuc2NyaXB0OltbMSwyLDI0XV0sdHJhbnNpdGlvbjpbWzAsNSwyNF0sWzEsNSwyNF1dLHRyYW5zbGF0ZTpbWzEsNCwxOF0sWzEsNCwyNF1dLHRyYXNoX2NhbjpbWzAsMTAsMjRdLFsxLDEwLDE4XSxbMSwxMCwyNF1dLHRyZW5kaW5nOltbMCwyLDI0XSxbMSwyLDI0XV0sdHJpYW5nbGVfZG93bjpbWzAsOCwKMThdLFswLDgsMjRdLFsxLDgsMjRdXSx0cmlhbmdsZV91cDpbWzAsMywxOF0sWzAsMywyNF0sWzEsMywyNF1dLHRyb3BoeTpbWzAsMywyNF0sWzEsMywyNF1dLHRydWNrOltbMCw1LDI0XSxbMSw1LDI0XV0sdHY6W1swLDgsMjRdLFsxLDgsMjRdLFsxLDgsNDhdXSx0dl9hcnJvd19sZWZ0OltbMSwyLDI0XV0sdHZfY2lyY2xlOltbMCwzLDI0XSxbMSwzLDI0XV0sdHZfbW9iaWxlOltbMSwyLDI0XSxbMSwyLDM2XV0sdHZfc2xhc2g6W1sxLDEsMjRdXSx1bmFyY2hpdmU6W1sxLDEsMjRdXSx1bmRvOltbMSwyLDE4XSxbMSwyLDI0XV0sdXBsb2FkOltbMSw1LDI0XV0sdmFyaWFibGU6W1sxLDQsMjRdXSx2aWRlbzpbWzAsMywyNF0sWzEsMywxOF0sWzEsMywyNF1dLHZpZGVvX2NhbWVyYTpbWzAsOSwyNF0sWzAsOSw0OF0sWzEsOSwyNF0sWzEsOSw0OF1dLHZpZGVvX2NhbWVyYV9hZGQ6W1sxLDIsMjRdXSx2aWRlb19jYW1lcmFfc2xhc2g6W1sxLDEsMjRdXSx2aWRlb19saW5rOltbMSw1LDE4XSwKWzEsNSwyNF1dLHZpZGVvX3BvcnRyYWl0X3NwYXJrOltbMSwxLDI0XV0sdmlkZW9fcmV2ZXJzZTpbWzEsMSwyNF1dLHZpZGVvX3NsYXNoOltbMSwxLDEyXSxbMSwxLDE4XSxbMSwxLDI0XSxbMSwxLDM2XSxbMSwxLDQ4XV0sdmlkZW9fc3Bhcms6W1sxLDIsMjRdXSx2aWRlb19zdGFja19zcGFyazpbWzEsMSwxOF0sWzEsMSwyNF1dLHZpZGVvX3N0aXRjaDpbWzEsMiwyNF1dLHZpZGVvX3dhdmVmb3JtOltbMSwxLDI0XV0sdmlld19jb2x1bW4yOltbMSwxLDI0XV0sdmlld19jb2x1bW4zOltbMCwyLDI0XSxbMSwyLDI0XV0sdmlld19jb2x1bW4zX3JvdzI6W1swLDIsMjRdLFsxLDIsMjRdXSx2aWV3X2NvbXBhY3Q6W1swLDIsMjRdLFsxLDIsMjRdXSx2aWV3X2ZlZWQ6W1swLDIsMjRdLFsxLDIsMjRdXSx2aWV3X2xpc3Q6W1sxLDEsMjRdXSx2aWV3X3JvdzI6W1swLDIsMjRdLFsxLDIsMjRdXSx2aWV3X3RpbWVsaW5lOltbMSwxLDI0XV0sdmlld2ZpbmRlcjpbWzEsMSwxMl0sWzEsMSwxOF0sClsxLDEsMjRdXSx2aWduZXR0ZTpbWzEsMSwyNF1dLHZvbHVtZV9mYWRlOltbMSwyLDI0XV0sdm9sdW1lX21heDpbWzAsMiwyNF0sWzEsMiwyNF1dLHZvbHVtZV9taW46W1swLDIsMjRdLFsxLDIsMjRdXSx2b2x1bWVfbXV0ZTpbWzAsMiwyNF0sWzEsMiwyNF1dLHZyOltbMCw3LDI0XSxbMSw3LDI0XV0sd2F0Y2g6W1sxLDEsMjRdXSx3YXRlcjpbWzEsMSwyNF1dLHdhdmVmb3JtOltbMSwzLDI0XSxbMSwzLDQ4XV0sd2F2ZWZvcm1fc3Bhcms6W1sxLDIsMjRdXSx3aWZpX3RldGhlcmluZzpbWzEsMSwyNF1dLHdyZW5jaDpbWzAsMywxOF0sWzAsMywyNF0sWzEsMywxOF0sWzEsMywyNF1dLHg6W1sxLDExLDE4XSxbMSwxMSwyNF0sWzEsMTEsMzZdXSx4X2NpcmNsZTpbWzAsOSwyNF0sWzEsOSwxOF0sWzEsOSwyNF1dLHhfb2N0YWdvbjpbWzEsMywxMl0sWzEsMywyNF1dLHhfcmVjdGFuZ2xlOltbMSwxLDI0XV0seWVuX3NpZ25fcmVjdGFuZ2xlOltbMCwyLDI0XSxbMSwyLDI0XV0seW91dHViZTpbWzAsCjIsMjRdLFsxLDIsMjRdXSx5b3V0dWJlX2tpZHM6W1swLDUsMjRdLFsxLDUsMjRdXSx5b3V0dWJlX2xhYnM6W1swLDEsMjRdXSx5b3V0dWJlX211c2ljOltbMCw3LDI0XSxbMSw3LDI0XV0seW91dHViZV9zaG9ydHM6W1swLDExLDI0XSxbMSwxMSwyNF1dLHlvdXR1YmVfc3R1ZGlvOltbMCw4LDI0XSxbMSw4LDI0XV0seW91dHViZV90djpbWzAsOCwyNF0sWzEsOCwyNF1dLHpvb21fYXV0bzpbWzEsMiwyNF1dLHpvb21faW46W1swLDIsMjRdLFsxLDIsMjRdXSx6b29tX291dDpbWzAsMiwyNF0sWzEsMiwyNF1dfTt2YXIgWHFhPXtWT0xVTUVfVVBfREVMSElfUExBWUVSX0ZJTExFRDoiVk9MVU1FX01BWCIsVk9MVU1FX09GRl9ERUxISV9QTEFZRVI6IlZPTFVNRV9NVVRFIixWT0xVTUVfRE9XTl9ERUxISV9QTEFZRVJfRklMTEVEOiJWT0xVTUVfTUlOIixDTE9TRURfQ0FQVElPTl9ERUxISV9QTEFZRVI6IkNBUFRJT05TIixDTE9TRURfQ0FQVElPTl9ERUxISV9QTEFZRVJfRklMTEVEOiJDQVBUSU9OUyIsU1VCVElUTEVTX0RFTEhJX1BMQVlFUjoiU1VCVElUTEVTIixTVUJUSVRMRVNfREVMSElfUExBWUVSX0ZJTExFRDoiU1VCVElUTEVTIixQTEFZRVJfRlVMTF9FTlRFUl9BTFQ6IlBMQVlFUl9GVUxMX0VOVEVSX0FMVCIsUExBWUVSX0ZVTExfRVhJVF9BTFQ6IlBMQVlFUl9GVUxMX0VYSVRfQUxUIixQQVVTRV9ERUxISV9QTEFZRVJfRklMTEVEOiJQQVVTRSIsUExBWV9BUlJPV19ERUxISV9QTEFZRVJfRklMTEVEOiJQTEFZX0FSUk9XIn0sdlo9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWF9bWYoYSwKYil7dmFyIGM9WHFhW2EuaWNvbk5hbWUudG9VcHBlckNhc2UoKV07YyYmKGEuaWNvbk5hbWU9Yyk7dmFyIGQ9YS5pY29uTmFtZTtkPWQucmVwbGFjZSgvLS9nLCJfIik7YT17Li4uYSxpY29uTmFtZTp1WShkLCEhYyl8fGQudG9Mb3dlckNhc2UoKX07cmV0dXJuIF8ueCgiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyIpfHxjP3JZKFdxYSxhLHRoaXMuaj8ucnd8fEFwYSxiKTpyWShWcWEsYSx0aGlzLmo/LnJ3fHx6cGEsYil9fTt2WltfLkxuXT1bXy5JbihfLm5PKV07dmFyIEJwYT1uZXcgU2V0KFsiY2kiLCJjciIsImNhcm1sIl0pLHZZPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zaWduYWxzPVtdO3RoaXMuaj1uZXcgTWFwO3RoaXMuQj1uZXcgU2V0O3RoaXMubz1uZXcgTWFwO3RoaXMudj1uZXcgTWFwfVZxKGEpe2lmKGEubGVuZ3RoPjEpe3ZhciBiPVtdO2xldCBmPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKHZhciBjIG9mIGEpZltjXXx8KGIucHVzaChjKSxmW2NdPSEwKTthPWJ9aWYoYS5sZW5ndGg9PT0xKXZhciBkPWFbMF07ZWxzZXtjPWE7Yj0iIjtjLnNvcnQoKTtmb3IoZSBvZiBjKWIrPWUrInwiO3ZhciBlPWI7aWYoIXRoaXMuai5nZXQoZSkpe2M9MDtiPVtdO2ZvcihkIG9mIGEpYysrLHhZKHRoaXMsZCl8fGIucHVzaChkKTtjPmIubGVuZ3RoP3RoaXMuc2lnbmFscy5wdXNoKGUpOkNwYSh0aGlzLGUsYSxiKX1kPWV9cmV0dXJuIGR9SGgoYSxiLGMsZCxlKXt4WSh0aGlzLGMpP18uQ2soKS5HYShhLGIsZCk6KGUmJihhPXlZKGEpLEFZKHRoaXMsCmEsYixjLGUpKSxlPXRoaXMuby5nZXQoYyksZXx8KHRoaXMuby5zZXQoYyxbXSksZT10aGlzLm8uZ2V0KGMpKSxlLnB1c2goe3hoOmEscHJpb3JpdHk6YixkZWxheTpkfSkpfWFkZExpc3RlbmVyKGEsYixjKXtjJiYoYj15WShiKSxBWSh0aGlzLGIsMCxhLGMpKTtjPXRoaXMudi5nZXQoYSk7Y3x8KHRoaXMudi5zZXQoYSxbXSksYz10aGlzLnYuZ2V0KGEpKTtjLnB1c2goYil9V20oYSl7aWYoIXhZKHRoaXMsYSkpe3RoaXMuQi5hZGQoYSk7dmFyIGI9dGhpcy5vLmdldChhKTtpZihiKXtmb3IobGV0IGMgb2YgYilfLkNrKCkuR2EoYy54aCxjLnByaW9yaXR5LGMuZGVsYXkpO3RoaXMuby5kZWxldGUoYSl9aWYoYj10aGlzLnYuZ2V0KGEpKXtmb3IobGV0IGMgb2YgYiljKCk7dGhpcy52LmRlbGV0ZShhKX10aGlzLnNpZ25hbHMucHVzaChhKTt0aGlzLkIuZGVsZXRlKGEpfX19O3ZZLnByb3RvdHlwZS5wcm9jZXNzU2lnbmFsPXZZLnByb3RvdHlwZS5XbTsKdlkucHJvdG90eXBlLnBhcmtPclNjaGVkdWxlSm9iPXZZLnByb3RvdHlwZS5IaDt2WS5wcm90b3R5cGUub25Bbnk9dlkucHJvdG90eXBlLlZxO18ucmEoInl0c2lnbmFscy5nZXRJbnN0YW5jZSIsd1kpO3ZZLnByb3RvdHlwZS5vbkFueT12WS5wcm90b3R5cGUuVnE7dlkucHJvdG90eXBlLnBhcmtPclNjaGVkdWxlSm9iPXZZLnByb3RvdHlwZS5IaDt2WS5wcm90b3R5cGUucHJvY2Vzc1NpZ25hbD12WS5wcm90b3R5cGUuV207dmFyIHpZPW5ldyBTZXQoWyJlb3AiLCJlb2NzIiwiZGwiLCJwY2wiXSk7dmFyIHZxYT1jbGFzcyBleHRlbmRzIF8uV3N7Y29uc3RydWN0b3IoYSl7dmFyIGI9e307c3VwZXIoInVuaW5pdGlhbGl6ZWQiKTt0aGlzLmVudj1hO3RoaXMudHJhbnNpdGlvbnM9W3tmcm9tOiJ1bmluaXRpYWxpemVkIix0bzoiaW5pdGlhbGl6ZWQiLGFjdGlvbjp0aGlzLmluaXR9LHtmcm9tOiJpbml0aWFsaXplZCIsdG86InJlbmRlcmluZyIsYWN0aW9uOnRoaXMuS30se2Zyb206InJlbmRlcmluZyIsdG86InJlbmRlcmVkIixhY3Rpb246dGhpcy5EfSx7ZnJvbToicmVuZGVyZWQiLHRvOiJhZnRlci1yZW5kZXItZGVmZXJyZWQiLGFjdGlvbjp0aGlzLm99XTtiLkZnIT09dm9pZCAwJiYodGhpcy5CLkZnPWIuRmcpfWFzeW5jIGluaXQoYSl7dGhpcy5CLkZnP2F3YWl0IGEodGhpcy5lbnYpOmEodGhpcy5lbnYpO3RoaXMuaiYmYXdhaXQgdGhpcy5qLm8ucHJvbWlzZTt3WSgpLkhoKCgpPT57dGhpcy50cmFuc2l0aW9uKCJyZW5kZXJpbmciKX0sMTAsImNpIil9YXN5bmMgSyhhKXt0aGlzLkIuRmc/CmF3YWl0IGEodGhpcy5lbnYpOmEodGhpcy5lbnYpO3RoaXMuaiYmYXdhaXQgdGhpcy5qLm8ucHJvbWlzZTt3WSgpLkhoKCgpPT57dGhpcy50cmFuc2l0aW9uKCJyZW5kZXJlZCIpfSwxMCwiY3IiKX1hc3luYyBEKGEpe3RoaXMuQi5GZz9hd2FpdCBhKHRoaXMuZW52KTphKHRoaXMuZW52KTt0aGlzLmomJmF3YWl0IHRoaXMuai5vLnByb21pc2U7d1koKS5IaCgoKT0+e3RoaXMudHJhbnNpdGlvbigiYWZ0ZXItcmVuZGVyLWRlZmVycmVkIil9LDEwLCJjYXJtbCIpfWFzeW5jIG8oYSl7YSh0aGlzLmVudil9fTt2YXIgd1o9ITEsd3FhPXtpbml0aWFsaXplZDp7cHJpb3JpdHk6MTAsY2FsbGJhY2s6ZnVuY3Rpb24oKXt3Wnx8KF8uZHcoe0dmOmE9PnthLmVsJiZfLnV5KGEuZWwsYS5wcm9wcyl9LEhmOmE9PntfLnN5KGEuZWwpfX0pLHdaPSEwKX19fTt2YXIgQ1k9Xy5MKCh7ZGF0YTphfSk9PntmdW5jdGlvbiBiKGYpe18ublAoKTtmLnN0b3BQcm9wYWdhdGlvbigpfXZhciBjPV8udkUoImRpdiIpLGQ9Xy54KCJ3ZWJfcmVtb3ZlX3NuYWNrYmFyX2FjdGlvbnMiKTtfLlVKKCgpPT57fSk7dmFyIGU9e2J1dHRvbk92ZXJyaWRlczp7c3R5bGU6ImNhbGwtdG8tYWN0aW9uLWludmVyc2UifX07cmV0dXJuIF8uSygieXRtLW5vdGlmaWNhdGlvbi1hY3Rpb24tcmVuZGVyZXIiLG51bGwsXy5LKCJkaXYiLHsiYXJpYS1saXZlIjpfLmZyPyJvZmYiOiJwb2xpdGUiLGNsYXNzOiJub3RpZmljYXRpb24tYWN0aW9uLXJlc3BvbnNlLXRleHQifSxfLksoXy5JSix7ZGF0YTooKT0+YSgpLnJlc3BvbnNlVGV4dH0pKSxfLksoXy5PLHtBOigpPT5hKCkuYWN0aW9uQnV0dG9uJiYhZCx0aGVuOigpPT5fLksoImRpdiIse2VsOmMsY2xhc3M6Im5vdGlmaWNhdGlvbi1hY3Rpb24tYnV0dG9uIiwib246Y2xpY2siOmJ9LF8uSyhfLlcse2RhdGE6KCk9PmEoKS5hY3Rpb25CdXR0b259LAp7YnV0dG9uUmVuZGVyZXI6KHtkYXRhOmZ9KT0+Xy5LKF8ucE8se2RhdGE6ZiwuLi5lfSksdG9nZ2xlQnV0dG9uUmVuZGVyZXI6KHtkYXRhOmZ9KT0+Xy5LKF8ucU8se2RhdGE6ZiwuLi5lfSl9KSl9KSl9LCJiZiIpO0NZLmlkb21Db21wYXQ9ITA7dmFyIEVZO3ZhciBHWT1uZXcgXy5lRTt2YXIgR3BhPXthZGRUb1BsYXlsaXN0UmVuZGVyZXI6ITB9O3ZhciBMWTt2YXIgUXBhPV8uJE4uQ3Q7dmFyIFRZPV8uTCgoe2RhdGE6YX0pPT57dmFyIGI9Xy51RSgieXRtLXNoYXJlLXRhcmdldC1yZW5kZXJlciIpO18uVUooKCk9PntiLnZhbHVlLmxheWVyPTd9KTt2YXIgYz0oKT0+Xy5CKGEoKS5uYXZpZ2F0aW9uRW5kcG9pbnQsXy5WRCk/LnVybCxkPSgpPT57YSgpO3JldHVybiExfTtyZXR1cm4gXy5LKCJ5dG0tc2hhcmUtdGFyZ2V0LXJlbmRlcmVyIix7ZWw6Yiwib246Y2xpY2siOmZ1bmN0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCk7aWYoZCgpKXt2YXIgZj1jKCksaD1hKCkubmF2aWdhdGlvbkVuZHBvaW50Py5jbGlja1RyYWNraW5nUGFyYW1zO18uekooaCw3KTtuZXcgTW96QWN0aXZpdHkoe25hbWU6Im5ldyIsZGF0YTp7dHlwZToid2Vic21zL3NtcyIsYm9keTpmfX0pO05ZKCk7ZS5wcmV2ZW50RGVmYXVsdCgpO2Uuc3RvcFByb3BhZ2F0aW9uKCl9ZWxzZSBOWSgpfX0sXy5LKF8uTyx7QTpkLHRoZW46KCk9Pl8uSygiYSIse2hyZWY6YyxjbGFzczoic2hhcmUtdGFyZ2V0LWxpbmsifSwKXy5LKF8uSUose2RhdGE6KCk9PmEoKS50aXRsZX0pKSxXOigpPT5fLksoXy5uSCx7Y2xhc3NOYW1lOiJzaGFyZS10YXJnZXQtbGluayIsY29tbWFuZDooKT0+YSgpLm5hdmlnYXRpb25FbmRwb2ludCx0YXJnZXQ6Il9ibGFuayJ9LF8uSyhfLklKLHtkYXRhOigpPT5hKCkudGl0bGV9KSl9KSl9LCJjZiIpO1RZLmlkb21Db21wYXQ9ITA7dmFyIFlxYT1fLiROLkNBTkNFTCxYcGE9Xy5MKCh7ZGF0YTphfSk9PntmdW5jdGlvbiBiKGYpe3ZhciBoPV8ueSgpLnJlc29sdmUoXy55UCksaz1SWShhKCkpO2YucHJldmVudERlZmF1bHQoKTtrJiZfLnpKKGssNyk7Xy5zUChlKTtoPy5sZCgpO18uek4oKTtmLnN0b3BQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIGMoZil7Xy55KCkucmVzb2x2ZShfLnlQKT8ubGQoKTtfLnpOKCk7Zi5zdG9wUHJvcGFnYXRpb24oKX12YXIgZD0oKT0+T1koYSgpKSxlPSJ1bmlmaWVkLXNoYXJlLXVybC1pbnB1dCIrXy5PSCgpO3JldHVybiBfLksoXy5yRSx7UWc6KCk9Pl8uSyhfLkFQLG51bGwsXy5LKF8uSUose2RhdGE6KCk9Pnt2YXIgZj1hKCkuaGVhZGVyPy5zaGFyZVBhbmVsSGVhZGVyUmVuZGVyZXI/LnRpdGxlPy5zaGFyZVBhbmVsVGl0bGVWMTVSZW5kZXJlcj8udGl0bGU7cmV0dXJuIGY/Zjp7c2ltcGxlVGV4dDoiU2hhcmUifX19KSkscWs6KCk9Pl8uSyhfLklCLG51bGwsXy5LKF8uTyx7QTooKT0+CiEwLHRoZW46KCk9Pl8uSygiaW5wdXQiLHt2YWx1ZTpkLCJzZWxlY3Rpb24tZW5kIjowLGNsYXNzOiJ1bmlmaWVkLXNoYXJlLXVybC1pbnB1dCIsaWQ6ZSwib246Y2xpY2siOmIsImFyaWEtbGFiZWwiOigpPT5gJHtfLiROLnNvfSAke09ZKGEoKSl9YCxyZWFkb25seTohMH0pfSksXy5LKF8uZ0cse3BhOigpPT5TWShhKCkpfHxbXX0sZj0+Xy5LKF8uTyx7QTooKT0+Zi5zaGFyZVRhcmdldFJlbmRlcmVyLHRoZW46aD0+Xy5LKFRZLHtkYXRhOmh9KX0pKSksUHI6KCk9Pl8uSyhfLnpQLG51bGwsXy5LKCJidXR0b24iLHtjbGFzczoiY29tcGFjdCIsIm9uOmNsaWNrIjpjfSxZcWEpKX0pfSwiZGYiKSxRWT1fLkwoKHtzaG9ydFVybDphLHRyYWNraW5nUGFyYW1zOmJ9KT0+e2Z1bmN0aW9uIGMoZSl7dmFyIGY9ZCxoPWI/LigpO2UucHJldmVudERlZmF1bHQoKTtoJiZfLnpKKGgsNyk7Xy5zUChmKTtOWSgpO18uek4oKTtlLnN0b3BQcm9wYWdhdGlvbigpfXZhciBkPSJ1bmlmaWVkLXNoYXJlLXVybC1pbnB1dCIrCl8uT0goKTtyZXR1cm4gXy5LKF8uTyx7QTooKT0+ITAsdGhlbjooKT0+Xy5LKCJpbnB1dCIse2NsYXNzOiJ1bmlmaWVkLXNoYXJlLXVybC1pbnB1dCIsaWQ6ZCx2YWx1ZTphLHJlYWRvbmx5OiEwLCJhcmlhLWxhYmVsIjooKT0+YCR7Xy4kTi5zb30gJHthKCl9YCwib246Y2xpY2siOmMsInNlbGVjdGlvbi1lbmQiOjB9KX0pfSwiZWYiKTtRWS5pZG9tQ29tcGF0PSEwO3ZhciAkcGE9Xy4kTi5EdCxhcWE9Xy4kTi5ldTtfLnJhKCJ5dC5wdWJzdWIucHVibGlzaCIsXy5Peik7dmFyIHdYPXthdWRpb1RyYWNrU2VsZWN0QWN0aW9uQ29tbWFuZDpWVyhUcWEpLGJyb3dzZUVuZHBvaW50OigpPT5GWShJcGEpLGNhcHRpb25MYW5ndWFnZVNlbGVjdEFjdGlvbkNvbW1hbmQ6VlcoclopLGNvbW1hbmRFeGVjdXRvckNvbW1hbmQ6KCk9PkZZKEpwYSksY29weVRleHRFbmRwb2ludDooKT0+RlkoTHBhKSxlbnRpdHlVcGRhdGVDb21tYW5kOlZXKHBaLFtuWl0pLGZlZWRiYWNrRW5kcG9pbnQ6KCk9PkZZKE1ZKSxtb2RpZnlDaGFubmVsTm90aWZpY2F0aW9uUHJlZmVyZW5jZUVuZHBvaW50OigpPT5GWShOcGEpLG5hdGl2ZUFwcERlZXBsaW5rRW5kcG9pbnQ6KCk9PkZZKHBvYSksb3BlblBvcHVwQWN0aW9uOigpPT5GWShEcGEpLHBob25lRGlhbGVyRW5kcG9pbnQ6KCk9PkZZKFBwYSkscGxheWxpc3RFZGl0RW5kcG9pbnQ6KCk9PkZZKFJwYSksc2VuZFNtc0VuZHBvaW50OigpPT5GWShUcGEpLHNoYXJlRW50aXR5RW5kcG9pbnQ6KCk9PkZZKFpwYSksc2hvd0F1ZGlvVHJhY2tQaWNrZXJBY3Rpb25Db21tYW5kOlZXKHNaKSwKc2hvd0NhcHRpb25MYW5ndWFnZVNlbGVjdEFjdGlvbkNvbW1hbmQ6VlcodFopLHNob3dFbmdhZ2VtZW50UGFuZWxFbmRwb2ludDooKT0+RlkoZHFhKSxzaG93U2hlZXRDb21tYW5kOlZXKHFaLFtfLmNMLCRZXSksc2lnbkluRW5kcG9pbnQ6KCk9PkZZKGZxYSksc3Vic2NyaWJlRW5kcG9pbnQ6KCk9PkZZKFdZKSx1bmRvRmVlZGJhY2tFbmRwb2ludDooKT0+RlkoTVkpLHVuc3Vic2NyaWJlRW5kcG9pbnQ6KCk9PkZZKFdZKSx1cmxFbmRwb2ludDooKT0+RlkoaHFhKSx1c2VyRmVlZGJhY2tFbmRwb2ludDooKT0+RlkoaXFhKSx3YXRjaEVuZHBvaW50OigpPT5GWShFcGEpfTt2YXIgeFo9Xy5MKCh7Y2hpbGRyZW46YSxCcTpiLGlzRnVsbHNjcmVlbjpjLHN0eWxlOmQsYXJpYUxhYmVsOmV9KT0+e3ZhciBmPV8udUUoImRpYWxvZyIpO18uVUooKCk9Pnt2YXIgaD0oKT0+e30saz1mLnZhbHVlO2suYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGgsITApO18uWXUoKCk9PntrLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixoLCEwKX0pfSk7cmV0dXJuIF8uSygiZGlhbG9nIix7ZWw6ZixjbGFzczpfLlAoImRpYWxvZyIsIm1vZGVybi1kaWFsb2ctbGF5b3V0IiwibW9kZXJuLWRpYWxvZyIse3Njcm9sbGFibGU6YiwiZGlhbG9nLWZ1bGxzY3JlZW4iOmMsInJvdW5kZWQtY29udGFpbmVyIjooKT0+IWM/LigpfSkscm9sZToiZGlhbG9nIiwiYXJpYS1tb2RhbCI6ITAsc3R5bGU6ZCwiYXJpYS1sYWJlbCI6ZX0sYSl9LCJmZiIpO3haLmlkb21Db21wYXQ9ITA7dmFyIFpxYT1jbGFzc3t9O3ZhciBxcWE9Y2xhc3MgZXh0ZW5kcyBacWF7Y29uc3RydWN0b3IoKXt2YXIgYT17WWw6VXBhLFdrOk5ZfTtzdXBlcigpO3RoaXMubz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0aGlzLm8uaWQ9Imdsb2JhbC1sb2FkZXIiO2RvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKHRoaXMubyxkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpO3RoaXMuWWw9YT8uWWw7dGhpcy5Xaz1hPy5Xa31ycSgpe3JldHVybiEhdGhpcy5qfWFzeW5jIG9wZW5EaWFsb2coYSl7dmFyIGI9e3N0YWNrOltdLGVycm9yOnZvaWQgMCxoYXNFcnJvcjohMX07dHJ5e2xldCBjPV8uWnR8fHt9O3RoaXMuWWw/LigpJiZhd2FpdCB0aGlzLldrPy4oKTt0aGlzLnJxKCkmJnRoaXMubGQoKTtfLlZ6KGIsXy52TShjKSk7bGV0IGQ9YS5VbixlPWEuQnEsZj1hLmlzRnVsbHNjcmVlbixoPWEubkosaz1hLmlzUGVyc2lzdGVudCxsPWEuZm9jdXNPbkNsb3NlLG09YS5ybixuPWEuZksscD1hLnN0eWxlLHI9YS5hcmlhTGFiZWw7CnRoaXMuQj1hO3RoaXMudj10aGlzLmxkLmJpbmQodGhpcyk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0YXRlLWNoYW5nZSIsdGhpcy52KTt0aGlzLmo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dGhpcy5qLmlkPSJkaWFsb2ctY29udGFpbmVyIjt0aGlzLmouY2xhc3NOYW1lPV8uYUwoImRpYWxvZy1jb250YWluZXIiLHtbImRpYWxvZy1mdWxsc2NyZWVuIl06Zn0pOyhfLlpPKCl8fGRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKHRoaXMuaik7Xy5mTih0aGlzLmosXy5LKF8uSUIsbnVsbCxfLksoeFose0JxOmUsaXNGdWxsc2NyZWVuOmYsc3R5bGU6cCxhcmlhTGFiZWw6cn0sXy5LKGQsbnVsbCkpLF8uSyhfLlpOLHtsYWJlbDoiZGlhbG9nIixvbmNsaWNrOigpPT57aHx8a3x8dGhpcy5sZCgpfX0pKSk7Xy5KTih0aGlzLmosbCxtKTtuPy4oKX1jYXRjaChjKXtiLmVycm9yPWMsYi5oYXNFcnJvcj0hMH1maW5hbGx5e18uV3ooYil9fWxkKCl7dGhpcy5qJiYodGhpcy5CLkdoPy4oKSwKdGhpcy5CPXZvaWQgMCx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RhdGUtY2hhbmdlIix0aGlzLnYpLHRoaXMudj12b2lkIDAsXy5LTih0aGlzLmopLF8ucEModGhpcy5qKSx0aGlzLmoucmVtb3ZlKCksdGhpcy5qPXZvaWQgMCl9UXUoKXt0aGlzLm8uZmlyc3RDaGlsZCYmdGhpcy5vLnJlbW92ZUNoaWxkKHRoaXMuby5maXJzdENoaWxkKX19O3ZhciBTVz1uZXcgXy5DdCgiSW5uZXJUdWJlVHJhbnNwb3J0IiwiUnYzZTNkIik7bmV3IF8uQ3QoIlBhZ2VSZXF1ZXN0IiwiUnYzZTNkIik7dmFyICRxYT17YXV0b25hdl9vZmZfdG9nZ2xlX3NwYW5uZXI6W1swLDEsMzZdXSxhdXRvbmF2X29uX3RvZ2dsZV9zcGFubmVyOltbMCwxLDM2XV0sYXV0b25hdl9wbGF5X2NpcmNsZTpbWzAsMSwyMF1dLGF1dG9wbGF5OltbMCwyLDI0XV0sY3JlYXRvcl9zdHVkaW9fcmVkX2xvZ286W1swLDIsMjRdXSxlcXVhbGl6ZXI6W1swLDEsMjRdXSxmdWxsc2NyZWVuOltbMSwxLDI0XV0sZnVsbHNjcmVlbl9leGl0OltbMSwxLDI0XV0sZnVsbHNjcmVlbl9mcDpbWzEsMiwyNF1dLGdvb2dsZTpbWzAsMSwyNF1dLGdvb2dsZV9sb2dvOltbMCwyLDI0XV0saW5jb2duaXRvX2NpcmNsZTpbWzAsMSwyNF1dLGtpZHNfcmVkX2xvZ286W1swLDIsMjRdXSxsb2dvOltbMCwyLDY3XV0sbG9nb193aXRoX3RleHQ6W1swLDMsMjBdXSxsb2dvX3dpdGhfdGV4dF9tb25vY2hyb21lOltbMCwxLDIwXV0sbXVzaWNfcmVkX2xvZ286W1swLDIsMjRdXSxwYXVzZV9jaXJjbGU6W1swLDEsMjRdXSxwYXVzZV9vdXRsaW5lZDpbWzAsCjEsMjRdXSxwaXZvdF9saWJyYXJ5OltbMCwxLDI0XV0scGxheV9jaXJjbGVfc2hvcnRzOltbMCwyLDI0XV0scGxheWVyX2F1dG9wbGF5X25leHQ6W1swLDIsMjRdXSxwcmVtaXVtOltbMCwyLDI0XV0scHJlbWl1bV9zdGFuZGFsb25lOltbMCwyLDI0XV0scHJlbWl1bV9zdGFuZGFsb25lX2NhaXJvOltbMCwxLDI0XV0scmluZ29fbG9nbzpbWzAsMiwyNF1dLHNjcmVlbl9saWdodDpbWzEsMSwyNF1dLCJzaG9ydHMtaGVhcnQiOltbMCwxLDI0XSxbMSwxLDI0XV0sInNob3J0cy1oZWFydC1ncmFkaWVudCI6W1swLDEsMjRdLFsxLDEsMjRdXSxzaG9ydHNfY29tbWVudDpbWzAsMSwzMl1dLHNob3J0c19zaGFyZTpbWzAsMSwzMl1dLHNob3J0c190ZXh0X2xvZ286W1swLDIsNzJdXSxzaG9ydHNfdGh1bWJzX2Rvd246W1swLDEsMzJdXSxzaG9ydHNfdGh1bWJzX3VwOltbMCwxLDMyXV0sc3Bhcms6W1swLDEsMjRdLFsxLDEsMjRdXSxzcGFya19zZWFyY2g6W1swLDEsMjRdXSxzdWJkaXJlY3RvcnlfYXJyb3dfcmlnaHQ6W1sxLAoxLDI0XV0sdW5wbHVnZ2VkX3JlZF9sb2dvOltbMCwyLDI0XV0sdmlkZW9feW91dHViZTpbWzAsMSwyNF1dLHdhdGVybWFyazpbWzAsMiwxMTBdXSx5b3V0dWJlOltbMCwyLDI0XV0seW91dHViZV9jcmVhdGVfbG9nbzpbWzAsMSwyNF1dLHlvdXR1YmVfcHJlbWl1bV9sb2dvX3Nob3J0OltbMCwyLDIwXV0seW91dHViZV9wcmVtaXVtX2xvZ29fc2hvcnRfbW9ub2Nocm9tZTpbWzAsMSwyMF1dLHlvdXR1YmVfc2hvcnRzX2JyYW5kXzI0OltbMCwyLDI0XV0seW91dHViZV9zaG9ydHNfZmlsbF9ub190cmlhbmdsZV9yZWRfMTY6W1swLDEsMTZdXX07dmFyIHlaPW5ldyBNYXAoW1sicGxheV9jaXJjbGVfZmlsbGVkIiwiYXV0b25hdl9wbGF5X2NpcmNsZSJdLFsic2VhcmNoIiwic2VhcmNoX2NhaXJvIl0sWyJ0YWJfaG9tZSIsImhvbWVfY2Fpcm8iXSxbInRhYl9zaG9ydHMiLCJ5b3V0dWJlX3Nob3J0c19jYWlybyJdLFsiYWNjb3VudF9jaXJjbGUiLCJwZXJzb25fY2lyY2xlX2NhaXJvIl0sWyJwcmVtaXVtX3N0YW5kYWxvbmUiLCJwcmVtaXVtX3N0YW5kYWxvbmVfY2Fpcm8iXV0pLGFyYT1uZXcgU2V0KFsiYXVkaW9fYmFkZ2UiLCJwYXVzZSIsInBsYXlfYXJyb3ciXSksWVk9Y2xhc3MgZXh0ZW5kcyB2Wntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKTt0aGlzLm89YX1tZihhLGIpe3ZhciBjPXsuLi5hfTthLmljb25OYW1lLnRvTG93ZXJDYXNlKCk9PT0ic2hvcnRzX3RodW1ic191cCImJl8ueCgiZW5hYmxlX3Nob3J0c19oZWFydF9pY29uX2luX3Nob3J0c193YXRjaF9wYWdlIikmJihjLmljb25OYW1lPV8ueCgidXNlX3doaXRlX2ZpbGxlZF9oZWFydF9pY29uX2luX3Nob3J0c193YXRjaF9wYWdlIik/CiJzaG9ydHMtaGVhcnQiOiJzaG9ydHMtaGVhcnQtZ3JhZGllbnQiKTthcmEuaGFzKGEuaWNvbk5hbWUpJiYoYy5pY29uU3R5bGU9InlvdXR1YmVfZmlsbCIpO3laLmhhcyhhLmljb25OYW1lKSYmIV8ueCgiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyIpJiYoYS5pY29uTmFtZT15Wi5nZXQoYS5pY29uTmFtZSkpO2EuaWNvbk5hbWU9PT0iYWNjb3VudF9saW5rZWQiJiYoYy5pY29uTmFtZT0iY2lyY2xlc19vdmVybGFwX2NoZWNrIixjLmljb25TdHlsZT0ieW91dHViZV9maWxsIik7YS5pY29uTmFtZT09PSJhY2NvdW50X3VubGlua2VkIiYmKGMuaWNvbk5hbWU9ImNpcmNsZXNfb3ZlcmxhcCIsYy5pY29uU3R5bGU9InlvdXR1YmVfb3V0bGluZSIpO18ueCgiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyIpJiYoYS5pY29uTmFtZT09PSJwbGF5bGlzdF9hZGQiJiYoYy5pY29uTmFtZT0iYm9va21hcmsiKSxhLmljb25OYW1lPT09ImNpcmNsZXNfb3ZlcmxhcF9jaGVjayJ8fGMuaWNvbk5hbWU9PT0iY2lyY2xlc19vdmVybGFwX2NoZWNrIikmJgooYy5pY29uTmFtZT0iYWNjb3VudF9saW5rIixjLmljb25TdHlsZT0ieW91dHViZV9maWxsIik7YT0oYT11WShjLmljb25OYW1lKSk/ey4uLmMsaWNvbk5hbWU6YX06YzthPV8ueCgiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyIpJiZhLmljb25OYW1lPT09InlvdXR1YmUiP3ZvaWQgMDpyWSgkcWEsYSx0aGlzLm8/LmVKfHxtcWEsYik7cmV0dXJuIGE/YTpzdXBlci5tZihjLGIpfX07WVlbXy5Mbl09W18uSW4oXy5uTyldO3ZhciBycWE9Y2xhc3MgZXh0ZW5kcyBVcWF7aXNWaXNpYmxlKGEpe3ZhciBiPVByb21pc2UsYz1iLnJlc29sdmU7dmFyIGQ9Xy5vTSgpLmdldFN0YXRlKCkuZW5nYWdlbWVudFBhbmVsPy5xcztyZXR1cm4gYy5jYWxsKGIsYT09PWQpfX07dmFyIGJyYT1jbGFzcyBleHRlbmRzIGtae2NvbnN0cnVjdG9yKCl7c3VwZXIoKTt0aGlzLm9ic2VydmVyPW5ldyBfLmZGKDAsYT0+e3RoaXMubG9nVmlzaWJpbGl0eShhKX0pfW9ic2VydmUoYSxiLGMpe2MuVmJ8fGMuc3RhdGUhPT0idmlzaWJsZSJ8fChjLlZiPSEwKTt2YXIgZD17ZWxlbWVudDphLG9wdGlvbjpjfTtpZighYy5WYnx8Yy5zdGF0ZSE9PSJ2aXNpYmxlIilyZXR1cm4gZDtpZih0eXBlb2YgYiE9PSJmdW5jdGlvbiIpcmV0dXJuIF8uV2koRXJyb3IoImhlYCIrdHlwZW9mIGIpKSxkO2EuX192aXNpYmlsaXR5Q2FsbGJhY2s9Yjt0aGlzLm9ic2VydmVyLm9ic2VydmUoYSk7cmV0dXJuIGR9bG9nVmlzaWJpbGl0eShhKXthLl9fdmlzaWJpbGl0eUNhbGxiYWNrJiZ0eXBlb2YgYS5fX3Zpc2liaWxpdHlDYWxsYmFjaz09PSJmdW5jdGlvbiImJmEuX192aXNpYmlsaXR5Q2FsbGJhY2soYSwidmlzaWJsZSIpfXJmKGEpe2RlbGV0ZSBhLmVsZW1lbnQuX192aXNpYmlsaXR5Q2FsbGJhY2s7CnRoaXMub2JzZXJ2ZXIudW5vYnNlcnZlKGEuZWxlbWVudCl9ZGlzcG9zZSgpe3RoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpfX07dmFyIG9xYT0iSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiaW4gd2luZG93P25ldyBNcWE6bmV3IGJyYTtfLnVQPV8uYlo7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoIm1lSDlFYiIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLkJQPWZ1bmN0aW9uKGEsYj0hMSl7dmFyIGMsZD0oKT0+e3ZhciBlPV8uTEIoITApO18uZ3YrKzt0cnl7Yz1fLmJDKGEoKSksXy5JQSghMSl9Y2F0Y2goZil7dGhyb3cgXy5JQSghMCksXy5VdShmLDQpO31maW5hbGx5e18uTEIoZSl9fTtiPWJ8fF8uWnQ/Xy51dihkLGIpOl8uaXcoZCk7cmV0dXJuW2MsYl19O18uS0I9Xy5sQzsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIHppYSxBaWEsQmlhLEVpYSxDaWEsRGlhLEZpYTt6aWE9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQWEoYSkmJmEubm9kZVR5cGU9PTE/YS5nZXRBdHRyaWJ1dGUoImpzbmFtZSIpPT09ImNvRlN4ZSI6ITF9O0FpYT1mdW5jdGlvbihhLGIpe2IuaWR8fChiLmlkPSJvdyIrXy5mdyhiKSk7YS5zZXRBdHRyaWJ1dGUoImpzb3duZXIiLGIuaWQpO2EuX19vd25lcj1iO3ZhciBjPV8uZ3coYix6aWEpO2MmJihfLkdDLmhhcyhjKXx8Xy5HQy5zZXQoYyxbXSksXy5HQy5nZXQoYykucHVzaChhKSk7KGM9Xy5GQy5nZXQoYikpfHxfLkZDLnNldChiLGM9W10pO2MuaW5jbHVkZXMoYSl8fGMucHVzaChhKTtiLnNldEF0dHJpYnV0ZSgiX19JU19PV05FUiIsITApfTtCaWE9ZnVuY3Rpb24oKXt2YXIgYT1fLkNBKDEpO2E9Xy5jdShhLF8uTEMpO2lmKCEoXy5idShhKXx8YVtfLk12XSYmIWEudm8pKXJldHVybiBhLnZhbHVlfTsKRWlhPWZ1bmN0aW9uKCl7dmFyIGE9Xy5DQSgyKSxiPW5ldyBTZXQsYz0oKT0+e2IuZm9yRWFjaChkPT52b2lkIGQoKSk7Yi5jbGVhcigpfTtfLll1KGMpO3JldHVyblsoZCxlKT0+e3ZhciBmPV8uJHQoYSk7dHJ5e2xldCBoPUNpYShEaWEoZCksZSk7Yi5hZGQoaCk7cmV0dXJuKCk9PntoKCk7Yi5kZWxldGUoaCl9fWZpbmFsbHl7Xy4kdChmKX19LGNdfTtfLkNQPWZ1bmN0aW9uKHtjaGlsZHJlbjphLHJvb3Q6Yn0pe18ub0YoKCk9Pnt2YXIgW2NdPUVpYSgpO2M9YyhiLGEpO18uWXUoYyl9KTtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpfTtDaWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1GaWEoYSk7KGE9QmlhKCkpJiZBaWEoYyxhKTt2YXIgW2QsZV09Xy5CUChiLCEwKTtmb3IobGV0IGYgb2YgZCljLmFwcGVuZENoaWxkKGYpO18uVkIubG9nKGMpO3JldHVybigpPT57ZSgpO2MucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQoYyl9fTsKRGlhPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT09InN0cmluZyIpe2E9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihhKTtpZighKDAsXy5wcikoYSkpdGhyb3cgRXJyb3IoInBgYCIrU3RyaW5nKGEpKTtyZXR1cm4gYX1pZihfLmpCKGEpKXJldHVybiBhO2lmKCFhLkNrJiYhYS5sdSl7dmFyIGI9YS5qdTtiPUVycm9yKCJVY2AiKyh0eXBlb2YgYj09PSJzeW1ib2wiP2IuZGVzY3JpcHRpb246YikpO2Eua3U9ITA7dGhyb3cgYjt9cmV0dXJuIGEudmFsdWV9O0ZpYT1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYS5uYW1lc3BhY2VVUkksYS5uYW1lc3BhY2VVUkk9PT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPyJnIjoiZGl2Iik7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoYil9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLkRQPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5DQSgpLGQ9ZT0+e18ub0goYywoKT0+e2IoZSl9KX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoYSxkLHZvaWQgMCk7Xy5ZdSgoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKGEsZCx2b2lkIDApfSl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgSWlhLEhQLEZQLEdQLEtpYSxNaWEsTGlhLExQO0lpYT1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEuZW50aXRpZXMsInN0cmluZ0VudGl0eSIsYil9OwpIUD1mdW5jdGlvbihhLGIsYyl7aWYoYSl7dmFyIGQ9YS5saWtlU3RhdHVzO3JldHVybiBiP3tzdHlsZTp7c3R5bGVUeXBlOiJTVFlMRV9URVhUIn0sdG9nZ2xlZFN0eWxlOntzdHlsZVR5cGU6IlNUWUxFX0RFRkFVTFRfQUNUSVZFIn0saXNUb2dnbGVkOmQ9PT0iTElLRSIsaXNEaXNhYmxlZDohYS5saWtlc0FsbG93ZWQsZGVmYXVsdEljb246e2ljb25UeXBlOmN9LGRlZmF1bHRUZXh0OmQ9PT0iTElLRSI/YS5saWtlQ291bnRXaXRoVW5saWtlVGV4dDphLmxpa2VDb3VudFRleHQsdG9nZ2xlZFRleHQ6ZD09PSJMSUtFIj9hLmxpa2VDb3VudFRleHQ6YS5saWtlQ291bnRXaXRoTGlrZVRleHQsZGVmYXVsdE5hdmlnYXRpb25FbmRwb2ludDpGUChhLCJMSUtFIiksZGVmYXVsdFNlcnZpY2VFbmRwb2ludDpHUChhLCJMSUtFIiksdG9nZ2xlZFNlcnZpY2VFbmRwb2ludDpHUChhLCJJTkRJRkZFUkVOVCIpLGRlZmF1bHRUb29sdGlwOl8uYU4oYS5saWtlQ291bnRUb29sdGlwVGV4dCksdG9nZ2xlZFRvb2x0aXA6Xy5hTihhLmxpa2VDb3VudFRvb2x0aXBUZXh0KSwKdGFyZ2V0SWQ6YS50YXJnZXRJZH06e3N0eWxlOntzdHlsZVR5cGU6IlNUWUxFX1RFWFQifSx0b2dnbGVkU3R5bGU6e3N0eWxlVHlwZToiU1RZTEVfREVGQVVMVF9BQ1RJVkUifSxpc1RvZ2dsZWQ6ZD09PSJESVNMSUtFIixpc0Rpc2FibGVkOiFhLmxpa2VzQWxsb3dlZCxkZWZhdWx0SWNvbjp7aWNvblR5cGU6Y30sZGVmYXVsdFRleHQ6ZD09PSJESVNMSUtFIj9hLmRpc2xpa2VDb3VudFdpdGhVbmRpc2xpa2VUZXh0OmEuZGlzbGlrZUNvdW50VGV4dCx0b2dnbGVkVGV4dDpkPT09IkRJU0xJS0UiP2EuZGlzbGlrZUNvdW50VGV4dDphLmRpc2xpa2VDb3VudFdpdGhEaXNsaWtlVGV4dCxkZWZhdWx0TmF2aWdhdGlvbkVuZHBvaW50OkZQKGEsIkRJU0xJS0UiKSxkZWZhdWx0U2VydmljZUVuZHBvaW50OkdQKGEsIkRJU0xJS0UiKSx0b2dnbGVkU2VydmljZUVuZHBvaW50OkdQKGEsIklORElGRkVSRU5UIiksZGVmYXVsdFRvb2x0aXA6Xy5hTihhLmRpc2xpa2VDb3VudFRvb2x0aXBUZXh0KSx0b2dnbGVkVG9vbHRpcDpfLmFOKGEuZGlzbGlrZUNvdW50VG9vbHRpcFRleHQpfX19OwpGUD1mdW5jdGlvbihhLGIpe2lmKGI9PT0iTElLRSIpcmV0dXJuIGEubGlrZUNvbW1hbmQ7aWYoYj09PSJESVNMSUtFIilyZXR1cm4gYS5kaXNsaWtlTmF2aWdhdGlvbkVuZHBvaW50fTtHUD1mdW5jdGlvbihhLGIpe3JldHVybiBhLnNlcnZpY2VFbmRwb2ludHM/LmZpbmQoYz0+Xy5CKGMsXy5kTyk/LnN0YXR1cz09PWIpfTtfLklQPWZ1bmN0aW9uKGEpe3JldHVybntjb250ZW50OmF9fTsKXy5KUD1mdW5jdGlvbihhLGIsYyl7Yj1jfHwoYj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg/PzApKkppYTthPWEudGh1bWJuYWlscztpZighYSlyZXR1cm4iIjtjPTA7dmFyIGQ9TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsZT0wLGY9LU51bWJlci5NQVhfU0FGRV9JTlRFR0VSO2ZvcihsZXQgaz0wO2s8YS5sZW5ndGg7aysrKXtsZXQgbD1hW2tdLndpZHRoLWI7bD49MCYmbDw9ZD8oYz1rLGQ9bCk6bDwwJiZsPmYmJihlPWssZj1sKX12YXIgaD1bXTthLmZvckVhY2goaz0+e2gucHVzaChrLnVybCl9KTtyZXR1cm4gZDwxMDB8fGQ8LWY/YVtjXS51cmw6YVtlXS51cmx9O0tpYT1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IF8uQmYoYj0+e18uT0UoKCk9PntiKGEpfSl9KX07TWlhPWZ1bmN0aW9uKGEpe2E9YS5tYXAoTGlhKTtyZXR1cm4gXy5JZihhKS50aGVuKEtpYSl9OwpMaWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuY29tcGxldGU/Xy5LeSgibG9hZCIpOm5ldyBfLkJmKGI9PntmdW5jdGlvbiBjKGQpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsYyk7YS5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsYyk7YihkLnR5cGUpfWEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYyk7YS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsYyl9KX07TFA9ZnVuY3Rpb24oYSl7S1B8fE1pYShbYV0pLnRoZW4oKCk9PntpZighS1Ape3ZhciBiPSgwLF8uZWwpKCk7Xy5BcSgiZnRsIixiLHZvaWQgMCk7S1A9ITB9fSl9O18uTVA9bmV3IF8uSSgic3dpdGNoTGlzdEl0ZW1WaWV3TW9kZWwiKTtfLk5QPV8uTCgoKT0+e3ZhciBhPV8udygiUExBWUVSX1ZBUlMiKSxiPWEudXNlcl9kaXNwbGF5X25hbWUsYz1hLnVzZXJfZGlzcGxheV9pbWFnZSxkPWEudXNlcl9kaXNwbGF5X2NoYW5uZWxfaGFuZGxlLGU9ZCYmXy5JUChkKSxmPSgpPT5fLkIoe2xpc3RJdGVtVmlld01vZGVsOnt0aXRsZTpfLklQKGIpLGxlYWRpbmdBY2Nlc3Nvcnk6e2F2YXRhclZpZXdNb2RlbDp7aW1hZ2U6e3NvdXJjZXM6W3t1cmw6Y31dfX19LHN1YnRpdGxlOmV9fSxfLlpDKTtyZXR1cm4gXy5LKCJhY2NvdW50LWluZm8tbWVudS1pdGVtIix7Y2xhc3M6ImFjY291bnRJbmZvSG9zdCJ9LF8uSyhfLkNELHtkYXRhOmYsSWE6ITAsb25UYXA6KCk9PntkJiZfLkFKKF8ud04oYEAke2R9YCksZigpLCExKX19KSl9LCJ6YiIpO18uTlAuaWRvbUNvbXBhdD0hMDt2YXIge01nOk5pYX09Xy56RyhhPT5hLnRhcmdldD8udmlkZW9JZCk7dmFyIE9QPV8uTChhPT57dmFyIHtkYXRhOmIsYnV0dG9uT3ZlcnJpZGVzOmN9PV8uREMoYSx7YnV0dG9uT3ZlcnJpZGVzOnt9fSksW2QsZV09TmlhKGIpLGY9KCk9PkhQKGQoKSwhMCwiU0hPUlRTX0xJS0UiKSxoPSgpPT5IUChkKCksITEsIlNIT1JUU19ESVNMSUtFIiksaz0obCxtKT0+e20uc3RvcFByb3BhZ2F0aW9uKCk7Zm9yKGxldCBuIG9mIGwpKGw9Xy5CKG4sXy5kTykpJiZkJiZlKHsuLi5kKCksbGlrZVN0YXR1czpsLnN0YXR1c30pfTtyZXR1cm4gXy5LKCJ5dG0tbGlrZS1idXR0b24tcmVuZGVyZXIiLG51bGwsXy5LKF8uTyx7QTooKT0+ZCgpLmxpa2VTdGF0dXMmJiEhZigpJiYhIWgoKSx0aGVuOigpPT5fLksoXy5JQixudWxsLF8uSyhfLnFPLHtkYXRhOmYsYnV0dG9uT3ZlcnJpZGVzOigpPT4oe3R5cGU6ZCgpLmxpa2VTdGF0dXM9PT0iTElLRSI/ImZpbGxlZCI6InRvbmFsIiwuLi5jKCl9KSxSazprfSksXy5LKF8uTyx7QTooKT0+IWQoKS5oaWRlRGlzbGlrZUJ1dHRvbix0aGVuOigpPT4KXy5LKF8ucU8se2RhdGE6aCxidXR0b25PdmVycmlkZXM6KCk9Pih7dHlwZTpkKCkubGlrZVN0YXR1cz09PSJESVNMSUtFIj8iZmlsbGVkIjoidG9uYWwiLC4uLmMoKX0pLFJrOmt9KX0pKX0pKX0sIkFiIik7T1AuaWRvbUNvbXBhdD0hMDt2YXIgUFA9Xy5MKCh7ZGF0YTphfSk9Pl8uSygieXRtLW1lbnUtbmF2aWdhdGlvbi1pdGVtLXJlbmRlcmVyIixudWxsLF8uSyhfLndPLHtvbmNsaWNrOmI9Pnt2YXIgYz1hKCk7Xy54TigpJiZfLnpOKCk7Xy5BSihjLm5hdmlnYXRpb25FbmRwb2ludCxjLCExKTtfLkIoYy5uYXZpZ2F0aW9uRW5kcG9pbnQ/LmNvbW1hbmRNZXRhZGF0YSxfLnp3KT8uaWdub3JlTmF2aWdhdGlvbnx8Yi5zdG9wUHJvcGFnYXRpb24oKX0scm9sZTooKT0+YSgpLm5hdmlnYXRpb25FbmRwb2ludCYmXy5CKGEoKS5uYXZpZ2F0aW9uRW5kcG9pbnQsXy5WRCk/ImxpbmsiOnZvaWQgMH0sXy5LKF8uTUQse2ljb246KCk9PmEoKS5pY29uPy5pY29uVHlwZX0pLF8uSyhfLklKLHtkYXRhOigpPT5hKCkudGV4dH0pKSksIkJiIik7UFAuaWRvbUNvbXBhdD0hMDt2YXIgUVA9Xy5MKCh7ZGF0YTphfSk9Pnt2YXIgYj1fLm1HKCk7cmV0dXJuIF8uSygieXRtLW1lbnUtc2VydmljZS1pdGVtLXJlbmRlcmVyIixudWxsLF8uSyhfLndPLHtvbmNsaWNrOigpPT57dmFyIGM9YSgpLGQ9Yy5zZXJ2aWNlRW5kcG9pbnQsZT1jLmNvbW1hbmQ7ZCYmXy5BSihkLGMsITAse0JkOmJ9KTtlJiZfLkFKKGUsYywhMCx7QmQ6Yn0pfX0sXy5LKF8uTyx7QTooKT0+YSgpLmljb24/Lmljb25UeXBlLHRoZW46KCk9Pl8uSyhfLk1ELHtpY29uOigpPT5hKCkuaWNvbj8uaWNvblR5cGV9KX0pLF8uSyhfLklKLHtkYXRhOigpPT5hKCkudGV4dCxtYTohMH0pKSl9LCJDYiIpO1FQLmlkb21Db21wYXQ9ITA7dmFyIFJQPV8uTCgoe2RhdGE6YSxCZDpifSk9Pnt2YXIgYz1fLkRJKElpYSwoKT0+YSgpPy50b2dnbGVNZW51U2VydmljZUl0ZW1FbnRpdHlLZXl8fCIiKSxkPSgpPT5hKCk/LnRvZ2dsZU1lbnVTZXJ2aWNlSXRlbUVudGl0eUtleT8hIWMoKT8udmFsdWU6YSgpPy5pc1RvZ2dsZWQsZT0oKT0+YygpP3tydW5zOlt7dGV4dDpjKCk/LnZhbHVlfHwiIn1dfTphKCk/LnRvZ2dsZWRTZWNvbmRhcnlUZXh0O3JldHVybiBfLksoInl0bS10b2dnbGUtbWVudS1zZXJ2aWNlLWl0ZW0tcmVuZGVyZXIiLG51bGwsXy5LKF8ud08se29uY2xpY2s6KCk9Pnt2YXIgZj1hKCksaD1iPy4oKSxrPWYuaXNUb2dnbGVkP2YudG9nZ2xlZFNlcnZpY2VFbmRwb2ludDpmLmRlZmF1bHRTZXJ2aWNlRW5kcG9pbnQ7ayYmKF8uQUooayxmLCEwLHtCZDpofSksZi50b2dnbGVNZW51U2VydmljZUl0ZW1FbnRpdHlLZXl8fChmLmlzVG9nZ2xlZD0hZi5pc1RvZ2dsZWQpKX19LF8uSyhfLk1ELHtpY29uOigpPT5kKCk/YSgpLnRvZ2dsZWRJY29uPy5pY29uVHlwZT8udG9TdHJpbmcoKToKYSgpLmRlZmF1bHRJY29uPy5pY29uVHlwZT8udG9TdHJpbmcoKSxhY3RpdmU6ZH0pLF8uSyhfLklKLHtkYXRhOigpPT5kKCk/YSgpLnRvZ2dsZWRUZXh0OmEoKS5kZWZhdWx0VGV4dH0pLF8uSyhfLk8se0E6KCk9PmEoKS5kZWZhdWx0U2Vjb25kYXJ5VGV4dHx8ZSgpLHRoZW46KCk9Pl8uSyhfLklKLHtkYXRhOigpPT5kKCk/ZSgpOmEoKS5kZWZhdWx0U2Vjb25kYXJ5VGV4dH0pfSkpKX0sIkRiIik7UlAuaWRvbUNvbXBhdD0hMDt2YXIgT2lhOwpfLlNQPV8uTCgoe2RhdGE6YSxjbGFzc05hbWU6YixUZDpjLEVoOmQsRmg6ZSxkZjpmLEhhOmgsdW46ayxzdG9wUHJvcGFnYXRpb246bCxwcmV2ZW50RGVmYXVsdDptLGxiOm4sYnV0dG9uT3ZlcnJpZGVzOnB9KT0+Xy5LKCJ5dG0tbWVudS1yZW5kZXJlciIse2NsYXNzOmJ9LF8uSyhfLlcse2RhdGE6KCk9PmEoKS50b3BMZXZlbEJ1dHRvbnN9LHtidXR0b25SZW5kZXJlcjpfLnBPLG1lbnVTZXJ2aWNlSXRlbVJlbmRlcmVyOlFQLHRvZ2dsZUJ1dHRvblJlbmRlcmVyOl8ucU8sdG9nZ2xlTWVudVNlcnZpY2VJdGVtUmVuZGVyZXI6UlAsbGlzdEl0ZW1WaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKF8ucEwse2RhdGE6cixJYTohMH0pLHN3aXRjaExpc3RJdGVtVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLmZKLHtkYXRhOnJ9KSxtZW51TmF2aWdhdGlvbkl0ZW1SZW5kZXJlcjpQUCxsaWtlQnV0dG9uUmVuZGVyZXI6T1B9KSxfLksoT2lhLHtkYXRhOmEsVGQ6YyxFaDpkLEZoOmUsZGY6ZiwKSGE6aCx1bjprLHN0b3BQcm9wYWdhdGlvbjpsLHByZXZlbnREZWZhdWx0Om0sbGI6bixidXR0b25PdmVycmlkZXM6cH0se21lbnVTZXJ2aWNlSXRlbVJlbmRlcmVyOlFQLG1lbnVOYXZpZ2F0aW9uSXRlbVJlbmRlcmVyOlBQLHRvZ2dsZU1lbnVTZXJ2aWNlSXRlbVJlbmRlcmVyOlJQLGxpc3RJdGVtVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLnBMLHtkYXRhOnIsSWE6ITB9KSxzd2l0Y2hMaXN0SXRlbVZpZXdNb2RlbDooe2RhdGE6cn0pPT5fLksoXy5mSix7ZGF0YTpyfSksbGlrZUJ1dHRvblJlbmRlcmVyOk9QLGJ1dHRvblJlbmRlcmVyOl8ucE8sYWNjb3VudEluZm9NZW51SXRlbTpfLk5QfSkpLCJFYiIpO18uU1AuaWRvbUNvbXBhdD0hMDsKT2lhPV8uTCgoe2RhdGE6YSxjaGlsZHJlbjpiLC4uLmN9KT0+Xy5LKF8uRUUsbnVsbCxfLksoXy5DRSx7d2hlbjooKT0+KCFhKCkuaXRlbXN8fCFhKCkuaXRlbXMubGVuZ3RoKSYmIShhKCkuaXNEaXNhYmxlZCYmYSgpLmRpc2FibGVkQ29tbWFuZCl9LCgpPT5udWxsKSxfLksoXy5DRSx7d2hlbjooKT0+Yy51bj8uKCl9LCgpPT5fLksoXy5NaGEse2ljb25UeXBlOigpPT5jLkVoPy4oKT8/Ik1PUkVfVkVSVCIsbGFiZWw6KCk9Pl8uV0woXy5ESihhKCkuYWNjZXNzaWJpbGl0eSk/PyIiKSxhcmlhTGFiZWw6KCk9Pl8uREooYSgpLmFjY2Vzc2liaWxpdHkpfHwiIixjYW5jZWxCdXR0b25MYWJlbDpfLiROLkNBTkNFTCxUZDooKT0+Yy5UZD8uKCksZGY6KCk9PmMuZGY/LigpLEhhOigpPT5jLkhhPy4oKSxzdG9wUHJvcGFnYXRpb246KCk9PmMuc3RvcFByb3BhZ2F0aW9uPy4oKSxwcmV2ZW50RGVmYXVsdDooKT0+Yy5wcmV2ZW50RGVmYXVsdD8uKCksYnV0dG9uT3ZlcnJpZGVzOigpPT5jLmJ1dHRvbk92ZXJyaWRlcz8uKCksCmlzRGlzYWJsZWQ6KCk9PmEoKS5pc0Rpc2FibGVkLGRpc2FibGVkQ29tbWFuZDooKT0+YSgpLmRpc2FibGVkQ29tbWFuZH0sKCk9Pl8uSyhfLlcse2RhdGE6KCk9PmEoKS5pdGVtc30sYikpKSxfLksoXy5ERSxudWxsLCgpPT5fLksoXy56Tyx7aWNvblR5cGU6KCk9PmMuRWg/LigpPz8iTU9SRV9WRVJUIixsYWJlbDooKT0+Xy5ESihhKCkuYWNjZXNzaWJpbGl0eSl8fCIiLGNhbmNlbEJ1dHRvbkxhYmVsOl8uJE4uQ0FOQ0VMLFRkOigpPT5jLlRkPy4oKSxGaDooKT0+Yy5GaD8uKCksZGY6KCk9PmMuZGY/LigpLEhhOigpPT5jLkhhPy4oKSxzdG9wUHJvcGFnYXRpb246KCk9PmMuc3RvcFByb3BhZ2F0aW9uPy4oKSxwcmV2ZW50RGVmYXVsdDooKT0+Yy5wcmV2ZW50RGVmYXVsdD8uKCksbGI6KCk9PmMubGI/LigpLGJ1dHRvbk92ZXJyaWRlczooKT0+Yy5idXR0b25PdmVycmlkZXM/LigpLGlzRGlzYWJsZWQ6KCk9PmEoKS5pc0Rpc2FibGVkLGRpc2FibGVkQ29tbWFuZDooKT0+YSgpLmRpc2FibGVkQ29tbWFuZH0sCigpPT5fLksoXy5XLHtkYXRhOigpPT5hKCkuaXRlbXN9LGIpKSkpLCJGYiIpO18uVFA9Xy5MKGE9Pl8uSyhfLk8se0E6KCk9PmEuZGF0YSgpLml0ZW1zPy5sZW5ndGh8fGEuZGF0YSgpLmlzRGlzYWJsZWQmJmEuZGF0YSgpLmRpc2FibGVkQ29tbWFuZCx0aGVuOigpPT5fLksoUGlhLHsuLi5hfSl9KSwiR2IiKTtfLlRQLmlkb21Db21wYXQ9ITA7CnZhciBQaWE9Xy5MKGE9Pnt2YXIge2RhdGE6YixjbGFzc05hbWU6YyxFaDpkLHNob3dJY29uOmUsYnV0dG9uU2l6ZTpmLGJ1dHRvbk92ZXJyaWRlczpofT1fLkRDKGEse3Nob3dJY29uOiExLGJ1dHRvbk92ZXJyaWRlczp7fSxidXR0b25TaXplOiJMIixFaDoiTU9SRV9WRVJUIn0pLGs9Xy5adDtyZXR1cm4gXy5LKCJ5dG0tYm90dG9tLXNoZWV0LXJlbmRlcmVyIix7Y2xhc3M6Y30sXy5LKF8uSksse2RhdGE6KCk9Pnt2YXIgbD17R2I6KCk9Pl8uSygiZGl2Iix7Y2xhc3M6ImJvdHRvbS1zaGVldC1tZWRpYS1tZW51LWl0ZW0ifSxfLksoXy5XLHtkYXRhOigpPT5iKCkuaXRlbXN9LHttZW51U2VydmljZUl0ZW1SZW5kZXJlcjpRUCxtZW51TmF2aWdhdGlvbkl0ZW1SZW5kZXJlcjpQUCx0b2dnbGVNZW51U2VydmljZUl0ZW1SZW5kZXJlcjpSUCxsaXN0SXRlbVZpZXdNb2RlbDooe2RhdGE6bX0pPT5fLksoXy5wTCx7ZGF0YTptLElhOiEwfSksc3dpdGNoTGlzdEl0ZW1WaWV3TW9kZWw6KHtkYXRhOm19KT0+Cl8uSyhfLmZKLHtkYXRhOm19KSxsaWtlQnV0dG9uUmVuZGVyZXI6T1AsYnV0dG9uUmVuZGVyZXI6Xy5wTyxhY2NvdW50SW5mb01lbnVJdGVtOl8uTlB9KSksSGE6ZSgpLGlzRGlzYWJsZWQ6YigpLmlzRGlzYWJsZWQsZGlzYWJsZWRDb21tYW5kOmIoKS5kaXNhYmxlZENvbW1hbmR9O3JldHVybntzdHlsZToibW9ubyIsdHlwZToidGV4dCIsc3RhdGU6ImFjdGl2ZSIsc2l6ZTpmKCksaWNvblBvc2l0aW9uOiJpY29uLW9ubHkiLGFjY2Vzc2liaWxpdHlMYWJlbDpfLkRKKGIoKT8uYWNjZXNzaWJpbGl0eSl8fCIiLG9uVGFwOm09Pnt2YXIgbj17c3RhY2s6W10sZXJyb3I6dm9pZCAwLGhhc0Vycm9yOiExfTt0cnl7Xy54SihfLmh4KCkse2RhdGE6YigpfSksbC5mb2N1c09uQ2xvc2U9bS5jdXJyZW50VGFyZ2V0LF8uV00oKSYmbS5zdG9wUHJvcGFnYXRpb24oKSxfLlZ6KG4sXy52TShrKSksXy55TihsKX1jYXRjaChwKXtuLmVycm9yPXAsbi5oYXNFcnJvcj0hMH1maW5hbGx5e18uV3oobil9fSwKLi4uaCgpfX0saWNvbk5hbWU6KCk9PmQoKX0pKX0sIkhiIik7dmFyIEppYT1fLnUuZGV2aWNlUGl4ZWxSYXRpb3x8Mjt2YXIgS1A9ITE7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0YXRlLW5hdmlnYXRlZW5kIiwoKT0+e0tQPSExfSk7Cl8uVVA9Xy5MKGE9Pnt2YXIge3RodW1ibmFpbERldGFpbHM6YixjbGFzc05hbWU6YyxhbHQ6ZCxhcmlhTGFiZWw6ZSxNZDpmLFRiOmgsaGM6ayxhcmlhSGlkZGVuOmwsWWE6bSxUYTpufT1fLkRDKGEse1RiOiEwLHRodW1ibmFpbERldGFpbHM6dm9pZCAwLGNsYXNzTmFtZTp2b2lkIDAsYWx0OnZvaWQgMCxhcmlhTGFiZWw6dm9pZCAwLE1kOnZvaWQgMCxoYzp2b2lkIDAsYXJpYUhpZGRlbjp2b2lkIDAsWWE6dm9pZCAwLFRhOnZvaWQgMH0pLHA9Xy52RSgiaW1nIiksW3IsdF09Xy5BQyhiKTtfLlVKKCgpPT57dmFyIHY9ey4uLmIoKX07dCh2KX0pO18ubkUoKCk9PntpZihwLnZhbHVlKXtsZXQgdj1wLnZhbHVlO0xQKHYpO2xldCB6PWIoKTt6JiYodi5zcmM9Xy5KUCh6LHYsZigpKSl9fSwibjdrYzRjIik7cmV0dXJuIF8uSyhfLk8se0E6KCk9PmIoKSYmKGQoKXx8ZSgpfHxjKCl8fGsoKXx8bCgpKSx0aGVuOigpPT5fLksoXy5qRix7ZGF0YTooKT0+cigpLGNsYXNzTmFtZTpjLGFsdDooKT0+CmQoKXx8ZSgpfHwiIixjb250ZW50TW9kZToiQ09OVEVOVF9NT0RFX1NDQUxFX0FTUEVDVF9GSUxMIixoYzprLGFyaWFIaWRkZW46bCxjYWxsYmFjazpMUCxUYjpoLFlhOm0sVGE6bn0pLFc6KCk9Pl8uSyhfLk8se0E6aCx0aGVuOigpPT5fLksoXy5oRix7ZGF0YTpiLGNvbmZpZzooKT0+KHtjbGFzc05hbWU6YygpLGFsdDpkKCl8fGUoKXx8IiIsaGM6aygpLGFyaWFIaWRkZW46bCgpLFlhOm0oKSxUYTpuKCl9KSxHbDp7U2c6KHYseik9PntMUCh6KTtyZXR1cm4gdj9fLkpQKHYseixmKCkpOiIifX0sbGF6eTohMH0pLFc6KCk9Pl8uSygiaW1nIix7ZWw6cCxhbHQ6ZCwiYXJpYS1sYWJlbCI6ZSxjbGFzczpjLCJkYXRhLWRpc2FibGVkIjprLCJhcmlhLWhpZGRlbiI6bH0pfSl9KX0sIktiIik7Xy5VUC5pZG9tQ29tcGF0PSEwO18uVlA9Xy5MKGE9Pl8uSygieXRtLXRodW1ibmFpbC1vdmVybGF5LXRpbWUtc3RhdHVzLXJlbmRlcmVyIix7Y2xhc3M6YS5jbGFzc05hbWUsInRodW1ibmFpbC1zaXplIjphLnRodW1ibmFpbFNpemUsImRhdGEtc3R5bGUiOigpPT5hLmRhdGE/LigpLnN0eWxlLCJhcmlhLWhpZGRlbiI6YS5hcmlhSGlkZGVuLCJkYXRhLXR5cGUiOigpPT5hLmRhdGE/LigpLnR5cGU/LnJlcGxhY2UoIlRIVU1CTkFJTF9PVkVSTEFZX1RJTUVfU1RBVFVTX1RZUEVfIiwiIil9LF8uSyhfLlRDLHtkYXRhOigpPT4oe3R5cGU6YS5kYXRhKCkuc3R5bGU9PT0iTElWRSI/MTk6MTgsdGV4dDpfLkNKKGEuZGF0YSgpLnRleHQpLGljb246YS5kYXRhKCkuaWNvbj8uaWNvblR5cGV8fGEuZGF0YSgpLnl0SWNvbixxTDphLmRhdGEoKS5zdHlsZT09PSJTSE9SVFMifSl9KSksIkxiIik7dmFyIFFpYTtfLldQPV8uTChhPT57dmFyIHtkZXRhaWxzOmIsb3ZlcmxheTpjLFRiOmQsaGo6ZSxNZDpmfT1fLkRDKGEse2RldGFpbHM6dm9pZCAwLFRiOiEwLGhqOiExfSksaD1fLlAoInZpZGVvLXRodW1ibmFpbC1pbWciLHsiY3VzdG9tLXRodW1ibmFpbCI6ZX0pO3JldHVybiBfLksoXy5JQixudWxsLF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ2aWRlby10aHVtYm5haWwtaW1nIiwidmlkZW8tdGh1bWJuYWlsLWJnIil9KSxfLksoXy5PLHtBOmUsdGhlbjooKT0+Xy5LKFFpYSx7ZGV0YWlsczpiLGNsYXNzTmFtZTpoLFRiOmQsTWQ6Zn0pfSksXy5LKF8uVVAse3RodW1ibmFpbERldGFpbHM6YixjbGFzc05hbWU6aCxUYjpkLE1kOmYsYWx0OiIifSksXy5LKCJkaXYiLHtjbGFzczoidmlkZW8tcHJldmlldy1zaGltIn0pLGM/LigpKX0sIk1iIik7ClFpYT1fLkwoKHtkZXRhaWxzOmEsY2xhc3NOYW1lOmIsVGI6YyxNZDpkfSk9Pl8uSygiZGl2Iix7Y2xhc3M6ImN1c3RvbS10aHVtYm5haWwtYmFja2dyb3VuZC1jb250YWluZXIiLHN0eWxlOigpPT57aWYoYT8uKCkuc2FtcGxlZFRodW1ibmFpbENvbG9yKXt2YXIge3JlZDplLGdyZWVuOmYsYmx1ZTpofT1hKCkuc2FtcGxlZFRodW1ibmFpbENvbG9yO3JldHVybmBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCR7ZX0sJHtmfSwke2h9LDEpO2B9fX0sXy5LKF8uVVAse3RodW1ibmFpbERldGFpbHM6YSxjbGFzc05hbWU6YixhbHQ6IiIsTWQ6ZCxUYjpjfSkpLCJOYiIpO18uWFA9Xy5MKGE9Pnt2YXIge3RodW1ibmFpbERldGFpbHM6YixvdmVybGF5OmMsTWQ6ZCxjbGFzc05hbWU6ZSxUYjpmLGhqOmgsaG06a309Xy5EQyhhLHtUYjohMCxoajohMSx0aHVtYm5haWxEZXRhaWxzOnZvaWQgMH0pO3JldHVybiBfLksoInl0bS1jb21wYWN0LXRodW1ibmFpbCIse2NsYXNzOl8uUCgidmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1jb21wYWN0IiwidmlkZW8tdGh1bWJuYWlsLWNvbnRhaW5lci1jb21wYWN0LXJvdW5kZWQiLGUseyJvcmlnaW5hbC1hc3BlY3QtcmF0aW8iOigpPT5iKCk/LmlzT3JpZ2luYWxBc3BlY3RSYXRpbyxzdGFja2VkOmt9KX0sXy5LKF8uV1Ase2RldGFpbHM6YixvdmVybGF5OmMsTWQ6ZCxUYjpmLGhqOmh9KSl9LCJPYiIpO18uWFAuaWRvbUNvbXBhdD17Y2FsbGJhY2tzOntvdmVybGF5OiEwfX07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uWlA9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc2hvcnRzLlRqfTtfLiRQPWZ1bmN0aW9uKGEpe3JldHVybiBhLnNob3J0cy54an07Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uYlE9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJwZXZ0dmMiKTtyZXR1cm4gXy5yRH07Xy5jUT1fLmNEKCgpPT5fLmJRKCksImRpc2xpa2VCdXR0b25WaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigiZGlzbGlrZUJ1dHRvblZpZXdNb2RlbCIsInBldnR2YyIsXy5iUSl9KTtfLmRRPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiaXpqbVAiKTtyZXR1cm4gXy5xRH07Xy5lUT1fLmNEKCgpPT5fLmRRKCksImxpa2VCdXR0b25WaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigibGlrZUJ1dHRvblZpZXdNb2RlbCIsIml6am1QIixfLmRRKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmZRPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiQVQ4TFRlIik7cmV0dXJuIF8ucER9O18uZ1E9Xy5jRCgoKT0+Xy5mUSgpLCJvdmVybGF5UHJvZHVjdFN0aWNrZXIiKTtfLll0KF8uSkQsYT0+e2EuSigib3ZlcmxheVByb2R1Y3RTdGlja2VyIiwiQVQ4TFRlIixfLmZRKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgU2lhO18uaFE9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJYZVJYQmQiKTtyZXR1cm4gXy5jRn07U2lhPV8uY0QoKCk9Pl8uaFEoKSwicmVlbFNvdW5kTWV0YWRhdGFWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigicmVlbFNvdW5kTWV0YWRhdGFWaWV3TW9kZWwiLCJYZVJYQmQiLF8uaFEpfSk7Xy5pUT1fLkwoKHtkYXRhOmEsY2xhc3NOYW1lOmJ9KT0+e3ZhciBjPV8udUUoInBpdm90LWJ1dHRvbi12aWV3LW1vZGVsIik7Xy5VSigoKT0+e2EoKT8uYmFja2dyb3VuZENvbG9yJiZjLnZhbHVlLnNldEF0dHJpYnV0ZSgiZGF0YS1iYWNrZ3JvdW5kLWNvbG9yIixTdHJpbmcoYSgpLmJhY2tncm91bmRDb2xvcikpfSk7cmV0dXJuIF8uSygicGl2b3QtYnV0dG9uLXZpZXctbW9kZWwiLHtlbDpjLGNsYXNzOl8uUCgieXR3UGl2b3RCdXR0b25WaWV3TW9kZWxIb3N0IixiKX0sXy5LKF8ubkgse2NvbW1hbmQ6KCk9Pnt2YXIgZD1hKCk7ZD1kLm9uQ2xpY2tDb21tYW5kP18uUkQoZC5vbkNsaWNrQ29tbWFuZCk6ZC5jb250ZW50RGVzY3JpcHRpb24/Xy5hUShfLldMKGQuY29udGVudERlc2NyaXB0aW9uKSk6dm9pZCAwO3JldHVybiBkfSxhcmlhTGFiZWw6KCk9PmEoKS5jb250ZW50RGVzY3JpcHRpb259LF8uSyhfLk8se0E6KCk9PmEoKS50aHVtYm5haWwsdGhlbjpkPT5fLksoXy5qRix7ZGF0YTpkLAphbHQ6IiIsY2xhc3NOYW1lOiJ5dHdQaXZvdEJ1dHRvblZpZXdNb2RlbEhvc3RJbWFnZSJ9KSxXOigpPT5fLksoXy5PLHtBOigpPT5hKCkuaWNvbix0aGVuOmQ9Pl8uSyhfLk1ELHtpY29uOigpPT5kKCkuaWNvblR5cGUsY2xhc3NOYW1lOiJ5dHdQaXZvdEJ1dHRvblZpZXdNb2RlbEhvc3RJY29uIn0pfSl9KSkpfSwiU2IiKTtfLmpRPV8uTCgoe2RhdGE6YSxBZjpifSk9Pnt2YXIgYz0oKT0+Inl0d1JlZWxBY3Rpb25CYXJWaWV3TW9kZWxIb3N0TW9iaWxlQWN0aW9uQnV0dG9uIjtyZXR1cm4gXy5LKCJyZWVsLWFjdGlvbi1iYXItdmlldy1tb2RlbCIse2NsYXNzOl8uUCgieXR3UmVlbEFjdGlvbkJhclZpZXdNb2RlbEhvc3QiLHt5dHdSZWVsQWN0aW9uQmFyVmlld01vZGVsSG9zdE1vYmlsZTooKT0+ITAseXR3UmVlbEFjdGlvbkJhclZpZXdNb2RlbEhvc3REZXNrdG9wOigpPT4hMX0pfSxfLksoXy5XLHtkYXRhOigpPT5hKCkuYnV0dG9uVmlld01vZGVsc30se2J1dHRvblZpZXdNb2RlbDooe2RhdGE6ZH0pPT5fLksoXy5VRix7Y2xhc3NOYW1lOmMsZGF0YTpkLGJ1dHRvbk92ZXJyaWRlczpifSksbGlrZUJ1dHRvblZpZXdNb2RlbDooe2RhdGE6ZH0pPT5fLksoXy5lUSx7Y2xhc3NOYW1lOmMsZGF0YTpkLEFmOmJ9KSxkaXNsaWtlQnV0dG9uVmlld01vZGVsOih7ZGF0YTpkfSk9Pl8uSyhfLmNRLHtjbGFzc05hbWU6YywKZGF0YTpkLEFmOmJ9KSx0b2dnbGVCdXR0b25WaWV3TW9kZWw6KHtkYXRhOmR9KT0+Xy5LKF8uWkYse2NsYXNzTmFtZTpjLGRhdGE6ZCx3aTpifSkscGl2b3RCdXR0b25WaWV3TW9kZWw6KHtkYXRhOmR9KT0+Xy5LKF8uaVEse2NsYXNzTmFtZTpjLGRhdGE6ZH0pfSkpfSwiVGIiKTt2YXIgVGlhO18ua1E9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJzNjQ5aiIpO3JldHVybiBfLm1IfTtUaWE9Xy5jRCgoKT0+Xy5rUSgpLCJwbGF5ZXJEaXNjbG9zdXJlVmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooInBsYXllckRpc2Nsb3N1cmVWaWV3TW9kZWwiLCJzNjQ5aiIsXy5rUSl9KTt2YXIgVWlhO18ubFE9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJ1U3hkbmIiKTtyZXR1cm4gXy5mSH07VWlhPV8uY0QoKCk9Pl8ubFEoKSwicmVlbENhcm91c2VsVmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooInJlZWxDYXJvdXNlbFZpZXdNb2RlbCIsInVTeGRuYiIsXy5sUSl9KTt2YXIgVmlhO18ubVE9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJXZmY2QmQiKTtyZXR1cm4gXy5lSH07VmlhPV8uY0QoKCk9Pl8ubVEoKSwicmVlbENoYW5uZWxCYXJWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigicmVlbENoYW5uZWxCYXJWaWV3TW9kZWwiLCJXZmY2QmQiLF8ubVEpfSk7dmFyIFdpYTtfLm5RPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiVTNtenNkIik7cmV0dXJuIF8ubEh9O1dpYT1fLmNEKCgpPT5fLm5RKCksInJlZWxNdWx0aUZvcm1hdExpbmtWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigicmVlbE11bHRpRm9ybWF0TGlua1ZpZXdNb2RlbCIsIlUzbXpzZCIsXy5uUSl9KTt2YXIgWGlhO18ub1E9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJ5UDBKQmQiKTtyZXR1cm4gXy5iRn07WGlhPV8uY0QoKCk9Pl8ub1EoKSwic2hvcnRzRGlzY2xvc3VyZXNWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigic2hvcnRzRGlzY2xvc3VyZXNWaWV3TW9kZWwiLCJ5UDBKQmQiLF8ub1EpfSk7dmFyIFlpYTtfLnBRPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiUnFhSnNkIik7cmV0dXJuIF8uWEp9O1lpYT1fLmNEKCgpPT5fLnBRKCksInNob3J0c1N1Z2dlc3RlZEFjdGlvblZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJzaG9ydHNTdWdnZXN0ZWRBY3Rpb25WaWV3TW9kZWwiLCJScWFKc2QiLF8ucFEpfSk7dmFyIFppYTtfLnFRPWFzeW5jKCk9Pnthd2FpdCAoMCxfLmVoKSgiRTNIZWJjIik7cmV0dXJuIF8uYUZ9O1ppYT1fLmNEKCgpPT5fLnFRKCksInNob3J0c1ZpZGVvVGl0bGVWaWV3TW9kZWwiKTtfLll0KF8uSkQsYT0+e2EuSigic2hvcnRzVmlkZW9UaXRsZVZpZXdNb2RlbCIsIkUzSGViYyIsXy5xUSl9KTtfLnJRPV8uTCgoe2RhdGE6YX0pPT5fLksoInl0LXJlZWwtbWV0YXBhbmVsLXZpZXctbW9kZWwiLHtjbGFzczoieXRSZWVsTWV0YXBhbmVsVmlld01vZGVsSG9zdCJ9LF8uSyhfLlcse2RhdGE6KCk9PmEoKS5tZXRhZGF0YUl0ZW1zfSx7YmFkZ2VWaWV3TW9kZWw6KHtkYXRhOmJ9KT0+Xy5LKCJkaXYiLHtjbGFzczoieXRSZWVsTWV0YXBhbmVsVmlld01vZGVsTWV0YXBhbmVsSXRlbSJ9LF8uSyhfLmFHLHtkYXRhOmJ9KSkscGxheWVyRGlzY2xvc3VyZVZpZXdNb2RlbDooe2RhdGE6Yn0pPT5fLksoImRpdiIse2NsYXNzOiJ5dFJlZWxNZXRhcGFuZWxWaWV3TW9kZWxNZXRhcGFuZWxJdGVtIn0sXy5LKFRpYSx7ZGF0YTpifSkpLHByb2R1Y3RTdGlja2VyVmlld01vZGVsOih7ZGF0YTpifSk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0UmVlbE1ldGFwYW5lbFZpZXdNb2RlbE1ldGFwYW5lbEl0ZW0ifSxfLksoXy5nUSx7ZGF0YTooKT0+YigpLnN0aWNrZXJ9KSkscmVlbENhcm91c2VsVmlld01vZGVsOih7ZGF0YTpifSk9PgpfLksoImRpdiIse2NsYXNzOiJ5dFJlZWxNZXRhcGFuZWxWaWV3TW9kZWxNZXRhcGFuZWxJdGVtIn0sXy5LKFVpYSx7ZGF0YTpifSkpLHJlZWxDaGFubmVsQmFyVmlld01vZGVsOih7ZGF0YTpifSk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0UmVlbE1ldGFwYW5lbFZpZXdNb2RlbE1ldGFwYW5lbEl0ZW0ifSxfLksoVmlhLHtkYXRhOmJ9KSkscmVlbE11bHRpRm9ybWF0TGlua1ZpZXdNb2RlbDooe2RhdGE6Yn0pPT5fLksoImRpdiIse2NsYXNzOiJ5dFJlZWxNZXRhcGFuZWxWaWV3TW9kZWxNZXRhcGFuZWxJdGVtIn0sXy5LKFdpYSx7ZGF0YTpifSkpLHJlZWxTb3VuZE1ldGFkYXRhVmlld01vZGVsOih7ZGF0YTpifSk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0UmVlbE1ldGFwYW5lbFZpZXdNb2RlbE1ldGFwYW5lbEl0ZW0ifSxfLksoU2lhLHtkYXRhOmJ9KSksc2hvcnRzRGlzY2xvc3VyZXNWaWV3TW9kZWw6KHtkYXRhOmJ9KT0+Xy5LKCJkaXYiLHtjbGFzczoieXRSZWVsTWV0YXBhbmVsVmlld01vZGVsTWV0YXBhbmVsSXRlbSJ9LApfLksoWGlhLHtkYXRhOmJ9KSksc2hvcnRzU3VnZ2VzdGVkQWN0aW9uVmlld01vZGVsOih7ZGF0YTpifSk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0UmVlbE1ldGFwYW5lbFZpZXdNb2RlbE1ldGFwYW5lbEl0ZW0ifSxfLksoWWlhLHtkYXRhOmJ9KSksc2hvcnRzVmlkZW9UaXRsZVZpZXdNb2RlbDooe2RhdGE6Yn0pPT5fLksoImRpdiIse2NsYXNzOiJ5dFJlZWxNZXRhcGFuZWxWaWV3TW9kZWxNZXRhcGFuZWxJdGVtIn0sXy5LKFppYSx7ZGF0YTpifSkpLHRvZ2dsZUJ1dHRvblZpZXdNb2RlbDooe2RhdGE6Yn0pPT5fLksoImRpdiIse2NsYXNzOiJ5dFJlZWxNZXRhcGFuZWxWaWV3TW9kZWxNZXRhcGFuZWxJdGVtIn0sXy5LKF8uWkYse2RhdGE6Yn0pKX0pKSwiVWIiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5zUT1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoImZLRThxZCIpO3JldHVybiBfLm9EfTtfLiRpYT1fLmNEKCgpPT5fLnNRKCksImRpYWxvZ1ZpZXdNb2RlbCIpO18uWXQoXy5KRCxhPT57YS5KKCJkaWFsb2dWaWV3TW9kZWwiLCJmS0U4cWQiLF8uc1EpfSk7Xy50UT1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoIlJaZWtKIik7cmV0dXJuIF8uU0N9O18uYWphPV8uY0QoKCk9Pl8udFEoKSwic21hcnRpbWF0aW9ucyIpO18uWXQoXy5KRCxhPT57YS5KKCJzbWFydGltYXRpb25zIiwiUlpla0oiLF8udFEpfSk7Xy51UT1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoInNET1RHZSIpO3JldHVybiBfLm5EfTtfLmJqYT1fLmNEKCgpPT5fLnVRKCksInJlZWxQbGF5ZXJPdmVybGF5Vmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooInJlZWxQbGF5ZXJPdmVybGF5Vmlld01vZGVsIiwic0RPVEdlIixfLnVRKX0pO18udlE9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJlY3VQQWMiKTtyZXR1cm4gXy5tRH07Xy5jamE9Xy5jRCgoKT0+Xy52USgpLCJwbGF5ZXJPdmVybGF5SW50ZXJhY3Rpb24iKTtfLll0KF8uSkQsYT0+e2EuSigicGxheWVyT3ZlcmxheUludGVyYWN0aW9uIiwiZWN1UEFjIixfLnZRKX0pO18ud1E9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJGUWRJSmUiKTtyZXR1cm4gXy5sRH07Xy5kamE9Xy5jRCgoKT0+Xy53USgpLCJzdGlja2Vyc0xheWVyIik7Xy5ZdChfLkpELGE9PnthLkooInN0aWNrZXJzTGF5ZXIiLCJGUWRJSmUiLF8ud1EpfSk7Xy54UT1hc3luYygpPT57YXdhaXQgKDAsXy5laCkoIm43ZW8yIik7cmV0dXJuIF8ua0R9O18uZWphPV8uY0QoKCk9Pl8ueFEoKSwiaW50ZXJzdGl0aWFsVmlld01vZGVsIik7Xy5ZdChfLkpELGE9PnthLkooImludGVyc3RpdGlhbFZpZXdNb2RlbCIsIm43ZW8yIixfLnhRKX0pO18ueVE9YXN5bmMoKT0+e2F3YWl0ICgwLF8uZWgpKCJOdWlsdWUiKTtyZXR1cm4gXy5qRH07Xy5mamE9Xy5jRCgoKT0+Xy55USgpLCJ2aWRlb1dpdGhDb250ZXh0UmVuZGVyZXIiKTtfLll0KF8uSkQsYT0+e2EuSigidmlkZW9XaXRoQ29udGV4dFJlbmRlcmVyIiwiTnVpbHVlIixfLnlRKX0pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLkFRPV8uTCgoe09vOmEsUnA6YixjaGlsZHJlbjpjLFBuOmQsZGlzYWJsZUFuaW1hdGlvbjplfSk9Pnt2YXIgZj0oKT0+IWU/LigpO3JldHVybiBfLksoInl0LWFuaW1hdGVkLWFjdGlvbiIse2NsYXNzOl8uUCgieXRBbmltYXRlZEFjdGlvbkhvc3QiLGQpfSxfLksoImRpdiIse2NsYXNzOiJ5dEFuaW1hdGVkQWN0aW9uQ29udGVudFdpdGhCYWNrZ3JvdW5kIn0sXy5LKF8uTyx7QTpmLHRoZW46KCk9Pl8uSyh6USx7UG46Inl0QW5pbWF0ZWRBY3Rpb25CYWNrZ3JvdW5kQ29udGFpbmVyIix5eToieXRBbmltYXRlZEFjdGlvbkJhY2tncm91bmQiLEVjOigpPT4oe2FuaW1hdGlvblJlZjphPy4oKSxhbmltYXRpb25Db25maWc6e25hbWU6ImFuaW1hdGVkLWFjdGlvbnMtYmFja2dyb3VuZCIsYXV0b3BsYXk6ITEsbG9vcDohMSxwYXRoOmBodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9sb3R0aWUvc3Vic2NyaWJlX2FjdGlvbi9zdWJzY3JpYmVfYWN0aW9uX2NvbnRhaW5lcl8ke18ueSgpLnJlc29sdmUoXy5JbihfLmtGKSk/LigpPz8KITE/ImRhcmsiOiJsaWdodCJ9X3Y1Lmpzb25gfX0pfSl9KSxjKSxfLksoXy5PLHtBOmYsdGhlbjooKT0+Xy5LKHpRLHtFYzooKT0+KHthbmltYXRpb25SZWY6Yj8uKCksYW5pbWF0aW9uQ29uZmlnOntuYW1lOiJhbmltYXRlZC1hY3Rpb25zLWZvcmVncm91bmQiLGF1dG9wbGF5OiExLGxvb3A6ITEscGF0aDpgaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20veW91dHViZS9pbWcvbG90dGllL3N1YnNjcmliZV9hY3Rpb24vc3Vic2NyaWJlX2FjdGlvbl9zcGFya2xlc18ke18ueSgpLnJlc29sdmUoXy5JbihfLmtGKSk/LigpPz8hMT8iZGFyayI6ImxpZ2h0In1fdjQuanNvbmB9fSl9KX0pKX0sIlZiIik7Xy5BUS5pZG9tQ29tcGF0PSEwOwp2YXIgelE9Xy5MKCh7UG46YSx5eTpiLEVjOmN9KT0+Xy5LKCJkaXYiLHtjbGFzczpfLlAoInl0QW5pbWF0ZWRBY3Rpb25Mb3R0aWUiLGEpLCJhcmlhLWhpZGRlbiI6InRydWUifSxfLksoXy5jTSx7Y2xhc3NOYW1lOmIsZGF0YTpjLGFuaW1hdGlvbk5hbWU6KCk9PmMoKS5hbmltYXRpb25Db25maWcubmFtZX0pKSwiV2IiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5CUT1mdW5jdGlvbigpe3JldHVybntsb3R0aWVFbDp2b2lkIDB9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5DUT1mdW5jdGlvbihhLGIpe18ubkUoKCk9Pnt2YXIgYz1hKCk7Xy5FQSgoKT0+dm9pZCBiKGMpKX0sImNLUjlzZiIpfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGdqYSxEUSxFUSxGUSxoamEsaWphLGpqYSxHUSxIUSxramEsSVEsbGphLEpRLEtRLExRLE1RLE5RLE9RLG1qYSxQUSxRUSxSUSxuamEsU1Esb2phLFRRLFVRLHBqYSxWUSxXUSxYUSxaUSxxamEscmphLCRRLGFSLHNqYSx0amEsdWphLGJSLGNSLHZqYSx3amEseGphLGhSLGZSLG1SLG5SLG9SLHBSLGdSLHRSLHVSLGtSLHZSLGxSLHpqYSxBamEselIsQVIsQlIsRWphLERSLEhSLEZqYSxHamEsSGphLElqYSxJUixKUixKamEsTFIsTGphLE1qYSxNUixRamEsUGphLFJqYSxPamEsTlIsTmphLFBSLE9SLFVqYSxXamEsUlIsWGphLFNSLGRTLGVTLGZTLGdTLGRrYSxpa2EsaVMsa2thLGpTLGtTLG9rYSxwUyxxa2EscmthLHFTLHNrYSx0a2EsclMsc1MsdFMsdVMsd1MseFMsdlMseVMselMsQVMsQlMsRVMsRlMsQ1MsR1MsemthLEpTLEhTLENrYSxMUyxNUyxOUyxQUyxJUyxGa2EsU1MsR2thLFVTLFdTLFhTLEhrYSxZUyxaUywkUyxjVCxiVCxJa2EsZFQsSmthLEtrYSxMa2EsTWthLGdULApmVCxoVCxrVCxsVCxOa2EsbVQsalQsaVQsblQsb1QscFQsT2thLHJULFBrYSxRa2EsdFQsUmthLHZULFNrYSxUa2Esc1QsVWthLFZrYSxXa2EsWGthLFlrYSx4VCx1VCxxVCx3VCx5VCx6VCxBVCxCVCxDVCxEVCwka2EsRVQsSFQsSVQsRlQsY2xhLGJsYSxKVCxLVCxPVCxQVCxlbGEsUVQsVFQsUlQsZmxhLGhsYSxnbGEsaWxhLFdULFhULGpsYSxaVCxrbGEsYVUsYlUsY1UsbGxhLGhVLG5sYSxvbGEsaVUsalUsbFUsbVUsblUsb1UscFUscGxhLHFVLHFsYSxyVSxybGEsc1UsdVUsc2xhLHVsYSx3VSxJVSx4VSxLVSxKVSx2bGEsd2xhLHhsYSx6bGEsTFUseWxhLE9VLE1VLEJsYSxDbGEsRGxhLFBVLEVsYSxGbGEsR2xhLEhsYSxJbGEsSmxhLEtsYSxMbGEsTWxhLE5sYSxRVSxSVSxTVSxVVSxQbGEsWFUsWVUsUWxhLFJsYSxaVSxTbGEsJFUsVWxhLGFWLFRsYTtnamE9ZnVuY3Rpb24oKXtyZXR1cm4hIV8uWk8oKX07CkRRPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoYSxiKSxjKX07RVE9ZnVuY3Rpb24oYSxiKXtpZighYilyZXR1cm4gbnVsbDt2YXIgYz1iP1N0cmluZyhiKS50b1VwcGVyQ2FzZSgpOm51bGw7cmV0dXJuIF8uZ3coYSxmdW5jdGlvbihkKXtyZXR1cm4oIWN8fGQubm9kZU5hbWU9PWMpJiYhMH0sITApfTtGUT1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLmxlZnQ9YTt0aGlzLnRvcD1iO3RoaXMud2lkdGg9Yzt0aGlzLmhlaWdodD1kfTtoamE9ZnVuY3Rpb24oYSxiKXtiP18uU3QoYSwieXRQbGF5ZXJDb250cm9sc0NvbnRhaW5lclJlbmRlcmVkIik6Xy5UdChhLCJ5dFBsYXllckNvbnRyb2xzQ29udGFpbmVyUmVuZGVyZWQiKX07CmlqYT1mdW5jdGlvbigpe18uVmkoKCk9PntpZighXy5CcSgiZnRsIikpe3ZhciBhPV8ucG8oKTtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntzZXRUaW1lb3V0KCgpPT57YSE9PV8ucG8oKXx8Xy5CcSgiZnRsIil8fF8uQXEoImZ0bCIsdm9pZCAwLHZvaWQgMCl9LDApfSl9fSkoKX07amphPWZ1bmN0aW9uKCl7aWYoXy5YeigpKXt2YXIgYT1fLkdoKCJwZnAtbWF3LXBsYXllciIpO2lmKGEpcmV0dXJuIG5ldyBfLndNKGEpfX07R1E9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQ2woKDAsXy5TYWEpKCksYSl9OwpIUT1mdW5jdGlvbigpe2lmKF8ueCgiZW5hYmxlX2F1dG9tb3RpdmVfZm9ybV9mYWN0b3JfY2hlY2siKSlyZXR1cm4gXy53KCJJTk5FUlRVQkVfQ09OVEVYVCIse30pLmNsaWVudD8uY2xpZW50Rm9ybUZhY3Rvcj09PSJBVVRPTU9USVZFX0ZPUk1fRkFDVE9SIjt2YXIgYT1fLncoIklOTkVSVFVCRV9DT05URVhUIix7fSk7cmV0dXJuIGEuY2xpZW50Py5vc05hbWUmJmEuY2xpZW50Lm9zTmFtZT09PSJBbmRyb2lkIEF1dG9tb3RpdmUifTtramE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5xQShhLmVudGl0aWVzLCJkaXNtaXNzU3RhdGUiLGIpfTtJUT1mdW5jdGlvbigpe3JldHVybiBfLlVNKCk9PT0iaGFzaHRhZyJ9O2xqYT1mdW5jdGlvbihhLGIpe3JldHVybiBfLnFBKGEuZW50aXRpZXMsImxvZ29FbnRpdHkiLGIpfTsKSlE9ZnVuY3Rpb24oKXtyZXR1cm4gYT0+e3ZhciBiPV8uTEIoITEpO3RyeXtsZXQgYz1hLmNoaWxkcmVuO18uVUE/Yz9fLmdOKF8uSyhfLnNPLGEsYykpOl8uZ04oXy5LKF8uc08sYSkpOl8uSXAobmV3IF8uWGooImtldG9Ub0MzIGNhbGxlZCBvdXRzaWRlIG9mIGEgcGF0Y2giLHt0YWdOYW1lOl8uc08uWmN9KSl9ZmluYWxseXtfLkxCKGIpfX19OwpLUT1mdW5jdGlvbihhLGIpe2lmKGEucmVxdWVzdEZ1bGxzY3JlZW4pYT1hLnJlcXVlc3RGdWxsc2NyZWVuKGIpO2Vsc2UgaWYoYS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbilhPWEud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKTtlbHNlIGlmKGEubW96UmVxdWVzdEZ1bGxTY3JlZW4pYT1hLm1velJlcXVlc3RGdWxsU2NyZWVuKCk7ZWxzZSBpZihhLm1zUmVxdWVzdEZ1bGxzY3JlZW4pYT1hLm1zUmVxdWVzdEZ1bGxzY3JlZW4oKTtlbHNlIGlmKGEud2Via2l0RW50ZXJGdWxsc2NyZWVuKWE9YS53ZWJraXRFbnRlckZ1bGxzY3JlZW4oKTtlbHNlIHJldHVybiBQcm9taXNlLnJlamVjdChFcnJvcigiSmQiKSk7cmV0dXJuIGEgaW5zdGFuY2VvZiBQcm9taXNlP2E6UHJvbWlzZS5yZXNvbHZlKCl9OwpMUT1mdW5jdGlvbigpe3JldHVybiEhXy5JTyhbImZ1bGxzY3JlZW5FbmFibGVkIiwid2Via2l0RnVsbHNjcmVlbkVuYWJsZWQiLCJtb3pGdWxsU2NyZWVuRW5hYmxlZCIsIm1zRnVsbHNjcmVlbkVuYWJsZWQiXSxkb2N1bWVudCl9O01RPWZ1bmN0aW9uKGEpe3ZhciBiO0xRKCk/Xy5aTygpPT1hJiYoYj1kb2N1bWVudCk6Yj1hO2lmKGImJihhPV8uSU8oWyJleGl0RnVsbHNjcmVlbiIsIndlYmtpdEV4aXRGdWxsc2NyZWVuIiwibW96Q2FuY2VsRnVsbFNjcmVlbiIsIm1zRXhpdEZ1bGxzY3JlZW4iXSxiKSkpe2EuY2FsbChiKWluc3RhbmNlb2YgUHJvbWlzZXx8UHJvbWlzZS5yZXNvbHZlKCk7cmV0dXJufVByb21pc2UucmVzb2x2ZSgpfTtOUT1mdW5jdGlvbihhKXtyZXR1cm4gYS5nZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2siKX07T1E9ZnVuY3Rpb24oYSl7cmV0dXJuKGE9TlEoYSkpPyEhYS5kaXNwbGF5TmFtZTohMX07Cm1qYT1mdW5jdGlvbihhKXtyZXR1cm4gXy52YihhLGI9PmIubGFuZ3VhZ2VDb2RlPT09ImVuIil9O1BRPWZ1bmN0aW9uKGEpe2lmKCFhLmdldE9wdGlvbnMoImNhcHRpb25zIikpcmV0dXJuIiI7YT1fLiRPKGEpO2lmKCFhLmxlbmd0aClyZXR1cm4iIjt2YXIgYj1tamEoYSk7cmV0dXJuIGI/Yi5kaXNwbGF5TmFtZXx8IiI6YVswXS5kaXNwbGF5TmFtZXx8IiJ9OwpRUT1mdW5jdGlvbihhLGIsYyl7aWYoT1EoYSkpXy54KCJtd2ViX2VuYWJsZV9wbGF5ZXJfY2FwdGlvbnNfcGVyc2lzdGVuY2Vfc3RhdGVfbWFjaGluZSIpP2Euc2V0T3B0aW9uKCJjYXB0aW9ucyIsInN0aWNreUxvYWRpbmciLHt1c2VySW5pdGlhdGVkOmN9KTphLnNldE9wdGlvbigiY2FwdGlvbnMiLCJzdGlja3lMb2FkaW5nIix7fSksYS5zZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2siLHt9KTtlbHNle2xldCBkPV8udmIoXy4kTyhhKSxlPT5lLmRpc3BsYXlOYW1lPT09Yik7YS5zZXRPcHRpb24oImNhcHRpb25zIiwidHJhY2siLGQpO18ueCgibXdlYl9lbmFibGVfcGxheWVyX2NhcHRpb25zX3BlcnNpc3RlbmNlX3N0YXRlX21hY2hpbmUiKSYmYS5zZXRPcHRpb24oImNhcHRpb25zIiwic3RpY2t5TG9hZGluZyIse3VzZXJJbml0aWF0ZWQ6Y30pfX07UlE9ZnVuY3Rpb24oKXt3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZ1bGxzY3JlZW5yZXF1ZXN0IikpfTsKbmphPWZ1bmN0aW9uKGEpe3ZhciBbYl09KDAsXy51aWEpKGEpLFtjXT0oMCxfLnZpYSkoYSk7cmV0dXJuW18uTigoKT0+e3ZhciBkPXsuLi5iKCl9O2Qubm90aWZpY2F0aW9uUHJlZmVyZW5jZVRvZ2dsZUJ1dHRvbiYmKGQubm90aWZpY2F0aW9uUHJlZmVyZW5jZVRvZ2dsZUJ1dHRvbj17Li4uYygpLm5vdGlmaWNhdGlvblByZWZlcmVuY2VUb2dnbGVCdXR0b259KTtyZXR1cm4gZH0sdm9pZCAwLCJ1dlM4N2IiKV19O1NRPWZ1bmN0aW9uKGEpe01RKGF8fGRvY3VtZW50LmJvZHkpfTsKb2phPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTthJiYoUlEoKSxLUShhKS5jYXRjaChiPT57aWYoYj8ubWVzc2FnZT8uaW5jbHVkZXMoIkZ1bGxzY3JlZW4gaXMgbm90IHN1cHBvcnRlZCIpfHxiPy5tZXNzYWdlPy5pbmNsdWRlcygiRnVsbHNjcmVlbiBlcnJvciIpfHxiPy5tZXNzYWdlPy5pbmNsdWRlcygiZnVsbHNjcmVlbiBlcnJvciIpKV8uV2koYik7ZWxzZSB0aHJvdyBiO30pKX07VFE9ZnVuY3Rpb24oYSxiKXtfLlpPKCk/KFJRKCksU1EoYikpOkxRKCk/KFJRKCksYj1LUShifHxkb2N1bWVudC5ib2R5LHtuYXZpZ2F0aW9uVUk6ImhpZGUifSksYT8uZHMmJmI/LmNhdGNoKCgpPT5udWxsKSk6b2phKCl9OwpVUT1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gMDt2YXIgYj1hLmdldFByZXNlbnRpbmdQbGF5ZXJUeXBlKCksYz1hLmdldFZpZGVvRGF0YSgpO3JldHVybiBjJiZjLmlzTGl2ZT8oYT1hLmdldFByb2dyZXNzU3RhdGUoYiksYS5zZWVrYWJsZUVuZC1hLnNlZWthYmxlU3RhcnQpOmEuZ2V0RHVyYXRpb24oYil9O3BqYT1mdW5jdGlvbihhLGIsYyl7YXx8Xy5PRSgoKT0+e2I/LnByZXZpb3VzVmlkZW8oYyl9KX07VlE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5nZXRQbGF5ZXJTdGF0ZSgpO2lmKGI9PT0yKXJldHVybiEwO2lmKGIhPT0zKXJldHVybiExO2E9YS5nZXRQbGF5ZXJTdGF0ZU9iamVjdCgpO3JldHVybiFhLmlzQnVmZmVyaW5nJiYhYS5pc1Vuc3RhcnRlZCYmIWEuaXNQbGF5aW5nJiZhLmlzUGF1c2VkfTsKV1E9ZnVuY3Rpb24oYSl7dmFyIGI9YS5nZXRQbGF5ZXJTdGF0ZSgpO2lmKGI9PT0xKXJldHVybiBhLnBhdXNlVmlkZW8oKSwiUExBWUVSX1BBVVNFIjtpZihiPT09LTEpYS5wbGF5VmlkZW8oKTtlbHNlIGlmKGI9PT0yfHxWUShhKSlyZXR1cm4gYS5wbGF5VmlkZW8oKSwiUExBWUVSX1BMQVkifTtYUT1mdW5jdGlvbihhKXthPWEmJmEuZ2V0UGxheWxpc3RJbmRleCYmYS5nZXRQbGF5bGlzdEluZGV4KCk+PTA7cmV0dXJuISFfLlpiKHdpbmRvdy5sb2NhdGlvbi5ocmVmLCJsaXN0Iil8fCEhYX07WlE9ZnVuY3Rpb24oYSl7WVE9YX07cWphPWZ1bmN0aW9uKGEpe3ZhciBiPVlRO2I/KGE9YS50aW1lU3RhbXAsYj1iLnRpbWVTdGFtcCxiPWlzTmFOKGEpfHxpc05hTihiKT8hMTpNYXRoLmFicyhhLWIpPD1fLnlpYSk6Yj0hMTtyZXR1cm4gYn07CnJqYT1mdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldDtpZihiKXt2YXIgYz0hYi5wYXVzZWQ7KHFqYShhKXx8YykmJnNldFRpbWVvdXQoKCk9PntiLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBhdXNlIixaUSk7ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlPT09InZpc2libGUiJiZfLlZNKCl9LF8ueGlhKX19OyRRPWZ1bmN0aW9uKCl7Xy54KCJtd2ViX25ld19mdWxsc2NyZWVuIik/U1EoXy5FSik6Xy5FSiYmKE1RKF8uRUopLF8ueCgibXdlYl9uZXdfZnVsbHNjcmVlbl9yZXNpemUiKXx8Xy5YTSgicmVzaXplIikpfTsKYVI9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpO2EmJihfLmZyJiZfLngoIm13ZWJfaW9zX2Z1bGxzY3JlZW5fcGxheWJhY2tfdHJhbnNpdGlvbiIpJiYoYS5hZGRFdmVudExpc3RlbmVyKCJwYXVzZSIsWlEpLF8uTk0oYSwid2Via2l0ZW5kZnVsbHNjcmVlbiIscmphKSksXy5YTSgiZnVsbHNjcmVlbnJlcXVlc3QiKSxLUShhKS5jYXRjaChiPT57aWYoYj8ubWVzc2FnZT8uaW5jbHVkZXMoIkZ1bGxzY3JlZW4gaXMgbm90IHN1cHBvcnRlZCIpfHxiPy5tZXNzYWdlPy5pbmNsdWRlcygiRnVsbHNjcmVlbiBlcnJvciIpfHxiPy5tZXNzYWdlPy5pbmNsdWRlcygiZnVsbHNjcmVlbiBlcnJvciIpKV8uV2koYik7ZWxzZSB0aHJvdyBiO30pKX07c2phPWZ1bmN0aW9uKCl7dmFyIGE9d2luZG93LnNjcmVlbi5vcmllbnRhdGlvbjtpZihhPy5sb2NrJiYhXy5NRSgpJiYhXy5URSgpKXRyeXthLmxvY2soImxhbmRzY2FwZSIpLmNhdGNoKCgpPT57fSl9Y2F0Y2goYil7fX07CnRqYT1mdW5jdGlvbihhKXtfLlhNKCJmdWxsc2NyZWVucmVxdWVzdCIpO3ZhciBiPUtRKF8uRUose25hdmlnYXRpb25VSToiaGlkZSJ9KTthfHxzamEoKTtfLngoIm13ZWJfbmV3X2Z1bGxzY3JlZW5fcmVzaXplIil8fF8uWE0oInJlc2l6ZSIpO3JldHVybiBifTsKdWphPWZ1bmN0aW9uKGEpe2RvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKCJmdWxsc2NyZWVuLXJlamVjdGVkIik9PT0idHJ1ZSImJmRvY3VtZW50LmJvZHkucmVtb3ZlQXR0cmlidXRlKCJmdWxsc2NyZWVuLXJlamVjdGVkIik7aWYoXy54KCJtd2ViX25ld19mdWxsc2NyZWVuIikpVFEoYSxfLkVKKTtlbHNle3ZhciBiPV8uclAoKSxjO18uZnI/Yz1hUigpOkxRKCk/Yj8kUSgpOmM9dGphKGE/LnpJKTpfLngoIm13ZWJfbmF0aXZlX2NvbnRyb2xfaW5fZmF1eF9mdWxsc2NyZWVuX3NoYXJlZCIpP2M9YVIoKTpfLlhNKCJwbGF5ZXItZnVsbHNjcmVlbi10b2dnbGVkIix7aXNDdXJyZW50bHlGdWxsc2NyZWVuOmJ9KTtjPy5jYXRjaChkPT57aWYoZD8ubWVzc2FnZT8uaW5jbHVkZXMoIkZ1bGxzY3JlZW4gaXMgbm90IHN1cHBvcnRlZCIpfHxkPy5tZXNzYWdlPy5pbmNsdWRlcygiRnVsbHNjcmVlbiBlcnJvciIpfHxkPy5tZXNzYWdlPy5pbmNsdWRlcygiZnVsbHNjcmVlbiBlcnJvciIpKWRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJmdWxsc2NyZWVuLXJlamVjdGVkIiwKInRydWUiKSxfLlhNKCJwbGF5ZXItZnVsbHNjcmVlbi10b2dnbGVkIix7aXNDdXJyZW50bHlGdWxsc2NyZWVuOmJ9KX0pO2E/LmRzJiZjPy5jYXRjaCgoKT0+bnVsbCl9fTtiUj1mdW5jdGlvbihhKXtyZXR1cm57bGlzdEl0ZW1WaWV3TW9kZWw6e3RpdGxlOmEudGl0bGUsc2VsZWN0aW9uVGV4dDphLnNlbGVjdGlvblRleHQsbGVhZGluZ0ltYWdlOntzb3VyY2VzOlt7Y2xpZW50UmVzb3VyY2U6e2ltYWdlTmFtZTphLmljb25UeXBlfX1dfSxpc0Rpc2FibGVkOmEuaXNEaXNhYmxlZCxpc1NlbGVjdGVkOmEuaXNTZWxlY3RlZCxzZWxlY3Rpb25TdHlsZTphLnNlbGVjdGlvblN0eWxlfX19OwpjUj1mdW5jdGlvbihhKXtyZXR1cm57c3dpdGNoTGlzdEl0ZW1WaWV3TW9kZWw6e3RpdGxlOmEudGl0bGUsbGVhZGluZ0ltYWdlOntzb3VyY2VzOlt7Y2xpZW50UmVzb3VyY2U6e2ltYWdlTmFtZTphLmljb25UeXBlfX1dfSxzd2l0Y2hlZE9uQnlEZWZhdWx0OmEua2wsYTExeUxhYmVsU3dpdGNoZWRPbjphLkVrLGExMXlMYWJlbFN3aXRjaGVkT2ZmOmEuRGssaXNEaXNhYmxlZDphLmlzRGlzYWJsZWR9fX07dmphPWZ1bmN0aW9uKGEpe3JldHVybiBhLnNob3J0cy5pc0Z1bGxzY3JlZW59O3dqYT1mdW5jdGlvbihhKXtyZXR1cm4gYS5zaG9ydHMubWp9Owp4amE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmxlbmd0aDtzd2l0Y2goYyl7Y2FzZSAwOnJldHVybiIiO2Nhc2UgMTpyZXR1cm4gU3RyaW5nKGJbMF0pO2Nhc2UgMjpyZXR1cm4gYS5ELnJlcGxhY2UoInswfSIsU3RyaW5nKGJbMF0pKS5yZXBsYWNlKCJ7MX0iLFN0cmluZyhiWzFdKSl9dmFyIGQ9YS5CLnJlcGxhY2UoInswfSIsU3RyaW5nKGJbMF0pKS5yZXBsYWNlKCJ7MX0iLFN0cmluZyhiWzFdKSk7Zm9yKGxldCBlPTI7ZTxjLTE7KytlKWQ9YS52LnJlcGxhY2UoInswfSIsZCkucmVwbGFjZSgiezF9IixTdHJpbmcoYltlXSkpO3JldHVybiBhLm8ucmVwbGFjZSgiezB9IixkKS5yZXBsYWNlKCJ7MX0iLFN0cmluZyhiW2MtMV0pKX07CmhSPWZ1bmN0aW9uKCl7dGhpcy5LPW51bGw7dGhpcy5WZD10aGlzLk1hPXRoaXMuUWE9ITE7dGhpcy5aPTQwO3RoaXMubz0xO3RoaXMuaGE9MDt0aGlzLmo9Mzt0aGlzLnlhPXRoaXMuQj0wO3RoaXMuRWI9ITE7dGhpcy5nYT10aGlzLk09IiI7dGhpcy5EPWRSLmFvO3RoaXMuVT0iIjt0aGlzLnY9MTt0aGlzLlk9ITE7dGhpcy5JPVtdO3RoaXMuRmE9dGhpcy5mYz0hMTt0aGlzLm9hPTA7aWYoZVIpZlIodGhpcyk7ZWxzZXt0aGlzLks9bnVsbDt2YXIgYT1kUi5ndDtsZXQgZT1bMF07dGhpcy5NPWdSKHRoaXMsYSxlKTt2YXIgYj1lWzBdO2xldCBmPS0xLGg9MDt2YXIgYz0wLGQ9MDtsZXQgaz0tMSxsPWEubGVuZ3RoO2ZvcihsZXQgbT0hMDtlWzBdPGwmJm07ZVswXSsrKXN3aXRjaChhLmNoYXJBdChlWzBdKSl7Y2FzZSAiIyI6Yz4wP2QrKzpoKys7az49MCYmZjwwJiZrKys7YnJlYWs7Y2FzZSAiMCI6aWYoZD4wKXRocm93IEVycm9yKCJWZGAiK2EpO2MrKztrPj0wJiZmPDAmJmsrKzticmVhazsKY2FzZSAiLCI6az4wJiZ0aGlzLkkucHVzaChrKTtrPTA7YnJlYWs7Y2FzZSAiLiI6aWYoZj49MCl0aHJvdyBFcnJvcigiV2RgIithKTtmPWgrYytkO2JyZWFrO2Nhc2UgIkUiOmlmKHRoaXMuRmEpdGhyb3cgRXJyb3IoIlhkYCIrYSk7dGhpcy5GYT0hMDt0aGlzLnlhPTA7ZVswXSsxPGwmJmEuY2hhckF0KGVbMF0rMSk9PSIrIiYmKGVbMF0rKyx0aGlzLkViPSEwKTtmb3IoO2VbMF0rMTxsJiZhLmNoYXJBdChlWzBdKzEpPT0iMCI7KWVbMF0rKyx0aGlzLnlhKys7aWYoaCtjPDF8fHRoaXMueWE8MSl0aHJvdyBFcnJvcigiWWRgIithKTttPSExO2JyZWFrO2RlZmF1bHQ6ZVswXS0tLG09ITF9Yz09MCYmaD4wJiZmPj0wJiYoYz1mLGM9PTAmJmMrKyxkPWgtYyxoPWMtMSxjPTEpO2lmKGY8MCYmZD4wfHxmPj0wJiYoZjxofHxmPmgrYyl8fGs9PTApdGhyb3cgRXJyb3IoIlpkYCIrYSk7ZD1oK2MrZDt0aGlzLmo9Zj49MD9kLWY6MDtmPj0wJiYodGhpcy5CPWgrYy1mLHRoaXMuQjwwJiYodGhpcy5CPQowKSk7dGhpcy5vPShmPj0wP2Y6ZCktaDt0aGlzLkZhJiYodGhpcy5aPWgrdGhpcy5vLHRoaXMuaj09MCYmdGhpcy5vPT0wJiYodGhpcy5vPTEpKTt0aGlzLkkucHVzaChNYXRoLm1heCgwLGspKTt0aGlzLmZjPWY9PTB8fGY9PWQ7Yj1lWzBdLWI7dGhpcy5nYT1nUih0aGlzLGEsZSk7ZVswXTxhLmxlbmd0aCYmYS5jaGFyQXQoZVswXSk9PSI7Ij8oZVswXSsrLHRoaXMudiE9MSYmKHRoaXMuWT0hMCksdGhpcy5EPWdSKHRoaXMsYSxlKSxlWzBdKz1iLHRoaXMuVT1nUih0aGlzLGEsZSkpOih0aGlzLkQrPXRoaXMuTSx0aGlzLlUrPXRoaXMuZ2EpfX07CmZSPWZ1bmN0aW9uKGEpe3ZhciBiPXtub3RhdGlvbjoic3RhbmRhcmQiLG1pbmltdW1JbnRlZ2VyRGlnaXRzOk1hdGgubWluKDIxLE1hdGgubWF4KDEsYS5vKSl9O2EuRWImJihiLnNpZ25EaXNwbGF5PSJhbHdheXMiKTthLlFhPyhiLm1pbmltdW1TaWduaWZpY2FudERpZ2l0cz0xLGIubWF4aW11bVNpZ25pZmljYW50RGlnaXRzPU1hdGgubWF4KDEsTWF0aC5taW4oMjEsYS5oYSkpKTphLk1hJiYoYi5taW5pbXVtRnJhY3Rpb25EaWdpdHM9TWF0aC5tYXgoMCxhLkIpLGIubWF4aW11bUZyYWN0aW9uRGlnaXRzPU1hdGgubWluKDIwLE1hdGgubWF4KDAsYS5qKSkpO2Iuc3R5bGU9ImRlY2ltYWwiO3RyeXtsZXQgYzsoYz0iZW4tVVMiLnJlcGxhY2UoIl8iLCItIikpJiZjIGluIGlSJiYoYi5udW1iZXJpbmdTeXN0ZW09aVJbY10pO2EuSz1uZXcgSW50bC5OdW1iZXJGb3JtYXQoYyxiKX1jYXRjaChjKXt0aHJvdyBhLks9bnVsbCxFcnJvcigiUmRgIitjKTt9alI9YS5WZD1hLlFhPWEuTWE9ITF9OwptUj1mdW5jdGlvbihhLGIpe3ZhciBjPWtSKGIsYS5qKTthLmhhPjAmJihjPWxSKGMsYS5oYSxhLmopKTtjPU1hdGgucm91bmQoYyk7aWYoaXNGaW5pdGUoYykpe3ZhciBkPU1hdGguZmxvb3Ioa1IoYywtYS5qKSk7Yz1NYXRoLmZsb29yKGMta1IoZCxhLmopKTtpZihjPDB8fGM+PWtSKDEsYS5qKSlkPU1hdGgucm91bmQoYiksYz0wfWVsc2UgZD1iLGM9MDtyZXR1cm57aW50VmFsdWU6ZCxodzpjfX07Cm5SPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGEuQj5hLmopdGhyb3cgRXJyb3IoIlNkIik7ZHx8KGQ9W10pO2I9bVIoYSxiKTt2YXIgZT1iLmludFZhbHVlLGY9Yi5odyxoPWEuQj4wfHxmPjB8fCExO2I9YS5CO2gmJihiPWEuQik7Zm9yKHZhciBrPSIiLGw9ZTtsPjFFMjA7KWs9IjAiK2ssbD1NYXRoLnJvdW5kKGtSKGwsLTEpKTtrPWwrazt2YXIgbT1kUi5WbjtsPWRSLkJrLmNvZGVQb2ludEF0KDApO3ZhciBuPWsubGVuZ3RoLHA9MDtpZihlPjB8fGM+MCl7Zm9yKGU9bjtlPGM7ZSsrKWQucHVzaChTdHJpbmcuZnJvbUNvZGVQb2ludChsKSk7aWYoYS5JLmxlbmd0aD49Milmb3IoYz0xO2M8YS5JLmxlbmd0aDtjKyspcCs9YS5JW2NdO2M9bi1wO2lmKGM+MCl7ZT1hLkk7cD1uPTA7dmFyIHI9ZFIucmssdD1rLmxlbmd0aDtmb3IobGV0IHo9MDt6PHQ7eisrKWlmKGQucHVzaChTdHJpbmcuZnJvbUNvZGVQb2ludChsK051bWJlcihrLmNoYXJBdCh6KSkpKSx0LXo+MSl7dmFyIHY9ZVtwXTtpZih6PApjKXtsZXQgRT1jLXo7KHY9PT0xfHx2PjAmJkUldj09PTEpJiZkLnB1c2gocil9ZWxzZSBwPGUubGVuZ3RoJiYoej09PWM/cCs9MTp2PT09ei1jLW4rMSYmKGQucHVzaChyKSxuKz12LHArPTEpKX19ZWxzZXtjPWs7az1hLkk7ZT1kUi5yazt2PWMubGVuZ3RoO3I9W107Zm9yKG49ay5sZW5ndGgtMTtuPj0wJiZ2PjA7bi0tKXtwPWtbbl07Zm9yKHQ9MDt0PHAmJnYtdC0xPj0wO3QrKylyLnB1c2goU3RyaW5nLmZyb21Db2RlUG9pbnQobCtOdW1iZXIoYy5jaGFyQXQodi10LTEpKSkpO3YtPXA7dj4wJiZyLnB1c2goZSl9ZC5wdXNoLmFwcGx5KGQsci5yZXZlcnNlKCkpfX1lbHNlIGh8fGQucHVzaChTdHJpbmcuZnJvbUNvZGVQb2ludChsKSk7KGEuZmN8fGgpJiZkLnB1c2gobSk7Zj1TdHJpbmcoZik7aD1mLnNwbGl0KCJlKyIpO2gubGVuZ3RoPT0yJiYoZj1TdHJpbmcobFIocGFyc2VGbG9hdChoWzBdKSxhLmhhLDEpKSxmPWYucmVwbGFjZSgiLiIsIiIpLGYrPSIwIi5yZXBlYXQocGFyc2VJbnQoaFsxXSwKMTApLWYubGVuZ3RoKzEpKTthLmorMT5mLmxlbmd0aCYmKGY9IjEiKyIwIi5yZXBlYXQoYS5qLWYubGVuZ3RoKStmKTtmb3IoYT1mLmxlbmd0aDtmLmNoYXJBdChhLTEpPT0iMCImJmE+YisxOylhLS07Zm9yKGI9MTtiPGE7YisrKWQucHVzaChTdHJpbmcuZnJvbUNvZGVQb2ludChsK051bWJlcihmLmNoYXJBdChiKSkpKX07b1I9ZnVuY3Rpb24oYSxiLGMpe2MucHVzaChkUi5Zbik7YjwwPyhiPS1iLGMucHVzaChkUi5hbykpOmEuRWImJmMucHVzaChkUi5XdCk7Yj0iIitiO3ZhciBkPWRSLkJrO2ZvcihsZXQgZT1iLmxlbmd0aDtlPGEueWE7ZSsrKWMucHVzaChkKTthPWQuY29kZVBvaW50QXQoMCkteWphO2ZvcihkPTA7ZDxiLmxlbmd0aDtkKyspYy5wdXNoKFN0cmluZy5mcm9tQ29kZVBvaW50KGErYi5jb2RlUG9pbnRBdChkKSkpfTsKcFI9ZnVuY3Rpb24oYSl7YT1hLmNvZGVQb2ludEF0KDApO2lmKDQ4PD1hJiZhPDU4KXJldHVybiBhLTQ4O3ZhciBiPWRSLkJrLmNvZGVQb2ludEF0KDApO3JldHVybiBiPD1hJiZhPGIrMTA/YS1iOi0xfTsKZ1I9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0iIixlPSExLGY9Yi5sZW5ndGg7Y1swXTxmO2NbMF0rKyl7dmFyIGg9Yi5jaGFyQXQoY1swXSk7aWYoaD09IiciKWNbMF0rMTxmJiZiLmNoYXJBdChjWzBdKzEpPT0iJyI/KGNbMF0rKyxkKz0iJyIpOmU9IWU7ZWxzZSBpZihlKWQrPWg7ZWxzZSBzd2l0Y2goaCl7Y2FzZSAiIyI6Y2FzZSAiMCI6Y2FzZSAiLCI6Y2FzZSAiLiI6Y2FzZSAiOyI6cmV0dXJuIGQ7Y2FzZSAiXHUwMGE0IjpjWzBdKzE8ZiYmYi5jaGFyQXQoY1swXSsxKT09Ilx1MDBhNCI/KGNbMF0rKyxkKz1kUi5Xbik6KGg9ZFIuV24sZCs9aCBpbiBxUj9xUltoXVsxXTpoKTticmVhaztjYXNlICIlIjppZighYS5ZJiZhLnYhPTEpdGhyb3cgRXJyb3IoIlRkIik7aWYoYS5ZJiZhLnYhPTEwMCl0aHJvdyBFcnJvcigiVWQiKTthLnY9MTAwO2EuWT0hMTtkKz1kUi5qbzticmVhaztjYXNlICJcdTIwMzAiOmlmKCFhLlkmJmEudiE9MSl0aHJvdyBFcnJvcigiVGQiKTtpZihhLlkmJgphLnYhPTFFMyl0aHJvdyBFcnJvcigiVWQiKTthLnY9MUUzO2EuWT0hMTtkKz1kUi5rbzticmVhaztkZWZhdWx0OmQrPWh9fXJldHVybiBkfTt0Uj1mdW5jdGlvbihhLGIpe2E9YS5vYT09MT9yUi5TbjpyUi5WczthPT1udWxsJiYoYT1yUi5Tbik7aWYoYjwzKXJldHVybiBzUjtiPU1hdGgubWluKDE0LGIpO3ZhciBjPWFba1IoMSxiKV07Zm9yKC0tYjshYyYmYj49MzspYz1hW2tSKDEsYildLGItLTtpZighYylyZXR1cm4gc1I7Yz1jLm90aGVyO3ZhciBkPWE9IiIsZT1jLmluZGV4T2YoIjsiKTtlPj0wJiYoYz1jLnN1YnN0cmluZygwLGUpLGU9Yy5zdWJzdHJpbmcoZSsxKSkmJihkPS8oW14wXSopKDArKSguKikvLmV4ZWMoZSksYT1kWzFdLGQ9ZFszXSk7cmV0dXJuIGMmJmMhPSIwIj8oYz0vKFteMF0qKSgwKykoLiopLy5leGVjKGMpKT97cGw6YisxLShjWzJdLmxlbmd0aC0xKSx3bTphLHhtOmQscHJlZml4OmNbMV0sc3VmZml4OmNbM119OnNSOnNSfTsKdVI9ZnVuY3Rpb24oYSl7aWYoIWlzRmluaXRlKGEpKXJldHVybiBhPjA/YTowO2Zvcih2YXIgYj0wOyhhLz0xMCk+PTE7KWIrKztyZXR1cm4gYn07a1I9ZnVuY3Rpb24oYSxiKXtpZighYXx8IWlzRmluaXRlKGEpfHxiPT0wKXJldHVybiBhO2E9U3RyaW5nKGEpLnNwbGl0KCJlIik7cmV0dXJuIHBhcnNlRmxvYXQoYVswXSsiZSIrKHBhcnNlSW50KGFbMV18fDAsMTApK2IpKX07dlI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSYmaXNGaW5pdGUoYSk/a1IoTWF0aC5yb3VuZChrUihhLGIpKSwtYik6YX07bFI9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhKXJldHVybiBhO2I9Yi11UihhKS0xO3JldHVybiBiPC1jP3ZSKGEsLWMpOnZSKGEsYil9O3pqYT1mdW5jdGlvbihhKXtyZXR1cm4gYSUxMD09MSYmYSUxMDAhPTExPyJvbmUiOmElMTA9PTImJmElMTAwIT0xMj8idHdvIjphJTEwPT0zJiZhJTEwMCE9MTM/ImZldyI6Im90aGVyIn07CkFqYT1mdW5jdGlvbihhLGIpe3ZhciBjPWF8MDtpZih2b2lkIDA9PT1iKXtiPU1hdGg7dmFyIGQ9Yi5taW47bGV0IGU9YSsiIixmPWUuaW5kZXhPZigiLiIpO2I9ZC5jYWxsKGIsZj09PS0xPzA6ZS5sZW5ndGgtZi0xLDMpfWQ9TWF0aC5wb3coMTAsYik7YT17RkI6YixmOihhKmR8MCklZH07cmV0dXJuIGM9PTEmJmEuRkI9PTA/Im9uZSI6Im90aGVyIn07elI9ZnVuY3Rpb24oYSl7dGhpcy52PWE7dGhpcy5vPXRoaXMuaj10aGlzLkQ9bnVsbDthPWRSO3ZhciBiPXJSO2lmKHdSIT09YXx8eFIhPT1iKXdSPWEseFI9Yix5Uj1uZXcgaFI7dGhpcy5LPXlSfTsKQVI9ZnVuY3Rpb24oYSxiLGMsZCxlKXtmb3IobGV0IHA9MDtwPGIubGVuZ3RoO3ArKyl7dmFyIGY9dm9pZCAwO3N3aXRjaChiW3BdLnR5cGUpe2Nhc2UgNDplLnB1c2goYltwXS52YWx1ZSk7YnJlYWs7Y2FzZSAzOmY9YltwXS52YWx1ZTt2YXIgaD1hLGs9ZSxsPWNbZl07bD09PXZvaWQgMD9rLnB1c2goIlVuZGVmaW5lZCBwYXJhbWV0ZXIgLSAiK2YpOihoLmoucHVzaChsKSxrLnB1c2goaC5CKGguaikpKTticmVhaztjYXNlIDI6Zj1iW3BdLnZhbHVlO2g9YTtrPWM7bD1kO3ZhciBtPWUsbj1mLnNpO2tbbl09PT12b2lkIDA/bS5wdXNoKCJVbmRlZmluZWQgcGFyYW1ldGVyIC0gIituKToobj1mW2tbbl1dLG49PT12b2lkIDAmJihuPWYub3RoZXIpLEFSKGgsbixrLGwsbSkpO2JyZWFrO2Nhc2UgMDpmPWJbcF0udmFsdWU7QlIoYSxmLGMsQ1IsZCxlKTticmVhaztjYXNlIDE6Zj1iW3BdLnZhbHVlLEJSKGEsZixjLEJqYSxkLGUpfX19OwpCUj1mdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGg9Yi5zaSxrPWIuR28sbD0rY1toXTtpc05hTihsKT9mLnB1c2goIlVuZGVmaW5lZCBvciBpbnZhbGlkIHBhcmFtZXRlciAtICIraCk6KGs9bC1rLGg9YltjW2hdXSxoPT09dm9pZCAwJiYoZD1kKE1hdGguYWJzKGspKSxoPWJbZF0saD09PXZvaWQgMCYmKGg9Yi5vdGhlcikpLGI9W10sQVIoYSxoLGMsZSxiKSxjPWIuam9pbigiIiksZT9mLnB1c2goYyk6KGE9YS5LLmZvcm1hdChrKSxmLnB1c2goYy5yZXBsYWNlKC8jL2csYSkpKSl9O0VqYT1mdW5jdGlvbihhLGIpe3ZhciBjPWEuRCxkPWEuQi5iaW5kKGEpO2I9Yi5yZXBsYWNlKENqYSxmdW5jdGlvbigpe2MucHVzaCgiJyIpO3JldHVybiBkKGMpfSk7cmV0dXJuIGI9Yi5yZXBsYWNlKERqYSxmdW5jdGlvbihlLGYpe2MucHVzaChmKTtyZXR1cm4gZChjKX0pfTsKRFI9ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPVtdLGQ9W10sZT0vW3t9XS9nO2UubGFzdEluZGV4PTA7Zm9yKHZhciBmO2Y9ZS5leGVjKGEpOyl7bGV0IGg9Zi5pbmRleDtmWzBdPT0ifSI/KGMucG9wKCksYy5sZW5ndGg9PTAmJihmPXt0eXBlOjF9LGYudmFsdWU9YS5zdWJzdHJpbmcoYixoKSxkLnB1c2goZiksYj1oKzEpKTooYy5sZW5ndGg9PTAmJihiPWEuc3Vic3RyaW5nKGIsaCksYiE9IiImJmQucHVzaCh7dHlwZTowLHZhbHVlOmJ9KSxiPWgrMSksYy5wdXNoKCJ7IikpfWE9YS5zdWJzdHJpbmcoYik7YSE9IiImJmQucHVzaCh7dHlwZTowLHZhbHVlOmF9KTtyZXR1cm4gZH07CkhSPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107Yj1EUihiKTtmb3IobGV0IGU9MDtlPGIubGVuZ3RoO2UrKyl7bGV0IGY9e307aWYoMD09YltlXS50eXBlKWYudHlwZT00LGYudmFsdWU9YltlXS52YWx1ZTtlbHNlIGlmKDE9PWJbZV0udHlwZSl7dmFyIGQ9YltlXS52YWx1ZTtzd2l0Y2goRVIudGVzdChkKT8wOkZSLnRlc3QoZCk/MTpHUi50ZXN0KGQpPzI6L15ccypcdytccyovLnRlc3QoZCk/Mzo1KXtjYXNlIDI6Zi50eXBlPTI7Zi52YWx1ZT1GamEoYSxiW2VdLnZhbHVlKTticmVhaztjYXNlIDA6Zi50eXBlPTA7Zi52YWx1ZT1HamEoYSxiW2VdLnZhbHVlKTticmVhaztjYXNlIDE6Zi50eXBlPTE7Zi52YWx1ZT1IamEoYSxiW2VdLnZhbHVlKTticmVhaztjYXNlIDM6Zi50eXBlPTMsZi52YWx1ZT1iW2VdLnZhbHVlfX1jLnB1c2goZil9cmV0dXJuIGN9OwpGamE9ZnVuY3Rpb24oYSxiKXt2YXIgYz0iIjtiPWIucmVwbGFjZShHUixmdW5jdGlvbihmLGgpe2M9aDtyZXR1cm4iIn0pO3ZhciBkPXt9O2Quc2k9YztiPURSKGIpO2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7KXtsZXQgZj1iW2VdLnZhbHVlO2UrKztsZXQgaDsxPT1iW2VdLnR5cGUmJihoPUhSKGEsYltlXS52YWx1ZSkpO2RbZi5yZXBsYWNlKC9ccy9nLCIiKV09aDtlKyt9cmV0dXJuIGR9O0dqYT1mdW5jdGlvbihhLGIpe3ZhciBjPSIiLGQ9MDtiPWIucmVwbGFjZShFUixmdW5jdGlvbihoLGssbCl7Yz1rO2wmJihkPXBhcnNlSW50KGwsMTApKTtyZXR1cm4iIn0pO3ZhciBlPXt9O2Uuc2k9YztlLkdvPWQ7Yj1EUihiKTtmb3IodmFyIGY9MDtmPGIubGVuZ3RoOyl7bGV0IGg9YltmXS52YWx1ZTtmKys7bGV0IGs7MT09YltmXS50eXBlJiYoaz1IUihhLGJbZl0udmFsdWUpKTtlW2gucmVwbGFjZSgvXHMqKD86PSk/KFx3KylccyovLCIkMSIpXT1rO2YrK31yZXR1cm4gZX07CkhqYT1mdW5jdGlvbihhLGIpe3ZhciBjPSIiO2I9Yi5yZXBsYWNlKEZSLGZ1bmN0aW9uKGYsaCl7Yz1oO3JldHVybiIifSk7dmFyIGQ9e307ZC5zaT1jO2QuR289MDtiPURSKGIpO2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7KXtsZXQgZj1iW2VdLnZhbHVlO2UrKztsZXQgaDsxPT1iW2VdLnR5cGUmJihoPUhSKGEsYltlXS52YWx1ZSkpO2RbZi5yZXBsYWNlKC9ccyooPzo9KT8oXHcrKVxzKi8sIiQxIildPWg7ZSsrfXJldHVybiBkfTtJamE9ZnVuY3Rpb24oYSxiKXtzd2l0Y2goYil7ZGVmYXVsdDpjYXNlICJ5ZWFycyI6cmV0dXJuIGEuai5ZRUFSO2Nhc2UgIm1vbnRocyI6cmV0dXJuIGEuai5NT05USDtjYXNlICJ3ZWVrcyI6cmV0dXJuIGEuai5XRUVLO2Nhc2UgImRheXMiOnJldHVybiBhLmouREFZO2Nhc2UgImhvdXJzIjpyZXR1cm4gYS5qLkhPVVI7Y2FzZSAibWludXRlcyI6cmV0dXJuIGEuai5NSU5VVEU7Y2FzZSAic2Vjb25kcyI6cmV0dXJuIGEuai5TRUNPTkR9fTsKSVI9ZnVuY3Rpb24oYSxiLGMpe2E9SWphKGEsYyk7cmV0dXJuKGE9YS5MT05HIT12b2lkIDA/YS5MT05HOmEuTkFSUk9XIT12b2lkIDA/YS5OQVJST1c6YS5TSE9SVCk/KG5ldyB6Uigie0RVUkFUSU9OX1ZBTFVFLHBsdXJhbCwiK2ErIn0iKSkuZm9ybWF0KHtEVVJBVElPTl9WQUxVRTpifSk6IiJ9O0pSPWZ1bmN0aW9uKCl7Xy5IeigpO3JldHVybiFfLkN6KDE0MSkmJl8udygiQVVUT05BVl9PRkZfQllfREVGQVVMVCIpPyExOiFfLkN6KDE0MCl9O0pqYT1mdW5jdGlvbigpe2lmKCFLUil7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BsYXllci5za2VsZXRvbiIpO2EmJihfLkRkKGEpLEtSPSEwKX19O0xSPWZ1bmN0aW9uKGEsYixjLGQ9ITEpe2I9bmV3IEtqYShifHxhLGN8fGEpO3JldHVybnt4OmEueCtMamEoYixkKSouMix5OmEueStNamEoYixkKSouMn19O0xqYT1mdW5jdGlvbihhLGI9ITEpe3JldHVybiBiP2EuaiotMTphLmp9OwpNamE9ZnVuY3Rpb24oYSxiPSExKXtyZXR1cm4gYj9hLm8qLTE6YS5vfTtNUj1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4hMTt2YXIgYj1hLmVycm9yU2NyZWVuPy5wbGF5ZXJMZWdhY3lEZXNrdG9wWXBjVHJhaWxlclJlbmRlcmVyPz9hLmVycm9yU2NyZWVuPy55cGNUcmFpbGVyUmVuZGVyZXI7cmV0dXJuIShhLnN0YXR1cyE9PSJPSyImJmEuc3RhdHVzIT09IkxJVkVfU1RSRUFNX09GRkxJTkUiKXx8ISFifTsKUWphPWZ1bmN0aW9uKHtyZW5kZXJlcjphLHN1YnNjcmliZWQ6Yixpc092ZXJsYXk6YyxzdG9wUHJvcGFnYXRpb246ZH0pe3ZhciBlPU5qYShhLGIpO2MmJihlLnN0eWxlPSJvdmVybGF5Iik7YTpzd2l0Y2goYS5zdHlsZT8uc3R5bGVUeXBlKXtjYXNlICJDT01QQUNUX0dSQVkiOmNhc2UgIkNPTVBBQ1RfUkVEIjpjPXtzaXplOiJTIn07YnJlYWsgYTtkZWZhdWx0OmM9e3NpemU6Ik0ifX1jPXsuLi5jfTt2YXIgZj1PamEoYSxiKTt2YXIgaD0oaD1iP2Euc3Vic2NyaWJlZEJ1dHRvblRleHQ6YS51bnN1YnNjcmliZWRCdXR0b25UZXh0KT9fLkFGKGgpOnZvaWQgMDtyZXR1cm57Li4uZSwuLi5jLGZvY3VzZWQ6ITEsdG9nZ2xlZDpiLGFjY2Vzc2liaWxpdHlMYWJlbDpmLFdhOmgsb25UYXA6UGphKGEsYixkKX19OwpQamE9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBkPT57dmFyIGU9UmphKGEsYik7aWYoZSl7bGV0IGY9e3N1YnNjcmliZUJ1dHRvblJlbmRlcmVyOmF9O18uZEsoZSx7Zm9ybTp7Y3VycmVudERhdGE6Zixzb3VyY2VEYXRhOmYsZXZlbnQ6ZH19KX1jJiZkLnN0b3BQcm9wYWdhdGlvbigpfX07UmphPWZ1bmN0aW9uKGEsYil7aWYoYS5zaWduSW5FbmRwb2ludCYmIV8ueCgid2ViX3N1YnNjcmliZV9zaWduX2luX2VuZHBvaW50X2tpbGxzd2l0Y2giKSlyZXR1cm4gYS5zaWduSW5FbmRwb2ludDtpZihiKXtpZihhLnNlcnZpY2VFbmRwb2ludHMpcmV0dXJuIGEuc2VydmljZUVuZHBvaW50c1sxXTtpZihhLm9uVW5zdWJzY3JpYmVFbmRwb2ludHMpcmV0dXJuIGEub25VbnN1YnNjcmliZUVuZHBvaW50c1swXX1lbHNle2lmKGEuc2VydmljZUVuZHBvaW50cylyZXR1cm4gYS5zZXJ2aWNlRW5kcG9pbnRzWzBdO2lmKGEub25TdWJzY3JpYmVFbmRwb2ludHMpcmV0dXJuIGEub25TdWJzY3JpYmVFbmRwb2ludHNbMF19fTsKT2phPWZ1bmN0aW9uKGEsYil7Yj1iP2EudW5zdWJzY3JpYmVBY2Nlc3NpYmlsaXR5Py5hY2Nlc3NpYmlsaXR5RGF0YT8ubGFiZWw6YS5zdWJzY3JpYmVBY2Nlc3NpYmlsaXR5Py5hY2Nlc3NpYmlsaXR5RGF0YT8ubGFiZWw7cmV0dXJuIGEubG9uZ1N1YnNjcmliZXJDb3VudFRleHQ/W2IsXy5hTihhLmxvbmdTdWJzY3JpYmVyQ291bnRUZXh0KV0uZmlsdGVyKGM9PmMpLmpvaW4oIiAiKTpifTtOUj1mdW5jdGlvbihhLGIpe3JldHVybiBifHxhPy5pc0NoYW5uZWxEZWxlZ2F0ZT8iZGlzYWJsZWQiOiJhY3RpdmUifTsKTmphPWZ1bmN0aW9uKGEsYil7c3dpdGNoKGEuc3R5bGU/LnN0eWxlVHlwZSl7Y2FzZSAiQ09NUEFDVF9HUkFZIjpyZXR1cm57c3R5bGU6Im1vbm8iLHR5cGU6InRvbmFsIixzdGF0ZTpOUihhKX07Y2FzZSAiTUVESVVNX0dSQVkiOnJldHVybntzdHlsZToibW9ubyIsdHlwZToidG9uYWwiLHN0YXRlOk5SKGEpfTtjYXNlICJWSVNJQkxZX0RJU0FCTEVEIjpyZXR1cm57c3R5bGU6Im1vbm8iLHR5cGU6InRleHQiLHN0YXRlOk5SKGEsITApfTtjYXNlICJPVkVSTEFZIjpyZXR1cm4gYj97c3R5bGU6Im92ZXJsYXkiLHR5cGU6InRvbmFsIixzdGF0ZTpOUihhKX06e3N0eWxlOiJvdmVybGF5Iix0eXBlOiJmaWxsZWQiLHN0YXRlOk5SKGEpfTtkZWZhdWx0OnJldHVybiBiP3tzdHlsZToibW9ubyIsdHlwZToidG9uYWwiLHN0YXRlOk5SKGEpfTp7c3R5bGU6Im1vbm8iLHR5cGU6ImZpbGxlZCIsc3RhdGU6TlIoYSl9fX07ClBSPWZ1bmN0aW9uKGEpe3ZhciBiPWEuaG91cnN8fDA7dmFyIGM9YS5taW51dGVzfHwwLGQ9YS5zZWNvbmRzfHwwO2I9ZCtjKjYwK2IqMzYwMCsoYS5kYXlzfHwwKSo4NjQwMCsoYS53ZWVrc3x8MCkqNjA0ODAwKyhhLm1vbnRoc3x8MCkqMjYyOTgwMCsoYS55ZWFyc3x8MCkqMzE1NTc2MDA7Yjw9MD9iPXtob3VyczowLG1pbnV0ZXM6MCxzZWNvbmRzOjB9OihhPWIsYj1NYXRoLmZsb29yKGEvMzYwMCksYSU9MzYwMCxjPU1hdGguZmxvb3IoYS82MCksZD1NYXRoLmZsb29yKGElNjApLGI9e2hvdXJzOmIsbWludXRlczpjLHNlY29uZHM6ZH0pO3ZhciB7aG91cnM6ZT0wLG1pbnV0ZXM6Zj0wLHNlY29uZHM6aD0wfT1iO2I9W107aWYoZT4wKXtjPU9SKCkuZm9ybWF0KHtob3VyczplfSk7aWYoISJiZSBiZyBlcyBldCBodSBpdCBrYSBsdiBwbCBwdC1QVCBzbCBzcSIuc3BsaXQoIiAiKS5pbmNsdWRlcyhaKXx8ZT45OTk5KXthPWMucmVwbGFjZTtkPWUudG9TdHJpbmcoKTt2YXIgaz0obmV3IEludGwuTnVtYmVyRm9ybWF0KCJlbi11LW51LWxhdG4iKSkuZm9ybWF0KGUpOwp2YXIgbD1bImZyIl07bGV0IG09ImF6IGJzIGNhIGRhIGRlIGVsIGVzIGV1IGdsIGhyIGlkIGlzIGl0IGttIGxvIG1rIG5sIHB0LUJSIHJvIHNsIHNyIHNyLUxhdG4gdHIgdmkiLnNwbGl0KCIgIik7az0iYWYgYmUgYmcgY3MgZXQgZmkgZnItQ0EgaHUgaHkga2Ega2sga3kgbHQgbHYgbm8gcGwgcHQtUFQgcnUgc2sgc3Egc3YgdWsgdXoiLnNwbGl0KCIgIikuaW5jbHVkZXMoWik/ay5yZXBsYWNlKCIsIiwiXHUwMGEwIik6bC5pbmNsdWRlcyhaKT9rLnJlcGxhY2UoIiwiLCJcdTIwMmYiKTptLmluY2x1ZGVzKFopP2sucmVwbGFjZSgiLCIsIi4iKTprO2M9YS5jYWxsKGMsZCxrKTtaPT09ImttIiYmKGM9Yy5yZXBsYWNlKCIuIiwiLCIpKX1iLnB1c2goYyl9Zj4wJiZiLnB1c2goT1IoKS5mb3JtYXQoe21pbnV0ZXM6Zn0pKTsoaD4wfHxlPT09MCYmZj09PTApJiZiLnB1c2goT1IoKS5mb3JtYXQoe3NlY29uZHM6aH0pKTtjPSJiZSBndSBqYSBrayBrbSBrbyBtbiBydSB0ciB1eiB6aC1ISyB6aC1UVyIuc3BsaXQoIiAiKTsKYT1aPT0iYW0iPyJ7MH1cdTEzNjMgIjpaPT0iZmEiPyJ7MH1cdTA2MGNcdTIwMGYgIjpaPT0ibXkiPyJ7MH0gLSAiOlo9PSJ0aCI/InswfSAiOlo9PSJ1ciI/InswfVx1MDYwYyAiOlo9PSJhciJ8fFo9PSJhci1YQiI/InswfSBcdTA2NDgiOlo9PSJqYSJ8fFo9PSJ6aC1DTiJ8fFo9PSJ6aC1ISyJ8fFo9PSJ6aC1UVyI/InswfVx1MzAwMSI6InswfSwgIjtkPVo9PSJhbSI/Ilx1MTM2MyAiOlo9PSJmYSI/Ilx1MDYwY1x1MjAwZiAiOlo9PSJteSI/IiAtICI6Wj09InRoIj8iICI6Wj09InVyIj8iXHUwNjBjICI6Wj09ImFyInx8Wj09ImFyLVhCIj8iIFx1MDY0OCI6Wj09ImphInx8Wj09InpoLUNOInx8Wj09InpoLUhLInx8Wj09InpoLVRXIj8iXHUzMDAxIjoiLCAiO2s9Wj09ImFtIj8iIFx1MTJhNVx1MTI5MyB7MH0iOlo9PSJhcyI/IiBcdTA5ODZcdTA5ZjBcdTA5YzEgezB9IjpaPT0iYXoiPyIgdlx1MDI1OSB7MH0iOlo9PSJibiI/IiBcdTA5OGZcdTA5YWNcdTA5ODIgezB9IjpaPT0iY3MiPwoiIGFcdTAwYTB7MH0iOlo9PSJkZSI/IiB1bmQgezB9IjpaPT0iZWwiPyIgXHUwM2JhXHUwM2IxXHUwM2I5IHswfSI6Wj09ImV1Ij8iIGV0YSB7MH0iOlo9PSJmYSI/Ilx1MDYwYyBcdTA2NDggezB9IjpaPT0iZmlsIj8iLCBhdCB7MH0iOlo9PSJndSI/IiBcdTBhODVcdTBhYThcdTBhYzcgezB9IjpaPT0iaGkiPyIsIFx1MDkxNFx1MDkzMCB7MH0iOlo9PSJodSI/IiBcdTAwZTlzIHswfSI6Wj09Imh5Ij8iIFx1MDU4NyB7MH0iOlo9PSJpZCI/IiwgZGFuIHswfSI6Wj09Iml3Ij8iIFx1MDVkNS17MH0iOlo9PSJqYSI/Ilx1MzAwMXswfSI6Wj09ImthIj8iIFx1MTBkM1x1MTBkMCB7MH0iOlo9PSJrbSI/IiBcdTE3OTNcdTE3YjdcdTE3ODQgezB9IjpaPT0ia24iPyIsIFx1MGNhZVx1MGNhNFx1MGNjZFx1MGNhNFx1MGNjMSB7MH0iOlo9PSJrbyI/IiBcdWJjMGYgezB9IjpaPT0ia3kiPyIgXHUwNDM2XHUwNDMwXHUwNDNkXHUwNDMwIHswfSI6Wj09Imx0Ij8iIGlyIHswfSI6Wj09Imx2Ij8KIiB1biB7MH0iOlo9PSJtciI/IiBcdTA5MDZcdTA5MjNcdTA5M2YgezB9IjpaPT0ibXMiPyIgZGFuIHswfSI6Wj09Im15Ij8iXHUxMDE0XHUxMDNlXHUxMDA0XHUxMDM3XHUxMDNhIHswfSI6Wj09Im5lIj8iIFx1MDkzMCB7MH0iOlo9PSJvciI/IiwgXHUwYjEzIHswfSI6Wj09InBhIj8iIFx1MGEwNVx1MGEyNFx1MGE0NyB7MH0iOlo9PSJybyI/IiBcdTAyMTlpIHswfSI6Wj09InNpIj8iLCBcdTBkYzNcdTBkYzQgezB9IjpaPT0ic2siPyIgYSB7MH0iOlo9PSJzbCI/IiBpbiB7MH0iOlo9PSJzcSI/IiBkaGUgezB9IjpaPT0ic3YiPyIgb2NoIHswfSI6Wj09InN3Ij8iIG5hIHswfSI6Wj09InRhIj8iIFx1MGJhZVx1MGJiMVx1MGJjZFx1MGJiMVx1MGJjMVx1MGJhZVx1MGJjZCB7MH0iOlo9PSJ0ZSI/IiBcdTBjMmVcdTBjMzBcdTBjM2ZcdTBjMmZcdTBjNDEgezB9IjpaPT0idGgiPyIgXHUwZTQxXHUwZTI1XHUwZTMwezB9IjpaPT0idHIiPyIgdmUgezB9IjpaPT0idXIiPyJcdTA2MGMgXHUwNjI3XHUwNjQ4XHUwNjMxIHswfSI6Clo9PSJ1eiI/IiB2YSB7MH0iOlo9PSJ2aSI/IiB2XHUwMGUwIHswfSI6Wj09InpoLUhLIj8iXHU1M2NhezB9IjpaPT0ienUiPyIsIG5lLXswfSI6Wj09ImFmInx8Wj09Im5sIj8iIGVuIHswfSI6Wj09ImFyInx8Wj09ImFyLVhCIj8iIFx1MDY0OHswfSI6Wj09ImJlInx8Wj09InVrIj8iIFx1MDQ1NiB7MH0iOlo9PSJlbi1HQiJ8fFo9PSJlbi1JTiI/IiBhbmQgezB9IjpaPT0iZW4ifHxaPT0iZW4tWEEiPyIsIGFuZCB7MH0iOlo9PSJldCJ8fFo9PSJmaSI/IiBqYSB7MH0iOlo9PSJmciJ8fFo9PSJmci1DQSI/IiBldCB7MH0iOlo9PSJ6aC1DTiJ8fFo9PSJ6aC1UVyI/Ilx1NTQ4Y3swfSI6Wj09ImRhInx8Wj09ImlzInx8Wj09Im5vIj8iIG9nIHswfSI6Wj09ImVzInx8Wj09ImVzLTQxOSJ8fFo9PSJlcy1VUyI/IiB5IHswfSI6Wj09ImJnInx8Wj09Im1rInx8Wj09InJ1Inx8Wj09InNyIj8iIFx1MDQzOCB7MH0iOlo9PSJnbCJ8fFo9PSJpdCJ8fFo9PSJwdC1CUiJ8fFo9PSJwdC1QVCI/IiBlIHswfSI6Clo9PSJrayJ8fFo9PSJsbyJ8fFo9PSJtbCJ8fFo9PSJtbiI/IiwgezB9IjoiIGkgezB9IjtsPVo9PSJhbSI/InswfSBcdTEyYTVcdTEyOTMgezF9IjpaPT0iYXMiPyJ7MH0gXHUwOTg2XHUwOWYwXHUwOWMxIHsxfSI6Wj09ImF6Ij8iezB9IHZcdTAyNTkgezF9IjpaPT0iYm4iPyJ7MH0gXHUwOThmXHUwOWFjXHUwOTgyIHsxfSI6Wj09ImRlIj8iezB9IHVuZCB7MX0iOlo9PSJlbCI/InswfSBcdTAzYmFcdTAzYjFcdTAzYjkgezF9IjpaPT0iZXUiPyJ7MH0gZXRhIHsxfSI6Wj09ImZhIj8iezB9IFx1MDY0OCB7MX0iOlo9PSJmaWwiPyJ7MH0gYXQgezF9IjpaPT0iZ3UiPyJ7MH0gXHUwYTg1XHUwYWE4XHUwYWM3IHsxfSI6Wj09ImhpIj8iezB9IFx1MDkxNFx1MDkzMCB7MX0iOlo9PSJodSI/InswfSBcdTAwZTlzIHsxfSI6Wj09Imh5Ij8iezB9IFx1MDU4NyB7MX0iOlo9PSJpdyI/InswfSBcdTA1ZDUtezF9IjpaPT0iamEiPyJ7MH1cdTMwMDF7MX0iOlo9PSJrYSI/InswfSBcdTEwZDNcdTEwZDAgezF9IjoKWj09ImtrIj8iezB9IFx1MDQzNlx1MDRkOVx1MDQzZFx1MDQzNSB7MX0iOlo9PSJrbSI/InswfSBcdTE3OTNcdTE3YjdcdTE3ODRcdTIwMGJ7MX0iOlo9PSJrbiI/InswfSBcdTBjYWVcdTBjYTRcdTBjY2RcdTBjYTRcdTBjYzEgezF9IjpaPT0ia28iPyJ7MH0gXHViYzBmIHsxfSI6Wj09Imt5Ij8iezB9IFx1MDQzNlx1MDQzMFx1MDQzZFx1MDQzMCB7MX0iOlo9PSJsbyI/InswfSBcdTBlYzFcdTBlYTVcdTBlYjAgezF9IjpaPT0ibHQiPyJ7MH0gaXIgezF9IjpaPT0ibHYiPyJ7MH0gdW4gezF9IjpaPT0ibXIiPyJ7MH0gXHUwOTA2XHUwOTIzXHUwOTNmIHsxfSI6Wj09Im15Ij8iezB9XHUxMDE0XHUxMDNlXHUxMDA0XHUxMDM3XHUxMDNhIHsxfSI6Wj09Im5lIj8iezB9IFx1MDkzMCB7MX0iOlo9PSJvciI/InswfSBcdTBiMTMgezF9IjpaPT0icGEiPyJ7MH0gXHUwYTA1XHUwYTI0XHUwYTQ3IHsxfSI6Wj09InJvIj8iezB9IFx1MDIxOWkgezF9IjpaPT0ic2kiPyJ7MH0gXHUwZGMzXHUwZGM0IHsxfSI6Clo9PSJzbCI/InswfSBpbiB7MX0iOlo9PSJzcSI/InswfSBkaGUgezF9IjpaPT0ic3YiPyJ7MH0gb2NoIHsxfSI6Wj09InN3Ij8iezB9IG5hIHsxfSI6Wj09InRhIj8iezB9IFx1MGJhZVx1MGJiMVx1MGJjZFx1MGJiMVx1MGJjMVx1MGJhZVx1MGJjZCB7MX0iOlo9PSJ0ZSI/InswfSBcdTBjMmVcdTBjMzBcdTBjM2ZcdTBjMmZcdTBjNDEgezF9IjpaPT0idGgiPyJ7MH1cdTBlNDFcdTBlMjVcdTBlMzB7MX0iOlo9PSJ0ciI/InswfSB2ZSB7MX0iOlo9PSJ1ciI/InswfSBcdTA2MjdcdTA2NDhcdTA2MzEgezF9IjpaPT0idXoiPyJ7MH0gdmEgezF9IjpaPT0idmkiPyJ7MH0gdlx1MDBlMCB7MX0iOlo9PSJ6aC1ISyI/InswfVx1NTNjYXsxfSI6Wj09Inp1Ij8iezB9IG5lLXsxfSI6Wj09ImFmInx8Wj09Im5sIj8iezB9IGVuIHsxfSI6Wj09ImFyInx8Wj09ImFyLVhCIj8iezB9IFx1MDY0OHsxfSI6Wj09ImJlInx8Wj09InVrIj8iezB9IFx1MDQ1NiB7MX0iOlo9PSJjcyJ8fFo9PSJzayI/InswfSBhXHUwMGEwezF9IjoKWj09ImV0Inx8Wj09ImZpIj8iezB9IGphIHsxfSI6Wj09ImZyInx8Wj09ImZyLUNBIj8iezB9IGV0IHsxfSI6Wj09ImlkInx8Wj09Im1zIj8iezB9IGRhbiB7MX0iOlo9PSJtbCJ8fFo9PSJtbiI/InswfSwgezF9IjpaPT0iemgtQ04ifHxaPT0iemgtVFciPyJ7MH1cdTU0OGN7MX0iOlo9PSJkYSJ8fFo9PSJpcyJ8fFo9PSJubyI/InswfSBvZyB7MX0iOlo9PSJlcyJ8fFo9PSJlcy00MTkifHxaPT0iZXMtVVMiPyJ7MH0geSB7MX0iOlo9PSJiZyJ8fFo9PSJtayJ8fFo9PSJydSJ8fFo9PSJzciI/InswfSBcdTA0MzggezF9IjpaPT0iZW4ifHxaPT0iZW4tR0IifHxaPT0iZW4tSU4ifHxaPT0iZW4tWEEiPyJ7MH0gYW5kIHsxfSI6Wj09ImdsInx8Wj09Iml0Inx8Wj09InB0LUJSInx8Wj09InB0LVBUIj8iezB9IGUgezF9IjoiezB9IGkgezF9IjtaPT09InNxIj8oaz1rLnJlcGxhY2UoImRoZSIsImUiKSxsPWwucmVwbGFjZSgiZGhlIiwiZSIpKTpaPT09InRoIj8oZD1kLnJlcGxhY2UoInswfSIsCiIgezB9IiksbD1sLnJlcGxhY2UoInswfSIsInswfSAiKSxsPWwucmVwbGFjZSgiezF9IiwiIHsxfSIpKTpaPT09Im5lIj9kPSIsIjpaPT09InpoLUNOIj9kPSIiOmMuaW5jbHVkZXMoWikmJihkPSIgIik7cmV0dXJuIGIubGVuZ3RoPDI/Yi5qb2luKCIiKToiYW0gYXIgYmcgYnMgY2EgY3MgZGEgZXMgZXMtNDE5IGVzLVVTIGV1IGZhIGZpIGZyLUNBIGZyIGdsIGd1IGhpIGhyIGh1IGh5IGlzIGl0IGx0IGx2IG1rIG15IG5vIG5sIHBsIHB0LUJSIHB0LVBUIHJvIHNpIHNsIHNxIHNyLUxhdG4gc3Igc3cgdGggdWsiLnNwbGl0KCIgIikuaW5jbHVkZXMoWik/Yi5sZW5ndGg9PT0yP2wucmVwbGFjZSgiezB9IixiWzBdKS5yZXBsYWNlKCJ7MX0iLGJbMV0pOmEucmVwbGFjZSgiezB9IixiWzBdKStiLnNsaWNlKDEsLTEpLmpvaW4oZCkray5yZXBsYWNlKCJ7MH0iLGJbYi5sZW5ndGgtMV0pOmIuam9pbihkKX07T1I9ZnVuY3Rpb24oKXtRUnx8KENSPVNqYSxRUj1uZXcgVGphKTtyZXR1cm4gUVJ9OwpVamE9ZnVuY3Rpb24oKXtKUSgpKHt0cTohMH0pO0pRKCkoe3RxOiExfSl9O1dqYT1mdW5jdGlvbihhKXt2YXIgYj1fLldEKCgpPT5hLmdldERlYnVnVGV4dCghMCkpO2ImJl8ueSgpLnJlc29sdmUoXy55UCkub3BlbkRpYWxvZyh7VW46KCk9Pl8uSyhWamEse2Z2OmJ9KX0pfTtSUj1mdW5jdGlvbihhLGIpe2lmKGIpYT1hLmdldFZpZGVvVXJsKCk7ZWxzZXthPWEuZ2V0UGxheWVyUmVzcG9uc2UoKS52aWRlb0RldGFpbHM/LnZpZGVvSWQ7aWYoIWEpcmV0dXJuO2E9YGh0dHBzOi8veW91dHUuYmUvJHthfWB9YSYmd2luZG93Lm5hdmlnYXRvcj8uY2xpcGJvYXJkJiZ3aW5kb3cubmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoYSl9OwpYamE9ZnVuY3Rpb24oYSxiLGMsZCl7Xy55Tih7R2I6KCk9Pl8uSyhfLklCLG51bGwsU1IoYSxiKSxfLksoXy5PLHtBOigpPT5kJiZjLHRoZW46KCk9Pl8uSyhUUix7SDphLHRhOmN9KX0pLF8uSyhVUix7SDphfSksXy5LKFZSLHtIOmF9KSxfLksoV1Ise0g6YX0pLF8uSyhZUix7SDphfSksXy5LKFpSLHtIOmF9KSxfLksoJFIse0g6YX0pLF8uSyhhUyx7SDphfSksXy5LKGJTLHtIOmF9KSksSGE6ITB9KX07U1I9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5LKF8uTyx7QTooKT0+Xy50UCgpLHRoZW46KCk9Pl8uSyhfLk5QLG51bGwpLFc6KCk9Pl8uSyhfLk8se0E6KCk9PiFiLHRoZW46KCk9Pl8uSyhjUyx7SDphfSl9KX0pfTtkUz1mdW5jdGlvbihhLGIpe18ueU4oe0diOmIsSGE6ITB9KTthLnN0b3BQcm9wYWdhdGlvbigpfTtlUz1mdW5jdGlvbihhKXthPWEuZ2V0QXZhaWxhYmxlUGxheWJhY2tSYXRlcygpO3JldHVybiBhW2EubGVuZ3RoLTFdPjJ9O2ZTPWZ1bmN0aW9uKGEpe3JldHVybntidXR0b25WaWV3TW9kZWw6e2FjY2Vzc2liaWxpdHlUZXh0OmF9fX07CmdTPWZ1bmN0aW9uKGEsYil7Yj1hPT09MTAwP1lqYTphPT09Yj9aamE6dm9pZCAwO3JldHVybnt2YXJpYWJsZVNwZWVkQ29udHJvbGxlclNwZWVkQnV0dG9uVmlld01vZGVsOntwbGF5YmFja1NwZWVkQnV0dG9uOntidXR0b25WaWV3TW9kZWw6e3RpdGxlOmAke2EvMTAwfXhgLHN0eWxlOiJCVVRUT05fVklFV19NT0RFTF9TVFlMRV9NT05PIix0eXBlOiJCVVRUT05fVklFV19NT0RFTF9UWVBFX1RPTkFMIixidXR0b25TaXplOiJCVVRUT05fVklFV19NT0RFTF9TSVpFX0NPTVBBQ1QiLGljb25UcmFpbGluZzohMH19LGJ1dHRvbkxhYmVsOntjb250ZW50OmJ9LHBsYXliYWNrU3BlZWRCdXR0b25DZW50aVZhbHVlOmF9fX07CmRrYT1mdW5jdGlvbihhKXtpZihhPy5pc1JlYWR5Py4oKSl7dmFyIGI9YS5nZXRQbGF5YmFja1JhdGUoKTtpZihiKXtoU3x8KGhTPV8ueE0oKSk7dmFyIGM9ZVMoYSk/JGphOmFrYTtpZighaFM/LmdldCgicmVjZW50LWN1c3RvbS1zcGVlZCIpfHxiIT09MSlyZXR1cm4gYy5tYXAoZT0+Z1MoZSkpO3ZhciBkPU51bWJlcihoUy5nZXQoInJlY2VudC1jdXN0b20tc3BlZWQiKSk7aWYoYy5pbmNsdWRlcyhkKSlyZXR1cm4gYy5tYXAoZT0+Z1MoZSxkKSk7YT1lUyhhKT9ia2Euc2xpY2UoKTpja2Euc2xpY2UoKTthLnB1c2goZCk7YS5zb3J0KChlLGYpPT5lLWYpO3JldHVybiBhLm1hcChlPT5nUyhlLGQpKX19fTsKaWthPWZ1bmN0aW9uKGEpe2lmKGE/LmlzUmVhZHk/LigpKXt2YXIgYj1hLmdldFBsYXliYWNrUmF0ZSgpLGM9YS5nZXRBdmFpbGFibGVQbGF5YmFja1JhdGVzKCk7aWYoYiYmYyl7dmFyIGQ9Y1tjLmxlbmd0aC0xXSoxMDA7Yz1jWzBdKjEwMDtiPXtob3Jpem9udGFsU2xpZGVyVmlld01vZGVsOnttYXhWYWx1ZTpkLG1pblZhbHVlOmMsaW5pdGlhbFZhbHVlOmIqMTAwLHN0ZXBDb3VudDooZC1jKS81LHZhbHVlRGVub21pbmF0b3I6MTAwLGluY3JlYXNlQnV0dG9uOmZTKGVrYSksZGVjcmVhc2VCdXR0b246ZlMoZmthKSxyZW5kZXJlckNvbnRleHQ6e2FjY2Vzc2liaWxpdHlDb250ZXh0OntsYWJlbDpna2F9fX19O2E9ZGthKGEpO3JldHVybnt2YXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbDp7c2xpZGVyOmIscGxheWJhY2tTcGVlZEJ1dHRvbnM6YSxiYWRnZTp7YmFkZ2VWaWV3TW9kZWw6e2JhZGdlVGV4dDoiUCIsYmFkZ2VTdHlsZToiQkFER0VfUFJFTUlVTSIsYWNjZXNzaWJpbGl0eUxhYmVsOmhrYX19fX19fX07CmlTPWZ1bmN0aW9uKGEpe2hTfHwoaFM9Xy54TSgpKTtoUyYmaFMuc2V0KCJyZWNlbnQtY3VzdG9tLXNwZWVkIixTdHJpbmcoYSoxMDApKX07a2thPWZ1bmN0aW9uKGEpe3ZhciBiPWlrYShhKSxjPV8uQihiLGprYSk7YyYmXy55Tih7SGE6ITAscGY6ITAsR2I6KCk9Pl8uSyhfLmtPLHtkYXRhOmMscHo6ZD0+e2Euc2V0UGxheWJhY2tSYXRlKGQudGFyZ2V0LnZhbHVlQXNOdW1iZXIpfSxvejpkPT57aVMoZC50YXJnZXQudmFsdWVBc051bWJlcil9LHF6OmQ9PnthLnNldFBsYXliYWNrUmF0ZShkKTtkIT09MSYmaVMoZCk7Xy56TigpfX0pfSl9O2pTPWZ1bmN0aW9uKGEpe3JldHVybihhPWxrYVthXSk/YCR7YX1wYDpta2F9O2tTPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5XRCgoKT0+YS5nZXRQbGF5YmFja1F1YWxpdHkoKSksZD1fLldEKCgpPT5hLmdldFByZWZlcnJlZFF1YWxpdHkoKSksZT1qUyhiKTtiPT09ImF1dG8iJiZkPT09ImF1dG8iJiYoZSs9YCAoJHtqUyhjKX0pYCk7cmV0dXJuIGV9Owpva2E9ZnVuY3Rpb24oYSl7Xy55Tih7R2I6KCk9Pl8uSyhua2Ese0g6YX0pLEhhOiEwfSl9O3BTPWZ1bmN0aW9uKGEsYixjLGQsZSl7ZFMoYSwoKT0+Xy5LKF8uSUIsbnVsbCxfLksobFMse0g6Yn0pLF8uSyhtUyx7SDpifSksXy5LKHBrYSx7SDpifSksXy5LKF8uTyx7QTooKT0+Yi5nZXRBdmFpbGFibGVBdWRpb1RyYWNrcygpPy5sZW5ndGgsdGhlbjooKT0+Xy5LKG5TLHtIOmJ9KX0pLF8uSyhvUyx7SDpiLG9oOmMsdGE6ZCx0QTplfSkpKX07cWthPWZ1bmN0aW9uKGEsYixjKXtkUyhhLCgpPT5fLksoXy5JQixudWxsLFNSKGIsYykpKX07CnJrYT1mdW5jdGlvbihhKXtfLm5QKCk7aWYoYS54YylpZihhLmNhcHRpb25zRW5hYmxlZClxUyhfLiROLlNzKTtlbHNle3ZhciBiPWEuSDtpZihiKXtpZihhPVBRKGIpLGI9TlEoYikpYjp7aWYoYi50cmFuc2xhdGlvbkxhbmd1YWdlJiYoYT1iLnRyYW5zbGF0aW9uTGFuZ3VhZ2U/Yi50cmFuc2xhdGlvbkxhbmd1YWdlPy5sYW5ndWFnZU5hbWV8fCIiOiIiKSlicmVhayBiO2E9Yi5kaXNwbGF5TmFtZX19ZWxzZSBhPSIiO3FTKGE/Xy4kTi5Vcy5yZXBsYWNlKCJsYW5ndWFnZV9wbGFjZWhvbGRlciIsYSk6Xy4kTi5Ucyl9ZWxzZSBxUyhfLiROLlJzKX07cVM9ZnVuY3Rpb24oYSl7Xy5wUCgoKT0+YSl9O3NrYT1mdW5jdGlvbihhLGIpe3ZhciBjPXJTKGEpO2E9YS5nZXRXZWJQbGF5ZXJDb250ZXh0Q29uZmlnKCk7YT17Li4uc1MoYSksRWU6ITB9O3JldHVybnt0YTpjLGJhOmEsVGM6ZG9jdW1lbnQuYm9keSxHYzpifX07CnRrYT1mdW5jdGlvbihhLGIpe3ZhciBjPWpqYSgpLGQ9ey4uLnJTKGEpLFNqOmY9Pnt2YXIgaD0hdFMoKSxrPWEuaXNSZWFkeT8uKCkmJiEhYS5nZXRXYXRjaE5leHRSZXNwb25zZSgpPy5wbGF5ZXJPdmVybGF5cz8ucGxheWVyT3ZlcmxheVJlbmRlcmVyPy5hdXRvcGxheTtwUyhmLGEsaCxkLGspfSxkZTooKT0+e3ZhciBmPWM/LmdldCgiYXV0b25hdl9lbmFibGVkIik7cmV0dXJuIGY9PT12b2lkIDB8fGY9PT0idHJ1ZSJ9LFJqOihmLGgpPT57aCYmYz8uc2V0KCJhdXRvbmF2X2VuYWJsZWQiLFN0cmluZyhmKSl9LFVsOigpPT5jPy5nZXQoImF1dG9uYXZfZW5hYmxlZCIpIT09dm9pZCAwfSxlPWEuZ2V0V2ViUGxheWVyQ29udGV4dENvbmZpZygpO2U9ey4uLnNTKGUpLHZ2OjM1MCx6djohMCxNbDo0RTMsaGlkZVZpZGVvSW5mbzplLmhpZGVJbmZvfTtyZXR1cm57dGE6ZCxiYTplLFRjOmRvY3VtZW50LmJvZHksR2M6Yn19OwpyUz1mdW5jdGlvbihhKXt2YXIgYj1hLmdldFdlYlBsYXllckNvbnRleHRDb25maWcoKSxjPWdqYSxkPVRRLGU9U1E7aWYoYj8uZW1iZWRzSG9zdEZsYWdzPy5hbGxvd1NldEZhdXhGdWxsc2NyZWVuJiZiPy5leHRlcm5hbEZ1bGxzY3JlZW4pe2xldCBmPW5ldyB1a2EoYSk7Yz0oKT0+Zi5pc0Z1bGxzY3JlZW4oKTtkPSgpPT57Zi50b2dnbGVGdWxsc2NyZWVuKCl9O2U9KCk9PntmLmV4aXRGdWxsc2NyZWVuKCl9fXJldHVybntTajpmPT57dmFyIGg9IXRTKCk7YT8uZ2V0U2l6ZSgpPy53aWR0aDwzMjA/cWthKGYsYSxoKTpwUyhmLGEsaCl9LHFBOnJrYSxpc0Z1bGxzY3JlZW46Yyx0b2dnbGVGdWxsc2NyZWVuOmQsZXhpdEZ1bGxzY3JlZW46ZSxkZTooKT0+ITEsUmo6KCk9Pnt9LFVsOigpPT4hMX19OwpzUz1mdW5jdGlvbihhKXtyZXR1cm57RWU6ITAsTWk6ITAsTWw6Xy54KCJlbWJlZHNfZW5hYmxlX2RlbGF5X2NvbnRyb2xzX2hpZGUiKT80RTM6dm9pZCAwLGlxOmEuZGlzYWJsZUZ1bGxzY3JlZW4sbmg6YS5jb250cm9sc1R5cGU9PT0wLG9oOiF0UygpLGhpZGVWaWRlb0luZm86YS5oaWRlSW5mbyYmYS5lbWJlZHNIb3N0RmxhZ3M/Lm9wdE91dEFwaURlcHJlY2F0aW9uLHVqOiEwLER6OiFfLngoImVtYmVkc19lbWMzZHNfcHJlc2VydmVfZnVsbHNjcmVlbl9rcyIpLHpyOiEwLHJBOiEwLFpoOiEwLHZuOiEwLFpBOiFfLngoImVtYmVkc19lbWMzZHNfZnRsX2tzIiksdm9sdW1lQ29udHJvbFR5cGU6Xy54KCJlbWJlZHNfZGVza3RvcF9lbmFibGVfdm9sdW1lX3NsaWRlciIpJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKGFueS1wb2ludGVyOiBmaW5lKSIpLm1hdGNoZXM/InZvbHVtZS1zbGlkZXIiOiJtdXRlLWJ1dHRvbiJ9fTsKdFM9ZnVuY3Rpb24oKXtyZXR1cm4gXy50UCgpfHxfLnF6KCkmJiFfLncoIlBMQVlFUl9WQVJTIik/LnByaXZlbWJlZCYmIShfLmVyJiZfLk1rKCJ2ZXJzaW9uLyIpKSYmIV8ucnooKX07dVM9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucGxheWVyU3RhdGU9PT0wfTt3Uz1mdW5jdGlvbihhKXtyZXR1cm4gYS52aWRlb0R1cmF0aW9uP3ZTKGEpP0RRKGEuQ2EvYS52aWRlb0R1cmF0aW9uLDAsMSk6RFEoKGEudmF8fDApL2EudmlkZW9EdXJhdGlvbiwwLDEpOjB9O3hTPWZ1bmN0aW9uKGEpe3JldHVybiBhLnZpZGVvRHVyYXRpb24/YS5pc0RyYWdnaW5nfHx2UyhhKT9EUShhLkNhL2EudmlkZW9EdXJhdGlvbiwwLDEpOkRRKChhLnZhfHwwKS9hLnZpZGVvRHVyYXRpb24sMCwxKTowfTt2Uz1mdW5jdGlvbihhKXtyZXR1cm4gYS5LYj4xJiZhLkpkIT09MH07CnlTPWZ1bmN0aW9uKGEpe3JldHVybihfLngoIndlYl9lbmFibGVfZGlic19pbXBsZW1lbnRhdGlvbiIpfHxfLngoIm13ZWJfZW5hYmxlX2RpYnNfaW1wbGVtZW50YXRpb24iKSkmJmEuSD8uZ2V0VmlkZW9EYXRhKGEucGxheWVyVHlwZSk/LmlzU2Vla2FibGV8fGEucGxheWVyVHlwZT09PTE/ITE6YS5iYT8uWmg/IWEuSD8uZ2V0UGxheWVyU3RhdGVPYmplY3QoYS5wbGF5ZXJUeXBlKS5pc0RvbVBhdXNlZDohMH07elM9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQihhPy5hdXRvbmF2VG9nZ2xlLHZrYSl9O0FTPWZ1bmN0aW9uKGEpe3JldHVybiBhPy5jb250ZW50cz8uc2luZ2xlQ29sdW1uV2F0Y2hOZXh0UmVzdWx0cz8uYXV0b3BsYXk/LmF1dG9wbGF5fTtCUz1mdW5jdGlvbihhKXtyZXR1cm4gYT8ucGxheWVyT3ZlcmxheXM/LnBsYXllck92ZXJsYXlSZW5kZXJlcj8uYXV0b3BsYXk/LnBsYXllck92ZXJsYXlBdXRvcGxheVJlbmRlcmVyfTsKRVM9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQihDUyhhKT8ucGxheWVyQmFyLERTKX07RlM9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQihhPy5tYXJrZXJzTWFwPy5maW5kKGI9PmIua2V5PT09IkhFQVRTRUVLRVIiKT8udmFsdWU/LmhlYXRtYXAsd2thKX07Q1M9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQihhPy5kZWNvcmF0ZWRQbGF5ZXJCYXJSZW5kZXJlcix4a2EpfTtHUz1mdW5jdGlvbihhKXtyZXR1cm4gXy5CKENTKGEpPy5wbGF5aGVhZCx5a2EpfTt6a2E9ZnVuY3Rpb24oYSl7cmV0dXJuISFhPy5tYXJrZXJzTWFwPy5maW5kKGI9PlsiREVTQ1JJUFRJT05fQ0hBUFRFUlMiLCJBVVRPX0NIQVBURVJTIl0uaW5jbHVkZXMoYi5rZXkpKX07SlM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gSFMoYSxiKXx8SVMoYSk/ITE6IWEuaXNEcmFnZ2luZyYmIXZTKGEpJiYhYS5zYiYmYS5MZiE9PSJvbiJ9OwpIUz1mdW5jdGlvbihhLGIpe3JldHVybiFhLmF1dG9uYXZFbmFibGVkfHxhLnhmfHwhYnx8YS5yY3x8YS5pc1BsYXlsaXN0JiZiPy5zZXRzPy5bMF0uYXV0b3BsYXlWaWRlbz8hMTp1UyhhKX07Q2thPWZ1bmN0aW9uKGEsYil7Yj1iPy5hY3Rpb25CYXJCdXR0b25zO3JldHVybiBfLkIoXy5CKGE/LnBsYXllck92ZXJsYXlzPy5wbGF5ZXJPdmVybGF5UmVuZGVyZXI/LmZ1bGxzY3JlZW5FbmdhZ2VtZW50LEFrYSk/LmFjdGlvbkJhcixCa2EpPy5hY3Rpb25CYXJCdXR0b25zfHxifHxbXX07TFM9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQihfLkIoYT8ucGxheWVyT3ZlcmxheXM/LnBsYXllck92ZXJsYXlSZW5kZXJlcj8uZnVsbHNjcmVlblF1aWNrQWN0aW9uc0JhcixLUyk/LmZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludCxEa2EpfTsKTVM9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/LnBsYXllck92ZXJsYXlzPy5wbGF5ZXJPdmVybGF5UmVuZGVyZXI/LmVuZFNjcmVlbj8ud2F0Y2hOZXh0RW5kU2NyZWVuUmVuZGVyZXI/LnJlc3VsdHN8fFtdfTtOUz1mdW5jdGlvbihhLGIpe3JldHVybiBhP2EudmlkZW9EZXRhaWxzPy5lbWJlZGRlZFBsYXllck92ZXJsYXlWaWRlb0RldGFpbHNSZW5kZXJlcjpfLkIoYj8udmlkZW9EZXRhaWxzLEVrYSl9O1BTPWZ1bmN0aW9uKGEsYil7Yj1fLkIoYj8uZW1iZWRQcmV2aWV3Py50aHVtYm5haWxQcmV2aWV3UmVuZGVyZXI/LmluZm9QYW5lbCxPUyk7cmV0dXJuIF8uQihhPy5pbmZvUGFuZWwsT1MpfHxifTtJUz1mdW5jdGlvbihhKXtyZXR1cm4gYS5OYT8hMDphLkpmIT09MH07CkZrYT1mdW5jdGlvbih7ZWxlbWVudDphLHZlVHlwZTpiLExBOmM9bnVsbCxlbGVtZW50SW5kZXg6ZD0wLGNsaWVudFlvdVR1YmVEYXRhOmV9KXt2YXIgZj1fLmlxKCk7ZiE9PVFTJiYoUlMuY2xlYXIoKSxRUz1mKTtpZihhLnZpc3VhbEVsZW1lbnQmJlJTLmhhcyhhLnZpc3VhbEVsZW1lbnQpKXJldHVybiBudWxsO2lmKGMmJlJTLmhhcyhjKSlyZXR1cm4gYS52aXN1YWxFbGVtZW50PWMsbnVsbDtiPV8uRXgoXy5oeCgpLHt2ZVR5cGU6YixlbGVtZW50SW5kZXg6ZCxjbGllbnRZb3VUdWJlRGF0YTplfSk7aWYoIWIpcmV0dXJuIG51bGw7YS52aXN1YWxFbGVtZW50PWI7UlMuYWRkKGIpO3JldHVybiBifTsKU1M9ZnVuY3Rpb24oYSxiLGM9bnVsbCxkPV8uTk4sZT1udWxsLGYsaCl7dmFyIGs9KCk9PntpZihiKXtjIGluc3RhbmNlb2YgRnVuY3Rpb24mJihjPWMoKSk7dmFyIGw9RmthKHtlbGVtZW50OmIsdmVUeXBlOmEsTEE6YyxjbGllbnRZb3VUdWJlRGF0YTpmfSk7bCYmKF8uSngoYix7ZGF0YTplLG9ic2VydmVyOl8ueSgpLnJlc29sdmUoXy5MeCksTmM6Xy5uRixlYjpfLm1GLGxheWVyOmIubGF5ZXJ9KSxkKGwpKX19O2g/aygpOl8uT0UoKCk9PntrKCl9KX07R2thPWZ1bmN0aW9uKGEpe1NTKDExMjM5NCxhLCgpPT5UUyxiPT57VFM9Yn0pfTsKVVM9ZnVuY3Rpb24oYSl7dmFyIGI9VFMsYz1fLmlxKDApO2lmKGMmJmIpe3ZhciBkPU1hdGgucm91bmQoYS52YSoxRTMpO2E9TWF0aC5yb3VuZChhLkNhKjFFMyk7ZD4yKiozMS0xfHxhPjIqKjMxLTF8fF8uVmkoXy5leCkodm9pZCAwLGMsYiwiSU5URVJBQ1RJT05fTE9HR0lOR19HRVNUVVJFX1RZUEVfR0VORVJJQ19DTElDSyIse3NlZWtEYXRhOntzdGFydE1lZGlhVGltZU1zOlN0cmluZyhkKSxlbmRNZWRpYVRpbWVNczpTdHJpbmcoYSksc2Vla1NvdXJjZToiU0VFS19TT1VSQ0VfU0xJREVfT05fU0NSVUJCRVJfQkFSIn19LHZvaWQgMCl9fTtXUz1mdW5jdGlvbihhLGIsYyl7U1MoYixhLCgpPT5WU1tiXSxkPT57VlNbYl09ZDtfLkpPKGQpfSx2b2lkIDAsdm9pZCAwLGMpfTtYUz1mdW5jdGlvbihhKXsoYT1WU1thXSkmJl8ud0ooXy5oeCgpLGEpfTtIa2E9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5WdygwKSxjPV8uaXEoMCk7YyYmYiYmYSYmXy5WaShfLmJ4KSh2b2lkIDAsYyxiLGEpfTsKWVM9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5pcSgwKTtiJiZhJiZfLnlKKGIsYSl9O1pTPWZ1bmN0aW9uKGEpe3ZhciBiPV8uaXEoMCk7YiYmYSYmXy5WaShfLkFPKSh2b2lkIDAsYixhLHZvaWQgMCx2b2lkIDAsdm9pZCAwKX07JFM9ZnVuY3Rpb24oYSxiKXtpZighYS5iYT8uWmh8fCFhLkgpcmV0dXJuITE7YT1hLkguZ2V0UGxheWVyU3RhdGVPYmplY3QoKTtyZXR1cm4gYS5pc0Vycm9yfHxiJiYhTVIoYik/ITE6YS5pc0N1ZWR8fGEuaXNEb21QYXVzZWR9O2NUPWZ1bmN0aW9uKGEsYil7YVQmJiFiPy5JY3x8YS5wbGF5ZXJTdGF0ZT09PTJ8fGEucGxheWVyU3RhdGU9PT0tMXx8dVMoYSl8fGEucGxheWVyU3RhdGU9PT01fHwoYj8uSWMmJmJUKCksYVQ9c2V0VGltZW91dCgoKT0+e2EuUyh7ZWE6ITF9KX0sYS5iYT8uTWw/PzJFMykpfTtiVD1mdW5jdGlvbigpe2FUJiYoY2xlYXJUaW1lb3V0KGFUKSxhVD12b2lkIDApfTtJa2E9ZnVuY3Rpb24oYSl7YVQ9YX07CmRUPWZ1bmN0aW9uKGEpe3JldHVybntpc0xpdmU6ITEsaXNMaXZlRHZyRW5hYmxlZDohMCxpc1BsYXlsaXN0OiExLHBsYXllclR5cGU6MSx5cTohMSx2aWRlb0lkOnZvaWQgMCxjYXB0aW9uc0VuYWJsZWQ6ITEseGM6ITEsdm9sdW1lOjAscmM6ITAsSmY6MCxSeDohMSxzYjohMSxXZDohMSxOYTohMSxpc0Z1bGxzY3JlZW46ITEsS2I6MCx5aDowLEpkOjAseGY6ITEsYXV0b25hdkVuYWJsZWQ6ITEsemY6ITEseWY6MCxZaDohMSxpc0RyYWdnaW5nOiExLENhOjAsUWM6ITEsZGo6MCxRbTowLHBsYXllclN0YXRlOmE/LmdldFBsYXllclN0YXRlKCk/Py0xLHZpZGVvRHVyYXRpb246MCx2YTowLE9uOiExLGplOnZvaWQgMCxwbGF5YmFja1JhdGU6MSxlYTohMSx5YjohMSxnZTohMSxMZjoib2ZmIixacjowLExwOjAsWXY6MH19O0prYT1mdW5jdGlvbihhKXthVCYmYlQoKTtJa2Eoc2V0VGltZW91dCgoKT0+e2EuUyh7ZWE6ITEseWI6ITF9KX0sMkUzKSl9OwpLa2E9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pnt2YXIgYj1hKCksYz1iLkg/LmdldFBsYXllclN0YXRlKCk7IWN8fGM9PT1iLnBsYXllclN0YXRlfHxjIT09MSYmYyE9PTJ8fChjJiYoYz09PTI/Yi5lYT8oYi5TKHt5YjohMX0pLGJUKCkpOmIuUyh7ZWE6ITAseWI6ITF9KTpjPT09MSYmYi5lYSYmIWIuaXNEcmFnZ2luZyYmKGIueWI/SmthKGIpOmIuUyh7ZWE6ITEseWI6ITF9KSkpLGIuUyh7cGxheWVyU3RhdGU6Y30pKX19O0xrYT1mdW5jdGlvbihhKXtyZXR1cm4gYj0+e3ZhciBjPWEoKSxkPWMuSCxlPWQ/LmdldFZpZGVvRGF0YSgpLnZpZGVvX2lkO2UhPT1jLnZpZGVvSWQmJmI/LnR5cGU9PT0ibmV3ZGF0YSImJihiPWQ/LmdldER1cmF0aW9uKGI/LnBsYXllcnR5cGUpLGJUKCksYy5TKHt2aWRlb0R1cmF0aW9uOmIsdmE6MCx2aWRlb0lkOmUsZWE6ITEseWI6ITF9KSl9fTsKTWthPWZ1bmN0aW9uKGEpe3JldHVybiBiPT57dmFyIGM9YSgpLGQ9Yy5IO2lmKGQpe3ZhciBlPWQuZ2V0UHJlc2VudGluZ1BsYXllclR5cGUoKTtfLngoIndlYl9zaG9ydHNfdXNlX3Byb2dyZXNzX3N0YXRlX2Zvcl9nYXBsZXNzIik/KGQ9ZC5nZXRQcm9ncmVzc1N0YXRlKGUpLGQ9ZC5zZWVrYWJsZUVuZC1kLnNlZWthYmxlU3RhcnQpOmQ9ZC5nZXREdXJhdGlvbihlKTtjLlMoe3ZhOmIsdmlkZW9EdXJhdGlvbjpkfSl9fX07Z1Q9ZnVuY3Rpb24oYSxiKXtpZighYSlyZXR1cm5bXTthPWEubWFya2Vyc01hcD8uZmluZChjPT5bIkRFU0NSSVBUSU9OX0NIQVBURVJTIiwiQVVUT19DSEFQVEVSUyJdLmluY2x1ZGVzKGMua2V5KSk/LnZhbHVlPy5jaGFwdGVyc3x8W107KGEubGVuZ3RoPT09MD8wOl8uQihhWzBdLGVUKT8udGltZVJhbmdlU3RhcnRNaWxsaXMhPT0wKSYmIWI/Lm54JiYoYT1bZlQoKSwuLi5hXSk7cmV0dXJuIGF9O2ZUPWZ1bmN0aW9uKCl7cmV0dXJue2NoYXB0ZXJSZW5kZXJlcjp7dGltZVJhbmdlU3RhcnRNaWxsaXM6MH19fTsKaFQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/YS50aW1lUmFuZ2VTdGFydE1pbGxpc3x8MDowfTtrVD1mdW5jdGlvbihhLGIpe3JldHVybiBnVChiKS5maW5kKChjLGQsZSk9PmlUKGpUKGEpLGUsZCkuTGQ9PT0iYWN0aXZlIil9O2xUPWZ1bmN0aW9uKGEsYil7aWYoYS5pc0RyYWdnaW5nJiZiKXJldHVybiBhPU5rYShhLGIpLGE9PT0tMT9mVCgpOmdUKGIpW2FdfTtOa2E9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5pc0RyYWdnaW5nJiZiP2dUKGIse254OiEwfSkuZmluZEluZGV4KChjLGQsZSk9PmlUKGpUKGEpLGUsZCkuQmcpOi0xfTttVD1mdW5jdGlvbihhKXthPV8uQihhLGVUKTthPy5vbkFjdGl2ZUNvbW1hbmQmJl8uYUUoYS5vbkFjdGl2ZUNvbW1hbmQpfTtqVD1mdW5jdGlvbihhKXtyZXR1cm57Li4uYSx2aWRlb0R1cmF0aW9uOmEudmlkZW9EdXJhdGlvbioxRTMsdmE6YS52YSoxRTMsQ2E6YS5DYSoxRTN9fTsKaVQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWhUKF8uQihiW2NdLGVUKSk7Yj1oVChfLkIoYltjKzFdLGVUKSl8fGEudmlkZW9EdXJhdGlvbjtjPWEuaXNEcmFnZ2luZzt2YXIgZTtpZihlPWEuaXNEcmFnZ2luZyllPWEuQ2EsZT1lIT09bnVsbCYmZT49ZCYmZTxiO3ZhciBmPWEudmE7cmV0dXJuIGYhPT1udWxsJiZmPj1kJiZmPGI/e0xkOiJhY3RpdmUiLGJtOmMsQmc6ZX06YS52YTxkP3tMZDoicGVuZGluZyIsYm06YyxCZzplfTp7TGQ6InNlZW4iLGJtOmMsQmc6ZX19O25UPWZ1bmN0aW9uKGEsYixjKXtpZihpVChhLGIsYykuTGQhPT0iYWN0aXZlIilyZXR1cm4gMDt2YXIgZD1oVChfLkIoYltjXSxlVCkpO3JldHVybihhLnZhLWQpLygoaFQoXy5CKGJbYysxXSxlVCkpfHxhLnZpZGVvRHVyYXRpb24pLWQpfTtvVD1mdW5jdGlvbihhLGI9MCl7cmV0dXJuIGEuTGQ9PT0ic2VlbiJ8fGI+MH07CnBUPWZ1bmN0aW9uKGEsYixjKXtiPWEvYi5acjtjPWdUKGMpO2lmKCFjLmxlbmd0aClyZXR1cm4tYio3Mjt2YXIgZD0wO2ZvcihsZXQgZSBvZiBjKWlmKGhUKF8uQihlLGVUKSkvMUUzPGEpZCsrO2Vsc2UgYnJlYWs7cmV0dXJuLShiKjcyKS1kKjU2fTtPa2E9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBkPT57dmFyIGU9YigpLGY9YygpO2EuQigpO2Quc3RvcFByb3BhZ2F0aW9uKCk7ZD1xVChhLGUsZC5jbGllbnRYKSplLnZpZGVvRHVyYXRpb247ZS5TKHt2YTpkfSk7ZS5wbGF5ZXJTdGF0ZT09PTJ8fGYuRm4/LigpO2EuRC52KGQsZSw3KX19O3JUPWZ1bmN0aW9uKGEpe2E9YS50b3VjaGVzWzBdO3JldHVybnt4OmEuY2xpZW50WCx5OmEuY2xpZW50WX19O1BrYT1mdW5jdGlvbihhLGIpe3JldHVybiBjPT57dmFyIGQ9clQoYyksZT1iKCk7YS5zdGFydFBvc2l0aW9ufHwoYS5zdGFydFBvc2l0aW9uPWQsYS5CKCksYS5qPWUuZWEsYy5zdG9wUHJvcGFnYXRpb24oKSl9fTsKUWthPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGM9Pnt2YXIgZD17eDpjLmNsaWVudFgseTpjLmNsaWVudFl9LGU9YigpO2Euc3RhcnRQb3NpdGlvbnx8KGEuc3RhcnRQb3NpdGlvbj1kLGEuQigpLGEuaj1lLmVhLGMuc3RvcFByb3BhZ2F0aW9uKCkpfX07CnRUPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXthLnN0YXJ0UG9zaXRpb24mJihmJiZlLmlqJiZhLnN0YXJ0UG9zaXRpb24mJiFhLm8mJk1hdGguYWJzKGMueS1hLnN0YXJ0UG9zaXRpb24ueSk+TWF0aC5hYnMoYy54LWEuc3RhcnRQb3NpdGlvbi54KT9zVChhLGQsZSk6KGIucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLGQudmlkZW9EdXJhdGlvbiYmKGEuc3RhcnRQb3NpdGlvbiYmIWEubyYmKGEubz1NYXRoLmFicyhjLngtYS5zdGFydFBvc2l0aW9uLngpPj0xKSxlLktmJiYoYS5zdGFydFBvc2l0aW9uJiYoYS52PS0oYy55LWEuc3RhcnRQb3NpdGlvbi55KT49NjApLCFhLnN0YXJ0UG9zaXRpb258fGMueT49YS5zdGFydFBvc2l0aW9uLnl8fChkLlMoe0xmOiJkcmFnZ2luZyIsTHA6cFQoZC5DYSxkLGUuUmEpfSksYS5VKGQuQ2EpLGEuWihhLnN0YXJ0UG9zaXRpb24ueSxjLnksZCkpKSxhLm8mJihiPXFUKGEsZCxjLngpLGEudiYmKGQuSD8ucGF1c2VWaWRlbygpLGQuUyh7TGY6Im9uIiwKWXY6ZC5DYSxMcDpwVChiKmQudmlkZW9EdXJhdGlvbixkLGUuUmEpfSkpLGUuS2YmJighZS5LZnx8YS5LKGQpPDY4KXx8KGQuaXNEcmFnZ2luZ3x8ZC50YS5rej8uKCksZC5TKHtDYTpiKmQudmlkZW9EdXJhdGlvbixlYTohMCxpc0RyYWdnaW5nOiEwLHliOmEuan0pKSxlLllvPy4oKSkpKSl9O1JrYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGQ9Pnt2YXIgZT1iKCksZj1jKCk7dFQoYSxkLHJUKGQpLGUsZiwhMCk7aWYoZi5vblRvdWNoTW92ZSlmLm9uVG91Y2hNb3ZlKGUpfX07dlQ9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYi5idXR0b25zIT09MSl7aWYoYi5tb3ZlbWVudFh8fGIubW92ZW1lbnRZKWIucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLGE9cVQoYSxjLGIuY2xpZW50WCksYy5RY3x8Yy50YS5rej8uKCksYy5TKHtRYzohMCxkajphKmMudmlkZW9EdXJhdGlvbn0pfWVsc2UgdVQoYyksdFQoYSxiLHt4OmIuY2xpZW50WCx5OmIuY2xpZW50WX0sYyxkLCExKX07ClNrYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGQ9Pnt2VChhLGQsYigpLGMoKSl9fTtUa2E9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pnt2YXIgYj1hKCk7dVQoYil9fTtzVD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1jLktmJiZiLkxmIT09Im9mZiI7Yi5pc0RyYWdnaW5nfHxlPyhkPXtpc0RyYWdnaW5nOiExLHZhOmIuQ2EsZWE6YS5qfSxjLktmJiZiLkxmIT09Im9uIiYmKGEuTSgpLGQuTGY9Im9mZiIpLFVTKGIpLGIuUyhkKSxhLkQudihiLkNhLGIsNyksYy5JbiYmYi5yYyYmYi5IPy51bk11dGUoKSx3VChhKSk6KF8ueCgibWF3cGNfdG91Y2hfZW5kX2hhbmRsZXJfYnVnX2ZpeF9raWxsc3dpdGNoIik/Yi5TKHtlYTohYi5lYX0pOmIuUyh7ZWE6ITB9KSxjLkZuPy4oKSx3VChhKSxfLngoIm1hd3BjX3RvdWNoX2VuZF9oYW5kbGVyX2J1Z19maXhfa2lsbHN3aXRjaCIpfHxkPy5zdG9wUHJvcGFnYXRpb24oKSl9OwpVa2E9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBkPT57dmFyIGU9YigpLGY9YygpO3NUKGEsZSxmLGQpO2lmKGYub25Ub3VjaEVuZClmLm9uVG91Y2hFbmQoZSl9fTtWa2E9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBkPT57dmFyIGU9YigpLGY9YygpO3NUKGEsZSxmLGQpO2lmKGYub25Ub3VjaEVuZClmLm9uVG91Y2hFbmQoZSl9fTtXa2E9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBkPT57c1QoYSxiKCksYygpLGQpfX07WGthPWZ1bmN0aW9uKGEpe3JldHVybiBiPT57Yi5rZXlDb2RlPT09Mzl8fGIua2V5Q29kZT09PTM4P2EoKT8uSD8uc2Vla0J5KDUsdm9pZCAwLHZvaWQgMCw3Mik6KGIua2V5Q29kZT09PTM3fHxiLmtleUNvZGU9PT00MCkmJmEoKT8uSD8uc2Vla0J5KC01LHZvaWQgMCx2b2lkIDAsNzEpfX07WWthPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZD0+eyFjKCkuZGlzYWJsZVNjcnViYmluZyYmYS5zdGFydFBvc2l0aW9uJiZ2VChhLGQsYigpLGMoKSl9fTsKeFQ9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBkPT57aWYoIWMoKS5kaXNhYmxlU2NydWJiaW5nKWlmKGEuc3RhcnRQb3NpdGlvbil7dmFyIGU9YigpLGY9YygpO3NUKGEsYigpLGMoKSxkKTtpZihmLm9uVG91Y2hFbmQpZi5vblRvdWNoRW5kKGUpfWVsc2UgYigpLlMoe2lzRHJhZ2dpbmc6ITF9KX19O3VUPWZ1bmN0aW9uKGEpe2EuUWMmJmEuUyh7UWM6ITEsZGo6MH0pfTtxVD1mdW5jdGlvbihhLGIsYyl7YT1hLkkoYik7cmV0dXJuIERRKDAsKGMtYS5sZWZ0KS9hLndpZHRoLDEpfTt3VD1mdW5jdGlvbihhKXthLnN0YXJ0UG9zaXRpb249bnVsbDthLm89ITE7YS52PSExO2Euaj0hMX07eVQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/YS53aWR0aC9hLmNvbHVtbnM6MH07elQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/YS5oZWlnaHQvYS5yb3dzOjB9O0FUPWZ1bmN0aW9uKGEpe3JldHVybiBhLlFjP2EuZGo6YS5DYX07CkJUPWZ1bmN0aW9uKGEsYil7YT1hLkNhKjFFMztyZXR1cm4gYT49Yi52aXNpYmxlVGltZVJhbmdlU3RhcnRNaWxsaXMmJmE8PWIudmlzaWJsZVRpbWVSYW5nZUVuZE1pbGxpc307Q1Q9ZnVuY3Rpb24oYSl7aWYoYT09PXZvaWQgMHx8TnVtYmVyLmlzTmFOKGEpKXJldHVybiItLTotLSI7dmFyIGI9TWF0aC5hYnMoTWF0aC5mbG9vcihhKSksYz1NYXRoLmZsb29yKGIvODY0MDApLGQ9TWF0aC5mbG9vcihiJTg2NDAwLzM2MDApLGU9TWF0aC5mbG9vcihiJTM2MDAvNjApO2I9TWF0aC5mbG9vcihiJTYwKTt2YXIgZj0iIjtjPjAmJihmKz1gJHtjfTpgLGQ8MTAmJihmKz0iMCIpKTtpZihjPjB8fGQ+MClmKz1gJHtkfTpgLGU8MTAmJihmKz0iMCIpO2YrPWAke2V9OmA7YjwxMCYmKGYrPSIwIik7Zis9YjtyZXR1cm4gYT49MD9mOmAtJHtmfWB9OwpEVD1mdW5jdGlvbihhLGIpe3JldHVybigpPT57dmFyIGM9QVQoYSgpKTt2YXIgZD1iKCk7dmFyIGU9YSgpLkg7aWYoZSYmZS5nZXROdW1iZXJPZlN0b3J5Ym9hcmRMZXZlbHMoKSE9PTApe3ZhciBmPWUuZ2V0U3Rvcnlib2FyZEZyYW1lSW5kZXgoYywxKTtmIT09LTE/ZD1lLmdldFN0b3J5Ym9hcmRGcmFtZShmLDEpOihjPWUuZ2V0U3Rvcnlib2FyZEZyYW1lSW5kZXgoYywwKSxlPWUuZ2V0U3Rvcnlib2FyZEZyYW1lKGMsMCksZCYmZSYmKGUuaGVpZ2h0Kj0zLGUud2lkdGgqPTMpLGQ9ZSl9ZWxzZSBkPW51bGw7aWYoIWQpcmV0dXJuIG51bGw7YigpJiYoZC53aWR0aD05MCpkLmNvbHVtbnMsZC5oZWlnaHQ9MTYwKmQucm93cyk7cmV0dXJuIGR9fTsKJGthPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBhLk5hfHxhLmlzTGl2ZT9kOmI+MT9FVChkKTpzZXRUaW1lb3V0KCgpPT57YygpO25hdmlnYXRvcj8udmlicmF0ZSYmbmF2aWdhdG9yLnZpYnJhdGUoWmthKX0sXy5zaigic3BlZWRtYXN0ZXJfdG91Y2hfYWN0aXZhdGlvbl9tcyIsNTAwKSl9O0VUPWZ1bmN0aW9uKGEpe2EhPT12b2lkIDAmJmNsZWFyVGltZW91dChhKX07CkhUPWZ1bmN0aW9uKGEsYil7YS5OYXx8YS5pc0xpdmV8fChiPjEmJkZUKGEpLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgicHJldmVudC1oaWdobGlnaHRzIiksR1Q9c2V0VGltZW91dCgoKT0+e2EuSD8ucGxheVZpZGVvKCk7YlQoKTthLlMoe3NiOiEwLGVhOiEwfSk7dmFyIGM9Xy5zaigic3BlZWRtYXN0ZXJfcGxheWJhY2tfcmF0ZSIsMiksZD1hLkg7ZD8uc2V0UGxheWJhY2tSYXRlPy4oYyk7Xy54KCJtd2ViX2xvbmdfcHJlc3Nfc3BlZWR1cF92aWJyYXRpb24iKSYmZD8uZ2V0UGxheWJhY2tSYXRlKCk9PT1jJiZuYXZpZ2F0b3I/LnZpYnJhdGUmJm5hdmlnYXRvci52aWJyYXRlKGFsYSl9LF8uc2ooInNwZWVkbWFzdGVyX3RvdWNoX2FjdGl2YXRpb25fbXMiLDUwMCkpKX07CklUPWZ1bmN0aW9uKGEsYixjKXtjLnNiJiZhLnByZXZlbnREZWZhdWx0KCk7YT1iLmxrO2I9Yi5PZDtNYXRoLnNxcnQoYSphK2IqYik+Xy5zaigic3BlZWRtYXN0ZXJfY2FuY2VsbGF0aW9uX21vdmVtZW50X2RwIiwxMCkmJiFjLnNiJiZGVChjKX07RlQ9ZnVuY3Rpb24oYSl7ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJwcmV2ZW50LWhpZ2hsaWdodHMiKTtHVCYmY2xlYXJUaW1lb3V0KEdUKTthLnNiJiYoYS5TKHtzYjohMSxlYTp1UyhhKX0pLGE9YS5ILHR5cGVvZiBhPy5zZXRQbGF5YmFja1JhdGU9PT0iZnVuY3Rpb24iP2Euc2V0UGxheWJhY2tSYXRlKDEpOl8uV2koRXJyb3IoIiRkIikpKX07CmNsYT1mdW5jdGlvbihhLGIsYyl7aWYoYiYmYSl7dmFyIGQ9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihiPWJsYShiLGQud2lkdGgsZC5oZWlnaHQpKWM/LlpBJiYoYz1uZXcgSW1hZ2UsYy5vbmxvYWQ9KCk9PntpamEoKX0sYy5zcmM9YixfLkl6KCJmdHIiKSksYS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9YHVybCgke2J9KWB9fTtibGE9ZnVuY3Rpb24oYSxiLGMpe2lmKChhPWEudGh1bWJuYWlscykmJmEubGVuZ3RoIT09MCl7dmFyIGQ9d2luZG93LmRldmljZVBpeGVsUmF0aW8+MT93aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbzoxO2IqPWQ7Yyo9ZDtpZihiPjY0MHx8Yz40ODApcmV0dXJuIGEuYXQoLTEpLnVybDtpZihiPjMyMHx8Yz4xODApe3ZhciBlO2Q9Yj1jPXZvaWQgMDtmb3IoZSBvZiBhKSFkJiZlLndpZHRoPj0zMjA/ZD1lLnVybDohYiYmZS53aWR0aD49NDgwP2I9ZS51cmw6IWMmJmUud2lkdGg+PTY0MCYmKGM9ZS51cmwpO2lmKGU9Y3x8Ynx8ZClyZXR1cm4gZX1yZXR1cm4gYVswXS51cmx9fTsKSlQ9ZnVuY3Rpb24oYSl7KGE9YT8uaGVhZGVyPy5wbGF5bGlzdEhlYWRlclJlbmRlcmVyKT8oYT1fLkIoYS5jaW5lbWF0aWNDb250YWluZXIsZGxhKT8uYmFja2dyb3VuZEltYWdlQ29uZmlnPy50aHVtYm5haWw/LnRodW1ibmFpbHMsYT1hPy5sZW5ndGg/YVthLmxlbmd0aC0xXS51cmw6dm9pZCAwLGE9IWEpOmE9ITE7cmV0dXJuIGF9O0tUPWZ1bmN0aW9uKGEpe2E9YXx8Xy5YRD8ucmVzcG9uc2U/LnJlc3BvbnNlO3JldHVybiBhPy5oZWFkZXI/LnBhZ2VIZWFkZXJSZW5kZXJlcn07T1Q9ZnVuY3Rpb24oKXt2YXIgYT1fLlhEPy5yZXNwb25zZT8ucmVzcG9uc2U7cmV0dXJuISFLVCgpPy50aXRsZUFuaW1hdGlvbnx8SlQoYSl9OwpQVD1mdW5jdGlvbigpe3ZhciBhPV8uWEQ/LnJlc3BvbnNlPy5yZXNwb25zZSxiPUtUKGEpO2lmKGIpYT1iLnRvcEJhckFuaW1hdGlvbj8hMDohMTtlbHNle2lmKGI9WFEoKSYmIV8uVk0oKSliPV8uWmIod2luZG93LmxvY2F0aW9uLmhyZWYsImxpc3QiKSxiPSEoYj8uc3RhcnRzV2l0aCgiRUwiKXx8Yj8uc3RhcnRzV2l0aCgiU0MiKSk7YT1iJiYhSlQoYSl9cmV0dXJuIGF9OwplbGE9ZnVuY3Rpb24oKXtpZihfLncoIk1XRUJfU1RJQ0tZX1BMQVlFUiIsITEpJiZRVCgpJiZ3aW5kb3cubG9jYXRpb24uaGFzaCE9PSIjc2VhcmNoaW5nIiYmXy5VTSgpIT09InNlYXJjaCIpe3ZhciBhPXdpbmRvdy5zY3JvbGxZLGI7KGI9Xy5WTSgpKXx8KGI9Xy5VTSgpPT09ImNsaXAiKTtpZihiKSFfLlRFKCkmJiFIUSgpfHwoXy5GZWEub2Zmc2V0SGVpZ2h0PndpbmRvdy5pbm5lckhlaWdodCouNj9fLlR0KF8uRUosInN0aWNreS1wbGF5ZXIiKTpfLlN0KF8uRUosInN0aWNreS1wbGF5ZXIiKSksUlQoImluIiksU1Q9YTtlbHNle2I9U1Q+YTt2YXIgYz1hPj00OCxkPWE8MTI2O1NUPWE7Yj8oYz9SVCgiZmlsbGVkIik6UlQoImluIiksSVEoKSYmZD9UVCgiZmlsdGVyLWNoaXAtYmFyLXN0YXRpYyIpOlRUKCJmaWx0ZXItY2hpcC1iYXItaW4iKSk6Yz9QVCgpfHxPVCgpP1JUKCJmaWxsZWQiKTooUlQoIm91dCIpLElRKCkmJmQ/VFQoImZpbHRlci1jaGlwLWJhci1zdGF0aWMiKTpUVCgiZmlsdGVyLWNoaXAtYmFyLW91dCIpKToKKFJUKCJpbiIpLElRKCk/VFQoImZpbHRlci1jaGlwLWJhci1zdGF0aWMiKTpUVCgiZmlsdGVyLWNoaXAtYmFyLWluIikpfX12YXIgZTtfLlZNKCkmJihlPVFUKCkpIT1udWxsJiYoYT1lLnNldEF0dHJpYnV0ZSxiPV8uTUUoKT8xOjI0LF8uRE4ubGVuZ3RoPjAmJiFfLnhOKCk/KGM9TnVtYmVyKGRvY3VtZW50LmJvZHkuc3R5bGUudG9wLnJlcGxhY2UoLyhweCl8LS9nLCIiKSksYj0haXNOYU4oYykmJmM8Yik6Yj1TVDxiLGEuY2FsbChlLCJhbWJpZW50LXRvcGJhciIsYi50b1N0cmluZygpKSl9O1FUPWZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoZWFkZXItYmFyIi50b1N0cmluZygpKX07ClRUPWZ1bmN0aW9uKGEpe3ZhciBiPV8uVU0oKT09PSJob21lInx8SVEoKT9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsdGVyLWNoaXAtYmFyIi50b1N0cmluZygpKTpudWxsO2ImJihfLlR0KGIsImZpbHRlci1jaGlwLWJhci1zdGF0aWMiKSxfLlR0KGIsImZpbHRlci1jaGlwLWJhci1pbiIpLF8uVHQoYiwiZmlsdGVyLWNoaXAtYmFyLW91dCIpLF8uU3QoYixhKSl9OwpSVD1mdW5jdGlvbihhKXt2YXIgYj1RVCgpO2lmKGIpe2xldCBjPV8uYUwoe1sic3RpY2t5LXBsYXllciJdOl8udygiTVdFQl9TVElDS1lfUExBWUVSIiwhMSksWyJpcy1hdXRvbW90aXZlIl06SFEoKX0pO18uV00oKT9jPV8uYUwoYywidG9wYmFyLXRyYW5zcGFyZW50LWJhY2tncm91bmQiLCJzaG9ydHMtdG9wYmFyIik6UFQoKT9jPV8uYUwoYywidG9wYmFyLXRyYW5zcGFyZW50LWJhY2tncm91bmQiKTpPVCgpJiYoYz1fLmFMKGMsInRvcGJhci10cmFuc3BhcmVudC10aXRsZSIpKTtiLmNsYXNzTmFtZT1fLmFMKGEsYyl9fTtmbGE9ZnVuY3Rpb24oKXtyZXR1cm4gVVR9O2hsYT1mdW5jdGlvbihhLGIpe2ImJihWVD0hMCk7YT1VVD1hO2I9SlIoKTthIT09YiYmKGI9Xy5IeigpLF8uRHooMTQxLCEwKSxfLkR6KDE0MCwhYSksYi5zYXZlKCkpO2dsYSgpfTtnbGE9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KCgpPT57Xy5YTSgicGxheWVyLWF1dG9uYXYtcGF1c2UiLHtwYXVzZWQ6ITF9KX0pfTsKaWxhPWZ1bmN0aW9uKCl7cmV0dXJuIFZUfTtXVD1mdW5jdGlvbihhLGIpe3JldHVybiBfLk1FKCk/YiYmYT8udmlkZW9EdXJhdGlvbj4zMDpiJiYhYS5lYX07WFQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYiYmYS5lYSYmIV8uTUUoKX07amxhPWFzeW5jIGZ1bmN0aW9uKGEsYil7aWYoYj1iPz9hd2FpdCBfLkxIKCkpYi51bk11dGUoITApLGIuc2V0Vm9sdW1lKGEsITApfTtaVD1mdW5jdGlvbihhLGIpe2EmJihhLnZhbHVlPWAke2J9YCxhLnN0eWxlLnNldFByb3BlcnR5KCItLWdyYWRpZW50LXBlcmNlbnQiLGAke2J9JWApKX07a2xhPWZ1bmN0aW9uKGEpe3JldHVybiBfLngoInBsYXllcl9jb250cm9sc191c2VfcGxheWVyX2FwaV9jb250ZXh0Iik/Xy5rRygkVCk6YX07YVU9ZnVuY3Rpb24oYSl7cmV0dXJuYGh0dHBzOi8vbS55b3V0dWJlLmNvbS9zdGF0aWMvbG90dGllLyR7YX0uanNvbmB9OwpiVT1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAiYW5pbWF0ZWRfbGlrZV9pY29uIjpyZXR1cm57bmFtZToiYW5pbWF0ZWRfbGlrZV9pY29uX3YyX2RhcmsiLHBhdGg6YVUoImFuaW1hdGVkX2xpa2VfaWNvbl92Ml9kYXJrIiksbG9vcDohMSxhdXRvcGxheTohMSxyZW5kZXJlclNldHRpbmdzOnt2aWV3Qm94T25seTohMCxjbGFzc05hbWU6ImFuaW1hdGVkLWxpa2UtaWNvbiJ9fTtjYXNlICJsaWtlXzI0MGRwX2FuaW1hdGlvbl92MiI6Y2FzZSAibGlrZV90YXBfZmVlZGJhY2tfc2hvcnRzX2hlYXJ0IjpjYXNlICJwYXVzZV85NmRwX2FuaW1hdGlvbiI6Y2FzZSAicGxheV85NmRwX2FuaW1hdGlvbiI6Y2FzZSAic2Vla185NmRwX2FuaW1hdGlvbiI6cmV0dXJue25hbWU6YSxwYXRoOmFVKGEpLGxvb3A6ITEsYXV0b3BsYXk6ITF9O2RlZmF1bHQ6cmV0dXJue25hbWU6IiIscGF0aDoiIn19fTsKY1U9ZnVuY3Rpb24oYSl7Xy5MTygpLnRoZW4oYj0+e2Iuc3RvcCgibGlrZV8yNDBkcF9hbmltYXRpb25fdjIiKTtiLnN0b3AoImxpa2VfdGFwX2ZlZWRiYWNrX3Nob3J0c19oZWFydCIpO2Iuc3RvcCgicGxheV85NmRwX2FuaW1hdGlvbiIpO2Iuc3RvcCgicGF1c2VfOTZkcF9hbmltYXRpb24iKTtiLnBsYXkoYSl9KX07CmxsYT1mdW5jdGlvbihhKXt2YXIgYj1fLkh6KCk7SFEoKXx8YS5xdnx8YS5zdXBwcmVzc0FmdGVyQ2xvc2luZyYmTnVtYmVyKGIuZ2V0KCJzdXBwcmVzc19hcHBfdXBzZWxsIikpJiYhXy54KCJtd2ViX2FwcF91cHNlbGxfYnV0dG9uIil8fChkVXx8KGRVPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGRVLGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCkpLF8uSk4oZFUsbnVsbCwhMCksYSE9PWVVJiYoZlU/LigpLGZVPV8ueEYoZFUsKCk9PntfLm9GKCgpPT57Xy5NTygiLll0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVySG9zdCAuWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJDb250ZW50cyIpfSk7cmV0dXJuIF8uSyhfLklCLG51bGwsXy5LKCJkaXYiLHtjbGFzczoiWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJTY3JpbUNvbnRhaW5lciJ9LF8uSyhfLlpOLHtsYWJlbDpfLiROLkNMT1NFfSkpLF8uSygiZGl2Iix7Y2xhc3M6Ill0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyT3ZlcmxheUNvbnRhaW5lciJ9LApfLksoZ1Use2RhdGE6YX0pKSl9LCJkZCIpKSxlVT1hKX07aFU9ZnVuY3Rpb24oKXtyZXR1cm57c3R5bGU6Im92ZXJsYXktZGFyayIsaWNvblBvc2l0aW9uOiJpY29uLXdpdGgtbGFiZWwiLHNpemU6IkwiLHNpemU6IlMiLHR5cGU6InRleHQiLHN0eWxlOiJvdmVybGF5In19O25sYT1mdW5jdGlvbihhKXt2YXIgYj1fLkIoYS5zaG9wcGluZ1Vwc2VsbCxtbGEpO2ImJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntsbGEoYil9KX07b2xhPWZ1bmN0aW9uKGEpe2E/LmxvZ2dpbmdEaXJlY3RpdmVzPy50cmFja2luZ1BhcmFtcyYmXy5seChfLmh4KCksYS5sb2dnaW5nRGlyZWN0aXZlcy50cmFja2luZ1BhcmFtcyl9O2lVPWZ1bmN0aW9uKGEpe3JldHVybiBhfHxfLlZNKCl8fF8uVU0oKT09PSJob21lIn07alU9ZnVuY3Rpb24oYSxiKXtpZihiKXtpZihhJiZiLmRhcmtUaGVtZUxvZ28/Lmljb24/Lmljb25UeXBlKXJldHVybiBiLmRhcmtUaGVtZUxvZ28uaWNvbi5pY29uVHlwZTtpZihiLmxpZ2h0VGhlbWVMb2dvPy5pY29uPy5pY29uVHlwZSlyZXR1cm4gYi5saWdodFRoZW1lTG9nby5pY29uLmljb25UeXBlfX07CmxVPWZ1bmN0aW9uKGEpe3ZhciBiPWEuSDtiJiYoa1U9KGE9a1UpPygoYj1OUShiKSk/Yi5kaXNwbGF5TmFtZXx8IiI6bnVsbCl8fGE6UFEoYikpO3JldHVybiBrVX07bVU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSgpLnBsYXllclN0YXRlPT09MCYmISFiJiYhYSgpLnhmJiZhKCkuYXV0b25hdkVuYWJsZWR9O25VPWZ1bmN0aW9uKGEsYil7Yj1NUyhiKTtyZXR1cm4gYSgpLnBsYXllclN0YXRlPT09MCYmYi5sZW5ndGg+MH07b1U9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuSD8uaXNSZWFkeT8uKCkmJmEuSD8uaXNBdExpdmVIZWFkKCl9O3BVPWZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGF5ZXItY29udHJvbC1vdmVybGF5Iil9O3BsYT1mdW5jdGlvbihhKXthIT09LTEmJl8ueCgicGxheWVyX2NvbnRyb2xzX2xvZ19jcmVhdGlvbl9lbmFibGVkIikmJnBVKCkmJihfLkFxKCJwY3VfY3MiLGEpLF8uQXEoInBjdV9jZSIpKX07CnFVPWZ1bmN0aW9uKGEpe2lmKCFhfHxhLmdldFZpZGVvRGF0YSlyZXR1cm4gYX07cWxhPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBjIG9mIE9iamVjdC5rZXlzKGEpKWlmKGFbY10hPT1iW2NdKXJldHVybiExO3JldHVybiEwfTtyVT1mdW5jdGlvbigpe3JldHVybiBfLncoIk1XRUJfU1VQUE9SVFNfRE9VQkxFX1RBUF9UT19TRUVLIil9O3JsYT1mdW5jdGlvbihhLGIpe3JldHVybiBhPGIvMz8tMTphPjIqYi8zPzE6MH07c1U9ZnVuY3Rpb24oYSxiLGMpe3JVKCkmJnZTKHsuLi5jLEpkOmIsS2I6YX0pJiYoKGE9Yy5IKSYmYS5zZWVrQnkoTWF0aC5zaWduKGIpKjEwLHZvaWQgMCx2b2lkIDAsNCksYy5wbGF5ZXJTdGF0ZT09PTJ8fGMuSD8ucGF1c2VWaWRlbygpLGI9PT0tMT9YUygyODIzOSk6WFMoMjgyNDApKX07CnVVPWZ1bmN0aW9uKGEsYil7clUoKSYmKGNsZWFyVGltZW91dCh0VSksdFU9c2V0VGltZW91dCgoKT0+e3ZhciBjPXtLYjowLEpkOjAseWg6MH07aWYodlMoYSkpe3ZhciBkPXVTKGEpfHxhLkNhPj1hLnZpZGVvRHVyYXRpb247Yy5lYT1hLnBsYXllclN0YXRlPT09Mnx8YS5wbGF5ZXJTdGF0ZT09PTN8fGQ7Yy52YT1hLkNhO2MueWI9ITE7YS5IPy5pc1JlYWR5Py4oKSYmKGEuSC5zZWVrVG8oYS5DYSksZD17Li4uYSwuLi5jfSwoZC5pc0xpdmV8fGQudmE8ZC52aWRlb0R1cmF0aW9uKSYmZC5PbiYmZC5IPy5nZXRQbGF5ZXJTdGF0ZSgpIT09MSYmZC5IPy5wbGF5VmlkZW8oKSl9ZWxzZSBhLktiPT09MSYmYj8uKCk7YS5TKGMpO2NsZWFyVGltZW91dCh0VSl9LGEuYmE/LnZ2Pz82MDApKX07c2xhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHJVKCkmJmIhPT0wP2EuSmQhPT1iPzE6KDAsXy5lbCkoKS1hLnloPjM1MD9hLktiOmEuS2IrMTowfTsKdWxhPWFzeW5jIGZ1bmN0aW9uKCl7dmFyIGE9YXdhaXQgdlUuamMoKTthJiYoYT1hd2FpdCBhLmdldCgiYXV0by16b29tLWVuYWJsZWQiKSx0bGEodHlwZW9mIGE9PT0iYm9vbGVhbiI/YTohMCkpfTt3VT1mdW5jdGlvbihhKXt2YXIgYj1hLnRvdWNoZXNbMF0sYz1hLnRvdWNoZXNbMV07YT1iLnBhZ2VYLWMucGFnZVg7Yj1iLnBhZ2VZLWMucGFnZVk7cmV0dXJuIE1hdGguc3FydChhKmErYipiKX07CklVPWZ1bmN0aW9uKGEsYil7eFUoYSkmJihhLnN0b3BQcm9wYWdhdGlvbigpLGE9eVUtelUsQVV8fChhPTApLEZUKGIpLF8ueCgid2ViX2VuYWJsZV9zbWFydF96b29tIikmJihCVT0wLENVKCkmJkRVKCExKSksYi5iYT8uTWl8fChiLk5hfHxiLldkfHxiLnNifHxfLlRFKCl8fF8uTUUoKSYmIWIuaXNGdWxsc2NyZWVufHwoYi5pc0Z1bGxzY3JlZW4mJihhKj0tMSksKGE8LTEwMHx8TWF0aC5hYnMoYSk+MTAwJiZiLmlzRnVsbHNjcmVlbikmJmIudGEudG9nZ2xlRnVsbHNjcmVlbih7ZHM6ITB9KSxFVSYmT2JqZWN0LmFzc2lnbihFVS5zdHlsZSx7dHJhbnNmb3JtOiJzY2FsZSgxKSIsdHJhbnNpdGlvbjoiMC4ycyBlYXNlIn0pKSxiLldkJiYoKGE9TWF0aC5hYnMoYi5KZik+NTA/IWIuTmE6Yi5OYSl8fGNUKGIpLGIuUyh7V2Q6ITEsTmE6YSxKZjowfSkpKSxGVT0oMCxfLmVsKSgpLHlVPUdVPXpVPUhVPTAsQVU9ITEpfTsKeFU9ZnVuY3Rpb24oYSl7dmFyIGI9W2EudGFyZ2V0Py5nZXRBdHRyaWJ1dGUoImlkIiksLi4uKGEudGFyZ2V0Py5jbGFzc0xpc3R8fFtdKV07cmV0dXJuISEicGxheWVyLWNvbnRyb2wtb3ZlcmxheSBwbGF5ZXItY29udHJvbHMtbWlkZGxlIHBsYXllci1jb250cm9scy1ib3R0b20gZnVsbHNjcmVlbi1jb250cm9scyBwbGF5ZXItY29udHJvbHMtYmFja2dyb3VuZCB0b3AtZnVsbC1zY3JlZW4tY29udHJvbHMiLnNwbGl0KCIgIikuZmluZChjPT5iLmZpbmQoZD0+ZD09PWMpKX07CktVPWZ1bmN0aW9uKGEsYil7aWYoYi5OYSlKVShhKSYmYi5TKHtOYTohMX0pO2Vsc2UgaWYoYi5wbGF5ZXJTdGF0ZSE9PS0xJiZiLnBsYXllclN0YXRlIT09NSlpZihKVShhKSl7dmFyIGM9V1EoYi5IKTtiLlMoe2VhOiEwLHliOiEwLGplOmN9KX1lbHNle3ZhciBkPXJsYShhLmNsaWVudFgsYi5UYy5vZmZzZXRXaWR0aCk7Yz1zbGEoYixkKTt2YXIgZT1jPmIuS2I7bGV0IGY9Yi5DYTtlJiYoZj1jPDI/Yi52YTpEUShiLkNhKyhkPT09LTE/LTE6MSkqMTAsMCxiLnZpZGVvRHVyYXRpb24pLHNVKGMsZCxiKSk7IWIuZWEmJmM8PTE/Y1QoYix7SWM6ITB9KTpiVCgpO2E9Yi5iYT8uenYmJmIuZWEmJiFKVShhKTtkPXtlYTp2bGEoey4uLmIsS2I6Y30pfHxhLFloOiExLEpkOmQsQ2E6ZixLYjpjLHliOiEwLHloOigwLF8uZWwpKCl9O2U/dVUoey4uLmIsS2I6YyxDYTpmfSxhPygpPT57aWYoYi5IPy5pc1JlYWR5Py4oKSl7bGV0IGg9V1EoYi5IKTtiLlMoe2plOmh9KX19OnZvaWQgMCk6YSYmYi5IJiYKKGU9V1EoYi5IKSxiLlMoe2plOmV9KSk7Yz09PTEmJihkLk9uPWIucGxheWVyU3RhdGU9PT0xfHxiLnBsYXllclN0YXRlPT09Myk7Yi5TKGQpfX07SlU9ZnVuY3Rpb24oYSl7cmV0dXJuIV8ueCgibXdlYl9pb3NfZGV0ZWN0X2Zha2VfY2xpY2tfa2lsbHN3aXRjaCIpJiZfLkdLJiZGVT4wJiYoMCxfLmVsKSgpLUZVPDEwMD8hMTp0eXBlb2YgUG9pbnRlckV2ZW50IT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBQb2ludGVyRXZlbnQmJmEucG9pbnRlclR5cGU9PT0ibW91c2UifTt2bGE9ZnVuY3Rpb24oYSl7cmV0dXJuIHVTKGEpfHxhLnBsYXllclN0YXRlPT09M3x8YS5LYj4xPyEwOiFhLmVhfTt3bGE9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pnt2YXIgYj1hKCksYz17dm9sdW1lOmIuSD8uZ2V0Vm9sdW1lKCk/PzAscmM6ISFiLkg/LmlzTXV0ZWQoKX07Yi5TKGMpfX07CnhsYT1mdW5jdGlvbihhKXtyZXR1cm4oKT0+e3ZhciBiPWEoKSxjPWIuSDtpZihjKXt2YXIgZD17eGM6ISFjLmdldE9wdGlvbnMoImNhcHRpb25zIil9O2QueGMmJihkLmNhcHRpb25zRW5hYmxlZD1PUShjKSk7Yi5TKGQpfX19Owp6bGE9ZnVuY3Rpb24oYSl7cmV0dXJuIGI9Pnt2YXIgYz1hKCksZD1jLkg7aWYoZCYmIWQuaXNLZXlib2FyZERpc2FibGVkPy4oKSYmIXlsYShiLnRhcmdldCxiKSl7c3dpdGNoKGIuY29kZSl7Y2FzZSAiU3BhY2UiOmNhc2UgIktleUsiOmQ9V1EoZCk7Yy5TKHtlYTohMCxqZTpkfSk7YnJlYWs7Y2FzZSAiQXJyb3dMZWZ0IjpjYXNlICJLZXlKIjpMVShjLC0xKTticmVhaztjYXNlICJBcnJvd1JpZ2h0IjpjYXNlICJLZXlMIjpMVShjLDEpO2JyZWFrO2Nhc2UgIktleU0iOmMucmM/ZC51bk11dGUoKTpkLm11dGUoKTtjLlMoe2VhOiEwfSk7YnJlYWs7Y2FzZSAiS2V5RiI6UlEoKTtkLnRvZ2dsZUZ1bGxzY3JlZW4oKTtjLlMoe2VhOiEwfSk7Yi5zdG9wUHJvcGFnYXRpb24oKTticmVhaztjYXNlICJLZXlDIjpjLnhjJiZRUShkLGxVKGMpKTtjLlMoe2VhOiEwfSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59Yi5wcmV2ZW50RGVmYXVsdCgpO2Iuc3RvcFByb3BhZ2F0aW9uKCl9fX07CkxVPWZ1bmN0aW9uKGEsYil7aWYoXy54KCJtd2ViX2tleWJvYXJkX3NlZWtfb3ZlcmxheV9raWxsc3dpdGNoIikpYS5IPy5zZWVrQnkoMTAqKGI9PT0tMT8tMToxKSksYS5TKHtlYTohMH0pO2Vsc2V7dmFyIGM9YS5LYixkPWEuSmQsZT0oMCxfLmVsKSgpLGY9ZS1hLnloO2M9ZCE9PWJ8fGY+MzUwPzI6YysxO2Q9Yj09PS0xPy0xOjE7ZD1jPT09Mj8oYS52YXx8MCkrZCoxMDphLkNhK2QqMTA7ZD1EUShkLDAsYS52aWRlb0R1cmF0aW9uKTtlPXtlYTohMCxZaDohMSxKZDpiLENhOmQsS2I6Yyx5YjohMCx5aDplfTtjPT09MiYmKGUuT249YS5wbGF5ZXJTdGF0ZT09PTF8fGEucGxheWVyU3RhdGU9PT0zKTtzVShjLGIsey4uLmEsLi4uZX0pO3VVKHsuLi5hLC4uLmV9KTthLlMoZSl9fTsKeWxhPWZ1bmN0aW9uKGEsYil7aWYoYi5jdHJsS2V5fHxiLmFsdEtleXx8Yi5tZXRhS2V5KXJldHVybiEwO3ZhciBjPWEudGFnTmFtZTtyZXR1cm4gYz09PSJJTlBVVCJ8fGM9PT0iVEVYVEFSRUEifHxjPT09IlNFTEVDVCJ8fGIua2V5PT09IlRhYiJ8fGIuY29kZT09PSJTcGFjZSImJihjPT09IkJVVFRPTiJ8fGM9PT0iQSJ8fChhPWEuZ2V0QXR0cmlidXRlKCJyb2xlIikpJiYoYT09PSJidXR0b24ifHxhPT09Im9wdGlvbiJ8fGEuc3RhcnRzV2l0aCgibWVudWl0ZW0iKSkpPyEwOiExfTsKT1U9ZnVuY3Rpb24oYSxiKXt2YXIgYz17Li4uYSgpLHBsYXllclN0YXRlOjB9LGQ9QVMoYigpPy53YXRjaE5leHRSZXNwb25zZSksZT1CUyhiKCk/LndhdGNoTmV4dFJlc3BvbnNlKTtIUyhjLGQpJiYoTVUoYSksYy5TKHt5ZjohZT8uY291bnREb3duU2Vjc3x8ZS5jb3VudERvd25TZWNzPD0wPzEwOmUuY291bnREb3duU2Vjc30pLGM9d2luZG93LnNldEludGVydmFsKCgpPT57dmFyIGY9YSgpO2lmKGYueWYhPT0xKWYuUyh7eWY6Zi55Zi0xfSk7ZWxzZXtNVShhKTtmPWIoKT8ud2F0Y2hOZXh0UmVzcG9uc2U7Zj1BUyhmKTtsZXQgaD1mPy5zZXRzPy5bMF0uYXV0b3BsYXlWaWRlbztoJiZfLkFKKGgsZiwhMSx7YXV0b25hdjoiMSJ9KX19LDFFMyksXy54KCJtd2ViX3BsYXllcl91bmlmaWNhdGlvbl9zdGF0ZV9yZWZhY3Rvcl9raWxsc3dpdGNoIik/TlU9YzphKCkuUyh7Rms6Y30pKX07Ck1VPWZ1bmN0aW9uKGEpeyFfLngoIm13ZWJfcGxheWVyX3VuaWZpY2F0aW9uX3N0YXRlX3JlZmFjdG9yX2tpbGxzd2l0Y2giKSYmYT8oYT1hKCksYS5GayE9PXZvaWQgMCYmKGNsZWFySW50ZXJ2YWwoYS5GayksYS5TKHtGazp2b2lkIDB9KSkpOk5VJiYoY2xlYXJJbnRlcnZhbChOVSksTlU9dm9pZCAwKX07CkJsYT1mdW5jdGlvbihhLGIpe3JldHVybiBjPT57dmFyIGQ9YSgpLGU9e3hmOiExfTtlLnBsYXllclN0YXRlPWM7ZC5IJiZWUShkLkgpJiYoZS5wbGF5ZXJTdGF0ZT0yKTtjPT09MSYmKGQuSD8ubG9hZE1vZHVsZSgiY2FwdGlvbnMiKSxfLngoIm13ZWJfYmV0dGVyX2NhcHRpb25zX3BsYWNlbWVudCIpJiZkLkg/LnNldFN1YnRpdGxlc1RhcmdldENvbnRhaW5lcklkKCJjYXB0aW9ucy1nYWxvcmUtY29udGFpbmVyIikpO2M9PT0wJiYoZC5IPy51bmxvYWRNb2R1bGUoImNhcHRpb25zIiksXy54KCJtd2ViX2JldHRlcl9jYXB0aW9uc19wbGFjZW1lbnQiKSYmZC5IPy5jbGVhclN1YnRpdGxlc1RhcmdldENvbnRhaW5lcklkKCkpO2lmKGUucGxheWVyU3RhdGU9PT0tMSllLmVhPSEwO2Vsc2UgaWYoZS5wbGF5ZXJTdGF0ZT09PTUpZS5lYT0hMDtlbHNlIGlmKGUucGxheWVyU3RhdGU9PT0zKWUuZWE9ITAsYlQoKTtlbHNlIGlmKGUucGxheWVyU3RhdGU9PT0xKWQuc2J8fGQueXF8fChkLnliPwpjVCh7Li4uZCwuLi5lfSk6ZS5lYT0hMSk7ZWxzZSBpZihlLnBsYXllclN0YXRlPT09MiliVCgpO2Vsc2UgaWYoZS5wbGF5ZXJTdGF0ZT09PTApe2UuZWE9ITA7YlQoKTtjPWEoKTt2YXIgZj1iKCk/LndhdGNoTmV4dFJlc3BvbnNlO2lmKGY9Xy5CKGY/LmNvbnRlbnRzPy5zaW5nbGVDb2x1bW5XYXRjaE5leHRSZXN1bHRzPy5hdXRvcGxheT8uYXV0b3BsYXk/LmF1dG9wbGF5RXhwbGljaXRDaG9pY2VEaWFsb2dSZW5kZXJlcixBbGEpKWYuZGlzYWJsZUJ1dHRvblN0eWxlT3ZlcnJpZGVzPSEwOyFjLnRhLlVsKCkmJmYmJihjLnRhLmV4aXRGdWxsc2NyZWVuKCksXy5BSih7b3BlblBvcHVwQWN0aW9uOntwb3B1cDp7Y29uZmlybURpYWxvZ1JlbmRlcmVyOmZ9LHBvcHVwVHlwZToiRElBTE9HIn19LHt9LCExKSk7ZC5hdXRvbmF2RW5hYmxlZCYmKE9VKGEsYiksXy5NTygiI3BsYXllci1lbmRzY3JlZW4gLnl0d1BsYXllckVuZHNjcmVlblRvcFBhbmVsIGJ1dHRvbiIsNSx7cmw6ITB9KSl9ZC5TKGUpfX07CkNsYT1mdW5jdGlvbihhKXtQVSgoKT0+YSkoKX07RGxhPWZ1bmN0aW9uKGEpe3JldHVybigpPT57dmFyIGI9YSgpLGM9Yi5IO2MmJlZRKGMpJiZiLlMoe3BsYXllclN0YXRlOjJ9KX19OwpQVT1mdW5jdGlvbihhKXtyZXR1cm4gYj0+e3ZhciBjPWEoKTt2YXIgZD1jLkg7dmFyIGU9ZD8uZ2V0VmlkZW9EYXRhKCksZj1lPy5pc0xpdmV8fCExLGg9ZT8udmlkZW9faWQ7ZT1lPy5hbGxvd0xpdmVEdnI/PyEwO2Y9e3ZpZGVvRHVyYXRpb246VVEoZHx8dm9pZCAwKSxpc0xpdmU6Zix2aWRlb0lkOmgsaXNMaXZlRHZyRW5hYmxlZDplfTtmLnZpZGVvSWQhPT1jLnZpZGVvSWQmJihmPXsuLi5kVChkKSwuLi5mfSk7Yj8ucGxheWVydHlwZSYmKGYucGxheWVyVHlwZT1iLnBsYXllcnR5cGUpO2QmJihmLnhjPSEhZC5nZXRPcHRpb25zKCJjYXB0aW9ucyIpLGI9ZixoPShoPWQuZ2V0U3Rvcnlib2FyZExldmVsKGQuZ2V0TnVtYmVyT2ZTdG9yeWJvYXJkTGV2ZWxzKCktMSk/LmludGVydmFsTXMpP2gvMUUzOnZvaWQgMCxiLlpyPWgsZi54YyYmKGYuY2FwdGlvbnNFbmFibGVkPU9RKGQpKSk7Zi5yYz0hIWQ/LmlzTXV0ZWQoKTtkPWY7ZC5hdXRvbmF2RW5hYmxlZD1jLnRhLmRlKCk7ZC5pc1BsYXlsaXN0PQpYUSgpO2MuYmE/Lk1sIT09dm9pZCAwJiYoZC55Yj0hMCk7ZC5pc0Z1bGxzY3JlZW49Yy5pc0Z1bGxzY3JlZW47ZC5wbGF5ZXJTdGF0ZT09PTMmJihkLmVhPSEwKTtkLnBsYXllclN0YXRlPT09LTEmJihkLmVhPSEwKTtiPWMuR2M7eVMoey4uLmMsLi4uZH0pP2ImJihiLnN0eWxlLmRpc3BsYXk9Im5vbmUiKTpiJiYoYi5zdHlsZS5kaXNwbGF5PSIiKTtNVShhKTtjLlMoZCl9fTsKRWxhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGM9Pnt2YXIgZD1hKCksZT1iKCksZj1kLkg7aWYoZil7ZC52aWRlb0lkPT09dm9pZCAwJiZDbGEoZCk7aWYoZSYmYyE9PXZvaWQgMCl7dmFyIGg9ey4uLmQsdmE6Y307KGU9RVMoZS5wbGF5ZXJPdmVybGF5UmVuZGVyZXIpKSYmIWguaXNEcmFnZ2luZyYmKGg9a1QoaCxlKSxtVChoKSl9aD1mLmdldFByZXNlbnRpbmdQbGF5ZXJUeXBlKCk7Yz17dmE6Y3x8MCxRbTpmLmdldFZpZGVvTG9hZGVkRnJhY3Rpb24oKSxwbGF5ZXJUeXBlOmh9O3VTKGQpJiYoYy52YT1kLnZpZGVvRHVyYXRpb24pO2QuaXNMaXZlJiYoaD1mLmdldFByb2dyZXNzU3RhdGUoaCksYy52YS09aC5zZWVrYWJsZVN0YXJ0LGMudmlkZW9EdXJhdGlvbj1VUShmKSk7eVMoZCkmJmRlbGV0ZSBjLnZhO2Y9Yzt5Uyh7Li4uZCwuLi5mfSkmJihjPWQuR2MpJiYoYy5zdHlsZS5kaXNwbGF5PSJub25lIik7ZC5TKGYpfX19OwpGbGE9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9PnthKCkuUyh7ZWE6ITEscmM6ITF9KX19O0dsYT1mdW5jdGlvbihhKXtyZXR1cm4gYj0+e2EoKS5TKHtpc0Z1bGxzY3JlZW46Yi5mdWxsc2NyZWVuLE5hOiExfSl9fTtIbGE9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pnt2YXIgYj1hKCksYz1iLkg7Yi5TKHtpc0Z1bGxzY3JlZW46Yi50YS5pc0Z1bGxzY3JlZW4oKSxjYXB0aW9uc0VuYWJsZWQ6Yz9PUShjKTpiLmNhcHRpb25zRW5hYmxlZH0pfX07SWxhPWZ1bmN0aW9uKGEpe3JldHVybigpPT57dmFyIGI9YSgpO18uVk0oe2hyZWY6d2luZG93LmxvY2F0aW9uLmhyZWZ9KXx8Yi5TKHtpc0Z1bGxzY3JlZW46ITF9KX19OwpKbGE9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pnt2YXIgYj1hKCk7WzkwLDI3MF0uaW5jbHVkZXMoTWF0aC5hYnMod2luZG93Lm9yaWVudGF0aW9uP3dpbmRvdy5vcmllbnRhdGlvbjp3aW5kb3cuc2NyZWVuPy5vcmllbnRhdGlvbj8uYW5nbGU/d2luZG93LnNjcmVlbi5vcmllbnRhdGlvbi5hbmdsZTowKSk/ZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoImxhbmRzY2FwZSIsInRydWUiKTpkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgibGFuZHNjYXBlIik7Yi5OYSYmYi5TKHtOYTohMX0pfX07S2xhPWZ1bmN0aW9uKGEpe3JldHVybigpPT57dmFyIGI9YSgpO2IudGEuZXhpdEZ1bGxzY3JlZW4oKTtiLlMoe2lzRnVsbHNjcmVlbjohMX0pfX07TGxhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGM9Pnt2YXIgZD1hKCk7Yy5kZXRhaWw/LnBhdXNlZD8oTVUoYSksZC56Znx8ZC5TKHt6ZjohMH0pKToodVMoZCkmJk9VKGEsYiksZC56ZiYmZC5TKHt6ZjohMX0pKX19OwpNbGE9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pnt2YXIgYj1hKCksYz1iLnRhLmRlKCk7Y3x8TVUoYSk7Yi5TKHthdXRvbmF2RW5hYmxlZDpjfSl9fTtObGE9ZnVuY3Rpb24oYSl7cmV0dXJuIGI9PnthKCkuUyh7Ung6ISFifSl9fTtRVT1mdW5jdGlvbihhKXtNVShhLnByb3BzKTthLnByb3BzKCkuUyh7eGY6ITB9KX07UlU9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5XRCgoKT0+YS5zZXRzWzBdLnByZXZpb3VzQnV0dG9uVmlkZW8pLGM9Xy5XRCgoKT0+YS5zZXRzWzBdLm5leHRCdXR0b25WaWRlbyk7cmV0dXJue1VhOmIsbmV4dDpjfX07U1U9ZnVuY3Rpb24oYSxiKXtiPWIoKT8ucnVucz8uWzBdLm5hdmlnYXRpb25FbmRwb2ludDt2YXIgYz1fLkIoYixfLlZEKT8udXJsO2EoKS5IPy5pc0VtYmVkc1Nob3J0c01vZGU/LigpJiZjJiZjLmluY2x1ZGVzKCIvd2F0Y2g/dj0iKSYmKF8uQihiLF8uVkQpLnVybD1jLnJlcGxhY2UoIi93YXRjaD92PSIsIi9zaG9ydHMvIikpO3JldHVybiBifTsKVVU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSIiLGU9IiI7c3dpdGNoKGEpe2Nhc2UgLTE6Y2FzZSAwOmQ9Yj8iVk9MVU1FX09GRiI6Yz8iVk9MVU1FX09GRl9ERUxISV9QTEFZRVIiOiJWT0xVTUVfT0ZGX0ZJTExFRCI7ZT1PbGE7YnJlYWs7Y2FzZSAxOmQ9Yj8iVk9MVU1FX1VQX09VVExJTkUiOmM/IlZPTFVNRV9VUF9ERUxISV9QTEFZRVJfRklMTEVEIjoiVk9MVU1FX1VQX0ZJTExFRCI7ZT1UVTticmVhaztjYXNlIDI6ZD1iPyJWT0xVTUVfRE9XTl9PVVRMSU5FIjpjPyJWT0xVTUVfRE9XTl9ERUxISV9QTEFZRVJfRklMTEVEIjoiVk9MVU1FX0RPV05fRklMTEVEIjtlPVRVO2JyZWFrO2RlZmF1bHQ6Xy5lYihhLHZvaWQgMCl9cmV0dXJue2ljb25OYW1lOmQsYXJpYUxhYmVsOmV9fTsKUGxhPWZ1bmN0aW9uKGEsYil7dHlwZW9mIFZVPT09Im51bWJlciImJmNsZWFyVGltZW91dChWVSk7VlU9c2V0VGltZW91dCgoKT0+e2EuUyh7WWg6ITF9KTtWVT12b2lkIDB9LF8uQihiLmVuYWJsZWRFZHVDb21tYW5kLFdVKT8uZHVyYXRpb25Nc3x8NEUzKX07WFU9ZnVuY3Rpb24oYSxiLGMpe2EuUyh7YXV0b25hdkVuYWJsZWQ6YixZaDpjfSk7YS50YS5SaihiLGMpfTtZVT1mdW5jdGlvbihhKXtyZXR1cm4gXy5JRSh7ZGlzcGxheTooKT0+YSgpPyIiOiJub25lIn0pfTtRbGE9ZnVuY3Rpb24oYSl7aWYoXy54KCJlbmFibGVfY3VzdG9tX3NjcnViYmVyX3YyIikmJmEpcmV0dXJue3BsYXloZWFkSW1hZ2U6YS5wbGF5aGVhZEltYWdlLHBsYXloZWFkUmV3aW5kSW1hZ2U6YS5wbGF5aGVhZFJld2luZEltYWdlLHBsYXloZWFkRmFzdEZvcndhcmRJbWFnZTphLnBsYXloZWFkRmFzdEZvcndhcmRJbWFnZX19OwpSbGE9ZnVuY3Rpb24oYSl7YT1hPy5nZXRQbGF5ZXJTdGF0ZU9iamVjdD8uKCk7cmV0dXJuKGE/LmlzQ3VlZHx8YT8uaXNVbnN0YXJ0ZWQpJiYhYT8uaXNFcnJvcn07WlU9ZnVuY3Rpb24oYSl7YS5mb3JFYWNoKGI9PntiKCl9KTthLmxlbmd0aD0wfTtTbGE9ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi5pZD0icGxheWVyLWNvbnRyb2xzIjtiLmNsYXNzTGlzdC5hZGQoInl0UGxheWVyQ29udHJvbHNDb250YWluZXJIb3N0Iik7dmFyIFtjLGRdPV8uSih7fSx2b2lkIDAsImJqSklsZCIpO2EuYWRkRXZlbnRMaXN0ZW5lcigib25WaWRlb0RhdGFDaGFuZ2UiLCgpPT57JFUoYSxiLGMsZCl9KTthLmFkZEV2ZW50TGlzdGVuZXIoIm9uUmVhZHkiLCgpPT57JFUoYSxiLGMsZCl9KTtyZXR1cm4gYn07CiRVPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVRsYShhKTtkKGUpO2hqYShiLCFhLmdldFBsYXllclN0YXRlT2JqZWN0KCk/LmlzRXJyb3J8fCEhYVYoZSkpO2IuaGFzQ2hpbGROb2RlcygpfHxfLnhGKGIsKCk9PlVsYShhLGIsYyksIiRlIil9OwpVbGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPV8uTigoKT0+YVYoYygpKSx2b2lkIDAsImRXNThiZCIpLGU9Xy51RihrPT57aWYoIV8ueCgiZW1iZWRzX2VuYWJsZV9lbWMzZHNfcGZwIikpcmV0dXJuITE7dmFyIGw9YygpO3JldHVybihsPWwuamI/LmVtYmVkZGVkUGxheWVyQ29uZmlnPy5lbWJlZGRlZFBsYXllck1vZGU/P2wucGxheWVyUmVzcG9uc2U/LnBsYXllckNvbmZpZz8uZW1iZWRkZWRQbGF5ZXJDb25maWc/LmVtYmVkZGVkUGxheWVyTW9kZSk/bD09PSJFTUJFRERFRF9QTEFZRVJfTU9ERV9QRlAiOmt9LHtpbml0aWFsOiExfSksZj1fLnVGKGs9PntpZighXy54KCJlbWJlZHNfZW5hYmxlX2VtYzNkc19wZmwiKSlyZXR1cm4hMTt2YXIgbD1jKCk7cmV0dXJuKGw9bC5qYj8uZW1iZWRkZWRQbGF5ZXJDb25maWc/LmVtYmVkZGVkUGxheWVyTW9kZT8/bC5wbGF5ZXJSZXNwb25zZT8ucGxheWVyQ29uZmlnPy5lbWJlZGRlZFBsYXllckNvbmZpZz8uZW1iZWRkZWRQbGF5ZXJNb2RlKT8KbD09PSJFTUJFRERFRF9QTEFZRVJfTU9ERV9QRkwiOmt9LHtpbml0aWFsOiExfSksaD1fLk4oKCk9PntpZighXy54KCJlbWJlZHNfZW5hYmxlX3Nob3J0cyIpfHxfLngoImVtYmVkc19lbmFibGVfc2hvcnRzX2NvdW50ZXJmYWN0dWFsIikpcmV0dXJuITE7dmFyIGs9YygpLlBoPy5lbmRwb2ludDtyZXR1cm4hKCFrfHwhXy5CKGssXy5URCkpfSx2b2lkIDAsIldxZ0pyYiIpO18ubkUoKCk9PntfLngoImVtYmVkc19lbmFibGVfc2hvcnRzIikmJihfLngoImVtYmVkc19lbmFibGVfc2hvcnRzX2NvdW50ZXJmYWN0dWFsIil8fChlKCl8fGYoKXx8IWgoKT9hLnNldExvb3BWaWRlbyghMSk6YS5zZXRMb29wVmlkZW8oITApKSl9LCJaZ1V3Z2UiKTtyZXR1cm4gXy5LKF8uRUUsbnVsbCxfLksoXy5DRSx7d2hlbjooKT0+ZCgpfSwoKT0+Xy5LKGJWLHtkYXRhOigpPT5kKCl9KSksXy5LKF8uQ0Use3doZW46ZX0sKCk9Pl8uSyhWbGEse0g6YSxjb250ZXh0OnRrYShhLGIpLGRhdGE6Y30pKSxfLksoXy5DRSwKe3doZW46Zn0sKCk9Pnt2YXIgaz1yUyhhKSxsPWEuZ2V0V2ViUGxheWVyQ29udGV4dENvbmZpZygpO2w9ey4uLnNTKGwpLFh3OiEwLFl3OiEwfTtyZXR1cm4gXy5LKGNWLHtjb250ZXh0Ont0YTprLGJhOmwsVGM6ZG9jdW1lbnQuYm9keSxHYzpifSxkYXRhOmN9KX0pLF8uSyhfLkNFLHt3aGVuOmh9LCgpPT5fLksoV2xhLHtyZWVsSXRlbVdhdGNoUmVzcG9uc2U6KCk9PmMoKS5yZWVsSXRlbVdhdGNoUmVzcG9uc2UsamI6KCk9PmMoKS5qYixQaDooKT0+YygpLlBoLEg6KCk9PmEsY29udGV4dDpza2EoYSxiKX0pKSxfLksoXy5ERSxudWxsLCgpPT57dmFyIGs9clMoYSksbD1zUyhhLmdldFdlYlBsYXllckNvbnRleHRDb25maWcoKSk7cmV0dXJuIF8uSyhjVix7Y29udGV4dDp7dGE6ayxiYTpsLFRjOmRvY3VtZW50LmJvZHksR2M6Yn0sZGF0YTpjfSl9KSl9OwphVj1mdW5jdGlvbihhKXtyZXR1cm4gYS5qYj8ucHJldmlld1BsYXlhYmlsaXR5U3RhdHVzPy5lcnJvclNjcmVlbj8ucGxheWVySW50ZXJzdGl0aWFsUmVuZGVyZXJ8fGEucGxheWVyUmVzcG9uc2U/LnBsYXlhYmlsaXR5U3RhdHVzPy5lcnJvclNjcmVlbj8ucGxheWVySW50ZXJzdGl0aWFsUmVuZGVyZXJ9O1RsYT1mdW5jdGlvbihhKXt2YXIgYj1hLmdldFBsYXllclJlc3BvbnNlKCksYz1hLmdldFdhdGNoTmV4dFJlc3BvbnNlKCksZD1hLmdldFJlZWxJdGVtV2F0Y2hSZXNwb25zZSgpLGU9YS5nZXRFbWJlZGRlZFBsYXllclJlc3BvbnNlKCksZj1hLmdldFJlc29sdmVVcmxSZXNwb25zZSgpO3JldHVybntwbGF5ZXJPdmVybGF5UmVuZGVyZXI6Yz8ucGxheWVyT3ZlcmxheXM/LnBsYXllck92ZXJsYXlSZW5kZXJlcixwbGF5ZXJSZXNwb25zZTpiLFBoOmYsd2F0Y2hOZXh0UmVzcG9uc2U6YyxyZWVsSXRlbVdhdGNoUmVzcG9uc2U6ZCxqYjplLEg6YX19OwpfLmRWPWZ1bmN0aW9uKGEpe18uQXEoImVwX2luaXRfcnMiKTt2YXIgYj1kb2N1bWVudC5ib2R5O2E9U2xhKGEpO2IuYXBwZW5kQ2hpbGQoYSk7YT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmlkPSJib3R0b20tc2hlZXQtd3JhcHBlciI7KDAsXy5JQykoYSxVamEpO2IuYXBwZW5kQ2hpbGQoYSk7Xy5BcSgiZXBfaW5pdF9yZSIpfTtfLmc9RlEucHJvdG90eXBlO18uZy5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRlEodGhpcy5sZWZ0LHRoaXMudG9wLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpfTsKXy5nLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBfLmVWJiZhIGluc3RhbmNlb2YgXy5lVj9hLng+PXRoaXMubGVmdCYmYS54PD10aGlzLmxlZnQrdGhpcy53aWR0aCYmYS55Pj10aGlzLnRvcCYmYS55PD10aGlzLnRvcCt0aGlzLmhlaWdodDp0aGlzLmxlZnQ8PWEubGVmdCYmdGhpcy5sZWZ0K3RoaXMud2lkdGg+PWEubGVmdCthLndpZHRoJiZ0aGlzLnRvcDw9YS50b3AmJnRoaXMudG9wK3RoaXMuaGVpZ2h0Pj1hLnRvcCthLmhlaWdodH07Xy5nLmdldFNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IF8ubmQodGhpcy53aWR0aCx0aGlzLmhlaWdodCl9O18uZy5jZWlsPWZ1bmN0aW9uKCl7dGhpcy5sZWZ0PU1hdGguY2VpbCh0aGlzLmxlZnQpO3RoaXMudG9wPU1hdGguY2VpbCh0aGlzLnRvcCk7dGhpcy53aWR0aD1NYXRoLmNlaWwodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5jZWlsKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307Cl8uZy5mbG9vcj1mdW5jdGlvbigpe3RoaXMubGVmdD1NYXRoLmZsb29yKHRoaXMubGVmdCk7dGhpcy50b3A9TWF0aC5mbG9vcih0aGlzLnRvcCk7dGhpcy53aWR0aD1NYXRoLmZsb29yKHRoaXMud2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGguZmxvb3IodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTtfLmcucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLmxlZnQ9TWF0aC5yb3VuZCh0aGlzLmxlZnQpO3RoaXMudG9wPU1hdGgucm91bmQodGhpcy50b3ApO3RoaXMud2lkdGg9TWF0aC5yb3VuZCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLnJvdW5kKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307Xy5nLnRyYW5zbGF0ZT1mdW5jdGlvbihhLGIpeyJmdW5jdGlvbiI9PXR5cGVvZiBfLmVWJiZhIGluc3RhbmNlb2YgXy5lVj8odGhpcy5sZWZ0Kz1hLngsdGhpcy50b3ArPWEueSk6KHRoaXMubGVmdCs9YSx0eXBlb2YgYj09PSJudW1iZXIiJiYodGhpcy50b3ArPWIpKTtyZXR1cm4gdGhpc307Cl8uZy5zY2FsZT1mdW5jdGlvbihhLGIpe2I9dHlwZW9mIGI9PT0ibnVtYmVyIj9iOmE7dGhpcy5sZWZ0Kj1hO3RoaXMud2lkdGgqPWE7dGhpcy50b3AqPWI7dGhpcy5oZWlnaHQqPWI7cmV0dXJuIHRoaXN9Owp2YXIgdlU9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy50b2tlbj1hfXN0YXRpYyBhc3luYyBqYygpe3JldHVybiBuZXcgUHJvbWlzZShhPT57Xy5QbCgpLnRoZW4oYj0+e2I/KHZVLmluc3RhbmNlfHwodlUuaW5zdGFuY2U9bmV3IHZVKGIpKSxhKHZVLmluc3RhbmNlKSk6YSh2b2lkIDApfSl9KX1hc3luYyBnZXQoYSl7aWYoYT1hd2FpdCAoYXdhaXQgR1EodGhpcy50b2tlbikpLmdldCgicHJlZnMiLGEpKXt2YXIgYj0oMCxfLmVsKSgpO3JldHVybiBhLmV4cGlyYXRpb25UaW1lc3RhbXBNczw9Yj92b2lkIDA6YS52YWx1ZX19YXN5bmMgc2V0KGEsYixjPTMxNTM2RTMpe3ZhciBkPSgwLF8uZWwpKCk7YT17a2V5OmEsdmFsdWU6YixleHBpcmF0aW9uVGltZXN0YW1wTXM6ZCtjKjFFM307Yj1hd2FpdCBHUSh0aGlzLnRva2VuKTthd2FpdCBfLm1sKGIsInByZWZzIixhKX1hc3luYyByZW1vdmUoYSl7YXdhaXQgKGF3YWl0IEdRKHRoaXMudG9rZW4pKS5kZWxldGUoInByZWZzIixhKX19LFlRPQpudWxsLGZWPXtTbjp7MUUzOntvdGhlcjoiMEsifSwxRTQ6e290aGVyOiIwMEsifSwxRTU6e290aGVyOiIwMDBLIn0sMUU2OntvdGhlcjoiME0ifSwxRTc6e290aGVyOiIwME0ifSwxRTg6e290aGVyOiIwMDBNIn0sMUU5OntvdGhlcjoiMEIifSwxRTEwOntvdGhlcjoiMDBCIn0sMUUxMTp7b3RoZXI6IjAwMEIifSwxRTEyOntvdGhlcjoiMFQifSwxRTEzOntvdGhlcjoiMDBUIn0sMUUxNDp7b3RoZXI6IjAwMFQifX0sVnM6ezFFMzp7b3RoZXI6IjAgdGhvdXNhbmQifSwxRTQ6e290aGVyOiIwMCB0aG91c2FuZCJ9LDFFNTp7b3RoZXI6IjAwMCB0aG91c2FuZCJ9LDFFNjp7b3RoZXI6IjAgbWlsbGlvbiJ9LDFFNzp7b3RoZXI6IjAwIG1pbGxpb24ifSwxRTg6e290aGVyOiIwMDAgbWlsbGlvbiJ9LDFFOTp7b3RoZXI6IjAgYmlsbGlvbiJ9LDFFMTA6e290aGVyOiIwMCBiaWxsaW9uIn0sMUUxMTp7b3RoZXI6IjAwMCBiaWxsaW9uIn0sMUUxMjp7b3RoZXI6IjAgdHJpbGxpb24ifSwxRTEzOntvdGhlcjoiMDAgdHJpbGxpb24ifSwKMUUxNDp7b3RoZXI6IjAwMCB0cmlsbGlvbiJ9fX0sclI9ZlY7clI9ZlY7dmFyIHFSPXtBRUQ6WzIsImRoIiwiXHUwNjJmLlx1MDYyNS4iXSxBTEw6WzAsIkxlayIsIkxlayJdLEFVRDpbMiwiJCIsIkFVJCJdLEJEVDpbMiwiXHUwOWYzIiwiVGsiXSxCR046WzIsImxldiIsImxldiJdLEJSTDpbMiwiUiQiLCJSJCJdLENBRDpbMiwiJCIsIkMkIl0sQ0RGOlsyLCJGckNEIiwiQ0RGIl0sQ0hGOlsyLCJDSEYiLCJDSEYiXSxDTFA6WzAsIiQiLCJDTCQiXSxDTlk6WzIsIlx1MDBhNSIsIlJNQlx1MDBhNSJdLENPUDpbMzIsIiQiLCJDT0wkIl0sQ1JDOlswLCJcdTIwYTEiLCJDUlx1MjBhMSJdLENaSzpbNTAsIktcdTAxMGQiLCJLXHUwMTBkIl0sREtLOls1MCwia3IuIiwia3IuIl0sRE9QOlsyLCJSRCQiLCJSRCQiXSxFR1A6WzIsIlx1MDBhMyIsIkxFIl0sRVRCOlsyLCJCaXJyIiwiQmlyciJdLEVVUjpbMiwiXHUyMGFjIiwiXHUyMGFjIl0sR0JQOlsyLCJcdTAwYTMiLCJHQlx1MDBhMyJdLEhLRDpbMiwiJCIsIkhLJCJdLEhSSzpbMiwia24iLCJrbiJdLEhVRjpbMzQsCiJGdCIsIkZ0Il0sSURSOlswLCJScCIsIlJwIl0sSUxTOlszNCwiXHUyMGFhIiwiSUxcdTIwYWEiXSxJTlI6WzIsIlx1MjBiOSIsIlJzIl0sSVJSOlswLCJSaWFsIiwiSVJSIl0sSVNLOlswLCJrciIsImtyIl0sSk1EOlsyLCIkIiwiSkEkIl0sSlBZOlswLCJcdTAwYTUiLCJKUFx1MDBhNSJdLEtSVzpbMCwiXHUyMGE5IiwiS1JcdTIwYTkiXSxMS1I6WzIsIlJzIiwiU0xScyJdLExUTDpbMiwiTHQiLCJMdCJdLE1OVDpbMCwiXHUyMGFlIiwiTU5cdTIwYWUiXSxNVlI6WzIsIlJmIiwiTVZSIl0sTVhOOlsyLCIkIiwiTWV4JCJdLE1ZUjpbMiwiUk0iLCJSTSJdLE5PSzpbNTAsImtyIiwiTk9rciJdLFBBQjpbMiwiQi8uIiwiQi8uIl0sUEVOOlsyLCJTLy4iLCJTLy4iXSxQSFA6WzIsIlx1MjBiMSIsIlBIUCJdLFBLUjpbMCwiUnMiLCJQS1JzLiJdLFBMTjpbNTAsInpcdTAxNDIiLCJ6XHUwMTQyIl0sUk9OOlsyLCJST04iLCJST04iXSxSU0Q6WzAsImRpbiIsIlJTRCJdLFJVQjpbNTAsIlx1MjBiZCIsCiJSVUIiXSxTQVI6WzIsIlNBUiIsIlNBUiJdLFNFSzpbNTAsImtyIiwia3IiXSxTR0Q6WzIsIiQiLCJTJCJdLFRIQjpbMiwiXHUwZTNmIiwiVEhCIl0sVFJZOlsyLCJcdTIwYmEiLCJUUlkiXSxUV0Q6WzIsIiQiLCJOVCQiXSxUWlM6WzAsIlRTaCIsIlRTaCJdLFVBSDpbMiwiXHUwNDMzXHUwNDQwXHUwNDNkLiIsIlVBSCJdLFVTRDpbMiwiJCIsIlVTJCJdLFVZVTpbMiwiJCIsIiRVIl0sVk5EOls0OCwiXHUyMGFiIiwiVk5cdTIwYWIiXSxZRVI6WzAsIlJpYWwiLCJSaWFsIl0sWkFSOlsyLCJSIiwiWkFSIl19O3ZhciBnVjsKZ1Y9e0RBWTp7TE9ORzoib25leyMgZGF5fW90aGVyeyMgZGF5c30iLFNIT1JUOiJvbmV7IyBkYXl9b3RoZXJ7IyBkYXlzfSIsTkFSUk9XOiJvbmV7I2R9b3RoZXJ7I2R9In0sSE9VUjp7TE9ORzoib25leyMgaG91cn1vdGhlcnsjIGhvdXJzfSIsU0hPUlQ6Im9uZXsjIGhyfW90aGVyeyMgaHJ9IixOQVJST1c6Im9uZXsjaH1vdGhlcnsjaH0ifSxNSU5VVEU6e0xPTkc6Im9uZXsjIG1pbnV0ZX1vdGhlcnsjIG1pbnV0ZXN9IixTSE9SVDoib25leyMgbWlufW90aGVyeyMgbWlufSIsTkFSUk9XOiJvbmV7I219b3RoZXJ7I219In0sTU9OVEg6e0xPTkc6Im9uZXsjIG1vbnRofW90aGVyeyMgbW9udGhzfSIsU0hPUlQ6Im9uZXsjIG10aH1vdGhlcnsjIG10aHN9IixOQVJST1c6Im9uZXsjbX1vdGhlcnsjbX0ifSxTRUNPTkQ6e0xPTkc6Im9uZXsjIHNlY29uZH1vdGhlcnsjIHNlY29uZHN9IixTSE9SVDoib25leyMgc2VjfW90aGVyeyMgc2VjfSIsTkFSUk9XOiJvbmV7I3N9b3RoZXJ7I3N9In0sV0VFSzp7TE9ORzoib25leyMgd2Vla31vdGhlcnsjIHdlZWtzfSIsClNIT1JUOiJvbmV7IyB3a31vdGhlcnsjIHdrc30iLE5BUlJPVzoib25leyN3fW90aGVyeyN3fSJ9LFlFQVI6e0xPTkc6Im9uZXsjIHllYXJ9b3RoZXJ7IyB5ZWFyc30iLFNIT1JUOiJvbmV7IyB5cn1vdGhlcnsjIHlyc30iLE5BUlJPVzoib25leyN5fW90aGVyeyN5fSJ9fTt2YXIgaFY9e0NlOlsiezB9LCB7MX0iLCJ7MH0sIHsxfSIsInswfSwgezF9Il0sUm46WyJ7MH0gYW5kIHsxfSIsInswfSAmIHsxfSIsInswfSwgezF9Il0sbWs6WyJ7MH0sIGFuZCB7MX0iLCJ7MH0sICYgezF9IiwiezB9LCB7MX0iXSxpbzpbInswfSBvciB7MX0iLCJ7MH0gb3IgezF9IiwiezB9IG9yIHsxfSJdLHhrOlsiezB9LCBvciB7MX0iLCJ7MH0sIG9yIHsxfSIsInswfSwgb3IgezF9Il0scm86WyJ7MH0sIHsxfSIsInswfSwgezF9IiwiezB9IHsxfSJdLHFvOlsiezB9LCB7MX0iLCJ7MH0sIHsxfSIsInswfSB7MX0iXSxBazpbInswfSwgezF9IiwiezB9LCB7MX0iLCJ7MH0gezF9Il19OwpoVj17Q2U6WyJ7MH0sIHsxfSIsInswfSwgezF9IiwiezB9LCB7MX0iXSxSbjpbInswfSBhbmQgezF9IiwiezB9ICYgezF9IiwiezB9LCB7MX0iXSxtazpbInswfSwgYW5kIHsxfSIsInswfSwgJiB7MX0iLCJ7MH0sIHsxfSJdLGlvOlsiezB9IG9yIHsxfSIsInswfSBvciB7MX0iLCJ7MH0gb3IgezF9Il0seGs6WyJ7MH0sIG9yIHsxfSIsInswfSwgb3IgezF9IiwiezB9LCBvciB7MX0iXSxybzpbInswfSwgezF9IiwiezB9LCB7MX0iLCJ7MH0gezF9Il0scW86WyJ7MH0sIHsxfSIsInswfSwgezF9IiwiezB9IHsxfSJdLEFrOlsiezB9LCB7MX0iLCJ7MH0sIHsxfSIsInswfSB7MX0iXX07dmFyIFhsYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3ZhciBhPXt0eXBlOiJ1bml0IixzdHlsZToibmFycm93In07dGhpcy5JPWEmJmEudHlwZT9hLnR5cGU6ImNvbmp1bmN0aW9uIjt0aGlzLks9YSYmYS5zdHlsZT9hLnN0eWxlOiJsb25nIjt0aGlzLmo9aFY7YT0wO3N3aXRjaCh0aGlzLkspe2Nhc2UgInNob3J0IjphPTE7YnJlYWs7Y2FzZSAibmFycm93IjphPTJ9c3dpdGNoKHRoaXMuSSl7Y2FzZSAiY29uanVuY3Rpb24iOnRoaXMuQj10aGlzLmouQ2VbYV07dGhpcy5EPSh0aGlzLmouUm58fHRoaXMuai5taylbYV07dGhpcy52PSh0aGlzLmouakN8fHRoaXMuai5DZSlbYV07dGhpcy5vPXRoaXMuai5ta1thXTticmVhaztjYXNlICJkaXNqdW5jdGlvbiI6dGhpcy5CPSh0aGlzLmouUUZ8fHRoaXMuai5DZSlbYV07dGhpcy5EPSh0aGlzLmouaW98fHRoaXMuai54aylbYV07dGhpcy52PSh0aGlzLmouUEZ8fHRoaXMuai5DZSlbYV07dGhpcy5vPXRoaXMuai54a1thXTticmVhaztjYXNlICJ1bml0Ijp0aGlzLkI9Cih0aGlzLmoucm98fHRoaXMuai5DZSlbYV0sdGhpcy5EPSh0aGlzLmouQUh8fHRoaXMuai5BaylbYV0sdGhpcy52PSh0aGlzLmoucW98fHRoaXMuai5DZSlbYV0sdGhpcy5vPXRoaXMuai5Ba1thXX19Zm9ybWF0KGEpe3JldHVybiB4amEodGhpcyxhKX19O3ZhciBpUj17YXI6ImxhdG4iLCJhci1FRyI6ImFyYWIiLGJuOiJiZW5nIixmYToiYXJhYmV4dCIsbXI6ImRldmEiLG15OiJteW1yIixuZToiZGV2YSJ9O3ZhciBpVj17Vm46Ii4iLHJrOiIsIixqbzoiJSIsQms6IjAiLFd0OiIrIixhbzoiLSIsWW46IkUiLGtvOiJcdTIwMzAiLHNrOiJcdTIyMWUiLEJ0OiJOYU4iLGd0OiIjLCMjMC4jIyMiLHpHOiIjRTAiLFNGOiIjLCMjMCUiLEZDOiJcdTAwYTQjLCMjMC4wMCIsV246IlVTRCJ9LGRSPWlWO2RSPWlWO3ZhciBlUj1JbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoWyJlbi1VUyIucmVwbGFjZSgiXyIsIi0iKV0pLmxlbmd0aD4wLGpSPSExOwpoUi5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oYSxiKXtiPWJ8fFswXTtpZih0aGlzLm9hIT09MCl0aHJvdyBFcnJvcigiT2QiKTthPWEucmVwbGFjZSgvIHxcdTIwMmYvZywiXHUwMGEwIik7dmFyIGM9YS5pbmRleE9mKHRoaXMuTSxiWzBdKT09YlswXSxkPWEuaW5kZXhPZih0aGlzLkQsYlswXSk9PWJbMF07YyYmZCYmKHRoaXMuTS5sZW5ndGg+dGhpcy5ELmxlbmd0aD9kPSExOnRoaXMuTS5sZW5ndGg8dGhpcy5ELmxlbmd0aCYmKGM9ITEpKTtjP2JbMF0rPXRoaXMuTS5sZW5ndGg6ZCYmKGJbMF0rPXRoaXMuRC5sZW5ndGgpO2lmKGEuaW5kZXhPZihkUi5zayxiWzBdKT09YlswXSl7YlswXSs9ZFIuc2subGVuZ3RoO3ZhciBlPUluZmluaXR5fWVsc2V7ZT1hO2xldCBmPSExLGg9ITEsaz0hMSxsPS0xLG09MSxuPWRSLlZuLHA9ZFIucmsscj1kUi5ZbjtpZih0aGlzLm9hIT0wKXRocm93IEVycm9yKCJQZCIpO3A9cC5yZXBsYWNlKC9cdTIwMmYvZywiXHUwMGEwIik7bGV0IHQ9IiI7Zm9yKDtiWzBdPAplLmxlbmd0aDtiWzBdKyspe2xldCB2PWUuY2hhckF0KGJbMF0pLHo9cFIodik7aWYoej49MCYmejw9OSl0Kz16LGs9ITA7ZWxzZSBpZih2PT1uLmNoYXJBdCgwKSl7aWYoZnx8aClicmVhazt0Kz0iLiI7Zj0hMH1lbHNlIGlmKHY9PXAuY2hhckF0KDApJiYoIlx1MDBhMCIhPXAuY2hhckF0KDApfHxiWzBdKzE8ZS5sZW5ndGgmJnBSKGUuY2hhckF0KGJbMF0rMSkpPj0wKSl7aWYoZnx8aClicmVha31lbHNlIGlmKHY9PXIuY2hhckF0KDApKXtpZihoKWJyZWFrO3QrPSJFIjtoPSEwO2w9YlswXX1lbHNlIGlmKHY9PSIrInx8dj09Ii0iKXtpZihrJiZsIT1iWzBdLTEpYnJlYWs7dCs9dn1lbHNlIGlmKHRoaXMudj09MSYmdj09ZFIuam8uY2hhckF0KDApKXtpZihtIT0xKWJyZWFrO209MTAwO2lmKGspe2JbMF0rKzticmVha319ZWxzZSBpZih0aGlzLnY9PTEmJnY9PWRSLmtvLmNoYXJBdCgwKSl7aWYobSE9MSlicmVhazttPTFFMztpZihrKXtiWzBdKys7YnJlYWt9fWVsc2UgYnJlYWt9dGhpcy52IT0KMSYmKG09dGhpcy52KTtlPXBhcnNlRmxvYXQodCkvbX1pZihjKXtpZihhLmluZGV4T2YodGhpcy5nYSxiWzBdKSE9YlswXSlyZXR1cm4gTmFOO2JbMF0rPXRoaXMuZ2EubGVuZ3RofWVsc2UgaWYoZCl7aWYoYS5pbmRleE9mKHRoaXMuVSxiWzBdKSE9YlswXSlyZXR1cm4gTmFOO2JbMF0rPXRoaXMuVS5sZW5ndGh9cmV0dXJuIGQ/LWU6ZX07CmhSLnByb3RvdHlwZS5mb3JtYXQ9ZnVuY3Rpb24oYSl7aWYodGhpcy5CPnRoaXMuail0aHJvdyBFcnJvcigiU2QiKTtpZihlUiYmdGhpcy5LKXsodGhpcy5LLmZvcm1hdD09bnVsbHx8dGhpcy5RYXx8dGhpcy5NYXx8dGhpcy5WZHx8alIpJiZmUih0aGlzKTtpZihNYXRoLmFicyhhKTwxJiZ0aGlzLmhhPnRoaXMuail7dmFyIGI9TWF0aC5wb3coMTAsdGhpcy5qKTthPU1hdGgucm91bmQoTWF0aC5hYnMoYSkqYikqTWF0aC5zaWduKGEpL2J9dGhpcy5LLnJlc29sdmVkT3B0aW9ucygpO3JldHVybiB0aGlzLksuZm9ybWF0KGEpfWlmKGlzTmFOKGEpKXJldHVybiBkUi5CdDtiPVtdO3ZhciBjPWE7aWYodGhpcy5vYT09MCljPXNSO2Vsc2V7Yz1NYXRoLmFicyhjKTt2YXIgZD10Uih0aGlzLGM8PTE/MDp1UihjKSkucGw7Yz10Uih0aGlzLGQrdVIobVIodGhpcyxrUihjLC1kKSkuaW50VmFsdWUpKX1hPWtSKGEsLWMucGwpOyhkPWE8MHx8YT09MCYmMS9hPDApP2Mud20/Yi5wdXNoKGMud20pOgooYi5wdXNoKGMucHJlZml4KSxiLnB1c2godGhpcy5EKSk6KGIucHVzaChjLnByZWZpeCksYi5wdXNoKHRoaXMuTSkpO2lmKGlzRmluaXRlKGEpKWlmKGEqPWQ/LTE6MSxhKj10aGlzLnYsdGhpcy5GYSl7dmFyIGU9YTtpZihlPT0wKW5SKHRoaXMsZSx0aGlzLm8sYiksb1IodGhpcywwLGIpO2Vsc2V7dmFyIGY9TWF0aC5mbG9vcihNYXRoLmxvZyhlKS9NYXRoLmxvZygxMCkrMkUtMTUpO2U9a1IoZSwtZik7dmFyIGg9dGhpcy5vO3RoaXMuWj4xJiZ0aGlzLlo+dGhpcy5vPyhoPWYldGhpcy5aLGg8MCYmKGg9dGhpcy5aK2gpLGU9a1IoZSxoKSxmLT1oLGg9MSk6dGhpcy5vPDE/KGYrKyxlPWtSKGUsLTEpKTooZi09dGhpcy5vLTEsZT1rUihlLHRoaXMuby0xKSk7blIodGhpcyxlLGgsYik7b1IodGhpcyxmLGIpfX1lbHNlIG5SKHRoaXMsYSx0aGlzLm8sYik7ZWxzZSBiLnB1c2goZFIuc2spO2Q/Yy54bT9iLnB1c2goYy54bSk6KGlzRmluaXRlKGEpJiZiLnB1c2goYy5zdWZmaXgpLGIucHVzaCh0aGlzLlUpKToKKGlzRmluaXRlKGEpJiZiLnB1c2goYy5zdWZmaXgpLGIucHVzaCh0aGlzLmdhKSk7cmV0dXJuIGIuam9pbigiIil9O3ZhciB5amE9IjAiLmNvZGVQb2ludEF0KDApLHNSPXtwbDowLHdtOiIiLHhtOiIiLHByZWZpeDoiIixzdWZmaXg6IiJ9O3ZhciBqVixCamE9alY9alY9emphO3ZhciBrVixDUj1rVj1rVj1BamE7dmFyIHdSPW51bGwseFI9bnVsbCx5Uj1udWxsLERqYT1SZWdFeHAoIicoW3t9I10uKj8pJyIsImciKSxDamE9UmVnRXhwKCInJyIsImciKTt6Ui5wcm90b3R5cGUuZm9ybWF0PWZ1bmN0aW9uKGEpe2lmKHRoaXMudil7dGhpcy5EPVtdO3ZhciBiPUVqYSh0aGlzLHRoaXMudik7dGhpcy5vPUhSKHRoaXMsYik7dGhpcy52PW51bGx9aWYodGhpcy5vJiZ0aGlzLm8ubGVuZ3RoIT0wKWZvcih0aGlzLmo9Xy55Yih0aGlzLkQpLGI9W10sQVIodGhpcyx0aGlzLm8sYSwhMSxiKSxhPWIuam9pbigiIik7dGhpcy5qLmxlbmd0aD4wOylhPWEucmVwbGFjZSh0aGlzLkIodGhpcy5qKSxTdHJpbmcodGhpcy5qLnBvcCgpKS5yZXBsYWNlKCIkIiwiJCQkJCIpKTtlbHNlIGE9IiI7cmV0dXJuIGF9O3ZhciBFUj0vXlxzKihcdyspXHMqLFxzKnBsdXJhbFxzKiwoPzpccypvZmZzZXQ6KFxkKykpPy8sRlI9L15ccyooXHcrKVxzKixccypzZWxlY3RvcmRpbmFsXHMqLC8sR1I9L15ccyooXHcrKVxzKixccypzZWxlY3RccyosLzsKelIucHJvdG90eXBlLkI9ZnVuY3Rpb24oYSl7cmV0dXJuIlx1ZmRkZl8iKyhhLmxlbmd0aC0xKS50b1N0cmluZygxMCkrIl8ifTt2YXIgVGphPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5qPVlsYXx8Z1Z9Zm9ybWF0KGEpe3ZhciBiPVtdLGM9YS55ZWFycyxkPWEubW9udGhzLGU9YS53ZWVrcyxmPWEuZGF5cyxoPWEuaG91cnMsaz1hLm1pbnV0ZXM7YT1hLnNlY29uZHM7YyE9bnVsbCYmYi5wdXNoKElSKHRoaXMsYywieWVhcnMiKSk7ZCE9bnVsbCYmYi5wdXNoKElSKHRoaXMsZCwibW9udGhzIikpO2UhPW51bGwmJmIucHVzaChJUih0aGlzLGUsIndlZWtzIikpO2YhPW51bGwmJmIucHVzaChJUih0aGlzLGYsImRheXMiKSk7aCE9bnVsbCYmYi5wdXNoKElSKHRoaXMsaCwiaG91cnMiKSk7ayE9bnVsbCYmYi5wdXNoKElSKHRoaXMsaywibWludXRlcyIpKTthIT1udWxsJiZiLnB1c2goSVIodGhpcyxhLCJzZWNvbmRzIikpO3JldHVybihuZXcgWGxhKS5mb3JtYXQoYil9fTsvKgoKIE1JVCBMaWNlbnNlCgogQ29weXJpZ2h0IChjKSAyMDE3IEFsZXhhbmRlciBSZWFyZG9uCgogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKIFNPRlRXQVJFCiovCnZhciBabGE9KGEsYik9PntpZihhLmxlbmd0aCE9PWIubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7KytjKWlmKGFbY10hPT1iW2NdKXJldHVybiExO3JldHVybiEwfTt2YXIgbFY9bmV3IF8uSSgid2F0Y2hPbllvdXR1YmVCdXR0b25WaWV3TW9kZWwiKTt2YXIgRWthPW5ldyBfLkkoImVtYmVkZGVkUGxheWVyT3ZlcmxheVZpZGVvRGV0YWlsc1JlbmRlcmVyIiksbVY9bmV3IF8uSSgiZW1iZWRkZWRQbGF5ZXJPdmVybGF5VmlkZW9EZXRhaWxzQ29sbGFwc2VkUmVuZGVyZXIiKSxuVj1uZXcgXy5JKCJlbWJlZGRlZFBsYXllck92ZXJsYXlWaWRlb0RldGFpbHNFeHBhbmRlZFJlbmRlcmVyIik7dmFyIE9TPW5ldyBfLkkoImVtYmVkc0luZm9QYW5lbFJlbmRlcmVyIik7dmFyICRsYT1uZXcgXy5JKCJtb2JpbGVUb3BiYXJSZW5kZXJlciIpO3ZhciBhbWE9bmV3IF8uSSgiY2FsbFRvQWN0aW9uQnV0dG9uVmlld01vZGVsIik7dmFyIGJtYT1uZXcgXy5JKCJpbnRlcnN0aXRpYWxWaWV3TW9kZWwiKTt2YXIgZGxhPW5ldyBfLkkoImNpbmVtYXRpY0NvbnRhaW5lclJlbmRlcmVyIik7dmFyIGprYT1uZXcgXy5JKCJ2YXJpYWJsZVNwZWVkQ29udHJvbGxlclZpZXdNb2RlbCIpO3ZhciBEa2E9bmV3IF8uSSgiZnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsIik7dmFyIG9WPW5ldyBfLkkoInBsYXllck11dGVkQXV0b3BsYXlPdmVybGF5UmVuZGVyZXIiKSxwVj1uZXcgXy5JKCJwbGF5ZXJNdXRlZEF1dG9wbGF5RW5kU2NyZWVuUmVuZGVyZXIiKTt2YXIgS1M9bmV3IF8uSSgicXVpY2tBY3Rpb25zVmlld01vZGVsIik7dmFyIGNtYT1uZXcgXy5JKCJyZWVsUGxheWVyT3ZlcmxheVZpZXdNb2RlbCIpO3ZhciBBbGE9bmV3IF8uSSgiY29uZmlybURpYWxvZ1JlbmRlcmVyIik7dmFyIG1sYT1uZXcgXy5JKCJib3R0b21TaGVldE92ZXJsYXlSZW5kZXJlciIpO3ZhciBkbWE9bmV3IF8uSSgiZGlhbG9nSGVhZGVyVmlld01vZGVsIik7dmFyIGVtYT1uZXcgXy5JKCJkaWFsb2dWaWV3TW9kZWwiKTt2YXIgV1U9bmV3IF8uSSgicGxheWVyVG9hc3RDb21tYW5kIik7dmFyIHZrYT1uZXcgXy5JKCJhdXRvcGxheVN3aXRjaEJ1dHRvblJlbmRlcmVyIik7dmFyIHhrYT1uZXcgXy5JKCJkZWNvcmF0ZWRQbGF5ZXJCYXJSZW5kZXJlciIpLERTPW5ldyBfLkkoIm11bHRpTWFya2Vyc1BsYXllckJhclJlbmRlcmVyIiksZVQ9bmV3IF8uSSgiY2hhcHRlclJlbmRlcmVyIik7dmFyIHlrYT1uZXcgXy5JKCJkZWNvcmF0ZWRQbGF5aGVhZFJlbmRlcmVyIik7dmFyIEFrYT1uZXcgXy5JKCJmdWxsc2NyZWVuRW5nYWdlbWVudE92ZXJsYXlSZW5kZXJlciIpLEJrYT1uZXcgXy5JKCJmdWxsc2NyZWVuRW5nYWdlbWVudEFjdGlvbkJhclJlbmRlcmVyIiksZm1hPW5ldyBfLkkoImZ1bGxzY3JlZW5FbmdhZ2VtZW50QWN0aW9uQmFyU2F2ZUJ1dHRvblJlbmRlcmVyIik7dmFyIGdtYT1uZXcgXy5JKCJoZWF0TWFya2VyUmVuZGVyZXIiKTt2YXIgd2thPW5ldyBfLkkoImhlYXRtYXBSZW5kZXJlciIpO3ZhciBxVj1uZXcgXy5JKCJ0aW1lZE1hcmtlckRlY29yYXRpb25SZW5kZXJlciIpO3ZhciBobWE9WyJlbi1DQSIsImVuIiwiZXMtTVgiLCJmci1DQSJdO3ZhciByVjtyVj17YnJvd3NlRW5kcG9pbnQ6e2Jyb3dzZUlkOiJGRXdoYXRfdG9fd2F0Y2gifSxjb21tYW5kTWV0YWRhdGE6e3dlYkNvbW1hbmRNZXRhZGF0YTp7dXJsOiIvIixyb290VmU6Mzg1NCx3ZWJQYWdlVHlwZToiV0VCX1BBR0VfVFlQRV9CUk9XU0UifX19O3ZhciBLUj0hMTt2YXIgS2phPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5vPXRoaXMuaj0wO3RoaXMuaj1iLngtYS54O3RoaXMubz1iLnktYS55fX07dmFyICRUPV8uZ3Uodm9pZCAwLCJCREVxSmIiKTt2YXIgc1Y9d2luZG93LFo9c1YuR0h8fCJlbi1VUyIsU2phPXNWLkhIfHxDUixZbGE9c1YuRkh8fGdWO3ZhciBRUjt2YXIgdWthPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuSD1hfXRvZ2dsZUZ1bGxzY3JlZW4oKXt0aGlzLkgudG9nZ2xlRnVsbHNjcmVlbigpfWV4aXRGdWxsc2NyZWVuKCl7dGhpcy5pc0Z1bGxzY3JlZW4oKSYmdGhpcy50b2dnbGVGdWxsc2NyZWVuKCl9aXNGdWxsc2NyZWVuKCl7cmV0dXJuIHRoaXMuSC5pc0Z1bGxzY3JlZW4oKX19O3ZhciBUUj1fLkwoKHt0YTphfSk9Pl8uSyhfLmZKLHtkYXRhOigpPT57dmFyIGI9Y1Ioe3RpdGxlOl8uSVAoXy4kTi5uayksa2w6YSgpLmRlKCksaWNvblR5cGU6IkFVVE9QTEFZIixFazpfLiROLm5rLERrOl8uJE4ubmt9KTtyZXR1cm4gXy5CKGIsXy5NUCl9LG9uVGFwOmZ1bmN0aW9uKGIpe3ZhciBjPSFhKCkuZGUoKTthKCkuUmooYywhMCk7Yi5zdG9wUHJvcGFnYXRpb24oKTtfLlhNKCJwZnAtYXV0b25hdi11cGRhdGUiLHthdXRvbmF2RW5hYmxlZDpjfSl9fSksIlliIik7VFIuaWRvbUNvbXBhdD0hMDt2YXIgaW1hPV8uJE4uYXUsY1M9Xy5MKCgpPT57dmFyIGE9KCk9Pl8uQihiUih7dGl0bGU6Xy5JUChpbWEpLGljb25UeXBlOiJQRVJTT05fQ0lSQ0xFIn0pLF8uWkMpO3JldHVybiBfLksoXy5DRCx7ZGF0YTphLElhOiEwLG9uVGFwOigpPT57dmFyIGI9Xy5LTygpP18uRk8oIi8veW91dHViZS5jb20vc2lnbmluIiwibmV4dCIsIi9zaWduaW4/YWN0aW9uX2Nsb3NlX3RhYj10cnVlIik6Xy53KCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJXRUJfRU1CRURERURfUExBWUVSIj9fLkZPKCIvL3lvdXR1YmUuY29tL3NpZ25pbiIsIm5leHQiLCIvcG9zdF9sb2dpbiIpOl8uRk8oIi8veW91dHViZS5jb20vc2lnbmluIiwibmV4dCIsbG9jYXRpb24ucGF0aG5hbWUrbG9jYXRpb24uc2VhcmNoKTtfLkFKKHtzaWduSW5FbmRwb2ludDp7fSxjb21tYW5kTWV0YWRhdGE6e3dlYkNvbW1hbmRNZXRhZGF0YTp7dXJsOmJ9fX0sYSgpLCExKX19KX0sIlpiIik7Y1MuaWRvbUNvbXBhdD0hMDt2YXIgam1hPV8uJE4uV3Msa21hPV8uJE4uWXMsbG1hPV8uJE4uVG4sVmphPV8uTCgoe2Z2OmF9KT0+e3ZhciBiPSJjb3B5LWRlYnVnLWluZm8tdGV4dGFyZWEiK18uT0goKTtyZXR1cm4gXy5LKF8uckUse1FnOigpPT5fLksoXy5BUCxudWxsLGxtYSkscWs6KCk9Pl8uSygidGV4dGFyZWEiLHtjbGFzczoiY29weURlYnVnSW5mb1BsYXllckRlYnVnSW5mbyIsaWQ6Yn0sYSksRXo6KCk9Pl8uSyhfLnpQLG51bGwsXy5LKF8uSksse2RhdGE6e2J1dHRvblRleHQ6am1hLHN0eWxlOiJtb25vIix0eXBlOiJ0ZXh0IixzdGF0ZToiYWN0aXZlIixzaXplOiJNIixvblRhcDooKT0+e18ueSgpLnJlc29sdmUoXy55UCkubGQoKX19fSkpLFByOigpPT5fLksoXy56UCxudWxsLF8uSyhfLkpLLHtkYXRhOntidXR0b25UZXh0OmttYSxzdHlsZToibW9ubyIsdHlwZToidGV4dCIsc3RhdGU6ImFjdGl2ZSIsc2l6ZToiTSIsb25UYXA6KCk9PntfLnNQKGIpO18ueSgpLnJlc29sdmUoXy55UCkubGQoKX19fSkpfSl9LAoiJGIiKTt2YXIgbW1hPV8uJE4uVG4sJFI9Xy5MKCh7SDphfSk9Pl8uSyhfLkNELHtkYXRhOigpPT5fLkIoYlIoe3RpdGxlOl8uSVAobW1hKSxpY29uVHlwZToiQlVHX1JFUE9SVCJ9KSxfLlpDKSxJYTohMCxvblRhcDooKT0+e1dqYShhKCkpfX0pLCJhYyIpOyRSLmlkb21Db21wYXQ9ITA7dmFyIG5tYT1fLiROLlpzLFpSPV8uTCgoe0g6YX0pPT5fLksoXy5DRCx7ZGF0YTooKT0+Xy5CKGJSKHt0aXRsZTpfLklQKG5tYSksaWNvblR5cGU6IkNPREUifSksXy5aQyksSWE6ITAsb25UYXA6KCk9Pnt2YXIgYj1hKCkuZ2V0VmlkZW9FbWJlZENvZGUoKTtiJiZiJiZ3aW5kb3cubmF2aWdhdG9yPy5jbGlwYm9hcmQmJndpbmRvdy5uYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChiKX19KSwiYmMiKTtaUi5pZG9tQ29tcGF0PSEwO3ZhciBvbWE9Xy4kTi5idCxwbWE9Xy4kTi5mdCxXUj1fLkwoKHtIOmF9KT0+Xy5LKF8uQ0Qse2RhdGE6KCk9Pl8uQihiUih7dGl0bGU6Xy5JUChvbWEpLGljb25UeXBlOiJMSU5LIn0pLF8uWkMpLElhOiEwLG9uVGFwOigpPT57UlIoYSgpLCExKX19KSwiY2MiKTtXUi5pZG9tQ29tcGF0PSEwO3ZhciBZUj1fLkwoKHtIOmF9KT0+Xy5LKF8uQ0Qse2RhdGE6KCk9Pl8uQihiUih7dGl0bGU6Xy5JUChwbWEpLGljb25UeXBlOiJMSU5LIn0pLF8uWkMpLElhOiEwLG9uVGFwOigpPT57UlIoYSgpLCEwKX19KSwiZGMiKTtZUi5pZG9tQ29tcGF0PSEwO3ZhciB0Vj1fLiROLnV0LFZSPV8uTCgoe0g6YX0pPT5fLksoXy5mSix7ZGF0YTooKT0+e3ZhciBiPWNSKHt0aXRsZTpfLklQKHRWKSxrbDphKCkuZ2V0TG9vcFZpZGVvKCksRWs6dFYsRGs6dFYsaWNvblR5cGU6IkxPT1AifSk7cmV0dXJuIF8uQihiLF8uTVApfSxvblRhcDpiPT57YSgpLnNldExvb3BWaWRlbyghYSgpLmdldExvb3BWaWRlbygpKTtiLnN0b3BQcm9wYWdhdGlvbigpfX0pLCJlYyIpO1ZSLmlkb21Db21wYXQ9ITA7dmFyIFVSPV8uTCgoe0g6YX0pPT5fLksoInN0YWJsZS12b2x1bWUtdG9nZ2xlIix7Y2xhc3M6InN0YWJsZVZvbHVtZVRvZ2dsZUhvc3QifSxfLksoXy5mSix7ZGF0YTooKT0+Xy5CKGNSKHt0aXRsZTpfLklQKF8uJE4ueWspLGtsOmEoKS5oYXNEcmNBdWRpb1RyYWNrKCkmJmEoKS5nZXREcmNVc2VyUHJlZmVyZW5jZSgpPT09MSxpY29uVHlwZToiVk9MVU1FX1NUQUJMRSIsRWs6Xy4kTi55ayxEazpfLiROLnlrLGlzRGlzYWJsZWQ6IWEoKS5oYXNEcmNBdWRpb1RyYWNrKCl9KSxfLk1QKSxvblRhcDpmdW5jdGlvbihiKXthKCkuc2V0RHJjVXNlclByZWZlcmVuY2UoYSgpLmhhc0RyY0F1ZGlvVHJhY2soKSYmYSgpLmdldERyY1VzZXJQcmVmZXJlbmNlKCk9PT0xPzA6MSk7Yi5zdG9wUHJvcGFnYXRpb24oKX19KSksImZjIik7VVIuaWRvbUNvbXBhdD0hMDt2YXIgcW1hPV8uJE4uYnUsYlM9Xy5MKCh7SDphfSk9Pnt2YXIgYj0oKT0+Xy5CKGJSKHt0aXRsZTpfLklQKHFtYSksaWNvblR5cGU6IklORk8ifSksXy5aQyk7cmV0dXJuIF8uSyhfLk8se0E6KCk9PiEhYSgpLmdldFZpZGVvRGF0YSx0aGVuOigpPT5fLksoXy5DRCx7ZGF0YTpiLElhOiEwLG9uVGFwOigpPT57dmFyIGM9YSgpOyFjLmdldFZpZGVvRGF0YXx8KGMuaXNWaWRlb0luZm9WaXNpYmxlKCk/Yy5oaWRlVmlkZW9JbmZvKCk6Yy5zaG93VmlkZW9JbmZvKCkpfX0pfSl9LCJnYyIpO2JTLmlkb21Db21wYXQ9ITA7dmFyIHJtYT1fLiROLmR1LGFTPV8uTCgoe0g6YX0pPT5fLksoXy5DRCx7ZGF0YTooKT0+Xy5CKGJSKHt0aXRsZTpfLklQKHJtYSksaWNvblR5cGU6IlFVRVNUSU9OX0NJUkNMRSJ9KSxfLlpDKSxJYTohMCxvblRhcDooKT0+e2EoKS5yZXBvcnRQbGF5YmFja0lzc3VlJiYoYSgpLnJlcG9ydFBsYXliYWNrSXNzdWUoKSxfLnFQKHtocmVmOiJodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS95b3V0dWJlLz9wPXJlcG9ydF9wbGF5YmFjayJ9KSl9fSksImhjIik7YVMuaWRvbUNvbXBhdD0hMDt2YXIgc21hPV8uJE4ud3Qsb1M9Xy5MKCh7SDphLG9oOmIsdGE6Yyx0QTpkfSk9Pl8uSyhfLkNELHtkYXRhOigpPT5fLkIoYlIoe3RpdGxlOl8uSVAoc21hKSxpY29uVHlwZToiT1VUTElORV9PVkVSRkxPV19IT1JJWk9OVEFMXzMyIn0pLF8uWkMpLElhOiEwLG9uVGFwOigpPT57WGphKGEoKSxiKCksYz8uKCksZD8uKCkpfX0pLCJpYyIpO29TLmlkb21Db21wYXQ9ITA7dmFyIGdrYT1fLiROLm1vLFlqYT1fLiROLm5vLFpqYT1fLiROLlR0LGZrYT1fLiROLlJ0LGVrYT1fLiROLlN0LGhrYT1fLiROLlh0LGFrYT1bNTAsMTAwLDEyNSwxNTAsMTc1LDIwMF0sJGphPVsxMDAsMTI1LDE1MCwxNzUsMjAwLDMwMF0sY2thPVs1MCwxMDAsMTI1LDE1MCwyMDBdLGJrYT1bMTAwLDEyNSwxNTAsMjAwLDMwMF0saFM7dmFyIHRtYT1fLiROLm1vLHVtYT1fLiROLm5vLG1TPV8uTCgoe0g6YX0pPT57dmFyIGI9KCk9Pnt2YXIgZD1hKCk/LmdldFBsYXliYWNrUmF0ZSgpLGU9Xy5hQSgiUExBWUJBQ0tfU1BFRURfWCIse3NwZWVkX3JhdGVfcGxhY2Vob2xkZXI6YCR7ZH1gfSk7cmV0dXJuIF8uQihiUih7dGl0bGU6Xy5JUCh0bWEpLHNlbGVjdGlvblRleHQ6Xy5JUChkPT09MT91bWE6ZSksaWNvblR5cGU6IlBMQVlfQVJST1dfSEFMRl9DSVJDTEUifSksXy5aQyl9LGM9KCk9Pntra2EoYSgpKX07cmV0dXJuIF8uSyhfLk8se0E6KCk9PiEhYSgpPy5nZXRQbGF5YmFja1JhdGUoKSx0aGVuOigpPT5fLksoXy5DRCx7ZGF0YTpiLElhOiEwLG9uVGFwOmN9KX0pfSwiamMiKTttUy5pZG9tQ29tcGF0PSEwO3ZhciB2bWE9Xy4kTi5OcyxuUz1fLkwoKCk9Pl8uSyhfLkNELHtkYXRhOigpPT5fLkIoe2xpc3RJdGVtVmlld01vZGVsOnt0aXRsZTpfLklQKHZtYSksbGlzdEl0ZW1JY29uQWZ0ZXJTZWxlY3Rpb25UZXh0OiJMSVNUX0lURU1fSUNPTl9BRlRFUl9TRUxFQ1RJT05fVEVYVF9ERUZBVUxUIixsZWFkaW5nSW1hZ2U6e3NvdXJjZXM6W3tjbGllbnRSZXNvdXJjZTp7aW1hZ2VOYW1lOiJQRVJTT05fUkFEQVIifX1dfSxlbnRpdHlLZXk6IkVpb3ZlVzkxZEhWaVpTOWhjSEF2Y0d4aGVXVnlYMkYxWkdsdlgzUnlZV05yWDJWdWRHbDBlVjlyWlhrZ19nSW9BUSUzRCUzRCIsZW50aXR5U2VsZWN0b3JUeXBlOiJMSVNUX0lURU1fVklFV19NT0RFTF9FTlRJVFlfU0VMRUNUT1JfVFlQRV9BVURJT19UUkFDS19TRUxFQ1RJT05fVEVYVCIscmVuZGVyZXJDb250ZXh0Ontjb21tYW5kQ29udGV4dDp7b25UYXA6e2lubmVydHViZUNvbW1hbmQ6e2NvbW1hbmRFeGVjdXRvckNvbW1hbmQ6e2NvbW1hbmRzOlt7c2hvd0F1ZGlvVHJhY2tQaWNrZXJBY3Rpb25Db21tYW5kOnt9fV19fX19fX19LApfLlpDKSxJYTohMH0pLCJrYyIpO25TLmlkb21Db21wYXQ9ITA7dmFyIHdtYT1fLiROLkV0LHhtYT1fLiROLkZ0LHBrYT1fLkwoKHtIOmF9KT0+Xy5LKF8uQ0Qse2RhdGE6KCk9Pnt2YXIgYj1hKCk/LmdldE9wdGlvbigiY2FwdGlvbnMiLCJ0cmFjayIpLGM9dHlwZW9mIGI/LnRyYW5zbGF0aW9uTGFuZ3VhZ2U9PT0ib2JqZWN0IiYmYi50cmFuc2xhdGlvbkxhbmd1YWdlPy5sYW5ndWFnZU5hbWV8fGI/LmRpc3BsYXlOYW1lfHwiIjtyZXR1cm4gXy5CKHtsaXN0SXRlbVZpZXdNb2RlbDp7dGl0bGU6Xy5JUCh3bWEpLGxpc3RJdGVtSWNvbkFmdGVyU2VsZWN0aW9uVGV4dDoiTElTVF9JVEVNX0lDT05fQUZURVJfU0VMRUNUSU9OX1RFWFRfREVGQVVMVCIsc2VsZWN0aW9uVGV4dDp7Y29udGVudDpjP2M6eG1hfSxsZWFkaW5nSW1hZ2U6e3NvdXJjZXM6W3tjbGllbnRSZXNvdXJjZTp7aW1hZ2VOYW1lOmM/IkNMT1NFRF9DQVBUSU9OX1NFTEVDVEVEIjoiQ0xPU0VEX0NBUFRJT04ifX1dfSxlbnRpdHlLZXk6IkVpOHZlVzkxZEhWaVpTOWhjSEF2Y0d4aGVXVnlYMk5oY0hScGIyNWZiR0Z1WjNWaFoyVmZaVzUwYVhSNVgydGxlU0QtQWlnQiIsCmVudGl0eVNlbGVjdG9yVHlwZToiTElTVF9JVEVNX1ZJRVdfTU9ERUxfRU5USVRZX1NFTEVDVE9SX1RZUEVfQ0FQVElPTl9MQU5HVUFHRV9TRUxFQ1RJT05fVEVYVCIscmVuZGVyZXJDb250ZXh0Ontjb21tYW5kQ29udGV4dDp7b25UYXA6e2lubmVydHViZUNvbW1hbmQ6e2NvbW1hbmRFeGVjdXRvckNvbW1hbmQ6e2NvbW1hbmRzOlt7c2hvd0NhcHRpb25MYW5ndWFnZVNlbGVjdEFjdGlvbkNvbW1hbmQ6e319XX19fX19LGlzRGlzYWJsZWQ6dHlwZW9mIGI9PT0idW5kZWZpbmVkIn19LF8uWkMpfSxJYTohMH0pLCJsYyIpO3ZhciBsa2E9e2F1dG86MCx0aW55OjE0NCxsaWdodDoxNDQsc21hbGw6MjQwLG1lZGl1bTozNjAsbGFyZ2U6NDgwLGhkNzIwOjcyMCxoZDEwODA6MTA4MCxoZDE0NDA6MTQ0MCxoZDIxNjA6MjE2MCxoZDI4ODA6Mjg4MCxoaWdocmVzOjQzMjB9O3ZhciB5bWE9Xy4kTi5OdCxta2E9Xy4kTi5PdCxsUz1fLkwoKHtIOmF9KT0+Xy5LKF8uQ0Qse2RhdGE6KCk9Pnt2YXIgYj1iUih7dGl0bGU6Xy5JUCh5bWEpLHNlbGVjdGlvblRleHQ6Xy5JUChrUyhhKCksYSgpLmdldFBsYXliYWNrUXVhbGl0eSgpKSksaWNvblR5cGU6Ik9VVExJTkVfQURKVVNUIn0pO3JldHVybiBfLkIoYixfLlpDKX0sSWE6ITAsb25UYXA6KCk9PnthKCkuZ2V0QXZhaWxhYmxlUXVhbGl0eUxldmVscygpJiZva2EoYSgpKX19KSwibWMiKTtsUy5pZG9tQ29tcGF0PSEwOwp2YXIgbmthPV8uTCgoe0g6YX0pPT5fLksoXy5nRyx7cGE6KCk9PmEoKS5nZXRBdmFpbGFibGVRdWFsaXR5TGV2ZWxzKCksdGI6IklOREVYIn0sYj0+Xy5LKF8uQ0Qse2RhdGE6KCk9Pnt2YXIgYz1iKCksZD1hKCkuZ2V0UHJlZmVycmVkUXVhbGl0eSgpO2M9YlIoe3RpdGxlOl8uSVAoa1MoYSgpLGMpKSxpY29uVHlwZTpjPT09ZD8iQ0hFQ0siOnZvaWQgMH0pO3JldHVybiBfLkIoYyxfLlpDKX0sSWE6ITAsb25UYXA6KCk9Pnt2YXIgYz1iKCk7YSgpLnNldFBsYXliYWNrUXVhbGl0eVJhbmdlKGMsYyl9fSkpLCJuYyIpO3ZhciBSUz1uZXcgU2V0LFFTPW51bGw7dmFyIFRTPW51bGwsVlM9e307dmFyIHVWPV8uTChhPT57dmFyIGI9Xy52RSgiYnV0dG9uIixkPT57ZCYmV1MoZCwyODU3MiwhXy54KCJlbWJlZHNfY3VlZF9vdmVybGF5X3ZlX2tzIikpfSksYz0oKT0+YS5HKCkuSD8uaXNFbWJlZHNTaG9ydHNNb2RlPy4oKTtyZXR1cm4gXy5LKCJjdWVkLW92ZXJsYXkiLHtjbGFzczpfLlAoInl0bUN1ZWRPdmVybGF5SG9zdCIse3l0bUN1ZWRPdmVybGF5SGlkZGVuOigpPT4hJFMoYS5HKCksYS5wbGF5YWJpbGl0eVN0YXR1cz8uKCkpfSksIm9uOmNsaWNrIjpmdW5jdGlvbihkKXtiLnZhbHVlJiYoWFMoMjg1NzIpLGEuRygpLmJhPy51aiYmXy5ETyhfLmh4KCksMjcyNDAsXy5LLnZpc3VhbEVsZW1lbnQpLGEuSD8uKCkucGxheVZpZGVvKCkpO2Quc3RvcFByb3BhZ2F0aW9uKCl9fSxfLksoXy5PLHtBOigpPT4hYS5HKCkuYmE/LmhpZGVWaWRlb0luZm8mJiF1UyhhLkcoKSksdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRtQ3VlZE92ZXJsYXlHcmFkaWVudCJ9KX0pLF8uSygiYnV0dG9uIiwKe2NsYXNzOl8uUCgieXRtQ3VlZE92ZXJsYXlQbGF5QnV0dG9uIix7eXRtQ3VlZE92ZXJsYXlTaG9ydHM6Y30pLGVsOmIsImFyaWEtbGFiZWwiOl8uJE4uUGcsdGl0bGU6Xy4kTi5QZ30sXy5LKF8uTUQse2ljb246KCk9PmMoKT8iWU9VVFVCRV9TSE9SVFNfQlJBTkRfMjQiOiJMT0dPIixjbGFzc05hbWU6Inl0bUN1ZWRPdmVybGF5UGxheUJ1dHRvbkljb24ifSkpKX0sIm9jIik7dVYuaWRvbUNvbXBhdD0hMDt2YXIgYVQ7dmFyIEFtYT1fLkwoKHtKejphLG11bHRpTWFya2Vyc1BsYXllckJhclJlbmRlcmVyOmIscHJvZ3Jlc3NCYXJXaWR0aDpjLHByb2dyZXNzQ29sb3I6ZH0pPT57dmFyIGU9KCk9PmdUKGIoKSksZj0oKT0+alQoYSgpKSxoPSgpPT5jKCkqKGEoKS52YS9hKCkudmlkZW9EdXJhdGlvbik7cmV0dXJuIF8uSygieXQtY2hhcHRlcmVkLXByb2dyZXNzLWJhci1saW5lIix7Y2xhc3M6Inl0Q2hhcHRlcmVkUHJvZ3Jlc3NCYXJIb3N0In0sXy5LKF8uZ0cse3BhOmV9LChrLGwpPT5fLksoem1hLHtOeTpmLGNoYXB0ZXJzOmUsaW5kZXg6bCxDejpoLHByb2dyZXNzQ29sb3I6ZCxEdTooKT0+e3ZhciBtPWpUKGEoKSksbj1nVChiKCkpLHA9bCgpLHI9aCgpO3JldHVybihtLnZhLWhUKF8uQihuW3BdLGVUKSkpL20udmEqcn19KSkpfSwicGMiKSx6bWE9Xy5MKCh7Tnk6YSxjaGFwdGVyczpiLGluZGV4OmMsQ3o6ZCxEdTplLHByb2dyZXNzQ29sb3I6Zn0pPT57dmFyIGg9Xy5QKCJ5dENoYXB0ZXJlZFByb2dyZXNzQmFyQ2hhcHRlcmVkUGxheWVyQmFyQ2hhcHRlciIsCnt5dENoYXB0ZXJlZFByb2dyZXNzQmFyQ2hhcHRlcmVkUGxheWVyQmFyQ2hhcHRlcklzU2NydWJiaW5nOigpPT5rKCkuYm0seXRDaGFwdGVyZWRQcm9ncmVzc0JhckhvdmVyZWRNYWNyb01hcmtlcjooKT0+aygpLkJnLHl0Q2hhcHRlcmVkUHJvZ3Jlc3NCYXJDaGFwdGVyZWRQbGF5ZXJCYXJDaGFwdGVyU2VlbjooKT0+aygpLkxkPT09InNlZW4ifSksaz0oKT0+aVQoYSgpLGIoKSxjKCkpLGw9KCk9Pnt2YXIgbT1mPy4oKTtyZXR1cm4gbSE9PXZvaWQgMD9fLkpFKG0pOnZvaWQgMH07cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6aCxzdHlsZTpfLklFKHt3aWR0aDooKT0+e3ZhciBtPWEoKSxuPWIoKSxwPWMoKSxyPV8uQihuW3BdLGVUKTtuPV8uQihuW3ArMV0sZVQpO3JldHVybmAkeyhuP2hUKG4pLWhUKHIpOm0udmlkZW9EdXJhdGlvbi1oVChyKSkvbS52aWRlb0R1cmF0aW9uKjEwMH0lYH0sImJhY2tncm91bmQtY29sb3IiOigpPT57YTp7dmFyIG09aygpO3N3aXRjaChtLkxkKXtjYXNlICJwZW5kaW5nIjptPQptLkJnPyJ3aGl0ZSI6InJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSkiO2JyZWFrIGE7Y2FzZSAiYWN0aXZlIjptPW0uQmc/IndoaXRlIjoicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSI7YnJlYWsgYTtkZWZhdWx0Om09IiJ9fXJldHVybmAke219YH0sImJhY2tncm91bmQtc2l6ZSI6KCk9PmAke29UKGsoKSk/ZCgpOiIifXB4YCwiYmFja2dyb3VuZC1wb3NpdGlvbi14IjooKT0+YCR7b1QoaygpKT9lKCk6IiJ9cHhgLGJhY2tncm91bmQ6KCk9PmsoKS5MZD09PSJzZWVuIj9sKCk6dm9pZCAwfSl9LF8uSygiZGl2Iix7Y2xhc3M6Inl0Q2hhcHRlcmVkUHJvZ3Jlc3NCYXJDaGFwdGVyZWRQbGF5ZXJCYXJMb2FkZWQiLHN0eWxlOigpPT57dmFyIG09YSgpLG49YigpLHA9YygpO2lmKGlUKG0sbixwKS5MZD09PSJzZWVuIil2YXIgcj0wO2Vsc2Ugcj1oVChfLkIobltwXSxlVCkpLG49aFQoXy5CKG5bcCsxXSxlVCkpfHxtLnZpZGVvRHVyYXRpb24sbT1tLnZpZGVvRHVyYXRpb24qbS5RbSxyPW48PQptPzE6cj49bT8wOihtLXIpLyhuLXIpO3JldHVybmB3aWR0aDogJHtyKjEwMH0lYH19KSxfLksoImRpdiIse2NsYXNzOiJ5dENoYXB0ZXJlZFByb2dyZXNzQmFyQ2hhcHRlcmVkUGxheWVyQmFyRmlsbCIsc3R5bGU6Xy5JRSh7d2lkdGg6KCk9PmAke25UKGEoKSxiKCksYygpKSoxMDB9JWAsImJhY2tncm91bmQtc2l6ZSI6KCk9PmAke29UKGsoKSxuVChhKCksYigpLGMoKSkpP2QoKToiIn1weGAsImJhY2tncm91bmQtcG9zaXRpb24teCI6KCk9PmAke29UKGsoKSxuVChhKCksYigpLGMoKSkpP2UoKToiIn1weGAsYmFja2dyb3VuZDpsfSl9KSl9LCJxYyIpO3ZhciB2Vj1fLkwoKHtMYjphLGNvbmZpZzpifSk9Pnt2YXIgYz0oKT0+e3ZhciBkPShiKCkuU2k/Lk11Pz8wKSoxMDAsZT0oYigpLlNpPy5MdT8/MCkqMTAwLGY9ZS1kO3JldHVybiBmPjAmJmY8MTA/KGY9KDEwLWYpLzIsZC1mPj0wJiZlK2Y8MTAwP1tkLWYsZStmXTpkLWY8MD9bMCwxMF06WzkwLDEwMF0pOltkLGVdfTtyZXR1cm4gXy5LKCJ5dC1mb2N1c2VkLWNoYXB0ZXItcHJvZ3Jlc3MtYmFyLWxpbmUiLHtjbGFzczoieXRGb2N1c2VkQ2hhcHRlclByb2dyZXNzQmFyTGluZUhvc3QifSxfLksoImRpdiIse2NsYXNzOl8uUCgieXRGb2N1c2VkQ2hhcHRlclByb2dyZXNzQmFyTGluZVByb2dyZXNzQmFyTGluZSIse3l0Rm9jdXNlZENoYXB0ZXJQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckxpbmVSb3VuZGVkOigpPT5iKCkuWHoseXRGb2N1c2VkQ2hhcHRlclByb2dyZXNzQmFyTGluZVByb2dyZXNzQmFyTGluZUJvdHRvbUluc2V0OigpPT5iKCkucG9zaXRpb249PT0yfSl9LF8uSygiZGl2IiwKe2NsYXNzOiJ5dEZvY3VzZWRDaGFwdGVyUHJvZ3Jlc3NCYXJMaW5lUHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kIixzdHlsZTooKT0+YHdpZHRoOiAke2MoKVsxXS1jKClbMF19JTsgbGVmdDogJHtjKClbMF19JWB9LF8uSygiZGl2Iix7Y2xhc3M6Inl0Rm9jdXNlZENoYXB0ZXJQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhclBsYXllZCIsc3R5bGU6KCk9Pnt2YXIgZD1iKCkuU2k/Lk11Pz8wLGU9YigpLlNpPy5MdT8/MCxmPXdTKGEoKSk7cmV0dXJuYHdpZHRoOiAke2Y8ZD8wOmY+ZXx8ZT09PWQ/MTAwOihmLWQpLyhlLWQpKjEwMH0lO2B9fSkpKSl9LCJyYyIpO3ZWLmlkb21Db21wYXQ9ITA7dmFyIEJtYT0oKGEsYj1abGEpPT57dmFyIGMsZD1bXSxlLGY9ITE7cmV0dXJuIGZ1bmN0aW9uKC4uLmgpe2lmKGYmJmM9PT10aGlzJiZiKGgsZCkpcmV0dXJuIGU7ZT1hLmFwcGx5KHRoaXMsaCk7Zj0hMDtjPXRoaXM7ZD1oO3JldHVybiBlfX0pKGE9Pnt2YXIge21pbkhlaWdodERwOmI9MCxtYXhIZWlnaHREcDpjPTYwLGhlYXRNYXJrZXJzOmR9PWEsZT0xRTMvZC5sZW5ndGg7YT1bXTthLnB1c2goe3g6MCx5OjEwMH0pO2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKXt2YXIgaD0oZisuNSkqZSxrPTEwMC1EUSgoXy5CKGRbZl0sZ21hKT8uaGVhdE1hcmtlckludGVuc2l0eVNjb3JlTm9ybWFsaXplZHx8MCkqMTAwLGIvMzIxKjEwMCxjLzMyMSoxMDApO2YhPT0wfHxhLnB1c2goe3g6MCx5Omt9KTthLnB1c2goe3g6aCx5Omt9KTtmPT09ZC5sZW5ndGgtMSYmYS5wdXNoKHt4OjFFMyx5Omt9KX1hLnB1c2goe3g6MUUzLHk6MTAwfSk7ZT0iIjtmb3IoZj0wO2Y8YS5sZW5ndGg7ZisrKXtoPQphW2ZdO2lmKGY9PT0wKWg9YE0gJHtoLngudG9GaXhlZCgxKX0sJHtoLnkudG9GaXhlZCgxKX1gO2Vsc2V7az1MUihhW2YtMV0sYVtmLTJdLGgpO2xldCBsPUxSKGgsYVtmLTFdLGFbZisxXSwhMCk7aD1gICR7YEMgJHtrLngudG9GaXhlZCgxKX0sJHtrLnkudG9GaXhlZCgxKX0gJHtsLngudG9GaXhlZCgxKX0sJHtsLnkudG9GaXhlZCgxKX0gJHtoLngudG9GaXhlZCgxKX0sJHtoLnkudG9GaXhlZCgxKX1gfWB9ZSs9aH1yZXR1cm4gZX0pO3ZhciBDbWE9Xy5MKCh7TGI6YSxjb25maWc6YixoaWdoQ29udHJhc3Q6Y30pPT57Yz1fLlAoInl0SGVhdFNlZWtlckhvc3QiLHt5dEhlYXRTZWVrZXJIaWdoQ29udHJhc3Q6Y30pO3JldHVybiBfLksoInl0LXByb2dyZXNzLWJhci1oZWF0c2Vla2VyIix7Y2xhc3M6YyxzdHlsZTooKT0+YGhlaWdodDogMzIwcHg7IGRpc3BsYXk6ICR7YSgpLmlzRHJhZ2dpbmcmJkZTKGIoKS5SYSk/LmhlYXRNYXJrZXJzPyJibG9jayI6Im5vbmUifWB9LF8uSyhfLk8se0E6KCk9PkZTKGIoKS5SYSksdGhlbjpkPT5fLksoXy5PLHtBOigpPT5kKCkuaGVhdE1hcmtlcnMsdGhlbjooKT0+Xy5LKCJzdmciLHt3aWR0aDoiMTAwJSIsaGVpZ2h0OiIzMjBweCIsdmlld0JveDoiMCAwIDEwMDAgMTAwIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIn0sXy5LKCJwYXRoIix7ZDooKT0+Qm1hKGQoKSl9KSksZGVidWdJbnN0YW5jZToiR2ppMFNlIn0pLGRlYnVnSW5zdGFuY2U6ImlWVFh3ZiJ9KSl9LCJzYyIpO3ZhciB3Vj1fLkwoKHtMYjphLGNvbmZpZzpifSk9Pnt2YXIgYz1fLlAoInl0UHJvZ3Jlc3NCYXJMaW5lUHJvZ3Jlc3NCYXJMaW5lIix7eXRQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckxpbmVSb3VuZGVkOigpPT5iKCkuWHoseXRQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckxpbmVCb3R0b21JbnNldDooKT0+YigpLnBvc2l0aW9uPT09Mn0pO3JldHVybiBfLksoInl0LXByb2dyZXNzLWJhci1saW5lIix7Y2xhc3M6Inl0UHJvZ3Jlc3NCYXJMaW5lSG9zdCJ9LF8uSygiZGl2Iix7Y2xhc3M6Y30sXy5LKCJkaXYiLHtjbGFzczoieXRQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckJhY2tncm91bmQifSksXy5LKCJkaXYiLHtjbGFzczoieXRQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckxvYWRlZCIsc3R5bGU6KCk9PmB3aWR0aDogJHthKCkuUW0qMTAwfSVgfSksXy5LKCJkaXYiLHtjbGFzczoieXRQcm9ncmVzc0JhckxpbmVQcm9ncmVzc0JhckhvdmVyZWQiLHN0eWxlOigpPT57dmFyIGQ9CmEoKTtyZXR1cm5gd2lkdGg6ICR7KGQudmlkZW9EdXJhdGlvbj9EUShkLmRqL2QudmlkZW9EdXJhdGlvbiwwLDEpOjApKjEwMH0lYH19KSxfLksoImRpdiIse2NsYXNzOiJ5dFByb2dyZXNzQmFyTGluZVByb2dyZXNzQmFyUGxheWVkIixzdHlsZTpfLklFKHt3aWR0aDooKT0+YCR7d1MoYSgpKSoxMDB9JWAsYmFja2dyb3VuZDooKT0+YigpLnByb2dyZXNzQ29sb3IhPT12b2lkIDA/Xy5KRShiKCkucHJvZ3Jlc3NDb2xvcik6dm9pZCAwfSl9KSkpfSwidGMiKTt3Vi5pZG9tQ29tcGF0PSEwO3ZhciB4Vj1fLkwoKHtMYjphLGhmOmIsQng6YyxXdzpkfSk9Pnt2YXIgZT1fLlAoInl0UHJvZ3Jlc3NCYXJQbGF5aGVhZFByb2dyZXNzQmFyUGxheWhlYWREb3QiLHt5dFByb2dyZXNzQmFyUGxheWhlYWRQcm9ncmVzc0JhclBsYXloZWFkRG90TGFyZ2U6KCk9PmEoKS5pc0RyYWdnaW5nLHl0UHJvZ3Jlc3NCYXJQbGF5aGVhZFByb2dyZXNzQmFyUGxheWhlYWREb3RIaWRlOigpPT4hYSgpLmlzRHJhZ2dpbmcmJmQoKX0pO3JldHVybiBfLksoInl0LXByb2dyZXNzLWJhci1wbGF5aGVhZCIse2NsYXNzOiJ5dFByb2dyZXNzQmFyUGxheWhlYWRIb3N0IixzdHlsZTpfLklFKHsibWFyZ2luLWxlZnQiOigpPT5gJHt4UyhhKCkpKjEwMH0lYCx0cmFuc2Zvcm06KCk9PmI/LigpPy5wbGF5aGVhZEltYWdlP2B0cmFuc2xhdGVYKC0ke2MoKT94UyhhKCkpKjIwOjEwfXB4KWA6YHRyYW5zbGF0ZVgoLSR7YygpP3hTKGEoKSkqMTI6Nn1weClgfSl9LF8uSyhfLk8se0E6KCk9PmI/LigpPy5wbGF5aGVhZEltYWdlLAp0aGVuOmY9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dFByb2dyZXNzQmFyUGxheWhlYWRQcm9ncmVzc0JhclBsYXloZWFkQ3VzdG9tIix7eXRQcm9ncmVzc0JhclBsYXloZWFkUHJvZ3Jlc3NCYXJQbGF5aGVhZEN1c3RvbUxhcmdlOigpPT5hKCkuaXNEcmFnZ2luZyx5dFByb2dyZXNzQmFyUGxheWhlYWRQcm9ncmVzc0JhclBsYXloZWFkQ3VzdG9tSGlkZTooKT0+IWEoKS5pc0RyYWdnaW5nJiZkKCl9KSxzdHlsZTpfLklFKHsidHJhbnNmb3JtLW9yaWdpbiI6KCk9PmAke2MoKT94UyhhKCkpKjIwOjEwfXB4IGNlbnRlcmB9KX0sXy5LKF8uakYse2RhdGE6ZixhbHQ6IiIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsVGI6ITF9KSksVzooKT0+Xy5LKCJkaXYiLHtjbGFzczplLHN0eWxlOl8uSUUoeyJ0cmFuc2Zvcm0tb3JpZ2luIjooKT0+YCR7YygpP3hTKGEoKSkqMTI6Nn1weCBjZW50ZXJgfSl9KX0pKX0sInVjIik7eFYuaWRvbUNvbXBhdD0hMDt2YXIgRG1hPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQsZSxmKXt0aGlzLkk9YTt0aGlzLkI9Yjt0aGlzLks9Yzt0aGlzLlU9ZDt0aGlzLlo9ZTt0aGlzLk09Zjt0aGlzLnN0YXJ0UG9zaXRpb249bnVsbDt0aGlzLmo9dGhpcy52PXRoaXMubz0hMTt0aGlzLkQ9bmV3IF8uV3QodGhpcy5ZLDEwMCx0aGlzKX1ZKGEsYixjKXtpZihiPWIuSCl7aWYoYi5nZXRWaWRlb0RhdGEoKT8uaXNMaXZlKXtsZXQgZD10aGlzLmdldFByb2dyZXNzU3RhdGUoYik7YSs9ZD8uc2Vla2FibGVTdGFydHx8MH1iLnNlZWtUbyhhLHZvaWQgMCx2b2lkIDAsdm9pZCAwLGMpfX1nZXRQcm9ncmVzc1N0YXRlKGEpe3ZhciBiPWE/LmdldFByZXNlbnRpbmdQbGF5ZXJUeXBlKCk7cmV0dXJuIGE/LmdldFByb2dyZXNzU3RhdGUoYil9fTt2YXIgRm1hPV8uTCgoe0xiOmEsY29uZmlnOmIsWm06YyxSYTpkfSk9Pnt2YXIgZT1EVChhLCgpPT5iKCkuSWIpLGY9KCk9PiFhKCkuUWMmJiFiKCkuSWIsaD1fLlAoInl0UGxheWVyU3Rvcnlib2FyZEhvc3QiLCJ5dFBsYXllclN0b3J5Ym9hcmRIb3N0QmlnYm9hcmQiLHt5dFBsYXllclN0b3J5Ym9hcmRIb3N0TXdlYlNob3J0czooKT0+YigpLkliJiYhMH0pO3JldHVybiBfLksoInl0LXBsYXllci1zdG9yeWJvYXJkIixudWxsLF8uSyhfLk8se0E6KCk9PmEoKS5pc0RyYWdnaW5nfHxhKCkuUWMsdGhlbjooKT0+Xy5LKF8uTyx7QTplLHRoZW46KCk9Pl8uSyhfLk8se0E6Zix0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOmgsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LF8uSyh5Vix7cHJvcHM6YSxjb25maWc6YixlZTohMCxSYTpkfSkpLFc6KCk9Pl8uSyhFbWEse3Byb3BzOmEsZnJhbWU6ZSxjb25maWc6YixabTpjLFJhOmR9KX0pfSl9KSl9LCJ2YyIpLEdtYT1fLkwoKHtMYjphLEliOmJ9KT0+Cnt2YXIgYz1EVChhLGIpO3JldHVybiBfLksoInl0LXBsYXllci1iaWctc3Rvcnlib2FyZCIse2NsYXNzOiJ5dFBsYXllclN0b3J5Ym9hcmRCaWdib2FyZFdyYXBwZXIifSxfLksoXy5PLHtBOigpPT5hKCkuaXNEcmFnZ2luZ3x8YSgpLlFjLHRoZW46KCk9Pl8uSyhfLk8se0E6Yyx0aGVuOigpPT5fLksoelYse2ZyYW1lOmMscHJvcHM6YSxlZTohMH0pfSl9KSl9LCJ3YyIpLEVtYT1fLkwoKHtwcm9wczphLGZyYW1lOmIsY29uZmlnOmMsWm06ZCxSYTplfSk9Pnt2YXIgZj1fLlAoInl0UGxheWVyU3Rvcnlib2FyZEhvc3QiLHt5dFBsYXllclN0b3J5Ym9hcmRIb3N0TXdlYlNob3J0czooKT0+YygpLkliJiYhMCx5dFBsYXllclN0b3J5Ym9hcmRIb3N0SW5saW5lUGxheWVyOigpPT5jKCkueHEseXRQbGF5ZXJTdG9yeWJvYXJkSG9zdEZhZGVJbjooKT0+YygpLnVzZUZhZGVJbkFuaW1hdGlvbn0pLGg9KCk9PntpZighXy54KCJlbmFibGVfd2ViX3dhdGNoX25leHRfaW1wX2NsaWVudCIpfHwhYygpLnhxKXJldHVybiAxOwp2YXIgaz1hKCkuSD8uZ2V0U2l6ZSgpPy5oZWlnaHQ/PzA7cmV0dXJuIGs+MCYmazwxNjA/ay8xNjA6MX07cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6ZiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixzdHlsZTpfLklFKCgpPT57dmFyIGs9YSgpLGw9eVQoYigpKSpoKCksbT1kKCk7az1BVChrKS9rLnZpZGVvRHVyYXRpb247dmFyIG49bSprLHA9bC8yKzY7bD1tLShsLzIrNik7cmV0dXJue2xlZnQ6YCR7bjw9cD9wL20qMTAwOm4+PWw/bC9tKjEwMDprKjEwMH0lYCwiLS1zdG9yeWJvYXJkLXNjYWxlIjpgJHtoKCl9YH19KX0sXy5LKF8uTyx7QTooKT0+e3ZhciBrPWEoKTtyZXR1cm4hKGMoKS5JYiYmay52aWRlb0R1cmF0aW9uPDE1KX0sdGhlbjooKT0+Xy5LKHpWLHtmcmFtZTpiLHByb3BzOmEsZWU6ITEsekE6aH0pfSksXy5LKHlWLHtwcm9wczphLGNvbmZpZzpjLGVlOiExLFJhOmV9KSl9LCJ4YyIpLHpWPV8uTCgoe2ZyYW1lOmEscHJvcHM6YixlZTpjLHpBOmR9KT0+e3ZhciBlPSgpPT5iKCkuSD8uZ2V0VmlkZW9Db250ZW50UmVjdCgpPz8Ke3dpZHRoOjAsaGVpZ2h0OjB9LGY9Xy5QKHt5dFBsYXllclN0b3J5Ym9hcmRCaWdib2FyZEltYWdlV3JhcHBlcjpjLHl0UGxheWVyU3Rvcnlib2FyZFN0b3J5Ym9hcmRJbWFnZVdyYXBwZXI6KCk9PiFjKCl9KTtyZXR1cm4gXy5LKCJkaXYiLHtjbGFzczpmLHN0eWxlOl8uSUUoKCk9Pih7d2lkdGg6YCR7YygpP2UoKS53aWR0aDp5VChhKCkpKihkPy4oKT8/MSl9cHhgLGhlaWdodDpgJHtjKCk/ZSgpLmhlaWdodDp6VChhKCkpKihkPy4oKT8/MSl9cHhgfSkpfSxfLksoSG1hLHtmcmFtZTphLFBBOigpPT55VChhKCkpLE5BOigpPT56VChhKCkpLE9BOigpPT57dmFyIGg9eVQoYSgpKTtyZXR1cm4gaD4wPyhjKCk/ZSgpLndpZHRoOnlUKGEoKSkqKGQ/LigpPz8xKSkvaDoxfX0pKX0sInljIiksSG1hPV8uTCgoe2ZyYW1lOmEsUEE6YixOQTpjLE9BOmR9KT0+Xy5LKCJpbWciLHtzcmM6KCk9PmEoKT8udXJsPz8iIixjbGFzczoieXRQbGF5ZXJTdG9yeWJvYXJkU3Rvcnlib2FyZEltYWdlIixhbHQ6InByZXZpZXctaW1hZ2UiLApzdHlsZTpfLklFKCgpPT57dmFyIGU9YSgpPz97cm93OjAsY29sdW1uOjAsd2lkdGg6MCxoZWlnaHQ6MH0sZj1iKCksaD1jKCksaz1kKCkse2xlZnQ6bCx0b3A6bX09e2xlZnQ6LWUuY29sdW1uKmYqayx0b3A6LWUucm93Kmgqa307cmV0dXJue2xlZnQ6YCR7bH1weGAsdG9wOmAke219cHhgLHdpZHRoOmAke2Uud2lkdGgqa31weGAsaGVpZ2h0OmAke2UuaGVpZ2h0Kmt9cHhgfX0pfSksInpjIikseVY9Xy5MKCh7cHJvcHM6YSxjb25maWc6YixlZTpjLFJhOmR9KT0+e3ZhciBlPV8uUCgieXRQbGF5ZXJTdG9yeWJvYXJkTWV0YWRhdGEiLHt5dFBsYXllclN0b3J5Ym9hcmRNZXRhZGF0YUJpZ2JvYXJkOmN9KTtyZXR1cm4gXy5LKCJkaXYiLHtjbGFzczplfSxfLksoXy5PLHtBOmMsdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoQVYse3Byb3BzOmEsY29uZmlnOmJ9KSxfLksoXy5PLHtBOigpPT57YTp7dmFyIGY9YSgpO3ZhciBoPWIoKSxrPWQoKTtpZihoPy5SZyYmXy5CKGg/LlJnLGVUKT8udGl0bGUpZj0KITA7ZWxzZXtmb3IobGV0IGwgb2YgRlMoayk/LmhlYXRNYXJrZXJzRGVjb3JhdGlvbnM/P1tdKXtmPShoPV8uQihsLHFWKSkmJkJUKGYsaCk7YnJlYWsgYX1mPSExfX1yZXR1cm4gZn0sdGhlbjooKT0+Xy5LKEJWLHtwcm9wczphLGNvbmZpZzpiLGVlOiEwLFJhOmR9KX0pKSxXOigpPT5fLksoXy5JQixudWxsLF8uSyhCVix7cHJvcHM6YSxjb25maWc6YixlZTohMCxSYTpkfSksXy5LKEFWLHtwcm9wczphLGNvbmZpZzpifSkpfSkpfSwiQWMiKSxBVj1fLkwoKHtwcm9wczphLGNvbmZpZzpifSk9Pnt2YXIgYz1fLlAoInl0UGxheWVyU3Rvcnlib2FyZFRpbWVzdGFtcCIse3l0UGxheWVyU3Rvcnlib2FyZFRpbWVzdGFtcFNob3J0czooKT0+YigpLkliLHl0UGxheWVyU3Rvcnlib2FyZFRpbWVzdGFtcElzSG92ZXJpbmc6KCk9PmEoKS5RY3x8YigpLkliJiYhMX0pO3JldHVybiBfLksoImRpdiIse2NsYXNzOmN9LF8uSyhfLklCLG51bGwsKCk9PkNUKEFUKGEoKSkpKSl9LCJCYyIpLEJWPV8uTCgoe3Byb3BzOmEsCmNvbmZpZzpiLGVlOmMsUmE6ZH0pPT57Yz1fLlAoInl0UGxheWVyU3Rvcnlib2FyZFRpdGxlIix7eXRQbGF5ZXJTdG9yeWJvYXJkVGl0bGVCaWdib2FyZDpjfSk7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Y30sXy5LKF8uTyx7QTooKT0+IWIoKS5JYix0aGVuOigpPT5fLksoSW1hLHtwcm9wczphLFJnOigpPT5iKCkuUmcsUmE6ZH0pfSkpfSwiQ2MiKSxJbWE9Xy5MKCh7cHJvcHM6YSxSZzpiLFJhOmN9KT0+Xy5LKF8uSUIsbnVsbCxfLksoXy5nRyx7cGE6KCk9Pnt2YXIgZD1jKCk7cmV0dXJuIEZTKGQpPy5oZWF0TWFya2Vyc0RlY29yYXRpb25zPz9bXX0sdGI6IklOREVYIn0sZD0+Xy5LKF8uSUIsbnVsbCxfLksoXy5PLHtBOigpPT5fLkIoZCgpLHFWKSYmQlQoYSgpLF8uQihkKCkscVYpKSx0aGVuOigpPT5fLksoSm1hLHtjQjooKT0+Xy5CKGQoKSxxVil9KX0pKSksXy5LKF8uTyx7QTooKT0+YigpJiZfLkIoYigpLGVUKT8udGl0bGUsdGhlbjpkPT5fLksoXy5WLHt0ZXh0OmQscmc6ITB9KX0pKSwKIkRjIiksSm1hPV8uTCgoe2NCOmF9KT0+Xy5LKF8uSUIsbnVsbCxfLksoImRpdiIse2NsYXNzOiJ5dFBsYXllclN0b3J5Ym9hcmRUaW1lZE1hcmtlckljb25XcmFwcGVyIn0sXy5LKF8uTUQse2ljb246KCk9PmEoKS5pY29uLGNsYXNzTmFtZToieXRQbGF5ZXJTdG9yeWJvYXJkVGltZWRNYXJrZXJJY29uIn0pKSxfLksoXy5WLHt0ZXh0OigpPT5hKCkubGFiZWwscmc6ITB9KSksIkVjIik7dmFyIENWPV8uTCgoe0xiOmEsaGY6Yixjb25maWc6Y30pPT57dmFyIGQ9Xy51RSgieXQtcHJvZ3Jlc3MtYmFyIiksZT1fLnVFKCJkaXYiKSxmPV8udUUoImRpdiIpLFtoLGtdPV8uSih7d2lkdGg6MCxsZWZ0OjB9LHZvaWQgMCwiZDFic2JmIiksbD0oKT0+e2YudmFsdWUmJmsoZi52YWx1ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSl9LG09KCk9PntoKCkud2lkdGg8PTAmJmwoKTtyZXR1cm4gaCgpfTtfLkRQKCJyZXNpemUiLGwpO3ZhciBuPW5ldyBEbWEobSwoKT0+e30sKCk9PjAsKCk9Pnt9LCgpPT57fSwoKT0+e30pLHA9KCk9PmEoKSxbcix0XT1fLkooITEsdm9pZCAwLCJjVnNUSyIpO18uRFAoIm1vdXNlbW92ZSIsWWthKG4scCxjKSk7Xy5EUCgibW91c2V1cCIseFQobixwLGMpKTt2YXIgdjtfLlVKKCgpPT57R2thKGUudmFsdWUpO3QoITEpO2woKTt4VChuLHAsYykoKTtjKCkuaWomJih2PW5ldyBSZXNpemVPYnNlcnZlcihsKSx2Lm9ic2VydmUoZi52YWx1ZSkpO18uWXUoKCk9Pgp7dj8uZGlzY29ubmVjdCgpfSl9KTt2YXIgej1fLlAoInl0UGxheWVyUHJvZ3Jlc3NCYXJIb3N0IiwoKT0+YygpLmNsYXNzTmFtZSx7eXRQbGF5ZXJQcm9ncmVzc0Jhckhvc3RSZWFkT25seTooKT0+YygpLmRpc2FibGVTY3J1YmJpbmcseXRQbGF5ZXJQcm9ncmVzc0Jhckhvc3RIaWRkZW46KCk9PmMoKS5rSiYmIXIoKSx5dFBsYXllclByb2dyZXNzQmFySG9zdExvd2VyUGxheWVyOigpPT5jKCkucG9zaXRpb249PT0wLHl0UGxheWVyUHJvZ3Jlc3NCYXJIb3N0Qm90dG9tRWRnZTooKT0+YygpLnBvc2l0aW9uPT09MSx5dFBsYXllclByb2dyZXNzQmFySG9zdEJvdHRvbUluc2V0OigpPT5jKCkucG9zaXRpb249PT0yLHl0UGxheWVyUHJvZ3Jlc3NCYXJIb3N0Q3VzdG9tOigpPT5jKCkucG9zaXRpb249PT0zfSksRT1fLlAoInl0UGxheWVyUHJvZ3Jlc3NCYXJCYWNrZ3JvdW5kIix7eXRQbGF5ZXJQcm9ncmVzc0JhckJhY2tncm91bmRIaWRlOigpPT5jKCkucG9zaXRpb249PT0yJiYhcigpJiYKIWEoKS5pc0RyYWdnaW5nfSksQT1fLlAoInl0UGxheWVyUHJvZ3Jlc3NCYXJEcmFnQ29udGFpbmVyIix7eXRQbGF5ZXJQcm9ncmVzc0JhckRyYWdDb250YWluZXJCb3R0b21FZGdlOigpPT5jKCkucG9zaXRpb249PT0xfSksRj1fLlAoInl0UGxheWVyUHJvZ3Jlc3NCYXJQcm9ncmVzc0JhciIse3l0UGxheWVyUHJvZ3Jlc3NCYXJQcm9ncmVzc0Jhckluc2V0OigpPT5jKCkucG9zaXRpb249PT0yLHl0UGxheWVyUHJvZ3Jlc3NCYXJQcm9ncmVzc0Jhckluc2V0TWluaW1pemVkOigpPT5jKCkucG9zaXRpb249PT0yJiYhcigpJiYhYSgpLmlzRHJhZ2dpbmd9KSxDPSgpPT5NYXRoLmZsb29yKHdTKGEoKSkqMTAwKTtyZXR1cm4gXy5LKCJ5dC1wcm9ncmVzcy1iYXIiLHtlbDpkLGNsYXNzOnp9LF8uSyhfLk8se0E6KCk9PmMoKS5wb3NpdGlvbj09PTIsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczpFfSl9KSxfLksoImRpdiIse2VsOmUsIm9uOmNsaWNrIjpmdW5jdGlvbihHKXsoYygpLkRJfHx0eXBlb2YgUG9pbnRlckV2ZW50IT09CiJ1bmRlZmluZWQiJiZHIGluc3RhbmNlb2YgUG9pbnRlckV2ZW50JiZHLnBvaW50ZXJUeXBlPT09Im1vdXNlIikmJk9rYShuLHAsYykoRyk7Ry5zdG9wUHJvcGFnYXRpb24oKX0sIm9uOnRvdWNoc3RhcnQiOmZ1bmN0aW9uKEcpe1BrYShuLHApKEcpO0cuc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjp0b3VjaG1vdmUiOmZ1bmN0aW9uKEcpe1JrYShuLHAsYykoRyk7Ry5zdG9wUHJvcGFnYXRpb24oKX0sIm9uOm1vdXNlZW50ZXIiOmZ1bmN0aW9uKCl7dCghMCk7YygpLnBvc2l0aW9uPT09Mj9zZXRUaW1lb3V0KCgpPT57bCgpfSwxMDApOmwoKX0sIm9uOm1vdXNlZG93biI6ZnVuY3Rpb24oRyl7UWthKG4scCkoRyk7Ry5zdG9wUHJvcGFnYXRpb24oKX0sIm9uOm1vdXNlbGVhdmUiOmZ1bmN0aW9uKCl7dCghMSk7VGthKHApKCl9LCJvbjptb3VzZW1vdmUiOmZ1bmN0aW9uKEcpe1NrYShuLHAsYykoRyk7Ry5zdG9wUHJvcGFnYXRpb24oKX0sIm9uOm1vdXNldXAiOmZ1bmN0aW9uKEcpe1ZrYShuLApwLGMpKEcpO3IoKSYmYSgpLlMoe1FjOiEwfSk7Ry5zdG9wUHJvcGFnYXRpb24oKX0sIm9uOnRvdWNoZW5kIjpmdW5jdGlvbihHKXtVa2EobixwLGMpKEcpO0cuc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjp0b3VjaGNhbmNlbCI6ZnVuY3Rpb24oRyl7V2thKG4scCxjKShHKTtHLnN0b3BQcm9wYWdhdGlvbigpfSwib246a2V5ZG93biI6ZnVuY3Rpb24oRyl7WGthKHApKEcpO0cuc3RvcFByb3BhZ2F0aW9uKCl9LGNsYXNzOkEscm9sZToic2xpZGVyIiwiYXJpYS12YWx1ZW5vdyI6QywiYXJpYS12YWx1ZXRleHQiOigpPT5gJHtDKCl9JWAsImFyaWEtdmFsdWVtaW4iOigpPT4wLCJhcmlhLXZhbHVlbWF4IjooKT0+MTAwLGRyYWdnYWJsZToiZmFsc2UiLHRhYmluZGV4OjAsImFyaWEtbGFiZWwiOl8uYUEoIlNFRUtfU0xJREVSIil9LF8uSygiZGl2Iix7ZWw6ZixjbGFzczpGfSxfLksoImRpdiIse2NsYXNzOl8uUCgieXRQbGF5ZXJQcm9ncmVzc0JhckhlYXRzZWVrZXJDb250YWluZXIiLHt5dFBsYXllclByb2dyZXNzQmFySGVhdHNlZWtlckNvbnRhaW5lckluc2V0OigpPT4KYygpLnBvc2l0aW9uPT09Mn0pfSxfLksoQ21hLHtMYjphLGNvbmZpZzpjLGhpZ2hDb250cmFzdDooKT0+ISFjKCkuaWomJmMoKS5wb3NpdGlvbiE9PTJ9KSksXy5LKF8uTyx7QTooKT0+YygpLlJhJiZ6a2EoYygpLlJhKSx0aGVuOigpPT5fLksoQW1hLHtKejphLG11bHRpTWFya2Vyc1BsYXllckJhclJlbmRlcmVyOigpPT5jKCkuUmEscHJvZ3Jlc3NCYXJXaWR0aDooKT0+aCgpLndpZHRoLHByb2dyZXNzQ29sb3I6KCk9PmMoKS5wcm9ncmVzc0NvbG9yfSksVzooKT0+Xy5LKF8uTyx7QTooKT0+YygpLlNpLHRoZW46KCk9Pl8uSyh2Vix7TGI6YSxjb25maWc6Y30pLFc6KCk9Pl8uSyh3Vix7TGI6YSxjb25maWc6Y30pfSl9KSxfLksoeFYse0xiOmEsaGY6KCk9Pl8ueCgiZW5hYmxlX2N1c3RvbV9zY3J1YmJlcl92MiIpP2MoKS5oZjpiPy4oKSxCeDooKT0+YygpLnBvc2l0aW9uIT09MixXdzooKT0+YygpLnhyPT09MSYmIXIoKXx8YygpLnhyPT09Mn0pKSksXy5LKEZtYSx7TGI6YSxjb25maWc6KCk9Pgooe1JnOmxUKGEoKSxjKCkuUmEpLGRKOigpPT5tKCkud2lkdGgsSWI6ISFjKCkuSWIseHE6ISFjKCkuaWosdXNlRmFkZUluQW5pbWF0aW9uOiEhYygpLmlqfSksWm06KCk9PmgoKS53aWR0aCxSYTooKT0+YygpLlJhfSkpfSwiRmMiKTtDVi5pZG9tQ29tcGF0PSEwO3ZhciBEVj1fLkwoYT0+e3ZhciBiPSgpPT57dmFyIGQ9YS5wbGF5ZXJPdmVybGF5UmVuZGVyZXI/LigpO2lmKGQpcmV0dXJuIHpTKGQpfSxjPSgpPT57dmFyIGQ9YigpO2lmKGQpe3ZhciBlPWEuSm8oKS5hdXRvbmF2RW5hYmxlZDtyZXR1cm4gXy5hTihlP18uQihkLmVuYWJsZWRFZHVDb21tYW5kLFdVKT8udGV4dDpfLkIoZC5kaXNhYmxlZEVkdUNvbW1hbmQsV1UpPy50ZXh0KX19O3JldHVybiBfLksoXy5PLHtBOigpPT5hLkpvKCkuWWgmJiEhYigpLHRoZW46KCk9Pl8uSygiYXV0b25hdi10b29sdGlwIix7Y2xhc3M6Inl0d0F1dG9uYXZUb29sdGlwSG9zdCIscm9sZToiYWxlcnQifSxfLksoInNwYW4iLHsiYXJpYS1sYWJlbCI6Yyxyb2xlOiJ0ZXh0In0sYykpfSl9LCJHYyIpO0RWLmlkb21Db21wYXQ9ITA7dmFyIEVWPV8uTChhPT57dmFyIGI9Xy52RSgic3BlZWRtYXN0ZXItdG9vbHRpcCIpLGM9Xy5OKCgpPT5hLkcoKS5zYix2b2lkIDAsIkVzVFJsYyIpO18ubkUoKCk9PntpZihjKCkmJmIudmFsdWUpe2xldCBkPW51bGw7U1MoMTczMDQwLGIudmFsdWUsZCxlPT57ZD1lfSl9fSwiQXZwR0lmIik7cmV0dXJuIF8uSyhfLk8se0E6Yyx0aGVuOigpPT5fLksoInNwZWVkbWFzdGVyLXRvb2x0aXAiLHtlbDpiLGNsYXNzOiJ5dHdTcGVlZG1hc3RlclRvb2x0aXBIb3N0In0sXy5LKCJkaXYiLHtjbGFzczoieXR3U3BlZWRtYXN0ZXJUb29sdGlwTGFiZWwifSxfLiROLkd0KSxfLksoXy5NRCx7aWNvbjoiRkFTVF9GT1JXQVJEIixhY3RpdmU6ITAsY2xhc3NOYW1lOiJ5dHdTcGVlZG1hc3RlclRvb2x0aXBJY29uIn0pKX0pfSwiSWMiKTtFVi5pZG9tQ29tcGF0PSEwO3ZhciBGVj1fLkwoYT0+Xy5LKCJwbGF5ZXItdXNlci1lZHUtdG9vbHRpcCIse2NsYXNzOiJ5dHdQbGF5ZXJVc2VyRWR1VG9vbHRpcEhvc3QifSxfLksoRFYse0pvOmEuRyxwbGF5ZXJPdmVybGF5UmVuZGVyZXI6YS5wbGF5ZXJPdmVybGF5UmVuZGVyZXJ9KSxfLksoImRpdiIse2NsYXNzOiJ5dHdQbGF5ZXJVc2VyRWR1VG9vbHRpcFRvb2x0aXBDb250YWluZXIifSxfLksoImRpdiIse2NsYXNzOiJ5dHdQbGF5ZXJVc2VyRWR1VG9vbHRpcFRvb2x0aXBXcmFwcGVyIn0sXy5LKEVWLHtHOmEuR30pKSkpLCJKYyIpO0ZWLmlkb21Db21wYXQ9ITA7dmFyIFprYT1bMCwxLDIwLDIxXTt2YXIgYWxhPVswLDEsMjAsMjFdLEdUPXZvaWQgMDt2YXIgS21hPV8uTCgoe3VkOmEsRXI6Yn0pPT57ZnVuY3Rpb24gYyhwKXtwLnRvdWNoZXM/LlswXSYmKHA9cC50b3VjaGVzWzBdLGsoe3g6cC5wYWdlWCx5OnAucGFnZVl9KSl9ZnVuY3Rpb24gZChwKXt2YXIgcj1oKCk7aWYoIXJ8fCFwLnRvdWNoZXM/LlswXSlyZXR1cm4gbnVsbDtwPXAudG91Y2hlc1swXTtyZXR1cm57bGs6cC5wYWdlWC1yLngsT2Q6cC5wYWdlWS1yLnl9fXZhciBbZSxmXT1fLkoobnVsbCx2b2lkIDAsIkFoMzBnIiksaD1lLGs9ZixbbCxtXT1fLkoodm9pZCAwLHZvaWQgMCwiUW83NmhkIik7Xy5ZdSgoKT0+e0ZUKGEoKSk7bShFVChsKCkpKX0pO3ZhciBuPXtHYjooKT0+Xy5LKCJkaXYiLG51bGwsXy5LKF8uVyx7ZGF0YTooKT0+Yj8uKCk/Lm1lbnVSZW5kZXJlcj8uaXRlbXN8fFtdfSx7bGlzdEl0ZW1WaWV3TW9kZWw6KHtkYXRhOnB9KT0+Xy5LKF8ucEwse2RhdGE6cCxJYTohMH0pLHN3aXRjaExpc3RJdGVtVmlld01vZGVsOl8uZkp9KSksSGE6ITB9O3JldHVybiBfLksoInl0bS1zaG9ydHMtZ2VzdHVyZS1vdmVybGF5LWNvbnRyb2xzIiwKe2NsYXNzOiJ5dG1TaG9ydHNHZXN0dXJlT3ZlcmxheUNvbnRyb2xzR2VzdHVyZU92ZXJsYXkifSxfLksoRlYse0c6YX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0bVNob3J0c0dlc3R1cmVPdmVybGF5Q29udHJvbHNHZXN0dXJlQ29udGFpbmVyIn0sXy5LKCJkaXYiLHtjbGFzczoieXRtU2hvcnRzR2VzdHVyZU92ZXJsYXlDb250cm9sc1NwZWVkbWFzdGVyR2VzdHVyZUFyZWEiLCJvbjp0b3VjaHN0YXJ0IjpwPT57YyhwKTtIVChhKCkscC50b3VjaGVzLmxlbmd0aCl9LCJvbjp0b3VjaG1vdmUiOnA9Pnt2YXIgcj1kKHApO3ImJklUKHAscixhKCkpfSwib246dG91Y2hlbmQiOigpPT57RlQoYSgpKTtrKG51bGwpfSwib246dG91Y2hjYW5jZWwiOigpPT57RlQoYSgpKTtrKG51bGwpfX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0bVNob3J0c0dlc3R1cmVPdmVybGF5Q29udHJvbHNNZW51R2VzdHVyZUFyZWEiLCJvbjp0b3VjaHN0YXJ0IjpwPT57YyhwKTttKCRrYShhKCkscC50b3VjaGVzLmxlbmd0aCwKKCk9PntfLnlOKG4pfSxsKCkpKX0sIm9uOnRvdWNobW92ZSI6cD0+e3ZhciByPWQocCk7aWYocil7cD1sKCk7dmFyIHQ9ci5saztyPXIuT2Q7cD1NYXRoLnNxcnQodCp0K3Iqcik+Xy5zaigic3BlZWRtYXN0ZXJfY2FuY2VsbGF0aW9uX21vdmVtZW50X2RwIiwxMCk/RVQocCk6cDttKHApfX0sIm9uOnRvdWNoZW5kIjooKT0+e20oRVQobCgpKSk7ayhudWxsKX0sIm9uOnRvdWNoY2FuY2VsIjooKT0+e20oRVQobCgpKSk7ayhudWxsKX19KSxfLksoImRpdiIse2NsYXNzOiJ5dG1TaG9ydHNHZXN0dXJlT3ZlcmxheUNvbnRyb2xzU3BlZWRtYXN0ZXJHZXN0dXJlQXJlYSIsIm9uOnRvdWNoc3RhcnQiOnA9PntjKHApO0hUKGEoKSxwLnRvdWNoZXMubGVuZ3RoKX0sIm9uOnRvdWNobW92ZSI6cD0+e3ZhciByPWQocCk7ciYmSVQocCxyLGEoKSl9LCJvbjp0b3VjaGVuZCI6KCk9PntGVChhKCkpO2sobnVsbCl9LCJvbjp0b3VjaGNhbmNlbCI6KCk9PntGVChhKCkpO2sobnVsbCl9fSkpKX0sIktjIik7dmFyIEdWPV8uTChhPT57dmFyIGI9Xy51RSgiZGl2IiksYz1fLk4oKCk9PmEudGh1bWJuYWlsRGV0YWlscz8uKCksdm9pZCAwLCJFODhVR2QiKSxkPV8uTigoKT0+YS5HKCkuYmEsdm9pZCAwLCJYdEdBbWUiKTtfLm5FKCgpPT57Y2xhKGIudmFsdWUsYygpLGQoKSl9LCJ5QWtpaWMiKTtyZXR1cm4gXy5LKCJ2aWRlby1jb3ZlciIse2NsYXNzOl8uUCgieXRtVmlkZW9Db3Zlckhvc3QiLHtlbmRlZDooKT0+dVMoYS5HKCkpLGhpZGRlbjooKT0+e3ZhciBlPWEuRygpO3JldHVybiEoJFMoZSl8fHVTKGUpKX19KX0sXy5LKCJkaXYiLHtjbGFzczoieXRtVmlkZW9Db3ZlclRodW1ibmFpbCIsZWw6Yn0pKX0sIk1jIik7R1YuaWRvbUNvbXBhdD0hMDtuZXcgXy5XdChlbGEsMjAwKTt2YXIgU1Q9MDt2YXIgVVQ9SlIoKSxWVD0hMTtuZXcgXy5DdCgicGxheWVyU2V0dGluZ3NNZW51IiwiTnhkM3VmIik7dmFyIExtYT1fLkwoKHtnZjphLEV4OmIscmVlbFBsYXllclNjcnViYmVyUmVuZGVyZXI6Y30pPT57dmFyIGQ9Xy5QKCJ5dE13ZWJTaG9ydHNQbGF5ZXJDb250cm9sc0hvc3QiLHt5dE13ZWJTaG9ydHNQbGF5ZXJDb250cm9sc0hvc3RJc1NjcnViYmFibGVNb2RlOigpPT5YVChhKCksYigpKX0se3l0TXdlYlNob3J0c1BsYXllckNvbnRyb2xzSG9zdEhpZGVQcm9ncmVzc0JhcjooKT0+V1QoYSgpLGIoKSkmJmEoKS52aWRlb0R1cmF0aW9uPD0zMH0pO3JldHVybiBfLksoImRpdiIse2NsYXNzOmR9LF8uSyhDVix7TGI6YSxjb25maWc6KCk9Pnt2YXIgZT17SWI6ITAscG9zaXRpb246MyxkaXNhYmxlU2NydWJiaW5nOiFYVChhKCksYigpKSxJbjohMSx4cjpYVChhKCksYigpKT8wOjEsb25Ub3VjaE1vdmU6KCk9PnthKCkuZ2V8fChhKCkuUyh7Z2U6ITB9KSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInVwZGF0ZS1zaG9ydHMtb3ZlcmxheS12aXNpYmlsaXR5Iix7YnViYmxlczohMCwKZGV0YWlsOntnZTohMH19KSkpfSxvblRvdWNoRW5kOmg9PntVUyhoKTthKCkuUyh7Z2U6ITF9KTt3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInVwZGF0ZS1zaG9ydHMtb3ZlcmxheS12aXNpYmlsaXR5Iix7YnViYmxlczohMCxkZXRhaWw6e2dlOiExfX0pKX19LGY9Yz8uKCk7cmV0dXJuIGY/LnBsYXloZWFkSW1hZ2U/ey4uLmUsaGY6e3BsYXloZWFkSW1hZ2U6Zi5wbGF5aGVhZEltYWdlfX06ZX19KSl9LCJRYyIpLE1tYT1fLkwoKHtIOmEsY29udGV4dDpiLHJlZWxQbGF5ZXJTY3J1YmJlclJlbmRlcmVyOmMsRXI6ZH0pPT57dmFyIFtlLGZdPV8uSighMSx2b2lkIDAsIlFjWlNnZCIpLFtoLGtdPV8uSighMSx2b2lkIDAsImNudHpyZiIpLFtsLG1dPV8uSighMSx2b2lkIDAsIlNUSWFlYiIpLFtuLHBdPV8uSighMSx2b2lkIDAsIkN3WGZiYyIpLFtyLHRdPV8uSigwLHZvaWQgMCwiczVLTE1iIiksW3Ysel09Xy5KKDAsdm9pZCAwLCJnamxxTmMiKSxbRSxBXT1fLkooMCwKdm9pZCAwLCJHVWNpWmUiKSxbRixDXT1fLkooIiIsdm9pZCAwLCJ4R0llOCIpLFtHLERdPV8uSighMSx2b2lkIDAsIkZwNUQ0YiIpLEg9Xy5OKCgpPT57dmFyIHBhPXtlYTplKCksZ2U6aCgpLHliOmwoKSxpc0RyYWdnaW5nOm4oKSx2aWRlb0R1cmF0aW9uOnYoKSx2YTpFKCksdmlkZW9JZDpGKCksQ2E6cigpLHNiOkcoKX07cmV0dXJuey4uLmRUKCksLi4ucGEsLi4uKGI/LigpPz97fSksUzpvYT0+e29hLmVhIT09dm9pZCAwJiZmKG9hLmVhKTtvYS5nZSE9PXZvaWQgMCYmayhvYS5nZSk7b2EueWIhPT12b2lkIDAmJm0ob2EueWIpO29hLmlzRHJhZ2dpbmchPT12b2lkIDAmJnAob2EuaXNEcmFnZ2luZyk7b2EuQ2EhPT12b2lkIDAmJnQob2EuQ2EpO29hLnZpZGVvRHVyYXRpb24hPT12b2lkIDAmJnoob2EudmlkZW9EdXJhdGlvbik7b2EudmEhPT12b2lkIDAmJkEob2EudmEpO29hLnZpZGVvSWQhPT12b2lkIDAmJkMob2EudmlkZW9JZCk7b2Euc2IhPT12b2lkIDAmJkQob2Euc2IpfSx0YTp7aXNGdWxsc2NyZWVuOl8uclAsCnRvZ2dsZUZ1bGxzY3JlZW46dWphLGV4aXRGdWxsc2NyZWVuOiRRLGRlOmZsYSxSajpobGEsVWw6aWxhfSxIOmEoKX19LHZvaWQgMCwiVXljTVNiIiksUj1Na2EoSCksTT1Ma2EoSCksUz1La2EoSCksWT0oKT0+e307Xy5vRigoKT0+e3ZhciBwYT1hKCk7cGEmJihwYS5hZGRFdmVudExpc3RlbmVyKCJvblZpZGVvUHJvZ3Jlc3MiLFIpLHBhLmFkZEV2ZW50TGlzdGVuZXIoIm9uVmlkZW9EYXRhQ2hhbmdlIixNKSxwYS5hZGRFdmVudExpc3RlbmVyKCJvblN0YXRlQ2hhbmdlIixTKSl9KTtfLll1KCgpPT57dmFyIHBhPWEoKTtwYSYmcGE/LmlzUmVhZHk/LigpJiYocGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25WaWRlb1Byb2dyZXNzIixSKSxwYS5yZW1vdmVFdmVudExpc3RlbmVyKCJvblZpZGVvRGF0YUNoYW5nZSIsTSkscGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25TdGF0ZUNoYW5nZSIsUykpfSk7cmV0dXJuIF8uSygieXQtbXdlYi1zaG9ydHMtcGxheWVyLWNvbnRyb2xzIix7Y2xhc3M6Xy5QKHtQcm9ncmVzc0JhclNob3dpbmc6KCk9PgpYVChIKCksITApfSl9LF8uSyhfLk8se0E6KCk9PkgoKS5iYT8uWmgsdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoR1Yse0c6SCx0aHVtYm5haWxEZXRhaWxzOll9KSxfLksodVYse0c6SCxIOmF9KSl9KSxfLksoXy5PLHtBOigpPT57dmFyIHBhPUgoKTtyZXR1cm4gWFQocGEsITApfHxXVChwYSwhMCl9LHRoZW46KCk9Pl8uSyhMbWEse2dmOkgsRXg6KCk9PiEwLHJlZWxQbGF5ZXJTY3J1YmJlclJlbmRlcmVyOmN9KX0pLF8uSyhfLk8se0E6KCk9Pl8ueCgibXdlYl9zaG9ydHNfZW5hYmxlX2xvbmdfcHJlc3Nfc3BlZWR1cCIpLHRoZW46KCk9Pl8uSyhfLkNQLHtyb290OiIjZ2VzdHVyZS1sYXllciJ9LCgpPT5fLksoS21hLHt1ZDpILEVyOmR9KSl9KSl9LCJTYyIpO3ZhciBIVj1fLkwoYT0+e2Z1bmN0aW9uIGIoVSl7VSE9PTB8fHIoKT9VPjUwJiYocigpfHwhRSgpKT8odCghMSksQSghMCkpOlU8PTUwJiYocigpfHxFKCkpJiYodCghMSksQSghMSkpOnQoITApfWFzeW5jIGZ1bmN0aW9uIGMoVSxoYSl7KFU9ZSgpPz9hd2FpdCBfLkxIKCkpJiYoaGE/VS51bk11dGUoITApOlUubXV0ZSghMCkpfWFzeW5jIGZ1bmN0aW9uIGQoVSl7dmFyIGhhPWUoKT8/YXdhaXQgXy5MSCgpLG1hPTUwO2hhJiYobWE9aGEuZ2V0Vm9sdW1lKCksaGEuaXNNdXRlZCgpP1pUKFUsMCk6WlQoVSxtYSkpO0cobWEpfXZhciBlPWtsYShhLkgpLGY9Xy51RSgidm9sdW1lLWNvbnRyb2xzIiksaD1fLnVFKCJidXR0b24iKSxrPV8udkUoImlucHV0IiksW2wsbV09Xy5KKCExLHZvaWQgMCwic01jTGxiIiksW24scF09Xy5KKCExLHZvaWQgMCwiZ29OcHYiKSxyPW4sdD1wLFt2LHpdPV8uSighMCx2b2lkIDAsImtBVDk1IiksRT12LEE9eixbRixDXT1fLkooNTAsdm9pZCAwLCJxNXFEMmMiKSwKRz1DLEQ9Xy5OKCgpPT57dmFyIFU9cigpO3JldHVybiBfLngoIndlYl9zaG9ydHNfa2V5Ym9hcmRfZW5hYmxlX211dGVfc2hvcnRjdXQiKT9VP18uYUEoIlBMQVlFUl9MQUJFTF9VTk1VVEUiLHZvaWQgMCwiVW5tdXRlIChtKSIpOl8uYUEoIlBMQVlFUl9MQUJFTF9NVVRFIix2b2lkIDAsIk11dGUgKG0pIik6VT9fLmFBKCJVTk1VVEVfVk9MVU1FIix2b2lkIDAsIlVubXV0ZSIpOl8uYUEoIk1VVEVfVk9MVU1FIix2b2lkIDAsIk11dGUiKX0sdm9pZCAwLCJsUjFzR2MiKSxIPV8uTigoKT0+e3ZhciBVPXIoKSxoYT1FKCk7cmV0dXJue3NvdXJjZXM6W3tjbGllbnRSZXNvdXJjZTp7aW1hZ2VOYW1lOlU/IlZPTFVNRV9PRkZfRklMTEVEIjpoYT8iVk9MVU1FX1VQX0ZJTExFRCI6IlZPTFVNRV9ET1dOX0ZJTExFRCJ9fV19fSx2b2lkIDAsIlNJcWtlYyIpLFI9Xy5OKCgpPT57dmFyIFU9RigpO3JldHVybiByKCk/YCR7VX0lIHZvbHVtZSBtdXRlZGA6YCR7VX0lIHZvbHVtZWB9LHZvaWQgMCwiVGZIUDBkIiksCk09Xy5OKCgpPT5hLm9yaWVudGF0aW9uKCk9PT0idmVydGljYWxfZG93biIsdm9pZCAwLCJaN0YzdWIiKSxTPV8uTigoKT0+TSgpPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwiLHZvaWQgMCwic1YyTXBiIiksWT1fLk4oKCk9PmEuRHY/LigpPz8hMSx2b2lkIDAsInpvdlVMZSIpLHBhPV8uTigoKT0+YS5DcD8uKCk/PyExLHZvaWQgMCwicEVVaHFlIik7Xy5VSigoKT0+e2Z1bmN0aW9uIFUoKXttKCEwKX1mdW5jdGlvbiBoYSgpe20oITEpfWsmJmsudmFsdWUmJihrLnZhbHVlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixVKSxrLnZhbHVlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IixoYSksZChrLnZhbHVlKS50aGVuKCgpPT57YihOdW1iZXIoay52YWx1ZT8udmFsdWU/PzApKX0pKTtoJiZoLnZhbHVlJiYoV1MoaC52YWx1ZSwyODY2MiksaC52YWx1ZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsVSksaC52YWx1ZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsaGEpKTtfLll1KCgpPT4Ke2s/LnZhbHVlPy5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsVSk7az8udmFsdWU/LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IixoYSk7aD8udmFsdWU/LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixVKTtoPy52YWx1ZT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLGhhKX0pfSk7dmFyIG9hPVU9PntVPVUubXV0ZWQ/MDpVLnZvbHVtZTtHKFUpO2IoVSk7ay52YWx1ZSYmWlQoay52YWx1ZSxVKX07Xy5uRSgoKT0+e3ZhciBVPWUoKTtVJiYoVS5hZGRFdmVudExpc3RlbmVyKCJvblZvbHVtZUNoYW5nZSIsb2EpLF8uWXUoKCk9PntVLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9uVm9sdW1lQ2hhbmdlIixvYSl9KSl9LCJ4aDNHWmMiKTtyZXR1cm4gXy5LKCJ2b2x1bWUtY29udHJvbHMiLHtjbGFzczpfLlAoInl0ZFZvbHVtZUNvbnRyb2xzSG9zdCIse3l0ZFZvbHVtZUNvbnRyb2xzRGlzYWJsZVNsaWRlcjpwYX0sYS5jbGFzc05hbWUpLGVsOmZ9LF8uSygiZGl2IiwKeyJvbjpwb2ludGVybGVhdmUiOmZ1bmN0aW9uKCl7bSghMSl9LGNsYXNzOl8uUCgieXRkVm9sdW1lQ29udHJvbHNWb2x1bWVDb250cm9sc0NvbnRhaW5lciIse3l0ZFZvbHVtZUNvbnRyb2xzVm9sdW1lQ29udHJvbHNDb250YWluZXJWZXJ0aWNhbDpNLHl0ZFZvbHVtZUNvbnRyb2xzVm9sdW1lQ29udHJvbHNDb250YWluZXJFeHBhbmRlZDooKT0+bCgpfSl9LF8uSyhfLk8se0E6KCk9PiFhLmJqPy4oKSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOl8uUCgieXRkVm9sdW1lQ29udHJvbHNCYWNrZ3JvdW5kU2NyaW0iLHt5dGRWb2x1bWVDb250cm9sc0JhY2tncm91bmRTY3JpbUV4cGFuZGVkOmwseXRkVm9sdW1lQ29udHJvbHNCYWNrZ3JvdW5kU2NyaW1FeHBhbmRlZEhvdmVyU3RhdGU6KCk9PmwoKSYmWSgpfSl9KX0pLF8uSygiZGl2Iix7Y2xhc3M6Xy5QKHt5dGRWb2x1bWVDb250cm9sc011dGVJY29uQnV0dG9uQ29udGFpbmVyOk19KX0sXy5LKCJidXR0b24iLHsiYXJpYS1sYWJlbCI6RCwKdGl0bGU6RCxlbDpoLCJvbjpjbGljayI6ZnVuY3Rpb24oVSl7WFMoMjg2NjIpO2smJmsudmFsdWUmJmMoay52YWx1ZSxyKCkpO1Uuc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjpwb2ludGVyZW50ZXIiOmZ1bmN0aW9uKCl7bSghMCl9LGNsYXNzOiJ5dGRWb2x1bWVDb250cm9sc011dGVJY29uQnV0dG9uIn0sSD9fLksoXy5qRix7ZGF0YTpILGFsdDpELGNsYXNzTmFtZToieXRkVm9sdW1lQ29udHJvbHNNdXRlSWNvbiJ9KTpudWxsKSksXy5LKCJkaXYiLHtjbGFzczpfLlAoInl0ZFZvbHVtZUNvbnRyb2xzU2xpZGVyQ29udGFpbmVyIix7eXRkVm9sdW1lQ29udHJvbHNTbGlkZXJDb250YWluZXJFeHBhbmRlZDpsLHl0ZFZvbHVtZUNvbnRyb2xzU2xpZGVyQ29udGFpbmVyVmVydGljYWw6TSx5dGRWb2x1bWVDb250cm9sc1NsaWRlckNvbnRhaW5lclZlcnRpY2FsRG93bjpNLHl0ZFZvbHVtZUNvbnRyb2xzU2xpZGVyQ29udGFpbmVyVmVydGljYWxFeHBhbmRlZDooKT0+bCgpJiZNKCkseXRkVm9sdW1lQ29udHJvbHNTbGlkZXJDb250YWluZXJEaXNhYmxlU2xpZGVyOnBhLAp5dGRWb2x1bWVDb250cm9sc1NsaWRlckNvbnRhaW5lcldpdGhTY3JpbTooKT0+IWEuYmo/LigpfSksIm9uOmNsaWNrIjpmdW5jdGlvbihVKXtVLnN0b3BQcm9wYWdhdGlvbigpfX0sXy5LKCJpbnB1dCIse2RpcjoibHRyIiwiYXJpYS1sYWJlbCI6Xy5hQSgiVk9MVU1FIiksdGl0bGU6Xy5hQSgiVk9MVU1FIiksZWw6aywib246aW5wdXQiOmZ1bmN0aW9uKFUpe2smJmsudmFsdWUmJmpsYShOdW1iZXIoay52YWx1ZT8udmFsdWU/PzApLGUoKSk7VS5zdG9wUHJvcGFnYXRpb24oKX0sdHlwZToicmFuZ2UiLGNsYXNzOiJ5dGRWb2x1bWVDb250cm9sc05hdGl2ZVNsaWRlciIsaWQ6InZvbHVtZS1pbnB1dCIscm9sZToic2xpZGVyIiwiYXJpYS12YWx1ZW5vdyI6RiwiYXJpYS12YWx1ZXRleHQiOlIsImFyaWEtdmFsdWVtaW4iOjAsImFyaWEtdmFsdWVtYXgiOjEwMCwiYXJpYS1vcmllbnRhdGlvbiI6U30pKSkpfSwiVWMiKTt2YXIgTm1hPV8uTChhPT57dmFyIGI9KCk9Pnt2YXIgYz1hLkcoKSxkPWMuSD8uZ2V0U2l6ZT8uKCk/LndpZHRoO3JldHVybihjLmJhPy5FZXx8Xy54KCJtd2ViX2VuYWJsZV9wb3J0cmFpdF9mdWxsc2NyZWVuX2FjdGlvbnMiKSkmJiEhZCYmZDw0MjB9O3JldHVybiBfLksoInl0bS1mdWxsc2NyZWVuLXJlbGF0ZWQtdmlkZW9zLWVudHJ5LXBvaW50LXZpZXctbW9kZWwiLHtjbGFzczpfLlAoInl0bUZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludFZpZXdNb2RlbEhvc3QiLHt5dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxUaXRsZUhpZGRlbjpifSl9LF8uSygiYnV0dG9uIix7Y2xhc3M6Xy5QKCJ5dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxCdXR0b24iLHt5dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxTaW5nbGVUaHVtYm5haWw6Xy54KCJtd2ViX2VuYWJsZV9wb3J0cmFpdF9mdWxsc2NyZWVuX2FjdGlvbnMiKX0pLAoib246Y2xpY2siOmZ1bmN0aW9uKGMpe2EuRygpLlMoe05hOiEwfSk7Xy5NTygiLmZ1bGxzY3JlZW4tcmVjb21tZW5kYXRpb24gLm1lZGlhLWl0ZW0taW5mbyBhIik7YlQoKTtjLnN0b3BQcm9wYWdhdGlvbigpfSwiYXJpYS1sYWJlbCI6KCk9PmEuZGF0YSgpLnRpdGxlPy5jb250ZW50Pz8iIn0sXy5LKF8uTyx7QTooKT0+IWIoKSx0aGVuOigpPT5fLksoXy5WLHt0ZXh0OigpPT5hLmRhdGEoKS50aXRsZX0pfSksXy5LKF8uTyx7QTooKT0+YS5kYXRhKCkuaW1hZ2VGcm9udCx0aGVuOmM9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0bUZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludFZpZXdNb2RlbFRodW1ibmFpbFN0YWNrIn0sXy5LKF8uTyx7QTooKT0+IV8ueCgibXdlYl9lbmFibGVfcG9ydHJhaXRfZnVsbHNjcmVlbl9hY3Rpb25zIil8fCEhYS5kYXRhKCkuaW1hZ2VCYWNrLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxGYWRlZFRodW1ibmFpbCIsCiJ5dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxTbWFsbEZhZGVkVGh1bWJuYWlsIil9KX0pLF8uSyhfLk8se0E6KCk9PiFfLngoIm13ZWJfZW5hYmxlX3BvcnRyYWl0X2Z1bGxzY3JlZW5fYWN0aW9ucyIpfHwhIWEuZGF0YSgpLmltYWdlTWlkZGxlLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxGYWRlZFRodW1ibmFpbCIsInl0bUZ1bGxzY3JlZW5SZWxhdGVkVmlkZW9zRW50cnlQb2ludFZpZXdNb2RlbExhcmdlRmFkZWRUaHVtYm5haWwiKX0pfSksXy5LKCJkaXYiLHtjbGFzczoieXRtRnVsbHNjcmVlblJlbGF0ZWRWaWRlb3NFbnRyeVBvaW50Vmlld01vZGVsVGh1bWJuYWlsQ29udGFpbmVyIn0sXy5LKF8uakYse2RhdGE6YyxhbHQ6IiIsY2xhc3NOYW1lOiJ5dG1GdWxsc2NyZWVuUmVsYXRlZFZpZGVvc0VudHJ5UG9pbnRWaWV3TW9kZWxUaHVtYm5haWwiLGFyaWFIaWRkZW46ITAsCllhOiEwfSkpKX0pKSl9LCJWYyIpO3ZhciBJVj1fLkwoKHtkYXRhOmEsY2xhc3NOYW1lOmIsYnV0dG9uT3ZlcnJpZGVzOmN9KT0+Xy5LKCJ5dG0tc2xpbS1tZXRhZGF0YS1idXR0b24tcmVuZGVyZXIiLHtjbGFzczoieXRtU2xpbU1ldGFkYXRhQnV0dG9uUmVuZGVyZXJIb3N0In0sXy5LKF8uVyx7ZGF0YTooKT0+YSgpLmJ1dHRvbn0se2J1dHRvblJlbmRlcmVyOih7ZGF0YTpkfSk9Pl8uSyhfLnBPLHtkYXRhOmQsY2xhc3NOYW1lOmIsYnV0dG9uT3ZlcnJpZGVzOmN9KX0pKSwiV2MiKTtJVi5pZG9tQ29tcGF0PSEwO3ZhciBKVj1fLkwoKHtkYXRhOmEsY2xhc3NOYW1lOmIsYnV0dG9uT3ZlcnJpZGVzOmMsSGM6ZH0pPT57dmFyIGU9Xy5ESShfLlJMLCgpPT5hKCkubGlrZVN0YXR1c0VudGl0eUtleXx8IiIpLGY9KCk9Pl8udFAoKSYmYSgpLmlzTGlrZSYmYSgpLmJ1dHRvbj8udG9nZ2xlQnV0dG9uUmVuZGVyZXI/e3N0eWxlOiJtb25vIn06Yz8uKCksaD0oKT0+Xy50UCgpJiZhKCkuaXNMaWtlJiZhKCkuYnV0dG9uPy50b2dnbGVCdXR0b25SZW5kZXJlcj97YW5pbWF0ZUljb246InRydWUifTp2b2lkIDA7cmV0dXJuIF8uSygieXRtLXNsaW0tbWV0YWRhdGEtdG9nZ2xlLWJ1dHRvbi1yZW5kZXJlciIse2NsYXNzOmJ9LF8uSyhfLk8se0E6KCk9Pnt2YXIgaz1hKCkuYnV0dG9uPy50b2dnbGVCdXR0b25SZW5kZXJlcjtpZihrJiZhKCkubGlrZVN0YXR1c0VudGl0eUtleSl7bGV0IGw9YSgpLmlzTGlrZT9lKCk/Lmxpa2VTdGF0dXM9PT0iTElLRSI6ZSgpPy5saWtlU3RhdHVzPT09IkRJU0xJS0UiO3JldHVybnsuLi5rLAppc1RvZ2dsZWQ6bH19cmV0dXJuIGt9LHRoZW46az0+Xy5LKF8ucU8se2RhdGE6ayxzdHlsZTpoLGNsYXNzTmFtZTpiLGJ1dHRvbk92ZXJyaWRlczpmLEhjOmR9KX0pKX0sIlhjIik7SlYuaWRvbUNvbXBhdD0hMDt2YXIgS1Y9Xy5MKGE9PntmdW5jdGlvbiBiKHIpe3ZhciB0PWMoKTt0LmJhPy5Eenx8Xy50UCgpfHx0LmlzRnVsbHNjcmVlbiYmdC50YS50b2dnbGVGdWxsc2NyZWVuKCk7ci5zdG9wUHJvcGFnYXRpb24oKX12YXIgYz1hLkcsZD0oKT0+YS5HKCkuSD8uZ2V0U2l6ZT8uKCk/LndpZHRoLGU9Xy5OKCgpPT4hIWEuRygpLkg/LmlzRW1iZWRzU2hvcnRzTW9kZT8uKCksdm9pZCAwLCJ3c0hEWiIpLGY9Xy5QKHsicGxheWVyLWNvbnRyb2xzLWhpZGUiOigpPT4hKCFJUyhhLkcoKSl8fGEuRygpLmJhPy5FZSYmIWEuRygpLk5hKX0pLGg9YS53YXRjaE5leHRSZXNwb25zZSxrPWEudGh1bWJuYWlsUHJldmlld1JlbmRlcmVyLGw9YS5wbGF5ZXJNdXRlZEF1dG9wbGF5T3ZlcmxheVJlbmRlcmVyLG09KCk9Pnt2YXIgcj1Da2EoaD8uKCksaz8uKCkpO3JldHVybiBlKCl8fGEuRygpLmJhPy5vaD9yLmZpbHRlcih0PT5fLkIodCxmbWEpPyExOl8uQih0LF8uVkwpPy5pY29uPy5pY29uVHlwZSE9PSJBRERfVE9fV0FUQ0hfTEFURVIiKToKcn0sbj0oKT0+e3ZhciByPWg/LigpLHQ9az8uKCksdj1sPy4oKSx6PSRTKGEuRygpKTt2YXIgRT1lKCk7aWYodilFPXY/LnlvdXR1YmVXYXRlcm1hcms7ZWxzZSBpZih0PV8uQih0Py5xdWlja0FjdGlvbnNCYXIsS1MpPy53YXRjaE9uWW91dHViZUJ1dHRvbix2PV8uQihyPy5wbGF5ZXJPdmVybGF5cz8ucGxheWVyT3ZlcmxheVJlbmRlcmVyPy5mdWxsc2NyZWVuUXVpY2tBY3Rpb25zQmFyLEtTKT8ud2F0Y2hPbllvdXR1YmVCdXR0b24scj1fLkIodHx8dixsVik/LndhdGNoT25ZdExhYmVsQnV0dG9uLHQ9Xy5CKHR8fHYsbFYpPy55dExvZ29Pbmx5QnV0dG9uLHopRT1yO2Vsc2V7aWYoRSl0cnl7bGV0IEE9dC5idXR0b25WaWV3TW9kZWwsRj1BLnRpdGxlRm9ybWF0dGVkLmF0dGFjaG1lbnRSdW5zWzBdLmVsZW1lbnQ7Ri50eXBlLmltYWdlVHlwZS5pbWFnZS5zb3VyY2VzWzBdLmNsaWVudFJlc291cmNlLmltYWdlTmFtZT0ic2hvcnRzX3RleHRfbG9nbyI7Ri5wcm9wZXJ0aWVzLmxheW91dFByb3BlcnRpZXMuaGVpZ2h0LnZhbHVlPQoyNDtGLnByb3BlcnRpZXMubGF5b3V0UHJvcGVydGllcy53aWR0aC52YWx1ZT03Mjt6PUE/Lm9uVGFwPy5pbm5lcnR1YmVDb21tYW5kPy51cmxFbmRwb2ludD8udXJsO2lmKEUmJnomJnouaW5jbHVkZXMoIi93YXRjaD92PSIpKXtsZXQgQz16LnJlcGxhY2UoIi93YXRjaD92PSIsIi9zaG9ydHMvIik7QS5vblRhcC5pbm5lcnR1YmVDb21tYW5kLnVybEVuZHBvaW50LnVybD1DfX1jYXRjaChBKXt9RT10fXJldHVybiBFfSxwPXtjbGFzc05hbWU6ImNpcmNsZS1idXR0b25zIixidXR0b25PdmVycmlkZXM6e3N0eWxlOiJvdmVybGF5In19O3JldHVybiBfLksoInBsYXllci1mdWxsc2NyZWVuLWFjdGlvbi1tZW51Iix7Y2xhc3M6Inl0d1BsYXllckZ1bGxzY3JlZW5BY3Rpb25NZW51SG9zdCJ9LF8uSygiZGl2Iix7Y2xhc3M6Zn0sXy5LKCJkaXYiLHtjbGFzczoiZnVsbHNjcmVlbi1hY3Rpb24tbWVudSIsIm9uOmNsaWNrIjpmdW5jdGlvbihyKXt2YXIgdD1jKCk7Y1QodCx7SWM6ITB9KTtyLnN0b3BQcm9wYWdhdGlvbigpOwpyLnN0b3BQcm9wYWdhdGlvbigpfX0sXy5LKF8uTyx7QTooKT0+IShhLkcoKS5iYT8uaGlkZVZpZGVvSW5mb3x8YS5HKCkuYmE/Lll3fHxkKCkmJmQoKTwzMjApLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJhY3Rpb24tbWVudS1lbmdhZ2VtZW50LWJ1dHRvbnMtd3JhcHBlciIsIm5vLWxhYmVsLWV4cCIpLCJvbjpjbGljayI6Yn0sXy5LKF8uVyx7ZGF0YTptfSx7YnV0dG9uUmVuZGVyZXI6KHtkYXRhOnJ9KT0+Xy5LKF8ucE8se2RhdGE6ciwuLi5wfSksc2xpbU1ldGFkYXRhVG9nZ2xlQnV0dG9uUmVuZGVyZXI6KHtkYXRhOnJ9KT0+Xy5LKEpWLHtkYXRhOnIsY2xhc3NOYW1lOl8uUChwLmNsYXNzTmFtZSx7Imxpa2UtYnV0dG9uLW5vLWxhYmVsLWV4cCI6KCk9PnIoKS5pc0xpa2V9KSxIYzooKT0+cigpLmlzTGlrZT97QXM6ITB9OnZvaWQgMCxidXR0b25PdmVycmlkZXM6KCk9PnIoKS5pc0xpa2U/dm9pZCAwOnAuYnV0dG9uT3ZlcnJpZGVzfSksc2xpbU1ldGFkYXRhQnV0dG9uUmVuZGVyZXI6KHtkYXRhOnJ9KT0+Cl8uSyhJVix7ZGF0YTpyLC4uLnB9KSxmdWxsc2NyZWVuRW5nYWdlbWVudEFjdGlvbkJhclNhdmVCdXR0b25SZW5kZXJlcjooe2RhdGE6cn0pPT5fLksoSVYse2RhdGE6ciwuLi5wfSksYnV0dG9uVmlld01vZGVsOih7ZGF0YTpyfSk9Pl8uSyhfLkhELHtkYXRhOnIsY2xhc3NOYW1lOiJ5dHdQbGF5ZXJGdWxsc2NyZWVuQWN0aW9uTWVudUNpcmNsZUJ1dHRvbnMiLGJ1dHRvbk92ZXJyaWRlczp7aWNvblBvc2l0aW9uOiJpY29uLW9ubHktNDAifX0pLHRvZ2dsZUJ1dHRvblJlbmRlcmVyOih7ZGF0YTpyfSk9Pl8uSyhfLnFPLHtkYXRhOnIsLi4ucH0pfSkpfSksXy5LKCJkaXYiLHtjbGFzczoicXVpY2stYWN0aW9ucy13cmFwcGVyIn0sXy5LKF8uTyx7QTooKT0+IWEuRygpLmJhPy5YdyYmISRTKGEuRygpKSYmIShkKCkmJmQoKTwzMjApJiYhZSgpJiZMUyhhLndhdGNoTmV4dFJlc3BvbnNlPy4oKSksdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoiZnVsbHNjcmVlbi13YXRjaC1uZXh0LWVudHJ5cG9pbnQtd3JhcHBlciJ9LApfLksoTm1hLHtkYXRhOigpPT5MUyhhLndhdGNoTmV4dFJlc3BvbnNlPy4oKSksRzpjfSkpfSksXy5LKF8uTyx7QTooKT0+JFMoYS5HKCkpJiYoZSgpfHxkKCkmJmQoKTwzMjApPyExOiEwLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6IndhdGNoLW9uLXlvdXR1YmUtYnV0dG9uLXdyYXBwZXIifSxfLksoXy5XLHtkYXRhOm59LHtidXR0b25WaWV3TW9kZWw6KHtkYXRhOnJ9KT0+Xy5LKF8uSEQse2RhdGE6cixjbGFzc05hbWU6IndhdGNoLW9uLXlvdXR1YmUtYnV0dG9uIixidXR0b25PdmVycmlkZXM6KCk9Pnt2YXIgdD1yKCk7cmV0dXJue3NpemU6IkwiLGRpc2FibGVkOiFfLkIoXy5CKHQ/Lm9uVGFwLF8uT0QpLF8uVkQpfX19KSxidXR0b25SZW5kZXJlcjpfLnBPLHRvZ2dsZUJ1dHRvblJlbmRlcmVyOl8ucU99KSl9KSkpKSl9LCJZYyIpO0tWLmlkb21Db21wYXQ9ITA7dmFyIExWPV8uTChhPT57dmFyIGI9KCk9Pnt2YXIgbT1hLnBsYXllck11dGVkQXV0b3BsYXlPdmVybGF5UmVuZGVyZXI/LigpO3JldHVybiBfLkIobT8uZW5kU2NyZWVuLHBWKT8uY29udGludWVXYXRjaGluZ30sYz0oKT0+e3ZhciBtPWEucGxheWVyTXV0ZWRBdXRvcGxheU92ZXJsYXlSZW5kZXJlcj8uKCk7cmV0dXJuIF8uQihtPy5lbmRTY3JlZW4scFYpPy5icmFuZGluZ0ljb259LFtkLGVdPV8uSighMSx2b2lkIDAsIkVlWFhCYyIpLGYsaD0oKT0+e2NsZWFyVGltZW91dChmKTtlKCExKTtmPXNldFRpbWVvdXQoKCk9PntlKCEwKX0sNEUzKX0saz0oKT0+e3ZhciBtPWEuRygpLkg/LmdldFZpZGVvRGF0YSgpPy52aWRlb19pZDttJiZhLkcoKS5IPy5jdWVWaWRlb0J5SWQobSl9LGw9KCk9Pnt2YXIgbT1fLlV3KGEucGxheWVyTXV0ZWRBdXRvcGxheU92ZXJsYXlSZW5kZXJlcj8uKCkudHJhY2tpbmdQYXJhbXMpO20mJl8uSk8obSl9O18uVUooKCk9PntoKCk7YS5HKCkuSD8uYWRkRXZlbnRMaXN0ZW5lcigib25NdXRlZEF1dG9wbGF5U3RhcnRzIiwKaCk7YS5HKCkuSD8uYWRkRXZlbnRMaXN0ZW5lcigib25BdXRvcGxheUJsb2NrZWQiLGspO2EuRygpLkg/LmFkZEV2ZW50TGlzdGVuZXIoIm9uVmlkZW9EYXRhQ2hhbmdlIixsKX0pO18uWXUoKCk9PntjbGVhclRpbWVvdXQoZik7YS5HKCkuSD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25NdXRlZEF1dG9wbGF5U3RhcnRzIixoKTthLkcoKS5IPy5yZW1vdmVFdmVudExpc3RlbmVyKCJvbkF1dG9wbGF5QmxvY2tlZCIsayk7YS5HKCkuSD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25WaWRlb0RhdGFDaGFuZ2UiLGwpfSk7cmV0dXJuIF8uSygieXRtLW11dGVkLWF1dG9wbGF5LW92ZXJsYXkiLHtjbGFzczoieXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlIb3N0Iiwib246Y2xpY2siOmZ1bmN0aW9uKG0pe3ZhciBuPWEuRz8uKCkuSCxwPW4/LmdldFZpZGVvRGF0YSgpPy52aWRlb19pZCxyPW4/LmdldEN1cnJlbnRUaW1lKCk7cCYmciYmKG4/LnVuTXV0ZSgpLG4/LmxvYWRWaWRlb0J5SWQocCxyKSk7Cm0uc3RvcFByb3BhZ2F0aW9uKCl9fSxfLksoXy5PLHtBOigpPT51UyhhLkcoKSksdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlCYWNrZ3JvdW5kIn0sXy5LKCJkaXYiLG51bGwsXy5LKF8uVyx7ZGF0YTpifSx7YnV0dG9uVmlld01vZGVsOl8uSER9KSksXy5LKCJkaXYiLHtjbGFzczoieXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlCcmFuZGluZ0ljb24ifSxfLksoXy5PLHtBOmMsdGhlbjptPT5fLksoXy5qRix7ZGF0YTptLGFsdDoiWW91VHViZSBMb2dvIn0pfSkpKSxXOigpPT5fLksoImRpdiIsbnVsbCxfLksoImRpdiIse2NsYXNzOl8uUCgieXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlBY3Rpb25NZW51Iix7eXRtTXV0ZWRBdXRvcGxheU92ZXJsYXlIaWRlQWN0aW9uTWVudTpkfSl9LF8uSyhLVix7RzphLkcscGxheWVyTXV0ZWRBdXRvcGxheU92ZXJsYXlSZW5kZXJlcjphLnBsYXllck11dGVkQXV0b3BsYXlPdmVybGF5UmVuZGVyZXJ9KSksXy5LKCJkaXYiLAp7Y2xhc3M6Inl0bU11dGVkQXV0b3BsYXlPdmVybGF5RXF1YWxpemVyIn0sXy5LKF8uTUQse2ljb246ImVxdWFsaXplciJ9KSkpfSkpfSwiWmMiKTtMVi5pZG9tQ29tcGF0PSEwO3ZhciBPbWE9Xy5MKCh7Rng6YSxhbmltYXRpb246Yn0pPT57dmFyIGM9Xy51RSgiZGl2IiksW2QsZV09Xy5KKCExLHZvaWQgMCwidGkwMm8iKSxmPTAsaD1fLngoIm13ZWJfZW5hYmxlX3Nob3J0c19oZWFydF9uZXdfZG91YmxlX3RhcCIpPyJsaWtlX3RhcF9mZWVkYmFja19zaG9ydHNfaGVhcnQiOiJsaWtlXzI0MGRwX2FuaW1hdGlvbl92MiI7Xy5uRSgoKT0+e2UoITApO18uamYuQWEoZik7Zj1fLllqKCgpPT57ZSghMSl9LDJFMyk7dmFyIGs9Yj8uKCk/Lm5hbWU7aWYoaz09PWgpe2NVKGgpO2s9Yj8uKCk/Lng7dmFyIGw9Yj8uKCk/Lnk7bGV0IG09Yy52YWx1ZTttJiYoayE9PXZvaWQgMCYmbCE9PXZvaWQgMD8obS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLG0uc3R5bGUubGVmdD1gJHtrfXB4YCxtLnN0eWxlLnRvcD1gJHtsfXB4YCxtLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKC01MCUsIC01MCUpIik6KG0uc3R5bGUucG9zaXRpb249IiIsbS5zdHlsZS5sZWZ0PSIiLG0uc3R5bGUudG9wPQoiIixtLnN0eWxlLnRyYW5zZm9ybT0iIikpfWVsc2V7aWYobD1jLnZhbHVlKWwuc3R5bGUucG9zaXRpb249IiIsbC5zdHlsZS5sZWZ0PSIiLGwuc3R5bGUudG9wPSIiLGwuc3R5bGUudHJhbnNmb3JtPSIiO2s9PT0icGxheV85NmRwX2FuaW1hdGlvbiI/Y1UoInBsYXlfOTZkcF9hbmltYXRpb24iKTprPT09InBhdXNlXzk2ZHBfYW5pbWF0aW9uIiYmY1UoInBhdXNlXzk2ZHBfYW5pbWF0aW9uIil9fSwiRUNKVWRkIik7cmV0dXJuIF8uSygic2hvcnRzLXRvdWNoLWZlZWRiYWNrIix7Y2xhc3M6Xy5QKCJ5dFNob3J0c1RvdWNoRmVlZGJhY2tIb3N0Iix7eXRTaG9ydHNUb3VjaEZlZWRiYWNrSGlkZGVuOigpPT4hZCgpfSl9LF8uSyhfLk8se0E6YSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dFNob3J0c1RvdWNoRmVlZGJhY2tUb3VjaEZlZWRiYWNrIn0sXy5LKCJkaXYiLHtlbDpjLGNsYXNzOiJ5dFNob3J0c1RvdWNoRmVlZGJhY2tMaWtlQW5pbWF0aW9uV3JhcHBlciIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LApfLksoXy5jTSx7YW5pbWF0aW9uTmFtZTooKT0+aCxkYXRhOnthbmltYXRpb25Db25maWc6YlUoaCl9LGNsYXNzTmFtZToieXRTaG9ydHNUb3VjaEZlZWRiYWNrTGlrZUFuaW1hdGlvbiJ9KSkpfSksXy5LKCJkaXYiLHtjbGFzczoieXRTaG9ydHNUb3VjaEZlZWRiYWNrVG91Y2hGZWVkYmFjayJ9LF8uSyhfLmNNLHthbmltYXRpb25OYW1lOigpPT4icGxheV85NmRwX2FuaW1hdGlvbiIsZGF0YTp7YW5pbWF0aW9uQ29uZmlnOmJVKCJwbGF5Xzk2ZHBfYW5pbWF0aW9uIil9LGNsYXNzTmFtZToieXRTaG9ydHNUb3VjaEZlZWRiYWNrUGxheVBhdXNlQW5pbWF0aW9uIn0pKSxfLksoImRpdiIse2NsYXNzOiJ5dFNob3J0c1RvdWNoRmVlZGJhY2tUb3VjaEZlZWRiYWNrIn0sXy5LKF8uY00se2FuaW1hdGlvbk5hbWU6KCk9PiJwYXVzZV85NmRwX2FuaW1hdGlvbiIsZGF0YTp7YW5pbWF0aW9uQ29uZmlnOmJVKCJwYXVzZV85NmRwX2FuaW1hdGlvbiIpfSxjbGFzc05hbWU6Inl0U2hvcnRzVG91Y2hGZWVkYmFja1BsYXlQYXVzZUFuaW1hdGlvbiJ9KSkpfSwKImFkIik7dmFyIGRVPXZvaWQgMCxlVT12b2lkIDAsZlUsZ1U9Xy5MKCh7ZGF0YTphfSk9Pnt2YXIgW2IsY109Xy5KKDAsdm9pZCAwLCJWZnY1OCIpLFtkLGVdPV8uSigwLHZvaWQgMCwiZ0dDTjlkIiksW2YsaF09Xy5KKCExLHZvaWQgMCwiblNhTGgiKTtyZXR1cm4gXy5LKCJ5dG0tYm90dG9tLXNoZWV0LW92ZXJsYXktcmVuZGVyZXIiLHtjbGFzczoiWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJIb3N0In0sXy5LKCJkaXYiLHtjbGFzczoiWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJDb250YWluZXIiLHN0eWxlOigpPT57dmFyIGs9YigpLGw9ZCgpLG09ZigpO2s9YHRyYW5zZm9ybTogdHJhbnNsYXRlWSgke01hdGgubWF4KDAsTWF0aC5yb3VuZChsLWspKX1weCk7YDttJiYoays9InRyYW5zaXRpb246IDAuMnM7Iik7cmV0dXJuIGt9LCJvbjp0b3VjaHN0YXJ0IjpmdW5jdGlvbihrKXtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvcj0ibm9uZSI7YyhrLnRvdWNoZXNbMF0uY2xpZW50WSk7Cmsuc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjp0b3VjaG1vdmUiOmZ1bmN0aW9uKGspe2Uoay50b3VjaGVzWzBdLmNsaWVudFkpO2suc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjp0b3VjaGVuZCI6ZnVuY3Rpb24oayl7ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyc2Nyb2xsQmVoYXZpb3I9IiI7d2luZG93LnNjcmVlbi5hdmFpbEhlaWdodC1kKCk8PTMwMD8oaCghMCksZSh3aW5kb3cuc2NyZWVuLmF2YWlsSGVpZ2h0KSxzZXRUaW1lb3V0KCgpPT57aWYoZFUhPW51bGwpe3ZhciBsPV8uSHooKTtsLnNldCgic3VwcHJlc3NfYXBwX3Vwc2VsbCIsMSk7bC5zYXZlKCk7ZVUmJihlVS5xdj0hMCxlVT12b2lkIDApO18uS04oZFUpO2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZFUpO2RVPXZvaWQgMDtmVT8uKCk7ZlU9dm9pZCAwO18ueSgpLnJlc29sdmUoXy55UCkuUXUoKX19LDI1MCkpOihoKCEwKSxlKDApKTtrLnN0b3BQcm9wYWdhdGlvbigpfX0sXy5LKCJkaXYiLHtjbGFzczoiWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJIZWFkZXIiLApzdHlsZTooKT0+YSgpLmJhY2tncm91bmRJbWFnZT9gYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7YSgpLmJhY2tncm91bmRJbWFnZX0pO2A6dm9pZCAwfSxfLksoImRpdiIse2NsYXNzOiJZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlckRyYWdIYW5kbGUifSksXy5LKF8uTUQse2ljb246KCk9PmEoKS5jZW50cmFsSWNvbj8uaWNvblR5cGUsY2xhc3NOYW1lOiJZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlckNlbnRyYWxJY29uIn0pLF8uSyhfLlcse2RhdGE6KCk9PmEoKS5jbG9zZUJ1dHRvbn0se2J1dHRvblJlbmRlcmVyOih7ZGF0YTprfSk9Pl8uSyhfLnBPLHtkYXRhOmssY2xhc3NOYW1lOiJZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlckNsb3NlIixwcmV2ZW50RGVmYXVsdDohMCxRZjohMH0pfSkpLF8uSygiZGl2Iix7Y2xhc3M6Ill0bUJvdHRvbVNoZWV0T3ZlcmxheVJlbmRlcmVyQ29udGVudHMifSxfLksoImRpdiIse2NsYXNzOiJZdG1Cb3R0b21TaGVldE92ZXJsYXlSZW5kZXJlclRpdGxlIn0sCl8uSyhfLklKLHtkYXRhOigpPT5hKCkudGl0bGV9KSksXy5LKCJkaXYiLHtjbGFzczoiWXRtQm90dG9tU2hlZXRPdmVybGF5UmVuZGVyZXJTdWJ0aXRsZSJ9LF8uSyhfLklKLHtkYXRhOigpPT5hKCkuc3VidGl0bGV9KSksXy5LKF8uVyx7ZGF0YTooKT0+YSgpLmJ1dHRvbnN9LHtidXR0b25SZW5kZXJlcjpfLnBPfSkpKSl9LCJiZCIpO2dVLmlkb21Db21wYXQ9ITA7dmFyIE1WPV8uTCgoe2RhdGE6YSxzdG9wUHJvcGFnYXRpb246Yn0pPT5fLksoInl0bS1mb3JjZWQtbXV0ZS1tZXNzYWdlLXJlbmRlcmVyIixudWxsLF8uSyhfLnZPLHtpY29uVHlwZTpfLngoImVuYWJsZV93ZWJfZGVsaGlfaWNvbnMiKT8iYXVkaW9fc2xhc2giOiJhdWRpb19vZmYiLGFyaWFMYWJlbDooKT0+Xy5hTihhKCkuZm9yY2VkTXV0ZU1lc3NhZ2VUZXh0KSxvbmNsaWNrOmM9PntiPy4oKSYmYy5zdG9wUHJvcGFnYXRpb24oKTtjPWEoKTtfLkIoYy5oZWxwQnV0dG9uLF8uVkwpPy5uYXZpZ2F0aW9uRW5kcG9pbnQmJl8uQUooXy5CKGMuaGVscEJ1dHRvbixfLlZMKT8ubmF2aWdhdGlvbkVuZHBvaW50LGMsITApfSxMbToieXRtLWZvcmNlZC1tdXRlLW1lc3NhZ2UifSkpLCJlZCIpO01WLmlkb21Db21wYXQ9ITA7dmFyIE5WPV8uTCgoe2RhdGE6YSxjbGFzc05hbWU6YixHSjpjfSk9Pnt2YXIgZD1fLnkoKS5yZXNvbHZlKF8uSW4oXy5rRikpPy4oKTtyZXR1cm4gXy5LKCJ5dG0taW5mby1wYW5lbC1jb250ZW50LXJlbmRlcmVyIix7Y2xhc3M6Xy5QKGIsInl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlckhvc3QiLHt5dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJIb3N0SXNXYXRjaEluZm9QYW5lbDpjLHl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlckhvc3RDaW5lbWF0aWNCYWNrZ3JvdW5kOigpPT5kJiZjPy4oKX0pLCJ5dG0taW5mby1wYW5lbC1jb250ZW50LXRydW5jYXRlLXBhcmFncmFwaHMiOigpPT4hIWEoKS50cnVuY2F0ZVBhcmFncmFwaHN8fHZvaWQgMCwieXRtLWluZm8tcGFuZWwtY29udGVudC1oYXMtbWVudSI6KCk9PiEhYSgpLm1lbnV8fHZvaWQgMCwiZGF0YS1iYWNrZ3JvdW5kIjooKT0+YSgpLmJhY2tncm91bmR9LF8uSyhfLm5ILHtjb21tYW5kOigpPT5hKCkuc291cmNlRW5kcG9pbnQsCmNsYXNzTmFtZToieXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyRW5kcG9pbnQifSxfLksoUG1hLHtkYXRhOmF9KSksXy5LKF8uVyx7ZGF0YTooKT0+YSgpLm1lbnV9LHttZW51UmVuZGVyZXI6KHtkYXRhOmV9KT0+Xy5LKF8uU1Ase2RhdGE6ZSxjbGFzc05hbWU6Inl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlck1lbnUifSl9KSl9LCJmZCIpLFBtYT1fLkwoKHtkYXRhOmF9KT0+Xy5LKCJkaXYiLHtjbGFzczoieXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyV3JhcHBlciIsImRhdGEtaGFzLWljb24iOigpPT4hIWEoKS5pY29ufSxfLksoXy5PLHtBOigpPT5hKCkuc291cmNlQXRUb3AmJmEoKS5zb3VyY2UsdGhlbjooKT0+Xy5LKE9WLHtkYXRhOmF9KX0pLF8uSyhfLk8se0E6KCk9PmEoKS50aXRsZSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJUaXRsZUNvbnRhaW5lciJ9LF8uSyhfLklKLHtkYXRhOigpPT5hKCkudGl0bGV9KSxfLksoXy5NRCwKe2ljb246KCk9PmEoKS5pbmxpbmVMaW5rSWNvbj8uaWNvblR5cGUsY2xhc3NOYW1lOiJ5dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJMaW5rSWNvbiJ9KSl9KSxfLksoImRpdiIse2NsYXNzOiJ5dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJCb2R5In0sXy5LKCJkaXYiLHtjbGFzczoieXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyVGV4dCJ9LF8uSyhfLk8se0E6KCk9PiFhKCkuc291cmNlQXRUb3AmJmEoKS5zb3VyY2UsdGhlbjooKT0+Xy5LKE9WLHtkYXRhOmF9KX0pLF8uSyhfLmdHLHtwYTooKT0+YSgpLnBhcmFncmFwaHN8fFtdfSwoYixjKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyUGFyYWdyYXBoIn0sXy5LKF8uSUose2RhdGE6Yn0pLF8uSyhfLk8se0E6KCk9PmMoKT09PWEoKS5wYXJhZ3JhcGhzLmxlbmd0aC0xJiZhKCkuaW5saW5lU291cmNlLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlcklubGluZVNvdXJjZSJ9LApfLksoImRpdiIse2NsYXNzOiJ5dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJJbmxpbmVTb3VyY2VUZXh0In0sXy5LKF8uSUose2RhdGE6KCk9PmEoKS5pbmxpbmVTb3VyY2V9KSksXy5LKF8uTUQse2ljb246KCk9PmEoKS5pbmxpbmVMaW5rSWNvbj8uaWNvblR5cGUsY2xhc3NOYW1lOiJ5dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJMaW5rSWNvbiJ9KSl9KSkpKSxfLksoXy5PLHtBOigpPT5hKCkuaWNvbix0aGVuOmI9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0bUluZm9QYW5lbENvbnRlbnRSZW5kZXJlckhlYWRlclJpZ2h0SXRlbXMifSxfLksoXy5NRCx7aWNvbjooKT0+YigpLmljb25UeXBlLGNsYXNzTmFtZToieXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVySGVhZGVySWNvbiJ9KSxfLksoXy5JSix7ZGF0YTooKT0+YSgpLnRpdGxlfSkpfSksXy5LKF8uTyx7QTooKT0+YSgpLnRodW1ibmFpbCx0aGVuOmI9Pl8uSyhfLlVQLHt0aHVtYm5haWxEZXRhaWxzOmIsY2xhc3NOYW1lOiJ5dG1JbmZvUGFuZWxDb250ZW50UmVuZGVyZXJUaHVtYm5haWwiLAphbHQ6IiIsWWE6Xy54KCJjM19wcmVzZXJ2ZV9kaW1lbnNpb25zX2tzIik/dm9pZCAwOiEwLFRhOl8ueCgiYzNfcHJlc2VydmVfZGltZW5zaW9uc19rcyIpP3ZvaWQgMDohMH0pfSkpKSwiZ2QiKSxPVj1fLkwoKHtkYXRhOmF9KT0+Xy5LKCJkaXYiLHtjbGFzczoieXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyTWV0YWRhdGEifSxfLksoXy5PLHtBOigpPT5hKCkuc291cmNlLHRoZW46Yj0+Xy5LKF8uSUose2RhdGE6Yn0pfSksXy5LKF8uTyx7QTooKT0+YSgpLnB1Ymxpc2hlZFRpbWVUZXh0LHRoZW46Yj0+Xy5LKCJkaXYiLHtjbGFzczoieXRtSW5mb1BhbmVsQ29udGVudFJlbmRlcmVyUHVibGlzaFRpbWUifSwiXHUyMDIyICIsXy5LKF8uSUose2RhdGE6Yn0pKX0pKSwiaGQiKTtOVi5pZG9tQ29tcGF0PSEwO3ZhciBQVj1fLkwoKHtkYXRhOmF9KT0+Xy5LKCJ5dG0taW5mby1wYW5lbC1jb250YWluZXItcmVuZGVyZXIiLHtiYWNrZ3JvdW5kOigpPT5hKCkuYmFja2dyb3VuZH0sXy5LKF8uTyx7QTooKT0+YSgpLnRpdGxlLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0bS1pbmZvLXBhbmVsLWNvbnRhaW5lci1oZWFkZXIifSxfLksoImRpdiIse2NsYXNzOiJ5dG0taW5mby1wYW5lbC1jb250YWluZXItaGVhZGVyLWxlZnQtaXRlbXMifSxfLksoXy5NRCx7aWNvbjooKT0+YSgpLmljb24/Lmljb25UeXBlLGNsYXNzTmFtZToieXRtLWluZm8tcGFuZWwtY29udGFpbmVyLWhlYWRlci1pY29uIn0pLF8uSyhfLklKLHtkYXRhOigpPT5hKCkudGl0bGV9KSksXy5LKF8uVyx7ZGF0YTooKT0+YSgpLm1lbnV9LHttZW51UmVuZGVyZXI6KHtkYXRhOmJ9KT0+Xy5LKF8uU1Ase2RhdGE6YixjbGFzc05hbWU6Inl0bS1pbmZvLXBhbmVsLWNvbnRhaW5lci1oZWFkZXItbWVudSJ9KX0pKX0pLF8uSyhfLlcse2RhdGE6KCk9PgphKCkuY29udGVudH0se2luZm9QYW5lbENvbnRlbnRSZW5kZXJlcjpOVn0pKSwiaWQiKTtQVi5pZG9tQ29tcGF0PSEwO3ZhciBSVj1fLkwoKHtkYXRhOmEsaXNBY3RpdmU6YixISjpjLGNsYXNzTmFtZTpkfSk9Pnt2YXIgZT1fLmNJKF8uWlApLGY9Xy5jSSh3amEpLGg9Xy5jSSh2amEpLGs7Xy5uRSgoKT0+e2I/LigpJiZhKCk/LnRyYWNraW5nUGFyYW1zJiZhKCkudHJhY2tpbmdQYXJhbXMhPT1rJiZfLmlxKCkhPT1rJiYoXy5seChfLmh4KCksYSgpLnRyYWNraW5nUGFyYW1zKSxrPV8uaXEoKSl9LCJMUmVTbGIiKTtfLlVKKCgpPT57bmxhKGEoKSl9KTtyZXR1cm4gXy5LKCJ5dG0tcmVlbC1wbGF5ZXItb3ZlcmxheS1yZW5kZXJlciIse2NsYXNzOmQsImRhdGEtaXMtYWN0aXZlIjpifHx2b2lkIDAsImRhdGEtaGFzLWluZm8tcGFuZWwiOigpPT57dmFyIGw9YSgpLG09Xy5CKGwucGxheWVyT3ZlcmxheSxjbWEpO3JldHVybiEhbC5pbmZvUGFuZWx8fCEhbT8uaW5mb1BhbmVsfHx2b2lkIDB9LCJleHRyYWN0LW92ZXJsYXkiOigpPT5lKCk9PT0xfHx2b2lkIDAsImV4dHJhY3QtYWN0aW9uLWJhciI6KCk9Pl8uYU0oZSgpKXx8CnZvaWQgMCwic21hbGxlci1zY3JlZW4tc3F1ZWV6ZWJhY2siOigpPT5mKCl8fHZvaWQgMCwiaXMtZnVsbHNjcmVlbiI6KCk9PmgoKXx8dm9pZCAwLCJpcy13ZWIiOigpPT5jPy4oKXx8dm9pZCAwfSxfLksoXy5PLHtBOigpPT5hKCkucGxheWVyT3ZlcmxheSx0aGVuOmw9Pl8uSyhfLklCLG51bGwsXy5LKF8uTyx7QTooKT0+ITAsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoicmVlbC1wbGF5ZXItb3ZlcmxheS10b3AtYmFyIn0sXy5LKFFWLHtkYXRhOmF9KSl9KSxfLksoXy5XLHtkYXRhOmx9LHtyZWVsUGxheWVyT3ZlcmxheVZpZXdNb2RlbDpfLmJqYX0pKSxXOigpPT5fLksoXy5JQixudWxsLF8uSygiZGl2Iix7Y2xhc3M6InJlZWwtcGxheWVyLW92ZXJsYXktbWFpbi1jb250ZW50In0sXy5LKCJkaXYiLHtjbGFzczoicmVlbC1wbGF5ZXItb3ZlcmxheS1tZXRhZGF0YSJ9LF8uSyhRbWEse2RhdGE6YX0pKSxudWxsLF8uSyhSbWEse2RhdGE6YX0pKSxfLksoU21hLHtkYXRhOmF9KSl9KSwKXy5LKFRtYSx7ZGF0YTphfSkpfSwia2QiKTtSVi5pZG9tQ29tcGF0PSEwOwp2YXIgUW1hPV8uTCgoe2RhdGE6YX0pPT5fLksoXy5XLHtkYXRhOigpPT5hKCkubWV0YXBhbmVsfSx7cmVlbE1ldGFwYW5lbFZpZXdNb2RlbDpfLnJRfSksImxkIiksU21hPV8uTCgoe2RhdGE6YX0pPT5fLksoImRpdiIse2NsYXNzOiJyZWVsLXBsYXllci1vdmVybGF5LWluZm8tcGFuZWwifSxfLksoXy5XLHtkYXRhOigpPT5hKCkuaW5mb1BhbmVsfSx7aW5mb1BhbmVsQ29udGFpbmVyUmVuZGVyZXI6UFZ9KSksIm1kIiksUm1hPV8uTCgoe2RhdGE6YX0pPT5fLksoImRpdiIse2NsYXNzOiJyZWVsLXBsYXllci1vdmVybGF5LWFjdGlvbnMifSxfLksoUVYse2RhdGE6YX0pLF8uSyhVbWEse2RhdGE6YX0pLF8uSyhfLlcse2RhdGE6KCk9PmEoKS5waXZvdEJ1dHRvbn0se3Bpdm90QnV0dG9uVmlld01vZGVsOl8uaVF9KSxfLksoXy5XLHtkYXRhOigpPT5hKCkuZm9yY2VkTXV0ZU1lc3NhZ2VSZW5kZXJlcn0se2ZvcmNlZE11dGVNZXNzYWdlUmVuZGVyZXI6KHtkYXRhOmJ9KT0+Xy5LKE1WLHtkYXRhOmIsCnN0b3BQcm9wYWdhdGlvbjohMH0pfSkpLCJuZCIpLFFWPV8uTCgoe2RhdGE6YX0pPT5fLksoXy5PLHtBOigpPT4hXy5URSgpLHRoZW46KCk9Pl8uSyhfLlcse2RhdGE6KCk9PmEoKS5tZW51fSx7bWVudVJlbmRlcmVyOih7ZGF0YTpifSk9Pl8uSyhfLlRQLHtkYXRhOmIsc2hvd0ljb246ITAsYnV0dG9uT3ZlcnJpZGVzOmhVKCl9KX0pLFc6KCk9Pl8uSyhfLk8se0E6KCk9Pl8uVEUoKSx0aGVuOigpPT5fLksoXy5XLHtkYXRhOigpPT5hKCkubWVudX0se21lbnVSZW5kZXJlcjooe2RhdGE6Yn0pPT5fLksoXy5TUCx7ZGF0YTpiLGRmOiJyZWVsLXBsYXllci1vdmVybGF5LW92ZXJmbG93LW1lbnUiLEhhOiExLHVuOiExLHN0b3BQcm9wYWdhdGlvbjohMCxidXR0b25PdmVycmlkZXM6aFUoKX0pfSl9KX0pLCJxZCIpLFVtYT1fLkwoKHtkYXRhOmF9KT0+Xy5LKF8uVyx7ZGF0YTooKT0+YSgpLmJ1dHRvbkJhcn0se3JlZWxBY3Rpb25CYXJWaWV3TW9kZWw6KHtkYXRhOmJ9KT0+Xy5LKF8ualEse2RhdGE6YiwKQWY6e2ljb25Qb3NpdGlvbjoiaWNvbi13aXRoLWxhYmVsIixzaXplOiJTIix0eXBlOiJ0ZXh0IixzdHlsZToib3ZlcmxheSJ9fSl9KSwicmQiKSxUbWE9Xy5MKCh7ZGF0YTphfSk9Pl8uSygiZGl2Iix7Y2xhc3M6InN0aWNrZXItbGF5ZXIifSxfLksoXy5PLHtBOigpPT4hIWEoKS52aWRlb0ludGVyYWN0aW9ucyYmXy54KCJtd2ViX2VuYWJsZV9zaG9ydHNfc3RpY2tlcnMiKSx0aGVuOigpPT5fLksoXy5JQixudWxsLF8uSyhfLmdHLHtwYTooKT0+YSgpLnZpZGVvSW50ZXJhY3Rpb25zPy5pbnRlcmFjdGlvbnN8fFtdfSxiPT5fLksoXy5jamEse2RhdGE6Yn0pKSxfLksoXy5XLHtkYXRhOigpPT5hKCk/LnZpZGVvSW50ZXJhY3Rpb25zPy5lbGVtZW50c0ludGVyYWN0aW9uc0xheWVyfSx7c3RpY2tlcnNMYXllclJlbmRlcmVyOl8uZGphfSkpfSkpLCJzZCIpO3ZhciBTVj1fLkwoKHtkYXRhOmEsWWY6YixjajpjLHZCOmQsSXI6ZSxlaDpmfSk9PntmdW5jdGlvbiBoKHApe24ubG90dGllRWwmJm4ubG90dGllRWwuaXNQYXVzZWQmJm4ubG90dGllRWwuZ29Ub0FuZFBsYXkoMCk7cC5zdG9wUHJvcGFnYXRpb24oKX1fLlVKKCgpPT57dmFyIHA9b2xhLmJpbmQodm9pZCAwLGEoKSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0YXRlLW5hdmlnYXRlZW5kIixwKTtfLll1KCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN0YXRlLW5hdmlnYXRlZW5kIixwKX0pfSk7dmFyIGs9KCk9Pnt2YXIgcD1hKCk7cmV0dXJuIGQ/LigpP3AuZGFya1RoZW1lTG9nbz8ubG90dGllQW5pbWF0aW9uPy51cmw6cC5saWdodFRoZW1lTG9nbz8ubG90dGllQW5pbWF0aW9uPy51cmx9LGw9KCk9PmEoKS5hY2Nlc3NpYmlsaXR5RGF0YT8uYWNjZXNzaWJpbGl0eURhdGE/LmxhYmVsfHxfLmFOKGEoKS50b29sdGlwVGV4dCl8fCIiLG09KCk9PmQ/LigpPyJsb2dvLWVudGl0eS1sb3R0aWUtYW5pbWF0aW9uLWRhcmsiOgoibG9nby1lbnRpdHktbG90dGllLWFuaW1hdGlvbi1saWdodCIsbj17fTtyZXR1cm4gXy5LKCJ5dG0tbG9nby1lbnRpdHkiLHtjbGFzczoieXRtTG9nb0VudGl0eUhvc3QifSxlPy4oKSxfLksoXy5PLHtBOigpPT4hZSYmYj8uKCkhPT12b2lkIDAmJmM/LigpIT09dm9pZCAwJiZkPy4oKSE9PXZvaWQgMCx0aGVuOigpPT5fLksoXy5PLHtBOmssdGhlbjooKT0+Xy5LKCJkaXYiLHtpZDpjLGNsYXNzOiJ5dG1Mb2dvRW50aXR5Q29udGFpbmVyIiwib246Y2xpY2siOmh9LF8uSyhfLmNNLHtjbGFzc05hbWU6Xy5QKGIsInl0bUxvZ29FbnRpdHlMb2dvIiksZGF0YTooKT0+KHthbmltYXRpb25Db25maWc6e3BhdGg6aygpLGF1dG9wbGF5OiEwLGxvb3A6ITEscmVuZGVyZXJTZXR0aW5nczp7dmlld0JveE9ubHk6ITB9fSxsaXN0ZW5lcnM6e2RhdGFfZmFpbGVkOmYsZXJyb3I6Zn19KSxhbmltYXRpb25SZWY6bixhbmltYXRpb25OYW1lOm19KSksVzooKT0+Xy5LKFZtYSx7Y2xhc3NOYW1lOiJ5dG1Mb2dvRW50aXR5Q29udGFpbmVyIiwKWWY6YixpZDooKT0+Yz8uKCk/PyIiLERBOnA9Pnt2YXIgcj1hKCksdD0hIWQ/LigpO3JldHVybiB0JiZyLmRhcmtUaGVtZUxvZ28/LnRodW1ibmFpbD9fLkpQKHIuZGFya1RoZW1lTG9nby50aHVtYm5haWwscHx8dm9pZCAwKTohdCYmci5saWdodFRoZW1lTG9nbz8udGh1bWJuYWlsP18uSlAoci5saWdodFRoZW1lTG9nby50aHVtYm5haWwscHx8dm9pZCAwKToiIn0sYWx0VGV4dDpsLGVoOmZ9KX0pfSkpfSwidGQiKTtTVi5pZG9tQ29tcGF0PXtjYWxsYmFja3M6e0lyOiEwLGVoOiEwfX07CnZhciBWbWE9Xy5MKCh7Y2xhc3NOYW1lOmEsWWY6YixpZDpjLERBOmQsYWx0VGV4dDplLGVoOmZ9KT0+e3ZhciBoPV8udUUoImRpdiIpLGs9Xy51RSgiaW1nIik7Xy5VSigoKT0+e2sudmFsdWUuc3JjPWQoaC52YWx1ZSl9KTtyZXR1cm4gXy5LKCJkaXYiLHtjbGFzczphLGVsOmh9LF8uSygiaW1nIix7ZWw6aywib246ZXJyb3IiOmZ1bmN0aW9uKGwpe2Y/LigpO2wuc3RvcFByb3BhZ2F0aW9uKCl9LGlkOmMsY2xhc3M6Xy5QKGIsInl0bUxvZ29FbnRpdHlMb2dvIiksYWx0OmV9KSl9LCJ1ZCIpO3ZhciBVVj1fLkwoKHt0b3BiYXJMb2dvUmVuZGVyZXI6YSxWajpiLFdqOmMsWGo6ZCx1bTplLGljb25PdmVycmlkZTpmLGh6OmgsYWs6a30pPT57ZnVuY3Rpb24gbCgpe3QoITApfXZhciBtPV8uREkobGphLCgpPT5hPy4oKT8ub3ZlcnJpZGVFbnRpdHlLZXl8fF8uVk0oKT8iRWdaMGIzQmlZWElnOVFFb0FRJTNEJTNEIjoiIiksbj0oKT0+YT8uKCk/Lmljb25JbWFnZT8uaWNvblR5cGUsW3Ascl09Xy5KKCExLHZvaWQgMCwiWmFQUGxiIiksdD1yLHY9Xy55KCkucmVzb2x2ZShfLkluKF8ua0YpKSx6PShfLlZNKCl8fHY/LigpKT8/ITEsRT1udWxsLEE9Xy51RSgiYnV0dG9uIik7Xy5VSihmdW5jdGlvbigpeyhtPy4oKT8/dm9pZCAwKXx8U1MoMTIwODEsQS52YWx1ZSxFLEY9PntFPUZ9LG51bGwpfSk7cmV0dXJuIF8uSygieXRtLWhvbWUtbG9nbyIsbnVsbCxfLksoImJ1dHRvbiIse2VsOkEsImFyaWEtbGFiZWwiOigpPT5fLkNKKGE/LigpPy50b29sdGlwVGV4dCk/Xy5DSihhPy4oKT8udG9vbHRpcFRleHQpOgoiWW91VHViZSIscm9sZToibGluayIsY2xhc3M6Xy5QKHsibG9nby1pbi1wbGF5ZXItZW5kcG9pbnQiOmMsIm1vYmlsZS10b3BiYXItaGVhZGVyLWVuZHBvaW50IjooKT0+IWMoKX0pLGtleTooKT0+bT8uKCk/P3ZvaWQgMD8ieW9vZGxlIjoibG9nbyIsIm9uOmNsaWNrIjpmdW5jdGlvbihGKXt2YXIgQz1hPy4oKT8uZW5kcG9pbnQ/P3JWLEc9bT8uKCk/P3ZvaWQgMCxEPSIvIjtHPyhDPUcub25UYXBDb21tYW5kfHxDLEQ9Xy5CKEcub25UYXBDb21tYW5kPy5jb21tYW5kTWV0YWRhdGEsXy56dyk/LnVybHx8RCk6RD1fLkIoQz8uY29tbWFuZE1ldGFkYXRhLF8uencpPy51cmx8fEQ7dmFyIEg9az8uKCk/PzM4NTQsUj1GLmN1cnJlbnRUYXJnZXQ7RyYmKFIuZGF0YT1HKTtoPy4oRik7Xy5xUCh7aHJlZjpELGFrOkgsZWxlbWVudDpSLHB1c2hTdGF0ZTohMCxlbmRwb2ludDpDfSk7Ri5zdG9wUHJvcGFnYXRpb24oKX19LF8uSyhfLk8se0E6KCk9PiFwKCkmJihtPy4oKT8/dm9pZCAwKSYmaVUoYigpKSYmCmpVKHosbT8uKCk/P3ZvaWQgMCksdGhlbjooKT0+Xy5LKFNWLHtkYXRhOigpPT5tPy4oKT8/dm9pZCAwLElyOigpPT5fLksoVFYse1ZqOmIsV2o6YyxYajpkLFlmOiJtb2JpbGUtdG9wYmFyLWxvZ28iLGNqOiJob21lLWljb24iLHVtOmUsaWNvbk92ZXJyaWRlOmYscnM6bn0pLGVoOmx9KX0pLF8uSyhfLk8se0E6KCk9PiFwKCkmJihtPy4oKT8/dm9pZCAwKSYmaVUoYigpKSYmIWpVKHosbT8uKCk/P3ZvaWQgMCksdGhlbjooKT0+Xy5LKFNWLHtkYXRhOigpPT5tPy4oKT8/dm9pZCAwLFlmOiJtb2JpbGUtdG9wYmFyLWxvZ28iLGNqOiJob21lLWljb24iLHZCOnosZWg6bH0pfSksXy5LKF8uTyx7QTooKT0+ISghcCgpJiYobT8uKCk/P3ZvaWQgMCkmJmlVKGIoKSkpLHRoZW46KCk9Pl8uSyhUVix7Vmo6YixXajpjLFhqOmQsWWY6Im1vYmlsZS10b3BiYXItbG9nbyIsY2o6ImhvbWUtaWNvbiIsdW06ZSxpY29uT3ZlcnJpZGU6ZixyczpufSl9KSkpfSwidmQiKTtVVi5pZG9tQ29tcGF0PXtjYWxsYmFja3M6e2h6OiEwfX07CnZhciBUVj1fLkwoKHtWajphLFdqOmIsWGo6YyxZZjpkLGNqOmUsdW06ZixpY29uT3ZlcnJpZGU6aCxyczprfSk9Pnt2YXIgbD0oKT0+YSgpP2g/LigpfHwiTE9HT19XSVRIX1RFWFQiOmM/LigpP2s/LigpOiJMT0dPIjtyZXR1cm4gXy5LKF8uTUQse2ljb246KCk9Pnt2YXIgbT1sKCk7Zj8uKCkmJmE/LigpJiYobSs9Il9NT05PQ0hST01FIik7cmV0dXJuIG19LGNsYXNzTmFtZTpfLlAoKCk9PmIoKT8ibG9nby1pbi1wbGF5ZXIiOmQoKSx7ImZ1bGwtbG9nbyI6YSwiZnVsbC1sb2dvLXJlZCI6KCk9PmEoKSYmbCgpPT09IllPVVRVQkVfUFJFTUlVTV9MT0dPX1NIT1JUIiwic2hvcnRzLWxvZ28iOmMsbW9ub2Nocm9tYXRpYzpmfSksaWQ6ZX0pfSwid2QiKTt2YXIgV21hPV8uTChhPT5fLksoXy5JQixudWxsLF8uSyhPbWEse0Z4OiExLGFuaW1hdGlvbjphLmFuaW1hdGlvbn0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0U2hvcnRzRW1iZWRzVG9wYmFyQ29udGFpbmVyIn0sXy5LKFVWLHt0b3BiYXJMb2dvUmVuZGVyZXI6YS54eSxWajohMSxXajohMCxYajohMCxhazoxMzQ4NDB9KSxfLksoXy5PLHtBOmEucmVlbEl0ZW1XYXRjaFJlc3BvbnNlLHRoZW46KCk9Pl8uSyhIVix7b3JpZW50YXRpb246InZlcnRpY2FsX2Rvd24iLEg6YS5ILENwOiEwLGNsYXNzTmFtZToieXRTaG9ydHNFbWJlZHNWb2x1bWVDb250cm9scyIsYmo6ITB9KX0pKSxfLksoXy5PLHtBOmEub3ZlcmxheSx0aGVuOmI9Pl8uSyhSVix7ZGF0YTooKT0+e3ZhciBjPWIoKTtpZihfLnRQKCkpe3ZhciBkPWMubWVudT8ubWVudVJlbmRlcmVyO2M9ZD8uaXRlbXM/ey4uLmMsbWVudTp7Li4uYy5tZW51LG1lbnVSZW5kZXJlcjp7Li4uZCxpdGVtczpbe2FjY291bnRJbmZvTWVudUl0ZW06ITB9LAouLi5kLml0ZW1zXX19fTpjfXJldHVybiBjfSxjbGFzc05hbWU6Inl0U2hvcnRzRW1iZWRzUmVlbFBsYXllck92ZXJsYXlSZW5kZXJlciJ9KX0pLF8uSyhNbWEse0g6YS5ILGNvbnRleHQ6YS5jb250ZXh0fSkpLCJ4ZCIpLFdsYT1fLkwoYT0+e3ZhciB7SDpiLHJlZWxJdGVtV2F0Y2hSZXNwb25zZTpjLGpiOmQsUGg6ZSxjb250ZXh0OmZ9PV8uREMoYSx7SDp2b2lkIDAscmVlbEl0ZW1XYXRjaFJlc3BvbnNlOnZvaWQgMCxqYjp2b2lkIDAsUGg6dm9pZCAwfSksW2gsa109Xy5KKHZvaWQgMCx2b2lkIDAsIkNQU3pJZSIpLFtsLG1dPV8uSih2b2lkIDAsdm9pZCAwLCJJSTRIQ2QiKTtfLm9GKCgpPT57dmFyIEE9Yj8uKCk7QT8uaXNSZWFkeSgpJiZtKEEuZ2V0UGxheWVyU3RhdGUoKSl9KTt2YXIgbj1BPT57Yj8uKCkmJm0oQSl9O18ubkUoKCk9Pnt2YXIgQT1iPy4oKTtBJiYoQS5hZGRFdmVudExpc3RlbmVyKCJvblN0YXRlQ2hhbmdlIixuKSxfLll1KCgpPT57QS5yZW1vdmVFdmVudExpc3RlbmVyKCJvblN0YXRlQ2hhbmdlIiwKbil9KSl9LCJDN0Q1OWQiKTtfLm5FKCgpPT57dmFyIEE9YygpO2lmKEEpe2xldCBGPV8ueSgpLnJlc29sdmUoXy5iTCk7Zm9yKGxldCBDIG9mIEEuZW5nYWdlbWVudFBhbmVsc3x8W10pKEE9Qy5lbmdhZ2VtZW50UGFuZWxTZWN0aW9uTGlzdFJlbmRlcmVyKSYmRi5PeihBLmlkZW50aWZpZXI/LnRhZ3x8QS50YXJnZXRJZHx8QS5wYW5lbElkZW50aWZpZXIsQyl9fSwiUWRTZVRiIik7Xy5uRSgoKT0+e2Z1bmN0aW9uIEEoKXtpZihDKXtsZXQgRz1DLmdldE9wdGlvbnM/LigiY2FwdGlvbnMiKTtHJiZHLmxlbmd0aD4wJiZDPy51cGRhdGVTdWJ0aXRsZXNVc2VyU2V0dGluZ3M/Lih7Zm9udFNpemVJbmNyZW1lbnQ6Mn0sITEpfX12YXIgRj1iPy4oKTtpZihGKXt2YXIgQz1GO0EoKTtDLmFkZEV2ZW50TGlzdGVuZXIoIm9uQ2FwdGlvbnNNb2R1bGVBdmFpbGFibGUiLEEpO18uWXUoKCk9PntDLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9uQ2FwdGlvbnNNb2R1bGVBdmFpbGFibGUiLEEpfSl9fSwibDhXMXZiIik7CnZhciBwPV8uTigoKT0+YygpPy5vdmVybGF5Py5yZWVsUGxheWVyT3ZlcmxheVJlbmRlcmVyfHxkKCk/LmVtYmVkUHJldmlldz8ucmVlbFBsYXllck92ZXJsYXlSZW5kZXJlcix2b2lkIDAsInplaFlZYiIpLHI9Xy5OKCgpPT57dmFyIEE7KEE9Xy5CKGMoKT8udG9wYmFyLCRsYSk/LnRvcGJhckxvZ28/LnRvcGJhckxvZ29SZW5kZXJlcil8fChBPWUoKT8uZW5kcG9pbnQsQT0oQT0oQSYmXy5CKEEsXy5URCkpPy52aWRlb0lkKT9gaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzLyR7QX1gOiJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMiLEE9e2ljb25JbWFnZTp7aWNvblR5cGU6IllPVVRVQkVfU0hPUlRTX09VVExJTkVfV0lUSF9URVhUXzI0In0sdG9vbHRpcFRleHQ6e3J1bnM6W3t0ZXh0OiJZb3VUdWJlIFNob3J0cyJ9XX0sZW5kcG9pbnQ6e2NvbW1hbmRNZXRhZGF0YTp7d2ViQ29tbWFuZE1ldGFkYXRhOnt1cmw6QSx3ZWJQYWdlVHlwZToiV0VCX1BBR0VfVFlQRV9TSE9SVFMiLApyb290VmU6MzgzMn19LHVybEVuZHBvaW50Ont1cmw6QSx0YXJnZXQ6IlRBUkdFVF9ORVdfV0lORE9XIn19fSk7cmV0dXJuIEF9LHZvaWQgMCwiTk4yNzJjIik7YT1fLk4oKCk9PntpZihsKCk9PT01KXt2YXIgQT1lKCk/LmVuZHBvaW50O2lmKEEmJihBPV8uQihBLF8uVEQpPy50aHVtYm5haWw/LnRodW1ibmFpbHM/LlswXT8udXJsKSlyZXR1cm4gXy5JRSh7ImJhY2tncm91bmQtc2l6ZSI6ImNvdmVyIiwiYmFja2dyb3VuZC1wb3NpdGlvbiI6ImNlbnRlciIsImJhY2tncm91bmQtcmVwZWF0Ijoibm8tcmVwZWF0IiwiYmFja2dyb3VuZC1pbWFnZSI6YCR7ImxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgMCwgMCwgMC40KSAwJSwgcmdiYSgwLCAwLCAwLCAwKSAxNjBweCksXG4gICAgICBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNCkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgOTZweCkifSwgdXJsKCR7QX0pYH0pKCl9fSx2b2lkIDAsImkxNkZEZSIpOwp2YXIgdD1fLk4oKCk9PmIoKT8/dm9pZCAwLHZvaWQgMCwiVWZZdEZmIiksdj1fLk4oKCk9PnQoKT8uaXNNdXRlZEJ5RW1iZWRzTXV0ZWRBdXRvcGxheT8uKCksdm9pZCAwLCJsS2NBbWQiKSx6PV8uTigoKT0+KHt0YTpmKCkudGEsVGM6ZigpLlRjLEdjOmYoKS5HYyxiYTpmKCkuYmEsSDp0KCkscGxheWVyU3RhdGU6bCgpPz8tMSxTOigpPT57fX0pLHZvaWQgMCwiZTZsU2llIiksRT1fLk4oKCk9Pnt2YXIgQT10KCk/LmdldFBsYXllclJlc3BvbnNlPy4oKTtyZXR1cm4gQT9fLkIoQT8ub3ZlcmxheT8ucGxheWVyQ29udHJvbHNPdmVybGF5UmVuZGVyZXI/Lm11dGVkQXV0b3BsYXksb1YpOnZvaWQgMH0sdm9pZCAwLCJER1RTbmQiKTtyZXR1cm4gXy5LKF8ubkcse0VmOltfLm9HKCRULHQpXX0sXy5LKCJzaG9ydHMtZW1iZWRzIix7Y2xhc3M6Inl0U2hvcnRzRW1iZWRzSG9zdCIsIm9uOmNsaWNrIjpmdW5jdGlvbihBKXtBLnN0b3BQcm9wYWdhdGlvbigpO2lmKCFFUShBLnRhcmdldCwiQSIpJiYKIUVRKEEudGFyZ2V0LCJCVVRUT04iKSYmKEE9YigpKSYmQS5pc1JlYWR5KCkpaWYoQS5pc011dGVkQnlFbWJlZHNNdXRlZEF1dG9wbGF5KCkpe3ZhciBGPUEuZ2V0VmlkZW9EYXRhKCk/LnZpZGVvX2lkLEM9QS5nZXRDdXJyZW50VGltZSgpO0YmJihBLnVuTXV0ZSgpLEEubG9hZFZpZGVvQnlJZChGLEMpKX1lbHNlIEY9QS5nZXRQbGF5ZXJTdGF0ZSgpPT09MSxDPUEuaXNNdXRlZEJ5TXV0ZWRBdXRvcGxheSgpLEYmJkM/QS51bk11dGUoKTooRj1BLmdldFBsYXllclN0YXRlKCk9PT0xLEM9QS5pc011dGVkQnlNdXRlZEF1dG9wbGF5KCksRiYmIUM/KEEucGF1c2VWaWRlbygpLGsoe25hbWU6InBhdXNlXzk2ZHBfYW5pbWF0aW9uIn0pKTpGfHwoQyYmQS51bk11dGUoKSxBLnBsYXlWaWRlbygpLGsoe25hbWU6InBsYXlfOTZkcF9hbmltYXRpb24ifSkpKX0sc3R5bGU6YX0sXy5LKF8uTyx7QTooKT0+digpLHRoZW46KCk9Pl8uSyhMVix7Rzp6LHBsYXllck11dGVkQXV0b3BsYXlPdmVybGF5UmVuZGVyZXI6RX0pLApXOigpPT5fLksoV21hLHthbmltYXRpb246aCx4eTpyLHJlZWxJdGVtV2F0Y2hSZXNwb25zZTpjLEg6dCxvdmVybGF5OnAsY29udGV4dDpmfSl9KSkpfSwiQ2QiKTt2YXIgYlY9Xy5MKCh7ZGF0YTphfSk9PntKamEoKTtyZXR1cm4gXy5LKCJ5dC1wbGF5ZXItaW50ZXJzdGl0aWFsLXJlbmRlcmVyIix7Y2xhc3M6InBsYXllckludGVyc3RpdGlhbFJlbmRlcmVySG9zdCIscm9sZToiZGlhbG9nIiwiYXJpYS1sYWJlbCI6KCk9Pnt2YXIgYjthOntpZihiPWEoKS5jb250ZW50KXt2YXIgYz1fLkIoYixibWEpO2lmKGM/LnRpdGxlPy5jb250ZW50KXtiPWMudGl0bGUuY29udGVudDticmVhayBhfWI9Xy5CKGIsZW1hKTtiPWI/LmhlYWRlciYmXy5CKGIuaGVhZGVyLGRtYSk7aWYoYj8uaGVhZGxpbmU/LmNvbnRlbnQpe2I9Yi5oZWFkbGluZS5jb250ZW50O2JyZWFrIGF9fWI9dm9pZCAwfXJldHVybiBifSx0YWJpbmRleDotMSxlbDpfLnJGKGI9PnZvaWQgYj8uZm9jdXMoKSl9LF8uSygiZGl2Iix7Y2xhc3M6InBsYXllckludGVyc3RpdGlhbFJlbmRlcmVyU2NyaW0ifSxfLksoXy5XLHtkYXRhOigpPT5hKCkuY29udGVudH0se2ludGVyc3RpdGlhbFZpZXdNb2RlbDpfLmVqYSwKZGlhbG9nVmlld01vZGVsOl8uJGlhfSkpKX0sIkRkIik7YlYuaWRvbUNvbXBhdD0hMDt2YXIgVlY9Xy5MKCh7Z2Y6YSxJYjpifSk9Pl8uSygieXQtYmlnYm9hcmQiLG51bGwsXy5LKF8uTyx7QTooKT0+YSgpLmlzRHJhZ2dpbmcsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRCaWdib2FyZFN0b3J5Ym9hcmRIb3N0In0sXy5LKEdtYSx7TGI6YSxJYjpifSkpfSkpLCJFZCIpO1ZWLmlkb21Db21wYXQ9ITA7dmFyIFdWPV8uTChhPT57dmFyIGI9YS5HO2E9Xy5OKCgpPT5iKCkuZWE/Xy4kTi5tdDpfLiROLlp0LHZvaWQgMCwieGlkenVkIik7cmV0dXJuIF8uSygiYnV0dG9uIix7Im9uOmNsaWNrIjpmdW5jdGlvbihjKXt2YXIgZD17ZWE6IWIoKS5lYSx5cTohMH07YigpLlMoZCk7Yy5zdG9wUHJvcGFnYXRpb24oKX0saWQ6InBsYXllci1jb250cm9scy1hMTF5LXRvZ2dsZSIsY2xhc3M6Inl0bUExMXlTdHlsZXNIaWRkZW5CdXR0b24iLCJhcmlhLWxhYmVsIjphfSl9LCJGZCIpO3ZhciBYVj1fLkwoYT0+e2Z1bmN0aW9uIGIoaCl7WFMoYS5GZCgpPT09LTE/MTQxOTAyOjE0MTkwMyk7dmFyIGs9Yz8uKCksbD1hLkZkKCk7az8uc2Vla0J5KGwqMTAsdm9pZCAwLHZvaWQgMCxsPT09LTE/ODM6ODIpO2guc3RvcFByb3BhZ2F0aW9uKCl9dmFyIGM9Xy5rRygkVCksZD0oKT0+YS5GZCgpPT09LTE/Xy4kTi5RdC5yZXBsYWNlKCIkc2Vjb25kc19wbGFjZWhvbGRlciIsKDEwKS50b1N0cmluZygpKTpfLiROLkl0LnJlcGxhY2UoIiRzZWNvbmRzX3BsYWNlaG9sZGVyIiwoMTApLnRvU3RyaW5nKCkpLGU9Xy5OKCgpPT57dmFyIGg9YS5HKCk7cmV0dXJuIF8ueCgibXdlYl9wY19saXZlX2R2cl9rcyIpPyEwOiEoaC5pc0xpdmUmJiFoLmlzTGl2ZUR2ckVuYWJsZWQpfSx2b2lkIDAsIkthcklLYyIpLGY9Xy51RSgiYnV0dG9uIixoPT57V1MoaCxhLkZkKCk9PT0tMT8xNDE5MDI6MTQxOTAzKX0pO3JldHVybiBfLksoXy5PLHtBOmUsdGhlbjooKT0+Xy5LKCJidXR0b24iLHsiYXJpYS1sYWJlbCI6ZCwKY2xhc3M6Xy5QKGEuY2xhc3NOYW1lLCJ5dG1BMTF5U3R5bGVzSGlkZGVuQnV0dG9uIiwicGxheWVyLWNvbnRyb2wtc2Vlay1pY29uLWExMXkiKSxzdHlsZTpfLklFKHtsZWZ0OigpPT5hLkZkKCk9PT0tMT8iMCI6InVuc2V0IixyaWdodDooKT0+YS5GZCgpPT09MT8iMCI6InVuc2V0In0pLGVsOmYsIm9uOmNsaWNrIjpifSl9KX0sIkdkIik7dmFyIFlWPV8uTChhPT57dmFyIHtVZDpiLG9uY2xpY2s6YywuLi5kfT1hO2E9Xy51RSgiZGl2IixlPT57V1MoZSxiKCkpfSk7cmV0dXJuIF8uSygiZGl2Iix7ZWw6YX0sXy5LKF8udE8sey4uLmQsb25jbGljazplPT57WFMoYigpKTtjPy4oZSl9fSkpfSwiSGQiKTt2YXIgWlY9Xy5MKGE9Pnt2YXIgYj1fLngoImVuYWJsZV93ZWJfZGVsaGlfaWNvbnMiKT8icGxheWVyX2Z1bGxfZW50ZXJfYWx0IjoiRlVMTFNDUkVFTiIsYz1fLngoImVuYWJsZV93ZWJfZGVsaGlfaWNvbnMiKT8icGxheWVyX2Z1bGxfZXhpdF9hbHQiOiJGVUxMU0NSRUVOX0VYSVQiLGQ9KCk9PmEuRygpLmlzRnVsbHNjcmVlbj9jOmI7cmV0dXJuIF8uSyhZVix7bmFtZTpkLGFyaWFMYWJlbDooKT0+YS5HKCkuaXNGdWxsc2NyZWVuP18uJE4uSHQ6Xy4kTi5KdCxjb250ZW50OigpPT5fLksoImRpdiIse2NsYXNzOiJwbGF5ZXItYm90dG9tLWNvbnRyb2xzLWZ1bGxzY3JlZW4taWNvbi12aXNpYmxlLWFyZWEifSxfLksoXy5NRCx7aWNvbjpkfSkpLGNsYXNzTmFtZToiZnVsbHNjcmVlbi1pY29uIixVZDoxMzkxMTcsb25jbGljazplPT57YS5HKCkudGEudG9nZ2xlRnVsbHNjcmVlbigpO2Uuc3RvcFByb3BhZ2F0aW9uKCl9fSl9LCJJZCIpO3ZhciAkVj1fLkwoYT0+e3ZhciBiPV8ua0coJFQpO3JldHVybiBfLksoWVYse25hbWU6KCk9PmEuRygpLnBsYXllclN0YXRlPT09MXx8YS55cyYmYS5HKCkucGxheWVyU3RhdGU9PT0zPyJQQVVTRV9GSUxMRUQiOiJQTEFZX0FSUk9XX0ZJTExFRCIsYXJpYUxhYmVsOigpPT5hLkcoKS5wbGF5ZXJTdGF0ZT09PTF8fGEueXMmJmEuRygpLnBsYXllclN0YXRlPT09Mz9fLiROLkx0Ol8uJE4uUGcsY2xhc3NOYW1lOiJwbGF5ZXItY29udHJvbC1wbGF5LXBhdXNlLWljb24iLFVkOjM2ODQyLG9uY2xpY2s6Yz0+e3ZhciBkPWEuRygpLGU9Yj8uKCk7ZSYmKGU9V1EoZSksZC5TKHtqZTplfSkpO2Muc3RvcFByb3BhZ2F0aW9uKCl9fSl9LCJKZCIpO3ZhciBhVz1fLkwoYT0+e3ZhciBiPV8ua0coJFQpO3JldHVybiBfLksoWVYse25hbWU6IlBMQVlFUl9SRVBMQVkiLGFyaWFMYWJlbDpfLiROLlB0LGNsYXNzTmFtZToiZW5kc2NyZWVuLXJlcGxheS1idXR0b24iLFVkOjU2Mzg2LG9uY2xpY2s6Yz0+e3ZhciBkPWEuRygpLGU9Yj8uKCk7ZSYmKGQucmMmJmU/LnVuTXV0ZSgpLGUucGxheVZpZGVvKCkpO2Muc3RvcFByb3BhZ2F0aW9uKCl9fSl9LCJLZCIpO3ZhciBiVz1fLkwoYT0+Xy5LKFlWLHtuYW1lOiJHRUFSIixhcmlhTGFiZWw6Xy4kTi52dCxjbGFzc05hbWU6Xy5QKCJwbGF5ZXItc2V0dGluZ3MtaWNvbiIsYS5jbGFzc05hbWUpLFVkOjI4NjYzLG9uY2xpY2s6Yj0+e2EuRygpLnRhLlNqKGIpfX0pLCJMZCIpO3ZhciBjVz1fLkwoYT0+e3ZhciB7S3U6YixvbkNsaWNrOmMsYXJpYUxhYmVsOmQsYXJpYVByZXNzZWQ6ZSxpc092ZXJsYXk6Zn09Xy5EQyhhLHtpc092ZXJsYXk6ITF9KTthPV8udUUoImJ1dHRvbiIsaD0+e1dTKGgsMTI3Mjk5KX0pO3JldHVybiBfLksoInl0bS1jbG9zZWQtY2FwdGlvbmluZy1idXR0b24iLHtjbGFzczpfLlAoInl0bUNsb3NlZENhcHRpb25pbmdCdXR0b25Ib3N0Iix7eXRtQ2xvc2VkQ2FwdGlvbmluZ0J1dHRvbkljb25EaXNhYmxlZE92ZXJsYXk6KCk9PmIoKT09PS0xJiZmKCkseXRtQ2xvc2VkQ2FwdGlvbmluZ0J1dHRvbkljb25EaXNhYmxlZDooKT0+YigpPT09LTEmJiFmKCl9KX0sXy5LKCJidXR0b24iLHtlbDphLGNsYXNzOiJ5dG1DbG9zZWRDYXB0aW9uaW5nQnV0dG9uQnV0dG9uIix0aXRsZTpkLCJhcmlhLWxhYmVsIjpkLCJhcmlhLXByZXNzZWQiOmUsImFyaWEtZGlzYWJsZWQiOigpPT5iKCk9PT0tMT8idHJ1ZSI6dm9pZCAwLCJvbjpjbGljayI6ZnVuY3Rpb24oaCl7WFMoMTI3Mjk5KTsKYz8uKGgpO2guc3RvcFByb3BhZ2F0aW9uKCl9fSxfLksoXy5NRCx7aWNvbjooKT0+e3ZhciBoPSIiO2lmKF8ueCgibXdlYl9sb2NhbGl6ZWRfY2NfaWNvbiIpKXt2YXIgaz1fLkh6KCkuZ2V0KCJobCIpO2s9IWt8fGhtYS5pbmNsdWRlcyhrKT8iQ0xPU0VEX0NBUFRJT04iOiJTVUJUSVRMRVMifWVsc2Ugaz0iQ0xPU0VEX0NBUFRJT04iO3ZhciBsPWIoKTtzd2l0Y2gobCl7Y2FzZSAtMTpjYXNlIDA6aD1rO2JyZWFrO2Nhc2UgMTpoPWsrIl9GSUxMRUQiO2JyZWFrO2RlZmF1bHQ6Xy5lYihsLHZvaWQgMCl9cmV0dXJuIGh9LGNsYXNzTmFtZTpfLlAoe3l0bUNsb3NlZENhcHRpb25pbmdCdXR0b25ZdEljb25PdmVybGF5OmZ9KX0pKSl9LCJNZCIpO2NXLmlkb21Db21wYXQ9e2NhbGxiYWNrczp7b25DbGljazohMH19O3ZhciBrVT0iIjt2YXIgZFc9Xy5MKGE9Pnt2YXIgYj1hLmdmLGM9YS5zTCxkPWEuV3EsZT1hLmNsYXNzTmFtZSxmPWEuVnIsaD1wPT57dmFyIHI9YigpLHQ9Yz8uKCksdj1mKCk7ci54YyYmKHQ/ci5IPy50b2dnbGVTdWJ0aXRsZXModik6KHQ9ci5IKSYmUVEodCxsVShyKSx2KSk7Xy54KCJ3ZWJfZGVsZXRlX3NuYWNrYmFycyIpfHxyLnRhLnFBPy4ocik7ZD8uKHApfSxrPV8uTigoKT0+e3ZhciBwPWIoKSxyPS0xO3AueGMmJihyPXAuY2FwdGlvbnNFbmFibGVkPzE6MCk7cmV0dXJuIHJ9LHZvaWQgMCwiSE1vMnJjIiksbD1fLk4oKCk9Pnt2YXIgcD1iKCk7cmV0dXJuIHAueGM/Xy5hQShwLmNhcHRpb25zRW5hYmxlZD8iQ0xPU0VEX0NBUFRJT05TX09OIjoiQ0xPU0VEX0NBUFRJT05TX09GRiIpOl8uYUEoIkNMT1NFRF9DQVBUSU9OU19ESVNBQkxFRCIpfSx2b2lkIDAsIldRNTFZZSIpLG09Xy5OKCgpPT57dmFyIHA9YigpO3A9cC54Yz9wLmNhcHRpb25zRW5hYmxlZDp2b2lkIDA7cmV0dXJuIHB9LHZvaWQgMCwKIkkwTFR1YiIpLG49Xy5OKCgpPT5iKCkueGMsdm9pZCAwLCJMdmVPV2UiKTtyZXR1cm4gXy5LKF8uTyx7QTooKT0+Xy54KCJtd2ViX3BsYXllcl9oaWRlX3VuYXZhaWxhYmxlX3N1YnRpdGxlc19idXR0b24iKT9uKCk6ITAsdGhlbjooKT0+Xy5LKCJ5dC1jbG9zZWQtY2FwdGlvbnMtdG9nZ2xlLWJ1dHRvbiIse2NsYXNzOmV9LF8uSyhjVyx7S3U6ayxhcmlhTGFiZWw6bCxhcmlhUHJlc3NlZDptLG9uQ2xpY2s6aCxpc092ZXJsYXk6ITB9KSl9KX0sIk5kIik7dmFyIGVXPV8uTCgoe0lBOmEsZGF0YTpiLGNoaWxkcmVuOmN9KT0+e2Z1bmN0aW9uIGQoKXthPy4oKXx8cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Zi52YWx1ZSYmKGgudmFsdWUuc3R5bGUud2lkdGg9YCR7Zi52YWx1ZS5vZmZzZXRXaWR0aH1weGApfSl9dmFyIGU9dm9pZCAwLGY9Xy51RSgiZGl2IiksaD1fLnVFKCJkaXYiKSxrPV8uQlEoKSxsPV8uQlEoKTtfLm5FKCgpPT57ZCgpOyFlJiZiKCkuc3Vic2NyaWJlZCYmKGsubG90dGllRWw/LmdvVG9BbmRQbGF5KDApLGwubG90dGllRWw/LmdvVG9BbmRQbGF5KDApKTtlPSEhYigpLnN1YnNjcmliZWR9LCJNTTBqQWYiKTtyZXR1cm4gXy5LKCJkaXYiLHtjbGFzczoieXR3QW5pbWF0ZWRTdWJzY3JpYmVCdXR0b25Ib3N0In0sXy5LKF8uQVEse09vOmssUnA6bH0sXy5LKCJkaXYiLHtlbDpoLGNsYXNzOl8uUCgieXR3QW5pbWF0ZWRTdWJzY3JpYmVCdXR0b25Db250ZW50Q29udGFpbmVyIix7eXR3QW5pbWF0ZWRTdWJzY3JpYmVCdXR0b25TdGF0aWNXaWR0aDphLAp5dHdBbmltYXRlZFN1YnNjcmliZUJ1dHRvbkNhbkFuaW1hdGU6KCk9PmIoKS5zdWJzY3JpYmVkfSl9LF8uSygiZGl2Iix7ZWw6ZixjbGFzczoieXR3QW5pbWF0ZWRTdWJzY3JpYmVCdXR0b25GbGV4Q29udGFpbmVyIn0sYykpKSl9LCJQZCIpO2VXLmlkb21Db21wYXQ9ITA7dmFyIGZXPV8uTCgoe2RhdGE6YSxidXR0b25PdmVycmlkZXM6Yn0pPT57dmFyIFtjXT1uamEoYSk7cmV0dXJuIF8uSygieXRtLXN1YnNjcmliZS1idXR0b24tcmVuZGVyZXIiLHtjbGFzczpfLlAoeyJpcy1zdWJzY3JpYmVkIjooKT0+YygpLnN1YnNjcmliZWQsImlzLW5vdC1zdWJzY3JpYmVkIjooKT0+IWMoKS5zdWJzY3JpYmVkLGRpc2FibGVkOigpPT57dmFyIGQ7aWYoZD0hIWMoKS50aGVtZSl7ZD0hIWMoKS5zdWJzY3JpYmVkO3ZhciBlPWMoKS50aGVtZTtkPWQ/ISFlLnN1YnNjcmliZWRDb2xvclBhbGV0dGUmJl8udU4oZS5zdWJzY3JpYmVkQ29sb3JQYWxldHRlKTohIWUudW5zdWJzY3JpYmVkQ29sb3JQYWxldHRlJiZfLnVOKGUudW5zdWJzY3JpYmVkQ29sb3JQYWxldHRlKX1yZXR1cm4gZH19KX0sXy5LKF8uYWphLHtzZXR0aW5nczooKT0+KHt1bmlxdWVJZDoic3Vic2NyaWJlIixmazpjKCkudGltZWRBbmltYXRpb25EYXRhPy5hbmltYXRpb25UaW1pbmd8fFtdLFhkOihjKCkudGltZWRBbmltYXRpb25EYXRhPy5hbmltYXRpb25UaW1pbmd8fApbXSkubGVuZ3RoPjAsZW5hYmxlZDohYygpLnN1YnNjcmliZWQmJihjKCkudGltZWRBbmltYXRpb25EYXRhPy5hbmltYXRpb25UaW1pbmd8fFtdKS5sZW5ndGg+MH0pfSxfLksoWG1hLHtkYXRhOmMsYnV0dG9uT3ZlcnJpZGVzOmJ9KSkpfSwiUWQiKTtmVy5pZG9tQ29tcGF0PSEwOwp2YXIgWG1hPV8uTCgoe2RhdGE6YSxidXR0b25PdmVycmlkZXM6Yn0pPT57dmFyIGM9KCk9PiEoIWEoKS5zdWJzY3JpYmVkfHwhYSgpLm5vdGlmaWNhdGlvblByZWZlcmVuY2VUb2dnbGVCdXR0b24pLGQ9Xy5OKCgpPT4oey4uLlFqYSh7cmVuZGVyZXI6YSgpLHN1YnNjcmliZWQ6ISFhKCkuc3Vic2NyaWJlZCxpc092ZXJsYXk6Xy5XTSgpPyEwOiExLHN0b3BQcm9wYWdhdGlvbjohMH0pLGRpc2FibGVkOiFhKCkuZW5hYmxlZCwuLi4oYj8uKCl8fHt9KX0pLHZvaWQgMCwieW9DZGNlIik7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Im1vZGVybi1zdWJzY3JpYmUtYnV0dG9uLWNvbnRhaW5lciJ9LF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJub3RpZmljYXRpb24tYmVsbC1jb250YWluZXIiLHtoaWRkZW46KCk9PiFjKCl9KX0sXy5LKF8uVyx7ZGF0YTooKT0+YSgpLm5vdGlmaWNhdGlvblByZWZlcmVuY2VUb2dnbGVCdXR0b259LHt0b2dnbGVCdXR0b25SZW5kZXJlcjooe2RhdGE6ZX0pPT5fLksoXy5xTywKe2RhdGE6ZSxidXR0b25PdmVycmlkZXM6e3N0eWxlOiJvdmVybGF5In0sY2xhc3NOYW1lOl8uUCgibm90aWZpY2F0aW9uLWJlbGwiLHtoaWRkZW46KCk9PiFjKCl9KX0pfSkpLF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJtb2Rlcm4tc3Vic2NyaWJlLWJ1dHRvbiIseyJ3aXRoLW5vdGlmaWNhdGlvbi1iZWxsIjpjfSl9LF8uSyhfLk8se0E6KCk9PiFfLldNKCksdGhlbjooKT0+e3ZhciBlPV8uVU0oKT09PSJjaGFubmVsIjtyZXR1cm4gXy5LKGVXLHtkYXRhOmEsSUE6ZX0sXy5LKF8uSksse2RhdGE6ZH0pKX0sVzooKT0+Xy5LKF8uSksse2RhdGE6ZH0pfSksXy5LKCJkaXYiLHtjbGFzczoic3Vic2NyaWJlLWJ1dHRvbi1jb3VudCJ9LF8uSyhfLklKLHtkYXRhOigpPT5hKCkuc3Vic2NyaWJlckNvdW50VGV4dH0pKSkpfSwiUmQiKTt2YXIgZ1c9Xy5MKCh7ZW5kc2NyZWVuRWxlbWVudFJlbmRlcmVyOmEsaXNBY3RpdmU6YixYaDpjfSk9PntmdW5jdGlvbiBkKCl7Xy5BSihhKCkuZW5kcG9pbnQsYSgpLCEwKX12YXIgZT0oKT0+YSgpLnN0eWxlPT09IkNIQU5ORUwiLGY9Xy5QKCJ5dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50VGh1bWJuYWlsIix7eXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudFJvdW5kOmV9KSxoPSgpPT5OdW1iZXIoYSgpLmxlZnQpK051bWJlcihhKCkud2lkdGgvMik8LjUsaz1fLlAoInl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Iix7eXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlSaWdodDpoLHl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5TGVmdDooKT0+IWgoKSx5dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheVJpZ2h0QWN0aXZlOigpPT5iKCkmJmgoKSx5dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheUxlZnRBY3RpdmU6KCk9PgpiKCkmJiFoKCl9KSxsPSgpPT5hKCkudGl0bGUsbT0oKT0+YSgpLmhvdmVyY2FyZEJ1dHRvbixuPSgpPT5hKCkubWV0YWRhdGEscD0oKT0+YSgpLmNhbGxUb0FjdGlvbixyPV8uUCh7eXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlNZXRhZGF0YVdlYnNpdGU6KCk9PiFlKCkseXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlNZXRhZGF0YUNoYW5uZWw6ZX0pO2M9Xy5QKCJ5dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50U2NyaW0iLHt5dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50U2NyaW1DaGFubmVsOmUseXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudFNjcmltQWN0aXZlOmN9KTt2YXIgdD1fLlAoInl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRIb3N0Iix7eXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudEhvc3RBY3RpdmU6Yn0pO3JldHVybiBfLksoImV4cGFuZGluZy1lbmRzY3JlZW4tZWxlbWVudCIse2NsYXNzOnR9LF8uSygiZGl2Iix7Y2xhc3M6Y30pLApfLksoImRpdiIse2NsYXNzOmt9LF8uSygiZGl2Iix7Y2xhc3M6Inl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5Q29udGVudCJ9LF8uSyhfLk8se0E6bCx0aGVuOigpPT5fLksoXy5WLHt0ZXh0OmwsY2xhc3NOYW1lOiJ5dG1FeHBhbmRpbmdFbmRzY3JlZW5FbGVtZW50T3ZlcmxheVRpdGxlIn0pfSksXy5LKF8uTyx7QTptLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0bUV4cGFuZGluZ0VuZHNjcmVlbkVsZW1lbnRPdmVybGF5QnV0dG9uIn0sXy5LKF8uVyx7ZGF0YTptfSx7c3Vic2NyaWJlQnV0dG9uUmVuZGVyZXI6Zld9KSl9KSxfLksoXy5PLHtBOm4sdGhlbjooKT0+Xy5LKF8uVix7Y2xhc3NOYW1lOnIsdGV4dDpufSl9KSxfLksoXy5PLHtBOigpPT4hZSgpJiZhKCkuY2FsbFRvQWN0aW9uLHRoZW46KCk9Pl8uSygiZGl2Iix7Im9uOmNsaWNrIjpkLHN0eWxlOiJkaXNwbGF5OiBjb250ZW50cyJ9LF8uSyhfLlYse2NsYXNzTmFtZToieXRtRXhwYW5kaW5nRW5kc2NyZWVuRWxlbWVudE92ZXJsYXlDYWxsVG9BY3Rpb24iLAp0ZXh0OnB9KSl9KSkpLF8uSygiZGl2Iix7Im9uOmNsaWNrIjpkfSxfLksoXy5VUCx7dGh1bWJuYWlsRGV0YWlsczooKT0+YSgpLmltYWdlLGNsYXNzTmFtZTpmfSkpKX0sIlNkIik7Z1cuaWRvbUNvbXBhdD0hMDt2YXIgaFc9Xy5MKCh7ZW5kc2NyZWVuRWxlbWVudFJlbmRlcmVyOmEsaXNBY3RpdmU6YixYaDpjfSk9Pnt2YXIgZD0oKT0+YSgpLnRpdGxlLGU9KCk9PmEoKS50aHVtYm5haWxPdmVybGF5cyxmPSgpPT5hKCkucGxheWxpc3RMZW5ndGg7Yj1fLlAoInl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRIb3N0Iix7eXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudEhvc3RBY3RpdmU6Yn0pO2M9Xy5QKCJ5dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50U2NyaW0iLHt5dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50U2NyaW1BY3RpdmU6Y30pO3JldHVybiBfLksoInRodW1ibmFpbC1lbmRzY3JlZW4tZWxlbWVudCIse2NsYXNzOmIsIm9uOmNsaWNrIjpmdW5jdGlvbigpe18uQUooYSgpLmVuZHBvaW50LGEoKSwhMCl9fSxfLksoImRpdiIse2NsYXNzOmN9KSxfLksoXy5PLHtBOmQsdGhlbjooKT0+Xy5LKCJkaXYiLHtjbGFzczoieXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRvcE92ZXJsYXkifSwKXy5LKCJkaXYiLHtjbGFzczoieXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRvcEdyYWRpZW50In0pLF8uSyhfLlYse3RleHQ6ZCxjbGFzc05hbWU6Inl0bVRodW1ibmFpbEVuZHNjcmVlbkVsZW1lbnRUaHVtYm5haWxUaXRsZSIsdWI6ITAsbWE6ITB9KSl9KSxfLksoXy5VUCx7dGh1bWJuYWlsRGV0YWlsczooKT0+YSgpLmltYWdlLGNsYXNzTmFtZToieXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRodW1ibmFpbCJ9KSxfLksoXy5PLHtBOmUsdGhlbjooKT0+Xy5LKF8uVyx7ZGF0YTplfSx7dGh1bWJuYWlsT3ZlcmxheVRpbWVTdGF0dXNSZW5kZXJlcjooe2RhdGE6aH0pPT5fLksoXy5WUCx7ZGF0YTpoLGNsYXNzTmFtZToieXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFRpbWVTdGF0dXMifSl9KX0pLF8uSyhfLk8se0E6Zix0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50UGxheWxpc3RMZW5ndGhPdmVybGF5In0sXy5LKF8uTUQsCntpY29uOiJQTEFZTElTVFNfQ0FJUk8iLGNsYXNzTmFtZToieXRtVGh1bWJuYWlsRW5kc2NyZWVuRWxlbWVudFBsYXlsaXN0SWNvbiJ9KSxfLksoXy5WLHt0ZXh0OmYsY2xhc3NOYW1lOiJ5dG1UaHVtYm5haWxFbmRzY3JlZW5FbGVtZW50UGxheWxpc3RMZW5ndGgiLHViOiEwLG5vV3JhcDohMCxtYTohMH0pKX0pKX0sIlRkIik7aFcuaWRvbUNvbXBhdD0hMDt2YXIgaVc9WzM0Niw0MjYsNDcwLDUwNiw1NzAsNjQwLDg1MywxMjgwLDE5MjBdLGpXPVsieXRtQ3JlYXRvckVuZHNjcmVlblJvdW5kaW5nU21hbGwiLCJ5dG1DcmVhdG9yRW5kc2NyZWVuUm91bmRpbmdNZWRpdW0iLCJ5dG1DcmVhdG9yRW5kc2NyZWVuUm91bmRpbmdMYXJnZSJdLGxXPV8uTCgoe2VuZHNjcmVlblJlbmRlcmVyOmEsRzpifSk9Pnt2YXIgW2MsZF09Xy5KKG5ldyBGUSgwLDAsMCwwKSx2b2lkIDAsInV1dU1LYyIpLFtlLGZdPV8uSihuZXcgXy5uZCgwLDApLHZvaWQgMCwicHlhaWpiIiksW2gsa109Xy5KKCIiLHZvaWQgMCwiTUszaUFmIiksW2wsbV09Xy5KKCExLHZvaWQgMCwiZU1PZmliIiksbj1fLk4oKCk9PmIoKS5ILHZvaWQgMCwicEY2ODRiIikscD1fLk4oKCk9Pl8uVXcoYSgpLnRyYWNraW5nUGFyYW1zKSx2b2lkIDAsImpib1BGZiIpLHI9KCk9Pnt2YXIgQT1uKCk/LmdldFZpZGVvQ29udGVudFJlY3QoKTtBJiZBLndpZHRoPjAmJkEuaGVpZ2h0PjAmJmQobmV3IEZRKEEubGVmdCwKQS50b3AsQS53aWR0aCxBLmhlaWdodCkpOyhBPW4oKT8uZ2V0U2l6ZSgpKSYmQS53aWR0aD4wJiZBLmhlaWdodD4wJiZmKG5ldyBfLm5kKEEud2lkdGgsQS5oZWlnaHQpKX0sdD1BPT57QT09PSJ5dG0tY2UtaW4tZW5kc2NyZWVuIiYmKG0oITApLFpTKHAoKSkpfSx2PUE9PntBPT09Inl0bS1jZS1pbi1lbmRzY3JlZW4iJiZtKCExKX07Xy5VSigoKT0+e3IoKTtIa2EocCgpKTtuKCk/LmFkZEV2ZW50TGlzdGVuZXIoIm9uQ3VlUmFuZ2VFbnRlciIsdCk7bigpPy5hZGRFdmVudExpc3RlbmVyKCJvbkN1ZVJhbmdlRXhpdCIsdik7bigpPy5hZGRDdWVSYW5nZSgieXRtLWNlLWluLWVuZHNjcmVlbiIsTnVtYmVyKGEoKS5zdGFydE1zKS8xRTMsTnVtYmVyKDB4N2ZmZmZmZmZmZmZmZikvMUUzKTtfLll1KCgpPT57YigpLkg/LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9uQ3VlUmFuZ2VFbnRlciIsdCk7YigpLkg/LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9uQ3VlUmFuZ2VFbnRlciIsdik7bigpPy5yZW1vdmVDdWVSYW5nZSgieXRtLWNlLWluLWVuZHNjcmVlbiIpfSl9KTsKXy5EUCgicmVzaXplIixyKTt2YXIgej1fLlAoInl0bUNyZWF0b3JFbmRzY3JlZW5Ib3N0IiwoKT0+e3ZhciBBPWMoKS53aWR0aCxGPTAsQz0tMTtmb3IobGV0IEc9MDtHPGlXLmxlbmd0aDtHKyspe2xldCBEPU1hdGguYWJzKEEtaVdbR10pO2lmKEM9PT0tMXx8Rj49RClDPUcsRj1EfXJldHVybmB5dG1DcmVhdG9yRW5kc2NyZWVuU2l6ZSR7aVdbQ119YH0se3l0bUNyZWF0b3JFbmRzY3JlZW5JbkN1ZVJhbmdlOmx9KSxFPV8uUCgieXRtQ3JlYXRvckVuZHNjcmVlblNjcmltIix7eXRtQ3JlYXRvckVuZHNjcmVlblNjcmltVmlzaWJsZTooKT0+aCgpfSk7cmV0dXJuIF8uSygiY3JlYXRvci1lbmRzY3JlZW4iLHtjbGFzczp6fSxfLksoImRpdiIse2NsYXNzOkUsc3R5bGU6Xy5JRSh7d2lkdGg6KDAsXy5aSykoKCk9PmUoKS53aWR0aCksaGVpZ2h0OigwLF8uWkspKCgpPT5lKCkuaGVpZ2h0KX0pfSksXy5LKF8uVyx7ZGF0YTooKT0+YSgpLmVsZW1lbnRzfSx7ZW5kc2NyZWVuRWxlbWVudFJlbmRlcmVyOih7ZGF0YTpBfSk9PgpfLksoa1cse2RhdGE6QSxHQjpjLGlzQWN0aXZlOigpPT5oKCk9PT1BKCkuaWQsWGg6KCk9PiEhaCgpJiZoKCkhPT1BKCkuaWQsZUE6ayxIOm59KX0pKX0sIlVkIik7bFcuaWRvbUNvbXBhdD0hMDsKdmFyIGtXPV8uTCgoe2RhdGE6YSxHQjpiLGlzQWN0aXZlOmMsWGg6ZCxlQTplLEg6Zn0pPT57dmFyIFtoLGtdPV8uSighMSx2b2lkIDAsIktXWUpJZSIpLGw9Xy5OKCgpPT5fLlV3KGEoKS50cmFja2luZ1BhcmFtcyksdm9pZCAwLCJVeHB5VWIiKSxtPXQ9Pnt0LnN1YnN0cmluZygxNSk9PT1hKCkuaWQmJihrKCEwKSxaUyhsKCkpKX0sbj10PT57dC5zdWJzdHJpbmcoMTUpPT09YSgpLmlkJiZrKCExKX07Xy5VSigoKT0+e2Y/LigpLmFkZEV2ZW50TGlzdGVuZXIoIm9uQ3VlUmFuZ2VFbnRlciIsbSk7Zj8uKCkuYWRkRXZlbnRMaXN0ZW5lcigib25DdWVSYW5nZUV4aXQiLG4pO3ZhciB0PWB5dG0tY2UtZWxlbWVudC0ke2EoKS5pZH1gO2Y/LigpLmFkZEN1ZVJhbmdlKHQsTnVtYmVyKGEoKS5zdGFydE1zKS8xRTMsTnVtYmVyKGEoKS5lbmRNcykvMUUzKTtfLll1KCgpPT57Zj8uKCkucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25DdWVSYW5nZUVudGVyIixtKTtmPy4oKS5yZW1vdmVFdmVudExpc3RlbmVyKCJvbkN1ZVJhbmdlRW50ZXIiLApuKTtmPy4oKS5yZW1vdmVDdWVSYW5nZSh0KX0pfSk7dmFyIHA9KCk9PmIoKS5jbG9uZSgpLnNjYWxlKGEoKS53aWR0aCxhKCkud2lkdGgqYigpLmdldFNpemUoKS5hc3BlY3RSYXRpbygpL2EoKS5hc3BlY3RSYXRpbykudHJhbnNsYXRlKGEoKS5sZWZ0KmIoKS53aWR0aC1iKCkubGVmdCooYSgpLndpZHRoLTEpLGEoKS50b3AqYigpLmhlaWdodC1iKCkudG9wKihhKCkud2lkdGgqYigpLmdldFNpemUoKS5hc3BlY3RSYXRpbygpL2EoKS5hc3BlY3RSYXRpby0xKSkscj1fLlAoInl0bUNyZWF0b3JFbmRzY3JlZW5FbGVtZW50Iix7eXRtQ3JlYXRvckVuZHNjcmVlbkVsZW1lbnRWaXNpYmxlOigpPT5oKCl9LCgpPT5wKCkud2lkdGg+MjU2fHxwKCkuaGVpZ2h0PjI1Nj9qV1syXTpwKCkud2lkdGg+OTZ8fHAoKS5oZWlnaHQ+OTY/aldbMV06aldbMF0pO3JldHVybiBfLksoImRpdiIse2NsYXNzOnIsc3R5bGU6Xy5JRSh7d2lkdGg6KDAsXy5aSykoKCk9PnAoKS53aWR0aCksaGVpZ2h0OigwLF8uWkspKCgpPT4KcCgpLmhlaWdodCksdG9wOigwLF8uWkspKCgpPT5wKCkudG9wKSxsZWZ0Ol8ueSgpLnJlc29sdmUoXy5sRik9PT0ibHRyIj8oMCxfLlpLKSgoKT0+cCgpLmxlZnQpOiJhdXRvIixyaWdodDpfLnkoKS5yZXNvbHZlKF8ubEYpPT09InJ0bCI/KDAsXy5aSykoKCk9PihmPy4oKS5nZXRTaXplKCk/LndpZHRoPz8wKS1wKCkubGVmdC1wKCkud2lkdGgpOiJhdXRvIn0pLCJvbjptb3VzZW92ZXIiOmZ1bmN0aW9uKHQpe2UoYSgpLmlkKTt0LnN0b3BQcm9wYWdhdGlvbigpfSwib246bW91c2VvdXQiOmZ1bmN0aW9uKHQpe2UoIiIpO3Quc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjpmb2N1c2luIjpmdW5jdGlvbih0KXtzZXRUaW1lb3V0KCgpPT57ZShhKCkuaWQpfSwwKTt0LnN0b3BQcm9wYWdhdGlvbigpfSwib246Zm9jdXNvdXQiOmZ1bmN0aW9uKHQpe2UoIiIpO3Quc3RvcFByb3BhZ2F0aW9uKCl9LCJvbjp0b3VjaHN0YXJ0IjpmdW5jdGlvbih0KXtlKGEoKS5pZCk7WVMobCgpKTt0LnN0b3BQcm9wYWdhdGlvbigpfSwKIm9uOmNsaWNrIjpmdW5jdGlvbih0KXtZUyhsKCkpO3Quc3RvcFByb3BhZ2F0aW9uKCl9fSxfLksoXy5FRSxudWxsLF8uSyhfLkNFLHt3aGVuOigpPT5hKCkuc3R5bGU9PT0iVklERU8ifHxhKCkuc3R5bGU9PT0iUExBWUxJU1QifSwoKT0+Xy5LKGhXLHtlbmRzY3JlZW5FbGVtZW50UmVuZGVyZXI6YSxpc0FjdGl2ZTpjLFhoOmR9KSksXy5LKF8uQ0Use3doZW46KCk9PmEoKS5zdHlsZT09PSJDSEFOTkVMInx8YSgpLnN0eWxlPT09IldFQlNJVEUifSwoKT0+Xy5LKGdXLHtlbmRzY3JlZW5FbGVtZW50UmVuZGVyZXI6YSxpc0FjdGl2ZTpjLFhoOmR9KSkpKX0sIlZkIik7a1cuaWRvbUNvbXBhdD0hMDt2YXIgWW1hPV8uTChhPT57ZnVuY3Rpb24gYih6KXt2YXIgRT1mKCk/Lm5leHRCdXR0b24/LmJ1dHRvblJlbmRlcmVyPy5uYXZpZ2F0aW9uRW5kcG9pbnQsQT1mKCk/LnZpZGVvSWQ7RSYmIXo/Xy55KCkucmVzb2x2ZShfLlVEKS5yZXNvbHZlQ29tbWFuZChFKTpBJiZhLkgoKT8ubG9hZFZpZGVvQnlQbGF5ZXJWYXJzKHt2aWRlb0lkOkEsYXV0b25hdjp6LGF1dG9wbGF5Onp9KX1mdW5jdGlvbiBjKHope1hTKDExNTEzMCk7YighMSk7ei5zdG9wUHJvcGFnYXRpb24oKX12YXIgW2QsZV09Xy5KKDAsdm9pZCAwLCJZYkRNZmIiKSxmPV8uTigoKT0+QlMoYS53YXRjaE5leHRSZXNwb25zZT8uKCkpLHZvaWQgMCwiSGFGS01iIiksaD1hLkcsaz1fLk4oKCk9PmgoKS55Zix2b2lkIDAsInNZZ256ZSIpLGw9Xy5OKCgpPT5oKCkuemYsdm9pZCAwLCJkeUN2S2YiKSxtPV8uTigoKT0+bVUoYS5HLGYoKSksdm9pZCAwLCJDWkZvTWIiKSxuPV8udkUoImJ1dHRvbiIsej0+e3omJldTKHosMTE1MTMwKX0pLApwPV8udkUoImRpdiIsej0+e3omJldTKHosMTE1MTI5KX0pO18ubkUoKCk9Pnt2YXIgej1tKCksRT1sKCksQT1rKCksRj1hLkgoKSxDPWYoKTtpZih6KXt6PUM/LmNvdW50RG93blNlY3N8fDEwO3ZhciBHPXoqMUUzO2lmKEUmJkE+MCllKE1hdGgubWF4KDAsKHotQSkveikpO2Vsc2V7dmFyIEQ9KDAsXy5lbCkoKSxIPSgpPT57dmFyIE09KDAsXy5lbCkoKS1EO009TWF0aC5taW4oTS9HLDEpO2UoTSk7TT49MT8od2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKFIpLEY/LmlzUmVhZHk/LigpJiZiKCEwKSk6Uj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKEgpfTt2YXIgUj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKEgpO18uWXUoKCk9Pnt3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoUil9KX19ZWxzZSBlKDApfSwiR1NPdHdiIik7dmFyIHI9KCk9PntYUygxMTUxMjkpO2EuRygpLlMoe3hmOiEwfSl9LHQ9Xy5OKCgpPT5gJHstMjExKihkKCkrMSl9YCx2b2lkIDAsIlY1c213ZCIpLAp2PSgpPT5mKCk/LmJhY2tncm91bmQ7cmV0dXJuIF8uSygicGZwLWF1dG9uYXYiLHtjbGFzczpfLlAoInl0UGZwQXV0b25hdkhvc3QiLGEuY2xhc3NOYW1lLHt5dFBmcEF1dG9uYXZWaXNpYmxlOm19KSwib246Y2xpY2siOmZ1bmN0aW9uKHope3ouc3RvcFByb3BhZ2F0aW9uKCl9fSxfLksoXy5PLHtBOm0sdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoR1Yse0c6YS5HLHRodW1ibmFpbERldGFpbHM6dn0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0UGZwQXV0b25hdlNjcmltIn0sXy5LKCJkaXYiLHtjbGFzczoieXRQZnBBdXRvbmF2SGVhZGVyIn0sXy5LKF8uVix7dGV4dDooKT0+ZigpPy50aXRsZSxtYTohMH0pKSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcEF1dG9uYXZUaXRsZSJ9LF8uSyhfLlYse3RleHQ6KCk9PmYoKT8udmlkZW9UaXRsZSxtYTohMH0pKSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcEF1dG9uYXZCeWxpbmUifSxfLksoXy5WLHt0ZXh0OigpPT5mKCk/LmJ5bGluZSxtYTohMH0pKSwKXy5LKCJidXR0b24iLHtjbGFzczoieXRQZnBBdXRvbmF2UGxheUJ1dHRvbiIsIm9uOmNsaWNrIjpjLGVsOm4sImFyaWEtbGFiZWwiOigpPT5mKCk/Lm5leHRCdXR0b24/LmJ1dHRvblJlbmRlcmVyPy5hY2Nlc3NpYmlsaXR5Py5sYWJlbH0sXy5LKCJzdmciLHtjbGFzczoieXRQZnBBdXRvbmF2UmluZyIsdmlld0JveDoiMCAwIDcyIDcyIn0sXy5LKCJjaXJjbGUiLHtjeDoiMzYiLGN5OiIzNiIscjoiMzEuNSIsZmlsbDoid2hpdGUiLCJmaWxsLW9wYWNpdHkiOiIwLjMifSksXy5LKCJjaXJjbGUiLHtjeDoiLTM2IixjeToiMzYiLHI6IjMzLjUiLHN0cm9rZToid2hpdGUiLCJzdHJva2Utd2lkdGgiOiI0IixmaWxsOiJub25lIix0cmFuc2Zvcm06InJvdGF0ZSgtOTApIiwic3Ryb2tlLWRhc2hhcnJheSI6IjIxMSIsc3R5bGU6Xy5JRSh7InN0cm9rZS1kYXNob2Zmc2V0Ijp0fSl9KSksXy5LKF8uTUQse2ljb246IlBMQVlFUl9QTEFZIixjbGFzc05hbWU6Inl0UGZwQXV0b25hdlBsYXlJY29uIn0pKSwKXy5LKF8uVyx7ZGF0YTooKT0+ZigpPy5jYW5jZWxCdXR0b259LHtidXR0b25SZW5kZXJlcjooe2RhdGE6en0pPT5fLksoImRpdiIse2VsOnAsY2xhc3M6Inl0UGZwQXV0b25hdkNhbmNlbEJ1dHRvbiJ9LF8uSyhfLnBPLHtkYXRhOnosdGc6cixzdG9wUHJvcGFnYXRpb246ITAsYnV0dG9uT3ZlcnJpZGVzOntzdHlsZToib3ZlcmxheSJ9fSkpfSkpKX0pKX0sIlhkIik7dmFyIG1XPV8uTChhPT5fLksoInBmcC1lbmRzY3JlZW4tdmlkZW8tcmVuZGVyZXIiLHtjbGFzczpfLlAoInl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlckhvc3QiLGEuY2xhc3NOYW1lKX0sXy5LKF8ubkgse2NvbW1hbmQ6KCk9PmEuZGF0YSgpLm5hdmlnYXRpb25FbmRwb2ludCxhcmlhTGFiZWw6KCk9Pl8uYU4oYS5kYXRhKCkudGl0bGUpfSxfLksoXy5VUCx7dGh1bWJuYWlsRGV0YWlsczooKT0+YS5kYXRhKCkudGh1bWJuYWlsLGNsYXNzTmFtZToieXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVyVGh1bWJuYWlsIn0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0UGZwRW5kc2NyZWVuVmlkZW9SZW5kZXJlck92ZXJsYXkifSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcEVuZHNjcmVlblZpZGVvUmVuZGVyZXJPdmVybGF5VGl0bGVCeWxpbmUifSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcEVuZHNjcmVlblZpZGVvUmVuZGVyZXJUaXRsZSJ9LF8uSyhfLlYse3RleHQ6KCk9PmEuZGF0YSgpLnRpdGxlLAptYTohMCx5YzohMH0pKSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcEVuZHNjcmVlblZpZGVvUmVuZGVyZXJCeWxpbmUifSxfLksoXy5WLHt0ZXh0OigpPT5hLmRhdGEoKS5zaG9ydEJ5bGluZVRleHQsbWE6ITAseWM6ITB9KSxfLksoXy5PLHtBOigpPT5hLmRhdGEoKS5zaG9ydFZpZXdDb3VudFRleHQsdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCwiIFx1MjAyMiAiLF8uSyhfLlYse3RleHQ6KCk9PmEuZGF0YSgpLnNob3J0Vmlld0NvdW50VGV4dCxtYTohMH0pKX0pKSksXy5LKCJkaXYiLHtjbGFzczoieXRQZnBFbmRzY3JlZW5WaWRlb1JlbmRlcmVyRHVyYXRpb24ifSxfLksoXy5WLHt0ZXh0OigpPT5hLmRhdGEoKS5sZW5ndGhUZXh0LG1hOiEwfSkpKSkpLCJZZCIpO3ZhciBabWE9Xy5MKGE9PntmdW5jdGlvbiBiKEQpe0Quc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gYyhEKXt0KCExKTtELnN0b3BQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIGQoRCl7dCghMCk7RD8uc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gZSgpe0coKX1mdW5jdGlvbiBmKEQpe3ZhciBIPUYudmFsdWU7SCYmKEguc2Nyb2xsVG8oe2xlZnQ6SC5zY3JvbGxMZWZ0LUguY2xpZW50V2lkdGgqLjgsYmVoYXZpb3I6InNtb290aCJ9KSxELnN0b3BQcm9wYWdhdGlvbigpKX1mdW5jdGlvbiBoKEQpe3ZhciBIPUYudmFsdWU7SCYmKEguc2Nyb2xsVG8oe2xlZnQ6SC5zY3JvbGxMZWZ0K0guY2xpZW50V2lkdGgqLjgsYmVoYXZpb3I6InNtb290aCJ9KSxELnN0b3BQcm9wYWdhdGlvbigpKX12YXIgaz1fLk4oKCk9PmEuVWMoKS53YXRjaE5leHRSZXNwb25zZSx2b2lkIDAsIldYNlJCZSIpLGw9Xy5OKCgpPT5NUyhrKCkpLmZpbHRlcihEPT5ELmVuZFNjcmVlblZpZGVvUmVuZGVyZXIpLHZvaWQgMCwKIlZWVWRyYyIpLG09Xy5OKCgpPT57dmFyIEQ9YS5VYygpLnBsYXllclJlc3BvbnNlPy5lbmRzY3JlZW4/LmVuZHNjcmVlblJlbmRlcmVyPy5zdGFydE1zO0Q9RD8rRDp2b2lkIDA7cmV0dXJuIGEuRygpLnBsYXllclN0YXRlPT09MiYmbD8uKCk/Lmxlbmd0aD4wJiYoIUR8fGEuRygpLnZhKjFFMzxEKX0sdm9pZCAwLCJwUVNRS2IiKSxuPV8uTigoKT0+YS5VYygpLnBsYXllclJlc3BvbnNlPy52aWRlb0RldGFpbHM/LnZpZGVvSWQsdm9pZCAwLCJ5UWJOMWUiKSxbcCxyXT1fLkFDKCgpPT57bigpO3JldHVybiExfSksdD1yLFt2LHpdPV8uSighMSx2b2lkIDAsInFRUjczYiIpLFtFLEFdPV8uSighMSx2b2lkIDAsInZjYTNJZCIpLEY9Xy52RSgiZGl2IiksQz1fLk4oKCk9PmEuVWMoKS5wbGF5ZXJSZXNwb25zZT8udmlkZW9EZXRhaWxzPy5hdXRob3I/PyIiLHZvaWQgMCwib0pFMHNkIiksRz0oKT0+e3ZhciBEPUYudmFsdWU7RCYmKHooRC5zY3JvbGxMZWZ0PjEpLEEoRC5zY3JvbGxMZWZ0PApELnNjcm9sbFdpZHRoLUQuY2xpZW50V2lkdGgtMSkpfTtfLm5FKCgpPT57cCgpO20oKSYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57RygpfSl9LCJ0QTExN2QiKTtyZXR1cm4gXy5LKCJwZnAtbW9yZS12aWRlb3MiLHtjbGFzczpfLlAoInl0UGZwTW9yZVZpZGVvc0hvc3QiLGEuY2xhc3NOYW1lKX0sXy5LKF8uTyx7QTooKT0+bSgpJiYhcCgpLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0UGZwTW9yZVZpZGVvc092ZXJsYXkiLCJvbjpjbGljayI6Yn0sXy5LKCJkaXYiLHtjbGFzczoieXRQZnBNb3JlVmlkZW9zSGVhZGVyIn0sXy5LKCJoMyIse2NsYXNzOiJ5dFBmcE1vcmVWaWRlb3NUaXRsZSJ9LCgpPT5fLiROLnp0LnJlcGxhY2UoIiRjaGFubmVsX25hbWVfcGxhY2Vob2xkZXIiLEMoKSkpLF8uSygiYnV0dG9uIix7Y2xhc3M6Inl0UGZwTW9yZVZpZGVvc0Nsb3NlQnV0dG9uIiwib246Y2xpY2siOmQsImFyaWEtbGFiZWwiOl8uJE4ueHR9LF8uSyhfLk1ELHtpY29uOiJDTE9TRSIsCmNsYXNzTmFtZToieXRQZnBNb3JlVmlkZW9zQ2xvc2VJY29uIn0pKSksXy5LKCJkaXYiLHtjbGFzczoieXRQZnBNb3JlVmlkZW9zVmlkZW9MaXN0Q29udGFpbmVyIn0sXy5LKF8uTyx7QTp2LHRoZW46KCk9Pl8uSygiYnV0dG9uIix7Y2xhc3M6Inl0UGZwTW9yZVZpZGVvc1BhZGRsZUxlZnQiLCJvbjpjbGljayI6ZiwiYXJpYS1sYWJlbCI6Xy4kTi5mb30sXy5LKF8uTUQse2ljb246IkNIRVZST05fTEVGVCIsY2xhc3NOYW1lOiJ5dFBmcE1vcmVWaWRlb3NQYWRkbGVJY29uIn0pKX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0UGZwTW9yZVZpZGVvc1ZpZGVvTGlzdCIsZWw6Riwib246c2Nyb2xsIjplfSxfLksoXy5XLHtkYXRhOmwsSGs6ITB9LHtlbmRTY3JlZW5WaWRlb1JlbmRlcmVyOih7ZGF0YTpEfSk9Pl8uSyhtVyx7ZGF0YTpELGNsYXNzTmFtZToieXRQZnBNb3JlVmlkZW9zVmlkZW9JdGVtIn0pfSkpLF8uSyhfLk8se0E6RSx0aGVuOigpPT5fLksoImJ1dHRvbiIse2NsYXNzOiJ5dFBmcE1vcmVWaWRlb3NQYWRkbGVSaWdodCIsCiJvbjpjbGljayI6aCwiYXJpYS1sYWJlbCI6Xy4kTi5lb30sXy5LKF8uTUQse2ljb246IkNIRVZST05fUklHSFQiLGNsYXNzTmFtZToieXRQZnBNb3JlVmlkZW9zUGFkZGxlSWNvbiJ9KSl9KSkpfSksXy5LKF8uTyx7QTooKT0+bSgpJiZwKCksdGhlbjooKT0+Xy5LKCJidXR0b24iLHtjbGFzczoieXRQZnBNb3JlVmlkZW9zTW9yZVZpZGVvc0J1dHRvbiIsIm9uOmNsaWNrIjpjLCJhcmlhLWxhYmVsIjpfLiROLmJvfSxfLiROLmJvKX0pKX0sIiRkIik7dmFyICRtYT1fLkwoYT0+Xy5LKCJwZnAtZW5kc2NyZWVuLXBsYXlsaXN0LXJlbmRlcmVyIix7Y2xhc3M6Xy5QKCJ5dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJIb3N0IixhLmNsYXNzTmFtZSl9LF8uSyhfLm5ILHtjb21tYW5kOigpPT5hLmRhdGEoKS5uYXZpZ2F0aW9uRW5kcG9pbnQsYXJpYUxhYmVsOigpPT5fLmFOKGEuZGF0YSgpLnRpdGxlKX0sXy5LKF8uVVAse3RodW1ibmFpbERldGFpbHM6KCk9PmEuZGF0YSgpLnRodW1ibmFpbCxjbGFzc05hbWU6Inl0UGZwRW5kc2NyZWVuUGxheWxpc3RSZW5kZXJlclRodW1ibmFpbCJ9KSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJPdmVybGF5In0sXy5LKCJkaXYiLHtjbGFzczoieXRQZnBFbmRzY3JlZW5QbGF5bGlzdFJlbmRlcmVyT3ZlcmxheVRpdGxlIn0sXy5LKCJkaXYiLHtjbGFzczoieXRQZnBFbmRzY3JlZW5QbGF5bGlzdFJlbmRlcmVyVGl0bGUifSxfLksoXy5WLHt0ZXh0OigpPT5hLmRhdGEoKS50aXRsZSwKbWE6ITB9KSkpKSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJCb3R0b21PdmVybGF5In0sXy5LKF8uTUQse2ljb246IlBMQVlMSVNUUyIsY2xhc3NOYW1lOiJ5dFBmcEVuZHNjcmVlblBsYXlsaXN0UmVuZGVyZXJJY29uIn0pLF8uSyhfLlYse3RleHQ6KCk9PmEuZGF0YSgpLnZpZGVvQ291bnRUZXh0LHljOiEwfSkpKSksImFlIik7dmFyIGFuYT1fLkwoYT0+e2Z1bmN0aW9uIGIoRil7Ri5zdG9wUHJvcGFnYXRpb24oKTtGPXooKS5sZW5ndGg7bSgobCgpLXIoKStGKnIoKSklRil9ZnVuY3Rpb24gYyhGKXtGLnN0b3BQcm9wYWdhdGlvbigpO0Y9eigpLmxlbmd0aDttKChsKCkrcigpKSVGKX12YXIgZD1fLnZFKCJkaXYiKSxbZSxmXT1fLkooW10sdm9pZCAwLCJFclVRSWUiKSxbaCxrXT1fLkooMCx2b2lkIDAsIldNZVlvZCIpLGw9aCxtPWssW24scF09Xy5KKDAsdm9pZCAwLCJPelBTa2UiKSxyPW4sW3QsLHZdPV8uSigwLHZvaWQgMCwibENUbXBlIik7Xy5EUCgicmVzaXplIiwoKT0+e3YoRj0+RisxKX0pO3ZhciB6PV8uTigoKT0+TVMoYS53YXRjaE5leHRSZXNwb25zZT8uKCkpLHZvaWQgMCwicnkyRFQiKSxFPV8uTigoKT0+blUoYS5HLGEud2F0Y2hOZXh0UmVzcG9uc2U/LigpKSx2b2lkIDAsIkZoVVpyIiksQT1fLk4oKCk9PnIoKSYmeigpLmxlbmd0aD5yKCksdm9pZCAwLCJVd0VjNWIiKTtfLm5FKCgpPT57dCgpOwp2YXIgRj16KCksQz1sKCk7aWYoRSgpJiZkLnZhbHVlKWlmKEYubGVuZ3RoKXt2YXIgRz1kLnZhbHVlLEQ9Ry5jbGllbnRXaWR0aDtHPUcuY2xpZW50SGVpZ2h0O2xldCBUPUYubGVuZ3RoO2Zvcih2YXIgSD0yLFI9MixNPU1hdGgubWF4KEQvOTYsMiksUz1NYXRoLm1heChHLzU0LDIpLFk9KFQtMSkqNDtZPjAmJihIPE18fFI8Uyk7KXt2YXIgcGE9SC8yLG9hPVIvMixVPUg8PU0tMiYmWT49b2EqNCxoYT1SPD1TLTImJlk+PXBhKjQ7aWYoKHBhKzEpL29hKm5XLyhEL0cpPkQvRy8ocGEvKG9hKzEpKm5XKSYmaGEpWS09cGEqNCxSKz0yO2Vsc2UgaWYoVSlZLT1vYSo0LEgrPTI7ZWxzZSBpZihoYSlZLT1wYSo0LFIrPTI7ZWxzZSBicmVha31sZXQge2NvbHVtbkNvdW50OmJhLFl6OmFhLFJ6Ok9hfT17Y29sdW1uQ291bnQ6SCxZejpSLFJ6Oll9O0g9ITE7T2E+PTEyJiZUKjQtT2E8PTYmJihhYT49NHx8YmE+PTQpJiYoSD0hMCk7Uj1iYSo5NjtNPWFhKjU0O1M9TWF0aC5taW4oUi9NPEQvRz8KRy9NOkQvUiwyKTtSPU1hdGguZmxvb3IoTWF0aC5taW4oRCxSKlMpKTtNPU1hdGguZmxvb3IoTWF0aC5taW4oRyxNKlMpKTtsZXQge1NBOkpiLFJBOnphfT17U0E6UixSQTpNfTtSPUpiKzQ7TT16YSs0O1M9MDtZPVtdO2ZvcihwYT0wO3BhPGJhO3BhKyspZm9yKG9hPTA7b2E8YWE7b2ErKylpZihVPTAsSCYmcGE+PWJhLTImJm9hPj1hYS0yP1U9MTpvYSUyPT09MCYmcGElMj09PTAmJihVPTIpLGhhPVMlVCxVIT09MCl7bGV0IExiPU1hdGguZmxvb3IoTSpvYS9hYSksY2M9TWF0aC5mbG9vcihSKnBhL2JhKTtZLnB1c2goe2RhdGE6RlsoaGErQyklVF0sbGVmdDpjYysoRC1KYikvMix0b3A6TGIrKEctemEpLzIsd2lkdGg6TWF0aC5mbG9vcihSKihwYStVKS9iYSktY2MtNCxoZWlnaHQ6TWF0aC5mbG9vcihNKihvYStVKS9hYSktTGItNH0pO1MrK312YXIge1N5Om1hLGluZGV4OnRhfT17U3k6WSxpbmRleDpTfTtmKG1hKTtwKHRhKX1lbHNlIGYoW10pfSwid2VZNEIiKTtyZXR1cm4gXy5LKCJwZnAtdmlkZW8td2FsbC1lbmRzY3JlZW4iLAp7Y2xhc3M6Xy5QKCJ5dFBmcFZpZGVvV2FsbEVuZHNjcmVlbkhvc3QiLGEuY2xhc3NOYW1lLHt5dFBmcFZpZGVvV2FsbEVuZHNjcmVlblZpc2libGU6RSx5dFBmcFZpZGVvV2FsbEVuZHNjcmVlbklzT2JzY3VyZWQ6YS5VeH0pLCJvbjpjbGljayI6ZnVuY3Rpb24oRil7Ri5zdG9wUHJvcGFnYXRpb24oKX19LF8uSyhfLk8se0E6RSx0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dFBmcFZpZGVvV2FsbEVuZHNjcmVlblZpZGVvTGlzdENvbnRhaW5lciJ9LF8uSyhfLk8se0EsdGhlbjooKT0+Xy5LKCJidXR0b24iLHtjbGFzczoieXRQZnBWaWRlb1dhbGxFbmRzY3JlZW5QYWRkbGVMZWZ0Iiwib246Y2xpY2siOmIsImFyaWEtbGFiZWwiOl8uJE4uZm99LF8uSyhfLk1ELHtpY29uOiJDSEVWUk9OX0xFRlQiLGNsYXNzTmFtZToieXRQZnBWaWRlb1dhbGxFbmRzY3JlZW5QYWRkbGVJY29uIn0pKX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0UGZwVmlkZW9XYWxsRW5kc2NyZWVuVmlkZW9MaXN0IiwKZWw6ZH0sXy5LKF8uZ0cse3BhOmV9LEY9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0UGZwVmlkZW9XYWxsRW5kc2NyZWVuVmlkZW9JdGVtIixzdHlsZTpfLklFKHt0b3A6KDAsXy5aSykoKCk9PkYudG9wKSxsZWZ0OigwLF8uWkspKCgpPT5GLmxlZnQpLHdpZHRoOigwLF8uWkspKCgpPT5GLndpZHRoKSxoZWlnaHQ6KDAsXy5aSykoKCk9PkYuaGVpZ2h0KX0pfSxfLksoXy5XLHtkYXRhOigpPT5GLmRhdGF9LHtlbmRTY3JlZW5WaWRlb1JlbmRlcmVyOm1XLGVuZFNjcmVlblBsYXlsaXN0UmVuZGVyZXI6JG1hfSkpKSksXy5LKF8uTyx7QSx0aGVuOigpPT5fLksoImJ1dHRvbiIse2NsYXNzOiJ5dFBmcFZpZGVvV2FsbEVuZHNjcmVlblBhZGRsZVJpZ2h0Iiwib246Y2xpY2siOmMsImFyaWEtbGFiZWwiOl8uJE4uZW99LF8uSyhfLk1ELHtpY29uOiJDSEVWUk9OX1JJR0hUIixjbGFzc05hbWU6Inl0UGZwVmlkZW9XYWxsRW5kc2NyZWVuUGFkZGxlSWNvbiJ9KSl9KSl9KSl9LCJjZSIpLG5XPTk2LzU0O3ZhciBvVz1fLkwoKHtqZTphfSk9Pnt2YXIgYj1fLk4oKCk9PmEoKSx2b2lkIDAsIkVUZ2U3ZCIpLFtjLCxkXT1fLkooMCx2b2lkIDAsIlpDQklzIik7Xy5uRSgoKT0+e2IoKSYmZChlPT5lKzEpfSwiS3NYM3JmIik7cmV0dXJuIF8uSygicGxheWVyLWFjdGlvbi1pbmRpY2F0b3IiLHtjbGFzczoieXRQbGF5ZXJDb250cm9sc1BsYXllckFjdGlvbkluZGljYXRvckhvc3QifSxfLksoXy5nRyx7cGE6KCk9PmIoKT9bYygpXTpbXX0sKCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0UGxheWVyQ29udHJvbHNQbGF5ZXJBY3Rpb25JbmRpY2F0b3JBY3Rpb24ifSxfLksoXy5NRCx7aWNvbjpiLGNsYXNzTmFtZToieXRQbGF5ZXJDb250cm9sc1BsYXllckFjdGlvbkluZGljYXRvckljb24ifSkpKSl9LCJlZSIpO29XLmlkb21Db21wYXQ9ITA7dmFyIHBXPV8uTCgoe0c6YSxTbTpiLHBsYXllck92ZXJsYXlSZW5kZXJlcjpjLFZ3OmQsY2xhc3NOYW1lOmV9KT0+e3ZhciBmPSgpPT5fLkIoYj8uKCk/LnBsYXllckJhckFjdGlvbkJ1dHRvbixfLlZMKTtyZXR1cm4gXy5LKCJwbGF5ZXItdGltZS1kaXNwbGF5Iix7Y2xhc3M6Xy5QKCJ5dHdQbGF5ZXJUaW1lRGlzcGxheUhvc3QiLGUpfSxfLksoImRpdiIse2NsYXNzOl8uUCgieXR3UGxheWVyVGltZURpc3BsYXlUaW1lQ2h1bmtzIix7eXR3UGxheWVyVGltZURpc3BsYXlQaWxsOigpPT4hZD8uKCkseXR3UGxheWVyVGltZURpc3BsYXlMaXZlRG90OigpPT5hKCkuaXNMaXZlLHl0d1BsYXllclRpbWVEaXNwbGF5TGl2ZUhlYWQ6KCk9Pm9VKGEoKSl9KSwib246Y2xpY2siOmZ1bmN0aW9uKGgpe2lmKGEoKS5pc0xpdmUmJiFvVShhKCkpKXthKCkuSD8uc2Vla1RvKEluZmluaXR5KTt2YXIgaz1VUShhKCkuSCk7ayYmYSgpLlMoe3ZpZGVvRHVyYXRpb246a30pfWguc3RvcFByb3BhZ2F0aW9uKCl9fSwKXy5LKCJkaXYiLHtkaXI6Imx0ciJ9LF8uSyhibmEse0c6YSxwbGF5ZXJPdmVybGF5UmVuZGVyZXI6Y30pLF8uSyhfLk8se0E6KCk9PiFvVShhKCkpLHRoZW46KCk9Pl8uSyhjbmEse0c6YX0pfSkpKSxfLksoXy5PLHtBOigpPT57dmFyIGg9Xy5CKGI/LigpPy5wbGF5ZXJCYXIsRFMpP18uQihrVChhKCksXy5CKGI/LigpPy5wbGF5ZXJCYXIsRFMpKSxlVCk/LnRpdGxlOnZvaWQgMCxrPWYoKT8udGV4dDtyZXR1cm4gaD8/a30sdGhlbjpoPT5fLksoZG5hLHt0aXRsZTpoLGJ1dHRvbjpmLEc6YX0pfSkpfSwiZmUiKSxibmE9Xy5MKCh7RzphLHBsYXllck92ZXJsYXlSZW5kZXJlcjpifSk9Pnt2YXIgYz0oKT0+YSgpLmlzTGl2ZT9fLiROLmxvOkNUKGEoKS52YSk7cmV0dXJuIF8uSygic3BhbiIse2NsYXNzOiJ5dHdQbGF5ZXJUaW1lRGlzcGxheVRpbWVFbGFwc2VkIn0sXy5LKCJzcGFuIix7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LF8uSyhfLk8se0E6KCk9PmI/LigpPy5saXZlSW5kaWNhdG9yVGV4dCwKdGhlbjpkPT5fLksoXy5WLHt0ZXh0OmR9KSxXOigpPT5fLksoXy5JQixudWxsLGMpfSkpLF8uSygic3BhbiIse2NsYXNzOiJ5dHdQbGF5ZXJUaW1lRGlzcGxheVNjcmVlblJlYWRlck9ubHkifSwoKT0+e2lmKGEoKS5pc0xpdmUpcmV0dXJuIF8uJE4ubG87dmFyIGQ9UFIoe3NlY29uZHM6YSgpLnZhfSk7cmV0dXJuYCR7Xy4kTi5WdH0gJHtkfWB9KSl9LCJnZSIpLGNuYT1fLkwoKHtHOmF9KT0+e3ZhciBiPSgpPT57aWYob1UoYSgpKSl2YXIgYz0wO2Vsc2V7Yz1NYXRoO3ZhciBkPWMucm91bmQsZT1hKCk7Yz1kLmNhbGwoYyxlLmlzRHJhZ2dpbmc/ZS5DYTplLnZhKS1NYXRoLnJvdW5kKFVRKGEoKS5IKSl9cmV0dXJuIGN9O3JldHVybiBfLksoXy5JQixudWxsLF8uSygic3BhbiIse2NsYXNzOiJ5dHdQbGF5ZXJUaW1lRGlzcGxheVRpbWVTZWNvbmQifSksXy5LKCJzcGFuIix7Y2xhc3M6Inl0d1BsYXllclRpbWVEaXNwbGF5VGltZURlbGltaXRlciIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LAoiLyIpLF8uSygic3BhbiIse2NsYXNzOl8uUCgieXR3UGxheWVyVGltZURpc3BsYXlUaW1lU2Vjb25kIiwieXR3UGxheWVyVGltZURpc3BsYXlUaW1lRHVyYXRpb24iKX0sXy5LKCJzcGFuIix7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LCgpPT5hKCkuaXNMaXZlP0NUKGIoKSk6Q1QoYSgpLnZpZGVvRHVyYXRpb24pKSxfLksoInNwYW4iLHtjbGFzczoieXR3UGxheWVyVGltZURpc3BsYXlTY3JlZW5SZWFkZXJPbmx5In0sKCk9PntpZihhKCkuaXNMaXZlKXJldHVybiBDVChiKCkpO3ZhciBjPVBSKHtzZWNvbmRzOmEoKS52aWRlb0R1cmF0aW9ufSk7cmV0dXJuYCR7Xy4kTi5VdH0gJHtjfWB9KSkpfSwiaGUiKSxkbmE9Xy5MKCh7dGl0bGU6YSxidXR0b246YixHOmN9KT0+e2Z1bmN0aW9uIGQoZil7Yj8uKCk/LmNvbW1hbmQmJihfLkFKKGIoKS5jb21tYW5kLHt9LCExKSxmLnN0b3BQcm9wYWdhdGlvbigpKX12YXIgZT1fLk4oKCk9PmMoKS5iYT8uRWUsdm9pZCAwLCJqZzJPTWMiKTtyZXR1cm4gXy5LKF8uTywKe0E6Yix0aGVuOmY9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0d1BsYXllclRpbWVEaXNwbGF5UGxheWVyQmFyQWN0aW9uQ29udGFpbmVyIn0sXy5LKCJidXR0b24iLHtjbGFzczpfLlAoInl0d1BsYXllclRpbWVEaXNwbGF5UGlsbCIsInl0d1BsYXllclRpbWVEaXNwbGF5UGxheWVyQmFyQnV0dG9uIiksIm9uOmNsaWNrIjpkLCJhcmlhLWxhYmVsIjooKT0+Xy5hTihmKCkudGV4dCl9LF8uSyhfLlYse3RleHQ6YSx5YzohMH0pLF8uSyhfLk8se0E6KCk9PiEoXy54KCJtd2ViX3VzZV9vbmx5X2NoYXB0ZXJfdGl0bGVfaW5fZnVsbHNjcmVlbiIpJiZjKCkuaXNGdWxsc2NyZWVuKSx0aGVuOigpPT5fLksoXy5NRCx7aWNvbjoiQ0hFVlJPTl9SSUdIVF9DQUlSTyIsY2xhc3NOYW1lOiJ5dHdQbGF5ZXJUaW1lRGlzcGxheUNoZXZyb24ifSl9KSkpLFc6KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dHdQbGF5ZXJUaW1lRGlzcGxheUNoYXB0ZXJUZXh0Iix7eXR3UGxheWVyVGltZURpc3BsYXlGdWxsc2NyZWVuQ29udHJvbHNBbHdheXNPbjplfSl9LApfLksoXy5WLHt0ZXh0OmEseWM6ITB9KSl9KX0sImllIik7dmFyIHFXPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQpe3RoaXMuZ249YTt0aGlzLmxpc3RlbmVycz1bXTt0aGlzLmNvbnRleHQ9Yjt0aGlzLm89ZDt0aGlzLnY9cVUodGhpcy5VYz8uSCk7dGhpcy5EPXRoaXMuUy5iaW5kKHRoaXMpO3RoaXMuc3RhdGU9ey4uLmRUKCksLi4uY307YT10aGlzLnVkKCk7W3RoaXMuQix0aGlzLmpdPV8uSihhLHZvaWQgMCwicDNOd3EiKX1TKGEpe2lmKCFxbGEoYSx0aGlzLnN0YXRlKSl7dGhpcy5zdGF0ZT17Li4udGhpcy5zdGF0ZSwuLi5hfTthPV8ueCgicGxheWVyX2NvbnRyb2xzX2xvZ19jcmVhdGlvbl9lbmFibGVkIik7dmFyIGI9LTE7YSYmIXBVKCkmJihiPSgwLF8uZWwpKCkpO2EmJl8uQXEoInBjdV9zIik7dGhpcy5qJiZ0aGlzLmoodGhpcy51ZCgpKTthJiYoXy5BcSgicGN1X3NlIiksXy5BcSgicGN1X3JzIikpO3RoaXMuZ24odGhpcy51ZCgpKTthJiYoXy5BcSgicGN1X3JlIikscGxhKGIpLF8uamYuR2EoKCk9PntfLkFxKCJwY3VfYXAiKX0sCjgpKX19dWQoKXt2YXIgYT10aGlzLm8/cVUodGhpcy5vKCkpOnFVKHRoaXMuVWM/LkgpO3JldHVybnsuLi50aGlzLnN0YXRlLFM6dGhpcy5ELEg6YSx0YTp0aGlzLmNvbnRleHQudGEsVGM6dGhpcy5jb250ZXh0LlRjLEdjOnRoaXMuY29udGV4dC5HYyxiYTp0aGlzLmNvbnRleHQuYmF9fWdldERhdGEoKXtyZXR1cm4gdGhpcy5VY319O3ZhciByVz1fLkwoYT0+e2Z1bmN0aW9uIGIoWSl7TT1ILmFuaW1hdGUoW3tvZmZzZXQ6MCxlYXNpbmc6ImN1YmljLWJlemllcigwLjIwLCAwLjAwLCAwLjYwLCAxLjAwKSIsb3BhY2l0eTpZfSx7b2Zmc2V0OjEsb3BhY2l0eToxfV0se2R1cmF0aW9uOjIwMCxmaWxsOiJmb3J3YXJkcyJ9KTtNLmFkZEV2ZW50TGlzdGVuZXIoImZpbmlzaCIsKCk9PntNPXZvaWQgMDtlKCk7Rj0ibGluZ2VyaW5nIn0pfWZ1bmN0aW9uIGMoWSxwYT0hMSxvYT0hMSl7dmFyIFU9W107VS5wdXNoKHtvZmZzZXQ6MCx0cmFuc2Zvcm06YHRyYW5zbGF0ZVgoJHtDPT09LTE/MjA6LTIwfXB4KWAsb3BhY2l0eTpwYT8iMCI6IjEifSk7cGEmJlUucHVzaCh7b2Zmc2V0Oi41LG9wYWNpdHk6IjEifSk7VS5wdXNoKHtvZmZzZXQ6MSx0cmFuc2Zvcm06InRyYW5zbGF0ZVgoMCkiLG9wYWNpdHk6IjEifSk7cGE9WS5hbmltYXRlKFUse2R1cmF0aW9uOjQwMCxlYXNpbmc6ImN1YmljLWJlemllcigwLjA1LCAwLjAwLCAwLjAwLCAxLjAwKSJ9KTsKWT1ZLnF1ZXJ5U2VsZWN0b3IoInBhdGgiKTtVPVtdO3ZhciBoYT17b2Zmc2V0OjAsZDpDPT09LTE/J3BhdGgoIk0gMTggNCBMIDE4IDE2IEwgMTggMjgiKSc6J3BhdGgoIk0gNCA0IEwgNCAxNiBMIDQgMjgiKSd9O29hJiYoaGEuZmlsdGVyPSJkcm9wLXNoYWRvdygwIDAgMC41cHggcmdiYSgwLCAwLCAwLCAwLjgpKSIpO1UucHVzaChoYSk7b2EmJlUucHVzaCh7b2Zmc2V0Oi44LGZpbHRlcjoiZHJvcC1zaGFkb3coMCAwIDAuNXB4IHJnYmEoMCwgMCwgMCwgMC44KSkifSk7aGE9e29mZnNldDoxLGQ6Qz09PS0xPydwYXRoKCJNIDE4IDQgTCA2IDE2IEwgMTggMjgiKSc6J3BhdGgoIk0gNCA0IEwgMTYgMTYgTCA0IDI4IiknfTtvYSYmKGhhLmZpbHRlcj0iZHJvcC1zaGFkb3coMCAwIDAuNXB4IHJnYmEoMCwgMCwgMCwgMCkpIik7VS5wdXNoKGhhKTtZLmFuaW1hdGUoVSx7ZHVyYXRpb246MzMzLGVhc2luZzoiY3ViaWMtYmV6aWVyKDAuMDUsIDAuMDAsIDAuMDAsIDEuMDApIixmaWxsOiJmb3J3YXJkcyJ9KTsKcmV0dXJuIHBhfWZ1bmN0aW9uIGQoKXt2YXIgWT1ILnF1ZXJ5U2VsZWN0b3IoIi55dHdQbGF5ZXJTZWVrT3ZlcmxheUFycm93UGVyc2lzdGVudCIpLmNsb25lTm9kZSghMCk7WS5jbGFzc0xpc3QuYWRkKCJ5dHdQbGF5ZXJTZWVrT3ZlcmxheUFycm93QWRkaXRpb25hbCIpO1kuY2xhc3NMaXN0LnJlbW92ZSgieXR3UGxheWVyU2Vla092ZXJsYXlBcnJvd1BlcnNpc3RlbnQiKTtILmFwcGVuZENoaWxkKFkpO2MoWSwhMCwhMCkuYWRkRXZlbnRMaXN0ZW5lcigiZmluaXNoIiwoKT0+e1kucmVtb3ZlKCl9KX1mdW5jdGlvbiBlKCl7Y2xlYXJUaW1lb3V0KFIpO1I9c2V0VGltZW91dCgoKT0+e2YoKX0sXy5zaigid2ViX3BsYXllcl9zZWVrX292ZXJsYXlfbGluZ2VyX2R1cmF0aW9uIiwzMDApKX1mdW5jdGlvbiBmKFk9MSxwYT0hMCl7TT1ILmFuaW1hdGUoW3tvZmZzZXQ6MCxvcGFjaXR5Oll9LHtvZmZzZXQ6MSxvcGFjaXR5OjB9XSx7ZHVyYXRpb246MjAwLGZpbGw6ImZvcndhcmRzIixlYXNpbmc6ImN1YmljLWJlemllcigwLjIwLCAwLjAwLCAwLjYwLCAxLjAwKSJ9KTsKcGEmJihNLmFkZEV2ZW50TGlzdGVuZXIoImZpbmlzaCIsKCk9PntTPy4oKTtNPXZvaWQgMDtrKCk7QSghMSl9KSxGPSJmYWRpbmctb3V0Iil9ZnVuY3Rpb24gaCgpe2lmKCFNKXJldHVybiAwO3ZhciBZPU51bWJlcihnZXRDb21wdXRlZFN0eWxlKEgpLm9wYWNpdHkpO00uY2FuY2VsKCk7TT12b2lkIDA7cmV0dXJuIFl9ZnVuY3Rpb24gaygpe0Y9ImhpZGRlbiI7SD1DPXZvaWQgMDtjbGVhclRpbWVvdXQoUil9dmFyIGw9Xy5OKCgpPT5hLkcoKS5KZCx2b2lkIDAsInBkbG1ZYiIpLG09Xy5OKCgpPT5hLkcoKS5LYix2b2lkIDAsImFQUzlKIiksbj1fLk4oKCk9PmEuRygpLkgsdm9pZCAwLCJ4dkJybGYiKSxbcCxyXT1fLkooIiIsdm9pZCAwLCJWSnVnemQiKSxbdCx2XT1fLkooIiIsdm9pZCAwLCJZU0tTT2QiKSxbeixFXT1fLkooITEsdm9pZCAwLCJPc21pbmMiKSxBPUUsRj0iaGlkZGVuIixDLEcsRCxILFI9MCxNLFM7Xy5uRSgoKT0+e2lmKEVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGUpe3ZhciBZPQpsKCk7aWYoIShtKCk8PTF8fFk9PT0wKSl7QSghMCk7aWYoQyYmWSE9PUMpe2xldCBwYT0xO00mJihwYT1oKCkpO2YocGEsITEpO2soKX1DPVk7SD1DPT09LTE/RzpEO2lmKEcmJkQpaWYoWT1uKCksWT1ZPy5pc1JlYWR5Py4oKT9ZLmdldEN1cnJlbnRUaW1lKCk6MCxZPUM9PT0tMSYmWTw9MTA/MTA6KG0oKS0xKSoxMCxZPWAke0M9PT0tMT8iXHUyMjEyIjoiKyJ9ICR7WX1gLEM9PT0tMT9yKFkpOnYoWSksRj09PSJoaWRkZW4ifHxGPT09ImZhZGluZy1vdXQiKVk9MCxGPT09ImZhZGluZy1vdXQiJiYoWT1oKCksZCgpKSxiKFkpLEYhPT0iZmFkaW5nLW91dCImJmMoSC5xdWVyeVNlbGVjdG9yKCIueXR3UGxheWVyU2Vla092ZXJsYXlBcnJvd1BlcnNpc3RlbnQiKSksRj0iZmFkaW5nLWluIjtlbHNlIGlmKEY9PT0iZmFkaW5nLWluInx8Rj09PSJsaW5nZXJpbmciKUgucXVlcnlTZWxlY3RvcigiLnl0d1BsYXllclNlZWtPdmVybGF5RHVyYXRpb24iKS5hbmltYXRlKFt7b2Zmc2V0OjAsZWFzaW5nOiJjdWJpYy1iZXppZXIoMC4yMCwgMC4wMCwgMC42MCwgMS4wMCkiLAp0cmFuc2Zvcm06InNjYWxlKDEpIn0se29mZnNldDouNjQsZWFzaW5nOiJjdWJpYy1iZXppZXIoMC4yMCwgMC4wMCwgMC42MCwgMS4wMCkiLHRyYW5zZm9ybTpgc2NhbGUoJHtfLnNqKCJ3ZWJfcGxheWVyX3NlZWtfb3ZlcmxheV9kdXJhdGlvbl9idW1wX3NjYWxlIil8fC45fSlgfSx7b2Zmc2V0OjEsdHJhbnNmb3JtOiJzY2FsZSgxKSJ9XSx7ZHVyYXRpb246MTg0fSksZCgpLEY9PT0ibGluZ2VyaW5nIiYmZSgpfX19LCJoem55RCIpO18uWXUoKCk9PntoKCk7aygpfSk7cmV0dXJuIF8uSygieXR3LXBsYXllci1zZWVrLW92ZXJsYXkiLHtjbGFzczoieXR3UGxheWVyU2Vla092ZXJsYXlIb3N0IixzdHlsZTpfLklFKHtkaXNwbGF5OigpPT56KCk/ImJsb2NrIjoibm9uZSJ9KX0sXy5LKCJkaXYiLHtjbGFzczpfLlAoInl0d1BsYXllclNlZWtPdmVybGF5QW5pbWF0aW9uIiwieXR3UGxheWVyU2Vla092ZXJsYXlBbmltYXRpb25CYWNrIiksZWw6Xy5yRihZPT57Rz1ZfSl9LF8uSygiZGl2IiwKe2NsYXNzOl8uUCgieXR3UGxheWVyU2Vla092ZXJsYXlBcnJvdyIsInl0d1BsYXllclNlZWtPdmVybGF5QXJyb3dQZXJzaXN0ZW50Iil9LF8uSygic3ZnIix7dmlld0JveDoiMCAwIDIyIDMyIix3aWR0aDoiMjIiLGhlaWdodDoiMjQiLGNsYXNzOiJ5dHdQbGF5ZXJTZWVrT3ZlcmxheUFycm93U3ZnIn0sXy5LKCJwYXRoIix7Y2xhc3M6Inl0d1BsYXllclNlZWtPdmVybGF5QXJyb3dQYXRoIixkOiJNIDE4IDQgTCA2IDE2IEwgMTggMjgiLHN0cm9rZToid2hpdGUiLCJzdHJva2Utd2lkdGgiOiI0Iiwic3Ryb2tlLWxpbmVjYXAiOiJyb3VuZCIsZmlsbDoibm9uZSJ9KSkpLF8uSygiZGl2Iix7Y2xhc3M6Inl0d1BsYXllclNlZWtPdmVybGF5RHVyYXRpb24ifSxwKSksXy5LKCJkaXYiLHtjbGFzczpfLlAoInl0d1BsYXllclNlZWtPdmVybGF5QW5pbWF0aW9uIiwieXR3UGxheWVyU2Vla092ZXJsYXlBbmltYXRpb25Gb3J3YXJkIiksZWw6Xy5yRihZPT57RD1ZfSl9LF8uSygiZGl2Iix7Y2xhc3M6Inl0d1BsYXllclNlZWtPdmVybGF5RHVyYXRpb24ifSwKdCksXy5LKCJkaXYiLHtjbGFzczpfLlAoInl0d1BsYXllclNlZWtPdmVybGF5QXJyb3ciLCJ5dHdQbGF5ZXJTZWVrT3ZlcmxheUFycm93UGVyc2lzdGVudCIpfSxfLksoInN2ZyIse3ZpZXdCb3g6IjAgMCAyMiAzMiIsd2lkdGg6IjIyIixoZWlnaHQ6IjI0IixjbGFzczoieXR3UGxheWVyU2Vla092ZXJsYXlBcnJvd1N2ZyJ9LF8uSygicGF0aCIse2NsYXNzOiJ5dHdQbGF5ZXJTZWVrT3ZlcmxheUFycm93UGF0aCIsZDoiTSA0IDQgTCAxNiAxNiBMIDQgMjgiLHN0cm9rZToid2hpdGUiLCJzdHJva2Utd2lkdGgiOiI0Iiwic3Ryb2tlLWxpbmVjYXAiOiJyb3VuZCIsZmlsbDoibm9uZSJ9KSkpKSl9LCJrZSIpO3ZhciB0VTt2YXIgW2VuYSxzV109Xy5KKCExLHZvaWQgMCwiR05XM1MiKSxbQ1UsRFVdPV8uSighMSx2b2lkIDAsIkdBRWtKIiksW3RXLHRsYV09Xy5KKHZvaWQgMCx2b2lkIDAsIk9WUDFlZSIpO3ZhciBCVT0wO3ZhciBFVT12b2lkIDA7dmFyIHpVPTAsSFU9MCxHVT0wLHlVPTAsQVU9ITEsRlU9MDt2YXIgTlU7dmFyIHVXPVt7cmVnaXN0ZXI6YT0+e3ZhciBiPXdsYShhKTthKCkuSD8uYWRkRXZlbnRMaXN0ZW5lcigib25Wb2x1bWVDaGFuZ2UiLGIpO3JldHVybigpPT57fX19LHtyZWdpc3RlcjphPT57dmFyIGI9eGxhKGEpO2E9YSgpLkg7YT8uYWRkRXZlbnRMaXN0ZW5lcigiY2FwdGlvbnNjaGFuZ2VkIixiKTthPy5hZGRFdmVudExpc3RlbmVyKCJjYXB0aW9uc3NldHRpbmdzY2hhbmdlZCIsYik7YT8uYWRkRXZlbnRMaXN0ZW5lcigib25DYXB0aW9uc1RyYWNrTGlzdENoYW5nZWQiLGIpO3JldHVybigpPT57fX19LHtyZWdpc3RlcjooYSxiKT0+e2I9QmxhKGEsYik7YSgpLkg/LmFkZEV2ZW50TGlzdGVuZXIoIm9uU3RhdGVDaGFuZ2UiLGIpO3JldHVybigpPT57fX19LHtyZWdpc3RlcjphPT57dmFyIGI9RGxhKGEpO2EoKS5IPy5hZGRFdmVudExpc3RlbmVyKCJTRUVLX0NPTVBMRVRFIixiKTtyZXR1cm4oKT0+e319fSx7cmVnaXN0ZXI6YT0+e3ZhciBiPVBVKGEpO2EoKS5IPy5hZGRFdmVudExpc3RlbmVyKCJvblZpZGVvRGF0YUNoYW5nZSIsCmIpO3JldHVybigpPT57fX19LHtyZWdpc3RlcjooYSxiKT0+e2I9RWxhKGEsYik7YSgpPy5IPy5hZGRFdmVudExpc3RlbmVyKCJvblZpZGVvUHJvZ3Jlc3MiLGIpO3JldHVybigpPT57fX19LHtyZWdpc3RlcjphPT57dmFyIGI9RmxhKGEpO2EoKS5IPy5hZGRFdmVudExpc3RlbmVyKCJvbk11dGVkQXV0b3BsYXlDaGFuZ2UiLGIpO3JldHVybigpPT57fX19LHtyZWdpc3RlcjphPT57dmFyIGI9SGxhKGEpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixiKTtyZXR1cm4oKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixiKX19fSx7cmVnaXN0ZXI6YT0+e3ZhciBiPUlsYShhKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLGIpO3JldHVybigpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixiKX19fSx7cmVnaXN0ZXI6YT0+e3ZhciBiPUdsYShhKTthKCkuSD8uYWRkRXZlbnRMaXN0ZW5lcigib25GdWxsc2NyZWVuQ2hhbmdlIiwKYik7cmV0dXJuKCk9Pnt9fX0se3JlZ2lzdGVyOmE9Pnt2YXIgYj1KbGEoYSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixiKTtyZXR1cm4oKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsYil9fX0se3JlZ2lzdGVyOmE9Pnt2YXIgYj1LbGEoYSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5lcnJvciIsYik7cmV0dXJuKCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZnVsbHNjcmVlbmVycm9yIixiKX19fSx7cmVnaXN0ZXI6KGEsYik9Pnt2YXIgYz1MbGEoYSxiKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGxheWVyLWF1dG9uYXYtcGF1c2UiLGMpO3JldHVybigpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBsYXllci1hdXRvbmF2LXBhdXNlIixjKX19fSx7cmVnaXN0ZXI6YT0+e3ZhciBiPU1sYShhKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYXV0b25hdi10b2dnbGUtY2xpY2siLApiKTtyZXR1cm4oKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJhdXRvbmF2LXRvZ2dsZS1jbGljayIsYil9fX0se3JlZ2lzdGVyOmE9Pnt2YXIgYj1ObGEoYSk7YSgpLkg/LmFkZEV2ZW50TGlzdGVuZXIoIm9uTG9vcFJhbmdlQ2hhbmdlIixiKTtyZXR1cm4oKT0+e319fSx7cmVnaXN0ZXI6YT0+e2lmKCFfLngoImVuYWJsZV9td2ViX2tleWJvYXJkX3Nob3J0Y3V0cyIpKXJldHVybigpPT57fTt2YXIgYj16bGEoYSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGIpO3JldHVybigpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGIpfX19XTt2YXIgVmxhPV8uTChhPT57dmFyIGI9Xy5OKCgpPT5hLkgoKSx2b2lkIDAsInE4V3NLZiIpLGM9Xy5OKCgpPT5hLmRhdGEoKSx2b2lkIDAsIms2VWVWIiksZD1fLk4oKCk9Pnt2YXIgQz1hLmNvbnRleHQoKTtyZXR1cm4gbmV3IHFXKCgpPT57fSxDLHthdXRvbmF2RW5hYmxlZDpDLnRhLmRlKCksZWE6ITB9LGIpfSx2b2lkIDAsIk9BeElKYiIpLGU9Xy5OKCgpPT4oMCxkKCkuQikoKSx2b2lkIDAsIlV1MVJpIiksZj1fLk4oKCk9Pnt2YXIgQz1lKCk7cmV0dXJuIF8ueCgibXdlYl9wY19saXZlX2R2cl9rcyIpPyExOkMuaXNMaXZlJiYhQy5pc0xpdmVEdnJFbmFibGVkfSx2b2lkIDAsImN0VWczZCIpLGg9Xy5OKCgpPT57dmFyIEM9ZigpO3JldHVybiByVSgpJiYhQ30sdm9pZCAwLCJuSmRrMGMiKSxrPV8uTigoKT0+YygpLnBsYXllclJlc3BvbnNlPy5wbGF5YWJpbGl0eVN0YXR1c3x8YygpLmpiPy5wcmV2aWV3UGxheWFiaWxpdHlTdGF0dXMsdm9pZCAwLCJCVlhDOSIpLGw9Xy5OKCgpPT4KZSgpLmJhPy5aaCYmJFMoZSgpLGsoKSksdm9pZCAwLCJNSHZId2YiKSxtPV8uTigoKT0+blUoZSxjKCkud2F0Y2hOZXh0UmVzcG9uc2UpLHZvaWQgMCwiY3R4VXMiKSxuPV8uTigoKT0+bVUoZSxCUyhjKCkud2F0Y2hOZXh0UmVzcG9uc2UpKSx2b2lkIDAsIkdMa0JVIikscD1fLk4oKCk9Pnt2YXIgQz1sKCksRz1tKCksRD1uKCksSD1lKCkucGxheWVyU3RhdGU7cmV0dXJuIEM/ITA6R3x8RD8hMTpIPT09MH0sdm9pZCAwLCJYRUV2QiIpLHI9Xy52RSgiYnV0dG9uIixDPT57QyYmV1MoQywyODU3MiwhXy54KCJlbWJlZHNfY3VlZF9vdmVybGF5X3ZlX2tzIikpfSksdD1fLk4oKCk9Pnt2YXIgQz1jKCk7cmV0dXJuKEM9Xy5CKE5TKEMud2F0Y2hOZXh0UmVzcG9uc2U/LnBsYXllck92ZXJsYXlzPy5wbGF5ZXJPdmVybGF5UmVuZGVyZXIsQy5qYj8uZW1iZWRQcmV2aWV3Py50aHVtYm5haWxQcmV2aWV3UmVuZGVyZXIpPy5jb2xsYXBzZWRSZW5kZXJlcixtVik/LnRpdGxlKT9fLmFOKEMpOnZvaWQgMH0sCnZvaWQgMCwiZ3NHV3kiKSx2PV8udUYoQz0+e3ZhciBHPWUoKSxEPWMoKSxIPXQoKTtyZXR1cm4gRy5iYT8uaGlkZVZpZGVvSW5mbz8hMTpELndhdGNoTmV4dFJlc3BvbnNlfHxELmpiP0ghPT12b2lkIDA6Q30se2luaXRpYWw6ITB9KSx6PV8uTigoKT0+ZSgpLmVhLHZvaWQgMCwiVFI5S0dkIiksRT1fLnVGKEM9Pnt2YXIgRz1jKCk7cmV0dXJuKEcucGxheWVyUmVzcG9uc2U/Lm92ZXJsYXk/LnBsYXllckNvbnRyb2xzT3ZlcmxheVJlbmRlcmVyfHxHLmpiPy5lbWJlZFByZXZpZXc/LnRodW1ibmFpbFByZXZpZXdSZW5kZXJlcik/LmNvbnRyb2xCZ0h0bWw/P0N9LHtpbml0aWFsOnZvaWQgMH0pLEE9W107Xy5uRSgoKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntBLmZvckVhY2goQz0+dm9pZCBDKCkpO0EubGVuZ3RoPTA7dVcuZm9yRWFjaChDPT57QS5wdXNoKEMucmVnaXN0ZXIoKCk9PmQoKS51ZCgpLCgpPT5jKCkpKX0pfSl9LCJZMnFZN2IiKTtfLm5FKCgpPT57dmFyIEM9ZCgpLApHPWMoKTtDLlVjPUc7dmFyIEQ9Qy52PT09Ry5IO0Mudj1xVShHLkgpO0R8fEMuaiYmQy5qKEMudWQoKSl9LCJhMTc4UmQiKTt2YXIgRj1DPT57Qz1DLmRldGFpbC5hdXRvbmF2RW5hYmxlZDt2YXIgRz17YXV0b25hdkVuYWJsZWQ6Q307QyYmKEcueGY9ITApO2UoKS5TKEcpfTtfLm9GKCgpPT57d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBmcC1hdXRvbmF2LXVwZGF0ZSIsRil9KTtfLll1KCgpPT57QS5mb3JFYWNoKEM9PnZvaWQgQygpKTtBLmxlbmd0aD0wO3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwZnAtYXV0b25hdi11cGRhdGUiLEYpfSk7cmV0dXJuIF8uSyhfLm5HLHtFZjpbXy5vRygkVCxiKV19LF8uSygicGZwLWNvbnRyb2xzIix7Y2xhc3M6Inl0UGZwQ29udHJvbHNIb3N0Iiwib246Y29udGV4dG1lbnUiOmZ1bmN0aW9uKEMpe2EuY29udGV4dCgpLnRhLlNqPy4oQyk7Qy5wcmV2ZW50RGVmYXVsdCgpfX0sXy5LKEdWLHtHOmUsdGh1bWJuYWlsRGV0YWlsczooKT0+e3ZhciBDPQpjKCk7cmV0dXJuIEMuamI/LmVtYmVkUHJldmlldz8udGh1bWJuYWlsUHJldmlld1JlbmRlcmVyPy5kZWZhdWx0VGh1bWJuYWlsfHxDLnBsYXllclJlc3BvbnNlPy52aWRlb0RldGFpbHM/LnRodW1ibmFpbH19KSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcENvbnRyb2xzQ3JlYXRvckVuZHNjcmVlbkNvbnRhaW5lciIsIm9uOmNsaWNrIjpmdW5jdGlvbihDKXtDLnN0b3BQcm9wYWdhdGlvbigpfX0sXy5LKF8uTyx7QTooKT0+YygpLnBsYXllclJlc3BvbnNlPy5lbmRzY3JlZW4/LmVuZHNjcmVlblJlbmRlcmVyLHRoZW46KCk9Pl8uSyhsVyx7ZW5kc2NyZWVuUmVuZGVyZXI6KCk9PmMoKS5wbGF5ZXJSZXNwb25zZT8uZW5kc2NyZWVuPy5lbmRzY3JlZW5SZW5kZXJlcixHOmV9KX0pKSxfLksoImRpdiIse2lkOiJwbGF5ZXItY29udHJvbC1vdmVybGF5IixjbGFzczpfLlAoInl0UGZwQ29udHJvbHNPdmVybGF5Iix7eXRQZnBDb250cm9sc0ZhZGVJbjp6fSksIm9uOmNsaWNrIjpmdW5jdGlvbihDKXtwKCk/CihYUygyODU3MiksZSgpLmJhPy51aiYmXy5ETyhfLmh4KCksMjcyNDAsQy5jdXJyZW50VGFyZ2V0LnZpc3VhbEVsZW1lbnQpLGIoKS5wbGF5VmlkZW8oKSk6S1UoQyxlKCkpfSwib246cG9pbnRlcm1vdmUiOmZ1bmN0aW9uKEMpe0MucG9pbnRlclR5cGU9PT0ibW91c2UiJiYoZSgpLlMoe2VhOiEwfSksY1QoZSgpLHtJYzohMH0pKX19LF8uSyhfLk8se0E6dix0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dFBmcENvbnRyb2xzR3JhZGllbnRUb3AifSxfLksoXy5PLHtBOnQsdGhlbjooKT0+Xy5LKCJoMiIse2NsYXNzOiJ5dFBmcENvbnRyb2xzVmlkZW9UaXRsZSJ9LHQpfSkpfSksXy5LKG9XLHtqZTooKT0+ZSgpLmplfSksXy5LKF8uTyx7QTpwLHRoZW46KCk9Pl8uSygiYnV0dG9uIix7Y2xhc3M6Inl0UGZwQ29udHJvbHNMYXJnZVBsYXlCdXR0b24iLGVsOnIsImFyaWEtbGFiZWwiOl8uJE4uUGcsdGl0bGU6Xy4kTi5QZ30sXy5LKCJzdmciLHtoZWlnaHQ6IjEwMCUiLHZlcnNpb246IjEuMSIsCnZpZXdCb3g6IjAgMCA2MCA2MCIsd2lkdGg6IjEwMCUifSxfLksoInBhdGgiLHtjbGFzczoieXRQZnBDb250cm9sc0xhcmdlUGxheUJ1dHRvbkljb25CZyIsZDoiTTMwLDBBMzAsMzAsMCwxLDAsNjAsMzAsMzAsMzAsMCwwLDAsMzAsMFoiLGZpbGw6KCk9PkUoKT8/IiMxZjFmMWYifSksXy5LKCJwYXRoIix7ZDoiTTIxLDQxLjY1VjE4TDQzLjcsMjkuODVaIixmaWxsOiIjZmZmIn0pKSl9KSxfLksoWm1hLHtHOmUsVWM6Y30pLF8uSyhhbmEse0c6ZSx3YXRjaE5leHRSZXNwb25zZTooKT0+YygpLndhdGNoTmV4dFJlc3BvbnNlLFV4Om4sY2xhc3NOYW1lOiJ5dFBmcENvbnRyb2xzVmlkZW9XYWxsRW5kc2NyZWVuIn0pLF8uSyhZbWEse0g6YixHOmUsd2F0Y2hOZXh0UmVzcG9uc2U6KCk9PmMoKS53YXRjaE5leHRSZXNwb25zZSxjbGFzc05hbWU6Inl0UGZwQ29udHJvbHNBdXRvbmF2In0pLF8uSyhfLk8se0E6KCk9PiFsKCksdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoV1Yse0c6ZX0pLApfLksoVlYse2dmOmUsSWI6ITF9KSxfLksoWFYse0c6ZSxGZDotMSxjbGFzc05hbWU6Inl0UGZwQ29udHJvbHNIaWRkZW5TZWVrQnV0dG9uIn0pLF8uSyhYVix7RzplLEZkOjEsY2xhc3NOYW1lOiJ5dFBmcENvbnRyb2xzSGlkZGVuU2Vla0J1dHRvbiJ9KSxfLksoXy5PLHtBOmgsdGhlbjooKT0+Xy5LKHJXLHtHOmV9KX0pLF8uSyhmbmEse0g6YixHOmUsVWM6YyxGejpFLGRpc2FibGVTY3J1YmJpbmc6Zn0pKX0pKSkpfSwib2UiKSxmbmE9Xy5MKCh7SDphLEc6YixVYzpjLEZ6OmQsZGlzYWJsZVNjcnViYmluZzplfSk9PntmdW5jdGlvbiBmKHIpe3Iuc3RvcFByb3BhZ2F0aW9uKCl9dmFyIGg9Xy5OKCgpPT4hYigpLmJhPy5uaCx2b2lkIDAsInBGdERYYiIpLGs9Xy5OKCgpPT4hYigpLmJhPy5pcSx2b2lkIDAsInY0WDVzZSIpLGw9Xy5OKCgpPT5jKCkucGxheWVyT3ZlcmxheVJlbmRlcmVyLHZvaWQgMCwiakxoaFdjIiksbT1fLk4oKCk9PkdTKGwoKSksdm9pZCAwLCJzNjd4U2IiKSxuPV8uTigoKT0+CkVTKGwoKSksdm9pZCAwLCJwQ2lhdSIpLHA9Xy5OKCgpPT4hYigpLmJhPy56cix2b2lkIDAsInN2dXhCIik7cmV0dXJuIF8uSyhfLk8se0E6aCx0aGVuOigpPT5fLksoXy5JQixudWxsLF8uSygiZGl2Iix7Y2xhc3M6Inl0UGZwQ29udHJvbHNQcm9ncmVzc0JhckNvbnRhaW5lciJ9LF8uSyhDVix7TGI6YixoZjptLGNvbmZpZzooKT0+KHtwb3NpdGlvbjoxLEtmOiExLEluOnAoKSxSYTpuKCksZGlzYWJsZVNjcnViYmluZzplKCksWW86KCk9PntiVCgpfSxGbjooKT0+e2NUKGIoKSx7SWM6ITB9KX19KX0pKSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcENvbnRyb2xzQm90dG9tQmFyIixzdHlsZTpfLklFKHsiYmFja2dyb3VuZC1jb2xvciI6ZH0pLCJvbjpjbGljayI6Zn0sXy5LKCJkaXYiLHtjbGFzczoieXRQZnBDb250cm9sc0xlZnRDb250cm9scyJ9LF8uSyhfLk8se0E6KCk9PmIoKS5wbGF5ZXJTdGF0ZT09PTAsdGhlbjooKT0+Xy5LKGFXLHtHOmJ9KSxXOigpPT5fLksoJFYse0c6Yix5czohMH0pfSksCl8uSyhIVix7b3JpZW50YXRpb246Imhvcml6b250YWxfcmlnaHQiLEg6YSxEdjohMCxDcDpfLkJLfHxfLkdLLGJqOiEwLGNsYXNzTmFtZToieXRQZnBDb250cm9sc1ZvbHVtZUNvbnRyb2xzIn0pLF8uSyhwVyx7RzpiLHBsYXllck92ZXJsYXlSZW5kZXJlcjpsLFZ3OiEwLGNsYXNzTmFtZToieXRQZnBDb250cm9sc1RpbWVEaXNwbGF5In0pKSxfLksoImRpdiIse2NsYXNzOiJ5dFBmcENvbnRyb2xzUmlnaHRDb250cm9scyJ9LF8uSyhkVyx7Z2Y6YixWcjohMCxjbGFzc05hbWU6Inl0UGZwQ29udHJvbHNDYXB0aW9uc0J1dHRvbiJ9KSxfLksoYlcse0c6YixjbGFzc05hbWU6Inl0UGZwQ29udHJvbHNTZXR0aW5nc0J1dHRvbiJ9KSxfLksoXy5PLHtBOmssdGhlbjooKT0+Xy5LKFpWLHtHOmJ9KX0pKSkpfSl9LCJwZSIpO3ZhciBnbmE9Xy5MKCh7ZGF0YTphfSk9Pl8uSygieXQtZW1iZWRzLWluZm8tcGFuZWwtZGV0YWlscy12aWV3LW1vZGVsIix7Y2xhc3M6Inl0RW1iZWRzSW5mb1BhbmVsRGV0YWlsc1ZpZXdNb2RlbEhvc3QifSxfLksoXy5WLHtjbGFzc05hbWU6Inl0RW1iZWRzSW5mb1BhbmVsRGV0YWlsc1ZpZXdNb2RlbEJvZHlUZXh0Iix0ZXh0OigpPT5hKCkuYm9keVRleHR9KSxfLksoXy5nRyx7cGE6KCk9PmEoKS5jdGFCdXR0b25zfHxbXX0sYj0+KGI9KGI9Xy5CKGIsYW1hKSk/Xy5CKHtsaXN0SXRlbVZpZXdNb2RlbDp7dGl0bGU6e2NvbnRlbnQ6Yi5ib2R5VGV4dD8uY29udGVudH0sbGVhZGluZ0ltYWdlOntzb3VyY2VzOlt7Y2xpZW50UmVzb3VyY2U6e2ltYWdlTmFtZTpiPy5pY29uPy5pY29uVHlwZX19XX0scmVuZGVyZXJDb250ZXh0Ontjb21tYW5kQ29udGV4dDp7b25UYXA6Yj8ub25UYXB9fX19LF8uWkMpOnZvaWQgMCk/Xy5LKF8uQ0Qse2RhdGE6Yn0pOm51bGwpKSwicWUiKTt2YXIgaG5hPV8uTCgoe2RhdGE6YSxvbkNsaWNrOmJ9KT0+Xy5LKCJ5dC1lbWJlZHMtaW5mby1wYW5lbC1vdmVydmlldy12aWV3LW1vZGVsIixudWxsLF8uSygiYnV0dG9uIix7Im9uOmNsaWNrIjpiLGNsYXNzOiJ5dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlckJ1dHRvbiJ9LF8uSyhfLk8se0E6KCk9PmEoKS5oZWFkZXJJY29uPy5pY29uVHlwZSx0aGVuOigpPT5fLksoInNwYW4iLG51bGwsXy5LKF8uTUQse2ljb246KCk9PmEoKS5oZWFkZXJJY29uPy5pY29uVHlwZX0pKX0pLF8uSygiZGl2Iix7Y2xhc3M6Inl0bUVtYmVkc0luZm9QYW5lbFJlbmRlcmVyVGV4dCJ9LF8uSyhfLlYse3RleHQ6KCk9PmEoKS50aXRsZX0pLF8uSyhfLlYse3RleHQ6KCk9Pih7Y29udGVudDphKCkudGl0bGUmJmEoKS5ib2R5VGV4dD8iIFx1MjAyMiAiOiIifSl9KSxfLksoXy5WLHt0ZXh0OigpPT5hKCkuYm9keVRleHR9KSkpKSwicmUiKTt2YXIgdlc9Xy5MKCh7ZGF0YTphLHByb3BzOmJ9KT0+e2Z1bmN0aW9uIGMoZCl7dmFyIGU9YSgpLmluZm9QYW5lbERldGFpbHNWaWV3TW9kZWw7aWYoZSl7dmFyIGY9e307ZS50aXRsZT8uY29udGVudCYmKGYuaGVhZGVyVGl0bGU9ZS50aXRsZS5jb250ZW50KTtfLnlOKHsuLi5mLEdiOigpPT5fLksoZ25hLHtkYXRhOmV9KSxIYTohMH0pfWQuc3RvcFByb3BhZ2F0aW9uKCl9cmV0dXJuIF8uSygieXRtLWVtYmVkcy1pbmZvLXBhbmVsLXJlbmRlcmVyIix7Y2xhc3M6Xy5QKCJ5dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlckhvc3QiLHt5dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlckhvc3RBdXRvaGlkZTooKT0+YigpLnBsYXllclN0YXRlPT09MSx5dG1FbWJlZHNJbmZvUGFuZWxSZW5kZXJlckhvc3RUb3BDb250cm9sc1N0YWNrZWRJblBvcnRyYWl0OigpPT4hJFMoYigpKSYmIWIoKS5iYT8uaGlkZVZpZGVvSW5mbyYmIWIoKS5iYT8ubmh9KSxzdHlsZTpfLklFKHsiYW5pbWF0aW9uLWRlbGF5IjooKT0+CmAke2EoKS5kdXJhdGlvbk1zfHwxRTR9bXNgfSl9LF8uSyhfLk8se0E6KCk9PmEoKS5pbmZvUGFuZWxPdmVydmlld1ZpZXdNb2RlbCx0aGVuOmQ9Pl8uSyhobmEse2RhdGE6ZCxvbkNsaWNrOmN9KX0pKX0sInNlIik7dlcuaWRvbUNvbXBhdD0hMDt2YXIgd1c9Xy5MKCh7RzphfSk9Pnt2YXIgW2IsY109Xy5KKCJoaWRkZW4iLHZvaWQgMCwiU0JoYkhlIiksZCxlLFtmLGhdPV8uSighMSx2b2lkIDAsIkhnN3huZiIpLFtrLGxdPV8uSighMSx2b2lkIDAsIm5LSGxaZSIpO18uVUooKCk9Pnt0VygpPT09dm9pZCAwJiZ1bGEoKTtlPXNldFRpbWVvdXQoKCk9Pnt0VygpJiZtKCEwKTtsKCEwKX0sMkUzKX0pO18uWXUoKCk9PnttKCExKTtjbGVhclRpbWVvdXQoZSk7Y2xlYXJUaW1lb3V0KGQpfSk7Xy5uRSgoKT0+e0NVKCkmJmYoKSYmKG0oITEpLHNXKCEwKSk7IXRXKCkmJmYoKSYmbSghMSk7dFcoKSYmIWVuYSgpJiYhZigpJiZrKCkmJm0oITApfSwiVkNGQkliIik7dmFyIG09bj0+e2gobik7YSgpLkg/LnNldEF1dG9jcm9wRW5hYmxlZChuKTtjbGVhclRpbWVvdXQoZCk7bj8oYygidmlzaWJsZSIpLGQ9c2V0VGltZW91dCgoKT0+e2MoIiIpfSwzRTMpKTooYygiIiksZD1zZXRUaW1lb3V0KCgpPT57YygiaGlkZGVuIil9LDNFMykpfTtyZXR1cm4gXy5LKCJkaXYiLAp7Y2xhc3M6Xy5QKCJ5dEF1dG9jcm9wQnV0dG9uSG9zdCIse3l0QXV0b2Nyb3BCdXR0b25WaXNpYmxlOigpPT5iKCk9PT0idmlzaWJsZSIseXRBdXRvY3JvcEJ1dHRvbkhpZGRlbjooKT0+YigpPT09ImhpZGRlbiJ9KX0sXy5LKF8uTyx7QTpmLHRoZW46KCk9Pl8uSyhfLnBPLHtkYXRhOntzdHlsZToiU1RZTEVfTElHSFRfVEVYVCIsc2l6ZToiU0laRV9ERUZBVUxUIix0ZXh0OntydW5zOlt7dGV4dDpfLiROLlBzfV19fSxjbGFzc05hbWU6Inl0QXV0b2Nyb3BCdXR0b25BdXRvQ3JvcEJ1dHRvbiIscHJldmVudERlZmF1bHQ6ITAsc3RvcFByb3BhZ2F0aW9uOiEwLHRnOigpPT57bSghZigpKTtzVyghZigpKX19KSxXOigpPT5fLksoXy5wTyx7ZGF0YTp7c3R5bGU6IlNUWUxFX0xJR0hUX1RFWFQiLHNpemU6IlNJWkVfREVGQVVMVCIsdGV4dDp7cnVuczpbe3RleHQ6IjEwMCUifV19fSxjbGFzc05hbWU6Inl0QXV0b2Nyb3BCdXR0b25BdXRvQ3JvcEJ1dHRvbiIscHJldmVudERlZmF1bHQ6ITAsCnN0b3BQcm9wYWdhdGlvbjohMCx0ZzooKT0+e20oIWYoKSk7c1coIWYoKSl9fSl9KSl9LCJ1ZSIpO3dXLmlkb21Db21wYXQ9ITA7dmFyIHhXPV8uTCgoe2RhdGE6YSxGZTpifSk9Pl8uSygieXRtLWVuZHNjcmVlbi12aWRlby1yZW5kZXJlciIsbnVsbCxfLksoXy5mamEse2RhdGE6KCk9Pih7dGh1bWJuYWlsOmEoKS50aHVtYm5haWwsdGh1bWJuYWlsT3ZlcmxheXM6YSgpLnRodW1ibmFpbE92ZXJsYXlzLHZpZGVvSWQ6YSgpLnZpZGVvSWQsbGVuZ3RoVGV4dDphKCkubGVuZ3RoVGV4dCxwdWJsaXNoZWRUaW1lVGV4dDphKCkucHVibGlzaGVkVGltZVRleHQsbmF2aWdhdGlvbkVuZHBvaW50OmEoKS5uYXZpZ2F0aW9uRW5kcG9pbnQsaGVhZGxpbmU6YSgpLnRpdGxlfSksRmU6Yn0pKSwidmUiKTt4Vy5pZG9tQ29tcGF0PSEwO3ZhciB6Vz1fLkwoKHt3YXRjaE5leHRSZXNwb25zZTphfSk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0RnVsbHNjcmVlblZpZGVvUmVjb21tZW5kYXRpb25zSG9zdCIsaWRvbUtleToiZnVsbHNjcmVlbi1yZWNvbW1lbmRhdGlvbnMtd3JhcHBlciJ9LF8uSyhfLmdHLHtwYTooKT0+TVMoYT8uKCkpfSxiPT5fLksoeVcse3ZpZGVvOmJ9KSkpLCJ3ZSIpO3pXLmlkb21Db21wYXQ9ITA7dmFyIHlXPV8uTCgoe3ZpZGVvOmF9KT0+Xy5LKCJkaXYiLHtjbGFzczoieXRGdWxsc2NyZWVuVmlkZW9SZWNvbW1lbmRhdGlvbnNSZWNvbW1lbmRhdGlvbiJ9LF8uSyhfLlcse2RhdGE6YX0se2VuZFNjcmVlblZpZGVvUmVuZGVyZXI6KHtkYXRhOmJ9KT0+Xy5LKHhXLHtkYXRhOmIsRmU6ITB9KX0pKSwieGUiKTt5Vy5pZG9tQ29tcGF0PSEwO3ZhciBCVz1fLkwoYT0+Xy5LKCJwbGF5ZXItZnVsbHNjcmVlbi10b3AtY29udHJvbHMiLHtjbGFzczoieXR3UGxheWVyRnVsbHNjcmVlblRvcENvbnRyb2xzSG9zdCIsc3R5bGU6Xy5JRSh7dmlzaWJpbGl0eTooKT0+YS5HKCkuTmE/InZpc2libGUiOiJoaWRkZW4ifSl9LF8uSygiaDIiLHtjbGFzczoieXR3UGxheWVyRnVsbHNjcmVlblRvcENvbnRyb2xzRnVsbHNjcmVlbkNvbnRyb2xzVmlkZW9UaXRsZSJ9LF8uSyhfLk8se0E6KCk9PmEud2F0Y2hOZXh0UmVzcG9uc2U/LigpPy5wbGF5ZXJPdmVybGF5cz8ucGxheWVyT3ZlcmxheVJlbmRlcmVyPy52aWRlb0RldGFpbHM/LnBsYXllck92ZXJsYXlWaWRlb0RldGFpbHNSZW5kZXJlcj8udGl0bGUsdGhlbjpiPT5fLksoXy5WLHt0ZXh0OmJ9KX0pKSxfLksoQVcse0c6YS5HfSkpLCJ5ZSIpO0JXLmlkb21Db21wYXQ9ITA7CnZhciBBVz1fLkwoKHtHOmF9KT0+Xy5LKCJkaXYiLHtjbGFzczoieXR3UGxheWVyRnVsbHNjcmVlblRvcENvbnRyb2xzRnVsbHNjcmVlbkNsb3NlQnV0dG9uV3JhcHBlciJ9LF8uSyhfLnBPLHtkYXRhOntzdHlsZToiU1RZTEVfTElHSFRfVEVYVCIsc2l6ZToiU0laRV9ERUZBVUxUIixpY29uOntpY29uVHlwZToiQ0xPU0UifSxhY2Nlc3NpYmlsaXR5OntsYWJlbDoiQ2xvc2UifSxhY2Nlc3NpYmlsaXR5RGF0YTp7YWNjZXNzaWJpbGl0eURhdGE6e2xhYmVsOiJDbG9zZSJ9fX0scHJldmVudERlZmF1bHQ6ITAsc3RvcFByb3BhZ2F0aW9uOiEwLHRnOigpPT57YSgpLlMoe05hOiExfSk7Xy5NTygiLmZ1bGxzY3JlZW4tbW9yZS12aWRlb3MtZW5kcG9pbnQiKTtjVChhKCkpfX0pKSwiemUiKTtBVy5pZG9tQ29tcGF0PSEwO3ZhciBDVz1fLkwoYT0+e3ZhciBiPSgpPT5hLkcoKS5pc0Z1bGxzY3JlZW58fGEuRygpLmJhPy5FZSxjPSgpPT57dmFyIGY9YS5HKCk7cmV0dXJuIF8uYUwoImZ1bGxzY3JlZW4tY29udHJvbHMiLHtleHBhbmRlZDpmLk5hLCJzdHlsZS1yZWNvbW1lbmRhdGlvbnMtaW4tcG9ydHJhaXQiOmYuYmE/LkVlfHxfLngoIm13ZWJfZW5hYmxlX3BvcnRyYWl0X2Z1bGxzY3JlZW5fYWN0aW9ucyIpfSl9LGQ9KCk9Pnt2YXIgZj1hLkcoKTtyZXR1cm5gCiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgke2YuSmZ9cHgpOwogICAgICB0cmFuc2l0aW9uOiAke2YuV2Q/Im5vbmUiOiJ0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3R0b20gMC4ycyBlYXNlIn07CiAgICAgIHZpc2liaWxpdHk6ICR7Zi5KZnx8Zi5OYT8idmlzaWJsZSI6ImluaGVyaXQifTsKICAgICAgcG9pbnRlci1ldmVudHM6ICAke2YuTmE/ImFsbCI6Im5vbmUifTsKICAgIGB9LGU9KCk9Pl8ueCgid2ViX2VuYWJsZV9zbWFydF96b29tIikmJmEuYXV0b2Nyb3BDb25maWc/LigpO3JldHVybiBfLksoInBsYXllci1mdWxsc2NyZWVuLWNvbnRyb2xzIix7aGlkZGVuOiFiLGNsYXNzOiJ5dHdQbGF5ZXJGdWxsc2NyZWVuQ29udHJvbHNIb3N0In0sXy5LKF8uTyx7QTpiLHRoZW46KCk9Pl8uSyhfLklCLG51bGwsXy5LKEJXLHtHOmEuRyx3YXRjaE5leHRSZXNwb25zZTphLndhdGNoTmV4dFJlc3BvbnNlfSksXy5LKF8uTyx7QTplLHRoZW46KCk9Pl8uSyh3Vyx7RzphLkd9KX0pLF8uSyhLVix7RzphLkcsd2F0Y2hOZXh0UmVzcG9uc2U6YS53YXRjaE5leHRSZXNwb25zZSx0aHVtYm5haWxQcmV2aWV3UmVuZGVyZXI6YS50aHVtYm5haWxQcmV2aWV3UmVuZGVyZXJ9KSxfLksoImRpdiIse2NsYXNzOmMsc3R5bGU6ZH0sXy5LKHpXLHt3YXRjaE5leHRSZXNwb25zZTphLndhdGNoTmV4dFJlc3BvbnNlfSkpKX0pKX0sIkFlIik7Q1cuaWRvbUNvbXBhdD0hMDt2YXIgRFc9Xy5MKCh7ZGF0YTphfSk9Pnt2YXIgYj1fLnVFKCJ5dG0tcGFpZC1jb250ZW50LW92ZXJsYXktcmVuZGVyZXIiKTtyZXR1cm4gXy5LKCJ5dG0tcGFpZC1jb250ZW50LW92ZXJsYXktcmVuZGVyZXIiLHtjbGFzczoieXRtUGFpZENvbnRlbnRPdmVybGF5SG9zdCIsZWw6Yiwib246YW5pbWF0aW9uZW5kIjpmdW5jdGlvbihjKXtiLnZhbHVlLmNsYXNzTGlzdC5hZGQoInl0bVBhaWRDb250ZW50T3ZlcmxheUhpZGRlbiIpO2Muc3RvcFByb3BhZ2F0aW9uKCl9fSxfLksoXy5uSCx7Y29tbWFuZDooKT0+YSgpLm5hdmlnYXRpb25FbmRwb2ludCxjbGFzc05hbWU6Inl0bVBhaWRDb250ZW50T3ZlcmxheUxpbmsifSxfLksoXy5PLHtBOigpPT5hKCkuaWNvbj8uaWNvblR5cGUsdGhlbjooKT0+Xy5LKCJzcGFuIixudWxsLF8uSyhfLk1ELHtpY29uOigpPT5hKCkuaWNvbj8uaWNvblR5cGV9KSl9KSxfLksoImRpdiIse2NsYXNzOiJ5dG1QYWlkQ29udGVudE92ZXJsYXlUZXh0In0sXy5LKF8uViwKe3RleHQ6KCk9PmEoKS50ZXh0fSkpLF8uSyhfLk8se0E6KCk9PmEoKS5uYXZpZ2F0aW9uRW5kcG9pbnQsdGhlbjooKT0+Xy5LKF8uTUQse2ljb246IkNIRVZST05fUklHSFQifSl9KSkpfSwiQmUiKTtEVy5pZG9tQ29tcGF0PSEwO3ZhciBFVz1fLkwoYT0+e3ZhciBiPSgpPT5hLkcoKS5IPy5nZXRTaXplPy4oKT8ud2lkdGg7cmV0dXJuIF8uSygicGxheWVyLWJvdHRvbS1jb250cm9scyIse2NsYXNzOl8uUCgieXR3UGxheWVyQm90dG9tQ29udHJvbHNIb3N0Iix7ImRlbGhpLXBsYXllciI6Xy54KCJtd2ViX3dhdGNoX2RlbGhpX3BsYXllciIpfSl9LF8uSygiZGl2Iix7Y2xhc3M6InBsYXllci1jb250cm9scy1ib3R0b20gcGxheWVyLWNvbnRyb2xzLWJvdHRvbS1sZWZ0In0sXy5LKF8uTyx7QTooKT0+IShiKCkmJmIoKTwzMjApLHRoZW46KCk9Pl8uSyhwVyx7RzphLkcsU206YS5TbSxwbGF5ZXJPdmVybGF5UmVuZGVyZXI6YS5wbGF5ZXJPdmVybGF5UmVuZGVyZXJ9KX0pKSxfLksoImRpdiIse2NsYXNzOl8uUCgicGxheWVyLWNvbnRyb2xzLWJvdHRvbSIsInBsYXllci1jb250cm9scy1ib3R0b20tcmlnaHQiKX0sXy5LKF8uTyx7QTooKT0+IShhLkcoKS5iYT8uaXF8fGIoKSYmYigpPDI0MCksdGhlbjooKT0+Xy5LKCJkaXYiLAp7Y2xhc3M6Inl0d1BsYXllckJvdHRvbUNvbnRyb2xzRnVsbHNjcmVlbkJ1dHRvbldyYXBwZXIifSxfLksoWlYse0c6YS5HfSkpfSkpKX0sIkNlIik7RVcuaWRvbUNvbXBhdD0hMDt2YXIgRlc9Xy5MKGE9Pnt2YXIge0c6Yix3YXRjaE5leHRSZXNwb25zZTpjfT1fLkRDKGEse3dhdGNoTmV4dFJlc3BvbnNlOnZvaWQgMH0pO3JldHVybiBfLksoXy5PLHtBOigpPT5IUyhiKCksQVMoYygpKSksdGhlbjooKT0+Xy5LKCJwbGF5ZXItZW5kc2NyZWVuIix7Y2xhc3M6Inl0d1BsYXllckVuZHNjcmVlbkhvc3QifSxfLksoImRpdiIse2NsYXNzOiJ5dHdQbGF5ZXJFbmRzY3JlZW5Db250YWluZXIifSxfLksoImRpdiIse2lkOiJwbGF5ZXItZW5kc2NyZWVuIixjbGFzczoieXR3UGxheWVyRW5kc2NyZWVuUGxheWVyRW5kc2NyZWVuIiwiZGF0YS1oYXMtdGltZXItY291bnRkb3duIjohMH0sXy5LKGluYSx7cHJvcHM6YixwbGF5ZXJPdmVybGF5QXV0b3BsYXlSZW5kZXJlcjooKT0+QlMoYygpKX0pLF8uSyhqbmEse3Byb3BzOmIscGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI6KCk9PkJTKGMoKSl9KSxfLksoa25hLHtwcm9wczpiLHBsYXllck92ZXJsYXlBdXRvcGxheVJlbmRlcmVyOigpPT4KQlMoYygpKX0pKSkpfSl9LCJEZSIpO0ZXLmlkb21Db21wYXQ9ITA7CnZhciBpbmE9Xy5MKGE9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0d1BsYXllckVuZHNjcmVlblRvcFBhbmVsIn0sXy5LKGxuYSx7Li4uYX0pLF8uSyhtbmEsey4uLmF9KSksIkVlIiksbG5hPV8uTChhPT57dmFyIHtwcm9wczpiLHBsYXllck92ZXJsYXlBdXRvcGxheVJlbmRlcmVyOmN9PV8uREMoYSx7cGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI6dm9pZCAwfSksW2QsZV09Xy4kTi5Pcy5zcGxpdCgic2Vjb25kc19wbGFjZWhvbGRlciIpO3JldHVybiBfLksoImRpdiIse2NsYXNzOiJ5dHdQbGF5ZXJFbmRzY3JlZW5IZWFkZXIiLHJvbGU6InRleHQifSxfLksoXy5FRSxudWxsLF8uSyhfLkNFLHt3aGVuOigpPT5iKCkuemYmJmMoKX0sKCk9Pl8uSyhfLlYse3RleHQ6KCk9PmMoKT8ucGF1c2VUZXh0fSkpLF8uSyhfLkRFLG51bGwsKCk9Pl8uSygic3BhbiIse2lkOiJ1cG5leHQtaW4tbWVzc2FnZSJ9LGQsXy5LKG5uYSx7Li4uYX0pLGUpKSkpfSwiRmUiKSxubmE9Xy5MKGE9Pnt2YXIgYj0KYS5wcm9wcztyZXR1cm4gXy5LKCJzcGFuIix7Y2xhc3M6Inl0d1BsYXllckVuZHNjcmVlbkNvdW50ZG93bk51bWJlciIsImFyaWEtaGlkZGVuIjohMH0sKCk9PmIoKS55Zil9LCJHZSIpLG1uYT1fLkwoYT0+e3ZhciB7cGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI6Yn09Xy5EQyhhLHtwbGF5ZXJPdmVybGF5QXV0b3BsYXlSZW5kZXJlcjp2b2lkIDB9KTtyZXR1cm4gXy5LKF8uTyx7QTooKT0+YigpPy5jbG9zZUJ1dHRvbix0aGVuOmM9Pl8uSyhfLlcse2RhdGE6Y30se3RodW1ibmFpbE92ZXJsYXlUaW1lU3RhdHVzUmVuZGVyZXI6KHtkYXRhOmR9KT0+Xy5LKF8uVlAse2RhdGE6ZH0pLGJ1dHRvblJlbmRlcmVyOih7ZGF0YTpkfSk9Pl8uSyhfLnBPLHtkYXRhOmQsdGc6KCk9PntRVShhKX0sYnV0dG9uT3ZlcnJpZGVzOntzdHlsZToib3ZlcmxheSJ9fSl9KX0pfSwiSGUiKSxqbmE9Xy5MKGE9Pnt2YXIge3BsYXllck92ZXJsYXlBdXRvcGxheVJlbmRlcmVyOmJ9PV8uREMoYSx7cGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI6dm9pZCAwfSk7CnJldHVybiBfLksoImRpdiIse2NsYXNzOiJ5dHdQbGF5ZXJFbmRzY3JlZW5Db3VudGRvd25Db250YWluZXIifSxfLksoXy5uSCx7Y29tbWFuZDooKT0+YigpPy5uZXh0QnV0dG9uPy5idXR0b25SZW5kZXJlcj8ubmF2aWdhdGlvbkVuZHBvaW50LGNsYXNzTmFtZToieXR3UGxheWVyRW5kc2NyZWVuQ3VlZFZpZGVvQ29udGFpbmVyIixhcmlhTGFiZWw6KCk9Pl8uREooYigpPy52aWRlb1RpdGxlPy5hY2Nlc3NpYmlsaXR5KX0sXy5LKG9uYSx7Li4uYX0pLF8uSyhwbmEsey4uLmF9KSkpfSwiSWUiKSxvbmE9Xy5MKGE9Pnt2YXIge3BsYXllck92ZXJsYXlBdXRvcGxheVJlbmRlcmVyOmJ9PV8uREMoYSx7cGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI6dm9pZCAwfSk7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Inl0d1BsYXllckVuZHNjcmVlbkN1ZWRUaHVtYm5haWxPdmVybGF5In0sXy5LKF8uWFAse3RodW1ibmFpbERldGFpbHM6KCk9PmIoKT8uYmFja2dyb3VuZCxNZDp2b2lkIDAsVGI6ITEsCmNsYXNzTmFtZToieXR3UGxheWVyRW5kc2NyZWVuVGh1bWJuYWlsQ29udGFpbmVyIn0pLF8uSyhfLlcse2RhdGE6KCk9PmIoKT8udGh1bWJuYWlsT3ZlcmxheXN9LHt0aHVtYm5haWxPdmVybGF5VGltZVN0YXR1c1JlbmRlcmVyOih7ZGF0YTpjfSk9Pl8uSyhfLlZQLHtkYXRhOmMsY2xhc3NOYW1lOiJ5dHdQbGF5ZXJFbmRzY3JlZW5UaHVtYm5haWxPdmVybGF5cyIsYXJpYUhpZGRlbjohMH0pfSkpfSwiSmUiKSxwbmE9Xy5MKGE9Pnt2YXIge3BsYXllck92ZXJsYXlBdXRvcGxheVJlbmRlcmVyOmJ9PV8uREMoYSx7cGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI6dm9pZCAwfSk7cmV0dXJuIF8uSygiZGl2Iix7Y2xhc3M6Inl0d1BsYXllckVuZHNjcmVlblZpZGVvSW5mbyIsImFyaWEtaGlkZGVuIjohMH0sXy5LKCJkaXYiLHtjbGFzczoieXR3UGxheWVyRW5kc2NyZWVuVmlkZW9UaXRsZSJ9LF8uSyhfLlYse3RleHQ6KCk9PmIoKT8udmlkZW9UaXRsZX0pKSxfLksoImRpdiIse2NsYXNzOiJ5dHdQbGF5ZXJFbmRzY3JlZW5WaWRlb0F1dGhvciJ9LApfLksoXy5WLHt0ZXh0OigpPT5iKCk/LmJ5bGluZSxtYTohMH0pKSl9LCJLZSIpLGtuYT1fLkwoYT0+e3ZhciB7cGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI6Yn09Xy5EQyhhLHtwbGF5ZXJPdmVybGF5QXV0b3BsYXlSZW5kZXJlcjp2b2lkIDB9KSxjPXtzdHlsZToib3ZlcmxheSJ9O3JldHVybiBfLksoImRpdiIse2NsYXNzOiJ5dHdQbGF5ZXJFbmRzY3JlZW5CdXR0b25Db250YWluZXIifSxfLksoXy5XLHtkYXRhOigpPT5iKCk/LmNhbmNlbEJ1dHRvbn0se2J1dHRvblJlbmRlcmVyOih7ZGF0YTpkfSk9Pl8uSyhfLnBPLHtkYXRhOmQsY2xhc3NOYW1lOiJ5dHdQbGF5ZXJFbmRzY3JlZW5BY3Rpb25CdXR0b24iLHRnOigpPT57UVUoYSl9LGJ1dHRvbk92ZXJyaWRlczpjfSl9KSxfLksoXy5XLHtkYXRhOigpPT5iKCk/Lm5leHRCdXR0b259LHtidXR0b25SZW5kZXJlcjooe2RhdGE6ZH0pPT5fLksoXy5wTyx7ZGF0YTpkLGNsYXNzTmFtZToieXR3UGxheWVyRW5kc2NyZWVuQWN0aW9uQnV0dG9uIiwKYnV0dG9uT3ZlcnJpZGVzOmN9KX0pKX0sIkxlIik7dmFyIEdXPV8uTChhPT57dmFyIGI9Xy5rRygkVCksYz1fLlAoInl0d1BsYXllck1pZGRsZUNvbnRyb2xzSG9zdCIsInBsYXllci1jb250cm9scy1taWRkbGUiLHsicHJldmVudC1jb250cm9scy1jb2xsaXNpb24iOigpPT57dmFyIGg9Yj8uKCk7aWYoIWg/LmlzUmVhZHk/LigpKXJldHVybiExO2g9aD8uZ2V0U2l6ZSgpPy5oZWlnaHQ7aD0hIWgmJmg8Mjc1O3ZhciBrPWEuRygpLmJhPy52b2x1bWVDb250cm9sVHlwZT09PSJ2b2x1bWUtc2xpZGVyIjtyZXR1cm4gaHx8a319KSxkPSgpPT57dmFyIGg9YS5HKCk7cmV0dXJuIGgucGxheWVyU3RhdGU9PT0zfHxoLnBsYXllclN0YXRlPT09LTF9LGU9KCk9Pnt2YXIgaD1hLkcoKTt2YXIgaz1iPy4oKTtYUShrKXx8IWs/LmlzUmVhZHk/LigpP2s9ITE6aD8uYmE/LnZuP2s9ITA6KGg9ay5nZXRWaWRlb0RhdGEoKSxrPSFoLmlzTGlzdGVkfHxoLnlwY1ByZXZpZXd8fGguaXNMaXZlfHx0eXBlb2Ygay5nZXRMb29wUmFuZ2U9PT0iZnVuY3Rpb24iJiYKay5nZXRMb29wUmFuZ2UoKT8hMDohMSk7cmV0dXJuIWt9LGY9Xy5QKCJwbGF5ZXItY29udHJvbHMtbWlkZGxlLWNvcmUtYnV0dG9ucyIseyJzY3JlZW5yZWFkZXItc2FmZS1oaWRlLW1pZGRsZS1idXR0b25zIjpkfSk7cmV0dXJuIF8uSygicGxheWVyLW1pZGRsZS1jb250cm9scyIse2NsYXNzOmN9LF8uSyhfLk8se0E6ZCx0aGVuOigpPT5fLksocW5hLG51bGwpfSksXy5LKCJkaXYiLHtjbGFzczpmfSxfLksoXy5PLHtBOmUsdGhlbjooKT0+Xy5LKHJuYSx7RzphLkcsd2F0Y2hOZXh0UmVzcG9uc2U6YS53YXRjaE5leHRSZXNwb25zZX0pfSksXy5LKFhWLHtGZDotMSxHOmEuRyxjbGFzc05hbWU6Inl0d1BsYXllck1pZGRsZUNvbnRyb2xzQTExeVNlZWtCdXR0b24ifSksXy5LKF8uTyx7QTooKT0+e3ZhciBoPWEuRygpO3JldHVybiF1UyhoKX0sdGhlbjooKT0+Xy5LKCRWLHtHOmEuR30pLFc6KCk9Pl8uSyhhVyx7RzphLkd9KX0pLF8uSyhYVix7RmQ6MSxHOmEuRyxjbGFzc05hbWU6Inl0d1BsYXllck1pZGRsZUNvbnRyb2xzQTExeVNlZWtCdXR0b24ifSksCl8uSyhfLk8se0E6ZSx0aGVuOigpPT5fLksoc25hLHtHOmEuRyx3YXRjaE5leHRSZXNwb25zZTphLndhdGNoTmV4dFJlc3BvbnNlfSl9KSkpfSwiTWUiKTtHVy5pZG9tQ29tcGF0PSEwOwp2YXIgcW5hPV8uTCgoKT0+Xy5LKCJkaXYiLHtjbGFzczoicGxheWVyLWNvbnRyb2xzLXNwaW5uZXIifSxfLksoImRpdiIse2NsYXNzOiJzcGlubmVyIn0pKSwiTmUiKSxybmE9Xy5MKGE9Pnt2YXIgYj1fLmtHKCRUKSxjPSgpPT4hYS5HKCkuYmE/LnZuO3JldHVybiBfLksoWVYse25hbWU6IlBMQVlFUl9QUkVWSU9VUyIsYXJpYUxhYmVsOl8uJE4uTXQsYXJpYURpc2FibGVkOmMsY2xhc3NOYW1lOl8uUCgicGxheWVyLW1pZGRsZS1jb250cm9scy1wcmV2LW5leHQtYnV0dG9uIix7Imljb24tZGlzYWJsZSI6Y30pLFVkOjM2ODQwLGNvbnRlbnQ6KCk9Pl8uSygiZGl2Iix7Y2xhc3M6InBsYXllci1taWRkbGUtY29udHJvbHMtcHJldi1uZXh0LXZpc2libGUtYXJlYSJ9LF8uSyhfLk1ELHtpY29uOiJQTEFZRVJfUFJFVklPVVMifSkpLG9uY2xpY2s6KCk9Pnt2YXIgZD1hLkcoKSxlPWI/LigpO2QucmMmJmU/LnVuTXV0ZSgpO3ZhciBmPWEud2F0Y2hOZXh0UmVzcG9uc2U/LigpLGg9QVMoZik7CmlmKFhRKGUpJiZmJiZoKXtpZihkPVJVKGgpLlVhKV8uJEQoZCksXy5BSihkLHt9LCExKX1lbHNlIGY9YS5HKCkuYmE/LnZuLHBqYShjKCksZSxmKSxkLmJhPy51aiYmXy5ETyhfLmh4KCksMjcyNDApfX0pfSwiT2UiKSxzbmE9Xy5MKGE9Pnt2YXIgYj1fLmtHKCRUKSxjPSgpPT57dmFyIGQ9Yj8uKCk7aWYoIWQ/LmlzUmVhZHk/LigpKXJldHVybiEwO3ZhciBlPWQ/LmdldFBsYXlsaXN0KCk7ZD1kPy5nZXRQbGF5bGlzdEluZGV4KCk7dmFyIGY9ITE7ZSYmZCE9PXZvaWQgMCYmKGY9ZD49ZS5sZW5ndGgtMSk7cmV0dXJuIGZ9O3JldHVybiBfLksoWVYse25hbWU6IlBMQVlFUl9ORVhUIixhcmlhTGFiZWw6Xy4kTi5LdCxhcmlhRGlzYWJsZWQ6YyxVZDozNjg0MSxjb250ZW50OigpPT5fLksoImRpdiIse2NsYXNzOiJwbGF5ZXItbWlkZGxlLWNvbnRyb2xzLXByZXYtbmV4dC12aXNpYmxlLWFyZWEifSxfLksoXy5NRCx7aWNvbjoiUExBWUVSX05FWFQifSkpLGNsYXNzTmFtZTpfLlAoInBsYXllci1taWRkbGUtY29udHJvbHMtcHJldi1uZXh0LWJ1dHRvbiIsCnsiaWNvbi1kaXNhYmxlIjpjfSksb25jbGljazooKT0+e3ZhciBkPWEuRygpLGU9Yj8uKCk7ZC5yYyYmZT8udW5NdXRlKCk7dmFyIGY9YS53YXRjaE5leHRSZXNwb25zZT8uKCksaD1BUyhmKTtpZihYUShlKSYmZiYmaCl7aWYoZD1SVShoKS5uZXh0KV8uJEQoZCksXy5BSihkLHt9LCExKX1lbHNlIGMoKXx8KGU/Lm5leHRWaWRlbygpLGQuYmE/LnVqJiZfLkRPKF8uaHgoKSwyNzI0MCkpfX0pfSwiUGUiKTt2YXIgSFc9Xy5MKCh7dmlkZW9EZXRhaWxzOmEsRzpifSk9PntmdW5jdGlvbiBjKFQpe0MoKTtULnN0b3BQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIGQoVCl7RygpO1Quc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gZShUKXtDKCk7VC5zdG9wUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBmKFQpe0U/LnZhbHVlPy5jb250YWlucyhULnRhcmdldCl8fEcoKTtULnN0b3BQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIGgoVCl7VC5wcmV2ZW50RGVmYXVsdCgpO1hTKDIzODUxKTt2YXIgYmE9U1UoYixEKTtpZihiYSl7dmFyIGFhPWIoKT8uSD8uZ2V0Q3VycmVudFRpbWUoKTtfLkFKKGJhLHtwYXJhbXM6e3RpbWVzdGFtcDphYT9NYXRoLmZsb29yKGFhKS50b1N0cmluZygpOnZvaWQgMH19LCExLHtldmVudDpUfSl9VC5zdG9wUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBrKFQpe1UoVCk7VC5zdG9wUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBsKFQpe1QucHJldmVudERlZmF1bHQoKTt6KCl8fEYoKSYmRigpPDMyMD8KVShUKTpDKCk7VC5zdG9wUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBtKFQpe1QucHJldmVudERlZmF1bHQoKTtHKDI1MDApO1Quc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gbihUKXtHKDI1MDApO1Quc3RvcFByb3BhZ2F0aW9uKCl9dmFyIFtwLHJdPV8uSighMSx2b2lkIDAsImlaTVFtZiIpLFt0LHZdPV8uSighMSx2b2lkIDAsIkNoaEgwYiIpLHo9dCxFPV8udkUoImRpdiIpLEEsRj0oKT0+YigpLkg/LmdldFNpemU/LigpPy53aWR0aCxDPSgpPT57RigpJiZGKCk8MzIwfHwocighMCksQSYmY2xlYXJUaW1lb3V0KEEpLHooKXx8KGJUKCksdighMCkpKX0sRz0oVD01MDApPT57RigpJiZGKCk8MzIwfHwocighMSksQT1zZXRUaW1lb3V0KCgpPT57IXAoKSYmeigpJiYodighMSksY1QoYigpLHtJYzohMH0pKX0sVCkpfSxEPSgpPT5fLkIoYT8uKCkuY29sbGFwc2VkUmVuZGVyZXIsbVYpPy50aXRsZSxIPSgpPT5hPy4oKS5jaGFubmVsVGh1bWJuYWlsRW5kcG9pbnQsUj0oKT0+YT8uKCkuY2hhbm5lbFRodW1ibmFpbCwKTT0oKT0+Xy5CKGE/LigpLmV4cGFuZGVkUmVuZGVyZXIsblYpPy50aXRsZT8/KF8ueCgiZW1iZWRzX3ZpZF9kZXRhaWxzX2ZhbGxiYWNrX2NoYW5uZWxfbmFtZV9rcyIpP3ZvaWQgMDpfLkIoYT8uKCkuY29sbGFwc2VkUmVuZGVyZXIsbVYpPy5zdWJ0aXRsZSksUz0oKT0+Xy5CKGE/LigpLmV4cGFuZGVkUmVuZGVyZXIsblYpPy5zdWJ0aXRsZSxZPSgpPT5fLkIoYT8uKCkuZXhwYW5kZWRSZW5kZXJlcixuVik/LnN1YnNjcmliZUJ1dHRvbixwYT1fLk4oKCk9Pl8uQihTVShiLEQpLF8uVkQpPy51cmwsdm9pZCAwLCJ5VEhOaiIpLG9hPV8uTigoKT0+Xy5CKGE/LigpLmNoYW5uZWxUaHVtYm5haWxFbmRwb2ludCxfLlZEKT8udXJsLHZvaWQgMCwicHdsM0ljIiksVT1UPT57VC5wcmV2ZW50RGVmYXVsdCgpO2lmKGE/LigpLmNoYW5uZWxUaHVtYm5haWxFbmRwb2ludCYmYT8uKCkpe3ZhciBiYT1hPy4oKS5jaGFubmVsVGh1bWJuYWlsRW5kcG9pbnQ7WFMoMzY5MjUpO18uQUooYmEse30sITEsCntldmVudDpUfSl9fSxoYT1fLlAoInl0bVZpZGVvSW5mb1ZpZGVvVGl0bGVDb250YWluZXIiLHt5dG1WaWRlb0luZm9Mb2dvRW5hYmxlZDooKT0+ISFhPy4oKS5jaGFubmVsVGh1bWJuYWlsfSksbWE9Xy5QKCJ5dG1WaWRlb0luZm9PdmVybGF5Iix7eXRtVmlkZW9JbmZvRXhwYW5kZWQ6KCk9PnooKX0pLHRhPSgpPT4hIV8uQihhPy4oKS5leHBhbmRlZFJlbmRlcmVyLG5WKT8uc3Vic2NyaWJlQnV0dG9uJiYhYigpLmJhPy5vaDtyZXR1cm4gXy5LKCJlbWJlZGRlZC1wbGF5ZXItdmlkZW8tZGV0YWlscyIse2NsYXNzOiJ5dG1WaWRlb0luZm9Ib3N0In0sXy5LKCJkaXYiLHtjbGFzczoieXRtVmlkZW9JbmZvVmlkZW9EZXRhaWxzQ29udGFpbmVyIn0sXy5LKCJkaXYiLHtjbGFzczpoYX0sXy5LKF8uTyx7QTpELHRoZW46KCk9Pl8uSyhfLk8se0E6cGEsdGhlbjooKT0+Xy5LKCJhIix7Im9uOmNsaWNrIjpoLGNsYXNzOiJ5dG1WaWRlb0luZm9WaWRlb1RpdGxlIixlbDpfLnJGKFQ9PntXUyhULAoyMzg1MSl9KSxocmVmOnBhfSxfLksoXy5WLHt0ZXh0OkQsY2xhc3NOYW1lOl8uUCgieXRtVmlkZW9JbmZvTGluayIpLHViOiEwLG5vV3JhcDohMCxtYTohMH0pKSxXOigpPT5fLksoInNwYW4iLHtjbGFzczoieXRtVmlkZW9JbmZvVmlkZW9UaXRsZSJ9LF8uSyhfLlYse3RleHQ6RCx1YjohMCxub1dyYXA6ITAsbWE6ITB9KSl9KX0pLF8uSyhfLk8se0E6Xy54KCJlbWJlZHNfdmlkX2RldGFpbHNfZmFsbGJhY2tfY2hhbm5lbF9uYW1lX2tzIik/SDpNLHRoZW46KCk9Pl8uSyhfLk8se0E6b2EsdGhlbjooKT0+Xy5LKCJhIix7Im9uOmNsaWNrIjprLGNsYXNzOiJ5dG1WaWRlb0luZm9DaGFubmVsVGl0bGUiLGhyZWY6b2F9LF8uSyhfLlYse3RleHQ6TSxjbGFzc05hbWU6Xy5QKCJ5dG1WaWRlb0luZm9MaW5rIikseWM6ITAsdWI6ITAsbm9XcmFwOiEwLG1hOiEwfSkpLFc6KCk9Pl8uSygic3BhbiIse2NsYXNzOiJ5dG1WaWRlb0luZm9DaGFubmVsVGl0bGUifSxfLksoXy5WLHt0ZXh0Ok0seWM6ITAsCnViOiEwLG5vV3JhcDohMCxtYTohMH0pKX0pfSkpLF8uSyhfLk8se0E6Uix0aGVuOigpPT5fLksoImRpdiIse2NsYXNzOiJ5dG1WaWRlb0luZm9DaGFubmVsQ29udGFpbmVyIixlbDpFLCJvbjpmb2N1c2luIjplLCJvbjpmb2N1c291dCI6Ziwib246bW91c2VvdmVyIjpjLCJvbjptb3VzZW91dCI6ZH0sXy5LKCJidXR0b24iLHsib246dG91Y2hzdGFydCI6bCwib246dG91Y2hlbmQiOm0sIm9uOmNsaWNrIjprLGNsYXNzOl8uUCgieXRtVmlkZW9JbmZvTGluayIsInl0bVZpZGVvSW5mb0NoYW5uZWxBdmF0YXIiKSxlbDpfLnJGKFQ9PntXUyhULDM2OTI1KX0pfSxfLksoXy5VUCx7dGh1bWJuYWlsRGV0YWlsczpSLGNsYXNzTmFtZToieXRtVmlkZW9JbmZvQ2hhbm5lbExvZ28iLGFsdDoidGh1bWJuYWlsLWltYWdlIn0pKSxfLksoImRpdiIse2NsYXNzOm1hLCJvbjp0b3VjaHN0YXJ0IjpDLCJvbjp0b3VjaGVuZCI6bn0sXy5LKCJkaXYiLHtjbGFzczoieXRtVmlkZW9JbmZvQ2hhbm5lbEluZm8iLApyb2xlOiJ0ZXh0In0sXy5LKF8uVix7dGV4dDpNLGNsYXNzTmFtZToieXRtVmlkZW9JbmZvRmx5b3V0Q2hhbm5lbFRpdGxlIix5YzohMCx1YjohMCxub1dyYXA6ITAsbWE6ITB9KSxfLksoXy5WLHt0ZXh0OlMsY2xhc3NOYW1lOiJ5dG1WaWRlb0luZm9GbHlvdXRDaGFubmVsU3VidGl0bGUiLHljOiEwLHViOiEwLG5vV3JhcDohMCxtYTohMH0pKSxfLksoXy5PLHtBOnRhLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Inl0bVZpZGVvSW5mb1N1YnNjcmliZUJ1dHRvbiJ9LF8uSyhfLlcse2RhdGE6WX0se3N1YnNjcmliZUJ1dHRvblJlbmRlcmVyOmZXfSkpfSkpKX0pKSl9LCJRZSIpO0hXLmlkb21Db21wYXQ9ITA7dmFyIFRVPV8uJE4uQXQsT2xhPV8uJE4uZ3UsdG5hPV8uTCgoe1F5OmEsb25DbGljazpiLEpuOmMsQnM6ZH0pPT57dmFyIGU9Xy51RSgiYnV0dG9uIixoPT57V1MoaCwyODY2Mil9KSxmPSgpPT5VVShhKCksYz8uKCksZD8uKCkpLmFyaWFMYWJlbDtyZXR1cm4gXy5LKCJ5dG0tbXV0ZS1idXR0b24iLHtjbGFzczoieXRtTXV0ZUJ1dHRvbkhvc3QifSxfLksoImJ1dHRvbiIse2VsOmUsY2xhc3M6Inl0bU11dGVCdXR0b25CdXR0b24iLHRpdGxlOmYsImFyaWEtbGFiZWwiOmYsIm9uOmNsaWNrIjpmdW5jdGlvbihoKXtYUygyODY2Mik7Yj8uKGgpO2guc3RvcFByb3BhZ2F0aW9uKCl9fSxfLksoInNwYW4iLG51bGwsXy5LKF8uTUQse2ljb246KCk9PlVVKGEoKSxjPy4oKSxkPy4oKSkuaWNvbk5hbWV9KSkpKX0sIlJlIik7dmFyIElXPV8uTCgoe0hCOmEsV3E6YixKbjpjLEJzOmQsY2xhc3NOYW1lOmV9KT0+Xy5LKCJ5dC1tdXRlLXRvZ2dsZS1idXR0b24iLHtjbGFzczplfSxfLksodG5hLHtReTooKT0+e3ZhciBmPWEoKTtyZXR1cm4gZi5yY3x8Zi52b2x1bWU9PT0wPzA6Zi52b2x1bWU+NTA/MToyfSxvbkNsaWNrOmY9Pnt2YXIgaD1hKCkuSDtoJiYoaC5pc011dGVkKCk/aC51bk11dGUoKTpoLm11dGUoITEpKTtiPy4oZil9LEpuOigpPT4hIWM/LigpLEJzOigpPT4hIWQ/LigpfSkpLCJTZSIpO0lXLmlkb21Db21wYXQ9ITA7dmFyIFZVO3ZhciB1bmE9Xy5MKCh7ZW5hYmxlZDphLGFyaWFMYWJlbDpiLG9uQ2xpY2s6Y30pPT5fLksoImJ1dHRvbiIseyJhcmlhLWxhYmVsIjpiLCJhcmlhLXByZXNzZWQiOmEsIm9uOmNsaWNrIjpmdW5jdGlvbihkKXtjPy4oZCk7ZC5zdG9wUHJvcGFnYXRpb24oKX0sY2xhc3M6Inl0d0F1dG9uYXZUb2dnbGVCdXR0b25Ib3N0In0sXy5LKF8uTUQse2ljb246KCk9PmEoKT8iQVVUT05BVl9PTl9UT0dHTEVfU1BBTk5FUiI6IkFVVE9OQVZfT0ZGX1RPR0dMRV9TUEFOTkVSIixjbGFzc05hbWU6KCk9PmEoKT8ieXR3QXV0b25hdlRvZ2dsZUJ1dHRvblNwYW5uZXJJY29uT24iOiJ5dHdBdXRvbmF2VG9nZ2xlQnV0dG9uU3Bhbm5lckljb25PZmYifSksXy5LKF8uTUQse2ljb246KCk9PmEoKT8iUExBWV9DSVJDTEVfRklMTEVEIjoiUEFVU0VfQ0lSQ0xFX0ZJTExFRCIsY2xhc3NOYW1lOigpPT5hKCk/Inl0d0F1dG9uYXZUb2dnbGVCdXR0b25QbGF5SWNvbiI6Inl0d0F1dG9uYXZUb2dnbGVCdXR0b25QYXVzZUljb24ifSkpLAoiVGUiKTt2YXIgSlc9Xy5MKCh7RzphLEN1OmJ9KT0+e18uQ1EoYixlPT57ZSYmZS5lbmFibGVkIT09dm9pZCAwJiZlLmVuYWJsZWQhPT1hKCkuYXV0b25hdkVuYWJsZWQmJlhVKGEoKSxlLmVuYWJsZWQsITEpfSk7dmFyIGM9Xy5OKCgpPT5hKCkuYXV0b25hdkVuYWJsZWQ/Xy5ESihiKCkuZW5hYmxlZEFjY2Vzc2liaWxpdHlEYXRhKTpfLkRKKGIoKS5kaXNhYmxlZEFjY2Vzc2liaWxpdHlEYXRhKSx2b2lkIDAsIlE5Z3Z6YyIpLGQ9Xy5OKCgpPT5hKCkuYXV0b25hdkVuYWJsZWQsdm9pZCAwLCJJUUNaa2YiKTtyZXR1cm4gXy5LKCJwbGF5ZXItYXV0b25hdi10b2dnbGUiLHtjbGFzczoieXR3UGxheWVyQXV0b25hdlRvZ2dsZUhvc3QifSxfLksodW5hLHtlbmFibGVkOmQsYXJpYUxhYmVsOmMsb25DbGljazplPT57dmFyIGY9YSgpLGg9Zi5hdXRvbmF2RW5hYmxlZDtYVShmLCFmLmF1dG9uYXZFbmFibGVkLCEwKTt2YXIgaz1iKCk7IWgmJmsub25FbmFibGVkQ29tbWFuZD9fLkFKKGsub25FbmFibGVkQ29tbWFuZCwKaywhMCk6aCYmay5vbkRpc2FibGVkQ29tbWFuZCYmXy5BSihrLm9uRGlzYWJsZWRDb21tYW5kLGssITApO1BsYShmLGIoKSk7dVMoZil8fGNUKGYse0ljOiEwfSk7ZS5zdG9wUHJvcGFnYXRpb24oKX19KSl9LCJVZSIpO0pXLmlkb21Db21wYXQ9ITA7dmFyIExXPV8uTChhPT57dmFyIGI9KCk9Pk5TKGEucGxheWVyT3ZlcmxheVJlbmRlcmVyPy4oKSxhLnRodW1ibmFpbFByZXZpZXdSZW5kZXJlcj8uKCkpLGM9KCk9PmIoKSYmIWEuRygpLmJhPy5oaWRlVmlkZW9JbmZvO3JldHVybiBfLksoInBsYXllci10b3AtY29udHJvbHMiLHtjbGFzczoieXR3UGxheWVyVG9wQ29udHJvbHNIb3N0In0sXy5LKCJkaXYiLHtjbGFzczpfLlAoInBsYXllci1jb250cm9scy10b3AiLHt5dHdQbGF5ZXJUb3BDb250cm9sc0NvbnRhaW5lcldpdGhFbWJlZGRlZFZpZGVvRGV0YWlsczpjfSksIm9uOmNsaWNrIjpmdW5jdGlvbihkKXtkLnN0b3BQcm9wYWdhdGlvbigpfX0sXy5LKF8uTyx7QTpjLHRoZW46KCk9Pl8uSyhIVyx7dmlkZW9EZXRhaWxzOmIsRzphLkd9KX0pLF8uSyhfLk8se0E6KCk9PiFhLkcoKS5iYT8ubmgmJiEkUyhhLkcoKSksdGhlbjooKT0+Xy5LKF8uTyx7QTpjLHRoZW46KCk9Pl8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJ5dHdQbGF5ZXJUb3BDb250cm9sc1BsYXllckNvbnRyb2xzVG9wUmlnaHQiLAoicGxheWVyLWNvbnRyb2xzLXRvcC1yaWdodCIse3l0d1BsYXllclRvcENvbnRyb2xzQ29udGFpbmVyV2l0aEVtYmVkZGVkVmlkZW9EZXRhaWxzUGxheWVyQ29udHJvbHNUb3BSaWdodDpjfSl9LF8uSyhLVyx7RzphLkcscGxheWVyT3ZlcmxheVJlbmRlcmVyOmEucGxheWVyT3ZlcmxheVJlbmRlcmVyfSkpLFc6KCk9Pl8uSyhLVyx7RzphLkcscGxheWVyT3ZlcmxheVJlbmRlcmVyOmEucGxheWVyT3ZlcmxheVJlbmRlcmVyfSl9KX0pKSl9LCJWZSIpO0xXLmlkb21Db21wYXQ9ITA7CnZhciB2bmE9KGEsYik9Pl8uSyhkVyx7Z2Y6YSxWcjohMCxXcTpifSksS1c9Xy5MKCh7RzphLHBsYXllck92ZXJsYXlSZW5kZXJlcjpifSk9Pnt2YXIgYz0oKT0+YSgpLkg7cmV0dXJuIF8uSyhfLklCLG51bGwsXy5LKF8uRUUsbnVsbCxfLksoXy5DRSx7d2hlbjooKT0+YSgpLmJhPy52b2x1bWVDb250cm9sVHlwZT09PSJ2b2x1bWUtc2xpZGVyIn0sKCk9Pl8uSyhIVix7b3JpZW50YXRpb246InZlcnRpY2FsX2Rvd24iLGJqOiEwLEg6Y30pKSxfLksoXy5DRSx7d2hlbjooKT0+e3ZhciBkPWEoKS5IPy5nZXRTaXplKCksZT1kPy53aWR0aCYmZC53aWR0aD49MjUwO2Q9ZD8uaGVpZ2h0JiZkLmhlaWdodD49MjAwO3JldHVybiBhKCkuYmE/LnZvbHVtZUNvbnRyb2xUeXBlPT09Im11dGUtYnV0dG9uIiYmZSYmZH19LCgpPT5fLksoSVcse0hCOmEsSm46ITB9KSksXy5LKF8uREUsbnVsbCwoKT0+Xy5LKF8uSUIsbnVsbCkpKSxfLksoXy5PLHtBOigpPT4hIXpTKGI/LigpKSx0aGVuOigpPT5fLksoSlcsCntHOmEsQ3U6KCk9PnpTKGI/LigpKX0pfSksdm5hKGEsZnVuY3Rpb24oKXtjVChhKCkse0ljOiEwfSl9KSxfLksoXy5PLHtBOigpPT57dmFyIGQ9YSgpLkg/LmdldFNpemUoKTtkPWQ/LndpZHRoJiZkLndpZHRoPj0zMjB8fCFhKCkuYmE/Lm9oO3JldHVybiEhYSgpLnRhLlNqJiZkfSx0aGVuOigpPT5fLksoYlcse0c6YX0pfSkpfSwiV2UiKTtLVy5pZG9tQ29tcGF0PSEwO3ZhciBNVz1fLkwoYT0+e2Z1bmN0aW9uIGIoVCl7VC5wb2ludGVyVHlwZT09PSJtb3VzZSImJihsKCkuUyh7ZWE6ITB9KSxjVChsKCkse0ljOiEwfSkpfWZ1bmN0aW9uIGMoVCl7S1UoVCxsKCkpfWZ1bmN0aW9uIGQoVCl7dmFyIGJhPWwoKTtpZih4VShUKSl7VC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgYWE9VC50b3VjaGVzWzBdO0hVPWFhLnBhZ2VYO3pVPWFhLnBhZ2VZO18ueCgid2ViX2VuYWJsZV9zbWFydF96b29tIikmJlQudG91Y2hlcy5sZW5ndGg9PT0yJiYoQlU9d1UoVCkpO0hUKGJhLFQudG91Y2hlcy5sZW5ndGgpO2JhLmJhPy5NaXx8YmEuTmF8fGJhLldkfHxiYS5zYnx8Xy5URSgpfHwoRVU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vdmllX3BsYXllciIpKSYmT2JqZWN0LmFzc2lnbihFVS5zdHlsZSx7dHJhbnNpdGlvbjoiIix0cmFuc2Zvcm1PcmlnaW46IiJ9KX19ZnVuY3Rpb24gZShUKXt2YXIgYmE9bCgpO2lmKHhVKFQpKXtULnN0b3BQcm9wYWdhdGlvbigpO3ZhciBhYT0KVC50b3VjaGVzWzBdO0FVPSEwO0dVPWFhLnBhZ2VYO3lVPWFhLnBhZ2VZO2FhPXtsazpHVS1IVSxPZDp5VS16VX07YWEuT2Q9PT0wJiZhYS5saz09PTB8fF8uTUUoKSYmIWJhLmlzRnVsbHNjcmVlbnx8YmEuYmE/Lk1pfHxULnByZXZlbnREZWZhdWx0KCk7SVQoVCxhYSxiYSk7Xy54KCJ3ZWJfZW5hYmxlX3NtYXJ0X3pvb20iKSYmVC50b3VjaGVzLmxlbmd0aD09PTImJkJVIT09MCYmTWF0aC5hYnMod1UoVCktQlUpPjEwJiZEVSghMCk7IWJhLmJhPy5NaSYmKGJhLk5hfHxiYS5XZHx8YmEuc2J8fF8uVEUoKXx8Xy5NRSgpJiYhYmEuaXNGdWxsc2NyZWVufHwoYmEuUyh7ZWE6ITF9KSxUPWFhLk9kLGJhLmlzRnVsbHNjcmVlbiYmKFQqPS0xKSwhYmEuaXNGdWxsc2NyZWVuJiZUPjAmJihUPTApLFQ8LTEwMCYmKFQ9LTEwMCksYmEuaXNGdWxsc2NyZWVuP0VVJiZPYmplY3QuYXNzaWduKEVVLnN0eWxlLHt0cmFuc2Zvcm06YHNjYWxlKCR7MS0uMDUqTWF0aC5taW4oNCpNYXRoLmFicyhULy0xMDApLAoxKX0pIHRyYW5zbGF0ZVkoJHstVH1weClgfSk6RVUmJk9iamVjdC5hc3NpZ24oRVUuc3R5bGUse3RyYW5zZm9ybTpgc2NhbGUoJHsxKy4yNSpNYXRoLmFicyhULy0xMDApfSlgLHRyYW5zZm9ybU9yaWdpbjoiYm90dG9tIGNlbnRlciJ9KSksIWJhLmlzRnVsbHNjcmVlbnx8YmEuaXNEcmFnZ2luZ3x8YmEuc2J8fCFfLk1FKCkmJiFfLlRFKCk/MDpiYS5XZHx8KGJhLk5hP0RRKGFhLk9kLDAsMjE1KTpEUShhYS5PZCwtMjE1LDApKSE9PTApJiYoYlQoKSxiYS5TKHtXZDohMCxlYTohMCxKZjpiYS5OYT9EUShhYS5PZCwwLDIxNSk6RFEoYWEuT2QsLTIxNSwwKX0pKX19ZnVuY3Rpb24gZihUKXtJVShULGwoKSxtKCkpfWZ1bmN0aW9uIGgoVCl7SVUoVCxsKCksbSgpKX1mdW5jdGlvbiBrKFQpe1Quc3RvcFByb3BhZ2F0aW9uKCl9dmFyIHtHOmwsZGF0YTptfT1fLkRDKGEse2RhdGE6dm9pZCAwfSksbj1fLk4oKCk9PmwoKS5ILHZvaWQgMCwiWjdIOXJlIik7YT1fLk4oKCk9PmwoKS5lYSx2b2lkIDAsCiJkcmhxN2QiKTt2YXIgcD1fLk4oKCk9PmwoKS5zYix2b2lkIDAsInZzdFlFZSIpLHI9Xy5OKCgpPT5sKCkuYmE/LkVlLHZvaWQgMCwiTGJGd0piIiksdD1fLk4oKCk9PmwoKS5LYj4oXy54KCJtd2ViX3BsYXllcl90YXBwaW5nX3RocmVzaG9sZF9raWxsc3dpdGNoIik/ODowKSx2b2lkIDAsImU0anFNZCIpLHY9Xy5OKCgpPT5sKCkuSmQhPT0wLHZvaWQgMCwicHFnRDVlIiksej1fLk4oKCk9PmwoKS5iYT8uWmgsdm9pZCAwLCJ0bVFkZyIpLEU9KCk9Pm0oKT8ucGxheWVyUmVzcG9uc2U/LnBsYXlhYmlsaXR5U3RhdHVzLEE9Xy5OKCgpPT4kUyhsKCksbSgpPy5wbGF5ZXJSZXNwb25zZT8ucGxheWFiaWxpdHlTdGF0dXMpLHZvaWQgMCwiWGE5cXhmIiksRj1fLk4oKCk9PiFsKCkuYmE/LnpyLHZvaWQgMCwibUZPbHQiKSxDPV8uTigoKT0+e3ZhciBUPWwoKTtyZXR1cm4gXy54KCJtd2ViX3BjX2xpdmVfZHZyX2tzIik/ITE6VC5pc0xpdmUmJiFULmlzTGl2ZUR2ckVuYWJsZWR9LHZvaWQgMCwKIkQxaTY3IiksRz1fLk4oKCk9Pnt2YXIgVD1DKCk7cmV0dXJuIHJVKCkmJiFUfSx2b2lkIDAsInZRemltZSIpLEQ9Xy5OKCgpPT50KCkmJnYoKSx2b2lkIDAsIkJlR3A3IiksSD1fLlAoIm5ldy1jb250cm9scyIsImJpZ2JhciIsIm1lZGl1bS1tb2RpZmljYXRpb24iLCJhbmltYXRpb24tZW5hYmxlZCIsImVuYWJsZS1mdWxsc2NyZWVuLWNvbnRyb2xzIiwiZnMtd2F0Y2gtc3lzdGVtIix7ZmFkZWluOmEsImJhY2tncm91bmQtaGlkZGVuIjpwLCJmdWxsc2NyZWVuLWNvbnRyb2xzLWFsd2F5cy1vbiI6ciwiZW5hYmxlLWZ1bGxzY3JlZW4tY29udHJvbHMtZm9yLXBvcnRyYWl0IjpfLngoIm13ZWJfZW5hYmxlX3BvcnRyYWl0X2Z1bGxzY3JlZW5fYWN0aW9ucyIpfSksUj0oKT0+bT8uKCk/LndhdGNoTmV4dFJlc3BvbnNlLE09KCk9Pm0/LigpPy5wbGF5ZXJPdmVybGF5UmVuZGVyZXIsUz0oKT0+bSgpPy5qYj8uZW1iZWRQcmV2aWV3Py50aHVtYm5haWxQcmV2aWV3UmVuZGVyZXIsWT0oKT0+CkdTKG0/LigpPy5wbGF5ZXJPdmVybGF5UmVuZGVyZXIpLHBhPSgpPT5tKCk/LmpiPy5lbWJlZFByZXZpZXc/LnRodW1ibmFpbFByZXZpZXdSZW5kZXJlcj8uZGVmYXVsdFRodW1ibmFpbHx8bSgpPy5wbGF5ZXJSZXNwb25zZT8udmlkZW9EZXRhaWxzPy50aHVtYm5haWwsb2E9KCk9Pm0oKT8ucGxheWVyUmVzcG9uc2U/LnBsYXllckNvbmZpZz8uYXV0b2Nyb3BDb25maWcsVT0oKT0+bSgpPy5wbGF5ZXJSZXNwb25zZT8uZW5kc2NyZWVuPy5lbmRzY3JlZW5SZW5kZXJlciYmbigpLGhhPSgpPT57dmFyIFQ7aWYoVD1QUyhtKCk/LnBsYXllck92ZXJsYXlSZW5kZXJlcixtKCk/LmpiKSl7VD1sKCk7dmFyIGJhPW4oKSxhYT1QUyhtKCk/LnBsYXllck92ZXJsYXlSZW5kZXJlcixtKCk/LmpiKTtpZihhYSYmYWEuaW5mb1BhbmVsT3ZlcnZpZXdWaWV3TW9kZWwmJihhYS5pbmZvUGFuZWxPdmVydmlld1ZpZXdNb2RlbC50aXRsZXx8YWEuaW5mb1BhbmVsT3ZlcnZpZXdWaWV3TW9kZWwuYm9keVRleHQpJiYKYmEmJmJhLmdldFBsYXllclN0YXRlT2JqZWN0JiZiYS5nZXRQbGF5ZXJTaXplJiYhXy5ESShramEsYWEuaW5mb1BhbmVsT3ZlcnZpZXdWaWV3TW9kZWwuZGlzbWlzc1N0YXRlRW50aXR5S2V5KSgpPy5pc0Rpc21pc3NlZCl7YWE9YmEuZ2V0UGxheWVyU3RhdGVPYmplY3QoKT8uaXNFcnJvcjtpZihhYT0hdVMoVCkmJiFhYSlhYT1iYS5nZXRQbGF5ZXJTaXplKCksYmE9YWEud2lkdGg8MzYwLGFhPWFhLmhlaWdodDwzMjAsYWE9ISgoVC5wbGF5ZXJTdGF0ZT09PS0xfHxULnBsYXllclN0YXRlPT09NSkmJmJhJiZhYSk7VD1hYX1lbHNlIFQ9ITF9cmV0dXJuIFR9LG1hPSgpPT57dmFyIFQ9bSgpPy5wbGF5ZXJSZXNwb25zZTtyZXR1cm4gXy5CKFQ/Lm92ZXJsYXk/LnBsYXllckNvbnRyb2xzT3ZlcmxheVJlbmRlcmVyPy5tdXRlZEF1dG9wbGF5LG9WKX0sdGE9KCk9Pm0oKT8uSD8uaXNNdXRlZEJ5RW1iZWRzTXV0ZWRBdXRvcGxheT8uKCk7cmV0dXJuIF8uSygieXRtLXdhdGNoLXBsYXllci1jb250cm9scyIsCntjbGFzczoieXRtV2F0Y2hQbGF5ZXJDb250cm9sc0hvc3QifSxfLksoXy5PLHtBOigpPT57dmFyIFQ9bCgpLGJhPW0oKT8ucGxheWVyUmVzcG9uc2U/LnBsYXlhYmlsaXR5U3RhdHVzO3JldHVybiBfLngoIm13ZWJfaGlkZV9jb250cm9sc19mb3JfdW5wbGF5YWJsZV92aWRlb19rcyIpfHwhYmF8fE1SKGJhKXx8VC5pc0Z1bGxzY3JlZW4/KHlTKFQpfHxULnBsYXllclN0YXRlPT09LTF8fFQucGxheWVyU3RhdGU9PT01fHxULnJjJiYhVC5iYT8uckE/ITE6dVMoVCk/ITA6VC5wbGF5ZXJTdGF0ZT09PTF8fFQucGxheWVyU3RhdGU9PT0zfHxULnBsYXllclN0YXRlPT09Mil8fFQucmMmJnVTKFQpfHwkUyhULGJhKTohMX0sdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoXy5PLHtBOnosdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoR1Yse0c6bCx0aHVtYm5haWxEZXRhaWxzOnBhfSksXy5LKHVWLHtHOmwsSDpuLHBsYXlhYmlsaXR5U3RhdHVzOkV9KSl9KSxfLksoXy5PLHtBOmhhLHRoZW46KCk9PgpfLksodlcse2RhdGE6KCk9PlBTKG0oKT8ucGxheWVyT3ZlcmxheVJlbmRlcmVyLG0oKT8uamIpLHByb3BzOmx9KX0pLF8uSyhfLk8se0E6dGEsdGhlbjooKT0+Xy5LKExWLHtHOmwscGxheWVyTXV0ZWRBdXRvcGxheU92ZXJsYXlSZW5kZXJlcjptYX0pfSksXy5LKF8uTyx7QTooKT0+IXRhKCksdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoV1Yse0c6bH0pLF8uSyhfLk8se0E6KCk9Pl8ueCgibXdlYl9iZXR0ZXJfY2FwdGlvbnNfcGxhY2VtZW50IiksdGhlbjooKT0+Xy5LKCJkaXYiLHtpZDoiY2FwdGlvbnMtZ2Fsb3JlLWNvbnRhaW5lciJ9KX0pLF8uSygiZGl2Iix7aWQ6InBsYXllci1jb250cm9sLW92ZXJsYXkiLGNsYXNzOkgsIm9uOmNsaWNrIjpjLCJvbjpwb2ludGVybW92ZSI6Yiwib246dG91Y2hzdGFydCI6ZCwib246dG91Y2htb3ZlIjplLCJvbjp0b3VjaGVuZCI6Ziwib246dG91Y2hjYW5jZWwiOmh9LF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJwbGF5ZXItY29udHJvbHMtY29udGVudCIsCnsicG9pbnRlci1ldmVudHMtb2ZmIjpEfSl9LF8uSygiZGl2Iix7Y2xhc3M6InBsYXllci1jb250cm9scy1iYWNrZ3JvdW5kLWNvbnRhaW5lciJ9LF8uSygiZGl2Iix7Y2xhc3M6Xy5QKCJwbGF5ZXItY29udHJvbHMtYmFja2dyb3VuZCIseyJmdWxsc2NyZWVuLXJlY3MtZXhwYW5kZWQiOigpPT5JUyhsKCkpfSksIm9uOnRvdWNoc3RhcnQiOmQsIm9uOnRvdWNobW92ZSI6ZSwib246dG91Y2hlbmQiOmYsIm9uOnRvdWNoY2FuY2VsIjpofSksXy5LKCJkaXYiLHtjbGFzczoieXRtV2F0Y2hQbGF5ZXJDb250cm9sc0JhY2tncm91bmRBY3Rpb25JdGVtcyIsIm9uOmNsaWNrIjprfSxfLksoXy5PLHtBOigpPT57dmFyIFQ7aWYoVD0hQSgpKVQ9bSgpPy5wbGF5ZXJSZXNwb25zZT8ucGFpZENvbnRlbnRPdmVybGF5Py5wYWlkQ29udGVudE92ZXJsYXlSZW5kZXJlcjtyZXR1cm4gVH0sdGhlbjooKT0+Xy5LKERXLHtkYXRhOigpPT5tKCk/LnBsYXllclJlc3BvbnNlPy5wYWlkQ29udGVudE92ZXJsYXk/LnBhaWRDb250ZW50T3ZlcmxheVJlbmRlcmVyfSl9KSwKXy5LKF8uTyx7QTpVLHRoZW46KCk9Pl8uSyhsVyx7ZW5kc2NyZWVuUmVuZGVyZXI6KCk9Pm0oKT8ucGxheWVyUmVzcG9uc2U/LmVuZHNjcmVlbj8uZW5kc2NyZWVuUmVuZGVyZXIsRzpsfSl9KSkpLF8uSyhfLk8se0E6KCk9PiFBKCksdGhlbjooKT0+Xy5LKF8uSUIsbnVsbCxfLksoXy5PLHtBOkcsdGhlbjooKT0+Xy5LKHJXLHtHOmx9KX0pLF8uSyhGVix7RzpsLHBsYXllck92ZXJsYXlSZW5kZXJlcjpNfSksXy5LKFZWLHtnZjpsLEliOiExfSkpfSksXy5LKCJkaXYiLHtzdHlsZTpZVSgoKT0+SlMobCgpLEFTKG0/LigpPy53YXRjaE5leHRSZXNwb25zZSkpKX0sXy5LKExXLHtHOmwscGxheWVyT3ZlcmxheVJlbmRlcmVyOk0sdGh1bWJuYWlsUHJldmlld1JlbmRlcmVyOlN9KSxfLksoXy5PLHtBOigpPT4hQSgpLHRoZW46KCk9Pl8uSyhHVyx7RzpsLHdhdGNoTmV4dFJlc3BvbnNlOlJ9KX0pKSxfLksoXy5PLHtBOigpPT4hQSgpLHRoZW46KCk9Pl8uSyhfLklCLG51bGwsXy5LKCJkaXYiLAp7c3R5bGU6WVUoKCk9Pnt2YXIgVD1sKCksYmE9QVMobT8uKCk/LndhdGNoTmV4dFJlc3BvbnNlKTtyZXR1cm4gSFMoVCxiYSl8fFQuYmE/Lm5oPyExOlQuaXNMaXZlfHxKUyhUKX0pfSxfLksoRVcse0c6bCxTbTooKT0+Q1MobT8uKCk/LnBsYXllck92ZXJsYXlSZW5kZXJlcikscGxheWVyT3ZlcmxheVJlbmRlcmVyOk19KSksXy5LKCJkaXYiLHtzdHlsZTpZVSgoKT0+e3ZhciBUPWwoKTtyZXR1cm4gVC5iYT8ubmg/ITE6IUlTKFQpfSl9LF8uSyhDVix7TGI6bCxoZjpZLGNvbmZpZzooKT0+KHtjbGFzc05hbWU6IndhdGNoLXBhZ2UtcHJvZ3Jlc3MtYmFyIixwb3NpdGlvbjowLEluOkYoKSxSYTpFUyhtPy4oKT8ucGxheWVyT3ZlcmxheVJlbmRlcmVyKSxLZjohMSxkaXNhYmxlU2NydWJiaW5nOkMoKSxvblRvdWNoTW92ZTooKT0+e3ZhciBUPWwoKSxiYT1FUyhtPy4oKT8ucGxheWVyT3ZlcmxheVJlbmRlcmVyKTtiYSYmKFQ9bFQoVCxiYSksbVQoVCkpfSxZbzooKT0+e2JUKCl9LEZuOigpPT4Ke2NUKGwoKSx7SWM6ITB9KX0scHJvZ3Jlc3NDb2xvcjpfLngoImVuYWJsZV9jdXN0b21fc2NydWJiZXJfdjIiKT9DUyhtPy4oKT8ucGxheWVyT3ZlcmxheVJlbmRlcmVyKT8ucHJvZ3Jlc3NDb2xvcjp2b2lkIDAsaGY6UWxhKEdTKG0/LigpPy5wbGF5ZXJPdmVybGF5UmVuZGVyZXIpKX0pfSkpLF8uSyhGVyx7RzpsLHdhdGNoTmV4dFJlc3BvbnNlOlJ9KSl9KSxfLksoQ1cse0c6bCx3YXRjaE5leHRSZXNwb25zZTpSLHRodW1ibmFpbFByZXZpZXdSZW5kZXJlcjpTLGF1dG9jcm9wQ29uZmlnOm9hfSkpKSl9KSl9KSl9LCJYZSIpO01XLmlkb21Db21wYXQ9ITA7dmFyIGNWPV8uTChhPT57dmFyIGI9Xy5OKCgpPT5hLmRhdGEoKS5ILHZvaWQgMCwiRHVmbU0iKSxjPV8uTigoKT0+bmV3IHFXKCgpPT57fSx7dGE6YS5jb250ZXh0KCkudGEsVGM6YS5jb250ZXh0KCkuVGMsR2M6YS5jb250ZXh0KCkuR2MsYmE6YS5jb250ZXh0KCkuYmF9LHthdXRvbmF2RW5hYmxlZDphLmNvbnRleHQoKS50YS5kZSgpLGVhOlJsYShiKCkpfSxiKSx2b2lkIDAsImpQeDhkZSIpLGQ9W107Xy5uRSgoKT0+e2IoKSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e1pVKGQpO3VXLmZvckVhY2goZT0+e2QucHVzaChlLnJlZ2lzdGVyKCgpPT5jKCkudWQoKSwoKT0+YS5kYXRhKCkpKX0pfSl9LCJIdVlNSmIiKTtfLll1KCgpPT57TVUoKCk9PmMoKS51ZCgpKTtiVCgpO2EuY29udGV4dCgpLnRhLmV4aXRGdWxsc2NyZWVuPy4oKTtaVShkKX0pO3JldHVybiBfLksoXy5uRyx7RWY6W18ub0coJFQsYildfSxfLksoInl0bS1jdXN0b20tY29udHJvbCIse2NsYXNzOiJ5dG1DdXN0b21Db250cm9sSG9zdCJ9LApfLksoTVcse0c6KCk9PigwLGMoKS5CKSgpLGRhdGE6YS5kYXRhfSkpKX0sIlplIik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uelo9ZnVuY3Rpb24oYSl7Xy5iWihhKTtfLmRWKGEpfTtfLnp5PV8uelo7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uV2QoInI3OERyYiIpOwoKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KfSkuY2FsbCh0aGlzLHRoaXMuZGVmYXVsdF9iYXNlKTsKLy8gR29vZ2xlIEluYy4K"}},"time_used":15,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":10,"receive":5,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"api-iam.intercom.io/messenger/web/ping","fqdn":"api-iam.intercom.io","domain":"intercom.io","tld":"io"},"ip":{"addr":"52.72.242.128","port":443,"asn":14618,"as":"AMAZON-AES","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:41.950Z","timestamp":1785121661950,"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":"*.intercom.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Thu, 13 Nov 2025 00:00:00 GMT","end":"Fri, 11 Dec 2026 23:59:59 GMT"},"fingerprint":{"sha1":"E2:7C:0F:4C:CC:B1:6F:45:04:99:4A:D4:CB:5C:0B:60:CA:75:CD:8E","sha256":"A6:51:D4:CB:51:4E:EF:B9:AD:B6:95:84:A1:3B:92:C1:BF:81:F5:22:36:A3:50:A2:8E:92:09:4A:15:D0:7E:CC"}}},"request":{"raw":"POST /messenger/web/ping HTTP/1.1\r\nHost: api-iam.intercom.io\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 408\r\nOrigin: https://7bridgecapital.com\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://7bridgecapital.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":"POST","post_data":{"size":408,"data":"app_id=p60ru8yf\u0026v=3\u0026g=66bb81a04b6586d610d306b31f5535a175253c0c\u0026s=9d5bfd98-a693-451d-93e4-ebfd8dcc106b\u0026r=\u0026platform=web\u0026installation_type=js-snippet\u0026installation_version=undefined\u0026Idempotency-Key=7480d28bb32335f8\u0026internal=%7B%7D\u0026is_intersection_booted=false\u0026page_title=7Bridge%20Capital\u0026user_active_company_id=undefined\u0026user_data=%7B%7D\u0026source=apiBoot\u0026sampling=false\u0026referer=https%3A%2F%2F7bridgecapital.com%2F"}},"response":{"raw":"HTTP/2 403 \r\ndate: Mon, 27 Jul 2026 03:07:42 GMT\r\ncontent-type: application/json; charset=utf-8\r\nstatus: 403 Forbidden\r\ncache-control: no-cache\r\naccess-control-allow-origin: https://7bridgecapital.com\r\nvary: Accept-Encoding, Accept\r\nstrict-transport-security: max-age=31556952; includeSubDomains; preload\r\naccess-control-expose-headers: x-request-id, x-runtime\r\nx-intercom-version: 53849cf9d179aec43dd9f54e6d0d7f7e969cc5fc\r\nreferrer-policy: strict-origin-when-cross-origin\r\naccess-control-max-age: 86400\r\nx-xss-protection: 1; mode=block\r\nx-request-queueing: 0\r\nx-request-id: 001jauubpif08kg000g0\r\ntiming-allow-origin: *\r\naccess-control-allow-headers: Content-Type, Idempotency-Key, X-INTERCOM-APP, X-INTERCOM-PAGE-TITLE, X-INTERCOM-USER-DATA, traceparent, X-Continue-Intercom-Trace\r\naccess-control-allow-credentials: true\r\naccess-control-allow-methods: POST, GET, OPTIONS\r\nx-runtime: 0.009591\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nserver: nginx\r\ncontent-encoding: gzip\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"403","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":113,"size_decoded":1140,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"ac416fb8f853c05aaa4ea574ae8ba966","sha1":"3562b7cb94923099e83a06d58faaccabe72540e0","sha256":"59ce75e0e47740492392f59bd6cf1e7c586c5c8a956be6377954aa427e603e2a","sha512":"56d3295c177abf139858707172041b91236ac1ca74ef44e086ce96cfe70f8663a93141a2e480d3a8b5a0845c35ea83990151d172fa7ea43e543d7d54446e43e1","ssdeep":"","tlshash":"f3b0120fa75e6ebfdfa10243fc0b145187e4f0a2d1e018c9845cd11d858e541f91b76a","first_seen":"2026-07-27T03:08:23.002812Z","last_seen":"2026-07-27T03:08:23.002812Z","times_seen":1,"resource_available":false,"data":"eyJ0eXBlIjoiZXJyb3IubGlzdCIsInJlcXVlc3RfaWQiOiIwMDFqYXV1YnBpZjA4a2cwMDBnMCIsImVycm9ycyI6W3siY29kZSI6ImJsb2NrZWQiLCJtZXNzYWdlIjoiQXBwIHN1c3BlbmRlZCJ9XX0="}},"time_used":385,"timings":{"blocked":0,"dns":0,"connect":93,"send":0,"wait":104,"receive":0,"ssl":188},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.googletagmanager.com/gtag/js?id=G-CT6TVKY4QK","fqdn":"www.googletagmanager.com","domain":"googletagmanager.com","tld":"com"},"ip":{"addr":"142.250.178.104","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.029Z","timestamp":1785121660029,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google-analytics.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:33 GMT","end":"Mon, 21 Sep 2026 08:37:32 GMT"},"fingerprint":{"sha1":"85:82:80:E9:F0:BC:08:B5:D8:5D:91:B4:E5:D3:DB:B1:A7:2F:E3:F3","sha256":"E3:94:E9:DA:2C:F1:36:09:33:63:D3:69:08:E7:E6:91:8D:F3:61:7F:0F:D0:5F:8E:B6:E9:D7:F3:DD:10:3C:DC"}}},"request":{"raw":"GET /gtag/js?id=G-CT6TVKY4QK HTTP/1.1\r\nHost: www.googletagmanager.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://7bridgecapital.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\ncontent-type: application/javascript; charset=UTF-8\r\naccess-control-allow-origin: *\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: Cache-Control\r\ncontent-encoding: zstd\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 03:07:40 GMT\r\nexpires: Mon, 27 Jul 2026 03:07:40 GMT\r\ncache-control: private, max-age=900\r\nstrict-transport-security: max-age=31536000; includeSubDomains\r\ncross-origin-resource-policy: cross-origin\r\nserver: Google Tag Manager\r\ncontent-length: 182280\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":550824,"size_decoded":182884,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (6033)","md5":"c0f9b6e732ff8249c6d213198ab8e2a0","sha1":"4c7dbd429331cede8fcddc23bc5734742aa673d3","sha256":"a2e794ecd54a0a6347c54fb7190aa6b34f85ba90ce0a567b4d18935da42c656c","sha512":"116dfb49075f99fa4f2b82e22af22fe2590175c0162cbed98b257182aff682c03b943c8218b227e909575bf7f768547e757cc1457cae306895d8b4e92f97f616","ssdeep":"6144:lJTKU0jIWXbP69FMxmRkqn0hdBScPmfxNf3EjKUGxVGaHoXuARR3n:HTT1WLP69V3KGUGxVHOLn","tlshash":"06c40bceb3d674265396f478503f01cba97b25e2b45cc8aab1c9cce02d7464a8167f78","first_seen":"2026-07-27T02:49:41.00768Z","last_seen":"2026-07-27T03:09:30.391873Z","times_seen":3,"resource_available":true,"data":"Ci8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKKGZ1bmN0aW9uKCl7Cgp2YXIgZGF0YSA9IHsKInJlc291cmNlIjogewogICJ2ZXJzaW9uIjoiMSIsCiAgCiAgIm1hY3JvcyI6W3siZnVuY3Rpb24iOiJfX2UifSx7ImZ1bmN0aW9uIjoiX19jIiwidnRwX3ZhbHVlIjoiZ29vZ2xlLm5vIn0seyJmdW5jdGlvbiI6Il9fYyIsInZ0cF92YWx1ZSI6MH1dLAogICJ0YWdzIjpbeyJmdW5jdGlvbiI6Il9fb2d0XzFwX2RhdGFfdjIiLCJwcmlvcml0eSI6MTQsInZ0cF9pc0F1dG9FbmFibGVkIjp0cnVlLCJ2dHBfYXV0b1Bob25lRW5hYmxlZCI6dHJ1ZSwidnRwX2F1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIjpbImxpc3QiLFsibWFwIiwiZXhjbHVzaW9uU2VsZWN0b3IiLCIiXV0sInZ0cF9pc0VuYWJsZWQiOnRydWUsInZ0cF9hdXRvQWRkcmVzc0VuYWJsZWQiOnRydWUsInZ0cF9hdXRvRW1haWxFbmFibGVkIjp0cnVlLCJ2dHBfaXNBdXRvQ29sbGVjdFBpaUVuYWJsZWRGbGFnIjp0cnVlLCJ0YWdfaWQiOjR9LHsiZnVuY3Rpb24iOiJfX2NjZF9nYV9maXJzdCIsInByaW9yaXR5IjoxMywidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctQ1Q2VFZLWTRRSyIsInRhZ19pZCI6MTl9LHsiZnVuY3Rpb24iOiJfX3NldF9wcm9kdWN0X3NldHRpbmdzIiwicHJpb3JpdHkiOjEyLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1DVDZUVktZNFFLIiwidnRwX2ZvcmVpZ25UbGRNYWNyb1Jlc3VsdCI6WyJtYWNybyIsMV0sInZ0cF9pc0NoaW5hVmlwUmVnaW9uTWFjcm9SZXN1bHQiOlsibWFjcm8iLDJdLCJ0YWdfaWQiOjE4fSx7ImZ1bmN0aW9uIjoiX19jY2RfZ2FfcmVnc2NvcGUiLCJwcmlvcml0eSI6MTEsInZ0cF9zZXR0aW5nc1RhYmxlIjpbImxpc3QiLFsibWFwIiwicmVkYWN0RmllbGRHcm91cCIsIkRFVklDRV9BTkRfR0VPIiwiZGlzYWxsb3dBbGxSZWdpb25zIixmYWxzZSwiZGlzYWxsb3dlZFJlZ2lvbnMiLCIiXSxbIm1hcCIsInJlZGFjdEZpZWxkR3JvdXAiLCJHT09HTEVfU0lHTkFMUyIsImRpc2FsbG93QWxsUmVnaW9ucyIsdHJ1ZSwiZGlzYWxsb3dlZFJlZ2lvbnMiLCIiXV0sInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLUNUNlRWS1k0UUsiLCJ0YWdfaWQiOjE3fSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fZG93bmxvYWQiLCJwcmlvcml0eSI6MTAsInZ0cF9pbmNsdWRlUGFyYW1zIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1DVDZUVktZNFFLIiwidGFnX2lkIjoxNn0seyJmdW5jdGlvbiI6Il9fY2NkX2VtX291dGJvdW5kX2NsaWNrIiwicHJpb3JpdHkiOjksInZ0cF9pbmNsdWRlUGFyYW1zIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1DVDZUVktZNFFLIiwidGFnX2lkIjoxNX0seyJmdW5jdGlvbiI6Il9fY2NkX2VtX3BhZ2VfdmlldyIsInByaW9yaXR5Ijo4LCJ2dHBfaGlzdG9yeUV2ZW50cyI6dHJ1ZSwidnRwX2luY2x1ZGVQYXJhbXMiOnRydWUsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLUNUNlRWS1k0UUsiLCJ0YWdfaWQiOjE0fSx7ImZ1bmN0aW9uIjoiX19jY2RfZW1fc2Nyb2xsIiwicHJpb3JpdHkiOjcsInZ0cF9pbmNsdWRlUGFyYW1zIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1DVDZUVktZNFFLIiwidGFnX2lkIjoxM30seyJmdW5jdGlvbiI6Il9fY2NkX2VtX3NpdGVfc2VhcmNoIiwicHJpb3JpdHkiOjYsInZ0cF9zZWFyY2hRdWVyeVBhcmFtcyI6InEscyxzZWFyY2gscXVlcnksa2V5d29yZCIsInZ0cF9pbmNsdWRlUGFyYW1zIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1DVDZUVktZNFFLIiwidGFnX2lkIjoxMn0seyJmdW5jdGlvbiI6Il9fY2NkX2VtX3ZpZGVvIiwicHJpb3JpdHkiOjUsInZ0cF9pbmNsdWRlUGFyYW1zIjp0cnVlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1DVDZUVktZNFFLIiwidGFnX2lkIjoxMX0seyJmdW5jdGlvbiI6Il9fY2NkX2NvbnZlcnNpb25fbWFya2luZyIsInByaW9yaXR5Ijo0LCJ2dHBfY29udmVyc2lvblJ1bGVzIjpbImxpc3QiLFsibWFwIiwibWF0Y2hpbmdSdWxlcyIsIntcInR5cGVcIjo1LFwiYXJnc1wiOlt7XCJzdHJpbmdWYWx1ZVwiOlwicHVyY2hhc2VcIn0se1wiY29udGV4dFZhbHVlXCI6e1wibmFtZXNwYWNlVHlwZVwiOjEsXCJrZXlQYXJ0c1wiOltcImV2ZW50TmFtZVwiXX19XX0iXSxbIm1hcCIsIm1hdGNoaW5nUnVsZXMiLCJ7XCJ0eXBlXCI6NSxcImFyZ3NcIjpbe1wic3RyaW5nVmFsdWVcIjpcImFkc19jb252ZXJzaW9uX1NpZ25fVXBfMVwifSx7XCJjb250ZXh0VmFsdWVcIjp7XCJuYW1lc3BhY2VUeXBlXCI6MSxcImtleVBhcnRzXCI6W1wiZXZlbnROYW1lXCJdfX1dfSJdXSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctQ1Q2VFZLWTRRSyIsInRhZ19pZCI6MTB9LHsiZnVuY3Rpb24iOiJfX29ndF9ldmVudF9jcmVhdGUiLCJwcmlvcml0eSI6MywidnRwX2V2ZW50TmFtZSI6ImFkc19jb252ZXJzaW9uX1NpZ25fVXBfMSIsInZ0cF9pc0NvcHkiOmZhbHNlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1DVDZUVktZNFFLIiwidnRwX3ByZWNvbXBpbGVkUnVsZSI6WyJtYXAiLCJuZXdfZXZlbnRfbmFtZSIsImFkc19jb252ZXJzaW9uX1NpZ25fVXBfMSIsIm1lcmdlX3NvdXJjZV9ldmVudF9wYXJhbXMiLGZhbHNlLCJldmVudF9uYW1lX3ByZWRpY2F0ZSIsWyJsaXN0IixbIm1hcCIsInZhbHVlcyIsWyJsaXN0IixbIm1hcCIsInR5cGUiLCJldmVudF9uYW1lIl0sWyJtYXAiLCJ0eXBlIiwiY29uc3QiLCJjb25zdF92YWx1ZSIsInBhZ2VfdmlldyJdXSwidHlwZSIsImVxIl1dLCJjb25kaXRpb25zIixbImxpc3QiLFsibWFwIiwicHJlZGljYXRlcyIsWyJsaXN0IixbIm1hcCIsInZhbHVlcyIsWyJsaXN0IixbIm1hcCIsInR5cGUiLCJldmVudF9wYXJhbSIsImV2ZW50X3BhcmFtIixbIm1hcCIsInBhcmFtX25hbWUiLCJwYWdlX3BhdGgiXV0sWyJtYXAiLCJ0eXBlIiwiY29uc3QiLCJjb25zdF92YWx1ZSIsIlwvc2lnbnVwIl1dLCJ0eXBlIiwic3dpIl1dXV1dLCJ0YWdfaWQiOjl9LHsiZnVuY3Rpb24iOiJfX2NjZF9hdXRvX3JlZGFjdCIsInByaW9yaXR5IjoyLCJ2dHBfcmVkYWN0RW1haWwiOmZhbHNlLCJ2dHBfaW5zdGFuY2VEZXN0aW5hdGlvbklkIjoiRy1DVDZUVktZNFFLIiwidGFnX2lkIjo4fSx7ImZ1bmN0aW9uIjoiX19jY2RfZ2FfYWRzX2xpbmsiLCJwcmlvcml0eSI6MSwidnRwX2luc3RhbmNlRGVzdGluYXRpb25JZCI6IkctQ1Q2VFZLWTRRSyIsInRhZ19pZCI6N30seyJmdW5jdGlvbiI6Il9fZ2N0IiwidnRwX3RyYWNraW5nSWQiOiJHLUNUNlRWS1k0UUsiLCJ2dHBfc2Vzc2lvbkR1cmF0aW9uIjowLCJ0YWdfaWQiOjF9LHsiZnVuY3Rpb24iOiJfX2NjZF9nYV9sYXN0IiwicHJpb3JpdHkiOjAsInZ0cF9pbnN0YW5jZURlc3RpbmF0aW9uSWQiOiJHLUNUNlRWS1k0UUsiLCJ0YWdfaWQiOjZ9XSwKICAicHJlZGljYXRlcyI6W3siZnVuY3Rpb24iOiJfZXEiLCJhcmcwIjpbIm1hY3JvIiwwXSwiYXJnMSI6Imd0bS5qcyJ9LHsiZnVuY3Rpb24iOiJfZXEiLCJhcmcwIjpbIm1hY3JvIiwwXSwiYXJnMSI6Imd0bS5pbml0In1dLAogICJydWxlcyI6W1tbImlmIiwwXSxbImFkZCIsMTRdXSxbWyJpZiIsMV0sWyJhZGQiLDAsMTUsMTMsMTIsMTEsMTAsOSw4LDcsNiw1LDQsMywyLDFdXV0KfSwKInJ1bnRpbWUiOlsgWzUwLCJfX2MiLFs0NiwiYSJdLFszNixbMTcsWzE1LCJhIl0sInZhbHVlIl1dXQogLFs1MCwiX19jY2RfYXV0b19yZWRhY3QiLFs0NiwiYSJdLFs1MCwidiIsWzQ2LCJhRiJdLFszNixbMixbMTUsImFGIl0sInJlcGxhY2UiLFs3LFsxNSwidSJdLCJcXCQxIl1dXV0sWzUwLCJ3IixbNDYsImFGIl0sWzUyLCJhRyIsWzMwLFsiYyIsWzE1LCJhRiJdXSxbMTUsImFGIl1dXSxbNTIsImFIIixbN11dLFs2NSwiYUkiLFsyLFsxNSwiYUciXSwic3BsaXQiLFs3LCIiXV0sWzQ2LFs1MyxbNTIsImFKIixbNyxbInYiLFsxNSwiYUkiXV1dXSxbNTIsImFLIixbImQiLFsxNSwiYUkiXV1dLFsyMixbMTIsWzE1LCJhSyJdLFs0NV1dLFs0NixbNTMsWzM2LFsiZCIsWyJ2IixbMTUsImFGIl1dXV1dXV0sWzIyLFsyMSxbMTUsImFLIl0sWzE1LCJhSSJdXSxbNDYsWzUzLFsyLFsxNSwiYUoiXSwicHVzaCIsWzcsWzE1LCJhSyJdXV0sWzIyLFsyMSxbMTUsImFJIl0sWzIsWzE1LCJhSSJdLCJ0b0xvd2VyQ2FzZSIsWzddXV0sWzQ2LFs1MyxbMixbMTUsImFKIl0sInB1c2giLFs3LFsiZCIsWzIsWzE1LCJhSSJdLCJ0b0xvd2VyQ2FzZSIsWzddXV1dXV1dLFs0NixbMjIsWzIxLFsxNSwiYUkiXSxbMixbMTUsImFJIl0sInRvVXBwZXJDYXNlIixbN11dXSxbNDYsWzUzLFsyLFsxNSwiYUoiXSwicHVzaCIsWzcsWyJkIixbMixbMTUsImFJIl0sInRvVXBwZXJDYXNlIixbN11dXV1dXV1dXV1dXV0sWzIyLFsxOCxbMTcsWzE1LCJhSiJdLCJsZW5ndGgiXSwxXSxbNDYsWzUzLFsyLFsxNSwiYUgiXSwicHVzaCIsWzcsWzAsWzAsIig/OiIsWzIsWzE1LCJhSiJdLCJqb2luIixbNywifCJdXV0sIikiXV1dXV0sWzQ2LFs1MyxbMixbMTUsImFIIl0sInB1c2giLFs3LFsxNixbMTUsImFKIl0sMF1dXV1dXV1dXSxbMzYsWzIsWzE1LCJhSCJdLCJqb2luIixbNywiIl1dXV0sWzUwLCJ4IixbNDYsImFGIiwiYUciLCJhSCJdLFs1MiwiYUkiLFsieiIsWzE1LCJhRiJdLFsxNSwiYUgiXV1dLFsyMixbMjgsWzE1LCJhSSJdXSxbNDYsWzM2LFsxNSwiYUYiXV1dXSxbMjIsWzI4LFsxNyxbMTUsImFJIl0sInNlYXJjaCJdXSxbNDYsWzM2LFsxNSwiYUYiXV1dXSxbNDEsImFKIl0sWzMsImFKIixbMTcsWzE1LCJhSSJdLCJzZWFyY2giXV0sWzY1LCJhSyIsWzE1LCJhRyJdLFs0NixbNTMsWzUyLCJhTCIsWzcsWyJ2IixbMTUsImFLIl1dLFsidyIsWzE1LCJhSyJdXV1dLFs2NSwiYU0iLFsxNSwiYUwiXSxbNDYsWzUzLFs1MiwiYU4iLFszMCxbMTYsWzE1LCJ0Il0sWzE1LCJhTSJdXSxbNDMsWzE1LCJ0Il0sWzE1LCJhTSJdLFsiYiIsWzAsWzAsIihbPyZdIixbMTUsImFNIl1dLCI9KShbXiZdKikiXSwiZ2kiXV1dXSxbMywiYUoiLFsyLFsxNSwiYUoiXSwicmVwbGFjZSIsWzcsWzE1LCJhTiJdLFswLCIkMSIsWzE1LCJyIl1dXV1dXV1dXV1dLFsyMixbMjAsWzE1LCJhSiJdLFsxNyxbMTUsImFJIl0sInNlYXJjaCJdXSxbNDYsWzM2LFsxNSwiYUYiXV1dXSxbMjIsWzIwLFsxNixbMTUsImFKIl0sMF0sIiYiXSxbNDYsWzMsImFKIixbMixbMTUsImFKIl0sInN1YnN0cmluZyIsWzcsMV1dXV1dLFsyMixbMjEsWzE2LFsxNSwiYUoiXSwwXSwiPyJdLFs0NixbMywiYUoiLFswLCI/IixbMTUsImFKIl1dXV1dLFsyMixbMjAsWzE1LCJhSiJdLCI/Il0sWzQ2LFszLCJhSiIsIiJdXV0sWzQzLFsxNSwiYUkiXSwic2VhcmNoIixbMTUsImFKIl1dLFszNixbImFBIixbMTUsImFJIl0sWzE1LCJhSCJdXV1dLFs1MCwieiIsWzQ2LCJhRiIsImFHIl0sWzIyLFsyMCxbMTUsImFHIl0sWzE3LFsxNSwicyJdLCJQQVRIIl1dLFs0NixbNTMsWzMsImFGIixbMCxbMTUsInkiXSxbMTUsImFGIl1dXV1dXSxbMzYsWyJmIixbMTUsImFGIl1dXV0sWzUwLCJhQSIsWzQ2LCJhRiIsImFHIl0sWzQxLCJhSCJdLFszLCJhSCIsIiJdLFsyMixbMjAsWzE1LCJhRyJdLFsxNyxbMTUsInMiXSwiVVJMIl1dLFs0NixbNTMsWzQxLCJhSSJdLFszLCJhSSIsIiJdLFsyMixbMzAsWzE3LFsxNSwiYUYiXSwidXNlcm5hbWUiXSxbMTcsWzE1LCJhRiJdLCJwYXNzd29yZCJdXSxbNDYsWzUzLFszLCJhSSIsWzAsWzE1LCJhSSJdLFswLFswLFswLFsxNyxbMTUsImFGIl0sInVzZXJuYW1lIl0sWzM5LFsxNyxbMTUsImFGIl0sInBhc3N3b3JkIl0sIjoiLCIiXV0sWzE3LFsxNSwiYUYiXSwicGFzc3dvcmQiXV0sIkAiXV1dXV1dLFszLCJhSCIsWzAsWzAsWzAsWzE3LFsxNSwiYUYiXSwicHJvdG9jb2wiXSwiLy8iXSxbMTUsImFJIl1dLFsxNyxbMTUsImFGIl0sImhvc3QiXV1dXV1dLFszNixbMCxbMCxbMCxbMTUsImFIIl0sWzE3LFsxNSwiYUYiXSwicGF0aG5hbWUiXV0sWzE3LFsxNSwiYUYiXSwic2VhcmNoIl1dLFsxNyxbMTUsImFGIl0sImhhc2giXV1dXSxbNTAsImFCIixbNDYsImFGIiwiYUciXSxbNDEsImFIIl0sWzMsImFIIixbMixbMTUsImFGIl0sInJlcGxhY2UiLFs3LFsxNSwibiJdLFsxNSwiciJdXV1dLFsyMixbMzAsWzIwLFsxNSwiYUciXSxbMTcsWzE1LCJzIl0sIlVSTCJdXSxbMjAsWzE1LCJhRyJdLFsxNyxbMTUsInMiXSwiUEFUSCJdXV0sWzQ2LFs1MyxbNTIsImFJIixbInoiLFsxNSwiYUgiXSxbMTUsImFHIl1dXSxbMjIsWzIwLFsxNSwiYUkiXSxbNDRdXSxbNDYsWzM2LFsxNSwiYUgiXV1dXSxbNTIsImFKIixbMTcsWzE1LCJhSSJdLCJzZWFyY2giXV0sWzUyLCJhSyIsWzIsWzE1LCJhSiJdLCJyZXBsYWNlIixbNyxbMTUsIm8iXSxbMTUsInIiXV1dXSxbMjIsWzIwLFsxNSwiYUoiXSxbMTUsImFLIl1dLFs0NixbMzYsWzE1LCJhSCJdXV1dLFs0MyxbMTUsImFJIl0sInNlYXJjaCIsWzE1LCJhSyJdXSxbMywiYUgiLFsiYUEiLFsxNSwiYUkiXSxbMTUsImFHIl1dXV1dXSxbMzYsWzE1LCJhSCJdXV0sWzUwLCJhQyIsWzQ2LCJhRiJdLFsyMixbMjAsWzE1LCJhRiJdLFsxNSwicSJdXSxbNDYsWzUzLFszNixbMTcsWzE1LCJzIl0sIlBBVEgiXV1dXSxbNDYsWzIyLFsyMSxbMixbMTUsInAiXSwiaW5kZXhPZiIsWzcsWzE1LCJhRiJdXV0sWzI3LDFdXSxbNDYsWzUzLFszNixbMTcsWzE1LCJzIl0sIlVSTCJdXV1dLFs0NixbNTMsWzM2LFsxNyxbMTUsInMiXSwiVEVYVCJdXV1dXV1dXSxbNTAsImFEIixbNDYsImFGIiwiYUciXSxbNDEsImFIIl0sWzMsImFIIixmYWxzZV0sWzUyLCJhSSIsWyJlIixbMTUsImFGIl1dXSxbMzgsWzE1LCJhSSJdLFs0Niwic3RyaW5nIiwiYXJyYXkiLCJvYmplY3QiXSxbNDYsWzUsWzQ2LFs1MiwiYUoiLFsiYUIiLFsxNSwiYUYiXSxbMTUsImFHIl1dXSxbMjIsWzIxLFsxNSwiYUYiXSxbMTUsImFKIl1dLFs0NixbNTMsWzM2LFsxNSwiYUoiXV1dXV0sWzRdXV0sWzUsWzQ2LFs1MyxbNDEsImFLIl0sWzMsImFLIiwwXSxbNjMsWzcsImFLIl0sWzIzLFsxNSwiYUsiXSxbMTcsWzE1LCJhRiJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiYUsiXSxbMywiYUsiLFswLFsxNSwiYUsiXSwxXV1dLFs0NixbNTMsWzUyLCJhTCIsWyJhRCIsWzE2LFsxNSwiYUYiXSxbMTUsImFLIl1dLFsxNyxbMTUsInMiXSwiVEVYVCJdXV0sWzIyLFsyMSxbMTUsImFMIl0sWzQ0XV0sWzQ2LFs1MyxbNDMsWzE1LCJhRiJdLFsxNSwiYUsiXSxbMTUsImFMIl1dLFszLCJhSCIsdHJ1ZV1dXV1dXV1dLFs0XV1dLFs1LFs0NixbNTQsImFLIixbMTUsImFGIl0sWzQ2LFs1MyxbNTIsImFMIixbImFEIixbMTYsWzE1LCJhRiJdLFsxNSwiYUsiXV0sWzE3LFsxNSwicyJdLCJURVhUIl1dXSxbMjIsWzIxLFsxNSwiYUwiXSxbNDRdXSxbNDYsWzUzLFs0MyxbMTUsImFGIl0sWzE1LCJhSyJdLFsxNSwiYUwiXV0sWzMsImFIIix0cnVlXV1dXV1dXSxbNF1dXV1dLFszNixbMzksWzE1LCJhSCJdLFsxNSwiYUYiXSxbNDRdXV1dLFs1MCwiYUUiLFs0NiwiYUYiLCJhRyJdLFs1MiwiYUgiLFszMCxbMixbMTUsImFGIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJoIl0sIkFDIl1dXSxbN11dXSxbMjIsWzIwLFsyLFsxNSwiYUgiXSwiaW5kZXhPZiIsWzcsWzE1LCJhRyJdXV0sWzI3LDFdXSxbNDYsWzUzLFsyLFsxNSwiYUgiXSwicHVzaCIsWzcsWzE1LCJhRyJdXV1dXV0sWzIsWzE1LCJhRiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJBQyJdLFsxNSwiYUgiXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNyZWF0ZVJlZ2V4Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiZGVjb2RlVXJpQ29tcG9uZW50Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiZW5jb2RlVXJpQ29tcG9uZW50Il1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImYiLFsicmVxdWlyZSIsInBhcnNlVXJsIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX2dvbGRFdmVudFVzYWdlSWQiXV0sWzUyLCJqIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbNTIsImsiLFsxNyxbMTUsImEiXSwicmVkYWN0RW1haWwiXV0sWzUyLCJsIixbMTcsWzE1LCJhIl0sInJlZGFjdFF1ZXJ5UGFyYW1zIl1dLFs1MiwibSIsWzM5LFsxNSwibCJdLFsyLFsxNSwibCJdLCJzcGxpdCIsWzcsIiwiXV0sWzddXV0sWzIyLFsxLFsyOCxbMTcsWzE1LCJtIl0sImxlbmd0aCJdXSxbMjgsWzE1LCJrIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsIm4iLFsiYiIsIltBLVowLTkuXyUrLV0rQFtBLVowLTkuLV0rXFwuW0EtWl17Mix9IiwiZ2kiXV0sWzUyLCJvIixbImIiLFswLCIoW0EtWjAtOS5fLV18JTI1fCUyQikrJTQwW0EtWjAtOS4tXSIsIitcXC5bQS1aXXsyLH0iXSwiZ2kiXV0sWzUyLCJwIixbNywicGFnZV9sb2NhdGlvbiIsInBhZ2VfcmVmZXJyZXIiLCJwYWdlX3BhdGgiLCJsaW5rX3VybCIsInZpZGVvX3VybCIsImZvcm1fZGVzdGluYXRpb24iXV0sWzUyLCJxIiwicGFnZV9wYXRoIl0sWzUyLCJyIiwiKHJlZGFjdGVkKSJdLFs1MiwicyIsWzgsIlRFWFQiLDAsIlVSTCIsMSwiUEFUSCIsMl1dLFs1MiwidCIsWzhdXSxbNTIsInUiLFsiYiIsIihbXFxcXF4kLnw/KisoKXt9XXxcXFt8XFxbKSIsImciXV0sWzUyLCJ5IiwiaHR0cDovLy4iXSxbImciLFsxNSwiaiJdLFs1MSwiIixbNywiYUYiXSxbMjIsWzE1LCJrIl0sWzQ2LFs1MyxbNTIsImFHIixbMixbMTUsImFGIl0sImdldEhpdEtleXMiLFs3XV1dLFs2NSwiYUgiLFsxNSwiYUciXSxbNDYsWzUzLFsyMixbMjAsWzE1LCJhSCJdLCJfc3N0X3BhcmFtZXRlcnMiXSxbNDYsWzZdXV0sWzUyLCJhSSIsWzIsWzE1LCJhRiJdLCJnZXRIaXREYXRhIixbNyxbMTUsImFIIl1dXV0sWzIyLFsyOCxbMTUsImFJIl1dLFs0NixbNl1dXSxbNTIsImFKIixbImFDIixbMTUsImFIIl1dXSxbNTIsImFLIixbImFEIixbMTUsImFJIl0sWzE1LCJhSiJdXV0sWzIyLFsyMSxbMTUsImFLIl0sWzQ0XV0sWzQ2LFs1MyxbMixbMTUsImFGIl0sInNldEhpdERhdGEiLFs3LFsxNSwiYUgiXSxbMTUsImFLIl1dXSxbImFFIixbMTUsImFGIl0sWzM5LFsyLFsxNSwiYUYiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImgiXSwiQk8iXV1dLFsxNyxbMTUsImkiXSwiVyJdLFsxNyxbMTUsImkiXSwiTyJdXV1dXV1dXV1dXV0sWzIyLFsxNyxbMTUsIm0iXSwibGVuZ3RoIl0sWzQ2LFs1MyxbNjUsImFHIixbMTUsInAiXSxbNDYsWzUzLFs1MiwiYUgiLFsyLFsxNSwiYUYiXSwiZ2V0SGl0RGF0YSIsWzcsWzE1LCJhRyJdXV1dLFsyMixbMjgsWzE1LCJhSCJdXSxbNDYsWzZdXV0sWzUyLCJhSSIsWzM5LFsyMCxbMTUsImFHIl0sWzE1LCJxIl1dLFsxNyxbMTUsInMiXSwiUEFUSCJdLFsxNyxbMTUsInMiXSwiVVJMIl1dXSxbNTIsImFKIixbIngiLFsxNSwiYUgiXSxbMTUsIm0iXSxbMTUsImFJIl1dXSxbMjIsWzIxLFsxNSwiYUoiXSxbMTUsImFIIl1dLFs0NixbNTMsWzIsWzE1LCJhRiJdLCJzZXRIaXREYXRhIixbNyxbMTUsImFHIl0sWzE1LCJhSiJdXV0sWyJhRSIsWzE1LCJhRiJdLFszOSxbMixbMTUsImFGIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJoIl0sIkJPIl1dXSxbMTcsWzE1LCJpIl0sIlgiXSxbMTcsWzE1LCJpIl0sIlAiXV1dXV1dXV1dXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2NvbnZlcnNpb25fbWFya2luZyIsWzQ2LCJhIl0sWzIyLFszMCxbMjgsWzE3LFsxNSwiYSJdLCJjb252ZXJzaW9uUnVsZXMiXV0sWzIwLFsxNyxbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdLCJsZW5ndGgiXSwwXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5UHJlSGl0Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZiIsImZpcnN0X3Zpc2l0Il0sWzUyLCJnIiwic2Vzc2lvbl9zdGFydCJdLFs0MSwiaCJdLFs0MSwiaSJdLFsiZCIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXSxbNTEsIiIsWzcsImoiXSxbNTIsImsiLFs4LCJwcmVIaXQiLFsxNSwiaiJdXV0sWzIsWzE1LCJqIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIlAiXSx0cnVlXV0sWzY1LCJsIixbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdLFs0NixbNTMsWzIyLFsiYyIsWzE3LFsxNSwibCJdLCJtYXRjaGluZ1J1bGVzIl0sWzE1LCJrIl1dLFs0NixbNTMsWzIsWzE1LCJqIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkFWIl0sdHJ1ZV1dLFs0XV1dXV1dXSxbMjIsWzIsWzE1LCJqIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkFaIl1dXSxbNDYsWzUzLFsyMixbMjgsWzE1LCJoIl1dLFs0NixbNTMsWzUyLCJsIixbImIiLFsxNSwiaiJdLFs4LCJvbWl0SGl0RGF0YSIsdHJ1ZSwib21pdE1ldGFkYXRhIix0cnVlXV1dLFsyLFsxNSwibCJdLCJzZXRFdmVudE5hbWUiLFs3LFsxNSwiZiJdXV0sWzMsImgiLFs4LCJwcmVIaXQiLFsxNSwibCJdXV1dXV0sWzY1LCJsIixbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdLFs0NixbNTMsWzIyLFsiYyIsWzE3LFsxNSwibCJdLCJtYXRjaGluZ1J1bGVzIl0sWzE1LCJoIl1dLFs0NixbNTMsWzIsWzE1LCJqIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJBIl0sdHJ1ZV1dLFs0XV1dXV1dXV1dXSxbMjIsWzIsWzE1LCJqIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJMIl1dXSxbNDYsWzUzLFsyMixbMjgsWzE1LCJpIl1dLFs0NixbNTMsWzUyLCJsIixbImIiLFsxNSwiaiJdLFs4LCJvbWl0SGl0RGF0YSIsdHJ1ZSwib21pdE1ldGFkYXRhIix0cnVlXV1dLFsyLFsxNSwibCJdLCJzZXRFdmVudE5hbWUiLFs3LFsxNSwiZyJdXV0sWzMsImkiLFs4LCJwcmVIaXQiLFsxNSwibCJdXV1dXV0sWzY1LCJsIixbMTcsWzE1LCJhIl0sImNvbnZlcnNpb25SdWxlcyJdLFs0NixbNTMsWzIyLFsiYyIsWzE3LFsxNSwibCJdLCJtYXRjaGluZ1J1bGVzIl0sWzE1LCJpIl1dLFs0NixbNTMsWzIsWzE1LCJqIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJNIl0sdHJ1ZV1dLFs0XV1dXV1dXV1dXV1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV0KICxbNTAsIl9fY2NkX2VtX2Rvd25sb2FkIixbNDYsImEiXSxbNTAsInEiLFs0NiwidiJdLFszNixbMSxbMTUsInYiXSxbMjEsWzIsWzIsWzE1LCJ2Il0sInRvTG93ZXJDYXNlIixbN11dLCJtYXRjaCIsWzcsWzE1LCJwIl1dXSxbNDVdXV1dXSxbNTAsInIiLFs0NiwidiJdLFs1MiwidyIsWzIsWzE3LFsxNSwidiJdLCJwYXRobmFtZSJdLCJzcGxpdCIsWzcsIi4iXV1dLFs1MiwieCIsWzM5LFsxOCxbMTcsWzE1LCJ3Il0sImxlbmd0aCJdLDFdLFsxNixbMTUsInciXSxbMzcsWzE3LFsxNSwidyJdLCJsZW5ndGgiXSwxXV0sIiJdXSxbMzYsWzE2LFsyLFsxNSwieCJdLCJzcGxpdCIsWzcsIi8iXV0sMF1dXSxbNTAsInMiLFs0NiwidiJdLFszNixbMzksWzEyLFsyLFsxNyxbMTUsInYiXSwicGF0aG5hbWUiXSwic3Vic3RyaW5nIixbNywwLDFdXSwiLyJdLFsxNyxbMTUsInYiXSwicGF0aG5hbWUiXSxbMCwiLyIsWzE3LFsxNSwidiJdLCJwYXRobmFtZSJdXV1dXSxbNTAsInQiLFs0NiwidiJdLFs0MSwidyJdLFszLCJ3IiwiIl0sWzIyLFsxLFsxNSwidiJdLFsxNyxbMTUsInYiXSwiaHJlZiJdXSxbNDYsWzUzLFs0MSwieCJdLFszLCJ4IixbMixbMTcsWzE1LCJ2Il0sImhyZWYiXSwiaW5kZXhPZiIsWzcsIiMiXV1dLFszLCJ3IixbMzksWzIzLFsxNSwieCJdLDBdLFsxNyxbMTUsInYiXSwiaHJlZiJdLFsyLFsxNyxbMTUsInYiXSwiaHJlZiJdLCJzdWJzdHJpbmciLFs3LDAsWzE1LCJ4Il1dXV1dXV1dLFszNixbMTUsInciXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwidGVtcGxhdGVTdG9yYWdlIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfY2NkRW1Eb3dubG9hZEFjdGl2aXR5Il1dLFs1MiwiZiIsWzE3LFsxNSwiZCJdLCJBIl1dLFs1MiwiZyIsImZpbGVfZG93bmxvYWQiXSxbNTIsImgiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsImkiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImIiLFsxNSwiaSJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImUiXSwiQSIsWzcsWzE1LCJpIl0sWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl1dXSxbMjIsWzIsWzE1LCJjIl0sImdldEl0ZW0iLFs3LFsxNSwiaCJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJqIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25MaW5rQ2xpY2siXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX2VuaGFuY2VkTWVhc3VyZW1lbnQiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJwYXJzZVVybCJdXSxbNTIsIm4iLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRHdGFnRXZlbnQiXV0sWzUyLCJvIixbMixbMTUsImwiXSwiQSIsWzcsImRvd25sb2FkIl1dXSxbNTIsInAiLFswLCJeKHBkZnx4bHN4P3xkb2N4P3x0eHR8cnRmfGNzdnxleGV8a2V5fHBwKHN8dHx0eCl8N3p8cGtnfHJhcnxnenx6aXB8YXZpfCIsIm1vdnxtcDR8bXBlP2d8d212fG1pZGk/fG1wM3x3YXZ8d21hKSQiXV0sWzUyLCJ1IixbImsiLFs4LCJjaGVja1ZhbGlkYXRpb24iLHRydWVdXV0sWzIyLFsyOCxbMTUsInUiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzIsWzE1LCJjIl0sInNldEl0ZW0iLFs3LFsxNSwiaCJdLHRydWVdXSxbImoiLCJndG0ubGlua0NsaWNrIixbNTEsIiIsWzcsInYiLCJ3Il0sWyJ3Il0sWzUyLCJ4IixbOCwiZXZlbnRJZCIsWzE2LFsxNSwidiJdLCJndG0udW5pcXVlRXZlbnRJZCJdLCJkZWZlcnJhYmxlIix0cnVlXV0sWzUyLCJ5IixbMTYsWzE1LCJ2Il0sImd0bS5lbGVtZW50VXJsIl1dLFs1MiwieiIsWyJtIixbMTUsInkiXV1dLFsyMixbMjgsWzE1LCJ6Il1dLFs0NixbMzZdXV0sWzUyLCJhQSIsWyJyIixbMTUsInoiXV1dLFsyMixbMjgsWyJxIixbMTUsImFBIl1dXSxbNDYsWzUzLFszNl1dXV0sWzUyLCJhQiIsWzgsImxpbmtfaWQiLFsxNixbMTUsInYiXSwiZ3RtLmVsZW1lbnRJZCJdLCJsaW5rX3VybCIsWyJ0IixbMTUsInoiXV0sImxpbmtfdGV4dCIsWzE2LFsxNSwidiJdLCJndG0uZWxlbWVudFRleHQiXSwiZmlsZV9uYW1lIixbInMiLFsxNSwieiJdXSwiZmlsZV9leHRlbnNpb24iLFsxNSwiYUEiXV1dLFsyLFsxNSwibCJdLCJCIixbNyxbMTUsIngiXV1dLFsibiIsWzE1LCJvIl0sWzE1LCJnIl0sWzE1LCJhQiJdLFsxNSwieCJdXV0sWzE1LCJ1Il1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9lbV9vdXRib3VuZF9jbGljayIsWzQ2LCJhIl0sWzUwLCJyIixbNDYsInciXSxbMjIsWzI4LFsxNSwidyJdXSxbNDYsWzM2LFs0NF1dXV0sWzQxLCJ4Il0sWzMsIngiLCIiXSxbMjIsWzEsWzE1LCJ3Il0sWzE3LFsxNSwidyJdLCJocmVmIl1dLFs0NixbNTMsWzQxLCJ5Il0sWzMsInkiLFsyLFsxNyxbMTUsInciXSwiaHJlZiJdLCJpbmRleE9mIixbNywiIyJdXV0sWzMsIngiLFszOSxbMjMsWzE1LCJ5Il0sMF0sWzE3LFsxNSwidyJdLCJocmVmIl0sWzIsWzE3LFsxNSwidyJdLCJocmVmIl0sInN1YnN0cmluZyIsWzcsMCxbMTUsInkiXV1dXV1dXV0sWzM2LFsxNSwieCJdXV0sWzUwLCJzIixbNDYsInciXSxbMjIsWzI4LFsxNSwidyJdXSxbNDYsWzM2LFs0NF1dXV0sWzQxLCJ4Il0sWzMsIngiLFsxNyxbMTUsInciXSwiaG9zdG5hbWUiXV0sWzUyLCJ5IixbMixbMTUsIngiXSwibWF0Y2giLFs3LCJed3d3XFxkKlxcLiJdXV0sWzIyLFsxLFsxNSwieSJdLFsxNixbMTUsInkiXSwwXV0sWzQ2LFszLCJ4IixbMixbMTUsIngiXSwic3Vic3RyaW5nIixbNyxbMTcsWzE2LFsxNSwieSJdLDBdLCJsZW5ndGgiXV1dXV1dLFszNixbMTUsIngiXV1dLFs1MCwidCIsWzQ2LCJ3Il0sWzIyLFsyOCxbMTUsInciXV0sWzQ2LFszNixmYWxzZV1dXSxbNTIsIngiLFsyLFsxNyxbMTUsInciXSwiaG9zdG5hbWUiXSwidG9Mb3dlckNhc2UiLFs3XV1dLFsyMixbMjgsWzE1LCJ4Il1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNDEsInkiXSxbMywieSIsWzIsWyJzIixbIm8iLFsibiJdXV0sInRvTG93ZXJDYXNlIixbN11dXSxbNDEsInoiXSxbMywieiIsWzM3LFsxNyxbMTUsIngiXSwibGVuZ3RoIl0sWzE3LFsxNSwieSJdLCJsZW5ndGgiXV1dLFsyMixbMSxbMTgsWzE1LCJ6Il0sMF0sWzI5LFsyLFsxNSwieSJdLCJjaGFyQXQiLFs3LDBdXSwiLiJdXSxbNDYsWzUzLFszMixbMTUsInoiXSxbMywieiIsWzM3LFsxNSwieiJdLDFdXV0sWzMsInkiLFswLCIuIixbMTUsInkiXV1dXV1dLFsyMixbMSxbMTksWzE1LCJ6Il0sMF0sWzEyLFsyLFsxNSwieCJdLCJpbmRleE9mIixbNyxbMTUsInkiXSxbMTUsInoiXV1dLFsxNSwieiJdXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFszNix0cnVlXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9jY2RFbU91dGJvdW5kQ2xpY2tBY3Rpdml0eSJdXSxbNTIsImYiLFsxNyxbMTUsImQiXSwiRCJdXSxbNTIsImciLCJjbGljayJdLFs1MiwiaCIsImlzUmVnaXN0ZXJlZCJdLFs1MiwiaSIsWzE3LFsxNSwiYSJdLCJpbnN0YW5jZURlc3RpbmF0aW9uSWQiXV0sWzIyLFsiYiIsWzE1LCJpIl0sWzE1LCJmIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXSxbMzZdXV1dLFsyLFsxNSwiZSJdLCJBIixbNyxbMTUsImkiXSxbMTcsWzE1LCJhIl0sImluY2x1ZGVQYXJhbXMiXV1dLFsyMixbMixbMTUsImMiXSwiZ2V0SXRlbSIsWzcsWzE1LCJoIl1dXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImoiLFsicmVxdWlyZSIsImludGVybmFsLmFkZERhdGFMYXllckV2ZW50TGlzdGVuZXIiXV0sWzUyLCJrIixbInJlcXVpcmUiLCJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkxpbmtDbGljayJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfZW5oYW5jZWRNZWFzdXJlbWVudCJdXSxbNTIsIm0iLFsicmVxdWlyZSIsImludGVybmFsLmdldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsIm4iLFsicmVxdWlyZSIsImdldFVybCJdXSxbNTIsIm8iLFsicmVxdWlyZSIsInBhcnNlVXJsIl1dLFs1MiwicCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsInEiLFsyLFsxNSwibCJdLCJBIixbNywib3V0Ym91bmRfY2xpY2siXV1dLFs1MiwidSIsWyJtIixbMTUsImkiXSwiY3Jvc3NfZG9tYWluX2NvbmRpdGlvbnMiXV0sWzUyLCJ2IixbImsiLFs4LCJhZmZpbGlhdGVEb21haW5zIixbMTUsInUiXSwiY2hlY2tWYWxpZGF0aW9uIix0cnVlLCJ3YWl0Rm9yVGFncyIsZmFsc2VdXV0sWzIyLFsyOCxbMTUsInYiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25GYWlsdXJlIixbN11dLFszNl1dXV0sWzIsWzE1LCJjIl0sInNldEl0ZW0iLFs3LFsxNSwiaCJdLHRydWVdXSxbImoiLCJndG0ubGlua0NsaWNrIixbNTEsIiIsWzcsInciLCJ4Il0sWzUyLCJ5IixbIm8iLFsxNixbMTUsInciXSwiZ3RtLmVsZW1lbnRVcmwiXV1dLFsyMixbMjgsWyJ0IixbMTUsInkiXV1dLFs0NixbNTMsWyJ4Il0sWzM2XV1dXSxbNTIsInoiLFs4LCJsaW5rX2lkIixbMTYsWzE1LCJ3Il0sImd0bS5lbGVtZW50SWQiXSwibGlua19jbGFzc2VzIixbMTYsWzE1LCJ3Il0sImd0bS5lbGVtZW50Q2xhc3NlcyJdLCJsaW5rX3VybCIsWyJyIixbMTUsInkiXV0sImxpbmtfZG9tYWluIixbInMiLFsxNSwieSJdXSwib3V0Ym91bmQiLHRydWVdXSxbNDMsWzE1LCJ6Il0sImV2ZW50X2NhbGxiYWNrIixbMTUsIngiXV0sWzUyLCJhQSIsWzgsImV2ZW50SWQiLFsxNixbMTUsInciXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXSwiZGVmZXJyYWJsZSIsdHJ1ZV1dLFsyLFsxNSwibCJdLCJCIixbNyxbMTUsImFBIl1dXSxbInAiLFsxNSwicSJdLFsxNSwiZyJdLFsxNSwieiJdLFsxNSwiYUEiXV1dLFsxNSwidiJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZW1fcGFnZV92aWV3IixbNDYsImEiXSxbMjIsWzI4LFsxNyxbMTUsImEiXSwiaGlzdG9yeUV2ZW50cyJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsImQiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfY2NkRW1QYWdlVmlld0FjdGl2aXR5Il1dLFs1MiwiZiIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImciLFsxNyxbMTUsImYiXSwiQyJdXSxbNTIsImgiLCJwYWdlX3ZpZXciXSxbNTIsImkiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsImoiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImIiLFsxNSwiaiJdLFsxNSwiZyJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImUiXSwiQSIsWzcsWzE1LCJqIl1dXSxbMjIsWzIsWzE1LCJkIl0sImdldEl0ZW0iLFs3LFsxNSwiaSJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJrIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwibCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25IaXN0b3J5Q2hhbmdlIl1dLFs1MiwibSIsWzE1LCJfX21vZHVsZV9lbmhhbmNlZE1lYXN1cmVtZW50Il1dLFs1MiwibiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2VuZEd0YWdFdmVudCJdXSxbNTIsIm8iLFsyLFsxNSwibSJdLCJBIixbNywicGFnZV92aWV3Il1dXSxbNTIsInAiLFs4LCJpbnRlcnZhbCIsMTAwMCwidXNlVjJFdmVudE5hbWUiLHRydWVdXSxbNTIsInEiLFsibCIsWzE1LCJwIl1dXSxbMjIsWzI4LFsxNSwicSJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PbkZhaWx1cmUiLFs3XV0sWzM2XV1dXSxbMixbMTUsImQiXSwic2V0SXRlbSIsWzcsWzE1LCJpIl0sdHJ1ZV1dLFsiayIsImd0bS5oaXN0b3J5Q2hhbmdlLXYyIixbNTEsIiIsWzcsInIiLCJzIl0sWyJzIl0sWzUyLCJ0IixbMTYsWzE1LCJyIl0sImd0bS5vbGRVcmwiXV0sWzIyLFsyMCxbMTYsWzE1LCJyIl0sImd0bS5uZXdVcmwiXSxbMTUsInQiXV0sWzQ2LFszNl1dXSxbNTIsInUiLFsxNixbMTUsInIiXSwiZ3RtLmhpc3RvcnlDaGFuZ2VTb3VyY2UiXV0sWzIyLFsxLFsxLFsyMSxbMTUsInUiXSwicHVzaFN0YXRlIl0sWzIxLFsxNSwidSJdLCJwb3BzdGF0ZSJdXSxbMjEsWzE1LCJ1Il0sInJlcGxhY2VTdGF0ZSJdXSxbNDYsWzUzLFszNl1dXV0sWzUyLCJ2IixbOF1dLFsyMixbMTcsWzE1LCJhIl0sImluY2x1ZGVQYXJhbXMiXSxbNDYsWzUzLFs0MyxbMTUsInYiXSwicGFnZV9sb2NhdGlvbiIsWzE2LFsxNSwiciJdLCJndG0ubmV3VXJsIl1dLFs0MyxbMTUsInYiXSwicGFnZV9yZWZlcnJlciIsWzE1LCJ0Il1dXV1dLFs1MiwidyIsWzgsImV2ZW50SWQiLFsxNixbMTUsInIiXSwiZ3RtLnVuaXF1ZUV2ZW50SWQiXV1dLFsyMixbMjEsWzE3LFsxNSwiYSJdLCJkZWZlclBhZ2VWaWV3Il0sZmFsc2VdLFs0NixbNTMsWzQzLFsxNSwidyJdLCJkZWZlcnJhYmxlIix0cnVlXV1dXSxbMixbMTUsIm0iXSwiQiIsWzcsWzE1LCJ3Il1dXSxbIm4iLFsxNSwibyJdLFsxNSwiaCJdLFsxNSwidiJdLFsxNSwidyJdXV0sWzE1LCJxIl1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9lbV9zY3JvbGwiLFs0NiwiYSJdLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwidGVtcGxhdGVTdG9yYWdlIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfY2NkRW1TY3JvbGxBY3Rpdml0eSJdXSxbNTIsImYiLFsxNyxbMTUsImQiXSwiRSJdXSxbNTIsImciLCJzY3JvbGwiXSxbNTIsImgiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsImkiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImIiLFsxNSwiaSJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImUiXSwiQSIsWzcsWzE1LCJpIl0sWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl1dXSxbMjIsWzIsWzE1LCJjIl0sImdldEl0ZW0iLFs3LFsxNSwiaCJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJqIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25TY3JvbGwiXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX2VuaGFuY2VkTWVhc3VyZW1lbnQiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZW5kR3RhZ0V2ZW50Il1dLFs1MiwibiIsWzIsWzE1LCJsIl0sIkEiLFs3LCJzY3JvbGwiXV1dLFs1MiwibyIsWyJrIixbOCwidmVydGljYWxUaHJlc2hvbGRVbml0cyIsIlBFUkNFTlQiLCJ2ZXJ0aWNhbFRocmVzaG9sZHMiLDkwXV1dLFsyMixbMjgsWzE1LCJvIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXSxbMzZdXV1dLFsyLFsxNSwiYyJdLCJzZXRJdGVtIixbNyxbMTUsImgiXSx0cnVlXV0sWyJqIiwiZ3RtLnNjcm9sbERlcHRoIixbNTEsIiIsWzcsInAiLCJxIl0sWyJxIl0sWzUyLCJyIixbOCwiZXZlbnRJZCIsWzE2LFsxNSwicCJdLCJndG0udW5pcXVlRXZlbnRJZCJdLCJkZWZlcnJhYmxlIix0cnVlXV0sWzUyLCJzIixbOCwicGVyY2VudF9zY3JvbGxlZCIsWzE2LFsxNSwicCJdLCJndG0uc2Nyb2xsVGhyZXNob2xkIl1dXSxbMixbMTUsImwiXSwiQiIsWzcsWzE1LCJyIl1dXSxbIm0iLFsxNSwibiJdLFsxNSwiZyJdLFsxNSwicyJdLFsxNSwiciJdXV0sWzE1LCJvIl1dLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9lbV9zaXRlX3NlYXJjaCIsWzQ2LCJhIl0sWzUyLCJiIixbInJlcXVpcmUiLCJnZXRRdWVyeVBhcmFtZXRlcnMiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZW5kR3RhZ0V2ZW50Il1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiZ2V0Q29udGFpbmVyVmVyc2lvbiJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZyIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfY2NkRW1TaXRlU2VhcmNoQWN0aXZpdHkiXV0sWzUyLCJpIixbMixbMTUsImgiXSwiQSIsWzcsWzE3LFsxNSwiYSJdLCJzZWFyY2hRdWVyeVBhcmFtcyJdLFsxNSwiYiJdXV1dLFs1MiwiaiIsWzMwLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl0sWzE3LFsiZCJdLCJjb250YWluZXJJZCJdXV0sWzUyLCJrIixbOCwiZGVmZXJyYWJsZSIsdHJ1ZSwiZXZlbnRJZCIsWzE3LFsxNSwiYSJdLCJndG1FdmVudElkIl0sImV2ZW50TWV0YWRhdGEiLFs4LCJlbV9ldmVudCIsdHJ1ZV1dXSxbMjIsWzE1LCJpIl0sWzQ2LFs1MyxbNTIsImwiLFszOSxbMjgsWzI4LFsxNyxbMTUsImEiXSwiaW5jbHVkZVBhcmFtcyJdXV0sWzIsWzE1LCJoIl0sIkIiLFs3LFsxNSwiaSJdLFsxNyxbMTUsImEiXSwiYWRkaXRpb25hbFF1ZXJ5UGFyYW1zIl0sWzE1LCJiIl1dXSxbOF1dXSxbNDMsWzE3LFsxNSwiayJdLCJldmVudE1ldGFkYXRhIl0sWzE3LFsxNSwiZyJdLCJaIl0sImEiXSxbImMiLFsxNSwiaiJdLCJ2aWV3X3NlYXJjaF9yZXN1bHRzIixbMTUsImwiXSxbMTUsImsiXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2VtX3ZpZGVvIixbNDYsImEiXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2NjZEVtVmlkZW9BY3Rpdml0eSJdXSxbNTIsImYiLFsxNyxbMTUsImQiXSwiRiJdXSxbNTIsImciLCJ2aWRlb19zdGFydCJdLFs1MiwiaCIsInZpZGVvX3Byb2dyZXNzIl0sWzUyLCJpIiwidmlkZW9fY29tcGxldGUiXSxbNTIsImoiLCJpc1JlZ2lzdGVyZWQiXSxbNTIsImsiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFsyMixbImIiLFsxNSwiayJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV0sWzM2XV1dXSxbMixbMTUsImUiXSwiQSIsWzcsWzE1LCJrIl0sWzE3LFsxNSwiYSJdLCJpbmNsdWRlUGFyYW1zIl1dXSxbMjIsWzIsWzE1LCJjIl0sImdldEl0ZW0iLFs3LFsxNSwiaiJdXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJsIixbInJlcXVpcmUiLCJpbnRlcm5hbC5hZGREYXRhTGF5ZXJFdmVudExpc3RlbmVyIl1dLFs1MiwibSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25Zb3VUdWJlQWN0aXZpdHkiXV0sWzUyLCJuIixbMTUsIl9fbW9kdWxlX2VuaGFuY2VkTWVhc3VyZW1lbnQiXV0sWzUyLCJvIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZW5kR3RhZ0V2ZW50Il1dLFs1MiwicCIsWzIsWzE1LCJuIl0sIkEiLFs3LCJ2aWRlbyJdXV0sWzUyLCJxIixbIm0iLFs4LCJjYXB0dXJlQ29tcGxldGUiLHRydWUsImNhcHR1cmVTdGFydCIsdHJ1ZSwicHJvZ3Jlc3NUaHJlc2hvbGRzUGVyY2VudCIsWzcsMTAsMjUsNTAsNzVdXV1dLFsyMixbMjgsWzE1LCJxIl1dLFs0NixbNTMsWzIsWzE1LCJhIl0sImd0bU9uRmFpbHVyZSIsWzddXSxbMzZdXV1dLFsyLFsxNSwiYyJdLCJzZXRJdGVtIixbNyxbMTUsImoiXSx0cnVlXV0sWyJsIiwiZ3RtLnZpZGVvIixbNTEsIiIsWzcsInIiLCJzIl0sWyJzIl0sWzUyLCJ0IixbMTYsWzE1LCJyIl0sImd0bS52aWRlb1N0YXR1cyJdXSxbNDEsInUiXSxbMjIsWzIwLFsxNSwidCJdLCJzdGFydCJdLFs0NixbNTMsWzMsInUiLFsxNSwiZyJdXV1dLFs0NixbMjIsWzIwLFsxNSwidCJdLCJwcm9ncmVzcyJdLFs0NixbNTMsWzMsInUiLFsxNSwiaCJdXV1dLFs0NixbMjIsWzIwLFsxNSwidCJdLCJjb21wbGV0ZSJdLFs0NixbNTMsWzMsInUiLFsxNSwiaSJdXV1dLFs0NixbNTMsWzM2XV1dXV1dXV0sWzUyLCJ2IixbOCwidmlkZW9fY3VycmVudF90aW1lIixbMTYsWzE1LCJyIl0sImd0bS52aWRlb0N1cnJlbnRUaW1lIl0sInZpZGVvX2R1cmF0aW9uIixbMTYsWzE1LCJyIl0sImd0bS52aWRlb0R1cmF0aW9uIl0sInZpZGVvX3BlcmNlbnQiLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvUGVyY2VudCJdLCJ2aWRlb19wcm92aWRlciIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9Qcm92aWRlciJdLCJ2aWRlb190aXRsZSIsWzE2LFsxNSwiciJdLCJndG0udmlkZW9UaXRsZSJdLCJ2aWRlb191cmwiLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvVXJsIl0sInZpc2libGUiLFsxNixbMTUsInIiXSwiZ3RtLnZpZGVvVmlzaWJsZSJdXV0sWzUyLCJ3IixbOCwiZXZlbnRJZCIsWzE2LFsxNSwiciJdLCJndG0udW5pcXVlRXZlbnRJZCJdLCJkZWZlcnJhYmxlIix0cnVlXV0sWzIsWzE1LCJuIl0sIkIiLFs3LFsxNSwidyJdXV0sWyJvIixbMTUsInAiXSxbMTUsInUiXSxbMTUsInYiXSxbMTUsInciXV1dLFsxNSwicSJdXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dXQogLFs1MCwiX19jY2RfZ2FfYWRzX2xpbmsiLFs0NiwiYSJdLFs1MCwiayIsWzQ2LCJuIl0sWzM2LFsiaiIsWzcsImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXV1dXSxbNTAsImwiLFs0NiwibiJdLFs0MSwibyJdLFszLCJvIixbMixbMTUsIm4iXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJKUiJdXV1dLFsyMixbMjgsWzE1LCJvIl1dLFs0NixbNTMsWzUyLCJyIixbMzAsWzIsWzE1LCJuIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImIiXSwiSlMiXV1dLFs4XV1dLFszLCJvIixbMTYsWzE1LCJyIl0sWzE3LFsxNSwiYiJdLCJKUiJdXV1dXV0sWzIyLFsyOCxbMTUsIm8iXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwicCIsWyJkIixbMTcsWzE1LCJjIl0sIlMiXV1dLFsyMixbMTUsInAiXSxbNDYsWzUzLFszNl1dXV0sWyJlIixbMTcsWzE1LCJjIl0sIlMiXSxbMTUsIm8iXV0sWyJlIixbMTcsWzE1LCJjIl0sIlUiXSxbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdXSxbNTIsInEiLFsiZCIsWzE3LFsxNSwiYyJdLCJUIl1dXSxbMjIsWzE1LCJxIl0sWzQ2LFs1MyxbNTIsInIiLFszMCxbMixbMTUsIm4iXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImgiXSwiQUMiXV1dLFs3XV1dLFsyMixbMjMsWzIsWzE1LCJyIl0sImluZGV4T2YiLFs3LFsxNyxbMTUsImkiXSwiQUEiXV1dLDBdLFs0NixbNTMsWzIsWzE1LCJyIl0sInB1c2giLFs3LFsxNyxbMTUsImkiXSwiQUEiXV1dLFsyLFsxNSwibiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJBQyJdLFsxNSwiciJdXV1dXV1dXV1dLFs1MCwibSIsWzQ2LCJuIiwibyJdLFsyLFsxNSwiZyJdLCJCIixbNyxbMTUsIm4iXSxbMTUsIm8iXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfY3Jvc3NDb250YWluZXJTY2hlbWEiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5RnJvbUNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLnNldEluQ3Jvc3NDb250YWluZXJEYXRhIl1dLFs1MiwiZiIsWzE1LCJfX21vZHVsZV9nYUFkc0xpbmtBY3Rpdml0eSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfcHJvY2Vzc29ycyJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX2dvbGRFdmVudFVzYWdlSWQiXV0sWzUyLCJqIixbInJlcXVpcmUiLCJpc0NvbnNlbnRHcmFudGVkIl1dLFsyLFsxNSwiZiJdLCJBIixbNyxbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFsxNSwibCJdLFsxNSwibSJdLFsxNSwiayJdXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2dhX2ZpcnN0IixbNDYsImEiXSxbNTAsImUiLFs0NiwiZiJdLFsyLFsxNSwiYyJdLCJBIixbNyxbMTUsImYiXV1dLFsyLFsxNSwiZCJdLCJBIixbNyxbMTUsImYiXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX3Rhc2tQbGF0Zm9ybURldGVjdGlvbiJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfdGFza1NldFRlc3RIaXRQYXJhbXMiXV0sWyJiIixbMTcsWzE1LCJhIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFs1MSwiIixbNywiZiJdLFsiZSIsWzE1LCJmIl1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fY2NkX2dhX2xhc3QiLFs0NiwiYSJdLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUwLCJfX2NjZF9nYV9yZWdzY29wZSIsWzQ2LCJhIl0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2NjZEdhUmVnaW9uU2NvcGVkU2V0dGluZ3MiXV0sWzUyLCJjIixbMixbMTUsImIiXSwiQiIsWzcsWzE1LCJhIl1dXV0sWzIsWzE1LCJiIl0sIkEiLFs3LFsxNSwiYSJdLFsxNSwiYyJdXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fZSIsWzQ2LCJhIl0sWzM2LFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRFdmVudERhdGEiXV0sWyIkMCIsImV2ZW50Il1dXV0KICxbNTAsIl9fZ2N0IixbNDYsImEiXSxbNTAsImciLFs0NiwibSJdLFs1MiwibiIsWzddXSxbNjUsIm8iLFsxNSwibSJdLFs0NixbNTMsWzUyLCJwIixbImIiLFsxNSwibyJdXV0sWzIyLFsyMSxbMTUsInAiXSxbNDVdXSxbNDYsWzIsWzE1LCJuIl0sInB1c2giLFs3LFsxNSwicCJdXV1dXV1dXSxbMzYsWzE1LCJuIl1dXSxbNTAsImgiLFs0NiwibSJdLFs1MiwibiIsWzE3LFsxNSwibSJdLCJsaW5rZXIiXV0sWzIyLFsxLFsxNSwibiJdLFsxNixbMTUsIm4iXSwiZG9tYWlucyJdXSxbNDYsWzUzLFs0MyxbMTUsIm4iXSwiZG9tYWlucyIsWyJnIixbMTYsWzE1LCJuIl0sImRvbWFpbnMiXV1dXV1dLFszNixbMTUsIm4iXV1dLFs1MCwiaSIsWzQ2LCJtIl0sWzUyLCJuIixbMTcsWzE1LCJtIl0sInJlZmVycmFsRXhjbHVzaW9uRGVmaW5pdGlvbiJdXSxbMjIsWzEsWzE1LCJuIl0sWzE2LFsxNSwibiJdLCJpbmNsdWRlX2NvbmRpdGlvbnMiXV0sWzQ2LFs1MyxbNDMsWzE1LCJuIl0sImluY2x1ZGVfY29uZGl0aW9ucyIsWyJnIixbMTYsWzE1LCJuIl0sImluY2x1ZGVfY29uZGl0aW9ucyJdXV1dXV0sWzM2LFsxNSwibiJdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jcmVhdGVSZWdleCJdXSxbNTIsImMiLFsicmVxdWlyZSIsImdldFR5cGUiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5tZXJnZVJlbW90ZUNvbmZpZyJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyRGVzdGluYXRpb24iXV0sWzUyLCJmIixbInJlcXVpcmUiLCJ0ZW1wbGF0ZVN0b3JhZ2UiXV0sWzUyLCJqIixbMzAsWzIsWzE1LCJmIl0sImdldEl0ZW0iLFs3LCJyZWdleCJdXSxbImIiLCJbLiorXFwtP14ke30oKXxbXFxdXFxcXF0iLCJnIl1dXSxbMixbMTUsImYiXSwic2V0SXRlbSIsWzcsInJlZ2V4IixbMTUsImoiXV1dLFs1MiwiayIsWzhdXSxbNTIsImwiLFsxNyxbMTUsImEiXSwic2Vzc2lvbkR1cmF0aW9uIl1dLFsyMixbMTgsWzE1LCJsIl0sMF0sWzQ2LFs1MyxbNDMsWzE1LCJrIl0sInNlc3Npb25fZHVyYXRpb24iLFsxNSwibCJdXV1dXSxbNDMsWzE1LCJrIl0sImV2ZW50X3NldHRpbmdzIixbMTcsWzE1LCJhIl0sImV2ZW50U2V0dGluZ3MiXV0sWzQzLFsxNSwiayJdLCJkeW5hbWljX2V2ZW50X3NldHRpbmdzIixbMTcsWzE1LCJhIl0sImR5bmFtaWNFdmVudFNldHRpbmdzIl1dLFs0MyxbMTUsImsiXSwiZ29vZ2xlX3NpZ25hbHMiLFsyMCxbMTcsWzE1LCJhIl0sImdvb2dsZVNpZ25hbHMiXSwxXV0sWzQzLFsxNSwiayJdLCJnb29nbGVfdGxkIixbMTcsWzE1LCJhIl0sImZvcmVpZ25UbGQiXV0sWzQzLFsxNSwiayJdLCJnYV9yZXN0cmljdF9kb21haW4iLFsyMCxbMTcsWzE1LCJhIl0sInJlc3RyaWN0RG9tYWluIl0sMV1dLFs0MyxbMTUsImsiXSwiaW50ZXJuYWxfdHJhZmZpY19yZXN1bHRzIixbMTcsWzE1LCJhIl0sImludGVybmFsVHJhZmZpY1Jlc3VsdHMiXV0sWzQzLFsxNSwiayJdLCJsaW5rZXIiLFsiaCIsWzE1LCJhIl1dXSxbNDMsWzE1LCJrIl0sInJlZmVycmFsX2V4Y2x1c2lvbl9kZWZpbml0aW9uIixbImkiLFsxNSwiYSJdXV0sWyJkIixbMTcsWzE1LCJhIl0sInRyYWNraW5nSWQiXSxbMTUsImsiXV0sWyJlIixbMTcsWzE1LCJhIl0sInRyYWNraW5nSWQiXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fb2d0XzFwX2RhdGFfdjIiLFs0NiwiYSJdLFs1MCwicCIsWzQ2LCJyIiwicyIsInQiLCJ1Il0sWzIyLFsyMCxbMTYsWzE1LCJzIl0sInR5cGUiXSxbMTUsInQiXV0sWzQ2LFs1MyxbMjIsWzI4LFsxNSwiciJdXSxbNDYsWzUzLFszLCJyIixbOF1dXV1dLFsyMixbMjgsWzE2LFsxNSwiciJdLFsxNSwidCJdXV0sWzQ2LFs1MyxbNDMsWzE1LCJyIl0sWzE1LCJ0Il0sWzE2LFsxNSwicyJdLCJ1c2VyRGF0YSJdXSxbNTIsInYiLFs4LCJtb2RlIiwiYSJdXSxbMjIsWzE2LFsxNSwicyJdLCJ0YWdOYW1lIl0sWzQ2LFs1MyxbNDMsWzE1LCJ2Il0sImxvY2F0aW9uIixbMTYsWzE1LCJzIl0sInRhZ05hbWUiXV1dXV0sWzIyLFsxNixbMTUsInMiXSwicXVlcnlTZWxlY3RvciJdLFs0NixbNTMsWzQzLFsxNSwidiJdLCJzZWxlY3RvciIsWzE2LFsxNSwicyJdLCJxdWVyeVNlbGVjdG9yIl1dXV1dLFs0MyxbMTUsInUiXSxbMTUsInQiXSxbMTUsInYiXV1dXV1dXV0sWzM2LFsxNSwiciJdXV0sWzUwLCJxIixbNDYsInIiLCJzIiwidCJdLFsyMixbMjgsWzE2LFsxNSwiYSJdLFsxNSwidCJdXV0sWzQ2LFszNl1dXSxbNDMsWzE1LCJyIl0sWzE1LCJzIl0sWzgsInZhbHVlIixbMTYsWzE1LCJhIl0sWzE1LCJ0Il1dXV1dLFsyMixbMjgsWzE3LFsxNSwiYSJdLCJpc0VuYWJsZWQiXV0sWzQ2LFs1MyxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJPYmplY3QiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0RGVzdGluYXRpb25JZHMiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJpbnRlcm5hbC5kZXRlY3RVc2VyUHJvdmlkZWREYXRhIl1dLFs1MiwiaCIsWyJyZXF1aXJlIiwicXVlcnlQZXJtaXNzaW9uIl1dLFs1MiwiaSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuc2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIl1dLFs1MiwiaiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImsiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJtIixbImMiLFsxNyxbMTUsImUiXSwiQVQiXV1dLFs1MiwibiIsWzMwLFsiZiJdLFs3XV1dLFs1MiwibyIsWzgsImVuYWJsZV9jb2RlIix0cnVlXV0sWzIyLFsxNyxbMTUsImEiXSwiaXNBdXRvRW5hYmxlZCJdLFs0NixbNTMsWzUyLCJyIixbN11dLFsyMixbMSxbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sWzE3LFsxNyxbMTUsImEiXSwiYXV0b0NvbGxlY3RFeGNsdXNpb25TZWxlY3RvcnMiXSwibGVuZ3RoIl1dLFs0NixbNTMsWzUzLFs0MSwidSJdLFszLCJ1IiwwXSxbNjMsWzcsInUiXSxbMjMsWzE1LCJ1Il0sWzE3LFsxNyxbMTUsImEiXSwiYXV0b0NvbGxlY3RFeGNsdXNpb25TZWxlY3RvcnMiXSwibGVuZ3RoIl1dLFszMyxbMTUsInUiXSxbMywidSIsWzAsWzE1LCJ1Il0sMV1dXSxbNDYsWzUzLFs1MiwidiIsWzE3LFsxNixbMTcsWzE1LCJhIl0sImF1dG9Db2xsZWN0RXhjbHVzaW9uU2VsZWN0b3JzIl0sWzE1LCJ1Il1dLCJleGNsdXNpb25TZWxlY3RvciJdXSxbMjIsWzE1LCJ2Il0sWzQ2LFs1MyxbMixbMTUsInIiXSwicHVzaCIsWzcsWzE1LCJ2Il1dXV1dXV1dXV1dXV0sWzUyLCJzIixbMTcsWzE1LCJhIl0sImlzQXV0b0NvbGxlY3RQaWlFbmFibGVkRmxhZyJdXSxbNTIsInQiLFszOSxbMTcsWzE1LCJhIl0sImlzQXV0b0NvbGxlY3RQaWlFbmFibGVkRmxhZyJdLFsxNyxbMTUsImEiXSwiYXV0b0VtYWlsRW5hYmxlZCJdLHRydWVdXSxbNDMsWzE1LCJvIl0sImF1dG9fZGV0ZWN0IixbOCwiZW1haWwiLFsxNSwidCJdLCJwaG9uZSIsWzEsWzE1LCJzIl0sWzE3LFsxNSwiYSJdLCJhdXRvUGhvbmVFbmFibGVkIl1dLCJhZGRyZXNzIixbMSxbMTUsInMiXSxbMTcsWzE1LCJhIl0sImF1dG9BZGRyZXNzRW5hYmxlZCJdXSwiZXhjbHVkZV9lbGVtZW50X3NlbGVjdG9ycyIsWzE1LCJyIl1dXV1dXSxbMjIsWzE3LFsxNSwiYSJdLCJpc01hbnVhbEVuYWJsZWQiXSxbNDYsWzUzLFs1MiwiciIsWzhdXSxbMjIsWzE3LFsxNSwiYSJdLCJtYW51YWxFbWFpbEVuYWJsZWQiXSxbNDYsWzUzLFsicSIsWzE1LCJyIl0sImVtYWlsIiwiZW1haWxWYWx1ZSJdXV1dLFsyMixbMTcsWzE1LCJhIl0sIm1hbnVhbFBob25lRW5hYmxlZCJdLFs0NixbNTMsWyJxIixbMTUsInIiXSwicGhvbmUiLCJwaG9uZVZhbHVlIl1dXV0sWzIyLFsxNyxbMTUsImEiXSwibWFudWFsQWRkcmVzc0VuYWJsZWQiXSxbNDYsWzUzLFs1MiwicyIsWzhdXSxbInEiLFsxNSwicyJdLCJmaXJzdF9uYW1lIiwiZmlyc3ROYW1lVmFsdWUiXSxbInEiLFsxNSwicyJdLCJsYXN0X25hbWUiLCJsYXN0TmFtZVZhbHVlIl0sWyJxIixbMTUsInMiXSwic3RyZWV0Iiwic3RyZWV0VmFsdWUiXSxbInEiLFsxNSwicyJdLCJjaXR5IiwiY2l0eVZhbHVlIl0sWyJxIixbMTUsInMiXSwicmVnaW9uIiwicmVnaW9uVmFsdWUiXSxbInEiLFsxNSwicyJdLCJjb3VudHJ5IiwiY291bnRyeVZhbHVlIl0sWyJxIixbMTUsInMiXSwicG9zdGFsX2NvZGUiLCJwb3N0YWxDb2RlVmFsdWUiXSxbNDMsWzE1LCJyIl0sIm5hbWVfYW5kX2FkZHJlc3MiLFs3LFsxNSwicyJdXV1dXV0sWzQzLFsxNSwibyJdLCJzZWxlY3RvcnMiLFsxNSwiciJdXV1dXSxbNjUsInIiLFsxNSwibiJdLFs0NixbNTMsWyJpIixbMTUsInIiXSwidXNlcl9kYXRhX3NldHRpbmdzIixbMTUsIm8iXV0sWzUyLCJzIixbMTYsWzE1LCJvIl0sImF1dG9fZGV0ZWN0Il1dLFsyMixbMjgsWzE1LCJzIl1dLFs0NixbNTMsWzZdXV1dLFs1MiwidCIsWzUxLCIiLFs3LCJ1Il0sWzUyLCJ2IixbMixbMTUsInUiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImsiXSwiQ1giXV1dXSxbMjIsWzE1LCJ2Il0sWzQ2LFs1MyxbMzYsWzE1LCJ2Il1dXV1dLFs1MiwidyIsWyJjIixbMTcsWzE1LCJlIl0sIkJWIl1dXSxbNTIsIngiLFsiYyIsWzE3LFsxNSwiZSJdLCJDSSJdXV0sWzQxLCJ5Il0sWzIyLFsiaCIsImRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEiLCJhdXRvIl0sWzQ2LFs1MyxbMywieSIsWyJnIixbOCwiZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnMiLFsxNixbMTUsInMiXSwiZXhjbHVkZV9lbGVtZW50X3NlbGVjdG9ycyJdLCJmaWVsZEZpbHRlcnMiLFs4LCJlbWFpbCIsWzE2LFsxNSwicyJdLCJlbWFpbCJdLCJwaG9uZSIsWzE2LFsxNSwicyJdLCJwaG9uZSJdLCJhZGRyZXNzIixbMTYsWzE1LCJzIl0sImFkZHJlc3MiXV0sImluY2x1ZGVTZWxlY3RvciIsWzE1LCJ3Il0sInJlYWRGcm9tRGF0YUxheWVyIixbMTUsIngiXV1dXV1dXSxbNTIsInoiLFsxLFsxNSwieSJdLFsxNixbMTUsInkiXSwiZWxlbWVudHMiXV1dLFs1MiwiYUEiLFs4XV0sWzUyLCJhQiIsWzhdXSxbMjIsWzEsWzE1LCJ6Il0sWzE4LFsxNyxbMTUsInoiXSwibGVuZ3RoIl0sMF1dLFs0NixbNTMsWzQxLCJhQyJdLFs0MSwiYUQiXSxbMywiYUQiLFs4XV0sWzUzLFs0MSwiYUUiXSxbMywiYUUiLDBdLFs2MyxbNywiYUUiXSxbMjMsWzE1LCJhRSJdLFsxNyxbMTUsInoiXSwibGVuZ3RoIl1dLFszMyxbMTUsImFFIl0sWzMsImFFIixbMCxbMTUsImFFIl0sMV1dXSxbNDYsWzUzLFs1MiwiYUYiLFsxNixbMTUsInoiXSxbMTUsImFFIl1dXSxbInAiLFsxNSwiYUEiXSxbMTUsImFGIl0sImVtYWlsIixbMTUsImFCIl1dLFsyMixbImMiLFsxNyxbMTUsImUiXSwiQk8iXV0sWzQ2LFs1MyxbInAiLFsxNSwiYUEiXSxbMTUsImFGIl0sInBob25lX251bWJlciIsWzE1LCJhQiJdXSxbMywiYUMiLFsicCIsWzE1LCJhQyJdLFsxNSwiYUYiXSwiZmlyc3RfbmFtZSIsWzE1LCJhRCJdXV0sWzMsImFDIixbInAiLFsxNSwiYUMiXSxbMTUsImFGIl0sImxhc3RfbmFtZSIsWzE1LCJhRCJdXV0sWzMsImFDIixbInAiLFsxNSwiYUMiXSxbMTUsImFGIl0sImNvdW50cnkiLFsxNSwiYUQiXV1dLFszLCJhQyIsWyJwIixbMTUsImFDIl0sWzE1LCJhRiJdLCJwb3N0YWxfY29kZSIsWzE1LCJhRCJdXV1dXV1dXV1dLFsyMixbMSxbMTUsImFDIl0sWzI4LFsxNixbMTUsImFBIl0sImFkZHJlc3MiXV1dLFs0NixbNTMsWzQzLFsxNSwiYUEiXSwiYWRkcmVzcyIsWzE1LCJhQyJdXSxbMjIsWzE1LCJtIl0sWzQ2LFs1MyxbNDMsWzE2LFsxNSwiYUEiXSwiYWRkcmVzcyJdLCJfdGFnX21ldGFkYXRhIixbMTUsImFEIl1dXV1dXV1dXV1dLFsyMixbMSxbMTUsInkiXSxbMTUsIngiXV0sWzQ2LFs1MyxbNTIsImFDIixbMTYsWzE1LCJ5Il0sImRhdGFMYXllclNlYXJjaFRpbWUiXV0sWzUyLCJhRCIsWzE2LFsxNSwieSJdLCJkYXRhTGF5ZXJTZWFyY2hDb3VudCJdXSxbMixbMTUsInUiXSwibWVyZ2VIaXREYXRhRm9yS2V5IixbNyxbMTcsWzE1LCJsIl0sIkZUIl0sWzgsImRsc3QiLFsxNSwiYUMiXSwiZGxzYyIsWzE1LCJhRCJdXV1dXV1dLFsyMixbMTUsIm0iXSxbNDYsWzUzLFsyMixbMzAsWzE2LFsxNSwiYUEiXSwiZW1haWwiXSxbMTYsWzE1LCJhQSJdLCJwaG9uZV9udW1iZXIiXV0sWzQ2LFs1MyxbNDMsWzE1LCJhQSJdLCJfdGFnX21ldGFkYXRhIixbMTUsImFCIl1dXV1dXV1dLFsyLFsxNSwidSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiayJdLCJDWCJdLFsxNSwiYUEiXV1dLFszNixbMTUsImFBIl1dXV0sWyJqIixbMTUsInIiXSxbNTEsIiIsWzcsInUiXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImsiXSwiQ1kiXSxbMTUsInQiXV1dXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fb2d0X2V2ZW50X2NyZWF0ZSIsWzQ2LCJhIl0sWzUwLCJyIixbNDYsInMiLCJ0Il0sWzIyLFsyOCxbMixbMTUsImMiXSwiQiIsWzcsWzE1LCJzIl0sWzE2LFsxNSwidCJdLFsxNSwibiJdXSxbMzAsWzE2LFsxNSwidCJdLFsxNSwibyJdXSxbN11dXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNTIsInUiLFsxNixbMTUsInQiXSxbMTUsInAiXV1dLFsyMixbMixbMTUsImMiXSwiRCIsWzcsWzE1LCJ1Il1dXSxbNDYsWzUzLFszNl1dXV0sWzUyLCJ2IixbMjgsWzE2LFsxNSwidCJdLFsxNSwicSJdXV1dLFs0MSwidyJdLFszLCJ3IixbMTUsInYiXV0sWzIyLFsiaSIsWzE3LFsxNSwiaiJdLCJBRSJdXSxbNDYsWzUzLFszLCJ3IixbMzAsWzE1LCJ3Il0sWzI4LFsyLFsxNSwicyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZyJdLCJCTyJdXV1dXV1dXV0sWzUyLCJ4IixbMzAsWzIsWzE1LCJzIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJnIl0sIkFDIl1dXSxbN11dXSxbMjIsWzIwLFsyLFsxNSwieCJdLCJpbmRleE9mIixbNyxbMTcsWzE1LCJoIl0sIkEiXV1dLFsyNywxXV0sWzQ2LFs1MyxbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaCJdLCJBIl1dXV1dXSxbMixbMTUsInMiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImciXSwiQUMiXSxbMTUsIngiXV1dLFs1MiwieSIsWyJiIixbMTUsInMiXSxbOCwib21pdEhpdERhdGEiLFsxNSwidyJdLCJvbWl0RXZlbnRDb250ZXh0IixbMTUsInYiXSwib21pdE1ldGFkYXRhIix0cnVlXV1dLFsyLFsxNSwiYyJdLCJBIixbNyxbMTUsInkiXSxbMTUsInQiXV1dLFsyLFsxNSwieSJdLCJzZXRFdmVudE5hbWUiLFs3LFsxNSwidSJdXV0sWzIsWzE1LCJ5Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJnIl0sIkJSIl0sdHJ1ZV1dLFsyLFsxNSwieSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZyJdLCJBQyJdLFs3LFsxNyxbMTUsImgiXSwiSyJdXV1dLFsiZCIsWzE1LCJ5Il1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNvcHlQcmVIaXQiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2V2ZW50RWRpdGluZ0FuZFN5bnRoZXNpcyJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLnByb2Nlc3NBc05ld0V2ZW50Il1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImYiLFsicmVxdWlyZSIsInRlbXBsYXRlU3RvcmFnZSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX2dvbGRFdmVudFVzYWdlSWQiXV0sWzUyLCJpIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImsiLFsxNyxbMTUsImEiXSwiaW5zdGFuY2VEZXN0aW5hdGlvbklkIl1dLFs0MSwibCJdLFszLCJsIixbMixbMTUsImYiXSwiZ2V0SXRlbSIsWzcsWzE1LCJrIl1dXV0sWzQxLCJtIl0sWzMsIm0iLFsyOCxbMjgsWzE1LCJsIl1dXV0sWzIyLFsxNSwibSJdLFs0NixbNTMsWzIsWzE1LCJsIl0sInB1c2giLFs3LFsxNyxbMTUsImEiXSwicHJlY29tcGlsZWRSdWxlIl1dXSxbMixbMTUsImEiXSwiZ3RtT25TdWNjZXNzIixbN11dLFszNl1dXV0sWzIsWzE1LCJmIl0sInNldEl0ZW0iLFs3LFsxNSwiayJdLFs3LFsxNyxbMTUsImEiXSwicHJlY29tcGlsZWRSdWxlIl1dXV0sWzUyLCJuIiwiZXZlbnRfbmFtZV9wcmVkaWNhdGUiXSxbNTIsIm8iLCJjb25kaXRpb25zIl0sWzUyLCJwIiwibmV3X2V2ZW50X25hbWUiXSxbNTIsInEiLCJtZXJnZV9zb3VyY2VfZXZlbnRfcGFyYW1zIl0sWyJlIixbMTUsImsiXSxbNTEsIiIsWzcsInMiXSxbMjIsWzIsWzE1LCJzIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJnIl0sIkJSIl1dXSxbNDYsWzUzLFszNl1dXV0sWzUyLCJ0IixbMixbMTUsImYiXSwiZ2V0SXRlbSIsWzcsWzE1LCJrIl1dXV0sWzY2LCJ1IixbMTUsInQiXSxbNDYsWzUzLFsiciIsWzE1LCJzIl0sWzE1LCJ1Il1dXV1dXV0sWzIsWzE1LCJhIl0sImd0bU9uU3VjY2VzcyIsWzddXV0KICxbNTAsIl9fc2V0X3Byb2R1Y3Rfc2V0dGluZ3MiLFs0NiwiYSJdLFsyLFsxNSwiYSJdLCJndG1PblN1Y2Nlc3MiLFs3XV1dCiAsWzUyLCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImNvbnZlcnNpb24iXSxbNTIsImMiLCJmbG9vZGxpZ2h0Il0sWzUyLCJkIiwiZ2FfY29udmVyc2lvbiJdLFs1MiwiZSIsInBhZ2VfdmlldyJdLFs1MiwiZiIsInJlbWFya2V0aW5nIl0sWzUyLCJnIiwidXNlcl9kYXRhX2xlYWQiXSxbNTIsImgiLCJ1c2VyX2RhdGFfd2ViIl0sWzM2LFs4LCJEIixbMTUsImIiXSwiRSIsWzE1LCJjIl0sIkYiLFsxNSwiZCJdLCJIIixbMTUsImUiXSwiSSIsWzE1LCJmIl0sIkoiLFsxNSwiZyJdLCJLIixbMTUsImgiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2d0YWdTY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJhZF9wZXJzb25hbGl6YXRpb24iXSxbNTIsImMiLCJhZF9zdG9yYWdlIl0sWzUyLCJkIiwiYWRfdXNlcl9kYXRhIl0sWzUyLCJlIiwiY29uc2VudF91cGRhdGVkIl0sWzUyLCJmIiwiYXBwX3JlbW92ZSJdLFs1MiwiZyIsImFwcF9zdG9yZV9yZWZ1bmQiXSxbNTIsImgiLCJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NhbmNlbCJdLFs1MiwiaSIsImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fY29udmVydCJdLFs1MiwiaiIsImFwcF9zdG9yZV9zdWJzY3JpcHRpb25fcmVuZXciXSxbNTIsImsiLCJjb252ZXJzaW9uIl0sWzUyLCJsIiwicHVyY2hhc2UiXSxbNTIsIm0iLCJmaXJzdF9vcGVuIl0sWzUyLCJuIiwiZmlyc3RfdmlzaXQiXSxbNTIsIm8iLCJndGFnLmNvbmZpZyJdLFs1MiwicCIsImluX2FwcF9wdXJjaGFzZSJdLFs1MiwicSIsInBhZ2VfdmlldyJdLFs1MiwiciIsInNlc3Npb25fc3RhcnQiXSxbNTIsInMiLCJ1c2VyX2VuZ2FnZW1lbnQiXSxbNTIsInQiLCJhZHNfZGF0YV9yZWRhY3Rpb24iXSxbNTIsInUiLCJhbGxvd19hZF9wZXJzb25hbGl6YXRpb25fc2lnbmFscyJdLFs1MiwidiIsImFsbG93X2N1c3RvbV9zY3JpcHRzIl0sWzUyLCJ3IiwiYWxsb3dfZW5oYW5jZWRfY29udmVyc2lvbnMiXSxbNTIsIngiLCJhbGxvd19nb29nbGVfc2lnbmFscyJdLFs1MiwieSIsImF1aWQiXSxbNTIsInoiLCJhd19yZW1hcmtldGluZ19vbmx5Il0sWzUyLCJhQSIsImRpc2NvdW50Il0sWzUyLCJhQiIsImF3X2ZlZWRfY291bnRyeSJdLFs1MiwiYUMiLCJhd19mZWVkX2xhbmd1YWdlIl0sWzUyLCJhRCIsIml0ZW1zIl0sWzUyLCJhRSIsImF3X21lcmNoYW50X2lkIl0sWzUyLCJhRiIsImF3X2Jhc2tldF90eXBlIl0sWzUyLCJhRyIsImNsaWVudF9pZCJdLFs1MiwiYUgiLCJjb252ZXJzaW9uX2Nvb2tpZV9wcmVmaXgiXSxbNTIsImFJIiwiY29udmVyc2lvbl9pZCJdLFs1MiwiYUoiLCJjb252ZXJzaW9uX2xpbmtlciJdLFs1MiwiYUsiLCJjb252ZXJzaW9uX2FwaSJdLFs1MiwiYUwiLCJjb29raWVfZGVwcmVjYXRpb24iXSxbNTIsImFNIiwiY29va2llX2V4cGlyZXMiXSxbNTIsImFOIiwiY29va2llX3ByZWZpeCJdLFs1MiwiYU8iLCJjb29raWVfdXBkYXRlIl0sWzUyLCJhUCIsImNvdW50cnkiXSxbNTIsImFRIiwiY3VycmVuY3kiXSxbNTIsImFSIiwiY3VzdG9tZXJfbGlmZXRpbWVfdmFsdWUiXSxbNTIsImFTIiwiY3VzdG9tZXJfdHlwZSJdLFs1MiwiYVQiLCJkZWJ1Z19tb2RlIl0sWzUyLCJhVSIsInNoaXBwaW5nIl0sWzUyLCJhViIsImVuZ2FnZW1lbnRfdGltZV9tc2VjIl0sWzUyLCJhVyIsImVzdGltYXRlZF9kZWxpdmVyeV9kYXRlIl0sWzUyLCJhWCIsImV2ZW50X2RldmVsb3Blcl9pZF9zdHJpbmciXSxbNTIsImFZIiwiZXZlbnRfaWQiXSxbNTIsImFaIiwiZXZlbnQiXSxbNTIsImJBIiwiXyZhZSJdLFs1MiwiYkIiLCJldmVudF90aW1lb3V0Il0sWzUyLCJiQyIsImV4dF9jbGllbnRfaWQiXSxbNTIsImJEIiwiZmlyc3RfcGFydHlfY29sbGVjdGlvbiJdLFs1MiwiYkUiLCJtYXRjaF9pZCJdLFs1MiwiYkYiLCJnZHByX2FwcGxpZXMiXSxbNTIsImJHIiwiX2d0X21ldGFkYXRhIl0sWzUyLCJiSCIsImdvb2dsZV9hbmFseXNpc19wYXJhbXMiXSxbNTIsImJJIiwiX2dvb2dsZV9uZyJdLFs1MiwiYkoiLCJfb25vIl0sWzUyLCJiSyIsImdwcF9zaWQiXSxbNTIsImJMIiwiZ3BwX3N0cmluZyJdLFs1MiwiYk0iLCJnc2FfZXhwZXJpbWVudF9pZCJdLFs1MiwiYk4iLCJndGFnX2V2ZW50X2ZlYXR1cmVfdXNhZ2UiXSxbNTIsImJPIiwiaWZyYW1lX3N0YXRlIl0sWzUyLCJiUCIsImlnbm9yZV9yZWZlcnJlciJdLFs1MiwiYlEiLCJpc19wYXNzdGhyb3VnaCJdLFs1MiwiYlIiLCJsYW5ndWFnZSJdLFs1MiwiYlMiLCJtZXJjaGFudF9mZWVkX2xhYmVsIl0sWzUyLCJiVCIsIm1lcmNoYW50X2ZlZWRfbGFuZ3VhZ2UiXSxbNTIsImJVIiwibWVyY2hhbnRfaWQiXSxbNTIsImJWIiwibmV3X2N1c3RvbWVyIl0sWzUyLCJiVyIsInBhZ2VfaG9zdG5hbWUiXSxbNTIsImJYIiwicGFnZV9wYXRoIl0sWzUyLCJiWSIsInBhZ2VfcmVmZXJyZXIiXSxbNTIsImJaIiwicGFnZV90aXRsZSJdLFs1MiwiY0EiLCJfcGxhdGludW1fcmVxdWVzdF9zdGF0dXMiXSxbNTIsImNCIiwicXVhbnRpdHkiXSxbNTIsImNDIiwicmVzdHJpY3RlZF9kYXRhX3Byb2Nlc3NpbmciXSxbNTIsImNEIiwic2NyZWVuX3Jlc29sdXRpb24iXSxbNTIsImNFIiwic2VuZF9wYWdlX3ZpZXciXSxbNTIsImNGIiwic2VydmVyX2NvbnRhaW5lcl8zcF9lbnJpY2htZW50Il0sWzUyLCJjRyIsInNlcnZlcl9jb250YWluZXJfdXJsIl0sWzUyLCJjSCIsInNlc3Npb25fZHVyYXRpb24iXSxbNTIsImNJIiwic2Vzc2lvbl9lbmdhZ2VkX3RpbWUiXSxbNTIsImNKIiwic2Vzc2lvbl9pZCJdLFs1MiwiY0siLCJfc2hhcmVkX3VzZXJfaWQiXSxbNTIsImNMIiwiZGVsaXZlcnlfcG9zdGFsX2NvZGUiXSxbNTIsImNNIiwidGVzdG9ubHkiXSxbNTIsImNOIiwidG9wbW9zdF91cmwiXSxbNTIsImNPIiwidHJhbnNhY3Rpb25faWQiXSxbNTIsImNQIiwidHJhbnNhY3Rpb25faWRfc291cmNlIl0sWzUyLCJjUSIsInRyYW5zcG9ydF91cmwiXSxbNTIsImNSIiwidXBkYXRlIl0sWzUyLCJjUyIsIl91c2VyX2FnZW50X2FyY2hpdGVjdHVyZSJdLFs1MiwiY1QiLCJfdXNlcl9hZ2VudF9iaXRuZXNzIl0sWzUyLCJjVSIsIl91c2VyX2FnZW50X2Z1bGxfdmVyc2lvbl9saXN0Il0sWzUyLCJjViIsIl91c2VyX2FnZW50X21vYmlsZSJdLFs1MiwiY1ciLCJfdXNlcl9hZ2VudF9tb2RlbCJdLFs1MiwiY1giLCJfdXNlcl9hZ2VudF9wbGF0Zm9ybSJdLFs1MiwiY1kiLCJfdXNlcl9hZ2VudF9wbGF0Zm9ybV92ZXJzaW9uIl0sWzUyLCJjWiIsIl91c2VyX2FnZW50X3dvdzY0Il0sWzUyLCJkQSIsInVzZXJfZGF0YSJdLFs1MiwiZEIiLCJ1c2VyX2RhdGFfYXV0b19sYXRlbmN5Il0sWzUyLCJkQyIsInVzZXJfZGF0YV9hdXRvX21ldGEiXSxbNTIsImREIiwidXNlcl9kYXRhX2F1dG9fbXVsdGkiXSxbNTIsImRFIiwidXNlcl9kYXRhX2F1dG9fc2VsZWN0b3JzIl0sWzUyLCJkRiIsInVzZXJfZGF0YV9hdXRvX3N0YXR1cyJdLFs1MiwiZEciLCJ1c2VyX2RhdGFfbW9kZSJdLFs1MiwiZEgiLCJ1c2VyX2lkIl0sWzUyLCJkSSIsInVzZXJfcHJvcGVydGllcyJdLFs1MiwiZEoiLCJ1c19wcml2YWN5X3N0cmluZyJdLFs1MiwiZEsiLCJ2YWx1ZSJdLFs1MiwiZEwiLCJfZnBtX3BhcmFtZXRlcnMiXSxbNTIsImRNIiwiX2hvc3RfbmFtZSJdLFs1MiwiZE4iLCJfaW5fcGFnZV9jb21tYW5kIl0sWzUyLCJkTyIsIl9tZWFzdXJlbWVudF90eXBlIl0sWzUyLCJkUCIsIm5vbl9wZXJzb25hbGl6ZWRfYWRzIl0sWzUyLCJkUSIsImNvbnZlcnNpb25fbGFiZWwiXSxbNTIsImRSIiwicGFnZV9sb2NhdGlvbiJdLFs1MiwiZFMiLCJfZXh0cmFjdGVkX2RhdGEiXSxbNTIsImRUIiwiZ2xvYmFsX2RldmVsb3Blcl9pZF9zdHJpbmciXSxbNTIsImRVIiwidGNfcHJpdmFjeV9zdHJpbmciXSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl0sIkYiLFsxNSwiZSJdLCJJIixbMTUsImYiXSwiSiIsWzE1LCJnIl0sIksiLFsxNSwiaCJdLCJMIixbMTUsImkiXSwiTSIsWzE1LCJqIl0sIk8iLFsxNSwiayJdLCJBQSIsWzE1LCJsIl0sIkFGIixbMTUsIm0iXSwiQUciLFsxNSwibiJdLCJBSCIsWzE1LCJvIl0sIkFKIixbMTUsInAiXSwiQUsiLFsxNSwicSJdLCJBTSIsWzE1LCJyIl0sIkFRIixbMTUsInMiXSwiQkMiLFsxNSwidCJdLCJCSiIsWzE1LCJ1Il0sIkJLIixbMTUsInYiXSwiQk0iLFsxNSwidyJdLCJCTiIsWzE1LCJ4Il0sIkJUIixbMTUsInkiXSwiQlgiLFsxNSwieiJdLCJCWSIsWzE1LCJhQSJdLCJCWiIsWzE1LCJhQiJdLCJDQSIsWzE1LCJhQyJdLCJDQiIsWzE1LCJhRCJdLCJDQyIsWzE1LCJhRSJdLCJDRCIsWzE1LCJhRiJdLCJDTCIsWzE1LCJhRyJdLCJDUSIsWzE1LCJhSCJdLCJDUiIsWzE1LCJhSSJdLCJLRyIsWzE1LCJkUSJdLCJDUyIsWzE1LCJhSiJdLCJDVSIsWzE1LCJhSyJdLCJDVyIsWzE1LCJhTCJdLCJDWSIsWzE1LCJhTSJdLCJEQyIsWzE1LCJhTiJdLCJERCIsWzE1LCJhTyJdLCJERSIsWzE1LCJhUCJdLCJERiIsWzE1LCJhUSJdLCJERyIsWzE1LCJhUiJdLCJESCIsWzE1LCJhUyJdLCJETiIsWzE1LCJhVCJdLCJFQSIsWzE1LCJhVSJdLCJFQyIsWzE1LCJhViJdLCJFRyIsWzE1LCJhVyJdLCJFSiIsWzE1LCJhWCJdLCJFSyIsWzE1LCJhWSJdLCJFTiIsWzE1LCJhWiJdLCJFTyIsWzE1LCJiQSJdLCJFUSIsWzE1LCJiQiJdLCJLSSIsWzE1LCJkUyJdLCJFVSIsWzE1LCJiQyJdLCJFVyIsWzE1LCJiRCJdLCJGRSIsWzE1LCJiRSJdLCJGTyIsWzE1LCJiRiJdLCJGUCIsWzE1LCJiRyJdLCJLSiIsWzE1LCJkVCJdLCJGVCIsWzE1LCJiSCJdLCJGVSIsWzE1LCJiSSJdLCJGViIsWzE1LCJiSiJdLCJGWSIsWzE1LCJiSyJdLCJGWiIsWzE1LCJiTCJdLCJHQiIsWzE1LCJiTSJdLCJHQyIsWzE1LCJiTiJdLCJHRSIsWzE1LCJiTyJdLCJHRiIsWzE1LCJiUCJdLCJHSyIsWzE1LCJiUSJdLCJHTSIsWzE1LCJiUiJdLCJHVCIsWzE1LCJiUyJdLCJHVSIsWzE1LCJiVCJdLCJHViIsWzE1LCJiVSJdLCJHWiIsWzE1LCJiViJdLCJIQyIsWzE1LCJiVyJdLCJLSCIsWzE1LCJkUiJdLCJIRCIsWzE1LCJiWCJdLCJIRSIsWzE1LCJiWSJdLCJIRiIsWzE1LCJiWiJdLCJITiIsWzE1LCJjQSJdLCJIUCIsWzE1LCJjQiJdLCJIVCIsWzE1LCJjQyJdLCJIWCIsWzE1LCJjRCJdLCJJQSIsWzE1LCJjRSJdLCJJQyIsWzE1LCJjRiJdLCJJRCIsWzE1LCJjRyJdLCJJRiIsWzE1LCJjSCJdLCJJSCIsWzE1LCJjSSJdLCJJSSIsWzE1LCJjSiJdLCJJSyIsWzE1LCJjSyJdLCJJTCIsWzE1LCJjTCJdLCJLSyIsWzE1LCJkVSJdLCJJUCIsWzE1LCJjTSJdLCJJUiIsWzE1LCJjTiJdLCJJVSIsWzE1LCJjTyJdLCJJViIsWzE1LCJjUCJdLCJJVyIsWzE1LCJjUSJdLCJJWSIsWzE1LCJjUiJdLCJKQiIsWzE1LCJjUyJdLCJKQyIsWzE1LCJjVCJdLCJKRCIsWzE1LCJjVSJdLCJKRSIsWzE1LCJjViJdLCJKRiIsWzE1LCJjVyJdLCJKRyIsWzE1LCJjWCJdLCJKSCIsWzE1LCJjWSJdLCJKSSIsWzE1LCJjWiJdLCJKSiIsWzE1LCJkQSJdLCJKSyIsWzE1LCJkQiJdLCJKTCIsWzE1LCJkQyJdLCJKTSIsWzE1LCJkRCJdLCJKTiIsWzE1LCJkRSJdLCJKTyIsWzE1LCJkRiJdLCJKUCIsWzE1LCJkRyJdLCJKUiIsWzE1LCJkSCJdLCJKUyIsWzE1LCJkSSJdLCJKVSIsWzE1LCJkSiJdLCJKViIsWzE1LCJkSyJdLCJKWCIsWzE1LCJkTCJdLCJKWSIsWzE1LCJkTSJdLCJKWiIsWzE1LCJkTiJdLCJLQyIsWzE1LCJkTyJdLCJLRCIsWzE1LCJkUCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJhYm9ydF93aXRob3V0X2ZhaWwiXSxbNTIsImMiLCJhY2NlcHRfYnlfZGVmYXVsdCJdLFs1MiwiZCIsImFsbG93X2FkX3BlcnNvbmFsaXphdGlvbiJdLFs1MiwiZSIsImNvbnNlbnRfc3RhdGUiXSxbNTIsImYiLCJjb25zZW50X3VwZGF0ZWQiXSxbNTIsImciLCJjb252ZXJzaW9uX2xpbmtlcl9lbmFibGVkIl0sWzUyLCJoIiwiY29udmVyc2lvbl9tYXJraW5nX2NhbGxlZCJdLFs1MiwiaSIsImNvb2tpZV9vcHRpb25zIl0sWzUyLCJqIiwiZGVkdXBlX2lkIl0sWzUyLCJrIiwiZW1fZXZlbnQiXSxbNTIsImwiLCJldmVudF9wcm92ZW5hbmNlIl0sWzUyLCJtIiwiZXZlbnRfc291cmNlIl0sWzUyLCJuIiwiZXZlbnRfc3RhcnRfdGltZXN0YW1wX21zIl0sWzUyLCJvIiwiZXZlbnRfdXNhZ2UiXSxbNTIsInAiLCJleHRyYV90YWdfZXhwZXJpbWVudF9pZHMiXSxbNTIsInEiLCJmb3JtX2V2ZW50X2NhbmNlbGVkIl0sWzUyLCJyIiwiZ2E0X2NvbGxlY3Rpb25fc3ViZG9tYWluIl0sWzUyLCJzIiwiZ3RtX2V4dHJhY3RlZF9kYXRhIl0sWzUyLCJ0IiwiaGFuZGxlX2ludGVybmFsbHkiXSxbNTIsInUiLCJoYXNfZ2FfY29udmVyc2lvbl9jb25zZW50cyJdLFs1MiwidiIsImhpdF90eXBlIl0sWzUyLCJ3IiwiaGl0X3R5cGVfb3ZlcnJpZGUiXSxbNTIsIngiLCJpZ25vcmVfZHVwZV9jb25maWciXSxbNTIsInkiLCJpc19jb252ZXJzaW9uIl0sWzUyLCJ6IiwiaXNfZXh0ZXJuYWxfZXZlbnQiXSxbNTIsImFBIiwiaXNfZmlyc3RfdmlzaXQiXSxbNTIsImFCIiwiaXNfZmlyc3RfdmlzaXRfY29udmVyc2lvbiJdLFs1MiwiYUMiLCJpc19mcG1fZW5jcnlwdGlvbiJdLFs1MiwiYUQiLCJpc19mcG1fc3BsaXQiXSxbNTIsImFFIiwiaXNfZ2NwX2Jyb3dzZXIiXSxbNTIsImFGIiwiaXNfZ29vZ2xlX21lYXN1cmVtZW50X2FsbG93ZWQiXSxbNTIsImFHIiwiaXNfc2VydmVyX3NpZGVfZGVzdGluYXRpb24iXSxbNTIsImFIIiwiaXNfc2Vzc2lvbl9zdGFydCJdLFs1MiwiYUkiLCJpc19zZXNzaW9uX3N0YXJ0X2NvbnZlcnNpb24iXSxbNTIsImFKIiwiaXNfc2d0bV9nYV9hZHNfY29udmVyc2lvbl9zdHVkeV9jb250cm9sX2dyb3VwIl0sWzUyLCJhSyIsImlzX3NndG1fcHJlaGl0Il0sWzUyLCJhTCIsImlzX3NwbGl0X2NvbnZlcnNpb24iXSxbNTIsImFNIiwiaXNfc3luIl0sWzUyLCJhTiIsImlzX3Rlc3RfZXZlbnQiXSxbNTIsImFPIiwicHJlaGl0X2Zvcl9yZXRyeSJdLFs1MiwiYVAiLCJyZWRhY3RfYWRzX2RhdGEiXSxbNTIsImFRIiwicmVkYWN0X2NsaWNrX2lkcyJdLFs1MiwiYVIiLCJzZW5kX2NjbV9wYXJhbGxlbF9waW5nIl0sWzUyLCJhUyIsInNlbmRfdXNlcl9kYXRhX2hpdCJdLFs1MiwiYVQiLCJzcGVjdWxhdGl2ZSJdLFs1MiwiYVUiLCJzeW5fb3JfbW9kIl0sWzUyLCJhViIsInRyYW5zaWVudF9lY3NpZCJdLFs1MiwiYVciLCJ1c2VyX2RhdGEiXSxbNTIsImFYIiwidXNlcl9kYXRhX2Zyb21fYXV0b21hdGljIl0sWzUyLCJhWSIsInVzZXJfZGF0YV9mcm9tX2F1dG9tYXRpY19nZXR0ZXIiXSxbNTIsImFaIiwidXNlcl9kYXRhX2Zyb21fY29kZSJdLFs1MiwiYkEiLCJ1c2VyX2RhdGFfZnJvbV9tYW51YWwiXSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJCIixbMTUsImMiXSwiRiIsWzE1LCJkIl0sIk0iLFsxNSwiZSJdLCJOIixbMTUsImYiXSwiTyIsWzE1LCJnIl0sIlAiLFsxNSwiaCJdLCJRIixbMTUsImkiXSwiUyIsWzE1LCJqIl0sIlQiLFsxNSwiayJdLCJaIixbMTUsImwiXSwiQUEiLFsxNSwibSJdLCJBQiIsWzE1LCJuIl0sIkFDIixbMTUsIm8iXSwiQUQiLFsxNSwicCJdLCJBSiIsWzE1LCJxIl0sIkFLIixbMTUsInIiXSwiQU4iLFsxNSwicyJdLCJBTyIsWzE1LCJ0Il0sIkFQIixbMTUsInUiXSwiQVEiLFsxNSwidiJdLCJBUiIsWzE1LCJ3Il0sIkFTIixbMTUsIngiXSwiQVYiLFsxNSwieSJdLCJBWSIsWzE1LCJ6Il0sIkFaIixbMTUsImFBIl0sIkJBIixbMTUsImFCIl0sIkJDIixbMTUsImFDIl0sIkJEIixbMTUsImFEIl0sIkJFIixbMTUsImFFIl0sIkJGIixbMTUsImFGIl0sIkJLIixbMTUsImFHIl0sIkJMIixbMTUsImFIIl0sIkJNIixbMTUsImFJIl0sIkJOIixbMTUsImFKIl0sIkJPIixbMTUsImFLIl0sIkJRIixbMTUsImFMIl0sIkJSIixbMTUsImFNIl0sIkJTIixbMTUsImFOIl0sIkJZIixbMTUsImFPIl0sIkNCIixbMTUsImFQIl0sIkNDIixbMTUsImFRIl0sIkNFIixbMTUsImFSIl0sIkNOIixbMTUsImFTIl0sIkNRIixbMTUsImFUIl0sIkNUIixbMTUsImFVIl0sIkNVIixbMTUsImFWIl0sIkNXIixbMTUsImFXIl0sIkNYIixbMTUsImFYIl0sIkNZIixbMTUsImFZIl0sIkNaIixbMTUsImFaIl0sIkRBIixbMTUsImJBIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLDQ1XSxbNTIsImMiLDQ2XSxbNTIsImQiLDQ3XSxbNTIsImUiLDE3NF0sWzUyLCJmIiwyNzZdLFszNixbOCwiRiIsWzE1LCJiIl0sIkciLFsxNSwiYyJdLCJIIixbMTUsImQiXSwiViIsWzE1LCJlIl0sIkFEIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2ZlYXR1cmVzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiw0MjVdLFs1MiwiYyIsNDM1XSxbNTIsImQiLDQ4OF0sWzUyLCJlIiw0ODldLFs1MiwiZiIsNDk4XSxbNTIsImciLDUwM10sWzUyLCJoIiw1MDRdLFs1MiwiaSIsNTA2XSxbNTIsImoiLDUyM10sWzUyLCJrIiw1MzJdLFs1MiwibCIsNTUzXSxbNTIsIm0iLDU2OF0sWzUyLCJuIiw1NzddLFs1MiwibyIsNTgxXSxbNTIsInAiLDU4M10sWzUyLCJxIiw1OTJdLFs1MiwiciIsNTk0XSxbNTIsInMiLDU5OV0sWzM2LFs4LCJBViIsWzE1LCJrIl0sIkFEIixbMTUsImQiXSwiQ0kiLFsxNSwicSJdLCJCViIsWzE1LCJuIl0sIkJPIixbMTUsIm0iXSwiQ0siLFsxNSwiciJdLCJDUCIsWzE1LCJzIl0sIkFNIixbMTUsImciXSwiQloiLFsxNSwibyJdLCJBVCIsWzE1LCJqIl0sIkFFIixbMTUsImUiXSwiQU4iLFsxNSwiaCJdLCJMIixbMTUsImMiXSwiQkMiLFsxNSwibCJdLCJBTyIsWzE1LCJpIl0sIkNCIixbMTUsInAiXSwiQUkiLFsxNSwiZiJdLCJJIixbMTUsImIiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2Nyb3NzQ29udGFpbmVyU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwiY29va2llX2RlcHJlY2F0aW9uX2xhYmVsIl0sWzUyLCJjIiwicGxkIl0sWzUyLCJkIiwic2hhcmVkX3VzZXJfaWQiXSxbNTIsImUiLCJzaGFyZWRfdXNlcl9pZF9yZXF1ZXN0ZWQiXSxbNTIsImYiLCJzaGFyZWRfdXNlcl9pZF9zb3VyY2UiXSxbMzYsWzgsIkIiLFsxNSwiYiJdLCJOIixbMTUsImMiXSwiUyIsWzE1LCJkIl0sIlQiLFsxNSwiZSJdLCJVIixbMTUsImYiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3BsYXRmb3JtU2NoZW1hIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUyLCJiIiwxXSxbNTIsImMiLDJdLFs1MiwiZCIsM10sWzUyLCJlIiw0XSxbNTIsImYiLDVdLFs1MiwiZyIsNl0sWzM2LFs4LCJBIixbMTUsImIiXSwiRiIsWzE1LCJnIl0sIkIiLFsxNSwiYyJdLCJDIixbMTUsImQiXSwiRCIsWzE1LCJlIl0sIkUiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfZ29sZEV2ZW50VXNhZ2VJZCIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsMV0sWzUyLCJjIiwyXSxbNTIsImQiLDVdLFs1MiwiZSIsNl0sWzUyLCJmIiw3XSxbNTIsImciLDhdLFs1MiwiaCIsOV0sWzUyLCJpIiwxMV0sWzUyLCJqIiwxNV0sWzUyLCJrIiwxNl0sWzUyLCJsIiwyMF0sWzUyLCJtIiwyMV0sWzUyLCJuIiwyM10sWzUyLCJvIiwyNF0sWzUyLCJwIiwyN10sWzUyLCJxIiw0MF0sWzUyLCJyIiw0MV0sWzM2LFs4LCJPIixbMTUsImoiXSwiVyIsWzE1LCJuIl0sIlAiLFsxNSwiayJdLCJYIixbMTUsIm8iXSwiSyIsWzE1LCJpIl0sIkEiLFsxNSwiYiJdLCJUIixbMTUsImwiXSwiRSIsWzE1LCJkIl0sIkYiLFsxNSwiZSJdLCJCIixbMTUsImMiXSwiSCIsWzE1LCJnIl0sIkFOIixbMTUsInEiXSwiSSIsWzE1LCJoIl0sIkciLFsxNSwiZiJdLCJVIixbMTUsIm0iXSwiQU8iLFsxNSwiciJdLCJBQSIsWzE1LCJwIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MiwiYiIsImFlX2Jsb2NrX2Rvd25sb2FkcyJdLFs1MiwiYyIsImFlX2Jsb2NrX2Zvcm0iXSxbNTIsImQiLCJhZV9ibG9ja19oaXN0b3J5Il0sWzUyLCJlIiwiYWVfYmxvY2tfb3V0Ym91bmRfY2xpY2siXSxbNTIsImYiLCJhZV9ibG9ja19zY3JvbGwiXSxbNTIsImciLCJhZV9ibG9ja192aWRlbyJdLFszNixbOCwiQSIsWzE1LCJiIl0sIkIiLFsxNSwiYyJdLCJDIixbMTUsImQiXSwiRCIsWzE1LCJlIl0sIkUiLFsxNSwiZiJdLCJGIixbMTUsImciXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NjZEVtU2l0ZVNlYXJjaEFjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJiIixbNDYsImQiLCJlIl0sWzUyLCJmIixbMixbMzAsWzE1LCJkIl0sIiJdLCJzcGxpdCIsWzcsIiwiXV1dLFs1MyxbNDEsImciXSxbMywiZyIsMF0sWzYzLFs3LCJnIl0sWzIzLFsxNSwiZyJdLFsxNyxbMTUsImYiXSwibGVuZ3RoIl1dLFszMyxbMTUsImciXSxbMywiZyIsWzAsWzE1LCJnIl0sMV1dXSxbNDYsWzUzLFs1MiwiaCIsWyJlIixbMixbMTYsWzE1LCJmIl0sWzE1LCJnIl1dLCJ0cmltIixbN11dXV0sWzIyLFsyMSxbMTUsImgiXSxbNDRdXSxbNDYsWzUzLFszNixbMTUsImgiXV1dXV1dXV1dXSxbNTAsImMiLFs0NiwiZCIsImUiLCJmIl0sWzUyLCJnIixbOCwic2VhcmNoX3Rlcm0iLFsxNSwiZCJdXV0sWzUyLCJoIixbMixbMzAsWzE1LCJlIl0sIiJdLCJzcGxpdCIsWzcsIiwiXV1dLFs1MyxbNDEsImkiXSxbMywiaSIsMF0sWzYzLFs3LCJpIl0sWzIzLFsxNSwiaSJdLFsxNyxbMTUsImgiXSwibGVuZ3RoIl1dLFszMyxbMTUsImkiXSxbMywiaSIsWzAsWzE1LCJpIl0sMV1dXSxbNDYsWzUzLFs1MiwiaiIsWzIsWzE2LFsxNSwiaCJdLFsxNSwiaSJdXSwidHJpbSIsWzddXV0sWzUyLCJrIixbImYiLFsxNSwiaiJdXV0sWzIyLFsyMSxbMTUsImsiXSxbNDRdXSxbNDYsWzUzLFs0MyxbMTUsImciXSxbMCwicV8iLFsxNSwiaiJdXSxbMTUsImsiXV1dXV1dXV1dLFszNixbMTUsImciXV1dLFszNixbOCwiQiIsWzE1LCJjIl0sIkEiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfYWR3b3Jkc09yZGVySWRTb3VyY2UiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCIxIl0sWzUyLCJjIiwiMiJdLFs1MiwiZCIsIjMiXSxbMzYsWzgsIkEiLFsxNSwiYiJdLCJCIixbMTUsImMiXSwiQyIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9mcG1QYXJhbWV0ZXIiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTIsImIiLCJjZSJdLFszNixbOCwiQiIsWzE1LCJiIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrSW5pdFNlcnZpY2VXb3JrZXIiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImMiLFs0NiwiZCJdLFsiYiIsWzE1LCJkIl1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmluaXRpYWxpemVTZXJ2aWNlV29ya2VyIl1dLFszNixbOCwiQSIsWzE1LCJjIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9hY3Rpdml0aWVzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJiIixbNDYsImMiLCJkIl0sWzM2LFszOSxbMTUsImQiXSxbImQiLFsxNSwiYyJdXSxbMTUsImMiXV1dXSxbMzYsWzgsIkEiLFsxNSwiYiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfcGxhdGZvcm1EZXRlY3Rpb24iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsIm8iLFs0Nl0sWzY4LCJ3IixbNTMsWzIyLFsxLFsyOCxbImUiLFsxNyxbMTUsImgiXSwiQUkiXV1dLFsyOCxbImUiLFsxNyxbMTUsImgiXSwiSSJdXV1dLFs0NixbNTMsWzM2LFs3XV1dXV0sWzUyLCJ3IixbImIiLFsxNyxbMTUsImciXSwiTiJdXV0sWzIyLFsibiIsWzE1LCJ3Il1dLFs0NixbNTMsWzM2LFsxNSwidyJdXV1dXSxbNTIsIngiLFs3XV0sWzIyLFsicCJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJBIl1dXV1dLFsyMixbInEiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiQiJdXV1dXSxbMjIsWyJyIl0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkYiXV1dXV0sWzIyLFsidSJdLFs0NixbMixbMTUsIngiXSwicHVzaCIsWzcsWzE3LFsxNSwiaiJdLCJEIl1dXV1dLFsyMixbInMiXSxbNDYsWzIsWzE1LCJ4Il0sInB1c2giLFs3LFsxNyxbMTUsImoiXSwiRSJdXV1dXSxbMjIsWyJ0Il0sWzQ2LFsyLFsxNSwieCJdLCJwdXNoIixbNyxbMTcsWzE1LCJqIl0sIkMiXV1dXV0sWzIyLFsibCJdLFs0NixbNTMsWyJmIixbMTcsWzE1LCJnIl0sIk4iXSxbMTUsIngiXSx0cnVlXV1dXSxbMzYsWzE1LCJ4Il1dXSxbNDZdXSxbMzYsWzddXV0sWzUwLCJwIixbNDZdLFs2OCwidyIsWzUzLFszNixbMjgsWzI4LFsiYyIsInNjcmlwdFtkYXRhLXJlcXVpcmVtb2R1bGVePVwibWFnZS9cIl0iXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJxIixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWyJtIiwiWVhOelpYUnpMbk54ZFdGeVpYTndZV05sTG1OdmJTOD0iXV0sWzIyLFsyOCxbMTUsInciXV0sWzQ2LFszNixmYWxzZV1dXSxbMzYsWzI4LFsyOCxbImMiLFswLFswLCJzY3JpcHRbc3JjXj1cIi8vIixbMTUsInciXV0sIlwiXSJdXV1dXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJyIixbNDZdLFsyMixbMjgsWyJlIixbMTcsWzE1LCJoIl0sIkkiXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNjgsInciLFs1MyxbNTIsInciLFsibSIsImMyaHZjR2xtZVM1amIyMD0iXV0sWzUyLCJ4IixbIm0iLCJjMmh2Y0dsbWVXTmtiaTVqYjIwPSJdXSxbMjIsWzMwLFsyOCxbMTUsInciXV0sWzI4LFsxNSwieCJdXV0sWzQ2LFszNixmYWxzZV1dXSxbMzYsWzI4LFsyOCxbImMiLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLFswLCJzY3JpcHRbc3JjKj1cImNkbi4iLFsxNSwidyJdXSwiXCJdLCJdLCJtZXRhW3Byb3BlcnR5PVwib2c6aW1hZ2VcIl1bY29udGVudCo9XCJjZG4uIl0sWzE1LCJ3Il1dLCJcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cImNkbi4iXSxbMTUsInciXV0sIlwiXSwiXSwibGlua1tyZWw9XCJwcmVjb25uZWN0XCJdW2hyZWYqPVwiZm9udHMuIl0sWzE1LCJ4Il1dLCJcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cIml0ZXJhYmxlLXNob3BpZnlcIl0sIl0sImxpbmtbcmVsPVwicHJlY29ubmVjdFwiXVtocmVmKj1cInYuIl0sWzE1LCJ3Il1dLCJcIl0iXV1dXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwicyIsWzQ2XSxbNjgsInciLFs1MyxbNTIsInciLFsiZCIsInByb3RvY29sIl1dLFs1MiwieCIsWyJkIiwiaG9zdCJdXSxbNTIsInkiLFszOSxbMSxbMTUsInciXSxbMTUsIngiXV0sWzAsWzAsWzAsWzAsIltzcmNePVwiIixbMTUsInciXV0sIjovLyJdLFsxNSwieCJdXSwiL3dwLWNvbnRlbnRcIl0sIl0sIiJdXSxbNTIsInoiLFsibSIsIkxuZHZjbVJ3Y21WemN5NWpiMjA9Il1dLFs1MiwiYUEiLFsibSIsIkx5OXpMbmN1YjNKbiJdXSxbMjIsWzMwLFsyOCxbMTUsInoiXV0sWzI4LFsxNSwiYUEiXV1dLFs0NixbMzYsZmFsc2VdXV0sWzM2LFszMCxbInYiLFsxNSwieCJdLFsxNSwieiJdXSxbMjgsWzI4LFsiYyIsWzAsWzAsWzAsWzAsWzE1LCJ5Il0sIm1ldGFbbmFtZT1cImdlbmVyYXRvclwiXVtjb250ZW50Xj1cIldvcmRQcmVzcyBcIl0sIl0sImxpbmtbcmVsPVwiZG5zLXByZWZldGNoXCJdW2hyZWY9XCIiXSxbMTUsImFBIl1dLCJcIl0iXV1dXV1dXSxbNDZdXSxbMzYsZmFsc2VdXSxbNTAsInQiLFs0Nl0sWzY4LCJ3IixbNTMsWzUyLCJ3IixbMjgsWzI4LFsiYyIsWzAsIltjbGFzcyo9XCJ3b29jb21tZXJjZVwiXSwiLCJtZXRhW25hbWU9XCJnZW5lcmF0b3JcIl1bY29udGVudF49XCJXb29Db21tZXJjZSBcIl0iXV1dXV0sWzIyLFsxNSwidyJdLFs0NixbNTNdXV0sWzM2LFsxNSwidyJdXV0sWzQ2XV0sWzM2LGZhbHNlXV0sWzUwLCJ1IixbNDZdLFs2OCwidyIsWzUzLFs1MiwidyIsWzI4LFsyOCxbImMiLFswLFswLCJzY3JpcHRbc3JjKj1cIndvb2NvbW1lcmNlXCJdLCIsImxpbmtbaHJlZio9XCJ3b29jb21tZXJjZVwiXSwiXSwiW2NsYXNzfD1cIndvb2NvbW1lcmNlXCJdIl1dXV1dLFsyMixbMTUsInciXSxbNDYsWzUzXV1dLFszNixbMTUsInciXV1dLFs0Nl1dLFszNixmYWxzZV1dLFs1MCwidiIsWzQ2LCJ3IiwieCJdLFszNixbMSxbMTksWzE3LFsxNSwidyJdLCJsZW5ndGgiXSxbMTcsWzE1LCJ4Il0sImxlbmd0aCJdXSxbMjAsWzIsWzE1LCJ3Il0sInN1YnN0cmluZyIsWzcsWzM3LFsxNyxbMTUsInciXSwibGVuZ3RoIl0sWzE3LFsxNSwieCJdLCJsZW5ndGgiXV0sWzE3LFsxNSwidyJdLCJsZW5ndGgiXV1dLFsxNSwieCJdXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0Rmlyc3RFbGVtZW50QnlDc3NTZWxlY3RvciJdXSxbNTIsImQiLFsicmVxdWlyZSIsImdldFVybCJdXSxbNTIsImUiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRJbkNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfY3Jvc3NDb250YWluZXJTY2hlbWEiXV0sWzUyLCJoIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX3BsYXRmb3JtU2NoZW1hIl1dLFs1MiwiayIsWyJyZXF1aXJlIiwiZ2V0VHlwZSJdXSxbNTIsImwiLFsicmVxdWlyZSIsImludGVybmFsLmlzRG9tUmVhZHkiXV0sWzUyLCJtIixbInJlcXVpcmUiLCJmcm9tQmFzZTY0Il1dLFs1MiwibiIsWzUxLCIiLFs3LCJ3Il0sWzM2LFsyMCxbImsiLFsxNSwidyJdXSwiYXJyYXkiXV1dXSxbMzYsWzgsIkEiLFsxNSwibyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1Eb3dubG9hZEFjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJoIixbNDYsImkiLCJqIl0sWyJjIixbMTUsImkiXSxbNTEsIiIsWzcsImsiXSxbMjIsWzMwLFsyMSxbMixbMTUsImsiXSwiZ2V0RXZlbnROYW1lIixbN11dLFsxNSwiZyJdXSxbMjgsWzIsWzE1LCJrIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlQiXV1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImIiLFsxNSwiaSJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwiayJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyLFsxNSwiayJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJDUSJdLGZhbHNlXV0sWzIyLFsyOCxbMTUsImoiXV0sWzQ2LFs1MyxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfaWQiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImxpbmtfdXJsIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX3RleHQiLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsImZpbGVfbmFtZSIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywiZmlsZV9leHRlbnNpb24iLFs0NF1dXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImYiLFsxNyxbMTUsImUiXSwiQSJdXSxbNTIsImciLCJmaWxlX2Rvd25sb2FkIl0sWzM2LFs4LCJBIixbMTUsImgiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2VuaGFuY2VkTWVhc3VyZW1lbnQiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImUiLFs0NiwiZyJdLFs1MiwiaCIsWyJiIl1dLFs1MiwiaSIsWzddXSxbNTMsWzQxLCJqIl0sWzMsImoiLDBdLFs2MyxbNywiaiJdLFsyMyxbMTUsImoiXSxbMTcsWzE1LCJoIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJqIl0sWzMsImoiLFswLFsxNSwiaiJdLDFdXV0sWzQ2LFs1MyxbNTIsImsiLFsxNixbMTUsImgiXSxbMTUsImoiXV1dLFsyMixbImQiLFsxNSwiZyJdLFsxNSwiayJdXSxbNDYsWzUzLFsyLFsxNSwiaSJdLCJwdXNoIixbNyxbMTUsImsiXV1dXV1dXV1dXSxbMzYsWzE1LCJpIl1dXSxbNTAsImYiLFs0NiwiZyIsImgiXSxbNTIsImkiLFszMCxbMTUsImgiXSxbOF1dXSxbNDMsWzE1LCJpIl0sWzE3LFsxNSwiYyJdLCJUIl0sdHJ1ZV0sWzQzLFsxNSwiaSJdLFsxNyxbMTUsImMiXSwiQ1EiXSx0cnVlXSxbNDMsWzE1LCJpIl0sWzE3LFsxNSwiYyJdLCJaIl0sImEiXSxbNDMsWzE1LCJnIl0sImV2ZW50TWV0YWRhdGEiLFsxNSwiaSJdXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jbGFpbURlc3RpbmF0aW9uIl1dLFszNixbOCwiQSIsWzE1LCJlIl0sIkIiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1PdXRib3VuZENsaWNrQWN0aXZpdHkiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImgiLFs0NiwiaSIsImoiXSxbImMiLFsxNSwiaSJdLFs1MSwiIixbNywiayJdLFsyMixbMzAsWzIxLFsyLFsxNSwiayJdLCJnZXRFdmVudE5hbWUiLFs3XV0sWzE1LCJnIl1dLFsyOCxbMixbMTUsImsiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiVCJdXV1dXSxbNDYsWzUzLFszNl1dXV0sWzIyLFsiYiIsWzE1LCJpIl0sWzE1LCJmIl1dLFs0NixbNTMsWzIsWzE1LCJrIl0sImFib3J0IixbN11dLFszNl1dXV0sWzIsWzE1LCJrIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIkNRIl0sZmFsc2VdXSxbMjIsWzI4LFsxNSwiaiJdXSxbNDYsWzUzLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywibGlua19pZCIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywibGlua19jbGFzc2VzIixbNDRdXV0sWzIsWzE1LCJrIl0sInNldEhpdERhdGEiLFs3LCJsaW5rX3VybCIsWzQ0XV1dLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywibGlua19kb21haW4iLFs0NF1dXSxbMixbMTUsImsiXSwic2V0SGl0RGF0YSIsWzcsIm91dGJvdW5kIixbNDRdXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJmIixbMTcsWzE1LCJlIl0sIkQiXV0sWzUyLCJnIiwiY2xpY2siXSxbMzYsWzgsIkEiLFsxNSwiaCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfY2NkRW1QYWdlVmlld0FjdGl2aXR5IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJqIixbNDYsImsiXSxbImMiLFsxNSwiayJdLFs1MSwiIixbNywibCJdLFsyMixbMzAsWzIxLFsyLFsxNSwibCJdLCJnZXRFdmVudE5hbWUiLFs3XV0sWzE1LCJpIl1dLFsyOCxbMixbMTUsImwiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiVCJdXV1dXSxbNDYsWzUzLFszNl1dXV0sWzIyLFsiYiIsWzE1LCJrIl0sWzE1LCJoIl1dLFs0NixbNTMsWzIsWzE1LCJsIl0sImFib3J0IixbN11dLFszNl1dXV0sWzIyLFsyOCxbMixbMTUsImwiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiQk8iXV1dXSxbNDYsWzUzLFsiZCIsWzE1LCJrIl0sWzE3LFsxNSwiZiJdLCJIRSJdLFsyLFsxNSwibCJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJmIl0sIkhFIl1dXV1dXV0sWzIsWzE1LCJsIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkNRIl0sZmFsc2VdXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLnJlZ2lzdGVyQ2NkQ2FsbGJhY2siXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiZiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZyIsWzE1LCJfX21vZHVsZV9hdXRvRXZlbnRCbG9ja1NjaGVtYSJdXSxbNTIsImgiLFsxNyxbMTUsImciXSwiQyJdXSxbNTIsImkiLFsxNyxbMTUsImYiXSwiQUsiXV0sWzM2LFs4LCJBIixbMTUsImoiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2NjZEVtU2Nyb2xsQWN0aXZpdHkiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImgiLFs0NiwiaSIsImoiXSxbImMiLFsxNSwiaSJdLFs1MSwiIixbNywiayJdLFsyMixbMzAsWzIxLFsyLFsxNSwiayJdLCJnZXRFdmVudE5hbWUiLFs3XV0sWzE1LCJnIl1dLFsyOCxbMixbMTUsImsiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiVCJdXV1dXSxbNDYsWzUzLFszNl1dXV0sWzIyLFsiYiIsWzE1LCJpIl0sWzE1LCJmIl1dLFs0NixbNTMsWzIsWzE1LCJrIl0sImFib3J0IixbN11dLFszNl1dXV0sWzIsWzE1LCJrIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIkNRIl0sZmFsc2VdXSxbMjIsWzI4LFsxNSwiaiJdXSxbNDYsWzUzLFsyLFsxNSwiayJdLCJzZXRIaXREYXRhIixbNywicGVyY2VudF9zY3JvbGxlZCIsWzQ0XV1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJvZHVjdFNldHRpbmdzUGFyYW1ldGVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX2F1dG9FdmVudEJsb2NrU2NoZW1hIl1dLFs1MiwiZiIsWzE3LFsxNSwiZSJdLCJFIl1dLFs1MiwiZyIsInNjcm9sbCJdLFszNixbOCwiQSIsWzE1LCJoIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RFbVZpZGVvQWN0aXZpdHkiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImoiLFs0NiwiayIsImwiXSxbImMiLFsxNSwiayJdLFs1MSwiIixbNywibSJdLFs1MiwibiIsWzIsWzE1LCJtIl0sImdldEV2ZW50TmFtZSIsWzddXV0sWzUyLCJvIixbMzAsWzMwLFsyMCxbMTUsIm4iXSxbMTUsImciXV0sWzIwLFsxNSwibiJdLFsxNSwiaCJdXV0sWzIwLFsxNSwibiJdLFsxNSwiaSJdXV1dLFsyMixbMzAsWzI4LFsxNSwibyJdXSxbMjgsWzIsWzE1LCJtIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIlQiXV1dXV0sWzQ2LFs1MyxbMzZdXV1dLFsyMixbImIiLFsxNSwiayJdLFsxNSwiZiJdXSxbNDYsWzUzLFsyLFsxNSwibSJdLCJhYm9ydCIsWzddXSxbMzZdXV1dLFsyLFsxNSwibSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZCJdLCJDUSJdLGZhbHNlXV0sWzIyLFsyOCxbMTUsImwiXV0sWzQ2LFs1MyxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsInZpZGVvX2N1cnJlbnRfdGltZSIsWzQ0XV1dLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNywidmlkZW9fZHVyYXRpb24iLFs0NF1dXSxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsInZpZGVvX3BlcmNlbnQiLFs0NF1dXSxbMixbMTUsIm0iXSwic2V0SGl0RGF0YSIsWzcsInZpZGVvX3Byb3ZpZGVyIixbNDRdXV0sWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aWRlb190aXRsZSIsWzQ0XV1dLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNywidmlkZW9fdXJsIixbNDRdXV0sWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LCJ2aXNpYmxlIixbNDRdXV1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIl1dLFs1MiwiZCIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfYXV0b0V2ZW50QmxvY2tTY2hlbWEiXV0sWzUyLCJmIixbMTcsWzE1LCJlIl0sIkYiXV0sWzUyLCJnIiwidmlkZW9fc3RhcnQiXSxbNTIsImgiLCJ2aWRlb19wcm9ncmVzcyJdLFs1MiwiaSIsInZpZGVvX2NvbXBsZXRlIl0sWzM2LFs4LCJBIixbMTUsImoiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRHcHBQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWyJiIl1dLFsyMixbMTYsWzE1LCJmIl0sWzE3LFsxNSwiYyJdLCJGWiJdXSxbNDYsWzUzLFsyLFsxNSwiZSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkZaIl0sWzE2LFsxNSwiZiJdLFsxNyxbMTUsImMiXSwiRloiXV1dXV1dXSxbMjIsWzE2LFsxNSwiZiJdLFsxNyxbMTUsImMiXSwiRlkiXV0sWzQ2LFs1MyxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYyJdLCJGWSJdLFsxNixbMTUsImYiXSxbMTcsWzE1LCJjIl0sIkZZIl1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJpdmFjeVN0cmluZ3MiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRUZXN0SGl0UGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJmIixbNDYsImciXSxbMjIsWzIsWzE1LCJnIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJlIl0sIkJTIl1dXSxbNDYsWzUzLFsyLFsxNSwiZyJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJkIl0sIklQIl0sIjEiXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV93ZWJBZHNUYXNrcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaiIsWzQ2LCJtIl0sWzUyLCJuIixbOF1dLFs0MyxbMTUsIm4iXSxbMTcsWzE1LCJkIl0sIkIiXSxbImUiLFsxNyxbMTUsImQiXSwiQiJdXV0sWzQzLFsxNSwibiJdLFsxNyxbMTUsImQiXSwiQyJdLFsiZSIsWzE3LFsxNSwiZCJdLCJDIl1dXSxbNDMsWzE1LCJuIl0sWzE3LFsxNSwiZCJdLCJBIl0sWyJjIixbMTUsIm0iXV1dLFsyLFsxNSwibSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaSJdLCJNIl0sWzE1LCJuIl1dXV0sWzUwLCJrIixbNDYsIm0iXSxbNTIsIm4iLFszMCxbMixbMTUsIm0iXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiTSJdXV0sWzhdXV0sWzIyLFsyOCxbMTYsWzE1LCJuIl0sWzE3LFsxNSwiZCJdLCJDIl1dXSxbNDYsWzUzLFszNl1dXV0sWzIyLFsiaCJdLFs0NixbNTMsWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImQiXSwiQ1UiXSwiMiJdXV1dXV0sWzUwLCJsIixbNDYsIm0iXSxbMjIsWyJnIl0sWzQ2LFs1MyxbMixbMTUsIm0iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiQkUiXSx0cnVlXV0sWzIsWzE1LCJtIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImQiXSwiSlkiXSwid3d3Lmdvb2dsZS5jb20iXV1dXSxbNDYsWzUzLFsyLFsxNSwibSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJkIl0sIkpZIl0sInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSJdXV1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmdldEFsbG93QWRQZXJzb25hbGl6YXRpb24iXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpc0NvbnNlbnRHcmFudGVkIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImciLFsicmVxdWlyZSIsImludGVybmFsLmlzR2NwQnJvd3NlciJdXSxbNTIsImgiLFsicmVxdWlyZSIsImludGVybmFsLmlzU2FmYXJpUGNtRWxpZ2libGVCcm93c2VyIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbMzYsWzgsIkIiLFsxNSwiayJdLCJBIixbMTUsImoiXSwiQyIsWzE1LCJsIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jb21tb25BZHNUYXNrcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiaiIsWzQ2LCJ0Il0sWzUyLCJ1IixbImQiXV0sWzIyLFsyMCxbMTUsInUiXSwiVVMtQ08iXSxbNDYsWzUzLFsyLFsxNSwidCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkZVIl0sMV1dXV1dXSxbNTAsImsiLFs0NiwidCJdLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIklVIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJKViJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiREYiXV1dLFsyMixbImYiLFsxNyxbMTUsImIiXSwiQU4iXV0sWzQ2LFs1MyxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJFSyJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiRVUiXV1dXV1dXSxbNTAsImwiLFs0NiwidCJdLFsyMixbMjEsWzIsWzE1LCJ0Il0sImdldEV2ZW50TmFtZSIsWzddXSxbMTcsWzE1LCJoIl0sIkFBIl1dLFs0NixbNTMsWzM2XV1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJDQiJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiQ0MiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkJaIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJDQSJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiQlkiXV1dLFsyLFsxNSwidCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkNEIl0sWzE3LFsxNSwiaCJdLCJBQSJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiR1YiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkdUIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJHVSJdXV1dLFs1MCwibSIsWzQ2LCJ0Il0sWzIyLFsyLFsxNSwidCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaSJdLCJOIl1dXSxbNDYsWzUzLFsyLFsxNSwidCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkYiXSx0cnVlXV1dXV1dLFs1MCwibiIsWzQ2LCJ0Il0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiR1oiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkRHIl1dXSxbMixbMTUsInQiXSwiY29weVRvSGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJFRyJdXV0sWzIsWzE1LCJ0Il0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiREUiXV1dLFsyLFsxNSwidCJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkVBIl1dXV0sWzUwLCJvIixbNDYsInQiXSxbNTIsInUiLFsyLFsxNSwidCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaSJdLCJNIl1dXV0sWzIyLFsxNSwidSJdLFs0NixbNTMsWzUyLCJ2IixbMSxbMTYsWzE1LCJ1Il0sWzE3LFsxNSwiaCJdLCJDIl1dLFsxNixbMTUsInUiXSxbMTcsWzE1LCJoIl0sIkIiXV1dXSxbMixbMTUsInQiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiQ0MiXSxbMSxbMjgsWzI4LFsyLFsxNSwidCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaSJdLCJDQiJdXV1dXSxbMjgsWzE1LCJ2Il1dXV1dXV1dXSxbNTAsInAiLFs0NiwidCJdLFs1MiwidSIsWzIsWzE1LCJ0Il0sImdldEZyb21FdmVudENvbnRleHQiLFs3LFsxNyxbMTUsImgiXSwiSFQiXV1dXSxbMjIsWzMwLFsyMCxbMTUsInUiXSx0cnVlXSxbMjAsWzE1LCJ1Il0sZmFsc2VdXSxbNDYsWzUzLFsyLFsxNSwidCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkhUIl0sWzE1LCJ1Il1dXV1dXSxbMjIsWzIwLFsyLFsxNSwidCJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaSJdLCJGIl1dXSxmYWxzZV0sWzQ2LFs1MyxbMixbMTUsInQiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJLRCJdLHRydWVdXV1dLFs0NixbNTMsWzUyLCJ2IixbMixbMTUsInQiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiTSJdXV1dLFsyMixbMTUsInYiXSxbNDYsWzUzLFsyLFsxNSwidCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIktEIl0sWzI4LFsxNixbMTUsInYiXSxbMTcsWzE1LCJoIl0sIkEiXV1dXV1dXV1dXV1dLFs1MCwicSIsWzQ2LCJ0Il0sWzIyLFsiYyIsWzIsWzE1LCJ0Il0sImdldERlc3RpbmF0aW9uSWQiLFs3XV0sImdvb2dsZV9uZyJdLFs0NixbNTMsWzIsWzE1LCJ0Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiRlUiXSx0cnVlXV1dXV0sWzIyLFsiYyIsWzIsWzE1LCJ0Il0sImdldERlc3RpbmF0aW9uSWQiLFs3XV0sImdvb2dsZV9vbm8iXSxbNDYsWzUzLFsyLFsxNSwidCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkZWIl0sdHJ1ZV1dXV1dXSxbNTAsInIiLFs0NiwidCJdLFsyMixbMixbMTUsInQiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiQVkiXV1dLFs0NixbNTMsWzIsWzE1LCJ0Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiSloiXSx0cnVlXV1dXV1dLFs1MCwicyIsWzQ2LCJ0Il0sWzIyLFsiZSIsWzE1LCJ0Il1dLFs0NixbNTMsWzIsWzE1LCJ0Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiRE4iXSx0cnVlXV1dXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmdldFJlZ2lvbkNvZGUiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0RlYnVnTW9kZSJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zY3J1YlVybFBhcmFtcyJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzM2LFs4LCJCIixbMTUsImsiXSwiQyIsWzE1LCJsIl0sIkkiLFsxNSwiciJdLCJBIixbMTUsImoiXSwiRSIsWzE1LCJuIl0sIkQiLFsxNSwibSJdLCJKIixbMTUsInMiXSwiSCIsWzE1LCJxIl0sIkciLFsxNSwicCJdLCJGIixbMTUsIm8iXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tBZGRDb29raWVEZXByZWNhdGlvbkxhYmVsIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJmIixbNDYsImciXSxbNDEsImgiXSxbMywiaCIsWzQ0XV0sWzUyLCJpIixbMixbMTUsImciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiTSJdXV1dLFsyMixbMSxbMTUsImkiXSxbMTYsWzE1LCJpIl0sWzE3LFsxNSwiZCJdLCJCIl1dXSxbNDYsWzUzLFszLCJoIixbImIiLFsxNyxbMTUsImMiXSwiQiJdXV1dXSxbNDYsWzUzLFszLCJoIiwiZGVuaWVkIl1dXV0sWzIyLFsyOSxbMTUsImgiXSxbNDVdXSxbNDYsWzUzLFsyLFsxNSwiZyJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJkIl0sIkNXIl0sWzE1LCJoIl1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5RnJvbUNyb3NzQ29udGFpbmVyRGF0YSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfY3Jvc3NDb250YWluZXJTY2hlbWEiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJmIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrQWRkRGV2ZWxvcGVySWQiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWyJiIixbMTUsImUiXV1dLFs2NSwiZyIsWzcsWzE3LFsxNSwiYyJdLCJLSiJdLFsxNyxbMTUsImMiXSwiRUoiXV0sWzQ2LFs1MyxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE1LCJnIl0sWzE2LFsxNSwiZiJdLFsxNSwiZyJdXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldERldmVsb3BlcklkcyJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza0FkZEV2ZW50UHJvdmVuYW5jZSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZiIsWzQ2LCJnIl0sWzIyLFsyOCxbMixbMTUsImciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiWiJdXV1dLFs0NixbNTMsWzM2XV1dXSxbMixbMTUsImciXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJFTyJdLFsyLFsxNSwiZyJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiZSJdLCJaIl1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVzIl1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbMzYsWzgsIkEiLFsxNSwiZiJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza0FkZFVhY2hQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImUiLFs0NiwiZiJdLFsyMixbMjgsWyJkIiwiZ2V0X3VzZXJfYWdlbnQiXV0sWzQ2LFszNl1dXSxbNTIsImciLFsiYiJdXSxbMjIsWzI4LFsxNSwiZyJdXSxbNDYsWzM2XV1dLFs1MiwiaCIsWzcsWzE3LFsxNSwiYyJdLCJKQiJdLFsxNyxbMTUsImMiXSwiSkMiXSxbMTcsWzE1LCJjIl0sIkpEIl0sWzE3LFsxNSwiYyJdLCJKRSJdLFsxNyxbMTUsImMiXSwiSkYiXSxbMTcsWzE1LCJjIl0sIkpHIl0sWzE3LFsxNSwiYyJdLCJKSCJdLFsxNyxbMTUsImMiXSwiSkkiXV1dLFs2NSwiaSIsWzE1LCJoIl0sWzQ2LFs1MyxbMixbMTUsImYiXSwic2V0SGl0RGF0YSIsWzcsWzE1LCJpIl0sWzE2LFsxNSwiZyJdLFsxNSwiaSJdXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldFVzZXJBZ2VudENsaWVudEhpbnRzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwicXVlcnlQZXJtaXNzaW9uIl1dLFszNixbOCwiQSIsWzE1LCJlIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2VuZEFkc0hpdHMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImUiLFs0NiwiZiJdLFsiYiIsWzE1LCJmIl1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLnRhc2tTZW5kQWRzSGl0cyJdXSxbNTIsImMiLFsicmVxdWlyZSIsImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2ZlYXR1cmVGbGFncyJdXSxbMzYsWzgsIkEiLFsxNSwiZSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldEFkc1BhZ2VQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsIm8iLFs0NiwicSJdLFsyMixbMixbMTUsInEiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiTiJdXV0sWzQ2LFs1MyxbMzZdXV1dLFs1MiwiciIsWyJsIiwiZ2V0X3VybCJdXSxbNTIsInMiLFsyLFsxNSwicSJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkdFIl1dXV0sWzIsWzE1LCJxIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiR0UiXSxbMTUsInMiXV1dLFs1MiwidCIsWzIsWzE1LCJxIl0sImdldEZyb21FdmVudENvbnRleHQiLFs3LFsxNyxbMTUsImgiXSwiS0giXV1dXSxbNDEsInUiXSxbMywidSIsWzE1LCJ0Il1dLFsyMixbMSxbMjgsWzE1LCJ1Il1dLFsxNSwiciJdXSxbNDYsWzUzLFsyMixbMjAsWzE1LCJzIl0sWzE3LFsxNSwiYiJdLCJTQU1FX0RPTUFJTl9JRlJBTUlORyJdXSxbNDYsWzUzLFszLCJ1IixbImYiXV1dXSxbNDYsWzUzLFszLCJ1IixbImciXV1dXV1dXV0sWzIsWzE1LCJxIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiS0giXSxbInAiLFsxNSwidSJdXV1dLFsyMixbImwiLCJnZXRfcmVmZXJyZXIiXSxbNDYsWzUzLFsyLFsxNSwicSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkhFIl0sWyJjIl1dXV1dXSxbMjIsWyJsIiwicmVhZF90aXRsZSJdLFs0NixbNTMsWzIsWzE1LCJxIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImgiXSwiSEYiXSxbImsiXV1dXV1dLFsyLFsxNSwicSJdLCJjb3B5VG9IaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIkdNIl1dXSxbNTIsInYiLFsiZCJdXSxbMixbMTUsInEiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaCJdLCJIWCJdLFswLFswLFsiaSIsWzE3LFsxNSwidiJdLCJ3aWR0aCJdXSwieCJdLFsiaSIsWzE3LFsxNSwidiJdLCJoZWlnaHQiXV1dXV0sWzUyLCJ3IixbMSxbIm0iLFsxNyxbMTUsIm4iXSwiQ0IiXV0sWzI4LFsyOCxbMTUsInQiXV1dXV0sWzIyLFsxNSwiciJdLFs0NixbNTMsWzUyLCJ4IixbImUiXV0sWzIyLFsxLFsxNSwieCJdLFsyMSxbMTUsIngiXSxbMTUsInUiXV1dLFs0NixbNTMsWzQxLCJ5Il0sWzMsInkiLFsicCIsWzE1LCJ4Il1dXSxbMjIsWzE1LCJ3Il0sWzQ2LFs1MyxbMywieSIsWzE2LFsyLFsxNSwieSJdLCJzcGxpdCIsWzcsIj8iXV0sMF1dXV1dLFsyLFsxNSwicSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJoIl0sIklSIl0sWzE1LCJ5Il1dXV1dXV1dXV0sWzUwLCJwIixbNDYsInEiXSxbMjIsWzI4LFsxNSwicSJdXSxbNDYsWzM2LCIiXV1dLFs1MiwiciIsWyJpIixbMTUsInEiXV1dLFs1MiwicyIsWzIsWzE1LCJyIl0sInN1YnN0cmluZyIsWzcsMCw1MTJdXV0sWzUyLCJ0IixbMixbMTUsInMiXSwiaW5kZXhPZiIsWzcsIiMiXV1dLFsyMixbMjAsWzE1LCJ0Il0sWzI3LDFdXSxbNDYsWzUzLFszNixbMTUsInMiXV1dXSxbNDYsWzUzLFszNixbMixbMTUsInMiXSwic3Vic3RyaW5nIixbNywwLFsxNSwidCJdXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLklmcmFtaW5nU3RhdGVTY2hlbWEiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJnZXRSZWZlcnJlclVybCJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmdldFNjcmVlbkRpbWVuc2lvbnMiXV0sWzUyLCJlIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRUb3BTYW1lRG9tYWluVXJsIl1dLFs1MiwiZiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0VG9wV2luZG93VXJsIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiZ2V0VXJsIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiaSIsWyJyZXF1aXJlIiwibWFrZVN0cmluZyJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJrIixbInJlcXVpcmUiLCJyZWFkVGl0bGUiXV0sWzUyLCJsIixbInJlcXVpcmUiLCJxdWVyeVBlcm1pc3Npb24iXV0sWzUyLCJtIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwibiIsWzE1LCJfX21vZHVsZV9mZWF0dXJlcyJdXSxbMzYsWzgsIkEiLFsxNSwibyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldEF1aWRQYXJhbSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZSIsWzQ2LCJmIl0sWzUyLCJnIixbMzAsWzIsWzE1LCJmIl0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJkIl0sIk0iXV1dLFs4XV1dLFsyMixbMzAsWzMwLFsyOCxbMixbMTUsImYiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImQiXSwiTyJdXV1dLFsyOCxbMTYsWzE1LCJnIl0sWzE3LFsxNSwiYyJdLCJCIl1dXV0sWzI4LFsxNixbMTUsImciXSxbMTcsWzE1LCJjIl0sIkMiXV1dXSxbNDYsWzUzLFszNl1dXV0sWzUyLCJoIixbImIiLFsxNSwiZiJdXV0sWzIyLFsxNSwiaCJdLFs0NixbNTMsWzIsWzE1LCJmIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImMiXSwiQlQiXSxbMTUsImgiXV1dXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldEF1aWQiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJlIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0Q29uZmlnUGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJlIixbNDYsImYiXSxbMixbMTUsImYiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiTyJdLFsyMSxbMixbMTUsImYiXSwiZ2V0RnJvbUV2ZW50Q29udGV4dCIsWzcsWzE3LFsxNSwiZCJdLCJDUyJdXV0sZmFsc2VdXV0sWzIsWzE1LCJmIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJiIl0sIlEiXSxbImMiLFsxNSwiZiJdXV1dLFs1MiwiZyIsWzIsWzE1LCJmIl0sImdldEZyb21FdmVudENvbnRleHQiLFs3LFsxNyxbMTUsImQiXSwiQkMiXV1dXSxbMixbMTUsImYiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImIiXSwiQ0IiXSxbMSxbMjksWzE1LCJnIl0sWzQ1XV0sWzIxLFsxNSwiZyJdLGZhbHNlXV1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0QWRzQ29va2llV3JpdGluZ09wdGlvbnMiXV0sWzUyLCJkIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImUiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRGZWF0dXJlVXNhZ2VQYXJhbXMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWyJiIl1dLFsyMixbMTUsImYiXSxbNDYsWzUzLFsyLFsxNSwiZSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkdDIl0sWzE1LCJmIl1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRBbmRSZXNldEV2ZW50VXNhZ2UiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRHb29nbGVBbmFseXNpc1BhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiYyIsWzQ2LCJkIl0sWzIsWzE1LCJkIl0sIm1lcmdlSGl0RGF0YUZvcktleSIsWzcsWzE3LFsxNSwiYiJdLCJGVCJdLFsyLFsxNSwiZCJdLCJnZXRNZXJnZWRWYWx1ZXMiLFs3LFsxNyxbMTUsImIiXSwiRlQiXV1dXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJjIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0SWZyYW1lU3RhdGVQYXJhbSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZCIsWzQ2LCJlIl0sWzIsWzE1LCJlIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImMiXSwiR0UiXSxbImIiXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmdldElmcmFtaW5nU3RhdGUiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRQcml2YWN5UGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJkIixbNDYsImUiXSxbNTIsImYiLFsiYiJdXSxbNjUsImciLFs3LFsxNyxbMTUsImMiXSwiSlUiXSxbMTcsWzE1LCJjIl0sIkZPIl0sWzE3LFsxNSwiYyJdLCJLSyJdXSxbNDYsWzUzLFsyLFsxNSwiZSJdLCJzZXRIaXREYXRhIixbNyxbMTUsImciXSxbMTYsWzE1LCJmIl0sWzE1LCJnIl1dXV1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UHJpdmFjeVN0cmluZ3MiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTZXRVcmxQYXNzdGhyb3VnaFBhcmFtcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZCIsWzQ2LCJlIl0sWzUyLCJmIixbMTYsWyJjIixmYWxzZV0sIl91cCJdXSxbMjIsWzIwLFsxNSwiZiJdLCIxIl0sWzQ2LFs1MyxbMixbMTUsImUiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiYiJdLCJHSyJdLHRydWVdXV1dXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRMaW5rZXJWYWx1ZUZyb21Mb2NhdGlvbiJdXSxbMzYsWzgsIkEiLFsxNSwiZCJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldENvb2tpZUV4cGlyYXRpb25QYXJhbSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZCIsWzQ2LCJmIl0sWyJlIixbMTUsImYiXSxbMTcsWzE1LCJiIl0sIkIiXSxbMixbMTUsImYiXSwiZ2V0RnJvbUV2ZW50Q29udGV4dCIsWzcsWzE3LFsxNSwiYyJdLCJDWSJdXV1dXSxbNTAsImUiLFs0NiwiZiIsImciLCJoIl0sWzUyLCJpIixbMzAsWzIsWzE1LCJmIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImMiXSwiSlgiXV1dLFs4XV1dLFs0MyxbMTUsImkiXSxbMTUsImciXSxbMTUsImgiXV0sWzIsWzE1LCJmIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImMiXSwiSlgiXSxbMTUsImkiXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZnBtUGFyYW1ldGVyIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFszNixbOCwiQSIsWzE1LCJkIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrU2V0VXNlcklkUGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJnIixbNDYsImgiXSxbNTIsImkiLFszMCxbMixbMTUsImgiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImUiXSwiTSJdXV0sWzhdXV0sWzIyLFsyOCxbMTYsWzE1LCJpIl0sWzE3LFsxNSwiZCJdLCJDIl1dXSxbNDYsWzUzLFszNl1dXV0sWzIsWzE1LCJoIl0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImQiXSwiSlIiXV1dLFs1MiwiaiIsWyJiIixbMTcsWzE1LCJjIl0sIlMiXV1dLFsyMixbMjAsWzE1LCJqIl0sWzQ0XV0sWzQ2LFs1MyxbImYiLFsxNyxbMTUsImMiXSwiVCJdLHRydWVdLFszNl1dXV0sWzUyLCJrIixbImIiLFsxNyxbMTUsImMiXSwiVSJdXV0sWzIsWzE1LCJoIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImQiXSwiSUsiXSxbMCxbMCxbMTUsImsiXSwiLiJdLFsxNSwiaiJdXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9jcm9zc0NvbnRhaW5lclNjaGVtYSJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5zZXRJbkNyb3NzQ29udGFpbmVyRGF0YSJdXSxbMzYsWzgsIkEiLFsxNSwiZyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldEN1c3RvbWVyTGlmZWN5Y2xlUGFyYW1zIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJlIixbNDYsImYiXSxbMjIsWzI4LFsiZCIsWzE3LFsxNSwiYyJdLCJIIl1dXSxbNDYsWzUzLFszNl1dXV0sWzIsWzE1LCJmIl0sImNvcHlUb0hpdERhdGEiLFs3LFsxNyxbMTUsImIiXSwiREgiXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbMzYsWzgsIkEiLFsxNSwiZSJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfdGFza1NldEdzYUV4cGVyaW1lbnRJZCIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiZCIsWzQ2LCJlIl0sWzUyLCJmIixbImIiXV0sWzIyLFsyMSxbMTUsImYiXSxbNDRdXSxbNDYsWzUzLFsyLFsxNSwiZSJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJjIl0sIkdCIl0sWzE1LCJmIl1dXV1dXV0sWzUyLCJiIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRHc2FFeHBlcmltZW50SWQiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX3Rhc2tTdG9yZUJyYWlkTGFiZWxzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJlIixbNDYsImYiXSxbNTIsImciLFszMCxbMixbMTUsImYiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImMiXSwiTSJdXV0sWzhdXV0sWzIyLFsyOCxbMTYsWzE1LCJnIl0sWzE3LFsxNSwiYiJdLCJCIl1dXSxbNDYsWzUzLFszNl1dXV0sWyJkIixbMTUsImYiXV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLnN0b3JlQWRzQnJhaWRMYWJlbHMiXV0sWzM2LFs4LCJBIixbMTUsImUiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2V2ZW50RWRpdGluZ0FuZFN5bnRoZXNpcyIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiYUEiLFs0NiwiYU4iLCJhTyJdLFs1MiwiYVAiLFszMCxbMTYsWzE1LCJhTyJdLFsxNSwibSJdXSxbN11dXSxbNjYsImFRIixbMTUsImFQIl0sWzQ2LFs1MyxbMjIsWzE2LFsxNSwiYVEiXSxbMTUsIm4iXV0sWzQ2LFs1MyxbNTIsImFSIixbMTYsWzE2LFsxNSwiYVEiXSxbMTUsIm4iXV0sWzE1LCJwIl1dXSxbNTIsImFTIixbImFGIixbMTUsImFOIl0sWzE2LFsxNixbMTUsImFRIl0sWzE1LCJuIl1dLFsxNSwicSJdXV1dLFsyLFsxNSwiYU4iXSwic2V0SGl0RGF0YSIsWzcsWzE1LCJhUiJdLFsiYUIiLFsxNSwiYVMiXV1dXV1dLFs0NixbMjIsWzE2LFsxNSwiYVEiXSxbMTUsIm8iXV0sWzQ2LFs1MyxbNTIsImFSIixbMTYsWzE2LFsxNSwiYVEiXSxbMTUsIm8iXV0sWzE1LCJwIl1dXSxbMixbMTUsImFOIl0sInNldEhpdERhdGEiLFs3LFsxNSwiYVIiXSxbNDRdXV1dXV1dXV1dXV0sWzUwLCJhQiIsWzQ2LCJhTiJdLFsyMixbMjgsWzE1LCJhTiJdXSxbNDYsWzM2LFsxNSwiYU4iXV1dXSxbNTIsImFPIixbImIiLFsxNSwiYU4iXV1dLFs1MiwiYVAiLFsyMSxbMTUsImFPIl0sWzE1LCJhTyJdXV0sWzIyLFsxNSwiYVAiXSxbNDYsWzM2LFsxNSwiYU4iXV1dXSxbMzYsWzE1LCJhTyJdXV0sWzUwLCJhQyIsWzQ2LCJhTiIsImFPIiwiYVAiXSxbNDEsImFRIl0sWzMsImFRIixbMzAsWzE1LCJhTyJdLFs3XV1dLFszLCJhUSIsWzM5LFsibCIsWzE1LCJhUSJdXSxbMTUsImFRIl0sWzcsWzE1LCJhUSJdXV1dLFsyMixbMjgsWyJhRCIsWzE1LCJhTiJdLFsxNSwiYVEiXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbMjIsWzMwLFsyOCxbMTUsImFQIl1dLFsyMCxbMTcsWzE1LCJhUCJdLCJsZW5ndGgiXSwwXV0sWzQ2LFszNix0cnVlXV1dLFs1MyxbNDEsImFSIl0sWzMsImFSIiwwXSxbNjMsWzcsImFSIl0sWzIzLFsxNSwiYVIiXSxbMTcsWzE1LCJhUCJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiYVIiXSxbMywiYVIiLFswLFsxNSwiYVIiXSwxXV1dLFs0NixbNTMsWzUyLCJhUyIsWzMwLFsxNixbMTYsWzE1LCJhUCJdLFsxNSwiYVIiXV0sWzE1LCJ1Il1dLFs3XV1dLFsyMixbImFEIixbMTUsImFOIl0sWzE1LCJhUyJdLHRydWVdLFs0NixbNTMsWzM2LHRydWVdXV1dXV1dXSxbMzYsZmFsc2VdXSxbNTAsImFEIixbNDYsImFOIiwiYU8iLCJhUCJdLFs1MyxbNDEsImFRIl0sWzMsImFRIiwwXSxbNjMsWzcsImFRIl0sWzIzLFsxNSwiYVEiXSxbMTcsWzE1LCJhTyJdLCJsZW5ndGgiXV0sWzMzLFsxNSwiYVEiXSxbMywiYVEiLFswLFsxNSwiYVEiXSwxXV1dLFs0NixbNTMsWzUyLCJhUiIsWzE2LFsxNSwiYU8iXSxbMTUsImFRIl1dXSxbNTIsImFTIixbImFFIixbMTUsImFOIl0sWzE1LCJhUiJdLGZhbHNlXV0sWzIyLFsxNSwiYVAiXSxbNDYsWzUzLFs1MiwiYVQiLFsxNixbMzAsWzE2LFsxNSwiYVIiXSxbMTUsIngiXV0sWzddXSwwXV0sWzIyLFsxLFsxLFsxNSwiYVQiXSxbMjAsWzE2LFsxNSwiYVQiXSxbMTUsInkiXV0sWzE1LCJ0Il1dXSxbMjEsWzIsWzE1LCJ6Il0sImluZGV4T2YiLFs3LFsxNixbMTYsWzE1LCJhVCJdLFsxNSwidCJdXSxbMTUsInMiXV1dXSxbMjcsMV1dXSxbNDYsWzUzLFs1MiwiYVUiLFsiYUUiLFsxNSwiYU4iXSxbMTUsImFSIl0sdHJ1ZV1dLFsyMixbMjEsWzE1LCJhUyJdLFsxNSwiYVUiXV0sWzQ2LFs1MyxbNTIsImFWIixbMzAsWzIsWzE1LCJhTiJdLCJnZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaSJdLCJBQyJdXV0sWzddXV0sWzIsWzE1LCJhViJdLCJwdXNoIixbNyxbMzksWzE1LCJhUyJdLFsxNyxbMTUsImsiXSwiVSJdLFsxNyxbMTUsImsiXSwiVCJdXV1dLFsyLFsxNSwiYU4iXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImkiXSwiQUMiXSxbMTUsImFWIl1dXV1dXV1dXV1dXSxbMjIsWzI4LFsxNSwiYVMiXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dXV1dXSxbMzYsdHJ1ZV1dLFs1MCwiYUUiLFs0NiwiYU4iLCJhTyIsImFQIl0sWzUyLCJhUSIsWzMwLFsxNixbMTUsImFPIl0sWzE1LCJ4Il1dLFs3XV1dLFs0MSwiYVIiXSxbMywiYVIiLFsiYUYiLFsxNSwiYU4iXSxbMTYsWzE1LCJhUSJdLDBdXV0sWzQxLCJhUyJdLFszLCJhUyIsWyJhRiIsWzE1LCJhTiJdLFsxNixbMTUsImFRIl0sMV1dXSxbMjIsWzEsWzE1LCJhUCJdLFsxNSwiYVIiXV0sWzQ2LFs1MyxbMywiYVIiLFszMCxbImciLFsxNSwiYVIiXV0sWzE1LCJhUiJdXV1dXV0sWzIyLFsxNSwiYVMiXSxbNDYsWzUzLFs1MiwiYVkiLFsxNixbMzAsWzE2LFsxNSwiYU8iXSxbMTUsIngiXV0sWzddXSwwXV0sWzIyLFsxLFsxLFsxNSwiYVkiXSxbMjAsWzE2LFsxNSwiYVkiXSxbMTUsInkiXV0sWzE1LCJ0Il1dXSxbMjEsWzIsWzE1LCJ6Il0sImluZGV4T2YiLFs3LFsxNixbMTYsWzE1LCJhWSJdLFsxNSwidCJdXSxbMTUsInMiXV1dXSxbMjcsMV1dXSxbNDYsWzUzLFs1MiwiYVoiLFsyLFsxNSwiYVMiXSwiaW5kZXhPZiIsWzcsIj8iXV1dLFsyMixbMjAsWzE1LCJhWiJdLFsyNywxXV0sWzQ2LFs1MyxbMywiYVMiLFszMCxbImciLFsxNSwiYVMiXV0sWzE1LCJhUyJdXV1dXSxbNDYsWzUzLFs1MiwiYkEiLFsyLFsxNSwiYVMiXSwic3Vic3RyaW5nIixbNywwLFsxNSwiYVoiXV1dXSxbMywiYVMiLFswLFszMCxbImciLFsxNSwiYkEiXV0sWzE1LCJiQSJdXSxbMixbMTUsImFTIl0sInN1YnN0cmluZyIsWzcsWzE1LCJhWiJdXV1dXV1dXV1dXV1dXSxbNTIsImFUIixbMTYsWzE1LCJhTyJdLFsxNSwidyJdXV0sWzIyLFszMCxbMzAsWzMwLFsyMCxbMTUsImFUIl0sImVxaSJdLFsyMCxbMTUsImFUIl0sInN3aSJdXSxbMjAsWzE1LCJhVCJdLCJld2kiXV0sWzIwLFsxNSwiYVQiXSwiY25pIl1dLFs0NixbNTMsWzIyLFsxNSwiYVIiXSxbNDYsWzMsImFSIixbMixbImQiLFsxNSwiYVIiXV0sInRvTG93ZXJDYXNlIixbN11dXV1dLFsyMixbMTUsImFTIl0sWzQ2LFszLCJhUyIsWzIsWyJkIixbMTUsImFTIl1dLCJ0b0xvd2VyQ2FzZSIsWzddXV1dXV1dXSxbNDEsImFVIl0sWzMsImFVIixmYWxzZV0sWzM4LFsxNSwiYVQiXSxbNDYsImVxIiwiZXFpIiwic3ciLCJzd2kiLCJldyIsImV3aSIsImNuIiwiY25pIiwibHQiLCJsZSIsImd0IiwiZ2UiLCJyZSIsInJlaSJdLFs0NixbNSxbNDZdXSxbNSxbNDYsWzMsImFVIixbMjAsWyJkIixbMTUsImFSIl1dLFsiZCIsWzE1LCJhUyJdXV1dLFs0XV1dLFs1LFs0Nl1dLFs1LFs0NixbMywiYVUiLFsyMCxbMixbImQiLFsxNSwiYVIiXV0sImluZGV4T2YiLFs3LFsiZCIsWzE1LCJhUyJdXV1dLDBdXSxbNF1dXSxbNSxbNDZdXSxbNSxbNDYsWzQxLCJhViJdLFszLCJhViIsWyJkIixbMTUsImFSIl1dXSxbNDEsImFXIl0sWzMsImFXIixbImQiLFsxNSwiYVMiXV1dLFs1MiwiYVgiLFszNyxbMTcsWzE1LCJhViJdLCJsZW5ndGgiXSxbMTcsWzE1LCJhVyJdLCJsZW5ndGgiXV1dLFszLCJhVSIsWzEsWzE5LFsxNSwiYVgiXSwwXSxbMjAsWzIsWzE1LCJhViJdLCJpbmRleE9mIixbNyxbMTUsImFXIl0sWzE1LCJhWCJdXV0sWzE1LCJhWCJdXV1dLFs0XV1dLFs1LFs0Nl1dLFs1LFs0NixbMywiYVUiLFsxOSxbMixbImQiLFsxNSwiYVIiXV0sImluZGV4T2YiLFs3LFsiZCIsWzE1LCJhUyJdXV1dLDBdXSxbNF1dXSxbNSxbNDYsWzMsImFVIixbMjMsWyJiIixbMTUsImFSIl1dLFsiYiIsWzE1LCJhUyJdXV1dLFs0XV1dLFs1LFs0NixbMywiYVUiLFsyNCxbImIiLFsxNSwiYVIiXV0sWyJiIixbMTUsImFTIl1dXV0sWzRdXV0sWzUsWzQ2LFszLCJhVSIsWzE4LFsiYiIsWzE1LCJhUiJdXSxbImIiLFsxNSwiYVMiXV1dXSxbNF1dXSxbNSxbNDYsWzMsImFVIixbMTksWyJiIixbMTUsImFSIl1dLFsiYiIsWzE1LCJhUyJdXV1dLFs0XV1dLFs1LFs0NixbMjIsWzIxLFsxNSwiYVIiXSxbNDRdXSxbNDYsWzUzLFs1MiwiYVkiLFsiZSIsWzE1LCJhUyJdXV0sWzIyLFsxNSwiYVkiXSxbNDYsWzMsImFVIixbImYiLFsxNSwiYVkiXSxbMTUsImFSIl1dXV1dXV1dLFs0XV1dLFs1LFs0NixbMjIsWzIxLFsxNSwiYVIiXSxbNDRdXSxbNDYsWzUzLFs1MiwiYVkiLFsiZSIsWzE1LCJhUyJdLCJpIl1dLFsyMixbMTUsImFZIl0sWzQ2LFszLCJhVSIsWyJmIixbMTUsImFZIl0sWzE1LCJhUiJdXV1dXV1dXSxbNF1dXSxbOSxbNDZdXV1dLFsyMixbMjgsWzI4LFsxNixbMTUsImFPIl0sWzE1LCJ2Il1dXV0sWzQ2LFszNixbMjgsWzE1LCJhVSJdXV1dXSxbMzYsWzE1LCJhVSJdXV0sWzUwLCJhRiIsWzQ2LCJhTiIsImFPIl0sWzIyLFsyOCxbMTUsImFPIl1dLFs0NixbMzYsWzQ0XV1dXSxbMzgsWzE2LFsxNSwiYU8iXSxbMTUsInkiXV0sWzQ2LCJldmVudF9uYW1lIiwiY29uc3QiLCJldmVudF9wYXJhbSJdLFs0NixbNSxbNDYsWzM2LFsyLFsxNSwiYU4iXSwiZ2V0RXZlbnROYW1lIixbN11dXV1dLFs1LFs0NixbMzYsWzE2LFsxNSwiYU8iXSxbMTUsInIiXV1dXV0sWzUsWzQ2LFs1MiwiYVAiLFsxNixbMTYsWzE1LCJhTyJdLFsxNSwidCJdXSxbMTUsInMiXV1dLFsyMixbMjAsWzE1LCJhUCJdLFsxNyxbMTUsImoiXSwiSEQiXV0sWzQ2LFs1MyxbMzYsWyJhSSIsWzE1LCJhTiJdXV1dXV0sWzIyLFsyMCxbMTUsImFQIl0sWzE3LFsxNSwiaiJdLCJIQyJdXSxbNDYsWzUzLFszNixbImFKIixbMTUsImFOIl1dXV1dXSxbMzYsWzIsWzE1LCJhTiJdLCJnZXRIaXREYXRhIixbNyxbMTUsImFQIl1dXV1dXSxbOSxbNDYsWzM2LFs0NF1dXV1dXV0sWzUwLCJhSCIsWzQ2LCJhTiJdLFsyMixbMjgsWzE1LCJhTiJdXSxbNDYsWzUzLFszNixbMTUsImFOIl1dXV1dLFs1MiwiYU8iLFsyLFsxNSwiYU4iXSwic3BsaXQiLFs3LCImIl1dXSxbNTIsImFQIixbN11dLFs0MyxbMTUsImFPIl0sMCxbMixbMTYsWzE1LCJhTyJdLDBdLCJzdWJzdHJpbmciLFs3LDFdXV0sWzUzLFs0MSwiYVEiXSxbMywiYVEiLDBdLFs2MyxbNywiYVEiXSxbMjMsWzE1LCJhUSJdLFsxNyxbMTUsImFPIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJhUSJdLFszLCJhUSIsWzAsWzE1LCJhUSJdLDFdXV0sWzQ2LFs1MyxbNTIsImFSIixbMTYsWzE1LCJhTyJdLFsxNSwiYVEiXV1dLFs1MiwiYVMiLFsyLFsxNSwiYVIiXSwiaW5kZXhPZiIsWzcsIj0iXV1dLFs1MiwiYVQiLFszOSxbMTksWzE1LCJhUyJdLDBdLFsyLFsxNSwiYVIiXSwic3Vic3RyaW5nIixbNywwLFsxNSwiYVMiXV1dLFsxNSwiYVIiXV1dLFsyMixbMjgsWzE2LFsxNSwiYUciXSxbMTUsImFUIl1dXSxbNDYsWzUzLFsyLFsxNSwiYVAiXSwicHVzaCIsWzcsWzE2LFsxNSwiYU8iXSxbMTUsImFRIl1dXV1dXV1dXV1dLFsyMixbMTcsWzE1LCJhUCJdLCJsZW5ndGgiXSxbNDYsWzUzLFszNixbMCwiPyIsWzIsWzE1LCJhUCJdLCJqb2luIixbNywiJiJdXV1dXV1dLFszNiwiIl1dLFs1MCwiYUkiLFs0NiwiYU4iXSxbNTIsImFPIixbMixbMTUsImFOIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiSEQiXV1dXSxbMjIsWzE1LCJhTyJdLFs0NixbMzYsWzE1LCJhTyJdXV1dLFs1MiwiYVAiLFsyLFsxNSwiYU4iXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJLSCJdXV1dLFsyMixbMjEsWzQwLFsxNSwiYVAiXV0sInN0cmluZyJdLFs0NixbMzYsWzQ0XV1dXSxbNTIsImFRIixbImMiLFsxNSwiYVAiXV1dLFsyMixbMjgsWzE1LCJhUSJdXSxbNDYsWzM2LFs0NF1dXV0sWzQxLCJhUiJdLFszLCJhUiIsWzE3LFsxNSwiYVEiXSwicGF0aG5hbWUiXV0sWzMsImFSIixbMzAsWyJnIixbMTUsImFSIl1dLFsxNSwiYVIiXV1dLFszNixbMCxbMTUsImFSIl0sWyJhSCIsWzE3LFsxNSwiYVEiXSwic2VhcmNoIl1dXV1dLFs1MCwiYUoiLFs0NiwiYU4iXSxbNTIsImFPIixbMixbMTUsImFOIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiSEMiXV1dXSxbMjIsWzE1LCJhTyJdLFs0NixbMzYsWzE1LCJhTyJdXV1dLFs1MiwiYVAiLFsyLFsxNSwiYU4iXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJLSCJdXV1dLFsyMixbMjEsWzQwLFsxNSwiYVAiXV0sInN0cmluZyJdLFs0NixbMzYsWzQ0XV1dXSxbNTIsImFRIixbImMiLFsxNSwiYVAiXV1dLFsyMixbMjgsWzE1LCJhUSJdXSxbNDYsWzM2LFs0NF1dXV0sWzM2LFsxNyxbMTUsImFRIl0sImhvc3RuYW1lIl1dXSxbNTAsImFNIixbNDYsImFOIl0sWzIyLFsyOCxbMTUsImFOIl1dLFs0NixbMzYsdHJ1ZV1dXSxbMywiYU4iLFsiZCIsWzE1LCJhTiJdXV0sWzY2LCJhTyIsWzE1LCJhTCJdLFs0NixbNTMsWzIyLFsyMCxbMixbMTUsImFOIl0sImluZGV4T2YiLFs3LFsxNSwiYU8iXV1dLDBdLFs0NixbMzYsdHJ1ZV1dXV1dXSxbMjIsWzE4LFsyLFsxNSwiYUsiXSwiaW5kZXhPZiIsWzcsWzE1LCJhTiJdXV0sWzI3LDFdXSxbNDYsWzM2LHRydWVdXV0sWzM2LGZhbHNlXV0sWzUyLCJiIixbInJlcXVpcmUiLCJtYWtlTnVtYmVyIl1dLFs1MiwiYyIsWyJyZXF1aXJlIiwicGFyc2VVcmwiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJtYWtlU3RyaW5nIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuY3JlYXRlUmVnZXgiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC50ZXN0UmVnZXgiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJkZWNvZGVVcmlDb21wb25lbnQiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJnZXRUeXBlIl1dLFs1MiwiaSIsWzE1LCJfX21vZHVsZV9tZXRhZGF0YVNjaGVtYSJdXSxbNTIsImoiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImsiLFsxNSwiX19tb2R1bGVfZ29sZEV2ZW50VXNhZ2VJZCJdXSxbNTIsImwiLFs1MSwiIixbNywiYU4iXSxbMzYsWzIwLFsiaCIsWzE1LCJhTiJdXSwiYXJyYXkiXV1dXSxbNTIsIm0iLCJldmVudF9wYXJhbV9vcHMiXSxbNTIsIm4iLCJlZGl0X3BhcmFtIl0sWzUyLCJvIiwiZGVsZXRlX3BhcmFtIl0sWzUyLCJwIiwicGFyYW1fbmFtZSJdLFs1MiwicSIsInBhcmFtX3ZhbHVlIl0sWzUyLCJyIiwiY29uc3RfdmFsdWUiXSxbNTIsInMiLCJwYXJhbV9uYW1lIl0sWzUyLCJ0IiwiZXZlbnRfcGFyYW0iXSxbNTIsInUiLCJwcmVkaWNhdGVzIl0sWzUyLCJ2IiwibmVnYXRlIl0sWzUyLCJ3IiwidHlwZSJdLFs1MiwieCIsInZhbHVlcyJdLFs1MiwieSIsInR5cGUiXSxbNTIsInoiLFs3LFsxNyxbMTUsImoiXSwiSEQiXSxbMTcsWzE1LCJqIl0sIktIIl0sWzE3LFsxNSwiaiJdLCJIRSJdXV0sWzUyLCJhRyIsWzgsIl9fZ2EiLDEsIl9fdXRtYSIsMSwiX191dG1iIiwxLCJfX3V0bWMiLDEsIl9fdXRtayIsMSwiX191dG12IiwxLCJfX3V0bXgiLDEsIl9fdXRteiIsMSwiX2dhYyIsMSwiX2dsIiwxLCJkY2xpZCIsMSwiZ2FkX2NhbXBhaWduaWQiLDEsImdhZF9zb3VyY2UiLDEsImdicmFpZCIsMSwiZ2NsaWQiLDEsImdjbHNyYyIsMSwidXRtX2NhbXBhaWduIiwxLCJ1dG1fY29udGVudCIsMSwidXRtX2V4cGlkIiwxLCJ1dG1faWQiLDEsInV0bV9tZWRpdW0iLDEsInV0bV9ub292ZXJyaWRlIiwxLCJ1dG1fcmVmZXJyZXIiLDEsInV0bV9zb3VyY2UiLDEsInV0bV90ZXJtIiwxLCJ3YnJhaWQiLDFdXSxbNTIsImFLIixbNyxbMTcsWzE1LCJqIl0sIkkiXSxbMTcsWzE1LCJqIl0sIkoiXSxbMTcsWzE1LCJqIl0sIksiXSxbMTcsWzE1LCJqIl0sIkwiXSxbMTcsWzE1LCJqIl0sIk0iXSxbMTcsWzE1LCJqIl0sIkFGIl0sWzE3LFsxNSwiaiJdLCJBRyJdLFsxNyxbMTUsImoiXSwiQUoiXSxbMTcsWzE1LCJqIl0sIkFNIl0sWzE3LFsxNSwiaiJdLCJBUSJdXV0sWzUyLCJhTCIsWzcsIl8iLCJnYV8iLCJnb29nbGVfIiwiZ3RhZy4iLCJmaXJlYmFzZV8iXV0sWzM2LFs4LCJBIixbMTUsImFBIl0sIkQiLFsxNSwiYU0iXSwiQiIsWzE1LCJhQyJdLCJDIixbMTUsImFGIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9nYUFkc0xpbmtBY3Rpdml0eSIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwicCIsWzQ2LCJ3IiwieCIsInkiLCJ6Il0sWyJmIixbMTUsInciXSwiZ2E0X2Fkc19saW5rZWQiLHRydWVdLFsiZSIsWzE1LCJ3Il0sWzUxLCIiLFs3LCJhQSIsImFCIl0sWyJ4IixbMTUsImFBIl1dLFsyLFsxNSwiYUEiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQVAiXSxbMjgsWzI4LFsieiIsWzE1LCJhQSJdXV1dXV0sWyJxIixbMTUsInkiXSxbMTUsImFBIl0sWzE1LCJhQiJdXV1dXSxbNTAsInEiLFs0NiwidyIsIngiLCJ5Il0sWzIyLFsyOCxbInMiLFsxNSwieCJdXV0sWzQ2LFszNl1dXSxbMjIsWyJ0IixbMTUsIngiXSxbMTUsInkiXV0sWzQ2LFszNl1dXSxbMjIsWzIsWzE1LCJ4Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFWIl1dXSxbNDYsWzUzLFsiciIsWzE1LCJ3Il0sWzE1LCJ4Il1dXV1dLFsyMixbMixbMTUsIngiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQkEiXV1dLFs0NixbNTMsWyJyIixbMTUsInciXSxbMTUsIngiXSwiZmlyc3RfdmlzaXQiXV1dXSxbMjIsWzIsWzE1LCJ4Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkJNIl1dXSxbNDYsWzUzLFsiciIsWzE1LCJ3Il0sWzE1LCJ4Il0sInNlc3Npb25fc3RhcnQiXV1dXV0sWzUwLCJyIixbNDYsInciLCJ4IiwieSJdLFs1MCwiYUEiLFs0NiwiYUIiXSxbNTIsImFDIixbMixbMTUsIngiXSwiZ2V0SGl0RGF0YSIsWzcsWzE1LCJhQiJdXV1dLFsyMixbMjEsWzE1LCJhQyJdLFs0NF1dLFs0NixbNTMsWzIsWzE1LCJ6Il0sInNldEhpdERhdGEiLFs3LFsxNSwiYUIiXSxbMTUsImFDIl1dXV1dXV0sWzUyLCJ6IixbImIiLFsxNSwieCJdLFs4LCJvbWl0SGl0RGF0YSIsdHJ1ZSwidXNlSGl0RGF0YSIsdHJ1ZV1dXSxbMjIsWzE1LCJ5Il0sWzQ2LFs1MyxbMixbMTUsInoiXSwic2V0RXZlbnROYW1lIixbNyxbMTUsInkiXV1dXV1dLFsyLFsxNSwieiJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJBUSJdLCJnYV9jb252ZXJzaW9uIl1dLFsiYUEiLFsxNyxbMTUsImsiXSwiQ0wiXV0sWyJhQSIsWzE3LFsxNSwiayJdLCJKUiJdXSxbImFBIiwiXyZpYnQiXSxbInciLCJnYV9jb252ZXJzaW9uIixbMTUsInoiXV1dLFs1MCwicyIsWzQ2LCJ3Il0sWzUyLCJ4IixbMjgsWyJkIixbMTcsWzE1LCJpIl0sIkwiXV1dXSxbMjIsWzE1LCJ4Il0sWzQ2LFs1MyxbMjIsWyJkIixbMTcsWzE1LCJpIl0sIkJDIl1dLFs0NixbNTMsWzUyLCJ6IixbMzAsWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFEIl1dXSxbN11dXSxbMixbMTUsInoiXSwicHVzaCIsWzcsWzE1LCJvIl1dXSxbMixbMTUsInciXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQUQiXSxbMTUsInoiXV1dXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dXV1dLFsyMixbMixbMTUsInciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQk4iXV1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbMjIsWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkJLIl1dXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzUyLCJ5IixbMzAsWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFDIl1dXSxbN11dXSxbMjIsWzIwLFsyLFsxNSwieSJdLCJpbmRleE9mIixbNyxbMTcsWzE1LCJsIl0sIkFPIl1dXSxbMjcsMV1dLFs0NixbNTMsWzIsWzE1LCJ5Il0sInB1c2giLFs3LFsxNyxbMTUsImwiXSwiQU8iXV1dXV1dLFsyMixbMjgsWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIlAiXV1dXSxbNDYsWzUzLFsyMixbMjAsWzIsWzE1LCJ5Il0sImluZGV4T2YiLFs3LFsxNyxbMTUsImwiXSwiQU4iXV1dLFsyNywxXV0sWzQ2LFs1MyxbMixbMTUsInkiXSwicHVzaCIsWzcsWzE3LFsxNSwibCJdLCJBTiJdXV1dXV1dXV0sWzIsWzE1LCJ3Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFDIl0sWzE1LCJ5Il1dXSxbMjIsWzI4LFszMCxbMzAsWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkFWIl1dXSxbMixbMTUsInciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQkEiXV1dXSxbMixbMTUsInciXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImoiXSwiQk0iXV1dXV0sWzQ2LFs1MyxbMzYsZmFsc2VdXV1dLFszNix0cnVlXV0sWzUwLCJ0IixbNDYsInciLCJ4Il0sWzQxLCJ5Il0sWzMsInkiLGZhbHNlXSxbNTIsInoiLFs3XV0sWzUyLCJhQSIsWyJuIixbMTUsImMiXSxbMTUsIngiXV1dLFs1MiwiYUIiLFs1MSwiIixbNywiYUMiLCJhRCJdLFsyMixbImFDIixbMTUsInciXSxbMTUsImFBIl1dLFs0NixbNTMsWzMsInkiLHRydWVdLFsyLFsxNSwieiJdLCJwdXNoIixbNyxbMTUsImFEIl1dXV1dXV1dLFsiYUIiLFsxNSwidSJdLFsxNyxbMTUsIm0iXSwiR09PR0xFX1NJR05BTF9ESVNBQkxFRCJdXSxbImFCIixbMTUsInYiXSxbMTcsWzE1LCJtIl0sIkRFVklDRV9EQVRBX1JFREFDVElPTl9FTkFCTEVEIl1dLFsyMixbMjgsWzE1LCJ5Il1dLFs0NixbMixbMTUsInoiXSwicHVzaCIsWzcsWzE3LFsxNSwibSJdLCJCRUFDT05fU0VOVCJdXV1dXSxbMixbMTUsInciXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiayJdLCJITiJdLFsyLFsxNSwieiJdLCJqb2luIixbNywiLiJdXV1dLFszNixbMTUsInkiXV1dLFs1MCwidSIsWzQ2LCJ3IiwieCJdLFsyMixbMjgsWzIsWzE1LCJ3Il0sImdldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJqIl0sIkJGIl1dXV0sWzQ2LFs1MyxbMzYsdHJ1ZV1dXV0sWzIyLFsiZCIsWzE3LFsxNSwiaSJdLCJBTyJdXSxbNDYsWzUzLFszNixmYWxzZV1dXV0sWzIyLFsyMCxbIngiLFsyLFsxNSwidyJdLCJnZXREZXN0aW5hdGlvbklkIixbN11dLFsxNyxbMTUsImsiXSwiQk4iXV0sZmFsc2VdLFs0NixbNTMsWzM2LHRydWVdXV1dLFszNixmYWxzZV1dLFs1MCwidiIsWzQ2LCJ3IiwieCJdLFszNixbMzAsWzIwLFsieCIsWzIsWzE1LCJ3Il0sImdldERlc3RpbmF0aW9uSWQiLFs3XV0sInJlZGFjdF9kZXZpY2VfaW5mbyJdLHRydWVdLFsyMCxbIngiLFsyLFsxNSwidyJdLCJnZXREZXN0aW5hdGlvbklkIixbN11dLCJnZW9fZ3JhbnVsYXJpdHkiXSx0cnVlXV1dXSxbNTIsImIiLFsicmVxdWlyZSIsImludGVybmFsLmNvcHlQcmVIaXQiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRSZW1vdGVDb25maWdQYXJhbWV0ZXIiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZlYXR1cmVFbmFibGVkIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwucmVnaXN0ZXJDY2RDYWxsYmFjayJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLnNldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciJdXSxbNTIsImciLFsicmVxdWlyZSIsIk9iamVjdCJdXSxbNTIsImgiLFsxNSwiX19tb2R1bGVfYWN0aXZpdGllcyJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfZmVhdHVyZXMiXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwiayIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwibCIsWzE1LCJfX21vZHVsZV9nb2xkRXZlbnRVc2FnZUlkIl1dLFs1MiwibSIsWzIsWzE1LCJnIl0sImZyZWV6ZSIsWzcsWzgsIkJFQUNPTl9TRU5UIiwib2siLCJHT09HTEVfU0lHTkFMX0RJU0FCTEVEIiwiZ3MiLCJHQTRfU1VCRE9NQUlOX0VOQUJMRUQiLCJ3ZyIsIkRFVklDRV9EQVRBX1JFREFDVElPTl9FTkFCTEVEIiwicmQiLCJHQTRfU1VCRE9NQUlOX0VOQUJMRURfV0lUSE9VVF9DT05TRU5UIiwid2djIl1dXV0sWzUyLCJuIixbMTcsWzE1LCJoIl0sIkEiXV0sWzUyLCJvIiwxLjE4ODY5MTg4RThdLFszNixbOCwiQSIsWzE1LCJwIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9jY2RHYVJlZ2lvblNjb3BlZFNldHRpbmdzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJqIixbNDYsIm0iLCJuIiwibyJdLFs1MCwidCIsWzQ2LCJ2Il0sWzUyLCJ3IixbMTYsWzE1LCJpIl0sWzE1LCJ2Il1dXSxbMjIsWzI4LFsxNSwidyJdXSxbNDYsWzM2XV1dLFs1MyxbNDEsIngiXSxbMywieCIsMF0sWzYzLFs3LCJ4Il0sWzIzLFsxNSwieCJdLFsxNyxbMTUsInciXSwibGVuZ3RoIl1dLFszMyxbMTUsIngiXSxbMywieCIsWzAsWzE1LCJ4Il0sMV1dXSxbNDYsWzUzLFs1MiwieSIsWzE2LFsxNSwidyJdLFsxNSwieCJdXV0sWyJxIixbMTUsInAiXSxbMTcsWzE1LCJ5Il0sIm5hbWUiXSxbMTcsWzE1LCJ5Il0sInZhbHVlIl1dXV1dXV0sWzUwLCJ1IixbNDYsInYiXSxbMjIsWzMwLFsyOCxbMTUsInIiXV0sWzIxLFsxNyxbMTUsInIiXSwibGVuZ3RoIl0sMl1dLFs0NixbNTMsWzM2LGZhbHNlXV1dXSxbNDEsInciXSxbMywidyIsWzE2LFsxNSwidiJdLFsxNSwicyJdXV0sWzIyLFsyMCxbMTUsInciXSxbNDRdXSxbNDYsWzUzLFszLCJ3IixbMTYsWzE1LCJ2Il0sWzE1LCJyIl1dXV1dXSxbMzYsWzI4LFsyOCxbMTUsInciXV1dXV0sWzIyLFsyOCxbMTUsIm4iXV0sWzQ2LFszNl1dXSxbNTIsInAiLFszMCxbMTcsWzE1LCJtIl0sImluc3RhbmNlRGVzdGluYXRpb25JZCJdLFsxNyxbImMiXSwiY29udGFpbmVySWQiXV1dLFs1MiwicSIsWyJoIixbMTUsImYiXSxbMTUsIm8iXV1dLFs1MiwiciIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFsiaCIsWzE1LCJkIl0sWzE1LCJvIl1dXSxbIiQwIl1dXSxbNTIsInMiLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbImgiLFsxNSwiZSJdLFsxNSwibyJdXV0sWyIkMCJdXV0sWzUzLFs0MSwidiJdLFszLCJ2IiwwXSxbNjMsWzcsInYiXSxbMjMsWzE1LCJ2Il0sWzE3LFsxNSwibiJdLCJsZW5ndGgiXV0sWzMzLFsxNSwidiJdLFszLCJ2IixbMCxbMTUsInYiXSwxXV1dLFs0NixbNTMsWzUyLCJ3IixbMTYsWzE1LCJuIl0sWzE1LCJ2Il1dXSxbMjIsWzMwLFsxNyxbMTUsInciXSwiZGlzYWxsb3dBbGxSZWdpb25zIl0sWyJ1IixbMTcsWzE1LCJ3Il0sImRpc2FsbG93ZWRSZWdpb25zIl1dXSxbNDYsWzUzLFsidCIsWzE3LFsxNSwidyJdLCJyZWRhY3RGaWVsZEdyb3VwIl1dXV1dXV1dXV0sWzUwLCJrIixbNDYsIm0iXSxbNTIsIm4iLFs4XV0sWzIyLFsyOCxbMTUsIm0iXV0sWzQ2LFszNixbMTUsIm4iXV1dXSxbNTIsIm8iLFsyLFsxNSwibSJdLCJzcGxpdCIsWzcsIiwiXV1dLFs1MyxbNDEsInAiXSxbMywicCIsMF0sWzYzLFs3LCJwIl0sWzIzLFsxNSwicCJdLFsxNyxbMTUsIm8iXSwibGVuZ3RoIl1dLFszMyxbMTUsInAiXSxbMywicCIsWzAsWzE1LCJwIl0sMV1dXSxbNDYsWzUzLFs1MiwicSIsWzIsWzE2LFsxNSwibyJdLFsxNSwicCJdXSwidHJpbSIsWzddXV0sWzIyLFsyOCxbMTUsInEiXV0sWzQ2LFs2XV1dLFs1MiwiciIsWzIsWzE1LCJxIl0sInNwbGl0IixbNywiLSJdXV0sWzUyLCJzIixbMTYsWzE1LCJyIl0sMF1dLFs1MiwidCIsWzM5LFsyMCxbMTcsWzE1LCJyIl0sImxlbmd0aCJdLDJdLFsxNSwicSJdLFs0NF1dXSxbMjIsWzMwLFsyOCxbMTUsInMiXV0sWzIxLFsxNyxbMTUsInMiXSwibGVuZ3RoIl0sMl1dLFs0NixbNTMsWzZdXV1dLFsyMixbMSxbMjEsWzE1LCJ0Il0sWzQ0XV0sWzMwLFsyMyxbMTcsWzE1LCJ0Il0sImxlbmd0aCJdLDRdLFsxOCxbMTcsWzE1LCJ0Il0sImxlbmd0aCJdLDZdXV0sWzQ2LFs1MyxbNl1dXV0sWzQzLFsxNSwibiJdLFsxNSwicSJdLHRydWVdXV1dXSxbMzYsWzE1LCJuIl1dXSxbNTAsImwiLFs0NiwibSJdLFsyMixbMjgsWzE3LFsxNSwibSJdLCJzZXR0aW5nc1RhYmxlIl1dLFs0NixbMzYsWzddXV1dLFs1MiwibiIsWzhdXSxbNTMsWzQxLCJvIl0sWzMsIm8iLDBdLFs2MyxbNywibyJdLFsyMyxbMTUsIm8iXSxbMTcsWzE3LFsxNSwibSJdLCJzZXR0aW5nc1RhYmxlIl0sImxlbmd0aCJdXSxbMzMsWzE1LCJvIl0sWzMsIm8iLFswLFsxNSwibyJdLDFdXV0sWzQ2LFs1MyxbNTIsInAiLFsxNixbMTcsWzE1LCJtIl0sInNldHRpbmdzVGFibGUiXSxbMTUsIm8iXV1dLFs1MiwicSIsWzE3LFsxNSwicCJdLCJyZWRhY3RGaWVsZEdyb3VwIl1dLFsyMixbMjgsWzE2LFsxNSwiaSJdLFsxNSwicSJdXV0sWzQ2LFs2XV1dLFs0MyxbMTUsIm4iXSxbMTUsInEiXSxbOCwicmVkYWN0RmllbGRHcm91cCIsWzE1LCJxIl0sImRpc2FsbG93QWxsUmVnaW9ucyIsZmFsc2UsImRpc2FsbG93ZWRSZWdpb25zIixbOF1dXSxbNTIsInIiLFsxNixbMTUsIm4iXSxbMTUsInEiXV1dLFsyMixbMTcsWzE1LCJwIl0sImRpc2FsbG93QWxsUmVnaW9ucyJdLFs0NixbNTMsWzQzLFsxNSwiciJdLCJkaXNhbGxvd0FsbFJlZ2lvbnMiLHRydWVdLFs2XV1dXSxbNDMsWzE1LCJyIl0sImRpc2FsbG93ZWRSZWdpb25zIixbImsiLFsxNyxbMTUsInAiXSwiZGlzYWxsb3dlZFJlZ2lvbnMiXV1dXV1dXSxbMzYsWzIsWzE1LCJiIl0sInZhbHVlcyIsWzcsWzE1LCJuIl1dXV1dLFs1MiwiYiIsWyJyZXF1aXJlIiwiT2JqZWN0Il1dLFs1MiwiYyIsWyJyZXF1aXJlIiwiZ2V0Q29udGFpbmVyVmVyc2lvbiJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmdldENvdW50cnlDb2RlIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2V0UmVnaW9uQ29kZSJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLnNldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciJdXSxbNTIsImciLFsxNSwiX19tb2R1bGVfYWN0aXZpdGllcyJdXSxbNTIsImgiLFsxNyxbMTUsImciXSwiQSJdXSxbNTIsImkiLFs4LCJHT09HTEVfU0lHTkFMUyIsWzcsWzgsIm5hbWUiLCJhbGxvd19nb29nbGVfc2lnbmFscyIsInZhbHVlIixmYWxzZV1dLCJERVZJQ0VfQU5EX0dFTyIsWzcsWzgsIm5hbWUiLCJnZW9fZ3JhbnVsYXJpdHkiLCJ2YWx1ZSIsdHJ1ZV0sWzgsIm5hbWUiLCJyZWRhY3RfZGV2aWNlX2luZm8iLCJ2YWx1ZSIsdHJ1ZV1dXV0sWzM2LFs4LCJBIixbMTUsImoiXSwiQiIsWzE1LCJsIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV90YXNrUGxhdGZvcm1EZXRlY3Rpb24iLFsxMyxbNDEsIiQwIl0sWzMsIiQwIixbNTEsIiIsWzddLFs1MCwiYSIsWzQ2XSxbNTAsImQiLFs0NiwiZSJdLFs1MiwiZiIsWzIsWzE1LCJjIl0sIkEiLFs3XV1dLFsyMixbMSxbMTUsImYiXSxbMTgsWzE3LFsxNSwiZiJdLCJsZW5ndGgiXSwwXV0sWzQ2LFs1MyxbMixbMTUsImUiXSwibWVyZ2VIaXREYXRhRm9yS2V5IixbNyxbMTcsWzE1LCJiIl0sIkZUIl0sWzgsInBsZiIsWzIsWzE1LCJmIl0sImpvaW4iLFs3LCIuIl1dXV1dXV1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfZ3RhZ1NjaGVtYSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfcGxhdGZvcm1EZXRlY3Rpb24iXV0sWzM2LFs4LCJBIixbMTUsImQiXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KICxbNTIsIl9fbW9kdWxlX2dhQ29udmVyc2lvblByb2Nlc3NvciIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiYUMiLFs0NiwiYUQiXSxbNTIsImFFIixbNyxbMTcsWzE1LCJmIl0sIkIiXSxbMTcsWzE1LCJmIl0sIkMiXV1dLFs1MiwiYUYiLFs1MSwiIixbN10sWyJyIixbMTUsImFEIl1dLFsyLFsxNSwiYUIiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJ3Il0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwidCJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsImIiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJiIl0sIkoiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwibiJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsIngiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJxIl0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwiYiJdLCJCIixbNyxbMTUsImFEIl1dXSxbMixbMTUsIm0iXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJiIl0sIkMiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwiYiJdLCJFIixbNyxbMTUsImFEIl1dXSxbMixbMTUsImIiXSwiSSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJiIl0sIkciLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwiYiJdLCJIIixbNyxbMTUsImFEIl1dXSxbMixbMTUsInkiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJhQSJdLCJBIixbNyxbMTUsImFEIl1dXSxbImsiLFsxNSwiYUQiXV0sWzIsWzE1LCJsIl0sIkEiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwicyJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsImIiXSwiRiIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJiIl0sIkQiLFs3LFsxNSwiYUQiXV1dLFsyLFsxNSwibyJdLCJBIixbNyxbMTUsImFEIl1dXSxbMixbMTUsInYiXSwiQSIsWzcsWzE1LCJhRCJdXV0sWzIsWzE1LCJ1Il0sIkEiLFs3LFsxNSwiYUQiXV1dLFsieiIsWzE1LCJhRCJdXSxbMixbMTUsInAiXSwiQSIsWzcsWzE1LCJhRCJdXV1dXSxbNTIsImFHIixbNTEsIiIsWzddLFsiYyIsWzUxLCIiLFs3XSxbImFGIl0sWzIyLFsyOCxbImciLFsxNSwiYUUiXV1dLFs0NixbNTMsWyJkIixbNTEsIiIsWzddLFsyMixbImciLFsxNSwiYUUiXV0sWzQ2LFs1MyxbMixbMTUsImFEIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJpIl0sIk4iXSx0cnVlXV0sWyJhRiJdXV1dXSxbMTUsImFFIl1dXV1dXSxbMTUsImFFIl1dXV0sWyJqIixbMTUsImFHIl1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfY29tbW9uQWRzVGFza3MiXV0sWzUyLCJjIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb25zZW50U2NoZWR1bGVGaXJzdFRyeSJdXSxbNTIsImQiLFsicmVxdWlyZSIsImludGVybmFsLmNvbnNlbnRTY2hlZHVsZVJldHJ5Il1dLFs1MiwiZSIsWzE1LCJfX21vZHVsZV9mZWF0dXJlRmxhZ3MiXV0sWzUyLCJmIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJnIixbInJlcXVpcmUiLCJpc0NvbnNlbnRHcmFudGVkIl1dLFs1MiwiaCIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJqIixbInJlcXVpcmUiLCJpbnRlcm5hbC5xdWV1ZUFkc1RyYW5zbWlzc2lvbiJdXSxbNTIsImsiLFsicmVxdWlyZSIsImludGVybmFsLnRhc2tBZGRBZHNDbGlja0lkcyJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfdGFza0FkZENvb2tpZURlcHJlY2F0aW9uTGFiZWwiXV0sWzUyLCJtIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGREZXZlbG9wZXJJZCJdXSxbNTIsIm4iLFsxNSwiX19tb2R1bGVfdGFza0FkZEV2ZW50UHJvdmVuYW5jZSJdXSxbNTIsIm8iLFsxNSwiX19tb2R1bGVfdGFza0FkZFVhY2hQYXJhbXMiXV0sWzUyLCJwIixbMTUsIl9fbW9kdWxlX3Rhc2tTZW5kQWRzSGl0cyJdXSxbNTIsInEiLFsxNSwiX19tb2R1bGVfdGFza1NldEFkc1BhZ2VQYXJhbXMiXV0sWzUyLCJyIixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrU2V0QWRzVHJhbnNtaXNzaW9uVHlwZSJdXSxbNTIsInMiLFsxNSwiX19tb2R1bGVfdGFza1NldEF1aWRQYXJhbSJdXSxbNTIsInQiLFsxNSwiX19tb2R1bGVfdGFza1NldENvbmZpZ1BhcmFtcyJdXSxbNTIsInUiLFsxNSwiX19tb2R1bGVfdGFza1NldEZlYXR1cmVVc2FnZVBhcmFtcyJdXSxbNTIsInYiLFsxNSwiX19tb2R1bGVfdGFza1NldEdvb2dsZUFuYWx5c2lzUGFyYW1zIl1dLFs1MiwidyIsWzE1LCJfX21vZHVsZV90YXNrU2V0R3BwUGFyYW1zIl1dLFs1MiwieCIsWzE1LCJfX21vZHVsZV90YXNrU2V0SWZyYW1lU3RhdGVQYXJhbSJdXSxbNTIsInkiLFsxNSwiX19tb2R1bGVfdGFza1NldFByaXZhY3lQYXJhbXMiXV0sWzUyLCJ6IixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrU2V0VW5pdmVyc2FsUGFyYW1zIl1dLFs1MiwiYUEiLFsxNSwiX19tb2R1bGVfdGFza1NldFVybFBhc3N0aHJvdWdoUGFyYW1zIl1dLFs1MiwiYUIiLFsxNSwiX19tb2R1bGVfd2ViQWRzVGFza3MiXV0sWzM2LFs4LCJBIixbMTUsImFDIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV91c2VyRGF0YVdlYlByb2Nlc3NvciIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwidyIsWzQ2LCJ4Il0sWzUyLCJ5IixbNyxbMTcsWzE1LCJjIl0sIkIiXSxbMTcsWzE1LCJjIl0sIkMiXV1dLFs1MiwieiIsWzUxLCIiLFs3XSxbIm0iLFsxNSwieCJdXSxbMixbMTUsInYiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsIm8iXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsImIiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsInUiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsImoiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsImIiXSwiRyIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsInMiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsImsiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbImgiLFsxNSwieCJdXSxbMixbMTUsImkiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsInAiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsInIiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsIm4iXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsImwiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsImIiXSwiRCIsWzcsWzE1LCJ4Il1dXSxbMixbMTUsInEiXSwiQSIsWzcsWzE1LCJ4Il1dXSxbInQiLFsxNSwieCJdXSxbMjIsWzI4LFsyLFsxNSwieCJdLCJpc0Fib3J0ZWQiLFs3XV1dLFs0NixbNTMsWyJnIixbMTUsIngiXV1dXV1dXSxbNTIsImFBIixbNTEsIiIsWzddLFsyMixbMjgsWyJkIixbMTUsInkiXV1dLFs0NixbNTMsWzM2XV1dXSxbInoiXV1dLFsiZiIsWzE1LCJhQSJdXV0sWzUyLCJiIixbMTUsIl9fbW9kdWxlX2NvbW1vbkFkc1Rhc2tzIl1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9ndGFnU2NoZW1hIl1dLFs1MiwiZCIsWyJyZXF1aXJlIiwiaXNDb25zZW50R3JhbnRlZCJdXSxbNTIsImUiLFsxNSwiX19tb2R1bGVfbWV0YWRhdGFTY2hlbWEiXV0sWzUyLCJmIixbInJlcXVpcmUiLCJpbnRlcm5hbC5xdWV1ZUFkc1RyYW5zbWlzc2lvbiJdXSxbNTIsImciLFsicmVxdWlyZSIsImludGVybmFsLnNlbmRBZHNIaXQiXV0sWzUyLCJoIixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrQWRkQWRzQ2xpY2tJZHMiXV0sWzUyLCJpIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGRDb29raWVEZXByZWNhdGlvbkxhYmVsIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV90YXNrQWRkRGV2ZWxvcGVySWQiXV0sWzUyLCJrIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGRFdmVudFByb3ZlbmFuY2UiXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX3Rhc2tBZGRVYWNoUGFyYW1zIl1dLFs1MiwibSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudGFza1NldEFkc1RyYW5zbWlzc2lvblR5cGUiXV0sWzUyLCJuIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRBdWlkUGFyYW0iXV0sWzUyLCJvIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRDb25maWdQYXJhbXMiXV0sWzUyLCJwIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRDb29raWVFeHBpcmF0aW9uUGFyYW0iXV0sWzUyLCJxIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRGZWF0dXJlVXNhZ2VQYXJhbXMiXV0sWzUyLCJyIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRHb29nbGVBbmFseXNpc1BhcmFtcyJdXSxbNTIsInMiLFsxNSwiX19tb2R1bGVfdGFza1NldElmcmFtZVN0YXRlUGFyYW0iXV0sWzUyLCJ0IixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrU2V0VW5pdmVyc2FsUGFyYW1zIl1dLFs1MiwidSIsWzE1LCJfX21vZHVsZV90YXNrU2V0VXNlcklkUGFyYW1zIl1dLFs1MiwidiIsWzE1LCJfX21vZHVsZV93ZWJBZHNUYXNrcyJdXSxbMzYsWzgsIkEiLFsxNSwidyJdXV1dLFszNixbImEiXV1dXSxbIiQwIl1dXQogLFs1MiwiX19tb2R1bGVfYWRzQ29udmVyc2lvblNwbGl0IixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJvIixbNDYsInAiXSxbNTIsInEiLFszMCxbMixbMTUsInAiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiTSJdXV0sWzhdXV0sWzIyLFszMCxbMjgsWzE2LFsxNSwicSJdLFsxNyxbMTUsImoiXSwiQyJdXV0sWzI4LFsxNixbMTUsInEiXSxbMTcsWzE1LCJqIl0sIkIiXV1dXSxbNDYsWzUzLFszNl1dXV0sWzIyLFsyOCxbImsiXV0sWzQ2LFszNl1dXSxbNTIsInIiLFsiaSIsWzIsWzE1LCJwIl0sImdldERlc3RpbmF0aW9uSWQiLFs3XV0sImNjZF9lbmFibGVfY20iXV0sWzUyLCJzIixbMixbMTUsInAiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQ1ciXV1dXSxbMjIsWzI4LFsxNSwicyJdXSxbNDYsWzUzLFszNl1dXV0sWzIsWzE1LCJwIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkJEIl0sdHJ1ZV1dLFsyLFsxNSwicCJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJCQyJdLHRydWVdXSxbMjIsWzI4LFsibSIsWzE1LCJzIl1dXSxbNDYsWzUzLFszNl1dXV0sWzIsWzE1LCJwIl0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkJRIl0sdHJ1ZV1dLFs1MiwidCIsWzMwLFsiaCIsWzE1LCJwIl1dLFsiZyJdXV0sWzIyLFsyLFsxNSwicCJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIklVIl1dXSxbNDYsWzUzLFsyLFsxNSwicCJdLCJzZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIklWIl0sWzE3LFsxNSwiYyJdLCJBIl1dXV1dLFs0NixbNTMsWzQxLCJ2Il0sWzMsInYiLFs0NF1dLFs0MSwidyJdLFszLCJ3IixbNDRdXSxbNTIsIngiLFsyLFsxNSwicCJdLCJnZXRIaXREYXRhIixbNyxbMTcsWzE1LCJqIl0sIktJIl1dXV0sWzIyLFsxNSwieCJdLFs0NixbNTMsWzIyLFsxNixbMTUsIngiXSxbMTcsWzE1LCJqIl0sIklVIl1dLFs0NixbNTMsWzMsInYiLFsxNixbMTUsIngiXSxbMTcsWzE1LCJqIl0sIklVIl1dXSxbMywidyIsWzE3LFsxNSwiYyJdLCJCIl1dXV1dXV1dLFsyMixbMjgsWzE1LCJ2Il1dLFs0NixbNTMsWzMsInYiLFsiZyIsWzIsWzE1LCJwIl0sImdldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiS0ciXV1dXV0sWzMsInciLFsxNyxbMTUsImMiXSwiQyJdXV1dXSxbMixbMTUsInAiXSwic2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJJVSJdLFsxNSwidiJdXV0sWzIsWzE1LCJwIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiSVYiXSxbMTUsInciXV1dXV1dLFsyLFsxNSwicCJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJDVSJdLFsxNSwidCJdXV0sWzIyLFszMCxbMjgsWzE1LCJyIl1dLFsyOCxbMixbMTUsInAiXSwiZ2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiRiJdXV1dXSxbNDYsWzUzLFsyLFsxNSwicCJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJDVyJdLFs0NF1dXV1dXSxbMixbMTUsInAiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQ0UiXSx0cnVlXV0sWzIsWzE1LCJwIl0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiSUkiXSxbMTUsInQiXV1dLFs1MiwidSIsWyJkIixbMTUsInAiXSxbOCwib21pdEhpdERhdGEiLHRydWVdXV0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkFRIl0sWzE3LFsxNSwiYiJdLCJLIl1dXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQ1ciXSxbMTUsInMiXV1dLFsyLFsxNSwidSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJCQyJdLHRydWVdXSxbMixbMTUsInUiXSwic2V0TWV0YWRhdGEiLFs3LFsxNyxbMTUsImwiXSwiQkQiXSx0cnVlXV0sWzIsWzE1LCJ1Il0sInNldE1ldGFkYXRhIixbNyxbMTcsWzE1LCJsIl0sIkJRIl0sdHJ1ZV1dLFsyLFsxNSwidSJdLCJzZXRNZXRhZGF0YSIsWzcsWzE3LFsxNSwibCJdLCJDVSJdLFsxNSwidCJdXV0sWzIsWzE1LCJ1Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiQ1IiXSxbMixbMTUsInAiXSwiZ2V0SGl0RGF0YSIsWzcsWzE3LFsxNSwiaiJdLCJDUiJdXV1dXSxbMjIsWzEsWzE1LCJyIl0sWyJrIl1dLFs0NixbNTMsWzIsWzE1LCJ1Il0sInNldEhpdERhdGEiLFs3LFsxNyxbMTUsImoiXSwiS0MiXSwiMSJdXV1dXSxbNjgsInYiLFs1MyxbMixbMTUsIm4iXSwiQSIsWzcsWzE1LCJ1Il1dXV0sWzQ2XV1dLFs1MiwiYiIsWzE1LCJfX21vZHVsZV9hZHdvcmRzSGl0VHlwZSJdXSxbNTIsImMiLFsxNSwiX19tb2R1bGVfYWR3b3Jkc09yZGVySWRTb3VyY2UiXV0sWzUyLCJkIixbInJlcXVpcmUiLCJpbnRlcm5hbC5jb3B5UHJlSGl0Il1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImYiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuZ2VuZXJhdGVDbGllbnRJZCJdXSxbNTIsImgiLFsicmVxdWlyZSIsImludGVybmFsLmdldEVjc2lkQ29va2llVmFsdWUiXV0sWzUyLCJpIixbInJlcXVpcmUiLCJpbnRlcm5hbC5nZXRQcm9kdWN0U2V0dGluZ3NQYXJhbWV0ZXIiXV0sWzUyLCJqIixbMTUsIl9fbW9kdWxlX2d0YWdTY2hlbWEiXV0sWzUyLCJrIixbInJlcXVpcmUiLCJpbnRlcm5hbC5pc0ZwZmUiXV0sWzUyLCJsIixbMTUsIl9fbW9kdWxlX21ldGFkYXRhU2NoZW1hIl1dLFs1MiwibSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudXNlckRhdGFOZWVkc0VuY3J5cHRpb24iXV0sWzUyLCJuIixbMTUsIl9fbW9kdWxlX3VzZXJEYXRhV2ViUHJvY2Vzc29yIl1dLFszNixbOCwiQSIsWzE1LCJvIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9nYWN0Q29udmVyc2lvblByb2Nlc3NvciIsWzEzLFs0MSwiJDAiXSxbMywiJDAiLFs1MSwiIixbN10sWzUwLCJhIixbNDZdLFs1MCwiYUUiLFs0NiwiYUYiXSxbNTIsImFHIixbNTEsIiIsWzddLFsibyIsWzE1LCJhRiJdXSxbMixbMTUsImFEIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwibCJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsInIiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJ2Il0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwicSJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImMiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJjIl0sIkoiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwieCJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImoiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJuIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYyJdLCJCIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImkiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJjIl0sIkMiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYyJdLCJFIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImMiXSwiSSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJjIl0sIkciLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwieSJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImFBIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsiZyIsWzE1LCJhRiJdXSxbMixbMTUsImgiXSwiQSIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJwIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYyJdLCJGIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImMiXSwiRCIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJrIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwidyJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImFDIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwicyJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImFCIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwidSJdLCJBIixbNyxbMTUsImFGIl1dXSxbMixbMTUsImFEIl0sIkIiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwiYUQiXSwiQyIsWzcsWzE1LCJhRiJdXV0sWzIsWzE1LCJiIl0sIkEiLFs3LFsxNSwiYUYiXV1dLFsyLFsxNSwidCJdLCJBIixbNyxbMTUsImFGIl1dXSxbInoiLFsxNSwiYUYiXV0sWzIsWzE1LCJtIl0sIkEiLFs3LFsxNSwiYUYiXV1dXV0sWyJmIixbMTUsImFHIl1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfYWRzQ29udmVyc2lvblNwbGl0Il1dLFs1MiwiYyIsWzE1LCJfX21vZHVsZV9jb21tb25BZHNUYXNrcyJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZmVhdHVyZUZsYWdzIl1dLFs1MiwiZSIsWyJyZXF1aXJlIiwiaW50ZXJuYWwuaXNGZWF0dXJlRW5hYmxlZCJdXSxbNTIsImYiLFsicmVxdWlyZSIsImludGVybmFsLnF1ZXVlQWRzVHJhbnNtaXNzaW9uIl1dLFs1MiwiZyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudGFza0FkZEFkc0NsaWNrSWRzIl1dLFs1MiwiaCIsWzE1LCJfX21vZHVsZV90YXNrQWRkQ29va2llRGVwcmVjYXRpb25MYWJlbCJdXSxbNTIsImkiLFsxNSwiX19tb2R1bGVfdGFza0FkZERldmVsb3BlcklkIl1dLFs1MiwiaiIsWzE1LCJfX21vZHVsZV90YXNrQWRkRXZlbnRQcm92ZW5hbmNlIl1dLFs1MiwiayIsWzE1LCJfX21vZHVsZV90YXNrQWRkVWFjaFBhcmFtcyJdXSxbNTIsImwiLFsxNSwiX19tb2R1bGVfdGFza0luaXRTZXJ2aWNlV29ya2VyIl1dLFs1MiwibSIsWzE1LCJfX21vZHVsZV90YXNrU2VuZEFkc0hpdHMiXV0sWzUyLCJuIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRBZHNQYWdlUGFyYW1zIl1dLFs1MiwibyIsWyJyZXF1aXJlIiwiaW50ZXJuYWwudGFza1NldEFkc1RyYW5zbWlzc2lvblR5cGUiXV0sWzUyLCJwIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRBdWlkUGFyYW0iXV0sWzUyLCJxIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRDb25maWdQYXJhbXMiXV0sWzUyLCJyIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRDb29raWVFeHBpcmF0aW9uUGFyYW0iXV0sWzUyLCJzIixbMTUsIl9fbW9kdWxlX3Rhc2tTZXRDdXN0b21lckxpZmVjeWNsZVBhcmFtcyJdXSxbNTIsInQiLFsxNSwiX19tb2R1bGVfdGFza1NldEZlYXR1cmVVc2FnZVBhcmFtcyJdXSxbNTIsInUiLFsxNSwiX19tb2R1bGVfdGFza1NldEdvb2dsZUFuYWx5c2lzUGFyYW1zIl1dLFs1MiwidiIsWzE1LCJfX21vZHVsZV90YXNrU2V0R3BwUGFyYW1zIl1dLFs1MiwidyIsWzE1LCJfX21vZHVsZV90YXNrU2V0R3NhRXhwZXJpbWVudElkIl1dLFs1MiwieCIsWzE1LCJfX21vZHVsZV90YXNrU2V0SWZyYW1lU3RhdGVQYXJhbSJdXSxbNTIsInkiLFsxNSwiX19tb2R1bGVfdGFza1NldFByaXZhY3lQYXJhbXMiXV0sWzUyLCJ6IixbInJlcXVpcmUiLCJpbnRlcm5hbC50YXNrU2V0VW5pdmVyc2FsUGFyYW1zIl1dLFs1MiwiYUEiLFsxNSwiX19tb2R1bGVfdGFza1NldFVybFBhc3N0aHJvdWdoUGFyYW1zIl1dLFs1MiwiYUIiLFsxNSwiX19tb2R1bGVfdGFza1NldFVzZXJJZFBhcmFtcyJdXSxbNTIsImFDIixbMTUsIl9fbW9kdWxlX3Rhc2tTdG9yZUJyYWlkTGFiZWxzIl1dLFs1MiwiYUQiLFsxNSwiX19tb2R1bGVfd2ViQWRzVGFza3MiXV0sWzM2LFs4LCJBIixbMTUsImFFIl1dXV0sWzM2LFsiYSJdXV1dLFsiJDAiXV1dCiAsWzUyLCJfX21vZHVsZV9wcm9jZXNzb3JzIixbMTMsWzQxLCIkMCJdLFszLCIkMCIsWzUxLCIiLFs3XSxbNTAsImEiLFs0Nl0sWzUwLCJnIixbNDYsImkiLCJqIl0sWzQzLFsxNSwiZiJdLFsxNSwiaSJdLFs4LCJwcm9jZXNzIixbMTUsImoiXV1dXSxbNTAsImgiLFs0NiwiaSIsImoiXSxbNTIsImsiLFsxNixbMTUsImYiXSxbMTUsImkiXV1dLFsyMixbMjgsWzE1LCJrIl1dLFs0NixbNTMsWzIsWzE1LCJrIl0sIm5vU3VjaFByb2Nlc3NvckZvckhpdFR5cGUiLFs3XV1dXV0sWzY4LCJsIixbNTMsWzIsWzE1LCJrIl0sInByb2Nlc3MiLFs3LFsxNSwiaiJdXV1dLFs0Nl1dXSxbNTIsImIiLFsxNSwiX19tb2R1bGVfYWR3b3Jkc0hpdFR5cGUiXV0sWzUyLCJjIixbMTUsIl9fbW9kdWxlX2dhQ29udmVyc2lvblByb2Nlc3NvciJdXSxbNTIsImQiLFsxNSwiX19tb2R1bGVfZ2FjdENvbnZlcnNpb25Qcm9jZXNzb3IiXV0sWzUyLCJlIixbMTUsIl9fbW9kdWxlX3VzZXJEYXRhV2ViUHJvY2Vzc29yIl1dLFs1MiwiZiIsWzhdXSxbImciLFsxNyxbMTUsImIiXSwiRiJdLFsxNyxbMTUsImMiXSwiQSJdXSxbImciLFsxNyxbMTUsImIiXSwiRCJdLFsxNyxbMTUsImQiXSwiQSJdXSxbImciLFsxNyxbMTUsImIiXSwiSyJdLFsxNyxbMTUsImUiXSwiQSJdXSxbMzYsWzgsIkIiLFsxNSwiaCJdLCJBIixbMTUsImciXV1dXSxbMzYsWyJhIl1dXV0sWyIkMCJdXV0KIApdCiwiZW50aXRpZXMiOnsKIl9fYyI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9hdXRvX3JlZGFjdCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9jb252ZXJzaW9uX21hcmtpbmciOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZW1fZG93bmxvYWQiOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZW1fb3V0Ym91bmRfY2xpY2siOnsiMiI6dHJ1ZSwiNSI6dHJ1ZSwiNiI6dHJ1ZX0KLAoiX19jY2RfZW1fcGFnZV92aWV3Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2VtX3Njcm9sbCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV9zaXRlX3NlYXJjaCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9lbV92aWRlbyI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9nYV9hZHNfbGluayI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9nYV9maXJzdCI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2NjZF9nYV9sYXN0Ijp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fY2NkX2dhX3JlZ3Njb3BlIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fZSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX2djdCI6eyI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX29ndF8xcF9kYXRhX3YyIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CiwKIl9fb2d0X2V2ZW50X2NyZWF0ZSI6eyIyIjp0cnVlLCI1Ijp0cnVlLCI2Ijp0cnVlfQosCiJfX3NldF9wcm9kdWN0X3NldHRpbmdzIjp7IjIiOnRydWUsIjUiOnRydWUsIjYiOnRydWV9CgoKfQosImJsb2IiOnsiMSI6IjEiLCIxMCI6IkctQ1Q2VFZLWTRRS3xHVC1NUjRGSjk4IiwiMTEiOnRydWUsIjE0IjoiNjdtMCIsIjE1IjoiMCIsIjE2IjoiQ2hBSThPQ1cwd1lRcjVEZ2tKK2U4YU45RWgwQWgrZ0dmdnFwVk51RHh6ZENiWnhzYjJGbFZ0NkwrOHR0V2tIYWVob0NqVDQ9IiwiMTciOiIiLCIxOSI6ImRhdGFMYXllciIsIjIiOnRydWUsIjIwIjoiIiwiMjEiOiJ3d3cuZ29vZ2xldGFnbWFuYWdlci5jb20iLCIyMiI6ImV5SXdJam9pVGs4aUxDSXhJam9pVGs4dE1ETWlMQ0l5SWpwbVlXeHpaU3dpTXlJNkltZHZiMmRzWlM1dWJ5SXNJalFpT2lKeVpXZHBiMjR4SWl3aU5TSTZabUZzYzJVc0lqWWlPblJ5ZFdVc0lqY2lPaUpoWkY5emRHOXlZV2RsZkdGdVlXeDVkR2xqYzE5emRHOXlZV2RsZkdGa1gzVnpaWEpmWkdGMFlYeGhaRjl3WlhKemIyNWhiR2w2WVhScGIyNGlMQ0k1SWpwMGNuVmxmUSIsIjIzIjoiZ29vZ2xlLnRhZ21hbmFnZXIuZGVidWd1aTIucXVldWUiLCIyNCI6InRhZ2Fzc2lzdGFudC5nb29nbGUuY29tIiwiMjciOjAuMDA1LCIzIjoid3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tIiwiMzAiOiJOTyIsIjMxIjoiTk8tMDMiLCIzMiI6ZmFsc2UsIjMzIjoicmVnaW9uMSIsIjM0IjoiRy1DVDZUVktZNFFLIiwiMzUiOiJHIiwiMzYiOiJodHRwczovL2Fkc2VydmljZS5nb29nbGUuY29tL3BhZ2VhZC9yZWdjbGsiLCIzNyI6Il9fVEFHR1lfSU5TVEFMTEVEIiwiMzgiOiJjY3QuZ29vZ2xlIiwiMzkiOiJnb29nVGFnZ3lSZWZlcnJlciIsIjQwIjoiaHR0cHM6Ly9jY3QuZ29vZ2xlL3RhZ2d5L2FnZW50LmpzIiwiNDEiOiJnb29nbGUudGFnbWFuYWdlci50YS5wcm9kcXVldWUiLCI0MiI6MC4wMSwiNDMiOiJ7XCJrZXlzXCI6W3tcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCS2x5VFgyanlvYnBRQ21mVXlCYmhCeVFIazlaMkhkTjVsSHhwQkF0SUtHTWNtencwZ0UrZWJsWUNtbTFHYTdiWWVUZHlkb0ptZTZJcGFTb0NVMElVVW89XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiZGVlNGIzNTEtYjBmNS00YzI3LWE4YzgtZWQ2NjA0NzdhNDRjXCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCRHRZQlJuUEJTMWc2bWVYTzFyUTVhNTJCNUZibmg3REM1anF2MDJpeEpzc24wazFKOXJjSENhVmMvenpSc25zSEJ6U29GS3M2SjhwSDdDY25RUDNFanc9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiYWQxOTNiMmEtNGE5MC00YzFhLWI3OWUtZGUzN2FjMzkxYmQyXCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCTVowVU11ZEFlNFBvYWZTVHBVeFB0SWtmQmVDTWJGQlh2dHlSWXZITENTUS9FVXZFSnNtc1Y0dDZOQi9CRVZwcUwzSHY4Z05TUWg3SytTVW9vZjI1YW89XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiNDhjNGVmZTEtZmRkMC00MzZhLWFjOGYtOTIzZjExOTE4Nzg3XCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCRmZsdlVsK3hwSGFGVkNJWU8xS1BMeGt2K0FqZGw0ZDhydnJYaEk2emZwbmJCRHFJNTFERGt0SEhiM1pXSVM1N29EaDBLaXI5QXVDT29uMk1PeE5WOVk9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiNDMyYmMyNzAtOTllYS00MjIwLWI1NjItZTJjNWFlNzdkNGQ5XCJ9LHtcImhwa2VQdWJsaWNLZXlcIjp7XCJwYXJhbXNcIjp7XCJhZWFkXCI6XCJBRVNfMTI4X0dDTVwiLFwia2RmXCI6XCJIS0RGX1NIQTI1NlwiLFwia2VtXCI6XCJESEtFTV9QMjU2X0hLREZfU0hBMjU2XCJ9LFwicHVibGljS2V5XCI6XCJCQVE4VGt5NERMV09KYkhPSGJWWURiUVpFZkVlbGI0RlRCOEVZTVFlUlFpTDFtMUx0QWQwcjN6ZXlMamdaMy9XMjRSOFZmYjIyelkyaXg2Vy9UZkNqakE9XCIsXCJ2ZXJzaW9uXCI6MH0sXCJpZFwiOlwiMDUwYTZlMTEtMzhhYi00ZjgwLTg5Y2ItN2IzMTliOTcwNGMwXCJ9XX0iLCI0NCI6IjExODg5NzkyMH4xMTg4OTc5MzAiLCI0NSI6dHJ1ZSwiNDYiOnsiMSI6IjEwMDAiLCIxMCI6IjY2dTAiLCIxMSI6IjY2ZzAiLCIxNCI6IjEwMDAiLCIxNiI6IlVTLUNPflVTLUNUflVTLU1UflVTLU5FflVTLU5IflVTLVRYflVTLU1OflVTLU5KflVTLU1EflVTLU9SflVTLURFIiwiMTciOiJVUy1DT35VUy1DVH5VUy1NVH5VUy1ORX5VUy1OSH5VUy1UWH5VUy1NTn5VUy1OSn5VUy1NRH5VUy1PUn5VUy1ERSIsIjIiOiI5IiwiMjAiOiI1MDAwIiwiMjEiOiI1MDAwIiwiMjIiOiI0LjQuMCIsIjIzIjoiMC4wLjAiLCIyNSI6IjEiLCIyNiI6IjQwMDAiLCIyNyI6IjEwMCIsIjMiOiI1IiwiNCI6ImFkX3N0b3JhZ2V8YW5hbHl0aWNzX3N0b3JhZ2V8YWRfdXNlcl9kYXRhfGFkX3BlcnNvbmFsaXphdGlvbiIsIjQ0IjoiMTUwMDAiLCI0OCI6IjMwMDAwIiwiNSI6ImFkX3N0b3JhZ2V8YW5hbHl0aWNzX3N0b3JhZ2V8YWRfdXNlcl9kYXRhIiwiNiI6IjEiLCI2MSI6IjEwMDAiLCI2MiI6IkE2T05IUlk3L2J2QnJvK0lNWmQvYTZMTmpuN1NTdjk5OVNrTi9oRkFFOUw2dk1yMzRkTmdmZFNWZFltdjRVK05IWmcxc3hkMzhSdGNpUnBSVXRJUlBnUUFBQUNDZXlKdmNtbG5hVzRpT2lKb2RIUndjem92TDNkM2R5NW5iMjluYkdWMFlXZHRZVzVoWjJWeUxtTnZiVG8wTkRNaUxDSm1aV0YwZFhKbElqb2lVMmhoY21Wa1YyOXlhMlZ5UlhoMFpXNWtaV1JNYVdabGRHbHRaU0lzSW1WNGNHbHllU0k2TVRjM05qY3lPVFl3TUN3aWFYTlVhR2x5WkZCaGNuUjVJanAwY25WbGZRPT0iLCI2MyI6IjEwMDAiLCI2NiI6IjEwMCIsIjciOiIxMCJ9LCI0OCI6dHJ1ZSwiNSI6IkctQ1Q2VFZLWTRRSyIsIjU1IjpbIkctQ1Q2VFZLWTRRSyJdLCI1NiI6W3siMSI6NDAzLCIzIjowLjUsIjQiOjExNTkzODQ2NSwiNSI6MTE1OTM4NDY2LCI2IjowLCI3IjoyfSx7IjEiOjQwNCwiMyI6MC41LCI0IjoxMTU5Mzg0NjgsIjUiOjExNTkzODQ2OSwiNiI6MCwiNyI6MX0seyIxIjo2MDIsIjMiOjAuMDEsIjQiOjEyMDEyNDQ1NSwiNSI6MTIwMTI0NDUzLCI2IjoxMjAxMjQ0NTQsIjciOjN9LHsiMSI6NTY5LCIyIjp0cnVlfSx7IjEiOjQ3NSwiMiI6dHJ1ZX0seyIxIjo1MDIsIjIiOnRydWV9LHsiMSI6NTc3LCIyIjp0cnVlfSx7IjEiOjU2OCwiMyI6MC4wMSwiNCI6MTE5NzkxNzQ5LCI1IjoxMTk3OTE3NDgsIjYiOjAsIjciOjF9LHsiMSI6NDkwLCIyIjp0cnVlfSx7IjEiOjQ5MSwiMyI6MC4wMSwiNCI6MTE4MDEyMDA3LCI1IjoxMTgwMTIwMDgsIjYiOjExODAxMjAwOSwiNyI6MX0seyIxIjo0ODAsIjIiOnRydWV9LHsiMSI6NTk0LCIzIjowLjAxLCI0IjoxMTk3OTM5NzQsIjUiOjExOTc5Mzk3MiwiNiI6MTE5NzkzOTczLCI3IjoxfSx7IjEiOjU5OSwiMiI6dHJ1ZX0seyIxIjo1ODAsIjMiOjAuMSwiNCI6MTE5NTI3MDIwLCI1IjoxMTk1MjcwMTksIjYiOjAsIjciOjF9LHsiMSI6NTIzLCIyIjp0cnVlfSx7IjEiOjU4MSwiMyI6MC4wMSwiNCI6MTE5OTQ4ODU0LCI1IjoxMTk5NDg4NTIsIjYiOjExOTk0ODg1MywiNyI6M30seyIxIjo1NTUsIjMiOjAuMDEsIjQiOjExOTI1OTYwNiwiNSI6MTE5MjU5NjA1LCI2IjowLCI3IjoyfSx7IjEiOjUwNCwiMiI6dHJ1ZX0seyIxIjo0NjIsIjMiOjAuMDUsIjQiOjExODgwNjUyNCwiNSI6MTE4ODA2NTI1LCI2IjoxMTg4MDY1MjYsIjciOjF9LHsiMSI6NDEzLCIyIjp0cnVlfSx7IjEiOjU5MywiMiI6dHJ1ZX0seyIxIjo1MDYsIjIiOnRydWV9LHsiMSI6NTAwLCIyIjp0cnVlfSx7IjEiOjU2MSwiMyI6MC4wMDEsIjQiOjExOTQwNDcwMywiNSI6MTE5NDA0NzAyLCI2IjowLCI3IjoxfSx7IjEiOjQ4MSwiMyI6MC4wMDEsIjQiOjExOTQwNDcwMSwiNSI6MTE5NDA0NzAwLCI2IjowLCI3IjoxfSx7IjEiOjQ1MCwiMyI6MC4wMSwiNCI6MTE3MjI3NzE0LCI1IjoxMTcyMjc3MTUsIjYiOjExNzIyNzcxNiwiNyI6M30seyIxIjo1ODMsIjMiOjAuNSwiNCI6MTE5ODk2ODAzLCI1IjoxMTk4OTY4MDIsIjYiOjAsIjciOjF9LHsiMSI6NDU4LCIyIjp0cnVlfSx7IjEiOjU4MiwiMyI6MC4wMSwiNCI6MTE5MzgxNjY0LCI1IjoxMTkzODE2NjIsIjYiOjExOTM4MTY2MywiNyI6MX0seyIxIjo1NzAsIjIiOnRydWV9LHsiMSI6NDk4LCIzIjowLjIsIjQiOjExNTYxNjk4NSwiNSI6MTE1NjE2OTg2LCI2IjowLCI3IjoxfSx7IjEiOjU5NSwiMiI6dHJ1ZX0seyIxIjo1ODksIjMiOjAuMDEsIjQiOjEyMDA4NDIxNSwiNSI6MTIwMDg0MjE0LCI2IjowLCI3IjoxfSx7IjEiOjQ5NSwiMyI6MC4wNSwiNCI6MTE4MTMxODEwLCI1IjoxMTgxMzE4MDgsIjYiOjExODEzMTgwOSwiNyI6M30seyIxIjo1ODcsIjMiOjAuMSwiNCI6MTE5NzMyMTcxLCI1IjoxMTk3MzIxNzAsIjYiOjAsIjciOjN9LHsiMSI6NTg0LCIyIjp0cnVlfSx7IjEiOjU2NCwiMyI6MC4wMDAxLCI0IjoxMTkyMDUzMTcsIjUiOjExOTIwNTMxNSwiNiI6MTE5MjA1MzE2LCI3IjoxfSx7IjEiOjU1NywiMiI6dHJ1ZX0seyIxIjo0MjcsIjMiOjAuMSwiNCI6MTE5NzI0MzIyLCI1IjoxMTk3MjQzMjAsIjYiOjExOTcyNDMyMSwiNyI6Mn0seyIxIjo1NzYsIjMiOjAuMDEsIjQiOjExOTMxNzgxMCwiNSI6MTE5MzE3ODExLCI2IjoxMTkzMTgxNzcsIjciOjN9LHsiMSI6NTczLCIyIjp0cnVlfSx7IjEiOjQ5OSwiMiI6dHJ1ZX0seyIxIjo1MTYsIjMiOjAuMSwiNCI6MTE4Mzk1MzM1LCI1IjoxMTgzOTUzMzMsIjYiOjExODM5NTMzNCwiNyI6MX0seyIxIjo1MjQsIjIiOnRydWV9XSwiNTkiOlsiRy1DVDZUVktZNFFLIl0sIjYiOiI5MzMzNDY4NCIsIjYyIjp0cnVlLCI2MyI6MC4wMDV9CiwicGVybWlzc2lvbnMiOnsKIl9fYyI6e30KLAoiX19jY2RfYXV0b19yZWRhY3QiOnt9CiwKIl9fY2NkX2NvbnZlcnNpb25fbWFya2luZyI6e30KLAoiX19jY2RfZW1fZG93bmxvYWQiOnsibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0ubGlua0NsaWNrIl19LCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSI6e30sImRldGVjdF9saW5rX2NsaWNrX2V2ZW50cyI6eyJhbGxvd1dhaXRGb3JUYWdzIjoiIn19CiwKIl9fY2NkX2VtX291dGJvdW5kX2NsaWNrIjp7ImdldF91cmwiOnsidXJsUGFydHMiOiJhbnkiLCJxdWVyaWVzQWxsb3dlZCI6ImFueSJ9LCJsaXN0ZW5fZGF0YV9sYXllciI6eyJhY2Nlc3NUeXBlIjoic3BlY2lmaWMiLCJhbGxvd2VkRXZlbnRzIjpbImd0bS5saW5rQ2xpY2siXX0sImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwiZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzIjp7ImFsbG93V2FpdEZvclRhZ3MiOiIifX0KLAoiX19jY2RfZW1fcGFnZV92aWV3Ijp7Imxpc3Rlbl9kYXRhX2xheWVyIjp7ImFjY2Vzc1R5cGUiOiJzcGVjaWZpYyIsImFsbG93ZWRFdmVudHMiOlsiZ3RtLmhpc3RvcnlDaGFuZ2UtdjIiXX0sImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwiZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cyI6e319CiwKIl9fY2NkX2VtX3Njcm9sbCI6eyJsaXN0ZW5fZGF0YV9sYXllciI6eyJhY2Nlc3NUeXBlIjoic3BlY2lmaWMiLCJhbGxvd2VkRXZlbnRzIjpbImd0bS5zY3JvbGxEZXB0aCJdfSwiYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UiOnt9LCJkZXRlY3Rfc2Nyb2xsX2V2ZW50cyI6e319CiwKIl9fY2NkX2VtX3NpdGVfc2VhcmNoIjp7ImdldF91cmwiOnsidXJsUGFydHMiOiJhbnkiLCJxdWVyaWVzQWxsb3dlZCI6ImFueSJ9LCJyZWFkX2NvbnRhaW5lcl9kYXRhIjp7fX0KLAoiX19jY2RfZW1fdmlkZW8iOnsibGlzdGVuX2RhdGFfbGF5ZXIiOnsiYWNjZXNzVHlwZSI6InNwZWNpZmljIiwiYWxsb3dlZEV2ZW50cyI6WyJndG0udmlkZW8iXX0sImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fSwiZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzIjp7ImFsbG93Rml4TWlzc2luZ0phdmFTY3JpcHRBcGkiOmZhbHNlfX0KLAoiX19jY2RfZ2FfYWRzX2xpbmsiOnsiZ2V0X3VzZXJfYWdlbnQiOnt9LCJyZWFkX2V2ZW50X2RhdGEiOnsiZXZlbnREYXRhQWNjZXNzIjoiYW55In0sInJlYWRfdGl0bGUiOnt9LCJyZWFkX3NjcmVlbl9kaW1lbnNpb25zIjp7fSwiYWNjZXNzX2NvbnNlbnQiOnsiY29uc2VudFR5cGVzIjpbeyJjb25zZW50VHlwZSI6ImFkX3BlcnNvbmFsaXphdGlvbiIsInJlYWQiOnRydWUsIndyaXRlIjpmYWxzZX0seyJjb25zZW50VHlwZSI6ImFkX3N0b3JhZ2UiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6ZmFsc2V9LHsiY29uc2VudFR5cGUiOiJhZF91c2VyX2RhdGEiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6ZmFsc2V9XX0sImdldF91cmwiOnsidXJsUGFydHMiOiJhbnkifSwiZ2V0X3JlZmVycmVyIjp7InVybFBhcnRzIjoiYW55In0sImFjY2Vzc19nbG9iYWxzIjp7ImtleXMiOlt7ImtleSI6Il9fZ3NhRXhwLmlkIiwicmVhZCI6ZmFsc2UsIndyaXRlIjpmYWxzZSwiZXhlY3V0ZSI6dHJ1ZX1dfX0KLAoiX19jY2RfZ2FfZmlyc3QiOnsicmVhZF9kb21fZWxlbWVudHMiOnsiYWxsb3dlZENzc1NlbGVjdG9ycyI6ImFueSJ9LCJnZXRfdXJsIjp7InVybFBhcnRzIjoic3BlY2lmaWMiLCJwcm90b2NvbCI6dHJ1ZSwiaG9zdCI6dHJ1ZX19CiwKIl9fY2NkX2dhX2xhc3QiOnt9CiwKIl9fY2NkX2dhX3JlZ3Njb3BlIjp7InJlYWRfY29udGFpbmVyX2RhdGEiOnt9fQosCiJfX2UiOnsicmVhZF9ldmVudF9kYXRhIjp7ImV2ZW50RGF0YUFjY2VzcyI6InNwZWNpZmljIiwia2V5UGF0dGVybnMiOlsiZXZlbnQiXX19CiwKIl9fZ2N0Ijp7ImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fX0KLAoiX19vZ3RfMXBfZGF0YV92MiI6eyJkZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhIjp7ImxpbWl0RGF0YVNvdXJjZXMiOnRydWUsImFsbG93QXV0b0RhdGFTb3VyY2VzIjp0cnVlLCJhbGxvd01hbnVhbERhdGFTb3VyY2VzIjpmYWxzZSwiYWxsb3dDb2RlRGF0YVNvdXJjZXMiOmZhbHNlfX0KLAoiX19vZ3RfZXZlbnRfY3JlYXRlIjp7ImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIjp7fX0KLAoiX19zZXRfcHJvZHVjdF9zZXR0aW5ncyI6e30KCgp9CgoKCiwic2VjdXJpdHlfZ3JvdXBzIjp7CiJnb29nbGUiOlsKIl9fYyIKLAoiX19jY2RfYXV0b19yZWRhY3QiCiwKIl9fY2NkX2NvbnZlcnNpb25fbWFya2luZyIKLAoiX19jY2RfZW1fZG93bmxvYWQiCiwKIl9fY2NkX2VtX291dGJvdW5kX2NsaWNrIgosCiJfX2NjZF9lbV9wYWdlX3ZpZXciCiwKIl9fY2NkX2VtX3Njcm9sbCIKLAoiX19jY2RfZW1fc2l0ZV9zZWFyY2giCiwKIl9fY2NkX2VtX3ZpZGVvIgosCiJfX2NjZF9nYV9hZHNfbGluayIKLAoiX19jY2RfZ2FfZmlyc3QiCiwKIl9fY2NkX2dhX2xhc3QiCiwKIl9fY2NkX2dhX3JlZ3Njb3BlIgosCiJfX2UiCiwKIl9fZ2N0IgosCiJfX29ndF8xcF9kYXRhX3YyIgosCiJfX29ndF9ldmVudF9jcmVhdGUiCiwKIl9fc2V0X3Byb2R1Y3Rfc2V0dGluZ3MiCgpdCgoKfQoKCgoKCn07CgoKCgp2YXIgayxhYT10eXBlb2YgT2JqZWN0LmNyZWF0ZT09ImZ1bmN0aW9uIj9PYmplY3QuY3JlYXRlOmZ1bmN0aW9uKGEpe3ZhciBiPWZ1bmN0aW9uKCl7fTtiLnByb3RvdHlwZT1hO3JldHVybiBuZXcgYn0sYmE9dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzPT0iZnVuY3Rpb24iP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsYyl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09Yy52YWx1ZTtyZXR1cm4gYX0sY2E9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXSxjPTA7YzxiLmxlbmd0aDsrK2Mpe3ZhciBkPWJbY107aWYoZCYmZC5NYXRoPT1NYXRoKXJldHVybiBkfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7Cn0saGE9Y2EodGhpcyksaWE9dHlwZW9mIFN5bWJvbD09PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2woIngiKT09PSJzeW1ib2wiLGthPXt9LGxhPXt9LG5hPWZ1bmN0aW9uKGEsYixjKXtpZighY3x8YSE9bnVsbCl7dmFyIGQ9bGFbYl07aWYoZD09bnVsbClyZXR1cm4gYVtiXTt2YXIgZT1hW2RdO3JldHVybiBlIT09dm9pZCAwP2U6YVtiXX19LG9hPWZ1bmN0aW9uKGEsYixjKXtpZihiKWE6e3ZhciBkPWEuc3BsaXQoIi4iKSxlPWQubGVuZ3RoPT09MSxmPWRbMF0sZzshZSYmZiBpbiBrYT9nPWthOmc9aGE7Zm9yKHZhciBoPTA7aDxkLmxlbmd0aC0xO2grKyl7dmFyIGw9ZFtoXTtpZighKGwgaW4gZykpYnJlYWsgYTtnPWdbbF19dmFyIG49ZFtkLmxlbmd0aC0xXSxwPWlhJiZjPT09ImVzNiI/Z1tuXTpudWxsLHE9YihwKTtpZihxIT1udWxsKWlmKGUpYmEoa2Esbix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnF9KTtlbHNlIGlmKHEhPT1wKXtpZihsYVtuXT09PXZvaWQgMCl7dmFyIHI9Ck1hdGgucmFuZG9tKCkqMUU5Pj4+MDtsYVtuXT1pYT9oYS5TeW1ib2wobik6IiRqc2NwJCIrcisiJCIrbn1iYShnLGxhW25dLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cX0pfX19LHBhO2lmKGlhJiZ0eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mPT0iZnVuY3Rpb24iKXBhPU9iamVjdC5zZXRQcm90b3R5cGVPZjtlbHNle3ZhciByYTthOnt2YXIgdGE9e2E6ITB9LHVhPXt9O3RyeXt1YS5fX3Byb3RvX189dGE7cmE9dWEuYTticmVhayBhfWNhdGNoKGEpe31yYT0hMX1wYT1yYT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGF9Om51bGx9CnZhciB2YT1wYSx3YT1mdW5jdGlvbihhLGIpe2EucHJvdG90eXBlPWFhKGIucHJvdG90eXBlKTthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2lmKHZhKXZhKGEsYik7ZWxzZSBmb3IodmFyIGMgaW4gYilpZihjIT0icHJvdG90eXBlIilpZihPYmplY3QuZGVmaW5lUHJvcGVydGllcyl7dmFyIGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLGMpO2QmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGMsZCl9ZWxzZSBhW2NdPWJbY107YS5GdD1iLnByb3RvdHlwZX0seGE9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19LG09ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO2lmKGIpcmV0dXJuIGIuY2FsbChhKTtpZih0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIiKXJldHVybntuZXh0OnhhKGEpfTsKdGhyb3cgRXJyb3IoU3RyaW5nKGEpKyIgaXMgbm90IGFuIGl0ZXJhYmxlIG9yIEFycmF5TGlrZSIpO30seWE9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGM9W107IShiPWEubmV4dCgpKS5kb25lOyljLnB1c2goYi52YWx1ZSk7cmV0dXJuIGN9LHc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBBcnJheT9hOnlhKG0oYSkpfSxBYT1mdW5jdGlvbihhKXtyZXR1cm4gemEoYSxhKX0semE9ZnVuY3Rpb24oYSxiKXthLnJhdz1iO09iamVjdC5mcmVlemUmJihPYmplY3QuZnJlZXplKGEpLE9iamVjdC5mcmVlemUoYikpO3JldHVybiBhfSxCYT1pYSYmdHlwZW9mIG5hKE9iamVjdCwiYXNzaWduIik9PSJmdW5jdGlvbiI/bmEoT2JqZWN0LCJhc3NpZ24iKTpmdW5jdGlvbihhLGIpe2lmKGE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiTm8gbnVsbGlzaCBhcmciKTthPU9iamVjdChhKTtmb3IodmFyIGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKXt2YXIgZD1hcmd1bWVudHNbY107CmlmKGQpZm9yKHZhciBlIGluIGQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZSkmJihhW2VdPWRbZV0pfXJldHVybiBhfTtvYSgiT2JqZWN0LmFzc2lnbiIsZnVuY3Rpb24oYSl7cmV0dXJuIGF8fEJhfSwiZXM2Iik7dmFyIENhPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYSsiIGlzIG5vdCBhbiBvYmplY3QiKTt9LERhPWZ1bmN0aW9uKCl7dGhpcy5mYT0hMTt0aGlzLlI9bnVsbDt0aGlzLmphPXZvaWQgMDt0aGlzLkg9MTt0aGlzLk49dGhpcy5aPTA7dGhpcy5MYT10aGlzLks9bnVsbH0sRWE9ZnVuY3Rpb24oYSl7aWYoYS5mYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7YS5mYT0hMH07RGEucHJvdG90eXBlLnlhPWZ1bmN0aW9uKGEpe3RoaXMuamE9YX07CnZhciBHYT1mdW5jdGlvbihhLGIpe2EuSz17YW86Yixpc0V4Y2VwdGlvbjohMH07YS5IPWEuWnx8YS5OfTtEYS5wcm90b3R5cGUuZ2V0TmV4dEFkZHJlc3NKc2M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTtEYS5wcm90b3R5cGUuZ2V0WWllbGRSZXN1bHRKc2M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qYX07RGEucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLks9e3JldHVybjphfTt0aGlzLkg9dGhpcy5OfTtEYS5wcm90b3R5cGVbInJldHVybiJdPURhLnByb3RvdHlwZS5yZXR1cm47RGEucHJvdG90eXBlLkFqPWZ1bmN0aW9uKGEpe3RoaXMuSz17bmQ6YX07dGhpcy5IPXRoaXMuTn07RGEucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1EYS5wcm90b3R5cGUuQWo7RGEucHJvdG90eXBlLmFjPWZ1bmN0aW9uKGEsYil7dGhpcy5IPWI7cmV0dXJue3ZhbHVlOmF9fTtEYS5wcm90b3R5cGUueWllbGQ9RGEucHJvdG90eXBlLmFjOwpEYS5wcm90b3R5cGUueHM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1tKGEpLGQ9Yy5uZXh0KCk7Q2EoZCk7aWYoZC5kb25lKXRoaXMuamE9ZC52YWx1ZSx0aGlzLkg9YjtlbHNlIHJldHVybiB0aGlzLlI9Yyx0aGlzLmFjKGQudmFsdWUsYil9O0RhLnByb3RvdHlwZS55aWVsZEFsbD1EYS5wcm90b3R5cGUueHM7RGEucHJvdG90eXBlLm5kPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtEYS5wcm90b3R5cGUuanVtcFRvPURhLnByb3RvdHlwZS5uZDtEYS5wcm90b3R5cGUuRGo9ZnVuY3Rpb24oKXt0aGlzLkg9MH07RGEucHJvdG90eXBlLmp1bXBUb0VuZD1EYS5wcm90b3R5cGUuRGo7RGEucHJvdG90eXBlLk5qPWZ1bmN0aW9uKGEsYil7dGhpcy5aPWE7YiE9dm9pZCAwJiYodGhpcy5OPWIpfTtEYS5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPURhLnByb3RvdHlwZS5OajtEYS5wcm90b3R5cGUudmc9ZnVuY3Rpb24oYSl7dGhpcy5aPTA7dGhpcy5OPWF8fDB9OwpEYS5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPURhLnByb3RvdHlwZS52ZztEYS5wcm90b3R5cGUuSWo9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YTt0aGlzLlo9Ynx8MH07RGEucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9RGEucHJvdG90eXBlLklqO0RhLnByb3RvdHlwZS5QaD1mdW5jdGlvbihhKXt0aGlzLlo9YXx8MDt2YXIgYj10aGlzLksuYW87dGhpcy5LPW51bGw7cmV0dXJuIGJ9O0RhLnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9RGEucHJvdG90eXBlLlBoO0RhLnByb3RvdHlwZS5rZD1mdW5jdGlvbihhLGIsYyl7Yz90aGlzLkxhW2NdPXRoaXMuSzp0aGlzLkxhPVt0aGlzLktdO3RoaXMuWj1hfHwwO3RoaXMuTj1ifHwwfTtEYS5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9RGEucHJvdG90eXBlLmtkOwpEYS5wcm90b3R5cGUuaGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLkxhLnNwbGljZShifHwwKVswXSxkPXRoaXMuSz10aGlzLkt8fGM7ZD9kLmlzRXhjZXB0aW9uP3RoaXMuSD10aGlzLlp8fHRoaXMuTjpkLm5kIT12b2lkIDAmJnRoaXMuTjxkLm5kPyh0aGlzLkg9ZC5uZCx0aGlzLks9bnVsbCk6dGhpcy5IPXRoaXMuTjp0aGlzLkg9YX07RGEucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPURhLnByb3RvdHlwZS5oZTtEYS5wcm90b3R5cGUuZmU9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBIYShhKX07RGEucHJvdG90eXBlLmZvckluPURhLnByb3RvdHlwZS5mZTt2YXIgSGE9ZnVuY3Rpb24oYSl7dGhpcy5LPWE7dGhpcy5IPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMuSC5wdXNoKGIpO3RoaXMuSC5yZXZlcnNlKCl9O0hhLnByb3RvdHlwZS5obz1mdW5jdGlvbigpe2Zvcig7dGhpcy5ILmxlbmd0aD4wOyl7dmFyIGE9dGhpcy5ILnBvcCgpO2lmKGEgaW4gdGhpcy5LKXJldHVybiBhfXJldHVybiBudWxsfTsKSGEucHJvdG90eXBlLmdldE5leHQ9SGEucHJvdG90eXBlLmhvOwp2YXIgSWE9ZnVuY3Rpb24oYSl7dGhpcy5IPW5ldyBEYTt0aGlzLks9YX0sTGE9ZnVuY3Rpb24oYSxiKXtFYShhLkgpO3ZhciBjPWEuSC5SO2lmKGMpcmV0dXJuIEphKGEsInJldHVybiJpbiBjP2NbInJldHVybiJdOmZ1bmN0aW9uKGQpe3JldHVybnt2YWx1ZTpkLGRvbmU6ITB9fSxiLGEuSC5yZXR1cm4pO2EuSC5yZXR1cm4oYik7cmV0dXJuIEthKGEpfSxKYT1mdW5jdGlvbihhLGIsYyxkKXt0cnl7dmFyIGU9Yi5jYWxsKGEuSC5SLGMpO0NhKGUpO2lmKCFlLmRvbmUpcmV0dXJuIGEuSC5mYT0hMSxlO3ZhciBmPWUudmFsdWV9Y2F0Y2goZyl7cmV0dXJuIGEuSC5SPW51bGwsR2EoYS5ILGcpLEthKGEpfWEuSC5SPW51bGw7ZC5jYWxsKGEuSCxmKTtyZXR1cm4gS2EoYSl9LEthPWZ1bmN0aW9uKGEpe2Zvcig7YS5ILkg7KXRyeXt2YXIgYj1hLksoYS5IKTtpZihiKXJldHVybiBhLkguZmE9ITEse3ZhbHVlOmIudmFsdWUsZG9uZTohMX19Y2F0Y2goZCl7YS5ILmphPXZvaWQgMCxHYShhLkgsCmQpfWEuSC5mYT0hMTtpZihhLkguSyl7dmFyIGM9YS5ILks7YS5ILks9bnVsbDtpZihjLmlzRXhjZXB0aW9uKXRocm93IGMuYW87cmV0dXJue3ZhbHVlOmMucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19LE1hPWZ1bmN0aW9uKGEpe3RoaXMubmV4dD1mdW5jdGlvbihiKXt2YXIgYztFYShhLkgpO2EuSC5SP2M9SmEoYSxhLkguUi5uZXh0LGIsYS5ILnlhKTooYS5ILnlhKGIpLGM9S2EoYSkpO3JldHVybiBjfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3ZhciBjO0VhKGEuSCk7YS5ILlI/Yz1KYShhLGEuSC5SWyJ0aHJvdyJdLGIsYS5ILnlhKTooR2EoYS5ILGIpLGM9S2EoYSkpO3JldHVybiBjfTt0aGlzLnJldHVybj1mdW5jdGlvbihiKXtyZXR1cm4gTGEoYSxiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSxOYT1mdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBNYShuZXcgSWEoYikpO3ZhJiZhLnByb3RvdHlwZSYmdmEoYywKYS5wcm90b3R5cGUpO3JldHVybiBjfSxPYT1mdW5jdGlvbigpe2Zvcih2YXIgYT1OdW1iZXIodGhpcyksYj1bXSxjPWE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyliW2MtYV09YXJndW1lbnRzW2NdO3JldHVybiBifSxRYT1mdW5jdGlvbihhKXtyZXR1cm4gYX07LyoKCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KdmFyIFJhPXRoaXN8fHNlbGYsU2E9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7fWMucHJvdG90eXBlPWIucHJvdG90eXBlO2EuRnQ9Yi5wcm90b3R5cGU7YS5wcm90b3R5cGU9bmV3IGM7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YTthLm52PWZ1bmN0aW9uKGQsZSxmKXtmb3IodmFyIGc9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0yKSxoPTI7aDxhcmd1bWVudHMubGVuZ3RoO2grKylnW2gtMl09YXJndW1lbnRzW2hdO3JldHVybiBiLnByb3RvdHlwZVtlXS5hcHBseShkLGcpfX07dmFyIFRhPWZ1bmN0aW9uKGEsYil7dGhpcy50eXBlPWE7dGhpcy5kYXRhPWJ9O3ZhciBVYT1mdW5jdGlvbigpe3RoaXMubWFwPXt9O3RoaXMuSD17fX07VWEucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5tYXBbImR1c3QuIithXX07VWEucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3ZhciBjPSJkdXN0LiIrYTt0aGlzLkguaGFzT3duUHJvcGVydHkoYyl8fCh0aGlzLm1hcFtjXT1iKX07VWEucHJvdG90eXBlLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5tYXAuaGFzT3duUHJvcGVydHkoImR1c3QuIithKX07VWEucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihhKXt2YXIgYj0iZHVzdC4iK2E7dGhpcy5ILmhhc093blByb3BlcnR5KGIpfHxkZWxldGUgdGhpcy5tYXBbYl19Owp2YXIgVmE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkO2ZvcihkIGluIGEubWFwKWlmKGEubWFwLmhhc093blByb3BlcnR5KGQpKXt2YXIgZT1kLnN1YnN0cmluZyg1KTtzd2l0Y2goYil7Y2FzZSAxOmMucHVzaChlKTticmVhaztjYXNlIDI6Yy5wdXNoKGEubWFwW2RdKTticmVhaztjYXNlIDM6Yy5wdXNoKFtlLGEubWFwW2RdXSl9fXJldHVybiBjfTtVYS5wcm90b3R5cGUuRmE9ZnVuY3Rpb24oKXtyZXR1cm4gVmEodGhpcywxKX07VWEucHJvdG90eXBlLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIFZhKHRoaXMsMil9O1VhLnByb3RvdHlwZS5mYz1mdW5jdGlvbigpe3JldHVybiBWYSh0aGlzLDMpfTt2YXIgV2E9ZnVuY3Rpb24oKXt9O1dhLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe307dmFyIFhhPWZ1bmN0aW9uKCl7dGhpcy52YWx1ZT17fTt0aGlzLnByZWZpeD0iZ3RtLiJ9O2s9WGEucHJvdG90eXBlO2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy52YWx1ZVt0aGlzLnByZWZpeCtTdHJpbmcoYSldPWJ9O2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlW3RoaXMucHJlZml4K1N0cmluZyhhKV19O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlLmhhc093blByb3BlcnR5KHRoaXMucHJlZml4K1N0cmluZyhhKSl9O2suZGVsZXRlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucHJlZml4K1N0cmluZyhhKTtyZXR1cm4gdGhpcy52YWx1ZS5oYXNPd25Qcm9wZXJ0eShiKT8oZGVsZXRlIHRoaXMudmFsdWVbYl0sITApOiExfTtrLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy52YWx1ZT17fX07CmsudmFsdWVzPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcztyZXR1cm4gZnVuY3Rpb24gYygpe3ZhciBkLGUsZjtyZXR1cm4gTmEoYyxmdW5jdGlvbihnKXtzd2l0Y2goZy5IKXtjYXNlIDE6Zy52ZygyKSxlPWcuZmUoYS52YWx1ZSk7Y2FzZSA0OmlmKChkPWUuaG8oKSk9PW51bGwpe2cubmQoMik7YnJlYWt9aWYoIWEudmFsdWUuaGFzT3duUHJvcGVydHkoZCkpe2cubmQoNCk7YnJlYWt9Zj1RYTtyZXR1cm4gZy5hYyhhLnZhbHVlW2RdLDgpO2Nhc2UgODpmKGcuamEpO2cubmQoNCk7YnJlYWs7Y2FzZSAyOmcua2QoKSxnLmhlKDApfX0pfSgpfTtoYS5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhYYS5wcm90b3R5cGUse3NpemU6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlKS5sZW5ndGh9fX0pOwpmdW5jdGlvbiBZYSgpe3RyeXtpZihNYXApcmV0dXJuIG5ldyBNYXB9Y2F0Y2goYSl7fXJldHVybiBuZXcgWGF9O3ZhciBaYT1mdW5jdGlvbigpe3RoaXMudmFsdWVzPVtdfTtaYS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEpe3RoaXMudmFsdWVzLmluZGV4T2YoYSk9PT0tMSYmdGhpcy52YWx1ZXMucHVzaChhKX07WmEucHJvdG90eXBlLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy52YWx1ZXMuaW5kZXhPZihhKT4tMX07dmFyICRhPWZ1bmN0aW9uKGEsYil7dGhpcy5mYT1hO3RoaXMucGFyZW50PWI7dGhpcy5SPXRoaXMuSz12b2lkIDA7dGhpcy5IYj0hMTt0aGlzLk49ZnVuY3Rpb24oZCxlLGYpe3JldHVybiBkLmFwcGx5KGUsZil9O3RoaXMuSD1ZYSgpO3ZhciBjO2E6e3RyeXtpZihTZXQpe2M9bmV3IFNldDticmVhayBhfX1jYXRjaChkKXt9Yz1uZXcgWmF9dGhpcy5aPWN9OyRhLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiKXthYih0aGlzLGEsYiwhMSl9OyRhLnByb3RvdHlwZS5RaD1mdW5jdGlvbihhLGIpe2FiKHRoaXMsYSxiLCEwKX07dmFyIGFiPWZ1bmN0aW9uKGEsYixjLGQpe2EuSGJ8fGEuWi5oYXMoYil8fChkJiZhLlouYWRkKGIpLGEuSC5zZXQoYixjKSl9O2s9JGEucHJvdG90eXBlOwprLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuSGJ8fCghdGhpcy5ILmhhcyhhKSYmdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmhhcyhhKT90aGlzLnBhcmVudC5zZXQoYSxiKTp0aGlzLlouaGFzKGEpfHx0aGlzLkguc2V0KGEsYikpfTtrLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ILmhhcyhhKT90aGlzLkguZ2V0KGEpOnRoaXMucGFyZW50P3RoaXMucGFyZW50LmdldChhKTp2b2lkIDB9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiEhdGhpcy5ILmhhcyhhKXx8ISghdGhpcy5wYXJlbnR8fCF0aGlzLnBhcmVudC5oYXMoYSkpfTtrLndiPWZ1bmN0aW9uKCl7dmFyIGE9bmV3ICRhKHRoaXMuZmEsdGhpcyk7dGhpcy5LJiZhLlFiKHRoaXMuSyk7YS5zZCh0aGlzLk4pO2EudWUodGhpcy5SKTtyZXR1cm4gYX07ay5qZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZhfTtrLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSz1hfTtrLmZvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuS307Cmsuc2Q9ZnVuY3Rpb24oYSl7dGhpcy5OPWF9O2suUGo9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5IYj0hMH07ay51ZT1mdW5jdGlvbihhKXt0aGlzLlI9YX07ay54Yj1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJ9O3ZhciBiYj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7ZD1FcnJvci5jYWxsKHRoaXMsYS5tZXNzYWdlKTt0aGlzLm1lc3NhZ2U9ZC5tZXNzYWdlOyJzdGFjayJpbiBkJiYodGhpcy5zdGFjaz1kLnN0YWNrKTt0aGlzLnZvPWE7dGhpcy5Tbj1jPT09dm9pZCAwPyExOmM7dGhpcy5LPVtdO3RoaXMuSD1ifTt3YShiYixFcnJvcik7dmFyIGNiPWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgYmI/YTpuZXcgYmIoYSx2b2lkIDAsITApfTt2YXIgZGI9WWEoKTtmdW5jdGlvbiBlYihhLGIpe2Zvcih2YXIgYyxkPW0oYiksZT1kLm5leHQoKTshZS5kb25lJiYhKGM9ZmIoYSxlLnZhbHVlKSxjIGluc3RhbmNlb2YgVGEpO2U9ZC5uZXh0KCkpO3JldHVybiBjfWZ1bmN0aW9uIGZiKGEsYil7dHJ5e3ZhciBjPWJbMF0sZD1iLnNsaWNlKDEpLGU9U3RyaW5nKGMpLGY9ZGIuaGFzKGUpP2RiLmdldChlKTphLmdldChlKTtpZighZnx8dHlwZW9mIGYuaW52b2tlIT09ImZ1bmN0aW9uIil0aHJvdyBjYihFcnJvcigiQXR0ZW1wdGluZyB0byBleGVjdXRlIG5vbi1mdW5jdGlvbiAiK2JbMF0rIi4iKSk7cmV0dXJuIGYuYXBwbHkoYSxkKX1jYXRjaChoKXt2YXIgZz1hLmZvKCk7ZyYmZyhoLGIuY29udGV4dD97aWQ6YlswXSxsaW5lOmIuY29udGV4dC5saW5lfTpudWxsKTt0aHJvdyBoO319O3ZhciBnYj1mdW5jdGlvbigpe3RoaXMuSz1uZXcgV2E7dGhpcy5IPW5ldyAkYSh0aGlzLkspfTtrPWdiLnByb3RvdHlwZTtrLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuS307ay5RYj1mdW5jdGlvbihhKXt0aGlzLkguUWIoYSl9O2suc2Q9ZnVuY3Rpb24oYSl7dGhpcy5ILnNkKGEpfTtrLmV4ZWN1dGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucmsoW2FdLmNvbmNhdCh3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpKX07ay5yaz1mdW5jdGlvbigpe2Zvcih2YXIgYSxiPW0oT2EuYXBwbHkoMCxhcmd1bWVudHMpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlhPWZiKHRoaXMuSCxjLnZhbHVlKTtyZXR1cm4gYX07ay5KcT1mdW5jdGlvbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyksYz10aGlzLkgud2IoKTtjLnVlKGEpO2Zvcih2YXIgZCxlPW0oYiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpZD1mYihjLGYudmFsdWUpO3JldHVybiBkfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5ILlphKCl9O3ZhciBoYj1mdW5jdGlvbihhLGIpe3RoaXMuUj1hO3RoaXMucGFyZW50PWI7dGhpcy5OPXRoaXMuSD12b2lkIDA7dGhpcy5IYj0hMTt0aGlzLks9ZnVuY3Rpb24oYyxkLGUpe3JldHVybiBjLmFwcGx5KGQsZSl9O3RoaXMudmFsdWVzPW5ldyBVYX07aGIucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGIpe2piKHRoaXMsYSxiLCExKX07aGIucHJvdG90eXBlLlFoPWZ1bmN0aW9uKGEsYil7amIodGhpcyxhLGIsITApfTt2YXIgamI9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoIWEuSGIpaWYoZCl7dmFyIGU9YS52YWx1ZXM7ZS5zZXQoYixjKTtlLkhbImR1c3QuIitiXT0hMH1lbHNlIGEudmFsdWVzLnNldChiLGMpfTtrPWhiLnByb3RvdHlwZTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuSGJ8fCghdGhpcy52YWx1ZXMuaGFzKGEpJiZ0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuaGFzKGEpP3RoaXMucGFyZW50LnNldChhLGIpOnRoaXMudmFsdWVzLnNldChhLGIpKX07CmsuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnZhbHVlcy5oYXMoYSk/dGhpcy52YWx1ZXMuZ2V0KGEpOnRoaXMucGFyZW50P3RoaXMucGFyZW50LmdldChhKTp2b2lkIDB9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiEhdGhpcy52YWx1ZXMuaGFzKGEpfHwhKCF0aGlzLnBhcmVudHx8IXRoaXMucGFyZW50LmhhcyhhKSl9O2sud2I9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgaGIodGhpcy5SLHRoaXMpO3RoaXMuSCYmYS5RYih0aGlzLkgpO2Euc2QodGhpcy5LKTthLnVlKHRoaXMuTik7cmV0dXJuIGF9O2suamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SfTtrLlFiPWZ1bmN0aW9uKGEpe3RoaXMuSD1hfTtrLmZvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07ay5zZD1mdW5jdGlvbihhKXt0aGlzLks9YX07ay5Qaj1mdW5jdGlvbigpe3JldHVybiB0aGlzLkt9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLkhiPSEwfTtrLnVlPWZ1bmN0aW9uKGEpe3RoaXMuTj1hfTtrLnhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTn07dmFyIGtiPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMTt0aGlzLmxhPW5ldyBVYX07az1rYi5wcm90b3R5cGU7ay5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuZ2V0KGEpfTtrLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTmF8fHRoaXMubGEuc2V0KGEsYil9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmhhcyhhKX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2suRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5GYSgpfTtrLmhjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuaGMoKX07ay5mYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmZjKCl9O2suWmE9ZnVuY3Rpb24oKXt0aGlzLk5hPSEwfTtrLkhiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTmF9O2Z1bmN0aW9uIGxiKCl7Zm9yKHZhciBhPW1iLGI9e30sYz0wO2M8YS5sZW5ndGg7KytjKWJbYVtjXV09YztyZXR1cm4gYn1mdW5jdGlvbiBuYigpe3ZhciBhPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI7YSs9YS50b0xvd2VyQ2FzZSgpKyIwMTIzNDU2Nzg5LV8iO3JldHVybiBhKyIuIn12YXIgbWIsb2I7ZnVuY3Rpb24gcGIoYSl7bWI9bWJ8fG5iKCk7b2I9b2J8fGxiKCk7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrPTMpe3ZhciBkPWMrMTxhLmxlbmd0aCxlPWMrMjxhLmxlbmd0aCxmPWEuY2hhckNvZGVBdChjKSxnPWQ/YS5jaGFyQ29kZUF0KGMrMSk6MCxoPWU/YS5jaGFyQ29kZUF0KGMrMik6MCxsPWY+PjIsbj0oZiYzKTw8NHxnPj40LHA9KGcmMTUpPDwyfGg+PjYscT1oJjYzO2V8fChxPTY0LGR8fChwPTY0KSk7Yi5wdXNoKG1iW2xdLG1iW25dLG1iW3BdLG1iW3FdKX1yZXR1cm4gYi5qb2luKCIiKX0KZnVuY3Rpb24gcWIoYSl7ZnVuY3Rpb24gYihsKXtmb3IoO2Q8YS5sZW5ndGg7KXt2YXIgbj1hLmNoYXJBdChkKyspLHA9b2Jbbl07aWYocCE9bnVsbClyZXR1cm4gcDtpZighL15bXHNceGEwXSokLy50ZXN0KG4pKXRocm93IEVycm9yKCJVbmtub3duIGJhc2U2NCBlbmNvZGluZyBhdCBjaGFyOiAiK24pO31yZXR1cm4gbH1tYj1tYnx8bmIoKTtvYj1vYnx8bGIoKTtmb3IodmFyIGM9IiIsZD0wOzspe3ZhciBlPWIoLTEpLGY9YigwKSxnPWIoNjQpLGg9Yig2NCk7aWYoaD09PTY0JiZlPT09LTEpcmV0dXJuIGM7Yys9U3RyaW5nLmZyb21DaGFyQ29kZShlPDwyfGY+PjQpO2chPT02NCYmKGMrPVN0cmluZy5mcm9tQ2hhckNvZGUoZjw8NCYyNDB8Zz4+MiksaCE9PTY0JiYoYys9U3RyaW5nLmZyb21DaGFyQ29kZShnPDw2JjE5MnxoKSkpfX07dmFyIHJiPXt9O2Z1bmN0aW9uIHNiKGEsYil7dmFyIGM9cmJbYV07Y3x8KGM9cmJbYV09W10pO2NbYl09ITB9ZnVuY3Rpb24gdGIoKXtkZWxldGUgcmIuR0E0X0VWRU5UfWZ1bmN0aW9uIHViKCl7dmFyIGE9dmIuSC5zbGljZSgpO3JiLkdUQUdfRVZFTlRfRkVBVFVSRV9DSEFOTkVMPWF9ZnVuY3Rpb24gd2IoYSl7Zm9yKHZhciBiPVtdLGM9MCxkPTA7ZDxhLmxlbmd0aDtkKyspZCU4PT09MCYmZD4wJiYoYi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYykpLGM9MCksYVtkXSYmKGN8PTE8PGQlOCk7Yz4wJiZiLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShjKSk7cmV0dXJuIHBiKGIuam9pbigiIikpLnJlcGxhY2UoL1wuKyQvLCIiKX07ZnVuY3Rpb24geGIoKXt9ZnVuY3Rpb24geWIoYSl7cmV0dXJuIHR5cGVvZiBhPT09ImZ1bmN0aW9uIn1mdW5jdGlvbiB6YihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn1mdW5jdGlvbiBBYihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIiYmIWlzTmFOKGEpfWZ1bmN0aW9uIEJiKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpP2E6W2FdfWZ1bmN0aW9uIENiKGEsYil7aWYoYSYmQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihhW2NdJiZiKGFbY10pKXJldHVybiBhW2NdfWZ1bmN0aW9uIERiKGEsYil7aWYoIUFiKGEpfHwhQWIoYil8fGE+YilhPTAsYj0yMTQ3NDgzNjQ3O3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGItYSsxKSthKX0KZnVuY3Rpb24gRWIoYSxiKXtmb3IodmFyIGM9bmV3IEZiLGQ9MDtkPGEubGVuZ3RoO2QrKyljLnNldChhW2RdLCEwKTtmb3IodmFyIGU9MDtlPGIubGVuZ3RoO2UrKylpZihjLmdldChiW2VdKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBHYihhLGIpe2Zvcih2YXIgYyBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGMpJiZiKGMsYVtjXSl9ZnVuY3Rpb24gSGIoYSl7cmV0dXJuISFhJiYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpPT09IltvYmplY3QgQXJndW1lbnRzXSJ8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLCJjYWxsZWUiKSl9ZnVuY3Rpb24gSWIoYSl7cmV0dXJuIE1hdGgucm91bmQoTnVtYmVyKGEpKXx8MH1mdW5jdGlvbiBKYihhKXtyZXR1cm4iZmFsc2UiPT09U3RyaW5nKGEpLnRvTG93ZXJDYXNlKCk/ITE6ISFhfQpmdW5jdGlvbiBLYihhKXt2YXIgYj1bXTtpZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWIucHVzaChTdHJpbmcoYVtjXSkpO3JldHVybiBifWZ1bmN0aW9uIExiKGEpe3JldHVybiBhP2EucmVwbGFjZSgvXlxzK3xccyskL2csIiIpOiIifWZ1bmN0aW9uIE1iKCl7cmV0dXJuIG5ldyBEYXRlKERhdGUubm93KCkpfWZ1bmN0aW9uIE5iKCl7cmV0dXJuIE1iKCkuZ2V0VGltZSgpfXZhciBGYj1mdW5jdGlvbigpe3RoaXMucHJlZml4PSJndG0uIjt0aGlzLnZhbHVlcz17fX07RmIucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMudmFsdWVzW3RoaXMucHJlZml4K2FdPWJ9O0ZiLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWVzW3RoaXMucHJlZml4K2FdfTtGYi5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZ2V0KGEpIT09dm9pZCAwfTsKZnVuY3Rpb24gT2IoYSxiLGMpe3JldHVybiBhJiZhLmhhc093blByb3BlcnR5KGIpP2FbYl06Y31mdW5jdGlvbiBQYihhKXt2YXIgYj1hO3JldHVybiBmdW5jdGlvbigpe2lmKGIpe3ZhciBjPWI7Yj12b2lkIDA7dHJ5e2MoKX1jYXRjaChkKXt9fX19ZnVuY3Rpb24gUWIoYSxiKXtmb3IodmFyIGMgaW4gYiliLmhhc093blByb3BlcnR5KGMpJiYoYVtjXT1iW2NdKX1mdW5jdGlvbiBSYihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhLmxlbmd0aDtkKyspYy5wdXNoKGFbZF0pLGMucHVzaC5hcHBseShjLGJbYVtkXV18fFtdKTtyZXR1cm4gY31mdW5jdGlvbiBTYihhLGIpe3JldHVybiBhLmxlbmd0aD49Yi5sZW5ndGgmJmEuc3Vic3RyaW5nKDAsYi5sZW5ndGgpPT09Yn1mdW5jdGlvbiBUYihhLGIpe3JldHVybiBhLmxlbmd0aD49Yi5sZW5ndGgmJmEuc3Vic3RyaW5nKGEubGVuZ3RoLWIubGVuZ3RoLGEubGVuZ3RoKT09PWJ9CmZ1bmN0aW9uIFViKGEsYixjKXtjPWN8fFtdO2Zvcih2YXIgZD1hLGU9MDtlPGIubGVuZ3RoLTE7ZSsrKXtpZighZC5oYXNPd25Qcm9wZXJ0eShiW2VdKSlyZXR1cm47ZD1kW2JbZV1dO2lmKGMuaW5kZXhPZihkKT49MClyZXR1cm59cmV0dXJuIGR9ZnVuY3Rpb24gVmIoYSxiKXtmb3IodmFyIGM9e30sZD1jLGU9YS5zcGxpdCgiLiIpLGY9MDtmPGUubGVuZ3RoLTE7ZisrKWQ9ZFtlW2ZdXT17fTtkW2VbZS5sZW5ndGgtMV1dPWI7cmV0dXJuIGN9dmFyIFdiPS9eXHd7MSw5fSQvO2Z1bmN0aW9uIFliKGEsYil7YT1hfHx7fTtiPWJ8fCIsIjt2YXIgYz1bXTtHYihhLGZ1bmN0aW9uKGQsZSl7V2IudGVzdChkKSYmZSYmYy5wdXNoKGQpfSk7cmV0dXJuIGMuam9pbihiKX0KZnVuY3Rpb24gWmIoYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YS5jaGFyQ29kZUF0KGMpO2Q8MTI4P2IucHVzaChkKTpkPDIwNDg/Yi5wdXNoKDE5MnxkPj42LDEyOHxkJjYzKTpkPDU1Mjk2fHxkPj01NzM0ND9iLnB1c2goMjI0fGQ+PjEyLDEyOHxkPj42JjYzLDEyOHxkJjYzKTooZD02NTUzNisoKGQmMTAyMyk8PDEwfGEuY2hhckNvZGVBdCgrK2MpJjEwMjMpLGIucHVzaCgyNDB8ZD4+MTgsMTI4fGQ+PjEyJjYzLDEyOHxkPj42JjYzLDEyOHxkJjYzKSl9cmV0dXJuIG5ldyBVaW50OEFycmF5KGIpfWZ1bmN0aW9uICRiKGEpe2lmKCFhKXJldHVybiBhO3ZhciBiPWE7dHJ5e2I9ZGVjb2RlVVJJQ29tcG9uZW50KGEpfWNhdGNoKGQpe312YXIgYz1iLnNwbGl0KCIsIik7cmV0dXJuIGMubGVuZ3RoPT09MiYmY1swXT09PWNbMV0/Y1swXTphfQpmdW5jdGlvbiBhYyhhLGIsYyl7ZnVuY3Rpb24gZChuKXt2YXIgcD1uLnNwbGl0KCI9IilbMF07aWYoYS5pbmRleE9mKHApPDApcmV0dXJuIG47aWYoYyE9PXZvaWQgMClyZXR1cm4gcCsiPSIrY31mdW5jdGlvbiBlKG4pe3JldHVybiBuLnNwbGl0KCImIikubWFwKGQpLmZpbHRlcihmdW5jdGlvbihwKXtyZXR1cm4gcCE9PXZvaWQgMH0pLmpvaW4oIiYiKX12YXIgZj1iLmhyZWYuc3BsaXQoL1s/I10vKVswXSxnPWIuc2VhcmNoLGg9Yi5oYXNoO2dbMF09PT0iPyImJihnPWcuc3Vic3RyaW5nKDEpKTtoWzBdPT09IiMiJiYoaD1oLnN1YnN0cmluZygxKSk7Zz1lKGcpO2g9ZShoKTtnIT09IiImJihnPSI/IitnKTtoIT09IiImJihoPSIjIitoKTt2YXIgbD0iIitmK2craDtsW2wubGVuZ3RoLTFdPT09Ii8iJiYobD1sLnN1YnN0cmluZygwLGwubGVuZ3RoLTEpKTtyZXR1cm4gbH0KZnVuY3Rpb24gYmMoYSl7Zm9yKHZhciBiPTA7YjwzOysrYil0cnl7dmFyIGM9ZGVjb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UoL1wrL2csIiAiKTtpZihjPT09YSlicmVhazthPWN9Y2F0Y2goZCl7cmV0dXJuIiJ9cmV0dXJuIGF9ZnVuY3Rpb24gY2MoKXt2YXIgYT1BLGI7YTp7dmFyIGM9YS5jcnlwdG98fGEubXNDcnlwdG87aWYoYyYmYy5nZXRSYW5kb21WYWx1ZXMpdHJ5e3ZhciBkPW5ldyBVaW50OEFycmF5KDI1KTtjLmdldFJhbmRvbVZhbHVlcyhkKTtiPWJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdyhkKSkpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPSskLywiIik7YnJlYWsgYX1jYXRjaChlKXt9Yj12b2lkIDB9cmV0dXJuIGJ9Oy8qCgogQ29weXJpZ2h0IEdvb2dsZSBMTEMKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCnZhciBkYz1nbG9iYWxUaGlzLnRydXN0ZWRUeXBlcyxlYztmdW5jdGlvbiBmYygpe3ZhciBhPW51bGw7aWYoIWRjKXJldHVybiBhO3RyeXt2YXIgYj1mdW5jdGlvbihjKXtyZXR1cm4gY307YT1kYy5jcmVhdGVQb2xpY3koImdvb2cjaHRtbCIse2NyZWF0ZUhUTUw6YixjcmVhdGVTY3JpcHQ6YixjcmVhdGVTY3JpcHRVUkw6Yn0pfWNhdGNoKGMpe31yZXR1cm4gYX1mdW5jdGlvbiBoYygpe2VjPT09dm9pZCAwJiYoZWM9ZmMoKSk7cmV0dXJuIGVjfTt2YXIgaWM9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O2ljLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkgrIiJ9O2Z1bmN0aW9uIGpjKGEpe3ZhciBiPWEsYz1oYygpLGQ9Yz9jLmNyZWF0ZVNjcmlwdFVSTChiKTpiO3JldHVybiBuZXcgaWMoZCl9ZnVuY3Rpb24ga2MoYSl7aWYoYSBpbnN0YW5jZW9mIGljKXJldHVybiBhLkg7dGhyb3cgRXJyb3IoIiIpO307dmFyIGxjPUFhKFsiIl0pLG1jPXphKFsiXHgwMCJdLFsiXFwwIl0pLG5jPXphKFsiXG4iXSxbIlxcbiJdKSxvYz16YShbIlx4MDAiXSxbIlxcdTAwMDAiXSk7ZnVuY3Rpb24gcGMoYSl7cmV0dXJuIGEudG9TdHJpbmcoKS5pbmRleE9mKCJgIik9PT0tMX1wYyhmdW5jdGlvbihhKXtyZXR1cm4gYShsYyl9KXx8cGMoZnVuY3Rpb24oYSl7cmV0dXJuIGEobWMpfSl8fHBjKGZ1bmN0aW9uKGEpe3JldHVybiBhKG5jKX0pfHxwYyhmdW5jdGlvbihhKXtyZXR1cm4gYShvYyl9KTt2YXIgcWM9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O3FjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkh9O3ZhciByYz1mdW5jdGlvbihhKXt0aGlzLkpzPWF9O2Z1bmN0aW9uIHNjKGEpe3JldHVybiBuZXcgcmMoZnVuY3Rpb24oYil7cmV0dXJuIGIuc3Vic3RyKDAsYS5sZW5ndGgrMSkudG9Mb3dlckNhc2UoKT09PWErIjoifSl9dmFyIHRjPVtzYygiZGF0YSIpLHNjKCJodHRwIiksc2MoImh0dHBzIiksc2MoIm1haWx0byIpLHNjKCJmdHAiKSxuZXcgcmMoZnVuY3Rpb24oYSl7cmV0dXJuL15bXjpdKihbLz8jXXwkKS8udGVzdChhKX0pXTtmdW5jdGlvbiB1YyhhKXt2YXIgYjtiPWI9PT12b2lkIDA/dGM6YjtpZihhIGluc3RhbmNlb2YgcWMpcmV0dXJuIGE7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDsrK2Mpe3ZhciBkPWJbY107aWYoZCBpbnN0YW5jZW9mIHJjJiZkLkpzKGEpKXJldHVybiBuZXcgcWMoYSl9fXZhciB2Yz0vXlxzKig/IWphdmFzY3JpcHQ6KSg/OltcdysuLV0rOnxbXjovPyNdKig/OlsvPyNdfCQpKS9pOwpmdW5jdGlvbiB3YyhhKXt2YXIgYjtpZihhIGluc3RhbmNlb2YgcWMpaWYoYSBpbnN0YW5jZW9mIHFjKWI9YS5IO2Vsc2UgdGhyb3cgRXJyb3IoIiIpO2Vsc2UgYj12Yy50ZXN0KGEpP2E6dm9pZCAwO3JldHVybiBifTtmdW5jdGlvbiB4YyhhLGIpe3ZhciBjPXdjKGIpO2MhPT12b2lkIDAmJihhLmFjdGlvbj1jKX07ZnVuY3Rpb24geWMoYSxiKXt0aHJvdyBFcnJvcihiPT09dm9pZCAwPyJ1bmV4cGVjdGVkIHZhbHVlICIrYSsiISI6Yik7fTt2YXIgemM9ZnVuY3Rpb24oYSl7dGhpcy5IPWF9O3pjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkgrIiJ9O3ZhciBCYz1mdW5jdGlvbigpe3RoaXMuSD1BY1swXS50b0xvd2VyQ2FzZSgpfTtCYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5IfTtmdW5jdGlvbiBDYyhhLGIpe3ZhciBjPVtuZXcgQmNdO2lmKGMubGVuZ3RoPT09MCl0aHJvdyBFcnJvcigiIik7dmFyIGQ9Yy5tYXAoZnVuY3Rpb24oZil7dmFyIGc7aWYoZiBpbnN0YW5jZW9mIEJjKWc9Zi5IO2Vsc2UgdGhyb3cgRXJyb3IoIiIpO3JldHVybiBnfSksZT1iLnRvTG93ZXJDYXNlKCk7aWYoZC5ldmVyeShmdW5jdGlvbihmKXtyZXR1cm4gZS5pbmRleE9mKGYpIT09MH0pKXRocm93IEVycm9yKCdBdHRyaWJ1dGUgIicrYisnIiBkb2VzIG5vdCBtYXRjaCBhbnkgb2YgdGhlIGFsbG93ZWQgcHJlZml4ZXMuJyk7YS5zZXRBdHRyaWJ1dGUoYiwidHJ1ZSIpfTt2YXIgRGM9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiB0eXBlb2YgYiE9PSJzdHJpbmcifHxiLmxlbmd0aCE9MT8tMTphLmluZGV4T2YoYiwwKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihjIGluIGEmJmFbY109PT1iKXJldHVybiBjO3JldHVybi0xfTsiQVJUSUNMRSBTRUNUSU9OIE5BViBBU0lERSBIMSBIMiBIMyBINCBINSBINiBIRUFERVIgRk9PVEVSIEFERFJFU1MgUCBIUiBQUkUgQkxPQ0tRVU9URSBPTCBVTCBMSCBMSSBETCBEVCBERCBGSUdVUkUgRklHQ0FQVElPTiBNQUlOIERJViBFTSBTVFJPTkcgU01BTEwgUyBDSVRFIFEgREZOIEFCQlIgUlVCWSBSQiBSVCBSVEMgUlAgREFUQSBUSU1FIENPREUgVkFSIFNBTVAgS0JEIFNVQiBTVVAgSSBCIFUgTUFSSyBCREkgQkRPIFNQQU4gQlIgV0JSIE5PQlIgSU5TIERFTCBQSUNUVVJFIFBBUkFNIFRSQUNLIE1BUCBUQUJMRSBDQVBUSU9OIENPTEdST1VQIENPTCBUQk9EWSBUSEVBRCBURk9PVCBUUiBURCBUSCBTRUxFQ1QgREFUQUxJU1QgT1BUR1JPVVAgT1BUSU9OIE9VVFBVVCBQUk9HUkVTUyBNRVRFUiBGSUVMRFNFVCBMRUdFTkQgREVUQUlMUyBTVU1NQVJZIE1FTlUgRElBTE9HIFNMT1QgQ0FOVkFTIEZPTlQgQ0VOVEVSIEFDUk9OWU0gQkFTRUZPTlQgQklHIERJUiBIR1JPVVAgU1RSSUtFIFRUIi5zcGxpdCgiICIpLmNvbmNhdChbIkJVVFRPTiIsCiJJTlBVVCJdKTtmdW5jdGlvbiBFYyhhKXtyZXR1cm4gYT09PW51bGw/Im51bGwiOmE9PT12b2lkIDA/InVuZGVmaW5lZCI6YX07dmFyIEE9d2luZG93LEZjPVtdLEdjPXdpbmRvdy5oaXN0b3J5LEI9ZG9jdW1lbnQsSGM9bmF2aWdhdG9yO2Z1bmN0aW9uIEljKCl7dmFyIGE7dHJ5e2E9SGMuc2VydmljZVdvcmtlcn1jYXRjaChiKXtyZXR1cm59cmV0dXJuIGF9dmFyIEpjPUIuY3VycmVudFNjcmlwdCxLYz1KYyYmSmMuc3JjO2Z1bmN0aW9uIE1jKGEsYil7dmFyIGM9QSxkPWNbYV07Y1thXT1kPT09dm9pZCAwP2I6ZDtyZXR1cm4gY1thXX1mdW5jdGlvbiBOYyhhKXtyZXR1cm4oSGMudXNlckFnZW50fHwiIikuaW5kZXhPZihhKSE9PS0xfWZ1bmN0aW9uIE9jKCl7cmV0dXJuIE5jKCJGaXJlZm94Iil8fE5jKCJGeGlPUyIpfWZ1bmN0aW9uIFBjKCl7cmV0dXJuKE5jKCJHU0EiKXx8TmMoIkdvb2dsZUFwcCIpKSYmKE5jKCJpUGhvbmUiKXx8TmMoImlQYWQiKSl9ZnVuY3Rpb24gUWMoKXtyZXR1cm4gTmMoIkVkZy8iKXx8TmMoIkVkZ0EvIil8fE5jKCJFZGdpT1MvIil9CnZhciBSYz17YXN5bmM6MSxub25jZToxLG9uZXJyb3I6MSxvbmxvYWQ6MSxzcmM6MSx0eXBlOjF9LFNjPXtoZWlnaHQ6MSxvbmxvYWQ6MSxzcmM6MSxzdHlsZToxLHdpZHRoOjF9O2Z1bmN0aW9uIFRjKGEsYixjKXtiJiZHYihiLGZ1bmN0aW9uKGQsZSl7ZD1kLnRvTG93ZXJDYXNlKCk7Yy5oYXNPd25Qcm9wZXJ0eShkKXx8YS5zZXRBdHRyaWJ1dGUoZCxlKX0pfQpmdW5jdGlvbiBVYyhhLGIsYyxkLGUpe3ZhciBmPUIuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7VGMoZixkLFJjKTtmLnR5cGU9InRleHQvamF2YXNjcmlwdCI7Zi5hc3luYz1kJiZkLmFzeW5jPT09ITE/ITE6ITA7dmFyIGc7Zz1qYyhFYyhhKSk7Zi5zcmM9a2MoZyk7dmFyIGgsbD1mLm93bmVyRG9jdW1lbnQ7bD1sPT09dm9pZCAwP2RvY3VtZW50Omw7dmFyIG4scCxxPShwPShuPWwpLnF1ZXJ5U2VsZWN0b3IpPT1udWxsP3ZvaWQgMDpwLmNhbGwobiwic2NyaXB0W25vbmNlXSIpOyhoPXE9PW51bGw/IiI6cS5ub25jZXx8cS5nZXRBdHRyaWJ1dGUoIm5vbmNlIil8fCIiKSYmZi5zZXRBdHRyaWJ1dGUoIm5vbmNlIixoKTtiJiYoZi5vbmxvYWQ9Yik7YyYmKGYub25lcnJvcj1jKTtlP2UuYXBwZW5kQ2hpbGQoZik6VmMuQnMoZik7cmV0dXJuIGZ9CmZ1bmN0aW9uIFdjKCl7aWYoS2Mpe3ZhciBhPUtjLnRvTG93ZXJDYXNlKCk7aWYoYS5pbmRleE9mKCJodHRwczovLyIpPT09MClyZXR1cm4gMjtpZihhLmluZGV4T2YoImh0dHA6Ly8iKT09PTApcmV0dXJuIDN9cmV0dXJuIDF9ZnVuY3Rpb24gWGMoYSxiLGMsZCxlLGYpe2Y9Zj09PXZvaWQgMD8hMDpmO3ZhciBnPWUsaD0hMTtnfHwoZz1CLmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLGg9ITApO1RjKGcsYyxTYyk7ZCYmR2IoZCxmdW5jdGlvbihuLHApe2cuZGF0YXNldFtuXT1wfSk7ZiYmKGcuaGVpZ2h0PSIwIixnLndpZHRoPSIwIixnLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGcuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIik7YSE9PXZvaWQgMCYmKGcuc3JjPWEpO2lmKGgpe3ZhciBsPUIuYm9keSYmQi5ib2R5Lmxhc3RDaGlsZHx8Qi5ib2R5fHxCLmhlYWQ7bC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnLGwpfWImJihnLm9ubG9hZD1iKTtyZXR1cm4gZ30KZnVuY3Rpb24gWmMoKXtyZXR1cm4gVmMuRXIuYXBwbHkoVmMsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX1mdW5jdGlvbiAkYyhhLGIsYyxkKXthLmFkZEV2ZW50TGlzdGVuZXImJmEuYWRkRXZlbnRMaXN0ZW5lcihiLGMsISFkKX1mdW5jdGlvbiBhZChhLGIsYyl7YS5yZW1vdmVFdmVudExpc3RlbmVyJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjLCExKX1mdW5jdGlvbiBiZChhKXtBLnNldFRpbWVvdXQoYSwwKX1mdW5jdGlvbiBjZChhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKSxkLGU9KGQ9QSkuc2V0SW50ZXJ2YWwuYXBwbHkoZCxbYSxiXS5jb25jYXQodyhjKSkpO0ZjLnB1c2goZSk7cmV0dXJuIGV9CmZ1bmN0aW9uIGRkKGEpe3ZhciBiPUE7eWIoYi5xdWV1ZU1pY3JvdGFzayk/Yi5xdWV1ZU1pY3JvdGFzayhhKTp5YihiLlByb21pc2UpJiZiLlByb21pc2UucmVzb2x2ZT9iLlByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXthKCl9KS5jYXRjaChmdW5jdGlvbigpe30pOmJkKGEpfWZ1bmN0aW9uIGVkKGEsYil7cmV0dXJuIGEmJmImJmEuYXR0cmlidXRlcyYmYS5hdHRyaWJ1dGVzW2JdP2EuYXR0cmlidXRlc1tiXS52YWx1ZTpudWxsfWZ1bmN0aW9uIGZkKGEpe3ZhciBiPWEuaW5uZXJUZXh0fHxhLnRleHRDb250ZW50fHwiIjtiJiZiIT09IiAiJiYoYj1iLnJlcGxhY2UoL15bXHNceGEwXSsvZywiIiksYj1iLnJlcGxhY2UoL1tcc1x4YTBdKyQvZywiIikpO2ImJihiPWIucmVwbGFjZSgvKFx4YTArfFxzezIsfXxcbnxcclx0KS9nLCIgIikpO3JldHVybiBifQpmdW5jdGlvbiBnZChhKXt2YXIgYj1CLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGM9YixkLGU9RWMoIkE8ZGl2PiIrYSsiPC9kaXY+IiksZj1oYygpLGc9Zj9mLmNyZWF0ZUhUTUwoZSk6ZTtkPW5ldyB6YyhnKTtpZihjLm5vZGVUeXBlPT09MSYmL14oc2NyaXB0fHN0eWxlKSQvaS50ZXN0KGMudGFnTmFtZSkpdGhyb3cgRXJyb3IoIiIpO3ZhciBoO2lmKGQgaW5zdGFuY2VvZiB6YyloPWQuSDtlbHNlIHRocm93IEVycm9yKCIiKTtjLmlubmVySFRNTD1oO2I9Yi5sYXN0Q2hpbGQ7Zm9yKHZhciBsPVtdO2ImJmIuZmlyc3RDaGlsZDspbC5wdXNoKGIucmVtb3ZlQ2hpbGQoYi5maXJzdENoaWxkKSk7cmV0dXJuIGx9CmZ1bmN0aW9uIGhkKGEsYixjKXtjPWN8fDEwMDtmb3IodmFyIGQ9e30sZT0wO2U8Yi5sZW5ndGg7ZSsrKWRbYltlXV09ITA7Zm9yKHZhciBmPWEsZz0wO2YmJmc8PWM7ZysrKXtpZihkW1N0cmluZyhmLnRhZ05hbWUpLnRvTG93ZXJDYXNlKCldKXJldHVybiBmO2Y9Zi5wYXJlbnRFbGVtZW50fXJldHVybiBudWxsfWZ1bmN0aW9uIGlkKGEsYixjKXt2YXIgZDt0cnl7ZD1IYy5zZW5kQmVhY29uJiZIYy5zZW5kQmVhY29uKGEpfWNhdGNoKGUpe3NiKCJUQUdHSU5HIiwxNSl9ZD9iPT1udWxsfHxiKCk6WmMoYSxiLGMpfWZ1bmN0aW9uIGpkKGEsYil7dHJ5e2lmKEhjLnNlbmRCZWFjb24hPT12b2lkIDApcmV0dXJuIEhjLnNlbmRCZWFjb24oYSxiKX1jYXRjaChjKXtzYigiVEFHR0lORyIsMTUpfXJldHVybiExfWZ1bmN0aW9uIGtkKCl7cmV0dXJuIEhjLnNlbmRCZWFjb24hPT12b2lkIDB9CnZhciBsZD17Y2FjaGU6Im5vLXN0b3JlIixjcmVkZW50aWFsczoiaW5jbHVkZSIsa2VlcGFsaXZlOiEwLG1ldGhvZDoiUE9TVCIsbW9kZToibm8tY29ycyIscmVkaXJlY3Q6ImZvbGxvdyJ9OwpmdW5jdGlvbiBtZChhLGIsYyxkLGUpe2lmKG5kKCkpe3ZhciBmPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sbGQpO2ImJihmLmJvZHk9Yik7YyYmKGMuYXR0cmlidXRpb25SZXBvcnRpbmcmJihmLmF0dHJpYnV0aW9uUmVwb3J0aW5nPWMuYXR0cmlidXRpb25SZXBvcnRpbmcpLGMuYnJvd3NpbmdUb3BpY3MhPT12b2lkIDAmJihmLmJyb3dzaW5nVG9waWNzPWMuYnJvd3NpbmdUb3BpY3MpLGMuY3JlZGVudGlhbHMmJihmLmNyZWRlbnRpYWxzPWMuY3JlZGVudGlhbHMpLGMua2VlcGFsaXZlIT09dm9pZCAwJiYoZi5rZWVwYWxpdmU9Yy5rZWVwYWxpdmUpLGMubWV0aG9kJiYoZi5tZXRob2Q9Yy5tZXRob2QpLGMubW9kZSYmKGYubW9kZT1jLm1vZGUpKTt0cnl7dmFyIGc9QS5mZXRjaChhLGYpO2lmKGcpcmV0dXJuIGcudGhlbihmdW5jdGlvbihsKXtsJiYobC5va3x8bC5zdGF0dXM9PT0wKT9kPT1udWxsfHxkKCk6ZT09bnVsbHx8ZSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtlPT0KbnVsbHx8ZSgpfSksITB9Y2F0Y2gobCl7fX1pZigoYz09bnVsbD8wOmMuUWcpfHwoYz09bnVsbD8wOmMuY3JlZGVudGlhbHMpJiZjLmNyZWRlbnRpYWxzIT09ImluY2x1ZGUiKXJldHVybiBlPT1udWxsfHxlKCksITE7aWYoYil7dmFyIGg9amQoYSxiKTtoP2Q9PW51bGx8fGQoKTplPT1udWxsfHxlKCk7cmV0dXJuIGh9VmMud3QoYSxkLGUpO3JldHVybiEwfWZ1bmN0aW9uIG5kKCl7cmV0dXJuIHliKEEuZmV0Y2gpfWZ1bmN0aW9uIG9kKGEsYil7dmFyIGM9YVtiXTtjJiZ0eXBlb2YgYy5hbmltVmFsPT09InN0cmluZyImJihjPWMuYW5pbVZhbCk7cmV0dXJuIGN9ZnVuY3Rpb24gcGQoKXt2YXIgYT1BLnBlcmZvcm1hbmNlO2lmKGEmJnliKGEubm93KSlyZXR1cm4gYS5ub3coKX0KZnVuY3Rpb24gcWQoKXt2YXIgYSxiPUEucGVyZm9ybWFuY2U7aWYoYiYmYi5nZXRFbnRyaWVzQnlUeXBlKXRyeXt2YXIgYz1iLmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKTtjJiZjLmxlbmd0aD4wJiYoYT1jWzBdLnR5cGUpfWNhdGNoKGQpe3JldHVybiJlIn1pZighYSlyZXR1cm4idSI7c3dpdGNoKGEpe2Nhc2UgIm5hdmlnYXRlIjpyZXR1cm4ibiI7Y2FzZSAiYmFja19mb3J3YXJkIjpyZXR1cm4iaCI7Y2FzZSAicmVsb2FkIjpyZXR1cm4iciI7Y2FzZSAicHJlcmVuZGVyIjpyZXR1cm4icCI7ZGVmYXVsdDpyZXR1cm4ieCJ9fWZ1bmN0aW9uIHJkKCl7cmV0dXJuIEEucGVyZm9ybWFuY2V8fHZvaWQgMH1mdW5jdGlvbiBzZCgpe3ZhciBhPUEud2ViUGl4ZWxzTWFuYWdlcjtyZXR1cm4gYT9hLmNyZWF0ZVNob3BpZnlFeHRlbmQhPT12b2lkIDA6ITF9CnZhciBWYz17RXI6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bmV3IEltYWdlKDEsMSk7VGMoZSxkLHt9KTtlLm9ubG9hZD1mdW5jdGlvbigpe2Uub25sb2FkPW51bGw7YiYmYigpfTtlLm9uZXJyb3I9ZnVuY3Rpb24oKXtlLm9uZXJyb3I9bnVsbDtjJiZjKCl9O2Uuc3JjPWE7cmV0dXJuIGV9LEJzOmZ1bmN0aW9uKGEpe3ZhciBiPUIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdfHxCLmJvZHl8fEIuaGVhZDtiLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsYil9LHd0OmlkfTtmdW5jdGlvbiB0ZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpJiZ0aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIHVkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk9PT10aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIHZkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSl8fHRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gd2QoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKTtyZXR1cm4gU3RyaW5nKGMpLmluZGV4T2YoU3RyaW5nKGQpKT4tMX1mdW5jdGlvbiB4ZChhLGIpe3ZhciBjPVN0cmluZyh0aGlzLmV2YWx1YXRlKGEpKSxkPVN0cmluZyh0aGlzLmV2YWx1YXRlKGIpKTtyZXR1cm4gYy5zdWJzdHJpbmcoMCxkLmxlbmd0aCk9PT1kfQpmdW5jdGlvbiB5ZChhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSksZD10aGlzLmV2YWx1YXRlKGIpO3N3aXRjaChjKXtjYXNlICJwYWdlTG9jYXRpb24iOnZhciBlPUEubG9jYXRpb24uaHJlZjtkIGluc3RhbmNlb2Yga2ImJmQuZ2V0KCJzdHJpcFByb3RvY29sIikmJihlPWUucmVwbGFjZSgvXmh0dHBzPzpcL1wvLywiIikpO3JldHVybiBlfX07LyoKIGpRdWVyeSAoYykgMjAwNSwgMjAxMiBqUXVlcnkgRm91bmRhdGlvbiwgSW5jLiBqcXVlcnkub3JnL2xpY2Vuc2UuCiovCnZhciB6ZD0vXFtvYmplY3QgKEJvb2xlYW58TnVtYmVyfFN0cmluZ3xGdW5jdGlvbnxBcnJheXxEYXRlfFJlZ0V4cClcXS8sQWQ9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClyZXR1cm4gU3RyaW5nKGEpO3ZhciBiPXpkLmV4ZWMoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKE9iamVjdChhKSkpO3JldHVybiBiP2JbMV0udG9Mb3dlckNhc2UoKToib2JqZWN0In0sQmQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE9iamVjdChhKSxiKX0sQ2Q9ZnVuY3Rpb24oYSl7aWYoIWF8fEFkKGEpIT0ib2JqZWN0Inx8YS5ub2RlVHlwZXx8YT09YS53aW5kb3cpcmV0dXJuITE7dHJ5e2lmKGEuY29uc3RydWN0b3ImJiFCZChhLCJjb25zdHJ1Y3RvciIpJiYhQmQoYS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKSlyZXR1cm4hMX1jYXRjaChjKXtyZXR1cm4hMX1mb3IodmFyIGIgaW4gYSk7cmV0dXJuIGI9PT12b2lkIDB8fApCZChhLGIpfSxFZD1mdW5jdGlvbihhLGIpe3ZhciBjPWJ8fChBZChhKT09ImFycmF5Ij9bXTp7fSksZDtmb3IoZCBpbiBhKWlmKEJkKGEsZCkpe3ZhciBlPWFbZF07QWQoZSk9PSJhcnJheSI/KEFkKGNbZF0pIT0iYXJyYXkiJiYoY1tkXT1bXSksY1tkXT1FZChlLGNbZF0pKTpDZChlKT8oQ2QoY1tkXSl8fChjW2RdPXt9KSxjW2RdPUVkKGUsY1tkXSkpOmNbZF09ZX1yZXR1cm4gY307ZnVuY3Rpb24gRmQoYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciImJmE+PTAmJmlzRmluaXRlKGEpJiZhJTE9PT0wfHx0eXBlb2YgYT09PSJzdHJpbmciJiZhWzBdIT09Ii0iJiZhPT09IiIrcGFyc2VJbnQoYSl9O3ZhciBHZD1mdW5jdGlvbihhKXthPWE9PT12b2lkIDA/W106YTt0aGlzLmxhPW5ldyBVYTt0aGlzLnZhbHVlcz1bXTt0aGlzLk5hPSExO2Zvcih2YXIgYiBpbiBhKWEuaGFzT3duUHJvcGVydHkoYikmJihGZChiKT90aGlzLnZhbHVlc1tOdW1iZXIoYildPWFbTnVtYmVyKGIpXTp0aGlzLmxhLnNldChiLGFbYl0pKX07az1HZC5wcm90b3R5cGU7ay50b1N0cmluZz1mdW5jdGlvbihhKXtpZihhJiZhLmluZGV4T2YodGhpcyk+PTApcmV0dXJuIiI7Zm9yKHZhciBiPVtdLGM9MDtjPHRoaXMudmFsdWVzLmxlbmd0aDtjKyspe3ZhciBkPXRoaXMudmFsdWVzW2NdO2Q9PT1udWxsfHxkPT09dm9pZCAwP2IucHVzaCgiIik6ZCBpbnN0YW5jZW9mIEdkPyhhPWF8fFtdLGEucHVzaCh0aGlzKSxiLnB1c2goZC50b1N0cmluZyhhKSksYS5wb3AoKSk6Yi5wdXNoKFN0cmluZyhkKSl9cmV0dXJuIGIuam9pbigiLCIpfTsKay5zZXQ9ZnVuY3Rpb24oYSxiKXtpZighdGhpcy5OYSlpZihhPT09Imxlbmd0aCIpe2lmKCFGZChiKSl0aHJvdyBjYihFcnJvcigiUmFuZ2VFcnJvcjogTGVuZ3RoIHByb3BlcnR5IG11c3QgYmUgYSB2YWxpZCBpbnRlZ2VyLiIpKTt0aGlzLnZhbHVlcy5sZW5ndGg9TnVtYmVyKGIpfWVsc2UgRmQoYSk/dGhpcy52YWx1ZXNbTnVtYmVyKGEpXT1iOnRoaXMubGEuc2V0KGEsYil9O2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiBhPT09Imxlbmd0aCI/dGhpcy5sZW5ndGgoKTpGZChhKT90aGlzLnZhbHVlc1tOdW1iZXIoYSldOnRoaXMubGEuZ2V0KGEpfTtrLmxlbmd0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGh9O2suRmE9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5sYS5GYSgpLGI9MDtiPHRoaXMudmFsdWVzLmxlbmd0aDtiKyspdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYikmJmEucHVzaChTdHJpbmcoYikpO3JldHVybiBhfTsKay5oYz1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmxhLmhjKCksYj0wO2I8dGhpcy52YWx1ZXMubGVuZ3RoO2IrKyl0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShiKSYmYS5wdXNoKHRoaXMudmFsdWVzW2JdKTtyZXR1cm4gYX07ay5mYz1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmxhLmZjKCksYj0wO2I8dGhpcy52YWx1ZXMubGVuZ3RoO2IrKyl0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShiKSYmYS5wdXNoKFtTdHJpbmcoYiksdGhpcy52YWx1ZXNbYl1dKTtyZXR1cm4gYX07ay5yZW1vdmU9ZnVuY3Rpb24oYSl7RmQoYSk/ZGVsZXRlIHRoaXMudmFsdWVzW051bWJlcihhKV06dGhpcy5OYXx8dGhpcy5sYS5yZW1vdmUoYSl9O2sucG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnBvcCgpfTtrLnB1c2g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZXMucHVzaC5hcHBseSh0aGlzLnZhbHVlcyx3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpfTtrLnNoaWZ0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVzLnNoaWZ0KCl9OwprLnNwbGljZT1mdW5jdGlvbihhLGIpe3ZhciBjPU9hLmFwcGx5KDIsYXJndW1lbnRzKTtyZXR1cm4gYj09PXZvaWQgMCYmYy5sZW5ndGg9PT0wP25ldyBHZCh0aGlzLnZhbHVlcy5zcGxpY2UoYSkpOm5ldyBHZCh0aGlzLnZhbHVlcy5zcGxpY2UuYXBwbHkodGhpcy52YWx1ZXMsW2EsYnx8MF0uY29uY2F0KHcoYykpKSl9O2sudW5zaGlmdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlcy51bnNoaWZ0LmFwcGx5KHRoaXMudmFsdWVzLHcoT2EuYXBwbHkoMCxhcmd1bWVudHMpKSl9O2suaGFzPWZ1bmN0aW9uKGEpe3JldHVybiBGZChhKSYmdGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoYSl8fHRoaXMubGEuaGFzKGEpfTtrLlphPWZ1bmN0aW9uKCl7dGhpcy5OYT0hMDtPYmplY3QuZnJlZXplKHRoaXMudmFsdWVzKX07ay5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTsKZnVuY3Rpb24gSGQoYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoKCk7YysrKWEuaGFzKGMpJiYoYltjXT1hLmdldChjKSk7cmV0dXJuIGJ9O3ZhciBJZD1mdW5jdGlvbihhLGIpe3RoaXMuZnVuY3Rpb25OYW1lPWE7dGhpcy5pZT1iO3RoaXMubGE9bmV3IFVhO3RoaXMuTmE9ITF9O2s9SWQucHJvdG90eXBlO2sudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mdW5jdGlvbk5hbWV9O2suZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZ1bmN0aW9uTmFtZX07ay5nZXRLZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBHZCh0aGlzLkZhKCkpfTtrLmludm9rZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5pZS5jYWxsLmFwcGx5KHRoaXMuaWUsW25ldyBKZCh0aGlzLGEpXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSl9O2suYXBwbHk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5pZS5hcHBseShuZXcgSmQodGhpcyxhKSxiKX07ay5OYz1mdW5jdGlvbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7dHJ5e3JldHVybiB0aGlzLmludm9rZS5hcHBseSh0aGlzLFthXS5jb25jYXQodyhiKSkpfWNhdGNoKGMpe319OwprLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5nZXQoYSl9O2suc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5OYXx8dGhpcy5sYS5zZXQoYSxiKX07ay5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubGEuaGFzKGEpfTtrLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLk5hfHx0aGlzLmxhLnJlbW92ZShhKX07ay5GYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLkZhKCl9O2suaGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5oYygpfTtrLmZjPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuZmMoKX07ay5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITB9O2suSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OYX07dmFyIEtkPWZ1bmN0aW9uKGEsYil7SWQuY2FsbCh0aGlzLGEsYil9O3dhKEtkLElkKTt2YXIgTGQ9ZnVuY3Rpb24oYSxiKXtJZC5jYWxsKHRoaXMsYSxiKX07d2EoTGQsSWQpO3ZhciBKZD1mdW5jdGlvbihhLGIpe3RoaXMuaWU9YTt0aGlzLlQ9Yn07CkpkLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLlQ7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/ZmIoYixhKTphfTtKZC5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmllLmdldE5hbWUoKX07SmQucHJvdG90eXBlLmplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVC5qZSgpfTt2YXIgTWQ9ZnVuY3Rpb24oKXt0aGlzLm1hcD1uZXcgTWFwfTtNZC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5tYXAuc2V0KGEsYil9O01kLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwLmdldChhKX07dmFyIE5kPWZ1bmN0aW9uKCl7dGhpcy5rZXlzPVtdO3RoaXMudmFsdWVzPVtdfTtOZC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5rZXlzLnB1c2goYSk7dGhpcy52YWx1ZXMucHVzaChiKX07TmQucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmtleXMuaW5kZXhPZihhKTtpZihiPi0xKXJldHVybiB0aGlzLnZhbHVlc1tiXX07ZnVuY3Rpb24gT2QoKXt0cnl7cmV0dXJuIE1hcD9uZXcgTWQ6bmV3IE5kfWNhdGNoKGEpe3JldHVybiBuZXcgTmR9fTt2YXIgUGQ9ZnVuY3Rpb24oYSl7aWYoYSBpbnN0YW5jZW9mIFBkKXJldHVybiBhO3ZhciBiO2E6aWYoYT09dm9pZCAwfHxBcnJheS5pc0FycmF5KGEpfHxDZChhKSliPSEwO2Vsc2V7c3dpdGNoKHR5cGVvZiBhKXtjYXNlICJib29sZWFuIjpjYXNlICJudW1iZXIiOmNhc2UgInN0cmluZyI6Y2FzZSAiZnVuY3Rpb24iOmI9ITA7YnJlYWsgYX1iPSExfWlmKGIpdGhyb3cgRXJyb3IoIlR5cGUgb2YgZ2l2ZW4gdmFsdWUgaGFzIGFuIGVxdWl2YWxlbnQgUGl4aWUgdHlwZS4iKTt0aGlzLnZhbHVlPWF9O1BkLnByb3RvdHlwZS5nZXRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfTtQZC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKHRoaXMudmFsdWUpfTt2YXIgU2Q9ZnVuY3Rpb24oYSl7dGhpcy5wcm9taXNlPWE7dGhpcy5OYT0hMTt0aGlzLmxhPW5ldyBVYTt0aGlzLmxhLnNldCgidGhlbiIsUmQodGhpcykpO3RoaXMubGEuc2V0KCJjYXRjaCIsUmQodGhpcywhMCkpO3RoaXMubGEuc2V0KCJmaW5hbGx5IixSZCh0aGlzLCExLCEwKSl9O2s9U2QucHJvdG90eXBlO2suZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmxhLmdldChhKX07ay5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLk5hfHx0aGlzLmxhLnNldChhLGIpfTtrLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5sYS5oYXMoYSl9O2sucmVtb3ZlPWZ1bmN0aW9uKGEpe3RoaXMuTmF8fHRoaXMubGEucmVtb3ZlKGEpfTtrLkZhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGEuRmEoKX07ay5oYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhLmhjKCl9O2suZmM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYS5mYygpfTsKdmFyIFJkPWZ1bmN0aW9uKGEsYixjKXtiPWI9PT12b2lkIDA/ITE6YjtjPWM9PT12b2lkIDA/ITE6YztyZXR1cm4gbmV3IEtkKCIiLGZ1bmN0aW9uKGQsZSl7YiYmKGU9ZCxkPXZvaWQgMCk7YyYmKGU9ZCk7ZCBpbnN0YW5jZW9mIEtkfHwoZD12b2lkIDApO2UgaW5zdGFuY2VvZiBLZHx8KGU9dm9pZCAwKTt2YXIgZj10aGlzLlQud2IoKSxnPWZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihuKXt0cnl7cmV0dXJuIGM/KGwuaW52b2tlKGYpLGEucHJvbWlzZSk6bC5pbnZva2UoZixuKX1jYXRjaChwKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QocCBpbnN0YW5jZW9mIEVycm9yP25ldyBQZChwKTpTdHJpbmcocCkpfX19LGg9YS5wcm9taXNlLnRoZW4oZCYmZyhkKSxlJiZnKGUpKTtyZXR1cm4gbmV3IFNkKGgpfSl9O1NkLnByb3RvdHlwZS5aYT1mdW5jdGlvbigpe3RoaXMuTmE9ITB9O1NkLnByb3RvdHlwZS5IYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLk5hfTtmdW5jdGlvbiBUZChhLGIsYyl7dmFyIGQ9T2QoKSxlPWZ1bmN0aW9uKGcsaCl7Zm9yKHZhciBsPWcuRmEoKSxuPTA7bjxsLmxlbmd0aDtuKyspaFtsW25dXT1mKGcuZ2V0KGxbbl0pKX0sZj1mdW5jdGlvbihnKXtpZihnPT09bnVsbHx8Zz09PXZvaWQgMClyZXR1cm4gZzt2YXIgaD1kLmdldChnKTtpZihoKXJldHVybiBoO2lmKGcgaW5zdGFuY2VvZiBHZCl7dmFyIGw9W107ZC5zZXQoZyxsKTtmb3IodmFyIG49Zy5GYSgpLHA9MDtwPG4ubGVuZ3RoO3ArKylsW25bcF1dPWYoZy5nZXQobltwXSkpO3JldHVybiBsfWlmKGcgaW5zdGFuY2VvZiBTZClyZXR1cm4gZy5wcm9taXNlLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIFRkKHUsYiwxKX0sZnVuY3Rpb24odSl7cmV0dXJuIFByb21pc2UucmVqZWN0KFRkKHUsYiwxKSl9KTtpZihnIGluc3RhbmNlb2Yga2Ipe3ZhciBxPXt9O2Quc2V0KGcscSk7ZShnLHEpO3JldHVybiBxfWlmKGcgaW5zdGFuY2VvZiBLZCl7dmFyIHI9ZnVuY3Rpb24oKXtmb3IodmFyIHU9CltdLHY9MDt2PGFyZ3VtZW50cy5sZW5ndGg7disrKXVbdl09VWQoYXJndW1lbnRzW3ZdLGIsYyk7dmFyIHg9bmV3IGhiKGI/Yi5qZSgpOm5ldyBXYSk7YiYmeC51ZShiLnhiKCkpO3JldHVybiBmKGcuYXBwbHkoeCx1KSl9O2Quc2V0KGcscik7ZShnLHIpO3JldHVybiByfXZhciB0PSExO3N3aXRjaChjKXtjYXNlIDE6dD0hMDticmVhaztjYXNlIDI6dD0hMTticmVhaztjYXNlIDM6dD0hMTticmVhaztkZWZhdWx0On1pZihnIGluc3RhbmNlb2YgUGQmJnQpcmV0dXJuIGcuZ2V0VmFsdWUoKTtzd2l0Y2godHlwZW9mIGcpe2Nhc2UgImJvb2xlYW4iOmNhc2UgIm51bWJlciI6Y2FzZSAic3RyaW5nIjpjYXNlICJ1bmRlZmluZWQiOnJldHVybiBnO2Nhc2UgIm9iamVjdCI6aWYoZz09PQpudWxsKXJldHVybiBudWxsfX07cmV0dXJuIGYoYSl9CmZ1bmN0aW9uIFVkKGEsYixjKXt2YXIgZD1PZCgpLGU9ZnVuY3Rpb24oZyxoKXtmb3IodmFyIGwgaW4gZylnLmhhc093blByb3BlcnR5KGwpJiZoLnNldChsLGYoZ1tsXSkpfSxmPWZ1bmN0aW9uKGcpe3ZhciBoPWQuZ2V0KGcpO2lmKGgpcmV0dXJuIGg7aWYoQXJyYXkuaXNBcnJheShnKXx8SGIoZykpe3ZhciBsPW5ldyBHZDtkLnNldChnLGwpO2Zvcih2YXIgbiBpbiBnKWcuaGFzT3duUHJvcGVydHkobikmJmwuc2V0KG4sZihnW25dKSk7cmV0dXJuIGx9aWYoQ2QoZykpe3ZhciBwPW5ldyBrYjtkLnNldChnLHApO2UoZyxwKTtyZXR1cm4gcH1pZih0eXBlb2YgZz09PSJmdW5jdGlvbiIpe3ZhciBxPW5ldyBLZCgiIixmdW5jdGlvbigpe2Zvcih2YXIgdT1PYS5hcHBseSgwLGFyZ3VtZW50cyksdj1bXSx4PTA7eDx1Lmxlbmd0aDt4Kyspdlt4XT1UZCh0aGlzLmV2YWx1YXRlKHVbeF0pLGIsYyk7cmV0dXJuIGYodGhpcy5ULlBqKCkoZyxnLHYpKX0pO2Quc2V0KGcscSk7ZShnLHEpO3JldHVybiBxfXZhciByPXR5cGVvZiBnO2lmKGc9PT1udWxsfHxyPT09InN0cmluZyJ8fHI9PT0ibnVtYmVyInx8cj09PSJib29sZWFuIilyZXR1cm4gZzt2YXIgdD0hMTtzd2l0Y2goYyl7Y2FzZSAxOnQ9ITA7YnJlYWs7Y2FzZSAyOnQ9ITE7YnJlYWs7ZGVmYXVsdDp9aWYoZyE9PXZvaWQgMCYmdClyZXR1cm4gbmV3IFBkKGcpfTtyZXR1cm4gZihhKX07dmFyIFZkPXtzdXBwb3J0ZWRNZXRob2RzOiJjb25jYXQgZXZlcnkgZmlsdGVyIGZvckVhY2ggaGFzT3duUHJvcGVydHkgaW5kZXhPZiBqb2luIGxhc3RJbmRleE9mIG1hcCBwb3AgcHVzaCByZWR1Y2UgcmVkdWNlUmlnaHQgcmV2ZXJzZSBzaGlmdCBzbGljZSBzb21lIHNvcnQgc3BsaWNlIHVuc2hpZnQgdG9TdHJpbmciLnNwbGl0KCIgIiksY29uY2F0OmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7Yzx0aGlzLmxlbmd0aCgpO2MrKyliLnB1c2godGhpcy5nZXQoYykpO2Zvcih2YXIgZD0xO2Q8YXJndW1lbnRzLmxlbmd0aDtkKyspaWYoYXJndW1lbnRzW2RdaW5zdGFuY2VvZiBHZClmb3IodmFyIGU9YXJndW1lbnRzW2RdLGY9MDtmPGUubGVuZ3RoKCk7ZisrKWIucHVzaChlLmdldChmKSk7ZWxzZSBiLnB1c2goYXJndW1lbnRzW2RdKTtyZXR1cm4gbmV3IEdkKGIpfSxldmVyeTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9MDtkPHRoaXMubGVuZ3RoKCkmJgpkPGM7ZCsrKWlmKHRoaXMuaGFzKGQpJiYhYi5pbnZva2UoYSx0aGlzLmdldChkKSxkLHRoaXMpKXJldHVybiExO3JldHVybiEwfSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPVtdLGU9MDtlPHRoaXMubGVuZ3RoKCkmJmU8YztlKyspdGhpcy5oYXMoZSkmJmIuaW52b2tlKGEsdGhpcy5nZXQoZSksZSx0aGlzKSYmZC5wdXNoKHRoaXMuZ2V0KGUpKTtyZXR1cm4gbmV3IEdkKGQpfSxmb3JFYWNoOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPXRoaXMubGVuZ3RoKCksZD0wO2Q8dGhpcy5sZW5ndGgoKSYmZDxjO2QrKyl0aGlzLmhhcyhkKSYmYi5pbnZva2UoYSx0aGlzLmdldChkKSxkLHRoaXMpfSxoYXNPd25Qcm9wZXJ0eTpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmhhcyhiKX0saW5kZXhPZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKSxlPWM9PT12b2lkIDA/MDpOdW1iZXIoYyk7ZTwwJiYoZT1NYXRoLm1heChkK2UsMCkpO2Zvcih2YXIgZj0KZTtmPGQ7ZisrKWlmKHRoaXMuaGFzKGYpJiZ0aGlzLmdldChmKT09PWIpcmV0dXJuIGY7cmV0dXJuLTF9LGpvaW46ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD0wO2Q8dGhpcy5sZW5ndGgoKTtkKyspYy5wdXNoKHRoaXMuZ2V0KGQpKTtyZXR1cm4gYy5qb2luKGIpfSxsYXN0SW5kZXhPZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKSxlPWQtMTtjIT09dm9pZCAwJiYoZT1jPDA/ZCtjOk1hdGgubWluKGMsZSkpO2Zvcih2YXIgZj1lO2Y+PTA7Zi0tKWlmKHRoaXMuaGFzKGYpJiZ0aGlzLmdldChmKT09PWIpcmV0dXJuIGY7cmV0dXJuLTF9LG1hcDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz10aGlzLmxlbmd0aCgpLGQ9W10sZT0wO2U8dGhpcy5sZW5ndGgoKSYmZTxjO2UrKyl0aGlzLmhhcyhlKSYmKGRbZV09Yi5pbnZva2UoYSx0aGlzLmdldChlKSxlLHRoaXMpKTtyZXR1cm4gbmV3IEdkKGQpfSxwb3A6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wb3AoKX0scHVzaDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoLmFwcGx5KHRoaXMsCncoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSl9LHJlZHVjZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5sZW5ndGgoKSxlLGY9MDtpZihjIT09dm9pZCAwKWU9YztlbHNle2lmKGQ9PT0wKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IFJlZHVjZSBvbiBMaXN0IHdpdGggbm8gZWxlbWVudHMuIikpO2Zvcih2YXIgZz0wO2c8ZDtnKyspaWYodGhpcy5oYXMoZykpe2U9dGhpcy5nZXQoZyk7Zj1nKzE7YnJlYWt9aWYoZz09PWQpdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogUmVkdWNlIG9uIExpc3Qgd2l0aCBubyBlbGVtZW50cy4iKSk7fWZvcih2YXIgaD1mO2g8ZDtoKyspdGhpcy5oYXMoaCkmJihlPWIuaW52b2tlKGEsZSx0aGlzLmdldChoKSxoLHRoaXMpKTtyZXR1cm4gZX0scmVkdWNlUmlnaHQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMubGVuZ3RoKCksZSxmPWQtMTtpZihjIT09dm9pZCAwKWU9YztlbHNle2lmKGQ9PT0wKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IFJlZHVjZVJpZ2h0IG9uIExpc3Qgd2l0aCBubyBlbGVtZW50cy4iKSk7CmZvcih2YXIgZz0xO2c8PWQ7ZysrKWlmKHRoaXMuaGFzKGQtZykpe2U9dGhpcy5nZXQoZC1nKTtmPWQtKGcrMSk7YnJlYWt9aWYoZz5kKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IFJlZHVjZVJpZ2h0IG9uIExpc3Qgd2l0aCBubyBlbGVtZW50cy4iKSk7fWZvcih2YXIgaD1mO2g+PTA7aC0tKXRoaXMuaGFzKGgpJiYoZT1iLmludm9rZShhLGUsdGhpcy5nZXQoaCksaCx0aGlzKSk7cmV0dXJuIGV9LHJldmVyc2U6ZnVuY3Rpb24oKXtmb3IodmFyIGE9SGQodGhpcyksYj1hLmxlbmd0aC0xLGM9MDtiPj0wO2ItLSxjKyspYS5oYXNPd25Qcm9wZXJ0eShiKT90aGlzLnNldChjLGFbYl0pOnRoaXMucmVtb3ZlKGMpO3JldHVybiB0aGlzfSxzaGlmdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoaWZ0KCl9LHNsaWNlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmxlbmd0aCgpO2I9PT12b2lkIDAmJihiPTApO2I9YjwwP01hdGgubWF4KGQrYiwwKTpNYXRoLm1pbihiLGQpO2M9Yz09PQp2b2lkIDA/ZDpjPDA/TWF0aC5tYXgoZCtjLDApOk1hdGgubWluKGMsZCk7Yz1NYXRoLm1heChiLGMpO2Zvcih2YXIgZT1bXSxmPWI7ZjxjO2YrKyllLnB1c2godGhpcy5nZXQoZikpO3JldHVybiBuZXcgR2QoZSl9LHNvbWU6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5sZW5ndGgoKSxkPTA7ZDx0aGlzLmxlbmd0aCgpJiZkPGM7ZCsrKWlmKHRoaXMuaGFzKGQpJiZiLmludm9rZShhLHRoaXMuZ2V0KGQpLGQsdGhpcykpcmV0dXJuITA7cmV0dXJuITF9LHNvcnQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1IZCh0aGlzKTtiPT09dm9pZCAwP2Muc29ydCgpOmMuc29ydChmdW5jdGlvbihlLGYpe3JldHVybiBOdW1iZXIoYi5pbnZva2UoYSxlLGYpKX0pO2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKWMuaGFzT3duUHJvcGVydHkoZCk/dGhpcy5zZXQoZCxjW2RdKTp0aGlzLnJlbW92ZShkKTtyZXR1cm4gdGhpc30sc3BsaWNlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5zcGxpY2UuYXBwbHkodGhpcywKW2IsY10uY29uY2F0KHcoT2EuYXBwbHkoMyxhcmd1bWVudHMpKSkpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKCl9LHVuc2hpZnQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudW5zaGlmdC5hcHBseSh0aGlzLHcoT2EuYXBwbHkoMSxhcmd1bWVudHMpKSl9fTt2YXIgV2Q9e2NoYXJBdDoxLGNvbmNhdDoxLGluZGV4T2Y6MSxsYXN0SW5kZXhPZjoxLG1hdGNoOjEscmVwbGFjZToxLHNlYXJjaDoxLHNsaWNlOjEsc3BsaXQ6MSxzdWJzdHJpbmc6MSx0b0xvd2VyQ2FzZToxLHRvTG9jYWxlTG93ZXJDYXNlOjEsdG9TdHJpbmc6MSx0b1VwcGVyQ2FzZToxLHRvTG9jYWxlVXBwZXJDYXNlOjEsdHJpbToxfSxYZD1uZXcgVGEoImJyZWFrIiksWWQ9bmV3IFRhKCJjb250aW51ZSIpO2Z1bmN0aW9uIFpkKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkrdGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiAkZChhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpJiZ0aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBhZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpO2lmKCEoZiBpbnN0YW5jZW9mIEdkKSl0aHJvdyBFcnJvcigiRXJyb3I6IE5vbi1MaXN0IGFyZ3VtZW50IGdpdmVuIHRvIEFwcGx5IGluc3RydWN0aW9uLiIpO2lmKGQ9PT1udWxsfHxkPT09dm9pZCAwKXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6IENhbid0IHJlYWQgcHJvcGVydHkgIitlKyIgb2YgIitkKyIuIikpO3ZhciBnPXR5cGVvZiBkPT09Im51bWJlciI7aWYodHlwZW9mIGQ9PT0iYm9vbGVhbiJ8fGcpe2lmKGU9PT0idG9TdHJpbmciKXtpZihnJiZmLmxlbmd0aCgpKXt2YXIgaD1UZChmLmdldCgwKSk7dHJ5e3JldHVybiBkLnRvU3RyaW5nKGgpfWNhdGNoKHUpe319cmV0dXJuIGQudG9TdHJpbmcoKX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2QrIi4iK2UrIiBpcyBub3QgYSBmdW5jdGlvbi4iKSk7fWlmKHR5cGVvZiBkPT09CiJzdHJpbmciKXtpZihXZC5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIGw9VGQoZix2b2lkIDAsMSk7cmV0dXJuIFVkKGRbZV0uYXBwbHkoZCxsKSx0aGlzLlQpfXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6ICIrZSsiIGlzIG5vdCBhIGZ1bmN0aW9uIikpO31pZihkIGluc3RhbmNlb2YgR2Qpe2lmKGQuaGFzKGUpKXt2YXIgbj1kLmdldChTdHJpbmcoZSkpO2lmKG4gaW5zdGFuY2VvZiBLZCl7dmFyIHA9SGQoZik7cmV0dXJuIG4uYXBwbHkodGhpcy5ULHApfXRocm93IGNiKEVycm9yKCJUeXBlRXJyb3I6ICIrZSsiIGlzIG5vdCBhIGZ1bmN0aW9uIikpO31pZihWZC5zdXBwb3J0ZWRNZXRob2RzLmluZGV4T2YoZSk+PTApe3ZhciBxPUhkKGYpO3JldHVybiBWZFtlXS5jYWxsLmFwcGx5KFZkW2VdLFtkLHRoaXMuVF0uY29uY2F0KHcocSkpKX19aWYoZCBpbnN0YW5jZW9mIEtkfHxkIGluc3RhbmNlb2Yga2J8fGQgaW5zdGFuY2VvZiBTZCl7aWYoZC5oYXMoZSkpe3ZhciByPWQuZ2V0KGUpOwppZihyIGluc3RhbmNlb2YgS2Qpe3ZhciB0PUhkKGYpO3JldHVybiByLmFwcGx5KHRoaXMuVCx0KX10aHJvdyBjYihFcnJvcigiVHlwZUVycm9yOiAiK2UrIiBpcyBub3QgYSBmdW5jdGlvbiIpKTt9aWYoZT09PSJ0b1N0cmluZyIpcmV0dXJuIGQgaW5zdGFuY2VvZiBLZD9kLmdldE5hbWUoKTpkLnRvU3RyaW5nKCk7aWYoZT09PSJoYXNPd25Qcm9wZXJ0eSIpcmV0dXJuIGQuaGFzKGYuZ2V0KDApKX1pZihkIGluc3RhbmNlb2YgUGQmJmU9PT0idG9TdHJpbmciKXJldHVybiBkLnRvU3RyaW5nKCk7dGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogT2JqZWN0IGhhcyBubyAnIitlKyInIHByb3BlcnR5LiIpKTt9CmZ1bmN0aW9uIGJlKGEsYil7YT10aGlzLmV2YWx1YXRlKGEpO2lmKHR5cGVvZiBhIT09InN0cmluZyIpdGhyb3cgRXJyb3IoIkludmFsaWQga2V5IG5hbWUgZ2l2ZW4gZm9yIGFzc2lnbm1lbnQuIik7dmFyIGM9dGhpcy5UO2lmKCFjLmhhcyhhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhc3NpZ24gdG8gdW5kZWZpbmVkIHZhbHVlICIrYik7dmFyIGQ9dGhpcy5ldmFsdWF0ZShiKTtjLnNldChhLGQpO3JldHVybiBkfWZ1bmN0aW9uIGNlKCl7dmFyIGE9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGI9dGhpcy5ULndiKCksYz1lYihiLGEpO2lmKGMgaW5zdGFuY2VvZiBUYSlyZXR1cm4gY31mdW5jdGlvbiBkZSgpe3JldHVybiBYZH1mdW5jdGlvbiBlZShhKXtmb3IodmFyIGI9dGhpcy5ldmFsdWF0ZShhKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPXRoaXMuZXZhbHVhdGUoYltjXSk7aWYoZCBpbnN0YW5jZW9mIFRhKXJldHVybiBkfX0KZnVuY3Rpb24gZmUoKXtmb3IodmFyIGE9dGhpcy5ULGI9MDtiPGFyZ3VtZW50cy5sZW5ndGgtMTtiKz0yKXt2YXIgYz1hcmd1bWVudHNbYl07aWYodHlwZW9mIGM9PT0ic3RyaW5nIil7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYisxXSk7YS5RaChjLGQpfX19ZnVuY3Rpb24gZ2UoKXtyZXR1cm4gWWR9ZnVuY3Rpb24gaGUoYSxiKXtyZXR1cm4gbmV3IFRhKGEsdGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gaWUoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZDtkPW5ldyBHZDtmb3IodmFyIGU9dGhpcy5ldmFsdWF0ZShiKSxmPTA7ZjxlLmxlbmd0aDtmKyspZC5wdXNoKGVbZl0pO3ZhciBnPVs1MSxhLGRdLmNvbmNhdCh3KGMpKTt0aGlzLlQuYWRkKGEsdGhpcy5ldmFsdWF0ZShnKSl9ZnVuY3Rpb24gamUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKS90aGlzLmV2YWx1YXRlKGIpfQpmdW5jdGlvbiBrZShhLGIpe3ZhciBjPXRoaXMuZXZhbHVhdGUoYSksZD10aGlzLmV2YWx1YXRlKGIpLGU9YyBpbnN0YW5jZW9mIFBkLGY9ZCBpbnN0YW5jZW9mIFBkO3JldHVybiBlfHxmP2UmJmY/Yy5nZXRWYWx1ZSgpPT09ZC5nZXRWYWx1ZSgpOiExOmM9PWR9ZnVuY3Rpb24gbGUoKXtmb3IodmFyIGEsYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspYT10aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiXSk7cmV0dXJuIGF9ZnVuY3Rpb24gbWUoYSxiLGMsZCl7Zm9yKHZhciBlPTA7ZTxiKCk7ZSsrKXt2YXIgZj1hKGMoZSkpLGc9ZWIoZixkKTtpZihnIGluc3RhbmNlb2YgVGEpe2lmKGcudHlwZT09PSJicmVhayIpYnJlYWs7aWYoZy50eXBlPT09InJldHVybiIpcmV0dXJuIGd9fX0KZnVuY3Rpb24gbmUoYSxiLGMpe2lmKHR5cGVvZiBiPT09InN0cmluZyIpcmV0dXJuIG1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYi5sZW5ndGh9LGZ1bmN0aW9uKGYpe3JldHVybiBmfSxjKTtpZihiIGluc3RhbmNlb2Yga2J8fGIgaW5zdGFuY2VvZiBTZHx8YiBpbnN0YW5jZW9mIEdkfHxiIGluc3RhbmNlb2YgS2Qpe3ZhciBkPWIuRmEoKSxlPWQubGVuZ3RoO3JldHVybiBtZShhLGZ1bmN0aW9uKCl7cmV0dXJuIGV9LGZ1bmN0aW9uKGYpe3JldHVybiBkW2ZdfSxjKX19ZnVuY3Rpb24gb2UoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gbmUoZnVuY3Rpb24oaCl7Zy5zZXQoZCxoKTtyZXR1cm4gZ30sZSxmKX0KZnVuY3Rpb24gcGUoYSxiLGMpe3ZhciBkPXRoaXMuZXZhbHVhdGUoYSksZT10aGlzLmV2YWx1YXRlKGIpLGY9dGhpcy5ldmFsdWF0ZShjKSxnPXRoaXMuVDtyZXR1cm4gbmUoZnVuY3Rpb24oaCl7dmFyIGw9Zy53YigpO2wuUWgoZCxoKTtyZXR1cm4gbH0sZSxmKX1mdW5jdGlvbiBxZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBuZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5hZGQoZCxoKTtyZXR1cm4gbH0sZSxmKX1mdW5jdGlvbiByZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBzZShmdW5jdGlvbihoKXtnLnNldChkLGgpO3JldHVybiBnfSxlLGYpfQpmdW5jdGlvbiB0ZShhLGIsYyl7dmFyIGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYiksZj10aGlzLmV2YWx1YXRlKGMpLGc9dGhpcy5UO3JldHVybiBzZShmdW5jdGlvbihoKXt2YXIgbD1nLndiKCk7bC5RaChkLGgpO3JldHVybiBsfSxlLGYpfWZ1bmN0aW9uIHVlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyksZz10aGlzLlQ7cmV0dXJuIHNlKGZ1bmN0aW9uKGgpe3ZhciBsPWcud2IoKTtsLmFkZChkLGgpO3JldHVybiBsfSxlLGYpfQpmdW5jdGlvbiBzZShhLGIsYyl7aWYodHlwZW9mIGI9PT0ic3RyaW5nIilyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBiLmxlbmd0aH0sZnVuY3Rpb24oZCl7cmV0dXJuIGJbZF19LGMpO2lmKGIgaW5zdGFuY2VvZiBHZClyZXR1cm4gbWUoYSxmdW5jdGlvbigpe3JldHVybiBiLmxlbmd0aCgpfSxmdW5jdGlvbihkKXtyZXR1cm4gYi5nZXQoZCl9LGMpO3Rocm93IGNiKEVycm9yKCJUaGUgdmFsdWUgaXMgbm90IGl0ZXJhYmxlLiIpKTt9CmZ1bmN0aW9uIHZlKGEsYixjLGQpe2Z1bmN0aW9uIGUocSxyKXtmb3IodmFyIHQ9MDt0PGYubGVuZ3RoKCk7dCsrKXt2YXIgdT1mLmdldCh0KTtyLmFkZCh1LHEuZ2V0KHUpKX19dmFyIGY9dGhpcy5ldmFsdWF0ZShhKTtpZighKGYgaW5zdGFuY2VvZiBHZCkpdGhyb3cgRXJyb3IoIlR5cGVFcnJvcjogTm9uLUxpc3QgYXJndW1lbnQgZ2l2ZW4gdG8gRm9yTGV0IGluc3RydWN0aW9uLiIpO3ZhciBnPXRoaXMuVCxoPXRoaXMuZXZhbHVhdGUoZCksbD1nLndiKCk7Zm9yKGUoZyxsKTtmYihsLGIpOyl7dmFyIG49ZWIobCxoKTtpZihuIGluc3RhbmNlb2YgVGEpe2lmKG4udHlwZT09PSJicmVhayIpYnJlYWs7aWYobi50eXBlPT09InJldHVybiIpcmV0dXJuIG59dmFyIHA9Zy53YigpO2UobCxwKTtmYihwLGMpO2w9cH19CmZ1bmN0aW9uIHdlKGEsYil7dmFyIGM9T2EuYXBwbHkoMixhcmd1bWVudHMpLGQ9dGhpcy5ULGU9dGhpcy5ldmFsdWF0ZShiKTtpZighKGUgaW5zdGFuY2VvZiBHZCkpdGhyb3cgRXJyb3IoIkVycm9yOiBub24tTGlzdCB2YWx1ZSBnaXZlbiBmb3IgRm4gYXJndW1lbnQgbmFtZXMuIik7cmV0dXJuIG5ldyBLZChhLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGY9T2EuYXBwbHkoMCxhcmd1bWVudHMpLGc9ZC53YigpO2cueGIoKT09PXZvaWQgMCYmZy51ZSh0aGlzLlQueGIoKSk7Zm9yKHZhciBoPVtdLGw9MDtsPGYubGVuZ3RoO2wrKyl7dmFyIG49dGhpcy5ldmFsdWF0ZShmW2xdKTtoW2xdPW59Zm9yKHZhciBwPWUuZ2V0KCJsZW5ndGgiKSxxPTA7cTxwO3ErKylxPGgubGVuZ3RoP2cuYWRkKGUuZ2V0KHEpLGhbcV0pOmcuYWRkKGUuZ2V0KHEpLHZvaWQgMCk7Zy5hZGQoImFyZ3VtZW50cyIsbmV3IEdkKGgpKTt2YXIgcj1lYihnLGMpO2lmKHIgaW5zdGFuY2VvZiBUYSlyZXR1cm4gci50eXBlPT09CiJyZXR1cm4iP3IuZGF0YTpyfX0oKSl9ZnVuY3Rpb24geGUoYSl7dmFyIGI9dGhpcy5ldmFsdWF0ZShhKSxjPXRoaXMuVDtpZih5ZSYmIWMuaGFzKGIpKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihiKyIgaXMgbm90IGRlZmluZWQuIik7cmV0dXJuIGMuZ2V0KGIpfQpmdW5jdGlvbiB6ZShhLGIpe3ZhciBjLGQ9dGhpcy5ldmFsdWF0ZShhKSxlPXRoaXMuZXZhbHVhdGUoYik7aWYoZD09PXZvaWQgMHx8ZD09PW51bGwpdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogQ2Fubm90IHJlYWQgcHJvcGVydGllcyBvZiAiK2QrIiAocmVhZGluZyAnIitlKyInKSIpKTtpZihkIGluc3RhbmNlb2Yga2J8fGQgaW5zdGFuY2VvZiBTZHx8ZCBpbnN0YW5jZW9mIEdkfHxkIGluc3RhbmNlb2YgS2QpYz1kLmdldChlKTtlbHNlIGlmKHR5cGVvZiBkPT09InN0cmluZyIpZT09PSJsZW5ndGgiP2M9ZC5sZW5ndGg6RmQoZSkmJihjPWRbZV0pO2Vsc2UgaWYoZCBpbnN0YW5jZW9mIFBkKXJldHVybjtyZXR1cm4gY31mdW5jdGlvbiBBZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPnRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gQmUoYSxiKXtyZXR1cm4gdGhpcy5ldmFsdWF0ZShhKT49dGhpcy5ldmFsdWF0ZShiKX0KZnVuY3Rpb24gQ2UoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpLGQ9dGhpcy5ldmFsdWF0ZShiKTtjIGluc3RhbmNlb2YgUGQmJihjPWMuZ2V0VmFsdWUoKSk7ZCBpbnN0YW5jZW9mIFBkJiYoZD1kLmdldFZhbHVlKCkpO3JldHVybiBjPT09ZH1mdW5jdGlvbiBEZShhLGIpe3JldHVybiFDZS5jYWxsKHRoaXMsYSxiKX1mdW5jdGlvbiBFZShhLGIsYyl7dmFyIGQ9W107dGhpcy5ldmFsdWF0ZShhKT9kPXRoaXMuZXZhbHVhdGUoYik6YyYmKGQ9dGhpcy5ldmFsdWF0ZShjKSk7dmFyIGU9ZWIodGhpcy5ULGQpO2lmKGUgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZX12YXIgeWU9ITE7CmZ1bmN0aW9uIEZlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSk8dGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBHZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpPD10aGlzLmV2YWx1YXRlKGIpfWZ1bmN0aW9uIEhlKCl7Zm9yKHZhciBhPW5ldyBHZCxiPTA7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKyl7dmFyIGM9dGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYl0pO2EucHVzaChjKX1yZXR1cm4gYX1mdW5jdGlvbiBJZSgpe2Zvcih2YXIgYT1uZXcga2IsYj0wO2I8YXJndW1lbnRzLmxlbmd0aC0xO2IrPTIpe3ZhciBjPVN0cmluZyh0aGlzLmV2YWx1YXRlKGFyZ3VtZW50c1tiXSkpLGQ9dGhpcy5ldmFsdWF0ZShhcmd1bWVudHNbYisxXSk7YS5zZXQoYyxkKX1yZXR1cm4gYX1mdW5jdGlvbiBKZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpJXRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIEtlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSkqdGhpcy5ldmFsdWF0ZShiKX1mdW5jdGlvbiBMZShhKXtyZXR1cm4tdGhpcy5ldmFsdWF0ZShhKX1mdW5jdGlvbiBNZShhKXtyZXR1cm4hdGhpcy5ldmFsdWF0ZShhKX1mdW5jdGlvbiBOZShhLGIpe3JldHVybiFrZS5jYWxsKHRoaXMsYSxiKX1mdW5jdGlvbiBPZSgpe3JldHVybiBudWxsfWZ1bmN0aW9uIFBlKGEsYil7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSl8fHRoaXMuZXZhbHVhdGUoYil9ZnVuY3Rpb24gUWUoYSxiKXt2YXIgYz10aGlzLmV2YWx1YXRlKGEpO3RoaXMuZXZhbHVhdGUoYik7cmV0dXJuIGN9ZnVuY3Rpb24gUmUoYSl7cmV0dXJuIHRoaXMuZXZhbHVhdGUoYSl9ZnVuY3Rpb24gU2UoKXtyZXR1cm4gT2EuYXBwbHkoMCxhcmd1bWVudHMpfWZ1bmN0aW9uIFRlKGEpe3JldHVybiBuZXcgVGEoInJldHVybiIsdGhpcy5ldmFsdWF0ZShhKSl9CmZ1bmN0aW9uIFVlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyk7aWYoZD09PW51bGx8fGQ9PT12b2lkIDApdGhyb3cgY2IoRXJyb3IoIlR5cGVFcnJvcjogQ2FuJ3Qgc2V0IHByb3BlcnR5ICIrZSsiIG9mICIrZCsiLiIpKTsoZCBpbnN0YW5jZW9mIEtkfHxkIGluc3RhbmNlb2YgR2R8fGQgaW5zdGFuY2VvZiBrYikmJmQuc2V0KFN0cmluZyhlKSxmKTtyZXR1cm4gZn1mdW5jdGlvbiBWZShhLGIpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpLXRoaXMuZXZhbHVhdGUoYil9CmZ1bmN0aW9uIFdlKGEsYixjKXt2YXIgZD10aGlzLmV2YWx1YXRlKGEpLGU9dGhpcy5ldmFsdWF0ZShiKSxmPXRoaXMuZXZhbHVhdGUoYyk7aWYoIUFycmF5LmlzQXJyYXkoZSl8fCFBcnJheS5pc0FycmF5KGYpKXRocm93IEVycm9yKCJFcnJvcjogTWFsZm9ybWVkIHN3aXRjaCBpbnN0cnVjdGlvbi4iKTtmb3IodmFyIGcsaD0hMSxsPTA7bDxlLmxlbmd0aDtsKyspaWYoaHx8ZD09PXRoaXMuZXZhbHVhdGUoZVtsXSkpaWYoZz10aGlzLmV2YWx1YXRlKGZbbF0pLGcgaW5zdGFuY2VvZiBUYSl7dmFyIG49Zy50eXBlO2lmKG49PT0iYnJlYWsiKXJldHVybjtpZihuPT09InJldHVybiJ8fG49PT0iY29udGludWUiKXJldHVybiBnfWVsc2UgaD0hMDtpZihmLmxlbmd0aD09PWUubGVuZ3RoKzEmJihnPXRoaXMuZXZhbHVhdGUoZltmLmxlbmd0aC0xXSksZyBpbnN0YW5jZW9mIFRhJiYoZy50eXBlPT09InJldHVybiJ8fGcudHlwZT09PSJjb250aW51ZSIpKSlyZXR1cm4gZ30KZnVuY3Rpb24gWGUoYSxiLGMpe3JldHVybiB0aGlzLmV2YWx1YXRlKGEpP3RoaXMuZXZhbHVhdGUoYik6dGhpcy5ldmFsdWF0ZShjKX1mdW5jdGlvbiBZZShhKXt2YXIgYj10aGlzLmV2YWx1YXRlKGEpO3JldHVybiBiIGluc3RhbmNlb2YgS2Q/ImZ1bmN0aW9uIjp0eXBlb2YgYn1mdW5jdGlvbiBaZSgpe2Zvcih2YXIgYT10aGlzLlQsYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspe3ZhciBjPWFyZ3VtZW50c1tiXTt0eXBlb2YgYyE9PSJzdHJpbmcifHxhLmFkZChjLHZvaWQgMCl9fQpmdW5jdGlvbiAkZShhLGIsYyxkKXt2YXIgZT10aGlzLmV2YWx1YXRlKGQpO2lmKHRoaXMuZXZhbHVhdGUoYykpe3ZhciBmPWViKHRoaXMuVCxlKTtpZihmIGluc3RhbmNlb2YgVGEpe2lmKGYudHlwZT09PSJicmVhayIpcmV0dXJuO2lmKGYudHlwZT09PSJyZXR1cm4iKXJldHVybiBmfX1mb3IoO3RoaXMuZXZhbHVhdGUoYSk7KXt2YXIgZz1lYih0aGlzLlQsZSk7aWYoZyBpbnN0YW5jZW9mIFRhKXtpZihnLnR5cGU9PT0iYnJlYWsiKWJyZWFrO2lmKGcudHlwZT09PSJyZXR1cm4iKXJldHVybiBnfXRoaXMuZXZhbHVhdGUoYil9fWZ1bmN0aW9uIGFmKGEpe3JldHVybn5OdW1iZXIodGhpcy5ldmFsdWF0ZShhKSl9ZnVuY3Rpb24gYmYoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpPDxOdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gY2YoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpPj5OdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9CmZ1bmN0aW9uIGRmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKT4+Pk51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBlZihhLGIpe3JldHVybiBOdW1iZXIodGhpcy5ldmFsdWF0ZShhKSkmTnVtYmVyKHRoaXMuZXZhbHVhdGUoYikpfWZ1bmN0aW9uIGZmKGEsYil7cmV0dXJuIE51bWJlcih0aGlzLmV2YWx1YXRlKGEpKV5OdW1iZXIodGhpcy5ldmFsdWF0ZShiKSl9ZnVuY3Rpb24gZ2YoYSxiKXtyZXR1cm4gTnVtYmVyKHRoaXMuZXZhbHVhdGUoYSkpfE51bWJlcih0aGlzLmV2YWx1YXRlKGIpKX1mdW5jdGlvbiBoZigpe30KZnVuY3Rpb24ga2YoYSxiLGMpe3RyeXt2YXIgZD10aGlzLmV2YWx1YXRlKGIpO2lmKGQgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZH1jYXRjaChoKXtpZighKGggaW5zdGFuY2VvZiBiYiYmaC5TbikpdGhyb3cgaDt2YXIgZT10aGlzLlQud2IoKTthIT09IiImJihoIGluc3RhbmNlb2YgYmImJihoPWgudm8pLGUuYWRkKGEsbmV3IFBkKGgpKSk7dmFyIGY9dGhpcy5ldmFsdWF0ZShjKSxnPWViKGUsZik7aWYoZyBpbnN0YW5jZW9mIFRhKXJldHVybiBnfX1mdW5jdGlvbiBsZihhLGIpe3ZhciBjLGQ7dHJ5e2Q9dGhpcy5ldmFsdWF0ZShhKX1jYXRjaChmKXtpZighKGYgaW5zdGFuY2VvZiBiYiYmZi5TbikpdGhyb3cgZjtjPWZ9dmFyIGU9dGhpcy5ldmFsdWF0ZShiKTtpZihlIGluc3RhbmNlb2YgVGEpcmV0dXJuIGU7aWYoYyl0aHJvdyBjO2lmKGQgaW5zdGFuY2VvZiBUYSlyZXR1cm4gZH07dmFyIG5mPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBnYjttZih0aGlzKX07bmYucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSC5yayhhKX07dmFyIG1mPWZ1bmN0aW9uKGEpe3ZhciBiPWZ1bmN0aW9uKGMsZCl7dmFyIGU9bmV3IExkKFN0cmluZyhjKSxkKTtlLlphKCk7dmFyIGY9U3RyaW5nKGMpO2EuSC5ILnNldChmLGUpO2RiLnNldChmLGUpfTtiKCJtYXAiLEllKTtiKCJhbmQiLHRkKTtiKCJjb250YWlucyIsd2QpO2IoImVxdWFscyIsdWQpO2IoIm9yIix2ZCk7Yigic3RhcnRzV2l0aCIseGQpO2IoInZhcmlhYmxlIix5ZCl9O25mLnByb3RvdHlwZS5RYj1mdW5jdGlvbihhKXt0aGlzLkguUWIoYSl9O3ZhciBwZj1mdW5jdGlvbigpe3RoaXMuSz0hMTt0aGlzLkg9bmV3IGdiO29mKHRoaXMpO3RoaXMuSz0hMH07cGYucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHFmKHRoaXMuSC5yayhhKSl9O3ZhciByZj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIHFmKGEuSC5KcShiLGMpKX07cGYucHJvdG90eXBlLlphPWZ1bmN0aW9uKCl7dGhpcy5ILlphKCl9Owp2YXIgb2Y9ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oYyxkKXt2YXIgZT1TdHJpbmcoYyksZj1uZXcgTGQoZSxkKTtmLlphKCk7YS5ILkguc2V0KGUsZik7ZGIuc2V0KGUsZil9O2IoMCxaZCk7YigxLCRkKTtiKDIsYWUpO2IoMyxiZSk7Yig1NixlZik7Yig1NyxiZik7Yig1OCxhZik7Yig1OSxnZik7Yig2MCxjZik7Yig2MSxkZik7Yig2MixmZik7Yig1MyxjZSk7Yig0LGRlKTtiKDUsZWUpO2IoNjgsa2YpO2IoNTIsZmUpO2IoNixnZSk7Yig0OSxoZSk7Yig3LEhlKTtiKDgsSWUpO2IoOSxlZSk7Yig1MCxpZSk7YigxMCxqZSk7YigxMixrZSk7YigxMyxsZSk7Yig2NyxsZik7Yig1MSx3ZSk7Yig0NyxvZSk7Yig1NCxwZSk7Yig1NSxxZSk7Yig2Myx2ZSk7Yig2NCxyZSk7Yig2NSx0ZSk7Yig2Nix1ZSk7YigxNSx4ZSk7YigxNix6ZSk7YigxNyx6ZSk7YigxOCxBZSk7YigxOSxCZSk7YigyMCxDZSk7YigyMSxEZSk7YigyMixFZSk7YigyMyxGZSk7YigyNCxHZSk7YigyNSxKZSk7YigyNiwKS2UpO2IoMjcsTGUpO2IoMjgsTWUpO2IoMjksTmUpO2IoNDUsT2UpO2IoMzAsUGUpO2IoMzIsUWUpO2IoMzMsUWUpO2IoMzQsUmUpO2IoMzUsUmUpO2IoNDYsU2UpO2IoMzYsVGUpO2IoNDMsVWUpO2IoMzcsVmUpO2IoMzgsV2UpO2IoMzksWGUpO2IoNDAsWWUpO2IoNDQsaGYpO2IoNDEsWmUpO2IoNDIsJGUpfTtwZi5wcm90b3R5cGUuamU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ILmplKCl9O3BmLnByb3RvdHlwZS5RYj1mdW5jdGlvbihhKXt0aGlzLkguUWIoYSl9O3BmLnByb3RvdHlwZS5zZD1mdW5jdGlvbihhKXt0aGlzLkguc2QoYSl9OwpmdW5jdGlvbiBxZihhKXtpZihhIGluc3RhbmNlb2YgVGF8fGEgaW5zdGFuY2VvZiBLZHx8YSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZHx8YSBpbnN0YW5jZW9mIFBkfHxhPT09bnVsbHx8YT09PXZvaWQgMHx8dHlwZW9mIGE9PT0ic3RyaW5nInx8dHlwZW9mIGE9PT0ibnVtYmVyInx8dHlwZW9mIGE9PT0iYm9vbGVhbiIpcmV0dXJuIGF9O3ZhciBzZj1mdW5jdGlvbihhKXt0aGlzLm1lc3NhZ2U9YX07ZnVuY3Rpb24gdGYoYSl7YS5xdj0hMDtyZXR1cm4gYX07dmFyIHVmPXRmKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIifSksdmY9dGYoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyJ9KSx3Zj10ZihmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0iYm9vbGVhbiJ9KTtmdW5jdGlvbiB4ZihhKXt2YXIgYj0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbYV07cmV0dXJuIGI9PT12b2lkIDA/bmV3IHNmKCJWYWx1ZSAiK2ErIiBjYW4gbm90IGJlIGVuY29kZWQgaW4gd2ViLXNhZmUgYmFzZTY0IGRpY3Rpb25hcnkuIik6Yn07ZnVuY3Rpb24geWYoYSl7c3dpdGNoKGEpe2Nhc2UgMTpyZXR1cm4iMSI7Y2FzZSAyOmNhc2UgNDpyZXR1cm4iMCI7ZGVmYXVsdDpyZXR1cm4iLSJ9fTt2YXIgemY9L15bMS05YS16QS1aXy1dWzEtOWEtY11bMS05YS12XVxkJC87ZnVuY3Rpb24gQWYoYSxiKXtmb3IodmFyIGM9IiIsZD0hMDthPjc7KXt2YXIgZT1hJjMxO2E+Pj01O2Q/ZD0hMTplfD0zMjtjPSIiK3hmKGUpK2N9YTw8PTI7ZHx8KGF8PTMyKTtyZXR1cm4gYz0iIit4ZihhfGIpK2N9ZnVuY3Rpb24gQmYoYSxiKXtyZXR1cm4gYj09PXZvaWQgMHx8Yj09PTA/IiI6IiIrQWYoYSwxKSt4ZihiKX0KZnVuY3Rpb24gQ2YoYSxiKXt2YXIgYzt2YXIgZD1hLmhpLGU9YS5iaztkPT09dm9pZCAwP2M9IiI6KGV8fChlPTApLGM9IiIrQWYoMSwxKSt4ZihkPDwyfGUpKTt2YXIgZj0iNCIrYytCZigyLGEucXIpLGcsaD1hLklvO2c9aCYmemYudGVzdChoKT8iIitBZigzLDIpK2g6IiI7dmFyIGw7dmFyIG49YS5jdGlkO2lmKG4mJmIpe3ZhciBwPUFmKDUsMykscT1uLnNwbGl0KCItIikscj1xWzBdLnRvVXBwZXJDYXNlKCk7aWYociE9PSJHVE0iJiZyIT09Ik9QVCIpbD0iIjtlbHNle3ZhciB0PXFbMV07bD0iIitwK3hmKDErdC5sZW5ndGgpKyhhLkxzfHwwKSt0fX1lbHNlIGw9IiI7dmFyIHU9YS5jYW5vbmljYWxJZCx2PWEubWMseD1hLnp2LHk9ZitnK0JmKDQsYS5EbykrbCtCZig2LGEuRHQpKyh1PyIiK0FmKDcsMykreGYodS5sZW5ndGgpK3U6IiIpKyh2PyIiK0FmKDgsMykreGYodi5sZW5ndGgpK3Y6IiIpKyh4PyIiK0FmKDksMykreGYoeC5sZW5ndGgpK3g6IiIpLHo7dmFyIEM9YS56cjtDPQpDPT09dm9pZCAwP3t9OkM7Zm9yKHZhciBEPVtdLEk9bShPYmplY3Qua2V5cyhDKSksRz1JLm5leHQoKTshRy5kb25lO0c9SS5uZXh0KCkpe3ZhciBOPUcudmFsdWU7RFtOdW1iZXIoTildPUNbTl19aWYoRC5sZW5ndGgpe3ZhciBTPUFmKDEwLDMpLFc7aWYoRC5sZW5ndGg9PT0wKVc9eGYoMCk7ZWxzZXtmb3IodmFyIGVhPVtdLGphPTAsZmE9ITEsc2E9MDtzYTxELmxlbmd0aDtzYSsrKXtmYT0hMDt2YXIgZGE9c2ElNjtEW3NhXSYmKGphfD0xPDxkYSk7ZGE9PT01JiYoZWEucHVzaCh4ZihqYSkpLGphPTAsZmE9ITEpfWZhJiZlYS5wdXNoKHhmKGphKSk7Vz1lYS5qb2luKCIiKX12YXIgbWE9Vzt6PSIiK1MreGYobWEubGVuZ3RoKSttYX1lbHNlIHo9IiI7dmFyIFBhPWEuVXMsRmE9YS5udDtyZXR1cm4geSt6KyhQYT8iIitBZigxMSwzKSt4ZihQYS5sZW5ndGgpK1BhOiIiKSsoRmE/IiIrQWYoMTMsMykreGYoRmEubGVuZ3RoKStGYToiIikrQmYoMTQsYS5FdCkrQmYoMTUsYS5ydikrQmYoMTYsCmEuQXYpfTtmdW5jdGlvbiBEZihhKXtmb3IodmFyIGI9W10sYz0wLGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGU9YS5jaGFyQ29kZUF0KGQpO2U8MTI4P2JbYysrXT1lOihlPDIwNDg/YltjKytdPWU+PjZ8MTkyOigoZSY2NDUxMik9PTU1Mjk2JiZkKzE8YS5sZW5ndGgmJihhLmNoYXJDb2RlQXQoZCsxKSY2NDUxMik9PTU2MzIwPyhlPTY1NTM2KygoZSYxMDIzKTw8MTApKyhhLmNoYXJDb2RlQXQoKytkKSYxMDIzKSxiW2MrK109ZT4+MTh8MjQwLGJbYysrXT1lPj4xMiY2M3wxMjgpOmJbYysrXT1lPj4xMnwyMjQsYltjKytdPWU+PjYmNjN8MTI4KSxiW2MrK109ZSY2M3wxMjgpfXJldHVybiBifTtmdW5jdGlvbiBFZihhLGIpe2Zvcih2YXIgYz1xYihiKSxkPW5ldyBVaW50OEFycmF5KGMubGVuZ3RoKSxlPTA7ZTxjLmxlbmd0aDtlKyspZFtlXT1jLmNoYXJDb2RlQXQoZSk7aWYoZC5sZW5ndGghPT0zMil0aHJvdyBFcnJvcigiS2V5IGlzIG5vdCAzMiBieXRlcy4iKTtyZXR1cm4gRmYoYSxkKX1mdW5jdGlvbiBGZihhLGIpe2lmKGE9PT0iIilyZXR1cm4iIjt2YXIgYz1aYihhKSxkPWIuc2xpY2UoLTIpLGU9W10uY29uY2F0KHcoZCksdyhjKSkubWFwKGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGdeYltoJWIubGVuZ3RoXX0pLGY9bmV3IFVpbnQ4QXJyYXkoW10uY29uY2F0KHcoZSksdyhkKSkpO3JldHVybiBwYihTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx3KGYpKSkucmVwbGFjZSgvXC4rJC8sIiIpfTt2YXIgR2Y9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIpe3JldHVybnt0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBifX19cmV0dXJue2NwOmEoImNvbnNlbnQiKSxaazphKCJjb252ZXJ0X2Nhc2VfdG8iKSxhbDphKCJjb252ZXJ0X2ZhbHNlX3RvIiksYmw6YSgiY29udmVydF9udWxsX3RvIiksZXA6YSgiY29udmVydF90b19ib29sZWFuIiksYWg6YSgiY29udmVydF90b19udW1iZXIiKSxmbDphKCJjb252ZXJ0X3RydWVfdG8iKSxpbDphKCJjb252ZXJ0X3VuZGVmaW5lZF90byIpLFl0OmEoImRlYnVnX21vZGVfbWV0YWRhdGEiKSxZYjphKCJmdW5jdGlvbiIpLFJtOmEoImluc3RhbmNlX25hbWUiKSxOcTphKCJsaXZlX29ubHkiKSxPcTphKCJtYWx3YXJlX2Rpc2FibGVkIiksTUVUQURBVEE6YSgibWV0YWRhdGEiKSxScTphKCJvcmlnaW5hbF9hY3Rpdml0eV9pZCIpLFR1OmEoIm9yaWdpbmFsX3ZlbmRvcl90ZW1wbGF0ZV9pZCIpLFN1OmEoIm9uY2Vfb25fbG9hZCIpLFFxOmEoIm9uY2VfcGVyX2V2ZW50IiksCmtuOmEoIm9uY2VfcGVyX2xvYWQiKSxWdTphKCJwcmlvcml0eV9vdmVycmlkZSIpLFl1OmEoInJlc3BlY3RlZF9jb25zZW50X3R5cGVzIiksdG46YSgic2V0dXBfdGFncyIpLHlqOmEoInRhZ19pZCIpLERuOmEoInRlYXJkb3duX3RhZ3MiKSxwbDphKCJkaXNhYmxlZF9pbl9nb29nbGVfbW9kZSIpLEZxOmEoImdlbmVyYXRlZF90YWdnaW5nX21ldGFkYXRhIil9fSgpO2Z1bmN0aW9uIEhmKGEsYil7dmFyIGM9e307Y1tHZi5ZYl09Il9fIithO2Zvcih2YXIgZCBpbiBiKWIuaGFzT3duUHJvcGVydHkoZCkmJihjWyJ2dHBfIitkXT1iW2RdKTtyZXR1cm4gY307ZnVuY3Rpb24gSWYoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYyxkO3JldHVybigoYz1kYXRhKT09bnVsbD8wOihkPWMuYmxvYik9PW51bGw/MDpkLmhhc093blByb3BlcnR5KGEpKT8hIWRhdGEuYmxvYlthXTpifWZ1bmN0aW9uIEUoYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyIiOmI7dmFyIGMsZDtyZXR1cm4oKGM9ZGF0YSk9PW51bGw/MDooZD1jLmJsb2IpPT1udWxsPzA6ZC5oYXNPd25Qcm9wZXJ0eShhKSk/U3RyaW5nKGRhdGEuYmxvYlthXSk6Yn1mdW5jdGlvbiBKZihhKXt2YXIgYixjO3JldHVybigoYj1kYXRhKT09bnVsbD8wOihjPWIuYmxvYik9PW51bGw/MDpjLmhhc093blByb3BlcnR5KGEpKT9OdW1iZXIoZGF0YS5ibG9iW2FdKTowfWZ1bmN0aW9uIEtmKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD9bXTpiO3ZhciBjLGQsZT0oYz1kYXRhKT09bnVsbD92b2lkIDA6KGQ9Yy5ibG9iKT09bnVsbD92b2lkIDA6ZFthXTtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOmJ9CmZ1bmN0aW9uIExmKGEpe3ZhciBiO2I9Yj09PXZvaWQgMD8iIjpiO3ZhciBjPU1mKDQ2KTtyZXR1cm4gYyYmKGM9PW51bGw/MDpjLmhhc093blByb3BlcnR5KGEpKT9TdHJpbmcoY1thXSk6Yn1mdW5jdGlvbiBOZihhLGIpe3ZhciBjPU1mKDQ2KTtyZXR1cm4gYyYmKGM9PW51bGw/MDpjLmhhc093blByb3BlcnR5KGEpKT9OdW1iZXIoY1thXSk6Yn1mdW5jdGlvbiBNZihhKXt2YXIgYixjO3JldHVybihiPWRhdGEpPT1udWxsP3ZvaWQgMDooYz1iLmJsb2IpPT1udWxsP3ZvaWQgMDpjW2FdfTt2YXIgT2Y9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2Q9RXJyb3IuY2FsbCh0aGlzLGMpO3RoaXMubWVzc2FnZT1kLm1lc3NhZ2U7InN0YWNrImluIGQmJih0aGlzLnN0YWNrPWQuc3RhY2spO3RoaXMucGVybWlzc2lvbklkPWE7dGhpcy5wYXJhbWV0ZXJzPWI7dGhpcy5uYW1lPSJQZXJtaXNzaW9uRXJyb3IifTt3YShPZixFcnJvcik7T2YucHJvdG90eXBlLmdldE1lc3NhZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXNzYWdlfTtmdW5jdGlvbiBQZihhLGIpe2lmKEFycmF5LmlzQXJyYXkoYSkpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJjb250ZXh0Iix7dmFsdWU6e2xpbmU6YlswXX19KTtmb3IodmFyIGM9MTtjPGEubGVuZ3RoO2MrKylQZihhW2NdLGJbY10pfX07ZnVuY3Rpb24gUWYoKXtyZXR1cm4gZnVuY3Rpb24oYSxiKXt2YXIgYzt2YXIgZD1SZjthIGluc3RhbmNlb2YgYmI/KGEuSD1kLGM9YSk6Yz1uZXcgYmIoYSxkKTt2YXIgZT1jO2ImJmUuSy5wdXNoKGIpO3Rocm93IGU7fX1mdW5jdGlvbiBSZihhKXtpZighYS5sZW5ndGgpcmV0dXJuIGE7YS5wdXNoKHtpZDoibWFpbiIsbGluZTowfSk7Zm9yKHZhciBiPWEubGVuZ3RoLTE7Yj4wO2ItLSlBYihhW2JdLmlkKSYmYS5zcGxpY2UoYisrLDEpO2Zvcih2YXIgYz1hLmxlbmd0aC0xO2M+MDtjLS0pYVtjXS5saW5lPWFbYy0xXS5saW5lO2Euc3BsaWNlKDAsMSk7cmV0dXJuIGF9O3ZhciBTZj1SZWdFeHAoIlteMC05XFwuKy1dIiwiZyIpLFRmPVJlZ0V4cCgiW14wLTlcXCwrLV0iLCJnIiksVWY9UmVnRXhwKCJbXjAtOSstXSIsImciKTsKZnVuY3Rpb24gVmYoYSxiKXtpZih0eXBlb2YgYT09PSJudW1iZXIiKXJldHVybiBhO3ZhciBjPVN0cmluZyhhKSxkO2lmKGI9PT0iQVVUT01BVElDIil7dmFyIGU9KGMubWF0Y2goL1wuL2cpfHxbXSkubGVuZ3RoLGY9KGMubWF0Y2goLywvZyl8fFtdKS5sZW5ndGgsZz0iTk9ORSI7aWYoZT4wJiZmPjApe3ZhciBoPWMubGFzdEluZGV4T2YoIi4iKT5jLmxhc3RJbmRleE9mKCIsIik7aCYmZT09PTE/Zz0iUEVSSU9EIjpofHxmIT09MXx8KGc9IkNPTU1BIil9ZWxzZSBlPT09MT9nPShjLnNwbGl0KCIuIilbMV0ubWF0Y2goL1swLTldL2cpfHxbXSkubGVuZ3RoIT09Mz8iUEVSSU9EIjoiTk9ORSI6Zj09PTEmJihnPShjLnNwbGl0KCIsIilbMV0ubWF0Y2goL1swLTldL2cpfHxbXSkubGVuZ3RoIT09Mz8iQ09NTUEiOiJOT05FIik7ZD1nfWVsc2UgZD1iPT09IkNPTU1BIj8iQ09NTUEiOiJQRVJJT0QiO3ZhciBsLG47ZD09PSJQRVJJT0QiPyhsPSIuIixuPVNmKTpkPT09IkNPTU1BIj8obD0iLCIsCm49VGYpOihsPSIiLG49VWYpO3ZhciBwPWMucmVwbGFjZShuLCIiKTtpZihsIT09IiImJnAuc3BsaXQobCkubGVuZ3RoPjIpcmV0dXJuIGE7dmFyIHE9cC5yZXBsYWNlKC8sL2csIi4iKTtpZihxPT09IiIpcmV0dXJuIGE7dmFyIHI9TnVtYmVyKHEpO3JldHVybiBpc05hTihyKT9hOnJ9O3ZhciBXZj1bXSxYZj17fTtmdW5jdGlvbiBZZihhKXtyZXR1cm4gV2ZbYV09PT12b2lkIDA/ITE6V2ZbYV19O3ZhciBaZj1mdW5jdGlvbigpe3RoaXMuSD17fX0sJGY9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkOyhkPWEuSClbYl0hPW51bGx8fChkW2JdPVtdKTthLkhbYl0ucHVzaChmdW5jdGlvbigpe3JldHVybiBjLmFwcGx5KG51bGwsdyhPYS5hcHBseSgwLGFyZ3VtZW50cykpKX0pfTtmdW5jdGlvbiBhZyhhLGIsYyxkKXtpZihhKWZvcih2YXIgZT0wO2U8YS5sZW5ndGg7ZSsrKXt2YXIgZj12b2lkIDAsZz0iQSBwb2xpY3kgZnVuY3Rpb24gZGVuaWVkIHRoZSBwZXJtaXNzaW9uIHJlcXVlc3QiO3RyeXtmPWFbZV0oYixjLGQpLGcrPSIuIn1jYXRjaChoKXtnPXR5cGVvZiBoPT09InN0cmluZyI/ZysoIjogIitoKTpoIGluc3RhbmNlb2YgRXJyb3I/ZysoIjogIitoLm1lc3NhZ2UpOmcrIi4ifWlmKCFmKXRocm93IG5ldyBPZihjLGQsZyk7fX0KZnVuY3Rpb24gYmcoYSxiKXt2YXIgYz1jZyhkZy5ILGIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO3RyeXtyZXR1cm4gYyhhKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19ZnVuY3Rpb24gY2coYSxiLGMpe3JldHVybiBmdW5jdGlvbihkKXtpZihkKXt2YXIgZT1hLkhbZF0sZj1hLkguYWxsO2lmKGV8fGYpe3ZhciBnPWMuYXBwbHkodm9pZCAwLFtkXS5jb25jYXQodyhPYS5hcHBseSgxLGFyZ3VtZW50cykpKSk7YWcoZSxiLGQsZyk7YWcoZixiLGQsZyl9fX19O3ZhciBnZz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpczt0aGlzLks9e307dGhpcy5IPW5ldyBaZjt2YXIgZT17fSxmPXt9LGc9Y2codGhpcy5ILGEsZnVuY3Rpb24oaCl7cmV0dXJuIGgmJmVbaF0/ZVtoXS5hcHBseSh2b2lkIDAsW2hdLmNvbmNhdCh3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpKTp7fX0pO0diKGIsZnVuY3Rpb24oaCxsKXtmdW5jdGlvbiBuKHEpe3ZhciByPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtpZighcFtxXSl0aHJvdyBlZyhxLHt9LCJUaGUgcmVxdWVzdGVkIGFkZGl0aW9uYWwgcGVybWlzc2lvbiAiK3ErIiBpcyBub3QgY29uZmlndXJlZC4iKTtnLmFwcGx5KG51bGwsW3FdLmNvbmNhdCh3KHIpKSl9dmFyIHA9e307R2IobCxmdW5jdGlvbihxLHIpe3ZhciB0PWZnKHEscixjKTtwW3FdPXQuYXNzZXJ0O2VbcV18fChlW3FdPXQuYWEpO3QuT24mJiFmW3FdJiYoZltxXT10Lk9uKX0pO2QuS1toXT1mdW5jdGlvbihxLHIpe3ZhciB0PXBbcV07aWYoIXQpdGhyb3cgZWcocSwKe30sIlRoZSByZXF1ZXN0ZWQgcGVybWlzc2lvbiAiK3ErIiBpcyBub3QgY29uZmlndXJlZC4iKTt2YXIgdT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7dC5hcHBseSh2b2lkIDAsdSk7Zy5hcHBseSh2b2lkIDAsdSk7dmFyIHY9ZltxXTt2JiZ2LmFwcGx5KG51bGwsW25dLmNvbmNhdCh3KHUuc2xpY2UoMSkpKSl9fSl9LGhnPWZ1bmN0aW9uKGEpe3JldHVybiBkZy5LW2FdfHxmdW5jdGlvbigpe319OwpmdW5jdGlvbiBmZyhhLGIsYyl7dHJ5e3ZhciBkPWNbIl9fIithXTtpZighZCl0aHJvdyBFcnJvcigiTm8gZnVuY3Rpb24gZm91bmQgZm9yIHBlcm1pc3Npb246ICIrYSsiLiIpO3ZhciBlPUhmKGEsYik7ZS52dHBfcGVybWlzc2lvbk5hbWU9YTtlLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I9ZWc7ZGVsZXRlIGVbR2YuWWJdO3JldHVybiBkKGUpfWNhdGNoKGYpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZyl7dGhyb3cgbmV3IE9mKGcse30sIlBlcm1pc3Npb24gIitnKyIgaXMgdW5rbm93bi4iKTt9LGFhOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IE9mKGEse30sIlBlcm1pc3Npb24gIithKyIgaXMgdW5rbm93bi4iKTt9fX19ZnVuY3Rpb24gZWcoYSxiLGMpe3JldHVybiBuZXcgT2YoYSxiLGMpfTt2YXIgaWc9RSg1KSxqZz1FKDIwKSxrZz1FKDEpLGxnPSExO3ZhciBtZz17fTttZy5Qbz1JZigyOSk7bWcuS3I9SWYoMjgpO2Z1bmN0aW9uIG5nKGEpe3ZhciBiPTEsYyxkLGU7aWYoYSlmb3IoYj0wLGQ9YS5sZW5ndGgtMTtkPj0wO2QtLSllPWEuY2hhckNvZGVBdChkKSxiPShiPDw2JjI2ODQzNTQ1NSkrZSsoZTw8MTQpLGM9YiYyNjYzMzgzMDQsYj1jIT09MD9iXmM+PjIxOmI7cmV0dXJuIGJ9O3ZhciBvZz1mdW5jdGlvbihhKXt0aGlzLmNhY2hlPWF9O29nLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7dmFyIGI9bmcoYSksYz10aGlzLmNhY2hlLmdldChiKTtpZighYylyZXR1cm57cHJvbWlzZTp2b2lkIDAsS2o6MH07aWYoRGF0ZS5ub3coKT49Yy50aW1lc3RhbXArOUU1KXJldHVybiB0aGlzLmNhY2hlLmRlbGV0ZShiKSx7cHJvbWlzZTp2b2lkIDAsS2o6M307dmFyIGQ9Yy5yZXNvbHZlZFZhbHVlPzI6MTtyZXR1cm57cHJvbWlzZTpjLnJlc29sdmVkVmFsdWU/UHJvbWlzZS5yZXNvbHZlKGMucmVzb2x2ZWRWYWx1ZSk6Yy5wcm9taXNlLEtqOmR9fTtvZy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9e3Byb21pc2U6YixyZXNvbHZlZFZhbHVlOnZvaWQgMCx0aW1lc3RhbXA6RGF0ZS5ub3coKX07dGhpcy5jYWNoZS5zZXQobmcoYSksYyk7Yi50aGVuKGZ1bmN0aW9uKGQpe2MucmVzb2x2ZWRWYWx1ZT1kfSl9O2Z1bmN0aW9uIHBnKGEpe3N3aXRjaChhKXtjYXNlIDA6YnJlYWs7Y2FzZSA5OnJldHVybiJlNCI7Y2FzZSA2OnJldHVybiJlNSI7Y2FzZSAxNDpyZXR1cm4iZTYiO2RlZmF1bHQ6cmV0dXJuImU3In19O3ZhciBGPXtEOntYYToiYWRfcGVyc29uYWxpemF0aW9uIixrYToiYWRfc3RvcmFnZSIsbWE6ImFkX3VzZXJfZGF0YSIscmE6ImFuYWx5dGljc19zdG9yYWdlIixuYzoicmVnaW9uIixzYToiY29uc2VudF91cGRhdGVkIixZZzoid2FpdF9mb3JfdXBkYXRlIixlaDoiZW5kcG9pbnRfdHlwZSIscXA6ImFwcF9yZW1vdmUiLHJwOiJhcHBfc3RvcmVfcmVmdW5kIix0cDoiYXBwX3N0b3JlX3N1YnNjcmlwdGlvbl9jYW5jZWwiLHVwOiJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX2NvbnZlcnQiLHZwOiJhcHBfc3RvcmVfc3Vic2NyaXB0aW9uX3JlbmV3Iix3cDoiY29uc2VudF91cGRhdGUiLHhwOiJjb252ZXJzaW9uIix2bDoiYWRkX3BheW1lbnRfaW5mbyIsd2w6ImFkZF9zaGlwcGluZ19pbmZvIix4ZToiYWRkX3RvX2NhcnQiLHllOiJyZW1vdmVfZnJvbV9jYXJ0Iix4bDoidmlld19jYXJ0IixBZDoiYmVnaW5fY2hlY2tvdXQiLGV1OiJnZW5lcmF0ZV9sZWFkIix6ZToic2VsZWN0X2l0ZW0iLG9jOiJ2aWV3X2l0ZW1fbGlzdCIsClFjOiJzZWxlY3RfcHJvbW90aW9uIixxYzoidmlld19wcm9tb3Rpb24iLEliOiJwdXJjaGFzZSIsQWU6InJlZnVuZCIscmM6InZpZXdfaXRlbSIseWw6ImFkZF90b193aXNobGlzdCIseXA6ImV4Y2VwdGlvbiIsenA6ImZpcnN0X29wZW4iLEFwOiJmaXJzdF92aXNpdCIsd2E6Imd0YWcuY29uZmlnIixKYjoiZ3RhZy5nZXQiLEJwOiJpbl9hcHBfcHVyY2hhc2UiLHNjOiJwYWdlX3ZpZXciLENwOiJzY3JlZW5fdmlldyIsRHA6InNlc3Npb25fc3RhcnQiLEVwOiJzb3VyY2VfdXBkYXRlIixGcDoidGltaW5nX2NvbXBsZXRlIixHcDoidHJhY2tfc29jaWFsIix5ZjoidXNlcl9lbmdhZ2VtZW50IixIcDoidXNlcl9pZF91cGRhdGUiLGZoOiJicmFpZF9saW5rX2RlY29yYXRpb25fc291cmNlIixnaDoiYnJhaWRfc3RvcmFnZV9zb3VyY2UiLEJkOiJnY2xpZF9saW5rX2RlY29yYXRpb25fc291cmNlIixDZDoiZ2NsaWRfc3RvcmFnZV9zb3VyY2UiLFNiOiJnY2xnYiIsbGI6ImdjbGlkIix6bDoiZ2NsaWRfbGVuIiwKQmU6ImdjbGdzIixDZToiZ2NsbHAiLERlOiJnY2xzdCIsbWI6ImFkc19kYXRhX3JlZGFjdGlvbiIsemY6ImdhZF9zb3VyY2UiLEFmOiJnYWRfc291cmNlX3NyYyIsRGQ6ImdjbGlkX3VybCIsQWw6ImdjbHNyYyIsQmY6ImdicmFpZCIsRWU6IndicmFpZCIsUmM6ImFsbG93X2FkX3BlcnNvbmFsaXphdGlvbl9zaWduYWxzIixyaToiYWxsb3dfY3VzdG9tX3NjcmlwdHMiLGhoOiJhbGxvd19kaXNwbGF5X2ZlYXR1cmVzIixzaToiYWxsb3dfZW5oYW5jZWRfY29udmVyc2lvbnMiLFNjOiJhbGxvd19nb29nbGVfc2lnbmFscyIsdWk6ImFsbG93X2ludGVyZXN0X2dyb3VwcyIsSXA6ImFwcF9pZCIsSnA6ImFwcF9pbnN0YWxsZXJfaWQiLEtwOiJhcHBfbmFtZSIsTHA6ImFwcF92ZXJzaW9uIixFZDoiYXVpZCIsZnU6ImF1dG9fZGV0ZWN0aW9uX2VuYWJsZWQiLEJsOiJhdXRvX2V2ZW50IixDbDoiYXdfcmVtYXJrZXRpbmciLGloOiJhd19yZW1hcmtldGluZ19vbmx5IixDZjoiZGlzY291bnQiLERmOiJhd19mZWVkX2NvdW50cnkiLApFZjoiYXdfZmVlZF9sYW5ndWFnZSIsSGE6Iml0ZW1zIixGZjoiYXdfbWVyY2hhbnRfaWQiLHdpOiJhd19iYXNrZXRfdHlwZSIsR2Y6ImNhbXBhaWduX2NvbnRlbnQiLEhmOiJjYW1wYWlnbl9pZCIsSWY6ImNhbXBhaWduX21lZGl1bSIsSmY6ImNhbXBhaWduX25hbWUiLEtmOiJjYW1wYWlnbiIsTGY6ImNhbXBhaWduX3NvdXJjZSIsTWY6ImNhbXBhaWduX3Rlcm0iLEtiOiJjbGllbnRfaWQiLERsOiJybmQiLHhpOiJjb25zZW50X3VwZGF0ZV90eXBlIixNcDoiY29udGVudF9ncm91cCIsTnA6ImNvbnRlbnRfdHlwZSIsRmQ6ImNvbnZlcnNpb25fY29va2llX3ByZWZpeCIseWk6ImNvbnZlcnNpb25faWQiLHVjOiJjb252ZXJzaW9uX2xpbmtlciIsSGQ6ImNvbnZlcnNpb25fbGlua2VyX2Rpc2FibGVkIixGZToiY29udmVyc2lvbl9hcGkiLHppOiJfJnJjYiIsamg6ImNvb2tpZV9kZXByZWNhdGlvbiIsTGI6ImNvb2tpZV9kb21haW4iLENiOiJjb29raWVfZXhwaXJlcyIsVGI6ImNvb2tpZV9mbGFncyIsCklkOiJjb29raWVfbmFtZSIsdmM6ImNvb2tpZV9wYXRoIixuYjoiY29va2llX3ByZWZpeCIsSmQ6ImNvb2tpZV91cGRhdGUiLFRjOiJjb3VudHJ5IixlYjoiY3VycmVuY3kiLEdlOiJjdXN0b21lcl9saWZldGltZV92YWx1ZSIsa2g6ImN1c3RvbWVyX3R5cGUiLEhlOiJjdXN0b21fbWFwIixBaToiZ2NsZGNfbGlua19kZWNvcmF0aW9uX3NvdXJjZSIsQmk6ImdjbGRjX3N0b3JhZ2Vfc291cmNlIixOZjoiZ2NsZGMiLEtkOiJkY2xpZCIsRWw6ImRlYnVnX21vZGUiLE9hOiJkZXZlbG9wZXJfaWQiLE9wOiJkaXNhYmxlX21lcmNoYW50X3JlcG9ydGVkX3B1cmNoYXNlcyIsVWM6ImRjX2N1c3RvbV9wYXJhbXMiLFBwOiJkY19uYXR1cmFsX3NlYXJjaCIsUXA6ImR5bmFtaWNfZXZlbnRfc2V0dGluZ3MiLEZsOiJhZmZpbGlhdGlvbiIsbWg6ImNoZWNrb3V0X29wdGlvbiIsQ2k6ImNoZWNrb3V0X3N0ZXAiLEdsOiJjb3Vwb24iLE9mOiJpdGVtX2xpc3RfbmFtZSIsRGk6Imxpc3RfbmFtZSIsUnA6InByb21vdGlvbnMiLApMZDoic2hpcHBpbmciLEhsOiJ0YXgiLG5oOiJlbmdhZ2VtZW50X3RpbWVfbXNlYyIsb2g6ImVuaGFuY2VkX2NsaWVudF9pZCIsU3A6ImVuaGFuY2VkX2NvbnZlcnNpb25zIixndToiZW5oYW5jZWRfY29udmVyc2lvbnNfYXV0b21hdGljX3NldHRpbmdzIixJZToiZXN0aW1hdGVkX2RlbGl2ZXJ5X2RhdGUiLFBmOiJldmVudF9jYWxsYmFjayIsVHA6ImV2ZW50X2NhdGVnb3J5IixWYzoiZXZlbnRfZGV2ZWxvcGVyX2lkX3N0cmluZyIsTWQ6ImV2ZW50X2lkIixFaToiX2V2ZW50X2pvaW5faWQiLFVwOiJldmVudF9sYWJlbCIsVWI6ImV2ZW50IixJbDoiXyZhZSIsRmk6ImV2ZW50X3NldHRpbmdzIixwaDoiZXZlbnRfdGltZW91dCIsVnA6ImRlc2NyaXB0aW9uIixXcDoiZmF0YWwiLFhwOiJleHBlcmltZW50cyIsTmQ6ImV4dF9jbGllbnRfaWQiLEdpOiJmaXJlYmFzZV9pZCIsUWY6ImZpcnN0X3BhcnR5X2NvbGxlY3Rpb24iLFJmOiJfeF8yMCIsVmI6Il94XzE5IixZcDoiZmxpZ2h0X2Vycm9yX2NvZGUiLApacDoiZmxpZ2h0X2Vycm9yX21lc3NhZ2UiLEhpOiJmbF9hY3Rpdml0eV9jYXRlZ29yeSIsSWk6ImZsX2FjdGl2aXR5X2dyb3VwIixxaDoiZmxfYWR2ZXJ0aXNlcl9pZCIsSmk6Im1hdGNoX2lkIixKbDoiZmxfcmFuZG9tX251bWJlciIsS2w6InRyYW4iLExsOiJ1IixyaDoiZ2FjX2djbGlkIixKZToiZ2FjX3dicmFpZCIsTWw6ImdhY193YnJhaWRfbXVsdGlwbGVfY29udmVyc2lvbnMiLGFxOiJnYV9yZXN0cmljdF9kb21haW4iLE5sOiJnYV90ZW1wX2NsaWVudF9pZCIsYnE6ImdhX3RlbXBfZWNpZCIsS2U6ImdkcHJfYXBwbGllcyIsc2g6Il9ndF9tZXRhZGF0YSIsT2w6Imdlb19ncmFudWxhcml0eSIsU2Y6InZhbHVlX2NhbGxiYWNrIixUZjoidmFsdWVfa2V5IixUYToiZ29vZ2xlX2FuYWx5c2lzX3BhcmFtcyIsTGU6Il9nb29nbGVfbmciLGNxOiJfb25vIixVZjoiZ29vZ2xlX3NpZ25hbHMiLGZxOiJnb29nbGVfdGxkIix0aDoiZ3BwX3NpZCIsdWg6ImdwcF9zdHJpbmciLE9kOiJncm91cHMiLApQbDoiZ3NhX2V4cGVyaW1lbnRfaWQiLFZmOiJndGFnX2V2ZW50X2ZlYXR1cmVfdXNhZ2UiLFFsOiJndG1fdXAiLE1lOiJpZnJhbWVfc3RhdGUiLFdmOiJpZ25vcmVfcmVmZXJyZXIiLFJsOiJpbnRlcm5hbF90cmFmZmljX3Jlc3VsdHMiLFNsOiJfaXNfZnBtIixZYzoiaXNfbGVnYWN5X2NvbnZlcnRlZCIsWmM6ImlzX2xlZ2FjeV9sb2FkZWQiLEtpOiJpc19wYXNzdGhyb3VnaCIsUGQ6Il9scHMiLHRiOiJsYW5ndWFnZSIsTGk6ImxlZ2FjeV9kZXZlbG9wZXJfaWRfc3RyaW5nIixEYjoibGlua2VyIixYZjoiYWNjZXB0X2luY29taW5nIix3YzoiZGVjb3JhdGVfZm9ybXMiLEFhOiJkb21haW5zIixhZDoidXJsX3Bvc2l0aW9uIixRZDoibWVyY2hhbnRfZmVlZF9sYWJlbCIsUmQ6Im1lcmNoYW50X2ZlZWRfbGFuZ3VhZ2UiLFNkOiJtZXJjaGFudF9pZCIsVGw6Im1ldGhvZCIsZ3E6Im5hbWUiLFVsOiJuYXZpZ2F0aW9uX3R5cGUiLE5lOiJuZXdfY3VzdG9tZXIiLE1pOiJub25faW50ZXJhY3Rpb24iLApocToib3B0aW1pemVfaWQiLFZsOiJwYWdlX2hvc3RuYW1lIixZZjoicGFnZV9wYXRoIixVYToicGFnZV9yZWZlcnJlciIsTWI6InBhZ2VfdGl0bGUiLGlxOiJwYXNzZW5nZXJzIixXbDoicGhvbmVfY29udmVyc2lvbl9jYWxsYmFjayIsanE6InBob25lX2NvbnZlcnNpb25fY291bnRyeV9jb2RlIixYbDoicGhvbmVfY29udmVyc2lvbl9jc3NfY2xhc3MiLGtxOiJwaG9uZV9jb252ZXJzaW9uX2lkcyIsWWw6InBob25lX2NvbnZlcnNpb25fbnVtYmVyIixabDoicGhvbmVfY29udmVyc2lvbl9vcHRpb25zIixscToiX3BsYXRpbnVtX3JlcXVlc3Rfc3RhdHVzIixtcToiX3Byb3RlY3RlZF9hdWRpZW5jZV9lbmFibGVkIix3aDoicXVhbnRpdHkiLHhoOiJyZWRhY3RfZGV2aWNlX2luZm8iLGFtOiJyZWZlcnJhbF9leGNsdXNpb25fZGVmaW5pdGlvbiIsaHU6Il9yZXF1ZXN0X3N0YXJ0X3RpbWUiLFdiOiJyZXN0cmljdGVkX2RhdGFfcHJvY2Vzc2luZyIsbnE6InJldG9rZW4iLG9xOiJzYW1wbGVfcmF0ZSIsCk5pOiJzY3JlZW5fbmFtZSIsYmQ6InNjcmVlbl9yZXNvbHV0aW9uIixibToiX3NjcmlwdF9zb3VyY2UiLHBxOiJzZWFyY2hfdGVybSIsVGQ6InNlbmRfcGFnZV92aWV3IixYYjoic2VuZF90byIsT2k6InNlcnZlcl9jb250YWluZXJfM3BfZW5yaWNobWVudCIsZGQ6InNlcnZlcl9jb250YWluZXJfdXJsIixxcToic2Vzc2lvbl9hdHRyaWJ1dGVzX2VuY29kZWQiLHloOiJzZXNzaW9uX2R1cmF0aW9uIix6aDoic2Vzc2lvbl9lbmdhZ2VkIixQaToic2Vzc2lvbl9lbmdhZ2VkX3RpbWUiLHhjOiJzZXNzaW9uX2lkIixBaDoic2Vzc2lvbl9udW1iZXIiLFpmOiJfc2hhcmVkX3VzZXJfaWQiLFVkOiJkZWxpdmVyeV9wb3N0YWxfY29kZSIsaXU6Il90YWdfZmlyaW5nX2RlbGF5IixqdToiX3RhZ19maXJpbmdfdGltZSIsa3U6InRlbXBvcmFyeV9jbGllbnRfaWQiLFFpOiJ0ZXN0b25seSIscnE6Il90aW1lem9uZSIsUGU6InRvcG1vc3RfdXJsIixRZToidHJhY2tpbmdfaWQiLFJpOiJ0cmFmZmljX3R5cGUiLApQYToidHJhbnNhY3Rpb25faWQiLGRtOiJ0cmFuc2FjdGlvbl9pZF9zb3VyY2UiLHljOiJ0cmFuc3BvcnRfdXJsIixzcToidHJpcF90eXBlIixWZDoidXBkYXRlIix6YzoidXJsX3Bhc3N0aHJvdWdoIixmbToidXB0Z3MiLGNnOiJfdXNlcl9hZ2VudF9hcmNoaXRlY3R1cmUiLGRnOiJfdXNlcl9hZ2VudF9iaXRuZXNzIixlZzoiX3VzZXJfYWdlbnRfZnVsbF92ZXJzaW9uX2xpc3QiLGZnOiJfdXNlcl9hZ2VudF9tb2JpbGUiLGdnOiJfdXNlcl9hZ2VudF9tb2RlbCIsaGc6Il91c2VyX2FnZW50X3BsYXRmb3JtIixpZzoiX3VzZXJfYWdlbnRfcGxhdGZvcm1fdmVyc2lvbiIsamc6Il91c2VyX2FnZW50X3dvdzY0IixBYzoidXNlcl9kYXRhIixnbToidXNlcl9kYXRhX2F1dG9fbGF0ZW5jeSIsaG06InVzZXJfZGF0YV9hdXRvX21ldGEiLGltOiJ1c2VyX2RhdGFfYXV0b19tdWx0aSIsam06InVzZXJfZGF0YV9hdXRvX3NlbGVjdG9ycyIsa206InVzZXJfZGF0YV9hdXRvX3N0YXR1cyIsQmM6InVzZXJfZGF0YV9tb2RlIiwKbG06InVzZXJfZGF0YV9zZXR0aW5ncyIsZmI6InVzZXJfaWQiLFdkOiJ1c2VyX3Byb3BlcnRpZXMiLG9tOiJfdXNlcl9yZWdpb24iLGtnOiJ1c19wcml2YWN5X3N0cmluZyIsUWE6InZhbHVlIixxbToid2JyYWlkX211bHRpcGxlX2NvbnZlcnNpb25zIixlZDoiX2ZwbV9wYXJhbWV0ZXJzIixXaToiX2hvc3RfbmFtZSIsVm06Il9pbl9wYWdlX2NvbW1hbmQiLFlpOiJfaXBfb3ZlcnJpZGUiLFptOiJfaXNfcGFzc3Rocm91Z2hfY2lkIixKaDoiX21lYXN1cmVtZW50X3R5cGUiLGRlOiJub25fcGVyc29uYWxpemVkX2FkcyIsb2o6Il9zc3RfcGFyYW1ldGVycyIsWXE6InNndG1fZ2VvX3VzZXJfY291bnRyeSIsR2Q6ImNvbnZlcnNpb25fbGFiZWwiLHphOiJwYWdlX2xvY2F0aW9uIixXYzoiX2V4dHJhY3RlZF9kYXRhIixYYzoiZ2xvYmFsX2RldmVsb3Blcl9pZF9zdHJpbmciLE9lOiJ0Y19wcml2YWN5X3N0cmluZyJ9fTt2YXIgSD17Sjp7U286ImFib3J0X3dpdGhvdXRfZmFpbCIsa2k6ImFjY2VwdF9ieV9kZWZhdWx0IixCazoiYWRkX3RhZ190aW1pbmciLERrOiJhZHNfY29uc2VudF9ncmFudGVkIix2ZDoiYWRzX2V2ZW50X3BhZ2VfdmlldyIsd2Q6ImFsbG93X2FkX3BlcnNvbmFsaXphdGlvbiIsUXQ6ImF1dG9fZXZlbnQiLEtrOiJiYXRjaF9vbl9uYXZpZ2F0aW9uIixYZzoiYmlzY290dGlfam9pbl9pZCIsUGs6ImNsaWVudF9pZF9zb3VyY2UiLHVmOiJjb25zZW50X2V2ZW50X2lkIix2ZjoiY29uc2VudF9wcmlvcml0eV9pZCIsU3Q6ImNvbnNlbnRfc3RhdGUiLHNhOiJjb25zZW50X3VwZGF0ZWQiLHdmOiJjb252ZXJzaW9uX2xpbmtlcl9lbmFibGVkIixUdDoiY29udmVyc2lvbl9tYXJraW5nX2NhbGxlZCIsR2E6ImNvb2tpZV9vcHRpb25zIixvbDoiZGNfcmFuZG9tIixadDoiZGVkdXBlX2lkIixQYzoiZW1fZXZlbnQiLGJ1OiJlbmRwb2ludF9mb3JfZGVidWciLHRsOiJlbmhhbmNlZF9jbGllbnRfaWRfc291cmNlIiwKcHA6ImVuaGFuY2VkX21hdGNoX3Jlc3VsdCIscm06ImV1aWRfbG9nZ2VkX2luX3N0YXRlIixsZzoiZXVpZF9tb2RlX2VuYWJsZWQiLHRxOiJldmVudF9wcm92ZW5hbmNlIixtdToiZXZlbnRfc291cmNlIixFYjoiZXZlbnRfc3RhcnRfdGltZXN0YW1wX21zIix3bToiZXZlbnRfdXNhZ2UiLENoOiJleHRyYV90YWdfZXhwZXJpbWVudF9pZHMiLHB1OiJhZGRfcGFyYW1ldGVyIixVaToiY291bnRpbmdfbWV0aG9kIixEaDoic2VuZF9hc19pZnJhbWUiLHF1OiJwYXJhbWV0ZXJfb3JkZXIiLEVoOiJwYXJzZWRfdGFyZ2V0IixzdToiZm9ybV9ldmVudF9jYW5jZWxlZCIsQXE6ImdhNF9jb2xsZWN0aW9uX3N1YmRvbWFpbiIsVmk6ImdhNF9yZXF1ZXN0X2ZsYWdzIixObToiZ2JyYWlkX2Nvb2tpZV9tYXJrZWQiLFFtOiJndG1fZXh0cmFjdGVkX2RhdGEiLENjOiJoYW5kbGVfaW50ZXJuYWxseSIsdXU6Imhhc19nYV9jb252ZXJzaW9uX2NvbnNlbnRzIixkYToiaGl0X3R5cGUiLERjOiJoaXRfdHlwZV9vdmVycmlkZSIsCkhxOiJpZ25vcmVfZHVwZV9jb25maWciLE91OiJpc19jb25maWdfY29tbWFuZCIsR2g6ImlzX2NvbnNlbnRfdXBkYXRlIixtZzoiaXNfY29udmVyc2lvbiIsV206ImlzX2Vjb21tZXJjZSIsWG06ImlzX2VjX2NtX3NwbGl0IixhZToiaXNfZXh0ZXJuYWxfZXZlbnQiLG5nOiJpc19maXJzdF92aXNpdCIsWW06ImlzX2ZpcnN0X3Zpc2l0X2NvbnZlcnNpb24iLFppOiJpc19mbF9mYWxsYmFja19jb252ZXJzaW9uX2Zsb3dfYWxsb3dlZCIsZmQ6ImlzX2ZwbV9lbmNyeXB0aW9uIixhajoiaXNfZnBtX3NwbGl0IixvYjoiaXNfZ2NwX2Jyb3dzZXIiLGJqOiJpc19nb29nbGVfbWVhc3VyZW1lbnRfYWxsb3dlZCIsY2o6ImlzX2dvb2dsZV9zaWduYWxzX2VuYWJsZWQiLGJlOiJpc19tZXJjaGFudF9jZW50ZXIiLEhoOiJpc19uZXdfdG9fc2l0ZSIsRWM6ImlzX3BlcnNvbmFsaXphdGlvbiIsZGo6ImlzX3NlcnZlcl9zaWRlX2Rlc3RpbmF0aW9uIixUZToiaXNfc2Vzc2lvbl9zdGFydCIsYm46ImlzX3Nlc3Npb25fc3RhcnRfY29udmVyc2lvbiIsClB1OiJpc19zZ3RtX2dhX2Fkc19jb252ZXJzaW9uX3N0dWR5X2NvbnRyb2xfZ3JvdXAiLFF1OiJpc19zZ3RtX3ByZWhpdCIsZG46ImlzX3NndG1fc2VydmljZV93b3JrZXIiLEloOiJpc19zcGxpdF9jb252ZXJzaW9uIixJcToiaXNfc3luIixGYzoiaXNfdGVzdF9ldmVudCIsb2c6ImpvaW5faWQiLGVqOiJqb2luX2VsYXBzZWQiLHBnOiJqb2luX3RpbWVyX3NlYyIsZ246ImxvY2FsX3N0b3JhZ2VfYXdfY29udmVyc2lvbl9jb3VudGVycyIsV2U6InR1bm5lbF91cGRhdGVkIixVdToicHJlaGl0X2Zvcl9yZXRyeSIsV3U6InByb21pc2VzIixYdToicmVjb3JkX2F3X2xhdGVuY3kiLFhlOiJyZWRhY3RfYWRzX2RhdGEiLFllOiJyZWRhY3RfY2xpY2tfaWRzIixwbjoicmVtYXJrZXRpbmdfb25seSIsbGo6InNlbmRfY2NtX3BhcmFsbGVsX3BpbmciLGhkOiJzZW5kX2RvdWJsZWNsaWNrX2pvaW4iLE1oOiJzZW5kX2ZwbV9nZW9fam9pbiIsTmg6InNlbmRfZnBtX2dvb2dsZV9qb2luIixadToic2VuZF9jY21fcGFyYWxsZWxfdGVzdF9waW5nIiwKcm46InNlbmRfZ29vZ2xlX21lYXN1cmVtZW50IixyZzoic2VuZF90bGRfam9pbiIsc2c6InNlbmRfdG9fZGVzdGluYXRpb25zIixtajoic2VuZF90b190YXJnZXRzIixzbjoic2VuZF91c2VyX2RhdGFfaGl0Iixwajoic2VydmljZV93b3JrZXJfY29udGV4dCIsTmI6InNvdXJjZV9jYW5vbmljYWxfaWQiLEphOiJzcGVjdWxhdGl2ZSIseW46InNwZWN1bGF0aXZlX2luX21lc3NhZ2UiLEFuOiJzdXBwcmVzc19zY3JpcHRfbG9hZCIsQm46InN5bl9vcl9tb2QiLHpqOiJ0cmFuc2llbnRfZWNzaWQiLHRnOiJ0cmFuc21pc3Npb25fdHlwZSIsWWE6InVzZXJfZGF0YSIsZ3Y6InVzZXJfZGF0YV9mcm9tX2F1dG9tYXRpYyIsaHY6InVzZXJfZGF0YV9mcm9tX2F1dG9tYXRpY19nZXR0ZXIiLEduOiJ1c2VyX2RhdGFfZnJvbV9jb2RlIixpcjoidXNlcl9kYXRhX2Zyb21fbWFudWFsIixqdjoidXNlcl9kYXRhX21vZGUiLHVnOiJ1c2VyX2lkX3VwZGF0ZWQifX07CnZhciB0Zz1mdW5jdGlvbihhKXt2YXIgYj17fSxjPTA7R2IoYSxmdW5jdGlvbihlLGYpe2lmKGYhPW51bGwpe3ZhciBnPSgiIitmKS5yZXBsYWNlKC9+L2csIn5+Iik7aWYocWcuaGFzT3duUHJvcGVydHkoZSkpYltxZ1tlXV09ZztlbHNlIGlmKHJnLmhhc093blByb3BlcnR5KGUpKXt2YXIgaD1yZ1tlXTtiLmhhc093blByb3BlcnR5KGgpfHwoYltoXT1nKX1lbHNlIGlmKGU9PT0iY2F0ZWdvcnkiKWZvcih2YXIgbD1nLnNwbGl0KCIvIiw1KSxuPTA7bjxsLmxlbmd0aDtuKyspe3ZhciBwPWIscT1zZ1tuXSxyPWxbbl07cC5oYXNPd25Qcm9wZXJ0eShxKXx8KHBbcV09cil9ZWxzZSBpZihjPDI3KXt2YXIgdD1TdHJpbmcuZnJvbUNoYXJDb2RlKGM8MTA/NDgrYzo2NStjLTEwKTtiWyJrIit0XT0oIiIrU3RyaW5nKGUpKS5yZXBsYWNlKC9+L2csIn5+Iik7YlsidiIrdF09ZztjKyt9fX0pO3ZhciBkPVtdO0diKGIsZnVuY3Rpb24oZSxmKXtkLnB1c2goIiIrZStmKX0pO3JldHVybiBkLmpvaW4oIn4iKX0sCnFnPXtpdGVtX2lkOiJpZCIsaXRlbV9uYW1lOiJubSIsaXRlbV9icmFuZDoiYnIiLGl0ZW1fY2F0ZWdvcnk6ImNhIixpdGVtX2NhdGVnb3J5MjoiYzIiLGl0ZW1fY2F0ZWdvcnkzOiJjMyIsaXRlbV9jYXRlZ29yeTQ6ImM0IixpdGVtX2NhdGVnb3J5NToiYzUiLGl0ZW1fdmFyaWFudDoidmEiLHByaWNlOiJwciIscXVhbnRpdHk6InF0Iixjb3Vwb246ImNwIixpdGVtX2xpc3RfbmFtZToibG4iLGluZGV4OiJscCIsaXRlbV9saXN0X2lkOiJsaSIsZGlzY291bnQ6ImRzIixhZmZpbGlhdGlvbjoiYWYiLHByb21vdGlvbl9pZDoicGkiLHByb21vdGlvbl9uYW1lOiJwbiIsY3JlYXRpdmVfbmFtZToiY24iLGNyZWF0aXZlX3Nsb3Q6ImNzIixsb2NhdGlvbl9pZDoibG8ifSxyZz17aWQ6ImlkIixuYW1lOiJubSIsYnJhbmQ6ImJyIix2YXJpYW50OiJ2YSIsbGlzdF9uYW1lOiJsbiIsbGlzdF9wb3NpdGlvbjoibHAiLGxpc3Q6ImxuIixwb3NpdGlvbjoibHAiLGNyZWF0aXZlOiJjbiJ9LHNnPVsiY2EiLAoiYzIiLCJjMyIsImM0IiwiYzUiXTt2YXIgdWc9ZnVuY3Rpb24oYSl7dmFyIGI9W107R2IoYSxmdW5jdGlvbihjLGQpe2QhPW51bGwmJmIucHVzaChlbmNvZGVVUklDb21wb25lbnQoYykrIj0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZCkpKX0pO3JldHVybiBiLmpvaW4oIiYiKX0sdmc9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt0aGlzLmJhc2VVcmw9Yjt0aGlzLmVuZHBvaW50PWM7dGhpcy5kZXN0aW5hdGlvbklkPWY7dGhpcy5ldmVudElkPWc7dGhpcy5wcmlvcml0eUlkPWg7dGhpcy5CYT1hLkJhO3RoaXMudmU9YS52ZTt0aGlzLkxqPWEuTGo7dGhpcy5OPWQ7dGhpcy5LPXVnKGEuQmEpO3RoaXMuSD11ZyhhLkxqKTt0aGlzLlI9dGhpcy5ILmxlbmd0aDtpZihlJiZ0aGlzLlI+MTYzODQpdGhyb3cgRXJyb3IoIkVWRU5UX1RPT19MQVJHRSIpO307CnZhciB3Zz1mdW5jdGlvbigpe3RoaXMuZXZlbnRzPVtdO3RoaXMuSD0iIjt0aGlzLkJhPXt9O3RoaXMuYmFzZVVybD0iIjt0aGlzLk49MDt0aGlzLks9MTt0aGlzLmVuZHBvaW50PTB9O3dnLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuUihhKT8odGhpcy5ldmVudHMucHVzaChhKSx0aGlzLkg9YS5LLHRoaXMuQmE9YS5CYSx0aGlzLmJhc2VVcmw9YS5iYXNlVXJsLHRoaXMuTis9YS5SLHRoaXMuSz1hLk4sdGhpcy5lbmRwb2ludD1hLmVuZHBvaW50LHRoaXMuZGVzdGluYXRpb25JZD1hLmRlc3RpbmF0aW9uSWQsdGhpcy5aPWEuZXZlbnRJZCx0aGlzLmZhPWEucHJpb3JpdHlJZCwhMCk6ITF9O3dnLnByb3RvdHlwZS5SPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmV2ZW50cy5sZW5ndGg/dGhpcy5ldmVudHMubGVuZ3RoPj0yMHx8YS5SK3RoaXMuTj49MTYzODQ/ITE6dGhpcy5iYXNlVXJsPT09YS5iYXNlVXJsJiZ0aGlzLks9PT1hLk4mJnRoaXMuamEoYSk6ITB9Owp3Zy5wcm90b3R5cGUuamE9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSD09PWEuS307dmFyIEo9e1U6e2twOjEsbXA6MixFbjozLG5uOjQscWw6NSxybDo2LEVxOjcsbnA6OCxEcTo5LGpwOjEwLGhwOjExLHhuOjEyLHZuOjEzLE5rOjE0LFVvOjE1LFdvOjE2LGhuOjE3LHNsOjE4LGZuOjE5LGxwOjIwLFBxOjIxLGFwOjIyLFZvOjIzLFhvOjI0LG5sOjI1LExrOjI2LGVyOjI3LEptOjI4LFVtOjI5LFRtOjMwLFNtOjMxLE1tOjMyLEttOjMzLExtOjM0LEdtOjM1LEZtOjM2LEhtOjM3LEltOjM4LEJxOjM5LENxOjQwLFVxOjQxfX07Si5VW0ouVS5rcF09IkNSRUFURV9FVkVOVF9TT1VSQ0UiO0ouVVtKLlUubXBdPSJFRElUX0VWRU5UIjtKLlVbSi5VLkVuXT0iVFJBRkZJQ19UWVBFIjtKLlVbSi5VLm5uXT0iUkVGRVJSQUxfRVhDTFVTSU9OIjtKLlVbSi5VLnFsXT0iRUNPTU1FUkNFX0ZST01fR1RNX1RBRyI7Si5VW0ouVS5ybF09IkVDT01NRVJDRV9GUk9NX0dUTV9VQV9TQ0hFTUEiO0ouVVtKLlUuRXFdPSJHQV9TRU5EIjtKLlVbSi5VLm5wXT0iRU1fRk9STSI7CkouVVtKLlUuRHFdPSJHQV9HQU1fTElOSyI7Si5VW0ouVS5qcF09IkNSRUFURV9FVkVOVF9BVVRPX1BBR0VfUEFUSCI7Si5VW0ouVS5ocF09IkNSRUFURURfRVZFTlQiO0ouVVtKLlUueG5dPSJTSURFTE9BREVEIjtKLlVbSi5VLnZuXT0iU0dUTV9MRUdBQ1lfQ09ORklHVVJBVElPTiI7Si5VW0ouVS5Oa109IkNDRF9FTV9FVkVOVCI7Si5VW0ouVS5Vb109IkFVVE9fUkVEQUNUX0VNQUlMIjtKLlVbSi5VLldvXT0iQVVUT19SRURBQ1RfUVVFUllfUEFSQU0iO0ouVVtKLlUuaG5dPSJNVUxUSVBMRV9QQUdFVklFV19GUk9NX0NPTkZJRyI7Si5VW0ouVS5zbF09IkVNX0VWRU5UX1NFTlRfQkVGT1JFX0NPTkZJRyI7Si5VW0ouVS5mbl09IkxPQURFRF9WSUFfQ1NUX09SX1NJREVMT0FESU5HIjtKLlVbSi5VLmxwXT0iREVDT0RFRF9QQVJBTV9NQVRDSCI7Si5VW0ouVS5QcV09Ik5PTl9ERUNPREVEX1BBUkFNX01BVENIIjtKLlVbSi5VLmFwXT0iQ0NEX0VWRU5UX1NHVE0iOwpKLlVbSi5VLlZvXT0iQVVUT19SRURBQ1RfRU1BSUxfU0dUTSI7Si5VW0ouVS5Yb109IkFVVE9fUkVEQUNUX1FVRVJZX1BBUkFNX1NHVE0iO0ouVVtKLlUubmxdPSJEQUlMWV9MSU1JVF9SRUFDSEVEIjtKLlVbSi5VLkxrXT0iQlVSU1RfTElNSVRfUkVBQ0hFRCI7Si5VW0ouVS5lcl09IlNIQVJFRF9VU0VSX0lEX1NFVF9BRlRFUl9SRVFVRVNUIjtKLlVbSi5VLkptXT0iR0E0X01VTFRJUExFX1NFU1NJT05fQ09PS0lFUyI7Si5VW0ouVS5VbV09IklOVkFMSURfR0E0X1NFU1NJT05fQ09VTlQiO0ouVVtKLlUuVG1dPSJJTlZBTElEX0dBNF9MQVNUX0VWRU5UX1RJTUVTVEFNUCI7Si5VW0ouVS5TbV09IklOVkFMSURfR0E0X0pPSU5fVElNRVIiO0ouVVtKLlUuTW1dPSJHQTRfU1RBTEVfU0VTU0lPTl9DT09LSUVfU0VMRUNURUQiO0ouVVtKLlUuS21dPSJHQTRfU0VTU0lPTl9DT09LSUVfR1MxX1JFQUQiO0ouVVtKLlUuTG1dPSJHQTRfU0VTU0lPTl9DT09LSUVfR1MyX1JFQUQiOwpKLlVbSi5VLkdtXT0iR0E0X0RMX1BBUkFNX1JFQ09WRVJZX0FWQUlMQUJMRSI7Si5VW0ouVS5GbV09IkdBNF9ETF9QQVJBTV9SRUNPVkVSWV9BUFBMSUVEIjtKLlVbSi5VLkhtXT0iR0E0X0dPT0dMRV9NRUFTVVJFTUVOVF9BTExPV0VEIjtKLlVbSi5VLkltXT0iR0E0X0dPT0dMRV9TSUdOQUxTX0VOQUJMRUQiO0ouVVtKLlUuQnFdPSJHQTRfRkFMTEJBQ0tfUkVRVUVTVCI7Si5VW0ouVS5DcV09IkdBX0FEU19MSU5LX0JFRk9SRV9DT05WRVJTSU9OX01BUktJTkciO0ouVVtKLlUuVXFdPSJQTEFUSU5VTV9FTElHSUJMRSI7dmFyIHhnPXt9LHlnPSh4Zy51YWE9ITAseGcudWFiPSEwLHhnLnVhZnZsPSEwLHhnLnVhbWI9ITAseGcudWFtPSEwLHhnLnVhcD0hMCx4Zy51YXB2PSEwLHhnLnVhdz0hMCx4Zyk7CnZhciBCZz1mdW5jdGlvbihhLGIpe3ZhciBjPWEuZXZlbnRzO2lmKGMubGVuZ3RoPT09MSlyZXR1cm4gemcoY1swXSxiKTt2YXIgZD1bXTthLkgmJmQucHVzaChhLkgpO2Zvcih2YXIgZT17fSxmPTA7ZjxjLmxlbmd0aDtmKyspR2IoY1tmXS52ZSxmdW5jdGlvbih0LHUpe3UhPW51bGwmJihlW3RdPWVbdF18fHt9LGVbdF1bU3RyaW5nKHUpXT1lW3RdW1N0cmluZyh1KV0rMXx8MSl9KTt2YXIgZz17fTtHYihlLGZ1bmN0aW9uKHQsdSl7dmFyIHYseD0tMSx5PTA7R2IodSxmdW5jdGlvbih6LEMpe3krPUM7dmFyIEQ9KHoubGVuZ3RoK3QubGVuZ3RoKzIpKihDLTEpO0Q+eCYmKHY9eix4PUQpfSk7eT09PWMubGVuZ3RoJiYoZ1t0XT12KX0pO0FnKGcsZCk7YiYmZC5wdXNoKCJfcz0iK2IpO2Zvcih2YXIgaD1kLmpvaW4oIiYiKSxsPVtdLG49e30scD0wO3A8Yy5sZW5ndGg7bj17Zms6dm9pZCAwfSxwKyspe3ZhciBxPVtdO24uZms9e307R2IoY1twXS52ZSxmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odSwKdil7Z1t1XSE9PSIiK3YmJih0LmZrW3VdPXYpfX0obikpO2NbcF0uSCYmcS5wdXNoKGNbcF0uSCk7QWcobi5mayxxKTtsLnB1c2gocS5qb2luKCImIikpfXZhciByPWwuam9pbigiXHJcbiIpO3JldHVybntwYXJhbXM6aCxib2R5OnJ9fSx6Zz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO2EuSyYmYy5wdXNoKGEuSyk7YiYmYy5wdXNoKCJfcz0iK2IpO0FnKGEudmUsYyk7dmFyIGQ9ITE7YS5IJiYoYy5wdXNoKGEuSCksZD0hMCk7dmFyIGU9Yy5qb2luKCImIiksZj0iIixnPWUubGVuZ3RoK2EuYmFzZVVybC5sZW5ndGgrMTtkJiZnPjIwNDgmJihmPWMucG9wKCksZT1jLmpvaW4oIiYiKSk7cmV0dXJue3BhcmFtczplLGJvZHk6Zn19LEFnPWZ1bmN0aW9uKGEsYil7R2IoYSxmdW5jdGlvbihjLGQpe2QhPW51bGwmJmIucHVzaChlbmNvZGVVUklDb21wb25lbnQoYykrIj0iK2VuY29kZVVSSUNvbXBvbmVudChkKSl9KX07CnZhciBFZz1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1hLGU9YltjXTtpZighQ2cuZXhlYyhlKSl0aHJvdyBFcnJvcigiSW52YWxpZCBrZXkgd2lsZGNhcmQiKTt2YXIgZj1lLmluZGV4T2YoIi4qIiksZz1mIT09LTEmJmY9PT1lLmxlbmd0aC0yLGg9Zz9lLnNsaWNlKDAsZS5sZW5ndGgtMik6ZSxsO2E6aWYoZC5sZW5ndGg9PT0wKWw9ITE7ZWxzZXtmb3IodmFyIG49ZC5zcGxpdCgiLiIpLHA9MDtwPG4ubGVuZ3RoO3ArKylpZighRGcuZXhlYyhuW3BdKSl7bD0hMTticmVhayBhfWw9ITB9aWYoIWx8fGgubGVuZ3RoPmQubGVuZ3RofHwhZyYmZC5sZW5ndGghPT1lLmxlbmd0aD8wOmc/U2IoZCxoKSYmKGQ9PT1ofHxkLmNoYXJBdChoLmxlbmd0aCk9PT0iLiIpOmQ9PT1oKXJldHVybiEwfXJldHVybiExfSxEZz0vXlthLXokX11bXHctJF0qJC9pLENnPS9eKD86W2Etel8kXVthLXotXyQwLTldKlwuKSpbYS16XyRdW2Etei1fJDAtOV0qKD86XC5cKik/JC9pOwp2YXIgRmc9WyJtYXRjaGVzIiwid2Via2l0TWF0Y2hlc1NlbGVjdG9yIiwibW96TWF0Y2hlc1NlbGVjdG9yIiwibXNNYXRjaGVzU2VsZWN0b3IiLCJvTWF0Y2hlc1NlbGVjdG9yIl07ZnVuY3Rpb24gR2coYSxiKXtpZighYSlyZXR1cm4hMTt0cnl7Zm9yKHZhciBjPTA7YzxGZy5sZW5ndGg7YysrKXt2YXIgZD1GZ1tjXTtpZihhW2RdIT1udWxsKXJldHVybiBhW2RdKGIpfX1jYXRjaChlKXt9cmV0dXJuITF9ZnVuY3Rpb24gSGcoYSxiKXt2YXIgYz1TdHJpbmcoYSksZD1TdHJpbmcoYiksZT1jLmxlbmd0aC1kLmxlbmd0aDtyZXR1cm4gZT49MCYmYy5pbmRleE9mKGQsZSk9PT1lfWZ1bmN0aW9uIElnKGEsYil7cmV0dXJuIFN0cmluZyhhKS5zcGxpdCgiLCIpLmluZGV4T2YoU3RyaW5nKGIpKT49MH0KZnVuY3Rpb24gSmcoYSxiLGMsZCl7dmFyIGU9Yz8iaSI6dm9pZCAwO3RyeXt2YXIgZj1TdHJpbmcoYikrU3RyaW5nKGUpLGc9ZD09bnVsbD92b2lkIDA6ZC5nZXQoZik7Z3x8KGc9bmV3IFJlZ0V4cChiLGUpLGQ9PW51bGx8fGQuc2V0KGYsZykpO3JldHVybiBnLnRlc3QoYSl9Y2F0Y2goaCl7cmV0dXJuITF9fWZ1bmN0aW9uIEtnKGEsYil7cmV0dXJuIFN0cmluZyhhKS5pbmRleE9mKFN0cmluZyhiKSk+PTB9ZnVuY3Rpb24gTGcoYSxiKXtyZXR1cm4gU3RyaW5nKGEpPT09U3RyaW5nKGIpfWZ1bmN0aW9uIE1nKGEsYil7cmV0dXJuIE51bWJlcihhKT49TnVtYmVyKGIpfWZ1bmN0aW9uIE5nKGEsYil7cmV0dXJuIE51bWJlcihhKTw9TnVtYmVyKGIpfWZ1bmN0aW9uIE9nKGEsYil7cmV0dXJuIE51bWJlcihhKT5OdW1iZXIoYil9ZnVuY3Rpb24gUGcoYSxiKXtyZXR1cm4gTnVtYmVyKGEpPE51bWJlcihiKX0KZnVuY3Rpb24gUWcoYSxiKXtyZXR1cm4gU2IoU3RyaW5nKGEpLFN0cmluZyhiKSl9O2Z1bmN0aW9uIFhnKGEpe3ZhciBiPWEuc2VhcmNoO3JldHVybiBhLnByb3RvY29sKyIvLyIrYS5ob3N0bmFtZSthLnBhdGhuYW1lKyhiP2IrIiZyaWNoc3N0c3NlIjoiP3JpY2hzc3Rzc2UiKX07dmFyIFlnPWZ1bmN0aW9uKCl7dGhpcy5SPSIifSwkZz1mdW5jdGlvbihhLGIpe3JldHVybiBmdW5jdGlvbigpe3ZhciBjPWIuZmFsbGJhY2tfdXJsLGQ9Yi5mYWxsYmFja191cmxfbWV0aG9kO2lmKGMmJmQpe3ZhciBlPXt9O1pnKGEsKGVbZF09W2NdLGUub3B0aW9ucz17fSxlKSl9fX0sYWg9ZnVuY3Rpb24oYSxiLGMpe2lmKEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBkPW0oYSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7dHlwZW9mIGY9PT0ic3RyaW5nIiYmYyhmLGIpfX0sWmc9ZnVuY3Rpb24oYSxiKXtpZihiKWZvcih2YXIgYz1DZChiLm9wdGlvbnMpP2Iub3B0aW9uczp7fSxkPW0oT2JqZWN0LmtleXMoYikpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlLGc9YltmXTtzd2l0Y2goZil7Y2FzZSAic2VuZF9waXhlbCI6YWgoZyxjLGZ1bmN0aW9uKGgsbCl7cmV0dXJuIHZvaWQgYS5LKGgsbCl9KTticmVhaztjYXNlICJmZXRjaCI6YWgoZywKYyxmdW5jdGlvbihoLGwpe3JldHVybiB2b2lkIGEuSChoLGwpfSl9fX07dmFyIGJoPS9eKFthLXpdW2EtejAtOV0qKTooIXxcPykoXCp8c3RyaW5nfGJvb2xlYW58bnVtYmVyfEZufFBpeGllTWFwfExpc3R8T3BhcXVlVmFsdWUpJC9pLGNoPXtGbjoiZnVuY3Rpb24iLFBpeGllTWFwOiJPYmplY3QiLExpc3Q6IkFycmF5In07CmZ1bmN0aW9uIGRoKGEsYil7Zm9yKHZhciBjPVsiaW5wdXQ6ISoiXSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWJoLmV4ZWMoY1tkXSk7aWYoIWUpdGhyb3cgRXJyb3IoIkludGVybmFsIEVycm9yIGluICIrYSk7dmFyIGY9ZVsxXSxnPWVbMl09PT0iISIsaD1lWzNdLGw9YltkXTtpZihsPT1udWxsKXtpZihnKXRocm93IEVycm9yKCJFcnJvciBpbiAiK2ErIi4gUmVxdWlyZWQgYXJndW1lbnQgIitmKyIgbm90IHN1cHBsaWVkLiIpO31lbHNlIGlmKGghPT0iKiIpe3ZhciBuPXR5cGVvZiBsO2wgaW5zdGFuY2VvZiBLZD9uPSJGbiI6bCBpbnN0YW5jZW9mIEdkP249Ikxpc3QiOmwgaW5zdGFuY2VvZiBrYj9uPSJQaXhpZU1hcCI6bCBpbnN0YW5jZW9mIFNkP249IlBpeGllUHJvbWlzZSI6bCBpbnN0YW5jZW9mIFBkJiYobj0iT3BhcXVlVmFsdWUiKTtpZihuIT09aCl0aHJvdyBFcnJvcigiRXJyb3IgaW4gIithKyIuIEFyZ3VtZW50ICIrZisiIGhhcyB0eXBlICIrKChjaFtuXXx8bikrIiwgd2hpY2ggZG9lcyBub3QgbWF0Y2ggcmVxdWlyZWQgdHlwZSAiKSsKKChjaFtoXXx8aCkrIi4iKSk7fX19ZnVuY3Rpb24gSyhhLGIsYyl7Zm9yKHZhciBkPVtdLGU9bShjKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtnIGluc3RhbmNlb2YgS2Q/ZC5wdXNoKCJmdW5jdGlvbiIpOmcgaW5zdGFuY2VvZiBHZD9kLnB1c2goIkFycmF5Iik6ZyBpbnN0YW5jZW9mIGtiP2QucHVzaCgiT2JqZWN0Iik6ZyBpbnN0YW5jZW9mIFNkP2QucHVzaCgiUHJvbWlzZSIpOmcgaW5zdGFuY2VvZiBQZD9kLnB1c2goIk9wYXF1ZVZhbHVlIik6ZC5wdXNoKHR5cGVvZiBnKX1yZXR1cm4gRXJyb3IoIkFyZ3VtZW50IGVycm9yIGluICIrYSsiLiBFeHBlY3RlZCBhcmd1bWVudCB0eXBlcyBbIisoYi5qb2luKCIsIikrIl0sIGJ1dCByZWNlaXZlZCBbIikrKGQuam9pbigiLCIpKyJdLiIpKX1mdW5jdGlvbiBlaChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIGtifWZ1bmN0aW9uIGZoKGEpe3JldHVybiBlaChhKXx8YT09PW51bGx8fGdoKGEpfQpmdW5jdGlvbiBoaChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEtkfWZ1bmN0aW9uIGloKGEpe3JldHVybiBoaChhKXx8YT09PW51bGx8fGdoKGEpfWZ1bmN0aW9uIGpoKGEpe3JldHVybiBhIGluc3RhbmNlb2YgR2R9ZnVuY3Rpb24ga2goYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBQZH1mdW5jdGlvbiBsaChhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn1mdW5jdGlvbiBtaChhKXtyZXR1cm4gbGgoYSl8fGE9PT1udWxsfHxnaChhKX1mdW5jdGlvbiBuaChhKXtyZXR1cm4gdHlwZW9mIGE9PT0iYm9vbGVhbiJ9ZnVuY3Rpb24gb2goYSl7cmV0dXJuIG5oKGEpfHxnaChhKX1mdW5jdGlvbiBwaChhKXtyZXR1cm4gbmgoYSl8fGE9PT1udWxsfHxnaChhKX1mdW5jdGlvbiBxaChhKXtyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIn1mdW5jdGlvbiBnaChhKXtyZXR1cm4gYT09PXZvaWQgMH07ZnVuY3Rpb24gcmgoYSl7cmV0dXJuIiIrYX0KZnVuY3Rpb24gc2goYSxiKXt2YXIgYz1bXTtyZXR1cm4gY307ZnVuY3Rpb24gdGgoYSxiKXt2YXIgYz1uZXcgS2QoYSxmdW5jdGlvbigpe2Zvcih2YXIgZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCksZT0wO2U8ZC5sZW5ndGg7ZSsrKWRbZV09dGhpcy5ldmFsdWF0ZShkW2VdKTt0cnl7cmV0dXJuIGIuYXBwbHkodGhpcyxkKX1jYXRjaChnKXt0aHJvdyBjYihnKTt9fSk7Yy5aYSgpO3JldHVybiBjfQpmdW5jdGlvbiB1aChhLGIpe3ZhciBjPW5ldyBrYixkO2ZvcihkIGluIGIpaWYoYi5oYXNPd25Qcm9wZXJ0eShkKSl7dmFyIGU9YltkXTt5YihlKT9jLnNldChkLHRoKGErIl8iK2QsZSkpOkNkKGUpP2Muc2V0KGQsdWgoYSsiXyIrZCxlKSk6KEFiKGUpfHx6YihlKXx8dHlwZW9mIGU9PT0iYm9vbGVhbiIpJiZjLnNldChkLGUpfWMuWmEoKTtyZXR1cm4gY307ZnVuY3Rpb24gd2goYSxiKXtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7aWYoIW1oKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJ1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBjPXt9LGQ9bmV3IGtiO3JldHVybiBkPXVoKCJBc3NlcnRBcGlTdWJqZWN0IiwKYyl9O2Z1bmN0aW9uIHhoKGEsYil7aWYoIW1oKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJ1bmRlZmluZWQiXSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBTZCl0aHJvdyBFcnJvcigiQXJndW1lbnQgYWN0dWFsIGNhbm5vdCBoYXZlIHR5cGUgUHJvbWlzZS4gQXNzZXJ0aW9ucyBvbiBhc3luY2hyb25vdXMgY29kZSBhcmVuJ3Qgc3VwcG9ydGVkLiIpO3ZhciBjPXt9LGQ9bmV3IGtiO3JldHVybiBkPXVoKCJBc3NlcnRUaGF0U3ViamVjdCIsYyl9O2Z1bmN0aW9uIHloKGEpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgYj1PYS5hcHBseSgwLGFyZ3VtZW50cyksYz1bXSxkPXRoaXMuVCxlPTA7ZTxiLmxlbmd0aDsrK2UpYy5wdXNoKFRkKGJbZV0sZCkpO3JldHVybiBVZChhLmFwcGx5KG51bGwsYykpfX1mdW5jdGlvbiB6aCgpe2Zvcih2YXIgYT1NYXRoLGI9QWgsYz17fSxkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF07YS5oYXNPd25Qcm9wZXJ0eShlKSYmKGNbZV09eWgoYVtlXS5iaW5kKGEpKSl9cmV0dXJuIGN9O2Z1bmN0aW9uIEJoKGEpe3JldHVybiBhIT1udWxsJiZTYihhLCJfX2N2dF8iKX07ZnVuY3Rpb24gQ2goYSl7dmFyIGI7cmV0dXJuIGJ9O2Z1bmN0aW9uIERoKGEpe3ZhciBiO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTt0cnl7Yj1kZWNvZGVVUklDb21wb25lbnQoYSl9Y2F0Y2goYyl7fXJldHVybiBifTtmdW5jdGlvbiBFaChhKXt0cnl7cmV0dXJuIGVuY29kZVVSSShhKX1jYXRjaChiKXt9fTtmdW5jdGlvbiBGaChhKXt0cnl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYSkpfWNhdGNoKGIpe319O2Z1bmN0aW9uIEdoKGEsYil7dmFyIGM9ITE7dmFyIGQ9SlNPTi5wYXJzZShhKTtpZighZCl0aHJvdyBFcnJvcigiSW52YWxpZCBib29sZWFuIGV4cHJlc3Npb24gc3RyaW5nIHdhcyBnaXZlbi4iKTtjPUhoKGQsYik7cmV0dXJuIGN9CnZhciBJaD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXtpZihhPT09dm9pZCAwKXJldHVybjthPWFbYltjXV19cmV0dXJuIGF9LEpoPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5wcmVIaXQ7aWYoYyl7dmFyIGQ9YVswXTtzd2l0Y2goZCl7Y2FzZSAiaGl0RGF0YSI6cmV0dXJuIGEubGVuZ3RoPDI/dm9pZCAwOkloKGMuZ2V0SGl0RGF0YShhWzFdKSxhLnNsaWNlKDIpKTtjYXNlICJtZXRhZGF0YSI6cmV0dXJuIGEubGVuZ3RoPDI/dm9pZCAwOkloKGMuZ2V0TWV0YWRhdGEoYVsxXSksYS5zbGljZSgyKSk7Y2FzZSAiZXZlbnROYW1lIjpyZXR1cm4gYy5nZXRFdmVudE5hbWUoKTtjYXNlICJkZXN0aW5hdGlvbklkIjpyZXR1cm4gYy5nZXREZXN0aW5hdGlvbklkKCk7ZGVmYXVsdDp0aHJvdyBFcnJvcihkKyIgaXMgbm90IGEgdmFsaWQgZmllbGQgdGhhdCBjYW4gYmUgYWNjZXNzZWRcbiAgICAgICAgICAgICAgICAgICAgICBmcm9tIFByZUhpdCBkYXRhLiIpO319fSwKS2g9ZnVuY3Rpb24oYSxiKXtpZihhKXtpZihhLmNvbnRleHRWYWx1ZSE9PXZvaWQgMCl7dmFyIGM7YTp7dmFyIGQ9YS5jb250ZXh0VmFsdWUsZT1kLmtleVBhcnRzO2lmKGUmJmUubGVuZ3RoIT09MCl7dmFyIGY9ZC5uYW1lc3BhY2VUeXBlO3N3aXRjaChmKXtjYXNlIDE6Yz1KaChlLGIpO2JyZWFrIGE7Y2FzZSAyOnZhciBnPWIubWFjcm87Yz1nP2dbZVswXV06dm9pZCAwO2JyZWFrIGE7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5rbm93biBOYW1lc3BhY2UgVHlwZSB1c2VkOiAiK2YpO319Yz12b2lkIDB9cmV0dXJuIGN9aWYoYS5ib29sZWFuRXhwcmVzc2lvblZhbHVlIT09dm9pZCAwKXJldHVybiBIaChhLmJvb2xlYW5FeHByZXNzaW9uVmFsdWUsYik7aWYoYS5ib29sZWFuVmFsdWUhPT12b2lkIDApcmV0dXJuISFhLmJvb2xlYW5WYWx1ZTtpZihhLnN0cmluZ1ZhbHVlIT09dm9pZCAwKXJldHVybiBTdHJpbmcoYS5zdHJpbmdWYWx1ZSk7aWYoYS5pbnRlZ2VyVmFsdWUhPT12b2lkIDApcmV0dXJuIE51bWJlcihhLmludGVnZXJWYWx1ZSk7CmlmKGEuZG91YmxlVmFsdWUhPT12b2lkIDApcmV0dXJuIE51bWJlcihhLmRvdWJsZVZhbHVlKTt0aHJvdyBFcnJvcigiVW5rbm93biBmaWVsZCB1c2VkIGZvciB2YXJpYWJsZSBvZiB0eXBlIEV4cHJlc3Npb25WYWx1ZToiK2EpO319LEhoPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5hcmdzO2lmKCFBcnJheS5pc0FycmF5KGMpfHxjLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoJ0ludmFsaWQgYm9vbGVhbiBleHByZXNzaW9uIGZvcm1hdC4gRXhwZWN0ZWQgImFyZ3MiOicrYysiIHByb3BlcnR5IHRvXG4gICAgICAgICBiZSBub24tZW1wdHkgYXJyYXkuIik7dmFyIGQ9ZnVuY3Rpb24oZyl7cmV0dXJuIEtoKGcsYil9O3N3aXRjaChhLnR5cGUpe2Nhc2UgMTpmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKylpZihkKGNbZV0pKXJldHVybiEwO3JldHVybiExO2Nhc2UgMjpmb3IodmFyIGY9MDtmPGMubGVuZ3RoO2YrKylpZighZChjW2ZdKSlyZXR1cm4hMTtyZXR1cm4gYy5sZW5ndGg+MDtjYXNlIDM6cmV0dXJuIWQoY1swXSk7CmNhc2UgNDpyZXR1cm4gSmcoZChjWzBdKSxkKGNbMV0pLCExLGIucmVnZXhDYWNoZSk7Y2FzZSA1OnJldHVybiBMZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgNjpyZXR1cm4gUWcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDc6cmV0dXJuIEhnKGQoY1swXSksZChjWzFdKSk7Y2FzZSA4OnJldHVybiBLZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgOTpyZXR1cm4gUGcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDEwOnJldHVybiBOZyhkKGNbMF0pLGQoY1sxXSkpO2Nhc2UgMTE6cmV0dXJuIE9nKGQoY1swXSksZChjWzFdKSk7Y2FzZSAxMjpyZXR1cm4gTWcoZChjWzBdKSxkKGNbMV0pKTtjYXNlIDEzOnJldHVybiBJZyhkKGNbMF0pLFN0cmluZyhkKGNbMV0pKSk7ZGVmYXVsdDp0aHJvdyBFcnJvcignSW52YWxpZCBib29sZWFuIGV4cHJlc3Npb24gZm9ybWF0LiBFeHBlY3RlZCAidHlwZSIgcHJvcGVydHkgdG9iZSBhIHBvc2l0aXZlIGludGVnZXIgd2hpY2ggaXMgbGVzcyB0aGFuIDE0LicpO319OwpmdW5jdGlvbiBMaChhKXtpZighbWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZ3x1bmRlZmluZWQiXSxhcmd1bWVudHMpO307ZnVuY3Rpb24gTWgoYSl7dmFyIGI9VGQoYSk7cmV0dXJuIG5nKGI/IiIrYjoiIil9O2Z1bmN0aW9uIE5oKGEsYil7aWYoIXFoKGEpfHwhcWgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIm51bWJlciIsIm51bWJlciJdLGFyZ3VtZW50cyk7cmV0dXJuIERiKGEsYil9O2Z1bmN0aW9uIE9oKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9O2Z1bmN0aW9uIFBoKGEpe2lmKGE9PT1udWxsKXJldHVybiJudWxsIjtpZihhIGluc3RhbmNlb2YgR2QpcmV0dXJuImFycmF5IjtpZihhIGluc3RhbmNlb2YgS2QpcmV0dXJuImZ1bmN0aW9uIjtpZihhIGluc3RhbmNlb2YgUGQpe3ZhciBiPWEuZ2V0VmFsdWUoKTtpZigoYj09bnVsbD92b2lkIDA6Yi5jb25zdHJ1Y3Rvcik9PT12b2lkIDB8fGIuY29uc3RydWN0b3IubmFtZT09PXZvaWQgMCl7dmFyIGM9U3RyaW5nKGIpO3JldHVybiBjLnN1YnN0cmluZyg4LGMubGVuZ3RoLTEpfXJldHVybiBTdHJpbmcoYi5jb25zdHJ1Y3Rvci5uYW1lKX1yZXR1cm4gdHlwZW9mIGF9O2Z1bmN0aW9uIFFoKGEpe2Z1bmN0aW9uIGIoYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe3RyeXtyZXR1cm4gYyhkKX1jYXRjaChlKXsobGd8fG1nLlBvKSYmYS5jYWxsKHRoaXMsZS5tZXNzYWdlKX19fXJldHVybntwYXJzZTpiKGZ1bmN0aW9uKGMpe3JldHVybiBVZChKU09OLnBhcnNlKGMpKX0pLHN0cmluZ2lmeTpiKGZ1bmN0aW9uKGMpe3JldHVybiBKU09OLnN0cmluZ2lmeShUZChjKSl9KSxwdWJsaWNOYW1lOiJKU09OIn19O2Z1bmN0aW9uIFJoKGEpe3JldHVybiBJYihUZChhLHRoaXMuVCkpfTtmdW5jdGlvbiBTaChhKXtyZXR1cm4gTnVtYmVyKFRkKGEsdGhpcy5UKSl9O2Z1bmN0aW9uIFRoKGEpe3JldHVybiBhPT09bnVsbD8ibnVsbCI6YT09PXZvaWQgMD8idW5kZWZpbmVkIjphLnRvU3RyaW5nKCl9O2Z1bmN0aW9uIFVoKGEsYixjKXt2YXIgZD1udWxsLGU9ITE7cmV0dXJuIGU/ZDpudWxsfTt2YXIgQWg9ImZsb29yIGNlaWwgcm91bmQgbWF4IG1pbiBhYnMgcG93IHNxcnQiLnNwbGl0KCIgIik7ZnVuY3Rpb24gVmgoKXt2YXIgYT17fTtyZXR1cm57V3I6ZnVuY3Rpb24oYil7cmV0dXJuIGEuaGFzT3duUHJvcGVydHkoYik/YVtiXTp2b2lkIDB9LEtvOmZ1bmN0aW9uKGIsYyl7YVtiXT1jfSxyZXNldDpmdW5jdGlvbigpe2E9e319fX1mdW5jdGlvbiBXaChhLGIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBLZC5wcm90b3R5cGUuaW52b2tlLmFwcGx5KGEsW2JdLmNvbmNhdCh3KE9hLmFwcGx5KDAsYXJndW1lbnRzKSkpKX19CmZ1bmN0aW9uIFhoKGEsYil7aWYoIWxoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJhbnkiXSxhcmd1bWVudHMpO30KZnVuY3Rpb24gWWgoYSxiKXtpZighbGgoYSl8fCFlaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiUGl4aWVNYXAiXSxhcmd1bWVudHMpO307dmFyIFpoPXt9O3ZhciAkaD1mdW5jdGlvbihhKXt2YXIgYj1uZXcga2I7aWYoYSBpbnN0YW5jZW9mIEdkKWZvcih2YXIgYz1hLkZhKCksZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdO2EuaGFzKGUpJiZiLnNldChlLGEuZ2V0KGUpKX1lbHNlIGlmKGEgaW5zdGFuY2VvZiBLZClmb3IodmFyIGY9YS5GYSgpLGc9MDtnPGYubGVuZ3RoO2crKyl7dmFyIGg9ZltnXTtiLnNldChoLGEuZ2V0KGgpKX1lbHNlIGZvcih2YXIgbD0wO2w8YS5sZW5ndGg7bCsrKWIuc2V0KGwsYVtsXSk7cmV0dXJuIGJ9OwpaaC5rZXlzPWZ1bmN0aW9uKGEpe2RoKHRoaXMuZ2V0TmFtZSgpLGFyZ3VtZW50cyk7aWYoYSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2YgS2R8fHR5cGVvZiBhPT09InN0cmluZyIpYT0kaChhKTtpZihhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZClyZXR1cm4gbmV3IEdkKGEuRmEoKSk7cmV0dXJuIG5ldyBHZH07ClpoLnZhbHVlcz1mdW5jdGlvbihhKXtkaCh0aGlzLmdldE5hbWUoKSxhcmd1bWVudHMpO2lmKGEgaW5zdGFuY2VvZiBHZHx8YSBpbnN0YW5jZW9mIEtkfHx0eXBlb2YgYT09PSJzdHJpbmciKWE9JGgoYSk7aWYoYSBpbnN0YW5jZW9mIGtifHxhIGluc3RhbmNlb2YgU2QpcmV0dXJuIG5ldyBHZChhLmhjKCkpO3JldHVybiBuZXcgR2R9OwpaaC5lbnRyaWVzPWZ1bmN0aW9uKGEpe2RoKHRoaXMuZ2V0TmFtZSgpLGFyZ3VtZW50cyk7aWYoYSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2YgS2R8fHR5cGVvZiBhPT09InN0cmluZyIpYT0kaChhKTtpZihhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZClyZXR1cm4gbmV3IEdkKGEuZmMoKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIG5ldyBHZChiKX0pKTtyZXR1cm4gbmV3IEdkfTsKWmguZnJlZXplPWZ1bmN0aW9uKGEpeyhhIGluc3RhbmNlb2Yga2J8fGEgaW5zdGFuY2VvZiBTZHx8YSBpbnN0YW5jZW9mIEdkfHxhIGluc3RhbmNlb2YgS2QpJiZhLlphKCk7cmV0dXJuIGF9O1poLmRlbGV0ZT1mdW5jdGlvbihhLGIpe2lmKGEgaW5zdGFuY2VvZiBrYiYmIWEuSGIoKSlyZXR1cm4gYS5yZW1vdmUoYiksITA7cmV0dXJuITF9O2Z1bmN0aW9uIEwoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZD1hLlQueGIoKTtpZighZCl0aHJvdyBFcnJvcigiTWlzc2luZyBwcm9ncmFtIHN0YXRlLiIpO2lmKGQuaXQpe3RyeXtkLlJuLmFwcGx5KG51bGwsW2JdLmNvbmNhdCh3KGMpKSl9Y2F0Y2goZSl7dGhyb3cgc2IoIlRBR0dJTkciLDIxKSxlO31yZXR1cm59ZC5Sbi5hcHBseShudWxsLFtiXS5jb25jYXQodyhjKSkpfTt2YXIgYWk9ZnVuY3Rpb24oKXt0aGlzLks9e307dGhpcy5IPXt9O3RoaXMuTj0hMDt9O2FpLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmNvbnRhaW5zKGEpP3RoaXMuS1thXTp2b2lkIDA7cmV0dXJuIGN9O2FpLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5LLmhhc093blByb3BlcnR5KGEpfTsKYWkucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGIsYyl7aWYodGhpcy5jb250YWlucyhhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYSBmdW5jdGlvbiB3aGljaCBhbHJlYWR5IGV4aXN0czogIithKyIuIik7aWYodGhpcy5ILmhhc093blByb3BlcnR5KGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhbiBBUEkgd2l0aCBhbiBleGlzdGluZyBwcml2YXRlIEFQSSBuYW1lOiAiK2ErIi4iKTt0aGlzLktbYV09Yz92b2lkIDA6eWIoYik/dGgoYSxiKTp1aChhLGIpfTtmdW5jdGlvbiBiaShhLGIpe3ZhciBjPXZvaWQgMDtyZXR1cm4gY307ZnVuY3Rpb24gY2koKXt2YXIgYT17fTsKcmV0dXJuIGF9O3ZhciBkaT17fSxlaT0oZGlbRi5ELnNhXT0iZ2N1IixkaVtGLkQuZWhdPSJlcHQiLGRpW0YuRC5TYl09ImdjbGdiIixkaVtGLkQubGJdPSJnY2xhdyIsZGlbRi5ELnpsXT0iZ2NsaWRfbGVuIixkaVtGLkQuQmVdPSJnY2xncyIsZGlbRi5ELkNlXT0iZ2NsbHAiLGRpW0YuRC5EZV09ImdjbHN0IixkaVtGLkQuRWRdPSJhdWlkIixkaVtGLkQuQmxdPSJhZSIsZGlbRi5ELkNmXT0iZHNjbnQiLGRpW0YuRC5EZl09ImZjbnRyIixkaVtGLkQuRWZdPSJmbG5nIixkaVtGLkQuRmZdPSJtaWQiLGRpW0YuRC53aV09ImJ0dHlwZSIsZGlbRi5ELktiXT0iZ2FjaWQiLGRpW0YuRC5HZF09ImxhYmVsIixkaVtGLkQuRmVdPSJjYXBpIixkaVtGLkQuamhdPSJwc2NkbCIsZGlbRi5ELmViXT0iY3VycmVuY3lfY29kZSIsZGlbRi5ELkdlXT0idmRsdHYiLGRpW0YuRC5raF09ImNsb2N0IixkaVtGLkQuRWxdPSJfZGJnIixkaVtGLkQuSWVdPSJvZWRlbGQiLGRpW0YuRC5WY109ImVkaWQiLGRpW0YuRC5NZF09ImV2bmlkIiwKZGlbRi5ELkVpXT0iZXZqaWQiLGRpW0YuRC5OZF09ImV4Y2lkIixkaVtGLkQucmhdPSJnYWMiLGRpW0YuRC5KZV09ImdhY2diIixkaVtGLkQuTWxdPSJnYWNtY292IixkaVtGLkQuS2VdPSJnZHByIixkaVtGLkQuWGNdPSJnZGlkIixkaVtGLkQuTGVdPSJfbmciLGRpW0YuRC5jcV09Il9vbm8iLGRpW0YuRC50aF09ImdwcF9zaWQiLGRpW0YuRC51aF09ImdwcCIsZGlbRi5ELlBsXT0iZ3NhZXhwIixkaVtGLkQuVmZdPSJfdHUiLGRpW0YuRC5NZV09ImZybSIsZGlbRi5ELktpXT0iZ3RtX3VwIixkaVtGLkQuUGRdPSJscHMiLGRpW0YuRC5MaV09ImRpZCIsZGlbRi5ELlFkXT0iZmNudHIiLGRpW0YuRC5SZF09ImZsbmciLGRpW0YuRC5TZF09Im1pZCIsZGlbRi5ELk5lXT12b2lkIDAsZGlbRi5ELk1iXT0idGliYSIsZGlbRi5ELldiXT0icmRwIixkaVtGLkQueGNdPSJlY3NpZCIsZGlbRi5ELlpmXT0iZ2FfdWlkIixkaVtGLkQuVWRdPSJkZWxvcGMiLGRpW0YuRC5PZV09ImdkcHJfY29uc2VudCIsCmRpW0YuRC5QYV09Im9pZCIsZGlbRi5ELmRtXT0ib2lkc3JjIixkaVtGLkQuZm1dPSJ1cHRncyIsZGlbRi5ELmNnXT0idWFhIixkaVtGLkQuZGddPSJ1YWIiLGRpW0YuRC5lZ109InVhZnZsIixkaVtGLkQuZmddPSJ1YW1iIixkaVtGLkQuZ2ddPSJ1YW0iLGRpW0YuRC5oZ109InVhcCIsZGlbRi5ELmlnXT0idWFwdiIsZGlbRi5ELmpnXT0idWF3IixkaVtGLkQuZ21dPSJlY19sYXQiLGRpW0YuRC5obV09ImVjX21ldGEiLGRpW0YuRC5pbV09ImVjX20iLGRpW0YuRC5qbV09ImVjX3NlbCIsZGlbRi5ELmttXT0iZWNfcyIsZGlbRi5ELkJjXT0iZWNfbW9kZSIsZGlbRi5ELmZiXT0idXNlcklkIixkaVtGLkQua2ddPSJ1c19wcml2YWN5IixkaVtGLkQuUWFdPSJ2YWx1ZSIsZGlbRi5ELnFtXT0ibWNvdiIsZGlbRi5ELldpXT0iaG4iLGRpW0YuRC5WbV09Imd0bV9lZSIsZGlbRi5ELllpXT0idWlwIixkaVtGLkQuSmhdPSJtdCIsZGlbRi5ELmRlXT0ibnBhIixkaVtGLkQuWXFdPSJzZ191YyIsZGlbRi5ELnlpXT0KbnVsbCxkaVtGLkQuYmRdPW51bGwsZGlbRi5ELnRiXT1udWxsLGRpW0YuRC5IYV09bnVsbCxkaVtGLkQuemFdPW51bGwsZGlbRi5ELlVhXT1udWxsLGRpW0YuRC5QZV09bnVsbCxkaVtGLkQuZWRdPW51bGwsZGlbRi5ELnNoXT1udWxsLGRpW0YuRC5CZF09bnVsbCxkaVtGLkQuQ2RdPW51bGwsZGlbRi5ELmZoXT1udWxsLGRpW0YuRC5naF09bnVsbCxkaVtGLkQuVGFdPW51bGwsZGlbRi5ELldjXT1udWxsLGRpKTtmdW5jdGlvbiBmaShhLGIpe2lmKGEpe3ZhciBjPWEuc3BsaXQoIngiKTtjLmxlbmd0aD09PTImJihnaShiLCJ1X3ciLGNbMF0pLGdpKGIsInVfaCIsY1sxXSkpfX1mdW5jdGlvbiBoaShhKXt2YXIgYj1paTtiPWI9PT12b2lkIDA/amk6YjtyZXR1cm4ga2kobGkoYSxiKSl9ZnVuY3Rpb24ga2koYSl7cmV0dXJuKGF8fFtdKS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuISFifSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiIoIitbbWkoYi52YWx1ZSksbWkoYi5xdWFudGl0eSksbWkoYi5pdGVtX2lkKSxtaShiLnN0YXJ0X2RhdGUpLG1pKGIuZW5kX2RhdGUpXS5qb2luKCIqIikrIikifSkuam9pbigiIil9CmZ1bmN0aW9uIGxpKGEsYil7cmV0dXJuKGF8fFtdKS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuISFjfSkubWFwKGZ1bmN0aW9uKGMpe3JldHVybntpdGVtX2lkOmIoYykscXVhbnRpdHk6Yy5xdWFudGl0eSx2YWx1ZTpjLnByaWNlLHN0YXJ0X2RhdGU6Yy5zdGFydF9kYXRlLGVuZF9kYXRlOmMuZW5kX2RhdGV9fSl9ZnVuY3Rpb24gamkoYSl7cmV0dXJuW2EuaXRlbV9pZCxhLmlkLGEuaXRlbV9uYW1lXS5maW5kKGZ1bmN0aW9uKGIpe3JldHVybiBiIT1udWxsfSl9ZnVuY3Rpb24gbmkoYSl7aWYoYSYmYS5sZW5ndGgpcmV0dXJuIGEubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiJiZiLmVzdGltYXRlZF9kZWxpdmVyeV9kYXRlP2IuZXN0aW1hdGVkX2RlbGl2ZXJ5X2RhdGU6IiJ9KS5qb2luKCIsIil9ZnVuY3Rpb24gZ2koYSxiLGMpe2M9PT12b2lkIDB8fGM9PT1udWxsfHxjPT09IiImJiF5Z1tiXXx8KGFbYl09Yyl9CmZ1bmN0aW9uIG1pKGEpe3JldHVybiB0eXBlb2YgYSE9PSJudW1iZXIiJiZ0eXBlb2YgYSE9PSJzdHJpbmciPyIiOmEudG9TdHJpbmcoKX07ZnVuY3Rpb24gb2koKXt0aGlzLmJsb2NrU2l6ZT0tMX07ZnVuY3Rpb24gcGkoYSxiKXt0aGlzLmJsb2NrU2l6ZT0tMTt0aGlzLmJsb2NrU2l6ZT02NDt0aGlzLk49UmEuVWludDhBcnJheT9uZXcgVWludDhBcnJheSh0aGlzLmJsb2NrU2l6ZSk6QXJyYXkodGhpcy5ibG9ja1NpemUpO3RoaXMuUj10aGlzLks9MDt0aGlzLkg9W107dGhpcy5mYT1hO3RoaXMuWj1iO3RoaXMuamE9UmEuSW50MzJBcnJheT9uZXcgSW50MzJBcnJheSg2NCk6QXJyYXkoNjQpO3FpPT09dm9pZCAwJiYoUmEuSW50MzJBcnJheT9xaT1uZXcgSW50MzJBcnJheShyaSk6cWk9cmkpO3RoaXMucmVzZXQoKX1TYShwaSxvaSk7Zm9yKHZhciBzaT1bXSx0aT0wO3RpPDYzO3RpKyspc2lbdGldPTA7dmFyIHVpPVtdLmNvbmNhdCgxMjgsc2kpOwpwaS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLlI9dGhpcy5LPTA7dmFyIGE7aWYoUmEuSW50MzJBcnJheSlhPW5ldyBJbnQzMkFycmF5KHRoaXMuWik7ZWxzZXt2YXIgYj10aGlzLlosYz1iLmxlbmd0aDtpZihjPjApe2Zvcih2YXIgZD1BcnJheShjKSxlPTA7ZTxjO2UrKylkW2VdPWJbZV07YT1kfWVsc2UgYT1bXX10aGlzLkg9YX07CnZhciB2aT1mdW5jdGlvbihhKXtmb3IodmFyIGI9YS5OLGM9YS5qYSxkPTAsZT0wO2U8Yi5sZW5ndGg7KWNbZCsrXT1iW2VdPDwyNHxiW2UrMV08PDE2fGJbZSsyXTw8OHxiW2UrM10sZT1kKjQ7Zm9yKHZhciBmPTE2O2Y8NjQ7ZisrKXt2YXIgZz1jW2YtMTVdfDAsaD1jW2YtMl18MDtjW2ZdPSgoY1tmLTE2XXwwKSsoKGc+Pj43fGc8PDI1KV4oZz4+PjE4fGc8PDE0KV5nPj4+Myl8MCkrKChjW2YtN118MCkrKChoPj4+MTd8aDw8MTUpXihoPj4+MTl8aDw8MTMpXmg+Pj4xMCl8MCl8MH1mb3IodmFyIGw9YS5IWzBdfDAsbj1hLkhbMV18MCxwPWEuSFsyXXwwLHE9YS5IWzNdfDAscj1hLkhbNF18MCx0PWEuSFs1XXwwLHU9YS5IWzZdfDAsdj1hLkhbN118MCx4PTA7eDw2NDt4Kyspe3ZhciB5PSgobD4+PjJ8bDw8MzApXihsPj4+MTN8bDw8MTkpXihsPj4+MjJ8bDw8MTApKSsobCZuXmwmcF5uJnApfDAsej0odisoKHI+Pj42fHI8PDI2KV4ocj4+PjExfHI8PDIxKV4ocj4+PjI1fHI8PDcpKXwKMCkrKCgociZ0Xn5yJnUpKyhxaVt4XXwwKXwwKSsoY1t4XXwwKXwwKXwwO3Y9dTt1PXQ7dD1yO3I9cSt6fDA7cT1wO3A9bjtuPWw7bD16K3l8MH1hLkhbMF09YS5IWzBdK2x8MDthLkhbMV09YS5IWzFdK258MDthLkhbMl09YS5IWzJdK3B8MDthLkhbM109YS5IWzNdK3F8MDthLkhbNF09YS5IWzRdK3J8MDthLkhbNV09YS5IWzVdK3R8MDthLkhbNl09YS5IWzZdK3V8MDthLkhbN109YS5IWzddK3Z8MH07CnBpLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oYSxiKXtiPT09dm9pZCAwJiYoYj1hLmxlbmd0aCk7dmFyIGM9MCxkPXRoaXMuSztpZih0eXBlb2YgYT09PSJzdHJpbmciKWZvcig7YzxiOyl0aGlzLk5bZCsrXT1hLmNoYXJDb2RlQXQoYysrKSxkPT10aGlzLmJsb2NrU2l6ZSYmKHZpKHRoaXMpLGQ9MCk7ZWxzZXt2YXIgZSxmPXR5cGVvZiBhO2U9ZiE9Im9iamVjdCI/ZjphP0FycmF5LmlzQXJyYXkoYSk/ImFycmF5IjpmOiJudWxsIjtpZihlPT0iYXJyYXkifHxlPT0ib2JqZWN0IiYmdHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIilmb3IoO2M8Yjspe3ZhciBnPWFbYysrXTtpZighKCJudW1iZXIiPT10eXBlb2YgZyYmMDw9ZyYmMjU1Pj1nJiZnPT0oZ3wwKSkpdGhyb3cgRXJyb3IoIm1lc3NhZ2UgbXVzdCBiZSBhIGJ5dGUgYXJyYXkiKTt0aGlzLk5bZCsrXT1nO2Q9PXRoaXMuYmxvY2tTaXplJiYodmkodGhpcyksZD0wKX1lbHNlIHRocm93IEVycm9yKCJtZXNzYWdlIG11c3QgYmUgc3RyaW5nIG9yIGFycmF5Iik7Cn10aGlzLks9ZDt0aGlzLlIrPWJ9O3BpLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPXRoaXMuUio4O3RoaXMuSzw1Nj90aGlzLnVwZGF0ZSh1aSw1Ni10aGlzLkspOnRoaXMudXBkYXRlKHVpLHRoaXMuYmxvY2tTaXplLSh0aGlzLkstNTYpKTtmb3IodmFyIGM9NjM7Yz49NTY7Yy0tKXRoaXMuTltjXT1iJjI1NSxiLz0yNTY7dmkodGhpcyk7Zm9yKHZhciBkPTAsZT0wO2U8dGhpcy5mYTtlKyspZm9yKHZhciBmPTI0O2Y+PTA7Zi09OClhW2QrK109dGhpcy5IW2VdPj5mJjI1NTtyZXR1cm4gYX07CnZhciByaT1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LAo0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF0scWk7ZnVuY3Rpb24gd2koKXtwaS5jYWxsKHRoaXMsOCx4aSl9U2Eod2kscGkpO3ZhciB4aT1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdO3ZhciB5aT0vXlswLTlBLUZhLWZdezY0fSQvO2Z1bmN0aW9uIHppKGEpe3RyeXtyZXR1cm4obmV3IFRleHRFbmNvZGVyKS5lbmNvZGUoYSl9Y2F0Y2goYil7cmV0dXJuIFpiKGEpfX1mdW5jdGlvbiBBaShhKXt2YXIgYj1BO2lmKGE9PT0iInx8YT09PSJlMCIpcmV0dXJuIFByb21pc2UucmVzb2x2ZShhKTt2YXIgYztpZigoYz1iLmNyeXB0byk9PW51bGw/MDpjLnN1YnRsZSl7aWYoeWkudGVzdChhKSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGEpO3RyeXt2YXIgZD16aShhKTtyZXR1cm4gYi5jcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsZCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gQmkoZSxiKX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuImUyIn0pfWNhdGNoKGUpe3JldHVybiBQcm9taXNlLnJlc29sdmUoImUyIil9fWVsc2UgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgiZTEiKX0KZnVuY3Rpb24gQ2koYSl7dHJ5e3ZhciBiPW5ldyB3aTtiLnVwZGF0ZSh6aShhKSk7cmV0dXJuIGIuZGlnZXN0KCl9Y2F0Y2goYyl7cmV0dXJuImUyIn19ZnVuY3Rpb24gRGkoYSl7dmFyIGI9QTtpZihhPT09IiJ8fGE9PT0iZTAifHx5aS50ZXN0KGEpKXJldHVybiBhO3ZhciBjPUNpKGEpO2lmKGM9PT0iZTIiKXJldHVybiJlMiI7dHJ5e3JldHVybiBCaShjLGIpfWNhdGNoKGQpe3JldHVybiJlMiJ9fWZ1bmN0aW9uIEJpKGEsYil7dmFyIGM9QXJyYXkuZnJvbShuZXcgVWludDhBcnJheShhKSkubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGQpfSkuam9pbigiIik7cmV0dXJuIGIuYnRvYShjKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpfTtmdW5jdGlvbiBFaSgpe2Zvcih2YXIgYT0hMSxiPSExLGM9MDthPT09YjspaWYoYT1EYigwLDEpPT09MCxiPURiKDAsMSk9PT0wLGMrKyxjPjMwKXJldHVybjtyZXR1cm4gYX12YXIgR2k9e3NrOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gRmkuc2soYSxiLGMpfX0sSGk9ZnVuY3Rpb24oKXt0aGlzLnN0dWRpZXM9e307dGhpcy5IPUVpfTsKSGkucHJvdG90eXBlLnNrPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLnN0dWRpZXNbYl07aWYoISgoYz09PXZvaWQgMD9EYigwLDk5OTkpOmMlMUU0KTxkLnByb2JhYmlsaXR5KihkLmNvbnRyb2xJZDI/NDoyKSoxRTQpKXJldHVybiBhO2E6e3ZhciBlPWQuc3R1ZHlJZCxmPWQuZXhwZXJpbWVudElkLGc9ZC5jb250cm9sSWQsaD1kLmNvbnRyb2xJZDI7aWYoISgoYS5leHB8fHt9KVtmXXx8KGEuZXhwfHx7fSlbZ118fGgmJihhLmV4cHx8e30pW2hdKSl7dmFyIGw9YyE9PXZvaWQgMD9jJTI9PT0wOnRoaXMuSCgpO2lmKGwhPT12b2lkIDApe3ZhciBuPWw/MDoxO2lmKGgpe3ZhciBwPWMhPT12b2lkIDA/KGM+PjEpJTI9PT0wOnRoaXMuSCgpO2lmKHA9PT12b2lkIDApYnJlYWsgYTtufD0ocD8wOjEpPDwxfW49PT0wP0lpKGEsZixlKTpuPT09MT9JaShhLGcsZSk6bj09PTImJklpKGEsaCxlKX19fXJldHVybiBhfTsKdmFyIEtpPWZ1bmN0aW9uKGEsYil7dmFyIGM9Rmk7cmV0dXJuIGMuc3R1ZGllc1tiXT9KaShjLGIpfHwhIShhLmV4cHx8e30pW2Muc3R1ZGllc1tiXS5leHBlcmltZW50SWRdOiExfSxMaT1mdW5jdGlvbihhLGIpe3ZhciBjPUZpO3JldHVybiBjLnN0dWRpZXNbYl0mJmMuc3R1ZGllc1tiXS5jb250cm9sSWQmJiFKaShjLGIpPyEhKGEuZXhwfHx7fSlbYy5zdHVkaWVzW2JdLmNvbnRyb2xJZF06ITF9LE1pPWZ1bmN0aW9uKGEsYil7dmFyIGM9Rmk7cmV0dXJuIGMuc3R1ZGllc1tiXSYmYy5zdHVkaWVzW2JdLmNvbnRyb2xJZDImJiFKaShjLGIpPyEhKGEuZXhwfHx7fSlbYy5zdHVkaWVzW2JdLmNvbnRyb2xJZDJdOiExfSxOaT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLmV4cHx8e30sZD1tKE9iamVjdC5rZXlzKGMpLm1hcChOdW1iZXIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtpZihjW2ZdPT09YilyZXR1cm4gZn19LEppPWZ1bmN0aW9uKGEsCmIpe3JldHVybiEhYS5zdHVkaWVzW2JdLmFjdGl2ZXx8YS5zdHVkaWVzW2JdLnByb2JhYmlsaXR5Pi41fSxJaT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5leHB8fHt9O2RbYl09YzthLmV4cD1kfSxGaT1uZXcgSGk7dmFyIGlqPWZ1bmN0aW9uKCl7dGhpcy5IPUEuZ29vZ2xlX3RhZ19tYW5hZ2VyPUEuZ29vZ2xlX3RhZ19tYW5hZ2VyfHx7fX0samo7ZnVuY3Rpb24ga2ooYSxiKXtsaigpO3ZhciBjPWpqO3JldHVybiBjLkhbYV09Yy5IW2FdfHxiKCl9ZnVuY3Rpb24gbWooYSl7bGooKTtyZXR1cm4gamouSFthXX1mdW5jdGlvbiBuaihhLGIpe2xqKCk7amouSFthXT1ifWZ1bmN0aW9uIG9qKGEpe3ZhciBiPUUoNSk7bGooKTt2YXIgYz1qajtjLkhbYl09Yy5IW2JdfHxhfWZ1bmN0aW9uIHBqKCl7dmFyIGE9RSgxOSk7bGooKTt2YXIgYj1qajtyZXR1cm4gYi5IW2FdPWIuSFthXXx8e319ZnVuY3Rpb24gcWooKXt2YXIgYT1FKDE5KTtsaigpO3JldHVybiBqai5IW2FdfWZ1bmN0aW9uIHJqKCl7bGooKTt2YXIgYT1qaixiPWEuSC5zZXF1ZW5jZXx8MTthLkguc2VxdWVuY2U9YisxO3JldHVybiBifWZ1bmN0aW9uIGxqKCl7amp8fChqaj1uZXcgaWopfTt2YXIgc2o9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgMTpyZXR1cm4gMDtjYXNlIDQ5MTpyZXR1cm4gMTI7Y2FzZSA0ODA6cmV0dXJuIDExO2Nhc2UgNDk5OnJldHVybiAxMDtjYXNlIDUwMDpyZXR1cm4gNjtjYXNlIDQyMTpyZXR1cm4gOTtjYXNlIDU2MTpyZXR1cm4gMTc7Y2FzZSA0ODI6cmV0dXJuIDE1O2Nhc2UgNTcwOnJldHVybiAxOTtjYXNlIDQ5NTpyZXR1cm4gMTM7Y2FzZSA1MTQ6cmV0dXJuIDE2O2Nhc2UgNTczOnJldHVybiAxODtjYXNlIDIzNTpyZXR1cm4gODtjYXNlIDUzOnJldHVybiAxO2Nhc2UgNTQ6cmV0dXJuIDI7Y2FzZSA1MjpyZXR1cm4gNDtjYXNlIDc1OnJldHVybiAzfX0sdGo9ZnVuY3Rpb24oYSxiKXthLk5bYl09ITA7dmFyIGM9c2ooYik7YyE9PXZvaWQgMCYmKFdmW2NdPSEwKX0sTT1mdW5jdGlvbihhKXtyZXR1cm4hIXVqLk5bYV19LHVqPW5ldyBmdW5jdGlvbigpe3RoaXMuTj1bXTt0aGlzLks9W107dGhpcy5IPVtdOwp0aih0aGlzLDEzMik7dmFyIGE9TmYoNiw2RTQpO1hmWzFdPWE7dmFyIGI9TmYoNywxKTtYZlszXT1iO3ZhciBjPU5mKDM1LDUwKTtYZlsyXT1jO3ZhciBkPU5mKDY5LDE3NzY0NDg5MjApO1hmWzRdPWQ7CnRqKHRoaXMsNDM1KTt0aih0aGlzLDE0MSk7Cn07dmFyIHZqPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBTZXQ7dGhpcy5LPW5ldyBTZXR9LHhqPWZ1bmN0aW9uKGEpe3ZhciBiPXdqLkg7YT1hPT09dm9pZCAwP1tdOmE7dmFyIGM9W10uY29uY2F0KHcoYi5IKSkuY29uY2F0KFtdLmNvbmNhdCh3KGIuSykpKS5jb25jYXQoYSk7Yy5zb3J0KGZ1bmN0aW9uKGQsZSl7cmV0dXJuIGQtZX0pO3JldHVybiBjfSx5aj1mdW5jdGlvbigpe3ZhciBhPVtdLmNvbmNhdCh3KHdqLkguSCkpO2Euc29ydChmdW5jdGlvbihiLGMpe3JldHVybiBiLWN9KTtyZXR1cm4gYX0semo9ZnVuY3Rpb24oKXt2YXIgYT13ai5ILGI9RSg0NCk7YS5IPW5ldyBTZXQ7aWYoYiE9PSIiKWZvcih2YXIgYz1tKGIuc3BsaXQoIn4iKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPU51bWJlcihkLnZhbHVlKTtpc05hTihlKXx8YS5ILmFkZChlKX19O3ZhciBBaj17fSxCaj17X19jbDoxLF9fZWNsOjEsX19laGw6MSxfX2V2bDoxLF9fZmFsOjEsX19maWw6MSxfX2ZzbDoxLF9faGw6MSxfX2plbDoxLF9fbGNsOjEsX19zZGw6MSxfX3RsOjEsX195dGw6MX0sQ2o9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx7X19wYXVzZWQ6MSxfX3RnOjF9LEJqKSxEaixFaj0hMTtEaj1Fajt2YXIgRmo9IiI7QWoucWo9Rmo7dmFyIHdqPW5ldyBmdW5jdGlvbigpe3RoaXMuSD1uZXcgdmp9O3ZhciBHaj0vOlswLTldKyQvLEhqPS9eXGQrXC5mbHNcLmRvdWJsZWNsaWNrXC5uZXQkLztmdW5jdGlvbiBJaihhLGIsYyxkKXt2YXIgZT1KaihhLCEhZCxiKSxmLGc7cmV0dXJuIGM/KGc9ZVtiXSkhPW51bGw/ZzpbXTooZj1lW2JdKT09bnVsbD92b2lkIDA6ZlswXX1mdW5jdGlvbiBKaihhLGIsYyl7Zm9yKHZhciBkPXt9LGU9bShhLnNwbGl0KCImIikpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1tKGYudmFsdWUuc3BsaXQoIj0iKSksaD1nLm5leHQoKS52YWx1ZSxsPXlhKGcpLG49ZGVjb2RlVVJJQ29tcG9uZW50KGgucmVwbGFjZSgvXCsvZywiICIpKTtpZihjPT09dm9pZCAwfHxuPT09Yyl7dmFyIHA9bC5qb2luKCI9Iik7ZFtuXXx8KGRbbl09W10pO2Rbbl0ucHVzaChiP3A6ZGVjb2RlVVJJQ29tcG9uZW50KHAucmVwbGFjZSgvXCsvZywiICIpKSl9fXJldHVybiBkfQpmdW5jdGlvbiBLaihhKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhKX1jYXRjaChiKXt9fWZ1bmN0aW9uIExqKGEsYixjLGQsZSl7YiYmKGI9U3RyaW5nKGIpLnRvTG93ZXJDYXNlKCkpO2lmKGI9PT0icHJvdG9jb2wifHxiPT09InBvcnQiKWEucHJvdG9jb2w9TWooYS5wcm90b2NvbCl8fE1qKEEubG9jYXRpb24ucHJvdG9jb2wpO2I9PT0icG9ydCI/YS5wb3J0PVN0cmluZyhOdW1iZXIoYS5ob3N0bmFtZT9hLnBvcnQ6QS5sb2NhdGlvbi5wb3J0KXx8KGEucHJvdG9jb2w9PT0iaHR0cCI/ODA6YS5wcm90b2NvbD09PSJodHRwcyI/NDQzOiIiKSk6Yj09PSJob3N0IiYmKGEuaG9zdG5hbWU9KGEuaG9zdG5hbWV8fEEubG9jYXRpb24uaG9zdG5hbWUpLnJlcGxhY2UoR2osIiIpLnRvTG93ZXJDYXNlKCkpO3JldHVybiBOaihhLGIsYyxkLGUpfQpmdW5jdGlvbiBOaihhLGIsYyxkLGUpe3ZhciBmLGc9TWooYS5wcm90b2NvbCk7YiYmKGI9U3RyaW5nKGIpLnRvTG93ZXJDYXNlKCkpO3N3aXRjaChiKXtjYXNlICJ1cmxfbm9fZnJhZ21lbnQiOmY9T2ooYSk7YnJlYWs7Y2FzZSAicHJvdG9jb2wiOmY9ZzticmVhaztjYXNlICJob3N0IjpmPWEuaG9zdG5hbWUucmVwbGFjZShHaiwiIikudG9Mb3dlckNhc2UoKTtpZihjKXt2YXIgaD0vXnd3d1xkKlwuLy5leGVjKGYpO2gmJmhbMF0mJihmPWYuc3Vic3RyaW5nKGhbMF0ubGVuZ3RoKSl9YnJlYWs7Y2FzZSAicG9ydCI6Zj1TdHJpbmcoTnVtYmVyKGEucG9ydCl8fChnPT09Imh0dHAiPzgwOmc9PT0iaHR0cHMiPzQ0MzoiIikpO2JyZWFrO2Nhc2UgInBhdGgiOmEucGF0aG5hbWV8fGEuaG9zdG5hbWV8fHNiKCJUQUdHSU5HIiwxKTtmPWEucGF0aG5hbWUuc3Vic3RyaW5nKDAsMSk9PT0iLyI/YS5wYXRobmFtZToiLyIrYS5wYXRobmFtZTt2YXIgbD1mLnNwbGl0KCIvIik7KGR8fFtdKS5pbmRleE9mKGxbbC5sZW5ndGgtCjFdKT49MCYmKGxbbC5sZW5ndGgtMV09IiIpO2Y9bC5qb2luKCIvIik7YnJlYWs7Y2FzZSAicXVlcnkiOmY9YS5zZWFyY2gucmVwbGFjZSgiPyIsIiIpO2UmJihmPUlqKGYsZSwhMSkpO2JyZWFrO2Nhc2UgImV4dGVuc2lvbiI6dmFyIG49YS5wYXRobmFtZS5zcGxpdCgiLiIpO2Y9bi5sZW5ndGg+MT9uW24ubGVuZ3RoLTFdOiIiO2Y9Zi5zcGxpdCgiLyIpWzBdO2JyZWFrO2Nhc2UgImZyYWdtZW50IjpmPWEuaGFzaC5yZXBsYWNlKCIjIiwiIik7YnJlYWs7ZGVmYXVsdDpmPWEmJmEuaHJlZn1yZXR1cm4gZn1mdW5jdGlvbiBNaihhKXtyZXR1cm4gYT9hLnJlcGxhY2UoIjoiLCIiKS50b0xvd2VyQ2FzZSgpOiIifWZ1bmN0aW9uIE9qKGEpe3ZhciBiPSIiO2lmKGEmJmEuaHJlZil7dmFyIGM9YS5ocmVmLmluZGV4T2YoIiMiKTtiPWM8MD9hLmhyZWY6YS5ocmVmLnN1YnN0cmluZygwLGMpfXJldHVybiBifXZhciBQaj17fSxRaj0wOwpmdW5jdGlvbiBSaihhKXt2YXIgYj1QalthXTtpZighYil7dmFyIGM9Qi5jcmVhdGVFbGVtZW50KCJhIik7YSYmKGMuaHJlZj1hKTt2YXIgZD1jLnBhdGhuYW1lO2RbMF0hPT0iLyImJihhfHxzYigiVEFHR0lORyIsMSksZD0iLyIrZCk7dmFyIGU9Yy5ob3N0bmFtZS5yZXBsYWNlKEdqLCIiKTtiPXtocmVmOmMuaHJlZixwcm90b2NvbDpjLnByb3RvY29sLGhvc3Q6Yy5ob3N0LGhvc3RuYW1lOmUscGF0aG5hbWU6ZCxzZWFyY2g6Yy5zZWFyY2gsaGFzaDpjLmhhc2gscG9ydDpjLnBvcnR9O1FqPDUmJihQalthXT1iLFFqKyspfXJldHVybiBifWZ1bmN0aW9uIFNqKGEsYixjKXt2YXIgZD1SaihhKTtyZXR1cm4gYWMoYixkLGMpfQpmdW5jdGlvbiBUaihhKXt2YXIgYj1SaihBLmxvY2F0aW9uLmhyZWYpLGM9TGooYiwiaG9zdCIsITEpO2lmKGMmJmMubWF0Y2goSGopKXt2YXIgZD1MaihiLCJwYXRoIik7aWYoZCl7dmFyIGU9ZC5zcGxpdChhKyI9Iik7aWYoZS5sZW5ndGg+MSlyZXR1cm4gZVsxXS5zcGxpdCgiOyIpWzBdLnNwbGl0KCI/IilbMF19fX07dmFyIFVqPXsiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbSI6Ii9nIiwiaHR0cHM6Ly93d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iOiIvYXMiLCJodHRwczovL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIjoiL2dzIn0sVmo9WyIvYXMvZC9jY20vY29udmVyc2lvbiIsIi9nL2QvY2NtL2NvbnZlcnNpb24iLCIvZ3MvY2NtL2NvbnZlcnNpb24iLCIvZC9jY20vZm9ybS1kYXRhIl07ZnVuY3Rpb24gV2ooKXtyZXR1cm4gSWYoNDcpP0pmKDU0KSE9PTE6ITF9ZnVuY3Rpb24gWGooKXt2YXIgYT1FKDE4KSxiPWEubGVuZ3RoO3JldHVybiBhW2ItMV09PT0iLyI/YS5zdWJzdHJpbmcoMCxiLTEpOmF9CmZ1bmN0aW9uIFlqKGEsYil7aWYoYSl7dmFyIGM9IiIrYTtjLmluZGV4T2YoImh0dHA6Ly8iKSE9PTAmJmMuaW5kZXhPZigiaHR0cHM6Ly8iKSE9PTAmJihjPSJodHRwczovLyIrYyk7Y1tjLmxlbmd0aC0xXT09PSIvIiYmKGM9Yy5zdWJzdHJpbmcoMCxjLmxlbmd0aC0xKSk7cmV0dXJuIFJqKCIiK2MrYikuaHJlZn19ZnVuY3Rpb24gWmooYSl7aWYoYWsoKSlyZXR1cm4gWWooYSwiL2FuYWx5dGljcy5qcyIpfWZ1bmN0aW9uIGJrKGEpe3JldHVybiBhPT09Mnx8YT09PTN9ZnVuY3Rpb24gY2soYSl7cmV0dXJuIE0oNTg4KSYmYT09PTN9ZnVuY3Rpb24gYWsoKXtyZXR1cm4gV2ooKXx8SWYoNTApfWZ1bmN0aW9uIGRrKCl7cmV0dXJuISFBai5xaiYmQWoucWouc3BsaXQoIkBAIikuam9pbigiIikhPT0iU0dUTV9UT0tFTiJ9CmZ1bmN0aW9uIGVrKGEpe2Zvcih2YXIgYj1tKFtGLkQuZGQsRi5ELnljXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPU8oYSxjLnZhbHVlKTtpZihkKXJldHVybiBkfX1mdW5jdGlvbiBmayhhLGIsYyl7Yz1jPT09dm9pZCAwPyIiOmM7aWYoIVdqKCkpcmV0dXJuIGE7dmFyIGQ9Yj9ValthXXx8IiI6IiI7ZD09PSIvZ3MiJiYoYz0iIik7cmV0dXJuIiIrWGooKStkK2N9ZnVuY3Rpb24gZ2soYSl7aWYoV2ooKSlmb3IodmFyIGI9bShWaiksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7aWYoU2IoYSwiIitYaigpK2QpKXJldHVybiI6OiJ9fQpmdW5jdGlvbiBoaygpe3ZhciBhPUE7aWYoIWEpcmV0dXJuITE7dHJ5e2lmKGE9PT1hLnRvcClyZXR1cm4hMTt2YXIgYj1hLmxvY2F0aW9uLnBhdGhuYW1lO3JldHVybiBiLmluZGV4T2YoIi9fL3NlcnZpY2Vfd29ya2VyLyIpIT09LTEmJlRiKGIsIi9zd19pZnJhbWUuaHRtbCIpfWNhdGNoKGMpe3JldHVybiExfX07dmFyIGlrPS9ndGFnWy5cL11qcy8sams9L2d0bVsuXC9danMvLGxrPWZ1bmN0aW9uKGEpe3ZhciBiPWtrO2lmKChhLnNjcmlwdENvbnRhaW5lcklkfHwiIikuaW5kZXhPZigiR1RNLSIpPj0wKXt2YXIgYzthOnt2YXIgZCxlPShkPWEuc2NyaXB0RWxlbWVudCk9PW51bGw/dm9pZCAwOmQuc3JjO2lmKGUpe2Zvcih2YXIgZj1JZig0NyksZz1SaihlKSxoPWY/Zy5wYXRobmFtZToiIitnLmhvc3RuYW1lK2cucGF0aG5hbWUsbD1CLnNjcmlwdHMsbj0iIixwPTA7cDxsLmxlbmd0aDsrK3Ape3ZhciBxPWxbcF07aWYoIShxLmlubmVySFRNTC5sZW5ndGg9PT0wfHwhZiYmcS5pbm5lckhUTUwuaW5kZXhPZihhLnNjcmlwdENvbnRhaW5lcklkfHwiU0hPVUxEX05PVF9CRV9TRVQiKTwwfHxxLmlubmVySFRNTC5pbmRleE9mKGgpPDApKXtpZihxLmlubmVySFRNTC5pbmRleE9mKCIoZnVuY3Rpb24odyxkLHMsbCxpKSIpPj0wKXtjPVN0cmluZyhwKTticmVhayBhfW49U3RyaW5nKHApfX1pZihuKXtjPQpuO2JyZWFrIGF9fWM9dm9pZCAwfXZhciByPWM7aWYocilyZXR1cm4gYi5IPSEwLHJ9dmFyIHQ9W10uc2xpY2UuY2FsbChCLnNjcmlwdHMpO3JldHVybiBhLnNjcmlwdEVsZW1lbnQ/U3RyaW5nKHQuaW5kZXhPZihhLnNjcmlwdEVsZW1lbnQpKToiLTEifSxtaz1mdW5jdGlvbihhKXtpZihray5IKXJldHVybiIxIjt2YXIgYixjPShiPWEuc2NyaXB0RWxlbWVudCk9PW51bGw/dm9pZCAwOmIuc3JjO2lmKGMpe2lmKGlrLnRlc3QoYykpcmV0dXJuIjMiO2lmKGprLnRlc3QoYykpcmV0dXJuIjIifXJldHVybiIwIn0sa2s9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPSExfTtmdW5jdGlvbiBQKGEpe3NiKCJHVE0iLGEpfTtmdW5jdGlvbiBuayhhKXt2YXIgYj1vaygpLmRlc3RpbmF0aW9uQXJyYXlbYV0sYz1vaygpLmRlc3RpbmF0aW9uW2FdO3JldHVybiBiJiZiLmxlbmd0aD4wP2JbMF06Y31mdW5jdGlvbiBwayhhLGIpe3ZhciBjPW9rKCk7Yy5wZW5kaW5nfHwoYy5wZW5kaW5nPVtdKTtDYihjLnBlbmRpbmcsZnVuY3Rpb24oZCl7cmV0dXJuIGQudGFyZ2V0LmN0aWQ9PT1hLmN0aWQmJmQudGFyZ2V0LmlzRGVzdGluYXRpb249PT1hLmlzRGVzdGluYXRpb259KXx8Yy5wZW5kaW5nLnB1c2goe3RhcmdldDphLG9uTG9hZDpifSl9ZnVuY3Rpb24gcWsoKXt2YXIgYT1BLmdvb2dsZV90YWdzX2ZpcnN0X3BhcnR5O0FycmF5LmlzQXJyYXkoYSl8fChhPVtdKTtmb3IodmFyIGI9e30sYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWJbZC52YWx1ZV09ITA7cmV0dXJuIE9iamVjdC5mcmVlemUoYil9CnZhciByaz1mdW5jdGlvbigpe3RoaXMuY29udGFpbmVyPXt9O3RoaXMuZGVzdGluYXRpb249e307dGhpcy5kZXN0aW5hdGlvbkFycmF5PXt9O3RoaXMuY2Fub25pY2FsPXt9O3RoaXMucGVuZGluZz1bXTt0aGlzLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnM9e307dGhpcy5pbmplY3RlZEZpcnN0UGFydHlDb250YWluZXJzPXFrKCl9OwpmdW5jdGlvbiBvaygpe3ZhciBhPU1jKCJnb29nbGVfdGFnX2RhdGEiLHt9KSxiPWEudGlkcjtiJiZ0eXBlb2YgYj09PSJvYmplY3QifHwoYj1uZXcgcmssYS50aWRyPWIpO3ZhciBjPWI7Yy5jb250YWluZXJ8fChjLmNvbnRhaW5lcj17fSk7Yy5kZXN0aW5hdGlvbnx8KGMuZGVzdGluYXRpb249e30pO2MuZGVzdGluYXRpb25BcnJheXx8KGMuZGVzdGluYXRpb25BcnJheT17fSk7Yy5jYW5vbmljYWx8fChjLmNhbm9uaWNhbD17fSk7Yy5wZW5kaW5nfHwoYy5wZW5kaW5nPVtdKTtjLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnN8fChjLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnM9cWsoKSk7cmV0dXJuIGN9O2Z1bmN0aW9uIHNrKCl7cmV0dXJuIElmKDcpJiZ0aygpLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1FKDUpfSl9ZnVuY3Rpb24gdWsoKXt2YXIgYTtyZXR1cm4oYT1LZig1NSkpIT1udWxsP2E6W119ZnVuY3Rpb24gdmsoKXtyZXR1cm4gRSg2KXx8Il8iK0UoNSl9ZnVuY3Rpb24gd2soKXt2YXIgYT1FKDEwKTtyZXR1cm4gYT9hLnNwbGl0KCJ8Iik6W0UoNSldfWZ1bmN0aW9uIHRrKCl7dmFyIGE9S2YoNTkpO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2EuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiB0eXBlb2YgYj09PSJzdHJpbmcifSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiLmluZGV4T2YoIkdUTS0iKSE9PTB9KTpbXX1mdW5jdGlvbiB4aygpe3ZhciBhPXlrKHprKCkpLGI9YSYmYS5wYXJlbnQ7aWYoYilyZXR1cm4geWsoYil9CmZ1bmN0aW9uIEFrKCl7dmFyIGE9eWsoemsoKSk7aWYoYSl7Zm9yKDthLnBhcmVudDspe3ZhciBiPXlrKGEucGFyZW50KTtpZighYilicmVhazthPWJ9cmV0dXJuIGF9fWZ1bmN0aW9uIHlrKGEpe3ZhciBiPW9rKCk7cmV0dXJuIGEuaXNEZXN0aW5hdGlvbj9uayhhLmN0aWQpOmIuY29udGFpbmVyW2EuY3RpZF19ZnVuY3Rpb24gQmsoKXt2YXIgYT1vaygpO2lmKGEucGVuZGluZyl7Zm9yKHZhciBiLGM9W10sZD0hMSxlPXdrKCksZj10aygpLGc9e30saD0wO2g8YS5wZW5kaW5nLmxlbmd0aDtnPXtSZzp2b2lkIDB9LGgrKylnLlJnPWEucGVuZGluZ1toXSxDYihnLlJnLnRhcmdldC5pc0Rlc3RpbmF0aW9uP2Y6ZSxmdW5jdGlvbihsKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG49PT1sLlJnLnRhcmdldC5jdGlkfX0oZykpP2R8fChiPWcuUmcub25Mb2FkLGQ9ITApOmMucHVzaChnLlJnKTthLnBlbmRpbmc9YztpZihiKXRyeXtiKHZrKCkpfWNhdGNoKGwpe319fQpmdW5jdGlvbiBDaygpe2Zvcih2YXIgYT1FKDUpLGI9d2soKSxjPXRrKCksZD11aygpLGU9ZnVuY3Rpb24ocSxyKXt2YXIgdD17Y2Fub25pY2FsQ29udGFpbmVySWQ6RSg2KSxzY3JpcHRDb250YWluZXJJZDphLHN0YXRlOjIsY29udGFpbmVyczpiLnNsaWNlKCksZGVzdGluYXRpb25zOmMuc2xpY2UoKX07SmMmJih0LnNjcmlwdEVsZW1lbnQ9SmMpO0tjJiYodC5zY3JpcHRTb3VyY2U9S2MpO3hrKCk9PT12b2lkIDAmJih0Lmh0bWxMb2FkT3JkZXI9bGsodCksdC5sb2FkU2NyaXB0VHlwZT1tayh0KSk7dmFyIHUsdjtzd2l0Y2gocil7Y2FzZSAwOnU9ZnVuY3Rpb24oeil7Zi5jb250YWluZXJbcV09en07dj1mLmNvbnRhaW5lcltxXTticmVhaztjYXNlIDE6dT1mdW5jdGlvbih6KXtmLmRlc3RpbmF0aW9uQXJyYXlbcV09Zi5kZXN0aW5hdGlvbkFycmF5W3FdfHxbXTtmLmRlc3RpbmF0aW9uQXJyYXlbcV0udW5zaGlmdCh6KX07dmFyIHgseT0oKHg9Zi5kZXN0aW5hdGlvbkFycmF5W3FdKT09Cm51bGw/dm9pZCAwOnhbMF0pfHxmLmRlc3RpbmF0aW9uW3FdOyF5fHx5LnN0YXRlIT09MCYmeS5zdGF0ZSE9PTF8fCh2PXkpO2JyZWFrO2Nhc2UgMjp1PWZ1bmN0aW9uKHope2YuZGVzdGluYXRpb25BcnJheVtxXT1mLmRlc3RpbmF0aW9uQXJyYXlbcV18fFtdO2YuZGVzdGluYXRpb25BcnJheVtxXS5wdXNoKHopfSx2PXZvaWQgMH11JiYodj8odi5zdGF0ZT09PTAmJlAoOTMpLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qsdix0KSk6dSh0KSl9LGY9b2soKSxnPW0oYiksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpZShoLnZhbHVlLDApO2Zvcih2YXIgbD1tKGMpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2QuaW5jbHVkZXMocCk/ZShwLDEpOmUocCwyKX1mLmNhbm9uaWNhbFt2aygpXT17fTtCaygpfWZ1bmN0aW9uIERrKCl7dmFyIGE9dmsoKTtyZXR1cm4hIW9rKCkuY2Fub25pY2FsW2FdfQpmdW5jdGlvbiBFayhhKXtyZXR1cm4hIW9rKCkuY29udGFpbmVyW2FdfWZ1bmN0aW9uIEZrKCl7dmFyIGE9emsoKSxiPXlrKGEpO3JldHVybiBiJiZiLmNvbnRleHR9ZnVuY3Rpb24gR2soYSl7dmFyIGI9bmsoYSk7cmV0dXJuIGI/Yi5zdGF0ZSE9PTA6ITF9ZnVuY3Rpb24gemsoKXtyZXR1cm57Y3RpZDpFKDUpLGlzRGVzdGluYXRpb246SWYoNyl9fWZ1bmN0aW9uIEhrKGEsYixjKXt2YXIgZD16aygpLGU9b2soKS5jb250YWluZXJbYV07ZSYmZS5zdGF0ZSE9PTN8fChvaygpLmNvbnRhaW5lclthXT17c3RhdGU6MSxjb250ZXh0OmIscGFyZW50OmR9LHBrKHtjdGlkOmEsaXNEZXN0aW5hdGlvbjohMX0sYykpfWZ1bmN0aW9uIElrKGEsYixjKXt2YXIgZD1vaygpLGU9bmsoYSk7ZT9lLnN0YXRlPTE6KGU9e2NvbnRleHQ6YixzdGF0ZToxLHBhcmVudDp6aygpfSxkLmRlc3RpbmF0aW9uQXJyYXlbYV09W2VdKTtwayh7Y3RpZDphLGlzRGVzdGluYXRpb246ITB9LGMpfQpmdW5jdGlvbiBKayhhLGIsYyxkKXt2YXIgZT1vaygpLGY9bmsoYSk7Zj9mLnN0YXRlPTA6KGY9e3N0YXRlOjAsdHJhbnNwb3J0VXJsOmIsY29udGV4dDpjLHBhcmVudDp6aygpfSxlLmRlc3RpbmF0aW9uQXJyYXlbYV09W2ZdKTtwayh7Y3RpZDphLGlzRGVzdGluYXRpb246ITB9LGQpO1AoOTEpfWZ1bmN0aW9uIEtrKCl7dmFyIGE9b2soKS5jb250YWluZXIsYjtmb3IoYiBpbiBhKWlmKGEuaGFzT3duUHJvcGVydHkoYikmJmFbYl0uc3RhdGU9PT0xKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIExrKCl7dmFyIGE9e307R2Iob2soKS5kZXN0aW5hdGlvbixmdW5jdGlvbihiLGMpeyhjPT1udWxsP3ZvaWQgMDpjLnN0YXRlKT09PTAmJihhW2JdPWMpfSk7R2Iob2soKS5kZXN0aW5hdGlvbkFycmF5LGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Y1swXTsoZD09bnVsbD92b2lkIDA6ZC5zdGF0ZSk9PT0wJiYoYVtiXT1kKX0pO3JldHVybiBhfQpmdW5jdGlvbiBNayhhKXtyZXR1cm4hIShhJiZhLnBhcmVudCYmYS5jb250ZXh0JiZhLmNvbnRleHQuc291cmNlPT09MSYmYS5wYXJlbnQuY3RpZC5pbmRleE9mKCJHVE0tIikhPT0wKX1mdW5jdGlvbiBOaygpe2Zvcih2YXIgYT1vaygpLGI9bSh3aygpKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlpZihhLmluamVjdGVkRmlyc3RQYXJ0eUNvbnRhaW5lcnNbYy52YWx1ZV0pcmV0dXJuITA7cmV0dXJuITF9O3ZhciBPaz1mdW5jdGlvbigpe307T2sucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCJ9O3ZhciBQaz1uZXcgT2s7dmFyIFhrPWZ1bmN0aW9uKCl7dGhpcy5zdG9yYWdlPVlhKCl9O1hrLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLnN0b3JhZ2Uuc2V0KFN0cmluZyhhKSxiKX07WGsucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5zdG9yYWdlLmdldChTdHJpbmcoYSkpfTt2YXIgWWs7ZnVuY3Rpb24gWmsoYSxiKXtZa3x8KFlrPW5ldyBYayk7WWsuc2V0KGEsYil9ZnVuY3Rpb24gJGsoYSl7WWt8fChZaz1uZXcgWGspO3JldHVybiBZay5nZXQoYSl9ZnVuY3Rpb24gYWwoYSxiKXtZa3x8KFlrPW5ldyBYayk7dmFyIGM9WWs7Yy5zdG9yYWdlLmhhcyhTdHJpbmcoYSkpfHxjLnN0b3JhZ2Uuc2V0KFN0cmluZyhhKSxiKCkpO3JldHVybiBjLnN0b3JhZ2UuZ2V0KFN0cmluZyhhKSl9O2Z1bmN0aW9uIGJsKGEsYil7ZnVuY3Rpb24gYyhnKXt2YXIgaD1SaihnKSxsPUxqKGgsInByb3RvY29sIiksbj1MaihoLCJob3N0IiwhMCkscD1MaihoLCJwb3J0IikscT1MaihoLCJwYXRoIikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cLyQvLCIiKTtpZihsPT09dm9pZCAwfHxsPT09Imh0dHAiJiZwPT09IjgwInx8bD09PSJodHRwcyImJnA9PT0iNDQzIilsPSJ3ZWIiLHA9ImRlZmF1bHQiO3JldHVybltsLG4scCxxXX1mb3IodmFyIGQ9YyhTdHJpbmcoYSkpLGU9YyhTdHJpbmcoYikpLGY9MDtmPGQubGVuZ3RoO2YrKylpZihkW2ZdIT09ZVtmXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBjbChhKXtyZXR1cm4gZGwoYSk/MTowfQpmdW5jdGlvbiBkbChhKXt2YXIgYj1hLmFyZzAsYz1hLmFyZzE7aWYoYS5hbnlfb2YmJkFycmF5LmlzQXJyYXkoYykpe2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1FZChhLHt9KTtFZCh7YXJnMTpjW2RdLGFueV9vZjp2b2lkIDB9LGUpO2lmKGNsKGUpKXJldHVybiEwfXJldHVybiExfXN3aXRjaChhWyJmdW5jdGlvbiJdKXtjYXNlICJfY24iOnJldHVybiBLZyhiLGMpO2Nhc2UgIl9jc3MiOnJldHVybiBHZyhiLGMpO2Nhc2UgIl9ldyI6cmV0dXJuIEhnKGIsYyk7Y2FzZSAiX2VxIjpyZXR1cm4gTGcoYixjKTtjYXNlICJfZ2UiOnJldHVybiBNZyhiLGMpO2Nhc2UgIl9ndCI6cmV0dXJuIE9nKGIsYyk7Y2FzZSAiX2xjIjpyZXR1cm4gSWcoYixjKTtjYXNlICJfbGUiOnJldHVybiBOZyhiLGMpO2Nhc2UgIl9sdCI6cmV0dXJuIFBnKGIsYyk7Y2FzZSAiX3JlIjpyZXR1cm4gSmcoYixjLGEuaWdub3JlX2Nhc2UsYWwoMyxmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSkpO2Nhc2UgIl9zdyI6cmV0dXJuIFFnKGIsCmMpO2Nhc2UgIl91bSI6cmV0dXJuIGJsKGIsYyl9cmV0dXJuITF9O2Z1bmN0aW9uIGVsKGEsYixjLGQsZSl7aWYoQXJyYXkuaXNBcnJheShhKSl7dmFyIGY7c3dpdGNoKGFbMF0pe2Nhc2UgImZ1bmN0aW9uX2lkIjpyZXR1cm4gYVsxXTtjYXNlICJsaXN0IjpmPVtdO2Zvcih2YXIgZz0xO2c8YS5sZW5ndGg7ZysrKWYucHVzaChlbChhW2ddLGIsYyxkLGUpKTtyZXR1cm4gZjtjYXNlICJtYWNybyI6dmFyIGg9ZFthWzFdXTtyZXR1cm4gaD9oLmV2YWx1YXRlKGIsZSk6dm9pZCAwO2Nhc2UgIm1hcCI6Zj17fTtmb3IodmFyIGw9MTtsPGEubGVuZ3RoO2wrPTIpZltlbChhW2xdLGIsYyxkLGUpXT1lbChhW2wrMV0sYixjLGQsZSk7cmV0dXJuIGY7Y2FzZSAidGVtcGxhdGUiOmY9W107Zm9yKHZhciBuPSExLHA9MTtwPGEubGVuZ3RoO3ArKyl7dmFyIHE9ZWwoYVtwXSxiLGMsZCxlKTtmLnB1c2gocSl9cmV0dXJuIGYuam9pbigiIik7Y2FzZSAiZXNjYXBlIjpmPWVsKGFbMV0sYixjLGQsZSk7Zj1TdHJpbmcoZik7Zm9yKHZhciB5PTI7eTxhLmxlbmd0aDt5KyspVWlbYVt5XV0mJihmPVVpW2FbeV1dKGYpKTtyZXR1cm4gZjtjYXNlICJ0YWciOnZhciB6PWFbMV07aWYoIWNbel0pdGhyb3cgRXJyb3IoIlVuYWJsZSB0byByZXNvbHZlIHRhZyByZWZlcmVuY2UgIisKeisiLiIpO3JldHVybntibzphWzJdLGluZGV4Onp9O2Nhc2UgInpiIjp2YXIgQz17fSxEPShDW0dmLlliXT1hWzFdLEMuYXJnMD1lbChhWzJdLGIsYyxkLGUpLEMuYXJnMT1lbChhWzNdLGIsYyxkLGUpLEMuaWdub3JlX2Nhc2U9ZWwoYVs1XSxiLGMsZCxlKSxDKSxJPWNsKEQpLEc9ISFhWzRdO3JldHVybiBHfHxJIT09Mj9HIT09KEk9PT0xKTpudWxsO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIkF0dGVtcHRpbmcgdG8gZXhwYW5kIHVua25vd24gVmFsdWUgdHlwZTogIithWzBdKyIuIik7fX1yZXR1cm4gYX07ZnVuY3Rpb24gZmwoYSl7cmV0dXJuIGEmJmEuaW5kZXhPZigicGVuZGluZzoiKT09PTA/Z2woYS5zdWJzdHIoOCkpOiExfWZ1bmN0aW9uIGdsKGEpe2lmKGE9PW51bGx8fGEubGVuZ3RoPT09MClyZXR1cm4hMTt2YXIgYj1OdW1iZXIoYSksYz1OYigpO3JldHVybiBiPGMrM0U1JiZiPmMtOUU1fTt2YXIgaGw9ITEsaWw9ITEsamw9ITEsa2w9MCxsbD0hMSxtbD12b2lkIDAsbmw9W107ZnVuY3Rpb24gb2woYSl7aWYoa2w9PT0wKWxsJiZubCYmKG5sLmxlbmd0aD49MTAwJiZubC5zaGlmdCgpLG5sLnB1c2goYSkpO2Vsc2UgaWYocGwoKSl7dmFyIGI9RSg0MSksYz1NYyhiLFtdKTtjLmxlbmd0aD49NTAmJmMuc2hpZnQoKTtjLnB1c2goYSl9fWZ1bmN0aW9uIHFsKCl7aWx8fChybCgpLHNsKGtsKSl9ZnVuY3Rpb24gc2woYSl7aWYoIWlsfHxrbD09PTImJmE9PT0xKWlmKGlsPSEwLGpsJiYoYWQoQiwiVEFQcm9kRGVidWdTaWduYWwiLHFsKSxqbD0hMSksbWwhPT12b2lkIDAmJihBLmNsZWFyVGltZW91dChtbCksbWw9dm9pZCAwKSxrbD1hLGE9PT0xKXt2YXIgYj1ubDtubD12b2lkIDA7Yj09bnVsbHx8Yi5mb3JFYWNoKGZ1bmN0aW9uKGMpe29sKGMpfSl9fQpmdW5jdGlvbiBybCgpe3ZhciBhPUIuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS10YWctYXNzaXN0YW50LXByb2QtcHJlc2VudCIpO2dsKGEpP2tsPTE6IWZsKGEpfHxobHx8amw/a2w9Mjooamw9ITAsJGMoQiwiVEFQcm9kRGVidWdTaWduYWwiLHFsLCExKSxtbD1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtpbHx8KHJsKCksc2woa2wpKTtobD0hMH0sMjAwKSl9ZnVuY3Rpb24gcGwoKXtpZighbGwpcmV0dXJuITE7c3dpdGNoKGtsKXtjYXNlIDE6Y2FzZSAwOnJldHVybiEwO2Nhc2UgMjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiExfX07ZnVuY3Rpb24gdGwoKXt2YXIgYT1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSk7cmV0dXJuIGEuaWNzPWEuaWNzfHxuZXcgdWx9dmFyIHVsPWZ1bmN0aW9uKCl7dGhpcy5lbnRyaWVzPXt9O3RoaXMud2FpdFBlcmlvZFRpbWVkT3V0PXRoaXMud2FzU2V0TGF0ZT10aGlzLmFjY2Vzc2VkQW55PXRoaXMuYWNjZXNzZWREZWZhdWx0PXRoaXMudXNlZEltcGxpY2l0PXRoaXMudXNlZFVwZGF0ZT10aGlzLnVzZWREZWZhdWx0PXRoaXMudXNlZERlY2xhcmU9dGhpcy5hY3RpdmU9ITE7dGhpcy5IPVtdfTsKdWwucHJvdG90eXBlLmRlZmF1bHQ9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dGhpcy51c2VkRGVmYXVsdHx8dGhpcy51c2VkRGVjbGFyZXx8IXRoaXMuYWNjZXNzZWREZWZhdWx0JiYhdGhpcy5hY2Nlc3NlZEFueXx8KHRoaXMud2FzU2V0TGF0ZT0hMCk7dGhpcy51c2VkRGVmYXVsdD10aGlzLmFjdGl2ZT0hMDtzYigiVEFHR0lORyIsMTkpO2I9PW51bGw/c2IoIlRBR0dJTkciLDE4KTp2bCh0aGlzLGEsYj09PSJncmFudGVkIixjLGQsZSxmLGcpfTt1bC5wcm90b3R5cGUud2FpdEZvclVwZGF0ZT1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA7ZDxhLmxlbmd0aDtkKyspdmwodGhpcyxhW2RdLHZvaWQgMCx2b2lkIDAsIiIsIiIsYixjKX07CnZhciB2bD1mdW5jdGlvbihhLGIsYyxkLGUsZixnLGgpe3ZhciBsPWEuZW50cmllcyxuPWxbYl18fHt9LHA9bi5yZWdpb24scT1kJiZ6YihkKT9kLnRvVXBwZXJDYXNlKCk6dm9pZCAwO2U9ZS50b1VwcGVyQ2FzZSgpO2Y9Zi50b1VwcGVyQ2FzZSgpO2lmKGU9PT0iInx8cT09PWZ8fChxPT09ZT9wIT09ZjohcSYmIXApKXt2YXIgcj0hIShnJiZnPjAmJm4udXBkYXRlPT09dm9pZCAwKSx0PXtyZWdpb246cSxkZWNsYXJlX3JlZ2lvbjpuLmRlY2xhcmVfcmVnaW9uLGltcGxpY2l0Om4uaW1wbGljaXQsZGVmYXVsdDpjIT09dm9pZCAwP2M6bi5kZWZhdWx0LGRlY2xhcmU6bi5kZWNsYXJlLHVwZGF0ZTpuLnVwZGF0ZSxxdWlldDpyfTtpZihlIT09IiJ8fG4uZGVmYXVsdCE9PSExKWxbYl09dDtyJiZBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsW2JdPT09dCYmdC5xdWlldCYmKHNiKCJUQUdHSU5HIiwyKSxhLndhaXRQZXJpb2RUaW1lZE91dD0hMCxhLmNsZWFyVGltZW91dChiLHZvaWQgMCxoKSwKYS5ub3RpZnlMaXN0ZW5lcnMoKSl9LGcpfX07az11bC5wcm90b3R5cGU7ay5jbGVhclRpbWVvdXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVthXSxlPWMuZGVsZWdhdGVkQ29uc2VudFR5cGVzLGY7Zm9yKGYgaW4gZSllLmhhc093blByb3BlcnR5KGYpJiZlW2ZdPT09YSYmZC5wdXNoKGYpO3ZhciBnPXRoaXMuZW50cmllc1thXXx8e30saD10aGlzLmdldENvbnNlbnRTdGF0ZShhLGMpO2lmKGcucXVpZXQpe2cucXVpZXQ9ITE7Zm9yKHZhciBsPW0oZCksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpd2wodGhpcyxuLnZhbHVlKX1lbHNlIGlmKGIhPT12b2lkIDAmJmghPT1iKWZvcih2YXIgcD1tKGQpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKXdsKHRoaXMscS52YWx1ZSl9OwprLnVwZGF0ZT1mdW5jdGlvbihhLGIsYyl7dGhpcy51c2VkRGVmYXVsdHx8dGhpcy51c2VkRGVjbGFyZXx8dGhpcy51c2VkVXBkYXRlfHwhdGhpcy5hY2Nlc3NlZEFueXx8KHRoaXMud2FzU2V0TGF0ZT0hMCk7dGhpcy51c2VkVXBkYXRlPXRoaXMuYWN0aXZlPSEwO2lmKGIhPW51bGwpe3ZhciBkPXRoaXMuZ2V0Q29uc2VudFN0YXRlKGEsYyksZT10aGlzLmVudHJpZXM7KGVbYV09ZVthXXx8e30pLnVwZGF0ZT1iPT09ImdyYW50ZWQiO3RoaXMuY2xlYXJUaW1lb3V0KGEsZCxjKX19OwprLmRlY2xhcmU9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLnVzZWREZWNsYXJlPXRoaXMuYWN0aXZlPSEwO3ZhciBmPXRoaXMuZW50cmllcyxnPWZbYV18fHt9LGg9Zy5kZWNsYXJlX3JlZ2lvbixsPWMmJnpiKGMpP2MudG9VcHBlckNhc2UoKTp2b2lkIDA7ZD1kLnRvVXBwZXJDYXNlKCk7ZT1lLnRvVXBwZXJDYXNlKCk7aWYoZD09PSIifHxsPT09ZXx8KGw9PT1kP2ghPT1lOiFsJiYhaCkpe3ZhciBuPXtyZWdpb246Zy5yZWdpb24sZGVjbGFyZV9yZWdpb246bCxkZWNsYXJlOmI9PT0iZ3JhbnRlZCIsaW1wbGljaXQ6Zy5pbXBsaWNpdCxkZWZhdWx0OmcuZGVmYXVsdCx1cGRhdGU6Zy51cGRhdGUscXVpZXQ6Zy5xdWlldH07aWYoZCE9PSIifHxnLmRlY2xhcmUhPT0hMSlmW2FdPW59fTsKay5pbXBsaWNpdD1mdW5jdGlvbihhLGIpe3RoaXMudXNlZEltcGxpY2l0PSEwO3ZhciBjPXRoaXMuZW50cmllcyxkPWNbYV09Y1thXXx8e307ZC5pbXBsaWNpdCE9PSExJiYoZC5pbXBsaWNpdD1iPT09ImdyYW50ZWQiKX07CmsuZ2V0Q29uc2VudFN0YXRlPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5lbnRyaWVzLGQ9Y1thXXx8e30sZT1kLnVwZGF0ZTtpZihlIT09dm9pZCAwKXJldHVybiBlPzE6MjtpZihiLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cyl7dmFyIGY9Yi5jb250YWluZXJTY29wZWREZWZhdWx0c1thXTtpZihmPT09MylyZXR1cm4gMTtpZihmPT09MilyZXR1cm4gMn1lbHNlIGlmKGU9ZC5kZWZhdWx0LGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2lmKGI9PW51bGw/MDpiLmRlbGVnYXRlZENvbnNlbnRUeXBlcy5oYXNPd25Qcm9wZXJ0eShhKSl7dmFyIGc9Yi5kZWxlZ2F0ZWRDb25zZW50VHlwZXNbYV0saD1jW2ddfHx7fTtlPWgudXBkYXRlO2lmKGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2lmKGIudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzKXt2YXIgbD1iLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2ddO2lmKGw9PT0zKXJldHVybiAxO2lmKGw9PT0yKXJldHVybiAyfWVsc2UgaWYoZT0KaC5kZWZhdWx0LGUhPT12b2lkIDApcmV0dXJuIGU/MToyfWU9ZC5kZWNsYXJlO2lmKGUhPT12b2lkIDApcmV0dXJuIGU/MToyO2U9ZC5pbXBsaWNpdDtyZXR1cm4gZSE9PXZvaWQgMD9lPzM6NDowfTtrLmFkZExpc3RlbmVyPWZ1bmN0aW9uKGEsYil7dGhpcy5ILnB1c2goe2NvbnNlbnRUeXBlczphLGllOmJ9KX07dmFyIHdsPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7YzxhLkgubGVuZ3RoOysrYyl7dmFyIGQ9YS5IW2NdO0FycmF5LmlzQXJyYXkoZC5jb25zZW50VHlwZXMpJiZkLmNvbnNlbnRUeXBlcy5pbmRleE9mKGIpIT09LTEmJihkLnhvPSEwKX19O3VsLnByb3RvdHlwZS5ub3RpZnlMaXN0ZW5lcnM9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPHRoaXMuSC5sZW5ndGg7KytjKXt2YXIgZD10aGlzLkhbY107aWYoZC54byl7ZC54bz0hMTt0cnl7ZC5pZSh7Y29uc2VudEV2ZW50SWQ6YSxjb25zZW50UHJpb3JpdHlJZDpifSl9Y2F0Y2goZSl7fX19fTt2YXIgeGw9ITEseWw9ITEsemw9e30sQWw9e2RlbGVnYXRlZENvbnNlbnRUeXBlczp7fSxjb3JlUGxhdGZvcm1TZXJ2aWNlczp7fSx1c2VkQ29yZVBsYXRmb3JtU2VydmljZXM6ITEsc2VsZWN0ZWRBbGxDb3JlUGxhdGZvcm1TZXJ2aWNlczohMSxjb250YWluZXJTY29wZWREZWZhdWx0czooemwuYWRfc3RvcmFnZT0xLHpsLmFuYWx5dGljc19zdG9yYWdlPTEsemwuYWRfdXNlcl9kYXRhPTEsemwuYWRfcGVyc29uYWxpemF0aW9uPTEsemwpLHVzZWRDb250YWluZXJTY29wZWREZWZhdWx0czohMX07ZnVuY3Rpb24gQmwoYSl7dmFyIGI9dGwoKTtiLmFjY2Vzc2VkQW55PSEwO3JldHVybih6YihhKT9bYV06YSkuZXZlcnkoZnVuY3Rpb24oYyl7c3dpdGNoKGIuZ2V0Q29uc2VudFN0YXRlKGMsQWwpKXtjYXNlIDE6Y2FzZSAzOnJldHVybiEwO2Nhc2UgMjpjYXNlIDQ6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19KX0KZnVuY3Rpb24gQ2woYSl7dmFyIGI9dGwoKTtiLmFjY2Vzc2VkQW55PSEwO3JldHVybiBiLmdldENvbnNlbnRTdGF0ZShhLEFsKX1mdW5jdGlvbiBEbChhKXt2YXIgYj10bCgpO2IuYWNjZXNzZWRBbnk9ITA7cmV0dXJuIShiLmVudHJpZXNbYV18fHt9KS5xdWlldH1mdW5jdGlvbiBFbCgpe2lmKCFZZig1KSlyZXR1cm4hMTt2YXIgYT10bCgpO2EuYWNjZXNzZWRBbnk9ITA7aWYoYS5hY3RpdmUpcmV0dXJuITA7aWYoIUFsLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cylyZXR1cm4hMTtmb3IodmFyIGI9bShPYmplY3Qua2V5cyhBbC5jb250YWluZXJTY29wZWREZWZhdWx0cykpLGM9Yi5uZXh0KCk7IWMuZG9uZTtjPWIubmV4dCgpKWlmKEFsLmNvbnRhaW5lclNjb3BlZERlZmF1bHRzW2MudmFsdWVdIT09MSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBGbChhLGIpe3RsKCkuYWRkTGlzdGVuZXIoYSxiKX0KZnVuY3Rpb24gR2woYSxiKXt0bCgpLm5vdGlmeUxpc3RlbmVycyhhLGIpfWZ1bmN0aW9uIEhsKGEsYil7aWYoYi5ldmVyeShEbCkpYSh7fSk7ZWxzZXt2YXIgYz0hMTtGbChiLGZ1bmN0aW9uKGQpeyFjJiZiLmV2ZXJ5KERsKSYmKGM9ITAsYShkKSl9KX19CmZ1bmN0aW9uIElsKGEsYil7dmFyIGM9emIoYik/W2JdOmIsZD17fSxlPWZ1bmN0aW9uKCl7cmV0dXJuIGMuZmlsdGVyKGZ1bmN0aW9uKGgpe3JldHVybiBCbChoKSYmIWRbaF19KX0sZj1lKCk7aWYoZi5sZW5ndGghPT1jLmxlbmd0aCl7dmFyIGc9ZnVuY3Rpb24oaCl7Zm9yKHZhciBsPW0oaCksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpZFtuLnZhbHVlXT0hMH07ZyhmKTtGbChjLGZ1bmN0aW9uKGgpe2Z1bmN0aW9uIGwocSl7cS5sZW5ndGghPT0wJiYoZyhxKSxoLmNvbnNlbnRUeXBlcz1xLGEoaCkpfXZhciBuPWUoKTtpZihuLmxlbmd0aCE9PTApe3ZhciBwPU9iamVjdC5rZXlzKGQpLmxlbmd0aDtuLmxlbmd0aCtwPj1jLmxlbmd0aD9sKG4pOkEuc2V0VGltZW91dChmdW5jdGlvbigpe2woZSgpKX0sNTAwKX19KX19O3ZhciBKbD0hMTtmdW5jdGlvbiBLbChhLGIpe3ZhciBjPXdrKCksZD10aygpO0UoMjYpO3ZhciBlPUlmKDQ3KT8wOklmKDUwKT8xOjMsZj1YaigpO2lmKHBsKCkpe3ZhciBnPUxsKCJJTklUIik7Zy5jb250YWluZXJMb2FkU291cmNlPWEhPW51bGw/YTowO2ImJihnLnBhcmVudFRhcmdldFJlZmVyZW5jZT1iKTtnLmFsaWFzZXM9YztnLmRlc3RpbmF0aW9ucz1kO2UhPT12b2lkIDAmJihnLmd0Zz17c291cmNlOmUsbVBhdGg6ZiE9bnVsbD9mOiIifSk7b2woZyl9fQpmdW5jdGlvbiBNbChhKXt2YXIgYixjLGQsZTtiPWEudGFyZ2V0SWQ7Yz1hLnJlcXVlc3Q7ZD1hLnFiO2U9YS5pc0JhdGNoZWQ7dmFyIGY7aWYoZj1wbCgpKXt2YXIgZzthOnN3aXRjaChjLmVuZHBvaW50KXtjYXNlIDY4OmNhc2UgNjk6Y2FzZSAxOTpjYXNlIDYyOmNhc2UgNDc6Zz0hMDticmVhayBhO2RlZmF1bHQ6Zz0hMX1mPSFnfWlmKGYpe3ZhciBoPUxsKCJHVEFHX0hJVCIse2V2ZW50SWQ6ZC5ldmVudElkLHByaW9yaXR5SWQ6ZC5wcmlvcml0eUlkfSk7aC50YXJnZXQ9YjtoLnVybD1jLnVybDtjLnBvc3RCb2R5JiYoaC5wb3N0Qm9keT1jLnBvc3RCb2R5KTtoLnBhcmFtZXRlckVuY29kaW5nPWMucGFyYW1ldGVyRW5jb2Rpbmc7aC5lbmRwb2ludD1jLmVuZHBvaW50O2UhPT12b2lkIDAmJihoLmlzQmF0Y2hlZD1lKTtvbChoKX19ZnVuY3Rpb24gTmwoYSl7cGwoKSYmTWwoYSgpKX0KZnVuY3Rpb24gTGwoYSxiKXtiPWI9PT12b2lkIDA/e306YjtiLmdyb3VwSWQ9T2w7dmFyIGMsZD1iLGU9UGwsZj17cHVibGljSWQ6UWx9O2QuZXZlbnRJZCE9bnVsbCYmKGYuZXZlbnRJZD1kLmV2ZW50SWQpO2QucHJpb3JpdHlJZCE9bnVsbCYmKGYucHJpb3JpdHlJZD1kLnByaW9yaXR5SWQpO2QuZXZlbnROYW1lJiYoZi5ldmVudE5hbWU9ZC5ldmVudE5hbWUpO2QuZ3JvdXBJZCYmKGYuZ3JvdXBJZD1kLmdyb3VwSWQpO2QudGFnTmFtZSYmKGYudGFnTmFtZT1kLnRhZ05hbWUpO2M9e2NvbnRhaW5lclByb2R1Y3Q6IkdUTSIsa2V5OmYsdmVyc2lvbjplLG1lc3NhZ2VUeXBlOmF9O2MuY29udGFpbmVyUHJvZHVjdD1KbD8iT0dUIjoiR1RNIjtjLmtleS50YXJnZXRSZWY9Umw7cmV0dXJuIGN9dmFyIFFsPSIiLFBsPSIiLFJsPXtjdGlkOiIiLGlzRGVzdGluYXRpb246ITF9LE9sOwpmdW5jdGlvbiBTbChhKXt2YXIgYj1FKDUpLGM9SWYoNDUpLGQ9c2soKSxlPUUoNiksZj1FKDEpO0UoMjMpO2tsPTA7bGw9ITA7cmwoKTtPbD1hO1FsPWI7UGw9ZjtKbD1jO1JsPXtjdGlkOmIsaXNEZXN0aW5hdGlvbjpkLGNhbm9uaWNhbElkOmV9fTtmdW5jdGlvbiBUbChhLGIsYyxkKXtpZihwbCgpKXt2YXIgZT1iLk07TWwoe3RhcmdldElkOmR8fFtiLnRhcmdldC5kZXN0aW5hdGlvbklkXSxyZXF1ZXN0Ont1cmw6YSxwYXJhbWV0ZXJFbmNvZGluZzoyLGVuZHBvaW50OmN9LHFiOntldmVudElkOmUuZXZlbnRJZCxwcmlvcml0eUlkOmUucHJpb3JpdHlJZH0sRmo6e2V2ZW50SWQ6UShiLEguSi51ZikscHJpb3JpdHlJZDpRKGIsSC5KLnZmKX19KX19O2Z1bmN0aW9uIFVsKGEsYixjKXt2YXIgZD0iaHR0cHM6Ly8iK2ErYjtyZXR1cm4gYz9mdW5jdGlvbigpe3JldHVybiBXaigpP1hqKCkrYytiOmR9OmZ1bmN0aW9uKCl7cmV0dXJuIGR9fTt2YXIgVmw9e30sV2w9KFZsWzIyXT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL2NjbS9jb252ZXJzaW9uIiwiL2FzL2QiKSxWbFs2MF09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL2NjbS9jb252ZXJzaW9uIiwiL2dzIiksVmxbMjNdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9jY20vY29udmVyc2lvbiIsIi9nL2QiKSxWbCk7dmFyIFhsPXt9LFlsPShYbFs1XT1VbCgid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiksWGxbNl09VWwoInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL3BhZ2VhZC9jb252ZXJzaW9uIiwiL2dzIiksWGxbOF09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC8xcC1jb252ZXJzaW9uIiksWGxbNjZdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9wYWdlYWQvdWNvbnZlcnNpb24iKSxYbFs2M109VWwoInd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSIsIi9wYWdlYWQvY29udmVyc2lvbiIpLFhsWzY0XT1VbCgicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iLCIvcGFnZWFkL2NvbnZlcnNpb24iLCIvZ3MiKSxYbFs2NV09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC8xcC1jb252ZXJzaW9uIiksWGxbNzRdPWZ1bmN0aW9uKCl7cmV0dXJuIFhqKCkrIi9hcy9wL2MifSxYbCk7dmFyIFpsPXt9LCRsPShabFs0NV09VWwoInd3dy5nb29nbGUuY29tIiwiL2NjbS9jb2xsZWN0IiksWmxbNDZdPVVsKCJwYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIsIi9jY20vY29sbGVjdCIsIi9ncyIpLFpsWzY5XT1VbCgiYWQuZG91YmxlY2xpY2submV0IiwiL2NjbS9zL2NvbGxlY3QiKSxabFs1OF09VWwoInd3dy5nb29nbGUuY29tIiwiL3BhZ2VhZC9zZXRfcGFydGl0aW9uZWRfY29va2llIiksWmxbNTddPVVsKCJ3d3cuZ29vZ2xlYWRzZXJ2aWNlcy5jb20iLCIvcGFnZWFkL3NldF9wYXJ0aXRpb25lZF9jb29raWUiKSxabCk7dmFyIGFtPXt9LGJtPShhbVs5XT1VbCgiZ29vZ2xlYWRzLmcuZG91YmxlY2xpY2submV0IiwiL3BhZ2VhZC92aWV3dGhyb3VnaGNvbnZlcnNpb24iKSxhbVs2OF09VWwoInd3dy5nb29nbGUuY29tIiwiL3Jta3QvY29sbGVjdCIpLGFtKTt2YXIgY209e30sZG09KGNtWzExXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvcGFnZWFkL2Zvcm0tZGF0YSIsIi9kIiksY21bMjFdPVVsKCJ3d3cuZ29vZ2xlLmNvbSIsIi9jY20vZm9ybS1kYXRhIiwiL2QiKSxjbVs3Ml09VWwoImdvb2dsZS5jb20iLCIvcGFnZWFkL2Zvcm0tZGF0YSIsIi9kIiksY21bNzNdPVVsKCJnb29nbGUuY29tIiwiL2NjbS9mb3JtLWRhdGEiLCIvZCIpLGNtKTt2YXIgZW09e30sZm09KGVtWzUxXT1VbCgid3d3Lmdvb2dsZS5jb20iLCIvdHJhdmVsL2ZsaWdodHMvY2xpY2svY29udmVyc2lvbiIpLGVtKTt2YXIgZ209e30saG09KGdtWzFdPWZ1bmN0aW9uKCl7cmV0dXJuImh0dHBzOi8vYWQuZG91YmxlY2xpY2submV0L2FjdGl2aXR5OyJ9LGdtWzJdPWZ1bmN0aW9uKCl7cmV0dXJuKFdqKCk/WGooKToiaHR0cHM6Ly9hZGUuZ29vZ2xlc3luZGljYXRpb24uY29tIikrIi9kZG0vYWN0aXZpdHkiKyhNKDQ2Nyk/IjsiOiIvIil9LGdtWzNdPWZ1bmN0aW9uKGEpe3JldHVybiJodHRwczovLyIrYS5scisiLmZscy5kb3VibGVjbGljay5uZXQvYWN0aXZpdHlpOyJ9LGdtKTtmdW5jdGlvbiBpbShhKXtzYigiSEVBTFRIIixhKX07dmFyIGptPXtiYTp7UHQ6ImF3X3VzZXJfZGF0YV9jYWNoZSIsb2k6ImNvb2tpZV9kZXByZWNhdGlvbl9sYWJlbCIsYmg6ImRpYWdub3N0aWNzX3BhZ2VfaWQiLG9wOiJlbWVtbyIsZHU6ImVtX3JlZ2lzdHJ5IixTaToiZWFiIixydToiZmxfdXNlcl9kYXRhX2NhY2hlIix0dToiZ2E0X3VzZXJfZGF0YV9jYWNoZSIsTHU6ImlkY19wdl9jbGFpbSIsU2U6ImlwX2dlb19kYXRhX2NhY2hlIixYaToiaXBfZ2VvX2ZldGNoX2luX3Byb2dyZXNzIixqbjoibmJfZGF0YSIsVHE6InBhZ2VfZXhwZXJpbWVudF9pZHMiLGxuOiJwbGQiLFZlOiJwdF9kYXRhIixtbjoicHRfbGlzdGVuZXJfc2V0IixrajoicmV0cnlfY29udGFpbmVycyIsT2g6InNlcnZpY2Vfd29ya2VyX2VuZHBvaW50IixacToic2hhcmVkX3VzZXJfaWQiLGFyOiJzaGFyZWRfdXNlcl9pZF9yZXF1ZXN0ZWQiLHNqOiJzaGFyZWRfdXNlcl9pZF9zb3VyY2UiLGJ2OiJhd2giLGhyOiJ1bml2ZXJzYWxfY2xhaW1fcmVnaXN0cnkifX07dmFyIGttPWZ1bmN0aW9uKGEpe3JldHVybiB0ZihmdW5jdGlvbihiKXtmb3IodmFyIGMgaW4gYSlpZihiPT09YVtjXSYmIS9eWzAtOV0rJC8udGVzdChjKSlyZXR1cm4hMDtyZXR1cm4hMX0pfShqbS5iYSk7CmZ1bmN0aW9uIGxtKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7aWYoa20oYSkpe3ZhciBjLGQsZT0oZD0oYz1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSkpLnhjZCkhPW51bGw/ZDpjLnhjZD17fTtpZihlW2FdKXJldHVybiBlW2FdO2lmKGIpe3ZhciBmPXZvaWQgMCxnPTEsaD17fSxsPXtzZXQ6ZnVuY3Rpb24obil7Zj1uO2wubm90aWZ5KCl9LGdldDpmdW5jdGlvbigpe3JldHVybiBmfSxzdWJzY3JpYmU6ZnVuY3Rpb24obil7aFtTdHJpbmcoZyldPW47cmV0dXJuIGcrK30sdW5zdWJzY3JpYmU6ZnVuY3Rpb24obil7dmFyIHA9U3RyaW5nKG4pO3JldHVybiBoLmhhc093blByb3BlcnR5KHApPyhkZWxldGUgaFtwXSwhMCk6ITF9LG5vdGlmeTpmdW5jdGlvbigpe2Zvcih2YXIgbj1tKE9iamVjdC5rZXlzKGgpKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9cC52YWx1ZTt0cnl7aFtxXShhLGYpfWNhdGNoKHIpe319fX07cmV0dXJuIGVbYV09bH19fQpmdW5jdGlvbiBtbShhLGIpe3ZhciBjPWxtKGEsITApO2MmJmMuc2V0KGIpfWZ1bmN0aW9uIG5tKGEpe3ZhciBiO3JldHVybihiPWxtKGEpKT09bnVsbD92b2lkIDA6Yi5nZXQoKX1mdW5jdGlvbiBvbShhLGIpe3ZhciBjPWxtKGEpO2lmKCFjKXtjPWxtKGEsITApO2lmKCFjKXJldHVybjtjLnNldChiKX1yZXR1cm4gYy5nZXQoKX1mdW5jdGlvbiBwbShhLGIpe2lmKHR5cGVvZiBiPT09ImZ1bmN0aW9uIil7dmFyIGM7cmV0dXJuKGM9bG0oYSwhMCkpPT1udWxsP3ZvaWQgMDpjLnN1YnNjcmliZShiKX19ZnVuY3Rpb24gcW0oYSxiKXt2YXIgYz1sbShhKTtyZXR1cm4gYz9jLnVuc3Vic2NyaWJlKGIpOiExfTt2YXIgc209ZnVuY3Rpb24oKXt0aGlzLkg9e307dGhpcy5LPSExfTtzbS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3RoaXMuS3x8KHRoaXMuSD10bSgpLHRoaXMuSFsiMCJdJiZvbShqbS5iYS5TZSxKU09OLnN0cmluZ2lmeSh0aGlzLkgpKSl9Owp2YXIgeG09ZnVuY3Rpb24oKXt2YXIgYT11bSxiPXZtLGM9dm9pZCAwLGQ9ZnVuY3Rpb24oKXtjIT09dm9pZCAwJiZxbShqbS5iYS5TZSxjKTt0cnl7dmFyIGY9bm0oam0uYmEuU2UpO2IuSD1KU09OLnBhcnNlKGYpfWNhdGNoKGcpe1AoMTIzKSxpbSgyKSxiLkg9e319Yi5LPSEwO2EoKX0sZT1ubShqbS5iYS5TZSk7ZT9kKGUpOihjPXBtKGptLmJhLlNlLGQpLHdtKCkpfSx3bT1mdW5jdGlvbigpe2lmKCFubShqbS5iYS5YaSkpe21tKGptLmJhLlhpLCEwKTt2YXIgYT1mdW5jdGlvbihiKXttbShqbS5iYS5TZSxifHwie30iKTttbShqbS5iYS5YaSwhMSl9O3RyeXtBLmZldGNoKCJodHRwczovL3d3dy5nb29nbGUuY29tL2NjbS9nZW8iLHttZXRob2Q6IkdFVCIsY2FjaGU6Im5vLXN0b3JlIixtb2RlOiJjb3JzIixjcmVkZW50aWFsczoib21pdCJ9KS50aGVuKGZ1bmN0aW9uKGIpe2Iub2s/Yi50ZXh0KCkudGhlbihmdW5jdGlvbihjKXthKGMpfSxmdW5jdGlvbigpe2EoKX0pOmEoKX0sZnVuY3Rpb24oKXthKCl9KX1jYXRjaChiKXthKCl9fX0sCnRtPWZ1bmN0aW9uKCl7dmFyIGE9RSgyMik7dHJ5e3JldHVybiBKU09OLnBhcnNlKHFiKGEpKX1jYXRjaChiKXtyZXR1cm4gUCgxMjMpLGltKDIpLHt9fX0seW09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiMCJdfHwiIn0sem09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiMSJdfHwiIn0sQW09ZnVuY3Rpb24oKXt2YXIgYT12bSxiPSExO2I9ISFhLkhbIjIiXTtyZXR1cm4gYn0sQm09ZnVuY3Rpb24oKXtyZXR1cm4gdm0uSFsiNiJdIT09ITF9LENtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0hMTtiPSEhYS5IWyI5Il07cmV0dXJuIGJ9LERtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0iIjtiPWEuSFsiNCJdfHwiIjsKcmV0dXJuIGJ9LEVtPWZ1bmN0aW9uKCl7dmFyIGE9dm0sYj0iIjtiPWEuSFsiMyJdfHwiIjtyZXR1cm4gYn0sdm09bmV3IHNtO2Z1bmN0aW9uIEZtKGEpe2E9YT09PXZvaWQgMD8iZy9jb2xsZWN0IjphO3JldHVybiJodHRwczovLyIrKERtKCl8fCJ3d3ciKSsiLmdvb2dsZS1hbmFseXRpY3MuY29tLyIrYX1mdW5jdGlvbiBHbShhKXthPWE9PT12b2lkIDA/ImcvY29sbGVjdCI6YTt2YXIgYj1EbSgpO3JldHVybiJodHRwczovLyIrKGI/YisiLiI6IiIpKyJhbmFseXRpY3MuZ29vZ2xlLmNvbS8iK2F9dmFyIEhtPXt9LEltPShIbVsxN109ZnVuY3Rpb24oKXtyZXR1cm4gV2ooKSYmIURtKCk/WGooKSsiL2FnL2cvYyI6R20oKX0sSG1bMTZdPWZ1bmN0aW9uKCl7cmV0dXJuIFdqKCkmJiFEbSgpP1hqKCkrIi9nYS9nL2MiOkZtKCl9LEhtWzY3XT1mdW5jdGlvbigpe3ZhciBhO2E9YT09PXZvaWQgMD8iZy9jb2xsZWN0IjphO3JldHVybiBEbSgpPyIiOiJodHRwczovL3d3dy5nb29nbGUuY29tLyIrYX0sSG0pO2Z1bmN0aW9uIEptKGEsYixjKXt2YXIgZD1VbChiLCIvbWVhc3VyZW1lbnQvY29udmVyc2lvbiIsYyk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIERtKCk/YSgibWVhc3VyZW1lbnQvY29udmVyc2lvbiIpOmQoKX19dmFyIEttPXt9LExtPShLbVs1NV09Sm0oRm0sInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIiwiL2dzIiksS21bNTRdPUptKEdtLCJ3d3cuZ29vZ2xlLmNvbSIsIi9nIiksS20pO3ZhciBNbT1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LFdsLFlsLCRsLGJtLGRtLGZtLGhtLExtLEltKTtmdW5jdGlvbiBObShhLGIpe3ZhciBjPU9iamVjdC5rZXlzKGIpLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gYltkXSE9bnVsbH0pLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZCsiPSIrYltkXX0pLmpvaW4oIiYiKTtyZXR1cm4gTW1bYV0odm9pZCAwKSsiPyIrY307dmFyIE9tPXt9LFBtPShPbS50ZHA9MSxPbS5leHA9MSxPbS5ndG09MSxPbS5waWQ9MSxPbS5kbD0xLE9tLnNlcT0xLE9tLnQ9MSxPbS52PTEsT20pLFJtPWZ1bmN0aW9uKCl7dmFyIGE9UW07cmV0dXJuIE9iamVjdC5rZXlzKGEuSCkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBhLkhbYl19KX0sU209ZnVuY3Rpb24oYSxiLGMpe2lmKGEuSFtiXT09PXZvaWQgMHx8KGM9PT12b2lkIDA/MDpjKSlhLkhbYl09ITB9LFRtPWZ1bmN0aW9uKGEpe2EuZm9yRWFjaChmdW5jdGlvbihiKXtQbVtiXXx8KFFtLkhbYl09ITEpfSl9LFFtPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fTt0aGlzLks9e319O2Z1bmN0aW9uIFVtKGEsYixjKXt2YXIgZD1jPT09dm9pZCAwPyEwOmMsZT1RbTtlLktbYV09YjsoZD09PXZvaWQgMHx8ZCkmJlNtKGUsYSl9ZnVuY3Rpb24gVm0oYSxiKXtTbShRbSxhLGI9PT12b2lkIDA/ITE6Yil9O2Z1bmN0aW9uIFdtKGEpe3ZhciBiPTA7YS5HYy5mb3JFYWNoKGZ1bmN0aW9uKGMpe2J8PTE8PGN9KTtyZXR1cm4gYn1mdW5jdGlvbiBYbSgpe3JldHVybnt0b3RhbDowLGpiOjAsR2M6bmV3IFNldCxsZjp7fX19ZnVuY3Rpb24gWW0oYSxiLGMsZCl7dmFyIGU9T2JqZWN0LmtleXMoYS5uZikuc29ydChmdW5jdGlvbihmLGcpe3JldHVybiBOdW1iZXIoZiktTnVtYmVyKGcpfSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybltmLGIoYS5uZltmXSldfSkuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmWzFdIT09dm9pZCAwfSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBmLmpvaW4oYyl9KS5qb2luKGQpO3JldHVybiBlP2U6dm9pZCAwfQpmdW5jdGlvbiBabShhLGIpe3ZhciBjLGQsZTtjPWM9PT12b2lkIDA/Il8iOmM7ZD1kPT09dm9pZCAwPyI7IjpkO2U9ZT09PXZvaWQgMD8ifiI6ZTtmb3IodmFyIGY9W10sZz1tKE9iamVjdC5rZXlzKGEubGYpLnNvcnQoKSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWUsbj1ZbShhLmxmW2xdLGIsYyxkKTtpZihuKXt2YXIgcD12b2lkIDA7Zi5wdXNoKCIiKygocD1sKSE9bnVsbD9wOiIiKStkK24pfX1yZXR1cm4gZi5sZW5ndGg/Zi5qb2luKGUpOnZvaWQgMH0KZnVuY3Rpb24gJG0oYSl7YS5qYj0wO2EuR2MuY2xlYXIoKTtmb3IodmFyIGI9bShPYmplY3Qua2V5cyhhLmxmKSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWEubGZbYy52YWx1ZV07ZC5qYj0wO2QuR2MuY2xlYXIoKTtmb3IodmFyIGU9bShPYmplY3Qua2V5cyhkLm5mKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWQubmZbZi52YWx1ZV07Zy5qYj0wO2cuR2MuY2xlYXIoKX19fQpmdW5jdGlvbiBhbihhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD8xOmQ7YS50b3RhbCs9ZDthLmpiKz1kO3ZhciBmLGc9Yj09PXZvaWQgMD8iIjpiO2Y9YS5sZltnXXx8KGEubGZbZ109e3RvdGFsOjAsamI6MCxHYzpuZXcgU2V0LG5mOnt9fSk7Zi50b3RhbCs9ZDtmLmpiKz1kO3ZhciBoLGw9U3RyaW5nKGMpO2g9Zi5uZltsXXx8KGYubmZbbF09e3RvdGFsOjAsamI6MCxHYzpuZXcgU2V0fSk7aC50b3RhbCs9ZDtoLmpiKz1kO2UhPT12b2lkIDAmJihhLkdjLmFkZChlKSxmLkdjLmFkZChlKSxoLkdjLmFkZChlKSl9O3ZhciBibj1mdW5jdGlvbigpe3RoaXMuSD1YbSgpfTtibi5wcm90b3R5cGUuaW5jcmVtZW50PWZ1bmN0aW9uKGEsYil7YW4odGhpcy5ILGEsYil9O3ZhciBjbj1uZXcgYm47ZnVuY3Rpb24gZG4oYSl7dmFyIGI9U3RyaW5nKGFbR2YuWWJdfHwiIikucmVwbGFjZSgvXy9nLCIiKTtyZXR1cm4gU2IoYiwiY3Z0Iik/ImN2dCI6Yn12YXIgZW49QS5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZigiP2d0bV9sYXRlbmN5PSIpPj0wfHxBLmxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCImZ3RtX2xhdGVuY3k9Iik+PTA7dmFyIGduPWZ1bmN0aW9uKCl7dmFyIGE9Zm47cmV0dXJuIE0oNjAzKSYmSWYoNjUsITEpJiYhYS5afSxmbj1uZXcgZnVuY3Rpb24oYSl7dGhpcy5SPWEoKTt2YXIgYj1KZigyNyk7dGhpcy5OPWVufHx0aGlzLlI8Yjt2YXIgYz1KZig0Mik7dGhpcy5aPWVufHx0aGlzLlI+PTEtYzt2YXIgZD1NKDYwMykmJklmKDY1LCExKTt0aGlzLks9dGhpcy5afHxkO3ZhciBlPUpmKDI3KSxmPUpmKDYzKTt0aGlzLkg9ZW58fGY9PT0xfHx0aGlzLlI+PWUmJnRoaXMuUjxlK2Z9KGZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgucmFuZG9tKCl9KTt2YXIgaG49ZnVuY3Rpb24oKXt0aGlzLkg9e319O2huLnByb3RvdHlwZS5yZWdpc3Rlcj1mdW5jdGlvbihhLGIsYyl7aWYoZm4uSyl7dmFyIGQ9am4oYixjKTtpZihkKXt2YXIgZSxmPWI7Zj09PTQmJihmPTUpO3ZhciBnPXRoaXMuSFtmXTtnfHwoZz10aGlzLkhbZl09e30pO2U9Zzt2YXIgaD1lW2RdO2h8fChoPWVbZF09W10pO2gucHVzaChuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGEpKTtjbi5pbmNyZW1lbnQoYS5kZXN0aW5hdGlvbklkLGEuZW5kcG9pbnQpO2EuZW5kcG9pbnQhPT01NiYmYS5lbmRwb2ludCE9PTYxJiZWbSgibWRlIiwhMCl9fX07CnZhciBtbj1mdW5jdGlvbihhLGIpe3ZhciBjPWtuLGQ9am4oYSxiKTtpZihkKXt2YXIgZT1sbihjLGEpO2lmKGUpe3ZhciBmPWVbZF07ZiYmKGVbZF09Zi5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIWcuRW99KSl9fX0sbG49ZnVuY3Rpb24oYSxiKXtiPT09NCYmKGI9NSk7cmV0dXJuIGEuSFtiXX0sam49ZnVuY3Rpb24oYSxiKXt2YXIgYz1iO2lmKGJbMF09PT0iLyIpe3ZhciBkO2M9KChkPUEubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpkLm9yaWdpbikrYn10cnl7dmFyIGU9bmV3IFVSTChjKTtyZXR1cm4gYT09PTI/ZS5vcmlnaW46ZS5vcmlnaW4rZS5wYXRobmFtZX1jYXRjaChmKXt9fSxrbj1uZXcgaG47CmZ1bmN0aW9uIG5uKGEpe3N3aXRjaChhKXtjYXNlICJzY3JpcHQtc3JjIjpyZXR1cm4gNDtjYXNlICJzY3JpcHQtc3JjLWVsZW0iOnJldHVybiA1O2Nhc2UgImZyYW1lLXNyYyI6cmV0dXJuIDI7Y2FzZSAiY29ubmVjdC1zcmMiOnJldHVybiAxO2Nhc2UgImltZy1zcmMiOnJldHVybiAzfX07ZnVuY3Rpb24gb24oYSxiLGMpe3ZhciBkLGU9YS5Hb29nbGViUWhDc087ZXx8KGU9e30sYS5Hb29nbGViUWhDc089ZSk7ZD1lO2lmKGRbYl0pcmV0dXJuITE7ZFtiXT1bXTtkW2JdWzBdPWM7cmV0dXJuITB9O3ZhciBwbixxbjthOntmb3IodmFyIHJuPVsiQ0xPU1VSRV9GTEFHUyJdLHNuPVJhLHRuPTA7dG48cm4ubGVuZ3RoO3RuKyspaWYoc249c25bcm5bdG5dXSxzbj09bnVsbCl7cW49bnVsbDticmVhayBhfXFuPXNufXZhciB1bj1xbiYmcW5bNjEwNDAxMzAxXTtwbj11biE9bnVsbD91bjohMTtmdW5jdGlvbiB2bigpe3ZhciBhPVJhLm5hdmlnYXRvcjtpZihhKXt2YXIgYj1hLnVzZXJBZ2VudDtpZihiKXJldHVybiBifXJldHVybiIifXZhciB3bix4bj1SYS5uYXZpZ2F0b3I7d249eG4/eG4udXNlckFnZW50RGF0YXx8bnVsbDpudWxsO2Z1bmN0aW9uIHluKGEpe2lmKCFwbnx8IXduKXJldHVybiExO2Zvcih2YXIgYj0wO2I8d24uYnJhbmRzLmxlbmd0aDtiKyspe3ZhciBjPXduLmJyYW5kc1tiXS5icmFuZDtpZihjJiZjLmluZGV4T2YoYSkhPS0xKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHpuKGEpe3JldHVybiB2bigpLmluZGV4T2YoYSkhPS0xfTtmdW5jdGlvbiBBbigpe3JldHVybiBwbj8hIXduJiZ3bi5icmFuZHMubGVuZ3RoPjA6ITF9ZnVuY3Rpb24gQm4oKXtyZXR1cm4gQW4oKT8hMTp6bigiT3BlcmEiKX1mdW5jdGlvbiBDbigpe3JldHVybiB6bigiRmlyZWZveCIpfHx6bigiRnhpT1MiKX1mdW5jdGlvbiBEbigpe3JldHVybiBBbigpP3luKCJDaHJvbWl1bSIpOih6bigiQ2hyb21lIil8fHpuKCJDcmlPUyIpKSYmIShBbigpPzA6em4oIkVkZ2UiKSl8fHpuKCJTaWxrIil9O2Z1bmN0aW9uIEVuKCl7cmV0dXJuIHBuPyEhd24mJiEhd24ucGxhdGZvcm06ITF9ZnVuY3Rpb24gRm4oKXtyZXR1cm4gem4oImlQaG9uZSIpJiYhem4oImlQb2QiKSYmIXpuKCJpUGFkIil9ZnVuY3Rpb24gR24oKXtGbigpfHx6bigiaVBhZCIpfHx6bigiaVBvZCIpfTt2YXIgSG49ZnVuY3Rpb24oYSl7SG5bIiAiXShhKTtyZXR1cm4gYX07SG5bIiAiXT1mdW5jdGlvbigpe307Qm4oKTtBbigpfHx6bigiVHJpZGVudCIpfHx6bigiTVNJRSIpO3puKCJFZGdlIik7IXpuKCJHZWNrbyIpfHx2bigpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikhPS0xJiYhem4oIkVkZ2UiKXx8em4oIlRyaWRlbnQiKXx8em4oIk1TSUUiKXx8em4oIkVkZ2UiKTt2bigpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikhPS0xJiYhem4oIkVkZ2UiKSYmem4oIk1vYmlsZSIpO0VuKCl8fHpuKCJNYWNpbnRvc2giKTtFbigpfHx6bigiV2luZG93cyIpOyhFbigpP3duLnBsYXRmb3JtPT09IkxpbnV4Ijp6bigiTGludXgiKSl8fEVuKCl8fHpuKCJDck9TIik7RW4oKXx8em4oIkFuZHJvaWQiKTtGbigpO3puKCJpUGFkIik7em4oImlQb2QiKTtHbigpO3ZuKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJrYWlvcyIpO0NuKCk7Rm4oKXx8em4oImlQb2QiKTt6bigiaVBhZCIpOyF6bigiQW5kcm9pZCIpfHxEbigpfHxDbigpfHxCbigpfHx6bigiU2lsayIpO0RuKCk7IXpuKCJTYWZhcmkiKXx8RG4oKXx8KEFuKCk/MDp6bigiQ29hc3QiKSl8fEJuKCl8fChBbigpPzA6em4oIkVkZ2UiKSl8fChBbigpP3luKCJNaWNyb3NvZnQgRWRnZSIpOnpuKCJFZGcvIikpfHwoQW4oKT95bigiT3BlcmEiKTp6bigiT1BSIikpfHxDbigpfHx6bigiU2lsayIpfHx6bigiQW5kcm9pZCIpfHxHbigpO3ZhciBJbj17fSxKbj1udWxsOwpmdW5jdGlvbiBLbihhKXtmb3IodmFyIGI9W10sYz0wLGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGU9YS5jaGFyQ29kZUF0KGQpO2U+MjU1JiYoYltjKytdPWUmMjU1LGU+Pj04KTtiW2MrK109ZX12YXIgZj00O2Y9PT12b2lkIDAmJihmPTApO2lmKCFKbil7Sm49e307Zm9yKHZhciBnPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIuc3BsaXQoIiIpLGg9WyIrLz0iLCIrLyIsIi1fPSIsIi1fLiIsIi1fIl0sbD0wO2w8NTtsKyspe3ZhciBuPWcuY29uY2F0KGhbbF0uc3BsaXQoIiIpKTtJbltsXT1uO2Zvcih2YXIgcD0wO3A8bi5sZW5ndGg7cCsrKXt2YXIgcT1uW3BdO0puW3FdPT09dm9pZCAwJiYoSm5bcV09cCl9fX1mb3IodmFyIHI9SW5bZl0sdD1BcnJheShNYXRoLmZsb29yKGIubGVuZ3RoLzMpKSx1PXJbNjRdfHwiIix2PTAseD0wO3Y8Yi5sZW5ndGgtMjt2Kz0zKXt2YXIgeT1iW3ZdLHo9Ylt2KzFdLEM9Ylt2KzJdLApEPXJbeT4+Ml0sST1yWyh5JjMpPDw0fHo+PjRdLEc9clsoeiYxNSk8PDJ8Qz4+Nl0sTj1yW0MmNjNdO3RbeCsrXT0iIitEK0krRytOfXZhciBTPTAsVz11O3N3aXRjaChiLmxlbmd0aC12KXtjYXNlIDI6Uz1iW3YrMV0sVz1yWyhTJjE1KTw8Ml18fHU7Y2FzZSAxOnZhciBlYT1iW3ZdO3RbeF09IiIrcltlYT4+Ml0rclsoZWEmMyk8PDR8Uz4+NF0rVyt1fXJldHVybiB0LmpvaW4oIiIpfTt2YXIgTG49ZnVuY3Rpb24oYSl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhLnJlcGxhY2UoL1wrL2csIiAiKSl9O3ZhciBNbj1SZWdFeHAoIl4oPzooW146Lz8jLl0rKTopPyg/Oi8vKD86KFteXFxcXC8/I10qKUApPyhbXlxcXFwvPyNdKj8pKD86OihbMC05XSspKT8oPz1bXFxcXC8/I118JCkpPyhbXj8jXSspPyg/OlxcPyhbXiNdKikpPyg/OiMoW1xcc1xcU10qKSk/JCIpO2Z1bmN0aW9uIE5uKGEsYixjLGQpe2Zvcih2YXIgZT1iLGY9Yy5sZW5ndGg7KGU9YS5pbmRleE9mKGMsZSkpPj0wJiZlPGQ7KXt2YXIgZz1hLmNoYXJDb2RlQXQoZS0xKTtpZihnPT0zOHx8Zz09NjMpe3ZhciBoPWEuY2hhckNvZGVBdChlK2YpO2lmKCFofHxoPT02MXx8aD09Mzh8fGg9PTM1KXJldHVybiBlfWUrPWYrMX1yZXR1cm4tMX12YXIgT249LyN8JC87CmZ1bmN0aW9uIFBuKGEsYil7dmFyIGM9YS5zZWFyY2goT24pLGQ9Tm4oYSwwLGIsYyk7aWYoZDwwKXJldHVybiBudWxsO3ZhciBlPWEuaW5kZXhPZigiJiIsZCk7aWYoZTwwfHxlPmMpZT1jO2QrPWIubGVuZ3RoKzE7cmV0dXJuIExuKGEuc2xpY2UoZCxlIT09LTE/ZTowKSl9dmFyIFFuPS9bPyZdKCR8IykvOwpmdW5jdGlvbiBSbihhLGIsYyl7Zm9yKHZhciBkLGU9YS5zZWFyY2goT24pLGY9MCxnLGg9W107KGc9Tm4oYSxmLGIsZSkpPj0wOyloLnB1c2goYS5zdWJzdHJpbmcoZixnKSksZj1NYXRoLm1pbihhLmluZGV4T2YoIiYiLGcpKzF8fGUsZSk7aC5wdXNoKGEuc2xpY2UoZikpO2Q9aC5qb2luKCIiKS5yZXBsYWNlKFFuLCIkMSIpO3ZhciBsLG49YyE9bnVsbD8iPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhjKSk6IiI7dmFyIHA9YituO2lmKHApe3ZhciBxLHI9ZC5pbmRleE9mKCIjIik7cjwwJiYocj1kLmxlbmd0aCk7dmFyIHQ9ZC5pbmRleE9mKCI/IiksdTt0PDB8fHQ+cj8odD1yLHU9IiIpOnU9ZC5zdWJzdHJpbmcodCsxLHIpO3E9W2Quc2xpY2UoMCx0KSx1LGQuc2xpY2UocildO3ZhciB2PXFbMV07cVsxXT1wP3Y/disiJiIrcDpwOnY7bD1xWzBdKyhxWzFdPyI/IitxWzFdOiIiKStxWzJdfWVsc2UgbD1kO3JldHVybiBsfTtmdW5jdGlvbiBTbihhLGIsYyxkLGUsZixnLGgpe3ZhciBsPVBuKGMsImZtdCIpO2lmKGQpe3ZhciBuPVBuKGMsInJhbmRvbSIpLHA9UG4oYywibGFiZWwiKXx8IiI7aWYoIW4pcmV0dXJuO3ZhciBxPUtuKExuKHApKyI6IitMbihuKSk7aWYoIW9uKGEscSxkKSlyZXR1cm59bCYmTnVtYmVyKGwpIT09ND8oYz1SbihjLCJyZm10IixsKSxjPVJuKGMsImZtdCIsNCkpOmx8fChjPVJuKGMsImZtdCIsNCkpO1VjKGMsZnVuY3Rpb24oKXtnPT1udWxsfHxUbihnKTtoPT1udWxsfHxVbihoLGMpO2EuZ29vZ2xlX25vRnVydGhlclJlZGlyZWN0cyYmZCYmKGEuZ29vZ2xlX25vRnVydGhlclJlZGlyZWN0cz1udWxsLGQoKSl9LGZ1bmN0aW9uKCl7Zz09bnVsbHx8VG4oZyk7aD09bnVsbHx8VW4oaCxjKTtlPT1udWxsfHxlKCl9LGYsYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF0ucGFyZW50RWxlbWVudHx8dm9pZCAwKTtyZXR1cm4gY307ZnVuY3Rpb24gVm4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMSxiWzBdKTtpZC5hcHBseShudWxsLHcoYikpfWZ1bmN0aW9uIFduKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtrbi5yZWdpc3RlcihhLDEsYlswXSk7cmV0dXJuIGpkLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gWG4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsMyxiWzBdKTtaYy5hcHBseShudWxsLHcoYikpfWZ1bmN0aW9uIFluKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtrbi5yZWdpc3RlcihhLDEsYlswXSk7cmV0dXJuIG1kLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gWm4oYSl7dmFyIGI9T2EuYXBwbHkoMSxhcmd1bWVudHMpO2tuLnJlZ2lzdGVyKGEsNSxiWzBdKTtVYy5hcHBseShudWxsLHcoYikpfQpmdW5jdGlvbiAkbihhKXt2YXIgYj1PYS5hcHBseSgxLGFyZ3VtZW50cyk7YlswXSYma24ucmVnaXN0ZXIoYSwyLGJbMF0pO1hjLmFwcGx5KG51bGwsdyhiKSl9ZnVuY3Rpb24gYW8oYSl7dmFyIGI9U24uYXBwbHkobnVsbCx3KE9hLmFwcGx5KDEsYXJndW1lbnRzKSkpO2ImJmtuLnJlZ2lzdGVyKGEsNCxiKTtyZXR1cm4gYn07dmFyIGJvPXtNYTp7UmU6MCxVZToxLExoOjJ9fTtiby5NYVtiby5NYS5SZV09IkZVTExfVFJBTlNNSVNTSU9OIjtiby5NYVtiby5NYS5VZV09IkxJTUlURURfVFJBTlNNSVNTSU9OIjtiby5NYVtiby5NYS5MaF09Ik5PX1RSQU5TTUlTU0lPTiI7dmFyIGNvPXtpYTp7Z2Q6MCxjYjoxLHhkOjIsWmI6M319O2NvLmlhW2NvLmlhLmdkXT0iTk9fUVVFVUUiO2NvLmlhW2NvLmlhLmNiXT0iQURTIjtjby5pYVtjby5pYS54ZF09IkFOQUxZVElDUyI7Y28uaWFbY28uaWEuWmJdPSJNT05JVE9SSU5HIjt2YXIgZW89ZnVuY3Rpb24oYSxiKXt0aGlzLkg9YTt0aGlzLmNvbnNlbnRUeXBlcz1ifTtlby5wcm90b3R5cGUuaXNDb25zZW50R3JhbnRlZD1mdW5jdGlvbigpe3N3aXRjaCh0aGlzLkgpe2Nhc2UgMDpyZXR1cm4gdGhpcy5jb25zZW50VHlwZXMuZXZlcnkoZnVuY3Rpb24oYSl7cmV0dXJuIEJsKGEpfSk7Y2FzZSAxOnJldHVybiB0aGlzLmNvbnNlbnRUeXBlcy5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBCbChhKX0pO2RlZmF1bHQ6eWModGhpcy5ILCJjb25zZW50c1JlcXVpcmVkIGhhZCBhbiB1bmtub3duIHR5cGUiKX19Owp2YXIgZm89bmV3IGZ1bmN0aW9uKCl7dmFyIGE9e307dGhpcy5IPShhW2NvLmlhLmdkXT1iby5NYS5SZSxhW2NvLmlhLmNiXT1iby5NYS5SZSxhW2NvLmlhLnhkXT1iby5NYS5SZSxhW2NvLmlhLlpiXT1iby5NYS5SZSxhKTt2YXIgYj17fTt0aGlzLks9KGJbY28uaWEuZ2RdPW5ldyBlbygwLFtdKSxiW2NvLmlhLmNiXT1uZXcgZW8oMCxbImFkX3N0b3JhZ2UiXSksYltjby5pYS54ZF09bmV3IGVvKDAsWyJhbmFseXRpY3Nfc3RvcmFnZSJdKSxiW2NvLmlhLlpiXT1uZXcgZW8oMSxbImFkX3N0b3JhZ2UiLCJhbmFseXRpY3Nfc3RvcmFnZSJdKSxiKX07dmFyIGhvPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dGhpcy50eXBlPWE7dGhpcy5IPVtdO0ZsKGZvLktbYV0uY29uc2VudFR5cGVzLGZ1bmN0aW9uKCl7Z28oYil8fGIuZmx1c2goKX0pfTtoby5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIGE9bSh0aGlzLkgpLGI9YS5uZXh0KCk7IWIuZG9uZTtiPWEubmV4dCgpKXt2YXIgYz1iLnZhbHVlO2MoKX10aGlzLkg9W119O3ZhciBnbz1mdW5jdGlvbihhKXtyZXR1cm4gZm8uSFthLnR5cGVdPT09Ym8uTWEuTGgmJiFmby5LW2EudHlwZV0uaXNDb25zZW50R3JhbnRlZCgpfSxpbz1mdW5jdGlvbihhLGIpe2dvKGEpP2EuSC5wdXNoKGIpOmIoKX0sam89ZnVuY3Rpb24oKXt0aGlzLkg9bmV3IE1hcH0sbG89ZnVuY3Rpb24oYSl7dmFyIGI9a287Yi5ILmhhcyhhKXx8Yi5ILnNldChhLG5ldyBobyhhKSk7cmV0dXJuIGIuSC5nZXQoYSl9O2pvLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuSC5jbGVhcigpfTsKdmFyIGtvPW5ldyBqbzt2YXIgbW89WyJmaW4iLCJmcyIsIm1jYyIsIm5jYyJdLG5vPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD8hMTphO3ZhciBiPVJtKCksYz1RbS5LLGQ9Yi5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGNbZV0hPT12b2lkIDAmJihhfHwhbW8uaW5jbHVkZXMoZSkpfSk7VG0oZCk7cmV0dXJuIGQubWFwKGZ1bmN0aW9uKGUpe3ZhciBmPWNbZV07dHlwZW9mIGY9PT0iZnVuY3Rpb24iJiYoZj1mKCkpO3JldHVybiBmPyImIitlKyI9IitmOiIifSkuam9pbigiIikrIiZ6PTAifSxvbz1mdW5jdGlvbihhKXt2YXIgYj0iaHR0cHM6Ly8iK0UoMjEpLGM9Ii90ZD9pZD0iK0UoNSk7cmV0dXJuIiIrZmsoYikrYythfSxwbz1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyExOmI7Yz1jPT09dm9pZCAwPyExOmM7aWYoJGsoMjYpJiZmbi5LJiZFKDUpJiYoY3x8IWduKCkpKXt2YXIgZD1sbyhjby5pYS5aYik7aWYoZ28oZCkpYS5IfHwoYS5IPSEwLGlvKGQsZnVuY3Rpb24oKXtyZXR1cm4gcG8oYSl9KSk7CmVsc2V7YiYmVW0oImZpbiIsIjEiKTt2YXIgZT1ubyhiKSxmPW9vKGUpLGc9e2Rlc3RpbmF0aW9uSWQ6RSg1KSxlbmRwb2ludDo2MX07Yj9ZbihnLGYsdm9pZCAwLHtRZzohMH0sdm9pZCAwLGZ1bmN0aW9uKCl7WmMoZisiJmltZz0xIil9KTpYbihnLGYpO2EuSD0hMTtxbyhlKX19fSxxbz1mdW5jdGlvbihhKXtpZihLYyYmKFNiKEtjLCJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS8iKXx8SWYoNDcpKSYmIShhLmluZGV4T2YoIiZjc3A9Iik8MCYmYS5pbmRleE9mKCImbWRlPSIpPDApKXt2YXIgYjthOnt0cnl7aWYoS2Mpe2I9bmV3IFVSTChLYyk7YnJlYWsgYX19Y2F0Y2goYyl7fWI9dm9pZCAwfWImJlVjKCIiK0tjKyhLYy5pbmRleE9mKCI/Iik+PTA/IiYiOiI/IikrImlzX3RkPTEiK2EpfX0scm89ZnVuY3Rpb24oYSl7Um0oKS5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiFQbVtiXX0pJiZwbyhhLCEwKX0sc289bmV3IGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9ITE7CiRjKEEsInBhZ2VoaWRlIixmdW5jdGlvbigpe3JvKGEpfSl9O2Z1bmN0aW9uIHRvKGEsYil7cG8oc28sYT09PXZvaWQgMD8hMTphLGI9PT12b2lkIDA/ITE6Yil9O3ZhciB1bz1bImFkX3N0b3JhZ2UiLCJhbmFseXRpY3Nfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSIsImFkX3BlcnNvbmFsaXphdGlvbiJdLHZvPVtGLkQuZGQsRi5ELnljLEYuRC5RZixGLkQuS2IsRi5ELnhjLEYuRC5mYixGLkQuRGIsRi5ELm5iLEYuRC5MYixGLkQudmNdLHlvPWZ1bmN0aW9uKCl7dmFyIGE9d287IWEuUiYmYS5IJiYodW8uc29tZShmdW5jdGlvbihiKXtyZXR1cm4gQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHNbYl0hPT0xfSl8fHhvKCJtYmMiKSk7YS5SPSEwfSx4bz1mdW5jdGlvbihhKXtmbi5LJiYoVW0oYSwiMSIpLHRvKCkpfSx6bz1mdW5jdGlvbihhLGIpe3ZhciBjPXdvO2lmKCFjLk5bYl0mJihjLk5bYl09ITAsYy5LW2JdKSlmb3IodmFyIGQ9bSh2byksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpaWYoTyhhLGUudmFsdWUpKXt4bygiZXJjIik7YnJlYWt9fSx3bz1uZXcgZnVuY3Rpb24oKXt0aGlzLlI9dGhpcy5IPSExO3RoaXMuTj17fTt0aGlzLks9e319O3ZhciBBbz17fSxCbz1PYmplY3QuZnJlZXplKChBb1tGLkQuUmNdPTEsQW9bRi5ELmhoXT0xLEFvW0YuRC5zaV09MSxBb1tGLkQuU2NdPTEsQW9bRi5ELkhhXT0xLEFvW0YuRC5MYl09MSxBb1tGLkQuQ2JdPTEsQW9bRi5ELlRiXT0xLEFvW0YuRC5JZF09MSxBb1tGLkQudmNdPTEsQW9bRi5ELm5iXT0xLEFvW0YuRC5KZF09MSxBb1tGLkQuSGVdPTEsQW9bRi5ELk9hXT0xLEFvW0YuRC5RcF09MSxBb1tGLkQuUGZdPTEsQW9bRi5ELkZpXT0xLEFvW0YuRC5waF09MSxBb1tGLkQuV2NdPTEsQW9bRi5ELlFmXT0xLEFvW0YuRC5hcV09MSxBb1tGLkQuVGFdPTEsQW9bRi5ELlVmXT0xLEFvW0YuRC5mcV09MSxBb1tGLkQuT2RdPTEsQW9bRi5ELlJsXT0xLEFvW0YuRC5ZY109MSxBb1tGLkQuWmNdPTEsQW9bRi5ELkRiXT0xLEFvW0YuRC5hbV09MSxBb1tGLkQuV2JdPTEsQW9bRi5ELlRkXT0xLEFvW0YuRC5YYl09MSxBb1tGLkQuT2ldPTEsQW9bRi5ELmRkXT0xLEFvW0YuRC55aF09MSxBb1tGLkQuUGldPQoxLEFvW0YuRC5VZF09MSxBb1tGLkQueWNdPTEsQW9bRi5ELlZkXT0xLEFvW0YuRC5sbV09MSxBb1tGLkQuV2RdPTEsQW9bRi5ELmVkXT0xLEFvW0YuRC5val09MSxBbykpO09iamVjdC5mcmVlemUoW0YuRC56YSxGLkQuVWEsRi5ELk1iLEYuRC50YixGLkQuTmksRi5ELmZiLEYuRC5HaSxGLkQuTXBdKTsKdmFyIENvPXt9LERvPU9iamVjdC5mcmVlemUoKENvW0YuRC5xcF09MSxDb1tGLkQucnBdPTEsQ29bRi5ELnRwXT0xLENvW0YuRC51cF09MSxDb1tGLkQudnBdPTEsQ29bRi5ELnpwXT0xLENvW0YuRC5BcF09MSxDb1tGLkQuQnBdPTEsQ29bRi5ELkRwXT0xLENvW0YuRC55Zl09MSxDbykpLEVvPXt9LEZvPU9iamVjdC5mcmVlemUoKEVvW0YuRC52bF09MSxFb1tGLkQud2xdPTEsRW9bRi5ELnhlXT0xLEVvW0YuRC55ZV09MSxFb1tGLkQueGxdPTEsRW9bRi5ELkFkXT0xLEVvW0YuRC56ZV09MSxFb1tGLkQub2NdPTEsRW9bRi5ELlFjXT0xLEVvW0YuRC5xY109MSxFb1tGLkQuSWJdPTEsRW9bRi5ELkFlXT0xLEVvW0YuRC5yY109MSxFb1tGLkQueWxdPTEsRW8pKSxHbz1PYmplY3QuZnJlZXplKFtGLkQuUmMsRi5ELlNjLEYuRC5KZCxGLkQuUWYsRi5ELldmLEYuRC5UZCxGLkQuT2ksRi5ELlZkXSksSG89T2JqZWN0LmZyZWV6ZShbXS5jb25jYXQodyhHbykpKSxJbz1PYmplY3QuZnJlZXplKFtGLkQuQ2IsCkYuRC5waCxGLkQueWgsRi5ELlBpLEYuRC5uaF0pLEpvPU9iamVjdC5mcmVlemUoW10uY29uY2F0KHcoSW8pKSksS289e30sTG89KEtvW0YuRC5rYV09IjEiLEtvW0YuRC5yYV09IjIiLEtvW0YuRC5tYV09IjMiLEtvW0YuRC5YYV09IjQiLEtvKSxNbz17fSxObz1PYmplY3QuZnJlZXplKChNby5zZWFyY2g9InMiLE1vLnlvdXR1YmU9InkiLE1vLnBsYXlzdG9yZT0icCIsTW8uc2hvcHBpbmc9ImgiLE1vLmFkcz0iYSIsTW8ubWFwcz0ibSIsTW8pKTtmdW5jdGlvbiBPbyhhKXtyZXR1cm4gdHlwZW9mIGEhPT0ib2JqZWN0Inx8YT09PW51bGw/e306YX1mdW5jdGlvbiBQbyhhKXtyZXR1cm4gYT09PXZvaWQgMHx8YT09PW51bGw/IiI6dHlwZW9mIGE9PT0ib2JqZWN0Ij9hLnRvU3RyaW5nKCk6U3RyaW5nKGEpfWZ1bmN0aW9uIFFvKGEpe2lmKGEhPT12b2lkIDAmJmEhPT1udWxsKXJldHVybiBQbyhhKX07dmFyIFJvPVtGLkQua2EsRi5ELnJhLEYuRC5tYSxGLkQuWGFdO2Z1bmN0aW9uIFNvKGEpe2Zvcih2YXIgYj1tKGFbRi5ELm5jXXx8WyIiXSksYz1iLm5leHQoKSxkPXt9OyFjLmRvbmU7ZD17cmVnaW9uOnZvaWQgMH0sYz1iLm5leHQoKSlkLnJlZ2lvbj1jLnZhbHVlLEdiKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGYsZyl7aWYoZiE9PUYuRC5uYyl7dmFyIGg9UG8oZyksbD1lLnJlZ2lvbixuPXltKCkscD16bSgpO3lsPSEwO3hsJiZzYigiVEFHR0lORyIsMjApO3RsKCkuZGVjbGFyZShmLGgsbCxuLHApfX19KGQpKX0KZnVuY3Rpb24gVG8oYSl7eW8oKTt2YXIgYj1hbCgxNyxmdW5jdGlvbigpe3JldHVybiExfSksYz1hbCgxNixmdW5jdGlvbigpe3JldHVybiExfSk7IWImJmMmJnhvKCJjcmMiKTtaaygxNywhMCk7dmFyIGQ9YVtGLkQuWWddO2QmJlAoNDEpO3ZhciBlPWFbRi5ELm5jXTtlP1AoNDApOmU9WyIiXTtmb3IodmFyIGY9bShlKSxnPWYubmV4dCgpLGg9e307IWcuZG9uZTtoPXtCbzp2b2lkIDB9LGc9Zi5uZXh0KCkpaC5Cbz1nLnZhbHVlLEdiKGEsZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKG4scCl7aWYobiE9PUYuRC5uYyYmbiE9PUYuRC5ZZyl7dmFyIHE9UW8ocCkscj1sLkJvLHQ9TnVtYmVyKGQpLHU9eW0oKSx2PXptKCk7dD10PT09dm9pZCAwPzA6dDt4bD0hMDt5bCYmc2IoIlRBR0dJTkciLDIwKTt0bCgpLmRlZmF1bHQobixxLHIsdSx2LHQsQWwpfX19KGgpKX0KZnVuY3Rpb24gVW8oYSl7QWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzPSEwO3ZhciBiPWFbRi5ELm5jXTtpZihiKXt2YXIgYz1BcnJheS5pc0FycmF5KGIpP2I6W2JdO2lmKCFjLmluY2x1ZGVzKHptKCkpJiYhYy5pbmNsdWRlcyh5bSgpKSlyZXR1cm59R2IoYSxmdW5jdGlvbihkLGUpe3N3aXRjaChkKXtjYXNlICJhZF9zdG9yYWdlIjpjYXNlICJhbmFseXRpY3Nfc3RvcmFnZSI6Y2FzZSAiYWRfdXNlcl9kYXRhIjpjYXNlICJhZF9wZXJzb25hbGl6YXRpb24iOmJyZWFrO2RlZmF1bHQ6cmV0dXJufUFsLnVzZWRDb250YWluZXJTY29wZWREZWZhdWx0cz0hMDtBbC5jb250YWluZXJTY29wZWREZWZhdWx0c1tkXT1lPT09ImdyYW50ZWQiPzM6Mn0pfQpmdW5jdGlvbiBWbyhhLGIpe3lvKCk7WmsoMTYsITApO0diKGEsZnVuY3Rpb24oYyxkKXt2YXIgZT1QbyhkKTt4bD0hMDt5bCYmc2IoIlRBR0dJTkciLDIwKTt0bCgpLnVwZGF0ZShjLGUsQWwpfSk7R2woYi5ldmVudElkLGIucHJpb3JpdHlJZCl9ZnVuY3Rpb24gV28oYSl7YS5oYXNPd25Qcm9wZXJ0eSgiYWxsIikmJihBbC5zZWxlY3RlZEFsbENvcmVQbGF0Zm9ybVNlcnZpY2VzPSEwLEdiKE5vLGZ1bmN0aW9uKGIpe0FsLmNvcmVQbGF0Zm9ybVNlcnZpY2VzW2JdPWEuYWxsPT09ImdyYW50ZWQiO0FsLnVzZWRDb3JlUGxhdGZvcm1TZXJ2aWNlcz0hMH0pKTtHYihhLGZ1bmN0aW9uKGIsYyl7YiE9PSJhbGwiJiYoQWwuY29yZVBsYXRmb3JtU2VydmljZXNbYl09Yz09PSJncmFudGVkIixBbC51c2VkQ29yZVBsYXRmb3JtU2VydmljZXM9ITApfSl9CmZ1bmN0aW9uIFhvKGEpe0FycmF5LmlzQXJyYXkoYSl8fChhPVthXSk7cmV0dXJuIGEuZXZlcnkoZnVuY3Rpb24oYil7cmV0dXJuIEJsKGIpfSl9ZnVuY3Rpb24gWW8oKXt2YXIgYT1abztBcnJheS5pc0FycmF5KGEpfHwoYT1bYV0pO3JldHVybiBhLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIEJsKGIpfSl9ZnVuY3Rpb24gJG8oYSxiKXtGbChhLGIpfWZ1bmN0aW9uIGFwKGEsYil7SWwoYSxiKX1mdW5jdGlvbiBicChhLGIpe0hsKGEsYil9ZnVuY3Rpb24gY3AoKXt2YXIgYT1bRi5ELmthLEYuRC5YYSxGLkQubWFdO3RsKCkud2FpdEZvclVwZGF0ZShhLDUwMCxBbCl9ZnVuY3Rpb24gZHAoYSl7Zm9yKHZhciBiPW0oYSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7dGwoKS5jbGVhclRpbWVvdXQoZCx2b2lkIDAsQWwpfUdsKCl9CmZ1bmN0aW9uIGVwKGEpe2Zvcih2YXIgYj17fSxjPW0oYS5zcGxpdCgifCIpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSliW2QudmFsdWVdPSEwO3JldHVybiBifTt2YXIgZnA9T2JqZWN0LmZyZWV6ZShbRi5ELmthLEYuRC5tYV0pOwp2YXIgaHA9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7YltncFtlXXx8ZV09YVtlXX1yZXR1cm4gYn0saXA9ZnVuY3Rpb24oYSl7cmV0dXJuISFRKGEsSC5KLnZkKSYmUihhLEYuRC5QZCk9PT0iMSImJlIoYSxGLkQuSGQpIT09IjEiJiZYbyhmcCl9LGpwPWZ1bmN0aW9uKGEsYil7aWYoIWlwKGEpKXJldHVybiExO3ZhciBjPVFjKCl8fE9jKCk/NTg6NTcsZD1ObShjLGhwKGIpKTtUbChkLGEsYyk7WW4oe2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpjLGV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH0sZCsiJmZtdD04Iix2b2lkIDAse1FnOiEwLG1ldGhvZDoiR0VUIn0sZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7WmMoZCsiJmZtdD0zIil9KTtyZXR1cm4hMH0sa3A9e30sZ3A9KGtwLmRsPSJ1cmwiLGtwLmRyPQoicmVmIixrcC51aWQ9InVzZXJJZCIsa3ApO3ZhciBscD1mdW5jdGlvbihhLGIpe3ZhciBjPXt9LGQ9ZnVuY3Rpb24oZSl7YltlXSE9bnVsbCYmYltlXSE9PSIiJiYoY1tlXT1iW2VdKX07TSg0NzQpJiZkKCJfZ3NpZCIpO1IoYSxGLkQuSGQpIT09IjEiJiYoZCgiZ2NsaWQiKSxkKCJnY2xzcmMiKSxkKCJhdWlkIiksZCgiZGNsaWQiKSk7aWYoT2JqZWN0LmtleXMoYykubGVuZ3RoKXJldHVybiBkKCJndG0iKSxjfTsKdmFyIG1wPXt9LG5wPShtcFtGLkQuc2FdPSJnY3UiLG1wW0YuRC5TYl09ImdjbGdiIixtcFtGLkQubGJdPSJnY2xhdyIsbXBbRi5ELnpmXT0iZ2FkX3NvdXJjZSIsbXBbRi5ELkFmXT0iZ2FkX3NvdXJjZV9zcmMiLG1wW0YuRC5EZF09ImdjbGlkIixtcFtGLkQuQWxdPSJnY2xzcmMiLG1wW0YuRC5CZl09ImdicmFpZCIsbXBbRi5ELkVlXT0id2JyYWlkIixtcFtGLkQuRWRdPSJhdWlkIixtcFtGLkQuQmxdPSJhZSIsbXBbRi5ELkhhXT1udWxsLG1wW0YuRC5EbF09InJuZCIsbXBbRi5ELkhkXT0ibmNsIixtcFtGLkQuTmZdPSJnY2xkYyIsbXBbRi5ELktkXT0iZGNsaWQiLG1wW0YuRC5WY109ImVkaWQiLG1wW0YuRC5VYl09ImVuIixtcFtGLkQuS2VdPSJnZHByIixtcFtGLkQuWGNdPSJnZGlkIixtcFtGLkQuVGFdPW51bGwsbXBbRi5ELkxlXT0iX25nIixtcFtGLkQudGhdPSJncHBfc2lkIixtcFtGLkQudWhdPSJncHAiLG1wW0YuRC5WZl09Il90dSIsbXBbRi5ELlFsXT0iZ3RtX3VwIixtcFtGLkQuTWVdPQoiZnJtIixtcFtGLkQuUGRdPSJscHMiLG1wW0YuRC5MaV09ImRpZCIsbXBbRi5ELlVsXT0ibmF2dCIsbXBbRi5ELnphXT0iZGwiLG1wW0YuRC5VYV09ImRyIixtcFtGLkQuTWJdPSJkdCIsbXBbRi5ELmJtXT0ic2Nyc3JjIixtcFtGLkQuWmZdPSJnYV91aWQiLG1wW0YuRC5PZV09ImdkcHJfY29uc2VudCIsbXBbRi5ELlFpXT0idGVzdG9ubHkiLG1wW0YuRC5ycV09InVfdHoiLG1wW0YuRC5QZV09InRvcCIsbXBbRi5ELlFlXT0idGlkIixtcFtGLkQuZmJdPSJ1aWQiLG1wW0YuRC5rZ109InVzX3ByaXZhY3kiLG1wW0YuRC5lZF09bnVsbCxtcFtGLkQuZGVdPSJucGEiLG1wKTtmdW5jdGlvbiBvcChhLGIpe2lmKGIhPW51bGwmJmIhPT0iIil7dmFyIGM9Yj09PSEwPyIxIjpiPT09ITE/IjAiOmVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYikpO2lmKFNiKGEsIl8mIikpcmV0dXJue2tleTphLnN1YnN0cmluZygyKSx2YWx1ZTpjfTt2YXIgZD1ucFthXTtpZihkIT09bnVsbClyZXR1cm4gZD97a2V5OmQsdmFsdWU6Y306e2tleTpBYihiKT8iZXBuLiIrYToiZXAuIithLHZhbHVlOmN9fX07ZnVuY3Rpb24gcHAoYSl7YT1hPT09dm9pZCAwP1tdOmE7cmV0dXJuIHhqKGEpLmpvaW4oIn4iKX07ZnVuY3Rpb24gcXAoKXt2YXIgYT1bXSxiPU51bWJlcignJyl8fDAsYz1OdW1iZXIoJycpfHwwO2N8fChjPWIvMTAwKTt2YXIgZD1mdW5jdGlvbigpe3ZhciB0PSExO3JldHVybiB0fSgpO2EucHVzaCh7dWs6MjI4LHN0dWR5SWQ6MjI4LGV4cGVyaW1lbnRJZDoxMDUxNzcxNTQsY29udHJvbElkOjEwNTE3NzE1NSxjb250cm9sSWQyOjEwNTI1NTI0NSxwcm9iYWJpbGl0eTpjLGFjdGl2ZTpkLFplOjB9KTt2YXIgZT1OdW1iZXIoJycpfHwKMCxmPU51bWJlcignJyl8fDA7Znx8KGY9ZS8xMDApO3ZhciBnPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyMzUsc3R1ZHlJZDoyMzUsZXhwZXJpbWVudElkOjEwNTM1NzE1MCxjb250cm9sSWQ6MTA1MzU3MTUxLGNvbnRyb2xJZDI6MCxwcm9iYWJpbGl0eTpmLGFjdGl2ZTpnLFplOjF9KTt2YXIgaD1OdW1iZXIoJycpfHwwLGw9TnVtYmVyKCcnKXx8CjA7bHx8KGw9aC8xMDApO3ZhciBuPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIHR9KCk7YS5wdXNoKHt1azoyNjYsc3R1ZHlJZDoyNjYsZXhwZXJpbWVudElkOjExNTcxODUyOSxjb250cm9sSWQ6MTE1NzE4NTMwLGNvbnRyb2xJZDI6MTE1NzE4NTMxLHByb2JhYmlsaXR5OmwsYWN0aXZlOm4sWmU6MH0pO3ZhciBwPU51bWJlcignJyl8fDAscT1OdW1iZXIoJycpfHwKMDtxfHwocT1wLzEwMCk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD0hMTtyZXR1cm4gdH0oKTthLnB1c2goe3VrOjI2NyxzdHVkeUlkOjI2NyxleHBlcmltZW50SWQ6MTE1NzE4NTI2LGNvbnRyb2xJZDoxMTU3MTg1MjcsY29udHJvbElkMjoxMTU3MTg1MjgscHJvYmFiaWxpdHk6cSxhY3RpdmU6cixaZTowfSk7cmV0dXJuIGF9O3ZhciBycD1mdW5jdGlvbigpe3RoaXMuSz17fTt0aGlzLkg9e307dGhpcy5OPXt9O3RoaXMuUj1uZXcgU2V0fSx4cD1mdW5jdGlvbihhLGIpe3ZhciBjPWIsZD1iPWEuTltjLnN0dWR5SWRdP25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyx7YWN0aXZlOiEwfSk6YyxlPUZpO2QuY29udHJvbElkMiYmZC5wcm9iYWJpbGl0eTw9LjI1fHwoZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGQse2NvbnRyb2xJZDI6MH0pKTtlLnN0dWRpZXNbZC5zdHVkeUlkXT1kO2IuZm9jdXNlZCYmKGEuS1tiLnN0dWR5SWRdPSEwKTtpZihiLlplPT09MSl7dmFyIGY9Yi5zdHVkeUlkO3NwKGEsdHAoKSxmKTt1cChhLGYpP3RqKHVqLGYpOnZwKGEsZik/dWouS1tmXT0hMDp3cChhLGYpJiYodWouSFtmXT0hMCl9ZWxzZSBpZihiLlplPT09MCl7dmFyIGc9Yi5zdHVkeUlkO3NwKGEsYS5ILGcpO3VwKGEsZyk/dGoodWosZyk6dnAoYSxnKT91ai5LW2ddPSEwOndwKGEsZykmJgoodWouSFtnXT0hMCl9fSxzcD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1GaTtpZihlLnN0dWRpZXNbY10pe3ZhciBmPWUuc3R1ZGllc1tjXSxnPWYuZXhwZXJpbWVudElkLGg9Zi5wcm9iYWJpbGl0eTtpZighKGIuc3R1ZGllc3x8e30pW2NdKXt2YXIgbD1iLnN0dWRpZXN8fHt9O2xbY109ITA7Yi5zdHVkaWVzPWw7aWYoIWUuc3R1ZGllc1tjXS5hY3RpdmUpaWYoZS5zdHVkaWVzW2NdLnByb2JhYmlsaXR5Pi41KUlpKGIsZyxjKTtlbHNlIGlmKCEoaDw9MHx8aD4xKSl7dmFyIG49dm9pZCAwO2lmKGQpe3ZhciBwPUNpKGQrIn4iK2MpO2lmKHA9PT0iZTIiKW49LTE7ZWxzZXtmb3IodmFyIHE9bmV3IFVpbnQ4QXJyYXkocCkscj1CaWdJbnQoMCksdD1tKHEpLHU9dC5uZXh0KCk7IXUuZG9uZTt1PXQubmV4dCgpKXI9cjw8QmlnSW50KDgpfEJpZ0ludCh1LnZhbHVlKTtuPU51bWJlcihyJUJpZ0ludChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikpfX1HaS5zayhiLGMsbil9fX1pZighYS5LW2NdKXt2YXIgdj0KTmkoYixjKTt2JiZ3ai5ILksuYWRkKHYpfX0sdHA9ZnVuY3Rpb24oKXtyZXR1cm4gb20oam0uYmEuVHEse30pfSx1cD1mdW5jdGlvbihhLGIpe3ZhciBjPXRwKCk7cmV0dXJuIEtpKGMsYil8fEtpKGEuSCxiKX0sdnA9ZnVuY3Rpb24oYSxiKXt2YXIgYz10cCgpO3JldHVybiBMaShjLGIpfHxMaShhLkgsYil9LHdwPWZ1bmN0aW9uKGEsYil7dmFyIGM9dHAoKTtyZXR1cm4gTWkoYyxiKXx8TWkoYS5ILGIpfSx5cDsKZnVuY3Rpb24genAoKXtpZigheXApe3ZhciBhPXlwPW5ldyBycCxiLGMsZD0oKGI9QSk9PW51bGw/dm9pZCAwOihjPWIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpjLmhhc2gpfHwiIjtpZihkWzBdPT09IiMiJiZkWzFdPT09Il8iJiZkWzJdPT09InQiJiZkWzNdPT09ImUiJiZkWzRdPT09Ij0iKXt2YXIgZT1kLnN1YnN0cmluZyg1KTtpZihlKWZvcih2YXIgZj1tKGUuc3BsaXQoIn4iKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPU51bWJlcihnLnZhbHVlKTtoJiYoYS5OW2hdPSEwLHRqKHVqLGgpKX19Zm9yKHZhciBsPW0ocXAoKSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpeHAoYSxuLnZhbHVlKTtmb3IodmFyIHA9W10scT1tKE1mKDU2KXx8W10pLHI9cS5uZXh0KCk7IXIuZG9uZTtyPXEubmV4dCgpKXt2YXIgdD1yLnZhbHVlLHU9e3N0dWR5SWQ6dFsxXSxhY3RpdmU6ISF0WzJdLHByb2JhYmlsaXR5OnRbM118fDAsZXhwZXJpbWVudElkOnRbNF18fAowLGNvbnRyb2xJZDp0WzVdfHwwLGNvbnRyb2xJZDI6dFs2XXx8MH0sdj0wO3N3aXRjaCh0WzddKXtjYXNlIDI6dj0xO2JyZWFrO2Nhc2UgMzp2PTI7YnJlYWs7Y2FzZSAxOmNhc2UgNDpjYXNlIDU6Y2FzZSAwOnY9MH12YXIgeDthOnN3aXRjaCh1LnN0dWR5SWQpe2Nhc2UgNTY3OmNhc2UgNDYyOng9ITA7YnJlYWsgYTtkZWZhdWx0Ong9ITF9dmFyIHk9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx1LHtaZTp2LGZvY3VzZWQ6eH0pOyh5LmFjdGl2ZXx8eS5wcm9iYWJpbGl0eT4uNSYmeS5leHBlcmltZW50SWR8fHkuZXhwZXJpbWVudElkJiZ5LmNvbnRyb2xJZCkmJnAucHVzaCh5KX1mb3IodmFyIHo9bShwKSxDPXoubmV4dCgpOyFDLmRvbmU7Qz16Lm5leHQoKSl4cChhLEMudmFsdWUpfX0KZnVuY3Rpb24gQXAoYSxiKXt6cCgpO3ZhciBjPXlwO3NwKGMsdHAoKSxhLGIpO3VwKGMsYSk/dGoodWosYSk6dnAoYyxhKT91ai5LW2FdPSEwOndwKGMsYSkmJih1ai5IW2FdPSEwKX1mdW5jdGlvbiBCcCgpe3pwKCk7dmFyIGE9eXAsYj11cChhLDU2Nyk7aWYoYS5LWzU2N10pe3ZhciBjLGQ9dHAoKTsoYz1OaShkLDU2Nyl8fE5pKGEuSCw1NjcpKSYmYS5SLmFkZChjKX1yZXR1cm4gYn1mdW5jdGlvbiBDcChhKXt6cCgpO3ZhciBiPW5ldyBTZXQoeXAuUik7aWYoYSlmb3IodmFyIGM9UShhLEguSi5DaCl8fFtdLGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSliLmFkZChlLnZhbHVlKTtyZXR1cm4gcHAoW10uY29uY2F0KHcoYikpKX07ZnVuY3Rpb24gRHAoYSl7dmFyIGI9YS5sb2NhdGlvbi5ocmVmO2lmKGE9PT1hLnRvcClyZXR1cm57dXJsOmIsSXM6ITB9O3ZhciBjPSExLGQ9YS5kb2N1bWVudDtkJiZkLnJlZmVycmVyJiYoYj1kLnJlZmVycmVyLGEucGFyZW50PT09YS50b3AmJihjPSEwKSk7dmFyIGU9YS5sb2NhdGlvbi5hbmNlc3Rvck9yaWdpbnM7aWYoZSl7dmFyIGY9ZVtlLmxlbmd0aC0xXSxnO2YmJigoZz1iKT09bnVsbD92b2lkIDA6Zy5pbmRleE9mKGYpKT09PS0xJiYoYz0hMSxiPWYpfXJldHVybnt1cmw6YixJczpjfX1mdW5jdGlvbiBFcChhKXt0cnl7dmFyIGI7aWYoYj0hIWEmJmEubG9jYXRpb24uaHJlZiE9bnVsbClhOnt0cnl7SG4oYS5mb28pO2I9ITA7YnJlYWsgYX1jYXRjaChjKXt9Yj0hMX1yZXR1cm4gYn1jYXRjaChjKXtyZXR1cm4hMX19ZnVuY3Rpb24gRnAoKXtmb3IodmFyIGE9QSxiPWE7YSYmYSE9PWEucGFyZW50OylhPWEucGFyZW50LEVwKGEpJiYoYj1hKTtyZXR1cm4gYn07dmFyIEdwPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZnVuY3Rpb24oKXt9O2MucHJvdG90eXBlPWEucHJvdG90eXBlO3ZhciBkPW5ldyBjO2EuYXBwbHkoZCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpO3JldHVybiBkfSxIcD1mdW5jdGlvbihhKXt2YXIgYj1hO3JldHVybiBmdW5jdGlvbigpe2lmKGIpe3ZhciBjPWI7Yj1udWxsO2MoKX19fTtmdW5jdGlvbiBJcChhLGIpe2lmKGEpZm9yKHZhciBjIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYykmJmIoYVtjXSxjLGEpfTtmdW5jdGlvbiBKcChhKXt2YXIgYj1hLnNwbGl0KC9bPyNdLyksYz0vWz9dLy50ZXN0KGEpPyI/IitiWzFdOiIiO3JldHVybnt6azpiWzBdLHBhcmFtczpjLGZyYWdtZW50Oi9bI10vLnRlc3QoYSk/IiMiKyhjP2JbMl06YlsxXSk6IiJ9fWZ1bmN0aW9uIEtwKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKTtpZihiLmxlbmd0aD09PTApcmV0dXJuIGpjKGFbMF0pO2Zvcih2YXIgYz1hWzBdLGQ9MDtkPGIubGVuZ3RoO2QrKyljKz1lbmNvZGVVUklDb21wb25lbnQoYltkXSkrYVtkKzFdO3JldHVybiBqYyhjKX0KZnVuY3Rpb24gTHAoYSxiLGMsZCl7ZnVuY3Rpb24gZShnLGgpe2chPW51bGwmJihBcnJheS5pc0FycmF5KGcpP2cuZm9yRWFjaChmdW5jdGlvbihsKXtyZXR1cm4gZShsLGgpfSk6KGIrPWYrZW5jb2RlVVJJQ29tcG9uZW50KGgpKyI9IitlbmNvZGVVUklDb21wb25lbnQoZyksZj0iJiIpKX12YXIgZj1iLmxlbmd0aD8iJiI6Ij8iO2QuY29uc3RydWN0b3I9PT1PYmplY3QmJihkPU9iamVjdC5lbnRyaWVzKGQpKTtBcnJheS5pc0FycmF5KGQpP2QuZm9yRWFjaChmdW5jdGlvbihnKXtyZXR1cm4gZShnWzFdLGdbMF0pfSk6ZC5mb3JFYWNoKGUpO3JldHVybiBqYyhhK2IrYyl9ZnVuY3Rpb24gTXAoYSxiKXt2YXIgYz1KcChrYyhhKS50b1N0cmluZygpKSxkPWMuemsuc2xpY2UoLTEpPT09Ii8iPyIiOiIvIixlPWMuemsrZCtlbmNvZGVVUklDb21wb25lbnQoYik7cmV0dXJuIGpjKGUrYy5wYXJhbXMrYy5mcmFnbWVudCl9O3ZhciBOcD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLGQ9MDtkPDUwOysrZCl7dmFyIGU7dHJ5e2U9ISghYy5mcmFtZXN8fCFjLmZyYW1lc1tiXSl9Y2F0Y2goaCl7ZT0hMX1pZihlKXJldHVybiBjO3ZhciBmO2E6e3RyeXt2YXIgZz1jLnBhcmVudDtpZihnJiZnIT09Yyl7Zj1nO2JyZWFrIGF9fWNhdGNoKGgpe31mPW51bGx9aWYoIShjPWYpKWJyZWFrfXJldHVybiBudWxsfSxPcD1mdW5jdGlvbihhKXt2YXIgYj1BO2lmKGIudG9wPT1iKXJldHVybiAwO2lmKGE9PT12b2lkIDA/MDphKXt2YXIgYz1iLmxvY2F0aW9uLmFuY2VzdG9yT3JpZ2lucztpZihjKXJldHVybiBjW2MubGVuZ3RoLTFdPT1iLmxvY2F0aW9uLm9yaWdpbj8xOjJ9cmV0dXJuIEVwKGIudG9wKT8xOjJ9LFBwPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9kb2N1bWVudDphO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoImltZyIpfTtmdW5jdGlvbiBRcChhKXtmb3IodmFyIGI9W10sYz1CLmNvb2tpZS5zcGxpdCgiOyIpLGQ9bmV3IFJlZ0V4cCgiXlxccyoiKyhhfHwiX2dhYyIpKyJfKFVBLVxcZCstXFxkKyk9XFxzKiguKz8pXFxzKiQiKSxlPTA7ZTxjLmxlbmd0aDtlKyspe3ZhciBmPWNbZV0ubWF0Y2goZCk7ZiYmYi5wdXNoKHt1ZDpmWzFdLHZhbHVlOmZbMl0sdGltZXN0YW1wOk51bWJlcihmWzJdLnNwbGl0KCIuIilbMV0pfHwwfSl9Yi5zb3J0KGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGgudGltZXN0YW1wLWcudGltZXN0YW1wfSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIFJwKGEsYil7dmFyIGM9UXAoYSksZD17fTtpZighY3x8IWMubGVuZ3RoKXJldHVybiBkO2Zvcih2YXIgZT0wO2U8Yy5sZW5ndGg7ZSsrKXt2YXIgZj1jW2VdLnZhbHVlLnNwbGl0KCIuIik7aWYoIShmWzBdIT09IjEifHxiJiZmLmxlbmd0aDwzfHwhYiYmZi5sZW5ndGghPT0zKSYmTnVtYmVyKGZbMV0pKXtkW2NbZV0udWRdfHwoZFtjW2VdLnVkXT1bXSk7dmFyIGc9e3ZlcnNpb246ZlswXSx0aW1lc3RhbXA6TnVtYmVyKGZbMV0pKjFFMyxnY2xpZDpmWzJdfTtiJiZmLmxlbmd0aD4zJiYoZy5sYWJlbHM9Zi5zbGljZSgzKSk7ZFtjW2VdLnVkXS5wdXNoKGcpfX1yZXR1cm4gZH07ZnVuY3Rpb24gU3AoYSl7cmV0dXJuIGEub3JpZ2luIT09Im51bGwifTt2YXIgVHA9e30sVXA9KFRwLms9e25hOi9eW1x3LV0rJC99LFRwLmI9e25hOi9eW1x3LV0rJC8sbms6ITB9LFRwLmk9e25hOi9eWzEtOV1cZCokL30sVHAuaD17bmE6L15cZCskL30sVHAudD17bmE6L15bMS05XVxkKiQvfSxUcC5kPXtuYTovXltBLVphLXowLTlfLV0rJC99LFRwLmo9e25hOi9eXGQrJC99LFRwLnU9e25hOi9eWzEtOV1cZCokL30sVHAubD17bmE6L15bMDFdJC99LFRwLm89e25hOi9eWzEtOV1cZCokL30sVHAuZz17bmE6L15bMDFdJC99LFRwLnM9e25hOi9eLiskL30sVHAubT17bmE6L15bMDFdJC99LFRwKTt2YXIgVnA9e30sWnA9KFZwWzVdPXtqaTp7MjpXcH0sWmo6IjIiLFJoOlsiayIsImkiLCJiIiwidSJdfSxWcFs0XT17amk6ezI6V3AsR0NMOlhwfSxaajoiMiIsUmg6WyJrIiwiaSIsImIiLCJtIl19LFZwWzJdPXtqaTp7R1MyOldwLEdTMTpZcH0sWmo6IkdTMiIsUmg6InNvZ3RqbGhkIi5zcGxpdCgiIil9LFZwKTtmdW5jdGlvbiAkcChhLGIsYyl7dmFyIGQ9WnBbYl07aWYoZCl7dmFyIGU9YS5zcGxpdCgiLiIpWzBdO2M9PW51bGx8fGMoZSk7aWYoZSl7dmFyIGY9ZC5qaVtlXTtpZihmKXJldHVybiBmKGEsYil9fX0KZnVuY3Rpb24gV3AoYSxiKXt2YXIgYz1hLnNwbGl0KCIuIik7aWYoYy5sZW5ndGg9PT0zKXt2YXIgZD1jWzJdO2lmKGQuaW5kZXhPZigiJCIpPT09LTEmJmQuaW5kZXhPZigiJTI0IikhPT0tMSl0cnl7ZD1kZWNvZGVVUklDb21wb25lbnQoZCl9Y2F0Y2godCl7fXZhciBlPXt9LGY9WnBbYl07aWYoZil7Zm9yKHZhciBnPWYuUmgsaD1tKGQuc3BsaXQoIiQiKSksbD1oLm5leHQoKTshbC5kb25lO2w9aC5uZXh0KCkpe3ZhciBuPWwudmFsdWUscD1uWzBdO2lmKGcuaW5kZXhPZihwKSE9PS0xKXRyeXt2YXIgcT1kZWNvZGVVUklDb21wb25lbnQobi5zdWJzdHJpbmcoMSkpLHI9VXBbcF07ciYmKHIubms/KGVbcF09ZVtwXXx8W10sZVtwXS5wdXNoKHEpKTplW3BdPXEpfWNhdGNoKHQpe319cmV0dXJuIGV9fX1mdW5jdGlvbiBhcShhLGIsYyl7dmFyIGQ9WnBbYl07aWYoZClyZXR1cm5bZC5aaixjfHwiMSIsYnEoYSxiKV0uam9pbigiLiIpfQpmdW5jdGlvbiBicShhLGIpe3ZhciBjPVpwW2JdO2lmKGMpe2Zvcih2YXIgZD1bXSxlPW0oYy5SaCksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1VcFtnXTtpZihoKXt2YXIgbD1hW2ddO2lmKGwhPT12b2lkIDApaWYoaC5uayYmQXJyYXkuaXNBcnJheShsKSlmb3IodmFyIG49bShsKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSlkLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCIiK2crcC52YWx1ZSkpO2Vsc2UgZC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiIitnK2wpKX19cmV0dXJuIGQuam9pbigiJCIpfX1mdW5jdGlvbiBYcChhKXt2YXIgYj1hLnNwbGl0KCIuIik7Yi5zaGlmdCgpO3ZhciBjPWIuc2hpZnQoKSxkPWIuc2hpZnQoKSxlPXt9O3JldHVybiBlLms9ZCxlLmk9YyxlLmI9YixlfQpmdW5jdGlvbiBZcChhKXt2YXIgYj1hLnNwbGl0KCIuIikuc2xpY2UoMik7aWYoIShiLmxlbmd0aDw1fHxiLmxlbmd0aD43KSl7dmFyIGM9e307cmV0dXJuIGMucz1iWzBdLGMubz1iWzFdLGMuZz1iWzJdLGMudD1iWzNdLGMuaj1iWzRdLGMubD1iWzVdLGMuaD1iWzZdLGN9fTtmdW5jdGlvbiBjcShhLGIsYyxkKXt2YXIgZTtyZXR1cm4oZT1kcShmdW5jdGlvbihmKXtyZXR1cm4gZj09PWF9LGIsYyxkKVthXSkhPW51bGw/ZTpbXX1mdW5jdGlvbiBkcShhLGIsYyxkKXt2YXIgZTtpZihlcShkKSl7Zm9yKHZhciBmPXt9LGc9U3RyaW5nKGJ8fGZxKCkpLnNwbGl0KCI7IiksaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgbD1nW2hdLnNwbGl0KCI9Iiksbj1sWzBdLnRyaW0oKTtpZihuJiZhKG4pKXt2YXIgcD1sLnNsaWNlKDEpLmpvaW4oIj0iKS50cmltKCk7cCYmYyYmKHA9ZGVjb2RlVVJJQ29tcG9uZW50KHApKTt2YXIgcT12b2lkIDAscj12b2lkIDA7KChxPWYpW3I9bl18fChxW3JdPVtdKSkucHVzaChwKX19ZT1mfWVsc2UgZT17fTtyZXR1cm4gZX0KZnVuY3Rpb24gZ3EoYSxiLGMsZCxlKXtpZihlcShlKSl7dmFyIGY9aHEoYSxkLGUpO2lmKGYubGVuZ3RoPT09MSlyZXR1cm4gZlswXTtpZihmLmxlbmd0aCE9PTApe2Y9aXEoZixmdW5jdGlvbihnKXtyZXR1cm4gZy5Kcn0sYik7aWYoZi5sZW5ndGg9PT0xKXJldHVybiBmWzBdO2Y9aXEoZixmdW5jdGlvbihnKXtyZXR1cm4gZy5Xc30sYyk7cmV0dXJuIGZbMF19fX1mdW5jdGlvbiBqcShhLGIsYyxkKXt2YXIgZT1mcSgpLGY9QTtTcChmKSYmKGYuZG9jdW1lbnQuY29va2llPWEpO3ZhciBnPWZxKCk7cmV0dXJuIGUhPT1nfHxjIT09dm9pZCAwJiZjcShiLGcsITEsZCkuaW5kZXhPZihjKT49MH0KZnVuY3Rpb24ga3EoYSxiLGMsZCl7ZnVuY3Rpb24gZSh4LHkseil7aWYoej09bnVsbClyZXR1cm4gZGVsZXRlIGhbeV0seDtoW3ldPXo7cmV0dXJuIHgrIjsgIit5KyI9Iit6fWZ1bmN0aW9uIGYoeCx5KXtpZih5PT1udWxsKXJldHVybiB4O2hbeV09ITA7cmV0dXJuIHgrIjsgIit5fWlmKCFlcShjLk1jKSlyZXR1cm4gMjt2YXIgZztiPT1udWxsP2c9YSsiPWRlbGV0ZWQ7IGV4cGlyZXM9IisobmV3IERhdGUoMCkpLnRvVVRDU3RyaW5nKCk6KGMuZW5jb2RlJiYoYj1lbmNvZGVVUklDb21wb25lbnQoYikpLGI9bHEoYiksZz1hKyI9IitiKTt2YXIgaD17fTtnPWUoZywicGF0aCIsYy5wYXRoKTt2YXIgbDtjLmV4cGlyZXMgaW5zdGFuY2VvZiBEYXRlP2w9Yy5leHBpcmVzLnRvVVRDU3RyaW5nKCk6Yy5leHBpcmVzIT1udWxsJiYobD0iIitjLmV4cGlyZXMpO2c9ZShnLCJleHBpcmVzIixsKTtnPWUoZywibWF4LWFnZSIsYy5Pcyk7Zz1lKGcsInNhbWVzaXRlIixjLnJ0KTtjLnNlY3VyZSYmCihnPWYoZywic2VjdXJlIikpO3ZhciBuPWMuZG9tYWluO2lmKG4mJm4udG9Mb3dlckNhc2UoKT09PSJhdXRvIil7Zm9yKHZhciBwPW1xKCkscT12b2lkIDAscj0hMSx0PTA7dDxwLmxlbmd0aDsrK3Qpe3ZhciB1PXBbdF0hPT0ibm9uZSI/cFt0XTp2b2lkIDAsdj1lKGcsImRvbWFpbiIsdSk7dj1mKHYsYy5mbGFncyk7dHJ5e2QmJmQoYSxoKX1jYXRjaCh4KXtxPXg7Y29udGludWV9cj0hMDtpZighbnEodSxjLnBhdGgpJiZqcSh2LGEsYixjLk1jKSlyZXR1cm4gMH1pZihxJiYhcil0aHJvdyBxO3JldHVybiAxfW4mJm4udG9Mb3dlckNhc2UoKSE9PSJub25lIiYmKGc9ZShnLCJkb21haW4iLG4pKTtnPWYoZyxjLmZsYWdzKTtkJiZkKGEsaCk7cmV0dXJuIG5xKG4sYy5wYXRoKT8xOmpxKGcsYSxiLGMuTWMpPzA6MX1mdW5jdGlvbiBvcShhLGIsYyl7Yy5wYXRoPT1udWxsJiYoYy5wYXRoPSIvIik7Yy5kb21haW58fChjLmRvbWFpbj0iYXV0byIpO3JldHVybiBrcShhLGIsYyl9CmZ1bmN0aW9uIGlxKGEsYixjKXtmb3IodmFyIGQ9W10sZT1bXSxmLGc9MDtnPGEubGVuZ3RoO2crKyl7dmFyIGg9YVtnXSxsPWIoaCk7bD09PWM/ZC5wdXNoKGgpOmY9PT12b2lkIDB8fGw8Zj8oZT1baF0sZj1sKTpsPT09ZiYmZS5wdXNoKGgpfXJldHVybiBkLmxlbmd0aD4wP2Q6ZX1mdW5jdGlvbiBocShhLGIsYyl7Zm9yKHZhciBkPVtdLGU9Y3EoYSx2b2lkIDAsdm9pZCAwLGMpLGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGc9ZVtmXS5zcGxpdCgiLiIpLGg9Zy5zaGlmdCgpO2lmKCFifHwhaHx8Yi5pbmRleE9mKGgpIT09LTEpe3ZhciBsPWcuc2hpZnQoKTtpZihsKXt2YXIgbj1sLnNwbGl0KCItIik7ZC5wdXNoKHtCcjplW2ZdLENyOmcuam9pbigiLiIpLEpyOk51bWJlcihuWzBdKXx8MSxXczpOdW1iZXIoblsxXSl8fDF9KX19fXJldHVybiBkfWZ1bmN0aW9uIGxxKGEpe2EmJmEubGVuZ3RoPjEyMDAmJihhPWEuc3Vic3RyaW5nKDAsMTIwMCkpO3JldHVybiBhfQp2YXIgcHE9L14od3d3XC4pP2dvb2dsZShcLmNvbT8pPyhcLlthLXpdezJ9KT8kLyxxcT0vKF58XC4pZG91YmxlY2xpY2tcLm5ldCQvaTtmdW5jdGlvbiBucShhLGIpe3JldHVybiBhIT09dm9pZCAwJiYocXEudGVzdChBLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKXx8Yj09PSIvIiYmcHEudGVzdChhKSl9ZnVuY3Rpb24gcnEoYSl7aWYoIWEpcmV0dXJuIDE7dmFyIGI9YTtZZig0KSYmYT09PSJub25lIiYmKGI9QS5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSk7Yj1iLmluZGV4T2YoIi4iKT09PTA/Yi5zdWJzdHJpbmcoMSk6YjtyZXR1cm4gYi5zcGxpdCgiLiIpLmxlbmd0aH1mdW5jdGlvbiBzcShhKXtpZighYXx8YT09PSIvIilyZXR1cm4gMTthWzBdIT09Ii8iJiYoYT0iLyIrYSk7YVthLmxlbmd0aC0xXSE9PSIvIiYmKGErPSIvIik7cmV0dXJuIGEuc3BsaXQoIi8iKS5sZW5ndGgtMX0KZnVuY3Rpb24gdHEoYSxiKXt2YXIgYz0iIitycShhKSxkPXNxKGIpO2Q+MSYmKGMrPSItIitkKTtyZXR1cm4gY30KdmFyIGZxPWZ1bmN0aW9uKCl7dmFyIGE9QTtyZXR1cm4gU3AoYSk/YS5kb2N1bWVudC5jb29raWU6IiJ9LGVxPWZ1bmN0aW9uKGEpe3JldHVybiBhJiZZZig1KT8oQXJyYXkuaXNBcnJheShhKT9hOlthXSkuZXZlcnkoZnVuY3Rpb24oYil7cmV0dXJuIERsKGIpJiZCbChiKX0pOiEwfSxtcT1mdW5jdGlvbigpe3ZhciBhPVtdLGI9QS5kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZS5zcGxpdCgiLiIpO2lmKGIubGVuZ3RoPT09NCl7dmFyIGM9YltiLmxlbmd0aC0xXTtpZihOdW1iZXIoYykudG9TdHJpbmcoKT09PWMpcmV0dXJuWyJub25lIl19Zm9yKHZhciBkPWIubGVuZ3RoLTI7ZD49MDtkLS0pYS5wdXNoKGIuc2xpY2UoZCkuam9pbigiLiIpKTt2YXIgZT1BLmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lO3FxLnRlc3QoZSl8fHBxLnRlc3QoZSl8fGEucHVzaCgibm9uZSIpO3JldHVybiBhfTtmdW5jdGlvbiB1cShhLGIsYyxkKXt2YXIgZSxmPU51bWJlcihhLnBkIT1udWxsP2EucGQ6dm9pZCAwKTtmIT09MCYmKGU9bmV3IERhdGUoKGJ8fE5iKCkpKzFFMyooZnx8Nzc3NkUzKSkpO3JldHVybntwYXRoOmEucGF0aCxkb21haW46YS5kb21haW4sZmxhZ3M6YS5mbGFncyxlbmNvZGU6ISFjLGV4cGlyZXM6ZSxNYzpkfX07dmFyIHZxPW5ldyBNYXAoW1s1LCJhZF9zdG9yYWdlIl0sWzQsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl1dLFsyLCJhbmFseXRpY3Nfc3RvcmFnZSJdXSk7ZnVuY3Rpb24gd3EoYSxiLGMpe2lmKFpwW2JdKXtmb3IodmFyIGQ9W10sZT1jcShhLHZvaWQgMCx2b2lkIDAsdnEuZ2V0KGIpKSxmPW0oZSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPSRwKGcudmFsdWUsYixjKTtoJiZkLnB1c2goeHEoaCkpfXJldHVybiBkfX0KZnVuY3Rpb24geXEoYSl7dmFyIGI9enE7aWYoWnBbMl0pe2Zvcih2YXIgYz17fSxkPWRxKGEsdm9pZCAwLHZvaWQgMCx2cS5nZXQoMikpLGU9T2JqZWN0LmtleXMoZCkuc29ydCgpLGY9bShlKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSlmb3IodmFyIGg9Zy52YWx1ZSxsPW0oZFtoXSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPSRwKG4udmFsdWUsMixiKTtwJiYoY1toXXx8KGNbaF09W10pLGNbaF0ucHVzaCh4cShwKSkpfXJldHVybiBjfX1mdW5jdGlvbiBBcShhLGIsYyxkLGUpe2Q9ZHx8e307dmFyIGY9dHEoZC5kb21haW4sZC5wYXRoKSxnPWFxKGIsYyxmKTtpZighZylyZXR1cm4gMTt2YXIgaD11cShkLGUsdm9pZCAwLHZxLmdldChjKSk7cmV0dXJuIG9xKGEsZyxoKX1mdW5jdGlvbiBCcShhLGIpe3ZhciBjPWIubmE7cmV0dXJuIHR5cGVvZiBjPT09ImZ1bmN0aW9uIj9jKGEpOmMudGVzdChhKX0KZnVuY3Rpb24geHEoYSl7Zm9yKHZhciBiPW0oT2JqZWN0LmtleXMoYSkpLGM9Yi5uZXh0KCksZD17fTshYy5kb25lO2Q9e0FnOnZvaWQgMH0sYz1iLm5leHQoKSl7dmFyIGU9Yy52YWx1ZSxmPWFbZV07ZC5BZz1VcFtlXTtkLkFnP2QuQWcubms/YVtlXT1BcnJheS5pc0FycmF5KGYpP2YuZmlsdGVyKGZ1bmN0aW9uKGcpe3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gQnEoaCxnLkFnKX19KGQpKTp2b2lkIDA6dHlwZW9mIGY9PT0ic3RyaW5nIiYmQnEoZixkLkFnKXx8KGFbZV09dm9pZCAwKTphW2VdPXZvaWQgMH1yZXR1cm4gYX07dmFyIENxO2Z1bmN0aW9uIERxKCl7ZnVuY3Rpb24gYShnKXtjKGcudGFyZ2V0fHxnLnNyY0VsZW1lbnR8fHt9KX1mdW5jdGlvbiBiKGcpe2QoZy50YXJnZXR8fGcuc3JjRWxlbWVudHx8e30pfXZhciBjPUVxLGQ9RnEsZT1HcSgpO2lmKCFlLmluaXQpeyRjKEIsIm1vdXNlZG93biIsYSk7JGMoQiwia2V5dXAiLGEpOyRjKEIsInN1Ym1pdCIsYik7dmFyIGY9SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ7SFRNTEZvcm1FbGVtZW50LnByb3RvdHlwZS5zdWJtaXQ9ZnVuY3Rpb24oKXtkKHRoaXMpO2YuY2FsbCh0aGlzKX07ZS5pbml0PSEwfX1mdW5jdGlvbiBIcShhLGIsYyxkLGUpe3ZhciBmPXtjYWxsYmFjazphLGRvbWFpbnM6YixmcmFnbWVudDpjPT09MixwbGFjZW1lbnQ6Yyxmb3JtczpkLHNhbWVIb3N0OmV9O0dxKCkuZGVjb3JhdG9ycy5wdXNoKGYpfQpmdW5jdGlvbiBJcShhLGIsYyl7Zm9yKHZhciBkPUdxKCkuZGVjb3JhdG9ycyxlPXt9LGY9MDtmPGQubGVuZ3RoOysrZil7dmFyIGc9ZFtmXSxoO2lmKGg9IWN8fGcuZm9ybXMpYTp7dmFyIGw9Zy5kb21haW5zLG49YSxwPSEhZy5zYW1lSG9zdDtpZihsJiYocHx8biE9PUIubG9jYXRpb24uaG9zdG5hbWUpKWZvcih2YXIgcT0wO3E8bC5sZW5ndGg7cSsrKWlmKGxbcV1pbnN0YW5jZW9mIFJlZ0V4cCl7aWYobFtxXS50ZXN0KG4pKXtoPSEwO2JyZWFrIGF9fWVsc2UgaWYobi5pbmRleE9mKGxbcV0pPj0wfHxwJiZsW3FdLmluZGV4T2Yobik+PTApe2g9ITA7YnJlYWsgYX1oPSExfWlmKGgpe3ZhciByPWcucGxhY2VtZW50O3I9PT12b2lkIDAmJihyPWcuZnJhZ21lbnQ/MjoxKTtyPT09YiYmUWIoZSxnLmNhbGxiYWNrKCkpfX1yZXR1cm4gZX0KZnVuY3Rpb24gR3EoKXt2YXIgYT1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSksYj1hLmdsO2ImJmIuZGVjb3JhdG9yc3x8KGI9e2RlY29yYXRvcnM6W119LGEuZ2w9Yik7cmV0dXJuIGJ9O3ZhciBKcT0vKC4qPylcKiguKj8pXCooLiopLyxLcT0vXmh0dHBzPzpcL1wvKFteXC9dKj8pXC4/Y2RuXC5hbXBwcm9qZWN0XC5vcmdcLz8oLiopLyxMcT0vXig/Ond3d1wufG1cLnxhbXBcLikrLyxNcT0vKFtePyNdKykoXD9bXiNdKik/KCMuKik/LztmdW5jdGlvbiBOcShhKXt2YXIgYj1NcS5leGVjKGEpO2lmKGIpcmV0dXJue2hrOmJbMV0scXVlcnk6YlsyXSxmcmFnbWVudDpiWzNdfX1mdW5jdGlvbiBPcShhKXtyZXR1cm4gbmV3IFJlZ0V4cCgiKC4qPykoXnwmKSIrYSsiPShbXiZdKikmPyguKikiKX0KZnVuY3Rpb24gUHEoYSxiKXt2YXIgYz1bSGMudXNlckFnZW50LChuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKSxIYy51c2VyTGFuZ3VhZ2V8fEhjLmxhbmd1YWdlLE1hdGguZmxvb3IoTmIoKS82MC8xRTMpLShiPT09dm9pZCAwPzA6YiksYV0uam9pbigiKiIpLGQ7aWYoIShkPUNxKSl7Zm9yKHZhciBlPUFycmF5KDI1NiksZj0wO2Y8MjU2O2YrKyl7Zm9yKHZhciBnPWYsaD0wO2g8ODtoKyspZz1nJjE/Zz4+PjFeMzk4ODI5MjM4NDpnPj4+MTtlW2ZdPWd9ZD1lfUNxPWQ7Zm9yKHZhciBsPTQyOTQ5NjcyOTUsbj0wO248Yy5sZW5ndGg7bisrKWw9bD4+PjheQ3FbKGxeYy5jaGFyQ29kZUF0KG4pKSYyNTVdO3JldHVybigobF4tMSk+Pj4wKS50b1N0cmluZygzNil9CmZ1bmN0aW9uIFFxKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1SaihBLmxvY2F0aW9uLmhyZWYpLGQ9Yy5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLGU9SWooZCwiX2dsIiwhMSwhMCl8fCIiO2IucXVlcnk9UnEoZSl8fHt9O3ZhciBmPUxqKGMsImZyYWdtZW50IiksZzt2YXIgaD0tMTtpZihTYihmLCJfZ2w9IikpaD00O2Vsc2V7dmFyIGw9Zi5pbmRleE9mKCImX2dsPSIpO2w+MCYmKGg9bCszKzIpfWlmKGg8MClnPXZvaWQgMDtlbHNle3ZhciBuPWYuaW5kZXhPZigiJiIsaCk7Zz1uPDA/Zi5zdWJzdHJpbmcoaCk6Zi5zdWJzdHJpbmcoaCxuKX1iLmZyYWdtZW50PVJxKGd8fCIiKXx8e307YSYmU3EoYyxkLGYpfX1mdW5jdGlvbiBUcShhLGIpe3ZhciBjPU9xKGEpLmV4ZWMoYiksZD1iO2lmKGMpe3ZhciBlPWNbMl0sZj1jWzRdO2Q9Y1sxXTtmJiYoZD1kK2UrZil9cmV0dXJuIGR9CmZ1bmN0aW9uIFNxKGEsYixjKXtmdW5jdGlvbiBkKGcsaCl7dmFyIGw9VHEoIl9nbCIsZyk7bC5sZW5ndGgmJihsPWgrbCk7cmV0dXJuIGx9aWYoR2MmJkdjLnJlcGxhY2VTdGF0ZSl7dmFyIGU9T3EoIl9nbCIpO2lmKGUudGVzdChiKXx8ZS50ZXN0KGMpKXt2YXIgZj1MaihhLCJwYXRoIik7Yj1kKGIsIj8iKTtjPWQoYywiIyIpO0djLnJlcGxhY2VTdGF0ZSh7fSwiIiwiIitmK2IrYyl9fX1mdW5jdGlvbiBVcShhLGIpe3ZhciBjPVFxKCEhYiksZD1HcSgpO2QuZGF0YXx8KGQuZGF0YT17cXVlcnk6e30sZnJhZ21lbnQ6e319LGMoZC5kYXRhKSk7dmFyIGU9e30sZj1kLmRhdGE7ZiYmKFFiKGUsZi5xdWVyeSksYSYmUWIoZSxmLmZyYWdtZW50KSk7cmV0dXJuIGV9CnZhciBScT1mdW5jdGlvbihhKXt0cnl7dmFyIGI9VnEoYSwzKTtpZihiIT09dm9pZCAwKXtmb3IodmFyIGM9e30sZD1iP2Iuc3BsaXQoIioiKTpbXSxlPTA7ZSsxPGQubGVuZ3RoO2UrPTIpe3ZhciBmPWRbZV0sZz1xYihkW2UrMV0pO2NbZl09Z31zYigiVEFHR0lORyIsNik7cmV0dXJuIGN9fWNhdGNoKGgpe3NiKCJUQUdHSU5HIiw4KX19O2Z1bmN0aW9uIFZxKGEsYil7aWYoYSl7dmFyIGM7YTp7Zm9yKHZhciBkPWEsZT0wO2U8MzsrK2Upe3ZhciBmPUpxLmV4ZWMoZCk7aWYoZil7Yz1mO2JyZWFrIGF9ZD1LaihkKXx8IiJ9Yz12b2lkIDB9dmFyIGc9YztpZihnJiZnWzFdPT09IjEiKXt2YXIgaD1nWzNdLGw7YTp7Zm9yKHZhciBuPWdbMl0scD0wO3A8YjsrK3ApaWYobj09PVBxKGgscCkpe2w9ITA7YnJlYWsgYX1sPSExfWlmKGwpcmV0dXJuIGg7c2IoIlRBR0dJTkciLDcpfX19CmZ1bmN0aW9uIFdxKGEsYixjLGQsZSl7ZnVuY3Rpb24gZihwKXtwPVRxKGEscCk7dmFyIHE9cC5jaGFyQXQocC5sZW5ndGgtMSk7cCYmcSE9PSImIiYmKHArPSImIik7cmV0dXJuIHArbn1kPWQ9PT12b2lkIDA/ITE6ZDtlPWU9PT12b2lkIDA/ITE6ZTt2YXIgZz1OcShjKTtpZighZylyZXR1cm4iIjt2YXIgaD1nLnF1ZXJ5fHwiIixsPWcuZnJhZ21lbnR8fCIiLG49YSsiPSIrYjtkP2wuc3Vic3RyaW5nKDEpLmxlbmd0aCE9PTAmJmV8fChsPSIjIitmKGwuc3Vic3RyaW5nKDEpKSk6aD0iPyIrZihoLnN1YnN0cmluZygxKSk7cmV0dXJuIiIrZy5oaytoK2x9CmZ1bmN0aW9uIFhxKGEsYil7ZnVuY3Rpb24gYyhuLHAscSl7dmFyIHI7YTp7Zm9yKHZhciB0IGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eSh0KSl7cj0hMDticmVhayBhfXI9ITF9aWYocil7dmFyIHUsdj1bXSx4O2Zvcih4IGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eSh4KSl7dmFyIHk9blt4XTt5IT09dm9pZCAwJiZ5PT09eSYmeSE9PW51bGwmJnkudG9TdHJpbmcoKSE9PSJbb2JqZWN0IE9iamVjdF0iJiYodi5wdXNoKHgpLHYucHVzaChwYihTdHJpbmcoeSkpKSl9dmFyIHo9di5qb2luKCIqIik7dT1bIjEiLFBxKHopLHpdLmpvaW4oIioiKTtkPyhZZigzKXx8WWYoMSl8fCFwKSYmWXEoIl9nbCIsdSxhLHAscSk6WnEoIl9nbCIsdSxhLHAscSl9fXZhciBkPShhLnRhZ05hbWV8fCIiKS50b1VwcGVyQ2FzZSgpPT09IkZPUk0iLGU9SXEoYiwxLGQpLGY9SXEoYiwyLGQpLGc9SXEoYiw0LGQpLGg9SXEoYiwzLGQpO2MoZSwhMSwhMSk7YyhmLCEwLCExKTtZZigxKSYmYyhnLCEwLCEwKTtmb3IodmFyIGwgaW4gaCloLmhhc093blByb3BlcnR5KGwpJiYKJHEobCxoW2xdLGEpfWZ1bmN0aW9uICRxKGEsYixjKXtjLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJhIj9acShhLGIsYyk6Yy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0iZm9ybSImJllxKGEsYixjKX1mdW5jdGlvbiBacShhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD8hMTpkO2U9ZT09PXZvaWQgMD8hMTplO3ZhciBmO2lmKGY9Yy5ocmVmKXt2YXIgZztpZighKGc9ZCkpe3ZhciBoPUEubG9jYXRpb24uaHJlZixsPU5xKGMuaHJlZiksbj1OcShoKTtnPSEobCYmbiYmbC5oaz09PW4uaGsmJmwucXVlcnk9PT1uLnF1ZXJ5JiZsLmZyYWdtZW50KX1mPWd9aWYoZil7dmFyIHA9V3EoYSxiLGMuaHJlZixkLGUpO3ZjLnRlc3QocCkmJihjLmhyZWY9cCl9fQpmdW5jdGlvbiBZcShhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD8hMTpkO2U9ZT09PXZvaWQgMD8hMTplO2lmKGMpe3ZhciBmPWMuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKXx8IiI7aWYoZil7dmFyIGc9KGMubWV0aG9kfHwiIikudG9Mb3dlckNhc2UoKTtpZihnIT09ImdldCJ8fGQpe2lmKGc9PT0iZ2V0Inx8Zz09PSJwb3N0Iil7dmFyIGg9V3EoYSxiLGYsZCxlKTt2Yy50ZXN0KGgpJiYoYy5hY3Rpb249aCl9fWVsc2V7Zm9yKHZhciBsPWMuY2hpbGROb2Rlc3x8W10sbj0hMSxwPTA7cDxsLmxlbmd0aDtwKyspe3ZhciBxPWxbcF07aWYocS5uYW1lPT09YSl7cS5zZXRBdHRyaWJ1dGUoInZhbHVlIixiKTtuPSEwO2JyZWFrfX1pZighbil7dmFyIHI9Qi5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3Iuc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIik7ci5zZXRBdHRyaWJ1dGUoIm5hbWUiLGEpO3Iuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsYik7Yy5hcHBlbmRDaGlsZChyKX19fX19CmZ1bmN0aW9uIEVxKGEpe3RyeXt2YXIgYjthOntmb3IodmFyIGM9YSxkPTEwMDtjJiZkPjA7KXtpZihjLmhyZWYmJmMubm9kZU5hbWUubWF0Y2goL15hKD86cmVhKT8kL2kpKXtiPWM7YnJlYWsgYX1jPWMucGFyZW50Tm9kZTtkLS19Yj1udWxsfXZhciBlPWI7aWYoZSl7dmFyIGY9ZS5wcm90b2NvbDtmIT09Imh0dHA6IiYmZiE9PSJodHRwczoifHxYcShlLGUuaG9zdG5hbWUpfX1jYXRjaChnKXt9fWZ1bmN0aW9uIEZxKGEpe3RyeXt2YXIgYj1hLmdldEF0dHJpYnV0ZSgiYWN0aW9uIik7aWYoYil7dmFyIGM9TGooUmooYiksImhvc3QiKTtYcShhLGMpfX1jYXRjaChkKXt9fWZ1bmN0aW9uIGFyKGEsYixjLGQpe0RxKCk7dmFyIGU9Yz09PSJmcmFnbWVudCI/MjoxO2Q9ISFkO0hxKGEsYixlLGQsITEpO2U9PT0yJiZzYigiVEFHR0lORyIsMjMpO2QmJnNiKCJUQUdHSU5HIiwyNCl9CmZ1bmN0aW9uIGJyKGEsYil7RHEoKTtIcShhLFtOaihBLmxvY2F0aW9uLCJob3N0IiwhMCldLGIsITAsITApfWZ1bmN0aW9uIGNyKCl7dmFyIGE9Qi5sb2NhdGlvbi5ob3N0bmFtZSxiPUtxLmV4ZWMoQi5yZWZlcnJlcik7aWYoIWIpcmV0dXJuITE7dmFyIGM9YlsyXSxkPWJbMV0sZT0iIjtpZihjKXt2YXIgZj1jLnNwbGl0KCIvIiksZz1mWzFdO2U9Zz09PSJzIj9LaihmWzJdKXx8IiI6S2ooZyl8fCIifWVsc2UgaWYoZCl7aWYoZC5pbmRleE9mKCJ4bi0tIik9PT0wKXJldHVybiExO2U9ZC5yZXBsYWNlKC8tL2csIi4iKS5yZXBsYWNlKC9cLlwuL2csIi0iKX12YXIgaD1hLnJlcGxhY2UoTHEsIiIpLGw9ZS5yZXBsYWNlKExxLCIiKTtyZXR1cm4gaD09PWx8fFRiKGgsIi4iK2wpfWZ1bmN0aW9uIGRyKGEsYil7cmV0dXJuIGE9PT0hMT8hMTphfHxifHxjcigpfTt2YXIgZXI9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZT0wO3RoaXMudmFsdWU9YT09PXZvaWQgMD8wOmF9O2VyLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWV8PTE8PGF9O3ZhciBmcj1mdW5jdGlvbihhLGIpe2I8PTB8fChhLnZhbHVlfD0xPDxiLTEpfTtlci5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O2VyLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbihhKXt0aGlzLnZhbHVlJj1+KDE8PGEpfTtlci5wcm90b3R5cGUuY2xlYXJBbGw9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPTB9O2VyLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudmFsdWU9PT1hLnZhbHVlfTtmdW5jdGlvbiBncihhKXtpZihhKXRyeXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYXRvYihhLnJlcGxhY2UoLy0vZywiKyIpLnJlcGxhY2UoL18vZywiLyIpKS5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmNoYXJDb2RlQXQoMCl9KSl9Y2F0Y2goYil7fX1mdW5jdGlvbiBocihhLGIpe3ZhciBjPTAsZD0wLGUsZj1iO2Rve2lmKGY+PWEubGVuZ3RoKXJldHVybjtlPWFbZisrXTtjfD0oZSYxMjcpPDxkO2QrPTd9d2hpbGUoZSYxMjgpO3JldHVybltjLGZdfTtmdW5jdGlvbiBpcigpe3ZhciBhPVN0cmluZyxiPUEubG9jYXRpb24uaG9zdG5hbWUsYz1BLmxvY2F0aW9uLnBhdGhuYW1lLGQ9Yj1iYyhiKTtkLnNwbGl0KCIuIikubGVuZ3RoPjImJihkPWQucmVwbGFjZSgvXih3d3dbMC05XSp8d2VifGZ0cHx3YXB8aG9tZXxtfHd8YW1wfG1vYmlsZSlcLi8sIiIpKTtiPWQ7Yz1iYyhjKTt2YXIgZT1jLnNwbGl0KCI7IilbMF07ZT1lLnJlcGxhY2UoL1wvKGFyfHNscHx3ZWJ8aW5kZXgpP1wvPyQvLCIiKTtyZXR1cm4gYShuZygoIiIrYitlKS50b0xvd2VyQ2FzZSgpKSl9O3ZhciBqcj1bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXTtmdW5jdGlvbiBrcihhLGIpe2lmKCFhKXJldHVybiBzYigiVEFHR0lORyIsMzIpLDEwO2lmKGI9PT1udWxsfHxiPT09dm9pZCAwfHxiPT09IiIpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMyksMTE7dmFyIGM9bHIoITEpO2lmKGMuZXJyb3IhPT0wKXJldHVybiBzYigiVEFHR0lORyIsMzQpLGMuZXJyb3I7aWYoIWMudmFsdWUpcmV0dXJuIHNiKCJUQUdHSU5HIiwzNSksMjtjLnZhbHVlW2FdPWI7dmFyIGQ9bXIoYyk7ZCE9PTAmJnNiKCJUQUdHSU5HIiwzNik7cmV0dXJuIGR9CmZ1bmN0aW9uIG5yKGEpe2lmKCFhKXJldHVybiBzYigiVEFHR0lORyIsMjcpLHtlcnJvcjoxMH07dmFyIGI9bHIoKTtpZihiLmVycm9yIT09MClyZXR1cm4gc2IoIlRBR0dJTkciLDI5KSxiO2lmKCFiLnZhbHVlKXJldHVybiBzYigiVEFHR0lORyIsMzApLHtlcnJvcjoyfTtpZighKGEgaW4gYi52YWx1ZSkpcmV0dXJuIHNiKCJUQUdHSU5HIiwzMSkse3ZhbHVlOnZvaWQgMCxlcnJvcjoxNX07dmFyIGM9Yi52YWx1ZVthXTtyZXR1cm4gYz09PW51bGx8fGM9PT12b2lkIDB8fGM9PT0iIj8oc2IoIlRBR0dJTkciLDI4KSx7dmFsdWU6dm9pZCAwLGVycm9yOjExfSk6e3ZhbHVlOmMsZXJyb3I6MH19CmZ1bmN0aW9uIG9yKGEpe2lmKGEpe3ZhciBiPWxyKCExKTtiLmVycm9yIT09MD9zYigiVEFHR0lORyIsMzgpOmIudmFsdWU/YSBpbiBiLnZhbHVlPyhkZWxldGUgYi52YWx1ZVthXSxtcihiKSE9PTAmJnNiKCJUQUdHSU5HIiw0MSkpOnNiKCJUQUdHSU5HIiw0MCk6c2IoIlRBR0dJTkciLDM5KX1lbHNlIHNiKCJUQUdHSU5HIiwzNyl9CmZ1bmN0aW9uIGxyKGEpe2E9YT09PXZvaWQgMD8hMDphO2lmKCFCbChqcikpcmV0dXJuIHNiKCJUQUdHSU5HIiw0Mykse2Vycm9yOjN9O3RyeXtpZighQS5sb2NhbFN0b3JhZ2UpcmV0dXJuIHNiKCJUQUdHSU5HIiw0NCkse2Vycm9yOjF9fWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDUpLHtlcnJvcjoxNH19dmFyIGI9e3NjaGVtYToiZ2NsIix2ZXJzaW9uOjF9LGM9dm9pZCAwO3RyeXtjPUEubG9jYWxTdG9yYWdlLmdldEl0ZW0oIl9nY2xfbHMiKX1jYXRjaChmKXtyZXR1cm4gc2IoIlRBR0dJTkciLDQ2KSx7ZXJyb3I6MTN9fXRyeXtpZihjKXt2YXIgZD1KU09OLnBhcnNlKGMpO2lmKGQmJnR5cGVvZiBkPT09Im9iamVjdCIpYj1kO2Vsc2UgcmV0dXJuIHNiKCJUQUdHSU5HIiw0Nykse2Vycm9yOjEyfX19Y2F0Y2goZil7cmV0dXJuIHNiKCJUQUdHSU5HIiw0OCkse2Vycm9yOjh9fWlmKGIuc2NoZW1hIT09ImdjbCIpcmV0dXJuIHNiKCJUQUdHSU5HIiw0OSkse2Vycm9yOjR9OwppZihiLnZlcnNpb24hPT0xKXJldHVybiBzYigiVEFHR0lORyIsNTApLHtlcnJvcjo1fTt0cnl7dmFyIGU9cHIoYik7YSYmZSYmbXIoe3ZhbHVlOmIsZXJyb3I6MH0pfWNhdGNoKGYpe3JldHVybiBzYigiVEFHR0lORyIsNDgpLHtlcnJvcjo4fX1yZXR1cm57dmFsdWU6YixlcnJvcjowfX0KZnVuY3Rpb24gcHIoYSl7aWYoIWF8fHR5cGVvZiBhIT09Im9iamVjdCIpcmV0dXJuITE7aWYoImV4cGlyZXMiaW4gYSYmInZhbHVlImluIGEpe3ZhciBiO3R5cGVvZiBhLmV4cGlyZXM9PT0ibnVtYmVyIj9iPWEuZXhwaXJlczpiPXR5cGVvZiBhLmV4cGlyZXM9PT0ic3RyaW5nIj9OdW1iZXIoYS5leHBpcmVzKTpOYU47aWYoaXNOYU4oYil8fCEoRGF0ZS5ub3coKTw9YikpcmV0dXJuIGEudmFsdWU9bnVsbCxhLmVycm9yPTksc2IoIlRBR0dJTkciLDU0KSwhMH1lbHNle2Zvcih2YXIgYz0hMSxkPW0oT2JqZWN0LmtleXMoYSkpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKWM9cHIoYVtlLnZhbHVlXSl8fGM7cmV0dXJuIGN9cmV0dXJuITF9CmZ1bmN0aW9uIG1yKGEpe2lmKGEuZXJyb3IpcmV0dXJuIGEuZXJyb3I7aWYoIWEudmFsdWUpcmV0dXJuIHNiKCJUQUdHSU5HIiw0MiksMjt2YXIgYj1hLnZhbHVlLGM7dHJ5e2M9SlNPTi5zdHJpbmdpZnkoYil9Y2F0Y2goZCl7cmV0dXJuIHNiKCJUQUdHSU5HIiw1MiksNn10cnl7QS5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiX2djbF9scyIsYyl9Y2F0Y2goZCl7cmV0dXJuIHNiKCJUQUdHSU5HIiw1MyksN31yZXR1cm4gMH07dmFyIHFyPXt9LHJyPShxci5nY2xpZD0hMCxxci5kY2xpZD0hMCxxci5nYnJhaWQ9ITAscXIud2JyYWlkPSEwLHFyKSxzcj0vXlx3KyQvLHRyPS9eW1x3LV0rJC8sdXI9e30sdnI9KHVyLmF3PSJGUEdDTEFXIix1ciksd3I9e30seHI9KHdyLmFnPSJfYWciLHdyLmdiPSJfZ2IiLHdyLmF3PSJfYXciLHdyLmRjPSJfZGMiLHdyLmdmPSJfZ2YiLHdyLmhhPSJfaGEiLHdyLmdwPSJfZ3AiLHdyLmdzPSJfZ3MiLHdyKSx5cj0vXig/Ond3d1wuKT9nb29nbGUoPzpcLmNvbT8pPyg/OlwuW2Etel17Mn10Pyk/JC8senI9L153d3dcLmdvb2dsZWFkc2VydmljZXNcLmNvbSQvO2Z1bmN0aW9uIEFyKCl7cmV0dXJuWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl19ZnVuY3Rpb24gQnIoYSl7cmV0dXJuIVlmKDUpfHxCbChhKX1mdW5jdGlvbiBDcihhLGIpe2Z1bmN0aW9uIGMoKXt2YXIgZD1CcihiKTtkJiZhKCk7cmV0dXJuIGR9SGwoZnVuY3Rpb24oKXtjKCl8fElsKGMsYil9LGIpfQpmdW5jdGlvbiBEcihhKXtyZXR1cm4gRXIoYSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiLmdjbGlkfSl9ZnVuY3Rpb24gRnIoYSl7cmV0dXJuIEdyKGEpLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gYi5nY2xpZH0pLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi5nY2xpZH0pfWZ1bmN0aW9uIEdyKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9SHIoYS5wcmVmaXgpLGQ9SXIoImdiIixjKSxlPUlyKCJhZyIsYyk7aWYoIWV8fCFkKXJldHVybltdO3ZhciBmPWZ1bmN0aW9uKGwpe3JldHVybiBmdW5jdGlvbihuKXtuLnpnPWw7cmV0dXJuIG59fSxnPUVyKGQsYikubWFwKGYoImdiIikpLGg9SnIoZSkubWFwKGYoImFnIikpO3JldHVybiBnLmNvbmNhdChoKS5zb3J0KGZ1bmN0aW9uKGwsbil7cmV0dXJuIG4udGltZXN0YW1wLWwudGltZXN0YW1wfSl9CmZ1bmN0aW9uIEtyKGEsYixjLGQsZSl7dmFyIGY9Q2IoYSxmdW5jdGlvbihnKXtyZXR1cm4gZy5nY2xpZD09PWJ9KTtmPyhmLnRpbWVzdGFtcDxjJiYoZi50aW1lc3RhbXA9YyxmLm9kPWUpLGYubGFiZWxzPUxyKGYubGFiZWxzfHxbXSxkfHxbXSkpOmEucHVzaCh7dmVyc2lvbjoiMiIsZ2NsaWQ6Yix0aW1lc3RhbXA6YyxsYWJlbHM6ZCxvZDplfSl9ZnVuY3Rpb24gTXIoYSl7Zm9yKHZhciBiPXdxKGEsNSl8fFtdLGM9W10sZD1tKGIpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlLGc9ZixoPU5yKGYpO2gmJktyKGMsZy5rLGgsZy5ifHxbXSxmLnUpfXJldHVybiBjLnNvcnQoZnVuY3Rpb24obCxuKXtyZXR1cm4gbi50aW1lc3RhbXAtbC50aW1lc3RhbXB9KX0KZnVuY3Rpb24gRXIoYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1bXTtPcihjLGEsMSk7aWYoYilpZihUYihhLCJfYXciKSl7dmFyIGQ9UHIoKTtkJiYoZC5vZD12b2lkIDAsZC5vYT1kLm9hfHxbMl0sUXIoYyxkKSk7T3IoYywiZ2NsX2F3IiwyKX1lbHNlIFRiKGEsIl9nYiIpJiZZZig2KSYmT3IoYywiZ2NsX2diIiwyKTtjLnNvcnQoZnVuY3Rpb24oZSxmKXtyZXR1cm4gZi50aW1lc3RhbXAtZS50aW1lc3RhbXB9KTtyZXR1cm4gUnIoYyl9ZnVuY3Rpb24gU3IoYSxiKXtmb3IodmFyIGM9W10sZD1tKGEpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2MuaW5jbHVkZXMoZil8fGMucHVzaChmKX1mb3IodmFyIGc9bShiKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9aC52YWx1ZTtjLmluY2x1ZGVzKGwpfHxjLnB1c2gobCl9cmV0dXJuIGN9CmZ1bmN0aW9uIFFyKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6Yztmb3IodmFyIGQsZSxmPW0oYSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7aWYoaC5nY2xpZD09PWIuZ2NsaWQpe2Q9aDticmVha31oLnFhJiZiLnFhJiZoLnFhLmVxdWFscyhiLnFhKSYmKGU9aCl9aWYoZCl7dmFyIGwsbixwPShsPWQucWEpIT1udWxsP2w6bmV3IGVyLHE9KG49Yi5xYSkhPW51bGw/bjpuZXcgZXI7cC52YWx1ZXw9cS52YWx1ZTtkLnFhPXA7ZC50aW1lc3RhbXA8Yi50aW1lc3RhbXAmJihkLnRpbWVzdGFtcD1iLnRpbWVzdGFtcCxkLm9kPWIub2QpO2QubGFiZWxzPVNyKGQubGFiZWxzfHxbXSxiLmxhYmVsc3x8W10pO2Qub2E9U3IoZC5vYXx8W10sYi5vYXx8W10pfWVsc2UgYyYmZT9uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGUsYik6YS5wdXNoKGIpfQpmdW5jdGlvbiBUcihhKXtpZighYSlyZXR1cm4gbmV3IGVyO3ZhciBiPW5ldyBlcjtpZihhPT09MSlyZXR1cm4gZnIoYiwyKSxmcihiLDMpLGI7ZnIoYixhKTtyZXR1cm4gYn0KZnVuY3Rpb24gUHIoKXt2YXIgYT1ucigiZ2NsaWQiKTtpZighYXx8YS5lcnJvcnx8IWEudmFsdWV8fHR5cGVvZiBhLnZhbHVlIT09Im9iamVjdCIpcmV0dXJuIG51bGw7dmFyIGI9YS52YWx1ZTt0cnl7aWYoISgidmFsdWUiaW4gYiYmYi52YWx1ZSl8fHR5cGVvZiBiLnZhbHVlIT09Im9iamVjdCIpcmV0dXJuIG51bGw7dmFyIGM9Yi52YWx1ZSxkPWMudmFsdWU7aWYoIWR8fCFkLm1hdGNoKHRyKSlyZXR1cm4gbnVsbDt2YXIgZT1jLmxpbmtEZWNvcmF0aW9uU291cmNlLGY9Yy5saW5rRGVjb3JhdGlvblNvdXJjZXMsZz1uZXcgZXI7dHlwZW9mIGU9PT0ibnVtYmVyIj9nPVRyKGUpOnR5cGVvZiBmPT09Im51bWJlciImJihnLnZhbHVlPWYpO3JldHVybnt2ZXJzaW9uOiIiLGdjbGlkOmQsdGltZXN0YW1wOk51bWJlcihjLmNyZWF0aW9uVGltZU1zKXx8MCxsYWJlbHM6W10scWE6ZyxvYTpbMl19fWNhdGNoKGgpe3JldHVybiBudWxsfX0KZnVuY3Rpb24gVXIoYSl7dmFyIGI9bnIoYSk7aWYoYi5lcnJvciE9PTApcmV0dXJuIG51bGw7dHJ5e3JldHVybiBiLnZhbHVlLnJlZHVjZShmdW5jdGlvbihjLGQpe2lmKCFkLnZhbHVlfHx0eXBlb2YgZC52YWx1ZSE9PSJvYmplY3QiKXJldHVybiBjO3ZhciBlPWQudmFsdWUsZj1lLnZhbHVlO2lmKCFmfHwhZi5tYXRjaCh0cikpcmV0dXJuIGM7dmFyIGc9bmV3IGVyLGg9ZS5saW5rRGVjb3JhdGlvblNvdXJjZXM7dHlwZW9mIGg9PT0ibnVtYmVyIiYmKGcudmFsdWU9aCk7dmFyIGw7Yy5wdXNoKHt2ZXJzaW9uOiIiLGdjbGlkOmYsdGltZXN0YW1wOk51bWJlcihlLmNyZWF0aW9uVGltZU1zKXx8MCxleHBpcmVzOk51bWJlcihkLmV4cGlyZXMpfHwwLGxhYmVsczoobD1lLmxhYmVscykhPW51bGw/bDpbXSxxYTpnLG9hOlsyXX0pO3JldHVybiBjfSxbXSl9Y2F0Y2goYyl7cmV0dXJuIG51bGx9fQpmdW5jdGlvbiBPcihhLGIsYyl7aWYoYz09PTEpZm9yKHZhciBkPWNxKGIsQi5jb29raWUsdm9pZCAwLEFyKCkpLGU9bShkKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9VnIoZi52YWx1ZS5zcGxpdCgiLiIpKSxoPWcubGVuZ3RoPT09MD9udWxsOnt2ZXJzaW9uOmdbMF0sZ2NsaWQ6Z1syXSx0aW1lc3RhbXA6KE51bWJlcihnWzFdKXx8MCkqMUUzLGxhYmVsczpnLnNsaWNlKDMpfTtoIT1udWxsJiYoaC5vZD12b2lkIDAsaC5xYT1uZXcgZXIsaC5vYT1bY10sUXIoYSxoKSl9ZWxzZSBpZihjPT09Mil7dmFyIGw9VXIoYik7aWYobClmb3IodmFyIG49bShsKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9cC52YWx1ZTtxLm9kPXZvaWQgMDtxLm9hPXEub2E7UXIoYSxxKX19fQpmdW5jdGlvbiBacihhKXt2YXIgYj1FcihhKSxjPVVyKCJnY2xfZGMiKTtpZihjKWZvcih2YXIgZD1tKGMpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2Yub2Q9dm9pZCAwO2Yub2E9Zi5vYXx8WzJdO1FyKGIsZil9Yi5zb3J0KGZ1bmN0aW9uKGcsaCl7dmFyIGw9Zy5vYSYmZy5vYS5pbmNsdWRlcygxKSxuPWgub2EmJmgub2EuaW5jbHVkZXMoMSk7cmV0dXJuIGwmJiFuPy0xOiFsJiZuPzE6aC50aW1lc3RhbXAtZy50aW1lc3RhbXB9KTtyZXR1cm4gUnIoYil9ZnVuY3Rpb24gSnIoYSl7cmV0dXJuIE1yKGEpLm1hcChmdW5jdGlvbihiKXtiLnFhPW5ldyBlcjtiLm9hPVsxXTtyZXR1cm4gYn0pfQpmdW5jdGlvbiBMcihhLGIpe2lmKCFhLmxlbmd0aClyZXR1cm4gYjtpZighYi5sZW5ndGgpcmV0dXJuIGE7dmFyIGM9e307cmV0dXJuIGEuY29uY2F0KGIpLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gYy5oYXNPd25Qcm9wZXJ0eShkKT8hMTpjW2RdPSEwfSl9ZnVuY3Rpb24gSHIoYSl7cmV0dXJuIGEmJnR5cGVvZiBhPT09InN0cmluZyImJmEubWF0Y2goc3IpP2E6Il9nY2wifWZ1bmN0aW9uICRyKGEsYil7aWYoYSl7dmFyIGM9e3ZhbHVlOmEscWE6bmV3IGVyfTtmcihjLnFhLGIpO3JldHVybiBjfX0KZnVuY3Rpb24gYXMoYSxiLGMpe3ZhciBkPVJqKGEpLGU9TGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2Nsc3JjIiksZj0kcihMaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpLGM/NDoyKTtpZihiJiYoIWZ8fCFlKSl7dmFyIGc9ZC5oYXNoLnJlcGxhY2UoIiMiLCIiKTtmfHwoZj0kcihJaihnLCJnY2xpZCIsITEpLDMpKTtlfHwoZT1JaihnLCJnY2xzcmMiLCExKSl9cmV0dXJuIGYmJihlPT09dm9pZCAwfHxlPT09ImF3Inx8ZT09PSJhdy5kcyJ8fFlmKDgpJiZlPT09ImF3LmR2Iik/W2ZdOltdfQpmdW5jdGlvbiBicyhhLGIpe3ZhciBjPVJqKGEpLGQ9TGooYywicXVlcnkiLCExLHZvaWQgMCwiZ2NsaWQiKSxlPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdjbHNyYyIpLGY9TGooYywicXVlcnkiLCExLHZvaWQgMCwid2JyYWlkIik7Zj0kYihmKTt2YXIgZz1MaihjLCJxdWVyeSIsITEsdm9pZCAwLCJnYnJhaWQiKSxoPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImdhZF9zb3VyY2UiKSxsPUxqKGMsInF1ZXJ5IiwhMSx2b2lkIDAsImRjbGlkIik7aWYoYiYmIShkJiZlJiZmJiZnKSl7dmFyIG49Yy5oYXNoLnJlcGxhY2UoIiMiLCIiKTtkPWR8fElqKG4sImdjbGlkIiwhMSk7ZT1lfHxJaihuLCJnY2xzcmMiLCExKTtmPWZ8fElqKG4sIndicmFpZCIsITEpO2c9Z3x8SWoobiwiZ2JyYWlkIiwhMSk7aD1ofHxJaihuLCJnYWRfc291cmNlIiwhMSl9cmV0dXJuIGNzKGQsZSxsLGYsZyxoKX0KZnVuY3Rpb24gZHMoYSxiLGMpe3ZhciBkPVJqKGEpLGU9TGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2Nsc3JjIiksZj0kcihMaihkLCJxdWVyeSIsITEsdm9pZCAwLCJnY2xpZCIpLGM/NDoyKSxnPSRyKExqKGQsInF1ZXJ5IiwhMSx2b2lkIDAsImRjbGlkIiksYz80OjIpO2lmKGImJighZXx8IWYpKXt2YXIgaD1kLmhhc2gucmVwbGFjZSgiIyIsIiIpO2Z8fChmPSRyKElqKGgsImdjbGlkIiwhMSksMykpO2V8fChlPUlqKGgsImdjbHNyYyIsITEpKX1yZXR1cm4gZiYmZSYmKGU9PT0iYXcuZHMifHxlPT09ImF3LmR2Inx8ZT09PSIzcC5kcyJ8fGU9PT0iZHMiKT9bZl06Zz9bZ106W119ZnVuY3Rpb24gZXMoKXtyZXR1cm4gYnMoQS5sb2NhdGlvbi5ocmVmLCEwKX0KZnVuY3Rpb24gY3MoYSxiLGMsZCxlLGYpe3ZhciBnPXt9LGg9ZnVuY3Rpb24obCxuKXtnW25dfHwoZ1tuXT1bXSk7Z1tuXS5wdXNoKGwpfTtnLmdjbGlkPWE7Zy5nY2xzcmM9YjtnLmRjbGlkPWM7aWYoYSE9PXZvaWQgMCYmYS5tYXRjaCh0cikpc3dpdGNoKGIpe2Nhc2Ugdm9pZCAwOmgoYSwiYXciKTticmVhaztjYXNlICJhdy5kcyI6aChhLCJhdyIpO2goYSwiZGMiKTticmVhaztjYXNlICJhdy5kdiI6WWYoOCkmJihoKGEsImF3IiksaChhLCJkYyIpKTticmVhaztjYXNlICJkcyI6aChhLCJkYyIpO2JyZWFrO2Nhc2UgIjNwLmRzIjpoKGEsImRjIik7YnJlYWs7Y2FzZSAiZ2YiOmgoYSwiZ2YiKTticmVhaztjYXNlICJoYSI6aChhLCJoYSIpfWMmJmgoYywiZGMiKTtkIT09dm9pZCAwJiZ0ci50ZXN0KGQpJiYoZy53YnJhaWQ9ZCxoKGQsImdiIikpO2UhPT12b2lkIDAmJnRyLnRlc3QoZSkmJihnLmdicmFpZD1lLGgoZSwiYWciKSk7ZiE9PXZvaWQgMCYmdHIudGVzdChmKSYmKGcuZ2FkX3NvdXJjZT0KZixoKGYsImdzIikpO3JldHVybiBnfWZ1bmN0aW9uIGZzKCl7Zm9yKHZhciBhPWVzKCksYj0hMCxjPW0oT2JqZWN0LmtleXMoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWlmKGFbZC52YWx1ZV0hPT12b2lkIDApe2I9ITE7YnJlYWt9YiYmKGE9YnMoQS5kb2N1bWVudC5yZWZlcnJlciwhMSksYS5nYWRfc291cmNlPXZvaWQgMCk7cmV0dXJuIGF9ZnVuY3Rpb24gZ3MoYSl7dmFyIGI9ZnMoKTtocyhiLCExLGEpfQpmdW5jdGlvbiBpcyhhKXt2YXIgYj1hcyhBLmxvY2F0aW9uLmhyZWYsITAsITEpO2IubGVuZ3RofHwoYj1hcyhBLmRvY3VtZW50LnJlZmVycmVyLCExLCEwKSk7YT1hfHx7fTtqcyhhKTtpZihiLmxlbmd0aCl7dmFyIGM9YlswXSxkPU5iKCksZT11cShhLGQsITApLGY9QXIoKSxnPWZ1bmN0aW9uKCl7QnIoZikmJmUuZXhwaXJlcyE9PXZvaWQgMCYma3IoImdjbGlkIix7dmFsdWU6e3ZhbHVlOmMudmFsdWUsY3JlYXRpb25UaW1lTXM6ZCxsaW5rRGVjb3JhdGlvblNvdXJjZXM6Yy5xYS5nZXQoKX0sZXhwaXJlczpOdW1iZXIoZS5leHBpcmVzKX0pfTtIbChmdW5jdGlvbigpe2coKTtCcihmKXx8SWwoZyxmKX0sZil9fQpmdW5jdGlvbiBqcyhhKXt2YXIgYj1CLnJlZmVycmVyP0xqKFJqKEIucmVmZXJyZXIpLCJob3N0Iik6IiI7aWYoeXIudGVzdChiKXx8enIudGVzdChiKXx8a3MoKSl7dmFyIGM7YTp7Zm9yKHZhciBkPVJqKEEubG9jYXRpb24uaHJlZiksZT1KaihMaihkLCJxdWVyeSIpKSxmPW0oT2JqZWN0LmtleXMoZSkpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO2lmKCFycltoXSl7dmFyIGw9ZVtoXVswXXx8IiIsbjtpZighbHx8bC5sZW5ndGg8NTB8fGwubGVuZ3RoPjIwMCluPSExO2Vsc2V7dmFyIHA9Z3IobCkscTtpZihwKWM6e3ZhciByPXA7aWYociYmci5sZW5ndGghPT0wKXt2YXIgdD0wO3RyeXtmb3IodmFyIHU9MTA7dDxyLmxlbmd0aCYmISh1LS08PTApOyl7dmFyIHY9aHIocix0KTtpZih2PT09dm9pZCAwKWJyZWFrO3ZhciB4PW0odikseT14Lm5leHQoKS52YWx1ZSx6PXgubmV4dCgpLnZhbHVlLEM9eSxEPXosST1DJjc7aWYoQz4+Mz09PTE2MzgyKXtpZihJIT09CjApYnJlYWs7dmFyIEc9aHIocixEKTtpZihHPT09dm9pZCAwKWJyZWFrO3E9bShHKS5uZXh0KCkudmFsdWU9PT0xO2JyZWFrIGN9dmFyIE47ZDp7dmFyIFM9dm9pZCAwLFc9cixlYT1EO3N3aXRjaChJKXtjYXNlIDA6Tj0oUz1ocihXLGVhKSk9PW51bGw/dm9pZCAwOlNbMV07YnJlYWsgZDtjYXNlIDE6Tj1lYSs4O2JyZWFrIGQ7Y2FzZSAyOnZhciBqYT1ocihXLGVhKTtpZihqYT09PXZvaWQgMClicmVhazt2YXIgZmE9bShqYSksc2E9ZmEubmV4dCgpLnZhbHVlO049ZmEubmV4dCgpLnZhbHVlK3NhO2JyZWFrIGQ7Y2FzZSA1Ok49ZWErNDticmVhayBkfU49dm9pZCAwfWlmKE49PT12b2lkIDB8fE4+ci5sZW5ndGh8fE48PXQpYnJlYWs7dD1OfX1jYXRjaChtYSl7fX1xPSExfWVsc2UgcT0hMTtuPXF9aWYobil7Yz1sO2JyZWFrIGF9fX1jPXZvaWQgMH12YXIgZGE9YztkYSYmbHMoImdjbF9hdyIsZGEsNyxhKX19CmZ1bmN0aW9uIGxzKGEsYixjLGQpe21zKGEsW3t2ZXJzaW9uOiIiLGdjbGlkOmIsdGltZXN0YW1wOk5iKCkscWE6VHIoYyl9XSxkKX0KZnVuY3Rpb24gbXMoYSxiLGMpe2M9Y3x8e307dmFyIGQ9QXIoKSxlPWZ1bmN0aW9uKCl7aWYoQnIoZCkmJmIubGVuZ3RoPjApe3ZhciBmPVVyKGEpfHxbXTtiLmZvckVhY2goZnVuY3Rpb24oZyl7dmFyIGg9dXEoYyxnLnRpbWVzdGFtcCwhMCk7aC5leHBpcmVzIT09dm9pZCAwJiZRcihmLHt2ZXJzaW9uOiIiLGdjbGlkOmcuZ2NsaWQsdGltZXN0YW1wOmcudGltZXN0YW1wLGV4cGlyZXM6TnVtYmVyKGguZXhwaXJlcykscWE6Zy5xYSxsYWJlbHM6Zy5sYWJlbHN9LCEwKX0pO2YubGVuZ3RoJiZrcihhLGYubWFwKGZ1bmN0aW9uKGcpe3ZhciBoPXt2YWx1ZTpnLmdjbGlkLGNyZWF0aW9uVGltZU1zOmcudGltZXN0YW1wLGxpbmtEZWNvcmF0aW9uU291cmNlczpnLnFhP2cucWEuZ2V0KCk6MH0sbDtpZigobD1nLmxhYmVscyk9PW51bGw/MDpsLmxlbmd0aCloLmxhYmVscz1nLmxhYmVscztyZXR1cm57dmFsdWU6aCxleHBpcmVzOk51bWJlcihnLmV4cGlyZXMpfX0pKX19O0hsKGZ1bmN0aW9uKCl7QnIoZCk/CmUoKTpJbChlLGQpfSxkKX0KZnVuY3Rpb24gaHMoYSxiLGMsZCxlKXtjPWN8fHt9O2U9ZXx8W107dmFyIGY9SHIoYy5wcmVmaXgpLGc9ZHx8TmIoKSxoPU1hdGgucm91bmQoZy8xRTMpLGw9QXIoKSxuPSExLHA9ITEscT1ZZig5KSxyPWZ1bmN0aW9uKCl7aWYoQnIobCkpe3ZhciB0PXVxKGMsZywhMCk7dC5NYz1sO2Zvcih2YXIgdT1mdW5jdGlvbihXLGVhKXt2YXIgamE9SXIoVyxmKTtqYSYmKG9xKGphLGVhLHQpLFchPT0iZ2IiJiYobj0hMCkpfSx2PWZ1bmN0aW9uKFcpe3ZhciBlYT1bIkdDTCIsaCxXXTtlLmxlbmd0aD4wJiZlYS5wdXNoKGUuam9pbigiLiIpKTtyZXR1cm4gZWEuam9pbigiLiIpfSx4PW0oWyJhdyIsImRjIiwiZ2YiLCJoYSIsImdwIl0pLHk9eC5uZXh0KCk7IXkuZG9uZTt5PXgubmV4dCgpKXt2YXIgej15LnZhbHVlO2Fbel0mJnUoeix2KGFbel1bMF0pKX1pZigoIW58fHEpJiZhLmdiKXt2YXIgQz1hLmdiWzBdLEQ9SXIoImdiIixmKTshYiYmRXIoRCkuc29tZShmdW5jdGlvbihXKXtyZXR1cm4gVy5nY2xpZD09PUMmJgpXLmxhYmVscyYmVy5sYWJlbHMubGVuZ3RoPjB9KXx8dSgiZ2IiLHYoQykpfX1pZighcCYmYS5nYnJhaWQmJkJyKCJhZF9zdG9yYWdlIikmJihwPSEwLCFufHxxKSl7dmFyIEk9YS5nYnJhaWQsRz1JcigiYWciLGYpO2lmKGJ8fCFKcihHKS5zb21lKGZ1bmN0aW9uKFcpe3JldHVybiBXLmdjbGlkPT09SSYmVy5sYWJlbHMmJlcubGFiZWxzLmxlbmd0aD4wfSkpe3ZhciBOPXt9LFM9KE4uaz1JLE4uaT0iIitoLE4uYj1lLE4pO0FxKEcsUyw1LGMsZyl9fW5zKGEsZixnLGMpfTtIbChmdW5jdGlvbigpe3IoKTtCcihsKXx8SWwocixsKX0sbCl9CmZ1bmN0aW9uIG5zKGEsYixjLGQpe2lmKGEuZ2FkX3NvdXJjZSE9PXZvaWQgMCYmQnIoImFkX3N0b3JhZ2UiKSl7dmFyIGU9cWQoKTtpZihlIT09InIiJiZlIT09ImgiKXt2YXIgZj1hLmdhZF9zb3VyY2UsZz1JcigiZ3MiLGIpO2lmKGcpe3ZhciBoPU1hdGguZmxvb3IoKE5iKCktKHBkKCl8fDApKS8xRTMpLGwsbj1pcigpLHA9e307bD0ocC5rPWYscC5pPSIiK2gscC51PW4scCk7QXEoZyxsLDUsZCxjKX19fX1mdW5jdGlvbiBvcyhhLGIsYyl7Zm9yKHZhciBkPXdxKGIsYyksZT0wO2U8ZC5sZW5ndGg7KytlKWlmKE5yKGRbZV0pPmEpcmV0dXJuITA7cmV0dXJuITF9CmZ1bmN0aW9uIHBzKGEpe3ZhciBiPXFzLGM9cnMoYS5wcmVmaXgpO0NyKGZ1bmN0aW9uKCl7Zm9yKHZhciBkPUhyKGEucHJlZml4KSxlPW0oYiksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1jW2ddO2lmKGgpe3ZhciBsPU1hdGgubWluKHNzKGgpLE5iKCkpLG49dXEoYSxsLCEwKTtuLk1jPUFyKCk7dmFyIHA9SXIoZyxkKTtwJiZvcShwLGgsbil9fXZhciBxPVVxKCEwKTtocyhjcyhxLmdjbGlkLHEuZ2Nsc3JjKSwhMSxhKX0sQXIoKSl9CmZ1bmN0aW9uIHJzKGEpe3ZhciBiPVVxKCEwKSxjPUhyKGEpLGQ9e30sZTtmb3IoZSBpbiB4cilpZih4ci5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIGY9ZSxnPUlyKGYsYyk7aWYoZyE9PXZvaWQgMCl7dmFyIGg9YltnXTtpZihoKXt2YXIgbD1zcyhoKSxuO2E6e2Zvcih2YXIgcD1NYXRoLm1pbihsLE5iKCkpfHxOYigpLHE9Y3EoZyxCLmNvb2tpZSx2b2lkIDAsQXIoKSkscj0wO3I8cS5sZW5ndGg7KytyKWlmKHNzKHFbcl0pPnApe249ITA7YnJlYWsgYX1uPSExfW58fChkW2ZdPWgpfX19cmV0dXJuIGR9CmZ1bmN0aW9uIHRzKGEpe3ZhciBiPVsiYWciXSxjPVVxKCEwKSxkPUhyKGEucHJlZml4KTtDcihmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8Yi5sZW5ndGg7KytlKXt2YXIgZj1JcihiW2VdLGQpO2lmKGYpe3ZhciBnPWNbZl07aWYoZyl7dmFyIGg9JHAoZyw1KTtpZihoKXt2YXIgbD1OcihoKTtsfHwobD1OYigpKTtpZihvcyhsLGYsNSkpYnJlYWs7aC5pPSIiK01hdGgucm91bmQobC8xRTMpO0FxKGYsaCw1LGEsbCl9fX19fSxbImFkX3N0b3JhZ2UiXSl9ZnVuY3Rpb24gSXIoYSxiKXt2YXIgYz14clthXTtpZihjIT09dm9pZCAwKXJldHVybiBiK2N9ZnVuY3Rpb24gc3MoYSl7cmV0dXJuIFZyKGEuc3BsaXQoIi4iKSkubGVuZ3RoIT09MD8oTnVtYmVyKGEuc3BsaXQoIi4iKVsxXSl8fDApKjFFMzowfWZ1bmN0aW9uIE5yKGEpe3JldHVybiBhPyhOdW1iZXIoYS5pKXx8MCkqMUUzOjB9CmZ1bmN0aW9uIFZyKGEpe3JldHVybiBhLmxlbmd0aDwzfHxhWzBdIT09IkdDTCImJmFbMF0hPT0iMSJ8fCEvXlxkKyQvLnRlc3QoYVsxXSl8fCF0ci50ZXN0KGFbMl0pP1tdOmF9ZnVuY3Rpb24gdXMoYSxiLGMsZCl7dmFyIGU9cXM7aWYoQXJyYXkuaXNBcnJheShhKSYmU3AoQSkpe3ZhciBmPUhyKGQpLGc9ZnVuY3Rpb24oKXtmb3IodmFyIGg9e30sbD0wO2w8ZS5sZW5ndGg7KytsKXt2YXIgbj1JcihlW2xdLGYpO2lmKG4pe3ZhciBwPWNxKG4sQi5jb29raWUsdm9pZCAwLEFyKCkpO3AubGVuZ3RoJiYoaFtuXT1wLnNvcnQoKVtwLmxlbmd0aC0xXSl9fXJldHVybiBofTtDcihmdW5jdGlvbigpe2FyKGcsYSxiLGMpfSxBcigpKX19CmZ1bmN0aW9uIHZzKGEsYixjKXt2YXIgZD1xcztpZihZZigxMykmJkFycmF5LmlzQXJyYXkoYSkmJlNwKEEpKXt2YXIgZT1mdW5jdGlvbigpe2Zvcih2YXIgZj17fSxnPTA7ZzxkLmxlbmd0aDsrK2cpe3ZhciBoPXZyW2RbZ11dO2lmKGgpe3ZhciBsPWNxKGgsQi5jb29raWUsdm9pZCAwLEFyKCkpO2lmKGwubGVuZ3RoKXtmb3IodmFyIG49dm9pZCAwLHA9MCxxPW0obCkscj1xLm5leHQoKTshci5kb25lO3I9cS5uZXh0KCkpe3ZhciB0PXIudmFsdWUsdT0kcCh0LDQpO2lmKHUmJih1Lm09PT0iMSJ8fFlmKDE2KSkpe3ZhciB2PU5yKHUpO3Y+PXAmJihwPXYsbj10KX19biYmKGZbaF09bil9fX1yZXR1cm4gZn07Q3IoZnVuY3Rpb24oKXthcihlLGEsYixjKX0sQXIoKSl9fQpmdW5jdGlvbiB3cyhhLGIsYyxkKXtpZihBcnJheS5pc0FycmF5KGEpJiZTcChBKSl7dmFyIGU9WyJhZyJdLGY9SHIoZCksZz1mdW5jdGlvbigpe2Zvcih2YXIgaD17fSxsPTA7bDxlLmxlbmd0aDsrK2wpe3ZhciBuPUlyKGVbbF0sZik7aWYoIW4pcmV0dXJue307dmFyIHA9d3Eobiw1KTtpZihwLmxlbmd0aCl7dmFyIHE9cC5zb3J0KGZ1bmN0aW9uKHIsdCl7cmV0dXJuIE5yKHQpLU5yKHIpfSlbMF07aFtuXT1hcShxLDUpfX1yZXR1cm4gaH07Q3IoZnVuY3Rpb24oKXthcihnLGEsYixjKX0sWyJhZF9zdG9yYWdlIl0pfX1mdW5jdGlvbiBScihhKXtyZXR1cm4gYS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIHRyLnRlc3QoYi5nY2xpZCl9KX0KZnVuY3Rpb24geHMoYSxiKXtpZihTcChBKSl7Zm9yKHZhciBjPUhyKGIucHJlZml4KSxkPXt9LGU9MDtlPGEubGVuZ3RoO2UrKyl4clthW2VdXSYmKGRbYVtlXV09eHJbYVtlXV0pO0NyKGZ1bmN0aW9uKCl7R2IoZCxmdW5jdGlvbihmLGcpe3ZhciBoPWNxKGMrZyxCLmNvb2tpZSx2b2lkIDAsQXIoKSk7aC5zb3J0KGZ1bmN0aW9uKHQsdSl7cmV0dXJuIHNzKHUpLXNzKHQpfSk7aWYoaC5sZW5ndGgpe3ZhciBsPWhbMF0sbj1zcyhsKSxwPVZyKGwuc3BsaXQoIi4iKSkubGVuZ3RoIT09MD9sLnNwbGl0KCIuIikuc2xpY2UoMyk6W10scT17fSxyO3I9VnIobC5zcGxpdCgiLiIpKS5sZW5ndGghPT0wP2wuc3BsaXQoIi4iKVsyXTp2b2lkIDA7cVtmXT1bcl07aHMocSwhMCxiLG4scCl9fSl9LEFyKCkpfX0KZnVuY3Rpb24geXMoYSl7dmFyIGI9WyJhZyJdLGM9WyJnYnJhaWQiXTtDcihmdW5jdGlvbigpe2Zvcih2YXIgZD1IcihhLnByZWZpeCksZT0wO2U8Yi5sZW5ndGg7KytlKXt2YXIgZj1JcihiW2VdLGQpO2lmKCFmKWJyZWFrO3ZhciBnPXdxKGYsNSk7aWYoZy5sZW5ndGgpe3ZhciBoPWcuc29ydChmdW5jdGlvbihxLHIpe3JldHVybiBOcihyKS1OcihxKX0pWzBdLGw9TnIoaCksbj1oLmIscD17fTtwW2NbZV1dPWguaztocyhwLCEwLGEsbCxuKX19fSxbImFkX3N0b3JhZ2UiXSl9ZnVuY3Rpb24genMoYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYylpZihhW2JbY11dKXJldHVybiEwO3JldHVybiExfQpmdW5jdGlvbiBBcyhhKXtmdW5jdGlvbiBiKGgsbCxuKXtuJiYoaFtsXT1uKX1pZihFbCgpKXt2YXIgYz1lcygpLGQ7YS5pbmNsdWRlcygiZ2FkX3NvdXJjZSIpJiYoZD1jLmdhZF9zb3VyY2UhPT12b2lkIDA/Yy5nYWRfc291cmNlOlVxKCExKS5fZ3MpO2lmKHpzKGMsYSl8fGQpe3ZhciBlPXt9O2IoZSwiZ2NsaWQiLGMuZ2NsaWQpO2IoZSwiZGNsaWQiLGMuZGNsaWQpO2IoZSwiZ2Nsc3JjIixjLmdjbHNyYyk7YihlLCJ3YnJhaWQiLGMud2JyYWlkKTtiKGUsImdicmFpZCIsYy5nYnJhaWQpO2JyKGZ1bmN0aW9uKCl7cmV0dXJuIGV9LDMpO3ZhciBmPXt9LGc9KGYuX3VwPSIxIixmKTtiKGcsIl9ncyIsZCk7YnIoZnVuY3Rpb24oKXtyZXR1cm4gZ30sMSl9fX1mdW5jdGlvbiBrcygpe3ZhciBhPVJqKEEubG9jYXRpb24uaHJlZik7cmV0dXJuIExqKGEsInF1ZXJ5IiwhMSx2b2lkIDAsImdhZF9zb3VyY2UiKX0KZnVuY3Rpb24gQnMoYSl7aWYoIVlmKDEpKXJldHVybiBudWxsO3ZhciBiPVVxKCEwKS5nYWRfc291cmNlO2lmKGIhPW51bGwpcmV0dXJuIEEubG9jYXRpb24uaGFzaD0iIixiO2lmKFlmKDIpKXtiPWtzKCk7aWYoYiE9bnVsbClyZXR1cm4gYjt2YXIgYz1lcygpO2lmKHpzKGMsYSkpcmV0dXJuIjAifXJldHVybiBudWxsfWZ1bmN0aW9uIENzKGEpe3ZhciBiPUJzKGEpO2IhPW51bGwmJmJyKGZ1bmN0aW9uKCl7dmFyIGM9e307cmV0dXJuIGMuZ2FkX3NvdXJjZT1iLGN9LDQpfQpmdW5jdGlvbiBEcyhhLGIsYyl7dmFyIGQ9W107aWYoYi5sZW5ndGg9PT0wKXJldHVybiBkO2Zvcih2YXIgZT17fSxmPTA7ZjxiLmxlbmd0aDtmKyspe3ZhciBnPWJbZl0saD1nLnpnP2cuemc6ImdjbCI7aWYoKGcubGFiZWxzfHxbXSkuaW5kZXhPZihjKT09PS0xKXthLnB1c2goMCk7dmFyIGw9ITEsbj12b2lkIDA7aWYoKG49Zy5vYSk9PW51bGw/MDpuLmluY2x1ZGVzKDIpKWw9ITA7dmFyIHA9dm9pZCAwOygocD1nLm9hKT09bnVsbD8wOnAuaW5jbHVkZXMoMSkpJiYhZVtoXSYmKGw9ITAsZVtoXT0hMCk7bCYmZC5wdXNoKGcpfWVsc2V7YS5wdXNoKDEpO3ZhciBxPXZvaWQgMDtpZigocT1nLm9hKT09bnVsbD8wOnEuaW5jbHVkZXMoMSkpZVtoXT0hMH19cmV0dXJuIGR9CmZ1bmN0aW9uIEVzKGEsYixjLGQsZSl7ZT1lPT09dm9pZCAwPyExOmU7dmFyIGY9W107Yz1jfHx7fTtpZighQnIoQXIoKSkpcmV0dXJuIGY7dmFyIGc9RXIoYSxlKSxoPURzKGYsZyxiKTtpZihoLmxlbmd0aCYmIWQpe2Zvcih2YXIgbD1bXSxuPSExLHA9bShoKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSl7dmFyIHI9cS52YWx1ZSx0PXIsdT10LnZlcnNpb24sdj10LmdjbGlkLHg9dC50aW1lc3RhbXAseT10Lm9hLHo9KHQubGFiZWxzfHxbXSkuY29uY2F0KFtiXSksQz12b2lkIDA7aWYoKChDPXkpPT1udWxsPzA6Qy5pbmNsdWRlcygxKSkmJiFuKXt2YXIgRD1bdSxNYXRoLnJvdW5kKHgvMUUzKSx2XS5jb25jYXQoeikuam9pbigiLiIpLEk9dXEoYyx4LCEwKTtJLk1jPUFyKCk7b3EoYSxELEkpO249ITB9dmFyIEc9dm9pZCAwO2UmJigoRz15KT09bnVsbD8wOkcuaW5jbHVkZXMoMikpJiZsLnB1c2gobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxyLHtsYWJlbHM6en0pKX1sLmxlbmd0aCYmCm1zKCJnY2xfZ2IiLGwsYyl9cmV0dXJuIGZ9CmZ1bmN0aW9uIEZzKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6Yzt2YXIgZD1bXTtiPWJ8fHt9O3ZhciBlPUdyKGIsYyksZj1EcyhkLGUsYSk7aWYoZi5sZW5ndGgpe2Zvcih2YXIgZz1bXSxoPXt9LGw9bShmKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZSxxPUhyKGIucHJlZml4KSxyPUlyKHAuemcscSk7aWYoIXIpcmV0dXJuIGQ7dmFyIHQ9cCx1PXQudmVyc2lvbix2PXQuZ2NsaWQseD10LnRpbWVzdGFtcCx5PXQub2Esej1NYXRoLnJvdW5kKHgvMUUzKSxDPUxyKHQubGFiZWxzfHxbXSxbYV0pLEQ9dm9pZCAwO2lmKChEPXkpPT1udWxsPzA6RC5pbmNsdWRlcygxKSlpZihwLnpnPT09ImFnIiYmIWguYWcpe3ZhciBJPXt9LEc9KEkuaz12LEkuaT0iIit6LEkuYj1DLEkpO0FxKHIsRyw1LGIseCk7aC5hZz0hMH1lbHNlIGlmKHAuemc9PT0iZ2IiJiYhaC5nYil7dmFyIE49W3Useix2XS5jb25jYXQoQykuam9pbigiLiIpLFM9dXEoYix4LCEwKTtTLk1jPQpBcigpO29xKHIsTixTKTtoLmdiPSEwfXZhciBXPXZvaWQgMDtjJiYoKFc9eSk9PW51bGw/MDpXLmluY2x1ZGVzKDIpKSYmZy5wdXNoKG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scCx7bGFiZWxzOkN9KSl9Zy5sZW5ndGgmJm1zKCJnY2xfZ2IiLGcsYil9cmV0dXJuIGR9ZnVuY3Rpb24gR3MoYSxiKXt2YXIgYz1IcihiKSxkPUlyKGEsYyk7aWYoIWQpcmV0dXJuIDA7dmFyIGU7ZT1hPT09ImFnIj9KcihkKTpFcihkKTtmb3IodmFyIGY9MCxnPTA7ZzxlLmxlbmd0aDtnKyspZj1NYXRoLm1heChmLGVbZ10udGltZXN0YW1wKTtyZXR1cm4gZn1mdW5jdGlvbiBIcyhhKXtmb3IodmFyIGI9MCxjPW0oT2JqZWN0LmtleXMoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWZvcih2YXIgZT1hW2QudmFsdWVdLGY9MDtmPGUubGVuZ3RoO2YrKyliPU1hdGgubWF4KGIsTnVtYmVyKGVbZl0udGltZXN0YW1wKSk7cmV0dXJuIGJ9CmZ1bmN0aW9uIElzKGEpe3ZhciBiPU1hdGgubWF4KEdzKCJhdyIsYSksSHMoQnIoQXIoKSk/UnAoKTp7fSkpLGM9TWF0aC5tYXgoR3MoImdiIixhKSxIcyhCcihBcigpKT9ScCgiX2dhY19nYiIsITApOnt9KSk7Yz1NYXRoLm1heChjLEdzKCJhZyIsYSkpO3JldHVybiBjPmJ9O3ZhciBKcz1SZWdFeHAoIl5VQS1cXGQrLVxcZCslM0FbXFx3LV0rKD86JTJDW1xcdy1dKykqKD86JTNCVUEtXFxkKy1cXGQrJTNBW1xcdy1dKyg/OiUyQ1tcXHctXSspKikqJCIpLEtzPS9efj9bXHctXSsoPzpcLn4/W1x3LV0rKSokLyxMcz0vXlxkK1wuZmxzXC5kb3VibGVjbGlja1wubmV0JC8sTXM9LztnYWM9KFteOz9dKykvLE5zPS87Z2FjZ2I9KFteOz9dKykvOwpmdW5jdGlvbiBPcyhhLGIpe2lmKExzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KSl7dmFyIGM9Qi5sb2NhdGlvbi5ocmVmLm1hdGNoKGIpO3JldHVybiBjJiZjLmxlbmd0aD09PTImJmNbMV0ubWF0Y2goSnMpP0tqKGNbMV0pfHwiIjoiIn1mb3IodmFyIGQ9W10sZT1tKE9iamVjdC5rZXlzKGEpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7Zm9yKHZhciBnPWYudmFsdWUsaD1bXSxsPWFbZ10sbj0wO248bC5sZW5ndGg7bisrKWgucHVzaChsW25dLmdjbGlkKTtkLnB1c2goZysiOiIraC5qb2luKCIsIikpfXJldHVybiBkLmxlbmd0aD4wP2Quam9pbigiOyIpOiIifQpmdW5jdGlvbiBQcyhhLGIsYyl7Zm9yKHZhciBkPUJyKEFyKCkpP1JwKCJfZ2FjX2diIiwhMCk6e30sZT1bXSxmPSExLGc9bShPYmplY3Qua2V5cyhkKSksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWUsbj1FcygiX2dhY19nYl8iK2wsYSxiLGMpO2Y9Znx8bi5sZW5ndGghPT0wJiZuLnNvbWUoZnVuY3Rpb24ocCl7cmV0dXJuIHA9PT0xfSk7ZS5wdXNoKGwrIjoiK24uam9pbigiLCIpKX1yZXR1cm57UnI6Zj9lLmpvaW4oIjsiKToiIixRcjpPcyhkLE5zKX19ZnVuY3Rpb24gUXMoYSl7dmFyIGI9Qi5sb2NhdGlvbi5ocmVmLm1hdGNoKG5ldyBSZWdFeHAoIjsiK2ErIj0oW147P10rKSIpKTtyZXR1cm4gYiYmYi5sZW5ndGg9PT0yJiZiWzFdLm1hdGNoKEtzKT9iWzFdOnZvaWQgMH0KZnVuY3Rpb24gUnMoYSl7dmFyIGI9e30sYyxkLGU7THMudGVzdChCLmxvY2F0aW9uLmhvc3QpJiYoYz1RcygiZ2NsZ3MiKSxkPVFzKCJnY2xzdCIpLGU9UXMoImdjbGxwIikpO2lmKGMmJmQmJmUpYi5FZz1jLGIuV2g9ZCxiLlVoPWU7ZWxzZXt2YXIgZj1OYigpLGc9TXIoKGF8fCJfZ2NsIikrIl9ncyIpLGg9Zy5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIHAuZ2NsaWR9KSxsPWcubWFwKGZ1bmN0aW9uKHApe3JldHVybiBmLXAudGltZXN0YW1wfSksbj1nLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gcC5vZH0pO2gubGVuZ3RoPjAmJmwubGVuZ3RoPjAmJm4ubGVuZ3RoPjAmJihiLkVnPWguam9pbigiLiIpLGIuV2g9bC5qb2luKCIuIiksYi5VaD1uLmpvaW4oIi4iKSl9cmV0dXJuIGJ9CmZ1bmN0aW9uIFNzKGEsYil7dmFyIGM9YS5zcGxpdCgiLiIpLGQ9Yj9iLnNwbGl0KCIuIik6W10sZT1kLmxlbmd0aD09PWMubGVuZ3RoP2Q6dm9pZCAwO3JldHVybiBjLm1hcChmdW5jdGlvbihmLGcpe3ZhciBoPXtnY2xpZDpmfTtpZihlKXt2YXIgbD1lW2ddLnNwbGl0KCJfIik7aWYobC5sZW5ndGg9PT0yKXtoLnFhPW5ldyBlcihOdW1iZXIobFswXSkpO3ZhciBuO3ZhciBwPU51bWJlcihsWzFdKTtpZihwPT09MCluPVswXTtlbHNle3ZhciBxPVtdO3AmMSYmcS5wdXNoKDEpO3AmMiYmcS5wdXNoKDIpO3AmNCYmcS5wdXNoKDMpO3AmOCYmcS5wdXNoKDQpO3AmMTYmJnEucHVzaCg1KTtuPXF9aC5vYT1ufX1yZXR1cm4gaH0pfQpmdW5jdGlvbiBUcyhhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDtpZihMcy50ZXN0KEIubG9jYXRpb24uaG9zdCkpe3ZhciBlPVFzKGMpO2lmKGUpe2lmKFlmKDE3KSl7dmFyIGY9UXMoYysiX3NyYyIpO3JldHVybiBTcyhlLGYpfWlmKGQpe3ZhciBnPW5ldyBlcjtmcihnLDIpO2ZyKGcsMyk7cmV0dXJuIGUuc3BsaXQoIi4iKS5tYXAoZnVuY3Rpb24ocil7cmV0dXJue2djbGlkOnIscWE6ZyxvYTpbMV19fSl9cmV0dXJuIGUuc3BsaXQoIi4iKS5tYXAoZnVuY3Rpb24ocil7cmV0dXJue2djbGlkOnIscWE6bmV3IGVyLG9hOlsxXX19KX19ZWxzZXtpZihiPT09ImdjbGlkIil7Zm9yKHZhciBoPUVyKChhfHwiX2djbCIpKyJfYXciLGQpLGw9TnVtYmVyKFhmWzRdPT09dm9pZCAwPzA6WGZbNF0pLG49bShVcygpKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9cC52YWx1ZTtxLnRpbWVzdGFtcD5sJiZRcihoLHEpfXJldHVybiBofWlmKGI9PT0id2JyYWlkIilyZXR1cm4gRXIoKGF8fAoiX2djbCIpKyJfZ2IiLGQpO2lmKGI9PT0iYnJhaWRzIilyZXR1cm4gR3Ioe3ByZWZpeDphfSxkKX1yZXR1cm5bXX1mdW5jdGlvbiBVcygpe3JldHVybih3cSh2ci5hdyw0KXx8W10pLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5tPT09IjEifSkubWFwKGZ1bmN0aW9uKGEpe3JldHVybntnY2xpZDphLmssdGltZXN0YW1wOk51bWJlcihhLmkpLHZlcnNpb246IiIsb2E6WzVdfX0pfWZ1bmN0aW9uIFZzKGEpe2Zvcih2YXIgYj0wLGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtlPjAmJihifD0xPDxlLTEpfXJldHVybiBiLnRvU3RyaW5nKCl9ZnVuY3Rpb24gV3MoYSl7cmV0dXJuIExzLnRlc3QoQi5sb2NhdGlvbi5ob3N0KT8hKFFzKCJnY2xhdyIpfHxRcygiZ2FjIikpOklzKGEpfQpmdW5jdGlvbiBYcyhhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZTtlPWM/RnMoYSxiLGQpOkVzKChiJiZiLnByZWZpeHx8Il9nY2wiKSsiX2diIixhLGIsdm9pZCAwLGQpO3JldHVybiBlLmxlbmd0aD09PTB8fGUuZXZlcnkoZnVuY3Rpb24oZil7cmV0dXJuIGY9PT0wfSk/IiI6ZS5qb2luKCIuIil9Owp2YXIgWXM9ZnVuY3Rpb24oYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9a2ooImFkc19wYWdldmlldyIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2lmKGNbYV0pcmV0dXJuITE7Ynx8KGNbYV09ITApO3JldHVybiEwfSxacz1mdW5jdGlvbihhKXtyZXR1cm4gU2ooYSwiZ2NsaWQgZGNsaWQgZ2JyYWlkIHdicmFpZCBnY2xhdyBnY2xkYyBnY2xoYSBnY2xnZiBnY2xnYiBfZ2wiLnNwbGl0KCIgIiksIjAiKX0sYXQ9ZnVuY3Rpb24oKXt2YXIgYT1SaihBLmxvY2F0aW9uLmhyZWYpLGI9dm9pZCAwLGM9dm9pZCAwLGQ9TGooYSwicXVlcnkiLCExLHZvaWQgMCwiZ2FkX3NvdXJjZSIpLGU9TGooYSwicXVlcnkiLCExLHZvaWQgMCwiZ2FkX2NhbXBhaWduaWQiKSxmLGc9YS5oYXNoLnJlcGxhY2UoIiMiLCIiKS5tYXRjaCgkcyk7Zj1nP2dbMV06dm9pZCAwO2QmJmY/KGI9ZCxjPTEpOmQ/KGI9ZCxjPTIpOmYmJihiPWYsYz0zKTtyZXR1cm57RGc6YixTcjpjLFRoOmV9fSxidD1mdW5jdGlvbihhKXt2YXIgYj0KT3AoITEpPT09MT9BLnRvcC5sb2NhdGlvbi5ocmVmOkEubG9jYXRpb24uaHJlZjtyZXR1cm4gYShiKX0sY3Q9ZnVuY3Rpb24oYSl7dmFyIGI9W107R2IoYSxmdW5jdGlvbihjLGQpe2Q9UnIoZCk7Zm9yKHZhciBlPVtdLGY9MDtmPGQubGVuZ3RoO2YrKyllLnB1c2goZFtmXS5nY2xpZCk7ZS5sZW5ndGgmJmIucHVzaChjKyI6IitlLmpvaW4oIiwiKSl9KTtyZXR1cm4gYi5qb2luKCI7Iil9LGV0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1kdChhKTtpZihkKXJldHVybiBkO3ZhciBlPUhyKGIpO2lmKGU9PT0iX2djbCIpe3ZhciBmPSFYbyhmcCkmJmMsZz1bXTthPT09ImF3Ij9nPWFzKEEubG9jYXRpb24uaHJlZiwhMCwhMSk6YT09PSJkYyImJihnPWRzKEEubG9jYXRpb24uaHJlZiwhMCwhMSkpO2lmKGcubGVuZ3RoPjApcmV0dXJuIGY/W3t2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLGdjbGlkOiIwIn1dOmcubWFwKGZ1bmN0aW9uKGwpe3JldHVybnt2ZXJzaW9uOiJHQ0wiLHRpbWVzdGFtcDowLApnY2xpZDpsLnZhbHVlLHFhOmwucWEsb2E6WzFdfX0pfXZhciBoPUlyKGEsZSk7cmV0dXJuIGg/YT09PSJhdyI/RXIoaCxNKDU2MikpOlpyKGgpOltdfSxkdD1mdW5jdGlvbihhKXt2YXIgYj1UaigiZ2NsIithKSxjPWE9PT0iZGMifHxhPT09ImF3Ij9UaigiZ2NsIithKyJfc3JjIik6dm9pZCAwO2lmKGIpcmV0dXJuIFNzKGIsYyl9LGZ0PWZ1bmN0aW9uKGEsYixjKXtpZihhPT09ImF3Inx8YT09PSJkYyJ8fGE9PT0iZ2IiKXt2YXIgZD1UaigiZ2NsIithKTtpZihkKXJldHVybiBkLnNwbGl0KCIuIil9dmFyIGU9SHIoYik7aWYoZT09PSJfZ2NsIil7dmFyIGY9IVhvKGZwKSYmYyxnO2c9ZXMoKVthXXx8W107aWYoZy5sZW5ndGg+MClyZXR1cm4gZj9bIjAiXTpnfXZhciBoPUlyKGEsZSk7cmV0dXJuIGg/RHIoaCk6W119LGd0PWZ1bmN0aW9uKGEsYixjKXtpZighUihhLGIpfHwhUihhLGMpKXJldHVybiIiO3ZhciBkPVIoYSxiKS5zcGxpdCgiLiIpLGU9UihhLGMpLnNwbGl0KCIuIik7cmV0dXJuIGQubGVuZ3RoJiYKZS5sZW5ndGgmJmQubGVuZ3RoPT09ZS5sZW5ndGgmJmRbMF0mJmVbMF0/ZC5tYXAoZnVuY3Rpb24oZixnKXtyZXR1cm4gZisiXyIrZVtnXX0pLmpvaW4oIi4iKToiIn0sJHM9L15nYWRfc291cmNlW189XShcZCspJC87ZnVuY3Rpb24gaHQoYSxiLGMpe3ZhciBkPVIoYSxGLkQuVGEpO2lmKGQmJnR5cGVvZiBkPT09Im9iamVjdCIpZm9yKHZhciBlPW0oT2JqZWN0LmtleXMoZCkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9ZFtnXTtpZihoIT09dm9pZCAwKXtoPT09bnVsbCYmKGg9IiIpO3ZhciBsPSJnYXAuIitnLG49U3RyaW5nKGgpO2M/YyhsLG4pOmJbbF09bn19fTt2YXIgaXQ9ITEsanQ9W107ZnVuY3Rpb24ga3QoKXtpZighaXQpe2l0PSEwO2Zvcih2YXIgYT1qdC5sZW5ndGgtMTthPj0wO2EtLSlqdFthXSgpO2p0PVtdfX07ZnVuY3Rpb24gbHQoYSl7dmFyIGI9W10sYz0wLGQ7Zm9yKGQgaW4gYSliW2MrK109YVtkXTtyZXR1cm4gYn07ZnVuY3Rpb24gbXQoYSxiLGMpe3JldHVybiB0eXBlb2YgYS5hZGRFdmVudExpc3RlbmVyPT09ImZ1bmN0aW9uIj8oYS5hZGRFdmVudExpc3RlbmVyKGIsYywhMSksITApOiExfWZ1bmN0aW9uIG50KGEsYixjKXt0eXBlb2YgYS5yZW1vdmVFdmVudExpc3RlbmVyPT09ImZ1bmN0aW9uIiYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9O2Z1bmN0aW9uIG90KGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2EuZ29vZ2xlX2ltYWdlX3JlcXVlc3RzfHwoYS5nb29nbGVfaW1hZ2VfcmVxdWVzdHM9W10pO3ZhciBlPVBwKGEuZG9jdW1lbnQpO2lmKGMpe3ZhciBmPWZ1bmN0aW9uKCl7aWYoYyl7dmFyIGc9YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHMsaD1EYyhnLGUpO2g+PTAmJkFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChnLGgsMSl9bnQoZSwibG9hZCIsZik7bnQoZSwiZXJyb3IiLGYpfTttdChlLCJsb2FkIixmKTttdChlLCJlcnJvciIsZil9ZCYmKGUuYXR0cmlidXRpb25TcmM9IiIpO2Uuc3JjPWI7YS5nb29nbGVfaW1hZ2VfcmVxdWVzdHMucHVzaChlKX0KZnVuY3Rpb24gcHQoYSl7dmFyIGI7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9Imh0dHBzOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2dlbl8yMDQ/aWQ9dGNmZSI7SXAoYSxmdW5jdGlvbihkLGUpe2lmKGR8fGQ9PT0wKWMrPSImIitlKyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGQpKX0pO3F0KGMsYil9CmZ1bmN0aW9uIHF0KGEsYil7dmFyIGM9d2luZG93LGQ7Yj1iPT09dm9pZCAwPyExOmI7ZD1kPT09dm9pZCAwPyExOmQ7aWYoYy5mZXRjaCl7dmFyIGU9e2tlZXBhbGl2ZTohMCxjcmVkZW50aWFsczoiaW5jbHVkZSIscmVkaXJlY3Q6ImZvbGxvdyIsbWV0aG9kOiJnZXQiLG1vZGU6Im5vLWNvcnMifTtkJiYoZS5tb2RlPSJjb3JzIiwic2V0QXR0cmlidXRpb25SZXBvcnRpbmciaW4gWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlP2UuYXR0cmlidXRpb25SZXBvcnRpbmc9e2V2ZW50U291cmNlRWxpZ2libGU6InRydWUiLHRyaWdnZXJFbGlnaWJsZToiZmFsc2UifTplLmhlYWRlcnM9eyJBdHRyaWJ1dGlvbi1SZXBvcnRpbmctRWxpZ2libGUiOiJldmVudC1zb3VyY2UifSk7Yy5mZXRjaChhLGUpfWVsc2Ugb3QoYyxhLGI9PT12b2lkIDA/ITE6YixkPT09dm9pZCAwPyExOmQpfTtmdW5jdGlvbiBydCgpe3RoaXMuZmE9dGhpcy5mYTt0aGlzLlI9dGhpcy5SfXJ0LnByb3RvdHlwZS5mYT0hMTtydC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuZmF8fCh0aGlzLmZhPSEwLHRoaXMuTigpKX07cnQucHJvdG90eXBlW1N5bWJvbC5kaXNwb3NlXT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfTtydC5wcm90b3R5cGUuYWRkT25EaXNwb3NlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiKXt0aGlzLmZhP2IhPT12b2lkIDA/YS5jYWxsKGIpOmEoKToodGhpcy5SfHwodGhpcy5SPVtdKSxiJiYoYT1hLmJpbmQoYikpLHRoaXMuUi5wdXNoKGEpKX07cnQucHJvdG90eXBlLk49ZnVuY3Rpb24oKXtpZih0aGlzLlIpZm9yKDt0aGlzLlIubGVuZ3RoOyl0aGlzLlIuc2hpZnQoKSgpfTtmdW5jdGlvbiBzdChhKXthLmFkZHRsQ29uc2VudD09PXZvaWQgMHx8dmYoYS5hZGR0bENvbnNlbnQpfHwoYS5hZGR0bENvbnNlbnQ9dm9pZCAwKTthLmdkcHJBcHBsaWVzPT09dm9pZCAwfHx3ZihhLmdkcHJBcHBsaWVzKXx8KGEuZ2RwckFwcGxpZXM9dm9pZCAwKTtyZXR1cm4gYS50Y1N0cmluZyE9PXZvaWQgMCYmIXZmKGEudGNTdHJpbmcpfHxhLmxpc3RlbmVySWQhPT12b2lkIDAmJiF1ZihhLmxpc3RlbmVySWQpPzI6YS5jbXBTdGF0dXMmJmEuY21wU3RhdHVzIT09ImVycm9yIj8wOjN9dmFyIHR0PWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7cnQuY2FsbCh0aGlzKTt0aGlzLkg9bnVsbDt0aGlzLmphPXt9O3RoaXMueWE9MDt0aGlzLlo9bnVsbDt0aGlzLks9YTt2YXIgYzt0aGlzLnRpbWVvdXRNcz0oYz1iLnRpbWVvdXRNcykhPW51bGw/Yzo1MDA7dmFyIGQ7dGhpcy5Faj0oZD1iLkVqKSE9bnVsbD9kOiExfTt3YSh0dCxydCk7CnR0LnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7dGhpcy5qYT17fTt0aGlzLlomJihudCh0aGlzLkssIm1lc3NhZ2UiLHRoaXMuWiksZGVsZXRlIHRoaXMuWik7ZGVsZXRlIHRoaXMuamE7ZGVsZXRlIHRoaXMuSztkZWxldGUgdGhpcy5IO3J0LnByb3RvdHlwZS5OLmNhbGwodGhpcyl9O3ZhciB2dD1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGEuSy5fX3RjZmFwaT09PSJmdW5jdGlvbiJ8fHV0KGEpIT1udWxsfTsKdHQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPXtpbnRlcm5hbEJsb2NrT25FcnJvcnM6dGhpcy5Fan0sZD1IcChmdW5jdGlvbigpe2EoYyl9KSxlPTA7dGhpcy50aW1lb3V0TXMhPT0tMSYmKGU9c2V0VGltZW91dChmdW5jdGlvbigpe2MudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiO2MuaW50ZXJuYWxFcnJvclN0YXRlPTE7ZCgpfSx0aGlzLnRpbWVvdXRNcykpO3ZhciBmPWZ1bmN0aW9uKGcsaCl7Y2xlYXJUaW1lb3V0KGUpO2c/KGM9ZyxjLmludGVybmFsRXJyb3JTdGF0ZT1zdChjKSxjLmludGVybmFsQmxvY2tPbkVycm9ycz1iLkVqLGgmJmMuaW50ZXJuYWxFcnJvclN0YXRlPT09MHx8KGMudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiLGh8fChjLmludGVybmFsRXJyb3JTdGF0ZT0zKSkpOihjLnRjU3RyaW5nPSJ0Y3VuYXZhaWxhYmxlIixjLmludGVybmFsRXJyb3JTdGF0ZT0zKTthKGMpfTt0cnl7d3QodGhpcywiYWRkRXZlbnRMaXN0ZW5lciIsCmYpfWNhdGNoKGcpe2MudGNTdHJpbmc9InRjdW5hdmFpbGFibGUiLGMuaW50ZXJuYWxFcnJvclN0YXRlPTMsZSYmKGNsZWFyVGltZW91dChlKSxlPTApLGQoKX19O3R0LnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEpe2EmJmEubGlzdGVuZXJJZCYmd3QodGhpcywicmVtb3ZlRXZlbnRMaXN0ZW5lciIsbnVsbCxhLmxpc3RlbmVySWQpfTsKdmFyIHp0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZDtkPWQ9PT12b2lkIDA/Ijc1NSI6ZDt2YXIgZTthOntpZihhLnB1Ymxpc2hlciYmYS5wdWJsaXNoZXIucmVzdHJpY3Rpb25zKXt2YXIgZj1hLnB1Ymxpc2hlci5yZXN0cmljdGlvbnNbYl07aWYoZiE9PXZvaWQgMCl7ZT1mW2Q9PT12b2lkIDA/Ijc1NSI6ZF07YnJlYWsgYX19ZT12b2lkIDB9dmFyIGc9ZTtpZihnPT09MClyZXR1cm4hMTt2YXIgaD1jO2M9PT0yPyhoPTAsZz09PTImJihoPTEpKTpjPT09MyYmKGg9MSxnPT09MSYmKGg9MCkpO3ZhciBsO2lmKGg9PT0wKWlmKGEucHVycG9zZSYmYS52ZW5kb3Ipe3ZhciBuPXh0KGEudmVuZG9yLmNvbnNlbnRzLGQ9PT12b2lkIDA/Ijc1NSI6ZCk7bD1uJiZiPT09IjEiJiZhLnB1cnBvc2VPbmVUcmVhdG1lbnQmJmEucHVibGlzaGVyQ0M9PT0iQ0giPyEwOm4mJnh0KGEucHVycG9zZS5jb25zZW50cyxiKX1lbHNlIGw9ITA7ZWxzZSBsPWg9PT0xP2EucHVycG9zZSYmYS52ZW5kb3I/eHQoYS5wdXJwb3NlLmxlZ2l0aW1hdGVJbnRlcmVzdHMsCmIpJiZ4dChhLnZlbmRvci5sZWdpdGltYXRlSW50ZXJlc3RzLGQ9PT12b2lkIDA/Ijc1NSI6ZCk6ITA6ITA7cmV0dXJuIGx9LHh0PWZ1bmN0aW9uKGEsYil7cmV0dXJuISghYXx8IWFbYl0pfSx3dD1mdW5jdGlvbihhLGIsYyxkKXtjfHwoYz1mdW5jdGlvbigpe30pO3ZhciBlPWEuSztpZih0eXBlb2YgZS5fX3RjZmFwaT09PSJmdW5jdGlvbiIpe3ZhciBmPWUuX190Y2ZhcGk7ZihiLDIsYyxkKX1lbHNlIGlmKHV0KGEpKXtBdChhKTt2YXIgZz0rK2EueWE7YS5qYVtnXT1jO2lmKGEuSCl7dmFyIGg9e307YS5ILnBvc3RNZXNzYWdlKChoLl9fdGNmYXBpQ2FsbD17Y29tbWFuZDpiLHZlcnNpb246MixjYWxsSWQ6ZyxwYXJhbWV0ZXI6ZH0saCksIioiKX19ZWxzZSBjKHt9LCExKX0sdXQ9ZnVuY3Rpb24oYSl7aWYoYS5IKXJldHVybiBhLkg7YS5IPU5wKGEuSywiX190Y2ZhcGlMb2NhdG9yIik7cmV0dXJuIGEuSH0sQXQ9ZnVuY3Rpb24oYSl7aWYoIWEuWil7dmFyIGI9ZnVuY3Rpb24oYyl7aWYoYy5zb3VyY2U9PT0KYS5IKXRyeXt2YXIgZDtkPSh2ZihjLmRhdGEpP0pTT04ucGFyc2UoYy5kYXRhKTpjLmRhdGEpLl9fdGNmYXBpUmV0dXJuO2EuamFbZC5jYWxsSWRdKGQucmV0dXJuVmFsdWUsZC5zdWNjZXNzKX1jYXRjaChlKXt9fTthLlo9YjttdChhLkssIm1lc3NhZ2UiLGIpfX0sQnQ9ZnVuY3Rpb24oYSl7aWYoYS5nZHByQXBwbGllcz09PSExKXJldHVybiEwO2EuaW50ZXJuYWxFcnJvclN0YXRlPT09dm9pZCAwJiYoYS5pbnRlcm5hbEVycm9yU3RhdGU9c3QoYSkpO3JldHVybiBhLmNtcFN0YXR1cz09PSJlcnJvciJ8fGEuaW50ZXJuYWxFcnJvclN0YXRlIT09MD9hLmludGVybmFsQmxvY2tPbkVycm9ycz8ocHQoe2U6U3RyaW5nKGEuaW50ZXJuYWxFcnJvclN0YXRlKX0pLCExKTohMDphLmNtcFN0YXR1cyE9PSJsb2FkZWQifHxhLmV2ZW50U3RhdHVzIT09InRjbG9hZGVkIiYmYS5ldmVudFN0YXR1cyE9PSJ1c2VyYWN0aW9uY29tcGxldGUiPyExOiEwfTt2YXIgQ3Q9ezE6MCwzOjAsNDowLDc6Myw5OjMsMTA6M307ZnVuY3Rpb24gRHQoKXtyZXR1cm4ga2ooInRjZiIsZnVuY3Rpb24oKXtyZXR1cm57fX0pfXZhciBFdD1mdW5jdGlvbigpe3JldHVybiBuZXcgdHQoQSx7dGltZW91dE1zOi0xfSl9OwpmdW5jdGlvbiBGdCgpe3ZhciBhPUR0KCksYj1FdCgpO3Z0KGIpJiYhR3QoKSYmIUh0KCkmJlAoMTI0KTtpZighYS5hY3RpdmUmJnZ0KGIpKXtHdCgpJiYoYS5hY3RpdmU9ITAsYS5wdXJwb3Nlcz17fSxhLmNtcElkPTAsYS50Y2ZQb2xpY3lWZXJzaW9uPTAsdGwoKS5hY3RpdmU9ITAsYS50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSIpO2NwKCk7dHJ5e2IuYWRkRXZlbnRMaXN0ZW5lcihmdW5jdGlvbihjKXtpZihjLmludGVybmFsRXJyb3JTdGF0ZSE9PTApSXQoYSksZHAoW0YuRC5rYSxGLkQuWGEsRi5ELm1hXSksdGwoKS5hY3RpdmU9ITA7ZWxzZSBpZihhLmdkcHJBcHBsaWVzPWMuZ2RwckFwcGxpZXMsYS5jbXBJZD1jLmNtcElkLGEuZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlPWMuZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlLEh0KCkmJihhLmFjdGl2ZT0hMCksIUp0KGMpfHxHdCgpfHxIdCgpKXthLnRjZlBvbGljeVZlcnNpb249Yy50Y2ZQb2xpY3lWZXJzaW9uO3ZhciBkO2lmKGMuZ2RwckFwcGxpZXM9PT0KITEpe3ZhciBlPXt9LGY7Zm9yKGYgaW4gQ3QpQ3QuaGFzT3duUHJvcGVydHkoZikmJihlW2ZdPSEwKTtkPWU7Yi5yZW1vdmVFdmVudExpc3RlbmVyKGMpfWVsc2UgaWYoSnQoYykpe3ZhciBnPXt9LGg7Zm9yKGggaW4gQ3QpaWYoQ3QuaGFzT3duUHJvcGVydHkoaCkpaWYoaD09PSIxIil7dmFyIGwsbj1jLHA9e1VyOiEwfTtwPXA9PT12b2lkIDA/e306cDtsPUJ0KG4pP24uZ2RwckFwcGxpZXM9PT0hMT8hMDpuLnRjU3RyaW5nPT09InRjdW5hdmFpbGFibGUiPyFwLmlkcGNBcHBsaWVzOihwLmlkcGNBcHBsaWVzfHxuLmdkcHJBcHBsaWVzIT09dm9pZCAwfHxwLlVyKSYmKHAuaWRwY0FwcGxpZXN8fHZmKG4udGNTdHJpbmcpJiZuLnRjU3RyaW5nLmxlbmd0aCk/enQobiwiMSIsMCk6ITA6ITE7Z1siMSJdPWx9ZWxzZSBnW2hdPXp0KGMsaCxDdFtoXSk7ZD1nfWlmKGQpe2EudGNTdHJpbmc9Yy50Y1N0cmluZ3x8InRjZW1wdHkiO2EucHVycG9zZXM9ZDt2YXIgcT17fSxyPShxW0YuRC5rYV09CmEucHVycG9zZXNbIjEiXT8iZ3JhbnRlZCI6ImRlbmllZCIscSk7YS5nZHByQXBwbGllcyE9PSEwPyhkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKSx0bCgpLmFjdGl2ZT0hMCk6KHJbRi5ELlhhXT1hLnB1cnBvc2VzWyIzIl0mJmEucHVycG9zZXNbIjQiXT8iZ3JhbnRlZCI6ImRlbmllZCIsdHlwZW9mIGEudGNmUG9saWN5VmVyc2lvbj09PSJudW1iZXIiJiZhLnRjZlBvbGljeVZlcnNpb24+PTQ/cltGLkQubWFdPWEucHVycG9zZXNbIjEiXSYmYS5wdXJwb3Nlc1siNyJdPyJncmFudGVkIjoiZGVuaWVkIjpkcChbRi5ELm1hXSksVm8ocix7ZXZlbnRJZDowfSx7Z2RwckFwcGxpZXM6YT9hLmdkcHJBcHBsaWVzOnZvaWQgMCx0Y1N0cmluZzpLdCgpfHwiIn0pKX19ZWxzZSBkcChbRi5ELmthLEYuRC5YYSxGLkQubWFdKX0pfWNhdGNoKGMpe0l0KGEpLGRwKFtGLkQua2EsRi5ELlhhLEYuRC5tYV0pLHRsKCkuYWN0aXZlPSEwfX19CmZ1bmN0aW9uIEl0KGEpe2EudHlwZT0iZSI7YS50Y1N0cmluZz0idGN1bmF2YWlsYWJsZSJ9ZnVuY3Rpb24gSnQoYSl7cmV0dXJuIGEuZXZlbnRTdGF0dXM9PT0idGNsb2FkZWQifHxhLmV2ZW50U3RhdHVzPT09InVzZXJhY3Rpb25jb21wbGV0ZSJ8fGEuZXZlbnRTdGF0dXM9PT0iY21wdWlzaG93biJ9ZnVuY3Rpb24gR3QoKXtyZXR1cm4gQS5ndGFnX2VuYWJsZV90Y2Zfc3VwcG9ydD09PSEwfWZ1bmN0aW9uIEh0KCl7cmV0dXJuIER0KCkuZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlPT09ITB9ZnVuY3Rpb24gS3QoKXt2YXIgYT1EdCgpO2lmKGEuYWN0aXZlKXJldHVybiBhLnRjU3RyaW5nfWZ1bmN0aW9uIEx0KCl7dmFyIGE9RHQoKTtpZihhLmFjdGl2ZSYmYS5nZHByQXBwbGllcyE9PXZvaWQgMClyZXR1cm4gYS5nZHByQXBwbGllcz8iMSI6IjAifQpmdW5jdGlvbiBNdChhKXtpZighQ3QuaGFzT3duUHJvcGVydHkoU3RyaW5nKGEpKSlyZXR1cm4hMDt2YXIgYj1EdCgpO3JldHVybiBiLmFjdGl2ZSYmYi5wdXJwb3Nlcz8hIWIucHVycG9zZXNbU3RyaW5nKGEpXTohMH07dmFyIE50PVtGLkQua2EsRi5ELnJhLEYuRC5tYSxGLkQuWGFdLE90PXt9LFB0PShPdFtGLkQua2FdPTEsT3RbRi5ELnJhXT0yLE90KTtmdW5jdGlvbiBRdChhKXtpZihhPT09dm9pZCAwKXJldHVybiAwO3N3aXRjaChPKGEsRi5ELlJjKSl7Y2FzZSB2b2lkIDA6cmV0dXJuIDE7Y2FzZSAhMTpyZXR1cm4gMztkZWZhdWx0OnJldHVybiAyfX1mdW5jdGlvbiBSdCgpe3JldHVybihNKDE4Myk/TGYoMTYpLnNwbGl0KCJ+Iik6TGYoMTcpLnNwbGl0KCJ+IikpLmluZGV4T2Yoem0oKSkhPT0tMSYmSGMuZ2xvYmFsUHJpdmFjeUNvbnRyb2w9PT0hMH1mdW5jdGlvbiBTdChhKXtpZihSdCgpKXJldHVybiExO3ZhciBiPVF0KGEpO2lmKGI9PT0zKXJldHVybiExO3N3aXRjaChDbChGLkQuWGEpKXtjYXNlIDE6Y2FzZSAzOnJldHVybiEwO2Nhc2UgMjpyZXR1cm4hMTtjYXNlIDQ6cmV0dXJuIGI9PT0yO2Nhc2UgMDpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0KZnVuY3Rpb24gVHQoKXtyZXR1cm4gRWwoKXx8IUJsKEYuRC5rYSl8fCFCbChGLkQucmEpfWZ1bmN0aW9uIFV0KCl7dmFyIGE9e30sYjtmb3IoYiBpbiBQdClQdC5oYXNPd25Qcm9wZXJ0eShiKSYmKGFbUHRbYl1dPUNsKGIpKTtyZXR1cm4iRzEiK3lmKGFbMV18fDApK3lmKGFbMl18fDApfXZhciBWdD17fSxXdD0oVnRbRi5ELmthXT0wLFZ0W0YuRC5yYV09MSxWdFtGLkQubWFdPTIsVnRbRi5ELlhhXT0zLFZ0KTtmdW5jdGlvbiBYdChhKXtzd2l0Y2goYSl7Y2FzZSB2b2lkIDA6cmV0dXJuIDE7Y2FzZSAhMDpyZXR1cm4gMztjYXNlICExOnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9fQpmdW5jdGlvbiBZdChhKXtmb3IodmFyIGI9IjEiLGM9MDtjPE50Lmxlbmd0aDtjKyspe3ZhciBkPWIsZSxmPU50W2NdLGc9QWwuZGVsZWdhdGVkQ29uc2VudFR5cGVzW2ZdO2U9Zz09PXZvaWQgMD8wOld0Lmhhc093blByb3BlcnR5KGcpPzEyfFd0W2ddOjg7dmFyIGg9dGwoKTtoLmFjY2Vzc2VkQW55PSEwO3ZhciBsPWguZW50cmllc1tmXXx8e307ZT1lPDwyfFh0KGwuaW1wbGljaXQpO2I9ZCsoIiIrIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2VdKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltYdChsLmRlY2xhcmUpPDw0fFh0KGwuZGVmYXVsdCk8PDJ8WHQobC51cGRhdGUpXSl9dmFyIG49YixwPShSdCgpPzE6MCk8PDMscT0oRWwoKT8xOjApPDwyLHI9UXQoYSk7Yj1uKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltwfApxfHJdO3JldHVybiBiKz0iIisiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVotXyJbQWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMuYWRfc3RvcmFnZTw8NHxBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hbmFseXRpY3Nfc3RvcmFnZTw8MnxBbC5jb250YWluZXJTY29wZWREZWZhdWx0cy5hZF91c2VyX2RhdGFdKyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIlsoQWwudXNlZENvbnRhaW5lclNjb3BlZERlZmF1bHRzPzE6MCk8PDJ8QWwuY29udGFpbmVyU2NvcGVkRGVmYXVsdHMuYWRfcGVyc29uYWxpemF0aW9uXX1mdW5jdGlvbiBadCgpe3JldHVybiBCbChGLkQubWEpPyJhIjoiLSJ9ZnVuY3Rpb24gJHQoKXtyZXR1cm4gQm0oKXx8KEd0KCl8fEh0KCkpJiZMdCgpPT09IjEiPyIxIjoiMCJ9CmZ1bmN0aW9uIGF1KCl7cmV0dXJuKEJtKCk/ITA6ISghR3QoKSYmIUh0KCkpJiZMdCgpPT09IjEiKXx8IUJsKEYuRC5tYSl9CmZ1bmN0aW9uIGJ1KCl7dmFyIGE9IjAiLGI9IjAiLGM7dmFyIGQ9RHQoKTtjPWQuYWN0aXZlP2QuY21wSWQ6dm9pZCAwO3R5cGVvZiBjPT09Im51bWJlciImJmM+PTAmJmM8PTQwOTUmJihhPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltjPj42JjYzXSxiPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltjJjYzXSk7dmFyIGU9IjAiLGY7dmFyIGc9RHQoKTtmPWcuYWN0aXZlP2cudGNmUG9saWN5VmVyc2lvbjp2b2lkIDA7dHlwZW9mIGY9PT0ibnVtYmVyIiYmZj49MCYmZjw9NjMmJihlPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi1fIltmXSk7dmFyIGg9MDtCbSgpJiYoaHw9MSk7THQoKT09PSIxIiYmKGh8PTIpO0d0KCkmJihofD00KTt2YXIgbDt2YXIgbj1EdCgpO2w9bi5lbmFibGVBZHZlcnRpc2VyQ29uc2VudE1vZGUhPT0Kdm9pZCAwP24uZW5hYmxlQWR2ZXJ0aXNlckNvbnNlbnRNb2RlPyIxIjoiMCI6dm9pZCAwO2w9PT0iMSImJihofD04KTt0bCgpLndhaXRQZXJpb2RUaW1lZE91dCYmKGh8PTE2KTtyZXR1cm4iMSIrYStiK2UrIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLV8iW2hdfTt2YXIgY3U9e1VBOjEsQVc6MixEQzozLEc6NCxHRjo1LEdUOjEyLEdUTToxNCxIQTo2LE1DOjd9OwpmdW5jdGlvbiBkdShhKXthPWE9PT12b2lkIDA/e306YTt2YXIgYj1FKDUpLnNwbGl0KCItIilbMF0udG9VcHBlckNhc2UoKSxjLGQ9e2N0aWQ6RSg1KSxEbzpKZigxNSksSW86RSgxNCksTHM6SWYoNyk/MjoxLER0OmEucGYsY2Fub25pY2FsSWQ6RSg2KSxudDooYz1BaygpKT09bnVsbD92b2lkIDA6Yy5jYW5vbmljYWxDb250YWluZXJJZCxFdDphLlRnPT09dm9pZCAwP3ZvaWQgMDphLlRnPzEwOjEyfTtkLmNhbm9uaWNhbElkIT09YS5tYyYmKGQubWM9YS5tYyk7dmFyIGU9eGsoKTtkLlVzPWU/ZS5jYW5vbmljYWxDb250YWluZXJJZDp2b2lkIDA7SWYoNDUpPyhkLmhpPWN1W2JdLGQuaGl8fChkLmhpPTApKTpkLmhpPURqPzEzOjEwO0lmKDQ3KT8oZC5iaz0wLGQucXI9Mik6SWYoNTApP2QuYms9MTpkLmJrPTM7dmFyIGY9YSxnPXs2OiExfTtKZig1NCk9PT0yP2dbN109ITA6SmYoNTQpPT09MSYmKGdbMl09ITApO2lmKEtjKXt2YXIgaD1MaihSaihLYyksImhvc3QiKTtoJiYoZ1s4XT0KaC5tYXRjaCgvXih3d3dcLik/Z29vZ2xldGFnbWFuYWdlclwuY29tJC8pPT09bnVsbCl9dmFyIGw7Z1s5XT0obD1mLmVmKSE9bnVsbD9sOiExO3ZhciBuPUZrKCkscDtnWzEwXT0ocD1uPT1udWxsP3ZvaWQgMDpuLmZyb21Db250YWluZXJFeGVjdXRpb24pIT1udWxsP3A6ITE7ZC56cj1nO3JldHVybiBDZihkLGEuUG4pfTsKdmFyIGZ1PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPW0oZXUoYSkpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlLGY9UihhLGUpLGc9UShhLEguSi5ZZSk7TSg1ODkpJiZnJiYoZT09PUYuRC56YXx8ZT09PUYuRC5VYXx8ZT09PUYuRC5QZSkmJnR5cGVvZiBmPT09InN0cmluZyImJihmPVpzKGYpKTt2YXIgaD1vcChlLGYpO2gmJighZ3x8ZSE9PUYuRC5EZCYmZSE9PUYuRC5LZCYmZSE9PUYuRC5FZSYmZSE9PUYuRC5CZnx8KGgudmFsdWU9IjAiKSxNKDUwNCkmJihlPT09Ri5ELk1kP2gua2V5PSJldm5pZCI6ZT09PUYuRC5OZCYmKGgua2V5PSJleGNpZCIpKSxiW2gua2V5XT1oLnZhbHVlKX1iLmd0bT1kdSh7bWM6UShhLEguSi5OYiksVGc6YS5NLmlzR3RtRXZlbnQsZWY6UShhLEguSi5DYyl9KTtUdCgpJiYoYi5nY3M9Yi5nY3N8fFV0KCkpO2IuZ2NkPWIuZ2NkfHxZdChhLk0pO2F1KCkmJihiLmRtYV9jcHM9WnQoKSk7Yi5kbWE9JHQoKTt2dChFdCgpKSYmCihiLnRjZmQ9YnUoKSk7dmFyIGw9Q3AoYSk7bCYmKGIudGFnX2V4cD1sKTtpZihRKGEsSC5KLkJrKSl7Yi50ZnQ9U3RyaW5nKE5iKCkpO3ZhciBuPXBkKCk7biE9PXZvaWQgMCYmKGIudGZkPVN0cmluZyhNYXRoLnJvdW5kKG4pKSl9Yi5hcHZlPSIxIjtiLmFwdmY9bmQoKT8iZiI6Im5mIjtmby5IW2NvLmlhLmNiXSE9PWJvLk1hLlVlfHxmby5LW2NvLmlhLmNiXS5pc0NvbnNlbnRHcmFudGVkKCl8fChiLmxpbWl0ZWRfYWRzPSIxIik7dmFyIHA9UShhLEguSi5YZyk7TSg0NzQpJiZwIT1udWxsJiZwIT09IiImJihiLl9nc2lkPXApO2h0KGEsYixmdW5jdGlvbihxLHIpe2JbcV09ZW5jb2RlVVJJQ29tcG9uZW50KHIpfSk7cmV0dXJuIGJ9O3ZhciBndT1mdW5jdGlvbihhLGIsYyxkLGUpe3RoaXMuZW5kcG9pbnQ9YTt0aGlzLmZhPWM7dGhpcy5qYT1kO3RoaXMucGFyYW1ldGVyRW5jb2Rpbmc9ZTt0aGlzLlo9Yi5zbGljZSgpfTtndS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiBYbyh0aGlzLlopfTtndS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07Z3UucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXt2YXIgYT1NbVt0aGlzLmVuZHBvaW50XSh2b2lkIDApO3JldHVybiBTYihhLCJodHRwczovLyIpP2Euc3Vic3RyaW5nKDgpOlNiKGEsImh0dHA6Ly8iKT9hLnN1YnN0cmluZyg3KTphfTt2YXIgaHU9ZnVuY3Rpb24oYSxiKXt0aGlzLm1ldGhvZE5hbWU9YTt0aGlzLlI9Yn07aHUucHJvdG90eXBlLnNlbmRSZXF1ZXN0PWZ1bmN0aW9uKGEsYixjKXtpZih0aGlzLmlzU3VwcG9ydGVkKCkpaWYoKGM9PW51bGw/dm9pZCAwOmMuYm9keSk9PT12b2lkIDB8fHRoaXMuSCgpKXRyeXt0aGlzLksoYSxiLGMpfWNhdGNoKGQpe2EucmQoZCl9ZWxzZSBhLnJkKCJSZXF1ZXN0IG1ldGhvZCAiK3RoaXMubWV0aG9kTmFtZSsiIGRvZXMgbm90IHN1cHBvcnQgYSByZXF1ZXN0IGJvZHkuIik7ZWxzZSBhLnJkKCJSZXF1ZXN0IG1ldGhvZCAiK3RoaXMubWV0aG9kTmFtZSsiIGlzIG5vdCBzdXBwb3J0ZWQuIil9O3ZhciBpdT1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiSW1hZ2VQaXhlbCIsMyl9O3dhKGl1LGh1KTtpdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07aXUucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMX07Cml1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtaYyhiLGZ1bmN0aW9uKCl7YS5qZigpfSxmdW5jdGlvbigpe2Eub25GYWlsdXJlKHZvaWQgMCl9LGM9PW51bGw/dm9pZCAwOmMuYWYpfTt2YXIganU9ZnVuY3Rpb24oKXtodS5jYWxsKHRoaXMsIlNlbmRCZWFjb24iLDEpfTt3YShqdSxodSk7anUucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKCl7cmV0dXJuIGtkKCl9O2p1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITB9O2p1LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtqZChiLGM9PW51bGw/dm9pZCAwOmMuYm9keSk/YS5qZigpOmEucmQodm9pZCAwKX07dmFyIGt1PWZ1bmN0aW9uKCl7aHUuY2FsbCh0aGlzLCJGZXRjaCIsMSl9O3dhKGt1LGh1KTtrdS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4geWIoQS5mZXRjaCl9O2t1LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITB9OwprdS5wcm90b3R5cGUuSz1mdW5jdGlvbihhLGIsYyl7QS5mZXRjaChiLGM9PW51bGw/dm9pZCAwOmMuR2IpLnRoZW4oZnVuY3Rpb24oZCl7aWYoZC5vaylhLnBlKGQpO2Vsc2UgaWYoZC5zdGF0dXM9PT0wKWEuamYoKTtlbHNlIGEub25GYWlsdXJlKCJGZXRjaCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK2Quc3RhdHVzKyIuIil9KS5jYXRjaChmdW5jdGlvbihkKXthLnJkKGQpfSl9O3ZhciBsdT1uZXcgaXUsbXU9bmV3IGp1LG51PW5ldyBrdTt2YXIgb3U9ZnVuY3Rpb24oKXt9O291LnByb3RvdHlwZS5LPWZ1bmN0aW9uKCl7cmV0dXJuW119Owp2YXIgcHU9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/WyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl06YjtndS5jYWxsKHRoaXMsYSxiLDEsITAsMil9O3dhKHB1LGd1KTtwdS5wcm90b3R5cGUuSz1mdW5jdGlvbihhKXtpZih0aGlzLloubGVuZ3RoKXt2YXIgYj1RKGEsSC5KLkRrKTtpZihiIT09dm9pZCAwKXJldHVybiBifXJldHVybiBndS5wcm90b3R5cGUuSy5jYWxsKHRoaXMsYSl9O3B1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZnUoYSk7YS50YXJnZXQuZGVzdGluYXRpb25JZCYmKGMudGlkPWEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO2IubWV0aG9kIGluc3RhbmNlb2Yga3U/Yy5mbXQ9IjgiOmIubWV0aG9kIGluc3RhbmNlb2YganU/Yy5mbXQ9IjUiOmIubWV0aG9kIGluc3RhbmNlb2YgaXUmJihjLmZtdD0iMyIpO3JldHVybiBjfTtwdS5wcm90b3R5cGUueWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLk4oYSxiKTtyZXR1cm4iPyIrT2JqZWN0LmtleXMoYykubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkKwoiPSIrY1tkXX0pLmpvaW4oIiYiKX07cHUucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMueWEoYSxiKSxlPXt9O2lmKGIubWV0aG9kIGluc3RhbmNlb2Yga3Upe2UuR2I9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxsZCk7aWYodGhpcy5lbmRwb2ludD09PTU4fHx0aGlzLmVuZHBvaW50PT09NTcpZS5HYi5tZXRob2Q9IkdFVCI7dGhpcy5lbmRwb2ludCE9PTQ1fHxxdS5LKGEpfHwoZS5HYi5jcmVkZW50aWFscz0ib21pdCIsZCs9IiZnYXAudWNmYj0xIil9YyhkLGUpfTt2YXIgcXU9bmV3IHB1KDQ1KSxydT1uZXcgcHUoNDUsW10pLHN1PW5ldyBwdSg0NixbXSksdHU9ZnVuY3Rpb24oKXtwdS5jYWxsKHRoaXMsNjkpfTt3YSh0dSxwdSk7dHUucHJvdG90eXBlLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKGEpe3ZhciBiPU0oNDc0KSYmKCEhUihhLCJfZ3NpZCIpfHwhIVEoYSxILkouWGcpKSxjPVIoYSxGLkQuSGQpIT09IjEiJiYoISFSKGEsImdjbGlkIil8fAohIVIoYSwiZGNsaWQiKXx8ISFSKGEsImdjbHNyYyIpfHwhIVIoYSwiYXVpZCIpKTtyZXR1cm4gYnx8Y307dHUucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdShhKSxkPWxwKGEsYyl8fHt9O09iamVjdC5rZXlzKGQpLmxlbmd0aD4wJiYoYi5tZXRob2QgaW5zdGFuY2VvZiBrdT9kLmZtdD0iOCI6Yi5tZXRob2QgaW5zdGFuY2VvZiBqdT9kLmZtdD0iNSI6Yi5tZXRob2QgaW5zdGFuY2VvZiBpdSYmKGQuZm10PSIzIikpO3JldHVybiBkfTt2YXIgdXU9bmV3IHR1LHZ1PWZ1bmN0aW9uKCl7cHUuY2FsbCh0aGlzLDQ1KX07d2EodnUscHUpO3Z1LnByb3RvdHlwZS5SPWZ1bmN0aW9uKCl7cmV0dXJuIFhqKCkrIi9nL2QvY2NtL2NvbGxlY3QifTt2dS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXB1LnByb3RvdHlwZS5OLmNhbGwodGhpcyxhLGIpO2NbImdhcC4xcGZiIl09IjEiO3JldHVybiBjfTt2YXIgd3U9ZnVuY3Rpb24oYSl7cHUuY2FsbCh0aGlzLGEsWyJhZF9zdG9yYWdlIiwKImFkX3VzZXJfZGF0YSJdKX07d2Eod3UscHUpO3d1LnByb3RvdHlwZS5OPWZ1bmN0aW9uKGEsYil7dmFyIGM9cHUucHJvdG90eXBlLk4uY2FsbCh0aGlzLGEsYik7cmV0dXJuIGhwKGMpfTt2YXIgeHU9bmV3IHd1KDU4KSx5dT1uZXcgd3UoNTcpLHp1PWZ1bmN0aW9uKCl7fTt3YSh6dSxvdSk7enUucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7dmFyIGI9cXUuSyhhKSxjPWI/cXU6c3UsZD1be2VuZHBvaW50OmMsbWV0aG9kOm5kKCk/bnU6bXV9LHtlbmRwb2ludDpjLG1ldGhvZDpsdX1dO2I/TSg1MTcpJiZJZig0NykmJmQucHVzaCh7ZW5kcG9pbnQ6bmV3IHZ1LG1ldGhvZDpudX0pOk0oNjAwKSYmZC5wdXNoKHtlbmRwb2ludDpydSxtZXRob2Q6bnV9KTtyZXR1cm4gZH07enUucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9W10sYz0hIVEoYSxILkoudmQpLGQ9UihhLEYuRC5QZCk9PT0iMSIsZT1SKGEsRi5ELkhkKT09PSIxIixmPXF1LksoYSksZz1jJiZkJiYhZSYmZjtpZihnKXt2YXIgaD0KUWMoKXx8T2MoKT94dTp5dTtiLnB1c2goW3tlbmRwb2ludDpoLG1ldGhvZDpudX0se2VuZHBvaW50OmgsbWV0aG9kOmx1fV0pfWYmJihnfHxRKGEsSC5KLmhkKSkmJmIucHVzaChbe2VuZHBvaW50OnV1LG1ldGhvZDpuZCgpP251Omx1fV0pO3JldHVybiBifTt2YXIgQXU9bmV3IHp1O3ZhciBUPXtXOntKazoxLG5qOjIsRms6MyxtbDo0LEdrOjUseWQ6NixrbDo3LE1xOjgscW46OSxIazoxMCxJazoxMSxGaDoxMixEbToxMyxBbToxNCxDbToxNSx6bToxNixCbToxNyx5bToxOCxUbzoxOSx4cToyMCx5cToyMSxmajoyMix1bjoyNCxPbToyNSxTazoyNixUazoyNyxSazoyOCxVazoyOSxyajozMCxPazozMSxabzozMn19O1QuV1tULlcuSmtdPSJBTExPV19JTlRFUkVTVF9HUk9VUFMiO1QuV1tULlcubmpdPSJTRVJWRVJfQ09OVEFJTkVSX1VSTCI7VC5XW1QuVy5Ga109IkFEU19EQVRBX1JFREFDVElPTiI7VC5XW1QuVy5tbF09IkNVU1RPTUVSX0xJRkVUSU1FX1ZBTFVFIjtULldbVC5XLkdrXT0iQUxMT1dfQ1VTVE9NX1NDUklQVFMiO1QuV1tULlcueWRdPSJBTllfQ09PS0lFX1BBUkFNUyI7VC5XW1QuVy5rbF09IkNPT0tJRV9FWFBJUkVTIjtULldbVC5XLk1xXT0iTEVHQUNZX0VOSEFOQ0VEX0NPTlZFUlNJT05fSlNfVkFSSUFCTEUiO1QuV1tULlcucW5dPSJSRVNUUklDVEVEX0RBVEFfUFJPQ0VTU0lORyI7ClQuV1tULlcuSGtdPSJBTExPV19ESVNQTEFZX0ZFQVRVUkVTIjtULldbVC5XLklrXT0iQUxMT1dfR09PR0xFX1NJR05BTFMiO1QuV1tULlcuRmhdPSJHRU5FUkFURURfVFJBTlNBQ1RJT05fSUQiO1QuV1tULlcuRG1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9VTktOT1dOIjtULldbVC5XLkFtXT0iRkxPT0RMSUdIVF9DT1VOVElOR19NRVRIT0RfU1RBTkRBUkQiO1QuV1tULlcuQ21dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9VTklRVUUiO1QuV1tULlcuem1dPSJGTE9PRExJR0hUX0NPVU5USU5HX01FVEhPRF9QRVJfU0VTU0lPTiI7VC5XW1QuVy5CbV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX1RSQU5TQUNUSU9OUyI7VC5XW1QuVy55bV09IkZMT09ETElHSFRfQ09VTlRJTkdfTUVUSE9EX0lURU1TX1NPTEQiO1QuV1tULlcuVG9dPSJBRFNfT0dUX1YxX1VTQUdFIjtULldbVC5XLnhxXT0iRk9STV9JTlRFUkFDVElPTl9QRVJNSVNTSU9OX0RFTklFRCI7ClQuV1tULlcueXFdPSJGT1JNX1NVQk1JVF9QRVJNSVNTSU9OX0RFTklFRCI7VC5XW1QuVy5mal09Ik1JQ1JPVEFTS19OT1RfU1VQUE9SVEVEIjtULldbVC5XLnVuXT0iU0VUX0VOQ1JZUFRFRF9EQVRBX1RPX0NBQ0hFIjtULldbVC5XLk9tXT0iR0VUX0VOQ1JZUFRFRF9EQVRBX0ZST01fQ0FDSEUiO1QuV1tULlcuU2tdPSJDT05GSUdfREVURUNURURfV0lUSF9OT19QQVJBTSI7VC5XW1QuVy5Ua109IkNPTkZJR19ERVRFQ1RFRF9XSVRIX1BBUkFNIjtULldbVC5XLlJrXT0iQ09ORklHX0NPTlNFTlRfU0VUX0JFRk9SRSI7VC5XW1QuVy5Va109IkNPTkZJR19TRVRfVVNFRF9CRUZPUkUiO1QuV1tULlcucmpdPSJTSEFET1dfRE9NX0FVVE9fUElJIjtULldbVC5XLk9rXT0iQ0NEX1VTRVJfREFUQV9XRUJfT05fQ09ORklHIjtULldbVC5XLlpvXT0iQkxFTkRFRF9VU0VSX0RBVEEiO3ZhciBCdT17fSxDdT0oQnVbRi5ELnVpXT1ULlcuSmssQnVbRi5ELmRkXT1ULlcubmosQnVbRi5ELnljXT1ULlcubmosQnVbRi5ELm1iXT1ULlcuRmssQnVbRi5ELkdlXT1ULlcubWwsQnVbRi5ELnJpXT1ULlcuR2ssQnVbRi5ELkpkXT1ULlcueWQsQnVbRi5ELm5iXT1ULlcueWQsQnVbRi5ELkxiXT1ULlcueWQsQnVbRi5ELklkXT1ULlcueWQsQnVbRi5ELnZjXT1ULlcueWQsQnVbRi5ELlRiXT1ULlcueWQsQnVbRi5ELkNiXT1ULlcua2wsQnVbRi5ELldiXT1ULlcucW4sQnVbRi5ELmhoXT1ULlcuSGssQnVbRi5ELlNjXT1ULlcuSWssQnUpLER1PXt9LEV1PShEdS51bmtub3duPVQuVy5EbSxEdS5zdGFuZGFyZD1ULlcuQW0sRHUudW5pcXVlPVQuVy5DbSxEdS5wZXJfc2Vzc2lvbj1ULlcuem0sRHUudHJhbnNhY3Rpb25zPVQuVy5CbSxEdS5pdGVtc19zb2xkPVQuVy55bSxEdSk7dmFyIEZ1PWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztzYigiR1RBR19FVkVOVF9GRUFUVVJFX0NIQU5ORUwiLGIpO2MmJihhLkhbYl09ITApfSx2Yj1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9W119O2Z1bmN0aW9uIEd1KGEpe0Z1KHZiLGEsITEpfWZ1bmN0aW9uIEh1KGEsYil7dmFyIGM9Yj09PXZvaWQgMD8hMTpiLGQ9dmI7Yz1jPT09dm9pZCAwPyExOmM7Zm9yKHZhciBlPU9iamVjdC5rZXlzKGEpLGY9bShPYmplY3Qua2V5cyhDdSkpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1nLnZhbHVlO2UuaW5jbHVkZXMoaCkmJkZ1KGQsQ3VbaF0sYyl9fTtmdW5jdGlvbiBJdShhLGIpe2E/YS50aGVuKGIpOmIodm9pZCAwKX1mdW5jdGlvbiBKdShhKXtyZXR1cm4gUHJvbWlzZS5hbGxTZXR0bGVkKGEpLnRoZW4oZnVuY3Rpb24oYil7cmV0dXJuIGIuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjLnN0YXR1cz09PSJmdWxmaWxsZWQifSkubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBjLnZhbHVlfSl9KX1mdW5jdGlvbiBLdSgpe3ZhciBhLGI7cmV0dXJue3Byb21pc2U6bmV3IFByb21pc2UoZnVuY3Rpb24oYyxkKXthPWM7Yj1kfSkscmVzb2x2ZTphLHJlamVjdDpifX07ZnVuY3Rpb24gTHUoYSxiLGMsZCxlLGYpe3ZhciBnPWMuc2xpY2UoKSxoO2Q9PW51bGx8fChoPWQudXYpPT1udWxsfHxoLmNhbGwoZCxhLGIsYyxlKTt2YXIgbD1LdSgpLG49bC5wcm9taXNlLHA9bC5yZXNvbHZlLHE9W10scj1mdW5jdGlvbigpe3AocSk7dmFyIHU7ZD09bnVsbHx8KHU9ZC5Scyk9PW51bGx8fHUuY2FsbChkLGEsYixjLGUscSl9LHQ9ZnVuY3Rpb24oKXt2YXIgdT1nLnNoaWZ0KCk7dT91Lm1ldGhvZC5pc1N1cHBvcnRlZCgpP011KGEsYix1LmVuZHBvaW50LGQscSx1Lm1ldGhvZCxlLGYsdCxyKTp0KCk6cigpfTt0KCk7cmV0dXJuIG59CmZ1bmN0aW9uIE11KGEsYixjLGQsZSxmLGcsaCxsLG4pe3ZhciBwPWMuUihhKSxxPXt0azpiLGVuZHBvaW50OmMsaXNQcmltYXJ5Omcsc2I6dm9pZCAwLHBrOmYsanQ6e319LHI9ITEsdD1mdW5jdGlvbih6LEMpe2lmKHIpUCgxODcpO2Vsc2UgaWYocj0hMCwhdSl7dmFyIEQ9Q3x8e30sST1ELmJvZHksRz1ELkdiLE49RC5hZjtDPU9iamVjdC5mcmVlemUobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxJP3tib2R5Okl9Ont9LEc/e0diOkd9Ont9LE4/e2FmOk59Ont9KSk7aWYoSSYmIWYuSCgpKXgoKSxsKCk7ZWxzZXt2YXIgUz1OdSh6KSxXPXBbMF09PT0iLyI/IiIrcCtTOiJodHRwczovLyIrcCtTO3Euc2I9VztxLmp0PUM7dmFyIGVhO2Q9PW51bGx8fChlYT1kLlNzKT09bnVsbHx8ZWEuY2FsbChkLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxxKSk7dmFyIGphPXtkZXN0aW5hdGlvbklkOmEudGFyZ2V0LmRlc3RpbmF0aW9uSWQsZW5kcG9pbnQ6Yy5lbmRwb2ludCwKZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfTtmLlI9PT12b2lkIDB8fGMuZmEhPT0yJiYoYy5mYSE9PTF8fGUubGVuZ3RoKXx8a24ucmVnaXN0ZXIoamEsZi5SLFcpO3ZhciBmYT1mdW5jdGlvbihkYSxtYSl7eCgpO2lmKHEuc3RhdHVzIT09dm9pZCAwKXJldHVybiBQKDE5MiksITE7cS5zdGF0dXM9ZGE7ZS5wdXNoKHEpO3ZhciBQYTtkPT1udWxsfHwoUGE9ZC51byk9PW51bGx8fFBhLmNhbGwoZCxhLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30scSksbWEpO3JldHVybiEwfSxzYT17Rm86amEscmQ6ZnVuY3Rpb24oKXtmYSgyKSYmbCgpfSxvbkZhaWx1cmU6ZnVuY3Rpb24oKXtmYSgzKSYmbCgpfSxwZTpmdW5jdGlvbihkYSl7ZmEoZGEuc3RhdHVzPT09MD8xOmRhLm9rPzA6MyxkYSkmJm4oKX0samY6ZnVuY3Rpb24oKXtmYSgxKSYmbigpfX07T3UoYyxhLFcsUyxJKTtmLnNlbmRSZXF1ZXN0KHNhLFcsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCwKe30sSSYme2JvZHk6SX0sRyYme0diOkd9LE4mJnthZjpOfSkpfX19LHU9ITEsdix4PWZ1bmN0aW9uKCl7diE9PXZvaWQgMCYmKEEuY2xlYXJUaW1lb3V0KHYpLHY9dm9pZCAwKX07TSg1NzQpJiYodj1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2PXZvaWQgMDt1PSEwO2lmKHEuc3RhdHVzPT09dm9pZCAwKXtxLnN0YXR1cz00O3Euc2I9PT12b2lkIDAmJihxLnNiPSJbZmFpbGVkIHRvIGJ1aWxkXSAiK3ApO2UucHVzaChxKTt2YXIgejtkPT1udWxsfHwoej1kLnVvKT09bnVsbHx8ei5jYWxsKGQsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHEpLHZvaWQgMCk7bCgpfX0sNUUzKSk7dmFyIHk9e0ljOnAsbWV0aG9kOmYseXY6ZSxpc1ByaW1hcnk6ZyxDdDpofTt0cnl7Yy5IKGEseSx0KX1jYXRjaCh6KXt4KCksUCgxODgpLGwoKX19CmZ1bmN0aW9uIE91KGEsYixjLGQsZSl7aWYoYS5qYSl7dmFyIGY9Yi50YXJnZXQuZGVzdGluYXRpb25JZCxnPWEuZW5kcG9pbnQ7aWYoZz09PTQ1fHxnPT09NDZ8fGc9PT02OXx8Zz09PTU4fHxnPT09NTcpe3ZhciBoPS9bPyZddGlkcz0oW14mXSspLy5leGVjKGQpO2Y9aD9kZWNvZGVVUklDb21wb25lbnQoaFsxXSkuc3BsaXQoIn4iKTpbZl19TWwoe3RhcmdldElkOmYscmVxdWVzdDpuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHt1cmw6YyxwYXJhbWV0ZXJFbmNvZGluZzphLnBhcmFtZXRlckVuY29kaW5nLGVuZHBvaW50OmEuZW5kcG9pbnR9LGU/e3Bvc3RCb2R5OmV9Ont9KSxxYjp7ZXZlbnRJZDpiLk0uZXZlbnRJZCxwcmlvcml0eUlkOmIuTS5wcmlvcml0eUlkfSxGajp7ZXZlbnRJZDpRKGIsSC5KLnVmKSxwcmlvcml0eUlkOlEoYixILkoudmYpfX0pfX0KZnVuY3Rpb24gTnUoYSl7cmV0dXJuIGEmJmEhPT0iPyI/YVswXSE9PSI/Ij8iPyIuY29uY2F0KGEpOmE6IiJ9O2Z1bmN0aW9uIFB1KGEsYixjLGQsZSl7dmFyIGY7ZT09bnVsbHx8KGY9ZS52dik9PW51bGx8fGYuY2FsbChlLGEsYik7aWYoIWMubGVuZ3RoKXt2YXIgZztlPT1udWxsfHwoZz1lLlRzKT09bnVsbHx8Zy5jYWxsKGUsYSxiLFtdKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKX12YXIgaD1bXSxsPXt0azpiLG1rOmMsams6ZH07aC5wdXNoKEx1KGEsYixjLGUsITAsbCkpO2Zvcih2YXIgbj1tKGQpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKWgucHVzaChMdShhLGIscC52YWx1ZSxlLCExLGwpKTtyZXR1cm4gSnUoaCkudGhlbihmdW5jdGlvbihxKXtmb3IodmFyIHI9W10sdD1tKHEpLHU9dC5uZXh0KCk7IXUuZG9uZTt1PXQubmV4dCgpKXIucHVzaC5hcHBseShyLHcodS52YWx1ZSkpO3ZhciB2O2U9PW51bGx8fCh2PWUuVHMpPT1udWxsfHx2LmNhbGwoZSxhLGIscik7cmV0dXJuIHJ9KX07ZnVuY3Rpb24gUXUoYSxiKXt2YXIgYz1PYS5hcHBseSgyLGFyZ3VtZW50cyksZDtiPT1udWxsfHwoZD1iLnd2KT09bnVsbHx8ZC5jYWxsKGIsYSxjKTtmb3IodmFyIGU9W10sZj1tKGMpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWUucHVzaChSdShhLGcudmFsdWUpKTtmb3IodmFyIGg9W10sbD1tKGUpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO2gucHVzaChQdShhLHAudGsscC5tayxwLmprLGIpKX1KdShoKS50aGVuKGZ1bmN0aW9uKHEpe2Zvcih2YXIgcj1bXSx0PW0ocSksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpci5wdXNoLmFwcGx5KHIsdyh1LnZhbHVlKSk7dmFyIHY7Yj09bnVsbHx8KHY9Yi5Rcyk9PW51bGx8fHYuY2FsbChiLGEsYyxyKX0pfQpmdW5jdGlvbiBSdShhLGIpe3ZhciBjPWZ1bmN0aW9uKGYpe3JldHVybiBmLm1ldGhvZC5pc1N1cHBvcnRlZCgpJiZmLmVuZHBvaW50LmlzU3VwcG9ydGVkKGEpJiZmLmVuZHBvaW50LksoYSl9LGQ9KGIuSChhKXx8W10pLmZpbHRlcihjKSxlPVtdO2QubGVuZ3RoJiYoZT0oYi5LKGEpfHxbXSkubWFwKGZ1bmN0aW9uKGYpe3JldHVybiBmLmZpbHRlcihjKX0pLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gZi5sZW5ndGg+MH0pKTtyZXR1cm57dGs6YixtazpkLGprOmV9fTsKdmFyIFN1PWZ1bmN0aW9uKGEsYil7aWYoTSg1MTcpJiZJZig0NykmJmE9PT00NSlyZXR1cm4gWGooKSsiL2cvZC9jY20vY29sbGVjdD8iK2Iuc3BsaXQoIj8iKVsxXSsiJmdhcC4xcGZiPTEifSxXdT1mdW5jdGlvbigpe3ZhciBhPWFsKDMwLGZ1bmN0aW9uKCl7cmV0dXJuW119KTtpZihhLmxlbmd0aCl7Zm9yKHZhciBiPXt9LGM9bShhKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPVR1KGUua2UsImFwdmMiKSxnPVR1KGUua2UsInRmdCIpLGg9VHUoZS5rZSwidGZkIiksbD1UdShlLmtlLCJ0aWQiKSxuPU5tKGUuZW5kcG9pbnQsZS5rZSkscD1iW25dPWJbbl18fHt4azpbXSxaaDpbXX07cC5aaC5wdXNoKGUpO2w/KHAueGsucHVzaChsKSxwLnVkfHwocC51ZD1sKSk6cC54ay5wdXNoKCIiKTtmPT09IjEiJiYocC5Rbj0hMCk7aWYoZ3x8aClwLk5uPSEwfWEubGVuZ3RoPTA7Zm9yKHZhciBxPW0oT2JqZWN0LmtleXMoYikpLHI9cS5uZXh0KCksdD17fTshci5kb25lO3Q9Cnt5azp2b2lkIDB9LHI9cS5uZXh0KCkpe3ZhciB1PXIudmFsdWUsdj1iW3VdO3QueWs9di54azt2YXIgeD10LnlrLmZpbHRlcihmdW5jdGlvbihEKXtyZXR1cm4gZnVuY3Rpb24oSSxHKXtyZXR1cm4gRC55ay5pbmRleE9mKEkpPT09R319KHQpKS5maWx0ZXIoZnVuY3Rpb24oRCl7cmV0dXJuISFEfSk7aWYoTSg0MjcpKXt2YXIgeT1VdSh2LHgpO1F1KHksdm9pZCAwLEF1KX1lbHNle3ZhciB6PXUrIiZhcHZjPSIrKHYuUW4/IjEiOiIwIik7eC5sZW5ndGgmJih6Kz0iJnRpZHM9Iit4LmpvaW4oIn4iKSk7di51ZCYmKHorPSImdGlkPSIrdi51ZCk7aWYodi5Obil7eis9IiZ0ZnQ9IitTdHJpbmcoTmIoKSk7dmFyIEM9cGQoKTtDIT09dm9pZCAwJiYoeis9IiZ0ZmQ9IitTdHJpbmcoTWF0aC5yb3VuZChDKSkpfVZ1KHYuWmhbMF0uZXZlbnQseix2LlpoWzBdLmVuZHBvaW50LHgubGVuZ3RoP3g6WyIiXSl9fX19LFR1PWZ1bmN0aW9uKGEsYil7dmFyIGM9YVtiXTtpZihjIT09dm9pZCAwKXJldHVybiBkZWxldGUgYVtiXSwKY30sVnU9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpjLGV2ZW50SWQ6YS5NLmV2ZW50SWQscHJpb3JpdHlJZDphLk0ucHJpb3JpdHlJZH0sZj1mdW5jdGlvbihsLG4pe3ZhciBwPWIrWHUobCk7VGwocCxhLGMsZCk7cmV0dXJuIG4ocCl9O2lmKG5kKCkpe3ZhciBnPWZ1bmN0aW9uKCl7fSxoPVN1KGMsYik7aCE9PXZvaWQgMCYmKGc9ZnVuY3Rpb24oKXtZbihlLGgrWHUoOCksdm9pZCAwLHtRZzohMH0pfSk7Zig4LGZ1bmN0aW9uKGwpe1luKGUsbCx2b2lkIDAse1FnOiEwfSxmdW5jdGlvbigpe30sZnVuY3Rpb24oKXtaYyhiK1h1KDMpLGZ1bmN0aW9uKCl7fSxnKX0pfSl9ZWxzZSBmKDUsZnVuY3Rpb24obCl7cmV0dXJuIFduKGUsbCl9KXx8WmMoYitYdSgzKSl9LFV1PWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5aaFswXSxkPXsiXyZhcHZjIjphLlFuPyIxIjoiMCJ9O2IubGVuZ3RoPjAmJihkWyJfJnRpZHMiXT0KYi5qb2luKCJ+IikpO2lmKGEuTm4pe2RbIl8mdGZ0Il09U3RyaW5nKE5iKCkpO3ZhciBlPXBkKCk7ZSE9PXZvaWQgMCYmKGRbIl8mdGZkIl09U3RyaW5nKE1hdGgucm91bmQoZSkpKX1yZXR1cm4gWXUoYy5ldmVudCxhLnVkfHwiIixkKX0sWXU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYS50YXJnZXQse2Rlc3RpbmF0aW9uSWQ6Yn0pLGU9WnUoYSx7dGFyZ2V0OmR9KTtifHxVKGUsRi5ELlFlKTtmb3IodmFyIGY9bShPYmplY3Qua2V5cyhjKSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7VShlLGgsY1toXSl9cmV0dXJuIGV9LFh1PWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDg6Y2FzZSAzOmNhc2UgNTpyZXR1cm4iJmZtdD0iK2E7ZGVmYXVsdDpyZXR1cm4iIn19LCR1PWZ1bmN0aW9uKGEsYil7YT1adShhKTtWKGEsSC5KLkRrLFhvKGZwKSk7VHQoKSYmVShhLCJfJmdjcyIsVXQoKSk7ClUoYSwiXyZnY2QiLFl0KGEuTSkpO3ZhciBjPVhvKGZwKT80NTo0NixkPWZ1bmN0aW9uKCl7dmFyIGY9Yi50aWQ7aWYoTSg0MjcpKXt2YXIgZz1ZdShhLGYsYik7UXUoZyx2b2lkIDAsQXUpfWVsc2V7dmFyIGg9Tm0oYyxiKTtWdShhLGgsYyxbZl0pfX07aWYoeWIoQS5xdWV1ZU1pY3JvdGFzaykpe3ZhciBlPWFsKDMwLGZ1bmN0aW9uKCl7cmV0dXJuW119KTtpZihlLmxlbmd0aD09PTApdHJ5e0EucXVldWVNaWNyb3Rhc2soV3UpfWNhdGNoKGYpe0d1KFQuVy5maik7ZCgpO3JldHVybn1iPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYik7ZS5wdXNoKHtldmVudDphLGtlOmIsZW5kcG9pbnQ6Y30pfWVsc2UgR3UoVC5XLmZqKSxkKCl9O3ZhciBhdj1mdW5jdGlvbihhLGIsYyxkKXtndS5jYWxsKHRoaXMsYSxiLGM9PT12b2lkIDA/MTpjLGQ9PT12b2lkIDA/ITE6ZCwzLHZvaWQgMCl9O3dhKGF2LGd1KTthdi5wcm90b3R5cGUueWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1SKGEsRi5ELnlpKTtyZXR1cm4gYisiLyIrYysiLyJ9O2F2LnByb3RvdHlwZS5SPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnlhKGEsZ3UucHJvdG90eXBlLlIuY2FsbCh0aGlzLGEpKX07dmFyIFg9e1Y6e01rOiJjYWxsX2NvbnZlcnNpb24iLHpkOiJjY21fY29udmVyc2lvbiIsUWs6ImNvbW1vbl9hdyIseGE6ImNvbnZlcnNpb24iLHdxOiJmbG9vZGxpZ2h0IixZZDoiZ2FfY29udmVyc2lvbiIsWmQ6ImdjcF9yZW1hcmtldGluZyIsS2E6InBhZ2VfdmlldyIsdWI6InJlbWFya2V0aW5nIixPYjoidXNlcl9kYXRhX2xlYWQiLEZiOiJ1c2VyX2RhdGFfd2ViIn19O2Z1bmN0aW9uIGJ2KGEsYil7YiYmR2IoYixmdW5jdGlvbihjLGQpe3R5cGVvZiBkIT09Im9iamVjdCImJmQhPT12b2lkIDAmJihhWyIxcC4iK2NdPVN0cmluZyhkKSl9KX07CnZhciBjdj1mdW5jdGlvbihhLGIpe3ZhciBjPVIoYSxGLkQuc2gpO2lmKGMpZm9yKHZhciBkPW0oT2JqZWN0LmtleXMoYykpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlLGc9Y1tmXTtnIT1udWxsJiYoYlsiZ3RtZC4iK2ZdPVN0cmluZyhnKSl9fSxndj1mdW5jdGlvbihhKXt2YXIgYj1kdihhKTtpZihiLmxlbmd0aCl7dmFyIGM9ZXYoYSkuVm4sZD1mdihjKXx8IiI7cmV0dXJuIGIubWFwKGZ1bmN0aW9uKGUpe3ZhciBmPWZ2KGUpO3JldHVybiIiK2QrKGQmJmY/IjsiOiIiKStmfSl9fSxkdj1mdW5jdGlvbihhKXtmb3IodmFyIGI9aHYoYSksYz17fSxkPW0oYiksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWUsZz12b2lkIDA7aWYoZi5oYXNPd25Qcm9wZXJ0eSgiZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsIikpe2c9Zi5nb29nbGVfYnVzaW5lc3NfdmVydGljYWw7dmFyIGg9e307Y1tnXT1jW2ddfHwoaC5nb29nbGVfYnVzaW5lc3NfdmVydGljYWw9CmcsaCl9ZWxzZSBnPSIiLGMuaGFzT3duUHJvcGVydHkoZyl8fChjW2ddPXt9KTt2YXIgbD1jW2ddLG47Zm9yKG4gaW4gZiluIT09Imdvb2dsZV9idXNpbmVzc192ZXJ0aWNhbCImJihuIGluIGx8fChsW25dPVtdKSxsW25dLnB1c2goZltuXSkpfXJldHVybiBPYmplY3Qua2V5cyhjKS5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIGNbcF19KX0saHY9ZnVuY3Rpb24oYSl7dmFyIGI9UihhLEYuRC5IYSk7cmV0dXJuIGImJmIubGVuZ3RoP2IuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiEhY30pLm1hcChmdW5jdGlvbihjKXt2YXIgZD17fTtyZXR1cm4gZC5pZD1paShjKSxkLm9yaWdpbj1jLm9yaWdpbixkLmRlc3RpbmF0aW9uPWMuZGVzdGluYXRpb24sZC5zdGFydF9kYXRlPWMuc3RhcnRfZGF0ZSxkLmVuZF9kYXRlPWMuZW5kX2RhdGUsZC5sb2NhdGlvbl9pZD1jLmxvY2F0aW9uX2lkLGQuZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsPWMuZ29vZ2xlX2J1c2luZXNzX3ZlcnRpY2FsLGR9KTpbXX0sCmlpPWZ1bmN0aW9uKGEpe2EuaXRlbV9pZCE9bnVsbCYmKGEuaWQhPW51bGw/KFAoMTM4KSxhLmlkIT09YS5pdGVtX2lkJiZQKDE0OCkpOlAoMTUzKSk7cmV0dXJuIGppKGEpfSxmdj1mdW5jdGlvbihhKXtpZihhJiZ0eXBlb2YgYT09PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gT2JqZWN0LmtleXMoYSkubWFwKGZ1bmN0aW9uKGIpe3ZhciBjPWl2KGIpO2lmKGMpe3ZhciBkPWFbYl0sZT1BcnJheS5pc0FycmF5KGQpP2p2KGQpOml2KGQpO2lmKGUhPT12b2lkIDApcmV0dXJuIGMrIj0iK2V9fSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiBiIT09dm9pZCAwfSkuam9pbigiOyIpfSxqdj1mdW5jdGlvbihhKXt2YXIgYj1hLm1hcChpdikuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjIT09dm9pZCAwfSk7cmV0dXJuIGIubGVuZ3RoP2Iuam9pbigiLCIpOnZvaWQgMH0saXY9ZnVuY3Rpb24oYSl7aWYoYSE9bnVsbCl7dmFyIGI9dHlwZW9mIGE7aWYoYiE9PSJvYmplY3QiJiYKYiE9PSJmdW5jdGlvbiIpcmV0dXJuIFN0cmluZyhhKS5yZXBsYWNlKC8sL2csIlxcLCIpLnJlcGxhY2UoLzsvZywiXFw7IikucmVwbGFjZSgvPS9nLCJcXD0iKX19LGt2PWZ1bmN0aW9uKGEpe3JldHVybiBPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24oYil7dmFyIGM9YVtiXTtpZihjIT1udWxsJiYoYyE9PSIifHx5Z1tiXSkpcmV0dXJuIGM9PT0hMHx8Yz09PSExP2IrIj0iKyhjPzE6MCk6YisiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGMpfSkuZmlsdGVyKGZ1bmN0aW9uKGIpe3JldHVybiEhYn0pLmpvaW4oIiYiKX0sbHY9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5kYSksYz17fSxkPVEoYSxILkouRWIpO2lmKGI9PT1YLlYueGF8fGI9PT1YLlYudWJ8fGI9PT1YLlYuWWR8fGI9PT1YLlYuemR8fGI9PT1YLlYuWmQpYy5yYW5kb209IiIrZDtiPT09WC5WLnhhfHxiPT09WC5WLnVifHxiPT09WC5WLnpkfHxiPT09WC5WLlpkPyhjLmN2PSIxMSIsYy5mc3Q9IiIrZCxjLmZtdD0iMyIsCmMuYmc9ImZmZmZmZiIsYy5ndWlkPSJPTiIsYy5hc3luYz0iMSIsYy5lbj1hLmV2ZW50TmFtZSk6Yj09PVguVi5ZZCYmKGMuY3Y9IjExIixjLnRpZD1hLnRhcmdldC5kZXN0aW5hdGlvbklkLGMuZnN0PSIiK2QsYy5mbXQ9IjgiLGMuZW49YS5ldmVudE5hbWUpO3ZhciBlPUJzKFsiYXciLCJkYyJdKTtlIT1udWxsJiYoYy5nYWRfc291cmNlPWUpO2MuZ3RtPWR1KHttYzpRKGEsSC5KLk5iKSxUZzphLk0uaXNHdG1FdmVudCxlZjpRKGEsSC5KLkNjKX0pO2IhPT1YLlYudWImJlR0KCkmJihjLmdjcz1VdCgpKTtjLmdjZD1ZdChhLk0pO2F1KCkmJihjLmRtYV9jcHM9WnQoKSk7Yy5kbWE9JHQoKTt2dChFdCgpKSYmKGMudGNmZD1idSgpKTt2YXIgZj1DcChhKTtmJiYoYy50YWdfZXhwPWYpO2ZvLkhbY28uaWEuY2JdIT09Ym8uTWEuVWV8fGZvLktbY28uaWEuY2JdLmlzQ29uc2VudEdyYW50ZWQoKXx8KGMubGltaXRlZF9hZHM9IjEiKTtSKGEsRi5ELmJkKSYmZmkoUihhLEYuRC5iZCksYyk7aWYoUihhLApGLkQudGIpKXt2YXIgZz1SKGEsRi5ELnRiKTtnJiYoZy5sZW5ndGg9PT0yP2dpKGMsImhsIixnKTpnLmxlbmd0aD09PTUmJihnaShjLCJobCIsZy5zdWJzdHJpbmcoMCwyKSksZ2koYywiZ2wiLGcuc3Vic3RyaW5nKDMsNSkpKSl9dmFyIGg9UShhLEguSi5ZZSksbD1mdW5jdGlvbihJLEcpe3ZhciBOPVIoYSxHKTtOJiYoY1tJXT1oP1pzKE4pOk4pfTtsKCJ1cmwiLEYuRC56YSk7bCgicmVmIixGLkQuVWEpO2woInRvcCIsRi5ELlBlKTt2YXIgbj1ndChhLEYuRC5CZCxGLkQuQ2QpO24mJihjLmdjbGF3X3NyYz1uKTt2YXIgcD1ndChhLEYuRC5maCxGLkQuZ2gpO3AmJihjLmdjbGdiX3NyYz1wKTt2YXIgcT1mdW5jdGlvbihJLEcpe2Zvcih2YXIgTj1tKE9iamVjdC5rZXlzKEkpKSxTPU4ubmV4dCgpOyFTLmRvbmU7Uz1OLm5leHQoKSl7dmFyIFc9Uy52YWx1ZTtlaVtXXSYmdHlwZW9mIElbV109PT0ic3RyaW5nIiYmKEdbImV4dC4iK2VpW1ddXT1JW1ddKX19LHI9UihhLEYuRC5XYyk7ciYmCnEocixjKTt2YXIgdD1ldihhKSx1PXQuVm47bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxjLHQua2UpO2J2KGMsUihhLEYuRC5lZCkpO3ZhciB2PVIoYSxGLkQuTmUpO3YhPT12b2lkIDAmJnYhPT0iIiYmKGMudmRuYz1TdHJpbmcodikpO3ZhciB4PVIoYSxGLkQuTGQpO3ghPT12b2lkIDAmJihjLnNoZj14KTt2YXIgeT1SKGEsRi5ELlRjKTt5IT09dm9pZCAwJiYoYy5kZWxjPXkpO2lmKGIhPT1YLlYuWWQpe3ZhciB6PWZ2KHUpO3omJihjLmRhdGE9eil9dmFyIEM9UihhLEYuRC5IYSk7aWYoQyYmKGI9PT1YLlYueGF8fGI9PT1YLlYuWWR8fGI9PT1YLlYuWmR8fGI9PT1YLlYuemQpKXt2YXIgRD1uaShDKTtEIT09dm9pZCAwJiYoYy5pZWRlbGQ9RCk7Yy5pdGVtPWhpKEMpfWh0KGEsYyk7Y3YoYSxjKTtRKGEsSC5KLkloKSYmKGMuYWVjcz0iMSIpO2IhPT1YLlYueGF8fFEoYSxILkouRWMpfHxRKGEsSC5KLm9iKXx8KGMuY2F0ZWdvcnk9ImFjcmNwX3YxXzUxMiIpO3JldHVybiBjfSwKZXY9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9e30sZD1RKGEsSC5KLmRhKSxlPW0oZXUoYSkpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlLGg9UihhLGcpO2lmKGghPT12b2lkIDApaWYoU2IoZywiXyYiKSliW2cuc3Vic3RyaW5nKDIpXT1oO2Vsc2UgaWYoZWkuaGFzT3duUHJvcGVydHkoZykpe2lmKGchPT1GLkQuRWl8fGQ9PT1YLlYueGEmJiFRKGEsSC5KLkVjKSl7dmFyIGw9ZWlbZ107bCYmKGchPT1GLkQuTmQmJmchPT1GLkQuTWR8fE0oNTA0KT9iW2xdPWg6Y1tnXT1oKX19ZWxzZSBjW2ddPWh9cmV0dXJue2tlOmIsVm46Y319O3ZhciBtdj17Tmc6InZhbHVlIixwYjoiY29udmVyc2lvbkNvdW50IixPZzoxfSxudj17Tmc6InRpbWVvdXRzIixwYjoidGltZW91dHMiLE9nOjB9LG92PXtOZzoiZW9wQ291bnQiLHBiOiJlbmRPZlBhZ2VDb3VudCIsT2c6MH0scHY9e05nOiJlcnJvcnMiLHBiOiJlcnJvcnMiLE9nOjB9LHF2PVttdixudixwdixvdl07ZnVuY3Rpb24gcnYoYSxiKXtiPWI9PT12b2lkIDA/MTpiO2lmKCFzdihhKSlyZXR1cm57fTt2YXIgYz10dihxdiksZD1jW2EucGJdO2lmKGQ9PT12b2lkIDB8fGQ9PT0tMSlyZXR1cm4gYzt2YXIgZT17fSxmPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYywoZVthLnBiXT1kK2IsZSkpO3JldHVybiB1dihmKT9mOmN9CmZ1bmN0aW9uIHR2KGEpe3ZhciBiO2E6e3ZhciBjPW5yKCJnY2xfY3RyIik7aWYoYy5lcnJvcj09PTAmJmMudmFsdWUmJnR5cGVvZiBjLnZhbHVlPT09Im9iamVjdCIpe3ZhciBkPWMudmFsdWU7dHJ5e2I9InZhbHVlImluIGQmJnR5cGVvZiBkLnZhbHVlPT09Im9iamVjdCI/ZC52YWx1ZTp2b2lkIDA7YnJlYWsgYX1jYXRjaChwKXt9fWI9dm9pZCAwfWZvcih2YXIgZT1iLGY9e30sZz1tKGEpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlO2lmKGUmJnN2KGwpKXt2YXIgbj1lW2wuTmddO249PT12b2lkIDB8fE51bWJlci5pc05hTihuKT9mW2wucGJdPS0xOmZbbC5wYl09TnVtYmVyKG4pfWVsc2UgZltsLnBiXT0tMX1yZXR1cm4gZn0KZnVuY3Rpb24gdXYoYSxiKXtiPWJ8fHt9O2Zvcih2YXIgYz1OYigpLGQ9dXEoYixjLCEwKSxlPXt9LGY9bShxdiksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWUsbD1hW2gucGJdO2whPT12b2lkIDAmJmwhPT0tMSYmKGVbaC5OZ109bCl9ZS5jcmVhdGlvblRpbWVNcz1jO3JldHVybiBrcigiZ2NsX2N0ciIse3ZhbHVlOmUsZXhwaXJlczpOdW1iZXIoZC5leHBpcmVzKX0pPT09MD8hMDohMX1mdW5jdGlvbiBzdihhKXtyZXR1cm4gQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pPyFhLmZ0fHxZZihhLmZ0KTohMX1mdW5jdGlvbiB2dihhKXtyZXR1cm4gQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pPyFhLkFzfHxZZihhLkFzKTohMX07ZnVuY3Rpb24gd3YoKXtpZih4digpKXt2YXIgYT1ucigibGFzdF9jb252cyIpO2lmKGEuZXJyb3I9PT0wJiZhLnZhbHVlJiZ0eXBlb2YgYS52YWx1ZT09PSJvYmplY3QiKXt2YXIgYj1hLnZhbHVlO2lmKGIudmFsdWUmJkFycmF5LmlzQXJyYXkoYi52YWx1ZSkpe3ZhciBjPWIudmFsdWU7aWYoIShjLmxlbmd0aD4xKSl7Zm9yKHZhciBkPVtdLGU9bShjKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtpZih0eXBlb2YgZyE9PSJvYmplY3QifHxnPT09bnVsbHx8dHlwZW9mIGcucmFuZG9tIT09Im51bWJlciJ8fHR5cGVvZiBnLmxhYmVsIT09InN0cmluZyJ8fGcubGFiZWwubGVuZ3RoPjIwMClyZXR1cm47ZC5wdXNoKHtyYW5kb206Zy5yYW5kb20sbGFiZWw6Zy5sYWJlbH0pfXJldHVybiBkfX19fX0KZnVuY3Rpb24geXYoYSxiKXsheHYoKXx8YS5sZW5ndGg+MXx8YS5sZW5ndGg9PT0xJiZhWzBdLmxhYmVsLmxlbmd0aD4yMDB8fChiPWJ8fHt9LGtyKCJsYXN0X2NvbnZzIix7dmFsdWU6YSxleHBpcmVzOk51bWJlcih1cShiKS5leHBpcmVzKX0pKX1mdW5jdGlvbiB4digpe3JldHVybiBCbChbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSkmJllmKDExKX07ZnVuY3Rpb24genYoYSl7dmFyIGI9TWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjIxNDc0ODM2NDcpO3JldHVybiBhP1N0cmluZyhiXm5nKGEpJjIxNDc0ODM2NDcpOlN0cmluZyhiKX1mdW5jdGlvbiBBdihhKXtyZXR1cm5benYoYSksTWF0aC5yb3VuZChOYigpLzFFMyldLmpvaW4oIi4iKX1mdW5jdGlvbiBCdihhLGIsYyxkLGUpe3ZhciBmPXJxKGIpLGc7cmV0dXJuKGc9Z3EoYSxmLHNxKGMpLGQsZSkpPT1udWxsP3ZvaWQgMDpnLkNyfTt2YXIgQ3Y9WyIxIl0sRHY9e30sRXY9e307ZnVuY3Rpb24gRnYoYSl7cmV0dXJuIEV2W0d2KGEpXX1mdW5jdGlvbiBIdihhLGIpe2I9Yj09PXZvaWQgMD8hMDpiO3ZhciBjPUd2KGEucHJlZml4KTtpZihEdltjXSlJdihhKSxKdihhKTtlbHNlIGlmKEt2KGMsYS5wYXRoLGEuZG9tYWluKSl7dmFyIGQ9RnYoYS5wcmVmaXgpfHx7aWQ6dm9pZCAwLGtjOnZvaWQgMH07YiYmTHYoYSxkKTtJdihhKTtKdihhKX1lbHNle3ZhciBlPVRqKCJhdWlkZGMiKTtpZihlKXNiKCJUQUdHSU5HIiwxNyksRHZbY109ZTtlbHNlIGlmKGIpe3ZhciBmPUd2KGEucHJlZml4KSxnPUF2KCk7TXYoZixnLGEpO0t2KGMsYS5wYXRoLGEuZG9tYWluKTtJdihhLCEwKTtKdihhLCEwKX19fQpmdW5jdGlvbiBJdihhLGIpeyhiPT09dm9pZCAwPzA6YikmJnN2KG12KSYmb3IoImdjbF9jdHIiKTtpZih2dihtdikmJnR2KFttdl0pW212LnBiXT09PS0xKXtmb3IodmFyIGM9e30sZD0oY1ttdi5wYl09MCxjKSxlPW0ocXYpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKXt2YXIgZz1mLnZhbHVlO2chPT1tdiYmdnYoZykmJihkW2cucGJdPTApfXV2KGQsYSl9fWZ1bmN0aW9uIEp2KGEsYil7KGI9PT12b2lkIDA/MDpiKSYmeHYoKSYmb3IoImxhc3RfY29udnMiKTshQmwoWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pfHwhWWYoMTIpfHx3digpfHx5dihbXSxhKX0KZnVuY3Rpb24gTHYoYSxiKXt2YXIgYz1HdihhLnByZWZpeCksZD1EdltjXTtpZihkKXt2YXIgZT1kLnNwbGl0KCIuIik7aWYoZS5sZW5ndGg9PT0yKXt2YXIgZj1OdW1iZXIoZVsxXSl8fDA7aWYoZil7dmFyIGc9ZDtZZigxOSkmJmIuZmk/Zz1kKyIuIisoYi5zZXNzaW9uSWR8fCItLi0iKSsiLiIrKGIua2M/Yi5rYzpNYXRoLmZsb29yKE5iKCkvMUUzKSkrIi4iK2IuZmkrIi4iKyhiLkxjP2IuTGM6TWF0aC5mbG9vcihOYigpLzFFMykpOmIuc2Vzc2lvbklkJiYoZz1kKyIuIitiLnNlc3Npb25JZCsiLiIrKGIua2M/Yi5rYzpNYXRoLmZsb29yKE5iKCkvMUUzKSkpO012KGMsZyxhLGYqMUUzKX19fX1mdW5jdGlvbiBNdihhLGIsYyxkKXt2YXIgZTtlPVsiMSIsdHEoYy5kb21haW4sYy5wYXRoKSxiXS5qb2luKCIuIik7dmFyIGY9dXEoYyxkKTtmLk1jPU52KCk7b3EoYSxlLGYpfQpmdW5jdGlvbiBLdihhLGIsYyl7dmFyIGQ9QnYoYSxiLGMsQ3YsTnYoKSk7aWYoIWQpcmV0dXJuITE7T3YoYSxkKTtyZXR1cm4hMH1mdW5jdGlvbiBPdihhLGIpe3ZhciBjPWIuc3BsaXQoIi4iKTtpZihjLmxlbmd0aD09PTMpRXZbYV09e3Nlc3Npb25JZDpjWzBdKyIuIitjWzFdLGtjOk51bWJlcihjWzJdKXx8MCxMYzowfTtlbHNlIGlmKGMubGVuZ3RoPj0yJiYoRHZbYV09Y1swXSsiLiIrY1sxXSxjLnNoaWZ0KCksYy5zaGlmdCgpLGMubGVuZ3RoPj0zKSl7dmFyIGQ9e3Nlc3Npb25JZDpjWzBdPT09Ii0iP3ZvaWQgMDpjWzBdKyIuIitjWzFdLGtjOk51bWJlcihjWzJdKXx8MCxMYzowfTtpZihZZigxOSkmJmMubGVuZ3RoPj02KXt2YXIgZT1jWzNdKyIuIitjWzRdLGY9TnVtYmVyKGNbNV0pfHwwO2UmJmYhPT0wJiYoZC5maT1lLGQuTGM9Zil9RXZbYV09ZH19ZnVuY3Rpb24gR3YoYSl7cmV0dXJuKGF8fCJfZ2NsIikrIl9hdSJ9CmZ1bmN0aW9uIFB2KGEpe2Z1bmN0aW9uIGIoKXtCbChjKSYmYSgpfXZhciBjPU52KCk7SGwoZnVuY3Rpb24oKXtiKCk7QmwoYyl8fElsKGIsYyl9LGMpfWZ1bmN0aW9uIFF2KGEpe3ZhciBiPVVxKCEwKSxjPUd2KGEucHJlZml4KTtQdihmdW5jdGlvbigpe3ZhciBkPWJbY107aWYoZCl7T3YoYyxkKTt2YXIgZT1OdW1iZXIoRHZbY10uc3BsaXQoIi4iKVsxXSkqMUUzO2lmKGUpe3NiKCJUQUdHSU5HIiwxNik7dmFyIGY9dXEoYSxlKTtmLk1jPU52KCk7dmFyIGc9WyIxIix0cShhLmRvbWFpbixhLnBhdGgpLGRdLmpvaW4oIi4iKTtvcShjLGcsZil9fX0pfWZ1bmN0aW9uIFJ2KGEsYixjLGQsZSl7ZT1lfHx7fTt2YXIgZj1mdW5jdGlvbigpe3ZhciBnPXt9LGg9QnYoYSxlLnBhdGgsZS5kb21haW4sQ3YsTnYoKSk7aCYmKGdbYV09aCk7cmV0dXJuIGd9O1B2KGZ1bmN0aW9uKCl7YXIoZixiLGMsZCl9KX0KZnVuY3Rpb24gTnYoKXtyZXR1cm5bImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXX07CnZhciBUdj1mdW5jdGlvbihhKXtyZXR1cm4gU3YoYSx7T2o6ITB9KS5TaH0sU3Y9ZnVuY3Rpb24oYSxiKXthPWF8fHt9O2lmKCFYbyhGLkQua2EpKXJldHVybnt9O3ZhciBjPVV2KGEpLGQ9Yy5TaCxlPWMuaWs7Yi5PaiYmIWQmJihkPUF2KCkpO2IuWGgmJiFlJiYoZT1BdigpKTt2YXIgZj17fTtkJiYoZi5zZXNzaW9uSWQ9ZCk7ZSYmKGYuZmk9ZSk7dmFyIGc9RnYoSHIoYS5wcmVmaXgpKTtnJiYoYi5PaiYmIWIuWGg/Zy5MYyYmKGYuTGM9Zy5MYyk6Yi5YaCYmIWIuT2omJmcua2MmJihmLmtjPWcua2MpKTtpZihkfHxlKXt2YXIgaD1hLGw9R3YoaC5wcmVmaXgpO0x2KGgsZik7ZGVsZXRlIER2W2xdO2RlbGV0ZSBFdltsXTtLdihsLGgucGF0aCxoLmRvbWFpbil9cmV0dXJuIFV2KGEpfSxVdj1mdW5jdGlvbihhKXtpZighWG8oRi5ELmthKSlyZXR1cm57fTthPWF8fHt9O0h2KGEsITEpO3ZhciBiPUZ2KEhyKGEucHJlZml4KSk7aWYoIWIpcmV0dXJue307dmFyIGM9TmIoKSxkPXt9O2lmKGMtCmIua2MqMUUzPD0oTSg0NTApfHxNKDQ0Myk/ODY0RTU6MThFNSkpe3ZhciBlPWIuc2Vzc2lvbklkO2lmKGUpe3ZhciBmPWUuc3BsaXQoIi4iKTtmLmxlbmd0aD09PTImJmMtKE51bWJlcihmWzFdKXx8MCkqMUUzPD04NjRFNSYmKGQuU2g9ZSl9fWlmKGIuTGMmJmMtYi5MYyoxRTM8PTg2NEU1KXt2YXIgZz1iLmZpO2lmKGcpe3ZhciBoPWcuc3BsaXQoIi4iKTtoLmxlbmd0aD09PTImJmMtKE51bWJlcihoWzFdKXx8MCkqMUUzPD04NjRFNSYmKGQuaWs9Zyl9fXJldHVybiBkfTt2YXIgVnY9ImVtYWlsIGVtYWlsX2FkZHJlc3Mgc2hhMjU2X2VtYWlsX2FkZHJlc3MgcGhvbmVfbnVtYmVyIHNoYTI1Nl9waG9uZV9udW1iZXIgZmlyc3RfbmFtZSBsYXN0X25hbWUiLnNwbGl0KCIgIiksV3Y9ImZpcnN0X25hbWUgc2hhMjU2X2ZpcnN0X25hbWUgbGFzdF9uYW1lIHNoYTI1Nl9sYXN0X25hbWUgc3RyZWV0IHNoYTI1Nl9zdHJlZXQgY2l0eSByZWdpb24gY291bnRyeSBwb3N0YWxfY29kZSIuc3BsaXQoIiAiKTtmdW5jdGlvbiBYdihhLGIpe2lmKCFiLl90YWdfbWV0YWRhdGEpe2Zvcih2YXIgYz17fSxkPTAsZT0wO2U8YS5sZW5ndGg7ZSsrKWQrPVl2KGFbZV0sYixjKT8xOjA7ZD4wJiYoYi5fdGFnX21ldGFkYXRhPWMpfX0KZnVuY3Rpb24gWXYoYSxiLGMpe3ZhciBkPWJbYV07aWYoZD09PXZvaWQgMHx8ZD09PW51bGwpcmV0dXJuITE7Y1thXT1BcnJheS5pc0FycmF5KGQpP2QubWFwKGZ1bmN0aW9uKCl7cmV0dXJue21vZGU6ImMifX0pOnttb2RlOiJjIn07cmV0dXJuITB9ZnVuY3Rpb24gWnYoYSl7aWYoTSg1MjMpJiZhKXtYdihWdixhKTtmb3IodmFyIGI9QmIoYS5hZGRyZXNzKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY107ZCYmWHYoV3YsZCl9dmFyIGU9YS5ob21lX2FkZHJlc3M7ZSYmWHYoV3YsZSl9fQpmdW5jdGlvbiAkdihhLGIsYyl7ZnVuY3Rpb24gZChmLGcpe2c9U3RyaW5nKGcpLnN1YnN0cmluZygwLDEwMCk7ZS5wdXNoKCIiK2YrZW5jb2RlVVJJQ29tcG9uZW50KGcpKX1pZighYylyZXR1cm4iIjt2YXIgZT1bXTtkKCJpIixTdHJpbmcoYSkpO2QoImYiLGIpO2MubW9kZSYmZCgibSIsYy5tb2RlKTtjLmlzUHJlSGFzaGVkJiZkKCJwIiwiMSIpO2MucmF3TGVuZ3RoJiZkKCJyIixTdHJpbmcoYy5yYXdMZW5ndGgpKTtjLm5vcm1hbGl6ZWRMZW5ndGgmJmQoIm4iLFN0cmluZyhjLm5vcm1hbGl6ZWRMZW5ndGgpKTtjLmxvY2F0aW9uJiZkKCJsIixjLmxvY2F0aW9uKTtjLnNlbGVjdG9yJiZkKCJzIixjLnNlbGVjdG9yKTtyZXR1cm4gZS5qb2luKCIuIil9O3ZhciBhdz12b2lkIDA7ZnVuY3Rpb24gYncoKXtpZighYXcpe3ZhciBhPW9tKGptLmJhLm9wLG5ldyBNYXApO2F3PW5ldyBvZyhhKX1yZXR1cm4gYXd9Owp2YXIgY3c9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIGE7Zm9yKHZhciBiPXt9LGM9bShPYmplY3Qua2V5cyhhKSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPWQudmFsdWU7ZSE9PSJhZGRyZXNzIiYmZSE9PSJwaG9uZV9udW1iZXIiJiZlIT09InNoYTI1Nl9waG9uZV9udW1iZXIiJiYoYltlXT1hW2VdKX1yZXR1cm4gYn0sZnc9ZnVuY3Rpb24oYSl7dmFyIGI9TSg1MjMpLGM9WyJ0di4xIl0sZD1bInR2ZC4xIl0sZT1kdyhhKTtpZihlKXJldHVybiBjLnB1c2goZSkse2hhc1VwZDohMSxPbzpjLmpvaW4oIn4iKSxZbjpjLmpvaW4oIn4iKSxlbmNyeXB0aW9uS2V5U3RyaW5nOnZvaWQgMCxpaTp7fSxtZXRhZGF0YVBhcmFtOmI/ZC5qb2luKCJ+Iik6dm9pZCAwfTt2YXIgZj17fSxnPTA7dmFyIGg9MCxsPWV3KGEsZnVuY3Rpb24ocSxyLHQpe2grKzt2YXIgdT1xLnZhbHVlLHY7CmlmKHQpe3ZhciB4PXIrIl9fIitnKys7dj0iJHt1c2VyRGF0YS4iK3grInxzaGEyNTZ9IjtmW3hdPXV9ZWxzZSB2PWVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQodSkpO3EuaW5kZXghPT12b2lkIDAmJihyKz1xLmluZGV4KTtjLnB1c2gocisiLiIrdik7aWYoYil7dmFyIHk9JHYoaCxyLHEubWV0YWRhdGEpO3kmJmQucHVzaCh5KX19KS5oYXNVcGQsbj1kLmpvaW4oIn4iKTt2YXIgcD1jLmpvaW4oIn4iKTtyZXR1cm57aGFzVXBkOmwsT286cCxpaTp7dXNlckRhdGE6Zn0sWW46InR2LjF+JHsiKyhwKyJ8IisoTSg1NTUpPyJlbmNyeXB0X3dpdGhfbWVtbyI6ImVuY3J5cHQiKSsifSIpLGVuY3J5cHRpb25LZXlTdHJpbmc6RSg0MyksbWV0YWRhdGFQYXJhbTpiP246dm9pZCAwfX0saHc9ZnVuY3Rpb24oYSl7aWYoIShhIT1udWxsJiZPYmplY3Qua2V5cyhhKS5sZW5ndGg+MCkpcmV0dXJuITE7CnZhciBiPWd3KGEpO3JldHVybiBldyhiLGZ1bmN0aW9uKCl7fSkuaGFzVXBkfSxldz1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD9mdW5jdGlvbigpe306Yjtmb3IodmFyIGM9ITEsZD0hMSxlPW0oYSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7aWYoZy52YWx1ZSl7dmFyIGg9aXdbZy5uYW1lXTtpZihoKXt2YXIgbD1qdyhnKTtsJiYoYz0hMCk7ZD0hMDtiKGcsaCxsKX19fXJldHVybntoYXNVcGQ6ZCxoYXNVcGRUb0hhc2g6Y319LGp3PWZ1bmN0aW9uKGEpe3ZhciBiPWt3KGEubmFtZSksYz0vXmVcZCskLy50ZXN0KGEudmFsdWUpLGQ7aWYoZD1iJiYhYyl7dmFyIGU9YS52YWx1ZTtkPSEobHcudGVzdChlKXx8eWkudGVzdChlKSl9cmV0dXJuIGR9LGt3PWZ1bmN0aW9uKGEpe3JldHVybiBtdy5pbmRleE9mKGEpIT09LTF9LHN3PWZ1bmN0aW9uKGEsYixjKXtpZih5YihBLlByb21pc2UpKXRyeXt2YXIgZD0hMTt2YXIgZT1ndyhhLGQpLGY9bncoZSkudGhlbihmdW5jdGlvbihoKXt2YXIgbD1oLnliLG49bC5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIVNiKHEubmFtZSwicmF3Iil9KSxwPW93KHt5YjpufSk7cmV0dXJue3Jlc3VsdDp7cGFyYW06cC5wYXJhbSxoYXNVcGRUb0hhc2g6cC5oYXNVcGRUb0hhc2gsaGFzVXBkOnAuaGFzVXBkLGhhZEVycm9yOnAuaGFkRXJyb3IsbWV0YWRhdGFQYXJhbTpwLm1ldGFkYXRhUGFyYW19LHliOmx9fSk7cmV0dXJuIGYudGhlbihmdW5jdGlvbihoKXtyZXR1cm4gaC5yZXN1bHR9KX1jYXRjaChoKXt9fSxxdz1mdW5jdGlvbihhKXt2YXIgYj12b2lkIDA7cmV0dXJuIGJ9LG93PWZ1bmN0aW9uKGEpe3ZhciBiPU0oNTIzKSxjPWEueWIsZD1bInR2LjEiXSxlPVsidHZkLjEiXSxmPWR3KGMpO2lmKGYpcmV0dXJuIGQucHVzaChmKSx7cGFyYW06ZC5qb2luKCJ+IiksaGFzVXBkVG9IYXNoOiExLGhhc1VwZDohMSxoYWRFcnJvcjohMCxtZXRhZGF0YVBhcmFtOmI/ZS5qb2luKCJ+Iik6dm9pZCAwfTt2YXIgZz1jLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4hancocSl9KSxoPTAsbD1ldyhnLGZ1bmN0aW9uKHEscil7aCsrO3ZhciB0PXEudmFsdWUsdT1xLmluZGV4O3UhPT12b2lkIDAmJihyKz11KTtkLnB1c2gocisiLiIrdCk7aWYoYil7dmFyIHY9JHYoaCxyLHEubWV0YWRhdGEpO3YmJmUucHVzaCh2KX19KSxuPWwuaGFzVXBkVG9IYXNoLHA9bC5oYXNVcGQ7cmV0dXJue3BhcmFtOmVuY29kZVVSSUNvbXBvbmVudChkLmpvaW4oIn4iKSksCmhhc1VwZFRvSGFzaDpuLGhhc1VwZDpwLGhhZEVycm9yOiExLG1ldGFkYXRhUGFyYW06Yj9lLmpvaW4oIn4iKTp2b2lkIDB9fSxkdz1mdW5jdGlvbihhKXtpZihhLmxlbmd0aD09PTEmJmFbMF0ubmFtZT09PSJlcnJvcl9jb2RlIilyZXR1cm4gaXcuZXJyb3JfY29kZSsiLiIrYVswXS52YWx1ZX0scHc9ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGg9PT0xJiZhWzBdLm5hbWU9PT0iZXJyb3JfY29kZSIpcmV0dXJuITE7Zm9yKHZhciBiPW0oYSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWU7aWYoaXdbZC5uYW1lXSYmZC52YWx1ZSlyZXR1cm4hMH1yZXR1cm4hMX0sZ3c9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/ITE6Yjt2YXIgYz1bXTtpZihBLmxvY2F0aW9uLnByb3RvY29sIT09Imh0dHBzOiIpcmV0dXJuIGMucHVzaCh7bmFtZToiZXJyb3JfY29kZSIsdmFsdWU6ImUzIixpbmRleDp2b2lkIDB9KSxjO3ZhciBkPWMucHVzaCxlPWQuYXBwbHksZj1bXSwKZz1mLmNvbmNhdCxoLGw9YS5fdGFnX21ldGFkYXRhfHx7fTtoPVtdLmNvbmNhdCh3KHR3KHtuYW1lOiJlbWFpbCIscmF3OmEuZW1haWwsU2E6YS5zaGEyNTZfZW1haWxfYWRkcmVzcyxhYjpsLmVtYWlsLG1kOmwuc2hhMjU2X2VtYWlsX2FkZHJlc3N9LHV3KSksdyh0dyh7bmFtZToicGhvbmVfbnVtYmVyIixyYXc6YS5waG9uZV9udW1iZXIsU2E6YS5zaGEyNTZfcGhvbmVfbnVtYmVyLGFiOmwucGhvbmVfbnVtYmVyLG1kOmwuc2hhMjU2X3Bob25lX251bWJlcn0sdncpKSk7dmFyIG49dyhoKSxwLHE9YS5fdGFnX21ldGFkYXRhfHx7fSxyPWEuaG9tZV9hZGRyZXNzfHx7fSx0PXIuX3RhZ19tZXRhZGF0YXx8e307cD1bXS5jb25jYXQodyh0dyh7bmFtZToiZmlyc3RfbmFtZSIscmF3OmEuZmlyc3RfbmFtZSxTYTphLnNoYTI1Nl9maXJzdF9uYW1lLGFiOnEuZmlyc3RfbmFtZSxtZDpxLnNoYTI1Nl9maXJzdF9uYW1lfSx3dyh4dykpKSx3KHR3KHtuYW1lOiJsYXN0X25hbWUiLHJhdzphLmxhc3RfbmFtZSwKU2E6YS5zaGEyNTZfbGFzdF9uYW1lLGFiOnEubGFzdF9uYW1lLG1kOnEuc2hhMjU2X2xhc3RfbmFtZX0sd3coeHcpKSksdyh0dyh7bmFtZToic3RyZWV0IixyYXc6ci5zdHJlZXQsU2E6ci5zaGEyNTZfc3RyZWV0LGFiOnQuc3RyZWV0LG1kOnQuc2hhMjU2X3N0cmVldH0sd3coeXcpKSksdyh0dyh7bmFtZToiY2l0eSIscmF3OnIuY2l0eSxhYjp0LmNpdHl9LHd3KHl3KSkpLHcodHcoe25hbWU6InBvc3RhbF9jb2RlIixyYXc6ci5wb3N0YWxfY29kZSxhYjp0LnBvc3RhbF9jb2RlfSx3dyh6dykpKSx3KHR3KHtuYW1lOiJyZWdpb24iLHJhdzpyLnJlZ2lvbixhYjp0LnJlZ2lvbn0sd3coeXcpKSksdyh0dyh7bmFtZToiY291bnRyeSIscmF3OnIuY291bnRyeSxhYjp0LmNvdW50cnl9LHd3KHp3KSkpKTtmb3IodmFyIHU9dyhwKSx2PVtdLHg9QmIoYS5hZGRyZXNzfHx7fSkseT0wO3k8eC5sZW5ndGg7eSsrKXtmb3IodmFyIHo9eFt5XSxDPXouX3RhZ19tZXRhZGF0YXx8e30sRD1bXS5jb25jYXQodyh0dyh7bmFtZToiZmlyc3RfbmFtZSIsCnJhdzp6LmZpcnN0X25hbWUsU2E6ei5zaGEyNTZfZmlyc3RfbmFtZSxhYjpDLmZpcnN0X25hbWUsbWQ6Qy5zaGEyNTZfZmlyc3RfbmFtZX0seHcpKSx3KHR3KHtuYW1lOiJsYXN0X25hbWUiLHJhdzp6Lmxhc3RfbmFtZSxTYTp6LnNoYTI1Nl9sYXN0X25hbWUsYWI6Qy5sYXN0X25hbWUsbWQ6Qy5zaGEyNTZfbGFzdF9uYW1lfSx4dykpLHcodHcoe25hbWU6InN0cmVldCIscmF3Onouc3RyZWV0LFNhOnouc2hhMjU2X3N0cmVldCxhYjpDLnN0cmVldCxtZDpDLnNoYTI1Nl9zdHJlZXR9LHl3KSksdyh0dyh7bmFtZToiY2l0eSIscmF3OnouY2l0eSxhYjpDLmNpdHl9LHl3KSksdyh0dyh7bmFtZToicG9zdGFsX2NvZGUiLHJhdzp6LnBvc3RhbF9jb2RlLGFiOkMucG9zdGFsX2NvZGV9LHp3KSksdyh0dyh7bmFtZToicmVnaW9uIixyYXc6ei5yZWdpb24sYWI6Qy5yZWdpb259LHl3KSksdyh0dyh7bmFtZToiY291bnRyeSIscmF3OnouY291bnRyeSxhYjpDLmNvdW50cnl9LHp3KSkpLEk9MDtJPApELmxlbmd0aDtJKyspRFtJXS5pbmRleD15O3YucHVzaC5hcHBseSh2LHcoRCkpfWUuY2FsbChkLGMsZy5jYWxsKGYsbix1LHcodikpKTtpZihiJiZCcCgpKXt2YXIgRz1jLnB1c2gsTj1HLmFwcGx5LFM9W107Uy5wdXNoLmFwcGx5KFMsW10uY29uY2F0KHcoQXcoe25hbWU6InJhd19lbWFpbCIscmF3OmEuZW1haWwsU2E6YS5zaGEyNTZfZW1haWxfYWRkcmVzc30pKSx3KEF3KHtuYW1lOiJyYXdfcGhvbmVfbnVtYmVyIixyYXc6YS5waG9uZV9udW1iZXIsU2E6YS5zaGEyNTZfcGhvbmVfbnVtYmVyfSkpKSk7Zm9yKHZhciBXPUJiKGEuYWRkcmVzc3x8e30pLGVhPTA7ZWE8Vy5sZW5ndGg7ZWErKyl7dmFyIGphPVdbZWFdO1MucHVzaC5hcHBseShTLFtdLmNvbmNhdCh3KEF3KHtuYW1lOiJyYXdfZmlyc3RfbmFtZSIscmF3OmphLmZpcnN0X25hbWUsU2E6amEuc2hhMjU2X2ZpcnN0X25hbWV9LGVhKSksdyhBdyh7bmFtZToicmF3X2xhc3RfbmFtZSIscmF3OmphLmxhc3RfbmFtZSxTYTpqYS5zaGEyNTZfbGFzdF9uYW1lfSwKZWEpKSx3KEF3KHtuYW1lOiJyYXdfc3RyZWV0IixyYXc6amEuc3RyZWV0LFNhOmphLnNoYTI1Nl9zdHJlZXR9LGVhKSkpKX1pZihhLmZpcnN0X25hbWV8fGEuaG9tZV9hZGRyZXNzKXtTLnB1c2guYXBwbHkoUyxbXS5jb25jYXQodyhBdyh7bmFtZToicmF3X2ZpcnN0X25hbWUiLHJhdzphLmZpcnN0X25hbWUsU2E6YS5zaGEyNTZfZmlyc3RfbmFtZX0pKSx3KEF3KHtuYW1lOiJyYXdfbGFzdF9uYW1lIixyYXc6YS5sYXN0X25hbWUsU2E6YS5zaGEyNTZfbGFzdF9uYW1lfSkpKSk7dmFyIGZhPWEuaG9tZV9hZGRyZXNzfHx7fTtTLnB1c2guYXBwbHkoUyx3KEF3KHtuYW1lOiJyYXdfc3RyZWV0IixyYXc6ZmEuc3RyZWV0LFNhOmZhLnNoYTI1Nl9zdHJlZXR9KSkpfU4uY2FsbChHLGMsdyhTKSl9cmV0dXJuIGN9LHd3PWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXtQKDY0KTtyZXR1cm4gYShiKX19LEF3PWZ1bmN0aW9uKGEsYil7dmFyIGM9W107aWYoYS5TYSlyZXR1cm4gYztmb3IodmFyIGQ9CkJiKGEucmF3KSxlPTA7ZTxkLmxlbmd0aDsrK2Upe3ZhciBmPUJ3KGRbZV0pO2lmKGYmJiF5aS50ZXN0KGYpKWlmKC9eZVxkKyQvLnRlc3QoZikpYy5wdXNoKHtuYW1lOmEubmFtZSx2YWx1ZTpmLGluZGV4OmJ9KTtlbHNle3ZhciBnPWMsaD1nLnB1c2gsbD1hLm5hbWUsbjt2YXIgcD1BO3RyeXtuPUJpKEFycmF5LmZyb20oWmIoZikpLHApfWNhdGNoKHEpe249ImUwIn1oLmNhbGwoZyx7bmFtZTpsLHZhbHVlOm4saW5kZXg6Yn0pfX1yZXR1cm4gY30sdHc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkPU0oNTIzKSxlPWEucmF3LGY9ZD9hLmFiOnZvaWQgMDtDdyhlLCExKTthLlNhJiYoZSYmUCg5MCksZT1hLlNhLGY9ZD9hLm1kOnZvaWQgMCxDdyhlLCEwKSk7Zm9yKHZhciBnPUJiKGUpLGg9QmIoZiksbD0wO2w8Zy5sZW5ndGg7KytsKXt2YXIgbjt2YXIgcD1hLm5hbWUscT1iLHI9aFtsXSx0PUJ3KGdbbF0pO2lmKHQhPT0iIilpZih5aS50ZXN0KHQpKXtyJiYoci5pc1ByZUhhc2hlZD0hMCk7CnZhciB1PXtuYW1lOnAsdmFsdWU6dCxpbmRleDp2b2lkIDB9O3ImJih1Lm1ldGFkYXRhPXIpO249dX1lbHNle3ZhciB2PXEodCkseD17bmFtZTpwLHZhbHVlOnYsaW5kZXg6dm9pZCAwfTtyJiYoeC5tZXRhZGF0YT1yLHYmJihyLnJhd0xlbmd0aD1TdHJpbmcodCkubGVuZ3RoLHIubm9ybWFsaXplZExlbmd0aD12Lmxlbmd0aCkpO249eH1lbHNlIG49dm9pZCAwO3ZhciB5PW47eSYmYy5wdXNoKHkpfXJldHVybiBjfSxDdz1mdW5jdGlvbihhLGIpe2lmKHpiKGEpfHxBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgYz1CYihhKSxkPTA7ZDxjLmxlbmd0aDsrK2Qpe3ZhciBlPUJ3KGNbZF0pLGY9eWkudGVzdChlKTtiJiYhZiYmUCg4OSk7IWImJmYmJlAoODgpfX0sRHc9ZnVuY3Rpb24oYSl7dmFyIGI9YT9ndyhhKTpbXTtyZXR1cm4gb3coe3liOmJ9KX0sRXc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEhPW51bGwmJk9iamVjdC5rZXlzKGEpLmxlbmd0aD4wJiZ5YihBLlByb21pc2UpP2d3KGEpLnNvbWUoZnVuY3Rpb24oYil7cmV0dXJuIGIudmFsdWUmJgprdyhiLm5hbWUpJiYheWkudGVzdChiLnZhbHVlKX0pOiExfSxCdz1mdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD8iIjp6YihhKT9MYihTdHJpbmcoYSkpOiJlMCJ9LHp3PWZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoRncsIiIpfSx4dz1mdW5jdGlvbihhKXtyZXR1cm4geXcoYS5yZXBsYWNlKC9ccy9nLCIiKSl9LHl3PWZ1bmN0aW9uKGEpe3JldHVybiBMYihhLnJlcGxhY2UoR3csIiIpLnRvTG93ZXJDYXNlKCkpfSx2dz1mdW5jdGlvbihhKXthPWEucmVwbGFjZSgvW1xzLSgpLy5dL2csIiIpO2EuY2hhckF0KDApIT09IisiJiYoYT0iKyIrYSk7cmV0dXJuKE0oNTk3KT9IdzpJdykudGVzdChhKT9hOiJlMCJ9LHV3PWZ1bmN0aW9uKGEpe3ZhciBiPWEudG9Mb3dlckNhc2UoKS5zcGxpdCgiQCIpO2lmKGIubGVuZ3RoPT09Mil7dmFyIGM9YlswXTsvXihnbWFpbHxnb29nbGVtYWlsKVwuLy50ZXN0KGJbMV0pJiYoYz1jLnJlcGxhY2UoL1wuL2csIiIpKTtjPWMrIkAiK2JbMV07aWYoSncudGVzdChjKSlyZXR1cm4gY31yZXR1cm4iZTAifSwKS3c9ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiBhLmZvckVhY2goZnVuY3Rpb24oYil7Yi52YWx1ZSYma3coYi5uYW1lKSYmKGIudmFsdWU9RGkoYi52YWx1ZSkpfSkse3liOmF9fWNhdGNoKGIpe3JldHVybnt5YjpbXX19fSxudz1mdW5jdGlvbihhKXtyZXR1cm4gYS5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiLnZhbHVlJiZrdyhiLm5hbWUpfSk/eWIoQS5Qcm9taXNlKT9Qcm9taXNlLmFsbChhLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYi52YWx1ZSYma3coYi5uYW1lKT9BaShiLnZhbHVlKS50aGVuKGZ1bmN0aW9uKGMpe2IudmFsdWU9Y30pOlByb21pc2UucmVzb2x2ZSgpfSkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm57eWI6YX19KS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt5YjpbXX19KTp7dGhlbjpmdW5jdGlvbihiKXtiKHt5YjpbXX0pfX06UHJvbWlzZS5yZXNvbHZlKHt5YjphfSl9LEd3PS9bMC05YH4hQCMkJV4mKigpX1wtKz06Ozw+LC4/fC9cXFtcXV0vZyxKdz0vXlxTK0BcUytcLlxTKyQvLApJdz0vXlwrXGR7MTAsMTV9JC8sSHc9L15cK1xkezcsMTV9JC8sRnc9L1sufl0vZyxsdz0vXlswLTlBLVphLXpfLV17NDN9JC8sTHc9WyJyZW0iLCJycG4iLCJyZm4iLCJybG4iLCJyc2EiXSxNdz17fSxpdz0oTXcuZW1haWw9ImVtIixNdy5waG9uZV9udW1iZXI9InBuIixNdy5maXJzdF9uYW1lPSJmbiIsTXcubGFzdF9uYW1lPSJsbiIsTXcuc3RyZWV0PSJzYSIsTXcuY2l0eT0iY3QiLE13LnJlZ2lvbj0icmciLE13LmNvdW50cnk9ImNvIixNdy5wb3N0YWxfY29kZT0icGMiLE13LmVycm9yX2NvZGU9ImVjIixNdy5yYXdfZW1haWw9InJlbSIsTXcucmF3X3Bob25lX251bWJlcj0icnBuIixNdy5yYXdfZmlyc3RfbmFtZT0icmZuIixNdy5yYXdfbGFzdF9uYW1lPSJybG4iLE13LnJhd19zdHJlZXQ9InJzYSIsTXcpO3ZhciBtdz1PYmplY3QuZnJlZXplKFsiZW1haWwiLAoicGhvbmVfbnVtYmVyIiwiZmlyc3RfbmFtZSIsImxhc3RfbmFtZSIsInN0cmVldCJdKTsKdmFyIFF3PWZ1bmN0aW9uKGEsYil7dmFyIGM9bHYoYSksZD1mdW5jdGlvbihwKXt2YXIgcT1DcChhKTtxJiYoYy50YWdfZXhwPXEpO2IocCl9LGU9UShhLEguSi5kYSksZj1RKGEsSC5KLllhKSxnPVhvKFtGLkQubWEsRi5ELmthXSksaDthOnN3aXRjaChlKXtjYXNlIFguVi54YTpjYXNlIFguVi56ZDpjYXNlIFguVi5aZDpjYXNlIFguVi5PYjpjYXNlIFguVi5GYjpoPSEwO2JyZWFrIGE7ZGVmYXVsdDpoPSExfWlmKGgmJmYmJmcpaWYoUShhLEguSi5mZCkpaWYoTncoYSkpZChjKTtlbHNle3ZhciBsPXN3KGYsITApO093KGwsYSxjLGQpfWVsc2V7dmFyIG47YTp7dHJ5e249b3coS3coZ3coZikpKTticmVhayBhfWNhdGNoKHApe31uPXZvaWQgMH1pZihuKXRyeXtQdyhjLGEpKG4pfWNhdGNoKHApe31kKGMpfWVsc2UgZGVsZXRlIGMuZWNfbW9kZSxkKGMpfSxOdz1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKTtyZXR1cm4gYj09PVguVi5GYnx8Yj09PVguVi5PYn0sUnc9ZnVuY3Rpb24oYSwKYil7cmV0dXJuIGEhPT0xfHxRKGIsSC5KLmRhKT09PVguVi5PYiYmIU0oNDQ1KT8hMTohIVEoYixILkouZmQpfSxQdz1mdW5jdGlvbihhLGIpe3JldHVybiBmdW5jdGlvbihjKXtSdyhjLmVuY3J5cHRpb25SZXN1bHQ/MTowLGIpfHwoYS5lbT1jLnBhcmFtKTtpZihjLmhhc1VwZCl7dmFyIGQ9U3coYik7ZCYmKGEuZWNzaWQ9ZCl9TSg1MjMpJiZjLm1ldGFkYXRhUGFyYW0mJihhLmVtZD1jLm1ldGFkYXRhUGFyYW0pO319LFN3PWZ1bmN0aW9uKGEpe2lmKFEoYSxILkouZGEpPT09WC5WLkZiJiYKIU0oNDQzKSl7dmFyIGI9UShhLEguSi5HYSk7cmV0dXJuIFEoYSxILkouemopfHxUdihiKX19LE93PWZ1bmN0aW9uKGEsYixjLGQpe2lmKGEpdHJ5e2EudGhlbihQdyhjLGIpKS50aGVuKGZ1bmN0aW9uKCl7ZChjKX0pO3JldHVybn1jYXRjaChlKXt9ZChjKX07dmFyIFR3PU9iamVjdC5mcmVlemUoe2djcDoiMSIsc3NjdGU6IjEiLGN0X2Nvb2tpZV9wcmVzZW50OiIxIn0pOwp2YXIgVXc9ZnVuY3Rpb24oYSxiKXthdi5jYWxsKHRoaXMsYSxiLDEsITEpfTt3YShVdyxhdik7VXcucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe1F3KGEsZnVuY3Rpb24oZCl7UShhLEguSi5haikmJmRlbGV0ZSBkLml0ZW07UShhLEguSi5vYikmJm5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZCxUdyk7dmFyIGU9Z2soYi5JYyk7ZSYmKGQuX3VpcD1lKTt2YXIgZj0iPyIra3YoZCk7YyhmKX0pfTt2YXIgVnc9bmV3IFV3KDIyLFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSxXdz1uZXcgVXcoMjMsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pLFh3PW5ldyBVdyg2MCxbXSksWXc9ZnVuY3Rpb24oKXt9O3dhKFl3LG91KTtZdy5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXtyZXR1cm4gUShhLEguSi5kYSk9PT1YLlYuemQmJlEoYSxILkoubGopP1t7ZW5kcG9pbnQ6WG8oZnApP1EoYSxILkoub2IpP1d3OlZ3Olh3LG1ldGhvZDpsdX1dOltdfTt2YXIgWnc9bmV3IFl3OwoKdmFyICR3PWZ1bmN0aW9uKGEpe2lmKE9wKCk9PT0yKXJldHVybiExO3ZhciBiPVEoYSxILkouZGEpLGM9W1guVi54YSxYLlYudWJdO00oNTkzKSYmYy5wdXNoKFguVi5ZZCk7cmV0dXJuIGMuaW5jbHVkZXMoYik/ITA6ITF9LGF4PWZ1bmN0aW9uKGEpe3JldHVybiBNKDUwMCkmJk9wKCkhPT0yJiZRKGEsSC5KLmRhKT09PVguVi54YX0sYng9ZnVuY3Rpb24oYSl7dmFyIGI9SHIoYS5wcmVmaXgpO2I9PT0iX2djbCImJihiPSIiKTtyZXR1cm4gYn0sY3g9ZnVuY3Rpb24oYSl7aWYoUihhLEYuRC5TYil8fFIoYSxGLkQuSmUpKXt2YXIgYj1SKGEsRi5ELkdkKSxjPUVkKFEoYSxILkouR2EpLG51bGwpLGQ9SHIoYy5wcmVmaXgpO2MucHJlZml4PWQ9PT0iX2djbCI/IiI6ZDtpZihSKGEsRi5ELlNiKSl7dmFyIGU9WHMoYixjLCFRKGEsSC5KLk5tKSxheChhKSk7VihhLEguSi5ObSwhMCk7ZSYmVShhLEYuRC5xbSxlKX1pZihSKGEsRi5ELkplKSl7dmFyIGY9UHMoYixjKS5ScjtmJiZVKGEsRi5ELk1sLApmKX19fSxpeD1mdW5jdGlvbihhKXt2YXIgYj1uZXcgZHg7c3dpdGNoKFEoYSxILkouZGEpKXtjYXNlIFguVi54YTpVKGEsRi5ELmZtLFVxKCExKS5fZ3MpO2V4KGEpO2Z4KGEsYik7Z3goYSxiKTtpZighYi5qbygpfHxNKDQyMSkpe3ZhciBjPW5tKGptLmJhLlZlKSxkPVhvKEYuRC5rYSkmJlhvKEYuRC5tYSk7aWYoYyYmYy5nY2xpZCYmIWQmJiFRKGEsSC5KLlhlKSl7dmFyIGU9U3RyaW5nKGMuZ2NsaWQpLGY9bmV3IGVyO2ZyKGYsNik7Yi5Daih7dmVyc2lvbjoiR0NMIix0aW1lc3RhbXA6MCxnY2xpZDplLHFhOmYsb2E6WzRdfSl9fWJyZWFrO2Nhc2UgWC5WLk9iOmNhc2UgWC5WLkZiOmV4KGEpO2Z4KGEsYik7YnJlYWs7Y2FzZSBYLlYudWI6aWYoTSg0NTgpJiZYbyhGLkQua2EpJiZRKGEsSC5KLndmKSl7dmFyIGc9UShhLEguSi5HYSk7aHgoYSxiLGJ4KGcpKX1icmVhaztjYXNlIFguVi5ZZDpleChhKSxmeChhLGIpLGd4KGEsYil9Yi5PdChhKX0sZng9ZnVuY3Rpb24oYSxiKXtpZihYbyhGLkQua2EpJiYKUShhLEguSi53Zikpe3ZhciBjPVEoYSxILkouR2EpLGQ9YngoYyksZT1ScyhkKTtVKGEsRi5ELkJlLGUuRWcpO1UoYSxGLkQuRGUsZS5XaCk7VShhLEYuRC5DZSxlLlVoKTtNKDQyMSk/KGp4KGEsYixjLGQpLGh4KGEsYixkKSk6V3MoZCk/angoYSxiLGMsZCk6aHgoYSxiLGQpfX0saHg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSR3KGEpO1RzKGMsImdjbGlkIiwiZ2NsYXciLGQpLmZvckVhY2goZnVuY3Rpb24oZil7Yi5DaihmKX0pO2IuTG8oKTtpZighYyl7dmFyIGU9T3MoQnIoQXIoKSk/UnAoKTp7fSxNcyk7ZSYmVShhLEYuRC5yaCxlKX19LGp4PWZ1bmN0aW9uKGEsYixjLGQpe1RzKGQsImJyYWlkcyIsImdjbGdiIixheChhKSkuZm9yRWFjaChmdW5jdGlvbihnKXtiLmpyKGcpfSk7aWYoIWQpe3ZhciBlPVIoYSxGLkQuR2QpO2M9RWQoYyxudWxsKTtjLnByZWZpeD1kO3ZhciBmPVBzKGUsYywhMCkuUXI7ZiYmVShhLEYuRC5KZSxmKX19LGV4PWZ1bmN0aW9uKGEpe2lmKE0oMTYpKXt2YXIgYj0KTyhhLk0sRi5ELnphKTtifHwoYj1PcCghMSk9PT0xP0EudG9wLmxvY2F0aW9uLmhyZWY6QS5sb2NhdGlvbi5ocmVmKTt2YXIgYyxkPVJqKGIpLGU9TGooZCwicXVlcnkiLCExLHZvaWQgMCwiZ2NsaWQiKTtpZighZSl7dmFyIGY9ZC5oYXNoLnJlcGxhY2UoIiMiLCIiKTtlPWV8fElqKGYsImdjbGlkIiwhMSl9KGM9ZT9lLmxlbmd0aDp2b2lkIDApJiZVKGEsRi5ELnpsLGMpfX0sZ3g9ZnVuY3Rpb24oYSxiKXt2YXIgYz1YbyhGLkQua2EpJiZYbyhGLkQubWEpO2lmKCFiLmpvKCl8fE0oNDIxKSl7dmFyIGQ7dmFyIGU7Yjp7dmFyIGYsZz1BLGg9W107dHJ5e2cubmF2aWdhdGlvbiYmZy5uYXZpZ2F0aW9uLmVudHJpZXMmJihoPWcubmF2aWdhdGlvbi5lbnRyaWVzKCkpfWNhdGNoKEMpe31mPWg7dmFyIGw9e307dHJ5e2Zvcih2YXIgbj1mLmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgcD1mW25dJiZmW25dLnVybDtpZihwKXt2YXIgcT0obmV3IFVSTChwKSkuc2VhcmNoUGFyYW1zLHI9cS5nZXQoImdjbGlkIil8fAp2b2lkIDAsdD1xLmdldCgiZ2Nsc3JjIil8fHZvaWQgMDtpZihyKXtsLmdjbGlkPXI7dCYmKGwuVmg9dCk7ZT1sO2JyZWFrIGJ9fX19Y2F0Y2goQyl7fWU9bH12YXIgdT1lLHY9dS5nY2xpZCx4PXUuVmgseTtpZih2JiYoeD09PXZvaWQgMHx8eD09PSJhdyJ8fHg9PT0iYXcuZHMifHxZZig4KSYmeD09PSJhdy5kdiIpKWlmKHYhPT12b2lkIDApe3ZhciB6PW5ldyBlcjtmcih6LDIpO2ZyKHosMyk7eT17dmVyc2lvbjoiR0NMIix0aW1lc3RhbXA6MCxnY2xpZDp2LHFhOnosb2E6WzNdfX1lbHNlIHk9dm9pZCAwO2Vsc2UgeT12b2lkIDA7ZD15O2QmJighYyYmUShhLEguSi5YZSkmJihkLmdjbGlkPSIwIiksYi5DaihkKSxiLkxvKCkpfX0sZHg9ZnVuY3Rpb24oKXt0aGlzLkg9W107dGhpcy5LPVtdO3RoaXMuTj12b2lkIDB9O2s9ZHgucHJvdG90eXBlO2suQ2o9ZnVuY3Rpb24oYSl7UXIodGhpcy5ILGEpfTtrLmpyPWZ1bmN0aW9uKGEpe1FyKHRoaXMuSyxhKX07ay5qbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLksubGVuZ3RoPgowfTtrLkxvPWZ1bmN0aW9uKCl7dGhpcy5OIT09ITEmJih0aGlzLk49ITEpfTtrLnlvPWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZD09PXZvaWQgMD8hMTpkO2lmKGEubGVuZ3RoKXt2YXIgZT1bXSxmPVtdLGc9W107YS5mb3JFYWNoKGZ1bmN0aW9uKGgpe2UucHVzaChoLmdjbGlkKTt2YXIgbCxuO2YucHVzaCgobj0obD1oLnFhKT09bnVsbD92b2lkIDA6bC5nZXQoKSkhPW51bGw/bjowKTtnLnB1c2goVnMoaC5vYXx8WzBdKSl9KTtlLmxlbmd0aCYmVShiLGMuaWQsZS5qb2luKCIuIikpO2R8fChmLmxlbmd0aCYmVShiLGMucWEsZi5qb2luKCIuIikpLGcubGVuZ3RoJiZVKGIsYy5vYSxnLmpvaW4oIi4iKSkpfX07ay5PdD1mdW5jdGlvbihhKXt0aGlzLkgubGVuZ3RoPjAmJnRoaXMueW8odGhpcy5ILGEse2lkOkYuRC5sYixxYTpGLkQuQmQsb2E6Ri5ELkNkfSx0aGlzLk4pOyh0aGlzLkgubGVuZ3RoPT09MHx8TSg0MjEpKSYmdGhpcy55byh0aGlzLkssYSx7aWQ6Ri5ELlNiLHFhOkYuRC5maCwKb2E6Ri5ELmdofSl9O3ZhciBreD1mdW5jdGlvbigpe2h1LmNhbGwodGhpcywiSW5qZWN0QWRzU2NyaXB0Iil9O3dhKGt4LGh1KTtreC5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07a3gucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMX07a3gucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMpe2FvKGEuRm8sQSxCLGIsZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLmpmKCl9LGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYS5yZCh2b2lkIDApfSxjPT1udWxsP3ZvaWQgMDpjLmFmKXx8WG4oYS5GbyxiLnJlcGxhY2UoIiZmbXQ9NCYiLCImZm10PTMmIiksZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBhLmpmKCl9LGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYS5yZCh2b2lkIDApfSxjPT1udWxsP3ZvaWQgMDpjLmFmKX07dmFyIGx4PW5ldyBreDt2YXIgbXg9T2JqZWN0LmZyZWV6ZSh7YXR0cmlidXRpb25zcmM6IiJ9KSxueD1PYmplY3QuZnJlZXplKHtldmVudFNvdXJjZUVsaWdpYmxlOiExLHRyaWdnZXJFbGlnaWJsZTohMH0pO2Z1bmN0aW9uIG94KCl7dmFyIGE9WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlO3JldHVybiBhJiZ5YihhLnNldEF0dHJpYnV0aW9uUmVwb3J0aW5nKX07dmFyIHB4PU9iamVjdC5mcmVlemUoe2NhY2hlOiJuby1zdG9yZSIsY3JlZGVudGlhbHM6ImluY2x1ZGUiLG1ldGhvZDoiR0VUIixrZWVwYWxpdmU6ITAscmVkaXJlY3Q6ImZvbGxvdyJ9KTsKZnVuY3Rpb24gcXgoYSxiLGMsZCxlLGYpe2lmKCF5YihBLmZldGNoKSlyZXR1cm4gZj09bnVsbHx8Zih2b2lkIDAsdm9pZCAwKSwhMTt2YXIgZz1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LHB4KTtiJiYoZy5ib2R5PWIsZy5tZXRob2Q9IlBPU1QiKTtuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGcsZCk7QS5mZXRjaChhLGcpLnRoZW4oZnVuY3Rpb24oaCl7aWYoaC5vayl7aWYoaC5ib2R5KXt2YXIgbD1oLmJvZHkuZ2V0UmVhZGVyKCksbj1uZXcgVGV4dERlY29kZXI7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHApe2Z1bmN0aW9uIHEoKXtsLnJlYWQoKS50aGVuKGZ1bmN0aW9uKHIpe3ZhciB0O3Q9ci5kb25lO3ZhciB1PW4uZGVjb2RlKHIudmFsdWUse3N0cmVhbTohdH0pO3U9Yy5SK3U7Zm9yKHZhciB2PXUuaW5kZXhPZigiXG5cbiIpO3YhPT0tMTspe3ZhciB4PVpnLHk7YTp7dmFyIHo9bSh1LnN1YnN0cmluZygwLHYpLnNwbGl0KCJcbiIpKSxDPQp6Lm5leHQoKS52YWx1ZSxEPXoubmV4dCgpLnZhbHVlO2lmKFNiKEMsImV2ZW50OiBtZXNzYWdlIikmJlNiKEQsImRhdGE6ICIpKXt2YXIgST1ELnN1YnN0cmluZyg2KTt0cnl7eT1KU09OLnBhcnNlKEkpO2JyZWFrIGF9Y2F0Y2goRyl7fX15PXZvaWQgMH14KGMseSk7dT11LnN1YnN0cmluZyh2KzIpO3Y9dS5pbmRleE9mKCJcblxuIil9Yy5SPXU7dD8oZT09bnVsbHx8ZShoKSxwKCkpOnEoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZT09bnVsbHx8ZShoKTtwKCl9KX1xKCl9KX1lPT1udWxsfHxlKGgpfWVsc2UgZj09bnVsbHx8ZihoLHZvaWQgMCl9KS5jYXRjaChmdW5jdGlvbihoKXtmPT1udWxsfHxmKHZvaWQgMCxoKX0pO3JldHVybiEwfTt2YXIgcng9ZnVuY3Rpb24oYSl7aHUuY2FsbCh0aGlzLCJGZXRjaFJpY2hSZXNwb25zZSIsMSk7dGhpcy5OPWF9O3dhKHJ4LGh1KTtyeC5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4geWIoQS5mZXRjaCl9O3J4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7cmV0dXJuITB9O3J4LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYixjKXtxeChiLGM9PW51bGw/dm9pZCAwOmMuYm9keSx0aGlzLk4sYz09bnVsbD92b2lkIDA6Yy5HYixhLnBlLGZ1bmN0aW9uKGQsZSl7YS5vbkZhaWx1cmUoZSl9KX07CnZhciBzeD1mdW5jdGlvbihhLGIpe3ZhciBjPXZvaWQgMDthIGluc3RhbmNlb2Yga3U/Yz1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGxkKTphIGluc3RhbmNlb2YgcngmJihjPXt9LG94KCkmJihjLmF0dHJpYnV0aW9uUmVwb3J0aW5nPW54KSk7IWImJmMmJihjLmNyZWRlbnRpYWxzPSJvbWl0IixjLm1vZGU9ImNvcnMiKTtyZXR1cm4gY30sdHg9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Yi5tZXRob2Q7UXcoYSxmdW5jdGlvbihmKXt2YXIgZz1RKGEsSC5KLm9iKSxoPVhvKGZwKSxsPWUgaW5zdGFuY2VvZiBpdT8zOmUgaW5zdGFuY2VvZiBreD9jPT09NXx8Yz09PTg/Mzo0OmUgaW5zdGFuY2VvZiBrdT8hZyYmaD8zOjg6ZSBpbnN0YW5jZW9mIHJ4Pzc6LTE7ZSBpbnN0YW5jZW9mIGt4JiZsPT09Mz8oZi5mbXQ9NCxmLnJmbXQ9Myk6Zi5mbXQ9bDtuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGYsYz09PTY2P3tnY3A6IjQifTpnfHxjPT09OHx8Yz09PTY1PwpUdzp7fSk7dmFyIG49ZWlbRi5ELmVoXTtuJiYoZltuXT1jKTtpZihNKDU2OSkpe3ZhciBwPWIuQ3QscT1wLmprLmZpbHRlcihmdW5jdGlvbih2KXtyZXR1cm4gdlswXSE9PXZvaWQgMH0pLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gdlswXS5lbmRwb2ludC5lbmRwb2ludH0pO3EubGVuZ3RoPjAmJihxLnB1c2gocC5ta1swXS5lbmRwb2ludC5lbmRwb2ludCksZi5lcHA9cS5zb3J0KGZ1bmN0aW9uKHYseCl7cmV0dXJuIHYteH0pLmpvaW4oIn4iKSl9dmFyIHI9Ij8iK2t2KGYpLHQ9c3goZSxoKSx1O3U9KGUgaW5zdGFuY2VvZiBpdXx8ZSBpbnN0YW5jZW9mIGt4KSYmWG8oImFkX3VzZXJfZGF0YSIpP214OnZvaWQgMDtkKHIse0diOnQsYWY6dX0pfSl9O3ZhciB1eD1mdW5jdGlvbihhLGIpe2F2LmNhbGwodGhpcyxhLGIsMil9O3dhKHV4LGF2KTt1eC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dHgoYSxiLHRoaXMuZW5kcG9pbnQsYyl9O3ZhciB2eD1uZXcgdXgoNSxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSksd3g9bmV3IHV4KDYsW10pLHh4PW5ldyB1eCg2MyxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSkseXg9bmV3IHV4KDY1LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSx6eD1uZXcgdXgoOCxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSksQXg9bmV3IHV4KDY2LFtdKSxCeD1uZXcgdXgoNzQsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0pO3ZhciBDeD1mdW5jdGlvbigpe1lnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07d2EoQ3gsWWcpO0N4LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYil7WmMoYSx2b2lkIDAsJGcodGhpcyxiKSxiLmF0dHJpYnV0aW9uX3JlcG9ydGluZyYmb3goKT9teDp7fSl9O0N4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5hdHRyaWJ1dGlvbl9yZXBvcnRpbmcmJm94KCk/e2F0dHJpYnV0aW9uUmVwb3J0aW5nOm54fTp7fSxkPSRnKHRoaXMsYik7Yi5wcm9jZXNzX3Jlc3BvbnNlP3F4KGEsdm9pZCAwLHRoaXMsYyx2b2lkIDAsZCk6bWQoYSx2b2lkIDAsYyx2b2lkIDAsZCl9O3ZhciBEeD1mdW5jdGlvbigpe0N4LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07d2EoRHgsQ3gpO0R4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYil7Q3gucHJvdG90eXBlLkguY2FsbCh0aGlzLGEsbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxiLHtwcm9jZXNzX3Jlc3BvbnNlOiExfSkpfTt2YXIgRXg9ZnVuY3Rpb24oKXt9O3dhKEV4LG91KTtFeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhKXtpZihRKGEsSC5KLmRhKSE9PVguVi54YSlyZXR1cm5bXTt2YXIgYj1YbyhmcCksYz0hIVEoYSxILkoub2IpLGQ9ISFRKGEsSC5KLkVjKSxlPVt7ZW5kcG9pbnQ6Yj9kP2M/eXg6eHg6Yz96eDp2eDp3eCxtZXRob2Q6bmQoKT9iP00oNDkwKT9jP251Om5ldyByeChuZXcgRHgpOmx4Om51Omx1fV0sZj1iP2M/dm9pZCAwOnp4OkF4O2YmJmUucHVzaCh7ZW5kcG9pbnQ6ZixtZXRob2Q6bnV9KTtyZXR1cm4gZX07RXgucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7cmV0dXJuIFEoYSxILkouZGEpPT09WC5WLnhhJiZXaigpJiYhUShhLEguSi5FYykmJk0oNTY5KSYmWG8oZnApP1tbe2VuZHBvaW50OkJ4LG1ldGhvZDpudX1dXTpbXX07dmFyIEZ4PW5ldyBFeDt2YXIgR3g9ZnVuY3Rpb24oYSxiKXtndS5jYWxsKHRoaXMsYSxiLDEsITEsMyl9O3dhKEd4LGd1KTtHeC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bHYoYSksZT0iPyIra3YoZCk7YyhlLHtHYjpsZH0pfTt2YXIgSHg9bmV3IEd4KDU0LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdKSxJeD1uZXcgR3goNTUsW10pLEp4PWZ1bmN0aW9uKCl7fTt3YShKeCxvdSk7SngucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7cmV0dXJuW3tlbmRwb2ludDpIeC5LKGEpP0h4Okl4LG1ldGhvZDpudX1dfTt2YXIgS3g9bmV3IEp4Owp2YXIgTHg9ZnVuY3Rpb24oKXthdi5jYWxsKHRoaXMsOSxbImFkX3N0b3JhZ2UiLCJhZF91c2VyX2RhdGEiXSwxKX07d2EoTHgsYXYpO0x4LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbihhKXtyZXR1cm4gUShhLEguSi5kYSk9PT1YLlYuWmR9O0x4LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO1F3KGEsZnVuY3Rpb24oZSl7dmFyIGY9ZWlbRi5ELmVoXTtmJiYoZVtmXT1kLmVuZHBvaW50KTtlLmdjcD0xO2UuY3RfY29va2llX3ByZXNlbnQ9MTtlLmZtdD1iLm1ldGhvZCBpbnN0YW5jZW9mIGt1Pzg6Mzt2YXIgZz0iPyIra3YoZSk7YyhnLHtHYjpsZH0pfSl9O3ZhciBNeD1uZXcgTHgsTng9ZnVuY3Rpb24oKXt9O3dhKE54LG91KTtOeC5wcm90b3R5cGUuSD1mdW5jdGlvbigpe3JldHVyblt7ZW5kcG9pbnQ6TXgsbWV0aG9kOm51fSx7ZW5kcG9pbnQ6TXgsbWV0aG9kOmx1fV19O3ZhciBPeD1uZXcgTng7dmFyIFB4PVs2OF07dmFyIFF4PWZ1bmN0aW9uKGEsYil7dGhpcy5IPWE7dGhpcy50aW1lb3V0TXM9Yjt0aGlzLlJiPXZvaWQgMH0sUng9ZnVuY3Rpb24oYSl7YS5SYnx8KGEuUmI9c2V0VGltZW91dChmdW5jdGlvbigpe2EuSCgpO2EuUmI9dm9pZCAwfSxhLnRpbWVvdXRNcykpfSxUbj1mdW5jdGlvbihhKXthLlJiJiYoY2xlYXJUaW1lb3V0KGEuUmIpLGEuUmI9dm9pZCAwKX07dmFyIFN4PWZ1bmN0aW9uKCl7dmFyIGE9TmYoNjYsMCk7dGhpcy5LPVtdO3RoaXMuUj1hO3RoaXMuSD1ZYSgpfSxVeD1mdW5jdGlvbihhKXt2YXIgYj1UeDtiLksucHVzaChhKTtiLk58fChiLk49ZnVuY3Rpb24oKXtmb3IodmFyIGM9bShiLkspLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO3RyeXtlKCl9Y2F0Y2gobCl7fX1mb3IodmFyIGY9bShiLkgudmFsdWVzKCkpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD12b2lkIDA7KGg9Zy52YWx1ZS53ZSk9PW51bGx8fFRuKGgpfWIuSC5jbGVhcigpfSwkYyhBLCJwYWdlaGlkZSIsYi5OKSl9LFZ4PWZ1bmN0aW9uKGEpe3ZhciBiPWEubWF0Y2goTW4pWzNdfHxudWxsLGM9KGI/ZGVjb2RlVVJJKGIpOmIpfHwiIixkPVBuKGEsImxhYmVsIil8fCIiLGU9UG4oYSwicmFuZG9tIil8fCIiO3JldHVybiBjKyI6IitMbihkKSsiOiIrTG4oZSl9LFd4PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1UeCwKZT1WeChhKTtpZighKGQuSC5oYXMoZSl8fGQuSC5zaXplPj1kLlIpKXt2YXIgZj17fTtiJiZiPjAmJmMmJihmLndlPW5ldyBReChjLGIpKTtkLkguc2V0KGUsZik7dmFyIGc7KGc9Zi53ZSk9PW51bGx8fFJ4KGcpfX0sVW49ZnVuY3Rpb24oYSxiKXt2YXIgYz1WeChiKSxkLGU7KGQ9YS5ILmdldChjKSk9PW51bGx8fChlPWQud2UpPT1udWxsfHxUbihlKTthLkguZGVsZXRlKGMpfTtTeC5wcm90b3R5cGUuZ2V0U2l6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkguc2l6ZX07CnZhciBYeD1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9KGM9UShhLEguSi5nbikpPT1udWxsP3ZvaWQgMDpjW2IucGJdO3JldHVybiBkIT09dm9pZCAwJiZkPj1iLk9nfSxZeD1mdW5jdGlvbihhLGIpe2lmKFEoYSxILkouZGEpPT09WC5WLnhhJiYhUShhLEguSi5FYykmJlh4KGEsbnYpJiYhKGI8PTApKXJldHVybiBuZXcgUXgoZnVuY3Rpb24oKXtydihudil9LGIpfSxaeD1mdW5jdGlvbihhLGIsYyl7UShiLEguSi5kYSkhPT1YLlYueGF8fFEoYixILkouRWMpfHwoVHh8fChUeD1uZXcgU3gsWHgoYixvdikmJlV4KGZ1bmN0aW9uKCl7dmFyIGQ7cnYob3YsKGQ9VHgpPT1udWxsP3ZvaWQgMDpkLmdldFNpemUoKSl9KSksWHgoYixudik/V3goYSxjLGZ1bmN0aW9uKCl7cnYobnYpO3ZhciBkOyhkPVR4KT09bnVsbHx8VW4oZCxhKX0pOld4KGEpKX0sVHg7CnZhciAkeD1mdW5jdGlvbihhLGIsYyxkLGUpe2U9ZT09PXZvaWQgMD8wOmU7aWYoZCl7dmFyIGY9UShhLEguSi5FYik7Yj1iLkxhKHtyYW5kb206ZitlLGRhdGE6ZH0pfXJldHVyblt7ZW5kcG9pbnQ6YixtZXRob2Q6Y30se2VuZHBvaW50OmIsbWV0aG9kOmx1fV19LGF5PWZ1bmN0aW9uKGEsYixjLGQpe2F2LmNhbGwodGhpcyxhLGIsMSxjKTt0aGlzLk49ZH07d2EoYXksYXYpO2F5LnByb3RvdHlwZS5pc1N1cHBvcnRlZD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lbmRwb2ludD09PTY4JiZRKGEsSC5KLm9iKT8hMTohMH07YXkucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWx2KGEpO3RoaXMuTiYmbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCxkLHRoaXMuTik7dmFyIGU9ZWlbRi5ELmVoXTtlJiYoZFtlXT10aGlzLmVuZHBvaW50KTt0aGlzLmVuZHBvaW50IT09NjgmJihkZWxldGUgZC5nY2xhdyxkZWxldGUgZC5nY2xhd19zcmMpO3ZhciBmPXZvaWQgMDtRKGEsCkguSi5vYik/KGQuZ2NwPTEsZC5jdF9jb29raWVfcHJlc2VudD0xKTp0aGlzLmVuZHBvaW50PT09NjgmJihkLmdjcD01LGIubWV0aG9kIGluc3RhbmNlb2Yga3UmJihkLmZtdD04LGY9bGQpKTt2YXIgZz0iPyIra3YoZCk7YyhnLGY/e0diOmZ9Ont9KX07YXkucHJvdG90eXBlLkxhPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgYXkodGhpcy5lbmRwb2ludCx0aGlzLlosdGhpcy5qYSxhKX07dmFyIGJ5PW5ldyBheSg5LFsiYWRfc3RvcmFnZSIsImFkX3VzZXJfZGF0YSJdLCEwKSxjeT1uZXcgYXkoNjgsWyJhZF9zdG9yYWdlIiwiYWRfdXNlcl9kYXRhIl0sITEpLGR5PWZ1bmN0aW9uKCl7fTt3YShkeSxvdSk7ZHkucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7dmFyIGI9Z3YoYSk7cmV0dXJuICR4KGEsYnksUShhLEguSi5vYik/bnU6bHgsYj09bnVsbD92b2lkIDA6YlswXSl9O2R5LnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe3ZhciBiPWd2KGEpLGM9W107TSg0NTgpJiYhUShhLEguSi5vYikmJgpjLnB1c2goJHgoYSxjeSxudSxiPT1udWxsP3ZvaWQgMDpiWzBdKSk7aWYoYiYmYi5sZW5ndGg+MSlmb3IodmFyIGQ9UShhLEguSi5vYik/bnU6bHgsZT0xO2U8Yi5sZW5ndGg7KytlKWMucHVzaCgkeChhLGJ5LGQsYltlXSxlKSk7cmV0dXJuIGN9O3ZhciBleT1uZXcgZHk7CnZhciBneT1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKHYpe3JldHVybiB2LnNwbGl0KCJ+IikuZmlsdGVyKGZ1bmN0aW9uKHgpe3ZhciB5PXguc3BsaXQoIi4iKVswXTtyZXR1cm4hTHcuc29tZShmdW5jdGlvbih6KXtyZXR1cm4gU2IoeSx6KX0pfSkuam9pbigifiIpfWlmKE53KGEpJiZRKGEsSC5KLmZkKSl7dmFyIGM9UShhLEguSi5ZYSksZD1CcCgpLGU9Z3coYyxkKSxmPWUuc29tZShmdW5jdGlvbih2KXtyZXR1cm4gU2Iodi5uYW1lLCJyYXciKX0pLGc9ZncoZSksaD1nLk9vLGw9Zy5paSxuPWcuaGFzVXBkLHA9Zy5ZbixxPWcuZW5jcnlwdGlvbktleVN0cmluZyxyPWcubWV0YWRhdGFQYXJhbSx0PVtdO1J3KDEsYSl8fHQucHVzaCgiJmVtPSIrYihoKSk7dC5wdXNoKCImZW1lPSIrcCk7dmFyIHU7cmV0dXJuIHU9e2lpOmwsSXQ6dCxzdjplLFhuOnIsZW5jcnlwdGlvbktleVN0cmluZzpxLFZyOmZ1bmN0aW9uKHYpe3ZhciB4PWZ5KGEsdSkseT1zdyhRKGEsSC5KLllhKSwhMCwhMCk7SXUoeSwKZnVuY3Rpb24oeil7aWYoIVJ3KDEsYSkpe3ZhciBDPSh6PT1udWxsP3ZvaWQgMDp6LnBhcmFtKXx8b3coe3liOltdfSkucGFyYW07eC5lbT1DfXYoeCl9KX0saGFzVXBkOm4scGY6dm9pZCAwLHJhd1BpaUFkZGVkOmZ9fX0sZnk9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPShjPWIucGYpIT1udWxsP2M6MyxlPXtndG06ZHUoe21jOlEoYSxILkouTmIpLFRnOmEuTS5pc0d0bUV2ZW50LGVmOlEoYSxILkouQ2MpLHBmOmR9KX07Yi5YbiYmKGUuZW1kPWIuWG4pO2lmKGIuaGFzVXBkKXt2YXIgZj0KU3coYSk7ZiYmKGUuZWNzaWQ9Zil9Yi5yYXdQaWlBZGRlZCYmKGVbImdhcC5ycCJdPSIxIik7cmV0dXJuIGV9O3ZhciBkZztmdW5jdGlvbiBoeShhLGIpe3ZhciBjOyhjPWRnKT09bnVsbHx8JGYoYy5ILGEsYil9O3ZhciBpeT1BYShbIi8iXSksank9ZnVuY3Rpb24oYSl7dGhpcy5IPWE7dGhpcy5mYWlsdXJlVHlwZT12b2lkIDB9O2p5LnByb3RvdHlwZS5pbz1mdW5jdGlvbihhLGIsYyl7dHJ5e3ZhciBkPXRoaXMuSC5hY3RpdmU7ZD8oZC5wb3N0TWVzc2FnZSh7dHlwZToxLGNvbW1hbmQ6YX0pLGIoe2RhdGE6IiJ9KSk6Yyh7ZmFpbHVyZVR5cGU6MTMsZGF0YToiIn0pfWNhdGNoKGUpe2Moe2ZhaWx1cmVUeXBlOjExLGRhdGE6ZS5tZXNzYWdlfSl9fTt2YXIga3k9ZnVuY3Rpb24oYSxiKXt0aGlzLmZhaWx1cmVUeXBlPWE7dGhpcy5IPWJ9O2t5LnByb3RvdHlwZS5pbz1mdW5jdGlvbihhLGIsYyl7Yyh7ZmFpbHVyZVR5cGU6dGhpcy5mYWlsdXJlVHlwZSxkYXRhOiJmIit0aGlzLmZhaWx1cmVUeXBlKygidCIrKChuZXcgRGF0ZSkuZ2V0VGltZSgpLXRoaXMuSCkpfSl9Owp2YXIgbnk9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLmluaXRUaW1lPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3RoaXMuSD1uZXcga3koMTUsdGhpcy5pbml0VGltZSk7dmFyIGM9bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZSgpfSwyMCl9KSxkPWx5KGEpLnRoZW4oZnVuY3Rpb24oZSl7Yi5IPW5ldyBqeShlKTtteShiLGUpfSkuY2F0Y2goZnVuY3Rpb24oKXtiLkg9bmV3IGt5KDQsYi5pbml0VGltZSl9KTt0aGlzLks9UHJvbWlzZS5yYWNlKFtjLGRdKX0sbXk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbihkKXtkJiZkLmFkZEV2ZW50TGlzdGVuZXIoInN0YXRlY2hhbmdlIixmdW5jdGlvbigpe2lmKGQuc3RhdGU9PT0icmVkdW5kYW50Iil7dmFyIGU9Yi5hY3RpdmU7ZSYmZS5zdGF0ZSE9PSJyZWR1bmRhbnQifHwoYS5IPW5ldyBreSgxMCxhLmluaXRUaW1lKSl9fSl9O2MoYi5hY3RpdmUpO2MoYi53YWl0aW5nKTtjKGIuaW5zdGFsbGluZyk7CmIuYWRkRXZlbnRMaXN0ZW5lcigidXBkYXRlZm91bmQiLGZ1bmN0aW9uKCl7YyhiLmluc3RhbGxpbmcpfSl9O255LnByb3RvdHlwZS5kZWxlZ2F0ZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpczt0aGlzLksudGhlbihmdW5jdGlvbigpe2QuSC5pbyhhLGIsYyl9KX07bnkucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJuIDJ9Owp2YXIgbHk9ZnVuY3Rpb24oYSl7dmFyIGIsYz1MZigxMSk7Yz1MZigxMCk7Yj1jO3ZhciBkPXtzY29wZTooVGIoYS5ocmVmLCIvIik/YS5ocmVmLnNsaWNlKDAsLTEpOmEuaHJlZikrIi9fL3NlcnZpY2Vfd29ya2VyIn07YiYmKGQudXBkYXRlVmlhQ2FjaGU9ImFsbCIpO3ZhciBlLGY9b3koYSxiKSxnPW5ldyBNYXAoW1sicGF0aCIsYS5wYXRobmFtZV1dKSxoPUpwKGtjKGYpLnRvU3RyaW5nKCkpO2U9THAoaC56ayxoLnBhcmFtcyxoLmZyYWdtZW50LGcpO3ZhciBsPUljKCksbj1rYyhlKTt0cnl7cmV0dXJuIGwucmVnaXN0ZXIobixkKX1jYXRjaChwKXt0cnl7cmV0dXJuIGwucmVnaXN0ZXIobi50b1N0cmluZygpLGQpfWNhdGNoKHEpe3JldHVybiBQcm9taXNlLnJlamVjdChxKX19fTsKZnVuY3Rpb24gb3koYSxiKXtmb3IodmFyIGM9S3AoaXkpLGQ9YS5wYXRobmFtZS5zcGxpdCgiLyIpLmZpbHRlcihmdW5jdGlvbihoKXtyZXR1cm4gaC5sZW5ndGg+MH0pLGU9W10uY29uY2F0KHcoZCksWyJfIiwic2VydmljZV93b3JrZXIiLGIsInN3LmpzIl0pLGY9bShlKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSljPU1wKGMsZy52YWx1ZSk7cmV0dXJuIGN9O2Z1bmN0aW9uIHB5KGEpe3ZhciBiPW5tKGptLmJhLk9oKSxjPWI9PW51bGw/dm9pZCAwOmJbYV07Y3x8YSE9PSJsaXRlInx8KGM9Yj09bnVsbD92b2lkIDA6Yi5mdWxsKTtyZXR1cm4gY312YXIgcXk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXB5KCJmdWxsIik7ZD9kLmRlbGVnYXRlKGEsYixjKTpjKHtmYWlsdXJlVHlwZToxNn0pfTtmdW5jdGlvbiByeShhLGIsYyxkLGUpe3F5KHtjb21tYW5kVHlwZTowLHBhcmFtczp7dXJsOmEsbWV0aG9kOjEsdGVtcGxhdGVzOmIsYm9keToiIixwcm9jZXNzUmVzcG9uc2U6ITEsZW5jcnlwdGlvbktleVN0cmluZzplLHNvUmVmZXJyZXI6QS5sb2NhdGlvbi5ocmVmfX0sYyxmdW5jdGlvbihmKXtkKGYuZmFpbHVyZVR5cGUsZi5kYXRhKX0pfTt2YXIgc3k9ZnVuY3Rpb24oYSl7aHUuY2FsbCh0aGlzLCJTZXJ2aWNlV29ya2VyRnJhbWVsZXNzIik7dGhpcy5OPWF9O3dhKHN5LGh1KTtzeS5wcm90b3R5cGUuaXNTdXBwb3J0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH07c3kucHJvdG90eXBlLkg9ZnVuY3Rpb24oKXtyZXR1cm4hMX07c3kucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzO3J5KGIsdGhpcy5OLmlpLGZ1bmN0aW9uKCl7YS5qZigpfSxmdW5jdGlvbihkKXtjLk4ucGY9ZDthLnJkKHZvaWQgMCl9LHRoaXMuTi5lbmNyeXB0aW9uS2V5U3RyaW5nKX07CnZhciB0eT1mdW5jdGlvbihhKXthdi5jYWxsKHRoaXMsYSxbImFkX3VzZXJfZGF0YSIsImFkX3N0b3JhZ2UiXSwxLCExKX07d2EodHksYXYpO3R5LnByb3RvdHlwZS5IPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzO1F3KGEsZnVuY3Rpb24oZSl7dmFyIGY9UShhLEguSi5waiksZz1mdW5jdGlvbigpe3ZhciBuPWt2KGUpO2YmJmIubWV0aG9kIGluc3RhbmNlb2Ygc3kmJihuKz1mLkl0LmpvaW4oIiIpKTtjKG4se0diOmxkfSl9O2lmKGQuZW5kcG9pbnQ9PT0yMXx8ZC5lbmRwb2ludD09PTczKXt2YXIgaD1nayhiLkljKTtoJiYoZS5fdWlwPWgpfWlmKGYmJihuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGUsZnkoYSxmKSksIShiLm1ldGhvZCBpbnN0YW5jZW9mIHN5KSkpe3ZhciBsO2YucGY9KGw9Zi5wZikhPW51bGw/bDoxNztmLlZyKGZ1bmN0aW9uKG4pe25hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3QsZSxuKTtnKCl9KTtyZXR1cm59ZygpfSl9O3R5LnByb3RvdHlwZS5SPQpmdW5jdGlvbihhKXtyZXR1cm4gYXYucHJvdG90eXBlLlIuY2FsbCh0aGlzLGEpLnNsaWNlKDAsLTEpfTt2YXIgdXk9bmV3IHR5KDExKSx2eT1uZXcgdHkoNzIpLHd5PWZ1bmN0aW9uKGEsYil7dGhpcy5aPWE7dGhpcy5SPWJ9O3dhKHd5LG91KTt3eS5wcm90b3R5cGUuZmE9ZnVuY3Rpb24oKXtyZXR1cm4gTSg1NjMpP1t0aGlzLlosdGhpcy5SXTpNKDE0MSk/W3RoaXMuWl06W3RoaXMuUl19O3d5LnByb3RvdHlwZS5qYT1mdW5jdGlvbigpe3JldHVybiBudS5pc1N1cHBvcnRlZCgpP1tudV06W211LGx1XX07d3kucHJvdG90eXBlLkg9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPXRoaXMuZmEoKSxkPWMuZmxhdE1hcChmdW5jdGlvbihmKXtyZXR1cm4gYi5qYSgpLm1hcChmdW5jdGlvbihnKXtyZXR1cm57ZW5kcG9pbnQ6ZixtZXRob2Q6Z319KX0pO2lmKHRoaXMuTigpKXt2YXIgZT1RKGEsSC5KLnBqKTtlJiZlLmhhc1VwZCYmZC51bnNoaWZ0KHtlbmRwb2ludDpjWzBdLG1ldGhvZDpuZXcgc3koZSl9KX1yZXR1cm4gZH07CnZhciB4eT1mdW5jdGlvbigpe3d5LmNhbGwodGhpcyx1eSx2eSl9O3dhKHh5LHd5KTt4eS5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3JldHVybiEwfTt2YXIgeXk9bmV3IHh5LHp5PW5ldyB0eSgyMSksQXk9bmV3IHR5KDczKSxCeT1mdW5jdGlvbigpe3d5LmNhbGwodGhpcyx6eSxBeSl9O3dhKEJ5LHd5KTtCeS5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3JldHVybiBNKDU4Nyl9O3ZhciBDeT1uZXcgQnk7dmFyIER5PWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9MDt0aGlzLks9ITE7TSg0NjIpJiZVbSgiZnMiLGZ1bmN0aW9uKCl7cmV0dXJuIGEuSD4wJiZhLkg8NT9TdHJpbmcoYS5IKTp2b2lkIDB9LCExKX0sRXk7ZnVuY3Rpb24gRnkoYSxiKXtFeXx8KEV5PW5ldyBEeSk7dmFyIGM9RXk7TSg0NjIpJiZmbi5LJiYoYj09PSJndG0uZm9ybVN1Ym1pdCJ8fGI9PT0iZm9ybV9zdWJtaXQiJiZJZig0NSkpJiYoYT09PTF8fGMuSykmJihjLks9ITAsYy5IPWEsYSE9PTU/Vm0oImZzIik6UW0uSC5mcz0hMSl9O3ZhciBHeT1mdW5jdGlvbihhKXtpZihRKGEsSC5KLmRhKT09PVguVi5LYSl7dmFyIGI9ZnUoYSk7aWYoIU0oNDI3KSYmKGpwKGEsYil8fFEoYSxILkouaGQpKSYmWG8oZnApKXt2YXIgYz1scChhLGIpO2lmKGMpe3ZhciBkPU5tKDY5LGMpO1RsKGQsYSw2OSk7WW4oe2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDo2OSxldmVudElkOmEuTS5ldmVudElkLHByaW9yaXR5SWQ6YS5NLnByaW9yaXR5SWR9LGQpfX12YXIgZT15YihhLk0ub25TdWNjZXNzKT9hLk0ub25TdWNjZXNzOnhiOyR1KGEsYik7ZSgpfX07dmFyIEh5PXtYOntXcTowLEVrOjEsWmc6MixYazozLG1pOjQsVms6NSxXazo2LFlrOjcsbmk6OCx0bTo5LHNtOjEwLFRpOjExLHZtOjEyLEJoOjEzLEVtOjE0LGlqOjE1LFNxOjE2LGpkOjE3LHVqOjE4LHZqOjE5LHdqOjIwLENuOjIxLHhqOjIyfX07SHkuWFtIeS5YLldxXT0iUkVTRVJWRURfWkVSTyI7SHkuWFtIeS5YLkVrXT0iQURTX0NPTlZFUlNJT05fSElUIjtIeS5YW0h5LlguWmddPSJDT05UQUlORVJfRVhFQ1VURV9TVEFSVCI7SHkuWFtIeS5YLlhrXT0iQ09OVEFJTkVSX1NFVFVQX0VORCI7SHkuWFtIeS5YLm1pXT0iQ09OVEFJTkVSX1NFVFVQX1NUQVJUIjtIeS5YW0h5LlguVmtdPSJDT05UQUlORVJfQkxPQ0tJTkdfRU5EIjtIeS5YW0h5LlguV2tdPSJDT05UQUlORVJfRVhFQ1VURV9FTkQiO0h5LlhbSHkuWC5Za109IkNPTlRBSU5FUl9ZSUVMRF9FTkQiO0h5LlhbSHkuWC5uaV09IkNPTlRBSU5FUl9ZSUVMRF9TVEFSVCI7SHkuWFtIeS5YLnRtXT0iRVZFTlRfRVhFQ1VURV9FTkQiOwpIeS5YW0h5Llguc21dPSJFVkVOVF9FVkFMVUFUSU9OX0VORCI7SHkuWFtIeS5YLlRpXT0iRVZFTlRfRVZBTFVBVElPTl9TVEFSVCI7SHkuWFtIeS5YLnZtXT0iRVZFTlRfU0VUVVBfRU5EIjtIeS5YW0h5LlguQmhdPSJFVkVOVF9TRVRVUF9TVEFSVCI7SHkuWFtIeS5YLkVtXT0iR0E0X0NPTlZFUlNJT05fSElUIjtIeS5YW0h5LlguaWpdPSJQQUdFX0xPQUQiO0h5LlhbSHkuWC5TcV09IlBBR0VWSUVXIjtIeS5YW0h5LlguamRdPSJTTklQUEVUX0xPQUQiO0h5LlhbSHkuWC51al09IlRBR19DQUxMQkFDS19FUlJPUiI7SHkuWFtIeS5YLnZqXT0iVEFHX0NBTExCQUNLX0ZBSUxVUkUiO0h5LlhbSHkuWC53al09IlRBR19DQUxMQkFDS19TVUNDRVNTIjtIeS5YW0h5LlguQ25dPSJUQUdfRVhFQ1VURV9FTkQiO0h5LlhbSHkuWC54al09IlRBR19FWEVDVVRFX1NUQVJUIjt2YXIgSXk9e307SXkuWD1IeS5YO3ZhciBKeT17UnU6IkwiLFhxOiJTIixrdjoiWSIsUnQ6IkIiLG51OiJFIixOdToiSSIsZnY6IlRDIix2dToiSFRDIixvdToiRiIsTXU6IkMifSxLeT17WHE6IlMiLGx1OiJWIixhdToiRSIsZHY6InRhZyJ9LEx5PXt9LE15PShMeVtJeS5YLnZqXT0iNiIsTHlbSXkuWC53al09IjUiLEx5W0l5LlgudWpdPSI3IixMeSk7ZnVuY3Rpb24gTnkoYSl7dmFyIGI9RSg1KSxjPU51bWJlcihhLmV2ZW50SWQpLGQ9TnVtYmVyKGEudGFnSWQpO3JldHVybihTYihiLCJHVE0tIik/YjoiR1RNLSIrYikrIjoiKyhBYihjKT9jKyI6IjoiIikrKEFiKGQpP2QrIjoiOiIiKSthLnN0YWdlfTtmdW5jdGlvbiBPeSgpe3ZhciBhPXJkKCk7cmV0dXJuISEoYSYmYS5tYXJrIGluc3RhbmNlb2YgRnVuY3Rpb24mJmEubWVhc3VyZSBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZhLmNsZWFyTWVhc3VyZXMgaW5zdGFuY2VvZiBGdW5jdGlvbiYmYS5jbGVhck1hcmtzIGluc3RhbmNlb2YgRnVuY3Rpb24pfTt2YXIgUHk9ZnVuY3Rpb24oKXt0aGlzLkg9e319LFF5O2Z1bmN0aW9uIFJ5KCl7UXl8fChReT1uZXcgUHkpO3JldHVybiBReX1mdW5jdGlvbiBTeShhKXt2YXIgYj1SeSgpLGM9TnkoYSk7cmV0dXJuIGIuSFtjXX1mdW5jdGlvbiBUeShhLGIpe3ZhciBjO2E6e3ZhciBkPVJ5KCk7aWYoT3koKSl7dmFyIGU9TnkoYSksZixnO2lmKGY9KGc9cmQoKSk9PW51bGw/dm9pZCAwOmcubWFyayhlLGIpKXtjPWQuSFtlXT1mO2JyZWFrIGF9fWM9dm9pZCAwfXJldHVybiBjfTtmdW5jdGlvbiBVeShhLGIpe2lmKE95KCkpe2EuZW50cnk9TnkoYSk7dmFyIGM9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxhKTtjLnN0YWdlPWI7ZGVsZXRlIGMuc2VudDt2YXIgZD1TeShiPT09SXkuWC5qZD97c3RhZ2U6SXkuWC5qZH06YyksZT1TeShhKTtpZihkJiZlJiYhKGQuc3RhcnRUaW1lPmUuc3RhcnRUaW1lKSl7Yy5zdGFnZT1iKyI6IithLnN0YWdlO3ZhciBmPU55KGMpLGc9e3N0YXJ0OmQubmFtZSxlbmQ6ZS5uYW1lfSxoLGw7cmV0dXJuKGw9KGg9cmQoKSk9PW51bGw/dm9pZCAwOmgubWVhc3VyZShmLGcpKT09bnVsbD92b2lkIDA6bC5kdXJhdGlvbn19fTt2YXIgV3k9ZnVuY3Rpb24oKXt2YXIgYT01O1Z5LlJvPjAmJihhPVZ5LlJvKTt0aGlzLks9YTt0aGlzLkg9MDt0aGlzLk49W119LFh5PWZ1bmN0aW9uKGEpe3JldHVybiBhLkg8YS5LPyExOk5iKCktYS5OW2EuSCVhLktdPDFFM30sWXk9ZnVuY3Rpb24oYSl7dmFyIGI9YS5IKyslYS5LO2EuTltiXT1OYigpfTt2YXIgVnk9e1JvOk5mKDMsMCl9LCR5PWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLnlhPVtdO3RoaXMuSD12b2lkIDA7dGhpcy5aPXt9O3RoaXMuSz12b2lkIDA7dGhpcy5qYT1uZXcgV3k7dGhpcy5MYT0xRTM7dGhpcy5SPXRoaXMuTj0hMTt0aGlzLmZhPURiKCk7WnkodGhpcyxmdW5jdGlvbigpe3ZhciBiPVtbInYiLCIzIl0sWyJ0IiwidCJdLFsicGlkIixTdHJpbmcoYS5mYSldXSxjPWR1KCk7YyYmYi5wdXNoKFsiZ3RtIixjXSk7cmV0dXJuIGJ9KTtjZChmdW5jdGlvbigpe2EuZmE9RGIoKX0sODY0RTUpfSxaeT1mdW5jdGlvbihhLGIpe2EueWEucHVzaChiKX0sYXo9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuSDtpZihkPT09dm9pZCAwKWlmKGMpZD1yaigpO2Vsc2UgcmV0dXJuIiI7Zm9yKHZhciBlPVtmaygiaHR0cHM6Ly8iK0UoMjEpKSwiL2EiLCI/aWQ9IitFKDUpXSxmPW0oYS55YSksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpZm9yKHZhciBoPWcudmFsdWUsbD0KaCh7ZXZlbnRJZDpkLHRmOiEhYn0pLG49bShsKSxwPW4ubmV4dCgpOyFwLmRvbmU7cD1uLm5leHQoKSl7dmFyIHE9bShwLnZhbHVlKSxyPXEubmV4dCgpLnZhbHVlLHQ9cS5uZXh0KCkudmFsdWU7ZS5wdXNoKCImIityKyI9Iit0KX1lLnB1c2goIiZ6PTAiKTtyZXR1cm4gZS5qb2luKCIiKX0sYno9ZnVuY3Rpb24oYSl7aWYoJGsoMjYpJiYoYS5LJiYoQS5jbGVhclRpbWVvdXQoYS5LKSxhLks9dm9pZCAwKSxhLkghPT12b2lkIDAmJmEuUikpe3ZhciBiPWxvKGNvLmlhLlpiKTtpZihnbyhiKSlhLk58fChhLk49ITAsaW8oYixmdW5jdGlvbigpe3JldHVybiB2b2lkIGJ6KGEpfSkpO2Vsc2UgaWYoYS5aW2EuSF18fFh5KGEuamEpfHxhLkxhLS08PTApUCgxKSxhLlpbYS5IXT0hMDtlbHNle1l5KGEuamEpO3ZhciBjPWF6KGEsITApO1huKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTYsZXZlbnRJZDphLkh9LGMpO2EuUj0hMTthLk49ITF9fX0sY3o9ZnVuY3Rpb24oYSl7YS5LfHwoYS5LPQpBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCBieihhKX0sNTAwKSl9LGV6PWZ1bmN0aW9uKGEpe3ZhciBiPWR6O2IuWlthXXx8KGEhPT1iLkgmJihieihiKSxiLkg9YSksYi5SPSEwLGN6KGIpLGF6KGIpLmxlbmd0aD49MjAyMiYmYnooYikpfSxkejtmdW5jdGlvbiBmeihhKXtneigpO1p5KGR6LGEpfWZ1bmN0aW9uIGh6KCl7dmFyIGE7YT1hPT09dm9pZCAwPyExOmE7Z3ooKTt2YXIgYj1hLGM9ZHo7Yj1iPT09dm9pZCAwPyExOmI7aWYoZm4uTiYmJGsoMjYpKXt2YXIgZD1heihjLCEwLCEwKTtiP1ZuKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTYsZXZlbnRJZDpjLkh9LGQpOlhuKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTYsZXZlbnRJZDpjLkh9LGQpfX1mdW5jdGlvbiBneigpe2R6fHwoZHo9bmV3ICR5KX07ZnVuY3Rpb24gaXooKXtmdW5jdGlvbiBhKGMsZCl7dmFyIGU9d2IocmJbZF18fFtdKTtlJiZiLnB1c2goW2MsZV0pfXZhciBiPVtdO2EoInUiLCJHVE0iKTthKCJ1dCIsIlRBR0dJTkciKTthKCJoIiwiSEVBTFRIIik7cmV0dXJuIGJ9O3ZhciBqej0iaHR0cHM6Ly8iK0UoMjEpLGt6PWZ1bmN0aW9uKCl7dGhpcy5OPSExO3RoaXMuUj1bXTt0aGlzLlo9W107dGhpcy5IPXtUQzowLEhUQzowfTt0aGlzLks9e319LGx6PWZ1bmN0aW9uKGEsYixjLGQpe2EuS1tiXXx8KGEuS1tiXT17fSk7YS5LW2JdW2NdPWR9LG96PWZ1bmN0aW9uKGEpe3ZhciBiPSIiLGM9IiIsZD1teigpO0FiKGQpJiYoYS5ILkk9TWF0aC5mbG9vcihkKSk7Yz1ueihhLkgsSnkpLnRvU3RyaW5nKCk7Zm9yKHZhciBlPW0oT2JqZWN0LmtleXMoYS5LKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWUsaD1hLktbZ10ubmFtZSxsPSIiLG49bnooYS5LW2ddLEt5KTtuJiYobD1oKyIuIituLnRvU3RyaW5nKCksYis9In4iK2wpfXZhciBwPSJ+QVdDVCIrYS5SLmpvaW4oIi4iKSxxPSJ+R0EiK2EuWi5qb2luKCIuIikscj0iJmNjaWQ9Iit2aygpLnRvU3RyaW5nKCkrIiZjaWQ9IitFKDUpLnRvU3RyaW5nKCkrIiZsPSIrYytiKyhhLlIubGVuZ3RoPwpwOiIiKSsoYS5aLmxlbmd0aD9xOiIiKTtpZihNKDIxNCkpe3ZhciB0LHU9KHQ9cmQoKSk9PW51bGw/dm9pZCAwOnQuZ2V0RW50cmllc0J5TmFtZShLYykubWFwKGZ1bmN0aW9uKHYpe3JldHVybiBTdHJpbmcodi5kdXJhdGlvbil9KS5qb2luKCIuIik7dSYmKHIrPSJ+U1MiK3UpfXJldHVybiByfSxwej1mdW5jdGlvbihhLGIpe2lmKCFiLnN0YWdlfHxhLk58fCFPeSgpfHxTeShiKSlyZXR1cm4hMTt2YXIgYyxkPShjPXJkKCkpPT1udWxsP3ZvaWQgMDpjLnRpbWVPcmlnaW47aWYoIUFiKGQpKWEuTj0hMDtlbHNlIGlmKEFiKCRrKDI1KSkmJiFTeSh7c3RhZ2U6SXkuWC5qZH0pJiYhYS5OJiZPeSgpKXRyeXt2YXIgZT1OdW1iZXIoJGsoMjUpKTtUeSh7c3RhZ2U6SXkuWC5qZH0se3N0YXJ0VGltZTpNYXRoLm1heChlLWQsMCl9KTtUeSh7c3RhZ2U6SXkuWC5pan0se3N0YXJ0VGltZTowfSk7dmFyIGY9VXkoe3N0YWdlOkl5LlguamR9LEl5LlguaWopO2YmJihhLkguTD1NYXRoLmZsb29yKGYpKX1jYXRjaChnKXthLk49CiEwfWlmKGEuTilyZXR1cm4hMTt0cnl7aWYoIVR5KGIpKXJldHVybiExfWNhdGNoKGcpe3JldHVybiBhLk49ITAsITF9cmV0dXJuITB9LHF6PWZ1bmN0aW9uKGEsYixjKXtpZihweihhLGIpKXRyeXt2YXIgZD1VeShiLGMpO2lmKGQpcmV0dXJuIE1hdGguZmxvb3IoZCl9Y2F0Y2goZSl7YS5OPSEwfX0sc3o9ZnVuY3Rpb24oKXt2YXIgYT1yeigpO3B6KGEse3N0YWdlOkl5LlgubWl9KX0sdHo9ZnVuY3Rpb24oKXt2YXIgYT1yeigpLGI9cXooYSx7c3RhZ2U6SXkuWC5Ya30sSXkuWC5taSk7YiE9PXZvaWQgMCYmKGEuSC5TPWIpfSx1ej1mdW5jdGlvbigpe3ZhciBhPXJ6KCk7cHooYSx7c3RhZ2U6SXkuWC5uaX0pfSx2ej1mdW5jdGlvbihhLGIpe3ZhciBjPXJ6KCk7cHooYyx7c3RhZ2U6SXkuWC5CaCxldmVudElkOmF9KTtjLktbYV0mJmMuS1thXS5uYW1lfHxseihjLGEsIm5hbWUiLFNiKGIsImd0bS4iKT9iOiIqIil9LHd6PWZ1bmN0aW9uKGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLnZtLApldmVudElkOmF9LEl5LlguQmgpO2MhPT12b2lkIDAmJmx6KGIsYSwiUyIsYyl9LHl6PWZ1bmN0aW9uKGEsYil7dmFyIGM9cnooKSxkPXF6KGMse3N0YWdlOkl5LlgudG0sZXZlbnRJZDphfSxJeS5YLkJoKTtkIT09dm9pZCAwJiZseihjLGEsIkUiLGQpO2lmKGI9PT0iZ3RtLmxvYWQiKXt2YXIgZT1xeihjLHtzdGFnZTpJeS5YLldrfSxJeS5YLlpnKTtlIT09dm9pZCAwJiYoYy5ILkU9ZSk7aW8obG8oY28uaWEuWmIpLGZ1bmN0aW9uKCl7aWYoIWMuTiYmT3koKSYmRSg1KSl7dmFyIGY9eHooKTtmIT09dm9pZCAwJiYoYy5ILkY9TWF0aC5mbG9vcihmKSk7dHJ5e2Zvcih2YXIgZz1peih7ZXZlbnRJZDowLHRmOiExfSksaD1bXSxsPW0oZyksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW0obi52YWx1ZSkscT1wLm5leHQoKS52YWx1ZSxyPXAubmV4dCgpLnZhbHVlO2gucHVzaCgiJiIrcSsiPSIrcil9dmFyIHQ9Q3AoKSx1PVtbZmsoanopLCIvYT92PTMmdD1sIiwiJnBpZD0iKwpEYigpLnRvU3RyaW5nKCksIiZydj0iK0UoMTQpLHQ/IiZ0YWdfZXhwPSIrdDoiIixoLmpvaW4oIiIpXS5qb2luKCIiKSwiJmd0bT0iLGR1KCksb3ooYyldLmpvaW4oIiIpO2lmKHUubGVuZ3RoPjIwMjIpe3ZhciB2PU1hdGgubWF4KHUubGFzdEluZGV4T2YoIi5UUyIsMjAyMiksdS5sYXN0SW5kZXhPZigifiIsMjAyMikpO3U9dS5zbGljZSgwLHYpfVhuKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6NTZ9LHUpfWNhdGNoKHgpe319fSl9fSx6ejtmdW5jdGlvbiByeigpe3p6fHwoeno9bmV3IGt6KTtyZXR1cm4genp9ZnVuY3Rpb24gbXooKXt0cnl7dmFyIGE7cmV0dXJuKChhPXJkKCkpPT1udWxsP3ZvaWQgMDphLmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKVswXSkuZG9tSW50ZXJhY3RpdmV9Y2F0Y2goYil7fX0KZnVuY3Rpb24gbnooYSxiKXtyZXR1cm4gT2JqZWN0LmtleXMoYikubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBiW2NdfSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBhW2NdIT09dm9pZCAwfSkubWFwKGZ1bmN0aW9uKGMpe3JldHVybigiIisoYz09PSJ0YWciPyIiOmMpKS5jb25jYXQoYVtjXS50b1N0cmluZygpKX0pLmpvaW4oIi4iKX1mdW5jdGlvbiBBeihhKXt2YXIgYj1yeigpLGM9cXooYix7c3RhZ2U6SXkuWC5FbSxldmVudElkOmF9LEl5LlguamQpO2MhPT12b2lkIDAmJmIuWi5wdXNoKGMpfWZ1bmN0aW9uIEJ6KGEpe3ZhciBiPXJ6KCksYz1xeihiLHtzdGFnZTpJeS5YLkVrLGV2ZW50SWQ6YX0sSXkuWC5qZCk7YyE9PXZvaWQgMCYmYi5SLnB1c2goYyl9ZnVuY3Rpb24gQ3ooYSl7dmFyIGI9cnooKTtweihiLHtzdGFnZTpJeS5YLlRpLGV2ZW50SWQ6YX0pfQpmdW5jdGlvbiBEeihhKXt2YXIgYj1yeigpLGM9cXooYix7c3RhZ2U6SXkuWC5zbSxldmVudElkOmF9LEl5LlguVGkpO2MhPT12b2lkIDAmJmx6KGIsYSwiViIsYyl9ZnVuY3Rpb24geHooKXt0cnl7dmFyIGEsYjtyZXR1cm4oYj0oYT1yZCgpKT09bnVsbD92b2lkIDA6YS5nZXRFbnRyaWVzQnlUeXBlKCJwYWludCIpLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMubmFtZT09PSJmaXJzdC1jb250ZW50ZnVsLXBhaW50In0pKT09bnVsbD92b2lkIDA6Yi5zdGFydFRpbWV9Y2F0Y2goYyl7fX1mdW5jdGlvbiBFeihhLGIpe3ZhciBjPXJ6KCk7cHooYyx7c3RhZ2U6SXkuWC54aixldmVudElkOmEuaWQsdGFnSWQ6TnVtYmVyKGJbR2YueWpdKX0pfQpmdW5jdGlvbiBGeihhLGIsYyl7dmFyIGQ9cnooKSxlPWRuKGIpLGY9TnVtYmVyKGJbR2YueWpdKSxnPXF6KGQse3N0YWdlOmMsZXZlbnRJZDphLmlkLHRhZ0lkOmZ9LEl5LlgueGopO2lmKGchPT12b2lkIDAmJmQuS1thLmlkXSl7dmFyIGg9ZC5LW2EuaWRdLnRhZ3x8IiIsbCxuPShsPU15W2NdKSE9bnVsbD9sOiIxIixwPW5ldyBSZWdFeHAoIlRTXFxkIitlKyIuVEkiK2YpLHE9IlRTIituK2UrIi5USSIrZisiLlRFIitnO2guc2VhcmNoKHApPj0wP24hPT0iMSImJmx6KGQsYS5pZCwidGFnIixoLnJlcGxhY2UocCxxLnJlcGxhY2UoIi5URSIrZywiIikpKToobHooZCxhLmlkLCJ0YWciLChoP2grIi4iOiIiKStxKSxlPT09Imh0bWwiJiYoZC5ILkhUQys9MSksZC5ILlRDKz0xKX19Owp2YXIgR3o9ZnVuY3Rpb24oYSl7UShhLEguSi5kYSk9PT1YLlYueGEmJiFRKGEsSC5KLkVjKSYmWHgoYSxwdikmJnJ2KHB2KX0sSXo9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5kYSk7aWYoYj09PVguVi5LYSlHeShhKTtlbHNle3ZhciBjPUh6W2JdO2lmKGMpZm4uSCYmYj09PVguVi54YSYmQnooYS5NLmV2ZW50SWQpLFF3KGEsZnVuY3Rpb24oZCl7dmFyIGU9Z3koYSk7VihhLEguSi5waixlKTtlJiZuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGQsZnkoYSxlKSk7RnkoMyxhLmV2ZW50TmFtZSk7dmFyIGY9e30sZz17fTtRdShhLHtRczpmdW5jdGlvbihoLGwsbil7aWYobi5maW5kKGZ1bmN0aW9uKHApe3JldHVybiBwLmlzUHJpbWFyeSYmKHAuc3RhdHVzPT09MHx8cC5zdGF0dXM9PT0xKX0pKWguTS5vblN1Y2Nlc3MoKTtlbHNlIEd6KGgpLGguTS5vbkZhaWx1cmUoKX0sU3M6ZnVuY3Rpb24oaCxsKXt2YXIgbjt2YXIgcD1sLnNiLHE9bC5lbmRwb2ludC5lbmRwb2ludCwKcjtzd2l0Y2gobC5wayBpbnN0YW5jZW9mIGt4PzI6bC5wayBpbnN0YW5jZW9mIHJ4PzQ6bC5wayBpbnN0YW5jZW9mIGt1PzM6MSl7Y2FzZSAyOnI9MjE7YnJlYWs7Y2FzZSAzOlEoaCxILkouZGEpPT09WC5WLnhhJiZRKGgsSC5KLm9iKSYmcSE9PTkmJihyPTIwKTticmVhaztjYXNlIDQ6cj0yMH1pZihyKXt2YXIgdDt2YXIgdT1OZihyLC0xKTtYeChoLG92KT8oWngocCxoLHUpLHQ9e010OlR4fSk6dD17d2U6WXgoaCx1KX07dmFyIHY9dCx4PXYud2UseT12Lk10O3g9PW51bGx8fFJ4KHgpO249e3dlOngsa3Q6eX19ZWxzZSBuPXt9O3ZhciB6PW4sQz16LndlLEQ9ei5rdDtDJiYoZltsLnNiXT1DKTtEJiYoZ1tsLnNiXT1EKX0sdW86ZnVuY3Rpb24oaCxsKXtmW2wuc2JdJiYoVG4oZltsLnNiXSksZGVsZXRlIGZbbC5zYl0pO2dbbC5zYl0mJihVbihnW2wuc2JdLGwuc2IpLGRlbGV0ZSBnW2wuc2JdKX0sUnM6ZnVuY3Rpb24oaCxsLG4scCxxKXtpZihxLmxlbmd0aCYmYiE9PVguVi51Yil7dmFyIHI9CnFbcS5sZW5ndGgtMV0sdD1yLnNiLHU9ci5lbmRwb2ludC5lbmRwb2ludDtpZighUHguaW5jbHVkZXModSkpe3ZhciB2PWguTTtNbCh7dGFyZ2V0SWQ6aC50YXJnZXQuZGVzdGluYXRpb25JZCxyZXF1ZXN0Ont1cmw6dCxwYXJhbWV0ZXJFbmNvZGluZzozLGVuZHBvaW50OnV9LHFiOntldmVudElkOnYuZXZlbnRJZCxwcmlvcml0eUlkOnYucHJpb3JpdHlJZH0sRmo6e2V2ZW50SWQ6UShoLEguSi51ZikscHJpb3JpdHlJZDpRKGgsSC5KLnZmKX19KTtRKGgsSC5KLmRhKX19fX0sYyl9KTtlbHNlIGEuTS5vbkZhaWx1cmUoKX19LEp6PXt9LEh6PShKeltYLlYuemRdPVp3LEp6W1guVi54YV09RngsSnpbWC5WLllkXT1LeCxKeltYLlYuWmRdPU94LEp6W1guVi51Yl09ZXksSnpbWC5WLk9iXT15eSxKeltYLlYuRmJdPUN5LEp6KTt2YXIgS3o9e2dqOnticDoiMSIsdXE6IjIiLFZxOiIzIn19Owp2YXIgTHo9e30sTXo9T2JqZWN0LmZyZWV6ZSgoTHpbRi5ELmZoXT0xLEx6W0YuRC5naF09MSxMeltGLkQuQmRdPTEsTHpbRi5ELkNkXT0xLEx6W0YuRC5SY109MSxMeltGLkQuc2ldPTEsTHpbRi5ELnVpXT0xLEx6W0YuRC5DbF09MSxMeltGLkQuaWhdPTEsTHpbRi5ELkNmXT0xLEx6W0YuRC5EZl09MSxMeltGLkQuRWZdPTEsTHpbRi5ELkhhXT0xLEx6W0YuRC5GZl09MSxMeltGLkQuRmRdPTEsTHpbRi5ELnVjXT0xLEx6W0YuRC5IZF09MSxMeltGLkQuTGJdPTEsTHpbRi5ELkNiXT0xLEx6W0YuRC5UYl09MSxMeltGLkQubmJdPTEsTHpbRi5ELmViXT0xLEx6W0YuRC5HZV09MSxMeltGLkQua2hdPTEsTHpbRi5ELk9hXT0xLEx6W0YuRC5PcF09MSxMeltGLkQuU3BdPTEsTHpbRi5ELkllXT0xLEx6W0YuRC5HaV09MSxMeltGLkQuUWZdPTEsTHpbRi5ELlRhXT0xLEx6W0YuRC5ZY109MSxMeltGLkQuWmNdPTEsTHpbRi5ELnRiXT0xLEx6W0YuRC5RZF09MSxMeltGLkQuUmRdPTEsTHpbRi5ELlNkXT0KMSxMeltGLkQuTmVdPTEsTHpbRi5ELnphXT0xLEx6W0YuRC5VYV09MSxMeltGLkQuV2xdPTEsTHpbRi5ELlhsXT0xLEx6W0YuRC5ZbF09MSxMeltGLkQuWmxdPTEsTHpbRi5ELldiXT0xLEx6W0YuRC5UZF09MSxMeltGLkQuWGJdPTEsTHpbRi5ELmRkXT0xLEx6W0YuRC5VZF09MSxMeltGLkQuUWVdPTEsTHpbRi5ELlBhXT0xLEx6W0YuRC55Y109MSxMeltGLkQuVmRdPTEsTHpbRi5ELnpjXT0xLEx6W0YuRC5BY109MSxMeltGLkQuZmJdPTEsTHpbRi5ELlFhXT0xLEx6KSksTno9e30sT3o9KE56W0YuRC5VY109MSxOeltGLkQuUHBdPTEsTnpbRi5ELkhlXT0xLE56W0YuRC5yaV09MSxOei5vcmVmPTEsTnopO3ZhciBQeixRejsKZnVuY3Rpb24gUnooYSxiKXt2YXIgYz1hW0dmLlliXSxkPWImJmIuZXZlbnQ7aWYoIWMpdGhyb3cgRXJyb3IoIkVycm9yOiBObyBmdW5jdGlvbiBuYW1lIGdpdmVuIGZvciBmdW5jdGlvbiBjYWxsLiIpO3ZhciBlPVF6W2NdLGY9e30sZztmb3IoZyBpbiBhKWEuaGFzT3duUHJvcGVydHkoZykmJihTYihnLCJ2dHBfIik/ZltlIT09dm9pZCAwP2c6Zy5zdWJzdHJpbmcoNCldPWFbZ106Zz09PUdmLkZxLnRvU3RyaW5nKCkmJihmW2UhPT12b2lkIDA/InZ0cF9ndG1HZW5lcmF0ZWRUYWdnaW5nTWV0YWRhdGEiOmddPWFbZ10pKTtJZig2MSkmJmUmJihmLnZ0cF9leHRyYUV4cGVyaW1lbnRJZHM9ITApO2UmJmQmJmQuY2FjaGVkTW9kZWxWYWx1ZXMmJihmLnZ0cF9ndG1DYWNoZWRWYWx1ZXM9ZC5jYWNoZWRNb2RlbFZhbHVlcyk7YiYmZSYmKGYudnRwX2d0bUVudGl0eUluZGV4PWIuaW5kZXgsZi52dHBfZ3RtRW50aXR5TmFtZT1iLm5hbWUpO3JldHVybiBlIT09dm9pZCAwP2UoZik6UHooYyxmLApiKX12YXIgVHo9ZnVuY3Rpb24oKXt2YXIgYT1TejtpZihNKDU4NSkmJmZuLkspe3ZhciBiPUUoNSkuaW5kZXhPZigiR1RNLSIpPT09MCYmSWYoNjIpLGMsZD0oKGM9RmsoKSk9PW51bGw/dm9pZCAwOmMuc291cmNlKT09PTE7YiYmIWR8fGEuSHx8KGEuSD0hMCxVbSgiYWJsIiwiMSIpLHRvKCkpfX0sU3o9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPSExfTt2YXIgVXo9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5IPWE7dGhpcy5pbmRleD1iO3RoaXMudGFncz1jO3RoaXMubWFjcm9zPWQ7dGhpcy5uYW1lPVN0cmluZyh0aGlzLkhbR2YuUm1dfHwiIil9OwpVei5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiKXtpZighYlt0aGlzLmluZGV4XSYmIWEuaXNCbG9ja2VkKHRoaXMuSCkpe2JbdGhpcy5pbmRleF09ITA7dGhpcy5IW0dmLnBsLnRvU3RyaW5nKCldJiZUeigpO3ZhciBjPXRoaXMubmFtZSxkO3RyeXt2YXIgZT17fSxmO2ZvcihmIGluIHRoaXMuSCl0aGlzLkguaGFzT3duUHJvcGVydHkoZikmJihlW2ZdPWVsKHRoaXMuSFtmXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxiKSk7ZS52dHBfZ3RtRXZlbnRJZD1hLmlkO2EucHJpb3JpdHlJZCYmKGUudnRwX2d0bVByaW9yaXR5SWQ9YS5wcmlvcml0eUlkKTt2YXIgZz1kPVJ6KGUse2V2ZW50OmEsaW5kZXg6dGhpcy5pbmRleCx0eXBlOjIsbmFtZTpjfSk7ZVtHZi5aa10mJnR5cGVvZiBnPT09InN0cmluZyImJihnPWVbR2YuWmtdPT09MT9nLnRvTG93ZXJDYXNlKCk6Zy50b1VwcGVyQ2FzZSgpKTtlLmhhc093blByb3BlcnR5KEdmLmFoKSYmKGc9WWYoMTgpP2VbR2YuYWhdPT09MT8KVmYoZywiUEVSSU9EIik6ZVtHZi5haF09PT0yP1ZmKGcsIkNPTU1BIik6VmYoZywiQVVUT01BVElDIik6ZVtHZi5haF09PT0xP1ZmKGcsIlBFUklPRCIpOlZmKGcsIkNPTU1BIikpO2UuaGFzT3duUHJvcGVydHkoR2YuYmwpJiZnPT09bnVsbCYmKGc9ZVtHZi5ibF0pO2UuaGFzT3duUHJvcGVydHkoR2YuaWwpJiZnPT09dm9pZCAwJiYoZz1lW0dmLmlsXSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5lcCkmJihnPUpiKGcpKTtlLmhhc093blByb3BlcnR5KEdmLmZsKSYmZz09PSEwJiYoZz1lW0dmLmZsXSk7ZS5oYXNPd25Qcm9wZXJ0eShHZi5hbCkmJmc9PT0hMSYmKGc9ZVtHZi5hbF0pO2Q9Z31jYXRjaChoKXthLmxvZ01hY3JvRXJyb3ImJmEubG9nTWFjcm9FcnJvcihoLE51bWJlcih0aGlzLmluZGV4KSxjKSxkPSExfWJbdGhpcy5pbmRleF09ITE7cmV0dXJuIGR9fTtVei5wcm90b3R5cGUuRmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSx0aGlzLkgpfTt2YXIgVno9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuSD1hO3RoaXMudGFncz1iO3RoaXMubWFjcm9zPWN9O1Z6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe3RyeXtmb3IodmFyIGM9e30sZD1tKE9iamVjdC5rZXlzKHRoaXMuSCkpLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1lLnZhbHVlO2NbZl09Zj09PSJmdW5jdGlvbiI/dGhpcy5IW2ZdOmVsKHRoaXMuSFtmXSxhLHRoaXMudGFncyx0aGlzLm1hY3JvcyxiKX1yZXR1cm4gY2woYyl9Y2F0Y2goZyl7SlNPTi5zdHJpbmdpZnkodGhpcy5IKX1yZXR1cm4gMn07VnoucHJvdG90eXBlLkZnPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sdGhpcy5IKX07dmFyIFd6PWZ1bmN0aW9uKGEsYil7dGhpcy5pbmRleD1iO3RoaXMuTj1bXTt0aGlzLlI9W107dGhpcy5LPVtdO3RoaXMuSD1bXTt0aGlzLm5hbWU9IiI7Zm9yKHZhciBjPW0oYSksZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpe3ZhciBlPW0oZC52YWx1ZSksZj1lLm5leHQoKS52YWx1ZSxnPXlhKGUpLGg9ZixsPWc7aD09PSJpZiI/dGhpcy5OPWw6aD09PSJ1bmxlc3MiP3RoaXMuUj1sOmg9PT0iYWRkIj90aGlzLks9bDpoPT09ImJsb2NrIj90aGlzLkg9bDpoPT09InJ1bGVOYW1lIiYmKHRoaXMubmFtZT1sWzBdKX19OwpXei5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1Yeih0aGlzLGIpLGQ9W10sZT1bXTtjPyhkLnB1c2guYXBwbHkoZCx3KHRoaXMuSykpLGUucHVzaC5hcHBseShlLHcodGhpcy5IKSkpOmM9PT1udWxsJiZlLnB1c2guYXBwbHkoZSx3KHRoaXMuSCkpO3JldHVybntmaXJpbmdUYWdzOmQsYmxvY2tpbmdUYWdzOmV9fTsKdmFyIFh6PWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW0oYS5OKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9YihkLnZhbHVlKTtpZihlPT09MClyZXR1cm4hMTtpZihlPT09MilyZXR1cm4gbnVsbH1mb3IodmFyIGY9bShhLlIpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKXt2YXIgaD1iKGcudmFsdWUpO2lmKGg9PT0yKXJldHVybiBudWxsO2lmKGg9PT0xKXJldHVybiExfXJldHVybiEwfTtXei5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWV9O3ZhciBZej1mdW5jdGlvbihhLGIsYyxkKXt0aGlzLklhPWE7dGhpcy5pbmRleD1iO3RoaXMudGFncz1jO3RoaXMubWFjcm9zPWQ7dGhpcy5PPVN0cmluZyh0aGlzLklhW0dmLlliXSk7dGhpcy5uYW1lPVN0cmluZyh0aGlzLklhW0dmLlJtXXx8IiIpO3RoaXMudGFnSWQ9TnVtYmVyKHRoaXMuSWFbR2YueWpdKX07Cll6LnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbihhLGIsYyl7Yz1jPT09dm9pZCAwP3t9OmM7dmFyIGQsZT1jO2U9ZT09PXZvaWQgMD97fTplO3ZhciBmPXt9LGc7Zm9yKGcgaW4gdGhpcy5JYSl0aGlzLklhLmhhc093blByb3BlcnR5KGcpJiYoZltnXT1lbCh0aGlzLklhW2ddLGEsdGhpcy50YWdzLHRoaXMubWFjcm9zLFtdKSk7ZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGYsZSk7ZC52dHBfZ3RtVGFnSWQ9dGhpcy50YWdJZDt0aGlzLklhW0dmLnBsLnRvU3RyaW5nKCldJiZUeigpO1J6KGQse2V2ZW50OmEsaW5kZXg6dGhpcy5pbmRleCx0eXBlOjEsbmFtZTp0aGlzLm5hbWV9KX07WXoucHJvdG90eXBlLkZnPWZ1bmN0aW9uKCl7cmV0dXJuIG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sdGhpcy5JYSl9Owp2YXIgWno9ZnVuY3Rpb24oYSxiKXtpZihhLklhW0dmLnRuXSlyZXR1cm4gZWwoYS5JYVtHZi50bl0sYixhLnRhZ3MsYS5tYWNyb3MsW10pfSwkej1mdW5jdGlvbihhLGIpe2lmKGEuSWFbR2YuRG5dKXJldHVybiBlbChhLklhW0dmLkRuXSxiLGEudGFncyxhLm1hY3JvcyxbXSl9LGFBPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5JYVtHZi5jcF07aWYoYylyZXR1cm4gZWwoYyxiLGEudGFncyxhLm1hY3JvcyxbXSl9O1l6LnByb3RvdHlwZS5nZXRNZXRhZGF0YT1mdW5jdGlvbihhKXtyZXR1cm4gZWwodGhpcy5JYVtHZi5NRVRBREFUQV0sYSx0aGlzLnRhZ3MsdGhpcy5tYWNyb3MsW10pfTtZei5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWV9O3ZhciBiQT1mdW5jdGlvbigpe3RoaXMubWFjcm9zPVtdO3RoaXMucnVsZXM9W107dGhpcy5wcmVkaWNhdGVzPVtdO3RoaXMudGFncz1bXTt0aGlzLnZrPVtdfTtiQS5wcm90b3R5cGUuZ2V0UnVsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ydWxlc307dmFyIGNBPW5ldyBiQTtmdW5jdGlvbiBkQShhLGIsYyxkKXt2YXIgZT1XYygpLGY7aWYoZT09PTEpYTp7dmFyIGc9RSgzKTtnPWcudG9Mb3dlckNhc2UoKTtmb3IodmFyIGg9Imh0dHBzOi8vIitnLGw9Imh0dHA6Ly8iK2csbj0xLHA9Qi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikscT0wO3E8cC5sZW5ndGgmJnE8MTAwO3ErKyl7dmFyIHI9cFtxXS5zcmM7aWYocil7cj1yLnRvTG93ZXJDYXNlKCk7aWYoci5pbmRleE9mKGwpPT09MCl7Zj0zO2JyZWFrIGF9bj09PTEmJnIuaW5kZXhPZihoKT09PTAmJihuPTIpfX1mPW59ZWxzZSBmPWU7cmV0dXJuKGY9PT0yfHxkfHwiaHR0cDoiIT09QS5sb2NhdGlvbi5wcm90b2NvbD9hOmIpK2N9O3ZhciBlQT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5LPXt9O3RoaXMuSD17fTtmeihmdW5jdGlvbihiKXt2YXIgYz1bXSxkO2ZvcihkIGluIGEuSylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYS5LLGQpJiZjLnB1c2goZCsifiIrYS5LW2RdKTt2YXIgZT1bXSxmO2ZvcihmIGluIGEuSClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYS5ILGYpJiZlLnB1c2goZisifiIrYS5IW2ZdKTtiLnRmJiYoYS5LPXt9LGEuSD17fSk7dmFyIGc9W107Yy5sZW5ndGg+MCYmZy5wdXNoKFsiYmNzIixjLmpvaW4oIi4iKV0pO2UubGVuZ3RoPjAmJmcucHVzaChbImJldCIsZS5qb2luKCIuIildKTtyZXR1cm4gZ30pfSxmQTtmdW5jdGlvbiBnQSgpe2ZBfHwoZkE9bmV3IGVBKX07ZnVuY3Rpb24gaEEoYSxiLGMsZCxlKXtpZighRWsoYSkpe2QubG9hZEV4cGVyaW1lbnRzPXlqKCk7SGsoYSxkLGUpO3ZhciBmPWlBKGEpLGc9ZnVuY3Rpb24oKXtvaygpLmNvbnRhaW5lclthXSYmKG9rKCkuY29udGFpbmVyW2FdLnN0YXRlPTMpO2pBKCl9LGg9e2Rlc3RpbmF0aW9uSWQ6YSxlbmRwb2ludDowfTtpZihXaigpKXt2YXIgbD1YaigpLG49bCsiLyIra0EoZixhKTtabihoLG4sdm9pZCAwLGZ1bmN0aW9uKCl7bEEoYSxuLGwrIi8iK2YsaCxnKX0pfWVsc2V7dmFyIHA9U2IoYSwiR1RNLSIpLHE9ZGsoKSxyPWM/Ii9ndGFnL2pzIjoiL2d0bS5qcyIsdD1tQShiLHIrZixhKTtpZighdCl7dmFyIHU9RSgzKStyO3EmJktjJiZwJiYodT1LYy5yZXBsYWNlKC9eKD86aHR0cHM/OlwvXC8pPy9pLCIiKS5zcGxpdCgvWz8jXS8pWzBdKTt0PWRBKCJodHRwczovLyIsImh0dHA6Ly8iLHUrZil9Wm4oaCx0LHZvaWQgMCxnKX19fQpmdW5jdGlvbiBqQSgpe0trKCl8fEdiKExrKCksZnVuY3Rpb24oYSxiKXtuQShhLGIudHJhbnNwb3J0VXJsLGIuY29udGV4dCk7UCg5Mil9KX1mdW5jdGlvbiBuQShhLGIsYyxkKXtpZighR2soYSkpaWYoYy5sb2FkRXhwZXJpbWVudHN8fChjLmxvYWRFeHBlcmltZW50cz15aigpKSxLaygpKUprKGEsYixjLGQpO2Vsc2V7SWsoYSxjLGQpO3ZhciBlPXtkZXN0aW5hdGlvbklkOmEsZW5kcG9pbnQ6MH07aWYoV2ooKSl7dmFyIGY9WGooKSxnPSJndGQiK2lBKGEsITApLGg9ZisiLyIra0EoZyxhKTtabihlLGgsdm9pZCAwLGZ1bmN0aW9uKCl7bEEoYSxoLGYrIi8iK2csZSl9KX1lbHNle3ZhciBsPSIvZ3RhZy9kZXN0aW5hdGlvbiIraUEoYSwhMCksbj1tQShiLGwsYSk7bnx8KG49ZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsRSgzKStsKSk7Wm4oZSxuKX19fQpmdW5jdGlvbiBsQShhLGIsYyxkLGUpe2lmKE0oNDEzKSl7Z0EoKTt2YXIgZj1mQTtpZihmbi5OKXt2YXIgZz1BLnBlcmZvcm1hbmNlLGg9LTE7aWYoZyYmZy5nZXRFbnRyaWVzQnlUeXBlKXt2YXIgbD1SaihiKS5ocmVmLG49Zy5nZXRFbnRyaWVzQnlOYW1lKGwpLnBvcCgpO2lmKCFuKWZvcih2YXIgcD1nLmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIikscT0wO3E8cC5sZW5ndGg7cSsrKXt2YXIgcj1wW3FdO2lmKHIubmFtZSYmci5uYW1lLmluZGV4T2YoYikhPT0tMSl7bj1yO2JyZWFrfX1uJiZuLnJlc3BvbnNlU3RhdHVzIT09dm9pZCAwJiYoaD1uLnJlc3BvbnNlU3RhdHVzKX1mLktbYV09aH1QKDE5MCk7dmFyIHQ9bm0oam0uYmEua2opfHx7fTt0W2FdPSEwO21tKGptLmJhLmtqLHQpO3ZhciB1PWMrKGMuaW5kZXhPZigiPyIpPT09LTE/Ij9mPTEiOiImZj0xIik7ZT9abihkLHUsdm9pZCAwLGUpOlpuKGQsdSl9ZWxzZSBlJiZlKCl9CmZ1bmN0aW9uIGlBKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9Ij9pZD0iK2VuY29kZVVSSUNvbXBvbmVudChhKSxkPUUoMTkpO2QhPT0iZGF0YUxheWVyIiYmKGMrPSImbD0iK2QpO3ZhciBlPVNiKGEsIkdUTS0iKTtpZighZXx8YiljKz0iJmN4PWMiO2UmJklmKDYyKSYmKGMrPSImZ29vZ2xlX29ubHk9dHJ1ZSIpO3ZhciBmPWMsZyxoPXtEbzpKZigxNSksSW86RSgxNCl9O2c9Q2YoaCk7Yz1mKygiJmd0bT0iK2cpO2RrKCkmJihjKz0iJnNpZ249IitBai5xaik7dmFyIGw9YyxuPUpmKDU0KTtpZihuPT09MSl7bCs9IiZmcHM9ZmMiO3ZhciBwPUUoNjApO3AmJihsKz0iJmdkZXY9IitwKX1lbHNlIG49PT0yJiYobCs9IiZmcHM9ZmUiKTtyZXR1cm4gbH0KZnVuY3Rpb24ga0EoYSxiKXtpZighTSg0MTMpfHwhWGooKSlyZXR1cm4gYTt2YXIgYz1FKDU4KTtpZighYylyZXR1cm4gUCgxODIpLGE7dHJ5e3ZhciBkPU5iKCksZT1FZihhLGMpLGY9TmIoKS1kO2dBKCk7dmFyIGc9ZkE7Zm4uTiYmKGcuSFtiXT1mKTtyZXR1cm4gZX1jYXRjaChoKXtyZXR1cm4gUCgxODMpLGF9fWZ1bmN0aW9uIG1BKGEsYixjKXtpZihhaygpJiZhKXt2YXIgZD1FKDU4KSxlPVhqKCk7aWYoZCYmZSl0cnl7dmFyIGY9TmIoKTtiPWUrIi8iK0VmKGIsZCk7dmFyIGc9TmIoKS1mO2dBKCk7dmFyIGg9ZkE7Zm4uTiYmKGguSFtjXT1nKX1jYXRjaChsKXtQKDE4Myl9cmV0dXJuIFlqKGEsYil9fTt2YXIgcEE9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuSz1uZXcgRmI7dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLlI9e25hbWU6RSgxOSksc2V0OmZ1bmN0aW9uKGIsYyl7RWQoVmIoYixjKSxhLkgpO29BKGEpfSxnZXQ6ZnVuY3Rpb24oYil7cmV0dXJuIGEuZ2V0KGIsMil9LHJlc2V0OmZ1bmN0aW9uKCl7YS5LPW5ldyBGYjthLkg9e307b0EoYSl9fX07cEEucHJvdG90eXBlLmdldD1mdW5jdGlvbihhLGIpe3JldHVybiBiIT0yP3RoaXMuSy5nZXQoYSk6cUEodGhpcyxhKX07dmFyIHFBPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iLnNwbGl0KCIuIik7Yz1jfHxbXTtmb3IodmFyIGU9YS5ILGY9MDtmPGQubGVuZ3RoO2YrKyl7aWYoZT09PW51bGwpcmV0dXJuITE7aWYoZT09PXZvaWQgMClicmVhaztlPWVbZFtmXV07aWYoYy5pbmRleE9mKGUpIT09LTEpcmV0dXJufXJldHVybiBlfTsKcEEucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3RoaXMuTi5oYXNPd25Qcm9wZXJ0eShhKXx8KHRoaXMuSy5zZXQoYSxiKSxFZChWYihhLGIpLHRoaXMuSCksb0EodGhpcykpfTt2YXIgc0E9ZnVuY3Rpb24oKXtmb3IodmFyIGE9WyJndG0uYWxsb3dsaXN0IiwiZ3RtLmJsb2NrbGlzdCIsImd0bS53aGl0ZWxpc3QiLCJndG0uYmxhY2tsaXN0IiwidGFnVHlwZUJsYWNrbGlzdCJdLGI9ckEsYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLGU9Yi5nZXQoZCwxKTtpZihBcnJheS5pc0FycmF5KGUpfHxDZChlKSllPUVkKGUsbnVsbCk7Yi5OW2RdPWV9fSxvQT1mdW5jdGlvbihhLGIpe0diKGEuTixmdW5jdGlvbihjLGQpe2EuSy5zZXQoYyxkKTtFZChWYihjKSxhLkgpO0VkKFZiKGMsZCksYS5IKTtiJiZkZWxldGUgYS5OW2NdfSl9LHJBPW5ldyBwQSx0QT1yQS5SO2Z1bmN0aW9uIHVBKGEsYil7cmV0dXJuIHJBLmdldChhLGIpfQpmdW5jdGlvbiB2QShhLGIpe3ZhciBjPWI9PT12b2lkIDA/MjpiLGQ9ckEsZSxmPShjPT09dm9pZCAwPzI6YykhPT0xP3FBKGQsYSk6ZC5LLmdldChhKTtBZChmKT09PSJhcnJheSJ8fEFkKGYpPT09Im9iamVjdCI/ZT1FZChmLG51bGwpOmU9ZjtyZXR1cm4gZX07dmFyIHdBPW5ldyBSZWdFeHAoL14oLipcLik/KGdvb2dsZXx5b3V0dWJlfGJsb2dnZXJ8d2l0aGdvb2dsZSkoXC5jb20/KT8oXC5bYS16XXsyfSk/XC4/JC8pLHhBPXtjbDpbImVjbCJdLGN1c3RvbVBpeGVsczpbIm5vbkdvb2dsZVBpeGVscyJdLGVjbDpbImNsIl0sZWhsOlsiaGwiXSxnYWF3YzpbImdvb2d0YWciXSxobDpbImVobCJdLGh0bWw6WyJjdXN0b21TY3JpcHRzIiwiY3VzdG9tUGl4ZWxzIiwibm9uR29vZ2xlUGl4ZWxzIiwibm9uR29vZ2xlU2NyaXB0cyIsIm5vbkdvb2dsZUlmcmFtZXMiXSxjdXN0b21TY3JpcHRzOlsiaHRtbCIsImN1c3RvbVBpeGVscyIsIm5vbkdvb2dsZVBpeGVscyIsIm5vbkdvb2dsZVNjcmlwdHMiLCJub25Hb29nbGVJZnJhbWVzIl0sbm9uR29vZ2xlUGl4ZWxzOltdLG5vbkdvb2dsZVNjcmlwdHM6WyJub25Hb29nbGVQaXhlbHMiXSxub25Hb29nbGVJZnJhbWVzOlsibm9uR29vZ2xlUGl4ZWxzIl19LHlBPXtjbDpbImVjbCJdLGN1c3RvbVBpeGVsczpbImN1c3RvbVNjcmlwdHMiLAoiaHRtbCJdLGVjbDpbImNsIl0sZWhsOlsiaGwiXSxnYWF3YzpbImdvb2d0YWciXSxobDpbImVobCJdLGh0bWw6WyJjdXN0b21TY3JpcHRzIl0sY3VzdG9tU2NyaXB0czpbImh0bWwiXSxub25Hb29nbGVQaXhlbHM6WyJjdXN0b21QaXhlbHMiLCJjdXN0b21TY3JpcHRzIiwiaHRtbCIsIm5vbkdvb2dsZVNjcmlwdHMiLCJub25Hb29nbGVJZnJhbWVzIl0sbm9uR29vZ2xlU2NyaXB0czpbImN1c3RvbVNjcmlwdHMiLCJodG1sIl0sbm9uR29vZ2xlSWZyYW1lczpbImN1c3RvbVNjcmlwdHMiLCJodG1sIiwibm9uR29vZ2xlU2NyaXB0cyJdfSx6QT0iZ29vZ2xlIGN1c3RvbVBpeGVscyBjdXN0b21TY3JpcHRzIGh0bWwgbm9uR29vZ2xlUGl4ZWxzIG5vbkdvb2dsZVNjcmlwdHMgbm9uR29vZ2xlSWZyYW1lcyIuc3BsaXQoIiAiKTsKZnVuY3Rpb24gQUEoKXt2YXIgYT11QSgiZ3RtLmFsbG93bGlzdCIpfHx1QSgiZ3RtLndoaXRlbGlzdCIpO2EmJlAoOSk7SWYoNjIpJiYoYT12b2lkIDApO0JBKCkmJihJZig2Mik/UCgxMTYpOihQKDExNyksSWYoNDgpJiYoYT1bXSx3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUubG9nJiZ3aW5kb3cuY29uc29sZS5sb2coIkdUTSBibG9ja2VkLiBTZWUgZ28vMTM2ODc3MjguIikpKSk7dmFyIGI9YSYmUmIoS2IoYSkseEEpLGM9dUEoImd0bS5ibG9ja2xpc3QiKXx8dUEoImd0bS5ibGFja2xpc3QiKTtjfHwoYz11QSgidGFnVHlwZUJsYWNrbGlzdCIpKSYmUCgzKTtjP1AoOCk6Yz1bXTtCQSgpJiYoYz1LYihjKSxjLnB1c2goIm5vbkdvb2dsZVBpeGVscyIsIm5vbkdvb2dsZVNjcmlwdHMiLCJzYW5kYm94ZWRTY3JpcHRzIikpO0tiKGMpLmluZGV4T2YoImdvb2dsZSIpPj0wJiZQKDIpO3ZhciBkPWMmJlJiKEtiKGMpLHlBKSxlPXt9O3JldHVybiBmdW5jdGlvbihmKXt2YXIgZz1mJiYKZltHZi5ZYl07aWYoIWd8fHR5cGVvZiBnIT09InN0cmluZyIpcmV0dXJuITA7Zz1nLnJlcGxhY2UoL15fKi8sIiIpO2lmKGVbZ10hPT12b2lkIDApcmV0dXJuIGVbZ107dmFyIGg9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pW2ddfHxbXSxsPSEwO2EmJihsPWwmJkNBKGcsaCxiKSk7dmFyIG49ITE7YyYmKG49REEoZyxoLGQpKTt2YXIgcD0hbHx8bjshcCYmKGguaW5kZXhPZigic2FuZGJveGVkU2NyaXB0cyIpPT09LTF8fGImJmIuaW5kZXhPZigic2FuZGJveGVkU2NyaXB0cyIpIT09LTE/MDpFYihkLHpBKSkmJihwPSEwKTtyZXR1cm4gZVtnXT1wfX1mdW5jdGlvbiBDQShhLGIsYyl7aWYoYy5pbmRleE9mKGEpPDApaWYoYiYmYi5sZW5ndGg+MClmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7aWYoYy5pbmRleE9mKGJbZF0pPDApcmV0dXJuIFAoMTEpLCExfWVsc2UgcmV0dXJuITE7cmV0dXJuITB9CmZ1bmN0aW9uIERBKGEsYixjKXt2YXIgZD1jLmluZGV4T2YoYSk+PTA7aWYoZClyZXR1cm4gZDt2YXIgZT1FYihjLGJ8fFtdKTtlJiZQKDEwKTtyZXR1cm4gZX1mdW5jdGlvbiBCQSgpe3JldHVybiB3QS50ZXN0KEEubG9jYXRpb24mJkEubG9jYXRpb24uaG9zdG5hbWUpfTtmdW5jdGlvbiBFQShhKXtmb3IodmFyIGI9W10sYz1bXSxkPUZBKGEpLGU9bShjQS5nZXRSdWxlcygpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7Zm9yKHZhciBnPWYudmFsdWUuZXZhbHVhdGUoYSxkKSxoPWcuZmlyaW5nVGFncyxsPWcuYmxvY2tpbmdUYWdzLG49MDtuPGgubGVuZ3RoO24rKyliW2hbbl1dPSEwO2Zvcih2YXIgcD0wO3A8bC5sZW5ndGg7cCsrKWNbbFtwXV09ITB9Zm9yKHZhciBxPVtdLHI9MDtyPGNBLnRhZ3MubGVuZ3RoO3IrKyliW3JdJiYhY1tyXSYmKHFbcl09ITApO3JldHVybiBxfWZ1bmN0aW9uIEZBKGEpe3ZhciBiPVtdO3JldHVybiBmdW5jdGlvbihjKXtiW2NdPT09dm9pZCAwJiYoYltjXT1jQS5wcmVkaWNhdGVzW2NdLmV2YWx1YXRlKGEsW10pKTtyZXR1cm4gYltjXX19O3ZhciBHQT1mdW5jdGlvbigpe3RoaXMuSz0wO3RoaXMuSD17fX07R0EucHJvdG90eXBlLmFkZExpc3RlbmVyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0rK3RoaXMuSzt0aGlzLkhbYV09dGhpcy5IW2FdfHx7fTt0aGlzLkhbYV1bU3RyaW5nKGQpXT17bGlzdGVuZXI6YixyZjpjfTtyZXR1cm4gZH07R0EucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5IW2FdLGQ9U3RyaW5nKGIpO2lmKCFjfHwhY1tkXSlyZXR1cm4hMTtkZWxldGUgY1tkXTtyZXR1cm4hMH07dmFyIElBPWZ1bmN0aW9uKGEsYil7dmFyIGM9W107R2IoSEEuSFthXSxmdW5jdGlvbihkLGUpe2MuaW5kZXhPZihlLmxpc3RlbmVyKTwwJiYoZS5yZj09PXZvaWQgMHx8Yi5pbmRleE9mKGUucmYpPj0wKSYmYy5wdXNoKGUubGlzdGVuZXIpfSk7cmV0dXJuIGN9O2Z1bmN0aW9uIEpBKGEsYixjKXtyZXR1cm57ZW50aXR5VHlwZTphLGluZGV4SW5PcmlnaW5Db250YWluZXI6YixuYW1lSW5PcmlnaW5Db250YWluZXI6YyxvcmlnaW5Db250YWluZXJJZDpFKDUpLG9yaWdpbkNJZDp2aygpfX07ZnVuY3Rpb24gS0EoYSxiKXtpZihkYXRhLmVudGl0aWVzKXt2YXIgYz1kYXRhLmVudGl0aWVzW2FdO2lmKGMpcmV0dXJuIGNbYl19fTt2YXIgTUE9ZnVuY3Rpb24oYSxiKXt0aGlzLkg9ITE7dGhpcy5SPVtdO3RoaXMuZXZlbnREYXRhPXt0YWdzOltdfTt0aGlzLlo9ITE7dGhpcy5LPXRoaXMuTj0wO0xBKHRoaXMsYSxiKX0sTkE9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoQ2ouaGFzT3duUHJvcGVydHkoYil8fGI9PT0iX196b25lIilyZXR1cm4tMTt2YXIgZT17fTtDZChkKSYmKGU9RWQoZCxlKSk7ZS5pZD1jO2Uuc3RhdHVzPSJ0aW1lb3V0IjtyZXR1cm4gYS5ldmVudERhdGEudGFncy5wdXNoKGUpLTF9LE9BPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuZXZlbnREYXRhLnRhZ3NbYl07ZSYmKGUuc3RhdHVzPWMsZS5leGVjdXRpb25UaW1lPWQpfSxQQT1mdW5jdGlvbihhKXtpZighYS5IKXtmb3IodmFyIGI9YS5SLGM9MDtjPGIubGVuZ3RoO2MrKyliW2NdKCk7YS5IPSEwO2EuUi5sZW5ndGg9MH19LExBPWZ1bmN0aW9uKGEsYixjKXtiIT09dm9pZCAwJiZhLndnKGIpO2MmJkEuc2V0VGltZW91dChmdW5jdGlvbigpe1BBKGEpfSwKTnVtYmVyKGMpKX07TUEucHJvdG90eXBlLndnPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1QYihmdW5jdGlvbigpe2JkKGZ1bmN0aW9uKCl7YShFKDUpLGIuZXZlbnREYXRhKX0pfSk7dGhpcy5IP2MoKTp0aGlzLlIucHVzaChjKX07dmFyIFFBPWZ1bmN0aW9uKGEpe2EuTisrO3JldHVybiBQYihmdW5jdGlvbigpe2EuSysrO2EuWiYmYS5LPj1hLk4mJlBBKGEpfSl9LFJBPWZ1bmN0aW9uKGEpe2EuWj0hMDthLks+PWEuTiYmUEEoYSl9O2Z1bmN0aW9uIFNBKCl7cmV0dXJuIEFbVEEoKV19CmZ1bmN0aW9uIFRBKCl7cmV0dXJuIEEuR29vZ2xlQW5hbHl0aWNzT2JqZWN0fHwiZ2EifXZhciBXQT1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9e319O2Z1bmN0aW9uIFhBKCl7YTp7dmFyIGE9RSg1KTt9fQpmdW5jdGlvbiBZQShhLGIpe3JldHVybiBmdW5jdGlvbigpe3ZhciBjPVNBKCksZD1jJiZjLmdldEJ5TmFtZSYmYy5nZXRCeU5hbWUoYSk7aWYoZCl7dmFyIGU9ZC5nZXQoInNlbmRIaXRUYXNrIik7ZC5zZXQoInNlbmRIaXRUYXNrIixmdW5jdGlvbihmKXt2YXIgZz1mLmdldCgiaGl0UGF5bG9hZCIpLGg9Zi5nZXQoImhpdENhbGxiYWNrIiksbD1nLmluZGV4T2YoIiZ0aWQ9IitiKTwwO2wmJihmLnNldCgiaGl0UGF5bG9hZCIsZy5yZXBsYWNlKC8mdGlkPVVBLVswLTldKy1bMC05XSsvLCImdGlkPSIrYiksITApLGYuc2V0KCJoaXRDYWxsYmFjayIsdm9pZCAwLCEwKSk7ZShmKTtsJiYoZi5zZXQoImhpdFBheWxvYWQiLGcsITApLGYuc2V0KCJoaXRDYWxsYmFjayIsaCwhMCksZi5zZXQoIl94XzE5Iix2b2lkIDAsITApLGUoZikpfSl9fX07dmFyIGFCPVsiZXMiLCIxIl0sYkI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuZXZlbnREYXRhPXt9O3RoaXMuSD17fTtmeihmdW5jdGlvbihiKXt2YXIgYzt2YXIgZD1iLmV2ZW50SWQsZT1iLnRmO2lmKGEuZXZlbnREYXRhW2RdKXt2YXIgZj1bXTthLkhbZF18fGYucHVzaChhQik7Zi5wdXNoLmFwcGx5KGYsdyhhLmV2ZW50RGF0YVtkXSkpO2UmJihhLkhbZF09ITApO2M9Zn1lbHNlIGM9W107cmV0dXJuIGN9KX0sY0I7ZnVuY3Rpb24gZEIoYSxiKXt2YXIgYztpZigoYz1jQikhPW51bGwmJmZuLk4pe3ZhciBkPWMuZXZlbnREYXRhLGU7ZT1iLm1hdGNoKC9eKGd0bXxndGFnKVwuLyk/ZW5jb2RlVVJJQ29tcG9uZW50KGIpOiIqIjtkW2FdPVtbImUiLGVdLFsiZWlkIixTdHJpbmcoYSldXTtneigpO2V6KGEpfX07dmFyIGVCPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9e307dGhpcy5LPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPWIuZXZlbnRJZCxkPWIudGYsZT1bXSxmPWEuSFtjXXx8W107Zi5sZW5ndGgmJmUucHVzaChbInRyIixmLmpvaW4oIi4iKV0pO3ZhciBnPWEuS1tjXXx8W107Zy5sZW5ndGgmJmUucHVzaChbInRpIixnLmpvaW4oIi4iKV0pO2QmJihkZWxldGUgYS5IW2NdLGRlbGV0ZSBhLktbY10pO3JldHVybiBlfSl9LGZCOwpmdW5jdGlvbiBnQihhLGIsYyl7ZkJ8fChmQj1uZXcgZUIpO3ZhciBkPWZCO2lmKGZuLk4mJmIpe3ZhciBlPWRuKGIpO2QuSFthXT1kLkhbYV18fFtdO2QuSFthXS5wdXNoKGMrZSk7dmFyIGY9YltHZi5ZYl07aWYoIWYpdGhyb3cgRXJyb3IoIkVycm9yOiBObyBmdW5jdGlvbiBuYW1lIGdpdmVuIGZvciBmdW5jdGlvbiBjYWxsLiIpO3ZhciBnPShReltmXT8iMSI6IjIiKStlO2QuS1thXT1kLktbYV18fFtdO2QuS1thXS5wdXNoKGcpO2d6KCk7ZXooYSl9fTtmdW5jdGlvbiBoQihhLGIsYyl7Yz1jPT09dm9pZCAwPyExOmM7aUIoKS5hZGRSZXN0cmljdGlvbigwLGEsYixjKX1mdW5jdGlvbiBqQigpe3ZhciBhPXZrKCk7cmV0dXJuIGlCKCkuZ2V0UmVzdHJpY3Rpb25zKDAsYSl9ZnVuY3Rpb24ga0IoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMTpjO2lCKCkuYWRkUmVzdHJpY3Rpb24oMSxhLGIsYyl9ZnVuY3Rpb24gbEIoKXt2YXIgYT12aygpO3JldHVybiBpQigpLmdldFJlc3RyaWN0aW9ucygxLGEpfXZhciBtQj1mdW5jdGlvbigpe3RoaXMuY29udGFpbmVyPXt9O3RoaXMuSD17fX0sbkI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmNvbnRhaW5lcltiXTtjfHwoYz17X2VudGl0eTp7aW50ZXJuYWw6W10sZXh0ZXJuYWw6W119LF9ldmVudDp7aW50ZXJuYWw6W10sZXh0ZXJuYWw6W119fSxhLmNvbnRhaW5lcltiXT1jKTtyZXR1cm4gY307Cm1CLnByb3RvdHlwZS5hZGRSZXN0cmljdGlvbj1mdW5jdGlvbihhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDtpZighZHx8IXRoaXMuSFtiXSl7dmFyIGU9bkIodGhpcyxiKTthPT09MD9kP2UuX2VudGl0eS5leHRlcm5hbC5wdXNoKGMpOmUuX2VudGl0eS5pbnRlcm5hbC5wdXNoKGMpOmE9PT0xJiYoZD9lLl9ldmVudC5leHRlcm5hbC5wdXNoKGMpOmUuX2V2ZW50LmludGVybmFsLnB1c2goYykpfX07Cm1CLnByb3RvdHlwZS5nZXRSZXN0cmljdGlvbnM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1uQih0aGlzLGIpO2lmKGE9PT0wKXt2YXIgZCxlO3JldHVybltdLmNvbmNhdCh3KChjPT1udWxsP3ZvaWQgMDooZD1jLl9lbnRpdHkpPT1udWxsP3ZvaWQgMDpkLmludGVybmFsKXx8W10pLHcoKGM9PW51bGw/dm9pZCAwOihlPWMuX2VudGl0eSk9PW51bGw/dm9pZCAwOmUuZXh0ZXJuYWwpfHxbXSkpfWlmKGE9PT0xKXt2YXIgZixnO3JldHVybltdLmNvbmNhdCh3KChjPT1udWxsP3ZvaWQgMDooZj1jLl9ldmVudCk9PW51bGw/dm9pZCAwOmYuaW50ZXJuYWwpfHxbXSksdygoYz09bnVsbD92b2lkIDA6KGc9Yy5fZXZlbnQpPT1udWxsP3ZvaWQgMDpnLmV4dGVybmFsKXx8W10pKX1yZXR1cm5bXX07Cm1CLnByb3RvdHlwZS5nZXRFeHRlcm5hbFJlc3RyaWN0aW9ucz1mdW5jdGlvbihhLGIpe3ZhciBjPW5CKHRoaXMsYiksZCxlO3JldHVybiBhPT09MD8oYz09bnVsbD92b2lkIDA6KGQ9Yy5fZW50aXR5KT09bnVsbD92b2lkIDA6ZC5leHRlcm5hbCl8fFtdOihjPT1udWxsP3ZvaWQgMDooZT1jLl9ldmVudCk9PW51bGw/dm9pZCAwOmUuZXh0ZXJuYWwpfHxbXX07bUIucHJvdG90eXBlLnJlbW92ZUV4dGVybmFsUmVzdHJpY3Rpb25zPWZ1bmN0aW9uKGEpe3ZhciBiPW5CKHRoaXMsYSk7Yi5fZXZlbnQmJihiLl9ldmVudC5leHRlcm5hbD1bXSk7Yi5fZW50aXR5JiYoYi5fZW50aXR5LmV4dGVybmFsPVtdKTt0aGlzLkhbYV09ITB9O2Z1bmN0aW9uIGlCKCl7cmV0dXJuIGtqKCJyIixmdW5jdGlvbigpe3JldHVybiBuZXcgbUJ9KX07ZnVuY3Rpb24gb0IoYSxiLGMsZCl7dmFyIGU9Y0EudGFnc1thXSxmPXBCKGEsYixjLGQpO2lmKCFmKXJldHVybiBudWxsO3ZhciBnPVp6KGUsYyk7aWYoZyYmZy5sZW5ndGgpe3ZhciBoPWdbMF07Zj1vQihoLmluZGV4LHtvblN1Y2Nlc3M6ZixvbkZhaWx1cmU6aC5ibz09PTE/Yi50ZXJtaW5hdGU6Zix0ZXJtaW5hdGU6Yi50ZXJtaW5hdGV9LGMsZCl9cmV0dXJuIGZ9CmZ1bmN0aW9uIHBCKGEsYixjLGQpe2Z1bmN0aW9uIGUoKXtmdW5jdGlvbiB5KCl7aW0oMyk7dmFyIFM9TmIoKS1OO0pBKDEsYSxmLmdldE5hbWUoKSk7Z0IoYy5pZCxnLCI3Iik7T0EoYy5sZCxELCJleGNlcHRpb24iLFMpO2ZuLkgmJkZ6KGMsZyxJeS5YLnVqKTtJfHwoST0hMCxsKCkpfWlmKGYuSWFbR2YuT3FdKWwoKTtlbHNle3ZhciB6PWFBKGYsYyk7aWYoeiE9bnVsbClmb3IodmFyIEM9MDtDPHoubGVuZ3RoO0MrKylpZighWG8oeltDXSkpe2woKTtyZXR1cm59dmFyIEQ9TkEoYy5sZCxmLk8sZi50YWdJZCxmLmdldE1ldGFkYXRhKGMpKSxJPSExLEc9e3Z0cF9ndG1PblN1Y2Nlc3M6ZnVuY3Rpb24oKXtpZighSSl7ST0hMDt2YXIgUz1OYigpLU47Z0IoYy5pZCxnLCI1Iik7T0EoYy5sZCxELCJzdWNjZXNzIixTKTtmbi5IJiZGeihjLGcsSXkuWC53aik7aCgpfX0sdnRwX2d0bU9uRmFpbHVyZTpmdW5jdGlvbigpe2lmKCFJKXtJPSEwO3ZhciBTPU5iKCktTjtnQihjLmlkLGcsIjYiKTsKT0EoYy5sZCxELCJmYWlsdXJlIixTKTtmbi5IJiZGeihjLGcsSXkuWC52aik7bCgpfX19O0cudnRwX2d0bUV2ZW50SWQ9Yy5pZDtjLnByaW9yaXR5SWQmJihHLnZ0cF9ndG1Qcmlvcml0eUlkPWMucHJpb3JpdHlJZCk7Z0IoYy5pZCxnLCIxIik7Zm4uSCYmRXooYyxnKTt2YXIgTj1OYigpO3RyeXtmLmV2YWx1YXRlKGMsZCxHKX1jYXRjaChTKXt5KFMpfWZuLkgmJkZ6KGMsZyxJeS5YLkNuKX19dmFyIGY9Y0EudGFnc1thXSxnPWYuRmcoKSxoPWIub25TdWNjZXNzLGw9Yi5vbkZhaWx1cmUsbj1iLnRlcm1pbmF0ZTtpZihjLmlzQmxvY2tlZChnKSlyZXR1cm4gbnVsbDt2YXIgcD0keihmLGMpO2lmKHAmJnAubGVuZ3RoKXt2YXIgcT1wWzBdLHI9b0IocS5pbmRleCx7b25TdWNjZXNzOmgsb25GYWlsdXJlOmwsdGVybWluYXRlOm59LGMsZCk7aWYoIXIpcmV0dXJuIG51bGw7aD1yO2w9cS5ibz09PTI/bjpyfWlmKGYuSWFbR2Yua25dfHxmLklhW0dmLlFxXSl7dmFyIHQ9Zi5JYVtHZi5rbl0/CmNBLnZrOmMudmssdT1oLHY9bDtpZighdFthXSl7dmFyIHg9cUIoYSx0LFBiKGUpKTtoPXgub25TdWNjZXNzO2w9eC5vbkZhaWx1cmV9cmV0dXJuIGZ1bmN0aW9uKCl7dFthXSh1LHYpfX1yZXR1cm4gZX1mdW5jdGlvbiBxQihhLGIsYyl7dmFyIGQ9W10sZT1bXTtiW2FdPXJCKGQsZSxjKTtyZXR1cm57b25TdWNjZXNzOmZ1bmN0aW9uKCl7YlthXT1zQjtmb3IodmFyIGY9MDtmPGQubGVuZ3RoO2YrKylkW2ZdKCl9LG9uRmFpbHVyZTpmdW5jdGlvbigpe2JbYV09dEI7Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aDtmKyspZVtmXSgpfX19ZnVuY3Rpb24gckIoYSxiLGMpe3JldHVybiBmdW5jdGlvbihkLGUpe2EucHVzaChkKTtiLnB1c2goZSk7YygpfX1mdW5jdGlvbiBzQihhKXthKCl9ZnVuY3Rpb24gdEIoYSxiKXtiKCl9O3ZhciB3Qj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxjQS50YWdzLmxlbmd0aDtkKyspaWYoYVtkXSl7dmFyIGU9Y0EudGFnc1tkXTt2YXIgZj1RQShiLmxkKTt0cnl7dmFyIGc9b0IoZCx7b25TdWNjZXNzOmYsb25GYWlsdXJlOmYsdGVybWluYXRlOmZ9LGIsZCk7aWYoZyl7dmFyIGg9UXpbZS5PXTtjLnB1c2goe05vOmQscHJpb3JpdHlPdmVycmlkZTooaD9oLnByaW9yaXR5T3ZlcnJpZGV8fDA6MCl8fEtBKGUuTywxKXx8MCxleGVjdXRlOmd9KX1lbHNlIHVCKGQsYiksZigpfWNhdGNoKG4pe2YoKX19Yy5zb3J0KHZCKTtmb3IodmFyIGw9MDtsPGMubGVuZ3RoO2wrKyljW2xdLmV4ZWN1dGUoKTtyZXR1cm4gYy5sZW5ndGg+MH07CmZ1bmN0aW9uIHhCKGEsYil7aWYoIUhBKXJldHVybiExO3ZhciBjPWFbImd0bS50cmlnZ2VycyJdJiZTdHJpbmcoYVsiZ3RtLnRyaWdnZXJzIl0pLGQ9SUEoYS5ldmVudCxjP1N0cmluZyhjKS5zcGxpdCgiLCIpOltdKTtpZighZC5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBlPTA7ZTxkLmxlbmd0aDsrK2Upe3ZhciBmPVFBKGIpO3RyeXtkW2VdKGEsZil9Y2F0Y2goZyl7ZigpfX1yZXR1cm4hMH1mdW5jdGlvbiB2QihhLGIpe3ZhciBjLGQ9Yi5wcmlvcml0eU92ZXJyaWRlLGU9YS5wcmlvcml0eU92ZXJyaWRlO2M9ZD5lPzE6ZDxlPy0xOjA7dmFyIGY7aWYoYyE9PTApZj1jO2Vsc2V7dmFyIGc9YS5ObyxoPWIuTm87Zj1nPmg/MTpnPGg/LTE6MH1yZXR1cm4gZn0KZnVuY3Rpb24gdUIoYSxiKXtpZihmbi5OKXt2YXIgYz1mdW5jdGlvbihkKXt2YXIgZT1iLmlzQmxvY2tlZChjQS50YWdzW2RdLkZnKCkpPyIzIjoiNCIsZj1aeihjQS50YWdzW2RdLGIpO2YmJmYubGVuZ3RoJiZjKGZbMF0uaW5kZXgpO2dCKGIuaWQsY0EudGFnc1tkXS5GZygpLGUpO3ZhciBnPSR6KGNBLnRhZ3NbZF0sYik7ZyYmZy5sZW5ndGgmJmMoZ1swXS5pbmRleCl9O2MoYSl9fXZhciBIQTtmdW5jdGlvbiB5Qigpe0hBfHwoSEE9bmV3IEdBKTtyZXR1cm4gSEF9CmZ1bmN0aW9uIHpCKGEpe3ZhciBiPWFbImd0bS51bmlxdWVFdmVudElkIl0sYz1hWyJndG0ucHJpb3JpdHlJZCJdLGQ9YVsiZ3RtLnByaW9yaXR5UXVldWUiXSxlPWEuZXZlbnQ7Zm4uSCYmdnooYixlKTtpZihlPT09Imd0bS5qcyIpe2lmKCRrKDEzKSlyZXR1cm4hMTtaaygxMywhMCl9dmFyIGY9ITEsZz1sQigpLGg9RWQoYSxudWxsKTtpZighZy5ldmVyeShmdW5jdGlvbih1KXtyZXR1cm4gdSh7b3JpZ2luYWxFdmVudERhdGE6aH0pfSkpe2lmKGUhPT0iZ3RtLmpzIiYmZSE9PSJndG0uaW5pdCImJmUhPT0iZ3RtLmluaXRfY29uc2VudCIpcmV0dXJuITE7Zj0hMH1kQihiLGUpO3ZhciBsPWEuZXZlbnRDYWxsYmFjayxuPWEuZXZlbnRUaW1lb3V0LHA9e2lkOmIscHJpb3JpdHlJZDpjLHByaW9yaXR5UXVldWU6ZCxuYW1lOmUsaXNCbG9ja2VkOkFCKGgsZiksdms6W10sbG9nTWFjcm9FcnJvcjpmdW5jdGlvbih1LHYseCl7UCg2KTtpbSg0KTtKQSgyLHYseCl9LGNhY2hlZE1vZGVsVmFsdWVzOkJCKCksCmxkOm5ldyBNQShmdW5jdGlvbigpe2ZuLkgmJnl6KGIsZSk7RnkoNSxlKTtsJiZsLmFwcGx5KGwsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKX0sbiksb3JpZ2luYWxFdmVudERhdGE6aH07Zm4uSCYmQ3oocC5pZCk7dmFyIHE9RUEocCk7Zm4uSCYmRHoocC5pZCk7RnkoMixlKTtjQS5nZXRSdWxlcygpO2YmJihxPUNCKHEpKTtmbi5IJiZ3eihiKTt2YXIgcj13QihxLHApO3ImJkZ5KDQsZSk7dmFyIHQ9eEIoYSxwLmxkKTtSQShwLmxkKTtlIT09Imd0bS5qcyImJmUhPT0iZ3RtLnN5bmMifHxYQSgpO3JldHVybiBEQihxLHIpfHx0fQpmdW5jdGlvbiBCQigpe3ZhciBhPXt9O2EuZXZlbnQ9dkEoImV2ZW50IiwxKTthLmVjb21tZXJjZT12QSgiZWNvbW1lcmNlIiwxKTthLmd0bT12QSgiZ3RtIik7YS5ldmVudE1vZGVsPXZBKCJldmVudE1vZGVsIik7cmV0dXJuIGF9CmZ1bmN0aW9uIEFCKGEsYil7dmFyIGM9QUEoKTtyZXR1cm4gZnVuY3Rpb24oZCl7dmFyIGU9YyhkKTtpZihlKXJldHVybiEwO3ZhciBmPWQmJmRbR2YuWWJdO2lmKCFmfHx0eXBlb2YgZiE9PSJzdHJpbmciKXJldHVybiEwO2Y9Zi5yZXBsYWNlKC9eXyovLCIiKTt2YXIgZz1qQigpLGg9YTtiJiYoaD1FZChhLG51bGwpLGhbImd0bS51bmlxdWVFdmVudElkIl09TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO2Zvcih2YXIgbD0hMSxuPWFsKDI3LGZ1bmN0aW9uKCl7cmV0dXJue319KVtmXXx8W10scD1tKGcpLHE9cC5uZXh0KCk7IXEuZG9uZTtxPXAubmV4dCgpKXt2YXIgcj1xLnZhbHVlO3RyeXtyKHtlbnRpdHlJZDpmLHNlY3VyaXR5R3JvdXBzOm4sb3JpZ2luYWxFdmVudERhdGE6aH0pfHwobD0hMCl9Y2F0Y2godCl7bD0hMH19cmV0dXJuIGx8fGV9fQpmdW5jdGlvbiBDQihhKXtmb3IodmFyIGI9W10sYz0wO2M8YS5sZW5ndGg7YysrKWlmKGFbY10pe3ZhciBkPWNBLnRhZ3NbY10uTztpZihCaltkXXx8Y0EudGFnc1tjXS5JYVtHZi5ScV0hPT12b2lkIDB8fEtBKGQsMikpYltjXT0hMH1yZXR1cm4gYn1mdW5jdGlvbiBEQihhLGIpe2lmKCFiKXJldHVybiBiO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWlmKGFbY10mJmNBLnRhZ3NbY10mJiFDaltjQS50YWdzW2NdLk9dKXJldHVybiEwO3JldHVybiExfTt2YXIgRUI9TmYoNjEsMUUzKSxGQj1OZig2OCwyRTMpLFpvPVsiYWRfc3RvcmFnZSIsImFuYWx5dGljc19zdG9yYWdlIl07ZnVuY3Rpb24gR0IoYSxiKXtpZihhKXt2YXIgYz1raigiZ3RoIixmdW5jdGlvbigpe3JldHVybnt9fSksZDthIT09Mnx8KChkPUhCKCkpPT1udWxsP3ZvaWQgMDpkLnN0YXR1cykhPT0zfHxiIT09dm9pZCAwJiZiPD1GQnx8KGE9MyxjLmRsPWI/TWF0aC5mbG9vcihiLzFFMyk6dm9pZCAwKTtjLnM9YTtJQihjKX19ZnVuY3Rpb24gSUIoYSl7aWYoYS5zKXt2YXIgYj1mdW5jdGlvbigpe3ZhciBjPXtzdGF0dXM6YS5zLGV4cGlyZXM6RGF0ZS5ub3coKSs4NjRFNX07YS5kbCE9PXZvaWQgMCYmKGMuZGVsYXk9YS5kbCk7a3IoImd0Z19sb2FkX3N0YXR1cyIsYyl9O2JwKGZ1bmN0aW9uKCl7aWYoWW8oKSliKCk7ZWxzZSBmb3IodmFyIGM9UGIoYiksZD1tKFpvKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSlJbChjLGUudmFsdWUpfSxabyl9fQpmdW5jdGlvbiBKQigpe3ZhciBhPUtCKCEwKTtyZXR1cm4gYT8oTEIoYS5zdGF0dXMsYS5kZWxheSksITEpOiEwfWZ1bmN0aW9uIEtCKGEpe2E9YT09PXZvaWQgMD8hMTphO2lmKGFrKCkpe3ZhciBiPW5yKCJndGdfbG9hZF9zdGF0dXMiKSxjPWIudmFsdWUsZD1hJiZBYihjPT1udWxsP3ZvaWQgMDpjLmV4cGlyZXMpJiYoYz09bnVsbD92b2lkIDA6Yy5leHBpcmVzKTxEYXRlLm5vdygpKzM2RTU7aWYoYi5lcnJvcj09PTAmJkFiKGM9PW51bGw/dm9pZCAwOmMuc3RhdHVzKSYmIWQpe3ZhciBlPXtzdGF0dXM6Yy5zdGF0dXN9OyhjPT1udWxsP3ZvaWQgMDpjLmRlbGF5KSE9PXZvaWQgMCYmKGUuZGVsYXk9Yy5kZWxheSk7cmV0dXJuIGV9cmV0dXJuIEhCKCl9fWZ1bmN0aW9uIExCKGEsYil7dmFyIGM9a2ooImd0aCIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2Mucz1hO2IhPT12b2lkIDAmJihjLmRsPWIpfQpmdW5jdGlvbiBIQigpe3ZhciBhPW1qKCJndGgiKTtpZihhIT1udWxsJiZhLnMpe3ZhciBiPXtzdGF0dXM6YS5zfTthLmRsIT09dm9pZCAwJiYoYi5kZWxheT1hLmRsKTtyZXR1cm4gYn19ZnVuY3Rpb24gTUIoKXt2YXIgYTsoKGE9SEIoKSk9PW51bGw/dm9pZCAwOmEuc3RhdHVzKT09PTEmJkdCKDMpfWZ1bmN0aW9uIE5CKCl7aWYoSkIoKSl7dmFyIGE9RGF0ZS5ub3coKTtuaigiZ3RoIix7bDpmdW5jdGlvbigpe0dCKDIsRGF0ZS5ub3coKS1hKX0sczoxfSk7dmFyIGI9RSg1KSxjPVNiKGIsIkdUTS0iKT8iL2d0bS5qcyI6Ii9ndGFnL2pzIixkPSJodHRwczovLyIrRSgzKStjKyI/aWQ9IitiKyImZ3RnX2hlYWx0aD0xIjtVYyhkLE1CLE1CKTtBLnNldFRpbWVvdXQoTUIsRUIpfX07ZnVuY3Rpb24gT0IoKXt5QigpLmFkZExpc3RlbmVyKCJndG0uaW5pdCIsZnVuY3Rpb24oYSxiKXtaaygyNiwhMCk7TSg1NTYpJiZhaygpJiYhSWYoNDUpJiYoZm8uSFtjby5pYS5aYl09Ym8uTWEuTGgpO2lmKGFrKCkpe3ZhciBjO2M9bG8oY28uaWEuWmIpO2dvKGMpP2lvKGMsTkIpOk5CKCl9dG8oITEsITApO2IoKX0pfTtmdW5jdGlvbiBQQigpe2lmKG1qKCJwc2NkbCIpIT09dm9pZCAwKW5tKGptLmJhLm9pKT09PXZvaWQgMCYmbW0oam0uYmEub2ksbWooInBzY2RsIikpO2Vsc2V7dmFyIGE9ZnVuY3Rpb24oYyl7bmooInBzY2RsIixjKTttbShqbS5iYS5vaSxjKX0sYj1mdW5jdGlvbigpe2EoImVycm9yIil9O3RyeXtIYy5jb29raWVEZXByZWNhdGlvbkxhYmVsPyhhKCJwZW5kaW5nIiksSGMuY29va2llRGVwcmVjYXRpb25MYWJlbC5nZXRWYWx1ZSgpLnRoZW4oYSkuY2F0Y2goYikpOmEoIm5vYXBpIil9Y2F0Y2goYyl7YihjKX19fTt2YXIgUkI9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMucmVhZHk9ITE7dGhpcy5LPTA7dGhpcy5IPVtdO3ZhciBiPUE7aWYoQi5yZWFkeVN0YXRlPT09ImludGVyYWN0aXZlIiYmIUIuY3JlYXRlRXZlbnRPYmplY3R8fEIucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpdGhpcy5vblJlYWR5KCk7ZWxzZXskYyhCLCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbihkKXtyZXR1cm4gdm9pZCBhLm9uUmVhZHkoZCl9KTskYyhCLCJyZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbihkKXtyZXR1cm4gdm9pZCBhLm9uUmVhZHkoZCl9KTtpZihCLmNyZWF0ZUV2ZW50T2JqZWN0JiZCLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCl7dmFyIGM9ITA7dHJ5e2M9IWIuZnJhbWVFbGVtZW50fWNhdGNoKGQpe31jJiZRQih0aGlzKX0kYyhiLCJsb2FkIixmdW5jdGlvbihkKXtyZXR1cm4gdm9pZCBhLm9uUmVhZHkoZCl9KX19O1JCLnByb3RvdHlwZS5pc1JlYWR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZHl9OwpSQi5wcm90b3R5cGUub25SZWFkeT1mdW5jdGlvbihhKXtpZighdGhpcy5yZWFkeSl7dmFyIGI9Qi5jcmVhdGVFdmVudE9iamVjdCxjPUIucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIsZD1CLnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUiO2lmKCFhfHxhLnR5cGUhPT0icmVhZHlzdGF0ZWNoYW5nZSJ8fGN8fCFiJiZkKXt0aGlzLnJlYWR5PSEwO2Zvcih2YXIgZT0wO2U8dGhpcy5ILmxlbmd0aDtlKyspYmQodGhpcy5IW2VdKX10aGlzLkgucHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgZj1PYS5hcHBseSgwLGFyZ3VtZW50cyksZz0wO2c8Zi5sZW5ndGg7ZysrKWJkKGZbZ10pO3JldHVybiAwfX19Owp2YXIgUUI9ZnVuY3Rpb24oYSl7aWYoIWEucmVhZHkmJmEuSzwxNDApe2EuSysrO3RyeXt2YXIgYixjOyhjPShiPUIuZG9jdW1lbnRFbGVtZW50KS5kb1Njcm9sbCk9PW51bGx8fGMuY2FsbChiLCJsZWZ0Iik7YS5vblJlYWR5KCl9Y2F0Y2goZCl7QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgUUIoYSl9LDUwKX19fSxTQjtmdW5jdGlvbiBUQigpe1NCfHwoU0I9bmV3IFJCKX1mdW5jdGlvbiBVQigpe1RCKCk7dmFyIGE7cmV0dXJuKGE9U0IpPT1udWxsP3ZvaWQgMDphLmlzUmVhZHkoKX1mdW5jdGlvbiBWQihhKXtUQigpO3ZhciBiOyhiPVNCKSE9bnVsbCYmKGIucmVhZHk/YmQoYSk6Yi5ILnB1c2goYSkpfTt2YXIgWEI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVdCLGU7aWYoKGU9ZC5IKT09bnVsbHx8IWUuT3Ipe3ZhciBmPU9iamVjdC5rZXlzKGIpLmxlbmd0aD4wPzI6MSxnLGgsbD0oYz09bnVsbD92b2lkIDA6KGg9Yy5vcmlnaW5hdGluZ0VudGl0eSk9PW51bGw/dm9pZCAwOmgub3JpZ2luQ29udGFpbmVySWQpfHwiIjtnPWw/U2IobCwiR1RNLSIpPzM6MjoxO2lmKCFhKWQuSD17dHlwZTpmLHNvdXJjZTpnLHBhcmFtczpifTtlbHNlIGlmKGQuSCl7UCgxODQpO3ZhciBuPSExO2QuSC5zb3VyY2U9PT1nfHxkLkguc291cmNlIT09MyYmZyE9PTN8fChVbSgiaWRjcyIsIjEiKSxuPSEwKTtkLkgudHlwZSE9PTImJmYhPT0yfHxQKDE4Nik7dmFyIHA7aWYocD1kLkgudHlwZT09PTImJmY9PT0yKWE6e3ZhciBxPWQuSC5wYXJhbXMscj1PYmplY3Qua2V5cyhxKSx0PU9iamVjdC5rZXlzKGIpO2lmKHIubGVuZ3RoIT09dC5sZW5ndGgpcD0hMDtlbHNle2Zvcih2YXIgdT1tKHIpLHY9dS5uZXh0KCk7IXYuZG9uZTt2PQp1Lm5leHQoKSl7dmFyIHg9di52YWx1ZTtpZighYi5oYXNPd25Qcm9wZXJ0eSh4KXx8cVt4XSE9PWJbeF0pe3A9ITA7YnJlYWsgYX19cD0hMX19cCYmKFVtKCJpZGNjIiwiMSIpLG49ITApO24mJih0bygpLGQuSC5Pcj0hMCl9fX0sV0I9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXZvaWQgMH07dmFyIFpCPWZ1bmN0aW9uKGEpe3ZhciBiPVlCOyghZm4uS3x8U2IoRSg1KSwiR1RNLSIpPzA6YT09PXZvaWQgMCkmJmIuSD09PTAmJihVbSgibWNjIiwiMSIpLGIuSD0xKX0sWUI9bmV3IGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLkg9MDtVbSgibmNjIixmdW5jdGlvbigpe2lmKElmKDQ1KSYmYS5IIT09MilyZXR1cm4iMSJ9KX07dmFyICRCPS9eKD86QVd8REN8R3xHRnxHVHxIQXxNQ3xVQSkkLyxhQz0vXHMvOwpmdW5jdGlvbiBiQyhhLGIpe2lmKHpiKGEpKXthPUxiKGEpO3ZhciBjPWEuaW5kZXhPZigiLSIpO2lmKCEoYzwwKSl7dmFyIGQ9YS5zdWJzdHJpbmcoMCxjKTtpZigkQi50ZXN0KGQpKXt2YXIgZT1hLnN1YnN0cmluZyhjKzEpLGY7aWYoYil7dmFyIGc9ZnVuY3Rpb24obil7dmFyIHA9bi5pbmRleE9mKCIvIik7cmV0dXJuIHA8MD9bbl06W24uc3Vic3RyaW5nKDAscCksbi5zdWJzdHJpbmcocCsxKV19O2Y9ZyhlKTtpZihkPT09IkRDIiYmZi5sZW5ndGg9PT0yKXt2YXIgaD1nKGZbMV0pO2gubGVuZ3RoPT09MiYmKGZbMV09aFswXSxmLnB1c2goaFsxXSkpfX1lbHNle2Y9ZS5zcGxpdCgiLyIpO2Zvcih2YXIgbD0wO2w8Zi5sZW5ndGg7bCsrKWlmKCFmW2xdfHxhQy50ZXN0KGZbbF0pJiYoZCE9PSJBVyJ8fGwhPT0xKSlyZXR1cm59cmV0dXJue2lkOmEscHJlZml4OmQsZGVzdGluYXRpb25JZDpkKyItIitmWzBdLGlkczpmLEpjOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWQhPT10aGlzLmRlc3RpbmF0aW9uSWR9fX19fX0KZnVuY3Rpb24gY0MoYSxiKXtmb3IodmFyIGM9e30sZD0wO2Q8YS5sZW5ndGg7KytkKXt2YXIgZT1iQyhhW2RdLGIpO2UmJihjW2UuaWRdPWUpfXZhciBmPVtdLGc7Zm9yKGcgaW4gYylpZihjLmhhc093blByb3BlcnR5KGcpKXt2YXIgaD1jW2ddO2gucHJlZml4PT09IkFXIiYmaC5pZHNbZENbMV1dJiZmLnB1c2goaC5kZXN0aW5hdGlvbklkKX1mb3IodmFyIGw9MDtsPGYubGVuZ3RoOysrbClkZWxldGUgY1tmW2xdXTtmb3IodmFyIG49W10scD1tKE9iamVjdC5rZXlzKGMpKSxxPXAubmV4dCgpOyFxLmRvbmU7cT1wLm5leHQoKSluLnB1c2goY1txLnZhbHVlXSk7cmV0dXJuIG59dmFyIGVDPXt9LGRDPShlQ1swXT0wLGVDWzFdPTEsZUNbMl09MixlQ1szXT0wLGVDWzRdPTEsZUNbNV09MCxlQ1s2XT0wLGVDWzddPTAsZUMpO3ZhciBmQz17aW5pdGlhbGl6ZWQ6MTEsY29tcGxldGU6MTIsaW50ZXJhY3RpdmU6MTN9LGdDPXt9LGhDPU9iamVjdC5mcmVlemUoKGdDW0YuRC5UZF09ITAsZ0MpKSxpQz1mdW5jdGlvbigpe3RoaXMuUj1OZigzNCw1MDApO3RoaXMuSD17fTt0aGlzLk49e307dGhpcy5LPXZvaWQgMH0sakM9ZnVuY3Rpb24oYSxiLGMpe2lmKGMubGVuZ3RoJiZmbi5LKXt2YXIgZDsoZD1hLkgpW2JdIT1udWxsfHwoZFtiXT1bXSk7dmFyIGU7KGU9YS5OKVtiXSE9bnVsbHx8KGVbYl09W10pO3ZhciBmPWMuZmlsdGVyKGZ1bmN0aW9uKGcpe3JldHVybiFhLk5bYl0uaW5jbHVkZXMoZyl9KTthLkhbYl0ucHVzaC5hcHBseShhLkhbYl0sdyhmKSk7YS5OW2JdLnB1c2guYXBwbHkoYS5OW2JdLHcoZikpOyFhLksmJmYubGVuZ3RoPjAmJihWbSgidGRjIiwhMCksYS5LPUEuc2V0VGltZW91dChmdW5jdGlvbigpe3RvKCk7YS5IPXt9O2EuSz12b2lkIDB9LGEuUikpfX07CmlDLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcztVbSgidGRjIixmdW5jdGlvbigpe2EuSyYmKEEuY2xlYXJUaW1lb3V0KGEuSyksYS5LPXZvaWQgMCk7dmFyIGI9W10sYztmb3IoYyBpbiBhLkgpYS5ILmhhc093blByb3BlcnR5KGMpJiZiLnB1c2goYysiKiIrYS5IW2NdLmpvaW4oIi4iKSk7cmV0dXJuIGIubGVuZ3RoP2Iuam9pbigiISIpOnZvaWQgMH0sITEpfTsKdmFyIGtDPWZ1bmN0aW9uKGEsYil7dmFyIGM9e30sZDtmb3IoZCBpbiBiKWIuaGFzT3duUHJvcGVydHkoZCkmJihjW2RdPSEwKTtmb3IodmFyIGUgaW4gYSlhLmhhc093blByb3BlcnR5KGUpJiYoY1tlXT0hMCk7cmV0dXJuIGN9LGxDPWZ1bmN0aW9uKGEsYixjLGQsZSl7ZD1kPT09dm9pZCAwP3t9OmQ7ZT1lPT09dm9pZCAwPyIiOmU7aWYoYj09PWMpcmV0dXJuW107dmFyIGY9ZnVuY3Rpb24odCx1KXt2YXIgdjtBZCh1KT09PSJvYmplY3QiP3Y9dVt0XTpBZCh1KT09PSJhcnJheSImJih2PXVbdF0pO3JldHVybiB2PT09dm9pZCAwP2hDW3RdOnZ9LGc9a0MoYixjKSxoO2ZvcihoIGluIGcpaWYoZy5oYXNPd25Qcm9wZXJ0eShoKSYmaCE9PUYuRC5YYil7dmFyIGw9KGU/ZSsiLiI6IiIpK2gsbj1mKGgsYikscD1mKGgsYykscT1BZChuKT09PSJvYmplY3QifHxBZChuKT09PSJhcnJheSIscj1BZChwKT09PSJvYmplY3QifHxBZChwKT09PSJhcnJheSI7aWYocSYmcilsQyhhLG4scCxkLGwpOwplbHNlIGlmKHF8fHJ8fG4hPT1wKWRbbF09ITB9cmV0dXJuIE9iamVjdC5rZXlzKGQpfSxtQz1uZXcgaUM7dmFyIG5DPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSz1OYigpO3RoaXMuSD1iO3RoaXMuYXJncz1jO3RoaXMubWVzc2FnZUNvbnRleHQ9ZDt0aGlzLnR5cGU9YX0sb0M9ZnVuY3Rpb24oKXt0aGlzLldhPXt9O3RoaXMuaWI9e307dGhpcy5LPXt9O3RoaXMuTj1udWxsO3RoaXMuaGI9e307dGhpcy5IPSExO3RoaXMuc3RhdHVzPTF9O2Z1bmN0aW9uIHBDKGEsYil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0xP3FDKCJzZXQiLGEpOnFDKCJzZXQiLGEsYil9ZnVuY3Rpb24gckMoYSxiKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/cUMoImNvbmZpZyIsYSk6cUMoImNvbmZpZyIsYSxiKX1mdW5jdGlvbiBzQyhhLGIsYyl7Yz1jfHx7fTtjW0YuRC5YYl09YTtyZXR1cm4gcUMoImV2ZW50IixiLGMpfWZ1bmN0aW9uIHFDKCl7cmV0dXJuIGFyZ3VtZW50c307dmFyIHRDPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCxsLG4scCxxLHIpe3RoaXMuZXZlbnRJZD1hO3RoaXMucHJpb3JpdHlJZD1iO3RoaXMucHJpb3JpdHlRdWV1ZT1jO3RoaXMuRWE9ZDt0aGlzLldhPWU7dGhpcy5oYj1mO3RoaXMuSGM9Zzt0aGlzLkJnPWg7dGhpcy5pYj1sO3RoaXMuZXZlbnRNZXRhZGF0YT1uO3RoaXMub25TdWNjZXNzPXA7dGhpcy5vbkZhaWx1cmU9cTt0aGlzLmlzR3RtRXZlbnQ9cn0sdUM9ZnVuY3Rpb24oYSl7dmFyIGI9e29uU3VjY2Vzczp4YixvbkZhaWx1cmU6eGJ9O2I9Yj09PXZvaWQgMD97fTpiO3ZhciBjLGQsZSxmLGcsaCxsLG4scCxxLHIsdCx1LHYseCx5LHosQyxELEksRyxOLFMsVyxlYSxqYTtyZXR1cm4gbmV3IHRDKCh2PShjPWIpPT1udWxsP3ZvaWQgMDpjLmV2ZW50SWQpIT1udWxsP3Y6YS5ldmVudElkLCh4PShkPWIpPT1udWxsP3ZvaWQgMDpkLnByaW9yaXR5SWQpIT1udWxsP3g6YS5wcmlvcml0eUlkLCh5PShlPWIpPT1udWxsP3ZvaWQgMDplLnByaW9yaXR5UXVldWUpIT0KbnVsbD95OmEucHJpb3JpdHlRdWV1ZSwoej0oZj1iKT09bnVsbD92b2lkIDA6Zi5FYSkhPW51bGw/ejphLkVhLChDPShnPWIpPT1udWxsP3ZvaWQgMDpnLldhKSE9bnVsbD9DOmEuV2EsKEQ9KGg9Yik9PW51bGw/dm9pZCAwOmguaGIpIT1udWxsP0Q6YS5oYiwoST0obD1iKT09bnVsbD92b2lkIDA6bC5IYykhPW51bGw/STphLkhjLChHPShuPWIpPT1udWxsP3ZvaWQgMDpuLkJnKSE9bnVsbD9HOmEuQmcsKE49KHA9Yik9PW51bGw/dm9pZCAwOnAuaWIpIT1udWxsP046YS5pYiwoUz0ocT1iKT09bnVsbD92b2lkIDA6cS5ldmVudE1ldGFkYXRhKSE9bnVsbD9TOmEuZXZlbnRNZXRhZGF0YSwoVz0ocj1iKT09bnVsbD92b2lkIDA6ci5vblN1Y2Nlc3MpIT1udWxsP1c6YS5vblN1Y2Nlc3MsKGVhPSh0PWIpPT1udWxsP3ZvaWQgMDp0Lm9uRmFpbHVyZSkhPW51bGw/ZWE6YS5vbkZhaWx1cmUsKGphPSh1PWIpPT1udWxsP3ZvaWQgMDp1LmlzR3RtRXZlbnQpIT1udWxsP2phOmEuaXNHdG1FdmVudCl9LAp2Qz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO3N3aXRjaChiKXtjYXNlIDM6Yy5wdXNoKGEuRWEpO2MucHVzaChhLldhKTtjLnB1c2goYS5oYik7Yy5wdXNoKGEuSGMpO2MucHVzaChhLmliKTticmVhaztjYXNlIDI6Yy5wdXNoKGEuRWEpO2JyZWFrO2Nhc2UgMTpjLnB1c2goYS5XYSk7Yy5wdXNoKGEuaGIpO2MucHVzaChhLkhjKTtjLnB1c2goYS5pYik7YnJlYWs7Y2FzZSA0OmMucHVzaChhLkVhKSxjLnB1c2goYS5XYSksYy5wdXNoKGEuaGIpLGMucHVzaChhLkhjKX1yZXR1cm4gY30sTz1mdW5jdGlvbihhLGIsYyxkKXtmb3IodmFyIGU9bSh2QyhhLGQ9PT12b2lkIDA/MzpkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7aWYoZ1tiXSE9PXZvaWQgMClyZXR1cm4gZ1tiXX1yZXR1cm4gY30sd0M9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXt9LGM9dkMoYSw0KSxkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpZm9yKHZhciBmPU9iamVjdC5rZXlzKGUudmFsdWUpLApnPW0oZiksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpYltoLnZhbHVlXT0xO3JldHVybiBPYmplY3Qua2V5cyhiKX07dEMucHJvdG90eXBlLmdldE1lcmdlZFZhbHVlcz1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPzM6Yjt2YXIgZD17fSxlPSExLGY9ZnVuY3Rpb24obil7Q2QobikmJkdiKG4sZnVuY3Rpb24ocCxxKXtlPSEwO2RbcF09cX0pfTtjJiZmKGMpO3ZhciBnPXZDKHRoaXMsYik7Zy5yZXZlcnNlKCk7Zm9yKHZhciBoPW0oZyksbD1oLm5leHQoKTshbC5kb25lO2w9aC5uZXh0KCkpZihsLnZhbHVlW2FdKTtyZXR1cm4gZT9kOnZvaWQgMH07CnZhciB4Qz1mdW5jdGlvbihhKXtmb3IodmFyIGI9W0YuRC5LZixGLkQuR2YsRi5ELkhmLEYuRC5JZixGLkQuSmYsRi5ELkxmLEYuRC5NZl0sYz12QyhhLDMpLGQ9bShjKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7Zm9yKHZhciBmPWUudmFsdWUsZz17fSxoPSExLGw9bShiKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtmW3BdIT09dm9pZCAwJiYoZ1twXT1mW3BdLGg9ITApfXZhciBxPWg/Zzp2b2lkIDA7aWYocSlyZXR1cm4gcX1yZXR1cm57fX0seUM9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZXZlbnRJZD1hO3RoaXMucHJpb3JpdHlJZD1iO3RoaXMucHJpb3JpdHlRdWV1ZT1jO3RoaXMuRWE9e307dGhpcy5XYT17fTt0aGlzLmhiPXt9O3RoaXMuSGM9e307dGhpcy5CZz17fTt0aGlzLmliPXt9O3RoaXMuZXZlbnRNZXRhZGF0YT17fTt0aGlzLmlzR3RtRXZlbnQ9ITE7dGhpcy5vblN1Y2Nlc3M9ZnVuY3Rpb24oKXt9O3RoaXMub25GYWlsdXJlPQpmdW5jdGlvbigpe319LHpDPWZ1bmN0aW9uKGEsYil7YS5FYT1iO3JldHVybiBhfSxBQz1mdW5jdGlvbihhLGIpe2EuV2E9YjtyZXR1cm4gYX0sQkM9ZnVuY3Rpb24oYSxiKXthLmhiPWI7cmV0dXJuIGF9LENDPWZ1bmN0aW9uKGEsYil7YS5IYz1iO3JldHVybiBhfSxEQz1mdW5jdGlvbihhLGIpe2EuQmc9YjtyZXR1cm4gYX0sRUM9ZnVuY3Rpb24oYSxiKXthLmliPWI7cmV0dXJuIGF9LEZDPWZ1bmN0aW9uKGEsYil7YS5ldmVudE1ldGFkYXRhPWJ8fHt9O3JldHVybiBhfSxHQz1mdW5jdGlvbihhLGIpe2Eub25TdWNjZXNzPWI7cmV0dXJuIGF9LEhDPWZ1bmN0aW9uKGEsYil7YS5vbkZhaWx1cmU9YjtyZXR1cm4gYX0sSUM9ZnVuY3Rpb24oYSxiKXthLmlzR3RtRXZlbnQ9YjtyZXR1cm4gYX0sSkM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyB0QyhhLmV2ZW50SWQsYS5wcmlvcml0eUlkLGEucHJpb3JpdHlRdWV1ZSxhLkVhLGEuV2EsYS5oYixhLkhjLGEuQmcsYS5pYixhLmV2ZW50TWV0YWRhdGEsCmEub25TdWNjZXNzLGEub25GYWlsdXJlLGEuaXNHdG1FdmVudCl9O2Z1bmN0aW9uIEtDKGEsYil7R2IoYSxmdW5jdGlvbihjKXt2YXIgZDtpZihkPWMuY2hhckF0KDApPT09Il8iKXt2YXIgZTthOnN3aXRjaChjKXtjYXNlIEYuRC5WYjpjYXNlIEYuRC5SZjpjYXNlIEYuRC5zaDplPSEwO2JyZWFrIGE7ZGVmYXVsdDplPSExfWQ9IWV9ZCYmKGImJmIoYyksZGVsZXRlIGFbY10pfSl9O3ZhciBMQz1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPXt9O2Z6KGZ1bmN0aW9uKGIpe3ZhciBjPWIuZXZlbnRJZCxkPWIudGYsZT1bXSxmPWEuSFtjXXx8W107Zi5sZW5ndGgmJmUucHVzaChbImVwciIsZi5qb2luKCIuIildKTtkJiZkZWxldGUgYS5IW2NdO3JldHVybiBlfSl9LE5DPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1NQztmbi5OJiZhIT09dm9pZCAwJiYoZC5IW2FdPWQuSFthXXx8W10sZC5IW2FdLnB1c2goYytiKSxneigpLGV6KGEpKX0sTUM7ZnVuY3Rpb24gT0MoKXtNQ3x8KE1DPW5ldyBMQyl9O3ZhciBQQz1mdW5jdGlvbigpe3RoaXMuZGVzdGluYXRpb25zPXt9O3RoaXMuSD17fTt0aGlzLmNvbW1hbmRzPVtdfSxRQz1mdW5jdGlvbihhLGIpe3JldHVybiBhLmRlc3RpbmF0aW9uc1tiLmRlc3RpbmF0aW9uSWRdPWEuZGVzdGluYXRpb25zW2IuZGVzdGluYXRpb25JZF18fG5ldyBvQ30sUkM9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoZC5IKXt2YXIgZT1RQyhhLGQuSCksZj1lLk47aWYoZil7dmFyIGc9RWQoYyxudWxsKSxoPUVkKGUuV2FbZC5ILmRlc3RpbmF0aW9uSWRdLG51bGwpLGw9RWQoZS5oYixudWxsKSxuPUVkKGUuaWIsbnVsbCkscD1FZChhLkgsbnVsbCkscT17fTtpZihmbi5OKXRyeXtxPUVkKHJBLkgsbnVsbCl9Y2F0Y2goeCl7UCg3Mil9dmFyIHI9ZC5ILnByZWZpeCx0PWZ1bmN0aW9uKHgpe3ZhciB5PWQubWVzc2FnZUNvbnRleHQuZXZlbnRJZDtPQygpO05DKHkscix4KX0sdT1KQyhJQyhIQyhHQyhGQyhEQyhDQyhFQyhCQyhBQyh6QyhuZXcgeUMoZC5tZXNzYWdlQ29udGV4dC5ldmVudElkLApkLm1lc3NhZ2VDb250ZXh0LnByaW9yaXR5SWQsZC5tZXNzYWdlQ29udGV4dC5wcmlvcml0eVF1ZXVlKSxnKSxoKSxsKSxuKSxwKSxxKSxkLm1lc3NhZ2VDb250ZXh0LmV2ZW50TWV0YWRhdGEpLGZ1bmN0aW9uKCl7aWYodCl7dmFyIHg9dDt0PXZvaWQgMDt4KCIyIik7aWYoZC5tZXNzYWdlQ29udGV4dC5vblN1Y2Nlc3MpZC5tZXNzYWdlQ29udGV4dC5vblN1Y2Nlc3MoKX19KSxmdW5jdGlvbigpe2lmKHQpe3ZhciB4PXQ7dD12b2lkIDA7eCgiMyIpO2lmKGQubWVzc2FnZUNvbnRleHQub25GYWlsdXJlKWQubWVzc2FnZUNvbnRleHQub25GYWlsdXJlKCl9fSksISFkLm1lc3NhZ2VDb250ZXh0LmlzR3RtRXZlbnQpKSx2PWZ1bmN0aW9uKCl7dHJ5e3ZhciB4PWQubWVzc2FnZUNvbnRleHQuZXZlbnRJZDtPQygpO05DKHgsciwiMSIpO3ZhciB5PWQuSC5pZCx6PW1DO2lmKGZuLksmJmI9PT1GLkQud2Epe3ZhciBDLEQ9KEM9YkMoeSkpPT1udWxsP3ZvaWQgMDpDLmlkcztpZighKEQmJkQubGVuZ3RoPgoxKSl7dmFyIEk9dS5FYVtGLkQuWGJdO2lmKCFJfHxJPT09eSl7dmFyIEcsTj1NYygiZ29vZ2xlX3RhZ19kYXRhIix7fSk7Ti50ZHx8KE4udGQ9e30pO0c9Ti50ZDt2YXIgUz1FZCh1LkhjLG51bGwpO0VkKHUuRWEsUyk7dmFyIFc9W10sZWE7Zm9yKGVhIGluIEcpRy5oYXNPd25Qcm9wZXJ0eShlYSkmJmxDKHosR1tlYV0sUykubGVuZ3RoJiZXLnB1c2goZWEpO1cubGVuZ3RoJiYoakMoeix5LFcpLHNiKCJUQUdHSU5HIixmQ1tCLnJlYWR5U3RhdGVdfHwxNCkpO0dbeV09U319fWYoZC5ILmlkLGIsZC5LLHUpfWNhdGNoKGZhKXt2YXIgamE9ZC5tZXNzYWdlQ29udGV4dC5ldmVudElkO09DKCk7TkMoamEsciwiNCIpfX07Yj09PSJndGFnLmdldCI/digpOmlvKGUuUix2KX19fSxTQz1mdW5jdGlvbihhLGIpe2lmKGIudHlwZSE9PSJyZXF1aXJlIil7dmFyIGM9dm9pZCAwO2IudHlwZT09PSJldmVudCImJihjPWIuYXJnc1sxXSk7aWYoYi5IKWZvcih2YXIgZD1RQyhhLGIuSCkuS1tiLnR5cGVdfHwKW10sZT0wO2U8ZC5sZW5ndGg7ZSsrKWRbZV0oYyk7ZWxzZSBmb3IodmFyIGYgaW4gYS5kZXN0aW5hdGlvbnMpaWYoYS5kZXN0aW5hdGlvbnMuaGFzT3duUHJvcGVydHkoZikpe3ZhciBnPWEuZGVzdGluYXRpb25zW2ZdO2lmKGcmJmcuSylmb3IodmFyIGg9Zy5LW2IudHlwZV18fFtdLGw9MDtsPGgubGVuZ3RoO2wrKyloW2xdKGMpfX19O1BDLnByb3RvdHlwZS5yZWdpc3Rlcj1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1RQyh0aGlzLGEpO2Uuc3RhdHVzIT09MyYmKGUuTj1iLGUuc3RhdHVzPTMsZS5SPWxvKGMpLFRDKHRoaXMsYSxkfHx7fSksdGhpcy5mbHVzaCgpKX07ClBDLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGEsYixjLGQpe2MhPT12b2lkIDAmJihRQyh0aGlzLGMpLnN0YXR1cz09PTEmJihRQyh0aGlzLGMpLnN0YXR1cz0yLHRoaXMucHVzaCgicmVxdWlyZSIsW3t9XSxjLHt9KSksUUModGhpcyxjKS5IJiYoZC5kZWZlcnJhYmxlPSExKSxkLmV2ZW50TWV0YWRhdGF8fChkLmV2ZW50TWV0YWRhdGE9e30pLGQuZXZlbnRNZXRhZGF0YVtILkouc2ddfHwoZC5ldmVudE1ldGFkYXRhW0guSi5zZ109W2MuZGVzdGluYXRpb25JZF0pLGQuZXZlbnRNZXRhZGF0YVtILkoubWpdfHwoZC5ldmVudE1ldGFkYXRhW0guSi5tal09W2MuaWRdKSk7dGhpcy5jb21tYW5kcy5wdXNoKG5ldyBuQyhhLGMsYixkKSk7ZC5kZWZlcnJhYmxlfHx0aGlzLmZsdXNoKCl9OwpQQy5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXRoaXMsYz1bXSxkPSExLGU9e307dGhpcy5jb21tYW5kcy5sZW5ndGg7ZT17Wm46dm9pZCAwfSl7dmFyIGY9dGhpcy5jb21tYW5kc1swXSxnPWYuSDtpZihmLm1lc3NhZ2VDb250ZXh0LmRlZmVycmFibGUpIWd8fFFDKHRoaXMsZykuSD8oZi5tZXNzYWdlQ29udGV4dC5kZWZlcnJhYmxlPSExLHRoaXMuY29tbWFuZHMucHVzaChmKSk6Yy5wdXNoKGYpLHRoaXMuY29tbWFuZHMuc2hpZnQoKTtlbHNle3N3aXRjaChmLnR5cGUpe2Nhc2UgInJlcXVpcmUiOmlmKFFDKHRoaXMsZykuc3RhdHVzIT09MyYmIWEpe3RoaXMuY29tbWFuZHMucHVzaC5hcHBseSh0aGlzLmNvbW1hbmRzLGMpO3JldHVybn1icmVhaztjYXNlICJzZXQiOnZhciBoPWYuYXJnc1swXTtLQyhoKTtVQyhoKTtHYihoLGZ1bmN0aW9uKHgseSl7RWQoVmIoeCx5KSxiLkgpfSk7SHUoaCwhMCk7YnJlYWs7Y2FzZSAiZXZlbnQiOmUuWm49Zi5hcmdzWzFdO3ZhciBsPQpWQyhmLmFyZ3NbMF0sZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt9fShlKSksbj1sW0YuRC5YYl07biYmbiE9PWcuaWR8fEh1KGwpO1JDKHRoaXMsZS5abixsLGYpO2JyZWFrO2Nhc2UgImdldCI6dmFyIHA9e30scT0ocFtGLkQuVGZdPWYuYXJnc1swXSxwW0YuRC5TZl09Zi5hcmdzWzFdLHApO1JDKHRoaXMsRi5ELkpiLHEsZik7YnJlYWs7Y2FzZSAiY29udGFpbmVyX2NvbmZpZyI6dmFyIHI9UUModGhpcyxnKSx0PVZDKGYuYXJnc1swXSxmdW5jdGlvbigpe30pO0h1KHQsITApO3IuSD0hMDtFZCh0LHIuaGIpO2Q9ITA7YnJlYWs7Y2FzZSAiZGVzdGluYXRpb25fY29uZmlnIjp2YXIgdT1RQyh0aGlzLGcpLHY9VkMoZi5hcmdzWzBdLGZ1bmN0aW9uKCl7fSk7SHUodiwhMCk7dS5XYVtnLmlkXXx8KHUuV2FbZy5pZF09e30pO3UuSD0hMDtFZCh2LHUuV2FbZy5pZF0pO2Q9ITA7YnJlYWs7Y2FzZSAicmVzZXRfY29udGFpbmVyX2NvbmZpZyI6UUModGhpcyxnKS5oYj17fTticmVhazsKY2FzZSAicmVzZXRfdGFyZ2V0X2NvbmZpZyI6UUModGhpcyxnKS5XYVtnLmlkXT17fX10aGlzLmNvbW1hbmRzLnNoaWZ0KCk7U0ModGhpcyxmKX19dGhpcy5jb21tYW5kcy5wdXNoLmFwcGx5KHRoaXMuY29tbWFuZHMsYyk7ZCYmdGhpcy5mbHVzaCgpfTt2YXIgVEM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPUVkKGMsbnVsbCk7RWQoUUMoYSxiKS5pYixkKTtRQyhhLGIpLmliPWR9O2Z1bmN0aW9uIFZDKGEsYil7dmFyIGM9e307R2IoYSxmdW5jdGlvbihkLGUpe0VkKFZiKGQsZSksYyl9KTtLQyhjLGIpO1VDKGMpO3JldHVybiBjfQpmdW5jdGlvbiBVQyhhKXtpZihNKDYwMSkmJkJBKCkpe2Zvcih2YXIgYj0hMSxjPW0obmV3IFNldChbRi5ELnljLEYuRC5kZF0pKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTthW2VdIT09dm9pZCAwJiYoYj0hMCxkZWxldGUgYVtlXSl9YiYmIWFsKDM1LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSYmKFprKDM1LCEwKSx3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUubG9nJiZ3aW5kb3cuY29uc29sZS5sb2coIkdvb2dsZSBUYWcgTWFuYWdlcjogU2VydmVyLXNpZGUgR1RNIHBhcmFtZXRlcnMgKHRyYW5zcG9ydF91cmwvc2VydmVyX2NvbnRhaW5lcl91cmwpIGFyZSBub3QgcGVybWl0dGVkIG9uIHRoaXMgZG9tYWluIGFuZCBoYXZlIGJlZW4gaWdub3JlZC4iKSxQKDE5NykpfX07dmFyIFdDPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBQQzt0aGlzLks9ITF9O1dDLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe3RoaXMuSC5mbHVzaCgpfTt2YXIgWEM7ZnVuY3Rpb24gWUMoKXtYQ3x8KFhDPW5ldyBXQyk7cmV0dXJuIFhDfWZ1bmN0aW9uIFpDKGEsYixjLGQpe3ZhciBlPVlDKCksZj1iQyhjLGQuaXNHdG1FdmVudCk7ZiYmKGUuSyYmKGQuZGVmZXJyYWJsZT0hMCksZS5ILnB1c2goImV2ZW50IixbYixhXSxmLGQpKX1mdW5jdGlvbiAkQyhhLGIsYyxkKXt2YXIgZT1ZQygpLGY9YkMoYyxkLmlzR3RtRXZlbnQpO2YmJmUuSC5wdXNoKCJnZXQiLFthLGJdLGYsZCl9ZnVuY3Rpb24gYUQoYSxiLGMpe3ZhciBkPVlDKCksZT1iQyhhLGMuaXNHdG1FdmVudCk7ZSYmZC5ILnB1c2goImNvbnRhaW5lcl9jb25maWciLFtiXSxlLGMpfQpmdW5jdGlvbiBiRChhLGIsYyl7dmFyIGQ9WUMoKSxlPWJDKGEsYy5pc0d0bUV2ZW50KTtlJiZkLkgucHVzaCgiZGVzdGluYXRpb25fY29uZmlnIixbYl0sZSxjKX1mdW5jdGlvbiBjRChhKXt2YXIgYj1ZQygpLGM9YkMoYSwhMCk7YyYmYi5ILnB1c2goInJlc2V0X2NvbnRhaW5lcl9jb25maWciLFtdLGMse30pfWZ1bmN0aW9uIGREKGEpe3ZhciBiPVlDKCksYz1iQyhhLCEwKTtjJiZiLkgucHVzaCgicmVzZXRfdGFyZ2V0X2NvbmZpZyIsW10sYyx7fSl9ZnVuY3Rpb24gZUQoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO3JldHVybiBjP1FDKGIuSCxjKS5pYjp7fX1mdW5jdGlvbiBmRChhKXtyZXR1cm4gWUMoKS5ILkhbYV19ZnVuY3Rpb24gZ0QoYSl7dmFyIGI9WUMoKSxjPWJDKGEsITApO3JldHVybiBjP1FDKGIuSCxjKS5IOiExfTtmdW5jdGlvbiBoRChhLGIpe2EuaGFzT3duUHJvcGVydHkoImd0bS51bmlxdWVFdmVudElkIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJndG0udW5pcXVlRXZlbnRJZCIse3ZhbHVlOnJqKCl9KTtiLmV2ZW50SWQ9YVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXTtiLnByaW9yaXR5SWQ9YVsiZ3RtLnByaW9yaXR5SWQiXTtyZXR1cm57ZXZlbnRJZDpiLmV2ZW50SWQscHJpb3JpdHlJZDpiLnByaW9yaXR5SWR9fWZ1bmN0aW9uIGlEKGEpe2Zvcih2YXIgYj1tKFtGLkQuZGQsRi5ELnljXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpe3ZhciBkPWMudmFsdWUsZT1hJiZhW2RdfHxmRChkKTtpZihlKXJldHVybiBlfX1mdW5jdGlvbiBqRChhKXtyZXR1cm4hYS5pc0d0bUV2ZW50fHxhLmV2ZW50TWV0YWRhdGEmJmEuZXZlbnRNZXRhZGF0YVtILkouQ2NdJiZhLmV2ZW50TWV0YWRhdGFbSC5KLk5iXSE9PXZrKCk/ITE6ITB9O3ZhciBrRD1uZXcgZnVuY3Rpb24oKXt0aGlzLkg9ITF9O3ZhciBsRD1mdW5jdGlvbigpe3RoaXMubWVzc2FnZXM9W107dGhpcy5IPVtdfTtsRC5wcm90b3R5cGUuZW5xdWV1ZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5tZXNzYWdlcy5sZW5ndGgrMTthWyJndG0udW5pcXVlRXZlbnRJZCJdPWI7YVsiZ3RtLnByaW9yaXR5SWQiXT1kO3ZhciBlPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyx7ZXZlbnRJZDpiLHByaW9yaXR5SWQ6ZCxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOiEwfSk7aWYoTSg1OTUpKXt2YXIgZj1jLnByaW9yaXR5UXVldWU/W10uY29uY2F0KHcoYy5wcmlvcml0eVF1ZXVlKSxbZF0pOltkXTthWyJndG0ucHJpb3JpdHlRdWV1ZSJdPWY7ZS5wcmlvcml0eVF1ZXVlPWZ9dmFyIGc9e21lc3NhZ2U6YSxub3RCZWZvcmVFdmVudElkOmIscHJpb3JpdHlJZDpkLG1lc3NhZ2VDb250ZXh0OmV9O3RoaXMubWVzc2FnZXMucHVzaChnKTtmb3IodmFyIGg9MDtoPHRoaXMuSC5sZW5ndGg7aCsrKXRyeXt0aGlzLkhbaF0oZyl9Y2F0Y2gobCl7fX07CmxELnByb3RvdHlwZS5saXN0ZW49ZnVuY3Rpb24oYSl7dGhpcy5ILnB1c2goYSl9O2xELnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtmb3IodmFyIGE9e30sYj0wO2I8dGhpcy5tZXNzYWdlcy5sZW5ndGg7YisrKXt2YXIgYz10aGlzLm1lc3NhZ2VzW2JdLGQ9YVtjLm5vdEJlZm9yZUV2ZW50SWRdO2R8fChkPVtdLGFbYy5ub3RCZWZvcmVFdmVudElkXT1kKTtkLnB1c2goYyl9cmV0dXJuIGF9O2xELnByb3RvdHlwZS5wcnVuZT1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz1bXSxkPTA7ZDx0aGlzLm1lc3NhZ2VzLmxlbmd0aDtkKyspe3ZhciBlPXRoaXMubWVzc2FnZXNbZF07ZS5ub3RCZWZvcmVFdmVudElkPT09YT9iLnB1c2goZSk6Yy5wdXNoKGUpfXRoaXMubWVzc2FnZXM9YztyZXR1cm4gYn07CmZ1bmN0aW9uIG1EKGEsYixjKXtjLmV2ZW50TWV0YWRhdGE9Yy5ldmVudE1ldGFkYXRhfHx7fTtjLmV2ZW50TWV0YWRhdGFbSC5KLk5iXT1NKDU1MCk/dmsoKTpFKDYpO25EKCkuZW5xdWV1ZShhLGIsYyl9ZnVuY3Rpb24gbkQoKXtyZXR1cm4ga2ooIm1iIixmdW5jdGlvbigpe3JldHVybiBuZXcgbER9KX07dmFyIHBEPWZ1bmN0aW9uKGEsYil7dmFyIGM9b0Q7Yj1TdHJpbmcoYikuc3BsaXQoIiwiKTtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9Yy5OW2JbZF1dfHxbXTtjLk5bYltkXV09ZTtlLmluZGV4T2YoYSk8MCYmZS5wdXNoKGEpfX0scUQ9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9b0QsZD1bXSxlPVtdLGY9e30sZz0wO2c8YS5sZW5ndGg7Zj17bGs6dm9pZCAwLFFqOnZvaWQgMCxSajp2b2lkIDB9LGcrKyl7dmFyIGg9YVtnXTtpZihoLmluZGV4T2YoIi0iKT49MCl7aWYoZi5saz1iQyhoLGIpLGYubGspe3ZhciBsPXRrKCk7Q2IobCxmdW5jdGlvbih4KXtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuIHgubGsuZGVzdGluYXRpb25JZD09PXl9fShmKSk/ZC5wdXNoKGgpOmUucHVzaChoKX19ZWxzZXtpZihNKDU1MCkpe3ZhciBuPWMuS1toXXx8W107Zi5Saj17fTtuLmZvckVhY2goZnVuY3Rpb24oeCl7cmV0dXJuIGZ1bmN0aW9uKHkpe3guUmpbeV09ITB9fShmKSk7Zm9yKHZhciBwPQp0aygpLHE9MDtxPHAubGVuZ3RoO3ErKylmLlJqW3BbcV1dJiZkLnB1c2gocFtxXSl9ZWxzZXt2YXIgcj1jLkhbaF18fFtdO2YuUWo9e307ci5mb3JFYWNoKGZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbih5KXt4LlFqW3ldPSEwfX0oZikpO2Zvcih2YXIgdD13aygpLHU9MDt1PHQubGVuZ3RoO3UrKylpZihmLlFqW3RbdV1dKXtkPWQuY29uY2F0KHRrKCkpO2JyZWFrfX12YXIgdj1jLk5baF18fFtdO3YubGVuZ3RoJiYoZD1kLmNvbmNhdCh2KSl9fXJldHVybntlazpkLFBzOmV9fSxyRD1mdW5jdGlvbihhKXtHYihvRC5ILGZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yy5pbmRleE9mKGEpO2Q+PTAmJmMuc3BsaWNlKGQsMSl9KX0sc0Q9ZnVuY3Rpb24oYSl7R2Iob0QuSyxmdW5jdGlvbihiLGMpe3ZhciBkPWMuaW5kZXhPZihhKTtkPj0wJiZjLnNwbGljZShkLDEpfSl9LHREPWZ1bmN0aW9uKGEpe0diKG9ELk4sZnVuY3Rpb24oYixjKXt2YXIgZD1jLmluZGV4T2YoYSk7ZD49MCYmYy5zcGxpY2UoZCwKMSl9KX0sb0Q9bmV3IGZ1bmN0aW9uKCl7dGhpcy5IPXt9O3RoaXMuTj17fTt0aGlzLks9e319O2Z1bmN0aW9uIHVEKGEsYixjKXt2YXIgZD1FZChhLG51bGwpO2QuZXZlbnRJZD12b2lkIDA7ZC5pbmhlcml0UGFyZW50Q29uZmlnPXZvaWQgMDtPYmplY3Qua2V5cyhiKS5zb21lKGZ1bmN0aW9uKGYpe3JldHVybiBiW2ZdIT09dm9pZCAwfSkmJlAoMTM2KTt2YXIgZT1FZChiLG51bGwpO0VkKGMsZSk7bUQockMod2soKVswXSxlKSxhLmV2ZW50SWQsZCl9CmZ1bmN0aW9uIHZEKGEsYixjLGQpe3ZhciBlPXt9LGY9KGVbRi5ELlViXT1GLkQud2EsZVsiZ3RtLmNvbmZpZ0NvbnRhaW5lcklkIl09YS5pZCxlWyJndG0uY29uZmlnUGFyYW1ldGVycyJdPWIsZVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1kLmV2ZW50SWQsZSk7Yy5wcmlvcml0eVF1ZXVlJiYoZlsiZ3RtLnByaW9yaXR5UXVldWUiXT1jLnByaW9yaXR5UXVldWUpO2MuZXZlbnRNZXRhZGF0YSYmKGZbImd0bS5ldmVudE1ldGFkYXRhIl09Yy5ldmVudE1ldGFkYXRhKTthLkpjKCkmJihmWyJndG0uY29uZmlnQ29udGFpbmVySWQiXT13aygpWzBdLGZbImd0bS5vcmlnaW5hbENvbmZpZ1RhcmdldElkIl09YS5pZCk7cmV0dXJuIGZ9ZnVuY3Rpb24gd0QoYSxiLGMpe2lmKElmKDExKSYmIWMmJiFhW0YuRC5WZF0pe3ZhciBkPWFsKDEwLGZ1bmN0aW9uKCl7cmV0dXJuITF9KTtaaygxMCwhMCk7WEIoZCxhLGIpO2lmKGQpcmV0dXJuITB9cmV0dXJuITF9O2Z1bmN0aW9uIHhEKGEsYil7dmFyIGM9e30sZD0oYy5ldmVudD1hLGMpO2ImJihkLmV2ZW50TW9kZWw9RWQoYixudWxsKSxiW0YuRC5QZl0mJihkLmV2ZW50Q2FsbGJhY2s9YltGLkQuUGZdKSxiW0YuRC5waF0mJihkLmV2ZW50VGltZW91dD1iW0YuRC5waF0pKTtyZXR1cm4gZH0KZnVuY3Rpb24geUQoYSxiKXt2YXIgYz1hJiZhW0YuRC5YYl07Yz09PXZvaWQgMCYmKGM9dUEoRi5ELlhiLDIpLGM9PT12b2lkIDAmJihjPSJkZWZhdWx0IikpO2lmKHpiKGMpfHxBcnJheS5pc0FycmF5KGMpKXt2YXIgZDtkPWIuaXNHdG1FdmVudD96YihjKT9bY106YzpjLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpLnNwbGl0KCIsIik7dmFyIGU9cUQoZCxiLmlzR3RtRXZlbnQpLGY9ZS5layxnPWUuUHM7aWYoZy5sZW5ndGgpZm9yKHZhciBoPWlEKGEpLGw9MDtsPGcubGVuZ3RoO2wrKyl7dmFyIG49YkMoZ1tsXSxiLmlzR3RtRXZlbnQpO2lmKG4pe3ZhciBwPW4uZGVzdGluYXRpb25JZCxxPXZvaWQgMDsoKHE9bmsobi5kZXN0aW5hdGlvbklkKSk9PW51bGw/dm9pZCAwOnEuc3RhdGUpPT09MHx8bkEocCxoLHtzb3VyY2U6Myxmcm9tQ29udGFpbmVyRXhlY3V0aW9uOmIuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbn0pfX12YXIgcj1mLmNvbmNhdChnKTtyZXR1cm57ZWs6Y0MoZixiLmlzR3RtRXZlbnQpLAptcjpjQyhyLGIuaXNHdG1FdmVudCl9fX07dmFyIHpEPXt9LEFEPSh6RC5jb25maWc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1oRChhLGIpLGQ7YTp7aWYoIShhLmxlbmd0aDwyKSYmemIoYVsxXSkpe3ZhciBlPXt9O2lmKGEubGVuZ3RoPjIpe2lmKGFbMl0hPT12b2lkIDAmJiFDZChhWzJdKXx8YS5sZW5ndGg+Myl7ZD12b2lkIDA7YnJlYWsgYX1lPWFbMl19dmFyIGY9YkMoYVsxXSxiLmlzR3RtRXZlbnQpO2lmKGYpe2Q9e3RhcmdldDpmLHBhcmFtczplfTticmVhayBhfX1kPXZvaWQgMH12YXIgZz1kO2lmKGcpe3ZhciBoPWcudGFyZ2V0LGw9Zy5wYXJhbXMsbjthOntpZighSWYoNykpe3ZhciBwPXlrKHprKCkpO2lmKE1rKHApKXt2YXIgcT1wLnBhcmVudCxyPXEuaXNEZXN0aW5hdGlvbjtuPXtWczp5ayhxKSxNczpyfTticmVhayBhfX1uPXZvaWQgMH12YXIgdD1uLHU9dD09bnVsbD92b2lkIDA6dC5Wcyx2PXQ9PW51bGw/dm9pZCAwOnQuTXM7ZEIoYy5ldmVudElkLCJndGFnLmNvbmZpZyIpO3ZhciB4LHk9aC5kZXN0aW5hdGlvbklkOwppZihoLkpjKCk/dGsoKS5pbmRleE9mKHkpIT09LTE6d2soKS5pbmRleE9mKHkpIT09LTEpYTp7aWYodSYmKFAoMTI4KSx2JiZQKDEzMCksYi5pbmhlcml0UGFyZW50Q29uZmlnKSl7dmFyIHo7dmFyIEM9JGsoMTIpO2lmKEMpdUQoYixDLGwpLHo9ITE7ZWxzZXt2YXIgRD0kaygxMSk7IWxbRi5ELlZkXSYmKE0oNTUwKXx8SWYoMTEpKSYmRHx8WmsoMTEsRWQobCxudWxsKSk7ej0hMH16JiZ1LmNvbnRhaW5lcnMmJnUuY29udGFpbmVycy5qb2luKCIsIik7eD12b2lkIDA7YnJlYWsgYX12YXIgST0hSWYoNDUpLEc9IVNiKGguaWQsIkdUTS0iKTtJJiZHJiYoT2JqZWN0LmtleXMobCkubGVuZ3RoPT09MD9HdShULlcuU2spOkd1KFQuVy5UayksRWwoKSYmR3UoVC5XLlJrKSwkaygzMSkmJkd1KFQuVy5VaykpO3ZhciBOPVlCO2ZuLksmJihOLkg9PT0xJiYoUW0uSC5tY2M9ITEpLE4uSD0yKTtpZihNKDU1MCl8fCF3RChsLGIsaC5KYygpKSl7a0QuSHx8UCg0Myk7aWYoIU0oNTUwKSl7aWYoIWIubm9UYXJnZXRHcm91cCl7dmFyIFM9CmguaWQ7aWYoaC5KYygpKXREKFMpLHBEKFMsbFtGLkQuT2RdfHwiZGVmYXVsdCIpO2Vsc2V7ckQoUyk7dmFyIFc9bFtGLkQuT2RdfHwiZGVmYXVsdCIsZWE9b0Q7Vz1XLnRvU3RyaW5nKCkuc3BsaXQoIiwiKTtmb3IodmFyIGphPTA7amE8Vy5sZW5ndGg7amErKyl7dmFyIGZhPWVhLkhbV1tqYV1dfHxbXTtlYS5IW1dbamFdXT1mYTtmYS5pbmRleE9mKFMpPDAmJmZhLnB1c2goUyl9fX1kZWxldGUgbFtGLkQuT2RdfXZhciBzYT1iLmV2ZW50TWV0YWRhdGF8fHt9O3NhLmhhc093blByb3BlcnR5KEguSi5hZSl8fChzYVtILkouYWVdPSFiLmZyb21Db250YWluZXJFeGVjdXRpb24pO2IuZXZlbnRNZXRhZGF0YT1zYTtkZWxldGUgbFtGLkQuUGZdO2lmKE0oNTUwKSl7eD12RChoLGwsYixjKTticmVhayBhfXZhciBkYT0hIWxbRi5ELlZkXTtkZWxldGUgbFtGLkQuVmRdO3ZhciBtYT10aygpLFBhPWNELEZhPWFEO2guSmMoKSYmKG1hPVtoLmlkXSxQYT1kRCxGYT1iRCk7Zm9yKHZhciBxYT0wO3FhPAptYS5sZW5ndGg7cWErKyl7ZGF8fFBhKG1hW3FhXSk7dmFyIGliPWdEKG1hW3FhXSk7RmEobWFbcWFdLEVkKGwsbnVsbCksRWQoYixudWxsKSk7aWImJmRhfHxaQyhGLkQud2EsRWQobCxudWxsKSxtYVtxYV0sRWQoYixudWxsKSl9fXg9dm9pZCAwfWVsc2UgYTp7aWYoIWIuaW5oZXJpdFBhcmVudENvbmZpZyYmIWxbRi5ELlpjXSl7dmFyIFhiPWlEKGwpLExjPWguZGVzdGluYXRpb25JZDtpZihoLkpjKCkpbkEoTGMsWGIse3NvdXJjZToyLGZyb21Db250YWluZXJFeGVjdXRpb246Yi5mcm9tQ29udGFpbmVyRXhlY3V0aW9ufSk7ZWxzZSBpZih1IT09dm9pZCAwJiZ1LmNvbnRhaW5lcnMuaW5kZXhPZihMYykhPT0tMSl7dmFyIFFkPSRrKDExKSxZYz0kaygxMik7UWQ/dUQoYixsLFFkKTpZY3x8WmsoMTIsRWQobCxudWxsKSl9ZWxzZSBpZihoQShMYyxYYiwhMCx7c291cmNlOjIsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KSxNKDU1MCkpe3g9dkQoaCwKbCxiLGMpO2JyZWFrIGF9fXg9dm9pZCAwfXJldHVybiB4fX0sekQuY29uc2VudD1mdW5jdGlvbihhLGIpe2lmKGEubGVuZ3RoPT09Myl7UCgzOSk7dmFyIGM9aEQoYSxiKSxkPWFbMV0sZT17fSxmPU9vKGFbMl0pLGc7Zm9yKGcgaW4gZilpZihmLmhhc093blByb3BlcnR5KGcpKXt2YXIgaD1mW2ddO2VbZ109Zz09PUYuRC5ZZz9BcnJheS5pc0FycmF5KGgpP05hTjpOdW1iZXIoaCk6Zz09PUYuRC5uYz8oQXJyYXkuaXNBcnJheShoKT9oOltoXSkubWFwKFBvKTpRbyhoKX1iLmZyb21Db250YWluZXJFeGVjdXRpb258fChlW0YuRC5tYV0mJlAoMTM5KSxlW0YuRC5YYV0mJlAoMTQwKSk7ZD09PSJkZWZhdWx0Ij9UbyhlKTpkPT09InVwZGF0ZSI/Vm8oZSxjKTpkPT09ImRlY2xhcmUiJiZiLmZyb21Db250YWluZXJFeGVjdXRpb24mJlNvKGUpfX0sekQuY29udGFpbmVyX2NvbmZpZz1mdW5jdGlvbihhLGIpe2lmKGpEKGIpJiZhLmxlbmd0aD09PTMmJnpiKGFbMV0pJiZDZChhWzJdKSl7dmFyIGM9CmFbMl0sZD1iQyhhWzFdLCEwKTtkJiZhRChkLmRlc3RpbmF0aW9uSWQsYyxFZChiLG51bGwpKX19LHpELmRlc3RpbmF0aW9uX2NvbmZpZz1mdW5jdGlvbihhLGIpe2lmKGpEKGIpJiZhLmxlbmd0aD09PTMmJnpiKGFbMV0pJiZDZChhWzJdKSl7dmFyIGM9YVsyXSxkPWJDKGFbMV0sITApO2lmKGQpe2lmKE0oNTUwKSl7aWYoIWIubm9UYXJnZXRHcm91cCl7dmFyIGU9ZC5pZDtpZihkLkpjKCkpdEQoZSkscEQoZSxjW0YuRC5PZF18fCJkZWZhdWx0Iik7ZWxzZXtzRChlKTt2YXIgZj1jW0YuRC5PZF18fCJkZWZhdWx0IixnPW9EO2Y9U3RyaW5nKGYpLnNwbGl0KCIsIik7Zm9yKHZhciBoPTA7aDxmLmxlbmd0aDtoKyspe3ZhciBsPWcuS1tmW2hdXXx8W107Zy5LW2ZbaF1dPWw7bC5pbmRleE9mKGUpPDAmJmwucHVzaChlKX19fWRlbGV0ZSBjW0YuRC5PZF19YkQoZC5pZCxjLEVkKGIsbnVsbCkpfX19LHpELmV2ZW50PWZ1bmN0aW9uKGEsYil7dmFyIGM9YVsxXTtpZighKGEubGVuZ3RoPDIpJiYKemIoYykpe3ZhciBkPXZvaWQgMDtpZihhLmxlbmd0aD4yKXtpZighQ2QoYVsyXSkmJmFbMl0hPT12b2lkIDB8fGEubGVuZ3RoPjMpcmV0dXJuO2Q9YVsyXX12YXIgZT14RChjLGQpLGY9aEQoYSxiKSxnPWYuZXZlbnRJZCxoPWYucHJpb3JpdHlJZDtlWyJndG0udW5pcXVlRXZlbnRJZCJdPWc7aCYmKGVbImd0bS5wcmlvcml0eUlkIl09aCk7Yi5wcmlvcml0eVF1ZXVlJiYoZVsiZ3RtLnByaW9yaXR5UXVldWUiXT1iLnByaW9yaXR5UXVldWUpO2lmKGM9PT0ib3B0aW1pemUuY2FsbGJhY2siKXJldHVybiBlLmV2ZW50TW9kZWw9ZS5ldmVudE1vZGVsfHx7fSxlO3ZhciBsPXlEKGQsYik7aWYobCl7Zm9yKHZhciBuPWwuZWsscD1sLm1yLHE9cC5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIE4uaWR9KSxyPXAubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLmRlc3RpbmF0aW9uSWR9KSx0PW4ubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLmlkfSksdT1tKHRrKCkpLHY9dS5uZXh0KCk7IXYuZG9uZTt2PQp1Lm5leHQoKSl7dmFyIHg9di52YWx1ZTtyLmluZGV4T2YoeCk8MCYmdC5wdXNoKHgpfWRCKGcsYyk7Zm9yKHZhciB5PW0odCksej15Lm5leHQoKTshei5kb25lO3o9eS5uZXh0KCkpe3ZhciBDPXoudmFsdWUsRD1FZChiLG51bGwpLEk9RWQoZCxudWxsKTtkZWxldGUgSVtGLkQuUGZdO3ZhciBHPUQuZXZlbnRNZXRhZGF0YXx8e307Ry5oYXNPd25Qcm9wZXJ0eShILkouYWUpfHwoR1tILkouYWVdPSFELmZyb21Db250YWluZXJFeGVjdXRpb24pO0dbSC5KLm1qXT1xLnNsaWNlKCk7R1tILkouc2ddPXIuc2xpY2UoKTtELmV2ZW50TWV0YWRhdGE9RztaQyhjLEksQyxEKX1lLmV2ZW50TW9kZWw9ZS5ldmVudE1vZGVsfHx7fTtxLmxlbmd0aD4wP2UuZXZlbnRNb2RlbFtGLkQuWGJdPXEuam9pbigiLCIpOmRlbGV0ZSBlLmV2ZW50TW9kZWxbRi5ELlhiXTtrRC5IfHxQKDQzKTtiLm5vR3RtRXZlbnQ9PT12b2lkIDAmJmIuZXZlbnRNZXRhZGF0YSYmYi5ldmVudE1ldGFkYXRhW0guSi5Cbl0mJihiLm5vR3RtRXZlbnQ9CiEwKTtlLmV2ZW50TW9kZWxbRi5ELlljXSYmKGIubm9HdG1FdmVudD0hMCk7cmV0dXJuIGIubm9HdG1FdmVudD92b2lkIDA6ZX19fSx6RC5nZXQ9ZnVuY3Rpb24oYSxiKXtQKDUzKTtpZihhLmxlbmd0aD09PTQmJnpiKGFbMV0pJiZ6YihhWzJdKSYmeWIoYVszXSkpe3ZhciBjPWJDKGFbMV0sYi5pc0d0bUV2ZW50KSxkPVN0cmluZyhhWzJdKSxlPWFbM107aWYoYyl7a0QuSHx8UCg0Myk7dmFyIGY9aUQoKTtpZihDYih0aygpLGZ1bmN0aW9uKGgpe3JldHVybiBjLmRlc3RpbmF0aW9uSWQ9PT1ofSkpe2hEKGEsYik7dmFyIGc9e307RWQoKGdbRi5ELlRmXT1kLGdbRi5ELlNmXT1lLGcpLG51bGwpOyRDKGQsZnVuY3Rpb24oaCl7YmQoZnVuY3Rpb24oKXtlKGgpfSl9LGMuaWQsYil9ZWxzZSBuQShjLmRlc3RpbmF0aW9uSWQsZix7c291cmNlOjQsZnJvbUNvbnRhaW5lckV4ZWN1dGlvbjpiLmZyb21Db250YWluZXJFeGVjdXRpb259KX19fSx6RC5qcz1mdW5jdGlvbihhLGIpe3ZhciBjO2lmKGEubGVuZ3RoPT09CjImJmFbMV0uZ2V0VGltZSl7a0QuSD0hMDt2YXIgZD1oRChhLGIpLGU9ZC5ldmVudElkLGY9ZC5wcmlvcml0eUlkLGc9e307Yz0oZy5ldmVudD0iZ3RtLmpzIixnWyJndG0uc3RhcnQiXT1hWzFdLmdldFRpbWUoKSxnWyJndG0udW5pcXVlRXZlbnRJZCJdPWUsZ1siZ3RtLnByaW9yaXR5SWQiXT1mLGcpfWVsc2UgYz12b2lkIDA7cmV0dXJuIGN9LHpELnBvbGljeT1mdW5jdGlvbihhKXtpZihhLmxlbmd0aD09PTMmJnpiKGFbMV0pJiZ5YihhWzJdKSl7aWYoaHkoYVsxXSxhWzJdKSxQKDc0KSxhWzFdPT09ImFsbCIpe1AoNzUpO3ZhciBiPSExO3RyeXtiPWFbMl0oRSg1KSwidW5rbm93biIse30pfWNhdGNoKGMpe31ifHxQKDc2KX19ZWxzZSBQKDczKX0sekQucmVzZXRfdGFyZ2V0X2NvbmZpZz1mdW5jdGlvbihhLGIpe2lmKGpEKGIpJiZhLmxlbmd0aD09PTImJnpiKGFbMV0pKXt2YXIgYz1iQyhhWzFdLCEwKTtjJiZkRChjLmlkKX19LHpELnNldD1mdW5jdGlvbihhLGIpe3ZhciBjPXZvaWQgMDsKYS5sZW5ndGg9PT0yJiZDZChhWzFdKT9jPUVkKGFbMV0sbnVsbCk6YS5sZW5ndGg9PT0zJiZ6YihhWzFdKSYmKGM9e30sQ2QoYVsyXSl8fEFycmF5LmlzQXJyYXkoYVsyXSk/Y1thWzFdXT1FZChhWzJdLG51bGwpOmNbYVsxXV09YVsyXSk7aWYoYyl7WmsoMzEsITApO3ZhciBkPWhEKGEsYiksZT1kLmV2ZW50SWQsZj1kLnByaW9yaXR5SWQ7RWQoYyxudWxsKTtFKDUpO3ZhciBnPUVkKGMsbnVsbCk7WUMoKS5ILnB1c2goInNldCIsW2ddLHZvaWQgMCxiKTtjWyJndG0udW5pcXVlRXZlbnRJZCJdPWU7ZiYmKGNbImd0bS5wcmlvcml0eUlkIl09Zik7ZGVsZXRlIGMuZXZlbnQ7Yi5vdmVyd3JpdGVNb2RlbEZpZWxkcz0hMDtyZXR1cm4gY319LHpEKSxCRD17fSxDRD0oQkQucG9saWN5PSEwLEJEKTt2YXIgRUQ9ZnVuY3Rpb24oYSl7aWYoREQoYSkpcmV0dXJuIGE7dGhpcy52YWx1ZT1hfTtFRC5wcm90b3R5cGUuZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O3ZhciBERD1mdW5jdGlvbihhKXtyZXR1cm4hYXx8QWQoYSkhPT0ib2JqZWN0Inx8Q2QoYSk/ITE6ImdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZSJpbiBhfTtFRC5wcm90b3R5cGUuZ2V0VW50cnVzdGVkTWVzc2FnZVZhbHVlPUVELnByb3RvdHlwZS5nZXRVbnRydXN0ZWRNZXNzYWdlVmFsdWU7dmFyIEZEPXtCYjoiMSIsZWU6IjIiLFhkOiIzIixjZToiNCIseGY6IjUiLHFnOiI2IixLaDoiNyIsdGo6IjgiLGxpOiI5IixqajoiMTAifTsKdmFyIEdEPWZ1bmN0aW9uKGEsYil7aWYoYSl7dmFyIGM9YS50cmltKCkucmVwbGFjZUFsbCgvXHMrL2csIiIpLnJlcGxhY2VBbGwoLyhcZHsyLH0pXC4vZywiJDEiKS5yZXBsYWNlQWxsKC8tL2csIiIpLnJlcGxhY2VBbGwoL1woKFxkKylcKS9nLCIkMSIpO2lmKGImJmMubWF0Y2goL15cKz9cZHszLDR9JC8pKXJldHVybiBjO2MuY2hhckF0KDApIT09IisiJiYoYz0iKyIrYyk7aWYoYy5tYXRjaChuZXcgUmVnRXhwKCJeXFwrXFxkeyIrKE0oNTk3KT83OjEwKSsiLDE1fSQiKSkpcmV0dXJuIGN9fSxJRD1mdW5jdGlvbihhKXtpZihhKXt2YXIgYj1hLnRyaW0oKTtpZihIRC50ZXN0KGIpKXJldHVybiBiLnRvTG93ZXJDYXNlKCkucmVwbGFjZUFsbCgvWy0gXSsvZywiIil9fSxNRD1mdW5jdGlvbihhKXt2YXIgYj1KRChLRCkoYSk7aWYoYiYmIUxEKGIpKXJldHVybiBifSxMRD1mdW5jdGlvbihhKXtpZighQS5sb2NhdGlvbilyZXR1cm4hMTt2YXIgYj1OaihBLmxvY2F0aW9uLCJob3N0IiwhMCksCmM7aWYoTSg2MDIpKWE6e2Zvcih2YXIgZD1iLnNwbGl0KCIuIiksZT1hLnRvTG93ZXJDYXNlKCksZj0wO2Y8ZC5sZW5ndGgtMTtmKyspe3ZhciBnPWQuc2xpY2UoZikuam9pbigiLiIpO2lmKGUubWF0Y2goIkAiK2crIiQiKSl7Yz0hMDticmVhayBhfX1jPSExfWVsc2UgYz1hLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihiKT49MDtyZXR1cm4gY30sSkQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWIubWF0Y2goYSk7cmV0dXJuIGM/Y1swXS50cmltKCkudG9Mb3dlckNhc2UoKTp2b2lkIDB9fSxLRD0vW0EtWjAtOS5fJSstXStAW0EtWjAtOS4tXStcLltBLVpdezIsfS9pLE5EPUpEKC9eKFteXHgwMC1ceDQwXHg1Yi1ceDYwXHg3Yi1ceGZmXXxbLi1dfFxzKSskLyksSEQ9UmVnRXhwKCJeKD86W0EtWl17MSwyfVxcZFtBLVpcXGRdP1sgLV0/XFxkW0EtWl17Mn18W0EtWl1cXGRbQS1aXVsgLV0/XFxkW0EtWl1cXGR8XFxkezR9ID9bQS1aXXsyfXxbQS1aXVxcZHs0fVtBLVpdezN9fFxcZHs1fSg/Oi1cXGR7NH0pP3xcXGR7NX0tXFxkezN9fFxcZHs0fS1cXGR7M318XFxkezN9LVxcZHs0fXxcXGR7Mn0tXFxkezN9fFxcZHszfSA/XFxkezJ9fFxcZHs0LDd9KSQiLAoiaSIpLE9EPUpEKC9eKFteXHgwMC1ceDQwXHg1Yi1ceDYwXHg3Yi1ceGZmXXxbLi1dfFxzfFxkKSskLyk7CnZhciBQRD1mdW5jdGlvbigpe3ZhciBhPVN0cmluZyhhbCgzMyxmdW5jdGlvbigpe3JldHVybiAwfSkpO2EuaW5kZXhPZigiLiIpIT09LTEmJihhPWEuc3Vic3RyaW5nKDAsYS5pbmRleE9mKCIuIikrMykpO3ZhciBiPWFsKDM0LGZ1bmN0aW9uKCl7cmV0dXJuIDB9KTtyZXR1cm57dnQ6TnVtYmVyKGEpLHN0OmJ9fSxRRD1mdW5jdGlvbigpe3JldHVybiBhbCgzMixmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSl9LFNEPWZ1bmN0aW9uKGEpe3ZhciBiPXBkKCl8fDAsYz1bRkQuQmJdO00oNTY4KSYmYy5wdXNoKEZELmVlLEZELlhkLEZELmNlLEZELnhmLEZELnFnLEZELnRqLEZELmxpLEZELmpqKTtmb3IodmFyIGQ9UkQoYSxuZXcgU2V0KGMpKSxlPWFsKDMyLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9KSxmPW0oZCksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciBoPWcudmFsdWU7ZS5zZXQoaC5EYSxoKX12YXIgbD0ocGQoKXx8MCktYixuPWFsKDMzLGZ1bmN0aW9uKCl7cmV0dXJuIDB9KTsKWmsoMzMsbitsKTt2YXIgcD1hbCgzNCxmdW5jdGlvbigpe3JldHVybiAwfSk7WmsoMzQscCsxKX0sUkQ9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9TmYoMzYsMiksZD1bXSxlPVt7b286YSxkZXB0aDowfV07ZS5sZW5ndGg+MDspZm9yKHZhciBmPWUuc2hpZnQoKSxnPWYub28saD1mLmRlcHRoLGw9bShPYmplY3Qua2V5cyhnKSksbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBwPW4udmFsdWU7aWYoIVRELmhhcyhwKSl7dmFyIHE9Z1twXTtpZihxKWlmKENkKHEpKWgrMTw9YyYmZS5wdXNoKHtvbzpxLGRlcHRoOmgrMX0pO2Vsc2V7Zm9yKHZhciByPW0oYiksdD1yLm5leHQoKTshdC5kb25lO3Q9ci5uZXh0KCkpe3ZhciB1PXQudmFsdWUsdj1VRFt1XTtpZih2JiZ2LktjLnRlc3QocCkpe3ZhciB4PXYubmEoU3RyaW5nKHEpKTtpZih4KXtkLnB1c2goe0NhOngsRGE6dX0pO2IuZGVsZXRlKHUpO2JyZWFrfX19aWYoYi5zaXplPT09MClyZXR1cm4gZH19fXJldHVybiBkfSxURD0KbmV3IFNldChbIml0ZW1zIiwiZWNvbW1lcmNlIl0pLFZEPVJlZ0V4cCgicGhvbmUiLCJpIiksV0Q9UmVnRXhwKCJmaXJzdF8/bmFtZSIsImkiKSxYRD1SZWdFeHAoImxhc3RfP25hbWUiLCJpIiksWUQ9UmVnRXhwKCJjb3VudHJ5IiwiaSIpLFpEPVJlZ0V4cCgicG9zdHx6aXAiLCJpIiksJEQ9UmVnRXhwKCJhZGRyZXNzfHN0cmVldCIsImkiKSxhRT1SZWdFeHAoImNpdHkiLCJpIiksYkU9UmVnRXhwKCJyZWdpb258c3RhdGV8cHJvdmluY2UiLCJpIiksY0U9e30sVUQ9KGNFW0ZELkJiXT17S2M6UmVnRXhwKCJlbWFpbCIsImkiKSxuYTpNRH0sY0VbRkQuZWVdPXtLYzpWRCxuYTpmdW5jdGlvbihhKXtyZXR1cm4gR0QoYSwhMSl9fSxjRVtGRC5YZF09e0tjOldELG5hOk5EfSxjRVtGRC5jZV09e0tjOlhELG5hOk5EfSxjRVtGRC50al09e0tjOiRELG5hOk9EfSxjRVtGRC5saV09e0tjOmFFLG5hOk5EfSxjRVtGRC5qal09e0tjOmJFLG5hOk5EfSxjRVtGRC5xZ109e0tjOlpELG5hOklEfSxjRVtGRC54Zl09CntLYzpZRCxuYTpORH0sY0UpO3ZhciBkRT1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5sb2FkZWQ9ITE7dGhpcy5IPVtdO2lmKEIucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpdGhpcy5vbkxvYWQoKTtlbHNlICRjKEEsImxvYWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgYS5vbkxvYWQoKX0pfTtkRS5wcm90b3R5cGUub25Mb2FkPWZ1bmN0aW9uKCl7aWYoIXRoaXMubG9hZGVkKXt0aGlzLmxvYWRlZD0hMDtmb3IodmFyIGE9MDthPHRoaXMuSC5sZW5ndGg7YSsrKWJkKHRoaXMuSFthXSl9fTt2YXIgZkU9ZnVuY3Rpb24oYSl7dmFyIGI9ZUU7Yi5sb2FkZWQ/YmQoYSk6Yi5ILnB1c2goYSl9LGVFPW5ldyBkRTt2YXIgZ0U9ZnVuY3Rpb24oKXt0aGlzLlo9MDt0aGlzLks9e307dGhpcy5IPVtdO3RoaXMuTj1bXTt0aGlzLmZhPXRoaXMuUj10aGlzLmphPSExfSxpRT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9aEU7YS5ldmVudENhbGxiYWNrPWI7YyYmKGEuZXZlbnRUaW1lb3V0PWMpO3JldHVybiBkLnB1c2goYSl9LGpFPWZ1bmN0aW9uKGEsYil7aWYoIUFiKGIpfHxiPDApYj0wO3ZhciBjPXFqKCksZD0wLGU9ITEsZj12b2lkIDA7Zj1BLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlfHwoZT0hMCxhKCkpO2Y9dm9pZCAwfSxiKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZz1jP2Muc3Vic2NyaWJlcnM6MTsrK2Q9PT1nJiYoZiYmKEEuY2xlYXJUaW1lb3V0KGYpLGY9dm9pZCAwKSxlfHwoYSgpLGU9ITApKX19LGxFPWZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEuTi5sZW5ndGgpYj1hLk4uc2hpZnQoKTtlbHNlIGlmKGEuSC5sZW5ndGgpYj1hLkguc2hpZnQoKTtlbHNlIHJldHVybjt2YXIgYzt2YXIgZD1iO2lmKGEuamF8fAoha0UoZC5tZXNzYWdlKSljPWQ7ZWxzZXthLmphPSEwO3ZhciBlPWQubWVzc2FnZVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXSxmLGc7dHlwZW9mIGU9PT0ibnVtYmVyIj8oZj1lLTIsZz1lLTEpOihmPXJqKCksZz1yaigpLGQubWVzc2FnZVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1yaigpKTt2YXIgaD17fSxsPXttZXNzYWdlOihoLmV2ZW50PSJndG0uaW5pdF9jb25zZW50IixoWyJndG0udW5pcXVlRXZlbnRJZCJdPWYsaCksbWVzc2FnZUNvbnRleHQ6e2V2ZW50SWQ6Zn19LG49e30scD17bWVzc2FnZToobi5ldmVudD0iZ3RtLmluaXQiLG5bImd0bS51bmlxdWVFdmVudElkIl09ZyxuKSxtZXNzYWdlQ29udGV4dDp7ZXZlbnRJZDpnfX07YS5ILnVuc2hpZnQocCxkKTtjPWx9cmV0dXJuIGN9LG9FPWZ1bmN0aW9uKGEpe2EuZmF8fFAoMTk2KTtmb3IodmFyIGI9ITEsYzshYS5SJiYoYz1sRShhKSk7KXthLlI9ITA7dmFyIGQ9ckE7ZGVsZXRlIGQuSC5ldmVudE1vZGVsO29BKGQpO3ZhciBlPWMsZj0KZS5tZXNzYWdlLGc9ZS5tZXNzYWdlQ29udGV4dDtpZihmPT1udWxsKWEuUj0hMTtlbHNle2cuZnJvbUNvbnRhaW5lckV4ZWN1dGlvbiYmc0EoKTt0cnl7aWYoeWIoZikpdHJ5e2YuY2FsbCh0QSl9Y2F0Y2goUyl7fWVsc2UgaWYoQXJyYXkuaXNBcnJheShmKSl7aWYoemIoZlswXSkpe3ZhciBoPWZbMF0uc3BsaXQoIi4iKSxsPWgucG9wKCksbj1mLnNsaWNlKDEpLHA9dUEoaC5qb2luKCIuIiksMik7aWYocCE9bnVsbCl0cnl7cFtsXS5hcHBseShwLG4pfWNhdGNoKFMpe319fWVsc2V7dmFyIHE9dm9pZCAwO2lmKEhiKGYpKWE6e2lmKGYubGVuZ3RoJiZ6YihmWzBdKSl7dmFyIHI9QURbZlswXV07aWYociYmKCFnLmZyb21Db250YWluZXJFeGVjdXRpb258fCFDRFtmWzBdXSkpe3E9cihmLGcpO2JyZWFrIGF9fXE9dm9pZCAwfWVsc2UgcT1mO2lmKHEpe3ZhciB0O2Zvcih2YXIgdT1xLHY9dS5fY2xlYXJ8fGcub3ZlcndyaXRlTW9kZWxGaWVsZHMseD1tKE9iamVjdC5rZXlzKHUpKSx5PXgubmV4dCgpOyF5LmRvbmU7eT0KeC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7eiE9PSJfY2xlYXIiJiYodiYmckEuc2V0KHosdm9pZCAwKSxyQS5zZXQoeix1W3pdKSl9TSg1OTIpJiZTRCh1KTskaygyNSl8fFprKDI1LHVbImd0bS5zdGFydCJdKTt2YXIgQz11WyJndG0udW5pcXVlRXZlbnRJZCJdO3UuZXZlbnQ/KHR5cGVvZiBDIT09Im51bWJlciImJihDPXJqKCksdVsiZ3RtLnVuaXF1ZUV2ZW50SWQiXT1DLHJBLnNldCgiZ3RtLnVuaXF1ZUV2ZW50SWQiLEMpKSx0PXpCKHUpKTp0PSExO2I9dHx8Yn19fWZpbmFsbHl7Zy5mcm9tQ29udGFpbmVyRXhlY3V0aW9uJiZvQShyQSwhMCk7dmFyIEQ9ZlsiZ3RtLnVuaXF1ZUV2ZW50SWQiXTtpZih0eXBlb2YgRD09PSJudW1iZXIiKXtmb3IodmFyIEk9YSxHPUkuS1tTdHJpbmcoRCldfHxbXSxOPTA7TjxHLmxlbmd0aDtOKyspSS5OLnB1c2gobUUoR1tOXSkpO0cubGVuZ3RoJiZJLk4uc29ydChuRSk7ZGVsZXRlIEkuS1tTdHJpbmcoRCldO0Q+YS5aJiYoYS5aPUQpfWEuUj0hMX19fXJldHVybiFifSwKcEU9ZnVuY3Rpb24oKXt2YXIgYT1oRTthLmZhJiZQKDE5NSk7YS5mYT0hMDtpZihmbi5IKXt2YXIgYj0hSWYoNTEpLGM9cnooKTtweihjLHtzdGFnZTpJeS5YLlpnfSk7aWYoYil7dmFyIGQ9cXooYyx7c3RhZ2U6SXkuWC5Za30sSXkuWC5uaSk7ZCE9PXZvaWQgMCYmKGMuSC5ZPWQpfXZhciBlPWEuSC5sZW5ndGg7cnooKS5ILkM9ZX1vRShhKTtpZihmbi5IKXt2YXIgZj1yeigpLGc9cXooZix7c3RhZ2U6SXkuWC5Wa30sSXkuWC5aZyk7ZyE9PXZvaWQgMCYmKGYuSC5CPWcpfXRyeXt2YXIgaD1BW0UoMTkpXSxsPUUoNSksbj1oLmhpZGU7aWYobiYmbltsXSE9PXZvaWQgMCYmbi5lbmQpe25bbF09ITE7dmFyIHA9ITAscTtmb3IocSBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkocSkmJm5bcV09PT0hMCl7cD0hMTticmVha31wJiYobi5lbmQoKSxuLmVuZD1udWxsKX19Y2F0Y2gocil7RSg1KX19LHFFPWZ1bmN0aW9uKGEsYil7aWYoYS5aPGIubm90QmVmb3JlRXZlbnRJZCl7dmFyIGM9U3RyaW5nKGIubm90QmVmb3JlRXZlbnRJZCk7CmEuS1tjXT1hLktbY118fFtdO2EuS1tjXS5wdXNoKGIpfWVsc2V7YS5OLnB1c2gobUUoYikpO2EuTi5zb3J0KG5FKTt2YXIgZD1mdW5jdGlvbigpe2EuUnx8b0UoYSl9O00oNTgwKT9kZChkKTpiZChkKX19OwpnRS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoaCl7dmFyIGw9e307aWYoREQoaCkpe3ZhciBuPWg7aD1ERChuKT9uLmdldFVudHJ1c3RlZE1lc3NhZ2VWYWx1ZSgpOnZvaWQgMDtsLmZyb21Db250YWluZXJFeGVjdXRpb249ITB9cmV0dXJue21lc3NhZ2U6aCxtZXNzYWdlQ29udGV4dDpsfX12YXIgYj10aGlzLGM9TWMoRSgxOSksW10pLGQ9cGooKTtkLnBydW5lZD09PSEwJiZQKDgzKTt0aGlzLks9bkQoKS5nZXQoKTtuRCgpLmxpc3RlbihmdW5jdGlvbihoKXtxRShiLGgpfSk7ZC5zdWJzY3JpYmVycz0oZC5zdWJzY3JpYmVyc3x8MCkrMTt2YXIgZT1jLnB1c2gsZj10aGlzO2MucHVzaD1mdW5jdGlvbigpe3ZhciBoO2xqKCk7aWYoamouSC5TQU5EQk9YRURfSlNfU0VNQVBIT1JFPjApe2g9W107Zm9yKHZhciBsPTA7bDxhcmd1bWVudHMubGVuZ3RoO2wrKyloW2xdPW5ldyBFRChhcmd1bWVudHNbbF0pfWVsc2UgaD1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTsKdmFyIG49aC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGEodCl9KTtmLkgucHVzaC5hcHBseShmLkgsbik7dmFyIHA9ZS5hcHBseShjLGgpLHE9TWF0aC5tYXgoMTAwLE5mKDEsMzAwKSk7aWYodGhpcy5sZW5ndGg+cSlmb3IoUCg0KSxkLnBydW5lZD0hMDt0aGlzLmxlbmd0aD5xOyl0aGlzLnNoaWZ0KCk7dmFyIHI9dHlwZW9mIHAhPT0iYm9vbGVhbiJ8fHA7cmV0dXJuIG9FKGYpJiZyfTt2YXIgZz1jLnNsaWNlKDApLm1hcChmdW5jdGlvbihoKXtyZXR1cm4gYShoKX0pO3RoaXMuSC5wdXNoLmFwcGx5KHRoaXMuSCxnKTtJZig1MSl8fChmbi5IJiZ1eigpLGJkKHJFKSk7VkIoZnVuY3Rpb24oKXtpZighZC5ndG1Eb20pe2QuZ3RtRG9tPSEwO3ZhciBoPXt9O2MucHVzaCgoaC5ldmVudD0iZ3RtLmRvbSIsaCkpfX0pO2ZFKGZ1bmN0aW9uKCl7aWYoIWQuZ3RtTG9hZCl7ZC5ndG1Mb2FkPSEwO3ZhciBoPXt9O2MucHVzaCgoaC5ldmVudD0iZ3RtLmxvYWQiLGgpKX19KX07CmdFLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGEpe3JldHVybiBBW0UoMTkpXS5wdXNoKGEpfTt2YXIgaEU9bmV3IGdFO2Z1bmN0aW9uIG5FKGEsYil7dmFyIGM9YS5tZXNzYWdlQ29udGV4dCxkPWIubWVzc2FnZUNvbnRleHQ7aWYoYy5ldmVudElkIT09ZC5ldmVudElkKXJldHVybiBjLmV2ZW50SWQtZC5ldmVudElkO2lmKCFNKDU5NSkpcmV0dXJuIGMucHJpb3JpdHlJZC1kLnByaW9yaXR5SWQ7dmFyIGUsZixnO2E6e2Zvcih2YXIgaD0oZT1jLnByaW9yaXR5UXVldWUpIT1udWxsP2U6W2MucHJpb3JpdHlJZF0sbD0oZj1kLnByaW9yaXR5UXVldWUpIT1udWxsP2Y6W2QucHJpb3JpdHlJZF0sbj1NYXRoLm1pbihoLmxlbmd0aCxsLmxlbmd0aCkscD0wO3A8bjtwKyspaWYoaFtwXSE9PWxbcF0pe2c9aFtwXS1sW3BdO2JyZWFrIGF9Zz1oLmxlbmd0aC1sLmxlbmd0aH1yZXR1cm4gZ30KZnVuY3Rpb24ga0UoYSl7aWYoYT09bnVsbHx8dHlwZW9mIGEhPT0ib2JqZWN0IilyZXR1cm4hMTtpZihhLmV2ZW50KXJldHVybiEwO2lmKEhiKGEpKXt2YXIgYj1hWzBdO2lmKGI9PT0iY29uZmlnInx8Yj09PSJldmVudCJ8fGI9PT0ianMifHxiPT09ImdldCIpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gbUUoYSl7cmV0dXJue21lc3NhZ2U6YS5tZXNzYWdlLG1lc3NhZ2VDb250ZXh0OmEubWVzc2FnZUNvbnRleHR9fWZ1bmN0aW9uIHNFKGEsYixjKXtyZXR1cm4gaUUoYSxiLGMpfWZ1bmN0aW9uIHRFKGEsYil7cmV0dXJuIGpFKGEsYil9ZnVuY3Rpb24gckUoKXtwRSgpfWZ1bmN0aW9uIHVFKGEpe3JldHVybiBoRS5wdXNoKGEpfTt2YXIgdkU9ZnVuY3Rpb24oKXt9O3ZFLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dmFyIGEsYj1SaihBLmxvY2F0aW9uLmhyZWYpOyhhPWIuaG9zdG5hbWUrYi5wYXRobmFtZSkmJlVtKCJkbCIsZW5jb2RlVVJJQ29tcG9uZW50KGEpKTt2YXIgYzt2YXIgZD1FKDUpO2lmKGQpe3ZhciBlPUlmKDcpPzE6MCxmPUZrKCksZz1mJiZmLmZyb21Db250YWluZXJFeGVjdXRpb24/MTowLGg9ZiYmZi5zb3VyY2V8fDAsbD1FKDYpO2M9ZCsiOyIrbCsiOyIrZysiOyIraCsiOyIrZX1lbHNlIGM9dm9pZCAwO3ZhciBuPWM7biYmVW0oInRkcCIsbik7dmFyIHA9T3AoITApO3AhPT12b2lkIDAmJlVtKCJmcm0iLFN0cmluZyhwKSl9O3ZhciB3RT1uZXcgdkU7dmFyIHhFPWZ1bmN0aW9uKCl7dGhpcy5IPVhtKCk7dGhpcy5LPXZvaWQgMH0seUU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gWm0oYSxmdW5jdGlvbihjKXtyZXR1cm4gYy5qYj4wP2I/Yy5qYisiXyIrV20oYyk6U3RyaW5nKGMuamIpOnZvaWQgMH0pfTsKeEUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2lmKHBsKCl8fGZuLkspVW0oImNzcCIsZnVuY3Rpb24oKXt2YXIgYj15RShhLkgsITApOyRtKGEuSCk7cmV0dXJuIGJ9LCExKSxVbSgibWRlIixmdW5jdGlvbigpe3ZhciBiPWNuLkgsYz15RShiLCExKTskbShiKTtyZXR1cm4gY30sITEpLEEuYWRkRXZlbnRMaXN0ZW5lcigic2VjdXJpdHlwb2xpY3l2aW9sYXRpb24iLGZ1bmN0aW9uKGIpe2lmKGIuZGlzcG9zaXRpb249PT0iZW5mb3JjZSIpe1AoMTc5KTt2YXIgYz1ubihiLmVmZmVjdGl2ZURpcmVjdGl2ZSk7aWYoYyl7dmFyIGQ7YTp7dmFyIGU9Yi5ibG9ja2VkVVJJLGY9a247aWYoZm4uSyYmZSl7dmFyIGc9am4oYyxlKTtpZihnKXt2YXIgaDtkPShoPWxuKGYsYykpPT1udWxsP3ZvaWQgMDpoW2ddO2JyZWFrIGF9fWQ9dm9pZCAwfXZhciBsPWQ7aWYobCl7dmFyIG47YTp7dHJ5e3ZhciBwPW5ldyBVUkwoYi5ibG9ja2VkVVJJKSxxPXAucGF0aG5hbWUuaW5kZXhPZigiOyIpOwpuPXE+PTA/cC5vcmlnaW4rcC5wYXRobmFtZS5zdWJzdHJpbmcoMCxxKTpwLm9yaWdpbitwLnBhdGhuYW1lO2JyZWFrIGF9Y2F0Y2goRCl7fW49dm9pZCAwfXZhciByPW47aWYocil7Zm9yKHZhciB0PW0obCksdT10Lm5leHQoKTshdS5kb25lO3U9dC5uZXh0KCkpe3ZhciB2PXUudmFsdWU7aWYoIXYuRW8pe3YuRW89ITA7dmFyIHg9e2V2ZW50SWQ6di5ldmVudElkLHByaW9yaXR5SWQ6di5wcmlvcml0eUlkfTtpZihwbCgpKXt2YXIgeT14LHo9e3R5cGU6MSxibG9ja2VkVXJsOnIsZW5kcG9pbnQ6di5lbmRwb2ludCx2aW9sYXRpb246Yi5lZmZlY3RpdmVEaXJlY3RpdmV9O2lmKHBsKCkpe3ZhciBDPUxsKCJUQUdfRElBR05PU1RJQ1MiLHtldmVudElkOnk9PW51bGw/dm9pZCAwOnkuZXZlbnRJZCxwcmlvcml0eUlkOnk9PW51bGw/dm9pZCAwOnkucHJpb3JpdHlJZH0pO0MudGFnRGlhZ25vc3RpY3M9ejtvbChDKX19ekUoYSx2LmRlc3RpbmF0aW9uSWQsdi5lbmRwb2ludCxjKX19bW4oYywKYi5ibG9ja2VkVVJJKX19fX19KX07dmFyIHpFPWZ1bmN0aW9uKGEsYixjLGQpe2FuKGEuSCxiLGMsMSxkKTtWbSgiY3NwIiwhMCk7Vm0oIm1kZSIsITApO2MhPT02MSYmYyE9PTU2JiZhLks9PT12b2lkIDAmJihhLks9QS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5ILmpiPjAmJnRvKCExKTthLks9dm9pZCAwfSw1MDApKX0sQUU9bmV3IHhFO3ZhciBCRT1mdW5jdGlvbigpe3RoaXMuc2VxdWVuY2VOdW1iZXI9MH07QkUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO0NFKHRoaXMpO0lmKDY1KSYmVW0oIm10YmwiLCIxIik7VW0oInYiLCIzIik7VW0oInQiLCJ0Iik7VW0oInBpZCIsZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKG5tKGptLmJhLmJoKSl9KTtVbSgiZ3RtIixmdW5jdGlvbigpe3JldHVybiBkdSgpfSk7VW0oInNlcSIsZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKCsrYS5zZXF1ZW5jZU51bWJlcil9KTtVbSgiZXhwIixmdW5jdGlvbigpe3JldHVybiBDcCgpfSl9O3ZhciBDRT1mdW5jdGlvbihhKXtpZihubShqbS5iYS5iaCk9PT12b2lkIDApe3ZhciBiPWZ1bmN0aW9uKCl7bW0oam0uYmEuYmgsRGIoKSk7YS5zZXF1ZW5jZU51bWJlcj0wfTtiKCk7Y2QoYiw4NjRFNSl9ZWxzZSBwbShqbS5iYS5iaCxmdW5jdGlvbigpe2Euc2VxdWVuY2VOdW1iZXI9MH0pO2Euc2VxdWVuY2VOdW1iZXI9MH0sREU9bmV3IEJFO2Z1bmN0aW9uIEVFKGEpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBW2FdfX0KdmFyIEZFPXt9LEdFPShGRVsxNF09ZnVuY3Rpb24oKXt2YXIgYTtyZXR1cm4oYT1BLmNyeXB0byk9PW51bGw/dm9pZCAwOmEuZ2V0UmFuZG9tVmFsdWVzfSxGRVsxNV09ZnVuY3Rpb24oKXt2YXIgYSxiO3JldHVybihhPUEuY3J5cHRvKT09bnVsbD92b2lkIDA6KGI9YS5zdWJ0bGUpPT1udWxsP3ZvaWQgMDpiLmRpZ2VzdH0sRkVbMV09RUUoImZldGNoIiksRkVbNl09RUUoIk1hcCIpLEZFWzJdPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgucmFuZG9tfSxGRVs4XT1mdW5jdGlvbigpe3JldHVybiBuYShPYmplY3QsImFzc2lnbiIpfSxGRVs5XT1mdW5jdGlvbigpe3JldHVybiBPYmplY3QuZW50cmllc30sRkVbMTBdPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllc30sRkVbNV09RUUoIlByb21pc2UiKSxGRVsxM109RUUoIlJlZ0V4cCIpLEZFWzNdPWZ1bmN0aW9uKCl7cmV0dXJuIEhjLnNlbmRCZWFjb259LEZFWzddPUVFKCJTZXQiKSxGRVsxMl09ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aH0sCkZFWzExXT1mdW5jdGlvbigpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGh9LEZFWzRdPUVFKCJYTUxIdHRwUmVxdWVzdCIpLEZFKSxIRT17fSxJRT0oSEVbMTVdPSEwLEhFKTt2YXIgTkU9L14oaHR0cHM/Oik/XC9cLy87CgpmdW5jdGlvbiBoRigpe307ZnVuY3Rpb24gaUYoKXtJZig2MikmJihoeSgiZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzIixmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuKChkPWMub3B0aW9ucyk9PW51bGw/dm9pZCAwOmQud2FpdEZvclRhZ3MpIT09ITB9KSxoeSgiZGV0ZWN0X2Zvcm1fc3VibWl0X2V2ZW50cyIsZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybigoZD1jLm9wdGlvbnMpPT1udWxsP3ZvaWQgMDpkLndhaXRGb3JUYWdzKSE9PSEwfSksaHkoImRldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cyIsZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybigoZD1jLm9wdGlvbnMpPT1udWxsP3ZvaWQgMDpkLmZpeE1pc3NpbmdBcGkpIT09ITB9KSl9O3ZhciBqRj1mdW5jdGlvbigpe3RoaXMuSD10aGlzLmdwcFN0cmluZz12b2lkIDB9O2pGLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuSD10aGlzLmdwcFN0cmluZz12b2lkIDB9O3ZhciBrRj1uZXcgakY7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStifSk7WzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErYn0pO1syLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDJdLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiBhK2J9KTtsdCh7R3U6MCxGdToxLEN1OjIseHU6MyxEdTo0LHl1OjUsRXU6NixBdTo3LEJ1Ojgsd3U6OSx6dToxMCxIdToxMX0pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gTnVtYmVyKGEpfSk7bHQoe0p1OjAsS3U6MSxJdToyfSkubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBOdW1iZXIoYSl9KTt2YXIgbEY9ZnVuY3Rpb24oYSxiLGMsZCl7cnQuY2FsbCh0aGlzKTt0aGlzLmZlPWI7dGhpcy5rZD1jO3RoaXMuYWM9ZDt0aGlzLkxhPW5ldyBNYXA7dGhpcy5oZT0wO3RoaXMuamE9bmV3IE1hcDt0aGlzLnlhPW5ldyBNYXA7dGhpcy5aPXZvaWQgMDt0aGlzLks9YX07d2EobEYscnQpO2xGLnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXMuSDt0aGlzLkxhLmNsZWFyKCk7dGhpcy5qYS5jbGVhcigpO3RoaXMueWEuY2xlYXIoKTt0aGlzLlomJihudCh0aGlzLkssIm1lc3NhZ2UiLHRoaXMuWiksZGVsZXRlIHRoaXMuWik7ZGVsZXRlIHRoaXMuSztkZWxldGUgdGhpcy5hYztydC5wcm90b3R5cGUuTi5jYWxsKHRoaXMpfTsKdmFyIG1GPWZ1bmN0aW9uKGEpe2lmKGEuSClyZXR1cm4gYS5IO2Eua2QmJmEua2QoYS5LKT9hLkg9YS5LOmEuSD1OcChhLkssYS5mZSk7dmFyIGI7cmV0dXJuKGI9YS5IKSE9bnVsbD9iOm51bGx9LG9GPWZ1bmN0aW9uKGEsYixjKXtpZihtRihhKSlpZihhLkg9PT1hLkspe3ZhciBkPWEuTGEuZ2V0KGIpO2QmJmQoYS5ILGMpfWVsc2V7dmFyIGU9YS5qYS5nZXQoYik7aWYoZSYmZS5kayl7bkYoYSk7dmFyIGY9KythLmhlO2EueWEuc2V0KGYse3BlOmUucGUsSXI6ZS5ubyhjKSxwZXJzaXN0ZW50OmI9PT0iYWRkRXZlbnRMaXN0ZW5lciJ9KTthLkgucG9zdE1lc3NhZ2UoZS5kayhjLGYpLCIqIil9fX0sbkY9ZnVuY3Rpb24oYSl7YS5afHwoYS5aPWZ1bmN0aW9uKGIpe2lmKGIuc291cmNlPT09YS5IKXRyeXt2YXIgYztjPWEuYWM/YS5hYyhiKTp2b2lkIDA7aWYoYyl7dmFyIGQ9Yy5ZcyxlPWEueWEuZ2V0KGQpO2lmKGUpe2UucGVyc2lzdGVudHx8YS55YS5kZWxldGUoZCk7dmFyIGY7KGY9CmUucGUpPT1udWxsfHxmLmNhbGwoZSxlLklyLGMucGF5bG9hZCl9fX1jYXRjaChnKXt9fSxtdChhLkssIm1lc3NhZ2UiLGEuWikpfTt2YXIgcEY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmxpc3RlbmVyLGQ9KDAsYS5fX2dwcCkoImFkZEV2ZW50TGlzdGVuZXIiLGMpO2QmJmMoZCwhMCl9LHFGPWZ1bmN0aW9uKGEsYil7KDAsYS5fX2dwcCkoInJlbW92ZUV2ZW50TGlzdGVuZXIiLGIubGlzdGVuZXIsYi5saXN0ZW5lcklkKX0sckY9e25vOmZ1bmN0aW9uKGEpe3JldHVybiBhLmxpc3RlbmVyfSxkazpmdW5jdGlvbihhLGIpe3ZhciBjPXt9O3JldHVybiBjLl9fZ3BwQ2FsbD17Y2FsbElkOmIsY29tbWFuZDoiYWRkRXZlbnRMaXN0ZW5lciIsdmVyc2lvbjoiMS4xIn0sY30scGU6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLl9fZ3BwUmV0dXJuO2EoYy5yZXR1cm5WYWx1ZSxjLnN1Y2Nlc3MpfX0sc0Y9e25vOmZ1bmN0aW9uKGEpe3JldHVybiBhLmxpc3RlbmVyfSxkazpmdW5jdGlvbihhLGIpe3ZhciBjPXt9O3JldHVybiBjLl9fZ3BwQ2FsbD17Y2FsbElkOmIsY29tbWFuZDoicmVtb3ZlRXZlbnRMaXN0ZW5lciIsdmVyc2lvbjoiMS4xIiwKcGFyYW1ldGVyOmEubGlzdGVuZXJJZH0sY30scGU6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLl9fZ3BwUmV0dXJuLGQ9Yy5yZXR1cm5WYWx1ZS5kYXRhO2E9PW51bGx8fGEoZCxjLnN1Y2Nlc3MpfX07ZnVuY3Rpb24gdEYoYSl7dmFyIGI9e307dmYoYS5kYXRhKT9iPUpTT04ucGFyc2UoYS5kYXRhKTpiPWEuZGF0YTtyZXR1cm57cGF5bG9hZDpiLFlzOmIuX19ncHBSZXR1cm4uY2FsbElkfX0KdmFyIHVGPWZ1bmN0aW9uKGEsYil7dmFyIGM7Yz0oYj09PXZvaWQgMD97fTpiKS50aW1lb3V0TXM7cnQuY2FsbCh0aGlzKTt0aGlzLmNhbGxlcj1uZXcgbEYoYSwiX19ncHBMb2NhdG9yIixmdW5jdGlvbihkKXtyZXR1cm4gdHlwZW9mIGQuX19ncHA9PT0iZnVuY3Rpb24ifSx0Rik7dGhpcy5jYWxsZXIuTGEuc2V0KCJhZGRFdmVudExpc3RlbmVyIixwRik7dGhpcy5jYWxsZXIuamEuc2V0KCJhZGRFdmVudExpc3RlbmVyIixyRik7dGhpcy5jYWxsZXIuTGEuc2V0KCJyZW1vdmVFdmVudExpc3RlbmVyIixxRik7dGhpcy5jYWxsZXIuamEuc2V0KCJyZW1vdmVFdmVudExpc3RlbmVyIixzRik7dGhpcy50aW1lb3V0TXM9YyE9bnVsbD9jOjUwMH07d2EodUYscnQpO3VGLnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7dGhpcy5jYWxsZXIuZGlzcG9zZSgpO3J0LnByb3RvdHlwZS5OLmNhbGwodGhpcyl9Owp1Ri5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9SHAoZnVuY3Rpb24oKXthKHZGLCEwKX0pLGQ9dGhpcy50aW1lb3V0TXM9PT0tMT92b2lkIDA6c2V0VGltZW91dChmdW5jdGlvbigpe2MoKX0sdGhpcy50aW1lb3V0TXMpO29GKHRoaXMuY2FsbGVyLCJhZGRFdmVudExpc3RlbmVyIix7bGlzdGVuZXI6ZnVuY3Rpb24oZSxmKXtjbGVhclRpbWVvdXQoZCk7dHJ5e3ZhciBnO3ZhciBoOygoaD1lLnBpbmdEYXRhKT09bnVsbD92b2lkIDA6aC5ncHBWZXJzaW9uKT09PXZvaWQgMHx8ZS5waW5nRGF0YS5ncHBWZXJzaW9uPT09IjEifHxlLnBpbmdEYXRhLmdwcFZlcnNpb249PT0iMS4wIj8oYi5yZW1vdmVFdmVudExpc3RlbmVyKGUubGlzdGVuZXJJZCksZz17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7aW50ZXJuYWxFcnJvclN0YXRlOjEsZ3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX0lTX0RFUFJFQ0FURURfU1BFQyIsCmFwcGxpY2FibGVTZWN0aW9uczpbLTFdfX0pOkFycmF5LmlzQXJyYXkoZS5waW5nRGF0YS5hcHBsaWNhYmxlU2VjdGlvbnMpP2c9ZTooYi5yZW1vdmVFdmVudExpc3RlbmVyKGUubGlzdGVuZXJJZCksZz17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7aW50ZXJuYWxFcnJvclN0YXRlOjIsZ3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX0VYUEVDVEVEX0FQUExJQ0FUSU9OX1NFQ1RJT05fQVJSQVkiLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfX0pO2EoZyxmKX1jYXRjaChsKXtpZihlPT1udWxsPzA6ZS5saXN0ZW5lcklkKXRyeXtiLnJlbW92ZUV2ZW50TGlzdGVuZXIoZS5saXN0ZW5lcklkKX1jYXRjaChuKXthKHdGLCEwKTtyZXR1cm59YSh4RiwhMCl9fX0pfTsKdUYucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSl7b0YodGhpcy5jYWxsZXIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLHtsaXN0ZW5lcjpmdW5jdGlvbigpe30sbGlzdGVuZXJJZDphfSl9Owp2YXIgeEY9e2V2ZW50TmFtZToic2lnbmFsU3RhdHVzIixkYXRhOiJyZWFkeSIscGluZ0RhdGE6e2ludGVybmFsRXJyb3JTdGF0ZToyLGdwcFN0cmluZzoiR1BQX0VSUk9SX1NUUklOR19VTkFWQUlMQUJMRSIsYXBwbGljYWJsZVNlY3Rpb25zOlstMV19LGxpc3RlbmVySWQ6LTF9LHZGPXtldmVudE5hbWU6InNpZ25hbFN0YXR1cyIsZGF0YToicmVhZHkiLHBpbmdEYXRhOntncHBTdHJpbmc6IkdQUF9FUlJPUl9TVFJJTkdfTElTVEVORVJfUkVHSVNUUkFUSU9OX1RJTUVPVVQiLGludGVybmFsRXJyb3JTdGF0ZToyLGFwcGxpY2FibGVTZWN0aW9uczpbLTFdfSxsaXN0ZW5lcklkOi0xfSx3Rj17ZXZlbnROYW1lOiJzaWduYWxTdGF0dXMiLGRhdGE6InJlYWR5IixwaW5nRGF0YTp7Z3BwU3RyaW5nOiJHUFBfRVJST1JfU1RSSU5HX1JFTU9WRV9FVkVOVF9MSVNURU5FUl9FUlJPUiIsaW50ZXJuYWxFcnJvclN0YXRlOjIsYXBwbGljYWJsZVNlY3Rpb25zOlstMV19LGxpc3RlbmVySWQ6LTF9O2Z1bmN0aW9uIHlGKGEpe3ZhciBiO2lmKCEoYj1hLnBpbmdEYXRhLnNpZ25hbFN0YXR1cz09PSJyZWFkeSIpKXt2YXIgYz1hLnBpbmdEYXRhLmFwcGxpY2FibGVTZWN0aW9ucztiPSFjfHxjLmxlbmd0aD09PTEmJmNbMF09PT0tMX1pZihiKXtrRi5ncHBTdHJpbmc9YS5waW5nRGF0YS5ncHBTdHJpbmc7dmFyIGQ9YS5waW5nRGF0YS5hcHBsaWNhYmxlU2VjdGlvbnMuam9pbigiLCIpO2tGLkg9ZH19ZnVuY3Rpb24gekYoKXt0cnl7dmFyIGE9bmV3IHVGKEEse3RpbWVvdXRNczotMX0pO21GKGEuY2FsbGVyKSYmYS5hZGRFdmVudExpc3RlbmVyKHlGKX1jYXRjaChiKXt9fTtmdW5jdGlvbiBBRigpe3ZhciBhPVtbImN2IixFKDEpXSxbInJ2IixFKDE0KV0sWyJ0YyIsY0EudGFncy5maWx0ZXIoZnVuY3Rpb24oZCl7cmV0dXJuIGR9KS5sZW5ndGhdXSxiPUpmKDE1KTtiJiZhLnB1c2goWyJ4IixiXSk7dmFyIGM9Q3AoKTtjJiZhLnB1c2goWyJ0YWdfZXhwIixjXSk7cmV0dXJuIGF9O3ZhciBCRj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPXt9O3RoaXMuSz17fTtmeihmdW5jdGlvbihiKXt2YXIgYz1iLmV2ZW50SWQsZD1iLnRmLGU9W10sZj1hLkhbY118fFtdO2YubGVuZ3RoJiZlLnB1c2goWyJoZiIsZi5qb2luKCIuIildKTt2YXIgZz1hLktbY118fFtdO2cubGVuZ3RoJiZlLnB1c2goWyJodCIsZy5qb2luKCIuIildKTtkJiYoZGVsZXRlIGEuSFtjXSxkZWxldGUgYS5LW2NdKTtyZXR1cm4gZX0pfSxDRj1mdW5jdGlvbigpe3ZhciBhPTA7cmV0dXJuIGZ1bmN0aW9uKGIpe3N3aXRjaChiKXtjYXNlIDE6YXw9MTticmVhaztjYXNlIDI6YXw9MjticmVhaztjYXNlIDM6YXw9NH1yZXR1cm4gYX19LERGO3ZhciBFRj1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5IPSIiO2ZuLk4mJk0oNTE2KSYmZnooZnVuY3Rpb24oKXt2YXIgYj1bXTthLkgmJmIucHVzaChbInBzZCIsYS5IXSk7cmV0dXJuIGJ9KX0sRkY7ZnVuY3Rpb24gR0YoKXtyZXR1cm4hMX0KZnVuY3Rpb24gSEYoKXt2YXIgYT17fTtyZXR1cm4gZnVuY3Rpb24oYixjLGQpe319O2Z1bmN0aW9uIElGKCl7dmFyIGE9SkY7cmV0dXJuIGZ1bmN0aW9uKGIsYyxkKXt2YXIgZT1kJiZkLmV2ZW50O0tGKGMpO3ZhciBmPUJoKGIpP3ZvaWQgMDoxLGc9bmV3IGtiO0diKGMsZnVuY3Rpb24ocix0KXt2YXIgdT1VZCh0LHZvaWQgMCxmKTt1PT09dm9pZCAwJiZ0IT09dm9pZCAwJiZQKDQ0KTtnLnNldChyLHUpfSk7YS5RYihRZigpKTt2YXIgaD17Um46aGcoYiksZXZlbnRJZDplPT1udWxsP3ZvaWQgMDplLmlkLHByaW9yaXR5SWQ6ZSE9PXZvaWQgMD9lLnByaW9yaXR5SWQ6dm9pZCAwLHByaW9yaXR5UXVldWU6ZSE9PXZvaWQgMD9lLnByaW9yaXR5UXVldWU6dm9pZCAwLHdnOmUhPT12b2lkIDA/ZnVuY3Rpb24ocil7ZS5sZC53ZyhyKX06dm9pZCAwLFBiOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9LGxvZzpmdW5jdGlvbigpe30sTnI6e2luZGV4OmQ9PW51bGw/dm9pZCAwOmQuaW5kZXgsdHlwZTpkPT1udWxsP3ZvaWQgMDpkLnR5cGUsbmFtZTpkPT1udWxsP3ZvaWQgMDpkLm5hbWV9LAppdDohIUtBKGIsMyksb3JpZ2luYWxFdmVudERhdGE6ZT09bnVsbD92b2lkIDA6ZS5vcmlnaW5hbEV2ZW50RGF0YX07ZSYmZS5jYWNoZWRNb2RlbFZhbHVlcyYmKGguY2FjaGVkTW9kZWxWYWx1ZXM9e2d0bTplLmNhY2hlZE1vZGVsVmFsdWVzLmd0bSxlY29tbWVyY2U6ZS5jYWNoZWRNb2RlbFZhbHVlcy5lY29tbWVyY2V9KTtpZihHRigpKXt2YXIgbD1IRigpLG4scDtoLkFiPXt3azpbXSx5Zzp7fSxqYzpmdW5jdGlvbihyLHQsdSl7dD09PTEmJihuPXIpO3Q9PT03JiYocD11KTtsKHIsdCx1KX0sZWk6VmgoKX07aC5sb2c9ZnVuY3Rpb24ocil7dmFyIHQ9T2EuYXBwbHkoMSxhcmd1bWVudHMpO24mJmwobiw0LHtsZXZlbDpyLHNvdXJjZTpwLG1lc3NhZ2U6dH0pfX0KdmFyIHE9cmYoYSxoLFtiLGddKTthLlFiKCk7cSBpbnN0YW5jZW9mIFRhJiYocS50eXBlPT09InJldHVybiI/cT1xLmRhdGE6cT12b2lkIDApO3JldHVybiBUZChxLHZvaWQgMCxmKX19ZnVuY3Rpb24gS0YoYSl7dmFyIGI9YS5ndG1PblN1Y2Nlc3MsYz1hLmd0bU9uRmFpbHVyZTt5YihiKSYmKGEuZ3RtT25TdWNjZXNzPWZ1bmN0aW9uKCl7YmQoYil9KTt5YihjKSYmKGEuZ3RtT25GYWlsdXJlPWZ1bmN0aW9uKCl7YmQoYyl9KX07dmFyIExGPWZ1bmN0aW9uKGEpe2l4KGEpfTt2YXIgTUY9ZnVuY3Rpb24oYSl7VihhLEguSi50Zyxjby5pYS5jYil9O2Z1bmN0aW9uIE5GKCl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMCl9O3ZhciBPRj1bRi5ELnppXS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEuc2xpY2UoMil9KTt2YXIgUEY9ZnVuY3Rpb24oYSl7VShhLEYuRC56aSxhbCg4LE5GKSl9O2Z1bmN0aW9uIFFGKGEpe31RRi5QPSJpbnRlcm5hbC5hZGRBZHNDbGlja0lkcyI7ZnVuY3Rpb24gUkYoYSxiKXt2YXIgYz10aGlzO31SRi5wdWJsaWNOYW1lPSJhZGRDb25zZW50TGlzdGVuZXIiO3ZhciBTRj0hMTtmdW5jdGlvbiBURihhKXtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYilpZihTRil0cnl7YVtiXSgpfWNhdGNoKGMpe1AoNzcpfWVsc2UgYVtiXSgpfWZ1bmN0aW9uIFVGKGEsYixjKXt2YXIgZD10aGlzLGU7aWYoIWxoKGEpfHwhaGgoYil8fCFtaChjKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiZnVuY3Rpb24iLCJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtURihbZnVuY3Rpb24oKXtMKGQsImxpc3Rlbl9kYXRhX2xheWVyIixhKX1dKTtlPXlCKCkuYWRkTGlzdGVuZXIoYSxUZChiLHZvaWQgMCwxKSxjPT09bnVsbD92b2lkIDA6Yyk7cmV0dXJuIGV9VUYuUD0iaW50ZXJuYWwuYWRkRGF0YUxheWVyRXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24gVkYoYSxiLGMpe31WRi5wdWJsaWNOYW1lPSJhZGREb2N1bWVudEV2ZW50TGlzdGVuZXIiO2Z1bmN0aW9uIFdGKGEsYixjLGQpe31XRi5wdWJsaWNOYW1lPSJhZGRFbGVtZW50RXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24gWEYoYSl7cmV0dXJuIGEuVC54YigpfTtmdW5jdGlvbiBZRihhKXt9WUYucHVibGljTmFtZT0iYWRkRXZlbnRDYWxsYmFjayI7CnZhciBaRj1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIj9hOlN0cmluZyhyaigpKX0sYkc9ZnVuY3Rpb24oYSxiKXskRihhLCJpbml0IiwhMSl8fChhRyhhLCJpbml0IiwhMCksYigpKX0sJEY9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWNHKGEpO3JldHVybiBPYihkLGIsYyl9LGRHPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWNHKGEpLGY9T2IoZSxiLGQpLGc9YyhmKTtyZXR1cm4gZVtiXT1nfSxhRz1mdW5jdGlvbihhLGIsYyl7Y0coYSlbYl09Y30sY0c9ZnVuY3Rpb24oYSl7dmFyIGI9a2ooImF1dG9FdmVudHNTZXR0aW5ncyIsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2IuaGFzT3duUHJvcGVydHkoYSl8fChiW2FdPXt9KTtyZXR1cm4gYlthXX0sZUc9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXtldmVudDpiLCJndG0uZWxlbWVudCI6YSwiZ3RtLmVsZW1lbnRDbGFzc2VzIjpvZChhLCJjbGFzc05hbWUiKSwiZ3RtLmVsZW1lbnRJZCI6YS5mb3J8fGVkKGEsImlkIil8fAoiIiwiZ3RtLmVsZW1lbnRUYXJnZXQiOmEuZm9ybVRhcmdldHx8b2QoYSwidGFyZ2V0Iil8fCIifTtjJiYoZFsiZ3RtLnRyaWdnZXJzIl09Yy5qb2luKCIsIikpO2RbImd0bS5lbGVtZW50VXJsIl09KGEuYXR0cmlidXRlcyYmYS5hdHRyaWJ1dGVzLmZvcm1hY3Rpb24/YS5mb3JtQWN0aW9uOiIiKXx8YS5hY3Rpb258fG9kKGEsImhyZWYiKXx8YS5zcmN8fGEuY29kZXx8YS5jb2RlYmFzZXx8IiI7cmV0dXJuIGR9OwpmdW5jdGlvbiBpRyhhKXtpZihhLmZvcm0pe3ZhciBiO3JldHVybigoYj1hLmZvcm0pPT1udWxsPzA6Yi50YWdOYW1lKT9hLmZvcm06Qi5nZXRFbGVtZW50QnlJZChhLmZvcm0pfXJldHVybiBoZChhLFsiZm9ybSJdLDEwMCl9OwpmdW5jdGlvbiBtRyhhKXt9bUcuUD0iaW50ZXJuYWwuYWRkRm9ybUFiYW5kb25tZW50TGlzdGVuZXIiO2Z1bmN0aW9uIG5HKGEsYixjLGQpe30KbkcuUD0iaW50ZXJuYWwuYWRkRm9ybURhdGEiOwpmdW5jdGlvbiBzRyhhKXt9c0cuUD0iaW50ZXJuYWwuYWRkR2FTZW5kTGlzdGVuZXIiO2Z1bmN0aW9uIHRHKGEpe2lmKCFhKXJldHVybnt9O3ZhciBiPWEuTnI7cmV0dXJuIEpBKGIudHlwZSxiLmluZGV4LGIubmFtZSl9ZnVuY3Rpb24gdUcoYSl7aWYoIWEpcmV0dXJue307dmFyIGI9e29yaWdpbmF0aW5nRW50aXR5OnRHKGEpfTthLnByaW9yaXR5UXVldWUmJihiLnByaW9yaXR5UXVldWU9YS5wcmlvcml0eVF1ZXVlKTtyZXR1cm4gYn07ZnVuY3Rpb24gQ0coYSl7dmFyIGI9bWooInpvbmVzIik7cmV0dXJuIGI/Yi5nZXRJc0FsbG93ZWRGbih3aygpLGEpOmZ1bmN0aW9uKCl7cmV0dXJuITB9fWZ1bmN0aW9uIERHKCl7dmFyIGE9bWooInpvbmVzIik7YSYmYS51bnJlZ2lzdGVyQ2hpbGQod2soKSl9CmZ1bmN0aW9uIEVHKCl7a0IodmsoKSxmdW5jdGlvbihhKXt2YXIgYj1hLm9yaWdpbmFsRXZlbnREYXRhWyJndG0udW5pcXVlRXZlbnRJZCJdLGM9bWooInpvbmVzIik7cmV0dXJuIGM/Yy5pc0FjdGl2ZSh3aygpLGIpOiEwfSk7aEIodmsoKSxmdW5jdGlvbihhKXt2YXIgYixjO2I9YS5lbnRpdHlJZDtjPWEuc2VjdXJpdHlHcm91cHM7cmV0dXJuIENHKE51bWJlcihhLm9yaWdpbmFsRXZlbnREYXRhWyJndG0udW5pcXVlRXZlbnRJZCJdKSkoYixjKX0pfTt2YXIgRkc9ZnVuY3Rpb24oYSxiKXt0aGlzLnRhZ0lkPWE7dGhpcy5jYW5vbmljYWxJZD1ifTsKZnVuY3Rpb24gR0coYSxiKXt2YXIgYz10aGlzO3JldHVybiBhfUdHLlA9ImludGVybmFsLmxvYWRHb29nbGVUYWciO2Z1bmN0aW9uIEhHKGEpe3JldHVybiBuZXcgS2QoIiIsZnVuY3Rpb24oYil7dmFyIGM9dGhpcy5ldmFsdWF0ZShiKTtpZihjIGluc3RhbmNlb2YgS2QpcmV0dXJuIG5ldyBLZCgiIixmdW5jdGlvbigpe3ZhciBkPU9hLmFwcGx5KDAsYXJndW1lbnRzKSxlPXRoaXMsZj1FZChYRih0aGlzKSxudWxsKTtmLmV2ZW50SWQ9YS5ldmVudElkO2YucHJpb3JpdHlJZD1hLnByaW9yaXR5SWQ7Zi5vcmlnaW5hbEV2ZW50RGF0YT1hLm9yaWdpbmFsRXZlbnREYXRhO3ZhciBnPWQubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBlLmV2YWx1YXRlKGwpfSksaD10aGlzLlQud2IoKTtoLnVlKGYpO3JldHVybiBjLk5jLmFwcGx5KGMsW2hdLmNvbmNhdCh3KGcpKSl9KX0pfTtmdW5jdGlvbiBJRyhhLGIsYyl7dmFyIGQ9dGhpczt9SUcuUD0iaW50ZXJuYWwuYWRkR29vZ2xlVGFnUmVzdHJpY3Rpb24iOwpmdW5jdGlvbiBQRyhhLGIpe31QRy5QPSJpbnRlcm5hbC5hZGRIaXN0b3J5Q2hhbmdlTGlzdGVuZXIiO2Z1bmN0aW9uIFFHKGEsYixjKXt9UUcucHVibGljTmFtZT0iYWRkV2luZG93RXZlbnRMaXN0ZW5lciI7ZnVuY3Rpb24gUkcoYSxiKXtyZXR1cm4hMH1SRy5wdWJsaWNOYW1lPSJhbGlhc0luV2luZG93IjtmdW5jdGlvbiBTRyhhLGIsYyl7fVNHLlA9ImludGVybmFsLmFwcGVuZFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gVEcoYSl7dmFyIGI7cmV0dXJuIGJ9ClRHLnB1YmxpY05hbWU9ImNhbGxJbldpbmRvdyI7ZnVuY3Rpb24gVUcoYSl7fVVHLnB1YmxpY05hbWU9ImNhbGxMYXRlciI7ZnVuY3Rpb24gVkcoYSl7fVZHLlA9ImNhbGxPbkRvbVJlYWR5IjtmdW5jdGlvbiBXRyhhKXt9V0cuUD0iY2FsbE9uV2luZG93TG9hZCI7dmFyIFlHPWZ1bmN0aW9uKGEsYil7dmFyIGM9bm0oWEcpfHx7fSxkPWNbYV18fHt9O2lmKGRbYl0pcmV0dXJuITE7dmFyIGU9bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxkKTtlW2JdPSEwO3ZhciBmPW5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sYyk7ZlthXT1lO21tKFhHLGYpO3JldHVybiEwfSxYRz1qbS5iYS5ocjtmdW5jdGlvbiBaRyhhLGIpe2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBjPVlHKGEsYik7cmV0dXJuIGN9WkcuUD0iaW50ZXJuYWwuY2xhaW1EZXN0aW5hdGlvbiI7ZnVuY3Rpb24gJEcoYSxiKXt2YXIgYztyZXR1cm4gY30kRy5QPSJpbnRlcm5hbC5jb21wdXRlR3RtUGFyYW1ldGVyIjtmdW5jdGlvbiBhSChhLGIpe3ZhciBjPXRoaXM7aWYoIWhoKGEpfHwhamgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbImZ1bmN0aW9uIiwiYXJyYXkiXSxhcmd1bWVudHMpO2JwKGZ1bmN0aW9uKCl7YS5pbnZva2UoYy5UKX0sVGQoYikpO31hSC5QPSJpbnRlcm5hbC5jb25zZW50U2NoZWR1bGVGaXJzdFRyeSI7ZnVuY3Rpb24gYkgoYSxiKXt2YXIgYz10aGlzO2lmKCFoaChhKXx8IWpoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJmdW5jdGlvbiIsImFycmF5Il0sYXJndW1lbnRzKTthcChmdW5jdGlvbihkKXthLmludm9rZShjLlQsVWQoZCkpfSxUZChiKSk7fWJILlA9ImludGVybmFsLmNvbnNlbnRTY2hlZHVsZVJldHJ5IjtmdW5jdGlvbiBjSChhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGM9YTtpZigha20oYykpdGhyb3cgRXJyb3IoImNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIHJlcXVpcmVzIHZhbGlkIENyb3NzQ29udGFpbmVyU2NoZW1hIGtleS4iKTt2YXIgZD1ubShjKTtiPVVkKGQsdGhpcy5ULDEpO3JldHVybiBifWNILlA9ImludGVybmFsLmNvcHlGcm9tQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiBkSChhLGIpe3ZhciBjO3ZhciBlPVVkKGMsdGhpcy5ULEJoKFhGKHRoaXMpLlBiKCkpPzI6MSk7ZT09PXZvaWQgMCYmYyE9PXZvaWQgMCYmUCg0NSk7cmV0dXJuIGV9ZEgucHVibGljTmFtZT0iY29weUZyb21EYXRhTGF5ZXIiOwpmdW5jdGlvbiBlSChhKXt2YXIgYj12b2lkIDA7cmV0dXJuIGJ9ZUguUD0iaW50ZXJuYWwuY29weUZyb21EYXRhTGF5ZXJDYWNoZSI7ZnVuY3Rpb24gZkgoYSl7dmFyIGI7cmV0dXJuIGJ9ZkgucHVibGljTmFtZT0iY29weUZyb21XaW5kb3ciO2Z1bmN0aW9uIGdIKGEpe3ZhciBiPXZvaWQgMDtyZXR1cm4gVWQoYix0aGlzLlQsMSl9Z0guUD0iaW50ZXJuYWwuY29weUtleUZyb21XaW5kb3ciO3ZhciBoSD1mdW5jdGlvbihhKXtyZXR1cm4gYT09PWNvLmlhLmNiJiZmby5IW2FdPT09Ym8uTWEuVWUmJiFYbyhGLkQua2EpfTt2YXIgaUg9ZnVuY3Rpb24oKXtyZXR1cm4iMCJ9LGpIPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09InN0cmluZyIpcmV0dXJuIiI7dmFyIGI9WyJnY2xpZCIsImRjbGlkIiwid2JyYWlkIiwiX2dsIl07TSgxMDIpJiZiLnB1c2goImdicmFpZCIpO3JldHVybiBTaihhLGIsIjAiKX07dmFyIGtIPXt9LGxIPXt9LG1IPXt9LG5IPXt9LG9IPXt9LHBIPXt9LHFIPXt9LHJIPXt9LHNIPXt9LHRIPXt9LHVIPXt9LHZIPXt9LHdIPXt9LHhIPXt9LHlIPXt9LHpIPXt9LEFIPXt9LEJIPXt9LENIPXt9LERIPXt9LEVIPXt9LEZIPXt9LEdIPXt9LEhIPXt9LElIPXt9LEpIPXt9LEtIPShKSFtGLkQuZmJdPShrSFsyXT1baEhdLGtIKSxKSFtGLkQuWmZdPShsSFsyXT1baEhdLGxIKSxKSFtGLkQuSmldPShtSFsyXT1baEhdLG1IKSxKSFtGLkQuZ21dPShuSFsyXT1baEhdLG5IKSxKSFtGLkQuaG1dPShvSFsyXT1baEhdLG9IKSxKSFtGLkQuaW1dPShwSFsyXT1baEhdLHBIKSxKSFtGLkQuam1dPShxSFsyXT1baEhdLHFIKSxKSFtGLkQua21dPShySFsyXT1baEhdLHJIKSxKSFtGLkQuQmNdPShzSFsyXT1baEhdLHNIKSxKSFtGLkQuY2ddPSh0SFsyXT1baEhdLHRIKSxKSFtGLkQuZGddPSh1SFsyXT1baEhdLHVIKSxKSFtGLkQuZWddPSh2SFsyXT1baEhdLHZIKSxKSFtGLkQuZmddPSh3SFsyXT0KW2hIXSx3SCksSkhbRi5ELmdnXT0oeEhbMl09W2hIXSx4SCksSkhbRi5ELmhnXT0oeUhbMl09W2hIXSx5SCksSkhbRi5ELmlnXT0oekhbMl09W2hIXSx6SCksSkhbRi5ELmpnXT0oQUhbMl09W2hIXSxBSCksSkhbRi5ELmxiXT0oQkhbMV09W2hIXSxCSCksSkhbRi5ELkRkXT0oQ0hbMV09W2hIXSxDSCksSkhbRi5ELktkXT0oREhbMV09W2hIXSxESCksSkhbRi5ELkVlXT0oRUhbMV09W2hIXSxFSCksSkhbRi5ELkJmXT0oRkhbMV09W2Z1bmN0aW9uKGEpe3JldHVybiBNKDEwMikmJmhIKGEpfV0sRkgpLEpIW0YuRC5VY109KEdIWzFdPVtoSF0sR0gpLEpIW0YuRC56YV09KEhIWzFdPVtoSF0sSEgpLEpIW0YuRC5VYV09KElIWzFdPVtoSF0sSUgpLEpIKSxMSD17fSxNSD0oTEhbRi5ELmxiXT1pSCxMSFtGLkQuRGRdPWlILExIW0YuRC5LZF09aUgsTEhbRi5ELkVlXT1pSCxMSFtGLkQuQmZdPWlILExIW0YuRC5VY109ZnVuY3Rpb24oYSl7aWYoIUNkKGEpKXJldHVybnt9O3ZhciBiPUVkKGEsCm51bGwpO2RlbGV0ZSBiLm1hdGNoX2lkO3JldHVybiBifSxMSFtGLkQuemFdPWpILExIW0YuRC5VYV09akgsTEgpLE5IPXt9LE9IPXt9LFBIPShPSFtILkouWWFdPShOSFsyXT1baEhdLE5IKSxPSCksUUg9e307dmFyIFJIPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuSD1hO3RoaXMuTj1iO3RoaXMuUj1jO3RoaXMuWj1kfTtSSC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP2NvLmlhLmdkOmE7aWYoIXRoaXMuTi5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiKGEpfSkpcmV0dXJuIHRoaXMuUi5zb21lKGZ1bmN0aW9uKGIpe3JldHVybiBiKGEpfSk/dGhpcy5aKHRoaXMuSCk6dGhpcy5IfTtSSC5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiBBZCh0aGlzLkgpPT09ImFycmF5Inx8Q2QodGhpcy5IKT9FZCh0aGlzLkgsbnVsbCk6dGhpcy5IfTsKdmFyIFNIPWZ1bmN0aW9uKCl7fSxUSD1mdW5jdGlvbihhLGIpe3RoaXMuY29uZGl0aW9ucz1hO3RoaXMuSD1ifSxVSD1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT0oKGQ9YS5jb25kaXRpb25zW2JdKT09bnVsbD92b2lkIDA6ZFsyXSl8fFtdLGYsZz0oKGY9YS5jb25kaXRpb25zW2JdKT09bnVsbD92b2lkIDA6ZlsxXSl8fFtdO3JldHVybiBuZXcgUkgoYyxlLGcsYS5IW2JdfHxTSCl9LFZILFdIO3ZhciBZSD1mdW5jdGlvbihhKXthLks9ITA7YS5IPSExO2lmKElmKDUyKSl7aWYoTSg1MTYpJiZYSCgpKXt2YXIgYjthLnNldHRpbmdzPShiPWRhdGEucHJvZHVjdFNldHRpbmdzKSE9bnVsbD9iOnt9O2EuSD0hMH1lbHNle3ZhciBjO2Euc2V0dGluZ3M9KGM9cHJvZHVjdFNldHRpbmdzKSE9bnVsbD9jOnt9fXByb2R1Y3RTZXR0aW5ncz12b2lkIDA7ZGF0YS5wcm9kdWN0U2V0dGluZ3M9dm9pZCAwO3ZhciBkOyhkPUZGKSE9bnVsbCYmZm4uTiYmTSg1MTYpJiYoZC5IPWEuSD8iMSI6IjAiKX19LCRIPWZ1bmN0aW9uKGEpe3ZhciBiPVpIO2IuS3x8WUgoYik7cmV0dXJuIGIuc2V0dGluZ3NbYV19LFpIPW5ldyBmdW5jdGlvbigpe3RoaXMuc2V0dGluZ3M9e307dGhpcy5LPXRoaXMuSD0hMX07CmZ1bmN0aW9uIFhIKCl7aWYoIWRhdGEucHJvZHVjdFNldHRpbmdzJiYhcHJvZHVjdFNldHRpbmdzKXJldHVybiEwO2lmKCFkYXRhLnByb2R1Y3RTZXR0aW5nc3x8IXByb2R1Y3RTZXR0aW5nc3x8T2JqZWN0LmtleXMoZGF0YS5wcm9kdWN0U2V0dGluZ3MpLmxlbmd0aCE9PU9iamVjdC5rZXlzKHByb2R1Y3RTZXR0aW5ncykubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgYSBpbiBwcm9kdWN0U2V0dGluZ3MpaWYoIWRhdGEucHJvZHVjdFNldHRpbmdzLmhhc093blByb3BlcnR5KGEpfHxkYXRhLnByb2R1Y3RTZXR0aW5nc1thXS5wcmVBdXRvUGlpIT09cHJvZHVjdFNldHRpbmdzW2FdLnByZUF1dG9QaWkpcmV0dXJuITE7cmV0dXJuITB9O3ZhciBhST1mdW5jdGlvbihhLGIsYyl7dGhpcy5ldmVudE5hbWU9Yjt0aGlzLk09Yzt0aGlzLkg9e307dGhpcy5pc0Fib3J0ZWQ9ITE7dGhpcy50YXJnZXQ9YTt0aGlzLm1ldGFkYXRhPXt9O2Zvcih2YXIgZD1jLmV2ZW50TWV0YWRhdGF8fHt9LGU9bShPYmplY3Qua2V5cyhkKSksZj1lLm5leHQoKTshZi5kb25lO2Y9ZS5uZXh0KCkpe3ZhciBnPWYudmFsdWU7Vih0aGlzLGcsZFtnXSl9fSxSPWZ1bmN0aW9uKGEsYil7dmFyIGMsZDtyZXR1cm4oYz1hLkhbYl0pPT1udWxsP3ZvaWQgMDooZD1jLmdldFZhbHVlKT09bnVsbD92b2lkIDA6ZC5jYWxsKGMsUShhLEguSi50ZykpfSxldT1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LmtleXMoYS5IKX0sVT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5ILGU7Yz09PXZvaWQgMD9lPXZvaWQgMDooVkghPW51bGx8fChWSD1uZXcgVEgoS0gsTUgpKSxlPVVIKFZILGIsYykpO2RbYl09ZX07CmFJLnByb3RvdHlwZS5tZXJnZUhpdERhdGFGb3JLZXk9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU7Yz0oZD10aGlzLkhbYV0pPT1udWxsP3ZvaWQgMDooZT1kLkspPT1udWxsP3ZvaWQgMDplLmNhbGwoZCk7aWYoIWMpcmV0dXJuIFUodGhpcyxhLGIpLCEwO2lmKCFDZChjKSlyZXR1cm4hMTtVKHRoaXMsYSxuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LGMsYikpO3JldHVybiEwfTt2YXIgYkk9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/e306Yjtmb3IodmFyIGM9bShPYmplY3Qua2V5cyhhLkgpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPXZvaWQgMCxnPXZvaWQgMCxoPXZvaWQgMDtiW2VdPShmPWEuSFtlXSk9PW51bGw/dm9pZCAwOihoPShnPWYpLkspPT1udWxsP3ZvaWQgMDpoLmNhbGwoZyl9cmV0dXJuIGJ9OwphSS5wcm90b3R5cGUuY29weVRvSGl0RGF0YT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Tyh0aGlzLk0sYSk7ZD09PXZvaWQgMCYmKGQ9Yik7aWYoemIoZCkmJmMhPT12b2lkIDApdHJ5e2Q9YyhkKX1jYXRjaChlKXt9ZCE9PXZvaWQgMCYmVSh0aGlzLGEsZCl9Owp2YXIgUT1mdW5jdGlvbihhLGIpe3ZhciBjPWEubWV0YWRhdGFbYl07aWYoYj09PUguSi50Zyl7dmFyIGQ7cmV0dXJuIGM9PW51bGw/dm9pZCAwOihkPWMuSyk9PW51bGw/dm9pZCAwOmQuY2FsbChjKX12YXIgZTtyZXR1cm4gYz09bnVsbD92b2lkIDA6KGU9Yy5nZXRWYWx1ZSk9PW51bGw/dm9pZCAwOmUuY2FsbChjLFEoYSxILkoudGcpKX0sVj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5tZXRhZGF0YSxlO2M9PT12b2lkIDA/ZT1jOihXSCE9bnVsbHx8KFdIPW5ldyBUSChQSCxRSCkpLGU9VUgoV0gsYixjKSk7ZFtiXT1lfSxjST1mdW5jdGlvbihhLGIpe2I9Yj09PXZvaWQgMD97fTpiO2Zvcih2YXIgYz1tKE9iamVjdC5rZXlzKGEubWV0YWRhdGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZSxmPXZvaWQgMCxnPXZvaWQgMCxoPXZvaWQgMDtiW2VdPShmPWEubWV0YWRhdGFbZV0pPT1udWxsP3ZvaWQgMDooaD0oZz1mKS5LKT09bnVsbD92b2lkIDA6CmguY2FsbChnKX1yZXR1cm4gYn0sZEk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSRIKGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO3JldHVybiBkJiZkW2JdIT09dm9pZCAwP2RbYl06Y30sWnU9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IGFJKChiPT1udWxsP3ZvaWQgMDpiLnRhcmdldCl8fGEudGFyZ2V0LChiPT1udWxsP3ZvaWQgMDpiLmV2ZW50TmFtZSl8fGEuZXZlbnROYW1lLChiPT1udWxsP3ZvaWQgMDpiLk0pfHxhLk0pLGQ9YkkoYSksZT1tKE9iamVjdC5rZXlzKGQpKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtVKGMsZyxkW2ddKX1mb3IodmFyIGg9Y0koYSksbD1tKE9iamVjdC5rZXlzKGgpKSxuPWwubmV4dCgpOyFuLmRvbmU7bj1sLm5leHQoKSl7dmFyIHA9bi52YWx1ZTtWKGMscCxoW3BdKX1jLmlzQWJvcnRlZD1hLmlzQWJvcnRlZDtyZXR1cm4gY30sZUk9ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLGM9Yi5ldmVudElkLGQ9Yi5wcmlvcml0eUlkOwpyZXR1cm4gZD9jKyJfIitkOlN0cmluZyhjKX07YUkucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbigpe3ZhciBhPW9tKGptLmJhLlNpLHt9KSxiPWVJKHRoaXMpLGM9dGhpcy50YXJnZXQuZGVzdGluYXRpb25JZDthW2JdfHwoYVtiXT17fSk7YVtiXVtjXT12aygpO3ZhciBkPWptLmJhLlNpO2lmKGttKGQpKXt2YXIgZTsoZT1sbShkKSk9PW51bGx8fGUubm90aWZ5KCl9fTthSS5wcm90b3R5cGUuY2FuQmVBY2NlcHRlZD1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5TaSk7aWYoIWIpcmV0dXJuITA7dmFyIGM9YltlSSh0aGlzKV07aWYoIWMpcmV0dXJuITA7dmFyIGQ9Y1thIT1udWxsP2E6dGhpcy50YXJnZXQuZGVzdGluYXRpb25JZF07cmV0dXJuIGQ9PT12b2lkIDB8fGQ9PT12aygpfTtmdW5jdGlvbiBmSShhKXtyZXR1cm57Z2V0RGVzdGluYXRpb25JZDpmdW5jdGlvbigpe3JldHVybiBhLnRhcmdldC5kZXN0aW5hdGlvbklkfSxnZXRFdmVudE5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gYS5ldmVudE5hbWV9LHNldEV2ZW50TmFtZTpmdW5jdGlvbihiKXthLmV2ZW50TmFtZT1ifSxnZXRIaXREYXRhOmZ1bmN0aW9uKGIpe3JldHVybiBSKGEsYil9LHNldEhpdERhdGE6ZnVuY3Rpb24oYixjKXtVKGEsYixjKX0sc2V0SGl0RGF0YUlmTm90RGVmaW5lZDpmdW5jdGlvbihiLGMpe1IoYSxiKT09PXZvaWQgMCYmVShhLGIsYyl9LGNvcHlUb0hpdERhdGE6ZnVuY3Rpb24oYixjKXthLmNvcHlUb0hpdERhdGEoYixjKX0sZ2V0TWV0YWRhdGE6ZnVuY3Rpb24oYil7cmV0dXJuIFEoYSxiKX0sc2V0TWV0YWRhdGE6ZnVuY3Rpb24oYixjKXtWKGEsYixjKX0saXNBYm9ydGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGEuaXNBYm9ydGVkfSxhYm9ydDpmdW5jdGlvbigpe2EuaXNBYm9ydGVkPSEwfSwKZ2V0RnJvbUV2ZW50Q29udGV4dDpmdW5jdGlvbihiKXtyZXR1cm4gTyhhLk0sYil9LHJiOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LGdldEhpdEtleXM6ZnVuY3Rpb24oKXtyZXR1cm4gZXUoYSl9LGdldE1lcmdlZFZhbHVlczpmdW5jdGlvbihiKXtyZXR1cm4gYS5NLmdldE1lcmdlZFZhbHVlcyhiLDMpfSxtZXJnZUhpdERhdGFGb3JLZXk6ZnVuY3Rpb24oYixjKXtyZXR1cm4gQ2QoYyk/YS5tZXJnZUhpdERhdGFGb3JLZXkoYixjKTohMX0sYWNjZXB0OmZ1bmN0aW9uKCl7YS5hY2NlcHQoKX0sY2FuQmVBY2NlcHRlZDpmdW5jdGlvbihiKXtyZXR1cm4gYS5jYW5CZUFjY2VwdGVkKGIpfX19O2Z1bmN0aW9uIGdJKGEsYil7dmFyIGM7aWYoIWVoKGEpfHwhZmgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCIsIk9iamVjdHx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBkPVRkKGIpfHx7fSxlPVRkKGEsdGhpcy5ULDEpLnJiKCksZj1lLk07ZC5vbWl0RXZlbnRDb250ZXh0JiYoZj1KQyhuZXcgeUMoZS5NLmV2ZW50SWQsZS5NLnByaW9yaXR5SWQpKSk7dmFyIGc9bmV3IGFJKGUudGFyZ2V0LGUuZXZlbnROYW1lLGYpO2lmKCFkLm9taXRIaXREYXRhKWZvcih2YXIgaD1iSShlKSxsPW0oT2JqZWN0LmtleXMoaCkpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKXt2YXIgcD1uLnZhbHVlO1UoZyxwLGhbcF0pfWlmKGQub21pdE1ldGFkYXRhKWcubWV0YWRhdGE9e307ZWxzZSBmb3IodmFyIHE9Y0koZSkscj1tKE9iamVjdC5rZXlzKHEpKSx0PXIubmV4dCgpOyF0LmRvbmU7dD0Kci5uZXh0KCkpe3ZhciB1PXQudmFsdWU7VihnLHUscVt1XSl9Zy5pc0Fib3J0ZWQ9ZS5pc0Fib3J0ZWQ7Yz1VZChmSShnKSx0aGlzLlQsMSk7cmV0dXJuIGN9Z0kuUD0iaW50ZXJuYWwuY29weVByZUhpdCI7ZnVuY3Rpb24gaEkoYSxiKXt2YXIgYz1udWxsO3JldHVybiBVZChjLHRoaXMuVCwyKX1oSS5wdWJsaWNOYW1lPSJjcmVhdGVBcmd1bWVudHNRdWV1ZSI7ZnVuY3Rpb24gaUkoYSl7cmV0dXJuIFVkKGZ1bmN0aW9uKGMpe3ZhciBkPVNBKCk7aWYodHlwZW9mIGM9PT0iZnVuY3Rpb24iKWQoZnVuY3Rpb24oKXtjKGZ1bmN0aW9uKGYsZyxoKXt2YXIgbD0KU0EoKSxuPWwmJmwuZ2V0QnlOYW1lJiZsLmdldEJ5TmFtZShmKTtyZXR1cm4obmV3IEEuZ2FwbHVnaW5zLkxpbmtlcihuKSkuZGVjb3JhdGUoZyxoKX0pfSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGMpKXt2YXIgZT1TdHJpbmcoY1swXSkuc3BsaXQoIi4iKTtiW2UubGVuZ3RoPT09MT9lWzBdOmVbMV1dJiZkLmFwcGx5KG51bGwsYyl9ZWxzZSBpZihjPT09ImlzTG9hZGVkIilyZXR1cm4hIWQubG9hZGVkfSx0aGlzLlQsMSl9aUkuUD0iaW50ZXJuYWwuY3JlYXRlR2FDb21tYW5kUXVldWUiO2Z1bmN0aW9uIGpJKGEpe3JldHVybiBVZChmdW5jdGlvbigpe2lmKCF5YihlLnB1c2gpKXRocm93IEVycm9yKCJPYmplY3QgYXQgIithKyIgaW4gd2luZG93IGlzIG5vdCBhbiBhcnJheS4iKTtlLnB1c2guYXBwbHkoZSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSx0aGlzLlQsCkJoKFhGKHRoaXMpLlBiKCkpPzI6MSl9akkucHVibGljTmFtZT0iY3JlYXRlUXVldWUiO2Z1bmN0aW9uIGtJKGEsYil7dmFyIGM9bnVsbDtpZighbGgoYSl8fCFtaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dHJ5e3ZhciBkPShifHwiIikuc3BsaXQoIiIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4iaWciLmluZGV4T2YoZSk+PTB9KS5qb2luKCIiKTtjPW5ldyBQZChuZXcgUmVnRXhwKGEsZCkpfWNhdGNoKGUpe31yZXR1cm4gY31rSS5QPSJpbnRlcm5hbC5jcmVhdGVSZWdleCI7ZnVuY3Rpb24gbEkoYSl7fWxJLlA9ImludGVybmFsLmRlY2xhcmVDb25zZW50U3RhdGUiO2Z1bmN0aW9uIG1JKGEpe3ZhciBiPSIiO3JldHVybiBifW1JLlA9ImludGVybmFsLmRlY29kZVVybEh0bWxFbnRpdGllcyI7ZnVuY3Rpb24gbkkoYSxiLGMpe3ZhciBkO3JldHVybiBkfW5JLlA9ImludGVybmFsLmRlY29yYXRlVXJsV2l0aEdhQ29va2llcyI7ZnVuY3Rpb24gb0koKXt9b0kuUD0iaW50ZXJuYWwuZGVmZXJDdXN0b21FdmVudHMiO2Z1bmN0aW9uIHBJKGEsYil7dHJ5e3JldHVybiBhLmNsb3Nlc3QoYil9Y2F0Y2goYyl7cmV0dXJuIG51bGx9fTtmdW5jdGlvbiBxSSgpe3ZhciBhPUEuc2NyZWVuO3JldHVybnt3aWR0aDphP2Eud2lkdGg6MCxoZWlnaHQ6YT9hLmhlaWdodDowfX0KZnVuY3Rpb24gckkoYSl7aWYoQi5oaWRkZW4pcmV0dXJuITA7dmFyIGI9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihiLnRvcD09PWIuYm90dG9tfHxiLmxlZnQ9PT1iLnJpZ2h0fHwhQS5nZXRDb21wdXRlZFN0eWxlKXJldHVybiEwO3ZhciBjPUEuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpO2lmKGMudmlzaWJpbGl0eT09PSJoaWRkZW4iKXJldHVybiEwO2Zvcih2YXIgZD1hLGU9YztkOyl7aWYoZS5kaXNwbGF5PT09Im5vbmUiKXJldHVybiEwO3ZhciBmPWUub3BhY2l0eSxnPWUuZmlsdGVyO2lmKGcpe3ZhciBoPWcuaW5kZXhPZigib3BhY2l0eSgiKTtoPj0wJiYoZz1nLnN1YnN0cmluZyhoKzgsZy5pbmRleE9mKCIpIixoKSksZy5jaGFyQXQoZy5sZW5ndGgtMSk9PT0iJSImJihnPWcuc3Vic3RyaW5nKDAsZy5sZW5ndGgtMSkpLGY9U3RyaW5nKE1hdGgubWluKE51bWJlcihnKSxOdW1iZXIoZikpKSl9aWYoZiE9PXZvaWQgMCYmTnVtYmVyKGYpPD0wKXJldHVybiEwOyhkPWQucGFyZW50RWxlbWVudCkmJgooZT1BLmdldENvbXB1dGVkU3R5bGUoZCxudWxsKSl9cmV0dXJuITF9CnZhciB0ST1mdW5jdGlvbihhKXt2YXIgYj1zSSgpLGM9Yi5oZWlnaHQsZD1iLndpZHRoLGU9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPWUuYm90dG9tLWUudG9wLGc9ZS5yaWdodC1lLmxlZnQ7cmV0dXJuIGYmJmc/KDEtTWF0aC5taW4oKE1hdGgubWF4KDAtZS5sZWZ0LDApK01hdGgubWF4KGUucmlnaHQtZCwwKSkvZywxKSkqKDEtTWF0aC5taW4oKE1hdGgubWF4KDAtZS50b3AsMCkrTWF0aC5tYXgoZS5ib3R0b20tYywwKSkvZiwxKSk6MH0sc0k9ZnVuY3Rpb24oKXt2YXIgYT1CLmJvZHksYj1CLmRvY3VtZW50RWxlbWVudHx8YSYmYS5wYXJlbnRFbGVtZW50LGMsZDtpZihCLmNvbXBhdE1vZGUmJkIuY29tcGF0TW9kZSE9PSJCYWNrQ29tcGF0IiljPWI/Yi5jbGllbnRIZWlnaHQ6MCxkPWI/Yi5jbGllbnRXaWR0aDowO2Vsc2V7dmFyIGU9ZnVuY3Rpb24oZixnKXtyZXR1cm4gZiYmZz9NYXRoLm1pbihmLGcpOk1hdGgubWF4KGYsZyl9O2M9ZShiP2IuY2xpZW50SGVpZ2h0OjAsYT8KYS5jbGllbnRIZWlnaHQ6MCk7ZD1lKGI/Yi5jbGllbnRXaWR0aDowLGE/YS5jbGllbnRXaWR0aDowKX1yZXR1cm57d2lkdGg6ZCxoZWlnaHQ6Y319O3ZhciB2ST1mdW5jdGlvbihhKXtpZih1SSl7dmFyIGI9YWwoMjQsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO2lmKGE+PTAmJmE8Yi5sZW5ndGgmJmJbYV0pe3ZhciBjOyhjPWJbYV0pPT1udWxsfHxjLmRpc2Nvbm5lY3QoKTtiW2FdPXZvaWQgMH19ZWxzZSBBLmNsZWFySW50ZXJ2YWwoYSl9LHlJPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyljW2RdPjE/Y1tkXT0xOmNbZF08MCYmKGNbZF09MCk7aWYodUkpe3ZhciBlPSExO2JkKGZ1bmN0aW9uKCl7ZXx8d0koYSxiLGMpKCl9KTtyZXR1cm4geEkoZnVuY3Rpb24oZil7ZT0hMDtmb3IodmFyIGc9e0hnOjB9O2cuSGc8Zi5sZW5ndGg7Zz17SGc6Zy5IZ30sZy5IZysrKWJkKGZ1bmN0aW9uKGgpe3JldHVybiBmdW5jdGlvbigpe2EoZltoLkhnXSl9fShnKSl9LApiLGMpfXJldHVybiBjZCh3SShhLGIsYyksMUUzKX0sd0k9ZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoaCxsKXt2YXIgbj17dG9wOjAsYm90dG9tOjAscmlnaHQ6MCxsZWZ0OjAsd2lkdGg6MCxoZWlnaHQ6MH0scD17Ym91bmRpbmdDbGllbnRSZWN0OmguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaW50ZXJzZWN0aW9uUmF0aW86bCxpbnRlcnNlY3Rpb25SZWN0Om4saXNJbnRlcnNlY3Rpbmc6bD4wLHJvb3RCb3VuZHM6bix0YXJnZXQ6aCx0aW1lOk5iKCl9O2JkKGZ1bmN0aW9uKCl7YShwKX0pfWZvcih2YXIgZT1bXSxmPVtdLGc9MDtnPGIubGVuZ3RoO2crKyllLnB1c2goMCksZi5wdXNoKC0xKTtjLnNvcnQoZnVuY3Rpb24oaCxsKXtyZXR1cm4gaC1sfSk7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBoPTA7aDxiLmxlbmd0aDtoKyspe3ZhciBsPXRJKGJbaF0pO2lmKGw+ZVtoXSlmb3IoO2ZbaF08Yy5sZW5ndGgtMSYmbD49Y1tmW2hdKzFdOylkKGJbaF0sbCksZltoXSsrO2Vsc2UgaWYobDwKZVtoXSlmb3IoO2ZbaF0+PTAmJmw8PWNbZltoXV07KWQoYltoXSxsKSxmW2hdLS07ZVtoXT1sfX19LHhJPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9bmV3IEEuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoYSx7dGhyZXNob2xkOmN9KSxlPTA7ZTxiLmxlbmd0aDtlKyspZC5vYnNlcnZlKGJbZV0pO2Zvcih2YXIgZj1hbCgyNCxmdW5jdGlvbigpe3JldHVybltdfSksZz0wO2c8Zi5sZW5ndGg7ZysrKWlmKCFmW2ddKXJldHVybiBmW2ddPWQsZztyZXR1cm4gZi5wdXNoKGQpLTF9LHVJPSEoIUEuSW50ZXJzZWN0aW9uT2JzZXJ2ZXJ8fCFBLkludGVyc2VjdGlvbk9ic2VydmVyRW50cnkpOwp2YXIgSkk9ZnVuY3Rpb24oYSl7dmFyIGIsYz0oYj1hPT1udWxsP3ZvaWQgMDphLmluY2x1ZGVTZWxlY3RvcikhPW51bGw/YjohMCxkLGU9KGQ9YT09bnVsbD92b2lkIDA6YS5pbmNsdWRlVmlzaWJpbGl0eSkhPW51bGw/ZDohMCxmLGc9KGY9YT09bnVsbD92b2lkIDA6YS5zZWxlY3RNdWx0aXBsZUVsZW1lbnRzKSE9bnVsbD9mOiExLGg9KGE9PW51bGw/dm9pZCAwOmEuZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnMpfHxbXSxsPShhPT1udWxsP3ZvaWQgMDphLmZpZWxkRmlsdGVycyl8fHtlbWFpbDohMCxwaG9uZTohMSxhZGRyZXNzOiExfSxuPWFsKDYsZnVuY3Rpb24oKXtyZXR1cm57fX0pLHA9ekkoe2luY2x1ZGVTZWxlY3RvcjpjLGluY2x1ZGVWaXNpYmlsaXR5OmUsZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM6aCxmaWVsZEZpbHRlcnM6bH0pLHE9bltwXTtpZihxJiZOYigpLXEudGltZXN0YW1wPDIwMCl7dmFyIHI9cS5yZXN1bHQsdDsoci5lbGVtZW50cy5zb21lKGZ1bmN0aW9uKHFhKXtyZXR1cm4gcWEuZGl9KXx8CigodD1yLmdpKT09bnVsbD8wOnQuZGkpKSYmR3UoVC5XLnJqKTtyZXR1cm4gcn12YXIgdT1BSSgpLHY9dS5zdGF0dXMseD1bXSx5LHosQz1bXTtpZihNKDU2OCkpe3ZhciBEPUJJKGwpLEk9Q0kodS5lbGVtZW50cyxEKSxHPURJKEkpLE49RUkoRyxoKSxTPUZJKE4pO3k9Uy5maWx0ZXIoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5EYT09PUZELkJifSlbMF07Zm9yKHZhciBXPVtdLGVhPXtJZzowfTtlYS5JZzxELmxlbmd0aDtlYT17SWc6ZWEuSWd9LGVhLklnKyspe3ZhciBqYT1OLmZpbHRlcihmdW5jdGlvbihxYSl7cmV0dXJuIGZ1bmN0aW9uKGliKXtyZXR1cm4gaWIuRGE9PT1EW3FhLklnXX19KGVhKSk7amEubGVuZ3RoPjEwJiYodj0iMyIsamE9amEuc2xpY2UoMCwxMCkpO1c9Vy5jb25jYXQoamEpfU49VzshZyYmUyYmKE49Uyk7Zm9yKHZhciBmYT0wO2ZhPE4ubGVuZ3RoO2ZhKyspe3ZhciBzYT1OW2ZhXTtzYS5EYSE9PUZELktoJiZDLnB1c2goR0koc2EsYyxlKSl9fWVsc2V7aWYobC5lbWFpbCl7dmFyIGRhPQpISSh1LmVsZW1lbnRzKTt4PUVJKGRhLGgpO3k9SUkoeCk7ZGEubGVuZ3RoPjEwJiYodj0iMyIpfSFnJiZ5JiYoeD1beV0pO2Zvcih2YXIgbWE9MDttYTx4Lmxlbmd0aDttYSsrKUMucHVzaChHSSh4W21hXSxjLGUpKTtDPUMuc2xpY2UoMCwxMCl9eSYmKHo9R0koeSxjLGUpKTt2YXIgUGE9e2VsZW1lbnRzOkMsZ2k6eixzdGF0dXM6dn07bltwXT17dGltZXN0YW1wOk5iKCkscmVzdWx0OlBhfTt2YXIgRmE7KFBhLmVsZW1lbnRzLnNvbWUoZnVuY3Rpb24ocWEpe3JldHVybiBxYS5kaX0pfHwoKEZhPVBhLmdpKT09bnVsbD8wOkZhLmRpKSkmJkd1KFQuVy5yaik7cmV0dXJuIFBhfSxEST1mdW5jdGlvbihhKXt2YXIgYj1hLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELktofSksYz1hLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5EYT09PUZELlhkfSk7aWYoYS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUuRGE9PT1GRC5jZX0pLmxlbmd0aD09PTAmJmMubGVuZ3RoPT09CjApZm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF0sZj1lLkNhLnNwbGl0KCIgIik7Zi5sZW5ndGg+MSYmYS5wdXNoKHtDYTpmWzBdLERhOkZELlhkLGVsZW1lbnQ6ZS5lbGVtZW50LE9jOmUuT2N9LHtDYTpmLnNsaWNlKDEpLmpvaW4oIiAiKSxEYTpGRC5jZSxlbGVtZW50OmUuZWxlbWVudCxPYzplLk9jfSl9Zm9yKHZhciBnLGg9MCxsLG49ZnVuY3Rpb24odSl7cmV0dXJuIHUuRGE9PT1GRC5lZSYmdS5DYS5sZW5ndGg+PTMmJnUuQ2EubGVuZ3RoPD00fSxwPTA7cDxhLmxlbmd0aDtwKyspe3ZhciBxPWFbcF07aWYobihxKSYmZyYmcS5lbGVtZW50LnBhcmVudEVsZW1lbnQ9PT1nJiZoPDMpe2lmKGgrPTEsbCs9cS5DYSxoPT09Myl7dmFyIHI9cC1oKzE7aWYobD1LSVtGRC5lZV0ubmEobCkpYVtyXS5DYT1sfX1lbHNlIGlmKGg9MCxsPSIiLGc9dm9pZCAwLG4ocSkpe2grKztsPXEuQ2E7dmFyIHQ9dm9pZCAwO2c9KHQ9cS5lbGVtZW50LnBhcmVudEVsZW1lbnQpIT1udWxsPwp0OnZvaWQgMH19cmV0dXJuIGEuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiFuKHUpfSl9LE9JPWZ1bmN0aW9uKGEsYil7aWYoYS52YWx1ZSYmTEkuaW5kZXhPZigoYS50eXBlfHwidGV4dCIpLnRvTG93ZXJDYXNlKCkpIT09LTEpe3ZhciBjPWEuYXV0b2NvbXBsZXRlO2lmKGMpZm9yKHZhciBkPWMuc3BsaXQoIiAiKSxlPTA7ZTxkLmxlbmd0aDtlKyspe3ZhciBmPU1JKGEudmFsdWUsYixkW2VdKTtpZihmKXJldHVybiBmfXZhciBnLGg9W2EubmFtZSxhLmlkLChnPWEuYXJpYUxhYmVsKSE9bnVsbD9nOnZvaWQgMCxhLnBsYWNlaG9sZGVyXSxsPWEucGFyZW50RWxlbWVudDtsJiZsLnRhZ05hbWU9PT0iTEFCRUwiJiZoLnB1c2gobC5pbm5lclRleHQpO3ZhciBuPWEucHJldmlvdXNFbGVtZW50U2libGluZztuJiZuLnRhZ05hbWU9PT0iTEFCRUwiJiYhbi5odG1sRm9yJiZoLnB1c2gobi5pbm5lclRleHQpO2lmKGEuaWQpe3ZhciBwPVtdO3RyeXtwPWRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvckFsbCgnbGFiZWxbZm9yPSInKwphLmlkKyciXScpfWNhdGNoKEQpe31mb3IodmFyIHE9MDtxPHAubGVuZ3RoO3ErKyloLnB1c2gocFtxXS5pbm5lclRleHQpfWg9aC5maWx0ZXIoZnVuY3Rpb24oRCl7cmV0dXJuIEQmJkQudHJpbSgpfSk7Zm9yKHZhciByLHQ9MCx1PTA7dTxoLmxlbmd0aDt1Kyspe3ZhciB2PU5JKGEsYixoW3VdKTtpZih2KXt2YXIgeD12LHk9eC5DYSx6PXguRGEsQz14LlhzO0M+dCYmKHQ9QyxyPXtDYTp5LERhOnp9KX19cmV0dXJuIHJ9fSxOST1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspe3ZhciBlPWJbZF07aWYoS0lbZV0ubmUpe3ZhciBmPUtJW2VdLm5lLmV4ZWMoYy50cmltKCkpO2lmKGYpe3ZhciBnPWEsaD1bXSxsPWcudmFsdWUudHJpbSgpO2wmJmgucHVzaChsKTtpZihnLnRhZ05hbWU9PT0iU0VMRUNUIil0cnl7dmFyIG49Zy5xdWVyeVNlbGVjdG9yKCdbdmFsdWU9IicrZy52YWx1ZSsnIl0nKSxwPW4mJm4uaW5uZXJUZXh0LnRyaW0oKTtwJiZoLnB1c2gocCl9Y2F0Y2godSl7fWZvcih2YXIgcT0KaCxyPXZvaWQgMCx0PTA7dDxxLmxlbmd0aCYmIXI7dCsrKXI9S0lbZV0ubmEocVt0XSk7aWYocilyZXR1cm57RGE6ZSxDYTpyLFhzOmZbMF0ubGVuZ3RoL2MudHJpbSgpLmxlbmd0aH19fX19LE1JPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTtpZihLSVtlXS5hdXRvY29tcGxldGUmJktJW2VdLmF1dG9jb21wbGV0ZS5pbmRleE9mKGMpPj0wKXt2YXIgZj1LSVtlXS5uYShhLnRyaW0oKSk7aWYoZilyZXR1cm57RGE6ZSxDYTpmfX19fSxCST1mdW5jdGlvbihhKXt2YXIgYj1bXTthLmVtYWlsJiZiLnB1c2goRkQuQmIpO2EucGhvbmUmJmIucHVzaChGRC5lZSk7YS5hZGRyZXNzJiZiLnB1c2goRkQuWGQsRkQuY2UsRkQueGYsRkQucWcsRkQuS2gpO3JldHVybiBifSxDST1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWFbZF0sZj1lLmVsZW1lbnQsZz1lLk9jLGg7YTp7dmFyIGw9ZixuPWIsCnA9bC5pbm5lckhUTUw7UEkuaW5kZXhPZihsLnRhZ05hbWUpPj0wJiYocD1sLnZhbHVlfHxwKTtpZihwKXt2YXIgcTtiOntmb3IodmFyIHI9cCx0PW4sdT0wO3U8dC5sZW5ndGg7dSsrKXt2YXIgdj10W3VdO2lmKCFLSVt2XS5tZSl7dmFyIHg9S0lbdl0ubmEoci50cmltKCkpO2lmKHgpe3E9e0RhOnYsQ2E6eH07YnJlYWsgYn19fXE9dm9pZCAwfWlmKHEpe2g9cTticmVhayBhfWlmKFBJLmluZGV4T2YobC50YWdOYW1lKSE9PS0xKXtoPU9JKGwsbik7YnJlYWsgYX19aD12b2lkIDB9dmFyIHk9aDtpZih5KXt2YXIgej15O2MucHVzaCh7Q2E6ei5DYSxEYTp6LkRhLGVsZW1lbnQ6ZixPYzpnfSl9fXJldHVybiBjfSxGST1mdW5jdGlvbihhKXt2YXIgYj1bXTtpZihhLmxlbmd0aD09PTApcmV0dXJuIGI7dmFyIGM9e30sZDtmb3IoZCBpbiBGRClpZihjPXtWZzpjLlZnfSxjLlZnPWQsRkQuaGFzT3duUHJvcGVydHkoYy5WZykpe3ZhciBlPWEuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmdW5jdGlvbihnKXtyZXR1cm4gZy5EYT09PQpGRFtmLlZnXX19KGMpKTtlLmxlbmd0aCE9PTAmJihGRFtjLlZnXT09PUZELkJiJiYoZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiFSSS50ZXN0KGYuQ2EpfSksZT1RSShlLGZ1bmN0aW9uKGYpe3JldHVybiBmLmVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT09IklOUFVUIn0pLGU9UUkoZSxmdW5jdGlvbihmKXtyZXR1cm4hckkoZi5lbGVtZW50KX0pKSxiLnB1c2goZVswXSkpfXJldHVybiBifSxHST1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5lbGVtZW50LGU9YS5PYyxmPXtDYTphLkNhLHR5cGU6YS5EYSx0YWdOYW1lOmQudGFnTmFtZX07aWYoYil7dmFyIGcsaD1TSShkKTtpZihnPShlP2UrInwiK2g6aCkuc2xpY2UoMCxUSSkpZi5xdWVyeVNlbGVjdG9yPWd9YyYmKGYuaXNWaXNpYmxlPSFySShkKSk7ZSYmKGYuZGk9ITApO3JldHVybiBmfSx6ST1mdW5jdGlvbihhKXt2YXIgYixjLGQsZTtiPWEuaW5jbHVkZVNlbGVjdG9yO2M9YS5pbmNsdWRlVmlzaWJpbGl0eTtkPWEuZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnM7CmU9YS5maWVsZEZpbHRlcnM7dmFyIGY9ISFiKyIuIishIWM7ZC5sZW5ndGgmJihmKz0iLiIrZC5qb2luKCIuIikpO3JldHVybiBmKz0iLiIrZS5lbWFpbCsiLiIrZS5waG9uZSsiLiIrZS5hZGRyZXNzfSxJST1mdW5jdGlvbihhKXtpZihhLmxlbmd0aCE9PTApe3ZhciBiO2I9UUkoYSxmdW5jdGlvbihjKXtyZXR1cm4hUkkudGVzdChjLkNhKX0pO2I9UUkoYixmdW5jdGlvbihjKXtyZXR1cm4gYy5lbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKT09PSJJTlBVVCJ9KTtiPVFJKGIsZnVuY3Rpb24oYyl7cmV0dXJuIXJJKGMuZWxlbWVudCl9KTtyZXR1cm4gYlswXX19LEVJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKyl7Zm9yKHZhciBlPSEwLGY9MDtmPGIubGVuZ3RoO2YrKyl7dmFyIGc9YltmXTtpZihnJiZwSShhW2RdLmVsZW1lbnQsZykpe2U9ITE7YnJlYWt9fWFbZF0uRGE9PT1GRC5CYiYmTSg2MDIpJiYoUkkudGVzdChhW2RdLkNhKXx8YVtkXS5lbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKT09PQoiQSImJmFbZF0uZWxlbWVudC5oYXNBdHRyaWJ1dGUoImhyZWYiKSYmYVtkXS5lbGVtZW50LmdldEF0dHJpYnV0ZSgiaHJlZiIpLmluZGV4T2YoIm1haWx0bzoiKSE9PS0xP2U9ITE6YVtkXS5lbGVtZW50LmNsb3Nlc3QoImZvb3RlciIpIT09bnVsbCYmKGU9ITEpKTtlJiZjLnB1c2goYVtkXSl9cmV0dXJuIGN9LFFJPWZ1bmN0aW9uKGEsYil7aWYoYS5sZW5ndGg8PTEpcmV0dXJuIGE7dmFyIGM9YS5maWx0ZXIoYik7cmV0dXJuIGMubGVuZ3RoPT09MD9hOmN9LFNJPWZ1bmN0aW9uKGEpe2lmKGE9PT1CLmJvZHkpcmV0dXJuImJvZHkiO2lmKGEuaWQpcmV0dXJuIiMiK2EuaWQ7dmFyIGI9YS5wYXJlbnRFbGVtZW50O2lmKGIpe3ZhciBjPVNJKGIpLGQ9VUkoYSxiKSxlPVZJKGEpKyI6bnRoLWNoaWxkKCIrZCsiKSI7cmV0dXJuIGM/YysiPiIrZTplfXZhciBmPWEucGFyZW50Tm9kZTtpZihmIGluc3RhbmNlb2YgU2hhZG93Um9vdCl7dmFyIGc9VUkoYSxmKTtyZXR1cm4gVkkoYSkrIjpudGgtY2hpbGQoIisKZysiKSJ9cmV0dXJuIGEudGFnTmFtZT9hLnRhZ05hbWUudG9Mb3dlckNhc2UoKToiIn0sVkk9ZnVuY3Rpb24oYSl7aWYoYS5jbGFzc0xpc3QmJmEuY2xhc3NMaXN0Lmxlbmd0aD4wKXt2YXIgYj1BcnJheS5mcm9tKGEuY2xhc3NMaXN0LGZ1bmN0aW9uKGMpe3JldHVybiBDU1MuZXNjYXBlKGMpfSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjLmxlbmd0aD4wfSk7aWYoYi5sZW5ndGg+MClyZXR1cm4iLiIrYi5qb2luKCIuIil9cmV0dXJuIiJ9LFVJPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWIuY2hpbGRyZW4sZD0wO2Q8Yy5sZW5ndGg7ZCsrKWlmKGNbZF09PT1hKXJldHVybiBkKzE7cmV0dXJuIDF9LEhJPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1kLmVsZW1lbnQsZj1kLk9jLGc9ZS50ZXh0Q29udGVudDtlLnRhZ05hbWUudG9VcHBlckNhc2UoKT09PSJJTlBVVCImJmUudmFsdWUmJihnPWUudmFsdWUpO2lmKGcpe3ZhciBoPQpnLm1hdGNoKEtEKTtpZihoKXt2YXIgbD1oWzBdO0xEKGwpfHxiLnB1c2goe2VsZW1lbnQ6ZSxDYTpsLERhOkZELkJiLE9jOmZ9KX19fXJldHVybiBifSxBST1mdW5jdGlvbigpe3ZhciBhPVtdLGI9Qi5ib2R5O2lmKCFiKXJldHVybntlbGVtZW50czphLHN0YXR1czoiNCJ9O3ZhciBjPVdJKGIsMCwiIixhKTtyZXR1cm57ZWxlbWVudHM6YSxzdGF0dXM6Y319LFdJPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT1hLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKSxmPWUubGVuZ3RoPjFFND8iMiI6IjEiLGc9MDtnPE1hdGgubWluKGUubGVuZ3RoLDFFNCk7ZysrKXt2YXIgaD1lW2ddO2lmKCEoWEkuaW5kZXhPZihoLnRhZ05hbWUudG9VcHBlckNhc2UoKSk+PTApJiZoLmNoaWxkcmVuIGluc3RhbmNlb2YgSFRNTENvbGxlY3Rpb24pe3ZhciBsPSExO2lmKE0oNTgyKSYmaC5zaGFkb3dSb290JiZiPDEpe3ZhciBuPVNJKGgpO1dJKGguc2hhZG93Um9vdCxiKzEsYz9jKyJ8IituOm4sZCk9PT0iMiImJgooZj0iMiIpO2w9ITB9dmFyIHA9ITE7aWYoIWwpZm9yKHZhciBxPTA7cTxNYXRoLm1pbihoLmNoaWxkRWxlbWVudENvdW50LDFFNCk7cSsrKWlmKCEoWUkuaW5kZXhPZihoLmNoaWxkcmVuW3FdLnRhZ05hbWUudG9VcHBlckNhc2UoKSk+PTApKXtwPSEwO2JyZWFrfSghcCYmIWx8fE0oNTY4KSYmUEkuaW5kZXhPZihoLnRhZ05hbWUpIT09LTEpJiZkLnB1c2goe2VsZW1lbnQ6aCxPYzpiPjA/Yzp2b2lkIDB9KX19cmV0dXJuIGZ9LFJJPS9zdXBwb3J0fG5vcmVwbHkvaSxYST0iU0NSSVBUIFNUWUxFIElNRyBTVkcgUEFUSCBCUiBOT1NDUklQVCBURVhUQVJFQSIuc3BsaXQoIiAiKSxZST1bIkJSIl0sVEk9TmYoNzAsNTApLFBJPVsiSU5QVVQiLCJTRUxFQ1QiXSxMST0idGV4dCB0ZWwgc2VhcmNoIG51bWJlciBoaWRkZW4gZW1haWwgc2VsZWN0LW9uZSIuc3BsaXQoIiAiKSxaST1SZWdFeHAoInBob25lfG1vYmlsZXxjb250YWN0Lj9udW1iZXJ8dGVsZWZvbm51bW1lcnx0ZWxlZm9ub3x0ZWxcdTAwZTlmb25vfHRlbGZpeGV8XHU5NmZiXHU4YTcxfHRlbGVmb25lfHRlbGVtb3ZlbHxcdTA0NDJcdTA0MzVcdTA0M2JcdTA0MzVcdTA0NDRcdTA0M2VcdTA0M2R8XHUwOTJlXHUwOTRiXHUwOTJjXHUwOTNlXHUwOTA3XHUwOTMyfFx1NzUzNVx1OGJkZHxcdTYyNGJcdTY3M2FcdTUzZjd8XHUwZDJlXHUwZDRhXHUwZDJjXHUwZDQ4XHUwZDMyXHUwZDRkXHUyMDBkfChefFstX10pdGVsWy1fXT8oXFxkKykqKFxcWy4qXFxdKSokfCg/Olx1YzgwNFx1ZDY1NHxcdWQ1NzhcdWI0ZGNcdWQzZjB8XHVkNzM0XHViMzAwXHVkM2YwfFx1ZDczNFx1YjMwMFx1YzgwNFx1ZDY1NCkoPzouP1x1YmM4OFx1ZDYzOCk/fChcXGJ8X3xcXCopdGVsZWZvbihcXGJ8X3xcXCopfHRlbGVwb258cG9uc2VsfChub21vcnxub1xcLj8pLj8oaHB8aGFuZHBob25lKSIsCiJpIiksJEk9UmVnRXhwKCJebmFtZXxmdWxsLj9uYW1lfHlvdXIuP25hbWV8Y3VzdG9tZXIuP25hbWV8YmlsbC4/bmFtZXxzaGlwLj9uYW1lfG5hbWUuKmZpcnN0LipsYXN0fGZpcnN0YW5kbGFzdG5hbWV8Y29udGFjdC4/KG5hbWV8cGVyc29uKXxub21icmUuKnkuKmFwZWxsaWRvc3xebm9tKD8hW2EtekEtWl0pfFx1MzA0YVx1NTQwZFx1NTI0ZHxcdTZjMGZcdTU0MGR8Xm5vbWV8XHUwNjQ2XHUwNjI3XHUwNjQ1LipcdTA2NDZcdTA2MjdcdTA2NDUuKlx1MDYyZVx1MDYyN1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyZlx1MDZhZlx1MDZjY3xcdTU5ZDNcXHMqXHU1NDBkfFx1MDQzYVx1MDQzZVx1MDQzZFx1MDQ0Mlx1MDQzMFx1MDQzYVx1MDQ0Mlx1MDQzZFx1MDQzZVx1MDQzNS4/XHUwNDNiXHUwNDM4XHUwNDQ2XHUwNDNlfChcXGJ8X3xcXCopYWRbXHUwMTMxXT8gc295YWRbXHUwMTMxXT8oXFxifF98XFwqKXxcdWMxMzFcdWJhODV8bmFtYS4/KGxlbmdrYXB8cGVuZXJpbWF8a2FtdSkiLAoiaSIpLGFKPVJlZ0V4cCgiZmlyc3QuKm5hbWV8aW5pdGlhbHN8Zm5hbWV8Zmlyc3QkfGdpdmVuLipuYW1lfHZvcm5hbWV8bm9tYnJlfGZvcmVuYW1lfHByXHUwMGU5bm9tfHByZW5vbXxcdTU0MGR8bm9tZXxcdTA0MThcdTA0M2NcdTA0NGZ8XHUwNjQ2XHUwNjI3XHUwNjQ1fFx1Yzc3NFx1Yjk4NHxcdTBkMmFcdTBkNDdcdTBkMzBcdTBkNGR8KFxcYnxffFxcKikoaXNpbXxhZHxhZChpfFx1MDEzMXxpbml6fFx1MDEzMW5cdTAxMzF6KT8pKFxcYnxffFxcKil8XHUwOTI4XHUwOTNlXHUwOTJlfG5hbWEgZGVwYW4iLCJpIiksYko9UmVnRXhwKCJsYXN0LipuYW1lfGxuYW1lfHN1cm5hbWUoPyFcXGQpfGxhc3QkfHNlY29uZG5hbWV8ZmFtaWx5LipuYW1lfG5hY2huYW1lfGFwZWxsaWRvcz98ZmFtaWxsZXxebm9tKD8hW2EtekEtWl0pfGNvZ25vbWV8XHU1OWQzfGFwZWxpZG9zfHN1cmVuYW1lfHNvYnJlbm9tZXxcdTA0MjRcdTA0MzBcdTA0M2NcdTA0MzhcdTA0M2JcdTA0MzhcdTA0NGZ8XHUwNjQ2XHUwNjI3XHUwNjQ1LipcdTA2MmVcdTA2MjdcdTA2NDZcdTA2NDhcdTA2MjdcdTA2MmZcdTA2YWZcdTA2Y2N8XHUwOTA5XHUwOTJhXHUwOTI4XHUwOTNlXHUwOTJlfFx1MGQyZVx1MGQzMVx1MGQ0MVx1MGQyYVx1MGQ0N1x1MGQzMFx1MGQ0ZHwoXFxifF98XFwqKShzb3lpc2ltfHNveWFkKGl8XHUwMTMxfGluaXp8XHUwMTMxblx1MDEzMXopPykoXFxifF98XFwqKXxcXGJcdWMxMzEoPzpbXlx1YmE4NV18XFxiKXxuYW1hIGJlbGFrYW5nIiwKImkiKSxjSj1SZWdFeHAoImNvdW50cnl8Y291bnRyaWVzfHBhXHUwMGVkc3xwYWlzfChcXGJ8XylsYW5kKFxcYnxfKSg/IS4qKG1hcmsuKikpfChefFteKFx1NTE2NXxcdTUxZmEpXSlcdTU2ZmR8XHU1NmZkXHU1YmI2fFx1YWQ2ZFx1YWMwMHxcdWIwOThcdWI3N2N8KFxcYnxfKShcdTAwZmNsa2V8dWxjZXx1bGtlKShcXGJ8Xyl8XHUwNmE5XHUwNjM0XHUwNjQ4XHUwNjMxfG5lZ2FyYSIsImkiKSxkSj1SZWdFeHAoIihefFteLl0pemlwfHBvc3RhbHxwb3N0Lipjb2RlfHBjb2RlfHBpbi4/Y29kZXxwb3N0bGVpdHphaGx8XFxiY3BcXGJ8XFxiY2RwXFxifFxcYmNhcFxcYnxcdTkwZjVcdTRmYmZcdTc1NmFcdTUzZjd8Y29kaWdvfGNvZHBvc3xcXGJjZXBcXGJ8XHUwNDFmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDRiXHUwNDM5Lj9cdTA0MThcdTA0M2RcdTA0MzRcdTA0MzVcdTA0M2FcdTA0NDF8XHUwOTJhXHUwOTNmXHUwOTI4Lj9cdTA5MTVcdTA5NGJcdTA5MjF8XHUwZDJhXHUwZDNmXHUwZDI4XHUwZDRkXHUyMDBkXHUwZDE1XHUwZDRiXHUwZDIxXHUwZDRkfFx1OTBhZVx1NjUzZlx1N2YxNlx1NzgwMXxcdTkwYWVcdTdmMTZ8XHU5MGY1XHU5MDVlXHU1MzQwXHU4NjVmfChcXGJ8Xylwb3N0YSBrb2R1KFxcYnxfKXxcdWM2YjBcdWQzYjguP1x1YmM4OFx1ZDYzOHxrb2RlLj9wb3MiLAoiaSIpLGVKPXt9LEtJPShlSltGRC5CYl09e21lOiExLG5hOk1EfSxlSltGRC5lZV09e21lOiEwLGF1dG9jb21wbGV0ZTpbInRlbCIsInRlbC1uYXRpb25hbCIsInRlbC1sb2NhbCJdLG5lOlpJLG5hOmZ1bmN0aW9uKGEpe3JldHVybiBHRChhLCEwKX19LGVKW0ZELktoXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsibmFtZSIsImNjLW5hbWUiXSxuZTokSSxuYTpORH0sZUpbRkQuWGRdPXttZTohMCxhdXRvY29tcGxldGU6WyJnaXZlbi1uYW1lIiwiY2MtZ2l2ZW4tbmFtZSJdLG5lOmFKLG5hOk5EfSxlSltGRC5jZV09e21lOiEwLGF1dG9jb21wbGV0ZTpbImZhbWlseS1uYW1lIiwiY2MtZmFtaWx5LW5hbWUiXSxuZTpiSixuYTpORH0sZUpbRkQueGZdPXttZTohMCxhdXRvY29tcGxldGU6WyJjb3VudHJ5IiwiY291bnRyeS1uYW1lIl0sbmU6Y0osbmE6TkR9LGVKW0ZELnFnXT17bWU6ITAsYXV0b2NvbXBsZXRlOlsicG9zdGFsLWNvZGUiXSxuZTpkSixuYTpJRH0sZUopO2Z1bmN0aW9uIGZKKGEpe3ZhciBiO0wodGhpcywiZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YSIsImF1dG8iKTt2YXIgYz1UZChhKXx8e30sZD1KSSh7aW5jbHVkZVNlbGVjdG9yOiEhYy5pbmNsdWRlU2VsZWN0b3IsaW5jbHVkZVZpc2liaWxpdHk6ISFjLmluY2x1ZGVWaXNpYmlsaXR5LGV4Y2x1ZGVFbGVtZW50U2VsZWN0b3JzOmMuZXhjbHVkZUVsZW1lbnRTZWxlY3RvcnMsZmllbGRGaWx0ZXJzOmMuZmllbGRGaWx0ZXJzLHNlbGVjdE11bHRpcGxlRWxlbWVudHM6ISFjLnNlbGVjdE11bHRpcGxlRWxlbWVudHN9KTtiPW5ldyBrYjt2YXIgZT1uZXcgR2Q7Yi5zZXQoImVsZW1lbnRzIixlKTtmb3IodmFyIGY9ZC5lbGVtZW50cyxnPTA7ZzxmLmxlbmd0aDtnKyspZS5wdXNoKGdKKGZbZ10pKTtkLmdpIT09dm9pZCAwJiZiLnNldCgicHJlZmVycmVkRW1haWxFbGVtZW50IiwKZ0ooZC5naSkpO2Iuc2V0KCJzdGF0dXMiLGQuc3RhdHVzKTtpZihjLnJlYWRGcm9tRGF0YUxheWVyKXtoSihlLGMpO3ZhciBoPVBEKCksbD1oLnN0O2Iuc2V0KCJkYXRhTGF5ZXJTZWFyY2hUaW1lIixoLnZ0KTtiLnNldCgiZGF0YUxheWVyU2VhcmNoQ291bnQiLGwpfXJldHVybiBifQp2YXIgaUo9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgRkQuQmI6cmV0dXJuImVtYWlsIjtjYXNlIEZELmVlOnJldHVybiJwaG9uZV9udW1iZXIiO2Nhc2UgRkQuWGQ6cmV0dXJuImZpcnN0X25hbWUiO2Nhc2UgRkQuY2U6cmV0dXJuImxhc3RfbmFtZSI7Y2FzZSBGRC50ajpyZXR1cm4ic3RyZWV0IjtjYXNlIEZELmxpOnJldHVybiJjaXR5IjtjYXNlIEZELmpqOnJldHVybiJyZWdpb24iO2Nhc2UgRkQucWc6cmV0dXJuInBvc3RhbF9jb2RlIjtjYXNlIEZELnhmOnJldHVybiJjb3VudHJ5In19LGpKPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBrYixjPWlKKGEuRGEpO2MhPT12b2lkIDAmJmIuc2V0KCJ0eXBlIixjKTtiLnNldCgidXNlckRhdGEiLGEuQ2EpO2Iuc2V0KCJ0YWdOYW1lIiwiRExZUiIpO3JldHVybiBifSxoSj1mdW5jdGlvbihhLGIpe3ZhciBjPVFEKCk7aWYoTSg1NjgpKWZvcih2YXIgZD1uZXcgU2V0KGEuaGMoKS5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIHIuZ2V0KCJ0eXBlIil9KSksCmU9bShjKSxmPWUubmV4dCgpOyFmLmRvbmU7Zj1lLm5leHQoKSl7dmFyIGc9bShmLnZhbHVlKSxoPWcubmV4dCgpLnZhbHVlLGw9Zy5uZXh0KCkudmFsdWUsbj1oLHA9bDtpZihiLnNlbGVjdE11bHRpcGxlRWxlbWVudHMpYS5wdXNoKGpKKHApKTtlbHNle3ZhciBxPWlKKG4pO3EmJiFkLmhhcyhxKSYmYS5wdXNoKGpKKHApKX19ZWxzZSBjLmhhcyhGRC5CYikmJihiLnNlbGVjdE11bHRpcGxlRWxlbWVudHN8fGEubGVuZ3RoKCk9PT0wKSYmYS5wdXNoKGpKKGMuZ2V0KEZELkJiKSkpfSxnSj1mdW5jdGlvbihhKXt2YXIgYj1uZXcga2I7Yi5zZXQoInVzZXJEYXRhIixhLkNhKTtiLnNldCgidGFnTmFtZSIsYS50YWdOYW1lKTthLnF1ZXJ5U2VsZWN0b3IhPT12b2lkIDAmJmIuc2V0KCJxdWVyeVNlbGVjdG9yIixhLnF1ZXJ5U2VsZWN0b3IpO2EuaXNWaXNpYmxlIT09dm9pZCAwJiZiLnNldCgiaXNWaXNpYmxlIixhLmlzVmlzaWJsZSk7aWYoTSg1NjgpKXt2YXIgYz1pSihhLnR5cGUpO2MhPT0Kdm9pZCAwJiZiLnNldCgidHlwZSIsYyl9ZWxzZSBzd2l0Y2goYS50eXBlKXtjYXNlIEZELkJiOmIuc2V0KCJ0eXBlIiwiZW1haWwiKX1yZXR1cm4gYn07ZkouUD0iaW50ZXJuYWwuZGV0ZWN0VXNlclByb3ZpZGVkRGF0YSI7CmZ1bmN0aW9uIG1KKGEsYil7cmV0dXJuIGZ9bUouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25DbGljayI7CnZhciBuSj1mdW5jdGlvbigpe3RoaXMuSD1bXTt0aGlzLk49ISFBLk11dGF0aW9uT2JzZXJ2ZXJ9O25KLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7aWYodGhpcy5ILmxlbmd0aD09PTApe3ZhciBjPWZ1bmN0aW9uKCl7dmFyIGQ9Qi5ib2R5O2lmKGQpaWYoYi5OKShuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe2Zvcih2YXIgZj0wO2Y8Yi5ILmxlbmd0aDtmKyspYmQoYi5IW2ZdKX0pKS5vYnNlcnZlKGQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSk7ZWxzZXt2YXIgZT0hMTskYyhkLCJET01Ob2RlSW5zZXJ0ZWQiLGZ1bmN0aW9uKCl7ZXx8KGU9ITAsYmQoZnVuY3Rpb24oKXtlPSExO2Zvcih2YXIgZj0wO2Y8Yi5ILmxlbmd0aDtmKyspYmQoYi5IW2ZdKX0pKX0pfX07Qi5ib2R5P2MoKTpiZChjKX10aGlzLkgucHVzaChhKX07bkoucHJvdG90eXBlLlI9ZnVuY3Rpb24oYSl7aWYodGhpcy5IKWZvcih2YXIgYj0wO2I8dGhpcy5ILmxlbmd0aDtiKyspdGhpcy5IW2JdPT09CmEmJnRoaXMuSC5zcGxpY2UoYiwxKX07dmFyIG9KPW5ldyBuSjsKZnVuY3Rpb24gdEooYSxiKXtyZXR1cm4gcH10Si5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkVsZW1lbnRWaXNpYmlsaXR5IjtmdW5jdGlvbiB1Sigpe311Si5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbkVycm9yIjsKZnVuY3Rpb24gQUooYSxiKXt2YXIgYz10aGlzO3JldHVybiBkfUFKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRm9ybUludGVyYWN0aW9uIjsKZnVuY3Rpb24gRkooYSxiKXt2YXIgYz10aGlzO3JldHVybiBmfUZKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uRm9ybVN1Ym1pdCI7CmZ1bmN0aW9uIEtKKCl7dmFyIGE9dGhpczt9S0ouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25HYVNlbmQiOwp2YXIgTUo9ZnVuY3Rpb24oYSxiLGMsZCl7Yz1jPT09dm9pZCAwP3t9OmM7ZD1kPT09dm9pZCAwP1tdOmQ7dmFyIGU9IiIrYjtpZihjW2VdKWNbZV0ucHVzaChhKTtlbHNle3ZhciBmPVthXTtjW2VdPWY7dmFyIGc9TEooImd0bS5oaXN0b3J5Q2hhbmdlLXYyIiksaD0tMTtkLnB1c2goZnVuY3Rpb24obCl7aD49MCYmQS5jbGVhclRpbWVvdXQoaCk7Yj9oPUEuc2V0VGltZW91dChmdW5jdGlvbigpe2cobCxmKTtoPS0xfSxiKTpnKGwsZil9KX19LExKPWZ1bmN0aW9uKGEpe3ZhciBiPUEubG9jYXRpb24uaHJlZixjPXtzb3VyY2U6bnVsbCxzdGF0ZTpBLmhpc3Rvcnkuc3RhdGV8fG51bGwsdXJsOk9qKFJqKGIpKSxrYjpMaihSaihiKSwiZnJhZ21lbnQiKX07cmV0dXJuIGZ1bmN0aW9uKGQsZSl7dmFyIGY9YyxnPXt9O2dbZi5zb3VyY2VdPSEwO2dbZC5zb3VyY2VdPSEwO2lmKCFnLnBvcHN0YXRlfHwhZy5oYXNoY2hhbmdlfHxmLmtiIT09ZC5rYil7dmFyIGg9e2V2ZW50OmEsImd0bS5oaXN0b3J5Q2hhbmdlU291cmNlIjpkLnNvdXJjZSwKImd0bS5vbGRVcmxGcmFnbWVudCI6Yy5rYiwiZ3RtLm5ld1VybEZyYWdtZW50IjpkLmtiLCJndG0ub2xkSGlzdG9yeVN0YXRlIjpjLnN0YXRlLCJndG0ubmV3SGlzdG9yeVN0YXRlIjpkLnN0YXRlLCJndG0ub2xkVXJsIjpjLnVybCwiZ3RtLm5ld1VybCI6ZC51cmx9O2UmJihoWyJndG0udHJpZ2dlcnMiXT1lLmpvaW4oIiwiKSk7Yz1kO3VFKGgpfX19LE5KPWZ1bmN0aW9uKGEsYil7dmFyIGM9QS5oaXN0b3J5LGQ9Y1thXTtpZih5YihkKSl0cnl7Y1thXT1mdW5jdGlvbihlLGYsZyl7ZC5hcHBseShjLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKTt2YXIgaD1BLmxvY2F0aW9uLmhyZWY7Yih7c291cmNlOmEsc3RhdGU6ZSx1cmw6T2ooUmooaCkpLGtiOkxqKFJqKGgpLCJmcmFnbWVudCIpfSl9fWNhdGNoKGUpe319LFBKPWZ1bmN0aW9uKGEpe0EuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLGZ1bmN0aW9uKGIpe3ZhciBjPU9KKGIpO2Eoe3NvdXJjZToicG9wc3RhdGUiLHN0YXRlOmIuc3RhdGUsCnVybDpPaihSaihjKSksa2I6TGooUmooYyksImZyYWdtZW50Iil9KX0pfSxRSj1mdW5jdGlvbihhKXtBLmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGZ1bmN0aW9uKGIpe3ZhciBjPU9KKGIpO2Eoe3NvdXJjZToiaGFzaGNoYW5nZSIsc3RhdGU6bnVsbCx1cmw6T2ooUmooYykpLGtiOkxqKFJqKGMpLCJmcmFnbWVudCIpfSl9KX0sT0o9ZnVuY3Rpb24oYSl7dmFyIGIsYztyZXR1cm4oKGI9YS50YXJnZXQpPT1udWxsP3ZvaWQgMDooYz1iLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6Yy5ocmVmKXx8QS5sb2NhdGlvbi5ocmVmfTsKZnVuY3Rpb24gUkooYSxiKXt2YXIgYz10aGlzO2lmKCFmaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0fHVuZGVmaW5lZCIsImFueSJdLGFyZ3VtZW50cyk7VEYoW2Z1bmN0aW9uKCl7TChjLCJkZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzIil9XSk7dmFyIGQ9YSYmYS5nZXQoInVzZVYyRXZlbnROYW1lIik/ImVobCI6ImhsIixlPU51bWJlcihhJiZhLmdldCgiaW50ZXJ2YWwiKSk7ZT4wJiZpc0Zpbml0ZShlKXx8KGU9MCk7dmFyIGY7aWYoISRGKGQsImluaXQiLCExKSl7dmFyIGc9e30saD1bXSxsO2Q9PT0iZWhsIj8obD1mdW5jdGlvbihwKXtmb3IodmFyIHE9MDtxPGgubGVuZ3RoO3ErKyloW3FdKHApfSxmPVpGKGIpLE1KKGYsZSxnLGgpLGFHKGQsInJlZyIsZnVuY3Rpb24ocCxxKXtNSihwLHEsZyxoKX0pKTpsPUxKKCJndG0uaGlzdG9yeUNoYW5nZSIpOwpRSihsKTtQSihsKTtOSigicHVzaFN0YXRlIixsKTtOSigicmVwbGFjZVN0YXRlIixsKTthRyhkLCJpbml0IiwhMCl9ZWxzZSBpZihkPT09ImVobCIpe3ZhciBuPSRGKGQsInJlZyIpO24mJihmPVpGKGIpLG4oZixlKSl9ZD09PSJobCImJihmPXZvaWQgMCk7cmV0dXJuIGZ9UkouUD0iaW50ZXJuYWwuZW5hYmxlQXV0b0V2ZW50T25IaXN0b3J5Q2hhbmdlIjt2YXIgU0o9WyJodHRwOi8vIiwiaHR0cHM6Ly8iLCJqYXZhc2NyaXB0OiIsImZpbGU6Ly8iXTsKdmFyIFRKPWZ1bmN0aW9uKGEsYil7aWYoYS53aGljaD09PTJ8fGEuY3RybEtleXx8YS5zaGlmdEtleXx8YS5hbHRLZXl8fGEubWV0YUtleSlyZXR1cm4hMTt2YXIgYz1vZChiLCJocmVmIik7aWYoYy5pbmRleE9mKCI6IikhPT0tMSYmIVNKLnNvbWUoZnVuY3Rpb24oaCl7cmV0dXJuIFNiKGMsaCl9KSlyZXR1cm4hMTt2YXIgZD1jLmluZGV4T2YoIiMiKSxlPW9kKGIsInRhcmdldCIpO2lmKGUmJmUhPT0iX3NlbGYiJiZlIT09Il9wYXJlbnQiJiZlIT09Il90b3AifHxkPT09MClyZXR1cm4hMTtpZihkPjApe3ZhciBmPU9qKFJqKGMpKSxnPU9qKFJqKEEubG9jYXRpb24uaHJlZikpO3JldHVybiBmIT09Z31yZXR1cm4hMH0sVUo9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9TGooUmooKGIuYXR0cmlidXRlcyYmYi5hdHRyaWJ1dGVzLmZvcm1hY3Rpb24/Yi5mb3JtQWN0aW9uOiIiKXx8Yi5hY3Rpb258fG9kKGIsImhyZWYiKXx8Yi5zcmN8fGIuY29kZXx8Yi5jb2RlYmFzZXx8IiIpLCJob3N0IiksCmQ9MDtkPGEubGVuZ3RoO2QrKyl0cnl7aWYoKG5ldyBSZWdFeHAoYVtkXSkpLnRlc3QoYykpcmV0dXJuITF9Y2F0Y2goZSl7fXJldHVybiEwfSxWSj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7dmFyIGQ9Yy50YXJnZXQ7aWYoZCYmYy53aGljaCE9PTMmJiEoYy5IfHxjLnRpbWVTdGFtcCYmYy50aW1lU3RhbXA9PT1iKSl7Yj1jLnRpbWVTdGFtcDtkPWhkKGQsWyJhIiwiYXJlYSJdLDEwMCk7aWYoIWQpcmV0dXJuIGMucmV0dXJuVmFsdWU7dmFyIGU9Yy5kZWZhdWx0UHJldmVudGVkfHxjLnJldHVyblZhbHVlPT09ITEsZj0kRigibGNsIixlPyJudi5td3QiOiJtd3QiLDApLGc7Zz1lPyRGKCJsY2wiLCJudi5pZHMiLFtdKTokRigibGNsIiwiaWRzIixbXSk7Zm9yKHZhciBoPVtdLGw9MDtsPGcubGVuZ3RoO2wrKyl7dmFyIG49Z1tsXSxwPSRGKCJsY2wiLCJhZmYubWFwIix7fSlbbl07cCYmIVVKKHAsZCl8fGgucHVzaChuKX1pZihoLmxlbmd0aCl7dmFyIHE9VEooYyxkKSxyPWVHKGQsImd0bS5saW5rQ2xpY2siLApoKTtyWyJndG0uZWxlbWVudFRleHQiXT1mZChkKTtyWyJndG0ud2lsbE9wZW5Jbk5ld1dpbmRvdyJdPSFxO2lmKHEmJiFlJiZmJiZkLmhyZWYpe3ZhciB0PSEhQ2IoU3RyaW5nKG9kKGQsInJlbCIpfHwiIikuc3BsaXQoIiAiKSxmdW5jdGlvbih5KXtyZXR1cm4geS50b0xvd2VyQ2FzZSgpPT09Im5vcmVmZXJyZXIifSksdT1BWyhvZChkLCJ0YXJnZXQiKXx8Il9zZWxmIikuc3Vic3RyaW5nKDEpXSx2PSEwLHg9dEUoZnVuY3Rpb24oKXt2YXIgeTtpZih5PXYmJnUpe3ZhciB6O2E6aWYodCl7dmFyIEM7dHJ5e0M9bmV3IE1vdXNlRXZlbnQoYy50eXBlLHtidWJibGVzOiEwfSl9Y2F0Y2goRCl7aWYoIUIuY3JlYXRlRXZlbnQpe3o9ITE7YnJlYWsgYX1DPUIuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnRzIik7Qy5pbml0RXZlbnQoYy50eXBlLCEwLCEwKX1DLkg9ITA7Yy50YXJnZXQuZGlzcGF0Y2hFdmVudChDKTt6PSEwfWVsc2Ugej0hMTt5PSF6fXkmJih1LmxvY2F0aW9uLmhyZWY9b2QoZCwKImhyZWYiKSl9LGYpO2lmKGlFKHIseCxmKSl2PSExO2Vsc2UgcmV0dXJuIGMucHJldmVudERlZmF1bHQmJmMucHJldmVudERlZmF1bHQoKSxjLnJldHVyblZhbHVlPSExfWVsc2Ugc0UocixmdW5jdGlvbigpe30sZnx8MkUzKTtyZXR1cm4hMH19fXZhciBiPTA7JGMoQiwiY2xpY2siLGEsITEpOyRjKEIsImF1eGNsaWNrIixhLCExKX07CmZ1bmN0aW9uIFdKKGEsYil7dmFyIGM9dGhpcztpZighZmgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdHx1bmRlZmluZWQiLCJhbnkiXSxhcmd1bWVudHMpO3ZhciBkPVRkKGEpO1RGKFtmdW5jdGlvbigpe0woYywiZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzIixkKX1dKTt2YXIgZT1kJiYhIWQud2FpdEZvclRhZ3MsZj1kJiYhIWQuY2hlY2tWYWxpZGF0aW9uLGc9ZD9kLmFmZmlsaWF0ZURvbWFpbnM6dm9pZCAwLGg9WkYoYik7aWYoZSl7dmFyIGw9TnVtYmVyKGQud2FpdEZvclRhZ3NUaW1lb3V0KTtsPjAmJmlzRmluaXRlKGwpfHwobD0yRTMpO3ZhciBuPWZ1bmN0aW9uKHEpe3JldHVybiBNYXRoLm1heChsLHEpfTtkRygibGNsIiwibXd0IixuLDApO2Z8fGRHKCJsY2wiLCJudi5td3QiLG4sMCl9dmFyIHA9ZnVuY3Rpb24ocSl7cS5wdXNoKGgpOwpyZXR1cm4gcX07ZEcoImxjbCIsImlkcyIscCxbXSk7Znx8ZEcoImxjbCIsIm52LmlkcyIscCxbXSk7ZyYmZEcoImxjbCIsImFmZi5tYXAiLGZ1bmN0aW9uKHEpe3FbaF09ZztyZXR1cm4gcX0se30pOyRGKCJsY2wiLCJpbml0IiwhMSl8fChWSigpLGFHKCJsY2wiLCJpbml0IiwhMCkpO3JldHVybiBofVdKLlA9ImludGVybmFsLmVuYWJsZUF1dG9FdmVudE9uTGlua0NsaWNrIjsKdmFyIFhKPWZ1bmN0aW9uKGEpe3JldHVybiAkRigic2RsIixhLHt9KX0sWUo9ZnVuY3Rpb24oYSxiLGMpe2lmKGIpe3ZhciBkPUFycmF5LmlzQXJyYXkoYSk/YTpbYV07ZEcoInNkbCIsYyxmdW5jdGlvbihlKXtmb3IodmFyIGY9MDtmPGQubGVuZ3RoO2YrKyl7dmFyIGc9U3RyaW5nKGRbZl0pO2UuaGFzT3duUHJvcGVydHkoZyl8fChlW2ddPVtdKTtlW2ddLnB1c2goYil9cmV0dXJuIGV9LHt9KX19LGFLPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe1pKKGEsYik7JEooYywhMCl9cmV0dXJuIGN9LGJLPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe2g/Zz1BLnNldFRpbWVvdXQoYyxlKTooZz0wLFpKKGEsYiksJEooZCkpO2g9ITF9ZnVuY3Rpb24gZCgpe2YmJmIoKTtnP2g9ITA6KGc9QS5zZXRUaW1lb3V0KGMsZSksYUcoInNkbCIsInBlbmRpbmciLCEwKSl9dmFyIGU9MjUwLGY9ITE7Qi5zY3JvbGxpbmdFbGVtZW50JiZCLmRvY3VtZW50RWxlbWVudCYmKGU9NTAsZj0hMCk7dmFyIGc9CjAsaD0hMTtyZXR1cm4gZH0sJEo9ZnVuY3Rpb24oYSxiKXskRigic2RsIiwiaW5pdCIsITEpJiYhY0soKSYmKGI/YWQoQSwic2Nyb2xsZW5kIixhKTphZChBLCJzY3JvbGwiLGEpLGFkKEEsInJlc2l6ZSIsYSksYUcoInNkbCIsImluaXQiLCExKSl9LFpKPWZ1bmN0aW9uKGEsYil7dmFyIGM9YigpLGQ9Yy5kZXB0aFgsZT1jLmRlcHRoWSxmPWQvYS5zY3JvbGxXaWR0aCoxMDAsZz1lL2Euc2Nyb2xsSGVpZ2h0KjEwMDtkSyhkLCJob3Jpei5waXgiLCJQSVhFTFMiLCJob3Jpem9udGFsIik7ZEsoZiwiaG9yaXoucGN0IiwiUEVSQ0VOVCIsImhvcml6b250YWwiKTtkSyhlLCJ2ZXJ0LnBpeCIsIlBJWEVMUyIsInZlcnRpY2FsIik7ZEsoZywidmVydC5wY3QiLCJQRVJDRU5UIiwidmVydGljYWwiKTthRygic2RsIiwicGVuZGluZyIsITEpfSxkSz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1YSihiKSxmPXt9LGc7Zm9yKGcgaW4gZSlpZihmPXtxZjpmLnFmfSxmLnFmPWcsZS5oYXNPd25Qcm9wZXJ0eShmLnFmKSl7dmFyIGg9Ck51bWJlcihmLnFmKTtpZighKGE8aCkpe3ZhciBsPXt9O3VFKChsLmV2ZW50PSJndG0uc2Nyb2xsRGVwdGgiLGxbImd0bS5zY3JvbGxUaHJlc2hvbGQiXT1oLGxbImd0bS5zY3JvbGxVbml0cyJdPWMudG9Mb3dlckNhc2UoKSxsWyJndG0uc2Nyb2xsRGlyZWN0aW9uIl09ZCxsWyJndG0udHJpZ2dlcnMiXT1lW2YucWZdLmpvaW4oIiwiKSxsKSk7ZEcoInNkbCIsYixmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24ocCl7ZGVsZXRlIHBbbi5xZl07cmV0dXJuIHB9fShmKSx7fSl9fX0sZks9ZnVuY3Rpb24oKXt2YXIgYT1kRygic2RsIiwic2NyIixmdW5jdGlvbihjKXtjfHwoYz1CLnNjcm9sbGluZ0VsZW1lbnR8fEIuYm9keSYmQi5ib2R5LnBhcmVudE5vZGUpO3JldHVybiBjfSxudWxsKSxiPWRHKCJzZGwiLCJkZXB0aCIsZnVuY3Rpb24oYyl7Y3x8KGM9ZUsoYSkpO3JldHVybiBjfSk7cmV0dXJue3Njcm9sbGluZ0VsZW1lbnQ6YSx2cjpifX0sZUs9ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPQowO3JldHVybiBmdW5jdGlvbigpe3ZhciBkPXNJKCksZT1kLmhlaWdodDtiPU1hdGgubWF4KGEuc2Nyb2xsTGVmdCtkLndpZHRoLGIpO2M9TWF0aC5tYXgoYS5zY3JvbGxUb3ArZSxjKTtyZXR1cm57ZGVwdGhYOmIsZGVwdGhZOmN9fX0sY0s9ZnVuY3Rpb24oKXtyZXR1cm4hIShPYmplY3Qua2V5cyhYSigiaG9yaXoucGl4IikpLmxlbmd0aHx8T2JqZWN0LmtleXMoWEooImhvcml6LnBjdCIpKS5sZW5ndGh8fE9iamVjdC5rZXlzKFhKKCJ2ZXJ0LnBpeCIpKS5sZW5ndGh8fE9iamVjdC5rZXlzKFhKKCJ2ZXJ0LnBjdCIpKS5sZW5ndGgpfTsKZnVuY3Rpb24gZ0soYSxiKXt2YXIgYz10aGlzO2lmKCFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0IiwiYW55Il0sYXJndW1lbnRzKTtURihbZnVuY3Rpb24oKXtMKGMsImRldGVjdF9zY3JvbGxfZXZlbnRzIil9XSk7dmFyIGQ9ZksoKSxlPWQuc2Nyb2xsaW5nRWxlbWVudCxmPWQudnI7aWYoIWUpcmV0dXJuO3ZhciBnPVpGKGIpLGg9VGQoYSk7c3dpdGNoKGguaG9yaXpvbnRhbFRocmVzaG9sZFVuaXRzKXtjYXNlICJQSVhFTFMiOllKKGguaG9yaXpvbnRhbFRocmVzaG9sZHMsZywiaG9yaXoucGl4Iik7YnJlYWs7Y2FzZSAiUEVSQ0VOVCI6WUooaC5ob3Jpem9udGFsVGhyZXNob2xkcyxnLCJob3Jpei5wY3QiKX1zd2l0Y2goaC52ZXJ0aWNhbFRocmVzaG9sZFVuaXRzKXtjYXNlICJQSVhFTFMiOllKKGgudmVydGljYWxUaHJlc2hvbGRzLApnLCJ2ZXJ0LnBpeCIpO2JyZWFrO2Nhc2UgIlBFUkNFTlQiOllKKGgudmVydGljYWxUaHJlc2hvbGRzLGcsInZlcnQucGN0Iil9JEYoInNkbCIsImluaXQiLCExKT8kRigic2RsIiwicGVuZGluZyIsITEpfHxiZChmdW5jdGlvbigpe1pKKGUsZil9KTooYUcoInNkbCIsImluaXQiLCEwKSxhRygic2RsIiwicGVuZGluZyIsITApLGJkKGZ1bmN0aW9uKCl7WkooZSxmKTtpZihjSygpKXt2YXIgbD1iSyhlLGYpOyJvbnNjcm9sbGVuZCJpbiBBPyhsPWFLKGUsZiksJGMoQSwic2Nyb2xsZW5kIixsKSk6JGMoQSwic2Nyb2xsIixsKTskYyhBLCJyZXNpemUiLGwpfWVsc2UgYUcoInNkbCIsImluaXQiLCExKX0pKTtyZXR1cm4gZ31nSy5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPblNjcm9sbCI7ZnVuY3Rpb24gaEsoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoYS5saW1pdCYmYS5naz49YS5saW1pdClhLmFpJiZBLmNsZWFySW50ZXJ2YWwoYS5haSk7ZWxzZXthLmdrKys7dmFyIGI9TmIoKTt1RSh7ZXZlbnQ6YS5ldmVudE5hbWUsImd0bS50aW1lcklkIjphLmFpLCJndG0udGltZXJFdmVudE51bWJlciI6YS5naywiZ3RtLnRpbWVySW50ZXJ2YWwiOmEuaW50ZXJ2YWwsImd0bS50aW1lckxpbWl0IjphLmxpbWl0LCJndG0udGltZXJTdGFydFRpbWUiOmEuTW8sImd0bS50aW1lckN1cnJlbnRUaW1lIjpiLCJndG0udGltZXJFbGFwc2VkVGltZSI6Yi1hLk1vLCJndG0udHJpZ2dlcnMiOmEuTHR9KX19fQpmdW5jdGlvbiBpSyhhLGIpewpyZXR1cm4gZn1pSy5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPblRpbWVyIjsKdmFyIGpLPWZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKCl7dmFyIGc9YSgpO2YrPWU/KE5iKCktZSkqZy5wbGF5YmFja1JhdGUvMUUzOjA7ZT1OYigpfXZhciBlPTAsZj0wO3JldHVybntjcmVhdGVFdmVudDpmdW5jdGlvbihnLGgsbCl7dmFyIG49YSgpLHA9bi5XbixxPWw/TWF0aC5yb3VuZChsKTpoP01hdGgucm91bmQobi5XbipoKTpNYXRoLnJvdW5kKG4uR3IpLHI9aCE9PXZvaWQgMD9NYXRoLnJvdW5kKGgqMTAwKTpwPD0wPzA6TWF0aC5yb3VuZChxL3AqMTAwKSx0PUIuaGlkZGVuPyExOnRJKGMpPj0uNTtkKCk7dmFyIHU9dm9pZCAwO2IhPT12b2lkIDAmJih1PVtiXSk7dmFyIHY9ZUcoYywiZ3RtLnZpZGVvIix1KTt2WyJndG0udmlkZW9Qcm92aWRlciJdPSJ5b3V0dWJlIjt2WyJndG0udmlkZW9TdGF0dXMiXT1nO3ZbImd0bS52aWRlb1VybCJdPW4udXJsO3ZbImd0bS52aWRlb1RpdGxlIl09bi50aXRsZTt2WyJndG0udmlkZW9EdXJhdGlvbiJdPU1hdGgucm91bmQocCk7dlsiZ3RtLnZpZGVvQ3VycmVudFRpbWUiXT0KTWF0aC5yb3VuZChxKTt2WyJndG0udmlkZW9FbGFwc2VkVGltZSJdPU1hdGgucm91bmQoZik7dlsiZ3RtLnZpZGVvUGVyY2VudCJdPXI7dlsiZ3RtLnZpZGVvVmlzaWJsZSJdPXQ7cmV0dXJuIHZ9LG10OmZ1bmN0aW9uKCl7ZT1OYigpfSxCajpmdW5jdGlvbigpe2QoKX19fTt2YXIgQWM9QWEoWyJkYXRhLWd0bS15dC1pbnNwZWN0ZWQtIl0pLGtLPVsid3d3LnlvdXR1YmUuY29tIiwid3d3LnlvdXR1YmUtbm9jb29raWUuY29tIl0sbEs7CnZhciBtSz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5tYXAoZnVuY3Rpb24oZyl7cmV0dXJue3RlOmcsSm86Zyx3bzp2b2lkIDB9fSk7aWYoIWIubGVuZ3RoKXJldHVybiBkO3ZhciBlPWIubWFwKGZ1bmN0aW9uKGcpe3JldHVybnt0ZTpnKmMsSm86dm9pZCAwLHdvOmd9fSk7aWYoIWQubGVuZ3RoKXJldHVybiBlO3ZhciBmPWQuY29uY2F0KGUpO2Yuc29ydChmdW5jdGlvbihnLGgpe3JldHVybiBnLnRlLWgudGV9KTtyZXR1cm4gZn0sbks9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7Zm9yKHZhciBiPVtdLGM9MDtjPGEubGVuZ3RoO2MrKylhW2NdPDB8fGIucHVzaChhW2NdKTtiLnNvcnQoZnVuY3Rpb24oZCxlKXtyZXR1cm4gZC1lfSk7cmV0dXJuIGJ9LG9LPWZ1bmN0aW9uKGEpe2E9YT09PXZvaWQgMD9bXTphO2Zvcih2YXIgYj1bXSxjPTA7YzxhLmxlbmd0aDtjKyspYVtjXT4xMDB8fGFbY108MHx8KGJbY109YVtjXS8xMDApO2Iuc29ydChmdW5jdGlvbihkLGUpe3JldHVybiBkLQplfSk7cmV0dXJuIGJ9LHBLPWZ1bmN0aW9uKGEsYil7dmFyIGMsZDtmdW5jdGlvbiBlKCl7dD1qSyhmdW5jdGlvbigpe3JldHVybnt1cmw6eCx0aXRsZTp5LFduOnYsR3I6YS5nZXRDdXJyZW50VGltZSgpLHBsYXliYWNrUmF0ZTp6fX0sYi5yZixhLmdldElmcmFtZSgpKTt2PTA7eT14PSIiO3o9MTtyZXR1cm4gZn1mdW5jdGlvbiBmKEcpe3N3aXRjaChHKXtjYXNlIDE6dj1NYXRoLnJvdW5kKGEuZ2V0RHVyYXRpb24oKSk7eD1hLmdldFZpZGVvVXJsKCk7aWYoYS5nZXRWaWRlb0RhdGEpe3ZhciBOPWEuZ2V0VmlkZW9EYXRhKCk7eT1OP04udGl0bGU6IiJ9ej1hLmdldFBsYXliYWNrUmF0ZSgpO2IueXI/dUUodC5jcmVhdGVFdmVudCgic3RhcnQiKSk6dC5CaigpO3U9bUsoYi5ldCxiLmN0LGEuZ2V0RHVyYXRpb24oKSk7cmV0dXJuIGcoRyk7ZGVmYXVsdDpyZXR1cm4gZn19ZnVuY3Rpb24gZygpe0M9YS5nZXRDdXJyZW50VGltZSgpO0Q9TWIoKS5nZXRUaW1lKCk7dC5tdCgpO3IoKTtyZXR1cm4gaH0KZnVuY3Rpb24gaChHKXt2YXIgTjtzd2l0Y2goRyl7Y2FzZSAwOnJldHVybiBuKEcpO2Nhc2UgMjpOPSJwYXVzZSI7Y2FzZSAzOnZhciBTPWEuZ2V0Q3VycmVudFRpbWUoKS1DO049TWF0aC5hYnMoKE1iKCkuZ2V0VGltZSgpLUQpLzFFMyp6LVMpPjE/InNlZWsiOk58fCJidWZmZXJpbmciO2EuZ2V0Q3VycmVudFRpbWUoKSYmKGIueHI/dUUodC5jcmVhdGVFdmVudChOKSk6dC5CaigpKTtxKCk7cmV0dXJuIGw7Y2FzZSAtMTpyZXR1cm4gZShHKTtkZWZhdWx0OnJldHVybiBofX1mdW5jdGlvbiBsKEcpe3N3aXRjaChHKXtjYXNlIDA6cmV0dXJuIG4oRyk7Y2FzZSAxOnJldHVybiBnKEcpO2Nhc2UgLTE6cmV0dXJuIGUoRyk7ZGVmYXVsdDpyZXR1cm4gbH19ZnVuY3Rpb24gbigpe2Zvcig7ZDspe3ZhciBHPWM7QS5jbGVhclRpbWVvdXQoZCk7RygpfWIud3ImJnVFKHQuY3JlYXRlRXZlbnQoImNvbXBsZXRlIiwxKSk7cmV0dXJuIGUoLTEpfWZ1bmN0aW9uIHAoKXt9ZnVuY3Rpb24gcSgpe2QmJgooQS5jbGVhclRpbWVvdXQoZCksZD0wLGM9cCl9ZnVuY3Rpb24gcigpe2lmKHUubGVuZ3RoJiZ6IT09MCl7dmFyIEc9LTEsTjtkb3tOPXVbMF07aWYoTi50ZT5hLmdldER1cmF0aW9uKCkpcmV0dXJuO0c9KE4udGUtYS5nZXRDdXJyZW50VGltZSgpKS96O2lmKEc8MCYmKHUuc2hpZnQoKSx1Lmxlbmd0aD09PTApKXJldHVybn13aGlsZShHPDApO2M9ZnVuY3Rpb24oKXtkPTA7Yz1wO3UubGVuZ3RoPjAmJnVbMF0udGU9PT1OLnRlJiYodS5zaGlmdCgpLHVFKHQuY3JlYXRlRXZlbnQoInByb2dyZXNzIixOLndvLE4uSm8pKSk7cigpfTtkPUEuc2V0VGltZW91dChjLEcqMUUzKX19dmFyIHQsdT1bXSx2LHgseSx6LEMsRCxJPWUoLTEpO2Q9MDtjPXA7cmV0dXJue29uU3RhdGVDaGFuZ2U6ZnVuY3Rpb24oRyl7ST1JKEcpfSxvblBsYXliYWNrUmF0ZUNoYW5nZTpmdW5jdGlvbihHKXtDPWEuZ2V0Q3VycmVudFRpbWUoKTtEPU1iKCkuZ2V0VGltZSgpO3QuQmooKTt6PUc7cSgpO3IoKX19fSxySz0KZnVuY3Rpb24oYSl7YmQoZnVuY3Rpb24oKXtmdW5jdGlvbiBiKCl7Zm9yKHZhciBkPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpLGU9ZC5sZW5ndGgsZj0wO2Y8ZTtmKyspcUsoZFtmXSxhKX12YXIgYz1CO2IoKTtvSi5LKGIpfSl9LHFLPWZ1bmN0aW9uKGEsYil7aWYoIWEuZ2V0QXR0cmlidXRlKCJkYXRhLWd0bS15dC1pbnNwZWN0ZWQtIitiLnJmKSYmKENjKGEsImRhdGEtZ3RtLXl0LWluc3BlY3RlZC0iK2IucmYpLHNLKGEsYi5jbykpKXthLmlkfHwoYS5pZD10SygpKTt2YXIgYz1BLllULGQ9Yy5nZXQoYS5pZCk7ZHx8KGQ9bmV3IGMuUGxheWVyKGEuaWQpKTt2YXIgZT1wSyhkLGIpLGY9e30sZztmb3IoZyBpbiBlKWY9e01nOmYuTWd9LGYuTWc9ZyxlLmhhc093blByb3BlcnR5KGYuTWcpJiZkLmFkZEV2ZW50TGlzdGVuZXIoZi5NZyxmdW5jdGlvbihoKXtyZXR1cm4gZnVuY3Rpb24obCl7cmV0dXJuIGVbaC5NZ10obC5kYXRhKX19KGYpKX19LHNLPWZ1bmN0aW9uKGEsCmIpe3ZhciBjPWEuZ2V0QXR0cmlidXRlKCJzcmMiKTtpZih1SyhjLCJlbWJlZC8iKSl7aWYoYy5pbmRleE9mKCJlbmFibGVqc2FwaT0xIik+MClyZXR1cm4hMDtpZihiKXt2YXIgZDt2YXIgZT1jLmluZGV4T2YoIj8iKSE9PS0xPyImIjoiPyI7Yy5pbmRleE9mKCJvcmlnaW49Iik+LTE/ZD1jK2UrImVuYWJsZWpzYXBpPTEiOihsS3x8KGxLPUIubG9jYXRpb24ucHJvdG9jb2wrIi8vIitCLmxvY2F0aW9uLmhvc3RuYW1lLEIubG9jYXRpb24ucG9ydCYmKGxLKz0iOiIrQi5sb2NhdGlvbi5wb3J0KSksZD1jK2UrImVuYWJsZWpzYXBpPTEmb3JpZ2luPSIrZW5jb2RlVVJJQ29tcG9uZW50KGxLKSk7dmFyIGY7Zj1qYyhkKTthLnNyYz1rYyhmKS50b1N0cmluZygpO3JldHVybiEwfX1yZXR1cm4hMX0sdUs9ZnVuY3Rpb24oYSxiKXtpZighYSlyZXR1cm4hMTtmb3IodmFyIGM9MDtjPGtLLmxlbmd0aDtjKyspaWYoYS5pbmRleE9mKCIvLyIra0tbY10rIi8iK2IpPj0wKXJldHVybiEwO3JldHVybiExfSwKdEs9ZnVuY3Rpb24oKXt2YXIgYT0iIitNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMUU5KTtyZXR1cm4gQi5nZXRFbGVtZW50QnlJZChhKT90SygpOmF9OwpmdW5jdGlvbiB2SyhhLGIpe3ZhciBjPXRoaXM7dmFyIGQ9ZnVuY3Rpb24oKXtySyhxKX07aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiLCJhbnkiXSxhcmd1bWVudHMpO1RGKFtmdW5jdGlvbigpe0woYywiZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzIix7Zml4TWlzc2luZ0FwaTohIWEuZ2V0KCJmaXhNaXNzaW5nQXBpIil9KX1dKTt2YXIgZT1aRihiKSxmPSEhYS5nZXQoImNhcHR1cmVTdGFydCIpLGc9ISFhLmdldCgiY2FwdHVyZUNvbXBsZXRlIiksaD0hIWEuZ2V0KCJjYXB0dXJlUGF1c2UiKSxsPW9LKFRkKGEuZ2V0KCJwcm9ncmVzc1RocmVzaG9sZHNQZXJjZW50IikpKSxuPW5LKFRkKGEuZ2V0KCJwcm9ncmVzc1RocmVzaG9sZHNUaW1lSW5TZWNvbmRzIikpKSxwPSEhYS5nZXQoImZpeE1pc3NpbmdBcGkiKTsKaWYoIShmfHxnfHxofHxsLmxlbmd0aHx8bi5sZW5ndGgpKXJldHVybjt2YXIgcT17eXI6Zix3cjpnLHhyOmgsY3Q6bCxldDpuLGNvOnAscmY6ZX0scj1BLllUO2lmKHIpcmV0dXJuIHIucmVhZHkmJnIucmVhZHkoZCksZTt2YXIgdD1BLHU9dC5vbllvdVR1YmVJZnJhbWVBUElSZWFkeTt0Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5PWZ1bmN0aW9uKCl7dSYmdSgpO2QoKX07YmQoZnVuY3Rpb24oKXtmb3IodmFyIHY9Qi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikseD12Lmxlbmd0aCx5PTA7eTx4O3krKyl7dmFyIHo9dlt5XS5nZXRBdHRyaWJ1dGUoInNyYyIpO2lmKHVLKHosImlmcmFtZV9hcGkiKXx8dUsoeiwicGxheWVyX2FwaSIpKXJldHVybiBlfWZvcih2YXIgQz1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKSxEPUMubGVuZ3RoLEk9YWwoNSxmdW5jdGlvbigpe3JldHVybiExfSksRz0wO0c8RDtHKyspaWYoIUkmJnNLKENbR10scS5jbykpcmV0dXJuIFVjKCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9pZnJhbWVfYXBpIiksClprKDUsITApLGV9KTtyZXR1cm4gZX12Sy5QPSJpbnRlcm5hbC5lbmFibGVBdXRvRXZlbnRPbllvdVR1YmVBY3Rpdml0eSI7ZnVuY3Rpb24gd0soYSxiKXtpZighbGgoYSl8fCFmaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiT2JqZWN0fHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7dmFyIGM9Yj9UZChiKTp7fTtjLnJlZ2V4Q2FjaGU9YWwoMyxmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwfSk7cmV0dXJuIEdoKGEsYyl9d0suUD0iaW50ZXJuYWwuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiI7ZnVuY3Rpb24geEsoYSl7dmFyIGI9ITE7cmV0dXJuIGJ9eEsuUD0iaW50ZXJuYWwuZXZhbHVhdGVNYXRjaGluZ1J1bGVzIjt2YXIgeUs9bmV3IE1hcChbWyJhdyIsNF1dKTtmdW5jdGlvbiB6SyhhKXt2YXIgYj12clthXSxjPXlLLmdldChhKTtyZXR1cm4gYz8od3EoYixjKXx8W10pLnNvbWUoZnVuY3Rpb24oZCl7cmV0dXJuIGQubT09PSIwInx8ZC5tPT09dm9pZCAwfSk6ITF9CmZ1bmN0aW9uIEFLKGEsYil7aWYoTSg0OTUpKXtmb3IodmFyIGM9bmV3IE1hcCxkPW0oeUspLGU9ZC5uZXh0KCk7IWUuZG9uZTtlPWQubmV4dCgpKXt2YXIgZj1tKGUudmFsdWUpLGc9Zi5uZXh0KCkudmFsdWUsaD1mLm5leHQoKS52YWx1ZSxsPWcsbj1hW2xdLHA9QXJyYXkuaXNBcnJheShuKT9uWzBdOm47aWYocCE9PXZvaWQgMCl7dmFyIHE9e30scj0ocS5rPXAscS5pPVN0cmluZyhNYXRoLmZsb29yKERhdGUubm93KCkvMUUzKSkscS5iPVtdLHEubT0iMSIscSksdD1hcShyLGgpO3QmJih6SyhsKXx8Yy5zZXQobCx0KSl9fWlmKGMuc2l6ZSl7dmFyIHUsdj1bXSx4PWIucGF0aHx8Ii8iO3YucHVzaChlbmNvZGVVUklDb21wb25lbnQoInAiKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHgpKTtiLkFyJiZ2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KCJjZSIpKyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGIuQXIpKSk7dmFyIHk9Yi5kb21haW4mJmIuZG9tYWluIT09ImF1dG8iPwpiLmRvbWFpbjoiYXV0bzoiK0EubG9jYXRpb24uaG9zdG5hbWU7di5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCgiZCIpKyI9IitlbmNvZGVVUklDb21wb25lbnQoeSkpO2Zvcih2YXIgej1tKGMpLEM9ei5uZXh0KCk7IUMuZG9uZTtDPXoubmV4dCgpKXt2YXIgRD1tKEMudmFsdWUpLEk9RC5uZXh0KCkudmFsdWUsRz1ELm5leHQoKS52YWx1ZTt2LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KEkpKyI9IitlbmNvZGVVUklDb21wb25lbnQoRykpfXU9Il8vc2V0X2Nvb2tpZT8iK3Yuam9pbigiJiIpO3ZhciBOLFM9RSg1OCk7Tj1FZih1LFMpO3ZhciBXPVhqKCkrIi8iK047bWQoVyl9fX07ZnVuY3Rpb24gQksoYSl7cmV0dXJuIkNXVldlYlZpZXdNZXNzYWdlImluIGF9ZnVuY3Rpb24gQ0soYSl7dmFyIGI9QSxjPWIud2Via2l0O2RlbGV0ZSBiLndlYmtpdDthKGIud2Via2l0KTtiLndlYmtpdD1jfWZ1bmN0aW9uIERLKGEsYil7dmFyIGM9e2FjdGlvbjoiZ2NsX3NldHVwIn07aWYoQksoYS5tZXNzYWdlSGFuZGxlcnMpKXJldHVybiBhLm1lc3NhZ2VIYW5kbGVycy5DV1ZXZWJWaWV3TWVzc2FnZS5wb3N0TWVzc2FnZSh7Y29tbWFuZDpiLHBheWxvYWQ6Y30pLCEwO3ZhciBkPWEubWVzc2FnZUhhbmRsZXJzW2JdO3JldHVybiBkPyhkLnBvc3RNZXNzYWdlKGMpLCEwKTohMX07dmFyIEVLPXt9LEZLPShFSy5hd2I9e25vdEZvdW5kOjE3OH0sRUsueXRiPXtub3RGb3VuZDoxOTR9LEVLKTtmdW5jdGlvbiBHSyhhKXt2YXIgYixjPShiPUZLW2FdKT09bnVsbD92b2lkIDA6Yi5ub3RGb3VuZDtjJiZQKGMpfQpmdW5jdGlvbiBISyhhKXtpZighbm0oam0uYmEuam4pJiYid2Via2l0ImluIEEmJkEud2Via2l0Lm1lc3NhZ2VIYW5kbGVycyl7dmFyIGI9ZnVuY3Rpb24oKXt0cnl7Q0soZnVuY3Rpb24oYyl7aWYoYyl7dmFyIGQ7ZD1CSyhjLm1lc3NhZ2VIYW5kbGVycyl8fCJhd2IiaW4gYy5tZXNzYWdlSGFuZGxlcnM/e2NvbW1hbmQ6ImF3YiIsc291cmNlOjV9OihCSyhjLm1lc3NhZ2VIYW5kbGVycyl8fCJ5dGIiaW4gYy5tZXNzYWdlSGFuZGxlcnMpJiZNKDQ5OSk/e2NvbW1hbmQ6Inl0YiIsc291cmNlOjh9OnZvaWQgMDtkJiYobW0oam0uYmEuam4sZnVuY3Rpb24oZSl7dmFyIGY9ZC5zb3VyY2U7ZS5nY2xpZCYmbHMoImdjbF9hdyIsZS5nY2xpZCxmLGEpO2Uud2JyYWlkJiZscygiZ2NsX2diIixlLndicmFpZCxmLGEpfSksREsoYyxkLmNvbW1hbmQpfHxHSyhkLmNvbW1hbmQpKX19KX1jYXRjaChjKXtQKDE5Myl9fTtIbChmdW5jdGlvbigpe0JyKGZwKT9iKCk6SWwoYixmcCl9LGZwKX19O3ZhciBJSz1bImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20iLCJodHRwczovL3d3dy55b3V0dWJlLmNvbSIsImh0dHBzOi8vbS55b3V0dWJlLmNvbSJdO2Z1bmN0aW9uIEpLKGEpe3JldHVybiBhLmRhdGEuYWN0aW9uIT09ImdjbF90cmFuc2ZlciI/KFAoMTczKSwhMCk6YS5kYXRhLmdhZFNvdXJjZT9hLmRhdGEuZ2NsaWQ/ITE6KFAoMTgxKSwhMCk6KFAoMTgwKSwhMCl9CmZ1bmN0aW9uIEtLKGEsYil7aWYoIWF8fE0oYSkpe2lmKG5tKGptLmJhLlZlKSlyZXR1cm4gUCgxNzYpLGptLmJhLlZlO2lmKG5tKGptLmJhLm1uKSlyZXR1cm4gUCgxNzApLGptLmJhLlZlO3ZhciBjPUZwKCk7aWYoIWMpUCgxNzEpO2Vsc2UgaWYoYy5vcGVuZXIpe3ZhciBkPWZ1bmN0aW9uKGcpe2lmKCFJSy5pbmNsdWRlcyhnLm9yaWdpbikpUCgxNzIpO2Vsc2UgaWYoIUpLKGcpKXt2YXIgaD17Z2FkU291cmNlOmcuZGF0YS5nYWRTb3VyY2V9O2guZ2NsaWQ9Zy5kYXRhLmdjbGlkO21tKGptLmJhLlZlLGgpO2ImJmcuZGF0YS5nY2xpZCYmbHMoImdjbF9hdyIsU3RyaW5nKGcuZGF0YS5nY2xpZCksNixiKTt2YXIgbDsobD1nLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbik9PW51bGx8fGwuY2FsbChnKTtudChjLCJtZXNzYWdlIixkKX19O2lmKG10KGMsIm1lc3NhZ2UiLGQpKXttbShqbS5iYS5tbiwhMCk7Zm9yKHZhciBlPW0oSUspLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWMub3BlbmVyLnBvc3RNZXNzYWdlKHthY3Rpb246ImdjbF9zZXR1cCJ9LApmLnZhbHVlKTtQKDE3NCk7cmV0dXJuIGptLmJhLlZlfVAoMTc1KX19fTsKdmFyIExLPWZ1bmN0aW9uKGEpe3ZhciBiPXtwcmVmaXg6TyhhLk0sRi5ELkZkKXx8TyhhLk0sRi5ELm5iKSxkb21haW46TyhhLk0sRi5ELkxiKSxwZDpPKGEuTSxGLkQuQ2IpLGZsYWdzOk8oYS5NLEYuRC5UYil9O2EuTS5pc0d0bUV2ZW50JiYoYi5wYXRoPU8oYS5NLEYuRC52YykpO3JldHVybiBifSxNSz1mdW5jdGlvbihhLGIpe2lmKCFRKGEsSC5KLldlKSl7dmFyIGM9S0soMTE5KTtpZihjKXt2YXIgZD1ubShjKSxlPWZ1bmN0aW9uKGcpe1YoYSxILkouV2UsITApO3ZhciBoPVIoYSxGLkQuemYpLGw9UihhLEYuRC5BZik7VShhLEYuRC56ZixTdHJpbmcoZy5nYWRTb3VyY2UpKTtVKGEsRi5ELkFmLDYpO1YoYSxILkouc2EpO1YoYSxILkoudWcpO1UoYSxGLkQuc2EpO2IoKTtVKGEsRi5ELnpmLGgpO1UoYSxGLkQuQWYsbCk7VihhLEguSi5XZSwhMSl9O2lmKGQpZShkKTtlbHNle3ZhciBmPXZvaWQgMDtmPXBtKGMsZnVuY3Rpb24oZyxoKXtlKGgpO3FtKGMsZil9KX19fX0sUEs9ZnVuY3Rpb24oYSl7dmFyIGIsCmMsZCxlO2I9YS5UbjtjPWEubW87ZD1hLlFvO2U9YS5VbjtpZihiKXtpZihkcihjW0YuRC5YZl0sISFjW0YuRC5BYV0pKXtpZihXaigpJiZCcihBcigpKSl7Zm9yKHZhciBmPVVxKCEwKSxnPXt9LGg9bShPYmplY3Qua2V5cyh2cikpLGw9aC5uZXh0KCk7IWwuZG9uZTtsPWgubmV4dCgpKXt2YXIgbj1sLnZhbHVlLHA9dnJbbl0scT1mW3BdO2lmKHEpe3ZhciByPSRwKHEsNCk7ciYmKG9zKE1hdGgubWluKE5yKHIpLE5iKCkpfHxOYigpLHAsNCl8fChnW25dPXEpKX19Zm9yKHZhciB0PXt9LHU9bShPYmplY3Qua2V5cyhnKSksdj11Lm5leHQoKTshdi5kb25lO3Y9dS5uZXh0KCkpe3ZhciB4PXYudmFsdWUseT1nW3hdO2lmKHkhPT12b2lkIDApe3ZhciB6PSRwKHksNCk7eiYmei5tPT09IjEiJiYodFt4XT16LmspfX1BSyh0LGUpfXBzKGUpO3RzKGUpO1F2KGUpfWlmKE9wKCkhPT0yKXtncyhlKTtpcyhlKTtpZihZZigxNSkpe3ZhciBDPWUsRD1kcyhBLmxvY2F0aW9uLmhyZWYsITAsITEpOwpELmxlbmd0aHx8KEQ9ZHMoQS5kb2N1bWVudC5yZWZlcnJlciwhMSwhMCkpO2lmKEQubGVuZ3RoKXtDPUN8fHt9O3ZhciBJPURbMF07SS52YWx1ZSYmbXMoImdjbF9kYyIsW3t2ZXJzaW9uOiIiLGdjbGlkOkkudmFsdWUsdGltZXN0YW1wOk5iKCkscWE6SS5xYX1dLEMpfX1ISyhlKTtLSyh2b2lkIDAsZSl9ZWxzZSBncyhlKTtpZihXaigpJiZCcihBcigpKSl7dmFyIEc9ZnMoKTtBSyhHLGUpfXhzKHFzLGUpO3lzKGUpfWNbRi5ELkFhXSYmKHZzKGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10pLHVzKGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZS5wcmVmaXgpLHdzKGNbRi5ELkFhXSxjW0YuRC5hZF0sISFjW0YuRC53Y10sZS5wcmVmaXgpLFJ2KEd2KGUucHJlZml4KSxjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdLGUpLFJ2KCJGUEFVIixjW0YuRC5BYV0sY1tGLkQuYWRdLCEhY1tGLkQud2NdLGUpKTtkJiZBcyhOSyk7Q3MoT0spfSxxcz1bImF3IiwiZGMiLAoiZ2IiXSxPSz1bImF3IiwiZGMiLCJnYiIsImFnIl0sTks9WyJhdyIsImRjIiwiZ2IiLCJhZyIsImdhZF9zb3VyY2UiXTsKdmFyIFFLPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouR2EpLGM9UShhLEguSi5zbiksZD1NKDQ0MykmJmM/VHYoYik6VXYoYikuU2gsZT12b2lkIDA7TSg1NzApJiZjJiYoZT1TdihiLHtYaDohMH0pLmlrKTt2YXIgZjthOntpZihJZig0NykmJlhvKGZwKSl7dmFyIGc9ZEkoYSwiY2NkX2VuYWJsZV9jbSIsITEpLGg9UShhLEguSi5ZYSk7VihhLEguSi5haiwhMCk7VihhLEguSi5mZCwhMCk7aWYoaHcoaCkpe1YoYSxILkouSWgsITApO3ZhciBsPWR8fEF2KCksbj17fSxwPXtldmVudE1ldGFkYXRhOihuW0guSi5EY109WC5WLkZiLG5bSC5KLllhXT1oLG5bSC5KLnpqXT1sLG5bSC5KLmZkXT0hMCxuW0guSi5hal09ITAsbltILkouSWhdPSEwLG5bSC5KLlhtXT1nJiZJZig0Nyksbiksbm9HdG1FdmVudDohMH0scT1zQyhhLnRhcmdldC5kZXN0aW5hdGlvbklkLGEuZXZlbnROYW1lLGEuTS5FYSk7bUQocSxhLk0uZXZlbnRJZCxwKTtnJiZRKGEsSC5KLndkKXx8VihhLEguSi5ZYSk7Zj1sOwpicmVhayBhfX1mPXZvaWQgMH12YXIgcj1kfHxmO2lmKHJ8fGUpe3ZhciB0LHU7dD1SKGEsRi5ELlBhKTt1PUt6LmdqLmJwO3ZhciB2PVIoYSxGLkQuV2MpOyF0JiZ2JiYodD12W0YuRC5QYV0sdT1Lei5nai51cSk7dHx8KHQ9QXYoUihhLEYuRC5HZCkpLHNiKCJHVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTCIsVC5XLkZoKSx1PUt6LmdqLlZxKTtVKGEsRi5ELlBhLHQpO1UoYSxGLkQuZG0sdSk7ciYmVShhLEYuRC54YyxyKTtlJiZVKGEsIl8mZWNzaWQyIixlKTtWKGEsSC5KLmxqLCEwKX19Owp2YXIgUks9ZnVuY3Rpb24oYSl7UShhLEguSi55bil8fFYoYSxILkouSmEsITEpfSxTSz1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKSxjPVhvKGZwKSxkPVEoYSxILkouc2EpLGU9UihhLEYuRC5HZCksZj1RKGEsSC5KLnBuKTtzd2l0Y2goYil7Y2FzZSBYLlYueGE6IWYmJmUmJlJLKGEpO2EuZXZlbnROYW1lPT09Ri5ELndhJiZWKGEsSC5KLkphLCEwKTticmVhaztjYXNlIFguVi5PYjpjYXNlIFguVi5GYjppZighY3x8ZHx8IWYmJmUpYS5pc0Fib3J0ZWQ9ITA7YnJlYWs7Y2FzZSBYLlYudWI6Y3x8KGEuaXNBYm9ydGVkPSEwKTshZiYmZXx8UksoYSk7UShhLEguSi53ZCl8fChhLmlzQWJvcnRlZD0hMCk7YS5ldmVudE5hbWUhPT1GLkQud2F8fE8oYS5NLEYuRC5DbCkhPT0hMSYmTyhhLk0sRi5ELlRkKSE9PSExfHxWKGEsSC5KLkphLCEwKTticmVhaztjYXNlIFguVi5LYTphLmV2ZW50TmFtZSE9PUYuRC5zYyYmUShhLEguSi5QYykmJihhLmlzQWJvcnRlZD0hMCksYS50YXJnZXQuaWRzW2RDWzFdXSYmCk8oYS5NLEYuRC5paCkhPT0hMCYmKGEuaXNBYm9ydGVkPSEwKX19O3ZhciBUSz1mdW5jdGlvbihhKXt2YXIgYixjPU0oNTc2KTtpZihRKGEsSC5KLnNuKSlzd2l0Y2goUShhLEguSi5kYSkpe2Nhc2UgWC5WLkZiOmlmKCEoYS5ldmVudE5hbWUhPT1GLkQud2F8fGMmJmh3KFEoYSxILkouWWEpKSkpYnJlYWs7Yj05NzthLmV2ZW50TmFtZT09PUYuRC53YSYmR3UoVC5XLk9rKTtNKDQ4OCk/VihhLEguSi5KYSwhMSk6UksoYSk7YnJlYWs7Y2FzZSBYLlYuT2I6aWYoYS5ldmVudE5hbWU9PT1GLkQud2EpYnJlYWs7Yj05ODtNKDQ4OCk/VihhLEguSi5KYSwhMSk6UksoYSk7YnJlYWs7Y2FzZSBYLlYueGE6Yj05OX0hUShhLEguSi5KYSkmJmImJlAoYik7UShhLEguSi5KYSk9PT0hMCYmKGEuaXNBYm9ydGVkPSEwKX07CnZhciBVSz1mdW5jdGlvbihhKXtpZihNKDU2OSkmJldqKCkmJlEoYSxILkouZGEpPT09WC5WLnhhJiYhUShhLEguSi5FYykpe3ZhciBiPU1hdGguZmxvb3IoRGF0ZS5ub3coKS8xRTMpLGM9bmV3IFVpbnQ4QXJyYXkoW2ImMjU1LGI+PjgmMjU1XSksZCxlPXltKCl8fCJYWCIsZj16bSgpfHwiMDAiO2Q9bmV3IFVpbnQ4QXJyYXkoW2UuY2hhckNvZGVBdCgwKSxlLmNoYXJDb2RlQXQoMSksZi5jaGFyQ29kZUF0KDApLGYuY2hhckNvZGVBdCgxKV0pO3ZhciBnPW5ldyBVaW50OEFycmF5KDcpLGg7aWYoKGg9QS5jcnlwdG8pPT1udWxsfHwhaC5nZXRSYW5kb21WYWx1ZXMoZykpZm9yKHZhciBsPTA7bDw3O2wrKylnW2xdPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyNTYpO3ZhciBuPW5ldyBVaW50OEFycmF5KFtdLmNvbmNhdCh3KGMpLHcoZCksdyhnKSkpLHA7dHJ5e3A9YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx3KG4pKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csCiJfIikucmVwbGFjZSgvPSskLywiIil9Y2F0Y2gocSl7cD0iIn1VKGEsRi5ELkVpLHApfX07ZnVuY3Rpb24gVksoKXtyZXR1cm4gTXQoNykmJk10KDkpJiZNdCgxMCl9O3ZhciBXSz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9e307YS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELm9qLChkW2JdPWMsZCkpfSxYSz1mdW5jdGlvbihhLGIpe3ZhciBjPWRJKGEsRi5ELkZpLGEuTS5pYltGLkQuRmldKTtpZihjJiZjW2J8fGEuZXZlbnROYW1lXSE9PXZvaWQgMClyZXR1cm4gY1tifHxhLmV2ZW50TmFtZV19LFlLPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouWWEpO2lmKENkKGIpKXJldHVybiBifSxaSz1mdW5jdGlvbihhKXtpZihRKGEsSC5KLmJlKXx8IWVrKGEuTSkpcmV0dXJuIDE7aWYoIU8oYS5NLEYuRC5kZCkpe3ZhciBiPU8oYS5NLEYuRC5RZik7aWYoYiE9PSEwJiZiIT09InRydWUiKXJldHVybiAxfXZhciBjPU8oYS5NLEYuRC5PaSk7cmV0dXJuIGM9PT0hMXx8Yz09PSJmYWxzZSI/MzoyfTsKdmFyIGFMPWZ1bmN0aW9uKGEsYil7YSYmKCRLKCJzaWQiLGEudGFyZ2V0SWQsYiksJEsoImNjIixhLmNsaWVudENvdW50LGIpLCRLKCJ0bCIsYS50b3RhbExpZmVNcyxiKSwkSygiaGMiLGEuaGVhcnRiZWF0Q291bnQsYiksJEsoImNsIixhLmNsaWVudExpZmVNcyxiKSl9LCRLPWZ1bmN0aW9uKGEsYixjKXtiIT1udWxsJiZjLnB1c2goYSsiPSIrYil9LGJMPWZ1bmN0aW9uKCl7dmFyIGE9Qi5yZWZlcnJlcjtpZihhKXt2YXIgYjtyZXR1cm4gTGooUmooYSksImhvc3QiKT09PSgoYj1BLmxvY2F0aW9uKT09bnVsbD92b2lkIDA6Yi5ob3N0KT8xOjJ9cmV0dXJuIDB9LGRMPWZ1bmN0aW9uKCl7dGhpcy5qYT1jTDt0aGlzLk49MDt0aGlzLnlhPU5mKDU3LDUpO3RoaXMuUj1OZig1OCw1MCk7dGhpcy5mYT1EYigpO3RoaXMuTGE9Imh0dHBzOi8vIitFKDIxKSsiL2E/In07ZEwucHJvdG90eXBlLks9ZnVuY3Rpb24oYSxiLGMsZCl7CnZhciBlPWJMKCksZixnPVtdO2Y9QT09PUEudG9wJiZlIT09MCYmYj8oYj09bnVsbD92b2lkIDA6Yi5jbGllbnRDb3VudCk+MT9lPT09Mj8xOjI6ZT09PTI/MDozOjQ7YSYmJEsoInNpIixhLkpnLGcpOyRLKCJtIiwwLGcpOyRLKCJpc3MiLGYsZyk7JEsoImlmIixjLGcpO2FMKGIsZyk7ZCYmJEsoImZtIixlbmNvZGVVUklDb21wb25lbnQoZC5zdWJzdHJpbmcoMCx0aGlzLlIpKSxnKTt0aGlzLlooZyk7fTtkTC5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPVtdOyRLKCJtIiwxLGYpOyRLKCJzIixhLGYpOyRLKCJwbyIsYkwoKSxmKTtiJiYoJEsoInN0IixiLnN0YXRlLGYpLCRLKCJzaSIsYi5KZyxmKSwkSygic20iLGIuVWcsZikpO2FMKGMsZik7JEsoImMiLGQsZik7ZSYmJEsoImZtIixlbmNvZGVVUklDb21wb25lbnQoZS5zdWJzdHJpbmcoMCwKdGhpcy5SKSksZik7dGhpcy5aKGYpO307ZEwucHJvdG90eXBlLlo9ZnVuY3Rpb24oYSl7YT1hPT09dm9pZCAwP1tdOmE7IWZuLk58fHRoaXMuTj49dGhpcy55YXx8KCRLKCJwaWQiLHRoaXMuZmEsYSksJEsoImJjIiwrK3RoaXMuTixhKSxhLnVuc2hpZnQoImN0aWQ9IitFKDUpKyImdD1zIiksdGhpcy5qYSgiIit0aGlzLkxhK2Euam9pbigiJiIpKSl9O2Z1bmN0aW9uIGVMKGEpe3JldHVybiBhLnBlcmZvcm1hbmNlJiZhLnBlcmZvcm1hbmNlLm5vdygpfHxEYXRlLm5vdygpfQp2YXIgZkw9ZnVuY3Rpb24oYSxiKXt2YXIgYz1BLGQ9TmYoNTMsNTAwKSxlPU5mKDU0LDVFMyksZj1OZig4LDIwKSxnPU5mKDU1LDVFMyksaDt2YXIgbD1mdW5jdGlvbihuLHAscSl7cT1xPT09dm9pZCAwP3txbzpmdW5jdGlvbigpe30sc286ZnVuY3Rpb24oKXt9LHBvOmZ1bmN0aW9uKCl7fSxvbkZhaWx1cmU6ZnVuY3Rpb24oKXt9fTpxO3RoaXMuSWo9bjt0aGlzLkg9cDt0aGlzLk49cTt0aGlzLmZhPXRoaXMuamE9dGhpcy5oZWFydGJlYXRDb3VudD10aGlzLkRqPTA7dGhpcy5mZT0hMTt0aGlzLks9e307dGhpcy5pZD1TdHJpbmcoTWF0aC5mbG9vcihOdW1iZXIuTUFYX1NBRkVfSU5URUdFUipNYXRoLnJhbmRvbSgpKSk7dGhpcy5zdGF0ZT0wO3RoaXMuSmc9ZUwodGhpcy5IKTt0aGlzLlVnPWVMKHRoaXMuSCk7dGhpcy5aPTEwfTtsLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7dGhpcy5SKDEpOwp0aGlzLkxhKCl9O2wucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJue3N0YXRlOnRoaXMuc3RhdGUsSmc6TWF0aC5yb3VuZChlTCh0aGlzLkgpLXRoaXMuSmcpLFVnOk1hdGgucm91bmQoZUwodGhpcy5IKS10aGlzLlVnKX19O2wucHJvdG90eXBlLlI9ZnVuY3Rpb24obil7dGhpcy5zdGF0ZSE9PW4mJih0aGlzLnN0YXRlPW4sdGhpcy5VZz1lTCh0aGlzLkgpKX07bC5wcm90b3R5cGUudmc9ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKHRoaXMuRGorKyl9O2wucHJvdG90eXBlLkxhPWZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLmhlYXJ0YmVhdENvdW50Kys7dGhpcy55YSh7dHlwZTowLGNsaWVudElkOnRoaXMuaWQscmVxdWVzdElkOnRoaXMudmcoKSxtYXhEZWxheTp0aGlzLmhlKCl9LGZ1bmN0aW9uKHApe2lmKHAudHlwZT09PTApe3ZhciBxO2lmKCgocT1wLmZhaWx1cmUpPT1udWxsP3ZvaWQgMDpxLmZhaWx1cmVUeXBlKSE9bnVsbClpZihwLnN0YXRzJiYobi5zdGF0cz0KcC5zdGF0cyksbi5mYSsrLHAuaXNEZWFkfHxuLmZhPmYpe3ZhciByPXAuaXNEZWFkJiZwLmZhaWx1cmUuZmFpbHVyZVR5cGU7bi5aPXJ8fDEwO24uUig0KTtuLkFqKCk7dmFyIHQsdTsodT0odD1uLk4pLnBvKT09bnVsbHx8dS5jYWxsKHQse2ZhaWx1cmVUeXBlOnJ8fDEwLGRhdGE6cC5mYWlsdXJlLmRhdGF9KX1lbHNlIG4uUigzKSxuLlBoKCk7ZWxzZXtpZihuLmhlYXJ0YmVhdENvdW50PnAuc3RhdHMuaGVhcnRiZWF0Q291bnQrZil7bi5oZWFydGJlYXRDb3VudD1wLnN0YXRzLmhlYXJ0YmVhdENvdW50O3ZhciB2LHg7KHg9KHY9bi5OKS5vbkZhaWx1cmUpPT1udWxsfHx4LmNhbGwodix7ZmFpbHVyZVR5cGU6MTN9KX1uLnN0YXRzPXAuc3RhdHM7dmFyIHk9bi5zdGF0ZTtuLlIoMik7aWYoeSE9PTIpaWYobi5mZSl7dmFyIHosQzsoQz0oej1uLk4pLnNvKT09bnVsbHx8Qy5jYWxsKHopfWVsc2V7bi5mZT0hMDt2YXIgRCxJOyhJPShEPW4uTikucW8pPT1udWxsfHxJLmNhbGwoRCl9bi5mYT0KMDtuLk5qKCk7bi5QaCgpfX19KX07bC5wcm90b3R5cGUuaGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0ZT09PTI/ZTpkfTtsLnByb3RvdHlwZS5QaD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5ILnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLkxhKCl9LE1hdGgubWF4KDAsdGhpcy5oZSgpLShlTCh0aGlzLkgpLXRoaXMuamEpKSl9O2wucHJvdG90eXBlLmtyPWZ1bmN0aW9uKG4scCxxKXt2YXIgcj10aGlzO3RoaXMueWEoe3R5cGU6MSxjbGllbnRJZDp0aGlzLmlkLHJlcXVlc3RJZDp0aGlzLnZnKCksY29tbWFuZDpufSxmdW5jdGlvbih0KXtpZih0LnR5cGU9PT0xKWlmKHQucmVzdWx0KXAodC5yZXN1bHQpO2Vsc2V7dmFyIHUsdix4LHk9e2ZhaWx1cmVUeXBlOih4PSh1PXQuZmFpbHVyZSk9PW51bGw/dm9pZCAwOnUuZmFpbHVyZVR5cGUpIT1udWxsP3g6MTIsZGF0YToodj10LmZhaWx1cmUpPT1udWxsP3ZvaWQgMDp2LmRhdGF9LHosQzsoQz0oej1yLk4pLm9uRmFpbHVyZSk9PQpudWxsfHxDLmNhbGwoeix5KTtxKHkpfX0pfTtsLnByb3RvdHlwZS55YT1mdW5jdGlvbihuLHApe3ZhciBxPXRoaXM7aWYodGhpcy5zdGF0ZT09PTQpbi5mYWlsdXJlPXtmYWlsdXJlVHlwZTp0aGlzLlp9LHAobik7ZWxzZXt2YXIgcj10aGlzLnN0YXRlIT09MiYmbi50eXBlIT09MCx0PW4ucmVxdWVzdElkLHUsdj10aGlzLkguc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB5PXEuS1t0XTt5JiYoaW0oNikscS5rZCh5LDcpKX0sKHU9bi5tYXhEZWxheSkhPW51bGw/dTpnKSx4PXtyZXF1ZXN0Om4sSG86cCx6bzpyLE5zOnZ9O3RoaXMuS1t0XT14O3J8fHRoaXMuc2VuZFJlcXVlc3QoeCl9fTtsLnByb3RvdHlwZS5zZW5kUmVxdWVzdD1mdW5jdGlvbihuKXt0aGlzLmphPWVMKHRoaXMuSCk7bi56bz0hMTt0aGlzLklqKG4ucmVxdWVzdCl9O2wucHJvdG90eXBlLk5qPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXModGhpcy5LKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpe3ZhciBxPQp0aGlzLktbcC52YWx1ZV07cS56byYmdGhpcy5zZW5kUmVxdWVzdChxKX19O2wucHJvdG90eXBlLkFqPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPW0oT2JqZWN0LmtleXModGhpcy5LKSkscD1uLm5leHQoKTshcC5kb25lO3A9bi5uZXh0KCkpdGhpcy5rZCh0aGlzLktbcC52YWx1ZV0sdGhpcy5aKX07bC5wcm90b3R5cGUua2Q9ZnVuY3Rpb24obixwKXt0aGlzLmFjKG4pO3ZhciBxPW4ucmVxdWVzdDtxLmZhaWx1cmU9e2ZhaWx1cmVUeXBlOnB9O24uSG8ocSl9O2wucHJvdG90eXBlLmFjPWZ1bmN0aW9uKG4pe2RlbGV0ZSB0aGlzLktbbi5yZXF1ZXN0LnJlcXVlc3RJZF07dGhpcy5ILmNsZWFyVGltZW91dChuLk5zKX07bC5wcm90b3R5cGUua3M9ZnVuY3Rpb24obil7dGhpcy5qYT1lTCh0aGlzLkgpO3ZhciBwPXRoaXMuS1tuLnJlcXVlc3RJZF07aWYocCl0aGlzLmFjKHApLHAuSG8obik7ZWxzZXt2YXIgcSxyOyhyPShxPXRoaXMuTikub25GYWlsdXJlKT09bnVsbHx8ci5jYWxsKHEse2ZhaWx1cmVUeXBlOjE0fSl9fTsKaD1uZXcgbChhLGMsYik7cmV0dXJuIGh9Owp2YXIgZ0w9ZnVuY3Rpb24oKXtyZXR1cm4gYWwoMTgsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGRMfSl9LGNMPWZ1bmN0aW9uKGEpe2lvKGxvKGNvLmlhLlpiKSxmdW5jdGlvbigpe1pjKGEpfSl9LGhMPWZ1bmN0aW9uKGEpe3ZhciBiPWEuc3Vic3RyaW5nKDAsYS5pbmRleE9mKCIvXy9zZXJ2aWNlX3dvcmtlciIpKTtyZXR1cm4iJjFwPTEiKyhiPyImcGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudChiKToiIil9LGlMPWZ1bmN0aW9uKGEpe3ZhciBiPUEubG9jYXRpb24ub3JpZ2luO2lmKCFiKXJldHVybiBudWxsOyhNKDQzMik/V2ooKTpXaigpJiYhYSkmJihhPSIiK2IrWGooKSsiL18vc2VydmljZV93b3JrZXIiKTt2YXIgYz1hLGQsZT1MZigxMSk7ZT1MZigxMCk7ZD1lO2M/KGMuY2hhckF0KGMubGVuZ3RoLTEpIT09Ii8iJiYKKGMrPSIvIiksYT1jK2QpOmE9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL3N0YXRpYy9zZXJ2aWNlX3dvcmtlci8iK2QrIi8iO3ZhciBmO3RyeXtmPW5ldyBVUkwoYSl9Y2F0Y2goZyl7cmV0dXJuIG51bGx9cmV0dXJuIGYucHJvdG9jb2whPT0iaHR0cHM6Ij9udWxsOmZ9LGpMPWZ1bmN0aW9uKGEpe3ZhciBiPW5tKGptLmJhLk9oKTtyZXR1cm4gYiYmYlthXX0sa0w9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0aGlzLks9Z0woKTt0aGlzLlo9dGhpcy5SPSExO3RoaXMuZmE9bnVsbDt0aGlzLmluaXRUaW1lPU1hdGgucm91bmQoTmIoKSk7dGhpcy5IPTE1O3RoaXMuTj10aGlzLkZyKGEpO0Euc2V0VGltZW91dChmdW5jdGlvbigpe2IuaW5pdGlhbGl6ZSgpfSwxRTMpO2JkKGZ1bmN0aW9uKCl7Yi56cyhhKX0pfTtrPWtMLnByb3RvdHlwZTtrLmRlbGVnYXRlPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmdldFN0YXRlKCkhPT0yPyh0aGlzLksuSCh0aGlzLkgse3N0YXRlOnRoaXMuZ2V0U3RhdGUoKSwKSmc6dGhpcy5pbml0VGltZSxVZzpNYXRoLnJvdW5kKE5iKCkpLXRoaXMuaW5pdFRpbWV9LHZvaWQgMCxhLmNvbW1hbmRUeXBlKSxjKHtmYWlsdXJlVHlwZTp0aGlzLkh9KSk6dGhpcy5OLmtyKGEsYixjKX07ay5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk4uZ2V0U3RhdGUoKS5zdGF0ZX07ay56cz1mdW5jdGlvbihhKXt2YXIgYj1BLmxvY2F0aW9uLm9yaWdpbixjPXRoaXMsZD1YYygpO3RyeXt2YXIgZT1kLmNvbnRlbnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxmPWEucGF0aG5hbWUsZz1mW2YubGVuZ3RoLTFdPT09Ii8iP2EudG9TdHJpbmcoKTphLnRvU3RyaW5nKCkrIi8iLGg9YS5vcmlnaW4hPT0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20iP2hMKGYpOiIiLGw7TSgxMzMpJiYobD17c2FuZGJveDoiYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctc2NyaXB0cyJ9KTtYYyhnKyJzd19pZnJhbWUuaHRtbD9vcmlnaW49IitlbmNvZGVVUklDb21wb25lbnQoYikrCmgsdm9pZCAwLGwsdm9pZCAwLGUpO3ZhciBuPWZ1bmN0aW9uKCl7ZC5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTtlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7Yy5mYT1lLmNvbnRlbnRXaW5kb3c7ZC5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKHApe3Aub3JpZ2luPT09YS5vcmlnaW4mJmMuTi5rcyhwLmRhdGEpfSk7Yy5pbml0aWFsaXplKCl9KX07ZC5jb250ZW50RG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSI/bigpOmQuY29udGVudFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe24oKX0pfWNhdGNoKHApe2QucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChkKSx0aGlzLkg9MTEsdGhpcy5LLksodm9pZCAwLHZvaWQgMCx0aGlzLkgscC50b1N0cmluZygpKX19O2suRnI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPWZMKGZ1bmN0aW9uKGQpe3ZhciBlOyhlPWIuZmEpPT0KbnVsbHx8ZS5wb3N0TWVzc2FnZShkLGEub3JpZ2luKX0se3FvOmZ1bmN0aW9uKCl7Yi5SPSEwO2IuSy5LKGMuZ2V0U3RhdGUoKSxjLnN0YXRzKX0sc286ZnVuY3Rpb24oKXt9LHBvOmZ1bmN0aW9uKGQpe2IuUj8oYi5IPShkPT1udWxsP3ZvaWQgMDpkLmZhaWx1cmVUeXBlKXx8MTAsYi5LLkgoYi5ILGMuZ2V0U3RhdGUoKSxjLnN0YXRzLHZvaWQgMCxkPT1udWxsP3ZvaWQgMDpkLmRhdGEpKTooYi5IPShkPT1udWxsP3ZvaWQgMDpkLmZhaWx1cmVUeXBlKXx8NCxiLksuSyhjLmdldFN0YXRlKCksYy5zdGF0cyxiLkgsZD09bnVsbD92b2lkIDA6ZC5kYXRhKSl9LG9uRmFpbHVyZTpmdW5jdGlvbihkKXtiLkg9ZC5mYWlsdXJlVHlwZTtiLksuSChiLkgsYy5nZXRTdGF0ZSgpLGMuc3RhdHMsZC5jb21tYW5kLGQuZGF0YSl9fSk7cmV0dXJuIGN9O2suaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3RoaXMuWnx8dGhpcy5OLmluaXQoKTt0aGlzLlo9ITB9Owp2YXIgbEw9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU7aWYoKGU9akwoYSkpPT1udWxsfHwhZS5kZWxlZ2F0ZSl7dmFyIGY9SWMoKT8xNjo2O2dMKCkuSChmLHZvaWQgMCx2b2lkIDAsYi5jb21tYW5kVHlwZSk7ZCh7ZmFpbHVyZVR5cGU6Zn0pO3JldHVybn1qTChhKS5kZWxlZ2F0ZShiLGMsZCk7fTsKZnVuY3Rpb24gbUwoYSxiLGMsZCl7dmFyIGU9aUwoYSk7aWYoZT09PW51bGwpe2QoIl9pc19zdz1mIisoSWMoKT8xNjo2KSsidGUiKTtyZXR1cm59dmFyIGY9Yj8xOjAsZz1NYXRoLnJvdW5kKE5iKCkpLGgsbD0oaD1qTChlLm9yaWdpbikpPT1udWxsP3ZvaWQgMDpoLmluaXRUaW1lLG49bD9nLWw6dm9pZCAwLHA7TSg0MzIpP3A9V2ooKT92b2lkIDA6QS5sb2NhdGlvbi5ocmVmOnA9QS5sb2NhdGlvbi5ocmVmO2xMKGUub3JpZ2luLHtjb21tYW5kVHlwZTowLHBhcmFtczp7dXJsOmEsbWV0aG9kOmYsdGVtcGxhdGVzOmMsYm9keTpifHwiIixwcm9jZXNzUmVzcG9uc2U6ITAsc2luY2VJbml0Om4sYXR0cmlidXRpb25SZXBvcnRpbmc6ITAscmVmZXJlcjpwLHN0cmljdDpNKDU4NCl9fSxmdW5jdGlvbigpe30sZnVuY3Rpb24ocSl7dmFyIHI9Il9pc19zdz1mIitxLmZhaWx1cmVUeXBlLHQsdT0odD1qTChlLm9yaWdpbikpPT0KbnVsbD92b2lkIDA6dC5nZXRTdGF0ZSgpO3UhPT12b2lkIDAmJihyKz0icyIrdSk7ZChuP3IrKCJ0IituKTpyKyJ0ZSIpfSk7fTtmdW5jdGlvbiBuTChhKXtpZihJZig0NykmJmRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpJiZXaigpKXt2YXIgYj1hLk07aWYoSWMoKSYmYmcoImludGVybmFsX3N3X2FsbG93ZWQiLCIiKSl7dmFyIGM9ZWsoYiksZD1XaigpP1hqKCk6dm9pZCAwLGU7ZT1kP3twYXRoOmQsZW86ImZ1bGwifTpjP3twYXRoOmMsZW86ImxpdGUifTp2b2lkIDA7aWYoZSl7dmFyIGY9ZS5lbyxnPW5ldyBVUkwoZS5wYXRoLEEubG9jYXRpb24ub3JpZ2luKTtpZihnLm9yaWdpbj09PUEubG9jYXRpb24ub3JpZ2luJiZweShmKT09PXZvaWQgMCl7dmFyIGg9b20oam0uYmEuT2gse30pO2hbZl18fChoW2ZdPW5ldyBueShnKSl9fX19fTt2YXIgb0w9ZnVuY3Rpb24oYSl7bkwoYSl9Owp2YXIgcEw9ZnVuY3Rpb24oYSl7aWYoIVEoYSxILkouSmEpJiYhYS5pc0Fib3J0ZWQpaWYoUShhLEguSi5kYSkhPT1YLlYueGEpUShhLEguSi5YbSkmJlUoYSxGLkQuSmgsIjEiKSxJeihhKTtlbHNle3ZhciBiPVEoYSxILkouWWEpLGM9UihhLEYuRC5CYyksZD1RKGEsSC5KLmZkKSxlPUlmKDQ3KSYmZEkoYSwiY2NkX2VuYWJsZV9jbSIsITEpLGY9WG8oZnApJiZRKGEsSC5KLndkKSYmZTtmJiYoVShhLEYuRC5KaCwiMSIpLFEoYSxILkouSWgpJiYoVihhLEguSi5ZYSksVShhLEYuRC5CYyksVihhLEguSi5mZCwhMSkpKTt2YXIgZz1ydihtdik7VihhLEguSi5nbixnKTtmb3IodmFyIGgsbD1bXSxuPW0ocXYpLHA9bi5uZXh0KCk7IXAuZG9uZTtwPW4ubmV4dCgpKXt2YXIgcT1wLnZhbHVlLHI9Z1txLnBiXTtpZihyPT09dm9pZCAwfHxyPHEuT2cpYnJlYWs7bC5wdXNoKHIudG9TdHJpbmcoKSl9KGg9bC5qb2luKCJ+IikpJiZVKGEsIl8mZ2NsX2N0ciIsaCk7dmFyIHQ7dmFyIHU9e3JhbmRvbTpRKGEsCkguSi5FYiksbGFiZWw6UihhLEYuRC5HZCl9LHY9UShhLEguSi5HYSkseD13digpO3g/KHl2KFt1XSx2KSx0PXgubGVuZ3RoPT09MD97cmFuZG9tOjAsbGFiZWw6IjAifTp4WzBdKTp0PXZvaWQgMDt2YXIgeT10O3kmJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSx7bGFzdF9yYW5kb206eS5yYW5kb20sbGFzdF9sYWJlbDp5LmxhYmVsfSk7SXooYSk7aWYoUShhLEguSi5vYikmJlhvKGZwKSl7dmFyIHo9WnUoYSx7TTp1QyhhLk0pfSk7Vih6LEguSi5kYSxYLlYuWmQpO0l6KHopfWlmKFEoYSxILkoubGopKXt2YXIgQz1adShhLHtNOnVDKGEuTSl9KTtWKEMsSC5KLmRhLFguVi56ZCk7SXooQyl9aWYoZil7dmFyIEQ9WnUoYSx7TTp1QyhhLk0pfSk7VShELEYuRC5KaCwiMiIpO1YoRCxILkouRWMsITApO1YoRCxILkouZmQsZCk7VihELEguSi5ZYSxiKTtVKEQsRi5ELkJjLGMpO0l6KEQpfX19O3ZhciBxTD1mdW5jdGlvbihhKXt2YXIgYj1RKGEsSC5KLmRhKT09PVguVi54YTtpZighYnx8YS5ldmVudE5hbWU9PT1GLkQuSWJ8fGEuTS5pc0d0bUV2ZW50KWEuY29weVRvSGl0RGF0YShGLkQuSGEpLGImJihhLmNvcHlUb0hpdERhdGEoRi5ELkZmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkRmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkVmKSxhLmNvcHlUb0hpdERhdGEoRi5ELkNmKSxVKGEsRi5ELndpLEYuRC5JYiksYS5jb3B5VG9IaXREYXRhKEYuRC5TZCksYS5jb3B5VG9IaXREYXRhKEYuRC5RZCksYS5jb3B5VG9IaXREYXRhKEYuRC5SZCkpfTt2YXIgckw9ZnVuY3Rpb24oKXt2YXIgYT1IYyYmSGMudXNlckFnZW50fHwiIjtpZihhLmluZGV4T2YoIlNhZmFyaSIpPDB8fC9DaHJvbWV8Q29hc3R8T3BlcmF8RWRnfFNpbGt8QW5kcm9pZC8udGVzdChhKSlyZXR1cm4hMTt2YXIgYj0oL1ZlcnNpb25cLyhbXGRcLl0rKS8uZXhlYyhhKXx8W10pWzFdfHwiIjtpZihiPT09IiIpcmV0dXJuITE7Zm9yKHZhciBjPVsiMTQiLCIxIiwiMSJdLGQ9Yi5zcGxpdCgiLiIpLGU9MDtlPGQubGVuZ3RoO2UrKyl7aWYoY1tlXT09PXZvaWQgMClyZXR1cm4hMDtpZihkW2VdIT09Y1tlXSlyZXR1cm4gTnVtYmVyKGRbZV0pPk51bWJlcihjW2VdKX1yZXR1cm4gZC5sZW5ndGg+PWMubGVuZ3RofTtmdW5jdGlvbiBzTCgpe3ZhciBhO2E9YT09PXZvaWQgMD9kb2N1bWVudDphO3ZhciBiO3JldHVybiEoKGI9YS5mZWF0dXJlUG9saWN5KT09bnVsbHx8IWIuYWxsb3dlZEZlYXR1cmVzKCkuaW5jbHVkZXMoImF0dHJpYnV0aW9uLXJlcG9ydGluZyIpKX07dmFyIHRMPWZ1bmN0aW9uKGEpe1hvKEYuRC5tYSkmJihBLl9ndG1wY209PT0hMHx8ckwoKT9VKGEsRi5ELkZlLCIyIik6c0woKSYmVShhLEYuRC5GZSwiMSIpKTsoT2MoKXx8UWMoKSkmJlYoYSxILkoub2IsITApO1YoYSxILkouWWUsUShhLEguSi5YZSkmJiFYbyhmcCkpO1EoYSxILkouc2EpJiZVKGEsRi5ELnNhLCEwKTthLk0uZXZlbnRNZXRhZGF0YVtILkouYWVdJiZVKGEsRi5ELlZtLCEwKX07dmFyIHVMPWZ1bmN0aW9uKGEpe2EuY29weVRvSGl0RGF0YShGLkQuUGEpO2EuY29weVRvSGl0RGF0YShGLkQuUWEpO2EuY29weVRvSGl0RGF0YShGLkQuZWIpO1EoYSxILkoub2IpP1UoYSxGLkQuV2ksInd3dy5nb29nbGUuY29tIik6VShhLEYuRC5XaSwid3d3Lmdvb2dsZWFkc2VydmljZXMuY29tIik7dmFyIGI9TyhhLk0sRi5ELldiKTtiIT09ITAmJmIhPT0hMXx8VShhLEYuRC5XYixiKX07dmFyIHZMPWZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0Lmlkc1tkQ1swXV07aWYoYil7VShhLEYuRC55aSxiKTt2YXIgYz1hLnRhcmdldC5pZHNbZENbMV1dO2MmJlUoYSxGLkQuR2QsYyk7TyhhLk0sRi5ELmloKT09PSEwJiZWKGEsSC5KLnBuLCEwKX1lbHNlIGEuaXNBYm9ydGVkPSEwfTtmdW5jdGlvbiB3TChhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZT1GcCgpLGY9RHAoZSk7aWYoZi51cmwpaWYoZCl7dmFyIGc9YyhmLnVybCk7YiE9PWcmJlUoYSxGLkQuUGUsZyl9ZWxzZXt2YXIgaD1mLnVybDtiIT09aCYmVShhLEYuRC5QZSxjKGgpKX19O3ZhciB6TD1mdW5jdGlvbihhKXtpZighUShhLEguSi5zYSkpe3ZhciBiPVIoYSxGLkQuTWUpLGM9TyhhLk0sRi5ELnphKSxkPWM7ZHx8KGQ9Yj09PTE/QS50b3AubG9jYXRpb24uaHJlZjpBLmxvY2F0aW9uLmhyZWYpO1UoYSxGLkQuemEseEwoZCkpO2EuY29weVRvSGl0RGF0YShGLkQuVWEsQi5yZWZlcnJlcik7VShhLEYuRC5NYix5TCgpKTthLmNvcHlUb0hpdERhdGEoRi5ELnRiKTt2YXIgZT1xSSgpO1UoYSxGLkQuYmQsZS53aWR0aCsieCIrZS5oZWlnaHQpO3ZhciBmPU0oNTgzKSYmISFjO3dMKGEsZCxmdW5jdGlvbihnKXt2YXIgaD14TChnKTtmJiYoaD1oLnNwbGl0KCI/IilbMF0pO3JldHVybiBofSl9fTsKdmFyIHhMPWZ1bmN0aW9uKGEpe2lmKGEhPW51bGwpe3ZhciBiPVN0cmluZyhhKS5zdWJzdHJpbmcoMCw1MTIpLGM9Yi5pbmRleE9mKCIjIik7cmV0dXJuIGM9PT0tMT9iOmIuc3Vic3RyaW5nKDAsYyl9cmV0dXJuIiJ9LHlMPWZ1bmN0aW9uKCl7dmFyIGE9Qi50aXRsZTtpZihhPT09dm9pZCAwfHxhPT09IiIpcmV0dXJuIiI7YT1lbmNvZGVVUklDb21wb25lbnQoYSk7Zm9yKHZhciBiPTI1NjtiPjAmJktqKGEuc3Vic3RyaW5nKDAsYikpPT09dm9pZCAwOyliLS07cmV0dXJuIEtqKGEuc3Vic3RyaW5nKDAsYikpfHwiIn07ZnVuY3Rpb24gQUwoYSl7VihhLEguSi5KYSwhMCk7VihhLEguSi5FYixOYigpKTtWKGEsSC5KLnluLGEuTS5ldmVudE1ldGFkYXRhW0guSi5KYV0pfTt2YXIgQkw9ZnVuY3Rpb24oYSl7TSg0NykmJmEuY29weVRvSGl0RGF0YShGLkQua2gpfTt2YXIgQ0w9ZnVuY3Rpb24oYSl7dmFyIGI9TSg0NDMpLGM9TSg1NzApO2lmKChifHxjKSYmWG8oZnApKXt2YXIgZD1RKGEsSC5KLllhKTtpZihodyhkKSl7dmFyIGU9UShhLEguSi5HYSk7aWYoYil7dmFyIGY9UShhLEguSi56ail8fFR2KGUpO1UoYSxGLkQueGMsZil9aWYoYyl7dmFyIGc9U3YoZSx7WGg6ITB9KS5paztnJiZVKGEsIl8mZWNzaWQyIixnKX19fX07dmFyIERMPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouUW0pO2ImJlUoYSxGLkQuV2MsYil9O3ZhciBFTD1mdW5jdGlvbihhKXt2YXIgYj1BO2lmKGIuX19nc2FFeHAmJmIuX19nc2FFeHAuaWQpe3ZhciBjPWIuX19nc2FFeHAuaWQ7aWYoeWIoYykpdHJ5e3ZhciBkPU51bWJlcihjKCkpO2lzTmFOKGQpfHxVKGEsRi5ELlBsLGQpfWNhdGNoKGUpe319fTt2YXIgRkw9ZnVuY3Rpb24oYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5OZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5HZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5VZCk7YS5jb3B5VG9IaXREYXRhKEYuRC5JZSk7YS5jb3B5VG9IaXREYXRhKEYuRC5UYyk7YS5jb3B5VG9IaXREYXRhKEYuRC5MZCl9O3ZhciBHTD1mdW5jdGlvbihhKXtpZihYbyhGLkQubWEpKXthLmNvcHlUb0hpdERhdGEoRi5ELmZiKTt2YXIgYj1ubShqbS5iYS5acSk7aWYoYj09PXZvaWQgMCltbShqbS5iYS5hciwhMCk7ZWxzZXt2YXIgYz1ubShqbS5iYS5zaik7VShhLEYuRC5aZixjKyIuIitiKX19fTsKdmFyIE1MPWZ1bmN0aW9uKGEsYil7aWYoYSYmKHpiKGEpJiYoYT1iQyhhKSksYSkpe3ZhciBjPXZvaWQgMCxkPSExLGU9TyhiLEYuRC5rcSk7aWYoZSYmQXJyYXkuaXNBcnJheShlKSl7Yz1bXTtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGc9YkMoZVtmXSk7ZyYmKGMucHVzaChnKSwoYS5pZD09PWcuaWR8fGEuaWQ9PT1hLmRlc3RpbmF0aW9uSWQmJmEuZGVzdGluYXRpb25JZD09PWcuZGVzdGluYXRpb25JZCkmJihkPSEwKSl9fWlmKCFjfHxkKXt2YXIgaD1PKGIsRi5ELllsKSxsO2lmKGgpe2w9QXJyYXkuaXNBcnJheShoKT9oOltoXTt2YXIgbj1PKGIsRi5ELldsKSxwPU8oYixGLkQuWGwpLHE9TyhiLEYuRC5abCkscj1RbyhPKGIsRi5ELmpxKSksdD1ufHxwLHU9MTthLnByZWZpeCE9PSJVQSJ8fGN8fCh1PTUpO2Zvcih2YXIgdj0wO3Y8bC5sZW5ndGg7disrKWlmKHY8dSlpZihjKUhMKGMsbFt2XSxyLGIse29lOnQsb3B0aW9uczpxfSk7ZWxzZSBpZihhLnByZWZpeD09PQoiQVciJiZhLmlkc1tkQ1sxXV0pe3ZhciB4PWEuaWRzW2RDWzBdXSx5PWEuaWRzW2RDWzFdXSx6PWxbdl0sQz1iLEQ9e29lOnQsb3B0aW9uczpxfTtQKDIyKTtpZih6KXtEPUR8fHt9O3ZhciBJPUlMKEpMLEQseCxDKSxHPXthazp4LGNsOnl9O0Qub2U9PT12b2lkIDAmJihHLmF1dG9yZXBsYWNlPXopO0tMKEcsQyk7SSgyLEQub2UsRyx6LDAsTWIoKSxELm9wdGlvbnMpfX1lbHNlIGlmKGEucHJlZml4PT09IlVBIil7dmFyIE49YS5kZXN0aW5hdGlvbklkLFM9bFt2XSxXPXtvZTp0fTtQKDIzKTtpZihTKXtXPVd8fHt9O3ZhciBlYT1JTChMTCxXLE4pLGphPXt9O1cub2UhPT12b2lkIDA/amEucmVjZWl2ZXI9Vy5vZTpqYS5yZXBsYWNlPVM7amEuZ2Ffd3BpZD1OO2phLmRlc3RpbmF0aW9uPVM7ZWEoMixNYigpLGphKX19fX19fSxITD1mdW5jdGlvbihhLGIsYyxkLGUpe1AoMjEpO2lmKGImJmMpe2U9ZXx8e307Zm9yKHZhciBmPXtjb3VudHJ5TmFtZUNvZGU6YyxkZXN0aW5hdGlvbk51bWJlcjpiLApyZXRyaWV2YWxUaW1lOk1iKCl9LGc9YWwoNCxmdW5jdGlvbigpe3JldHVybnt9fSksaD0wO2g8YS5sZW5ndGg7aCsrKXt2YXIgbD1hW2hdO2dbbC5pZF18fChsJiZsLnByZWZpeD09PSJBVyImJiFmLmFkRGF0YSYmbC5pZHMubGVuZ3RoPj0yPyhmLmFkRGF0YT17YWs6bC5pZHNbZENbMF1dLGNsOmwuaWRzW2RDWzFdXX0sS0woZi5hZERhdGEsZCksZ1tsLmlkXT0hMCk6bCYmbC5wcmVmaXg9PT0iVUEiJiYhZi5nYURhdGEmJihmLmdhRGF0YT17Z2FXcGlkOmwuZGVzdGluYXRpb25JZH0sZ1tsLmlkXT0hMCkpfShmLmdhRGF0YXx8Zi5hZERhdGEpJiZJTChOTCxlLHZvaWQgMCxkKShlLm9lLGYsZS5vcHRpb25zKX19LEtMPWZ1bmN0aW9uKGEsYil7YS5kbWE9JHQoKTthdSgpJiYoYS5kbWFDcHM9WnQoKSk7U3QoYik/YS5ucGE9IjAiOmEubnBhPSIxIn0sSUw9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9QTtpZihlW2EuZnVuY3Rpb25OYW1lXSlyZXR1cm4gYi5ybyYmYmQoYi5ybyksZVthLmZ1bmN0aW9uTmFtZV07CnZhciBmPU9MKCk7ZVthLmZ1bmN0aW9uTmFtZV09ZjtpZihhLmFkZGl0aW9uYWxRdWV1ZXMpZm9yKHZhciBnPTA7ZzxhLmFkZGl0aW9uYWxRdWV1ZXMubGVuZ3RoO2crKyllW2EuYWRkaXRpb25hbFF1ZXVlc1tnXV09ZVthLmFkZGl0aW9uYWxRdWV1ZXNbZ11dfHxPTCgpO2EuaWRLZXkmJmVbYS5pZEtleV09PT12b2lkIDAmJihlW2EuaWRLZXldPWMpO1puKHtkZXN0aW5hdGlvbklkOkUoNSksZW5kcG9pbnQ6MCxldmVudElkOmQ9PW51bGw/dm9pZCAwOmQuZXZlbnRJZCxwcmlvcml0eUlkOmQ9PW51bGw/dm9pZCAwOmQucHJpb3JpdHlJZH0sZEEoImh0dHBzOi8vIiwiaHR0cDovLyIsYS5zY3JpcHRVcmwpLGIucm8sYi50dik7cmV0dXJuIGZ9LE9MPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2EucT1hLnF8fFtdO2EucS5wdXNoKGFyZ3VtZW50cyl9cmV0dXJuIGF9LEpMPXtmdW5jdGlvbk5hbWU6Il9nb29nV2NtSW1wbCIsaWRLZXk6Il9nb29nV2NtQWsiLHNjcmlwdFVybDoid3d3LmdzdGF0aWMuY29tL3djbS9sb2FkZXIuanMifSwKTEw9e2Z1bmN0aW9uTmFtZToiX2dhUGhvbmVJbXBsIixpZEtleToiZ2Ffd3BpZCIsc2NyaXB0VXJsOiJ3d3cuZ3N0YXRpYy5jb20vZ2FwaG9uZS9sb2FkZXIuanMifSxQTD17WW86TGYoMiksZ3I6IjUifSxOTD17ZnVuY3Rpb25OYW1lOiJfZ29vZ0NhbGxUcmFja2luZ0ltcGwiLGFkZGl0aW9uYWxRdWV1ZXM6W0xMLmZ1bmN0aW9uTmFtZSxKTC5mdW5jdGlvbk5hbWVdLHNjcmlwdFVybDoid3d3LmdzdGF0aWMuY29tL2NhbGwtdHJhY2tpbmcvY2FsbC10cmFja2luZ18iKyhQTC5Zb3x8UEwuZ3IpKyIuanMifTt2YXIgUUw9ZnVuY3Rpb24oYSl7UShhLEguSi5zYSl8fE1MKGEudGFyZ2V0LGEuTSk7YS5pc0Fib3J0ZWQ9ITB9O3ZhciBSTD1mdW5jdGlvbihhKXtYbyhGLkQua2EpJiZjeChhKX07dmFyIFNMPWZ1bmN0aW9uKGEpe3ZhciBiPVhvKEYuRC5rYSk/bWooInBzY2RsIik6ImRlbmllZCI7YiE9bnVsbCYmVShhLEYuRC5qaCxiKX07dmFyIFRMPW5ldyBmdW5jdGlvbigpe3RoaXMuSD17fX07dmFyIFVMPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5NO2lmKGI9PT12b2lkIDA/MDpiKXt2YXIgZD1jLmdldE1lcmdlZFZhbHVlcyhGLkQuT2EpO1liKGQpJiZVKGEsRi5ELkxpLFliKGQpKX12YXIgZT1PbyhmRChGLkQuT2EpKSxmPWMuZ2V0TWVyZ2VkVmFsdWVzKEYuRC5PYSwxLGUpLGc9Yy5nZXRNZXJnZWRWYWx1ZXMoRi5ELk9hLDIpLGg9WWIobmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxmLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sVEwuSCkpLCIuIiksbD1ZYihnLCIuIik7aCYmVShhLEYuRC5YYyxoKTtsJiZVKGEsRi5ELlZjLGwpfTt2YXIgVkw9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi50cSk7YiYmVShhLEYuRC5JbCxiKX07ZnVuY3Rpb24gV0woYSl7dmFyIGI9S0IoITEpO2lmKGIhPW51bGwmJmIuc3RhdHVzKXt2YXIgYz17Z3RiOmIuc3RhdHVzfTtiLmRlbGF5JiYoYy5ndGJkPWIuZGVsYXkpO2EubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxjKX19O3ZhciBYTD1mdW5jdGlvbihhKXt6bSgpPT09IlVTLUNPIiYmVShhLEYuRC5MZSwxKX07dmFyIFlMPXtSYTp7Q2s6MSx6bjoyLEhuOjMsSW46NCxKbjo1LHduOjZ9fTtZTC5SYVtZTC5SYS5Da109IkFET0JFX0NPTU1FUkNFIjtZTC5SYVtZTC5SYS56bl09IlNRVUFSRVNQQUNFIjtZTC5SYVtZTC5SYS5Ibl09IldPT19DT01NRVJDRSI7WUwuUmFbWUwuUmEuSW5dPSJXT09fQ09NTUVSQ0VfTEVHQUNZIjtZTC5SYVtZTC5SYS5Kbl09IldPUkRfUFJFU1MiO1lMLlJhW1lMLlJhLnduXT0iU0hPUElGWSI7ZnVuY3Rpb24gWkwoYSl7dmFyIGI9QTtyZXR1cm4gS2ooYi5lc2NhcGUoYi5hdG9iKGEpKSl9CmZ1bmN0aW9uICRMKCl7dHJ5e2lmKCFNKDQ5OCkmJiFNKDQyNSkpcmV0dXJuW107dmFyIGE9bm0oam0uYmEubG4pO2lmKEFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIGE7dmFyIGI9W10sYzthOnt0cnl7Yz0hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W2RhdGEtcmVxdWlyZW1vZHVsZV49Im1hZ2UvIl0nKTticmVhayBhfWNhdGNoKHkpe31jPSExfWMmJmIucHVzaChZTC5SYS5Dayk7dmFyIGQ7YTp7dHJ5e3ZhciBlPVpMKCJZWE56WlhSekxuTnhkV0Z5WlhOd1lXTmxMbU52YlM4PSIpO2Q9ZT8hIUIucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyY149Ii8vJytlKyciXScpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fWQ9ITF9ZCYmYi5wdXNoKFlMLlJhLnpuKTt2YXIgZjthOntpZihNKDQyNSkpdHJ5e3ZhciBnPVpMKCJjMmh2Y0dsbWVTNWpiMjA9IiksaD1aTCgiYzJodmNHbG1lV05rYmk1amIyMD0iKTtmPWcmJmg/ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJjZG4uJytnKyciXSxtZXRhW3Byb3BlcnR5PSJvZzppbWFnZSJdW2NvbnRlbnQqPSJjZG4uJysKKGcrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9ImNkbi4nKSsoZysnIl0sbGlua1tyZWw9InByZWNvbm5lY3QiXVtocmVmKj0iZm9udHMuJykrKGgrJyJdLGxpbmtbcmVsPSJwcmVjb25uZWN0Il1baHJlZio9Iml0ZXJhYmxlLXNob3BpZnkiXSxsaW5rW3JlbD0icHJlY29ubmVjdCJdW2hyZWYqPSJ2LicpKyhnKyciXScpKTohMTticmVhayBhfWNhdGNoKHkpe31mPSExfWYmJmIucHVzaChZTC5SYS53bik7dmFyIGw7YTp7dHJ5e2w9ISFCLnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPSJ3b29jb21tZXJjZSJdLGxpbmtbaHJlZio9Indvb2NvbW1lcmNlIl0sW2NsYXNzfD0id29vY29tbWVyY2UiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fWw9ITF9bCYmYi5wdXNoKFlMLlJhLkluKTt2YXIgbjthOnt0cnl7dmFyIHAscT0oKHA9Qi5sb2NhdGlvbik9PW51bGw/dm9pZCAwOnAuaG9zdG5hbWUpfHwiIixyLHQ9KChyPUIubG9jYXRpb24pPT1udWxsP3ZvaWQgMDpyLm9yaWdpbil8fAoiIix1PVpMKCJMbmR2Y21Sd2NtVnpjeTVqYjIwPSIpLHY9WkwoIkx5OXpMbmN1YjNKbiIpO249dSYmdj9UYihxLHUpfHwhIUIucXVlcnlTZWxlY3RvcignW3NyY149IicrdCsnL3dwLWNvbnRlbnQiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb3JkUHJlc3MgIl0sbGlua1tyZWw9ImRucy1wcmVmZXRjaCJdW2hyZWY9IicrKHYrJyJdJykpOiExO2JyZWFrIGF9Y2F0Y2goeSl7fW49ITF9biYmYi5wdXNoKFlMLlJhLkpuKTt2YXIgeDthOnt0cnl7eD0hIUIucXVlcnlTZWxlY3RvcignW2NsYXNzKj0id29vY29tbWVyY2UiXSxtZXRhW25hbWU9ImdlbmVyYXRvciJdW2NvbnRlbnRePSJXb29Db21tZXJjZSAiXScpO2JyZWFrIGF9Y2F0Y2goeSl7fXg9ITF9eCYmYi5wdXNoKFlMLlJhLkhuKTtVQigpJiZtbShqbS5iYS5sbixiKTtyZXR1cm4gYn1jYXRjaCh5KXt9cmV0dXJuW119O2Z1bmN0aW9uIHdNKGEpe2lmKE0oNDI1KSYmUShhLEguSi5GYykpe3ZhciBiPU5mKDY3LDE1MDApLGM9YS5tZXJnZUhpdERhdGFGb3JLZXksZD1GLkQuVGEsZT17fTtjLmNhbGwoYSxkLGUpfX07dmFyIHhNPSJwbGF0Zm9ybSBwbGF0Zm9ybVZlcnNpb24gYXJjaGl0ZWN0dXJlIG1vZGVsIHVhRnVsbFZlcnNpb24gYml0bmVzcyBmdWxsVmVyc2lvbkxpc3Qgd293NjQiLnNwbGl0KCIgIik7ZnVuY3Rpb24geU0oYSl7dmFyIGI7cmV0dXJuKGI9YS5nb29nbGVfdGFnX2RhdGEpIT1udWxsP2I6YS5nb29nbGVfdGFnX2RhdGE9e319ZnVuY3Rpb24gek0oYSl7dmFyIGIsYztyZXR1cm4oYz0oYj1hLmdvb2dsZV90YWdfZGF0YSk9PW51bGw/dm9pZCAwOmIudWFjaF9wcm9taXNlKSE9bnVsbD9jOm51bGx9ZnVuY3Rpb24gQU0oYSl7dmFyIGIsYztyZXR1cm4gdHlwZW9mKChiPWEubmF2aWdhdG9yKT09bnVsbD92b2lkIDA6KGM9Yi51c2VyQWdlbnREYXRhKT09bnVsbD92b2lkIDA6Yy5nZXRIaWdoRW50cm9weVZhbHVlcyk9PT0iZnVuY3Rpb24ifQpmdW5jdGlvbiBCTShhKXtpZighQU0oYSkpcmV0dXJuIG51bGw7dmFyIGI9eU0oYSk7aWYoYi51YWNoX3Byb21pc2UpcmV0dXJuIGIudWFjaF9wcm9taXNlO3ZhciBjPWEubmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuZ2V0SGlnaEVudHJvcHlWYWx1ZXMoeE0pLnRoZW4oZnVuY3Rpb24oZCl7Yi51YWNoIT1udWxsfHwoYi51YWNoPWQpO3JldHVybiBkfSk7cmV0dXJuIGIudWFjaF9wcm9taXNlPWN9Owp2YXIgQ009ZnVuY3Rpb24oKXt0aGlzLndpbmRvdz1BO3RoaXMuTj1OYn07Q00ucHJvdG90eXBlLlI9ZnVuY3Rpb24oKXtpZihBTSh0aGlzLndpbmRvdykmJih0aGlzLlo9dGhpcy5OKCksIXpNKHRoaXMud2luZG93KSkpe3ZhciBhPUJNKHRoaXMud2luZG93KTthJiZhLnRoZW4oZnVuY3Rpb24oKXtQKDk1KX0pLmNhdGNoKGZ1bmN0aW9uKCl7UCg5Nil9KX19O0NNLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy53aW5kb3cuZ29vZ2xlX3RhZ19kYXRhLGI7aWYoYSE9bnVsbCYmYS51YWNoKXt2YXIgYz1hLnVhY2gsZD1uYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMpO2MuZnVsbFZlcnNpb25MaXN0JiYoZC5mdWxsVmVyc2lvbkxpc3Q9Yy5mdWxsVmVyc2lvbkxpc3Quc2xpY2UoMCkpO2I9ZH1lbHNlIGI9bnVsbDtyZXR1cm4gYn07Q00ucHJvdG90eXBlLmZhPWZ1bmN0aW9uKGEpe3ZhciBiPTAsYz10aGlzLGQ9ZnVuY3Rpb24oaCxsKXt0cnl7YShoLGwpfWNhdGNoKG4pe319LAplPXRoaXMuSCgpO2lmKGUpZChlKTtlbHNle3ZhciBmPXpNKHRoaXMud2luZG93KTtpZihmKXtiPU1hdGgubWluKE1hdGgubWF4KGlzRmluaXRlKGIpP2I6MCwwKSwxRTMpO3ZhciBnPXRoaXMud2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtkLktnfHwoZC5LZz0hMCxQKDEwNiksZChudWxsLEVycm9yKCJUaW1lb3V0IikpKX0sYik7Zi50aGVuKGZ1bmN0aW9uKGgpe2QuS2d8fChkLktnPSEwLFAoMTA0KSxjLndpbmRvdy5jbGVhclRpbWVvdXQoZyksZChoKSl9KS5jYXRjaChmdW5jdGlvbihoKXtkLktnfHwoZC5LZz0hMCxQKDEwNSksYy53aW5kb3cuY2xlYXJUaW1lb3V0KGcpLGQobnVsbCxoKSl9KX1lbHNlIGQobnVsbCl9fTtDTS5wcm90b3R5cGUuSz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlohPT12b2lkIDB9O3ZhciBETT1mdW5jdGlvbigpe3ZhciBhO2E9YT09PXZvaWQgMD9BOmE7cmV0dXJuIEFNKGEpfSxFTT1mdW5jdGlvbihhKXt2YXIgYj17fTtiW0YuRC5jZ109YS5hcmNoaXRlY3R1cmU7CmJbRi5ELmRnXT1hLmJpdG5lc3M7YS5mdWxsVmVyc2lvbkxpc3QmJihiW0YuRC5lZ109YS5mdWxsVmVyc2lvbkxpc3QubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoYy5icmFuZHx8IiIpKyI7IitlbmNvZGVVUklDb21wb25lbnQoYy52ZXJzaW9ufHwiIil9KS5qb2luKCJ8IikpO2JbRi5ELmZnXT1hLm1vYmlsZT8iMSI6IjAiO2JbRi5ELmdnXT1hLm1vZGVsO2JbRi5ELmhnXT1hLnBsYXRmb3JtO2JbRi5ELmlnXT1hLnBsYXRmb3JtVmVyc2lvbjtiW0YuRC5qZ109YS53b3c2ND8iMSI6IjAiO3JldHVybiBifSxGTT1uZXcgQ007dmFyIEdNPWZ1bmN0aW9uKGEpe2lmKCFETSgpKVAoODcpO2Vsc2UgaWYoRk0uSygpKXtQKDg1KTt2YXIgYj1GTS5IKCk7aWYoYil7aWYoYilmb3IodmFyIGM9RU0oYiksZD1tKE9iamVjdC5rZXlzKGMpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtVKGEsZixjW2ZdKX19ZWxzZSBQKDg2KX19O2Z1bmN0aW9uIEhNKGEsYil7Yj1iPT09dm9pZCAwPyExOmI7dmFyIGM9UShhLEguSi5zZyksZD1kSShhLCJjdXN0b21fZXZlbnRfYWNjZXB0X3J1bGVzIiwhMSkmJiFiO2lmKGMpe3ZhciBlPWMuaW5kZXhPZihhLnRhcmdldC5kZXN0aW5hdGlvbklkKT49MCxmPSEwO1EoYSxILkouQ2MpJiYoZj1RKGEsSC5KLk5iKT09PXZrKCkpO2UmJmY/VihhLEguSi5raSwhMCk6KFYoYSxILkoua2ksITEpLGR8fChhLmlzQWJvcnRlZD0hMCkpO2lmKGEuY2FuQmVBY2NlcHRlZCgpKXt2YXIgZz11aygpLmluZGV4T2YoYS50YXJnZXQuZGVzdGluYXRpb25JZCk+PTAsaD0hMTtpZighZyl7dmFyIGwsbj0obD1uayhhLnRhcmdldC5kZXN0aW5hdGlvbklkKSk9PW51bGw/dm9pZCAwOmwuY2Fub25pY2FsQ29udGFpbmVySWQ7biYmKGg9dmsoKT09PW4pfWd8fGg/UShhLEguSi5raSkmJmEuYWNjZXB0KCk6YS5pc0Fib3J0ZWQ9ITB9ZWxzZSBhLmlzQWJvcnRlZD0hMH19O3ZhciBJTT1mdW5jdGlvbihhKXt2YXIgYj1PKGEuTSxGLkQuWmMpLGM9TyhhLk0sRi5ELlljKTtiJiYhYz8oYS5ldmVudE5hbWUhPT1GLkQud2EmJmEuZXZlbnROYW1lIT09Ri5ELnlmJiZQKDEzMSksYS5pc0Fib3J0ZWQ9ITApOiFiJiZjJiYoUCgxMzIpLGEuaXNBYm9ydGVkPSEwKX07dmFyIEpNPWZ1bmN0aW9uKGEpe2lmKGEuZXZlbnROYW1lPT09Ri5ELndhKXt2YXIgYj1JZigxMSksYz1RKGEsSC5KLkhxKTshKCFNKDU1MCkmJmJ8fGMpfHxhLnRhcmdldC5KYygpfHxZRygiaWRjX2NvbmZpZ19wdiIsYS50YXJnZXQuZGVzdGluYXRpb25JZCl8fChhLmlzQWJvcnRlZD0hMCl9fTt2YXIgTE09ZnVuY3Rpb24oYSxiKXtLTS5OKGEsYil9LE1NPWZ1bmN0aW9uKCl7dGhpcy5IPXt9fTtNTS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuSFthXTtjfHwoYz10aGlzLkhbYV09W10pO2MucHVzaChiKX07TU0ucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5IW2EudGFyZ2V0LmRlc3RpbmF0aW9uSWRdO2lmKCFhLmlzQWJvcnRlZCYmYilmb3IodmFyIGM9ZkkoYSksZD0wO2Q8Yi5sZW5ndGg7KytkKXt0cnl7YltkXShjKX1jYXRjaChlKXthLmlzQWJvcnRlZD0hMH1pZihhLmlzQWJvcnRlZClicmVha319O3ZhciBLTT1uZXcgTU07dmFyIE5NPWZ1bmN0aW9uKGEpe0tNLksoYSk7fTt2YXIgT009ZnVuY3Rpb24oYSl7YSYmKEFwKDQ5NSxhKSxBcCg1NjcsYSksQXAoNDUwLGEpLEFwKDQ0MyxhKSxBcCg1ODcsYSksQXAoNTc2LGEpLEFwKDU3MCxhKSxBcCg1ODEsYSksQXAoNjAyLGEpKX0sUE09ZnVuY3Rpb24oYSl7aWYoUShhLEguSi53ZikmJlhvKGZwKSl7dmFyIGI9UShhLEguSi5HYSksYz1RKGEsSC5KLmRhKSE9PVguVi51YiYmUShhLEguSi5kYSkhPT1YLlYuT2ImJlEoYSxILkouZGEpIT09WC5WLkZiJiZhLmV2ZW50TmFtZSE9PUYuRC5KYjtIdihiLGMpO3ZhciBkPUR2W0d2KGIucHJlZml4KV07T00oZCk7VShhLEYuRC5FZCxkKX19O2Z1bmN0aW9uIFFNKCl7cmV0dXJuIGtqKCJkZWR1cGVfZ2NsaWQiLGZ1bmN0aW9uKCl7cmV0dXJuIEF2KCl9KX07dmFyIFJNPS9eKHd3d1wuKT9nb29nbGUoXC5jb20/KT8oXC5bYS16XXsyfXQ/KT8kLyxTTT0vXnd3dy5nb29nbGVhZHNlcnZpY2VzLmNvbSQvO2Z1bmN0aW9uIFRNKGEpe2F8fChhPVVNKCkpO3JldHVybiBhLk50PyExOmEubnN8fGEucXN8fGEudnN8fGEucnN8fGEuRGd8fGEuVGh8fGEuVHJ8fGEuVmg9PT0iYXcuZHMifHxNKDIzNSkmJmEuVmg9PT0iYXcuZHYifHxhLllyPyEwOiExfQpmdW5jdGlvbiBVTSgpe3ZhciBhPXt9LGI9VXEoITApO2EuTnQ9ISFiLl91cDt2YXIgYz1lcygpLGQ9YXQoKTthLm5zPWMuYXchPT12b2lkIDA7YS5xcz1jLmRjIT09dm9pZCAwO2EudnM9Yy53YnJhaWQhPT12b2lkIDA7YS5ycz1jLmdicmFpZCE9PXZvaWQgMDthLlZoPXR5cGVvZiBjLmdjbHNyYz09PSJzdHJpbmciP2MuZ2Nsc3JjOnZvaWQgMDthLkRnPWQuRGc7YS5UaD1kLlRoO3ZhciBlPUIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIjthLllyPVJNLnRlc3QoZSk7YS5Ucj1TTS50ZXN0KGUpO3JldHVybiBhfTtmdW5jdGlvbiBWTSgpe3ZhciBhPUEuX191c3BhcGk7aWYoeWIoYSkpe3ZhciBiPSIiO3RyeXthKCJnZXRVU1BEYXRhIiwxLGZ1bmN0aW9uKGMsZCl7aWYoZCYmYyl7dmFyIGU9Yy51c3BTdHJpbmc7ZSYmUmVnRXhwKCJeW1xcZGEtekEtWi1dezEsMjB9JCIpLnRlc3QoZSkmJihiPWUpfX0pfWNhdGNoKGMpe31yZXR1cm4gYn19Owp2YXIgV009ZnVuY3Rpb24oYSl7dmFyIGI9WG8oZnApO1YoYSxILkouWWUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExJiYhYik7dmFyIGM9UShhLEguSi5kaiksZD1PKGEuTSxGLkQudWMpIT09ITEsZT1MSyhhKTtkfHxVKGEsRi5ELkhkLCIxIik7dmFyIGY9SHIoZS5wcmVmaXgpLGc9UShhLEguSi5zYSl8fFEoYSxILkoudWcpfHxRKGEsSC5KLldlKTtjfHxnfHxVKGEsIl8mYXB2YyIsIjAiKTthLk0uaXNHdG1FdmVudCYmVShhLEYuRC5JbCwiZyIpO1UoYSxGLkQuRWQpO1UoYSxGLkQuTWIpO2lmKGImJihVKGEsRi5ELk1iLHlMKCkpLGQpKXtIdihlKTt2YXIgaD1EdltHdihlLnByZWZpeCldO1UoYSxGLkQuRWQsaCk7T00oaCl9aWYoYS5ldmVudE5hbWU9PT1GLkQud2EmJiFnKXt2YXIgbD1PKGEuTSxGLkQuemMpLG49TyhhLk0sRi5ELkRiKXx8e307UEsoe1RuOmQsbW86bixRbzpsLFVuOmV9KTshYyYmWXMoZikmJihWKGEsSC5KLnZkLCEwKSxVKGEsIl8mYXB2YyIsCiIxIikpfWlmKGMpYS5pc0Fib3J0ZWQ9ITA7ZWxzZXthLnRhcmdldC5kZXN0aW5hdGlvbklkJiZVKGEsRi5ELlFlLGEudGFyZ2V0LmRlc3RpbmF0aW9uSWQpO1UoYSxGLkQuVWIsYS5ldmVudE5hbWUpO2EuZXZlbnROYW1lPT09Ri5ELndhJiZVKGEsRi5ELlViLEYuRC5zYyk7aWYoUShhLEguSi5zYSkpVShhLEYuRC5VYixGLkQud3ApLFUoYSxGLkQuc2EsIjEiKTtlbHNlIGlmKFEoYSxILkoudWcpKVUoYSxGLkQuVWIsRi5ELkhwKTtlbHNlIGlmKFEoYSxILkouV2UpKVUoYSxGLkQuVWIsRi5ELkVwKTtlbHNle3ZhciBwPWVzKCk7VShhLEYuRC5EZCxwLmdjbGlkKTtVKGEsRi5ELktkLHAuZGNsaWQpO1UoYSxGLkQuQWwscC5nY2xzcmMpO2lmKCFSKGEsRi5ELkRkKSYmIVIoYSxGLkQuS2QpfHxNKDQyMSkpVShhLEYuRC5FZSxwLndicmFpZCksVShhLEYuRC5CZixwLmdicmFpZCk7dmFyIHE9TSg1ODkpLHI9ZnVuY3Rpb24oZmEpe3JldHVybiBmYS5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpfSwKdD0hIU8oYS5NLEYuRC56YSksdT1xP3Q/ZnVuY3Rpb24oZmEpe3JldHVybiB4TChyKGZhKSl9OmZ1bmN0aW9uKGZhKXtyZXR1cm4geEwoZmEucmVwbGFjZSgvIy4qJC8sIiIpKX06cix2PWJ0KHUpO1UoYSxGLkQuemEsdik7dmFyIHg9ISFPKGEuTSxGLkQuVWEpLHk9Qi5yZWZlcnJlcjtVKGEsRi5ELlVhLHE/eD9yKHkpOnkucmVwbGFjZSgvIy4qJC8sIiIpOkIucmVmZXJyZXI/TGooUmooQi5yZWZlcnJlciksImhvc3QiKToiIik7d0woYSx2LHUsITApO2lmKEtjKXt2YXIgej1MaihSaihLYyksImhvc3QiKTt6JiZVKGEsRi5ELmJtLHopfWlmKCFRKGEsSC5KLldlKSl7dmFyIEM9YXQoKTtVKGEsRi5ELnpmLEMuRGcpO1UoYSxGLkQuQWYsQy5Tcil9dmFyIEQ9VU0oKTtUTShEKSYmVShhLEYuRC5QZCwiMSIpO1UoYSxGLkQuRGwsUU0oKSk7VXEoITEpLl91cD09PSIxIiYmVShhLEYuRC5RbCwiMSIpfXdvLkg9ITA7VShhLEYuRC5TYik7VShhLEYuRC5sYik7aWYoTSg0MjEpKXt2YXIgST1GcihlKTsKSS5sZW5ndGg+MCYmVShhLEYuRC5TYixJLmpvaW4oIi4iKSk7dmFyIEc9RHIoZisiX2F3Iik7Ry5sZW5ndGg+MCYmVShhLEYuRC5sYixHLmpvaW4oIi4iKSl9ZWxzZSBpZighUihhLEYuRC5EZCkmJiFSKGEsRi5ELktkKSYmV3MoZikpe3ZhciBOPUZyKGUpO04ubGVuZ3RoPjAmJlUoYSxGLkQuU2IsTi5qb2luKCIuIikpfWVsc2UgaWYoIVIoYSxGLkQuRWUpJiZiKXt2YXIgUz1EcihmKyJfYXciKTtTLmxlbmd0aD4wJiZVKGEsRi5ELmxiLFMuam9pbigiLiIpKX1VKGEsRi5ELlVsLHFkKCkpO2EuTS5pc0d0bUV2ZW50JiYoYS5NLkVhW0YuRC5SY109ZkQoRi5ELlJjKSk7U3QoYS5NKT9VKGEsRi5ELmRlLCExKTpVKGEsRi5ELmRlLCEwKTtWKGEsSC5KLkJrLCEwKTt2YXIgVz1WTSgpO1chPT12b2lkIDAmJlUoYSxGLkQua2csV3x8ImVycm9yIik7dmFyIGVhPUx0KCk7ZWEmJlUoYSxGLkQuS2UsZWEpO3ZhciBqYT1LdCgpO2phJiZVKGEsRi5ELk9lLGphKTtRKGEsSC5KLlBjKXx8VihhLEguSi5KYSwKITEpfX07CnZhciBYTT1mdW5jdGlvbihhLGIsYyl7Yj1iPT09dm9pZCAwPyEwOmI7Yz1jPT09dm9pZCAwP3t9OmM7aWYoYS5ldmVudE5hbWU9PT1GLkQuSmImJiFhLk0uaXNHdG1FdmVudCl7dmFyIGQ9TyhhLk0sRi5ELlNmKTtpZih0eXBlb2YgZD09PSJmdW5jdGlvbiImJiFRKGEsSC5KLnNhKSl7dmFyIGU9U3RyaW5nKE8oYS5NLEYuRC5UZikpLGY9ZTtjW2VdJiYoZj1jW2VdKTt2YXIgZz1SKGEsZil8fE8oYS5NLGUpO2lmKGIpe2lmKHR5cGVvZiBkPT09ImZ1bmN0aW9uIilpZihlPT09Ri5ELmxiJiZnIT09dm9pZCAwKXt2YXIgaD1nLnNwbGl0KCIuIik7aC5sZW5ndGg9PT0wP2Qodm9pZCAwKTpoLmxlbmd0aD09PTE/ZChoWzBdKTpkKGgpfWVsc2UgaWYoZT09PUYuRC5xcSYmTSgyNTgpKXt2YXIgbCxuPXt9O1hvKGZwKSYmKG4uYXVpZD1SKGEsRi5ELkVkKSk7dmFyIHA9VU0oKTtpZihUTShwKSluLmdhZF9zb3VyY2U9cC5EZyxuLmdhZF9jYW1wYWlnbmlkPXAuVGgsbi5zZXNzaW9uX3N0YXJ0X3RpbWVfdXNlYz0KKERhdGUubm93KCkqMUUzKS50b1N0cmluZygpLG4ubGFuZGluZ19wYWdlX3VybD1BLmxvY2F0aW9uLmhyZWYsbi5sYW5kaW5nX3BhZ2VfcmVmZXJyZXI9Qi5yZWZlcnJlcixuLmxhbmRpbmdfcGFnZV91c2VyX2FnZW50PUhjLnVzZXJBZ2VudDtlbHNle3ZhciBxPVEoYSxILkouR2EpO24uZ2FkX3NvdXJjZT1ScyhxLnByZWZpeCkuRWd9bD1idG9hKEpTT04uc3RyaW5naWZ5KG4pKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0rJC8sIiIpO2QobCl9ZWxzZSBkKGcpfWVsc2UgZChnKX1hLmlzQWJvcnRlZD0hMH19O3ZhciBZTT1mdW5jdGlvbihhKXtpZihNKDQyNSkmJlEoYSxILkouRmMpKXtmb3IodmFyIGI9WyJfJmFwdmMiLCJ0aWRzIixGLkQuVGEsRi5ELlFpLEYuRC5VYixGLkQuUWUsRi5ELlZjLEYuRC5YY10sYz1tKGV1KGEpKSxkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7dmFyIGU9ZC52YWx1ZTtpZihlPT09Ri5ELnphKXt2YXIgZj1SKGEsZSk7ZiYmKGY9Zi5yZXBsYWNlKC9bXD8jXS4qJC8sIiIpKTtVKGEsZSxmKX1lbHNlIGIuaW5jbHVkZXMoZSl8fFUoYSxlKX1WKGEsSC5KLlhnKTtWKGEsSC5KLmhkKX19O2Z1bmN0aW9uIFpNKGEpe2lmKGZuLkspaWYod28uSD0hMCxhLmV2ZW50TmFtZT09PUYuRC53YSl6byhhLk0sYS50YXJnZXQuaWQpO2Vsc2V7UShhLEguSi5QYyl8fCh3by5LW2EudGFyZ2V0LmlkXT0hMCk7dmFyIGI9UShhLEguSi5OYik7WkIoYil9fTt2YXIgJE09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj1iPT09dm9pZCAwP3t9OmI7Yz1mLlNqPT09dm9pZCAwPyExOmYuU2o7ZD1mLk1qPT09dm9pZCAwPyExOmYuTWo7ZT1mLmtvPT09dm9pZCAwPyExOmYua287ZHx8KGEuTS5pc0d0bUV2ZW50P1EoYSxILkouZGEpIT09WC5WLnhhJiZhLmV2ZW50TmFtZSYmVShhLEYuRC5VYixhLmV2ZW50TmFtZSk6VShhLEYuRC5VYixhLmV2ZW50TmFtZSkpO0diKGEuTS5FYSxmdW5jdGlvbihnLGgpe016W2ddfHxjJiZCb1tnXXx8ZSYmT3pbZ118fFUoYSxnLGgpfSl9O3ZhciBhTj1mdW5jdGlvbihhKXtmb3IodmFyIGI9bShbRi5ELlBhLEYuRC5RYSxGLkQuZWIsRi5ELk5lLEYuRC5HZSxGLkQuVWQsRi5ELkllLEYuRC5UYyxGLkQuTGQsRi5ELmtoLEYuRC5GZixGLkQuRGYsRi5ELkVmLEYuRC5DZixGLkQud2ksRi5ELlNkLEYuRC5RZCxGLkQuUmQsRi5ELnRiXSksYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYS5jb3B5VG9IaXREYXRhKGMudmFsdWUpfTtmdW5jdGlvbiBiTihhLGIpe3JldHVybiBrcigiZ3NpZF9kYyIse3ZhbHVlOntqb2luSWQ6YSxsYXN0Sm9pbmVkVGltZU1zOmJ9LGV4cGlyZXM6YiszRTV9KT09PTA/ITA6ITF9Owp2YXIgY049ZnVuY3Rpb24oYSl7aWYoWG8oZnApKXt2YXIgYjthOnt2YXIgYz1ucigiZ3NpZF9kYyIpO2lmKGMuZXJyb3I9PT0wJiZjLnZhbHVlJiZ0eXBlb2YgYy52YWx1ZT09PSJvYmplY3QiKXt2YXIgZD1jLnZhbHVlO2lmKGQudmFsdWUmJnR5cGVvZiBkLnZhbHVlPT09Im9iamVjdCIpe3ZhciBlPWQudmFsdWU7aWYoZS5qb2luSWQmJmUubGFzdEpvaW5lZFRpbWVNcyYmdHlwZW9mIGUuam9pbklkPT09InN0cmluZyImJnR5cGVvZiBlLmxhc3RKb2luZWRUaW1lTXM9PT0ibnVtYmVyIil7Yj1lO2JyZWFrIGF9fX1iPXZvaWQgMH12YXIgZj1iLGc9Zj09bnVsbD92b2lkIDA6Zi5qb2luSWQsaD1OYigpO2lmKCFmfHwhZ3x8Zi5sYXN0Sm9pbmVkVGltZU1zPGgtM0U1KXt2YXIgbD1jYygpO2c9bCYmYk4obCxOYigpKT9sOnZvaWQgMDtnJiZWKGEsSC5KLmhkLCEwKX1lbHNlIGcmJmYubGFzdEpvaW5lZFRpbWVNczxoLTZFNCYmYk4oZi5qb2luSWQsaCkmJlYoYSxILkouaGQsITApO2cmJk0oNDc0KSYmClYoYSxILkouWGcsZyl9fTt2YXIgZE49ZnVuY3Rpb24oYSl7VihhLEguSi53ZixPKGEuTSxGLkQudWMpIT09ITEpO1YoYSxILkouR2EsTEsoYSkpO1YoYSxILkouWGUsTyhhLk0sRi5ELm1iKSE9bnVsbCYmTyhhLk0sRi5ELm1iKSE9PSExKTtWKGEsSC5KLndkLFN0KGEuTSkpfTt2YXIgZU49e3pxOntVdDoiY2QiLGZwOiJjZSIsVnQ6ImNmIixXdDoiY3BmIixYdDoiY3UifX07dmFyIGZOPWZ1bmN0aW9uKGEpe3ZhciBiPWVOLnpxLmZwLGM9TyhhLk0sRi5ELkNiKTtSKGEsRi5ELmVkKXx8VShhLEYuRC5lZCx7fSk7UihhLEYuRC5lZClbYl09Y307ZnVuY3Rpb24gZ04oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYz13YihyYi5HVEFHX0VWRU5UX0ZFQVRVUkVfQ0hBTk5FTHx8W10pO2MmJihVKGEsRi5ELlZmLGMpLGImJnViKCkpfTt2YXIgaE49ZnVuY3Rpb24oYSl7dmFyIGI9YS5NLmdldE1lcmdlZFZhbHVlcyhGLkQuVGEpO2ImJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSxiKX07dmFyIGlOPWZ1bmN0aW9uKGEpe3ZhciBiPU9wKCExKTtVKGEsRi5ELk1lLGIpfTt2YXIgak49ZnVuY3Rpb24oYSl7UShhLEguSi53ZCk/VShhLEYuRC5kZSwiMCIpOlUoYSxGLkQuZGUsIjEiKX07dmFyIGtOPWZ1bmN0aW9uKGEsYil7aWYoYj09PXZvaWQgMHx8Yil7dmFyIGM9Vk0oKTtjIT09dm9pZCAwJiZVKGEsRi5ELmtnLGN8fCJlcnJvciIpfXZhciBkPUx0KCk7ZCYmVShhLEYuRC5LZSxkKTt2YXIgZT1LdCgpO2UmJlUoYSxGLkQuT2UsZSl9O3ZhciBsTj1mdW5jdGlvbihhKXt2YXIgYj1ubShqbS5iYS5raiksYz1FKDUpO2ImJmJbY10mJmEubWVyZ2VIaXREYXRhRm9yS2V5KEYuRC5UYSx7cmV0cnk6IjEifSl9O3ZhciBtTj1mdW5jdGlvbihhKXtVcSghMSkuX3VwPT09IjEiJiZVKGEsRi5ELktpLCIxIil9Owp2YXIgbk49ZnVuY3Rpb24oYSxiLGMpe2lmKGEhPT12b2lkIDApcmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YS5tYXAoZnVuY3Rpb24oKXtyZXR1cm57bW9kZToibSIsbG9jYXRpb246YixzZWxlY3RvcjpjfX0pOnttb2RlOiJtIixsb2NhdGlvbjpiLHNlbGVjdG9yOmN9fSxvTj1mdW5jdGlvbihhLGIsYyxkKXtpZighYylyZXR1cm4hMTtmb3IodmFyIGU9U3RyaW5nKGMudmFsdWUpLGYsZz12b2lkIDAsaD1lLnJlcGxhY2UoL1xbIj8nPy9nLCIuIikucmVwbGFjZSgvIj8nP1xdL2csIiIpLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKHUpe3JldHVybiB1LnRyaW0oKX0pLmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdSYmIVNiKHUsIiMiKSYmIVNiKHUsIi4iKX0pLGw9MDtsPGgubGVuZ3RoO2wrKyl7dmFyIG49aFtsXTtpZihTYihuLCJkYXRhTGF5ZXIuIikpZj11QShuLnN1YnN0cmluZygxMCkpLGc9bk4oZiwiZCIsbik7ZWxzZXt2YXIgcD1uLnNwbGl0KCIuIik7Zj1BW3Auc2hpZnQoKV07CmZvcih2YXIgcT0wO3E8cC5sZW5ndGg7cSsrKWY9ZiYmZltwW3FdXTtnPW5OKGYsImoiLG4pfWlmKGYhPT12b2lkIDApYnJlYWt9aWYoZj09PXZvaWQgMCl0cnl7dmFyIHI9Qi5xdWVyeVNlbGVjdG9yQWxsKGUpO2lmKHImJnIubGVuZ3RoPjApe2Y9W107Zm9yKHZhciB0PTA7dDxyLmxlbmd0aCYmdDwoYj09PSJlbWFpbCJ8fGI9PT0icGhvbmVfbnVtYmVyIj81OjEpO3QrKylmLnB1c2goZmQoclt0XSl8fExiKHJbdF0udmFsdWUpKTtmPWYubGVuZ3RoPT09MT9mWzBdOmY7Zz1uTihmLCJjIixlKX19Y2F0Y2godSl7UCgxNDkpfXJldHVybiBmPyhhW2JdPWYsZCYmZyYmKGRbYl09ZyksITApOiExfTsKdmFyIHBOPWZ1bmN0aW9uKGEpe2lmKGRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpJiZYbyhmcCkpe3ZhciBiPWEuTS5pYltGLkQubG1dO2lmKENkKGIpJiZiLmVuYWJsZV9jb2RlKXt2YXIgYz1PKGEuTSxGLkQuQWMpO2lmKGM9PT1udWxsKVYoYSxILkouR24sbnVsbCk7ZWxzZSBpZihiLmVuYWJsZV9jb2RlJiZDZChjKSYmKFp2KGMpLFYoYSxILkouR24sYykpLENkKGIuc2VsZWN0b3JzKSl7dmFyIGQ9SC5KLmlyLGU7dmFyIGY9Yi5zZWxlY3RvcnMsZz1NKDUyMyk7Zz1nPT09dm9pZCAwPyExOmc7aWYoZil7dmFyIGg9e30sbD0hMSxuPXt9O2w9b04oaCwiZW1haWwiLGYuZW1haWwsbil8fGw7bD1vTihoLCJwaG9uZV9udW1iZXIiLGYucGhvbmUsbil8fGw7aC5hZGRyZXNzPVtdO2Zvcih2YXIgcD1mLm5hbWVfYW5kX2FkZHJlc3N8fFtdLHE9MDtxPHAubGVuZ3RoO3ErKyl7dmFyIHI9e30sdD17fTtsPW9OKHIsImZpcnN0X25hbWUiLHBbcV0uZmlyc3RfbmFtZSx0KXx8bDtsPW9OKHIsCiJsYXN0X25hbWUiLHBbcV0ubGFzdF9uYW1lLHQpfHxsO2w9b04ociwic3RyZWV0IixwW3FdLnN0cmVldCx0KXx8bDtsPW9OKHIsImNpdHkiLHBbcV0uY2l0eSx0KXx8bDtsPW9OKHIsInJlZ2lvbiIscFtxXS5yZWdpb24sdCl8fGw7bD1vTihyLCJjb3VudHJ5IixwW3FdLmNvdW50cnksdCl8fGw7bD1vTihyLCJwb3N0YWxfY29kZSIscFtxXS5wb3N0YWxfY29kZSx0KXx8bDtoLmFkZHJlc3MucHVzaChyKTtnJiYoci5fdGFnX21ldGFkYXRhPXQpfWcmJihoLl90YWdfbWV0YWRhdGE9bik7ZT1sP2g6dm9pZCAwfWVsc2UgZT12b2lkIDA7VihhLGQsZSl9fX19Owp2YXIgcU49ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oZSl7VUwoZSwhMCl9LGM9ZnVuY3Rpb24oZSl7cE4oZSl9LGQ9ZnVuY3Rpb24oZSl7JE0oZSx7U2o6ITAsTWo6ITB9KX07c3dpdGNoKGEpe2Nhc2UgWC5WLlFrOnJldHVybltQRixBTCxNRixITSxKTSxJTV07Y2FzZSBYLlYuS2E6cmV0dXJuW2ZOLFhMLFpNLGlOLGNOLFdNLGQsU0ssYU4sR0wsYix3TSxsTixoTixWTCxvTCxOTSxmdW5jdGlvbihlKXtnTihlLCExKX0sV0wsWU0scExdO2Nhc2UgWC5WLk1rOnJldHVybltaTSxRTF07Y2FzZSBYLlYueGE6cmV0dXJuW1VLLFhMLFpNLGROLHZMLHRMLCRNLFNLLGlOLFZMLHpMLEdMLGIscUwsRkwsQkwsRUwsdUwsak4sb0wsa04sbU4sTEYsYyxmTixTTCxsTixoTixQTSxYTSxHTSxOTSxUSyxETCxRSyxSTCxnTixXTCxwTF07Y2FzZSBYLlYudWI6cmV0dXJuW1hMLFpNLGROLHZMLCRNLFNLLGlOLHpMLEdMLGIsVkwscUwsRUwsdUwsak4sb0wsa04sTEYsU0wsZk4sbE4saE4sUE0sR00sCk5NLFRLLGdOLFdMLHBMXTtjYXNlIFguVi5PYjpyZXR1cm5bWEwsWk0sZE4sdkwsU0ssR0wsYixqTixvTCxpTixMRixjLFNMLGZOLGxOLGhOLFZMLFBNLEdNLE5NLFRLLGdOLFdMLHBMXTtjYXNlIFguVi5GYjpyZXR1cm5bWEwsWk0sZE4sdkwsU0ssR0wsYixqTixvTCxpTixWTCxMRixjLFNMLGZOLGxOLGhOLFBNLEdNLE5NLFRLLENMLGdOLFdMLHBMXTtkZWZhdWx0OnJldHVybltdfX0sck49ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXFOKFEoYSxILkouZGEpKSxjPTA7YzxiLmxlbmd0aCYmKGJbY10oYSksIWEuaXNBYm9ydGVkKTtjKyspO30sc049ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IGFJKGIudGFyZ2V0LGIuZXZlbnROYW1lLGIuTSksZD1tKGV1KGIpKSxlPWQubmV4dCgpOyFlLmRvbmU7ZT1kLm5leHQoKSl7dmFyIGY9ZS52YWx1ZTtVKGMsZixSKGIsZikpfWZvcih2YXIgZz1tKE9iamVjdC5rZXlzKGIubWV0YWRhdGEpKSxoPWcubmV4dCgpOyFoLmRvbmU7aD1nLm5leHQoKSl7dmFyIGw9CmgudmFsdWU7VihjLGwsUShiLGwpKX1WKGMsSC5KLmRhLGEpO3JldHVybiBjfSx0Tj1mdW5jdGlvbihhLGIsYyxkKXtmdW5jdGlvbiBlKHUsdil7Zm9yKHZhciB4PW0obCkseT14Lm5leHQoKTsheS5kb25lO3k9eC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7ei5pc0Fib3J0ZWQ9ITE7Vih6LEguSi5KYSwhMCk7Vih6LEguSi5zYSwhMCk7Vih6LEguSi5FYixOYigpKTtWKHosSC5KLnVmLHUpO1YoeixILkoudmYsdil9fWZ1bmN0aW9uIGYodSl7Zm9yKHZhciB2PXt9LHg9MDt4PGwubGVuZ3RoO3Y9e1ZhOnZvaWQgMH0seCsrKWlmKHYuVmE9bFt4XSwhdXx8dShRKHYuVmEsSC5KLmRhKSkpaWYoIVEodi5WYSxILkouc2EpfHxRKHYuVmEsSC5KLmRhKSE9PVguVi5LYXx8USh2LlZhLEguSi52ZCkpaWYoIVEodi5WYSxILkouc2EpfHxRKHYuVmEsSC5KLmRhKT09PVguVi5LYXx8WG8ocikpck4obFt4XSksUSh2LlZhLEguSi5KYSl8fHYuVmEuaXNBYm9ydGVkfHxRKHYuVmEsSC5KLmRhKSE9PVguVi5LYXx8CiFRKHYuVmEsSC5KLnZkKXx8KE1LKHYuVmEsZnVuY3Rpb24oKXtmKGZ1bmN0aW9uKHkpe3JldHVybiB5PT09WC5WLkthfSl9KSxSKHYuVmEsRi5ELlpmKT09PXZvaWQgMCYmdD09PXZvaWQgMCYmKHQ9cG0oam0uYmEuc2osZnVuY3Rpb24oeSl7cmV0dXJuIGZ1bmN0aW9uKCl7cW0oam0uYmEuc2osdCk7dD12b2lkIDA7WG8oRi5ELm1hKSYmKFYoeS5WYSxILkoudWcsITApLFYoeS5WYSxILkouc2EsITEpLFUoeS5WYSxGLkQuc2EpLGYoZnVuY3Rpb24oeil7cmV0dXJuIHo9PT1YLlYuS2F9KSxWKHkuVmEsSC5KLnVnLCExKSl9fSh2KSkpKX12YXIgZz1kLmlzR3RtRXZlbnQmJmE9PT0iIj97aWQ6IiIscHJlZml4OiIiLGRlc3RpbmF0aW9uSWQ6IiIsaWRzOltdLEpjOmZ1bmN0aW9uKCl7cmV0dXJuITF9fTpiQyhhLGQuaXNHdG1FdmVudCk7aWYoZyl7dmFyIGg9bmV3IGFJKGcsYixkKTtWKGgsSC5KLmRhLFguVi5Rayk7ck4oaCk7aWYoIWguaXNBYm9ydGVkKXt2YXIgbD1bXTtpZihkLmV2ZW50TWV0YWRhdGFbSC5KLkRjXSl7dmFyIG49CmQuZXZlbnRNZXRhZGF0YVtILkouRGNdO0FycmF5LmlzQXJyYXkobil8fChuPVtuXSk7Zm9yKHZhciBwPTA7cDxuLmxlbmd0aDtwKyspe3ZhciBxPXNOKG5bcF0saCk7TSg0ODgpfHxWKHEsSC5KLkphLCExKTtsLnB1c2gocSl9fWVsc2UgYj09PUYuRC53YSYmbC5wdXNoKHNOKFguVi5NayxoKSksYiE9PUYuRC5KYiYmbC5wdXNoKHNOKFguVi5LYSxoKSksbC5wdXNoKHNOKFguVi54YSxoKSksYiE9PUYuRC5KYiYmKGwucHVzaChzTihYLlYuT2IsaCkpLGwucHVzaChzTihYLlYuRmIsaCkpLGwucHVzaChzTihYLlYudWIsaCkpKTt2YXIgcj1bRi5ELmthLEYuRC5tYV0sdD12b2lkIDA7YnAoZnVuY3Rpb24oKXtmKCk7dmFyIHU9IVhvKFtGLkQuWGFdKTtpZighWG8ocil8fHUpe3ZhciB2PXI7dSYmKHY9W10uY29uY2F0KHcodiksW0YuRC5YYV0pKTthcChmdW5jdGlvbih4KXt2YXIgeSx6LEM7eT14LmNvbnNlbnRFdmVudElkO3o9eC5jb25zZW50UHJpb3JpdHlJZDtDPXguY29uc2VudFR5cGVzOwplKHkseik7QyYmQy5sZW5ndGg9PT0xJiZDWzBdPT09Ri5ELlhhP2YoZnVuY3Rpb24oRCl7cmV0dXJuIEQ9PT1YLlYudWJ9KTpmKCl9LHYpfX0scil9fX07ZnVuY3Rpb24gRk8oYSxiLGMsZCl7fUZPLlA9ImludGVybmFsLmV4ZWN1dGVFdmVudFByb2Nlc3NvciI7ZnVuY3Rpb24gR08oYSl7dmFyIGI7cmV0dXJuIFVkKGIsdGhpcy5ULDEpfUdPLlA9ImludGVybmFsLmV4ZWN1dGVKYXZhc2NyaXB0U3RyaW5nIjtmdW5jdGlvbiBITyhhKXt2YXIgYjtpZighbGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGM9QTt0cnl7Yj1LaihjLmVzY2FwZShjLmF0b2IoYSkpKX1jYXRjaChkKXtyZXR1cm59cmV0dXJuIGJ9O2Z1bmN0aW9uIElPKGEpe3ZhciBiPSIiO2lmKCFtaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nfHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7Yj1BdihhPT09bnVsbD92b2lkIDA6YSk7cmV0dXJuIGJ9SU8uUD0iaW50ZXJuYWwuZ2VuZXJhdGVDbGllbnRJZCI7ZnVuY3Rpb24gSk8oYSl7dmFyIGI9e307aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBjPVRkKGEsdGhpcy5ULDEpLnJiKCk7Yj1MSyhjKTtyZXR1cm4gVWQoYil9Sk8uUD0iaW50ZXJuYWwuZ2V0QWRzQ29va2llV3JpdGluZ09wdGlvbnMiO2Z1bmN0aW9uIEtPKGEsYil7dmFyIGM9ITE7aWYoIWVoKGEpJiYhZ2goYSl8fCFvaChiKXx8Z2goYSkmJmdoKGIpfHwhZ2goYSkmJiFnaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0IiwiYm9vbGVhbnx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBkO2lmKGIpe3ZhciBlPVhGKHRoaXMpO2Q9SkMoSUMobmV3IHlDKE51bWJlcihlLmV2ZW50SWQpLE51bWJlcihlLnByaW9yaXR5SWQpKSwhMCkpfWVsc2UgZD1UZChhLHRoaXMuVCwxKS5yYigpLk07Yz1TdChkKTtyZXR1cm4gY31LTy5QPSJpbnRlcm5hbC5nZXRBbGxvd0FkUGVyc29uYWxpemF0aW9uIjtmdW5jdGlvbiBMTygpe3ZhciBhOyhhPXdiKHJiLkdUQUdfRVZFTlRfRkVBVFVSRV9DSEFOTkVMfHxbXSkpJiZ1YigpO3JldHVybiBhfUxPLlA9ImludGVybmFsLmdldEFuZFJlc2V0RXZlbnRVc2FnZSI7ZnVuY3Rpb24gTU8oYSxiKXtiPWI9PT12b2lkIDA/ITA6Yjt2YXIgYztpZighZWgoYSl8fCFvaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0IiwiYm9vbGVhbnx1bmRlZmluZWQiXSxhcmd1bWVudHMpO3ZhciBkPVEoVGQoYSx0aGlzLlQsMSkucmIoKSxILkouR2EpfHx7fTtIdihkLGIpO2M9RHZbR3YoZC5wcmVmaXgpXTtyZXR1cm4gY31NTy5QPSJpbnRlcm5hbC5nZXRBdWlkIjtmdW5jdGlvbiBOTygpe3ZhciBhPVtdO3JldHVybiBVZChhKX1OTy5QPSJpbnRlcm5hbC5nZXRDb250YWluZXJJZHMiO2Z1bmN0aW9uIE9PKCl7dmFyIGE9bmV3IGtiO0wodGhpcywicmVhZF9jb250YWluZXJfZGF0YSIpLGEuc2V0KCJjb250YWluZXJJZCIsaWcpLGEuc2V0KCJ2ZXJzaW9uIixrZyksYS5zZXQoImVudmlyb25tZW50TmFtZSIsamcpLGEuc2V0KCJkZWJ1Z01vZGUiLGxnKSxhLnNldCgicHJldmlld01vZGUiLG1nLlBvKSxhLnNldCgiZW52aXJvbm1lbnRNb2RlIixtZy5LciksYS5zZXQoImZpcnN0UGFydHlTZXJ2aW5nIixhaygpKSxhLnNldCgiY29udGFpbmVyVXJsIixLYyksYS5zZXQoImlzR29vZ2xlT25seU1vZGUiLElmKDYyKSksYS5aYSgpO3JldHVybiBhfU9PLnB1YmxpY05hbWU9ImdldENvbnRhaW5lclZlcnNpb24iO2Z1bmN0aW9uIFBPKGEsYil7Yj1iPT09dm9pZCAwPyEwOmI7dmFyIGM7cmV0dXJuIGN9UE8ucHVibGljTmFtZT0iZ2V0Q29va2llVmFsdWVzIjtmdW5jdGlvbiBRTygpe3ZhciBhPSIiO3JldHVybiBhfVFPLlA9ImludGVybmFsLmdldENvcmVQbGF0Zm9ybVNlcnZpY2VzUGFyYW0iO2Z1bmN0aW9uIFJPKCl7cmV0dXJuIHltKCl9Uk8uUD0iaW50ZXJuYWwuZ2V0Q291bnRyeUNvZGUiO2Z1bmN0aW9uIFNPKCl7dmFyIGE9W107YT10aygpO3JldHVybiBVZChhKX1TTy5QPSJpbnRlcm5hbC5nZXREZXN0aW5hdGlvbklkcyI7ZnVuY3Rpb24gVE8oYSl7dmFyIGI9bmV3IGtiO2lmKCFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgYz1UZChhLHRoaXMuVCwxKS5yYigpLGQ9ZnVuY3Rpb24oZixnLGgpe3ZhciBsPWMuTS5nZXRNZXJnZWRWYWx1ZXMoRi5ELk9hLGYsaCksbj1ZYihDZChsKT9sOnt9LCIuIik7biYmYi5zZXQoZyxuKX0sZT1PbyhmRChGLkQuT2EpKTtkKDEsRi5ELlhjLGUpO2QoMixGLkQuVmMpO3JldHVybiBifVRPLlA9ImludGVybmFsLmdldERldmVsb3BlcklkcyI7ZnVuY3Rpb24gVU8oYSl7dmFyIGI7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBjPVEoVGQoYSx0aGlzLlQsMSkucmIoKSxILkouR2EpfHx7fTtiPVV2KGMpLlNoO3JldHVybiBifVVPLlA9ImludGVybmFsLmdldEVjc2lkQ29va2llVmFsdWUiO2Z1bmN0aW9uIFZPKGEsYil7dmFyIGM9bnVsbDtyZXR1cm4gY31WTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50QXR0cmlidXRlIjtmdW5jdGlvbiBXTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVdPLlA9ImludGVybmFsLmdldEVsZW1lbnRCeUlkIjtmdW5jdGlvbiBYTyhhKXt2YXIgYj0iIjtyZXR1cm4gYn1YTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50SW5uZXJUZXh0IjtmdW5jdGlvbiBZTyhhKXt2YXIgYj1udWxsO3JldHVybiBifVlPLlA9ImludGVybmFsLmdldEVsZW1lbnRQYXJlbnQiO2Z1bmN0aW9uIFpPKGEpe3ZhciBiPW51bGw7cmV0dXJuIGJ9Wk8uUD0iaW50ZXJuYWwuZ2V0RWxlbWVudFByZXZpb3VzU2libGluZyI7ZnVuY3Rpb24gJE8oYSxiKXt2YXIgYz1udWxsO3JldHVybiBVZChjKX0kTy5QPSJpbnRlcm5hbC5nZXRFbGVtZW50UHJvcGVydHkiO2Z1bmN0aW9uIGFQKGEpe3ZhciBiO3JldHVybiBifWFQLlA9ImludGVybmFsLmdldEVsZW1lbnRWYWx1ZSI7ZnVuY3Rpb24gYlAoYSl7dmFyIGI9MDtyZXR1cm4gYn1iUC5QPSJpbnRlcm5hbC5nZXRFbGVtZW50VmlzaWJpbGl0eVJhdGlvIjtmdW5jdGlvbiBjUChhKXt2YXIgYj1udWxsO3JldHVybiBifWNQLlA9ImludGVybmFsLmdldEVsZW1lbnRzQnlDc3NTZWxlY3RvciI7CmZ1bmN0aW9uIGRQKGEpe3ZhciBiO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtMKHRoaXMsInJlYWRfZXZlbnRfZGF0YSIsYSk7dmFyIGM7YTp7dmFyIGQ9YSxlPVhGKHRoaXMpLm9yaWdpbmFsRXZlbnREYXRhO2lmKGUpe2Zvcih2YXIgZj1lLGc9e30saD17fSxsPXt9LG49W10scD1kLnNwbGl0KCJcXFxcIikscT0wO3E8cC5sZW5ndGg7cSsrKXtmb3IodmFyIHI9cFtxXS5zcGxpdCgiXFwuIiksdD0wO3Q8ci5sZW5ndGg7dCsrKXtmb3IodmFyIHU9clt0XS5zcGxpdCgiLiIpLHY9MDt2PHUubGVuZ3RoO3YrKyluLnB1c2godVt2XSksdiE9PXUubGVuZ3RoLTEmJm4ucHVzaChsKTt0IT09ci5sZW5ndGgtMSYmbi5wdXNoKGgpfXEhPT1wLmxlbmd0aC0xJiZuLnB1c2goZyl9Zm9yKHZhciB4PVtdLHk9IiIsej1tKG4pLEM9ei5uZXh0KCk7IUMuZG9uZTtDPQp6Lm5leHQoKSl7dmFyIEQ9Qy52YWx1ZTtEPT09bD8oeC5wdXNoKHkpLHk9IiIpOnk9RD09PWc/eSsiXFwiOkQ9PT1oP3krIi4iOnkrRH15JiZ4LnB1c2goeSk7Zm9yKHZhciBJPW0oeCksRz1JLm5leHQoKTshRy5kb25lO0c9SS5uZXh0KCkpe2lmKGY9PW51bGwpe2M9dm9pZCAwO2JyZWFrIGF9Zj1mW0cudmFsdWVdfWM9Zn1lbHNlIGM9dm9pZCAwfWI9VWQoYyx0aGlzLlQsMSk7cmV0dXJuIGJ9ZFAuUD0iaW50ZXJuYWwuZ2V0RXZlbnREYXRhIjtmdW5jdGlvbiBlUChhKXt2YXIgYj1udWxsO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtMKHRoaXMsInJlYWRfZG9tX2VsZW1lbnRzIiwiY3NzIixhKTt0cnl7dmFyIGM9Qi5xdWVyeVNlbGVjdG9yKGEpO2MmJihiPW5ldyBQZChjKSl9Y2F0Y2goZCl7cmV0dXJuIG51bGx9cmV0dXJuIGJ9ZVAuUD0iaW50ZXJuYWwuZ2V0Rmlyc3RFbGVtZW50QnlDc3NTZWxlY3RvciI7ZnVuY3Rpb24gZlAoKXt2YXIgYTtMKHRoaXMsImFjY2Vzc19nbG9iYWxzIiwiZXhlY3V0ZSIsIl9fZ3NhRXhwLmlkIik7dmFyIGI9QTtpZighYi5fX2dzYUV4cHx8IWIuX19nc2FFeHAuaWQpcmV0dXJuIGE7dmFyIGM9Yi5fX2dzYUV4cC5pZDtpZigheWIoYykpcmV0dXJuIGE7dHJ5e3ZhciBkPU51bWJlcihjKCkpO2lmKGlzTmFOKGQpKXJldHVybiBhO2E9ZH1jYXRjaChlKXtyZXR1cm4gYX1yZXR1cm4gYX1mUC5QPSJpbnRlcm5hbC5nZXRHc2FFeHBlcmltZW50SWQiO2Z1bmN0aW9uIGdQKCl7cmV0dXJuIG5ldyBQZChQayl9Z1AuUD0iaW50ZXJuYWwuZ2V0SHRtbElkIjtmdW5jdGlvbiBoUCgpe3ZhciBhO2E9T3AoITEpO3JldHVybiBhfWhQLlA9ImludGVybmFsLmdldElmcmFtaW5nU3RhdGUiO2Z1bmN0aW9uIGlQKGEsYil7dmFyIGM9e307aWYoIW5oKGEpfHwhb2goYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbImJvb2xlYW4iLCJib29sZWFufHVuZGVmaW5lZCJdLGFyZ3VtZW50cyk7TCh0aGlzLCJnZXRfdXJsIik7Yz1VcShhLGIpO3JldHVybiBVZChjKX1pUC5QPSJpbnRlcm5hbC5nZXRMaW5rZXJWYWx1ZUZyb21Mb2NhdGlvbiI7ZnVuY3Rpb24galAoKXt2YXIgYT1uZXcga2I7aWYoYXJndW1lbnRzLmxlbmd0aCE9PTApdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbXSxhcmd1bWVudHMpO3ZhciBiPVZNKCk7YiE9PXZvaWQgMCYmYS5zZXQoRi5ELmtnLGJ8fCJlcnJvciIpO3ZhciBjPUx0KCk7YyYmYS5zZXQoRi5ELktlLGMpO3ZhciBkPUt0KCk7ZCYmYS5zZXQoRi5ELk9lLGQpO3ZhciBlPWtGLmdwcFN0cmluZztlJiZhLnNldChGLkQudWgsZSk7dmFyIGY9a0YuSDtmJiZhLnNldChGLkQudGgsZik7cmV0dXJuIGF9alAuUD0iaW50ZXJuYWwuZ2V0UHJpdmFjeVN0cmluZ3MiO2Z1bmN0aW9uIGtQKGEsYil7dmFyIGM7aWYoIWxoKGEpfHwhbGgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsInN0cmluZyJdLGFyZ3VtZW50cyk7dmFyIGQ9JEgoYSl8fHt9O2M9VWQoZFtiXSx0aGlzLlQpO3JldHVybiBjfWtQLlA9ImludGVybmFsLmdldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciI7ZnVuY3Rpb24gbFAoYSxiKXt2YXIgYztpZighbGgoYSl8fCFwaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiYm9vbGVhbnx1bmRlZmluZWQiXSxhcmd1bWVudHMpO0wodGhpcywiZ2V0X3VybCIsInF1ZXJ5IixhKTt2YXIgZD1MaihSaihBLmxvY2F0aW9uLmhyZWYpLCJxdWVyeSIpLGU9SWooZCxhLGIpO2M9VWQoZSx0aGlzLlQpO3JldHVybiBjfWxQLnB1YmxpY05hbWU9ImdldFF1ZXJ5UGFyYW1ldGVycyI7ZnVuY3Rpb24gbVAoYSxiKXt2YXIgYztyZXR1cm4gY31tUC5wdWJsaWNOYW1lPSJnZXRSZWZlcnJlclF1ZXJ5UGFyYW1ldGVycyI7ZnVuY3Rpb24gblAoYSl7dmFyIGI9IiI7aWYoIW1oKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTtMKHRoaXMsImdldF9yZWZlcnJlciIsYSk7Yj1OaihSaihCLnJlZmVycmVyKSxhKTtyZXR1cm4gYn1uUC5wdWJsaWNOYW1lPSJnZXRSZWZlcnJlclVybCI7ZnVuY3Rpb24gb1AoKXtyZXR1cm4gem0oKX1vUC5QPSJpbnRlcm5hbC5nZXRSZWdpb25Db2RlIjtmdW5jdGlvbiBwUChhLGIpe3ZhciBjO2lmKCFsaChhKXx8IWxoKGIpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciXSxhcmd1bWVudHMpO3ZhciBkPWVEKGEpO2M9VWQoZFtiXSx0aGlzLlQpO3JldHVybiBjfXBQLlA9ImludGVybmFsLmdldFJlbW90ZUNvbmZpZ1BhcmFtZXRlciI7ZnVuY3Rpb24gcVAoYSxiKXt2YXIgYz1udWxsOwpyZXR1cm4gY31xUC5QPSJpbnRlcm5hbC5nZXRTY29wZWRFbGVtZW50c0J5Q3NzU2VsZWN0b3IiO2Z1bmN0aW9uIHJQKCl7dmFyIGE9bmV3IGtiO2Euc2V0KCJ3aWR0aCIsMCk7YS5zZXQoImhlaWdodCIsMCk7TCh0aGlzLCJyZWFkX3NjcmVlbl9kaW1lbnNpb25zIik7dmFyIGI9cUkoKTthLnNldCgid2lkdGgiLGIud2lkdGgpO2Euc2V0KCJoZWlnaHQiLGIuaGVpZ2h0KTtyZXR1cm4gYX1yUC5QPSJpbnRlcm5hbC5nZXRTY3JlZW5EaW1lbnNpb25zIjtmdW5jdGlvbiBzUCgpe3ZhciBhPSIiO0wodGhpcywiZ2V0X3VybCIpO3ZhciBiPUZwKCk7YT1EcChiKS51cmw7cmV0dXJuIGF9c1AuUD0iaW50ZXJuYWwuZ2V0VG9wU2FtZURvbWFpblVybCI7ZnVuY3Rpb24gdFAoKXt2YXIgYT0iIjtMKHRoaXMsImdldF91cmwiKSxhPUEudG9wLmxvY2F0aW9uLmhyZWY7cmV0dXJuIGF9dFAuUD0iaW50ZXJuYWwuZ2V0VG9wV2luZG93VXJsIjtmdW5jdGlvbiB1UChhKXt2YXIgYj0iIjtpZighbWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZ3x1bmRlZmluZWQiXSxhcmd1bWVudHMpO0wodGhpcywiZ2V0X3VybCIsYSk7Yj1MaihSaihBLmxvY2F0aW9uLmhyZWYpLGEpO3JldHVybiBifXVQLnB1YmxpY05hbWU9ImdldFVybCI7ZnVuY3Rpb24gdlAoKXtMKHRoaXMsImdldF91c2VyX2FnZW50Iik7cmV0dXJuIEhjLnVzZXJBZ2VudH12UC5wdWJsaWNOYW1lPSJnZXRVc2VyQWdlbnQiO3ZQLlA9ImludGVybmFsLmdldFVzZXJBZ2VudCI7ZnVuY3Rpb24gd1AoKXt2YXIgYTtMKHRoaXMsImdldF91c2VyX2FnZW50Iik7aWYoIURNKCl8fCFGTS5LKCkpcmV0dXJuO2E9Rk0uSCgpO3JldHVybiBhP1VkKEVNKGEpKTphfXdQLlA9ImludGVybmFsLmdldFVzZXJBZ2VudENsaWVudEhpbnRzIjt2YXIgeVA9ZnVuY3Rpb24oYSl7dmFyIGI9YS5ldmVudE5hbWU9PT1GLkQuc2MmJkVsKCkmJmJrKFpLKGEpKSxjPVEoYSxILkouZG4pLGQ9UShhLEguSi5LayksZT1RKGEsSC5KLm1nKSxmPVEoYSxILkouVGUpLGc9UShhLEguSi5GYyksaD1RKGEsSC5KLmhkKSxsPVEoYSxILkoucmcpLG49UShhLEguSi5NaCkscD1RKGEsSC5KLk5oKSxxPSEhWUsoYSl8fCEhUShhLEguSi5wcCk7cmV0dXJuISghbmQoKSYmIWtkKCl8fGV8fHF8fGZ8fGd8fGh8fGx8fHB8fG58fGJ8fGN8fCFkJiZ4UCgpKX0seFA9ZnVuY3Rpb24oKXtyZXR1cm4gYWwoOSxmdW5jdGlvbigpe3JldHVybiExfSl9O2Z1bmN0aW9uIHpQKCl7dmFyIGE9QTtyZXR1cm4gYS5nYUdsb2JhbD1hLmdhR2xvYmFsfHx7fX1mdW5jdGlvbiBBUChhLGIpe3ZhciBjPXpQKCk7aWYoYy52aWQ9PT12b2lkIDB8fGImJiFjLmZyb21fY29va2llKWMudmlkPWEsYy5mcm9tX2Nvb2tpZT1ifTt2YXIgQlA9WyJHQTEiXTsKdmFyIENQPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1RKGEsSC5KLlBrKTtpZihkPT09dm9pZCAwfHxjPD1kKVUoYSxGLkQuS2IsYiksVihhLEguSi5QayxjKX0sRVA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1SKGEsRi5ELktiKTtpZihPKGEuTSxGLkQuWmMpJiZPKGEuTSxGLkQuWWMpfHxiJiZjPT09YilyZXR1cm4gYztpZihjKXtjPSIiK2M7aWYoIURQKGMsYSkpcmV0dXJuIFAoMzEpLGEuaXNBYm9ydGVkPSEwLCIiO0FQKGMsWG8oRi5ELnJhKSk7cmV0dXJuIGN9UCgzMik7YS5pc0Fib3J0ZWQ9ITA7cmV0dXJuIiJ9LEZQPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouR2EpLGM9Yi5wcmVmaXgrIl9nYSIsZD1CdihiLnByZWZpeCsiX2dhIixiLmRvbWFpbixiLnBhdGgsQlAsRi5ELnJhKTtpZighZCl7dmFyIGU9U3RyaW5nKE8oYS5NLEYuRC5JZCwiIikpO2UmJmUhPT1jJiYoZD1CdihlLGIuZG9tYWluLGIucGF0aCxCUCxGLkQucmEpKX1yZXR1cm4gZH0sRFA9ZnVuY3Rpb24oYSxiKXt2YXIgYzsKdmFyIGQ9UShiLEguSi5HYSksZT1kLnByZWZpeCsiX2dhIixmPXVxKGQsdm9pZCAwLHZvaWQgMCxGLkQucmEpO2lmKE8oYi5NLEYuRC5KZCk9PT0hMSYmRlAoYik9PT1hKWM9ITA7ZWxzZXt2YXIgZztnPVtCUFswXSx0cShkLmRvbWFpbixkLnBhdGgpLGFdLmpvaW4oIi4iKTtjPW9xKGUsZyxmKSE9PTF9cmV0dXJuIGN9Owp2YXIgR1A9ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPTA7cmV0dXJue3N0YXJ0OmZ1bmN0aW9uKCl7Yj1OYigpfSxzdG9wOmZ1bmN0aW9uKCl7Yz10aGlzLmdldCgpfSxnZXQ6ZnVuY3Rpb24oKXt2YXIgZD0wO2EuVmooKSYmKGQ9TmIoKS1iKTtyZXR1cm4gZCtjfX19LEhQPWZ1bmN0aW9uKCl7dGhpcy5IPXZvaWQgMDt0aGlzLks9MDt0aGlzLmlzQWN0aXZlPXRoaXMuaXNWaXNpYmxlPXRoaXMuTj0hMTt0aGlzLlo9dGhpcy5SPXZvaWQgMH07az1IUC5wcm90b3R5cGU7ay5LcT1mdW5jdGlvbihhKXt2YXIgYj10aGlzO2lmKCF0aGlzLkgpe3RoaXMuTj1CLmhhc0ZvY3VzKCk7dGhpcy5pc1Zpc2libGU9IUIuaGlkZGVuO3RoaXMuaXNBY3RpdmU9ITA7dmFyIGM9ZnVuY3Rpb24oZSxmLGcpeyRjKGUsZixmdW5jdGlvbihoKXtiLkguc3RvcCgpO2coaCk7Yi5WaigpJiZiLkguc3RhcnQoKX0pfSxkPUE7YyhkLCJmb2N1cyIsZnVuY3Rpb24oKXtiLk49ITB9KTtjKGQsImJsdXIiLGZ1bmN0aW9uKCl7Yi5OPQohMX0pO2MoZCwicGFnZXNob3ciLGZ1bmN0aW9uKGUpe2IuaXNBY3RpdmU9ITA7ZS5wZXJzaXN0ZWQmJlAoNTYpO2IuWiYmYi5aKCl9KTtjKGQsInBhZ2VoaWRlIixmdW5jdGlvbigpe2IuaXNBY3RpdmU9ITE7Yi5SJiZiLlIoKX0pO2MoQiwidmlzaWJpbGl0eWNoYW5nZSIsZnVuY3Rpb24oKXtiLmlzVmlzaWJsZT0hQi5oaWRkZW59KTtiayhaSyhhKSkmJiFPYygpJiZjKGQsImJlZm9yZXVubG9hZCIsZnVuY3Rpb24oKXtaayg5LCEwKX0pO3RoaXMucWsoITApO3RoaXMuSz0wfX07ay5xaz1mdW5jdGlvbihhKXtpZigoYT09PXZvaWQgMD8wOmEpfHx0aGlzLkgpdGhpcy5LKz10aGlzLlloKCksdGhpcy5IPUdQKHRoaXMpLHRoaXMuVmooKSYmdGhpcy5ILnN0YXJ0KCl9O2suS3Q9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5ZaCgpO2I+MCYmVShhLEYuRC5uaCxiKX07ay5scz1mdW5jdGlvbihhKXtVKGEsRi5ELm5oKTt0aGlzLnFrKCk7dGhpcy5LPTB9O2suVmo9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OJiYKdGhpcy5pc1Zpc2libGUmJnRoaXMuaXNBY3RpdmV9O2suWHI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LK3RoaXMuWWgoKX07ay5ZaD1mdW5jdGlvbigpe3JldHVybiB0aGlzLkgmJnRoaXMuSC5nZXQoKXx8MH07ay5odD1mdW5jdGlvbihhKXt0aGlzLlI9YX07ay5Dbz1mdW5jdGlvbihhKXt0aGlzLlo9YX07dmFyIElQPWZ1bmN0aW9uKGEpe3NiKCJHQTRfRVZFTlQiLGEpfTt2YXIgSlA9ZnVuY3Rpb24oYSl7dmFyIGIsYz1RKGEsSC5KLndtKTtpZihBcnJheS5pc0FycmF5KGMpKWZvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKUlQKGNbZF0pOyhiPXdiKHJiLkdBNF9FVkVOVHx8W10pKSYmVShhLCJfZXUiLGIpfTsKdmFyIE1QPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBSZWdFeHAoIl4iKygoKGE9PW51bGw/dm9pZCAwOmEucHJlZml4KXx8IiIpKyJfZ2FfXFx3KyQiKSksYz15cShmdW5jdGlvbihwKXtyZXR1cm4gYi50ZXN0KHApfSksZD17fSxlO2ZvcihlIGluIGMpaWYoYy5oYXNPd25Qcm9wZXJ0eShlKSl7dmFyIGY9S1AoY1tlXSk7aWYoZil7dmFyIGc9YnEoZiwyKTtpZihnKXt2YXIgaD1MUChnKTtpZihoKXt2YXIgbD12b2lkIDAsbj0oKChsPWEpPT1udWxsP3ZvaWQgMDpsLnByZWZpeCl8fCIiKS5sZW5ndGgrNDtkWyJHLSIrZS5zdWJzdHJpbmcobildPWh9fX19cmV0dXJuIGR9LE5QPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiO2E6e3ZhciBjPShTYihhLCJzIikmJmEuaW5kZXhPZigiLiIpPT09LTE/IkdTMiI6IkdTMSIpKyIuMS4iK2E7dHJ5e2I9JHAoYywyKTticmVhayBhfWNhdGNoKGQpe31iPXZvaWQgMH1yZXR1cm4gYn19LEtQPWZ1bmN0aW9uKGEpe2lmKGEmJmEubGVuZ3RoIT09MCl7Zm9yKHZhciBiLApjPS1JbmZpbml0eSxkPW0oYSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7aWYoZi50IT09dm9pZCAwKXt2YXIgZz1OdW1iZXIoZi50KTshaXNOYU4oZykmJmc+YyYmKGM9ZyxiPWYpfX1yZXR1cm4gYn19LHpxPWZ1bmN0aW9uKGEpe2EmJihhPT09IkdTMSI/SVAoSi5VLkttKTphPT09IkdTMiImJklQKEouVS5MbSkpfSxMUD1mdW5jdGlvbihhKXt2YXIgYj1OUChhKTtpZihiKXt2YXIgYz1OdW1iZXIoYi5vKSxkPU51bWJlcihiLnQpLGU9TnVtYmVyKGIuanx8MCk7Y3x8SVAoSi5VLlVtKTtkfHxJUChKLlUuVG0pO2lzTmFOKGUpJiZJUChKLlUuU20pO2lmKGMmJmQmJiFpc05hTihlKSl7dmFyIGY9Yi5oLGc9ZiYmZiE9PSIwIj9TdHJpbmcoZik6dm9pZCAwLGg9Yi5kP1N0cmluZyhiLmQpOnZvaWQgMCxsPXt9O3JldHVybiBsLnM9U3RyaW5nKGIucyksbC5vPWMsbC5nPSEhTnVtYmVyKGIuZyksbC50PWQsbC5kPWgsbC5qPWUsbC5sPWIubD09PSIxIiwKbC5oPWcsbH19fTsKdmFyIFBQPWZ1bmN0aW9uKGEsYixjKXtpZighYilyZXR1cm4gYTtpZighYSlyZXR1cm4gYjt2YXIgZD1MUChhKTtpZighZClyZXR1cm4gYjt2YXIgZSxmPUliKChlPU8oYy5NLEYuRC55aCkpIT1udWxsP2U6MzApLGc9UShjLEguSi5FYik7aWYoIShNYXRoLmZsb29yKGcvMUUzKT5kLnQrZio2MCkpcmV0dXJuIGE7dmFyIGg9TFAoYik7aWYoIWgpcmV0dXJuIGE7aC5vPWQubysxO3ZhciBsO3JldHVybihsPU9QKGgpKSE9bnVsbD9sOmJ9LFJQPWZ1bmN0aW9uKGEsYil7dmFyIGM9UShiLEguSi5HYSksZD1RUChiLGMpLGU9TlAoYSk7aWYoIWUpcmV0dXJuITE7dmFyIGY9dXEoY3x8e30sdm9pZCAwLHZvaWQgMCx2cS5nZXQoMikpO29xKGQsdm9pZCAwLGYpO3JldHVybiBBcShkLGUsMixjKSE9PTF9LFNQPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkouR2EpLGM7dmFyIGQ9UVAoYSxiKSxlO2I6e3ZhciBmPXpxLGc9WnBbMl07aWYoZyl7dmFyIGgsbD1ycShiLmRvbWFpbiksbj1zcShiLnBhdGgpLApwPU9iamVjdC5rZXlzKGcuamkpLHE9dnEuZ2V0KDIpLHI7aWYoaD0ocj1ncShkLGwsbixwLHEpKT09bnVsbD92b2lkIDA6ci5Ccil7dmFyIHQ9JHAoaCwyLGYpO2U9dD94cSh0KTp2b2lkIDA7YnJlYWsgYn19ZT12b2lkIDB9aWYoZSl7dmFyIHU9d3EoZCwyLHpxKTtpZih1JiZ1Lmxlbmd0aD4xKXtJUChKLlUuSm0pO3ZhciB2PUtQKHUpO3YmJnYudCE9PWUudCYmKElQKEouVS5NbSksZT12KX1jPWJxKGUsMil9ZWxzZSBjPXZvaWQgMDtyZXR1cm4gY30sVFA9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5FYiksYz17fTtjLnM9UihhLEYuRC54Yyk7Yy5vPVIoYSxGLkQuQWgpO3ZhciBkO2Q9UihhLEYuRC56aCk7dmFyIGU9KGMuZz1kLGMudD1NYXRoLmZsb29yKGIvMUUzKSxjLmQ9UShhLEguSi5vZyksYy5qPVEoYSxILkoucGcpfHwwLGMubD0hIVEoYSxILkoucm0pLGMuaD1SKGEsRi5ELm9oKSxjKTtyZXR1cm4gT1AoZSl9LE9QPWZ1bmN0aW9uKGEpe2lmKGEucyYmYS5vKXt2YXIgYj0Ke30sYz0oYi5zPWEucyxiLm89U3RyaW5nKGEubyksYi5nPUliKGEuZyk/IjEiOiIwIixiLnQ9U3RyaW5nKGEudCksYi5qPVN0cmluZyhhLmopLGIubD1hLmw/IjEiOiIwIixiLmg9YS5ofHwiMCIsYi5kPWEuZCxiKTtyZXR1cm4gYnEoYywyKX19LFFQPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIucHJlZml4KyJfZ2FfIithLnRhcmdldC5pZHNbZENbNl1dfTsKdmFyIFVQPWZ1bmN0aW9uKCl7cmV0dXJuIGFsKDIsZnVuY3Rpb24oKXtyZXR1cm4hMX0pfSxWUD1mdW5jdGlvbihhKXt2YXIgYj1PKGEuTSxGLkQuRGIpLGM9YS5NLmliW0YuRC5EYl07aWYoYz09PWIpcmV0dXJuIGM7dmFyIGQ9RWQoYixudWxsKTtjJiZjW0YuRC5BYV0mJihkW0YuRC5BYV09KGRbRi5ELkFhXXx8W10pLmNvbmNhdChjW0YuRC5BYV0pKTtyZXR1cm4gZH0sV1A9ZnVuY3Rpb24oYSxiKXt2YXIgYz1VcSghMCk7cmV0dXJuIGMuX3VwIT09IjEiP3t9OntjbGllbnRJZDpjW2FdLHpiOmNbYl19fSxYUD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9VXEoITApLGU9ZFtiXTtlJiYoQ1AoYSxlLDIpLERQKGUsYSkpO3ZhciBmPWRbY107ZiYmUlAoZixhKTtyZXR1cm57Y2xpZW50SWQ6ZSx6YjpmfX0sWVA9ZnVuY3Rpb24oKXt2YXIgYT1OaihBLmxvY2F0aW9uLCJob3N0IiksYj1OaihSaihCLnJlZmVycmVyKSwiaG9zdCIpO3JldHVybiBhJiZiP2E9PT1ifHxhLmluZGV4T2YoIi4iK2IpPj0KMHx8Yi5pbmRleE9mKCIuIithKT49MD8hMDohMTohMX0sWlA9ZnVuY3Rpb24oYSl7aWYoIU8oYS5NLEYuRC56YykpcmV0dXJue307dmFyIGI9UShhLEguSi5HYSksYz1iLnByZWZpeCsiX2dhIixkPVFQKGEsYik7YnIoZnVuY3Rpb24oKXt2YXIgZTtpZihYbygiYW5hbHl0aWNzX3N0b3JhZ2UiKSllPXt9O2Vsc2V7dmFyIGY9e191cDoiMSJ9LGc7Zz1SKGEsRi5ELktiKTtlPShmW2NdPWcsZltkXT1UUChhKSxmKX1yZXR1cm4gZX0sMSk7cmV0dXJuIVhvKCJhbmFseXRpY3Nfc3RvcmFnZSIpJiZZUCgpP1dQKGMsZCk6e319LCRQPWZ1bmN0aW9uKGEpe3ZhciBiPVZQKGEpfHx7fSxjPVEoYSxILkouR2EpLGQ9Yy5wcmVmaXgrIl9nYSIsZT1RUChhLGMpLGY9e307ZHIoYltGLkQuWGZdLCEhYltGLkQuQWFdKSYmKGY9WFAoYSxkLGUpLGYuY2xpZW50SWQmJmYuemImJlprKDIsITApKTtiW0YuRC5BYV0mJmFyKGZ1bmN0aW9uKCl7dmFyIGc9e30saD1GUChhKTtoJiYoZ1tkXT1oKTt2YXIgbD1TUChhKTsKbCYmKGdbZV09bCk7dmFyIG49Y3EoIkZQTEMiLHZvaWQgMCx2b2lkIDAsRi5ELnJhKTtuLmxlbmd0aCYmKGcuX2ZwbGM9blswXSk7cmV0dXJuIGd9LGJbRi5ELkFhXSxiW0YuRC5hZF0sISFiW0YuRC53Y10pO3JldHVybiBmfTt2YXIgYVE9ZnVuY3Rpb24oYSl7aWYoIVEoYSxILkouYmUpJiZlayhhLk0pKXt2YXIgYj1WUChhKXx8e30sYz0oZHIoYltGLkQuWGZdLCEhYltGLkQuQWFdKT9VcSghMCkuX2ZwbGM6dm9pZCAwKXx8KGNxKCJGUExDIix2b2lkIDAsdm9pZCAwLEYuRC5yYSkubGVuZ3RoPjA/dm9pZCAwOiIwIik7VShhLCJfZnBsYyIsYyl9fTtmdW5jdGlvbiBiUShhKXsoYmsoWksoYSkpfHxXaigpKSYmVShhLEYuRC5vbSx6bSgpfHx5bSgpKTshYmsoWksoYSkpJiZXaigpJiZVKGEsRi5ELllpLCI6OiIpfWZ1bmN0aW9uIGNRKGEpe1dqKCkmJihiayhaSyhhKSl8fERtKCl8fFUoYSxGLkQuU2wsITApKX07dmFyIGVRPWZ1bmN0aW9uKGEsYil7a2ooImdybCIsZnVuY3Rpb24oKXtyZXR1cm4gZFEoKX0pKGIpfHwoUCgzNSksYS5pc0Fib3J0ZWQ9ITApfSxkUT1mdW5jdGlvbigpe3ZhciBhPU5iKCksYj1hKzg2NEU1LGM9MjAsZD01RTM7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBmPU5iKCk7Zj49YiYmKGI9Zis4NjRFNSxkPTVFMyk7Yz1NYXRoLm1pbihjKyhmLWEpLzFFMyo1LDIwKTthPWY7dmFyIGc9ITE7ZDwxfHxjPDF8fChnPSEwLGQtLSxjLS0pO2UmJihlLkhyPWQsZS51cj1jKTtyZXR1cm4gZ319Owp2YXIgZlE9ZnVuY3Rpb24oYSl7dmFyIGI9UihhLEYuRC5VYSk7cmV0dXJuIExqKFJqKGIpLCJob3N0IiwhMCl9LGdRPWZ1bmN0aW9uKGEpe2lmKE8oYS5NLEYuRC5XZikhPT12b2lkIDApYS5jb3B5VG9IaXREYXRhKEYuRC5XZik7ZWxzZXt2YXIgYj1PKGEuTSxGLkQuYW0pLGMsZDthOntpZihVUCgpKXt2YXIgZT1WUChhKXx8e307aWYoZSYmZVtGLkQuQWFdKWZvcih2YXIgZj1mUShhKSxnPWVbRi5ELkFhXSxoPTA7aDxnLmxlbmd0aDtoKyspaWYoZ1toXWluc3RhbmNlb2YgUmVnRXhwKXtpZihnW2hdLnRlc3QoZikpe2Q9ITA7YnJlYWsgYX19ZWxzZSBpZihmLmluZGV4T2YoZ1toXSk+PTApe2Q9ITA7YnJlYWsgYX19ZD0hMX1pZighKGM9ZCkpe3ZhciBsO2lmKGw9YilhOntmb3IodmFyIG49Yi5pbmNsdWRlX2NvbmRpdGlvbnN8fFtdLHA9ZlEoYSkscT0wO3E8bi5sZW5ndGg7cSsrKWlmKG5bcV0udGVzdChwKSl7bD0hMDticmVhayBhfWw9ITF9Yz1sfWMmJihVKGEsRi5ELldmLCIxIiksCklQKEouVS5ubikpfX07ZnVuY3Rpb24gaFEoYSxiLGMsZCl7dmFyIGU7aWYoKG5kKCl8fGtkKCkpJiZYaigpJiZYaigpIT09Ii8iKXt2YXIgZj1SaihhKTtlPUlmKDUwKSYmZCYmVGIoZi5wYXRobmFtZSwiL2cvY29sbGVjdCIpPzI6KGR8fCFXaigpfHxEbSgpPzA6VGIoZi5wYXRobmFtZSwiL2dhL2cvYyIpfHxUYihmLnBhdGhuYW1lLCIvYWcvZy9jIikpPzE6MH1lbHNlIGU9MDtzd2l0Y2goZSl7Y2FzZSAyOnZhciBnO2lmKE0oNTQ2KSl7dmFyIGg9VGIoYSwiL2cvY29sbGVjdCIpP2Euc3Vic3RyaW5nKDAsYS5sZW5ndGgtMTApOmEsbD1pUSgpLG49aCtsLHA9alEoIi9nL2NvbGxlY3QiLGIsYyk7Zz17SWM6bixrZjoiIixib2R5OnB9fWVsc2UgZz17SWM6YSxrZjpiLGJvZHk6Y307cmV0dXJuIGc7Y2FzZSAxOnZhciBxO2lmKE0oNTQ3KSl7dmFyIHI9aVEoKSx0PWEuaW5kZXhPZihyKSx1PWEuc3Vic3RyaW5nKDAsdCkrcix2PWpRKGEuc3Vic3RyaW5nKHQrci5sZW5ndGgtMSksYixjKTtxPXtJYzp1LGtmOiIiLApib2R5OnZ9fWVsc2UgcT17SWM6YSxrZjpiLGJvZHk6Y307cmV0dXJuIHE7ZGVmYXVsdDpyZXR1cm57SWM6YSxrZjpiLGJvZHk6Y319fWZ1bmN0aW9uIGlRKCl7dmFyIGE9WGooKTtpZighYSlyZXR1cm4iIjtTYihhLCIvIil8fChhPSIvIithKTtUYihhLCIvIil8fChhKz0iLyIpO3JldHVybiBhfWZ1bmN0aW9uIGpRKGEsYixjKXt2YXIgZD1bYV07YiYmZC5wdXNoKCI/IixiKTtjJiZkLnB1c2goIlxyXG4iLGMpO3JldHVybiBkLmpvaW4oIiIpfTsKdmFyIGtRPWZ1bmN0aW9uKGEsYil7VHQoKSYmKGEuZ2NzPVV0KCksUShiLEguSi5HaCkmJihhLmdjdT0iMSIpKTthLmdjZD1ZdChiLk0pO2EubnBhPVEoYixILkoud2QpPyIwIjoiMSI7em0oKT09PSJVUy1DTyImJihhLl9uZz0iMSIpfSxsUT1mdW5jdGlvbihhKXtpZihRKGEsSC5KLmJlKSlyZXR1cm57dXJsOmZrKCJodHRwczovL3d3dy5tZXJjaGFudC1jZW50ZXItYW5hbHl0aWNzLmdvb2ciLHZvaWQgMCwiIikrIi9tYy9jb2xsZWN0IixlbmRwb2ludDoyMH07dmFyIGI9WWooZWsoYS5NKSwiL2cvY29sbGVjdCIpO2lmKGIpcmV0dXJue3VybDpiLGVuZHBvaW50OjE2fTt2YXIgYztjPVEoYSxILkoucm4pJiYhUShhLEguSi5GYyk/MTc6MTY7cmV0dXJue3VybDpNbVtjXSh2b2lkIDApLGVuZHBvaW50OmN9fSxtUT17fTttUVtGLkQuS2JdPSJjaWQiO21RW0YuRC54aV09ImdjdXQiO21RW0YuRC5GZV09ImFyZSI7bVFbRi5ELmpoXT0icHNjZGwiO21RW0YuRC5OZF09ImV4Y2lkIjttUVtGLkQuR2ldPQoiX2ZpZCI7bVFbRi5ELk9sXT0iX2dlbyI7bVFbRi5ELlhjXT0iZ2RpZCI7bVFbRi5ELkxlXT0iX25nIjttUVtGLkQuTWVdPSJmcm0iO21RW0YuRC5XZl09ImlyIjttUVtGLkQuU2xdPSJmcCI7bVFbRi5ELnRiXT0idWwiO21RW0YuRC5NaV09Im5pIjttUVtGLkQubXFdPSJwYWUiO21RW0YuRC54aF09Il9yZGkiO21RW0YuRC5iZF09InNyIjttUVtGLkQuUWldPSJ0ZXN0b25seSI7bVFbRi5ELlFlXT0idGlkIjttUVtGLkQuUmldPSJ0dCI7bVFbRi5ELkJjXT0iZWNfbW9kZSI7bVFbRi5ELlptXT0iZ3RtX3VwIjttUVtGLkQuY2ddPSJ1YWEiO21RW0YuRC5kZ109InVhYiI7bVFbRi5ELmVnXT0idWFmdmwiO21RW0YuRC5mZ109InVhbWIiO21RW0YuRC5nZ109InVhbSI7Cm1RW0YuRC5oZ109InVhcCI7bVFbRi5ELmlnXT0idWFwdiI7bVFbRi5ELmpnXT0idWF3IjttUVtGLkQub21dPSJ1ciI7bVFbRi5ELllpXT0iX3VpcCI7bVFbRi5ELmxxXT0iX3BycyI7bVFbRi5ELlBkXT0ibHBzIjttUVtGLkQuQmVdPSJnY2xncyI7bVFbRi5ELkRlXT0iZ2Nsc3QiO21RW0YuRC5DZV09ImdjbGxwIjt2YXIgblE9e307blFbRi5ELkdmXT0iY2MiO25RW0YuRC5IZl09ImNpIjtuUVtGLkQuSWZdPSJjbSI7blFbRi5ELkpmXT0iY24iO25RW0YuRC5MZl09ImNzIjtuUVtGLkQuTWZdPSJjayI7blFbRi5ELmViXT0iY3UiO25RW0YuRC5WZl09Il90dSI7blFbRi5ELnphXT0iZGwiO25RW0YuRC5ZZl09ImRwIjtuUVtGLkQuVWFdPSJkciI7blFbRi5ELk1iXT0iZHQiO25RW0YuRC56aF09InNlZyI7blFbRi5ELnhjXT0KInNpZCI7blFbRi5ELkFoXT0ic2N0IjtuUVtGLkQuZmJdPSJ1aWQiO3ZhciBvUT17fTtvUVtGLkQubmhdPSJfZXQiO29RW0YuRC5WY109ImVkaWQiO29RW0YuRC5NZF09ImV2bmlkIjtNKDk0KSYmKG9RLl9ldT0iX2V1Iik7dmFyIHBRPXt9O3BRW0YuRC5HZl09ImNjIjtwUVtGLkQuSGZdPSJjaSI7cFFbRi5ELklmXT0iY20iO3BRW0YuRC5KZl09ImNuIjtwUVtGLkQuTGZdPSJjcyI7cFFbRi5ELk1mXT0iY2siO3ZhciBxUT17fSxyUT0ocVFbRi5ELkFjXT0xLHFRKSxzUT1mdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChkYSxtYSl7aWYobWEhPT12b2lkIDAmJiFCby5oYXNPd25Qcm9wZXJ0eShkYSkpe21hPT09bnVsbCYmKG1hPSIiKTt2YXIgUGE7dmFyIEZhPW1hO2RhIT09Ri5ELm9oP1BhPSExOlEoYSxILkoubGcpfHxiayhaSyhhKSk/KGUuZWNpZD1GYSxQYT0hMCk6UGE9dm9pZCAwO2lmKCFQYSl7dmFyIHFhPW1hO21hPT09ITAmJihxYT0iMSIpO21hPT09ITEmJihxYT0iMCIpO3FhPQpTdHJpbmcocWEpO3ZhciBpYjtpZihkYSE9PUYuRC5OZCYmZGEhPT1GLkQuTWR8fE0oNTA0KSlpZihtUVtkYV0paWI9bVFbZGFdLHZbaWJdPXFhO2Vsc2UgaWYoblFbZGFdKWliPW5RW2RhXSxnW2liXT1xYTtlbHNlIGlmKG9RW2RhXSlpYj1vUVtkYV0sZltpYl09cWE7ZWxzZSBpZihTYihkYSwiXyYiKSlpYj1kYS5zdWJzdHJpbmcoMiksdltpYl09cWE7ZWxzZSBpZihkYS5jaGFyQXQoMCk9PT0iXyIpdltkYV09cWE7ZWxzZXt2YXIgWGI7cFFbZGFdP1hiPSEwOmRhIT09Ri5ELktmP1hiPSExOih0eXBlb2YgbWEhPT0ib2JqZWN0IiYmdShkYSxtYSksWGI9ITApO1hifHx1KGRhLG1hKX1lbHNlIHUoZGEsbWEpfX19dmFyIGU9e30sZj17fSxnPXt9O2Uudj0iMiI7ZS50aWQ9YS50YXJnZXQuZGVzdGluYXRpb25JZDtlLmd0bT1kdSh7bWM6UShhLEguSi5OYiksZWY6UShhLEguSi5DYyl9KTtlLl9wPSRrKDI1KTtjJiYoYy5oYXNVcGR8fGMuaGFkRXJyb3IpJiYoZS5lbT1jLnBhcmFtKTtRKGEsCkguSi5yZykmJihlLl9nYXo9MSk7a1EoZSxhKTthdSgpJiYoZS5kbWFfY3BzPVp0KCkpO2UuZG1hPSR0KCk7dnQoRXQoKSkmJihlLnRjZmQ9YnUoKSk7dmFyIGg9Q3AoYSk7aCYmKGcudGFnX2V4cD1oKTt2YXIgbD1SKGEsRi5ELlhjKTtsJiYoZS5nZGlkPWwpO2YuZW49U3RyaW5nKGEuZXZlbnROYW1lKTtpZihRKGEsSC5KLm5nKSl7dmFyIG49UShhLEguSi5ZbSk7Zi5fZnY9bj8yOjF9UShhLEguSi5IaCkmJihmLl9uc2k9MSk7aWYoUShhLEguSi5UZSkpe3ZhciBwPVEoYSxILkouYm4pO2YuX3NzPXA/MjoxfVEoYSxILkoubWcpJiYoZi5fYz0xKTtRKGEsSC5KLmFlKSYmKGYuX2VlPTEpO2lmKFEoYSxILkouV20pKXt2YXIgcT1SKGEsRi5ELkhhKXx8TyhhLk0sRi5ELkhhKTtpZihBcnJheS5pc0FycmF5KHEpKWZvcih2YXIgcj0wO3I8cS5sZW5ndGgmJnI8MjAwO3IrKylmWyJwciIrKHIrMSldPXRnKHFbcl0pfXZhciB0PVIoYSxGLkQuVmMpO3QmJihmLmVkaWQ9dCk7aHQoYSxmKTtmb3IodmFyIHU9CmZ1bmN0aW9uKGRhLG1hKXtpZih0eXBlb2YgbWEhPT0ib2JqZWN0Inx8IXJRW2RhXSl7dmFyIFBhPSJlcC4iK2RhLEZhPSJlcG4uIitkYTtkYT1BYihtYSk/RmE6UGE7dmFyIHFhPUFiKG1hKT9QYTpGYTtmLmhhc093blByb3BlcnR5KHFhKSYmZGVsZXRlIGZbcWFdO2ZbZGFdPVN0cmluZyhtYSl9fSx2PXt9LHg9bShldShhKSkseT14Lm5leHQoKTsheS5kb25lO3k9eC5uZXh0KCkpe3ZhciB6PXkudmFsdWU7ZCh6LFIoYSx6KSl9Zm9yKHZhciBDPW0oT2JqZWN0LmtleXModikuc29ydCgpKSxEPUMubmV4dCgpOyFELmRvbmU7RD1DLm5leHQoKSl7dmFyIEk9RC52YWx1ZTtlW0ldPXZbSV19KGZ1bmN0aW9uKGRhKXtiayhaSyhhKSkmJnR5cGVvZiBkYT09PSJvYmplY3QiJiZHYihkYXx8e30sZnVuY3Rpb24obWEsUGEpe3R5cGVvZiBQYSE9PSJvYmplY3QiJiYoZVsic3N0LiIrbWFdPVN0cmluZyhQYSkpfSl9KShSKGEsRi5ELm9qKSk7YnYoZSxSKGEsRi5ELmVkKSk7dmFyIEc9UihhLEYuRC5XZCl8fAp7fTtHYihHLGZ1bmN0aW9uKGRhLG1hKXttYSE9PXZvaWQgMCYmKChtYT09PW51bGwmJihtYT0iIiksZGEhPT1GLkQuZmJ8fGcudWlkKT9iW2RhXSE9PW1hJiYoZlsoQWIobWEpPyJ1cG4uIjoidXAuIikrU3RyaW5nKGRhKV09U3RyaW5nKG1hKSxiW2RhXT1tYSk6Zy51aWQ9U3RyaW5nKG1hKSl9KTtpZihXaigpJiYhRG0oKSYmIWJrKFpLKGEpKSl7dmFyIE49UShhLEguSi5vZyk7Tj9lLl9nc2lkPU46ZS5uamlkPSIxIn12YXIgUz1RKGEsSC5KLlZpKTsoUz09bnVsbD92b2lkIDA6Uy52YWx1ZSk+MCYmKGUuZ2FmPVMuZ2V0KCkpO3ZhciBXPVIoYSxGLkQuV2MpO2lmKFcpZm9yKHZhciBlYT1tKE9iamVjdC5rZXlzKFcpKSxqYT1lYS5uZXh0KCk7IWphLmRvbmU7amE9ZWEubmV4dCgpKXt2YXIgZmE9amEudmFsdWU7ZlsiZXh0LiIrZmFdPVdbZmFdfHwiIn12YXIgc2E9bFEoYSk7dmcuY2FsbCh0aGlzLHtCYTplLHZlOmcsTGo6Zn0sc2EudXJsLHNhLmVuZHBvaW50LFpLKGEpLHZvaWQgMCwKYS50YXJnZXQuZGVzdGluYXRpb25JZCxhLk0uZXZlbnRJZCxhLk0ucHJpb3JpdHlJZCl9O3dhKHNRLHZnKTsKdmFyIHRRPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEucmVwbGFjZSgvXCRceyhbXlx9XSspXH0vZyxmdW5jdGlvbihjLGQpe3JldHVybiBiW2RdfHxjfSl9LHVRPWZ1bmN0aW9uKGEpe3ZhciBiPXt9LGM9IiIsZD1hLnBhdGhuYW1lLmluZGV4T2YoIi9nL2NvbGxlY3QiKTtkPj0wJiYoYz1hLnBhdGhuYW1lLnN1YnN0cmluZygwLGQpKTtiLnRyYW5zcG9ydF91cmw9YS5wcm90b2NvbCsiLy8iK2EuaG9zdG5hbWUrYzt2YXIgZTt0cnl7ZT1lbmNvZGVVUklDb21wb25lbnQoY3x8Ii8iKX1jYXRjaChmKXtlPWVuY29kZVVSSUNvbXBvbmVudCgiLyIpfWIuZW5jb2RlZF9wYXRoPWU7cmV0dXJuIGJ9LHZRPWZ1bmN0aW9uKGEsYil7aWYoIU0oNTQ2KSlyZXR1cm57dXJsOmEsYm9keTpifTt2YXIgYz1tKGEuc3BsaXQoIj8iKSksZD1jLm5leHQoKS52YWx1ZSxlPWMubmV4dCgpLnZhbHVlLGY9aFEoZCxlfHwiIixifHwiIiwhMCksZz1mLkljLGg9Zi5rZjthPWghPT0iIj9nKyI/IitoOmc7Yj1mLmJvZHk7CnJldHVybnt1cmw6YSxib2R5OmJ9fSx4UT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9UmooYiksZT11UShkKSxmPXZRKFhnKGQpLGMpLGc9ZnVuY3Rpb24oaCl7cXgoZi51cmwsZi5ib2R5LG5ldyB3UShlLGgpKSYmYSYma24ucmVnaXN0ZXIoYSwxLGYudXJsKX07IU0oMTMyKXx8TmMoIjsgd3YiKXx8TmMoIkZCQU4iKXx8TmMoIkZCQVYiKXx8UGMoKT9nKCk6bUwoZi51cmwsZi5ib2R5LGUsZyl9LHdRPWZ1bmN0aW9uKGEsYil7Q3guY2FsbCh0aGlzKTt0aGlzLnRlbXBsYXRlcz1hO3RoaXMuTj1ifTt3YSh3USxDeCk7d1EucHJvdG90eXBlLlo9ZnVuY3Rpb24oYSl7dmFyIGI9dFEoYSx0aGlzLnRlbXBsYXRlcyk7cmV0dXJuIHRoaXMuTj9iLnJlcGxhY2UoIl9pc19zdz0wIix0aGlzLk4pOmJ9O3dRLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5aKGEpO0N4LnByb3RvdHlwZS5LLmNhbGwodGhpcyxjLGIpfTt3US5wcm90b3R5cGUuSD1mdW5jdGlvbihhLGIpe3ZhciBjPQp0aGlzLlooYSk7Q3gucHJvdG90eXBlLkguY2FsbCh0aGlzLGMsYil9Owp2YXIgeVE9ZnVuY3Rpb24oYSl7cmV0dXJuIVNiKGEsRm0oKSkmJiFTYihhLEdtKCkpfSxBUT1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoIW5kKCkpcmV0dXJuIHpRKGEsYixjLGQpLCEwO1luKGMsYiE9PSIiP2ErIj8iK2I6YSxkLG5hKE9iamVjdCwiYXNzaWduIikuY2FsbChPYmplY3Qse30sZXx8e30se1FnOiEwfSksdm9pZCAwLGYpfHx6UShhLGIsYyxkKTtyZXR1cm4hMH0selE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YiE9PSIiP2ErIj8iK2I6YTtkP1duKGMsZSxkKTpWbihjLGUpfSxDUT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWIsZz1wZCgpO2chPT12b2lkIDAmJihmKz0iJnRmZD0iK01hdGgucm91bmQoZykpO2I9Zjt2YXIgaD1hKyI/IitiO2lmKCFiayhkKXx8Y2soZCl8fHhQKCkpe3ZhciBsPWhRKGEsYixjLGJrKGQpKTthPWwuSWM7Yj1sLmtmO2M9bC5ib2R5O0FRKGEsYixlLGMsdm9pZCAwLEJRKGEsYixlLGMpKXx8elEoYSxiLGUsYyl9ZWxzZSB4UShlLGgsYyk7CmJrKGQpJiZNKDU2NCkmJm5kKCkmJlRiKGEsIi9nL2NvbGxlY3QiKSYmQS5mZXRjaChhLnN1YnN0cmluZygwLGEubGVuZ3RoLTEwKSx7bWV0aG9kOiJQT1NUIixib2R5OiJDakFPQVR3Y0NCZ08iLGNyZWRlbnRpYWxzOiJvbWl0In0pfSxCUT1mdW5jdGlvbihhLGIsYyxkKXtpZigheVEoYSkpe3ZhciBlPU1tWzY3XSh2b2lkIDApO2lmKGUpcmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGY7dmFyIGc9Yi5yZXBsYWNlKC9eXD8vLCIiKSxoPU51bWJlcihJaihnLCJnYWYiLCExKSksbD0wO051bWJlci5pc0ludGVnZXIoaCkmJihsPWgpO3ZhciBuPW5ldyBlcihsKTtmcihuLDEpO2lmKG4udmFsdWUhPT0wKXt2YXIgcCxxPW4uZ2V0KCkscj1SZWdFeHAoIihefFs/Jl0pZ2FmPVteJl0qKCZ8JCkiKTtwPXIudGVzdChnKT9nLnJlcGxhY2UociwiJDFnYWY9IitxKyIkMiIpOmcuaW5kZXhPZigiPyIpPj0wP2crIiZnYWY9IitxOmdbMF09PT0iLyJ8fGcuaW5kZXhPZigiOi8vIik+PTA/ZysiP2dhZj0iKwpxOmcubGVuZ3RoPjA/ZysiJmdhZj0iK3E6ImdhZj0iK3E7Zj1iLmluZGV4T2YoIj8iKT09PTA/Ij8iK3A6cH1lbHNlIGY9dm9pZCAwO0FRKGUsZnx8YixuYShPYmplY3QsImFzc2lnbiIpLmNhbGwoT2JqZWN0LHt9LGMse2VuZHBvaW50OjY3fSksZCxjLmVuZHBvaW50PT09MTc/dm9pZCAwOntjcmVkZW50aWFsczoib21pdCJ9KX19fSxEUT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W10sZT1mdW5jdGlvbihoKXtkLnB1c2goaCsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KCIiK2EuQmFbaF0pKX07ZC5wdXNoKCJ2PTIiKTtlKCJfZ3NpZCIpO2UoImd0bSIpO2EuQmEuX2dlbyYmZSgiX2dlbyIpO3ZhciBmPSJodHRwczovL3tnYTRDb2xsZWN0aW9uU3ViZG9tYWluLn1nb29nbGUtYW5hbHl0aWNzLmNvbS9nL3MvY29sbGVjdCIucmVwbGFjZSgie2dhNENvbGxlY3Rpb25TdWJkb21haW4ufSIsKGJ8fCJ3d3ciKSsiLiIpLGc9ZC5qb2luKCImIik7elEoZixnLHtkZXN0aW5hdGlvbklkOmEuZGVzdGluYXRpb25JZHx8CiIiLGVuZHBvaW50OjYyLGV2ZW50SWQ6YS5ldmVudElkLHByaW9yaXR5SWQ6YS5wcmlvcml0eUlkfSk7TWwoe3RhcmdldElkOlN0cmluZyhhLkJhLnRpZCkscmVxdWVzdDp7dXJsOmYrIj8iK2cscGFyYW1ldGVyRW5jb2Rpbmc6MixlbmRwb2ludDo2Mn0scWI6Y30pfSxFUT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Imh0dHBzOi8ve2dhNENvbGxlY3Rpb25TdWJkb21haW4ufWFuYWx5dGljcy5nb29nbGUuY29tL2cvcy9jb2xsZWN0Ii5yZXBsYWNlKCJ7Z2E0Q29sbGVjdGlvblN1YmRvbWFpbi59IixiP2IrIi4iOiIiKSxlPVtdLGY9ZnVuY3Rpb24oaCl7ZS5wdXNoKGgrIj0iK2VuY29kZVVSSUNvbXBvbmVudCgiIithLkJhW2hdKSl9O2YoIl9nc2lkIik7ZigiZ3RtIik7YS5CYS5fZ2VvJiZmKCJfZ2VvIik7dmFyIGc9ZS5qb2luKCImIik7elEoZCxnLHtkZXN0aW5hdGlvbklkOmEuZGVzdGluYXRpb25JZHx8IiIsZW5kcG9pbnQ6MTgsZXZlbnRJZDphLmV2ZW50SWQscHJpb3JpdHlJZDphLnByaW9yaXR5SWR9KTsKTWwoe3RhcmdldElkOlN0cmluZyhhLkJhLnRpZCkscmVxdWVzdDp7dXJsOmQrIj8iK2cscGFyYW1ldGVyRW5jb2Rpbmc6MixlbmRwb2ludDoxOH0scWI6Y30pfSxGUT1mdW5jdGlvbihhLGIsYyxkLGUsZil7YyYmYi5wdXNoKCJ0YWdfZXhwPSIrYyk7Yi5wdXNoKCJ6PSIrRGIoKSk7aWYoIWUpe3ZhciBnPWQmJlNiKGQsImdvb2dsZS4iKSYmZCE9PSJnb29nbGUuY29tIj8iaHR0cHM6Ly93d3cuJS9hZHMvZ2EtYXVkaWVuY2VzP3Y9MSZ0PXNyJnNsZl9yZD0xJl9yPTQmIi5yZXBsYWNlKCIlIixkKTp2b2lkIDA7aWYoZyl7dmFyIGg9ZytiLmpvaW4oIiYiKTtYbih7ZGVzdGluYXRpb25JZDphLmRlc3RpbmF0aW9uSWR8fCIiLGVuZHBvaW50OjQ3LGV2ZW50SWQ6YS5ldmVudElkLHByaW9yaXR5SWQ6YS5wcmlvcml0eUlkfSxoKTtNbCh7dGFyZ2V0SWQ6U3RyaW5nKGEuQmEudGlkKSxyZXF1ZXN0Ont1cmw6aCxwYXJhbWV0ZXJFbmNvZGluZzoyLGVuZHBvaW50OjQ3fSxxYjpmfSl9fX0sR1E9CmZ1bmN0aW9uKGEsYixjLGQpe2MmJmIucHVzaCgidGFnX2V4cD0iK2MpO3pRKCJodHRwczovL3N0YXRzLmcuZG91YmxlY2xpY2submV0L2cvY29sbGVjdCIsInY9MiYiK2Iuam9pbigiJiIpLHtkZXN0aW5hdGlvbklkOmEuZGVzdGluYXRpb25JZHx8IiIsZW5kcG9pbnQ6MTksZXZlbnRJZDphLmV2ZW50SWQscHJpb3JpdHlJZDphLnByaW9yaXR5SWR9KTtNbCh7dGFyZ2V0SWQ6U3RyaW5nKGEuQmEudGlkKSxyZXF1ZXN0Ont1cmw6Imh0dHBzOi8vc3RhdHMuZy5kb3VibGVjbGljay5uZXQvZy9jb2xsZWN0P3Y9MiYiK2Iuam9pbigiJiIpLHBhcmFtZXRlckVuY29kaW5nOjIsZW5kcG9pbnQ6MTl9LHFiOmR9KX0sSFE9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKHYpe3EucHVzaCh2KyI9IitlbmNvZGVVUklDb21wb25lbnQoIiIrYS5CYVt2XSkpfXZhciBkPWIueHQsZT1iLkJ0LGY9Yi5BdCxnPWIuenQsaD1iLlpyLGw9Yi5DcyxuPWIuUHIscD1iLkd0O2lmKGR8fGV8fGZ8fGcpe3ZhciBxPQpbXTthLkJhLl9uZyYmYygiX25nIik7YS5CYS5uZ3MmJmMoIm5ncyIpO2EuQmEuaWJ0JiZjKCJpYnQiKTtjKCJ0aWQiKTtjKCJjaWQiKTtjKCJndG0iKTtmb3IodmFyIHI9bShPRiksdD1yLm5leHQoKTshdC5kb25lO3Q9ci5uZXh0KCkpe3ZhciB1PXQudmFsdWU7YS5CYVt1XSE9bnVsbCYmYyh1KX1xLnB1c2goImFpcD0xIik7YS52ZS51aWQmJnEucHVzaCgidWlkPSIrZW5jb2RlVVJJQ29tcG9uZW50KCIiK2EudmUudWlkKSk7YygiZG1hIik7YS5CYS5kbWFfY3BzIT1udWxsJiZjKCJkbWFfY3BzIik7YS5CYS5nY3MhPW51bGwmJmMoImdjcyIpO2MoImdjZCIpO2EuQmEubnBhIT1udWxsJiZjKCJucGEiKTthLkJhLmZybSE9bnVsbCYmYygiZnJtIik7ZCYmR1EoYSxxLnNsaWNlKCkscCxiLnFiKTtlJiZGUShhLHEuc2xpY2UoKSxwLGgsbCxiLnFiKTtmJiZFUShhLG4sYi5xYik7ZyYmRFEoYSxuLGIucWIpfX0sSVE9ZnVuY3Rpb24oKXt0aGlzLlI9MTt0aGlzLlo9e307dGhpcy5LPS0xO3RoaXMuSD0KbmV3IHdnfTtJUS5wcm90b3R5cGUuTj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMsZD1uZXcgc1EoYSx0aGlzLlosYiksZT17ZXZlbnRJZDphLk0uZXZlbnRJZCxwcmlvcml0eUlkOmEuTS5wcmlvcml0eUlkfSxmPXlQKGEpLGcsaDtmJiZ0aGlzLkguUihkKXx8dGhpcy5mbHVzaCgpO3ZhciBsPWYmJnRoaXMuSC5hZGQoZCk7aWYobCl7aWYodGhpcy5LPDApe3ZhciBuPUEscD1uLnNldFRpbWVvdXQscTtiayhaSyhhKSk/SlE/KEpRPSExLHE9S1EpOnE9TFE6cT01RTM7dGhpcy5LPXAuY2FsbChuLGZ1bmN0aW9uKCl7Yy5mbHVzaCgpfSxxKX19ZWxzZXt2YXIgcj16ZyhkLHRoaXMuUisrKSx0PXIucGFyYW1zLHU9ci5ib2R5O2c9dDtoPXU7RnkoMyxhLmV2ZW50TmFtZSk7Q1EoZC5iYXNlVXJsLHQsdSxkLk4se2Rlc3RpbmF0aW9uSWQ6YS50YXJnZXQuZGVzdGluYXRpb25JZCxlbmRwb2ludDpkLmVuZHBvaW50LGV2ZW50SWQ6ZC5ldmVudElkLHByaW9yaXR5SWQ6ZC5wcmlvcml0eUlkfSk7CnZhciB2PVEoYSxILkouaGQpLHg9UShhLEguSi5yZykseT1RKGEsSC5KLk5oKSx6PVEoYSxILkouTWgpLEM9TyhhLk0sRi5ELnVpKSE9PSExLEQ9U3QoYS5NKSxJPXt4dDp2LEJ0OngsQXQ6eSx6dDp6LFpyOkVtKCksbXY6QyxsdjpELENzOkFtKCkscWI6ZSxNOmEuTSxQcjpEbSgpLEd0OkNwKGEpfTtIUShkLEkpfWZuLkgmJkF6KGEuTS5ldmVudElkKTtObChmdW5jdGlvbigpe2lmKGwpe3ZhciBHPXpnKGQpLE49Ry5ib2R5O2c9Ry5wYXJhbXM7aD1OfXJldHVybnt0YXJnZXRJZDphLnRhcmdldC5kZXN0aW5hdGlvbklkLHJlcXVlc3Q6e3VybDpkLmJhc2VVcmwrIj8iK2cscGFyYW1ldGVyRW5jb2Rpbmc6Mixwb3N0Qm9keTpoLGVuZHBvaW50OmQuZW5kcG9pbnR9LHFiOmUsaXNCYXRjaGVkOiExfX0pfTtJUS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEpe1lLKGEpJiYheFAoKT90aGlzLmZhKGEpOnRoaXMuTihhKX07SVEucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7aWYodGhpcy5ILmV2ZW50cy5sZW5ndGgpe3ZhciBhPQpCZyh0aGlzLkgsdGhpcy5SKyspO0NRKHRoaXMuSC5iYXNlVXJsLGEucGFyYW1zLGEuYm9keSx0aGlzLkguSyx7ZGVzdGluYXRpb25JZDp0aGlzLkguZGVzdGluYXRpb25JZHx8IiIsZW5kcG9pbnQ6dGhpcy5ILmVuZHBvaW50LGV2ZW50SWQ6dGhpcy5ILloscHJpb3JpdHlJZDp0aGlzLkguZmF9KTt0aGlzLkg9bmV3IHdnO3RoaXMuSz49MCYmKEEuY2xlYXJUaW1lb3V0KHRoaXMuSyksdGhpcy5LPS0xKX19O0lRLnByb3RvdHlwZS5mYT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9WUsoYSk7TSg1NjgpJiYhTSg1ODYpJiZSKGEsRi5ELkJjKT09PSJhIiYmKGM9Y3coYykpO2lmKEV3KGMpKXt2YXIgZD1zdyhjKTtkP2QudGhlbihmdW5jdGlvbihmKXtiLk4oYSxmKX0sZnVuY3Rpb24oKXtiLk4oYSl9KTp0aGlzLk4oYSl9ZWxzZXt2YXIgZT1EdyhjKTt0aGlzLk4oYSxlKX19O3ZhciBLUT1OZigyNCw1MDApLExRPU5mKDU2LDVFMyksSlE9ITA7dmFyIE1RPWZ1bmN0aW9uKGEpe3ZhciBiPVN0KGEuTSk7TyhhLk0sRi5ELldiKT09PSEwJiYoYj0hMSk7VihhLEguSi53ZCxiKX07CnZhciBOUT1mdW5jdGlvbihhLGIsYyl7Yz09PXZvaWQgMCYmKGM9e30pO2lmKGI9PW51bGwpcmV0dXJuIGM7aWYodHlwZW9mIGI9PT0ib2JqZWN0Iilmb3IodmFyIGQ9bShPYmplY3Qua2V5cyhiKSksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpe3ZhciBmPWUudmFsdWU7TlEoYSsiLiIrZixiW2ZdLGMpfWVsc2UgY1thXT1iO3JldHVybiBjfSxPUT1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz1tKGEpLGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKXt2YXIgZT1kLnZhbHVlO2JbZV09ISFYbyhlKX1yZXR1cm4gYn0sUVE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1QUS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIVhvKGUpfSk7aWYoYy5sZW5ndGgpe3ZhciBkPU9RKGMpOyRvKGMsZnVuY3Rpb24oKXtmb3IodmFyIGU9T1EoYyksZj1bXSxnPW0oYyksaD1nLm5leHQoKTshaC5kb25lO2g9Zy5uZXh0KCkpe3ZhciBsPWgudmFsdWU7IWRbbF0mJmVbbF0mJmYucHVzaChsKTtlW2xdJiYKKGRbbF09ITApfWlmKGYubGVuZ3RoKXtWKGIsSC5KLkdoLCEwKTt2YXIgbj1mLm1hcChmdW5jdGlvbihwKXtyZXR1cm4gTG9bcF19KS5qb2luKCIuIik7biYmV0soYiwiZ2N1dCIsbik7TVEoYik7YShiKX19KX19LFJRPWZ1bmN0aW9uKGEpe1IoYSxGLkQuV2MpJiYhYmsoWksoYSkpJiZVKGEsRi5ELldjKX0sU1E9ZnVuY3Rpb24oYSl7YmsoWksoYSkpJiZXSyhhLCJuYXZ0IixxZCgpKX0sVFE9ZnVuY3Rpb24oYSl7YmsoWksoYSkpJiZXSyhhLCJscGMiLGlyKCkpfSxVUT1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe3ZhciBiPU8oYS5NLEYuRC5XYiksYztiPT09ITAmJihjPSIxIik7Yj09PSExJiYoYz0iMCIpO2MmJldLKGEsInJkcCIsYyl9fSxWUT1mdW5jdGlvbihhLGIpe2lmKGJrKFpLKGIpKSl7dmFyIGM9UShiLEguSi5tZyk7KGIuZXZlbnROYW1lPT09InBhZ2VfdmlldyJ8fGMpJiZRUShhLGIpfX0sV1E9ZnVuY3Rpb24oYSl7aWYoYmsoWksoYSkpJiZhLmV2ZW50TmFtZT09PUYuRC55ZiYmClEoYSxILkouR2gpKXt2YXIgYj1SKGEsRi5ELnhpKTtiJiYoV0soYSwiZ2N1dCIsYiksV0soYSwic3luIiwxKSl9fSxYUT1mdW5jdGlvbihhLGIsYyl7aWYoYT09PWIpcmV0dXJuIFdqKCkmJlNiKGMrIi8iLFhqKCkrIi8iKT8iNyI6IjEiO2lmKFRiKGEsIi4iK2IpKXJldHVybiIyIjtpZihUYihiLCIuIithKSlyZXR1cm4iMyI7dmFyIGQ9YS5zcGxpdCgiLiIpLGU9Yi5zcGxpdCgiLiIpLGY9ZnVuY3Rpb24oZyl7aWYoZC5sZW5ndGg8Z3x8ZS5sZW5ndGg8ZylyZXR1cm4hMTtmb3IodmFyIGg9MTtoPD1nO2grKylpZihkW2QubGVuZ3RoLWhdIT09ZVtlLmxlbmd0aC1oXSlyZXR1cm4hMTtyZXR1cm4hMH07cmV0dXJuIGYoMyk/IjYiOmYoMik/IjUiOiI0In0sWVE9ZnVuY3Rpb24oYSl7aWYoYmsoWksoYSkpKXt2YXIgYj1layhhLk0pO2lmKGIpe3ZhciBjPVlqKGIsIi8iKSxkPVJqKGMpLGU9TmooZCwiaG9zdCIpLGY9TmooQS5sb2NhdGlvbiwiaG9zdCIpO2lmKGUmJmYpe3ZhciBnPU5qKGQsCiJwYXRoIik7YS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELlRhLHtzc3RkOlhRKGUsZixnKX0pfX19fSxaUT1mdW5jdGlvbihhKXtiayhaSyhhKSkmJlYoYSxILkouSmEsITEpfSwkUT1mdW5jdGlvbihhKXtiayhaSyhhKSkmJihRKGEsSC5KLkphKSYmV0soYSwic3AiLDEpLFEoYSxILkouSXEpJiZXSyhhLCJzeW4iLDEpLFEoYSxILkouUGMpJiYoV0soYSwiZW1fZXZlbnQiLDEpLFdLKGEsInNwIiwxKSkpfSxhUj1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe3ZhciBiPSRrKDI1KTtiJiZXSyhhLCJ0ZnQiLE51bWJlcihiKSl9fSxiUj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGUpe3ZhciBmPU5RKEYuRC5BYyxlKTtHYihmLGZ1bmN0aW9uKGcsaCl7VShhLGcsaCl9KX1pZihiayhaSyhhKSkpe3ZhciBjPWRJKGEsImNjZF9hZGRfMXBfZGF0YSIsITEpPzE6MDtXSyhhLCJ1ZGUiLGMpO3ZhciBkPU8oYS5NLEYuRC5BYyk7ZCE9PXZvaWQgMD8oWnYoZCksYihkKSxVKGEsRi5ELkJjLCJjIikpOgpiKFEoYSxILkouWWEpKTtWKGEsSC5KLllhKX19LGNSPWZ1bmN0aW9uKGEpe2lmKGJrKFpLKGEpKSl7dmFyIGI9Vk0oKTtiJiZXSyhhLCJ1c19wcml2YWN5IixiKTt2YXIgYz1MdCgpO2MmJldLKGEsImdkcHIiLGMpO3ZhciBkPUt0KCk7ZCYmV0soYSwiZ2Rwcl9jb25zZW50IixkKTt2YXIgZT1rRi5ncHBTdHJpbmc7ZSYmV0soYSwiZ3BwIixlKTt2YXIgZj1rRi5IO2YmJldLKGEsImdwcF9zaWQiLGYpfX0sZFI9ZnVuY3Rpb24oYSl7YmsoWksoYSkpJiZFbCgpJiZPKGEuTSxGLkQubWIpJiZXSyhhLCJhZHIiLDEpfSxlUj1mdW5jdGlvbihhKXtpZihiayhaSyhhKSkpe3ZhciBiPURtKCk7YiYmV0soYSwiZ2NzdWIiLGIpfX0sZlI9ZnVuY3Rpb24oYSl7aWYoYmsoWksoYSkpKXtPKGEuTSxGLkQuU2Msdm9pZCAwLDQpPT09ITEmJldLKGEsIm5ncyIsMSk7QW0oKSYmV0soYSwiZ2FfcmQiLDEpO1ZLKCl8fFdLKGEsIm5nc3QiLDEpO3ZhciBiPUVtKCk7YiYmV0soYSwiZXRsZCIsYil9fSxnUj0KZnVuY3Rpb24oYSl7fSxoUj1mdW5jdGlvbihhKXtiayhaSyhhKSkmJkVsKCkmJldLKGEsInJuZCIsUU0oKSl9LFBRPVtGLkQua2EsRi5ELm1hLEYuRC5YYV07CnZhciBpUj1mdW5jdGlvbihhLGIpe3ZhciBjO2E6e2lmKCFRKGEsSC5KLkZjKSl7dmFyIGQ9VFAoYSk7aWYoZCl7aWYoUlAoZCxhKSl7Yz1kO2JyZWFrIGF9UCgyNSk7YS5pc0Fib3J0ZWQ9ITB9fWM9dm9pZCAwfXZhciBlPWM7cmV0dXJue2NsaWVudElkOkVQKGEsYiksemI6ZX19LGpSPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9UW8oTyhhLk0sRi5ELktiKSk7aWYoTyhhLk0sRi5ELlpjKSYmTyhhLk0sRi5ELlljKSlmP0NQKGEsZiwxKTooUCgxMjcpLGEuaXNBYm9ydGVkPSEwKTtlbHNle3ZhciBnPWY/MTo4O1YoYSxILkouSGgsITEpO2Z8fChmPUZQKGEpLGc9Myk7Znx8KGY9YixnPTUpO2lmKCFmKXt2YXIgaD1YbyhGLkQucmEpLGw9elAoKTtmPSFsLmZyb21fY29va2llfHxoP2wudmlkOnZvaWQgMDtnPTZ9Zj9mPSIiK2Y6KGY9QXYoKSxnPTcsVihhLEguSi5uZywhMCksVihhLEguSi5IaCwhMCkpO0NQKGEsZixnKX1SKGEsRi5ELktiKTtpZighUShhLEguSi5GYykpe3ZhciBuPQpRKGEsSC5KLkViKSxwPU1hdGguZmxvb3Iobi8xRTMpLHE9dm9pZCAwO1EoYSxILkouSGgpfHwocT1TUChhKXx8Yyk7dmFyIHI9SWIoTyhhLk0sRi5ELnloLDMwKSk7cj1NYXRoLm1pbig0NzUscik7cj1NYXRoLm1heCg1LHIpO3ZhciB0PUliKE8oYS5NLEYuRC5QaSwxRTQpKSx1PUxQKHEpO1YoYSxILkoubmcsITEpO1YoYSxILkouVGUsITEpO1YoYSxILkoucGcsMCk7dSYmdS5qJiZWKGEsSC5KLnBnLE1hdGgubWF4KDAsdS5qLU1hdGgubWF4KDAscC11LnQpKSk7dmFyIHY9ITE7aWYoIXUpe1YoYSxILkoubmcsITApO3Y9ITA7dmFyIHg9e307dT0oeC5zPVN0cmluZyhwKSx4Lm89MSx4Lmc9ITEseC50PXAseC5sPSExLHguaD12b2lkIDAseCl9cD51LnQrcio2MCYmKHY9ITAsdS5zPVN0cmluZyhwKSx1Lm8rKyx1Lmc9ITEsdS5oPXZvaWQgMCk7aWYodilWKGEsSC5KLlRlLCEwKSxkLmxzKGEpO2Vsc2UgaWYoZC5YcigpPnR8fGEuZXZlbnROYW1lPT09Ri5ELnNjKXUuZz0hMDtRKGEsSC5KLmxnKT8KTyhhLk0sRi5ELmZiKT91Lmw9ITA6dS5sPSExOnUubD0hMTt2YXIgeT11Lmg7aWYoUShhLEguSi5sZyl8fGJrKFpLKGEpKSl7dmFyIHo9TyhhLk0sRi5ELm9oKSxDPXo/MTo4O3p8fCh6PXksQz00KTt6fHwoej16digpLEM9Nyk7dmFyIEQ9ei50b1N0cmluZygpLEk9QyxHPVEoYSxILkoudGwpO2lmKEc9PT12b2lkIDB8fEk8PUcpVShhLEYuRC5vaCxEKSxWKGEsSC5KLnRsLEkpfWU/KGEuY29weVRvSGl0RGF0YShGLkQueGMsdS5zKSxhLmNvcHlUb0hpdERhdGEoRi5ELkFoLHUubyksYS5jb3B5VG9IaXREYXRhKEYuRC56aCx1Lmc/MTowKSk6KFUoYSxGLkQueGMsdS5zKSxVKGEsRi5ELkFoLHUubyksVShhLEYuRC56aCx1Lmc/MTowKSk7VihhLEguSi5ybSx1Lmw/MTowKTtXaigpJiZWKGEsSC5KLm9nLHUuZHx8Y2MoKSl9fTsKdmFyIGtSPWZ1bmN0aW9uKGEpe3ZhciBiPWEuaW5kZXhPZigiPyIpLGM9Yj09PS0xP2E6YS5zdWJzdHJpbmcoMCxiKSxkPUtqKGMpO2QmJihjPWQpO3JldHVybiBiPT09LTE/YzoiIitjK2Euc3Vic3RyaW5nKGIpfSxsUj1mdW5jdGlvbihhKXtpZighTyhhLk0sRi5ELlljKXx8IU8oYS5NLEYuRC5aYykpe3ZhciBiPWEuY29weVRvSGl0RGF0YSxjPUYuRC56YSxkPSIiLGU9Qi5sb2NhdGlvbjtpZihlKXt2YXIgZj1lLnBhdGhuYW1lfHwiIjtmLmNoYXJBdCgwKSE9PSIvIiYmKGY9Ii8iK2YpO3ZhciBnPWUuc2VhcmNofHwiIjtpZihnWzBdPT09Ij8iKWZvcih2YXIgaD1nLnN1YnN0cmluZygxKS5zcGxpdCgiJiIpLGw9MDtsPGgubGVuZ3RoOysrbCl7dmFyIG49aFtsXS5zcGxpdCgiPSIpO24mJm4ubGVuZ3RoPT09MiYmblswXT09PSJ3YnJhaWQiJiYoZz1nLnJlcGxhY2UoLyhbPyZdKXdicmFpZD1bXiZdKy8sIiQxd2JyYWlkPSIrJGIoblsxXSkpKX1kPWUucHJvdG9jb2wrIi8vIitlLmhvc3RuYW1lKwpmK2d9Yi5jYWxsKGEsYyxkLGtSKTt2YXIgcD1hLmNvcHlUb0hpdERhdGEscT1GLkQuVWEscj11QSgiZ3RtLmd0YWdSZWZlcnJlci4iK2EudGFyZ2V0LmRlc3RpbmF0aW9uSWQpLHQ9Qi5yZWZlcnJlcjtwLmNhbGwoYSxxLChyPyIiK3I6dCl8fHZvaWQgMCxrUik7YS5jb3B5VG9IaXREYXRhKEYuRC5NYixCLnRpdGxlKTthLmNvcHlUb0hpdERhdGEoRi5ELnRiLChIYy5sYW5ndWFnZXx8IiIpLnRvTG93ZXJDYXNlKCkpO3ZhciB1PXFJKCk7YS5jb3B5VG9IaXREYXRhKEYuRC5iZCx1LndpZHRoKyJ4Iit1LmhlaWdodCk7YS5jb3B5VG9IaXREYXRhKEYuRC5ZZix2b2lkIDAsa1IpO1RNKCkmJmEuY29weVRvSGl0RGF0YShGLkQuUGQsIjEiKX19O3ZhciBuUj1mdW5jdGlvbihhKXt2YXIgYj14QyhhLk0pLGM9ZnVuY3Rpb24oZCxlKXttUltkXSYmVShhLGQsZSl9O0NkKGJbRi5ELktmXSk/R2IoYltGLkQuS2ZdLGZ1bmN0aW9uKGQsZSl7YygoRi5ELktmKyJfIitkKS50b0xvd2VyQ2FzZSgpLGUpfSk6R2IoYixjKX0sb1I9e30sbVI9KG9SW0YuRC5HZl09MSxvUltGLkQuSGZdPTEsb1JbRi5ELklmXT0xLG9SW0YuRC5KZl09MSxvUltGLkQuTGZdPTEsb1JbRi5ELk1mXT0xLG9SKTt2YXIgcFI9ZnVuY3Rpb24oYSl7aWYoIWJrKFpLKGEpKSYmUShhLEguSi5tZykmJlhvKEYuRC5rYSkmJmRJKGEsImdhNF9hZHNfbGlua2VkIiwhMSkpe3ZhciBiPUxLKGEpLGM9SHIoYi5wcmVmaXgpLGQ9UnMoYyk7VShhLEYuRC5CZSxkLkVnKTtVKGEsRi5ELkRlLGQuV2gpO1UoYSxGLkQuQ2UsZC5VaCl9fTt2YXIgcVI9ZnVuY3Rpb24oYSl7dmFyIGI9TyhhLk0sRi5ELlpjKTtiJiZJUChKLlUueG4pO1EoYSxILkouUGMpJiZJUChKLlUuTmspO3ZhciBjPXlrKHprKCkpOyhifHxNayhjKXx8YyYmYy5wYXJlbnQmJmMuY29udGV4dCYmYy5jb250ZXh0LnNvdXJjZT09PTUpJiZJUChKLlUuZm4pO1EoYSxILkouY2opJiZJUChKLlUuSW0pO1EoYSxILkouYmopJiZJUChKLlUuSG0pfTt2YXIgclI9ZnVuY3Rpb24oYSl7dmFyIGI9UShhLEguSi5WaSl8fG5ldyBlcjtRKGEsSC5KLmJqKSYmUShhLEguSi5jaikmJmZyKGIsMik7VihhLEguSi5WaSxiKX07ZnVuY3Rpb24gc1IoYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5mYik7dmFyIGI9TyhhLk0sRi5ELldkKTtiJiYoS0MoYixmdW5jdGlvbigpe30pLFUoYSxGLkQuV2QsYikpfTt2YXIgdVI9ZnVuY3Rpb24oYSl7aWYodFIuTXIucmVwbGFjZSgvXHMrL2csIiIpLnNwbGl0KCIsIikuaW5kZXhPZihhLmV2ZW50TmFtZSk+PTApYS5pc0Fib3J0ZWQ9ITA7ZWxzZXt2YXIgYj1YSyhhKTtiJiZiLmJsYWNrbGlzdGVkJiYoYS5pc0Fib3J0ZWQ9ITApfX0sdFI9e01yOkxmKDMxKX07ZnVuY3Rpb24gdlIoYSl7dmFyIGI9ZnVuY3Rpb24oYyl7cmV0dXJuISFjJiZjLmNvbnZlcnNpb259O1YoYSxILkoubWcsYihYSyhhKSkpO1EoYSxILkoubmcpJiZWKGEsSC5KLlltLGIoWEsoYSwiZmlyc3RfdmlzaXQiKSkpO1EoYSxILkouVGUpJiZWKGEsSC5KLmJuLGIoWEsoYSwic2Vzc2lvbl9zdGFydCIpKSl9O3ZhciB3Uj1mdW5jdGlvbihhKXtGby5oYXNPd25Qcm9wZXJ0eShhLmV2ZW50TmFtZSkmJihWKGEsSC5KLldtLCEwKSxhLmNvcHlUb0hpdERhdGEoRi5ELkhhKSxhLmNvcHlUb0hpdERhdGEoRi5ELmViKSl9O3ZhciB4Uj1mdW5jdGlvbihhKXtRKGEsSC5KLmJlKT9WKGEsSC5KLmxnLCExKTpkSShhLCJjY2RfYWRkX2VjX3N0aXRjaGluZyIsITEpJiZWKGEsSC5KLmxnLCEwKX07dmFyIHlSPWZ1bmN0aW9uKGEpe3ZhciBiPVEoYSxILkoucGcpO2I9Ynx8MDt2YXIgYz0hIVEoYSxILkouc2EpLGQ9Yj09PTB8fGM7VihhLEguSi5laixkKTtkJiZWKGEsSC5KLnBnLDYwKX07dmFyIEFSPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj17fSxjPVN0cmluZyh6Ui5jb29raWUpLnNwbGl0KCI7IiksZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdLnNwbGl0KCI9IiksZj1lWzBdLnRyaW0oKTtpZihmJiZhKGYpKXt2YXIgZz1lLnNsaWNlKDEpLmpvaW4oIj0iKS50cmltKCk7ZyYmKGc9ZGVjb2RlVVJJQ29tcG9uZW50KGcpKTt2YXIgaD12b2lkIDAsbD12b2lkIDA7KChoPWIpW2w9Zl18fChoW2xdPVtdKSkucHVzaChnKX19cmV0dXJuIGJ9O3ZhciBCUj13aW5kb3cselI9ZG9jdW1lbnQsQ1I9ZnVuY3Rpb24oYSl7dmFyIGI9QlIuX2dhVXNlclByZWZzO2lmKGImJmIuaW9vJiZiLmlvbygpfHx6Ui5kb2N1bWVudEVsZW1lbnQuaGFzQXR0cmlidXRlKCJkYXRhLWdvb2dsZS1hbmFseXRpY3Mtb3B0LW91dCIpfHxhJiZCUlsiZ2EtZGlzYWJsZS0iK2FdPT09ITApcmV0dXJuITA7dHJ5e3ZhciBjPUJSLmV4dGVybmFsO2lmKGMmJmMuX2dhVXNlclByZWZzJiZjLl9nYVVzZXJQcmVmcz09Im9vIilyZXR1cm4hMH1jYXRjaChmKXt9Zm9yKHZhciBkPUFSKGZ1bmN0aW9uKGYpe3JldHVybiBmPT09IkFNUF9UT0tFTiJ9KS5BTVBfVE9LRU58fFtdLGU9MDtlPGQubGVuZ3RoO2UrKylpZihkW2VdPT0iJE9QVF9PVVQiKXJldHVybiEwO3JldHVybiB6Ui5nZXRFbGVtZW50QnlJZCgiX19nYU9wdE91dEV4dGVuc2lvbiIpPyEwOiExfTt2YXIgRFI9ZnVuY3Rpb24oYSl7aWYoQ1IoYS50YXJnZXQuZGVzdGluYXRpb25JZCkpUCgyOCksYS5pc0Fib3J0ZWQ9ITA7ZWxzZXt2YXIgYj14aygpO2lmKGImJkFycmF5LmlzQXJyYXkoYi5kZXN0aW5hdGlvbnMpKWZvcih2YXIgYz0wO2M8Yi5kZXN0aW5hdGlvbnMubGVuZ3RoO2MrKylpZihDUihiLmRlc3RpbmF0aW9uc1tjXSkpe1AoMTI1KTthLmlzQWJvcnRlZD0hMDticmVha319fTt2YXIgRVI9ZnVuY3Rpb24oYSl7dmFyIGI9Qi5sb2NhdGlvbi5wcm90b2NvbDtiIT09Imh0dHA6IiYmYiE9PSJodHRwczoiJiYoUCgyOSksYS5pc0Fib3J0ZWQ9ITApfTt2YXIgRlI9ZnVuY3Rpb24oYSl7SGMmJkhjLmxvYWRQdXJwb3NlPT09InByZXZpZXciJiYoUCgzMCksYS5pc0Fib3J0ZWQ9ITApfTt2YXIgR1I9ZnVuY3Rpb24oYSxiKXtiLlRqJiYoVihhLEguSi5zYSwhMCksYi5Uaj0hMSxXaigpJiZWKGEsSC5KLm9nLGNjKCkpKX07dmFyIEhSPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyxkKXtCb1tjXXx8ZD09PXZvaWQgMHx8VShhLGMsZCl9TSg1NTApJiZHYihhLk0uV2EsYik7R2IoYS5NLmhiLGIpO0diKGEuTS5FYSxiKX07dmFyIElSPWZ1bmN0aW9uKGEpe2EuZXZlbnROYW1lPT09Ri5ELndhJiYoTyhhLk0sRi5ELlRkLCEwKT8oYS5NLkVhW0YuRC5PYV0mJihNKDU1MCkmJihhLk0uV2FbRi5ELk9hXT1hLk0uRWFbRi5ELk9hXSksYS5NLmhiW0YuRC5PYV09YS5NLkVhW0YuRC5PYV0sYS5NLkVhW0YuRC5PYV09dm9pZCAwLFUoYSxGLkQuT2EpKSxhLmV2ZW50TmFtZT1GLkQuc2MpOmEuaXNBYm9ydGVkPSEwKX07CnZhciBKUj1mdW5jdGlvbihhKXtpZihNKDEzMikpe3ZhciBiPVpLKGEpO2lmKGJrKGIpKWlmKGNrKGIpKWNrKFpLKGEpKSYmYS5tZXJnZUhpdERhdGFGb3JLZXkoRi5ELlRhLHsiM3BkIjoiMSJ9KTtlbHNlIGlmKCEoTmMoIjsgd3YiKXx8TmMoIkZCQU4iKXx8TmMoIkZCQVYiKXx8UGMoKSkmJlhvKEYuRC5yYSkpe1YoYSxILkouZG4sITApO2JrKFpLKGEpKSYmV0soYSwic3dfZXhwIiwxKTthOntpZighTSgxMzIpfHwhYmsoWksoYSkpfHxjayhaSyhhKSkpYnJlYWsgYTtiOnt2YXIgYz17b3Q6WWooZWsoYS5NKSwiL18vc2VydmljZV93b3JrZXIiKX0sZDtkPShjPT09dm9pZCAwP3t9OmMpLm90O3ZhciBlPWlMKGQpO2lmKGU9PT1udWxsfHwhYmcoImludGVybmFsX3N3X2FsbG93ZWQiLCIiKXx8akwoZS5vcmlnaW4pKWJyZWFrIGI7CmlmKCFJYygpKXtnTCgpLksodm9pZCAwLHZvaWQgMCw2KTticmVhayBifXZhciBmPW5ldyBrTChlKTtvbShqbS5iYS5PaCx7fSlbZS5vcmlnaW5dPWY7fX19fX07dmFyIExSPWZ1bmN0aW9uKGEpe2EuY29weVRvSGl0RGF0YShGLkQuT2wpO08oYS5NLEYuRC54aCkmJihVKGEsRi5ELnhoLCEwKSxiayhaSyhhKSl8fEtSKGEpKX0sS1I9ZnVuY3Rpb24oYSl7dmFyIGI9Ri5ELmJkLGM7Y3x8KGM9ZnVuY3Rpb24oKXt9KTtSKGEsYikhPT12b2lkIDAmJlUoYSxiLGMoUihhLGIpKSl9O3ZhciBNUj0iZ2NsaWQgZGNsaWQgZ2Nsc3JjIHdicmFpZCBnYnJhaWQgZ2FkX3NvdXJjZSBnYWRfY2FtcGFpZ25pZCB1dG1fc291cmNlIHV0bV9tZWRpdW0gdXRtX2NhbXBhaWduIHV0bV90ZXJtIHV0bV9jb250ZW50IHV0bV9pZCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBOUigpe3ZhciBhPUIubG9jYXRpb24sYixjPWE9PW51bGw/dm9pZCAwOihiPWEuc2VhcmNoKT09bnVsbD92b2lkIDA6Yi5yZXBsYWNlKCI/IiwiIiksZDtpZihjKXtmb3IodmFyIGU9W10sZj1KaihjLCEwKSxnPW0oTVIpLGg9Zy5uZXh0KCk7IWguZG9uZTtoPWcubmV4dCgpKXt2YXIgbD1oLnZhbHVlLG49ZltsXTtpZihuKWZvcih2YXIgcD0wO3A8bi5sZW5ndGg7cCsrKXt2YXIgcT1uW3BdO3EhPT12b2lkIDAmJmUucHVzaCh7bmFtZTpsLHZhbHVlOnF9KX19ZD1lfWVsc2UgZD1bXTtyZXR1cm4gZH07dmFyIE9SPWZ1bmN0aW9uKGEpe3ZhciBiPU0oMjY2KSxjPU0oMjY3KTtpZihifHxjKXt2YXIgZD1SKGEsRi5ELnphKTtpZihkJiZkLmluZGV4T2YoIj8iKT09PS0xKXt2YXIgZT1OUigpO2lmKGUubGVuZ3RoIT09MCYmKGImJklQKEouVS5HbSksYykpe0lQKEouVS5GbSk7dmFyIGY9ZS5tYXAoZnVuY3Rpb24oZyl7cmV0dXJuIGcubmFtZSsiPSIrZy52YWx1ZX0pLmpvaW4oIiYiKTtVKGEsRi5ELnphLGQrIj8iK2YpfX19fTt2YXIgUFI9W0YuRC5yYSxGLkQua2FdLFFSPVtGLkQucmEsRi5ELmthLEYuRC5tYV07CmZ1bmN0aW9uIFJSKGEpe3ZhciBiLGM9TSg1MDYpJiYhZEkoYSwiY2NkX2dhX2Fkc19pZHNfb3B0X291dCIsITEpLGQ9ISFkSShhLCJnb29nbGVfbmciLCExKSxlPVhvKGM/ZD9RUjpmcDpQUiksZjtmPWRJKGEsRi5ELlVmLE8oYS5NLEYuRC5VZikpfHwhIWRJKGEsImdvb2dsZV9uZyIsITEpO2I9e2hmOmMsRXM6ZCxHbzplLGZmOmYsTGc6ISFkSShhLCJnYTRfYWRzX2xpbmtlZCIsITEpLGJpOkFtKCksR2o6IVZLKCksRnM6YmsoWksoYSkpLERzOiEhUShhLEguSi5iZSksR3M6ISFRKGEsSC5KLlRlKSx1czohIU8oYS5NLEYuRC5ObCksS3M6ISFRKGEsSC5KLmVqKSx4ZzpPKGEuTSxGLkQuU2MpLG5yOk8oYS5NLEYuRC5TYyx2b2lkIDAsNCksSHM6ISFRKGEsSC5KLkZjKX07VihhLEguSi5jaixiLmZmKTtWKGEsSC5KLmJqLFNSKGIpKTtiLmhmJiYhYi5mZiYmYi5MZyYmU1IoYikmJlUoYSwiXyZpYnQiLCIxIik7U1IoYikmJmIuR28mJihiLmhmP2IueGchPT0hMXx8Yi5MZzoxKSYmVihhLApILkoucm4sITApO2IuRXMmJiFiLmJpJiZVKGEsRi5ELkxlLDEpOyhiLmhmP2IueGc6Yi5ucik9PT0hMSYmVShhLCJfJm5ncyIsIjEiKTtWKGEsSC5KLmhkLFRSKGIpJiYoYi5Hc3x8Yi51cykpO1YoYSxILkoucmcsVFIoYikmJmIuS3MmJiFiLmJpKX1mdW5jdGlvbiBTUihhKXtyZXR1cm4gYS5oZj8oYS5MZ3x8YS5mZikmJiFhLmJpJiYhYS5HajphLmZmJiZhLnhnIT09ITEmJiFhLkdqJiYhYS5iaX1mdW5jdGlvbiBUUihhKXtpZihhLkhzKXJldHVybiExO2lmKGEuaGYpe2lmKCFhLmZmJiYhYS5MZylyZXR1cm4hMX1lbHNlIGlmKCFhLmZmKXJldHVybiExO3JldHVybiBhLkZzfHxhLkRzfHxhLkdqfHwoYS5oZj9hLnhnPT09ITEmJiFhLkxnOmEueGc9PT0hMSl8fCFhLkdvPyExOiEwfTt2YXIgVVI9ZnVuY3Rpb24oYSl7c0woKSYmVShhLEYuRC5GZSwiMSIpfTt2YXIgVlI9ZnVuY3Rpb24oYSl7dmFyIGI9e3ByZWZpeDpTdHJpbmcoTyhhLk0sRi5ELm5iLCIiKSkscGF0aDpTdHJpbmcoTyhhLk0sRi5ELnZjLCIvIikpLGZsYWdzOlN0cmluZyhPKGEuTSxGLkQuVGIsIiIpKSxkb21haW46U3RyaW5nKE8oYS5NLEYuRC5MYiwiYXV0byIpKSxwZDpOdW1iZXIoTyhhLk0sRi5ELkNiLDYzMDcyRTMpKX07VihhLEguSi5HYSxiKX07dmFyIFdSPWZ1bmN0aW9uKGEpe2lmKE0oNDM1KXx8TSg1NTMpKXt2YXIgYj1EbSgpO2ImJlYoYSxILkouQXEsYil9fTt2YXIgWVI9ZnVuY3Rpb24oYSl7YS5jb3B5VG9IaXREYXRhKEYuRC5SaSk7Zm9yKHZhciBiPU8oYS5NLEYuRC5SbCl8fFtdLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtpZihkLnJ1bGVfcmVzdWx0KXthLmNvcHlUb0hpdERhdGEoRi5ELlJpLGQudHJhZmZpY190eXBlKTtJUChKLlUuRW4pO2JyZWFrfX19O3ZhciBaUj1mdW5jdGlvbihhKXtpZihkSShhLCJnYTRfYWRzX2xpbmtlZCIsITEpJiZhLmV2ZW50TmFtZT09PUYuRC53YSl7dmFyIGI9TyhhLk0sRi5ELnVjKSE9PSExO2lmKGIpe3ZhciBjPUxLKGEpO2MucGQmJihjLnBkPU1hdGgubWluKGMucGQsNzc3NkUzKSk7UEsoe1RuOmIsbW86T28oTyhhLk0sRi5ELkRiKSksUW86ISFPKGEuTSxGLkQuemMpLFVuOmN9KX19fTt2YXIgJFI9ZnVuY3Rpb24oYSl7VihhLEguSi5NaCwhMSk7VihhLEguSi5OaCwhMSk7aWYoIURtKCkmJldqKCkmJiFiayhaSyhhKSkmJiFRKGEsSC5KLmJlKSYmUShhLEguSi5laikpe3ZhciBiPVEoYSxILkoucmcpO1EoYSxILkoub2cpJiYoYj9WKGEsSC5KLk5oLCEwKTpWKGEsSC5KLk1oLCEwKSl9fTt2YXIgYVM9ZnVuY3Rpb24oYSl7TyhhLk0sRi5ELnpjKSYmKFhvKEYuRC5yYSl8fE8oYS5NLEYuRC5LYil8fFUoYSxGLkQuWm0sITApKTt2YXIgYjt2YXIgYztjPWM9PT12b2lkIDA/MzpjO3ZhciBkPUEubG9jYXRpb24uaHJlZjtpZihkKXt2YXIgZT1SaihkKS5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLGY9SWooZSwiX2dsIiwhMSwhMCl8fCIiO2I9Zj9WcShmLGMpIT09dm9pZCAwOiExfWVsc2UgYj0hMTtiJiZiayhaSyhhKSkmJldLKGEsImdsdiIsMSk7aWYoYS5ldmVudE5hbWUhPT1GLkQud2EpcmV0dXJue307TyhhLk0sRi5ELnpjKSYmQXMoWyJhdyIsImRjIl0pO0NzKFsiYXciLCJkYyJdKTt2YXIgZz0kUChhKSxoPVpQKGEpO3JldHVybiBPYmplY3Qua2V5cyhnKS5sZW5ndGg/ZzpofTt2YXIgYlM9ZnVuY3Rpb24oYSl7dmFyIGI9ITA7Yj1iPT09dm9pZCAwPyExOmI7aWYoTSg0MjUpJiYhKHBsKCl8fGImJlEoYSxILkouZGopfHxhLmV2ZW50TmFtZSE9PUYuRC53YXx8UShhLEguSi5GYykpKXt2YXIgYz17fSxkPXt9LGU9e2V2ZW50TWV0YWRhdGE6bmEoT2JqZWN0LCJhc3NpZ24iKS5jYWxsKE9iamVjdCx7fSxhLk0uZXZlbnRNZXRhZGF0YSwoY1tILkouRmNdPSEwLGMpLGI/e306KGRbSC5KLkRjXT1YLlYuS2EsZCkpLG5vR3RtRXZlbnQ6ITB9LGY9c0MoYS50YXJnZXQuZGVzdGluYXRpb25JZCwic3RydWN0dXJlZF9kYXRhIixhLk0uRWEpO21EKGYsYS5NLmV2ZW50SWQsZSl9fTsKdmFyIGRTPWZ1bmN0aW9uKGEpe3JldHVybiFhfHxjUy50ZXN0KGEpfHxEby5oYXNPd25Qcm9wZXJ0eShhKX0sY1M9L14oX3xnYV98Z29vZ2xlX3xndGFnXC58ZmlyZWJhc2VfKS4qJC8sZVM9ZnVuY3Rpb24oYSl7dGhpcy55YT1hO3RoaXMuSD10aGlzLnpiPXRoaXMuY2xpZW50SWQ9dm9pZCAwO3RoaXMuamE9dGhpcy5SPSExO3RoaXMuTGE9MDt0aGlzLk49ITE7dGhpcy5aPXtUajohMX07dGhpcy5mYT1uZXcgSVE7dGhpcy5LPW5ldyBIUH07az1lUy5wcm90b3R5cGU7ay5acz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcyxlPWJDKHRoaXMueWEpO2lmKGUpaWYoYy5ldmVudE1ldGFkYXRhW0guSi5hZV0mJmEuY2hhckF0KDApPT09Il8iKWMub25GYWlsdXJlKCk7ZWxzZXthIT09Ri5ELndhJiZhIT09Ri5ELkpiJiZkUyhhKSYmUCg1OCk7dmFyIGY9bmV3IGFJKGUsYSxjKTtWKGYsSC5KLkViLGIpO3ZhciBnPVtGLkQucmFdLGg9YmsoWksoZikpO1YoZixILkouZGosaCk7aWYoZEkoZixGLkQuVWYsCk8oZi5NLEYuRC5VZikpfHxoKWcucHVzaChGLkQua2EpLGcucHVzaChGLkQubWEpO0ZNLmZhKGZ1bmN0aW9uKCl7YnAoZnVuY3Rpb24oKXtkLmJ0KGYpfSxnKX0pfWVsc2UgYy5vbkZhaWx1cmUoKX07ay5idD1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3RyeXtITShhKTtpZihhLmlzQWJvcnRlZCl7dGIoKTtyZXR1cm59Sk0oYSk7RFIoYSk7dVIoYSk7RVIoYSk7RlIoYSk7SU0oYSk7dmFyIGM9e307ZVEoYSxjKTtpZihhLmlzQWJvcnRlZCl7YS5NLm9uRmFpbHVyZSgpO3RiKCk7cmV0dXJufXRoaXMuSD1hO3ZhciBkPWMudXI7Yy5Icj09PTAmJklQKEouVS5ubCk7ZD09PTAmJklQKEouVS5Mayk7Wk0oYSk7VihhLEguSi50Zyxjby5pYS54ZCk7VlIoYSk7SFIoYSk7dGhpcy5McShhKTt0aGlzLksuS3QoYSk7VShhLEYuRC56aSxhbCg4LE5GKSk7eFIoYSk7cE4oYSk7WlIoYSk7TVEoYSk7dGhpcy5BbyhhUyhhKSk7YlMoYSk7dmFyIGU9YS5ldmVudE5hbWU9PT1GLkQud2E7ZSYmKHRoaXMuTj0KITApO0lSKGEpO2UmJiFhLmlzQWJvcnRlZCYmdGhpcy5MYSsrPjAmJklQKEouVS5obik7VUwoYSk7alIoYSx0aGlzLmNsaWVudElkLHRoaXMuemIsdGhpcy5LLCF0aGlzLmphKTtuUihhKTtsUihhKTtPUihhKTtYTChhKTtHUihhLHRoaXMuWik7eVIoYSk7dlIoYSk7d1IoYSk7WVIoYSk7YVEoYSk7Z1EoYSk7d00oYSk7aFIoYSk7WVEoYSk7Z1IoYSk7ZlIoYSk7ZVIoYSk7ZFIoYSk7Y1IoYSk7YVIoYSk7JFEoYSk7V1EoYSk7VVEoYSk7VFEoYSk7U1EoYSk7YlEoYSk7Y1EoYSk7TyhhLk0sRi5ELnhoKSYmIWJrKFpLKGEpKXx8R00oYSk7VVIoYSk7V1IoYSk7aU4oYSk7VkwoYSk7U0woYSk7bE4oYSk7aE4oYSk7WE0oYSwhMSk7c1IoYSk7UlIoYSk7JFIoYSk7Tk0oYSk7clIoYSk7cFIoYSk7YlIoYSk7WlEoYSk7UlEoYSk7cVIoYSk7IXRoaXMuTiYmUShhLEguSi5QYykmJklQKEouVS5zbCk7SlAoYSk7aWYoTSg1NzUpKXtpZihhLmlzQWJvcnRlZCl7aWYoIVEoYSxILkouU28pKWEuTS5vbkZhaWx1cmUoKTsKdGIoKTtyZXR1cm59aWYoUShhLEguSi5KYSkpe2EuTS5vbkZhaWx1cmUoKTt0YigpO3JldHVybn19ZWxzZSBpZihRKGEsSC5KLkphKXx8YS5pc0Fib3J0ZWQpe2EuTS5vbkZhaWx1cmUoKTt0YigpO3JldHVybn10aGlzLkFvKGlSKGEsdGhpcy5jbGllbnRJZCkpO3RoaXMuamE9ITA7dGhpcy5IdChhKTtKUihhKTtWUShmdW5jdGlvbihmKXtiLk1uKGYpfSxhKTt0aGlzLksucWsoKTtMUihhKTtnTihhKTtXTChhKTtZTShhKTtpZihhLmlzQWJvcnRlZCl7YS5NLm9uRmFpbHVyZSgpO3RiKCk7cmV0dXJufXRoaXMuTW4oYSk7YS5NLm9uU3VjY2VzcygpfWNhdGNoKGYpe2EuTS5vbkZhaWx1cmUoKX10YigpfTtrLk1uPWZ1bmN0aW9uKGEpe3RoaXMuZmEuYWRkKGEpfTtrLkFvPWZ1bmN0aW9uKGEpe3ZhciBiPWEuY2xpZW50SWQsYz1hLnpiO2ImJmMmJih0aGlzLmNsaWVudElkPWIsdGhpcy56Yj1jKX07ay5mbHVzaD1mdW5jdGlvbigpe3RoaXMuZmEuZmx1c2goKX07ay5IdD1mdW5jdGlvbihhKXt2YXIgYj0KdGhpcztpZighdGhpcy5SKXt2YXIgYz1YbyhGLkQubWEpLGQ9WG8oRi5ELnJhKTskbyhbRi5ELm1hLEYuRC5yYSxGLkQua2FdLGZ1bmN0aW9uKGUpe3ZhciBmO2Y9KGU9PT12b2lkIDA/e306ZSkuY29uc2VudEV2ZW50SWQ7dmFyIGc9WG8oRi5ELm1hKSxoPVhvKEYuRC5yYSksbD0hMSxuPXt9LHA9e307aWYoZCE9PWgmJmIuSCYmYi56YiYmYi5jbGllbnRJZCl7dmFyIHE9Yi5jbGllbnRJZCxyO3ZhciB0PUxQKGIuemIpO3I9dD90Lmg6dm9pZCAwO2lmKGgpe3ZhciB1PUZQKGIuSCk7aWYodSl7Yi5jbGllbnRJZD11O3ZhciB2PVNQKGIuSCk7diYmKGIuemI9UFAodixiLnpiLGIuSCkpfWVsc2UgRFAoYi5jbGllbnRJZCxiLkgpLEFQKGIuY2xpZW50SWQsITApO1JQKGIuemIsYi5IKTtsPSEwO25bRi5ELk5sXT1xO3ImJihuW0YuRC5icV09cil9ZWxzZSBiLnpiPXZvaWQgMCxiLmNsaWVudElkPXZvaWQgMCxBLmdhR2xvYmFsPXt9fWcmJiFjJiYobD0hMCxwW0guSi5HaF09ITAsbltGLkQueGldPQpMb1tGLkQubWFdKTtpZihsKXt2YXIgeD1zQyhiLnlhLEYuRC55ZixuKTttRCh4LGYhPW51bGw/ZjphLk0uZXZlbnRJZCx7ZXZlbnRNZXRhZGF0YTpwfSl9ZD1oO2M9ZztiLlouVGo9ITB9KTt0aGlzLlI9ITB9fTtrLkxxPWZ1bmN0aW9uKGEpe2EuZXZlbnROYW1lIT09Ri5ELkpiJiZ0aGlzLksuS3EoYSl9O3ZhciBnUz1mdW5jdGlvbihhKXtpZighZlMoYSkpe3ZhciBiPSExLGM9ZnVuY3Rpb24oKXshYiYmZlMoYSkmJihiPSEwLGFkKEIsInZpc2liaWxpdHljaGFuZ2UiLGMpLGFkKEIsInByZXJlbmRlcmluZ2NoYW5nZSIsYyksUCg1NSkpfTskYyhCLCJ2aXNpYmlsaXR5Y2hhbmdlIixjKTskYyhCLCJwcmVyZW5kZXJpbmdjaGFuZ2UiLGMpO1AoNTQpfX0sZlM9ZnVuY3Rpb24oYSl7aWYoInByZXJlbmRlcmluZyJpbiBCP0IucHJlcmVuZGVyaW5nOkIudmlzaWJpbGl0eVN0YXRlPT09InByZXJlbmRlciIpcmV0dXJuITE7YSgpO3JldHVybiEwfTtmdW5jdGlvbiBoUyhhKXtnUyhmdW5jdGlvbigpe3ZhciBiPWJDKGEpO2lmKGIpe3ZhciBjPWlTKGIpLGQ9Y28uaWEueGQsZT1ZQygpLGY9YkMoYSwhMCk7ZiYmZS5ILnJlZ2lzdGVyKGYsYyxkLHZvaWQgMCl9fSk7fWZ1bmN0aW9uIGlTKGEpe3ZhciBiPWZ1bmN0aW9uKCl7fTt2YXIgYz1uZXcgZVMoYS5pZCksZD1hLnByZWZpeD09PSJNQyI7Yj1mdW5jdGlvbihlLGYsZyxoKXtkJiYoaC5ldmVudE1ldGFkYXRhW0guSi5iZV09ITApO2MuWnMoZixnLGgpfTtqUyhhLGMpO3JldHVybiBifQpmdW5jdGlvbiBqUyhhLGIpe3ZhciBjPWIuSztjLmh0KGZ1bmN0aW9uKCl7WmsoOSwhMCk7WUMoKS5mbHVzaCgpO2lmKGMuWWgoKT49MUUzJiZrZCgpKXt2YXIgZD17fSxlPXtldmVudElkOnJqKCksZXZlbnRNZXRhZGF0YTooZFtILkouS2tdPSEwLGQpLGRlZmVycmFibGU6ITB9O1pDKEYuRC55Zix7fSxhLmlkLGUpfWIuZmx1c2goKTtjLkNvKGZ1bmN0aW9uKCl7WmsoOSwhMSk7Yy5DbygpfSl9KTt9dmFyIGtTPUouVS5xbCxsUz1KLlUucmw7ZnVuY3Rpb24gbVMoYSxiKXt2YXIgYz10aygpO2MmJmMuaW5kZXhPZihiKT4tMSYmKGFbSC5KLkNjXT0hMCl9ZnVuY3Rpb24gb1MoYSxiLGMpe3ZhciBkPXRoaXM7fW9TLlA9ImludGVybmFsLmd0YWdDb25maWciO2Z1bmN0aW9uIHBTKGEsYixjLGQpe3ZhciBlPXRoaXM7fXBTLlA9ImludGVybmFsLmd0YWdEZXN0aW5hdGlvbkNvbmZpZyI7CmZ1bmN0aW9uIHJTKGEsYil7fQpyUy5wdWJsaWNOYW1lPSJndGFnU2V0IjtmdW5jdGlvbiBzUygpe3ZhciBhPXt9O2E9e05PX0lGUkFNSU5HOjAsU0FNRV9ET01BSU5fSUZSQU1JTkc6MSxDUk9TU19ET01BSU5fSUZSQU1JTkc6Mn07cmV0dXJuIGF9O2Z1bmN0aW9uIHRTKGEpe2lmKCFlaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgYj1UZChhLHRoaXMuVCwxKS5yYigpO25MKGIpO310Uy5QPSJpbnRlcm5hbC5pbml0aWFsaXplU2VydmljZVdvcmtlciI7ZnVuY3Rpb24gdVMoYSxiKXt9dVMucHVibGljTmFtZT0iaW5qZWN0SGlkZGVuSWZyYW1lIjtmdW5jdGlvbiB2UyhhLGIsYyxkLGUpe312Uy5QPSJpbnRlcm5hbC5pbmplY3RIdG1sIjt2YXIgQVM9e2RsOjEsaWQ6MX07CmZ1bmN0aW9uIEJTKGEsYixjLGQpe31CUy5wdWJsaWNOYW1lPSJpbmplY3RTY3JpcHQiO2Z1bmN0aW9uIENTKCl7dmFyIGE9dm0sYj0hMTtiPSEhYS5IWyI1Il07cmV0dXJuIGJ9Q1MuUD0iaW50ZXJuYWwuaXNBdXRvUGlpRWxpZ2libGUiO2Z1bmN0aW9uIERTKGEpe3ZhciBiPSEwO2lmKCFsaChhKSYmIWpoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJBcnJheSJdLGFyZ3VtZW50cyk7dmFyIGM9VGQoYSk7aWYoemIoYykpTCh0aGlzLCJhY2Nlc3NfY29uc2VudCIsYywicmVhZCIpO2Vsc2UgZm9yKHZhciBkPW0oYyksZT1kLm5leHQoKTshZS5kb25lO2U9ZC5uZXh0KCkpTCh0aGlzLCJhY2Nlc3NfY29uc2VudCIsZS52YWx1ZSwicmVhZCIpO2I9WG8oYyk7cmV0dXJuIGJ9RFMucHVibGljTmFtZT0iaXNDb25zZW50R3JhbnRlZCI7ZnVuY3Rpb24gRVMoYSl7dmFyIGI9ITE7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBjPVRkKGEsdGhpcy5ULDEpLnJiKCk7Yj0hIU8oYy5NLEYuRC5FbCk7cmV0dXJuIGJ9RVMuUD0iaW50ZXJuYWwuaXNEZWJ1Z01vZGUiO2Z1bmN0aW9uIEZTKGEpe3ZhciBiPSExO3JldHVybiBifUZTLlA9ImludGVybmFsLmlzRGVzdGluYXRpb25Jbml0aWFsaXplZCI7ZnVuY3Rpb24gR1MoKXtyZXR1cm4gQm0oKX1HUy5QPSJpbnRlcm5hbC5pc0RtYVJlZ2lvbiI7ZnVuY3Rpb24gSFMoKXtyZXR1cm4gVUIoKX1IUy5QPSJpbnRlcm5hbC5pc0RvbVJlYWR5IjtmdW5jdGlvbiBJUyhhKXt2YXIgYj0hMTtyZXR1cm4gYn1JUy5QPSJpbnRlcm5hbC5pc0VudGl0eUluZnJhc3RydWN0dXJlIjtmdW5jdGlvbiBKUyhhKXt2YXIgYj0hMTtpZighcWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIm51bWJlciJdLFthXSk7Yj1NKGEpO3JldHVybiBifUpTLlA9ImludGVybmFsLmlzRmVhdHVyZUVuYWJsZWQiO2Z1bmN0aW9uIEtTKCl7dmFyIGE9ITE7YT1JZig0Nyk7cmV0dXJuIGF9S1MuUD0iaW50ZXJuYWwuaXNGcGZlIjtmdW5jdGlvbiBMUygpe3ZhciBhPSExO2E9T2MoKXx8UWMoKTtyZXR1cm4gYX1MUy5QPSJpbnRlcm5hbC5pc0djcEJyb3dzZXIiO2Z1bmN0aW9uIE1TKCl7dmFyIGE9ITE7cmV0dXJuIGF9TVMuUD0iaW50ZXJuYWwuaXNMYW5kaW5nUGFnZSI7ZnVuY3Rpb24gTlMoKXt2YXIgYT0hMTtyZXR1cm4gYX1OUy5QPSJpbnRlcm5hbC5pc09ndCI7ZnVuY3Rpb24gT1MoKXt2YXIgYTthPUEuX2d0bXBjbT09PSEwPyEwOnJMKCk7cmV0dXJuIGF9T1MuUD0iaW50ZXJuYWwuaXNTYWZhcmlQY21FbGlnaWJsZUJyb3dzZXIiO2Z1bmN0aW9uIFBTKCl7dmFyIGE9UWgoZnVuY3Rpb24oYil7WEYodGhpcykubG9nKCJlcnJvciIsYil9KTthLnB1YmxpY05hbWU9IkpTT04iO3JldHVybiBhfTtmdW5jdGlvbiBRUyhhKXt2YXIgYj12b2lkIDA7cmV0dXJuIFVkKGIpfVFTLlA9ImludGVybmFsLmxlZ2FjeVBhcnNlVXJsIjtmdW5jdGlvbiBSUygpe3JldHVybiExfQp2YXIgU1M9e2dldEl0ZW06ZnVuY3Rpb24oYSl7dmFyIGI9bnVsbDtyZXR1cm4gYn0sc2V0SXRlbTpmdW5jdGlvbihhLGIpe3JldHVybiExfSxyZW1vdmVJdGVtOmZ1bmN0aW9uKGEpe319O2Z1bmN0aW9uIFRTKCl7fVRTLnB1YmxpY05hbWU9ImxvZ1RvQ29uc29sZSI7ZnVuY3Rpb24gVVMoYSxiKXtpZighbGgoYSl8fCFlaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgYz1hLGQ9VGQoYix0aGlzLlQpLGU9WUMoKSxmPWJDKGMsITApO2YmJlRDKGUuSCxmLGQpO31VUy5QPSJpbnRlcm5hbC5tZXJnZVJlbW90ZUNvbmZpZyI7ZnVuY3Rpb24gVlMoYSxiLGMpe2M9Yz09PXZvaWQgMD8hMDpjO3ZhciBkPVtdO3JldHVybiBVZChkKX1WUy5QPSJpbnRlcm5hbC5wYXJzZUNvb2tpZVZhbHVlc0Zyb21TdHJpbmciO2Z1bmN0aW9uIFdTKGEpe3ZhciBiPXZvaWQgMDtpZih0eXBlb2YgYSE9PSJzdHJpbmciKXJldHVybjthJiZTYihhLCIvLyIpJiYoYT1CLmxvY2F0aW9uLnByb3RvY29sK2EpO2lmKHR5cGVvZiBVUkw9PT0iZnVuY3Rpb24iKXt2YXIgYzthOnt2YXIgZDt0cnl7ZD1uZXcgVVJMKGEpfWNhdGNoKHgpe2M9dm9pZCAwO2JyZWFrIGF9Zm9yKHZhciBlPXt9LGY9QXJyYXkuZnJvbShkLnNlYXJjaFBhcmFtcyksZz0wO2c8Zi5sZW5ndGg7ZysrKXt2YXIgaD1mW2ddWzBdLGw9ZltnXVsxXTtlLmhhc093blByb3BlcnR5KGgpP3R5cGVvZiBlW2hdPT09InN0cmluZyI/ZVtoXT1bZVtoXSxsXTplW2hdLnB1c2gobCk6ZVtoXT1sfWM9e2hyZWY6ZC5ocmVmLG9yaWdpbjpkLm9yaWdpbixwcm90b2NvbDpkLnByb3RvY29sLHVzZXJuYW1lOmQudXNlcm5hbWUscGFzc3dvcmQ6ZC5wYXNzd29yZCxob3N0OmQuaG9zdCxob3N0bmFtZTpkLmhvc3RuYW1lLApwb3J0OmQucG9ydCxwYXRobmFtZTpkLnBhdGhuYW1lLHNlYXJjaDpkLnNlYXJjaCxzZWFyY2hQYXJhbXM6ZSxoYXNoOmQuaGFzaH19cmV0dXJuIFVkKGMpfXZhciBuO3RyeXtuPVJqKGEpfWNhdGNoKHgpe3JldHVybn1pZighbi5wcm90b2NvbHx8IW4uaG9zdClyZXR1cm47dmFyIHA9e307aWYobi5zZWFyY2gpZm9yKHZhciBxPW4uc2VhcmNoLnJlcGxhY2UoIj8iLCIiKS5zcGxpdCgiJiIpLHI9MDtyPHEubGVuZ3RoO3IrKyl7dmFyIHQ9cVtyXS5zcGxpdCgiPSIpLHU9dFswXSx2PUtqKHQuc3BsaWNlKDEpLmpvaW4oIj0iKSl8fCIiO3Y9di5yZXBsYWNlKC9cKy9nLCIgIik7cC5oYXNPd25Qcm9wZXJ0eSh1KT90eXBlb2YgcFt1XT09PSJzdHJpbmciP3BbdV09W3BbdV0sdl06cFt1XS5wdXNoKHYpOnBbdV09dn1uLnNlYXJjaFBhcmFtcz1wO24ub3JpZ2luPW4ucHJvdG9jb2wrIi8vIituLmhvc3Q7bi51c2VybmFtZT0iIjtuLnBhc3N3b3JkPSIiO2I9VWQobik7CnJldHVybiBifVdTLnB1YmxpY05hbWU9InBhcnNlVXJsIjtmdW5jdGlvbiBYUyhhKXtpZighZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGI9VGQoYSx0aGlzLlQsMSkucmIoKSxjPXt9O0VkKGIuTS5FYSxjKTtiSShiLGMpO3ZhciBkPXt9O2NJKGIsZCk7ZFtILkouQm5dPSEwO3ZhciBlPXtldmVudE1ldGFkYXRhOmR9LGY9Yi5NLmV2ZW50SWQsZz1zQyhiLnRhcmdldC5kZXN0aW5hdGlvbklkLGIuZXZlbnROYW1lLGMpO21EKGcsZixlKTt9WFMuUD0iaW50ZXJuYWwucHJvY2Vzc0FzTmV3RXZlbnQiO2Z1bmN0aW9uIFlTKGEsYixjKXt2YXIgZDtyZXR1cm4gZH1ZUy5QPSJpbnRlcm5hbC5wdXNoVG9EYXRhTGF5ZXIiO2Z1bmN0aW9uIFpTKGEpe3ZhciBiPU9hLmFwcGx5KDEsYXJndW1lbnRzKSxjPSExO2lmKCFsaChhKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIl0sYXJndW1lbnRzKTtmb3IodmFyIGQ9W3RoaXMsYV0sZT1tKGIpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPWUubmV4dCgpKWQucHVzaChUZChmLnZhbHVlLHRoaXMuVCwxKSk7dHJ5e0wuYXBwbHkobnVsbCxkKSxjPSEwfWNhdGNoKGcpe3JldHVybiExfXJldHVybiBjfVpTLnB1YmxpY05hbWU9InF1ZXJ5UGVybWlzc2lvbiI7ZnVuY3Rpb24gJFMoYSl7dmFyIGI9dGhpcztpZighaGgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbImZ1bmN0aW9uIl0sYXJndW1lbnRzKTtpbyhsbyhjby5pYS5jYiksZnVuY3Rpb24oKXthLmludm9rZShiLlQpfSk7fSRTLlA9ImludGVybmFsLnF1ZXVlQWRzVHJhbnNtaXNzaW9uIjtmdW5jdGlvbiBhVChhKXt2YXIgYj12b2lkIDA7cmV0dXJuIGJ9YVQucHVibGljTmFtZT0icmVhZEFuYWx5dGljc1N0b3JhZ2UiO2Z1bmN0aW9uIGJUKCl7dmFyIGE9IiI7cmV0dXJuIGF9YlQucHVibGljTmFtZT0icmVhZENoYXJhY3RlclNldCI7ZnVuY3Rpb24gY1QoKXtyZXR1cm4gRSgxOSl9Y1QuUD0iaW50ZXJuYWwucmVhZERhdGFMYXllck5hbWUiO2Z1bmN0aW9uIGRUKCl7dmFyIGE9IiI7TCh0aGlzLCJyZWFkX3RpdGxlIiksYT1CLnRpdGxlfHwiIjtyZXR1cm4gYX1kVC5wdWJsaWNOYW1lPSJyZWFkVGl0bGUiO2Z1bmN0aW9uIGVUKGEsYil7dmFyIGM9dGhpcztpZighbGgoYSl8fCFoaChiKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiZnVuY3Rpb24iXSxhcmd1bWVudHMpO0xNKGEsZnVuY3Rpb24oZCl7Yi5pbnZva2UoYy5ULFVkKGQsYy5ULDEpKX0pO31lVC5QPSJpbnRlcm5hbC5yZWdpc3RlckNjZENhbGxiYWNrIjtmdW5jdGlvbiBmVChhLGIpe2lmKCFsaChhKXx8IWVoKGIpJiYhZ2goYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbInN0cmluZyIsIk9iamVjdHx1bmRlZmluZWQiXSxhcmd1bWVudHMpO2lmKEJoKFhGKHRoaXMpLlBiKCkpKXJldHVybiExO3ZhciBjLGQsZT1iQyhhLCEwKTtpZighZSlyZXR1cm4hMTtzd2l0Y2goZS5wcmVmaXgpe2Nhc2UgIkFXIjpjPXROO2Q9Y28uaWEuY2I7YnJlYWs7Y2FzZSAiREMiOmM9SU47ZD1jby5pYS5jYjticmVhaztjYXNlICJHRiI6Yz1OTjtkPWNvLmlhLmdkO2JyZWFrO2Nhc2UgIkhBIjpjPVBOO2Q9Y28uaWEuZ2Q7YnJlYWs7Y2FzZSAiVUEiOmM9Zk87ZD1jby5pYS5nZDticmVhaztjYXNlICJNQyI6Yz1pUyhlKTtkPWNvLmlhLnhkO2JyZWFrO2Nhc2UgIkciOnJldHVybiBoUyhhKSwhMDtkZWZhdWx0OnJldHVybiExfXZhciBmPWEsCmc9YyxoPWQsbD1UZChiLHRoaXMuVCwxKSxuPVlDKCkscD1iQyhmLCEwKTtwJiZuLkgucmVnaXN0ZXIocCxnLGgsbCk7cmV0dXJuITB9ZlQuUD0iaW50ZXJuYWwucmVnaXN0ZXJEZXN0aW5hdGlvbiI7dmFyIGdUPVsiZXZlbnQiXTtmdW5jdGlvbiBoVChhLGIsYyl7fWhULlA9ImludGVybmFsLnJlZ2lzdGVyR3RhZ0NvbW1hbmRMaXN0ZW5lciI7ZnVuY3Rpb24gaVQoYSxiKXt2YXIgYz0hMTtyZXR1cm4gY31pVC5QPSJpbnRlcm5hbC5yZW1vdmVEYXRhTGF5ZXJFdmVudExpc3RlbmVyIjtmdW5jdGlvbiBqVChhLGIpe30KalQuUD0iaW50ZXJuYWwucmVtb3ZlRm9ybURhdGEiO2Z1bmN0aW9uIGtUKCl7fWtULnB1YmxpY05hbWU9InJlc2V0RGF0YUxheWVyIjtmdW5jdGlvbiBsVChhLGIsYyl7dmFyIGQ9dm9pZCAwO2lmKCFsaChhKXx8IWpoKGIpfHwhbGgoYykmJiFnaChjKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiQXJyYXkiLCJzdHJpbmd8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgZT1UZChiKTtkPVNqKGEsZSxjKTtyZXR1cm4gZH1sVC5QPSJpbnRlcm5hbC5zY3J1YlVybFBhcmFtcyI7ZnVuY3Rpb24gbVQoYSl7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBiPVRkKGEsdGhpcy5ULDEpLnJiKCk7SXooYik7fW1ULlA9ImludGVybmFsLnNlbmRBZHNIaXQiO2Z1bmN0aW9uIG5UKGEsYixjLGQpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mnx8IWZoKGQpfHwhZmgoYykpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbImFueSIsImFueSIsIk9iamVjdHx1bmRlZmluZWQiLCJPYmplY3R8dW5kZWZpbmVkIl0sYXJndW1lbnRzKTt2YXIgZT1jP1RkKGMsdGhpcy5ULDEpOnt9LGY9VGQoYSksZz1BcnJheS5pc0FycmF5KGYpP2Y6W2ZdO2I9U3RyaW5nKGIpO3ZhciBoPWQ/VGQoZCk6e30sbD1YRih0aGlzKTtoLm9yaWdpbmF0aW5nRW50aXR5PXRHKGwpO2wucHJpb3JpdHlRdWV1ZSYmKGgucHJpb3JpdHlRdWV1ZT1sLnByaW9yaXR5UXVldWUpO2Zvcih2YXIgbj0wO248Zy5sZW5ndGg7bisrKXt2YXIgcD1nW25dO2lmKHR5cGVvZiBwPT09InN0cmluZyIpe3ZhciBxPXt9O0VkKGUscSk7dmFyIHI9e307RWQoaCxyKTt2YXIgdD1zQyhwLGIscSk7bUQodCwKaC5ldmVudElkfHxsLmV2ZW50SWQscil9fX1uVC5QPSJpbnRlcm5hbC5zZW5kR3RhZ0V2ZW50IjtmdW5jdGlvbiBvVChhLGIsYyl7fW9ULnB1YmxpY05hbWU9InNlbmRQaXhlbCI7ZnVuY3Rpb24gcFQoYSxiKXt9cFQuUD0iaW50ZXJuYWwuc2V0QW5jaG9ySHJlZiI7ZnVuY3Rpb24gcVQoYSl7fXFULlA9ImludGVybmFsLnNldENvbnRhaW5lckNvbnNlbnREZWZhdWx0cyI7ZnVuY3Rpb24gclQoYSxiLGMsZCl7dmFyIGU9dGhpcztkPWQ9PT12b2lkIDA/ITA6ZDt2YXIgZj0hMTsKcmV0dXJuIGZ9clQucHVibGljTmFtZT0ic2V0Q29va2llIjtmdW5jdGlvbiBzVChhKXt9c1QuUD0iaW50ZXJuYWwuc2V0Q29yZVBsYXRmb3JtU2VydmljZXMiO2Z1bmN0aW9uIHRUKGEsYil7fXRULlA9ImludGVybmFsLnNldERhdGFMYXllclZhbHVlIjtmdW5jdGlvbiB1VChhKXt9dVQucHVibGljTmFtZT0ic2V0RGVmYXVsdENvbnNlbnRTdGF0ZSI7ZnVuY3Rpb24gdlQoYSxiKXt9dlQuUD0iaW50ZXJuYWwuc2V0RGVsZWdhdGVkQ29uc2VudFR5cGUiO2Z1bmN0aW9uIHdUKGEsYil7fXdULlA9ImludGVybmFsLnNldEZvcm1BY3Rpb24iO2Z1bmN0aW9uIHhUKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6YztpZighbGgoYSl8fCFvaChjKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwiYW55IiwiYm9vbGVhbnx1bmRlZmluZWQiXSxhcmd1bWVudHMpO2lmKCFrbShhKSl0aHJvdyBFcnJvcigic2V0SW5Dcm9zc0NvbnRhaW5lckRhdGEgcmVxdWlyZXMgdmFsaWQgQ3Jvc3NDb250YWluZXJTY2hlbWEga2V5LiIpOyhjfHxubShhKT09PXZvaWQgMCkmJm1tKGEsVGQoYix0aGlzLlQsMSkpO314VC5QPSJpbnRlcm5hbC5zZXRJbkNyb3NzQ29udGFpbmVyRGF0YSI7ZnVuY3Rpb24geVQoYSxiLGMpe3JldHVybiExfXlULnB1YmxpY05hbWU9InNldEluV2luZG93IjtmdW5jdGlvbiB6VChhLGIsYyl7aWYoIWxoKGEpfHwhbGgoYil8fGFyZ3VtZW50cy5sZW5ndGghPT0zKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJzdHJpbmciLCJzdHJpbmciLCJhbnkiXSxhcmd1bWVudHMpO3ZhciBkPSRIKGEpfHx7fTtkW2JdPVRkKGMsdGhpcy5UKTt2YXIgZT1hLGY9Wkg7Zi5LfHxZSChmKTtmLnNldHRpbmdzW2VdPWQ7fXpULlA9ImludGVybmFsLnNldFByb2R1Y3RTZXR0aW5nc1BhcmFtZXRlciI7ZnVuY3Rpb24gQVQoYSxiLGMpe2lmKCFsaChhKXx8IWxoKGIpfHxhcmd1bWVudHMubGVuZ3RoIT09Myl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsic3RyaW5nIiwic3RyaW5nIiwiYW55Il0sYXJndW1lbnRzKTtmb3IodmFyIGQ9Yi5zcGxpdCgiLiIpLGU9ZUQoYSksZj0wO2Y8ZC5sZW5ndGgtMTtmKyspe2lmKGVbZFtmXV09PT12b2lkIDApZVtkW2ZdXT17fTtlbHNlIGlmKCFDZChlW2RbZl1dKSl0aHJvdyBFcnJvcigic2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIGZhaWxlZCwgcGF0aCBjb250YWlucyBhIG5vbi1vYmplY3QgdHlwZTogIitkW2ZdKTtlPWVbZFtmXV19ZVtkW2ZdXT1UZChjLHRoaXMuVCwxKTt9QVQuUD0iaW50ZXJuYWwuc2V0UmVtb3RlQ29uZmlnUGFyYW1ldGVyIjtmdW5jdGlvbiBCVChhLGIpe30KQlQuUD0iaW50ZXJuYWwuc2V0VHJhbnNtaXNzaW9uTW9kZSI7ZnVuY3Rpb24gQ1QoYSxiLGMsZCl7dmFyIGU9dGhpczt9Q1QucHVibGljTmFtZT0ic2hhMjU2IjtmdW5jdGlvbiBEVChhLGIsYyl7fQpEVC5QPSJpbnRlcm5hbC5zb3J0UmVtb3RlQ29uZmlnUGFyYW1ldGVycyI7ZnVuY3Rpb24gRVQoYSl7aWYoIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBiPVRkKGEsdGhpcy5ULDEpLnJiKCk7Y3goYik7fUVULlA9ImludGVybmFsLnN0b3JlQWRzQnJhaWRMYWJlbHMiO2Z1bmN0aW9uIEZUKGEsYil7dmFyIGM9dm9pZCAwO3JldHVybiBjfUZULlA9ImludGVybmFsLnN1YnNjcmliZVRvQ3Jvc3NDb250YWluZXJEYXRhIjtmdW5jdGlvbiBHVChhKXtpZighZWgoYSkpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9iamVjdCJdLGFyZ3VtZW50cyk7dmFyIGI9VGQoYSx0aGlzLlQsMSkucmIoKTtwTChiKTt9R1QuUD0iaW50ZXJuYWwudGFza1NlbmRBZHNIaXRzIjt2YXIgSFQ9e2dldEl0ZW06ZnVuY3Rpb24oYSl7dmFyIGI9bnVsbDtMKHRoaXMsImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIik7dmFyIGM9WEYodGhpcykuUGIoKSxkPWFsKDcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2RbY10mJihiPWRbY10uaGFzT3duUHJvcGVydHkoImd0bS4iK2EpP2RbY11bImd0bS4iK2FdOm51bGwpO3JldHVybiBifSxzZXRJdGVtOmZ1bmN0aW9uKGEsYil7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBjPVhGKHRoaXMpLlBiKCksZD1hbCg3LGZ1bmN0aW9uKCl7cmV0dXJue319KTtkW2NdPWRbY118fHt9O2RbY11bImd0bS4iK2FdPWI7fSwKcmVtb3ZlSXRlbTpmdW5jdGlvbihhKXtMKHRoaXMsImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIik7dmFyIGI9WEYodGhpcykuUGIoKSxjPWFsKDcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO2lmKCFjW2JdfHwhY1tiXS5oYXNPd25Qcm9wZXJ0eSgiZ3RtLiIrYSkpcmV0dXJuO2RlbGV0ZSBjW2JdWyJndG0uIithXTt9LGNsZWFyOmZ1bmN0aW9uKCl7TCh0aGlzLCJhY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZSIpO3ZhciBhPVhGKHRoaXMpLlBiKCk7ZGVsZXRlIGFsKDcsZnVuY3Rpb24oKXtyZXR1cm57fX0pW2FdO30sCnB1YmxpY05hbWU6InRlbXBsYXRlU3RvcmFnZSJ9O2Z1bmN0aW9uIElUKGEsYil7dmFyIGM9ITE7aWYoIWtoKGEpfHwhbGgoYikpdGhyb3cgSyh0aGlzLmdldE5hbWUoKSxbIk9wYXF1ZVZhbHVlIiwic3RyaW5nIl0sYXJndW1lbnRzKTt2YXIgZD1hLmdldFZhbHVlKCk7aWYoIShkIGluc3RhbmNlb2YgUmVnRXhwKSlyZXR1cm4hMTtjPWQudGVzdChiKTtyZXR1cm4gY31JVC5QPSJpbnRlcm5hbC50ZXN0UmVnZXgiO2Z1bmN0aW9uIEpUKGEpe3ZhciBiO3JldHVybiBifTtmdW5jdGlvbiBLVChhLGIpe31LVC5QPSJpbnRlcm5hbC50cmFja1VzYWdlIjtmdW5jdGlvbiBMVChhLGIpe3ZhciBjO3JldHVybiBjfUxULlA9ImludGVybmFsLnVuc3Vic2NyaWJlRnJvbUNyb3NzQ29udGFpbmVyRGF0YSI7ZnVuY3Rpb24gTVQoYSl7fU1ULnB1YmxpY05hbWU9InVwZGF0ZUNvbnNlbnRTdGF0ZSI7ZnVuY3Rpb24gTlQoYSl7dmFyIGI9ITE7aWYoYSYmIWVoKGEpKXRocm93IEsodGhpcy5nZXROYW1lKCksWyJPYmplY3QiXSxhcmd1bWVudHMpO3ZhciBjPVRkKGEsdGhpcy5ULDEpO2MmJihiPWh3KGMpKTtyZXR1cm4gYn1OVC5QPSJpbnRlcm5hbC51c2VyRGF0YU5lZWRzRW5jcnlwdGlvbiI7dmFyIE9UPWZ1bmN0aW9uKCl7dGhpcy5IPW5ldyBhaX0sUVQ9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGI7dmFyIGM9UFQuSDtpZihjLmNvbnRhaW5zKGEpKWI9Yy5nZXQoYSx0aGlzKTtlbHNle3ZhciBkO2lmKGQ9Yy5ILmhhc093blByb3BlcnR5KGEpKXt2YXIgZT10aGlzLlQueGIoKTtpZihlKXt2YXIgZj0hMSxnPWUuUGIoKTtpZihnKXtCaChnKXx8KGY9ITApO31kPWZ9ZWxzZSBkPSEwfWlmKGQpe3ZhciBoPWMuSC5oYXNPd25Qcm9wZXJ0eShhKT9jLkhbYV06dm9pZCAwO2I9aH1lbHNlIHRocm93IEVycm9yKGErIiBpcyBub3QgYSB2YWxpZCBBUEkgbmFtZS4iKTt9cmV0dXJuIGJ9fSxQVDtmdW5jdGlvbiBSVChhLGIsYyl7UFR8fChQVD1uZXcgT1QpO1BULkguYWRkKGEsYixjKX1mdW5jdGlvbiBTVChhLGIpe1BUfHwoUFQ9bmV3IE9UKTt2YXIgYz1QVC5IO2lmKGMuSC5oYXNPd25Qcm9wZXJ0eShhKSl0aHJvdyBFcnJvcigiQXR0ZW1wdGluZyB0byBhZGQgYSBwcml2YXRlIGZ1bmN0aW9uIHdoaWNoIGFscmVhZHkgZXhpc3RzOiAiK2ErIi4iKTtpZihjLmNvbnRhaW5zKGEpKXRocm93IEVycm9yKCJBdHRlbXB0aW5nIHRvIGFkZCBhIHByaXZhdGUgZnVuY3Rpb24gd2l0aCBhbiBleGlzdGluZyBBUEkgbmFtZTogIithKyIuIik7Yy5IW2FdPXliKGIpP3RoKGEsYik6dWgoYSxiKX07ZnVuY3Rpb24gVFQoYSxiKXtmdW5jdGlvbiBjKGQpe2lmKCFlaChkKSl0aHJvdyBLKHRoaXMuZ2V0TmFtZSgpLFsiT2JqZWN0Il0sYXJndW1lbnRzKTt2YXIgZT1UZChkLHRoaXMuVCwxKS5yYigpO2EoZSl9Yy5QPSJpbnRlcm5hbC4iK2I7cmV0dXJuIGN9O2Z1bmN0aW9uIFVUKCl7dmFyIGE9ZnVuY3Rpb24oYyl7cmV0dXJuIHZvaWQgU1QoYy5QLGMpfSxiPWZ1bmN0aW9uKGMpe3JldHVybiB2b2lkIFJUKGMucHVibGljTmFtZSxjKX07YihSRik7YihZRik7YihSRyk7YihURyk7YihVRyk7YihkSCk7YihmSCk7YihoSSk7YihQUygpKTtiKGpJKTtiKE9PKTtiKFBPKTtiKGxQKTtiKG1QKTtiKG5QKTtiKHVQKTtiKHZQKTtiKHJTKTtiKHVTKTtiKEJTKTtiKERTKTtiKFRTKTtiKFdTKTtiKFpTKTtiKGFUKTtiKGJUKTtiKGRUKTtiKG9UKTtiKHJUKTtiKHVUKTtiKHlUKTtiKENUKTtiKEhUKTtiKE1UKTtSVCgiTWF0aCIsemgoKSk7UlQoIk9iamVjdCIsWmgpO1JUKCJUZXN0SGVscGVyIixjaSgpKTtSVCgiYXNzZXJ0QXBpIix3aCk7UlQoImFzc2VydFRoYXQiLHhoKTtSVCgiZGVjb2RlVXJpIixDaCk7UlQoImRlY29kZVVyaUNvbXBvbmVudCIsRGgpO1JUKCJlbmNvZGVVcmkiLEVoKTtSVCgiZW5jb2RlVXJpQ29tcG9uZW50IixGaCk7UlQoImZhaWwiLApMaCk7UlQoImdlbmVyYXRlUmFuZG9tIixOaCk7UlQoImdldFRpbWVzdGFtcCIsT2gpO1JUKCJnZXRUaW1lc3RhbXBNaWxsaXMiLE9oKTtSVCgiZ2V0VHlwZSIsUGgpO1JUKCJtYWtlSW50ZWdlciIsUmgpO1JUKCJtYWtlTnVtYmVyIixTaCk7UlQoIm1ha2VTdHJpbmciLFRoKTtSVCgibWFrZVRhYmxlTWFwIixVaCk7UlQoIm1vY2siLFhoKTtSVCgibW9ja09iamVjdCIsWWgpO1JUKCJmcm9tQmFzZTY0IixITywhKCJhdG9iImluIEEpKTtSVCgibG9jYWxTdG9yYWdlIixTUywhUlMoKSk7UlQoInRvQmFzZTY0IixKVCwhKCJidG9hImluIEEpKTthKFFGKTthKFVGKTthKG5HKTthKHNHKTthKElHKTthKFBHKTthKFNHKTthKFZHKTthKFdHKTthKFpHKTthKCRHKTthKGFIKTthKGJIKTthKGNIKTthKGVIKTthKGdIKTthKGdJKTthKGlJKTthKGtJKTthKGxJKTthKG1JKTthKG5JKTthKG9JKTthKGZKKTthKG1KKTthKHRKKTthKHVKKTthKEFKKTthKEZKKTthKEtKKTthKFJKKTthKFdKKTthKGdLKTsKYShpSyk7YSh2Syk7YSh3Syk7YSh4Syk7YShGTyk7YShHTyk7YShJTyk7YShKTyk7YShLTyk7YShMTyk7YShNTyk7YShOTyk7YShRTyk7YShSTyk7YShTTyk7YShUTyk7YShVTyk7YShWTyk7YShXTyk7YShYTyk7YShZTyk7YShaTyk7YSgkTyk7YShhUCk7YShiUCk7YShjUCk7YShkUCk7YShlUCk7YShmUCk7YShnUCk7YShoUCk7YShpUCk7YShqUCk7YShrUCk7YShvUCk7YShwUCk7YShxUCk7YShyUCk7YShzUCk7YSh0UCk7YSh3UCk7YShvUyk7YShwUyk7YSh0Uyk7YSh2Uyk7YShDUyk7YShFUyk7YShGUyk7YShHUyk7YShIUyk7YShJUyk7YShKUyk7YShLUyk7YShMUyk7YShNUyk7YShOUyk7YShPUyk7YShRUyk7YShHRyk7YShVUyk7YShWUyk7YShYUyk7YShZUyk7YSgkUyk7YShjVCk7YShlVCk7YShmVCk7YShoVCk7YShpVCk7YShqVCk7YShsVCk7YShtVCk7YShuVCk7YShwVCk7YShxVCk7YShzVCk7YSh0VCk7YSh2VCk7YSh3VCk7YSh4VCk7YSh6VCk7YShBVCk7YShCVCk7YShEVCk7CmEoRVQpO2EoRlQpO2EoR1QpO2EoSVQpO2EoS1QpO2EoTFQpO2EoTlQpO1NUKCJpbnRlcm5hbC5JZnJhbWluZ1N0YXRlU2NoZW1hIixzUygpKTtTVCgiaW50ZXJuYWwucXVpY2tIYXNoIixNaCk7YShUVChNRiwidGFza1NldEFkc1RyYW5zbWlzc2lvblR5cGUiKSksYShUVChQRiwidGFza1NldFVuaXZlcnNhbFBhcmFtcyIpKTthKFRUKExGLCJ0YXNrQWRkQWRzQ2xpY2tJZHMiKSk7UFR8fChQVD1uZXcgT1QpO3JldHVybiBRVCgpfTt2YXIgSkY7ZnVuY3Rpb24gVlQoKXtKRi5zZChmdW5jdGlvbihhLGIsYyl7bGooKTt2YXIgZD1qajtkLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRT1kLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRXx8MDtkLkguU0FOREJPWEVEX0pTX1NFTUFQSE9SRSsrO3RyeXtyZXR1cm4gYS5hcHBseShiLGMpfWZpbmFsbHl7bGooKSxqai5ILlNBTkRCT1hFRF9KU19TRU1BUEhPUkUtLX19KX1mdW5jdGlvbiBXVChhKXtpZihhJiZhLmxlbmd0aClmb3IodmFyIGI9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXS5yZXBsYWNlKC9eXyovLCIiKTtiW2RdPVsic2FuZGJveGVkU2NyaXB0cyJdfX0KZnVuY3Rpb24gWFQoYSl7aWYoYSl7dmFyIGI9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO0diKGEsZnVuY3Rpb24oYyxkKXtmb3IodmFyIGU9MDtlPGQubGVuZ3RoO2UrKyl7dmFyIGY9ZFtlXS5yZXBsYWNlKC9eXyovLCIiKTtiW2ZdPWJbZl18fFtdO2JbZl0ucHVzaChjKX19KX19O2Z1bmN0aW9uIFpUKGEpe21EKHBDKCJkZXZlbG9wZXJfaWQuIithLCEwKSwwLHt9KX07ZnVuY3Rpb24gJFQoYSxiKXtyZXR1cm4gRWQoYSxifHxudWxsKX1mdW5jdGlvbiBZKGEpe3JldHVybiB3aW5kb3cuZW5jb2RlVVJJQ29tcG9uZW50KGEpfWZ1bmN0aW9uIGFVKGEpe1pjKGEsdm9pZCAwLHZvaWQgMCl9ZnVuY3Rpb24gYlUoYSl7dmFyIGI9WyJ2ZWludGVyYWN0aXZlLmNvbSIsInZlLWludGVyYWN0aXZlLmNuIl07aWYoIWEpcmV0dXJuITE7dmFyIGM9TGooUmooYSksImhvc3QiKTtpZighYylyZXR1cm4hMTtmb3IodmFyIGQ9MDtiJiZkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXSYmYltkXS50b0xvd2VyQ2FzZSgpO2lmKGUpe3ZhciBmPWMubGVuZ3RoLWUubGVuZ3RoO2Y+MCYmZS5jaGFyQXQoMCkhPT0iLiImJihmLS0sZT0iLiIrZSk7aWYoZj49MCYmYy5pbmRleE9mKGUsZik9PT1mKXJldHVybiEwfX1yZXR1cm4hMX0KZnVuY3Rpb24gY1UoYSxiLGMpe2Zvcih2YXIgZD17fSxlPSExLGY9MDthJiZmPGEubGVuZ3RoO2YrKylhW2ZdJiZhW2ZdLmhhc093blByb3BlcnR5KGIpJiZhW2ZdLmhhc093blByb3BlcnR5KGMpJiYoZFthW2ZdW2JdXT1hW2ZdW2NdLGU9ITApO3JldHVybiBlP2Q6bnVsbH1mdW5jdGlvbiBkVShhLGIpe3ZhciBjPXt9O2lmKGEpZm9yKHZhciBkIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShkKSYmKGNbZF09YVtkXSk7aWYoYil7dmFyIGU9Y1UoYiwicGFyYW1ldGVyIiwicGFyYW1ldGVyVmFsdWUiKTtlJiYoYz0kVChlLGMpKX1yZXR1cm4gY31mdW5jdGlvbiBlVShhLGIsYyl7cmV0dXJuIGE9PT12b2lkIDB8fGE9PT1jP2I6YX1mdW5jdGlvbiBmVShhLGIsYyl7cmV0dXJuIFVjKGEsYixjLHZvaWQgMCl9ZnVuY3Rpb24gZ1UoYSxiKXtBW2FdPWJ9ZnVuY3Rpb24gaFUoYSxiLGMpe3ZhciBkPUE7YiYmKGRbYV09PT12b2lkIDB8fGMmJiFkW2FdKSYmKGRbYV09Yik7cmV0dXJuIGRbYV19dmFyIGlVPXt9LGpVPVguVjt2YXIgWj17c2VjdXJpdHlHcm91cHM6e319OwoKWi5zZWN1cml0eUdyb3Vwcy5hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZT1bImdvb2dsZSJdLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZT1mdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmZ1bmN0aW9uKCl7cmV0dXJue319fX0sWi5fX2FjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlLk89ImFjY2Vzc190ZW1wbGF0ZV9zdG9yYWdlIixaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UuaXNWZW5kb3JUZW1wbGF0ZT0hMCxaLl9fYWNjZXNzX3RlbXBsYXRlX3N0b3JhZ2UucHJpb3JpdHlPdmVycmlkZT0wLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZS5pc0luZnJhc3RydWN0dXJlPSExLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZVsiNSJdPSExLFouX19hY2Nlc3NfdGVtcGxhdGVfc3RvcmFnZVsiNiJdPSExOwoKWi5zZWN1cml0eUdyb3Vwcy5hY2Nlc3NfZ2xvYmFscz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7dmFyIGU9e2tleTpkLHJlYWQ6ITEsd3JpdGU6ITEsZXhlY3V0ZTohMX07c3dpdGNoKGMpe2Nhc2UgInJlYWQiOmUucmVhZD0hMDticmVhaztjYXNlICJ3cml0ZSI6ZS53cml0ZT0hMDticmVhaztjYXNlICJyZWFkd3JpdGUiOmUucmVhZD1lLndyaXRlPSEwO2JyZWFrO2Nhc2UgImV4ZWN1dGUiOmUuZXhlY3V0ZT0hMDticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJJbnZhbGlkICIrYisiIHJlcXVlc3QgIitjKTt9cmV0dXJuIGV9KGZ1bmN0aW9uKGIpe1ouX19hY2Nlc3NfZ2xvYmFscz1iO1ouX19hY2Nlc3NfZ2xvYmFscy5PPSJhY2Nlc3NfZ2xvYmFscyI7Wi5fX2FjY2Vzc19nbG9iYWxzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2FjY2Vzc19nbG9iYWxzLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fYWNjZXNzX2dsb2JhbHMuaXNJbmZyYXN0cnVjdHVyZT0hMTsKWi5fX2FjY2Vzc19nbG9iYWxzWyI1Il09ITE7Wi5fX2FjY2Vzc19nbG9iYWxzWyI2Il09ITF9KShmdW5jdGlvbihiKXtmb3IodmFyIGM9Yi52dHBfa2V5c3x8W10sZD1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3IsZT1bXSxmPVtdLGc9W10saD0wO2g8Yy5sZW5ndGg7aCsrKXt2YXIgbD1jW2hdLG49bC5rZXk7bC5yZWFkJiZlLnB1c2gobik7bC53cml0ZSYmZi5wdXNoKG4pO2wuZXhlY3V0ZSYmZy5wdXNoKG4pfXJldHVybnthc3NlcnQ6ZnVuY3Rpb24ocCxxLHIpe2lmKCF6YihyKSl0aHJvdyBkKHAse30sIktleSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKHE9PT0icmVhZCIpe2lmKGUuaW5kZXhPZihyKT4tMSlyZXR1cm59ZWxzZSBpZihxPT09IndyaXRlIil7aWYoZi5pbmRleE9mKHIpPi0xKXJldHVybn1lbHNlIGlmKHE9PT0icmVhZHdyaXRlIil7aWYoZi5pbmRleE9mKHIpPi0xJiZlLmluZGV4T2Yocik+LTEpcmV0dXJufWVsc2UgaWYocT09PSJleGVjdXRlIil7aWYoZy5pbmRleE9mKHIpPgotMSlyZXR1cm59ZWxzZSB0aHJvdyBkKHAse30sIk9wZXJhdGlvbiBtdXN0IGJlIGVpdGhlciAncmVhZCcsICd3cml0ZScsIG9yICdleGVjdXRlJywgd2FzICIrcSk7dGhyb3cgZChwLHt9LCJQcm9oaWJpdGVkICIrcSsiIG9uIGdsb2JhbCB2YXJpYWJsZTogIityKyIuIik7fSxhYTphfX0pfSgpOwoKClouc2VjdXJpdHlHcm91cHMuZ2V0X3JlZmVycmVyPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57Y29tcG9uZW50OmMscXVlcnlLZXk6ZH19KGZ1bmN0aW9uKGIpe1ouX19nZXRfcmVmZXJyZXI9YjtaLl9fZ2V0X3JlZmVycmVyLk89ImdldF9yZWZlcnJlciI7Wi5fX2dldF9yZWZlcnJlci5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19nZXRfcmVmZXJyZXIucHJpb3JpdHlPdmVycmlkZT0wO1ouX19nZXRfcmVmZXJyZXIuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZ2V0X3JlZmVycmVyWyI1Il09ITE7Wi5fX2dldF9yZWZlcnJlclsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfdXJsUGFydHM9PT0iYW55Ij9udWxsOltdO2MmJihiLnZ0cF9wcm90b2NvbCYmYy5wdXNoKCJwcm90b2NvbCIpLGIudnRwX2hvc3QmJmMucHVzaCgiaG9zdCIpLGIudnRwX3BvcnQmJmMucHVzaCgicG9ydCIpLGIudnRwX3BhdGgmJmMucHVzaCgicGF0aCIpLGIudnRwX2V4dGVuc2lvbiYmCmMucHVzaCgiZXh0ZW5zaW9uIiksYi52dHBfcXVlcnkmJmMucHVzaCgicXVlcnkiKSk7dmFyIGQ9YyYmYi52dHBfcXVlcmllc0FsbG93ZWQhPT0iYW55Ij9iLnZ0cF9xdWVyeUtleXN8fFtdOm51bGwsZT1iLnZ0cF9jcmVhdGVQZXJtaXNzaW9uRXJyb3I7cmV0dXJue2Fzc2VydDpmdW5jdGlvbihmLGcsaCl7aWYoZyl7aWYoIXpiKGcpKXRocm93IGUoZix7fSwiVVJMIGNvbXBvbmVudCBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGMmJmMuaW5kZXhPZihnKTwwKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBVUkwgY29tcG9uZW50OiAiK2cpO2lmKGc9PT0icXVlcnkiJiZkKXtpZighaCl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgZnJvbSBnZXR0aW5nIGVudGlyZSBVUkwgcXVlcnkgd2hlbiBxdWVyeSBrZXlzIGFyZSBzcGVjaWZpZWQuIik7aWYoIXpiKGgpKXRocm93IGUoZix7fSwiUXVlcnkga2V5IG11c3QgYmUgYSBzdHJpbmcuIik7aWYoZC5pbmRleE9mKGgpPDApdGhyb3cgZShmLHt9LAoiUHJvaGliaXRlZCBxdWVyeSBrZXk6ICIraCk7fX1lbHNlIGlmKGMpdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIGZyb20gZ2V0dGluZyBlbnRpcmUgVVJMIHdoZW4gY29tcG9uZW50cyBhcmUgc3BlY2lmaWVkLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX2V2ZW50X2RhdGE9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57a2V5OmN9fShmdW5jdGlvbihiKXtaLl9fcmVhZF9ldmVudF9kYXRhPWI7Wi5fX3JlYWRfZXZlbnRfZGF0YS5PPSJyZWFkX2V2ZW50X2RhdGEiO1ouX19yZWFkX2V2ZW50X2RhdGEuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fcmVhZF9ldmVudF9kYXRhLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fcmVhZF9ldmVudF9kYXRhLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX3JlYWRfZXZlbnRfZGF0YVsiNSJdPSExO1ouX19yZWFkX2V2ZW50X2RhdGFbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2V2ZW50RGF0YUFjY2VzcyxkPWIudnRwX2tleVBhdHRlcm5zfHxbXSxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyl7aWYoZyE9bnVsbCYmIXpiKGcpKXRocm93IGUoZix7a2V5Omd9LCJLZXkgbXVzdCBiZSBhIHN0cmluZy4iKTsKaWYoYyE9PSJhbnkiKXt0cnl7aWYoYz09PSJzcGVjaWZpYyImJmchPW51bGwmJkVnKGcsZCkpcmV0dXJufWNhdGNoKGgpe3Rocm93IGUoZix7a2V5Omd9LCJJbnZhbGlkIGtleSBmaWx0ZXIuIik7fXRocm93IGUoZix7a2V5Omd9LCJQcm9oaWJpdGVkIHJlYWQgZnJvbSBldmVudCBkYXRhLiIpO319LGFhOmF9fSl9KCk7CgpaLnNlY3VyaXR5R3JvdXBzLnJlYWRfdGl0bGU9WyJnb29nbGUiXSxaLl9fcmVhZF90aXRsZT1mdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmZ1bmN0aW9uKCl7cmV0dXJue319fX0sWi5fX3JlYWRfdGl0bGUuTz0icmVhZF90aXRsZSIsWi5fX3JlYWRfdGl0bGUuaXNWZW5kb3JUZW1wbGF0ZT0hMCxaLl9fcmVhZF90aXRsZS5wcmlvcml0eU92ZXJyaWRlPTAsWi5fX3JlYWRfdGl0bGUuaXNJbmZyYXN0cnVjdHVyZT0hMSxaLl9fcmVhZF90aXRsZVsiNSJdPSExLFouX19yZWFkX3RpdGxlWyI2Il09ITE7Clouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJue29wdGlvbnM6e2ZpeE1pc3NpbmdBcGk6ISFjLmZpeE1pc3NpbmdBcGl9fX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cz1iO1ouX19kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHMuTz0iZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzIjtaLl9fZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF95b3V0dWJlX2FjdGl2aXR5X2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfeW91dHViZV9hY3Rpdml0eV9ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X3lvdXR1YmVfYWN0aXZpdHlfZXZlbnRzWyI2Il09CiExfSkoZnVuY3Rpb24oYil7dmFyIGM9ISFiLnZ0cF9hbGxvd0ZpeE1pc3NpbmdKYXZhU2NyaXB0QXBpLGQ9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZSxmKXtpZighYyYmZiYmZi5maXhNaXNzaW5nQXBpKXRocm93IGQoZSx7fSwiUHJvaGliaXRlZCBvcHRpb246IGZpeE1pc3NpbmdBcGkuIik7fSxhYTphfX0pfSgpOwoKCgoKWi5zZWN1cml0eUdyb3Vwcy5yZWFkX3NjcmVlbl9kaW1lbnNpb25zPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX19yZWFkX3NjcmVlbl9kaW1lbnNpb25zPWI7Wi5fX3JlYWRfc2NyZWVuX2RpbWVuc2lvbnMuTz0icmVhZF9zY3JlZW5fZGltZW5zaW9ucyI7Wi5fX3JlYWRfc2NyZWVuX2RpbWVuc2lvbnMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fcmVhZF9zY3JlZW5fZGltZW5zaW9ucy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3JlYWRfc2NyZWVuX2RpbWVuc2lvbnMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fcmVhZF9zY3JlZW5fZGltZW5zaW9uc1siNSJdPSExO1ouX19yZWFkX3NjcmVlbl9kaW1lbnNpb25zWyI2Il09ITF9KShmdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmF9fSl9KCk7CgoKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7cmV0dXJue319KGZ1bmN0aW9uKGIpe1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzPWI7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMuTz0iZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cyI7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9oaXN0b3J5X2NoYW5nZV9ldmVudHMuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fZGV0ZWN0X2hpc3RvcnlfY2hhbmdlX2V2ZW50c1siNSJdPSExO1ouX19kZXRlY3RfaGlzdG9yeV9jaGFuZ2VfZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmF9fSl9KCk7CgoKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3RfbGlua19jbGlja19ldmVudHM9WyJnb29nbGUiXSxmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtyZXR1cm57b3B0aW9uczpjfX0oZnVuY3Rpb24oYil7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50cz1iO1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHMuTz0iZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzIjtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9saW5rX2NsaWNrX2V2ZW50cy5pc0luZnJhc3RydWN0dXJlPSExO1ouX19kZXRlY3RfbGlua19jbGlja19ldmVudHNbIjUiXT0hMTtaLl9fZGV0ZWN0X2xpbmtfY2xpY2tfZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9hbGxvd1dhaXRGb3JUYWdzLGQ9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZSwKZil7aWYoIWMmJmYmJmYud2FpdEZvclRhZ3MpdGhyb3cgZChlLHt9LCJQcm9oaWJpdGVkIG9wdGlvbiB3YWl0Rm9yVGFncy4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMucmVhZF9jb250YWluZXJfZGF0YT1bImdvb2dsZSJdLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhPWZ1bmN0aW9uKCl7cmV0dXJue2Fzc2VydDpmdW5jdGlvbigpe30sYWE6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxaLl9fcmVhZF9jb250YWluZXJfZGF0YS5PPSJyZWFkX2NvbnRhaW5lcl9kYXRhIixaLl9fcmVhZF9jb250YWluZXJfZGF0YS5pc1ZlbmRvclRlbXBsYXRlPSEwLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhLnByaW9yaXR5T3ZlcnJpZGU9MCxaLl9fcmVhZF9jb250YWluZXJfZGF0YS5pc0luZnJhc3RydWN0dXJlPSExLFouX19yZWFkX2NvbnRhaW5lcl9kYXRhWyI1Il09ITEsWi5fX3JlYWRfY29udGFpbmVyX2RhdGFbIjYiXT0hMTsKWi5zZWN1cml0eUdyb3Vwcy5saXN0ZW5fZGF0YV9sYXllcj1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntldmVudE5hbWU6Y319KGZ1bmN0aW9uKGIpe1ouX19saXN0ZW5fZGF0YV9sYXllcj1iO1ouX19saXN0ZW5fZGF0YV9sYXllci5PPSJsaXN0ZW5fZGF0YV9sYXllciI7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2xpc3Rlbl9kYXRhX2xheWVyLnByaW9yaXR5T3ZlcnJpZGU9MDtaLl9fbGlzdGVuX2RhdGFfbGF5ZXIuaXNJbmZyYXN0cnVjdHVyZT0hMTtaLl9fbGlzdGVuX2RhdGFfbGF5ZXJbIjUiXT0hMTtaLl9fbGlzdGVuX2RhdGFfbGF5ZXJbIjYiXT0hMX0pKGZ1bmN0aW9uKGIpe3ZhciBjPWIudnRwX2FjY2Vzc1R5cGUsZD1iLnZ0cF9hbGxvd2VkRXZlbnRzfHxbXSxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyl7aWYoIXpiKGcpKXRocm93IGUoZix7ZXZlbnROYW1lOmd9LAoiRXZlbnQgbmFtZSBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKCEoYz09PSJhbnkifHxjPT09InNwZWNpZmljIiYmZC5pbmRleE9mKGcpPj0wKSl0aHJvdyBlKGYse2V2ZW50TmFtZTpnfSwiUHJvaGliaXRlZCBsaXN0ZW4gb24gZGF0YSBsYXllciBldmVudC4iKTt9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YT1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybntkYXRhU291cmNlOmN9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YT1iO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhLk89ImRldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEiO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGEucHJpb3JpdHlPdmVycmlkZT0wO1ouX19kZXRlY3RfdXNlcl9wcm92aWRlZF9kYXRhLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF91c2VyX3Byb3ZpZGVkX2RhdGFbIjUiXT0hMTtaLl9fZGV0ZWN0X3VzZXJfcHJvdmlkZWRfZGF0YVsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yO3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oZCwKZSl7aWYoZSE9PSJhdXRvIiYmZSE9PSJtYW51YWwiJiZlIT09ImNvZGUiKXRocm93IGMoZCx7fSwiVW5rbm93biB1c2VyIHByb3ZpZGVkIGRhdGEgc291cmNlLiIpO2lmKGIudnRwX2xpbWl0RGF0YVNvdXJjZXMpaWYoZSE9PSJhdXRvInx8Yi52dHBfYWxsb3dBdXRvRGF0YVNvdXJjZXMpe2lmKGU9PT0ibWFudWFsIiYmIWIudnRwX2FsbG93TWFudWFsRGF0YVNvdXJjZXMpdGhyb3cgYyhkLHt9LCJEZXRlY3Rpb24gb2YgdXNlciBwcm92aWRlZCBkYXRhIHZpYSBtYW51YWxseSBzcGVjaWZpZWQgQ1NTIHNlbGVjdG9ycyBpcyBub3QgYWxsb3dlZC4iKTtpZihlPT09ImNvZGUiJiYhYi52dHBfYWxsb3dDb2RlRGF0YVNvdXJjZXMpdGhyb3cgYyhkLHt9LCJEZXRlY3Rpb24gb2YgdXNlciBwcm92aWRlZCBkYXRhIGZyb20gYW4gaW4tcGFnZSB2YXJpYWJsZSBpcyBub3QgYWxsb3dlZC4iKTt9ZWxzZSB0aHJvdyBjKGQse30sIkF1dG9tYXRpYyBkZXRlY3Rpb24gb2YgdXNlciBwcm92aWRlZCBkYXRhIGlzIG5vdCBhbGxvd2VkLiIpOwp9LGFhOmF9fSl9KCk7Clouc2VjdXJpdHlHcm91cHMuZ2V0X3VybD1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMsZCl7cmV0dXJue2NvbXBvbmVudDpjLHF1ZXJ5S2V5OmR9fShmdW5jdGlvbihiKXtaLl9fZ2V0X3VybD1iO1ouX19nZXRfdXJsLk89ImdldF91cmwiO1ouX19nZXRfdXJsLmlzVmVuZG9yVGVtcGxhdGU9ITA7Wi5fX2dldF91cmwucHJpb3JpdHlPdmVycmlkZT0wO1ouX19nZXRfdXJsLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2dldF91cmxbIjUiXT0hMTtaLl9fZ2V0X3VybFsiNiJdPSExfSkoZnVuY3Rpb24oYil7dmFyIGM9Yi52dHBfdXJsUGFydHM9PT0iYW55Ij9udWxsOltdO2MmJihiLnZ0cF9wcm90b2NvbCYmYy5wdXNoKCJwcm90b2NvbCIpLGIudnRwX2hvc3QmJmMucHVzaCgiaG9zdCIpLGIudnRwX3BvcnQmJmMucHVzaCgicG9ydCIpLGIudnRwX3BhdGgmJmMucHVzaCgicGF0aCIpLGIudnRwX2V4dGVuc2lvbiYmYy5wdXNoKCJleHRlbnNpb24iKSxiLnZ0cF9xdWVyeSYmCmMucHVzaCgicXVlcnkiKSxiLnZ0cF9mcmFnbWVudCYmYy5wdXNoKCJmcmFnbWVudCIpKTt2YXIgZD1jJiZiLnZ0cF9xdWVyaWVzQWxsb3dlZCE9PSJhbnkiP2IudnRwX3F1ZXJ5S2V5c3x8W106bnVsbCxlPWIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGYsZyxoKXtpZihnKXtpZighemIoZykpdGhyb3cgZShmLHt9LCJVUkwgY29tcG9uZW50IG11c3QgYmUgYSBzdHJpbmcuIik7aWYoYyYmYy5pbmRleE9mKGcpPDApdGhyb3cgZShmLHt9LCJQcm9oaWJpdGVkIFVSTCBjb21wb25lbnQ6ICIrZyk7aWYoZz09PSJxdWVyeSImJmQpe2lmKCFoKXRocm93IGUoZix7fSwiUHJvaGliaXRlZCBmcm9tIGdldHRpbmcgZW50aXJlIFVSTCBxdWVyeSB3aGVuIHF1ZXJ5IGtleXMgYXJlIHNwZWNpZmllZC4iKTtpZighemIoaCkpdGhyb3cgZShmLHt9LCJRdWVyeSBrZXkgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihkLmluZGV4T2YoaCk8MCl0aHJvdyBlKGYse30sCiJQcm9oaWJpdGVkIHF1ZXJ5IGtleTogIitoKTt9fWVsc2UgaWYoYyl0aHJvdyBlKGYse30sIlByb2hpYml0ZWQgZnJvbSBnZXR0aW5nIGVudGlyZSBVUkwgd2hlbiBjb21wb25lbnRzIGFyZSBzcGVjaWZpZWQuIik7fSxhYTphfX0pfSgpOwpaLnNlY3VyaXR5R3JvdXBzLmFjY2Vzc19jb25zZW50PVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXt2YXIgZT17Y29uc2VudFR5cGU6YyxyZWFkOiExLHdyaXRlOiExfTtzd2l0Y2goZCl7Y2FzZSAicmVhZCI6ZS5yZWFkPSEwO2JyZWFrO2Nhc2UgIndyaXRlIjplLndyaXRlPSEwO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIkludmFsaWQgIitiKyIgcmVxdWVzdCAiK2QpO31yZXR1cm4gZX0oZnVuY3Rpb24oYil7Wi5fX2FjY2Vzc19jb25zZW50PWI7Wi5fX2FjY2Vzc19jb25zZW50Lk89ImFjY2Vzc19jb25zZW50IjtaLl9fYWNjZXNzX2NvbnNlbnQuaXNWZW5kb3JUZW1wbGF0ZT0hMDtaLl9fYWNjZXNzX2NvbnNlbnQucHJpb3JpdHlPdmVycmlkZT0wO1ouX19hY2Nlc3NfY29uc2VudC5pc0luZnJhc3RydWN0dXJlPSExO1ouX19hY2Nlc3NfY29uc2VudFsiNSJdPSExO1ouX19hY2Nlc3NfY29uc2VudFsiNiJdPSExfSkoZnVuY3Rpb24oYil7Zm9yKHZhciBjPQpiLnZ0cF9jb25zZW50VHlwZXN8fFtdLGQ9Yi52dHBfY3JlYXRlUGVybWlzc2lvbkVycm9yLGU9W10sZj1bXSxnPTA7ZzxjLmxlbmd0aDtnKyspe3ZhciBoPWNbZ10sbD1oLmNvbnNlbnRUeXBlO2gucmVhZCYmZS5wdXNoKGwpO2gud3JpdGUmJmYucHVzaChsKX1yZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKG4scCxxKXtpZighemIocCkpdGhyb3cgZChuLHt9LCJDb25zZW50IHR5cGUgbXVzdCBiZSBhIHN0cmluZy4iKTtpZihxPT09InJlYWQiKXtpZihlLmluZGV4T2YocCk+LTEpcmV0dXJufWVsc2UgaWYocT09PSJ3cml0ZSIpe2lmKGYuaW5kZXhPZihwKT4tMSlyZXR1cm59ZWxzZSB0aHJvdyBkKG4se30sIkFjY2VzcyB0eXBlIG11c3QgYmUgZWl0aGVyICdyZWFkJywgb3IgJ3dyaXRlJywgd2FzICIrcSk7dGhyb3cgZChuLHt9LCJQcm9oaWJpdGVkICIrcSsiIG9uIGNvbnNlbnQgdHlwZTogIitwKyIuIik7fSxhYTphfX0pfSgpOwoKCgpaLnNlY3VyaXR5R3JvdXBzLnJlYWRfZG9tX2VsZW1lbnRzPVsiZ29vZ2xlIl0sZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtyZXR1cm57dHlwZTpjLHZhbHVlOmR9fShmdW5jdGlvbihiKXtaLl9fcmVhZF9kb21fZWxlbWVudHM9YjtaLl9fcmVhZF9kb21fZWxlbWVudHMuTz0icmVhZF9kb21fZWxlbWVudHMiO1ouX19yZWFkX2RvbV9lbGVtZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19yZWFkX2RvbV9lbGVtZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzWyI1Il09ITE7Wi5fX3JlYWRfZG9tX2VsZW1lbnRzWyI2Il09ITF9KShmdW5jdGlvbihiKXt2YXIgYz1iLnZ0cF9hbGxvd2VkRWxlbWVudElkc3x8Im5vbmUiLGQ9Yi52dHBfYWxsb3dlZENzc1NlbGVjdG9yc3x8Im5vbmUiLGU9Yi52dHBfZWxlbWVudElkc3x8W10sZj1iLnZ0cF9jc3NTZWxlY3RvcnN8fFtdLGc9CmIudnRwX2NyZWF0ZVBlcm1pc3Npb25FcnJvcjtyZXR1cm57YXNzZXJ0OmZ1bmN0aW9uKGgsbCxuKXtzd2l0Y2gobCl7Y2FzZSAiaWQiOmlmKGM9PT0ibm9uZSIpYnJlYWs7aWYoYz09PSJhbnkifHxlLmluZGV4T2Yobik+LTEpcmV0dXJuO2JyZWFrO2Nhc2UgImNzcyI6aWYoZD09PSJub25lIilicmVhaztpZihkPT09ImFueSJ8fGYuaW5kZXhPZihuKT4tMSlyZXR1cm47YnJlYWs7ZGVmYXVsdDp0aHJvdyBnKGgse30sIlVua25vd24gc2VsZWN0b3IgdHlwZSAiK2wrIi4iKTt9dGhyb3cgZyhoLHt9LCJQcm9oaWJpdGVkIHNlbGVjdG9yIHZhbHVlICIrbisiIGZvciBzZWxlY3RvciB0eXBlICIrbCsiLiIpO30sYWE6YX19KX0oKTsKWi5zZWN1cml0eUdyb3Vwcy5kZXRlY3Rfc2Nyb2xsX2V2ZW50cz1bImdvb2dsZSJdLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe3JldHVybnt9fShmdW5jdGlvbihiKXtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHM9YjtaLl9fZGV0ZWN0X3Njcm9sbF9ldmVudHMuTz0iZGV0ZWN0X3Njcm9sbF9ldmVudHMiO1ouX19kZXRlY3Rfc2Nyb2xsX2V2ZW50cy5pc1ZlbmRvclRlbXBsYXRlPSEwO1ouX19kZXRlY3Rfc2Nyb2xsX2V2ZW50cy5wcmlvcml0eU92ZXJyaWRlPTA7Wi5fX2RldGVjdF9zY3JvbGxfZXZlbnRzLmlzSW5mcmFzdHJ1Y3R1cmU9ITE7Wi5fX2RldGVjdF9zY3JvbGxfZXZlbnRzWyI1Il09ITE7Wi5fX2RldGVjdF9zY3JvbGxfZXZlbnRzWyI2Il09ITF9KShmdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmF9fSl9KCk7Wi5zZWN1cml0eUdyb3Vwcy5nZXRfdXNlcl9hZ2VudD1bImdvb2dsZSJdLFouX19nZXRfdXNlcl9hZ2VudD1mdW5jdGlvbigpe3JldHVybnthc3NlcnQ6ZnVuY3Rpb24oKXt9LGFhOmZ1bmN0aW9uKCl7cmV0dXJue319fX0sWi5fX2dldF91c2VyX2FnZW50Lk89ImdldF91c2VyX2FnZW50IixaLl9fZ2V0X3VzZXJfYWdlbnQuaXNWZW5kb3JUZW1wbGF0ZT0hMCxaLl9fZ2V0X3VzZXJfYWdlbnQucHJpb3JpdHlPdmVycmlkZT0wLFouX19nZXRfdXNlcl9hZ2VudC5pc0luZnJhc3RydWN0dXJlPSExLFouX19nZXRfdXNlcl9hZ2VudFsiNSJdPSExLFouX19nZXRfdXNlcl9hZ2VudFsiNiJdPSExOwoKCgpmdW5jdGlvbiBrVSgpe3ZhciBhPXt9LGI9e2RhdGFMYXllcjp0QSxjYWxsYmFjazpmdW5jdGlvbihjKXthLmhhc093blByb3BlcnR5KGMpJiZ5YihhW2NdKSYmYVtjXSgpO2RlbGV0ZSBhW2NdfSxib290c3RyYXA6MH07cmV0dXJuIGJ9CmZ1bmN0aW9uIGxVKCl7dmFyIGE9a1UoKTtvaihhKTtDaygpO2pBKCk7dmFyIGI9YWwoMjcsZnVuY3Rpb24oKXtyZXR1cm57fX0pO1FiKGIsWi5zZWN1cml0eUdyb3Vwcyk7dmFyIGM9eWsoemsoKSksZCxlPWM9PW51bGw/dm9pZCAwOihkPWMuY29udGV4dCk9PW51bGw/dm9pZCAwOmQuc291cmNlO0tsKGUsYz09bnVsbD92b2lkIDA6Yy5wYXJlbnQpO2UhPT0yJiZlIT09NCYmZSE9PTN8fFAoMTQyKTtyZXR1cm4gYX1mdW5jdGlvbiBtVSgpe3ZhciBhPUUoNjApO2lmKGEpZm9yKHZhciBiPWEuc3BsaXQoIi4iKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY10sZT1UTDtkJiYoZS5IW2RdPSEwKX19CmZ1bmN0aW9uIG5VKCl7enAoKTtsaigpO2Zvcih2YXIgYT1kYXRhLnJlc291cmNlfHx7fSxiPWNBLGM9YS5tYWNyb3N8fFtdLGQ9MDtkPGMubGVuZ3RoO2QrKyliLm1hY3Jvcy5wdXNoKG5ldyBVeihjW2RdLGQsYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBlPWEudGFnc3x8W10sZj0wO2Y8ZS5sZW5ndGg7ZisrKWIudGFncy5wdXNoKG5ldyBZeihlW2ZdLGYsYi50YWdzLGIubWFjcm9zKSk7Zm9yKHZhciBnPWEucHJlZGljYXRlc3x8W10saD0wO2g8Zy5sZW5ndGg7aCsrKWIucHJlZGljYXRlcy5wdXNoKG5ldyBWeihnW2hdLGIudGFncyxiLm1hY3JvcykpO2Zvcih2YXIgbD1hLnJ1bGVzfHxbXSxuPTA7bjxsLmxlbmd0aDtuKyspYi5ydWxlcy5wdXNoKG5ldyBXeihsW25dLG4pKTtRej1aO3ZhciBwPWRhdGEucGVybWlzc2lvbnN8fHt9LHE9WjtkZz1uZXcgZ2coRSg1KSxwLHEpO3ZhciByPWRhdGEuc2FuZGJveGVkX3NjcmlwdHMsdD1kYXRhLnNlY3VyaXR5X2dyb3Vwcyx1PWRhdGEucnVudGltZXx8CltdLHY9ZGF0YS5ydW50aW1lX2xpbmVzO0pGPW5ldyBwZjtWVCgpO1B6PUlGKCk7dmFyIHg9SkYseT1VVCgpLHo9bmV3IExkKCJyZXF1aXJlIix5KTt6LlphKCk7eC5ILkguc2V0KCJyZXF1aXJlIix6KTtkYi5zZXQoInJlcXVpcmUiLHopO2Zvcih2YXIgQz0wO0M8dS5sZW5ndGg7QysrKXt2YXIgRD11W0NdO2lmKCFBcnJheS5pc0FycmF5KEQpfHxELmxlbmd0aDwzKXtpZihELmxlbmd0aD09PTApY29udGludWU7YnJlYWt9diYmdltDXSYmdltDXS5sZW5ndGgmJlBmKEQsdltDXSk7dHJ5e0pGLmV4ZWN1dGUoRCl9Y2F0Y2gob1Upe319V1Qocik7WFQodCk7dmFyIEk9bFUoKTtpRigpO3ZtLmJpbmQoKTtpZighRGopZm9yKHZhciBHPUJtKCk/ZXAoTGYoNSkpOmVwKExmKDQpKSxOPW0oUm8pLFM9Ti5uZXh0KCk7IVMuZG9uZTtTPU4ubmV4dCgpKXt2YXIgVz1TLnZhbHVlLGVhPVcsamE9R1tXXT8iZ3JhbnRlZCI6ImRlbmllZCI7dGwoKS5pbXBsaWNpdChlYSxqYSl9aEUuYmluZCgpO1RCKCk7Ck9CKCk7Zm4uTiYmKGd6KCksZnooQUYpLGdBKCksY0I9bmV3IGJCLGZ6KGl6KSxPQygpLERGfHwoREY9bmV3IEJGKSxmQnx8KGZCPW5ldyBlQiksRkY9bmV3IEVGKTtpZihmbi5LKXtERS5iaW5kKCk7bUMuYmluZCgpO3dFLmJpbmQoKTt2YXIgZmE9QWsoKTtpZihmYSl7dmFyIHNhO2E6e3ZhciBkYSxtYT0oZGE9ZmEuc2NyaXB0RWxlbWVudCk9PW51bGw/dm9pZCAwOmRhLnNyYztpZihtYSl7dmFyIFBhO3RyeXt2YXIgRmE7UGE9KEZhPXJkKCkpPT1udWxsP3ZvaWQgMDpGYS5nZXRFbnRyaWVzQnlUeXBlKCJyZXNvdXJjZSIpfWNhdGNoKG9VKXt9aWYoUGEpe2Zvcih2YXIgcWE9LTEsaWI9bShQYSksWGI9aWIubmV4dCgpOyFYYi5kb25lO1hiPWliLm5leHQoKSl7dmFyIExjPVhiLnZhbHVlO2lmKExjLmluaXRpYXRvclR5cGU9PT0KInNjcmlwdCImJihxYSs9MSxMYy5uYW1lLnJlcGxhY2UoTkUsIiIpPT09bWEucmVwbGFjZShORSwiIikpKXtzYT1xYTticmVhayBhfX1QKDE0Nil9ZWxzZSBQKDE0NSl9c2E9dm9pZCAwfXZhciBRZD1zYTtRZCE9PXZvaWQgMCYmKGZhLmNhbm9uaWNhbENvbnRhaW5lcklkJiZVbSgicnRnIixTdHJpbmcoZmEuY2Fub25pY2FsQ29udGFpbmVySWQpKSxVbSgic2xvIixTdHJpbmcoUWQpKSxVbSgiaGxvIixmYS5odG1sTG9hZE9yZGVyfHwiLTEiKSxVbSgibHN0IixTdHJpbmcoZmEubG9hZFNjcmlwdFR5cGV8fCIwIikpKX1lbHNlIFAoMTQ0KTt2YXIgWWM7dmFyIERkPXhrKCk7aWYoRGQpaWYoRGQuY2Fub25pY2FsQ29udGFpbmVySWQpWWM9RGQuY2Fub25pY2FsQ29udGFpbmVySWQ7ZWxzZXt2YXIgamYsdmg9RGQuc2NyaXB0Q29udGFpbmVySWR8fCgoamY9RGQuZGVzdGluYXRpb25zKT09bnVsbD92b2lkIDA6amZbMF0pO1ljPXZoPyJfIit2aDp2b2lkIDB9ZWxzZSBZYz12b2lkIDA7dmFyIEpFPQpZYztKRSYmVW0oInBjaWQiLEpFKTtVbSgiYnQiLFN0cmluZyhJZig0Nyk/MjpJZig1MCk/MTowKSk7VW0oImN0IixTdHJpbmcoSWYoNDcpPzA6SWYoNTApPzE6MykpO0FFLmJpbmQoKTtmb3IodmFyIFdyPVtdLFhyPVtdLEtFPW0oT2JqZWN0LmtleXMoR0UpKSxZcj1LRS5uZXh0KCk7IVlyLmRvbmU7WXI9S0UubmV4dCgpKXt2YXIgcm09WXIudmFsdWU7aWYod2luZG93LmlzU2VjdXJlQ29udGV4dHx8IUlFW3JtXSl7dmFyIExFPUdFW3JtXSgpO2lmKHliKExFKSl7dmFyIE1FPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKExFKTtUYihNRSwieyBbbmF0aXZlIGNvZGVdIH0iKXx8VGIoTUUsIntcbiAgICBbbmF0aXZlIGNvZGVdXG59Iil8fFhyLnB1c2gocm0pfWVsc2UgV3IucHVzaChybSl9fVdyLmxlbmd0aD4wJiZVbSgianNtIixXci5qb2luKCJ+IikpO1hyLmxlbmd0aD4wJiZVbSgianNwIixYci5qb2luKCJ+IikpO0V5fHwoRXk9bmV3IER5KX1oRigpO2ltKDEpO0VHKCk7cmV0dXJuIEl9CmZ1bmN0aW9uIHVtKCl7dHJ5e2lmKCFoaygpJiYoSWYoNDcpfHwhTmsoKSkpe0lmKDY0KSYmd2ouSC5LLmFkZCgxMTg1MTc5MTcpO3pqKCk7Zm4uSCYmc3ooKTtXZls1XT0hMDt2YXIgYT1raigiZGVidWdHcm91cElkIixmdW5jdGlvbigpe3JldHVybiBTdHJpbmcoTWF0aC5mbG9vcihOdW1iZXIuTUFYX1NBRkVfSU5URUdFUipNYXRoLnJhbmRvbSgpKSl9KTtTbChhKTtrdCgpO3pGKCk7RnQoKTtQQigpO2lmKERrKCkpe0UoNSk7REcoKTtpQigpLnJlbW92ZUV4dGVybmFsUmVzdHJpY3Rpb25zKHZrKCkpO31lbHNle0ZNLlIoKTtuVSgpLmJvb3RzdHJhcD1OYigpO0lmKDUxKSYmcEUoKTsKZm4uSCYmdHooKTt0eXBlb2YgQS5uYW1lPT09InN0cmluZyImJlNiKEEubmFtZSwid2ViLXBpeGVsLXNhbmRib3gtQ1VTVE9NIikmJnNkKCk/WlQoImRNRGcwWXoiKTpBLlNob3BpZnkmJihaVCgiZE4yWmtNaiIpLHNkKCkmJlpUKCJkTlRVMFl6IikpO21VKCl9fX1jYXRjaChiKXtpbSg1KSxoeigpfX0KKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoKXtuPUIuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS10YWctYXNzaXN0YW50LXByZXNlbnQiKTtnbChuKSYmKGw9aC54bSl9ZnVuY3Rpb24gYygpe2wmJktjP2cobCk6YSgpfWlmKCFBW0UoMzcpXSl7dmFyIGQ9ITE7aWYoQi5yZWZlcnJlcil7dmFyIGU9UmooQi5yZWZlcnJlcik7ZD1OaihlLCJob3N0Iik9PT1FKDM4KX1pZighZCl7dmFyIGY9Y3EoRSgzOSkpO2Q9ISghZi5sZW5ndGh8fCFmWzBdLmxlbmd0aCl9ZCYmKEFbRSgzNyldPSEwLFVjKEUoNDApKSl9dmFyIGc9ZnVuY3Rpb24odSl7dmFyIHY9IkdUTSIseD0iR1RNIjtJZig0NSkmJih2PSJPR1QiLHg9IkdUQUciKTt2YXIgeT1FKDIzKSx6PUFbeV07enx8KHo9W10sQVt5XT16LFVjKCJodHRwczovLyIrRSgzKSsiL2RlYnVnL2Jvb3RzdHJhcD9pZD0iK0UoNSkrIiZzcmM9Iit4KyImY29uZD0iK1N0cmluZyh1KSsiJmd0bT0iK2R1KCkpKTt2YXIgQz17bWVzc2FnZVR5cGU6IkNPTlRBSU5FUl9TVEFSVElORyIsCmRhdGE6e3NjcmlwdFNvdXJjZTpLYyxjb250YWluZXJQcm9kdWN0OnYsZGVidWc6ITEsaWQ6RSg1KSx0YXJnZXRSZWY6e2N0aWQ6RSg1KSxpc0Rlc3RpbmF0aW9uOnNrKCksY2Fub25pY2FsSWQ6RSg2KX0sYWxpYXNlczp3aygpLGRlc3RpbmF0aW9uczp0aygpfX0sRD1DLmRhdGE7RC5yZXN1bWU9ZnVuY3Rpb24oKXthKCl9O0QucmVzdW1lV2l0aE1lbW9zPWZ1bmN0aW9uKCl7c2woMSk7YSgpfTtJZigyKSYmKEMuZGF0YS5pbml0aWFsUHVibGlzaD0hMCk7ei5wdXNoKEMpfSxoPXtHcToxLFBtOjIsb246MyxqbDo0LHhtOjV9O2hbaC5HcV09IkdUTV9ERUJVR19MRUdBQ1lfUEFSQU0iO2hbaC5QbV09IkdUTV9ERUJVR19QQVJBTSI7aFtoLm9uXT0iUkVGRVJSRVIiO2hbaC5qbF09IkNPT0tJRSI7aFtoLnhtXT0iRVhURU5TSU9OX1BBUkFNIjt2YXIgbD12b2lkIDAsbj12b2lkIDAscD1MaihBLmxvY2F0aW9uLCJxdWVyeSIsITEsdm9pZCAwLCJndG1fZGVidWciKTtnbChwKSYmKGw9aC5QbSk7CmlmKCFsJiZCLnJlZmVycmVyKXt2YXIgcT1SaihCLnJlZmVycmVyKTtOaihxLCJob3N0Iik9PT1FKDI0KSYmKGw9aC5vbil9aWYoIWwpe3ZhciByPWNxKCJfX1RBR19BU1NJU1RBTlQiKTtyLmxlbmd0aCYmclswXS5sZW5ndGgmJihsPWguamwpfWx8fGIoKTtpZighbCYmZmwobikpe3ZhciB0PSExOyRjKEIsIlRBRGVidWdTaWduYWwiLGZ1bmN0aW9uKCl7dHx8KHQ9ITAsYigpLGMoKSl9LCExKTtBLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0fHwodD0hMCxiKCksYygpKX0sMjAwKX1lbHNlIGMoKX0pKGZ1bmN0aW9uKCl7IUlmKDQ3KXx8dG0oKVsiMCJdP3VtKCk6eG0oKX0pOwoKfSkoKQoK"}},"time_used":152,"timings":{"blocked":-1,"dns":2,"connect":14,"send":0,"wait":37,"receive":62,"ssl":36},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/embed/Ymge-qh3m4E","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"subdocument","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.183Z","timestamp":1785121660183,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /embed/Ymge-qh3m4E HTTP/1.1\r\nHost: www.youtube.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://7bridgecapital.com/\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: iframe\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ncontent-type: text/html; charset=utf-8\r\nx-content-type-options: nosniff\r\ncontent-security-policy: script-src 'unsafe-eval' 'self' 'unsafe-inline' https://www.google.com https://apis.google.com https://ssl.gstatic.com https://www.gstatic.com https://www.googletagmanager.com https://www.google-analytics.com https://*.youtube.com https://*.google.com https://*.gstatic.com https://youtube.com https://www.youtube.com https://google.com https://*.doubleclick.net https://*.googleapis.com https://www.googleadservices.com https://tpc.googlesyndication.com https://www.youtubekids.com https://www.youtube-nocookie.com https://www.youtubeeducation.com https://www-onepick-opensocial.googleusercontent.com;report-uri https://csp.withgoogle.com/csp/youtube_main/allowlist, base-uri 'self';object-src 'none';script-src 'nonce-MnduCOb4G_OAf27qlSdtsw' 'unsafe-inline' 'strict-dynamic' https: http: 'unsafe-eval';report-uri https://csp.withgoogle.com/csp/youtube_main/strict, require-trusted-types-for 'script'\r\ncache-control: no-cache, no-store, max-age=0, must-revalidate\r\npragma: no-cache\r\nexpires: Mon, 01 Jan 1990 00:00:00 GMT\r\ndate: Mon, 27 Jul 2026 03:07:40 GMT\r\np3p: CP=\"This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info.\"\r\nstrict-transport-security: max-age=31536000\r\ncross-origin-embedder-policy-report-only: require-corp; report-to=\"youtube_main\"\r\norigin-trial: AmhMBR6zCLzDDxpW+HfpP67BqwIknWnyMOXOQGfzYswFmJe+fgaI6XZgAzcxOrzNtP7hEDsOo1jdjFnVr2IdxQ4AAAB4eyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJXZWJWaWV3WFJlcXVlc3RlZFdpdGhEZXByZWNhdGlvbiIsImV4cGlyeSI6MTc1ODA2NzE5OSwiaXNTdWJkb21haW4iOnRydWV9, AiDEBptUfVeO93q48VdVMe/ubupazdAl8AaHP+NBzdnW8quUcHdzJUyGSfrmtpKJu7EOvwRp9ug2rEo3XU+WMAMAAAB2eyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJEZXZpY2VCb3VuZFNlc3Npb25DcmVkZW50aWFsczIiLCJleHBpcnkiOjE3NzQzMTA0MDAsImlzU3ViZG9tYWluIjp0cnVlfQ==\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"youtube_main\"\r\nreport-to: {\"group\":\"youtube_main\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube_main\"}]},{\"group\":\"youtube_main-connectionallowlist\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/youtube_main/connectionallowlist\"}]}\r\npermissions-policy: ch-ua-arch=*, ch-ua-bitness=*, ch-ua-full-version=*, ch-ua-full-version-list=*, ch-ua-model=*, ch-ua-wow64=*, ch-ua-form-factors=*, ch-ua-platform=*, ch-ua-platform-version=*\r\ncross-origin-resource-policy: cross-origin\r\ncontent-encoding: br\r\nserver: ESF\r\nx-xss-protection: 0\r\nset-cookie: __Secure-YNID=20.YT=OD2AqDJJ5KCd2FQHST0PP6nm_PUnOmOKKW_5n2sU3Uto7bgqmGZVezTy0eT5Ch1tu0JzTUorYggNVLrq4iBbxMgjKYV2etvlvytuKk4TF9mvut1pghwMJgUbuW8p4XdgsmD-iSy6zHQlRAhB-JrbMaRe5h5KsRdBUFWbvsxsNeH89V6KOOjVPuXhJsEWmIkl-LvE1HpLYRq5EZFVQYIOUs-Z8R5-lI8AE0vJVBeC2LGwT5UqkcaMp_COMwshp2EEUXAKmfxi2oM6g3JxUmkhMTmLxZ6-dd5IROcdvW6cdIjiQ0GqdQz5GxuAM3oOINnB4Vt5On4L4U_Gl5n7h1P_CQ; expires=Sat, 23-Jan-2027 03:07:40 GMT; path=/; domain=.youtube.com; Secure; HttpOnly; SameSite=none\nYSC=IgHKWvjgj0E; Domain=.youtube.com; Path=/; Secure; HttpOnly; SameSite=none\n__Secure-ROLLOUT_TOKEN=CNnI7u31yczMShCAqsGz8PGVAxiAqsGz8PGVAw%3D%3D; Domain=youtube.com; Expires=Sat, 23-Jan-2027 03:07:40 GMT; Path=/; Secure; HttpOnly; SameSite=none; Partitioned\n__Secure-YEC=; Domain=.youtube.com; Expires=Tue, 31-Oct-2023 03:07:40 GMT; Path=/; Secure; HttpOnly; SameSite=lax\nVISITOR_INFO1_LIVE=mzxiTe7ERp4; Domain=.youtube.com; Expires=Sat, 23-Jan-2027 03:07:40 GMT; Path=/; Secure; HttpOnly; SameSite=none\nVISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgIw%3D%3D; Domain=.youtube.com; Expires=Sat, 23-Jan-2027 03:07:40 GMT; Path=/; Secure; HttpOnly; SameSite=none\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":143571,"size_decoded":60248,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with very long lines (52128)","md5":"943cf556c0c5890e727901598eb25f6b","sha1":"5bd34e7120c4e069de28f347533ded4a39cdcc77","sha256":"a289c838f9527369d1bfb1f8f630a5f13fc88e83a8a277c49655b17898117578","sha512":"ce180841b5a24dfb96245bbd6444798c199e469a510f06b91b53ea8ad3078445e42a060a237352302e4846fdd1ebf9d0cd7fcbf747e618db4f57b06e1bcc67ed","ssdeep":"1536:VwQAg/MFzYVM6bB9zhNFco43UEwgDycutrMWh0YLAlKxbV5UP7Zzcn7jYAV:5T/2YzPc0Ewguc7c0YslKbVIpc7LV","tlshash":"bde31a250828a876c5939547eebaff3e5cb8023a47c9956dbcbbd35c01dc6610eaf413","first_seen":"2026-07-27T03:08:23.004536Z","last_seen":"2026-07-27T03:08:23.004536Z","times_seen":1,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iIGRpcj0ibHRyIiBkYXRhLWNhc3QtYXBpLWVuYWJsZWQ9InRydWUiPjxoZWFkPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+PHNjcmlwdCBub25jZT0iTW5kdUNPYjRHX09BZjI3cWxTZHRzdyI+aWYgKCd1bmRlZmluZWQnID09IHR5cGVvZiBTeW1ib2wgfHwgJ3VuZGVmaW5lZCcgPT0gdHlwZW9mIFN5bWJvbC5pdGVyYXRvcikge2RlbGV0ZSBBcnJheS5wcm90b3R5cGUuZW50cmllczt9PC9zY3JpcHQ+PHN0eWxlIG5hbWU9Ind3dy1yb2JvdG8iIG5vbmNlPSJRaThlTTAtazRaMU9yUk1UN3VIQk5nIj5AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNHVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswNDYwLTA1MkYsVSsxQzgwLTFDOEEsVSsyMEI0LFUrMkRFMC0yREZGLFUrQTY0MC1BNjlGLFUrRkUyRS1GRTJGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNpVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzAxLFUrMDQwMC0wNDVGLFUrMDQ5MC0wNDkxLFUrMDRCMC0wNEIxLFUrMjExNjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzQ1VCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMUYwMC0xRkZGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTMtVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzcwLTAzNzcsVSswMzdBLTAzN0YsVSswMzg0LTAzOEEsVSswMzhDLFUrMDM4RS0wM0ExLFUrMDNBMy0wM0ZGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYXdDVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMzAyLTAzMDMsVSswMzA1LFUrMDMwNy0wMzA4LFUrMDMxMCxVKzAzMTIsVSswMzE1LFUrMDMxQSxVKzAzMjYtMDMyNyxVKzAzMkMsVSswMzJGLTAzMzAsVSswMzMyLTAzMzMsVSswMzM4LFUrMDMzQSxVKzAzNDYsVSswMzRELFUrMDM5MS0wM0ExLFUrMDNBMy0wM0E5LFUrMDNCMS0wM0M5LFUrMDNEMSxVKzAzRDUtMDNENixVKzAzRjAtMDNGMSxVKzAzRjQtMDNGNSxVKzIwMTYtMjAxNyxVKzIwMzQtMjAzOCxVKzIwM0MsVSsyMDQwLFUrMjA0MyxVKzIwNDcsVSsyMDUwLFUrMjA1NyxVKzIwNUYsVSsyMDcwLTIwNzEsVSsyMDc0LTIwOEUsVSsyMDkwLTIwOUMsVSsyMEQwLTIwREMsVSsyMEUxLFUrMjBFNS0yMEVGLFUrMjEwMC0yMTEyLFUrMjExNC0yMTE1LFUrMjExNy0yMTIxLFUrMjEyMy0yMTRGLFUrMjE5MCxVKzIxOTIsVSsyMTk0LTIxQUUsVSsyMUIwLTIxRTUsVSsyMUYxLTIxRjIsVSsyMUY0LTIyMTEsVSsyMjEzLTIyMTQsVSsyMjE2LTIyRkYsVSsyMzA4LTIzMEIsVSsyMzEwLFUrMjMxOSxVKzIzMUMtMjMyMSxVKzIzMzYtMjM3QSxVKzIzN0MsVSsyMzk1LFUrMjM5Qi0yM0I3LFUrMjNEMCxVKzIzREMtMjNFMSxVKzI0NzQtMjQ3NSxVKzI1QUYsVSsyNUIzLFUrMjVCNyxVKzI1QkQsVSsyNUMxLFUrMjVDQSxVKzI1Q0MsVSsyNUZCLFUrMjY2RC0yNjZGLFUrMjdDMC0yN0ZGLFUrMjkwMC0yQUZGLFUrMkIwRS0yQjExLFUrMkIzMC0yQjRDLFUrMkJGRSxVKzMwMzAsVStGRjVCLFUrRkY1RCxVKzFENDAwLTFEN0ZGLFUrMUVFMDAtMUVFRkY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3RyZXRjaDoxMDAlO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1heEtVQkdFZS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAwMDEtMDAwQyxVKzAwMEUtMDAxRixVKzAwN0YtMDA5RixVKzIwREQtMjBFMCxVKzIwRTItMjBFNCxVKzIxNTAtMjE4RixVKzIxOTAsVSsyMTkyLFUrMjE5NC0yMTk5LFUrMjFBRixVKzIxRTYtMjFGMCxVKzIxRjMsVSsyMjE4LTIyMTksVSsyMjk5LFUrMjJDNC0yMkM2LFUrMjMwMC0yNDNGLFUrMjQ0MC0yNDRBLFUrMjQ2MC0yNEZGLFUrMjVBMC0yN0JGLFUrMjgwMC0yOEZGLFUrMjkyMS0yOTIyLFUrMjk4MSxVKzI5QkYsVSsyOUVCLFUrMkIwMC0yQkZGLFUrNERDMC00REZGLFUrRkZGOS1GRkZCLFUrMTAxNDAtMTAxOEUsVSsxMDE5MC0xMDE5QyxVKzEwMUEwLFUrMTAxRDAtMTAxRkQsVSsxMDJFMC0xMDJGQixVKzEwRTYwLTEwRTdFLFUrMUQyQzAtMUQyRDMsVSsxRDJFMC0xRDM3RixVKzFGMDAwLTFGMEZGLFUrMUYxMDAtMUYxQUQsVSsxRjFFNi0xRjFGRixVKzFGMzBELTFGMzBGLFUrMUYzMTUsVSsxRjMxQyxVKzFGMzFFLFUrMUYzMjAtMUYzMkMsVSsxRjMzNixVKzFGMzc4LFUrMUYzN0QsVSsxRjM4MixVKzFGMzkzLTFGMzlGLFUrMUYzQTctMUYzQTgsVSsxRjNBQy0xRjNBRixVKzFGM0MyLFUrMUYzQzQtMUYzQzYsVSsxRjNDQS0xRjNDRSxVKzFGM0Q0LTFGM0UwLFUrMUYzRUQsVSsxRjNGMS0xRjNGMyxVKzFGM0Y1LTFGM0Y3LFUrMUY0MDgsVSsxRjQxNSxVKzFGNDFGLFUrMUY0MjYsVSsxRjQzRixVKzFGNDQxLTFGNDQyLFUrMUY0NDQsVSsxRjQ0Ni0xRjQ0OSxVKzFGNDRDLTFGNDRFLFUrMUY0NTMsVSsxRjQ2QSxVKzFGNDdELFUrMUY0QTMsVSsxRjRCMCxVKzFGNEIzLFUrMUY0QjksVSsxRjRCQixVKzFGNEJGLFUrMUY0QzgtMUY0Q0IsVSsxRjRENixVKzFGNERBLFUrMUY0REYsVSsxRjRFMy0xRjRFNixVKzFGNEVBLTFGNEVELFUrMUY0RjcsVSsxRjRGOS0xRjRGQixVKzFGNEZELTFGNEZFLFUrMUY1MDMsVSsxRjUwNy0xRjUwQixVKzFGNTBELFUrMUY1MTItMUY1MTMsVSsxRjUzRS0xRjU0QSxVKzFGNTRGLTFGNUZBLFUrMUY2MTAsVSsxRjY1MC0xRjY3RixVKzFGNjg3LFUrMUY2OEQsVSsxRjY5MSxVKzFGNjk0LFUrMUY2OTgsVSsxRjZBRCxVKzFGNkIyLFUrMUY2QjktMUY2QkEsVSsxRjZCQyxVKzFGNkM2LTFGNkNGLFUrMUY2RDMtMUY2RDcsVSsxRjZFMC0xRjZFQSxVKzFGNkYwLTFGNkYzLFUrMUY2RjctMUY2RkMsVSsxRjcwMC0xRjdGRixVKzFGODAwLTFGODBCLFUrMUY4MTAtMUY4NDcsVSsxRjg1MC0xRjg1OSxVKzFGODYwLTFGODg3LFUrMUY4OTAtMUY4QUQsVSsxRjhCMC0xRjhCQixVKzFGOEMwLTFGOEMxLFUrMUY5MDAtMUY5MEIsVSsxRjkzQixVKzFGOTQ2LFUrMUY5ODQsVSsxRjk5NixVKzFGOUU5LFUrMUZBMDAtMUZBNkYsVSsxRkE3MC0xRkE3QyxVKzFGQTgwLTFGQTg5LFUrMUZBOEYtMUZBQzYsVSsxRkFDRS0xRkFEQyxVKzFGQURGLTFGQUU5LFUrMUZBRjAtMUZBRjgsVSsxRkIwMC0xRkJGRjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzT1VCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDEwMi0wMTAzLFUrMDExMC0wMTExLFUrMDEyOC0wMTI5LFUrMDE2OC0wMTY5LFUrMDFBMC0wMUExLFUrMDFBRi0wMUIwLFUrMDMwMC0wMzAxLFUrMDMwMy0wMzA0LFUrMDMwOC0wMzA5LFUrMDMyMyxVKzAzMjksVSsxRUEwLTFFRjksVSsyMEFCO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYTNLVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMTAwLTAyQkEsVSswMkJELTAyQzUsVSswMkM3LTAyQ0MsVSswMkNFLTAyRDcsVSswMkRELTAyRkYsVSswMzA0LFUrMDMwOCxVKzAzMjksVSsxRDAwLTFEQkYsVSsxRTAwLTFFOUYsVSsxRUYyLTFFRkYsVSsyMDIwLFUrMjBBMC0yMEFCLFUrMjBBRC0yMEMwLFUrMjExMyxVKzJDNjAtMkM3RixVK0E3MjAtQTdGRjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzeVVCQS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAwMDAtMDBGRixVKzAxMzEsVSswMTUyLTAxNTMsVSswMkJCLTAyQkMsVSswMkM2LFUrMDJEQSxVKzAyREMsVSswMzA0LFUrMDMwOCxVKzAzMjksVSsyMDAwLTIwNkYsVSsyMEFDLFUrMjEyMixVKzIxOTEsVSsyMTkzLFUrMjIxMixVKzIyMTUsVStGRUZGLFUrRkZGRDt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzR1VCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDQ2MC0wNTJGLFUrMUM4MC0xQzhBLFUrMjBCNCxVKzJERTAtMkRGRixVK0E2NDAtQTY5RixVK0ZFMkUtRkUyRjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzaVVCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDMwMSxVKzA0MDAtMDQ1RixVKzA0OTAtMDQ5MSxVKzA0QjAtMDRCMSxVKzIxMTY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3RyZXRjaDoxMDAlO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM0NVQkdFZS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzFGMDAtMUZGRjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzLVVCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDM3MC0wMzc3LFUrMDM3QS0wMzdGLFUrMDM4NC0wMzhBLFUrMDM4QyxVKzAzOEUtMDNBMSxVKzAzQTMtMDNGRjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWF3Q1VCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDMwMi0wMzAzLFUrMDMwNSxVKzAzMDctMDMwOCxVKzAzMTAsVSswMzEyLFUrMDMxNSxVKzAzMUEsVSswMzI2LTAzMjcsVSswMzJDLFUrMDMyRi0wMzMwLFUrMDMzMi0wMzMzLFUrMDMzOCxVKzAzM0EsVSswMzQ2LFUrMDM0RCxVKzAzOTEtMDNBMSxVKzAzQTMtMDNBOSxVKzAzQjEtMDNDOSxVKzAzRDEsVSswM0Q1LTAzRDYsVSswM0YwLTAzRjEsVSswM0Y0LTAzRjUsVSsyMDE2LTIwMTcsVSsyMDM0LTIwMzgsVSsyMDNDLFUrMjA0MCxVKzIwNDMsVSsyMDQ3LFUrMjA1MCxVKzIwNTcsVSsyMDVGLFUrMjA3MC0yMDcxLFUrMjA3NC0yMDhFLFUrMjA5MC0yMDlDLFUrMjBEMC0yMERDLFUrMjBFMSxVKzIwRTUtMjBFRixVKzIxMDAtMjExMixVKzIxMTQtMjExNSxVKzIxMTctMjEyMSxVKzIxMjMtMjE0RixVKzIxOTAsVSsyMTkyLFUrMjE5NC0yMUFFLFUrMjFCMC0yMUU1LFUrMjFGMS0yMUYyLFUrMjFGNC0yMjExLFUrMjIxMy0yMjE0LFUrMjIxNi0yMkZGLFUrMjMwOC0yMzBCLFUrMjMxMCxVKzIzMTksVSsyMzFDLTIzMjEsVSsyMzM2LTIzN0EsVSsyMzdDLFUrMjM5NSxVKzIzOUItMjNCNyxVKzIzRDAsVSsyM0RDLTIzRTEsVSsyNDc0LTI0NzUsVSsyNUFGLFUrMjVCMyxVKzI1QjcsVSsyNUJELFUrMjVDMSxVKzI1Q0EsVSsyNUNDLFUrMjVGQixVKzI2NkQtMjY2RixVKzI3QzAtMjdGRixVKzI5MDAtMkFGRixVKzJCMEUtMkIxMSxVKzJCMzAtMkI0QyxVKzJCRkUsVSszMDMwLFUrRkY1QixVK0ZGNUQsVSsxRDQwMC0xRDdGRixVKzFFRTAwLTFFRUZGO31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0cmV0Y2g6MTAwJTtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjQ4L0tGTzdDbnFFdTkyRnIxTUU3a1NuNjZhR0xkVHlsVUFNYXhLVUJHRWUud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMDAxLTAwMEMsVSswMDBFLTAwMUYsVSswMDdGLTAwOUYsVSsyMERELTIwRTAsVSsyMEUyLTIwRTQsVSsyMTUwLTIxOEYsVSsyMTkwLFUrMjE5MixVKzIxOTQtMjE5OSxVKzIxQUYsVSsyMUU2LTIxRjAsVSsyMUYzLFUrMjIxOC0yMjE5LFUrMjI5OSxVKzIyQzQtMjJDNixVKzIzMDAtMjQzRixVKzI0NDAtMjQ0QSxVKzI0NjAtMjRGRixVKzI1QTAtMjdCRixVKzI4MDAtMjhGRixVKzI5MjEtMjkyMixVKzI5ODEsVSsyOUJGLFUrMjlFQixVKzJCMDAtMkJGRixVKzREQzAtNERGRixVK0ZGRjktRkZGQixVKzEwMTQwLTEwMThFLFUrMTAxOTAtMTAxOUMsVSsxMDFBMCxVKzEwMUQwLTEwMUZELFUrMTAyRTAtMTAyRkIsVSsxMEU2MC0xMEU3RSxVKzFEMkMwLTFEMkQzLFUrMUQyRTAtMUQzN0YsVSsxRjAwMC0xRjBGRixVKzFGMTAwLTFGMUFELFUrMUYxRTYtMUYxRkYsVSsxRjMwRC0xRjMwRixVKzFGMzE1LFUrMUYzMUMsVSsxRjMxRSxVKzFGMzIwLTFGMzJDLFUrMUYzMzYsVSsxRjM3OCxVKzFGMzdELFUrMUYzODIsVSsxRjM5My0xRjM5RixVKzFGM0E3LTFGM0E4LFUrMUYzQUMtMUYzQUYsVSsxRjNDMixVKzFGM0M0LTFGM0M2LFUrMUYzQ0EtMUYzQ0UsVSsxRjNENC0xRjNFMCxVKzFGM0VELFUrMUYzRjEtMUYzRjMsVSsxRjNGNS0xRjNGNyxVKzFGNDA4LFUrMUY0MTUsVSsxRjQxRixVKzFGNDI2LFUrMUY0M0YsVSsxRjQ0MS0xRjQ0MixVKzFGNDQ0LFUrMUY0NDYtMUY0NDksVSsxRjQ0Qy0xRjQ0RSxVKzFGNDUzLFUrMUY0NkEsVSsxRjQ3RCxVKzFGNEEzLFUrMUY0QjAsVSsxRjRCMyxVKzFGNEI5LFUrMUY0QkIsVSsxRjRCRixVKzFGNEM4LTFGNENCLFUrMUY0RDYsVSsxRjREQSxVKzFGNERGLFUrMUY0RTMtMUY0RTYsVSsxRjRFQS0xRjRFRCxVKzFGNEY3LFUrMUY0RjktMUY0RkIsVSsxRjRGRC0xRjRGRSxVKzFGNTAzLFUrMUY1MDctMUY1MEIsVSsxRjUwRCxVKzFGNTEyLTFGNTEzLFUrMUY1M0UtMUY1NEEsVSsxRjU0Ri0xRjVGQSxVKzFGNjEwLFUrMUY2NTAtMUY2N0YsVSsxRjY4NyxVKzFGNjhELFUrMUY2OTEsVSsxRjY5NCxVKzFGNjk4LFUrMUY2QUQsVSsxRjZCMixVKzFGNkI5LTFGNkJBLFUrMUY2QkMsVSsxRjZDNi0xRjZDRixVKzFGNkQzLTFGNkQ3LFUrMUY2RTAtMUY2RUEsVSsxRjZGMC0xRjZGMyxVKzFGNkY3LTFGNkZDLFUrMUY3MDAtMUY3RkYsVSsxRjgwMC0xRjgwQixVKzFGODEwLTFGODQ3LFUrMUY4NTAtMUY4NTksVSsxRjg2MC0xRjg4NyxVKzFGODkwLTFGOEFELFUrMUY4QjAtMUY4QkIsVSsxRjhDMC0xRjhDMSxVKzFGOTAwLTFGOTBCLFUrMUY5M0IsVSsxRjk0NixVKzFGOTg0LFUrMUY5OTYsVSsxRjlFOSxVKzFGQTAwLTFGQTZGLFUrMUZBNzAtMUZBN0MsVSsxRkE4MC0xRkE4OSxVKzFGQThGLTFGQUM2LFUrMUZBQ0UtMUZBREMsVSsxRkFERi0xRkFFOSxVKzFGQUYwLTFGQUY4LFUrMUZCMDAtMUZCRkY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3RyZXRjaDoxMDAlO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM09VQkdFZS53b2ZmMilmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAxMDItMDEwMyxVKzAxMTAtMDExMSxVKzAxMjgtMDEyOSxVKzAxNjgtMDE2OSxVKzAxQTAtMDFBMSxVKzAxQUYtMDFCMCxVKzAzMDAtMDMwMSxVKzAzMDMtMDMwNCxVKzAzMDgtMDMwOSxVKzAzMjMsVSswMzI5LFUrMUVBMC0xRUY5LFUrMjBBQjt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7Zm9udC1zdHJldGNoOjEwMCU7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3Y0OC9LRk83Q25xRXU5MkZyMU1FN2tTbjY2YUdMZFR5bFVBTWEzS1VCR0VlLndvZmYyKWZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDEwMC0wMkJBLFUrMDJCRC0wMkM1LFUrMDJDNy0wMkNDLFUrMDJDRS0wMkQ3LFUrMDJERC0wMkZGLFUrMDMwNCxVKzAzMDgsVSswMzI5LFUrMUQwMC0xREJGLFUrMUUwMC0xRTlGLFUrMUVGMi0xRUZGLFUrMjAyMCxVKzIwQTAtMjBBQixVKzIwQUQtMjBDMCxVKzIxMTMsVSsyQzYwLTJDN0YsVStBNzIwLUE3RkY7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3RyZXRjaDoxMDAlO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92NDgvS0ZPN0NucUV1OTJGcjFNRTdrU242NmFHTGRUeWxVQU1hM3lVQkEud29mZjIpZm9ybWF0KCd3b2ZmMicpO3VuaWNvZGUtcmFuZ2U6VSswMDAwLTAwRkYsVSswMTMxLFUrMDE1Mi0wMTUzLFUrMDJCQi0wMkJDLFUrMDJDNixVKzAyREEsVSswMkRDLFUrMDMwNCxVKzAzMDgsVSswMzI5LFUrMjAwMC0yMDZGLFUrMjBBQyxVKzIxMjIsVSsyMTkxLFUrMjE5MyxVKzIyMTIsVSsyMjE1LFUrRkVGRixVK0ZGRkQ7fTwvc3R5bGU+PHNjcmlwdCBuYW1lPSJ3d3ctcm9ib3RvIiBub25jZT0iTW5kdUNPYjRHX09BZjI3cWxTZHRzdyI+aWYgKGRvY3VtZW50LmZvbnRzICYmIGRvY3VtZW50LmZvbnRzLmxvYWQpIHtkb2N1bWVudC5mb250cy5sb2FkKCI0MDAgMTBwdCBSb2JvdG8iLCAiRSIpOyBkb2N1bWVudC5mb250cy5sb2FkKCI1MDAgMTBwdCBSb2JvdG8iLCAiRSIpO308L3NjcmlwdD48bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9zL3BsYXllci83YTc5NjljMi93d3ctcGxheWVyLmNzcyIgbmFtZT0id3d3LXBsYXllciIgbm9uY2U9IlFpOGVNMC1rNFoxT3JSTVQ3dUhCTmciPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3MvXy95dGVtYmVkcy9fL3NzL2s9eXRlbWJlZHMuYmFzZS5OeG5pdXVaRVRady5MLkY0Lk8vYW09QUFBQWdBL2Q9MS9icj0xL3JzPUFHS015d0d4NHR4aEZKaGNydXRLWXNmUG1TNG1GYzZvSlEvbT1yb290LGJhc2UiIG5hbWU9ImVtYmVkLXVpIiBub25jZT0iUWk4ZU0wLWs0WjFPclJNVDd1SEJOZyI+PHN0eWxlIG5vbmNlPSJRaThlTTAtazRaMU9yUk1UN3VIQk5nIj5odG1sIHtvdmVyZmxvdzogaGlkZGVuO31ib2R5IHtmb250OiAxMnB4IFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7IGJhY2tncm91bmQtY29sb3I6ICMwMDA7IGNvbG9yOiAjZmZmOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogYWJzb2x1dGU7IG1hcmdpbjogMDsgcGFkZGluZzogMDt9I3BsYXllciB7d2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTt9aDEge3RleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICNmZmY7fWgzIHttYXJnaW4tdG9wOiA2cHg7IG1hcmdpbi1ib3R0b206IDNweDt9LnBsYXllci11bmF2YWlsYWJsZSB7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7IHBhZGRpbmc6IDI1cHg7IGZvbnQtc2l6ZTogMTNweDsgYmFja2dyb3VuZDogdXJsKC9pbWcvbWVoNy5wbmcpIDUwJSA2NSUgbm8tcmVwZWF0O30ucGxheWVyLXVuYXZhaWxhYmxlIC5tZXNzYWdlIHt0ZXh0LWFsaWduOiBsZWZ0OyBtYXJnaW46IDAgLTVweCAxNXB4OyBwYWRkaW5nOiAwIDVweCAxNHB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzg4ODsgZm9udC1zaXplOiAxOXB4OyBmb250LXdlaWdodDogbm9ybWFsO30ucGxheWVyLXVuYXZhaWxhYmxlIGEge2NvbG9yOiAjMTY3YWM2OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7fTwvc3R5bGU+PHNjcmlwdCBub25jZT0iTW5kdUNPYjRHX09BZjI3cWxTZHRzdyI+dmFyIHl0Y3NpPXtndDpmdW5jdGlvbihuKXtuPShufHwiIikrImRhdGFfIjtyZXR1cm4geXRjc2lbbl18fCh5dGNzaVtuXT17dGljazp7fSxpbmZvOnt9LGdlbDp7cHJlTG9nZ2VkR2VsSW5mb3M6W119fSl9LG5vdzp3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcmJndpbmRvdy5wZXJmb3JtYW5jZS5ub3cmJndpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0P2Z1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0K3dpbmRvdy5wZXJmb3JtYW5jZS5ub3coKX06ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX0sdGljazpmdW5jdGlvbihsLHQsbil7dmFyIHRpY2tzPXl0Y3NpLmd0KG4pLnRpY2s7dmFyIHY9dHx8eXRjc2kubm93KCk7aWYodGlja3NbbF0pe3RpY2tzWyJfIitsXT10aWNrc1siXyIrbF18fFt0aWNrc1tsXV07dGlja3NbIl8iK2xdLnB1c2godil9dGlja3NbbF09CnZ9LGluZm86ZnVuY3Rpb24oayx2LG4pe3l0Y3NpLmd0KG4pLmluZm9ba109dn0saW5mb0dlbDpmdW5jdGlvbihwLG4pe3l0Y3NpLmd0KG4pLmdlbC5wcmVMb2dnZWRHZWxJbmZvcy5wdXNoKHApfSxzZXRTdGFydDpmdW5jdGlvbih0LG4pe3l0Y3NpLnRpY2soIl9zdGFydCIsdCxuKX19OwooZnVuY3Rpb24odyxkKXtmdW5jdGlvbiBpc0dlY2tvKCl7aWYoIXcubmF2aWdhdG9yKXJldHVybiBmYWxzZTt0cnl7aWYody5uYXZpZ2F0b3IudXNlckFnZW50RGF0YSYmdy5uYXZpZ2F0b3IudXNlckFnZW50RGF0YS5icmFuZHMmJncubmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuYnJhbmRzLmxlbmd0aCl7dmFyIGJyYW5kcz13Lm5hdmlnYXRvci51c2VyQWdlbnREYXRhLmJyYW5kczt2YXIgaT0wO2Zvcig7aTxicmFuZHMubGVuZ3RoO2krKylpZihicmFuZHNbaV0mJmJyYW5kc1tpXS5icmFuZD09PSJGaXJlZm94IilyZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2V9fWNhdGNoKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlO30pfWlmKCF3Lm5hdmlnYXRvci51c2VyQWdlbnQpcmV0dXJuIGZhbHNlO3ZhciB1YT13Lm5hdmlnYXRvci51c2VyQWdlbnQ7cmV0dXJuIHVhLmluZGV4T2YoIkdlY2tvIik+MCYmdWEudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKTwwJiZ1YS5pbmRleE9mKCJFZGdlIik8CjAmJnVhLmluZGV4T2YoIlRyaWRlbnQiKTwwJiZ1YS5pbmRleE9mKCJNU0lFIik8MH15dGNzaS5zZXRTdGFydCh3LnBlcmZvcm1hbmNlP3cucGVyZm9ybWFuY2UudGltaW5nLnJlc3BvbnNlU3RhcnQ6bnVsbCk7dmFyIGlzUHJlcmVuZGVyPShkLnZpc2liaWxpdHlTdGF0ZXx8ZC53ZWJraXRWaXNpYmlsaXR5U3RhdGUpPT0icHJlcmVuZGVyIjt2YXIgdk5hbWU9IWQudmlzaWJpbGl0eVN0YXRlJiZkLndlYmtpdFZpc2liaWxpdHlTdGF0ZT8id2Via2l0dmlzaWJpbGl0eWNoYW5nZSI6InZpc2liaWxpdHljaGFuZ2UiO2lmKGlzUHJlcmVuZGVyKXt2YXIgc3RhcnRUaWNrPWZ1bmN0aW9uKCl7eXRjc2kuc2V0U3RhcnQoKTtkLnJlbW92ZUV2ZW50TGlzdGVuZXIodk5hbWUsc3RhcnRUaWNrKX07ZC5hZGRFdmVudExpc3RlbmVyKHZOYW1lLHN0YXJ0VGljayxmYWxzZSl9aWYoZC5hZGRFdmVudExpc3RlbmVyKWQuYWRkRXZlbnRMaXN0ZW5lcih2TmFtZSxmdW5jdGlvbigpe3l0Y3NpLnRpY2soInZjIil9LApmYWxzZSk7aWYoaXNHZWNrbygpKXt2YXIgaXNIaWRkZW49KGQudmlzaWJpbGl0eVN0YXRlfHxkLndlYmtpdFZpc2liaWxpdHlTdGF0ZSk9PSJoaWRkZW4iO2lmKGlzSGlkZGVuKXl0Y3NpLnRpY2soInZjIil9dmFyIHNsdD1mdW5jdGlvbihlbCx0KXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIG49eXRjc2kubm93KCk7ZWwubG9hZFRpbWU9bjtpZihlbC5zbHQpZWwuc2x0KCl9LHQpfTt3Ll9feXRSSUw9ZnVuY3Rpb24oZWwpe2lmKCFlbC5nZXRBdHRyaWJ1dGUoImRhdGEtdGh1bWIiKSlpZih3LnJlcXVlc3RBbmltYXRpb25GcmFtZSl3LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3NsdChlbCwwKX0pO2Vsc2Ugc2x0KGVsLDE2KX19KSh3aW5kb3csZG9jdW1lbnQpOwo8L3NjcmlwdD48c2NyaXB0IG5vbmNlPSJNbmR1Q09iNEdfT0FmMjdxbFNkdHN3Ij52YXIgeXRjZmc9e2Q6ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93Lnl0JiZ5dC5jb25maWdffHx5dGNmZy5kYXRhX3x8KHl0Y2ZnLmRhdGFfPXt9KX0sZ2V0OmZ1bmN0aW9uKGssbyl7cmV0dXJuIGsgaW4geXRjZmcuZCgpP3l0Y2ZnLmQoKVtrXTpvfSxzZXQ6ZnVuY3Rpb24oKXt2YXIgYT1hcmd1bWVudHM7aWYoYS5sZW5ndGg+MSl5dGNmZy5kKClbYVswXV09YVsxXTtlbHNle3ZhciBrO2ZvcihrIGluIGFbMF0peXRjZmcuZCgpW2tdPWFbMF1ba119fX07Cnl0Y2ZnLnNldCh7IkNMSUVOVF9DQU5BUllfU1RBVEUiOiJub25lIiwiREVWSUNFIjoiY2JyXHUwMDNkRmlyZWZveFx1MDAyNmNicnZlclx1MDAzZDEzNC4wXHUwMDI2Y2VuZ1x1MDAzZEdlY2tvXHUwMDI2Y2VuZ3Zlclx1MDAzZDEzNC4wXHUwMDI2Y29zXHUwMDNkV2luZG93c1x1MDAyNmNvc3Zlclx1MDAzZDEwLjBcdTAwMjZjcGxhdGZvcm1cdTAwM2RERVNLVE9QIiwiRVZFTlRfSUQiOiJmTXRtYXA3dURlYmNxN1lQMm9mWkVBIiwiRVhQRVJJTUVOVF9GTEFHUyI6eyJhYl9kZXRfYXBiX2IiOnRydWUsImFiX2RldF9hcG0iOnRydWUsImFiX2RldF9lbF9oIjp0cnVlLCJhY3Rpb25fY29tcGFuaW9uX2NlbnRlcl9hbGlnbl9kZXNjcmlwdGlvbiI6dHJ1ZSwiYWxsb3dfc2tpcF9uZXR3b3JrbGVzcyI6dHJ1ZSwiYWx3YXlzX3NlbmRfYW5kX3dyaXRlIjp0cnVlLCJhdHRfd2ViX3JlY29yZF9tZXRyaWNzIjp0cnVlLCJhdHRtdXNpIjp0cnVlLCJjM19lbmFibGVfYnV0dG9uX2ltcHJlc3Npb25fbG9nZ2luZyI6dHJ1ZSwiYzNfd2F0Y2hfcGFnZV9jb21wb25lbnQiOnRydWUsImNhbmNlbF9wZW5kaW5nX25hdnMiOnRydWUsImNsaWVudF91aV9lbmFibGVfbXVsdGlfdHJhY2tfYXVkaW9fb25fd2ViX2VtYmVkZGVkX3BsYXllciI6dHJ1ZSwiY29uZmlnX2FnZV9yZXBvcnRfa2lsbHN3aXRjaCI6dHJ1ZSwiY293X29wdGltaXplX2lkb21fY29tcGF0Ijp0cnVlLCJjc2lfb25fZ2VsIjp0cnVlLCJkZWR1cHBpbmdfc2VydmVyX3ZlIjp0cnVlLCJkZWxoaV9td2ViX2NvbG9yZnVsX3NkIjp0cnVlLCJkZWxoaV9td2ViX2NvbG9yZnVsX3NkX3YyIjp0cnVlLCJkZXByZWNhdGVfcGFpcl9zZXJ2bGV0X2VuYWJsZWQiOnRydWUsImRlc2t0b3Bfc3BhcmtsZXNfbGlnaHRfY3RhX2J1dHRvbiI6dHJ1ZSwiZGlzYWJsZV9jaGlsZF9ub2RlX2F1dG9fZm9ybWF0dGVkX3N0cmluZ3MiOnRydWUsImRpc2FibGVfbG9nX3RvX3Zpc2l0b3JfbGF5ZXIiOnRydWUsImRpc2FibGVfbWluaV9hcHBfY29udGFpbmVyX3dlYl92aWV3X2luc2V0cyI6dHJ1ZSwiZGlzYWJsZV9wYWNmX2xvZ2dpbmdfZm9yX21lbW9yeV9saW1pdGVkX3R2Ijp0cnVlLCJlbWJlZHNfZGVza3RvZmZfbm9ubW9iaWxlX2VsaWdpYmxlIjp0cnVlLCJlbWJlZHNfZGVza3RvZmZfbm9ubW9iaWxlX2VuYWJsZWQiOnRydWUsImVtYmVkc19kZXNrdG9mZl9zYXZlX3VzZXJfdm9sdW1lIjp0cnVlLCJlbWJlZHNfZGVza3RvcF9lbmFibGVfdm9sdW1lX3NsaWRlciI6dHJ1ZSwiZW1iZWRzX2VuYWJsZV9jaGFubmVsX3N1YnNjcmliZV9kZXByZWNhdGlvbiI6dHJ1ZSwiZW1iZWRzX2VuYWJsZV9kZWxheV9jb250cm9sc19oaWRlIjp0cnVlLCJlbWJlZHNfZW5hYmxlX2VpZF9lbmZvcmNlbWVudF9mb3JfeW91dHViZSI6dHJ1ZSwiZW1iZWRzX2VuYWJsZV9lbWMzZHNfcGZwIjp0cnVlLCJlbWJlZHNfbXV0ZWRfYXV0b3BsYXlfc291bmRfZml4Ijp0cnVlLCJlbWJlZHNfc2VydmVfZXM2X2NsaWVudCI6dHJ1ZSwiZW1iZWRzX3dlYl91cGRhdGVkX3Nob3J0c19kZWZpbml0aW9uX2ZpeCI6dHJ1ZSwiZW5hYmxlX2ExMXlfZm9jdXNfZml4X2Zvcl9tYWNfcGFuZWxfb25fZGVza3RvcCI6dHJ1ZSwiZW5hYmxlX2FjY2Vzc19jb2RlX3NlcnZpY2VfcnBjIjp0cnVlLCJlbmFibGVfYWN0aXZlX3ZpZXdfZGlzcGxheV9hZF9yZW5kZXJlcl93ZWJfaG9tZSI6dHJ1ZSwiZW5hYmxlX2FpX3NlYXJjaF9pbm5lcnR1YmVfbTBfZml4ZXMiOnRydWUsImVuYWJsZV9hbmRyb2lkX3dlYl92aWV3X3RvcF9pbnNldHNfYnVnZml4Ijp0cnVlLCJlbmFibGVfYXR0ZW50aW9uX2xvZ2dpbmdfbWVhc3VyZV9vbl9zaG93biI6dHJ1ZSwiZW5hYmxlX2F1X3UxNl92ZXJpZnlfYWdlX3BhZ2UiOnRydWUsImVuYWJsZV9hdXRvbW90aXZlX2Zvcm1fZmFjdG9yX2NoZWNrIjp0cnVlLCJlbmFibGVfY2xpZW50X3NsaV9sb2dnaW5nIjp0cnVlLCJlbmFibGVfY2xpZW50X3N0cmVhbXpfd2ViIjp0cnVlLCJlbmFibGVfY2xpZW50X3ZlX3NwZWMiOnRydWUsImVuYWJsZV9jbG91ZF9zYXZlX2Vycm9yX3BvcHVwX2FmdGVyX3JldHJ5Ijp0cnVlLCJlbmFibGVfY3VzdG9tX3NjcnViYmVyX3YyIjp0cnVlLCJlbmFibGVfZGFpX3NkZl9oNV9wcmVyb2xsIjp0cnVlLCJlbmFibGVfZGF0YXN5bmNfaWRfaGVhZGVyX2luX3dlYl92c3NfcGluZ3MiOnRydWUsImVuYWJsZV9kZWZhdWx0X21vbm9fY3RhX21pZ3JhdGlvbl93ZWJfY2xpZW50Ijp0cnVlLCJlbmFibGVfZG9ja2VkX2NoYXRfbWVzc2FnZXMiOnRydWUsImVuYWJsZV9kcm9wX3NoYWRvd19leHBlcmltZW50Ijp0cnVlLCJlbmFibGVfZW1iZWRzX25ld19jYXB0aW9uX2xhbmd1YWdlX3BpY2tlciI6dHJ1ZSwiZW5hYmxlX2VuZGVtaWNfaGlnaF9jY3Zfc21lYXJpbmdfaDUiOnRydWUsImVuYWJsZV9lbnRpdHlfc3RvcmVfZnJvbV9kZXBlbmRlbmN5X2luamVjdGlvbiI6dHJ1ZSwiZW5hYmxlX2lubGluZV9tdXRlZF9wbGF5YmFja19vbl93ZWJfc2VhcmNoIjp0cnVlLCJlbmFibGVfaW5saW5lX211dGVkX3BsYXliYWNrX29uX3dlYl9zZWFyY2hfZm9yX3ZkYyI6dHJ1ZSwiZW5hYmxlX2lubGluZV9tdXRlZF9wbGF5YmFja19vbl93ZWJfc2VhcmNoX2Zvcl92ZGNiIjp0cnVlLCJlbmFibGVfaXNfZXh0ZW5kZWRfbW9uaXRvcmluZyI6dHJ1ZSwiZW5hYmxlX2xvZ2dpbmdfZmlyc3RfdXNlcl9hY3Rpb25fYWZ0ZXJfZ2FtZV9yZWFkeSI6dHJ1ZSwiZW5hYmxlX2x0Y19wYXJhbV9mZXRjaF9mcm9tX2lubmVydHViZSI6dHJ1ZSwiZW5hYmxlX20wX2xvZ2dpbmdfZml4ZXMiOnRydWUsImVuYWJsZV9tZW51X3JlbmRlcmVyX2J1dHRvbl9pbl9td2ViX2hjbHIiOnRydWUsImVuYWJsZV9taW5pX2FwcF9jb21tYW5kX2hhbmRsZXJfbXdlYl9maXgiOnRydWUsImVuYWJsZV9taW5pX2d1aWRlX2Rvd25sb2Fkc19pdGVtIjp0cnVlLCJlbmFibGVfbWl4ZWRfZGlyZWN0aW9uX2Zvcm1hdHRlZF9zdHJpbmdzIjp0cnVlLCJlbmFibGVfbXdlYl9hdWRpb190cmFja19waWNrZXIiOnRydWUsImVuYWJsZV9td2ViX2tleWJvYXJkX3Nob3J0Y3V0cyI6dHJ1ZSwiZW5hYmxlX25hbWVzX2hhbmRsZXNfYWNjb3VudF9zd2l0Y2hlciI6dHJ1ZSwiZW5hYmxlX25hdGl2ZV9icmlkZ2Vfdmlld19zYXZlZF9wbGF5YWJsZXMiOnRydWUsImVuYWJsZV9uZXR3b3JrX3JlcXVlc3RfbG9nZ2luZ19vbl9nYW1lX2V2ZW50cyI6dHJ1ZSwiZW5hYmxlX25ld19wYWlkX3Byb2R1Y3RfcGxhY2VtZW50Ijp0cnVlLCJlbmFibGVfb3Blbl9pbl9uZXdfdGFiX2ljb25fZm9yX3Nob3J0X2RyX2Zvcl9kZXNrdG9wX3NlYXJjaCI6dHJ1ZSwiZW5hYmxlX29wZW5feXRfY29udGVudCI6dHJ1ZSwiZW5hYmxlX29yaWdpbl9xdWVyeV9wYXJhbWV0ZXJfYnVnZml4Ijp0cnVlLCJlbmFibGVfcGF1c2VfYWRzX29uX3l0dl9odG1sNSI6dHJ1ZSwiZW5hYmxlX3BheW1lbnRzX3B1cmNoYXNlX21hbmFnZXIiOnRydWUsImVuYWJsZV9wZHBfaWNvbl9wcmVmZXRjaCI6dHJ1ZSwiZW5hYmxlX3BsYWNlX3Bpdm90X3VybCI6dHJ1ZSwiZW5hYmxlX3BsYXlhYmxlX2NvbnRhaW5lcl9zYXZlX2J1dHRvbiI6dHJ1ZSwiZW5hYmxlX3BsYXlhYmxlX2VudGl0eV9zYXZlX21lbnVfaXRlbSI6dHJ1ZSwiZW5hYmxlX3B0Y19ob21lX2xvY2F0aW9uX29uX3dlYiI6dHJ1ZSwiZW5hYmxlX3B2X3NjcmVlbl9tb2Rlcm5fdGV4dCI6dHJ1ZSwiZW5hYmxlX3J0YV9tYW5hZ2VyIjp0cnVlLCJlbmFibGVfc2NyZWVuX21hbmFnZXJfbGF5ZXJfc2VwYXJhdGlvbiI6dHJ1ZSwiZW5hYmxlX3NkZl9jb21wYW5pb25faDUiOnRydWUsImVuYWJsZV9zZGZfZGFpX2g1X21pZHJvbGwiOnRydWUsImVuYWJsZV9zZGZfaDVfZW5kZW1pY19taWRfcG9zdF9yb2xsIjp0cnVlLCJlbmFibGVfc2RmX29uX2g1X3VucGx1Z2dlZF92b2RfbWlkcm9sbCI6dHJ1ZSwiZW5hYmxlX3NkZl9zaG9ydHNfcGxheWVyX2J5dGVzX2g1Ijp0cnVlLCJlbmFibGVfc2VuZGluZ191bndyYXBwZWRfZ2FtZV9hdWRpb19hc19zZXJpYWxpemVkX21ldGFkYXRhIjp0cnVlLCJlbmFibGVfc2V0X3ZpZGVvX2lkX2luX3Nob3J0c19sb2NrdXBfdmlld19tb2RlbCI6dHJ1ZSwiZW5hYmxlX3Nmdl9lZmZlY3RfcGl2b3RfdXJsIjp0cnVlLCJlbmFibGVfc2hvcnRzX25ld19jYXJvdXNlbCI6dHJ1ZSwiZW5hYmxlX3NraXBfYWRfZ3VpZGFuY2VfcHJvbXB0Ijp0cnVlLCJlbmFibGVfc2tpcHBhYmxlX2Fkc19mb3JfdW5wbHVnZ2VkX2FkX3BvZCI6dHJ1ZSwiZW5hYmxlX3NtZWFyaW5nX2V4cGFuc2lvbl9kYWkiOnRydWUsImVuYWJsZV9zdXBleF9td2ViX2RlbW9fd2ViZmUiOnRydWUsImVuYWJsZV90aW1lX291dF9tZXNzYWdlcyI6dHJ1ZSwiZW5hYmxlX3RpbWVsaW5lX3ZpZXdfbW9kZXJuX3RyYW5zY3JpcHRfZmUiOnRydWUsImVuYWJsZV92aWRlb19kaXNwbGF5X2NvbXBhY3RfYnV0dG9uX2dyb3VwX2Zvcl9kZXNrdG9wX3NlYXJjaCI6dHJ1ZSwiZW5hYmxlX3dlYl9kZWxoaV9pY29ucyI6dHJ1ZSwiZW5hYmxlX3dlYl9ob21lX3RvcF9sYW5kc2NhcGVfaW1hZ2VfbGF5b3V0X2xldmVsX2NsaWNrIjp0cnVlLCJlbmFibGVfd2ViX3Nob3J0c19hdWRpb190cmFjayI6dHJ1ZSwiZW5hYmxlX3dlYl90aWVyZWRfZ2VsIjp0cnVlLCJlbmFibGVfd2luZG93X2NvbnN0cmFpbmVkX2J1eV9mbG93X2RpYWxvZyI6dHJ1ZSwiZW5hYmxlX3dpel9xdWV1ZV9lZmZlY3RfYW5kX29uX2luaXRfaW5pdGlhbF9ydW5zIjp0cnVlLCJlbmFibGVfeXBjX3NwaW5uZXJzIjp0cnVlLCJlbmFibGVfeXRfYXRhX2lmcmFtZV9hdXRodXNlciI6dHJ1ZSwiZXhwb3J0X25ldHdvcmtsZXNzX29wdGlvbnMiOnRydWUsImV4cG9ydF9wbGF5ZXJfdmVyc2lvbl90b195dGNvbmZpZyI6dHJ1ZSwiZmlsbF9zaW5nbGVfdmlkZW9fd2l0aF9ub3RpZnlfdG9fbGFzciI6dHJ1ZSwiZml4X2Fkc190cmFja2luZ19mb3Jfc3dmX2NvbmZpZ19kZXByZWNhdGlvbl9td2ViIjp0cnVlLCJoNV9jb21wYW5pb25fZW5hYmxlX2FkY3BuX21hY3JvX3N1YnN0aXR1dGlvbl9mb3JfY2xpY2tfcGluZ3MiOnRydWUsImg1X2lucGxheWVyX2VuYWJsZV9hZGNwbl9tYWNyb19zdWJzdGl0dXRpb25fZm9yX2NsaWNrX3BpbmdzIjp0cnVlLCJoNV9yZXNldF9jYWNoZV9hbmRfZmlsdGVyX2JlZm9yZV91cGRhdGVfbWFzdGhlYWQiOnRydWUsImhpZGVfY2hhbm5lbF9jcmVhdGlvbl90aXRsZV9mb3JfbXdlYiI6dHJ1ZSwiaGlnaF9jY3ZfY2xpZW50X3NpZGVfY2FjaGluZ19oNSI6dHJ1ZSwiaHRtbDVfbG9nX3RyaWdnZXJfZXZlbnRzX3dpdGhfZGVidWdfZGF0YSI6dHJ1ZSwiaHRtbDVfc3NkYWlfZW5hYmxlX21lZGlhX2VuZF9jdWVfcmFuZ2UiOnRydWUsImlkYl9pbW1lZGlhdGVfY29tbWl0Ijp0cnVlLCJpbF9hdHRhY2hfY2FjaGVfbGltaXQiOnRydWUsImlsX3VzZV92aWV3X21vZGVsX2xvZ2dpbmdfY29udGV4dCI6dHJ1ZSwiaXNfYnJvd3Nlcl9zdXBwb3J0X2Zvcl93ZWJjYW1fc3RyZWFtaW5nIjp0cnVlLCJqc29uX2NvbmRlbnNlZF9yZXNwb25zZSI6dHJ1ZSwia2V2bGFyX2ZpbHRlcl91bmtub3duX3NvdXJjZSI6dHJ1ZSwia2V2bGFyX2dlbF9lcnJvcl9yb3V0aW5nIjp0cnVlLCJrZXZsYXJfdHJpbV9wbGF5ZXJfYmVoYXZpb3IiOnRydWUsImtldmxhcl93YXRjaF9jaW5lbWF0aWNzIjp0cnVlLCJsaW1pdF95dGNzaV9kZWJ1Z19hcnJheV9zaXplIjp0cnVlLCJsaXZlX2NoYXRfZW5hYmxlX3J0YV9tYW5hZ2VyIjp0cnVlLCJsb2dfY2xpY2tfd2l0aF9sYXllcl9mcm9tX2VsZW1lbnRfaW5fY29tbWFuZF9oYW5kbGVyIjp0cnVlLCJtYXdfZW5hYmxlX25ldHdvcmtfbWFjaGluZSI6dHJ1ZSwibWR4X2VuYWJsZV9wcml2YWN5X2Rpc2Nsb3N1cmVfdWkiOnRydWUsIm1keF9sb2FkX2Nhc3RfYXBpX2Jvb3RzdHJhcF9zY3JpcHQiOnRydWUsIm1lZGl1bV9wcm9ncmVzc19iYXJfbW9kaWZpY2F0aW9uIjp0cnVlLCJtb2JpbGVfYWNjb3VudF9tZW51X3JlZnJlc2giOnRydWUsIm13ZWJfYWNjb3VudF9saW5raW5nX25vYXBwIjp0cnVlLCJtd2ViX2FsbG93X21vZGVybl9zZWFyY2hfc3VnZ2VzdF9iZWhhdmlvciI6dHJ1ZSwibXdlYl9hbmltYXRlZF9hY3Rpb25zIjp0cnVlLCJtd2ViX2FwcF91cHNlbGxfYnV0dG9uX2RpcmVjdF90b19hcHAiOnRydWUsIm13ZWJfYmFkZ2Vfc2hhcGVfZGVmcmFnIjp0cnVlLCJtd2ViX2MzX2FwcF9wcm9tb19lbmFibGVfcmVmZXJyaW5nX2FwcCI6dHJ1ZSwibXdlYl9jM19lbmFibGVfYWRhcHRpdmVfc2lnbmFscyI6dHJ1ZSwibXdlYl9jM19saWJyYXJ5X3BhZ2VfZW5hYmxlX3JlY2VudF9zaGVsZiI6dHJ1ZSwibXdlYl9jM19tZW51X3NpZ25hbHNfcmVuZGVyIjp0cnVlLCJtd2ViX2MzX3JlbW92ZV93ZWJfbmF2aWdhdGlvbl9lbmRwb2ludF9kYXRhIjp0cnVlLCJtd2ViX2MzX3RvYXN0X3VzZV93aXpfcmVhY3RpdmVfcmVuZGVyIjp0cnVlLCJtd2ViX2MzX3VzZV9jYW5vbmljYWxfZnJvbV9wbGF5ZXJfcmVzcG9uc2UiOnRydWUsIm13ZWJfY2FydmVfb3V0X2lvc19hcHBfc3RvcmVfcmVkaXJlY3QiOnRydWUsIm13ZWJfY2FydmVfb3V0X3Rlcm1zX3BhZ2VzIjp0cnVlLCJtd2ViX2NpbmVtYXRpY193YXRjaCI6dHJ1ZSwibXdlYl9jb21tYW5kX2hhbmRsZXIiOnRydWUsIm13ZWJfZGVidWdfc3RpY2t5X3NldHRpbmdzIjp0cnVlLCJtd2ViX2RlbGF5X3dhdGNoX2luaXRpYWxfZGF0YSI6dHJ1ZSwibXdlYl9kaXNhYmxlX3NlYXJjaGJhcl9zY3JvbGwiOnRydWUsIm13ZWJfZW5hYmxlX2NsaWNrX3RvX3BsYXlfcGF1c2UiOnRydWUsIm13ZWJfZW5hYmxlX2NvbG9yZnVsX2FpX3N1bW1hcnkiOnRydWUsIm13ZWJfZW5hYmxlX2R5bmFtaWNfZG91YmxlX3RhcF90b19saWtlIjp0cnVlLCJtd2ViX2VuYWJsZV9maW5lX3NjcnViYmluZ19mb3JfcmVjcyI6dHJ1ZSwibXdlYl9lbmFibGVfa2V0b19iYXRjaF9wbGF5ZXJfZnVsbHNjcmVlbiI6dHJ1ZSwibXdlYl9lbmFibGVfa2V0b19iYXRjaF9wbGF5ZXJfcHJvZ3Jlc3NfYmFyIjp0cnVlLCJtd2ViX2VuYWJsZV9rZXRvX2JhdGNoX3BsYXllcl90b29sdGlwcyI6dHJ1ZSwibXdlYl9lbmFibGVfa2V0b19jb250ZW50Ijp0cnVlLCJtd2ViX2VuYWJsZV9sb2NrdXBfdmlld19tb2RlbF9mb3JfdWNwIjp0cnVlLCJtd2ViX2VuYWJsZV9taXhfcGFuZWxfdGl0bGVfbWV0YWRhdGEiOnRydWUsIm13ZWJfZW5hYmxlX21vcmVfY2h1bmtzIjp0cnVlLCJtd2ViX2VuYWJsZV9tb3JlX2RyYXdlciI6dHJ1ZSwibXdlYl9lbmFibGVfb3B0aW9uYWxfZnVsbHNjcmVlbl9sYW5kc2NhcGVfbG9ja2luZyI6dHJ1ZSwibXdlYl9lbmFibGVfb3ZlcmxheV90b3VjaF9tYW5hZ2VyIjp0cnVlLCJtd2ViX2VuYWJsZV9wb3J0cmFpdF9mdWxsc2NyZWVuX2FjdGlvbnMiOnRydWUsIm13ZWJfZW5hYmxlX3ByZW1pdW1fY2FydmVfb3V0X2ZpeCI6dHJ1ZSwibXdlYl9lbmFibGVfcmVmcmVzaF9kZXRlY3Rpb24iOnRydWUsIm13ZWJfZW5hYmxlX3NlYXJjaF9pbXAiOnRydWUsIm13ZWJfZW5hYmxlX3Nob3J0c192aWRlb19wcmVsb2FkIjp0cnVlLCJtd2ViX2VuYWJsZV90d29fbGluZV90aXRsZV9vbl9zaG9ydHMiOnRydWUsIm13ZWJfZW5hYmxlX3ZhcmlzcGVlZF9jb250cm9sbGVyIjp0cnVlLCJtd2ViX2VuYWJsZV92aWRlb19sb29wX3RvZ2dsZSI6dHJ1ZSwibXdlYl9lbmFibGVfd2F0Y2hfZmVlZF9pbmZpbml0ZV9zY3JvbGwiOnRydWUsIm13ZWJfZml4X2NvbGRfbG9hZF9yZXNwb25zZV9hY3Rpb25zIjp0cnVlLCJtd2ViX2ZpeF9tb25pdG9yX3Zpc2liaWxpdHlfYWZ0ZXJfcmVuZGVyIjp0cnVlLCJtd2ViX2ZvcmNlX2lvc19mYWxsYmFja190b19uYXRpdmVfY29udHJvbCI6dHJ1ZSwibXdlYl9mcF9hdXRvX2Z1bGxzY3JlZW4iOnRydWUsIm13ZWJfZnBfZW5hYmxlX3Nob3J0c19zd2lwZV9sb2dnaW5nIjp0cnVlLCJtd2ViX2Z1bGxzY3JlZW5fY29udHJvbHMiOnRydWUsIm13ZWJfZnVsbHNjcmVlbl9jb250cm9sc19hY3Rpb25fYnV0dG9ucyI6dHJ1ZSwibXdlYl9mdWxsc2NyZWVuX3dhdGNoX3N5c3RlbSI6dHJ1ZSwibXdlYl9mdWxseV9yZWFjdGl2ZV9jYiI6dHJ1ZSwibXdlYl9ob21lX3JlYWN0aXZlX3Nob3J0cyI6dHJ1ZSwibXdlYl9pbm5lcnR1YmVfc2VhcmNoX2NvbW1hbmQiOnRydWUsIm13ZWJfa2Fpb3NfZW5hYmxlX2F1dG9wbGF5X3N3aXRjaF92aWV3X21vZGVsIjp0cnVlLCJtd2ViX2xhbmdfaW5faHRtbCI6dHJ1ZSwibXdlYl9saWtlX2J1dHRvbl9zeW5jZWRfd2l0aF9lbnRpdGllcyI6dHJ1ZSwibXdlYl9sb2dvX3VzZV9ob21lX3BhZ2VfdmUiOnRydWUsIm13ZWJfbG9uZ19wcmVzc19zcGVlZHVwX3ZpYnJhdGlvbiI6dHJ1ZSwibXdlYl9uYXRpdmVfY29udHJvbF9pbl9mYXV4X2Z1bGxzY3JlZW5fc2hhcmVkIjp0cnVlLCJtd2ViX3BsYXllcl9jb250cm9sX29uX2hvdmVyIjp0cnVlLCJtd2ViX3BsYXllcl9kZWxoaV9kdHRzIjp0cnVlLCJtd2ViX3BsYXllcl9zaG93X3ByZXZpb3VzX25leHRfYnV0dG9uc19pbl9wbGF5bGlzdCI6dHJ1ZSwibXdlYl9wbGF5ZXJfc2tpcF9ub19vcF9zdGF0ZV9jaGFuZ2VzIjp0cnVlLCJtd2ViX3BsYXllcl91c2VyX3NlbGVjdF9ub25lIjp0cnVlLCJtd2ViX3BsYXlsaXN0X2VuZ2FnZW1lbnRfcGFuZWwiOnRydWUsIm13ZWJfcHJvZ3Jlc3NfYmFyX3NlZWtfb25fbW91c2VfY2xpY2siOnRydWUsIm13ZWJfcHJvcGFnYXRlX3BsYXllcl9saW5rX2NsaWNrcyI6dHJ1ZSwibXdlYl9wdWxsXzJfZnVsbCI6dHJ1ZSwibXdlYl9wdWxsXzJfZnVsbF9lbmFibGVfdG91Y2hfaGFuZGxlcnMiOnRydWUsIm13ZWJfc2NoZWR1bGVfd2FybV93YXRjaF9yZXNwb25zZSI6dHJ1ZSwibXdlYl9zZWFyY2hib3hfbGVnYWN5X25hdmlnYXRpb24iOnRydWUsIm13ZWJfc2VlX2Zld2VyX3Nob3J0cyI6dHJ1ZSwibXdlYl9zaG9ydHNfY29tbWVudHNfcGFuZWxfaWRfY2hhbmdlIjp0cnVlLCJtd2ViX3Nob3J0c19lYXJseV9jb250aW51YXRpb24iOnRydWUsIm13ZWJfc2hvcnRzX2VuYWJsZV9sb25nX3ByZXNzX3NwZWVkdXAiOnRydWUsIm13ZWJfc2hvcnRzX292ZXJsYXlfZGVwcmVjYXRlX2thaW9zX2xheW91dCI6dHJ1ZSwibXdlYl9zaG93X3NpZ25faW5fYnV0dG9uX2Zyb21faGVhZGVyIjp0cnVlLCJtd2ViX3VzZV9taWNyb2Zvcm1hdF90aXRsZV9mb3JfcG9zdHMiOnRydWUsIm13ZWJfdXNlX3NlcnZlcl91cmxfb25fc3RhcnR1cCI6dHJ1ZSwibXdlYl93YXRjaF9jYXB0aW9uc19lbmFibGVfYXV0b190cmFuc2xhdGUiOnRydWUsIm13ZWJfd2F0Y2hfY2FwdGlvbnNfc2V0X2RlZmF1bHRfc2l6ZSI6dHJ1ZSwibXdlYl93YXRjaF9kZWxoaV9wbGF5ZXIiOnRydWUsIm13ZWJfd2F0Y2hfc3RvcF9zY2hlZHVsZXJfb25fcGxheWVyX3Jlc3BvbnNlIjp0cnVlLCJtd2ViX3dhdGNoZmVlZF9iaWdfdGh1bWJuYWlscyI6dHJ1ZSwibXdlYl95dF9zZWFyY2hib3giOnRydWUsIm5ldHdvcmtsZXNzX2xvZ2dpbmciOnRydWUsIm5vX2NsaWVudF92ZV9hdHRhY2hfdW5sZXNzX3Nob3duIjp0cnVlLCJwYWdlaWRfYXNfaGVhZGVyX3dlYiI6dHJ1ZSwicGxheWVyX2NvbnRyb2xzX2F1dG9uYXZfZml4Ijp0cnVlLCJwbGF5ZXJfY29udHJvbHNfc2tpcF9kb3VibGVfc2lnbmFsX3VwZGF0ZSI6dHJ1ZSwicGxheWVyX2NvbnRyb2xzX3VzZV9wbGF5ZXJfYXBpX2NvbnRleHQiOnRydWUsInBsYXllcl9jb250cm9sc192b2x1bWVfY29udHJvbHNfdXNlX3BsYXllcl9wcm9wcyI6dHJ1ZSwicG9seW1lcl9iYWRfYnVpbGRfbGFiZWxzIjp0cnVlLCJwb2x5bWVyX3ZlcmlmaXlfYXBwX3N0YXRlIjp0cnVlLCJxb2Vfc2VuZF9hbmRfd3JpdGUiOnRydWUsInJlbW92ZV9jaGV2cm9uX2Zyb21fYWRfZGlzY2xvc3VyZV9iYW5uZXJfaDUiOnRydWUsInJlbW92ZV9tYXN0aGVhZF9jaGFubmVsX2Jhbm5lcl9vbl9yZWZyZXNoIjp0cnVlLCJyZW1vdmVfc2xvdF9pZF9leGl0ZWRfdHJpZ2dlcl9mb3JfZGFpX2luX3BsYXllcl9zbG90X2V4cGlyZSI6dHJ1ZSwicm9zY2FzIjp0cnVlLCJzZXJ2aWNlX3dvcmtlcl9lbmFibGVkIjp0cnVlLCJzZXJ2aWNlX3dvcmtlcl9wdXNoX2VuYWJsZWQiOnRydWUsInNlcnZpY2Vfd29ya2VyX3B1c2hfaG9tZV9wYWdlX3Byb21wdCI6dHJ1ZSwic2VydmljZV93b3JrZXJfcHVzaF93YXRjaF9wYWdlX3Byb21wdCI6dHJ1ZSwic2hlbGxfbG9hZF9nY2YiOnRydWUsInNob3J0ZW5faW5pdGlhbF9nZWxfYmF0Y2hfdGltZW91dCI6dHJ1ZSwic2hvcnRzX2VuYWJsZV9yZWVsX2Nhcm91c2VsIjp0cnVlLCJzaG91bGRfdXNlX3l0X3ZvaWNlX2VuZHBvaW50X2luX2thaW9zIjp0cnVlLCJzbWFydGVyX3ZlX2RlZHVwcGluZyI6dHJ1ZSwic3RvcF9oYW5kbGluZ19jbGlja19mb3Jfbm9uX3JlbmRlcmluZ19vdmVybGF5X2xheW91dCI6dHJ1ZSwic3VwcHJlc3NfZXJyb3JfMjA0X2xvZ2dpbmciOnRydWUsInN5bmNlZF9wYW5lbF9zY3JvbGxpbmdfY29udHJvbGxlciI6dHJ1ZSwidG9vbHRpcF9yZWZhY3Rvcl9mb3JfaG90a2V5Ijp0cnVlLCJ1c2VfZXZlbnRfdGltZV9tc19oZWFkZXIiOnRydWUsInVzZV9maWZvX2Zvcl9uZXR3b3JrbGVzcyI6dHJ1ZSwidXNlX3JlcXVlc3RfdGltZV9tc19oZWFkZXIiOnRydWUsInVzZV9zZXNzaW9uX2Jhc2VkX3NhbXBsaW5nIjp0cnVlLCJ1c2VfdGh1bWJuYWlsX292ZXJsYXlfdGltZV9zdGF0dXNfcmVuZGVyZXJfZm9yX2xpdmVfYmFkZ2UiOnRydWUsInZzc19maW5hbF9waW5nX3NlbmRfYW5kX3dyaXRlIjp0cnVlLCJ2c3NfcGxheWJhY2tfdXNlX3NlbmRfYW5kX3dyaXRlIjp0cnVlLCJ3YXRjaF9wdWJzdWJfcmVmYWN0b3IiOnRydWUsIndlYl9hZGFwdGl2ZV9yZXBlYXRfYXNlIjp0cnVlLCJ3ZWJfYWx3YXlzX2xvYWRfY2hhdF9zdXBwb3J0Ijp0cnVlLCJ3ZWJfYXBpX3VybCI6dHJ1ZSwid2ViX2F0dGVudGlvbl9sb2dnaW5nX2VuYWJsZWQiOnRydWUsIndlYl9hdHRlbnRpb25fbG9nZ2luZ19leHBvcnRfdG9fZ2VsIjp0cnVlLCJ3ZWJfYXR0cmlidXRlZF9zdHJpbmdfZGVlcF9lcXVhbF9idWdmaXgiOnRydWUsIndlYl9hdXRvbmF2X2FsbG93X29mZl9ieV9kZWZhdWx0Ijp0cnVlLCJ3ZWJfYnV0dG9uX29yX2FuY2hvcl9saXN0X2l0ZW0iOnRydWUsIndlYl9idXR0b25fdmlld19tb2RlbF9ub25fbnVsbGlzaF9kYXRhIjp0cnVlLCJ3ZWJfYnV0dG9uX3ZtX3JlZmFjdG9yX2Rpc2FibGVkIjp0cnVlLCJ3ZWJfYzNfbG9nX2FwcF9pbml0X2ZpbmlzaCI6dHJ1ZSwid2ViX2NvbW1lbnRfcGFuZWxfZWFzeV9leHBhbmQiOnRydWUsIndlYl9jc2lfYWN0aW9uX3NhbXBsaW5nX2VuYWJsZWQiOnRydWUsIndlYl9kZWR1cGVfdmVfZ3JhZnRpbmciOnRydWUsIndlYl9kaXNhYmxlX2JhY2tkcm9wX2ZpbHRlciI6dHJ1ZSwid2ViX2Rpc2FibGVfY2hpcF92aWV3X21vZGVsX211dGF0aW9uIjp0cnVlLCJ3ZWJfZW5hYmxlX2FiX3JzcF9jbCI6dHJ1ZSwid2ViX2VuYWJsZV9hZF9idXR0b25fc3R5bGVfb3ZlcnJpZGUiOnRydWUsIndlYl9lbmFibGVfYXNrX2Rpc2NsYWltZXJfdXBkYXRlIjp0cnVlLCJ3ZWJfZW5hYmxlX2Nhbm9uaWNhbF91cmxfbWFuYWdlciI6dHJ1ZSwid2ViX2VuYWJsZV9jb3Vyc2VfaWNvbl91cGRhdGUiOnRydWUsIndlYl9lbmFibGVfZW50aXR5X3Vwc2VydF9vbl91cGRhdGUiOnRydWUsIndlYl9lbmFibGVfZXJyb3JfMjA0Ijp0cnVlLCJ3ZWJfZW5hYmxlX2xhenlfY3NzIjp0cnVlLCJ3ZWJfZW5hYmxlX3RodW1ibmFpbF9vdmVybGF5X2FsaWdubWVudCI6dHJ1ZSwid2ViX2ZpeF90ZWFzZXJfc2Nyb2xsX2J1ZyI6dHJ1ZSwid2ViX2djZl9oYXNoZXNfaW5uZXJ0dWJlIjp0cnVlLCJ3ZWJfZ2VsX3RpbWVvdXRfY2FwIjp0cnVlLCJ3ZWJfaGlkZV95b3VyX2RhdGFfb25fYXV0b21vdGl2ZSI6dHJ1ZSwid2ViX2ltcF9lbmFibGVfY3NpX3N0YXJ0X3RpY2siOnRydWUsIndlYl9tb25vbWVyX3dlYl9jb21wb25lbnRfd3JhcHBlcl9oYW5kbGVfZXJyb3JzIjp0cnVlLCJ3ZWJfbm9uX25hdmlnYXRpbmdfYXRhZyI6dHJ1ZSwid2ViX3BhcmVudF90YXJnZXRfZm9yX3NoZWV0cyI6dHJ1ZSwid2ViX3BlcnNpc3Rfc2VydmVyX2F1dG9uYXZfc3RhdGVfb25fY2xpZW50Ijp0cnVlLCJ3ZWJfcGxheWJhY2tfYXNzb2NpYXRlZF92ZSI6dHJ1ZSwid2ViX3BsYXllcl91cGRhdGVkX2VudHJ5cG9pbnQiOnRydWUsIndlYl9wcmVmZXRjaF9wcmVsb2FkX3ZpZGVvIjp0cnVlLCJ3ZWJfcHJvZ3Jlc3NfYmFyX2RyYWdnYWJsZSI6dHJ1ZSwid2ViX3Byb3BhZ2F0ZV92aXNpYmlsaXR5X3RvX2FwcGxpY2F0aW9uX3N0YXRlIjp0cnVlLCJ3ZWJfcmVtb3ZlX3NuYWNrYmFyX2FjdGlvbnMiOnRydWUsIndlYl9zZWN0aW9uX2xpc3RfcmVuZGVyZXJfd3JhcHBlZF9jb250ZW50cyI6dHJ1ZSwid2ViX3Nob3J0c19hdWRpb190cmFja19waWNrZXIiOnRydWUsIndlYl9zaG9ydHNfZW5hYmxlX3JlbW92ZV9zZWFyY2hfcGl2b3RfYmFja19idXR0b24iOnRydWUsIndlYl9zaG9ydHNfd25fc2hlbGZfaGVhZGVyX3R1bmluZyI6dHJ1ZSwid2ViX3VuaWZpZWRfZmV0Y2giOnRydWUsIndlYl91cGRhdGVfcGFuZWxfdmlzaWJpbGl0eV9sb2dnaW5nX2ZpeCI6dHJ1ZSwid2ViX3dhdGNoX2NvbnRyb2xzX3N0YXRlX3NpZ25hbHMiOnRydWUsIndlYmZlX213ZWJfd2F0Y2hfbWljcm9kYXRhIjp0cnVlLCJ3ZWJmZV93YXRjaF9zaG9ydHNfY2Fub25pY2FsX3VybF9maXgiOnRydWUsIndlYnBvX2V4aXRfb25fbmV0X2VyciI6dHJ1ZSwid2l6X2RpZmZfb3ZlcndyaXRhYmxlIjp0cnVlLCJ3aXpfd3JhcHBlcl9jYWxsYmFja19wcm9wc19maXgiOnRydWUsInd1Z19uZXR3b3JraW5nX2d6aXBfcmVxdWVzdCI6dHJ1ZSwiSDVfYXN5bmNfbG9nZ2luZ19kZWxheV9tcyI6MzAwMDAuMCwiYXV0b3BsYXlfcGF1c2VfYnlfbGFjdF9zYW1wbGluZ19mcmFjdGlvbiI6MC4wLCJjaW5lbWF0aWNfd2F0Y2hfZWZmZWN0X29wYWNpdHkiOjAuNCwibG9nX3dpbmRvd19vbmVycm9yX2ZyYWN0aW9uIjowLjEsInNwZWVkbWFzdGVyX3BsYXliYWNrX3JhdGUiOjIuMCwid2ViX2F0dGVudGlvbl9sb2dnaW5nX3Njcm9sbF90aHJvdHRsZSI6NTAwLjAsIndlYl9kZWFkX2NvZGVfZGV0ZWN0b3Jfc2FtcGxpbmdfcmF0ZSI6MC4wLCJ3ZWJfbG9hZF9wcmVkaWN0aW9uX3RocmVzaG9sZCI6MC4zLCJ3ZWJfbmF2aWdhdGlvbl9wcmVkaWN0aW9uX3RocmVzaG9sZCI6MC4xLCJ3ZWJfcGJqX2xvZ193YXJuaW5nX3JhdGUiOjAuMCwid2ViX3N5c3RlbV9oZWFsdGhfZnJhY3Rpb24iOjAuMDEsInl0aWRiX3RyYW5zYWN0aW9uX2VuZGVkX2V2ZW50X3JhdGVfbGltaXQiOjAuMDIsImF0dF9pbml0X2RlbGF5Ijo1MDAsImF1dG9wbGF5X3BhdXNlX2J5X2xhY3Rfc2VjIjowLCJib3RndWFyZF9hc3luY19zbmFwc2hvdF90aW1lb3V0X21zIjozMDAwLCJjaGVja19uYXZpZ2F0b3JfYWNjdXJhY3lfdGltZW91dF9tcyI6MCwiY2luZW1hdGljX3dhdGNoX2Nzc19maWx0ZXJfYmx1cl9zdHJlbmd0aCI6NDAsImNpbmVtYXRpY193YXRjaF9mYWRlX291dF9kdXJhdGlvbiI6NTAwLCJjbG9zZV93ZWJ2aWV3X2RlbGF5X21zIjoxMDAsImNsb3VkX3NhdmVfZ2FtZV9kYXRhX3JhdGVfbGltaXRfbXMiOjMwMDAsImNvbXByZXNzaW9uX2Rpc2FibGVfcG9pbnQiOjEwLCJjdXN0b21fYWN0aXZlX3ZpZXdfdG9zX3RpbWVvdXRfbXMiOjM2MDAwMDAsImVtYmVkc193aWRnZXRfcG9sbF9pbnRlcnZhbF9tcyI6MCwiZW5kZW1pY19oaWdoX2Njdl9zbWVhcmluZ19tYXhfd2luZG93X3NlY29uZHMiOjYwLCJnZWxfbWluX2JhdGNoX3NpemUiOjMsImdlbF9xdWV1ZV90aW1lb3V0X21heF9tcyI6NjAwMDAsImdldF9hc3luY190aW1lb3V0X21zIjo2MDAwMCwiaHRtbDVfYnl0ZXJhdGVfc29mdF9jYXAiOjAsImluaXRpYWxfZ2VsX2JhdGNoX3RpbWVvdXQiOjIwMDAsIm1heF9ib2R5X3NpemVfdG9fY29tcHJlc3MiOjUwMDAwMCwibWF4X3ByZWZldGNoX3dpbmRvd19zZWNfZm9yX2xpdmVzdHJlYW1fb3B0aW1pemF0aW9uIjoxMCwibWluX3ByZWZldGNoX29mZnNldF9zZWNfZm9yX2xpdmVzdHJlYW1fb3B0aW1pemF0aW9uIjoyMCwibWluaV9hcHBfY29udGFpbmVyX2lmcmFtZV9zcmNfdXBkYXRlX2RlbGF5X21zIjowLCJtdWx0aXBsZV9wcmV2aWV3X25ld3NfZHVyYXRpb25fdGltZSI6MTEwMDAsIm13ZWJfYzNfdG9hc3RfZHVyYXRpb25fbXMiOjUwMDAsIm13ZWJfZGVlcF9saW5rX2ZhbGxiYWNrX3RpbWVvdXRfbXMiOjEwMDAwLCJtd2ViX2RlbGF5X3Jlc3BvbnNlX3JlY2VpdmVkX2FjdGlvbnMiOjEwMCwibXdlYl9kd2VsbF9kZWxheV9tcyI6NTAwLCJtd2ViX2ZwX2RwYWRfcmF0ZV9saW1pdF9tcyI6MCwibXdlYl9mcF9kcGFkX3dhdGNoX3RpdGxlX2NsYW1wX2xpbmVzIjowLCJtd2ViX2hpc3RvcnlfbWFuYWdlcl9jYWNoZV9zaXplIjoxMDAsIm13ZWJfaW9zX2Z1bGxzY3JlZW5fcGxheWJhY2tfdHJhbnNpdGlvbl9kZWxheV9tcyI6NTAwLCJtd2ViX2lvc19mdWxsc2NyZWVuX3N5c3RlbV9wYXVzZV9lcGlsc29uX21zIjowLCJtd2ViX292ZXJyaWRlX3Jlc3BvbnNlX3N0b3JlX2V4cGlyYXRpb25fbXMiOjAsIm13ZWJfc2hvcnRzX2Vhcmx5X2NvbnRpbnVhdGlvbl90cmlnZ2VyX3RocmVzaG9sZCI6NCwibXdlYl9zaG9ydHNfbnVtYmVyX29mX3RodW1ibmFpbHNfc2hvd24iOjIsIm13ZWJfdzJ3X21heF9hZ2Vfc2Vjb25kcyI6MCwibXdlYl93YXRjaF9jYXB0aW9uc19kZWZhdWx0X3NpemUiOjIsIm5lb25fZGFya19sYXVuY2hfZ3JhZGllbnRfY291bnQiOjAsIm5ldHdvcmtfcG9sbGluZ19pbnRlcnZhbCI6MzAwMDAsInBsYXlfcGluZ19pbnRlcnZhbF9tcyI6MTAwMDAsInNlbmRfY29uZmlnX2hhc2hfdGltZXIiOjAsInNlcnZpY2Vfd29ya2VyX3B1c2hfbG9nZ2VkX291dF9wcm9tcHRfd2F0Y2hlcyI6LTEsInNlcnZpY2Vfd29ya2VyX3B1c2hfcHJvbXB0X2NhcCI6LTEsInNlcnZpY2Vfd29ya2VyX3B1c2hfcHJvbXB0X2RlbGF5X21pY3Jvc2Vjb25kcyI6Mzg4ODAwMDAwMDAwMCwic2hvd19taW5pX2FwcF9hZF93ZWJfcmVndWxhcl9mcmVxdWVuY3lfY2FwX21zIjoyNDAwMDAsInNob3dfbWluaV9hcHBfYWRfd2ViX3Jld2FyZGVkX2ZyZXF1ZW5jeV9jYXBfbXMiOjAsInNsb3dfY29tcHJlc3Npb25zX2JlZm9yZV9hYmFuZG9uX2NvdW50Ijo0LCJzcGVlZG1hc3Rlcl9jYW5jZWxsYXRpb25fbW92ZW1lbnRfZHAiOjEwLCJzcGVlZG1hc3Rlcl90b3VjaF9hY3RpdmF0aW9uX21zIjo1MDAsIndlYl9haV9zZWFyY2hfcm9sbG91dF92ZXJzaW9uIjoxLCJ3ZWJfZm9yZWdyb3VuZF9oZWFydGJlYXRfaW50ZXJ2YWxfbXMiOjI4MDAwLCJ3ZWJfZ2VsX2RlYm91bmNlX21zIjoxMDAwMCwid2ViX2xvZ2dpbmdfbWF4X2JhdGNoIjoxMDAsIndlYl9tYXhfdHJhY2luZ19ldmVudHMiOjUwLCJ3ZWJfc2Vzc2lvbl9yZXBsYXlfbW91c2Vtb3ZlX2ludGVydmFsIjowLCJ3ZWJfc2Vzc2lvbl9yZXBsYXlfc2Nyb2xsX2ludGVydmFsIjowLCJ3ZWJfc2Vzc2lvbl9yZXBsYXlfc2VuZF9hZnRlcl90aW1lb3V0IjowLCJ3ZWJfdHJhY2luZ19zZXNzaW9uX3JlcGxheSI6MCwid2lsX2ljb25fbWF4X2NvbmN1cnJlbnRfZmV0Y2hlcyI6OTk5OSwieXRjc2lfZGVidWdfbWF4X3NpemUiOjEwMCwieXRpZGJfcmVtYWtlX2RiX3JldHJpZXMiOjEsInl0aWRiX3Jlb3Blbl9kYl9yZXRyaWVzIjowLCJXZWJDbGllbnRSZWxlYXNlUHJvY2Vzc0NyaXRpY2FsX195b3V0dWJlX2VtYmVkc19jbGllbnRfdmVyc2lvbl9vdmVycmlkZSI6IiIsIldlYkNsaWVudFJlbGVhc2VQcm9jZXNzQ3JpdGljYWxfX3lvdXR1YmVfZW1iZWRzX3dlYl9jbGllbnRfdmVyc2lvbl9vdmVycmlkZSI6IiIsImRlYnVnX2ZvcmNlZF9pbnRlcm5hbGNvdW50cnljb2RlIjoiIiwiZW5hYmxlX3dlYl9tZWRpYV9zZXJ2aWNlIjoiRElTQUJMRUQiLCJpbF9wYXlsb2FkX3NjcmFwaW5nIjoiIiwibGl2ZV9jaGF0X3VuaWNvZGVfZW1vamlfanNvbl91cmwiOiJodHRwczovL3d3dy5nc3RhdGljLmNvbS95b3V0dWJlL2ltZy9lbW9qaXMvZW1vamlzLXN2Zy05Lmpzb24iLCJtd2ViX2RlZXBfbGlua19mZWF0dXJlX3RhZ19zdWZmaXgiOiI1MTgzMTYxNSIsIm13ZWJfZW5hYmxlX3Nob3J0c19pbm5lcnR1YmVfcGxheWVyX3ByZWZldGNoX3RyaWdnZXIiOiJOT05FIiwibXdlYl9mcF9kcGFkIjoiaG9tZSxzZWFyY2gsYnJvd3NlLGNoYW5uZWwsY3JlYXRlX2NoYW5uZWwsZXhwZXJpbWVudHMsc2V0dGluZ3MsdHJlbmRpbmcsb29wcyw0MDQscGFpZF9tZW1iZXJzaGlwcyxzcG9uc29yc2hpcCxwcmVtaXVtLHNob3J0cyIsIm13ZWJfZnBfZHBhZF9saW5lYXJfbmF2aWdhdGlvbiI6IiIsIm13ZWJfZnBfZHBhZF9saW5lYXJfbmF2aWdhdGlvbl92aXNpdG9yIjoiIiwibXdlYl9mcF9kcGFkX3Zpc2l0b3IiOiIiLCJtd2ViX3ByZWxvYWRfdmlkZW9fYnlfcGxheWVyX3ZhcnMiOiIiLCJwbGFjZV9waXZvdF90cmlnZ2VyaW5nX2NvbnRhaW5lcl9hbHRlcm5hdGUiOiIiLCJwbGFjZV9waXZvdF90cmlnZ2VyaW5nX2NvdW50ZXJmYWN0dWFsX2NvbnRhaW5lcl9hbHRlcm5hdGUiOiIiLCJzZXJ2aWNlX3dvcmtlcl9wdXNoX2ZvcmNlX25vdGlmaWNhdGlvbl9wcm9tcHRfdGFnIjoiMSIsInNlcnZpY2Vfd29ya2VyX3Njb3BlIjoiLyIsInN1Z2dlc3RfZXhwX3N0ciI6IiIsIndlYl9jbGllbnRfdmVyc2lvbl9vdmVycmlkZSI6IiIsImVuZGVtaWNfaGlnaF9jY3Zfc21lYXJpbmdfYWxsb3dlZF92aWRlb19pZHMiOlsiT0psd0lkb0Z6OUEiLCJBcktiQXgxSy0yVSIsIm1fZGhNU3ZVQ0ljIiwiQzFEaHBKMDdadUUiLCJOcTJ3WWxXRnVjZyIsIkpDN2YzRVVEYXF3IiwidnIzWHlWQ1I0VDAiLCJnQ05lRFdDSTB2byIsImtCVHVkbTRnZU1zIiwiRnhzZlZYNkIxTWsiLCJ5bFlKU0JVZ2FNQSIsIlZXaFE2eHNwblNjIiwiUkhVYXVNY1lsWDAiLCJjYjEyS21NTURKQSIsIldKeEVqX2hycFNnIiwiZXVoWS10bWc5eDgiLCJUbElWSTJFVzdSMCIsIk1JTmZ2T1g0QnpJIiwieUhtUFd6a2hjWjgiLCJwM3cxdk85WHYyNCIsIlZsYUNucDFmeEk4IiwiLU9mQTA0QkQ0R0EiLCIxb2RZM0lZc05ubyIsIndpVFRyVnFSVkR3IiwiRGZtMnJCLW5ROVkiLCJRbTFGdHo4bFZuSSIsIjlpdEF4cV9TR0RNIiwieUZJM3dwWHk0ekEiLCJQeTVKWVpYSnZ6byIsImI0dEU1YUtodGxnIiwiNUpEeGpzQVZhR2siLCJlVW1mR1BhenVFTSIsIlc4blRocTYyVmI0IiwiVkxqdlMzdWZsWGMiLCJCZmRMS3ZKQk1fYyIsIndlTFhkd1ZqU3hzIiwiMkphLXVQT2t6N0kiLCJBOVFCVkZFWXhPUSIsImstWkZRa2tIVWZjIiwid3V1MEQyMEFacUkiLCJfSHZpU3lDN3pTVSIsIl9feE96X1EzcVI0IiwidzJzQjg3akxFMUkiLCI4clRURU1kTWg4USIsIi1rNm1wZ214ZXJVIiwiOTdja25ySnlMV2ciLCIyRkl0Vnl4TE5OYyIsIm90bnhmY3NHRS1ZIiwiczl4TDFEcEJzZlEiLCJ3ZkFHQlZnVXJybyIsIm5YSDZUeFEtc2k4IiwiV2lJMVhnX25FdTgiLCIzZmxhc0dWVXJDQSIsImVEWV9IZTkybGNVIiwiYTQ3Y2tYS1pqeEkiLCJJNldSWGVLWks2NCIsIlQ5SjVEcVAyREt3IiwiS3RrX0kwcFVwRzgiLCJlUTJjekdxT0NQZyIsImhMbVU0OWhtWjRjIiwiN2Y3TWdhTUU3U2MiLCJRQjVCTmRCRnVqRSIsIkFHaHRNVV9maTcwIiwicDJSYVFVUlJBd0EiLCJtel9fRU1ZcFdQdyIsIjZqaEx1U1FWSXhVIiwickM4M3ZfdXVJcW8iLCI2RGFHZEpSX2VMZyIsImNtNDN1WGpmdlpZIiwiWTFKc1BwbTJibVEiLCJ6MDk3alB5S2VlbyIsIlRZVlpXVVRqa3gwIiwiVkhhQXZlbmZURGsiLCJ0djlPVV81UTBwUSIsIjZvS0N2em02SG1nIiwiQkVGVUVSaFQwbjAiLCJ1VE4tZXUwLU9YRSIsImhiYXByaFI3elRvIiwiMkNWMFYtb01ORk0iLCJ1OGRTT0tvTkpwMCIsIkg4TXFxd21Gc3hZIiwiSXNra21OUEpkVWsiLCJYOUhfRXpwREdYUSJdLCJrZXZsYXJfY29tbWFuZF9oYW5kbGVyX2NvbW1hbmRfYmFubGlzdCI6W10sIm1pbmlfYXBwX2lkc193aXRob3V0X2dhbWVfcmVhZHkiOlsiVWdreEhIdHNhazFTQzhtUkdITVpld2M0SHplQVkzeWhQUG1KIiwiVWdreDdPZ3pGcUU2el81TXRmNFlzb3RHZlFOSUkxREZfUkJtIl0sIndlYl9vcF9zaWduYWxfdHlwZV9iYW5saXN0IjpbXSwid2ViX3RyYWNpbmdfZW5hYmxlZF9zcGFucyI6WyJldmVudCIsImNvbW1hbmQiXX0sIkdBUElfSElOVF9QQVJBTVMiOiJtOy9fL3Njcy9hYmMtc3RhdGljL18vanMva1x1MDAzZGdhcGkuZ2FwaS5lbi41NF9IRHZlT3RrUS5PL2RcdTAwM2QxL3JzXHUwMDNkQUhwT29vOVF1Zk9kUFlUUmtiVEphZFRXNnNtc3hsV0xNdy9tXHUwMDNkX19mZWF0dXJlc19fIiwiR0FQSV9IT1NUIjoiaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20iLCJHQVBJX0xPQ0FMRSI6ImVuX1VTIiwiR0wiOiJOTyIsIkhMIjoiZW4iLCJIVE1MX0RJUiI6Imx0ciIsIkhUTUxfTEFORyI6ImVuIiwiSU5ORVJUVUJFX0FQSV9LRVkiOiJBSXphU3lBT19GSjJTbHFVOFE0U1RFSExHQ2lsd19ZOV8xMXFjVzgiLCJJTk5FUlRVQkVfQVBJX1ZFUlNJT04iOiJ2MSIsIklOTkVSVFVCRV9DTElFTlRfTkFNRSI6IldFQl9FTUJFRERFRF9QTEFZRVIiLCJJTk5FUlRVQkVfQ0xJRU5UX1ZFUlNJT04iOiIyLjIwMjYwNzI0LjAxLjAwIiwiSU5ORVJUVUJFX0NPTlRFWFQiOnsiY2xpZW50Ijp7ImhsIjoiZW4iLCJnbCI6Ik5PIiwicmVtb3RlSG9zdCI6IjE5NS42NC4xMTguMTUyIiwiZGV2aWNlTWFrZSI6IiIsImRldmljZU1vZGVsIjoiIiwidmlzaXRvckRhdGEiOiJDZ3R0ZW5ocFZHVTNSVkp3TkNqOGxwdlRCaklvQ2dKT1R4SWlFaDRTSEFzTURnOFFFUklURkJVV0Z4Z1pHaHNjSFI0ZklDRWlJeVFsSmljZ0kyTGZBZ3JjQWpJd0xsbFVQVTlFTWtGeFJFcEtOVXREWkRKR1VVaFRWREJRVURadWJWOVFWVzVQYlU5TFMxZGZOVzR5YzFVelZYUnZOMkpuY1cxSFdsWmxlbFI1TUdWVU5VTm9NWFIxTUVwNlZGVnZjbGxuWjA1V1RISnhOR2xDWW5oTloycExXVll5WlhSMmJIWjVkSFZMYXpSVVJqbHRkblYwTVhCbmFIZE5TbWRWWW5WWE9IQTBXR1JuYzIxRUxXbFRlVFo2U0ZGc1VrRm9RaTFLY21KTllWSmxOV2cxUzNOU1pFSlZSbGRpZG5ONGMwNWxTRGc1VmpaTFQwOXFWbEIxV0doS2MwVlhiVWxyYkMxTWRrVXhTSEJNV1ZKeE5VVmFSbFpSV1VsUFZYTXRXamhTTlMxc1NUaEJSVEIyU2xaQ1pVTXlURWQzVkRWVmNXdGpZVTF3WDBOUFRYZHphSEF5UlVWVldFRkxiV1o0YVRKdlRUWm5NMHA0VlcxcmFFMVViVXg0V2pZdFpHUTFTVkpQWTJSMlZ6WmpaRWxxYVZFd1IzRmtVWG8xUjNoMVFVMHpiMDlKVG01Q05GWjBOVTl1TkV3MFZWOUhiRFZ1TjJneFVGOURVUSUzRCUzRCIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQ7IHJ2OjEzNC4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzEzNC4wLGd6aXAoZ2ZlKSIsImNsaWVudE5hbWUiOiJXRUJfRU1CRURERURfUExBWUVSIiwiY2xpZW50VmVyc2lvbiI6IjIuMjAyNjA3MjQuMDEuMDAiLCJvc05hbWUiOiJXaW5kb3dzIiwib3NWZXJzaW9uIjoiMTAuMCIsIm9yaWdpbmFsVXJsIjoiaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvWW1nZS1xaDNtNEUiLCJwbGF0Zm9ybSI6IkRFU0tUT1AiLCJjbGllbnRGb3JtRmFjdG9yIjoiVU5LTk9XTl9GT1JNX0ZBQ1RPUiIsImNvbmZpZ0luZm8iOnsiYXBwSW5zdGFsbERhdGEiOiJDUHlXbTlNR0VMMlpzQVVRaHVHQUV4Q2RocmdpRUwyMnJnVVFudEN3QlJESjlvQVRFUGZFZ0JNUXJ0YlBIQkQyOTlFY0VQRzAwQndRNmZqUkhCRGd0OUVjRU9EcTBSd1FuOC1BRXhEZXZNNGNFTUdQMEJ3UWlfZlBIQkRLLTRBVEVLU3AwUndRX0xMT0hCQ0pzTTRjRU5yM3pod1F2b3F3QlJDSWtORWNFSXFIdUNJUW1ZMnhCUkNKNU5FY0VJSE56aHdRdktUUUhCQ1Y3OUVjRUxqdzBSd1FqcERSSEJDRGg3Z2lFT19lMFJ3UTlxdXdCUkMyLUlBVEVJZXN6aHdRLWZMUkhCRE0zNjRGRUw2RTBSd1E4c3pSSEJDNDVNNGNFQUFxYUVOQlRWTlRVbFpETFZweExVUk5aVlZGY0ZWRGJrRTNOVVpZWVVsR1MycFdSRGhuUkVSTVRVd3lRV0pqZFdWclRFMXhRM05DUVU5UmNtZFFOMHB5WW10Q2RWTkdSamxFVFVKelUxTkNZM001ZUZObVdqRlJXR1JNVDFaSE1XRTNka2gwYzBkSVVXTTlNQUElM0QifSwiYnJvd3Nlck5hbWUiOiJGaXJlZm94IiwiYnJvd3NlclZlcnNpb24iOiIxMzQuMCIsImFjY2VwdEhlYWRlciI6InRleHQvaHRtbCxhcHBsaWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3FcdTAwM2QwLjksKi8qO3FcdTAwM2QwLjgiLCJkZXZpY2VFeHBlcmltZW50SWQiOiJDaHhPZWxreVRucEJlazlVUlRGTlJGRjZUVlJuZWsxVVVYZE9aejA5RVB5V205TUdHUHlXbTlNRyIsInJvbGxvdXRUb2tlbiI6IkNObkk3dTMxeWN6TVNoQ0Fxc0d6OFBHVkF4aUFxc0d6OFBHVkF3JTNEJTNEIn0sInVzZXIiOnsibG9ja2VkU2FmZXR5TW9kZSI6ZmFsc2V9LCJyZXF1ZXN0Ijp7InVzZVNzbCI6dHJ1ZX0sImNsaWNrVHJhY2tpbmciOnsiY2xpY2tUcmFja2luZ1BhcmFtcyI6IkloTUlucHpCcy9EeGxRTVZadTdLQUIzYVF4WUMifSwidGhpcmRQYXJ0eSI6eyJlbWJlZGRlZFBsYXllckNvbnRleHQiOnsiZW1iZWRkZWRQbGF5ZXJFbmNyeXB0ZWRDb250ZXh0IjoiQUNtYmxCVVpnVnlhS3pUNDdVOEtCT3k2UURYWmNBc0VfRmpmS19ZcWMzTkF2M2JCOEVwSnFGN2xzV3ZrcTZWcUpBTk9RRFlJT196bEdSUkZTSGU3aDdCY0VWVHpBa2pmMUNSd1NRN1hveXBBeWI4aUFObHN6YVhSQndiN05ZUl9qS0hTNlVzIiwiYW5jZXN0b3JPcmlnaW5zU3VwcG9ydGVkIjpmYWxzZX19fSwiSU5ORVJUVUJFX0NPTlRFWFRfQ0xJRU5UX05BTUUiOjU2LCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfVkVSU0lPTiI6IjIuMjAyNjA3MjQuMDEuMDAiLCJJTk5FUlRVQkVfQ09OVEVYVF9HTCI6Ik5PIiwiSU5ORVJUVUJFX0NPTlRFWFRfSEwiOiJlbiIsIkxBVEVTVF9FQ0FUQ0hFUl9TRVJWSUNFX1RSQUNLSU5HX1BBUkFNUyI6eyJjbGllbnQubmFtZSI6IldFQl9FTUJFRERFRF9QTEFZRVIiLCJjbGllbnQuanNmZWF0IjoiMjAyMSJ9LCJMT0dHRURfSU4iOmZhbHNlLCJQQUdFX0JVSUxEX0xBQkVMIjoieW91dHViZS5lbWJlZHMud2ViXzIwMjYwNzI0XzAxX1JDMDAiLCJQQUdFX0NMIjo5NTMyMDYwMTAsIlNFUlZFUl9OQU1FIjoiV2ViRkUiLCJWSVNJVE9SX0RBVEEiOiJDZ3R0ZW5ocFZHVTNSVkp3TkNqOGxwdlRCaklvQ2dKT1R4SWlFaDRTSEFzTURnOFFFUklURkJVV0Z4Z1pHaHNjSFI0ZklDRWlJeVFsSmljZ0kyTGZBZ3JjQWpJd0xsbFVQVTlFTWtGeFJFcEtOVXREWkRKR1VVaFRWREJRVURadWJWOVFWVzVQYlU5TFMxZGZOVzR5YzFVelZYUnZOMkpuY1cxSFdsWmxlbFI1TUdWVU5VTm9NWFIxTUVwNlZGVnZjbGxuWjA1V1RISnhOR2xDWW5oTloycExXVll5WlhSMmJIWjVkSFZMYXpSVVJqbHRkblYwTVhCbmFIZE5TbWRWWW5WWE9IQTBXR1JuYzIxRUxXbFRlVFo2U0ZGc1VrRm9RaTFLY21KTllWSmxOV2cxUzNOU1pFSlZSbGRpZG5ONGMwNWxTRGc1VmpaTFQwOXFWbEIxV0doS2MwVlhiVWxyYkMxTWRrVXhTSEJNV1ZKeE5VVmFSbFpSV1VsUFZYTXRXamhTTlMxc1NUaEJSVEIyU2xaQ1pVTXlURWQzVkRWVmNXdGpZVTF3WDBOUFRYZHphSEF5UlVWVldFRkxiV1o0YVRKdlRUWm5NMHA0VlcxcmFFMVViVXg0V2pZdFpHUTFTVkpQWTJSMlZ6WmpaRWxxYVZFd1IzRmtVWG8xUjNoMVFVMHpiMDlKVG01Q05GWjBOVTl1TkV3MFZWOUhiRFZ1TjJneFVGOURVUSUzRCUzRCIsIldFQl9QTEFZRVJfQ09OVEVYVF9DT05GSUdTIjp7IldFQl9QTEFZRVJfQ09OVEVYVF9DT05GSUdfSURfRU1CRURERURfUExBWUVSIjp7InJvb3RFbGVtZW50SWQiOiJtb3ZpZV9wbGF5ZXIiLCJqc1VybCI6Ii9zL3BsYXllci83YTc5NjljMi9wbGF5ZXJfZW1iZWRfZXM2LnZmbHNldC9lbl9VUy9iYXNlLmpzIiwiY3NzVXJsIjoiL3MvcGxheWVyLzdhNzk2OWMyL3d3dy1wbGF5ZXIuY3NzIiwiY29udGV4dElkIjoiV0VCX1BMQVlFUl9DT05URVhUX0NPTkZJR19JRF9FTUJFRERFRF9QTEFZRVIiLCJldmVudExhYmVsIjoiZW1iZWRkZWQiLCJjb250ZW50UmVnaW9uIjoiTk8iLCJobCI6ImVuX1VTIiwiaG9zdExhbmd1YWdlIjoiZW4iLCJpbm5lcnR1YmVBcGlLZXkiOiJBSXphU3lBT19GSjJTbHFVOFE0U1RFSExHQ2lsd19ZOV8xMXFjVzgiLCJpbm5lcnR1YmVBcGlWZXJzaW9uIjoidjEiLCJpbm5lcnR1YmVDb250ZXh0Q2xpZW50VmVyc2lvbiI6IjIuMjAyNjA3MjQuMDEuMDAiLCJkZXZpY2UiOnsiYnJhbmQiOiIiLCJtb2RlbCI6IiIsImJyb3dzZXIiOiJGaXJlZm94IiwiYnJvd3NlclZlcnNpb24iOiIxMzQuMCIsIm9zIjoiV2luZG93cyIsIm9zVmVyc2lvbiI6IjEwLjAiLCJwbGF0Zm9ybSI6IkRFU0tUT1AiLCJpbnRlcmZhY2VOYW1lIjoiV0VCX0VNQkVEREVEX1BMQVlFUiIsImludGVyZmFjZVZlcnNpb24iOiIyLjIwMjYwNzI0LjAxLjAwIn0sInNlcmlhbGl6ZWRFeHBlcmltZW50SWRzIjoiMjQwMDQ2NDQsNTEwNjM2NDMsNTEwOTgyOTksNTEyMjI5NzMsNTEzNDA2NjIsNTEzNDk5MTQsNTEzNTMzOTMsNTEzNjY0MjMsNTEzODk2MjksNTE0OTAzMzEsNTE1MDU0MzYsNTE1MzA0OTUsNTE1MzQ2NjksNTE1NjUxMTYsNTE1ODM4MjEsNTE2MDUyNTgsNTE2MDk4MjksNTE2MzgyNzAsNTE2Mzg5MzIsNTE2NDU1NTMsNTE2NDgzMzYsNTE2NzIxNjIsNTE2ODE2NjIsNTE2ODM1MDIsNTE3MjkyMTcsNTE3NDIzNzcsNTE3OTg5MjgsNTE4MDMxMjcsNTE4MzMyNDEsNTE4NDI0MjIsNTE4NTc4MzgsNTE4NTc5MjAsNTE4ODc4ODAsNTE4OTU0MDQsNTE4OTU3NzEsNTE5MDE0MzcsNTE5MDI2MDUsNTE5MDI5NzcsNTE5MTA3MzUsNTE5MjcxODgsNTE5MjczNjAsNTE5MzYyMjgsNTE5Mzk3MDMsNTE5NDUwNTYsNTE5NTY1MTgsNTE5NTc0NDUsNTE5NTk2OTQsNTE5NTk4MDksNTE5NTk4ODAsNTE5NTk5NjcsNTE5NjgyMDMsNTE5NzE3NzYsNTE5ODQ4MjcsNTE5ODU1ODMsNTIwMDI4MDUsNTIwMTYxMzYsNTIwMjAwMzEsNTIwMjQyMTcsNTIwMjYxOTQsNTIwMjY4MTQsNTIwMjcwOTgsNTIwMjc3NTEsNTIwMjc3NTMsNTIwMzU2NDQsNTIwMzY5MzksNTIwNDMyMjcsNTIwNDc2ODUsNTIwNDc2ODcsNTIwNDc2OTAsNTIwNjQxMzUsNTIwNjU1ODksNTIwNjk5MDIsNTIwNzM5NjMsNTIwNzU5MjIsNTIwNzY3MDUiLCJzZXJpYWxpemVkRXhwZXJpbWVudEZsYWdzIjoiSDVfYXN5bmNfbG9nZ2luZ19kZWxheV9tc1x1MDAzZDMwMDAwLjBcdTAwMjZhMTF5X2g1X2Fzc29jaWF0ZV9zdXJ2ZXlfcXVlc3Rpb25cdTAwM2R0cnVlXHUwMDI2YWJfZGV0X2FwYl9iXHUwMDNkdHJ1ZVx1MDAyNmFiX2RldF9hcG1cdTAwM2R0cnVlXHUwMDI2YWJfZGV0X2VsX2hcdTAwM2R0cnVlXHUwMDI2YWN0aW9uX2NvbXBhbmlvbl9jZW50ZXJfYWxpZ25fZGVzY3JpcHRpb25cdTAwM2R0cnVlXHUwMDI2YWRfcG9kX2Rpc2FibGVfY29tcGFuaW9uX3BlcnNpc3RfYWRzX3F1YWxpdHlcdTAwM2R0cnVlXHUwMDI2YWxsb3dfYXV0b2hpZGVfb25fcGF1c2VkX3ZpZGVvc1x1MDAzZHRydWVcdTAwMjZhbGxvd19kcm1fb3ZlcnJpZGVcdTAwM2R0cnVlXHUwMDI2YWxsb3dfbGl2ZV9hdXRvcGxheVx1MDAzZHRydWVcdTAwMjZhbGxvd19wb2x0ZXJndXN0X2F1dG9wbGF5XHUwMDNkdHJ1ZVx1MDAyNmFsbG93X3NraXBfbmV0d29ya2xlc3NcdTAwM2R0cnVlXHUwMDI2YWxsb3dfdnA5XzEwODBwX21xX2VuY1x1MDAzZHRydWVcdTAwMjZhbHdheXNfY2FjaGVfcmVkaXJlY3RfZW5kcG9pbnRcdTAwM2R0cnVlXHUwMDI2YWx3YXlzX3NlbmRfYW5kX3dyaXRlXHUwMDNkdHJ1ZVx1MDAyNmFubm90YXRpb25fbW9kdWxlX3Zhc3RfY2FyZHNfbG9hZF9sb2dnaW5nX2ZyYWN0aW9uXHUwMDNkMC4wXHUwMDI2YXNzaWduX2RybV9mYW1pbHlfYnlfZm9ybWF0XHUwMDNkdHJ1ZVx1MDAyNmF0dF93ZWJfcmVjb3JkX21ldHJpY3NcdTAwM2R0cnVlXHUwMDI2YXR0YWNoX2V4cGVyaW1lbnRfcHJvcGFnYXRpb25fY29udGV4dF90b19jb25maWdcdTAwM2R0cnVlXHUwMDI2YXR0bXVzaVx1MDAzZHRydWVcdTAwMjZhdXRvcGxheV90aW1lXHUwMDNkMTAwMDBcdTAwMjZhdXRvcGxheV90aW1lX2Zvcl9mdWxsc2NyZWVuXHUwMDNkLTFcdTAwMjZhdXRvcGxheV90aW1lX2Zvcl9tdXNpY19jb250ZW50XHUwMDNkLTFcdTAwMjZiZ192bV9yZWluaXRfdGhyZXNob2xkXHUwMDNkNzIwMDAwMFx1MDAyNmJsb2NrX3R2aHRtbDVfc2ltcGx5X2VtYmVkZGVkXHUwMDNkdHJ1ZVx1MDAyNmJsb2NrZWRfcGFja2FnZXNfZm9yX3Nwc1x1MDAzZFtdXHUwMDI2Ym90Z3VhcmRfYXN5bmNfc25hcHNob3RfdGltZW91dF9tc1x1MDAzZDMwMDBcdTAwMjZieXBhc3NfbGljZW5zZV9jaGVja19mb3JfaW5saW5lX211dGVkXHUwMDNkdHJ1ZVx1MDAyNmNhcHRpb25zX3VybF9hZGRfZWlcdTAwM2R0cnVlXHUwMDI2Y2hlY2tfbmF2aWdhdG9yX2FjY3VyYWN5X3RpbWVvdXRfbXNcdTAwM2QwXHUwMDI2Y2hlY2tfcGxheWFiaWxpdHlfc3RhdHVzX2luX2ZpbGxlcnNcdTAwM2R0cnVlXHUwMDI2Y2xpZW50X3VpX2VuYWJsZV9tdWx0aV90cmFja19hdWRpb19vbl93ZWJfZW1iZWRkZWRfcGxheWVyXHUwMDNkdHJ1ZVx1MDAyNmNvbXByZXNzaW9uX2Rpc2FibGVfcG9pbnRcdTAwM2QxMFx1MDAyNmNvd19vcHRpbWl6ZV9pZG9tX2NvbXBhdFx1MDAzZHRydWVcdTAwMjZjc2lfb25fZ2VsXHUwMDNkdHJ1ZVx1MDAyNmN1c3RvbV9hY3RpdmVfdmlld190b3NfdGltZW91dF9tc1x1MDAzZDM2MDAwMDBcdTAwMjZkYXNoX21hbmlmZXN0X3ZlcnNpb25cdTAwM2Q1XHUwMDI2ZGVidWdfYmFuZGFpZF9ob3N0bmFtZVx1MDAzZFx1MDAyNmRlYnVnX2JhbmRhaWRfcG9ydFx1MDAzZDBcdTAwMjZkZWJ1Z19zaGVybG9nX3VzZXJuYW1lXHUwMDNkXHUwMDI2ZGVkdXBwaW5nX3NlcnZlcl92ZVx1MDAzZHRydWVcdTAwMjZkZWxoaV9mYXN0X2ZvbGxvd19hdXRvbmF2X3RvZ2dsZVx1MDAzZHRydWVcdTAwMjZkZWxoaV9tb2Rlcm5fcGxheWVyX2RlZmF1bHRfdGh1bWJuYWlsX3BlcmNlbnRhZ2VcdTAwM2QwLjBcdTAwMjZkZWxoaV9tb2Rlcm5fcGxheWVyX2Zhc3Rlcl9hdXRvaGlkZV9kZWxheV9tc1x1MDAzZDIwMDBcdTAwMjZkZWxoaV9tb2Rlcm5fcGxheWVyX3BhdXNlX3RodW1ibmFpbF9wZXJjZW50YWdlXHUwMDNkMC42XHUwMDI2ZGVsaGlfbW9kZXJuX3dlYl9wbGF5ZXJfYmxlbmRpbmdfbW9kZVx1MDAzZFx1MDAyNmRlbGhpX21vZGVybl93ZWJfcGxheWVyX2Rpc2FibGVfZnJvc3RlZF9nbGFzc1x1MDAzZHRydWVcdTAwMjZkZWxoaV9tb2Rlcm5fd2ViX3BsYXllcl9ob3Jpem9udGFsX3ZvbHVtZV9jb250cm9sc1x1MDAzZHRydWVcdTAwMjZkZWxoaV9tb2Rlcm5fd2ViX3BsYXllcl9saHNfdm9sdW1lX2NvbnRyb2xzXHUwMDNkdHJ1ZVx1MDAyNmRlbGhpX21vZGVybl93ZWJfcGxheWVyX3Jlc3BvbnNpdmVfY29tcGFjdF9jb250cm9sc190aHJlc2hvbGRcdTAwM2QwXHUwMDI2ZGVwcmVjYXRlX2NhcHRpb25zX3RyYWNrX2NvdW50X2Rpc3BsYXlcdTAwM2R0cnVlXHUwMDI2ZGVwcmVjYXRlX2RlbGF5X3BpbmdcdTAwM2R0cnVlXHUwMDI2ZGVwcmVjYXRlX3BhaXJfc2VydmxldF9lbmFibGVkXHUwMDNkdHJ1ZVx1MDAyNmRlc2t0b3Bfc3BhcmtsZXNfbGlnaHRfY3RhX2J1dHRvblx1MDAzZHRydWVcdTAwMjZkaXNhYmxlX2F2MV9zZXR0aW5nXHUwMDNkdHJ1ZVx1MDAyNmRpc2FibGVfY2hpbGRfbm9kZV9hdXRvX2Zvcm1hdHRlZF9zdHJpbmdzXHUwMDNkdHJ1ZVx1MDAyNmRpc2FibGVfbGlmYV9pbl8ya180a1x1MDAzZHRydWVcdTAwMjZkaXNhYmxlX2xvZ190b192aXNpdG9yX2xheWVyXHUwMDNkdHJ1ZVx1MDAyNmRpc2FibGVfcGFjZl9sb2dnaW5nX2Zvcl9tZW1vcnlfbGltaXRlZF90dlx1MDAzZHRydWVcdTAwMjZkaXNhYmxlX3JlZHVjZWRfZnVsbHNjcmVlbl9hdXRvcGxheV9jb3VudGRvd25fZm9yX21pbm9yc1x1MDAzZHRydWVcdTAwMjZkaXNhYmxlX3JlZWxfaXRlbV93YXRjaF9mb3JtYXRfZmlsdGVyaW5nXHUwMDNkdHJ1ZVx1MDAyNmRpc2FibGVfdG91Y2hfZXZlbnRzX29uX3NraXBfYnV0dG9uXHUwMDNkdHJ1ZVx1MDAyNmR1cmF0aW9uX2JlZm9yZV9wYXVzZV9hZF9icmVha19tc19mb3Jfc3lzdGVtX3BhdXNlXHUwMDNkNTAwMFx1MDAyNmVkZ2VfZW5jcnlwdGlvbl9maWxsX3ByaW1hcnlfa2V5X3ZlcnNpb25cdTAwM2R0cnVlXHUwMDI2ZW1iZWRzX2Rlc2t0b2ZmX2VuYWJsZV9hZHNfdG9wX2Jhclx1MDAzZHRydWVcdTAwMjZlbWJlZHNfZGVza3RvcF9lbmFibGVfdm9sdW1lX3NsaWRlclx1MDAzZHRydWVcdTAwMjZlbWJlZHNfZW5hYmxlX2NoYW5uZWxfc3Vic2NyaWJlX2RlcHJlY2F0aW9uXHUwMDNkdHJ1ZVx1MDAyNmVtYmVkc19lbmFibGVfZW1iZWRfY29uZmlnX2Zvcl9tdXRlZF9hdXRvcGxheVx1MDAzZHRydWVcdTAwMjZlbWJlZHNfZW5hYmxlX2lubmVydHViZV9zdG9yZVx1MDAzZHRydWVcdTAwMjZlbWJlZHNfZW5hYmxlX21vdmVfc2V0X2NlbnRlcl9jcm9wX3RvX3B1YmxpY1x1MDAzZHRydWVcdTAwMjZlbWJlZHNfZW5hYmxlX3Blcl92aWRlb19lbWJlZF9jb25maWdcdTAwM2R0cnVlXHUwMDI2ZW1iZWRzX3dlYl9saXRlX21vZGVcdTAwM2QxXHUwMDI2ZW5hYmxlX2ExMXlfZm9jdXNfZml4X2Zvcl9tYWNfcGFuZWxfb25fZGVza3RvcFx1MDAzZHRydWVcdTAwMjZlbmFibGVfYWJhbmRvbl9waW5nX2Zvcl9zc2RhaVx1MDAzZHRydWVcdTAwMjZlbmFibGVfYWNjZXNzX2NvZGVfc2VydmljZV9ycGNcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2FjaV9vbl9scl9mZWVkc1x1MDAzZHRydWVcdTAwMjZlbmFibGVfYWN0aXZlX3ZpZXdfZGlzcGxheV9hZF9yZW5kZXJlcl93ZWJfaG9tZVx1MDAzZHRydWVcdTAwMjZlbmFibGVfYWN0aXZlX3ZpZXdfbHJfc2hvcnRzX3ZpZGVvXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9hY3RpdmVfdmlld193ZWJfc2hvcnRzX3ZpZGVvXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9hZF9jcG5fbWFjcm9fc3Vic3RpdHV0aW9uX2Zvcl9jbGlja19waW5nc1x1MDAzZHRydWVcdTAwMjZlbmFibGVfYWRfZGlzY2xvc3VyZV9iYW5uZXJfYTExeV9maXhcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2FudGlzY3JhcGluZ193ZWJfcGxheWVyX2V4cGlyZWRcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2FwcF9wcm9tb19lbmRjYXBfZW1sX29uX3RhYmxldFx1MDAzZHRydWVcdTAwMjZlbmFibGVfYXR0ZW50aW9uX2xvZ2dpbmdfbWVhc3VyZV9vbl9zaG93blx1MDAzZHRydWVcdTAwMjZlbmFibGVfYXVfdTE2X3ZlcmlmeV9hZ2VfcGFnZVx1MDAzZHRydWVcdTAwMjZlbmFibGVfYXV0b21vdGl2ZV9mb3JtX2ZhY3Rvcl9jaGVja1x1MDAzZHRydWVcdTAwMjZlbmFibGVfYmF0Y2hlZF9jcm9zc19kZXZpY2VfcGluZ3NfaW5fZ2VsX2Zhbm91dFx1MDAzZHRydWVcdTAwMjZlbmFibGVfY2FwYWJpbGl0eV9mb3JtYXRfZmlsdGVyX2luX3dhdGNoX3NlcnZlclx1MDAzZHRydWVcdTAwMjZlbmFibGVfY2FzdF9mb3Jfd2ViX3VucGx1Z2dlZFx1MDAzZHRydWVcdTAwMjZlbmFibGVfY2VudGVyZWRfY2FwdGlvbl9mb3JfdHZmaWxtX3ZpZGVvXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9jaXBoZXJfZm9yX21hbmlmZXN0X3VybHNcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2NsZWFudXBfbWFzdGhlYWRfYXV0b3BsYXlfaGFja19maXhcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2NsaWVudF9wYWdlX2lkX2hlYWRlcl9mb3JfZmlyc3RfcGFydHlfcGluZ3NcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2NsaWVudF9zbGlfbG9nZ2luZ1x1MDAzZHRydWVcdTAwMjZlbmFibGVfY2xpZW50X3ZlX3NwZWNcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2N0YV9iYW5uZXJfb25fdW5wbHVnZ2VkX2xyXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9jdXN0b21fcGxheWhlYWRfcGFyc2luZ1x1MDAzZHRydWVcdTAwMjZlbmFibGVfY3VzdG9tX3NjcnViYmVyX3YyXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9kYWlfc2RmX2g1X3ByZXJvbGxcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2RhdGFzeW5jX2lkX2hlYWRlcl9pbl93ZWJfdnNzX3BpbmdzXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9kZWZhdWx0X21vbm9fY3RhX21pZ3JhdGlvbl93ZWJfY2xpZW50XHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9kc2FfYWRfYmFkZ2VfZm9yX2FjdGlvbl9lbmRjYXBfb25fYW5kcm9pZFx1MDAzZHRydWVcdTAwMjZlbmFibGVfZHNhX2FkX2JhZGdlX2Zvcl9hY3Rpb25fZW5kY2FwX29uX2lvc1x1MDAzZHRydWVcdTAwMjZlbmFibGVfZW5kZW1pY19oaWdoX2Njdl9zbWVhcmluZ19oNVx1MDAzZHRydWVcdTAwMjZlbmFibGVfZW50aXR5X3N0b3JlX2Zyb21fZGVwZW5kZW5jeV9pbmplY3Rpb25cdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2Vycm9yX2NvcnJlY3Rpb25zX2luZm9jYXJkX3dlYl9jbGllbnRcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2Vycm9yX2NvcnJlY3Rpb25zX2luZm9jYXJkc19pY29uX3dlYlx1MDAzZHRydWVcdTAwMjZlbmFibGVfZ2V0X3JlbWluZGVyX2J1dHRvbl9vbl93ZWJcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX2lubGluZV9tdXRlZF9wbGF5YmFja19vbl93ZWJfc2VhcmNoXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9pbmxpbmVfbXV0ZWRfcGxheWJhY2tfb25fd2ViX3NlYXJjaF9mb3JfdmRjXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9pbmxpbmVfbXV0ZWRfcGxheWJhY2tfb25fd2ViX3NlYXJjaF9mb3JfdmRjYlx1MDAzZHRydWVcdTAwMjZlbmFibGVfaXNfZXh0ZW5kZWRfbW9uaXRvcmluZ1x1MDAzZHRydWVcdTAwMjZlbmFibGVfbHRjX3BhcmFtX2ZldGNoX2Zyb21faW5uZXJ0dWJlXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9taXhlZF9kaXJlY3Rpb25fZm9ybWF0dGVkX3N0cmluZ3NcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX21vZGVybl9za2lwX2J1dHRvbl9vbl93ZWJcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX213ZWJfYXVkaW9fdHJhY2tfcGlja2VyXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9td2ViX2tleWJvYXJkX3Nob3J0Y3V0c1x1MDAzZHRydWVcdTAwMjZlbmFibGVfbmV3X3BhaWRfcHJvZHVjdF9wbGFjZW1lbnRcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX29wZW5faW5fbmV3X3RhYl9pY29uX2Zvcl9zaG9ydF9kcl9mb3JfZGVza3RvcF9zZWFyY2hcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX291dF9vZl9zdG9ja190ZXh0X2FsbF9zdXJmYWNlc1x1MDAzZHRydWVcdTAwMjZlbmFibGVfcGFpZF9jb250ZW50X292ZXJsYXlfYnVnZml4XHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9wYXVzZV9hZHNfb25feXR2X2h0bWw1XHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9wbGF5ZXJfY2FwdGlvbnNfcGVyc2lzdGVuY2Vfc3RhdGVfbWFjaGluZVx1MDAzZHRydWVcdTAwMjZlbmFibGVfcG9fZGVjb3JhdGlvbl9vZl9mb3JjZWRfdHJhY2tzXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9wb2xpY3lfYmFzZWRfaHFhX2ZpbHRlcl9pbl93YXRjaF9zZXJ2ZXJcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3Byb2dyZXNfY29tbWFuZHNfbHJfZmVlZHNcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3Byb2dyZXNzX2NvbW1hbmRzX2VsX2RhaVx1MDAzZHRydWVcdTAwMjZlbmFibGVfcHJvZ3Jlc3NfY29tbWFuZHNfbHJfc2hvcnRzXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9wdWJsaXNoaW5nX3JlZ2lvbl9wYXJhbV9pbl9zdXNcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3B2X3NjcmVlbl9tb2Rlcm5fdGV4dFx1MDAzZHRydWVcdTAwMjZlbmFibGVfcnByX3Rva2VuX29uX2x0bF9sb29rdXBcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NjcmVlbl9tYW5hZ2VyX2xheWVyX3NlcGFyYXRpb25cdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NkZl9jb21wYW5pb25faDVcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NkZl9kYWlfaDVfbWlkcm9sbFx1MDAzZHRydWVcdTAwMjZlbmFibGVfc2RmX2g1X2VuZGVtaWNfbWlkX3Bvc3Rfcm9sbFx1MDAzZHRydWVcdTAwMjZlbmFibGVfc2RmX29uX2g1X3VucGx1Z2dlZF92b2RfbWlkcm9sbFx1MDAzZHRydWVcdTAwMjZlbmFibGVfc2RmX3Nob3J0c19wbGF5ZXJfYnl0ZXNfaDVcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NlcnZlcl9kcml2ZW5fYWJyXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9zZXJ2ZXJfZHJpdmVuX2Ficl9mb3JfYmFja2dyb3VuZGFibGVcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NlcnZlcl9kcml2ZW5fYWJyX3VybF9nZW5lcmF0aW9uXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9zZXJ2ZXJfZHJpdmVuX3JlYWRhaGVhZFx1MDAzZHRydWVcdTAwMjZlbmFibGVfc2tpcF9hZF9ndWlkYW5jZV9wcm9tcHRcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NraXBfdG9fbmV4dF9tZXNzYWdpbmdcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NraXBwYWJsZV9hZHNfZm9yX3VucGx1Z2dlZF9hZF9wb2RcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3NtYXJ0X3NraXBfcGxheWVyX2NvbnRyb2xzX3Nob3duX29uX3dlYlx1MDAzZHRydWVcdTAwMjZlbmFibGVfc21hcnRfc2tpcF9wbGF5ZXJfY29udHJvbHNfc2hvd25fb25fd2ViX2luY3JlYXNlZF90cmlnZ2VyaW5nX3NlbnNpdGl2aXR5XHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9zbWFydF9za2lwX3NwZWVkbWFzdGVyX29uX3dlYlx1MDAzZHRydWVcdTAwMjZlbmFibGVfc21lYXJpbmdfZXhwYW5zaW9uX2RhaVx1MDAzZHRydWVcdTAwMjZlbmFibGVfc3BsaXRfc2NyZWVuX2FkX2Jhc2VsaW5lX2V4cGVyaWVuY2VfZW5kZW1pY19saXZlX2g1XHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9zdWJmcmFnbWVudGVkX2NhcHRpb25fZmlsdGVyaW5nXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV9zdXBleF9td2ViX2RlbW9fd2ViZmVcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3RvX2NhbGxfcGxheXJlYWR5X2JhY2tlbmRfZGlyZWN0bHlcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3VuaWZpZWRfYWN0aW9uX2VuZGNhcF9vbl93ZWJcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3Zlbm9tX25vdGlmaWNhdGlvbl9jYWNoZVx1MDAzZHRydWVcdTAwMjZlbmFibGVfdmlkZW9fZGlzcGxheV9jb21wYWN0X2J1dHRvbl9ncm91cF9mb3JfZGVza3RvcF9zZWFyY2hcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3ZvaWNlX2Jvb3N0X2ZlYXR1cmVcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3ZwOV9hcHBsZXR2NV9vbl9zZXJ2ZXJcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3dlYl9kZWxoaV9pY29uc1x1MDAzZHRydWVcdTAwMjZlbmFibGVfd2ViX2hvbWVfdG9wX2xhbmRzY2FwZV9pbWFnZV9sYXlvdXRfbGV2ZWxfY2xpY2tcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3dlYl9tZWRpYV9zZXNzaW9uX21ldGFkYXRhX2ZpeFx1MDAzZHRydWVcdTAwMjZlbmFibGVfd2ViX3ByZW1pdW1fdmFyaXNwZWVkX3Vwc2VsbFx1MDAzZHRydWVcdTAwMjZlbmFibGVfd2ViX3Nob3J0c19hdWRpb190cmFja1x1MDAzZHRydWVcdTAwMjZlbmFibGVfd2ViX3RpZXJlZF9nZWxcdTAwM2R0cnVlXHUwMDI2ZW5hYmxlX3dpel9xdWV1ZV9lZmZlY3RfYW5kX29uX2luaXRfaW5pdGlhbF9ydW5zXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV95dF9hdGFfaWZyYW1lX2F1dGh1c2VyXHUwMDNkdHJ1ZVx1MDAyNmVuYWJsZV95dHZfY3NkYWlfdnA5XHUwMDNkdHJ1ZVx1MDAyNmVuZGVtaWNfaGlnaF9jY3Zfc21lYXJpbmdfYWxsb3dlZF92aWRlb19pZHNcdTAwM2RbT0psd0lkb0Z6OUEsIEFyS2JBeDFLLTJVLCBtX2RoTVN2VUNJYywgQzFEaHBKMDdadUUsIE5xMndZbFdGdWNnLCBKQzdmM0VVRGFxdywgdnIzWHlWQ1I0VDAsIGdDTmVEV0NJMHZvLCBrQlR1ZG00Z2VNcywgRnhzZlZYNkIxTWssIHlsWUpTQlVnYU1BLCBWV2hRNnhzcG5TYywgUkhVYXVNY1lsWDAsIGNiMTJLbU1NREpBLCBXSnhFal9ocnBTZywgZXVoWS10bWc5eDgsIFRsSVZJMkVXN1IwLCBNSU5mdk9YNEJ6SSwgeUhtUFd6a2hjWjgsIHAzdzF2TzlYdjI0LCBWbGFDbnAxZnhJOCwgLU9mQTA0QkQ0R0EsIDFvZFkzSVlzTm5vLCB3aVRUclZxUlZEdywgRGZtMnJCLW5ROVksIFFtMUZ0ejhsVm5JLCA5aXRBeHFfU0dETSwgeUZJM3dwWHk0ekEsIFB5NUpZWlhKdnpvLCBiNHRFNWFLaHRsZywgNUpEeGpzQVZhR2ssIGVVbWZHUGF6dUVNLCBXOG5UaHE2MlZiNCwgVkxqdlMzdWZsWGMsIEJmZExLdkpCTV9jLCB3ZUxYZHdWalN4cywgMkphLXVQT2t6N0ksIEE5UUJWRkVZeE9RLCBrLVpGUWtrSFVmYywgd3V1MEQyMEFacUksIF9IdmlTeUM3elNVLCBfX3hPel9RM3FSNCwgdzJzQjg3akxFMUksIDhyVFRFTWRNaDhRLCAtazZtcGdteGVyVSwgOTdja25ySnlMV2csIDJGSXRWeXhMTk5jLCBvdG54ZmNzR0UtWSwgczl4TDFEcEJzZlEsIHdmQUdCVmdVcnJvLCBuWEg2VHhRLXNpOCwgV2lJMVhnX25FdTgsIDNmbGFzR1ZVckNBLCBlRFlfSGU5MmxjVSwgYTQ3Y2tYS1pqeEksIEk2V1JYZUtaSzY0LCBUOUo1RHFQMkRLdywgS3RrX0kwcFVwRzgsIGVRMmN6R3FPQ1BnLCBoTG1VNDlobVo0YywgN2Y3TWdhTUU3U2MsIFFCNUJOZEJGdWpFLCBBR2h0TVVfZmk3MCwgcDJSYVFVUlJBd0EsIG16X19FTVlwV1B3LCA2amhMdVNRVkl4VSwgckM4M3ZfdXVJcW8sIDZEYUdkSlJfZUxnLCBjbTQzdVhqZnZaWSwgWTFKc1BwbTJibVEsIHowOTdqUHlLZWVvLCBUWVZaV1VUamt4MCwgVkhhQXZlbmZURGssIHR2OU9VXzVRMHBRLCA2b0tDdnptNkhtZywgQkVGVUVSaFQwbjAsIHVUTi1ldTAtT1hFLCBoYmFwcmhSN3pUbywgMkNWMFYtb01ORk0sIHU4ZFNPS29OSnAwLCBIOE1xcXdtRnN4WSwgSXNra21OUEpkVWssIFg5SF9FenBER1hRXVx1MDAyNmVuZGVtaWNfaGlnaF9jY3Zfc21lYXJpbmdfbWF4X3dpbmRvd19zZWNvbmRzXHUwMDNkNjBcdTAwMjZleHBhbmRfbWVkaWF0ZWtfZGVueWxpc3RfdG9fYWxsX2xpdmVfdnA5X2luX2JhY2tlbmRfZXhwZXJpbWVudFx1MDAzZFtdXHUwMDI2ZXhwb3J0X25ldHdvcmtsZXNzX29wdGlvbnNcdTAwM2R0cnVlXHUwMDI2ZXhwb3J0X3BsYXllcl92ZXJzaW9uX3RvX3l0Y29uZmlnXHUwMDNkdHJ1ZVx1MDAyNmZpbGxfYWRzX3VzdHJlYW1lcl9jb25maWdcdTAwM2R0cnVlXHUwMDI2ZmlsbF9saXZlX3JlcXVlc3RfY29uZmlnX2luX3VzdHJlYW1lcl9jb25maWdcdTAwM2R0cnVlXHUwMDI2ZmlsbF9zaW5nbGVfdmlkZW9fd2l0aF9ub3RpZnlfdG9fbGFzclx1MDAzZHRydWVcdTAwMjZmaWx0ZXJfdmJfd2l0aG91dF9ub25fdmJfZXF1aXZhbGVudHNcdTAwM2R0cnVlXHUwMDI2ZmlsdGVyX3ZwOV9mb3JfbGl2ZV9kYWlcdTAwM2R0cnVlXHUwMDI2Zml4X2FkX21pbmlwbGF5ZXJfY29udHJvbHNfcmVuZGVyaW5nXHUwMDNkdHJ1ZVx1MDAyNmZpeF9hZHNfdHJhY2tpbmdfZm9yX3N3Zl9jb25maWdfZGVwcmVjYXRpb25fbXdlYlx1MDAzZHRydWVcdTAwMjZmaXhfaDVfdG9nZ2xlX2J1dHRvbl9hMTF5XHUwMDNkdHJ1ZVx1MDAyNmZpeF9zdXJ2ZXlfY29sb3JfY29udHJhc3Rfb25fZGVzdG9wXHUwMDNkdHJ1ZVx1MDAyNmZyZXNjYV9wb2xsaW5nX2RlbGF5X292ZXJyaWRlXHUwMDNkMFx1MDAyNmdhYl9yZXR1cm5fc2Ficl9zc2RhaV9jb25maWdcdTAwM2R0cnVlXHUwMDI2Z2VsX21pbl9iYXRjaF9zaXplXHUwMDNkM1x1MDAyNmdlbF9xdWV1ZV90aW1lb3V0X21heF9tc1x1MDAzZDYwMDAwXHUwMDI2Z3ZpX2NoYW5uZWxfY2xpZW50X3NjcmVlblx1MDAzZHRydWVcdTAwMjZoNV9jb21wYW5pb25fZW5hYmxlX2FkY3BuX21hY3JvX3N1YnN0aXR1dGlvbl9mb3JfY2xpY2tfcGluZ3NcdTAwM2R0cnVlXHUwMDI2aDVfZW5hYmxlX2FkX21ic1x1MDAzZHRydWVcdTAwMjZoNV9pbnBsYXllcl9lbmFibGVfYWRjcG5fbWFjcm9fc3Vic3RpdHV0aW9uX2Zvcl9jbGlja19waW5nc1x1MDAzZHRydWVcdTAwMjZoNV9yZXNldF9jYWNoZV9hbmRfZmlsdGVyX2JlZm9yZV91cGRhdGVfbWFzdGhlYWRcdTAwM2R0cnVlXHUwMDI2aDVfemVyb19kdXJhdGlvbl9jdWVfcmFuZ2VfZm9yX2RpYnNcdTAwM2R0cnVlXHUwMDI2aGZyX2Ryb3BwZWRfZnJhbWVyYXRlX2ZhbGxiYWNrX3RocmVzaG9sZFx1MDAzZDBcdTAwMjZoaWdoX2Njdl9jbGllbnRfc2lkZV9jYWNoaW5nX2g1XHUwMDNkdHJ1ZVx1MDAyNmhsc191c2VfbmV3X2NvZGVjc19zdHJpbmdfYXBpXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2FkX3RpbWVvdXRfbXNcdTAwM2QwXHUwMDI2aHRtbDVfYWRhcHRhdGlvbl9zdGVwX2NvdW50XHUwMDNkMFx1MDAyNmh0bWw1X2Fkc19wcmVyb2xsX2xvY2tfdGltZW91dF9kZWxheV9tc1x1MDAzZDE1MDAwXHUwMDI2aHRtbDVfYWxsb3dfbXVsdGl2aWV3X3RpbGVfcHJlbG9hZFx1MDAzZHRydWVcdTAwMjZodG1sNV9hbGxvd19wcmVsb2FkaW5nX3dpdGhfaWRsZV9vbmx5X25ldHdvcmtfZm9yX3NhYnJcdTAwM2R0cnVlXHUwMDI2aHRtbDVfYWxsb3dfdmlkZW9fa2V5ZnJhbWVfd2l0aG91dF9hdWRpb1x1MDAzZHRydWVcdTAwMjZodG1sNV9hcHBseV9jb25zdHJhaW50c19pbl9jbGllbnRfZm9yX3NhYnJcdTAwM2R0cnVlXHUwMDI2aHRtbDVfYXBwbHlfbWluX2ZhaWx1cmVzXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2FwcGx5X3N0YXJ0X3RpbWVfd2l0aGluX2Fkc19mb3Jfc3NkYWlfdHJhbnNpdGlvbnNcdTAwM2R0cnVlXHUwMDI2aHRtbDVfYXRyX2Rpc2FibGVfZm9yY2VfZmFsbGJhY2tcdTAwM2R0cnVlXHUwMDI2aHRtbDVfYXR0X3BsYXliYWNrX3RpbWVvdXRfbXNcdTAwM2QzMDAwMFx1MDAyNmh0bWw1X2F0dGFjaF9udW1fcmFuZG9tX2J5dGVzX3RvX2JhbmRhaWRcdTAwM2QwXHUwMDI2aHRtbDVfYXR0YWNoX3BvX3Rva2VuX3RvX2JhbmRhaWRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfYXV0b25hdl9jYXBfaWRsZV9zZWNzXHUwMDNkMFx1MDAyNmh0bWw1X2F1dG9uYXZfcXVhbGl0eV9jYXBcdTAwM2Q3MjBcdTAwMjZodG1sNV9hdXRvcGxheV9kZWZhdWx0X3F1YWxpdHlfY2FwXHUwMDNkMFx1MDAyNmh0bWw1X2F1eGlsaWFyeV9lc3RpbWF0ZV93ZWlnaHRcdTAwM2QwLjBcdTAwMjZodG1sNV9hdjFfb3JkaW5hbF9jYXBcdTAwM2QwXHUwMDI2aHRtbDVfYmFuZGFpZF9hdHRhY2hfY29udGVudF9wb190b2tlblx1MDAzZHRydWVcdTAwMjZodG1sNV9ibG9ja19waXBfc2FmYXJpX2RlbGF5XHUwMDNkMFx1MDAyNmh0bWw1X2J5cGFzc19jb250ZW50aW9uX3NlY3NcdTAwM2QwLjBcdTAwMjZodG1sNV9ieXRlcmF0ZV9zb2Z0X2NhcFx1MDAzZDBcdTAwMjZodG1sNV9jaGVja19mb3JfaWRsZV9uZXR3b3JrX2ludGVydmFsX21zXHUwMDNkMTAwMFx1MDAyNmh0bWw1X2NoaXBzZXRfc29mdF9jYXBcdTAwM2Q4MTkyXHUwMDI2aHRtbDVfY2xhbXBfaW52YWxpZF9zZWVrX3RvX21pbl9zZWVrYWJsZV90aW1lXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2NvbnN1bWVfYWxsX2J1ZmZlcmVkX2J5dGVzX29uZV9wb2xsXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2NvbnRpbnVvdXNfZ29vZHB1dF9wcm9iZV9pbnRlcnZhbF9tc1x1MDAzZDBcdTAwMjZodG1sNV9kNmRlNF9jbG91ZF9wcm9qZWN0X251bWJlclx1MDAzZDg2ODYxODY3Njk1Mlx1MDAyNmh0bWw1X2RlYnVnX2RhdGFfbG9nX3Byb2JhYmlsaXR5XHUwMDNkMC4wXHUwMDI2aHRtbDVfZGVjb2RlX3RvX3RleHR1cmVfY2FwXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2RlZmF1bHRfYWRfZ2Fpblx1MDAzZDAuNVx1MDAyNmh0bWw1X2RlZmF1bHRfYXYxX3RocmVzaG9sZFx1MDAzZDBcdTAwMjZodG1sNV9kZWZhdWx0X3F1YWxpdHlfY2FwXHUwMDNkMFx1MDAyNmh0bWw1X2RlZmVyX2ZldGNoX2F0dF9tc1x1MDAzZDBcdTAwMjZodG1sNV9kZWxheWVkX3JldHJ5X2NvdW50XHUwMDNkMVx1MDAyNmh0bWw1X2RlbGF5ZWRfcmV0cnlfZGVsYXlfbXNcdTAwM2Q1MDAwXHUwMDI2aHRtbDVfZGVwcmVjYXRlX2Fkc2VydmljZVx1MDAzZHRydWVcdTAwMjZodG1sNV9kZXByZWNhdGVfbWFuaWZlc3RmdWxfZmFsbGJhY2tcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZGVwcmVjYXRlX3ZpZGVvX3RhZ19wb29sXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2Rlc2t0b3BfdnIxODBfYWxsb3dfcGFubmluZ1x1MDAzZHRydWVcdTAwMjZodG1sNV9kZl9kb3duZ3JhZGVfdGhyZXNoXHUwMDNkMC42XHUwMDI2aHRtbDVfZGlzYWJsZV9iYW5kd2lkdGhfY29mYWN0b3JzX2Zvcl9zYWJyX2xpdmVcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZGlzYWJsZV9jbGllbnRfYXV0b25hdl9jYXBfZm9yX29uZXNpZVx1MDAzZHRydWVcdTAwMjZodG1sNV9kaXNhYmxlX2xvb3BfcmFuZ2VfZm9yX3Nob3J0c19hZHNcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZGlzYWJsZV9ub25fY29udGlndW91c1x1MDAzZHRydWVcdTAwMjZodG1sNV9kaXNhYmxlX3BlYWtfc2hhdmVfZm9yX29uZXNpZVx1MDAzZHRydWVcdTAwMjZodG1sNV9kaXNhYmxlX3VzdHJlYW1lcl9jb25zdHJhaW50X2Zvcl9zYWJyXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2Rpc2FibGVfd2ViX3NhZmFyaV9kYWlcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZGlzcGxheWVkX2ZyYW1lX3JhdGVfZG93bmdyYWRlX3RocmVzaG9sZFx1MDAzZDQ1XHUwMDI2aHRtbDVfZHJtX2J5dGVyYXRlX3NvZnRfY2FwXHUwMDNkMFx1MDAyNmh0bWw1X2RybV9jaGVja19hbGxfa2V5X2Vycm9yX3N0YXRlc1x1MDAzZHRydWVcdTAwMjZodG1sNV9kcm1fY3BpX2xpY2Vuc2Vfa2V5XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2RybV9saXZlX2J5dGVyYXRlX3NvZnRfY2FwXHUwMDNkMFx1MDAyNmh0bWw1X2Vhcmx5X21lZGlhX2Zvcl9zaGFycGVyX3Nob3J0c1x1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfYWMzXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9hdWRpb190cmFja19zdGlja2luZXNzXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9hdWRpb190cmFja19zdGlja2luZXNzX3BoYXNlX3R3b1x1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfY2FwdGlvbl9jaGFuZ2VzX2Zvcl9tb3NhaWNcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5hYmxlX2NvbXBvc2l0ZV9lbWJhcmdvXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9kNmRlNFx1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfZDZkZTRfY29sZF9zdGFydF9hbmRfZXJyb3JcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5hYmxlX2Q2ZGU0X2lkbGVfcHJpb3JpdHlfam9iXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9kcmNcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5hYmxlX2RyY190b2dnbGVfYXBpXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9lYWMzXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9lbWJlZGRlZF9wbGF5ZXJfdmlzaWJpbGl0eV9zaWduYWxzXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9vZHVjXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9zYWJyX2Zvcm1hdF9zZWxlY3Rpb25cdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5hYmxlX3NhYnJfZnJvbV93YXRjaF9zZXJ2ZXJcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5hYmxlX3NhYnJfaG9zdF9mYWxsYmFja1x1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfc2Ficl9vbl95dF9lbWJlZHNcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5hYmxlX3NhYnJfdm9kX3N0cmVhbWluZ194aHJcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5hYmxlX3NlcnZlcl9kcml2ZW5fcmVxdWVzdF9jYW5jZWxsYXRpb25cdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5hYmxlX3Nwc19yZXRyeV9iYWNrb2ZmX21ldGFkYXRhX3JlcXVlc3RzXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV9zc2RhaV90cmFuc2l0aW9uX3dpdGhfb25seV9lbnRlcl9jdWVyYW5nZVx1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfdHJpZ2dlcmluZ19jdWVwb2ludF9mb3Jfc2xvdFx1MDAzZHRydWVcdTAwMjZodG1sNV9lbmFibGVfdHZvc19kYXNoXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2VuYWJsZV90dm9zX2VuY3J5cHRlZF92cDlcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZW5jb3VyYWdlX2FycmF5X2NvYWxlc2NpbmdcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZmlsbF9kZWZhdWx0X21vc2FpY19hdWRpb190cmFja19pZFx1MDAzZHRydWVcdTAwMjZodG1sNV9maXhlZF9tZWRpYV9kdXJhdGlvbl9mb3JfcmVxdWVzdFx1MDAzZDBcdTAwMjZodG1sNV9mbHVzaF9pbmRleF9vbl91cGRhdGVkX3RpbWVzdGFtcF9vZmZzZXRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZm9yY2Vfc2Ficl9mcm9tX3dhdGNoX3NlcnZlcl9mb3JfZGZzc1x1MDAzZHRydWVcdTAwMjZodG1sNV9mb3J3YXJkX2NsaWNrX3RyYWNraW5nX3BhcmFtc19vbl9yZWxvYWRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfZ2FwbGVzc19hZF9hdXRvcGxheV9vbl92aWRlb190b19hZF9vbmx5XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2dhcGxlc3NfZW5kZWRfdHJhbnNpdGlvbl9idWZmZXJfbXNcdTAwM2QyMDBcdTAwMjZodG1sNV9nYXBsZXNzX2hhbmRvZmZfY2xvc2VfZW5kX2xvbmdfcmVidWZmZXJfY2ZsXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2dhcGxlc3NfaGFuZG9mZl9jbG9zZV9lbmRfbG9uZ19yZWJ1ZmZlcl9kZWxheV9tc1x1MDAzZDBcdTAwMjZodG1sNV9nYXBsZXNzX2xvb3Bfc2Vla19vZmZzZXRfaW5fbWlsbGlcdTAwM2QwXHUwMDI2aHRtbDVfZ2FwbGVzc19zbG93X3NlZWtfY2ZsXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2dhcGxlc3Nfc2xvd19zZWVrX2RlbGF5X21zXHUwMDNkMFx1MDAyNmh0bWw1X2dhcGxlc3Nfc2xvd19zdGFydF9kZWxheV9tc1x1MDAzZDBcdTAwMjZodG1sNV9nZW5lcmF0ZV9jb250ZW50X3BvX3Rva2VuXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2dlbmVyYXRlX3Nlc3Npb25fcG9fdG9rZW5cdTAwM2R0cnVlXHUwMDI2aHRtbDVfZ2xfZnBzX3RocmVzaG9sZFx1MDAzZDBcdTAwMjZodG1sNV9oYXJkX2NhcF9tYXhfdmVydGljYWxfcmVzb2x1dGlvbl9mb3Jfc2hvcnRzXHUwMDNkMFx1MDAyNmh0bWw1X2hkY3BfcHJvYmluZ19zdHJlYW1fdXJsXHUwMDNkXHUwMDI2aHRtbDVfaGVhZF9taXNzX3NlY3NcdTAwM2QwLjBcdTAwMjZodG1sNV9oZnJfcXVhbGl0eV9jYXBcdTAwM2QwXHUwMDI2aHRtbDVfaGlnaF9yZXNfbG9nZ2luZ19wZXJjZW50XHUwMDNkMC4wMVx1MDAyNmh0bWw1X2hpZ2hfcmVzX3NlZWtfbG9nZ2luZ1x1MDAzZHRydWVcdTAwMjZodG1sNV9ob3BlbGVzc19zZWNzXHUwMDNkMFx1MDAyNmh0bWw1X2h1bGlfc3NkYWlfdXNlX3BsYXliYWNrX3N0YXRlXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2lkbGVfcmF0ZV9saW1pdF9tc1x1MDAzZDBcdTAwMjZodG1sNV9pZ25vcmVfcGFydGlhbF9zZWdtZW50X2Zyb21fbGl2ZV9yZWFkYWhlYWRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfaWdub3JlX3NhYnJzZWVrX2R1cmluZ19hZHNraXBcdTAwM2R0cnVlXHUwMDI2aHRtbDVfaW5uZXJ0dWJlX2hlYXJ0YmVhdHNfZm9yX2ZhaXJwbGF5XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2lubmVydHViZV9oZWFydGJlYXRzX2Zvcl93aWRldmluZVx1MDAzZHRydWVcdTAwMjZodG1sNV9qdW1ib19tb2JpbGVfc3Vic2VnbWVudF9yZWFkYWhlYWRfdGFyZ2V0XHUwMDNkMy4wXHUwMDI2aHRtbDVfanVtYm9fdWxsX25vbnN0cmVhbWluZ19tZmZhX21zXHUwMDNkNDAwMFx1MDAyNmh0bWw1X2p1bWJvX3VsbF9zdWJzZWdtZW50X3JlYWRhaGVhZF90YXJnZXRcdTAwM2QxLjNcdTAwMjZodG1sNV9rYWJ1a2lfZHJtX2xpdmVfNTFfZGVmYXVsdF9vZmZcdTAwM2R0cnVlXHUwMDI2aHRtbDVfbGljZW5zZV9jb25zdHJhaW50X2RlbGF5XHUwMDNkNTAwMFx1MDAyNmh0bWw1X2xpdmVfYWJyX2hlYWRfbWlzc19mcmFjdGlvblx1MDAzZDAuMFx1MDAyNmh0bWw1X2xpdmVfYWJyX3JlcHJlZGljdF9mcmFjdGlvblx1MDAzZDAuMFx1MDAyNmh0bWw1X2xpdmVfY2h1bmtfcmVhZGFoZWFkX3Byb3hpbWFfb3ZlcnJpZGVcdTAwM2QwXHUwMDI2aHRtbDVfbGl2ZV9sb3dfbGF0ZW5jeV9iYW5kd2lkdGhfd2luZG93XHUwMDNkMC4wXHUwMDI2aHRtbDVfbGl2ZV9ub3JtYWxfbGF0ZW5jeV9iYW5kd2lkdGhfd2luZG93XHUwMDNkMC4wXHUwMDI2aHRtbDVfbGl2ZV9xdWFsaXR5X2NhcFx1MDAzZDBcdTAwMjZodG1sNV9saXZlX3VsdHJhX2xvd19sYXRlbmN5X2JhbmR3aWR0aF93aW5kb3dcdTAwM2QwLjBcdTAwMjZodG1sNV9saXZlbmVzc19kcmlmdF9jaHVua19vdmVycmlkZVx1MDAzZDBcdTAwMjZodG1sNV9saXZlbmVzc19kcmlmdF9wcm94aW1hX292ZXJyaWRlXHUwMDNkMFx1MDAyNmh0bWw1X2xvZ19hdWRpb19hYnJcdTAwM2R0cnVlXHUwMDI2aHRtbDVfbG9nX2V4cGVyaW1lbnRfaWRfZnJvbV9wbGF5ZXJfcmVzcG9uc2VfdG9fY3RtcFx1MDAzZFx1MDAyNmh0bWw1X2xvZ19maXJzdF9zc2RhaV9yZXF1ZXN0c19raWxsc3dpdGNoXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X2xvZ19yZWJ1ZmZlcl9ldmVudHNcdTAwM2Q1XHUwMDI2aHRtbDVfbG9nX3NhYnJfbWFsZm9ybWVkX2NvbmZpZ19wcm90b19zaGFyZWRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfbG9nX3RyaWdnZXJfZXZlbnRzX3dpdGhfZGVidWdfZGF0YVx1MDAzZHRydWVcdTAwMjZodG1sNV9sb2dfdnNzX2V4dHJhX2xyX2NwYXJhbXNfZnJlcVx1MDAzZFx1MDAyNmh0bWw1X2xvbmdfcmVidWZmZXJfamlnZ2xlX2NtdF9kZWxheV9tc1x1MDAzZDBcdTAwMjZodG1sNV9sb25nX3JlYnVmZmVyX3RocmVzaG9sZF9tc1x1MDAzZDMwMDAwXHUwMDI2aHRtbDVfbWFuaWZlc3RsZXNzX3ZwOV9vdGZcdTAwM2R0cnVlXHUwMDI2aHRtbDVfbWF4X2J1ZmZlcl9oZWFsdGhfZm9yX2Rvd25ncmFkZV9wcm9wXHUwMDNkMC4wXHUwMDI2aHRtbDVfbWF4X2J1ZmZlcl9oZWFsdGhfZm9yX2Rvd25ncmFkZV9zZWNzXHUwMDNkMC4wXHUwMDI2aHRtbDVfbWF4X2J5dGVyYXRlXHUwMDNkMFx1MDAyNmh0bWw1X21heF9kaXNjb250aW51aXR5X3Jld3JpdGVfY291bnRcdTAwM2QwXHUwMDI2aHRtbDVfbWF4X2RyaWZ0X3Blcl90cmFja19zZWNzXHUwMDNkMC4wXHUwMDI2aHRtbDVfbWF4X2hlYWRtX2Zvcl9zdHJlYW1pbmdfeGhyXHUwMDNkMFx1MDAyNmh0bWw1X21heF9saXZlX2R2cl93aW5kb3dfcGx1c19tYXJnaW5fc2Vjc1x1MDAzZDQ2ODAwLjBcdTAwMjZodG1sNV9tYXhfcXVhbGl0eV9zZWxfdXBncmFkZVx1MDAzZDBcdTAwMjZodG1sNV9tYXhfcmVkaXJlY3RfcmVzcG9uc2VfbGVuZ3RoXHUwMDNkODE5Mlx1MDAyNmh0bWw1X21heF9zZWxlY3RhYmxlX3F1YWxpdHlfb3JkaW5hbFx1MDAzZDBcdTAwMjZodG1sNV9tYXhfdmVydGljYWxfcmVzb2x1dGlvblx1MDAzZDBcdTAwMjZodG1sNV9tYXhpbXVtX3JlYWRhaGVhZF9zZWNvbmRzXHUwMDNkMC4wXHUwMDI2aHRtbDVfbWVkaWFfZnVsbHNjcmVlblx1MDAzZHRydWVcdTAwMjZodG1sNV9tZWRpYV90aW1lX3dlaWdodF9wcm9wXHUwMDNkMC4wXHUwMDI2aHRtbDVfbWZjX21heF9xdWV1ZV9sZW5ndGhcdTAwM2QxXHUwMDI2aHRtbDVfbWZjX21pbl9idWZmZXJfaGVhbHRoXHUwMDNkMFx1MDAyNmh0bWw1X21mY19zZWNzX2xlZnRfdG9fc3RhcnRfcHJlbG9hZFx1MDAzZDBcdTAwMjZodG1sNV9taW5fZmFpbHVyZXNfdG9fZGVsYXlfcmV0cnlcdTAwM2QzXHUwMDI2aHRtbDVfbWluX21lZGlhX2R1cmF0aW9uX2Zvcl9hcHBlbmRfcHJvcFx1MDAzZDAuMFx1MDAyNmh0bWw1X21pbl9tZWRpYV9kdXJhdGlvbl9mb3JfY2Ficl9zbGljZVx1MDAzZDAuMDFcdTAwMjZodG1sNV9taW5fcGxheWJhY2tfYWR2YW5jZV9mb3Jfc3RlYWR5X3N0YXRlX3NlY3NcdTAwM2QwXHUwMDI2aHRtbDVfbWluX3F1YWxpdHlfb3JkaW5hbFx1MDAzZDBcdTAwMjZodG1sNV9taW5fcmVhZGJlaGluZF9jYXBfc2Vjc1x1MDAzZDYwXHUwMDI2aHRtbDVfbWluX3JlYWRiZWhpbmRfc2Vjc1x1MDAzZDBcdTAwMjZodG1sNV9taW5fc2Vjb25kc19iZXR3ZWVuX2Zvcm1hdF9zZWxlY3Rpb25zXHUwMDNkMC4wXHUwMDI2aHRtbDVfbWluX3NlbGVjdGFibGVfcXVhbGl0eV9vcmRpbmFsXHUwMDNkMFx1MDAyNmh0bWw1X21pbl9zdGFydHVwX2J1ZmZlcmVkX21lZGlhX2R1cmF0aW9uX2Zvcl9saXZlX3NlY3NcdTAwM2QwLjBcdTAwMjZodG1sNV9taW5fc3RhcnR1cF9idWZmZXJlZF9tZWRpYV9kdXJhdGlvbl9zZWNzXHUwMDNkMS4yXHUwMDI2aHRtbDVfbWluX3N0YXJ0dXBfZHVyYXRpb25fbGl2ZV9zZWNzXHUwMDNkMC4yNVx1MDAyNmh0bWw1X21pbl91bmRlcnJ1bl9idWZmZXJlZF9wcmVfc3RlYWR5X3N0YXRlX21zXHUwMDNkMFx1MDAyNmh0bWw1X21pbl91cGdyYWRlX2hlYWx0aF9zZWNzXHUwMDNkMC4wXHUwMDI2aHRtbDVfbWluaW11bV9yZWFkYWhlYWRfc2Vjb25kc1x1MDAzZDAuMFx1MDAyNmh0bWw1X21vY2tfY29udGVudF9iaW5kaW5nX2Zvcl9zZXNzaW9uX3Rva2VuXHUwMDNkXHUwMDI2aHRtbDVfbW92ZV9kaXNhYmxlX2FpcnBsYXlcdTAwM2R0cnVlXHUwMDI2aHRtbDVfbm9fcGxhY2Vob2xkZXJfcm9sbGJhY2tzXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X25vbl9vbmVzaWVfYXR0YWNoX3BvX3Rva2VuXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X29mZmxpbmVfZG93bmxvYWRfdGltZW91dF9yZXRyeV9saW1pdFx1MDAzZDRcdTAwMjZodG1sNV9vZmZsaW5lX2ZhaWx1cmVfcmV0cnlfbGltaXRcdTAwM2QyXHUwMDI2aHRtbDVfb2ZmbGluZV9wbGF5YmFja19wb3NpdGlvbl9zeW5jXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X29mZmxpbmVfcHJldmVudF9yZWRvd25sb2FkX2Rvd25sb2FkZWRfdmlkZW9cdTAwM2R0cnVlXHUwMDI2aHRtbDVfb25lc2llX2F1ZGlvX29ubHlfcGxheWJhY2tcdTAwM2R0cnVlXHUwMDI2aHRtbDVfb25lc2llX2NoZWNrX3RpbWVvdXRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfb25lc2llX2RlZmVyX2NvbnRlbnRfbG9hZGVyX21zXHUwMDNkMFx1MDAyNmh0bWw1X29uZXNpZV9saXZlX3R0bF9zZWNzXHUwMDNkOFx1MDAyNmh0bWw1X29uZXNpZV9wcmV3YXJtX2ludGVydmFsX21zXHUwMDNkMFx1MDAyNmh0bWw1X29uZXNpZV9wcmV3YXJtX21heF9sYWN0X21zXHUwMDNkMFx1MDAyNmh0bWw1X29uZXNpZV9yZWRpcmVjdG9yX3RpbWVvdXRfbXNcdTAwM2QwXHUwMDI2aHRtbDVfb25lc2llX3NlbmRfc3RyZWFtZXJfY29udGV4dFx1MDAzZHRydWVcdTAwMjZodG1sNV9vdmVycmlkZV9taWNyb19kaXNjb250aW51aXRpZXNfdGhyZXNob2xkX21zXHUwMDNkLTFcdTAwMjZodG1sNV9wYWNlZF9wb2xsX21pbl9oZWFsdGhfbXNcdTAwM2QwXHUwMDI2aHRtbDVfcGFjZWRfcG9sbF9tc1x1MDAzZDBcdTAwMjZodG1sNV9wYXVzZV9vbl9ub25mb3JlZ3JvdW5kX3BsYXRmb3JtX2Vycm9yc1x1MDAzZHRydWVcdTAwMjZodG1sNV9wZWFrX3NoYXZlXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3BlcmZfY2FwX292ZXJyaWRlX3N0aWNreVx1MDAzZHRydWVcdTAwMjZodG1sNV9wZXJmb3JtYW5jZV9jYXBfZmxvb3JcdTAwM2QzNjBcdTAwMjZodG1sNV9wZXJzZXJ2ZV9hdjFfcGVyZl9jYXBcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcGljdHVyZV9pbl9waWN0dXJlX2xvZ2dpbmdfb25yZXNpemVfcmF0aW9cdTAwM2QwLjBcdTAwMjZodG1sNV9wbGF0Zm9ybV9tYXhfYnVmZmVyX2hlYWx0aF9vdmVyc2VuZF9kdXJhdGlvbl9zZWNzXHUwMDNkMC4wXHUwMDI2aHRtbDVfcGxhdGZvcm1fbWluaW11bV9yZWFkYWhlYWRfc2Vjb25kc1x1MDAzZDAuMFx1MDAyNmh0bWw1X3BsYXRmb3JtX3doaXRlbGlzdGVkX2Zvcl9mcmFtZV9hY2N1cmF0ZV9zZWVrc1x1MDAzZHRydWVcdTAwMjZodG1sNV9wbGF5ZXJfYXR0X2luaXRpYWxfZGVsYXlfbXNcdTAwM2QzMDAwXHUwMDI2aHRtbDVfcGxheWVyX2F0dF9yZXRyeV9kZWxheV9tc1x1MDAzZDE1MDBcdTAwMjZodG1sNV9wbGF5ZXJfYXV0b25hdl9sb2dnaW5nXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3BsYXllcl9lczZcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcGxheWVyX21pbl9idWlsZF9jbFx1MDAzZC0xXHUwMDI2aHRtbDVfcGxheWVyX3ByZWxvYWRfYWRfZml4XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3Bvc3RfaW50ZXJydXB0X3JlYWRhaGVhZFx1MDAzZDIwXHUwMDI2aHRtbDVfcHJlZmVyX2xhbmd1YWdlX292ZXJfY29kZWNcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcHJlZmVyX3NlcnZlcl9id2UzXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3ByZWxvYWRfYmVmb3JlX2luaXRpYWxfc2Vla193aXRoX3NhYnJcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcHJlbG9hZF93YWl0X3RpbWVfc2Vjc1x1MDAzZDAuMFx1MDAyNmh0bWw1X3ByZXZlbnRfbW9iaWxlX2JhY2tncm91bmRfcGxheV9vbl9ldmVudF9zaGFyZWRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcHJvYmVfcHJpbWFyeV9kZWxheV9iYXNlX21zXHUwMDNkMFx1MDAyNmh0bWw1X3Byb2Nlc3NfYWxsX2VuY3J5cHRlZF9ldmVudHNcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcW9lX3Byb3RvX21vY2tfbGVuZ3RoXHUwMDNkMFx1MDAyNmh0bWw1X3F1ZXJ5X3N3X3NlY3VyZV9jcnlwdG9fZm9yX2FuZHJvaWRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcmFuZG9tX3BsYXliYWNrX2NhcFx1MDAzZDBcdTAwMjZodG1sNV9yZWNvcmRfaXNfb2ZmbGluZV9vbl9wbGF5YmFja19hdHRlbXB0X3N0YXJ0XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3JlY29yZF91bXBfdGltaW5nXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3JlbG9hZF9ieV9rYWJ1a2lfYXBwXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3JlbW92ZV9jb21tYW5kX3RyaWdnZXJlZF9jb21wYW5pb25zXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3JlbW92ZV9ub3Rfc2VydmFibGVfY2hlY2tfa2lsbHN3aXRjaFx1MDAzZHRydWVcdTAwMjZodG1sNV9yZXBvcnRfZmF0YWxfZHJtX3Jlc3RyaWN0ZWRfZXJyb3Jfa2lsbHN3aXRjaFx1MDAzZHRydWVcdTAwMjZodG1sNV9yZXBvcnRfc2xvd19hZHNfYXNfZXJyb3JcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcmVwcmVkaWN0X2ludGVydmFsX21zXHUwMDNkMFx1MDAyNmh0bWw1X3JlcXVlc3Rfb25seV9oZHJfb3Jfc2RyX2tleXNcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcmVxdWVzdF9zaXplX21heF9rYlx1MDAzZDBcdTAwMjZodG1sNV9yZXF1ZXN0X3NpemVfbWluX2tiXHUwMDNkMFx1MDAyNmh0bWw1X3Jlc2Vla19hZnRlcl90aW1lX2p1bXBfY2ZsXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3Jlc2Vla19hZnRlcl90aW1lX2p1bXBfZGVsYXlfbXNcdTAwM2QwXHUwMDI2aHRtbDVfcmVzZXRfYmFja29mZl9vbl91c2VyX3NlZWtcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcmVzb3VyY2VfYmFkX3N0YXR1c19kZWxheV9zY2FsaW5nXHUwMDNkMS41XHUwMDI2aHRtbDVfcmVzdHJpY3Rfc3RyZWFtaW5nX3hocl9vbl9zcWxlc3NfcmVxdWVzdHNcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcmV0cnlfZG93bmxvYWRzX2Zvcl9leHBpcmF0aW9uXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3JldHJ5X29uX2RybV9rZXlfZXJyb3JcdTAwM2R0cnVlXHUwMDI2aHRtbDVfcmV0cnlfb25fZHJtX3VuYXZhaWxhYmxlXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3JldHJ5X3F1b3RhX2V4Y2VlZGVkX3ZpYV9zZWVrXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3JldHVybl9wbGF5YmFja19pZl9hbHJlYWR5X3ByZWxvYWRlZFx1MDAzZHRydWVcdTAwMjZodG1sNV9zYWJyX2VuYWJsZV9zZXJ2ZXJfeHRhZ19zZWxlY3Rpb25cdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2Ficl9mZXRjaF9vbl9pZGxlX25ldHdvcmtfcHJlbG9hZGVkX3BsYXllcnNcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2Ficl9mb3JjZV9tYXhfbmV0d29ya19pbnRlcnJ1cHRpb25fZHVyYXRpb25fbXNcdTAwM2QwXHUwMDI2aHRtbDVfc2Ficl9saXZlX2xvd19sYXRlbmN5X3N0cmVhbWluZ194aHJcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2Ficl9saXZlX25vcm1hbF9sYXRlbmN5X3N0cmVhbWluZ194aHJcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2Ficl9saXZlX3RpbWluZ1x1MDAzZHRydWVcdTAwMjZodG1sNV9zYWJyX2xpdmVfdWx0cmFfbG93X2xhdGVuY3lfc3RyZWFtaW5nX3hoclx1MDAzZHRydWVcdTAwMjZodG1sNV9zYWJyX2xvZ19zZXJ2ZXJfeHRhZ19zZWxlY3Rpb25fb25lc2llX21pc21hdGNoXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NhYnJfbWluX21lZGlhX2J5dGVzX2ZhY3Rvcl90b19hcHBlbmRfZm9yX3N0cmVhbVx1MDAzZDAuMFx1MDAyNmh0bWw1X3NhYnJfbm9uX3N0cmVhbWluZ194aHJfcmVxdWVzdF9jYW5jZWxsYXRpb25fdGltZW91dF9tc1x1MDAzZDBcdTAwMjZodG1sNV9zYWJyX25vbl9zdHJlYW1pbmdfeGhyX3RpbWVvdXRfcmV0cnlfbGltaXRcdTAwM2QwXHUwMDI2aHRtbDVfc2Ficl9yZXBvcnRfcGFydGlhbF9zZWdtZW50X2VzdGltYXRlZF9kdXJhdGlvblx1MDAzZHRydWVcdTAwMjZodG1sNV9zYWJyX3JlcG9ydF9yZXF1ZXN0X2NhbmNlbGxhdGlvbl9pbmZvXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NhYnJfcmVxdWVzdF9saW1pdF9wZXJfcGVyaW9kXHUwMDNkMjBcdTAwMjZodG1sNV9zYWJyX3JlcXVlc3Rfb25fY29uc3RyYWludFx1MDAzZHRydWVcdTAwMjZodG1sNV9zYWJyX3NlZWtfbm9fc2hpZnRfdG9sZXJhbmNlXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NhYnJfc2tpcF9jbGllbnRfYXVkaW9faW5pdF9zZWxlY3Rpb25cdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2Ficl9zdWNjZXNzZnVsX3Byb2JlX3RpbWVvdXRfbXNcdTAwM2QwXHUwMDI2aHRtbDVfc2Ficl91Z2Nfdm9kX3dlYl9lbWJlZGRlZF9jbGllbnRfZGVmYXVsdF9iYW5kd2lkdGhfb25faXBob25lXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3NhYnJfdW51c2VkX2Jsb2F0X3NpemVfYnl0ZXNcdTAwM2QwXHUwMDI2aHRtbDVfc2Ftc3VuZ19rYW50X2xpbWl0X21heF9iaXRyYXRlXHUwMDNkMFx1MDAyNmh0bWw1X3NlZWtfamlnZ2xlX2NtdF9kZWxheV9tc1x1MDAzZDgwMDBcdTAwMjZodG1sNV9zZWVrX25ld19lbGVtX2RlbGF5X21zXHUwMDNkMTIwMDBcdTAwMjZodG1sNV9zZWVrX25ld19lbGVtX3Nob3J0c19kZWxheV9tc1x1MDAzZDIwMDBcdTAwMjZodG1sNV9zZWVrX25ld19tZWRpYV9lbGVtZW50X3Nob3J0c19yZXVzZV9jZmxcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2Vla19uZXdfbWVkaWFfZWxlbWVudF9zaG9ydHNfcmV1c2VfZGVsYXlfbXNcdTAwM2QwXHUwMDI2aHRtbDVfc2Vla19uZXdfbWVkaWFfc291cmNlX3Nob3J0c19yZXVzZV9jZmxcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2Vla19uZXdfbWVkaWFfc291cmNlX3Nob3J0c19yZXVzZV9kZWxheV9tc1x1MDAzZDBcdTAwMjZodG1sNV9zZWVrX3NldF9jbXRfZGVsYXlfbXNcdTAwM2QyMDAwXHUwMDI2aHRtbDVfc2Vla190aW1lb3V0X2RlbGF5X21zXHUwMDNkMjAwMDBcdTAwMjZodG1sNV9zZW5kX2N1ZXBvaW50X2lkX2luX2FkX2JyZWFrX3JlcXVlc3RcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2VuZF9zZXJpYWxpemVkX29uZV90aW1lX3FvZV9jb250ZXh0X2RhdGFcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2VydmVfc3RhcnRfc2Vjb25kc19zZWVrX2Zvcl9wb3N0X2xpdmVfc2Ficlx1MDAzZHRydWVcdTAwMjZodG1sNV9zZXJ2ZXJfc3RpdGNoZWRfZGFpX2RlY29yYXRlZF91cmxfcmV0cnlfbGltaXRcdTAwM2Q1XHUwMDI2aHRtbDVfc2Vzc2lvbl9wb190b2tlbl9pbnRlcnZhbF90aW1lX21zXHUwMDNkOTAwMDAwXHUwMDI2aHRtbDVfc2V0X3ZpZGVvX2lkX2FzX2V4cGVjdGVkX2NvbnRlbnRfYmluZGluZ1x1MDAzZHRydWVcdTAwMjZodG1sNV9zaG9ydHNfZ2FwbGVzc19hZF9zbG93X3N0YXJ0X2NmbFx1MDAzZHRydWVcdTAwMjZodG1sNV9zaG9ydHNfZ2FwbGVzc19hZF9zbG93X3N0YXJ0X2RlbGF5X21zXHUwMDNkMFx1MDAyNmh0bWw1X3Nob3J0c19nYXBsZXNzX25leHRfYnVmZmVyX2luX3NlY29uZHNcdTAwM2QwXHUwMDI2aHRtbDVfc2hvcnRzX2dhcGxlc3Nfbm9fZ2xsYXRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2hvcnRzX2dhcGxlc3Nfc2xvd19zdGFydF9kZWxheV9tc1x1MDAzZDBcdTAwMjZodG1sNV9zaG93X2RyY190b2dnbGVcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2ltcGxpZmllZF9iYWNrdXBfdGltZW91dF9zYWJyX2xpdmVcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc2tpcF9lbXB0eV9wb190b2tlblx1MDAzZHRydWVcdTAwMjZodG1sNV9za2lwX3Nsb3dfYWRfZGVsYXlfbXNcdTAwM2QxNTAwMFx1MDAyNmh0bWw1X3Nsb3dfc3RhcnRfbm9fbWVkaWFfc291cmNlX2RlbGF5X21zXHUwMDNkMFx1MDAyNmh0bWw1X3Nsb3dfc3RhcnRfdGltZW91dF9kZWxheV9tc1x1MDAzZDIwMDAwXHUwMDI2aHRtbDVfc3NkYWlfZW5hYmxlX21lZGlhX2VuZF9jdWVfcmFuZ2VcdTAwM2R0cnVlXHUwMDI2aHRtbDVfc3NkYWlfZmFpbHVyZV9yZXRyeV9saW1pdFx1MDAzZDBcdTAwMjZodG1sNV9zc2RhaV9sb2dfbWlzc2luZ19hZF9jb25maWdfcmVhc29uXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3N0YWxsX2ZhY3Rvclx1MDAzZDAuMFx1MDAyNmh0bWw1X3N0YXRlZnVsX2F1ZGlvX25vcm1hbGl6YXRpb25cdTAwM2R0cnVlXHUwMDI2aHRtbDVfc3RpY2t5X2R1cmF0aW9uX21vc1x1MDAzZDBcdTAwMjZodG1sNV9zdG9yZV94aHJfaGVhZGVyc19yZWFkYWJsZVx1MDAzZHRydWVcdTAwMjZodG1sNV9zdHJlYW1pbmdfcmVzaWxpZW5jZVx1MDAzZHRydWVcdTAwMjZodG1sNV9zdHJlYW1pbmdfeGhyX3RpbWVfYmFzZWRfY29uc29saWRhdGlvbl9tc1x1MDAzZC0xXHUwMDI2aHRtbDVfc3Vic2VnbWVudF9yZWFkYWhlYWRfbG9hZF9zcGVlZF9jaGVja19pbnRlcnZhbFx1MDAzZDAuNVx1MDAyNmh0bWw1X3N1YnNlZ21lbnRfcmVhZGFoZWFkX21pbl9idWZmZXJfaGVhbHRoX3NlY3NcdTAwM2QwLjI1XHUwMDI2aHRtbDVfc3Vic2VnbWVudF9yZWFkYWhlYWRfbWluX2J1ZmZlcl9oZWFsdGhfc2Vjc19vbl90aW1lb3V0XHUwMDNkMC4xXHUwMDI2aHRtbDVfc3Vic2VnbWVudF9yZWFkYWhlYWRfbWluX2xvYWRfc3BlZWRcdTAwM2QxLjVcdTAwMjZodG1sNV9zdWJzZWdtZW50X3JlYWRhaGVhZF9zZWVrX2xhdGVuY3lfZnVkZ2VcdTAwM2QwLjVcdTAwMjZodG1sNV9zdWJzZWdtZW50X3JlYWRhaGVhZF90YXJnZXRfYnVmZmVyX2hlYWx0aF9zZWNzXHUwMDNkMC41XHUwMDI2aHRtbDVfc3Vic2VnbWVudF9yZWFkYWhlYWRfdGltZW91dF9zZWNzXHUwMDNkMi4wXHUwMDI2aHRtbDVfdHJhY2tfb3ZlcnNob290XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3RyYW5zZmVyX3Byb2Nlc3NpbmdfbG9nc19pbnRlcnZhbFx1MDAzZDEwMDBcdTAwMjZodG1sNV90cmlnZ2VyX2xvYWRlcl93aGVuX2lkbGVfbmV0d29ya1x1MDAzZHRydWVcdTAwMjZodG1sNV91Z2NfbGl2ZV9hdWRpb181MVx1MDAzZHRydWVcdTAwMjZodG1sNV91Z2Nfdm9kX2F1ZGlvXzUxXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3VucmVwb3J0ZWRfc2Vla19yZXNlZWtfZGVsYXlfbXNcdTAwM2QwXHUwMDI2aHRtbDVfdXBkYXRlX3RpbWVfb25fc2Vla2VkXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3VzZV9kYXRlX25vd19mb3JfbG9jYWxfc3RvcmFnZVx1MDAzZHRydWVcdTAwMjZodG1sNV91c2VfaW5pdF9zZWxlY3RlZF9hdWRpb1x1MDAzZHRydWVcdTAwMjZodG1sNV91c2Vfbm9uX2FjdGl2ZV9icm9hZGNhc3RfZm9yX3Bvc3RfbGl2ZVx1MDAzZHRydWVcdTAwMjZodG1sNV91c2VfcG9zdF9mb3JfbWVkaWFcdTAwM2R0cnVlXHUwMDI2aHRtbDVfdXNlX3NoYXJlZF9vd2xfaW5zdGFuY2VcdTAwM2R0cnVlXHUwMDI2aHRtbDVfdXNlX3VtcFx1MDAzZHRydWVcdTAwMjZodG1sNV91c2VfdW1wX3JlcXVlc3Rfc2xpY2VyXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3VzZV91bXBfdGltaW5nXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3VzZV92aWRlb19xdWFsaXR5X2NhcF9mb3JfdXN0cmVhbWVyX2NvbnN0cmFpbnRcdTAwM2R0cnVlXHUwMDI2aHRtbDVfdXNlX3ZpZGVvX3RyYW5zaXRpb25fZW5kcG9pbnRfaGVhcnRiZWF0XHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3ZpZGVvX3RiZF9taW5fa2JcdTAwM2QwXHUwMDI2aHRtbDVfdmlld3BvcnRfdW5kZXJzZW5kX21heGltdW1cdTAwM2QwLjBcdTAwMjZodG1sNV92b2x1bWVfc2xpZGVyX3Rvb2x0aXBcdTAwM2R0cnVlXHUwMDI2aHRtbDVfd2ViX3BvX2V4cGVyaW1lbnRfaWRzXHUwMDNkW11cdTAwMjZodG1sNV93ZWJfcG9fcmVxdWVzdF9rZXlcdTAwM2RcdTAwMjZodG1sNV93ZWJfcG9fdG9rZW5fZGlzYWJsZV9jYWNoaW5nXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3dlYnBvX2lkbGVfcHJpb3JpdHlfam9iXHUwMDNkdHJ1ZVx1MDAyNmh0bWw1X3dlYnBvX2thaW9zX2RlZmVyX3RpbWVvdXRfbXNcdTAwM2QwXHUwMDI2aHRtbDVfd29mZmxlX3Jlc3VtZVx1MDAzZHRydWVcdTAwMjZodG1sNV93b3JrYXJvdW5kX2RlbGF5X3RyaWdnZXJcdTAwM2R0cnVlXHUwMDI2aWRiX2ltbWVkaWF0ZV9jb21taXRcdTAwM2R0cnVlXHUwMDI2aWdub3JlX292ZXJsYXBwaW5nX2N1ZV9wb2ludHNfb25fZW5kZW1pY19saXZlX2h0bWw1XHUwMDNkdHJ1ZVx1MDAyNmlsX2F0dGFjaF9jYWNoZV9saW1pdFx1MDAzZHRydWVcdTAwMjZpbF9wYXlsb2FkX3NjcmFwaW5nXHUwMDNkXHUwMDI2aWxfdXNlX3ZpZXdfbW9kZWxfbG9nZ2luZ19jb250ZXh0XHUwMDNkdHJ1ZVx1MDAyNmluaXRpYWxfZ2VsX2JhdGNoX3RpbWVvdXRcdTAwM2QyMDAwXHUwMDI2aW5qZWN0ZWRfbGljZW5zZV9oYW5kbGVyX2Vycm9yX2NvZGVcdTAwM2QwXHUwMDI2aW5qZWN0ZWRfbGljZW5zZV9oYW5kbGVyX2xpY2Vuc2Vfc3RhdHVzXHUwMDNkMFx1MDAyNmlvc19hbmRfYW5kcm9pZF9mcmVzY2FfcG9sbGluZ19kZWxheV9vdmVycmlkZVx1MDAzZDBcdTAwMjZpdGRybV9hbHdheXNfdXNlX3dpZGV2aW5lX3Nka1x1MDAzZHRydWVcdTAwMjZpdGRybV9kaXNhYmxlX2V4dGVybmFsX2tleV9yb3RhdGlvbl9zeXN0ZW1faWRzXHUwMDNkW11cdTAwMjZpdGRybV9lbmFibGVfcmV2b2NhdGlvbl9yZXBvcnRpbmdcdTAwM2R0cnVlXHUwMDI2aXRkcm1faW5qZWN0ZWRfbGljZW5zZV9zZXJ2aWNlX2Vycm9yX2NvZGVcdTAwM2QwXHUwMDI2aXRkcm1fc2V0X3NhYnJfbGljZW5zZV9jb25zdHJhaW50XHUwMDNkdHJ1ZVx1MDAyNml0ZHJtX3VzZV9mYWlycGxheV9zZGtcdTAwM2R0cnVlXHUwMDI2aXRkcm1fdXNlX3dpZGV2aW5lX3Nka19mb3JfcHJlbWl1bV9jb250ZW50XHUwMDNkdHJ1ZVx1MDAyNml0ZHJtX3dpZGV2aW5lX2hhcmRlbmVkX3ZtcF9tb2RlXHUwMDNkbG9nXHUwMDI2anNvbl9jb25kZW5zZWRfcmVzcG9uc2VcdTAwM2R0cnVlXHUwMDI2a2V2bGFyX2NvbW1hbmRfaGFuZGxlcl9jb21tYW5kX2Jhbmxpc3RcdTAwM2RbXVx1MDAyNmtldmxhcl9kZWxoaV9tb2Rlcm5fd2ViX2VuZHNjcmVlbl9pZGVhbF90aWxlX3dpZHRoX3BlcmNlbnRhZ2VcdTAwM2QwLjI3XHUwMDI2a2V2bGFyX2RlbGhpX21vZGVybl93ZWJfZW5kc2NyZWVuX21heF9yb3dzXHUwMDNkMlx1MDAyNmtldmxhcl9kZWxoaV9tb2Rlcm5fd2ViX2VuZHNjcmVlbl9tYXhfd2lkdGhcdTAwM2Q1MDBcdTAwMjZrZXZsYXJfZGVsaGlfbW9kZXJuX3dlYl9lbmRzY3JlZW5fbWluX3dpZHRoXHUwMDNkMjAwXHUwMDI2a2V2bGFyX2dlbF9lcnJvcl9yb3V0aW5nXHUwMDNkdHJ1ZVx1MDAyNmtldmxhcl9taW5pcGxheWVyX2V4cGFuZF90b3BcdTAwM2R0cnVlXHUwMDI2a2V2bGFyX21pbmlwbGF5ZXJfcGxheV9wYXVzZV9vbl9zY3JpbVx1MDAzZHRydWVcdTAwMjZrZXZsYXJfcGxheWJhY2tfYXNzb2NpYXRlZF9xdWV1ZVx1MDAzZHRydWVcdTAwMjZsYXVuY2hfbGljZW5zZV9zZXJ2aWNlX2FsbF9vdHRfdmlkZW9zX2F1dG9tYXRpY19mYWlsX29wZW5cdTAwM2R0cnVlXHUwMDI2bGltaXRfeXRjc2lfZGVidWdfYXJyYXlfc2l6ZVx1MDAzZHRydWVcdTAwMjZsaXZlX2NoYXRfZW5hYmxlX3J0YV9tYW5hZ2VyXHUwMDNkdHJ1ZVx1MDAyNmxpdmVfY2h1bmtfcmVhZGFoZWFkXHUwMDNkM1x1MDAyNmxvZ19jbGlja193aXRoX2xheWVyX2Zyb21fZWxlbWVudF9pbl9jb21tYW5kX2hhbmRsZXJcdTAwM2R0cnVlXHUwMDI2bG9nX3dpbmRvd19vbmVycm9yX2ZyYWN0aW9uXHUwMDNkMC4xXHUwMDI2bWFuaWZlc3RsZXNzX3Bvc3RfbGl2ZVx1MDAzZHRydWVcdTAwMjZtYW5pZmVzdGxlc3NfcG9zdF9saXZlX3VmcGhcdTAwM2R0cnVlXHUwMDI2bWF4X2JvZHlfc2l6ZV90b19jb21wcmVzc1x1MDAzZDUwMDAwMFx1MDAyNm1heF9jZGZlX3F1YWxpdHlfb3JkaW5hbFx1MDAzZDBcdTAwMjZtYXhfcHJlZmV0Y2hfd2luZG93X3NlY19mb3JfbGl2ZXN0cmVhbV9vcHRpbWl6YXRpb25cdTAwM2QxMFx1MDAyNm1heF9yZXNvbHV0aW9uX2Zvcl93aGl0ZV9ub2lzZVx1MDAzZDM2MFx1MDAyNm1keF9lbmFibGVfcHJpdmFjeV9kaXNjbG9zdXJlX3VpXHUwMDNkdHJ1ZVx1MDAyNm1keF9sb2FkX2Nhc3RfYXBpX2Jvb3RzdHJhcF9zY3JpcHRcdTAwM2R0cnVlXHUwMDI2bWluX3ByZWZldGNoX29mZnNldF9zZWNfZm9yX2xpdmVzdHJlYW1fb3B0aW1pemF0aW9uXHUwMDNkMjBcdTAwMjZtdGFfZHJjX211dHVhbF9leGNsdXNpb25fcmVtb3ZhbFx1MDAzZHRydWVcdTAwMjZtdXNpY19lbmFibGVfc2hhcmVkX2F1ZGlvX3RpZXJfbG9naWNcdTAwM2R0cnVlXHUwMDI2bXdlYl9hY2NvdW50X2xpbmtpbmdfbm9hcHBcdTAwM2R0cnVlXHUwMDI2bXdlYl9kZWJ1Z19zdGlja3lfc2V0dGluZ3NcdTAwM2R0cnVlXHUwMDI2bXdlYl9lbmFibGVfY2xpY2tfdG9fcGxheV9wYXVzZVx1MDAzZHRydWVcdTAwMjZtd2ViX2VuYWJsZV9maW5lX3NjcnViYmluZ19mb3JfcmVjc1x1MDAzZHRydWVcdTAwMjZtd2ViX2VuYWJsZV9tb3JlX2NodW5rc1x1MDAzZHRydWVcdTAwMjZtd2ViX25hdGl2ZV9jb250cm9sX2luX2ZhdXhfZnVsbHNjcmVlbl9zaGFyZWRcdTAwM2R0cnVlXHUwMDI2bXdlYl9wbGF5ZXJfY29udHJvbF9vbl9ob3Zlclx1MDAzZHRydWVcdTAwMjZtd2ViX3Byb2dyZXNzX2Jhcl9zZWVrX29uX21vdXNlX2NsaWNrXHUwMDNkdHJ1ZVx1MDAyNm13ZWJfc2hvcnRzX2NvbW1lbnRzX3BhbmVsX2lkX2NoYW5nZVx1MDAzZHRydWVcdTAwMjZtd2ViX3VzZV9taWNyb2Zvcm1hdF90aXRsZV9mb3JfcG9zdHNcdTAwM2R0cnVlXHUwMDI2bmV0d29ya19wb2xsaW5nX2ludGVydmFsXHUwMDNkMzAwMDBcdTAwMjZuZXR3b3JrbGVzc19sb2dnaW5nXHUwMDNkdHJ1ZVx1MDAyNm5ld19jb2RlY3Nfc3RyaW5nX2FwaV91c2VzX2xlZ2FjeV9zdHlsZVx1MDAzZHRydWVcdTAwMjZub19jbGllbnRfdmVfYXR0YWNoX3VubGVzc19zaG93blx1MDAzZHRydWVcdTAwMjZub19maWxsZXJfdmlkZW9fZm9yX3NzYV9wbGF5YmFja3NcdTAwM2R0cnVlXHUwMDI2b3ZlcnJpZGVfZHJtX3JlcXVpcmVkX3BsYXliYWNrX3BvbGljeV9jaGFubmVsc1x1MDAzZFtdXHUwMDI2cGFnZWlkX2FzX2hlYWRlcl93ZWJcdTAwM2R0cnVlXHUwMDI2cGxheWVyX2Fkc19zZXRfYWRmb3JtYXRfb25fY2xpZW50XHUwMDNkdHJ1ZVx1MDAyNnBsYXllcl9ib290c3RyYXBfbWV0aG9kXHUwMDNkdHJ1ZVx1MDAyNnBsYXllcl9jb250cm9sc191c2VfcGxheWVyX2FwaV9jb250ZXh0XHUwMDNkdHJ1ZVx1MDAyNnBsYXllcl9jb250cm9sc192b2x1bWVfY29udHJvbHNfdXNlX3BsYXllcl9wcm9wc1x1MDAzZHRydWVcdTAwMjZwbGF5ZXJfZGVzdHJveV9vbGRfdmVyc2lvblx1MDAzZHRydWVcdTAwMjZwbGF5ZXJfZW5hYmxlX3BsYXliYWNrX3BsYXlsaXN0X2NoYW5nZVx1MDAzZHRydWVcdTAwMjZwbGF5ZXJfbmV3X2luZm9fY2FyZF9mb3JtYXRcdTAwM2R0cnVlXHUwMDI2cGxheWVyX3VuZGVybGF5X21pbl9wbGF5ZXJfd2lkdGhcdTAwM2Q3NjguMFx1MDAyNnBsYXllcl91bmRlcmxheV92aWRlb193aWR0aF9mcmFjdGlvblx1MDAzZDAuNlx1MDAyNnBsYXllcl93ZWJfY2FuYXJ5X3N0YWdlXHUwMDNkMFx1MDAyNnBsYXlyZWFkeV9maXJzdF9wbGF5X2V4cGlyYXRpb25cdTAwM2QtMVx1MDAyNnBvZGNhc3RzX3ZpZGVvc3RhdHNfZGVmYXVsdF9mbHVzaF9pbnRlcnZhbF9zZWNvbmRzXHUwMDNkMFx1MDAyNnBvbHltZXJfYmFkX2J1aWxkX2xhYmVsc1x1MDAzZHRydWVcdTAwMjZwb2x5bWVyX3ZlcmlmaXlfYXBwX3N0YXRlXHUwMDNkdHJ1ZVx1MDAyNnBvcHVsYXRlX2Zvcm1hdF9zZXRfaW5mb19pbl9jZGZlX2Zvcm1hdHNcdTAwM2R0cnVlXHUwMDI2cHJlc2tpcF9idXR0b25fc3R5bGVfYWRzX2JhY2tlbmRcdTAwM2RcdTAwMjZwcm94aW1hX2F1dG9fdGhyZXNob2xkX21heF9uZXR3b3JrX2ludGVycnVwdGlvbl9kdXJhdGlvbl9tc1x1MDAzZDBcdTAwMjZwcm94aW1hX2F1dG9fdGhyZXNob2xkX21pbl9iYW5kd2lkdGhfZXN0aW1hdGVfYnl0ZXNfcGVyX3NlY1x1MDAzZDBcdTAwMjZxb2Vfc2VuZF9hbmRfd3JpdGVcdTAwM2R0cnVlXHUwMDI2cXVhbGl0eV9jYXBfZm9yX2lubGluZV9ub25fYXBwX2Fkc1x1MDAzZDBcdTAwMjZxdWFsaXR5X2NhcF9mb3JfaW5saW5lX3BsYXliYWNrXHUwMDNkMFx1MDAyNnF1YWxpdHlfY2FwX2Zvcl9pbmxpbmVfcGxheWJhY2tfYWRzXHUwMDNkMFx1MDAyNnJlYWRfYWhlYWRfbW9kZWxfbmFtZVx1MDAzZFx1MDAyNnJlamVjdF9oaWRkZW5fbGl2ZV9mb3JtYXRzXHUwMDNkdHJ1ZVx1MDAyNnJlamVjdF9saXZlX3ZwOV9tcV9jbGVhcl93aXRoX25vX2Ficl9sYWRkZXJcdTAwM2R0cnVlXHUwMDI2cmVsYXhfYmdfbm90aWZpY2F0aW9uX3Rocm90dGxpbmdcdTAwM2R0cnVlXHUwMDI2cmVtb3ZlX2NoZXZyb25fZnJvbV9hZF9kaXNjbG9zdXJlX2Jhbm5lcl9oNVx1MDAzZHRydWVcdTAwMjZyZW1vdmVfbWFzdGhlYWRfY2hhbm5lbF9iYW5uZXJfb25fcmVmcmVzaFx1MDAzZHRydWVcdTAwMjZyZW1vdmVfc2xvdF9pZF9leGl0ZWRfdHJpZ2dlcl9mb3JfZGFpX2luX3BsYXllcl9zbG90X2V4cGlyZVx1MDAzZHRydWVcdTAwMjZyZXBsYWNlX3BsYXlhYmlsaXR5X3JldHJpZXZlcl9pbl93YXRjaFx1MDAzZHRydWVcdTAwMjZyb3NjYXNcdTAwM2R0cnVlXHUwMDI2c2Ficl9lbmFibGVfaG9zdF9mYWxsYmFja1x1MDAzZHRydWVcdTAwMjZzZWxmX3BvZGRpbmdfaGVhZGVyX3N0cmluZ190ZW1wbGF0ZVx1MDAzZHNlbGZfcG9kZGluZ19pbnRlcnN0aXRpYWxfbWVzc2FnZVx1MDAyNnNlbGZfcG9kZGluZ19taWRyb2xsX2Nob2ljZV9zdHJpbmdfdGVtcGxhdGVcdTAwM2RzZWxmX3BvZGRpbmdfbWlkcm9sbF9jaG9pY2VcdTAwMjZzZW5kX2NvbmZpZ19oYXNoX3RpbWVyXHUwMDNkMFx1MDAyNnNlcnZlX2FkYXB0aXZlX2ZtdHNfZm9yX2xpdmVfc3RyZWFtc1x1MDAzZHRydWVcdTAwMjZzZXRfbW9ja19pZF9hc19leHBlY3RlZF9jb250ZW50X2JpbmRpbmdcdTAwM2RcdTAwMjZzaGVsbF9sb2FkX2djZlx1MDAzZHRydWVcdTAwMjZzaG9ydGVuX2luaXRpYWxfZ2VsX2JhdGNoX3RpbWVvdXRcdTAwM2R0cnVlXHUwMDI2c2hvcnRzX21vZGVfdG9fcGxheWVyX2FwaVx1MDAzZHRydWVcdTAwMjZzaG91bGRfYXR0cmlidXRlX3RvX3dhdGNoX3dpdGhfc291cmNlXHUwMDNkW11cdTAwMjZzaG91bGRfYXR0cmlidXRlX3ZpZXdzX3RvX3dhdGNoX3dpdGhfc291cmNlXHUwMDNkdHJ1ZVx1MDAyNnNpbXBseV9lbWJlZGRlZF9lbmFibGVfYm90Z3VhcmRcdTAwM2R0cnVlXHUwMDI2c2xvd19jb21wcmVzc2lvbnNfYmVmb3JlX2FiYW5kb25fY291bnRcdTAwM2Q0XHUwMDI2c21hbGxfYXZhdGFyc19mb3JfY29tbWVudHNcdTAwM2R0cnVlXHUwMDI2c21hcnRfc2tpcF93ZWJfcGxheWVyX2Jhcl9taW5faG92ZXJfbGVuZ3RoX21pbGxpc2Vjb25kc1x1MDAzZDEwMDBcdTAwMjZzbWFydGVyX3ZlX2RlZHVwcGluZ1x1MDAzZHRydWVcdTAwMjZzcGVlZG1hc3Rlcl9jYW5jZWxsYXRpb25fbW92ZW1lbnRfZHBcdTAwM2QxMFx1MDAyNnNwZWVkbWFzdGVyX3BsYXliYWNrX3JhdGVcdTAwM2QyLjBcdTAwMjZzcGVlZG1hc3Rlcl90b3VjaF9hY3RpdmF0aW9uX21zXHUwMDNkNTAwXHUwMDI2c3RvcF9oYW5kbGluZ19jbGlja19mb3Jfbm9uX3JlbmRlcmluZ19vdmVybGF5X2xheW91dFx1MDAzZHRydWVcdTAwMjZzdHJlYW1pbmdfZGF0YV9lbWVyZ2VuY3lfaXRhZ19ibGFja2xpc3RcdTAwM2RbXVx1MDAyNnN1YnN0aXR1dGVfYWRfY3BuX21hY3JvX2luX3NzZGFpXHUwMDNkdHJ1ZVx1MDAyNnN1cHByZXNzX2Vycm9yXzIwNF9sb2dnaW5nXHUwMDNkdHJ1ZVx1MDAyNnRyaW1fYWRhcHRpdmVfZm9ybWF0c19zaWduYXR1cmVfY2lwaGVyX2Zvcl9zYWJyX2NvbnRlbnRcdTAwM2R0cnVlXHUwMDI2dHZodG1sNV91bnBsdWdnZWRfcHJlbG9hZF9jYWNoZV9zaXplXHUwMDNkNVx1MDAyNnVzZV9jdWVfcmFuZ2VfbWFya2VyX3Bvc2l0aW9uXHUwMDNkdHJ1ZVx1MDAyNnVzZV9ldmVudF90aW1lX21zX2hlYWRlclx1MDAzZHRydWVcdTAwMjZ1c2VfZXh0cmFfcmVhZGFoZWFkX25vcm1hbF9sYXRlbmN5X2ZyYW1lX2xldmVsX3N0cmVhbWluZ19pbl9iYWNrZW5kX2V4cGVyaW1lbnRcdTAwM2RbXVx1MDAyNnVzZV9maWZvX2Zvcl9uZXR3b3JrbGVzc1x1MDAzZHRydWVcdTAwMjZ1c2VfZ2VuZXJhdGVkX21lZGlhX2tleXNfaW5fZmFpcnBsYXlfcmVxdWVzdHNcdTAwM2R0cnVlXHUwMDI2dXNlX2lubGluZWRfcGxheWVyX3JwY1x1MDAzZHRydWVcdTAwMjZ1c2VfbmV3X2NvZGVjc19zdHJpbmdfYXBpXHUwMDNkdHJ1ZVx1MDAyNnVzZV9wbGF5YWJpbGl0eV9yZXN1bHRfZm9yX2Nhbl9wbGF5X3N0YXR1c1x1MDAzZHRydWVcdTAwMjZ1c2VfcmVxdWVzdF90aW1lX21zX2hlYWRlclx1MDAzZHRydWVcdTAwMjZ1c2VfcnRhX2Zvcl9wbGF5ZXJcdTAwM2R0cnVlXHUwMDI2dXNlX3Nlc3Npb25fYmFzZWRfc2FtcGxpbmdcdTAwM2R0cnVlXHUwMDI2dXNlX3RodW1ibmFpbF9vdmVybGF5X3RpbWVfc3RhdHVzX3JlbmRlcmVyX2Zvcl9saXZlX2JhZGdlXHUwMDNkdHJ1ZVx1MDAyNnZhcmlhYmxlX2J1ZmZlcl90aW1lb3V0X21zXHUwMDNkMFx1MDAyNnZwOV9kcm1fbGl2ZVx1MDAzZHRydWVcdTAwMjZ2c3NfZmluYWxfcGluZ19zZW5kX2FuZF93cml0ZVx1MDAzZHRydWVcdTAwMjZ2c3NfcGxheWJhY2tfdXNlX3NlbmRfYW5kX3dyaXRlXHUwMDNkdHJ1ZVx1MDAyNnZzc191c2VfcG9zdF9yZXF1ZXN0XHUwMDNkdHJ1ZVx1MDAyNndlYl9hcGlfdXJsXHUwMDNkdHJ1ZVx1MDAyNndlYl9hdHRlbnRpb25fbG9nZ2luZ19lbmFibGVkXHUwMDNkdHJ1ZVx1MDAyNndlYl9hdHRlbnRpb25fbG9nZ2luZ19leHBvcnRfdG9fZ2VsXHUwMDNkdHJ1ZVx1MDAyNndlYl9hdHRlbnRpb25fbG9nZ2luZ19zY3JvbGxfdGhyb3R0bGVcdTAwM2Q1MDAuMFx1MDAyNndlYl9idXR0b25fdmlld19tb2RlbF9ub25fbnVsbGlzaF9kYXRhXHUwMDNkdHJ1ZVx1MDAyNndlYl9idXR0b25fdm1fcmVmYWN0b3JfZGlzYWJsZWRcdTAwM2R0cnVlXHUwMDI2d2ViX2NsaWVudF92ZXJzaW9uX292ZXJyaWRlXHUwMDNkXHUwMDI2d2ViX2NvbGxlY3Rfb2ZmbGluZV9zdGF0ZVx1MDAzZHRydWVcdTAwMjZ3ZWJfY3NpX2FjdGlvbl9zYW1wbGluZ19lbmFibGVkXHUwMDNkdHJ1ZVx1MDAyNndlYl9kZWR1cGVfdmVfZ3JhZnRpbmdcdTAwM2R0cnVlXHUwMDI2d2ViX2Rpc2FibGVfY2FwdGlvbl9vcGFjaXR5X2tleWJvYXJkX3Nob3J0Y3V0c1x1MDAzZHRydWVcdTAwMjZ3ZWJfZGlzYWJsZV9jaGlwX3ZpZXdfbW9kZWxfbXV0YXRpb25cdTAwM2R0cnVlXHUwMDI2d2ViX2VuYWJsZV9hYl9yc3BfY2xcdTAwM2R0cnVlXHUwMDI2d2ViX2VuYWJsZV9jYXB0aW9uX2xhbmd1YWdlX3ByZWZlcmVuY2Vfc3RpY2tpbmVzc1x1MDAzZHRydWVcdTAwMjZ3ZWJfZW5hYmxlX2NvdXJzZV9pY29uX3VwZGF0ZVx1MDAzZHRydWVcdTAwMjZ3ZWJfZW5hYmxlX2VudGl0eV91cHNlcnRfb25fdXBkYXRlXHUwMDNkdHJ1ZVx1MDAyNndlYl9lbmFibGVfZXJyb3JfMjA0XHUwMDNkdHJ1ZVx1MDAyNndlYl9lbmFibGVfa2V5Ym9hcmRfc2hvcnRjdXRfZm9yX3RpbWVseV9hY3Rpb25zXHUwMDNkdHJ1ZVx1MDAyNndlYl9lbmFibGVfbGF6eV9jc3NcdTAwM2R0cnVlXHUwMDI2d2ViX2VuYWJsZV9zaG9wcGluZ190aW1lbHlfc2hlbGZfY2xpZW50XHUwMDNkdHJ1ZVx1MDAyNndlYl9lbmFibGVfc21hbGxfc3BlZWRtYXN0ZXJcdTAwM2R0cnVlXHUwMDI2d2ViX2VuYWJsZV90aW1lbHlfYWN0aW9uc1x1MDAzZHRydWVcdTAwMjZ3ZWJfZml4X2ZpbmVfc2NydWJiaW5nX2ZhbHNlX3BsYXlcdTAwM2R0cnVlXHUwMDI2d2ViX2ZvcmVncm91bmRfaGVhcnRiZWF0X2ludGVydmFsX21zXHUwMDNkMjgwMDBcdTAwMjZ3ZWJfZnVsbHNjcmVlbl9zaG9ydHNcdTAwM2R0cnVlXHUwMDI2d2ViX2Z1bGxzY3JlZW5fc2hvcnRzX21lbnVfaXRlbVx1MDAzZHRydWVcdTAwMjZ3ZWJfZ2NmX2hhc2hlc19pbm5lcnR1YmVcdTAwM2R0cnVlXHUwMDI2d2ViX2dlbF9kZWJvdW5jZV9tc1x1MDAzZDEwMDAwXHUwMDI2d2ViX2dlbF90aW1lb3V0X2NhcFx1MDAzZHRydWVcdTAwMjZ3ZWJfaGlkZV9uZXh0X2J1dHRvblx1MDAzZHRydWVcdTAwMjZ3ZWJfaGlkZV93YXRjaF9pbmZvX2VtcHR5XHUwMDNkdHJ1ZVx1MDAyNndlYl9oaWRlX3lvdXJfZGF0YV9vbl9hdXRvbW90aXZlXHUwMDNkdHJ1ZVx1MDAyNndlYl9sb2FkX3ByZWRpY3Rpb25fdGhyZXNob2xkXHUwMDNkMC4zXHUwMDI2d2ViX2xvZ2dpbmdfbWF4X2JhdGNoXHUwMDNkMTAwXHUwMDI2d2ViX21heF90cmFjaW5nX2V2ZW50c1x1MDAzZDUwXHUwMDI2d2ViX21vbm9tZXJfd2ViX2NvbXBvbmVudF93cmFwcGVyX2hhbmRsZV9lcnJvcnNcdTAwM2R0cnVlXHUwMDI2d2ViX25hdmlnYXRpb25fcHJlZGljdGlvbl90aHJlc2hvbGRcdTAwM2QwLjFcdTAwMjZ3ZWJfbm9uX25hdmlnYXRpbmdfYXRhZ1x1MDAzZHRydWVcdTAwMjZ3ZWJfb3Bfc2lnbmFsX3R5cGVfYmFubGlzdFx1MDAzZFtdXHUwMDI2d2ViX3BsYXliYWNrX2Fzc29jaWF0ZWRfdmVcdTAwM2R0cnVlXHUwMDI2d2ViX3BsYXllcl9hcGlfbG9nZ2luZ19mcmFjdGlvblx1MDAzZDAuMDFcdTAwMjZ3ZWJfcGxheWVyX2JpZ19tb2RlX3NjcmVlbl93aWR0aF9jdXRvZmZcdTAwM2Q0MDAxXHUwMDI2d2ViX3BsYXllcl9kZWZhdWx0X3BlZWtpbmdfcHhcdTAwM2QzNlx1MDAyNndlYl9wbGF5ZXJfZGlzYWJsZV9ncmlkX29uX29mZmxpbmVfc2xhdGVcdTAwM2R0cnVlXHUwMDI2d2ViX3BsYXllcl9lbmFibGVfZmVhdHVyZWRfcHJvZHVjdF9iYW5uZXJfZXhjbHVzaXZlc19vbl9kZXNrdG9wXHUwMDNkdHJ1ZVx1MDAyNndlYl9wbGF5ZXJfZW5hYmxlX2ZlYXR1cmVkX3Byb2R1Y3RfYmFubmVyX3Byb21vdGlvbl90ZXh0X29uX2Rlc2t0b3BcdTAwM2R0cnVlXHUwMDI2d2ViX3BsYXllcl9mcm9zdGVkX2dsYXNzX2JsdXJfcmFkaXVzXHUwMDNkMTZcdTAwMjZ3ZWJfcGxheWVyX2Zyb3N0ZWRfZ2xhc3NfYmx1cl9yYWRpdXNfZmxvYXRcdTAwM2QxNi4wXHUwMDI2d2ViX3BsYXllcl9pbm5lcnR1YmVfcGxheWxpc3RfdXBkYXRlXHUwMDNkdHJ1ZVx1MDAyNndlYl9wbGF5ZXJfaW52aXNpYmxlX2Z1bGxzY3JlZW5fYnV0dG9uXHUwMDNkdHJ1ZVx1MDAyNndlYl9wbGF5ZXJfaXBwX2NhbmFyeV90eXBlX2Zvcl9sb2dnaW5nXHUwMDNkXHUwMDI2d2ViX3BsYXllcl9sb2dfY2xpY2tfYmVmb3JlX2dlbmVyYXRpbmdfdmVfY29udmVyc2lvbl9wYXJhbXNcdTAwM2R0cnVlXHUwMDI2d2ViX3BsYXllcl9taW5pcGxheWVyX2luX2NvbnRleHRfbWVudVx1MDAzZHRydWVcdTAwMjZ3ZWJfcGxheWVyX21vdXNlX2lkbGVfd2FpdF90aW1lX21zXHUwMDNkMzAwMFx1MDAyNndlYl9wbGF5ZXJfbXVzaWNfdmlzdWFsaXplcl90cmVhdG1lbnRcdTAwM2RmYWtlXHUwMDI2d2ViX3BsYXllcl9vZmZsaW5lX3BsYXlsaXN0X2F1dG9fcmVmcmVzaFx1MDAzZHRydWVcdTAwMjZ3ZWJfcGxheWVyX3BsYXlhYmxlX3NlcXVlbmNlc19yZWZhY3Rvclx1MDAzZHRydWVcdTAwMjZ3ZWJfcGxheWVyX3F1aWNrX2hpZGVfdGltZW91dF9tc1x1MDAzZDI1MFx1MDAyNndlYl9wbGF5ZXJfc2Vla19jaGFwdGVyc19ieV9zaG9ydGN1dFx1MDAzZHRydWVcdTAwMjZ3ZWJfcGxheWVyX3NlZWtfb3ZlcmxheV9hZGRpdGlvbmFsX2Fycm93X3RocmVzaG9sZFx1MDAzZDIwMFx1MDAyNndlYl9wbGF5ZXJfc2Vla19vdmVybGF5X2R1cmF0aW9uX2J1bXBfc2NhbGVcdTAwM2QwLjlcdTAwMjZ3ZWJfcGxheWVyX3NlZWtfb3ZlcmxheV9saW5nZXJfZHVyYXRpb25cdTAwM2QxMDAwXHUwMDI2d2ViX3BsYXllcl9zZW50aW5lbF9pc191bmlwbGF5ZXJcdTAwM2R0cnVlXHUwMDI2d2ViX3BsYXllcl9zaG93X211c2ljX2luX3RoaXNfdmlkZW9fZ3JhcGhpY1x1MDAzZHZpZGVvX3RodW1ibmFpbFx1MDAyNndlYl9wbGF5ZXJfc3NfZGFpX2FkX2ZldGNoaW5nX3RpbWVvdXRfbXNcdTAwM2QxNTAwMFx1MDAyNndlYl9wbGF5ZXJfdG91Y2hfaWRsZV93YWl0X3RpbWVfbXNcdTAwM2Q0MDAwXHUwMDI2d2ViX3BsYXllcl90cmFuc2Zlcl90aW1lb3V0X3RocmVzaG9sZF9tc1x1MDAzZDEwODAwMDAwXHUwMDI2d2ViX3BsYXllcl91cGRhdGVkX2VudHJ5cG9pbnRcdTAwM2R0cnVlXHUwMDI2d2ViX3BsYXllcl91c2VfY2luZW1hdGljX2xhYmVsXzJcdTAwM2R0cnVlXHUwMDI2d2ViX3BsYXllcl91c2VfbmV3X2FwaV9mb3JfcXVhbGl0eV9wdWxsYmFja1x1MDAzZHRydWVcdTAwMjZ3ZWJfcGxheWVyX3VzZV9zY3JlZW5fd2lkdGhfZm9yX2JpZ19tb2RlXHUwMDNkdHJ1ZVx1MDAyNndlYl9wcmVmZXRjaF9wcmVsb2FkX3ZpZGVvXHUwMDNkdHJ1ZVx1MDAyNndlYl9wcm9ncmVzc19iYXJfZHJhZ2dhYmxlXHUwMDNkdHJ1ZVx1MDAyNndlYl9wcm9wYWdhdGVfdmlzaWJpbGl0eV90b19hcHBsaWNhdGlvbl9zdGF0ZVx1MDAzZHRydWVcdTAwMjZ3ZWJfcmVtaXhfYWxsb3dfdXBfdG9fM3hfcGxheWJhY2tfcmF0ZVx1MDAzZHRydWVcdTAwMjZ3ZWJfcmVtb3ZlX2Jyb2tlbl9zdWJzY3JpYmVfZW5kc2NyZWVuXHUwMDNkdHJ1ZVx1MDAyNndlYl9zZXNzaW9uX3JlcGxheV9tb3VzZW1vdmVfaW50ZXJ2YWxcdTAwM2QwXHUwMDI2d2ViX3Nlc3Npb25fcmVwbGF5X3Njcm9sbF9pbnRlcnZhbFx1MDAzZDBcdTAwMjZ3ZWJfc2Vzc2lvbl9yZXBsYXlfc2VuZF9hZnRlcl90aW1lb3V0XHUwMDNkMFx1MDAyNndlYl9zZXR0aW5nc19tZW51X3N1cmZhY2VfY3VzdG9tX3BsYXliYWNrXHUwMDNkdHJ1ZVx1MDAyNndlYl9zZXR0aW5nc191c2VfaW5wdXRfc2xpZGVyXHUwMDNkdHJ1ZVx1MDAyNndlYl9zaG9ydHNfYXVkaW9fdHJhY2tfcGlja2VyXHUwMDNkdHJ1ZVx1MDAyNndlYl90cmFjaW5nX2VuYWJsZWRfc3BhbnNcdTAwM2RbZXZlbnQsIGNvbW1hbmRdXHUwMDI2d2ViX3RyYWNpbmdfc2Vzc2lvbl9yZXBsYXlcdTAwM2QwXHUwMDI2d2ViX3VuaWZpZWRfZmV0Y2hcdTAwM2R0cnVlXHUwMDI2d2ViX3dhdGNoX2Rpc2FibGVfYWNjb3VudF9sZXZlbF9jYXB0aW9uc19zZXR0aW5nc1x1MDAzZHRydWVcdTAwMjZ3ZWJwb19leGl0X29uX25ldF9lcnJcdTAwM2R0cnVlXHUwMDI2d2lsX2ljb25fbWF4X2NvbmN1cnJlbnRfZmV0Y2hlc1x1MDAzZDk5OTlcdTAwMjZ3aXpfZGlmZl9vdmVyd3JpdGFibGVcdTAwM2R0cnVlXHUwMDI2d2l6X3dyYXBwZXJfY2FsbGJhY2tfcHJvcHNfZml4XHUwMDNkdHJ1ZVx1MDAyNndvZmZsZV9lbmFibGVfZG93bmxvYWRfc3RhdHVzXHUwMDNkdHJ1ZVx1MDAyNndyaXRlX3JlbG9hZF9wbGF5ZXJfcmVzcG9uc2VfdG9rZW5fdG9fdXN0cmVhbWVyX2NvbmZpZ19mb3Jfdm9kXHUwMDNkdHJ1ZVx1MDAyNndzX2F2MV9tYXhfaGVpZ2h0X2Zsb29yXHUwMDNkMFx1MDAyNndzX2F2MV9tYXhfd2lkdGhfZmxvb3JcdTAwM2QwXHUwMDI2d3NfdXNlX2NlbnRyYWxpemVkX2hxYV9maWx0ZXJcdTAwM2R0cnVlXHUwMDI2d3VnX25ldHdvcmtpbmdfZ3ppcF9yZXF1ZXN0XHUwMDNkdHJ1ZVx1MDAyNnl0Y3NpX2RlYnVnX21heF9zaXplXHUwMDNkMTAwXHUwMDI2eXRpZGJfcmVtYWtlX2RiX3JldHJpZXNcdTAwM2QxXHUwMDI2eXRpZGJfcmVvcGVuX2RiX3JldHJpZXNcdTAwM2QwXHUwMDI2eXRpZGJfdHJhbnNhY3Rpb25fZW5kZWRfZXZlbnRfcmF0ZV9saW1pdFx1MDAzZDAuMDIiLCJzdGFydE11dGVkIjpmYWxzZSwibW9iaWxlSXBob25lU3VwcG9ydHNJbmxpbmVQbGF5YmFjayI6dHJ1ZSwiaXNNb2JpbGVEZXZpY2UiOmZhbHNlLCJjc3BOb25jZSI6Ik1uZHVDT2I0R19PQWYyN3FsU2R0c3ciLCJjYW5hcnlTdGF0ZSI6Im5vbmUiLCJlbmFibGVDc2lMb2dnaW5nIjp0cnVlLCJsb2FkZXJVcmwiOiJodHRwczovLzdicmlkZ2VjYXBpdGFsLmNvbS8iLCJkaXNhYmxlQXV0b25hdiI6ZmFsc2UsImlzRW1iZWQiOnRydWUsImRpc2FibGVDYXN0QXBpIjpmYWxzZSwic2VyaWFsaXplZEVtYmVkQ29uZmlnIjoie30iLCJkaXNhYmxlTWR4Q2FzdCI6ZmFsc2UsImRhdGFzeW5jSWQiOiJWNTJmMzY1YmJ8fCIsInN0b3JlVXNlclZvbHVtZSI6dHJ1ZSwiZGlzYWJsZVBhaWRDb250ZW50T3ZlcmxheSI6dHJ1ZSwiZW5jcnlwdGVkSG9zdEZsYWdzIjoiQUNtYmxCWGc5MmhzaVN4Q2RWNVdEeURTdUhySkJ0YzNwWWRlOWR5cXQtb2xvU25DNVlxUHA5NnI3cUhCR0hORXVheW56NFg3RURLbzlRUlBONGJEeG4xWFl3c3pjQWlJLUhtTzZ0b1VaZVpnQlljN2pVb3RjcGRQT3Nka09GQU9UUSIsImNhbmFyeVN0YWdlIjoiIiwidHJ1c3RlZEpzVXJsIjp7InByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVRydXN0ZWRSZXNvdXJjZVVybFdyYXBwZWRWYWx1ZSI6Ii9zL3BsYXllci83YTc5NjljMi9wbGF5ZXJfZW1iZWRfZXM2LnZmbHNldC9lbl9VUy9iYXNlLmpzIn0sInRydXN0ZWRDc3NVcmwiOnsicHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlVHJ1c3RlZFJlc291cmNlVXJsV3JhcHBlZFZhbHVlIjoiL3MvcGxheWVyLzdhNzk2OWMyL3d3dy1wbGF5ZXIuY3NzIn0sImhvdXNlQnJhbmRVc2VyU3RhdHVzIjoibm90X3ByZXNlbnQiLCJlbWJlZHNFbmFibGVFbWMzZHMiOnRydWUsImRpc2FibGVPcmdhbmljVWkiOnRydWUsImVuYWJsZVNhYnJPbkVtYmVkIjpmYWxzZSwic2VyaWFsaXplZENsaWVudEV4cGVyaW1lbnRGbGFncyI6IjQ1NzE4MTc1XHUwMDNkMC4wXHUwMDI2NDU3MTgxNzZcdTAwM2QwLjAxXHUwMDI2NDU3MjU1MzhcdTAwM2QwLjBcdTAwMjY0NTcyNTUzOVx1MDAzZDAuMFx1MDAyNjQ1NzI1NTQwXHUwMDNkMC4wXHUwMDI2NDU3MjU1NDFcdTAwM2QwLjBcdTAwMjY0NTcyNTU0Mlx1MDAzZDAuMFx1MDAyNjQ1NzI1NTQzXHUwMDNkMC4wXHUwMDI2NDU3Mjg1NTNcdTAwM2R0cnVlXHUwMDI2NDU3Mjg1NzJcdTAwM2R0cnVlXHUwMDI2NDU3MjkyMTVcdTAwM2R0cnVlXHUwMDI2NDU3MzI3MDRcdTAwM2R0cnVlXHUwMDI2NDU3MzI3OTFcdTAwM2R0cnVlXHUwMDI2NDU3MzU0MjhcdTAwM2Q0MDAwLjBcdTAwMjY0NTczNzQ4OFx1MDAzZDAuMFx1MDAyNjQ1NzM3NDg5XHUwMDNkMC4wXHUwMDI2NDU3MzkwMjNcdTAwM2QwLjBcdTAwMjY0NTczOTE5OFx1MDAzZHRydWVcdTAwMjY0NTc0MTMzOVx1MDAzZDAuMFx1MDAyNjQ1NzQxNzczXHUwMDNkMC4wXHUwMDI2NDU3NDMyMjhcdTAwM2QwLjBcdTAwMjY0NTc0NTYxMFx1MDAzZHRydWVcdTAwMjY0NTc0Njk2Nlx1MDAzZDAuMFx1MDAyNjQ1NzQ2OTY3XHUwMDNkMC4wXHUwMDI2NDU3NDcwNTNcdTAwM2QwLjBcdTAwMjY0NTc1MDk0N1x1MDAzZDEwMjQwXHUwMDI2NDU3NTYyMDFcdTAwM2R0cnVlXHUwMDI2NDU3NTY4NzJcdTAwM2QwLjBcdTAwMjY0NTc1NzQyNlx1MDAzZDAuMFx1MDAyNjQ1NzU3NDI3XHUwMDNkMC4wXHUwMDI2NDU3NTc3NTBcdTAwM2QwLjBcdTAwMjY0NTc1Nzk1N1x1MDAzZDAuMFx1MDAyNjQ1NzU4NDY3XHUwMDNkMC4wXHUwMDI2NDU3NjAwMThcdTAwM2R0cnVlXHUwMDI2NDU3NjE3NjBcdTAwM2QyMDBcdTAwMjY0NTc2MjgzOFx1MDAzZDBcdTAwMjY0NTc2NDIxN1x1MDAzZDAuMFx1MDAyNjQ1NzY0MjUyXHUwMDNkMC4wXHUwMDI2NDU3NjQ1MjNcdTAwM2QwLjBcdTAwMjY0NTc2NDUyNFx1MDAzZDAuMFx1MDAyNjQ1NzY0NTkzXHUwMDNkMC4wXHUwMDI2NDU3NjUwNzdcdTAwM2R0cnVlXHUwMDI2NDU3NjU1NjhcdTAwM2QwLjBcdTAwMjY0NTc2NTYwMlx1MDAzZDAuMFx1MDAyNjQ1NzY1NjgwXHUwMDNkdHJ1ZVx1MDAyNjQ1NzY2NTExXHUwMDNkdHJ1ZVx1MDAyNjQ1NzY3NzYzXHUwMDNkMC4wXHUwMDI2NDU3Njc5NDNcdTAwM2QwLjBcdTAwMjY0NTc2ODM0MFx1MDAzZDAuMFx1MDAyNjQ1NzY4NDMwXHUwMDNkMC4wXHUwMDI2NDU3NjkxMTlcdTAwM2R0cnVlXHUwMDI2NDU3NjkyMTRcdTAwM2QwLjBcdTAwMjY0NTc3MDAwMVx1MDAzZDAuMFx1MDAyNjQ1NzcwMDAyXHUwMDNkMC4wXHUwMDI2NDU3NzAxMzVcdTAwM2R0cnVlXHUwMDI2NDU3NzEyODhcdTAwM2R0cnVlXHUwMDI2NDU3NzE4OTBcdTAwM2QwLjBcdTAwMjY0NTc3MzYwM1x1MDAzZDAuMFx1MDAyNjQ1NzczNjA0XHUwMDNkMC4wXHUwMDI2NDU3NzU3NTdcdTAwM2R0cnVlXHUwMDI2NDU3NzU3OTFcdTAwM2QwLjBcdTAwMjY0NTc3NTc5Mlx1MDAzZDAuMFx1MDAyNjQ1Nzc2MTkwXHUwMDNkMC4wXHUwMDI2NDU3Nzg2NjNcdTAwM2QwLjBcdTAwMjY0NTc3ODY3MVx1MDAzZDAuMFx1MDAyNjQ1NzgzODc1XHUwMDNkdHJ1ZVx1MDAyNjQ1Nzg0NDM5XHUwMDNkMFx1MDAyNjQ1Nzg2NDQzXHUwMDNkMC4wXHUwMDI2NDU3ODc5NDhcdTAwM2R0cnVlXHUwMDI2NDU3ODk0NzRcdTAwM2R0cnVlXHUwMDI2NDU3OTExMTdcdTAwM2QwLjBcdTAwMjY0NTc5MTExOFx1MDAzZDAuMFx1MDAyNjQ1NzkxMTE5XHUwMDNkMC4wXHUwMDI2NDU3OTM3MTBcdTAwM2QwLjBcdTAwMjY0NTc5NDQ0MVx1MDAzZDAuMFx1MDAyNjQ1Nzk0ODY4XHUwMDNkdHJ1ZVx1MDAyNjQ1Nzk3NzIxXHUwMDNkdHJ1ZVx1MDAyNjQ1Nzk3OTYzXHUwMDNkMC4wXHUwMDI2NDU4MDIxMjNcdTAwM2QwLjBcdTAwMjY0NTgwMzc1NFx1MDAzZDAuMFx1MDAyNjQ1ODA0NzcxXHUwMDNkMC4wXHUwMDI2NDU4MDU2OTVcdTAwM2QwLjBcdTAwMjY0NTgwNjU1NVx1MDAzZDJcdTAwMjY0NTgwNzQzMlx1MDAzZDAuMFx1MDAyNjQ1ODA3NDg0XHUwMDNkXHUwMDI2NDU4MDc3NzFcdTAwM2QwLjBcdTAwMjY0NTgwNzc3Mlx1MDAzZDAuMFx1MDAyNjQ1ODA3NzczXHUwMDNkMC4wXHUwMDI2NDU4MDg3NjJcdTAwM2QwXHUwMDI2NDU4MTQ0ODBcdTAwM2R0cnVlXHUwMDI2NDU4MTUwMTFcdTAwM2QwLjBcdTAwMjY0NTgxNTYzMFx1MDAzZDBcdTAwMjY0NTgxNjg4OFx1MDAzZDAuMFx1MDAyNjQ1ODE4MTI4XHUwMDNkMC4wIn19LCJYU1JGX0ZJRUxEX05BTUUiOiJzZXNzaW9uX3Rva2VuIiwiWFNSRl9UT0tFTiI6IlFVTTRabTlyVTFnNFVqTXlWbEZUV2tZM2FFUlpOR28wVFVwYWVIeEJSM0ppUzJGdWNWZEVaMEphVEhGSFZreFhlVkZhZDE5YUxWY3pTazFWZG5Gd1ZEbE5VRE5NVUZkTGNXTlBVM1ZFZEVkUlpqbFRTVlZEV25wbFowc3phWE5PWjFOYVRHUk9hRkF6U0dWT1FtdGFaakY0YkRacFIwWndWVjluUmpGUFZFVVx1MDAzZCIsIlNFUlZFUl9WRVJTSU9OIjoicHJvZCIsIkRBVEFTWU5DX0lEIjoiVjUyZjM2NWJifHwiLCJTRVJJQUxJWkVEX0NMSUVOVF9DT05GSUdfREFUQSI6IkNQeVdtOU1HRUwyWnNBVVFodUdBRXhDZGhyZ2lFTDIycmdVUW50Q3dCUkRKOW9BVEVQZkVnQk1RcnRiUEhCRDI5OUVjRVBHMDBCd1E2ZmpSSEJEZ3Q5RWNFT0RxMFJ3UW44LUFFeERldk00Y0VNR1AwQndRaV9mUEhCREstNEFURUtTcDBSd1FfTExPSEJDSnNNNGNFTnIzemh3UXZvcXdCUkNJa05FY0VJcUh1Q0lRbVkyeEJSQ0o1TkVjRUlITnpod1F2S1RRSEJDVjc5RWNFTGp3MFJ3UWpwRFJIQkNEaDdnaUVPX2UwUndROXF1d0JSQzItSUFURUllc3pod1EtZkxSSEJETTM2NEZFTDZFMFJ3UThzelJIQkM0NU00Y0VBQXFhRU5CVFZOVFVsWkRMVnB4TFVSTlpWVkZjRlZEYmtFM05VWllZVWxHUzJwV1JEaG5SRVJNVFV3eVFXSmpkV1ZyVEUxeFEzTkNRVTlSY21kUU4wcHlZbXRDZFZOR1JqbEVUVUp6VTFOQ1kzTTVlRk5tV2pGUldHUk1UMVpITVdFM2RraDBjMGRJVVdNOU1BQSUzRCIsIlJPT1RfVkVfVFlQRSI6MTY2MjMsIkNMSUVOVF9QUk9UT0NPTCI6ImgyIiwiQ0xJRU5UX1RSQU5TUE9SVCI6InRjcCIsIlBMQVlFUl9DTElFTlRfVkVSU0lPTiI6IjEuMjAyNjA3MjEuMDguMDAiLCJUSU1FX0NSRUFURURfTVMiOjE3ODUxMjE2NjAyNDIsIlZBTElEX1NFU1NJT05fVEVNUERBVEFfRE9NQUlOUyI6WyJ5b3V0dS5iZSIsInlvdXR1YmUuY29tIiwid3d3LnlvdXR1YmUuY29tIiwid2ViLWdyZWVuLXFhLnlvdXR1YmUuY29tIiwid2ViLXJlbGVhc2UtcWEueW91dHViZS5jb20iLCJ3ZWItaW50ZWdyYXRpb24tcWEueW91dHViZS5jb20iLCJtLnlvdXR1YmUuY29tIiwibXdlYi1ncmVlbi1xYS55b3V0dWJlLmNvbSIsIm13ZWItcmVsZWFzZS1xYS55b3V0dWJlLmNvbSIsIm13ZWItaW50ZWdyYXRpb24tcWEueW91dHViZS5jb20iLCJzdHVkaW8ueW91dHViZS5jb20iLCJzdHVkaW8tZ3JlZW4tcWEueW91dHViZS5jb20iLCJzdHVkaW8taW50ZWdyYXRpb24tcWEueW91dHViZS5jb20iXSwiTE9UVElFX1VSTCI6eyJwcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VUcnVzdGVkUmVzb3VyY2VVcmxXcmFwcGVkVmFsdWUiOiIvcy9lbWJlZHMvMzJkMmFjODMvbG90dGllLWxpZ2h0LnZmbHNldC9sb3R0aWUtbGlnaHQuanMifSwiSURFTlRJVFlfTUVNRU5UTyI6eyJ2aXNpdG9yX2RhdGEiOiJDZ3R0ZW5ocFZHVTNSVkp3TkNqOGxwdlRCaklvQ2dKT1R4SWlFaDRTSEFzTURnOFFFUklURkJVV0Z4Z1pHaHNjSFI0ZklDRWlJeVFsSmljZ0kyTGZBZ3JjQWpJd0xsbFVQVTlFTWtGeFJFcEtOVXREWkRKR1VVaFRWREJRVURadWJWOVFWVzVQYlU5TFMxZGZOVzR5YzFVelZYUnZOMkpuY1cxSFdsWmxlbFI1TUdWVU5VTm9NWFIxTUVwNlZGVnZjbGxuWjA1V1RISnhOR2xDWW5oTloycExXVll5WlhSMmJIWjVkSFZMYXpSVVJqbHRkblYwTVhCbmFIZE5TbWRWWW5WWE9IQTBXR1JuYzIxRUxXbFRlVFo2U0ZGc1VrRm9RaTFLY21KTllWSmxOV2cxUzNOU1pFSlZSbGRpZG5ONGMwNWxTRGc1VmpaTFQwOXFWbEIxV0doS2MwVlhiVWxyYkMxTWRrVXhTSEJNV1ZKeE5VVmFSbFpSV1VsUFZYTXRXamhTTlMxc1NUaEJSVEIyU2xaQ1pVTXlURWQzVkRWVmNXdGpZVTF3WDBOUFRYZHphSEF5UlVWVldFRkxiV1o0YVRKdlRUWm5NMHA0VlcxcmFFMVViVXg0V2pZdFpHUTFTVkpQWTJSMlZ6WmpaRWxxYVZFd1IzRmtVWG8xUjNoMVFVMHpiMDlKVG01Q05GWjBOVTl1TkV3MFZWOUhiRFZ1TjJneFVGOURVUSUzRCUzRCJ9LCJNV0VCX1NVUFBPUlRTX0RPVUJMRV9UQVBfVE9fU0VFSyI6dHJ1ZSwiUExBWUVSX1ZBUlMiOnsiZW1iZWRkZWRfcGxheWVyX3Jlc3BvbnNlIjoie1wicmVzcG9uc2VDb250ZXh0XCI6e1wic2VydmljZVRyYWNraW5nUGFyYW1zXCI6W3tcInNlcnZpY2VcIjpcIkNTSVwiLFwicGFyYW1zXCI6W3tcImtleVwiOlwiY1wiLFwidmFsdWVcIjpcIldFQl9FTUJFRERFRF9QTEFZRVJcIn0se1wia2V5XCI6XCJjdmVyXCIsXCJ2YWx1ZVwiOlwiMi4yMDI2MDcyNC4wMS4wMFwifSx7XCJrZXlcIjpcInl0X2xpXCIsXCJ2YWx1ZVwiOlwiMFwifSx7XCJrZXlcIjpcIkdldEVtYmVkZGVkUGxheWVyX3JpZFwiLFwidmFsdWVcIjpcIjB4N2EwYTQ0ZGM2NGMyMDAzNlwifV19LHtcInNlcnZpY2VcIjpcIkdGRUVEQkFDS1wiLFwicGFyYW1zXCI6W3tcImtleVwiOlwibG9nZ2VkX2luXCIsXCJ2YWx1ZVwiOlwiMFwifV19LHtcInNlcnZpY2VcIjpcIkdVSURFRF9IRUxQXCIsXCJwYXJhbXNcIjpbe1wia2V5XCI6XCJsb2dnZWRfaW5cIixcInZhbHVlXCI6XCIwXCJ9XX0se1wic2VydmljZVwiOlwiRUNBVENIRVJcIixcInBhcmFtc1wiOlt7XCJrZXlcIjpcImNsaWVudC52ZXJzaW9uXCIsXCJ2YWx1ZVwiOlwiMi4yMDI2MDcyNFwifSx7XCJrZXlcIjpcImNsaWVudC5uYW1lXCIsXCJ2YWx1ZVwiOlwiV0VCX0VNQkVEREVEX1BMQVlFUlwifV19XSxcInJlc3BvbnNlSWRcIjpcIkloTUk1cFBDc19EeGxRTVZiNWIwQngweGhEVVpcIixcIndlYlJlc3BvbnNlQ29udGV4dEV4dGVuc2lvbkRhdGFcIjp7XCJoYXNEZWNvcmF0ZWRcIjp0cnVlfX0sXCJlbWJlZFByZXZpZXdcIjp7XCJ0aHVtYm5haWxQcmV2aWV3UmVuZGVyZXJcIjp7XCJ0aXRsZVwiOntcInJ1bnNcIjpbe1widGV4dFwiOlwiQWJvdXQgN2JyaWRnZSBDYXBpdGFsXCJ9XX0sXCJkZWZhdWx0VGh1bWJuYWlsXCI6e1widGh1bWJuYWlsc1wiOlt7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvWW1nZS1xaDNtNEUvZGVmYXVsdC5qcGc/c3FwXHUwMDNkLW9heW13RWtDSGdRV3ZLcmlxa0RHdkFCQWZnQl9nbUFBdEFGaWdJTUNBQVFBUmhsSUZrb1ZqQVBcXHUwMDI2cnNcdTAwM2RBT240Q0xEY3BNMHRmTVM3aE5kQ0kwVngwYWJ5anFqQVhnXCIsXCJ3aWR0aFwiOjEyMCxcImhlaWdodFwiOjkwfSx7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvWW1nZS1xaDNtNEUvaHFkZWZhdWx0LmpwZz9zcXBcdTAwM2Qtb2F5bXdFMUNLZ0JFRjVJVmZLcmlxa0RLQWdCRlFBQWlFSVlBWEFCd0FFRzhBRUItQUgtQ1lBQzBBV0tBZ3dJQUJBQkdHVWdXU2hXTUE4XHUwMDNkXFx1MDAyNnJzXHUwMDNkQU9uNENMRGJnMVRyU29aYWNUbjlUQW1vT3hqQVBLZ1Zhd1wiLFwid2lkdGhcIjoxNjgsXCJoZWlnaHRcIjo5NH0se1widXJsXCI6XCJodHRwczovL2kueXRpbWcuY29tL3ZpL1ltZ2UtcWgzbTRFL2hxZGVmYXVsdC5qcGc/c3FwXHUwMDNkLW9heW13RTFDTVFCRUc1SVZmS3JpcWtES0FnQkZRQUFpRUlZQVhBQndBRUc4QUVCLUFILUNZQUMwQVdLQWd3SUFCQUJHR1VnV1NoV01BOFx1MDAzZFxcdTAwMjZyc1x1MDAzZEFPbjRDTEI1Z0FKZ0dKclk0Sm52b1ZSMnp5YjNDcVZIRmdcIixcIndpZHRoXCI6MTk2LFwiaGVpZ2h0XCI6MTEwfSx7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvWW1nZS1xaDNtNEUvaHFkZWZhdWx0LmpwZz9zcXBcdTAwM2Qtb2F5bXdFMkNQWUJFSW9CU0ZYeXE0cXBBeWdJQVJVQUFJaENHQUZ3QWNBQkJ2QUJBZmdCX2dtQUF0QUZpZ0lNQ0FBUUFSaGxJRmtvVmpBUFxcdTAwMjZyc1x1MDAzZEFPbjRDTEFnZUxFVjVYdXJKbklyUkNqVVpWWHBPN015MndcIixcIndpZHRoXCI6MjQ2LFwiaGVpZ2h0XCI6MTM4fSx7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvWW1nZS1xaDNtNEUvbXFkZWZhdWx0LmpwZz9zcXBcdTAwM2Qtb2F5bXdFbUNNQUNFTFFCOHF1S3FRTWE4QUVCLUFILUNZQUMwQVdLQWd3SUFCQUJHR1VnV1NoV01BOFx1MDAzZFxcdTAwMjZyc1x1MDAzZEFPbjRDTENTZmk1SlNYVDBkaEctTl9rOXcxcWI0M2p1SndcIixcIndpZHRoXCI6MzIwLFwiaGVpZ2h0XCI6MTgwfSx7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvWW1nZS1xaDNtNEUvaHFkZWZhdWx0LmpwZz9zcXBcdTAwM2Qtb2F5bXdFMkNOQUNFTHdCU0ZYeXE0cXBBeWdJQVJVQUFJaENHQUZ3QWNBQkJ2QUJBZmdCX2dtQUF0QUZpZ0lNQ0FBUUFSaGxJRmtvVmpBUFxcdTAwMjZyc1x1MDAzZEFPbjRDTEROV3phTE1tcmc3Tnlmck8xQk4yaERYUnBWWUFcIixcIndpZHRoXCI6MzM2LFwiaGVpZ2h0XCI6MTg4fSx7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvWW1nZS1xaDNtNEUvaHFkZWZhdWx0LmpwZz9zcXBcdTAwM2Qtb2F5bXdFbUNPQURFT2dDOHF1S3FRTWE4QUVCLUFILUNZQUMwQVdLQWd3SUFCQUJHR1VnV1NoV01BOFx1MDAzZFxcdTAwMjZyc1x1MDAzZEFPbjRDTEFHbTZIUzFMUzJLSVJEc0w5UTJ4U1BkUWw4RmdcIixcIndpZHRoXCI6NDgwLFwiaGVpZ2h0XCI6MzYwfSx7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvWW1nZS1xaDNtNEUvc2RkZWZhdWx0LmpwZz9zcXBcdTAwM2Qtb2F5bXdFbUNJQUZFT0FEOHF1S3FRTWE4QUVCLUFILUNZQUMwQVdLQWd3SUFCQUJHR1VnV1NoV01BOFx1MDAzZFxcdTAwMjZyc1x1MDAzZEFPbjRDTEFOTlRCM3Y1dF8yckJvdzRmSzBBR0lnbnR3M1FcIixcIndpZHRoXCI6NjQwLFwiaGVpZ2h0XCI6NDgwfSx7XCJ1cmxcIjpcImh0dHBzOi8vaS55dGltZy5jb20vdmkvWW1nZS1xaDNtNEUvbWF4cmVzZGVmYXVsdC5qcGc/c3FwXHUwMDNkLW9heW13RW1DSUFLRU5BRjhxdUtxUU1hOEFFQi1BSC1DWUFDMEFXS0Fnd0lBQkFCR0dVZ1dTaFdNQThcdTAwM2RcXHUwMDI2cnNcdTAwM2RBT240Q0xEVmxBb196NXR3bUpkSDhCeDZKbjdXUXhRUTFnXCIsXCJ3aWR0aFwiOjE5MjAsXCJoZWlnaHRcIjoxMDgwfV19LFwicGxheUJ1dHRvblwiOntcImJ1dHRvblJlbmRlcmVyXCI6e1wic3R5bGVcIjpcIlNUWUxFX0RFRkFVTFRcIixcInNpemVcIjpcIlNJWkVfREVGQVVMVFwiLFwiaXNEaXNhYmxlZFwiOmZhbHNlLFwibmF2aWdhdGlvbkVuZHBvaW50XCI6e1wiY2xpY2tUcmFja2luZ1BhcmFtc1wiOlwiQ0FjUThGc2lFd2ptazhLejhQR1ZBeFZ2bHZRSEhUR0VOUm5LQVFTai1SNGNcIixcImNvbW1hbmRNZXRhZGF0YVwiOntcIndlYkNvbW1hbmRNZXRhZGF0YVwiOntcInVybFwiOlwiL3dhdGNoP3ZcdTAwM2RZbWdlLXFoM200RVwiLFwid2ViUGFnZVR5cGVcIjpcIldFQl9QQUdFX1RZUEVfV0FUQ0hcIixcInJvb3RWZVwiOjM4MzJ9fSxcIndhdGNoRW5kcG9pbnRcIjp7XCJ2aWRlb0lkXCI6XCJZbWdlLXFoM200RVwifX0sXCJhY2Nlc3NpYmlsaXR5XCI6e1wibGFiZWxcIjpcIlBsYXkgQWJvdXQgN2JyaWRnZSBDYXBpdGFsXCJ9LFwidHJhY2tpbmdQYXJhbXNcIjpcIkNBY1E4RnNpRXdqbWs4S3o4UEdWQXhWdmx2UUhIVEdFTlJrXHUwMDNkXCJ9fSxcInZpZGVvRGV0YWlsc1wiOntcImVtYmVkZGVkUGxheWVyT3ZlcmxheVZpZGVvRGV0YWlsc1JlbmRlcmVyXCI6e1wiY2hhbm5lbFRodW1ibmFpbFwiOntcInRodW1ibmFpbHNcIjpbe1widXJsXCI6XCJodHRwczovL3l0My5nZ3BodC5jb20vNFY5eVpwdHg5US1UanliMHItYlR0QW1oOGRFTm9xWXpIQ2N1d3lBS1UtNjljMmhHY3lBX01FTl9jS19SbmZ5Qkdib2hxV2xrZlFcdTAwM2RzNjgtYy1rLWMweDAwZmZmZmZmLW5vLXJqXCIsXCJ3aWR0aFwiOjY4LFwiaGVpZ2h0XCI6Njh9XX0sXCJjb2xsYXBzZWRSZW5kZXJlclwiOntcImVtYmVkZGVkUGxheWVyT3ZlcmxheVZpZGVvRGV0YWlsc0NvbGxhcHNlZFJlbmRlcmVyXCI6e1widGl0bGVcIjp7XCJydW5zXCI6W3tcInRleHRcIjpcIkFib3V0IDdicmlkZ2UgQ2FwaXRhbFwiLFwibmF2aWdhdGlvbkVuZHBvaW50XCI6e1wiY2xpY2tUcmFja2luZ1BhcmFtc1wiOlwiQ0FZUTQ2SUNJaE1JNXBQQ3NfRHhsUU1WYjViMEJ4MHhoRFVaeWdFRW9fa2VIQVx1MDAzZFx1MDAzZFwiLFwiY29tbWFuZE1ldGFkYXRhXCI6e1wid2ViQ29tbWFuZE1ldGFkYXRhXCI6e1widXJsXCI6XCJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92XHUwMDNkWW1nZS1xaDNtNEVcIixcIndlYlBhZ2VUeXBlXCI6XCJXRUJfUEFHRV9UWVBFX1VOS05PV05cIixcInJvb3RWZVwiOjgzNzY5fX0sXCJ1cmxFbmRwb2ludFwiOntcInVybFwiOlwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dlx1MDAzZFltZ2UtcWgzbTRFXCIsXCJ0YXJnZXRcIjpcIlRBUkdFVF9ORVdfV0lORE9XXCJ9fX1dfSxcInN1YnRpdGxlXCI6e1wicnVuc1wiOlt7XCJ0ZXh0XCI6XCIxMDMgdmlld3Mg4oCiIDEgY29tbWVudFwifV19LFwidHJhY2tpbmdQYXJhbXNcIjpcIkNBWVE0NklDSWhNSTVwUENzX0R4bFFNVmI1YjBCeDB4aERVWlwifX0sXCJleHBhbmRlZFJlbmRlcmVyXCI6e1wiZW1iZWRkZWRQbGF5ZXJPdmVybGF5VmlkZW9EZXRhaWxzRXhwYW5kZWRSZW5kZXJlclwiOntcInRpdGxlXCI6e1wicnVuc1wiOlt7XCJ0ZXh0XCI6XCI3YnJpZGdlIGNhcGlhbFwifV19LFwic3VidGl0bGVcIjp7XCJydW5zXCI6W3tcInRleHRcIjpcIjEgc3Vic2NyaWJlclwifV19LFwidHJhY2tpbmdQYXJhbXNcIjpcIkNBVVE1S0lDSWhNSTVwUENzX0R4bFFNVmI1YjBCeDB4aERVWlwifX0sXCJjaGFubmVsVGh1bWJuYWlsRW5kcG9pbnRcIjp7XCJjbGlja1RyYWNraW5nUGFyYW1zXCI6XCJDQUFRcnU0QkloTUk1cFBDc19EeGxRTVZiNWIwQngweGhEVVp5Z0VFb19rZUhBXHUwMDNkXHUwMDNkXCIsXCJjb21tYW5kTWV0YWRhdGFcIjp7XCJ3ZWJDb21tYW5kTWV0YWRhdGFcIjp7XCJ1cmxcIjpcIi9jaGFubmVsL1VDRWVkbk5xSUNwZDNOeTZJaGRQclo0QVwiLFwid2ViUGFnZVR5cGVcIjpcIldFQl9QQUdFX1RZUEVfVU5LTk9XTlwiLFwicm9vdFZlXCI6ODM3Njl9fSxcInVybEVuZHBvaW50XCI6e1widXJsXCI6XCIvY2hhbm5lbC9VQ0VlZG5OcUlDcGQzTnk2SWhkUHJaNEFcIixcInRhcmdldFwiOlwiVEFSR0VUX05FV19XSU5ET1dcIn19fX0sXCJ2aWRlb0R1cmF0aW9uU2Vjb25kc1wiOlwiMTM1XCIsXCJ3ZWJQbGF5ZXJBY3Rpb25zUG9ydGluZ1wiOntcImdldFNoYXJlUGFuZWxDb21tYW5kXCI6e1wiY2xpY2tUcmFja2luZ1BhcmFtc1wiOlwiQ0FBUXJ1NEJJaE1JNXBQQ3NfRHhsUU1WYjViMEJ4MHhoRFVaeWdFRW9fa2VIQVx1MDAzZFx1MDAzZFwiLFwiY29tbWFuZE1ldGFkYXRhXCI6e1wid2ViQ29tbWFuZE1ldGFkYXRhXCI6e1wiYXBpVXJsXCI6XCIveW91dHViZWkvdjEvc2hhcmUvZ2V0X3dlYl9wbGF5ZXJfc2hhcmVfcGFuZWxcIn19LFwid2ViUGxheWVyU2hhcmVFbnRpdHlTZXJ2aWNlRW5kcG9pbnRcIjp7XCJzZXJpYWxpemVkU2hhcmVFbnRpdHlcIjpcIkNndFpiV2RsTFhGb00yMDBSUSUzRCUzRFwifX0sXCJzdWJzY3JpYmVDb21tYW5kXCI6e1wiY2xpY2tUcmFja2luZ1BhcmFtc1wiOlwiQ0FBUXJ1NEJJaE1JNXBQQ3NfRHhsUU1WYjViMEJ4MHhoRFVaeWdFRW9fa2VIQVx1MDAzZFx1MDAzZFwiLFwiY29tbWFuZE1ldGFkYXRhXCI6e1wid2ViQ29tbWFuZE1ldGFkYXRhXCI6e1wic2VuZFBvc3RcIjp0cnVlLFwiYXBpVXJsXCI6XCIveW91dHViZWkvdjEvc3Vic2NyaXB0aW9uL3N1YnNjcmliZVwifX0sXCJzdWJzY3JpYmVFbmRwb2ludFwiOntcImNoYW5uZWxJZHNcIjpbXCJVQ0VlZG5OcUlDcGQzTnk2SWhkUHJaNEFcIl0sXCJwYXJhbXNcIjpcIkVnSUlCeGdBXCJ9fSxcInVuc3Vic2NyaWJlQ29tbWFuZFwiOntcImNsaWNrVHJhY2tpbmdQYXJhbXNcIjpcIkNBQVFydTRCSWhNSTVwUENzX0R4bFFNVmI1YjBCeDB4aERVWnlnRUVvX2tlSEFcdTAwM2RcdTAwM2RcIixcImNvbW1hbmRNZXRhZGF0YVwiOntcIndlYkNvbW1hbmRNZXRhZGF0YVwiOntcInNlbmRQb3N0XCI6dHJ1ZSxcImFwaVVybFwiOlwiL3lvdXR1YmVpL3YxL3N1YnNjcmlwdGlvbi91bnN1YnNjcmliZVwifX0sXCJ1bnN1YnNjcmliZUVuZHBvaW50XCI6e1wiY2hhbm5lbElkc1wiOltcIlVDRWVkbk5xSUNwZDNOeTZJaGRQclo0QVwiXSxcInBhcmFtc1wiOlwiQ2dJSUJ4Z0FcIn19LFwiYWRkVG9XYXRjaExhdGVyQ29tbWFuZFwiOntcImNsaWNrVHJhY2tpbmdQYXJhbXNcIjpcIkNBQVFydTRCSWhNSTVwUENzX0R4bFFNVmI1YjBCeDB4aERVWnlnRUVvX2tlSEFcdTAwM2RcdTAwM2RcIixcImNvbW1hbmRNZXRhZGF0YVwiOntcIndlYkNvbW1hbmRNZXRhZGF0YVwiOntcImFwaVVybFwiOlwiL3lvdXR1YmVpL3YxL2Jyb3dzZS9lZGl0X3BsYXlsaXN0XCJ9fSxcInBsYXlsaXN0RWRpdEVuZHBvaW50XCI6e1wicGxheWxpc3RJZFwiOlwiV0xcIixcImFjdGlvbnNcIjpbe1wiYWRkZWRWaWRlb0lkXCI6XCJZbWdlLXFoM200RVwiLFwiYWN0aW9uXCI6XCJBQ1RJT05fQUREX1ZJREVPXCJ9XX19LFwicmVtb3ZlRnJvbVdhdGNoTGF0ZXJDb21tYW5kXCI6e1wiY2xpY2tUcmFja2luZ1BhcmFtc1wiOlwiQ0FBUXJ1NEJJaE1JNXBQQ3NfRHhsUU1WYjViMEJ4MHhoRFVaeWdFRW9fa2VIQVx1MDAzZFx1MDAzZFwiLFwiY29tbWFuZE1ldGFkYXRhXCI6e1wid2ViQ29tbWFuZE1ldGFkYXRhXCI6e1wiYXBpVXJsXCI6XCIveW91dHViZWkvdjEvYnJvd3NlL2VkaXRfcGxheWxpc3RcIn19LFwicGxheWxpc3RFZGl0RW5kcG9pbnRcIjp7XCJwbGF5bGlzdElkXCI6XCJXTFwiLFwiYWN0aW9uc1wiOlt7XCJhY3Rpb25cIjpcIkFDVElPTl9SRU1PVkVfVklERU9fQllfVklERU9fSURcIixcInJlbW92ZWRWaWRlb0lkXCI6XCJZbWdlLXFoM200RVwifV19fX0sXCJhY3Rpb25CYXJCdXR0b25zXCI6W3tcImJ1dHRvblJlbmRlcmVyXCI6e1wic3R5bGVcIjpcIlNUWUxFX09QQUNJVFlcIixcInNpemVcIjpcIlNJWkVfREVGQVVMVFwiLFwiaXNEaXNhYmxlZFwiOmZhbHNlLFwiaWNvblwiOntcImljb25UeXBlXCI6XCJTSEFSRV9BUlJPV1wifSxcIm5hdmlnYXRpb25FbmRwb2ludFwiOntcImNsaWNrVHJhY2tpbmdQYXJhbXNcIjpcIkNBUVEtTjhCR0FBaUV3am1rOEt6OFBHVkF4VnZsdlFISFRHRU5SbktBUVNqLVI0Y1wiLFwiY29tbWFuZE1ldGFkYXRhXCI6e1wid2ViQ29tbWFuZE1ldGFkYXRhXCI6e1wiaWdub3JlTmF2aWdhdGlvblwiOnRydWV9fSxcInNoYXJlRW50aXR5RW5kcG9pbnRcIjp7XCJzZXJpYWxpemVkU2hhcmVFbnRpdHlcIjpcIkNndFpiV2RsTFhGb00yMDBSUSUzRCUzRFwiLFwic2hhcmVQYW5lbFR5cGVcIjpcIlNIQVJFX1BBTkVMX1RZUEVfVU5JRklFRF9TSEFSRV9QQU5FTFwifX0sXCJ0cmFja2luZ1BhcmFtc1wiOlwiQ0FRUS1OOEJHQUFpRXdqbWs4S3o4UEdWQXhWdmx2UUhIVEdFTlJrXHUwMDNkXCIsXCJhY2Nlc3NpYmlsaXR5RGF0YVwiOntcImFjY2Vzc2liaWxpdHlEYXRhXCI6e1wibGFiZWxcIjpcIlNoYXJlXCJ9fX19LHtcImJ1dHRvblJlbmRlcmVyXCI6e1wic3R5bGVcIjpcIlNUWUxFX09QQUNJVFlcIixcInNpemVcIjpcIlNJWkVfREVGQVVMVFwiLFwiaXNEaXNhYmxlZFwiOmZhbHNlLFwic2VydmljZUVuZHBvaW50XCI6e1wiY2xpY2tUcmFja2luZ1BhcmFtc1wiOlwiQ0FNUS1kOEJHQUVpRXdqbWs4S3o4UEdWQXhWdmx2UUhIVEdFTlJuS0FRU2otUjRjXCIsXCJjb21tYW5kTWV0YWRhdGFcIjp7XCJ3ZWJDb21tYW5kTWV0YWRhdGFcIjp7XCJhcGlVcmxcIjpcIi95b3V0dWJlaS92MS9icm93c2UvZWRpdF9wbGF5bGlzdFwifX0sXCJwbGF5bGlzdEVkaXRFbmRwb2ludFwiOntcInBsYXlsaXN0SWRcIjpcIldMXCIsXCJhY3Rpb25zXCI6W3tcImFkZGVkVmlkZW9JZFwiOlwiWW1nZS1xaDNtNEVcIixcImFjdGlvblwiOlwiQUNUSU9OX0FERF9WSURFT1wifV19fSxcImljb25cIjp7XCJpY29uVHlwZVwiOlwiQUREX1RPX1dBVENIX0xBVEVSXCJ9LFwidHJhY2tpbmdQYXJhbXNcIjpcIkNBTVEtZDhCR0FFaUV3am1rOEt6OFBHVkF4VnZsdlFISFRHRU5Sa1x1MDAzZFwiLFwiYWNjZXNzaWJpbGl0eURhdGFcIjp7XCJhY2Nlc3NpYmlsaXR5RGF0YVwiOntcImxhYmVsXCI6XCJXYXRjaCBsYXRlclwifX0sXCJjb21tYW5kXCI6e1wiY2xpY2tUcmFja2luZ1BhcmFtc1wiOlwiQ0FNUS1kOEJHQUVpRXdqbWs4S3o4UEdWQXhWdmx2UUhIVEdFTlJuS0FRU2otUjRjXCIsXCJjb21tYW5kTWV0YWRhdGFcIjp7XCJ3ZWJDb21tYW5kTWV0YWRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9TZXJ2aWNlTG9naW4/c2VydmljZVx1MDAzZHlvdXR1YmVcXHUwMDI2dWlsZWxcdTAwM2QzXFx1MDAyNnBhc3NpdmVcdTAwM2R0cnVlXFx1MDAyNmNvbnRpbnVlXHUwMDNkaHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZzaWduaW4lM0ZhY3Rpb25faGFuZGxlX3NpZ25pbiUzRHRydWUlMjZobCUzRGVuJTI2bmV4dCUzRCUyNTJGcG9zdF9sb2dpblxcdTAwMjZobFx1MDAzZGVuXCIsXCJ3ZWJQYWdlVHlwZVwiOlwiV0VCX1BBR0VfVFlQRV9VTktOT1dOXCIsXCJyb290VmVcIjo4Mzc2OX19LFwic2lnbkluRW5kcG9pbnRcIjp7XCJuZXh0RW5kcG9pbnRcIjp7XCJjbGlja1RyYWNraW5nUGFyYW1zXCI6XCJDQU1RLWQ4QkdBRWlFd2ptazhLejhQR1ZBeFZ2bHZRSEhUR0VOUm5LQVFTai1SNGNcIixcImNvbW1hbmRNZXRhZGF0YVwiOntcIndlYkNvbW1hbmRNZXRhZGF0YVwiOntcInVybFwiOlwiL3Bvc3RfbG9naW5cIixcIndlYlBhZ2VUeXBlXCI6XCJXRUJfUEFHRV9UWVBFX1VOS05PV05cIixcInJvb3RWZVwiOjgzNzY5fX0sXCJ1cmxFbmRwb2ludFwiOntcInVybFwiOlwiL3Bvc3RfbG9naW5cIn19fX19fV0sXCJxdWlja0FjdGlvbnNCYXJcIjp7XCJxdWlja0FjdGlvbnNWaWV3TW9kZWxcIjp7XCJ3YXRjaE9uWW91dHViZUJ1dHRvblwiOntcIndhdGNoT25Zb3V0dWJlQnV0dG9uVmlld01vZGVsXCI6e1wid2F0Y2hPbll0TGFiZWxCdXR0b25cIjp7XCJidXR0b25WaWV3TW9kZWxcIjp7XCJvblRhcFwiOntcImlubmVydHViZUNvbW1hbmRcIjp7XCJjbGlja1RyYWNraW5nUGFyYW1zXCI6XCJDQUlReXZNRkloTUk1cFBDc19EeGxRTVZiNWIwQngweGhEVVp5Z0VFb19rZUhBXHUwMDNkXHUwMDNkXCIsXCJjb21tYW5kTWV0YWRhdGFcIjp7XCJ3ZWJDb21tYW5kTWV0YWRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3ZcdTAwM2RZbWdlLXFoM200RVwiLFwid2ViUGFnZVR5cGVcIjpcIldFQl9QQUdFX1RZUEVfVU5LTk9XTlwiLFwicm9vdFZlXCI6ODM3Njl9fSxcInVybEVuZHBvaW50XCI6e1widXJsXCI6XCJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92XHUwMDNkWW1nZS1xaDNtNEVcIixcInRhcmdldFwiOlwiVEFSR0VUX05FV19XSU5ET1dcIn19fSxcImFjY2Vzc2liaWxpdHlUZXh0XCI6XCJXYXRjaCBvbiBZb3VUdWJlXCIsXCJzdHlsZVwiOlwiQlVUVE9OX1ZJRVdfTU9ERUxfU1RZTEVfT1ZFUkxBWV9EQVJLXCIsXCJ0cmFja2luZ1BhcmFtc1wiOlwiQ0FJUXl2TUZJaE1JNXBQQ3NfRHhsUU1WYjViMEJ4MHhoRFVaXCIsXCJ0eXBlXCI6XCJCVVRUT05fVklFV19NT0RFTF9UWVBFX1RFWFRcIixcImJ1dHRvblNpemVcIjpcIkJVVFRPTl9WSUVXX01PREVMX1NJWkVfTEFSR0VcIixcInRpdGxlRm9ybWF0dGVkXCI6e1wiY29udGVudFwiOlwiV2F0Y2ggb25cIixcInN0eWxlUnVuc1wiOlt7XCJ3ZWlnaHRMYWJlbFwiOlwiRk9OVF9XRUlHSFRfVEhJTlwifV0sXCJhdHRhY2htZW50UnVuc1wiOlt7XCJzdGFydEluZGV4XCI6OCxcImxlbmd0aFwiOjAsXCJlbGVtZW50XCI6e1widHlwZVwiOntcImltYWdlVHlwZVwiOntcImltYWdlXCI6e1wic291cmNlc1wiOlt7XCJjbGllbnRSZXNvdXJjZVwiOntcImltYWdlTmFtZVwiOlwid2F0ZXJtYXJrXCJ9fV19fX0sXCJwcm9wZXJ0aWVzXCI6e1wibGF5b3V0UHJvcGVydGllc1wiOntcImhlaWdodFwiOntcInZhbHVlXCI6MjAsXCJ1bml0XCI6XCJESU1FTlNJT05fVU5JVF9QT0lOVFwifSxcIndpZHRoXCI6e1widmFsdWVcIjo5MCxcInVuaXRcIjpcIkRJTUVOU0lPTl9VTklUX1BPSU5UXCJ9LFwibWFyZ2luXCI6e1wibGVmdFwiOntcInZhbHVlXCI6NX19fX19LFwiYWxpZ25tZW50XCI6XCJBTElHTk1FTlRfVkVSVElDQUxfQ0VOVEVSXCJ9XX19fSxcInl0TG9nb09ubHlCdXR0b25cIjp7XCJidXR0b25WaWV3TW9kZWxcIjp7XCJvblRhcFwiOntcImlubmVydHViZUNvbW1hbmRcIjp7XCJjbGlja1RyYWNraW5nUGFyYW1zXCI6XCJDQUVRMXRjRUloTUk1cFBDc19EeGxRTVZiNWIwQngweGhEVVp5Z0VFb19rZUhBXHUwMDNkXHUwMDNkXCIsXCJjb21tYW5kTWV0YWRhdGFcIjp7XCJ3ZWJDb21tYW5kTWV0YWRhdGFcIjp7XCJ1cmxcIjpcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3ZcdTAwM2RZbWdlLXFoM200RVwiLFwid2ViUGFnZVR5cGVcIjpcIldFQl9QQUdFX1RZUEVfVU5LTk9XTlwiLFwicm9vdFZlXCI6ODM3Njl9fSxcInVybEVuZHBvaW50XCI6e1widXJsXCI6XCJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92XHUwMDNkWW1nZS1xaDNtNEVcIixcInRhcmdldFwiOlwiVEFSR0VUX05FV19XSU5ET1dcIn19fSxcImFjY2Vzc2liaWxpdHlUZXh0XCI6XCJXYXRjaCBvbiBZb3VUdWJlXCIsXCJzdHlsZVwiOlwiQlVUVE9OX1ZJRVdfTU9ERUxfU1RZTEVfTU9OT1wiLFwidHJhY2tpbmdQYXJhbXNcIjpcIkNBRVExdGNFSWhNSTVwUENzX0R4bFFNVmI1YjBCeDB4aERVWlwiLFwidHlwZVwiOlwiQlVUVE9OX1ZJRVdfTU9ERUxfVFlQRV9URVhUXCIsXCJidXR0b25TaXplXCI6XCJCVVRUT05fVklFV19NT0RFTF9TSVpFX0NPTVBBQ1RcIixcInRpdGxlRm9ybWF0dGVkXCI6e1wiY29udGVudFwiOlwiIFwiLFwiYXR0YWNobWVudFJ1bnNcIjpbe1wic3RhcnRJbmRleFwiOjAsXCJsZW5ndGhcIjowLFwiZWxlbWVudFwiOntcInR5cGVcIjp7XCJpbWFnZVR5cGVcIjp7XCJpbWFnZVwiOntcInNvdXJjZXNcIjpbe1wiY2xpZW50UmVzb3VyY2VcIjp7XCJpbWFnZU5hbWVcIjpcIndhdGVybWFya1wifX1dfX19LFwicHJvcGVydGllc1wiOntcImxheW91dFByb3BlcnRpZXNcIjp7XCJoZWlnaHRcIjp7XCJ2YWx1ZVwiOjIwLFwidW5pdFwiOlwiRElNRU5TSU9OX1VOSVRfUE9JTlRcIn0sXCJ3aWR0aFwiOntcInZhbHVlXCI6OTAsXCJ1bml0XCI6XCJESU1FTlNJT05fVU5JVF9QT0lOVFwifSxcIm1hcmdpblwiOntcImxlZnRcIjp7XCJ2YWx1ZVwiOjV9fX19fSxcImFsaWdubWVudFwiOlwiQUxJR05NRU5UX1ZFUlRJQ0FMX0NFTlRFUlwifV19fX19fX19fX0sXCJ0cmFja2luZ1BhcmFtc1wiOlwiQ0FBUXJ1NEJJaE1JNXBQQ3NfRHhsUU1WYjViMEJ4MHhoRFVaeWdFRW9fa2VIQVx1MDAzZFx1MDAzZFwiLFwicGVybWlzc2lvbnNcIjp7XCJhbGxvd0ltYU1vbmV0aXphdGlvblwiOmZhbHNlLFwiYWxsb3dQZnBVbmJyYW5kZWRcIjpmYWxzZX0sXCJ2aWRlb0ZsYWdzXCI6e1wicGxheWFibGVJbkVtYmVkXCI6dHJ1ZSxcImlzQ3Jhd2xhYmxlXCI6dHJ1ZX0sXCJwcmV2aWV3UGxheWFiaWxpdHlTdGF0dXNcIjp7XCJzdGF0dXNcIjpcIk9LXCIsXCJwbGF5YWJsZUluRW1iZWRcIjp0cnVlLFwiY29udGV4dFBhcmFtc1wiOlwiUTBGRlUwRm5aMEVcdTAwM2RcIn0sXCJlbWJlZGRlZFBsYXllck1vZGVcIjpcIkVNQkVEREVEX1BMQVlFUl9NT0RFX0RFRkFVTFRcIixcImVtYmVkZGVkUGxheWVyQ29uZmlnXCI6e1wiZW1iZWRkZWRQbGF5ZXJNb2RlXCI6XCJFTUJFRERFRF9QTEFZRVJfTU9ERV9ERUZBVUxUXCIsXCJlbWJlZGRlZFBsYXllckZsYWdzXCI6e319LFwiZW1iZWRkZWRQbGF5ZXJDb250ZXh0XCI6e1wiZW1iZWRkZWRQbGF5ZXJFbmNyeXB0ZWRDb250ZXh0XCI6XCJBQ21ibEJVWmdWeWFLelQ0N1U4S0JPeTZRRFhaY0FzRV9GamZLX1lxYzNOQXYzYkI4RXBKcUY3bHNXdmtxNlZxSkFOT1FEWUlPX3psR1JSRlNIZTdoN0JjRVZUekFramYxQ1J3U1E3WG95cEF5YjhpQU5sc3phWFJCd2I3TllSX2pLSFM2VXNcIixcImFuY2VzdG9yT3JpZ2luc1N1cHBvcnRlZFwiOmZhbHNlfX0iLCJ2aWRlb19pZCI6IlltZ2UtcWgzbTRFIiwicmVzb2x2ZV91cmxfcmVzcG9uc2UiOiJ7XCJyZXNwb25zZUNvbnRleHRcIjp7XCJzZXJ2aWNlVHJhY2tpbmdQYXJhbXNcIjpbe1wic2VydmljZVwiOlwiQ1NJXCIsXCJwYXJhbXNcIjpbe1wia2V5XCI6XCJjXCIsXCJ2YWx1ZVwiOlwiV0VCX0VNQkVEREVEX1BMQVlFUlwifSx7XCJrZXlcIjpcImN2ZXJcIixcInZhbHVlXCI6XCIyLjIwMjYwNzI0LjAxLjAwXCJ9LHtcImtleVwiOlwieXRfbGlcIixcInZhbHVlXCI6XCIwXCJ9LHtcImtleVwiOlwiUmVzb2x2ZVVybF9yaWRcIixcInZhbHVlXCI6XCIweDdhMGE0NGRjNjRjMjAwMzZcIn1dfSx7XCJzZXJ2aWNlXCI6XCJHRkVFREJBQ0tcIixcInBhcmFtc1wiOlt7XCJrZXlcIjpcImxvZ2dlZF9pblwiLFwidmFsdWVcIjpcIjBcIn1dfSx7XCJzZXJ2aWNlXCI6XCJHVUlERURfSEVMUFwiLFwicGFyYW1zXCI6W3tcImtleVwiOlwibG9nZ2VkX2luXCIsXCJ2YWx1ZVwiOlwiMFwifV19LHtcInNlcnZpY2VcIjpcIkVDQVRDSEVSXCIsXCJwYXJhbXNcIjpbe1wia2V5XCI6XCJjbGllbnQudmVyc2lvblwiLFwidmFsdWVcIjpcIjIuMjAyNjA3MjRcIn0se1wia2V5XCI6XCJjbGllbnQubmFtZVwiLFwidmFsdWVcIjpcIldFQl9FTUJFRERFRF9QTEFZRVJcIn1dfV0sXCJyZXNwb25zZUlkXCI6XCJJaE1JOE9yQnNfRHhsUU1WR0puMEJ4MVU5aW5aXCIsXCJ3ZWJSZXNwb25zZUNvbnRleHRFeHRlbnNpb25EYXRhXCI6e1wiaGFzRGVjb3JhdGVkXCI6dHJ1ZX19LFwiZW5kcG9pbnRcIjp7XCJjbGlja1RyYWNraW5nUGFyYW1zXCI6XCJJaE1JOE9yQnNfRHhsUU1WR0puMEJ4MVU5aW5aTWdobGVIUmxjbTVoYk1vQkJLUDVIaHdcdTAwM2RcIixcImNvbW1hbmRNZXRhZGF0YVwiOnt9fX0ifSwiUE9TVF9NRVNTQUdFX09SSUdJTiI6IioiLCJWSURFT19JRCI6IlltZ2UtcWgzbTRFIiwiRE9NQUlOX0FETUlOX1NUQVRFIjoiIn0pO3dpbmRvdy55dGNmZy5vYmZ1c2NhdGVkRGF0YV8gPSBbXTs8L3NjcmlwdD48c2NyaXB0IG5vbmNlPSJNbmR1Q09iNEdfT0FmMjdxbFNkdHN3Ij53aW5kb3cueXRBdFAgPSBuZXcgUHJvbWlzZShyZXMgPT4gd2luZG93Lnl0QXROID0gcmVzKTsgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7d2luZG93Lnl0QXROKCk7IGRlbGV0ZSB3aW5kb3cueXRBdE47fSk7PC9zY3JpcHQ+PHNjcmlwdCBub25jZT0iTW5kdUNPYjRHX09BZjI3cWxTZHRzdyI+d2luZG93Lnl0ZXJyPXdpbmRvdy55dGVycnx8dHJ1ZTt3aW5kb3cudW5oYW5kbGVkRXJyb3JNZXNzYWdlcz17fTsKd2luZG93Lm9uZXJyb3I9ZnVuY3Rpb24obXNnLHVybCxsaW5lLG9wdF9jb2x1bW5OdW1iZXIsb3B0X2Vycm9yKXt2YXIgZXJyO2lmKG9wdF9lcnJvcillcnI9b3B0X2Vycm9yO2Vsc2V7ZXJyPW5ldyBFcnJvcjtlcnIubWVzc2FnZT1tc2c7ZXJyLmZpbGVOYW1lPXVybDtlcnIubGluZU51bWJlcj1saW5lO2lmKCFpc05hTihvcHRfY29sdW1uTnVtYmVyKSllcnJbImNvbHVtbk51bWJlciJdPW9wdF9jb2x1bW5OdW1iZXJ9dmFyIG1lc3NhZ2U9U3RyaW5nKGVyci5tZXNzYWdlKTtpZighZXJyLm1lc3NhZ2V8fG1lc3NhZ2UgaW4gd2luZG93LnVuaGFuZGxlZEVycm9yTWVzc2FnZXMpcmV0dXJuO3dpbmRvdy51bmhhbmRsZWRFcnJvck1lc3NhZ2VzW21lc3NhZ2VdPXRydWU7dmFyIGltZz1uZXcgSW1hZ2U7d2luZG93LmVtZXJnZW5jeVRpbWVvdXRJbWc9aW1nO2ltZy5vbmxvYWQ9aW1nLm9uZXJyb3I9ZnVuY3Rpb24oKXtkZWxldGUgd2luZG93LmVtZXJnZW5jeVRpbWVvdXRJbWd9O3ZhciB2YWx1ZXM9CnsiY2xpZW50Lm5hbWUiOnl0Y2ZnLmdldCgiSU5ORVJUVUJFX0NPTlRFWFRfQ0xJRU5UX05BTUUiKSwiY2xpZW50LnZlcnNpb24iOnl0Y2ZnLmdldCgiSU5ORVJUVUJFX0NPTlRFWFRfQ0xJRU5UX1ZFUlNJT04iKSwibXNnIjptZXNzYWdlLCJ0eXBlIjoiVW5oYW5kbGVkV2luZG93IitlcnIubmFtZSwiZmlsZSI6ZXJyLmZpbGVOYW1lLCJsaW5lIjplcnIubGluZU51bWJlciwic3RhY2siOihlcnIuc3RhY2t8fCIiKS5zdWJzdHIoMCw1MDApfTt2YXIgcGFydHM9W3l0Y2ZnLmdldCgiRU1FUkdFTkNZX0JBU0VfVVJMIiwiL2Vycm9yXzIwND90PWpzZXJyb3ImbGV2ZWw9RVJST1IiKV07dmFyIGtleTtmb3Ioa2V5IGluIHZhbHVlcyl7dmFyIHZhbHVlPXZhbHVlc1trZXldO2lmKHZhbHVlKXBhcnRzLnB1c2goa2V5KyI9IitlbmNvZGVVUklDb21wb25lbnQodmFsdWUpKX1pbWcuc3JjPXBhcnRzLmpvaW4oIiYiKX07Cjwvc2NyaXB0PjxzY3JpcHQgbm9uY2U9Ik1uZHVDT2I0R19PQWYyN3FsU2R0c3ciPnZhciB5dGVyciA9IHl0ZXJyIHx8IHRydWU7PC9zY3JpcHQ+PHNjcmlwdCBkYXRhLWlkPSJfZ2QiIG5vbmNlPSJNbmR1Q09iNEdfT0FmMjdxbFNkdHN3Ij53aW5kb3cuV0laX2dsb2JhbF9kYXRhID0geyJBZlk4SGYiOmZhbHNlLCJGTDFhbiI6ZmFsc2UsIkhpUHNiYiI6MCwiTVVFNk5lIjoieW91dHViZV93ZWIiLCJNdUpXamQiOmZhbHNlLCJVVUZhV2MiOiIlLkAubnVsbCwxMDAwLDJdIiwiY2ZiMmgiOiJ5b3V0dWJlLndlYi1mcm9udC1lbmQtY3JpdGljYWxfMjAyNjA3MjIuMDFfcDAiLCJmUER4d2QiOltdLCJoc0ZMVCI6IiUuQC5udWxsLDEwLDNdIiwiaUN6aEZjIjpmYWxzZSwiblF5QUUiOnt9LCJveE4zbmIiOnsiMSI6ZmFsc2UsIjAiOmZhbHNlLCI2MTA0MDEzMDEiOmZhbHNlLCI4OTk1ODg0MzciOmZhbHNlLCI3NzI2NTc3NjgiOnRydWUsIjUxMzY1OTUyMyI6ZmFsc2UsIjU2ODMzMzk0NSI6dHJ1ZSwiMTMzMTc2MTQwMyI6dHJ1ZSwiNjUxMTc1ODI4IjpmYWxzZSwiNzIyNzY0NTQyIjpmYWxzZSwiNzQ4NDAyMTQ1IjpmYWxzZSwiNzQ4NDAyMTQ2IjpmYWxzZSwiNzQ4NDAyMTQ3Ijp0cnVlLCIxNjAyNjEzMTg1IjpmYWxzZSwiODYxMzc3NzIzIjpmYWxzZSwiODYxMzc3NzI0IjpmYWxzZSwiODY5MzM2OTAzIjpmYWxzZSwiODgyNjc0NTA3IjpmYWxzZSwiODY5MzM2OTA0IjpmYWxzZSwiODY5MzM2OTA1IjpmYWxzZSwiMjgzOTUzMTU1IjpmYWxzZSwiOTE5NDQ0ODI0IjpmYWxzZSwiOTMxNDY4MDQ3IjpmYWxzZSwiOTI4ODc1Mzk4IjpmYWxzZSwiNjgzNzQ5MjAxIjpmYWxzZX0sInU0ZzdyIjoiJS5ALm51bGwsMSwzXSIsInhuSTlQIjpmYWxzZSwieHdBZkUiOnRydWUsInlGbnhyZiI6MjQ4Nn07PC9zY3JpcHQ+PHRpdGxlPllvdVR1YmU8L3RpdGxlPjxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVltZ2UtcWgzbTRFIj48L2hlYWQ+PGJvZHkgY2xhc3M9ImRhdGUtMjAyNjA3MjYgZW5fVVMgbHRyICBzaXRlLWNlbnRlci1hbGlnbmVkIHNpdGUtYXMtZ2lhbnQtY2FyZCBnZWNrbyBnZWNrby0xMzQiIGRpcj0ibHRyIj48ZGl2IGlkPSJwbGF5ZXIiPjwvZGl2PjxzY3JpcHQgbm9uY2U9Ik1uZHVDT2I0R19PQWYyN3FsU2R0c3ciPnZhciBzZXRNZXNzYWdlPWZ1bmN0aW9uKG1zZyl7aWYod2luZG93Lnl0JiZ5dC5zZXRNc2cpeXQuc2V0TXNnKG1zZyk7ZWxzZXt3aW5kb3cueXRjZmc9d2luZG93Lnl0Y2ZnfHx7fTt5dGNmZy5tc2dzPW1zZ319OwpzZXRNZXNzYWdlKHsiQUNDT1VOVF9MQUJFTCI6IkFjY291bnQiLCJBQ1RfT05fVEhJU19DT01NRU5UIjoiQWN0IG9uIHRoaXMgY29tbWVudCIsIkFERF9UT19EUk9QRE9XTl9MQUJFTCI6IkFkZCB0byBwbGF5bGlzdCIsIkFEX0JBREdFX0hJTlQiOiJBZHZlcnRpc2VtZW50IiwiQURfQkFER0VfVEVYVCI6IkFEIiwiQUxMX0NIQU5ORUxTX0xBQkVMIjoiQWxsIGNoYW5uZWxzIiwiQU1CSUVOVF9NT0RFIjoiQW1iaWVudCBtb2RlIiwiQU1CSUVOVF9NT0RFX09GRiI6IkFtYmllbnQgbW9kZSBvZmYiLCJBTUJJRU5UX01PREVfT04iOiJBbWJpZW50IG1vZGUgb24iLCJBTkRST0lEX0RFUFJFQ0FUSU9OX01FU1NBR0VfQk9EWSI6IlBsZWFzZSB1cGRhdGUgeW91ciBkZXZpY2UgdG8gQW5kcm9pZCA0LjAgYmVmb3JlIE9jdCAyMiwgMjAyMCB0byBrZWVwIHVzaW5nIFlvdVR1YmUgd2l0aG91dCBpbnRlcnJ1cHRpb25zLiIsIkFORFJPSURfREVQUkVDQVRJT05fTUVTU0FHRV9IRUFERVIiOiJZb3VUdWJlIHdpbGwgbm8gbG9uZ2VyIGJlIHN1cHBvcnRlZCBvbiB5b3VyIGRldmljZSBhZnRlciAyMDIwLTEwLTIyIiwiQVBQX1VQU0VMTF9TVUJUSVRMRSI6IlVwbG9hZCwgc2F2ZSwgYW5kIGNvbW1lbnQgb24gdmlkZW9zIHdpdGggdGhlIFlvdVR1YmUgYXBwIiwiQVBQX1VQU0VMTF9USVRMRSI6IlN3aXRjaCB0byB0aGUgYXBwIGZvciBhIGJldHRlciB2aWV3aW5nIGV4cGVyaWVuY2UiLCJBVURJT19UUkFDSyI6IkF1ZGlvIFRyYWNrIiwiQVVUT05BVl9UT0dHTEUiOiJBdXRvcGxheSIsIkFVVE9QTEFZX0lOX1RFTl9TRUNPTkRTIjoiTmV4dCB2aWRlbyB3aWxsIGJlIHBsYXllZCBpbiB0ZW4gc2Vjb25kcyIsIkFVVE9QTEFZX1BBVVNFRCI6IkF1dG9wbGF5IGlzIHBhdXNlZCIsIkFVVE9QTEFZX1BMQVlfTk9XIjoiUGxheSBub3ciLCJBVVRPUExBWV9VUF9ORVhUX0lOIjoiVXAgbmV4dCBpbiBzZWNvbmRzX3BsYWNlaG9sZGVyIiwiQVVUT19UUkFOU0xBVEUiOiJBdXRvLXRyYW5zbGF0ZSIsIkFVVE9fWk9PTSI6IkF1dG8gem9vbSIsIkJBQ0siOiJCYWNrIiwiQlJBTkRFRF9TSUdOX0lOX0RJQUxPR19ERVNDUklQVElPTiI6IkFjY2VzcyBhbGwgZmVhdHVyZXMgYW5kIGdldCBhIHNlYW1sZXNzIGV4cGVyaWVuY2UiLCJDQU5DRUwiOiJDYW5jZWwiLCJDSEFOTkVMX1NXSVRDSEVSX0xBQkVMIjoiU3dpdGNoIGFjY291bnQiLCJDSEFSQUNURVJfTElNSVQiOiJVc2UgZmV3ZXIgdGhhbiAkbnVtYmVyIGNoYXJhY3RlcnMiLCJDTE9TRSI6IkNsb3NlIiwiQ0xPU0VEX0NBUFRJT05TX0RJU0FCTEVEIjoiTm8gY2FwdGlvbnMgYXJlIGF2YWlsYWJsZSBmb3IgdGhpcyB2aWRlbyIsIkNMT1NFRF9DQVBUSU9OU19PRkYiOiJTdWJ0aXRsZXMvQ0MgdHVybmVkIG9mZiIsIkNMT1NFRF9DQVBUSU9OU19PTiI6IlN1YnRpdGxlcy9DQyB0dXJuZWQgb24iLCJDTE9TRURfQ0FQVElPTlNfT05fTEFOR1VBR0UiOiJTdWJ0aXRsZXMvQ0MgdHVybmVkIG9uIChsYW5ndWFnZV9wbGFjZWhvbGRlcikiLCJDTE9TRV9TRUFSQ0hfTEFCRUwiOiJDbG9zZSBzZWFyY2giLCJDTE9TRV9TRVRUSU5HU19MQUJFTCI6IkNsb3NlIFNldHRpbmdzIiwiQ09NTUVOVEJPWF9QT1NUIjoiUG9zdCIsIkNPTU1FTlRfTU9EQUxfQ09OVEVOVCI6IlBsZWFzZSBzaWduIGluIHRvIGFjdCBvbiB0aGlzIGNvbW1lbnQuIiwiQ09ORklSTV9PSyI6Ik9LIiwiQ09OTkVDVF9UT19USEVfSU5URVJORVQiOiJDb25uZWN0IHRvIHRoZSBpbnRlcm5ldCIsIkNPUElFRF9UT19DTElQQk9BUkQiOiJDb3BpZWQgdG8gY2xpcGJvYXJkIiwiQ09QWSI6IkNvcHkiLCJDT1BZX0RFQlVHX0lORk8iOiJDb3B5IERlYnVnIEluZm8iLCJDT1BZX0VNQkVEX0NPREUiOiJDb3B5IGVtYmVkIGNvZGUiLCJDT1BZX0xJTktfTEFCRUwiOiJDb3B5IGxpbmsiLCJDT1BZX1ZJREVPX1VSTCI6IkNvcHkgdmlkZW8gVVJMIiwiQ09QWV9WSURFT19VUkxfQVRfQ1VSUkVOVF9USU1FIjoiQ29weSB2aWRlbyBVUkwgYXQgY3VycmVudCB0aW1lIiwiQ1JFQVRFX0NIQU5ORUxfVElUTEUiOiJDcmVhdGUgY2hhbm5lbCIsIkRFTEVURV9GUk9NX0RPV05MT0FEUyI6IkRlbGV0ZSBmcm9tIGRvd25sb2FkcyIsIkRJQUxPRyI6IkRpYWxvZyIsIkRNQV9DT05TRU5UX0NPTkZJUk1BVElPTiI6IllvdXIgY2hvaWNlIHdpbGwgdGFrZSBlZmZlY3Qgb24gTWFyY2ggNiwgMjAyNC4gWW91IGNhbiBjaGFuZ2UgeW91ciBjaG9pY2VzIGFueXRpbWUgaW4geW91ciBHb29nbGUgQWNjb3VudC4iLCJETUFfQ09OU0VOVF9DT05GSVJNQVRJT04yIjoiWW91ciBjaG9pY2VzIGhhdmUgYmVlbiBzYXZlZC4gWW91IGNhbiBjaGFuZ2UgeW91ciBjaG9pY2VzIGFueXRpbWUgaW4geW91ciBHb29nbGUgQWNjb3VudC4iLCJETUFfQ09OU0VOVF9HRU5FUkFMX0VSUk9SIjoiU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2hpbGUgbG9hZGluZyIsIkRNQV9DT05TRU5UX1JFQ09SRF9FUlJPUiI6IlNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB5b3VyIGNob2ljZXMgd2VyZSBub3Qgc2F2ZWQiLCJET05FIjoiRG9uZSIsIkRPV05MT0FEIjoiRG93bmxvYWQiLCJGQUlMRURfQ09QWV9FUlJPUl9NRVNTQUdFIjoiQ29weSBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoZSBkZXZpY2UsIGZhaWxlZCB0byBjb3B5LiIsIkZMQUdfQ09ORklSTSI6IkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBmbGFnIHRoaXMgdmlkZW8/IiwiRkxBR19DT05URU5UIjoiU2lnbiBpbiB0byBmbGFnIGl0LiIsIkZMQUdfTEFCRUwiOiJGbGFnIGFzIGluYXBwcm9wcmlhdGUiLCJGTEFHX1RJVExFIjoiSW5hcHByb3ByaWF0ZSB2aWRlbz8iLCJGVUxMU0NSRUVOX0dFTkVSSUNfRVJST1IiOiJGdWxsIHNjcmVlbiBpcyB1bmF2YWlsYWJsZS4iLCJHT09HTEVfQ09NUEFOWSI6IllvdVR1YmUsIGEgR29vZ2xlIGNvbXBhbnkiLCJISURFX0FMRVJUIjoiSGlkZSB0aGlzIGFsZXJ0IiwiSElERV9QTEFZRVJfQ09OVFJPTFMiOiJIaWRlIHBsYXllciBjb250cm9scyIsIkhJREVfUExBWUxJU1RfVklERU9TIjoiSGlkZSBwbGF5bGlzdCB2aWRlb3MiLCJISURFX1NFQVJDSF9GSUxURVJTX0xBQkVMIjoiSGlkZSBzZWFyY2ggZmlsdGVycyIsIkhPTUUiOiJIb21lIiwiSU5WQUxJRF9SRVNQT05TRV9SRUNFSVZFRCI6IkludmFsaWQgcmVzcG9uc2UgcmVjZWl2ZWQuIiwiTEVBVkVfQV9DT01NRU5UX1RJVExFIjoiTGVhdmUgYSBjb21tZW50PyIsIkxJQlJBUlkiOiJMaWJyYXJ5IiwiTElLRV9DT1VOVF9URVhUIjp7ImNhc2UwIjoiTm8gbGlrZXMiLCJjYXNlMSI6IjEgbGlrZSIsIm90aGVyIjoiIyBsaWtlcyJ9LCJMSUtFX0NPVU5UX1RFWFRfTEFCRUwiOiJ7XCJjYXNlMFwiOiBcIk5vIHBlb3BsZSBoYXZlIGxpa2VkIHRoaXMgdmlkZW8uXCIsIFwiY2FzZTFcIjogXCIxIHBlcnNvbiBoYXMgbGlrZWQgdGhpcyB2aWRlby5cIiwgXCJvdGhlclwiOiBcIiMgcGVvcGxlIGhhdmUgbGlrZWQgdGhpcyB2aWRlby5cIn0iLCJMSVNURU5JTkciOiJMaXN0ZW5pbmcuLi4iLCJMT0FESU5HIjoiTG9hZGluZy4uLiIsIkxPTkdfUFJFU1NfTUlDX1RPX1NQRUFLIjoiTG9uZyBwcmVzcyBtaWNfaWNvbl9wbGFjZWhvbGRlciB0byBzcGVhayIsIkxPT1AiOiJMb29wIiwiTUVOVV9ERVNLVE9QIjoiRGVza3RvcCIsIk1FTlVfRVhJVCI6IkV4aXQiLCJNRU5VX0ZFRURCQUNLIjoiRmVlZGJhY2siLCJNRU5VX0hFTFAiOiJIZWxwIiwiTUVOVV9JTVBSRVNTVU0iOiJJbXByaW50IiwiTUVOVV9QTEFZRVJfU0VUVElOR1MiOiJQbGF5YmFjayBTZXR0aW5ncyIsIk1FTlVfUkVQT1JUX0FfUFJPQkxFTSI6IlJlcG9ydCBhIHByb2JsZW0gd2l0aCBZb3VUdWJlIiwiTUVOVV9TRU5EX0ZFRURCQUNLIjoiU2VuZCBmZWVkYmFjayIsIk1FTlVfU0VUVElOR1MiOiJTZXR0aW5ncyIsIk1FTlVfU0lHTl9JTiI6IlNpZ24gSW4iLCJNRU5VX1RFUk1TIjoiUHJpdmFjeSBcdTAwMjYgVGVybXMiLCJNRU5VX1RJVExFIjoiTWVudSIsIk1FTlVfWU9VUl9EQVRBIjoiWW91ciBkYXRhIGluIFlvdVR1YmUiLCJNRVRBREFUQV9TVUJUSVRMRV9DSEFOTkVMX05BTUVfTEFCRUwiOiJVcGxvYWRlZCBieSAke2NoYW5uZWxfbmFtZV9wbGFjZWhvbGRlcn0uIiwiTU1HX0NPTkZJUk1BVElPTiI6IllvdXIgY2hvaWNlIGhhcyBiZWVuIHNhdmVkLiBZb3UgY2FuIGNoYW5nZSB0aGlzIHNldHRpbmcgYW55dGltZSBpbiBNeSBBZCBDZW50ZXIuIiwiTU1HX0NPTlNFTlRfUkVDT1JEX0VSUk9SIjoiU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHlvdXIgY2hvaWNlIHdhcyBub3Qgc2F2ZWQiLCJNT1JFIjoiTW9yZSIsIk1PUkVfSU5GTyI6Ik1vcmUgaW5mbyIsIk1PUkVfTE9XRVJDQVNFIjoibW9yZSIsIk1PUkVfT1BUSU9OUyI6Ik1vcmUgb3B0aW9ucyIsIk1PUkVfVklERU9TIjoiTW9yZSB2aWRlb3MiLCJNT1JFX1ZJREVPU19DTE9TRV9CVVRUT05fQVJJQV9MQUJFTCI6IkhpZGUgbW9yZSB2aWRlb3MiLCJNT1JFX1ZJREVPU19GUk9NX0NIQU5ORUwiOiJNb3JlIHZpZGVvcyBmcm9tICRjaGFubmVsX25hbWVfcGxhY2Vob2xkZXIiLCJNT1JFX1ZJREVPU19ORVhUX0JVVFRPTl9BUklBX0xBQkVMIjoiTmV4dCB2aWRlb3MiLCJNT1JFX1ZJREVPU19QUkVWSU9VU19CVVRUT05fQVJJQV9MQUJFTCI6IlByZXZpb3VzIHZpZGVvcyIsIk1VVEVfVk9MVU1FIjoiTXV0ZSIsIk5FV19QTEFZTElTVCI6Ik5ldyBwbGF5bGlzdCIsIk5FWFRfVklERU8iOiJOZXh0IHZpZGVvIiwiTk9USUZJQ0FUSU9OX0VSUk9SX01FU1NBR0UiOiJTb21ldGhpbmcgd2VudCB3cm9uZywgcGxlYXNlIHRyeSBhZ2Fpbi4iLCJOT1RfRk9VTkRfQ1RBIjoiQnJvd3NlIFZpZGVvcyIsIk5PVF9GT1VORF9NRVNTQUdFIjoiUGxlYXNlIHNlYXJjaCBmb3Igc29tZXRoaW5nIGVsc2UsIG9yIGJyb3dzZSB5b3VyIEhvbWUgZmVlZC4iLCJOT1RfRk9VTkRfVElUTEUiOiJUaGlzIHBhZ2UgaXNuXHUwMDI3dCBhdmFpbGFibGUiLCJOT19ET1dOTE9BRFMiOiJObyBkb3dubG9hZHMiLCJOT19NSUNfSU5QVVQiOiJEaWRuXHUwMDI3dCBoZWFyIHRoYXQuIFRyeSBzcGVha2luZyBhZ2Fpbi4iLCJPRkZMSU5FX0NIRUNLX0NPTk5FQ1RJT04iOiJZb3VcdTAwMjdyZSBvZmZsaW5lLiBDaGVjayB5b3VyIGNvbm5lY3Rpb24uIiwiT09QU19NRVNTQUdFIjoiT29wcyEgU29tZXRoaW5nIHdlbnQgd3JvbmcuIiwiT1BFTl9BUFAiOiJPcGVuIEFwcCIsIk9QRU5fWU9VVFVCRSI6Ik9wZW4gdGhlIGFwcCIsIk9QRU5fWU9VVFVCRV9BUFAiOiJPcGVuIFlvdVR1YmUgYXBwIiwiUEFVU0UiOiJQYXVzZSIsIlBMQVkiOiJQbGF5IiwiUExBWUJBQ0tfU1BFRURfWCI6IiR7c3BlZWRfcmF0ZV9wbGFjZWhvbGRlcn14IiwiUExBWUVSX0NBUFRJT04iOiJDYXB0aW9ucyIsIlBMQVlFUl9DQVBUSU9OX09GRiI6Ik9mZiIsIlBMQVlFUl9DQVBUSU9OX09OIjoiT24iLCJQTEFZRVJfRE9VQkxFX1NQRUVEX1VTRVJfRURVIjoiMngiLCJQTEFZRVJfRE9VQkxFX1RBUF9UT19TRUVLIjoiRG91YmxlIHRhcCBsZWZ0IG9yIHJpZ2h0IHRvIHNraXAgMTAgc2Vjb25kcyIsIlBMQVlFUl9ET1VCTEVfVEFQX1RPX1NIT1dfT1JfSElERV9QTEFZRVJfQ09OVFJPTFMiOiJEb3VibGUgdGFwIHRvIHNob3cgb3IgaGlkZSBwbGF5ZXIgY29udHJvbHMiLCJQTEFZRVJfRVhJVF9GVUxMU0NSRUVOIjoiRXhpdCBmdWxsIHNjcmVlbiIsIlBMQVlFUl9GQVNURk9SV0FSRF9TRUNPTkRTIjoiRmFzdCBmb3J3YXJkICRzZWNvbmRzX3BsYWNlaG9sZGVyIHNlY29uZHMiLCJQTEFZRVJfRlVMTFNDUkVFTiI6IkVudGVyIGZ1bGwgc2NyZWVuIiwiUExBWUVSX0xJVkVfTEFCRUwiOiJMaXZlIiwiUExBWUVSX0xJVkVfTk9XIjoiTGl2ZSBub3ciLCJQTEFZRVJfTUlOSU1JWkUiOiJNaW5pbWl6ZSIsIlBMQVlFUl9ORVhUIjoiTmV4dCB2aWRlbyIsIlBMQVlFUl9QQVVTRSI6IlBhdXNlIHZpZGVvIiwiUExBWUVSX1BMQVkiOiJQbGF5IHZpZGVvIiwiUExBWUVSX1BSRU1JRVJFX0xBQkVMIjoiUHJlbWllcmUiLCJQTEFZRVJfUFJFVklPVVMiOiJQcmV2aW91cyB2aWRlbyIsIlBMQVlFUl9QUk9HUkVTU19CQVIiOiJTZWVrIHNsaWRlciIsIlBMQVlFUl9RVUFMSVRZIjoiUXVhbGl0eSIsIlBMQVlFUl9RVUFMSVRZX0FVVE8iOiJBdXRvIiwiUExBWUVSX1JFUExBWSI6IlJlcGxheSBWaWRlbyIsIlBMQVlFUl9SRVdJTkRfU0VDT05EUyI6IlJld2luZCAkc2Vjb25kc19wbGFjZWhvbGRlciBzZWNvbmRzIiwiUExBWUVSX1NFQ09ORFMiOiIkc2Vjb25kc19wbGFjZWhvbGRlciBzZWNvbmRzIiwiUExBWUVSX1NQRUVEIjoiU3BlZWQiLCJQTEFZRVJfU1BFRURVUF9VU0VSX0VEVSI6IlBsYXlpbmcgYXQgc3BlZWRfcmF0ZV9wbGFjZWhvbGRlcnggc3BlZWQiLCJQTEFZRVJfU1BFRURfREVDUkVBU0UiOiJEZWNyZWFzZSBwbGF5YmFjayBzcGVlZCIsIlBMQVlFUl9TUEVFRF9JTkNSRUFTRSI6IkluY3JlYXNlIHBsYXliYWNrIHNwZWVkIiwiUExBWUVSX1NQRUVEX05PUk1BTCI6Ik5vcm1hbCIsIlBMQVlFUl9TUEVFRF9SRUNFTlQiOiJSZWNlbnQiLCJQTEFZRVJfVElNRV9EVVJBVElPTiI6IlRpbWUgZHVyYXRpb24iLCJQTEFZRVJfVElNRV9FTEFQU0VEIjoiVGltZSBlbGFwc2VkIiwiUExBWUVSX1RJTUVfRk9STUFUVEVEIjp7ImNhc2UwIjoiJHttaW51dGVzfSBtaW51dGVzIGFuZCAke3NlY29uZHN9IHNlY29uZHMiLCJjYXNlMSI6IjEgaG91ciwgJHttaW51dGVzfSBtaW51dGVzIGFuZCAke3NlY29uZHN9IHNlY29uZHMiLCJvdGhlciI6IiMgaG91cnMsICR7bWludXRlc30gbWludXRlcyBhbmQgJHtzZWNvbmRzfSBzZWNvbmRzIn0sIlBMQVlMSVNUX0NVUlJFTlRfVklERU9fSU5ERVgiOiIke2N1cnJlbnRfdmlkZW9faW5kZXh9IG9mICR7bGFzdF9pbmRleH0uIiwiUExBWUxJU1RfREVTQ1JJUFRJT05fSU5WQUxJRF9DSEFSQUNURVJTIjoiUGxheWxpc3QgZGVzY3JpcHRpb24gY2FuXHUwMDI3dCB1c2UgXHUwMDNjIG9yIFx1MDAzZSIsIlBMQVlMSVNUX01JWF9ERVRBSUxFRF9MT05HX0JZTElORSI6Ik1peGVzIGFyZSBwbGF5bGlzdHMgWW91VHViZSBtYWtlcyBmb3IgeW91IiwiUExBWUxJU1RfTkFNRV9JTlZBTElEX0NIQVJBQ1RFUlMiOiJQbGF5bGlzdCB0aXRsZSBjYW5cdTAwMjd0IHVzZSBcdTAwM2Mgb3IgXHUwMDNlIiwiUExBWUxJU1RfTkFNRV9NSVNTSU5HIjoiUGxheWxpc3QgdGl0bGUgcmVxdWlyZWQuIiwiUExBWUxJU1RfTkFNRV9UT09fTE9ORyI6IlBsYXlsaXN0IHRpdGxlIGlzIHRvbyBsb25nLiIsIlBMQVlMSVNUX1BBTkVMX0VORF9PRl9QTEFZTElTVCI6IkVuZCBvZiBQbGF5bGlzdCIsIlBMQVlMSVNUX1BBTkVMX05FWFQiOiJOZXh0OiIsIlBMQVlMSVNUX1BBTkVMX1VOTElTVEVEX1BMQVlMSVNUIjoiVW5saXN0ZWQgUGxheWxpc3QiLCJQTEFZTElTVF9URVhUX0lOUFVUX0NIQVJfQ09VTlQiOiJjdXJyZW50X2NvdW50X3BsYWNlaG9sZGVyIG9mIG1heF9jb3VudF9wbGFjZWhvbGRlciBjaGFyYWN0ZXJzIHVzZWQiLCJQTEFZX0FMTCI6IlBsYXkgYWxsIiwiUExFQVNFX0ZJWF9FUlJPUlMiOiJQbGVhc2UgZml4IGVycm9ycyBhbmQgdHJ5IGFnYWluLiIsIlBSRU1JVU1fQkFER0VfTEFCRUwiOiJQcmVtaXVtIiwiUFJFVklPVVNfVklERU8iOiJQcmV2aW91cyB2aWRlbyIsIlBSSVZBQ1lfUE9MSUNZIjoiUHJpdmFjeSBQb2xpY3kiLCJSRUxPQUQiOiJSZWxvYWQiLCJSRVBMSUVTX1NIT1dfTU9SRSI6IlNob3cgbW9yZSByZXBsaWVzIiwiUkVRVUlSRURfTEFCRUwiOiJSZXF1aXJlZCIsIlNBVkVfUExBWUxJU1QiOiJTYXZlIiwiU0NSVUJfU0xJREVfVVNFUl9FRFUiOiJTbGlkZSBsZWZ0IG9yIHJpZ2h0IHRvIHNlZWsiLCJTRUFSQ0giOiJTZWFyY2giLCJTRUFSQ0hfQVBQRU5EX0xBQkVMIjoiQXBwZW5kIHN1Z2dlc3Rpb24gdG8gc2VhcmNoIGZpZWxkIiwiU0VBUkNIX0NIQU5ORUwiOiJTZWFyY2ggY2hhbm5lbCIsIlNFQVJDSF9DTEVBUl9MQUJFTCI6IkNsZWFyIGN1cnJlbnQgc2VhcmNoIHRleHQiLCJTRUFSQ0hfRU5USVRZX1NVR0dFU1RJT05fQUxCVU0iOiJBbGJ1bSBieSAke2FydGlzdH0iLCJTRUFSQ0hfRU5USVRZX1NVR0dFU1RJT05fQUxCVU1fTk9fQVJUSVNUIjoiQWxidW0iLCJTRUFSQ0hfRU5USVRZX1NVR0dFU1RJT05fTU9WSUUiOiJNb3ZpZSIsIlNFQVJDSF9FTlRJVFlfU1VHR0VTVElPTl9TT05HIjoiU29uZyBieSAke2FydGlzdH0iLCJTRUFSQ0hfRU5USVRZX1NVR0dFU1RJT05fU09OR19OT19BUlRJU1QiOiJTb25nIiwiU0VBUkNIX0VOVElUWV9TVUdHRVNUSU9OX1RWX1NIT1ciOiJUViBzaG93IiwiU0VBUkNIX0ZJTFRFUlNfTEFCRUwiOiJTZWFyY2ggZmlsdGVycyIsIlNFQVJDSF9MQUJFTCI6IlNlYXJjaCBZb3VUdWJlIiwiU0VBUkNIX1BQUF9QTEFDRUhPTERFUl9URVhUIjoiU2VhcmNoIHBhaWQgcHJvZHVjdCBwbGFjZW1lbnQgdmlkZW9zIiwiU0VFS19TTElERVIiOiJTZWVrIHNsaWRlciIsIlNFVFRJTkdTX0xBQkVMIjoiU2V0dGluZ3MiLCJTRVRUSU5HU19NSUNfUEVSTUlTU0lPTiI6IlBsZWFzZSBhbGxvdyBtaWNyb3Bob25lIHBlcm1pc3Npb24gaW4gZGV2aWNlIHNldHRpbmdzLiIsIlNFVF9QTEFZQkFDS19TUEVFRF9YIjoiJHtzcGVlZF9yYXRlX3BsYWNlaG9sZGVyfXggc3BlZWQiLCJTSE9SVFNfVEFCX0xBQkVMIjoiU2hvcnRzIiwiU0hPV19MRVNTIjoiU2hvdyBsZXNzIiwiU0hPV19NT1JFIjoiU2hvdyBtb3JlIiwiU0hPV19QTEFZRVJfQ09OVFJPTFMiOiJTaG93IHBsYXllciBjb250cm9scyIsIlNIT1dfUExBWUxJU1RfVklERU9TIjoiU2hvdyBwbGF5bGlzdCB2aWRlb3MiLCJTSE9XX1NFQVJDSF9GSUxURVJTX0xBQkVMIjoiU2hvdyBzZWFyY2ggZmlsdGVycyIsIlNJR05fSU5fTEFCRUwiOiJTaWduIGluIiwiU0lHTl9JTl9PTl9XRUIiOiJTaWduIGluIG9uIHdlYiIsIlNUQUJMRV9WT0xVTUUiOiJTdGFibGUgdm9sdW1lIiwiU1RBQkxFX1ZPTFVNRV9PRkYiOiJTdGFibGUgdm9sdW1lIG9mZiIsIlNUQUJMRV9WT0xVTUVfT04iOiJTdGFibGUgdm9sdW1lIG9uIiwiU1RBVFNfRk9SX05FUkRTIjoiU3RhdHMgRm9yIE5lcmRzIiwiU1VHR0VTVElPTl9ESVNNSVNTRURfTEFCRUwiOiJTdWdnZXN0aW9uIFJlbW92ZWQiLCJTVUdHRVNUSU9OX0RJU01JU1NfSU5fU0VUVElOR1NfTEFCRUwiOiJSZW1vdmUgaW4gc2V0dGluZ3MiLCJTVUdHRVNUSU9OX0RJU01JU1NfTEFCRUwiOiJSZW1vdmUiLCJTVUdHRVNUSU9OX05FV19WSURFT1NfVEVYVCI6Ik5ldyB2aWRlb3MiLCJTVUdHRVNUSU9OX1RIVU1CTkFJTF9BVFRSSUJVVElPTl9ESUFMT0dfQlVUVE9OX0xBQkVMIjoiVmlzaXQgc291cmNlIiwiU1VHR0VTVElPTl9USFVNQk5BSUxfQVRUUklCVVRJT05fRElBTE9HX0RFU0NSSVBUSU9OIjoiVmlzaXQgaW1hZ2Ugc291cmNlIHdlYnNpdGU/IiwiU1VHR0VTVElPTl9USFVNQk5BSUxfQVRUUklCVVRJT05fRElBTE9HX1RJVExFIjoiSW1hZ2Ugc291cmNlIiwiU1VHR0VTVElPTl9USFVNQk5BSUxfQVRUUklCVVRJT05fTEFCRUwiOiJWaWV3IGltYWdlIHNvdXJjZSIsIlNVR0dFU1RJT05fVEhVTUJOQUlMX0xBQkVMIjoiSW1hZ2UgZm9yIHN1Z2dlc3Rpb24iLCJURVJNU19PRl9TRVJWSUNFIjoiVGVybXMgb2YgU2VydmljZSIsIlRJTUVTVEFNUF9NSU5VVEVTIjoidGltZXN0YW1wIG1pbnV0ZXMgcmVxdWlyZWQiLCJUSU1FU1RBTVBfU0VDT05EUyI6InRpbWVzdGFtcCBzZWNvbmRzIHJlcXVpcmVkIiwiVE9HR0xFX09GRiI6Ik9mZiIsIlRPR0dMRV9PTiI6Ik9uIiwiVFJFTkRJTkciOiJUcmVuZGluZyIsIlRST1VCTEVTSE9PVF9QTEFZQkFDS19JU1NVRSI6IlRyb3VibGVzaG9vdCBwbGF5YmFjayBpc3N1ZSIsIlRSWV9BR0FJTl9MQVRFUiI6IlNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLiIsIlRSWV9BR0FJTl9NSUNfUEVSTUlTU0lPTiI6IlBsZWFzZSB0cnkgYWdhaW4gYW5kIGFsbG93IG1pY3JvcGhvbmUgcGVybWlzc2lvbi4iLCJUVVJOX09GRl9BVVRPUExBWV9DT05GSVJNX0JVVFRPTl9USVRMRSI6IlR1cm4gb2ZmIiwiVFVSTl9PRkZfQVVUT1BMQVlfRElBTE9HX0RFU0NSSVBUSU9OIjoiV2hlbiBhdXRvcGxheSBpcyBvZmYsIGEgc3VnZ2VzdGVkIHZpZGVvIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgcGxheSBuZXh0IiwiVFVSTl9PRkZfQVVUT1BMQVlfRElBTE9HX1RJVExFIjoiVHVybiBvZmYgYXV0b3BsYXk/IiwiVU5NVVRFX1ZPTFVNRSI6IlVubXV0ZSIsIlZJREVPUyI6Int2aWRlb3MscGx1cmFsLCBcdTAwM2QwezAgdmlkZW9zfVx1MDAzZDF7MSB2aWRlb31vdGhlcnsjIHZpZGVvc319IiwiVklERU9fTElOS19MQUJFTCI6IlZpZGVvIGxpbmsiLCJXQVRDSEVEIjoiV2F0Y2hlZCIsIl9fbGFuZ19fIjoiZW4ifSk7PC9zY3JpcHQ+PHNjcmlwdCBub25jZT0iTW5kdUNPYjRHX09BZjI3cWxTZHRzdyI+dmFyIF9GX2Nzc1Jvd0tleSA9ICd5dGVtYmVkcy5iYXNlLk54bml1dVpFVFp3LkwuRjQuTyc7IHZhciBfRl9jb21iaW5lZFNpZ25hdHVyZSA9ICdBR0tNeXdIVTZxSE5pdG5zNVhxWUVLLTJ5eVVFYUdPVmtRJzs8L3NjcmlwdD48c2NyaXB0IHNyYz0iL3MvXy95dGVtYmVkcy9fL2pzL2s9eXRlbWJlZHMuYmFzZS5lbl9VUy5fODhUd3l5SEtIcy4yMDIxLk8vYW09QUFBQWdBL2Q9MS9leGNtPWJhc2Uscm9vdC9icj0xL3JzPUFHS015d0V1MlRRVXpkU0YwQWNzRkJNVXJGcXl1cktsdXcvbT1yb290LGJhc2UiIG5hbWU9ImVtYmVkX2NsaWVudCIgaWQ9ImJhc2UtanMiIG5vbmNlPSJNbmR1Q09iNEdfT0FmMjdxbFNkdHN3Ij48L3NjcmlwdD48c2NyaXB0IHNyYz0iL3MvcGxheWVyLzdhNzk2OWMyL3BsYXllcl9lbWJlZF9lczYudmZsc2V0L2VuX1VTL2Jhc2UuanMiIG5hbWU9InBsYXllci9iYXNlIiBub25jZT0iTW5kdUNPYjRHX09BZjI3cWxTZHRzdyI+PC9zY3JpcHQ+PHNjcmlwdCBub25jZT0iTW5kdUNPYjRHX09BZjI3cWxTZHRzdyI+d3JpdGVFbWJlZCgpOzwvc2NyaXB0PjxzY3JpcHQgbm9uY2U9Ik1uZHVDT2I0R19PQWYyN3FsU2R0c3ciPihmdW5jdGlvbigpIHtpZiAod2luZG93Lnl0QXROKSB7d2luZG93Lnl0QXROKHsnUic6ICdceDdiXHgyMnJlc3BvbnNlQ29udGV4dFx4MjI6XHg3Ylx4MjJzZXJ2aWNlVHJhY2tpbmdQYXJhbXNceDIyOlx4NWJceDdiXHgyMnNlcnZpY2VceDIyOlx4MjJDU0lceDIyLFx4MjJwYXJhbXNceDIyOlx4NWJceDdiXHgyMmtleVx4MjI6XHgyMmNceDIyLFx4MjJ2YWx1ZVx4MjI6XHgyMldFQl9FTUJFRERFRF9QTEFZRVJceDIyXHg3ZCxceDdiXHgyMmtleVx4MjI6XHgyMmN2ZXJceDIyLFx4MjJ2YWx1ZVx4MjI6XHgyMjIuMjAyNjA3MjQuMDEuMDBceDIyXHg3ZCxceDdiXHgyMmtleVx4MjI6XHgyMnl0X2xpXHgyMixceDIydmFsdWVceDIyOlx4MjIwXHgyMlx4N2QsXHg3Ylx4MjJrZXlceDIyOlx4MjJHZXRBdHRlc3RhdGlvbkNoYWxsZW5nZV9yaWRceDIyLFx4MjJ2YWx1ZVx4MjI6XHgyMjB4N2EwYTQ0ZGM2NGMyMDAzNlx4MjJceDdkXHg1ZFx4N2QsXHg3Ylx4MjJzZXJ2aWNlXHgyMjpceDIyR0ZFRURCQUNLXHgyMixceDIycGFyYW1zXHgyMjpceDViXHg3Ylx4MjJrZXlceDIyOlx4MjJsb2dnZWRfaW5ceDIyLFx4MjJ2YWx1ZVx4MjI6XHgyMjBceDIyXHg3ZFx4NWRceDdkLFx4N2JceDIyc2VydmljZVx4MjI6XHgyMkdVSURFRF9IRUxQXHgyMixceDIycGFyYW1zXHgyMjpceDViXHg3Ylx4MjJrZXlceDIyOlx4MjJsb2dnZWRfaW5ceDIyLFx4MjJ2YWx1ZVx4MjI6XHgyMjBceDIyXHg3ZFx4NWRceDdkLFx4N2JceDIyc2VydmljZVx4MjI6XHgyMkVDQVRDSEVSXHgyMixceDIycGFyYW1zXHgyMjpceDViXHg3Ylx4MjJrZXlceDIyOlx4MjJjbGllbnQudmVyc2lvblx4MjIsXHgyMnZhbHVlXHgyMjpceDIyMi4yMDI2MDcyNFx4MjJceDdkLFx4N2JceDIya2V5XHgyMjpceDIyY2xpZW50Lm5hbWVceDIyLFx4MjJ2YWx1ZVx4MjI6XHgyMldFQl9FTUJFRERFRF9QTEFZRVJceDIyXHg3ZFx4NWRceDdkXHg1ZCxceDIycmVzcG9uc2VJZFx4MjI6XHgyMkloTUkzYmZDc19EeGxRTVYyY2hQQ0IwX0ZTbkRceDIyLFx4MjJ3ZWJSZXNwb25zZUNvbnRleHRFeHRlbnNpb25EYXRhXHgyMjpceDdiXHgyMmhhc0RlY29yYXRlZFx4MjI6dHJ1ZVx4N2RceDdkLFx4MjJjaGFsbGVuZ2VceDIyOlx4MjJhXHgzZDZcXHUwMDI2YTJceDNkMTBcXHUwMDI2Y1x4M2QxNzg1MTIxNjYwXFx1MDAyNmRceDNkNTZcXHUwMDI2dFx4M2QyMTYwMFxcdTAwMjZjMWFceDNkMVxcdTAwMjZjNmFceDNkMVxcdTAwMjZjNmJceDNkMVxcdTAwMjZoaFx4M2ROZU1vTkFEczBqRWt1TUY2dnBMOW9wYkJXeGdZVGVHT0tDMkVaVF9SYzRVXHgyMixceDIyYmdDaGFsbGVuZ2VceDIyOlx4N2JceDIyaW50ZXJwcmV0ZXJVcmxceDIyOlx4N2JceDIycHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlVHJ1c3RlZFJlc291cmNlVXJsV3JhcHBlZFZhbHVlXHgyMjpceDIyXC9cL3d3dy5nb29nbGUuY29tXC9qc1wvdGhcL2I4cVhyRkF1OVBIVnJHcU1aaTJucUttOVRVTlBycnpFaDQwUEFsLTZvVm8uanNceDIyXHg3ZCxceDIyaW50ZXJwcmV0ZXJIYXNoXHgyMjpceDIyYjhxWHJGQXU5UEhWckdxTVppMm5xS205VFVOUHJyekVoNDBQQWwtNm9Wb1x4MjIsXHgyMnByb2dyYW1ceDIyOlx4MjJScnZGMTdlTStKd3QxVXVsaEYya2RGc0IwWWxVQXV0VmpQakZkaWhIRUliNjhCZE1aVnM5WHBUdXpKcDhvMExvcHR0Mmp4d0QzVW5nSE8xNkJiZUVXN09xOUpNS0JlaHVVM2IyU0h4UDlINzZuRTBjcmZ5RW1CNE90UGVzZjNhSG5UNktlMTZ0RkxiTjNhWVF1aHdkXC9SdWxHbzZmMVo3NUF0RGNYM1JLekdlTmZ1dnY1QUtOalJqTVFWTXdMd2hHUkM1aTVsTjRBYnNDenZtb0ttNFcrREVodVF5VkpvZFMxZ1RoSXQ5Ym5BT0lzT2V2ZlNIclpnd2lvSk5kRERSUDN0KzR0cjRMWGRZbEg5NE9UYlg4R1o2b2Q2UzN6RTRnaHZMNE5pRlVIR2lqZzFvc0FkYytJeW84RGdxc3d4YkhCWVJsbVhpWkt2MHAzWFVPZ3NZd082emNnMko0MDZYcDRGazk0VHRHSHJzaEViUDZlRExMMHdoOHlHM2tZb3owSEtvRmNhRjE1Q3g2aDh3aVZDalhMaW5IXC82eXJsUjFNMlAwSTFMdUY3eWpIOXFPOG1JNzlyS2szWEN5eWUrQW81SE5SQkQ4ZVRYa0x6bmNkUXZJV3NrR25LMlJHMTJvUk9jWXBaajE0M3RxUEx3c3lvOElTdFFyR3drbEM5cVlXZUhPOWVneTBNRFpSbHNMNkpGWTBxZFN2ajM1XC9nXC9OSzZDMHZpSk5HaFRteGR3dFYzTEUycFFNYlQ1bFlnWVphNUJVYWwzUXNUTGgzaWJhVFFiY2FLVmdyMmZYU1RyeFkzbUxPUnVaSlQyRlVqenU0N0krOHRyVExkWVprOVdDZEZlS2pxZERzclgrYjRDQ0h2M1wvUHh2RUlBMzJ1VDRsVkhnb1ZiMEMrSUhvNGpcL3BHZXM1WUt4NDZuRUFWY2tiM0pKRkpqUVFybmZyeUM5eFc3ckpRZXMzS3A3bzRGWlB5dFdZOCszS0hwVzMwaks0dkplcjltU3puTlNtUHRMengycVcyN2RqalcwYjRhZUNZOWpkNWgxaTZlbmdSV1RSNStYc2lJbHFLU2lGZW1mVlpVdHBENlRWd2UxcGJTdjRBdkpOQXFLdis1S1RUZnVBTjdhTnZjMFRGeURidjhPbTNZMkNUcnh3Z0ZGMUpjWUJ5Wk5NSXptUkxJVTFLdE1QbFFlVXZST1pKTEJ4MGdkZlF2RGNFbDNrNHdKdEFSNlBnQ2dcL2d4bDB2c1FGZ1IzNkZHdUZlM1pTcUJvTTVRZ2E1UUp3Y3FEV2pIWXFxVjJtWThDUVhSNHNUWWZwNUErSSs0R0xBb2VtWFNQSkJUZTNoZFJGdHJLK1lWOXlDU3plb0JLOE9iQ1wvOVJUKzVjMGZ2d1wvVUg4cWplQnVRaTVHN3FMVllXTU5XY3p0R3NhaDdrMzVjT1wvaE1kN3R5dzlSMWtWZkRINXJjak9nXC9qZXpsT3JqV2FoZE1tdUh2OXVzeDZpS0pnbDFhUStRSmkwNndsVmxWN3VxNUR2UGVOSWZGczRVOVwveWdcLzZEN05uSmNwelRFRzBCNElsT0puQmRGaitDV3hTWDV3aXdDSXI3M0FPUUhLOHVQRnNoRHFCbjBXdTUySHAxN1VyeDI1dGpTRjNzRlo2a3kwdm05aVozU1kxaHRpSGtiTXJPUGtcL3kxV25RRFRGZ0NCSmxBcjdQcGM3UXRFZ2ZuN2dMOWE2YU1DSzZNXC9SbEJqcjN1bEpcL3oyODhGU3ZXc2Y5dmJsVVA3VVF6bFlDTEN6dVF2TDVMTzdlXC9PbkRUdU1cL1R6VlpWdXdlRnNxelJzdUpIemRnRXZhMWhWdEFnR3VnK3JXekpMQmpySnFuZlJTR056TzdKSkJick0rbE9ERDMxeURFdVUrbHRZMFwvbHFHSW1DbUM0R0Q2YmFjQnRoVWQycWFEZE1ZRkRzVUZOdjBYQWE4UE1lZXpjejU4NmhUOXJXT05Fd1ZwVWNjSnBoTDlKNlJjemZnTGRkTkpEaVl0NHpKQ09MYk5VaHF6Zm53b1Fkc1gxNVRBT3MzWVBZMUxhUFZYWHE3QjlhbHVvQzBJWmI4SzY3cUs1SlRXakJsWGdcL1Z4V2YrT2RvM1g2ZVU1U3ZTeVFYSGVJWG9QVllFY1VZZE5STG1uOGFtZ1FQNmNma0hmWWNXZ1NOcW9JOVkxVXdXQ3NoWFh0ampORU5JY3hzd3d5K1FvbVF2WlJoNVFRb1JXQkNPNlRlTmkzTlp5KzdwckZJdEFJZ05nV2t5NVd2V1hiSWhYSFdMUERIQ3pkem81ZkNQOFBEdzBCTmhUOGd3VXl2b2lHVmt6cFFCYnduSVZhU24raVlvdlhZb1I0NjVBS0FyMDdRbTNKZEppS3ZyU0dIcmdPamNydzN0WDhXNWhNNWVPSmZ1aER1dUI0blIxVUtwWk5SM0xuOGYzTG9uR3FOSFZObmZGd2doVnZJTTdYcGRNeTVwaDFkSlE2c3lkQ1IyMTI4Ym5MZ2crV1VBbVpibkZrdExSZldURmZcL3NoNVBFTkNOVnBEVU41U1pSRCtaelwveHh5WWJvU3dPM1Y0emdjMTVYajlJa0t1eUcwYjM5SXlvUGNGdXdcL3JrZGVOV3R3VmJzQitvcGswanRKRmc2ZlRwRVZqaktKa1NDSHpNVXIzNUIra3VLNmYrNDdGckxuOHp5MnBURVR5SUR4WkowQWhwcHh4UjNEWnFJNWM1S2ZcLzVlNURaYWVKQkNJSWdMN0g0VWVhbk1UQWxOSm1pZU8xSWdVdWtubDRMXC9DZG1TaHlUYXhSbU1VbE1wVGV0XC95UG4rcnpCbndhOGxpOW4rdDhwZGpZM2w1aWpLUXRDMHpcL0NYcmM5bGU2RnlRdFNrYXdCc0kyRDhMcVAyUGI3ak9PcXk1M29HNGszXC9IXC93Y0VER2dndHAydUFzb2E1ZElHRmRsMWh1QWJHaFwvQUxwMWtaVFBqTTRMOEs3Q3M4R2JOZTQzQUlOT3o5YUxBRFhOaDZMakpReTVsWHBxWFMxUStqQlB5THhVUllrMURrY3JOaW9IZkw5SXNLY3pXaFRqaXVldHQxXC9jVGVqc2tCTGEzZGF4TUwxeDE1U3k2WlBERUYrRlwvOVZycWFzXC8yR2pud0ZwdGJYTldsUndDNEhuXC91WTljUVV6dXlhMnFEbE1DQjVBMXc2XC9kTWp0VHRkbVErMzFRWDhJTmpoOTBrVmNRbklvaU5BalllcysrUm45elY2R2hLT3Z0QnkwQTVDOEJ2ZXIwZGFQeTExbTM2NW0wZmxPdDBYNFo2Q0ZDckRtbXc0TDhPTHM1YktZSVc0aHBnSEdwXC9GRHMxeERqWlc4TmlRYTdKdnR2V3REbHMwZFA0amJEOEdSUHYrOHdMZ0lmY1B5dGswbDV4anJncGFZM1dmQ29BTUh1dnF3ODREdjJjMGxJOCtEVFh6RWQySys2NWJJMVVVY1pvQnVLVUNNWE5tUXVrQjFMMWpPaU0rcVVNbXZPYWp0MUFTdnowYjVSMkJNTHNpNnpvWU5qbURvWWVVbEhOdDVTZEFoSk1LNndkT0p2a0d4V096UTBEQ2hRWXkySXF5d25iNkh4eEVsTzJQV1p0ZnRtdTBudzAzTFlKekp3YnVYYXpiSElRVzJTSktKUXdsN05DM0JKU0RBeGl6cEFKV3ZCWmtkeFZXRzhuUWRpNFlxUUFvSDRHQ2lwc1U5cEVaQlZUTWEwcVY2ODduWjNRb2VqUWdCc01QbnlKY1ZyMnk1Y0FqVXp1TVhcL2E2MXZGRkZOSmtFdzhFZEpHM1lKa3J6Ym9LMURvdjBkWSt3QnQzTFBySGRDclVUSHZwMklKcFwvaXJwRkdXVEZPbmxtMVB4djh2TVZ0TnV6cytMaHY5NXZ1SFZSVVFUMFwvK2ZrTGRDM3B3QnZXcWtSSXVLUTFLOUZxUjVcL2VXTGxZbFpUVExPREptcVJaUWNPYXZjTmUxZmlcL1hNSmI4WG5aeFBWNHBCMXdWR0xCVEl1TGdlZXhvb002Q28ydGo0Y21xdlE2MjJTOG4rQmN0SEJJV1wvNENaXC9Cc25BNGJBYW1cLzNtSEFoSlJ2WTR5bDI4ZklISFlcL053WjVJVzhDQWQrYlJpUFpEeXZHVmc3SGlyOWQwNUhKdktGVmJRRHRKVHlhK3ZLazVsMUJQRGZvRnZIWExydktJdnREd2FiSFwvdlZTamVpZjF2ZEJXM3ZqbGlvWGlRelBhVE5iQTJWRDN6UksrY0NjRXN5Z0MzdTJmZFFmUlwvZ2RNdzdYRDIwQ1VJY3FTRXM3QkdZNE01MUpWV25GYU1qTk9wNDUzRTlMUWdMOXFwMHhaSGIyVHk5KzdKOEdpQXJhdG1HTlhxUzBTa1ZOZzA0Y0Z4TUlzZDhQUFRHVG11ZktRcE1tenhuV0FjVjFEVzNRaXhibGZuTXc0ZmQrU2FJQ0FWeTBNMHlCTmdVQnJZWGNlSXVYNDB2WUNnVkNBWnpHTWljMTdIMmlJaXZrRmRcLzJXZGd3bkx0dVdEZVFVbm1kU3A3cDRCWEhsaXFGZ09pdmlCQWZTZm0xV0l3Mko1czdtTVwvQ2tXeWc5Q3U2eXF1enZ6cGhMWTc5OExmNEtjdm9zTVFOekc3VjQ3Vll6T2hTekJCR2k1dzIzbmdPQVJVVzl2aG1lbVhsVGFuQnA5Q2JPOTQ4Nko2UWZVNlVuZG9ocW42NXV3aVwvb2dKTzdWenJTY081SFUwUmt5R0MxMk0xRVZYMzI2UVp3cGw1NVZZTEhqVzBPSTdwdk9QZjFGTklsYUU0Vk1aaVwvXC9HQ1JtcHFkUVwvUW8rSXNsYnhBeFhMRVdhQXpUSzNGeUFUWXVONVFTR3ZiT0Y3ZWQ1WUgzZkI0TmJ2WHZST2lWR0pHTGRXOHdUalY5RWhOREg4YVAwMWpEQmtGcXVmdmRnblFZMjNCWkpUXC9aZzBVaVV2ckIyTnJNZjJiMFdiVG8rMllOZlBWWXF3NUh4Q1NFNHoreGNma2VsMVpJM2Z5b29zUmQxemc2dlA1Y2hUbkhIZVlibzBOT1Y5QzMzR08yWGFMb1ZjR3NBSGJ5dWwwVVp2c3dHWm1jTVBXUVBqaHhaYlNYM0VGdmhSbjlPckNheUl2UmtVMW5tdVhcL0RDNXFyT3IyampyZlwveVJcL0VxMlJnUUUwaFwvZlE3YnQzb1Y2d1BrS3NHQkNHT3BwK2p2WTZ0VUkwaTJzTG1RRURuXC8zbFpIYVwvQkh4XC9TdFdrQWNHQmttMFVTV3d5c2NPRTE3N1hnNHJKNFZUQ1dDcHRtS0dIUENBa0cxY28ya0pEeUZJZXV6cSsrV3kzQmh6d1FZak1MVGJHS2szVFIrVHF4NnA0cHp0bWhNXC94Mks2VFwvZGd1Q0MrbUwwVVZ2THp2cjd6MkpuY05PZUVxNCtydW9Tc3F0cTAxbkFSb1hTYmhIRlpDb05VWGxhWkNlUlwvRDdCMGRkZ1FuTFp3NGE3R3NRVlY1S05rVkU3NUFVM1B4RENLVTBtQWlnTTNFb3AyVFV3N3hqQlhxYXh5NVwvU2N4blA2ZDFkcVpkcUZqTDBXbElQQU1rU2cwbThheVFuZ1VYRGttanRVd0MxZjlucmZyMlwvTlFtXC8yOTRrMG40a013cURWUk5NSWYxSHIzWWx5bGtTRVIxWGlGZmpUSHVHeWg4cVNxbnVFR1pxSkJxR3VZemVxaVNXTExYT29zRE4rTTZadHNTTEhZQmRMQnRVazZleXFjS2JoVW9vNFwvd2ZvRG5tYUlkVnlINjdOZWpTUlJrOUoxbERSK3dhTGpXa0JLTVUrQUJWTUdpUUhZN0d4V0dnM0dMMERlamtuMjFDMlRDRDFvQTRZQ2FLTHBTcTZjUjVpV3FmMnFGamhtdUFMa3RDTzBNTXh4eUZqcWFDMVM1Q2lJVXNcL0Q3QUtKNkh2VFwveTVhWU1OVm9Bd3JJNG9vSmRTOEluc2UxUFNuZjhWS1wvUjBYU2JBb3huTFwvNVZhbStmNTR2VkJNSG4waWltV2kzb29mTjN1a1dDcjg1QjJsSXYrU0ltajIzdW0xdFV4UmozMWdHT0hGWUU0b1FvbCtUb3puZUlIMlJ6M1FyUUlCZmt1MFR6UFJoTk5mcThRQ0tTbmVwZWo5dG1EMFwvTml1TnhySERZc1wvbTZCSVhxdXAreHk1aHYzXC9yMEFLSTJvUE9PY2NseWc3Sm43b0xncUVrdXZxdXh6ZHlRU3o2MllcLzFCT01NUHJ6U2Zpc0ppVG9MK2RzdFZUZVErVWlEYVl5SmlQeVN4ZUtvSjdqMzd5MVlvS01ma25OYXBsMUhQZUxvZ1hIM3h4elBVbHN0cEU5UUcwZG5ydjFjZVFCOXpEQXgzbXlKb3JVRUFRdXFpWHo4R3VJMXpGdVUrVUw1Y1RmeHJDWmRNTFJBTUVKYmZGN1huYVlXMFl4U3N1UWZCa3hCYk9QOTM3S2JuUktwQnJobk5rbE5lTmhQWUlEZkl1czIxZVg2M1ZWcDM4VWY5SFhRU0VNMUlkeFk4SG5HUEVQejBHZDMza0VSME5JOElPcjRraitHSG5EblBzUTNySGZiWmd6MHZnQ2V3K0d6UkxTdlAweVQ4XC96V09CRWdidVhNXC9UTTdZUVdvVFlLY3UzZnFwWGxcLzVSRFZBU2RCT1ZnVERMU0h5bzEweHltdndDWGR1SGxoT1RpZEZ3aWRiRHZFMUtlNStVbnJ1TlFLZXl6V3BPbkR0RlZveDBtOW1GYWdYNEhlM0JMeEVHYmV4bjRrcGI0WHdvOXJocUtaV1Vjb3Y4am91V1dNRWhQUmNvRldQdEVcLzVEM2lkTVc0TUlrV1NnKzRnODFEU2lwTFNGOEUyZ1o0bU9JR3BRcnYzOU1GT1d3ZlwvY3FcL20zT1c5UHZTbUtwR3g0aVVhVjdZNXVqRHVkOEJTa0syNUg3TXppQkRrZHdqUTBaUm00eVFmV1VZRk54VFlJRVhNRDBaaVBhZTVjZ2NaaXJcL3g2RmJmbjNQenB2WVU2eHVPbTNqS0J6TUlwaGRkN2Z0Qkp1UWk1MDhFcXY0WGFQRjgrdHU4NmtrVUN6K0p4bENMQnhNV3JQT2o5RVFUMjZ0a2FsSUJZVERVcjNlV09xcmpEXC9mbCtES0orOEpObThTT2hmK1FRamdMWHltUFh3RDE2cFJBaEQ3QU11cmxIRmR2NXJCZnpwRUtpZ3FwUkV1UkZUNStFOGpkSXZteUM4Unc0dGluRGIxKzNadFFOVGdBa3hEUmRhMTh4d2FZa3U3Y1wvYzVrdmtTTGRxc3d4bXJtZDFxQkE4ZkJWalFYZEVBQUVHWFZWenRoaGo4aTU0SFhuV3RJWnRlOTQyUGlyUUxzVFdMd0puMUI0UXMyRzZuQW9GVnY2MWdjWHVFMTh4b3NOclNSRFp2K25GR2NNWDlDOVRKc2V5VmRNbXRJUythZFE3dFF3T1wvaGs1alJ0QnI3b2c2dERRWjk0OG00ME9qNmRwR3ptc3c2MWRxNFRtTmh2ejRGSVwvXC9UZlI0cm8zSXpCUzNBNmhqMHlralB2c0FZQWNHdFwvSVhGSk5uZmdsbyt6bkZaQ001VTZWWG9nd0pkTHBCVFV1MEZWdlVaYTJHN056cFhaU1RoQkZQV3BhZFhMOHpTU1Fka20xY0dpZnA4SDY0dUtBR0F0S3pcL25hTmZUejJCaDdPb3hEQ0dPdGZSbUtoeXVpOFhzQlFEamNPMHBXYmxRZnVxZGl0dVFoYmVhd09HekhxM2tQT1FEZk85UGJDdTg1TUlzZG1KZDBhbElaOGVlbG1rNkgxNTRjaEJDMDUxRUVUK3J2N2tHSDFRN3hxUFhLTDhIR1h2QURDNWpQeUx3VlowczE4MGRWTmVtYUkwbGNQMFFsNWcrSU81T05SSTJ3aG5LZGtwN0czQnozNmZ5eFFySndTa2g3S2V4V1VcL2F1WXR5WmxlaEIybVF5MFgzOXEyNGRGZGdtbkhGMnZ4ZCtVdyswV3hEV1UxYk5NV2VUYm1GNE5ucnFPQzdYclpjQ2FIVGlqY1FGTXFnSzZiYVZmZFpXT3ladTgzNzlzaXY3Ykl5OEdOQnhFeE5rMjJYNlE5N0lSbmVkQ0ZEYWdyRVpWRzBjeHZoSUJ4QnFNNU9OVkI3cFUwUWJWSktnSmhBd2tvM0wzMXRtYmFNZ1BFWG1wdHRrWXBEXC9CWEtcL3JDSnV3OWE4Y3ZkcmVuMXZcL3lZWWJ0TUVsOUhYU1Q4V2RCYXF6a2VhdzBNMlQzVHhiQUdtN2dCSVJLYjlHcU5MMVNLZUtNM2RCSGlldXh5WEJ6Z3hFY1hERVIrNjB3M2s0RG9PNU9GRVpDM0pVZDd2UlNnMkMwQlFia0xVZHRLWXZqaTlZTjVaa3hGd3EyUm12NHVkTnBiNzV3MnZ3WVd3R3VKMUZPWmlEQm90ZlVFU0tERUh2RzZDSlwvcGtQUm1aMCtMbmRJY2JBMFdjSlNRZnlxMkU5Mk9xXC91MXFtR0lLZlwvSXp1d1F5MWpQaW42bldsY3R2VVBmZmZPRnlocTBaY3FFVFBwK3pGck10XC83VkhNZWpTaWYwWksrMCtYZGpmUEZMbE5yTHljdlBUOVg4Zkw2Yis0WFQzVXZYMTFSZE5yQk5GXC9PUUZ2Ym9hR2RlSHlDNG51bFVYcXZUcHN5b1BpdWJocFFFZHhsbTFxVVwvdmNPZENsZVBYclZ0UUQ2WGlwaFwvdG41Z25sbzFSbGg2Mzg2OVhWMXcxVzByclwvYW03UUpTd0dwdEx4VUNiZldHQ28wRURDUlRCenJWOVF6eE1sclR3RktKaDZFb3RwOVAyRmdTR3U2QXpZY2ErXC9wWU5tbUdEbWpzMXBpRG0yWldpbWdNa2ZmT1A0eUxcL0lqNFdaSjhVWTRIT3lcL0hEVzYrR0YzWFh3ellIKzNVKzVDOWRRaDdMdWIrXC9uRU1HclFUcHI2bTNVRGlncTA2MHI5eklYXC9pOG4wY0VzTmFSZUplS01WZFVGejdQVlErV2ZNRFp6ZXpEWmFmUUpiWnZ1MUdVeHVacDZUMUFJQ2ZOQjFBNk1CUzJRcktVeFlhUDJUTDdsYWNCdDFmb1crdVwvRTBxYkw4a1AxU09RTm1oYTNkaXBVUm1qTnNvTG4zSnBWR0lzOGVVU3llbUo4SXFPK1NRYlVxXC9lVXBUVldIT0FPMUpcL1BScXRsWHBjclFZZHFQK3RZb1VrXC9tbW5MMENtWlhPb2pkRVBwXC9kOFp4U0ZER3pwZDJjOFdFbzdUT2ZJTExBWDRcL3ZUakNXSUhDRTZ1cjdvcWs1N0lVczVsQm9Oak13MkNmdXdCd01IcVFcL1lpWXpHSVlUM3ZZXC9CVFJxYU9JRDJiUFwvWk9uVjcwTndDakRJYmx2Sjh4QzBlbVNPXC9WRlh3bHRGcXBMWUorQkYzeFwvWVZTUm9oSGRiUDNHN1plWmxCRDJOT0NOUU9qMVBiQUk5TWdoWVhjbzNJSHlWOHVSSEJPdGFuQmZWSTljaDhBbGR4Y2JZdjNXNVwvZjIrZmRBbnRtUlRxODNiSFwvSmRiaTlyTnIzUE16Rnp3Y09JMWFQd1RnNlp5S3lZOERSTUlTTjRjV2hcL3JRdWh2bE1oa2UxZUtcL1VFVGVUMXBBNkxsczE1WElnVXhyQW9BOGtleU9iY3ZrZU1oblpNUEZTa2JSb0hyTFN3WnRqV3dWcDZMNXlaRkF1U1l1WlRIZ2RDRGdEd0FCYnVtajNmTjVob1djXC9sOEhaakliQjRvdVh5c0FCXC85c1QzV1wvT2dIbE1paVEwXC9uTWVzNUdwYk1FY2FZOEU5ZDJZN3VDZ1ZlRmQxRWl0REtTb01mNjJtV2xOdnp1VCtvRWc4NmNmUmJVUzVzZUN4N1ZpMENvZzFvNHVTa2pndjVKdTRRZzlNV1A0S2ZxWHNBZjJYb0tSU0JpSE54eVloTGUwK3poSmdUQldCQkV5N1R3cUcybUVHSDMxN0kzbG1LaERuVjIzbkZuZk12UDFUT2prZGUydHVPUWFtdm1YR0JsY2U4MEpNTDYzMGZZcXBKNnRyVG04c3ZCK2t6SU4wZjh0cE1qUUlOZkpFd2IzMExLWWxVTTdkWWtJRlkyYUVVUTZ3NENPUFpZVmRlTHFUMDB6SmgzbURwK3haY3NzSGZcL09IZVwvcjM5ZG84WWcyRDhPU0hwNjBqSURrTzV6ZHBpZ1BcL0JHcEVNcGxhUmU0SFdCVmlRU0hTSXB6RkNTME5ZTjlPYm9idUFYSUxZcjVheUU0RE5LdkVGUElvOTBobFBTcGY2QUNuME9Nbm80ZkhpRDJzRXFYZ2s1dGVLQjVlc0FkTGNhU1pMcURiVk96TTBuVXcyZjlldzZmYVZTbWlqUXJ5a2RWbnBySWhkb3lidTlnNGpSRlBrUXI0RmlcL3JKdGQ1cTJKSHFwRnZRaWxTWVpxeFdYXC9Qa1M0RHc4TFRPcGtoT0xmRjYwRUdubDBSVkUrWWwxV051cXRwdzB1ajJQVDRzSU5yT3pKTmR1azRWSnl1SitPclF3cHdLRmd2YjY3aDc4SW94V3Y0a3luVVVCRytzd0FRRnJvbTRaakZFTGdlVXEwZ1hOOThuSURqSXZYZm9ma09Da1kwbGQ4byt1WFo5aUFLK3lpTGtPNVUzUlwvMXdLdFdSc0tWUDBlSVFTc3BhNnh6Rk9PRHdzVG04MzhXRVZubVo3ekJGWDZYNmFwOFdsQ0RWd3RBb2N2RjIwemlnSG9RaFJcL1ZHZkxmMkZua0c4OEd3UTI0dTBSN3FGMnVGSWgrUENjbEhIamh4STFuUlhoeUYxM1ZybFd2VHpmbjFFM1UybXVqc2JVbUU0bUk0K244YzFtK3pjb3BOU2NVZXprRjZLRHBud3l0ZEF3ZFFzZFwvOWZcLzY3OFZVN1FLd3UycjB3WnBZa0FyQ0ZTRkZCOHpkemt2dDhyQzZkYVUxY0I3OWdOdGYxS2RnRVV5bGJNeDZDNVNNWVBRNFJrbHpyRGFDNUlSV3B4UCtPMkRsSEZ2a29oak5pWHhZSmYxR1Rpd1wvYWJSNVgzZ2t4cm9hQWlGQ0FlRlFcL1NDZm9IMjVaYjRnMnErTDBzQjdrVFBWT0p1TVo4ajE0S1pxajFHdEp1OWcwemR6Q1c1Wjd0QUZqaitkTUEzZUQzOHFtNURhRmhQb0d5aFVFQnpWYTFNN2hcL2FJNEp1eGpYNmtQTEUwcVV1dDN0bWtNNEVqQlwvVHhhM3VROEh3ZWlFWVp3eDdGcnBpMzBwQmdKdGhPdkRNNFRFNnJqOTMyN1wvM2FGcmZoUVllUmdva2FET01DWEZnUEpuRGJyQjE1WDl2Z3J1ekM3RlVPTzg5MTk0WGtya2RUSWpRcGlYd3ZsV0JmVnZ1TU0yOWsrNlc1NmdwN3dHbFlMTFwvWWRlNEtcL1JkdmlTaGFvNVlpUVRJNDdsZHVUSGhOVnBLdUU5MUlcL0JwaEZQcytGUHNIZ3pSYTRKNCtObVFScjZHWUpQZXpcL2xYNjNQdkd6RzY2UXc5dlFvMEFkREVwVG1EbXZvTFNJUEI4TU5vdVJac2dlSDc2c2NcLzFRRHNPdHIraXFkdG1sanhxb2l6RzlMU0N4OTVJZm55VzFZMXB2YnVEWXRhRWcyXC9PNEdcL084Znl6TElyZUtaK3ZaT3JXanY3TXVEVTZmemdtclVkZnQ3ZDRyR3JwSlJkYkV2MXFYOERrRU01YmtwWjdGYWxlbVhaTVhsNHB6R1M5UU1VSHpCN1NNSXpzeUpadU4zaFMzTFwvYjlWa3lXN281QzRaWmpiWUxWTVNFMkVqNndSc0FjMlNlZHRhSmplaHMxWUxRQlwvOXJ3bkZxcVwvRGFnTXh2Z3RjN3RlWWNSQ01Bd2JqNGEzaWFXWHRyZFJcL01yKzFhSnJLQnZYNnlzYk5xUEFKTEJYU3BaVmU1b0RDa1pEYWV5WFV4T2NCazlxemVWSUsyYmxEZ1wvNkFKRmwwNzcrVk1SeHJURGJQSko2bmpvNmcrSWZWXC9iaGNZSGtmWXhwNzVIOEp3VTR5dDQzNUo4d3pkYUNteHNhaUNlOHdYeWRMMVNORVJ3blRPM0Z6OVI2TDlDUG9UdGJqM2lxVzZhTVwvQjErTGdZMndvMzFqa0VxWVh2TnJQcEVnYWtvYlVZOXIwbUpNUStpYVwvekdLcTJyeVkxRHNLVldcLzRcL0V6aTlZZ3VcL3RydjllWW9yNHRHUjRsVHRQQ1FRdWxYYUF0UkhOSnRKb2dwNUNYXC9JZnhldXpvN1pmWU1xNDloMW5UbGdpdHA1Ylg4ZjFzZ2p3NXMwXC9qa0ZaSWxqTG8zaDRsXC91cEUrQTNpQU4zc3hhd2d5Nk5PRE83dHhXRHFqYWxGOTFjZXdpRmtpM0c3WkNGb1NJSkpscmJQR2pXQkhTZXZETHZGQnVocTJBNGNqeVU5bXJSck9pZ0ZjNEYrQldVYXVINlhLajRzNDcyczJaXC9COVRrcFhIRjJcL3krbVNLZWwyeVwvK05idmxMa2ptczcra1N4VlI2KzAyNVNPaGFZRE8yNENWMTVObFAwM2p0dk5pNVcydW54am8yQldJRGJVUlhvbzV3T3NIQ2pJZEljdWNhQXFtbXVITHFjdnRNbVUyWFd3WlRQM3YybE5PSmY4Rm1BWk5kMUlxK0lTVzlYWVZ1RVlubXBmWG96N2ZrdjI5RGpwekhVUjlBXC84Y0dYVE9sbUtJUHhtamgrUCtIVnJ2bTFuNFRLeW1ZdFVIUWpaM3NHajZrdlNZZlpIZ285RWZsZnFTOXRhYkRwM0dab3JKWTVZN0hhaHE3RmoyekJQSnpjbDZseVpxYW41dDJWR2JvWTlYcjF4c1R1QXZqcSttXC94UU40V3l2b3R4WHVjR1BubWVZd0FCN0c4M01mYTFZU3JGRkNsVmNRVzhIWU5zaThKUHlGQ0g2eFFFa3psZVoxSHBRVVNFc01jamRBRkNZaUJuMjlOWDhDKzI2TmcxWjdhVmdHVVwvUGFZMFd6OWZadE5JM3V5MkJ6XC9zXC9rK25SQUhiU1dWY2NXTWkyVmVlMDNrWVBETWt6c05cL0pycnhhV0tvWDZHWmFrbFFHQUlkMUZYSElIXC81MnJPMVB2N2R6QnJQd2NrRTdFVlVJR1FTRU1YRjlWWmlaSm1WUGV2NzJzYzg3VmczamEwU1dTUjloNGg4VUFQOVwvMDhSY3FlQVFhRGJTVjV5Wm5ZUzBBYWY2cmplT0pOWHRwUEoxVFlXV3RBdzdoRnFcL3h1Z2E1cXBQWEpUY2doRUR1SlVVNlRmazNvNklkSnhGdGc4U1cxTktoNmd4cnVTYURieHRTN1FPdG43VzZRbjU5bGVoR0Q2cXMzQlF3eTVmbks5V1BzZHhiWUJYT3htNlR0SEdDVTZVWU9pVjZianh4OXJHZTNubDBUeG5SMUZFZDV1ejhrS2xqWEludTBsY1liQVNOeG8rR0RcL01ycVlpV29vNXo4cUE1YkhlaVdQaFwvQ1Vrc0lEeHg5RHlkWVhkajE0dnlaRWdZd2xZdW41YjBTbWVCUlZNb3lhSVpqK043WDUzcitscXJKK1pqQjJURHN1cmhnUUNnaElCeEtzXC96aUZtRHFUWkRlZm14UWV2eEpZbTVPSGRYYU9kNmZmRUg0U05ydzk1RFEzNzNFdkNpR2hLV3cxd3VVSmtNZlFha0gzVktxUGxMb3VDK2xaXC9XVnFGWFhQcFZuMk5JN2YyR0diVVJmakM0a2Z2Skh1ZXh5QVNZQitONVhsbkhEeGdsSWpKXC9mYkpab0lrQ2prS2NXNmJScXBKcVNxSlFPMUJ2bjJjdHh5bFRGVXdTWFVVQkNoQjlpQ0dVNWR0VHk2KzBqYU8yV2dySFRGalFrczMxTDNHczVrbEdcLzBKRlMybkxic1RieDRDbmJxMGQxVXFGUXZhYzBkOTQxbG93K0dNdTV5N0NZcm55eVwvOGRFbnJiM1NqZm96SUlUMmtiNjlvajJoQ3M2Y3NzaXdXeTVOR1BXaU56eEhMelBhSnVib2ZUOFVrdVpFdXRcL1BkazJNNUp0OHFHcStPWXd2bTM2WEloYU5FbXlmejRXVHlrVDFKbW1kaHBoVG5aQmJtaE1NNTJJWmtEdDdwTWNwRjNuNlp6Mld5VktPMDlDQm9LamhpTVNNb3hhR3RWTXRcL0IrQlV1Nlc5cmhNY1UrSmZxWWp6UUJBVE1DUjdyOERhM1NcL2ZZNmdPWDVLNWUxYjVQT2VJMjdvc1k0bzRKSjVXWjNxeXlIZ2RqOVM0bGZDVVp5SE1pU3pDckQwMEhYXC8xektvXC9YU2R4NXBxS3Irb2haWUg1TTBldlFqUkVQWjZKSFhRaktTZnNwMW9EWlN2K0FReVJPQmVoQUZBYmczY2lteEtWMjB6U0pJSkxsMHdxejRCakNpMlVlUmMwRjYrY3BTK21LTGlRamk4a24wOUJlcVhSN25pclRMVE9QQkJBTUlLT0dqSDhCRmM3eGpMbU51WTg3Rnd3dXZPdk1iTEhCYlRnTFRBV2N0QThnb3l4bDdEcWh6WGRXZEFJZ2F2MWdJc2t6dmlXMXlLSldcL0g5MFwvXC9oT1lqa2lCbHY3Tk1LUGlsQVIzNytqcnRacWsxUHp6VmlDS0lNMlliMnpPcHZjU0dCNFpvSldoSVQxaFFNNlh0aTNaSUdzbUFYeVwvWUUzV0Z5OVJGUGdlME5hdlJTRndKTUhLTTRlUHQxNXBpYkFuek8zSUl2bEZoYVdxK0NOelA4UTJma1JJQk9ocnFXdSthZTZ4NDRMSDlCdmwxeWM2TmM4c0dZT2tsRGlWSUthTGozcTNrUkVCYnl0eTh5MEVYdjFXWEFZUks4MmpEUFA5YSt4bFJOT1dCREtNVEdiXC83MmNkZDhDUHlySXdWWnZEY1RrNUVLbEJBZTlKME15clJYeHpZeHhJY3QrQU1hYUxpWmZZdTMyWFlxYm95NHRpQWtxOWtoc2ErUnVrN3lBTHVvc3pwNW1SM1hRZUEzbDdzUW0zS3VNbkNtNkVCdDhLNVNGTnhNYktGOVwvTzFQaHo2SlJZZk9FaEw3b3dnaVZhZjAzUTY1MVlPNFFYZloxcWNaY0kzc0NUWWNaT09rbzZ1YjZSWFZ1bFwvRlZ2ZWVmRXBkQjRDaGlLUit0Q0IwdndQUE1cLzE0aVQyeTNjRDl4Mmk0a0ZLS0hCUE1wVWl2aUNLWGxlK3lQR1wvNThPOFE3OGZHSkpLcXJmTTliWlwvaFkxRWVaUDQ5eStJNTIzZnA0eHV3bDRMaXF0STUrSEdlQlMrdk5oR2kwNmtBZnBleU4wdGFvcU11S3BLdmFcLzBSR2NldW9WVXM0ODNaenFkMFhLbVBjY0pNYzJGeG1QN1E1cUlvRkxaaW85b1FrT0thTG82ZXRnMUxUelo4bWlmQ1UyZUNrbnJWN0c4ZkhXUTlzNU9Bb0xsTVE0cGdibXFudnhLb3psT1lMaUhNQlB6UExoa0ZhRXRhMTVaMVRYTkRTR1lVMmM5MXVOemFzZUdWTTk4UjNOTFBPbDJlVU5TbnFcL2x2NW1jVFhOb1JDdWNINTJUR0lKSnBsM2g1bVJlUnpJTEZ1U1RSaDJQUXlMTHhOTXJrQWpjd0NRQzI0MytOWUxlZkxqT2FtKzUwVFpKNVNnTXhxUnVcL1hGbEFsRnNjNFF3Znp5OU5Fems1azNCSHNZQlEwbjNXelpHK0l1RjFYWUpoKzFJV21zbVwvUWh2Y3o4SXNkc1o2c3lJdU9jTURSenJXMG5JN2MxRXZHbEZrXC9mNG54RktpWEYwN0Z1UzVOWHlNV09aSDJKUXR5UXdGWFphWTRVKzduRW5Ob3FtenlJRk1Cd3dhMWdOMm1nQitDZnBZZGNDekRzS1hRSDU2ZUNcLzRPdHdBMnV0eVdZUDBUUTdCUUR3bUxVSVwvMFl1eEZ1bEw3Mjc4Y3c4WnNcL1V1ckNnbGRyMHdLTEs2M1BJY0krXC9BSHdKNGV3VW1Dd2tjSG9NTFlXZWZnOFlHV1VZVmFXUUNMTjN2a1hVdGRPWlJrMFJ5bWVZd1wvSGt1NlpxUERaR3Z3VGxhd25IVVRYK2xOdG5JdTFuSlBLVUUxRzZOOThneEdSeVdDczlvMzJDN3JOb0tBeER1TzBFZmRIV005UzBKSVwvMUlLNjFvbGxkWmNUMjZJMGNmaDRlbjhTelZUeFpEc3FwS1FjOHh1K3J2QndFYUlzR3R4Qm5pV09yZ0t6YklhM1Myc2lpVzJGNitPNzg0Mm5CcEJxbWJPUHQwdEdIMzQ0OXAyRFpUVVZPemxkdU96UXRpdCtJaElmTnBPS2lXNXdFb2pjTkdIc1VjWllUV0ZROG85UkRlY0pUdDUyMGh2WHZXNWxaaGtUa0Q1XC93SGJzTHVVdnd6VmpyWEdZK1JCMDB4NGhLTHRUVklYaGZLRElTVjhibHVUUytGUmF0N2luaStXUHdEMmsrMXhnSUhEYnlqMEFhN1lmZHlySnRWalJ5VFwvcEw2VEJFR0paSlViUjdybGZ6TlRLK29KSjlvKzR2ZTlneExQV3VrTDVpS1IyanVXOGJXTVwvXC9NTGF6SDJPYlwvd29YQzJ0UkJaQ3BUYlN6M01qZlZCRUVYT2lxUjFMNXc1MkpJRU5sVVBPN1dEVUJ2djNEMVlVclRDVzVxUjlWSWtQWWljc3FkeEhQUmFBS1U2S2J4MFEwVE0yXC90UGdCWXFUdTdTNW04Sms4SGY1UEZycjBRVmdMVFBJMFRUOUpHV2dNWXJDc01nTGpvakZJU1kxSTR4TmxjMFg3akc2S0xmbkdTUVZcL2dJNEhYNHVRVzV5RkNuTGpyZ25PelRyRUpTT1BveGRIZkpPRXVWRXpQbk5sdUJyYktZQ1AzQklDVnhXT0pmc3dZbGtuaGU1Q3ViUTE2aExsb1NuY0FKUjB5SEMyMkFVU00za2Z1Z1NZUjQxYnA3UDMxTjQ5WnZvS2dGK285amtoWFIzdkRrNUdrQzUyZjFnSjRTQThVTlFcL3hIdE1nV2FTMG1ZVEtxMDJDK0JmMDU0SnlDVGtRQ0hmR1dtNUJ5cFU3b01IWll2K2NSUTVzS3Nyb3Z2WnZzUVp0aVh4eXNDbEw2V2M5SndLeHJrNXdVcmJGT2o4ZVJFV0NPelFWYmxvMHRVclo1TktIeUFGbE5UZVBVSm1MMituU0Y5MTlFdkQ5Z1VQVUdiSGpEWkdcL3lLSTNsbU4rYkRPSitRSk9cL3NRck91ZVBRYlYwVW0zUGJZYUxEMWkxQ21xZ0hIdTk1S1o0eWh1bUp4dVVCK0FoNU0yaTV3Wnc1MDlvdnB4d3I4RHhHRnY2TWpqaUZBMml5dEtxWjlCM3hON2hacDVHTytCc0M0R3dxWUNGWGk4OThOMHdXblFxYjdBNjdGM0R1T2tuSEljUldoTGkwb2RwRXdrYkdTRmhQMEFiVldSNG9tc203cnhVU1BBcnZuNTU3ZHdrQVY1QmdKeVNMVlwvVlM1bWtoT1hyYm1ISjU0TitxOXVGeE9odEVsaGhOU25NelhxR1pGYXdFU0xGemNmTHdXZ1dpb3FWdmZqWmJiekM0RFk1SVA3TzhcL3lUUHRTWmZnRVZ5bVwvVzZSOEVkTVRySjdIZGVJRTdjSnhqTWZNQ1wvT1FFQVwvRk5tclhicVlBTUR0SGJUZ0IyQVBoaFdkOTFZYnVIazY2NjVFMmc1TVdRVzZcL2xISHNKVjh2QUFUSVJHQTZOb2NTZTZCXC9nTmZBSGl1aW52ZnB1SHpCaGEwSGZMOW02WDRLVXBtMEdWbElsalwvcjJNaGNpelNqM3RFQXhIU2c3aTZJVmVTMXlYb3pOWFdMRWcrRFJpRkdtV3A5SklZVVVMRXlhWVJVZ3ZDelV6OUJpRnNqcUFONEhvNFFZNW42aFFYK1ViMjBMYzIwNWFqTkZpTFY3Tmk0ZWFLTVg3cnhoWktPeFdYWTRqZ1ZueGt3SDh1ZURRRUhyODc2bzl6dzBOdktZaE5rbG1YZUlqWTVIUTd2SFd5cWtyVXdEd1ZNalErbzQzSUF0SGVEbXlPYVhHT2t2eDF0eVBsalVDSUx6MjBSYXMra2Fxb2lJV3dHdkJNRjc3SXBrZ1I2MDhicDZmWk9nc29YanMrNis5ZXRnXC9sYWs5czdGWnhPUHo2dDJkZWtzVUd4ZlhsUjNoODFvQUg2UjZqZ1wvYnZIXC8ySStYNHlVMHpcL2VaWkZDaHJZdnFwVE9lODBjVEd6M084KzVQTjU1WHZLTGwrWWNXenVMMmtCbkpKUnNPQ2NDK3plb2xLRTVqYzVNa2M5T0hLXC9CamNWbHZyRHk2eWpRSkFhQldZdmRZN0hMT2ZLY0RTU3diZFA3MndaZGdDUklQeGsydXg4XC92OFZCNVBia1dORHRJZUxlQ1NtUVE5ZjR6K20rbFN4dUZ6YWNteVhTdUdjSmJ3aXhtK01xTmtVV0NlOVBPNGpGU0t2WUNHTkZqT0ZiS1RuRkREcDd0b3NLMlcycDlUS1lrQ1lobmdUVjFLeVFkNWRkREoyUFVFQlpFSVwvdDVoZVRpcXR1VzRnZ2lRXC9mbW9JMXREeW14bWhnaDAxK1FvdjZrd2d6YXRCT3BKR29VYzZ6RHg4RExzUnB4RDcyWUN2OVNaM2d4eTlLOGRQaTJ1ZXVlWUpRcmRENGd1VlU4ZTlJYWsrbGhXZUI2TGpHV2hKSEVQMytmckxnQkxZSmsrQlZDVGJhMVc3aXNBcVpuZzV0a0IwZlpkYklFRFM0WTdwa3dvN2FkVjhUXC94NHVSanVoQlZwMVVJckc5TlpqTDlGNTZYOUNEM0FpcDJJeHNiUHhLOEYxM0hSa2tmd3o3SVhVVHFZREs5NG9BcFRlQmw5ZmhMbWtMVHFrWFFcLzJFc3hXdXpUeXlLYmtwSFIyZ0F2dEhMODJSQXdMV1F5NVR4TVM4OHhjK2ZHY0Y1dEVoZVpZK2QrdUhkRlJmbk5FXC96cHRhM2JBN3kyNGx3bEJCZDJSNGdwNm1aSDV0UzFqMnFJZFwvVjM2YXV0eDVLSlJxVVIzaDhmWXJnQklwdTdsaWYzMWZPc3czV1NSMXRySVFTMTlCVERXM0FiWTAxdythVUM0ZUgxOHpaU0Vrd2FGYzNkbGF6YWIzaHFvd2RDTEpjSXJDMWtJbnowYlc3cm9mZ044VGlYNldHZVplSzFQeVJsbVVyMnVVS1MxenVUcm4zWitlSndJQ3pRVEw1R25KYklLblZURTIzMm5kNDg5VWVqb0F3RU9HTjhmUEk3anhmbEtRVWdnK3VMeVZuOXpGSmNZRUtkVVh6ZExDR3BRUjNhUXdIWnkwR0xWWnpHYU1KXC8wbm90ZjMzWVdnZDVCSmZiUisyRWsxMjE3WGpERVRMVWdJUVF3Umpha0pvUlpIeVEwdkZRYk1oeUZlaTJSbWpnTWhvUENxNVB0Qjg2NzBvVzlONlVkSEtsSXA0SkZ2OXNmVjJ3d0dqdVUyRUt2UFMrd3lrdlhjNzBra0xjc00wV0Fvc2RCaXhxNHJKclJkdHl5QTdcL2p2akQ3aFJ4Qm1jRm4zeUZEdkdhVXVhUzFOMTJGSURaalwvNTUrWGgzdFZFNFB3MW1SWUlTenUzalZYME9yUUIyQXJoZ1BVeUNaTjMxMk84VnlHUlwvdmU2XC9YSWVxaExHazdZUW83bnNjTEduR2tRcHRRVXU5SG5Xd0o5dG5iU24yTmtqRGRhdFwvM3daVGVQNEpReDRcLzBhb1wvd3VmS2JBdGlyVW5DWFRMTThuSmlCaitPQ0N3SlpiTmQ5YnpVNTlGQUlJUVdJTVdJQWFnZldxbmhhenBLbGl2UHkwU1B2UjlLWUNIZWU2WHpacWFJRkN2eHVBS1BoTlZ2cWtqMzk4eWs4ZkpHZGNMcFNhOFZyUnFtM0dJd0IyNWVRNVwvdlJkME9aVncwV0JhdnNGK2QxUytHbzBqOUZqclMwNDZGUzl3WW1QYWVtWDd5dTRGT1QrYlFhbkEwVGZLNzYyRWp4TlZlTGV3VExxcjAzQUpWV2dFdkJkczFlOFp1Q1lkNDBLVEdMTW5pSUZHOVJ0NFBuSlFQUW9vS0JLalJLcG1JYkJqWFhFQ0dkeUtOemRPZFNzOVBxenozeGdUQmF3QyszMzN4U1IrVjdIQmZSYkJJRmVMRnlFZjBjVGpvbHZPeUlTcDcrRkI0U3JNSUxBbVo2eDNpUlozT2dCbnQzcjhDdWNNUWFVTE5oR0tiUFp6S0VocytSMTV1VWF1aE1SeWtFREtLN09hWk80NFR5TzA1TkZRczN0XC8xWkdxVEczR042Q3pyc0FOVlZ1Rm1KMnFUNXFHXC9yblVSaGVYXC9nbkQrQ3l1MlwvbXNNSVRHVWFmZUIrRU93eFFmRzB0TXlTTEF0bG54am9oR1VoMURDQUNzc0tUVU5YbytRd1F3bjFHVkZ1QU9LRHdOZE5VMHpJZ2Q5OTJEVUcwNHB6Tm16eDVQTTRzcGprWUtMRjVHZWQ4Uk4ybnVTM25wNFd2SUI2bUJvXC9wQ0VFcDZSNkxaZkxheTFnZDZFOUc0dWRPOXJrZzlVYXhkMk5PVFlXVEZIYXBnZG85YU1ob1IxSjRXY2RIc1Q0UGh4TitvYUp6b3ZKcHlQdTB2T1Y3b1ZqcTlpUTZOWU43TXRqMnFEbDFFSk9QK2htWm1DaTlPcU16THBpc2ZuOW1rZEhVdDBHYnR5TG5XVW1wTXhnVkwzVWFjR0Z2eGpSVldyT0RrYVNDbFdNZXllOHBwZmptK1RjektpZGxYaDJLNlUyOVo4WERERk1FOTVxTmkzcjBTMFBuY2RxZ0hKSGZJT01cL1wvWTVVTVpxa3FwUnpiSWRMSDhYUExNV0tQamNEOHdWZm9OVWJOU1hncFZjTjI3ZjJxbnYyN0JWWnUzUHdEaXpDSW1ueWU1NXdOU1NwdHVsYnpGZ2dHejBDTSs1ZGh5eVhuNE5KOEVTUHAycTJCZmNDNkpPNjY3VnE0YWVCXC9oYzVEdm5BQVBlZTRERmVrQTE4VFBzWW9BSFVmVFlyN2hZQXZkZnVlS3grVHFNTDIwYWFLVWp3eTlOazBXM2cwQUZFSFUxd3daZ1FOWVdsXC9odWl4MlQ1NGNFaFpDSFRsaXBDUGkxYjJrWlZyYlJnTEpWNlJrMFlQSlo2YTRybWczUDBORVhOVGpFWW9SWElCbGxZMTZ2dDFsTFFzWjBHUXpncUZMQ1U4QWxFK3Q1ZlJaRzRjTUV0b0g2Tm9lTk5sdFwvbVdKY2tHcHRaZkFra0VHSlF6MkwwWndsdFNoVjlPbzM0Uk5Id1pwbkZZQWtvWFRMS3RFbFlNXC9WZGFGclB1TVdkbmtKVTN6VjV3TWVrMG1heXE5UkYzVDhzXC9vdGlQU3lTZTZvNzArRlZCZ3I2UWk5SXBKN3J2MmMzblNLdGtKSFJ1SEJOMlc3UnhvUG0wTWwrTys5aGlhbW9xa2FxNmFLdEo2MFNnejJSbktrK3JrNkFrUmZ0dlp2WkZLb0c2Q25NeVVIRTJ2YlwveG5cL1RRXC9uN2IxM1JJVGV0ZVVRUWRlcDhlcHV0UHNoZWNGdnRKNkdKWmtYdHFCZWFGOVwvYzJKaDN2c2hTZjFlUGdiYlM4Qm84dnFrQ3JTc05XbmNCQTZMR2ZieUo4ZVNneEZDS2JEanJ0NGgzSU91YkVHNmVDcDhMek9qbThsNmUyM0tVcFUybFwvNmJsOThMUFdUYXFHV0kyODd4TDF6M1dUVjBBWkNJa0Y0WmpqeXErYktEQWwrZkdGakFuYTBGVytuVElvZVZvQVdMdUxnY0h5TFwvSTZMeXA5UnBTd1FzQkxxK3Q2MTVZS2dSc1NycHhBZXJnYXJjWmFhY1hrTW1xdkoyNlJleFhsTHZuVkhTRE9wQzROUWs2TGNpcFJDRkZlakducnhKUkw0MkxVSllPa01FN2FTQzl4aFE4TVwvQ0pLR1Y1QkNuSFl2MmNDcXNKQU9tRkFTWnhSM21NdDQ0YUp0UHI0aEw3M0M3VFdhdVBTa29sek1cL3kwVmZRcjFYTVk5OUxUZG8xMFNHdWRLVW1pYUFmQzVKejVPaTUrMXhpR3J4aEZ3ZlkyMXU2YkdVY1Y3bm51cW1rYzJNY2NwSHQrU2VWTFl4aTY0K2hPd3gxeFhFODUrMGhvY0FQd2p3TERLZVZyUk5hVktBZXBuQ2pxVlNEUCt1MzJFckcweWJFT25WS3VScEVmYncwYWUrdXhGSnpOanNwTWZxbitzNTBOVDFcL21VelFpK245N09RQzVIaVR4Snc2d0JDKzRUQXlRVjZRREdmR0pSRE5tNCszMWFycVdLWnlDY09UVkt4SU95d0wycENIN2VWQnhEc0psbFBMRUh5RSttWDYybE5sUG1ZdE9ab1wvTzlyVjY5c2tEK1wvdEs3RTJ1aExjZFpya2gxdDZ3c0w4dytlTCszWWRGNmZ4c3YrUHVFXC9MVlRrMXlwQU1hdkhUcUJwQVJKWExMQThFMW5QRGtIR2wzblFxaEk4TmNjNHpZSmczTVVPcUlGcElHaFZGUjhHSm4ycHhyYlp5eVhLNncwOTdCSDVnRWtaWEZIMThXXC9Ta2lOWFwvbG1jaW1pOEduNXhkbzJoQVRjY21JeEhjeDdvSTlaMGtDOXZPZEoyMTdOQ2VpOUZzYklCUGlRMXN2cEtJdk1BbEFaY21EaE9Ib01SbXJveFh2djM1RlwvblhacHdTNFpYNzZ4eFRFWlZlcGtiR1FqYithWit0WGVIUGsyM24rc1lzME42RXNmVFJhTFdHMTNUTU56RDFwODAwZXZJeVBKa0ZZWVwvZ1NlcjlyZndpZ09aVXVjTFFBQTR0NmNGdjdUXC9TajdWM28rTWQ2bDBRQjlCdm53QnQwU3R5clhIMm0rb2RFYmNWeGJxY1cwYTR0TGVQb05seGxIb3BuSXBzUmpMZ1RqdVdkXC9COWRBMGIxXC9PTVcxb21MUjhRWEdDUG5ScWxVS1U1NlAxVkF4cE5xZ1FUUnU5MXQ1bDNiR2tGWEdLd0dJMXdpNWJ2a1p4a1BKUW5xR1dtbnVNaXpaanBhS0psUzFMME0ycGdnOXFvSnB6RGg1aHlpd3NVUUo4U28rQUpGVytxcUd1NFBNZjM1TWZFRTl1cTc4ZVo4dlpZOHVieitMS1pyUW1WMlltS2FPYjk2aVlLVE1aSzlZa2R5MHJQY3dpWHdYc0pKVUh6VmVuMG93Z3dRVldiTVFuaGxWbG50SjdrV2tQUGFFcTMxS1JjWCtlXC9NS1paM296a0VjMlZDVlo1Z2ZHTGR0Y2U1ODNMWnh3ZjhiYTRSMFRDZGd2cmFPYmNZdmxlRFdXRWRESFFGWTlaNW5TelNTSmx0MitTOURBMkNMbVJHOGFGSFhIXC9lTXhMXC9GUlV0bnZneTJEZDB3XC93N0lXTHIyWCtXNlBJbVpNVDJUWG5ScXlxVVUyZFpyN21WNzFGemVGSDd1c1ZSQlZkc3J3V1pOVjZBQUQ2M2E4NHEzTjhvNXhiXC9OUzFWbmJPMVBVOFp0YjM3aEdiQ3RLdThGR2l6KzNIXC8yZ0FIM2cxVXBGMjFrMGJZcE1rS0RWKzlNclRSOWtSclU5RFBXRkdRVmphQzdMSis2TFdXdkZOVTVFQWFRaVVzTk9KVjBvQ085bWVwTnVHRTFvNkJ5VU95ODB0dkZabFU5dTc1eXFpRURJTW5vYmxUZTdWdlZ6MndpTFNnM3VoWSs4b003VUpEeG53UzBKcU5saGtJTkNNYlZPM0JTaGRqNFwvNzRcL1FBaE9iWG1RTDJkaFlnUXk3eW83MGMzOWZqcW1jSXp6RTBHSkpTZ2sxOTVqXC9najJ3ZVMzc3ZcL3doVitNcDhDZTY3WEl2dkpQblwvY29xaHNUeENNTjFXb0I2Y2RhS1ZySHVjRlZqemZ2WUc0WWxuUW9QTG8xeDViSjNsVFwvUDl4MlhXeGs1VnlvXC9KamJmXC9DYXNHUlV6MzJQSnNRNW0wdzVSZklmYmR0T2Znc2MrZHFzelRiYnBZazlBUXJJVmpZVzU1MytyNVBHQWNxbWFGdUtmMEtzblc3azhuT1ZQWVpzUmxSaUpST1p4dVlaSkZcL1dYbDJqWDhzOUt0U1UxZHBKbWdxb3ZGRG1vNW9KREFlVGpqSUw3SVZybDdpZWhaNldXS2pJdU9KTVloZmJ5NHFRQkpMZzBoK3crM1IxT2xmWkNJbmYrc0xac0JWd1Vxek5iSHg3K01mb0RIbEdleTBha0V4ellGeHVTeHNmRFNEUUptMGRPNjJkZHF3cThWcnc2c2R5d1lob2RHTkswc0tWVit6SUMzMEZOd0E4aU5Yb0duZm85QjJyK2U2cDZJVVFONW8yTzl4clFqR1pxR2E5ejY0OGxnU0xXUitCelkyR0FLS1VzbjN4VndaamMzQWpta3h4SzZNWVZRSVU4Z1dhY0lEWVNXMlZHTUMyaGtiWUhuZU5LbkJcL1lFcHFteDhGY2R5bHhVSTRxeTE5QmhROXR5d09CQStCc2dVOVVDVWRtRUFuenpuTmFvTUNmempVS3QwRmV4bUNJVEhhQ1BDa0R0cDk1T0RcLzdySGRZbnprV1BSbzhHcXJzY0VRQW4zbFI2ek5YaFhYWkRqa2JCVjkrelhJbEoyZjFlY2pCUjZDdkFjbGNRV09yN2kyejZaZ0ZaTWRxRmtiNVdDNDlHdHhaQUs1T25BVmd0UzlLXC9lNmMyWEM0dU9FTWZLK2dLM2pTMzBra0ZaZnJpQytuMU1HcmpiMlUzZlZFb2t2TXM4bWthT24xbTZMajBiTHRycGtWMkJDdEdzM2ZkS2dWK0J5WGM4bG53c3VFajdBWGJWdGJjOGxzNVdsWEs3WWRoc1NTWkJrbGtPZHdTS2NNMjQzSEJUUUlLbUMrQ3FEXC9ZeEhwMnRkamh4RWNISFdXNVd0cmNHSjJ1K2ZPYkhtZFNLN242dUtrMGUyTTh0aURzS1U0ZmVnTVhuNmJuN2phOWNVOHFqR3RZRXZSU2FTaDhsXC9scGQxajcrcEJzQitNMTlyZWxSZHFGcmNzWTRiQlZlYTdVVWI4RmJXblwvcTlPWlB3M1NUR2R6OWlQemZFOW1SaEtBdGwxV2lDR1NYeVFQakIrQ0dFQWRpbXhHc2htZVoralwvOGU4Uys5anVyMVdZZmNWeDcybUtvMVlXTjIyNnZSekc5V2U4UFwvclVpdU9BR2xrRER5R0FcL2xxY2dLR3BlZ1J2UzlSaUNoQnhYYmkwMmE4aWFEU2FcL3FYOHB2VHp2SEJ4dXd1TXZsWVVHOEFCd0tvXC8rUkZjbytiN1RKYU5RTDhDQTlaZ2VLQXA1V0xyMUVJQW9YREgrTVgrSzRFZlVWc2NmSGMrZlVrclwvblQzYllxbGZYdXdXYkNwMjNIMitZQXQ3NmRuTjZBaW9FS21ybWJXa2prMmc2RldSMUxxbHVxOEpudHBCMnZSYnBCQjdSclJ3dVA0b3ZoNnNiWnN3Y0pkNzFqaFpZWnJlWmtNSEgybHNWTTdXSzA1S2pGRCtqTWcycUF5UVBKOGQrWWY2bGYwQkNlN3JxQURMajY3YUtESk85U1IydEc0UU5TbzlvV1FMMUlIMFpaUlZFOHJmeEl4XC9Gclp1ckl1bkVNSjdwVnlTcjhqSldcL3dKc2Z3cG80WVQ1bFZmcFNTTit6NUJQNFlwRjJBVVlGSEM5QnNvUmd4aTlcLytFUEd0RUlTMEVtQ3J0S0xiQ0ZUNkd0d2N5MzRWSWp1TDhkNmdLekZMUnFNV3BKMFZCN1ZoZ0g4cmU4KzdXQjE0alhpZXJ5cEpUc0l3UHhiSTk1WFljdUMxbEcwM2orVHRKcGlidlZDYTFyZEZOZHdraFk3RXFPV2Z6WUlpVlFGUFk3QUZMR2Jtc0dcL051Z1lXQnRPMTA2WFJLR0h6TUQ0VmZvK1V3SDhjd1wvaXdKeXRGbVF3amtsc3hPTG51VFdHbWM0aUF2ZEJidThpdVNTNmhORnhlVnFlekpzTE1GdmgxRlAwQnJQZEF3dGZwUGFEZ2F2VGJrMEY4OHBUTUQ2bFJcL3RwYUxBWE9Uem11VzZQQzRWS2Z3bXNDYitHMFQ0RDNYUDVxNUZmV0I4R21sRVwvM21YVFErS2ZcL2V3VnlOZTAxM29UMGppVXdDQ05wNnlBR2d0N25KMytBVDByOUpFOEZadUM0VTUyMUdyYlhOMFFXenVNbTZwamFOZWZBR0xcL2sxQlUzV1RLRFF6Z0lNaGYrOWFnQXdRM3ZicklDRnVTV25NVlZEaXJuWDNyclB6RlVyMEdESFRqQlZZZng0akZMSlFHZllVcVJiZUdWMjlvc2E2dHZ1SFdLODVndzl0b3lCMVwvUnBLd21GM05sQ1VTT3RRWnpIRUlxZlpKXC9ORWpDMFRDYXdzSndQeTk3bjNvb3ZubWZ5SWlINkhpSlAxR1l0RTY3NW5TS2tmNkJ1VkJuc2o3OHdkQ3RySW1BaERZVU9NUXc3aHhGdldDbXNhK3RzZWNFZ1llWkp5QjZPRk51UnNFQk1acjZybklLdllGYnl5U1ZvNFBPYVhPdVJIYW5ESTlIeERzWDFCcDlhQjdpUVhyNWJ6aE9vcE9ndDhJVmdVUkYzZjUydVhQNStkTlwvMkxiYmZ0M291YXFVTmxqVHRlM0xRbyt3N0NhZ1NwaHhnVVZEVVBkMGJcL3pLRTl3a2VZdU8wM2dKenB3KzFwRGo4aGxLdkplb0lnS3JLUndncDJuVHVcLzg1d2c2NDl1eno0YWtvMG92UGFDVVlvU2pTVmJVNFRQb3BtU1BTNjBIY0RlQTVpYjBcLzY5NDFyTDdkRG8yVmZkallpRlV0OGhVK0ZnbmhCdTd3bHlyWEZzUmJQOHdVejRxZmttcVRZelVMaEFudzJKNDBQT0hPS3JpcElnaVlMQUhVVXIwY0Q2c0J3elZKMWlFMzNqeHo4eHB3WFFiZjhzN1FEbFZZem1XYXJwTGdrR3VDcUJvZ1J3bHlTOUk2Y0NlR1FkckNRS0VTXC84RGhkbHlTaEQxSVprVTB5UTlnV0RqNFhWRTVzb2p5WkRPb0NhSEM5bHUzRTIzbG5lOXc4b29ZTHp4RlVRb0tLK0FXQ0o1THlJTitKUXJwR0wreXZHSzdNOE0zWVwvQXRJWk1zV2J6N3dVODJHQ0NSbUtcL250WklnaEFkNTNhNlZXMTJxZjVjTHpEcjRJY0lSY1JtK0hwYlZ6ZVluXC9OU1JXXC8zRWVQVVRraWdEYlkyTFM1OVdUMWVhQnJzMXNjZVZMaVRPV1g3MllONElseEVXV3VPQ1NYTkZaVzVBdEdWXC9KM3FxQVBUYnlKTmtGQ3NTSjZLbTRpaDk5WDVMbVBrZlloWFwvdE1CS0dtZHJpUVk1Qk9WV29FSEtxbW9wMGlVUU1XVzZkbFk4UHFZVGpsNDhHdnE1bndNNytlU3d0UEVFNWYyVFdsellsZ1RwY2wxNHZhbVhNbkx4cStCUUxpS0paSjRjS3BBcTVOXC9oSFZPS29Na3pWXC93d1N1b0JmcWJRVXdXYlA2YmVEZnhNZndCeXV4b25oZEs5YXN2STFwZUNpa2ZFYTFMOERxV0p3WXlHNjJBeTlIeU5mSWE2UTI5RG5CejlRR1huNUQrb3hOb1dIbVhEcnZNRE1KcDUwNWcweEpLTjBlQXI2ZHdpT2hobmlDY0tGeVVyK2ZnYXdlWGxSa1FReHgrNCtkd0dSbFJycGhva3ZDajJ2OWt5eFhGRldRYUNiMWx1SDVCN2NXekQ3bGVqemNDY0RHcDBWNnJKRlwvOXZhc0VTUnBlenk2WnpCMWtBTnJFaFRZVThVamp2WVN0dis5M2Y2eVA2cXlIZVluVGhuZnVvTmpNK3puQitNSUdWUWpCZHk4cGJBcWF0VUJKNmh1TkVvZitrVG1VdkhaZWZHZUlBRWlmMmFHemg5QWkyaVdsZEdPczlNa3MweHhUMTluRFN0dVRLWmhpM2ZQQ0VXSEN6Zkt0Q2VLeE9QYnpuUlJ2WkdtQXJ3aVlIY0E0ZFdcLzBRbkpVSzBtdlB5UGRsYzV1SitXRlZRb3hMNFNiUzB1VFd0dWNtblhRdXZ0T3k3OWdzREJBRmJqOGxIaW1FZDltemZKbVRBWGdIbjJUandGXC9OZHhIQm1PTjBBZnhlck9PNVFaa3NCXC9ZcCtNaktCT3BpMVU0RG9WV25EWXFPNDQwTDltZHlZYndCcTZVaTNvSkMyTXFyV0U5cURcL1BhZWp5VGVcLyt4TThLYmRqZTRPa0l1c2ppeDlGNE0weThtZldBSzgzZTk2YVo2WUZSRFlrVVcrTUdXNjhHcmxhdXZXYkhmbVA1bzdIcFwvQ1p1WWd2VDdPeTBFVW9hVUZ0RHlaNVp4N1lXRFwvZ1hhcml0azQ1NnlYSTg1NTdhOVJ3b2dlUmpMUTFYNVNPM244dDdVcitkbkN5bm5ITlRNXC9WRDA3Z21ab3pmN2k4K3AxUnZwSU9jbzRicGlrWjZXd1lFMDVKQjZpb1BNbmZpbE5JcE1Bc05RdGhBMGRJaDJYa09OdHZzYktTV0VtSVFBMG9RWlZtMTFhNDZvR0tCbG8zMzd1Sk9hSWdEbUNLOGlsNjBMNDdxYTJBWGJRU0NZNUFCUmpCWTUrb3hYNFNtdGxlU2E4YjdkblhRUnROQm1tM1YyT3c2MjZhQktWZGs0TjF3dktSdUFmcUtvU1g0NWFSYXdFakZUSnZ2T3Q2YUFKZHBNTkpyR0k5bTVjV3E4ZmJGc29TTG9ZcFZWQUR2Y2oyNzVZMU41d3g1cXJIMmpRMmdZK1dBUlBKSVViQnVCZGpQcE81cTJPNTJseGZcL2h4NnlhVXJycFRneWxCbEY5RDJ0SVlIaHZFY010Ung0c2IwTGRXdGJ1dnpUV0JVYXNFdlRUSUkydnFOc3l3eFFFOWNqTzFBMCtsaFB1a0RyQVRDY0s4Mzk5S3RXOTZMbllCV21tT0pITHFJeWFPUjNlcHdBV1BoQ3R3NFo3NGdxQ1VtVmxla2FqZmc0ZnFoczhQbmJyOUpYVGpRWitBcjBpaXo1bmV5QWNQNXptWUpEd1NHcHFnVjlHbndrSWtZV1hTeTZKbUJIYlI3RGpseEhGditteTRIQVwvMHBwNm9tQzgxcUdiU2Flb1lhMmRiVGphR2cwQ3BZVkZVV3FPSmhvVUR5djRxWEQzVnY0aHZMZzBsYUJ2dHJwcVRZWExjemtMQmtGYkpkbFd3RkE2UENkd01BUmM3dHRRV1REUEtuWkpCeWE5dGtqQjFuSnNZZlJjdGQ4MXVQOSt5XC92aXRWQzVzc2k1RmZteWRVR1E3NDA2RTlcL2Fxa0ttM3lyenprWXJlZUJCQWJyR1J2ZTZRcVJuXC9NdjZibnlCVkw5ZzdTNFRITzUzeDl5cVc5dWxzSnV4d0hNN2JcL3h6d1BXVU8wd0VKNUxBS1JvUUtHQkw5V0ZGOEF0NXFXMVVnNVN3NkN2OEZQVnJHMjBuMGFKXC9mTzlNK0pONjVBbmtvelNsNmE0VDdFOUtMTmFEQ0JSbzJIQkZDZFRXMUl3Rnc1ckREZ2FPQlNRTkJQUTZpeEtSNDdcL3B0UnVlVGdIXC94ODZHQktUTWxpdXR4UEkxMlhtV3lBOFN6SmtVelZuQnF0cCtqME5JcTk0ZUpiazBHSDFDdzZFSDFGQ2V0Z055TWwxcCthRk12QlpsUGZIc3JWQzZyNnZKYUlcL1NxbEtxQUoxdDUyQmFSYjJCekNOcmc5NW5MSGtyMlBrVW8rSUlwR0hxUU9MZ3BDV1VGYnFYbWpiM1lNbk9La2o0SFNXZ2w3RW5BUDFROFllQThWUnBzaklPekJUeDA1RmRKVVRmV21laGxLZHRWcDB0elBEQkM1djdMUVwvaG91Z1Y2dnZXUFBMeEU5OU43a3J3TWZRZktBNjM0cHlRd2hmaklOTHdaN2k2TWRjZkJRRTlJQ0ZpWjVxbXpRUk5PbTAzS0RHbGpQZVp3WHM0Z1lFN2V2dzMwSHVtVHRQbWd1SkpiRjRvZGRYR3laT01hdDRcLytCMFBqVXdWWG5nVVwvMWpzMSttUm11TFQyRkpqaUxLMURGRHBMME9VTnRTamM0TjArcUphRGMxZ2Z5a1F0UGhQMDdXUllZSGZ3T01rN2Rmd1wvKzJGNkQ1NFVUOTlwZFErYk13Mm4zemJsSjdrMGpmRDN6SURmRlRiVXF2QUw3SzRCcW5tQUh6bnVXcTlzdUJ3d1N3S004S0xhRFlwYlFwRnhXODRBSjNNSGh4cW9VTWJkQTFRTGpvQzQybnRyektkdnRTS084WEpIUWpDK2lYdDhvaGV6MG5XaVlsNjJXdFpZZkp0cFwvTTR6dzFOWW5TbFgrTjJaNTJVaXE0SnlMclhRUnJyd3BpU1hmOEVnQzZXSVwvcnAzZmZHaUYrOWhoREZTUXRqOGRHTVhwbkYweFdnN0ZIU01oeXVwZG9ibHV0ZmJEYkNWSWRHenB1VFlObFZWUTM2NTM3eFhtOGF1QmQ5eDFOc29pMlhvVk9EQ2UwYU1idjJ4bTBMd3ZcL2ZhTVJCcHZuQnBDSVNad1NGTDlmc0lkRmlvT0lsY2pmN1ptZWdoMVVXTWZOdVJMdW5tM1R3ZURwZ0czT3d1ZXRFK3ZlUEdKUVp3QmNjRENRUXBsaWUrclhDY1MxdUhtSjhtakJzbHk2eXpIVlVlYWZ5Vlp6NGpOYmwzbG1qXC9MVEp3bGthSjMzOXQxRG1ISzZ2QU9PYU9uNjFcLzBHVmdJaGgrblpObW1iWDFONzRod0owWkNudit0dHNVTHNFbWNZc25MWEdEZ3BxcURiUWtcL2FXa3JLcnNUaUxPejBmT21FMW5lcEc1WFY4VUpzbzBuRlVxdEF4MDRMOGh5Z2FRYzQrWDBGUHBWRzAzZHppQXV0MmhtN2NNblYwSm1vTnZWTmY1MGFUSlJnMnh0MXpRbTVVekVsK2RmRCtQZHdHXC95bWZDVlJndW9YME9pbjRUSU9rcEc2VThwZHFTOGJsZG1teTcwSVB5XC83MEtlSTMxU2syV2Q5cFFtd0lHVk1qa2h0ZDU3WnpiRHVqXC8xSFwvVzM5d29rc2pWTEg1cTRPcnBrWThlTW1RY3k2NTR5dHVFaHM0akFZbFQ5ZGZoVUVrYVNEODVPeStRMW55UW1EeDZyRURyNDVEN2hpVHNuZ2lYM1Y2TTlEQVVHZVJKRm1jNE1BZk5qdDlIZXBMWE13WEhXekExTlJmRFVGcXFTVjZsKzZyckZYVWhGM29XdVhuQ1BoZFwvVUJtVlRGK1Y2YnBDSlJTQTdxelRVVWNjczNnclJoNVNEYTBKVnZITjNLRTNBWURyK1FEczFtVmVwODBEclNHakRwbythMjN4NWJSVkNZSjBUZ3lnT3BXbE1LeWhTSFM2UWpHNzc4akZoa2M0NEFiZDcxNEZmMUMzV0tCaFFINHdMcGhUK21hSVZxS2VLdHNCdnRpVHhLNTZWRDVuNzFucjBWM0NGb1dDY2hwK0tMVmdicXQ3NWRvaXZ0TEZ3N2lDXC82aXpZanp0eklWMWRoSDA5UENpeUR6SGQybEhMWXErRWFka1Fnb1ZuTkVwQ3g4dWNpQVptalRPOXQ5Q0YzNU9ad1VpNnpxQXhOdTVvQXYxUmNUZkEzakNtXC9hdElEdjBDK0JHUnhnOVVGb0tNZllMbmRWdUFcL1wvdG5taU1RbklpdEw4enN4dWpGSFVRSnBjRWxsSk1nY1wvN0t5clhHQTNQWDNadGh0SlhDNFV1b0QxMnhyM0M0Y1NHaEM2SldBaGN2K0xSdEdJdUdabld3alo1cjdLd0JidERYaGZKZ3hGUEo5RW42RG01MXlBODlhajNuRE1NRHRQb0c0TXZyS0I2NHVkamltTjF2THlBNjI0REZ6Wk9mR054ZjlcL1M3cHFQZmNFVWdUM3BrWEtrbUN6a3l5ZHhpM2Q4aG5LcnRKbDEzdnJYcnNKWklha2xUckhBbGhJNFF6VXhoa2k5S0crR0lqd3JXcUpQa1VyZ01HUzh3RCtrYjE3RXBxRjlTYjlQWllwdXpEbFA0TXVuRGVsdXRESTArY1pGaWtFbXRoeTVLR1NVXC92QVVqZEFQU3VRWHc4K2NrdTBFb08rVnNQMTV6OVwveFZVeVdhdzF3bmpQRlF0cDRmRTNia25LbVJ3Tm9yWXprQ2pNOHV3UWhkVkNWdzdwN3FXRGxQMUFGZlFBMXhRMEJRcXVHYkFiS29nOFwvWkhXSGlKVW1vaXA2T0g1UWU1V3AweUtPUFdFa240UUdHa3FOTlwvdzk5Z1wvekdyR2RrMXBEVlJGb3BKOWZxVmR0THB4T0NKckV2enB3WUtQYkIwM1Y4aXhUanp2UVFDWFlqeTkrUWRjaW92eTA0MktGajRJM2JuYUJ6a3ZFYXhoOXVZYjZhSnZVT1hHYzNTeWRSVThRaW9LM1FnTzZ5Qzd3b3EzUjF6N1FBUXJ5MXlcL3hkTGJPZU4waFllQytmamt3WGJDKzh4MEdhV243Qzk0TEgzUE00cmRLTVNoSlcxOENWTDBrQWx0dFdGSlFmcVRUTFNRU2pFb1ZUdnc3aFpqTnU0emZZOG9qcnMyRENITm9mQUNNbDV6Smwreit0ZFVCMnVwd1FhM0RtSUtWTmpoZVNEVFpqcCt0K1RrRlJnWG5FdUU1ck5jck5nRjY0QUtXQk14SHpRamJTRmNIVVd6dHh6TnVxb1dPU3pRN1JqVWRVcnJKcEU1ZWV3enpIN3lrOTZIRTBQeWErcWR3ZDh1YkNKak9KNkZRcWEyMTNlWVpKVzdjZlMyVG94VE8zcUNLTmhOWngzbVZoNDdMWjBQRGJEYURuUjF2M2NTVG5Yelo3TXVGQ2hXa2NOSHNpNWhDako0cGhWRThTUVRzQlBLeEMzWTdOWHRMSDNxbW1WQ0lmSzEzbGJTMCtmRm5XRFwvanZhekFLc2VwWUFYbythY1ZmMnV2b21iZXZHS01aTitXT0V5aVdZcUlOcG0wbHVIV2l6SWExODlmRTJQY0lrOTdZbGtXYjltSmF6c3JcL0E1czEwR04wZ2E0eGhSdW1ienRKblwvRTkxaXhkYnNnNmJKQjR5RmlvYmVHNTJ5ZlwvWUJRRWZBVWhnZEFcL1oxN1M0OUs2SSsyU1NUR2FBM0doTnp2Nk9XYzViU0NYTUd3cDhKYjlcL1BubGgzR1wvSlpEQjhIekZERFN2UDVveDB2TDArUHh6dEFkbUNURUlPRHlEYTJkdWg1ODI1cFExVVdtemRXR3pYcEVDMnFxTkhmdWs0am83OWxScklNVkFJQ0tpZmRGREFzZDlZRFdCdXpmc2RHa2hlYUhjUzMxMEdTUDREdmhIcjBPV3ZXQUE0Zjg1UGVpbTVaS2dqNnpBZGpFckNsMkNaZHY0bElaNUU3XC9UQ1E0a2tHdGJRSHFyelFQVjN2emVWSmFEWXBWXC9VZ1ZsS3pkU3ZFUzBxZERxVXkxdEd4TERvd3h0cWY1bnM2TVNrNkhyWmZzbDh4ZGMwTExaSEZORHJKRGdyall1VXZvTWtjdmgxS3FuUVA4MjNOUGtNWVhUZEJKSTFnUG9SWXh3RzlYQThJSmVhZDc3QVVaZmRUb2Q2TFd3NGZwRFk0SmdxSWNEcGNzM1hpQnhRRmtURWdTRjJKU2JTXC9zOW9wQnNQM3FyRHFJOVNnaXo3RVJSSEM5ZG1wZGUwVXJUMHg2VkVmNWhVcnFJNVl3SXV1enBmY0c2UDRid0ZIOWJ6TTJMOEp5eWxNZENWaU1JWnZvbXcrSUNKd3dvRUZIYlhrcTgyMk5QMU9vSXphNVJjcDZPeHZWbVo5S2FyMXRuczlvdWUxd3pIUldydlgybEpcLzFDZlBleU5oVDhtV3BGTWh3UGlDYlFCbDk2QTZ3N1BuM29BcTlqSlUyaWxHTTA5QlFIc0VwZnNKZ2pVTmNEb0MrRzZFZXU4Mlp4akRRNXZQWnAyT2R2RVlmYUZPZGJocVpjVWVOQWl1VFlSS3F0dFJNUEZ3TVwvdzRXa2pZNlwvR0t6TnB6ejUzbUtnQnI3Q25nc0hkdWRcL1FuSzVqMlU4T0doRlE3QXRUSFFmOWhvQmtveUpqR0xrVEswMnBCSzZ2RDd5a094NVk5cEliQWwrdlNNOStCM1I3WEhuNlZWZDEwaXpkSEc2TzM4RUlNaWFpMzhYbkJoSWROMSthcmI2MU92ZVJRTE5nUDAzMjRva1d2anNcL0N2S0tlVjBRdjA5MkdjSjBFRUtPNUNWbVdzcDBNQWZhSjBBZ0ozUG9qRGQ5clp0TTdFSDlDT3pTOWhUWnNzTkt4T3Rmd21GWDdZSDhtQlpPakltRTlzU1RscmcxV0Z6RDNtWmpEVGJUMDdvMjRleTR0bStxd3c1V0F0bFZ2eE1HcEZaazl0czB5VVlXWlp3QXE2c0kyV05zNTFjVDMyeURqVG9MTzVCcTd5N3VZOXRRaU1Gc2RcL2JYSVVqZHBBTlVMc2pwaUV3b1E1XC9IRzNcL1BRb1p5V0I1WkhIc3RSeFFGakduOXRyYWEwYmNHNVRXRmRPRUNLRHQ4YjFYWEx2S094WkhsWm5WVTFBTmJTTmRHeXRpM1ErU3M1QWhiUUFPN3dSTDZzZkc2bXVRRzBQcmdMUng1YnB3M1wvTjE5UzZBY1QwQ1JUQmpZRDl3T3JwVmdpM2pCODNDeDdcL3phOEV5K3JCMEZsNWMrZGRkZjAwS1FQTVByblpyS2RkV0FLbWdQTkFXTEJyenhubkpJV0NmMGh3MkhcL0NrNFwvSDd6dDYwTjd4Y1M5KzBlbmRzNkpsS0ZTeGhPT0dtbmJQZEdoSDhubTc4aFwvMm5sb3BROTNaOGFKKzB1ZngwYnM2UzlieVUrRW44VGtBQ0hnOWgxZjdXWGNoOTA2bVF1cnBSTUJZbDNnUGVmYlBiM0ZtcmN2anVsbFhZbkdpYzNiWlN1YWRsM1wvT0dXZlN5bmwxQ3dJc2VIbjZEMHBadWxiMmRNK1NmenpoNTVkU3d4eUdxY1lQelp5U0Y1K2tSS01UOE41XC9lTTNXM0poZnZXaEIzR1wvODJFS3FiYXZVU1QxeVN5UFNUQ1wvRWlYQ3B6TUhIY3BQVWlpd245RmlhcGduWERabHQ5dERES1F4RUMyMG1jOXlJbVVZUExBZGtmblwvZXJKTnNTbHk2QjZYak4yZU90VEZoR1dQRHpnVnlxbVJTczBNNTFHTVUzejdyMlVDNzg0UEc0MUV3cFBqZlwvWVwvakQrOTBpSGdEcmlHcVdZV1wvSWtSYnpIbVlzYnpGMHI0WFZBek45THVPNjF2YVkxSmM2Rm41ZGRUem5GVHlRTGlJdkZWYnNiZTArSmRkK1lhZENcLytVdmgzaW56N0pFb0lPd2JDaG9GRlNJTXRBZjhhV1dYa0lKRGsrWWhlSmFPWGlxb1hTSTF2QlNPZjhiWHFhZE9iaVNReEx0REVCQ0FMdDhkR2RGU3dZUUFQK2pNZkhOcmwrMFB1dVFNTjVZMTRzOEg3ZFN4S3pzZ1wvWlJiVTI3TndvVStwV2FnbXVnaG1vXC9sUDNhblwveWZQQlp0RzNVN01hYzkza01zbTNQWDBHNm5FRGFTS2xOSGZ4bVB3NEtybVh1MTF3QlZMeFdFWXdYaWhcL0JPd25qb2xKTWpGSzZJSHVKQXhoc1ZaZGN2Nm15cEdvQ3NVTFVXZVFndTJlSE1CK1RZWUE4T09WZXRzWmhwbG4rM0k2SERJdTBZdDNORlNVZzNCSzU5cHREdjdIMEhtZkVudGZaVGE1VlF1K0lHVFJmSVZQdEt2a0FVYWg4cHZOU2VcLzhCMDRMc04xV1llQjJtdWwxZTBZeG95NDVmNVQxWlAxR3V6TVZqRE0zaXVOVnBBN2ZtNFwvTXNTZFpMYklqUmlPeEY2Ukh2VitXdWxoM284dGE4Y0U0NUM4YWErWEdpb0pxN2JFb2dXUW5wOU4rdURGUHBLNEJLTmRKXC90ZTRwVVwvdnh0Y2dtN0VlVExpOW5ya1pNWGwwWkI0U29SelwvaHpwT2ZiM0c1VGVGeEE1N0tIZFJHY1lNbVc5bXcxbHQ5NTdVQnlIcGJmcGgwR0s4aGN5YWo3UnBrVnNGV3NoZjJkZGlmUDQzTlF6OGhvWXAraUtZYlwveERZQWZ5MnNwcFJmSWdPdEN0TzJJdlM4V1R3NEpibEpWMmQxSXo0UG9FR3RrUmxmNFBaZHlUTVhUQkNnWWF5OGJxTWphRExTOHZKZkQzc3RqS3R6UHBvcmpiQ3ZXekNnQXl3cDBUaHlrazdJdnlNT3BcL0dqc0s3MU1oNVZxblcxdzFLTm1JaGNYb203bkVJbkUrVXdEN2RJK3hWYlBcLzZESndwTHhIenRvSVpJb3NxQWczK0JTckdEUHFMVE5MRmhrdk1qdThJc01JYVIweFdaUDdtRVMwcUdBclZSb3pqeDdaVTNDUmRhWGJDYmcwMm9VWHVkNjQ5WWx6RHpaSHZNbjRCRCtuVk93d3lhdDZpTzE3ZitXTVwvV1pzdjNpRXV0VmdnM3BoTnRCQ0lSRGNQQ3dKWG5kbHJtditIRFM4MWo2S0JqMnFvN0VsVUQyUWlcL1BVM1hOMFFZK2V2M0IwbVcxVmt4Q3BmRG1JcDYzRFR5aEZcL2NpcjhrVUR0RkZIaUtweVwvTEo4RU9kWWRSZGhtMUFQRFdWRCtUemVzcXhYbldlSWZEVyt5MEVvdVlLTnZVUjAyVjJIdURqalVsUjBIRUpIOHlTTGtFSFJIZnIxNGFrRHBQN01IelZNTnZKYkhpVGlMYUxIYXBVdEY3RXJJSElHTVB3cVRVbmpKZXpMRXNHZkRSMDNCNXlKUHpXN1hTQXVOVGFJZUxkNTg5bHMrMGs0RWRablhJUm90ZHh3TVVYSUgwSFloVFg5R1VsQVRqTndKREtuRFBQK05QYkNSOWxBekNiRm5tSE1Ed0cwSzlBXC9yVGYwZE41WmMrNEVSbnZUN1BcL1wvRXIzRDhxSWZ0d2V5TUFGbFZ0VXRlWHFBSDZveDZEU0IwXC8zMnlDN0VKODFOS0pXM01rOHR1d1NLY0hUcGVMdGp2aVNvRTVEbm5MTWdjOFZydk5ENFo2K1JvQVFURmJ6N1wvOElMbXBtcjZ4RG5cLytuVWR5bm1jbmorWFU2TGwwbnBETEI1YStkRlFxQ1VTZE5DMXRJdjFYam53WWFWRlwvSkozXC82WDJydGU2MW5cL3B0RHBmSTh5MHlmUjBiSVpSYzFsRTMzbFlSUUJkM04zazRjNDI4OG5OaTNqM3BRUDdOZ1pzYUJXd1QzMVZqeFpBXC9jb1lqN2lER0hSZThxQjNcL1E0cHFLNGoxdFU4cVlCYVR2T0F4a2ZBZkVpVlRjdCtiUkt5bUhOc3dzUEE1NGlIUW1RWkI2bnJFR1I1OE9kUlRUazhnbkVDYTdHdExzK24wUGNMMW1lYlwvQjB5enBCMjRmU1NXazJWVzBNQ3c2amRWeENZdjZtRHE4cWdLc3RDTUc0OWthd3FINXVaU2plSFZHQXQzNGd3bndFaDZzckxGOVNDZlNOZXgwK281WlwvWEtOQXE5RTlnbnBpekVNMk1PbFk5Q1JCdlRrY2J4c2NrbW1tcWZ1NVlxazVHTlFybkhxVGMyc1ZjbEpqQWQ4SDdDNWtGSDg4NXZKOFFoXC9rcHp2QW9vU1M5YmU1UTJVQ0VpbDlud1JDMWdTR2dDTStYczhTSGVmSExaSU81SzI3ZVhXQUFpMDBoVW1xaFVORU9pcjJLV3UzcU5QQWVOS1JjYjJkSUlOVXdoN3lQT3VBSGpwTFZsdlwveG9EUVZuTVdqZ21aSUJDeGIwdmxpV05FdTVPOGxDSkdDbXhwMzhVeFhNTkJyZWdka3FnZlhYd2pEMUJOYVd0K2dXMTcwRmlERGtDSDgzWVdyb3ZzdkxPTERiOGRZR3pSTmttUXFIdlJ2eVk2YlFmVUNMeFhhcDBRcHhkRHc3U3d5dDNmSU5aSFAxc21zSU1TNXBvVjZXdjdCT1hJSW9sbU9sV3diTE1LK2t4eGFPUmFhc1Z3TTdoVmVnQWhqSUZoR0FyV3RnU1o5TmpwUTNvVUNwVzRjWjVLaHRIMStxTDFhYkpyUDZ4YmRBOVg4WWFlRFc2UlZcL0dEQW1xRUdrTXZ5ZWt6aWpDSmwraXAzcFJ1NUpCbHg2a1lRZnR1MW5PYkNMbU9pbFBvWjZWNlRIXC95c2pjOVpZTUhqMDNRa0NZTTZ1MXRxUmZibU9ZRjNvcXN0MTFoK0FcLzdhVTEraFJlYlNkN2lsZWdrR3J4RGhPeStaZDRsRUtjNGxqNjVaK3BcL0hTZDY3a2x4MVhGR2lqditjbFpsdTlUS081bVNJWHJVZzdzVGZHaEwyNzBYTGJlR3R2STJQQVhYdllEbHBXa0RsWFFqZnRHSE45STIwUUJyXC85WHVRM0FGMGxyZUkrOWFqVzQzZklIMXJpK2ViUSs3VWg5NUhDWHFscGJ3N0pjenlIUWo5QmJsa3ZsZStrVFJjbnZlOFcwMzFJVlwvNnVHenFQRnZvQWJ0bnY3blRPbFd2UEhZZEM3OU5tSitocXlwS3Z5RVZqNTA0TUg5VUw4U0xrQkxQZTBQb3VFWllpS0cxVGV6MGVMWEp4bmxZQ1JUUG5RVHdHNE1PRkpFR3FIblwvYThqR0tYYjZKUjB3K29paUdqUWlxQnUwOWJyV3d4UmhOaWxDQ1dBeVpcL0xQMFo4TXVmZXNcL2FOaDI2bUdzcWdzNWFhRXd1WTJuQ21XR3RZZTZleXNVSDJwdHZzWEtVNm5zZGlWQjhFXC94Q1pNcmd1enZMd3VTYStnVFVNNVhCZUxQN2JvZkFLUTc4UXZTSUU2XC9SOXg0QXJPeVl0SlpDNXBwUE9uZ3hBODBySUtTMUZSR0owU3YyMXFtcnhzUWF4dStLU2RmdW5KRWx0bFhDaHZDRHlyVnRkODlQWE1KalcyXC9yYlRnbkROWXBiaHR4bHZxXC9NbFNNTjZsNTJweXFjQ0lFY1hhNk13c1hCblFcL2ZhOFVxeDBEaStQZ2ZKem1sWEpvRzR5TVhvMko3TmhHTG9xTUpaOGxGdFpMVkVUamFOQlwvSURYdlVOQzhNcHQxRDZiK0dcL1B3anA3K1wvXC96RTNCZDlrNVhVbjFvMW1PcVdtNk5yWG5kcjNYeWVhUDhQNE5cL0pzOXVKbnlDQWl1OFVyMmxYRmlVemR5eXRMb0MrTnpiR2Y4NEw4S29Sa2tQWlFqXC9qMllRVlVSS2hZM2RUbXhRYlVsNU5xVVwvazRGXC9RN2lcL3Uza3JvTldKc1dHUEp2bHV0ZG1QTkZyb01UMXdCQWgzTmZUWTFLVnhZZ25hYWRKSGtrNFRuTjVsNHdtWWI1U0lIMis5MjNxZGJBaE1TUFdvYjNqRG1pSjBBZkoxVWlvdVdoVDBiT05kaGFHVGxFNVRSSlwvMjNIdGZLbVJMb3F0TjUwUGZVR3AyWlBvNmJDdHd4RFRNdGN5a25VRnhvdkZQKzA1dkFQaWJLMVIrTTlGK2JqMEJXTVpoMnhHR3BNNmRpUWNKdVMzNTl5VHhQNUdGZEkyR0w4RCtmUk5yNVwvZ3hKbXc5NjhFbnA1NUZ1Y3M1cFwvdGQrK1NERFhuaHdkN0VtOUx5bFhkbnRqczhzVWV3UU5cLzdMQnNEeE9TMUtYWStyaTFqQThpMkRFVnYrbDJTSUo3UlwvY253RndLczBvNzd4eEZHY29iZ3AwOVZwbU1mUkFhcDNoMElIUFBJcnFEVjVzbHhkMmJmM05HdGlDSUpvSlNOVVY4a08xdmJnV05PTFlPcUJDcytMaEM2bmdvN0c4aTJ1Wk1IMDJcL3hwTWd6eGhGTUptOWdUajRhQzFQM0taT3dtN1IxYXNEU3JZVzlMeFwvaFJpZVJkdzhaMHFyMzZ4UmQxRzZ2UjdVSDBtSldsVG1Wd0l1cnZ2NzU0Z2x1SmZMRGd5M1RicHl4aGp3VDhYT2pmR0dlOVo3cEFuczJLNjlSZ1Q0NWpZdVdibFlGZys2MHQ3U0FEWWxQUzVNSGVEUnY3YUlES0FFcnYwOHlaQ0kzeTFyZG5Jdmpwb0NhMzJTNjdmUUVCc3lwdXZ6VkdGMGZlYXZcL2xBVlhVTU9MUzNyUHZYejZEaHgwQ2R5UEhUNXh2WUFcL0V1ZFF0QjlKcmswSnBNb2lDWEJcL3BVaUdNTFgxaHE4MG0rMWsyeVhQWUdLN3VIYW5pSGlBdVwvMXdTdUZ2N3hoeE0ySVU1M2l2aVNRanZTOWRiRmlGSmhWSkpxYUtqSFFiTnZ2ajJqNUdBOWJJZWRyQW40UmlVa0Z4RW5MNnV3V24rdElidmZ1NWhNcWM4TVNuYXQ0K1MwY0I0Tnk3NmtnYkRZNHI2WG9uMjBIWWtYYW9FRG9RVEx0RlM2Z25iUElabjZadDYrN0w4VXVieGplQWdWamxCNngyTGoxNnZGa2Y0ZE1oR3REV3JhenI1ZmYzWXJZZUo3NU1ubGZUUHh5Vkh3ejVzQW1mT0pLK01hdytpVFpuU1lHSlwvK25aazhGK1N4TFpacks0WmxEc3Q0Z2tcLzJSeFdkbnZvRUpPcHFUWXV3RnFmMjlCXC8xdEJlbVJ4T255OGliY2hjaWlvbEV5UnNkdGlCNEluK2NKUmNSQklKZTZBWDJJNXlxbGtRTVdRXC80Sm5kckVMQnRsMmlhZ255dmcxUjZud2ZcLzJadjZKZnd4WmJJcVJSZUx1UTdMbTR0Mm8wZnFcL2hjZFIrQVp1dVdSeEJiZkRiOHk0WUxiTXRHdW0rSUVNcnptdG1MMkNnSTFYY1Z3WlNEeUJaTk53XC9iZ3ZtNlFUblNCOWQ1bVJcL1Jlb3NKUzcreGt4OVwvTlZqdkpCakkyUmppUnNXUThzNWh2YXh3UjFwaElVUkxnbkx0MHc5V3lrcXpPWWhwOE1idEpEWUgrVEVEb3VYRXdUbWJuZk44a0FndGhaenV5SFVwV2h4bXdzMUxiaWVmUlZ0eVJ6VWJUekRrbmFFTEdJU0NCVXVtcXBEN04zSWJ4RWgrNzVRSDc2SEVnTmNQdFg2RzZvTUhFcEQ5XC9yS1VlcEdSREZTU1lpRytsaGpOUjU2TjZOckhsTytVVnVYZTEybW9VZzM5ZVwvWmJvMW5jOTVjT3ZOcDBUcVFPSlY1ZVg1S0NUdlQ1WGdSS0VCMnBiQ2lPM29idHI5VlFpdFVwR0c2U0V1MVE3Ym1Hd1pHWjVMRFdPVlJmTmdISXpwbDBiZHhXSld0T2ZGREJIdVhtWUdoVkY3WDNRTSt5aXQ0TXRHQUhOaHlmNldXR1NGZlMxZWN5d1BHbGw0ZVwvXC9XSDVxMVI4RmJ5SGlMMmdDaUNcL2d6c1lKV0tqR2tDQllEOUtJU1ZYeGlRKzRnREdHMlkrajFHY2swcnFUclBRMnVZRElDNUkwMmJ3eDhpd3JPa25BcXIweFZWdXh1Q3RyUCsrYUFZdFh0RGRRUnJhd01YN0FqQmxhTHZva0hsaUttOXlRa1ZyenBnc3R4T1pzdlpYZ0NvZ0dHR1Z6VTF2QjFaUWZ4cmk4amNNMmk5bVRVWHRzS2QrTjZ6bDA0eWtRK0lwdXdIbXJjUVZyQWZvaFh3VE5sbStTXC8wdnA1VHNoekc0TXA1bWV4aXlpYnU5cnhWNUR4WDBDZ1BZUktvVUczeXdFTnV2b2IxZW9QS29NNFRoeDQ0SWs3Z1BUTzU1djl0UFFXellmMHRZRzBDclZvd0huSEIyNCtTTHRFXC9UbEtJc1RKbG9Yd3ZNeFc3aFhqSStHSDMrZ0VCbm5WNHJ5RGdoZERzSlI3bUVIMkJxUUN1VGgyUDVERzYrN1BVcDRTRHc3U05pTlc1Q0RhNDQxekpxcURuR3dhekpEaTdRMnhNR090SnpIQmY2SmJ0VGZ4bk9pXC9qeDZPU2FPUUMyRE9hWjl6cDhKc1FHUzdUWHB1dXY5UmR0MG42Ung4ZURMTzVcL1AyWkRFbTFrRDMxZ2lvUEhHUWZER1AxMTVhNzI1SXlYTk5kN2RDYzFyMTZtTmFFcGdDaGplbXpQXC9XWVhFQmtsclFyODRwa2xhS2dIYTZwVHpTM2FMTWs2NlcwS3Y3QmVxQ3JCcVR2ZWJWTDB6RUVGR3BoS1wvSGdsV3lEQkZQS1hjWW9oNWdhYkVLZFNpVlBOTGlOdFdReVpsTnpwQVVcL2hEbzJuYlE5U1hKMVlybG83MldZWWVcL2lVZE11ZXNzTUNcL3A1OFR3cTdlclgyNmZqVWxaVklHdFwvSTFqdXM1cjV0Z0NDZ2FkNkgyMHJzblB2eTlMUXBqM3k1SFhXNUFMUDRZMmtCajVUMkZWUFcrakpxZk9tZkkxbGlHQkYxN09PKzJLXC83RTZYejZKYUIwNzN4WEtCRVJDTVNKT2pYaldRUVhVTkZFbVpQZjlnVVlFaEZwdjdORG92OU5hcW12OFhRT2F4djNHakZoUmVKeFdjTHNhZjFCaXBSTTJtVk1VNnJWSG9GMmJcL1hpTkxEYlpPeFMxQTNlUERwRWtaMk45NE1wdVpSMlRLb2UyM1VBbXpMdXpXMWFqdXFhb01iZDlRcW1peVdaQVp5bnBWcVNJXC9NSTFYRCsyNjNsZnp1VkltMFdyRjIrVFY0Q1VXNWlPYmEyVTF5bllDVk1XbHhhRU1sZWpPd1pSQzVNVWJCcFFqaFZpRHBvTyt1MXp6cXNIeUZzNnpLSDJya1dCU3huZnVcL1A3ZGtcL1wvcitwV2RNU2tKMDNFSzVyR3hkZUo5YTlXbnZ1ZW5Xb0E5ckd2WWozUEhBV1h1OWxQWjNxNXlDdWo4MnZDYVlGSUFoSEdUbmVlRFE4SCtEMzVuc1NDMXR2TFBIa3dEMjlqTGlsTHNVZ0J0dTRQWm5vVG41cWpWeUIzcFBFYnREbE1LVVd1Z3BQbWVjR2xtNGtsRlRjd09rQXhqY3Zxd3k0RWV4R283RE5FR0tVWVh6U2ZxSEJWamowN1IxQU1XUndqR0hiRGl2Z09PWWNPMzE1Rk1pVk16SlwvVTYwQ1JWQlBjWG5ReDI5MDR0cTFYOXNDYktPQnZuTGthcER0N3NrZlRhUk5PaGpxdUxQbkl1TkNpdmxjSEU1V1J5RlpSbDNONmNJeFNtWDZVUFdQcm5ydnhWQ0pXSmoxcUJBTTllS1NkUG14THdIMVkyQ2lcLzI3R1ZwZ2tuVVphXC9Ga0liMXVZVjREcFRzTWxCOHFjZHc0akFvczNUTnBvRDNCUVRzTkxYeURqNmZBSVZ4SlE5VHdNWUtxVzA3ZEEzZ3VWaWRDVGFsRFAxWTJNTG1FQXVMNFpKVVVsVDJHbnFKMkhMV1dUZndqbDhzcjhVaXlqcWRWM0ZGZENWa1oyVllpTlk5ZGZwRW5SN0NYZnBValB2d2w0XC9lTE9cL1UzY2drWjl3emRUNk55M1dUXC9cL0VsTGF1RkVPWmVVUWl5Vk1KWTVVNFVxNkxQaUdaSWg5VlNvM3pKUkZkZjVBTkQyNVprTjdxU01QSG1cL21uWHNTQ2xSYkFYTXFtUjM3QzFvYzc0NzBNYmJlRSthSkhVN2M4RmlZQVNGNmgweXNpNWFHalhpZnZHTTFtME5NUkRBczJ0Qjh1TGpGMHA2QWtrejRDRHFQVjNDcUxTRmwxZXQ4R1VMQ1R5NmlYWFlrQW1INXpUcjFGUzZcL3Z2T2pJbFFsZUd6ZGEwdFNmVFUwNTZic2c2Y2tHQ05tbEVwd1N2MUlETU12d256cnJuMHBSUVlOcThEQWYydTFBc0N4dWRxU21TR1d3aVwvTFUwdXRIc2FrQkhoMFR4Q1RBeCthUnJWeGIwMXQrNlBBK1RGQ2ptdlZqNmQzdjM1QXhkczZ4TDJ4QkRma05taTB2bXVSa0FERGpoVEtvRk1aYVkyMlZxbWxRMVlHYVdvemNWRldLU1pXT3M2dGhSaFZKZXJBbzMxWmU4ZHpNczkyQkxhaTgyeWgyTUdEVzUwbGxET1BtNXR3NG1NUFcwTGtSMk85SFk3Yk1DdTVUVDN1UFZDclJybWszOGg4V091VkgzTFwvdHhIbVFLb1VaTk9oalVSMktRK3plWVc1XC8xU0hWNmxaY3Q1WlhnQW1QZXhZM24xN1J3aFZVT29iSUtDZTM3TU00MzNhems1NjdHU1wvMndiYzY3VGdYR1NiWDBuSnBjUFBDVWZ3ZnNWMmpUK2IxVmJIeGt5STFwYTZ6cEdYQndPSWE0QmNCSXNZR2tOdFhla3ROQ0RHcnA2QVZIU2V2OEl3SktEU1d0MHRHQ2tPckQwUHRFb2hMOFwvU2xrSmo5N2JkamVBNWQ5ZTg1b0lSU3ZpV3ExTVVTXC9HTWpEYTRyXC9EY3FrMXF5bm5JaTBJYnJib29qNERXK1lMakViQWJ5MHhCaUVFa3ptWlBQTWttZGllTmNOZ1NMWkZRQnNxVzd0clBqSlQwbUF1MndkdjFVR0pvQnNUaE9xQjd0a0dNVHZFdWZTYzVzREtvXC9CZkljblJoYlhNS25BMWx4VW9PRGJZTnpiM1JjZ1FKZ0xjMW1PQjZNNHRjQkJpWWtNS0JzMUlVN2p6MEZBb2V5azA4M3FkUEtuRng2bmo5TDk0dlVERmg1eGFzK05RQmljN1M5Sk9xWCs2b0JWUHhXTnRweHVSZWgrc1dsSm9JWW9LMlwvNjdLUmd4WDc4Tk1ROWVja3ZaOTB6aGF6MEcreVNcL1lkTDZUUW02dEtLclR4WVp4MGhcLzYwbDJqUUxVeTh6TkVaV3NCMjBsc1dvaG9LdVwveDVVdUpwWkpuU2NKZWRNSFpubTB1OVN0Mm11cVhMRW9uZDZ6eEliYnU2UkhURjJmajdNd09Pa0pZS2txeEorblZoT3hiTlQrTWtwdVwvblVmcG02MEVId25cL2NOcE1xZ3MrV1wvejQ5d3NmNmNxSjRjdWI1c0Z1ckVoTWJlZGJPVDdTbVwvWkJ1RXJRU2NlZnFOYUFpbnpub1dpQXgzdThiMVdVdG8yYTh0K015T3dQMUlaTDlwRk1MNEtWQnNOUVZWck9qYVRtajZzUzBwTHQyTExySXhmVGtnT2gySDJYS0dSWE02MGExN1ZpN243OUgycXEydnV4endhQUx4c25DWE1IS0ljUkp3TmRkeVJ0cGJVTVwvWU1oc2Fid2FEb3JWbE9CQ2RPN3Urd1ZvOFJTMkZFZkc5T29jQm9SR1I0aEZpZU9HMm5IXC9rYXJVZHZEbFVNYktFM2dGY3ZiZGNuN0pZSHVqZFNnUEUrY1Q5dTYzQUxZZkxqVXpxSW1abkZSekJZY1Byak45VEdSOVorTDBBVHp6bEdCXC80YWhEUkpjeUsyUlVzeFwvVHZ6cUYrenVnNmNwbjBvQ0ZENWFiZ2VJcGhLNXZJa3Vzc3dvak1EaWpRWWVZaHpLT2xRdGx5R1g3eU9qbVVvZ1NWbGVzZ00zdW9JeWFJWmxKTHNlN1NBOTk3ZFpWeDdJVXJzMnF5OUFnSld0eXFKQlB1SXVPTHNPSFA2eHFybUVLc2xEalZWdkhaVkYyRG1tcHF5NDFrdjJOQktwcFZ4aFwvc3lLdEYwUUxcL3JBd2ppZ3pyaWJhYWlkSzNJWU5tZ0RNRnlCT1J6WFwvMXVvR3lBVDQ0Z3NjUEIydlZHZ0ZzUWFQMmE4Mm54bTdsWG55Sktnc09URzJGbzhsYWZNcnhiUWlBa1RZcU80U2s3MTdzVVVMQmN1dVhiSFZzU1dMYUFNTm9pRUMrTHZiQ3dpQmliNEJtelkwVWUzY2pLM1R2QVRCR2tmb0doTDJHUUI5dnNueSsxcWlqR08yNWNMZ3dNMWRWUHU1QzVYOURcL2J6K2ZDd3VwcjVoNzBRM3hJb0xSdmppSE9nT3BxZnJYbTYyU2poYTkxNU5SSnBUcWxBUWJEaGZ5QytYOXVBbVdlQmgxanl4SCtGYlFvMlR0djBlNFwvVVZOblVEVmxibDhzblF2V1BrV0UxS0RaRHdFZXFiUG5cL0RQZHpUbnN0b0xYT0krMGZqTHg2Q25IVktPQUV1MkYwbnQyU09DVklCUmc0MDFBMEZLdFR6ekN3Q0plOXpxa2p0TVZMNHE3cjErNkFZOU5BWnFzWWs5dG43eGd6Z1ZiNHppckt0YVp6ekRFVElUWmc1SnZyQUtMdEFVR3Y1RmlmaHJ5YVBQeWlxK0wwZVhGamFxT0x6cVZxMFFZa3U1aTBVVENESjFpd3BaN2liTkNnYnl2aHB1Mk82dlFRRzdTOTZhS3BhQVFcLytRQThlb2hNc3FyNnM4Qm5jbUFceDNkXHgzZFx4MjIsXHgyMmdsb2JhbE5hbWVceDIyOlx4MjJ0cmF5cmlkZVx4MjIsXHgyMmNsaWVudEV4cGVyaW1lbnRzU3RhdGVCbG9iXHgyMjpceDIyXHg1Ym51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsXHg1Ylx4NWQsXHg1Ylx4NWRceDVkXHgyMlx4N2RceDdkJywnVCc6ICdBU0FGQVVJQU9Oa2RfRl95ekxNZGdTb21NS2JfbjM4Mi04cE9KeThha29EOUdWLWNBc0VsLWtIUmZRUTRLQzlCWDJkQW51SjFXbnNBeVIwTnM5dHNTSUFtQkFceDNkXHgzZCcsfSk7fX0pKCk7PC9zY3JpcHQ+PHNjcmlwdCBub25jZT0iTW5kdUNPYjRHX09BZjI3cWxTZHRzdyI+aWYgKHdpbmRvdy55dGNzaSkge3l0Y3NpLmluZm9HZWwoe3NlcnZlclRpbWVNczogIDUzLjAgfSwgJycpO308L3NjcmlwdD48bm9zY3JpcHQ+PGRpdiBjbGFzcz0icGxheWVyLXVuYXZhaWxhYmxlIj48aDEgY2xhc3M9Im1lc3NhZ2UiPkFuIGVycm9yIG9jY3VycmVkLjwvaDE+PGRpdiBjbGFzcz0ic3VibWVzc2FnZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1ZbWdlLXFoM200RSIgdGFyZ2V0PSJfYmxhbmsiPlRyeSB3YXRjaGluZyB0aGlzIHZpZGVvIG9uIHd3dy55b3V0dWJlLmNvbTwvYT4sIG9yIGVuYWJsZSBKYXZhU2NyaXB0IGlmIGl0IGlzIGRpc2FibGVkIGluIHlvdXIgYnJvd3Nlci48L2Rpdj48L2Rpdj48L25vc2NyaXB0PjwvYm9keT48L2h0bWw+"}},"time_used":106,"timings":{"blocked":-1,"dns":2,"connect":8,"send":0,"wait":72,"receive":0,"ssl":24},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/youtube/img/icons/mweb/youtube_fill/logo/v2/67px.svg","fqdn":"www.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://www.youtube.com/embed/Ymge-qh3m4E","date":"2026-07-27T03:07:41.411Z","timestamp":1785121661411,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /youtube/img/icons/mweb/youtube_fill/logo/v2/67px.svg HTTP/1.1\r\nHost: www.gstatic.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://www.youtube.com/\r\nOrigin: https://www.youtube.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=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\naccept-ranges: bytes\r\ncontent-encoding: br\r\naccess-control-allow-origin: https://www.youtube.com\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"youtube\"\r\nreport-to: {\"group\":\"youtube\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube\"}]}\r\ncontent-length: 272\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Mon, 20 Jul 2026 10:01:47 GMT\r\nexpires: Tue, 20 Jul 2027 10:01:47 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Wed, 06 Sep 2023 03:18:00 GMT\r\ncontent-type: image/svg+xml\r\nvary: Accept-Encoding, Origin\r\nage: 579954\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":478,"size_decoded":1017,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"1e78ea4caa31c35bac97a41e5930ffe8","sha1":"dbf99131b9b5087e664b9fdc7097c97655474517","sha256":"6fa88a20839537ae66da730e5bd183035265176d972bc8df075b89da0c6186ea","sha512":"cf798ef67c90f90f23635beb202095a2c76052d491c224aa14535bb9b16f28fa9a850b8db887f158afd01d634aecb9e2b05a27efdfd225d3583e6297bdd78b43","ssdeep":"","tlshash":"2ef09e6d577829d8930f87c0be5974127d9f23e85194b3b541d4f9326138ee2d141cd9","first_seen":"2025-05-26T15:52:21.952281Z","last_seen":"2026-07-27T05:09:42.367469Z","times_seen":46893,"resource_available":false,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NyA2MCIgZmlsbD0iIj48cGF0aCBkPSJNNjMgMTQuODdhNy44ODUgNy44ODUgMCAwMC01LjU2LTUuNTZDNTIuNTQgOCAzMi44OCA4IDMyLjg4IDhTMTMuMjMgOCA4LjMyIDkuMzFjLTIuNy43Mi00LjgzIDIuODUtNS41NiA1LjU2QzEuNDUgMTkuNzcgMS40NSAzMCAxLjQ1IDMwczAgMTAuMjMgMS4zMSAxNS4xM2MuNzIgMi43IDIuODUgNC44MyA1LjU2IDUuNTZDMTMuMjMgNTIgMzIuODggNTIgMzIuODggNTJzMTkuNjYgMCAyNC41Ni0xLjMxYzIuNy0uNzIgNC44My0yLjg1IDUuNTYtNS41NkM2NC4zMSA0MC4yMyA2NC4zMSAzMCA2NC4zMSAzMHMwLTEwLjIzLTEuMzEtMTUuMTN6Ij48L3BhdGg+PHBhdGggZmlsbD0iI0ZGRiIgY2xhc3M9ImxvZ28tYXJyb3ciIGQ9Ik0yNi42IDM5LjQzTDQyLjkzIDMwIDI2LjYgMjAuNTd6Ij48L3BhdGg+PC9zdmc+Cg=="}},"time_used":64,"timings":{"blocked":-1,"dns":2,"connect":15,"send":0,"wait":19,"receive":0,"ssl":28},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/liquidity-assets.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.063Z","timestamp":1785121660063,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/liquidity-assets.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:39 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 153997\r\ndate: Mon, 27 Jul 2026 03:07:39 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":153997,"size_decoded":154264,"mime_type":"image/png","magic":"PNG image data, 1040 x 984, 8-bit colormap, non-interlaced","md5":"bae7b210e98fb09a722661cfbed9f4e3","sha1":"3615b8ac7cd367e9816f4d48991f3049fa477570","sha256":"9545bf1f8be07a2412f296f7ace796c161901ddc5c4246dcd6f0db7a7ec5c53f","sha512":"832b98d86553e02621d1e7211827fe0324d6033ba18245b07703101760e442d164bcfc6efc7737b0d808c25780dee21ee12120110f72f138dfc20813405a3431","ssdeep":"3072:rp+xllKa9Rc4VlDVOwHxFOJ3POHIFvNBP1O1Hib/nmkD4w5r3EhDua9ph9yHl6:rp21Nlp5RMJ3POHI1PGCblDp5whDJ97B","tlshash":"7be312d97b1cf6a56ca238630dbeb58f397560057b57a782824c6fe300fd8470586b71","first_seen":"2026-07-27T02:49:41.026602Z","last_seen":"2026-07-27T03:09:30.415304Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":388,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":324,"receive":64,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/levels-star-2.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.073Z","timestamp":1785121660073,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/levels-star-2.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:39 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 12851\r\ndate: Mon, 27 Jul 2026 03:07:39 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":12851,"size_decoded":13117,"mime_type":"image/png","magic":"PNG image data, 284 x 226, 8-bit colormap, non-interlaced","md5":"9ee66e4a4e2d3bb8440cff8ef9e3f377","sha1":"01719ca03571d8ff9bd14b41e58ebbe3170b37ff","sha256":"4072aaa1fe2ceead4863853c8cb084ce9ed40e1b5e40e23ee693c8f9c37ef4dc","sha512":"e5b7093eb17cb27a86c38a9e7f063bbf455f53210530fc92fe06a3d39044d83f739e4c363e333548e1ba50fa869d1c3d72ec80697e48b01772b6e1deee6df2e1","ssdeep":"384:33wfdGYIXULTlO+g8TVLnaOqI/TQI8z46YVMbdvZJxuj2uqUk0En:3kdG5Qn4I8zMKBvjxu6t90g","tlshash":"7842bfa6c3d63faecda7d53cea92501c5d6aff5a71c81b645829c4275b00a06fbc203c","first_seen":"2026-07-27T02:49:41.041919Z","last_seen":"2026-07-27T03:09:30.397073Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":389,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":382,"receive":7,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/api/soc-proof/index","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:51.330Z","timestamp":1785121671330,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /api/soc-proof/index HTTP/1.1\r\nHost: 7bridgecapital.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/json, text/plain, */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nx-client: web\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548; _ga_CT6TVKY4QK=GS2.1.s1785121660$o1$g0$t1785121660$j60$l0$h0; _ga=GA1.1.1511987334.1785121661\r\nSec-Fetch-Dest: empty\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 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 03:07:51 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-27T05:14:02.688672Z","times_seen":143744,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iIC8+Cjx0aXRsZT4gNDA0IE5vdCBGb3VuZA0KPC90aXRsZT48c3R5bGU+QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9fTwvc3R5bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KPGRpdiBzdHlsZT0iaGVpZ2h0OmF1dG87IG1pbi1oZWlnaHQ6MTAwJTsgIj4gICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6ODAwcHg7IG1hcmdpbi1sZWZ0OiAtNDAwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDMwJTsgbGVmdDo1MCU7Ij4KICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjowOyBmb250LXNpemU6MTUwcHg7IGxpbmUtaGVpZ2h0OjE1MHB4OyBmb250LXdlaWdodDpib2xkOyI+NDA0PC9oMT4KPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kDQo8L2gyPgo8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZvbnQtc2l6ZToxMnB4O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFja2dyb3VuZC1jb2xvcjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyI+Cjxicj5Qcm91ZGx5IHBvd2VyZWQgYnkgTGl0ZVNwZWVkIFdlYiBTZXJ2ZXI8cD5QbGVhc2UgYmUgYWR2aXNlZCB0aGF0IExpdGVTcGVlZCBUZWNobm9sb2dpZXMgSW5jLiBpcyBub3QgYSB3ZWIgaG9zdGluZyBjb21wYW55IGFuZCwgYXMgc3VjaCwgaGFzIG5vIGNvbnRyb2wgb3ZlciBjb250ZW50IGZvdW5kIG9uIHRoaXMgc2l0ZS48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4K"}},"time_used":100,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":100,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/fonts/RedHatDisplay-Black.woff2","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:39.810Z","timestamp":1785121659810,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /fonts/RedHatDisplay-Black.woff2 HTTP/1.1\r\nHost: 7bridgecapital.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: gzip, deflate, br, zstd\r\nReferer: https://7bridgecapital.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 03:07:39 GMT\r\ncontent-type: font/woff2\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 18704\r\ndate: Mon, 27 Jul 2026 03:07:39 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":18704,"size_decoded":18971,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 18704, version 1.0","md5":"4fe5814060db42d25a4a22cc222b2d5a","sha1":"37b3b6c72366f79547db56e2ebf1f04563821695","sha256":"221f8c9253e16004a0fc662867a8c9ca2f8626ee34643314be21511b500fd35d","sha512":"a0c2ea74bd741fa8a66a0aa4fdab6e7ced354fc9aa48d478fb873bc01276929f84beea45ca7d2da20deb9b4a3290c38b891cb507c937ab3d797ba6554494d151","ssdeep":"384:CdkU4m5ox5dysjNcuqpqvN4/MoMfRICij6M9l1OMYEwQhcEEdcrc:Gx46Wy6dfqljTlITE8E0cY","tlshash":"a882d18b136378a3f8c95378c27a2a490b1cc3e5af520fc79dad72595d0573ca95bb40","first_seen":"2023-10-28T00:17:16Z","last_seen":"2026-07-27T03:09:30.40003Z","times_seen":8,"resource_available":false,"data":"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"}},"time_used":112,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":99,"receive":13,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/mass-media/business-insider.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.067Z","timestamp":1785121660067,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/mass-media/business-insider.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:39 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 2041\r\ndate: Mon, 27 Jul 2026 03:07:39 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":2041,"size_decoded":2306,"mime_type":"image/png","magic":"PNG image data, 256 x 80, 4-bit colormap, non-interlaced","md5":"32ad2e2592cd343ac76b36e274c5c448","sha1":"c9c9ba45a54f6f5fb33183c1c38529d6c635fbcd","sha256":"7450ebc1d062bab75b60502857ac8831edb749042ef995a36676d1d7f777a30d","sha512":"3af423f822c35f9b32db9323f64cefacece71adb11cfcca03d7ba4a85a1307007e8fe06de138c33771c3966bcf46bf419b104ee81422f4ea51c25d7dc52a25ae","ssdeep":"","tlshash":"46413aa9be0d95565e7a40e83b9834d6ef351098c16516c9e781dd047cda6c82f8e702","first_seen":"2026-07-27T02:49:41.022414Z","last_seen":"2026-07-27T03:09:30.416185Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":384,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":383,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/_/ytembeds/_/ss/k=ytembeds.base.NxniuuZETZw.L.F4.O/am=AAAAgA/d=1/br=1/rs=AGKMywGx4txhFJhcrutKYsfPmS4mFc6oJQ/m=root,base","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://www.youtube.com/embed/Ymge-qh3m4E","date":"2026-07-27T03:07:40.423Z","timestamp":1785121660423,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /s/_/ytembeds/_/ss/k=ytembeds.base.NxniuuZETZw.L.F4.O/am=AAAAgA/d=1/br=1/rs=AGKMywGx4txhFJhcrutKYsfPmS4mFc6oJQ/m=root,base HTTP/1.1\r\nHost: www.youtube.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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/embed/Ymge-qh3m4E\r\nCookie: __Secure-YNID=20.YT=OD2AqDJJ5KCd2FQHST0PP6nm_PUnOmOKKW_5n2sU3Uto7bgqmGZVezTy0eT5Ch1tu0JzTUorYggNVLrq4iBbxMgjKYV2etvlvytuKk4TF9mvut1pghwMJgUbuW8p4XdgsmD-iSy6zHQlRAhB-JrbMaRe5h5KsRdBUFWbvsxsNeH89V6KOOjVPuXhJsEWmIkl-LvE1HpLYRq5EZFVQYIOUs-Z8R5-lI8AE0vJVBeC2LGwT5UqkcaMp_COMwshp2EEUXAKmfxi2oM6g3JxUmkhMTmLxZ6-dd5IROcdvW6cdIjiQ0GqdQz5GxuAM3oOINnB4Vt5On4L4U_Gl5n7h1P_CQ; YSC=IgHKWvjgj0E; __Secure-ROLLOUT_TOKEN=CNnI7u31yczMShCAqsGz8PGVAxiAqsGz8PGVAw%3D%3D; VISITOR_INFO1_LIVE=mzxiTe7ERp4; VISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgIw%3D%3D\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\naccept-ranges: bytes\r\ncontent-security-policy: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/youtube-main-app-web-scs-key\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"youtube-main-app-web-scs-key\"\r\nreport-to: {\"group\":\"youtube-main-app-web-scs-key\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube-main-app-web-scs-key\"}]}\r\ntiming-allow-origin: *youtube.com\r\ncontent-length: 0\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 13:04:24 GMT\r\nexpires: Sat, 24 Jul 2027 13:04:24 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Fri, 24 Jul 2026 05:09:16 GMT\r\ncontent-type: text/css; charset=UTF-8\r\nage: 223396\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":857,"mime_type":"text/css; charset=UTF-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T05:14:11.3544Z","times_seen":17556491,"resource_available":true,"data":""}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/telegramlogo.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.556Z","timestamp":1785121660556,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/telegramlogo.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:40 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 25 Mar 2025 18:56:43 GMT\r\naccept-ranges: bytes\r\ncontent-length: 2984\r\ndate: Mon, 27 Jul 2026 03:07:40 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":2984,"size_decoded":3249,"mime_type":"image/png","magic":"PNG image data, 120 x 120, 8-bit/color RGBA, non-interlaced","md5":"f9f4cf3a9e00f72fc6b7b5e41a2420ce","sha1":"9c4c86409d052210815126fc89fb2f46114b0722","sha256":"594f947a1ea1edbb98acdb94148ab7a2f1dc8ca6159a6649638b1bb361bdf089","sha512":"6c2817ffb1d8edddaf31f27ab137c8cf24bbf410df77e74c5396246f0e86fc0e199160dbf0a46d773a3379e5b6316463c9b4297467d31d0b5f080b96a2821d2a","ssdeep":"","tlshash":"91514dcf6965a23c56a82cf0b0fc84825e93b9415c7e5f1d3830ba22b5e7255127cc9e","first_seen":"2026-07-27T02:49:41.033903Z","last_seen":"2026-07-27T03:09:30.417041Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":102,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":102,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"i.ytimg.com/vi/Ymge-qh3m4E/maxresdefault.jpg?sqp=-oaymwEmCIAKENAF8quKqQMa8AEB-AH-CYAC0AWKAgwIABABGGUgWShWMA8=\u0026rs=AOn4CLDVlAo_z5twmJdH8Bx6Jn7WQxQQ1g","fqdn":"i.ytimg.com","domain":"ytimg.com","tld":"com"},"ip":{"addr":"142.250.178.118","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://www.youtube.com/embed/Ymge-qh3m4E","date":"2026-07-27T03:07:41.142Z","timestamp":1785121661142,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"edgestatic.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:24 GMT","end":"Mon, 21 Sep 2026 08:37:23 GMT"},"fingerprint":{"sha1":"99:EB:44:FC:A9:EB:62:72:A5:7C:E5:77:BF:06:63:47:1B:54:C7:D7","sha256":"CD:4A:F6:7A:9F:60:AA:84:9F:37:94:1B:BE:E7:AB:41:46:38:9E:68:4A:4F:36:B3:D0:84:EC:FA:44:D7:A9:DD"}}},"request":{"raw":"GET /vi/Ymge-qh3m4E/maxresdefault.jpg?sqp=-oaymwEmCIAKENAF8quKqQMa8AEB-AH-CYAC0AWKAgwIABABGGUgWShWMA8=\u0026rs=AOn4CLDVlAo_z5twmJdH8Bx6Jn7WQxQQ1g HTTP/1.1\r\nHost: i.ytimg.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://www.youtube.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/2 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"youtube\"\r\nreport-to: {\"group\":\"youtube\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 80858\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Mon, 27 Jul 2026 02:48:44 GMT\r\nexpires: Mon, 27 Jul 2026 04:48:44 GMT\r\ncache-control: public, max-age=7200\r\netag: \"0\"\r\ncontent-type: image/jpeg\r\nage: 1137\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":80858,"size_decoded":81522,"mime_type":"image/jpeg","magic":"JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 1280x720, components 3","md5":"4f01a555b944df278209c719b007ace3","sha1":"052fd13bfaf16824b67bfc0a121b23c9c6802a05","sha256":"845780ef512c2ade9848f36ba930d20b2d8f3ca95f5c0e359ab22c7d5521fc5f","sha512":"98f579cc18881bee105a8f7f8d6dd74a904a22ce5103c12a122e103195d89a1dfc9dc848ad633ab6a56134173c4061eb3217eb4b3cbcf6e99f74fe7f638e6e35","ssdeep":"1536:yNqfSURxKiy6khJiKvNsTLSmOdbqzC4m+MQPx4CY:Y8SvgINwSmOBV4m1QPx4V","tlshash":"c083020e1e5d83e5e1ea796e76822779ad4c1018349a23578a349c70f8df392f4b17b2","first_seen":"2026-07-27T02:49:41.028604Z","last_seen":"2026-07-27T03:09:30.378774Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":97,"timings":{"blocked":0,"dns":2,"connect":16,"send":0,"wait":17,"receive":30,"ssl":32},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/js/th/b8qXrFAu9PHVrGqMZi2nqKm9TUNPrrzEh40PAl-6oVo.js","fqdn":"www.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.251.156.119","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.youtube.com/embed/Ymge-qh3m4E","date":"2026-07-27T03:07:41.366Z","timestamp":1785121661366,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /js/th/b8qXrFAu9PHVrGqMZi2nqKm9TUNPrrzEh40PAl-6oVo.js HTTP/1.1\r\nHost: www.google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.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\naccept-ranges: bytes\r\ncontent-encoding: br\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/botguard-scs\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"botguard-scs\"\r\nreport-to: {\"group\":\"botguard-scs\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/botguard-scs\"}]}\r\ncontent-length: 23758\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 00:07:39 GMT\r\nexpires: Fri, 23 Jul 2027 00:07:39 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Tue, 21 Jul 2026 08:00:00 GMT\r\ncontent-type: text/javascript\r\nvary: Accept-Encoding\r\nage: 356402\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":62519,"size_decoded":24569,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (61258)","md5":"443622910d8e7fe75010d4a41f533e07","sha1":"9774250436c6d11ce6978a2f57e620b1b86098c1","sha256":"6fca97ac502ef4f1d5ac6a8c662da7a8a9bd4d434faebcc4878d0f025fbaa15a","sha512":"8ce4ae6fb3b48726d2ac7dd7f8bcfb87df79adfc89c666d8278594d86648345411b78b003967291c4125ebbf78a2af3c7dd7dfdb100899ecea73c8ad8bd8b7a5","ssdeep":"1536:jN7w3cPBzlUowT2cm9iXFHDYzcmNkBfXoLz:RtyokXFHDSH","tlshash":"ce532acf72d2b73559e269e6105f410a62fe940a4c85186fba10f6f42a70d4b903bf7e","first_seen":"2026-07-25T07:02:54.064057Z","last_seen":"2026-07-27T05:15:36.990389Z","times_seen":469,"resource_available":true,"data":"Ly8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb2dNeXdpYzI5MWNtTmxjeUk2V3lJaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lJQ0pkTENKdVlXMWxjeUk2V3lKamJHOXpkWEpsUkhsdVlXMXBZMEoxZEhSdmJpSmRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVpZlE9PQooZnVuY3Rpb24oKXt2YXIgZD1mdW5jdGlvbihSLGMsRyxCLG0sTixoLFAsayxEKXt7az05ODt3aGlsZShrIT1jKXtpZihrPT02OClyZXR1cm4gRDtpZihrPT04NylrPShHPDwyJjcpPDYmJigoR140MCkmNyk+PTQ/NDA6Njg7ZWxzZSBpZihrPT05OClrPTM3O2Vsc2UgaWYoaz09NDApe2E6e2lmKCEoUD0oaD1tLFopLnRydXN0ZWRUeXBlcyxQKXx8IVAuY3JlYXRlUG9saWN5KXtEPWg7YnJlYWsgYX10cnl7aD1QLmNyZWF0ZVBvbGljeShOLHtjcmVhdGVIVE1MOm4sY3JlYXRlU2NyaXB0Om4sY3JlYXRlU2NyaXB0VVJMOm59KX1jYXRjaChJKXtpZihaLmNvbnNvbGUpWi5jb25zb2xlW0JdKEkubWVzc2FnZSl9RD1ofWs9Njh9ZWxzZSBrPT01Nj8oRD1CLGs9ODcpOms9PTM3JiYoaz0oR14xMyk8MjQmJihHXlIpPj0xOD81Njo4Nyl9fX0sWj10aGlzfHxzZWxmLG49ZnVuY3Rpb24oUil7cmV0dXJuIGQuY2FsbCh0aGlzLDMwLDgwLDMsUil9OygwLGV2YWwpKGZ1bmN0aW9uKFIsYyl7cmV0dXJuKGM9ZCgzMCw4MCwxNCwiZXJyb3IiLG51bGwsImFkIikpJiZSLmV2YWwoYy5jcmVhdGVTY3JpcHQoIjEiKSk9PT0xP2Z1bmN0aW9uKEcpe3JldHVybiBjLmNyZWF0ZVNjcmlwdChHKX06ZnVuY3Rpb24oRyl7cmV0dXJuIiIrR319KFopKEFycmF5KE1hdGgucmFuZG9tKCkqNzgyNHwwKS5qb2luKCJcbiIpK1snLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb2dNeXdpYzI5MWNtTmxjeUk2V3lJaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lJQ0pkTENKdVlXMWxjeUk2V3lKamJHOXpkWEpsUkhsdVlXMXBZMEoxZEhSdmJpSmRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVpZlE9PScsCicoZnVuY3Rpb24oKXsvKicsCicnLAonIENvcHlyaWdodCBHb29nbGUgTExDJywKJyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCcsCicqLycsCid2YXIgY3U9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCxkKXtmb3IoZD0oUD05OCwxNik7Oyl0cnl7aWYoUD09ODApYnJlYWs7ZWxzZSBpZihQPT0zNylQPSgoR3w2KSY3KT49MyYmKEc+PjImNik8Mz81Njo4NztlbHNlIGlmKFA9PTg3KVA9KEd8OCk9PUc/NDA6Njg7ZWxzZSBpZihQPT03NSlQPTk5O2Vsc2UgaWYoUD09MSlkPTE2LGUoODgsRCxaLFQpLFA9MzI7ZWxzZSBpZihQPT01NilrLnJhdz1SLE9iamVjdC5mcmVlemUmJihPYmplY3QuZnJlZXplKGspLE9iamVjdC5mcmVlemUoUikpLE49ayxQPTg3O2Vsc2UgaWYoUD09NDApUD05OTtlbHNlIGlmKFA9PTYpZD0yMSxuPWtuKEIsayxSLFopLFA9MzI7ZWxzZSBpZihQPT05OClQPTM3O2Vsc2UgaWYoUD09MzkpWi5TPWgsQj1aLlAucG9wKCksUD02O2Vsc2V7aWYoUD09NjgpcmV0dXJuIE47UD09NTE/UD1jJiZaLlM/MTY6NzU6UD09NTI/KE49bixQPTY4KTpQPT0zMj8oZD0xNixQPTUxKTpQPT0xNj8obT1aLlMsbShmdW5jdGlvbigpe1JCKDMxLGZhbHNlLFosUixSKX0pLFA9NTIpOlA9PTk5JiYoUD1aLlAubGVuZ3RoPzM5OjUyKX19Y2F0Y2goSSl7aWYoZD09MTYpdGhyb3cgSTtkPT0yMSYmKFQ9SSxQPTEpfX0sb0I9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQil7Zm9yKG09MTttIT01OTspaWYobT09MjYpbT1SPDwxJms/ODg6OTI7ZWxzZSBpZihtPT0zNyl7YTp7aWYodHlwZW9mIGM9PT0ic3RyaW5nIil7Qj10eXBlb2YgRCE9PSJzdHJpbmcifHxELmxlbmd0aCE9Rz8tMTpjLmluZGV4T2YoRCxoKTticmVhayBhfWZvcihaPWg7WjxjLmxlbmd0aDtaKyspaWYoWiBpbiBjJiZjW1pdPT09RCl7Qj1aO2JyZWFrIGF9Qj0tMX1tPTIzfWVsc2UgaWYobT09NzApdGhpcy5CPUcsbT0yNjtlbHNlIGlmKG09PTc0KVo9dHlwZW9mIGMsbj1aIT1oP1o6Yz9BcnJheS5pc0FycmF5KGMpPyJhcnJheSI6WjoibnVsbCIsQj1uPT1EfHxuPT1oJiZ0eXBlb2YgYy5sZW5ndGg9PUcsbT01NjtlbHNlIGlmKG09PTM2KW09KFJ8NDApPT1SPzc0OjU2O2Vsc2V7aWYobT09ODgpcmV0dXJuIEI7bT09NTY/bT0oUj4+MSZrKT09MT8zNzoyMzptPT02MT8oQj1jdShHLEcsMyksbT0zNik6bT09MjM/bT0oUi01JjMpPT0zPzcwOjI2Om09PTA/bT0oUiY1OSk9PVI/NjE6MzY6bT09OTI/KHRoaXMubisrLGg9Ry10aGlzLmgsdGhpcy5oKz1oL3RoaXMubix0aGlzLmh4Kz1oKihHLXRoaXMuaCksbT04OCk6bT09MSYmKG09MCl9fSxDbj1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSl7Zm9yKG49NDc7biE9MjE7KWlmKG49PTQ1KW49KFJeMjIpPj4zPzU3OjY3O2Vsc2UgaWYobj09Njgpbj1SLTQ+PjQ+PTEmJigoUl42OCkmMTYpPDI/MTI6OTI7ZWxzZSBpZihuPT1rKW49KFImOTApPT1SPzMzOjY4O2Vsc2UgaWYobj09NjcpbT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRyxFUikmJkdbRVJdfHwoR1tFUl09KytIdSksbj01NztlbHNlIGlmKG49PTQ3KW49aztlbHNlIGlmKG49PTMzKW09YSgxOCxudWxsLDgxOTIsRyx0cnVlKSxuPTY4O2Vsc2V7aWYobj09NTcpcmV0dXJuIG07bj09OTI/bj0oUnw0OCk9PVI/ODE6NDU6bj09ODE/KHRoaXNbdGhpcysiIl09dGhpcyxuPTQ1KTpuPT0xMiYmKGM9aCxjXj1jPDwxMyxjPShaPWM+PjE3LChjfDApLShjJlopLSh+Y15aKSsofmN8WikpLChjPShjXmM8PDUpJkQpfHwoYz0xKSxtPShHfDApKyhjfDApLTIqKEcmYyksbj05Mil9fSxySj1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCKXtmb3IobT05NTttIT02NTspe2lmKG09PTg3KXJldHVybiBCO2lmKG09PTI4KWhXKDI0LHRydWUsRyksbT0zMTtlbHNlIGlmKG09PTQ2KXthOntmb3IoYyBpbiBoKWlmKEQuY2FsbCh2b2lkIDAsaFtjXSxjLGgpKXtCPVI7YnJlYWsgYX1CPUd9bT04N31lbHNlIGlmKG09PTMxKW09aC5aW0RdLmxlbmd0aD09Uj84OToxMztlbHNlIGlmKG09PTIxKUQ9Ry50eXBlLG09Nzg7ZWxzZSBpZihtPT03MSl0aGlzLmxYPXRoaXMubFgsdGhpcy5nPXRoaXMuZyxtPTU5O2Vsc2UgaWYobT09NiltPShrfDE2KT09az83NTo5NDtlbHNlIGlmKG09PTEzKW09KGs+PjImMTMpPT0xPzcxOjU5O2Vsc2UgaWYobT09NTkpbT0oaz4+MSY3KT09ND83OTo2O2Vsc2UgaWYobT09OTUpbT02MztlbHNlIGlmKG09PTk0KW09KChrXjUyKSYxMyk+PTgmJigoa141MCkmMTQpPDk/NDY6ODc7ZWxzZSBpZihtPT02MyltPWs+PjEmNj8xMzoyMTtlbHNlIGlmKG09PTc4KW09RCBpbiBoLlomJnRXKDcsUixHLGguWltEXSk/Mjg6MTM7ZWxzZSBpZihtPT03OSltPTY7ZWxzZSBpZihtPT03NSl7YTp7Zm9yKG49UjtuPEQubGVuZ3RoOysrbilpZihaPURbbl0sIVouZlgmJloubGlzdGVuZXI9PWMmJlouY2FwdHVyZT09ISFHJiZaLlZuPT1oKXtCPW47YnJlYWsgYX1CPS0xfW09OTR9ZWxzZSBtPT04OSYmKGRlbGV0ZSBoLlpbRF0saC5KeC0tLG09MTMpfX0sdFc9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCxkKXt7UD05NDt3aGlsZShQIT05KWlmKFA9PTE2KUQ9b0IoMTMsNiwxLFIsRyxoKSwoYz1EPj1SKSYmQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGgsRCwxKSxkPWMsUD00NztlbHNle2lmKFA9PTQpcmV0dXJuIGQ7aWYoUD09NTcpbT1aW0JdLFA9NDA7ZWxzZSBpZihQPT01MilQPTM3O2Vsc2UgaWYoUD09NDApUD0hb0IoMTMsNDUsRywib2JqZWN0IiwiYXJyYXkiLG0pfHxOUCg0LCJvYmplY3QiLDE5LG0pJiZtLm5vZGVUeXBlPkQ/OTU6NzU7ZWxzZSBpZihQPT00NylQPShrJjI3KT09az82NTo3MjtlbHNlIGlmKFA9PTkzKUc9UltsOV0sZD1HIGluc3RhbmNlb2Ygak0/RzpudWxsLFA9NDtlbHNlIGlmKFA9PTYyKVA9KGsrOF4yNyk+PWsmJihrLTR8NzUpPGs/Mjk6MTg7ZWxzZSBpZihQPT03NSl7YTp7aWYobSYmdHlwZW9mIG0ubGVuZ3RoPT1HKXtpZihOUCg0LCJvYmplY3QiLDE4LG0pKXtUPXR5cGVvZiBtLml0ZW09PSJmdW5jdGlvbiJ8fHR5cGVvZiBtLml0ZW09PSJzdHJpbmciO2JyZWFrIGF9aWYodHlwZW9mIG09PT0iZnVuY3Rpb24iKXtUPXR5cGVvZiBtLml0ZW09PSJmdW5jdGlvbiI7YnJlYWsgYX19VD1SfVA9KFJCKDMzLEQsaCxUP2hXKDEyLEQsbSk6bSxOKSw2MCl9ZWxzZSBQPT02NT8oTj1mdW5jdGlvbihJKXtJJiZuLmFwcGVuZENoaWxkKHR5cGVvZiBJPT09InN0cmluZyI/Yy5jcmVhdGVUZXh0Tm9kZShJKTpJKX0sQj0xLFA9NTIpOlA9PTYwPyhCKyssUD0zNyk6UD09OTQ/UD0xMjpQPT05OT8oYUIuY2FsbCh0aGlzLFI/Ui50eXBlOiIiKSx0aGlzLnJlbGF0ZWRUYXJnZXQ9dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PW51bGwsdGhpcy5idXR0b249dGhpcy5zY3JlZW5ZPXRoaXMuc2NyZWVuWD10aGlzLmNsaWVudFk9dGhpcy5jbGllbnRYPXRoaXMub2Zmc2V0WT10aGlzLm9mZnNldFg9MCx0aGlzLmtleT0iIix0aGlzLmNoYXJDb2RlPXRoaXMua2V5Q29kZT0wLHRoaXMubWV0YUtleT10aGlzLnNoaWZ0S2V5PXRoaXMuYWx0S2V5PXRoaXMuY3RybEtleT1mYWxzZSx0aGlzLnN0YXRlPW51bGwsdGhpcy5wb2ludGVySWQ9MCx0aGlzLnBvaW50ZXJUeXBlPSIiLHRoaXMudGltZVN0YW1wPTAsdGhpcy5ZTj1udWxsLFImJnRoaXMuaW5pdChSLEcpLFA9NjIpOlA9PTcyP1A9KGs+PjEmMjMpPT0yPzkzOjQ6UD09MTI/UD1rKzYmMTM/NjI6OTk6UD09Mjk/KGQ9eWZbR10oeWYucHJvdG90eXBlLHtwYXJlbnQ6UixsZW5ndGg6UixzdGFjazpSLHBvcDpSLHByb3RvdHlwZTpSLHByb3BlcnR5SXNFbnVtZXJhYmxlOlIsZG9jdW1lbnQ6UixzcGxpY2U6UixjYWxsOlIscmVwbGFjZTpSLGNvbnNvbGU6UixmbG9vcjpSfSksUD0xOCk6UD09Mzc/UD1CPFoubGVuZ3RoPzU3OjcyOlA9PTk1PyhOKG0pLFA9NjApOlA9PTE4JiYoUD1rPj4xPDkmJihrXjgwKT4+Mz49Mj8xNjo0Nyl9fX0sTVA9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixUKXt7Qj00Nzt3aGlsZShCIT0zNCl7aWYoQj09OTIpdGhyb3cgbmV3IFNNKHR5cGVvZiBHLDEpO2lmKEI9PTk2KVIuc2FuZGJveC5zdXBwb3J0cyYmIVIuc2FuZGJveC5zdXBwb3J0cyhEW2NdKXx8Ui5zYW5kYm94LmFkZChEW2NdKSxCPTc5O2Vsc2UgaWYoQj09NTYpQj0oays4JjU5KTxrJiYoays2XjUpPj1rPzMyOjgzO2Vsc2UgaWYoQj09NSlCPW48Ui5sZW5ndGg/MTg6NDk7ZWxzZSBpZihCPT02NylCPUcgaW5zdGFuY2VvZiBYMT83NTo5MjtlbHNlIGlmKEI9PTMwKXtpZihHIGluc3RhbmNlb2YgWDEpaD1HLktqO2Vsc2UgdGhyb3cgRXJyb3IoIiIpO1Iuc3JjPWgudG9TdHJpbmcoKSxCPTUxfWVsc2UgaWYoQj09MjUpQj02MjtlbHNlIGlmKEI9PTQ3KUI9NTY7ZWxzZSBpZihCPT00NSlUPSEhKGg9Ry5PMiwtMip+KGgmUikrfmgrKGheUikrKGh8flIpKSxCPTY7ZWxzZSBpZihCPT03OSljKyssQj02MjtlbHNlIGlmKEI9PTc1KUQ9ImFsbG93LXNhbWUtb3JpZ2luIGFsbG93LXNjcmlwdHMgYWxsb3ctZm9ybXMgYWxsb3ctcG9wdXBzIGFsbG93LXBvcHVwcy10by1lc2NhcGUtc2FuZGJveCBhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24iLnNwbGl0KCIgIiksUi5zZXRBdHRyaWJ1dGUoInNhbmRib3giLCIiKSxjPTAsQj0yNTtlbHNlIGlmKEI9PTgzKUI9ay01PDE1JiYoa142OSk+PjQ+PTI/NDU6NjtlbHNlIGlmKEI9PTUzKUI9NzY7ZWxzZXtpZihCPT01MSlyZXR1cm4gVDtCPT01Mj9CPTE2OkI9PTcyP0I9NTpCPT02Mj9CPWM8RC5sZW5ndGg/OTY6MzA6Qj09Nzc/KFIucmVtb3ZlQXR0cmlidXRlKCJzcmNkb2MiKSxCPTY3KTpCPT00PyhuKyssQj01KTpCPT0xNj9CPWg+Nz8yNzo0OkI9PTE4PyhoKz1HLEQ9KG09RDw8RyxjPVJbbl0sMiooY3wwKSt+Yy0ofm18YykpLEI9NTIpOkI9PTQ5PyhUPVosQj04Myk6Qj09Nj9CPShrKzUmNyk9PTE/NTM6NzY6Qj09MTM/Qj0xNjpCPT0zMj8oaD1uPTAsWj1bXSxCPTcyKTpCPT0yNz8oaC09OCxaLnB1c2goRD4+aCYyNTUpLEI9MTMpOkI9PTc2JiYoQj0oaysxJjExKT09Mz83Nzo1MSl9fX19LGhXPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbil7Zm9yKFo9NTtaIT05NjspaWYoWj09OTEpe2E6e2lmKChEPUcubGVuZ3RoLEQpPlIpe2ZvcihjPShoPUFycmF5KEQpLFIpO2M8RDtjKyspaFtjXT1HW2NdO249aDticmVhayBhfW49W119Wj05OX1lbHNlIGlmKFo9PTQwKW49TWF0aC5mbG9vcih0aGlzLkooKSksWj01NztlbHNlIGlmKFo9PTEwKVo9ay00Pj4zPT0xPzkxOjk5O2Vsc2UgaWYoWj09NDIpUi5uWD1mdW5jdGlvbigpe3JldHVybiBSLlh6P1IuWHo6Ui5Yej1uZXcgUn0sUi5Yej12b2lkIDAsWj0xMDtlbHNlIGlmKFo9PTIpRy5mWD1SLEcubGlzdGVuZXI9bnVsbCxHLnByb3h5PW51bGwsRy5zcmM9bnVsbCxHLlZuPW51bGwsWj01OTtlbHNlIGlmKFo9PTg1KVo9KGt8NTYpPT1rPzQwOjU3O2Vsc2UgaWYoWj09NTcpWj0oaysxJjI4KT49ayYmKGstMV43KTxrPzI6NTk7ZWxzZSBpZihaPT01OSlaPShrfDcyKT09az80MjoxMDtlbHNlIGlmKFo9PTUpWj04NTtlbHNlIGlmKFo9PTk5KXJldHVybiBufSxUbz1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCLFQsTil7e1Q9NTc7d2hpbGUoVCE9NTkpaWYoVD09aylEWi5jYWxsKHRoaXMpLFJ8fFpafHwoWlo9bmV3IG5uKSx0aGlzLlFuPXRoaXMuQT1udWxsLHRoaXMuWGk9dGhpcy5qbT1mYWxzZSx0aGlzLnMyPXZvaWQgMCx0aGlzLktYPXRoaXMuWjc9dGhpcy5jVj1udWxsLFQ9Njk7ZWxzZSBpZihUPT03NSlUPTQ7ZWxzZXtpZihUPT01MSlyZXR1cm4gTjtUPT00P1Q9QjxtLmxlbmd0aD81Mjo1MTpUPT04OT9UPShHLTVeMzIpPj1HJiYoRy00fDE2KTxHP2s6Njk6VD09MTM/KG49QnUoMyxuKSxaJiZaW2RKXT9aLkkuYWRkKFN0cmluZyhtKSxuLGgsTlAoNCxSLDE2LGMpPyEhYy5jYXB0dXJlOiEhYyxEKTpJQig2NCwib2JqZWN0IixmYWxzZSxuLGgsbSxaLGMsRCksVD01MSk6VD09OTA/KEI9MCxUPTc1KTpUPT01P1Q9QXJyYXkuaXNBcnJheShtKT85MDoxMzpUPT01Nz9UPTg5OlQ9PTE/KEIrKyxUPTQpOlQ9PTY5P1Q9Ry05Pj40PzUxOjU6VD09NTImJihUbyg1NCwib2JqZWN0Iiw5LHRydWUsRCxjLFosbixtW0JdKSxUPTEpfX19LGU9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuKXt7bj0yMTt3aGlsZShuIT02NylpZihuPT0yMSluPTUwO2Vsc2UgaWYobj09MTkpbj0oKGteNTApJjI2KTw3JiYoa143OSk+PTI3Pzk2Ojg3O2Vsc2UgaWYobj09MjkpdHlwZW9mIGguY2xhc3NOYW1lPT1SP2guY2xhc3NOYW1lPUc6aC5zZXRBdHRyaWJ1dGUmJmguc2V0QXR0cmlidXRlKCJjbGFzcyIsRyksbj04OTtlbHNlIGlmKG49PTMpYz1HLHNSPT09dm9pZCAwJiYoc1I9UiksRD0oaD1zUik/aC5jcmVhdGVTY3JpcHRVUkwoYyk6YyxaPW5ldyBYMShEKSxuPTE5O2Vsc2UgaWYobj09NTApbj1rLTE+PjQ+PTEmJihrPj4xJjEyKTwyPzM6MTk7ZWxzZSBpZihuPT0yMClHLks9KChHLks/Ry5LKyJ+IjoiRToiKStoLm1lc3NhZ2UrUitoLnN0YWNrKS5zbGljZSgwLDIwNDgpLG49MTU7ZWxzZSBpZihuPT05NiluPTg3O2Vsc2UgaWYobj09OTIpWj1vQigxMyw3LDEsUixHLGgpPj1SLG49NjI7ZWxzZSBpZihuPT04NyluPShrfDMpPj40PDImJms+PjE+PS02Nj8yOTo4OTtlbHNlIGlmKG49PTYyKW49KGt8MjQpPT1rPzIwOjE1O2Vsc2UgaWYobj09ODkpbj0oays1JjgpPDgmJihrXjkzKT4+Mz49MT85Mjo2MjtlbHNlIGlmKG49PTE1KXJldHVybiBafX0sQVc9ZnVuY3Rpb24oayxSLEcsaCxELGMsWil7Zm9yKGM9aztjIT00MDspe2lmKGM9PTM3KXJldHVybiBaO2lmKGM9PTY3KWM9Ry05PDwyPj1HJiYoRyszXjUpPEc/NTM6Mzc7ZWxzZSBpZihjPT04KXRoaXMudHlwZT1SLHRoaXMuY3VycmVudFRhcmdldD10aGlzLnRhcmdldD1oLHRoaXMuZGVmYXVsdFByZXZlbnRlZD10aGlzLlB0PWZhbHNlLGM9MjM7ZWxzZSBpZihjPT01KWM9KEcrNSYxNCk9PTI/ODY6Njc7ZWxzZSBpZihjPT0xMyl7YTp7aWYoIShEPW51bGwsaD1ILnRydXN0ZWRUeXBlcyxoKXx8IWguY3JlYXRlUG9saWN5KXtaPUQ7YnJlYWsgYX10cnl7RD1oLmNyZWF0ZVBvbGljeShSLHtjcmVhdGVIVE1MOnBuLGNyZWF0ZVNjcmlwdDpwbixjcmVhdGVTY3JpcHRVUkw6cG59KX1jYXRjaChuKXtILmNvbnNvbGUmJkguY29uc29sZS5lcnJvcihuLm1lc3NhZ2UpfVo9RH1jPTV9ZWxzZSBjPT04Nj8oYjkuY2FsbCh0aGlzLFIsaHx8UWYublgoKSxEKSxjPTY3KTpjPT0zOT9jPShHJjc5KT09Rz84OjIzOmM9PWs/Yz0zOTpjPT01Mz8oWj10eXBlb2YgRC5jbGFzc05hbWU9PSJzdHJpbmciP0QuY2xhc3NOYW1lOkQuZ2V0QXR0cmlidXRlJiZELmdldEF0dHJpYnV0ZShSKXx8aCxjPTM3KTpjPT0yMyYmKGM9KEc8PDEmMTYpPDE2JiYoR141OSk+PjM+PTI/MTM6NSl9fSxLbj1mdW5jdGlvbihrLFIsRyxoLEQsYyl7Zm9yKGM9Njc7YyE9Njk7KWlmKGM9PTU3KXRoaXMuc3JjPWgsdGhpcy5KeD1rLHRoaXMuWj17fSxjPTE3O2Vsc2V7aWYoYz09MTcpcmV0dXJuIEQ7Yz09Njc/Yz03NzpjPT0zMj9jPUc8PDImNT8xNzo1NzpjPT03Nz9jPShHPj4yJjMpPT1SPzM2OjMyOmM9PTM2JiYoV3UuY2FsbCh0aGlzKSx0aGlzLkk9bmV3IGpNKHRoaXMpLHRoaXMubHE9dGhpcyx0aGlzLk5vPW51bGwsYz0zMil9fSxJQj1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCLFQsTixQLGQsSSl7Zm9yKEk9MTc7SSE9NTE7KWlmKEk9PTY3KVouYWRkTGlzdGVuZXIoQiksST0wO2Vsc2UgaWYoST09MTcpST01MztlbHNlIGlmKEk9PTE5KUk9KGteNzQpPj40PzYxOjM3O2Vsc2UgaWYoST09MTEpST1aLmF0dGFjaEV2ZW50PzU0OjMyO2Vsc2V7aWYoST09Nyl0aHJvdyBFcnJvcigiSW52YWxpZCBldmVudCB0eXBlIik7aWYoST09NzQpZm58fChuPVQpLG49PT12b2lkIDAmJihuPUcpLFouYWRkRXZlbnRMaXN0ZW5lcihjLnRvU3RyaW5nKCksQixuKSxJPTA7ZWxzZSBpZihJPT00OSlJPShrJjQ2KT09az85MzoxOTtlbHNlIGlmKEk9PTYxKUk9KGt8MjQpPT1rPzgwOjg2O2Vsc2UgaWYoST09MzcpST1jPzU1Ojc7ZWxzZSBpZihJPT04MClkPVIsST04NjtlbHNlIGlmKEk9PTg5KUk9Wi5hZGRFdmVudExpc3RlbmVyPzc0OjExO2Vsc2UgaWYoST09OTMpZD0hIShHLnJiJkQpJiZNUCg4LEQsRykhPWgmJighKGM9Ry5pcSwtMS1+KGN8RCktKGNeRCkpfHxHLmRpc3BhdGNoRXZlbnQodnUoNTYsUixELDIsNjQsOCxoLDI0KSkpJiYhRy5nLEk9MTk7ZWxzZSBpZihJPT04NSlkPXFQKFZmLFIpLEk9NDk7ZWxzZSBpZihJPT01NSlUPU5QKDQsUiwyMSxuKT8hIW4uY2FwdHVyZTohIW4sKFA9dFcoMjAsWikpfHwoWltsOV09UD1uZXcgak0oWikpLE49UC5hZGQoYyxoLEQsVCxtKSxJPTk3O2Vsc2V7aWYoST09MzYpdGhyb3cgRXJyb3IoImFkZEV2ZW50TGlzdGVuZXIgYW5kIGF0dGFjaEV2ZW50IGFyZSB1bmF2YWlsYWJsZS4iKTtpZihJPT0wKWk5KyssST02MTtlbHNlIGlmKEk9PTUzKUk9KGstOXw4NCk8ayYmKGsrNV4zKT49az8xMDozNDtlbHNlIGlmKEk9PTU0KVouYXR0YWNoRXZlbnQoTG4oMywib24iLGMudG9TdHJpbmcoKSw0OCksQiksST0wO2Vsc2V7aWYoST09ODYpcmV0dXJuIGQ7ST09MzI/ST1aLmFkZExpc3RlbmVyJiZaLnJlbW92ZUxpc3RlbmVyPzY3OjM2Okk9PTEwPyhSLlFuJiZSLlFuLmZvckVhY2goRyx2b2lkIDApLEk9MzQpOkk9PTU5PyhCPUYxKDk0LCJvbiIsMyksTi5wcm94eT1CLEIuc3JjPVosQi5saXN0ZW5lcj1OLEk9ODkpOkk9PTk3P0k9Ti5wcm94eT82MTo1OTpJPT0zNCYmKEk9KGs8PDImMTMpPT00Pzg1OjQ5KX19fX0sZj1mdW5jdGlvbihrLFIsRyxoLEQsYyl7e0Q9MzA7d2hpbGUoRCE9NzkpaWYoRD09OTQpRD0oa3w3KT4+Mz84ODo1MTtlbHNlIGlmKEQ9PTUxKXRoaXMuTW89SC5kb2N1bWVudHx8ZG9jdW1lbnQsRD04ODtlbHNlIGlmKEQ9PTg4KUQ9ay0yPDwyPj1rJiYoays0XjI5KTxrPzYyOjYzO2Vsc2UgaWYoRD09MzApRD05NDtlbHNlIGlmKEQ9PTYyKUMoRyxSLGgpLFJbeG5dPTI3OTYsRD02MztlbHNlIGlmKEQ9PTYzKXJldHVybiBjfX0sT1I9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCl7e1Q9NTI7d2hpbGUoVCE9OTYpaWYoVD09NTApVD1jPT09IiJ8fGM9PXZvaWQgMD83NTo2NjtlbHNlIGlmKFQ9PTgxKVQ9Ui0yPj0xMCYmUis2PDI2PzU6ODY7ZWxzZSBpZihUPT02MilUPShSJjcwKT09Uj8yNDo3NDtlbHNlIGlmKFQ9PTc0KVQ9KFImNDUpPT1SPzE0OjExO2Vsc2UgaWYoVD09MjQpUD1mdW5jdGlvbigpe30sRD12b2lkIDAsYz1nSihHLGZ1bmN0aW9uKGQsSSl7Zm9yKEk9MTU7SSE9NjQ7KUk9PTE1P0k9UD82Nzo2NDpJPT02NyYmKGgmJnU5KGgpLEQ9ZCxQKCksUD12b2lkIDAsST02NCl9LCEhaCksWj1jWzBdLG49Y1sxXSxOPXtob3Q6ZnVuY3Rpb24oZCxJLFMsWCxNLHIsbCl7Zm9yKHI9NDc7ciE9MjU7KXtpZihyPT0xMylyZXR1cm4gTT1aKFMpLGQmJmQoTSksTTtyPT01MD8obCgpLHI9MjUpOnI9PTg0P3I9ST8zOToxMzpyPT1rPyhYPVAsUD1mdW5jdGlvbigpe1goKSx1OShsKX0scj0yNSk6cj09Mzk/cj1EPzUwOms6cj09NDcmJihsPWZ1bmN0aW9uKCl7RChmdW5jdGlvbih3KXt1OShmdW5jdGlvbigpe2Qodyl9KX0sUyl9LHI9ODQpfX0scGU6ZnVuY3Rpb24oZCl7biYmbihkKX19LFQ9NzQ7ZWxzZSBpZihUPT02NilELnNldEF0dHJpYnV0ZShtLGMpLFQ9MTE7ZWxzZSBpZihUPT01MilUPTgxO2Vsc2V7aWYoVD09MTEpcmV0dXJuIE47VD09ODY/VD0oUnw3Mik9PVI/OTI6NjI6VD09MTQ/KEFycmF5LmlzQXJyYXkoYykmJihjPWMuam9pbigiICIpKSxtPSJhcmlhLSIrWixUPTUwKTpUPT01Pyh0aGlzW3RoaXMrIiJdPXRoaXMsTj1Qcm9taXNlLnJlc29sdmUoKSxUPTg2KTpUPT05Mj8oRD1HLE49ZnVuY3Rpb24oKXtyZXR1cm4gRDxoLmxlbmd0aD97ZG9uZTpmYWxzZSx2YWx1ZTpoW0QrK119Ontkb25lOnRydWV9fSxUPTYyKTpUPT0yMj8oQj1VUixaIGluIEI/RC5zZXRBdHRyaWJ1dGUobSxCW1pdKTpELnJlbW92ZUF0dHJpYnV0ZShtKSxUPTExKTpUPT02Nz8obj17fSxVUj0obi5hdG9taWM9RyxuLmF1dG9jb21wbGV0ZT0ibm9uZSIsbi5kcm9wZWZmZWN0PSJub25lIixuLmhhc3BvcHVwPUcsbi5saXZlPSJvZmYiLG4ubXVsdGlsaW5lPUcsbi5tdWx0aXNlbGVjdGFibGU9RyxuLm9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCIsbi5yZWFkb25seT1HLG4ucmVsZXZhbnQ9ImFkZGl0aW9ucyB0ZXh0IixuLnJlcXVpcmVkPUcsbi5zb3J0PSJub25lIixuLmJ1c3k9RyxuLmRpc2FibGVkPUcsbltoXT1HLG4uaW52YWxpZD0iZmFsc2UiLG4pLFQ9MjIpOlQ9PTc1JiYoVD1VUj8yMjo2Nyl9fX0sem89ZnVuY3Rpb24oayxSLEcsaCxELGMsWil7e2M9Mzt3aGlsZShjIT01NilpZihjPT02OCljPShHJjEwMyk9PUc/azpSO2Vsc2V7aWYoYz09UilyZXR1cm4gWjtjPT0zNj8oaC5jbGFzc0xpc3Q/QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChELGZ1bmN0aW9uKG4pe0pXKDM1LDcsImNsYXNzIiwyMCwiICIsInN0cmluZyIsMCxoLG4pfSk6ZSgzLCJzdHJpbmciLEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChCdSgzNCwiY2xhc3MiLGgpLGZ1bmN0aW9uKG4pe3JldHVybiFlKDQ0LDAsbixEKX0pLmpvaW4oIiAiKSxoKSxjPTY4KTpjPT1rPyhaPXRoaXMubj09PTA/MDpNYXRoLnNxcnQodGhpcy5oeC90aGlzLm4pLGM9Uik6Yz09Mz9jPTY6Yz09NiYmKGM9KEd8MjQpPT1HPzM2OjY4KX19fSxxPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtKXt3aGlsZShrLTM+PjQ9PTQpe2E6e2ZvcigwO1IuVjswKXttPWtmKFIsUi5HKTticmVhayBhO2lmKDEpYnJlYWt9KGg9R04oOCxSLHRydWUpLGgmMTI4KSYmKGhePTEyOCxEPUdOKDIsUix0cnVlKSxoPShHPWg8PDIsKEcmRCktMS1+KEd8RCkpKSxtPWh9aWYoImoiKWJyZWFrfXdoaWxlKCgoa14yMSkmMjMpPT00KXthOntpZihSLlYpe209a2YoUixSLkcpO2JyZWFrIGF9aD1HTig4LFIsdHJ1ZSksaCYxMjgmJihoXj0xMjgsRz1HTigyLFIsdHJ1ZSksaD0oRD1oPDwyLChEJkcpLTEtfihEfEcpKSksbT1ofWlmKHRydWUpYnJlYWt9cmV0dXJuKCgoa14oKChrXjM4KSYxNSk+PTkmJmstNDwxOSYmKGg9UnYoRyksaCYxMjgmJihoPS1+KGgmMTI3KSsofmgmMTI3KSsoaHwtMTI4KXxSdihHKTw8UiksbT1oKSw3MCkpJjE1KT09MyYmKGg9eWZbRy5SXShHLnZWKSxoW0cuUl09ZnVuY3Rpb24oKXt3aGlsZSh0cnVlKXtyZXR1cm4gUjtpZih0cnVlIT1bXSlicmVha319LGguY29uY2F0PWZ1bmN0aW9uKEIpe1I9Qn0sbT1oKSwoKGteNTEpJjE1KT09MSkmJihtPShaPShjPWhbR108PDI0LEQ9aFsoR3wwKSsxXTw8MTYsKGN8MCkrKGNeRCkrKH5jXkQpLShjfH5EKSksbj1oWyhHfDApKzJdPDxSLC0obnwwKSsyKihaJm4pKyhaXm4pKyh+WiZuKSl8aFsoR3wwKSszXSksbX0sUkI9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCl7Zm9yKFA9Njk7UCE9MDspaWYoUD09NTMpbj1oLmxlbmd0aCxaPXR5cGVvZiBoPT09InN0cmluZyI/aC5zcGxpdChHKTpoLGM9UixQPTI7ZWxzZSBpZihQPT0xMilQPWstMT4+Mz09Mz85MDo1MTtlbHNlIGlmKFA9PTQ5KVA9NDc7ZWxzZSBpZihQPT0yKVA9OTQ7ZWxzZSBpZihQPT04MSlQPShrKzdeMjEpPj1rJiZrLTc8PDE8az80MTo3MjtlbHNlIGlmKFA9PTExKUQ9bj0wLFA9NDk7ZWxzZSBpZihQPT04MilEKyssUD00NztlbHNlIGlmKFA9PTk2KU49TWF0aC5mbG9vcih0aGlzLlRmKyh0aGlzLkooKS10aGlzLmtOKSksUD04MTtlbHNlIGlmKFA9PTY5KVA9NTc7ZWxzZSBpZihQPT00MiljIGluIFomJkQuY2FsbCh2b2lkIDAsWltjXSxjLGgpLFA9ODc7ZWxzZSBpZihQPT05NClQPWM8bj80MjoxMjtlbHNlIGlmKFA9PTkwKXthOmlmKEcuUC5sZW5ndGgpeyhHLm8mJiI6VFFSOlRRUjoiKCksRykuRTk9RCxHLm89dHJ1ZTt0cnl7Wj1HLkooKSxHLkUyPTAsRy5vbz0wLEcuY3Q9WixHLmtOPVosYz1jdSgyLHRydWUsMjQsbnVsbCwiOiIsRCxHKSxtPWg/MDoxMCxuPUcuSigpLUcua04sRy5UZis9bixHLkJWJiZHLkJWKG4tRy5YLEcudSxHLlcsRy5FMiksRy51PVIsRy5YPTAsRy5XPVIsbjxtfHxHLnM5LS08PTB8fChuPU1hdGguZmxvb3IobiksRy51WC5wdXNoKG48PTI1ND9uOjI1NCkpfWZpbmFsbHl7Ry5vPVJ9Tj1jO2JyZWFrIGF9UD01MX1lbHNlIGlmKFA9PTg3KWMrKyxQPTk0O2Vsc2UgaWYoUD09NTcpUD0oaysxJjYzKTxrJiYoay0yfDcwKT49az85Njo4MTtlbHNlIGlmKFA9PTU5KW4rPVIuY2hhckNvZGVBdChEKSxuKz1uPDwxMCxuPShjPW4+PjYsKG58YykrfmMtKG58fmMpKSxQPTgyO2Vsc2UgaWYoUD09NDEpe2E6e2lmKHRoaXMubj09PTApe049WzAsMF07YnJlYWsgYX1OPSh0aGlzLlQuc29ydChmdW5jdGlvbihkLEkpe3JldHVybiBkLUl9KSxbdGhpcy5uLHRoaXMuVFt0aGlzLlQubGVuZ3RoPj4xXV0pfVA9NzJ9ZWxzZSBpZihQPT03MilQPShrKzdeMTIpPGsmJmstNjw8MT49az8xMTo3MDtlbHNlIGlmKFA9PTIwKW4rPW48PDMsbl49bj4+MTEsWj1uKyhuPDwxNSk+Pj4wLG09bmV3IE51bWJlcigoQj0oVD0xPDxHLChUfDEpLShUJjEpLTIqKH5UJjEpKSwoWnwwKSsoQnwwKS0oWnxCKSkpLG1bMF09KFo+Pj5HKSVoLE49bSxQPTcwO2Vsc2V7aWYoUD09NTEpcmV0dXJuIE47UD09NDc/UD1EPFIubGVuZ3RoPzU5OjIwOlA9PTcwJiYoUD0oa3wzMik9PWs/NTM6MTIpfX0sYT1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCLFQpe2ZvcihCPTgzO0IhPTg2Oyl7aWYoQj09ODIpcmV0dXJuIFQ7aWYoQj09NjApQj0oayYxMTQpPT1rPzMyOjgyO2Vsc2V7aWYoQj09MTcpdGhyb3cgRXJyb3IoIkludmFsaWQgY2xhc3MgbmFtZSAiK0cpO2lmKEI9PTU2KXRocm93IEVycm9yKCJJbnZhbGlkIGRlY29yYXRvciBmdW5jdGlvbiAiK1IpO2lmKEI9PTEwKUcuUC5zcGxpY2UoMCwwLFIpLEI9MzM7ZWxzZSBpZihCPT04MylCPTM7ZWxzZSBpZihCPT0xMilCPUc/NTA6MTc7ZWxzZSBpZihCPT0zKUI9KGt8NDApPT1rPzEwOjMzO2Vsc2UgaWYoQj09NTApQj10eXBlb2YgUiE9PSJmdW5jdGlvbiI/NTY6NjA7ZWxzZSBpZihCPT0zMil7YTppZihjPXdpbmRvdy5idG9hKXtmb3IoWj0wLG49IiI7WjxoLmxlbmd0aDtaKz1HKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoUixoLnNsaWNlKFosWitHKSk7VD0obT1jKG4pLEQmJihtPW0ucmVwbGFjZSgvXFwrL2csIi0iKS5yZXBsYWNlKC9cXC8vZywiXyIpLnJlcGxhY2UoLz0vZywiIikpLG0pO2JyZWFrIGF9Qj04Mn1lbHNlIEI9PTMzJiYoQj0oaz4+MiY3KT09MT8xMjo2MCl9fX0sQlk9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCxkKXtmb3IoZD02OTtkIT0yMjspaWYoZD09NTUpREQuY2FsbCh0aGlzLGgpLGQ9NjE7ZWxzZSBpZihkPT05OClQPShUPVpEW2suc3Vic3RyaW5nKDAsMykrIl8iXSk/VChrLnN1YnN0cmluZygzKSxHLGgsRCxjLFosbixtLEIpOkpXKDM1LDcsRyw1LGspLGQ9Mjc7ZWxzZSBpZihkPT0zMilkPWM/NzQ6MTY7ZWxzZSBpZihkPT02OSlkPTk7ZWxzZSBpZihkPT0xNiltPW4/dHlwZW9mIG4ublg9PT0iZnVuY3Rpb24iP24ublgoKTpuZXcgbjpudWxsLGQ9NTc7ZWxzZSBpZihkPT0yMClkPTMyO2Vsc2UgaWYoZD09NTcpdGhpcy5DPW0sZD00MTtlbHNlIGlmKGQ9PTk3KWQ9KG49bnJbWl0pPzcxOjI2O2Vsc2UgaWYoZD09NzUpYz10aGlzLmNvbnN0cnVjdG9yLGQ9MTE7ZWxzZSBpZihkPT04NylOPWZ1bmN0aW9uKCl7fSxOLnByb3RvdHlwZT1oLnByb3RvdHlwZSxHLk89aC5wcm90b3R5cGUsRy5wcm90b3R5cGU9bmV3IE4sRy5wcm90b3R5cGUuY29uc3RydWN0b3I9RyxHLmN3PWZ1bmN0aW9uKEksUyxYKXtmb3IodmFyIE09MTk7TSE9MjU7KWlmKE09PTE5KXZhciByPUFycmF5KChNPTEsYXJndW1lbnRzLmxlbmd0aC1rKSksbD1rO2Vsc2UgaWYoTT09MilyW2wta109YXJndW1lbnRzW2xdLE09NDE7ZWxzZXtpZihNPT01MilyZXR1cm4gaC5wcm90b3R5cGVbU10uYXBwbHkoSSxyKTtNPT00MT8obCsrLE09NTMpOk09PTUzP009bDxhcmd1bWVudHMubGVuZ3RoPzI6NTI6TT09MSYmKE09NTMpfX0sZD03O2Vsc2UgaWYoZD09MjYpYz0oRD1PYmplY3QuZ2V0UHJvdG90eXBlT2YoYy5wcm90b3R5cGUpKSYmRC5jb25zdHJ1Y3RvcixkPTIwO2Vsc2UgaWYoZD09MjcpZD0oUis1JjcpPj01JiZSPj4xPDE1PzU1OjQxO2Vsc2UgaWYoZD09NjEpZD0obT1HKT81Nzo3NTtlbHNlIGlmKGQ9PTQxKWQ9KFJ8NDApPT1SPzg3Ojc7ZWxzZSBpZihkPT05KWQ9Uis0Pj4zPT0yPzk4OjI3O2Vsc2UgaWYoZD09NylkPShSfDcyKT09Uj85OTo3MztlbHNlIGlmKGQ9PTk5KVA9YSgxNixudWxsLDgxOTIsayxmYWxzZSksZD03MztlbHNle2lmKGQ9PTczKXJldHVybiBQO2Q9PTc0PyhaPUNuKDY0LDE5LGMpLGQ9OTcpOmQ9PTcxP2Q9MTY6ZD09MTEmJihkPTMyKX19LFBZPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtLEIsVCxOLFAsZCl7e2Q9NTU7d2hpbGUoZCE9NSlpZihkPT04NylkPTQxO2Vsc2UgaWYoZD09NTUpZD01NztlbHNlIGlmKGQ9PTQ1KXthOntpZighKFo9Ry5JLlpbU3RyaW5nKGgpXSxaKSl7UD10cnVlO2JyZWFrIGF9Zm9yKG49KFo9Wi5jb25jYXQoKSxOPXRydWUsUik7bjxaLmxlbmd0aDsrK24pKFQ9WltuXSkmJiFULmZYJiZULmNhcHR1cmU9PUQmJihCPVQuVm58fFQuc3JjLG09VC5saXN0ZW5lcixULmFvJiZySigzLFIsVCxHLkkpLE49bS5jYWxsKEIsYykhPT1mYWxzZSYmTik7UD1OJiYhYy5kZWZhdWx0UHJldmVudGVkfWQ9Mzd9ZWxzZSBpZihkPT0zNylkPWs8PDE+PTI1JiYoa3wxKT4+NTwyPzg3OjQxO2Vsc2V7aWYoZD09NDEpcmV0dXJuIFA7ZD09NTcmJihkPShrKzJeMjQpPj1rJiZrKzM+PjI8az80NTozNyl9fX0sdnU9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4pe2ZvcihUPTQ7VCE9Njc7KWlmKFQ9PTkzKVQ9KG58OSk+PjQ/NDc6aztlbHNlIGlmKFQ9PTU1KVRvKDU0LCJvYmplY3QiLDEwLGMsbSxoLEQsRyxaKSxUPTQ3O2Vsc2UgaWYoVD09ODEpe2E6e3N3aXRjaChHKXtjYXNlIDE6Tj1aPyJkaXNhYmxlIjoiZW5hYmxlIjticmVhayBhO2Nhc2UgaDpOPVo/ImhpZ2hsaWdodCI6InVuaGlnaGxpZ2h0IjticmVhayBhO2Nhc2UgUjpOPVo/ImFjdGl2YXRlIjoiZGVhY3RpdmF0ZSI7YnJlYWsgYTtjYXNlIGM6Tj1aPyJzZWxlY3QiOiJ1bnNlbGVjdCI7YnJlYWsgYTtjYXNlIDE2Ok49Wj8iY2hlY2siOiJ1bmNoZWNrIjticmVhayBhO2Nhc2UgMzI6Tj1aPyJmb2N1cyI6ImJsdXIiO2JyZWFrIGE7Y2FzZSBEOk49Wj8ib3BlbiI6ImNsb3NlIjticmVhayBhfXRocm93IEVycm9yKCJJbnZhbGlkIGNvbXBvbmVudCBzdGF0ZSIpO31UPTczfWVsc2UgaWYoVD09NTQpVD03NDtlbHNlIGlmKFQ9PTQ3KVQ9KChuXjEyKSY4KTw0JiYobnwyKT49LTMxPzgxOjczO2Vsc2V7aWYoVD09NzMpcmV0dXJuIE47VD09MD8oRz1CdSg2LEcpLEQmJkRbZEpdP0QuSS5hZGQoU3RyaW5nKFopLEcsUixOUCg0LCJvYmplY3QiLDIwLGgpPyEhaC5jYXB0dXJlOiEhaCxtKTpJQig2Niwib2JqZWN0IixmYWxzZSxHLFIsWixELGgsbSksVD00Nyk6VD09ND9UPTkzOlQ9PTc0P1Q9QjxaLmxlbmd0aD83Nzo0NzpUPT02OT8oQj0wLFQ9NTQpOlQ9PWs/VD1oJiZoLm9uY2U/NTU6NDg6VD09OTg/KEIrKyxUPTc0KTpUPT00OD9UPUFycmF5LmlzQXJyYXkoWik/Njk6MDpUPT03NyYmKHZ1KDU2LGZhbHNlLEcsaCxELHRydWUsWltCXSw1LG0pLFQ9OTgpfX0sRTU9ZnVuY3Rpb24oayxSKXtmdW5jdGlvbiBHKCl7dGhpcy5oPXRoaXMuaHg9dGhpcy5uPTB9cmV0dXJuW2Z1bmN0aW9uKGgpeyhrLmdiKGgpLFIpLmdiKGgpfSwoUj0oaz1uZXcgKEcucHJvdG90eXBlLnJKPShHLnByb3RvdHlwZS5nYj1mdW5jdGlvbihoLEQpe3JldHVybiBvQi5jYWxsKHRoaXMsMTMsNjUsaCxEKX0sZnVuY3Rpb24oKXtyZXR1cm4gem8uY2FsbCh0aGlzLDIxLDc5LDMpfSksRyksbmV3IEcpLGZ1bmN0aW9uKGgsRCl7cmV0dXJuIEQ9W2suckooKSxSLnJKKCksay5oLFIuaF0sKGg9PT12b2lkIDB8fGgpJiYoUj1uZXcgRyksRH0pXX0sSlc9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixUKXt7VD05O3doaWxlKFQhPTgwKWlmKFQ9PTkpVD00ODtlbHNle2lmKFQ9PTI1KXJldHVybiBCO1Q9PTQ4P1Q9KChoXjEzKSY0KTwzJiYoaHw5KT4+Mz49Mj81NjoxNzpUPT04NT8oRyhmdW5jdGlvbihOKXtOKEQpfSksQj1bZnVuY3Rpb24oKXtyZXR1cm4gRH0sZnVuY3Rpb24oKXt9XSxUPTI1KTpUPT01Nj8obi5jbGFzc0xpc3Q/bi5jbGFzc0xpc3QucmVtb3ZlKG0pOihuLmNsYXNzTGlzdD9uLmNsYXNzTGlzdC5jb250YWlucyhtKTplKDQ2LFosbSxCdShrLEcsbikpKSYmZShSLGMsQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKEJ1KDMzLEcsbiksZnVuY3Rpb24oTil7cmV0dXJuIE4hPW19KS5qb2luKEQpLG4pLFQ9MTcpOlQ9PTE3JiYoVD1oPj4yPDE2JiYoaCsxJjIpPj0xPzg1OjI1KX19fSxGMT1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCLFQsTil7e049MjY7d2hpbGUoTiE9MTcpaWYoTj09NDIpYz10cnVlLE49NDY7ZWxzZSBpZihOPT04MylUPWZ1bmN0aW9uKFApe3JldHVybiBoLmNhbGwoVC5zcmMsVC5saXN0ZW5lcixQKX0saD10byxCPVQsTj0yMTtlbHNlIGlmKE49PTYwKW09bmV3IHJVKEQsdGhpcyksWj1oLlZufHxoLnNyYyxuPWgubGlzdGVuZXIsaC5hbyYmY1koMzMsbnVsbCwzLFIsaCksYz1uLmNhbGwoWixtKSxOPTQ2O2Vsc2UgaWYoTj09MjYpTj1rO2Vsc2V7aWYoTj09NTcpcmV0dXJuIEI7Tj09MjE/Tj0oR14yNCk8NyYmRy03Pj01PzMwOjU3Ok49PWs/Tj0oRz4+MSY3KT09MT84MzoyMTpOPT0zMD9OPWguZlg/NDI6NjA6Tj09NDYmJihCPWMsTj01Nyl9fX0sYXY9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCl7d2hpbGUoIVIueW4mJihCPXZvaWQgMCxoJiZoWzBdPT09d1UmJihCPWhbMl0sRz1oWzFdLGg9dm9pZCAwKSxuPVYoayxSKSxuLmxlbmd0aD09MCYmKEQ9VigxNjgsUik+PjMsbi5wdXNoKEcsRD4+OCYyNTUsRCYyNTUpLEIhPXZvaWQgMCYmbi5wdXNoKEImMjU1KSksUD0iIixoJiYoaC5tZXNzYWdlJiYoUCs9aC5tZXNzYWdlKSxoLnN0YWNrJiYoUCs9IjoiK2guc3RhY2spKSxtPVcoUiwzMDIpLG1bMF0+MykpeyhUPShQPShtWzBdLT0oUD1QLnNsaWNlKDAsKG1bMF18MCktMyksWj1QLmxlbmd0aCwoWnwzKS1+Wisoflp8MykpLGVlKShQLDEyOCksUikuQixSKS5CPVI7dHJ5e1IuSHQ/KE49KE49Vig0NDYsUikpJiZOW04ubGVuZ3RoLTFdfHw5NSwoYz1XKFIsMTYzKSkmJmNbYy5sZW5ndGgtMV09PU58fGxOKDE2MyxbTiYyNTVdLDcsUikpOmplKDQ0NixbOTVdLFIpLGxOKDQyLEsoMixQLmxlbmd0aCkuY29uY2F0KFApLDcsUiwxNDQpfWZpbmFsbHl7Ui5CPVR9aWYoe30pYnJlYWt9fSxHTj1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCLFQsTixQLGQsSSxTKXtpZihoPVYoMTQyLFIpLGg+PVIuail0aHJvd1t3VSwzMV07Zm9yKGM9KEk9KG09KE49MCxoKSxSLkNqKS5sZW5ndGgsayk7Yz4wOylaPW0+PjMsUz1tJTgsUD1SLndiW1pdLG49OC0oU3wwKSxCPW48Yz9uOmMsRyYmKGQ9UixkLmwhPW0+PjYmJihkLmw9bT4+NixEPWIoZCwzNjMpLGQud0o9eWgoMTYsZC5sLDI1NSxkLk4sWzAsMCxEWzFdLERbMl1dKSksUF49Ui53SltaJkldKSxOfD0oUD4+OC0oU3wwKS0oQnwwKSYoMTw8QiktMSk8PChjfDApLShCfDApLG0rPUIsYy09QjtyZXR1cm4gQygxNDIsKGh8MCkrKGt8KFQ9TiwwKSksUiksVH0sWT1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCLFQsTil7KFIrNyY0NCk+PVImJlIrND4+MjxSJiYoaD1bLTc1LC0zMSw3MSwtMzUsNDYsLTEwMCxoLDk0LDUwLC03OF0sWj1jJjcsbT1TZSxCPXlmW0cuUl0oRy5KcyksQltHLlJdPWZ1bmN0aW9uKFApe249UDt3aGlsZShudWxsPT1mYWxzZT09MClpZighKForPTYrNypjLFtdKT09dHJ1ZT09IVtdKWJyZWFrO1o9MTYrfihafDcpK2sqKFomLTgpKyh+Wl43KX0sQi5jb25jYXQ9ZnVuY3Rpb24oUCxkLEkpe3JldHVybihkPShuPShQPShJPUQlMTYrMSwrKG0oKXwwKSpJLTc4KkQqRCpuKzM5Km4qbi0yMjYyKm4rWi0gLTEyMDkqRCpuK2hbWisxOSY3XSpEKkkpLUkqbitrKkQqRCpJLHZvaWQgMCksaFtQXSksaClbKForNjEmNykrKC0yLWsqfihjfGspK2sqKH5jXmspKyh+YyZrKSldPWQsaFtaKygtfihjJmspKyhjXmspLSh+YyZrKSsofmN8aykpXT0tMzEsZH0sTj1CKTtzd2l0Y2goISgoUl4xMyk8MjQmJihSXjkwKT49MTgpKXtjYXNlIHRydWU6TnVtYmVyKHRydWUudHJ1ZSk7YnJlYWs7Y2FzZSB0cnVlPT1bXTpzd2l0Y2goIShEPVhYKCJhcnJheSIsaCwibnVsbCIpPT09ImFycmF5Ij9oOltoXSx0aGlzLkspKXtjYXNlIHRydWU6dHJ5e2M9IXRoaXMuUC5sZW5ndGgmJiF0aGlzLm8sYSg1NyxbJGYsW10sRCxrLEddLHRoaXMpLEcmJiFjfHxSQigyNyxmYWxzZSx0aGlzLHRydWUsRyl9Y2F0Y2goUCl7ZSg1NiwiOiIsdGhpcyxQKSxrKHRoaXMuSyl9YnJlYWs7Y2FzZSB0cnVlPT1bXT09bnVsbDprKHRoaXMuSyk7YnJlYWt9YnJlYWt9KFIrM14xMik+PVImJihSKzJeMjcpPFImJihOPVQ9ZnVuY3Rpb24oKXt7dmFyIFA9NzE7d2hpbGUoUCE9OSlpZihQPT0xNil2YXIgZD1bTVQsKFA9OTcsYyksaCx2b2lkIDAsbixtLGFyZ3VtZW50c107ZWxzZSBpZihQPT01OSlQPVouWT8xNjo4ODtlbHNlIGlmKFA9PTk3KVA9RD09Rz83OTozNTtlbHNlIGlmKFA9PTM1KVA9RD09MT81NjoyNztlbHNlIGlmKFA9PTI3KXt2YXIgST1rbihkLDIsdHJ1ZSxaKTtQPTk5fWVsc2UgaWYoUD09NTYpe3ZhciBTPSFaLlAubGVuZ3RoJiYhWi5vO2EoNDMsZCxaKSxTJiZSQigyOCxmYWxzZSxaLGssayksUD05OX1lbHNlIGlmKFA9PTg4KW4mJm0mJm4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihtLFQsb3YpLFA9OTtlbHNle2lmKFA9PTk5KXJldHVybiBJO1A9PTcxP1A9Wi5CPT1aPzU5Ojk6UD09NzkmJihhKDQyLGQsWiksST1SQigyOSxmYWxzZSxaLGssayksUD05OSl9fX0pO3N3aXRjaCghKChSfDcyKT09Uikpe2Nhc2UgdHJ1ZTowO2JyZWFrO2Nhc2UgW109PShbXSE9KCFbXT09MCkpOmE6e2lmKGsuVil7Tj1rZihrLGsuRyk7YnJlYWsgYX0oRz1HTig4LGssdHJ1ZSksRyYxMjgpJiYoR149MTI4LGg9R04oMixrLHRydWUpLEc9KEQ9Rzw8MiwoRCZoKS0xLX4oRHxoKSkpLE49R31icmVha313aGlsZShSPj4yPj05JiYoKFJeMTkpJjI0KTwxOSl7RD1xKDE3LEcpO3tjPTA7d2hpbGUoaD4wKWM9Yzw8a3xSdihHKSxoLS19aWYoIVtdPT0oMCE9IShDKEQsYyxHKSxbXSkpKWJyZWFrfXJldHVybiBOfSxzNT1mdW5jdGlvbihrKXtyZXR1cm4gSUIuY2FsbCh0aGlzLDksayl9LENyPWZ1bmN0aW9uKGssUil7e3ZhciBHPTkzO3doaWxlKEchPTUxKWlmKEc9PTkzKXZhciBoPShHPTUwLDEpO2Vsc2UgaWYoRz09NjQpRz1oPGFyZ3VtZW50cy5sZW5ndGg/NzU6NTE7ZWxzZSBpZihHPT03NSl7dmFyIEQ9YXJndW1lbnRzW2hdO2ZvcihaIGluIEQpa1taXT1EW1pdO3ZhciBjPShHPTk2LDApfWVsc2UgaWYoRz09OTYpRz04NDtlbHNlIGlmKEc9PTUwKUc9NjQ7ZWxzZSBpZihHPT03MiljKyssRz04NDtlbHNlIGlmKEc9PTg0KUc9YzxIWS5sZW5ndGg/ODA6MjtlbHNlIGlmKEc9PTIpaCsrLEc9NjQ7ZWxzZSBpZihHPT04MCl7dmFyIFo9SFlbY107T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEQsWikmJihrW1pdPURbWl0pLEc9NzJ9fX0sTlQ9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCxkLEkpe2ZvcihkPTI0O2QhPTE5OylpZihkPT05NilBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKEcsZnVuY3Rpb24oUyxYLE0pe2ZvcihNPTI0O00hPTI2OylNPT0yND9NPWsuY2xhc3NMaXN0PzYwOjQ5Ok09PTQ5P009KGsuY2xhc3NMaXN0P2suY2xhc3NMaXN0LmNvbnRhaW5zKFMpOmUoNDUsMCxTLEJ1KDMyLCJjbGFzcyIsaykpKT8yNjo1NTpNPT01NT8oWD1BVyg0MSwiY2xhc3MiLDI4LCIiLGspLGUoNiwic3RyaW5nIixYKyhYLmxlbmd0aD4wPyIgIitTOlMpLGspLE09MjYpOk09PTYwJiYoay5jbGFzc0xpc3QuYWRkKFMpLE09MjYpfSksZD0yNztlbHNlIGlmKGQ9PTkwKWQ9KFI8PDEmOSk+PTEmJihSPj4yJjEyKTw2Pzg2OjI3O2Vsc2UgaWYoZD09MjQpZD02MTtlbHNlIGlmKGQ9PTg2KWQ9ay5jbGFzc0xpc3Q/OTY6NztlbHNlIGlmKGQ9PTI3KWQ9KFJeMzQpPDI2JiYoUisxJjE1KT49OT81ODo5NztlbHNlIGlmKGQ9PTEwKWQ9YzxoLmxlbmd0aD8zMzo3NDtlbHNlIGlmKGQ9PTEzKWMrKyxkPTEwO2Vsc2V7aWYoZD09OTcpcmV0dXJuIEk7aWYoZD09Nyl7Zm9yKGMgaW4gaD0oKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoKEQ9e30sQnUpKDM2LCJjbGFzcyIsayksZnVuY3Rpb24oUyl7RFtTXT10cnVlfSksQXJyYXkucHJvdG90eXBlKS5mb3JFYWNoLmNhbGwoRyxmdW5jdGlvbihTKXtEW1NdPXRydWV9KSwiIiksRCloKz1oLmxlbmd0aD4wPyIgIitjOmM7ZD0oZSg1LCJzdHJpbmciLGgsayksMjcpfWVsc2UgaWYoZD09ODkpZD1EPms/Njo1NztlbHNlIGlmKGQ9PTYpWltuKytdPUQmayxEPj49OCxkPTU3O2Vsc2UgaWYoZD09MzMpRD1oLmNoYXJDb2RlQXQoYyksZD04OTtlbHNlIGlmKGQ9PTc0KUk9WixkPTk3O2Vsc2UgaWYoZD09OTQpZD0xMDtlbHNlIGlmKGQ9PTU3KVpbbisrXT1ELGQ9MTM7ZWxzZSBpZihkPT01OCluPWM9RyxaPVtdLGQ9OTQ7ZWxzZSBpZihkPT04KXthOntpZihELkI9KChELkgrPShaPShuPShjfHxELm9vKyssRC5xbz4wJiZELm8mJkQuRTkpJiZELkQ3PD0xJiYhRC5WJiYhRC5TJiYoIWN8fEQuZEotRz4xKSYmZG9jdW1lbnQuaGlkZGVuPT1rLChCPUQub289PTQpfHxuP0QuSigpOkQuY3QpLG09Wi1ELmN0LG0pPj4xND4wLEQpLk4mJihELk49KFQ9RC5OLE49KEQuSCsxPj4yKSoobTw8MiksLSh+VF5OKSsoflQmTikrKFR8fk4pKSksRC5IKzE+PjIhPTB8fEQuQiksQnx8bilELm9vPTAsRC5jdD1aO2lmKCFuKXtJPWs7YnJlYWsgYX1pZigoRC5xbz5ELkUyJiYoRC5FMj1ELnFvKSxaLUQua04pPEQucW8tKGg/MjU1OmM/NToyKSl7ST1rO2JyZWFrIGF9ST0oQygxNDIsKFA9VihjPzE2ODoxNDIsKEQuZEo9RyxEKSksRC5qKSxEKSxELlAucHVzaChbbWMsUCxjP0crMTpHLEQudSxELlddKSx0cnVlKSxELlM9dTl9ZD02NH1lbHNlIGQ9PTE3PyhJPWsmJmsucGFyZW50Tm9kZT9rLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoayk6bnVsbCxkPTkwKTpkPT02ND9kPShSKzReMTApPj1SJiYoUis0XjI1KTxSPzE3OjkwOmQ9PTYxJiYoZD1SPj4xJjE1PzY0OjgpfX0sTG49ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0pe2ZvcihuPTgwO24hPTk1Oyl7aWYobj09MTUpcmV0dXJuIG07bj09Nzg/bj0oaC1rJjcpPT0xPzU1OjgxOm49PTU1Pyh0aGlzLmxpc3RlbmVyPVosdGhpcy5wcm94eT1udWxsLHRoaXMuc3JjPWMsdGhpcy50eXBlPUcsdGhpcy5jYXB0dXJlPSEhRCx0aGlzLlZuPVIsdGhpcy5rZXk9KytJdix0aGlzLmFvPXRoaXMuZlg9ZmFsc2Usbj04MSk6bj09NTY/KG09RyBpbiBUTj9UTltHXTpUTltHXT1SK0csbj0xNSk6bj09Mzg/bj0oaHw0OCk9PWg/NTY6MTU6bj09MTM/KEcucFgoZnVuY3Rpb24oQil7Yz1CfSxSLEQpLG09YyxuPTM4KTpuPT04MT9uPWgtNyY1PzM4OjEzOm49PTgwJiYobj03OCl9fSxCdT1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCLFQsTixQLGQpe2ZvcihQPTI1O1AhPTU2OylpZihQPT00MCltPXRXKDY4LG4pLFA9NDc7ZWxzZSBpZihQPT0zMyluLkkucmVtb3ZlKFN0cmluZyhaKSxELEIsYyksUD05MztlbHNlIGlmKFA9PTQ3KVA9bT82Njo5MztlbHNlIGlmKFA9PTQ0KU49UixQPTE4O2Vsc2UgaWYoUD09NzMpUD0oa3wzMik9PWs/NTk6NDg7ZWxzZXtpZihQPT00OClyZXR1cm4gZDtpZihQPT01MilQPUFycmF5LmlzQXJyYXkoWik/NDQ6MzE7ZWxzZSBpZihQPT01OSlkPUcuY2xhc3NMaXN0P0cuY2xhc3NMaXN0OkFXKDQxLFIsMjYsIiIsRykubWF0Y2goL1xcUysvZyl8fFtdLFA9NDg7ZWxzZSBpZihQPT03MClQPWsrNj4+ND83Mzo5NDtlbHNlIGlmKFA9PTk0KXthOntpZih0eXBlb2YgUj09PSJmdW5jdGlvbiIpe2Q9UjticmVhayBhfWQ9KFJbZFVdfHwoUltkVV09ZnVuY3Rpb24oSSl7cmV0dXJuIFIuaGFuZGxlRXZlbnQoSSl9KSxSW2RVXSl9UD03M31lbHNlIGlmKFA9PTE4KVA9MzA7ZWxzZSBpZihQPT05MylQPShrLTdeMjMpPj1rJiYoays3JjI1KTxrPzc3OjcwO2Vsc2UgaWYoUD09MzcpUD0oa3w5KT4+Mz09Mz81Mjo5MztlbHNlIGlmKFA9PTI1KVA9Mzc7ZWxzZSBpZihQPT01MylQPW4mJm5bZEpdPzMzOjg5O2Vsc2UgaWYoUD09ODkpUD1uPzQwOjkzO2Vsc2UgaWYoUD09ODIpTisrLFA9MzA7ZWxzZSBpZihQPT0zMSlCPU5QKDQsRywxNyxoKT8hIWguY2FwdHVyZTohIWgsRD1CdSg1LEQpLFA9NTM7ZWxzZSBpZihQPT0yMSlCdSgxNywwLCJvYmplY3QiLGgsRCxjLFpbTl0sbiksUD04MjtlbHNlIGlmKFA9PTc3KXtmb3IoWiBpbihEPVIsaCkuWil7Zm9yKGM9KG49aC5aW1pdLFIpO2M8bi5sZW5ndGg7YysrKSsrRCxoVyg4LEcsbltjXSk7ZGVsZXRlIGguWltoLkp4LS0sWl19UD03MH1lbHNlIFA9PTY2PygoVD1tLkNYKFosRCxjLEIpKSYmY1koMzMsbnVsbCw1LCJvbiIsVCksUD05Myk6UD09MzAmJihQPU48Wi5sZW5ndGg/MjE6OTMpfX0sTlA9ZnVuY3Rpb24oayxSLEcsaCxELGMsWil7Zm9yKFo9OTY7WiE9NzM7KWlmKFo9PTU4KVo9KEd8MTYpPT1HPzQ3OjcwO2Vsc2V7aWYoWj09NzApcmV0dXJuIGM7Wj09NjY/Wj0oRysyXjIwKT49RyYmKEcrayY1Nyk8Rz82OTo1ODpaPT00Nz8oRD10eXBlb2YgaCxjPUQ9PVImJmghPW51bGx8fEQ9PSJmdW5jdGlvbiIsWj03MCk6Wj09Njk/KHRoaXMuS2o9UixaPTU4KTpaPT05NiYmKFo9NjYpfX0sY1k9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixUKXtmb3IoQj05NTtCIT0wOylpZihCPT04KXRoaXMubisrLEI9ODE7ZWxzZSBpZihCPT05NylCPW0/ODA6Mzc7ZWxzZSBpZihCPT05NClCPXR5cGVvZiBEIT09Im51bWJlciImJkQmJiFELmZYPzE1OjMyO2Vsc2UgaWYoQj09MTUpYz1ELnNyYyxCPTEzO2Vsc2UgaWYoQj09ODApckooaywwLEQsbSksQj0yNjtlbHNlIGlmKEI9PTI2KUI9bS5KeD09MD82MzozMjtlbHNlIGlmKEI9PTY1KXRoaXMuVC5wdXNoKFIpLEI9MTg7ZWxzZSBpZihCPT0zNyloVyg3LHRydWUsRCksQj0zMjtlbHNlIGlmKEI9PTEzKUI9YyYmY1tkSl0/OTE6Mzk7ZWxzZSBpZihCPT02NyloPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSp0aGlzLm4pLGg8NTAmJih0aGlzLlRbaF09UiksQj0xODtlbHNlIGlmKEI9PTM5KVo9RC50eXBlLG49RC5wcm94eSxjLnJlbW92ZUV2ZW50TGlzdGVuZXI/Yy5yZW1vdmVFdmVudExpc3RlbmVyKFosbixELmNhcHR1cmUpOmMuZGV0YWNoRXZlbnQ/Yy5kZXRhY2hFdmVudChMbigzLGgsWiw1MCksbik6Yy5hZGRMaXN0ZW5lciYmYy5yZW1vdmVMaXN0ZW5lciYmYy5yZW1vdmVMaXN0ZW5lcihuKSxpOS0tLG09dFcoMjEsYyksQj05NztlbHNlIGlmKEI9PTE5KUI9Ry04PDwyPj1HJiZHKzI+PjE8Rz84OjE4O2Vsc2UgaWYoQj09OTEpckooMzIsMCxELGMuSSksQj0zMjtlbHNlIGlmKEI9PTk1KUI9MTk7ZWxzZSBpZihCPT04MSlCPXRoaXMuVC5sZW5ndGg8NTA/NjU6Njc7ZWxzZSBpZihCPT02MyltLnNyYz1SLGNbbDldPVIsQj0zMjtlbHNle2lmKEI9PTMyKXJldHVybiBUO0I9PTE4JiYoQj0oR3wxKT4+Mz8zMjo5NCl9fSxLPWZ1bmN0aW9uKGssUixHLGgsRCl7Zm9yKGg9LX4oayYxKSsoRD1bXSwtMikrKGsmLTIpO2g+PTA7aC0tKURbfihrJjEpLTMqfmsrMip+KGt8MSkrKH5rJjEpLShofDApXT0oRz1SPj5oKjgsLTIqfihHJjI1NSktMSt+RysoRyYtMjU2KSk7aWYoe30pcmV0dXJuIER9LGZyPWZ1bmN0aW9uKCl7cmV0dXJuIFBZLmNhbGwodGhpcywxNCl9LFE9ZnVuY3Rpb24oayxSLEcpe3N3aXRjaCghKFI9PTE0Mnx8Uj09MTY4KSl7Y2FzZSB0cnVlOmlmKGsueW4mJlIhPTM2MylyZXR1cm47Uj09NDg4fHxSPT00Mnx8Uj09MjY0fHxSPT0xNHx8Uj09NTA2fHxSPT00NDZ8fFI9PTE2M3x8Uj09OTV8fFI9PTE5MXx8Uj09MzAyP2suWVtSXXx8KGsuWVtSXT1ZKDIsMzQsayxHLFIsMzgpKTprLllbUl09WSgyLDMzLGssRyxSLDEyOSk7YnJlYWs7Y2FzZSAhW106ay5ZW1JdP2suWVtSXS5jb25jYXQoRyk6ay5ZW1JdPXEoMjEsRyxrKTticmVha31SPT0zNjMmJihrLk49R04oMzIsayxmYWxzZSksay5sPXZvaWQgMCl9LER5PXR5cGVvZiBPYmplY3QuY3JlYXRlPT0iZnVuY3Rpb24iP09iamVjdC5jcmVhdGU6ZnVuY3Rpb24oayl7ZnVuY3Rpb24gUigpe31yZXR1cm4gUi5wcm90b3R5cGU9ayxuZXcgUn0sREQ9ZnVuY3Rpb24oayl7cmV0dXJuIFRvLmNhbGwodGhpcyw1NCxrLDI1KX0samU9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0pe3N3aXRjaCghKEcuQj09Rykpe2Nhc2UgdHJ1ZTowO2JyZWFrO2Nhc2UgISFudWxsOnttPWIoRyxrKSxrPT00Mnx8az09MTkxfHxrPT0xND8oRD1mdW5jdGlvbihCLFQsTixQLGQsSSxTLFgpe2ZvcihJPShYPTE4LDg5KTs7KXRyeXtpZihYPT0zMylicmVhaztlbHNlIGlmKFg9PTU3KW0ucHVzaChtLkdmWy0oVHw3KS0yKn4oVHw3KSsoVHwtOCkrKH5UfDcpXV5CKSxYPTMzO2Vsc2V7aWYoWD09MzkpdGhyb3cgST04OSxTO1g9PTUwP1g9bS5tQiE9Tj81NDo1NzpYPT02OD8oST0zNixtLkdmPXloKDE2LHEoNTAsOCwtMS0yKn4oUHw0KSsoflBeNCksbSksMjU1LHEoMTgsOCxQLG0pLGQpLFg9NTcpOlg9PTU0PyhQPShOPDwzKS00LGQ9WzAsMCxjWzFdLGNbMl1dLG0ubUI9TixYPTY4KTpYPT0xOCYmKFQ9bS5sZW5ndGgsTj0oVHwwKS00Pj4zLFg9NTApfX1jYXRjaChNKXtpZihJPT04OSl0aHJvdyBNO0k9PTM2JiYoUz1NLFg9MzkpfX0sYz1WKDk1LEcpKTpEPWZ1bmN0aW9uKEIpe20ucHVzaChCKX0saCYmRCgoaHwwKS0gLTUxMisyKn4oaHwyNTUpKyhoJi0yNTYpKSxuPVIubGVuZ3RoLFo9MDt3aGlsZShaPG4pRChSW1pdKSxaKyt9YnJlYWt9fSxQZD1mdW5jdGlvbihrKXtyZXR1cm4gTlQuY2FsbCh0aGlzLGssMTYpfSxoMD1mdW5jdGlvbihrLFIsRyxoLEQsYyl7cmV0dXJuIE9SLmNhbGwodGhpcywxMiw2LGssUixHLGgsRCxjKX0sYjk9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuKXtyZXR1cm4gQlkuY2FsbCh0aGlzLGssOCxSLEcsaCxELGMsWixuKX0sak09ZnVuY3Rpb24oayl7cmV0dXJuIEtuLmNhbGwodGhpcywwLDEsOCxrKX0sUnY9ZnVuY3Rpb24oayl7cmV0dXJuIGsuVj9rZihrLGsuRyk6R04oOCxrLHRydWUpfSx5aD1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4pe1o9KGM9MCxEWzNdfDApO3tuPURbMl18MDt3aGlsZShjPGspUj1SPj4+OHxSPDwyNCxSKz1ofDAsWj1aPj4+OHxaPDwyNCxoPWg8PDN8aD4+PjI5LForPW58MCxSXj1uKzY1OSxuPW48PDN8bj4+PjI5LGhePVIsWl49Yys2NTksbl49WixjKyt9cmV0dXJuW2g+Pj4yNCZHLGg+Pj5rJkcsaD4+PjgmRyxoPj4+MCZHLFI+Pj4yNCZHLFI+Pj5rJkcsUj4+PjgmRyxSPj4+MCZHXX0sY2Q9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4pe0I9KGMuSnM9dFcoNzcsKGMuQ2o9Y1tBb10sYy5nSj14ZixjLllEPUpvLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25jYXQoKX19KSxjLlIpLGMudlY9eWZbYy5SXShjLkpzLHt2YWx1ZTp7dmFsdWU6e319fSksMCk7e049W107d2hpbGUoQjwzODMpTltCXT1TdHJpbmcuZnJvbUNoYXJDb2RlKEIpLEIrK31pZihjLlJhPShjLmN0PShjLkI9KGMuRno9W10sYy5WVD1mdW5jdGlvbihQKXtyZXR1cm4gb0IuY2FsbCh0aGlzLDEzLDEyLFApfSwoYy5FMj0oYy5QPVtdLDApLGMuWT1bXSxjLlc9ZmFsc2UsYy53Yj1bXSxjKS5OPShjLks9KGMuRz12b2lkIDAsYy5Eaz1bXSx2b2lkIDApLFQ9d2luZG93LnBlcmZvcm1hbmNlfHx7fSx2b2lkIDApLGMpLDApLFQudGltZU9yaWdpbil8fChULnRpbWluZ3x8e30pLm5hdmlnYXRpb25TdGFydHx8MCx0cnVlKWMud0o9dm9pZCAwO2MudT0oYy55VD0oKGMuVGU9RyxjLmRKPTMwMDAxLGMpLkQ3PTAsKGMuWD0wLGMpLnZ0PShjLm89ZmFsc2UsYy5CVj0oYy5PXz1ELG0pLFtdKSwwKSxmYWxzZSk7d2hpbGUoLTA9PT0wKWlmKChjLnM5PTI1LFtdKSE9dHJ1ZSlicmVhaztpZihjLnluPSEoYy5TbT0oKGMuVTk9W10sYy5sPXZvaWQgMCxjLlM9bnVsbCxjLnVYPShjLkJ3PTAsYy5xbz0wLGMuaj0wLFtdKSxjLlY9dm9pZCAwLGMuSHQ9IShjLkU5PWZhbHNlLGMub289dm9pZCAwLDEpLGMpLmtOPShjLlRmPTAsYy5IPTEsYy5XdD12b2lkIDAsMCksW10pLDEpLFomJloubGVuZ3RoPT0yJiYoYy5Eaz1aWzFdLGMuVTk9WlswXSksUil0cnl7Yy5XdD1KU09OLnBhcnNlKFIpfWNhdGNoKFApe2MuV3Q9e319ZigoZigyNixmdW5jdGlvbihQLGQsSSxTLFgpe3tYPTA7d2hpbGUoWCE9NjYpWD09ODg/KEk9cSgyNSxQKSxTPVkoUCw3MyksUShQLFMsZnVuY3Rpb24oTSl7cmV0dXJuIGV2YWwoTSl9KHpOKFYoSSxQLkIpKSkpLFg9NjYpOlg9PTAmJihYPU5UKGZhbHNlLDMyLGQsZmFsc2UsUCx0cnVlKT82Njo4OCl9fSwoKGYoKGYoMTYsZnVuY3Rpb24oUCl7a2ooMyxQKX0sKEMoMTQsKGYoKEEoMjY0LChmKDIzLChmKDIwLCgoZigxNywoZigyNywoZigxOCwoKGYoMjEsZnVuY3Rpb24oKXt9LDMyMywoZigyMCwoZigyMyxmdW5jdGlvbihQLGQsSSxTKXtBKChJPShTPShkPXEoNzEsUCksUnYpKFApLFkoUCw3NykpLEkpLFAsVyhQLGQpPj4+Uyl9LChDKDQyLChBKDE1NixjLChRKGMsKFEoYyw0ODgsKEEoMTkxLGMsKEMoOTUsKEMoNTUsKGYoMjUsKEMoNTA2LFtdLCgoQSgoZigxMyxmdW5jdGlvbihQLGQsSSxTLFgpe2ZvcihYPTU1O1ghPTQyOylYPT0zNz8oZC0tLFg9OTIpOlg9PTkyP1g9ZD4wPzkzOjk3Olg9PTU1PyhJPVAuRnoucG9wKCksWD0yOSk6WD09ODc/KFEoUCwxNDIsUC5qKSxYPTQyKTpYPT03MD9YPTkyOlg9PTk3PyhJWzUwNl09UC5ZWzUwNl0sSVszMDJdPVAuWVszMDJdLFAuWT1JLFg9NDIpOlg9PTI5P1g9ST82Nzo4NzpYPT05Mz8oUz1xKDI1LFApLElbU109UC5ZW1NdLFg9MzcpOlg9PTY3JiYoZD1SdihQKSxYPTcwKX0sKGMud049KChmKDE3LGZ1bmN0aW9uKFAsZCxJLFMsWCxNKXtmb3IoTT03MTtNIT00MDspTT09NzE/TT1OVChmYWxzZSw2NCxkLGZhbHNlLFAsdHJ1ZSk/NDA6OTc6TT09NDg/TT1QLkI9PVB8fEk9PVAuVlQmJlM9PVA/MTk6NDA6TT09OTc/KFg9cVQoNzEsNzQsUCwwLDEpLFM9WC5rZSxJPVguUFYsTT00OCk6TT09MTkmJihBKFgucW0sUCxJLmFwcGx5KFMsWC5MKSksUC5jdD1QLkooKSxNPTQwKX0sKGYoKGYoKChBKDE1NyxjLChmKChmKDI1LChDKDE2OCwoQSgxNDIsYywoZigoZigxOCwoZigyMixmdW5jdGlvbihQLGQsSSxTLFgsTSxyLGwsdyl7Zm9yKHc9MjQ7dyE9ODY7KXc9PTQ/KFEoUCxyLEkpLHc9ODYpOnc9PTQ0PyhkPShNPXEoMTIsNyxQKSwtMip+KGR8TSkrKGR8fk0pKyh+ZHxNKSklbCxJLnB1c2goU1tkXSksdz0yOSk6dz09MjQ/KHI9WShQLDc3KSxYPXEoMTEsNyxQKSxJPVtdLFM9VyhQLDM5MyksZD0wLGw9Uy5sZW5ndGgsdz03MCk6dz09MjM/dz1YLS0/NDQ6NDp3PT0yOT93PTIzOnc9PTcwJiYodz0yMyl9LDMxMSxjKSxmdW5jdGlvbihQLGQsSSxTLFgsTSxyLGwsdyl7Zm9yKHc9NjY7dyE9MzU7KXc9PTYwP3c9bDxkLmxlbmd0aD83MjoyODp3PT03Mj8oWCs9U3RyaW5nLmZyb21DaGFyQ29kZShkW2xdXjEyMSksdz00Myk6dz09NDM/KGwrKyx3PTYwKTp3PT04ND93PTYwOnc9PTY2PyhJPXEoODksUCkscj1xKDcyLFApLE09WShQLDc3KSxkPVcoUCxyKSxTPWIoUCxJKSxsPTAsWD0iIix3PTg0KTp3PT0yOCYmKEMoTSxTW1hdLFApLHc9MzUpfSksMTM2LGMpLDI3KSxmdW5jdGlvbihQLGQsSSxTLFgsTSxyLGwsdyxFKXt7RT04NDt3aGlsZShFIT0xNClFPT0yND8oTSs9U3RyaW5nLmZyb21DaGFyQ29kZSgoUz1kW3ddLDMqfihTJjEyMSktMip+Uy0gLTI0NCt+KFN8MTIxKSkpLEU9OTMpOkU9PTkzPyh3KyssRT0xOSk6RT09ODQ/KFg9WShQLDc0KSxJPVkoUCw3NCkscj1ZKFAsNzIpLGw9VyhQLEkpLGQ9VyhQLFgpLE09IiIsdz0wLEU9NDIpOkU9PTM0PyhBKHIsUCxNIGluIGx8MCksRT0xNCk6RT09MTk/RT13PGQubGVuZ3RoPzI0OjM0OkU9PTQyJiYoRT0xOSl9fSwyMjEsYyksMCkpLDApLGMpLGZ1bmN0aW9uKFAsZCxJKXtkPVkoKEk9WShQLDc2KSxQKSw3NiksQShkLFAsIiIrVyhQLEkpKX0pLDEwNixjKSwyMiksZnVuY3Rpb24oUCxkLEksUyxYLE0pe3tNPTM4O3doaWxlKE0hPTk3KU09PTE5PyhYKyssTT02OCk6TT09OD8oQShTLFAsZCksTT05Nyk6TT09Njg/TT1YPEk/MjY6ODpNPT04NT9NPTY4Ok09PTM4PyhTPXEoNjcsUCksST1xKDksNyxQKSxYPTAsZD1bXSxNPTg1KTpNPT0yNiYmKGQucHVzaChSdihQKSksTT0xOSl9fSwzMzUsYykse30pKSxjKS54ZT0wLDE2KSxmdW5jdGlvbihQLGQsSSxTLFgsTSxyKXtmb3Iocj05NDtyIT04OTspaWYocj09NjEpcj1YPFAudnQubGVuZ3RoPzc0Ojk4O2Vsc2UgaWYocj09OTQpe2ZvcihJIGluIGRlbGV0ZSAoZD0oUz1SdihQKSxXKShQLDU1KSxkKVtTXSxkKWlmKEkhPT0idCImJk9iamVjdC5oYXNPd24oZCxJKSlyZXR1cm47cj0oWD0wLDQ0KX1lbHNlIHI9PTY5PyhYKysscj02MSk6cj09ODU/KEguY2xlYXJUaW1lb3V0KE0uSWEpLGEoNDYsTS5RVCxQKSxhKDQ1LE0uYWEsUCkscj02OSk6cj09Nzg/cj1NLk1tPzY5Ojg1OnI9PTk4PyhQLnZ0Lmxlbmd0aD0wLHI9ODkpOnI9PTc0PyhNPVAudnRbWF0scj03OCk6cj09NDQmJihyPTYxKX0sMzI5LGMpLDI0KSxmdW5jdGlvbihQLGQsSSl7KGQ9YigoST1ZKFAsNzUpLFAuQiksSSksZFswXSkucmVtb3ZlRXZlbnRMaXN0ZW5lcihkWzFdLGRbMl0sb3YpfSwxMzcsYyksMzEwKSxjKSxuZXcgZ1UoIlN1Ym1pdCIpKS5kaXNwb3NlKCksMCksMzI3KSxjKSw0MSksYywxODMpLGYpKDE2LGZ1bmN0aW9uKFApe3VOKDQsUCl9LDEzNCxjKSxjKSksZnVuY3Rpb24oUCxkLEksUyxYLE0scixsLHcsRSxGLCRuLEdvLEosdil7Zm9yKHY9MDt2IT0yNzspaWYodj09NjkpRT1yLmxlbmd0aCxGPUY+MD9GOjEsdz0wLHY9MTE7ZWxzZSBpZih2PT04NSl2PXc8RT83OjI3O2Vsc2UgaWYodj09NjYpbD1xKDczLFApLCRuPXEoNzYsUCksR289cSg0OSxQKSxJPXEoNTcsUCksUz1XKFAsJG4pLHI9VyhQLGwpLE09VihJLFApLEY9VihHbyxQKSx2PTM3O2Vsc2UgaWYodj09Mzcpdj1YWCgiYXJyYXkiLHIsIm51bGwiKT09Im9iamVjdCI/OTA6Nzk7ZWxzZSBpZih2PT0wKXY9TlQoZmFsc2UsMzIsZCx0cnVlLFAsdHJ1ZSk/Mjc6NjY7ZWxzZSBpZih2PT03KVMoci5zbGljZSh3LCh3fDApKyhGfDApKSxNKSx2PTU5O2Vsc2UgaWYodj09MTEpdj04NTtlbHNlIGlmKHY9PTkwKXtmb3IoWCBpbiBKPVtdLHIpSi5wdXNoKFgpO3Y9KHI9Siw3OSl9ZWxzZSB2PT03OT92PVAuQj09UD82OToyNzp2PT01OSYmKHcrPUYsdj04NSl9KSw3MyxjKSx7fSksYyksWzAsMCwwXSksYyksWWYoNCkpKSxbNTcsMCwwXSkpLDE2MyksW10pLEgpKSxZZig0KSksYyksNDU0KSxjKSxmdW5jdGlvbihQLGQsSSxTLFgpe0EoKGQ9WFgoImFycmF5IiwoST1iKFAsKFM9cSgxNywoWD1ZKFAsNzQpLFApKSxYKSksSSksIm51bGwiKSxTKSxQLGQpfSksNDQxLGMpLGMpKSxRKShjLDQ1OCwwKSxmdW5jdGlvbihQLGQsSSxTLFgsTSxyLGwpe3tsPTY5O3doaWxlKGwhPTIyKWw9PTQ2PyhQLk49R04oMzIsUCxmYWxzZSksUC5sPXZvaWQgMCxsPTIyKTpsPT0xNz9sPVg9PTM2Mz80ODoyMjpsPT02ND9sPUk9PTI/NDY6MjI6bD09NDA/bD1QLkI9PVA/OTA6MjI6bD09NDg/KFAubD12b2lkIDAsbD02NCk6bD09OTA/KHI9YihQLFgpLFM9YihQLE0pLEk9VyhQLGQpLHJbSV09UyxsPTE3KTpsPT02OSYmKFg9WShQLDczKSxkPXEoODksUCksTT1xKDc4LFApLGw9NDApfX0pLDY3LGMpLGZ1bmN0aW9uKFAsZCxJLFMsWCxNLHIsbCx3LEUpe2ZvcihFPTM7RSE9MTM7KUU9PTk3PyhYPXFUKDcxLDc0LFAuQiwwLDEpLE09WC5MLHc9WC5xbSxTPVguUFYsST1YLmtlLHI9TS5sZW5ndGgsbD1yPT0wP25ldyBJW1NdOnI9PTE/bmV3IElbU10oTVswXSk6cj09Mj9uZXcgSVtTXShNWzBdLE1bMV0pOnI9PTM/bmV3IElbU10oTVswXSxNWzFdLE1bMl0pOnI9PTQ/bmV3IElbU10oTVswXSxNWzFdLE1bMl0sTVszXSk6MigpLFEoUCx3LGwpLEU9MTMpOkU9PTMmJihFPU5UKGZhbHNlLDY1LGQsZmFsc2UsUCx0cnVlKT8xMzo5Nyl9KSwxMjcsYyksZnVuY3Rpb24oUCxkKXtwcigoZD1XKFAsWShQLDc2KSksNTA2KSwwLDE0MixkLDEwNCxQLkIpfSksMzEzLGMpLGYpKDE4LGZ1bmN0aW9uKFApe3VOKDEsUCl9LDEyMSxjKSxmdW5jdGlvbihQLGQsSSxTLFgsTSl7KEk9KGQ9KE09WShQLChYPXEoKFM9cSg3OSxQKSw2NyksUCksNzIpKSxiKShQLFgpLFYoUyxQKSksQykoTSxJW2RdLFApfSksMjEyLGMpLGYoMTUsZnVuY3Rpb24oUCxkLEksUyxYLE0scixsLHcsRSxGKXtmb3IoRj04MztGIT0yNDspRj09Nzg/KFg9WShmYWxzZSwxNiwyLE0sMSxyLFAsRSx3KSxFLmFkZEV2ZW50TGlzdGVuZXIodyxYLG92KSxWKDcxLFApLnB1c2goZnVuY3Rpb24oKXtFLnJlbW92ZUV2ZW50TGlzdGVuZXIodyxYLG92KX0pLEMoNDU4LFtFLHcsWF0sUCksRj0yNCk6Rj09ODM/KGw9cSg0OSxQKSxTPXEoNzQsUCksZD1xKDU3LFApLEk9cSg3MCxQKSx3PVcoUCxTKSxNPWIoUCxJKSxyPVYoZCxQKSxFPVYobCxQLkIpLEY9MzQpOkY9PTM0JiYoRj1FIT09MD83ODoyNCl9LDQ5MyxjKSxmdW5jdGlvbihQLGQsSSxTKXtRKFAsKGQ9cSg3NSwoST1xKDc3LChTPVkoUCw3MiksUCkpLFApKSxkKSxiKFAsUyl8fFcoUCxJKSl9KSwxMTEsYyksYyksW10pLDE5KSxmdW5jdGlvbihQKXtraig0LFApfSw1MDAsYyksWWYoNCkpLGMpLDM2NCksYyksMTMpLGZ1bmN0aW9uKFAsZCxJLFMsWCxNKXtBKChkPShJPWIoUCwoTT1xKDQ5LChTPVkoUCwoWD1xKDE3LFApLDcyKSksUCkpLFgpKSxWKShTLFApLE0pLFAsKyhJPT1kKSl9LDQzMixjKSxjKS5aaj0wLDUwNCksYyksMTUpLGZ1bmN0aW9uKFAsZCxJLFMsWCxNLHIsbCl7aWYoMD09IShJPShyPVcoKE09WShQLChYPVkoUCwobD1ZKChTPVkoUCw3NiksUCksNzMpLDcyKSksNzUpKSxQKSxsKSxXKFAsTSkpLFt0cnVlLnRydWVdKSlkPVYoWCxQKTtDKFMsWShmYWxzZSwxNywyLGQsSSxyLFApLFApfSw4MCxjKTt3aGlsZSghW10hPSh0cnVlPT1bXSE9bnVsbCkpaWYoZigyNixmdW5jdGlvbihQLGQsSSxTLFgsTSl7KFg9YihQLChkPShTPXEoKEk9cSg2OCwoTT1xKDgwLFApLFApKSw3MCksUCksYihQLEkpKSxNKSksQykoUyxYIGluIGR8MCxQKX0sMzcsYyksIWZhbHNlPT0hIiIpYnJlYWs7UkIoMjYsZmFsc2UsYywoYSg0NywoYSg0MSwoQSg3MSwoKEEoMzAyLGMsWyhmKDE1LGZ1bmN0aW9uKFAsZCxJLFMpe1YoKGQ9YihQLChJPXEoNjgsUCksUz1ZKFAsNzMpLFMpKSxJKSxQKSE9MCYmQygxNDIsZCxQKX0sKFEoYyw0NDYsKGYoMTMsZnVuY3Rpb24oUCl7WSg4LDU0LFAsNCl9LDc0LChRKChmKDE3LGZ1bmN0aW9uKFAsZCxJLFMsWCxNLHIsbCx3LEUsRiwkbixHbyxKLHYsTyx5LHdKKXt7eT0xMzt3aGlsZSh5IT00MCl5PT0wP3k9ODp5PT0yMD8oZigyMSxmdW5jdGlvbih6LFB1LG03LGcsZU0sTCl7Zm9yKEw9NDI7TCE9NzU7KUw9PTIxPyhQdS5wdXNoKG03KSxMPTQ4KTpMPT0zOD8oZy5wdXNoKHEoMjUseikpLEw9OTgpOkw9PTUzP0w9bTc+PWcubGVuZ3RoPzM4OjI1Okw9PTI1PyhtNz1nW203XSxMPTIxKTpMPT02Nj8oei5WPXEoNTMsUy5zbGljZSgpLHopLHouRz1xKDUsUHUseiksTD03NSk6TD09MTE/KG03PU1bZU1dLEw9MTUpOkw9PTQ4PyhlTSsrLEw9NjApOkw9PTQyPyhlTT0wLFB1PVtdLGc9W10sTD05OSk6TD09MTU/TD1PW2VNXT8yMTo2ODpMPT05OD9MPTUzOkw9PTYwP0w9ZU08Sj8xMTo2NjpMPT05OT9MPTYwOkw9PTY4JiYoTD01Myl9LHIsUCkseT00MCk6eT09Mjc/KHc9MCx5PTE1KTp5PT01Mj8oT1tJXXx8KE1bSV09d0ooRikpLHk9NDYpOnk9PTI1PyhGPSgoR298MSkrfihHb3wxKS0ofkdvXjEpLTIqKH5HbyYxKSkudG9TdHJpbmcoMikubGVuZ3RoLE09W10sST0wLHk9Nik6eT09NDk/KFMucHVzaChWKFkoUCw3NSksUCkpLHk9MzMpOnk9PTQ2PyhJKysseT04Nik6eT09MTM/KHdKPWZ1bmN0aW9uKHosUHUpe2Zvcig7RTx6Oyl2fD1SdihQKTw8RSxFKz04O3JldHVybiB2Pj49KFB1PShFLT16LHYmKDE8PHopLTEpLHopLFB1fSxyPVkoUCw3NSksdj1FPTAsWD0od0ooMyl8MCkrMSxKPXdKKDUpLE89W10seT1Hbz1sPTApOnk9PTg2P3k9STxKPzUyOjI3Onk9PTY1Pyh3KysseT04Myk6eT09MzM/eT00Nzp5PT02P3k9ODY6eT09NTA/KE9bd10mJihNW3ddPVkoUCw3MikpLHk9NjUpOnk9PTcxPygkbj13SigxKSxPLnB1c2goJG4pLEdvKz0kbj8wOjEseT03Nik6eT09NDc/eT1kLS0/NDk6MjA6eT09OD95PWw8Sj83MToyNTp5PT04Mz95PXc8Sj81MDo2OTp5PT03Nj8obCsrLHk9OCk6eT09Njk/KGQ9WCxTPVtdLHk9NjYpOnk9PTE1P3k9ODM6eT09NjYmJih5PTQ3KX19LDMwMCwoZigoQygxMDMsMCxjKSwyNCksZnVuY3Rpb24oUCxkLEksUyxYLE0scixsLHcpe2Zvcih3PTkxO3chPTQ3Oyl3PT04MT8oZD0oTT1xKDgsNyxQKSwyKihkJk0pK34oZCZNKS1+KGR8TSkpJVMscis9TltsW2RdXSx3PTI1KTp3PT01MD93PTgzOnc9PTEyPyhBKFgsUCxyKSx3PTQ3KTp3PT05MT8oWD1ZKFAsNzUpLEk9cSgxMCw3LFApLHI9IiIsbD1XKFAsMzkzKSxTPWwubGVuZ3RoLGQ9MCx3PTUwKTp3PT04Mz93PUktLT84MToxMjp3PT0yNSYmKHc9ODMpfSw1MSxjKSxjKSksYyksMzksYyksYykpLFtdKSksMTcxKSxjKSwyMDQ4KV0pLGYpKDE5LGZ1bmN0aW9uKFAsZCxJLFMsWCl7USgoWD0oZD0oUz1xKDI1LChJPVkoUCw3NiksUCkpLGIpKFAsUyksVihJLFApKSxQKSxTLGQrWCl9LDEwNCxjKSxjKSxbXSksaHx8YSg1NixbeG5dLGMpLFtHdCxrXSksYyksW1JZLG5dKSxjKSx0cnVlKSx0cnVlKX0sVmg9ZnVuY3Rpb24oayxSKXtyZXR1cm4gem8uY2FsbCh0aGlzLDIxLDc5LDI0LGssUil9LGtmPWZ1bmN0aW9uKGssUixHKXtyZXR1cm4oRz1SLmNyZWF0ZSgpLnNoaWZ0KCksay5WLmNyZWF0ZSgpLmxlbmd0aHx8ay5HLmNyZWF0ZSgpLmxlbmd0aCl8fChrLkc9dm9pZCAwLGsuVj12b2lkIDApLEd9LHFQPWZ1bmN0aW9uKGspe2Zvcih2YXIgUj04NztSIT0yOTspaWYoUj09MzIpRCs9ZW5jb2RlVVJJQ29tcG9uZW50KEdbaF0pK2tbaCsxXSxSPTM1O2Vsc2V7aWYoUj09MTgpcmV0dXJuIGUoMzYsbnVsbCxEKTtpZihSPT04Nyl2YXIgRz1Lci5hcHBseSgxLChSPTkzLGFyZ3VtZW50cykpO2Vsc2UgaWYoUj09MzUpaCsrLFI9NDY7ZWxzZSBpZihSPT04Myl2YXIgaD0oUj00LDApLEQ9a1swXTtlbHNlIGlmKFI9PTkzKVI9Ry5sZW5ndGg9PT0wPzUxOjgzO2Vsc2UgaWYoUj09NClSPTQ2O2Vsc2UgaWYoUj09NDYpUj1oPEcubGVuZ3RoPzMyOjE4O2Vsc2UgaWYoUj09NTEpcmV0dXJuIGUoMzUsbnVsbCxrWzBdKX19LFdZPWZ1bmN0aW9uKGssUixHLGgsRCl7cmV0dXJuIE1QLmNhbGwodGhpcywyMixrLFIsRyxoLEQpfSxubj1mdW5jdGlvbigpe3JldHVybiBmLmNhbGwodGhpcywzKX0sYUI9ZnVuY3Rpb24oayxSKXtyZXR1cm4gQVcuY2FsbCh0aGlzLDQxLGssOCxSKX0sWWY9ZnVuY3Rpb24oayxSLEcpe2ZvcihHPTE5O0chPTY4OylpZihHPT03OSlSLnB1c2goTWF0aC5yYW5kb20oKSoyNTV8MCksRz0xNTtlbHNlIGlmKEc9PTE5KVI9W10sRz05NztlbHNlIGlmKEc9PTk3KUc9MzA7ZWxzZSBpZihHPT0xNSlHPTMwO2Vsc2UgaWYoRz09MzApRz1rLS0/Nzk6NzE7ZWxzZSBpZihHPT03MSlyZXR1cm4gUn0sZWU9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4sUCxkLEksUyl7Zm9yKFo9KEI9KFQ9KEk9ay5yZXBsYWNlKC9cXHJcXG4vZywiXFxuIiksW10pLDApLDApO1o8SS5sZW5ndGg7WisrKUQ9SS5jaGFyQ29kZUF0KFopLEQ8Uj9UW0IrK109RDooRDwyMDQ4P1RbQisrXT0oYz1EPj42LC1+KGMmMTkyKSsyKihjXjE5MiktKH5jJjE5MikrKH5jfDE5MikpOigoRCY2NDUxMik9PTU1Mjk2JiZaKzE8SS5sZW5ndGgmJihJLmNoYXJDb2RlQXQoWisxKSY2NDUxMik9PTU2MzIwPyhEPShtPShEJjEwMjMpPDwxMCwyKig2NTUzNiZtKSsoNjU1MzYmfm0pLSgtNjU1MzdebSkrKC02NTUzN3xtKSkrKGg9SS5jaGFyQ29kZUF0KCsrWiksKGh8MCktfihoJjEwMjMpK35oKSxUW0IrK109KGQ9RD4+MTgsMjQwKyhkJjI0MCkrLTI0MS0ofmReMjQwKSksVFtCKytdPShHPShQPUQ+PjEyLDYzLSh+UCY2MykpLDEyNy0ofkd8UikpKTpUW0IrK109KFM9RD4+MTIsMjIzLSh+U3wyMjQpKSxUW0IrK109KG49KE49RD4+Niwtfk4rKH5OXjYzKSsofk4mNjMpKSxSLSh+bl5SKSsobnwtMTI5KSkpLFRbQisrXT02My1+RCt+KER8NjMpfFIpO3JldHVybiBUfSxXPWZ1bmN0aW9uKGssUixHKXtHPWsuWVtSXTtmb3IoTmFOO0c9PT12b2lkIDA7ZmFsc2Upe3Rocm93W3dVLDMwLFJdO2lmKHRydWUpYnJlYWt9aWYoRy52YWx1ZSlyZXR1cm4gRy5jcmVhdGUoKTtyZXR1cm4oRy5jcmVhdGUoUioyKlIrLTMxKlIrNTgpLEcpLnByb3RvdHlwZX0sTHI9ZnVuY3Rpb24oayxSLEcsaCxEKXtyZXR1cm4gTlQuY2FsbCh0aGlzLGssNSxSLEcsaCxEKX0sa2o9ZnVuY3Rpb24oayxSLEcsaCxELGMsWil7KCgoRz1iKFIsKFo9WShSLChjPVkoUiwoRD0oa3w0KS1+aysoaD1rJjMsfihrfDQpKS0oayYtNSksNzMpKSw3NykpLGMpKSxEKSYmKEc9ZWUoIiIrRywxMjgpKSxoKSYmamUoWixLKDIsRy5sZW5ndGgpLFIpLGplKShaLEcsUil9LGlOPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtLEIsVCxOKXsoUi5wdXNoKChjPWtbMF08PDI0fGtbMV08PDE2LG49a1syXTw8OCwtfihjJm4pKy0yLSh+Y15uKSl8a1szXSksUi5wdXNoKChaPShoPWtbNF08PDI0fGtbNV08PDE2LE49a1s2XTw8OCwtMi1+Ti0ofmh8TikpLEQ9a1s3XSwyKihEfDApLTIqKFomRCktflorKFp8fkQpKSksUikucHVzaCgoVD0oQj1rWzhdPDwyNHxrWzldPDwxNixtPWtbMTBdPDw4LC1+KEImbSkrMiooQl5tKSsofkJebSkpLEc9a1sxMV0sLTEtflQrKH5UJkcpKSl9LGxOPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtLEIpe3N3aXRjaCghKGguQj09aCkpe2Nhc2UgdHJ1ZTpmYWxzZTticmVhaztjYXNlICFbIiJdIT0wOntaPWIoaCxrKSxrPT00Mnx8az09MTkxfHxrPT0xND8obT1mdW5jdGlvbihULE4sUCxkLEksUyxYLE0pe2ZvcihYPShTPTgsOTcpOzspdHJ5e2lmKFM9PTU1KWJyZWFrO2Vsc2UgaWYoUz09NzYpWD0zMyxaLkdmPXloKDE2LHEoMzQsOCwtMS0yKn4oSXw0KSsofkleNCksWiksMjU1LHEoNjYsOCxJLFopLGQpLFM9NzA7ZWxzZXtpZihTPT02Mil0aHJvdyBYPTk3LE07Uz09NzA/KFoucHVzaChaLkdmWy0oTnxHKS0yKn4oTnxHKSsoTnwtOCkrKH5OfEcpXV5UKSxTPTU1KTpTPT05MD9TPVoubUIhPVA/Mjk6NzA6Uz09OD8oTj1aLmxlbmd0aCxQPShOfDApLTQ+PjMsUz05MCk6Uz09MjkmJihJPShQPDwzKS00LGQ9WzAsMCxCWzFdLEJbMl1dLFoubUI9UCxTPTc2KX19Y2F0Y2gocil7aWYoWD09OTcpdGhyb3cgcjtYPT0zMyYmKE09cixTPTYyKX19LEI9Vig5NSxoKSk6bT1mdW5jdGlvbihUKXtaLnB1c2goVCl9LEQmJm0oKER8MCktIC01MTIrMip+KER8MjU1KSsoRCYtMjU2KSksYz1SLmxlbmd0aCxuPTA7d2hpbGUobjxjKW0oUltuXSksbisrfWJyZWFrfX0sQz1mdW5jdGlvbihrLFIsRyl7c3dpdGNoKCEoaz09MTQyfHxrPT0xNjgpKXtjYXNlIHRydWU6d2hpbGUoRy55biYmayE9MzYzKXtyZXR1cm47aWYoZmFsc2U9PTApYnJlYWt9az09NDg4fHxrPT00Mnx8az09MjY0fHxrPT0xNHx8az09NTA2fHxrPT00NDZ8fGs9PTE2M3x8az09OTV8fGs9PTE5MXx8az09MzAyP0cuWVtrXXx8KEcuWVtrXT1ZKDIsMzIsRyxSLGssMzgpKTpHLllba109WSgyLDM1LEcsUixrLDEyOSk7YnJlYWs7Y2FzZSBmYWxzZTpHLllba10/Ry5ZW2tdLmNvbmNhdChSKTpHLllba109cSg4NSxSLEcpO2JyZWFrfWs9PTM2MyYmKEcuTj1HTigzMixHLGZhbHNlKSxHLmw9dm9pZCAwKX0scVQ9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQil7Yz0oWj0oKG49cSgobT1HW3ZZXXx8e30sayksRyksbS5xbT1xKDE3LEcpLG0pLkw9W10sRykuQj09Rz8oUnYoRyl8aCktRDoxLFkoRyxSKSk7e0I9aDt3aGlsZShCPFopbS5MLnB1c2gocSg0OSxHKSksQisrfWZvcihtLlBWPWIoRyxuKTtaLS07KW0uTFtaXT1iKEcsbS5MW1pdKTtyZXR1cm4gbS5rZT1iKEcsYyksbX0sV3U9ZnVuY3Rpb24oKXtyZXR1cm4gckouY2FsbCh0aGlzLDUpfSxRaD1mdW5jdGlvbihrLFIsRyxoLEQsYyl7cmV0dXJuIFcoRCwoQygxNDIsKGJOKDU3LGgsKChjPVcoRCwxNDIpLEQud2ImJmM8RC5qKT8oUShELDE0MixELmopLHByKDUwNixrLDE0MixSLDEwNCxEKSk6QygxNDIsUixEKSxEKSw0MSksYyksRCksRykpfSxGWD1mdW5jdGlvbigpe3JldHVybiBNUC5jYWxsKHRoaXMsMjApfSxYWD1mdW5jdGlvbihrLFIsRyxoLEQpe0Q9dHlwZW9mIFI7c3dpdGNoKCEoRD09Im9iamVjdCIpKXtjYXNlIE5hTiE9PU51bWJlcih1bmRlZmluZWQpOmZvcihbXSE9KCFbIiJdPT1OdW1iZXIoKSk7RD09ImZ1bmN0aW9uIiYmdHlwZW9mIFIuY2FsbD09InVuZGVmaW5lZCI7MCl7cmV0dXJuIm9iamVjdCI7aWYoIkYiKWJyZWFrfWJyZWFrO2Nhc2UgbnVsbD09KG51bGw9PWZhbHNlKTpzd2l0Y2goIVIpe2Nhc2UgIVtdPT0wOnJldHVybiBHO2JyZWFrO2Nhc2UgIVt1bmRlZmluZWRdIT0wOmlmKFIgaW5zdGFuY2VvZiBBcnJheSlyZXR1cm4gaztzd2l0Y2goIShSIGluc3RhbmNlb2YgT2JqZWN0KSl7Y2FzZSB0cnVlOltdIT0odHJ1ZSE9W10pO2JyZWFrO2Nhc2UgIVtdPT0oLTA9PT0wKTpyZXR1cm4gRDticmVha31oPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSKTtmb3IoZmFsc2U7aD09IltvYmplY3QgV2luZG93XSI7ZmFsc2Upe3JldHVybiJvYmplY3QiO2lmKFtdPT0oIWZhbHNlPT0hIiIpIT1udWxsKWJyZWFrfWZvcihOdW1iZXIoKTtoPT0iW29iamVjdCBBcnJheV0ifHx0eXBlb2YgUi5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2YgUi5zcGxpY2UhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgUi5wcm9wZXJ0eUlzRW51bWVyYWJsZSE9InVuZGVmaW5lZCImJiFSLnByb3BlcnR5SXNFbnVtZXJhYmxlKCJzcGxpY2UiKTtmYWxzZSl7cmV0dXJuIGs7aWYoIlkiKWJyZWFrfXN3aXRjaCghKGg9PSJbb2JqZWN0IEZ1bmN0aW9uXSJ8fHR5cGVvZiBSLmNhbGwhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgUi5wcm9wZXJ0eUlzRW51bWVyYWJsZSE9InVuZGVmaW5lZCImJiFSLnByb3BlcnR5SXNFbnVtZXJhYmxlKCJjYWxsIikpKXtjYXNlIFtdIT10cnVlOjE7YnJlYWs7Y2FzZSBmYWxzZTpyZXR1cm4iZnVuY3Rpb24iO2JyZWFrfWJyZWFrfWJyZWFrfXJldHVybiBEfSxyVT1mdW5jdGlvbihrLFIpe3JldHVybiB0Vy5jYWxsKHRoaXMsMjgsayxSKX0seD1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSl7bT10aGlzO3RyeXtjZChSLG4sYyxaLGssdGhpcyxoLEQsRyl9Y2F0Y2goQil7ZSg4OSwiOiIsdGhpcyxCKSxEKGZ1bmN0aW9uKFQpe1QobS5LKX0pfX0sWnk9ZnVuY3Rpb24oayxSKXtmdW5jdGlvbiBHKCl7dGhpcy5uPSh0aGlzLlQ9W10sMCl9cmV0dXJuW2Z1bmN0aW9uKGgpe2sueE4oaCksUi54TihoKX0sKFI9KGs9KEcucHJvdG90eXBlLnhOPShHLnByb3RvdHlwZS5POT1mdW5jdGlvbigpe3JldHVybiBSQi5jYWxsKHRoaXMsMyl9LGZ1bmN0aW9uKGgsRCl7cmV0dXJuIGNZLmNhbGwodGhpcywzMyxoLDExLEQpfSksbmV3IEcpLG5ldyBHKSxmdW5jdGlvbihoLEQpe3JldHVybiBEPShoPWg9PT12b2lkIDA/dHJ1ZTpoLGsuTzkoKS5jb25jYXQoUi5POSgpKSksaCYmKFI9bmV3IEcpLER9KV19LGtuPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtLEIsVCxOLFApe209a1swXTtzd2l0Y2goIShtPT0kZikpe2Nhc2UgZmFsc2U9PSFbXTppZihtPT1CZCloLlc9RyxoLnM5PTI1LGgueVQ9aC5SbygpLWtbUl0saC5pKGspO2Vsc2UgaWYobT09QW8pe0I9a1sxXVszXTt0cnl7Yz1oLkt8fGguaShrKX1jYXRjaChkKXtlKDU4LCI6IixoLGQpLGM9aC5LfShuPWguSigpLEIoYyksaCkuWCs9aC5KKCktbn1lbHNlIHN3aXRjaCghKG09PW1jKSl7Y2FzZSBOYU4hPT1OdW1iZXIodW5kZWZpbmVkKTpzd2l0Y2goIShtPT1HdCkpe2Nhc2UgMD09PS0wOnN3aXRjaCghKG09PVJZKSl7Y2FzZSBOdW1iZXIoKT09PS1OdW1iZXIoKTppZihtPT1NVClyZXR1cm4gRD1rW1JdLEEoNDUxLGgsa1s2XSksQygxNTcsRCxoKSxoLmkoayk7bT09ZHI/KGguaShrKSxoLlk9bnVsbCxoLnVYPVtdLGgud2I9W10pOm09PXhuJiZILmRvY3VtZW50LnJlYWR5U3RhdGU9PT0ibG9hZGluZyImJihoLlM9ZnVuY3Rpb24oZCxJKXtmdW5jdGlvbiBTKFgpe2ZvcihYPTk3O1ghPTU2OylYPT05Nz9YPUk/NTY6ODY6WD09ODYmJihJPUcsSC5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixTLG92KSxILnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLFMsb3YpLGQoKSxYPTU2KX1ILmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLChJPWZhbHNlLFMpLG92KSxILmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLFMsb3YpfSk7YnJlYWs7Y2FzZSBmYWxzZTp0cnl7e1A9MDt3aGlsZShQPGguU20ubGVuZ3RoKXt0cnl7Wj1oLlNtW1BdLFpbMF1bWlsxXV0oWltSXSl9Y2F0Y2goZCl7fVArK319fWNhdGNoKGQpe30oMCxrWzFdKShmdW5jdGlvbihkLEkpe2gucFgoZCxHLEkpfSxmdW5jdGlvbihkKXthKDQ0LChkPSFoLlAubGVuZ3RoJiYhaC5vLFtkcl0pLGgpLGQmJlJCKDMwLGZhbHNlLGgsZmFsc2UsRyl9LChoLlNtPVtdLFQ9aC5KKCksZnVuY3Rpb24oZCl7cmV0dXJuIGgudHgoZCl9KSxmdW5jdGlvbihkLEksUyl7cmV0dXJuIGguZWkoZCxJLFMpfSksaC5YKz1oLkooKS1UO2JyZWFrfWJyZWFrO2Nhc2UgZmFsc2U6aC51PUcsaC5pKGspO2JyZWFrfWJyZWFrO2Nhc2UgW109PShmYWxzZT09IVtdKTprWzNdJiYoaC51PUcpLGtbNF0mJihoLlc9RyksaC5pKGspO2JyZWFrfWJyZWFrO2Nhc2UgTmFOPT09TmFOOmlmKE49aC5pKGspKU4uSWE9SC5zZXRUaW1lb3V0KGZ1bmN0aW9uKGQpeyhhKChhKDQwLE4uUVQsKGQ9KE4uTW09RywhaC5QLmxlbmd0aCYmIWgubyksaCkpLDU4KSxOLmFhLGgpLGQpJiZSQigyNSxmYWxzZSxoLEcsRyl9LE4udGltZW91dCksaC52dC5wdXNoKE4pO2JyZWFrfX0sU009ZnVuY3Rpb24oayxSLEcpeyJzdGFjayJpbih0aGlzLm1lc3NhZ2U9KEc9RXJyb3IuY2FsbCh0aGlzLGsrIiBjYW5ub3QgYmUgdXNlZCB3aXRoIGludGVudCAiK21EW1JdKSxHLm1lc3NhZ2UpLEcpJiYodGhpcy5zdGFjaz1HLnN0YWNrKSx0aGlzLnR5cGU9ayx0aGlzLm5hbWU9IlR5cGVDYW5ub3RCZVVzZWRXaXRoSWZyYW1lSW50ZW50RXJyb3IifSxnVT1mdW5jdGlvbihrLFIsRyl7cmV0dXJuIEFXLmNhbGwodGhpcyw0MSxrLDI5LFIsRyl9LEE9ZnVuY3Rpb24oayxSLEcpe2lmKGs9PTE0Mnx8az09MTY4KVIuWVtrXT9SLllba10uY29uY2F0KEcpOlIuWVtrXT1xKDM3LEcsUik7ZWxzZXtpZihSLnluJiZrIT0zNjMpcmV0dXJuO2s9PTQ4OHx8az09NDJ8fGs9PTI2NHx8az09MTR8fGs9PTUwNnx8az09NDQ2fHxrPT0xNjN8fGs9PTk1fHxrPT0xOTF8fGs9PTMwMj9SLllba118fChSLllba109WSgyLDQwLFIsRyxrLDM4KSk6Ui5ZW2tdPVkoMiwzMixSLEcsaywxMjkpfWs9PTM2MyYmKFIuTj1HTigzMixSLGZhbHNlKSxSLmw9dm9pZCAwKX0sbng9ZnVuY3Rpb24oayxSLEcsaCxEKXt3aGlsZShrLmxlbmd0aD09Myl7e2g9MDt3aGlsZShoPDMpUltoXSs9a1toXSxoKyt9RD1bMTMsOCwxMywxMiwxNiw1LDMsMTAsMTVdO3tHPTA7d2hpbGUoRzw5KVJbM10oUixHJTMsRFtHXSksRysrfWlmKHt9KWJyZWFrfX0sS3I9ZnVuY3Rpb24oKXt7dmFyIGs9OTM7d2hpbGUoayE9Mzkpe2lmKGs9PTkwKXJldHVybiBoO2lmKGs9PTc3KWs9Rzxhcmd1bWVudHMubGVuZ3RoPzE2OjkwO2Vsc2UgaWYoaz09OTMpdmFyIFI9KGs9MTEsTnVtYmVyKSh0aGlzKSxHPVIsaD1bXTtlbHNlIGs9PTExP2s9Nzc6az09OTI/KEcrKyxrPTc3KTprPT0xNiYmKGhbRy1SXT1hcmd1bWVudHNbR10saz05Mil9fX0scHI9ZnVuY3Rpb24oayxSLEcsaCxELGMpe3doaWxlKGZhbHNlPT0wKWlmKGMuRnoubGVuZ3RoPkQ/YXYoayxjLFIsW3dVLDM2XSk6KGMuRnoucHVzaChjLlkuc2xpY2UoKSksYy5ZW0ddPXZvaWQgMCxBKEcsYyxoKSksIVtdPT0wKWJyZWFrfSxiPWZ1bmN0aW9uKGssUixHKXtHPWsuWVtSXTt3aGlsZShHPT09dm9pZCAwKXt0aHJvd1t3VSwzMCxSXTtpZigwPT0hW3RydWUudHJ1ZV0pYnJlYWt9c3dpdGNoKCFHLnZhbHVlKXtjYXNlIDA9PSFbXTpbXSE9KHRydWUhPVtdKTticmVhaztjYXNlIG51bGw9PShmYWxzZT09bnVsbCk6cmV0dXJuIEcuY3JlYXRlKCk7YnJlYWt9cmV0dXJuKEcuY3JlYXRlKFIqMipSKy0zMSpSKzU4KSxHKS5wcm90b3R5cGV9LE5ELHRvPWZ1bmN0aW9uKGssUixHLGgsRCxjKXtyZXR1cm4gRjEuY2FsbCh0aGlzLDk0LCJvbiIsMjQsayxSLEcsaCxELGMpfSxUdD1mdW5jdGlvbihrLFIsRyxoLEQpe3JldHVybiBMbi5jYWxsKHRoaXMsMyxrLEcsMTIsRCxSLGgpfSxEWj1mdW5jdGlvbigpe3JldHVybiBLbi5jYWxsKHRoaXMsMCwxLDUpfSxnSj1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCKXtyZXR1cm4gQlkuY2FsbCh0aGlzLGssMTIsUixHLGgsRCxjLFosbixtLEIpfSxWPWZ1bmN0aW9uKGssUixHKXtHPVIuWVtrXTtzd2l0Y2goIShHPT09dm9pZCAwKSl7Y2FzZSAwPT0hWyIiXTowPT0hWyIiXTticmVhaztjYXNlIDAhPT0tTnVtYmVyKCk6dGhyb3dbd1UsMzAsa107YnJlYWt9aWYoRy52YWx1ZSlyZXR1cm4gRy5jcmVhdGUoKTtyZXR1cm4oRy5jcmVhdGUoayoyKmsrLTMxKmsrNTgpLEcpLnByb3RvdHlwZX0sUzg9ZnVuY3Rpb24oayxSLEcsaCl7dHJ5e2g9a1soKFJ8MCkrMiklM10sa1tSXT0oa1tSXXwwKS0oa1soLTIqfihSJjEpKy0yKyhSJi0yKSsoflImMSkpJTNdfDApLShofDApXihSPT0xP2g8PEc6aD4+PkcpfWNhdGNoKEQpe3Rocm93IEQ7fX0sSVk9ZnVuY3Rpb24oKXtyZXR1cm4gckouY2FsbCh0aGlzLDgpfSxRZj1mdW5jdGlvbigpe3JldHVybiBlLmNhbGwodGhpcyw1MSl9LFgxPWZ1bmN0aW9uKGspe3JldHVybiBOUC5jYWxsKHRoaXMsNCxrLDMpfSx1Tj1mdW5jdGlvbihrLFIsRyxoKXtoPXEoNTcsKEc9WShSLDczKSxSKSksamUoaCxLKGssVihHLFIpKSxSKX0sYk49ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0pe2lmKCFHLkspe0cuRDcrKzt0cnl7RD1HLmo7d2hpbGUoIW51bGwpaWYoYz12b2lkIDAsdHJ1ZSE9IVtdKWJyZWFrO2ZvcihaPTA7LS1SOyl0cnl7aWYobT12b2lkIDAsRy5WKWM9a2YoRyxHLlYpO2Vsc2V7aWYoKFo9VigxNDIsRyksWik+PUQpYnJlYWs7Yz1iKEcsKG09cSg4OSwoUShHLDE2OCxaKSxHKSksbSkpfU5UKGZhbHNlLDMzLChjJiYobj1jW2RyXSwobnwwKSsyMDQ4LShufDIwNDgpKT9jKEcsUik6YXYoNTA2LEcsMCxbd1UsMjEsbV0pLFIpLGZhbHNlLEcsZmFsc2UpfWNhdGNoKEIpe1coRyxoKT9hdig1MDYsRywyMixCKTpBKGgsRyxCKX1mb3IodHJ1ZSsobnVsbCE9KDAhPSFbXSkpOyFSOzEpe2Zvcih2b2lkIDA7Ry5ObTshW109PWZhbHNlKXtiTig1NywoRy5ENy0tLDYwMzE5ODAwNTkzMCksRyw0MSk7cmV0dXJuO2lmKDMpYnJlYWt9aWYoYXYoNTA2LEcsMCxbd1UsMzNdKSwxKWJyZWFrfX1jYXRjaChCKXt0cnl7YXYoNTA2LEcsMjIsQil9Y2F0Y2goVCl7ZShrLCI6IixHLFQpfX1HLkQ3LS19fSxwbj1mdW5jdGlvbihrKXtyZXR1cm4gSUIuY2FsbCh0aGlzLDI0LGspfSx1O3N3aXRjaCghKHR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y9PSJmdW5jdGlvbiIpKXtjYXNlICEiIj09IWZhbHNlOnZhciBYUTthOnt2YXIgTUQ9e30sb1k9e2E6dHJ1ZX07dHJ5e01ELl9fcHJvdG9fXz1vWTt3aGlsZShOdW1iZXIoKT09ZmFsc2UpaWYoWFE9TUQuYSx0cnVlIT1bXSlicmVhazticmVhayBhfWNhdGNoKGspe31YUT1mYWxzZX1ORD1YUT9mdW5jdGlvbihrLFIsRyl7Zm9yKEc9MTU7RyE9NTI7KXtpZihHPT02NilyZXR1cm4gaztpZihHPT0xNSlrLl9fcHJvdG9fXz1SLEc9Nzg7ZWxzZSBpZihHPT03OClHPWsuX19wcm90b19fIT09Uj80MTo2NjtlbHNlIGlmKEc9PTQxKXRocm93IG5ldyBUeXBlRXJyb3IoaysiIGlzIG5vdCBleHRlbnNpYmxlIik7fX06bnVsbDticmVhaztjYXNlIDAhPSFbXTpORD1PYmplY3Quc2V0UHJvdG90eXBlT2Y7YnJlYWt9dmFyIEg9dGhpc3x8c2VsZix0MD1ORCxFUj0iY2xvc3VyZV91aWRfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKSxIdT0wLFpaLGZuPWZ1bmN0aW9uKGssUixHLGgsRCxjKXtEPTgxO3toPTU0O3doaWxlKFtdKXRyeXtpZihEPT0zNSlicmVhaztlbHNlIGlmKEQ9PTgwKVI9ZmFsc2UsRz1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtSPXRydWV9fSksRD01MDtlbHNlIGlmKEQ9PTMwKWg9NTQsRD0zMjtlbHNle2lmKEQ9PTMyKXJldHVybiBoPTU0LFI7aWYoRD09MzMpcmV0dXJuIGZhbHNlO0Q9PTUwPyhoPTM4LGs9ZnVuY3Rpb24oKXt9LEguYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsayxHKSxILnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLGssRyksRD0zMik6RD09ODEmJihEPUguYWRkRXZlbnRMaXN0ZW5lciYmT2JqZWN0LmRlZmluZVByb3BlcnR5PzgwOjMzKX19Y2F0Y2goWil7aWYoaD09NTQpdGhyb3cgWjtoPT0zOCYmKGM9WixEPTMwKX19fSgpLGRKPSJjbG9zdXJlX2xpc3RlbmFibGVfIisoKCgoKEJZKDIsNDUsclUsKGFCLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD0oV3UucHJvdG90eXBlW1d1LnByb3RvdHlwZS5kaXNwb3NlPShXdS5wcm90b3R5cGUuZz1mYWxzZSxmdW5jdGlvbihrKXt7az05NTt3aGlsZShrIT0xMilrPT01Mj8odGhpcy5nPXRydWUsdGhpcy5VKCksaz0xMik6az09OTUmJihrPXRoaXMuZz8xMjo1Mil9fSksKGFCLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXt0aGlzLlB0PXRydWV9LFN5bWJvbCkuZGlzcG9zZV09KFd1LnByb3RvdHlwZS5VPWZ1bmN0aW9uKGspe3trPTc2O3doaWxlKGshPTQ2KWs9PTU4P2s9ODA6az09MzY/KHRoaXMubFguc2hpZnQoKSgpLGs9NDEpOms9PTgwP2s9dGhpcy5sWC5sZW5ndGg/MzY6NDY6az09NDE/az04MDprPT03NiYmKGs9dGhpcy5sWD81ODo0Nil9fSxmdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfSksZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9dHJ1ZX0pLGFCKSksclUucHJvdG90eXBlKS5pbml0PWZ1bmN0aW9uKGssUixHLGgsRCxjKXtmb3IoYz0zOTtjIT05NjspYz09MTY/Yz1EPT0ibW91c2VvdmVyIj8yMjoyMzpjPT0yMz9jPUQ9PSJtb3VzZW91dCI/MTI6ODQ6Yz09OTk/KHRoaXMub2Zmc2V0WD1rLm9mZnNldFgsdGhpcy5vZmZzZXRZPWsub2Zmc2V0WSx0aGlzLmNsaWVudFg9ay5jbGllbnRYIT09dm9pZCAwP2suY2xpZW50WDprLnBhZ2VYLHRoaXMuY2xpZW50WT1rLmNsaWVudFkhPT12b2lkIDA/ay5jbGllbnRZOmsucGFnZVksdGhpcy5zY3JlZW5YPWsuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9ay5zY3JlZW5ZfHwwLGM9MjApOmM9PTg0Pyh0aGlzLnJlbGF0ZWRUYXJnZXQ9aCxjPTgxKTpjPT01ND8odGhpcy5jbGllbnRYPUcuY2xpZW50WCE9PXZvaWQgMD9HLmNsaWVudFg6Ry5wYWdlWCx0aGlzLmNsaWVudFk9Ry5jbGllbnRZIT09dm9pZCAwP0cuY2xpZW50WTpHLnBhZ2VZLHRoaXMuc2NyZWVuWD1HLnNjcmVlblh8fDAsdGhpcy5zY3JlZW5ZPUcuc2NyZWVuWXx8MCxjPTIwKTpjPT0yMD8odGhpcy5idXR0b249ay5idXR0b24sdGhpcy5rZXlDb2RlPWsua2V5Q29kZXx8MCx0aGlzLmtleT1rLmtleXx8IiIsdGhpcy5jaGFyQ29kZT1rLmNoYXJDb2RlfHwoRD09ImtleXByZXNzIj9rLmtleUNvZGU6MCksdGhpcy5jdHJsS2V5PWsuY3RybEtleSx0aGlzLmFsdEtleT1rLmFsdEtleSx0aGlzLnNoaWZ0S2V5PWsuc2hpZnRLZXksdGhpcy5tZXRhS2V5PWsubWV0YUtleSx0aGlzLnBvaW50ZXJJZD1rLnBvaW50ZXJJZHx8MCx0aGlzLnBvaW50ZXJUeXBlPWsucG9pbnRlclR5cGUsdGhpcy5zdGF0ZT1rLnN0YXRlLHRoaXMudGltZVN0YW1wPWsudGltZVN0YW1wLHRoaXMuWU49ayxrLmRlZmF1bHRQcmV2ZW50ZWQmJnJVLk8ucHJldmVudERlZmF1bHQuY2FsbCh0aGlzKSxjPTk2KTpjPT02OD9jPWg/ODQ6MTY6Yz09MjI/KGg9ay5mcm9tRWxlbWVudCxjPTg0KTpjPT04MT9jPUc/NTQ6OTk6Yz09MTI/KGg9ay50b0VsZW1lbnQsYz04NCk6Yz09MzkmJihEPXRoaXMudHlwZT1rLnR5cGUsRz1rLmNoYW5nZWRUb3VjaGVzJiZrLmNoYW5nZWRUb3VjaGVzLmxlbmd0aD9rLmNoYW5nZWRUb3VjaGVzWzBdOm51bGwsdGhpcy50YXJnZXQ9ay50YXJnZXR8fGsuc3JjRWxlbWVudCx0aGlzLmN1cnJlbnRUYXJnZXQ9UixoPWsucmVsYXRlZFRhcmdldCxjPTY4KX0sclUpLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXsoclUuTy5zdG9wUHJvcGFnYXRpb24uY2FsbCh0aGlzKSx0aGlzLllOLnN0b3BQcm9wYWdhdGlvbik/dGhpcy5ZTi5zdG9wUHJvcGFnYXRpb24oKTp0aGlzLllOLmNhbmNlbEJ1YmJsZT10cnVlfSxyVSkucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKGspeyhrPShyVS5PLnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyksdGhpcy5ZTiksaykucHJldmVudERlZmF1bHQ/ay5wcmV2ZW50RGVmYXVsdCgpOmsucmV0dXJuVmFsdWU9ZmFsc2V9LE1hdGgucmFuZG9tKCkpKjFFNnwwKSxIWT0iY29uc3RydWN0b3IgaGFzT3duUHJvcGVydHkgaXNQcm90b3R5cGVPZiBwcm9wZXJ0eUlzRW51bWVyYWJsZSB0b0xvY2FsZVN0cmluZyB0b1N0cmluZyB2YWx1ZU9mIi5zcGxpdCgiICIpLEl2PTAsbDk9KCgoak0ucHJvdG90eXBlLmFkZD0oak0ucHJvdG90eXBlLmhhc0xpc3RlbmVyPWZ1bmN0aW9uKGssUixHLGgsRCl7cmV0dXJuIHJKKDEwLHRydWUsZmFsc2UsKEc9KGg9KEQ9ayE9PXZvaWQgMCk/ay50b1N0cmluZygpOiIiLFIhPT12b2lkIDApLHRoaXMuWiksZnVuY3Rpb24oYyxaLG4pe2ZvcihuPTM4O24hPTgzOylpZihuPT04OCkrK1osbj0zMjtlbHNle2lmKG49PTE4KXJldHVybiBmYWxzZTtpZihuPT03NyluPTMyO2Vsc2UgaWYobj09ODkpbj1EJiZjW1pdLnR5cGUhPWh8fEcmJmNbWl0uY2FwdHVyZSE9Uj84ODoxNDtlbHNle2lmKG49PTE0KXJldHVybiB0cnVlO249PTMyP249WjxjLmxlbmd0aD84OToxODpuPT0zOCYmKFo9MCxuPTc3KX19fSl9LGZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtLEIpe3tCPTczO3doaWxlKEIhPTI5KWlmKEI9PTEwKW0uYW89ZmFsc2UsQj01MTtlbHNlIGlmKEI9PTIxKUI9Yz4tMT8wOjcxO2Vsc2UgaWYoQj09NDMpQj1HPzUxOjEwO2Vsc2V7aWYoQj09NTEpcmV0dXJuIG07Qj09MD8obT1uW2NdLEI9NDMpOkI9PTk0PyhuPXRoaXMuWltaXT1bXSx0aGlzLkp4KyssQj0zMik6Qj09NzE/KG09bmV3IFR0KEQsdGhpcy5zcmMsWixSLCEhaCksbS5hbz1HLG4ucHVzaChtKSxCPTUxKTpCPT0zMj8oYz1ySigyMSwwLGgsRCxuLFIpLEI9MjEpOkI9PTczPyhaPWsudG9TdHJpbmcoKSxuPXRoaXMuWltaXSxCPTQ4KTpCPT00OCYmKEI9bj8zMjo5NCl9fX0pLGpNKS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbil7e249MjI7d2hpbGUobiE9NDIpaWYobj09MzkpaFcoMjMsdHJ1ZSxEW2NdKSxBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoRCxjLDEpLG49NzQ7ZWxzZSBpZihuPT05OSluPWM+LTE/Mzk6NTk7ZWxzZXtpZihuPT0yKXJldHVybiB0cnVlO2lmKG49PTUpZGVsZXRlIHRoaXMuWltaXSx0aGlzLkp4LS0sbj0yO2Vsc2UgaWYobj09NzQpbj1ELmxlbmd0aD09MD81OjI7ZWxzZSBpZihuPT04MyluPVogaW4gdGhpcy5aPzg0OjA7ZWxzZXtpZihuPT01OXx8bj09MClyZXR1cm4gZmFsc2U7bj09MjI/KFo9ay50b1N0cmluZygpLG49ODMpOm49PTg0JiYoRD10aGlzLlpbWl0sYz1ySigyMCwwLEcsaCxELFIpLG49OTkpfX19fSxqTSkucHJvdG90eXBlLkNYPWZ1bmN0aW9uKGssUixHLGgsRCxjKXtyZXR1cm4oRD10aGlzLlpbay50b1N0cmluZygpXSxjPS0xLEQmJihjPXJKKDIyLDAsaCxHLEQsUikpLGMpPi0xP0RbY106bnVsbH0sImNsb3N1cmVfbG1fIikrKE1hdGgucmFuZG9tKCkqMUU2fDApLGk5PTAsVE49e30sZFU9Il9fY2xvc3VyZV9ldmVudHNfZm5fIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKTsoKCgoKEJZKDIsNDMsRFosV3UpLERaLnByb3RvdHlwZSlbZEpdPXRydWUsdT1EWi5wcm90b3R5cGUsdSkuemY9ZnVuY3Rpb24oayl7dGhpcy5Obz1rfSx1KS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGssUixHLGgpe3Z1KDU2LGZhbHNlLFIsRyx0aGlzLHRydWUsaywzLGgpfSx1KS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGssUixHLGgpe0J1KDE2LDAsIm9iamVjdCIsRyxSLGgsayx0aGlzKX0sdS5kaXNwYXRjaEV2ZW50PWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtLEIsVCxOKXtmb3IoTj03NDtOIT02MTspaWYoTj09ODYpQj1SLmN1cnJlbnRUYXJnZXQ9bixoPVBZKDUsMCxCLG0sdHJ1ZSxSKSYmaCxSLlB0fHwoaD1QWSgzLDAsQixtLGZhbHNlLFIpJiZoKSxOPTY0O2Vsc2UgaWYoTj09OTEpTj05O2Vsc2UgaWYoTj09NilOPVIuUHQ/NjQ6ODY7ZWxzZSBpZihOPT0yKUI9Ui5jdXJyZW50VGFyZ2V0PWNbWl0saD1QWSg3LDAsQixtLHRydWUsUikmJmgsTj0yNDtlbHNlIGlmKE49PTY4KUQ9W10sTj00O2Vsc2UgaWYoTj09NzMpRC5wdXNoKEcpLE49NzE7ZWxzZSBpZihOPT02NClOPWM/NDc6MjU7ZWxzZSBpZihOPT01MyloPXRydWUsTj0xMjtlbHNlIGlmKE49PTkpTj0hUi5QdCYmWj49MD8yOjY7ZWxzZSBpZihOPT0xNSlOPXR5cGVvZiBSPT09InN0cmluZyI/Mzc6ODtlbHNlIGlmKE49PTQ3KVo9MCxOPTk5O2Vsc2V7aWYoTj09MjUpcmV0dXJuIGg7Tj09OTk/Tj05NzpOPT00MD8oWisrLE49OTcpOk49PTY5PyhSLnRhcmdldD1SLnRhcmdldHx8bixOPTUzKTpOPT0zNz8oUj1uZXcgYUIoUixuKSxOPTUzKTpOPT0zMz9OPUc/Njg6NzU6Tj09MjQ/KFotLSxOPTkpOk49PTQ/Tj04OTpOPT03ND8oRz10aGlzLk5vLE49MzMpOk49PTg1PyhCPVIuY3VycmVudFRhcmdldD1jW1pdLGg9UFkoNiwwLEIsbSxmYWxzZSxSKSYmaCxOPTQwKTpOPT0xND8oVD1SLFI9bmV3IGFCKG0sbiksQ3IoUixUKSxOPTUzKTpOPT03NT8oUj1rLG09Ui50eXBlfHxSLG49dGhpcy5scSxjPUQsTj0xNSk6Tj09NDM/KFo9Yy5sZW5ndGgtMSxOPTkxKTpOPT04OT9OPUc/NzM6NzU6Tj09NzE/KEc9Ry5ObyxOPTg5KTpOPT04P049UiBpbnN0YW5jZW9mIGFCPzY5OjE0Ok49PTEyP049Yz80Mzo2Ok49PTk3JiYoTj0hUi5QdCYmWjxjLmxlbmd0aD84NToyNSl9fSx1KS5VPWZ1bmN0aW9uKCl7dGhpcy5Obz0oRFouTy5VLmNhbGwodGhpcyksdGhpcy5JJiZCdSg3MiwwLHRydWUsdGhpcy5JKSxudWxsKX0sdS5DWD1mdW5jdGlvbihrLFIsRyxoKXtyZXR1cm4gdGhpcy5JLkNYKFN0cmluZyhrKSxSLEcsaCl9LHUuaGFzTGlzdGVuZXI9ZnVuY3Rpb24oayxSKXtyZXR1cm4gdGhpcy5JLmhhc0xpc3RlbmVyKGshPT12b2lkIDA/U3RyaW5nKGspOnZvaWQgMCxSKX07dmFyIHNSLFVSLHJyPShYMS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5LaisiIn0sRXJyb3IpLG1EPXtGaTowLEFzOjEsemU6MiwwOiJGT1JNQVRURURfSFRNTF9DT05URU5UIiwxOiJFTUJFRERFRF9JTlRFUk5BTF9DT05URU5UIiwyOiJFTUJFRERFRF9UUlVTVEVEX0VYVEVSTkFMX0NPTlRFTlQifTtTTS5wcm90b3R5cGU9RHkocnIucHJvdG90eXBlKSxTTS5wcm90b3R5cGUuY29uc3RydWN0b3I9U007c3dpdGNoKCF0MCl7Y2FzZSAhW10hPShudWxsIT1mYWxzZSk6Zm9yKHZhciB3ciBpbiBycilpZih3ciE9InByb3RvdHlwZSIpaWYoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMpe3ZhciBlOD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHJyLHdyKTtlOCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KFNNLHdyLGU4KX1lbHNlIFNNW3dyXT1yclt3cl07YnJlYWs7Y2FzZSBmYWxzZTp0MChTTSxycik7YnJlYWt9aWYoTmFOIT09KCgodT0oIkFSVElDTEUgU0VDVElPTiBOQVYgQVNJREUgSDEgSDIgSDMgSDQgSDUgSDYgSEVBREVSIEZPT1RFUiBBRERSRVNTIFAgSFIgUFJFIEJMT0NLUVVPVEUgT0wgVUwgTEggTEkgREwgRFQgREQgRklHVVJFIEZJR0NBUFRJT04gTUFJTiBESVYgRU0gU1RST05HIFNNQUxMIFMgQ0lURSBRIERGTiBBQkJSIFJVQlkgUkIgUlQgUlRDIFJQIERBVEEgVElNRSBDT0RFIFZBUiBTQU1QIEtCRCBTVUIgU1VQIEkgQiBVIE1BUksgQkRJIEJETyBTUEFOIEJSIFdCUiBOT0JSIElOUyBERUwgUElDVFVSRSBQQVJBTSBUUkFDSyBNQVAgVEFCTEUgQ0FQVElPTiBDT0xHUk9VUCBDT0wgVEJPRFkgVEhFQUQgVEZPT1QgVFIgVEQgVEggU0VMRUNUIERBVEFMSVNUIE9QVEdST1VQIE9QVElPTiBPVVRQVVQgUFJPR1JFU1MgTUVURVIgRklFTERTRVQgTEVHRU5EIERFVEFJTFMgU1VNTUFSWSBNRU5VIERJQUxPRyBTTE9UIENBTlZBUyBGT05UIENFTlRFUiBBQ1JPTllNIEJBU0VGT05UIEJJRyBESVIgSEdST1VQIFNUUklLRSBUVCIuc3BsaXQoKFNNLk89cnIucHJvdG90eXBlLCIgIikpLmNvbmNhdChbIkJVVFRPTiIsIklOUFVUIl0pLG5uKS5wcm90b3R5cGUsdSkuRj1mdW5jdGlvbihrKXtyZXR1cm4gdHlwZW9mIGs9PT0ic3RyaW5nIj90aGlzLk1vLmdldEVsZW1lbnRCeUlkKGspOmt9LHUuZ2V0RWxlbWVudHNCeVRhZ05hbWU9ZnVuY3Rpb24oayxSKXtyZXR1cm4oUnx8dGhpcy5NbykuZ2V0RWxlbWVudHNCeVRhZ05hbWUoU3RyaW5nKGspKX0sdS5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGssUixHKXtyZXR1cm4oRz0oUj10aGlzLk1vLFN0cmluZyhrKSksUi5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiJiYoRz1HLnRvTG93ZXJDYXNlKCkpLFIpLmNyZWF0ZUVsZW1lbnQoRyl9LHUuY3JlYXRlVGV4dE5vZGU9ZnVuY3Rpb24oayl7cmV0dXJuIHRoaXMuTW8uY3JlYXRlVGV4dE5vZGUoU3RyaW5nKGspKX0sdS5hcHBlbmRDaGlsZD1mdW5jdGlvbihrLFIpe2suYXBwZW5kQ2hpbGQoUil9LHUpLmFwcGVuZD1mdW5jdGlvbihrLFIpe3RXKDE4LGZhbHNlLCJudW1iZXIiLCIiLDAsay5ub2RlVHlwZT09OT9rOmsub3duZXJEb2N1bWVudHx8ay5kb2N1bWVudCxhcmd1bWVudHMsayl9LHUuY2FuSGF2ZUNoaWxkcmVuPWZ1bmN0aW9uKGssUil7e1I9MDt3aGlsZShSIT01NSlpZihSPT0wKVI9ay5ub2RlVHlwZSE9MT85ODoyODtlbHNle2lmKFI9PTI4KXtzd2l0Y2goay50YWdOYW1lKXtjYXNlICJBUFBMRVQiOmNhc2UgIkFSRUEiOmNhc2UgIkJBU0UiOmNhc2UgIkJSIjpjYXNlICJDT0wiOmNhc2UgIkNPTU1BTkQiOmNhc2UgIkVNQkVEIjpjYXNlICJGUkFNRSI6Y2FzZSAiSFIiOmNhc2UgIklNRyI6Y2FzZSAiSU5QVVQiOmNhc2UgIklGUkFNRSI6Y2FzZSAiSVNJTkRFWCI6Y2FzZSAiS0VZR0VOIjpjYXNlICJMSU5LIjpjYXNlICJOT0ZSQU1FUyI6Y2FzZSAiTk9TQ1JJUFQiOmNhc2UgIk1FVEEiOmNhc2UgIk9CSkVDVCI6Y2FzZSAiUEFSQU0iOmNhc2UgIlNDUklQVCI6Y2FzZSAiU09VUkNFIjpjYXNlICJTVFlMRSI6Y2FzZSAiVFJBQ0siOmNhc2UgIldCUiI6cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfWlmKFI9PTk4KXJldHVybiBmYWxzZX19fSx1LnJlbW92ZU5vZGU9UGQsdS5jb250YWlucz1mdW5jdGlvbihrLFIsRyxoKXtmb3IoaD05OTtoIT0xODspe2lmKGg9PTUxKXJldHVybiBrPT1SfHxrLmNvbnRhaW5zKFIpO2lmKGg9PTg3KWg9ay5jb250YWlucyYmUi5ub2RlVHlwZT09MT81MToyNDtlbHNlIGlmKGg9PTI3KWg9MjA7ZWxzZSBpZihoPT00NylSPVIucGFyZW50Tm9kZSxoPTI3O2Vsc2UgaWYoaD09NjgpaD0yMDtlbHNle2lmKGg9PTYwKXJldHVybiBrPT1SfHwhIShHPWsuY29tcGFyZURvY3VtZW50UG9zaXRpb24oUiksLX4oRyYxNikrKEdeMTYpKyh+R14xNikpO2lmKGg9PTk5KWg9ayYmUj84Nzo1NztlbHNle2lmKGg9PTM3KXJldHVybiBSPT1rO2lmKGg9PTI0KWg9dHlwZW9mIGsuY29tcGFyZURvY3VtZW50UG9zaXRpb24hPSJ1bmRlZmluZWQiPzYwOjY4O2Vsc2UgaWYoaD09MjApaD1SJiZrIT1SPzQ3OjM3O2Vsc2UgaWYoaD09NTcpcmV0dXJuIGZhbHNlfX19fSxOdW1iZXIodW5kZWZpbmVkKSkpaFcoNzQsSVkpOygodT0oQlkoMiwoSVkucHJvdG90eXBlLmJxPShJWS5wcm90b3R5cGUuR2U9MCwiIiksNDEpLERELERaKSxERC5wcm90b3R5cGUpLHUub2E9SVkublgoKSx1LkY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BfSx1LmdldFBhcmVudD1mdW5jdGlvbigpe2lmKCFbXSE9KCFbXT09MCkpcmV0dXJuIHRoaXMuWjd9LHUuQnQ9ZnVuY3Rpb24oKXsoSUIoMyx0aGlzLGZ1bmN0aW9uKGspe2suam0mJmsuQnQoKX0pLHRoaXMpLnMyJiZCdSg3MSwwLHRydWUsdGhpcy5zMiksdGhpcy5qbT1mYWxzZX0sdS5VPWZ1bmN0aW9uKGspe3trPTcxO3doaWxlKGshPTY1KWs9PTQzP2s9dGhpcy5zMj8xMDo5MTprPT0xMD8odGhpcy5zMi5kaXNwb3NlKCksZGVsZXRlIHRoaXMuczIsaz05MSk6az09NzE/KHRoaXMuam0mJnRoaXMuQnQoKSxrPTQzKTprPT05MSYmKElCKDcsdGhpcyxmdW5jdGlvbihSKXtSLmRpc3Bvc2UoKX0pLCF0aGlzLlhpJiZ0aGlzLkEmJlBkKHRoaXMuQSksdGhpcy5LWD10aGlzLlFuPXRoaXMuQT10aGlzLlo3PW51bGwsREQuTy5VLmNhbGwodGhpcyksaz02NSl9fSx1KS56Zj1mdW5jdGlvbihrLFIpe3tSPTM0O3doaWxlKFIhPTIpe2lmKFI9PTM2KXRocm93IEVycm9yKCJNZXRob2Qgbm90IHN1cHBvcnRlZCIpO1I9PTM0P1I9dGhpcy5aNyYmdGhpcy5aNyE9az8zNjo5NDpSPT05NCYmKERELk8uemYuY2FsbCh0aGlzLGspLFI9Mil9fX0sdSkucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuLG0sQixULE4pe3tOPTMzO3doaWxlKE4hPTcxKXtpZihOPT01OSl0aHJvdyBFcnJvcigiVW5hYmxlIHRvIHNldCBwYXJlbnQgY29tcG9uZW50Iik7aWYoTj09NDcpYz10aGlzLktYLEI9KGMhPT1udWxsJiZoIGluIGM/Y1toXTp2b2lkIDApfHxudWxsLE49Mzg7ZWxzZSBpZihOPT04MilaPXRoaXMuS1gsaCBpbiBaJiZkZWxldGUgWltoXSx0VygxMywwLGssdGhpcy5RbiksTj04NztlbHNlIGlmKE49PTkxKU49KEQ9ay5jVik/MDo3ODtlbHNle2lmKE49PTkpdGhyb3cgRXJyb3IoIkNoaWxkIGlzIG5vdCBpbiBwYXJlbnQgY29tcG9uZW50Iik7aWYoTj09MCluPUQsTj04MDtlbHNlIGlmKE49PTc1KW09ayxOPTE2O2Vsc2UgaWYoTj09MTYpTj1tPT1udWxsPzU5Ojk4O2Vsc2UgaWYoTj09OTgpbS5aNz1udWxsLERELk8uemYuY2FsbChtLG51bGwpLE49NTQ7ZWxzZSBpZihOPT0zMSlOPXR5cGVvZiBrPT09InN0cmluZyI/ODE6OTE7ZWxzZSBpZihOPT00MylOPWgmJms/ODI6NTQ7ZWxzZSBpZihOPT03OClHPWsub2EsVD1HLmJxKyI6IisoRy5HZSsrKS50b1N0cmluZygzNiksRD1rLmNWPVQsTj0wO2Vsc2UgaWYoTj09NylOPXRoaXMuS1gmJmg/NDc6Mjk7ZWxzZSBpZihOPT0yOSlCPW51bGwsTj0zODtlbHNlIGlmKE49PTgxKW49ayxOPTgwO2Vsc2UgaWYoTj09NTYpay5CdCgpLGsuQSYmUGQoay5BKSxOPTc1O2Vsc2UgaWYoTj09ODcpTj1SPzU2Ojc1O2Vsc2V7aWYoTj09NDYpcmV0dXJuIGs7Tj09Mzg/KGs9QixOPTQzKTpOPT0zMz9OPWs/MzE6NTQ6Tj09ODA/KGg9bixOPTcpOk49PTU0JiYoTj1rPzQ2OjkpfX19fX07dmFyIGx6LGo4PSh1PShoVyg3NSxmciksZnIucHJvdG90eXBlKSx1LklvPWZ1bmN0aW9uKGssUixHLGgpeyhoPWsuRj9rLkYoKTprKSYmKEc/THI6VmgpKGgsW1JdKX0sdS5BeD1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSl7Wj03Mzt7bj0yNDt3aGlsZSgibyIpdHJ5e2lmKFo9PTQpYnJlYWs7ZWxzZSBaPT01Mj8oYy50YWJJbmRleD0wLFo9NCk6Wj09OD8obj0yNCxaPTIxKTpaPT0yMT8obj0yNCxaPTY3KTpaPT0yOD9aPUQhPVI/NjM6NDpaPT0yNT8oRz1oLnRhYkluZGV4LEQ9dHlwZW9mIEc9PT0ibnVtYmVyIiYmRz49MCYmRzwzMjc2OCxaPTI4KTpaPT05MD8oYy50YWJJbmRleD0tMSxjLnJlbW92ZUF0dHJpYnV0ZSgidGFiSW5kZXgiKSxaPTQpOlo9PTI5P1o9KEQ9aC5oYXNBdHRyaWJ1dGUoInRhYmluZGV4IikpPzI1OjI4Olo9PTk4P1o9Uj81Mjo5MDpaPT0xMT9aPSFSJiZNUCg1LDMyLGspPzk5OjI5Olo9PTY3P1o9TVAoNywzMixrKT84MDoyOTpaPT04MD8oay5ZZSY0JiZrLnJiJjQmJmsuc2V0QWN0aXZlKGZhbHNlKSxrLlllJjMyJiZrLnJiJjMyJiZJQigxNCw0LGssZmFsc2UsMzIpJiZrLnYoZmFsc2UsMzIpLFo9MjkpOlo9PTk5PyhuPTEyLGguYmx1cigpLFo9MjEpOlo9PTYzPyhjPWgsWj05OCk6Wj09NzMmJihaPWsucmImMzImJihoPWsuaVgoKSk/MTE6NCl9Y2F0Y2goQil7aWYobj09MjQpdGhyb3cgQjtuPT0xMiYmKG09QixaPTgpfX19LHtidXR0b246InByZXNzZWQiLGNoZWNrYm94OiJjaGVja2VkIixtZW51aXRlbToic2VsZWN0ZWQiLG1lbnVpdGVtY2hlY2tib3g6ImNoZWNrZWQiLG1lbnVpdGVtcmFkaW86ImNoZWNrZWQiLHJhZGlvOiJjaGVja2VkIix0YWI6InNlbGVjdGVkIix0cmVlaXRlbToic2VsZWN0ZWQifSk7dS5maj1mdW5jdGlvbigpe3JldHVybiJnb29nLWNvbnRyb2wifTt3aGlsZSgwPT09LU51bWJlcigpKWlmKHUuYlg9ZnVuY3Rpb24oayxSLEcsaCxELGMsWixuKXsoKGg9KG49KGx6fHwobHo9ezE6ImRpc2FibGVkIiw4OiJzZWxlY3RlZCIsMTY6ImNoZWNrZWQiLDY0OiJleHBhbmRlZCJ9KSxseltSXSksay5nZXRBdHRyaWJ1dGUoInJvbGUiKXx8bnVsbCkpPyhEPWo4W2hdfHxuLFo9bj09ImNoZWNrZWQifHxuPT0ic2VsZWN0ZWQiP0Q6bik6Wj1uLGM9WikmJk9SKDEyLDgsZmFsc2UsImhpZGRlbiIsayxHLGMpfSx0cnVlKWJyZWFrO2lmKHUuaVg9KHUudj1mdW5jdGlvbihrLFIsRyxoLEQsYyxaKXt7Wj03OTt3aGlsZShaIT0xKVo9PTA/KGg9dGhpcy5maigpLGgucmVwbGFjZSgvXFx4YTB8XFxzL2csIiAiKSx0aGlzLlprPXsxOmgrIi1kaXNhYmxlZCIsMjpoKyItaG92ZXIiLDQ6aCsiLWFjdGl2ZSIsODpoKyItc2VsZWN0ZWQiLDE2OmgrIi1jaGVja2VkIiwzMjpoKyItZm9jdXNlZCIsNjQ6aCsiLW9wZW4ifSxaPTU2KTpaPT03OT8oRD1SLkYoKSxaPTIwKTpaPT0yMD9aPUQ/MTM6MTpaPT01Nj8oKGM9dGhpcy5aa1trXSkmJnRoaXMuSW8oUixjLEcpLHRoaXMuYlgoRCxrLEcpLFo9MSk6Wj09MTMmJihaPXRoaXMuWms/NTY6MCl9fSxmdW5jdGlvbihrKXtyZXR1cm4gay5GKCl9KSxbXSlCWSgyLDQ0LEZYLGZyKTt2YXIgbnI9KChoVyg3MixGWCksRlgpLnByb3RvdHlwZS5maj1mdW5jdGlvbigpe3JldHVybiJnb29nLWJ1dHRvbiJ9LEZYLnByb3RvdHlwZS5iWD1mdW5jdGlvbihrLFIsRyl7c3dpdGNoKFIpe2Nhc2UgODpjYXNlIDE2Ok9SKDEyLDUsZmFsc2UsImhpZGRlbiIsayxHLCJwcmVzc2VkIik7YnJlYWs7ZGVmYXVsdDpjYXNlIDY0OmNhc2UgMTpGWC5PLmJYLmNhbGwodGhpcyxrLFIsRyl9fSx7fSk7aWYoKCgoKCgoKCh1PShCWSgyLDQyLGI5LEREKSxiOSkucHJvdG90eXBlLHUpLmppPXRydWUsdSkuSW89ZnVuY3Rpb24oayxSLEcpe2ZvcihHPTU2O0chPTI0OylHPT04Mj8odGhpcy5EP2UoNDMsMCxrLHRoaXMuRCl8fHRoaXMuRC5wdXNoKGspOnRoaXMuRD1ba10sdGhpcy5DLklvKHRoaXMsayx0cnVlKSxHPTI0KTpHPT03Mz8odGhpcy5DLklvKHRoaXMsayxmYWxzZSksRz0yNCk6Rz09MTk/Rz10aGlzLkQubGVuZ3RoPT0wPzQwOjczOkc9PTQwPyh0aGlzLkQ9bnVsbCxHPTczKTpHPT01Nj9HPVI/MTM6NzE6Rz09MTM/Rz1rPzgyOjI0Okc9PTcxJiYoRz1rJiZ0aGlzLkQmJnRXKDYsMCxrLHRoaXMuRCk/MTk6MjQpfSx1KS5pWD1mdW5jdGlvbigpe3JldHVybiB0aGlzLkMuaVgodGhpcyl9LHUucmI9MzksdSkuaXE9MCx1KS5ZZT0yNTUsdS5CdD1mdW5jdGlvbigpeygoYjkuTy5CdC5jYWxsKHRoaXMpLHRoaXMuVTIpJiZ0aGlzLlUyLmRldGFjaCgpLHRoaXMuaXNWaXNpYmxlKCkmJnRoaXMuaXNFbmFibGVkKCkpJiZ0aGlzLkMuQXgodGhpcyxmYWxzZSl9LHUuVT1mdW5jdGlvbihrKXt7az03NTt3aGlsZShrIT02MilrPT03MD8oZGVsZXRlIHRoaXMuQyx0aGlzLkQ9bnVsbCxrPTYyKTprPT01Mz9rPXRoaXMuVTI/OTE6NzA6az09OTE/KHRoaXMuVTIuZGlzcG9zZSgpLGRlbGV0ZSB0aGlzLlUyLGs9NzApOms9PTc1JiYoYjkuTy5VLmNhbGwodGhpcyksaz01Myl9fSx1KS5EPW51bGwsdS5PMj0wLHUuaXNWaXNpYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaml9LHUpLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiFNUCgxMCwxLHRoaXMpfSx1LmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIE1QKDksNCx0aGlzKX0sdS5zZXRBY3RpdmU9ZnVuY3Rpb24oayl7SUIoMTAsNCx0aGlzLGssNCkmJnRoaXMudihrLDQpfSx1KS5nZXRTdGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk8yfSx1LnY9ZnVuY3Rpb24oayxSLEcsaCxELGMsWil7Zm9yKFo9Nzg7WiE9ODk7KVo9PTgzPyhEPSFrLGM9dGhpcy5nZXRQYXJlbnQoKSxaPTM1KTpaPT0xNj9aPUQ/MTQ6NzQ6Wj09NzQ/KHRoaXMuc2V0QWN0aXZlKGZhbHNlKSxJQigxMiw0LHRoaXMsZmFsc2UsMikmJnRoaXMudihmYWxzZSwyKSxaPTE0KTpaPT0yNT8odGhpcy5DLnYoUix0aGlzLGspLHRoaXMuTzI9az8oaD10aGlzLk8yLC0xLX5oLShoJn5SKSsoaF5SKSk6dGhpcy5PMiZ+UixaPTg5KTpaPT00Mj9aPXRoaXMucmImUiYmayE9TVAoMyxSLHRoaXMpPzI1Ojg5Olo9PTM1P1o9YyYmdHlwZW9mIGMuaXNFbmFibGVkPT0iZnVuY3Rpb24iJiYhYy5pc0VuYWJsZWQoKXx8IUlCKDMyLDQsdGhpcywhRCwxKT84OToxNjpaPT03OD9aPUd8fFIhPTE/NDI6ODM6Wj09MTQmJih0aGlzLmlzVmlzaWJsZSgpJiZ0aGlzLkMuQXgodGhpcyxEKSx0aGlzLnYoIUQsMSx0cnVlKSxaPTg5KX0sdHlwZW9mIGI5IT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiSW52YWxpZCBjb21wb25lbnQgY2xhc3MgIitiOSk7aWYodHlwZW9mIGZyIT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiSW52YWxpZCByZW5kZXJlciBjbGFzcyAiK2ZyKTt2YXIgYVk9Q24oNjQsMTcsYjkpOygoQlkoMiw0MCxnVSwoKEJZKDIsNDYsUWYsKGEoNixmdW5jdGlvbigpe3JldHVybiBuZXcgYjkobnVsbCl9LChuclthWV09ZnIsImdvb2ctY29udHJvbCIpKSxGWCkpLGhXKDczLFFmKSxRZi5wcm90b3R5cGUuQXg9ZnVuY3Rpb24oKXt9LFFmLnByb3RvdHlwZSkudj1mdW5jdGlvbihrLFIsRyxoLEQpe3tEPTkxO3doaWxlKEQhPTQyKUQ9PTkxPyhRZi5PLnYuY2FsbCh0aGlzLGssUixHKSxoPVIuRigpLEQ9NjEpOkQ9PTgzPyhoLmRpc2FibGVkPUcsRD00Mik6RD09NjEmJihEPWgmJms9PTE/ODM6NDIpfX0sUWYucHJvdG90eXBlLmJYPWZ1bmN0aW9uKCl7fSxiOSkpLGdVLnByb3RvdHlwZSkuVT1mdW5jdGlvbigpe2RlbGV0ZSAoZGVsZXRlIChnVS5PLlUuY2FsbCh0aGlzKSx0aGlzKS5KMyx0aGlzKS5kTn0sYSkoNSxmdW5jdGlvbigpe3JldHVybiBuZXcgZ1UobnVsbCl9LCJnb29nLWJ1dHRvbiIpO3ZhciBaRCx1OT1ILnJlcXVlc3RJZGxlQ2FsbGJhY2s/ZnVuY3Rpb24oayl7cmVxdWVzdElkbGVDYWxsYmFjayhmdW5jdGlvbigpe2soKX0se3RpbWVvdXQ6NH0pfTpILnNldEltbWVkaWF0ZT9mdW5jdGlvbihrKXtzZXRJbW1lZGlhdGUoayl9OmZ1bmN0aW9uKGspe3NldFRpbWVvdXQoaywwKX0sb3Y9e3Bhc3NpdmU6dHJ1ZSxjYXB0dXJlOnRydWV9LFZmPW9CKDEzLDEwLFsiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qcy9iZy8iLCIiXSksdlk9U3RyaW5nLmZyb21DaGFyQ29kZSgxMDUsMTEwLDExNiwxMDEsMTAzLDY3LDEwNCwxMDEsOTksMTA3LDY2LDEyMSwxMTIsOTcsMTE1LDExNSksd1U9e30sJGY9W10sUlk9KHgucHJvdG90eXBlLlB3PXZvaWQgMCx4LnByb3RvdHlwZS5MWD0oeC5wcm90b3R5cGUuTm09ZmFsc2UsInRvU3RyaW5nIiksW10pLGRyPVtdLEFvPSh4LnByb3RvdHlwZS5mUT12b2lkIDAsW10pLEJkPVtdLG1jPVtdLEd0PVtdLE1UPVtdLHhuPVtdLHpOPWZ1bmN0aW9uKGssUil7d2hpbGUoIVtdPT1mYWxzZSl7cmV0dXJuKFI9QVcoNDEsImFkIiwxNykpJiZrLmV2YWwoUi5jcmVhdGVTY3JpcHQoIjEiKSk9PT0xP2Z1bmN0aW9uKEcpe3JldHVybiBSLmNyZWF0ZVNjcmlwdChHKX06ZnVuY3Rpb24oRyl7cmV0dXJuIiIrR307aWYoImEiKWJyZWFrfX0oSCkseXI9ZnVuY3Rpb24oayl7cmV0dXJuKGs9QVcoNDEsImFkIiwxNikpP2Z1bmN0aW9uKFIpe3JldHVybiBrLmNyZWF0ZVNjcmlwdFVSTChSKX06ZnVuY3Rpb24oUil7cmV0dXJuIFJ9fSgpLEVlPWZ1bmN0aW9uKGspe3JldHVybihrPUFXKDQxLCJhZCIsMTkpKT9mdW5jdGlvbihSKXtyZXR1cm4gay5jcmVhdGVIVE1MKFIpfTpmdW5jdGlvbihSKXtyZXR1cm4gUn19KCkseWY9KCgoKChpTixZZixTOCxueCxaeSxmdW5jdGlvbigpe30pKEU1KSxmdW5jdGlvbigpe30pKFdZKSxmdW5jdGlvbigpe30pKHM1KSx5cixmdW5jdGlvbigpe30pKEVlKSx3VSkuY29uc3RydWN0b3IsU2U9KCgoKCgoKHgucHJvdG90eXBlLkxqPTAseC5wcm90b3R5cGUuUj0odT14LnByb3RvdHlwZSwiY3JlYXRlIiksdSkuSj0od2luZG93LnBlcmZvcm1hbmNlfHx7fSkubm93P2Z1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUmErd2luZG93LnBlcmZvcm1hbmNlLm5vdygpfTpmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0sdSkuaHM9ZnVuY3Rpb24oayxSLEcsaCxEKXtyZXR1cm4gQ24uY2FsbCh0aGlzLDY0LDMyLGssUixHLGgsRCl9LHUpLlJvPWZ1bmN0aW9uKCl7cmV0dXJuIGhXLmNhbGwodGhpcyw1Nil9LHUpLnNfPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbil7cmV0dXJuIE1QLmNhbGwodGhpcyw1NixrLFIsRyxoLEQsYyxaLG4pfSx1KS50cz1mdW5jdGlvbihrLFIsRyxoLEQsYyxaLG4sbSxCKXtyZXR1cm4gUkIuY2FsbCh0aGlzLDIxLGssUixHLGgsRCxjLFosbixtLEIpfSx1LnBqPWZ1bmN0aW9uKCl7cmV0dXJuIFJCLmNhbGwodGhpcyw2NCl9LHUpLnBYPWZ1bmN0aW9uKGssUixHLGgsRCl7cmV0dXJuIFkuY2FsbCh0aGlzLGssOSxSLEcsaCxEKX0sdS5IVj0wLHZvaWQgMCksSm89KHU9eC5wcm90b3R5cGUsdS5pPWZ1bmN0aW9uKGssUil7cmV0dXJuIFI9KGs9e30sU2U9ZnVuY3Rpb24oKXtyZXR1cm4gaz09Uj81ODoxMDZ9LHt9KSxmdW5jdGlvbihHLGgsRCxjLFosbixtLEIsVCxOLFAsZCxJLFMsWCxNLHIsbCx3LEUsRiwkbixHbyxKLHYsTyx5LHdKLHosUHUsbTcsZyxlTSxMLFU1LHQsVSxPNSxZbixwLEN4KXtmb3IodD0zMixVPXVuZGVmaW5lZCxwPTIwLEN4PWZhbHNlOzspdHJ5e2lmKHQ9PTY1KWJyZWFrO2Vsc2UgaWYodD09NDQpdD1CPzc3OjEwO2Vsc2UgaWYodD09OTEpcD00NyxiTig1NywzMDAwMSx0aGlzLDQxKSx0PTM3O2Vsc2UgaWYodD09ODcpcD00Nyxhdig1MDYsdGhpcywxNyxPNSksVT02NSx0PTM3O2Vsc2UgaWYodD09MjcpVSE9PXVuZGVmaW5lZD8odD1VLFU9dW5kZWZpbmVkKTp0PTY1O2Vsc2UgaWYodD09MjkpcD00Nyx0PTk1O2Vsc2UgaWYodD09MTcpcD01NSxHbygpLHQ9OTU7ZWxzZSBpZih0PT00MSl0PVA9PW1jPzI0OjIxO2Vsc2UgaWYodD09NzApdD0zOTtlbHNlIGlmKHQ9PTU3KXQ9Zy5sZW5ndGg+ND81NjozNjtlbHNlIGlmKHQ9PTI4KU4ubGVuZ3RoPTAsdD0zNztlbHNlIGlmKHQ9PTYpcD03MCx0aGlzLndiPU5UKDI1NSw0MCwwLGF0b2IoJG4pKSx0aGlzLmo9dGhpcy53Yi5sZW5ndGg8PDMsQSgzNjMsdGhpcyxbMCwwLDBdKSx0PTkxO2Vsc2UgaWYodD09MjIpe2lmKEU9KE49Vyh0aGlzLDcxKSx0eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yKSYmTltTeW1ib2wuaXRlcmF0b3JdKXo9RS5jYWxsKE4pO2Vsc2UgaWYodHlwZW9mIE4ubGVuZ3RoPT0ibnVtYmVyIil6PXtuZXh0Ok9SKDEyLDcyLDAsTil9O2Vsc2UgdGhyb3cgRXJyb3IoU3RyaW5nKE4pKyIgaXMgbm90IGFuIGl0ZXJhYmxlIG9yIEFycmF5TGlrZSIpO3Q9KFQ9KHk9eix5Lm5leHQoKSksNDgpfWVsc2UgaWYodD09Nyl0PUdbNF0/NjQ6NTk7ZWxzZSBpZih0PT02NCl7Zm9yKFggaW4gQj1mYWxzZSxoKWlmKFghPT0idCImJk9iamVjdC5oYXNPd24oaCxYKSl7Qj10cnVlO2JyZWFrfXQ9NDR9ZWxzZSBpZih0PT01Myl0PVA9PUJkPzgyOjQzO2Vsc2UgaWYodD09MzgpSj0wLE89IiIsdD03MDtlbHNlIGlmKHQ9PTU2KXQ9Zy5sZW5ndGg+MUU2Pzg4Ojk3O2Vsc2UgaWYodD09MTUpWW49UWgoMCxHWzFdLDE1NywzMDAwMSx0aGlzKSxVPTk5LHQ9Mzc7ZWxzZSBpZih0PT00Myl0PVA9PUFvPzgxOjQxO2Vsc2UgaWYodD09MjUpdD1QPT1kcj8yMjozNztlbHNlIGlmKHQ9PTMyKWVNPWssaz1SLHQ9MztlbHNlIGlmKHQ9PTk2KWg9e30sdj0wLHQ9ODtlbHNlIGlmKHQ9PTg4KWc9Zy5zbGljZSgwLDFFNiksbE4oNDg4LFtdLDcsdGhpcywxMDIpLGplKDQ4OCxbXSx0aGlzLDEzNSksdD05NztlbHNlIGlmKHQ9PTY4KSRuPUdbMV0sdD02O2Vsc2UgaWYodD09NjYpSisrLHQ9Mzk7ZWxzZSBpZih0PT03NCl0PU8/Nzk6Mzg7ZWxzZSBpZih0PT04MSlyPUdbMV1bMV0sYz1LKDIsKG09Yih0aGlzLDQ4OCkubGVuZ3RoLC0yKn4obSYyKSstMisobV4yKSkpLHdKPXRoaXMuQix0aGlzLkI9dGhpcyx0PTExO2Vsc2UgaWYodD09MjQpUWgoMCxHWzFdLDE1NyxHWzJdLHRoaXMpLHQ9Mzc7ZWxzZSBpZih0PT0xOSl0PVUhPT11bmRlZmluZWQ/Mzc6NDtlbHNlIGlmKHQ9PTQpcD00NyxTPVlmKDIpLmNvbmNhdChiKHRoaXMsNDg4KSksU1sxXT0oTT1TWzBdLC0oTXwwKSsoTXwxNTkpKyhNJi0xNjApKSxTWzNdPVNbMV1eY1swXSxTWzRdPVNbMV1eY1sxXSxPPXRoaXMubmooUyksdD03NDtlbHNlIGlmKHQ9PTM2KXA9NDcsdGhpcy5CPXdKLHQ9MTk7ZWxzZSBpZih0PT05NSlUPXkubmV4dCgpLHQ9NDI7ZWxzZSBpZih0PT01MSl0PVA9PSRmPzk2OjUzO2Vsc2UgaWYodD09NTkpdGhpcy5QLnB1c2gobCksdGhpcy5QLnB1c2godyksVT02NSx0PTM3O2Vsc2UgaWYodD09MzkpdD1KPFMubGVuZ3RoPzYwOjYyO2Vsc2UgaWYodD09NzcpWW49e1FUOncsYWE6bCx0aW1lb3V0OnYsTW06ZmFsc2UsSWE6MH0sVT02Myx0PTM3O2Vsc2UgaWYodD09MzMpdD1QPT1HdD82ODo1MTtlbHNlIGlmKHQ9PTQyKXQ9VC5kb25lPzI4Ojk4O2Vsc2UgaWYodD09ODIpbj1HWzFdLG5bMV0ucHVzaChWKDE5MSx0aGlzKS5sZW5ndGgsVyh0aGlzLDE0KS5sZW5ndGgsVyh0aGlzLDQ4OCkubGVuZ3RoLGIodGhpcyw0NDYpLmxlbmd0aCxiKHRoaXMsMTYzKS5sZW5ndGgsYih0aGlzLDMwMilbMF0sVigyNjQsdGhpcykubGVuZ3RoLFcodGhpcyw0MikubGVuZ3RoKSxRKHRoaXMsMTU3LG5bMl0pLHRoaXMuWVs0NjldJiZRaCgwLFYoNDY5LHRoaXMpLDE1NywzMDAwMSx0aGlzKSx0PTM3O2Vsc2UgaWYodD09OTgpR289VC52YWx1ZSx0PTE3O2Vsc2UgaWYodD09NDApcD00Nyx3PVtCZCxHLHRoaXMuUm8oKV0sbD1bQW8sR10sdD03O2Vsc2UgaWYodD09MylwPTQ3LFA9R1swXSx0PTMzO2Vsc2UgaWYodD09MzcpcD0yMCxrPWVNLHQ9Mjc7ZWxzZXtpZih0PT00NylyZXR1cm4gWW47aWYodD09OClwPTc3LGg9Yih0aGlzLDU1KXx8e30sdj1oLnR8MCx0PTQwO2Vsc2UgaWYodD09NjApZD1TW0pdW3RoaXMuTFhdKDE2KSxkLmxlbmd0aD09MSYmKGQ9IjAiK2QpLE8rPWQsdD02NjtlbHNlIGlmKHQ9PTk3KWplKDQ4OCxLKDIsZy5sZW5ndGgpLmNvbmNhdChnKSx0aGlzLDUpLHQ9MzY7ZWxzZSBpZih0PT0xMSlwPTc2LG03PWIodGhpcyw1MDYpLG03Lmxlbmd0aD4wJiZsTig0ODgsSygyLG03Lmxlbmd0aCkuY29uY2F0KG03KSw3LHRoaXMsMTQ3KSxsTig0ODgsSygxLHRoaXMuSCsxPj4xKSw3LHRoaXMsMjQ0KSxqZSg0ODgsSygxLHRoaXNbQW9dLmxlbmd0aCksdGhpcyksUHU9dGhpcy5IdD9WKDE2Myx0aGlzKTpiKHRoaXMsNDQ2KSxQdS5sZW5ndGg+MCYmbE4oMTQsSygyLFB1Lmxlbmd0aCkuY29uY2F0KFB1KSw3LHRoaXMsMjI3KSxGPVYoMTQsdGhpcyksRi5sZW5ndGg+NCYmamUoNDg4LEsoMixGLmxlbmd0aCkuY29uY2F0KEYpLHRoaXMsMjI2KSxJPTAsSSs9Yih0aGlzLDEwMykmMjA0NyxJLT0oWj1WKDQ4OCx0aGlzKS5sZW5ndGgsLTItMip+KFp8NSktKFpeNSkpLGc9Vig0Mix0aGlzKSxnLmxlbmd0aD40JiYoSS09KGcubGVuZ3RofDApKzMpLEk+MCYmamUoNDg4LEsoMixJKS5jb25jYXQoWWYoSSkpLHRoaXMsMTUwKSx0PTU3O2Vsc2UgaWYodD09NzkpTz0iJCIrTyx0PTYyO2Vsc2V7aWYodD09OTkpcmV0dXJuIFluO2lmKHQ9PTEwKXRoaXMuUC5wdXNoKGwpLHRoaXMuUC5wdXNoKHcpLFU9NjUsdD0zNztlbHNlIGlmKHQ9PTIxKXQ9UD09TVQ/MTU6MjU7ZWxzZSBpZih0PT02MilEPU8sYih0aGlzLDE5MSkubGVuZ3RoPXIuc2hpZnQoKSxiKHRoaXMsMTQpLmxlbmd0aD1yLnNoaWZ0KCksVyh0aGlzLDQ4OCkubGVuZ3RoPXIuc2hpZnQoKSxXKHRoaXMsNDQ2KS5sZW5ndGg9ci5zaGlmdCgpLFYoMTYzLHRoaXMpLmxlbmd0aD1yLnNoaWZ0KCksVigzMDIsdGhpcylbMF09ci5zaGlmdCgpLFcodGhpcywyNjQpLmxlbmd0aD1yLnNoaWZ0KCksVyh0aGlzLDQyKS5sZW5ndGg9ci5zaGlmdCgpLFluPUQsVT00Nyx0PTM3O2Vsc2V7aWYodD09NjMpcmV0dXJuIFluO2lmKHQ9PTQ4KXQ9NDI7ZWxzZSBpZih0PT05MCl0aHJvdyBVNTt9fX19Y2F0Y2goaG8pe2lmKHA9PShVNT1obywyMCkpdGhyb3cgaG87cD09NDc/KFU9OTAsdD0zNyk6cD09NzA/KE81PWhvLHQ9ODcpOnA9PTc2PyhVPTkwLHQ9MzYpOnA9PTc3PyhVPTkwLHQ9NDApOnA9PTU1JiYoTD1obyx0PTI5KX19fSgpLHUudXE9ZnVuY3Rpb24oayl7cmV0dXJuIEJZLmNhbGwodGhpcyxrLDcyKX0sLy4vKTtpZih0cnVlKXUubmo9ZnVuY3Rpb24oayl7cmV0dXJuIENuLmNhbGwodGhpcyw2NCw4LGspfTt2YXIgeGY7aWYodS5TaT0odS50eD1mdW5jdGlvbigpe3JldHVybiBDbi5jYWxsKHRoaXMsNjQsNDgpfSwwKSx0cnVlKXUuck49MDt2YXIgSGQ9R3QucG9wLmJpbmQoeC5wcm90b3R5cGVbeC5wcm90b3R5cGVbUlldPSh1LmVpPWZ1bmN0aW9uKCl7cmV0dXJuIE9SLmNhbGwodGhpcywxMiwxNCl9LFswLDAsMSwxLDAsMSwxXSksQmRdKTsoWkQ9KHhmPXRXKDkzLChKb1t4LnByb3RvdHlwZS5MWF09SGQse2dldDpIZH0pLHgucHJvdG90eXBlLlIpLHgucHJvdG90eXBlLldWPXZvaWQgMCxILnRyYXlyaWRlKXx8KEgudHJheXJpZGU9e30pLFpELm0+NDB8fChaRC5tPTQxLFpELmFkPWgwLFpELmE9Z0opLFpEKS5ScnZfPWZ1bmN0aW9uKGssUixHLGgsRCxjLFosbixtLEIpe3JldHVybltmdW5jdGlvbihUKXtyZXR1cm4gTG4oMyxmYWxzZSxCLDcsVCl9LChCPW5ldyB4KGgsayxELGMsUixtLG4sWiksZnVuY3Rpb24oVCl7Qi50eChUKX0pXX07fSkuY2FsbCh0aGlzKTsnXS5qb2luKCdcbicpKSk7fSkuY2FsbCh0aGlzKTs="}},"time_used":44,"timings":{"blocked":0,"dns":2,"connect":27,"send":0,"wait":10,"receive":5,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/youtubei/v1/log_event?alt=json","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.youtube.com/embed/Ymge-qh3m4E","date":"2026-07-27T03:07:43.888Z","timestamp":1785121663888,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"POST /youtubei/v1/log_event?alt=json HTTP/1.1\r\nHost: www.youtube.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\nX-Goog-Request-Time: 1785121663869\r\nContent-Type: application/json\r\nX-Goog-Visitor-Id: CgttenhpVGU3RVJwNCj8lpvTBjIoCgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgI2LfAgrcAjIwLllUPU9EMkFxREpKNUtDZDJGUUhTVDBQUDZubV9QVW5PbU9LS1dfNW4yc1UzVXRvN2JncW1HWlZlelR5MGVUNUNoMXR1MEp6VFVvcllnZ05WTHJxNGlCYnhNZ2pLWVYyZXR2bHZ5dHVLazRURjltdnV0MXBnaHdNSmdVYnVXOHA0WGRnc21ELWlTeTZ6SFFsUkFoQi1KcmJNYVJlNWg1S3NSZEJVRldidnN4c05lSDg5VjZLT09qVlB1WGhKc0VXbUlrbC1MdkUxSHBMWVJxNUVaRlZRWUlPVXMtWjhSNS1sSThBRTB2SlZCZUMyTEd3VDVVcWtjYU1wX0NPTXdzaHAyRUVVWEFLbWZ4aTJvTTZnM0p4VW1raE1UbUx4WjYtZGQ1SVJPY2R2VzZjZElqaVEwR3FkUXo1R3h1QU0zb09JTm5CNFZ0NU9uNEw0VV9HbDVuN2gxUF9DUQ%3D%3D\r\nX-Goog-Event-Time: 1785121663869\r\nX-YouTube-Client-Name: 56\r\nX-YouTube-Client-Version: 2.20260724.01.00\r\nX-YouTube-Device: cbr=Firefox\u0026cbrver=134.0\u0026ceng=Gecko\u0026cengver=134.0\u0026cos=Windows\u0026cosver=10.0\u0026cplatform=DESKTOP\r\nX-YouTube-Page-CL: 953206010\r\nX-YouTube-Page-Label: youtube.embeds.web_20260724_01_RC00\r\nX-YouTube-Utc-Offset: 0\r\nX-YouTube-Time-Zone: UTC\r\nX-YouTube-Ad-Signals: dt=1785121660576\u0026flash=0\u0026frm=2\u0026u_tz\u0026u_his=2\u0026u_h=1024\u0026u_w=1280\u0026u_ah=1024\u0026u_aw=1280\u0026u_cd=24\u0026bc=31\u0026bih=-12245933\u0026biw=-12245933\u0026brdim=0%2C0%2C0%2C0%2C1280%2C0%2C1280%2C1024%2C1280%2C720\u0026vis=1\u0026wgl=true\u0026ca_type=image\r\nContent-Length: 13036\r\nSec-Fetch-Storage-Access: none\r\nOrigin: https://www.youtube.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/embed/Ymge-qh3m4E\r\nCookie: __Secure-YNID=20.YT=OD2AqDJJ5KCd2FQHST0PP6nm_PUnOmOKKW_5n2sU3Uto7bgqmGZVezTy0eT5Ch1tu0JzTUorYggNVLrq4iBbxMgjKYV2etvlvytuKk4TF9mvut1pghwMJgUbuW8p4XdgsmD-iSy6zHQlRAhB-JrbMaRe5h5KsRdBUFWbvsxsNeH89V6KOOjVPuXhJsEWmIkl-LvE1HpLYRq5EZFVQYIOUs-Z8R5-lI8AE0vJVBeC2LGwT5UqkcaMp_COMwshp2EEUXAKmfxi2oM6g3JxUmkhMTmLxZ6-dd5IROcdvW6cdIjiQ0GqdQz5GxuAM3oOINnB4Vt5On4L4U_Gl5n7h1P_CQ; YSC=IgHKWvjgj0E; __Secure-ROLLOUT_TOKEN=CNnI7u31yczMShCAqsGz8PGVAxiAqsGz8PGVAw%3D%3D; VISITOR_INFO1_LIVE=mzxiTe7ERp4; VISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgIw%3D%3D\r\nSec-Fetch-Dest: empty\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":"POST","post_data":{"size":13036,"data":"{\"context\":{\"client\":{\"hl\":\"en\",\"gl\":\"NO\",\"clientName\":56,\"clientVersion\":\"2.20260724.01.00\",\"configInfo\":{\"appInstallData\":\"CPyWm9MGEL2ZsAUQhuGAExCdhrgiEL22rgUQntCwBRDJ9oATEPfEgBMQrtbPHBD299EcEPG00BwQ6fjRHBDgt9EcEODq0RwQn8-AExDevM4cEMGP0BwQi_fPHBDK-4ATEKSp0RwQ_LLOHBCJsM4cENr3zhwQvoqwBRCIkNEcEIqHuCIQmY2xBRCJ5NEcEIHNzhwQvKTQHBCV79EcELjw0RwQjpDRHBCDh7giEO_e0RwQ9quwBRC2-IATEIeszhwQ-fLRHBDM364FEL6E0RwQ8szRHBC45M4cEAAqaENBTVNTUlZDLVpxLURNZVVFcFVDbkE3NUZYYUlGS2pWRDhnRERMTUwyQWJjdWVrTE1xQ3NCQU9RcmdQN0pyYmtCdVNGRjlETUJzU1NCY3M5eFNmWjFRWGRMT1ZHMWE3dkh0c0dIUWM9MAA%3D\"},\"userAgent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\",\"browserName\":\"Firefox\",\"browserVersion\":\"134.0\",\"osName\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"windowWidthPoints\":1280,\"windowHeightPoints\":720},\"thirdParty\":{\"embedUrl\":\"https://7bridgecapital.com/\"}},\"events\":[{\"eventTimeMs\":1785121660588,\"latencyActionTicked\":{\"tickName\":\"mm_is\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660591,\"latencyActionTicked\":{\"tickName\":\"mm_ie\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660596,\"latencyActionTicked\":{\"tickName\":\"ep_init_cus\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660597,\"latencyActionTicked\":{\"tickName\":\"ep_init_eps\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660597,\"latencyActionTicked\":{\"tickName\":\"ep_init_epe\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660597,\"latencyActionTicked\":{\"tickName\":\"ep_init_cue\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660848,\"latencyActionTicked\":{\"tickName\":\"pe\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660850,\"latencyActionTicked\":{\"tickName\":\"ep_init_wes\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660291,\"latencyActionTicked\":{\"tickName\":\"srt\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660178,\"latencyActionBaselined\":{\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660218,\"latencyActionTicked\":{\"tickName\":\"nreqs\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660291,\"latencyActionTicked\":{\"tickName\":\"nress\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660303,\"latencyActionTicked\":{\"tickName\":\"nrese\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660184,\"latencyActionTicked\":{\"tickName\":\"ndnss\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660186,\"latencyActionTicked\":{\"tickName\":\"ndnse\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660186,\"latencyActionTicked\":{\"tickName\":\"ntcps\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660218,\"latencyActionTicked\":{\"tickName\":\"ntcpe\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660195,\"latencyActionTicked\":{\"tickName\":\"nstcps\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660218,\"latencyActionTicked\":{\"tickName\":\"ntcpe\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660434,\"latencyActionTicked\":{\"tickName\":\"wffs\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660518,\"latencyActionTicked\":{\"tickName\":\"wffe\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660418,\"latencyActionTicked\":{\"tickName\":\"rsf_pj\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660478,\"latencyActionTicked\":{\"tickName\":\"rse_pj\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660417,\"latencyActionTicked\":{\"tickName\":\"rsf_pc\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660444,\"latencyActionTicked\":{\"tickName\":\"rse_pc\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660418,\"latencyActionTicked\":{\"tickName\":\"rsf_ecj\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660463,\"latencyActionTicked\":{\"tickName\":\"rse_ecj\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660418,\"latencyActionTicked\":{\"tickName\":\"rsf_ecc\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660436,\"latencyActionTicked\":{\"tickName\":\"rse_ecc\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660857,\"latencyActionInfo\":{\"isNavigation\":true,\"actionType\":\"LATENCY_ACTION_VIDEO_PREVIEW\",\"httpProtocol\":\"h2\",\"transportProtocol\":\"tcp\",\"isVisible\":true,\"loadType\":\"cold\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660575,\"latencyActionTicked\":{\"tickName\":\"rses_dpj\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660861,\"latencyActionTicked\":{\"tickName\":\"ep_init_wee\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660864,\"latencyActionInfo\":{\"serverTimeMs\":53,\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"-1\"}},{\"eventTimeMs\":1785121660895,\"screenCreated\":{\"csn\":\"B--Rvy_jY56lWSGU\",\"pageVe\":{\"veType\":16623,\"youtubeData\":{\"servletData\":{\"serializedServletEventId\":\"fMtmap7uDebcq7YP2ofZEA\"}}}},\"context\":{\"lastActivityMs\":\"15\"}},{\"eventTimeMs\":1785121660895,\"latencyActionInfo\":{\"clientScreenNonce\":\"B--Rvy_jY56lWSGU\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"16\"}},{\"eventTimeMs\":1785121660895,\"screenCreated\":{\"csn\":\"XQ_sB2d1nAF6yloZ\",\"pageVe\":{\"veType\":32594},\"implicitGesture\":{\"parentCsn\":\"B--Rvy_jY56lWSGU\",\"gesturedVe\":{\"veType\":16623},\"gestureType\":\"INTERACTION_LOGGING_GESTURE_TYPE_AUTOMATED\"}},\"context\":{\"lastActivityMs\":\"16\"}},{\"eventTimeMs\":1785121660896,\"visualElementHidden\":{\"csn\":\"B--Rvy_jY56lWSGU\",\"ve\":{\"veType\":16623},\"eventType\":16},\"context\":{\"lastActivityMs\":\"16\"}},{\"eventTimeMs\":1785121660896,\"latencyActionInfo\":{\"clientScreenNonce\":\"XQ_sB2d1nAF6yloZ\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"16\"}},{\"eventTimeMs\":1785121660896,\"visualElementAttached\":{\"csn\":\"XQ_sB2d1nAF6yloZ\",\"parentVe\":{\"veType\":32594},\"childVes\":[{\"trackingParams\":\"CAAQru4BIhMI5pPCs_DxlQMVb5b0Bx0xhDUZygEEo_keHA==\"}]},\"context\":{\"lastActivityMs\":\"17\"}},{\"eventTimeMs\":1785121660898,\"latencyActionTicked\":{\"tickName\":\"qoes\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"19\"}},{\"eventTimeMs\":1785121660898,\"latencyActionTicked\":{\"tickName\":\"fs\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"19\"}},{\"eventTimeMs\":1785121660925,\"latencyActionInfo\":{\"clientPlaybackNonce\":\"DZIsN-i_LO6TwpVn\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"47\"}},{\"eventTimeMs\":1785121660928,\"latencyActionTicked\":{\"tickName\":\"ep_init_pr\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"49\"}},{\"eventTimeMs\":1785121661041,\"latencyActionTicked\":{\"tickName\":\"ep_init_ijs\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"162\"}},{\"eventTimeMs\":1785121661042,\"latencyActionTicked\":{\"tickName\":\"ep_init_ije\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"163\"}},{\"eventTimeMs\":1785121661043,\"latencyActionTicked\":{\"tickName\":\"ep_init_rs\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"164\"}},{\"eventTimeMs\":1785121661048,\"latencyActionTicked\":{\"tickName\":\"ep_init_re\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"169\"}},{\"eventTimeMs\":1785121661074,\"visualElementAttached\":{\"csn\":\"XQ_sB2d1nAF6yloZ\",\"parentVe\":{\"veType\":32594},\"childVes\":[{\"veType\":28572,\"veCounter\":2,\"elementIndex\":0}]},\"context\":{\"lastActivityMs\":\"195\"}},{\"eventTimeMs\":1785121661074,\"visualElementShown\":{\"csn\":\"XQ_sB2d1nAF6yloZ\",\"ve\":{\"veType\":28572,\"veCounter\":2,\"elementIndex\":0},\"eventType\":1},\"context\":{\"lastActivityMs\":\"196\"}},{\"eventTimeMs\":1785121661133,\"latencyActionTicked\":{\"tickName\":\"ftr\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"255\"}},{\"eventTimeMs\":1785121661363,\"latencyActionTicked\":{\"tickName\":\"pot_ist\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"484\"}},{\"eventTimeMs\":1785121661387,\"visualElementAttached\":{\"csn\":\"XQ_sB2d1nAF6yloZ\",\"parentVe\":{\"veType\":32594},\"childVes\":[{\"veType\":23851,\"veCounter\":3,\"elementIndex\":0}]},\"context\":{\"lastActivityMs\":\"508\"}},{\"eventTimeMs\":1785121661387,\"visualElementShown\":{\"csn\":\"XQ_sB2d1nAF6yloZ\",\"ve\":{\"veType\":23851,\"veCounter\":3,\"elementIndex\":0},\"eventType\":1},\"context\":{\"lastActivityMs\":\"508\"}},{\"eventTimeMs\":1785121661387,\"visualElementAttached\":{\"csn\":\"XQ_sB2d1nAF6yloZ\",\"parentVe\":{\"veType\":32594},\"childVes\":[{\"veType\":36925,\"veCounter\":4,\"elementIndex\":0}]},\"context\":{\"lastActivityMs\":\"508\"}},{\"eventTimeMs\":1785121661387,\"visualElementShown\":{\"csn\":\"XQ_sB2d1nAF6yloZ\",\"ve\":{\"veType\":36925,\"veCounter\":4,\"elementIndex\":0},\"eventType\":1},\"context\":{\"lastActivityMs\":\"508\"}},{\"eventTimeMs\":1785121661387,\"foregroundHeartbeatScreenAssociated\":{\"clientDocumentNonce\":\"4F4YW-9lypqAXR_o\",\"clientScreenNonce\":\"B--Rvy_jY56lWSGU\"},\"context\":{\"lastActivityMs\":\"508\"}},{\"eventTimeMs\":1785121661388,\"foregroundHeartbeatScreenAssociated\":{\"clientDocumentNonce\":\"4F4YW-9lypqAXR_o\",\"clientScreenNonce\":\"XQ_sB2d1nAF6yloZ\"},\"context\":{\"lastActivityMs\":\"509\"}},{\"eventTimeMs\":1785121661388,\"latencyActionTicked\":{\"tickName\":\"ol\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"509\"}},{\"eventTimeMs\":1785121661388,\"latencyActionTicked\":{\"tickName\":\"ol\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"509\"}},{\"eventTimeMs\":1785121661388,\"latencyActionTicked\":{\"tickName\":\"ftl\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"509\"}},{\"eventTimeMs\":1785121661745,\"streamzIncremented\":{\"serializedIncrementBatch\":\"ChUvY2xpZW50X3N0cmVhbXovYmcvZWMSEAoOCghib3RndWFyZBICNTMaAmVuGgJtayIRCgMKAW8KBgoEYUdJZhICCAEiEQoDCgF0CgYKBGFHSWYSAggBIhEKAwoBaAoGCgRhR0lmEgIIEg==\"},\"context\":{\"lastActivityMs\":\"866\"}},{\"eventTimeMs\":1785121661748,\"streamzIncremented\":{\"serializedIncrementBatch\":\"ChUvY2xpZW50X3N0cmVhbXovYmcvZWwSEAoOCghib3RndWFyZBICNTMaAmVuGgJtayIYCgMKAWgKBgoEYUdJZhIJEQAAAAAAACZAIhgKAwoBaAoGCgRhR0lmEgkRAAAAAAAAM0AiGAoDCgFoCgYKBGFHSWYSCREAAAAAAAAmQCIYCgMKAWgKBgoEYUdJZhIJEQAAAAAAACZAIhgKAwoBaAoGCgRhR0lmEgkRAAAAAAAAJkAiGAoDCgFoCgYKBGFHSWYSCREAAAAAAAAmQCIYCgMKAWgKBgoEYUdJZhIJEQAAAAAAACZAIhgKAwoBaAoGCgRhR0lmEgkRAAAAAAAACEAiGAoDCgFoCgYKBGFHSWYSCREAAAAAAAA6QCIYCgMKAWgKBgoEYUdJZhIJEQAAAAAAACZAIhgKAwoBaAoGCgRhR0lmEgkRAAAAAAAACEAiGAoDCgFoCgYKBGFHSWYSCREAAAAAAAAkQCIYCgMKAWgKBgoEYUdJZhIJEQAAAAAAACZAIhgKAwoBaAoGCgRhR0lmEgkRAAAAAAAAKEAiGAoDCgFoCgYKBGFHSWYSCREAAAAAAAAmQCIYCgMKAWgKBgoEYUdJZhIJEQAAAAAAgFRAIhgKAwoBaAoGCgRhR0lmEgkRAAAAAAAAJkAiGAoDCgFoCgYKBGFHSWYSCREAAAAAAAAkQCIYCgMKAXQKBgoEYUdJZhIJEQAAAAAAYHNA\"},\"context\":{\"lastActivityMs\":\"869\"}},{\"eventTimeMs\":1785121661866,\"latencyActionTicked\":{\"tickName\":\"pot_if\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"988\"}},{\"eventTimeMs\":1785121661867,\"latencyActionTicked\":{\"tickName\":\"pot_cms\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"988\"}},{\"eventTimeMs\":1785121661868,\"latencyActionTicked\":{\"tickName\":\"pot_cmf\",\"clientActionNonce\":\"JOwhmnlf6beBkq-8\"},\"context\":{\"lastActivityMs\":\"990\"}},{\"eventTimeMs\":1785121662749,\"streamzIncremented\":{\"serializedIncrementBatch\":\"ChYvY2xpZW50X3N0cmVhbXovYmcvZnJzEhAKDgoIYm90Z3VhcmQSAjUzGgJtayITCgYKBGFHSWYSCREAAAAAANybQA==\"},\"context\":{\"lastActivityMs\":\"1870\"}},{\"eventTimeMs\":1785121662750,\"streamzIncremented\":{\"serializedIncrementBatch\":\"ChUvY2xpZW50X3N0cmVhbXovYmcvZWMSEAoOCghib3RndWFyZBICNTMaAmVuGgJtayIRCgMKAW4KBgoEYUdJZhICCAEiEQoDCgFtCgYKBGFHSWYSAggB\"},\"context\":{\"lastActivityMs\":\"1871\"}},{\"eventTimeMs\":1785121662750,\"streamzIncremented\":{\"serializedIncrementBatch\":\"ChUvY2xpZW50X3N0cmVhbXovYmcvZWwSEAoOCghib3RndWFyZBICNTMaAmVuGgJtayIYCgMKAW4KBgoEYUdJZhIJEQAAAAAAADRAIhgKAwoBaQoGCgRhR0lmEgkRAAAAAAAA8D8iGAoDCgFvCgYKBGFHSWYSCREAAAAAAHB/QCIYCgMKAWMKBgoEYUdJZhIJEQAAAAAAAAAAIhgKAwoBQwoGCgRhR0lmEgkRAAAAAAAA8D8iGAoDCgF4CgYKBGFHSWYSCREAAAAAAAAAACIYCgMKAW0KBgoEYUdJZhIJEQAAAAAAAPA/\"},\"context\":{\"lastActivityMs\":\"1871\"}}],\"serializedClientEventId\":{\"serializedEventId\":\"fMtmap7uDebcq7YP2ofZEA\",\"clientCounter\":\"9264\"}}"}},"response":{"raw":"HTTP/3 200 \r\ncontent-type: application/json; charset=UTF-8\r\nvary: Origin, X-Origin, Referer\r\ncontent-encoding: br\r\ndate: Mon, 27 Jul 2026 03:07:43 GMT\r\nserver: scaffolding on HTTPServer2\r\ncontent-length: 31\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":28,"size_decoded":381,"mime_type":"application/json; charset=UTF-8","magic":"JSON text data","md5":"5e1fa6fd9abd549a576f3f24b1d3c8d4","sha1":"d5335d7f7d33be6a0b663f03b2df4df2521c4a87","sha256":"d7d5e54ad1e33d7ab49c664323ced79cb9723ff15e9764cd0edc3e15208e8336","sha512":"96e6938256b8e5924210f8e8e54a85d783fa2c01d5fbe5d2a8df7655fed9ef8be73c7cd8bf042c3c84302134b7418711397eece32f081eb7e824a519cc06b4e3","ssdeep":"","tlshash":"1c800038a8200b22232000ea202888322ac8c8203200ca28830200280cc0a0000a2282","first_seen":"2023-04-05T04:40:08Z","last_seen":"2026-07-27T05:12:06.994593Z","times_seen":281883,"resource_available":false,"data":"ewogICJyZXNwb25zZUNvbnRleHQiOiB7fQp9Cg=="}},"time_used":31,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":31,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget.intercom.io/widget/p60ru8yf","fqdn":"widget.intercom.io","domain":"intercom.io","tld":"io"},"ip":{"addr":"52.84.50.109","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:41.064Z","timestamp":1785121661064,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.intercom.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Thu, 13 Nov 2025 00:00:00 GMT","end":"Fri, 11 Dec 2026 23:59:59 GMT"},"fingerprint":{"sha1":"E2:7C:0F:4C:CC:B1:6F:45:04:99:4A:D4:CB:5C:0B:60:CA:75:CD:8E","sha256":"A6:51:D4:CB:51:4E:EF:B9:AD:B6:95:84:A1:3B:92:C1:BF:81:F5:22:36:A3:50:A2:8E:92:09:4A:15:D0:7E:CC"}}},"request":{"raw":"GET /widget/p60ru8yf HTTP/1.1\r\nHost: widget.intercom.io\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://7bridgecapital.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\ncontent-type: application/javascript; charset=UTF-8\r\ncontent-length: 3160\r\nlast-modified: Fri, 24 Jul 2026 17:56:13 GMT\r\nx-amz-server-side-encryption: AES256\r\ncontent-encoding: gzip\r\nx-amz-version-id: Uiv7MXZX4JwemUiaazIo3wyySC0w7QIY\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 03:04:35 GMT\r\ncache-control: max-age=300, s-maxage=300, public\r\netag: \"ab29a6cceffa42565bd243f1b5ea6058\"\r\nx-cache: Error from cloudfront\r\nvia: 1.1 50557aa30b42f85b01a1a22ebf5ee7a0.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: OSL50-P3\r\nalt-svc: h3=\":443\"; ma=86400\r\nx-amz-cf-id: D7w9zKsLXhA_blvDGjukvWFX7L9jksvSUz6gFlm3j0CNHvyJicp3-g==\r\nage: 186\r\ncross-origin-resource-policy: cross-origin\r\nvary: Accept-Encoding, Origin\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.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"]},{"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":7614,"size_decoded":3912,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (7614), with no line terminators","md5":"64323637c5757fe2bdc37bc1697c131b","sha1":"17615e72f6a5c035e9d59f979f1d74472a2839d1","sha256":"8891fe40795928600c2b6a8981fe3f0cb1c4aea8950005aa4a01fb1c00f769bb","sha512":"582c9429172ba70962ec855b69346da532af2a1e9018380eec47ca06694e19bc5efbd5a7007f034ba6e0aaa446b4c7e4080662d3de965a0aecc8f8f5ec43219a","ssdeep":"96:p2NH8/xVRyhsXtpZ8HEZgOM09SP0FfpdYMYozfDsJeiMw938I5Zv1JVqUP:p2YVNCH8bMFOrYMYoMMiZ935pqUP","tlshash":"1ff195feb6c2793806a31576623b770c3e3b654528494490d066c8cc7a76dcbc16bfad","first_seen":"2026-07-24T18:07:21.49761Z","last_seen":"2026-07-27T05:14:04.74945Z","times_seen":218,"resource_available":true,"data":"IWZ1bmN0aW9uKCl7dmFyIGU9ezc4MzkwOmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz17c291cmNlX21hcDoiaGlkZGVuLXNvdXJjZS1tYXAiLGFwaV9iYXNlOiJodHRwczovL2FwaS1pYW0uaW50ZXJjb20uaW8iLHRlbGVtZXRyeV9iYXNlOiJodHRwczovL2FwaS1pYW0uaW50ZXJjb20uaW8iLHB1YmxpY19wYXRoOiJodHRwczovL2pzLmludGVyY29tY2RuLmNvbS8iLHl0X2lmcmFtZV9wcm94eV9wYXRoOiJodHRwczovL2ludGVyY29tLXNoZWV0cy5jb20veW91dHViZV9pZnJhbWVfcHJveHkiLHNoZWV0c19wcm94eV9wYXRoOiJodHRwczovL2ludGVyY29tLXNoZWV0cy5jb20vc2hlZXRzX3Byb3h5IixzZW50cnlfcHJveHlfcGF0aDoiaHR0cHM6Ly93d3cuaW50ZXJjb20tcmVwb3J0aW5nLmNvbS9zZW50cnkvaW5kZXguaHRtbCIsaW5zdGFsbF9tb2RlX2Jhc2U6Imh0dHBzOi8vYXBwLmludGVyY29tLmNvbSIsc2VudHJ5X2RzbjoiaHR0cHM6Ly9mMzA1ZGU2OWNhYzY0YTg0YTQ5NDU1NmQ1MzAzZGMyZEBhcHAuZ2V0c2VudHJ5LmNvbS8yNDI4NyIsaW50ZXJzZWN0aW9uX2pzOiJodHRwczovL2pzLmludGVyY29tY2RuLmNvbS9pbnRlcnNlY3Rpb24vYXNzZXRzL2FwcC5qcyIsaW50ZXJzZWN0aW9uX3N0eWxlczoiaHR0cHM6Ly9qcy5pbnRlcmNvbWNkbi5jb20vaW50ZXJzZWN0aW9uL2Fzc2V0cy9zdHlsZXMuanMiLGFydGljbGVfc2VhcmNoX21lc3Nlbmdlcl9hcHBfaWQ6MjcsbW9kZToicHJvZHVjdGlvbiJ9fX0sdD17fTtmdW5jdGlvbiBuKHIpe3ZhciBpPXRbcl07aWYodm9pZCAwIT09aSlyZXR1cm4gaS5leHBvcnRzO3ZhciBvPXRbcl09e2V4cG9ydHM6e319O3JldHVybiBlW3JdKG8sby5leHBvcnRzLG4pLG8uZXhwb3J0c30hZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9L2lwaG9uZXxpcGFkfGlwb2R8YW5kcm9pZHxibGFja2JlcnJ5fG9wZXJhIG1pbml8aWVtb2JpbGUvaSx0PVsiLmludGVyY29tLWxpZ2h0d2VpZ2h0LWFwcC1sYXVuY2hlciIsIi5pbnRlcmNvbS1sYXVuY2hlci1mcmFtZSIsIiNpbnRlcmNvbS1jb250YWluZXIiLCIuaW50ZXJjb20tbWVzc2VuZ2VyIiwiLmludGVyY29tLW5vdGlmaWNhdGlvbnMiXTtmdW5jdGlvbiByKGUpe3RyeXtpZighKGUgaW4gd2luZG93KSlyZXR1cm4hMTt2YXIgdD13aW5kb3dbZV07cmV0dXJuIG51bGwhPT10JiYodC5zZXRJdGVtKCJpbnRlcmNvbS10ZXN0IiwiMCIpLHQucmVtb3ZlSXRlbSgiaW50ZXJjb20tdGVzdCIpLCEwKX1jYXRjaChlKXtyZXR1cm4hMX19ZnVuY3Rpb24gaSgpe3ZhciBlPW8oKS52ZW5kb3J8fCIiLHQ9bygpLnVzZXJBZ2VudHx8IiI7cmV0dXJuIDA9PT1lLmluZGV4T2YoIkFwcGxlIikmJi9cc1NhZmFyaVwvLy50ZXN0KHQpfWZ1bmN0aW9uIG8oKXtyZXR1cm4gbmF2aWdhdG9yfHx7fX1mdW5jdGlvbiBhKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1vKCkudXNlckFnZW50KSwvaVBhZHxpUGhvbmV8aVBvZC8udGVzdChlKSYmIXdpbmRvdy5NU1N0cmVhbX1mdW5jdGlvbiBzKCl7dmFyIGU7cmV0dXJuKG51bGw9PShlPWZ1bmN0aW9uKCl7aWYoYSgpKXt2YXIgZT1vKCkuYXBwVmVyc2lvbi5tYXRjaCgvT1MgKFxkKylfKFxkKylfPyhcZCspPy8pO3JldHVybnttYWpvcjpwYXJzZUludChlWzFdLDEwKSxtaW5vcjpwYXJzZUludChlWzJdLDEwKSxwYXRjaDpwYXJzZUludChlWzNdfHwwLDEwKX19cmV0dXJuIG51bGx9KCkpP3ZvaWQgMDplLm1ham9yKT49MTV9dmFyIGM9e2hhc1hocjJTdXBwb3J0OmZ1bmN0aW9uKCl7cmV0dXJuIlhNTEh0dHBSZXF1ZXN0ImluIHdpbmRvdyYmIndpdGhDcmVkZW50aWFscyJpbiBuZXcgWE1MSHR0cFJlcXVlc3R9LGhhc0xvY2FsU3RvcmFnZVN1cHBvcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gcigibG9jYWxTdG9yYWdlIil9LGhhc1Nlc3Npb25TdG9yYWdlU3VwcG9ydDpmdW5jdGlvbigpe3JldHVybiByKCJzZXNzaW9uU3RvcmFnZSIpfSxoYXNGaWxlU3VwcG9ydDpmdW5jdGlvbigpe3JldHVybiEhKHdpbmRvdy5GaWxlUmVhZGVyJiZ3aW5kb3cuRmlsZSYmd2luZG93LkZpbGVMaXN0JiZ3aW5kb3cuRm9ybURhdGEpfSxoYXNBdWRpb1N1cHBvcnQ6ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhdWRpbyIpO3JldHVybiEhZS5jYW5QbGF5VHlwZSYmISFlLmNhblBsYXlUeXBlKCJhdWRpby9tcGVnOyIpLnJlcGxhY2UoL15ubyQvLCIiKX0saGFzVmlzaWJpbGl0eVN1cHBvcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09ZG9jdW1lbnQuaGlkZGVufHx2b2lkIDAhPT1kb2N1bWVudC5tb3pIaWRkZW58fHZvaWQgMCE9PWRvY3VtZW50Lm1zSGlkZGVufHx2b2lkIDAhPT1kb2N1bWVudC53ZWJraXRIaWRkZW59LG1lc3NlbmdlcklzVmlzaWJsZTpmdW5jdGlvbigpe3JldHVybiB0LnNvbWUoKGZ1bmN0aW9uKGUpe3ZhciB0PXdpbmRvdy5wYXJlbnQuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlKTtpZih0KXt2YXIgbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBuJiZuLndpZHRoPjAmJm4uaGVpZ2h0PjB9fSkpfSxtZXNzZW5nZXJIYXNEaXNwbGF5Tm9uZVNldDpmdW5jdGlvbigpe3JldHVybiB0LnNvbWUoKGZ1bmN0aW9uKGUpe3ZhciB0PXdpbmRvdy5wYXJlbnQuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlKTtpZih0KXt2YXIgbj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KTtyZXR1cm4gbnVsbD09PW58fCJub25lIj09PW4uZGlzcGxheX19KSl9LGlzTW9iaWxlQnJvd3NlcjpmdW5jdGlvbigpe3ZhciB0PW8oKS51c2VyQWdlbnQ7cmV0dXJuISF0JiYobnVsbCE9PXQubWF0Y2goZSkmJnZvaWQgMCE9PXdpbmRvdy5wYXJlbnQpfSxpc0lPU0ZpcmVmb3g6ZnVuY3Rpb24oKXtyZXR1cm4hIW8oKS51c2VyQWdlbnQubWF0Y2goIkZ4aU9TIil9LGlzRmlyZWZveDpmdW5jdGlvbigpe3JldHVybiEhbygpLnVzZXJBZ2VudC5tYXRjaCgiRmlyZWZveCIpfSxpc1NhZmFyaTppLGlzRWxlY3Ryb246ZnVuY3Rpb24oKXt2YXIgZT1vKCkudXNlckFnZW50fHwiIix0PXdpbmRvdy5wYXJlbnR8fHt9LG49dC5wcm9jZXNzJiZ0LnZlcnNpb25zJiZ0LnZlcnNpb25zLmVsZWN0cm9uO3JldHVybi9cc0VsZWN0cm9uXC8vLnRlc3QoZSl8fG59LGlzSUU6ZnVuY3Rpb24oKXt2YXIgZT1vKCkudXNlckFnZW50fHwiIjtyZXR1cm4gZS5pbmRleE9mKCJNU0lFIik+MHx8ZS5pbmRleE9mKCJUcmlkZW50Iik+MH0saXNFZGdlOmZ1bmN0aW9uKCl7cmV0dXJuKG8oKS51c2VyQWdlbnR8fCIiKS5pbmRleE9mKCJFZGdlIik+MH0saXNOYXRpdmVNb2JpbGU6ZnVuY3Rpb24oKXtyZXR1cm4gbygpLmlzTmF0aXZlTW9iaWxlfSxpc0Nocm9tZTpmdW5jdGlvbigpe3ZhciBlPXdpbmRvdy5jaHJvbWUsdD1vKCkudmVuZG9yLG49bygpLnVzZXJBZ2VudC5pbmRleE9mKCJPUFIiKT4tMSxyPW8oKS51c2VyQWdlbnQuaW5kZXhPZigiRWRnZSIpPi0xO3JldHVybiEhbygpLnVzZXJBZ2VudC5tYXRjaCgiQ3JpT1MiKXx8bnVsbCE9ZSYmIkdvb2dsZSBJbmMuIj09PXQmJiExPT09biYmITE9PT1yfSxpc0lPUzphLGlzSU9TMTVTYWZhcmk6ZnVuY3Rpb24oKXt2YXIgZT1vKCkudXNlckFnZW50LHQ9YShlKSxuPSEhZS5tYXRjaCgvV2ViS2l0L2kpO3JldHVybiB0JiZuJiYhZS5tYXRjaCgvQ3JpT1MvaSkmJnMoKX0saXNBbmRyb2lkOmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1vKCkudXNlckFnZW50KSxlJiZlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiYW5kcm9pZCIpPi0xfSxpc01hY09TOmZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJNYWMiKT49MH19LHU9WyJ0dXJibzp2aXNpdCIsInR1cmJvbGlua3M6dmlzaXQiLCJwYWdlOmJlZm9yZS1jaGFuZ2UiXSxkPVsidHVyYm86YmVmb3JlLWNhY2hlIiwidHVyYm9saW5rczpiZWZvcmUtY2FjaGUiXSxtPVsidHVyYm86bG9hZCIsInR1cmJvbGlua3M6bG9hZCIsInBhZ2U6Y2hhbmdlIl07dmFyIHA9ZnVuY3Rpb24oZSx0LG4pe3ZvaWQgMD09PW4mJihuPSExKTt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtyZXR1cm4gci50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLHIuY2hhcnNldD0idXRmLTgiLHIuc3JjPWUsdCYmIW4mJihyLmludGVncml0eT10LHIuY3Jvc3NPcmlnaW49ImFub255bW91cyIpLHJ9LGw9big3ODM5MCkucHVibGljX3BhdGgsZj0ic2hhMzg0LU5lQkJ2am9hbXF3NUFoVncyamRTaDhEbzViZWhTN1pqMUFGY0xiWVRLMGQzMmIreFJhdXdoQmtNZCtyQ09jUm8iLGg9InNoYTM4NC04M2o0dmNBS3Vub2NKZlBmQW9mZ3ZXM2ZTMUFSV3p0WDlVampEVEU3MzI1RlFEaFpHZThqOEZLQ3RBT2dFM3BiIix3PSJzaGEzODQtRDBPREtnZDlVcmFOd3QwdGt5Und2WmN6TkpuWHkzQm1MczlsVjlCa2ppSWg3TzZ6UWNvZnZoa2UrZlBaeXZMeSIsZz0ic2hhMzg0LXFwcEZpa3EwWFBhaXp2ZXFjU2lvbHpQZU52cW5LaXlKaTM5aWxQUVlNaEdhVTVBNGRyaHVITXoyaE9zNnFKdmIiLHY9bCsiZnJhbWUuNTkyYTk0ZjYuanMiLF89bCsidmVuZG9yLmY2YjY0OTUzLmpzIixiPWwrImZyYW1lLW1vZGVybi4yMGY2Yzg2ZS5qcyIseT1sKyJ2ZW5kb3ItbW9kZXJuLjE0NmEzZmUxLmpzIixFPSJJbnRlcmNvbSIsQT0vYm90fGdvb2dsZWJvdHxjcmF3bGVyfHNwaWRlcnxyb2JvdHxjcmF3bGluZ3xmYWNlYm9va2V4dGVybmFsaGl0fGNlZnNoYXJwfGhlYWRsZXNzY2hyb21lfHBoYW50b21qcy9pLFM9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93W0VdJiZ3aW5kb3dbRV0uYm9vdGVkfSx4PWZ1bmN0aW9uKCl7dmFyIGUsdD0hIShlPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0Nocm9tKD86ZXxpdW0pXC8oWzAtOVwuXSspLykpJiZlWzFdO3JldHVybiEhdCYmdC5zcGxpdCgiLiIpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUpfSkpfSxJPW5ldyBTZXQoWyJuby1yZWZlcnJlciIsIm5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIiwic2FtZS1vcmlnaW4iLCJvcmlnaW4iLCJzdHJpY3Qtb3JpZ2luIiwib3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiwic3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiIsInVuc2FmZS11cmwiXSk7dmFyIE8sTSxSPWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7ZS5pZD0iaW50ZXJjb20tZnJhbWUiLGUuc2V0QXR0cmlidXRlKCJzdHlsZSIsInBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7IHdpZHRoOiAxcHggIWltcG9ydGFudDsgaGVpZ2h0OiAxcHggIWltcG9ydGFudDsgdG9wOiAwICFpbXBvcnRhbnQ7IGxlZnQ6IDAgIWltcG9ydGFudDsgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IHotaW5kZXg6IC0xICFpbXBvcnRhbnQ7IHBvaW50ZXItZXZlbnRzOiBub25lOyIpLGkoKSYmZS5zZXRBdHRyaWJ1dGUoInN0eWxlIixlLmdldEF0dHJpYnV0ZSgic3R5bGUiKSsidmlzaWJpbGl0eTogaGlkZGVuOyIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSxlLnNldEF0dHJpYnV0ZSgidGFiSW5kZXgiLCItMSIpLGUuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIkludGVyY29tIiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKSxmdW5jdGlvbihlLHQsbil7aWYodm9pZCAwPT09biYmKG49ImVuIiksZS5jb250ZW50RG9jdW1lbnQpe2lmKGMuaXNGaXJlZm94KCkpe3ZhciByPWUuY29udGVudERvY3VtZW50Lm9wZW4oKTtyLndyaXRlKCI8IURPQ1RZUEUgaHRtbD4iKSxyLmNsb3NlKCl9IWZ1bmN0aW9uKGUsdCxuKXt2b2lkIDA9PT1uJiYobj0iZW4iKSxlLmRvY3VtZW50RWxlbWVudC5pbm5lckhUTUw9dCxlLmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoImxhbmciLG4pfShlLmNvbnRlbnREb2N1bWVudCx0LG4pfX0oZSwnPCFET0NUWVBFIGh0bWw+XG4gICAgPGh0bWwgbGFuZz0iZW4iPlxuICAgICAgPGhlYWQ+PC9oZWFkPlxuICAgICAgPGJvZHk+XG4gICAgICA8L2JvZHk+XG4gICAgPC9odG1sPicpLGZ1bmN0aW9uKGUsdCl7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9InJlZmVycmVyIl0nKTtpZihuKXt2YXIgcj0obi5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKXx8IiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO2lmKEkuaGFzKHIpKXt2YXIgaT1lLmNyZWF0ZUVsZW1lbnQoIm1ldGEiKTtpLnNldEF0dHJpYnV0ZSgibmFtZSIsInJlZmVycmVyIiksaS5zZXRBdHRyaWJ1dGUoImNvbnRlbnQiLHIpLGUuaGVhZC5hcHBlbmRDaGlsZChpKX19fShlLmNvbnRlbnREb2N1bWVudCxkb2N1bWVudCk7dmFyIHQsbj0hISh0PXgoKSkmJnRbMF0+PTEyMCxyPW4/ZzpoLG89ITEsYT1wKG4/Yjp2LG4/dzpmLG8pLHM9cChuP3k6XyxyLG8pO3JldHVybiBlLmNvbnRlbnREb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpLGUuY29udGVudERvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocyksd2luZG93Ll9faW50ZXJjb21Bc3NpZ25Mb2NhdGlvbj1mdW5jdGlvbihlKXt3aW5kb3cubG9jYXRpb24uYXNzaWduKGUpfSx3aW5kb3cuX19pbnRlcmNvbVJlbG9hZExvY2F0aW9uPWZ1bmN0aW9uKCl7d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpfSxlfSxDPWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImludGVyY29tLWZyYW1lIik7ZSYmZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSksZGVsZXRlIHdpbmRvdy5fX2ludGVyY29tQXNzaWduTG9jYXRpb24sZGVsZXRlIHdpbmRvdy5fX2ludGVyY29tUmVsb2FkTG9jYXRpb259LEw9ZnVuY3Rpb24oKXtpZighd2luZG93W0VdKXt2YXIgZT1mdW5jdGlvbiBlKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcgQXJyYXkodCkscj0wO3I8dDtyKyspbltyXT1hcmd1bWVudHNbcl07ZS5xLnB1c2gobil9O2UucT1bXSx3aW5kb3dbRV09ZX19LGo9ZnVuY3Rpb24oKXtTKCl8fChMKCksUigpLHdpbmRvd1tFXS5ib290ZWQ9ITApfTsiYXR0YWNoRXZlbnQiaW4gd2luZG93JiYhd2luZG93LmFkZEV2ZW50TGlzdGVuZXJ8fG5hdmlnYXRvciYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmL01TSUUgOVwuMC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXImJiF3aW5kb3cuYXRvYnx8Im9ucHJvcGVydHljaGFuZ2UiaW4gZG9jdW1lbnQmJndpbmRvdy5tYXRjaE1lZGlhJiYvTVNJRSAxMFwuMC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KXx8KHZvaWQgMD09PU8mJihPPW51bGw9PShNPW5hdmlnYXRvcik/dm9pZCAwOk0udXNlckFnZW50KSxPJiZBLnRlc3QoTykpfHx3aW5kb3cuaXNJbnRlcmNvbU1lc3NlbmdlclNoZWV0fHxTKCl8fChqKCksZnVuY3Rpb24oZSx0LG4pe20uZm9yRWFjaCgoZnVuY3Rpb24odCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0LGUpfSkpLGQuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihlLHQpfSkpLHUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihlLG4pfSkpfShqLEMsKGZ1bmN0aW9uKCl7d2luZG93W0VdKCJzaHV0ZG93biIsITEpLGRlbGV0ZSB3aW5kb3dbRV0sQygpLEwoKX0pKSl9KCl9KCk7"}},"time_used":323,"timings":{"blocked":-1,"dns":4,"connect":1,"send":0,"wait":308,"receive":0,"ssl":10},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"js.intercomcdn.com/frame.592a94f6.js","fqdn":"js.intercomcdn.com","domain":"intercomcdn.com","tld":"com"},"ip":{"addr":"3.164.240.40","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:41.423Z","timestamp":1785121661423,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.intercomcdn.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Tue, 30 Sep 2025 00:00:00 GMT","end":"Wed, 28 Oct 2026 23:59:59 GMT"},"fingerprint":{"sha1":"64:9F:0E:45:43:8B:97:70:93:C0:3C:A3:8C:86:3C:74:78:46:6C:83","sha256":"E3:A5:51:D3:19:77:B6:1B:44:2E:AB:1F:87:9D:CF:AA:C8:71:56:3F:4E:E4:70:F5:F0:03:7E:70:C2:D9:65:BF"}}},"request":{"raw":"GET /frame.592a94f6.js HTTP/1.1\r\nHost: js.intercomcdn.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://7bridgecapital.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://7bridgecapital.com/\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\ncontent-type: application/javascript; charset=UTF-8\r\ncontent-length: 192777\r\nlast-modified: Fri, 24 Jul 2026 17:54:10 GMT\r\nx-amz-server-side-encryption: AES256\r\ncontent-encoding: br\r\nx-amz-version-id: JiywCYbV8fpc0FUvCHpVbdgJwbKTwB8z\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 01:56:17 GMT\r\ncache-control: max-age=31536000, s-maxage=7200, public\r\netag: \"1ad96839ca9934ab9314822f03a233d7\"\r\nvary: Accept-Encoding\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 39e03a84352b80cf7e2b59c41f27a026.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: ARN53-P2\r\nalt-svc: h3=\":443\"; ma=86400\r\nx-amz-cf-id: uXDwLQFgv1T7Sy8y7U59JmR8V5wbks0bfpnVn1nzjl2srltbcq-kgQ==\r\nage: 4285\r\nx-content-type-options: nosniff\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\ncross-origin-resource-policy: cross-origin\r\naccess-control-allow-origin: *\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"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 S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.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"]},{"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":1247851,"size_decoded":193664,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (65464)","md5":"6e9985840246778980d439efd79dde62","sha1":"921ee30aa1d0bca8913d1ae22cd0b9daea44a314","sha256":"c702dd6f5787265bf5a963618c722db984f41892c4e8c0fd3a7a5899230d8ab4","sha512":"c06903dee5df7b6a7ccfeaa455a4e30a1961bbe1b31d91c4e88ae515df31bcea542ebcb5585ea1db44f17066e8d1e1cd6d3e0d6f186a4b8f893c613722ff3363","ssdeep":"6144:hgUq9l5jjmF1Et0WZzASCkw3rMLj7MdMzL11oIYTn9SIK598zWfZXlQOmcDq6WZT:kNmFat0p7kl4r+RdFnGMgo/aH/p","tlshash":"9225d6ccb2d6f06a43976175812f200af33e6959b54d8050f629e8d1bcb958ee237f78","first_seen":"2026-07-24T18:07:21.508945Z","last_seen":"2026-07-27T05:14:04.868904Z","times_seen":214,"resource_available":false,"data":"LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgZnJhbWUuNTkyYTk0ZjYuanMuTElDRU5TRS50eHQgKi8KIWZ1bmN0aW9uKCl7dmFyIHQsZSxuLHIsbyxpPXs3MzIzMDpmdW5jdGlvbih0LGUsbil7dmFyIHI9eyIuL2ZhaWxlZC5tcDMiOjMyODYzLCIuL25vdGlmaWNhdGlvbi5tcDMiOjk5MzQxLCIuL29wZXJhdG9yLm1wMyI6MzgyNDQsIi4vc3VibWl0Lm1wMyI6NDQxNTZ9O2Z1bmN0aW9uIG8odCl7dmFyIGU9aSh0KTtyZXR1cm4gbihlKX1mdW5jdGlvbiBpKHQpe2lmKCFuLm8ocix0KSl7dmFyIGU9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrdCsiJyIpO3Rocm93IGUuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsZX1yZXR1cm4gclt0XX1vLmtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMocil9LG8ucmVzb2x2ZT1pLHQuZXhwb3J0cz1vLG8uaWQ9NzMyMzB9LDI1MTY5OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj17Ii4vYXIuanNvbiI6WzkzNTE3LDQwOTldLCIuL2F6LUFaLmpzb24iOls3ODE4Myw2OTE1XSwiLi9iZy5qc29uIjpbMjUwODksMTM5NV0sIi4vYm4uanNvbiI6WzM4NDc4LDkwMTZdLCIuL2JzLmpzb24iOls0NTYzNyw0NzgzXSwiLi9jYS5qc29uIjpbNTE0ODIsMzI0NF0sIi4vY3MuanNvbiI6WzU2NDA4LDc3MzhdLCIuL2RhLmpzb24iOls4MTQ2OSwyNDk5XSwiLi9kZS1mb3JtLmpzb24iOls3Mjk1NCw3OTBdLCIuL2RlLmpzb24iOls3ODM0NSw3MjMxXSwiLi9lbC5qc29uIjpbNDEzNjMsNTMwNV0sIi4vZW4uanNvbiI6WzI2NzY1XSwiLi9lcy5qc29uIjpbMzIwNzAsNjcwMF0sIi4vZXQuanNvbiI6Wzk4NTEsNzEwNV0sIi4vZmEtSVIuanNvbiI6WzI4OTcsMzEwNV0sIi4vZmkuanNvbiI6Wzc3MjIzLDU3NzddLCIuL2ZyLUNBLmpzb24iOls4OTc1NywzMjAxXSwiLi9mci5qc29uIjpbMTQzMzQsNjMyOF0sIi4vaGUuanNvbiI6WzIxMjY5LDQ2NDNdLCIuL2hpLmpzb24iOls2ODI2NSw2NzQzXSwiLi9oci5qc29uIjpbNzI4MDQsNzE3OF0sIi4vaHUuanNvbiI6WzU1MTA5LDYyMjddLCIuL2h5Lmpzb24iOls5NDc0NSw1MDMxXSwiLi9pZC5qc29uIjpbNjIwMzksOTI2OV0sIi4vaXQuanNvbiI6WzE2OTM1LDMxMDldLCIuL2phLmpzb24iOls5NzUzOSw3NDQ1XSwiLi9rYS5qc29uIjpbMjY1MzAsNjk5Nl0sIi4va28uanNvbiI6WzcxNDAsNjM5OF0sIi4vbHQuanNvbiI6WzcwMTgyLDU1NDBdLCIuL2x2Lmpzb24iOls4MTQ2MCwzODQyXSwiLi9tbi5qc29uIjpbNjA2MTMsNjExXSwiLi9tcy5qc29uIjpbNTgwNjIsOTQ0NF0sIi4vbmIuanNvbiI6WzkyMzgsMjg2NF0sIi4vbmwuanNvbiI6WzExMjgwLDE0NDJdLCIuL3BhY2thZ2UuanNvbiI6WzU4NzM0LDg2NjFdLCIuL3BsLmpzb24iOlsxOTA1MCwxNjBdLCIuL3B0LUJSLmpzb24iOls3MTcxNywyNTI5XSwiLi9wdC5qc29uIjpbNjQ5OCw4MzkyXSwiLi9yby5qc29uIjpbNDAzNzcsMTg5OV0sIi4vcnUuanNvbiI6WzMwMTUxLDY3M10sIi4vc2kuanNvbiI6WzI5NDU4LDUzMDBdLCIuL3NrLmpzb24iOls1MTY4MCw4ODk4XSwiLi9zbC5qc29uIjpbNTE0MzMsODIxOV0sIi4vc3IuanNvbiI6WzgzMTE1LDIwNzddLCIuL3N2Lmpzb24iOls0MDkxOSw3Njk3XSwiLi9zdy5qc29uIjpbNzU1MjQsNDk0Ml0sIi4vdGEuanNvbiI6Wzc5MTgxLDQ3ODddLCIuL3RoLmpzb24iOls0MjY4Miw5NTkyXSwiLi90bC5qc29uIjpbODg2NjIsMzQxMl0sIi4vdHIuanNvbiI6Wzg3OTM2LDMwNTRdLCIuL3VrLmpzb24iOls1Mjk0LDI5OTZdLCIuL3VyLmpzb24iOlsyMDQ2NSw1NTldLCIuL3V6Lmpzb24iOls5MTYwOSw0MDcxXSwiLi92aS5qc29uIjpbMjM4MzEsNTg1N10sIi4vemgtQ04uanNvbiI6WzY0NzU0LDkxNjJdLCIuL3poLVRXLmpzb24iOls5ODk1MCw0MjMwXX07ZnVuY3Rpb24gbyh0KXtpZighbi5vKHIsdCkpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKGZ1bmN0aW9uKCl7dmFyIGU9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrdCsiJyIpO3Rocm93IGUuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsZX0pKTt2YXIgZT1yW3RdLG89ZVswXTtyZXR1cm4gUHJvbWlzZS5hbGwoZS5zbGljZSgxKS5tYXAobi5lKSkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gbi50KG8sMTkpfSkpfW8ua2V5cz1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhyKX0sby5pZD0yNTE2OSx0LmV4cG9ydHM9b30sMTk0OTA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcixvLGk9big5NjU0MCk7ZnVuY3Rpb24gYSgpe3JldHVybiBhPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sYS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZS5BPWZ1bmN0aW9uKHQpe3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoInN2ZyIsYSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTUsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE1IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCkscnx8KHI9aS5jcmVhdGVFbGVtZW50KCJyZWN0Iix7d2lkdGg6MTYsaGVpZ2h0OjE0LHk6LjUsZmlsbDoiY3VycmVudENvbG9yIixyeDo0fSkpLG98fChvPWkuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZDoiTTYuMTgxIDExLjFINy45TDYuMTQyIDQuOUg0LjIxM0wyLjQ2IDExLjFoMS41NjRsLjI5Ny0xLjM2MmgxLjU3MnpNNS4wNzcgNi4yOTZoLjA4MmwuNDkgMi4zMDdoLTEuMDh6bTcuNjM1IDQuODA0VjkuODMyaC0xLjMwNlY2LjE2N2gxLjMwNlY0Ljg5OUg4LjUyN3YxLjI2OGgxLjMwN3YzLjY2NUg4LjUyN1YxMS4xeiJ9KSkpfX0sNjYzNzI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcixvPW4oOTY1NDApO2Z1bmN0aW9uIGkoKXtyZXR1cm4gaT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWUuQT1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLGkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLHJ8fChyPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik00IDJhMSAxIDAgMCAxIDIgMGg0YTEgMSAwIDEgMSAyIDBoLjVBMS41IDEuNSAwIDAgMSAxNCAzLjVWNEgydi0uNUExLjUgMS41IDAgMCAxIDMuNSAyek0yIDUuNWgxMlYxMmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnptMi41NzEgMy43YTEuMSAxLjEgMCAxIDAgMC0yLjIgMS4xIDEuMSAwIDAgMCAwIDIuMm00LjUzLTEuMWExLjEgMS4xIDAgMSAxLTIuMiAwIDEuMSAxLjEgMCAwIDEgMi4yIDBtMi4zMjggMS4xYTEuMSAxLjEgMCAxIDAgMC0yLjIgMS4xIDEuMSAwIDAgMCAwIDIuMk01LjY3IDExLjM5M2ExLjEgMS4xIDAgMSAxLTIuMiAwIDEuMSAxLjEgMCAwIDEgMi4yIDBtMi4zMyAxLjFhMS4xIDEuMSAwIDEgMCAwLTIuMiAxLjEgMS4xIDAgMCAwIDAgMi4yIixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpfX0sMzA2MDg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcixvPW4oOTY1NDApO2Z1bmN0aW9uIGkoKXtyZXR1cm4gaT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWUuQT1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLGkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCkscnx8KHI9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJtMTQuODg0IDMuOTUtLjk1MS0uODZhLjM1LjM1IDAgMCAwLS40OTUuMDI2bC03LjIzNiA4LjAxMi0zLjc1Ny0zLjM5M2EuMzUuMzUgMCAwIDAtLjQ5NS4wMjVsLS44Ni45NTFhLjM1LjM1IDAgMCAwIC4wMjYuNDk1bDQuOTYgNC40OGEuMzQuMzQgMCAwIDAgLjE3LjA4Mi40LjQgMCAwIDAgLjA5Ny4wMDguMzUuMzUgMCAwIDAgLjI0My0uMTE1bDguMzI0LTkuMjE3YS4zNS4zNSAwIDAgMC0uMDI2LS40OTQifSkpKX19LDI3NTc1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsbz1uKDk2NTQwKTtmdW5jdGlvbiBpKCl7cmV0dXJuIGk9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxpLmFwcGx5KG51bGwsYXJndW1lbnRzKX1lLkE9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixpKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxyfHwocj1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMTUuNDkgMS40NTNjLjQzLjQzLjQzIDEuMTI1IDAgMS41NTRsLTUuMDIyIDUuMDJhMyAzIDAgMCAxLTEuMzQ0Ljc3NmwtLjg0NS4yMjZhLjMuMyAwIDAgMS0uMzY3LS4zNjhsLjIyNi0uODQzYTMgMyAwIDAgMSAuNzc3LTEuMzQ2bDUuMDIyLTUuMDE5YTEuMSAxLjEgMCAwIDEgMS41NTMgME0zIDJoNy43TDkgMy43SDNhLjMuMyAwIDAgMC0uMy4zdjlhLjMuMyAwIDAgMCAuMy4zaDlhLjMuMyAwIDAgMCAuMy0uM1Y4Ljg4NWwxLjctMS43VjEzYTIgMiAwIDAgMS0yIDJIM2EyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMiIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpKX19LDk5MzI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7V0k6ZnVuY3Rpb24oKXtyZXR1cm4gY30sbXA6ZnVuY3Rpb24oKXtyZXR1cm4gc30seTg6ZnVuY3Rpb24oKXtyZXR1cm4gdX19KTt2YXIgcj1uKDIzOTEwKSxvPW4oNjQ3ODUpLGk9big2NjI3NCksYT1mdW5jdGlvbih0LGUsbixvKXtyZXR1cm4oKDAsci51KShlW29dLHQpPj1uP286bnVsbCl8fE9iamVjdC5rZXlzKGUpLmZpbmQoKGZ1bmN0aW9uKG8pe3JldHVybigwLHIudSkoZVtvXSx0KT49bn0pKXx8b30sdT1mdW5jdGlvbih0KXtyZXR1cm57dHlwZTppLk1rSSx0YWJOYXZpZ2F0aW9uOnR9fSxzPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybnt0eXBlOmkuQTBVLGFjY2Vzc2liaWxpdHlUaGVtZToiZGVmYXVsdCIsc2Vjb25kYXJ5QWNjZXNzaWJpbGl0eVRoZW1lOiJsaWdodCJ9O3ZhciBlPXQuY29sb3Isbj10LnNlY29uZGFyeUNvbG9yO3JldHVybnt0eXBlOmkuQTBVLGFjY2Vzc2liaWxpdHlUaGVtZTphKGUsby5NLDIsImRlZmF1bHQiKSxzZWNvbmRhcnlBY2Nlc3NpYmlsaXR5VGhlbWU6YShuLG8uTSwyLCJsaWdodCIpfX0sYz1mdW5jdGlvbih0KXtyZXR1cm57dHlwZTppLnEkdSxpc01vZGFsT3Blbjp0fX19LDk0MjE0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse011OmZ1bmN0aW9uKCl7cmV0dXJuIEx9LEF5OmZ1bmN0aW9uKCl7cmV0dXJuIFZ9LFB3OmZ1bmN0aW9uKCl7cmV0dXJuIEZ9LFZ2OmZ1bmN0aW9uKCl7cmV0dXJuIFV9LHdKOmZ1bmN0aW9uKCl7cmV0dXJuIE99LGtJOmZ1bmN0aW9uKCl7cmV0dXJuIE59LGk2OmZ1bmN0aW9uKCl7cmV0dXJuIE19LHF5OmZ1bmN0aW9uKCl7cmV0dXJuIGt9LGRrOmZ1bmN0aW9uKCl7cmV0dXJuIFB9LHVuOmZ1bmN0aW9uKCl7cmV0dXJuIFJ9LEx5OmZ1bmN0aW9uKCl7cmV0dXJuIEJ9LFN5OmZ1bmN0aW9uKCl7cmV0dXJuIHp9LHA2OmZ1bmN0aW9uKCl7cmV0dXJuIFR9LGtCOmZ1bmN0aW9uKCl7cmV0dXJuIEF9LEx0OmZ1bmN0aW9uKCl7cmV0dXJuIER9LGt5OmZ1bmN0aW9uKCl7cmV0dXJuIEh9LElqOmZ1bmN0aW9uKCl7cmV0dXJuIHl9fSk7dmFyIHI9bigyOTk0MSksbz1uKDUxODgzKSxpPW4oMzgyNTMpLGE9bigxNDEyMCksdT1uKDQ2MDUpLHM9big0NTM4NyksYz1uKDE4Mzk5KSxsPW4oNjYyNzQpLGY9bigyNjcwMyksZD1uKDI5NTQ0KSxwPW4oNjMzNDkpLGg9big1NDI0OCksdj1uKDg3MTMzKTtmdW5jdGlvbiB5KHQsZSxuLHIpe3JldHVybnt0eXBlOmwubjFXLGFjY2Vzc1RvVGVhbW1hdGVFbmFibGVkOnQsc2VsZlNlcnZlU3VnZ2VzdGlvbnNNYXRjaDplLGFjdGl2ZUFkbWluczpuLGFjdGl2ZUJvdDpyfX12YXIgZz1uKDQ1MTk5KSxtPW4oODcyNjIpO2Z1bmN0aW9uIGIodCl7cmV0dXJuIGI9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LGIodCl9ZnVuY3Rpb24gdygpe3c9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixzPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Moe30sIiIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGwodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBnP2U6ZyxhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IGoocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpJKHQsbix1KX0pLGF9ZnVuY3Rpb24gZih0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1sO3ZhciBkPSJzdXNwZW5kZWRTdGFydCIscD0ic3VzcGVuZGVkWWllbGQiLGg9ImV4ZWN1dGluZyIsdj0iY29tcGxldGVkIix5PXt9O2Z1bmN0aW9uIGcoKXt9ZnVuY3Rpb24gbSgpe31mdW5jdGlvbiBfKCl7fXZhciBTPXt9O2MoUyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciB4PU9iamVjdC5nZXRQcm90b3R5cGVPZixFPXgmJngoeChQKFtdKSkpO0UmJkUhPT1uJiZyLmNhbGwoRSxhKSYmKFM9RSk7dmFyIEM9Xy5wcm90b3R5cGU9Zy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShTKTtmdW5jdGlvbiBPKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Yyh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBBKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgcz1mKHRbb10sdCxpKTtpZigidGhyb3ciIT09cy50eXBlKXt2YXIgYz1zLmFyZyxsPWMudmFsdWU7cmV0dXJuIGwmJiJvYmplY3QiPT1iKGwpJiZyLmNhbGwobCwiX19hd2FpdCIpP2UucmVzb2x2ZShsLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShsKS50aGVuKChmdW5jdGlvbih0KXtjLnZhbHVlPXQsYShjKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KHMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBJKGUsbixyKXt2YXIgbz1kO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT1oKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PXYpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPWsodSxyKTtpZihzKXtpZihzPT09eSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89dixyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289aDt2YXIgYz1mKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/djpwLGMuYXJnPT09eSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPXYsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBrKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxrKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLHk7dmFyIGk9ZihvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLHk7dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLHkpOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwseSl9ZnVuY3Rpb24gTCh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBUKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBqKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goTCx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBQKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IoYihlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiBtLnByb3RvdHlwZT1fLG8oQywiY29uc3RydWN0b3IiLHt2YWx1ZTpfLGNvbmZpZ3VyYWJsZTohMH0pLG8oXywiY29uc3RydWN0b3IiLHt2YWx1ZTptLGNvbmZpZ3VyYWJsZTohMH0pLG0uZGlzcGxheU5hbWU9YyhfLHMsIkdlbmVyYXRvckZ1bmN0aW9uIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT1tfHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxfKToodC5fX3Byb3RvX189XyxjKHQscywiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShDKSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSxPKEEucHJvdG90eXBlKSxjKEEucHJvdG90eXBlLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPUEsZS5hc3luYz1mdW5jdGlvbih0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBBKGwodCxuLHIsbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sTyhDKSxjKEMscywiR2VuZXJhdG9yIiksYyhDLGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksYyhDLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPVAsai5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmoscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKFQpLCFlKWZvcih2YXIgbiBpbiB0aGlzKSJ0Ij09PW4uY2hhckF0KDApJiZyLmNhbGwodGhpcyxuKSYmIWlzTmFOKCtuLnNsaWNlKDEpKSYmKHRoaXNbbl09dCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgbj10aGlzO2Z1bmN0aW9uIG8ocixvKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5hcmc9ZSxuLm5leHQ9cixvJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sdT1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPXIuY2FsbChhLCJjYXRjaExvYyIpLGM9ci5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZihzJiZjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFjKXRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIG89dGhpcy50cnlFbnRyaWVzW25dO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJnIuY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZpLnRyeUxvYzw9ZSYmZTw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyx5KTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLHl9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksVChuKSx5fX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBvPXIuYXJnO1Qobil9cmV0dXJuIG99fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOlAoZSkscmVzdWx0TmFtZTpuLG5leHRMb2M6cn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSx5fX0sZX1mdW5jdGlvbiBfKCl7cmV0dXJuIF89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxfLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBTKHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24geCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXtTKGkscixvLGEsdSwibmV4dCIsdCl9ZnVuY3Rpb24gdSh0KXtTKGkscixvLGEsdSwidGhyb3ciLHQpfWEodm9pZCAwKX0pKX19dmFyIEU9MTAwLEM9MzZlNTtmdW5jdGlvbiBPKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7ZSgpLmxhdW5jaGVyRGlzY292ZXJ5TW9kZS5pc0xhdW5jaGVyRGlzY292ZXJ5TW9kZU9wZW5pbmc/KHQoKDAsci5uYykoKSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gdChBKCkpfSksRSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gdCgoMCxyLnlRKSgpKX0pLEUpKTp0KEEoKSl9fWZ1bmN0aW9uIEEoKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt0KGUoKS5hcHAuaXNNZXNzZW5nZXJPcGVuP0woKTpJKCkpfX1mdW5jdGlvbiBJKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIG4scj1lKCksbz0oMCxoLkFlKShyKSxpPXIuYXBwLGE9aS5sYXN0T3BlbkF0VGltZXN0YW1wLHU9aS5oYXNUaGVNZXNzZW5nZXJCZWVuT3BlbmVkLGM9aS5mZWF0dXJlcyxsPShudWxsPT1jP3ZvaWQgMDpjLmltcHJvdmVPcGVuQmVoYXZpb3IpJiYobnVsbD09KG49ci5vcGVuT25Cb290KT92b2lkIDA6bi50eXBlKSxmPSEobnVsbCE9YyYmYy5pbXByb3ZlT3BlbkJlaGF2aW9yKSYmYSYmRGF0ZS5ub3coKS1hPkM7IWwmJighb3x8byYmdSkmJnQoeih7Zm9yY2VMb2NhdGlvblJlZGlyZWN0OiEhZixyZXBsYWNlQ3VycmVudFZpZXc6ISFmfSkpLHQoaygpKSx0KCgwLHMuWTYpKCkpfX1mdW5jdGlvbiBrKHQpe3JldHVybiB2b2lkIDA9PT10JiYodD0hMSkse3R5cGU6bC5KNEMsaGlkZUxpZ2h0d2VpZ2h0QXBwTWVzc2VuZ2VyOnR9fWZ1bmN0aW9uIEwodCxlKXt2b2lkIDA9PT10JiYodD0hMSk7dmFyIG49KHZvaWQgMD09PWU/e306ZSkucmV0dXJuRm9jdXMscj12b2lkIDAhPT1uJiZuO3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBvLGk9bigpO3ImJigwLG0uQSkoaSkmJmUoKDAsZy5vKSghMCkpLGUoe3R5cGU6bC5uUTAsZnJvbUNsb3NlQnV0dG9uOnQscGVyc2lzdFN0YXRlOiEobnVsbD09KG89aS5hcHApfHxudWxsPT0obz1vLmZlYXR1cmVzKXx8IW8uaW1wcm92ZU9wZW5CZWhhdmlvcil9KX19ZnVuY3Rpb24gVCh0KXt2YXIgZT12b2lkIDA9PT10P3t9OnQscj1lLmRlZmF1bHRNZXNzYWdlLGk9dm9pZCAwPT09cj8iIjpyLGE9ZS5yZXBsYWNlQ3VycmVudFZpZXcsdT12b2lkIDAhPT1hJiZhLHM9ZS5hcnRpY2xlVXJsLGM9dm9pZCAwPT09cz9udWxsOnMsZj1lLmFydGljbGVJRCxwPXZvaWQgMD09PWY/bnVsbDpmLGg9ZS5hcnRpY2xlSXNTdGFuZGFsb25lLHk9dm9pZCAwIT09aCYmaCxnPWUuYXJ0aWNsZUxpbmtQYXJ0LG09ZS52aXNpYmlsaXR5O3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciByPW4oNTJlMykuZmV0Y2hOZXdDb252ZXJzYXRpb25Db250ZW50OygwLGQuTE8pKGUoKSl8fHQocigpKSx0KHt0eXBlOmwudnhuLGRlZmF1bHRNZXNzYWdlOmkscmVwbGFjZUN1cnJlbnRWaWV3OnUsYXJ0aWNsZVVybDpjLGZyb21BcnRpY2xlSWQ6cCxmcm9tU3RhbmRhbG9uZUFydGljbGU6eSxwYXJ0czpnP1tnXTpbXX0pLHQoKHU/by5IQzpvLlZDKSgiL21lc3NhZ2VzL2NvbnZlcnNhdGlvbi9uZXciKygwLHYuV0MpKHtmcm9tQXJ0aWNsZUlEOnAsdmlzaWJpbGl0eTptfSkpKX19ZnVuY3Rpb24gaih0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9ITEpLGZ1bmN0aW9uKGUpe2Uoe3R5cGU6bC5lRW4scmVwbGFjZUN1cnJlbnRWaWV3OnR9KSxlKCh0P28uSEM6by5WQykoIi9tZXNzYWdlcy9jb252ZXJzYXRpb24vdHJpZ2dlci1zY3JlZW4iKSl9fWZ1bmN0aW9uIFAoKXtyZXR1cm4gZnVuY3Rpb24odCl7dChqKCEwKSksdChrKCkpfX1mdW5jdGlvbiBOKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITEpLHZvaWQgMD09PW4mJihuPW51bGwpLGZ1bmN0aW9uKHIsbyl7dmFyIGk9bygpLmFwcCxhPWkuaGFzVGhlTWVzc2VuZ2VyQmVlbk9wZW5lZCx1PWkuaXNXYWl0aW5nRm9yT3BlbkNvbnRlbnQ7YSYmdSYmcih6KHtyZXBsYWNlQ3VycmVudFZpZXc6ITB9KSkscigoMCxjLnApKHQsZSxuKSkscihrKCkpfX1mdW5jdGlvbiBNKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPW51bGwpLGZ1bmN0aW9uKG4pe24oKDAscy5ZNikoKSksbihOKHQsITEsZSkpLG4oKDAsdS5RTCkoaS5BeSx0LHtyZXF1ZXN0T3JpZ2luOiJPcGVuIENvbnZlcnNhdGlvbiBJbiBNZXNzZW5nZXIgYWN0aW9uIn0pKX19ZnVuY3Rpb24gUih0LGUsbil7cmV0dXJuIHZvaWQgMD09PXQmJih0PSIiKSx2b2lkIDA9PT1lJiYoZT0hMSksdm9pZCAwPT09biYmKG49bnVsbCksZnVuY3Rpb24ocixpKXt2YXIgYSx1PWkoKTsoMCxkLkxPKSh1KXx8KDAsZC5FaSkodSk/cihUKHtkZWZhdWx0TWVzc2FnZTp0LHJlcGxhY2VDdXJyZW50VmlldzplLHZpc2liaWxpdHk6bnVsbCE9KGE9bik/YTp2b2lkIDB9KSk6biYmKDAscC5lKSh1KS5vcGVuc0RpcmVjdGx5SW50b0NvbnZlcnNhdGlvbiYmcigoMCxvLlZDKSgiL21lc3NhZ2VzL2NvbnZlcnNhdGlvbi9uZXciKygwLHYuV0MpKHt2aXNpYmlsaXR5Om59KSkpO3IoaygpKX19ZnVuY3Rpb24gVSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGUoKDAsdS5RTCkoaS5BeSx0KSkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gZShOKHQpKX0pKX19ZnVuY3Rpb24geih0KXt2YXIgZT12b2lkIDA9PT10P3t9OnQsbj1lLmZvcmNlTG9jYXRpb25SZWRpcmVjdCxyPXZvaWQgMCE9PW4mJm4saT1lLnJlcGxhY2VDdXJyZW50Vmlldyx1PXZvaWQgMCE9PWkmJmk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIG49ZSgpLGk9dT9vLkhDOm8uVkMscz0oMCxhLm9QKShuKTshciYmcyYmIi8iIT09c3x8dChpKGYua0cucGF0aCkpfX1mdW5jdGlvbiBIKHQpe2lmKHQpe3ZhciBlPXQucGFyYWdyYXBoLG49dC5pc0Rpc21pc3NlZDtyZXR1cm57dHlwZTpsLm9JVSxwYXJhZ3JhcGg6ZSxpc0Rpc21pc3NlZDpufX19ZnVuY3Rpb24gRigpe3JldHVybiB4KHcoKS5tYXJrKChmdW5jdGlvbiB0KGUsbil7dmFyIHIsbyxhLHU7cmV0dXJuIHcoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gcj1uKCksbz1yLmFwcC5wcml2YWN5UG9saWN5Tm90aWNlLGE9ci5zZXNzaW9uLGUoXyh7dHlwZTpsLm9JVX0sbyx7aXNEaXNtaXNzZWQ6ITB9KSksdT17ZGlzbWlzc2VkX3ByaXZhY3lfcG9saWN5X25vdGljZV9hdDoobmV3IERhdGUpLnRvSVNPU3RyaW5nKCl9LHQubmV4dD01LGkuQXkuY3JlYXRlT3JVcGRhdGVVc2VyKGEsdSx2b2lkIDAsdm9pZCAwLCJhcGlVcGRhdGUiKTtjYXNlIDU6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSl9ZnVuY3Rpb24gRCgpe3JldHVybnt0eXBlOmwuaHA3fX1mdW5jdGlvbiBCKHQsZSl7cmV0dXJue3R5cGU6bC56a2QsY3VzdG9tRW1vamlzOnQsbG9hZGluZzplfX12YXIgVj17Y2xvc2VNZXNzZW5nZXI6TCxnZXRBbmRPcGVuQ29udmVyc2F0aW9uOlUsbmF2aWdhdGVCYWNrOmZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6bC51Xzl9fSxvbkxhdW5jaGVyQ2xpY2s6TyxvcGVuQ29udmVyc2F0aW9uOk4sb3BlbkNvbnZlcnNhdGlvbkluTWVzc2VuZ2VyOk0sb3BlbkNvbnZlcnNhdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCl7dCgoMCxvLlZDKShmLklqLnBhdGgpKSx0KGsoKSl9fSxvcGVuTWVzc2VuZ2VyOmssb3Blbk5ld0NvbnZlcnNhdGlvbjpSLHNob3dBbmRHZXRDb252ZXJzYXRpb246ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2UoKDAsYy5wKSh0KSksZSgoMCx1LlFMKShpLkF5LHQpKX19LHNob3dDb252ZXJzYXRpb246Yy5wLHNob3dDb252ZXJzYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6bC5YbUZ9fSxzaG93TWVzc2VuZ2VyVHJpZ2dlclNjcmVlbjpqLHNob3dJbml0aWFsU2NyZWVuOnosc2hvd05ld0NvbnZlcnNhdGlvbjpULHRvZ2dsZU1lc3NlbmdlcjpBLHRvZ2dsZVVwZnJvbnRFbWFpbENvbGxlY3RvclN0YXRlOkQsb3Blbk1lc3NlbmdlckxvYWRpbmdWaWV3OlAsdXBkYXRlUmVzb2x1dGlvbkJvdFN0YXRlRnJvbU9wZW46eSxvcGVuTWVzc2VuZ2VyQW5kQ2xvc2VNZXNzYWdlOkl9fSw5MDkzNjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtJUDpmdW5jdGlvbigpe3JldHVybiBCfSxPUTpmdW5jdGlvbigpe3JldHVybiBXfSxuWDpmdW5jdGlvbigpe3JldHVybiBWfSxybTpmdW5jdGlvbigpe3JldHVybiBHfSxUTzpmdW5jdGlvbigpe3JldHVybiBxfSxZMDpmdW5jdGlvbigpe3JldHVybiBIfSxuJDpmdW5jdGlvbigpe3JldHVybiBVfSx4WjpmdW5jdGlvbigpe3JldHVybiB6fSxMNzpmdW5jdGlvbigpe3JldHVybiBOfSxNZDpmdW5jdGlvbigpe3JldHVybiBGfSxOUTpmdW5jdGlvbigpe3JldHVybiBEfSxHTjpmdW5jdGlvbigpe3JldHVybiBNfX0pO3ZhciByPW4oNjYyNzQpO2Z1bmN0aW9uIG8odCl7cmV0dXJuIG89ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LG8odCl9ZnVuY3Rpb24gaSgpe2k9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LGE9T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSx1PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LHM9dS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLGM9dS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixsPXUudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBmKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Yoe30sIiIpfWNhdGNoKHQpe2Y9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGQodCxlLG4scil7dmFyIG89ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBiP2U6YixpPU9iamVjdC5jcmVhdGUoby5wcm90b3R5cGUpLHU9bmV3IGoocnx8W10pO3JldHVybiBhKGksIl9pbnZva2UiLHt2YWx1ZTpJKHQsbix1KX0pLGl9ZnVuY3Rpb24gcCh0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1kO3ZhciBoPSJzdXNwZW5kZWRTdGFydCIsdj0ic3VzcGVuZGVkWWllbGQiLHk9ImV4ZWN1dGluZyIsZz0iY29tcGxldGVkIixtPXt9O2Z1bmN0aW9uIGIoKXt9ZnVuY3Rpb24gdygpe31mdW5jdGlvbiBfKCl7fXZhciBTPXt9O2YoUyxzLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciB4PU9iamVjdC5nZXRQcm90b3R5cGVPZixFPXgmJngoeChQKFtdKSkpO0UmJkUhPT1uJiZyLmNhbGwoRSxzKSYmKFM9RSk7dmFyIEM9Xy5wcm90b3R5cGU9Yi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShTKTtmdW5jdGlvbiBPKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Zih0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBBKHQsZSl7ZnVuY3Rpb24gbihpLGEsdSxzKXt2YXIgYz1wKHRbaV0sdCxhKTtpZigidGhyb3ciIT09Yy50eXBlKXt2YXIgbD1jLmFyZyxmPWwudmFsdWU7cmV0dXJuIGYmJiJvYmplY3QiPT1vKGYpJiZyLmNhbGwoZiwiX19hd2FpdCIpP2UucmVzb2x2ZShmLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsdSxzKX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCx1LHMpfSkpOmUucmVzb2x2ZShmKS50aGVuKChmdW5jdGlvbih0KXtsLnZhbHVlPXQsdShsKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsdSxzKX0pKX1zKGMuYXJnKX12YXIgaTthKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBJKGUsbixyKXt2YXIgbz1oO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT15KXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PWcpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPWsodSxyKTtpZihzKXtpZihzPT09bSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1oKXRocm93IG89ZyxyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289eTt2YXIgYz1wKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/Zzp2LGMuYXJnPT09bSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPWcsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBrKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxrKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLG07dmFyIGk9cChvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLG07dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLG0pOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwsbSl9ZnVuY3Rpb24gTCh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBUKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBqKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goTCx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBQKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVtzXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgaT0tMSxhPWZ1bmN0aW9uIG4oKXtmb3IoOysraTxlLmxlbmd0aDspaWYoci5jYWxsKGUsaSkpcmV0dXJuIG4udmFsdWU9ZVtpXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gYS5uZXh0PWF9fXRocm93IG5ldyBUeXBlRXJyb3IobyhlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiB3LnByb3RvdHlwZT1fLGEoQywiY29uc3RydWN0b3IiLHt2YWx1ZTpfLGNvbmZpZ3VyYWJsZTohMH0pLGEoXywiY29uc3RydWN0b3IiLHt2YWx1ZTp3LGNvbmZpZ3VyYWJsZTohMH0pLHcuZGlzcGxheU5hbWU9ZihfLGwsIkdlbmVyYXRvckZ1bmN0aW9uIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT13fHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxfKToodC5fX3Byb3RvX189XyxmKHQsbCwiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShDKSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSxPKEEucHJvdG90eXBlKSxmKEEucHJvdG90eXBlLGMsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPUEsZS5hc3luYz1mdW5jdGlvbih0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBBKGQodCxuLHIsbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sTyhDKSxmKEMsbCwiR2VuZXJhdG9yIiksZihDLHMsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZihDLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPVAsai5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmoscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKFQpLCFlKWZvcih2YXIgbiBpbiB0aGlzKSJ0Ij09PW4uY2hhckF0KDApJiZyLmNhbGwodGhpcyxuKSYmIWlzTmFOKCtuLnNsaWNlKDEpKSYmKHRoaXNbbl09dCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgbj10aGlzO2Z1bmN0aW9uIG8ocixvKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5hcmc9ZSxuLm5leHQ9cixvJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sdT1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPXIuY2FsbChhLCJjYXRjaExvYyIpLGM9ci5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZihzJiZjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFjKXRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIG89dGhpcy50cnlFbnRyaWVzW25dO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJnIuY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZpLnRyeUxvYzw9ZSYmZTw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyxtKTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLG19LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksVChuKSxtfX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBvPXIuYXJnO1Qobil9cmV0dXJuIG99fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOlAoZSkscmVzdWx0TmFtZTpuLG5leHRMb2M6cn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSxtfX0sZX1mdW5jdGlvbiBhKHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gdSh0KXthKGkscixvLHUscywibmV4dCIsdCl9ZnVuY3Rpb24gcyh0KXthKGkscixvLHUscywidGhyb3ciLHQpfXUodm9pZCAwKX0pKX19ZnVuY3Rpb24gcyh0LGUpe3JldHVybiB1KGkoKS5tYXJrKChmdW5jdGlvbiBuKG8sYSl7dmFyIHUscyxsLGY7cmV0dXJuIGkoKS53cmFwKChmdW5jdGlvbihuKXtmb3IoOzspc3dpdGNoKG4ucHJldj1uLm5leHQpe2Nhc2UgMDppZih1PWEoKSxzPXUuc2Vzc2lvbiwhZS5wYXlsb2FkfHwhZS5wYXlsb2FkLmNvbnZlcnNhdGlvbklkKXtuLm5leHQ9NjticmVha31sPWUucGF5bG9hZC5jb252ZXJzYXRpb25JZCxuLm5leHQ9NzticmVhaztjYXNlIDY6dGhyb3cgbmV3IEVycm9yKCJjb252ZXJzYXRpb25JZCBuZWVkcyB0byBiZSBwcm92aWRlZCBhcyBhIHBhcmFtZXRlciIpO2Nhc2UgNzpyZXR1cm4gbi5wcmV2PTcsbyh7dHlwZTpyLmU5SCxwYXlsb2FkOnt0aW1lc3RhbXA6RGF0ZS5ub3coKX19KSxuLm5leHQ9MTEsdC50cmlnZ2VyVHJhbnNpdGlvbnMocyxsLGUpO2Nhc2UgMTE6Zj1uLnNlbnQsbyhjKGYpKSxuLm5leHQ9MTg7YnJlYWs7Y2FzZSAxNTpuLnByZXY9MTUsbi50MD1uLmNhdGNoKDcpLG8oKGk9bi50MCx7dHlwZTpyLnpINixlcnJvcjohMCxwYXlsb2FkOm5ldyBFcnJvcigoaXx8IkFuIGVycm9yIG9jY3VyZWQgd2hlbiB0cmlnZ2VyaW5nIE9wZXJhdG9yIHRyYW5zaXRpb24uIikudG9TdHJpbmcoKSl9KSk7Y2FzZSAxODpjYXNlImVuZCI6cmV0dXJuIG4uc3RvcCgpfXZhciBpfSksbixudWxsLFtbNywxNV1dKX0pKSl9ZnVuY3Rpb24gYyh0KXtyZXR1cm57dHlwZTpyLm9uWCxwYXlsb2FkOnQsY29udmVyc2F0aW9uOnR9fXZhciBsPW4oMzgyNTMpLGY9bigzMjk4KSxkPW4oNjk3NDQpLHA9big3NTAxKSxoPW4oNDE1Nyksdj1uKDQ5MDE0KSx5PW4oMTU2NTIpLGc9big1MTg4MyksbT1uKDI2NzAzKSxiPW4oNTQyNDgpLHc9big5ODQ0NyksXz1uKDkxMDYyKSxTPW4oNjczNjUpLHg9big2Njc5OSksRT1uKDE0MTIwKSxDPW4oMTE5NCksTz1uKDg3MTMzKSxBPW4oOTQyMTQpLEk9big4Njk3OSk7ZnVuY3Rpb24gayh0KXtyZXR1cm4gaz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sayh0KX1mdW5jdGlvbiBMKCl7TD1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHM9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGModCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Yyh7fSwiIil9Y2F0Y2godCl7Yz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gbCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGc/ZTpnLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgaihyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOk8odCxuLHUpfSksYX1mdW5jdGlvbiBmKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWw7dmFyIGQ9InN1c3BlbmRlZFN0YXJ0IixwPSJzdXNwZW5kZWRZaWVsZCIsaD0iZXhlY3V0aW5nIix2PSJjb21wbGV0ZWQiLHk9e307ZnVuY3Rpb24gZygpe31mdW5jdGlvbiBtKCl7fWZ1bmN0aW9uIGIoKXt9dmFyIHc9e307Yyh3LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIF89T2JqZWN0LmdldFByb3RvdHlwZU9mLFM9XyYmXyhfKFAoW10pKSk7UyYmUyE9PW4mJnIuY2FsbChTLGEpJiYodz1TKTt2YXIgeD1iLnByb3RvdHlwZT1nLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHcpO2Z1bmN0aW9uIEUodCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtjKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEModCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBzPWYodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLGw9Yy52YWx1ZTtyZXR1cm4gbCYmIm9iamVjdCI9PWsobCkmJnIuY2FsbChsLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGwuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCxhLHUpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LGEsdSl9KSk6ZS5yZXNvbHZlKGwpLnRoZW4oKGZ1bmN0aW9uKHQpe2MudmFsdWU9dCxhKGMpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCxhLHUpfSkpfXUocy5hcmcpfXZhciBpO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIE8oZSxuLHIpe3ZhciBvPWQ7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PWgpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09dil7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9QSh1LHIpO2lmKHMpe2lmKHM9PT15KWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWQpdGhyb3cgbz12LHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz1oO3ZhciBjPWYoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT92OnAsYy5hcmc9PT15KWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89dixyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIEEoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LEEoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSkseTt2YXIgaT1mKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwseTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwseSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCx5KX1mdW5jdGlvbiBJKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIFQodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIGoodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChJLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFAoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW2FdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGk9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBpLm5leHQ9aX19dGhyb3cgbmV3IFR5cGVFcnJvcihrKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIG0ucHJvdG90eXBlPWIsbyh4LCJjb25zdHJ1Y3RvciIse3ZhbHVlOmIsY29uZmlndXJhYmxlOiEwfSksbyhiLCJjb25zdHJ1Y3RvciIse3ZhbHVlOm0sY29uZmlndXJhYmxlOiEwfSksbS5kaXNwbGF5TmFtZT1jKGIscywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PW18fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGIpOih0Ll9fcHJvdG9fXz1iLGModCxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHgpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LEUoQy5wcm90b3R5cGUpLGMoQy5wcm90b3R5cGUsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QyxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEMobCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxFKHgpLGMoeCxzLCJHZW5lcmF0b3IiKSxjKHgsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxjKHgsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9UCxqLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aixyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goVCksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLHkpOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSkseX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxUKG4pLHl9fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7VChuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6UChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLHl9fSxlfWZ1bmN0aW9uIFQodCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBqKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBhKHQpe1QoaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpe1QoaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfX1mdW5jdGlvbiBQKHQpe3JldHVybnt0eXBlOnIuJGFQLGFydGljbGU6dH19ZnVuY3Rpb24gTih0LGUsbixvLGksYSx1LHMpe3JldHVybiB2b2lkIDA9PT1uJiYobj0hMSksdm9pZCAwPT09byYmKG89ITEpLHZvaWQgMD09PWkmJihpPW51bGwpLHZvaWQgMD09PWEmJihhPSIiKSx2b2lkIDA9PT1zJiYocz1udWxsKSxmdW5jdGlvbihjKXtjKHt0eXBlOnIuU2NRLGFydGljbGVJZDp0LGZyb21Ccm93c2VNb2RlOm4sbWV0cmljTWV0YWRhdGE6ZSxjb252ZXJzYXRpb25JZDppLGhhc2g6YSxmcm9tSG9tZVNjcmVlblN1Z2dlc3Rpb25zOnUsbGFuZzpzfSksbyYmYygoMCx5LkVJKSgpKX19ZnVuY3Rpb24gTSh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKG8pe28oe3R5cGU6ci5YRHJ9KSxvKE4odCxlLCExLCEwLG51bGwsIiIsbikpfX1mdW5jdGlvbiBSKHQsZSl7dmFyIG49KDAsYi4kQikoZSgpKTtuLmxlbmd0aD4wP3QoKDAsZy5WQykoblswXS5wYXRoKSk6dCgoMCxBLk11KSgpKX1mdW5jdGlvbiBVKHQsZSxuLG8saSxhLHUscyxjKXtyZXR1cm4gdm9pZCAwPT09biYmKG49ITEpLHZvaWQgMD09PW8mJihvPSExKSx2b2lkIDA9PT1pJiYoaT0iIiksdm9pZCAwPT09YSYmKGE9bnVsbCksdm9pZCAwPT09dSYmKHU9ITEpLHZvaWQgMD09PXMmJihzPW51bGwpLHZvaWQgMD09PWMmJihjPSIiKSxqKEwoKS5tYXJrKChmdW5jdGlvbiBmKGQscCl7dmFyIGgsdix5LGIsXyxTLHgsRTtyZXR1cm4gTCgpLndyYXAoKGZ1bmN0aW9uKGYpe2Zvcig7Oylzd2l0Y2goZi5wcmV2PWYubmV4dCl7Y2FzZSAwOmlmKGg9cCgpLHY9aC5zZXNzaW9uLHk9aC5hcnRpY2xlLGI9eS52aWV3U3RhY2ssXz15LmluU2VhcmNoQnJvd3NlLFM9aC5hcnRpY2xlcywoRT1udWxsIT09cyl8fHQhPT1iW2IubGVuZ3RoLTFdKXtmLm5leHQ9NzticmVha314PSgwLHcuXzkpKGgpLGYubmV4dD0zNDticmVhaztjYXNlIDc6aWYoRXx8IVN8fCFTW3RdfHwhU1t0XS5yZWFjdGlvbnNSZXBseSl7Zi5uZXh0PTE0O2JyZWFrfXg9U1t0XSxkKHt0eXBlOnIuWERyfSksKDA9PT0oMCx3Lmp2KShoKXx8XykmJmQoKDAsZy5WQykoIi8iK20uWkwuaWQrIi9hcnRpY2xlLXN0YW5kYWxvbmUiKygwLE8uV0MpKHtoaWRlUmVhY3Rpb25zOm8/InRydWUiOm51bGwsZnJvbUNsb3NlZDp1PyJ0cnVlIjpudWxsfSkpKSxkKFAoeCkpLGYubmV4dD0zNDticmVhaztjYXNlIDE0OnJldHVybiB1JiZkKHt0eXBlOnIuR3ZafSksZi5wcmV2PTE1LGYubmV4dD0xOCxsLkF5LmdldEFydGljbGUodix0LG51bGwsITEsYSxzKTtjYXNlIDE4Ong9Zi5zZW50LGYubmV4dD0yNzticmVhaztjYXNlIDIxOnJldHVybiBmLnByZXY9MjEsZi50MD1mLmNhdGNoKDE1KSxkKHt0eXBlOnIuR3ZafSksdSYmUihkLHApLHh8fGMmJigwLEkuYkIpKGMpLGYuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDI3OmlmKHgpe2YubmV4dD0zMTticmVha31yZXR1cm4gZCh7dHlwZTpyLkd2Wn0pLHUmJlIoZCxwKSxmLmFicnVwdCgicmV0dXJuIik7Y2FzZSAzMTpkKFAoeCkpLGQoe3R5cGU6ci5YRHJ9KSwoMD09PSgwLHcuanYpKGgpfHxfKSYmZCgoMCxnLlZDKSgiLyIrbS5aTC5pZCsiL2FydGljbGUtc3RhbmRhbG9uZSIrKDAsTy5XQykoe2hpZGVSZWFjdGlvbnM6bz8idHJ1ZSI6bnVsbCxmcm9tQ2xvc2VkOnU/InRydWUiOm51bGx9KSkpO2Nhc2UgMzQ6eCYmZChOKHQsZSwhMSwhMCxudWxsLGksbixzKSk7Y2FzZSAzNTpjYXNlImVuZCI6cmV0dXJuIGYuc3RvcCgpfX0pLGYsbnVsbCxbWzE1LDIxXV0pfSkpKX1mdW5jdGlvbiB6KHQsZSxuLHIsbyl7cmV0dXJuIHZvaWQgMD09PW4mJihuPSExKSx2b2lkIDA9PT1yJiYocj1udWxsKSx2b2lkIDA9PT1vJiYobz1udWxsKSxqKEwoKS5tYXJrKChmdW5jdGlvbiBlKGksYSl7dmFyIHUscyxjLGY7cmV0dXJuIEwoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gdT1hKCkscz11LnNlc3Npb24sYz0oMCxFLlZ5KSh1KSxlLm5leHQ9NSxsLkF5LmdldEFydGljbGUocyx0LGMsbixyLG8pO2Nhc2UgNTpyZXR1cm4gZj1lLnNlbnQsZS5hYnJ1cHQoInJldHVybiIsaShQKGYpKSk7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpfWZ1bmN0aW9uIEgodCxlLG4scixvKXtyZXR1cm4gdm9pZCAwPT09biYmKG49ITEpLHZvaWQgMD09PXImJihyPSExKSx2b2lkIDA9PT1vJiYobz0hMSksaihMKCkubWFyaygoZnVuY3Rpb24gaShhLHUpe3ZhciBzO3JldHVybiBMKCkud3JhcCgoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6cz0oMCxFLlZ5KSh1KCkpLGEoTih0LGUsbixyLHMsIiIsbykpLGEoeih0LDAsbikpO2Nhc2UgMzpjYXNlImVuZCI6cmV0dXJuIGkuc3RvcCgpfX0pLGkpfSkpKX1mdW5jdGlvbiBGKHQpe3JldHVybiBqKEwoKS5tYXJrKChmdW5jdGlvbiBlKG4scil7dmFyIG8saSxhO3JldHVybiBMKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIG89cigpLGk9by5zZXNzaW9uLGUubmV4dD0zLGwuQXkuZ2V0QXJ0aWNsZUJ5VVJMKGksdC51cmwpO2Nhc2UgMzpyZXR1cm4gYT1lLnNlbnQsZS5uZXh0PTYsbihQKGEpKTtjYXNlIDY6cmV0dXJuIGUubmV4dD04LCgwLGYueFMpKHQubG9jYWxlKTtjYXNlIDg6cmV0dXJuIGUubmV4dD0xMCxuKHt0eXBlOiJDSEFOR0VfQVJUSUNMRV9MT0NBTEUiLGFydGljbGVJZDphLmlkLGFydGljbGVMb2NhbGU6dH0pO2Nhc2UgMTA6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSl9ZnVuY3Rpb24gRCh0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITApLHZvaWQgMD09PW4mJihuPW51bGwpLGZ1bmN0aW9uKG8saSl7dmFyIGE9aSgpLnNlc3Npb24sdT10LnNwbGl0KCIjIilbMV18fCIiO3JldHVybiBsLkF5LmdldEFydGljbGVCeVVSTChhLHQscikudGhlbigoZnVuY3Rpb24odCl7KG8oUCh0KSksZSk/byhOKHQuaWQsbnVsbCwhMCwhMCxudWxsLHUpKTooMCx3aW5kb3cucGFyZW50LkludGVyY29tKSgic2hvd0FydGljbGUiLHQuaWQscixuKX0pKS5jYXRjaCgoZnVuY3Rpb24oKXt2YXIgZT0oMCx2LngzKSgpLmNyZWF0ZUVsZW1lbnQoImEiKTtlLnRhcmdldD0iX2JsYW5rIixlLmhyZWY9dCxlLmNsaWNrKCl9KSl9fWZ1bmN0aW9uIEIoKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbixvLGksYT1lKCk7KHQoe3R5cGU6ci5leFp9KSxudWxsIT0obj0oMCx3LmhiKShhKSkmJm4uaXNTdGFuZGFsb25lJiYoMCx3Lmp2KShhKTw9MSkmJih0KCgwLGcuT0UpKCkpLCgwLE8uQ0gpKG51bGwhPShvPW51bGw9PShpPSgwLEMublcpKGEsMCkpP3ZvaWQgMDppLnNlYXJjaCk/bzoiIikuZnJvbUNsb3NlZCYmKHQoRyhsLkF5KSksdCgoMCxBLk11KSgpKSkpOygwLFMuY0kpKGEpJiZ0KCgwLF8uSikoKSl9fWZ1bmN0aW9uIFYoKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbixvPWUoKTt0KHt0eXBlOnIuUXlVfSksdCh7dHlwZTpyLmV4Wn0pLG51bGwhPShuPSgwLHcuaGIpKG8pKSYmbi5pc1N0YW5kYWxvbmUmJnQoRyhsLkF5KSl9fWZ1bmN0aW9uIEcodCl7cmV0dXJuIGooTCgpLm1hcmsoKGZ1bmN0aW9uIGUobixvKXt2YXIgaSxhLHUsYyxsLHYseTtyZXR1cm4gTCgpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKGE9bygpLHU9KDAsaC5xWikoYSksYz0oMCx3Lmp2KShhKSwhKG51bGwhPShpPWEudXNlcikmJmkubG9jYWxlJiZjPD0xKSl7ZS5uZXh0PTY7YnJlYWt9cmV0dXJuIGUubmV4dD02LCgwLGYueFMpKGEudXNlci5sb2NhbGUpLmNhdGNoKChmdW5jdGlvbigpe30pKTtjYXNlIDY6bih7dHlwZTpyLk9aeSxjbG9zZWRBdDpuZXcgRGF0ZX0pLGw9KDAsRS5WeSkoYSksdT8odj1hLnVzZXIseT1hLmFydGljbGUsKDAsZC5KcikodiwiY2xvc2VkIixwLnJrLHAucVksIm1lc3NlbmdlciIse2FydGljbGVfaWQ6bnVsbD09eT92b2lkIDA6eS5hY3RpdmVBcnRpY2xlSWR9KSk6bCYmbihzKHQse3R5cGU6ImNsb3NlZF9hcnRpY2xlIixwYXlsb2FkOntjb252ZXJzYXRpb25JZDpsfX0pKSxuKCgwLHgub3cpKCkpO2Nhc2UgMTA6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSl9ZnVuY3Rpb24gcSh0LGUsbixvLGkpe3JldHVybiBmdW5jdGlvbihhLHUpe3ZhciBzPXUoKS51c2VyO3JldHVybigwLGQuSnIpKHMsImNsaWNrZWQiLHAuaWsscC5xWSwibWVzc2VuZ2VyIix7cmVhY3Rpb25faW5kZXg6bn0pLGEoZnVuY3Rpb24odCxlLG4sbyxpLGEsdSl7dm9pZCAwPT09YSYmKGE9ImhlbHBfY2VudGVyIik7dm9pZCAwPT09dSYmKHU9bnVsbCk7cmV0dXJuIGZ1bmN0aW9uKHMsYyl7cyh7dHlwZTpyLl9hSixhcnRpY2xlSWQ6ZSxyZWFjdGlvbkluZGV4Om59KTt2YXIgbD1jKCkuc2Vzc2lvbixmPSExO3JldHVybiB0LmNyZWF0ZUFydGljbGVSZWFjdGlvbihsLGUsbixmLG8saSxhLHUpfX0odCxlLG4sbyxpLCJtZXNzZW5nZXIiLCJzZWFyY2hfYnJvd3NlIikpfX1mdW5jdGlvbiBXKCl7cmV0dXJue3R5cGU6ci5CSGV9fX0sMTgzOTU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7QTU6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sTl86ZnVuY3Rpb24oKXtyZXR1cm4gZn19KTt2YXIgcj1uKDQxMTcpLG89bigzODI1MyksaT1uKDY5NzQ0KSxhPW4oNzUwMSksdT1uKDY2Mjc0KSxzPW4oOTEwNjIpO2Z1bmN0aW9uIGModCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITApLGZ1bmN0aW9uKG4scil7dmFyIGM9cigpLGw9Yy5zZXNzaW9uO3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciBuPXQudXNlcixyPSJzZWFyY2hlZCIsbz1hLkdtLHU9YS5tTSxzPWEub3c7KDAsaS5KcikobixyLG8sdSxzLHtwaHJhc2U6ZX0pfShjLHQpLG4oZnVuY3Rpb24odCxlKXtyZXR1cm57dHlwZTp1LlBJWSxwaHJhc2U6dCxpbW1lZGlhdGU6ZX19KHQsZSkpLG8uQXkuc2VhcmNoQXJ0aWNsZXMobCx0KS50aGVuKChmdW5jdGlvbihlKXtuKGZ1bmN0aW9uKHQsZSl7cmV0dXJue3R5cGU6dS5yUEksc2VhcmNoUmVzdWx0czplLmFydGljbGVzLHBocmFzZTp0fX0odCxlKSl9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7bihmdW5jdGlvbih0KXtyZXR1cm57dHlwZTp1LlNzMyxwaHJhc2U6dH19KHQpKX0pKS5maW5hbGx5KChmdW5jdGlvbigpe24oKDAscy5KKSgpKX0pKX19dmFyIGw9KDAsci5zKSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdChjKGUsITEpKX0pLDUwMCx7bGVhZGluZzohMSx0cmFpbGluZzohMH0pO2Z1bmN0aW9uIGYodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2woZSx0KX19ZnVuY3Rpb24gZCh0LGUpe3JldHVybnt0eXBlOnUuZ0xILGFydGljbGVJZDp0LHJlbGF0ZWRDb252ZXJzYXRpb25JZDplfX19LDcyNjgzOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0UzOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9LEhKOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LEpROmZ1bmN0aW9uKCl7cmV0dXJuIGd9LE1VOmZ1bmN0aW9uKCl7cmV0dXJuIHZ9LFBKOmZ1bmN0aW9uKCl7cmV0dXJuIHl9LFJSOmZ1bmN0aW9uKCl7cmV0dXJuIG19LFhtOmZ1bmN0aW9uKCl7cmV0dXJuIFN9fSk7dmFyIHI9bigzODI1Myksbz1uKDY5MjY5KSxpPW4oNDQ5ODApLGE9big2OTc0NCksdT1uKDY2Mjc0KTtmdW5jdGlvbiBzKHQpe3JldHVybiBzPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxzKHQpfWZ1bmN0aW9uIGMoKXtjPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3ZhciB0LGU9e30sbj1PYmplY3QucHJvdG90eXBlLHI9bi5oYXNPd25Qcm9wZXJ0eSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24odCxlLG4pe3RbZV09bi52YWx1ZX0saT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxhPWkuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIix1PWkuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIsbD1pLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gZih0LGUsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtmKHt9LCIiKX1jYXRjaCh0KXtmPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1ufX1mdW5jdGlvbiBkKHQsZSxuLHIpe3ZhciBpPWUmJmUucHJvdG90eXBlIGluc3RhbmNlb2YgYj9lOmIsYT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSx1PW5ldyBqKHJ8fFtdKTtyZXR1cm4gbyhhLCJfaW52b2tlIix7dmFsdWU6SSh0LG4sdSl9KSxhfWZ1bmN0aW9uIHAodCxlLG4pe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6dC5jYWxsKGUsbil9fWNhdGNoKHQpe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOnR9fX1lLndyYXA9ZDt2YXIgaD0ic3VzcGVuZGVkU3RhcnQiLHY9InN1c3BlbmRlZFlpZWxkIix5PSJleGVjdXRpbmciLGc9ImNvbXBsZXRlZCIsbT17fTtmdW5jdGlvbiBiKCl7fWZ1bmN0aW9uIHcoKXt9ZnVuY3Rpb24gXygpe312YXIgUz17fTtmKFMsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgeD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsRT14JiZ4KHgoUChbXSkpKTtFJiZFIT09biYmci5jYWxsKEUsYSkmJihTPUUpO3ZhciBDPV8ucHJvdG90eXBlPWIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoUyk7ZnVuY3Rpb24gTyh0KXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2YodCxlLChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW52b2tlKGUsdCl9KSl9KSl9ZnVuY3Rpb24gQSh0LGUpe2Z1bmN0aW9uIG4obyxpLGEsdSl7dmFyIGM9cCh0W29dLHQsaSk7aWYoInRocm93IiE9PWMudHlwZSl7dmFyIGw9Yy5hcmcsZj1sLnZhbHVlO3JldHVybiBmJiYib2JqZWN0Ij09cyhmKSYmci5jYWxsKGYsIl9fYXdhaXQiKT9lLnJlc29sdmUoZi5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LGEsdSl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsYSx1KX0pKTplLnJlc29sdmUoZikudGhlbigoZnVuY3Rpb24odCl7bC52YWx1ZT10LGEobCl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LGEsdSl9KSl9dShjLmFyZyl9dmFyIGk7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gSShlLG4scil7dmFyIG89aDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09eSl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT1nKXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1rKHUscik7aWYocyl7aWYocz09PW0pY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09aCl0aHJvdyBvPWcsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPXk7dmFyIGM9cChlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP2c6dixjLmFyZz09PW0pY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz1nLHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gayhlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsayhlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSxtO3ZhciBpPXAobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCxtO3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCxtKTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLG0pfWZ1bmN0aW9uIEwodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gVCh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gaih0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEwsdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gUChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbYV07aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKHMoZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gdy5wcm90b3R5cGU9XyxvKEMsImNvbnN0cnVjdG9yIix7dmFsdWU6Xyxjb25maWd1cmFibGU6ITB9KSxvKF8sImNvbnN0cnVjdG9yIix7dmFsdWU6dyxjb25maWd1cmFibGU6ITB9KSx3LmRpc3BsYXlOYW1lPWYoXyxsLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09d3x8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsXyk6KHQuX19wcm90b19fPV8sZih0LGwsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoQyksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sTyhBLnByb3RvdHlwZSksZihBLnByb3RvdHlwZSx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1BLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQShkKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LE8oQyksZihDLGwsIkdlbmVyYXRvciIpLGYoQyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGYoQywidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1QLGoucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpqLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChUKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MsbSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSxtfSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLFQobiksbX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztUKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpQKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCksbX19LGV9ZnVuY3Rpb24gbCh0LGUsbixyLG8saSxhKXt0cnl7dmFyIHU9dFtpXShhKSxzPXUudmFsdWV9Y2F0Y2godCl7cmV0dXJuIHZvaWQgbih0KX11LmRvbmU/ZShzKTpQcm9taXNlLnJlc29sdmUocykudGhlbihyLG8pfWZ1bmN0aW9uIGYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7bChpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7bChpLHIsbyxhLHUsInRocm93Iix0KX1hKHZvaWQgMCl9KSl9fWZ1bmN0aW9uIGQodCxlKXt2YXIgbj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdfHx0WyJAQGl0ZXJhdG9yIl07aWYobilyZXR1cm4obj1uLmNhbGwodCkpLm5leHQuYmluZChuKTtpZihBcnJheS5pc0FycmF5KHQpfHwobj1mdW5jdGlvbih0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gcCh0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9wKHQsZSk6dm9pZCAwfX0odCkpfHxlJiZ0JiYibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKXtuJiYodD1uKTt2YXIgcj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiByPj10Lmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6dFtyKytdfX19dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfWZ1bmN0aW9uIHAodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfWZ1bmN0aW9uIGgodCl7cmV0dXJue3R5cGU6dS5BMEYsYmFubmVyczp0fX1mdW5jdGlvbiB2KHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciByPW4oKSxhPSgwLGkuYjApKHIpLnZlcnRpY2FsUGFkZGluZyx1PXIuY3VzdG9taXphdGlvbk92ZXJyaWRlcyxzPSh2b2lkIDA9PT11P3t9OnUpLmlzSGVpZ2h0U2V0QnlCYW5uZXI7KDIwPT09YXx8cykmJmUoKDAsby55KSh7dmVydGljYWxQYWRkaW5nOnR9KSl9fWZ1bmN0aW9uIHkodCxlLG4pe3JldHVybiBmdW5jdGlvbihvLGkpe3ZhciBhPWkoKS5zZXNzaW9uO28oZnVuY3Rpb24odCxlKXtyZXR1cm57dHlwZTp1Lm9fTCxiYW5uZXJJZDp0LGVtYWlsOmV9fSh0LG4pKSxyLkF5LmNvbGxlY3RFbWFpbEZyb21CYW5uZXIoYSx0LGUsbil9fWZ1bmN0aW9uIGcodCxlKXtyZXR1cm4gZnVuY3Rpb24obixvKXt2YXIgaT1vKCkuc2Vzc2lvbjtuKHt0eXBlOnUuY2N2fSksci5BeS5kaXNtaXNzQmFubmVyKGksdCxlKTtmb3IodmFyIGEscz1bXSxjPWQobygpLmJhbm5lcnMsITApOyEoYT1jKCkpLmRvbmU7KXt2YXIgbD1hLnZhbHVlO1N0cmluZyhsLmJhbm5lcl9pZCkhPT1TdHJpbmcodCkmJnMucHVzaChsKX1uKGgocykpfX1mdW5jdGlvbiBtKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24obyxpKXt2YXIgYT1pKCkuc2Vzc2lvbjtvKGZ1bmN0aW9uKHQsZSl7cmV0dXJue3R5cGU6dS5keHosYmFubmVySWQ6dCxyZWFjdGlvbjplfX0odCxuKSksci5BeS5yZWFjdFRvQmFubmVyKGEsdCxlLG4pfX1mdW5jdGlvbiBiKHQsZSl7cmV0dXJuIGYoYygpLm1hcmsoKGZ1bmN0aW9uIG4obyxpKXt2YXIgdSxzLGwsZjtyZXR1cm4gYygpLndyYXAoKGZ1bmN0aW9uKG4pe2Zvcig7Oylzd2l0Y2gobi5wcmV2PW4ubmV4dCl7Y2FzZSAwOnJldHVybiB1PWkoKSxzPXUuc2Vzc2lvbixuLnByZXY9MSxvKHcodCkpLGw9W10sbi5uZXh0PTYsci5BeS5mZXRjaEJhbm5lclZpZXcocyx0LGUpO2Nhc2UgNjppZihmPW4uc2VudCl7bi5uZXh0PTk7YnJlYWt9cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iKTtjYXNlIDk6bC5wdXNoKGYpLG8oaChsKSksbi5uZXh0PTE2O2JyZWFrO2Nhc2UgMTM6bi5wcmV2PTEzLG4udDA9bi5jYXRjaCgxKSwoMCxhLnVvKSgiQ291bGQgbm90IGZldGNoIGJhbm5lcl92aWV3IGR1ZSB0byBlPSIrbi50MCk7Y2FzZSAxNjpjYXNlImVuZCI6cmV0dXJuIG4uc3RvcCgpfX0pLG4sbnVsbCxbWzEsMTNdXSl9KSkpfWZ1bmN0aW9uIHcodCl7cmV0dXJue3R5cGU6dS5LJG8sYmFubmVyVmlld0lkOnR9fWZ1bmN0aW9uIF8odCl7cmV0dXJue3R5cGU6dS5QUm0sYmFubmVySWQ6dH19ZnVuY3Rpb24gUyh0KXtyZXR1cm4gZihjKCkubWFyaygoZnVuY3Rpb24gZShuLG8pe3ZhciBpLHUscyxsO3JldHVybiBjKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGk9bygpLHU9aS5zZXNzaW9uLGUucHJldj0xLG4oXyh0KSkscz1bXSxlLm5leHQ9NixyLkF5LmZldGNoQmFubmVyUHJldmlldyh1LHQpO2Nhc2UgNjppZihsPWUuc2VudCl7ZS5uZXh0PTk7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDk6cy5wdXNoKGwpLG4oaChzKSksZS5uZXh0PTE2O2JyZWFrO2Nhc2UgMTM6ZS5wcmV2PTEzLGUudDA9ZS5jYXRjaCgxKSwoMCxhLnVvKSgiQ291bGQgbm90IGZldGNoIGJhbm5lcl92aWV3IGR1ZSB0byBlPSIrZS50MCk7Y2FzZSAxNjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsbnVsbCxbWzEsMTNdXSl9KSkpfX0sNjk1MDg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7TDpmdW5jdGlvbigpe3JldHVybiBvfSxoOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7dmFyIHI9big2NjI3NCk7ZnVuY3Rpb24gbyh0KXtyZXR1cm57dHlwZTpyLmxXTyxib3RJbnRybzp0LGNyZWF0ZWRBdDpuZXcgRGF0ZX19ZnVuY3Rpb24gaSh0KXtyZXR1cm57dHlwZTpyLmxUbCxib3RJbnRybzp0fX19LDc5MDcwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0k4OmZ1bmN0aW9uKCl7cmV0dXJuIHl9LExGOmZ1bmN0aW9uKCl7cmV0dXJuIHB9LGxtOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LHV6OmZ1bmN0aW9uKCl7cmV0dXJuIGR9LHZzOmZ1bmN0aW9uKCl7cmV0dXJuIGd9fSk7dmFyIHI9bigxODM5NSksbz1uKDY5NzQ0KSxpPW4oNzUwMSksYT1uKDM4MjUzKSx1PW4oNjYyNzQpLHM9big2NTI2MSksYz1uKDUxODgzKSxsPW4oMjY3MDMpLGY9bigxNDEyMCk7ZnVuY3Rpb24gZCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXsiIiE9PXQmJm4oKDAsci5OXykodCkpLG4oe3R5cGU6dS5wbmgscGhyYXNlOnQsaGlkZVJlc3VsdHNXaXRoRGVsYXk6ZX0pfX1mdW5jdGlvbiBwKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciByPW4oKSxhPXIudXNlcix1PWkub3cscz1pLkVZOygwLG8uSnIpKGEsImNsaWNrZWQiLGkuek0scyx1LHtjb2xsZWN0aW9uX2lkOnR9KTt2YXIgZD0oMCxmLm9QKShyKTtkLnN0YXJ0c1dpdGgobC5aTC5wYXRoKyIvY29sbGVjdGlvbiIpP2UoKDAsYy5WQykoZCsiLyIrdCkpOmUoKDAsYy5WQykobC5aTC5wYXRoKyIvY29sbGVjdGlvbi8iK3QpKX19ZnVuY3Rpb24gaCh0KXt2YXIgZT10Lm9iamVjdCxuPXQucGxhY2Uscj10LmNvbnRleHQsbz10Lm1ldGFkYXRhO3JldHVybiB2KHthY3Rpb246ImNsaWNrZWQiLG9iamVjdDplLHBsYWNlOm4sY29udGV4dDpyLG1ldGFkYXRhOnZvaWQgMD09PW8/e306b30pfWZ1bmN0aW9uIHYodCl7dmFyIGU9dC5hY3Rpb24sbj10Lm9iamVjdCxyPXQucGxhY2UsaT10LmNvbnRleHQsYT12b2lkIDA9PT1pPyJtZXNzZW5nZXIiOmksdT10Lm1ldGFkYXRhLHM9dm9pZCAwPT09dT97fTp1O3JldHVybiBmdW5jdGlvbih0LGkpe3ZhciB1PWkoKS51c2VyOygwLG8uSnIpKHUsZSxuLHIsYSxzKX19ZnVuY3Rpb24geSgpe3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciBuPWUoKS5zZXNzaW9uO3JldHVybigwLGEuVzkpKG4pLnRoZW4oKGZ1bmN0aW9uKGUpe3ZhciBuPWUuYXJ0aWNsZUNvbGxlY3Rpb25zLHI9ZS5oZWxwQ2VudGVyU2Vzc2lvbjt0KGZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOnUuQjJGLGFydGljbGVDb2xsZWN0aW9uczp0fX0obikpLHQoKDAscy5zMCkocikpfSkpfX1mdW5jdGlvbiBnKHQpe3JldHVybnt0eXBlOnUuZllrLHZhbHVlOnR9fX0sNjY3OTk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7JDE6ZnVuY3Rpb24oKXtyZXR1cm4gVH0sQmQ6ZnVuY3Rpb24oKXtyZXR1cm4gUH0sRks6ZnVuY3Rpb24oKXtyZXR1cm4gVX0sTGY6ZnVuY3Rpb24oKXtyZXR1cm4gcX0sTXc6ZnVuY3Rpb24oKXtyZXR1cm4gTn0sWF86ZnVuY3Rpb24oKXtyZXR1cm4gQX0sWUg6ZnVuY3Rpb24oKXtyZXR1cm4gVn0sX1k6ZnVuY3Rpb24oKXtyZXR1cm4gQn0sY0E6ZnVuY3Rpb24oKXtyZXR1cm4gQ30sbFA6ZnVuY3Rpb24oKXtyZXR1cm4gen0sb3c6ZnVuY3Rpb24oKXtyZXR1cm4gSH0scFU6ZnVuY3Rpb24oKXtyZXR1cm4gRn0scGs6ZnVuY3Rpb24oKXtyZXR1cm4gR30scXM6ZnVuY3Rpb24oKXtyZXR1cm4gTX0sc0M6ZnVuY3Rpb24oKXtyZXR1cm4gUn0sdEI6ZnVuY3Rpb24oKXtyZXR1cm4gan19KTt2YXIgcj1uKDY2Mjc0KSxvPW4oNTE4ODMpLGk9bigzMTYyMCksYT1uKDM4MjUzKSx1PW4oNjAzNDUpLHM9big5NDIxNCksYz1uKDY2ODM4KSxsPW4oODcxMzMpLGY9bigxMTQ4MSksZD1uKDQwMTI3KSxwPW4oMjI5NzkpLGg9bigzNjM5Nyksdj1uKDE0MTIwKSx5PW4oMTc3NzcpO2Z1bmN0aW9uIGcodCl7cmV0dXJuIGc9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LGcodCl9ZnVuY3Rpb24gbSgpe209ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixzPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Moe30sIiIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGwodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBiP2U6YixhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IGoocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpJKHQsbix1KX0pLGF9ZnVuY3Rpb24gZih0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1sO3ZhciBkPSJzdXNwZW5kZWRTdGFydCIscD0ic3VzcGVuZGVkWWllbGQiLGg9ImV4ZWN1dGluZyIsdj0iY29tcGxldGVkIix5PXt9O2Z1bmN0aW9uIGIoKXt9ZnVuY3Rpb24gdygpe31mdW5jdGlvbiBfKCl7fXZhciBTPXt9O2MoUyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciB4PU9iamVjdC5nZXRQcm90b3R5cGVPZixFPXgmJngoeChQKFtdKSkpO0UmJkUhPT1uJiZyLmNhbGwoRSxhKSYmKFM9RSk7dmFyIEM9Xy5wcm90b3R5cGU9Yi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShTKTtmdW5jdGlvbiBPKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Yyh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBBKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgcz1mKHRbb10sdCxpKTtpZigidGhyb3ciIT09cy50eXBlKXt2YXIgYz1zLmFyZyxsPWMudmFsdWU7cmV0dXJuIGwmJiJvYmplY3QiPT1nKGwpJiZyLmNhbGwobCwiX19hd2FpdCIpP2UucmVzb2x2ZShsLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShsKS50aGVuKChmdW5jdGlvbih0KXtjLnZhbHVlPXQsYShjKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KHMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBJKGUsbixyKXt2YXIgbz1kO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT1oKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PXYpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPWsodSxyKTtpZihzKXtpZihzPT09eSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89dixyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289aDt2YXIgYz1mKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/djpwLGMuYXJnPT09eSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPXYsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBrKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxrKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLHk7dmFyIGk9ZihvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLHk7dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLHkpOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwseSl9ZnVuY3Rpb24gTCh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBUKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBqKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goTCx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBQKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IoZyhlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiB3LnByb3RvdHlwZT1fLG8oQywiY29uc3RydWN0b3IiLHt2YWx1ZTpfLGNvbmZpZ3VyYWJsZTohMH0pLG8oXywiY29uc3RydWN0b3IiLHt2YWx1ZTp3LGNvbmZpZ3VyYWJsZTohMH0pLHcuZGlzcGxheU5hbWU9YyhfLHMsIkdlbmVyYXRvckZ1bmN0aW9uIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT13fHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxfKToodC5fX3Byb3RvX189XyxjKHQscywiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShDKSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSxPKEEucHJvdG90eXBlKSxjKEEucHJvdG90eXBlLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPUEsZS5hc3luYz1mdW5jdGlvbih0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBBKGwodCxuLHIsbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sTyhDKSxjKEMscywiR2VuZXJhdG9yIiksYyhDLGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksYyhDLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPVAsai5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmoscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKFQpLCFlKWZvcih2YXIgbiBpbiB0aGlzKSJ0Ij09PW4uY2hhckF0KDApJiZyLmNhbGwodGhpcyxuKSYmIWlzTmFOKCtuLnNsaWNlKDEpKSYmKHRoaXNbbl09dCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgbj10aGlzO2Z1bmN0aW9uIG8ocixvKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5hcmc9ZSxuLm5leHQ9cixvJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sdT1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPXIuY2FsbChhLCJjYXRjaExvYyIpLGM9ci5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZihzJiZjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFjKXRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIG89dGhpcy50cnlFbnRyaWVzW25dO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJnIuY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZpLnRyeUxvYzw9ZSYmZTw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyx5KTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLHl9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksVChuKSx5fX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBvPXIuYXJnO1Qobil9cmV0dXJuIG99fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOlAoZSkscmVzdWx0TmFtZTpuLG5leHRMb2M6cn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSx5fX0sZX1mdW5jdGlvbiBiKHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gdyh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXtiKGkscixvLGEsdSwibmV4dCIsdCl9ZnVuY3Rpb24gdSh0KXtiKGkscixvLGEsdSwidGhyb3ciLHQpfWEodm9pZCAwKX0pKX19dmFyIF8sUyx4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEJvb2xlYW4oKDAsaS5mJCkodCkoZSgpKSl9LEU9ZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6ci5xSGUsY2hlY2tsaXN0czp0fX07ZnVuY3Rpb24gQyh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKG8saSl7byhPKG4pKTt2YXIgYT1pKCkuc2Vzc2lvbjtpZihhKXJldHVybiB0LmRpc21pc3NDaGVja2xpc3ROb3RpZmljYXRpb24oYSxlLG4pLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIG8oZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6ci5naEgsY2hlY2tsaXN0UHJvZ3Jlc3NJZDp0fX0obikpfSkpfX1mdW5jdGlvbiBPKHQpe3JldHVybnt0eXBlOnIuczMwLGNoZWNrbGlzdFByb2dyZXNzSWQ6dH19dmFyIEE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITApLGZ1bmN0aW9uKG4pe24oRSh0KSksZSYmbihEKCkpfX0sST1mdW5jdGlvbih0LGUsbil7cmV0dXJue3R5cGU6ci5DMiQsY2hlY2tsaXN0UHJvZ3Jlc3NJZDplLGNoZWNrbGlzdElkOnQsdGFza0lkOm59fSxrPWZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOnIuUU9CLGNoZWNrbGlzdFByb2dyZXNzSWQ6dH19LEw9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZTpyLklneX19LFQ9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZTpyLmVLWH19LGo9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITEpLGZ1bmN0aW9uKG4peygwLHUuQzIpKCJTaG93aW5nIGNoZWNrbGlzdCBwcm9ncmVzczogIit0KTt2YXIgaT1lP28uSEM6by5WQztyZXR1cm4gbihmdW5jdGlvbih0KXtyZXR1cm57dHlwZTpyLnViWixjaGVja2xpc3RQcm9ncmVzc0lkOnR9fSh0KSksbihpKCIvdGFza3MvIitmLlRBLmNoZWNrbGlzdERldGFpbHModC50b1N0cmluZygpKSkpfX0sUD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKG8saSl7aWYoeChlLGkpKXt2YXIgYT1pKCksYz1hLmFydGljbGUsbD1hLnRvdXIsZj1hLmNoZWNrbGlzdHM7aWYoZnVuY3Rpb24odCl7cmV0dXJuIEJvb2xlYW4oKDAsaC5GKSgpKHQoKSkpfShpKSlyZXR1cm4oMCx1LkMyKSgiVGFzayBhbHJlYWR5IHJlc29sdmluZy4gUmVzb2x2aW5nIHRhc2tJZCAiK24rIiBpbiB0aGUgYmFja2dyb3VuZC4gY2hlY2tsaXN0SWQ6ICIrdCsiLiBjaGVja2xpc3RQcm9ncmVzc0lkOiAiK2UpLHZvaWQgbyhJKHQsZSxuKSk7aWYobnVsbCE9YyYmYy5hY3RpdmVBcnRpY2xlSWR8fG51bGwhPWwmJmwuYWN0aXZlVG91cnx8bnVsbCE9bCYmbC5pc0ZldGNoaW5nKXsoMCx1LkMyKSgiQXJ0aWNsZS90b3VyIG9wZW4uIEF0dGVtcHRpbmcgdG8gcXVldWUgcmVzb2x2ZSBvZiB0YXNrICIrbik7dmFyIGQ9Zi5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gdC5xdWV1ZWRUYXNrSWR9KSk7cmV0dXJuIGQmJmQucXVldWVkVGFza0lkJiYoKDAsdS5DMikoIlRhc2sgYWxyZWFkeSBlbnF1ZXVlZCwgbWFya2luZyBxdWV1ZWQgdGFzayAiK2QucXVldWVkVGFza0lkKyIgYXMgcmVzb2x2ZWQuIHByb2dyZXNzOiAiK2QuY2hlY2tsaXN0UHJvZ3Jlc3NJZCksbyhJKGQuaWQsZC5jaGVja2xpc3RQcm9ncmVzc0lkLGQucXVldWVkVGFza0lkKSksKDAsdS5DMikoIkRlcXVldWVpbmcgdGFzazogIitkLnF1ZXVlZFRhc2tJZCsiIHByb2dyZXNzOiAiK2QuY2hlY2tsaXN0UHJvZ3Jlc3NJZCksbyhMKCkpKSwoMCx1LkMyKSgiUXVldWVpbmcgcmVzb2x2ZSBvZiB0YXNrICIrbisiIHwgcHJvZ3Jlc3M6ICIrZSksdm9pZCBvKGZ1bmN0aW9uKHQsZSl7cmV0dXJue3R5cGU6ci5STVEsY2hlY2tsaXN0UHJvZ3Jlc3NJZDp0LHRhc2tJZDplfX0oZSxuKSl9bygoMCxzLnF5KSgpKSxvKGooZSkpLG8oZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6ci5RS1csdGFza0lkOnR9fShuKSksXyYmY2xlYXJUaW1lb3V0KF8pLFMmJmNsZWFyVGltZW91dChTKSxfPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7byhJKHQsZSxuKSksUz1zZXRUaW1lb3V0KChmdW5jdGlvbigpe28oe3R5cGU6ci5xRHl9KX0pLDgwMCl9KSwxMjAwKX19fSxOPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4scil7dmFyIG89cigpLnNlc3Npb247byYmYS5BeS5yZWNvcmRWaWV3ZWRTdGF0KG8sdCxlKX19LE09ZnVuY3Rpb24odCxlLG4pe3JldHVybiBmdW5jdGlvbihyLG8pe2lmKHQmJmUmJm4pe3ZhciBpPW8oKS5zZXNzaW9uO2kmJmEuQXkucmVjb3JkVGFza1ZpZXcoaSx0LGUsbil9fX0sUj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKHIsbyl7aWYodCYmZSYmbil7dmFyIGk9bygpLnNlc3Npb247aSYmYS5BeS5yZWNvcmRBY3Rpb25DbGljayhpLHQsZSxuKX19fSxVPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdyhtKCkubWFyaygoZnVuY3Rpb24gcihvLGkpe3ZhciBzLGMsbDtyZXR1cm4gbSgpLndyYXAoKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5wcmV2PXIubmV4dCl7Y2FzZSAwOmlmKHM9eChlLGkpLGM9aSgpLGw9Yy5zZXNzaW9uKXtyLm5leHQ9NDticmVha31yZXR1cm4gci5hYnJ1cHQoInJldHVybiIpO2Nhc2UgNDppZihzKXtyLm5leHQ9NjticmVha31yZXR1cm4gci5hYnJ1cHQoInJldHVybiIpO2Nhc2UgNjpyZXR1cm4gbyhJKHQsZSxuKSksci5wcmV2PTcsci5uZXh0PTEwLGEuQXkuY29tcGxldGVDaGVja2xpc3RUYXNrKHtjaGVja2xpc3RJZDp0LGNoZWNrbGlzdFByb2dyZXNzSWQ6ZSx0YXNrSWQ6bixzZXNzaW9uOmx9KTtjYXNlIDEwOnIubmV4dD0xNTticmVhaztjYXNlIDEyOnIucHJldj0xMixyLnQwPXIuY2F0Y2goNyksKDAsdS5DMikoIkNoZWNrbGlzdCB0YXNrIHdpdGggaWQgIituKyIgZm9yIGNoZWNrbGlzdCBpZCAiK3QrIiBjb3VsZCBub3QgYmUgcHJvY2Vzc2VkIik7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0pLHIsbnVsbCxbWzcsMTJdXSl9KSkpfSx6PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHcobSgpLm1hcmsoKGZ1bmN0aW9uIG4ocixvKXt2YXIgaSxzLGM7cmV0dXJuIG0oKS53cmFwKChmdW5jdGlvbihuKXtmb3IoOzspc3dpdGNoKG4ucHJldj1uLm5leHQpe2Nhc2UgMDppZihpPXgoZSxvKSxzPW8oKSxjPXMuc2Vzc2lvbil7bi5uZXh0PTQ7YnJlYWt9cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iKTtjYXNlIDQ6aWYoaSl7bi5uZXh0PTY7YnJlYWt9cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iKTtjYXNlIDY6cmV0dXJuIHIoayhlKSksbi5wcmV2PTcsbi5uZXh0PTEwLGEuQXkudXBkYXRlQ2hlY2tsaXN0Tm90aWZpY2F0aW9uRGV0YWlscyhjLHQsZSk7Y2FzZSAxMDpuLm5leHQ9MTU7YnJlYWs7Y2FzZSAxMjpuLnByZXY9MTIsbi50MD1uLmNhdGNoKDcpLCgwLHUuQzIpKCJDaGVja2xpc3Qgbm90aWZpY2F0aW9uIGRldGFpbHMgY291bGQgbm90IGJlIHVwZGF0ZWQgZm9yICIrdCsiIHdpdGggcHJvZ3Jlc3MgIitlKTtjYXNlIDE1OmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSksbixudWxsLFtbNywxMl1dKX0pKSl9LEg9ZnVuY3Rpb24oKXtyZXR1cm4gdyhtKCkubWFyaygoZnVuY3Rpb24gdChlLG4pe3ZhciByLG8saSxzLGYsZCxwLGg7cmV0dXJuIG0oKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZihvPW4oKSxpPW8uc2Vzc2lvbixzPW8uY2hlY2tsaXN0cyxmPW8uYXJ0aWNsZSxkPW8udG91cixpKXt0Lm5leHQ9MzticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMzppZighKDAsYy5JKShzKSl7dC5uZXh0PTU7YnJlYWt9cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDU6aWYoIShudWxsIT1mJiZmLmFjdGl2ZUFydGljbGVJZHx8bnVsbCE9ZCYmZC5hY3RpdmVUb3VyfHwodj1udWxsPT1kfHxudWxsPT0ocj1kLmFjdGl2ZVRvdXIpP3ZvaWQgMDpyLmlkLHk9dm9pZCAwLHYmJigoMCxsLkNIKShudWxsPT0oeT13aW5kb3cpfHxudWxsPT0oeT15LnBhcmVudCk/dm9pZCAwOnkubG9jYXRpb24pfHx7fSkucHJvZHVjdF90b3VyX2lkPT09dikpKXt0Lm5leHQ9NzticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgNzpyZXR1cm4ocD1zLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnF1ZXVlZFRhc2tJZH0pKSkmJnAucXVldWVkVGFza0lkJiYoZShQKHAuaWQscC5jaGVja2xpc3RQcm9ncmVzc0lkLHAucXVldWVkVGFza0lkKSksZShMKCkpKSxoPXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jaGVja2xpc3RQcm9ncmVzc0lkfSkpLHQucHJldj0xMCx0Lm5leHQ9MTMsYS5BeS5yZXNvbHZlQ2hlY2tsaXN0cyh7Y2hlY2tsaXN0UHJvZ3Jlc3NJZHM6aCxzZXNzaW9uOml9KTtjYXNlIDEzOnQubmV4dD0xODticmVhaztjYXNlIDE1OnQucHJldj0xNSx0LnQwPXQuY2F0Y2goMTApLCgwLHUuQzIpKCJDaGVja2xpc3RzIGNvdWxkIG5vdCBiZSByZXNvbHZlZCIpO2Nhc2UgMTg6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX12YXIgdix5fSksdCxudWxsLFtbMTAsMTVdXSl9KSkpfSxGPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPXAuTC5nZXQoImxhc3RDaGVja2xpc3RzQmFja2dyb3VuZFJlc29sdmUiKSxuPWU/SlNPTi5wYXJzZShlKTpudWxsLHI9KG5ldyBEYXRlKS5nZXRUaW1lKCk7biYmbj5yLWYuQ2s/KDAsdS5DMikoIkNoZWNrbGlzdHMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVzb2x2ZWQgaW4gdGhlIGJhY2tncm91bmQgaW4gdGhlIGxhc3QgMjQgaG91cnMuIFJldHVybmluZyBlYXJseS4iKTooKDAsdS5DMikoIkNoZWNrbGlzdHMgaGF2ZSBub3QgYmVlbiByZXNvbHZlZCBpbiB0aGUgYmFja2dyb3VuZCBpbiB0aGUgbGFzdCAyNCBob3Vycy4gQ2hlY2tpbmcgYWdhaW4uIiksdChIKCkpLHAuTC5zZXQoImxhc3RDaGVja2xpc3RzQmFja2dyb3VuZFJlc29sdmUiLHIpKX19LEQ9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbj0oMCxpLklNKSgpKGUoKSk7aWYobil7dmFyIHI9bi5jaGVja2xpc3RQcm9ncmVzc0lkLG89KDAsdi5vUCkoZSgpKS5lbmRzV2l0aCgiL3Rhc2tzLyIrZi5UQS5jaGVja2xpc3REZXRhaWxzKHIudG9TdHJpbmcoKSkpO28/KDAsdS5DMikoIkFscmVhZHkgdmlld2luZyBwcm9ncmVzcyAiK3IrIiwgcmVwbGFjaW5nIGN1cnJlbnQgc3RhY2sgZW50cnkiKTooMCx1LkMyKSgiT3BlbmluZyB1bnNlZW4gY2hlY2tsaXN0IHByb2dyZXNzICIrciksdCgoMCxzLnF5KSgpKSx0KGoocixvKSl9fX0sQj1mdW5jdGlvbigpe3JldHVybiB3KG0oKS5tYXJrKChmdW5jdGlvbiB0KGUsbil7dmFyIHIsbyxpLHM7cmV0dXJuIG0oKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZihyPW4oKSxvPXIuc2Vzc2lvbix0LnByZXY9MSxvKXt0Lm5leHQ9NDticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgNDpyZXR1cm4gdC5uZXh0PTYsYS5BeS5sb2FkQ2hlY2tsaXN0cyhvKTtjYXNlIDY6aWYoaT10LnNlbnQscz1pLmNoZWNrbGlzdHMsISgwLGMuSSkocykpe3QubmV4dD0xMDticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMTA6ZShBKGEuQXkuYnVpbGRDaGVja2xpc3RzKHMpLCExKSksdC5uZXh0PTE2O2JyZWFrO2Nhc2UgMTM6dC5wcmV2PTEzLHQudDA9dC5jYXRjaCgxKSwoMCx1LkMyKSgiQ2hlY2tsaXN0cyBjb3VsZCBub3QgYmUgbG9hZGVkIik7Y2FzZSAxNjpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsbnVsbCxbWzEsMTNdXSl9KSkpfSxWPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49ITEpLHcobSgpLm1hcmsoKGZ1bmN0aW9uIHIobyxpKXt2YXIgYyxsLGYsZCxwLGg7cmV0dXJuIG0oKS53cmFwKChmdW5jdGlvbihyKXtmb3IoOzspc3dpdGNoKHIucHJldj1yLm5leHQpe2Nhc2UgMDpyZXR1cm4oMCx1LkMyKSgiV2lsbCBhdHRlbXB0IHRvIGZldGNoIGNoZWNrbGlzdCBydWxlc2V0IHdpdGggaWQgIit0KSxjPWkoKSxsPWMuc2Vzc2lvbixyLm5leHQ9NCxhLkF5LmZldGNoQ2hlY2tsaXN0KHtzZXNzaW9uOmwscnVsZXNldElkOnQsdHJpZ2dlck1ldGhvZDplfSk7Y2FzZSA0OmlmKGY9ci5zZW50KXtyLm5leHQ9NzticmVha31yZXR1cm4gci5hYnJ1cHQoInJldHVybiIpO2Nhc2UgNzpkPVtdLG4mJm8oQigpKSxwPWkoKSwoaD1wLmNoZWNrbGlzdHMpJiZkLmNvbmNhdChoKSwtMT09PWQuaW5kZXhPZihmKSYmZC5wdXNoKGYpLG8oRShkKSksbygoMCxzLnF5KSgpKSxvKGooZi5jaGVja2xpc3RQcm9ncmVzc0lkKSk7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0pLHIpfSkpKX0sRz1mdW5jdGlvbigpe3JldHVybiB3KG0oKS5tYXJrKChmdW5jdGlvbiB0KGUpe3ZhciBuLHI7cmV0dXJuIG0oKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDooMCx1LkMyKSgiQ2hlY2tpbmcgZm9yIGNoZWNrbGlzdCBJRCBpbiBVUkwiKSwocj0oMCx5LmEpKG51bGw9PShuPXdpbmRvdyl8fG51bGw9PShuPW4ucGFyZW50KT92b2lkIDA6bi5sb2NhdGlvbiwiaW50ZXJjb21fY2hlY2tsaXN0X2lkIikpPygoMCx1LkMyKSgiQ2hlY2tsaXN0IHJ1bGVzZXQgaWQgIityKyIgYXR0YWNoZWQgaW4gdGhlIHVybCIpLGUoVihyLGQuZS5zaGFyZWFibGVfdXJsKSkpOigwLHUuQzIpKCJObyBhdHRhY2hlZCBjaGVja2xpc3QgZm91bmQgaW4gdGhlIFVSTCIpO2Nhc2UgMzpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQpfSkpKX0scT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7KDAsdS5DMikoIk5hdmlnYXRpbmcgdG8gY29tcGxldGlvbiBzY3JlZW4gZm9yIGNoZWNrbGlzdCBwcm9ncmVzczogIit0KSxlKCgwLG8uVkMpKCIvdGFza3MvIitmLlRBLmNoZWNrbGlzdENvbXBsZXRpb25TY3JlZW4oSlNPTi5zdHJpbmdpZnkodCkpKSl9fX0sMTU2NTI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7REg6ZnVuY3Rpb24oKXtyZXR1cm4gY30sRUk6ZnVuY3Rpb24oKXtyZXR1cm4gbH0sc3M6ZnVuY3Rpb24oKXtyZXR1cm4gZn19KTt2YXIgcj1uKDY5NzQ0KSxvPW4oNzUwMSksaT1uKDY2Mjc0KSxhPW4oMzYwNDYpLHU9big1MjY3KTtmdW5jdGlvbiBzKCl7cmV0dXJuIHM9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxzLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9by5qeCksdm9pZCAwPT09biYmKG49by5tTSksZnVuY3Rpb24oYyxsKXt2YXIgZixkLHA9KDAsYS5jKShsKCkpLGg9cC5jb250ZXh0LHY9cC5tZXRhLHk9bCgpLnVzZXIsZz10PyJleHBhbmRlZCI6ImNvbGxhcHNlZCIsbT17fTtlPT09by5yayYmKG09e2FydGljbGVfaWQ6bnVsbD09KGQ9bCgpLmFydGljbGUpP3ZvaWQgMDpkLmFjdGl2ZUFydGljbGVJZH0pOygwLHIuSnIpKHksZyxlLG4saCxzKHt9LG0sdikpLCF0JiZudWxsIT0oZj1sKCkuY2hyb21lKSYmZi5hdXRvRXhwYW5kZWRCeUNvbnRlbnQmJigwLHUuTmwpKHYuY29udmVyc2F0aW9uSWQpLGMoe3R5cGU6aS52JGwsc2hvdWxkRXhwYW5kOnR9KX19ZnVuY3Rpb24gbCgpe3JldHVybnt0eXBlOmkuVUM5fX1mdW5jdGlvbiBmKHQpe3JldHVybnt0eXBlOmkuc2s1LGF1dG9FeHBhbmQ6dH19fSwyNTgzNjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtBazpmdW5jdGlvbigpe3JldHVybiBDfSxCJDpmdW5jdGlvbigpe3JldHVybiBFfSxZcjpmdW5jdGlvbigpe3JldHVybiBffSxiVTpmdW5jdGlvbigpe3JldHVybiBifSxtTjpmdW5jdGlvbigpe3JldHVybiBTfX0pO3ZhciByPW4oNDExNyksbz1uKDM4MjUzKSxpPW4oNDYwNSksYT1uKDM4Mjg1KSx1PW4oNzExMCkscz1uKDY5NzQ0KSxjPW4oNzY3MjIpLGw9bigxODM5OSksZj1uKDY2Mjc0KTtmdW5jdGlvbiBkKHQpe3JldHVybiBkPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxkKHQpfWZ1bmN0aW9uIHAoKXtwPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3ZhciB0LGU9e30sbj1PYmplY3QucHJvdG90eXBlLHI9bi5oYXNPd25Qcm9wZXJ0eSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24odCxlLG4pe3RbZV09bi52YWx1ZX0saT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxhPWkuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIix1PWkuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIscz1pLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gYyh0LGUsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtjKHt9LCIiKX1jYXRjaCh0KXtjPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1ufX1mdW5jdGlvbiBsKHQsZSxuLHIpe3ZhciBpPWUmJmUucHJvdG90eXBlIGluc3RhbmNlb2YgYj9lOmIsYT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSx1PW5ldyBqKHJ8fFtdKTtyZXR1cm4gbyhhLCJfaW52b2tlIix7dmFsdWU6SSh0LG4sdSl9KSxhfWZ1bmN0aW9uIGYodCxlLG4pe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6dC5jYWxsKGUsbil9fWNhdGNoKHQpe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOnR9fX1lLndyYXA9bDt2YXIgaD0ic3VzcGVuZGVkU3RhcnQiLHY9InN1c3BlbmRlZFlpZWxkIix5PSJleGVjdXRpbmciLGc9ImNvbXBsZXRlZCIsbT17fTtmdW5jdGlvbiBiKCl7fWZ1bmN0aW9uIHcoKXt9ZnVuY3Rpb24gXygpe312YXIgUz17fTtjKFMsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgeD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsRT14JiZ4KHgoUChbXSkpKTtFJiZFIT09biYmci5jYWxsKEUsYSkmJihTPUUpO3ZhciBDPV8ucHJvdG90eXBlPWIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoUyk7ZnVuY3Rpb24gTyh0KXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2ModCxlLChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW52b2tlKGUsdCl9KSl9KSl9ZnVuY3Rpb24gQSh0LGUpe2Z1bmN0aW9uIG4obyxpLGEsdSl7dmFyIHM9Zih0W29dLHQsaSk7aWYoInRocm93IiE9PXMudHlwZSl7dmFyIGM9cy5hcmcsbD1jLnZhbHVlO3JldHVybiBsJiYib2JqZWN0Ij09ZChsKSYmci5jYWxsKGwsIl9fYXdhaXQiKT9lLnJlc29sdmUobC5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LGEsdSl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsYSx1KX0pKTplLnJlc29sdmUobCkudGhlbigoZnVuY3Rpb24odCl7Yy52YWx1ZT10LGEoYyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LGEsdSl9KSl9dShzLmFyZyl9dmFyIGk7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gSShlLG4scil7dmFyIG89aDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09eSl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT1nKXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1rKHUscik7aWYocyl7aWYocz09PW0pY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09aCl0aHJvdyBvPWcsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPXk7dmFyIGM9ZihlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP2c6dixjLmFyZz09PW0pY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz1nLHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gayhlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsayhlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSxtO3ZhciBpPWYobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCxtO3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCxtKTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLG0pfWZ1bmN0aW9uIEwodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gVCh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gaih0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEwsdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gUChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbYV07aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKGQoZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gdy5wcm90b3R5cGU9XyxvKEMsImNvbnN0cnVjdG9yIix7dmFsdWU6Xyxjb25maWd1cmFibGU6ITB9KSxvKF8sImNvbnN0cnVjdG9yIix7dmFsdWU6dyxjb25maWd1cmFibGU6ITB9KSx3LmRpc3BsYXlOYW1lPWMoXyxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09d3x8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsXyk6KHQuX19wcm90b19fPV8sYyh0LHMsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoQyksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sTyhBLnByb3RvdHlwZSksYyhBLnByb3RvdHlwZSx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1BLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQShsKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LE8oQyksYyhDLHMsIkdlbmVyYXRvciIpLGMoQyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGMoQywidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1QLGoucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpqLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChUKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MsbSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSxtfSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLFQobiksbX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztUKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpQKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCksbX19LGV9ZnVuY3Rpb24gaCh0LGUsbixyLG8saSxhKXt0cnl7dmFyIHU9dFtpXShhKSxzPXUudmFsdWV9Y2F0Y2godCl7cmV0dXJuIHZvaWQgbih0KX11LmRvbmU/ZShzKTpQcm9taXNlLnJlc29sdmUocykudGhlbihyLG8pfWZ1bmN0aW9uIHYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7aChpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7aChpLHIsbyxhLHUsInRocm93Iix0KX1hKHZvaWQgMCl9KSl9fXZhciB5PTAsZz0iIixtPSExO2Z1bmN0aW9uIGIodCxlKXtyZXR1cm4gZnVuY3Rpb24obixyKXt2YXIgbz1yKCksaT0oMCxjLkdtKShvKTtpZighKGkmJiJjb21wb3NlclN1Z2dlc3Rpb25zImluIGkmJm51bGwhPWkmJmkuY29tcG9zZXJTdWdnZXN0aW9ucyYmbnVsbCE9aSYmaS5jb21wb3NlclN1Z2dlc3Rpb25zLmlzRGlzbWlzc2VkKSlyZXR1cm4gZz10LHcobixyLGUpfX12YXIgdz0oMCxyLnMpKChmdW5jdGlvbiB0KGUsbixyKXt2YXIgaT0rK3ksYT1nLHU9bigpLGw9dS5zZXNzaW9uLGY9KDAsYy5HbSkodSksZD1mJiYiY29tcG9zZXJTdWdnZXN0aW9ucyJpbiBmP2YuY29tcG9zZXJTdWdnZXN0aW9uczp2b2lkIDA7aWYoIWR8fCFkLmxvYWRpbmcpcmV0dXJuIG09ITEsZSh4KCEwLHIpKSwoMCxvLllHKShsLGEsMykudGhlbigoZnVuY3Rpb24obyl7aWYoZSh4KCExLHIpKSxlKFMobyxyLGkpKSxtJiZnIT09YSlyZXR1cm4gdy5jYW5jZWwoKSx2b2lkIHQoZSxuLHIpO3ZhciB1PU9iamVjdC5hc3NpZ24oe30se3F1ZXJ5OmEsY29udmVyc2F0aW9uX2lkOnJ9LG8pOygwLHMuQTUpKCJyZWNlaXZlZCIsImNvbXBvc2VyX3NtYXJ0X3N1Z2dlc3Rpb25zIiwibWVzc2VuZ2VyIix7fSx1KX0pKTttPSEwfSksMWUzLHtsZWFkaW5nOiExLHRyYWlsaW5nOiEwfSk7ZnVuY3Rpb24gXyh0LGUsbixyLG8pe3JldHVybiB2b2lkIDA9PT1yJiYocj0hMSksdihwKCkubWFyaygoZnVuY3Rpb24gcyhjLGYpe3ZhciBkLGgsdix5LGcsbSxiLHcsXyx4LEUsQyxPLEE7cmV0dXJuIHAoKS53cmFwKChmdW5jdGlvbihzKXtmb3IoOzspc3dpdGNoKHMucHJldj1zLm5leHQpe2Nhc2UgMDppZihoPWYoKSx2PW51bGw9PWU/dm9pZCAwOmUuaWQseT1oLnNlc3Npb24sZz1oLm5ld0NvbnZlcnNhdGlvbixtPWgudXNlcixiPWguaW5ib3VuZFN1Z2dlc3Rpb25zLHc9aC5hcHAudXNlclBhcnRVeFN0eWxlLF89bnVsbD09Ynx8bnVsbD09KGQ9Yi5zZXJ2ZXJTaWRlU3VnZ2VzdGlvbnMpP3ZvaWQgMDpkLnNuYXBzaG90SWQseD0oMCxhLmwpKCksRT1uZXcgRGF0ZSxjKFMobnVsbCx2KSksIXYpe3MubmV4dD0yMTticmVha31yZXR1cm4gQz17Y29udmVyc2F0aW9uSWQ6dixjbGllbnRJZDp4LGNyZWF0ZWRBdDpFLGJvZHk6KDAsdS4kQikobi50ZXh0KSxjb21wb3NlclN1Z2dlc3Rpb25JdGVtOm4sdXhTdHlsZTp3fSxzLnByZXY9OSxjKCgwLGkuSm4pKHYsQyxyKSkscy5uZXh0PTEzLHQuZmlyZUNvbXBvc2VyU3VnZ2VzdGlvbih5LHtjb252ZXJzYXRpb25JZDp2LHN1Z2dlc3Rpb246bixjbGllbnRJZDp4fSk7Y2FzZSAxMzpjKCgwLGkuYlIpKHYsQyxudWxsPT1lP3ZvaWQgMDplLmxhc3RQYXJ0aWNpcGF0aW5nQWRtaW4sbywhMSxFLCEwKSkscy5uZXh0PTE5O2JyZWFrO2Nhc2UgMTY6cy5wcmV2PTE2LHMudDA9cy5jYXRjaCg5KSxjKCgwLGkucU0pKHYsQyxzLnQwKSk7Y2FzZSAxOTpzLm5leHQ9MzQ7YnJlYWs7Y2FzZSAyMTpyZXR1cm4gTz17Y2xpZW50SWQ6eCxib2R5OigwLHUuJEIpKG4udGV4dCksY3JlYXRlZEF0OkUsY29tcG9zZXJTdWdnZXN0aW9uSXRlbTpuLHV4U3R5bGU6d30scy5wcmV2PTIyLGMoKDAsaS5qVykoTyxyKSkscy5uZXh0PTI2LHQuZmlyZUNvbXBvc2VyU3VnZ2VzdGlvbih5LHtjb252ZXJzYXRpb25JZDp2LHN1Z2dlc3Rpb246bixjbGllbnRJZDp4LGJvdEludHJvOmc/Zy5ib3RJbnRyb0lkOm51bGwsYXJ0aWNsZVVybDpnP2cuYXJ0aWNsZVVybDpudWxsLHJlc29sdXRpb25Cb3RCZWhhdmlvclZlcnNpb25JZDptP20ucmVzb2x1dGlvbkJvdEJlaGF2aW9yVmVyc2lvbklkOm51bGwsc25hcHNob3RJZDpffSk7Y2FzZSAyNjpBPXMuc2VudCxjKCgwLGkuSE4pKEEsbnVsbCxudWxsLEUsInJlc29sdXRpb25fYm90X2F1dG9fc3VnZ2VzdCIpKSxjKCgwLGwucCkoQS5pZCwhMCkpLHMubmV4dD0zNDticmVhaztjYXNlIDMxOnMucHJldj0zMSxzLnQxPXMuY2F0Y2goMjIpLGMoKDAsaS53aikobnVsbCkpO2Nhc2UgMzQ6Y2FzZSJlbmQiOnJldHVybiBzLnN0b3AoKX19KSxzLG51bGwsW1s5LDE2XSxbMjIsMzFdXSl9KSkpfWZ1bmN0aW9uIFModCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj0rK3kpLHt0eXBlOmYuQTk5LGNvbnZlcnNhdGlvbklkOmUsY29tcG9zZXJTdWdnZXN0aW9uczp0LHByaW9yaXR5Om59fWZ1bmN0aW9uIHgodCxlKXtyZXR1cm57dHlwZTpmLnJfMSxjb252ZXJzYXRpb25JZDplLGxvYWRpbmdTdGF0dXM6dH19ZnVuY3Rpb24gRSh0KXtyZXR1cm57dHlwZTpmLmlEZCxjb252ZXJzYXRpb25JZDp0fX1mdW5jdGlvbiBDKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPSExKSx7dHlwZTpmLiRFZSxzdWdnZXN0aW9uUGFydHM6dCxjcmVhdGVkQXQ6bmV3IERhdGUsZnJvbUNsaWVudE1hdGNoOmV9fX0sMTYxMjU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7UjpmdW5jdGlvbigpe3JldHVybiBkfX0pO3ZhciByPW4oMjU4MzYpLG89big1NDEwMSksaT1uKDUxNjY5KSxhPW4oNDYwNSksdT1uKDk0MjE0KSxzPW4oNzExMCksYz1uKDM4Mjg1KTtmdW5jdGlvbiBsKHQsZSxuLHIsbyxpLGwsZil7cmV0dXJuIHZvaWQgMD09PW8mJihvPW51bGwpLHZvaWQgMD09PWkmJihpPSExKSxmdW5jdGlvbihkLHApe3ZhciBoLHYseT1wKCksZz15LnNlc3Npb24sbT15LmFwcC51c2VyUGFydFV4U3R5bGU7Im1lc3NhZ2UiPT09KG51bGw9PW4/dm9pZCAwOm4ucGFydFR5cGUpP2g9bnVsbDpoPW51bGwhPSh2PW51bGw9PW4/dm9pZCAwOm4uaWQpP3Y6bnVsbDt2YXIgYj1mdW5jdGlvbih0KXtpZih0JiZ0LmNsaWVudElkKXJldHVybiB0LmNsaWVudElkO3JldHVybigwLGMubCkoKX0obyksdz1uZXcgRGF0ZSxfPSgwLHMuJEIpKHIudGV4dCksUz17Y29udmVyc2F0aW9uSWQ6ZSxjbGllbnRJZDpiLGNyZWF0ZWRBdDp3LGJvZHk6XyxzZWxlY3RlZFJlcGx5T3B0aW9uOntyZXBseU9wdGlvbjpyLHF1aWNrUmVwbHlQYXJ0Om59LHV4U3R5bGU6bX07cmV0dXJuIGQoKDAsYS5KbikoZSxTLGkpKSxkKCgwLHUua0kpKGUpKSx0LnF1aWNrUmVwbHkoZyxlLGgscixiKS50aGVuKChmdW5jdGlvbih0KXtkKCgwLGEuYlIpKGUsdCxsLGYsITEsdykpfSkpLmNhdGNoKChmdW5jdGlvbih0KXtkKCgwLGEucU0pKGUsUyx0KSl9KSl9fXZhciBmPW4oNjk3NDQpO2Z1bmN0aW9uIGQodCxlLG4sYSx1LHMpe2lmKHZvaWQgMD09PWEmJihhPSExKSwibWVzc2VuZ2VyX3N1Z2dlc3RlZF9jb250ZW50Ij09PW4udHlwZSl7dmFyIGMsZD0icGFydHMiaW4gZT9lOntpZDplLmlkLGxhc3RQYXJ0aWNpcGF0aW5nQWRtaW46ImFkbWluIj09PShudWxsPT0oYz1lLnBhcnQpfHxudWxsPT0oYz1jLmF1dGhvcik/dm9pZCAwOmMudHlwZSk/ZS5wYXJ0LmF1dGhvcjp2b2lkIDB9O3JldHVybigwLHIuWXIpKHQsZCxuLGEscyl9cmV0dXJuInF1aWNrX3JlcGx5Ij09PW4udHlwZT8obnVsbCE9dSYmdS5yZXBseU9wdGlvbnMmJi0xPT09dS5yZXBseU9wdGlvbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC51dWlkfSkpLmluZGV4T2Yobi51dWlkKSYmKCgwLGYub1MpKCJxdWlja19yZXBseV91dWlkX21pc21hdGNoIiksKDAsZi5zcSkoInF1aWNrX3JlcGx5X3V1aWRfbWlzbWF0Y2giKSwoMCxmLnVvKSgicXVpY2tfcmVwbHlfdXVpZF9taXNtYXRjaCBwYXJ0SWQ9Iit1LmlkKyIgdXVpZD0iK24udXVpZCkpLGwodCxlLmlkLHUsbikpOiJwcmVkaWN0aXZlX2Fuc3dlciI9PT1uLnR5cGU/KDAsby5vKSh0LG4sYSk6KDAsaS5BWCkodCxuLGEpfX0sNDYwNTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtCaDpmdW5jdGlvbigpe3JldHVybiBzdH0sR086ZnVuY3Rpb24oKXtyZXR1cm4geXR9LHNfOmZ1bmN0aW9uKCl7cmV0dXJuIEt9LHFNOmZ1bmN0aW9uKCl7cmV0dXJuIHJ0fSxKbjpmdW5jdGlvbigpe3JldHVybiBldH0sYlI6ZnVuY3Rpb24oKXtyZXR1cm4gbnR9LHdqOmZ1bmN0aW9uKCl7cmV0dXJuIHR0fSxqVzpmdW5jdGlvbigpe3JldHVybiBRfSxITjpmdW5jdGlvbigpe3JldHVybiAkfSx5azpmdW5jdGlvbigpe3JldHVybiBZfSx5ZjpmdW5jdGlvbigpe3JldHVybiBKfSxvVDpmdW5jdGlvbigpe3JldHVybiBpdH0sS006ZnVuY3Rpb24oKXtyZXR1cm4gZHR9LFFMOmZ1bmN0aW9uKCl7cmV0dXJuIEd9LFNoOmZ1bmN0aW9uKCl7cmV0dXJuIEV0fSwkRzpmdW5jdGlvbigpe3JldHVybiBXfSxDdzpmdW5jdGlvbigpe3JldHVybiBtdH0sRm86ZnVuY3Rpb24oKXtyZXR1cm4gcX0sbVE6ZnVuY3Rpb24oKXtyZXR1cm4gbHR9LCRaOmZ1bmN0aW9uKCl7cmV0dXJuIGN0fSxfWjpmdW5jdGlvbigpe3JldHVybiBwdH0sRXc6ZnVuY3Rpb24oKXtyZXR1cm4gWH0sc0Q6ZnVuY3Rpb24oKXtyZXR1cm4gb3R9LFpGOmZ1bmN0aW9uKCl7cmV0dXJuIGZ0fSxOJDpmdW5jdGlvbigpe3JldHVybiB3dH0seVE6ZnVuY3Rpb24oKXtyZXR1cm4gX3R9LGh2OmZ1bmN0aW9uKCl7cmV0dXJuIHh0fSxSaTpmdW5jdGlvbigpe3JldHVybiBTdH0sVDY6ZnVuY3Rpb24oKXtyZXR1cm4gaHR9LERYOmZ1bmN0aW9uKCl7cmV0dXJuIGd0fSxlODpmdW5jdGlvbigpe3JldHVybiBafSx4QTpmdW5jdGlvbigpe3JldHVybiB2dH19KTt2YXIgcj1uKDM1MjA2KSxvPW4oNTc1MjApLGk9big0MDE4KSxhPW4oMzIzNTApLHU9bigzODI1Mykscz1uKDQ0Mjk3KSxjPW4oOTg2ODQpLGw9big2OTc0NCksZj1uKDM0NjE5KSxkPW4oMzMwNDgpLHA9big2MTM2NyksaD1uKDE2MTI1KSx2PW4oMjg4MjQpLHk9bigxODM5OSksZz1uKDU0Nzg4KSxtPW4oOTQyMTQpLGI9big3NzM2KSx3PW4oOTA1MDIpLF89bigyMTEyOSksUz1uKDkxMTg5KSx4PW4oMTgzOTUpLEU9bigzNjI2NiksQz1uKDY2ODU0KSxPPTVlMztmdW5jdGlvbiBBKCl7dmFyIHQsZSxuLHIsbyxpLGEsdT0oMCxFLndTKSgpLHM9bnVsbCE9KHQ9bnVsbD09KGU9KDAsRS5LUSkoKSk/dm9pZCAwOmUuaHJlZik/dDoiIixjPW51bGwhPShuPW51bGw9PShyPSgwLEMuJCkoKSl8fG51bGw9PShyPXIuZG9jdW1lbnQpfHxudWxsPT0ocj1yLmJvZHkpfHxudWxsPT0ocj1yLmlubmVyVGV4dCk/dm9pZCAwOnIudHJpbSgpKT9uOiIiO3JldHVybiBjP3t0aXRsZTp1LHVybDpzLGNvbnRlbnRfdGV4dDoobz1jLGk9TyxhPShuZXcgVGV4dEVuY29kZXIpLmVuY29kZShvKSxhLmxlbmd0aDw9aT9vOihuZXcgVGV4dERlY29kZXIpLmRlY29kZShhLnNsaWNlKDAsaSkpLnNsaWNlKDAsLTEpKyIuLi5bdHJ1bmNhdGVkXSIpfTpudWxsfXZhciBJPW4oODQwNzcpLGs9big0NjYwNCksTD1uKDY2Mjc0KSxUPW4oNzY3MjIpLGo9big2MDc3MSksUD1uKDE0MTIwKSxOPW4oNjg3NjIpLE09big4MzE0NyksUj1uKDcxODE2KSxVPW4oNzI5MCksej1uKDI5NTQ0KSxIPW4oNTE4ODMpLEY9big1OTc3KTtmdW5jdGlvbiBEKCl7cmV0dXJuIEQ9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxELmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBCKHQpe3JldHVybiBCPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxCKHQpfXZhciBWPSJfX3BlbmRpbmdfaW5ib3VuZF9fIjtmdW5jdGlvbiBHKHQsZSxuKXt2b2lkIDA9PT1uJiYobj17fSk7dmFyIHI9bi5pc1VwZGF0aW5nfHwhMSxvPW4ubmV4dXNFdmVudENyZWF0ZWRBdHx8bnVsbCxhPW4uY2xpZW50QXNzaWduZWRVdWlkfHxudWxsLHU9bi53ZWJTb2NrZXRFbnF1ZXVlZEF0fHxudWxsLHM9bi5jdXN0b21Cb3RTdGF0ZXx8bnVsbCxjPW4uaXNPcGVyYXRvclBhcnR8fCExLGg9bi5yZXF1ZXN0T3JpZ2lufHxudWxsLHY9bi5iYWNrZ3JvdW5kRmV0Y2h8fCExLGc9e2xhc3RBZG1pblBhcnRDcmVhdGVkQXQ6bi5sYXN0QWRtaW5QYXJ0Q3JlYXRlZEF0fHxudWxsLGxhc3RBZG1pblBhcnRJZDpuLmxhc3RBZG1pblBhcnRJZHx8bnVsbH0sdz1uLmV2ZW50RGF0YXx8bnVsbDtyZXR1cm4gZnVuY3Rpb24obixfKXtuKGZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9ITEpO3JldHVybnt0eXBlOkwuTExKLGNvbnZlcnNhdGlvbklkOnQsaXNVcGRhdGluZzplfX0oZSxyKSk7dmFyIHg9XygpLEU9eC5zZXNzaW9uLEM9eC5vcGVyYXRvcixPPXguYXBwLEE9eC51c2VyLEk9eC5jb252ZXJzYXRpb25zLFQ9RCh7c2VsZlNlcnZlU3VnZ2VzdGlvbnNNYXRjaDpPLnNlbGZTZXJ2ZVN1Z2dlc3Rpb25zTWF0Y2gsY2xpZW50QXNzaWduZWRVdWlkOmEscmVxdWVzdE9yaWdpbjpoLG5leHVzQ29ubmVjdGlvblN0YXR1czooMCxTLnApKF8oKSl9LGcse2V2ZW50RGF0YTp3fHx7fX0pLGo9RGF0ZS5ub3coKTtyZXR1cm4gdC5nZXRDb252ZXJzYXRpb24oRSxlLFQpLnRoZW4oKGZ1bmN0aW9uKHIpe3ZhciBoLHY9ST9JLmJ5SWRbZV06bnVsbCxnPVQuZXZlbnREYXRhLnRyYWNlcGFyZW50O2lmKGc/ay5mLm9uTmV3Q29tbWVudFZpYVJlYWx0aW1lKHIsZyk6ay5mLm9uTmV3Q29tbWVudFZpYVBvbGxpbmcociksYSYmKCgwLGwuc3EpKCJmZXRjaF9jb252ZXJzYXRpb25fZHVyYXRpb25zIix7Y2xpZW50X2Fzc2lnbmVkX3V1aWQ6YSx0aW1lX3RvX2ZldGNoX2NvbnZfbXM6RGF0ZS5ub3coKS1qLGlzX29wZXJhdG9yX3BhcnQ6Y30pLG51bGwhPXMmJiJxdWlja19yZXBseV9maW5pc2hlZCI9PT1zPygwLGwuc3EpKCJib3RfcmVwbHkiLHtjbGllbnRfYXNzaWduZWRfdXVpZDphLHRpbWVfdG9fZmV0Y2hfY29udl9tczpEYXRlLm5vdygpLWp9KTp1JiYoMCxsLnNxKSgiaW5ib3hfdG9fbWVzc2VuZ2VyIix7Y2xpZW50X2Fzc2lnbmVkX3V1aWQ6YSx3ZWJfc29ja2V0X2VucXVldWVkX2F0OnUsdGltZV90b19mZXRjaF9jb252X21zOkRhdGUubm93KCktaix1c2VyX2lzX3ByZXNlbnQ6KG51bGw9PUE/dm9pZCAwOkEuaXNQcmVzZW50KXx8ITF9KSksKDAsbC5aSikoImluYm91bmRTdWdnZXN0aW9uQ29udmVyc2F0aW9uQ3JlYXRpb24iLG51bGw9PShoPSgwLGkuSTQpKHIpKT92b2lkIDA6aC5jbGllbnRJZCx7b3JpZ2luOiJjb252ZXJzYXRpb25fcmVmcmVzaGVkIixjb252ZXJzYXRpb25faWQ6bnVsbD09cj92b2lkIDA6ci5pZH0pLG4oZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIHI9bigpLG89ci5uZXdDb252ZXJzYXRpb24sYT0oMCxQLm9QKShyKTt0cnl7dmFyIHU9KDAsaS5JNCkodCkscz11LmNsaWVudElkJiZ1LmNsaWVudElkPT09KDAsaS5JNCkobykuY2xpZW50SWQsYz0hKDAsTi5zQikoYSksbD10LnBhcnRzLmxlbmd0aD49by5wYXJ0cy5sZW5ndGg7cyYmYyYmbCYmKGUoKDAseS5wKSh0LmlkLCEwKSksZSgkKHQsbnVsbCxudWxsLERhdGUubm93KCksImN1c3RvbV9ib3QiKSkpfWNhdGNoKHQpe319fShyKSksbihxKHQsciwhMSxEYXRlLm5vdygpKSksQyl7dmFyIG09Qy5sYXN0Q29tcG9zZXJFdmVudCx3PUMudXNlckNyZWF0ZWRDb252ZXJzYXRpb25BdCxfPUMubGFzdFRyaWdnZXJUcmFuc2l0aW9uVGltZXN0YW1wOygwLGYuX2spKHIsXyksKDAsZi5XbCkocix3LG0pfW8mJigwLHAuaikoKSYmKDAsbC5zcSkoIm5ld0NvbW1lbnRFdmVudCIse2R1cmF0aW9uX21zOigwLGQubUcpKG8pfSksbyYmdiYmZnVuY3Rpb24odCxlKXt2YXIgbj10LnBhcnRzP3QucGFydHMuc2xpY2UoLTEpOm51bGw7aWYoIShuJiZuWzBdJiYoMCxiLms0KShuWzBdKSkpdHJ5e3QudXBkYXRlZEF0LmdldFRpbWUoKT09PWUudXBkYXRlZEF0LmdldFRpbWUoKSYmKDAsbC5zcSkoInJlYWxUaW1lQ29udmVyc2F0aW9uVXBkYXRlR290RXhhY3RDb3B5Iix7Y29udmVyc2F0aW9uX2lkOnQuaWR9KSwoMCxpLnhmKSh0LnBhcnRzLGUucGFydHMsNSkmJigwLGwuc3EpKCJyZWFsVGltZUNvbnZlcnNhdGlvblVwZGF0ZUdvdEV4YWN0UGFydHMiLHtjb252ZXJzYXRpb25faWQ6dC5pZH0pfWNhdGNoKHQpe319KHIsdil9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe3ZhciByLG87aWYobihmdW5jdGlvbih0LGUpe3JldHVybnt0eXBlOkwuRTA4LGNvbnZlcnNhdGlvbklkOnQsZXJyb3I6ZX19KGUsdCkpLCEoMCx6LkxPKShfKCkpKWlmKCF2JiZmdW5jdGlvbih0KXtpZighdClyZXR1cm4hMTtpZih0IGluc3RhbmNlb2YgRXJyb3IpcmV0dXJuL1xiNDA0XGIvLnRlc3QodC5tZXNzYWdlKTtpZigib2JqZWN0Ij09PUIodCkmJiJlcnJvcnMiaW4gdCl7dmFyIGU9dC5lcnJvcnM7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJmUuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIjQwNCI9PT0obnVsbD09dD92b2lkIDA6dC5jb2RlKX0pKX1yZXR1cm4hMX0odCkmJigwLHouRWkpKF8oKSkpbigoMCxILkhDKSgiL21lc3NhZ2VzL2NvbnZlcnNhdGlvbi9uZXciKSk7ZWxzZXt2YXIgaT1udWxsPT0ocj1fKCkuY29udmVyc2F0aW9ucyk/dm9pZCAwOnIuYnlJZFtlXSxhPShudWxsPT1pfHxudWxsPT0obz1pLnBhcnRzKT92b2lkIDA6by5sZW5ndGgpPjA7dnx8YXx8bigoMCxtLlN5KSh7Zm9yY2VMb2NhdGlvblJlZGlyZWN0OiEwLHJlcGxhY2VDdXJyZW50VmlldzohMH0pKX19KSl9fWZ1bmN0aW9uIHEodCxlLG4scil7cmV0dXJuIGZ1bmN0aW9uKGEpeygwLGkuSHApKGUpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBhKCgwLG8uX0QpKHQsZSwhMSkpfSkpLGEoZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1lJiYoZT0hMSkse3R5cGU6TC5mRUMsY29udmVyc2F0aW9uOnQsc2tpcE5vdGlmaWNhdGlvbjplLGNyZWF0ZWRBdDpufX0oZSxuLHIpKSwoMCxSLkEpKGUsYSl9fWZ1bmN0aW9uIFcodCxlKXtyZXR1cm4gZnVuY3Rpb24obixyKXtuKGZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOkwuVG1RLGNvbnZlcnNhdGlvbklkOnR9fShlKSk7dmFyIG89cigpLnNlc3Npb247cmV0dXJuIHQubWFya0NvbnZlcnNhdGlvbkFzUmVhZChvLGUpLnRoZW4oKGZ1bmN0aW9uKHQpe3ZhciByLG87KG4oZnVuY3Rpb24odCxlKXtyZXR1cm57dHlwZTpMLnUwYyxjb252ZXJzYXRpb25JZDp0LHJlYWRBdDplfX0oZSx0LnJlYWRBdCkpLG51bGwhPXQmJm51bGwhPShyPXQudGlja2V0KSYmci5pZCkmJm4oKDAsXy5VMykobnVsbD09dHx8bnVsbD09KG89dC50aWNrZXQpP3ZvaWQgMDpvLmlkKSl9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe3JldHVybiBuKGZ1bmN0aW9uKHQsZSl7cmV0dXJue3R5cGU6TC5iTGssY29udmVyc2F0aW9uSWQ6dCxlcnJvcjplfX0oZSx0KSl9KSl9fWZ1bmN0aW9uIEsodCl7cmV0dXJue3R5cGU6TC55TTUsY29udmVyc2F0aW9uSWQ6dH19ZnVuY3Rpb24gWih0KXtyZXR1cm57dHlwZTpMLm9fRSxjb252ZXJzYXRpb25JZDp0fX1mdW5jdGlvbiBKKHQsZSxuLHIpe3JldHVybiBmdW5jdGlvbihvLGkpe28oZnVuY3Rpb24odCxlLG4pe3JldHVybnt0eXBlOkwuVDRrLGNvbnZlcnNhdGlvbklkOnQscmVhY3Rpb25JbmRleDplLGlzRnJvbUNvbnZlcnNhdGlvbjohIW59fShlLG4scikpO3ZhciBhPWkoKS5zZXNzaW9uO3JldHVybiB0LmNyZWF0ZVJlYWN0aW9uKGEsZSxuKS50aGVuKChmdW5jdGlvbigpe3JldHVybiBvKGZ1bmN0aW9uKHQsZSl7cmV0dXJue3R5cGU6TC5IVEUsY29udmVyc2F0aW9uSWQ6dCxyZWFjdGlvbkluZGV4OmV9fShlLG4pKX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7cmV0dXJuIG8oZnVuY3Rpb24odCxlLG4pe3JldHVybnt0eXBlOkwuSUR6LGNvbnZlcnNhdGlvbklkOnQscmVhY3Rpb25JbmRleDplLGVycm9yOm59fShlLG4sdCkpfSkpfX1mdW5jdGlvbiBZKHQsZSxuLHIsbyxhLHUscyl7cmV0dXJuIHZvaWQgMD09PXImJihyPSExKSx2b2lkIDA9PT1vJiYobz1udWxsKSx2b2lkIDA9PT1hJiYoYT1udWxsKSx2b2lkIDA9PT11JiYodT0hMSksdm9pZCAwPT09ZT9mdW5jdGlvbih0LGUsbixyLG8saSl7dm9pZCAwPT09biYmKG49ITEpO3JldHVybiBmdW5jdGlvbihhLHUpe3ZhciBzLGwsZixkLHA9dSgpLGg9cC5zZXNzaW9uLG09cC5hcHAsYj1wLnVzZXIsXz1wLm5ld0NvbnZlcnNhdGlvbixTPXAuYXBwLEU9Uy51c2VyUGFydFV4U3R5bGUsQz1TLm9wZW5Vc2VyUm9sZSxPPShudWxsPT1tP3ZvaWQgMDptLmZlYXR1cmVzKXx8e30saz1udWxsIT0ocz1PLmZpblNlbmRDdXJyZW50UGFnZURhdGEpJiZzLEw9bnVsbCE9KGw9Ty5maW5FY29tbWVyY2VTeW5jQ2FydCkmJmwsVD0oMCxqLmE0KShtKSxOPUQoe30sZSx7dXhTdHlsZTpFfSksTT1lLmJvZHksUj1lLmNyZWF0ZWRBdCx6PWUudmlhLEg9Xz9fLmJvdEludHJvSWQ6bnVsbCxCPV8/Xy5mcm9tQXJ0aWNsZUlkOm51bGwsRz0hIV8mJl8uZnJvbVN0YW5kYWxvbmVBcnRpY2xlLHE9bnVsbDsoIWkmJiFIfHxpKSYmKHE9KDAsdi4kKShwKSksYShRKE4sbixpLERhdGUubm93KCksbnVsbD09KGY9cSk/dm9pZCAwOmYud2VsY29tZVBhcnRzKSk7dmFyIFc9bmV3IFNldChwLm9wZW5JbmJvdW5kQ29udmVyc2F0aW9uSWRzKTtXLmhhcyhWKXx8KFcuYWRkKFYpLGEoKDAsZy5LTykoQXJyYXkuZnJvbShXKSkpKSxpJiZhKGJ0KCkpO3ZhciBLPW51bGw7aWYoTy5tZXNzZW5nZXJPcHRpbWlzdGljRmluVGhpbmtpbmcmJm51bGwhPShkPXEpJiZkLmZpbklzRmlyc3Qpe3ZhciBaLEo9bnVsbD09KFo9bS5hY3RpdmVCb3QpP3ZvaWQgMDpaLnBhcnRpY2lwYW50O2lmKEope3ZhciBZLGV0LG50PXthZG1pbklkOiJib3QiLGZpcnN0TmFtZTpKLmZpcnN0TmFtZSxhdmF0YXJVcmw6bnVsbCE9KFk9bnVsbD09KGV0PUouYXZhdGFyKT92b2lkIDA6ZXQuc3F1YXJlMTI4KT9ZOnZvaWQgMCxpc0JvdDohMCxoYXNBSTohMCxzaG93QXZhdGFyOiEwLGxhc3RBY3RpdmVBdDpuZXcgRGF0ZSxjbGllbnRJZDplLmNsaWVudElkfTtLPW50LGEoc3QoU3RyaW5nKERhdGUubm93KCkpLG50KSl9fXJldHVybiBhdCh0LGgsZSwoZnVuY3Rpb24odCl7cmV0dXJuIGEodXQoZSx0KSl9KSxUKS50aGVuKChmdW5jdGlvbihuKXt2YXIgcixvLGEsdT17YmxvY2tzOk0sY3JlYXRlZEF0OlIsdXBsb2FkOm4sZW1haWw6aSxjb21wb3NlclN1Z2dlc3Rpb25zOnEsc2VsZlNlcnZlU3VnZ2VzdGlvbnNNYXRjaDptLnNlbGZTZXJ2ZVN1Z2dlc3Rpb25zTWF0Y2gsYm90SW50cm86SCxyZXNvbHV0aW9uQm90QmVoYXZpb3JWZXJzaW9uSWQ6Yj9iLnJlc29sdXRpb25Cb3RCZWhhdmlvclZlcnNpb25JZDpudWxsLG1lc3Nlbmdlck9wZW5SZXF1ZXN0SWQ6bS5tZXNzZW5nZXJPcGVuUmVxdWVzdElkLGN1c3RvbUF0dHJpYnV0ZXM6bnVsbD09KHI9Yi5jdXN0b21BdHRyaWJ1dGVzKT92b2lkIDA6ci5uZXdfY29udmVyc2F0aW9uX2F0dHJpYnV0ZXMsY2xpZW50SWQ6ZS5jbGllbnRJZCxjdXJyZW50UGFnZURhdGE6az9BKCk6bnVsbCxyb2xlTWF0Y2hpbmdEYXRhOntwaW5nUm9sZTpiLnJvbGUsbWF0Y2hpbmdSb2xlOkN9LHNob3BpZnlDYXJ0VG9rZW46TD9JLkEucmVhZCgiY2FydCIpOm51bGwsY29tcG9zZXJTdWdnZXN0aW9uSXRlbTpudWxsIT0obz1lLmNvbXBvc2VyU3VnZ2VzdGlvbkl0ZW0pP286bnVsbCxmcm9tQm9va01lZXRpbmdCdXR0b246bnVsbCE9KGE9ZS5mcm9tQm9va01lZXRpbmdCdXR0b24pJiZhfTtyZXR1cm4gXyYmXy5hcnRpY2xlVXJsJiYodS5jdXJyZW50VXJsPV8uYXJ0aWNsZVVybCx1LnN0YXJ0ZWRGcm9tU2VhcmNoQnJvd3NlPSEwKSx0LmNyZWF0ZUNvbnZlcnNhdGlvbihoLHUpfSkpLnRoZW4oKGZ1bmN0aW9uKHQpe3ZhciBlO2EoJCh0LHIsbyxEYXRlLm5vdygpLHZvaWQgMCx6KSksSyYmYShzdChTdHJpbmcodC5pZCksRCh7fSxLLHtsYXN0QWN0aXZlQXQ6bmV3IERhdGV9KSkpLGkmJmEoKDAsYy5hYikoYixpKSksZnVuY3Rpb24odCl7dy5BLnRyYW5zZmVyRHJhZnQody5BLk5FV19DT05WRVJTQVRJT05fRFJBRlRfSUQsdCl9KHQuaWQpO3ZhciBuPSgwLEYuTikodSgpKSxzPW4hPT1VLmN5LnZpc2libGU/bjpudWxsLGw9KDAsUC5vUCkodSgpKSYmISgwLFAuTjcpKHUoKSk7cmV0dXJuIGEobD9YKCk6KDAseS5lKSh0LmlkLHtyZXBsYWNlQ3VycmVudFZpZXc6ITAsZnJvbUFydGljbGVJZDpCLGZyb21TdGFuZGFsb25lQXJ0aWNsZTpHLHZpc2liaWxpdHk6c30pKSwhQnx8SHx8bnVsbCE9KGU9cSkmJmUuc25hcHNob3RJZHx8YSgoMCx4LkE1KShCLHQuaWQpKSx0fSkpLmNhdGNoKChmdW5jdGlvbih0KXthKHR0KHQpKTt2YXIgZT1uZXcgU2V0KHUoKS5vcGVuSW5ib3VuZENvbnZlcnNhdGlvbklkcyk7ZS5kZWxldGUoVikmJmEoKDAsZy5LTykoQXJyYXkuZnJvbShlKSkpfSkpfX0odCxuLHIsYSx1LHMpOmZ1bmN0aW9uKHQsZSxuLHIsbyxhLHUscyl7dm9pZCAwPT09ciYmKHI9ITEpO3JldHVybiBmdW5jdGlvbihjLGwpe3ZhciBmLGQ9bCgpLHA9ZC5zZXNzaW9uLGg9ZC5hcHAsdj1oLnVzZXJQYXJ0VXhTdHlsZSx5PW51bGwhPShmPSgobnVsbD09aD92b2lkIDA6aC5mZWF0dXJlcyl8fHt9KS5maW5TZW5kQ3VycmVudFBhZ2VEYXRhKSYmZixnPSgwLGouYTQpKGgpLG09RCh7fSxuLHt1eFN0eWxlOnZ9KSxiPW4uYm9keSx3PW4uY3JlYXRlZEF0LF89bi5jbGllbnRJZDtyZXR1cm4gYyhldChlLG0scixzKSkscyYmYyhidCgpKSxhdCh0LHAsbiwoZnVuY3Rpb24odCl7cmV0dXJuIGModXQobix0LGUpKX0pLGcpLnRoZW4oKGZ1bmN0aW9uKHIpe3ZhciBvLGEsdSxjPSgwLFQuVk4pKGwoKSxlKSxmPSFjfHxjLmlzRmV0Y2hpbmd8fGMuaXNVcGRhdGluZz9udWxsOigwLGkuZEYpKGMpO3JldHVybiB0LmNyZWF0ZUNvbW1lbnQocCxlLF8sYix3LHIscyx7bGFzdEFkbWluUGFydENyZWF0ZWRBdDpudWxsPT1mfHxudWxsPT0obz1mLmNyZWF0ZWRBdCk/dm9pZCAwOm8udG9JU09TdHJpbmcoKSxuZXh1c0Nvbm5lY3Rpb25TdGF0dXM6KDAsUy5wKShsKCkpLHBhcnRJZHM6bnVsbD09Y3x8bnVsbD09KGE9Yy5wYXJ0cyk/dm9pZCAwOmEubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pKSxsYXN0QWRtaW5QYXJ0SWQ6bnVsbD09Zj92b2lkIDA6Zi5pZCxsYXN0QWRtaW5QYXJ0Q2xpZW50VXVpZDpudWxsPT1mP3ZvaWQgMDpmLmNsaWVudElkLGN1cnJlbnRQYWdlRGF0YTp5P0EoKTpudWxsLGNvbXBvc2VyU3VnZ2VzdGlvbkl0ZW06bnVsbCE9KHU9bi5jb21wb3NlclN1Z2dlc3Rpb25JdGVtKT91Om51bGx9KX0pKS50aGVuKChmdW5jdGlvbihuKXtudWxsIT1uJiZuLmNtciYmKCgwLE0ud2QpKCJDb252ZXJzYXRpb24gbWlzc2luZyByZXBseSAtIGNvbnZlcnNhdGlvbklkOiAiK2UrIiwgYXBwSWQ6ICIrKG51bGw9PXA/dm9pZCAwOnAuYXBwSWQpLHttZXNzYWdlVHlwZToiY29udmVyc2F0aW9uX21pc3NpbmdfcmVwbHkifSksYyhHKHQsZSx7aXNVcGRhdGluZzohMCxyZXF1ZXN0T3JpZ2luOiJDTVIgYWZ0ZXIgY3JlYXRlQ29tbWVudCJ9KSkpLGMobnQoZSxuLG8sYSx1LERhdGUubm93KCkpKX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGMocnQoZSxuLHQpKX0pKX19KHQsZSxuLHIsbyxhLHUscyl9ZnVuY3Rpb24gUSh0LGUsbixyLG8pe3JldHVybiB2b2lkIDA9PT1uJiYobj12b2lkIDApLHZvaWQgMD09PXImJihyPURhdGUubm93KCkpLHZvaWQgMD09PW8mJihvPVtdKSx7dHlwZTpMLlhXbyxwYXJ0OnQsaXNSZXRyeTplLHRpbWVzdGFtcDpyLGVtYWlsOm4sd2VsY29tZVBhcnRzOm99fWZ1bmN0aW9uIFgoKXtyZXR1cm57dHlwZTpMLkokU319ZnVuY3Rpb24gJCh0LGUsbixyLG8saSl7cmV0dXJuIGZ1bmN0aW9uKGEsdSl7dmFyIHM9dSgpLGM9KDAsUC5ONykocyk7YShmdW5jdGlvbih0LGUsbixyLG8saSxhKXtyZXR1cm57dHlwZTpMLkR6TCxjb252ZXJzYXRpb246dCxvZmZpY2VIb3Vyc1Jlc3BvbnNlOmUsaXNBbm5vdGF0ZWRJbWFnZTpuLGNyZWF0ZWRBdDpyLGNvbnZlcnNhdGlvblRyaWdnZXJUeXBlOm8sb25OZXdDb252ZXJzYXRpb25QYXRoOmksdmlhOmF9fSh0LGUsbixyLG8sYyxpKSk7dmFyIGw9bmV3IFNldChzLm9wZW5JbmJvdW5kQ29udmVyc2F0aW9uSWRzKTtsLmRlbGV0ZShWKSYmKGwuYWRkKHQuaWQpLGEoKDAsZy5LTykoQXJyYXkuZnJvbShsKSkpKX19ZnVuY3Rpb24gdHQodCl7cmV0dXJue3R5cGU6TC5JdGwscmVhc29uOnR9fWZ1bmN0aW9uIGV0KHQsZSxuLHIpe3JldHVybnt0eXBlOkwuUHpTLGNvbnZlcnNhdGlvbklkOnQscGFydDplLGlzUmV0cnk6bixlbWFpbDpyfX1mdW5jdGlvbiBudCh0LGUsbixyLG8saSxhKXtyZXR1cm4gdm9pZCAwPT09YSYmKGE9ITEpLHt0eXBlOkwuSE11LGNvbnZlcnNhdGlvbklkOnQscGFydDplLGxhc3RQYXJ0aWNpcGF0aW5nQWRtaW46bixvZmZpY2VIb3Vyc1Jlc3BvbnNlOnIsaXNBbm5vdGF0ZWRJbWFnZTpvLGNyZWF0ZWRBdDppLGZyb21NZXNzZW5nZXJTdWdnZXN0ZWRDb250ZW50OmF9fWZ1bmN0aW9uIHJ0KHQsZSxuKXtyZXR1cm57dHlwZTpMLlUyZCxjb252ZXJzYXRpb25JZDp0LHBhcnQ6ZSxyZWFzb246bn19ZnVuY3Rpb24gb3QodCxlLG4pe3ZhciByPWUuaWQ7cmV0dXJuIGZ1bmN0aW9uKG8pe3ZhciBpLGE7cmV0dXJuIG4uc2VsZWN0ZWRSZXBseU9wdGlvbnx8bi5jb21wb3NlclN1Z2dlc3Rpb25JdGVtPyhuLnNlbGVjdGVkUmVwbHlPcHRpb24/KGk9bi5zZWxlY3RlZFJlcGx5T3B0aW9uLnJlcGx5T3B0aW9uLGE9bi5zZWxlY3RlZFJlcGx5T3B0aW9uLnF1aWNrUmVwbHlQYXJ0KTppPW4uY29tcG9zZXJTdWdnZXN0aW9uSXRlbSxvKCgwLGguUikodCxlLGksITAsYSkpKTpvKFkodCxyLG4sITApKX19ZnVuY3Rpb24gaXQodCxlLG4scil7dm9pZCAwPT09ciYmKHI9e30pO3ZhciBvPXIsaT1vLmRpbWVuc2lvbnMsYT1vLm9uUHJvZ3Jlc3MsdT1vLnNpZ25hbCxzPW8uZmlsZVNpemVMaW1pdCxjPXZvaWQgMD09PXM/ai51QjpzO3JldHVybiBuLnNpemU+Yz9Qcm9taXNlLnJlamVjdCgiZmlsZV9zaXplIik6dC5jcmVhdGVVcGxvYWRQb2xpY3koZSxuLHtkaW1lbnNpb25zOml9KS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gdC5jcmVhdGVVcGxvYWQoZSxuLGEsdSl9KSl9ZnVuY3Rpb24gYXQodCxlLG4scixvKXt2b2lkIDA9PT1vJiYobz1qLnVCKTt2YXIgaT1uLmZpbGUsYT1uLmJvZHksdT1udWxsPT1hP3ZvaWQgMDphWzBdLHM9dS53aWR0aCxjPXUuaGVpZ2h0O3JldHVybiBpP2l0KHQsZSxpLHtkaW1lbnNpb25zOnt3aWR0aDpzLGhlaWdodDpjfSxvblByb2dyZXNzOnIsZmlsZVNpemVMaW1pdDpvfSk6UHJvbWlzZS5yZXNvbHZlKHZvaWQgMCl9ZnVuY3Rpb24gdXQodCxlLG4pe3JldHVybnt0eXBlOkwudWZVLGNvbnZlcnNhdGlvbklkOm4scGFydDp0LHByb2dyZXNzOmV9fWZ1bmN0aW9uIHN0KHQsZSl7dmFyIG47cmV0dXJue3R5cGU6TC5UJDUsY29udmVyc2F0aW9uSWQ6dCxhZG1pbklkOmUuYWRtaW5JZCxmaXJzdE5hbWU6ZS5maXJzdE5hbWUsYXZhdGFyVXJsOmUuYXZhdGFyVXJsLGlzQm90OmUuaXNCb3R8fCExLGhhc0FJOmUuaGFzQUl8fCExLHNob3dBdmF0YXI6bnVsbD09KG49ZS5zaG93QXZhdGFyKXx8bixsYXN0QWN0aXZlQXQ6ZS5sYXN0QWN0aXZlQXR8fG5ldyBEYXRlLGxvYWRpbmdTdGF0dXM6ZS5sb2FkaW5nU3RhdHVzLGNsaWVudElkOmUuY2xpZW50SWQsYWNrbm93bGVkZ2VtZW50UGFydDplLmFja25vd2xlZGdlbWVudFBhcnR9fWZ1bmN0aW9uIGN0KHQpe3ZhciBlPXQuY29udmVyc2F0aW9uSWQsbj10LnBhcnQ7cmV0dXJue3R5cGU6TC5hbE0sY29udmVyc2F0aW9uSWQ6ZSxwYXJ0Om59fWZ1bmN0aW9uIGx0KHQpe3ZhciBlPXQuY29udmVyc2F0aW9uSWQsbj10LnBhcnQ7cmV0dXJue3R5cGU6TC5BZEwsY29udmVyc2F0aW9uSWQ6ZSxwYXJ0Om59fWZ1bmN0aW9uIGZ0KHQpe3ZhciBlPXQuY29udmVyc2F0aW9uSWQsbj10LnBhcnRJZCxyPXQuc3Bhd25lZENvbnZlcnNhdGlvbklkO3JldHVybnt0eXBlOkwuZkVMLGNvbnZlcnNhdGlvbklkOmUscGFydElkOm4sc3Bhd25lZENvbnZlcnNhdGlvbklkOnJ9fWZ1bmN0aW9uIGR0KHQpe3ZhciBlPXQuY29udmVyc2F0aW9uSWQsbj10LmNsaWVudElkO3JldHVybnt0eXBlOkwuRm44LGNvbnZlcnNhdGlvbklkOmUsY2xpZW50SWQ6bn19ZnVuY3Rpb24gcHQodCl7cmV0dXJue3R5cGU6TC51dkksY29udmVyc2F0aW9uOnR9fWZ1bmN0aW9uIGh0KHQsZSl7cmV0dXJue3R5cGU6TC5QNXksY29udmVyc2F0aW9uSWQ6dCxjb21wb3NlclN0YXRlOmV9fWZ1bmN0aW9uIHZ0KHQpe3JldHVybnt0eXBlOkwuTmZiLGNvbnZlcnNhdGlvbklkOnR9fWZ1bmN0aW9uIHl0KHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49bmV3IERhdGUpLHt0eXBlOkwuSUtKLGNvbnZlcnNhdGlvbklkOnQsY29tcG9zZXJDb250ZW50OmUsbGFzdEFjdGl2ZUF0Om59fWZ1bmN0aW9uIGd0KHQsZSxuLHIsbyxpLGEsdSxzKXtyZXR1cm4gZnVuY3Rpb24obCxmKXt2YXIgZD1mKCkscD1kLnNlc3Npb24saD1kLnVzZXI7cmV0dXJuIGwoZnVuY3Rpb24odCxlLG4scixvLGksYSl7cmV0dXJue3R5cGU6TC5QV0MsY29udmVyc2F0aW9uSWQ6dCxwYXJ0SWQ6ZSxpZGVudGlmaWVyOm4sdmFsdWU6cixpZGVudGlmaWVyVHlwZTpvLGZvcm1UeXBlOmksaXNDdXN0b21EYXRhOmF9fShlLG4scixvLGksYSx1KSksdC51cGRhdGVDb252ZXJzYXRpb25Gb3JtKHAsZSxuLHIsbyxzKS50aGVuKChmdW5jdGlvbih0KXtsKGZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybnt0eXBlOkwuWlM5LGNvbnZlcnNhdGlvbjp0LHBhcnRJZDplLGlkZW50aWZpZXI6bixjcmVhdGVkQXQ6cn19KHQsbixyLERhdGUubm93KCkpKSwiZW1haWwiPT09ciYmbCgoMCxjLmFiKShoLG8pKX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7bChmdW5jdGlvbih0LGUsbixyKXtyZXR1cm57dHlwZTpMLmN4NCxjb252ZXJzYXRpb25JZDp0LHBhcnRJZDplLGlkZW50aWZpZXI6bixlcnJvcjpyfX0oZSxuLHIsdCkpfSkpfX1mdW5jdGlvbiBtdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgbz1uKCkuc2Vzc2lvbixpPSgwLHUudEgpKCk7KDAsci5ucikoKSYmKGkrPSI/dj0iK01hdGguZmxvb3IoMWU4Kk1hdGgucmFuZG9tKCkpKSwoMCxhLkNfKShpLCgwLHMueikobyx7Y29udmVyc2F0aW9uX2lkOnR9KSl9fWZ1bmN0aW9uIGJ0KCl7cmV0dXJue3R5cGU6TC5YaUF9fWZ1bmN0aW9uIHd0KHQpe3JldHVybnt0eXBlOkwuemw2LGNvbXBvc2VyU3RhdGU6dH19ZnVuY3Rpb24gX3QodCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITEpLHt0eXBlOkwuSzIwLHBhcnRzOnQsY3JlYXRlZEF0Om5ldyBEYXRlLGZyb21DbGllbnRNYXRjaDplfX1mdW5jdGlvbiBTdCh0KXtyZXR1cm57dHlwZTpMLnBpSSx0ZWFtSW50cm86dH19ZnVuY3Rpb24geHQodCl7cmV0dXJue3R5cGU6TC54VTMsc3BlY2lhbE5vdGljZTp0fX1mdW5jdGlvbiBFdCh0LGUpe3JldHVybiBmdW5jdGlvbihuLHIpe24oZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6TC5CVl8sY29udmVyc2F0aW9uSWQ6dH19KGUpKTt2YXIgbz1yKCkuc2Vzc2lvbjtyZXR1cm4gdC5qb2luQ29udmVyc2F0aW9uKG8sZSkudGhlbigoZnVuY3Rpb24oZSl7bihxKHQsZSwhMCxEYXRlLm5vdygpKSl9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe3JldHVybiBuKGZ1bmN0aW9uKHQsZSl7cmV0dXJue3R5cGU6TC5XZTgsY29udmVyc2F0aW9uSWQ6dCxlcnJvcjplfX0oZSx0KSl9KSl9fX0sNzE4MTY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7QTpmdW5jdGlvbigpe3JldHVybiBzfSxVOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHIsbz1uKDg4MTE0KSxpPW4oOTQyMTQpLGE9big2Njg1NCksdT0zZTQ7ZnVuY3Rpb24gcyh0LGUpe3ZhciBuLHM9dC5wYXJ0cy5zbGljZSgtMSlbMF07aWYoImdlbmVyaWNIYW5kb2ZmIj09PShudWxsPT1zP3ZvaWQgMDpzLm1lc3NhZ2VUeXBlKSYmbnVsbCE9KG49cy5hdXRob3IpJiZuLmlzQm90JiYhKERhdGUubm93KCktcy5jcmVhdGVkQXQuZ2V0VGltZSgpPnUpKWlmKCJqYXZhc2NyaXB0Ij09PXMuZXZlbnREYXRhLmhhbmRvZmZUeXBlJiZyKXt2YXIgYz17dHJhbnNjcmlwdDpzLmV2ZW50RGF0YS50cmFuc2NyaXB0LGNvbnZlcnNhdGlvbklkOnMuZXZlbnREYXRhLmNvbnZlcnNhdGlvbklkfSxsPXI7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gbChjKX0pLDEwMCksZSgoMCxpLk11KSgpKSxlKCgwLG8ubSkoImhpZGUiKSl9ZWxzZSBpZigidXJsIj09PXMuZXZlbnREYXRhLmhhbmRvZmZUeXBlJiZzLmV2ZW50RGF0YS5oYW5kb2ZmVXJsKXRyeXt2YXIgZixkPW5ldyBVUkwocy5ldmVudERhdGEuaGFuZG9mZlVybCk7aWYoImh0dHBzOiIhPT1kLnByb3RvY29sKXJldHVybjtudWxsPT0oZj0oMCxhLiQpKCkpfHxmLmxvY2F0aW9uLmFzc2lnbihkLmhyZWYpfWNhdGNoKHQpe3JldHVybn19ZnVuY3Rpb24gYyh0KXtyPXR9fSw1NDc4ODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtBOTpmdW5jdGlvbigpe3JldHVybiBDfSxLTzpmdW5jdGlvbigpe3JldHVybiB4fSxNdjpmdW5jdGlvbigpe3JldHVybiBffSxVdzpmdW5jdGlvbigpe3JldHVybiBTfSxfQzpmdW5jdGlvbigpe3JldHVybiBkfSxsUzpmdW5jdGlvbigpe3JldHVybiBwfSxwSzpmdW5jdGlvbigpe3JldHVybiBnfSx4SjpmdW5jdGlvbigpe3JldHVybiBFfSx4YjpmdW5jdGlvbigpe3JldHVybiB3fX0pO3ZhciByPW4oNTc1MjApLG89big0MDE4KSxpPW4oMTQ1NDApLGE9big2NjI3NCksdT1uKDM4MjUzKTtmdW5jdGlvbiBzKHQpe3JldHVybiBzPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxzKHQpfWZ1bmN0aW9uIGMoKXtjPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3ZhciB0LGU9e30sbj1PYmplY3QucHJvdG90eXBlLHI9bi5oYXNPd25Qcm9wZXJ0eSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24odCxlLG4pe3RbZV09bi52YWx1ZX0saT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxhPWkuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIix1PWkuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIsbD1pLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gZih0LGUsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtmKHt9LCIiKX1jYXRjaCh0KXtmPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1ufX1mdW5jdGlvbiBkKHQsZSxuLHIpe3ZhciBpPWUmJmUucHJvdG90eXBlIGluc3RhbmNlb2YgYj9lOmIsYT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSx1PW5ldyBqKHJ8fFtdKTtyZXR1cm4gbyhhLCJfaW52b2tlIix7dmFsdWU6SSh0LG4sdSl9KSxhfWZ1bmN0aW9uIHAodCxlLG4pe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6dC5jYWxsKGUsbil9fWNhdGNoKHQpe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOnR9fX1lLndyYXA9ZDt2YXIgaD0ic3VzcGVuZGVkU3RhcnQiLHY9InN1c3BlbmRlZFlpZWxkIix5PSJleGVjdXRpbmciLGc9ImNvbXBsZXRlZCIsbT17fTtmdW5jdGlvbiBiKCl7fWZ1bmN0aW9uIHcoKXt9ZnVuY3Rpb24gXygpe312YXIgUz17fTtmKFMsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgeD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsRT14JiZ4KHgoUChbXSkpKTtFJiZFIT09biYmci5jYWxsKEUsYSkmJihTPUUpO3ZhciBDPV8ucHJvdG90eXBlPWIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoUyk7ZnVuY3Rpb24gTyh0KXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2YodCxlLChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW52b2tlKGUsdCl9KSl9KSl9ZnVuY3Rpb24gQSh0LGUpe2Z1bmN0aW9uIG4obyxpLGEsdSl7dmFyIGM9cCh0W29dLHQsaSk7aWYoInRocm93IiE9PWMudHlwZSl7dmFyIGw9Yy5hcmcsZj1sLnZhbHVlO3JldHVybiBmJiYib2JqZWN0Ij09cyhmKSYmci5jYWxsKGYsIl9fYXdhaXQiKT9lLnJlc29sdmUoZi5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LGEsdSl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsYSx1KX0pKTplLnJlc29sdmUoZikudGhlbigoZnVuY3Rpb24odCl7bC52YWx1ZT10LGEobCl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LGEsdSl9KSl9dShjLmFyZyl9dmFyIGk7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gSShlLG4scil7dmFyIG89aDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09eSl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT1nKXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1rKHUscik7aWYocyl7aWYocz09PW0pY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09aCl0aHJvdyBvPWcsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPXk7dmFyIGM9cChlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP2c6dixjLmFyZz09PW0pY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz1nLHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gayhlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsayhlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSxtO3ZhciBpPXAobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCxtO3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCxtKTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLG0pfWZ1bmN0aW9uIEwodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gVCh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gaih0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEwsdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gUChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbYV07aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKHMoZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gdy5wcm90b3R5cGU9XyxvKEMsImNvbnN0cnVjdG9yIix7dmFsdWU6Xyxjb25maWd1cmFibGU6ITB9KSxvKF8sImNvbnN0cnVjdG9yIix7dmFsdWU6dyxjb25maWd1cmFibGU6ITB9KSx3LmRpc3BsYXlOYW1lPWYoXyxsLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09d3x8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsXyk6KHQuX19wcm90b19fPV8sZih0LGwsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoQyksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sTyhBLnByb3RvdHlwZSksZihBLnByb3RvdHlwZSx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1BLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQShkKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LE8oQyksZihDLGwsIkdlbmVyYXRvciIpLGYoQyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGYoQywidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1QLGoucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpqLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChUKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MsbSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSxtfSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLFQobiksbX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztUKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpQKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCksbX19LGV9ZnVuY3Rpb24gbCh0LGUsbixyLG8saSxhKXt0cnl7dmFyIHU9dFtpXShhKSxzPXUudmFsdWV9Y2F0Y2godCl7cmV0dXJuIHZvaWQgbih0KX11LmRvbmU/ZShzKTpQcm9taXNlLnJlc29sdmUocykudGhlbihyLG8pfWZ1bmN0aW9uIGYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7bChpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7bChpLHIsbyxhLHUsInRocm93Iix0KX1hKHZvaWQgMCl9KSl9fWZ1bmN0aW9uIGQoKXtyZXR1cm4gcCh1LkF5LCJtZXNzZW5nZXJQcmVmZXRjaFNwYWNlRGF0YSIpfWZ1bmN0aW9uIHAodCxlLG4saSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPSJ1bmtub3duIiksdm9pZCAwPT09biYmKG49MSksdm9pZCAwPT09aSYmKGk9MTApLGYoYygpLm1hcmsoKGZ1bmN0aW9uIGEodSxzKXt2YXIgbCxmLGQscCxnO3JldHVybiBjKCkud3JhcCgoZnVuY3Rpb24oYSl7Zm9yKDs7KXN3aXRjaChhLnByZXY9YS5uZXh0KXtjYXNlIDA6cmV0dXJuIHUoaCgpKSxsPXMoKSxmPWwuc2Vzc2lvbixkPWwuYXBwLGEucHJldj0zLGEubmV4dD02LHQuZ2V0Q29udmVyc2F0aW9ucyhmLHtzb3VyY2U6ZSxwYWdlOm4scGVyUGFnZTppLHNlbGZTZXJ2ZVN1Z2dlc3Rpb25zTWF0Y2g6ZC5zZWxmU2VydmVTdWdnZXN0aW9uc01hdGNofSk7Y2FzZSA2OnJldHVybiBwPWEuc2VudCwoZz1wLmNvbnZlcnNhdGlvbnMpLmZvckVhY2goKGZ1bmN0aW9uKGUpeygwLG8uSHApKGUpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3UoKDAsci5fRCkodCxlKSl9KSl9KSksdShTKGcpKSx1KHYocCkpLGEuYWJydXB0KCJyZXR1cm4iLGcpO2Nhc2UgMTQ6cmV0dXJuIGEucHJldj0xNCxhLnQwPWEuY2F0Y2goMyksdSh5KHZvaWQgMCkpLGEuYWJydXB0KCJyZXR1cm4iLFtdKTtjYXNlIDE4OmNhc2UiZW5kIjpyZXR1cm4gYS5zdG9wKCl9fSksYSxudWxsLFtbMywxNF1dKX0pKSl9ZnVuY3Rpb24gaCgpe3JldHVybnt0eXBlOmEuT05LfX1mdW5jdGlvbiB2KHQpe3JldHVybnt0eXBlOmEubUdYLGNvbnZlcnNhdGlvbnM6dH19ZnVuY3Rpb24geSh0KXtyZXR1cm57dHlwZTphLngwNixlcnJvcjp0fX1mdW5jdGlvbiBnKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4scil7bihtKGUpKTt2YXIgbz1yKCkuc2Vzc2lvbjtyZXR1cm4gdC5kaXNtaXNzTm90aWZpY2F0aW9ucyhvLGUpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIG4oYihlKSl9KSl9fWZ1bmN0aW9uIG0odCl7cmV0dXJue3R5cGU6YS5zVVMsY29udmVyc2F0aW9uSWRzOnR9fWZ1bmN0aW9uIGIodCl7cmV0dXJue3R5cGU6YS5naEgsY29udmVyc2F0aW9uSWRzOnR9fWZ1bmN0aW9uIHcodCl7cmV0dXJue3R5cGU6YS55cWssc2Nyb2xsUG9zaXRpb246dH19ZnVuY3Rpb24gXyh0KXtyZXR1cm57dHlwZTphLmZqbSxjb252ZXJzYXRpb25JZDp0fX1mdW5jdGlvbiBTKHQpe3JldHVybiBmdW5jdGlvbihlKXt0JiZ0LmZvckVhY2goKGZ1bmN0aW9uKHQpeygwLG8uWE4pKHQpJiZ0LnJlYWQmJmUoKDAsaS5wKSh0LmlkKSl9KSl9fWZ1bmN0aW9uIHgodCl7cmV0dXJue3R5cGU6YS5XZnAsb3BlbkluYm91bmRDb252ZXJzYXRpb25JZHM6dH19ZnVuY3Rpb24gRSh0LGUpe3JldHVybnt0eXBlOmEudnlQLGNvbnZlcnNhdGlvbklkOnQsdGl0bGU6ZSx0aXRsZU9yaWdpbjoiYWkifX1mdW5jdGlvbiBDKHQsZSl7cmV0dXJue3R5cGU6YS5LSF8sY29udmVyc2F0aW9uSWQ6dCxxdWV1ZVBvc2l0aW9uVGV4dDplfX19LDY5MjY5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0U6ZnVuY3Rpb24oKXtyZXR1cm4gb30seTpmdW5jdGlvbigpe3JldHVybiBpfX0pO3ZhciByPW4oNjYyNzQpO2Z1bmN0aW9uIG8odCl7cmV0dXJue3R5cGU6ci5XRXgsY3VzdG9taXphdGlvbkF0dHJpYnV0ZXM6dH19ZnVuY3Rpb24gaSh0KXtyZXR1cm57dHlwZTpyLlBZVCxjdXN0b21pemF0aW9uQXR0cmlidXRlczp0fX19LDE0NTQwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse3A6ZnVuY3Rpb24oKXtyZXR1cm4gb319KTt2YXIgcj1uKDY2Mjc0KSxvPWZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOnIuUHJxLGNvbnZlcnNhdGlvbklkOnR9fX0sNzUxMjE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7SDpmdW5jdGlvbigpe3JldHVybiBvfX0pO3ZhciByPW4oNjYyNzQpO2Z1bmN0aW9uIG8odCl7cmV0dXJue3R5cGU6ci5LZTgsdGhlbWVNb2RlOnR9fX0sNTE2Njk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7QVg6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sTUc6ZnVuY3Rpb24oKXtyZXR1cm4gX30sTjc6ZnVuY3Rpb24oKXtyZXR1cm4gU30sX0w6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sYU46ZnVuY3Rpb24oKXtyZXR1cm4gd319KTt2YXIgcj1uKDE3ODMzKSxvPW4ubihyKSxpPW4oNDYwNSksYT1uKDM4Mjg1KSx1PW4oNzExMCkscz1uKDY5NzQ0KSxjPW4oMTgzOTkpLGw9big2NjI3NCksZj1uKDI4ODI0KTtmdW5jdGlvbiBkKHQpe3JldHVybiBkPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxkKHQpfWZ1bmN0aW9uIHAoKXtwPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3ZhciB0LGU9e30sbj1PYmplY3QucHJvdG90eXBlLHI9bi5oYXNPd25Qcm9wZXJ0eSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24odCxlLG4pe3RbZV09bi52YWx1ZX0saT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxhPWkuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIix1PWkuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIscz1pLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gYyh0LGUsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtjKHt9LCIiKX1jYXRjaCh0KXtjPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1ufX1mdW5jdGlvbiBsKHQsZSxuLHIpe3ZhciBpPWUmJmUucHJvdG90eXBlIGluc3RhbmNlb2YgYj9lOmIsYT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSx1PW5ldyBqKHJ8fFtdKTtyZXR1cm4gbyhhLCJfaW52b2tlIix7dmFsdWU6SSh0LG4sdSl9KSxhfWZ1bmN0aW9uIGYodCxlLG4pe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6dC5jYWxsKGUsbil9fWNhdGNoKHQpe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOnR9fX1lLndyYXA9bDt2YXIgaD0ic3VzcGVuZGVkU3RhcnQiLHY9InN1c3BlbmRlZFlpZWxkIix5PSJleGVjdXRpbmciLGc9ImNvbXBsZXRlZCIsbT17fTtmdW5jdGlvbiBiKCl7fWZ1bmN0aW9uIHcoKXt9ZnVuY3Rpb24gXygpe312YXIgUz17fTtjKFMsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgeD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsRT14JiZ4KHgoUChbXSkpKTtFJiZFIT09biYmci5jYWxsKEUsYSkmJihTPUUpO3ZhciBDPV8ucHJvdG90eXBlPWIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoUyk7ZnVuY3Rpb24gTyh0KXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2ModCxlLChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW52b2tlKGUsdCl9KSl9KSl9ZnVuY3Rpb24gQSh0LGUpe2Z1bmN0aW9uIG4obyxpLGEsdSl7dmFyIHM9Zih0W29dLHQsaSk7aWYoInRocm93IiE9PXMudHlwZSl7dmFyIGM9cy5hcmcsbD1jLnZhbHVlO3JldHVybiBsJiYib2JqZWN0Ij09ZChsKSYmci5jYWxsKGwsIl9fYXdhaXQiKT9lLnJlc29sdmUobC5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LGEsdSl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsYSx1KX0pKTplLnJlc29sdmUobCkudGhlbigoZnVuY3Rpb24odCl7Yy52YWx1ZT10LGEoYyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LGEsdSl9KSl9dShzLmFyZyl9dmFyIGk7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gSShlLG4scil7dmFyIG89aDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09eSl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT1nKXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1rKHUscik7aWYocyl7aWYocz09PW0pY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09aCl0aHJvdyBvPWcsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPXk7dmFyIGM9ZihlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP2c6dixjLmFyZz09PW0pY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz1nLHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gayhlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsayhlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSxtO3ZhciBpPWYobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCxtO3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCxtKTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLG0pfWZ1bmN0aW9uIEwodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gVCh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gaih0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEwsdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gUChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbYV07aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKGQoZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gdy5wcm90b3R5cGU9XyxvKEMsImNvbnN0cnVjdG9yIix7dmFsdWU6Xyxjb25maWd1cmFibGU6ITB9KSxvKF8sImNvbnN0cnVjdG9yIix7dmFsdWU6dyxjb25maWd1cmFibGU6ITB9KSx3LmRpc3BsYXlOYW1lPWMoXyxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09d3x8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsXyk6KHQuX19wcm90b19fPV8sYyh0LHMsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoQyksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sTyhBLnByb3RvdHlwZSksYyhBLnByb3RvdHlwZSx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1BLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQShsKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LE8oQyksYyhDLHMsIkdlbmVyYXRvciIpLGMoQyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGMoQywidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1QLGoucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpqLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChUKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MsbSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSxtfSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLFQobiksbX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztUKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpQKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCksbX19LGV9ZnVuY3Rpb24gaCh0LGUsbixyLG8saSxhKXt0cnl7dmFyIHU9dFtpXShhKSxzPXUudmFsdWV9Y2F0Y2godCl7cmV0dXJuIHZvaWQgbih0KX11LmRvbmU/ZShzKTpQcm9taXNlLnJlc29sdmUocykudGhlbihyLG8pfWZ1bmN0aW9uIHYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7aChpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7aChpLHIsbyxhLHUsInRocm93Iix0KX1hKHZvaWQgMCl9KSl9fXZhciB5PW8oKSgiaW50ZXJjb20uYWN0aW9ucy5pbmJvdW5kLXRyaWdnZXJzIik7ZnVuY3Rpb24gZyh0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPSExKSx2KHAoKS5tYXJrKChmdW5jdGlvbiByKG8sbCl7dmFyIGQsaCx2LGcsYix3LF8sUyx4LEUsQyxPLEEsSSxrLEw7cmV0dXJuIHAoKS53cmFwKChmdW5jdGlvbihyKXtmb3IoOzspc3dpdGNoKHIucHJldj1yLm5leHQpe2Nhc2UgMDpyZXR1cm4gaD1udWxsPT0oZD1sKCkubmV3Q29udmVyc2F0aW9uKXx8bnVsbD09KGQ9ZC5jb21wb3NlclN0YXRlKT92b2lkIDA6ZC52aXNpYmxlLHIucHJldj0xLGc9bCgpLGI9Zy5hcHAsdz1nLnNlc3Npb24sXz1nLnVzZXIsUz1nLm5ld0NvbnZlcnNhdGlvbix4PWcuYXBwLnVzZXJQYXJ0VXhTdHlsZSxFPSgwLGEubCkoKSxDPXtjbGllbnRJZDpFLGJvZHk6KDAsdS4kQikoZS50ZXh0KSxjcmVhdGVkQXQ6bmV3IERhdGUsY29tcG9zZXJTdWdnZXN0aW9uSXRlbTplLHV4U3R5bGU6eH0sTz1udWxsPT1fP3ZvaWQgMDpfLnVzZXJTdXBwbGllZEVtYWlsLEE9KDAsZi4kKShnKSxJPShudWxsPT1BP3ZvaWQgMDpBLndlbGNvbWVQYXJ0cyl8fFtdLG8obShlKSksbygoMCxpLmpXKShDLG4sTyxEYXRlLm5vdygpLEkpKSwoMCxzLk0yKSgiaW5ib3VuZFN1Z2dlc3Rpb25Db252ZXJzYXRpb25DcmVhdGlvbiIsRSx7Y3VzdG9tX2JvdF9jb250cm9sX2lkOm51bGw9PWU/dm9pZCAwOmUudXVpZH0pLGs9bnVsbD09X3x8bnVsbD09KHY9Xy5jdXN0b21BdHRyaWJ1dGVzKT92b2lkIDA6di5uZXdfY29udmVyc2F0aW9uX2F0dHJpYnV0ZXMsci5uZXh0PTE1LHQuc3RhcnRDb252ZXJzYXRpb25Gcm9tU3VnZ2VzdGlvbih3LHtzdWdnZXN0aW9uVXVpZDplLnV1aWQsY2xpZW50QXNzaWduZWRVVUlEOkUsc2VsZlNlcnZlU3VnZ2VzdGlvbnNNYXRjaDpiLnNlbGZTZXJ2ZVN1Z2dlc3Rpb25zTWF0Y2gsbWVzc2VuZ2VyT3BlblJlcXVlc3RJZDpiLm1lc3Nlbmdlck9wZW5SZXF1ZXN0SWQsYXJ0aWNsZVVybDpTLmFydGljbGVVcmwsY3VzdG9tQXR0cmlidXRlczprfSk7Y2FzZSAxNTpMPXIuc2VudCwoMCxzLlpKKSgiaW5ib3VuZFN1Z2dlc3Rpb25Db252ZXJzYXRpb25DcmVhdGlvbiIsRSx7b3JpZ2luOiJjb252ZXJzYXRpb25fY3JlYXRlZCIsY29udmVyc2F0aW9uX2lkOm51bGw9PUw/dm9pZCAwOkwuaWR9KSxvKCgwLGkuSE4pKEwsbnVsbCxudWxsLERhdGUubm93KCksImN1c3RvbV9ib3QiKSksbygoMCxjLnApKEwuaWQsITApKSxyLm5leHQ9MjU7YnJlYWs7Y2FzZSAyMTpyLnByZXY9MjEsci50MD1yLmNhdGNoKDEpLG8oKDAsaS53aikobnVsbCkpLHkoIkNvdWxkbnQgc3RhcnQgY29udmVyc2F0aW9uIGZyb20gc3VnZ2VzdGlvbiBkdWUgdG8gZT0iK3IudDApO2Nhc2UgMjU6cmV0dXJuIHIucHJldj0yNSxoJiZvKCgwLGkuTiQpKHt2aXNpYmxlOiEwfSkpLHIuZmluaXNoKDI1KTtjYXNlIDI4OmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSkscixudWxsLFtbMSwyMSwyNSwyOF1dKX0pKSl9ZnVuY3Rpb24gbSh0KXtpZigiY2xvc2UtY29tcG9zZXIiPT09dC5wcmVBY3Rpb24pcmV0dXJuKDAsaS5OJCkoe3Zpc2libGU6ITF9KTt0aHJvdyJJbnZhbGlkIFBSRSBBQ1RJT04gdHlwZSBmb3Igc3VnZ2VzdGlvbj0iK3QucHJlQWN0aW9ufWZ1bmN0aW9uIGIodCl7cmV0dXJue3R5cGU6bC5ZZE0sY29tcG9zZXJTdWdnZXN0aW9uczp0fX1mdW5jdGlvbiB3KHQpe3JldHVybnt0eXBlOmwuS1UxLGNvbXBvc2VyU3VnZ2VzdGlvbnM6dH19ZnVuY3Rpb24gXyh0KXtyZXR1cm57dHlwZTpsLnJNdyxjb21wb3NlclN1Z2dlc3Rpb25zOnR9fWZ1bmN0aW9uIFModCl7cmV0dXJue3R5cGU6bC5EM1IscnVsZXNldElkOnR9fX0sMzM3NTU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7SlM6ZnVuY3Rpb24oKXtyZXR1cm4gdX0samQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sclE6ZnVuY3Rpb24oKXtyZXR1cm4gaX19KTt2YXIgcj1uKDM4MjUzKSxvPW4oNjYyNzQpO2Z1bmN0aW9uIGkodCl7dmFyIGU9dC5hY3RpdmVTdWJzY3JpcHRpb24sbj10LnVzZXJIYXNoVmVyaWZpZWQscj10LnNlY3VyZUluc3RhbGxWMixpPXQubWVzc2VuZ2VyRW5hYmxlZEZvclZpc2l0b3JzLGE9dC5tZXNzZW5nZXJFbmFibGVkRm9yVXNlcnM7cmV0dXJue3R5cGU6by5CdWIsYWN0aXZlU3Vic2NyaXB0aW9uOmUsdXNlckhhc2hWZXJpZmllZDpuLHNlY3VyZUluc3RhbGxWMjpyLG1lc3NlbmdlckVuYWJsZWRGb3JWaXNpdG9yczppLG1lc3NlbmdlckVuYWJsZWRGb3JVc2VyczphfX1mdW5jdGlvbiBhKCl7cmV0dXJue3R5cGU6by4kb0J9fWZ1bmN0aW9uIHUoKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbj1lKCkuc2Vzc2lvbjtyZXR1cm4gci5BeS5kaXNhYmxlSW5zdGFsbE1vZGUobikudGhlbigoZnVuY3Rpb24oKXt0KGEoKSl9KSl9fX0sMjk5NDE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7Rmg6ZnVuY3Rpb24oKXtyZXR1cm4gc30sWFg6ZnVuY3Rpb24oKXtyZXR1cm4gdX0salY6ZnVuY3Rpb24oKXtyZXR1cm4gY30sbmM6ZnVuY3Rpb24oKXtyZXR1cm4gZn0seVE6ZnVuY3Rpb24oKXtyZXR1cm4gZH19KTt2YXIgcixvLGk9big2NjI3NCksYT02ZTM7ZnVuY3Rpb24gdSgpe3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciBuPWUoKS5sYXVuY2hlckRpc2NvdmVyeU1vZGUscj1uLmhhc0Rpc2NvdmVyZWRMYXVuY2hlcixvPW4uaXNMYXVuY2hlckRpc2NvdmVyeU1vZGVPcGVuaW5nLHU9bi5pc0xhdW5jaGVyRGlzY292ZXJ5TW9kZUNsb3Npbmc7cnx8b3x8dXx8KHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dCh7dHlwZTppLnJFWH0pfSksYSksbCh0KSl9fWZ1bmN0aW9uIHMoKXtyJiZjbGVhclRpbWVvdXQociksbyYmY2xlYXJUaW1lb3V0KG8pfWZ1bmN0aW9uIGMoKXtyZXR1cm4gZnVuY3Rpb24odCl7bCh0KX19dmFyIGw9ZnVuY3Rpb24odCl7cj1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiB0KHt0eXBlOmkubm5rfSl9KSwxM2UzKSxvPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIHQoZCgpKX0pLDEzNzAwKX07ZnVuY3Rpb24gZigpe3JldHVybnt0eXBlOmkuVVk1fX1mdW5jdGlvbiBkKCl7cmV0dXJue3R5cGU6aS5UOTJ9fX0sNDUxOTk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7bzpmdW5jdGlvbigpe3JldHVybiByfX0pO3ZhciByPSgwLG4oMTU0NTIpLlZQKSgiYXBwL3NldFBlbmRpbmdMYXVuY2hlckZvY3VzIil9LDg4MTE0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse206ZnVuY3Rpb24oKXtyZXR1cm4gb319KTt2YXIgcj1uKDY2Mjc0KTtmdW5jdGlvbiBvKHQpe3JldHVybnt0eXBlOnIua2ZmLGxhdW5jaGVyRW5hYmxlZE92ZXJyaWRlOnR9fX0sNDUzODc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7WTY6ZnVuY3Rpb24oKXtyZXR1cm4geX0sRzQ6ZnVuY3Rpb24oKXtyZXR1cm4gdn0sWHo6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sZFQ6ZnVuY3Rpb24oKXtyZXR1cm4gbX19KTt2YXIgcj1uKDY2Mjc0KSxvPW4oMzgyNTMpLGk9big0NjA1KSxhPW4oOTQyMTQpLHU9bigxODM5OSkscz1uKDE3ODMzKSxjPW4ubihzKSgpKCJwb3N0czpkZWJ1ZyIpLGw9big2OTc0NCk7ZnVuY3Rpb24gZih0KXtyZXR1cm4gZj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sZih0KX1mdW5jdGlvbiBkKCl7ZD1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHM9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGModCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Yyh7fSwiIil9Y2F0Y2godCl7Yz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gbCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGI/ZTpiLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgaihyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOkkodCxuLHUpfSksYX1mdW5jdGlvbiBwKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWw7dmFyIGg9InN1c3BlbmRlZFN0YXJ0Iix2PSJzdXNwZW5kZWRZaWVsZCIseT0iZXhlY3V0aW5nIixnPSJjb21wbGV0ZWQiLG09e307ZnVuY3Rpb24gYigpe31mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIF8oKXt9dmFyIFM9e307YyhTLGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIHg9T2JqZWN0LmdldFByb3RvdHlwZU9mLEU9eCYmeCh4KFAoW10pKSk7RSYmRSE9PW4mJnIuY2FsbChFLGEpJiYoUz1FKTt2YXIgQz1fLnByb3RvdHlwZT1iLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFMpO2Z1bmN0aW9uIE8odCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtjKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEEodCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBzPXAodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLGw9Yy52YWx1ZTtyZXR1cm4gbCYmIm9iamVjdCI9PWYobCkmJnIuY2FsbChsLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGwuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCxhLHUpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LGEsdSl9KSk6ZS5yZXNvbHZlKGwpLnRoZW4oKGZ1bmN0aW9uKHQpe2MudmFsdWU9dCxhKGMpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCxhLHUpfSkpfXUocy5hcmcpfXZhciBpO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIEkoZSxuLHIpe3ZhciBvPWg7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PXkpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09Zyl7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9ayh1LHIpO2lmKHMpe2lmKHM9PT1tKWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWgpdGhyb3cgbz1nLHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz15O3ZhciBjPXAoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT9nOnYsYy5hcmc9PT1tKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89ZyxyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIGsoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LGsoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSksbTt2YXIgaT1wKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwsbTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwsbSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCxtKX1mdW5jdGlvbiBMKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIFQodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIGoodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChMLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFAoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW2FdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGk9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBpLm5leHQ9aX19dGhyb3cgbmV3IFR5cGVFcnJvcihmKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIHcucHJvdG90eXBlPV8sbyhDLCJjb25zdHJ1Y3RvciIse3ZhbHVlOl8sY29uZmlndXJhYmxlOiEwfSksbyhfLCJjb25zdHJ1Y3RvciIse3ZhbHVlOncsY29uZmlndXJhYmxlOiEwfSksdy5kaXNwbGF5TmFtZT1jKF8scywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PXd8fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LF8pOih0Ll9fcHJvdG9fXz1fLGModCxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEMpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LE8oQS5wcm90b3R5cGUpLGMoQS5wcm90b3R5cGUsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QSxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEEobCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxPKEMpLGMoQyxzLCJHZW5lcmF0b3IiKSxjKEMsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxjKEMsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9UCxqLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aixyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goVCksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLG0pOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSksbX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxUKG4pLG19fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7VChuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6UChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLG19fSxlfWZ1bmN0aW9uIHAodCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBoKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBhKHQpe3AoaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpe3AoaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfX1mdW5jdGlvbiB2KHQsZSl7cmV0dXJue3R5cGU6ci52elAsY29udmVyc2F0aW9uSWQ6dCxwYXJ0SWQ6ZX19ZnVuY3Rpb24geSgpe3JldHVybnt0eXBlOnIubEx9fWZ1bmN0aW9uIGcodCxlKXtyZXR1cm57dHlwZTpyLlIzVSxjb252ZXJzYXRpb25JZDp0LHBhcnRJZDplfX1mdW5jdGlvbiBtKHQpe3JldHVybiBoKGQoKS5tYXJrKChmdW5jdGlvbiBlKG4scil7dmFyIHMsZixwLGg7cmV0dXJuIGQoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gcz1yKCksZj1zLnNlc3Npb24sZS5wcmV2PTEsYygiU3RhcnRpbmcgcG9zdCBwcmV2aWV3LCBwb3N0X2lkPSIsdCksZS5uZXh0PTUsby5BeS5mZXRjaFBvc3RQcmV2aWV3KGYsdCk7Y2FzZSA1OnA9ZS5zZW50LGg9KDAsby55cykocCksYygiY29udmVyc2F0aW9uIElEIixoLmlkKSxuKCgwLGkuRm8pKG8uQXksaCwhMCxEYXRlLm5vdygpKSksYygiZGVsaXZlcnkgb3B0aW9uIixwLmNvbnZlcnNhdGlvbl9tZXNzYWdlLmRlbGl2ZXJ5X29wdGlvbiksImZ1bGwiIT09cC5jb252ZXJzYXRpb25fbWVzc2FnZS5kZWxpdmVyeV9vcHRpb24mJihuKCgwLHUucCkoaC5pZCkpLG4oKDAsYS5xeSkoKSkpLGUubmV4dD0xNjticmVhaztjYXNlIDEzOmUucHJldj0xMyxlLnQwPWUuY2F0Y2goMSksKDAsbC51bykoIkNvdWxkIG5vdCBmZXRjaCBwb3N0IGR1ZSB0byBlPSIrZS50MCk7Y2FzZSAxNjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsbnVsbCxbWzEsMTNdXSl9KSkpfX0sOTUzMTk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7UzpmdW5jdGlvbigpe3JldHVybiBhfX0pO3ZhciByLG89big2NjI3NCksaT01ZTM7ZnVuY3Rpb24gYSh0LGUpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgYT17dHlwZTpvLkJRVCxwYXlsb2FkOnthbGVydFR5cGU6dCxhbGVydFBheWxvYWQ6ZX19O24oYSksciYmY2xlYXJUaW1lb3V0KHIpLHI9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtuKHt0eXBlOm8ub2V3fSl9KSxpKX19fSw1NzUyMDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtfRDpmdW5jdGlvbigpe3JldHVybiBhfX0pO3ZhciByPW4oMzg5OSksbz1uKDQ1NDk2KSxpPW4oNjYyNzQpLGE9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBmdW5jdGlvbihpLGEpe3ZhciBmPWEoKS5tZXNzZW5nZXJDYXJkcyxkPW4mJmYmJmZbZS51cmldLHA9KDAsby5reCkoZSk7aWYoaShzKHApKSxkJiZ1KGQuY2FyZCkmJiFwLmNhbnZhcy5jb250ZW50JiYocC5jYW52YXM9T2JqZWN0LmFzc2lnbih7fSxwLmNhbnZhcyxkLmNhcmQuY2FudmFzKSksIXAuY2FudmFzLmNvbnRlbnQpe3ZhciBoPWEoKS5zZXNzaW9uO3JldHVybiB0LmdldE1lc3NlbmdlckNhbnZhc1dpdGhDb250ZW50KGgscC5jYW52YXMuaWQscC51cmkpLnRoZW4oKGZ1bmN0aW9uKHQpe2koYyhwLHQuY29udGVudCkpfSkpLmNhdGNoKChmdW5jdGlvbih0KXtpKGwocCkpLCgwLHIualApKCJUaGVyZSB3YXMgYSBwcm9ibGVtIHJldHJpZXZpbmcgdGhlIGxpdmUgY2FyZCBjb250ZW50OiAiK3QpfSkpfWkoYyhwLHAuY2FudmFzLmNvbnRlbnQpKX19LHU9ZnVuY3Rpb24odCl7cmV0dXJuISghdHx8IXQuY2FudmFzKX0scz1mdW5jdGlvbih0KXtyZXR1cm57dHlwZTppLkkwVSxjYXJkOnR9fSxjPWZ1bmN0aW9uKHQsZSl7cmV0dXJue3R5cGU6aS5VSGQsY2FyZDp0LGNvbnRlbnQ6ZX19LGw9ZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6aS4kUmMsY2FyZDp0fX19LDU2NjAwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse3NQOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LHo4OmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9big0NTQ5Niksbz1uKDU3NTIwKSxpPW4oOTUzMTkpLGE9big2NjI3NCksdT1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gZnVuY3Rpb24oYSx1KXt2YXIgZj11KCkuc2Vzc2lvbjtyZXR1cm4gYShzKGUsbikpLHQuc3VibWl0TWVzc2VuZ2VyQ2FyZEFjdGlvbihmLGUsbixyKS50aGVuKChmdW5jdGlvbihlKXthKGMoZSkpLGEoKDAsby5fRCkodCxlKSl9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7YShsKGUsbikpLGEoKDAsaS5TKSgiTWVzc2VuZ2VyQ2FyZFN1Ym1pdEVycm9yIix7Y2FyZFVyaTplLGNvbXBvbmVudElkOm4saW5wdXRWYWx1ZXM6cn0pKX0pKX19LHM9ZnVuY3Rpb24odCxlKXtyZXR1cm57dHlwZTphLmRJZixjYXJkVXJpOnQsY29tcG9uZW50SWQ6ZX19LGM9ZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6YS5aQnosY2FyZDooMCxyLmt4KSh0KX19LGw9ZnVuY3Rpb24odCxlKXtyZXR1cm57dHlwZTphLmtTeSxjYXJkVXJpOnQsY29tcG9uZW50SWQ6ZX19fSw3NDQ5MDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtxOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7dmFyIHI9big1MTg4Myksbz1uKDI2NzAzKSxpPW4oNjYyNzQpO2Z1bmN0aW9uIGEodCxlLG4pe3JldHVybiBmdW5jdGlvbihhKXthKCgwLHIuVkMpKCIvIitvLlpoLmlkKyIvc2hlZXQiKSksYSh7dHlwZTppLnBTSyx1cmw6dCxjYXJkVXJpOmUsY29tcG9uZW50SWQ6bn0pfX19LDM4NDk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7R246ZnVuY3Rpb24oKXtyZXR1cm4gT30sSjpmdW5jdGlvbigpe3JldHVybiBFfSxRSzpmdW5jdGlvbigpe3JldHVybiBTfSxTUTpmdW5jdGlvbigpe3JldHVybiB3fSxnbDpmdW5jdGlvbigpe3JldHVybiBDfSxpdTpmdW5jdGlvbigpe3JldHVybiB4fSxsVTpmdW5jdGlvbigpe3JldHVybiBifSx3djpmdW5jdGlvbigpe3JldHVybiBtfX0pO3ZhciByPW4oNTY2MDApLG89big1NzUyMCksaT1uKDkzNDY0KSxhPW4oNDA3NzApLHU9big1MTM5Nykscz1uKDcxMzA2KSxjPW4oOTQyMTQpLGw9big2OTc0NCksZj1uKDk1MzE5KSxkPW4oNDUzODcpLHA9big1MTg4MyksaD1uKDY2Mjc0KSx2PW4oNzQ0OTApLHk9bigxNDEyMCksZz1uKDY4NzYyKTtmdW5jdGlvbiBtKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4scil7dmFyIG89KGUuZGF0YXx8e30pLmludGVyY29tU2hlZXQsaT1yKCksYz0oMCxzLlhTKShpKTtpZihvKXN3aXRjaChvLnR5cGUpe2Nhc2UgdS5DOm4oQygpKTticmVhaztjYXNlIGEubSQ6bihFKCkpO2JyZWFrO2Nhc2UgYS5obzpuKEMoKSk7YnJlYWs7Y2FzZSBhLk5kOm4oUygic2hlZXRfYXBpX2Nsb3NlIikpO2JyZWFrO2Nhc2UgYS5rczppZighby5wYXlsb2FkKXJldHVybjtuKHgoby5wYXlsb2FkLnRpdGxlKSk7YnJlYWs7Y2FzZSBhLnpSOmlmKCFjKXJldHVybjtuKEUoKSksbih3KHQsby5wYXlsb2FkKSl9fX1mdW5jdGlvbiBiKHQsZSxuLHIsbyl7cmV0dXJuIGZ1bmN0aW9uKGksYSl7dmFyIHU9YSgpLHM9dS5hcHAuaXNNZXNzZW5nZXJPcGVuLGw9dS5zZXNzaW9uO3JldHVybiBzfHxpKCgwLGMua0IpKCkpLGkoKDAsdi5xKShyLGUsbikpLGkoQSgpKSxpKCgwLGQuWTYpKCkpLHQuZmV0Y2hNZXNzZW5nZXJTaGVldERhdGEobCxlLG4sbykudGhlbigoZnVuY3Rpb24odCl7aShJKHQpKX0pKS5jYXRjaCgoZnVuY3Rpb24oKXtpKGsoKSl9KSl9fWZ1bmN0aW9uIHcodCxlKXtyZXR1cm4gZnVuY3Rpb24obixhKXt2YXIgdT1hKCksYz0oMCxzLlhTKSh1KS5jYXJkVXJpLGw9dS5zZXNzaW9uO3JldHVybiB0LnN1Ym1pdFNoZWV0KGwsYyxlKS50aGVuKChmdW5jdGlvbihlKXtuKCgwLHIuejgpKGUpKSxuKCgwLG8uX0QpKHQsZSkpfSkpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0KXtyZXR1cm4gc2V0VGltZW91dCh0LDIqaS5pKX0pKX0pKS50aGVuKChmdW5jdGlvbigpe24oQygpKSxuKFMoInNoZWV0X2FwaV9zdWJtaXQiKSl9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7bigoMCxmLlMpKCJNZXNzZW5nZXJTaGVldFN1Ym1pdEVycm9yIix7c2hlZXRWYWx1ZXM6ZX0pKX0pKX19dmFyIF89ZnVuY3Rpb24odCl7cmV0dXJuKDAsZy5zQikodCk/ImNvbnZlcnNhdGlvbiI6ImhvbWUtc2NyZWVuIn07ZnVuY3Rpb24gUyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgcixvPW4oKSxpPSgwLHMuWFMpKG8pLmNhcmRVcmksYT1udWxsPT0ocj1vLm1lc3NlbmdlckNhcmRzW2ldKT92b2lkIDA6ci5jYXJkO2lmKGEpe3ZhciB1PW8ubWVzc2VuZ2VyU2hlZXQudXJsLGM9by51c2VyLGY9KDAseS5WeSkobyksZD0oMCx5Lm9QKShvKSx2PSJzaGVldF9hcGlfc3VibWl0Ij09PXR8fCJzaGVldF9hcGlfY2xvc2UiPT09dD90Ol8oZCksZz1udWxsPT1hP3ZvaWQgMDphLm1lc3Nlbmdlcl9hcHBfaWQ7Yy5pZCYmdm9pZCAwIT09ZyYmZiYmZnVuY3Rpb24odCxlLG4scixvLGkpe2wuQXkuYnVpbGRBbmRBZGRNZXRyaWModCwiY2xvc2VkIiwibWVzc2VuZ2VyX3NoZWV0IiwibWVzc2VuZ2VyIixlLHt1cmw6bixtZXNzZW5nZXJfY2FyZF91cmk6cixtZXNzZW5nZXJfYXBwX2lkOm8sY29udmVyc2F0aW9uX2lkOml9KX0oe2lkOmMuaWR9LHYsdXx8IiIsaSxnLGYpfWUoe3R5cGU6aC5scGV9KSxlKCgwLHAuT0UpKCkpfX1mdW5jdGlvbiB4KHQpe3JldHVybnt0eXBlOmgud3daLHNoZWV0VGl0bGU6dH19ZnVuY3Rpb24gRSgpe3JldHVybnt0eXBlOmgucnpFfX1mdW5jdGlvbiBDKCl7cmV0dXJue3R5cGU6aC55U3p9fWZ1bmN0aW9uIE8odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSExKSx7dHlwZTpoLnRYUSxpc0xvYWRlZDp0fX12YXIgQT1mdW5jdGlvbigpe3JldHVybnt0eXBlOmguT1hYfX0sST1mdW5jdGlvbih0KXtyZXR1cm57dHlwZTpoLllqcixkYXRhOnR9fSxrPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6aC5IVkh9fX0sNTJlMzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKSxuLmQoZSx7ZmV0Y2hOZXdDb252ZXJzYXRpb25Db250ZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHl9fSk7dmFyIHI9big0MTYwOSksbz1uKDY5NTA4KSxpPW4oNTE2NjkpLGE9bigyODgyNCksdT1uKDQ2MDUpLHM9bigzODI1MyksYz1uKDU3NTIwKSxsPW4oOTQyMTQpLGY9big2OTc0NCk7ZnVuY3Rpb24gZCh0KXtyZXR1cm4gZD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sZCh0KX1mdW5jdGlvbiBwKCl7cD1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHM9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGModCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Yyh7fSwiIil9Y2F0Y2godCl7Yz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gbCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGI/ZTpiLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgaihyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOkkodCxuLHUpfSksYX1mdW5jdGlvbiBmKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWw7dmFyIGg9InN1c3BlbmRlZFN0YXJ0Iix2PSJzdXNwZW5kZWRZaWVsZCIseT0iZXhlY3V0aW5nIixnPSJjb21wbGV0ZWQiLG09e307ZnVuY3Rpb24gYigpe31mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIF8oKXt9dmFyIFM9e307YyhTLGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIHg9T2JqZWN0LmdldFByb3RvdHlwZU9mLEU9eCYmeCh4KFAoW10pKSk7RSYmRSE9PW4mJnIuY2FsbChFLGEpJiYoUz1FKTt2YXIgQz1fLnByb3RvdHlwZT1iLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFMpO2Z1bmN0aW9uIE8odCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtjKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEEodCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBzPWYodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLGw9Yy52YWx1ZTtyZXR1cm4gbCYmIm9iamVjdCI9PWQobCkmJnIuY2FsbChsLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGwuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCxhLHUpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LGEsdSl9KSk6ZS5yZXNvbHZlKGwpLnRoZW4oKGZ1bmN0aW9uKHQpe2MudmFsdWU9dCxhKGMpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCxhLHUpfSkpfXUocy5hcmcpfXZhciBpO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIEkoZSxuLHIpe3ZhciBvPWg7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PXkpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09Zyl7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9ayh1LHIpO2lmKHMpe2lmKHM9PT1tKWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWgpdGhyb3cgbz1nLHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz15O3ZhciBjPWYoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT9nOnYsYy5hcmc9PT1tKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89ZyxyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIGsoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LGsoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSksbTt2YXIgaT1mKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwsbTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwsbSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCxtKX1mdW5jdGlvbiBMKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIFQodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIGoodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChMLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFAoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW2FdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGk9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBpLm5leHQ9aX19dGhyb3cgbmV3IFR5cGVFcnJvcihkKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIHcucHJvdG90eXBlPV8sbyhDLCJjb25zdHJ1Y3RvciIse3ZhbHVlOl8sY29uZmlndXJhYmxlOiEwfSksbyhfLCJjb25zdHJ1Y3RvciIse3ZhbHVlOncsY29uZmlndXJhYmxlOiEwfSksdy5kaXNwbGF5TmFtZT1jKF8scywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PXd8fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LF8pOih0Ll9fcHJvdG9fXz1fLGModCxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEMpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LE8oQS5wcm90b3R5cGUpLGMoQS5wcm90b3R5cGUsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QSxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEEobCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxPKEMpLGMoQyxzLCJHZW5lcmF0b3IiKSxjKEMsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxjKEMsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9UCxqLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aixyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goVCksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLG0pOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSksbX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxUKG4pLG19fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7VChuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6UChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLG19fSxlfWZ1bmN0aW9uIGgodCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiB2KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBhKHQpe2goaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpe2goaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfX12YXIgeT0oMCxyLlM0KSgibWVzc2VuZ2VyL2ZldGNoTmV3Q29udmVyc2F0aW9uQ29udGVudCIsdihwKCkubWFyaygoZnVuY3Rpb24gdChlLG4pe3ZhciByLGQsaCx2LHksZyxtLGIsdyxfLFMseCxFLEMsTyxBO3JldHVybiBwKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIGI9bi5nZXRTdGF0ZSgpLHc9bi5kaXNwYXRjaCxfPWIuc2Vzc2lvbixTPWIuYXBwLHQucHJldj0zLHQubmV4dD02LHMuQXkuZmV0Y2hOZXdDb252ZXJzYXRpb25Db250ZW50KF8pO2Nhc2UgNjp4PXQuc2VudCx0Lm5leHQ9MTI7YnJlYWs7Y2FzZSA5OnJldHVybiB0LnByZXY9OSx0LnQwPXQuY2F0Y2goMyksdC5hYnJ1cHQoInJldHVybiIsbi5yZWplY3RXaXRoVmFsdWUodC50MCkpO2Nhc2UgMTI6aWYoeCl7dC5uZXh0PTE0O2JyZWFrfXJldHVybiB0LmFicnVwdCgicmV0dXJuIixudWxsKTtjYXNlIDE0OmlmKEU9KDAsYS4kKShuLmdldFN0YXRlKCkpLEM9bnVsbCE9RSYmbnVsbCE9KG51bGw9PShyPXguY29tcG9zZXJTdWdnZXN0aW9ucyk/dm9pZCAwOnIucHJpb3JpdHkpJiZFLnByaW9yaXR5PHguY29tcG9zZXJTdWdnZXN0aW9ucy5wcmlvcml0eSwoMCxmLnNxKSgibmV3X2NvbnZlcnNhdGlvbl9wcmlvcml0eV9ndWFyZCIse2ZsYWdfZW5hYmxlZDohMCxoaWdoZXJfcHJpb3JpdHlfY2FuZGlkYXRlOkMsc3VwcHJlc3NlZDpDJiZCb29sZWFuKChudWxsPT0oZD14Lm5ld0NvbnZlcnNhdGlvblBhcnRzKT92b2lkIDA6ZC5sZW5ndGgpfHx4LmNvbXBvc2VyU3RhdGUpLGNsaWVudF9tYXRjaF9wcmlvcml0eTpudWxsIT0oaD1udWxsPT1FP3ZvaWQgMDpFLnByaW9yaXR5KT9oOm51bGwsc2VydmVyX2NvbnRlbnRfcHJpb3JpdHk6bnVsbCE9KHY9bnVsbD09KHk9eC5jb21wb3NlclN1Z2dlc3Rpb25zKT92b2lkIDA6eS5wcmlvcml0eSk/djpudWxsfSxDKSxudWxsPT0oZz14Lm5ld0NvbnZlcnNhdGlvblBhcnRzKXx8IWcubGVuZ3RofHxDKXt0Lm5leHQ9MjM7YnJlYWt9cmV0dXJuIE89eC5uZXdDb252ZXJzYXRpb25QYXJ0cy5mbGF0TWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5ib2R5fSkpLEE9Ty5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiJtZXNzZW5nZXJDYXJkIj09PXQudHlwZX0pKSx0Lm5leHQ9MjIsUHJvbWlzZS5hbGwoQS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB3KCgwLGMuX0QpKHMuQXksdCwhMSkpfSkpKTtjYXNlIDIyOncoKDAsdS55USkoeC5uZXdDb252ZXJzYXRpb25QYXJ0cykpO2Nhc2UgMjM6cmV0dXJuIHgudGVhbUludHJvJiZ3KCgwLHUuUmkpKHgudGVhbUludHJvKSkseC5zcGVjaWFsTm90aWNlJiZ3KCgwLHUuaHYpKHguc3BlY2lhbE5vdGljZSkpLHguY29tcG9zZXJTdWdnZXN0aW9ucyYmdygoMCxpLmFOKSh4LmNvbXBvc2VyU3VnZ2VzdGlvbnMpKSx3KCgwLG8uaCkoeC5ib3RJbnRybykpLHcoKDAsbC5JaikobnVsbCE9KG09eC5hY2Nlc3NUb1RlYW1tYXRlRW5hYmxlZCk/bTpTLmFjY2Vzc1RvVGVhbW1hdGVFbmFibGVkLFMuc2VsZlNlcnZlU3VnZ2VzdGlvbnNNYXRjaCxTLmFjdGl2ZUFkbWlucyx4LmFjdGl2ZUJvdCkpLHguY29tcG9zZXJTdGF0ZSYmIUMmJncoKDAsdS5OJCkoeC5jb21wb3NlclN0YXRlKSksdC5hYnJ1cHQoInJldHVybiIseCk7Y2FzZSAzMDpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsbnVsbCxbWzMsOV1dKX0pKSkse2NvbmRpdGlvbjpmdW5jdGlvbih0LGUpe3JldHVybiEhKDAsZS5nZXRTdGF0ZSkoKS5hcHAuZmVhdHVyZXMubmV3Q29udmVyc2F0aW9uSW5ib3VuZE1hdGNoaW5nfX0pfSw1MDE2MDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtMMjpmdW5jdGlvbigpe3JldHVybiB1fSxOcjpmdW5jdGlvbigpe3JldHVybiBzfSxjNjpmdW5jdGlvbigpe3JldHVybiBjfSx5YzpmdW5jdGlvbigpe3JldHVybiBsfX0pO3ZhciByPW4oMzgyNTMpLG89big2NjI3NCksaT1uKDMzMDQ4KSxhPW4oODQwMjMpO2Z1bmN0aW9uIHUoKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbj1lKCk7aWYoISgwLGEuWGcpKG4pKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgaT1uLnNlc3Npb247dCh7dHlwZTpvLmtPMH0pO3ZhciB1PSgwLGEuYVApKG4pO3JldHVybiByLkF5LmZldGNoTmV3c0l0ZW1zSW5OZXdzZmVlZChpLHUpLnRoZW4oKGZ1bmN0aW9uKGUpe3QoZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6by5BVkosbmV3c0l0ZW1zOnQubmV3c0l0ZW1zLG5leHRQYWdlOnQubmV4dFBhZ2V9fShlKSl9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7dChmKCkpfSkpfX1mdW5jdGlvbiBzKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciBpPW4oKSxhPWkuc2Vzc2lvbix1PWkudXNlcjtyZXR1cm4gZSh7dHlwZTpvLkViRn0pLHIuQXkuZmV0Y2hOZXdzSXRlbXNJbk5ld3NmZWVkKGEsdS5uZXdzZmVlZElkLHQpLnRoZW4oKGZ1bmN0aW9uKHQpe2UoZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6by5raXosbmV3c0l0ZW1zOnQubmV3c0l0ZW1zLG5leHRQYWdlOnQubmV4dFBhZ2V9fSh0KSl9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7ZShmKCkpfSkpfX1mdW5jdGlvbiBjKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIG49ZSgpLGE9bi5zZXNzaW9uLHU9bi51c2VyO3JldHVybiByLkF5Lm5vdGlmeU5ld3NmZWVkVmlzaXQoYSx1Lm5ld3NmZWVkSWQpLnRoZW4oKGZ1bmN0aW9uKGUpe2lmKGUubGFzdF92aXNpdCl7dmFyIG49KDAsaS5rVSkoZS5sYXN0X3Zpc2l0KTtuJiZ0KChyPW4se3R5cGU6by5VT0EsbmV3c2ZlZWRMYXN0VmlzaXQ6cn0pKX12YXIgcn0pKX19ZnVuY3Rpb24gbCh0KXtyZXR1cm57dHlwZTpvLmtwMyxuZXdzZmVlZElkOnR9fWZ1bmN0aW9uIGYoKXtyZXR1cm57dHlwZTpvLlpvVn19fSw5ODY4NDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHskODpmdW5jdGlvbigpe3JldHVybiBpfSxOQTpmdW5jdGlvbigpe3JldHVybiB1fSxhYjpmdW5jdGlvbigpe3JldHVybiBhfSxtSzpmdW5jdGlvbigpe3JldHVybiBzfX0pO3ZhciByPW4oNTQ3ODgpLG89big2NjI3NCk7ZnVuY3Rpb24gaSh0LGUpe3JldHVybiBmdW5jdGlvbihuLGkpe3ZhciB1PWkoKS5zZXNzaW9uO3JldHVybiBuKGZ1bmN0aW9uKHQsZSl7cmV0dXJue3R5cGU6by5reCxzZXNzaW9uOnQsdXNlclN1cHBsaWVkRW1haWw6ZX19KHUsZSkpLHQuY3JlYXRlT3JVcGRhdGVVc2VyKHUsbnVsbCxlLHZvaWQgMCwiYXBpVXBkYXRlIikudGhlbigoZnVuY3Rpb24obyl7dmFyIGk7bihhKG8sZSkpLChudWxsPT0oaT1vLnVucmVhZENvbnZlcnNhdGlvbklkcyk/dm9pZCAwOmkubGVuZ3RoKT4wJiZuKCgwLHIubFMpKHQsInVwZGF0ZVVzZXJTdXBwbGllZEVtYWlsIikpfSkpfX1mdW5jdGlvbiBhKHQsZSl7cmV0dXJue3R5cGU6by5fYlMsdXNlcjp0LHVzZXJTdXBwbGllZEVtYWlsOmV9fWZ1bmN0aW9uIHUodCxlKXtyZXR1cm4gZnVuY3Rpb24obixyKXt2YXIgaT1yKCkuc2Vzc2lvbjtyZXR1cm4gbih7dHlwZTpvLngzc30pLHQudXBkYXRlUGhvbmVOdW1iZXIoaSxlKS50aGVuKChmdW5jdGlvbigpe24oZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6by5mbjgscGhvbmVOdW1iZXI6dH19KGUpKX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7dmFyIGU7dCYmKGU9SlNPTi5wYXJzZSh0KS5tZXNzYWdlKSxuKGZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOm8uV0VpLG1lc3NhZ2U6dH19KGUpKX0pKX19ZnVuY3Rpb24gcygpe3JldHVybnt0eXBlOm8uQWc3fX19LDcxNjIwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse2I6ZnVuY3Rpb24oKXtyZXR1cm4gb319KTt2YXIgcj1uKDY2Mjc0KTtmdW5jdGlvbiBvKHQpe3JldHVybnt0eXBlOnIudU5ELGhpZGU6dH19fSw0Nzg4MzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHskRDpmdW5jdGlvbigpe3JldHVybiB2fSxaeTpmdW5jdGlvbigpe3JldHVybiBofX0pO3ZhciByPW4oMzgyNTMpLG89big2NjI3NCksaT1uKDQ2MDUpLGE9big3MTEwKSx1PW4oMzgyODUpO2Z1bmN0aW9uIHModCl7cmV0dXJuIHM9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHModCl9ZnVuY3Rpb24gYygpe2M9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixsPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBmKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Yoe30sIiIpfWNhdGNoKHQpe2Y9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGQodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBiP2U6YixhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IGoocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpJKHQsbix1KX0pLGF9ZnVuY3Rpb24gcCh0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1kO3ZhciBoPSJzdXNwZW5kZWRTdGFydCIsdj0ic3VzcGVuZGVkWWllbGQiLHk9ImV4ZWN1dGluZyIsZz0iY29tcGxldGVkIixtPXt9O2Z1bmN0aW9uIGIoKXt9ZnVuY3Rpb24gdygpe31mdW5jdGlvbiBfKCl7fXZhciBTPXt9O2YoUyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciB4PU9iamVjdC5nZXRQcm90b3R5cGVPZixFPXgmJngoeChQKFtdKSkpO0UmJkUhPT1uJiZyLmNhbGwoRSxhKSYmKFM9RSk7dmFyIEM9Xy5wcm90b3R5cGU9Yi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShTKTtmdW5jdGlvbiBPKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Zih0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBBKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgYz1wKHRbb10sdCxpKTtpZigidGhyb3ciIT09Yy50eXBlKXt2YXIgbD1jLmFyZyxmPWwudmFsdWU7cmV0dXJuIGYmJiJvYmplY3QiPT1zKGYpJiZyLmNhbGwoZiwiX19hd2FpdCIpP2UucmVzb2x2ZShmLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShmKS50aGVuKChmdW5jdGlvbih0KXtsLnZhbHVlPXQsYShsKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KGMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBJKGUsbixyKXt2YXIgbz1oO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT15KXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PWcpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPWsodSxyKTtpZihzKXtpZihzPT09bSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1oKXRocm93IG89ZyxyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289eTt2YXIgYz1wKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/Zzp2LGMuYXJnPT09bSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPWcsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBrKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxrKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLG07dmFyIGk9cChvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLG07dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLG0pOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwsbSl9ZnVuY3Rpb24gTCh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBUKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBqKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goTCx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBQKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IocyhlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiB3LnByb3RvdHlwZT1fLG8oQywiY29uc3RydWN0b3IiLHt2YWx1ZTpfLGNvbmZpZ3VyYWJsZTohMH0pLG8oXywiY29uc3RydWN0b3IiLHt2YWx1ZTp3LGNvbmZpZ3VyYWJsZTohMH0pLHcuZGlzcGxheU5hbWU9ZihfLGwsIkdlbmVyYXRvckZ1bmN0aW9uIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT13fHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxfKToodC5fX3Byb3RvX189XyxmKHQsbCwiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShDKSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSxPKEEucHJvdG90eXBlKSxmKEEucHJvdG90eXBlLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPUEsZS5hc3luYz1mdW5jdGlvbih0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBBKGQodCxuLHIsbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sTyhDKSxmKEMsbCwiR2VuZXJhdG9yIiksZihDLGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZihDLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPVAsai5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmoscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKFQpLCFlKWZvcih2YXIgbiBpbiB0aGlzKSJ0Ij09PW4uY2hhckF0KDApJiZyLmNhbGwodGhpcyxuKSYmIWlzTmFOKCtuLnNsaWNlKDEpKSYmKHRoaXNbbl09dCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgbj10aGlzO2Z1bmN0aW9uIG8ocixvKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5hcmc9ZSxuLm5leHQ9cixvJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sdT1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPXIuY2FsbChhLCJjYXRjaExvYyIpLGM9ci5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZihzJiZjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFjKXRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIG89dGhpcy50cnlFbnRyaWVzW25dO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJnIuY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZpLnRyeUxvYzw9ZSYmZTw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyxtKTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLG19LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksVChuKSxtfX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBvPXIuYXJnO1Qobil9cmV0dXJuIG99fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOlAoZSkscmVzdWx0TmFtZTpuLG5leHRMb2M6cn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSxtfX0sZX1mdW5jdGlvbiBsKHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gZih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXtsKGkscixvLGEsdSwibmV4dCIsdCl9ZnVuY3Rpb24gdSh0KXtsKGkscixvLGEsdSwidGhyb3ciLHQpfWEodm9pZCAwKX0pKX19ZnVuY3Rpb24gZCh0KXtyZXR1cm57dHlwZTpvLnljUSxwbGFuRGF0YTp0fX1mdW5jdGlvbiBwKHQpe3JldHVybnt0eXBlOm8ua1lOLGlzTG9hZGluZzp0fX1mdW5jdGlvbiBoKHQpe3ZhciBlPXZvaWQgMD09PXQ/e306dCxuPWUuZm9yY2Usbz12b2lkIDAhPT1uJiZuLGk9ZS5jb252ZXJzYXRpb25JZDtyZXR1cm4gZihjKCkubWFyaygoZnVuY3Rpb24gdChlLG4pe3ZhciBhLHUscyxsO3JldHVybiBjKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYoYT1uKCksdT1hLnNlc3Npb24scz1hLm9uYm9hcmRpbmdQbGFuLCEoIXV8fCFvJiZzLmhhc0ZldGNoZWQmJnMucGxhbkRhdGF8fHMuaXNMb2FkaW5nKSl7dC5uZXh0PTM7YnJlYWt9cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDM6cmV0dXJuIGUocCghMCkpLHQucHJldj00LHQubmV4dD03LHIuQXkuZ2V0T25ib2FyZGluZ1BsYW4odSxpKTtjYXNlIDc6bD10LnNlbnQsZShkKGwpKTtjYXNlIDk6cmV0dXJuIHQucHJldj05LGUocCghMSkpLHQuZmluaXNoKDkpO2Nhc2UgMTI6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LG51bGwsW1s0LCw5LDEyXV0pfSkpKX1mdW5jdGlvbiB2KHQpe3ZhciBlPXQuY29udmVyc2F0aW9uSWQsbj10LnRhc2tJZCxvPXQudGFza1RpdGxlO3JldHVybiBmKGMoKS5tYXJrKChmdW5jdGlvbiB0KHMsbCl7dmFyIGYsZCxwLGgsdix5LGcsbSxiO3JldHVybiBjKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIGY9bCgpLGQ9Zi5zZXNzaW9uLHA9Zi5hcHAudXNlclBhcnRVeFN0eWxlLGg9IkknbGwgZG8gdGhpcyBzdGVwIG5leHQ6ICIrbysiLiBHaXZlIG1lIHNvbWUgZGV0YWlscyBvbiB3aHkgdGhpcyBpcyBpbXBvcnRhbnQgYXMgdGhlIG5leHQgc3RlcCBmb3IgbWUuIix2PSgwLHUubCkoKSx5PW5ldyBEYXRlLGc9KDAsYS4kQikoaCksbT17Y29udmVyc2F0aW9uSWQ6ZSxjbGllbnRJZDp2LGNyZWF0ZWRBdDp5LGJvZHk6Zyx1eFN0eWxlOnB9LHMoKDAsaS5KbikoZSxtLCExKSksdC5wcmV2PTcsdC5uZXh0PTEwLHIuQXkuY3JlYXRlQ29tbWVudChkLGUsdixnLHksdm9pZCAwLHZvaWQgMCx7cGxhblN0ZXBJZDpufSk7Y2FzZSAxMDpiPXQuc2VudCxzKCgwLGkuYlIpKGUsYixudWxsLG51bGwsITEseSkpLHQubmV4dD0xNzticmVhaztjYXNlIDE0OnQucHJldj0xNCx0LnQwPXQuY2F0Y2goNykscygoMCxpLnFNKShlLG0sdC50MCkpO2Nhc2UgMTc6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LG51bGwsW1s3LDE0XV0pfSkpKX19LDUxMDM1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0JyOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LENDOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LFVFOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LFpOOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LGUkOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHN2OmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LHZuOmZ1bmN0aW9uKCl7cmV0dXJuIG99LHlFOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSk7dmFyIHI9bigxNzgzMyksbz0iTUVTU0VOR0VSX0xBU1RfT1BFTl9IRUFSVEJFQVQiLGk9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZTpvfX0sYT0iT1BFTl9DSEVDS0xJU1RfT05fQk9PVCIsdT0iT1BFTl9DT05WRVJTQVRJT05fT05fQk9PVCIscz0iT1BFTl9ORVdfQ09OVkVSU0FUSU9OX09OX0JPT1QiLGM9IlBFTkRJTkdfQVJUSUNMRV9OQVZJR0FUSU9OIixsPWZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOmMsYXJ0aWNsZUlkOnR9fSxmPW4ubihyKSgpKCJvcGVuT25Cb290X3VybF9jaGFuZ2U6ZGVidWciKX0sOTM5ODI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7bzA6ZnVuY3Rpb24oKXtyZXR1cm4gan0sWFg6ZnVuY3Rpb24oKXtyZXR1cm4gTn0sV0Y6ZnVuY3Rpb24oKXtyZXR1cm4gUH19KTt2YXIgcj1uKDQxNjA5KSxvPW4oMTU0NTIpLGk9bigyMTQ5OCksYT1uKDE3ODMzKSx1PW4ubihhKSxzPW4oOTQyMTQpLGM9bigxMjk1MiksbD1uKDQ1Mzg3KSxmPW4oNTQ3ODgpLGQ9big2OTUwOCkscD1uKDUxNjY5KSxoPW4oNDYwNSksdj1uKDE0MTIwKSx5PW4oMzgyNTMpLGc9big5NTU2NSksbT1uKDgxODM5KSxiPW4ucCsiaW1hZ2VzL2Zpbi10aGlua2luZy1icmFuZGVkLjk1NGM4YjQ5YmMwOTUzY2UyYjJjLndlYnAiLHc9bi5wKyJpbWFnZXMvZmluLXRoaW5raW5nLXVuYnJhbmRlZC5mOTNhYTgxYmUwM2Q4ZGZmZmUzZi53ZWJwIixfPW4oNzI5MCksUz1uKDY5NzQ0KSx4PW4oNTc1MjApLEU9big1NDI0OCksQz1uKDYzMzQ5KSxPPW4oNTEwMzUpO2Z1bmN0aW9uIEEodCl7cmV0dXJuIEE9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LEEodCl9ZnVuY3Rpb24gSSgpe0k9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixzPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Moe30sIiIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGwodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBnP2U6ZyxhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IGoocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpPKHQsbix1KX0pLGF9ZnVuY3Rpb24gZih0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1sO3ZhciBkPSJzdXNwZW5kZWRTdGFydCIscD0ic3VzcGVuZGVkWWllbGQiLGg9ImV4ZWN1dGluZyIsdj0iY29tcGxldGVkIix5PXt9O2Z1bmN0aW9uIGcoKXt9ZnVuY3Rpb24gbSgpe31mdW5jdGlvbiBiKCl7fXZhciB3PXt9O2ModyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciBfPU9iamVjdC5nZXRQcm90b3R5cGVPZixTPV8mJl8oXyhQKFtdKSkpO1MmJlMhPT1uJiZyLmNhbGwoUyxhKSYmKHc9Uyk7dmFyIHg9Yi5wcm90b3R5cGU9Zy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh3KTtmdW5jdGlvbiBFKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Yyh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBDKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgcz1mKHRbb10sdCxpKTtpZigidGhyb3ciIT09cy50eXBlKXt2YXIgYz1zLmFyZyxsPWMudmFsdWU7cmV0dXJuIGwmJiJvYmplY3QiPT1BKGwpJiZyLmNhbGwobCwiX19hd2FpdCIpP2UucmVzb2x2ZShsLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShsKS50aGVuKChmdW5jdGlvbih0KXtjLnZhbHVlPXQsYShjKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KHMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBPKGUsbixyKXt2YXIgbz1kO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT1oKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PXYpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPWsodSxyKTtpZihzKXtpZihzPT09eSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89dixyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289aDt2YXIgYz1mKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/djpwLGMuYXJnPT09eSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPXYsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBrKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxrKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLHk7dmFyIGk9ZihvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLHk7dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLHkpOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwseSl9ZnVuY3Rpb24gTCh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBUKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBqKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goTCx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBQKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IoQShlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiBtLnByb3RvdHlwZT1iLG8oeCwiY29uc3RydWN0b3IiLHt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMH0pLG8oYiwiY29uc3RydWN0b3IiLHt2YWx1ZTptLGNvbmZpZ3VyYWJsZTohMH0pLG0uZGlzcGxheU5hbWU9YyhiLHMsIkdlbmVyYXRvckZ1bmN0aW9uIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT1tfHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxiKToodC5fX3Byb3RvX189YixjKHQscywiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh4KSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSxFKEMucHJvdG90eXBlKSxjKEMucHJvdG90eXBlLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPUMsZS5hc3luYz1mdW5jdGlvbih0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBDKGwodCxuLHIsbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sRSh4KSxjKHgscywiR2VuZXJhdG9yIiksYyh4LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksYyh4LCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPVAsai5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmoscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKFQpLCFlKWZvcih2YXIgbiBpbiB0aGlzKSJ0Ij09PW4uY2hhckF0KDApJiZyLmNhbGwodGhpcyxuKSYmIWlzTmFOKCtuLnNsaWNlKDEpKSYmKHRoaXNbbl09dCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgbj10aGlzO2Z1bmN0aW9uIG8ocixvKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5hcmc9ZSxuLm5leHQ9cixvJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sdT1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPXIuY2FsbChhLCJjYXRjaExvYyIpLGM9ci5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZihzJiZjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFjKXRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIG89dGhpcy50cnlFbnRyaWVzW25dO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJnIuY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZpLnRyeUxvYzw9ZSYmZTw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyx5KTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLHl9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksVChuKSx5fX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBvPXIuYXJnO1Qobil9cmV0dXJuIG99fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOlAoZSkscmVzdWx0TmFtZTpuLG5leHRMb2M6cn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSx5fX0sZX1mdW5jdGlvbiBrKHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gTCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXtrKGkscixvLGEsdSwibmV4dCIsdCl9ZnVuY3Rpb24gdSh0KXtrKGkscixvLGEsdSwidGhyb3ciLHQpfWEodm9pZCAwKX0pKX19dmFyIFQ9dSgpKCJpbnRlcmNvbS5hY3Rpb25zLnVzZXIiKSxqPTNlNCxQPSgwLHIuUzQpKCJtZXNzZW5nZXIvb3BlbiIsTChJKCkubWFyaygoZnVuY3Rpb24gdChlLG4pe3ZhciByLG8sYSx1LEEsayxMLGosUCxOLE0sUixVLHosSCxGLEQsQixWLEcscSxXLEssWixKLFksUSxYLCQsdHQsZXQsbnQscnQ7cmV0dXJuIEkoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gTD1uLmdldFN0YXRlKCksaj1uLmRpc3BhdGNoLFA9TC5zZXNzaW9uLE49TC5hcHAsTT0hISgwLGcudCkoKSxSPSgwLHYub1ApKEwpLHo9KFU9IVJ8fCIvbG9hZGluZyI9PT1SKT8iIjpSLEg9KDAsRS5BZSkoTCksRj1MLm9wZW5PbkJvb3QsRD0oMCxDLkFkKShMKSxCPSgwLEMuWXgpKEwpLFY9KDAsQy5lKShMKS5vcGVuc0RpcmVjdGx5SW50b0NvbnZlcnNhdGlvbix0LnByZXY9MTIsdC5uZXh0PTE1LHkuQXkuc2VuZE1lc3Nlbmdlck9wZW4oUCx6LE0sVixCKTtjYXNlIDE1OmlmKEc9dC5zZW50KXt0Lm5leHQ9MTg7YnJlYWt9dGhyb3cgbmV3IEVycm9yKCJSZXNwb25zZSBpcyBudWxsIik7Y2FzZSAxODp0Lm5leHQ9MjQ7YnJlYWs7Y2FzZSAyMDpyZXR1cm4gdC5wcmV2PTIwLHQudDA9dC5jYXRjaCgxMiksVCgiUmVxdWVzdCB0byBtZXNzZW5nZXIgb3BlbiBmYWlsZWQiLHQudDApLHQuYWJydXB0KCJyZXR1cm4iLG4ucmVqZWN0V2l0aFZhbHVlKHQudDApKTtjYXNlIDI0OmlmKCEoMCxfLmdYKShHKSl7dC5uZXh0PTI2O2JyZWFrfXJldHVybiB0LmFicnVwdCgicmV0dXJuIixuLnJlamVjdFdpdGhWYWx1ZShHLmVycm9ycykpO2Nhc2UgMjY6aWYoRy5hY3RpdmVCb3QmJkcuYWN0aXZlQm90LnBhcnRpY2lwYW50JiYoKDAsbS5GZikoRy5hY3RpdmVCb3QucGFydGljaXBhbnQuYXZhdGFyLnNxdWFyZTEyOCksRy5hY3RpdmVCb3QudXNlQ3VzdG9taXplZElkZW50aXR5PygwLG0uRmYpKHcpOigwLG0uRmYpKGIpKSxudWxsPT0ocj1HLm5ld0NvbnZlcnNhdGlvblBhcnRzKXx8IXIubGVuZ3RoKXt0Lm5leHQ9MzM7YnJlYWt9cmV0dXJuIHE9Ry5uZXdDb252ZXJzYXRpb25QYXJ0cy5mbGF0TWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5ib2R5fSkpLFc9cS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiJtZXNzZW5nZXJDYXJkIj09PXQudHlwZX0pKSx0Lm5leHQ9MzIsUHJvbWlzZS5hbGwoVy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBqKCgwLHguX0QpKHkuQXksdCwhMSkpfSkpKTtjYXNlIDMyOmooKDAsaC55USkoRy5uZXdDb252ZXJzYXRpb25QYXJ0cykpO2Nhc2UgMzM6cmV0dXJuIEcudGVhbUludHJvJiZqKCgwLGguUmkpKEcudGVhbUludHJvKSksRy5zcGVjaWFsTm90aWNlJiZqKCgwLGguaHYpKEcuc3BlY2lhbE5vdGljZSkpLEcuY29tcG9zZXJTdWdnZXN0aW9ucyYmaigoMCxwLmFOKShHLmNvbXBvc2VyU3VnZ2VzdGlvbnMpKSxqKCgwLGQuaCkoRy5ib3RJbnRybykpLGooKDAsZi5LTykoRy5vcGVuSW5ib3VuZENvbnZlcnNhdGlvbklkcykpLGooKDAscy5JaikobnVsbCE9KG89Ry5hY2Nlc3NUb1RlYW1tYXRlRW5hYmxlZCk/bzpOLmFjY2Vzc1RvVGVhbW1hdGVFbmFibGVkLG51bGwhPShhPUcuc2VsZlNlcnZlU3VnZ2VzdGlvbnNNYXRjaCk/YTpOLnNlbGZTZXJ2ZVN1Z2dlc3Rpb25zTWF0Y2gsbnVsbCE9KHU9Ry5hY3RpdmVBZG1pbnMpP3U6Ti5hY3RpdmVBZG1pbnMsRy5hY3RpdmVCb3QpKSxqKCgwLGMuSnEpKG51bGwhPShBPUcuYWlTdWdnZXN0aW9uc0F2YWlsYWJsZSkmJkEpKSxudWxsIT0oaz1HLmFpU3VnZ2VzdGlvbkdyb3VwcykmJmsubGVuZ3RoJiZqKCgwLGMuTk8pKEcuYWlTdWdnZXN0aW9uR3JvdXBzKSksRy5jb21wb3NlclN0YXRlJiZqKCgwLGguTiQpKEcuY29tcG9zZXJTdGF0ZSkpLEcucHJpdmFjeVBvbGljeU5vdGljZSYmaigoMCxzLmt5KShHLnByaXZhY3lQb2xpY3lOb3RpY2UpKSwoMCxDLkFkKShuLmdldFN0YXRlKCkpLmFsd2F5c1Zpc2libGUmJiFuLmdldFN0YXRlKCkuYXBwLmlzTWVzc2VuZ2VyT3BlbiYmaigoMCxzLnF5KSgpKSxLPSEoMCxpLklTKSgpJiZGLnR5cGUsWj0oMCx2Lm9QKShuLmdldFN0YXRlKCkpLEo9IVp8fCIvbG9hZGluZyI9PT1aLFk9bnVsbD09Wj92b2lkIDA6Wi5zdGFydHNXaXRoKCIvbWVzc2FnZXMvY29udmVyc2F0aW9uL25ldyIpLFE9Ii9ob21lIj09PVosWD0hMSxIJiZKJiYhVSYmKDAsUy5vUykoIm1lc3Nlbmdlcl9vcGVuX3N0YWxlX3BhdGhuYW1lX3JlY292ZXJlZCIpLCQ9bi5nZXRTdGF0ZSgpLmFwcC5nZW5lcmF0ZWRQbGFuQ29udmVyc2F0aW9uSWQsdHQ9QiYmKCEhRy5nZW5lcmF0ZWRQbGFuQ29udmVyc2F0aW9uSWR8fCEhJCksIXR0JiYoSCYmKFV8fEopJiYhS3x8ViYmSCYmKFl8fFEpfHxELmFsd2F5c1Zpc2libGUmJkQuY29udmVyc2F0aW9uT25seSkmJihHLnJlY2VudE9wZW5JbmJvdW5kQ29udmVyc2F0aW9uPyhqKCgwLGguRm8pKHkuQXksRy5yZWNlbnRPcGVuSW5ib3VuZENvbnZlcnNhdGlvbiwhMSxEYXRlLm5vdygpKSksaigoMCxsLlk2KSgpKSxqKCgwLHMua0kpKEcucmVjZW50T3BlbkluYm91bmRDb252ZXJzYXRpb24uaWQsITApKSxYPSEwKTpELmFsd2F5c1Zpc2libGUmJkQuY29udmVyc2F0aW9uT25seT8oWXx8aigoMCxzLnA2KSh7cmVwbGFjZUN1cnJlbnRWaWV3OiEwLHZpc2liaWxpdHk6Xy5jeS52aXNpYmxlfSkpLFg9ITApOlY/KFl8fGooKDAscy5wNikoe3JlcGxhY2VDdXJyZW50VmlldzohMCx2aXNpYmlsaXR5Ol8uY3kuc2hyaW5rZWR9KSksaigoMCxzLnF5KSgpKSxYPSEwKTooaigoMCxzLnVuKSgiIiwhMCkpLFg9ITApKSxYfHx0dHx8KGV0PSgwLHYub1ApKG4uZ2V0U3RhdGUoKSksbnQ9IWV0fHwiL2xvYWRpbmciPT09ZXQscnQ9IShudWxsIT1GJiZGLnR5cGUpfHwobnVsbD09Rj92b2lkIDA6Ri50eXBlKT09PU8ueUV8fChudWxsPT1GP3ZvaWQgMDpGLnR5cGUpPT09Ty5CcixudCYmSCYmcnQmJigoMCxTLm9TKSgibWVzc2VuZ2VyX29wZW5fbG9hZGluZ19mYWxsYmFja19uYXZpZ2F0aW9uIiksRy5yZWNlbnRPcGVuSW5ib3VuZENvbnZlcnNhdGlvbj9qKCgwLHMua0kpKEcucmVjZW50T3BlbkluYm91bmRDb252ZXJzYXRpb24uaWQsITApKTpWfHxELmFsd2F5c1Zpc2libGV8fGooKDAscy51bikoIiIsITApKSkpLHQuYWJydXB0KCJyZXR1cm4iLEcpO2Nhc2UgNTg6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LG51bGwsW1sxMiwyMF1dKX0pKSkse2NvbmRpdGlvbjpmdW5jdGlvbih0LGUpe3ZhciBuPSgwLGUuZ2V0U3RhdGUpKCkuYXBwO3JldHVybiFuLm9wZW5SZXF1ZXN0SW5GbGlnaHRTaW5jZXx8RGF0ZS5ub3coKS1uLm9wZW5SZXF1ZXN0SW5GbGlnaHRTaW5jZT5qfX0pLE49KDAsby5zZikoUCl9LDU0MTAxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse286ZnVuY3Rpb24oKXtyZXR1cm4gdn0seTpmdW5jdGlvbigpe3JldHVybiB5fX0pO3ZhciByPW4oMTc4MzMpLG89bi5uKHIpLGk9big0NjA1KSxhPW4oMzgyODUpLHU9big3MTEwKSxzPW4oNjYyNzQpLGM9bigxODM5OSk7ZnVuY3Rpb24gbCh0KXtyZXR1cm4gbD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sbCh0KX1mdW5jdGlvbiBmKCl7Zj1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHM9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGModCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Yyh7fSwiIil9Y2F0Y2godCl7Yz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gZCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGI/ZTpiLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgaihyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOkkodCxuLHUpfSksYX1mdW5jdGlvbiBwKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWQ7dmFyIGg9InN1c3BlbmRlZFN0YXJ0Iix2PSJzdXNwZW5kZWRZaWVsZCIseT0iZXhlY3V0aW5nIixnPSJjb21wbGV0ZWQiLG09e307ZnVuY3Rpb24gYigpe31mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIF8oKXt9dmFyIFM9e307YyhTLGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIHg9T2JqZWN0LmdldFByb3RvdHlwZU9mLEU9eCYmeCh4KFAoW10pKSk7RSYmRSE9PW4mJnIuY2FsbChFLGEpJiYoUz1FKTt2YXIgQz1fLnByb3RvdHlwZT1iLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFMpO2Z1bmN0aW9uIE8odCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtjKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEEodCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBzPXAodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLGY9Yy52YWx1ZTtyZXR1cm4gZiYmIm9iamVjdCI9PWwoZikmJnIuY2FsbChmLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGYuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCxhLHUpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LGEsdSl9KSk6ZS5yZXNvbHZlKGYpLnRoZW4oKGZ1bmN0aW9uKHQpe2MudmFsdWU9dCxhKGMpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCxhLHUpfSkpfXUocy5hcmcpfXZhciBpO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIEkoZSxuLHIpe3ZhciBvPWg7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PXkpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09Zyl7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9ayh1LHIpO2lmKHMpe2lmKHM9PT1tKWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWgpdGhyb3cgbz1nLHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz15O3ZhciBjPXAoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT9nOnYsYy5hcmc9PT1tKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89ZyxyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIGsoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LGsoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSksbTt2YXIgaT1wKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwsbTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwsbSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCxtKX1mdW5jdGlvbiBMKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIFQodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIGoodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChMLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFAoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW2FdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGk9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBpLm5leHQ9aX19dGhyb3cgbmV3IFR5cGVFcnJvcihsKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIHcucHJvdG90eXBlPV8sbyhDLCJjb25zdHJ1Y3RvciIse3ZhbHVlOl8sY29uZmlndXJhYmxlOiEwfSksbyhfLCJjb25zdHJ1Y3RvciIse3ZhbHVlOncsY29uZmlndXJhYmxlOiEwfSksdy5kaXNwbGF5TmFtZT1jKF8scywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PXd8fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LF8pOih0Ll9fcHJvdG9fXz1fLGModCxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEMpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LE8oQS5wcm90b3R5cGUpLGMoQS5wcm90b3R5cGUsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QSxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEEoZCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxPKEMpLGMoQyxzLCJHZW5lcmF0b3IiKSxjKEMsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxjKEMsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9UCxqLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aixyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goVCksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLG0pOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSksbX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxUKG4pLG19fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7VChuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6UChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLG19fSxlfWZ1bmN0aW9uIGQodCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBwKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBhKHQpe2QoaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpe2QoaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfX12YXIgaD1vKCkoImludGVyY29tLmFjdGlvbnMucHJlZGljdGl2ZS1hbnN3ZXJzIik7ZnVuY3Rpb24gdih0LGUsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPSExKSxwKGYoKS5tYXJrKChmdW5jdGlvbiByKG8scyl7dmFyIGwsZCxwLHYsZyxtLGIsdyxfLFMseDtyZXR1cm4gZigpLndyYXAoKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5wcmV2PXIubmV4dCl7Y2FzZSAwOnJldHVybiByLnByZXY9MCxkPXMoKSxwPWQuc2Vzc2lvbix2PWQubmV3Q29udmVyc2F0aW9uLGc9ZC51c2VyLG09ZC5pbmJvdW5kU3VnZ2VzdGlvbnMsYj1kLmFwcC51c2VyUGFydFV4U3R5bGUsdz1udWxsPT1tfHxudWxsPT0obD1tLnNlcnZlclNpZGVTdWdnZXN0aW9ucyk/dm9pZCAwOmwuc25hcHNob3RJZCxfPSgwLGEubCkoKSxTPXtjbGllbnRJZDpfLGJvZHk6KDAsdS4kQikoZS50ZXh0KSxjcmVhdGVkQXQ6bmV3IERhdGUsY29tcG9zZXJTdWdnZXN0aW9uSXRlbTplLHV4U3R5bGU6Yn0sbyh5KG51bGwpKSxvKCgwLGkualcpKFMsbikpLHIubmV4dD0xMSx0LmZpcmVDb21wb3NlclN1Z2dlc3Rpb24ocCx7Y29udmVyc2F0aW9uSWQ6dW5kZWZpbmVkLHN1Z2dlc3Rpb246ZSxjbGllbnRJZDpfLGJvdEludHJvOnY/di5ib3RJbnRyb0lkOm51bGwsYXJ0aWNsZVVybDp2P3YuYXJ0aWNsZVVybDpudWxsLHJlc29sdXRpb25Cb3RCZWhhdmlvclZlcnNpb25JZDpnP2cucmVzb2x1dGlvbkJvdEJlaGF2aW9yVmVyc2lvbklkOm51bGwsc25hcHNob3RJZDp3fSk7Y2FzZSAxMTp4PXIuc2VudCxvKCgwLGkuSE4pKHgsbnVsbCxudWxsLERhdGUubm93KCksInByZWRpY3RpdmVfYW5zd2VyIikpLG8oKDAsYy5wKSh4LmlkLCEwKSksci5uZXh0PTIwO2JyZWFrO2Nhc2UgMTY6ci5wcmV2PTE2LHIudDA9ci5jYXRjaCgwKSxvKCgwLGkud2opKG51bGwpKSxoKCJDb3VsZG50IHN0YXJ0IGNvbnZlcnNhdGlvbiBmcm9tIHN1Z2dlc3Rpb24gZHVlIHRvIGU9IityLnQwKTtjYXNlIDIwOmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSkscixudWxsLFtbMCwxNl1dKX0pKSl9ZnVuY3Rpb24geSh0KXtyZXR1cm57dHlwZTpzLlhocixwcmVkaWN0aXZlQW5zd2Vyc1N1Z2dlc3Rpb25zOnR9fX0sMTgzOTk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7ZTpmdW5jdGlvbigpe3JldHVybiBsfSxwOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9fSk7dmFyIHI9big2NjI3NCksbz1uKDUxODgzKSxpPW4oMTQxMjApLGE9big3MDQwMCksdT1uKDI2NzAzKSxzPW4oNjg3NjIpLGM9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT0hMSk7dmFyIG49e3R5cGU6ci5FbVgsY29udmVyc2F0aW9uSWQ6dH07cmV0dXJuIGUmJihuLnJlcGxhY2VDdXJyZW50Vmlldz1lKSxufSxsPWZ1bmN0aW9uKHQsZSl7dmFyIG49dm9pZCAwPT09ZT97fTplLHI9bi5yZXBsYWNlQ3VycmVudFZpZXcsaT12b2lkIDAhPT1yJiZyLGE9bi5mcm9tQXJ0aWNsZUlkLHU9dm9pZCAwPT09YT9udWxsOmEscz1uLmZyb21TdGFuZGFsb25lQXJ0aWNsZSxjPXZvaWQgMCE9PXMmJnMsbD1uLmZhbGxiYWNrVG9NZXNzYWdlcyxmPXZvaWQgMCE9PWwmJmwsZD1uLnZpc2liaWxpdHkscD12b2lkIDA9PT1kP251bGw6ZDtyZXR1cm4oaT9vLkhDOm8uVkMpKCIvbWVzc2FnZXMvY29udmVyc2F0aW9uLyIrdCsiP2Zyb21TdGFuZGFsb25lQXJ0aWNsZT0iK2MrKHU/IiZmcm9tQXJ0aWNsZUlEPSIrdToiIikrKGY/IiZiYWNrRmFsbGJhY2tSb3V0ZT0vbWVzc2FnZXMiOiIiKSsocD8iJnZpc2liaWxpdHk9IitwOiIiKSl9O2Z1bmN0aW9uIGYodCxlLG4pe3JldHVybiB2b2lkIDA9PT1lJiYoZT0hMSksdm9pZCAwPT09biYmKG49bnVsbCksZnVuY3Rpb24ocixvKXt2YXIgZixkLHAsaD1vKCksdj0oMCxpLm9QKShoKSx5PSgwLGEubWF0Y2hQYXRoKSgiLyIrdS5Jai5pZCsiL2NvbnZlcnNhdGlvbi86Y29udmVyc2F0aW9uSWQiLHYpO3IoYyh0LGUpKTt2YXIgZz0obnVsbD09KGY9aC5yb3V0ZXJIaXN0b3J5KT92b2lkIDA6Zi5oaXN0b3J5KXx8W10sbT0obnVsbD09Zz92b2lkIDA6Zy5sZW5ndGgpfHwwLGI9Z1ttLTFdLHc9ITE7KGU/bTw9MXx8KDAscy5ieCkobnVsbD09Yj92b2lkIDA6Yi5wYXRobmFtZSk6MD09PW0pJiYodz0hMCk7dmFyIF89dC50b1N0cmluZygpPT09KG51bGw9PXl8fG51bGw9PShkPXkucGFyYW1zKT92b2lkIDA6ZC5jb252ZXJzYXRpb25JZCksUz1udWxsIT0ocD1oLnJvdXRlcikmJm51bGwhPShwPXAubG9jYXRpb24pJiZwLnNlYXJjaD9uZXcgVVJMU2VhcmNoUGFyYW1zKGgucm91dGVyLmxvY2F0aW9uLnNlYXJjaCkuZ2V0KCJ2aXNpYmlsaXR5Iik6bnVsbDtpZighX3x8XyYmbiYmbiE9PVMpe3ZhciB4LEU9bnx8KG51bGwhPSh4PWgucm91dGVyKSYmbnVsbCE9KHg9eC5sb2NhdGlvbikmJnguc2VhcmNoP25ldyBVUkxTZWFyY2hQYXJhbXMoaC5yb3V0ZXIubG9jYXRpb24uc2VhcmNoKS5nZXQoInZpc2liaWxpdHkiKTpudWxsKTtyKGwodCx7cmVwbGFjZUN1cnJlbnRWaWV3OmUsZmFsbGJhY2tUb01lc3NhZ2VzOncsdmlzaWJpbGl0eTpFfSkpfX19fSw5NjcxOTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHskTjpmdW5jdGlvbigpe3JldHVybiB6fSxBeTpmdW5jdGlvbigpe3JldHVybiBVfSxFcDpmdW5jdGlvbigpe3JldHVybiBPfSxGTDpmdW5jdGlvbigpe3JldHVybiBMfSxKNzpmdW5jdGlvbigpe3JldHVybiBWfSxOeTpmdW5jdGlvbigpe3JldHVybiBFfSxTMDpmdW5jdGlvbigpe3JldHVybiBQfSxURDpmdW5jdGlvbigpe3JldHVybiBCfSxUdTpmdW5jdGlvbigpe3JldHVybiBIfSxVUzpmdW5jdGlvbigpe3JldHVybiBJfSxydDpmdW5jdGlvbigpe3JldHVybiBSfSx0cDpmdW5jdGlvbigpe3JldHVybiBBfSx1aDpmdW5jdGlvbigpe3JldHVybiBOfSx2bDpmdW5jdGlvbigpe3JldHVybiBUfSx3ajpmdW5jdGlvbigpe3JldHVybiBTfSx4VjpmdW5jdGlvbigpe3JldHVybiBNfX0pO3ZhciByPW4oNjY4MzgpLG89bigzODI1MyksaT1uKDQyNzU0KSxhPW4oNjYyNzQpLHU9big3NzIzNCkscz1uKDg4MzMzKSxjPW4oODcxMzMpLGw9bigyMjk3OSksZj1uKDQwMTI3KSxkPW4oOTU1NjUpLHA9bigxNzc3Nyk7ZnVuY3Rpb24gaCh0KXtyZXR1cm4gaD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0saCh0KX1mdW5jdGlvbiB2KHQsZSxuKXtpZihlJiYhQXJyYXkuaXNBcnJheShlKSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aCl7dmFyIHI9ZS5sZW5ndGg7cmV0dXJuIGcoZSx2b2lkIDAhPT1uJiZuPHI/bjpyKX1yZXR1cm4gdChlLG4pfWZ1bmN0aW9uIHkodCl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGcodCl9KHQpfHxmdW5jdGlvbih0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9dFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT10WyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20odCl9KHQpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gZyh0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9nKHQsZSk6dm9pZCAwfX0odCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gZyh0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkoZSk7bjxlO24rKylyW25dPXRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gbSgpe3JldHVybiBtPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sbS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYigpe2I9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixzPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Moe30sIiIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGwodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBtP2U6bSxhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IGoocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpJKHQsbix1KX0pLGF9ZnVuY3Rpb24gZih0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1sO3ZhciBkPSJzdXNwZW5kZWRTdGFydCIscD0ic3VzcGVuZGVkWWllbGQiLHY9ImV4ZWN1dGluZyIseT0iY29tcGxldGVkIixnPXt9O2Z1bmN0aW9uIG0oKXt9ZnVuY3Rpb24gdygpe31mdW5jdGlvbiBfKCl7fXZhciBTPXt9O2MoUyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciB4PU9iamVjdC5nZXRQcm90b3R5cGVPZixFPXgmJngoeChQKFtdKSkpO0UmJkUhPT1uJiZyLmNhbGwoRSxhKSYmKFM9RSk7dmFyIEM9Xy5wcm90b3R5cGU9bS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShTKTtmdW5jdGlvbiBPKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Yyh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBBKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgcz1mKHRbb10sdCxpKTtpZigidGhyb3ciIT09cy50eXBlKXt2YXIgYz1zLmFyZyxsPWMudmFsdWU7cmV0dXJuIGwmJiJvYmplY3QiPT1oKGwpJiZyLmNhbGwobCwiX19hd2FpdCIpP2UucmVzb2x2ZShsLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShsKS50aGVuKChmdW5jdGlvbih0KXtjLnZhbHVlPXQsYShjKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KHMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBJKGUsbixyKXt2YXIgbz1kO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT12KXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PXkpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPWsodSxyKTtpZihzKXtpZihzPT09Zyljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89eSxyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289djt2YXIgYz1mKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/eTpwLGMuYXJnPT09Zyljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPXksci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBrKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxrKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLGc7dmFyIGk9ZihvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLGc7dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLGcpOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwsZyl9ZnVuY3Rpb24gTCh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBUKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBqKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goTCx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBQKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IoaChlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiB3LnByb3RvdHlwZT1fLG8oQywiY29uc3RydWN0b3IiLHt2YWx1ZTpfLGNvbmZpZ3VyYWJsZTohMH0pLG8oXywiY29uc3RydWN0b3IiLHt2YWx1ZTp3LGNvbmZpZ3VyYWJsZTohMH0pLHcuZGlzcGxheU5hbWU9YyhfLHMsIkdlbmVyYXRvckZ1bmN0aW9uIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT13fHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxfKToodC5fX3Byb3RvX189XyxjKHQscywiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShDKSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSxPKEEucHJvdG90eXBlKSxjKEEucHJvdG90eXBlLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPUEsZS5hc3luYz1mdW5jdGlvbih0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBBKGwodCxuLHIsbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sTyhDKSxjKEMscywiR2VuZXJhdG9yIiksYyhDLGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksYyhDLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPVAsai5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmoscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKFQpLCFlKWZvcih2YXIgbiBpbiB0aGlzKSJ0Ij09PW4uY2hhckF0KDApJiZyLmNhbGwodGhpcyxuKSYmIWlzTmFOKCtuLnNsaWNlKDEpKSYmKHRoaXNbbl09dCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgbj10aGlzO2Z1bmN0aW9uIG8ocixvKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5hcmc9ZSxuLm5leHQ9cixvJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sdT1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPXIuY2FsbChhLCJjYXRjaExvYyIpLGM9ci5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZihzJiZjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFjKXRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIG89dGhpcy50cnlFbnRyaWVzW25dO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJnIuY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZpLnRyeUxvYzw9ZSYmZTw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyxnKTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLGd9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksVChuKSxnfX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBvPXIuYXJnO1Qobil9cmV0dXJuIG99fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOlAoZSkscmVzdWx0TmFtZTpuLG5leHRMb2M6cn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSxnfX0sZX1mdW5jdGlvbiB3KHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gXyh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXt3KGkscixvLGEsdSwibmV4dCIsdCl9ZnVuY3Rpb24gdSh0KXt3KGkscixvLGEsdSwidGhyb3ciLHQpfWEodm9pZCAwKX0pKX19ZnVuY3Rpb24gUyh0KXtyZXR1cm57dHlwZTphLkI2ZCxzdXJ2ZXk6dH19ZnVuY3Rpb24geCh0LGUsbil7cmV0dXJue3R5cGU6YS5XazMsc3VydmV5SWQ6dCxzdXJ2ZXlTdGVwOmUsY29tcGxldGVkOm59fWZ1bmN0aW9uIEUodCxlKXtyZXR1cm57dHlwZTphLkg4RyxxdWVzdGlvbklkOnQscmVzcG9uc2U6ZX19ZnVuY3Rpb24gQyh0LGUsbil7cmV0dXJue3R5cGU6YS51TXEsc3VydmV5SWQ6dCxzdGVwSWQ6ZSx2YWxpZGF0aW9uUmVzdWx0Om59fWZ1bmN0aW9uIE8odCl7cmV0dXJue3R5cGU6YS5hNHoscXVlc3Rpb25JZDp0fX1mdW5jdGlvbiBBKCl7cmV0dXJue3R5cGU6YS5FZGh9fWZ1bmN0aW9uIEkodCl7cmV0dXJue3R5cGU6YS5nWVgscXVlc3Rpb25JZDp0fX1mdW5jdGlvbiBrKCl7cmV0dXJue3R5cGU6YS5oeWl9fWZ1bmN0aW9uIEwodCl7cmV0dXJue3R5cGU6YS5ncEksc3VydmV5SWQ6dH19ZnVuY3Rpb24gVCh0KXtyZXR1cm57dHlwZTphLkZkbyxzdXJ2ZXlJZDp0fX1mdW5jdGlvbiBqKHQpe3JldHVybnt0eXBlOmEua0taLHN1cnZleUlkOnR9fWZ1bmN0aW9uIFAodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIHIsbz1uKCksYT0oMCxpLklTKShvKSxjPSgwLGkuRTUpKG8pLGw9bnVsbD09Y3x8bnVsbD09KHI9Yy5xdWVzdGlvbnMpP3ZvaWQgMDpyLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dH0pKTtpZihhJiZjJiZsKXt2YXIgZixkPSgwLHUuJDApKGwucmVzcG9uc2UsbC5kYXRhKSxwPWQuZmFpbGVkVmFsaWRhdGlvbixoPWQudmFsaWRhdGlvbkVycm9yO2lmKHAmJmghPT1zLmgzLnJlcXVpcmVkKWUoQyhhLmlkLGMuaWQsKChmPXt9KVtsLmlkXT1oLGYpKSl9fX1mdW5jdGlvbiBOKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oYSxzKXt2YXIgYz1zKCksbD0oMCxpLkU1KShjKSxmPXt9O251bGw9PWx8fGwucXVlc3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPSgwLHUuJDApKHQucmVzcG9uc2UsdC5kYXRhKSxuPWUuZmFpbGVkVmFsaWRhdGlvbixyPWUudmFsaWRhdGlvbkVycm9yO24mJihmW3QuaWRdPXIpfSkpLGEoQyh0LG4sZikpLCgwLHIuSSkoZik/YShmdW5jdGlvbih0LGUsbil7cmV0dXJuIF8oYigpLm1hcmsoKGZ1bmN0aW9uIHIoYSx1KXt2YXIgcyxjLGwsZixwLGg7cmV0dXJuIGIoKS53cmFwKChmdW5jdGlvbihyKXtmb3IoOzspc3dpdGNoKHIucHJldj1yLm5leHQpe2Nhc2UgMDpyZXR1cm4gcz11KCksYz0oMCxpLlZHKShzKSxsPSgwLGQuSCkoKSxyLnByZXY9MyxyLm5leHQ9NixvLkF5LnN1Ym1pdFN1cnZleShzLnNlc3Npb24sdCxlLG4sYyxsKTtjYXNlIDY6aWYoZj1yLnNlbnQsYShqKHQpKSxwPWYuY29tcGxldGUsaD1mLm5leHRfc3RlcCxmLnN1cnZleV9pZD09PXQpe3IubmV4dD0xMTticmVha31yZXR1cm4gci5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMTE6YShwJiYhaD9rKCk6eCh0LCgwLG8uSHEpKGgpLHApKSxyLm5leHQ9MTc7YnJlYWs7Y2FzZSAxNDpyLnByZXY9MTQsci50MD1yLmNhdGNoKDMpLGEoaih0KSk7Y2FzZSAxNzpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0pLHIsbnVsbCxbWzMsMTRdXSl9KSkpfSh0LGUsbikpOmEoaih0KSl9fWZ1bmN0aW9uIE0oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbj1lKCkscj0oMCxpLkU1KShuKSxvPW51bGw9PXI/dm9pZCAwOnIucXVlc3Rpb25zLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10LnZhbGlkYXRpb25FcnJvciYmbnVsbCE9PXQudmFsaWRhdGlvbkVycm9yfSkpO3QoTyhvP28uaWQ6dm9pZCAwKSl9fWZ1bmN0aW9uIFIodCxlKXtyZXR1cm4gZnVuY3Rpb24obixyKXt2YXIgdT1yKCkscz0oMCxpLklTKSh1KTtpZihuKGZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOmEuV1hwLHN1cnZleUlkOnR9fSh0KSksbnVsbD09c3x8IXMuY29tcGxldGVkKXt2YXIgYz11LnNlc3Npb24sbD0oMCxkLkgpKCk7by5BeS5kaXNtaXNzU3VydmV5KGMsdCxlLGwpfX19ZnVuY3Rpb24gVSh0LGUpe3JldHVybiBfKGIoKS5tYXJrKChmdW5jdGlvbiBuKHIsaSl7dmFyIGEscyxjLGw7cmV0dXJuIGIoKS53cmFwKChmdW5jdGlvbihuKXtmb3IoOzspc3dpdGNoKG4ucHJldj1uLm5leHQpe2Nhc2UgMDpyZXR1cm4oMCx1LlNjKSgiV2lsbCBhdHRlbXB0IHRvIGZldGNoIHN1cnZleSBydWxlc2V0IHdpdGggaWQgIit0KSxhPWkoKSxzPWEuc2Vzc2lvbixjPSgwLGQuSCkoKSxuLnByZXY9MyxuLm5leHQ9NixvLkF5LmZldGNoU3VydmV5KHtzZXNzaW9uOnMscnVsZXNldElkOnQsdHJpZ2dlck1ldGhvZDplLGlzUHJldmlldzpjfSk7Y2FzZSA2OihsPW4uc2VudCkmJnIoUyhsKSksbi5uZXh0PTEzO2JyZWFrO2Nhc2UgMTA6bi5wcmV2PTEwLG4udDA9bi5jYXRjaCgzKSwoMCx1LlNjKSgiRmFpbGVkIHRvIGZldGNoIHN1cnZleSB3aXRoIHJ1bGVzZXQgaWQgIit0KyI6IixuLnQwKTtjYXNlIDEzOmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSksbixudWxsLFtbMywxMF1dKX0pKSl9ZnVuY3Rpb24geih0LGUpe3JldHVybiBfKGIoKS5tYXJrKChmdW5jdGlvbiBuKHIsaSl7dmFyIGEscyxjO3JldHVybiBiKCkud3JhcCgoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6cmV0dXJuKDAsdS5TYykoIldpbGwgYXR0ZW1wdCB0byBmZXRjaCBzdXJ2ZXkgcHJvZ3Jlc3Mgd2l0aCBpZCAiK3QpLGE9aSgpLHM9YS5zZXNzaW9uLG4ucHJldj0yLG4ubmV4dD01LG8uQXkuZmV0Y2hBY3RpdmVTdXJ2ZXlQcm9ncmVzcyh7c2Vzc2lvbjpzLGVudGl0eUlkOnQsZW50aXR5VHlwZTplfSk7Y2FzZSA1OihjPW4uc2VudCkmJnIoUyhjKSksbi5uZXh0PTEyO2JyZWFrO2Nhc2UgOTpuLnByZXY9OSxuLnQwPW4uY2F0Y2goMiksKDAsdS5TYykoIkZhaWxlZCB0byBmZXRjaCBzdXJ2ZXkgcHJvZ3Jlc3Mgd2l0aCBlbnRpdHkgaWQgIit0KyI6IixuLnQwKTtjYXNlIDEyOmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSksbixudWxsLFtbMiw5XV0pfSkpKX1mdW5jdGlvbiBIKHQpe3JldHVybiBfKGIoKS5tYXJrKChmdW5jdGlvbiBlKG4scil7dmFyIGksYSxzO3JldHVybiBiKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuKDAsdS5TYykoIldpbGwgYXR0ZW1wdCB0byBmZXRjaCBzdXJ2ZXkgd2l0aCBzdXJ2ZXlfaWQgIit0KyIgZm9yIHByZXZpZXciKSxpPXIoKSxhPWkuc2Vzc2lvbixlLm5leHQ9NCxvLkF5LmZldGNoU3VydmV5Rm9yUHJldmlldyh7c2Vzc2lvbjphLHN1cnZleUlkOnR9KTtjYXNlIDQ6KHM9ZS5zZW50KSYmbihTKHMpKTtjYXNlIDY6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSl9ZnVuY3Rpb24gRih0LGUsbil7cmV0dXJuIF8oYigpLm1hcmsoKGZ1bmN0aW9uIHIoaSxhKXt2YXIgcyxjLGwsZixwLGgsZztyZXR1cm4gYigpLndyYXAoKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5wcmV2PXIubmV4dCl7Y2FzZSAwOnJldHVybiBzPWEoKSxjPXMuc2Vzc2lvbixsPSgwLGQuSCkoKSwoMCx1LlNjKSgiV2lsbCBhdHRlbXB0IHRvIGZldGNoIHN1cnZleSBydWxlc2V0IHdpdGggaWQgIit0LmlkKSxpKFQodC5pZCkpLHIucHJldj00LHIubmV4dD03LG8uQXkuc3VibWl0U3VydmV5KGMsdC5pZCx0LnN1cnZleVByb2dyZXNzSWQsdC5zdGVwc1swXS5pZCxbe3F1ZXN0aW9uX2lkOmUscmVzcG9uc2U6bn1dLGwpO2Nhc2UgNzpmPXIuc2VudCxwPWYuY29tcGxldGUsaD1mLm5leHRfc3RlcCxnPW0oe30sdCx7c3RlcHM6W10uY29uY2F0KHYoeSx0LnN0ZXBzfHxbXSksWygwLG8uSHEpKGgpXSksYWN0aXZlU3RlcElkOmguaWQsY29tcGxldGVkOnB9KSwoMCx1LlNjKSgiU3VydmV5IHdpdGggaWQgIit0LmlkKyIgaGFzIGJlZW4gdXBkYXRlZCB3aXRoIG5leHQgc3RlcCIpLGkoUyhnKSksci5uZXh0PTE4O2JyZWFrO2Nhc2UgMTU6ci5wcmV2PTE1LHIudDA9ci5jYXRjaCg0KSwoMCx1LlNjKSgiRmFpbGVkIHRvIHJlY29yZCBhbnN3ZXIgYW5kIGZldGNoIG5leHQgc3RlcCBmb3Igc3VydmV5ICIrdC5pZCsiOiIsci50MCk7Y2FzZSAxODpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0pLHIsbnVsbCxbWzQsMTVdXSl9KSkpfWZ1bmN0aW9uIEQodCxlLG4pe3ZhciByPXQuc3RlcHNbMF0ucXVlc3Rpb25zLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ZX0pKSxvPXQuc3RlcHNbMF0ucXVlc3Rpb25zLmZpbmRJbmRleCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1lfSkpO2lmKHIpcmV0dXJuKDAsdS5TYykoIldpbGwgdXBkYXRlIHF1ZXN0aW9uIHJlc3BvbnNlIGZvciBzdXJ2ZXkgd2l0aCBpZCAiK3QuaWQpLHQuc3RlcHNbMF0ucXVlc3Rpb25zW29dPW0oe30scix7cmVzcG9uc2U6ci5xdWVzdGlvblR5cGU9PT1zLm1CLm11bHRpU2VsZWN0P1tuXTpufSksdDsoMCx1LlNjKSgiQ291bGQgbm90IGZpbmQgbWF0Y2hpbmcgcXVlc3Rpb24iKX1mdW5jdGlvbiBCKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlOygwLHUuU2MpKCJDaGVja2luZyBmb3Igc3VydmV5IGluIFVSTCIpO3ZhciBuLHI9KDAscC5hKShudWxsPT0oZT13aW5kb3cpfHxudWxsPT0oZT1lLnBhcmVudCk/dm9pZCAwOmUubG9jYXRpb24sImludGVyY29tX3N1cnZleV9pZCIpO3J8fChyPW51bGwhPShuPWwuTC5nZXQoInN1cnZleV9wZW5kaW5nX3RyaWdnZXIiKSk/bjp2b2lkIDApO2lmKHIpe3ZhciBvPSJzdXJ2ZXlfdHJpZ2dlcmVkX2Zyb21fdXJsIixpPWwucy5nZXQobyksYT1pP0pTT04ucGFyc2UoaSk6W107KGE9YXx8W10pLmluZGV4T2Yocik+LTE/KDAsdS5TYykoIlN1cnZleSBydWxlc2V0IGlkICIrcisiIGhhcyBhbHJlYWR5IGJlZW4gdHJpZ2dlcmVkIGluIHRoZSBjdXJyZW50IHRhYiIpOigoMCx1LlNjKSgiU3VydmV5IHJ1bGVzZXQgaWQgIityKyIgYXR0YWNoZWQgaW4gdGhlIHVybCIpLHQoVShyLGYuZS5zaGFyZWFibGVfdXJsKSksYS5wdXNoKHIpLGwucy5zZXQobyxKU09OLnN0cmluZ2lmeShhKSkpLGwuTC5yZW1vdmUoInN1cnZleV9wZW5kaW5nX3RyaWdnZXIiKX1lbHNlKDAsdS5TYykoIk5vIGF0dGFjaGVkIHN1cnZleSBmb3VuZCBpbiB0aGUgVVJMIil9fWZ1bmN0aW9uIFYoKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGUsbixyOygwLHUuU2MpKCJDaGVja2luZyBmb3IgZW1haWwgc3VydmV5IGluIFVSTCIpO3ZhciBpPSgwLHAuYSkobnVsbD09KGU9d2luZG93KXx8bnVsbD09KGU9ZS5wYXJlbnQpP3ZvaWQgMDplLmxvY2F0aW9uLCJpbnRlcmNvbV9lbWFpbF9zdXJ2ZXlfaWQiKSxhPSgwLGMuQ0gpKG51bGw9PShuPXdpbmRvdyl8fG51bGw9PShuPW4ucGFyZW50KT92b2lkIDA6bi5sb2NhdGlvbikuaW50ZXJjb21fZW1haWxfc3VydmV5X3F1ZXN0aW9uX3Jlc3BvbnNlLGY9KDAsYy5DSCkobnVsbD09KHI9d2luZG93KXx8bnVsbD09KHI9ci5wYXJlbnQpP3ZvaWQgMDpyLmxvY2F0aW9uKS5pbnRlcmNvbV9lbWFpbF9zdXJ2ZXlfcXVlc3Rpb25faWQ7aWYoaSl7dmFyIGQ9InN1cnZleV90cmlnZ2VyZWRfZnJvbV9lbWFpbCIsaD1sLnMuZ2V0KGQpLHY9aD9KU09OLnBhcnNlKGgpOltdOyh2PXZ8fFtdKS5pbmRleE9mKGkpPi0xPygwLHUuU2MpKCJTdXJ2ZXkgcnVsZXNldCBpZCAiK2krIiBoYXMgYWxyZWFkeSBiZWVuIHRyaWdnZXJlZCBpbiB0aGUgY3VycmVudCB0YWIiKTooKDAsdS5TYykoIlN1cnZleSBydWxlc2V0IGlkICIraSsiIGF0dGFjaGVkIGluIHRoZSB1cmwiKSx0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIF8oYigpLm1hcmsoKGZ1bmN0aW9uIG4ocixpKXt2YXIgYSxjLGwsZixkLHAsaCx2O3JldHVybiBiKCkud3JhcCgoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6cmV0dXJuIGE9aSgpLGM9YS5zZXNzaW9uLGw9ZS5xdWVzdGlvbklkLGY9ZS5xdWVzdGlvblJlc3BvbnNlLG4ucHJldj0yLG4ubmV4dD01LG8uQXkuZmV0Y2hTdXJ2ZXlGcm9tU25pcHBldCh7c2Vzc2lvbjpjLHN1cnZleUlkOnR9KTtjYXNlIDU6aWYoZD1uLnNlbnQpe24ubmV4dD04O2JyZWFrfXJldHVybiBuLmFicnVwdCgicmV0dXJuIik7Y2FzZSA4OmlmKHA9ZC5zdGVwcy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ZC5hY3RpdmVTdGVwSWR9KSlbMF0ucXVlc3Rpb25zLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1sfSkpWzBdLGg9ZnVuY3Rpb24oKXt2YXIgdCxlPSJzdHJpbmciPT10eXBlb2YgZj9wYXJzZUZsb2F0KGYpOnZvaWQgMCxuPSJzdHJpbmciPT10eXBlb2YgZiYmKG51bGw9PSh0PXAuZGF0YS5vcHRpb25zKT92b2lkIDA6LTEhPT10LmluZGV4T2YoZikpLHI9dm9pZCAwIT09ZSYmIWlzTmFOKGUpJiZwLmRhdGEuc2NhbGVTdGFydDw9ZSYmZTw9cC5kYXRhLnNjYWxlRW5kO3JldHVybiBwLnF1ZXN0aW9uVHlwZT09PXMubUIubXVsdGlTZWxlY3Q/bjpyfSxwJiZmJiZoKCkpe24ubmV4dD0xNDticmVha31yZXR1cm4oMCx1LlNjKSgiQ291bGQgbm90IGZpbmQgbWF0Y2hpbmcgcXVlc3Rpb24sIHF1ZXN0aW9uIHJlc3BvbnNlIHdhcyBub3QgcHJvdmlkZWQgb3IgcXVlc3Rpb24gb3B0aW9ucyBkbyBub3QgbWF0Y2ggd2l0aCByZXNwb25zZSAtIHJldHVybmluZyByZWd1bGFyIHN1cnZleSIpLHIoUyhkKSksbi5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMTQ6dj1EKGQsbCxmKSwobnVsbD09ZD92b2lkIDA6ZC5mb3JtYXQpPT09cy56Ui5iYW5uZXImJnYmJigoMCx1LlNjKSgiV2lsbCBhdHRlbXB0IHRvIHJlY29yZCBhbnN3ZXIgIitmKyIgYW5kIGZldGNoIG5leHQgc3RlcCIpLHIoRih2LGwsZikpKSwobnVsbD09ZD92b2lkIDA6ZC5mb3JtYXQpPT09cy56Ui5wb3N0JiZ2JiYoKDAsdS5TYykoIldpbGwgbWFyayBzZWxlY3RlZCBhbnN3ZXIgIitmKSxyKFModikpKSxuLm5leHQ9MjI7YnJlYWs7Y2FzZSAxOTpuLnByZXY9MTksbi50MD1uLmNhdGNoKDIpLCgwLHUuU2MpKCJGYWlsZWQgdG8gZmV0Y2ggc3VydmV5IGZyb20gc25pcHBldCB3aXRoIGlkICIrdCsiOiIsbi50MCk7Y2FzZSAyMjpjYXNlImVuZCI6cmV0dXJuIG4uc3RvcCgpfX0pLG4sbnVsbCxbWzIsMTldXSl9KSkpfShpLHtzdXJ2ZXlJZDppLHF1ZXN0aW9uUmVzcG9uc2U6YSxxdWVzdGlvbklkOmZ9KSksdi5wdXNoKGkpLGwucy5zZXQoZCxKU09OLnN0cmluZ2lmeSh2KSkpfWVsc2UoMCx1LlNjKSgiTm8gYXR0YWNoZWQgc3VydmV5IGZvdW5kIGluIHRoZSBVUkwiKX19fSwyMTEyOTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtVMzpmdW5jdGlvbigpe3JldHVybiBtfSxWMDpmdW5jdGlvbigpe3JldHVybiB5fSxWZjpmdW5jdGlvbigpe3JldHVybiBofSxYeTpmdW5jdGlvbigpe3JldHVybiBifSxZSzpmdW5jdGlvbigpe3JldHVybiB2fSxaMjpmdW5jdGlvbigpe3JldHVybiBjfSxadzpmdW5jdGlvbigpe3JldHVybiB3fSxpczpmdW5jdGlvbigpe3JldHVybiBTfSxvbjpmdW5jdGlvbigpe3JldHVybiBwfSx1RzpmdW5jdGlvbigpe3JldHVybiBnfX0pO3ZhciByPW4oNjYyNzQpLG89big2Mzc5OCk7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gaT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0saSh0KX1mdW5jdGlvbiBhKCl7YT1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LHU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30scz11Lml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsYz11LmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLGw9dS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGYodCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Zih7fSwiIil9Y2F0Y2godCl7Zj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gZCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGI/ZTpiLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgaihyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOkkodCxuLHUpfSksYX1mdW5jdGlvbiBwKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWQ7dmFyIGg9InN1c3BlbmRlZFN0YXJ0Iix2PSJzdXNwZW5kZWRZaWVsZCIseT0iZXhlY3V0aW5nIixnPSJjb21wbGV0ZWQiLG09e307ZnVuY3Rpb24gYigpe31mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIF8oKXt9dmFyIFM9e307ZihTLHMsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIHg9T2JqZWN0LmdldFByb3RvdHlwZU9mLEU9eCYmeCh4KFAoW10pKSk7RSYmRSE9PW4mJnIuY2FsbChFLHMpJiYoUz1FKTt2YXIgQz1fLnByb3RvdHlwZT1iLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFMpO2Z1bmN0aW9uIE8odCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtmKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEEodCxlKXtmdW5jdGlvbiBuKG8sYSx1LHMpe3ZhciBjPXAodFtvXSx0LGEpO2lmKCJ0aHJvdyIhPT1jLnR5cGUpe3ZhciBsPWMuYXJnLGY9bC52YWx1ZTtyZXR1cm4gZiYmIm9iamVjdCI9PWkoZikmJnIuY2FsbChmLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGYuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCx1LHMpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LHUscyl9KSk6ZS5yZXNvbHZlKGYpLnRoZW4oKGZ1bmN0aW9uKHQpe2wudmFsdWU9dCx1KGwpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCx1LHMpfSkpfXMoYy5hcmcpfXZhciBhO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBhPWE/YS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIEkoZSxuLHIpe3ZhciBvPWg7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PXkpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09Zyl7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9ayh1LHIpO2lmKHMpe2lmKHM9PT1tKWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWgpdGhyb3cgbz1nLHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz15O3ZhciBjPXAoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT9nOnYsYy5hcmc9PT1tKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89ZyxyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIGsoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LGsoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSksbTt2YXIgaT1wKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwsbTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwsbSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCxtKX1mdW5jdGlvbiBMKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIFQodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIGoodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChMLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFAoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW3NdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGE9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBhLm5leHQ9YX19dGhyb3cgbmV3IFR5cGVFcnJvcihpKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIHcucHJvdG90eXBlPV8sbyhDLCJjb25zdHJ1Y3RvciIse3ZhbHVlOl8sY29uZmlndXJhYmxlOiEwfSksbyhfLCJjb25zdHJ1Y3RvciIse3ZhbHVlOncsY29uZmlndXJhYmxlOiEwfSksdy5kaXNwbGF5TmFtZT1mKF8sbCwiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PXd8fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LF8pOih0Ll9fcHJvdG9fXz1fLGYodCxsLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEMpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LE8oQS5wcm90b3R5cGUpLGYoQS5wcm90b3R5cGUsYywoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QSxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEEoZCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxPKEMpLGYoQyxsLCJHZW5lcmF0b3IiKSxmKEMscywoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxmKEMsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9UCxqLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aixyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goVCksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLG0pOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSksbX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxUKG4pLG19fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7VChuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6UChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLG19fSxlfWZ1bmN0aW9uIHUodCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBzKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBhKHQpe3UoaSxyLG8sYSxzLCJuZXh0Iix0KX1mdW5jdGlvbiBzKHQpe3UoaSxyLG8sYSxzLCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfX1mdW5jdGlvbiBjKHQsZSxuLHIpe3JldHVybiBzKGEoKS5tYXJrKChmdW5jdGlvbiBvKGksdSl7dmFyIHMsYyxwO3JldHVybiBhKCkud3JhcCgoZnVuY3Rpb24obyl7Zm9yKDs7KXN3aXRjaChvLnByZXY9by5uZXh0KXtjYXNlIDA6cmV0dXJuIHM9dSgpLGM9cy5zZXNzaW9uLGkobChlKSksby5wcmV2PTIsby5uZXh0PTUsdC5jcmVhdGVUaWNrZXQoYyx7dGlja2V0VHlwZUlkOmUsY29udmVyc2F0aW9uSWQ6cixhdHRyaWJ1dGVzOm59KTtjYXNlIDU6cmV0dXJuIHA9by5zZW50LGkoZihlKSksby5hYnJ1cHQoInJldHVybiIscCk7Y2FzZSAxMDpyZXR1cm4gby5wcmV2PTEwLG8udDA9by5jYXRjaCgyKSxpKGQoZSkpLG8uYWJydXB0KCJyZXR1cm4iLG51bGwpO2Nhc2UgMTQ6Y2FzZSJlbmQiOnJldHVybiBvLnN0b3AoKX19KSxvLG51bGwsW1syLDEwXV0pfSkpKX1mdW5jdGlvbiBsKHQpe3JldHVybnt0eXBlOnIuQVRFLHRpY2tldFR5cGVJZDp0fX1mdW5jdGlvbiBmKHQpe3JldHVybnt0eXBlOnIubTdyLHRpY2tldFR5cGVJZDp0fX1mdW5jdGlvbiBkKHQpe3JldHVybnt0eXBlOnIuaHJKLHRpY2tldFR5cGVJZDp0fX1mdW5jdGlvbiBwKHQpe3JldHVybiBzKGEoKS5tYXJrKChmdW5jdGlvbiBlKG4scil7dmFyIGksdSxzO3JldHVybiBhKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGk9cigpLHU9aS5zZXNzaW9uLGUucHJldj0xLGUubmV4dD00LHQuZ2V0VGlja2V0VHlwZXModSk7Y2FzZSA0OnJldHVybiBzPWUuc2VudCxuKCgwLG8ucikocykpLGUuYWJydXB0KCJyZXR1cm4iLHMpO2Nhc2UgOTpyZXR1cm4gZS5wcmV2PTksZS50MD1lLmNhdGNoKDEpLGUuYWJydXB0KCJyZXR1cm4iLG51bGwpO2Nhc2UgMTI6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLG51bGwsW1sxLDldXSl9KSkpfXZhciBoPWZ1bmN0aW9uKHQsZSl7cmV0dXJue3R5cGU6ci5fNEosdGlja2V0czp0LG5leHRQYWdlOmV9fSx2PWZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOnIuJFhKLHRpY2tldHNQb3J0YWxVcmw6dH19LHk9ZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6ci5tNXQsY29udmVyc2F0aW9uc1BvcnRhbFVybDp0fX0sZz1mdW5jdGlvbih0KXtyZXR1cm57dHlwZTpyLlN2QSx0aWNrZXQ6dH19LG09ZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6ci5uMl8saWQ6dH19LGI9ZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6ci5jbHUsaWQ6dH19O2Z1bmN0aW9uIHcodCxlLG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPVtdKSxzKGEoKS5tYXJrKChmdW5jdGlvbiBvKGksdSl7dmFyIHMsYyxsO3JldHVybiBhKCkud3JhcCgoZnVuY3Rpb24obyl7Zm9yKDs7KXN3aXRjaChvLnByZXY9by5uZXh0KXtjYXNlIDA6cmV0dXJuIHM9dSgpLGM9cy5zZXNzaW9uLG8ucHJldj0xLG8ubmV4dD00LHQuZ2V0VGlja2V0Rm9ybShjLGUsbixyKTtjYXNlIDQ6cmV0dXJuIGw9by5zZW50LGkoXyhsKSksby5hYnJ1cHQoInJldHVybiIsbCk7Y2FzZSA5OnJldHVybiBvLnByZXY9OSxvLnQwPW8uY2F0Y2goMSksby5hYnJ1cHQoInJldHVybiIsbnVsbCk7Y2FzZSAxMjpjYXNlImVuZCI6cmV0dXJuIG8uc3RvcCgpfX0pLG8sbnVsbCxbWzEsOV1dKX0pKSl9dmFyIF89ZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6ci5RNHgsdGlja2V0Rm9ybTp0fX0sUz1mdW5jdGlvbih0KXtyZXR1cm57dHlwZTpyLm9POCx0aWNrZXRGb3JtOnt0aWNrZXRUeXBlSWQ6dH19fX0sMjI5MDY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7JEg6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sVkw6ZnVuY3Rpb24oKXtyZXR1cm4gbH0sWmU6ZnVuY3Rpb24oKXtyZXR1cm4gdn0sZEg6ZnVuY3Rpb24oKXtyZXR1cm4gY30saWU6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sbjk6ZnVuY3Rpb24oKXtyZXR1cm4geX0sc2M6ZnVuY3Rpb24oKXtyZXR1cm4gaH19KTt2YXIgcj1uKDY2Mjc0KSxvPW4oMzgyNTMpO2Z1bmN0aW9uIGkodCl7cmV0dXJuIGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LGkodCl9ZnVuY3Rpb24gYSgpe2E9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSx1PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LHM9dS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLGM9dS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixsPXUudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBmKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Yoe30sIiIpfWNhdGNoKHQpe2Y9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGQodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBiP2U6YixhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IGoocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpJKHQsbix1KX0pLGF9ZnVuY3Rpb24gcCh0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1kO3ZhciBoPSJzdXNwZW5kZWRTdGFydCIsdj0ic3VzcGVuZGVkWWllbGQiLHk9ImV4ZWN1dGluZyIsZz0iY29tcGxldGVkIixtPXt9O2Z1bmN0aW9uIGIoKXt9ZnVuY3Rpb24gdygpe31mdW5jdGlvbiBfKCl7fXZhciBTPXt9O2YoUyxzLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciB4PU9iamVjdC5nZXRQcm90b3R5cGVPZixFPXgmJngoeChQKFtdKSkpO0UmJkUhPT1uJiZyLmNhbGwoRSxzKSYmKFM9RSk7dmFyIEM9Xy5wcm90b3R5cGU9Yi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShTKTtmdW5jdGlvbiBPKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Zih0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBBKHQsZSl7ZnVuY3Rpb24gbihvLGEsdSxzKXt2YXIgYz1wKHRbb10sdCxhKTtpZigidGhyb3ciIT09Yy50eXBlKXt2YXIgbD1jLmFyZyxmPWwudmFsdWU7cmV0dXJuIGYmJiJvYmplY3QiPT1pKGYpJiZyLmNhbGwoZiwiX19hd2FpdCIpP2UucmVzb2x2ZShmLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsdSxzKX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCx1LHMpfSkpOmUucmVzb2x2ZShmKS50aGVuKChmdW5jdGlvbih0KXtsLnZhbHVlPXQsdShsKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsdSxzKX0pKX1zKGMuYXJnKX12YXIgYTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gYT1hP2EudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBJKGUsbixyKXt2YXIgbz1oO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT15KXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PWcpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPWsodSxyKTtpZihzKXtpZihzPT09bSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1oKXRocm93IG89ZyxyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289eTt2YXIgYz1wKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/Zzp2LGMuYXJnPT09bSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPWcsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBrKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxrKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLG07dmFyIGk9cChvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLG07dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLG0pOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwsbSl9ZnVuY3Rpb24gTCh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBUKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBqKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goTCx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBQKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVtzXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxhPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gYS5uZXh0PWF9fXRocm93IG5ldyBUeXBlRXJyb3IoaShlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiB3LnByb3RvdHlwZT1fLG8oQywiY29uc3RydWN0b3IiLHt2YWx1ZTpfLGNvbmZpZ3VyYWJsZTohMH0pLG8oXywiY29uc3RydWN0b3IiLHt2YWx1ZTp3LGNvbmZpZ3VyYWJsZTohMH0pLHcuZGlzcGxheU5hbWU9ZihfLGwsIkdlbmVyYXRvckZ1bmN0aW9uIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT13fHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxfKToodC5fX3Byb3RvX189XyxmKHQsbCwiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShDKSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSxPKEEucHJvdG90eXBlKSxmKEEucHJvdG90eXBlLGMsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPUEsZS5hc3luYz1mdW5jdGlvbih0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBBKGQodCxuLHIsbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sTyhDKSxmKEMsbCwiR2VuZXJhdG9yIiksZihDLHMsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZihDLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPVAsai5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmoscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKFQpLCFlKWZvcih2YXIgbiBpbiB0aGlzKSJ0Ij09PW4uY2hhckF0KDApJiZyLmNhbGwodGhpcyxuKSYmIWlzTmFOKCtuLnNsaWNlKDEpKSYmKHRoaXNbbl09dCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgbj10aGlzO2Z1bmN0aW9uIG8ocixvKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5hcmc9ZSxuLm5leHQ9cixvJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sdT1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPXIuY2FsbChhLCJjYXRjaExvYyIpLGM9ci5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZihzJiZjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFjKXRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIG89dGhpcy50cnlFbnRyaWVzW25dO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJnIuY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZpLnRyeUxvYzw9ZSYmZTw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyxtKTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLG19LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksVChuKSxtfX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBvPXIuYXJnO1Qobil9cmV0dXJuIG99fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOlAoZSkscmVzdWx0TmFtZTpuLG5leHRMb2M6cn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSxtfX0sZX1mdW5jdGlvbiB1KHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXt1KGkscixvLGEscywibmV4dCIsdCl9ZnVuY3Rpb24gcyh0KXt1KGkscixvLGEscywidGhyb3ciLHQpfWEodm9pZCAwKX0pKX19ZnVuY3Rpb24gYyh0KXt2YXIgZT10LnNlc3Npb24sbj10LmN1c3RvbUF0dHJpYnV0ZXM7cmV0dXJuIHMoYSgpLm1hcmsoKGZ1bmN0aW9uIHQocil7dmFyIGksdTtyZXR1cm4gYSgpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB0LnByZXY9MCx0Lm5leHQ9MyxvLkF5LmZldGNoVG9vbHRpcHMoe3Nlc3Npb246ZSxjdXN0b21BdHRyaWJ1dGVzOm59KTtjYXNlIDM6aT10LnNlbnQsdT1vLkF5LmJ1aWxkVG9vbHRpcEdyb3VwcyhudWxsPT1pP3ZvaWQgMDppLnRvb2x0aXBfZ3JvdXBzKSxyKGQodSkpLHQubmV4dD0xMTticmVhaztjYXNlIDg6cmV0dXJuIHQucHJldj04LHQudDA9dC5jYXRjaCgwKSx0LmFicnVwdCgicmV0dXJuIik7Y2FzZSAxMTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsbnVsbCxbWzAsOF1dKX0pKSl9ZnVuY3Rpb24gbCh0LGUpe3JldHVybiBzKGEoKS5tYXJrKChmdW5jdGlvbiBuKHIsaSl7dmFyIHUscztyZXR1cm4gYSgpLndyYXAoKGZ1bmN0aW9uKG4pe2Zvcig7Oylzd2l0Y2gobi5wcmV2PW4ubmV4dCl7Y2FzZSAwOnJldHVybiB1PWkoKSxzPXUuc2Vzc2lvbixuLnByZXY9MSxuLm5leHQ9NCxvLkF5Lm1hcmtUb29sdGlwVmlld2VkKHMsdCxlKTtjYXNlIDQ6cihmKHQpKSxuLm5leHQ9MTA7YnJlYWs7Y2FzZSA3OnJldHVybiBuLnByZXY9NyxuLnQwPW4uY2F0Y2goMSksbi5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMTA6Y2FzZSJlbmQiOnJldHVybiBuLnN0b3AoKX19KSxuLG51bGwsW1sxLDddXSl9KSkpfWZ1bmN0aW9uIGYodCl7cmV0dXJue3R5cGU6ci5wVTUsdG9vbHRpcElkOnR9fWZ1bmN0aW9uIGQodCl7cmV0dXJue3R5cGU6ci5QYXQsdG9vbHRpcEdyb3Vwczp0fX1mdW5jdGlvbiBwKHQpe3JldHVybnt0eXBlOnIuTktYLHRvb2x0aXBJZDp0fX1mdW5jdGlvbiBoKHQpe3JldHVybnt0eXBlOnIubDVuLG1hdGNoZXM6dH19ZnVuY3Rpb24gdih0KXtyZXR1cm57dHlwZTpyLlU5aSx0b29sdGlwR3JvdXA6dH19ZnVuY3Rpb24geSgpe3JldHVybnt0eXBlOnIubnZ9fX0sOTUxNjg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7QzU6ZnVuY3Rpb24oKXtyZXR1cm4gUn0sRGc6ZnVuY3Rpb24oKXtyZXR1cm4gQn0sRzg6ZnVuY3Rpb24oKXtyZXR1cm4gQX0sSl86ZnVuY3Rpb24oKXtyZXR1cm4ga30sVGM6ZnVuY3Rpb24oKXtyZXR1cm4gVn0sWjQ6ZnVuY3Rpb24oKXtyZXR1cm4gVX0sZlM6ZnVuY3Rpb24oKXtyZXR1cm4gR30sa3g6ZnVuY3Rpb24oKXtyZXR1cm4gTX0sbTc6ZnVuY3Rpb24oKXtyZXR1cm4gen0sb3M6ZnVuY3Rpb24oKXtyZXR1cm4gV30scks6ZnVuY3Rpb24oKXtyZXR1cm4gS30sdTc6ZnVuY3Rpb24oKXtyZXR1cm4gSX19KTt2YXIgcj1uKDk5NDM5KSxvPW4oOTQyMTQpLGk9bigxNDQ3MSksYT1uKDY2ODM4KSx1PW4oODcxMzMpLHM9big2OTc0NCksYz1uKDg0MzgyKSxsPW4oMzgyNTMpLGY9big2MTM2NyksZD1uKDUxNDgwKSxwPW4oMjI5NzkpLGg9bigzNTIwNiksdj1uKDY2Mjc0KSx5PW4oNjY3OTkpLGc9bigxNzc3NyksbT1uKDY2ODU0KTtmdW5jdGlvbiBiKHQpe3JldHVybiBiPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxiKHQpfWZ1bmN0aW9uIHcoKXtyZXR1cm4gdz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LHcuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIF8oKXtfPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3ZhciB0LGU9e30sbj1PYmplY3QucHJvdG90eXBlLHI9bi5oYXNPd25Qcm9wZXJ0eSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24odCxlLG4pe3RbZV09bi52YWx1ZX0saT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxhPWkuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIix1PWkuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIscz1pLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gYyh0LGUsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtjKHt9LCIiKX1jYXRjaCh0KXtjPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1ufX1mdW5jdGlvbiBsKHQsZSxuLHIpe3ZhciBpPWUmJmUucHJvdG90eXBlIGluc3RhbmNlb2YgZz9lOmcsYT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSx1PW5ldyBqKHJ8fFtdKTtyZXR1cm4gbyhhLCJfaW52b2tlIix7dmFsdWU6SSh0LG4sdSl9KSxhfWZ1bmN0aW9uIGYodCxlLG4pe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6dC5jYWxsKGUsbil9fWNhdGNoKHQpe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOnR9fX1lLndyYXA9bDt2YXIgZD0ic3VzcGVuZGVkU3RhcnQiLHA9InN1c3BlbmRlZFlpZWxkIixoPSJleGVjdXRpbmciLHY9ImNvbXBsZXRlZCIseT17fTtmdW5jdGlvbiBnKCl7fWZ1bmN0aW9uIG0oKXt9ZnVuY3Rpb24gdygpe312YXIgUz17fTtjKFMsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgeD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsRT14JiZ4KHgoUChbXSkpKTtFJiZFIT09biYmci5jYWxsKEUsYSkmJihTPUUpO3ZhciBDPXcucHJvdG90eXBlPWcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoUyk7ZnVuY3Rpb24gTyh0KXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2ModCxlLChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW52b2tlKGUsdCl9KSl9KSl9ZnVuY3Rpb24gQSh0LGUpe2Z1bmN0aW9uIG4obyxpLGEsdSl7dmFyIHM9Zih0W29dLHQsaSk7aWYoInRocm93IiE9PXMudHlwZSl7dmFyIGM9cy5hcmcsbD1jLnZhbHVlO3JldHVybiBsJiYib2JqZWN0Ij09YihsKSYmci5jYWxsKGwsIl9fYXdhaXQiKT9lLnJlc29sdmUobC5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LGEsdSl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsYSx1KX0pKTplLnJlc29sdmUobCkudGhlbigoZnVuY3Rpb24odCl7Yy52YWx1ZT10LGEoYyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LGEsdSl9KSl9dShzLmFyZyl9dmFyIGk7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gSShlLG4scil7dmFyIG89ZDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09aCl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT12KXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1rKHUscik7aWYocyl7aWYocz09PXkpY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09ZCl0aHJvdyBvPXYsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPWg7dmFyIGM9ZihlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP3Y6cCxjLmFyZz09PXkpY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz12LHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gayhlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsayhlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSx5O3ZhciBpPWYobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCx5O3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCx5KTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLHkpfWZ1bmN0aW9uIEwodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gVCh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gaih0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEwsdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gUChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbYV07aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKGIoZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gbS5wcm90b3R5cGU9dyxvKEMsImNvbnN0cnVjdG9yIix7dmFsdWU6dyxjb25maWd1cmFibGU6ITB9KSxvKHcsImNvbnN0cnVjdG9yIix7dmFsdWU6bSxjb25maWd1cmFibGU6ITB9KSxtLmRpc3BsYXlOYW1lPWModyxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09bXx8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsdyk6KHQuX19wcm90b19fPXcsYyh0LHMsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoQyksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sTyhBLnByb3RvdHlwZSksYyhBLnByb3RvdHlwZSx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1BLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQShsKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LE8oQyksYyhDLHMsIkdlbmVyYXRvciIpLGMoQyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGMoQywidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1QLGoucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpqLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChUKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MseSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSx5fSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLFQobikseX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztUKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpQKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCkseX19LGV9ZnVuY3Rpb24gUyh0LGUsbixyLG8saSxhKXt0cnl7dmFyIHU9dFtpXShhKSxzPXUudmFsdWV9Y2F0Y2godCl7cmV0dXJuIHZvaWQgbih0KX11LmRvbmU/ZShzKTpQcm9taXNlLnJlc29sdmUocykudGhlbihyLG8pfWZ1bmN0aW9uIHgodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7UyhpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7UyhpLHIsbyxhLHUsInRocm93Iix0KX1hKHZvaWQgMCl9KSl9fXZhciBFPTAsQz01ZTM7ZnVuY3Rpb24gTyh0KXtyZXR1cm4oMCxyLnZuKSh0KXx8KDAsci5PNykodCl8fCgwLHIuRVApKHQpfWZ1bmN0aW9uIEEoKXtyZXR1cm4geChfKCkubWFyaygoZnVuY3Rpb24gdChlLG4pe3ZhciBvLGksYSx1LHMsZixoO3JldHVybiBfKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYobz1uKCksaT1uKCksYT1pLnNlc3Npb24sdT0oMCxyLkdRKShvKSl7dC5uZXh0PTY7YnJlYWt9cmV0dXJuKDAsYy5rNykoIk5vIGFjdGl2ZSB0b3VyIGZvdW5kLCBjYW5ub3QgcHJvZ3Jlc3MiKSx0LmFicnVwdCgicmV0dXJuIik7Y2FzZSA2OmlmKHM9dS5pZCxmPXUucHJvZ3Jlc3NJZCwhKGg9KDAsci5zWCkobykpKXt0Lm5leHQ9MjU7YnJlYWt9aWYoKDAsYy5rNykoIlRvdXIgd2l0aCBpZCAiK3MrIiBpcyBhdHRlbXB0aW5nIHRvIHByb2dyZXNzIHRvIHN0ZXAgIitoKSxPKG8pKXt0Lm5leHQ9MjE7YnJlYWt9cmV0dXJuIGUoe3R5cGU6di54dTJ9KSx0LnByZXY9MTIsdC5uZXh0PTE1LGwuQXkucHJvZ3Jlc3NUb3VyKGEscyxoLmlkLGYpO2Nhc2UgMTU6dC5uZXh0PTIxO2JyZWFrO2Nhc2UgMTc6dC5wcmV2PTE3LHQudDA9dC5jYXRjaCgxMiksZSh7dHlwZTp2LiRTWn0pLCgwLGMuazcpKCJDb3VsZCBub3QgdXBkYXRlIHRvdXIgZHVlIHRvIGU9Iit0LnQwKTtjYXNlIDIxOigwLHIuTzcpKG8pJiZwLnMuc2V0KCJ0b3VyX3Byb2dyZXNzX3ByZXZpZXciLGguaWQpLG5ldyBkLkgobywoZnVuY3Rpb24oKXtlKEgoaC5pZCxmKSksZSh7dHlwZTp2LkEwZX0pfSkpLHQubmV4dD0yOTticmVhaztjYXNlIDI1OndpbmRvdy5wYXJlbnQmJndpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoImV4aXRfdG91cl9wcmV2aWV3IiwiKiIpLFQocyksZShGKGYpKSxlKCgwLHkub3cpKCkpO2Nhc2UgMjk6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LG51bGwsW1sxMiwxN11dKX0pKSl9ZnVuY3Rpb24gSSgpe3JldHVybiB4KF8oKS5tYXJrKChmdW5jdGlvbiB0KGUsbil7dmFyIG8saSxhLHUscyxmO3JldHVybiBfKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYobz1uKCksaT0oMCxyLkdRKShvKSxhPW4oKSx1PWEuc2Vzc2lvbixzPXdpbmRvdy5wYXJlbnQsKDAsci5PNykobykpe3QubmV4dD0xOTticmVha31yZXR1cm4gZSh7dHlwZTp2LlA4aX0pLHQucHJldj02LCgwLGMuQ1opKE51bWJlcihudWxsPT1pP3ZvaWQgMDppLmlkKSksdC5uZXh0PTEwLGwuQXkucmVzZXRUb3VyKHUsbnVsbD09aT92b2lkIDA6aS5pZCk7Y2FzZSAxMDooZj10LnNlbnQpLnByb2dyZXNzX3N0YXJ0X3VybD8obnVsbD09cy5fX2ludGVyY29tQXNzaWduTG9jYXRpb258fHMuX19pbnRlcmNvbUFzc2lnbkxvY2F0aW9uKGYucHJvZ3Jlc3Nfc3RhcnRfdXJsKSwtMSE9PWYucHJvZ3Jlc3Nfc3RhcnRfdXJsLmluZGV4T2YoIiMiKSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtudWxsPT1zLl9faW50ZXJjb21SZWxvYWRMb2NhdGlvbnx8cy5fX2ludGVyY29tUmVsb2FkTG9jYXRpb24oKX0pLDFlMykpOigwLGMuazcpKCJDb3VsZCBub3QgcmVkaXJlY3QgVG91ciBkdWUgdG8gaW4gdmFsaWQgcHJvZ3Jlc3MgVVJMIiksdC5uZXh0PTE3O2JyZWFrO2Nhc2UgMTQ6dC5wcmV2PTE0LHQudDA9dC5jYXRjaCg2KSwoMCxjLms3KSgiQ291bGQgbm90IHJlc2V0IHRvdXIgZHVlIHRvIGV4Y2VwdGlvbiAtICIrdC50MCk7Y2FzZSAxNzp0Lm5leHQ9MjE7YnJlYWs7Y2FzZSAxOTpwLnMucmVtb3ZlKCJ0b3VyX3Byb2dyZXNzX3ByZXZpZXciKSxudWxsIT1pJiZpLnVybCYmKG51bGw9PXMuX19pbnRlcmNvbUFzc2lnbkxvY2F0aW9ufHxzLl9faW50ZXJjb21Bc3NpZ25Mb2NhdGlvbihpLnVybCkpO2Nhc2UgMjE6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LG51bGwsW1s2LDE0XV0pfSkpKX1mdW5jdGlvbiBrKCl7cmV0dXJuIHgoXygpLm1hcmsoKGZ1bmN0aW9uIHQoZSxuKXt2YXIgbyxhLHUscyxmLGQscDtyZXR1cm4gXygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmlmKG89bigpLGE9bigpLHU9YS5zZXNzaW9uLHM9KDAsci5HUSkobykpe3QubmV4dD02O2JyZWFrfXJldHVybigwLGMuazcpKCJObyBhY3RpdmUgdG91ciBmb3VuZCwgY2Fubm90IHNub296ZSIpLHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDY6aWYoZj1zLmlkLGQ9cy5wcm9ncmVzc0lkLCgwLHIuTzcpKG8pKWUoWigiIikpO2Vsc2V7ZSh7dHlwZToiU05PT1pFX1RPVVIifSk7dHJ5e3A9aS53LlRPVVIsbC5BeS5zbm9vemVDb250ZW50T2JqZWN0SW5zdGFuY2UodSxwLGYsZCl9Y2F0Y2godCl7KDAsYy5rNykoIkNvdWxkIG5vdCBzbm9vemUgdG91ciBkdWUgdG8gZXhjZXB0aW9uIC0gIit0KX19Y2FzZSA4OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCl9KSkpfWZ1bmN0aW9uIEwodCxlKXtpZigoMCxmLmopKCkpe3ZhciBuPW5ldyBDdXN0b21FdmVudCh0LHtkZXRhaWw6ZX0pO3dpbmRvdy5wYXJlbnQuZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuKX19ZnVuY3Rpb24gVCh0KXtMKCJpbnRlcmNvbTp0b3VyQ29tcGxldGUiLHt0b3VySWQ6dH0pfWZ1bmN0aW9uIGoodCl7TCgiaW50ZXJjb206dG91ckVycm9yIix7dG91cklkOnR9KX1mdW5jdGlvbiBQKHQsZSxuLHIsbyl7cmV0dXJuIE4uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIE4oKXtyZXR1cm4oTj14KF8oKS5tYXJrKChmdW5jdGlvbiB0KGUsbixyLG8saSl7cmV0dXJuIF8oKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdC5wcmV2PTAsdC5uZXh0PTMsZSgpO2Nhc2UgMzpyZXR1cm4gdC5hYnJ1cHQoInJldHVybiIsdC5zZW50KTtjYXNlIDY6aWYodC5wcmV2PTYsdC50MD10LmNhdGNoKDApLGE9dC50MCx1PXZvaWQgMCxzPXZvaWQgMCwtMT09PShzPVN0cmluZyhudWxsIT0odT1udWxsPT1hP3ZvaWQgMDphLm1lc3NhZ2UpP3U6YSkudG9Mb3dlckNhc2UoKSkuaW5kZXhPZigiYWxyZWFkeSBpbmFjdGl2ZSIpJiYtMT09PXMuaW5kZXhPZigiYWxyZWFkeSBzdG9wcGVkIikmJi0xPT09cy5pbmRleE9mKCJhbHJlYWR5IGNvbXBsZXRlZCIpKXt0Lm5leHQ9MTI7YnJlYWt9cmV0dXJuKDAsYy5rNykoIlRvdXIgIituKyIgIitvKSxudWxsPT1pfHxpKCksdC5hYnJ1cHQoInJldHVybiIsdm9pZCAwKTtjYXNlIDEyOnJldHVybigwLGMuazcpKCJDb3VsZCBub3QgIityKyIgdG91ciBkdWUgdG8gZT0iK3QudDApLHQuYWJydXB0KCJyZXR1cm4iLHZvaWQgMCk7Y2FzZSAxNDpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfXZhciBhLHUsc30pLHQsbnVsbCxbWzAsNl1dKX0pKSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBNKCl7cmV0dXJuIHgoXygpLm1hcmsoKGZ1bmN0aW9uIHQoZSxuKXt2YXIgbyxpLGEsdSxzLGY7cmV0dXJuIF8oKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZihvPW4oKSxpPSgwLHIuR1EpKG8pKXt0Lm5leHQ9NTticmVha31yZXR1cm4oMCxjLms3KSgiTm8gYWN0aXZlIHRvdXIgZm91bmQsIGNhbm5vdCBjb21wbGV0ZSIpLHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDU6aWYoYT1pLmlkLHU9aS5wcm9ncmVzc0lkLHM9bigpLGY9cy5zZXNzaW9uLCgwLGMuazcpKCJUb3VyIHdpdGggaWQgIithKyIgbWFya2VkIGFzIGNvbXBsZXRlIiksTyhvKSl7dC5uZXh0PTEyO2JyZWFrfXJldHVybiBlKHt0eXBlOnYuZHNFfSksdC5uZXh0PTEyLFAoKGZ1bmN0aW9uKCl7cmV0dXJuIGwuQXkuY29tcGxldGVUb3VyKGYsYSx1KX0pLGEsImNvbXBsZXRlIiwiYWxyZWFkeSBpbmFjdGl2ZS9jb21wbGV0ZWQgLSB0cmVhdGluZyBhcyBzdWNjZXNzIik7Y2FzZSAxMjpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQpfSkpKX1mdW5jdGlvbiBSKCl7cmV0dXJuIHgoXygpLm1hcmsoKGZ1bmN0aW9uIHQoZSxuKXt2YXIgbyxpLGEsdSxzO3JldHVybiBfKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYobz1uKCksaT0oMCxyLkdRKShvKSl7dC5uZXh0PTU7YnJlYWt9cmV0dXJuKDAsYy5rNykoIk5vIGFjdGl2ZSB0b3VyIGZvdW5kLCBjYW5ub3QgcmVjb3JkIGZhaWx1cmUiKSx0LmFicnVwdCgicmV0dXJuIik7Y2FzZSA1OmlmKGE9aS5pZCx1PWkucHJvZ3Jlc3NJZCxzPSgwLHIuUU8pKG8pLE8obykpe3QubmV4dD0xMTticmVha31yZXR1cm4gaihhKSx0Lm5leHQ9MTEsUCgoZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gbC5BeS5yZWNvcmRUb3VyRmFpbHVyZShvLnNlc3Npb24sYSxudWxsPT1zP3ZvaWQgMDpzLmlkLG51bGw9PXM/dm9pZCAwOnMuc2VsZWN0b3IsbnVsbD09KHQ9d2luZG93KXx8bnVsbD09KHQ9dC5wYXJlbnQpfHxudWxsPT0odD10LmxvY2F0aW9uKT92b2lkIDA6dC5wYXRobmFtZSx1KX0pLGEsInJlY29yZCBmYWlsdXJlIGZvciIsImFscmVhZHkgaW5hY3RpdmUvc3RvcHBlZCAtIHNraXBwaW5nIGZhaWx1cmUgcmVjb3JkaW5nIik7Y2FzZSAxMTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQpfSkpKX1mdW5jdGlvbiBVKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKCEoMCxoLnJyKSgpKXt2YXIgZSxuPSgwLG0uJCkoKSxyPW51bGw9PW4/dm9pZCAwOm4ubG9jYXRpb247dHJ5e3ZhciBvLGk9bnVsbD09bnx8bnVsbD09KG89bi5wZXJmb3JtYW5jZSl8fG51bGw9PW8uZ2V0RW50cmllc0J5VHlwZXx8bnVsbD09KG89by5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIikpP3ZvaWQgMDpvWzBdO2lmKG51bGwhPWkmJmkubmFtZSl7aWYoIShlPSgwLHUuQ0gpKGkubmFtZSkucHJvZHVjdF90b3VyX2lkKSl7dmFyIGE9aS5uYW1lLm1hdGNoKC9wcm9kdWN0X3RvdXJfaWQ9KFxkKykvKTthJiYoZT1hWzFdKX1lJiYhZS5tYXRjaCgvXlxkKyQvKSYmKGU9dm9pZCAwKX19Y2F0Y2godCl7KDAsYy5rNykoIlBlcmZvcm1hbmNlIEFQSSB1bmF2YWlsYWJsZSwgZmFsbGluZyBiYWNrIHRvIGxpdmUgVVJMIil9aWYoZXx8KGU9cj8oMCxnLmEpKHIsInByb2R1Y3RfdG91cl9pZCIpOnZvaWQgMCksKDAsYy5rNykoIkNoZWNraW5nIGlmIFVSTCBoYXMgdG91ciBhdHRhY2hlZCIpLGUpe3ZhciBzPSJ0b3VyX3RyaWdnZXJlZF9mcm9tX3VybCIsbD1wLnMuZ2V0KHMpLGY9bD9KU09OLnBhcnNlKGwpOltdOyhmPWZ8fFtdKS5pbmRleE9mKGUpPi0xPygwLGMuazcpKCJUb3VyIHdpdGggaWQgIitlKyIgaGFzIGFscmVhZHkgYmVlbiB0cmlnZ2VyZWQiKTooKDAsYy5rNykoIlRvdXIgaWQgIitlKyIgYXR0YWNoZWQgaW4gdGhlIHVybCIpLHQoeihlKSksZi5wdXNoKGUpLHAucy5zZXQocyxKU09OLnN0cmluZ2lmeShmKSkpfWVsc2UoMCxjLms3KSgiTm8gYXR0YWNoZWQgdG91ciBmb3VuZCBpbiB0aGUgVVJMIil9fX1mdW5jdGlvbiB6KHQpe3JldHVybiB4KF8oKS5tYXJrKChmdW5jdGlvbiBlKG4sbyl7dmFyIGksYSx1LHM7cmV0dXJuIF8oKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZighKDAsaC5ycikoKSl7ZS5uZXh0PTM7YnJlYWt9cmV0dXJuKDAsYy5rNykoIk1vYmlsZSB3ZWIgYnJvd3NlciBkZXRlY3RlZC4gV2lsbCBub3Qgc3RhcnQgdG91ciB3aXRoIGlkICIrdCksZS5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMzppZihpPSgwLHIuR1EpKG8oKSksYT1vKCksdT1hLnNlc3Npb24saSl7ZS5uZXh0PTIwO2JyZWFrfXJldHVybigwLGMuazcpKCJXaWxsIGF0dGVtcHQgdG8gZmV0Y2ggdG91ciB3aXRoIGlkICIrdCksZS5wcmV2PTcsZS5uZXh0PTEwLGwuQXkuZmV0Y2hUb3VyKHtzZXNzaW9uOnUsdG91cklkOnR9KTtjYXNlIDEwOihzPWUuc2VudCkmJnMuaWQmJnMuYWN0aXZlU3RlcElkJiZzLnRpdGxlJiZzLnVybCYmcy5zdGVwcyYmbihWKHMpKSxlLm5leHQ9MTg7YnJlYWs7Y2FzZSAxNDplLnByZXY9MTQsZS50MD1lLmNhdGNoKDcpLHQmJmoodCksKDAsYy5rNykoIkNvdWxkIG5vdCBmZXRjaCBvciBzdGFydCB0b3VyIGR1ZSB0byBlPSIrZS50MCk7Y2FzZSAxODplLm5leHQ9MjE7YnJlYWs7Y2FzZSAyMDooMCxjLms3KSgiQWN0aXZlIHRvdXIgd2l0aCBpZCAiK2kuaWQrIiBhbHJlYWR5IGZvdW5kIHNvIHRvdXIgaWQgIit0KyIgd29uJ3QgYmUgZmV0Y2hlZCIpO2Nhc2UgMjE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLG51bGwsW1s3LDE0XV0pfSkpKX1mdW5jdGlvbiBIKHQsZSl7cmV0dXJue3R5cGU6di5QVmcsYWN0aXZlU3RlcElkOnQscHJvZ3Jlc3NJZDplfX1mdW5jdGlvbiBGKHQpe3JldHVybnt0eXBlOnYuaDB0LHByb2dyZXNzSWQ6dH19ZnVuY3Rpb24gRCh0LGUpe3JldHVybnt0eXBlOnYuX2pyLHRvdXI6dCxpc1ByZXZpZXdpbmdUb3VyOmV9fWZ1bmN0aW9uIEIodCl7cmV0dXJue3R5cGU6di5YQmssbXV0ZWQ6dH19ZnVuY3Rpb24gVih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZighKDAsYS5JKSh0KSl7dmFyIGk9bigpLnVzZXIsdT0oMCxyLkdRKShuKCkpO2lmKCEoMCxhLkkpKHUpKXJldHVybigwLGMuazcpKCJUaGVyZSBpcyBhbHJlYWR5IGFuIGFjdGl2ZSB0b3VyIix1KSx2b2lkKDAsYy5rNykoIlRoZSB0b3VyIHdvbid0IGF0dGVtcHQgdG8gc3RhcnQiLHQpO3ZhciBsPWZ1bmN0aW9uKHQpe2lmKHQuc3RlcHMpe3ZhciBlPXQuYWN0aXZlU3RlcElkLG49dC5zdGVwcyxyPW4uZmluZEluZGV4KChmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VJbnQodC5pZCwxMCk9PT1wYXJzZUludChlLDEwKX0pKSxvPW4uc2xpY2UocikuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQuc2VsZWN0b3J9KSk7aWYobylyZXR1cm4gby5zZWxlY3Rvcn19KHQpO2lmKGwpe3ZhciBkOygwLGMuazcpKCJDaGVja2luZyBpZiBzZWxlY3RvciBvZiB0aGUgZmlyc3QgYWN0aXZlIHBvaW50ZXIgc3RlcCBpcyB2aXNpYmxlIG9uIHRoZSBwYWdlIix0KTt2YXIgcD1udWxsPT0oZD1uKCkuYXBwKXx8bnVsbD09KGQ9ZC5mZWF0dXJlcyk/dm9pZCAwOmQuZGVsYXlUb3VyUmVuZGVyO25ldyBjLnRUKGwscD9DOkUsMCwoZnVuY3Rpb24obil7bj8oKDAsYy5rNykoIk5vZGUgaXMgdmlzaWJsZS4gVG91ciBpcyBhdHRlbXB0aW5nIHRvIHN0YXJ0Iix0KSxlKEQodCwhMSkpLGUoKDAsby5NdSkoKSksKDAscy5KcikoaSwicmVjZWl2ZWQiLCJ0b3VyIiwibWVzc2VuZ2VyIixudWxsLHt0b3VyX2lkOnQuaWR9KSk6KCgwLGMuazcpKCJOb2RlIGlzIG5vdCB2aXNpYmxlLiBUb3VyIHdpbGwgbm90IHN0YXJ0Iix0KSxmdW5jdGlvbih0LGUpeygwLGYuaikoKSYmKCgwLHMub1MpKCJ0b3VyX2ZhaWxlZF9jc3NfZXZhbHVhdGlvbiIse3RvdXJfaWQ6dH0pLCgwLHMudW8pKCJ0b3VyX2ZhaWxlZF9jc3NfZXZhbHVhdGlvbiB0b3VyX2lkPSIrdCkpLCgwLHMuSnIpKGUsInJlY2VpdmVkX2J1dF9mYWlsZWRfY3NzX2V2YWx1YXRpb24iLCJ0b3VyIiwibWVzc2VuZ2VyIixudWxsLHt0b3VyX2lkOnR9KX0odC5pZCxpKSxqKHQuaWQpKX0pLEJvb2xlYW4ocCkpfWVsc2UoMCxjLms3KSgiVG91ciBpcyBhdHRlbXB0aW5nIHRvIHN0YXJ0Iix0KSxlKEQodCwhMSkpLGUoKDAsby5NdSkoKSksKDAscy5KcikoaSwicmVjZWl2ZWQiLCJ0b3VyIiwibWVzc2VuZ2VyIixudWxsLHt0b3VyX2lkOnQuaWR9KX19fWZ1bmN0aW9uIEcodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2UoRCh0LCEwKSksZSgoMCxvLk11KSgpKX19ZnVuY3Rpb24gcSh0LGUpe2lmKCF0KXJldHVybiB0O3RyeXt2YXIgbj1uZXcgVVJMKHQpO3JldHVybiBuLnNlYXJjaFBhcmFtcy5zZXQoInByb2R1Y3RfdG91cl9pZCIsU3RyaW5nKGUpKSxuLnRvU3RyaW5nKCl9Y2F0Y2gobil7dmFyIHI9LTEhPT10LmluZGV4T2YoIj8iKT8iJiI6Ij8iO3JldHVybiIiK3QrcisicHJvZHVjdF90b3VyX2lkPSIrZX19ZnVuY3Rpb24gVyh0KXtyZXR1cm4geChfKCkubWFyaygoZnVuY3Rpb24gZShuLHIpe3ZhciBpLGEscyxmLGQscCxoLHYseSxnLG07cmV0dXJuIF8oKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gaT1yKCksYT1pLnNlc3Npb24sZS5wcmV2PTEsZS5uZXh0PTQsbC5BeS5mZXRjaFRvdXIoe3Nlc3Npb246YSx0b3VySWQ6dH0pO2Nhc2UgNDppZigoZj1lLnNlbnQpJiZmLmlkJiZmLmFjdGl2ZVN0ZXBJZCYmZi50aXRsZSYmZi51cmwmJmYuc3RlcHMpe2UubmV4dD04O2JyZWFrfXJldHVybigwLGMuazcpKCJDb3VsZCBub3QgZmV0Y2ggdG91ciB3aXRoIGlkICIrdCksZS5hYnJ1cHQoInJldHVybiIpO2Nhc2UgODpkPWYscD13aW5kb3cucGFyZW50LGg9KDAsdS52eCkoZC51cmwpLHY9dyh7fSxoLHtwb3J0OmgucG9ydCYmcGFyc2VJbnQoaC5wb3J0LDEwKXx8MH0pLHk9bnVsbD09KHM9d2luZG93KXx8bnVsbD09KHM9cy5wYXJlbnQpP3ZvaWQgMDpzLmxvY2F0aW9uLGc9eT97cHJvdG9jb2w6eS5wcm90b2NvbCxob3N0OnkuaG9zdCxwb3J0OnkucG9ydCYmcGFyc2VJbnQoeS5wb3J0LDEwKXx8MCxwYXRobmFtZTp5LnBhdGhuYW1lLGhhc2g6eS5oYXNoLHNlYXJjaDp5LnNlYXJjaCxob3N0bmFtZTp5Lmhvc3RuYW1lLG9yaWdpbjp5Lm9yaWdpbn06dixkLnVybCYmISgwLGMuTDIpKHYsZyk/KG09cShkLnVybCx0KSxudWxsPT1wLl9faW50ZXJjb21Bc3NpZ25Mb2NhdGlvbnx8cC5fX2ludGVyY29tQXNzaWduTG9jYXRpb24obSkpOihuKEQoZCwhMSkpLG4oKDAsby5NdSkoKSkpLGUubmV4dD0yMTticmVhaztjYXNlIDE3OmUucHJldj0xNyxlLnQwPWUuY2F0Y2goMSksaih0KSwoMCxjLms3KSgiQ291bGQgbm90IGZldGNoIG9yIHN0YXJ0IHRvdXIgZHVlIHRvIGU9IitlLnQwKTtjYXNlIDIxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSxudWxsLFtbMSwxN11dKX0pKSl9ZnVuY3Rpb24gSygpe3JldHVybiB4KF8oKS5tYXJrKChmdW5jdGlvbiB0KGUsbil7dmFyIG8saSxhLHUscyxmO3JldHVybiBfKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYoIU8obz1uKCkpKXt0Lm5leHQ9NTticmVha31lKFooIiIpKSx0Lm5leHQ9MTQ7YnJlYWs7Y2FzZSA1OmlmKGk9bigpLGE9aS5zZXNzaW9uLHU9KDAsci5HUSkobykpe3QubmV4dD0xMDticmVha31yZXR1cm4oMCxjLms3KSgiTm8gYWN0aXZlIHRvdXIgZm91bmQsIGNhbm5vdCBzdG9wIiksdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMTA6cmV0dXJuIHM9dS5pZCxmPXUucHJvZ3Jlc3NJZCxlKFooZikpLHQubmV4dD0xNCxQKChmdW5jdGlvbigpe3JldHVybiBsLkF5LnN0b3BUb3VyKGEscyxmKX0pLHMsInN0b3AiLCJhbHJlYWR5IGluYWN0aXZlL3N0b3BwZWQgLSB0cmVhdGluZyBhcyBzdWNjZXNzIik7Y2FzZSAxNDplKCgwLHkub3cpKCkpO2Nhc2UgMTU6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSl9ZnVuY3Rpb24gWih0KXtyZXR1cm57dHlwZTp2Lk9DZCxwcm9ncmVzc0lkOnR9fX0sMjM3MTI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7Y3I6ZnVuY3Rpb24oKXtyZXR1cm4gSH0sRSQ6ZnVuY3Rpb24oKXtyZXR1cm4gRH0sRmI6ZnVuY3Rpb24oKXtyZXR1cm4gcX0sazY6ZnVuY3Rpb24oKXtyZXR1cm4gQn0saGc6ZnVuY3Rpb24oKXtyZXR1cm4gVn0sRkQ6ZnVuY3Rpb24oKXtyZXR1cm4gR30sZHY6ZnVuY3Rpb24oKXtyZXR1cm4gS319KTt2YXIgcj1uKDU3OTIpLG89big5NDIxNCksaT1uKDE4Mzk5KSxhPW4oNDYwNSksdT1uKDE0MTIwKTtmdW5jdGlvbiBzKHQpe3JldHVybiBzPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxzKHQpfWZ1bmN0aW9uIGMoKXtjPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3ZhciB0LGU9e30sbj1PYmplY3QucHJvdG90eXBlLHI9bi5oYXNPd25Qcm9wZXJ0eSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24odCxlLG4pe3RbZV09bi52YWx1ZX0saT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxhPWkuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIix1PWkuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIsbD1pLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gZih0LGUsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtmKHt9LCIiKX1jYXRjaCh0KXtmPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1ufX1mdW5jdGlvbiBkKHQsZSxuLHIpe3ZhciBpPWUmJmUucHJvdG90eXBlIGluc3RhbmNlb2YgYj9lOmIsYT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSx1PW5ldyBqKHJ8fFtdKTtyZXR1cm4gbyhhLCJfaW52b2tlIix7dmFsdWU6SSh0LG4sdSl9KSxhfWZ1bmN0aW9uIHAodCxlLG4pe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6dC5jYWxsKGUsbil9fWNhdGNoKHQpe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOnR9fX1lLndyYXA9ZDt2YXIgaD0ic3VzcGVuZGVkU3RhcnQiLHY9InN1c3BlbmRlZFlpZWxkIix5PSJleGVjdXRpbmciLGc9ImNvbXBsZXRlZCIsbT17fTtmdW5jdGlvbiBiKCl7fWZ1bmN0aW9uIHcoKXt9ZnVuY3Rpb24gXygpe312YXIgUz17fTtmKFMsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgeD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsRT14JiZ4KHgoUChbXSkpKTtFJiZFIT09biYmci5jYWxsKEUsYSkmJihTPUUpO3ZhciBDPV8ucHJvdG90eXBlPWIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoUyk7ZnVuY3Rpb24gTyh0KXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2YodCxlLChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW52b2tlKGUsdCl9KSl9KSl9ZnVuY3Rpb24gQSh0LGUpe2Z1bmN0aW9uIG4obyxpLGEsdSl7dmFyIGM9cCh0W29dLHQsaSk7aWYoInRocm93IiE9PWMudHlwZSl7dmFyIGw9Yy5hcmcsZj1sLnZhbHVlO3JldHVybiBmJiYib2JqZWN0Ij09cyhmKSYmci5jYWxsKGYsIl9fYXdhaXQiKT9lLnJlc29sdmUoZi5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LGEsdSl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsYSx1KX0pKTplLnJlc29sdmUoZikudGhlbigoZnVuY3Rpb24odCl7bC52YWx1ZT10LGEobCl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LGEsdSl9KSl9dShjLmFyZyl9dmFyIGk7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gSShlLG4scil7dmFyIG89aDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09eSl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT1nKXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1rKHUscik7aWYocyl7aWYocz09PW0pY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09aCl0aHJvdyBvPWcsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPXk7dmFyIGM9cChlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP2c6dixjLmFyZz09PW0pY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz1nLHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gayhlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsayhlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSxtO3ZhciBpPXAobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCxtO3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCxtKTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLG0pfWZ1bmN0aW9uIEwodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gVCh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gaih0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEwsdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gUChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbYV07aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKHMoZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gdy5wcm90b3R5cGU9XyxvKEMsImNvbnN0cnVjdG9yIix7dmFsdWU6Xyxjb25maWd1cmFibGU6ITB9KSxvKF8sImNvbnN0cnVjdG9yIix7dmFsdWU6dyxjb25maWd1cmFibGU6ITB9KSx3LmRpc3BsYXlOYW1lPWYoXyxsLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09d3x8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsXyk6KHQuX19wcm90b19fPV8sZih0LGwsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoQyksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sTyhBLnByb3RvdHlwZSksZihBLnByb3RvdHlwZSx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1BLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQShkKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LE8oQyksZihDLGwsIkdlbmVyYXRvciIpLGYoQyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGYoQywidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1QLGoucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpqLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChUKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MsbSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSxtfSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLFQobiksbX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztUKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpQKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCksbX19LGV9ZnVuY3Rpb24gbCh0LGUsbixyLG8saSxhKXt0cnl7dmFyIHU9dFtpXShhKSxzPXUudmFsdWV9Y2F0Y2godCl7cmV0dXJuIHZvaWQgbih0KX11LmRvbmU/ZShzKTpQcm9taXNlLnJlc29sdmUocykudGhlbihyLG8pfWZ1bmN0aW9uIGYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7bChpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7bChpLHIsbyxhLHUsInRocm93Iix0KX1hKHZvaWQgMCl9KSl9fXZhciBkPW4oMzgyODUpO2Z1bmN0aW9uIHAodCl7cmV0dXJuIHA9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHAodCl9ZnVuY3Rpb24gaCgpe2g9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixzPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Moe30sIiIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGwodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBiP2U6YixhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IGoocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpJKHQsbix1KX0pLGF9ZnVuY3Rpb24gZih0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1sO3ZhciBkPSJzdXNwZW5kZWRTdGFydCIsdj0ic3VzcGVuZGVkWWllbGQiLHk9ImV4ZWN1dGluZyIsZz0iY29tcGxldGVkIixtPXt9O2Z1bmN0aW9uIGIoKXt9ZnVuY3Rpb24gdygpe31mdW5jdGlvbiBfKCl7fXZhciBTPXt9O2MoUyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciB4PU9iamVjdC5nZXRQcm90b3R5cGVPZixFPXgmJngoeChQKFtdKSkpO0UmJkUhPT1uJiZyLmNhbGwoRSxhKSYmKFM9RSk7dmFyIEM9Xy5wcm90b3R5cGU9Yi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShTKTtmdW5jdGlvbiBPKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Yyh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBBKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgcz1mKHRbb10sdCxpKTtpZigidGhyb3ciIT09cy50eXBlKXt2YXIgYz1zLmFyZyxsPWMudmFsdWU7cmV0dXJuIGwmJiJvYmplY3QiPT1wKGwpJiZyLmNhbGwobCwiX19hd2FpdCIpP2UucmVzb2x2ZShsLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShsKS50aGVuKChmdW5jdGlvbih0KXtjLnZhbHVlPXQsYShjKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KHMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBJKGUsbixyKXt2YXIgbz1kO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT15KXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PWcpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPWsodSxyKTtpZihzKXtpZihzPT09bSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89ZyxyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289eTt2YXIgYz1mKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/Zzp2LGMuYXJnPT09bSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPWcsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBrKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxrKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLG07dmFyIGk9ZihvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLG07dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLG0pOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwsbSl9ZnVuY3Rpb24gTCh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBUKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBqKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goTCx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBQKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IocChlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiB3LnByb3RvdHlwZT1fLG8oQywiY29uc3RydWN0b3IiLHt2YWx1ZTpfLGNvbmZpZ3VyYWJsZTohMH0pLG8oXywiY29uc3RydWN0b3IiLHt2YWx1ZTp3LGNvbmZpZ3VyYWJsZTohMH0pLHcuZGlzcGxheU5hbWU9YyhfLHMsIkdlbmVyYXRvckZ1bmN0aW9uIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT13fHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxfKToodC5fX3Byb3RvX189XyxjKHQscywiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShDKSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSxPKEEucHJvdG90eXBlKSxjKEEucHJvdG90eXBlLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPUEsZS5hc3luYz1mdW5jdGlvbih0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBBKGwodCxuLHIsbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sTyhDKSxjKEMscywiR2VuZXJhdG9yIiksYyhDLGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksYyhDLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPVAsai5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmoscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKFQpLCFlKWZvcih2YXIgbiBpbiB0aGlzKSJ0Ij09PW4uY2hhckF0KDApJiZyLmNhbGwodGhpcyxuKSYmIWlzTmFOKCtuLnNsaWNlKDEpKSYmKHRoaXNbbl09dCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgbj10aGlzO2Z1bmN0aW9uIG8ocixvKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5hcmc9ZSxuLm5leHQ9cixvJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sdT1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPXIuY2FsbChhLCJjYXRjaExvYyIpLGM9ci5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZihzJiZjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFjKXRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIG89dGhpcy50cnlFbnRyaWVzW25dO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJnIuY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZpLnRyeUxvYzw9ZSYmZTw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyxtKTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLG19LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksVChuKSxtfX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBvPXIuYXJnO1Qobil9cmV0dXJuIG99fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOlAoZSkscmVzdWx0TmFtZTpuLG5leHRMb2M6cn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSxtfX0sZX1mdW5jdGlvbiB2KHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24geSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXt2KGkscixvLGEsdSwibmV4dCIsdCl9ZnVuY3Rpb24gdSh0KXt2KGkscixvLGEsdSwidGhyb3ciLHQpfWEodm9pZCAwKX0pKX19dmFyIGc9e307ZnVuY3Rpb24gbSh0KXtyZXR1cm4gYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYigpe3JldHVybihiPXkoaCgpLm1hcmsoKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGgoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdC5hYnJ1cHQoInJldHVybiIsbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe2lmKGdbZV0pdGhyb3cgbmV3IEVycm9yKCJNdWx0aXBsZSBldmVudHMgb2YgdHlwZT0iK2UrIiBmaXJlZCIpO2dbZV09ITAsc2V0VGltZW91dCh5KGgoKS5tYXJrKChmdW5jdGlvbiBuKCl7cmV0dXJuIGgoKS53cmFwKChmdW5jdGlvbihuKXtmb3IoOzspc3dpdGNoKG4ucHJldj1uLm5leHQpe2Nhc2UgMDpnW2VdPSExLHQoKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiBuLnN0b3AoKX19KSxuKX0pKSksMCl9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQpfSkpKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciB3PW4oNDExNyksXz1uKDE3ODMzKSxTPW4ubihfKSx4PW4oNjYyNzQpLEU9big0NTM4NyksQz1uKDM4MjUzKSxPPW4oNjk1MDgpLEE9ZnVuY3Rpb24odCl7cmV0dXJuIHQud29ya2Zsb3dQcmV2aWV3fSxJPW4oMzIzNTApLGs9big2Njg1NCk7ZnVuY3Rpb24gTCh0KXtyZXR1cm4gTD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sTCh0KX1mdW5jdGlvbiBUKCl7VD1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHM9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGModCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Yyh7fSwiIil9Y2F0Y2godCl7Yz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gbCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGc/ZTpnLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgaihyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOk8odCxuLHUpfSksYX1mdW5jdGlvbiBmKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWw7dmFyIGQ9InN1c3BlbmRlZFN0YXJ0IixwPSJzdXNwZW5kZWRZaWVsZCIsaD0iZXhlY3V0aW5nIix2PSJjb21wbGV0ZWQiLHk9e307ZnVuY3Rpb24gZygpe31mdW5jdGlvbiBtKCl7fWZ1bmN0aW9uIGIoKXt9dmFyIHc9e307Yyh3LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIF89T2JqZWN0LmdldFByb3RvdHlwZU9mLFM9XyYmXyhfKFAoW10pKSk7UyYmUyE9PW4mJnIuY2FsbChTLGEpJiYodz1TKTt2YXIgeD1iLnByb3RvdHlwZT1nLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHcpO2Z1bmN0aW9uIEUodCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtjKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEModCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBzPWYodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLGw9Yy52YWx1ZTtyZXR1cm4gbCYmIm9iamVjdCI9PUwobCkmJnIuY2FsbChsLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGwuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCxhLHUpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LGEsdSl9KSk6ZS5yZXNvbHZlKGwpLnRoZW4oKGZ1bmN0aW9uKHQpe2MudmFsdWU9dCxhKGMpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCxhLHUpfSkpfXUocy5hcmcpfXZhciBpO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIE8oZSxuLHIpe3ZhciBvPWQ7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PWgpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09dil7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9QSh1LHIpO2lmKHMpe2lmKHM9PT15KWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWQpdGhyb3cgbz12LHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz1oO3ZhciBjPWYoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT92OnAsYy5hcmc9PT15KWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89dixyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIEEoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LEEoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSkseTt2YXIgaT1mKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwseTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwseSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCx5KX1mdW5jdGlvbiBJKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIGsodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIGoodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChJLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFAoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW2FdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGk9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBpLm5leHQ9aX19dGhyb3cgbmV3IFR5cGVFcnJvcihMKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIG0ucHJvdG90eXBlPWIsbyh4LCJjb25zdHJ1Y3RvciIse3ZhbHVlOmIsY29uZmlndXJhYmxlOiEwfSksbyhiLCJjb25zdHJ1Y3RvciIse3ZhbHVlOm0sY29uZmlndXJhYmxlOiEwfSksbS5kaXNwbGF5TmFtZT1jKGIscywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PW18fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGIpOih0Ll9fcHJvdG9fXz1iLGModCxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHgpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LEUoQy5wcm90b3R5cGUpLGMoQy5wcm90b3R5cGUsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QyxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEMobCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxFKHgpLGMoeCxzLCJHZW5lcmF0b3IiKSxjKHgsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxjKHgsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9UCxqLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aixyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goayksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLHkpOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSkseX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxrKG4pLHl9fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7ayhuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6UChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLHl9fSxlfWZ1bmN0aW9uIGoodCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBQKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBhKHQpe2ooaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpe2ooaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfX12YXIgTj1TKCkoImludGVyY29tLmFjdGlvbnMudHJpZ2dlcnMiKSxNPXsib3Blbi1tZXNzZW5nZXItbG9hZGluZy12aWV3IjpvLmRrfSxSPXsic2hvdy1jb252ZXJzYXRpb24iOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGYoYygpLm1hcmsoKGZ1bmN0aW9uIG4ocixvKXtyZXR1cm4gYygpLndyYXAoKGZ1bmN0aW9uKG4pe2Zvcig7Oylzd2l0Y2gobi5wcmV2PW4ubmV4dCl7Y2FzZSAwOmlmKCgwLHUuS1MpKG8oKSkpe24ubmV4dD01O2JyZWFrfXJldHVybiBuLm5leHQ9NCxyKCgwLGEuUUwpKHQsZS5pZCx7cmVxdWVzdE9yaWdpbjoiTWVzc2VuZ2VyIHRyaWdnZXJzIHBvc3QgYWN0aW9ucyJ9KSk7Y2FzZSA0OnJldHVybiBuLmFicnVwdCgicmV0dXJuIixyKCgwLGkucCkoZS5pZCwhMCkpKTtjYXNlIDU6Y2FzZSJlbmQiOnJldHVybiBuLnN0b3AoKX19KSxuKX0pKSl9fSxVPXt9LHo9M2UzO2Z1bmN0aW9uIEgodCl7cmV0dXJue3R5cGU6eC5kSnEsdHJpZ2dlcjp0fX1mdW5jdGlvbiBGKHQpe3JldHVybnt0eXBlOnguaEZrLHRyaWdnZXJJZDp0fX1mdW5jdGlvbiBEKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe24oSCh0KSksZnVuY3Rpb24odCxlLG4pe3RyeXt2YXIgcixvPXQuc2VsZWN0b3IsaT10LmV2ZW50LGE9dC5pZCx1PSgwLEkuZm8pKG51bGw9PShyPSgwLGsuJCkoKSk/dm9pZCAwOnIuZG9jdW1lbnQsbykscz0oMCx3LnMpKChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LGUsbil7TigiSGFuZGxpbmcgZXZlbnQgKHRyaWdnZXJJZD0iK3QrIikiKSxlKFYodCxuKSl9KGEsZSxuKX0pLHose2xlYWRpbmc6ITAsdHJhaWxpbmc6ITF9KSxjPWZ1bmN0aW9uKCl7TihpKyIgZXZlbnQgZmlyZWQgZnJvbSAiK28rIiAodHJpZ2dlcklkPSIrYSsiKSIpLHMoKX07bnVsbD09dXx8dS5hZGRFdmVudExpc3RlbmVyKGksYyksVVthXT17dGFyZ2V0RWxlbWVudDpudWxsIT11P3U6bnVsbCxib3VuZEhhbmRsZXI6Y30sTigiQXR0YWNoZWQgIitpKyIgZXZlbnQgaGFuZGxlciB0byAiK28pfWNhdGNoKHQpe04oIkNvdWxkbnQgYXR0YWNoIHRoZSBtZXNzZW5nZXIgdHJpZ2dlciB0byB0aGUgRE9NIGR1ZSB0byBlPSIrdCl9fSh0LG4sZSl9fWZ1bmN0aW9uIEIodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7IWZ1bmN0aW9uKHQsZSl7dHJ5e3ZhciBuPSgwLHIuWmcpKHQpKGUpLG89bi5zZWxlY3RvcixpPW4uZXZlbnQsYT1VW3RdLHU9YS50YXJnZXRFbGVtZW50LHM9YS5ib3VuZEhhbmRsZXI7bnVsbD09dXx8dS5yZW1vdmVFdmVudExpc3RlbmVyKGkscyksTigiRGV0YWNoZWQgIitpKyIgZXZlbnQgaGFuZGxlciBmcm9tICIrbyl9Y2F0Y2godCl7TigiQ291bGRuJ3QgZGV0YWNoIHRoZSBtZXNzZW5nZXIgdHJpZ2dlciB0byB0aGUgRE9NIGR1ZSB0byBlPSIrdCl9ZmluYWxseXtkZWxldGUgVVt0XX19KHQsbigpKSxlKGZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOnguZ1V5LHRyaWdnZXJJZDp0fX0odCkpfX1mdW5jdGlvbiBWKHQsZSxuKXtyZXR1cm4gUChUKCkubWFyaygoZnVuY3Rpb24gbyhpLHUpe3ZhciBzLGMsbCxmLHAsaCx2LHksZyxiO3JldHVybiBUKCkud3JhcCgoZnVuY3Rpb24obyl7Zm9yKDs7KXN3aXRjaChvLnByZXY9by5uZXh0KXtjYXNlIDA6cz0oMCxyLlpnKSh0KSxvLnByZXY9MSxzKHUoKSksby5uZXh0PTk7YnJlYWs7Y2FzZSA1OnJldHVybiBvLnByZXY9NSxvLnQwPW8uY2F0Y2goMSksTigiUmVqZWN0ZWQgdHJpZ2dlcj0iK3QrIiBhcyBpdCdzIG5vIGxvbmdlciBwcmVzZW50IGluIHRoZSBzdG9yZSIpLG8uYWJydXB0KCJyZXR1cm4iKTtjYXNlIDk6cmV0dXJuIG8ucHJldj05LG8ubmV4dD0xMixtKCJtZXNzZW5nZXItdHJpZ2dlci1maXJlIik7Y2FzZSAxMjpvLm5leHQ9MTg7YnJlYWs7Y2FzZSAxNDpyZXR1cm4gby5wcmV2PTE0LG8udDE9by5jYXRjaCg5KSxOKCJSZWplY3RlZCB0cmlnZ2VyPSIrdCsiIGFzIG11bHRpcGxlIHRyaWdnZXJzIHdlcmUgZmlyZWQgaW4gc2FtZSB0aWNrIiksby5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMTg6cmV0dXJuIG8ucHJldj0xOCxjPXUoKSxsPWMuc2Vzc2lvbixmPWMuYXBwLnVzZXJQYXJ0VXhTdHlsZSxwPXMoYyksaD0oMCxkLmwpKCksdj17Y2xpZW50SWQ6aCxjcmVhdGVkQXQ6bmV3IERhdGUsdXhTdHlsZTpmfSxpKEYodCkpLGkoWihwKSksaSgoMCxhLmpXKSh2LCExKSksby5uZXh0PTI5LGUuZmlyZVRyaWdnZXIobCx7dHJpZ2dlcklkOlN0cmluZyh0KSxjbGllbnRBc3NpZ25lZFVVSUQ6aH0pO2Nhc2UgMjk6cmV0dXJuIHk9by5zZW50LGkoWShlLHkpKSxuJiYoZz15LmRhdGEuaWQsYj17Ym9keTpbe3R5cGU6InBhcmFncmFwaCIsdGV4dDpufV0sY2xpZW50SWQ6KDAsZC5sKSgpLGNyZWF0ZWRBdDpuZXcgRGF0ZX0sSih1LGcsKGZ1bmN0aW9uKCl7aSgoMCxhLnlrKShlLGcsYikpfSkpKSxpKHt0eXBlOngua240fSksby5hYnJ1cHQoInJldHVybiIse3N1Y2Nlc3M6ITB9KTtjYXNlIDM2OnJldHVybiBvLnByZXY9MzYsby50Mj1vLmNhdGNoKDE4KSxpKHt0eXBlOngucmxrfSksaSgoMCxhLndqKShudWxsKSksTigiQ291bGRudCBmaXJlIG1lc3NlbmdlciB0cmlnZ2VyIGR1ZSB0byBlPSIrby50Miksby5hYnJ1cHQoInJldHVybiIse3N1Y2Nlc3M6ITF9KTtjYXNlIDQyOmNhc2UiZW5kIjpyZXR1cm4gby5zdG9wKCl9fSksbyxudWxsLFtbMSw1XSxbOSwxNF0sWzE4LDM2XV0pfSkpKX1mdW5jdGlvbiBHKHQsZSl7cmV0dXJuIFAoVCgpLm1hcmsoKGZ1bmN0aW9uIG4ocixvKXt2YXIgaSx1LHMsYyxsO3JldHVybiBUKCkud3JhcCgoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6cmV0dXJuIHU9bygpLHM9dS5zZXNzaW9uLG4ubmV4dD00LHQub3V0Ym91bmRQcmV2aWV3KHMsZSk7Y2FzZSA0OmM9bi5zZW50LGw9KDAsQy55cykoYy5kYXRhKSxyKCgwLGEuRm8pKHQsbCwhMSxEYXRlLm5vdygpKSkscigoMCxFLkc0KShsLmlkLG51bGw9PShpPWwucGFydHNbMF0pP3ZvaWQgMDppLmlkKSk7Y2FzZSA4OmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSksbil9KSkpfWZ1bmN0aW9uIHEodCxlKXtyZXR1cm4gUChUKCkubWFyaygoZnVuY3Rpb24gbihyLGkpe3ZhciBhLHUscztyZXR1cm4gVCgpLndyYXAoKGZ1bmN0aW9uKG4pe2Zvcig7Oylzd2l0Y2gobi5wcmV2PW4ubmV4dCl7Y2FzZSAwOnJldHVybiBhPWkoKSx1PWEuc2Vzc2lvbixuLm5leHQ9NCx0LndvcmtmbG93UHJldmlldyh1LGUpO2Nhc2UgNDpzPW4uc2VudCxyKFcocykpLHIoKDAsby51bikoKSkscigoZnVuY3Rpb24odCxlKXt2YXIgbj1lKCkscj1BKG4pO3ImJih0KGZ1bmN0aW9uKHQpe3ZhciBlPXQud29ya2Zsb3dJbnN0YW5jZUlkLG49dC5yZXNvbHV0aW9uQm90QmVoYXZpb3JWZXJzaW9uSWQ7cmV0dXJue3R5cGU6eC5IVFAsd29ya2Zsb3dJbnN0YW5jZUlkOmUscmVzb2x1dGlvbkJvdEJlaGF2aW9yVmVyc2lvbklkOm59fShyKSksdCgoMCxPLkwpKHIuYm90SW50cm8pKSl9KSk7Y2FzZSA4OmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSksbil9KSkpfWZ1bmN0aW9uIFcodCl7dmFyIGU9dC53b3JrZmxvd0luc3RhbmNlSWQsbj10LnJlc29sdXRpb25Cb3RCZWhhdmlvclZlcnNpb25JZCxyPXQuYm90SW50cm87cmV0dXJue3R5cGU6eC5UYzAsd29ya2Zsb3dJbnN0YW5jZUlkOmUscmVzb2x1dGlvbkJvdEJlaGF2aW9yVmVyc2lvbklkOm4sYm90SW50cm86cn19ZnVuY3Rpb24gSyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt0cnl7dmFyIG89bigpO2UoVigoMCxyLnFXKShvKS5pZCx0KSl9Y2F0Y2godCl7TigiQ291bGRudCByZXRyeSBmaXJpbmcgbWVzc2VuZ2VyIHRyaWdnZXIiKX19fWZ1bmN0aW9uIFoodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuPU1bdC5wcmVBY3Rpb25dO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBuKXJldHVybiBlKG4oKSk7dGhyb3ciSW52YWxpZCBQUkUgQUNUSU9OIHR5cGUgZm9yIHRyaWdnZXI9Iit0LmlkfX1mdW5jdGlvbiBKKHQsZSxuKXt2YXIgcj0wO3NldFRpbWVvdXQoKGZ1bmN0aW9uIG8oKXt2YXIgaSxhO2lmKHI+PTMwMClOKCJDb252ZXJzYXRpb24gIitlKyIgbmV2ZXIgYmVjYW1lIHJlYWR5IGFmdGVyIDMwMCByZXRyaWVzLCBnaXZpbmcgdXAiKTtlbHNle3ZhciB1PW51bGw9PShpPXQoKS5jb252ZXJzYXRpb25zKXx8bnVsbD09KGk9aS5ieUlkKT92b2lkIDA6aVtlXTt1JiYhdS5pc0ZldGNoaW5nJiZ2b2lkIDAhPT0obnVsbD09KGE9dS5jb21wb3NlclN0YXRlKT92b2lkIDA6YS52ZXJzaW9uKSYmcGFyc2VJbnQodS5jb21wb3NlclN0YXRlLnZlcnNpb24sMTApPj0wP24oKToocisrLHNldFRpbWVvdXQobyw1MCkpfX0pLDEwMCl9ZnVuY3Rpb24gWSh0LGUpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgcj1lLmFjdGlvbixvPWUuZGF0YSxpPVJbcl07aWYoaSlyZXR1cm4gbihpKHQsbykpO3Rocm93IkludmFsaWQgUE9TVCBBQ1RJT04gdHlwZSBmb3IgdHJpZ2dlcl9hY3Rpb249IityfX19LDcxNDI0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse3BKOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LHNYOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fSk7dmFyIHI9bigxNDEyMCksbz1uKDQ2MDUpLGk9big1NDc4OCksYT1uKDY4NzYyKSx1PW4oNjYyNzQpO2Z1bmN0aW9uIHModCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIHM9bigpLGM9KDAsci5vUCkocyksbD0oMCxhLk9tKShjKTtsJiZlKCgwLG8uUUwpKHQsbCx7aXNVcGRhdGluZzohMCxyZXF1ZXN0T3JpZ2luOiJHZXQgVW5yZWFkIENvbnZlcnNhdGlvbnMifSkpLGUoe3R5cGU6dS5BYTl9KTt2YXIgZj1zLnNlc3Npb247cmV0dXJuIHQuZ2V0VW5yZWFkQ29udmVyc2F0aW9ucyhmKS50aGVuKChmdW5jdGlvbihuKXshZnVuY3Rpb24odCxlLG4pe24oZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6dS5hd3AsdW5yZWFkQ29udmVyc2F0aW9uczp0fX0odCkpO3ZhciByPXQudW5yZWFkQ29udmVyc2F0aW9uSWRzO3IubGVuZ3RoPjAmJm4oKDAsaS5sUykoZSwiaGFuZGxlVW5yZWFkQ29udmVyc2F0aW9ucyIpKX0obix0LGUpfSkpLmNhdGNoKChmdW5jdGlvbigpe30pKX19ZnVuY3Rpb24gYyh0LGUpe3ZhciBuPSgwLHIuVnkpKHQpO3JldHVybiBuJiYtMSE9PWUuaW5kZXhPZihuKX19LDY1MjYxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0sxOmZ1bmN0aW9uKCl7cmV0dXJuIFF9LGxoOmZ1bmN0aW9uKCl7cmV0dXJuIG50fSxvaTpmdW5jdGlvbigpe3JldHVybiBHfSxBeTpmdW5jdGlvbigpe3JldHVybiBzdH0sbHg6ZnVuY3Rpb24oKXtyZXR1cm4gSn0sJHo6ZnVuY3Rpb24oKXtyZXR1cm4gYXR9LHQ5OmZ1bmN0aW9uKCl7cmV0dXJuIFl9LHJlOmZ1bmN0aW9uKCl7cmV0dXJuIFZ9LFRoOmZ1bmN0aW9uKCl7cmV0dXJuICR9LHMwOmZ1bmN0aW9uKCl7cmV0dXJuIFh9LE5qOmZ1bmN0aW9uKCl7cmV0dXJuIGV0fSxGUTpmdW5jdGlvbigpe3JldHVybiB0dH19KTt2YXIgcj1uKDI5OTQxKSxvPW4oNjY4MzgpLGk9big5NDIxNCksYT1uKDcyNjgzKSx1PW4oOTY3MTkpLHM9bigyMjkwNiksYz1uKDU0Nzg4KSxsPW4oNDYwNSksZj1uKDk5MzIpLGQ9big3MTQyNCkscD1uKDMzNzU1KSxoPW4oODQzODIpLHY9bigyNjk0NykseT1uKDY5NzQ0KSxnPW4oODcxMzMpLG09big5NTE2OCksYj1uKDY2ODU0KSx3PW4oMzgyODUpLF89bigzNTIwNiksUz1uKDM4OTkpLHg9Imh0dHBzOi8vd3d3LmludGVyY29tLmNvbS9oZWxwL2VuL2NvbGxlY3Rpb25zLzEyMjk1ODE1LW1lc3Nlbmdlci1zZWN1cml0eSIsRT17SURFTlRJVFlfVkVSSUZJQ0FUSU9OX1JFQURZX1dBUk5JTkc6IkludGVyY29tIE1lc3NlbmdlciB3YXJuaW5nOiBJZGVudGl0eSBWZXJpZmljYXRpb24gaXMgc2V0IHVwIGNvcnJlY3RseSBidXQgbm90IGVuYWJsZWQuIEZvciBkZXRhaWxzIG9uIGhvdyB0byBlbmFibGUgaXQsIHNlZSAiK3gsSURFTlRJVFlfVkVSSUZJQ0FUSU9OX0ZBSUxVUkVfV0lUSF9VU0VSX0lEX1dBUk5JTkc6IkludGVyY29tIE1lc3NlbmdlciB3YXJuaW5nOiBZb3VyIElkZW50aXR5IFZlcmlmaWNhdGlvbiB1c2VyX2hhc2ggaXMgaW52YWxpZC4gQ2hlY2sgdGhhdCB5b3UgYXJlIGdlbmVyYXRpbmcgdGhlIHVzZXJfaGFzaCB3aXRoIHlvdXIgdXNlcidzIHVzZXJfaWQgYW5kIHlvdXIgYXBwJ3Mgc2VjcmV0IGtleS4gRm9yIG1vcmUgZGV0YWlscywgc2VlICIreCxJREVOVElUWV9WRVJJRklDQVRJT05fRkFJTFVSRV9XSVRIX0VNQUlMX1dBUk5JTkc6IkludGVyY29tIE1lc3NlbmdlciB3YXJuaW5nOiBZb3VyIElkZW50aXR5IFZlcmlmaWNhdGlvbiB1c2VyX2hhc2ggaXMgaW52YWxpZC4gQ2hlY2sgdGhhdCB5b3UgYXJlIGdlbmVyYXRpbmcgdGhlIHVzZXJfaGFzaCB3aXRoIHlvdXIgdXNlcidzIGVtYWlsIGFuZCB5b3VyIGFwcCdzIHNlY3JldCBrZXkuIEZvciBtb3JlIGRldGFpbHMsIHNlZSAiK3h9LEM9big4MDQ5NiksTz1uKDY2Nzk5KSxBPW4oNjYyNzQpLEk9big1MDE2MCksaz1uKDE4MDM0KSxMPW4oMzE2MjApLFQ9big2MDM0NSksaj1uKDE0MTIwKSxQPW4oNDUzODcpLE49big4ODMzMyksTT1uKDM0OTQ2KSxSPSgwLG4oMzIwOTUpLlApKChmdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZnVuY3Rpb24odCxlLG4scil7dmFyIG89dC5lbWFpbCxpPXQudXNlcklkLGE9dC51c2VySGFzaCx1PXQuaW50ZXJjb21Vc2VySnd0LHM9dC5hbm9ueW1vdXNJZDtyZXR1cm4gT2JqZWN0LmFzc2lnbih7ZW5jcnlwdGVkUGF5bG9hZDpyfSx7dXJsOmUsZW1haWw6byx1c2VySWQ6aSx1c2VySGFzaDphLGludGVyY29tVXNlckp3dDp1LGFub255bW91c0lkOnN9LG4pfSh0LGUsbixyKSl9KSw2ZTQsMSk7ZnVuY3Rpb24gVSh0KXtyZXR1cm4gVT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sVSh0KX1mdW5jdGlvbiB6KCl7cmV0dXJuIHo9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSx6LmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBIKCl7SD1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHM9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGModCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Yyh7fSwiIil9Y2F0Y2godCl7Yz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gbCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGc/ZTpnLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgTChyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOk8odCxuLHUpfSksYX1mdW5jdGlvbiBmKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWw7dmFyIGQ9InN1c3BlbmRlZFN0YXJ0IixwPSJzdXNwZW5kZWRZaWVsZCIsaD0iZXhlY3V0aW5nIix2PSJjb21wbGV0ZWQiLHk9e307ZnVuY3Rpb24gZygpe31mdW5jdGlvbiBtKCl7fWZ1bmN0aW9uIGIoKXt9dmFyIHc9e307Yyh3LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIF89T2JqZWN0LmdldFByb3RvdHlwZU9mLFM9XyYmXyhfKFQoW10pKSk7UyYmUyE9PW4mJnIuY2FsbChTLGEpJiYodz1TKTt2YXIgeD1iLnByb3RvdHlwZT1nLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHcpO2Z1bmN0aW9uIEUodCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtjKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEModCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBzPWYodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLGw9Yy52YWx1ZTtyZXR1cm4gbCYmIm9iamVjdCI9PVUobCkmJnIuY2FsbChsLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGwuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCxhLHUpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LGEsdSl9KSk6ZS5yZXNvbHZlKGwpLnRoZW4oKGZ1bmN0aW9uKHQpe2MudmFsdWU9dCxhKGMpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCxhLHUpfSkpfXUocy5hcmcpfXZhciBpO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIE8oZSxuLHIpe3ZhciBvPWQ7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PWgpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09dil7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9QSh1LHIpO2lmKHMpe2lmKHM9PT15KWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWQpdGhyb3cgbz12LHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz1oO3ZhciBjPWYoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT92OnAsYy5hcmc9PT15KWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89dixyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIEEoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LEEoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSkseTt2YXIgaT1mKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwseTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwseSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCx5KX1mdW5jdGlvbiBJKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIGsodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIEwodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChJLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFQoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW2FdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGk9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBpLm5leHQ9aX19dGhyb3cgbmV3IFR5cGVFcnJvcihVKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIG0ucHJvdG90eXBlPWIsbyh4LCJjb25zdHJ1Y3RvciIse3ZhbHVlOmIsY29uZmlndXJhYmxlOiEwfSksbyhiLCJjb25zdHJ1Y3RvciIse3ZhbHVlOm0sY29uZmlndXJhYmxlOiEwfSksbS5kaXNwbGF5TmFtZT1jKGIscywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PW18fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGIpOih0Ll9fcHJvdG9fXz1iLGModCxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHgpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LEUoQy5wcm90b3R5cGUpLGMoQy5wcm90b3R5cGUsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QyxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEMobCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxFKHgpLGMoeCxzLCJHZW5lcmF0b3IiKSxjKHgsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxjKHgsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9VCxMLnByb3RvdHlwZT17Y29uc3RydWN0b3I6TCxyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goayksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLHkpOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSkseX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxrKG4pLHl9fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7ayhuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6VChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLHl9fSxlfWZ1bmN0aW9uIEYodCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBEKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBhKHQpe0YoaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpe0YoaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfX12YXIgQj1udWxsO2Z1bmN0aW9uIFYodCxlKXtCPXtydWxlc2V0SWQ6dCx0aW1lc3RhbXA6RGF0ZS5ub3coKSxzb3VyY2U6ZX19ZnVuY3Rpb24gRyh0LGUsbixyLG8saSxhLHUscyxjLGwsZil7cmV0dXJuIHZvaWQgMD09PWEmJihhPSExKSx2b2lkIDA9PT1zJiYocz0idW5rbm93biIpLEQoSCgpLm1hcmsoKGZ1bmN0aW9uIGQoaCxnKXt2YXIgbSxiLF8seCxFLEMsTyxBLEksaztyZXR1cm4gSCgpLndyYXAoKGZ1bmN0aW9uKGQpe2Zvcig7Oylzd2l0Y2goZC5wcmV2PWQubmV4dCl7Y2FzZSAwOmlmKG09ZygpLGI9bS5hcHAsXz1tLnNlc3Npb24sKDAsTS5SOCkoYixuKSxfPWV8fF8pe2QubmV4dD02O2JyZWFrfXJldHVybigwLFMualApKCJbSW50ZXJjb21dIENhbm5vdCBjcmVhdGUgb3IgdXBkYXRlIHVzZXI6IHNlc3Npb24gaXMgbnVsbCIpLGQuYWJydXB0KCJyZXR1cm4iLG51bGwpO2Nhc2UgNjppZihfLnNlc3Npb25JZHx8KF8uc2Vzc2lvbklkPXcuQS5nZW5lcmF0ZVVVSUQoKSksbnVsbCE9aSYmaS5oaWRlQ29udmVyc2F0aW9uSGVhZGVyJiYoeD1nKCksRT14LnVzZXIsKDAseS5KcikoRSwiaGlkZV9jb252ZXJzYXRpb25faGVhZGVyIiwibWVzc2VuZ2VyIiwiaW5fYXBwIix7YXBwX2lkOl8uYXBwSWR9KSksaChXKF8sbixyLG8saSxjLGwpKSxhfHwhUihfLG4sbnVsbCE9cj9yOnt9LHUpKXtkLm5leHQ9MTE7YnJlYWt9cmV0dXJuIGQuYWJydXB0KCJyZXR1cm4iLG51bGwpO2Nhc2UgMTE6cmV0dXJuIGQucHJldj0xMSxkLm5leHQ9MTQsKDAsTS5VcCkodCxnLHIsdSxzLGMsbCxvKTtjYXNlIDE0OkM9ZC5zZW50LGQubmV4dD0zNTticmVhaztjYXNlIDE3OmlmKGQucHJldj0xNyxkLnQwPWQuY2F0Y2goMTEpLE89ZC50MCxBPSgwLHYuczMpKE8sIi9tZXNzZW5nZXIvd2ViL3BpbmciKSwhKG51bGw9PUE/dm9pZCAwOkEuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY29kZT09PXYuUm99KSkpKXtkLm5leHQ9MjU7YnJlYWt9cmV0dXJuKDAsUy5qUCkoIkJyb3dzZXIgZXh0ZW5zaW9uIGludGVyY2VwdGVkIGJvb3QgcmVxdWVzdC4gTWVzc2VuZ2VyIHdpbGwgbm90IGxvYWQuIiksZC5hYnJ1cHQoInJldHVybiIsbnVsbCk7Y2FzZSAyNTppZigiNDAzIiE9PSgwLHYuZVIpKEEpfHwhZil7ZC5uZXh0PTI5O2JyZWFrfXJldHVybigwLFMuRlMpKCJUaGlzIGRvbWFpbiBpcyBub3QgYWxsb3dlZCBmb3IgdGhlIEludGVyY29tIE1lc3Nlbmdlci4gQWRkIHlvdXIgZG9tYWluIGhlcmU6IGh0dHBzOi8vYXBwLmludGVyY29tLmNvbS9hL2FwcHMvXy9tZXNzZW5nZXIiKSxmKCEwKSxkLmFicnVwdCgicmV0dXJuIixudWxsKTtjYXNlIDI5OnJldHVybiBBJiZBLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiJBcHAgTm90IEZvdW5kIj09PXQubWVzc2FnZX0pKSYmKDAsUy5GUykoIlRoZSBBcHAgSUQgaW4geW91ciBjb2RlIHNuaXBwZXQgaXMgaW5jb3JyZWN0LiBDaGFuZ2UgaXQgdG8geW91ciBBcHAgSUQgZm91bmQgaW4gc2V0dGluZ3MgdG8gY29tcGxldGUgaW5zdGFsbGF0aW9uOiBodHRwOi8vYXBwLmludGVyY29tLmNvbS9hL2FwcHMvXy9zZXR0aW5ncy93ZWIiKSxJPWl0KE8pLGgoWihPLEkpKSwoaz0oMCx2LlJwKShPKSkmJmgoKDAscC5yUSkoaykpLGQuYWJydXB0KCJyZXR1cm4iLG51bGwpO2Nhc2UgMzU6aWYoIUMuZXJyb3JzKXtkLm5leHQ9Mzc7YnJlYWt9cmV0dXJuIGQuYWJydXB0KCJyZXR1cm4iLG51bGwpO2Nhc2UgMzc6cmV0dXJuIHEoQyxoLGcsdCxfLGkpLGQuYWJydXB0KCJyZXR1cm4iLEMpO2Nhc2UgMzk6Y2FzZSJlbmQiOnJldHVybiBkLnN0b3AoKX19KSxkLG51bGwsW1sxMSwxN11dKX0pKSl9ZnVuY3Rpb24gcSh0LGUsbix2LHcsUyl7dmFyIHgsRSxNOygwLHkuQmQpKHQpLCgwLEMudkgpKG51bGw9PSh4PXQuYXBwKT92b2lkIDA6eC5pc092ZXJyaWRlU2FtcGxpbmdFbmFibGVkKSxmdW5jdGlvbih0LGUpe3QmJmUoKDAscC5yUSkodCkpfSh0Lmluc3RhbGxNb2RlQ29uZmlnLGUpLG90KHQsdyx0Lmluc3RhbGxNb2RlQ29uZmlnKSx1dCh0KSxydCh0KTt2YXIgUj1uKCkudXNlcixVPW51bGw9PShFPW4oKS51c2VyKT92b2lkIDA6RS5sb2NhbGU7ZShLKHQpKSx0LmxvY2FsZSYmdC5sb2NhbGUhPT1VJiZlKHt0eXBlOkEuRV9OLGxvY2FsZTp0LmxvY2FsZX0pO3ZhciBIPSEobnVsbD09Unx8IVIuaWQpJiZSLmlkIT09dC5pZCxGPShudWxsPT1SP3ZvaWQgMDpSLnJvbGUpIT09dC5yb2xlOyhIfHxGKSYmZSh7dHlwZTpBLndBcyxpZENoYW5nZWQ6SH0pLGUoKDAsay5VUykoeih7fSx0LmFwcC5ob21lLmhlYWRlcix7aGVhZGVyQ29sb3JzOm51bGw9PShNPXQuYXBwLmhvbWUpP3ZvaWQgMDpNLmhlYWRlckNvbG9ycyx0aGVtZU1vZGU6KG51bGw9PVM/dm9pZCAwOlMudGhlbWVNb2RlKXx8dC5hcHAuaG9tZS50aGVtZU1vZGV9KSkpLGUoKDAsSS55YykodC5uZXdzZmVlZElkKSksZnVuY3Rpb24odCxlKXt0JiZlKCgwLGwuTiQpKHQpKX0odC5uZXdDb252ZXJzYXRpb25Db21wb3NlclN0YXRlLGUpLGZ1bmN0aW9uKHQpe3QoKDAsbS5aNCkoKSksdCgoMCx1Lko3KSgpKSx0KCgwLHUuVEQpKCkpLHQoKDAsTy5waykoKSl9KGUpLGUoKDAsZi5tcCkodC5sYXVuY2hlclNldHRpbmdzKSksZnVuY3Rpb24odCxlKXt2YXIgbj10Lm5vdGlmaWNhdGlvbkxpbmtDb252ZXJzYXRpb25JZCxyPXQubm90aWZpY2F0aW9uTGlua1dpdGhvdXRDb252ZXJzYXRpb247biYmZSgoMCxpLlZ2KShuKSk7ciYmKGUoKDAsaS5TeSkoKSksZSgoMCxpLnF5KSgpKSxlKCgwLFAuWTYpKCkpKX0odCxlKSxmdW5jdGlvbih0LGUsbixyKXtpZigobnVsbD09dD92b2lkIDA6dC5sZW5ndGgpPjApe3ZhciBvPW4oKTtpZigoMCxkLnBKKShvLHQpKXt2YXIgaT0oMCxqLlZ5KShvKTtlKCgwLGwuUUwpKHIsaSkpfWVsc2UgZSgoMCxjLmxTKShyLCJjcmVhdGVPclVwZGF0ZVVzZXIiKSl9fSh0LnVucmVhZENvbnZlcnNhdGlvbklkcyxlLG4sdiksZnVuY3Rpb24odCxlKXt2YXIgbj0hKDAsXy5ycikoKXx8dC5hcHAuZmVhdHVyZXMuZmluTGF1bmNoZXJEaXNjb3ZlcnlNb2RlO24mJnQuYXBwLmZlYXR1cmVzLmxhdW5jaGVyRGlzY292ZXJ5TW9kZSYmZSgoMCxyLlhYKSgpKX0odCxlKSxmdW5jdGlvbih0LGUpe3ZhciBuLHIsaT1udWxsPT0obj0oMCxiLiQpKCkpP3ZvaWQgMDpuLmxvY2F0aW9uLGE9aT9udWxsPT0ocj0oMCxnLkNIKShpKSk/dm9pZCAwOnIucHJvZHVjdF90b3VyX2lkOnZvaWQgMDsoMCxvLkkpKHQpfHwoKDAsby5JKShhKT9lKCgwLG0uVGMpKHQpKTphPT09dC5pZD8oKDAsaC5rNykoIkFjdGl2ZSB0b3VyIHdpdGggaWQgIit0LmlkKyIgaXMgdGhlIHNhbWUgYXMgdGhlIHF1ZXJ5IHBhcmFtcyBzbyBzdGFydGluZyB0b3VyIiksZSgoMCxtLlRjKSh0KSkpOigwLGguazcpKCJUb3VyIHdpdGggaWQgIit0LmlkKyIgcmVjZWl2ZWQgZnJvbSBwaW5nIHdvbid0IHN0YXJ0IGJlY2F1c2UgdGhlcmUgaXMgYSB0b3VySWQgaW4gdGhlIHF1ZXJ5IHBhcmFtcyIpKX0odC5hY3RpdmVUb3VyLGUpLGZ1bmN0aW9uKHQsZSl7KDAsby5JKSh0KXx8ZSgoMCxhLkhKKSh0KSl9KHQuYmFubmVycyxlKSxmdW5jdGlvbih0LGUpeygwLG8uSSkodCl8fGUoKDAscy4kSCkodCkpfSh0LnRvb2x0aXBHcm91cHMsZSksZnVuY3Rpb24odCxlLG4pe3ZhciByLGksYSxzLGM9KG51bGw9PShyPSgwLGcuQ0gpKG51bGw9PShpPXdpbmRvdyl8fG51bGw9PShpPWkucGFyZW50KT92b2lkIDA6aS5sb2NhdGlvbikpP3ZvaWQgMDpyLmludGVyY29tX3N1cnZleV9pZCl8fChudWxsPT0oYT0oMCxnLkNIKShudWxsPT0ocz13aW5kb3cpfHxudWxsPT0ocz1zLnBhcmVudCk/dm9pZCAwOnMubG9jYXRpb24pKT92b2lkIDA6YS5pbnRlcmNvbV9lbWFpbF9zdXJ2ZXlfaWQpO2lmKHQmJiEoMCxvLkkpKHQpKXJldHVybigwLG8uSSkoYyl8fHBhcnNlSW50KGMpPT09dC5ydWxlc2V0SWQ/dm9pZCBlKCgwLHUud2opKHQpKTp2b2lkIDA7dmFyIGwsZj1uKCkuc3VydmV5O2lmKCFmKXJldHVybjt2YXIgZD1mdW5jdGlvbih0KXtpZighQilyZXR1cm4hMTt2YXIgZT1EYXRlLm5vdygpLUIudGltZXN0YW1wPDFlNCxuPSF0fHxCLnJ1bGVzZXRJZD09PXQ7cmV0dXJuIGUmJm59KGYuaWQ/cGFyc2VJbnQoZi5pZCwxMCk6dm9pZCAwKTtpZihkJiZCKXJldHVybiB2b2lkIGUoKDAsdS53aikoZikpO3ZhciBwPW51bGw9PShsPWYuc3RlcHMpP3ZvaWQgMDpsLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09Zi5hY3RpdmVTdGVwSWR9KSk7aWYoZi5jb21wbGV0ZWQmJihudWxsPT1wP3ZvaWQgMDpwLnN0ZXBUeXBlKT09PU4ueWsudGhhbmtZb3UpcmV0dXJuO2UoKDAsdS50cCkoKSl9KHQuc3VydmV5LGUsbiksZnVuY3Rpb24odCxlLG4pe3ZhciByLGksYT1udWxsPT0ocj0oMCxnLkNIKShudWxsPT0oaT13aW5kb3cpfHxudWxsPT0oaT1pLnBhcmVudCk/dm9pZCAwOmkubG9jYXRpb24pKT92b2lkIDA6ci5pbnRlcmNvbV9jaGVja2xpc3RfaWQ7aWYoISgwLG8uSSkodCkpe2UoKDAsTy5YXykodCwoMCxvLkkpKGEpKSk7dmFyIHU9bigpLHM9KDAsTC5nSCkodSk7KG51bGw9PXM/dm9pZCAwOnMubGVuZ3RoKT4wPygwLFQuT20pKHUuY2hlY2tsaXN0cyk/KCgwLFQuQzIpKCJDaGVja2xpc3RzIHJlY2VpdmVkIGZyb20gcGluZyBhcmUgcmVjZW50bHkgYWN0aXZlIC0gcmVzb2x2aW5nIGFzIG5vcm1hbC4iKSxlKCgwLE8ub3cpKCkpKTooKDAsVC5DMikoIkNoZWNrbGlzdHMgcmVjZWl2ZWQgZnJvbSBwaW5nIGFyZSBub3QgcmVjZW50bHkgYWN0aXZlIC0gcmVzb2x2aW5nIHdpdGggdGhyb3R0bGluZy4iKSxlKCgwLE8ucFUpKCkpKTooMCxULkMyKSgiQ2hlY2tsaXN0cyByZWNlaXZlZCBmcm9tIHBpbmcgZG8gbm90IGNvbnRhaW4gYXV0by1yZXNvbHZlIHJ1bGVzIHRoYXQgcmVxdWlyZSBiYWNrZ3JvdW5kIHJlc29sdmluZy4iKX19KHQuY2hlY2tsaXN0cyxlLG4pfWZ1bmN0aW9uIFcodCxlLG4scixvLGksYSl7cmV0dXJue3R5cGU6QS5QMkksc2Vzc2lvbjp0LHVybDplLGN1c3RvbUF0dHJpYnV0ZXM6bixhbm9ueW1vdXNTZXNzaW9uRHVyYXRpb246cixjdXN0b21pemF0aW9uQXR0cmlidXRlczpvLGludGVybmFsOmksaXNJbnRlcnNlY3Rpb25Cb290ZWQ6YX19ZnVuY3Rpb24gSyh0KXtyZXR1cm57dHlwZTpBLlJ3cSx1c2VyOnR9fWZ1bmN0aW9uIFoodCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITEpLHt0eXBlOkEub0p1LGVycm9yOnQsaXNJZGVudGl0eVZlcmlmaWNhdGlvbkVycm9yOmV9fWZ1bmN0aW9uIEoodCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSEwKSx7dHlwZTpBLnFqUyxjbGVhckNvb2tpZXM6dH19ZnVuY3Rpb24gWSgpe3JldHVybnt0eXBlOkEub2c4fX1mdW5jdGlvbiBRKHQpe3JldHVybnt0eXBlOkEub0szLGFub255bW91c1Nlc3Npb246dH19ZnVuY3Rpb24gWCh0KXtyZXR1cm57dHlwZTpBLkpfNyxoZWxwQ2VudGVyU2Vzc2lvbjp0fX1mdW5jdGlvbiAkKHQpe3JldHVybnt0eXBlOkEuaXhqLGF1dGhUb2tlbnM6dH19ZnVuY3Rpb24gdHQoKXtyZXR1cm57dHlwZTpBLm5pWH19ZnVuY3Rpb24gZXQoKXtyZXR1cm57dHlwZTpBLk5Ven19ZnVuY3Rpb24gbnQodCxlLG4pe3JldHVybiBmdW5jdGlvbihyLG8pe3ZhciBpPW8oKS5zZXNzaW9uO2lmKGkpcmV0dXJuIHIoe3R5cGU6QS5POTAsbmFtZTplLG1ldGFkYXRhOm59KSx0LmNyZWF0ZUV2ZW50KGksZSxuKS50aGVuKChmdW5jdGlvbihlKXtpZihlKXt2YXIgbj1lLmJhbm5lcixvPWUuY3VzdG9tQm90LGk9ZS5zdXJ2ZXkscz1lLnRvdXI7bj9yKCgwLGEuSEopKFtuXSkpOnM/cigoMCxtLlRjKShzKSk6aSYmcigoMCx1LndqKShpKSksbyYmcigoMCxsLkZvKSh0LG8pKX1yZXR1cm4gcihmdW5jdGlvbih0KXtyZXR1cm57dHlwZTpBLmNzMixyZXNwb25zZTp0fX0oZSkpLGV9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7cmV0dXJuIHIoe3R5cGU6QS55RHJ9KX0pKX19ZnVuY3Rpb24gcnQodCl7dmFyIGU9dC5jZGFzQnJlYWNoaW5nTGltaXQ7aWYoZSYmZS5sZW5ndGgpe3ZhciBuPTE9PT1lLmxlbmd0aD8iYXR0cmlidXRlIjoiYXR0cmlidXRlcyIscj1lLmpvaW4oIiwgIik7KDAsUy5GUykoIllvdSBoYXZlIHJlYWNoZWQgeW91ciBDREEgbGltaXQgYW5kIHdlIHdlcmUgbm90IGFibGUgdG8gY3JlYXRlIG9yIHVwZGF0ZSB0aGUgZm9sbG93aW5nICIrbisiOiAiK3IrIi4gRm9yIG1vcmUgZGV0YWlscywgc2VlOiBodHRwczovL3d3dy5pbnRlcmNvbS5jb20vaGVscC9jb25maWd1cmUtaW50ZXJjb20vY3VzdG9taXplLWludGVyY29tLXRvLWJlLWFib3V0LXlvdXItdXNlcnMvc2VuZC1jdXN0b20tdXNlci1hdHRyaWJ1dGVzLXRvLWludGVyY29tIil9fWZ1bmN0aW9uIG90KHQsZSxuKXt2b2lkIDA9PT1uJiYobj17fSk7dmFyIHI9ZS51c2VySGFzaCxvPWUudXNlcklkLGk9ZS5lbWFpbCxhPW4sdT1hLnNlY3VyZUluc3RhbGxWMixzPWEuc2VjdXJlSW5zdGFsbFYzO2lmKHV8fHMpe2lmKCFvJiYhaSlyZXR1cm59ZWxzZSBpZighcilyZXR1cm47dmFyIGM9ZnVuY3Rpb24odCxlKXtpZih0LmlkZW50aXR5VmVyaWZpY2F0aW9uUmVhZHkpcmV0dXJuIEUuSURFTlRJVFlfVkVSSUZJQ0FUSU9OX1JFQURZX1dBUk5JTkc7aWYoIXQuaWRlbnRpdHlWZXJpZmllZCYmZS51c2VySWQpcmV0dXJuIEUuSURFTlRJVFlfVkVSSUZJQ0FUSU9OX0ZBSUxVUkVfV0lUSF9VU0VSX0lEX1dBUk5JTkc7aWYoIXQuaWRlbnRpdHlWZXJpZmllZCYmIWUudXNlcklkKXJldHVybiBFLklERU5USVRZX1ZFUklGSUNBVElPTl9GQUlMVVJFX1dJVEhfRU1BSUxfV0FSTklORztyZXR1cm4gbnVsbH0odCxlKTtjJiYoMCxTLkZTKShjKX1mdW5jdGlvbiBpdCh0KXt2YXIgZT0oMCx2LnMzKSh0KTtpZighZSlyZXR1cm4hMTt2YXIgbj0hMTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbih0KXstMSE9PXQuY29kZS5pbmRleE9mKCJpZGVudGl0eV92ZXJpZmljYXRpb24iKT8obj0hMCwoMCxTLmpQKSgiSW50ZXJjb20gTWVzc2VuZ2VyIGVycm9yOiAiK3QubWVzc2FnZSsiIEZvciBtb3JlIGRldGFpbHMsIHNlZSAiK3gpKTotMSE9PXQuY29kZS5pbmRleE9mKCJpbnRlcmNvbV91c2VyX2p3dCIpJiYobj0hMCwoMCxTLmpQKSgiSW50ZXJjb20gTWVzc2VuZ2VyIEpXVCBlcnJvcjogIit0Lm1lc3NhZ2UrIiBGb3IgbW9yZSBkZXRhaWxzLCBzZWUgIit4KSl9KSksbn1mdW5jdGlvbiBhdCh0KXtyZXR1cm57dHlwZTpBLm9QOSxhbm9ueW1vdXNTZXNzaW9uOnQuYW5vbnltb3VzX3Nlc3Npb24sc2Vzc2lvbkV4cGlyeTp0LnNlc3Npb25fZXhwaXJ5fX1mdW5jdGlvbiB1dCh0KXt0Lmp3dEV4cGlyZWQmJigwLFMuRlMpKCJJbnRlcmNvbSBNZXNzZW5nZXIgSldUIGVycm9yOiBKV1QgaGFzIGV4cGlyZWQuIEZvciBtb3JlIGRldGFpbHMsIHNlZSAiK3gpfXZhciBzdD17Y3JlYXRlT3JVcGRhdGVVc2VyOkcsY3JlYXRlT3JVcGRhdGVVc2VyUmVxdWVzdDpXLGNyZWF0ZU9yVXBkYXRlVXNlclN1Y2Nlc3M6SyxjcmVhdGVPclVwZGF0ZVVzZXJGYWlsdXJlOlosZGVzdHJveVNlc3Npb246Sixhbm9ueW1vdXNTZXNzaW9uQ2hhbmdlZDpRLHVzZXJJc1ByZXNlbnQ6dHQsdXNlcklzQWJzZW50OmV0LGNyZWF0ZUV2ZW50Om50LGlzRHVwbGljYXRlQ3JlYXRlT3JVcGRhdGVVc2VyUmVxdWVzdDpSLGNoZWNrQ2Rhc0JyZWFjaGluZ0xpbWl0OnJ0LGNoZWNrSWRlbnRpdHlWZXJpZmljYXRpb25JbnN0YWxsOm90LGNoZWNrSWRlbnRpdHlWZXJpZmljYXRpb25FcnJvcjppdCxleHRlbmRBbm9ueW1vdXNTZXNzaW9uU3VjY2VzczphdCxjaGVja0p3dEV4cGlyeVN0YXR1czp1dH19LDM0OTQ2OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse1I4OmZ1bmN0aW9uKCl7cmV0dXJuIGN9LFVwOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LFhROmZ1bmN0aW9uKCl7cmV0dXJuIGx9fSk7dmFyIHIsbyxpPW4oMTI0NTUpLGE9big2OTc0NCksdT0zMCxzPTE4ZTU7ZnVuY3Rpb24gYyh0LGUpeyghcnx8byE9PWUmJnQmJnQuZmVhdHVyZXMmJnQuZmVhdHVyZXMuc2luZ2xlUGFnZUFwcFJhdGVMaW1pdGluZykmJmwoZSl9ZnVuY3Rpb24gbCh0KXshZnVuY3Rpb24odCxlLG4pe289bixyPSgwLGkuJCkoKGZ1bmN0aW9uKHQsZSxuLHIsbyxpLHUscyl7dmFyIGM9ZSgpLnNlc3Npb247cmV0dXJuIHQuY3JlYXRlT3JVcGRhdGVVc2VyKGMsbnVsbCE9bj9uOnZvaWQgMCx2b2lkIDAscixvLGksdSwoMCxhLmlkKSgpLHMpfSksdCxlLCJ1c2VyX3VwZGF0ZSIpfSh1LHMsdCl9fSwzNTIwNjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtBTTpmdW5jdGlvbigpe3JldHVybiBsfSxBcjpmdW5jdGlvbigpe3JldHVybiB2fSxHNTpmdW5jdGlvbigpe3JldHVybiBhfSxJMTpmdW5jdGlvbigpe3JldHVybiB1fSxJRDpmdW5jdGlvbigpe3JldHVybiBofSxVMDpmdW5jdGlvbigpe3JldHVybiBnfSxXZDpmdW5jdGlvbigpe3JldHVybiB5fSxjVDpmdW5jdGlvbigpe3JldHVybiBtfSxucjpmdW5jdGlvbigpe3JldHVybiBjfSxycjpmdW5jdGlvbigpe3JldHVybiBzfSx1bjpmdW5jdGlvbigpe3JldHVybiBkfSx3MzpmdW5jdGlvbigpe3JldHVybiBmfX0pO3ZhciByPS9pcGhvbmV8aXBhZHxpcG9kfGFuZHJvaWR8YmxhY2tiZXJyeXxvcGVyYSBtaW5pfGllbW9iaWxlL2ksbz1bIi5pbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXIiLCIuaW50ZXJjb20tbGF1bmNoZXItZnJhbWUiLCIjaW50ZXJjb20tY29udGFpbmVyIiwiLmludGVyY29tLW1lc3NlbmdlciIsIi5pbnRlcmNvbS1ub3RpZmljYXRpb25zIl07ZnVuY3Rpb24gaSh0KXt0cnl7aWYoISh0IGluIHdpbmRvdykpcmV0dXJuITE7dmFyIGU9d2luZG93W3RdO3JldHVybiBudWxsIT09ZSYmKGUuc2V0SXRlbSgiaW50ZXJjb20tdGVzdCIsIjAiKSxlLnJlbW92ZUl0ZW0oImludGVyY29tLXRlc3QiKSwhMCl9Y2F0Y2godCl7cmV0dXJuITF9fWZ1bmN0aW9uIGEoKXtyZXR1cm4gaSgibG9jYWxTdG9yYWdlIil9ZnVuY3Rpb24gdSgpe3JldHVybiEhKHdpbmRvdy5GaWxlUmVhZGVyJiZ3aW5kb3cuRmlsZSYmd2luZG93LkZpbGVMaXN0JiZ3aW5kb3cuRm9ybURhdGEpfWZ1bmN0aW9uIHMoKXt2YXIgdD1mKCkudXNlckFnZW50O3JldHVybiEhdCYmKG51bGwhPT10Lm1hdGNoKHIpJiZ2b2lkIDAhPT13aW5kb3cucGFyZW50KX1mdW5jdGlvbiBjKCl7dmFyIHQ9ZigpLnZlbmRvcnx8IiIsZT1mKCkudXNlckFnZW50fHwiIjtyZXR1cm4gMD09PXQuaW5kZXhPZigiQXBwbGUiKSYmL1xzU2FmYXJpXC8vLnRlc3QoZSl9ZnVuY3Rpb24gbCh0KXt2b2lkIDA9PT10JiYodD13aW5kb3cpO3ZhciBlPWYoKSxuPSJHb29nbGUgSW5jLiI9PT1lLnZlbmRvciYmIXQuY2hyb21lO3JldHVybiIiPT09ZS5sYW5ndWFnZXMmJihlLndlYmRyaXZlcnx8bil9ZnVuY3Rpb24gZigpe3JldHVybiBuYXZpZ2F0b3J8fHt9fWZ1bmN0aW9uIGQodCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PWYoKS51c2VyQWdlbnQpLC9pUGFkfGlQaG9uZXxpUG9kLy50ZXN0KHQpJiYhd2luZG93Lk1TU3RyZWFtfWZ1bmN0aW9uIHAoKXt2YXIgdDtyZXR1cm4obnVsbD09KHQ9ZnVuY3Rpb24oKXtpZihkKCkpe3ZhciB0PWYoKS5hcHBWZXJzaW9uLm1hdGNoKC9PUyAoXGQrKV8oXGQrKV8/KFxkKyk/Lyk7cmV0dXJue21ham9yOnBhcnNlSW50KHRbMV0sMTApLG1pbm9yOnBhcnNlSW50KHRbMl0sMTApLHBhdGNoOnBhcnNlSW50KHRbM118fDAsMTApfX1yZXR1cm4gbnVsbH0oKSk/dm9pZCAwOnQubWFqb3IpPj0xNX1mdW5jdGlvbiBoKCl7dmFyIHQ9ZigpLnVzZXJBZ2VudCxlPWQodCksbj0hIXQubWF0Y2goL1dlYktpdC9pKTtyZXR1cm4gZSYmbiYmIXQubWF0Y2goL0NyaU9TL2kpJiZwKCl9ZnVuY3Rpb24gdigpe3JldHVybiBvLnNvbWUoKGZ1bmN0aW9uKHQpe3ZhciBlPXdpbmRvdy5wYXJlbnQuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KTtpZihlKXt2YXIgbj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKTtyZXR1cm4gbnVsbD09PW58fCJub25lIj09PW4uZGlzcGxheX19KSl9dmFyIHk9ZnVuY3Rpb24oKXtyZXR1cm4ib250b3VjaHN0YXJ0ImluIHdpbmRvd3x8bmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjB9LGc9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93Lm5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoIk1hYyIpPj0wfSxtPWZ1bmN0aW9uKCl7cmV0dXJuIlJlc2l6ZU9ic2VydmVyImluIHdpbmRvd307ZS5BeT17aGFzWGhyMlN1cHBvcnQ6ZnVuY3Rpb24oKXtyZXR1cm4iWE1MSHR0cFJlcXVlc3QiaW4gd2luZG93JiYid2l0aENyZWRlbnRpYWxzImluIG5ldyBYTUxIdHRwUmVxdWVzdH0saGFzTG9jYWxTdG9yYWdlU3VwcG9ydDphLGhhc1Nlc3Npb25TdG9yYWdlU3VwcG9ydDpmdW5jdGlvbigpe3JldHVybiBpKCJzZXNzaW9uU3RvcmFnZSIpfSxoYXNGaWxlU3VwcG9ydDp1LGhhc0F1ZGlvU3VwcG9ydDpmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImF1ZGlvIik7cmV0dXJuISF0LmNhblBsYXlUeXBlJiYhIXQuY2FuUGxheVR5cGUoImF1ZGlvL21wZWc7IikucmVwbGFjZSgvXm5vJC8sIiIpfSxoYXNWaXNpYmlsaXR5U3VwcG9ydDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT1kb2N1bWVudC5oaWRkZW58fHZvaWQgMCE9PWRvY3VtZW50Lm1vekhpZGRlbnx8dm9pZCAwIT09ZG9jdW1lbnQubXNIaWRkZW58fHZvaWQgMCE9PWRvY3VtZW50LndlYmtpdEhpZGRlbn0sbWVzc2VuZ2VySXNWaXNpYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIG8uc29tZSgoZnVuY3Rpb24odCl7dmFyIGU9d2luZG93LnBhcmVudC5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpO2lmKGUpe3ZhciBuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIG4mJm4ud2lkdGg+MCYmbi5oZWlnaHQ+MH19KSl9LG1lc3Nlbmdlckhhc0Rpc3BsYXlOb25lU2V0OnYsaXNNb2JpbGVCcm93c2VyOnMsaXNJT1NGaXJlZm94OmZ1bmN0aW9uKCl7cmV0dXJuISFmKCkudXNlckFnZW50Lm1hdGNoKCJGeGlPUyIpfSxpc0ZpcmVmb3g6ZnVuY3Rpb24oKXtyZXR1cm4hIWYoKS51c2VyQWdlbnQubWF0Y2goIkZpcmVmb3giKX0saXNTYWZhcmk6Yyxpc0VsZWN0cm9uOmZ1bmN0aW9uKCl7dmFyIHQ9ZigpLnVzZXJBZ2VudHx8IiIsZT13aW5kb3cucGFyZW50fHx7fSxuPWUucHJvY2VzcyYmZS52ZXJzaW9ucyYmZS52ZXJzaW9ucy5lbGVjdHJvbjtyZXR1cm4vXHNFbGVjdHJvblwvLy50ZXN0KHQpfHxufSxpc0lFOmZ1bmN0aW9uKCl7dmFyIHQ9ZigpLnVzZXJBZ2VudHx8IiI7cmV0dXJuIHQuaW5kZXhPZigiTVNJRSIpPjB8fHQuaW5kZXhPZigiVHJpZGVudCIpPjB9LGlzRWRnZTpmdW5jdGlvbigpe3JldHVybihmKCkudXNlckFnZW50fHwiIikuaW5kZXhPZigiRWRnZSIpPjB9LGlzTmF0aXZlTW9iaWxlOmZ1bmN0aW9uKCl7cmV0dXJuIGYoKS5pc05hdGl2ZU1vYmlsZX0saXNDaHJvbWU6ZnVuY3Rpb24oKXt2YXIgdD13aW5kb3cuY2hyb21lLGU9ZigpLnZlbmRvcixuPWYoKS51c2VyQWdlbnQuaW5kZXhPZigiT1BSIik+LTEscj1mKCkudXNlckFnZW50LmluZGV4T2YoIkVkZ2UiKT4tMTtyZXR1cm4hIWYoKS51c2VyQWdlbnQubWF0Y2goIkNyaU9TIil8fG51bGwhPXQmJiJHb29nbGUgSW5jLiI9PT1lJiYhMT09PW4mJiExPT09cn0saXNJT1M6ZCxpc0lPUzE1U2FmYXJpOmgsaXNBbmRyb2lkOmZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10JiYodD1mKCkudXNlckFnZW50KSx0JiZ0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiYW5kcm9pZCIpPi0xfSxpc01hY09TOmd9fSw2ODg5NzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHZvaWQgMCE9PXQuQW5kcm9pZEhvc3Q/dC5BbmRyb2lkSG9zdDp2b2lkIDAhPT10LmlPU0hvc3Q/dC5pT1NIb3N0OnZvaWQgMH1mdW5jdGlvbiBvKHQpe3JldHVybiB2b2lkIDAhPT10LkFuZHJvaWRIb3N0PyJhbmRyb2lkIjp2b2lkIDAhPT10LmlPU0hvc3Q/ImlvcyI6dm9pZCAwfW4uZChlLHtWXzpmdW5jdGlvbigpe3JldHVybiByfSx1RTpmdW5jdGlvbigpe3JldHVybiBvfX0pfSw2MTUwMzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtvbjpmdW5jdGlvbigpe3JldHVybiBnfSxhSjpmdW5jdGlvbigpe3JldHVybiBydH0sc1U6ZnVuY3Rpb24oKXtyZXR1cm4gbnR9LEJvOmZ1bmN0aW9uKCl7cmV0dXJuIFN9LHJtOmZ1bmN0aW9uKCl7cmV0dXJuIFJ9LFg0OmZ1bmN0aW9uKCl7cmV0dXJuIE59LHlXOmZ1bmN0aW9uKCl7cmV0dXJuIE19LHZrOmZ1bmN0aW9uKCl7cmV0dXJuIGZ0fSxQUzpmdW5jdGlvbigpe3JldHVybiBGfSxLVjpmdW5jdGlvbigpe3JldHVybiBpdH0sRnk6ZnVuY3Rpb24oKXtyZXR1cm4gR30sTG86ZnVuY3Rpb24oKXtyZXR1cm4geH0sbzg6ZnVuY3Rpb24oKXtyZXR1cm4gVn0sa0c6ZnVuY3Rpb24oKXtyZXR1cm4gUH0sS1c6ZnVuY3Rpb24oKXtyZXR1cm4gZHR9LGtOOmZ1bmN0aW9uKCl7cmV0dXJuIEh9LHRlOmZ1bmN0aW9uKCl7cmV0dXJuIHp9LCRMOmZ1bmN0aW9uKCl7cmV0dXJuIHV0fSxlQzpmdW5jdGlvbigpe3JldHVybiBCfSxOVTpmdW5jdGlvbigpe3JldHVybiBPfSxHbjpmdW5jdGlvbigpe3JldHVybiBRfSxiWTpmdW5jdGlvbigpe3JldHVybiBffSxJRjpmdW5jdGlvbigpe3JldHVybiB3fSxfSjpmdW5jdGlvbigpe3JldHVybiBldH0sS3U6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sUGM6ZnVuY3Rpb24oKXtyZXR1cm4gRX0sSTU6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sSEM6ZnVuY3Rpb24oKXtyZXR1cm4gc3R9LE5XOmZ1bmN0aW9uKCl7cmV0dXJuIEl9LEhkOmZ1bmN0aW9uKCl7cmV0dXJuIEt9LEhxOmZ1bmN0aW9uKCl7cmV0dXJuIFp9LHZKOmZ1bmN0aW9uKCl7cmV0dXJuIFV9LEoxOmZ1bmN0aW9uKCl7cmV0dXJuIEx9LFNZOmZ1bmN0aW9uKCl7cmV0dXJuIGt9LEhmOmZ1bmN0aW9uKCl7cmV0dXJuIFd9LFVtOmZ1bmN0aW9uKCl7cmV0dXJuIHF9LG5mOmZ1bmN0aW9uKCl7cmV0dXJuIFh9LFhsOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LFFuOmZ1bmN0aW9uKCl7cmV0dXJuIGx0fSxvRjpmdW5jdGlvbigpe3JldHVybiBhdH19KTt2YXIgcj1uKDExOTUpLG89big2NjgzOCksaT1uKDkyNDE3KSxhPW4oMzMwNDgpLHU9big4NDM4Mikscz1uKDEzNzA5KSxjPW4oMTgyOTkpLGw9bigyMjk3OSksZj1uKDExMDgpO2Z1bmN0aW9uIGQodCl7aWYodCYmMCE9PXQudHJpbSgpLmxlbmd0aClyZXR1cm4gdH12YXIgcD1uKDk3MTYwKSxoPW4ubihwKTtmdW5jdGlvbiB2KHQpe2lmKHQmJmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiExO3ZhciBlPShuZXcgT3B0aW9uKS5zdHlsZTtyZXR1cm4gZS5jb2xvcj10LCEhZS5jb2xvcn0odCkpe3ZhciBlPWgoKSh7cHJpbWFyeUNvbG9yOnR9KTtyZXR1cm4gbnVsbD09ZT92b2lkIDA6ZS5oZWFkZXJfdGl0bGVfY29sb3J9fWZ1bmN0aW9uIHkoKXtyZXR1cm4geT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LHkuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBnPSJ2aWV3ZWQtdG9vbHRpcHMiO2Z1bmN0aW9uIG0odCl7dmFyIGU9dC5ibG9ja3Msbj10LmNyZWF0ZWRBdCxvPXQuY2xpZW50SWQsaT10LmVtYWlsLGE9dC5jb21wb3NlclN1Z2dlc3Rpb25zLHU9dm9pZCAwPT09YT9udWxsOmEscz10LnNlbGZTZXJ2ZVN1Z2dlc3Rpb25zTWF0Y2gsYz12b2lkIDAhPT1zJiZzLGw9dC5ib3RJbnRybyxmPXZvaWQgMD09PWw/bnVsbDpsLGQ9dC5yZXNvbHV0aW9uQm90QmVoYXZpb3JWZXJzaW9uSWQscD12b2lkIDA9PT1kP251bGw6ZCxoPXQuc3RhcnRlZEZyb21TZWFyY2hCcm93c2Usdj12b2lkIDAhPT1oJiZoLGc9dC5tZXNzZW5nZXJPcGVuUmVxdWVzdElkLG09dm9pZCAwPT09Zz9udWxsOmcsYj10LmN1c3RvbUF0dHJpYnV0ZXMsdz12b2lkIDA9PT1iP251bGw6YixfPXtjcmVhdGVkX2F0Om4sc2VsZl9zZXJ2ZV9zdWdnZXN0aW9uc19tYXRjaDpjfTtvJiYoXy5jbGllbnRfYXNzaWduZWRfdXVpZD1vKSxpJiYoXy5lbWFpbD1pKSx1JiYoXy5jb21wb3Nlcl9zdWdnZXN0aW9ucz1KU09OLnN0cmluZ2lmeSh1LnN1Z2dlc3Rpb25zKSksZiYmKF8uYm90X2ludHJvPWYpLHAmJihfLnJlc29sdXRpb25fYm90X2JlaGF2aW9yX3ZlcnNpb25faWQ9cCksdiYmKF8uc2VhcmNoX2Jyb3dzZT0hMCksbnVsbCE9dSYmdS5zbmFwc2hvdElkJiYoXy5zbmFwc2hvdF9pZD11LnNuYXBzaG90SWQsXy5jb21wb3Nlcl9kaXNhYmxlZD11LmNvbXBvc2VyRGlzYWJsZWQpLG0mJihfLm1lc3Nlbmdlcl9vcGVuX3JlcXVlc3RfaWQ9bSk7dmFyIFM9ZnVuY3Rpb24odCl7dmFyIGU9ITA9PT10LnJ0fHwicGFyYWdyYXBoIiE9PXQudHlwZSxuPXkoe30sdCk7cmV0dXJuIGRlbGV0ZSBuLnJ0LGV8fChuLnRleHQ9KDAsci54KShuLnRleHQpKSxufSx4PWVbMF07aWYoInBhcmFncmFwaCI9PT14LnR5cGV8fCJoZWFkaW5nIj09PXgudHlwZXx8InN1YmhlYWRpbmciPT09eC50eXBlfHwiY29kZSI9PT14LnR5cGV8fCJvcmRlcmVkTGlzdCI9PT14LnR5cGV8fCJ1bm9yZGVyZWRMaXN0Ij09PXgudHlwZSlfLmJsb2Nrcz1KU09OLnN0cmluZ2lmeShlLm1hcChTKSk7ZWxzZSBpZigiaW1hZ2UiPT09eC50eXBlKXt2YXIgRT1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuInBhcmFncmFwaCI9PT10LnR5cGU/Uyh0KTp0fSkpO18uYmxvY2tzPUpTT04uc3RyaW5naWZ5KEUpfWVsc2UgaWYoImF0dGFjaG1lbnRMaXN0Ij09PXgudHlwZSl7dmFyIEM9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiJwYXJhZ3JhcGgiPT09dC50eXBlP1ModCk6dH0pKTtfLmJsb2Nrcz1KU09OLnN0cmluZ2lmeShDKX1yZXR1cm4gdyYmKF8uY3VzdG9tX2F0dHJpYnV0ZXM9SlNPTi5zdHJpbmdpZnkodykpLF99ZnVuY3Rpb24gYih0LGUsbil7cmV0dXJue2NsaWVudF9hc3NpZ25lZF91dWlkOm4sY29udmVyc2F0aW9uX3BhcnQ6SlNPTi5zdHJpbmdpZnkoe2lkOnQscmVwbHlfb3B0aW9uOmV9KX19ZnVuY3Rpb24gdyh0KXtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBfKHQpfSkpfWZ1bmN0aW9uIF8odCl7dmFyIGUsbixyO3JldHVybntpZDp0LmlkLHRpdGxlOnQudGl0bGUsZGVzY3JpcHRpb246dC5kZXNjcmlwdGlvbixwdWJsaXNoZWRBdDp0LnB1Ymxpc2hlZF9hdD8oMCxhLmtVKSh0LnB1Ymxpc2hlZF9hdCk6dm9pZCAwLGNvdmVySW1hZ2VVcmw6dC5jb3Zlcl9pbWFnZV91cmwsYXV0aG9yOntuYW1lOm51bGw9PShlPXQuYXV0aG9yKT92b2lkIDA6ZS5uYW1lLGZpcnN0TmFtZTpudWxsPT0obj10LmF1dGhvcik/dm9pZCAwOm4uZmlyc3RfbmFtZSxhdmF0YXI6e3NxdWFyZTEyODpudWxsPT0ocj10LmF1dGhvcik/dm9pZCAwOnIuYXZhdGFyfX0sYmxvY2tzOnQuYmxvY2tzfHxudWxsLGxhYmVsczp0LmxhYmVsc3x8bnVsbCxyZWFjdGlvbnNSZXBseTp0LnJlYWN0aW9uc19yZXBseT9zdCh0LnJlYWN0aW9uc19yZXBseSk6dm9pZCAwfX1mdW5jdGlvbiBTKHQpe3JldHVybntpZDp0LmlkLHRpdGxlOnQudGl0bGUsYmxvY2tzOnQuYmxvY2tzfHxudWxsLHJlYWN0aW9uc1JlcGx5OnQucmVhY3Rpb25zX3JlcGx5P3N0KHQucmVhY3Rpb25zX3JlcGx5KTp2b2lkIDB9fWZ1bmN0aW9uIHgodCl7cmV0dXJuIHQ/e2Jhbm5lcl92aWV3X2lkOnR9Ont9fWZ1bmN0aW9uIEUodCl7cmV0dXJuIHQ/e3Byb2dyZXNzX2lkOnR9Ont9fWZ1bmN0aW9uIEModCxlKXt2YXIgbj1lLnR5cGUscj1lLnBheWxvYWQsbz12b2lkIDA9PT1yP3t9OnIsaT1vLmNvbXBvc2VySGFzQ29udGVudCxhPW8uZXhlY3V0aW9uVGltZTtyZXR1cm57dHlwZTpuLHBheWxvYWQ6SlNPTi5zdHJpbmdpZnkoe2NvbXBvc2VyX2hhc19jb250ZW50OmksZXhlY3V0aW9uX3RpbWU6YX0pLG1ldGE6SlNPTi5zdHJpbmdpZnkoe2NvbnZlcnNhdGlvbl9pZDp0fSl9fWZ1bmN0aW9uIE8odCl7cmV0dXJuIEEodCl8fCF0Lmxhc3RfcGFydGljaXBhdGluZ19hZG1pbj92b2lkIDA6bnQodC5sYXN0X3BhcnRpY2lwYXRpbmdfYWRtaW4pfWZ1bmN0aW9uIEEodCl7dmFyIGU7cmV0dXJuIShudWxsPT0oZT10LmNvbnZlcnNhdGlvbl9tZXNzYWdlKXx8IWUudGVhbV9hdXRob3IpJiYwPT09KHQuY29udmVyc2F0aW9uX3BhcnRzP3QuY29udmVyc2F0aW9uX3BhcnRzLmNvbnZlcnNhdGlvbl9wYXJ0c3x8dC5jb252ZXJzYXRpb25fcGFydHM6W10pLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQuYXV0aG9yLmlzX2FkbWluJiYhdC5hdXRob3IuaXNfYm90fSkpLmxlbmd0aH1mdW5jdGlvbiBJKHQpe3JldHVybiB0P3tjYW5Kb2luOnQuY2FuX2pvaW4saW5mbzp0LmluZm99Om51bGx9ZnVuY3Rpb24gayh0KXtyZXR1cm4gdC50aWNrZXRzP3t0aWNrZXRzOnQudGlja2V0cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBMKHQpfSkpLG5leHRQYWdlOnQubmV4dF9wYWdlfTp7dGlja2V0czpbXSxuZXh0UGFnZTpudWxsfX1mdW5jdGlvbiBMKHQpe3ZhciBlLG49ZnVuY3Rpb24odCl7cmV0dXJuIHQuYXR0cmlidXRlcy5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7dmFyIG47cmV0dXJuIHkoe30sdCwoKG49e30pW2UubmFtZV09eSh7fSxlLHt2YWx1ZTpUKGUudHlwZSxlLnZhbHVlKX0pLG4pKX0pLHt9KX0odCkscj17aWQ6dC5pZCxwdWJsaWNUaWNrZXRJZDp0LnB1YmxpY190aWNrZXRfaWR8fHQudGlja2V0X2lkLGNvbnZlcnNhdGlvbklkOnQuY29udmVyc2F0aW9uX2lkLG5hbWU6dC50aXRsZSxhdHRyaWJ1dGVzOm4sc3RhdHVzOnQuY3VycmVudF9zdGF0dXM/dC5jdXJyZW50X3N0YXR1cy50eXBlOm51bGwsc3RhdHVzTGFiZWw6bnVsbD09KGU9dC5jdXJyZW50X3N0YXR1cyk/dm9pZCAwOmUudGl0bGUsaGlzdG9yeTpqKHQpLGVtb2ppOnQuZW1vamksYXNzaWduZWU6bnQodC5hc3NpZ25lZSksdGlja2V0VHlwZUlkOnQudGlja2V0X3R5cGVfaWQsdGlja2V0VHlwZU5hbWU6dC50aWNrZXRfdHlwZV9uYW1lLHN0YXR1c1VwZGF0ZWRBdDooMCxhLmtVKShwYXJzZUludCh0LmxhdGVzdF9zdGF0dXNfdXBkYXRlZF9hdCkpLHJlYWQ6dC5yZWFkLHJlYWRBdDp0LnJlYWRfYXQsaW5saW5lU3RhdHVzSGVhZGVyVGV4dDp0LmlubGluZV9zdGF0dXNfaGVhZGVyX3RleHR9O3JldHVybiB0LmNvbnZlcnNhdGlvbl9idXR0b24mJihyLmNvbnZlcnNhdGlvbkJ1dHRvbj1mdW5jdGlvbih0KXt2YXIgZSxuLHI7aWYoIXQuY29udmVyc2F0aW9uX2J1dHRvbilyZXR1cm47cmV0dXJue3RleHQ6dC5jb252ZXJzYXRpb25fYnV0dG9uLnRleHQsaWNvbjp0LmNvbnZlcnNhdGlvbl9idXR0b24uaWNvbixjb250aW51ZUNvbnZlcnNhdGlvbjpudWxsPT0oZT1udWxsPT0obj10LmNvbnZlcnNhdGlvbl9idXR0b24pP3ZvaWQgMDpuLmNvbnRpbnVlX2NvbnZlcnNhdGlvbil8fGUsY29udmVyc2F0aW9uQ2hhbm5lbDpudWxsPT0ocj10LmNvbnZlcnNhdGlvbl9idXR0b24pP3ZvaWQgMDpyLmNvbnZlcnNhdGlvbl9jaGFubmVsfX0odCkpLHQuc2hhcmluZz9yLnNoYXJpbmc9SSh0LnNoYXJpbmcpOnIuc2hhcmluZz1udWxsLHJ9ZnVuY3Rpb24gVCh0LGUpe3JldHVybiJmaWxlcyI9PT10P2UubWFwKHMuSyk6ZX1mdW5jdGlvbiBqKHQpe3ZhciBlPXQuc3RhdHVzX2hpc3Rvcnl8fHQuc3RhdHVzX2xpc3Q7cmV0dXJuIHQuY3VycmVudF9zdGF0dXMmJmUubGVuZ3RoP2UubWFwKChmdW5jdGlvbih0KXtyZXR1cm57cmVsYXRpdmVUaW1lOigwLGMuaXcpKCgwLGEua1UpKHBhcnNlSW50KHQuY3JlYXRlZF9kYXRlKSkpLGlzQ3VycmVudDp0LmlzX2N1cnJlbnRfc3RhdHVzLHRpdGxlOnQudGl0bGUsdHlwZTp0LnR5cGUsZGV0YWlsOnQuc3RhdHVzX2RldGFpbH19KSk6W119ZnVuY3Rpb24gUCh0LGUpe2lmKHZvaWQgMD09PWUmJihlPXt9KSx0KXJldHVybiBlLm92ZXJyaWRlQ29tcG9zZXJWaXNpYmlsaXR5JiYodC52aXNpYmlsaXR5PWUub3ZlcnJpZGVDb21wb3NlclZpc2liaWxpdHkpLHt2aXNpYmlsaXR5OnQudmlzaWJpbGl0eSx2aXNpYmxlOiJoaWRkZW4iIT09dC52aXNpYmlsaXR5LGRpc2FibGVkOiJ2aXNpYmxlX2FuZF9kaXNhYmxlZCI9PT10LnZpc2liaWxpdHl8fCJoaWRkZW4iPT09dC52aXNpYmlsaXR5LGN1c3RvbUJvdEFjdGl2ZTp0LmN1c3RvbV9ib3RfYWN0aXZlLHdvcmtmbG93QWN0aXZlOnQud29ya2Zsb3dfYWN0aXZlLHNlbGZTZXJ2ZVN1Z2dlc3Rpb25zRW5hYmxlZDp0LnNlbGZfc2VydmVfc3VnZ2VzdGlvbnNfZW5hYmxlZCx2ZXJzaW9uOnQudmVyc2lvbixwbGFjZWhvbGRlcjp0LnBsYWNlaG9sZGVyfX1mdW5jdGlvbiBOKHQpe3JldHVybntpZDp0LmlkLG5hbWU6dC5uYW1lLGRlc2NyaXB0aW9uOnQuZGVzY3JpcHRpb24sc2VjdGlvbnM6dC5zZWN0aW9ucyxhcnRpY2xlQ291bnQ6dC5hcnRpY2xlX2NvdW50LGFydGljbGVzOnQuYXJ0aWNsZXMsY2hpbGRyZW46dC5jaGlsZHJlbi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFydGljbGVzLmxlbmd0aD4wfHx0LmNoaWxkcmVuLmxlbmd0aD4wfSkpLm1hcChOKSxhdXRob3JzOnQuYXV0aG9yc319ZnVuY3Rpb24gTSh0KXtyZXR1cm57YXJ0aWNsZXM6dC5hcnRpY2xlcy5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlLG4scixvLGk9e2lkOnQuaWQsdXJsOnQudXJsfTtpZihudWxsIT0oZT10LmhpZ2hsaWdodCkmJmUudGl0bGUpaS50aXRsZT1udWxsPT0obz10LmhpZ2hsaWdodCl8fG51bGw9PShvPW8udGl0bGUpP3ZvaWQgMDpvWzBdO2Vsc2UgaWYobnVsbCE9KG49dC5oaWdobGlnaHQpJiZuLnN1bW1hcnkpe3ZhciBhO2kudGl0bGU9dC50aXRsZSxpLnN1bW1hcnk9KG51bGw9PShhPXQuaGlnaGxpZ2h0KXx8bnVsbD09KGE9YS5zdW1tYXJ5KT92b2lkIDA6YVswXSl8fHQuc3VtbWFyeX1lbHNlIGlmKG51bGwhPShyPXQuaGlnaGxpZ2h0KSYmci5ib2R5KXt2YXIgdTtpLnRpdGxlPXQudGl0bGUsaS5zdW1tYXJ5PShudWxsPT0odT10LmhpZ2hsaWdodCl8fG51bGw9PSh1PXUuYm9keSk/dm9pZCAwOnVbMF0pfHx0LnN1bW1hcnl9ZWxzZSBpLnRpdGxlPXQudGl0bGU7cmV0dXJuIGl9KSl9fWZ1bmN0aW9uIFIodCl7cmV0dXJue2F2YWlsYWJsZV9sb2NhbGVzOnQuYXZhaWxhYmxlX2xvY2FsZXMsY29udGVudElkOnQuY29udGVudF9pZCxkZXNjcmlwdGlvbjp0LmRlc2NyaXB0aW9uLGlkOnQuaWQscmVhY3Rpb25zUmVwbHk6dC5yZWFjdGlvbnNfcmVwbHk/c3QodC5yZWFjdGlvbnNfcmVwbHkpOnZvaWQgMCx0aXRsZTp0LnRpdGxlLHVwZGF0ZWRBdDp0LnVwZGF0ZWRfYXQsdXJsOnQudXJsLGFsZXhhbmRyaWFEYXRhOnQuYWxleGFuZHJpYV9kYXRhLHB1YmxpY1VybDp0LnB1YmxpY191cmwsaGVscENlbnRlcklkOnQuaGVscF9jZW50ZXJfaWQscmVsYXRlZENvbnZlcnNhdGlvbklkOnQucmVsYXRlZF9jb252ZXJzYXRpb25faWQ/dC5yZWxhdGVkX2NvbnZlcnNhdGlvbl9pZDpudWxsfX1mdW5jdGlvbiBVKHQpe3JldHVybiBBKHQpP3thZG1pbnM6KHQuY29udmVyc2F0aW9uX21lc3NhZ2UudGVhbV9hdXRob3IubGFzdF9hY3RpdmVfYWRtaW5zfHxbXSkubWFwKG50KSxuYW1lOnQuY29udmVyc2F0aW9uX21lc3NhZ2UudGVhbV9hdXRob3IubmFtZX06dm9pZCAwfWZ1bmN0aW9uIHoodCl7cmV0dXJuIHQ/e2NvbnRhaW5lcjp0LmNvbnRhaW5lcixib3JkZXJDb2xvcnM6dC5ib3JkZXJfY29sb3JzfTpudWxsfWZ1bmN0aW9uIEgodCl7dmFyIGU7cmV0dXJuIHQ/e3RpdGxlOnQudGl0bGUsc3VmZml4OnQuc3VmZml4LGF2YXRhcnM6bnVsbD09KGU9dC5hdmF0YXJzKT92b2lkIDA6ZS5tYXAoaXQpLHRpbWVzdGFtcDp0LnRpbWVzdGFtcH06bnVsbH1mdW5jdGlvbiBGKHQpe3JldHVybnthZG1pbnM6dC5hdXRob3JzP3QuYXV0aG9ycy5tYXAoRCk6W10sYXZhdGFyOml0KHQuYXZhdGFyKSxmaXJzdE5hbWU6Qih0LmZpcnN0X25hbWUpLGlkOnQuaWQsaW5pdGlhbDp0LmluaXRpYWwsaXNBZG1pbjp0LmlzX2FkbWluLGlzQm90OnQuaXNfYm90LGlzU2VsZjp0LmlzX3NlbGYsdHlwZTp0LnR5cGUudG9Mb3dlckNhc2UoKX19ZnVuY3Rpb24gRCh0KXtyZXR1cm57YXZhdGFyOml0KHQuYXZhdGFyKSxmaXJzdE5hbWU6Qih0LmZpcnN0X25hbWUpfX1mdW5jdGlvbiBCKHQpe3JldHVybiB0fHwiIn1mdW5jdGlvbiBWKHQpe3JldHVybiB2b2lkIDA9PT10JiYodD1bXSksdC5tYXAoRyl9ZnVuY3Rpb24gRyh0KXtyZXR1cm4geSh7fSx0LHtmcm9tOnQuZnJvbT9udCh0LmZyb20pOm51bGwscmVhY3Rpb25fc2V0Oih0LnJlYWN0aW9uX3NldHx8W10pLm1hcChjdCl9KX1mdW5jdGlvbiBxKHQpe3JldHVybiB0P3QubWFwKFcpOltdfWZ1bmN0aW9uIFcodCl7dmFyIGU9SlNPTi5wYXJzZShsLkwuZ2V0KGcpKXx8W107cmV0dXJue2lkOnQuaWQsZGlzcGxheUJlaGF2aW9yOnQuZGlzcGxheV9iZWhhdmlvcnx8MCx0b29sdGlwczp0LnRvb2x0aXBzLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geSh7fSx0LHtpc09wZW46ITEsaXNNYXRjaGVkOigwLG8uSSkodC51cmxfcHJlZGljYXRlcyksaXNWaWV3ZWQ6LTEhPT1uLmluZGV4T2YodC5pZCksdG9vbHRpcEdyb3VwSWQ6ZS5pZCxjdXN0b21pemF0aW9uT3B0aW9uczplLmN1c3RvbWl6YXRpb25fb3B0aW9uc3x8Zi5ufSl9KG4sdCxlKX0pKS5tYXAocy5LKX19ZnVuY3Rpb24gSyh0KXtpZih0KXt2YXIgZT10LnNlbmRlcj9udCh0LnNlbmRlcik6bnVsbDtyZXR1cm57aWQ6dC5pZCxydWxlc2V0SWQ6dC5ydWxlc2V0X2lkLGZvcm1hdDp0LmZvcm1hdCxzZW5kZXI6ZSxzdXJ2ZXlQcm9ncmVzc0lkOnQuc3VydmV5X3Byb2dyZXNzX2lkLHN0ZXBzOnQuc3RlcHMubWFwKFopLHN0ZXBDb3VudDp0LnN0ZXBfY291bnQsYWN0aXZlU3RlcElkOnQuc3RlcHNbMF0uaWQsZGlzbWlzc2VkOiExLGhpZGRlbjohMSxjb21wbGV0ZWQ6ITEsY3VzdG9taXphdGlvbk9wdGlvbnM6eSh7fSwoMCxzLkspKHQuY3VzdG9taXphdGlvbl9vcHRpb25zKSksZGlzbWlzc2libGU6dC5kaXNtaXNzaWJsZSxzaG93UHJvZ3Jlc3NCYXI6dC5zaG93X3Byb2dyZXNzX2Jhcn19fWZ1bmN0aW9uIFoodCl7cmV0dXJue2lkOnQuaWQsYWN0aW9uczp0LmFjdGlvbnMubWFwKFkpLGJsb2Nrczp0LmJsb2NrcyxzdGVwVHlwZTp0LnN0ZXBfdHlwZSxxdWVzdGlvbnM6dC5xdWVzdGlvbnMubWFwKEopLGN1c3RvbUJ1dHRvblRleHQ6dC5jdXN0b21fYnV0dG9uX3RleHR9fWZ1bmN0aW9uIEoodCl7cmV0dXJue2lkOnQuaWQsYmxvY2tzOnQuYmxvY2tzLGRhdGE6KDAscy5LKSh0LmRhdGEpLHF1ZXN0aW9uVHlwZTp0LnF1ZXN0aW9uX3R5cGUscmVzcG9uc2U6dC5yZXNwb25zZXx8dm9pZCAwfX1mdW5jdGlvbiBZKHQpe3JldHVybntpZDp0LmlkLGFjdGlvblR5cGU6dC5hY3Rpb25fdHlwZSx3ZWJVcmw6dC53ZWJfdXJsLGFjdGlvblRpdGxlOnQuYWN0aW9uX3RpdGxlfX1mdW5jdGlvbiBRKHQpe3JldHVybntpZDp0LmlkLGV2ZW50OnQuZXZlbnQscHJlQWN0aW9uOnQubWVzc2VuZ2VyX3ByZV9hY3Rpb24sc2VsZWN0b3I6dC5zZWxlY3Rvcn19ZnVuY3Rpb24gWCh0KXtyZXR1cm4gdD8oKDAsdS5rNykoIlRvdXIgcmVjZWl2ZWQiLHQpLHtpZDp0LmlkLnRvU3RyaW5nKCksYWN0aXZlU3RlcElkOnQuYWN0aXZlX3N0ZXBfaWQudG9TdHJpbmcoKSxhdXRob3I6dC5hdXRob3I/Rih0LmF1dGhvcik6bnVsbCxzdGVwczooZT10LnN0ZXBzLCgwLGkuTSkoZSxbIm9yZGVyIl0sWyJhc2MiXSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJue2lkOihlPXQpLmlkLnRvU3RyaW5nKCksYmxvY2tzOmUuYmxvY2tzLG9yZGVyOmUub3JkZXIscHJvZ3Jlc3Npb25CZWhhdmlvcjp0dChlLnByb2dyZXNzaW9uX2JlaGF2aW9yKSxwbGFjZW1lbnQ6ZS5wbGFjZW1lbnQscG9pbnRlclNpemU6ZS5wb2ludGVyX3NpemUsc2VsZWN0b3I6ZS5zZWxlY3RvcixzZWxlY3RvcnM6ZS5zZWxlY3RvcnMsdXJsOmUudXJsLGJ1dHRvblRleHQ6ZS5idXR0b25fdGV4dCx1cmxCdXR0b25WYWx1ZTplLnVybF9idXR0b25fdmFsdWV9O3ZhciBlfSkpLHRpdGxlOnQudGl0bGUsdXJsOnQudXJsLHJlc3RhcnRhYmxlOnQucmVzdGFydGFibGUsc25vb3plYWJsZTp0LnNub296ZWFibGUsZW5kVG91ckFuaW1hdGlvbjp0LmVuZF90b3VyX2FuaW1hdGlvbixwcm9ncmVzc1N0YXJ0VXJsOnQuc3RhcnRfdXJsLHByb2dyZXNzSWQ6dC5wcm9ncmVzc19pZCxidXR0b25Db2xvcjp0LmJ1dHRvbl9jb2xvcixiYWNrZ3JvdW5kQ29sb3I6dC5iYWNrZ3JvdW5kX2NvbG9yLHRvdXJUZXh0Q29sb3JPdmVycmlkZTp2KHQuYmFja2dyb3VuZF9jb2xvciksY3VzdG9tSGVhZGVyVGV4dDp0LmN1c3RvbV9oZWFkZXJfdGV4dCxjdXN0b21Gb250OnQuY3VzdG9tX2ZvbnQsc25vb3plQnV0dG9uVGV4dDp0LnNub296ZV9idXR0b25fdGV4dCxyZXN0YXJ0QnV0dG9uVGV4dDp0LnJlc3RhcnRfYnV0dG9uX3RleHR9KTp7fTt2YXIgZX12YXIgJD1bIm1hbnVhbCIsImNsaWNrIiwidHlwZSIsImhvdmVyIl07ZnVuY3Rpb24gdHQodCl7cmV0dXJuICRbdF19ZnVuY3Rpb24gZXQodCl7dmFyIGU7cmV0dXJue2lkOnQuaWQsYmxvY2tzOnQuYmxvY2tzLGRpc3BsYXlEdXJhdGlvbjp0LmRpc3BsYXlfZHVyYXRpb24sZGlzbWlzc2libGU6bnVsbCE9KGU9dC5kaXNtaXNzaWJsZSkmJmV9fWZ1bmN0aW9uIG50KHQpe3JldHVybiB0P3thdmF0YXI6aXQodC5hdmF0YXIpLGZpcnN0TmFtZTpCKHQuZmlyc3RfbmFtZSksaW5pdGlhbDp0LmluaXRpYWx8fHQuYXZhdGFyLmluaXRpYWxzLGludHJvOmQodC5pbnRybyksaXNBY3RpdmU6dC5pc19hY3RpdmUsaXNBZG1pbjohMCxpc0JvdDp0LmlzX2JvdCxpc1NlbGY6ITEsam9iVGl0bGU6ZCh0LmpvYl90aXRsZSksbGFzdEFjdGl2ZUF0OigwLGEua1UpKHQubGFzdF9hY3RpdmVfYXQpLGxvY2F0aW9uOnQubG9jYXRpb24/b3QodC5sb2NhdGlvbik6dm9pZCAwLGN1c3RvbWl6ZWRJZGVudGl0eTp0LmN1c3RvbWl6ZWRfaWRlbnRpdHksaGFzQUk6dC5oYXNfYWl9Om51bGx9ZnVuY3Rpb24gcnQodCl7aWYodClyZXR1cm57cGFydGljaXBhbnQ6bnQodC5wYXJ0aWNpcGFudCksaGFzQUk6dC5oYXNfYWksdXNlQm90VVg6dC51c2VfYm90X3V4LHVzZUN1c3RvbWl6ZWRJZGVudGl0eTp0Lmhhc19jdXN0b21pemVkX2lkZW50aXR5LHN0cmVhbWluZ1BhcnQ6dC5zdHJlYW1pbmdfcGFydD97dXhTdHlsZTp6KHQuc3RyZWFtaW5nX3BhcnQudXhfc3R5bGUpLG1ldGFkYXRhOkgodC5zdHJlYW1pbmdfcGFydC5tZXRhZGF0YSl9Om51bGx9fWZ1bmN0aW9uIG90KHQpe3JldHVybntjaXR5TmFtZTp0LmNpdHlfbmFtZSxjb3VudHJ5Q29kZTp0LmNvdW50cnlfY29kZSxjb3VudHJ5TmFtZTp0LmNvdW50cnlfbmFtZSx0aW1lem9uZU9mZnNldDp0LnRpbWV6b25lX29mZnNldH19ZnVuY3Rpb24gaXQodCl7dmFyIGUsbjtyZXR1cm4gdC5zcXVhcmVfMTI4P249dC5zcXVhcmVfMTI4OnQuaW1hZ2VfdXJscyYmdC5pbWFnZV91cmxzLnNxdWFyZV8xMjgmJihuPXQuaW1hZ2VfdXJscy5zcXVhcmVfMTI4KSx7c3F1YXJlMTI4Om4sc2hhcGU6dC5zaGFwZSxsYWJlbDp0LmxhYmVsLGluaXRpYWxzOnQuaW5pdGlhbHMsZGFya1NxdWFyZTEyODpudWxsPT0oZT10LmltYWdlX2RhcmtfdXJscyk/dm9pZCAwOmUuc3F1YXJlXzEyOH19ZnVuY3Rpb24gYXQodCl7cmV0dXJuIHR9ZnVuY3Rpb24gdXQodCxlKXtyZXR1cm4icGFydGljaXBhbnRfYWRkZWQiIT09ZSYmInBhcnRpY2lwYW50X3JlbW92ZWQiIT09ZSYmInRlYW1tYXRlX2pvaW5lZCIhPT1lfHwodC5wYXJ0aWNpcGFudC5hdmF0YXI9aXQodC5wYXJ0aWNpcGFudC5hdmF0YXIpKSx0fHx7fX1mdW5jdGlvbiBzdCh0KXtyZXR1cm57cmVhY3Rpb25JbmRleDp0LnJlYWN0aW9uX2luZGV4LHJlYWN0aW9uU2V0Oih0LnJlYWN0aW9uX3NldHx8W10pLm1hcChjdCl9fWZ1bmN0aW9uIGN0KHQpe3JldHVybntlbW9qaTp0LnVuaWNvZGVfZW1vdGljb24saW5kZXg6dC5pbmRleH19ZnVuY3Rpb24gbHQodCl7dmFyIGU7cmV0dXJue3Nob3dMYXN0UGFydE1ldGE6bnVsbD09KGU9bnVsbD09dD92b2lkIDA6dC5zaG93X2xhc3RfcGFydF9tZXRhKXx8ZX19ZnVuY3Rpb24gZnQodCl7cmV0dXJue2NvbnZlcnNhdGlvbk1lZGlhRW5hYmxlZDpudWxsPT10P3ZvaWQgMDp0LmNvbnZlcnNhdGlvbl9tZWRpYV9lbmFibGVkLGNvbnZlcnNhdGlvbkZpbGVzRW5hYmxlZDpudWxsPT10P3ZvaWQgMDp0LmNvbnZlcnNhdGlvbl9maWxlc19lbmFibGVkLGNvbnZlcnNhdGlvbkdpZnNFbmFibGVkOm51bGw9PXQ/dm9pZCAwOnQuY29udmVyc2F0aW9uX2dpZnNfZW5hYmxlZCxjb252ZXJzYXRpb25VcGxvYWRFeHRlbnNpb25zOm51bGw9PXQ/dm9pZCAwOnQuY29udmVyc2F0aW9uX3VwbG9hZF9leHRlbnNpb25zLGNvbnZlcnNhdGlvblZvaWNlTm90ZXNFbmFibGVkOm51bGw9PXQ/dm9pZCAwOnQuY29udmVyc2F0aW9uX3ZvaWNlX25vdGVzX2VuYWJsZWR9fWZ1bmN0aW9uIGR0KHQpe3JldHVybiB0P3koe30sdCx7aWNvbjp7bWVyZ2VkX2ludG9fY29udmVyc2F0aW9uOiJOZXdDb252ZXJzYXRpb24ifVt0LnJlYXNvbl19KTpudWxsfX0sMzgyNTM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7cjA6ZnVuY3Rpb24oKXtyZXR1cm4gZ3R9LFpTOmZ1bmN0aW9uKCl7cmV0dXJuIHNlfSx3ajpmdW5jdGlvbigpe3JldHVybiBOdH0seXM6ZnVuY3Rpb24oKXtyZXR1cm4gTHR9LGozOmZ1bmN0aW9uKCl7cmV0dXJuIFR0fSxIcTpmdW5jdGlvbigpe3JldHVybiBDLkhxfSxPcTpmdW5jdGlvbigpe3JldHVybiBFdH0sQXk6ZnVuY3Rpb24oKXtyZXR1cm4gcGV9LHFWOmZ1bmN0aW9uKCl7cmV0dXJuIHJlfSxvTzpmdW5jdGlvbigpe3JldHVybiBTdH0sWUc6ZnVuY3Rpb24oKXtyZXR1cm4gQ3R9LHRIOmZ1bmN0aW9uKCl7cmV0dXJuIHRlfSxKNTpmdW5jdGlvbigpe3JldHVybiBlZX0sVzk6ZnVuY3Rpb24oKXtyZXR1cm4gbXR9LFo1OmZ1bmN0aW9uKCl7cmV0dXJuIGNlfSxWWTpmdW5jdGlvbigpe3JldHVybiBidH0sWSQ6ZnVuY3Rpb24oKXtyZXR1cm4gZmV9LElHOmZ1bmN0aW9uKCl7cmV0dXJuIGxlfSxLczpmdW5jdGlvbigpe3JldHVybiB3dH0sbGY6ZnVuY3Rpb24oKXtyZXR1cm4gRnR9fSk7dmFyIHI9big0MDIzOCksbz1uKDM4Mjg1KSxpPW4oNDE4NDQpLGE9big2NjY0KSx1PW4oNDQyOTcpLHM9big2NjgzOCksYz1uKDYwNzcxKSxsPW4oMzMwNDgpLGY9big3NzIzNCksZD1uKDYwMzQ1KSxwPW4oODQzODIpLGg9big2ODg5Nyksdj1uKDEzNzA5KSx5PW4oNjk3NDQpLGc9ZnVuY3Rpb24odCl7aWYoIXR8fCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gbnVsbDt2YXIgZT10Lm1hdGNoKC9cLyhbXjtcc10rKS8pO3JldHVybiJhdWRpby9tcDQiPT09dD8iLm00YSI6ZSYmZS5sZW5ndGg+PTI/Ii4iK2VbMV06bnVsbH0sbT1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPSgwLHYuSykodCk7cmV0dXJuIGUucHVibGlzaGVkQXQmJihlLnB1Ymxpc2hlZEF0PW5ldyBEYXRlKGUucHVibGlzaGVkQXQpKSxlLnJlY2VpdmVkQXQmJihlLnJlY2VpdmVkQXQ9bmV3IERhdGUoZS5yZWNlaXZlZEF0KSksZS5sYXRlc3RJbnRlcmFjdGlvbkF0JiYoZS5sYXRlc3RJbnRlcmFjdGlvbkF0PW5ldyBEYXRlKGUubGF0ZXN0SW50ZXJhY3Rpb25BdCkpLGV9KSl9O2Z1bmN0aW9uIGIodCl7cmV0dXJuIGI9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LGIodCl9ZnVuY3Rpb24gdygpe3c9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixzPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Moe30sIiIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGwodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBnP2U6ZyxhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IGoocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpJKHQsbix1KX0pLGF9ZnVuY3Rpb24gZih0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1sO3ZhciBkPSJzdXNwZW5kZWRTdGFydCIscD0ic3VzcGVuZGVkWWllbGQiLGg9ImV4ZWN1dGluZyIsdj0iY29tcGxldGVkIix5PXt9O2Z1bmN0aW9uIGcoKXt9ZnVuY3Rpb24gbSgpe31mdW5jdGlvbiBfKCl7fXZhciBTPXt9O2MoUyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciB4PU9iamVjdC5nZXRQcm90b3R5cGVPZixFPXgmJngoeChQKFtdKSkpO0UmJkUhPT1uJiZyLmNhbGwoRSxhKSYmKFM9RSk7dmFyIEM9Xy5wcm90b3R5cGU9Zy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShTKTtmdW5jdGlvbiBPKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Yyh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBBKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgcz1mKHRbb10sdCxpKTtpZigidGhyb3ciIT09cy50eXBlKXt2YXIgYz1zLmFyZyxsPWMudmFsdWU7cmV0dXJuIGwmJiJvYmplY3QiPT1iKGwpJiZyLmNhbGwobCwiX19hd2FpdCIpP2UucmVzb2x2ZShsLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShsKS50aGVuKChmdW5jdGlvbih0KXtjLnZhbHVlPXQsYShjKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KHMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBJKGUsbixyKXt2YXIgbz1kO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT1oKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PXYpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPWsodSxyKTtpZihzKXtpZihzPT09eSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89dixyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289aDt2YXIgYz1mKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/djpwLGMuYXJnPT09eSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPXYsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBrKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxrKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLHk7dmFyIGk9ZihvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLHk7dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLHkpOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwseSl9ZnVuY3Rpb24gTCh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBUKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBqKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goTCx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBQKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IoYihlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiBtLnByb3RvdHlwZT1fLG8oQywiY29uc3RydWN0b3IiLHt2YWx1ZTpfLGNvbmZpZ3VyYWJsZTohMH0pLG8oXywiY29uc3RydWN0b3IiLHt2YWx1ZTptLGNvbmZpZ3VyYWJsZTohMH0pLG0uZGlzcGxheU5hbWU9YyhfLHMsIkdlbmVyYXRvckZ1bmN0aW9uIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT1tfHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxfKToodC5fX3Byb3RvX189XyxjKHQscywiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShDKSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSxPKEEucHJvdG90eXBlKSxjKEEucHJvdG90eXBlLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPUEsZS5hc3luYz1mdW5jdGlvbih0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBBKGwodCxuLHIsbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sTyhDKSxjKEMscywiR2VuZXJhdG9yIiksYyhDLGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksYyhDLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPVAsai5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmoscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKFQpLCFlKWZvcih2YXIgbiBpbiB0aGlzKSJ0Ij09PW4uY2hhckF0KDApJiZyLmNhbGwodGhpcyxuKSYmIWlzTmFOKCtuLnNsaWNlKDEpKSYmKHRoaXNbbl09dCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgbj10aGlzO2Z1bmN0aW9uIG8ocixvKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5hcmc9ZSxuLm5leHQ9cixvJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sdT1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPXIuY2FsbChhLCJjYXRjaExvYyIpLGM9ci5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZihzJiZjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFjKXRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIG89dGhpcy50cnlFbnRyaWVzW25dO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJnIuY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZpLnRyeUxvYzw9ZSYmZTw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyx5KTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLHl9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksVChuKSx5fX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBvPXIuYXJnO1Qobil9cmV0dXJuIG99fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOlAoZSkscmVzdWx0TmFtZTpuLG5leHRMb2M6cn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSx5fX0sZX1mdW5jdGlvbiBfKHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gUyh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXtfKGkscixvLGEsdSwibmV4dCIsdCl9ZnVuY3Rpb24gdSh0KXtfKGkscixvLGEsdSwidGhyb3ciLHQpfWEodm9pZCAwKX0pKX19dmFyIHg9ZnVuY3Rpb24oKXt2YXIgdD1TKHcoKS5tYXJrKChmdW5jdGlvbiB0KGUsbil7dmFyIG8saSxhLHM7cmV0dXJuIHcoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9maW5fc3VjY2Vzcy9vbmJvYXJkaW5nX3BsYW4iLHQucHJldj0xLGE9e30sbiYmKGEuY29udmVyc2F0aW9uX2lkPW4pLHQubmV4dD02LHUuQS5wb3N0KHt1cmw6byxzZXNzaW9uOmUscGFyYW1zOmF9KTtjYXNlIDY6cmV0dXJuIHM9dC5zZW50LHQuYWJydXB0KCJyZXR1cm4iLG51bGwhPShpPW51bGw9PXM/dm9pZCAwOnMucGxhbl9kYXRhKT9pOm51bGwpO2Nhc2UgMTA6cmV0dXJuIHQucHJldj0xMCx0LnQwPXQuY2F0Y2goMSksdC5hYnJ1cHQoInJldHVybiIsbnVsbCk7Y2FzZSAxMzpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsbnVsbCxbWzEsMTBdXSl9KSkpO3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksRT1mdW5jdGlvbigpe3ZhciB0PVModygpLm1hcmsoKGZ1bmN0aW9uIHQoZSxuLG8saSl7dmFyIGEscyxjLGw7cmV0dXJuIHcoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gYT0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9maW5fc3VjY2Vzcy9vbmJvYXJkaW5nX3BsYW4vdG9nZ2xlX3Rhc2tfZG9uZSIsdC5wcmV2PTEsYz17dGFza19pZDpuLGRvbmU6b30saSYmKGMuY29udmVyc2F0aW9uX2lkPWkpLHQubmV4dD02LHUuQS5wb3N0KHt1cmw6YSxzZXNzaW9uOmUscGFyYW1zOmN9KTtjYXNlIDY6cmV0dXJuIGw9dC5zZW50LHQuYWJydXB0KCJyZXR1cm4iLG51bGwhPShzPW51bGw9PWw/dm9pZCAwOmwucGxhbl9kYXRhKT9zOm51bGwpO2Nhc2UgMTA6cmV0dXJuIHQucHJldj0xMCx0LnQwPXQuY2F0Y2goMSksdC5hYnJ1cHQoInJldHVybiIsbnVsbCk7Y2FzZSAxMzpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsbnVsbCxbWzEsMTBdXSl9KSkpO3JldHVybiBmdW5jdGlvbihlLG4scixvKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLEM9big2MTUwMyksTz1uKDE3ODMzKSxBPW4ubihPKSxJPW4oNzI5MCk7ZnVuY3Rpb24gayh0KXtpZih0KXJldHVybnt0eXBlOkkuQm5bdC5hdmF0YXJfdHlwZV0sYXZhdGFyczp0LmF2YXRhcnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm57bGFiZWw6dC5sYWJlbCxpbml0aWFsczp0LmluaXRpYWxzLHNxdWFyZTEyODp0LmltYWdlX3VybHMuc3F1YXJlXzEyOCxkYXJrU3F1YXJlMTI4OnQuaW1hZ2VfZGFya191cmwsc2hhcGU6dC5zaGFwZSxpbWFnZVVybDp0LmltYWdlX3VybH19KSl9fXZhciBMPVsiYXZhdGFyX2RldGFpbHMiXTtmdW5jdGlvbiBUKCl7cmV0dXJuIFQ9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxULmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBqKHQpe3ZhciBlO2lmKHQpcmV0dXJue3VzZUJvdEhlYWRlcjp0LnVzZV9ib3RfaGVhZGVyLGRpc3BsYXlBY3RpdmVJbmRpY2F0b3I6dC5kaXNwbGF5X2FjdGl2ZV9pbmRpY2F0b3IsaGlkZUdyZWV0aW5nOnQuaGlkZV9ncmVldGluZyxjb2xsYXBzZWQ6KGU9dC5jb2xsYXBzZWQse3RpdGxlOmUudGl0bGUsc3VidGl0bGU6ZS5zdWJ0aXRsZSxleHBhbmRlZFN1YnRpdGxlOmUuZXhwYW5kZWRfc3VidGl0bGUsaWNvbjplLmljb24sYXZhdGFyR3JvdXA6ayhlLmF2YXRhcl9kZXRhaWxzKX0pLGV4cGFuZGVkOlAodC5leHBhbmRlZCl9fWZ1bmN0aW9uIFAodCl7cmV0dXJuIHQ/e3RpdGxlOnQudGl0bGUsYm9keTp0LmJvZHksZm9vdGVyOnQuZm9vdGVyLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9dC5hdmF0YXJfZGV0YWlscztyZXR1cm4gVCh7fSxmdW5jdGlvbih0LGUpe2lmKG51bGw9PXQpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIHQpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpKXtpZigtMSE9PWUuaW5kZXhPZihyKSljb250aW51ZTtuW3JdPXRbcl19cmV0dXJuIG59KHQsTCkse2F2YXRhckdyb3VwOmsoZSl9KX0pKSxhdmF0YXJHcm91cDprKHQuYXZhdGFyX2RldGFpbHMpfTpudWxsfWZ1bmN0aW9uIE4oKXtyZXR1cm4gTj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LE4uYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIE0odCl7dmFyIGU9dC50ZXh0LG49dC5zdWJ0aXRsZSxyPXQuaWNvbixvPXQuYXZhdGFyX2RldGFpbHM7cmV0dXJuIE4oe3RleHQ6ZSxzdWJ0aXRsZTpuLGljb246UihyKX0sbyYme2F2YXRhckdyb3VwOmsobyl9KX1mdW5jdGlvbiBSKHQpe3N3aXRjaCh0KXtjYXNlImNoZXZyb24iOnJldHVybiJSaWdodENoZXZyb25Db2xvcmFibGUiO2Nhc2UicXVlc3Rpb25fYnViYmxlIjpyZXR1cm4iQXNrUXVlc3Rpb24iO2RlZmF1bHQ6cmV0dXJuIkNvbXBvc2VyU2VuZCJ9fWZ1bmN0aW9uIFUodCl7aWYodClyZXR1cm57bmV3Q29udmVyc2F0aW9uUHJvbXB0Ontob21lQ2FyZDpNKHQuaG9tZV9jYXJkKSxjdGE6TSh0LmN0YSl9LGhlYWRlcjpqKHQuaGVhZGVyKX19ZnVuY3Rpb24geih0KXtyZXR1cm4gdD97aWNvbjp0Lmljb24sdGV4dDp0LnRleHQsbGlua1VybDp0LmxpbmtfdXJsfTp2b2lkIDB9dmFyIEg9big2Mjk0OCksRj1uKDQ2NjA0KTtmdW5jdGlvbiBEKCl7cmV0dXJuIEQ9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxELmFwcGx5KG51bGwsYXJndW1lbnRzKX1BKCkoImludGVyY29tLmNsaWVudHMub3BlbkNsaWVudCIpO2Z1bmN0aW9uIEIodCl7aWYodClyZXR1cm57Y29udGFpbmVyOnQuY29udGFpbmVyLGJvcmRlckNvbG9yczp0LmJvcmRlcl9jb2xvcnN9fWZ1bmN0aW9uIFYodCl7cmV0dXJuIHQ/e3BhcmFncmFwaDp0LnBhcmFncmFwaCxpc0Rpc21pc3NlZDp0LmlzX2Rpc21pc3NlZH06dm9pZCAwfWZ1bmN0aW9uIEcodCl7cmV0dXJuIHQ/dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBEKHt9LHQse3NlcmlhbGl6ZWRfb2JqZWN0OnEodC5ydWxlc2V0X2xpbmtfb2JqZWN0X3R5cGUsdC5zZXJpYWxpemVkX29iamVjdCl9KX0pKTpbXX1mdW5jdGlvbiBxKHQsZSl7c3dpdGNoKHQpe2Nhc2UiaW5ib3VuZF90cmlnZ2VyIjpjYXNlImluYm91bmRfY3VzdG9tX2JvdCI6cmV0dXJuIFcoZSk7Y2FzZSJtZXNzZW5nZXJfdHJpZ2dlciI6Y2FzZSJidXR0b25fY3VzdG9tX2JvdCI6Y2FzZSJ0cmlnZ2VyYWJsZV9jdXN0b21fYm90IjpyZXR1cm4oMCxDLkduKShlKTtkZWZhdWx0OnJldHVybiBlfX1mdW5jdGlvbiBXKHQpe3ZhciBlLG47cmV0dXJuIHQ/e3N1Z2dlc3Rpb25QYXJ0czpaKHtwYXJ0czpudWxsIT0oZT10LnBhcnRzKT9lOm51bGwsb3BlcmF0b3I6dC5vcGVyYXRvcn0pLGNvbXBvc2VyRGlzYWJsZWQ6dC5jb21wb3Nlcl9kaXNhYmxlZCxwcm9tcHQ6dC5wcm9tcHQscnVsZXNldElkOnQucnVsZXNldF9pZCxzdWdnZXN0aW9uczp0LnN1Z2dlc3Rpb25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybntwcmVBY3Rpb246dC5wcmVfYWN0aW9uLHRleHQ6dC50ZXh0LHV1aWQ6dC51dWlkfX0odCl9KSksdXBkYXRlZEF0OnQudXBkYXRlZF9hdCxwcmlvcml0eTp0LnByaW9yaXR5LHNuYXBzaG90SWQ6dC5zbmFwc2hvdF9pZCx1eFN0eWxlOnQudXhfc3R5bGU/e2NvbnRhaW5lcjp0LnV4X3N0eWxlLmNvbnRhaW5lcixib3JkZXJDb2xvcnM6dC51eF9zdHlsZS5ib3JkZXJfY29sb3JzLGFsaWduQnV0dG9uczp0LnV4X3N0eWxlLmFsaWduX2J1dHRvbnMsd2VsY29tZVBhcnRzV2l0aFN1Z2dlc3Rpb25zOiEhdC51eF9zdHlsZS53ZWxjb21lX3BhcnRzX3dpdGhfc3VnZ2VzdGlvbnN9Om51bGwsd2VsY29tZVBhcnRzOkoodC53ZWxjb21lX3BhcnRzfHxbXSksZmluSXNGaXJzdDpudWxsIT0obj10LmZpbl9pc19maXJzdCkmJm59OnZvaWQgMH1mdW5jdGlvbiBLKHQpe3ZhciBlPSgwLEguWikoKTtyZXR1cm4hdHx8ZS5jb252ZXJzYXRpb25FbXB0eVN0YXRlRW5hYmxlZD92b2lkIDA6e2lkOnQuaWQscGFydHM6dC5wYXJ0cyxvcGVyYXRvcjooMCxDLlBTKSh0Lm9wZXJhdG9yKX19ZnVuY3Rpb24gWih0KXt2YXIgZT10LnBhcnRzLG49dC5vcGVyYXRvcjtyZXR1cm4gZSYmbj97cGFydHM6ZSxvcGVyYXRvcjooMCxDLlBTKShuKX06dm9pZCAwfWZ1bmN0aW9uIEoodCl7cmV0dXJuIHQubWFwKE50KX1mdW5jdGlvbiBZKHQpe3ZhciBlLG47aWYodClyZXR1cm57YXZhdGFyR3JvdXA6ayhudWxsIT0oZT10LmF2YXRhcl9kZXRhaWxzKT9lOnZvaWQgMCksdGl0bGU6dC50aXRsZSxzdWJ0aXRsZTp0LnN1YnRpdGxlLG5vdGljZVR5cGU6bnVsbCE9KG49dC5ub3RpY2VfdHlwZSk/bjp2b2lkIDB9fWZ1bmN0aW9uIFEodCl7cmV0dXJuIFE9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LFEodCl9ZnVuY3Rpb24gWCgpe1g9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixzPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Moe30sIiIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGwodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBnP2U6ZyxhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IEwocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpPKHQsbix1KX0pLGF9ZnVuY3Rpb24gZih0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1sO3ZhciBkPSJzdXNwZW5kZWRTdGFydCIscD0ic3VzcGVuZGVkWWllbGQiLGg9ImV4ZWN1dGluZyIsdj0iY29tcGxldGVkIix5PXt9O2Z1bmN0aW9uIGcoKXt9ZnVuY3Rpb24gbSgpe31mdW5jdGlvbiBiKCl7fXZhciB3PXt9O2ModyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciBfPU9iamVjdC5nZXRQcm90b3R5cGVPZixTPV8mJl8oXyhUKFtdKSkpO1MmJlMhPT1uJiZyLmNhbGwoUyxhKSYmKHc9Uyk7dmFyIHg9Yi5wcm90b3R5cGU9Zy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh3KTtmdW5jdGlvbiBFKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Yyh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBDKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgcz1mKHRbb10sdCxpKTtpZigidGhyb3ciIT09cy50eXBlKXt2YXIgYz1zLmFyZyxsPWMudmFsdWU7cmV0dXJuIGwmJiJvYmplY3QiPT1RKGwpJiZyLmNhbGwobCwiX19hd2FpdCIpP2UucmVzb2x2ZShsLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShsKS50aGVuKChmdW5jdGlvbih0KXtjLnZhbHVlPXQsYShjKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KHMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBPKGUsbixyKXt2YXIgbz1kO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT1oKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PXYpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPUEodSxyKTtpZihzKXtpZihzPT09eSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89dixyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289aDt2YXIgYz1mKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/djpwLGMuYXJnPT09eSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPXYsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBBKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxBKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLHk7dmFyIGk9ZihvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLHk7dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLHkpOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwseSl9ZnVuY3Rpb24gSSh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBrKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBMKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goSSx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBUKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IoUShlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiBtLnByb3RvdHlwZT1iLG8oeCwiY29uc3RydWN0b3IiLHt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMH0pLG8oYiwiY29uc3RydWN0b3IiLHt2YWx1ZTptLGNvbmZpZ3VyYWJsZTohMH0pLG0uZGlzcGxheU5hbWU9YyhiLHMsIkdlbmVyYXRvckZ1bmN0aW9uIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT1tfHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxiKToodC5fX3Byb3RvX189YixjKHQscywiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh4KSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSxFKEMucHJvdG90eXBlKSxjKEMucHJvdG90eXBlLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPUMsZS5hc3luYz1mdW5jdGlvbih0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBDKGwodCxuLHIsbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sRSh4KSxjKHgscywiR2VuZXJhdG9yIiksYyh4LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksYyh4LCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPVQsTC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkwscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKGspLCFlKWZvcih2YXIgbiBpbiB0aGlzKSJ0Ij09PW4uY2hhckF0KDApJiZyLmNhbGwodGhpcyxuKSYmIWlzTmFOKCtuLnNsaWNlKDEpKSYmKHRoaXNbbl09dCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgbj10aGlzO2Z1bmN0aW9uIG8ocixvKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5hcmc9ZSxuLm5leHQ9cixvJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sdT1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPXIuY2FsbChhLCJjYXRjaExvYyIpLGM9ci5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZihzJiZjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFjKXRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIG89dGhpcy50cnlFbnRyaWVzW25dO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJnIuY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZpLnRyeUxvYzw9ZSYmZTw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyx5KTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLHl9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksayhuKSx5fX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBvPXIuYXJnO2sobil9cmV0dXJuIG99fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOlQoZSkscmVzdWx0TmFtZTpuLG5leHRMb2M6cn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSx5fX0sZX1mdW5jdGlvbiAkKHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gdHQoKXt2YXIgdDtyZXR1cm4gdD1YKCkubWFyaygoZnVuY3Rpb24gdChlKXt2YXIgbixvLGk7cmV0dXJuIFgoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gbj1lLmN1cnJlbnRVcmwsbz1lLnNlc3Npb24saT0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9wYWdlX3ZpZXdfZXZlbnRzIix0Lm5leHQ9NCx1LkEucG9zdCh7dXJsOmksY3VycmVudFVybDpuLHNlc3Npb246b30pO2Nhc2UgNDpyZXR1cm4gdC5hYnJ1cHQoInJldHVybiIsdC5zZW50KTtjYXNlIDU6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSx0dD1mdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBhKHQpeyQoaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpeyQoaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfSx0dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZXQodCl7cmV0dXJuIGV0PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxldCh0KX1mdW5jdGlvbiBudCgpe250PWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3ZhciB0LGU9e30sbj1PYmplY3QucHJvdG90eXBlLHI9bi5oYXNPd25Qcm9wZXJ0eSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24odCxlLG4pe3RbZV09bi52YWx1ZX0saT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxhPWkuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIix1PWkuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIscz1pLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gYyh0LGUsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtjKHt9LCIiKX1jYXRjaCh0KXtjPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1ufX1mdW5jdGlvbiBsKHQsZSxuLHIpe3ZhciBpPWUmJmUucHJvdG90eXBlIGluc3RhbmNlb2YgZz9lOmcsYT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSx1PW5ldyBMKHJ8fFtdKTtyZXR1cm4gbyhhLCJfaW52b2tlIix7dmFsdWU6Tyh0LG4sdSl9KSxhfWZ1bmN0aW9uIGYodCxlLG4pe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6dC5jYWxsKGUsbil9fWNhdGNoKHQpe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOnR9fX1lLndyYXA9bDt2YXIgZD0ic3VzcGVuZGVkU3RhcnQiLHA9InN1c3BlbmRlZFlpZWxkIixoPSJleGVjdXRpbmciLHY9ImNvbXBsZXRlZCIseT17fTtmdW5jdGlvbiBnKCl7fWZ1bmN0aW9uIG0oKXt9ZnVuY3Rpb24gYigpe312YXIgdz17fTtjKHcsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgXz1PYmplY3QuZ2V0UHJvdG90eXBlT2YsUz1fJiZfKF8oVChbXSkpKTtTJiZTIT09biYmci5jYWxsKFMsYSkmJih3PVMpO3ZhciB4PWIucHJvdG90eXBlPWcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodyk7ZnVuY3Rpb24gRSh0KXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2ModCxlLChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW52b2tlKGUsdCl9KSl9KSl9ZnVuY3Rpb24gQyh0LGUpe2Z1bmN0aW9uIG4obyxpLGEsdSl7dmFyIHM9Zih0W29dLHQsaSk7aWYoInRocm93IiE9PXMudHlwZSl7dmFyIGM9cy5hcmcsbD1jLnZhbHVlO3JldHVybiBsJiYib2JqZWN0Ij09ZXQobCkmJnIuY2FsbChsLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGwuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCxhLHUpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LGEsdSl9KSk6ZS5yZXNvbHZlKGwpLnRoZW4oKGZ1bmN0aW9uKHQpe2MudmFsdWU9dCxhKGMpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCxhLHUpfSkpfXUocy5hcmcpfXZhciBpO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIE8oZSxuLHIpe3ZhciBvPWQ7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PWgpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09dil7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9QSh1LHIpO2lmKHMpe2lmKHM9PT15KWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWQpdGhyb3cgbz12LHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz1oO3ZhciBjPWYoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT92OnAsYy5hcmc9PT15KWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89dixyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIEEoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LEEoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSkseTt2YXIgaT1mKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwseTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwseSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCx5KX1mdW5jdGlvbiBJKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIGsodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIEwodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChJLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFQoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW2FdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGk9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBpLm5leHQ9aX19dGhyb3cgbmV3IFR5cGVFcnJvcihldChlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiBtLnByb3RvdHlwZT1iLG8oeCwiY29uc3RydWN0b3IiLHt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMH0pLG8oYiwiY29uc3RydWN0b3IiLHt2YWx1ZTptLGNvbmZpZ3VyYWJsZTohMH0pLG0uZGlzcGxheU5hbWU9YyhiLHMsIkdlbmVyYXRvckZ1bmN0aW9uIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT1tfHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxiKToodC5fX3Byb3RvX189YixjKHQscywiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh4KSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSxFKEMucHJvdG90eXBlKSxjKEMucHJvdG90eXBlLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPUMsZS5hc3luYz1mdW5jdGlvbih0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBDKGwodCxuLHIsbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sRSh4KSxjKHgscywiR2VuZXJhdG9yIiksYyh4LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksYyh4LCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPVQsTC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkwscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKGspLCFlKWZvcih2YXIgbiBpbiB0aGlzKSJ0Ij09PW4uY2hhckF0KDApJiZyLmNhbGwodGhpcyxuKSYmIWlzTmFOKCtuLnNsaWNlKDEpKSYmKHRoaXNbbl09dCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgbj10aGlzO2Z1bmN0aW9uIG8ocixvKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5hcmc9ZSxuLm5leHQ9cixvJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sdT1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPXIuY2FsbChhLCJjYXRjaExvYyIpLGM9ci5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZihzJiZjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFjKXRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIG89dGhpcy50cnlFbnRyaWVzW25dO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJnIuY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZpLnRyeUxvYzw9ZSYmZTw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyx5KTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLHl9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksayhuKSx5fX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBvPXIuYXJnO2sobil9cmV0dXJuIG99fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOlQoZSkscmVzdWx0TmFtZTpuLG5leHRMb2M6cn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSx5fX0sZX1mdW5jdGlvbiBydCh0LGUsbixyLG8saSxhKXt0cnl7dmFyIHU9dFtpXShhKSxzPXUudmFsdWV9Y2F0Y2godCl7cmV0dXJuIHZvaWQgbih0KX11LmRvbmU/ZShzKTpQcm9taXNlLnJlc29sdmUocykudGhlbihyLG8pfWZ1bmN0aW9uIG90KCl7dmFyIHQ7cmV0dXJuIHQ9bnQoKS5tYXJrKChmdW5jdGlvbiB0KGUpe3ZhciBuLG8saTtyZXR1cm4gbnQoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gbj1lLnNlc3Npb24sbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9sYXVuY2hlcl9zZXR0aW5ncyIsdC5uZXh0PTQsdS5BLnBvc3Qoe3VybDpvLHNlc3Npb246bn0pO2Nhc2UgNDpyZXR1cm4gaT10LnNlbnQsdC5hYnJ1cHQoInJldHVybiIsKDAsdi5LKShpKSk7Y2FzZSA2OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCl9KSksb3Q9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXtydChpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7cnQoaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfSxvdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIGl0PVsiY3VzdG9tX2JvdCIsImNvbXBvc2VyX3N1Z2dlc3Rpb25zIiwicHJlZGljdGl2ZV9hbnN3ZXJzX3N1Z2dlc3Rpb25zIl07ZnVuY3Rpb24gYXQoKXthdD1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHM9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGModCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Yyh7fSwiIil9Y2F0Y2godCl7Yz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gbCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGc/ZTpnLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgTChyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOk8odCxuLHUpfSksYX1mdW5jdGlvbiBmKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWw7dmFyIGQ9InN1c3BlbmRlZFN0YXJ0IixwPSJzdXNwZW5kZWRZaWVsZCIsaD0iZXhlY3V0aW5nIix2PSJjb21wbGV0ZWQiLHk9e307ZnVuY3Rpb24gZygpe31mdW5jdGlvbiBtKCl7fWZ1bmN0aW9uIGIoKXt9dmFyIHc9e307Yyh3LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIF89T2JqZWN0LmdldFByb3RvdHlwZU9mLFM9XyYmXyhfKFQoW10pKSk7UyYmUyE9PW4mJnIuY2FsbChTLGEpJiYodz1TKTt2YXIgeD1iLnByb3RvdHlwZT1nLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHcpO2Z1bmN0aW9uIEUodCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtjKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEModCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBzPWYodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLGw9Yy52YWx1ZTtyZXR1cm4gbCYmIm9iamVjdCI9PXN0KGwpJiZyLmNhbGwobCwiX19hd2FpdCIpP2UucmVzb2x2ZShsLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShsKS50aGVuKChmdW5jdGlvbih0KXtjLnZhbHVlPXQsYShjKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KHMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBPKGUsbixyKXt2YXIgbz1kO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT1oKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PXYpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPUEodSxyKTtpZihzKXtpZihzPT09eSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89dixyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289aDt2YXIgYz1mKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/djpwLGMuYXJnPT09eSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPXYsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBBKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxBKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLHk7dmFyIGk9ZihvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLHk7dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLHkpOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwseSl9ZnVuY3Rpb24gSSh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBrKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBMKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goSSx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBUKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3Ioc3QoZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gbS5wcm90b3R5cGU9YixvKHgsImNvbnN0cnVjdG9yIix7dmFsdWU6Yixjb25maWd1cmFibGU6ITB9KSxvKGIsImNvbnN0cnVjdG9yIix7dmFsdWU6bSxjb25maWd1cmFibGU6ITB9KSxtLmRpc3BsYXlOYW1lPWMoYixzLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09bXx8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsYik6KHQuX19wcm90b19fPWIsYyh0LHMsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoeCksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sRShDLnByb3RvdHlwZSksYyhDLnByb3RvdHlwZSx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1DLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQyhsKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LEUoeCksYyh4LHMsIkdlbmVyYXRvciIpLGMoeCxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGMoeCwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1ULEwucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpMLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChrKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MseSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSx5fSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLGsobikseX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztrKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpUKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCkseX19LGV9ZnVuY3Rpb24gdXQodCxlKXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdH0odCl8fGZ1bmN0aW9uKHQsZSl7dmFyIG49bnVsbD09dD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1uKXt2YXIgcixvLGksYSx1PVtdLHM9ITAsYz0hMTt0cnl7aWYoaT0obj1uLmNhbGwodCkpLm5leHQsMD09PWUpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO3M9ITF9ZWxzZSBmb3IoOyEocz0ocj1pLmNhbGwobikpLmRvbmUpJiYodS5wdXNoKHIudmFsdWUpLHUubGVuZ3RoIT09ZSk7cz0hMCk7fWNhdGNoKHQpe2M9ITAsbz10fWZpbmFsbHl7dHJ5e2lmKCFzJiZudWxsIT1uLnJldHVybiYmKGE9bi5yZXR1cm4oKSxPYmplY3QoYSkhPT1hKSlyZXR1cm59ZmluYWxseXtpZihjKXRocm93IG99fXJldHVybiB1fX0odCxlKXx8ZnQodCxlKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHN0KHQpe3JldHVybiBzdD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sc3QodCl9ZnVuY3Rpb24gY3QodCxlLG4pe2lmKGUmJiFBcnJheS5pc0FycmF5KGUpJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXt2YXIgcj1lLmxlbmd0aDtyZXR1cm4gZHQoZSx2b2lkIDAhPT1uJiZuPHI/bjpyKX1yZXR1cm4gdChlLG4pfWZ1bmN0aW9uIGx0KHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBkdCh0KX0odCl8fGZ1bmN0aW9uKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fGZ0KHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGZ0KHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBkdCh0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9kdCh0LGUpOnZvaWQgMH19ZnVuY3Rpb24gZHQodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfWZ1bmN0aW9uIHB0KHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gaHQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7cHQoaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpe3B0KGkscixvLGEsdSwidGhyb3ciLHQpfWEodm9pZCAwKX0pKX19ZnVuY3Rpb24gdnQoKXtyZXR1cm4gdnQ9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSx2dC5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIHl0PU9iamVjdC5hc3NpZ24sZ3Q9IlN0YXRlIFN5bmMiO2Z1bmN0aW9uIG10KHQpe3ZhciBlPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2hlbHBfY2VudGVyX2NvbnRlbnQiO3JldHVybiB1LkEucG9zdCh7dXJsOmUsc2Vzc2lvbjp0fSkudGhlbigoZnVuY3Rpb24odCl7dmFyIGU9dC5jb2xsZWN0aW9ucyxuPXQuYXJ0aWNsZV9zdWdnZXN0aW9ucyxyPXQuYXJ0aWNsZV9zdWdnZXN0aW9uc19tZXRhZGF0YSxvPXQuaGVscF9jZW50ZXJfc2Vzc2lvbjtyZXR1cm57YXJ0aWNsZVN1Z2dlc3Rpb25zOnZvaWQgMCE9PW4/e3N1Z2dlc3Rpb25zOm4sbWV0YWRhdGE6cn06dm9pZCAwLGFydGljbGVDb2xsZWN0aW9uczplLm1hcChDLlg0KSxoZWxwQ2VudGVyU2Vzc2lvbjpvfX0pKX1mdW5jdGlvbiBidCh0LGUsbixvKXt2YXIgaT17ZXZlbnRfbmFtZTplLG1ldGFkYXRhOm59O3JldHVybiB1LkEuc2VuZEJlYWNvbih7dXJsOm98fCgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2V2ZW50cyIsc2Vzc2lvbjp0LHBhcmFtczp7ZXZlbnRfbGlzdDpKU09OLnN0cmluZ2lmeSh7ZGF0YTpbaV19KX19KX1mdW5jdGlvbiB3dCh0LGUsbil7cmV0dXJuIF90LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBfdCgpe3JldHVybihfdD1odChhdCgpLm1hcmsoKGZ1bmN0aW9uIHQoZSxuLG8pe3ZhciBpLGEscyxjLGwsZixkLHA7cmV0dXJuIGF0KCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYoZSl7dC5uZXh0PTI7YnJlYWt9dGhyb3cgbmV3IEVycm9yKCJTZXNzaW9uIGlzIHJlcXVpcmVkIGZvciB0cmFuc2NyaXB0aW9uIik7Y2FzZSAyOnJldHVybiBpPW5ldyBGb3JtRGF0YSxhPWcobi50eXBlKXx8Ii53ZWJtIixzPURhdGUubm93KCksYz0idm9pY2Utbm90ZS0iK3MrYSxpLmFwcGVuZCgiYXVkaW8iLG4sYyksaS5hcHBlbmQoInVwbG9hZCIsSlNPTi5zdHJpbmdpZnkoe3NpemVfaW5fYnl0ZXM6bi5zaXplLGNvbnRlbnRfdHlwZTpuLnR5cGUsZmlsZV9uYW1lOmN9KSksbD0oMCx1LnopKGUse30pLE9iamVjdC5lbnRyaWVzKGwpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPWN0KHV0LHQsMiksbj1lWzBdLHI9ZVsxXTtudWxsIT1yJiZpLmFwcGVuZChuLFN0cmluZyhyKSl9KSksZj0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9jb252ZXJzYXRpb25zL3RyYW5zY3JpYmUiLHQubmV4dD0xMyxmZXRjaChmLHttZXRob2Q6IlBPU1QiLGJvZHk6aSxjcmVkZW50aWFsczoiaW5jbHVkZSIsc2lnbmFsOm99KS5jYXRjaCgoZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKHQubWVzc2FnZSl9KSk7Y2FzZSAxMzppZigoZD10LnNlbnQpLm9rKXt0Lm5leHQ9MTY7YnJlYWt9dGhyb3cgbmV3IEVycm9yKCJIVFRQICIrZC5zdGF0dXMpO2Nhc2UgMTY6cmV0dXJuIHQubmV4dD0xOCxkLmpzb24oKTtjYXNlIDE4OmlmKChwPXQuc2VudCkmJiJzdHJpbmciPT10eXBlb2YgcC50ZXh0KXt0Lm5leHQ9MjE7YnJlYWt9dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHJlc3BvbnNlIGZvcm1hdCIpO2Nhc2UgMjE6cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iLHApO2Nhc2UgMjI6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBTdCh0LGUsbil7cmV0dXJuIHh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB4dCgpe3JldHVybih4dD1odChhdCgpLm1hcmsoKGZ1bmN0aW9uIHQoZSxuLG8pe3ZhciBpLGEscztyZXR1cm4gYXQoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZihlKXt0Lm5leHQ9MjticmVha310aHJvdyBuZXcgRXJyb3IoIlNlc3Npb24gaXMgcmVxdWlyZWQgZm9yIFRUUyIpO2Nhc2UgMjpyZXR1cm4gaT0oMCx1LnopKGUse2NvbnZlcnNhdGlvbl9wYXJ0X2lkOm59KSxhPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL3R0cyIsdC5uZXh0PTYsZmV0Y2goYSx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKE9iamVjdC5lbnRyaWVzKGkpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXt2YXIgbj1jdCh1dCxlLDIpLHI9blswXSxvPW5bMV07cmV0dXJuIG51bGwhPW8mJih0W3JdPVN0cmluZyhvKSksdH0pLHt9KSkudG9TdHJpbmcoKSxjcmVkZW50aWFsczoiaW5jbHVkZSIsc2lnbmFsOm99KTtjYXNlIDY6aWYoKHM9dC5zZW50KS5vayl7dC5uZXh0PTk7YnJlYWt9dGhyb3cgbmV3IEVycm9yKCJIVFRQICIrcy5zdGF0dXMpO2Nhc2UgOTpyZXR1cm4gdC5hYnJ1cHQoInJldHVybiIscy5ibG9iKCkpO2Nhc2UgMTA6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBFdCh0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi92b2ljZS9jb25uZWN0IixvPWUuY29udmVyc2F0aW9uSWQ/e2NvbnZlcnNhdGlvbl9pZDplLmNvbnZlcnNhdGlvbklkfTp7fTtyZXR1cm4gdS5BLnBvc3Qoe3VybDpuLHNlc3Npb246dCxwYXJhbXM6b30pLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpfWZ1bmN0aW9uIEN0KHQsZSxuKXt2YXIgbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9zZWxmX3NlcnZlX3N1Z2dlc3Rpb25zIixpPXtxdWVyeTplLGFuc3dlcnNfbGltaXQ6bn07cmV0dXJuIHUuQS5wb3N0KHt1cmw6byxzZXNzaW9uOnQscGFyYW1zOml9KX1mdW5jdGlvbiBPdCh0KXtyZXR1cm57Y29udmVyc2F0aW9uczp0LmNvbnZlcnNhdGlvbnMubWFwKEx0KSxwYWdlczpJdCh0LnBhZ2VzKX19ZnVuY3Rpb24gQXQodCl7cmV0dXJue3VucmVhZENvbnZlcnNhdGlvbklkczoodC51bnJlYWRfY29udmVyc2F0aW9uX2lkc3x8W10pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudG9TdHJpbmcoKX0pKSx1bnJlYWREaXNtaXNzZWRDb252ZXJzYXRpb25JZHM6KHQudW5yZWFkX2Rpc21pc3NlZF9jb252ZXJzYXRpb25faWRzfHxbXSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC50b1N0cmluZygpfSkpfX1mdW5jdGlvbiBJdCh0KXtyZXR1cm57cGFnZTp0LnBhZ2UscGVyUGFnZTp0LnBlcl9wYWdlLHRvdGFsUGFnZXM6dC50b3RhbF9wYWdlc319ZnVuY3Rpb24ga3QodCl7cmV0dXJue3dvcmtmbG93SW5zdGFuY2VJZDp0LndvcmtmbG93X2luc3RhbmNlX2lkLHJlc29sdXRpb25Cb3RCZWhhdmlvclZlcnNpb25JZDp0LnJlc29sdXRpb25fYm90X2JlaGF2aW9yX3ZlcnNpb25faWQsYm90SW50cm86UXQodC5ib3RfaW50cm8pfX1mdW5jdGlvbiBMdCh0KXtyZXR1cm4gdnQoe30sVHQodCkse3BhcnRzOltqdCh0KV0uY29uY2F0KGN0KGx0LFB0KHQpKSl9KX1mdW5jdGlvbiBUdCh0KXtyZXR1cm4gdC5pbnRlcmFjdGlvbl9tb2RlJiZGLmYuc2V0SW50ZXJhY3Rpb25Nb2RlKHQuaW50ZXJhY3Rpb25fbW9kZSksdnQoe2lzRmV0Y2hpbmc6ITEsaXNVcGRhdGluZzohMSxjb21wb3NlclN0YXRlOigwLEMua0cpKHQuY29tcG9zZXJfc3RhdGUpLGRpc21pc3NlZDp0LmRpc21pc3NlZCxpZDp0LmlkLGludGVyY29tTGlua1NvbHV0aW9uOnQuaW50ZXJjb21fbGlua19zb2x1dGlvbixsYXN0UGFydENyZWF0ZWRBdDooMCxsLmtVKSh0LnVwZGF0ZWRfYXQpLGxhc3RQYXJ0aWNpcGF0aW5nQWRtaW46KDAsQy5OVSkodCkscGFydGljaXBhbnRzOnQucGFydGljaXBhbnRzfHxbXSxwcmV2ZW50RW5kVXNlclJlcGxpZXM6dC5wcmV2ZW50X2VuZF91c2VyX3JlcGxpZXMscHJldmVudEVuZFVzZXJSZXBsaWVzVGltZXN0YW1wOnQucHJldmVudF9lbmRfdXNlcl9yZXBsaWVzX3RpbWVzdGFtcCxpbmJvdW5kQ29udmVyc2F0aW9uc0Rpc2FibGVkOnQuaW5ib3VuZF9jb252ZXJzYXRpb25zX2Rpc2FibGVkLHJlYWQ6dC5yZWFkLHJlYWRBdDp0LnJlYWRfYXQ/KDAsbC5rVSkodC5yZWFkX2F0KTp2b2lkIDAsdXNlclBhcnRpY2lwYXRlZDp0LnVzZXJfcGFydGljaXBhdGVkLG5vdGlmaWNhdGlvblN0YXR1czp0Lm5vdGlmaWNhdGlvbl9zdGF0dXMsY3VycmVudENoYW5uZWw6dC5jdXJyZW50X2NoYW5uZWwsYW5hbHl0aWNzTWV0YWRhdGE6e2N1c3RvbUJvdElkOnQuYW5hbHl0aWNzX21ldGFkYXRhP3QuYW5hbHl0aWNzX21ldGFkYXRhLmN1c3RvbV9ib3RfaWQ6dm9pZCAwfSxpc0luYm91bmQ6dC5pc19pbmJvdW5kLHN0YXRlOnQuc3RhdGUsdGlja2V0OnQudGlja2V0PygwLEMuSjEpKHQudGlja2V0KTp2b2lkIDAsc2hhcmluZzooMCxDLk5XKSh0LnNoYXJpbmcpLHVwZGF0ZWRBdDooMCxsLmtVKSh0LnVwZGF0ZWRfYXQpLGVsaWdpYmxlRm9yUmVjZW50Q29udmVyc2F0aW9uczp0LmVsaWdpYmxlX2Zvcl9yZWNlbnRfY29udmVyc2F0aW9ucyx1eFN0eWxlOnQudXhfc3R5bGUsdWlGbGFnczooMCxDLlFuKSh0LnVpX2ZsYWdzKSxvd25lcklkOnQub3duZXJfaWQsZXhjbHVkZUZyb21Db252ZXJzYXRpb25zTGlzdDp0LmV4Y2x1ZGVfZnJvbV9jb252ZXJzYXRpb25fbGlzdCxoZWFkZXI6aih0LmhlYWRlciksZm9vdGVyTm90aWNlOlkodC5mb290ZXJfbm90aWNlKSxjb252ZXJzYXRpb25FbmRlZEJ1dHRvbjooMCxDLktXKSh0LmNvbnZlcnNhdGlvbl9lbmRlZF9idXR0b24pLHRlYW1JbnRybzp0LnRlYW1faW50cm8sc3BlY2lhbE5vdGljZTp0LnNwZWNpYWxfbm90aWNlLHNob3VsZEluY2x1ZGVJbk9wZW5JbmJvdW5kSWRzOnQuc2hvdWxkX2luY2x1ZGVfaW5fb3Blbl9pbmJvdW5kX2lkcyxzYWxlc2ZvcmNlX2V4dGVybmFsX3JlZmVyZW5jZTp0LnNhbGVzZm9yY2VfZXh0ZXJuYWxfcmVmZXJlbmNlLGVzY2FsYXRlZFRvU2FsZXNmb3JjZTp0LmVzY2FsYXRlZF90b19zYWxlc2ZvcmNlLHBvd2VyZWRCeTp6KHQucG93ZXJlZF9ieSksdGl0bGU6dC50aXRsZX0sbnVsbCE9dC50aXRsZV9vcmlnaW4mJnt0aXRsZU9yaWdpbjp0LnRpdGxlX29yaWdpbn0sbnVsbCE9dC5oYW5kb3ZlcmVkX3RvJiZ7aGFuZG92ZXJlZFRvOnQuaGFuZG92ZXJlZF90b30se2hpdGxQcmV2aWV3UmV2aWV3VXJsOnQuaGl0bF9wcmV2aWV3X3Jldmlld191cmx9KX1mdW5jdGlvbiBqdCh0KXt2YXIgZSxuLHI9dC5jb252ZXJzYXRpb25fbWVzc2FnZTtyZXR1cm57YXV0aG9yOigwLEMuUFMpKHIuYXV0aG9yKSxib2R5OkR0KHIuYmxvY2tzfHxbXSxyLmF0dGFjaG1lbnRzfHxbXSksY2xpZW50SWQ6ci5jbGllbnRfYXNzaWduZWRfdXVpZCxjcmVhdGVkQXQ6KDAsbC5rVSkoci5jcmVhdGVkX2F0KSxldmVudERhdGE6e30sZm9ybTpyLmZvcm0saWQ6bnVsbCE9KGU9ci5pZCkmJmUuc3RhcnRzV2l0aCgibWVzc2FnZS0iKT9yLmlkOiJtZXNzYWdlLSIrci5pZCxpc01lc3NhZ2U6ITAsbWVzc2FnZVR5cGU6VXQociksbm90aWZpY2F0aW9uVHlwZToobj1yLmRlbGl2ZXJ5X29wdGlvbix7YmFkZ2U6ImJhZGdlIixmdWxsOiJmdWxsIixzdW1tYXJ5OiJzbmlwcGV0In1bbl0pLHBhcnRUeXBlOiJtZXNzYWdlIixwb2ludGVyU2VsZWN0b3I6ci5wb2ludGVyX3NlbGVjdG9yLHJlYWN0aW9uc1JlcGx5OnIucmVhY3Rpb25zX3JlcGx5PygwLEMuSEMpKHIucmVhY3Rpb25zX3JlcGx5KTp2b2lkIDAscmVwbHlPcHRpb25zOnIucmVwbHlfb3B0aW9uc3x8W10scmVwbHlUeXBlOnIucmVwbHlfdHlwZSxzZWVuU3RhdGU6SHQoci5zZWVuX2J5X2FkbWluKSxzZW50QXQ6KDAsbC5rVSkoci5zZW50X2F0KSxzaG93Q3JlYXRlZEF0OnIuc2hvd19jcmVhdGVkX2F0LHRlYW1BdXRob3I6KDAsQy52SikodCkscnVsZXNldElkOnIuZ29vZ2xlX2FuYWx5dGljc19pZGVudGlmaWVyLHV4U3R5bGU6KDAsQy50ZSkoci51eF9zdHlsZSksbWV0YWRhdGE6KDAsQy5rTikoci5tZXRhZGF0YSksc2tpcFV4U3R5bGVWYWxpZGF0aW9uOnIuc2tpcF91eF9zdHlsZV92YWxpZGF0aW9ufX1mdW5jdGlvbiBQdCh0KXt2YXIgZT1bXTtyZXR1cm4gdC5jb252ZXJzYXRpb25fcGFydHMmJihlPXQuY29udmVyc2F0aW9uX3BhcnRzLmNvbnZlcnNhdGlvbl9wYXJ0c3x8dC5jb252ZXJzYXRpb25fcGFydHMpLGUuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4ibGlnaHR3ZWlnaHRfcmVwbHlfdXNlcl9yZXNwb25zZSIhPT10LnBhcnRfdHlwZX0pKS5tYXAoTnQpfWZ1bmN0aW9uIE50KHQpe3ZhciBlLG47cmV0dXJue2F1dGhvcjp0LmF1dGhvcj97YXZhdGFyOigwLEMuS1YpKHQuYXV0aG9yLmF2YXRhciksZmlyc3ROYW1lOigwLEMuZUMpKHQuYXV0aG9yLmZpcnN0X25hbWUpLGlkOnQuYXV0aG9yLmlkLGluaXRpYWw6dC5hdXRob3IuaW5pdGlhbCxpc0FkbWluOnQuYXV0aG9yLmlzX2FkbWluLGlzQm90OnQuYXV0aG9yLmlzX2JvdCxpc1NlbGY6dC5hdXRob3IuaXNfc2VsZix0eXBlOnQuYXV0aG9yLmlzX2FkbWluPyJhZG1pbiI6InVzZXIifTp2b2lkIDAsYm9keTpEdCh0LmJsb2Nrc3x8W10sdC5hdHRhY2htZW50c3x8W10pLGNtcjp0LmNtcixjbGllbnRJZDp0LmNsaWVudF9hc3NpZ25lZF91dWlkLGNvbnZlcnNhdGlvblJhdGluZzpWdCh0KSxjcmVhdGVkQXQ6KDAsbC5rVSkodC5jcmVhdGVkX2F0KSxldmVudERhdGE6KDAsQy4kTCkodC5ldmVudF9kYXRhLHQucGFydF90eXBlKSxmb3JtOnQuZm9ybT8obj10LmZvcm0sdnQoe30sbix7ZGlzYWJsZWRNZXNzYWdlOm4uZGlzYWJsZWRfbWVzc2FnZX0pKTp2b2lkIDAsaWQ6dC5pZCxpc01lc3NhZ2U6ITEsbWVzc2FnZVR5cGU6VXQodCksY2Fyb3VzZWw6dC5jYXJvdXNlbF9jb250ZW50LHNlZ21lbnRzOm51bGwhPShlPXQuc2VnbWVudHMpP2U6dC5jb21wb3NhYmxlX3NlYXJjaF9jb250ZW50LGNhbGVuZGFyQ2FyZDp0LmNhbGVuZGFyX2NhcmRfY29udGVudCxoYW5kb3ZlckN0YTp0LmhhbmRvdmVyX2N0YV9jb250ZW50LGhhbmRvdmVyQ29udGV4dERhdGE6dC5oYW5kb3Zlcl9jb250ZXh0X2RhdGEscGxhbkRhdGE6dC5wbGFuX2RhdGEscGFydFR5cGU6dC5wYXJ0X3R5cGUscmVwbHlPcHRpb25zOnQucmVwbHlfb3B0aW9uc3x8W10sc2VlblN0YXRlOkh0KHQuc2Vlbl9ieV9hZG1pbiksc2hvd0NyZWF0ZWRBdDohMCxzb3VyY2VzOnQuc291cmNlcyx0b2tlblNlcXVlbmNlSW5kZXg6MWU0PT09dC50b2tlbl9zZXF1ZW5jZV9pbmRleD92b2lkIDA6dC50b2tlbl9zZXF1ZW5jZV9pbmRleCx1eFN0eWxlOigwLEMudGUpKHQudXhfc3R5bGUpLG1ldGFkYXRhOigwLEMua04pKHQubWV0YWRhdGEpLGFuc3dlckZvb3Rlcjp0LmFuc3dlcl9mb290ZXImJnt0ZXh0OnQuYW5zd2VyX2Zvb3Rlci50ZXh0LHJlcGx5T3B0aW9uczp0LmFuc3dlcl9mb290ZXIucmVwbHlfb3B0aW9uc30sZmluUmVzcG9uc2VUeXBlOnQuZmluX3Jlc3BvbnNlX3R5cGUsZmluRXJyb3JUeXBlOnQuZmluX2Vycm9yX3R5cGUsaXNGaW5Wb2ljZVBhcnQ6ISF0LmZpbl92b2ljZXx8dm9pZCAwLGZpblNpZ25pZmljYW50UmVzcG9uc2U6dC5maW5fc2lnbmlmaWNhbnRfcmVzcG9uc2Usc2tpcFV4U3R5bGVWYWxpZGF0aW9uOnQuc2tpcF91eF9zdHlsZV92YWxpZGF0aW9uLHN0cmVhbUdyb3VwSWQ6dC5zdHJlYW1fZ3JvdXBfaWR9fWZ1bmN0aW9uIE10KHQpe3ZhciBlPXQuaW5zdGFsbF9tb2RlO2lmKGUpe3ZhciBuPWUuYWN0aXZlX3N1YnNjcmlwdGlvbixyPWUudXNlcl9oYXNoX3ZlcmlmaWVkLG89ZS5zZWN1cmVfaW5zdGFsbF92MixpPWUubWVzc2VuZ2VyX2VuYWJsZWRfZm9yX3Zpc2l0b3JzO3JldHVybnthY3RpdmVTdWJzY3JpcHRpb246bixtZXNzZW5nZXJFbmFibGVkRm9yVXNlcnM6ZS5tZXNzZW5nZXJfZW5hYmxlZF9mb3JfdXNlcnMsbWVzc2VuZ2VyRW5hYmxlZEZvclZpc2l0b3JzOmksc2VjdXJlSW5zdGFsbFYyOm8sdXNlckhhc2hWZXJpZmllZDpyfX19ZnVuY3Rpb24gUnQodCl7dmFyIGUsbixyLG8saSxhLHUscyxjLGw9dC5hcHAsZj1mdW5jdGlvbih0KXtyZXR1cm57YW5vbnltb3VzSW5ib3VuZE1lc3NhZ2VzOnQuaW5ib3VuZF9sZWFkX21lc3NhZ2luZ3x8dC5pbmJvdW5kX2xlYWRfbWVzc2FnaW5nX2RvY3Nfc2l0ZSxhaVRpdGxlczp0LmFpX3RpdGxlcyxnb29nbGVBbmFseXRpY3M6dC5nb29nbGVfYW5hbHl0aWNzLGh1YnNwb3RJbnN0YWxsZWQ6dC5odWJzcG90X2luc3RhbGxlZCxpbmJvdW5kTWVzc2FnZXM6dC5pbmJvdW5kX21lc3NhZ2VzLGxhdW5jaGVyRGlzY292ZXJ5TW9kZTp0LmxhdW5jaGVyX2Rpc2NvdmVyeV9tb2RlLGxhdW5jaGVyU2V0dGluZ3M6dC5sYXVuY2hlcl9zZXR0aW5ncyxtYXJrZXRvRW5yaWNobWVudEluc3RhbGxlZDp0Lm1hcmtldG9fZW5yaWNobWVudF9pbnN0YWxsZWQsc2luZ2xlUGFnZUFwcFJhdGVMaW1pdGluZzp0LnNpbmdsZV9wYWdlX2FwcF9yYXRlX2xpbWl0aW5nLGNyb3NzU2l0ZUNvb2tpZXM6dC5jcm9zc19zaXRlX2Nvb2tpZXMsY29va2llU2VjdXJlRmxhZzp0LmNvb2tpZV9zZWN1cmVfZmxhZyxjaGVja2xpc3RzOnQuY2hlY2tsaXN0cyxjaGVja2xpc3RzUmVtaW5kZXJzOnQuY2hlY2tsaXN0c19yZW1pbmRlcnMsZ29vZ2xlQW5hbHl0aWNzNEludGVncmF0aW9uOnQuZ29vZ2xlX2FuYWx5dGljc180X2ludGVncmF0aW9uLHZpZXdJbkhlbHBDZW50ZXJCdXR0b246dC52aWV3X2luX2hlbHBfY2VudGVyX2J1dHRvbixjdXN0b21lclByaXZhY3lQb2xpY3k6dC5jdXN0b21lcl9wcml2YWN5X3BvbGljeSxjb252ZXJzYXRpb25OZXdTdHlsaW5nOnQubWVzc2VuZ2VyX25ld19jb252b19zdHlsaW5nLGJ1YmJsZVNlZW5JbmRpY2F0b3I6dC5idWJibGVfc2Vlbl9pbmRpY2F0b3IsZGlzYWJsZUZpbkltYWdlUmVhZGluZzp0LmRpc2FibGVfZmluX2ltYWdlX3JlYWRpbmcsbmV3TW9iaWxlTm90aWZpY2F0aW9uc0VuYWJsZWQ6dC5uZXdfbW9iaWxlX25vdGlmaWNhdGlvbnNfZW5hYmxlZCxkZWxheVRvdXJSZW5kZXI6dC5kZWxheV90b3VyX3JlbmRlcixkaXNhYmxlVGlja2V0c0FmdGVyQ29udmVyc2F0aW9uRW5kOnQuZGlzYWJsZV90aWNrZXRzX2FmdGVyX2NvbnZlcnNhdGlvbl9lbmQsbmV4dXNBYmx5OnQubmV4dXNfYWJseSxmaW5MYXRlbmN5SGVhZGVyUmV2YW1wOnQuZmluX2xhdGVuY3lfbWVzc2VuZ2VyX2hlYWRlcl9yZXZhbXBfZW5hYmxlZCxkaXNhYmxlVGlja2V0RW1haWxOb3RpZmljYXRpb246dC5kaXNhYmxlX3RpY2tldF9lbWFpbF9ub3RpZmljYXRpb24sbWVyY3VyeVVpQ2hhbmdlczp0Lm1lcmN1cnlfdWlfY2hhbmdlcyxlbmFibGVDdXN0b21FbW9qaXM6dC5lbmFibGVfY3VzdG9tX2Vtb2ppcyxmaW5JbWFnZXNHcmlkOnQuZmluX2ltYWdlc19ncmlkLG5ld1ByaXZhY3lQb2xpY3lMYXlvdXQ6dC5uZXdfcHJpdmFjeV9wb2xpY3lfbGF5b3V0LGZpbkxhdW5jaGVyRGlzY292ZXJ5TW9kZTp0LmZpbl9sYXVuY2hlcl9kaXNjb3ZlcnlfbW9kZSxhbHdheXNHZXRTYWxlc2ZvcmNlVG9rZW46dC5hbHdheXNfZ2V0X3NhbGVzZm9yY2VfdG9rZW4sYXNhbmFMaW1pdFVwbG9hZHNUbzVtYjp0LmFzYW5hX2xpbWl0X3VwbG9hZHNfdG9fNW1iLGNsaWVudFNpZGVBY3Rpb25zOnQuY2xpZW50X3NpZGVfYWN0aW9ucyxtZXNzZW5nZXJUdHM6dC5tZXNzZW5nZXJfdHRzLHVybEJhc2VkQ2xpZW50TWF0Y2hpbmc6dC51cmxfYmFzZWRfY2xpZW50X21hdGNoaW5nLGZpblNlbmRDdXJyZW50UGFnZURhdGE6dC5maW5fc2VuZF9jdXJyZW50X3BhZ2VfZGF0YSxtZXNzZW5nZXJPcHRpbWlzdGljRmluVGhpbmtpbmc6dC5tZXNzZW5nZXJfb3B0aW1pc3RpY19maW5fdGhpbmtpbmcsZmluRWNvbW1lcmNlU3luY0NhcnQ6dC5maW5fZWNvbW1lcmNlX3N5bmNfY2FydCxuZXdDb252ZXJzYXRpb25JbmJvdW5kTWF0Y2hpbmc6dC50ZWFtX3dvcmtmbG93c19uZXdfY29udmVyc2F0aW9uX2luYm91bmRfbWF0Y2hpbmcsZmluT25seUNsaWNrT3V0c2lkZTp0LmZpbl9vbmx5X2NsaWNrX291dHNpZGUsY2Fyb3VzZWxHcmlkTGF5b3V0OnQuY2Fyb3VzZWxfZ3JpZF9sYXlvdXQsdm9pY2VSZWNvcmRlcktleWJvYXJkU2hvcnRjdXQ6dC52b2ljZV9yZWNvcmRlcl9rZXlib2FyZF9zaG9ydGN1dCxpbXByb3ZlT3BlbkJlaGF2aW9yOnQuaW1wcm92ZV9vcGVuX2JlaGF2aW9yLHNtYXJ0U3VnZ2VzdGlvbkltcHJlc3Npb25zOnQuc21hcnRfc3VnZ2VzdGlvbl9pbXByZXNzaW9uc19lbmFibGVkLGltcHJvdmVTcG90bGlnaHRDb2RlQmxvY2tSZW5kZXJpbmc6dC5pbXByb3ZlX3Nwb3RsaWdodF9jb2RlX2Jsb2NrX3JlbmRlcmluZyxmdWxsUGFnZUNvbnZlcnNhdGlvbnNDYXJkOnQuZnVsbF9wYWdlX2NvbnZlcnNhdGlvbnNfY2FyZCxtZXNzZW5nZXJSaWNoVGV4dDp0Lm1lc3Nlbmdlcl9yaWNoX3RleHQsZmluVm9pY2U6dC5maW5fdm9pY2Usc3VjY2Vzc1BsYW5SZW5hbWU6dC5zdWNjZXNzX3BsYW5fcmVuYW1lLGZpblNkckNhbGVuZGFyTGF6eUF2YWlsYWJpbGl0eTp0LmZpbl9zZHJfY2FsZW5kYXJfbGF6eV9hdmFpbGFiaWxpdHl9fSh0Lm1vZHVsZXMuZmVhdHVyZXN8fHQubW9kdWxlcy5tZXNzYWdlcy5mZWF0dXJlcyksZD0obnVsbD09KGU9dC5tb2R1bGVzKT92b2lkIDA6ZS5ob21lKXx8e30scD10Lm1vZHVsZXMuY3VzdG9taXphdGlvbixoPShudWxsPT0obj10LmxhdW5jaGVyX3NldHRpbmdzKT92b2lkIDA6bi50aGVtZV9tb2RlKXx8KG51bGw9PXA/dm9pZCAwOnAudGhlbWVfbW9kZSk7cmV0dXJue2JhY2tncm91bmRJbWFnZTpsLm1lc3Nlbmdlcl9iYWNrZ3JvdW5kLGxvZ29Vcmw6bC5tZXNzZW5nZXJfbG9nb191cmwsbG9nb0RhcmtVcmw6bnVsbD09cD92b2lkIDA6cC5tZXNzZW5nZXJfbG9nb19kYXJrX3VybCxpc0F1ZGlvRW5hYmxlZDpsLmF1ZGlvX2VuYWJsZWR8fCExLGlzRGV2ZWxvcGVyV29ya3NwYWNlOmwuZGV2ZWxvcGVyX3dvcmtzcGFjZXx8ITEsYXJ0aWNsZUF1dG9SZWFjdGlvbkVuYWJsZWQ6bC5hcnRpY2xlX2F1dG9fcmVhY3Rpb25fZW5hYmxlZHx8ITEsaXNFcnJvclJlcG9ydGluZ0Rpc2FibGVkOnQubW9kdWxlcy5lcnJvcl9yZXBvcnRpbmcmJnQubW9kdWxlcy5lcnJvcl9yZXBvcnRpbmcuZGlzYWJsZWQsaXNJbnRlcmNvbUxpbmtFbmFibGVkOmwuc2hvd19wb3dlcmVkX2J5LGlzT3ZlcnJpZGVTYW1wbGluZ0VuYWJsZWQ6dC5tb2R1bGVzLm1ldHJpY3MmJnQubW9kdWxlcy5tZXRyaWNzLmVuYWJsZWQsb3BlbkNvbmZpZzp7dW5pZmllZFN0eWxpbmc6ITAsb3BlblRvOm51bGw9PShyPXQub3Blbl9jb25maWcpP3ZvaWQgMDpyLm9wZW5fdG8sc3BhY2VzOm51bGwhPShvPXQub3Blbl9jb25maWcpJiZvLnNwYWNlcz9udWxsPT0oaT10Lm9wZW5fY29uZmlnKT92b2lkIDA6aS5zcGFjZXMubWFwKChmdW5jdGlvbih0KXt2YXIgZT0oMCx2LkspKHQpO3JldHVybiBlLmJhZGdlJiZlLmJhZGdlLmxhYmVsJiYoZS5iYWRnZS5sYWJlbD1OdW1iZXIoZS5iYWRnZS5sYWJlbCkpLGV9KSk6W10sdXNlckhhc1JlY2VpdmVkQ2hlY2tsaXN0czoobnVsbD09KGE9dC5vcGVuX2NvbmZpZyk/dm9pZCAwOmEudXNlcl9oYXNfcmVjZWl2ZWRfY2hlY2tsaXN0cyl8fCExLHVzZXJIYXNMaXZlTmV3c2ZlZWQ6KG51bGw9PSh1PXQub3Blbl9jb25maWcpP3ZvaWQgMDp1LnVzZXJfaGFzX2xpdmVfbmV3c2ZlZWQpfHwhMSx1c2VySGFzVGlja2V0czoobnVsbD09KHM9dC5vcGVuX2NvbmZpZyk/dm9pZCAwOnMudXNlcl9oYXNfdGlja2V0cyl8fCExfSxpbmJvdW5kQ29udmVyc2F0aW9uc0Rpc2FibGVkOmwuaW5ib3VuZF9jb252ZXJzYXRpb25zX2Rpc2FibGVkfHwhMSxjb252ZXJzYXRpb25IaXN0b3J5VHRsRGF5czpudWxsIT0oYz1sLmNvbnZlcnNhdGlvbl9oaXN0b3J5X3R0bF9kYXlzKT9jOnZvaWQgMCxzbXNFbmFibGVkOmwuc21zX25vdGlmaWNhdGlvbnNfZW5hYmxlZHx8ITEsdXNlckNvbnZlcnNhdGlvbkdpZnNFbmFibGVkOmwudXNlcl9jb252ZXJzYXRpb25fZ2lmc19lbmFibGVkLGN1c3RvbUdvb2dsZUFuYWx5dGljc1RyYWNrZXJJZDp0Lm1vZHVsZXMubWVzc2FnZXMuZ29vZ2xlX2FuYWx5dGljc190cmFja2luZ19pZCxzZWxmU2VydmVTdWdnZXN0aW9uc01hdGNoOmwuc2VsZl9zZXJ2ZV9zdWdnZXN0aW9uc19tYXRjaHx8ITEsdXBmcm9udEVtYWlsQ29sbGVjdGlvblNldHRpbmc6bC51cGZyb250X2VtYWlsX2NvbGxlY3Rpb25fc2V0dGluZyx1c2VDYWNoZUZvcjpsLnVzZV9jYWNoZV9mb3Isb3JpZ2luQ29va2llRG9tYWluOnQub3JpZ2luX2Nvb2tpZV9kb21haW4sZmVhdHVyZXM6ZixoZWxwQ2VudGVyU2l0ZVVybDpsLmhlbHBfY2VudGVyX3NpdGVfdXJsfHx2b2lkIDAscmVhbHRpbWVDb25maWc6e2VuZHBvaW50czp0Lm1vZHVsZXMucnRtLmVuZHBvaW50cyxvcHRpb25zOnQubW9kdWxlcy5ydG0ub3B0aW9uc30sdGVhbUdyZWV0aW5nOmwudGVhbV9ncmVldGluZyx0ZWFtSW50cm86bC50ZWFtX2ludHJvLGV4cGVjdGVkUmVzcG9uc2VEZWxheVRyYW5zbGF0aW9uS2V5OmwuZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfdHJhbnNsYXRpb25fa2V5LHRlbXBvcmFyeUV4cGVjdGF0aW9uc01lc3NhZ2U6bC50ZW1wb3JhcnlfZXhwZWN0YXRpb25zX21lc3NhZ2Usb2ZmaWNlSG91cnNSZXNwb25zZTpsLm9mZmljZV9ob3Vyc19yZXNwb25zZXx8dm9pZCAwLGxhdW5jaGVyRXhwZWN0ZWRSZXNwb25zZURlbGF5VHJhbnNsYXRpb25LZXk6bC5sYXVuY2hlcl9leHBlY3RlZF9yZXNwb25zZV9kZWxheV90cmFuc2xhdGlvbl9rZXksbmFtZTpsLm5hbWUsY3VzdG9tRm9udDpudWxsIT1wJiZwLmN1c3RvbV9mb250PygwLHYuSykobnVsbD09cD92b2lkIDA6cC5jdXN0b21fZm9udCk6dm9pZCAwLGhvbWU6KDAsdi5LKSh2dCh7fSxkLHtoZWFkZXJDb2xvcnM6bnVsbD09cD92b2lkIDA6cC5oZWFkZXIsdGhlbWVNb2RlOmh9KSksdGhlbWVNb2RlOmgsbG9jYWxpemVkRXhwZWN0ZWRSZXNwb25zZURlbGF5U2hvcnRUZXh0OmwubG9jYWxpemVkX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5X3Nob3J0X3RleHQsbG9jYWxpemVkRXhwZWN0ZWRSZXNwb25zZURlbGF5TG9uZ1RleHQ6bC5sb2NhbGl6ZWRfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfbG9uZ190ZXh0fX1mdW5jdGlvbiBVdCh0KXtpZigidGlja2V0X3N0YXR1c191cGRhdGUiPT09dC5wYXJ0X3R5cGV8fCJ0aWNrZXRfc3RhdGVfdXBkYXRlZF9ieV93b3JrZmxvdyI9PT10LnBhcnRfdHlwZSlyZXR1cm4idGlja2V0U3RhdHVzVXBkYXRlIjtpZigiaW5saW5lX2Fuc3dlciI9PT10LnBhcnRfdHlwZSlyZXR1cm4iaW5saW5lQW5zd2VyIjtpZigicmVsZXZhbnRfYXJ0aWNsZXMiPT09dC5wYXJ0X3R5cGUpcmV0dXJuInJlbGV2YW50QXJ0aWNsZXMiO2lmKCJmaW5fYW5zd2VyIj09PXQucGFydF90eXBlKXJldHVybiJmaW5BbnN3ZXIiO2lmKCJmaW5UaG91Z2h0Ij09PXQucGFydF90eXBlKXJldHVybiJmaW5UaG91Z2h0IjtpZigiZ2VuZXJhdGVkX3BsYW4iPT09dC5wYXJ0X3R5cGUpcmV0dXJuImdlbmVyYXRlZFBsYW4iO2lmKCJhdHRyaWJ1dGVfY29sbGVjdG9yIj09PXQucGFydF90eXBlKXJldHVybiJhdHRyaWJ1dGVDb2xsZWN0b3IiO2lmKCJtZXJnZWRfcHJpbWFyeV9jb252ZXJzYXRpb24iPT09dC5wYXJ0X3R5cGUpcmV0dXJuIm1lcmdlZFByaW1hcnlDb252ZXJzYXRpb24iO2lmKCJnZW5lcmljX2hhbmRvZmYiPT09dC5wYXJ0X3R5cGUpcmV0dXJuImdlbmVyaWNIYW5kb2ZmIjtpZigiY29tcG9zaXRlIj09PXQucGFydF90eXBlKXJldHVybiJjb21wb3NpdGUiO2lmKCJjb21wb3NhYmxlX3NlYXJjaCI9PT10LnBhcnRfdHlwZSlyZXR1cm4iY29tcG9zYWJsZVNlYXJjaCI7aWYoImNhcm91c2VsIj09PXQucGFydF90eXBlKXJldHVybiJjYXJvdXNlbCI7aWYoImNhbGVuZGFyX2NhcmQiPT09dC5wYXJ0X3R5cGUpcmV0dXJuImNhbGVuZGFyQ2FyZCI7aWYoImhhbmRvdmVyX2N0YSI9PT10LnBhcnRfdHlwZSlyZXR1cm4iaGFuZG92ZXJDdGEiO2lmKCJoYW5kb3Zlcl9jb250ZXh0Ij09PXQucGFydF90eXBlKXJldHVybiJoYW5kb3ZlckNvbnRleHQiO2lmKHp0KHQsImxpbmsiKXx8ZnVuY3Rpb24odCxlKXt2YXIgbj0hMDtyZXR1cm4gdC5ibG9ja3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC50eXBlIT09ZSYmKG49ITEpfSkpLG4mJnQuYmxvY2tzLmxlbmd0aD4xfSh0LCJsaW5rIikpcmV0dXJuImxpbmsiO2lmKHp0KHQsIm5vdGlmaWNhdGlvbkNoYW5uZWxzQ2FyZCIpKXJldHVybiJub3RpZmljYXRpb25DaGFubmVscyI7aWYoenQodCwiY29udmVyc2F0aW9uUmF0aW5nIikpcmV0dXJuImNvbnZlcnNhdGlvblJhdGluZyI7aWYoenQodCwidGlja2V0IikpcmV0dXJuInRpY2tldENhcmQiO3ZhciBlPVsiY2hhdCIsInBvc3QiLCJub3RlIiwidmlkZW8iLCJwb2ludGVyIl1bdC5tZXNzYWdlX3N0eWxlXTtyZXR1cm4gZXx8dm9pZCAwfWZ1bmN0aW9uIHp0KHQsZSl7dmFyIG49dC5ibG9ja3MmJjE9PT10LmJsb2Nrcy5sZW5ndGgmJnQuYmxvY2tzWzBdO3JldHVybiBuJiZuLnR5cGU9PT1lfWZ1bmN0aW9uIEh0KHQpe3JldHVybnt1bnNlZW46Im5vdC1zZWVuLXlldCIsc2Vlbjoic2VlbiJ9W3RdfHwibm90LXNlZW4teWV0In1mdW5jdGlvbiBGdCh0KXtyZXR1cm57Y29udGFjdF9yb2xlOiJsZWFkIix1c2VyX3JvbGU6InVzZXIiLHZpc2l0b3Jfcm9sZToidmlzaXRvciJ9W3RdfWZ1bmN0aW9uIER0KHQsZSl7aWYoZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10Lmxlbmd0aCYmInZpZGVvUmVwbHkiPT09dFswXS50eXBlfSh0KSlyZXR1cm4gdDtpZihmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQubGVuZ3RoJiYidmlkZW9GaWxlIj09PXRbMF0udHlwZX0odCkpcmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybltPYmplY3QuYXNzaWduKHt9LHRbMF0pXX0odCk7dmFyIG49W107cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoMD09PXQubGVuZ3RoKXJldHVybiBlO3ZhciBuPVtdO3JldHVybiB0Lm1hcCgoZnVuY3Rpb24odCl7dC5hdHRhY2htZW50cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBuLnB1c2godC51cmwpfSkpfSkpLGUuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gbi5tYXAoQnQpLmluZGV4T2YoQnQodC51cmwpKTwwfSkpfSh0LmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuImF0dGFjaG1lbnRMaXN0Ij09PXQudHlwZX0pKSxlKS5mb3JFYWNoKChmdW5jdGlvbih0KXshZnVuY3Rpb24odCl7cmV0dXJuIHQuY29udGVudF90eXBlLmluZGV4T2YoImltYWdlIik+PTB9KHQpP24ucHVzaChmdW5jdGlvbih0KXtyZXR1cm57dHlwZToiYXR0YWNobWVudExpc3QiLGF0dGFjaG1lbnRzOlt7Y29udGVudFR5cGU6dC5jb250ZW50X3R5cGUsbmFtZTp0Lm5hbWUsc2l6ZTp0LnNpemUsdXJsOnQudXJsfV19fSh0KSk6bi5wdXNoKGZ1bmN0aW9uKHQpe3JldHVybntoZWlnaHQ6cGFyc2VJbnQodC5oZWlnaHQsMTApLHR5cGU6ImltYWdlIix1cmw6dC51cmwsd2lkdGg6cGFyc2VJbnQodC53aWR0aCwxMCl9fSh0KSl9KSksdC5jb25jYXQobil9ZnVuY3Rpb24gQnQodCl7cmV0dXJuIHQuc3BsaXQoIj8iKVswXX1mdW5jdGlvbiBWdCh0KXtpZigiY29udmVyc2F0aW9uUmF0aW5nIiE9PVV0KHQpKXJldHVybnt9O3ZhciBlPXQuYmxvY2tzWzBdLG49ZS5yZW1hcmsscj1lLnV1aWQsbz1lLmJsb2NrX3JhdGluZztyZXR1cm57Y2hvc2VuUmF0aW5nOnQuYmxvY2tzWzBdLnJhdGluZ19pbmRleCxyZW1hcms6bix1dWlkOnIsYmxvY2tSYXRpbmc6ISFvfX1mdW5jdGlvbiBHdCh0KXtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm57aWQ6dC5pZCxuYW1lOnQubmFtZSxhdHRyaWJ1dGVzOnF0KHQuYXR0cmlidXRlcyksZW1vamk6dC5lbW9qaSxhcmNoaXZlZDp0LmFyY2hpdmVkLGF0dHJpYnV0ZVZhbHVlczp0LmF0dHJpYnV0ZV92YWx1ZXN9fSh0KX0pKX1mdW5jdGlvbiBxdCh0KXtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiJsaXN0Ij09PXQudHlwZSYmKHQubGlzdE9wdGlvbnM9dC5vcHRpb25zLmxpc3Rfb3B0aW9ucyksImZpbGVzIj09PXQudHlwZSYmKHQubGltaXQ9InNpbmdsZSI9PT10LmlkZW50aWZpZXI/MToxMCkse2lkOnQuaWQsbmFtZTp0Lm5hbWUsdmFsdWU6dC52YWx1ZSxkZXNjcmlwdGlvbjp0LmRlc2NyaXB0aW9uLHR5cGU6dC50eXBlLGxpc3RPcHRpb25zOnQubGlzdE9wdGlvbnMsbGltaXQ6dC5saW1pdCxyZXF1aXJlZDp0LnJlcXVpcmVkLG9wdGlvbnM6dC5vcHRpb25zLGlkZW50aWZpZXI6dC5pZGVudGlmaWVyLGlzQ29udHJvbGxpbmdBdHRyaWJ1dGU6dC5pc19jb250cm9sbGluZ19hdHRyaWJ1dGV9fSkpfWZ1bmN0aW9uIFd0KCl7cmV0dXJuKFd0PWh0KGF0KCkubWFyaygoZnVuY3Rpb24gdChlLG4sbyxpKXt2YXIgYSxzLGM7cmV0dXJuIGF0KCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIGE9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvdGlja2V0cy90aWNrZXRfZm9ybSIscz12dCh7dGlja2V0X3R5cGVfaWQ6bixhdHRyaWJ1dGVzOkpTT04uc3RyaW5naWZ5KG8pfSxpJiZ7dXBkYXRlZF9hdHRyaWJ1dGVfaWQ6aX0pLHQubmV4dD00LHUuQS5wb3N0KHt1cmw6YSxzZXNzaW9uOmUscGFyYW1zOnN9KTtjYXNlIDQ6cmV0dXJuIGM9dC5zZW50LHQuYWJydXB0KCJyZXR1cm4iLEt0KGMpKTtjYXNlIDY6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBLdCh0KXtyZXR1cm57dGlja2V0VHlwZUlkOnQudGlja2V0X3R5cGVfaWQsbmFtZTp0Lm5hbWUsZm9ybUZpZWxkczpxdCh0LmZvcm1fZmllbGRzKX19ZnVuY3Rpb24gWnQodCl7cmV0dXJuIHQ/dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB2dCh7fSx0LHtzZXJpYWxpemVkX29iamVjdDpKdCh0LnJ1bGVzZXRfbGlua19vYmplY3RfdHlwZSx0LnNlcmlhbGl6ZWRfb2JqZWN0KX0pfSkpOltdfWZ1bmN0aW9uIEp0KHQsZSl7c3dpdGNoKHQpe2Nhc2UiaW5ib3VuZF90cmlnZ2VyIjpjYXNlImluYm91bmRfY3VzdG9tX2JvdCI6cmV0dXJuIFl0KGUpO2Nhc2UibWVzc2VuZ2VyX3RyaWdnZXIiOmNhc2UiYnV0dG9uX2N1c3RvbV9ib3QiOmNhc2UidHJpZ2dlcmFibGVfY3VzdG9tX2JvdCI6cmV0dXJuKDAsQy5HbikoZSk7ZGVmYXVsdDpyZXR1cm4gZX19ZnVuY3Rpb24gWXQodCl7cmV0dXJuIHQ/e3N1Z2dlc3Rpb25QYXJ0czpYdCh0KSxjb21wb3NlckRpc2FibGVkOnQuY29tcG9zZXJfZGlzYWJsZWQscHJvbXB0OnQucHJvbXB0LHJ1bGVzZXRJZDp0LnJ1bGVzZXRfaWQsc3VnZ2VzdGlvbnM6dC5zdWdnZXN0aW9ucy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm57cHJlQWN0aW9uOnQucHJlX2FjdGlvbix0ZXh0OnQudGV4dCx1dWlkOnQudXVpZH19KHQpfSkpLHVwZGF0ZWRBdDp0LnVwZGF0ZWRfYXQscHJpb3JpdHk6dC5wcmlvcml0eSxzbmFwc2hvdElkOnQuc25hcHNob3RfaWQsd2VsY29tZVBhcnRzOihlPXQud2VsY29tZV9wYXJ0c3x8W10sZS5tYXAoTnQpKSx1eFN0eWxlOnQudXhfc3R5bGU/e2NvbnRhaW5lcjp0LnV4X3N0eWxlLmNvbnRhaW5lcixhbGlnbkJ1dHRvbnM6dC51eF9zdHlsZS5hbGlnbl9idXR0b25zLHdlbGNvbWVQYXJ0c1dpdGhTdWdnZXN0aW9uczp0LnV4X3N0eWxlLndlbGNvbWVfcGFydHNfd2l0aF9zdWdnZXN0aW9uc306bnVsbH06bnVsbDt2YXIgZX1mdW5jdGlvbiBRdCh0KXtyZXR1cm4gdD97aWQ6dC5pZCxwYXJ0czp0LnBhcnRzLG9wZXJhdG9yOigwLEMuUFMpKHQub3BlcmF0b3IpfTpudWxsfWZ1bmN0aW9uIFh0KHQpe3ZhciBlPXQucGFydHMsbj10Lm9wZXJhdG9yO3JldHVybiBlJiZuP3twYXJ0czplLG9wZXJhdG9yOigwLEMuUFMpKG4pfTp2b2lkIDB9ZnVuY3Rpb24gJHQodCl7dmFyIGU9KDAsaC51RSkod2luZG93KTtlJiYodC5zZGtfd2Vidmlld19wbGF0Zm9ybT1lKX1mdW5jdGlvbiB0ZSgpe3JldHVybigwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2NvbnZlcnNhdGlvbnMvdHJhbnNjcmlwdCJ9ZnVuY3Rpb24gZWUodCl7dmFyIGU9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvY3VzdG9tX2Vtb2ppcyI7cmV0dXJuIHUuQS5wb3N0KHt1cmw6ZSxzZXNzaW9uOnR9KX1mdW5jdGlvbiBuZSh0KXtyZXR1cm57Y2FyZHM6dC5jYXJkcy5tYXAoKGZ1bmN0aW9uKHQpe2lmKCJtZXNzZW5nZXJfYXBwIj09PXQudHlwZSlyZXR1cm57dHlwZTp0LnR5cGUsY2FyZF90aXRsZTp0LmNhcmRfdGl0bGUsdXJpOnQuZmFsbGJhY2tfdXJsLGNhbnZhczp0LmNhbnZhcyxtZXNzZW5nZXJBcHBJZDp0Lm1lc3Nlbmdlcl9hcHBfaWQsbWVzc2VuZ2VyQ2FyZElkOnQubWVzc2VuZ2VyX2NhcmRfaWR9O2lmKCJyZWNlbnRfY29udmVyc2F0aW9uIj09PXQudHlwZSlyZXR1cm57dHlwZTp0LnR5cGUsY2FyZF90aXRsZTp0LmNhcmRfdGl0bGUsbGltaXQ6dC5saW1pdCxjb252ZXJzYXRpb25zOnQuY29udmVyc2F0aW9ucy5tYXAoTHQpfTtpZigicmVjZW50X3RpY2tldHMiPT09dC50eXBlJiZ0LnRpY2tldHMpcmV0dXJue3R5cGU6dC50eXBlLGNhcmRfdGl0bGU6dC5jYXJkX3RpdGxlLHRpY2tldHM6dC50aWNrZXRzLm1hcChDLkoxKX07aWYoIm5ld19jb252ZXJzYXRpb24iPT09dC50eXBlJiZ0LmFjdGlvbil7dmFyIGU9dC5hY3Rpb247cmV0dXJuIHZ0KHt9LHQse2FjdGlvbjp2dCh7fSxlLHthdmF0YXJfZGV0YWlsczprKGUuYXZhdGFyX2RldGFpbHMpfSl9KX1yZXR1cm4gdH0pKX19ZnVuY3Rpb24gcmUodCl7dmFyIGU9dC5zZXNzaW9uLG49KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvZXh0ZW5kX3Nlc3Npb24iO3JldHVybiB1LkEucG9zdCh7dXJsOm4sc2Vzc2lvbjplLHBhcmFtczp7fX0pfWZ1bmN0aW9uIG9lKHQpe2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBlbmRwb2ludHM6IGV4cGVjdGVkIGFuIGFycmF5Iik7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtpZighdHx8Im9iamVjdCIhPT1zdCh0KSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZW5kcG9pbnQ6IGV4cGVjdGVkIGFuIG9iamVjdCIpO3ZhciBlPXQ7cmV0dXJue2VuZHBvaW50OlN0cmluZyhlLmVuZHBvaW50fHwiIiksZmFsbGJhY2s6QXJyYXkuaXNBcnJheShlLmZhbGxiYWNrKT9lLmZhbGxiYWNrLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fSkpOnZvaWQgMCxjb25uZWN0aXZpdHlDaGVja1VybDplLmNvbm5lY3Rpdml0eV9jaGVja191cmw/U3RyaW5nKGUuY29ubmVjdGl2aXR5X2NoZWNrX3VybCk6dm9pZCAwLHdzQ29ubmVjdGl2aXR5Q2hlY2tVcmw6ZS53c19jb25uZWN0aXZpdHlfY2hlY2tfdXJsP1N0cmluZyhlLndzX2Nvbm5lY3Rpdml0eV9jaGVja191cmwpOnZvaWQgMH19KSl9ZnVuY3Rpb24gaWUoKXtyZXR1cm4oaWU9aHQoYXQoKS5tYXJrKChmdW5jdGlvbiB0KGUpe3ZhciBuLG8saTtyZXR1cm4gYXQoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gbj1lLnNlc3Npb24sbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvcnRtL2F1dGhvcml6ZSIsdC5uZXh0PTQsdS5BLnBvc3Qoe3VybDpvLHNlc3Npb246bixwYXJhbXM6e319KTtjYXNlIDQ6cmV0dXJuIGk9dC5zZW50LHQuYWJydXB0KCJyZXR1cm4iLHt0b2tlbjpTdHJpbmcoaS50b2tlbil9KTtjYXNlIDY6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBhZSgpe3JldHVybihhZT1odChhdCgpLm1hcmsoKGZ1bmN0aW9uIHQoZSl7dmFyIG4sbyxpO3JldHVybiBhdCgpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiBuPWUuc2Vzc2lvbixvPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9ydG0vY29ubmVjdCIsdC5uZXh0PTQsdS5BLnBvc3Qoe3VybDpvLHNlc3Npb246bixwYXJhbXM6e319KTtjYXNlIDQ6cmV0dXJuIGk9dC5zZW50LHQuYWJydXB0KCJyZXR1cm4iLHtjaGFubmVsOlN0cmluZyhpLmNoYW5uZWx8fCIiKSxlbmRwb2ludHM6b2UoaS5lbmRwb2ludHMpfSk7Y2FzZSA2OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCl9KSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdWUoKXtyZXR1cm4odWU9aHQoYXQoKS5tYXJrKChmdW5jdGlvbiB0KGUpe3ZhciBuLG8saTtyZXR1cm4gYXQoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gbj1lLnNlc3Npb24sbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9uZXh1c19jb25maWciLHQubmV4dD00LHUuQS5wb3N0KHt1cmw6byxzZXNzaW9uOm4scGFyYW1zOnt9fSk7Y2FzZSA0OnJldHVybiBpPXQuc2VudCx0LmFicnVwdCgicmV0dXJuIix7ZW5kcG9pbnRzOmkuZW5kcG9pbnRzfHxbXSxvcHRpb25zOmkub3B0aW9uc3x8bnVsbH0pO2Nhc2UgNjpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQpfSkpKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHNlKHQsZSxuKXt2YXIgbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9tZWV0aW5nL2Jvb2siLGk9e2NvbnZlcnNhdGlvbl9pZDplLHN0YXJ0X3RpbWU6bn07cmV0dXJuIHUuQS5wb3N0KHt1cmw6byxzZXNzaW9uOnQscGFyYW1zOml9KX1mdW5jdGlvbiBjZSh0LGUsbil7dm9pZCAwPT09biYmKG49MCk7dmFyIG89KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvbWVldGluZy9hdmFpbGFiaWxpdHkiLGk9e2NvbnZlcnNhdGlvbl9pZDplLG1vbnRoX29mZnNldDpufTtyZXR1cm4gdS5BLnBvc3Qoe3VybDpvLHNlc3Npb246dCxwYXJhbXM6aX0pfWZ1bmN0aW9uIGxlKHQpe3ZhciBlPXQuc2Vzc2lvbixuPXQudG9rZW4sbz10LnNlbGVjdG9yLGk9dC51cmwsYT0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9lbGVtZW50X3BpY2tlci9zZXNzaW9ucy9zZWxlY3RvciIscz17dG9rZW46bixzZWxlY3RvcjpvLHVybDppfTtyZXR1cm4gdS5BLnBvc3Qoe3VybDphLHNlc3Npb246ZSxwYXJhbXM6c30pfWZ1bmN0aW9uIGZlKHQsZSxuKXt2YXIgbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9jb252ZXJzYXRpb25zLyIrZSsiL2hhbmRvdmVyX2N0YV9zcGF3biIsaT17Y29udmVyc2F0aW9uX2lkOmUsY29udmVyc2F0aW9uX3BhcnRfaWQ6bn07cmV0dXJuIHUuQS5wb3N0KHt1cmw6byxzZXNzaW9uOnQscGFyYW1zOml9KX12YXIgZGU9e2FkZENvbnZlcnNhdGlvblJhdGluZ1JlbWFyazpmdW5jdGlvbih0LGUsbixvKXt2YXIgaT0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9jb252ZXJzYXRpb25zLyIrZSsiL3JlbWFyayIsYT17cmVtYXJrOm8scmF0aW5nX3V1aWQ6bn07cmV0dXJuIHUuQS5wb3N0KHt1cmw6aSxzZXNzaW9uOnQscGFyYW1zOmF9KS50aGVuKChmdW5jdGlvbigpe30pKX0sYm9va01lZXRpbmc6c2UsZ2V0TWVldGluZ0F2YWlsYWJpbGl0eTpjZSxidWlsZEJhbm5lcjpDLkZ5LGJ1aWxkQ29tbWVudDpOdCxidWlsZENvbXBvc2VyU3VnZ2VzdGlvbnM6WXQsYnVpbGRCb3RJbnRybzpRdCxidWlsZFRvdXI6Qy5uZixjaGFuZ2VDb252ZXJzYXRpb25SYXRpbmdJbmRleDpmdW5jdGlvbih0LGUsbixvKXt2YXIgaT0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9jb252ZXJzYXRpb25zLyIrZSsiL3JhdGUiLGE9e3JhdGluZ19pbmRleDpvLHJhdGluZ191dWlkOm59O3JldHVybiB1LkEucG9zdCh7dXJsOmksc2Vzc2lvbjp0LHBhcmFtczphfSkudGhlbigoZnVuY3Rpb24oKXt9KSl9LGNvbGxlY3RFbWFpbEZyb21CYW5uZXI6ZnVuY3Rpb24odCxlLG4sbyl7dmFyIGk9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvYmFubmVycy8iK2UrIi9jb2xsZWN0X2VtYWlsIixhPU9iamVjdC5hc3NpZ24oe2VtYWlsOm99LCgwLEMuTG8pKG4pKTtyZXR1cm4gdS5BLnBvc3Qoe3VybDppLHNlc3Npb246dCxwYXJhbXM6YX0pfSxjb21wbGV0ZVRvdXI6ZnVuY3Rpb24odCxlLG4pe3ZhciBvPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL3RvdXJzLyIrZSsiL2NvbXBsZXRlIixpPSgwLEMuUGMpKG4pO3JldHVybiB1LkEucG9zdCh7dXJsOm8sc2Vzc2lvbjp0LHBhcmFtczppfSl9LGNyZWF0ZUFydGljbGVSZWFjdGlvbjpmdW5jdGlvbih0LGUsbixvLGksYSxzLGMpe3ZvaWQgMD09PW8mJihvPSExKSx2b2lkIDA9PT1pJiYoaT1udWxsKSx2b2lkIDA9PT1zJiYocz0iaGVscF9jZW50ZXIiKSx2b2lkIDA9PT1jJiYoYz1udWxsKTt2YXIgbD0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9hcnRpY2xlcy8iK2UrIi9yZWFjdCIsZj17cmVhY3Rpb25faW5kZXg6bixhbGxvd19hdXRvX3Jlc3BvbnNlczpvLGFydGljbGVfY29udGVudF9pZDppLGFydGljbGVfY2hhbm5lbDpzLGFydGljbGVfc291cmNlOmMsaGVscF9jZW50ZXJfaWQ6YX07cmV0dXJuIHUuQS5wb3N0KHt1cmw6bCxzZXNzaW9uOnQscGFyYW1zOmZ9KS50aGVuKChmdW5jdGlvbigpe30pKX0sY3JlYXRlQ29tbWVudDpmdW5jdGlvbih0LGUsbixvLHMsYyxsLGYpe3ZvaWQgMD09PWYmJihmPXt9KTt2YXIgZD1mLmxhc3RBZG1pblBhcnRDcmVhdGVkQXR8fG51bGwscD1mLm5leHVzQ29ubmVjdGlvblN0YXR1c3x8bnVsbCxoPWYucGFydElkc3x8bnVsbCx2PWYubGFzdEFkbWluUGFydElkfHxudWxsLHk9Zi5sYXN0QWRtaW5QYXJ0Q2xpZW50VXVpZHx8bnVsbCxnPWYuY3VycmVudFBhZ2VEYXRhfHxudWxsLG09Zi5jb21wb3NlclN1Z2dlc3Rpb25JdGVtfHxudWxsLGI9Zi5wbGFuU3RlcElkfHxudWxsLHc9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvY29udmVyc2F0aW9ucy8iK2UrIi9yZXBseSIsXz0oMCxDLkt1KSh7YmxvY2tzOm8sY3JlYXRlZEF0OnMsY2xpZW50SWQ6bixlbWFpbDpsfSk7bSYmKF89T2JqZWN0LmFzc2lnbih7fSxfLHtzbWFydF9zdWdnZXN0aW9uOkpTT04uc3RyaW5naWZ5KG0pfSkpLGQmJmgmJihfPU9iamVjdC5hc3NpZ24oe30sXyx7bGFzdF9hZG1pbl9wYXJ0X2NyZWF0ZWRfYXQ6ZCxsYXN0X2FkbWluX3BhcnRfaWQ6dixsYXN0X2FkbWluX3BhcnRfY2xpZW50X3V1aWQ6eSxwYXJ0X2lkczpoLnRvU3RyaW5nKCl9KSkscCYmKF89T2JqZWN0LmFzc2lnbih7fSxfLHtuZXh1c19jb25uZWN0aW9uX3N0YXR1czpKU09OLnN0cmluZ2lmeSh2dCh7fSxwLHtnbG9iYWxDb25uZWN0aW9uU3RhdGU6d2luZG93Lm5leHVzQ29ubmVjdGlvblN0YXRlfSkpfSkpLGcmJihfPU9iamVjdC5hc3NpZ24oe30sXyx7Y3VycmVudF9wYWdlX2RhdGE6SlNPTi5zdHJpbmdpZnkoZyl9KSksYiYmKF89T2JqZWN0LmFzc2lnbih7fSxfLHtwbGFuX3N0ZXBfaWQ6Yn0pKTt2YXIgUz17dXJsOncsc2Vzc2lvbjp0LHBhcmFtczpfLGhlYWRlcnM6eyJYLUNPTlRJTlVFLUlOVEVSQ09NLVRSQUNFIjoidHJ1ZSJ9fSx4PWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LE50KHQpLHtjbGllbnRJZDpufSl9O2lmKEYuZi5pc0VuYWJsZWQoKSl7dmFyIEU9bmV3IEYuZigicmVwbHkiLGUpO3JldHVybiBFLnNldEF0dHJpYnV0ZXMoeyJuZXh1cy5jb25uZWN0aW9uX3N0YXRlIjp3aW5kb3cubmV4dXNDb25uZWN0aW9uU3RhdGV9KSxpLl8ud2l0aChhLnUuc2V0U3BhbihpLl8uYWN0aXZlKCksRS5nZXRGaXJzdFRva2VuU3BhbigpKSwoZnVuY3Rpb24oKXtyZXR1cm4gdS5BLnBvc3QoUykudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIEUuc2V0Q29tbWVudENyZWF0ZWRBdChlLHQuY3JlYXRlZF9hdCkseCh0KX0pKX0pKX1yZXR1cm4gdS5BLnBvc3QoUykudGhlbih4KX0sY3JlYXRlQ29udmVyc2F0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5ibG9ja3Mscz1lLmNyZWF0ZWRBdCxjPWUuZW1haWwsbD1lLmNvbXBvc2VyU3VnZ2VzdGlvbnMsZj1lLnNlbGZTZXJ2ZVN1Z2dlc3Rpb25zTWF0Y2gsZD1lLnJlc29sdXRpb25Cb3RCZWhhdmlvclZlcnNpb25JZCxwPWUuYm90SW50cm8saD1lLmN1cnJlbnRVcmwsdj1lLnN0YXJ0ZWRGcm9tU2VhcmNoQnJvd3NlLHk9dm9pZCAwIT09diYmdixnPWUubWVzc2VuZ2VyT3BlblJlcXVlc3RJZCxtPXZvaWQgMD09PWc/bnVsbDpnLGI9ZS5jdXN0b21BdHRyaWJ1dGVzLHc9dm9pZCAwPT09Yj9udWxsOmIsXz1lLmNsaWVudElkLFM9dm9pZCAwPT09Xz9udWxsOl8seD1lLmN1cnJlbnRQYWdlRGF0YSxFPXZvaWQgMD09PXg/bnVsbDp4LE89ZS5yb2xlTWF0Y2hpbmdEYXRhLEE9ZS5zaG9waWZ5Q2FydFRva2VuLEk9dm9pZCAwPT09QT9udWxsOkEsaz1lLmNvbXBvc2VyU3VnZ2VzdGlvbkl0ZW0sTD12b2lkIDA9PT1rP251bGw6ayxUPWUuZnJvbUJvb2tNZWV0aW5nQnV0dG9uLGo9dm9pZCAwIT09VCYmVCxQPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL21lc3NhZ2VzIixOPSgwLEMuS3UpKHtibG9ja3M6bixjcmVhdGVkQXQ6cyxjbGllbnRJZDpTfHwoMCxvLmwpKCksZW1haWw6Yyxjb21wb3NlclN1Z2dlc3Rpb25zOmwsc2VsZlNlcnZlU3VnZ2VzdGlvbnNNYXRjaDpmLGJvdEludHJvOnAscmVzb2x1dGlvbkJvdEJlaGF2aW9yVmVyc2lvbklkOmQsc3RhcnRlZEZyb21TZWFyY2hCcm93c2U6eSxtZXNzZW5nZXJPcGVuUmVxdWVzdElkOm0sY3VzdG9tQXR0cmlidXRlczp3fSk7TCYmKE49T2JqZWN0LmFzc2lnbih7fSxOLHtzbWFydF9zdWdnZXN0aW9uOkpTT04uc3RyaW5naWZ5KEwpfSkpLEUmJihOPU9iamVjdC5hc3NpZ24oe30sTix7Y3VycmVudF9wYWdlX2RhdGE6SlNPTi5zdHJpbmdpZnkoRSl9KSksTyYmKE49T2JqZWN0LmFzc2lnbih7fSxOLHtyb2xlX21hdGNoaW5nX2RhdGE6SlNPTi5zdHJpbmdpZnkoTyl9KSksSSYmKE49T2JqZWN0LmFzc2lnbih7fSxOLHtzaG9waWZ5X2NhcnRfdG9rZW46SX0pKSxqJiYoTj1PYmplY3QuYXNzaWduKHt9LE4se2Zyb21fYm9va19tZWV0aW5nX2J1dHRvbjoidHJ1ZSJ9KSk7dmFyIE09e3VybDpQLHNlc3Npb246dCxwYXJhbXM6TixoZWFkZXJzOnsiWC1DT05USU5VRS1JTlRFUkNPTS1UUkFDRSI6InRydWUifX07aWYoaCYmKE0uY3VycmVudFVybD1oKSxGLmYuaXNFbmFibGVkKCkpe3ZhciBSPW5ldyBGLmYoImNyZWF0ZV9jb252ZXJzYXRpb24iKTtyZXR1cm4gUi5zZXRBdHRyaWJ1dGVzKHsibmV4dXMuY29ubmVjdGlvbl9zdGF0ZSI6d2luZG93Lm5leHVzQ29ubmVjdGlvblN0YXRlfSksaS5fLndpdGgoYS51LnNldFNwYW4oaS5fLmFjdGl2ZSgpLFIuZ2V0Rmlyc3RUb2tlblNwYW4oKSksKGZ1bmN0aW9uKCl7cmV0dXJuIHUuQS5wb3N0KE0pLnRoZW4oKGZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBSLnNldENvbW1lbnRDcmVhdGVkQXQodC5pZCxudWxsPT0oZT10LmNvbnZlcnNhdGlvbl9wYXJ0c1swXSk/dm9pZCAwOmUuY3JlYXRlZF9hdCksTHQodCl9KSl9KSl9cmV0dXJuIHUuQS5wb3N0KE0pLnRoZW4oTHQpfSxjcmVhdGVFdmVudDpmdW5jdGlvbih0LGUsbixvKXtpZih2b2lkIDA9PT1vJiYobz0hMSksbylyZXR1cm4gYnQodCxlLG4pLnRoZW4oKGZ1bmN0aW9uKCl7fSkpO3ZhciBpPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2V2ZW50cyIsYT17ZXZlbnRfbmFtZTplLG1ldGFkYXRhOm59LGM9e2V2ZW50X2xpc3Q6SlNPTi5zdHJpbmdpZnkoe2RhdGE6W2FdfSl9O3JldHVybiB1LkEucG9zdCh7dXJsOmksc2Vzc2lvbjp0LHBhcmFtczpjfSkudGhlbigoZnVuY3Rpb24odCl7aWYoISgwLHMuSSkodCkpcmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0sbj1lLmJhbm5lcixyPWUuY3VzdG9tX2JvdCxvPWUuY2xpZW50X21hdGNoZXMsaT1lLnRvdXIsYT1lLnN1cnZleSx1PWUubnVkZ2U7cmV0dXJue2Jhbm5lcjpuPygwLEMuRnkpKG4pOm4sY3VzdG9tQm90OnI/THQocik6cixjbGllbnRzaWRlUnVsZXNldENvbmRpdGlvbnM6WnQob3x8W10pLHRvdXI6aT8oMCxDLm5mKShpKTppLHN1cnZleTphPygwLEMuSGQpKGEpOmEsbnVkZ2U6dT8oMCxDLl9KKSh1KTp1fX0odCl9KSl9LGNyZWF0ZU1ldHJpY3M6ZnVuY3Rpb24odCxlLG4saSxhLHMpe3ZvaWQgMD09PW4mJihuPVtdKSx2b2lkIDA9PT1pJiYoaT1bXSksdm9pZCAwPT09YSYmKGE9W10pLHZvaWQgMD09PXMmJihzPSExKTt2YXIgYz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9tZXRyaWNzIixsPSgwLG8ubCkoKSxmPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybnttZXRyaWNzOkpTT04uc3RyaW5naWZ5KHQpLGxvZ3M6SlNPTi5zdHJpbmdpZnkoZSksb3BfbWV0cmljczpKU09OLnN0cmluZ2lmeShuKSxoY19tZXRyaWNzOkpTT04uc3RyaW5naWZ5KHIpfX0oZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB2dCh7fSx0LHttZXRhZGF0YTp2dCh7fSx0Lm1ldGFkYXRhfHx7fSx7aHR0cF9yZXF1ZXN0X2lkOmx9KX0pfSkpLG4saSxhKTtyZXR1cm4gcz91LkEuc2VuZEJlYWNvbih7dXJsOmMsc2Vzc2lvbjp0LHBhcmFtczpmLHNob3VsZFNldFVzZXJEYXRhOiExfSk6dS5BLmZldGNoKHt1cmw6YyxzZXNzaW9uOnQscGFyYW1zOmYsc2hvdWxkU2V0VXNlckRhdGE6ITEsa2VlcGFsaXZlOiEwfSkudGhlbigoZnVuY3Rpb24oKXt9KSl9LGNyZWF0ZU9yVXBkYXRlVXNlcjpmdW5jdGlvbih0LGUsbixvLGksYSxzLGMsZil7dm9pZCAwPT09ZSYmKGU9e30pLHZvaWQgMD09PXMmJihzPSExKSx2b2lkIDA9PT1jJiYoYz0hMSksZT15dCh7fSxlKSx2b2lkIDAhPT1uJiYoZS5hbm9ueW1vdXNfZW1haWw9bik7dmFyIGQ9e3NvdXJjZTppLHNhbXBsaW5nOmN9O3ZvaWQgMCE9PW8mJihkLl9pbnRlcmNvbUVuY3J5cHRlZFBheWxvYWQ9byk7dmFyIGg9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvcGluZyI7cmV0dXJuIHUuQS5wb3N0KHt1cmw6aCxzZXNzaW9uOnQscGFyYW1zOmQsY3VzdG9tQXR0cmlidXRlczplLGludGVybmFsOmEsaXNJbnRlcnNlY3Rpb25Cb290ZWQ6cyxhbm9ueW1vdXNTZXNzaW9uRHVyYXRpb246Zn0pLnRoZW4oKGZ1bmN0aW9uKHQpe3ZhciBlPXQuZXJyb3JzO3JldHVybiBlP3tlcnJvcnM6ZX06dm9pZCAwPT09KG51bGw9PXQ/dm9pZCAwOnQudXNlcik/e2Vycm9yczpbe2NvZGU6InBpbmdfcmV0dXJuZWRfbm9fdXNlciJ9XX06ZnVuY3Rpb24odCl7dmFyIGUsbixyLG89dC51c2VyO3QuYWN0aXZlX3RvdXImJigwLHAuazcpKCJUb3VyIGF0dGVtcHRpbmcgdG8gcmVzdW1lIGZyb20gcGluZyIsdC5hY3RpdmVfdG91cik7cmV0dXJue2lkOm8uaWQsYWN0aXZlQ29tcGFueUlkOm8uYWN0aXZlX2NvbXBhbnlfaWR8fCItMSIsYWN0aXZlVG91cjooMCxDLm5mKSh0LmFjdGl2ZV90b3VyKSxhbm9ueW1vdXNJZDpvLmFub255bW91c19pZCxhbm9ueW1vdXNTZXNzaW9uOnQuYW5vbnltb3VzX3Nlc3Npb24sYXBwOlJ0KHQpLGFydGljbGVDb252ZXJzYXRpb25JZDpKU09OLnN0cmluZ2lmeSh0LmFydGljbGVfY29udmVyc2F0aW9uX2lkKSxiYW5uZXJzOigwLEMubzgpKHQuYmFubmVycyksY2Rhc0JyZWFjaGluZ0xpbWl0OnQuY2Rhc19icmVhY2hpbmdfbGltaXR8fFtdLGNoZWNrbGlzdHM6bSh0LmNoZWNrbGlzdHMpLGNsaWVudHNpZGVSdWxlc2V0Q29uZGl0aW9uczpadCh0LmNsaWVudF9tYXRjaGVzKSxyZXF1aXJlc0Nvb2tpZUNvbnNlbnQ6by5yZXF1aXJlc19jb29raWVfY29uc2VudCxjb3VudHJ5Q29kZTpvLmNvdW50cnlfY29kZSxoYXNDb252ZXJzYXRpb25zOiExIT09by5oYXNfY29udmVyc2F0aW9ucyxpZGVudGl0eVZlcmlmaWNhdGlvblJlYWR5OnQuaWRlbnRpdHlfdmVyaWZpY2F0aW9uX3JlYWR5LGlkZW50aXR5VmVyaWZpZWQ6dC5pZGVudGl0eV92ZXJpZmllZCxpbnN0YWxsTW9kZUNvbmZpZzpNdCh0KSxsYXVuY2hlclNldHRpbmdzOigwLHYuSykodC5sYXVuY2hlcl9zZXR0aW5ncyksbGFzdENvbnRhY3RlZEF0Om8ubGFzdF9jb250YWN0ZWRfYXQsbG9jYWxlOm8ubG9jYWxlLG5ld0NvbnZlcnNhdGlvbkNvbXBvc2VyU3RhdGU6KDAsQy5rRykobnVsbD09dD92b2lkIDA6dC5jb21wb3Nlcl9zdGF0ZSksbm90aWZpY2F0aW9uTGlua0NvbnZlcnNhdGlvbklkOnQubm90aWZpY2F0aW9uX2xpbmtfY29udmVyc2F0aW9uX2lkLG5vdGlmaWNhdGlvbkxpbmtXaXRob3V0Q29udmVyc2F0aW9uOm51bGwhPShlPXQubm90aWZpY2F0aW9uX2xpbmtfd2l0aG91dF9jb252ZXJzYXRpb24pJiZlLHBob25lTnVtYmVyOm8ucGhvbmVfbnVtYmVyLHJvbGU6RnQoby5yb2xlKSx1bnJlYWRDb252ZXJzYXRpb25JZHM6bnVsbD09KG49dC51bnJlYWRfY29udmVyc2F0aW9uX2lkcyk/dm9pZCAwOm4ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC50b1N0cmluZygpfSkpLHVucmVhZERpc21pc3NlZENvbnZlcnNhdGlvbklkczpudWxsPT0ocj10LnVucmVhZF9kaXNtaXNzZWRfY29udmVyc2F0aW9uX2lkcyk/dm9pZCAwOnIubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC50b1N0cmluZygpfSkpLHVucmVhZE5ld3NJdGVtc0NvdW50OnQudW5yZWFkX25ld3NfaXRlbXNfY291bnQsdW5yZWFkVGlja2V0c0NvdW50OnQudW5yZWFkX3RpY2tldHNfY291bnQsbGFzdFVucmVhZE5ld3NJdGVtSWQ6dC5sYXN0X3VucmVhZF9uZXdzX2l0ZW1faWQsbmV3c2ZlZWRMYXN0VmlzaXQ6dC5uZXdzZmVlZF9sYXN0X3Zpc2l0PygwLGwua1UpKHQubmV3c2ZlZWRfbGFzdF92aXNpdCk6dm9pZCAwLHVzZXJTdXBwbGllZEVtYWlsOm8uYW5vbnltb3VzX2VtYWlsLG5ld1Nlc3Npb246by5uZXdfc2Vzc2lvbixzZWFyY2hSZXF1aXJlZEJlZm9yZUNvbnZlcnNhdGlvbjpvLmhlbHBfY2VudGVyX3JlcXVpcmVfc2VhcmNoLHN1cnZleTooMCxDLkhkKSh0LnN1cnZleSksdG9vbHRpcEdyb3VwczooMCxDLlVtKSh0LnRvb2x0aXBfZ3JvdXBzKSxwcmV2ZW50TXVsdGlwbGVJbmJvdW5kQ29udmVyc2F0aW9uOm8ucHJldmVudF9tdWx0aXBsZV9pbmJvdW5kX2NvbnZlcnNhdGlvbix0ZXN0QXNzaWdubWVudHM6by51c2VyX2Fzc2lnbm1lbnRzLG5ld3NmZWVkSWQ6dC5uZXdzZmVlZF9pZCxzZXNzaW9uRXhwaXJ5OnQuc2Vzc2lvbl9leHBpcnksand0RXhwaXJlZDp0Lmp3dF9leHBpcmVkfX0odCl9KSl9LGNyZWF0ZVBhZ2VWaWV3RXZlbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sY3JlYXRlUmVhY3Rpb246ZnVuY3Rpb24odCxlLG4pe3ZhciBvPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2NvbnZlcnNhdGlvbnMvIitlKyIvcmVhY3QiLGk9e3JlYWN0aW9uX2luZGV4Om59O3JldHVybiB1LkEucG9zdCh7dXJsOm8sc2Vzc2lvbjp0LHBhcmFtczppfSkudGhlbigoZnVuY3Rpb24oKXt9KSl9LGNyZWF0ZVVwbG9hZDpmdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG8saSl7aWYobnVsbCE9ciYmci5hYm9ydGVkKWkobmV3IEVycm9yKCJVcGxvYWQgYWJvcnRlZCIpKTtlbHNle3ZhciBhPW5ldyBGb3JtRGF0YTthLmFwcGVuZCgia2V5Iix0LmtleSksYS5hcHBlbmQoImFjbCIsdC5hY2wpLGEuYXBwZW5kKCJDb250ZW50LVR5cGUiLHQuY29udGVudF90eXBlKSxhLmFwcGVuZCgiQVdTQWNjZXNzS2V5SWQiLHQuYXdzX2FjY2Vzc19rZXkpLGEuYXBwZW5kKCJwb2xpY3kiLHQucG9saWN5KSxhLmFwcGVuZCgic2lnbmF0dXJlIix0LnNpZ25hdHVyZSksYS5hcHBlbmQoInN1Y2Nlc3NfYWN0aW9uX3N0YXR1cyIsdC5zdWNjZXNzX2FjdGlvbl9zdGF0dXMpLHQubWV0YWRhdGEmJnQubWV0YWRhdGEuc2FmZV9hcHBfaWQmJmEuYXBwZW5kKCJ4LWFtei1tZXRhLXNhZmVfYXBwX2lkIix0Lm1ldGFkYXRhLnNhZmVfYXBwX2lkKSxhLmFwcGVuZCgiZmlsZSIsZSk7dmFyIHU9bmV3IFhNTEh0dHBSZXF1ZXN0LHM9ITEsYz0hMSxsPWZ1bmN0aW9uKHQsZSl7c3x8KHM9ITAsciYmci5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsZCksdChlKSl9LGY9ZnVuY3Rpb24odCl7cmV0dXJuIGwoaSx0KX0sZD1mdW5jdGlvbigpe2M9ITAsdS5hYm9ydCgpLGYobmV3IEVycm9yKCJVcGxvYWQgYWJvcnRlZCIpKX07ciYmci5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsZCksdS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLChmdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aENvbXB1dGFibGUsbz10LmxvYWRlZCxpPXQudG90YWw7aWYobiYmZSYmKG51bGw9PXJ8fCFyLmFib3J0ZWQpKXt2YXIgYT1NYXRoLmZsb29yKG8vaSoxMDApO24oYSl9fSksITEpLHUuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLChmdW5jdGlvbigpe251bGwhPXImJnIuYWJvcnRlZHx8Y3x8KCgwLHkuc3EpKCJtZXNzZW5nZXJfdXBsb2FkIix7eGhyX3N0YXR1czp1LnN0YXR1cyx1cGxvYWRfc3RhdGU6ImVycm9yZWQifSwhMCksZihuZXcgRXJyb3IoIlVwbG9hZCBmYWlsZWQgd2l0aCBYSFIgZXJyb3IsIHN0YXR1czogIit1LnN0YXR1cykpKX0pLCExKSx1LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwoZnVuY3Rpb24oKXtudWxsIT1yJiZyLmFib3J0ZWR8fGN8fCgoMCx5LnNxKSgibWVzc2VuZ2VyX3VwbG9hZCIse3hocl9zdGF0dXM6dS5zdGF0dXMsdXBsb2FkX3N0YXRlOiJhYm9ydGVkIn0sITApLGYobmV3IEVycm9yKCJVcGxvYWQgYWJvcnRlZCBieSB1c2VyIG9yIHN5c3RlbSIpKSl9KSwhMSksdS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoZnVuY3Rpb24oKXt2YXIgZTtudWxsIT1yJiZyLmFib3J0ZWR8fCgyMDE9PT11LnN0YXR1cz8oZT17aWQ6dC5pZCxwdWJsaWNVcmw6dC5wdWJsaWNfdXJsLGNvbnRlbnRUeXBlOnQuY29udGVudF90eXBlfSxsKG8sZSkpOigoMCx5LnNxKSgibWVzc2VuZ2VyX3VwbG9hZCIse3hocl9zdGF0dXM6dS5zdGF0dXMsdXBsb2FkX3N0YXRlOiJmYWlsZWQifSwhMCksZihuZXcgRXJyb3IoIlVwbG9hZCBmYWlsZWQgd2l0aCBzdGF0dXMgIit1LnN0YXR1cykpKSl9KSwhMSksdS5vcGVuKCJQT1NUIix0LnVwbG9hZF9kZXN0aW5hdGlvbiwhMCksdS5zZW5kKGEpfX0pKX0sY3JlYXRlVXBsb2FkUG9saWN5OmZ1bmN0aW9uKHQsZSxuKXt2b2lkIDA9PT1uJiYobj17fSk7dmFyIG89bi5kaW1lbnNpb25zLGk9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvdXBsb2FkcyIsYT12b2lkIDAhPT0obnVsbD09bz92b2lkIDA6by53aWR0aCkmJnZvaWQgMCE9PShudWxsPT1vP3ZvaWQgMDpvLmhlaWdodCkscz17aW5jbHVkZV9tZXRhZGF0YTohMCx1cGxvYWQ6SlNPTi5zdHJpbmdpZnkodnQoe29yaWdpbmFsX2ZpbGVuYW1lOigwLGMuVyQpKGUubmFtZSksc2l6ZV9pbl9ieXRlczplLnNpemUsY29udGVudF90eXBlOmUudHlwZX0sYSYme3dpZHRoOm8ud2lkdGgsaGVpZ2h0Om8uaGVpZ2h0fSkpfTtyZXR1cm4gdS5BLnBvc3Qoe3VybDppLHNlc3Npb246dCxwYXJhbXM6c30pLnRoZW4oQy5vRil9LGRpc2FibGVJbnN0YWxsTW9kZTpmdW5jdGlvbih0KXt2YXIgZT0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9pbnN0YWxsIjtyZXR1cm4gdS5BLnBvc3Qoe3VybDplLHNlc3Npb246dH0pfSxkaXNtaXNzQmFubmVyOmZ1bmN0aW9uKHQsZSxuKXt2YXIgbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9iYW5uZXJzLyIrZSsiL2Rpc21pc3MiLGk9KDAsQy5Mbykobik7cmV0dXJuIHUuQS5wb3N0KHt1cmw6byxzZXNzaW9uOnQscGFyYW1zOml9KX0sZGlzbWlzc05vdGlmaWNhdGlvbnM6ZnVuY3Rpb24odCxlKXt2YXIgbj0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9jb252ZXJzYXRpb25zL2Rpc21pc3MiLG89e2NvbnZlcnNhdGlvbl9pZHM6ZX07cmV0dXJuIHUuQS5wb3N0KHt1cmw6bixzZXNzaW9uOnQscGFyYW1zOm99KS50aGVuKChmdW5jdGlvbigpe30pKX0sc2V0VXNlckF1dGhUb2tlbnM6ZnVuY3Rpb24odCxlKXt2YXIgbj0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi91c2VyX2F1dGhfdG9rZW5zIixvPXthdXRoX3Rva2VuczpKU09OLnN0cmluZ2lmeShlKX07cmV0dXJuIHUuQS5wb3N0KHt1cmw6bixzZXNzaW9uOnQscGFyYW1zOm99KS50aGVuKChmdW5jdGlvbigpe30pKX0sZmV0Y2hCYW5uZXJWaWV3OmZ1bmN0aW9uKHQsZSxuKXt2b2lkIDA9PT1uJiYobj17fSk7dmFyIG89KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvYmFubmVycy8iK2UrIi9mZXRjaCIsaT17ZXZlbnRfbWV0YWRhdGE6SlNPTi5zdHJpbmdpZnkobil9O3JldHVybiB1LkEucG9zdCh7dXJsOm8sc2Vzc2lvbjp0LHBhcmFtczppfSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuKDAsQy5GeSkodC5iYW5uZXIpfSkpfSxmZXRjaENoZWNrbGlzdDpmdW5jdGlvbih0KXt2YXIgZT12b2lkIDA9PT10P3t9OnQsbj1lLnNlc3Npb24sbz1lLnJ1bGVzZXRJZCxpPWUudHJpZ2dlck1ldGhvZDtpZihuKXsoMCxkLkMyKSgiQXR0ZW1wdGluZyB0byBmZXRjaCBjaGVja2xpc3Qgd2l0aCBzZXNzaW9uIGRhdGEuIik7dmFyIGE9e3RyaWdnZXJfbWV0aG9kOml9O3JldHVybiB1LkEucG9zdCh7dXJsOigwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2NoZWNrbGlzdHMvIitvKyIvZmV0Y2giLHNlc3Npb246bixwYXJhbXM6YX0pLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiBtKFt0LmNoZWNrbGlzdF0pWzBdfSkpfX0sZmV0Y2hDcm9zc0RvbWFpblRva2VuOmZ1bmN0aW9uKHQsZSl7dmFyIG49KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvY3Jvc3NfZG9tYWluX3Rva2VuIixvPXthdWRpZW5jZTplfTtyZXR1cm4gdS5BLnBvc3Qoe3VybDpuLHNlc3Npb246dCxwYXJhbXM6byxoZWFkZXJzOnsiWC1JbnRlcmNvbS1YRC1SZXF1ZXN0IjoiMSJ9fSkudGhlbigoZnVuY3Rpb24odCl7dmFyIGU9dC54ZF90b2tlbixuPXQuZXhwaXJlc19hdDtpZigic3RyaW5nIiE9dHlwZW9mIGV8fDA9PT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgeGRfdG9rZW4gcmVzcG9uc2UiKTtyZXR1cm57eGRUb2tlbjplLGV4cGlyZXNBdDpufX0pKX0sZmV0Y2hNZXNzZW5nZXJTaGVldERhdGE6ZnVuY3Rpb24odCxlLG4sbyl7dmFyIGk9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvc2hlZXRzL29wZW4iLGE9e2FjdGlvbl9pZDpuLHVyaTplLHZhbHVlczpKU09OLnN0cmluZ2lmeShvKX07cmV0dXJuIHUuQS5wb3N0KHt1cmw6aSxzZXNzaW9uOnQscGFyYW1zOmF9KX0sZmV0Y2hNZXNzZW5nZXJTaGVldERhdGFXaXRoVG9rZW46ZnVuY3Rpb24odCxlLG4pe3ZhciBvPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL21lc3Nlbmdlcl9jYXJkX3ZpZXcvb3Blbl9zaGVldCIsaT17YWN0aW9uX2lkOmUsdG9rZW46dCx2YWx1ZXM6SlNPTi5zdHJpbmdpZnkobil9O3JldHVybiB1LkEucG9zdCh7dXJsOm8scGFyYW1zOml9KX0sZmV0Y2hTdXJ2ZXk6ZnVuY3Rpb24odCl7dmFyIGU9dm9pZCAwPT09dD97fTp0LG49ZS5zZXNzaW9uLG89ZS5ydWxlc2V0SWQsaT1lLnRyaWdnZXJNZXRob2QsYT1lLmlzUHJldmlldyxzPWUudG9rZW47aWYoIW4mJiFzKXJldHVybigwLGYuU2MpKCJBIHNlc3Npb24gb3IgYSB0b2tlbiBtdXN0IGJlIHN1cHBsaWVkIHdoZW4gZmV0Y2hpbmcgYSBzdXJ2ZXkiKSxQcm9taXNlLnJlamVjdCgibWlzc2luZ19zZXNzaW9uX2FuZF90b2tlbiIpO2lmKG4peygwLGYuU2MpKCJBdHRlbXB0aW5nIHRvIGZldGNoIHN1cnZleSB3aXRoIHNlc3Npb24gZGF0YS4iKTt2YXIgYz17dHJpZ2dlcl9tZXRob2Q6aSxpc19wcmV2aWV3OmF9O3JldHVybiB1LkEucG9zdCh7dXJsOigwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL3N1cnZleXMvIitvKyIvZmV0Y2giLHNlc3Npb246bixwYXJhbXM6Y30pLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybigwLEMuSGQpKHQuc3VydmV5KX0pKX19LGZldGNoQWN0aXZlU3VydmV5UHJvZ3Jlc3M6ZnVuY3Rpb24odCl7dmFyIGU9dm9pZCAwPT09dD97fTp0LG49ZS5zZXNzaW9uLG89ZS5lbnRpdHlJZCxpPXtlbnRpdHlfaWQ6byxlbnRpdHlfdHlwZTplLmVudGl0eVR5cGV9LGE9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvc3VydmV5cy9mZXRjaF9hY3RpdmVfc3VydmV5IjtpZihuKXJldHVybigwLGYuU2MpKCJBdHRlbXB0aW5nIHRvIGZldGNoIGFjdGl2ZSBzdXJ2ZXkgcHJvZ3Jlc3Mgd2l0aCBpZCAiK28pLHUuQS5wb3N0KHt1cmw6YSxzZXNzaW9uOm4scGFyYW1zOml9KS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4oMCxDLkhkKSh0LnN1cnZleSl9KSl9LGZldGNoU3VydmV5Rm9yUHJldmlldzpmdW5jdGlvbih0KXt2YXIgZT12b2lkIDA9PT10P3t9OnQsbj1lLnNlc3Npb24sbz1lLnN1cnZleUlkLGk9e3N1cnZleV9pZDpvfSxhPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL3N1cnZleXMvZmV0Y2hfZm9yX3ByZXZpZXciO2lmKG4pcmV0dXJuKDAsZi5TYykoIkF0dGVtcHRpbmcgdG8gZmV0Y2ggc3VydmV5IHdpdGggc3VydmV5IGlkICIrbysiIGZvciBwcmV2aWV3IiksdS5BLnBvc3Qoe3VybDphLHNlc3Npb246bixwYXJhbXM6aX0pLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybigwLEMuSGQpKHQuc3VydmV5KX0pKX0sZmV0Y2hTdXJ2ZXlGcm9tU25pcHBldDpmdW5jdGlvbih0KXt2YXIgZT12b2lkIDA9PT10P3t9OnQsbj1lLnNlc3Npb24sbz1lLnN1cnZleUlkLGk9ZS50b2tlbjtyZXR1cm4gbnx8aT9uPygoMCxmLlNjKSgiQXR0ZW1wdGluZyB0byBmZXRjaCBzdXJ2ZXkgZnJvbSBzbmlwcGV0IHdpdGggc2Vzc2lvbiBkYXRhLiIpLHUuQS5wb3N0KHt1cmw6KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvc3VydmV5cy8iK28rIi9mZXRjaF9mcm9tX3NuaXBwZXQiLHNlc3Npb246bixwYXJhbXM6e319KS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4oMCxDLkhkKSh0LnN1cnZleSl9KSkpOnZvaWQgMDooKDAsZi5TYykoIkEgc2Vzc2lvbiBvciBhIHRva2VuIG11c3QgYmUgc3VwcGxpZWQgd2hlbiBmZXRjaGluZyBhIHN1cnZleSIpLFByb21pc2UucmVqZWN0KCJtaXNzaW5nX3Nlc3Npb25fYW5kX3Rva2VuIikpfSxmZXRjaFRvdXI6ZnVuY3Rpb24odCl7dmFyIGU9dm9pZCAwPT09dD97fTp0LG49ZS5zZXNzaW9uLG89ZS50b3VySWQsaT1lLnRva2VuO2lmKCFuJiYhaSlyZXR1cm4oMCxwLms3KSgiQSBzZXNzaW9uIG9yIGEgdG9rZW4gbXVzdCBiZSBzdXBwbGllZCB3aGVuIGZldGNoaW5nIGEgdG91ciIpLFByb21pc2UucmVqZWN0KCJtaXNzaW5nX3Nlc3Npb25fYW5kX3Rva2VuIik7aWYobilyZXR1cm4oMCxwLms3KSgiQXR0ZW1wdGluZyB0byBmZXRjaCB0b3VyIHdpdGggc2Vzc2lvbiBkYXRhLiIpLHUuQS5wb3N0KHt1cmw6KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvdG91cnMvIitvKyIvZmV0Y2giLHNlc3Npb246bn0pLnRoZW4oQy5uZik7KDAscC5rNykoIkF0dGVtcHRpbmcgdG8gZmV0Y2ggdG91ciBmb3IgbWVzc2VuZ2VyIGNhcmQgaW4gZmFsbGJhY2sgc3RhdGUuIik7dmFyIGE9e3Rva2VuOml9O3JldHVybiB1LkEucG9zdCh7dXJsOigwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL3RvdXJzLyIrbysiL2ZldGNoX3dpdGhfdG9rZW4iLHBhcmFtczphfSkudGhlbihDLm5mKX0sZmlyZUNvbXBvc2VyU3VnZ2VzdGlvbjpmdW5jdGlvbih0LGUpe3ZhciBuPWUuY29udmVyc2F0aW9uSWQsbz1lLnN1Z2dlc3Rpb24saT1lLmNsaWVudElkLGE9ZS5ib3RJbnRybyxzPWUucmVzb2x1dGlvbkJvdEJlaGF2aW9yVmVyc2lvbklkLGM9ZS5hcnRpY2xlVXJsLGw9dm9pZCAwPT09Yz9udWxsOmMsZj1lLnNuYXBzaG90SWQsZD12b2lkIDA9PT1mP251bGw6ZixwPW4/KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvY29udmVyc2F0aW9ucy8iK24rIi9yZXBseSI6KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvbWVzc2FnZXMiLGg9e2NvbXBvc2VyX3N1Z2dlc3Rpb246SlNPTi5zdHJpbmdpZnkobyksY2xpZW50X2Fzc2lnbmVkX3V1aWQ6aX07biYmKGguY29udmVyc2F0aW9uX2lkPW4pLGEmJihoLmJvdF9pbnRybz1hKSxzJiYoaC5yZXNvbHV0aW9uX2JvdF9iZWhhdmlvcl92ZXJzaW9uX2lkPXMpLGwmJihoLnNlYXJjaF9icm93c2U9ITApLGQmJihoLnNuYXBzaG90X2lkPWQpO3ZhciB2PXUuQS5wb3N0KHt1cmw6cCxzZXNzaW9uOnQscGFyYW1zOmgsY3VycmVudFVybDpsfSk7cmV0dXJuIG4/di50aGVuKE50KTp2LnRoZW4oTHQpfSxmaXJlVHJpZ2dlcjpmdW5jdGlvbih0LGUpe3ZhciBuPWUudHJpZ2dlcklkLG89ZS5jbGllbnRBc3NpZ25lZFVVSUQsaT0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi90cmlnZ2Vycy8iK24rIi9maXJlIixhPXtjbGllbnRfYXNzaWduZWRfdXVpZDpvfTtyZXR1cm4gdS5BLnBvc3Qoe3VybDppLHNlc3Npb246dCxwYXJhbXM6YX0pfSxnZXRBcnRpY2xlOmZ1bmN0aW9uKHQsZSxuLG8saSxhKXt2b2lkIDA9PT1vJiYobz0hMSk7dmFyIHM9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvYXJ0aWNsZXMvIitlLGM9ZnVuY3Rpb24odCxlLG4scil7dmFyIG89e2NvbnZlcnNhdGlvbl9pZDp0LGJyb3dzZV9tb2RlOmV9O3JldHVybiBuJiYoby5oZWxwX2NlbnRlcl9pZD1uKSxyJiYoby5sYW5nPXIpLG99KG4sbyxpLGEpO3JldHVybiB1LkEucG9zdCh7dXJsOnMsc2Vzc2lvbjp0LHBhcmFtczpjfSkudGhlbihDLnJtKX0sZ2V0QXJ0aWNsZUJ5VVJMOmZ1bmN0aW9uKHQsZSxuKXt2YXIgbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9hcnRpY2xlcy91cmwiLGk9e3VybDplLGhlbHBfY2VudGVyX2lkOm59O3JldHVybiB1LkEucG9zdCh7dXJsOm8sc2Vzc2lvbjp0LHBhcmFtczppfSkudGhlbihDLnJtKX0sZ2V0QXJ0aWNsZVJlYWN0aW9uOmZ1bmN0aW9uKHQsZSxuLG8pe3ZhciBpPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2FydGljbGVzL2dldF9yZWFjdGlvbiIsYT17YXJ0aWNsZV9pZDplLGFydGljbGVfY29udGVudF9pZDpufTt1LkEucG9zdCh7dXJsOmksc2Vzc2lvbjp0LHBhcmFtczphfSkudGhlbigoZnVuY3Rpb24odCl7dD9vKG51bGwsdCk6bygpfSkpLmNhdGNoKChmdW5jdGlvbih0KXtvKHQpfSkpfSxnZXRDYXJkVmlldzpmdW5jdGlvbih0KXt2YXIgZT0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9tZXNzZW5nZXJfY2FyZF92aWV3LyIsbj17dG9rZW46dH07cmV0dXJuIHUuQS5wb3N0KHt1cmw6ZSxwYXJhbXM6bn0pfSxnZXRDb252ZXJzYXRpb246ZnVuY3Rpb24odCxlLG4pe3ZhciBvPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2NvbnZlcnNhdGlvbnMvIitlLGk9bi5zZWxmU2VydmVTdWdnZXN0aW9uc01hdGNoLGE9bi5jbGllbnRBc3NpZ25lZFV1aWQscz1uLnJlcXVlc3RPcmlnaW4sYz1uLm5leHVzQ29ubmVjdGlvblN0YXR1c3x8e30sbD1zPT09Z3QsZj12dCh7fSxpJiZ7c2VsZl9zZXJ2ZV9zdWdnZXN0aW9uc19tYXRjaDppfSxhJiZ7Y2xpZW50X2Fzc2lnbmVkX3V1aWQ6YX0scyYme3JlcXVlc3Rfb3JpZ2luOnN9LGwmJntzeW5jOmx9KTtyZXR1cm4gbCYmKGY9T2JqZWN0LmFzc2lnbih7fSxmLHtuZXh1c19jb25uZWN0aW9uX3N0YXR1czpKU09OLnN0cmluZ2lmeSh2dCh7fSxjLHtnbG9iYWxDb25uZWN0aW9uU3RhdGU6d2luZG93Lm5leHVzQ29ubmVjdGlvblN0YXRlfSkpLGxhc3RfYWRtaW5fcGFydF9jcmVhdGVkX2F0Om4ubGFzdEFkbWluUGFydENyZWF0ZWRBdCxsYXN0X2FkbWluX3BhcnRfaWQ6bi5sYXN0QWRtaW5QYXJ0SWR9KSksdS5BLnBvc3Qoe3VybDpvLHNlc3Npb246dCxwYXJhbXM6Zn0pLnRoZW4oTHQpfSxnZXRDb252ZXJzYXRpb25UcmFuc2NyaXB0VVJMOnRlLGdldENvbnZlcnNhdGlvbnM6ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnNvdXJjZSxvPWUucGFnZSxpPWUucGVyUGFnZSxhPWUuc2VsZlNlcnZlU3VnZ2VzdGlvbnNNYXRjaCxzPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2NvbnZlcnNhdGlvbnMiLGM9e3BhZ2U6byxwZXJfcGFnZTppLHNvdXJjZTpuLHNlbGZfc2VydmVfc3VnZ2VzdGlvbnNfbWF0Y2g6YX07cmV0dXJuIHUuQS5wb3N0KHt1cmw6cyxzZXNzaW9uOnQscGFyYW1zOmN9KS50aGVuKE90KX0sZ2V0SG9tZURhdGE6ZnVuY3Rpb24odCl7dmFyIGU9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvaG9tZSI7cmV0dXJuIHUuQS5wb3N0KHt1cmw6ZSxzZXNzaW9uOnR9KS50aGVuKG5lKX0sZ2V0TWVzc2VuZ2VyQ2FudmFzQ29udGVudFdpdGhUb2tlbjpmdW5jdGlvbih0LGUpe3ZhciBuPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL21lc3Nlbmdlcl9jYXJkX3ZpZXcvbGl2ZV9jb250ZW50IixvPXt0b2tlbjp0LGNhbnZhc19pZDplfTtyZXR1cm4gdS5BLnBvc3Qoe3VybDpuLHBhcmFtczpvfSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5hc3NpZ24odCx7aWQ6ZX0pfSkpfSxnZXRNZXNzZW5nZXJDYW52YXNXaXRoQ29udGVudDpmdW5jdGlvbih0LGUsbil7dmFyIG89KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvbWVzc2VuZ2VyX2NhcmRzL2NvbnRlbnQiLGk9e2NhbnZhc19pZDplLHVyaTpufTtyZXR1cm4gJHQoaSksdS5BLnBvc3Qoe3VybDpvLHNlc3Npb246dCxwYXJhbXM6aX0pLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuYXNzaWduKHQse2lkOmV9KX0pKX0sZ2V0VW5yZWFkQ29udmVyc2F0aW9uczpmdW5jdGlvbih0KXt2YXIgZT0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9jb252ZXJzYXRpb25zL3VucmVhZCI7cmV0dXJuIHUuQS5wb3N0KHt1cmw6ZSxzZXNzaW9uOnR9KS50aGVuKEF0KX0sbWFya0NvbnZlcnNhdGlvbkFzUmVhZDpmdW5jdGlvbih0LGUpe3ZhciBuPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2NvbnZlcnNhdGlvbnMvIitlKyIvcmVhZCI7cmV0dXJuIHUuQS5wb3N0KHt1cmw6bixzZXNzaW9uOnR9KS50aGVuKEx0KX0sb3V0Ym91bmRQcmV2aWV3OmZ1bmN0aW9uKHQsZSl7dmFyIG49KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvY3VzdG9tX2JvdHMvIitlKyIvb3V0Ym91bmRfcHJldmlldyI7cmV0dXJuIHUuQS5wb3N0KHt1cmw6bixzZXNzaW9uOnR9KX0sd29ya2Zsb3dQcmV2aWV3OmZ1bmN0aW9uKHQsZSl7dmFyIG49KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvd29ya2Zsb3dzLyIrZSsiL2J1aWxkX3ByZXZpZXciO3JldHVybiB1LkEucG9zdCh7dXJsOm4sc2Vzc2lvbjp0fSkudGhlbihrdCl9LHByb2dyZXNzVG91cjpmdW5jdGlvbih0LGUsbixvKXt2YXIgaT1PYmplY3QuYXNzaWduKHtzdGVwX2lkOm59LCgwLEMuUGMpKG8pKTtyZXR1cm4gdS5BLmZldGNoKHt1cmw6KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvdG91cnMvIitlKyIvcHJvZ3Jlc3MiLHNlc3Npb246dCxwYXJhbXM6aSxrZWVwYWxpdmU6ITB9KX0scXVpY2tSZXBseTpmdW5jdGlvbih0LGUsbixvLHMpe3ZhciBjPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2NvbnZlcnNhdGlvbnMvIitlKyIvcXVpY2tfcmVwbHkiLGw9KDAsQy5JNSkobixvLHMpLGY9eyJYLUNPTlRJTlVFLUlOVEVSQ09NLVRSQUNFIjoidHJ1ZSJ9O2lmKEYuZi5pc0VuYWJsZWQoKSl7dmFyIGQ9bmV3IEYuZigicXVpY2tfcmVwbHkiKTtyZXR1cm4gZC5zZXRBdHRyaWJ1dGVzKHsibmV4dXMuY29ubmVjdGlvbl9zdGF0ZSI6d2luZG93Lm5leHVzQ29ubmVjdGlvblN0YXRlfSksaS5fLndpdGgoYS51LnNldFNwYW4oaS5fLmFjdGl2ZSgpLGQuZ2V0Rmlyc3RUb2tlblNwYW4oKSksKGZ1bmN0aW9uKCl7cmV0dXJuIHUuQS5wb3N0KHt1cmw6YyxzZXNzaW9uOnQscGFyYW1zOmwsaGVhZGVyczpmfSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIGQuc2V0Q29tbWVudENyZWF0ZWRBdChlLHQuY3JlYXRlZF9hdCksTnQodCl9KSl9KSl9cmV0dXJuIHUuQS5wb3N0KHt1cmw6YyxzZXNzaW9uOnQscGFyYW1zOmwsaGVhZGVyczpmfSkudGhlbihOdCl9LHJlYWN0VG9CYW5uZXI6ZnVuY3Rpb24odCxlLG4sbyl7dmFyIGk9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvYmFubmVycy8iK2UrIi9yZWFjdCIsYT1PYmplY3QuYXNzaWduKHtyZWFjdGlvbjpvfSwoMCxDLkxvKShuKSk7cmV0dXJuIHUuQS5wb3N0KHt1cmw6aSxzZXNzaW9uOnQscGFyYW1zOmF9KX0scmVjb3JkSW50ZXJhY3Rpb25zOmZ1bmN0aW9uKHQsZSxuKXt2YXIgbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9jb252ZXJzYXRpb25zLyIrZSsiL3JlY29yZF9pbnRlcmFjdGlvbnMiLGk9e2ludGVyYWN0aW9uczpufTtyZXR1cm4gdS5BLnBvc3Qoe3VybDpvLHNlc3Npb246dCxwYXJhbXM6aX0pLnRoZW4oKGZ1bmN0aW9uKCl7fSkpfSxyZWNvcmROZXdzSXRlbVJlYWN0aW9uOmZ1bmN0aW9uKHQsZSxuKXt2YXIgbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9uZXdzLyIrZSsiL3JlYWN0IixpPXtyZWFjdGlvbl9pbmRleDpufTtyZXR1cm4gdS5BLnBvc3Qoe3VybDpvLHNlc3Npb246dCxwYXJhbXM6aX0pfSxyZWNvcmRBbnN3ZXJSZWFjdGlvbjpmdW5jdGlvbih0LGUsbil7dmFyIG89KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvYW5zd2Vycy8iK2UrIi9yZWFjdCIsaT17cmVhY3Rpb25faW5kZXg6bn07cmV0dXJuIHUuQS5wb3N0KHt1cmw6byxzZXNzaW9uOnQscGFyYW1zOml9KX0scmVjb3JkU21hcnRTdWdnZXN0aW9uSW1wcmVzc2lvbnM6ZnVuY3Rpb24odCxlKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBuPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL3NtYXJ0X3N1Z2dlc3Rpb25faW1wcmVzc2lvbnMiLG89e2dyb3VwX3V1aWRzOmV9O3JldHVybiB1LkEuc2VuZEJlYWNvbih7dXJsOm4sc2Vzc2lvbjp0LHBhcmFtczpvfSkudGhlbigoZnVuY3Rpb24oKXt9KSwoZnVuY3Rpb24oKXt9KSl9LHJlY29yZFRvdXJGYWlsdXJlOmZ1bmN0aW9uKHQsZSxuLG8saSxhKXt2YXIgcz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi90b3Vycy8iK2UrIi9yZWNvcmRfZmFpbHVyZSIsYz17ZmFpbGVkX3NlbGVjdG9yOm8sZmFpbHVyZV91cmw6aSx0b3VyX3N0ZXBfaWQ6bn0sbD1PYmplY3QuYXNzaWduKGMsKDAsQy5QYykoYSkpO3JldHVybiB1LkEucG9zdCh7dXJsOnMsc2Vzc2lvbjp0LHBhcmFtczpsfSl9LHJ1bGVzZXRDb25kaXRpb25TYXRpc2ZpZWQ6ZnVuY3Rpb24odCxlLG4sbyxpLGEscyxjLGwpe3ZhciBmPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL3J1bGVzZXRzLyIrZSsiL21hdGNoIixkPXt1c2VyX2lkOm8sY29tcGFueV9pZDppLHJ1bGVzZXRfbGlua19pZDpuLHByZWRpY2F0ZXM6SlNPTi5zdHJpbmdpZnkoYSl9O3JldHVybiBzJiYoZC5jaGVja3BvaW50X2lkPXMpLGMmJihkLm5vdGlmaWNhdGlvbl9yZWNvcmRfaWQ9YyksbCYmKGQuZXh0cmFfY29udGV4dD1KU09OLnN0cmluZ2lmeShsKSksdS5BLnBvc3Qoe3VybDpmLHNlc3Npb246dCxwYXJhbXM6ZH0pLnRoZW4oKGZ1bmN0aW9uKHQpe3ZhciBlPXQuY3VzdG9tX2JvdCxuPXQuY29tcG9zZXJfc3VnZ2VzdGlvbnMscj10LnByZWRpY3RpdmVfYW5zd2Vyc19zdWdnZXN0aW9ucztyZXR1cm4gdnQoe30sZnVuY3Rpb24odCxlKXtpZihudWxsPT10KXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwodCxyKSl7aWYoLTEhPT1lLmluZGV4T2YocikpY29udGludWU7bltyXT10W3JdfXJldHVybiBufSh0LGl0KSx7Y3VzdG9tQm90OmUsY29tcG9zZXJTdWdnZXN0aW9uczpZdChuKSxhbnN3ZXJib3RQcmVkaWN0aXZlQ29udGV4dHM6cn0pfSkpfSxzZWFyY2hHaWZzOmZ1bmN0aW9uKHQsZSl7dmFyIG49KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvZ2lmcyIsbz17cXVlcnk6ZX07cmV0dXJuIHUuQS5wb3N0KHt1cmw6bixzZXNzaW9uOnQscGFyYW1zOm99KX0sc2VuZEJlYWNvbkV2ZW50OmJ0LHNub296ZUNvbnRlbnRPYmplY3RJbnN0YW5jZTpmdW5jdGlvbih0LGUsbixvKXt2YXIgaT0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9zbm9vemUiLGE9e29iamVjdF90eXBlOmUsb2JqZWN0X2lkOm4saW5zdGFuY2VfaWQ6b307cmV0dXJuIHUuQS5wb3N0KHt1cmw6aSxzZXNzaW9uOnQscGFyYW1zOmF9KX0sc3Bhd25IYW5kb3ZlckNvbnZlcnNhdGlvbjpmZSxzdGFydENvbnZlcnNhdGlvbkZyb21TdWdnZXN0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5zdWdnZXN0aW9uVXVpZCxvPWUuY2xpZW50QXNzaWduZWRVVUlELGk9ZS5zZWxmU2VydmVTdWdnZXN0aW9uc01hdGNoLGE9ZS5hcnRpY2xlVXJsLHM9dm9pZCAwPT09YT9udWxsOmEsYz1lLm1lc3Nlbmdlck9wZW5SZXF1ZXN0SWQsbD12b2lkIDA9PT1jP251bGw6YyxmPWUuY3VzdG9tQXR0cmlidXRlcyxkPXZvaWQgMD09PWY/bnVsbDpmLHA9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvY3VzdG9tX2JvdHMvdHJpZ2dlcl9pbmJvdW5kX2NvbnZlcnNhdGlvbiIsaD17aWQ6bixjbGllbnRfYXNzaWduZWRfdXVpZDpvLHNlbGZfc2VydmVfc3VnZ2VzdGlvbnNfbWF0Y2g6aX07cmV0dXJuIHMmJihoLnNlYXJjaF9icm93c2U9ITApLGwmJihoLm1lc3Nlbmdlcl9vcGVuX3JlcXVlc3RfaWQ9bCksZCYmKGguY3VzdG9tX2F0dHJpYnV0ZXM9SlNPTi5zdHJpbmdpZnkoZCkpLHUuQS5wb3N0KHt1cmw6cCxzZXNzaW9uOnQscGFyYW1zOmgsY3VycmVudFVybDpzfSkudGhlbihMdCl9LHN0b3BUb3VyOmZ1bmN0aW9uKHQsZSxuKXt2YXIgbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi90b3Vycy8iK2UrIi9zdG9wIixpPSgwLEMuUGMpKG4pO3JldHVybiB1LkEucG9zdCh7dXJsOm8sc2Vzc2lvbjp0LHBhcmFtczppfSl9LHN1Ym1pdFN1cnZleTpmdW5jdGlvbih0LGUsbixvLGksYSl7dmFyIHM9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvc3VydmV5cy8iK2UrIi9zdWJtaXQiLGM9e3N1cnZleV9wcm9ncmVzc19pZDpuLGN1cnJlbnRfc3RlcF9pZDpvLHJlc3BvbnNlczpKU09OLnN0cmluZ2lmeShpKSxpc19wcmV2aWV3OmF9O3JldHVybiB1LkEucG9zdCh7dXJsOnMsc2Vzc2lvbjp0LHBhcmFtczpjfSl9LGRpc21pc3NTdXJ2ZXk6ZnVuY3Rpb24odCxlLG4sbyl7dmFyIGk9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvc3VydmV5cy8iK2UrIi9kaXNtaXNzIixhPXtzdXJ2ZXlfcHJvZ3Jlc3NfaWQ6bixpc19wcmV2aWV3Om99O3JldHVybiB1LkEucG9zdCh7dXJsOmksc2Vzc2lvbjp0LHBhcmFtczphfSl9LHJlY29yZFZpZXdlZFN0YXQ6ZnVuY3Rpb24odCxlLG4pe3ZhciBvPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2NoZWNrbGlzdHMvIitlKyIvdmlldyIsaT17Y2hlY2tsaXN0X3Byb2dyZXNzX2lkOm59O3JldHVybiB1LkEucG9zdCh7dXJsOm8sc2Vzc2lvbjp0LHBhcmFtczppfSl9LHJlY29yZFRhc2tWaWV3OmZ1bmN0aW9uKHQsZSxuLG8pe3ZhciBpPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2NoZWNrbGlzdHMvIitlKyIvdmlld190YXNrIixhPXtjaGVja2xpc3RfcHJvZ3Jlc3NfaWQ6bixjaGVja2xpc3RfdGFza19pZDpvfTtyZXR1cm4gdS5BLnBvc3Qoe3VybDppLHNlc3Npb246dCxwYXJhbXM6YX0pfSxyZWNvcmRBY3Rpb25DbGljazpmdW5jdGlvbih0LGUsbixvKXt2YXIgaT0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9jaGVja2xpc3RzLyIrZSsiL2FjdGlvbl9jbGljayIsYT17Y2hlY2tsaXN0X3Byb2dyZXNzX2lkOm4sY2hlY2tsaXN0X3Rhc2tfaWQ6b307cmV0dXJuIHUuQS5mZXRjaCh7dXJsOmksc2Vzc2lvbjp0LHBhcmFtczphLG1ldGhvZDoiUE9TVCIsa2VlcGFsaXZlOiEwfSl9LHJlc2V0VG91cjpmdW5jdGlvbih0LGUpe3ZhciBuPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL3RvdXJzLyIrZSsiL3Jlc2V0IjtyZXR1cm4gdS5BLnBvc3Qoe3VybDpuLHNlc3Npb246dH0pfSxyZXNvbHZlQ2hlY2tsaXN0czpmdW5jdGlvbih0KXt2YXIgZT10LmNoZWNrbGlzdFByb2dyZXNzSWRzLG49dC5zZXNzaW9uLG89KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvY2hlY2tsaXN0cy9yZXNvbHZlIixpPXtjaGVja2xpc3RfcHJvZ3Jlc3NfaWRzOmV9O3JldHVybiB1LkEucG9zdCh7dXJsOm8sc2Vzc2lvbjpuLHBhcmFtczppfSl9LHNlYXJjaEFydGljbGVzOmZ1bmN0aW9uKHQsZSl7dmFyIG49KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvYXJ0aWNsZXMvc2VhcmNoIixvPXtwaHJhc2U6ZX07cmV0dXJuIHUuQS5wb3N0KHt1cmw6bixzZXNzaW9uOnQscGFyYW1zOm99KS50aGVuKEMueVcpfSxzdWJtaXRNZXNzZW5nZXJDYXJkQWN0aW9uOmZ1bmN0aW9uKHQsZSxuLG8pe3ZhciBpPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL21lc3Nlbmdlcl9jYXJkcyIsYT17YWN0aW9uX2lkOm4sdXJpOmUsdmFsdWVzOkpTT04uc3RyaW5naWZ5KG8pfTtyZXR1cm4gJHQoYSksdS5BLnBvc3Qoe3VybDppLHNlc3Npb246dCxwYXJhbXM6YX0pfSxzdWJtaXRNZXNzZW5nZXJDYXJkQWN0aW9uV2l0aFRva2VuOmZ1bmN0aW9uKHQsZSxuKXt2YXIgbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9tZXNzZW5nZXJfY2FyZF92aWV3L3N1Ym1pdCIsaT17YWN0aW9uX2lkOmUsdG9rZW46dCx2YWx1ZXM6SlNPTi5zdHJpbmdpZnkobil9O3JldHVybiB1LkEucG9zdCh7dXJsOm8scGFyYW1zOml9KX0sc3VibWl0U2hlZXQ6ZnVuY3Rpb24odCxlLG4pe3ZhciBvPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL3NoZWV0cy9zdWJtaXQiLGk9e3VyaTplLHNoZWV0X3ZhbHVlczpKU09OLnN0cmluZ2lmeShuKX07cmV0dXJuIHUuQS5wb3N0KHt1cmw6byxzZXNzaW9uOnQscGFyYW1zOml9KX0sc3VibWl0U2hlZXRXaXRoVG9rZW46ZnVuY3Rpb24odCxlKXt2YXIgbj0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9tZXNzZW5nZXJfY2FyZF92aWV3L3N1Ym1pdF9zaGVldCIsbz17dG9rZW46dCxzaGVldF92YWx1ZXM6SlNPTi5zdHJpbmdpZnkoZSl9O3JldHVybiB1LkEucG9zdCh7dXJsOm4scGFyYW1zOm99KX0sdHJhbnNjcmliZUF1ZGlvOnd0LGZldGNoVHRzQXVkaW86U3QsY29ubmVjdEZpblZvaWNlOkV0LHRyaWdnZXJUcmFuc2l0aW9uczpmdW5jdGlvbih0LGUsbil7dmFyIG89KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvb3BlcmF0b3IvdHJpZ2dlciIsaT0oMCxDLlhsKShlLG4pO3JldHVybiB1LkEucG9zdCh7dXJsOm8sc2Vzc2lvbjp0LHBhcmFtczppfSkudGhlbihMdCl9LHVwZGF0ZUNvbnZlcnNhdGlvbkZvcm06ZnVuY3Rpb24odCxlLG4sbyxpLGEpe3ZhciBzPWE/e2lkZW50aWZpZXI6byx2YWx1ZTppLGNvbnZlcnNhdGlvbl9wYXJ0X2lkOm4sdXBmcm9udF9lbWFpbF9jb2xsZWN0aW9uOmF9OntpZGVudGlmaWVyOm8sdmFsdWU6aSxjb252ZXJzYXRpb25fcGFydF9pZDpufSxjPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2NvbnZlcnNhdGlvbnMvIitlKyIvZm9ybSIsbD17Zm9ybV9wYXJhbXM6SlNPTi5zdHJpbmdpZnkocyl9O3JldHVybiB1LkEucG9zdCh7dXJsOmMsc2Vzc2lvbjp0LHBhcmFtczpsfSkudGhlbihMdCl9LHVwZGF0ZVBob25lTnVtYmVyOmZ1bmN0aW9uKHQsZSl7dmFyIG49KDAsci56aikoKS5hcGlfYmFzZSsiL2FwcHMvIit0LmFwcElkKyIvbm90aWZpY2F0aW9uX2NoYW5uZWxzL3Bob25lX251bWJlciIsbz17cGhvbmVfbnVtYmVyOmV9O3JldHVybiB1LkEucG9zdCh7dXJsOm4sc2Vzc2lvbjp0LHBhcmFtczpvfSl9LHZpc2l0b3JBdXRvTWVzc2FnZUNvbmRpdGlvblNhdGlzZmllZDpmdW5jdGlvbih0LGUpe3ZhciBuPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL21lc3NhZ2VzLyIrZS5pZCsiL21hdGNoIixvPXtwcmVkaWNhdGVzOkpTT04uc3RyaW5naWZ5KGUucHJlZGljYXRlcyl9O3JldHVybiB1LkEucG9zdCh7dXJsOm4sc2Vzc2lvbjp0LHBhcmFtczpvfSkudGhlbigoZnVuY3Rpb24odCl7aWYoISgwLHMuSSkodCkpcmV0dXJuIEx0KHQpfSkpfSxnZW5lcmF0ZUFydGljbGVDYXJkOmZ1bmN0aW9uKHQsZSl7dmFyIG49KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvYXJ0aWNsZXMvIitlKyIvY2FyZCI7cmV0dXJuIHUuQS5wb3N0KHt1cmw6bixzZXNzaW9uOnR9KX0sY3JlYXRlVGlja2V0OmZ1bmN0aW9uKHQsZSl7dmFyIG49ZS50aWNrZXRUeXBlSWQsbz1lLmNvbnZlcnNhdGlvbklkLGk9ZS5hdHRyaWJ1dGVzLGE9dm9pZCAwPT09aT9bXTppLHM9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvdGlja2V0cy9jcmVhdGUiLGM9e3R5cGVfaWQ6bixhdHRyaWJ1dGVzOkpTT04uc3RyaW5naWZ5KGEpfTtyZXR1cm4gbyYmKGMuY29udmVyc2F0aW9uX2lkPW8pLHUuQS5wb3N0KHt1cmw6cyxzZXNzaW9uOnQscGFyYW1zOmN9KS50aGVuKEMuSjEpfSxmZXRjaE5ld3NJdGVtc0luTmV3c2ZlZWQ6ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PW4mJihuPTEpO3ZhciBvPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL25ld3MiLGk9e25ld3NmZWVkX2lkOmUscGFnZTpufTtyZXR1cm4gdS5BLnBvc3Qoe3VybDpvLHNlc3Npb246dCxwYXJhbXM6aX0pLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybntuZXh0UGFnZTp0Lm5leHRfcGFnZSxuZXdzSXRlbXM6dC5uZXdzX2l0ZW1zPygwLEMuSUYpKHQubmV3c19pdGVtcyk6KDAsQy5JRikodCl9fSkpfSxub3RpZnlOZXdzZmVlZFZpc2l0OmZ1bmN0aW9uKHQsZSl7dmFyIG49KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvbmV3cy92aXNpdCIsbz17bmV3c2ZlZWRfaWQ6ZX07cmV0dXJuIHUuQS5wb3N0KHt1cmw6bixzZXNzaW9uOnQscGFyYW1zOm99KX0scG9zdEZvckxhdW5jaGVyU2V0dGluZ3M6ZnVuY3Rpb24odCl7cmV0dXJuIG90LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZmV0Y2hUb29sdGlwczpmdW5jdGlvbih0KXt2YXIgZT10LnNlc3Npb24sbj10LmN1c3RvbUF0dHJpYnV0ZXMsbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9lbWJlZGRlZC9jb250ZW50IjtyZXR1cm4gdS5BLnBvc3Qoe3VybDpvLHNlc3Npb246ZSxwYXJhbXM6e30sY3VzdG9tQXR0cmlidXRlczpufSl9LG1hcmtUb29sdGlwVmlld2VkOmZ1bmN0aW9uKHQsZSxuKXt2YXIgbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi90b29sdGlwcy8iK2UrIi92aWV3ZWQiLGk9e3Rvb2x0aXBfZ3JvdXBfaWQ6bn07cmV0dXJuIHUuQS5wb3N0KHt1cmw6byxzZXNzaW9uOnQscGFyYW1zOml9KX0sYnVpbGRUb29sdGlwR3JvdXBzOkMuVW0sYnVpbGRUb29sdGlwR3JvdXA6Qy5IZixmZXRjaE5ld3NJdGVtRGV0YWlsczpmdW5jdGlvbih0LGUpe3ZhciBuPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL25ld3MvIitlO3JldHVybiB1LkEucG9zdCh7dXJsOm4sc2Vzc2lvbjp0fSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuKDAsQy5iWSkodCl9KSl9LGZldGNoQW5zd2VyRGV0YWlsczpmdW5jdGlvbih0LGUpe3ZhciBuPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL2Fuc3dlcnMvIitlO3JldHVybiB1LkEucG9zdCh7dXJsOm4sc2Vzc2lvbjp0fSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuKDAsQy5CbykodCl9KSl9LGdldFRpY2tldFR5cGVzOmZ1bmN0aW9uKHQpe3ZhciBlPSgwLHIuemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL3RpY2tldHMvdHlwZXMiO3JldHVybiB1LkEucG9zdCh7dXJsOmUsc2Vzc2lvbjp0fSkudGhlbihHdCl9LGdldFRpY2tldHM6ZnVuY3Rpb24odCxlKXt2YXIgbj0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi90aWNrZXRzIixvPXt9O3JldHVybiBlJiYoby5wYWdlPWUpLHUuQS5wb3N0KHt1cmw6bixzZXNzaW9uOnQscGFyYW1zOm99KS50aGVuKEMuU1kpfSxnZXRUaWNrZXRzQ29udGVudDpmdW5jdGlvbih0KXt2YXIgZT0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi90aWNrZXRzX2NvbnRlbnQiO3JldHVybiB1LkEucG9zdCh7dXJsOmUsc2Vzc2lvbjp0fSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJue3RpY2tldHNQb3J0YWxVcmw6dC50aWNrZXRzX3BvcnRhbF91cmx8fG51bGwsY29udmVyc2F0aW9uc1BvcnRhbFVybDp0LmNvbnZlcnNhdGlvbnNfcG9ydGFsX3VybHx8bnVsbH19KSl9LGdldFRpY2tldERldGFpbHM6ZnVuY3Rpb24odCxlKXt2YXIgbj0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi90aWNrZXRzLyIrZTtyZXR1cm4gdS5BLnBvc3Qoe3VybDpuLHNlc3Npb246dH0pLnRoZW4oQy5KMSl9LGNvbXBsZXRlQ2hlY2tsaXN0VGFzazpmdW5jdGlvbih0KXt2YXIgZT10LmNoZWNrbGlzdElkLG49dC5jaGVja2xpc3RQcm9ncmVzc0lkLG89dC50YXNrSWQsaT10LnNlc3Npb24sYT0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9jaGVja2xpc3RzLyIrZSsiL2NvbXBsZXRlX3Rhc2siLHM9e2NoZWNrbGlzdF9wcm9ncmVzc19pZDpuLHRhc2tfaWQ6b307cmV0dXJuIHUuQS5wb3N0KHt1cmw6YSxzZXNzaW9uOmkscGFyYW1zOnN9KX0sYnVpbGRDaGVja2xpc3RzOm0sbG9hZENoZWNrbGlzdHM6ZnVuY3Rpb24odCl7dmFyIGU9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvY2hlY2tsaXN0cy9saXN0IjtyZXR1cm4gdS5BLnBvc3Qoe3VybDplLHNlc3Npb246dH0pfSxkaXNtaXNzQ2hlY2tsaXN0Tm90aWZpY2F0aW9uOmZ1bmN0aW9uKHQsZSxuKXt2YXIgbz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9jaGVja2xpc3RzLyIrZSsiL2Rpc21pc3Nfbm90aWZpY2F0aW9uIixpPXtjaGVja2xpc3RfcHJvZ3Jlc3NfaWQ6bn07cmV0dXJuIHUuQS5wb3N0KHt1cmw6byxzZXNzaW9uOnQscGFyYW1zOml9KX0sdXBkYXRlQ2hlY2tsaXN0Tm90aWZpY2F0aW9uRGV0YWlsczpmdW5jdGlvbih0LGUsbil7dmFyIG89KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvY2hlY2tsaXN0cy8iK2UrIi91cGRhdGVfbm90aWZpY2F0aW9uX2RldGFpbHMiLGk9e2NoZWNrbGlzdF9wcm9ncmVzc19pZDpufTtyZXR1cm4gdS5BLnBvc3Qoe3VybDpvLHNlc3Npb246dCxwYXJhbXM6aX0pfSxtYXJrVGlja2V0QXNSZWFkOmZ1bmN0aW9uKHQsZSl7dmFyIG49KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvdGlja2V0cy8iK2UrIi9yZWFkIjtyZXR1cm4gdS5BLnBvc3Qoe3VybDpuLHNlc3Npb246dH0pfSxqb2luQ29udmVyc2F0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIG49KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvY29udmVyc2F0aW9ucy8iK2UrIi9qb2luIjtyZXR1cm4gdS5BLnBvc3Qoe3VybDpuLHNlc3Npb246dH0pLnRoZW4oTHQpfSxmZXRjaEJhbm5lclByZXZpZXc6ZnVuY3Rpb24odCxlKXt2YXIgbj0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9iYW5uZXJzLyIrZSsiL2ZldGNoX3ByZXZpZXciO3JldHVybiB1LkEucG9zdCh7dXJsOm4sc2Vzc2lvbjp0fSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuKDAsQy5GeSkodC5iYW5uZXIpfSkpfSxmZXRjaFBvc3RQcmV2aWV3OmZ1bmN0aW9uKHQsZSl7dmFyIG49KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvbWVzc2FnZXMvIitlKyIvcG9zdF9wcmV2aWV3IjtyZXR1cm4gdS5BLnBvc3Qoe3VybDpuLHNlc3Npb246dH0pLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpfSxzZW5kTWVzc2VuZ2VyT3BlbjpmdW5jdGlvbih0LGUsbixvLGkpe3ZhciBhPXt9O2UmJihhLmluaXRpYWxfdmlldz1lKSxpJiYoYS5mdWxsX3BhZ2VfbGF5b3V0PSEwKTt2YXIgcz0oMCxyLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9vcGVuIixjPW8/e2Zpbl9vbmx5X21lc3NlbmdlcjohMH06bnVsbDtyZXR1cm4gdS5BLnBvc3Qoe3VybDpzLHNlc3Npb246dCxwYXJhbXM6YSxjdXN0b21BdHRyaWJ1dGVzOmMsaXNJbnRlcnNlY3Rpb25Cb290ZWQ6bixyZXR1cm5JbnRlcmNvbVJlcXVlc3RJZDohMH0pLnRoZW4oKGZ1bmN0aW9uKHQpe3ZhciBlLG4scixvLGksYSx1LHM9dC5yZXNwb25zZSxjPXQuaW50ZXJjb21SZXF1ZXN0SWQsbD1zLmVycm9ycztpZihsKXJldHVybntlcnJvcnM6bCxpbnRlcmNvbVJlcXVlc3RJZDpjfTt2YXIgZixkLHAsaCx2PSgwLEguWikoKTtyZXR1cm4gRi5mLmluaXRUcmFjaW5nKCkse2Vycm9yczpudWxsLGNvbXBvc2VyU3VnZ2VzdGlvbnM6VyhzLmNvbXBvc2VyX3N1Z2dlc3Rpb25zKSxib3RJbnRybzpLKHMuYm90X2ludHJvKSxjbGllbnRzaWRlUnVsZXNldENvbmRpdGlvbnM6RyhzLmNsaWVudF9tYXRjaGVzKSx0ZXN0QXNzaWdubWVudHM6cy51c2VyX2Fzc2lnbm1lbnRzLHJlc29sdXRpb25Cb3RCZWhhdmlvclZlcnNpb25JZDpzLnJlc29sdXRpb25fYm90X2JlaGF2aW9yX3ZlcnNpb25faWQsYWNjZXNzVG9UZWFtbWF0ZUVuYWJsZWQ6cy5hY2Nlc3NfdG9fdGVhbW1hdGVfZW5hYmxlZCxhY3RpdmVCb3Q6KDAsQy5hSikocy5hY3RpdmVfYm90KSxhY3RpdmVBZG1pbnM6bnVsbD09KGU9cy5hY3RpdmVfYWRtaW5zKT92b2lkIDA6ZS5tYXAoQy5zVSksc2VsZlNlcnZlU3VnZ2VzdGlvbnNNYXRjaDpzLnNlbGZfc2VydmVfc3VnZ2VzdGlvbnNfbWF0Y2gsYWlTdWdnZXN0aW9uc0F2YWlsYWJsZTpzLmFpX3N1Z2dlc3Rpb25zX2F2YWlsYWJsZSxhaVN1Z2dlc3Rpb25Hcm91cHM6bnVsbCE9KG49bnVsbD09KHI9cy5haV9zdWdnZXN0aW9uX2dyb3Vwcyk/dm9pZCAwOnIubWFwKChmdW5jdGlvbih0KXtyZXR1cm57dGV4dDp0LnRleHQsZ3JvdXBVdWlkOnQuZ3JvdXBfdXVpZH19KSkpP246bnVsbCxjb21wb3NlclN0YXRlOigwLEMua0cpKHMuY29tcG9zZXJfc3RhdGUse292ZXJyaWRlQ29tcG9zZXJWaXNpYmlsaXR5OiEwPT09KG51bGw9PShvPXMuY29tcG9zZXJfc3VnZ2VzdGlvbnMpP3ZvaWQgMDpvLmNvbXBvc2VyX2Rpc2FibGVkKT8iaGlkZGVuIjpudWxsfSksZXhwZWN0YXRpb25TZXR0aW5nOlUocy5uZXdfY29udmVyc2F0aW9uKSxvcGVuSW5ib3VuZENvbnZlcnNhdGlvbklkczpzLm9wZW5faW5ib3VuZF9jb252ZXJzYXRpb25faWRzLHVzZXJUaWNrZXRFbWFpbEZvbGxvd1Vwc0VuYWJsZWQ6cy51c2VyX3RpY2tldF9lbWFpbF9mb2xsb3dfdXBzX2VuYWJsZWQsYXR0YWNobWVudFNldHRpbmdzOigwLEMudmspKHMuYXR0YWNobWVudF9zZXR0aW5ncyksY29udmVyc2F0aW9uU3RhdGVTeW5jU2V0dGluZ3M6KGY9cy5jb252ZXJzYXRpb25fc3RhdGVfc3luY19zZXR0aW5ncyx7ZW5hYmxlZDpudWxsIT0oZD1udWxsPT1mP3ZvaWQgMDpmLmVuYWJsZWQpJiZkLHN5bmNJbnRlcnZhbDpudWxsIT0ocD1udWxsPT1mP3ZvaWQgMDpmLnN5bmNfaW50ZXJ2YWwpP3A6MWU0LHN0YXJ0VGltZW91dDpudWxsIT0oaD1udWxsPT1mP3ZvaWQgMDpmLnN0YXJ0X3RpbWVvdXQpP2g6MWU0fSksaW50ZXJjb21SZXF1ZXN0SWQ6Yyxwcml2YWN5UG9saWN5Tm90aWNlOlYocy5wcml2YWN5X3BvbGljeV9ub3RpY2UpLHVzZXJIYXNFbWFpbDpzLnVzZXJfaGFzX2VtYWlsLHVzZXJQYXJ0VXhTdHlsZTpCKHMudXNlcl9wYXJ0X3V4X3N0eWxlKSxuZXdDb252ZXJzYXRpb25QYXJ0czpudWxsIT0oaT1zLm5ld19jb252ZXJzYXRpb24pJiZpLnBhcnRzJiYhdi5jb252ZXJzYXRpb25FbXB0eVN0YXRlRW5hYmxlZD9KKHMubmV3X2NvbnZlcnNhdGlvbi5wYXJ0cyk6bnVsbCxwb3dlcmVkQnk6eihzLnBvd2VyZWRfYnkpLHRlYW1JbnRybzpudWxsPT0oYT1zLm5ld19jb252ZXJzYXRpb24pP3ZvaWQgMDphLnRlYW1faW50cm8sc3BlY2lhbE5vdGljZTpudWxsPT0odT1zLm5ld19jb252ZXJzYXRpb24pP3ZvaWQgMDp1LnNwZWNpYWxfbm90aWNlLHJlY2VudE9wZW5JbmJvdW5kQ29udmVyc2F0aW9uOnMucmVjZW50X29wZW5faW5ib3VuZF9jb252ZXJzYXRpb24/THQocy5yZWNlbnRfb3Blbl9pbmJvdW5kX2NvbnZlcnNhdGlvbik6dm9pZCAwLGdlbmVyYXRlZFBsYW5Db252ZXJzYXRpb25JZDpzLmdlbmVyYXRlZF9wbGFuX2NvbnZlcnNhdGlvbl9pZCx1c2VyUm9sZTpGdChzLnVzZXJfcm9sZSl9fSkpfSxmZXRjaE5ld0NvbnZlcnNhdGlvbkNvbnRlbnQ6ZnVuY3Rpb24odCl7dmFyIGU9KDAsci56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvbmV3X2NvbnZlcnNhdGlvbl9jb250ZW50IjtyZXR1cm4gdS5BLnBvc3Qoe3VybDplLHNlc3Npb246dCxwYXJhbXM6e319KS50aGVuKChmdW5jdGlvbih0KXt2YXIgZSxuLHIsbztpZighdHx8IXQubmV3X2NvbnZlcnNhdGlvbilyZXR1cm4gbnVsbDt2YXIgaT0oMCxILlopKCk7cmV0dXJue25ld0NvbnZlcnNhdGlvblBhcnRzOm51bGwhPShlPXQubmV3X2NvbnZlcnNhdGlvbikmJmUucGFydHMmJiFpLmNvbnZlcnNhdGlvbkVtcHR5U3RhdGVFbmFibGVkP0oodC5uZXdfY29udmVyc2F0aW9uLnBhcnRzKTpudWxsLGNvbXBvc2VyU3VnZ2VzdGlvbnM6Vyh0LmNvbXBvc2VyX3N1Z2dlc3Rpb25zKSxjb21wb3NlclN0YXRlOigwLEMua0cpKHQuY29tcG9zZXJfc3RhdGUse292ZXJyaWRlQ29tcG9zZXJWaXNpYmlsaXR5OiEwPT09KG51bGw9PShuPXQuY29tcG9zZXJfc3VnZ2VzdGlvbnMpP3ZvaWQgMDpuLmNvbXBvc2VyX2Rpc2FibGVkKT8iaGlkZGVuIjpudWxsfSksYm90SW50cm86Syh0LmJvdF9pbnRybyksYWN0aXZlQm90OigwLEMuYUopKHQuYWN0aXZlX2JvdCksYWNjZXNzVG9UZWFtbWF0ZUVuYWJsZWQ6dC5hY2Nlc3NfdG9fdGVhbW1hdGVfZW5hYmxlZCxoYXNGaW46dC5oYXNfZmluLHBvd2VyZWRCeTp6KHQucG93ZXJlZF9ieSksdGVhbUludHJvOm51bGw9PShyPXQubmV3X2NvbnZlcnNhdGlvbik/dm9pZCAwOnIudGVhbV9pbnRybyxzcGVjaWFsTm90aWNlOm51bGw9PShvPXQubmV3X2NvbnZlcnNhdGlvbik/dm9pZCAwOm8uc3BlY2lhbF9ub3RpY2UsZXhwZWN0YXRpb25TZXR0aW5nOlUodC5uZXdfY29udmVyc2F0aW9uKSx1c2VyUm9sZTpGdCh0LnVzZXJfcm9sZSl9fSkpfSxnZXRUaWNrZXRGb3JtOmZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBXdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGV4dGVuZEFub255bW91c1Nlc3Npb246cmUsYXV0aG9yaXplUmVhbHRpbWU6ZnVuY3Rpb24odCl7cmV0dXJuIGllLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZ2V0UmVhbHRpbWVDb25maWc6ZnVuY3Rpb24odCl7cmV0dXJuIGFlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZ2V0Q29tcG9zZXJTdWdnZXN0aW9uczpDdCxnZXRDdXN0b21FbW9qaXM6ZWUsZ2V0TmV4dXNDb25maWc6ZnVuY3Rpb24odCl7cmV0dXJuIHVlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZ2V0T25ib2FyZGluZ1BsYW46eCx0b2dnbGVUYXNrRG9uZTpFfSxwZT1kZX0sNDQyOTc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7ejpmdW5jdGlvbigpe3JldHVybiBUfSxBOmZ1bmN0aW9uKCl7cmV0dXJuIFB9fSk7dmFyIHI9bigzNTIwNiksbz1uKDM4OTkpLGk9bigyNTExNSksYT1uKDgzMTQ3KTt2YXIgdT1mdW5jdGlvbih0LGUsbixyLG8sdSxzKXtpZih2b2lkIDA9PT1zJiYocz0hMSksKDAsaS5VOCkodCkpe3ZhciBjPW5ldyBYTUxIdHRwUmVxdWVzdDtjLm9uZXJyb3I9ZnVuY3Rpb24oKXsoMCxhLlpRKSh7Y2F0ZWdvcnk6Imh0dHAtcmVxdWVzdCIsbWVzc2FnZToiTmV0d29yayByZXF1ZXN0IGZhaWxlZCIsZGF0YTp7dXJsOigwLGkuUFYpKHQpLG1ldGhvZDplfSxsZXZlbDoiZXJyb3IifSk7dmFyIG49bmV3IEVycm9yKCJOZXR3b3JrIHJlcXVlc3QgZmFpbGVkIGZvciBVUkw6ICIrdCk7dShuKX0sYy5vbmFib3J0PWZ1bmN0aW9uKCl7KDAsYS5aUSkoe2NhdGVnb3J5OiJodHRwLXJlcXVlc3QiLG1lc3NhZ2U6Ik5ldHdvcmsgcmVxdWVzdCBhYm9ydGVkIixkYXRhOnt1cmw6KDAsaS5QVikodCksbWV0aG9kOmV9LGxldmVsOiJ3YXJuaW5nIn0pLHUobmV3IEVycm9yKCJOZXR3b3JrIHJlcXVlc3QgYWJvcnRlZCIpKX0sYy5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgbj1jLnJlYWR5U3RhdGUscj1jLnN0YXR1cyxsPWMucmVzcG9uc2UsZj1udWxsO3MmJihmPWMuZ2V0UmVzcG9uc2VIZWFkZXIoIngtcmVxdWVzdC1pZCIpKSw0PT09biYmKHI+PTIwMCYmcjwzMDA/byhzP3tyZXNwb25zZTpsLGludGVyY29tUmVxdWVzdElkOmZ9OmwpOigoMCxhLlpRKSh7Y2F0ZWdvcnk6Imh0dHAtcmVxdWVzdCIsbWVzc2FnZToiSFRUUCByZXF1ZXN0IGZhaWxlZCIsZGF0YTp7dXJsOigwLGkuUFYpKHQpLG1ldGhvZDplLHN0YXR1czpyLGhhc1Jlc3BvbnNlOiEhbH0sbGV2ZWw6ImVycm9yIn0pLHUocz97cmVzcG9uc2U6bCxpbnRlcmNvbVJlcXVlc3RJZDpmfTpsfHxuZXcgRXJyb3IoIkhUVFAgcmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgIityKSkpKX0sYy5vcGVuKGUsdCwhMCksYy53aXRoQ3JlZGVudGlhbHM9ITAsT2JqZWN0LmtleXMobikuZm9yRWFjaCgoZnVuY3Rpb24odCl7Yy5zZXRSZXF1ZXN0SGVhZGVyKHQsblt0XSl9KSksYy5zZW5kKHIpfWVsc2UgdSgoMCxpLlQ3KSh0KSl9LHM9ci5BeS5oYXNYaHIyU3VwcG9ydCgpLGM9ZnVuY3Rpb24odCxlLG4scil7aWYodm9pZCAwPT09ciYmKHI9ITEpLCEoMCxpLlU4KSh0KSl7dmFyIGE9KDAsaS5UNykodCk7cmV0dXJuKDAsby5qUCkoIkhUVFAgcmVxdWVzdCByZWplY3RlZDoiLGEubWVzc2FnZSksUHJvbWlzZS5yZWplY3QoYSl9aWYoLTEhPT10LmluZGV4T2YoIj8iKSl0cnl7dmFyIGM9bmV3IFVSTCh0KTtjLnNlYXJjaD0iIix0PWMudG9TdHJpbmcoKX1jYXRjaChhKXsoMCxvLmpQKSgiRmFpbGVkIHRvIHBhcnNlIFVSTCBmb3IgcXVlcnkgcGFyYW1ldGVyIHN0cmlwcGluZzoiLHQsYSk7dmFyIGw9dC5zcGxpdCgiPyIpO3Q9bFswXXx8dH1yZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG8saSl7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJCcm93c2VyIGRvZXMgbm90IHN1cHBvcnQgWE1MSHR0cFJlcXVlc3QuIik7dSh0LCJQT1NUIixlLG4sbyxpLHIpfSkpfSxsPSJJZGVtcG90ZW5jeS1LZXkiO2Z1bmN0aW9uIGYodCl7cmV0dXJuIE1hdGguZmxvb3IoNDI5NDk2NzI5NiooMSt0KCkpKS50b1N0cmluZygxNikuc3Vic3RyaW5nKDEpfXZhciBkPW4oMzYyNjYpLHA9big4NDA3NyksaD1uKDM4MDQyKSx2PW4oNzE0NDQpLHk9big5MTk2NCksZz1uKDQ0ODMpLG09big4MzE1OCksYj1uKDc4NjUzKSx3PW4oMzE0MDEpLF89bigxMTM4OCksUz1uKDg0MTkwKSx4PW4oNTc0NzEpLEU9WyJ1cmwiLCJzZXNzaW9uIiwicGFyYW1zIiwiY3VzdG9tQXR0cmlidXRlcyIsImN1cnJlbnRVcmwiLCJpZGVtcG90ZW5jeUtleSIsInJlZmVycmVyIiwiaW50ZXJuYWwiLCJpc0ludGVyc2VjdGlvbkJvb3RlZCIsInNob3VsZFNldFVzZXJEYXRhIiwicmV0dXJuSW50ZXJjb21SZXF1ZXN0SWQiLCJhbm9ueW1vdXNTZXNzaW9uRHVyYXRpb24iLCJoZWFkZXJzIl0sQz1bInVybCIsInNlc3Npb24iLCJwYXJhbXMiLCJjdXN0b21BdHRyaWJ1dGVzIiwiY3VycmVudFVybCIsImlkZW1wb3RlbmN5S2V5IiwicmVmZXJyZXIiLCJpbnRlcm5hbCIsImlzSW50ZXJzZWN0aW9uQm9vdGVkIiwic2hvdWxkU2V0VXNlckRhdGEiLCJtZXRob2QiLCJrZWVwYWxpdmUiLCJhbm9ueW1vdXNTZXNzaW9uRHVyYXRpb24iLCJoZWFkZXJzIl07ZnVuY3Rpb24gTygpe3JldHVybiBPPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sTy5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQSh0LGUpe2lmKG51bGw9PXQpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIHQpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpKXtpZigtMSE9PWUuaW5kZXhPZihyKSljb250aW51ZTtuW3JdPXRbcl19cmV0dXJuIG59dmFyIEk9MyxrPWZ1bmN0aW9uKCl7cmV0dXJuIHIuQXkuaXNNb2JpbGVCcm93c2VyKCk/Im1vYmlsZV93ZWIiOiJ3ZWIifSxMPXthbm9ueW1vdXNTZXNzaW9uOiIiLGhlbHBDZW50ZXJTZXNzaW9uOm51bGx9O2Z1bmN0aW9uIFQodCxlLG4sbyxhLHUscyxjLEUsQyl7dmFyIE8sQSxMO3ZvaWQgMD09PUUmJihFPSEwKSxvPW98fChudWxsPT0oTz0oMCxkLktRKSgpKT92b2lkIDA6Ty5ocmVmKSx1PXV8fCgwLGQuVVApKCksbz0oMCxpLnhIKShvKSx1PSgwLGkueEgpKHUpLHIuQXkuaXNOYXRpdmVNb2JpbGUoKSYmKG89dm9pZCAwKSxhPWF8fCh2b2lkIDA9PT1MJiYoTD1NYXRoLnJhbmRvbSksZihMKStmKEwpKTt2YXIgVD10LmFwcElkLGo9dC5hbm9ueW1vdXNTZXNzaW9uLFA9dC5zZXNzaW9uSWQsTj10LmFjdGl2ZUNvbXBhbnlJZCxNPXQubWVzc2VuZ2VyU3R5bGVJZCxSPSgoQT17YXBwX2lkOlQsdjpJLGc6IjY2YmI4MWEwNGI2NTg2ZDYxMGQzMDZiMzFmNTUzNWExNzUyNTNjMGMiLHM6UCxyOnUscGxhdGZvcm06aygpLGluc3RhbGxhdGlvbl90eXBlOigwLGIubCkoKSxpbnN0YWxsYXRpb25fdmVyc2lvbjooMCx3LkopKCl8fHZvaWQgMH0pW2xdPWEsQS5pbnRlcm5hbD1zP0pTT04uc3RyaW5naWZ5KHMpOiIiLEEuaXNfaW50ZXJzZWN0aW9uX2Jvb3RlZD0hIWMsQS5wYWdlX3RpdGxlPSgwLGQud1MpKCksQS51c2VyX2FjdGl2ZV9jb21wYW55X2lkPU4sQSk7aWYoKDAsdi51dCkoKSYmKFIud29ya2Zsb3dfcHJldmlld19zdGFydGVkPSEwLFIucHJldmlld193b3JrZmxvd19pbnN0YW5jZV9pZD0oMCx2LnV0KSgpKSwoMCx2LlpIKSgpJiYoUi53b3JrZmxvd19wcmV2aWV3X3N0YXJ0ZWQ9ITAsUi5yZXNvbHV0aW9uX2JvdF9iZWhhdmlvcl92ZXJzaW9uX2lkPSgwLHYuWkgpKCkpLCgwLGcuSUUpKCkmJihSLnByZXZpZXdfcGVyc29uYWxpdHlfc2V0dGluZ3M9SlNPTi5zdHJpbmdpZnkoKDAsZy5JRSkoKSkpLCgwLG0ueEUpKCkpe3ZhciBVPSgwLF8uTykoKDAsbS54RSkoKSk7Ui5maW5fcHJldmlld19zZXR0aW5ncz1KU09OLnN0cmluZ2lmeShVKX1pZigoMCxTLklSKSgpKXt2YXIgej0oMCxfLk8pKCgwLFMuSVIpKCkpO1IucHJldmlld19zZXR0aW5ncz1KU09OLnN0cmluZ2lmeSh6KX0oMCx5LnJOKSgpJiYoUi5maW5fZXhwZXJpbWVudGFsX2RlbW89SlNPTi5zdHJpbmdpZnkoKDAseS5yTikoKSkpLCgwLHgudSkoKSYmKFIubWVzc2VuZ2VyX2Vudmlyb25tZW50PSgwLHgudSkoKSksTSYmKFIubWVzc2VuZ2VyX3N0eWxlX2lkPU0pLEUmJihSLnVzZXJfZGF0YT1mdW5jdGlvbih0LGUpe3ZhciBuPXQudXNlcklkLHI9dC5lbWFpbCxvPXQudXNlckhhc2gsaT10LmFub255bW91c0lkLGE9dC5pbnRlcmNvbVVzZXJKd3QsdT1PYmplY3QuYXNzaWduKHtlbWFpbDpyLHVzZXJfaWQ6bix1c2VyX2hhc2g6byxhbm9ueW1vdXNfaWQ6aSxpbnRlcmNvbV91c2VyX2p3dDphfSxlKTtyZXR1cm4gZGVsZXRlIHUubmV3X2NvbnZlcnNhdGlvbl9hdHRyaWJ1dGVzLEpTT04uc3RyaW5naWZ5KHUpfSh0LG4pKSxudWxsIT09QyYmKFIuYW5vbnltb3VzX3Nlc3Npb25fZHVyYXRpb249Qyk7dmFyIEg9T2JqZWN0LmFzc2lnbihSLGUpO2lmKHZvaWQgMCE9PW8mJihILnJlZmVyZXI9byksaiYmKEguYW5vbnltb3VzX3Nlc3Npb249aiksVCl7dmFyIEY9cC5BLnJlYWQoKDAsaC5yNCkoVCkpO3ZvaWQgMCE9PUYmJihILmRldmljZV9pZGVudGlmaWVyPUYpfXJldHVybiBIfWZ1bmN0aW9uIGoodCl7dmFyIGU9W107cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciByPXRbbl07bj1lbmNvZGVVUklDb21wb25lbnQobiksQXJyYXkuaXNBcnJheShyKT9yLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlLnB1c2gobisiW109IitlbmNvZGVVUklDb21wb25lbnQodCkpfSkpOmUucHVzaChuKyI9IitlbmNvZGVVUklDb21wb25lbnQocikpfSkpLGUuam9pbigiJiIpfXZhciBQPXtwb3N0OmZ1bmN0aW9uKHQpe3ZhciBlPXQudXJsLG49dC5zZXNzaW9uLHI9dm9pZCAwPT09bj9MOm4sbz10LnBhcmFtcyxpPXZvaWQgMD09PW8/e306byxhPXQuY3VzdG9tQXR0cmlidXRlcyx1PXZvaWQgMD09PWE/bnVsbDphLHM9dC5jdXJyZW50VXJsLGw9dm9pZCAwPT09cz9udWxsOnMsZj10LmlkZW1wb3RlbmN5S2V5LGQ9dm9pZCAwPT09Zj9udWxsOmYscD10LnJlZmVycmVyLGg9dm9pZCAwPT09cD9udWxsOnAsdj10LmludGVybmFsLHk9dm9pZCAwPT09dj9udWxsOnYsZz10LmlzSW50ZXJzZWN0aW9uQm9vdGVkLG09dm9pZCAwPT09Zz9udWxsOmcsYj10LnNob3VsZFNldFVzZXJEYXRhLHc9dm9pZCAwPT09Ynx8YixfPXQucmV0dXJuSW50ZXJjb21SZXF1ZXN0SWQsUz12b2lkIDAhPT1fJiZfLHg9dC5hbm9ueW1vdXNTZXNzaW9uRHVyYXRpb24sQz12b2lkIDA9PT14P251bGw6eCxJPXQuaGVhZGVycyxrPXZvaWQgMD09PUk/e306SSxQPUEodCxFKTtpZighcilyZXR1cm4gUHJvbWlzZS5yZWplY3QoImh0dHBfcG9zdF9zZXNzaW9uX2VtcHR5Iik7dmFyIE49Tyh7fSxUKHIsaSx1LGwsZCxoLHksbSx3LEMpLFApLE09Tyh7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9LGspO3JldHVybiBjKGUsTSxqKE4pLFMpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiBTP2Z1bmN0aW9uKHQpe3ZhciBlPXQucmVzcG9uc2Usbj10LmludGVyY29tUmVxdWVzdElkO3RyeXtyZXR1cm57cmVzcG9uc2U6SlNPTi5wYXJzZShlKSxpbnRlcmNvbVJlcXVlc3RJZDpufX1jYXRjaCh0KXtyZXR1cm57cmVzcG9uc2U6ZSxpbnRlcmNvbVJlcXVlc3RJZDpufX19KHQpOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaChlKXtyZXR1cm4gdH19KHQpfSkpfSxzZW5kQmVhY29uOmZ1bmN0aW9uKHQpe3ZhciBlLHI9dC51cmwsbz10LnNlc3Npb24saT12b2lkIDA9PT1vP0w6byxhPXQucGFyYW1zLHU9dm9pZCAwPT09YT97fTphLHM9dC5jdXN0b21BdHRyaWJ1dGVzLGM9dm9pZCAwPT09cz9udWxsOnMsbD10LmN1cnJlbnRVcmwsZj12b2lkIDA9PT1sP251bGw6bCxkPXQuaWRlbXBvdGVuY3lLZXkscD12b2lkIDA9PT1kP251bGw6ZCxoPXQucmVmZXJyZXIsdj12b2lkIDA9PT1oP251bGw6aCx5PXQuaW50ZXJuYWwsZz12b2lkIDA9PT15P251bGw6eSxtPXQuaXNJbnRlcnNlY3Rpb25Cb290ZWQsYj12b2lkIDA9PT1tP251bGw6bSx3PXQuc2hvdWxkU2V0VXNlckRhdGEsXz12b2lkIDA9PT13fHx3LFM9dC5hbm9ueW1vdXNTZXNzaW9uRHVyYXRpb24seD12b2lkIDA9PT1TP251bGw6UyxFPXQuaGVhZGVycyxDPXZvaWQgMD09PUU/e306RTtpZighaSlyZXR1cm4gUHJvbWlzZS5yZWplY3QoImh0dHBfcG9zdF9zZXNzaW9uX2VtcHR5Iik7dmFyIEE9VChpLHUsYyxmLHAsdixnLGIsXyx4KTtpZihudWxsIT0oZT1uYXZpZ2F0b3IpJiZlLnNlbmRCZWFjb24pe3JldHVybiBuYXZpZ2F0b3Iuc2VuZEJlYWNvbihyLG5ldyBCbG9iKFtqKEEpXSx7dHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0pKT9Qcm9taXNlLnJlc29sdmUoKTpQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIlNlbmRCZWFjb24gZmFpbGVkIGFuZCBubyBmYWxsYmFjayBhdmFpbGFibGUiKSl9dmFyIEk9Tyh7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9LEMpO3JldHVybiBuLmcuZmV0Y2gocix7aGVhZGVyczpJLGJvZHk6aihBKSxtZXRob2Q6IlBPU1QiLGtlZXBhbGl2ZTohMH0pLnRoZW4oKGZ1bmN0aW9uKCl7fSkpfSxmZXRjaDpmdW5jdGlvbih0KXt2YXIgZT10LnVybCxyPXQuc2Vzc2lvbixvPXZvaWQgMD09PXI/TDpyLGk9dC5wYXJhbXMsYT12b2lkIDA9PT1pP3t9OmksdT10LmN1c3RvbUF0dHJpYnV0ZXMscz12b2lkIDA9PT11P251bGw6dSxjPXQuY3VycmVudFVybCxsPXZvaWQgMD09PWM/bnVsbDpjLGY9dC5pZGVtcG90ZW5jeUtleSxkPXZvaWQgMD09PWY/bnVsbDpmLHA9dC5yZWZlcnJlcixoPXZvaWQgMD09PXA/bnVsbDpwLHY9dC5pbnRlcm5hbCx5PXZvaWQgMD09PXY/bnVsbDp2LGc9dC5pc0ludGVyc2VjdGlvbkJvb3RlZCxtPXZvaWQgMD09PWc/bnVsbDpnLGI9dC5zaG91bGRTZXRVc2VyRGF0YSx3PXZvaWQgMD09PWJ8fGIsXz10Lm1ldGhvZCxTPXZvaWQgMD09PV8/IlBPU1QiOl8seD10LmtlZXBhbGl2ZSxFPXZvaWQgMCE9PXgmJngsST10LmFub255bW91c1Nlc3Npb25EdXJhdGlvbixrPXZvaWQgMD09PUk/bnVsbDpJLFA9dC5oZWFkZXJzLE49dm9pZCAwPT09UD97fTpQLE09QSh0LEMpO2lmKCFvKXJldHVybiBQcm9taXNlLnJlamVjdCgiaHR0cF9wb3N0X3Nlc3Npb25fZW1wdHkiKTt2YXIgUj1PKHt9LFQobyxhLHMsbCxkLGgseSxtLHcsayksTSksVT1PKHsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sTik7cmV0dXJuIG4uZy5mZXRjaChlLHtoZWFkZXJzOlUsYm9keTpqKFIpLG1ldGhvZDpTLGtlZXBhbGl2ZTpFfSl9fX0sNTI2NzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtBUDpmdW5jdGlvbigpe3JldHVybiBzfSxObDpmdW5jdGlvbigpe3JldHVybiBjfSxQaDpmdW5jdGlvbigpe3JldHVybiBhfSxkdTpmdW5jdGlvbigpe3JldHVybiBpfSxpRDpmdW5jdGlvbigpe3JldHVybiB1fX0pO3ZhciByPW4oNjk3NDQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LG8uYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGkodCl7dmFyIGU9dC5jb252ZXJzYXRpb25JZCxuPXQucGFydElkLG89dC5pdGVtLGk9dC5sYXlvdXQsYT17Y29udmVyc2F0aW9uX2lkOmUscGFydF9pZDpuLGNhcm91c2VsX2l0ZW1faWQ6by5pZCxjYXJvdXNlbF9pdGVtX3RpdGxlOm8udGl0bGUsY2Fyb3VzZWxfaXRlbV91cmw6by51cmwsaGFzX2ltYWdlOiEhby5pbWFnZSxsYXlvdXQ6aX07KDAsci5BNSkoImNsaWNrZWQiLCJjYXJvdXNlbF9jYXJkIiwibWVzc2VuZ2VyIiwiaW5fY29udmVyc2F0aW9uIixhKSwoMCxyLnNxKSgiY2Fyb3VzZWxfY2FyZF9jbGlja2VkIixhLCEwKX1mdW5jdGlvbiBhKHQpe3ZhciBlPXQuY29udmVyc2F0aW9uSWQsbj10LnBhcnRJZCxpPXQuaXRlbXMsYT10LmxheW91dCx1PWkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pKSxzPXtjb252ZXJzYXRpb25faWQ6ZSxwYXJ0X2lkOm4sY2Fyb3VzZWxfaXRlbV9jb3VudDppLmxlbmd0aCxjYXJvdXNlbF9pdGVtX2lkczp1LGxheW91dDphfTsoMCxyLkE1KSgidmlld2VkIiwiY2Fyb3VzZWxfY2FyZCIsIm1lc3NlbmdlciIsImluX2NvbnZlcnNhdGlvbiIscyksKDAsci5zcSkoImNhcm91c2VsX2NhcmRfdmlld2VkIixvKHt9LHMse2Nhcm91c2VsX2l0ZW1faWRzOnUuam9pbigiLCIpfSksITApfWZ1bmN0aW9uIHUodCl7dmFyIGU9dC5jb252ZXJzYXRpb25JZCxuPXQucGFydElkLG89dC5pdGVtLGk9dC5sYXlvdXQsYT17Y29udmVyc2F0aW9uX2lkOmUscGFydF9pZDpuLGNhcm91c2VsX2l0ZW1faWQ6by5pZCxjYXJvdXNlbF9pdGVtX3RpdGxlOm8udGl0bGUsY2Fyb3VzZWxfaXRlbV91cmw6by51cmwsbGF5b3V0Oml9OygwLHIuQTUpKCJjbGlja2VkIiwiY2Fyb3VzZWxfY2FyZF9jdGEiLCJtZXNzZW5nZXIiLCJpbl9jb252ZXJzYXRpb24iLGEpLCgwLHIuc3EpKCJjYXJvdXNlbF9jYXJkX2N0YV9jbGlja2VkIixhLCEwKX1mdW5jdGlvbiBzKHQpeygwLHIuc3EpKCJtZXNzZW5nZXJfYXV0b19leHBhbmRlZF9ieV9jYXJvdXNlbCIse2NvbnZlcnNhdGlvbl9pZDp0fSwhMCl9ZnVuY3Rpb24gYyh0KXsoMCxyLnNxKSgibWVzc2VuZ2VyX2NvbGxhcHNlZF9hZnRlcl9jYXJvdXNlbCIse2NvbnZlcnNhdGlvbl9pZDp0fSwhMCl9fSw3ODU1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0E6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KTt2YXIgcj1uKDk4MDU0KSxvPSgwLHIuQXkpKCJzdmciLHt0YXJnZXQ6ImUxd2MxaXZxMCJ9KSgid2lkdGg6MTJweDtoZWlnaHQ6MTJweDtmaWxsOiIsKDAsci53NCkoInRleHRFcnJvciIpLCI7IiksaT1uKDc0ODQ4KTtmdW5jdGlvbiBhKCl7cmV0dXJuKDAsaS5qc3gpKG8se2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLHZpZXdCb3g6IjAgMCAxMiAxMiIsY2hpbGRyZW46KDAsaS5qc3gpKCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGNsaXBSdWxlOiJldmVub2RkIixmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik02IDExLjI1QTUuMjUgNS4yNSAwIDEwNiAuNzVhNS4yNSA1LjI1IDAgMDAwIDEwLjV6bTAtNC41NjNhLjUyNi41MjYgMCAwMS0uNTIyLS40NjVMNS4xNyAzLjU1NmEuODM2LjgzNiAwIDExMS42NiAwbC0uMzA4IDIuNjY2QS41MjYuNTI2IDAgMDE2IDYuNjg3em0wIDIuNjg4YS45MTYuOTE2IDAgMDEtLjkzOC0uOTM4YzAtLjUzNS40MDMtLjkzNy45MzgtLjkzNy41MzUgMCAuOTM4LjQwMi45MzguOTM4QS45MTYuOTE2IDAgMDE2IDkuMzc0eiJ9KX0pfX0sNjMyOTU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDc0ODQ4KTtlLkE9ZnVuY3Rpb24oKXtyZXR1cm4oMCxyLmpzeCkoInN2ZyIse2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLHZpZXdCb3g6IjAgMCAxNiAxOCIsY2hpbGRyZW46KDAsci5qc3gpKCJwYXRoIix7ZDoiTTE0LjE1NCA2LjkxOGwtLjAwNC4wMDMuMDAxLS4wMDQtMy4yODcgMy4yODYtLjAwNi0uMDA1LTMuNTc0IDMuNTc0Yy0uMDE2LjAxNy0uMDMuMDM2LS4wNDguMDUzbC0uMDUuMDQ3LS4wNDMuMDQxdi0uMDAyYy0xLjE2NyAxLjA3LTIuNjkyIDEuMzMxLTMuODIzLjItMS4xMy0xLjEzLS44OS0yLjY3Ny4xOC0zLjg0M2wtLjAwNS0uMDA0LjA3NC0uMDczLjAxNi0uMDE4Yy4wMDYtLjAwNS4wMTItLjAwOS4wMTctLjAxNmw2LjA1My02LjA1My43NjEuNzYtNi4wNTMgNi4wNTQtLjAyOS4wMjh2LjAwMWwtLjAwNS4wMDQtLjA3My4wNzRjLjAxMS0uMDEuMDI1LS4wMTguMDM1LS4wMy0uNjg4Ljc1LS45MyAxLjYzNi0uMjEgMi4zNTYuNzIuNzIgMS41ODMuNDU2IDIuMzMzLS4yMzJsLS4wMy4wMzQuMDQtLjA0Mi4wMS0uMDA4LjAwOC0uMDA5LjAzMy0uMDMuMDMxLS4wMzQuMDEtLjAwOS4wMDctLjAwOSA1LjAwNC01LjAwMy4wMDUuMDA2IDEuODU4LTEuODU5YzEuMjIzLTEuMjE4IDEuNTEtMi45MTMuMjkxLTQuMTMyQzEyLjQ2Mi44MDYgMTAuNDE0Ljc0IDkuMTk1IDEuOTU4TDIuMjQ4IDguOTA1Yy4wMDMgMCAuMDA2LS4wMDIuMDA4LS4wMDQtMS42MjUgMS42NjctMS41NDIgNC40My4xMDMgNi4wNzQgMS42NDYgMS42NDYgNC40NzQgMS43OTUgNi4xNDEuMTctLjAwMy4wMDItLjAwNC4wMDgtLjAwOC4wMTJsLjA0Ny0uMDQ3IDYuMDUzLTYuMDU0LjA0Mi0uMDQyLjc0My43OC0uMDI1LjAyMS4wMDEuMDAyLTYuMDUgNi4wNS0uMDAyLjAwMi0uMDAyLjAwMS0uMDQ2LjA0NmgtLjAwMmMtMi4wOTQgMi4wNC01LjU3OCAxLjg5NC03LjY1Mi0uMTgtMi4wNDktMi4wNDktMi4xNS01LjQwNy0uMTgzLTcuNTA1bC0uMDA2LS4wMDVoLS4wMDJsLjA3Ni0uMDc4IDYuOTQzLTYuOTQ0LjAwMy0uMDAyLjAwNC0uMDA1YzEuNjQxLTEuNjQgNC4zNjctMS41NzQgNi4wMDguMDY2IDEuNjQgMS42NDIgMS4zNTMgNC4wMTQtLjI4OCA1LjY1NXoiLGZpbGxSdWxlOiJldmVub2RkIn0pfSl9fSwzNzg5MTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtBOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7dmFyIHI9big3MzM1MSksbz1uKDU0NzI2KSxpPW4oNzQ4NDgpO2Z1bmN0aW9uIGEodCl7dmFyIGU9dC5kaXNhYmxlZCxuPXQubG9hZGluZztyZXR1cm4oMCxpLmpzeCkoci5iLHsiYXJpYS1oaWRkZW4iOiJ0cnVlIixkaXNhYmxlZDplLGlzTG9hZGluZzpuLGNoaWxkcmVuOigwLGkuanN4KShvLkEse30pfSl9fSw1Njk2MDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtBOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7dmFyIHI9bigyOTgyOCksbz1uKDY3OTc5KSxpPW4oNzQ4NDgpO2Z1bmN0aW9uIGEoKXt2YXIgdD0oMCxvLklzKSgpO3JldHVybigwLGkuanN4KShyLlgse2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLGN1c3RvbWlzYXRpb246dCxjaGlsZHJlbjooMCxpLmpzeCkoInBhdGgiLHtkOiJNMSA1LjQ4NWw1LjE5NCA0LjcwNkwxMy4zNi44NzQiLHN0cm9rZVdpZHRoOiIyLjUiLGZpbGw6Im5vbmUiLGZpbGxSdWxlOiJldmVub2RkIn0pfSl9fSwzNjQ0NzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtBOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7dmFyIHI9bigxNDQzKSxvPW4oNzQ4NDgpO2Z1bmN0aW9uIGkoKXtyZXR1cm4oMCxvLmpzeCkoci5kLHtmb2N1c2FibGU6ImZhbHNlIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIix3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHZpZXdCb3g6IjAgMCAxNiAxNiIsY2hpbGRyZW46KDAsby5qc3gpKCJwYXRoIix7ZDoiTTcuMzU3IDEuMDcxYy4zNC0uMDM1LjY3OS0uMDcxLjk4Mi0uMDcxIDMgMCA2LjMwNCAyLjA1NCA2LjYyNSA1LjU5LjAxOC4yMTQuMDM2LjQyOC4wMzYuNjQyIDAgMy4wNTQtMi41MTggNi4xNzktNi4zNTcgNi42OTdBNi45NTggNi45NTggMCAwIDEgNy43NSAxNGMtLjM1NyAwLS4zNTcgMC0uNzUtLjA3MS0uOTEgMS4xNzgtMS45ODIgMS40ODItMy4xNiAxLjY5NmEzLjE4NCAzLjE4NCAwIDAgMS0uNTM2LjA1NGMtLjMwNCAwLS43MzMtLjE0My0uNTM2LS4zNC45MjgtLjc4NSAxLjAzNi0xLjMwMyAxLjAzNi0yLjIxNCAwLS4wOSAwLS4xNzktLjAxOC0uMjY4LTEuNjI1LTEuMTA3LTIuNTM2LTIuNTcxLTIuNzUtNC40NDZBNy43NTMgNy43NTMgMCAwIDEgMSA3Ljc2OEMxIDQuNzE0IDMuNTE4IDEuNTg5IDcuMzU3IDEuMDd6In0pfSl9fSwxMzgwODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtBOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7dmFyIHI9big2ODk5Niksbz1uKDc0ODQ4KTtmdW5jdGlvbiBpKCl7cmV0dXJuKDAsby5qc3gpKHIuTix7Zm9jdXNhYmxlOiJmYWxzZSIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsd2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix2aWV3Qm94OiIwIDAgMTYgMTYiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsY2hpbGRyZW46KDAsby5qc3gpKCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJNMTMuOTMzIDMuMDlhLjM1LjM1IDAgMCAwLS40OTUuMDI2bC03LjIzNiA4LjAxMi0zLjc1Ny0zLjM5M2EuMzUuMzUgMCAwIDAtLjQ5NS4wMjVsLS44Ni45NTFhLjM1LjM1IDAgMCAwIC4wMjYuNDk1bDQuOTYgNC40OGEuMzQuMzQgMCAwIDAgLjE3LjA4Mi4zNDYuMzQ2IDAgMCAwIC4zNC0uMTA3bDguMzI0LTkuMjE3YS4zNS4zNSAwIDAgMC0uMDI2LS40OTRsLS45NTEtLjg2eiJ9KX0pfX0sNTIxNjU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDU5NDc3KSxvPW4oNzQ4NDgpO2UuQT1mdW5jdGlvbigpe3JldHVybigwLG8uanN4KShyLlUse2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLGNoaWxkcmVuOigwLG8uanN4KSgiZyIse3N0cm9rZToibm9uZSIsc3Ryb2tlV2lkdGg6IjEiLGZpbGw6Im5vbmUiLGZpbGxSdWxlOiJldmVub2RkIixjaGlsZHJlbjooMCxvLmpzeCkoImciLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgtMzQwLjAwMDAwMCwgLTMyLjAwMDAwMCkiLGZpbGw6ImN1cnJlbnRDb2xvciIsY2hpbGRyZW46KDAsby5qc3gpKCJwb2x5Z29uIix7cG9pbnRzOiIzNTAuNjU2NTM3IDQ0IDM0NiAzOS4zNDM0NjMgMzQxLjM0MzQ2MyA0NCAzNDAgNDIuNjU2NTM3IDM0NC42NTY1MzcgMzggMzQwIDMzLjM0MzQ2MyAzNDEuMzQzNDYzIDMyIDM0NiAzNi42NTY1MzcgMzUwLjY1NjUzNyAzMiAzNTIgMzMuMzQzNDYzIDM0Ny4zNDM0NjMgMzggMzUyIDQyLjY1NjUzNyJ9KX0pfSl9KX19LDE4Njg0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0E6ZnVuY3Rpb24oKXtyZXR1cm4gaX19KTt2YXIgcj1uKDc0ODQ4KTtmdW5jdGlvbiBvKCl7cmV0dXJuIG89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxvLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBpKHQpe3JldHVybigwLHIuanN4KSgic3ZnIixvKHtmb2N1c2FibGU6ImZhbHNlIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIix3aWR0aDoiOCIsaGVpZ2h0OiI4Iix2aWV3Qm94OiIwIDAgOCA4IixmaWxsOiJub25lIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifSx0LHtjaGlsZHJlbjooMCxyLmpzeCkoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGQ6Ik04IDcuMjMyNTFMNy4yMzI1MSA4TDQgNC43Njc0OUwwLjc2NzQ5MiA4TDAgNy4yMzI1MUwzLjIzMjUxIDRMMCAwLjc2NzQ5MkwwLjc2NzQ5MiAwTDQgMy4yMzI1MUw3LjIzMjUxIDBMOCAwLjc2NzQ5Mkw0Ljc2NzQ5IDRMOCA3LjIzMjUxWiIsZmlsbDoiY3VycmVudENvbG9yIn0pfSkpfX0sNzUzNTM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDc0ODQ4KTtlLkE9ZnVuY3Rpb24oKXtyZXR1cm4oMCxyLmpzeCkoInN2ZyIse2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLHZpZXdCb3g6IjAgMCAxOCAxOCIsY2hpbGRyZW46KDAsci5qc3gpKCJwYXRoIix7ZDoiTTkgMGE5IDkgMCAxIDEgMCAxOEE5IDkgMCAwIDEgOSAwem0wIDFDNC41ODkgMSAxIDQuNTg5IDEgOXMzLjU4OSA4IDggOCA4LTMuNTg5IDgtOC0zLjU4OS04LTgtOHpNNSA2Ljk5OWExIDEgMCAxIDEgMi4wMDIuMDA0QTEgMSAwIDAgMSA1IDYuOTk5em01Ljk5OSAwYTEuMDAyIDEuMDAyIDAgMCAxIDIuMDAxIDAgMSAxIDAgMSAxLTIuMDAxIDB6TTguOTU5IDEzLjVjLS4wODYgMC0uMTczLS4wMDItLjI2LS4wMDctMi40NC0uMTMyLTQuMDI0LTIuMDk5LTQuMDktMi4xODJsLS4zMS0uMzkyLjc4MS0uNjIuMzEyLjM5Yy4wMTQuMDE3IDEuMzgyIDEuNzAzIDMuMzcgMS44MDYgMS4zMDYuMDcyIDIuNjEtLjU1NCAzLjg4Mi0xLjg0NmwuMzUxLS4zNTYuNzEyLjcwMi0uMzUuMzU2Yy0xLjQwNyAxLjQyNy0yLjg4NiAyLjE1LTQuMzk4IDIuMTV6IixmaWxsUnVsZToiZXZlbm9kZCJ9KX0pfX0sNTE2Mzg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDc0ODQ4KTtlLkE9ZnVuY3Rpb24oKXtyZXR1cm4oMCxyLmpzeCkoInN2ZyIse2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLGNoaWxkcmVuOigwLHIuanN4cykoImciLHtmaWxsOiJub25lIixmaWxsUnVsZToiZXZlbm9kZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIixjaGlsZHJlbjpbKDAsci5qc3gpKCJwYXRoIix7ZDoiTTkgMTAuOTk1VjUuNjcyTTE2LjY1MiAxNS42NTJIMS4zNDhMOSAuMzQ4eiIsc3Ryb2tlTGluZWNhcDoicm91bmQifSksKDAsci5qc3gpKCJwYXRoIix7ZDoiTTkuMzQ4IDEzLjIxN2EuMzQ4LjM0OCAwIDEgMS0uNjk2IDAgLjM0OC4zNDggMCAwIDEgLjY5NiAweiJ9KV19KX0pfX0sNTA4MDQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSksbi5kKGUse0FJOmZ1bmN0aW9uKCl7cmV0dXJuIFNvfSxBSUN1cnZlZDpmdW5jdGlvbigpe3JldHVybiB4by5BfSxBY3Rpdml0eTpmdW5jdGlvbigpe3JldHVybiBOb30sQWxlcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5BfSxBcHA6ZnVuY3Rpb24oKXtyZXR1cm4gVG99LEFydGljbGU6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sQXJ0aWNsZUZlZWRiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHBlfSxBcnRpY2xlSWNvbjpmdW5jdGlvbigpe3JldHVybiBlZX0sQXJ0aWNsZU9wZW5Cb29rOmZ1bmN0aW9uKCl7cmV0dXJuIG9lfSxBcnRpY2xlT3BlbkJvb2tPdXRsaW5lOmZ1bmN0aW9uKCl7cmV0dXJuIGNlfSxBc2tRdWVzdGlvbjpmdW5jdGlvbigpe3JldHVybiBmfSxBc2tRdWVzdGlvblNxdWFyZTpmdW5jdGlvbigpe3JldHVybiBofSxBdHRhY2hlbWVudDpmdW5jdGlvbigpe3JldHVybiB2LkF9LEF0dGFjaG1lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gVXJ9LEJlbGw6ZnVuY3Rpb24oKXtyZXR1cm4ga3J9LEJvdW5jZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gem99LEJ1dHRvblBpbGw6ZnVuY3Rpb24oKXtyZXR1cm4gRG99LEJ1dHRvblN1Ym1pdDpmdW5jdGlvbigpe3JldHVybiBtLkF9LEJ1dHRvblN1Y2Nlc3M6ZnVuY3Rpb24oKXtyZXR1cm4gYi5BfSxDYWxlbmRhcjpmdW5jdGlvbigpe3JldHVybiB3ZS5BfSxDaGF0QnViYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHcuQX0sQ2hhdFdpdGhVczpmdW5jdGlvbigpe3JldHVybiB4fSxDaGVjazpmdW5jdGlvbigpe3JldHVybiBFLkF9LENoZWNrU2xpbTpmdW5jdGlvbigpe3JldHVybiBPZS5BfSxDaGV2cm9uQmFjazpmdW5jdGlvbigpe3JldHVybiBTcn0sQ2hldnJvbkRvd246ZnVuY3Rpb24oKXtyZXR1cm4gQ3J9LENsaWNrRWxlbWVudDpmdW5jdGlvbigpe3JldHVybiBHb30sQ2xvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gSX0sQ2xvY2tGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4ga30sQ2xvY2tNNTpmdW5jdGlvbigpe3JldHVybiBRdH0sQ2xvc2U6ZnVuY3Rpb24oKXtyZXR1cm4gUC5BfSxDbG9zZUJ1dHRvbjpmdW5jdGlvbigpe3JldHVybiBqLkF9LENsb3NlSWNvbjpmdW5jdGlvbigpe3JldHVybiBtb30sQ2xvc2VNNTpmdW5jdGlvbigpe3JldHVybiBRbn0sQ29sbGFwc2U6ZnVuY3Rpb24oKXtyZXR1cm4gTX0sQ29sbGFwc2VJY29uOmZ1bmN0aW9uKCl7cmV0dXJuIHNvfSxDb21wYW55OmZ1bmN0aW9uKCl7cmV0dXJuIEtvfSxDb21wb3NlOmZ1bmN0aW9uKCl7cmV0dXJuIFIuQX0sQ29tcG9zZXJBdHRhY2htZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHNyfSxDb21wb3NlckVtb2ppOmZ1bmN0aW9uKCl7cmV0dXJuIGlyfSxDb21wb3NlckVtb2ppQWN0aXZlOmZ1bmN0aW9uKCl7cmV0dXJuIHlyfSxDb21wb3NlckdpZjpmdW5jdGlvbigpe3JldHVybiBucn0sQ29tcG9zZXJHaWZBY3RpdmU6ZnVuY3Rpb24oKXtyZXR1cm4gcHJ9LENvbXBvc2VyU2VuZDpmdW5jdGlvbigpe3JldHVybiBicn0sQ29udGFjdEJvb2s6ZnVuY3Rpb24oKXtyZXR1cm4gWW99LENvdXBvbjpmdW5jdGlvbigpe3JldHVybiB0aX0sQ3JlZGl0Q2FyZDpmdW5jdGlvbigpe3JldHVybiByaX0sQ3N2RmlsZUljb246ZnVuY3Rpb24oKXtyZXR1cm4gSnJ9LERlc2NyaXB0aW9uSWNvbjpmdW5jdGlvbigpe3JldHVybiBIdH0sRG93bmxvYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gVX0sRWxsaXBzaXNIb3Jpem9udGFsSWNvbjpmdW5jdGlvbigpe3JldHVybiBwb30sRW1haWxGaWxsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYWl9LEVtb2ppUGlja2VyOmZ1bmN0aW9uKCl7cmV0dXJuIEguQX0sRW5kQ2FsbDpmdW5jdGlvbigpe3JldHVybiBFaX0sRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gRi5BfSxFcnJvckJhZGdlSWNvbjpmdW5jdGlvbigpe3JldHVybiBGcn0sRXZlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2l9LEV4cGFuZDpmdW5jdGlvbigpe3JldHVybiB1b30sRXhwYW5kSWNvbjpmdW5jdGlvbigpe3JldHVybiBmb30sRXh0ZXJuYWxMaW5rOmZ1bmN0aW9uKCl7cmV0dXJuIEJ9LEV4dGVybmFsU291cmNlQXJ0aWNsZVByZXZpZXc6ZnVuY3Rpb24oKXtyZXR1cm4gUmV9LEZpbGVJY29uOmZ1bmN0aW9uKCl7cmV0dXJuIFZyfSxGaW5Db2xsYXBzZUljb246ZnVuY3Rpb24oKXtyZXR1cm4gYm99LEZpbkxhdW5jaGVyOmZ1bmN0aW9uKCl7cmV0dXJuIFl9LEdyZXlJbmZvSWNvbjpmdW5jdGlvbigpe3JldHVybiBHdH0sSGVscDpmdW5jdGlvbigpe3JldHVybiBXZX0sSGVscEFjdGl2ZTpmdW5jdGlvbigpe3JldHVybiBEZX0sSGVscENlbnRlcjpmdW5jdGlvbigpe3JldHVybiBHfSxIb21lOmZ1bmN0aW9uKCl7cmV0dXJuIGVufSxIb21lQWN0aXZlOmZ1bmN0aW9uKCl7cmV0dXJuIFllfSxJbmZvOmZ1bmN0aW9uKCl7cmV0dXJuIG9vfSxJbmxpbmVTb3VyY2VBcnRpY2xlUHJldmlldzpmdW5jdGlvbigpe3JldHVybiBUZX0sSW5zaWdodHM6ZnVuY3Rpb24oKXtyZXR1cm4gdml9LEpvYlRpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIEt9LExhcmdlUmlnaHRBcnJvdzpmdW5jdGlvbigpe3JldHVybiBkaX0sTGF1bmNoZXI6ZnVuY3Rpb24oKXtyZXR1cm4gWi5BfSxMYXVuY2hlck1pbmltaXplOmZ1bmN0aW9uKCl7cmV0dXJuIFEuQX0sTGVmdENhcmV0OmZ1bmN0aW9uKCl7cmV0dXJuICR9LExlZnRDYXJldE01OmZ1bmN0aW9uKCl7cmV0dXJuIEt0fSxMaXN0OmZ1bmN0aW9uKCl7cmV0dXJuIGV0fSxMb2NhdGlvbjpmdW5jdGlvbigpe3JldHVybiBydH0sTG9ja2VkOmZ1bmN0aW9uKCl7cmV0dXJuIG1pfSxNZW51SWNvbjpmdW5jdGlvbigpe3JldHVybiBhdH0sTWVyY3VyeUNoZXZyb25Eb3duOmZ1bmN0aW9uKCl7cmV0dXJuIE9yfSxNZXJjdXJ5RWxsaXBzaXNWZXJ0aWNhbEljb246ZnVuY3Rpb24oKXtyZXR1cm4gaG99LE1lc3NhZ2VzOmZ1bmN0aW9uKCl7cmV0dXJuIGxufSxNZXNzYWdlc0FjdGl2ZTpmdW5jdGlvbigpe3JldHVybiB1bn0sTWljOmZ1bmN0aW9uKCl7cmV0dXJuIElpfSxNaWNPZmY6ZnVuY3Rpb24oKXtyZXR1cm4gVGl9LE1pY3JvcGhvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gdXR9LE1vcmVNZW51SWNvbjpmdW5jdGlvbigpe3JldHVybiBsdH0sTmV3OmZ1bmN0aW9uKCl7cmV0dXJuIGZ0fSxOZXdDb252ZXJzYXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gcHR9LE5ld01lc3NhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gaHQuQX0sTmV3czpmdW5jdGlvbigpe3JldHVybiBtbn0sTmV3c0FjdGl2ZTpmdW5jdGlvbigpe3JldHVybiB2bn0sTm9NZXNzYWdlc0ljb246ZnVuY3Rpb24oKXtyZXR1cm4geXR9LE5vdGlmaWNhdGlvbnNJY29uOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LE9wZW5Jbk5ld1dpbmRvdzpmdW5jdGlvbigpe3JldHVybiBndC5BfSxQYXJhZ3JhcGg6ZnVuY3Rpb24oKXtyZXR1cm4gbXR9LFBkZkZpbGVJY29uOmZ1bmN0aW9uKCl7cmV0dXJuIHJvfSxQZXJzb246ZnVuY3Rpb24oKXtyZXR1cm4geWV9LFBlcnNvblR5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gTWl9LFBob25lOmZ1bmN0aW9uKCl7cmV0dXJuIF9pfSxQaG90bzpmdW5jdGlvbigpe3JldHVybiBqcn0sUHJvZHVjdFRvdXI6ZnVuY3Rpb24oKXtyZXR1cm4gYnQuQX0sUXVvdGU6ZnVuY3Rpb24oKXtyZXR1cm4gYmV9LFJldHJ5OmZ1bmN0aW9uKCl7cmV0dXJuIHpyfSxSZXRyeVVwbG9hZEljb246ZnVuY3Rpb24oKXtyZXR1cm4gSHJ9LFJpZ2h0Q2hldnJvbjpmdW5jdGlvbigpe3JldHVybiB3dC5BfSxSaWdodENoZXZyb25Db2xvcmFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gX3QuQX0sUmlnaHRDaGV2cm9uU21hbGw6ZnVuY3Rpb24oKXtyZXR1cm4gU3QuQX0sUm9ja2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGtufSxSdGVCb2xkOmZ1bmN0aW9uKCl7cmV0dXJuICRpfSxSdGVCdWxsZXRlZExpc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gc2F9LFJ0ZUl0YWxpYzpmdW5jdGlvbigpe3JldHVybiBuYX0sUnRlTGluazpmdW5jdGlvbigpe3JldHVybiBpYX0sUnRlTnVtYmVyZWRMaXN0OmZ1bmN0aW9uKCl7cmV0dXJuIGxhfSxTZWFyY2g6ZnVuY3Rpb24oKXtyZXR1cm4geHR9LFNlbGZTZXJ2ZTpmdW5jdGlvbigpe3JldHVybiBFdC5BfSxTZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIEN0fSxTbGE6ZnVuY3Rpb24oKXtyZXR1cm4gQXR9LFNsaXBwaW5nQXdheTpmdW5jdGlvbigpe3JldHVybiBWaX0sU3BlYWtlcjpmdW5jdGlvbigpe3JldHVybiBLaS5BfSxTdGFyczpmdW5jdGlvbigpe3JldHVybiBXaX0sU3RvcDpmdW5jdGlvbigpe3JldHVybiBrdH0sU3VydmV5U3RhcjpmdW5jdGlvbigpe3JldHVybiBMdC5BfSxUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIGpufSxUYXNrQWN0aXZlOmZ1bmN0aW9uKCl7cmV0dXJuIE1ufSxUaGluRG93bkFycm93SWNvbjpmdW5jdGlvbigpe3JldHVybiBnb30sVGhpbkxlZnRBcnJvd0ljb246ZnVuY3Rpb24oKXtyZXR1cm4gdm99LFRoaW5SaWdodEFycm93SWNvbjpmdW5jdGlvbigpe3JldHVybiB5b30sVGlja2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFR0LkF9LFRpY2tldERlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gRG59LFRpY2tldFJlc29sdmVkOmZ1bmN0aW9uKCl7cmV0dXJuIEtufSxUaWNrZXRTbWFsbDpmdW5jdGlvbigpe3JldHVybiB6bn0sVGlja2V0V2FpdGluZ09uWW91OmZ1bmN0aW9uKCl7cmV0dXJuIEdufSxUaWNrZXRzOmZ1bmN0aW9uKCl7cmV0dXJuIE9ufSxUaWNrZXRzQWN0aXZlOmZ1bmN0aW9uKCl7cmV0dXJuIHhufSxUaW55QWxlcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gWWl9LFRvcENhcmV0OmZ1bmN0aW9uKCl7cmV0dXJuIENlfSxUeHRGaWxlSWNvbjpmdW5jdGlvbigpe3JldHVybiBYcn0sVW5yZWFkSW5kaWNhdG9yOmZ1bmN0aW9uKCl7cmV0dXJuIFh0fSxWaWRlbzpmdW5jdGlvbigpe3JldHVybiBNcn0sVmlkZW9QYXVzZTpmdW5jdGlvbigpe3JldHVybiBqdC5BfSxWaWRlb1BsYXk6ZnVuY3Rpb24oKXtyZXR1cm4gUHQuQX0sVmlkZW9SZXBsYXk6ZnVuY3Rpb24oKXtyZXR1cm4gTnQuQX0sVmlld0NvbnZlcnNhdGlvbjpmdW5jdGlvbigpe3JldHVybiBJb30sV2F2ZWZvcm06ZnVuY3Rpb24oKXtyZXR1cm4gRHR9LFdlUnVuT25JbnRlcmNvbTpmdW5jdGlvbigpe3JldHVybiBGdC5BfSxXcmVuY2g6ZnVuY3Rpb24oKXtyZXR1cm4gSGl9LFppcEZpbGVJY29uOmZ1bmN0aW9uKCl7cmV0dXJuIFdyfX0pO3ZhciByLG89big5NjU0MCk7ZnVuY3Rpb24gaSgpe3JldHVybiBpPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0saS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIGEsdT1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLGkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLCJhcmlhLWhpZGRlbiI6InRydWUiLHZpZXdCb3g6IjAgMCAxNiAxNiJ9LHQpLHJ8fChyPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0zLjUgNS41YTQuNSA0LjUgMCAwIDEgOSAwVjhsMi4yOTMgMi4yOTNjLjYzLjYzLjE4NCAxLjcwNy0uNzA3IDEuNzA3SDEuOTE0Yy0uODkgMC0xLjMzNy0xLjA3Ny0uNzA3LTEuNzA3TDMuNSA4em02LjUgOC4wOGEyIDIgMCAxIDEtMy45OTgtLjA4aDMuOTk2eiIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpKX0scz1uKDc4NTUpO2Z1bmN0aW9uIGMoKXtyZXR1cm4gYz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGMuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBsLGY9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixjKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjEzLGhlaWdodDoxNSxmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTMgMTUiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxhfHwoYT1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik02LjI5IDBhNi4yOSA2LjI5IDAgMCAxIDYuMjkgNi4yOWMwIDYuMjktNi4yODQgOC43MS02LjI4NCA4Ljcxdi0yLjQySDYuMjlBNi4yOSA2LjI5IDAgMSAxIDYuMjkgMG0uNTggOS4xMDNhLjU3OC41NzggMCAxIDAgMCAuMDAxem0tLjU3OC01LjcxYy0xLjAxIDAtMS44NC43OC0xLjkyNSAxLjc3bC45NTcuMTM1YS45Ny45NyAwIDAgMSAxLjkzOC4wMjhjMCAuOTY0LTEuMzU1Ljk2NC0xLjM1NSAyLjMxMnYuMTA4aC43N3YtLjEwOGMwLS43NyAxLjU0Ny0uOTYzIDEuNTQ3LTIuMzEyYTEuOTM0IDEuOTM0IDAgMCAwLTEuOTMyLTEuOTMyeiJ9KSkpfTtmdW5jdGlvbiBkKCl7cmV0dXJuIGQ9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxkLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgcCxoPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsZCh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNCxoZWlnaHQ6MTYsZmlsbDoiY3VycmVudENvbG9yIix2aWV3Qm94OiIwIDAgMTQgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxsfHwobD1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJtNi44NTcgMTYtMi4zMDUtMi4zMDVIMS42YTEuNTQgMS41NCAwIDAgMS0xLjEzLS40NyAxLjU0IDEuNTQgMCAwIDEtLjQ3LTEuMTNWMS42UTAgLjk0LjQ3LjQ3QTEuNTQgMS41NCAwIDAgMSAxLjYgMGgxMC41MTRxLjY2IDAgMS4xMy40N3QuNDcgMS4xM3YxMC40OTVxMCAuNjYtLjQ3IDEuMTNhMS41NCAxLjU0IDAgMCAxLTEuMTMuNDdIOS4xNDN6bS43MDUtNy41NDNxMC0uNzA0LjE0My0xLjAxLjE0My0uMzA0LjU4LS43NDIuNjY3LS42NDguOTcyLTEuMTA1dC4zMDUtMS4wODZxMC0xLjAyOC0uNzE0LTEuNjM4LS43MTUtLjYxLTEuODU3LS42MS0xLjAyOSAwLTEuNzcuNTItLjc0Mi41MTktMS4wMyAxLjQ0M2wxLjMzMy41MzNxLjIyOC0uNTcyLjYwNi0uODQ4YTEuNDUgMS40NSAwIDAgMSAuODgtLjI3NnEuNDY1IDAgLjc3NS4yMzh0LjMxLjY3NnEwIC4zNDMtLjIzOC42OTYtLjIzOS4zNTItLjc1Mi44MjgtLjU3Mi41MTUtLjc5IDEuMDM4LS4yMi41MjQtLjIyIDEuMzQzem0tLjc0IDIuOTUyYS45NS45NSAwIDAgMCAuNzAyLS4yODcuOTYuOTYgMCAwIDAgLjI4Ni0uNzA1Ljk1Ljk1IDAgMCAwLS4yODgtLjcwMy45Ni45NiAwIDAgMC0uNzA1LS4yODUuOTUuOTUgMCAwIDAtLjcwMy4yODcuOTYuOTYgMCAwIDAtLjI4NS43MDVxMCAuNDE3LjI4Ny43MDMuMjg4LjI4NS43MDUuMjg1In0pKSl9LHY9big2MzI5NSk7ZnVuY3Rpb24geSgpe3JldHVybiB5PU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0seS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIGc9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIix5KHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxwfHwocD1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik0yIDMuNUguNVYxNGMwIC44MjUuNjc1IDEuNSAxLjUgMS41aDEwLjVWMTRIMnptMTItM0g1Yy0uODI1IDAtMS41LjY3NS0xLjUgMS41djljMCAuODI1LjY3NSAxLjUgMS41IDEuNWg5Yy44MjUgMCAxLjUtLjY3NSAxLjUtMS41VjJjMC0uODI1LS42NzUtMS41LTEuNS0xLjVNMTQgMTFINVYyaDl6TTYuNSA1Ljc1aDZ2MS41aC02ek02LjUgOGgzdjEuNWgtM3ptMC00LjVoNlY1aC02eiJ9KSkpfSxtPW4oMzc4OTEpLGI9big1Njk2MCksdz1uKDM2NDQ3KSxfPW4oNjIzNjApLFM9big3NDg0OCk7ZnVuY3Rpb24geCgpe3JldHVybigwLFMuanN4KShfLk0se2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLHZpZXdCb3g6IjAgMCAxNSAxNiIsY2hpbGRyZW46KDAsUy5qc3gpKCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGNsaXBSdWxlOiJldmVub2RkIixkOiJNMSA2LjU2NjIxQzEgNS4xNjM4NiAxIDQuNDYyNjggMS4zMDMzMiAzLjg0MDQyQzEuNTUxMzMgMy4zMzE2NSAyLjAzNTY5IDIuODE3ODcgMi41Mjg5NyAyLjU0MDM0QzMuMTMyMjkgMi4yMDA5IDMuNzY5MTEgMi4xNjMzNCA1LjA0Mjc1IDIuMDg4MkM1LjkzMTQxIDIuMDM1NzggNi45Mjk5MiAyIDggMkM5LjA3MDA4IDIgMTAuMDY4NiAyLjAzNTc4IDEwLjk1NzIgMi4wODgyQzEyLjIzMDkgMi4xNjMzNCAxMi44Njc3IDIuMjAwOSAxMy40NzEgMi41NDAzNEMxMy45NjQzIDIuODE3ODcgMTQuNDQ4NyAzLjMzMTY1IDE0LjY5NjcgMy44NDA0MkMxNSA0LjQ2MjY4IDE1IDUuMTYzODYgMTUgNi41NjYyMVY4LjQzMzc5QzE1IDkuODM2MTQgMTUgMTAuNTM3MyAxNC42OTY3IDExLjE1OTZDMTQuNDQ4NyAxMS42NjgzIDEzLjk2NDMgMTIuMTgyMSAxMy40NzEgMTIuNDU5N0MxMi44Njc3IDEyLjc5OTEgMTIuMjMwOSAxMi44MzY3IDEwLjk1NzMgMTIuOTExOEMxMC4wNjg2IDEyLjk2NDIgOS4wNzAwOCAxMyA4IDEzQzcuMTIzNCAxMyA2LjI5NDgzIDEyLjk3NiA1LjUzNTMzIDEyLjkzODVMMi44MDk2NyAxNC4xNzc0QzIuMjA3MjcgMTQuNDUxMiAxLjkwNjA2IDE0LjU4ODIgMS42NjI2IDE0LjU0NTdDMS40NDk4OCAxNC41MDg2IDEuMjYxMTcgMTQuMzg3MSAxLjEzOTM4IDE0LjIwODhDMSAxNC4wMDQ3IDEgMTMuNjczOSAxIDEzLjAxMjJWNi41NjYyMVpNNCA1LjRDNCA1LjE3OTA5IDQuMTc5MDkgNSA0LjQgNUgxMS42QzExLjgyMDkgNSAxMiA1LjE3OTA5IDEyIDUuNFY2QzEyIDYuMjIwOTEgMTEuODIwOSA2LjQgMTEuNiA2LjRINC40QzQuMTc5MDkgNi40IDQgNi4yMjA5MSA0IDZWNS40Wk00LjQgOEM0LjE3OTA5IDggNCA4LjE3OTA5IDQgOC40VjlDNCA5LjIyMDkxIDQuMTc5MDkgOS40IDQuNCA5LjRIOC42QzguODIwOTEgOS40IDkgOS4yMjA5MSA5IDlWOC40QzkgOC4xNzkwOSA4LjgyMDkxIDggOC42IDhINC40WiIsZmlsbDoiY3VycmVudENvbG9yIn0pfSl9dmFyIEU9bigxMzgwOCksQz1uKDk4MDU0KSxPPSgwLEMuQXkpKCJzdmciLHt0YXJnZXQ6ImV4NHFhOXYxIn0pKCJmaWxsOiIsKDAsQy53NCkoImJ1dHRvbkJhY2tncm91bmRDb2xvciIpLCI7IiksQT0oMCxDLkF5KSgic3ZnIix7dGFyZ2V0OiJleDRxYTl2MCJ9KSgiZmlsbDoiLCgwLEMudzQpKCJ0ZXh0TXV0ZWQiKSwiOyIpO2Z1bmN0aW9uIEkodCl7dmFyIGU9dC5zaXplLG49dm9pZCAwPT09ZT8xNDplO3JldHVybigwLFMuanN4KShPLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOm4saGVpZ2h0Om4sdmlld0JveDoiMCAwIDE0IDE0IixjaGlsZHJlbjooMCxTLmpzeCkoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTEyLjUgN2MwIDMuMDM3Ni0yLjQ2MjQgNS41LTUuNSA1LjUtMy4wMzc1NyAwLTUuNS0yLjQ2MjQtNS41LTUuNSAwLTMuMDM3NTcgMi40NjI0My01LjUgNS41LTUuNSAzLjAzNzYgMCA1LjUgMi40NjI0MyA1LjUgNS41ek0xNCA3YzAgMy44NjYtMy4xMzQgNy03IDctMy44NjU5OSAwLTctMy4xMzQtNy03IDAtMy44NjU5OSAzLjEzNDAxLTcgNy03IDMuODY2IDAgNyAzLjEzNDAxIDcgN3pNNi4yNzg0NCAzLjQ4MjE5djMuNzgwOTNsLjAwMTA1LjAwMTA0Yy4wMDMwNS4wNzgwNS4wMzY1OC4xNTE4LjA5MzQxLjIwNTQ2bC4wNzQ1Mi4wNTY2TDkuNjcwNiA5LjY5NzA4bC4xNTAwOS4wMzc3M2guMDU2NjdjLjA5MzQxLS4wMTg4Ni4xNDkwNC0uMDc0NDIuMjA1NzQtLjEzMTAybC40MTI1LS42NTUxNGMuMDM1NS0uMDQ5MjYuMDU1Mi0uMTA4MDkuMDU2Ni0uMTY4NzYgMC0uMDkzMjktLjA1NjYtLjE0ODg1LS4xNTAxLS4yMDU0NUw3LjYyODE3IDYuNjgzNDVWMy40ODIxOWMwLS4xNDk4OS0uMTMxMi0uMjk5NzktLjMwMDE3LS4yOTk3OWgtLjc0OTM4Yy0uMTY4OTggMC0uMzAwMTguMTQ5OS0uMzAwMTguMjk5Nzl6IixjbGlwUnVsZToiZXZlbm9kZCJ9KX0pfWZ1bmN0aW9uIGsodCl7dmFyIGU9dC5zaXplLG49dm9pZCAwPT09ZT8xNDplO3JldHVybigwLFMuanN4KShBLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOm4saGVpZ2h0Om4sdmlld0JveDoiMCAwIDEzIDEyIixjaGlsZHJlbjooMCxTLmpzeCkoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGQ6Ik02LjUgMC4yNUMzLjMyIDAuMjUgMC43NSAyLjgyIDAuNzUgNkMwLjc1IDkuMTggMy4zMiAxMS43NSA2LjUgMTEuNzVDOS42OCAxMS43NSAxMi4yNSA5LjE4IDEyLjI1IDZDMTIuMjUgMi44MiA5LjY4IDAuMjUgNi41IDAuMjVaTTkuMjUgNi43NUg1Ljc1VjIuNUM1Ljc1IDIuMDkgNi4wOSAxLjc1IDYuNSAxLjc1QzYuOTEgMS43NSA3LjI1IDIuMDkgNy4yNSAyLjVWNS4yNUg5LjI1QzkuNjYgNS4yNSAxMCA1LjU5IDEwIDZDMTAgNi40MSA5LjY2IDYuNzUgOS4yNSA2Ljc1WiJ9KX0pfXZhciBMLFQsaj1uKDUyMTY1KSxQPW4oMTg2ODQpO2Z1bmN0aW9uIE4oKXtyZXR1cm4gTj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LE4uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBNPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsTih7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksTHx8KEw9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7c3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZVdpZHRoOjEuNyxkOiJtMSAxIDUgNSJ9KSksVHx8KFQ9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7c3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZVdpZHRoOjEuNzUsZDoiTTEuNSA2LjVoNXYtNW0zLjUgOC41MDIgNSA1bS01LjUtLjV2LTVoNSJ9KSkpfSxSPW4oMjc1NzUpO2Z1bmN0aW9uIFUoKXtyZXR1cm4oMCxTLmpzeHMpKCJzdmciLHt3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHZpZXdCb3g6IjAgMCAxNiAxNiIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixjaGlsZHJlbjpbKDAsUy5qc3gpKCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGQ6Ik03Ljk5OTkgMTMuNjQ5OUM0Ljg3OTQ5IDEzLjY0OTkgMi4zNDk5IDExLjEyMDMgMi4zNDk5IDcuOTk5OUMyLjM0OTkgNC44Nzk0OSA0Ljg3OTQ5IDIuMzQ5OSA3Ljk5OTkgMi4zNDk5QzExLjEyMDMgMi4zNDk5IDEzLjY0OTkgNC44Nzk0OSAxMy42NDk5IDcuOTk5OUMxMy42NDk5IDExLjEyMDMgMTEuMTIwMyAxMy42NDk5IDcuOTk5OSAxMy42NDk5Wk0wLjY0OTkwMiA3Ljk5OTlDMC42NDk5MDIgMTIuMDU5MiAzLjk0MDYxIDE1LjM0OTkgNy45OTk5IDE1LjM0OTlDMTIuMDU5MiAxNS4zNDk5IDE1LjM0OTkgMTIuMDU5MiAxNS4zNDk5IDcuOTk5OUMxNS4zNDk5IDMuOTQwNjEgMTIuMDU5MiAwLjY0OTkwMiA3Ljk5OTkgMC42NDk5MDJDMy45NDA2MSAwLjY0OTkwMiAwLjY0OTkwMiAzLjk0MDYxIDAuNjQ5OTAyIDcuOTk5OVoifSksKDAsUy5qc3gpKCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGQ6Ik03LjM5ODg2IDExLjQ2NzdDNy43MzA4MSAxMS43OTk2IDguMjY5IDExLjc5OTYgOC42MDA5NCAxMS40Njc3TDEwLjkwODYgOS4xNTk5OUMxMS4yNDA2IDguODI4MDQgMTEuMjQwNiA4LjI4OTg1IDEwLjkwODYgNy45NTc5MUMxMC41NzY3IDcuNjI1OTYgMTAuMDM4NSA3LjYyNTk2IDkuNzA2NTUgNy45NTc5MUw4Ljg0OTkgOC44MTQ1NlY1LjEzMzE0QzguODQ5OSA0LjY2MzcgOC40NjkzNCA0LjI4MzE0IDcuOTk5OSA0LjI4MzE0QzcuNTMwNDYgNC4yODMxNCA3LjE0OTkgNC42NjM3IDcuMTQ5OSA1LjEzMzE0VjguODE0NTZMNi4yOTMyNSA3Ljk1NzkxQzUuOTYxMyA3LjYyNTk2IDUuNDIzMTIgNy42MjU5NiA1LjA5MTE3IDcuOTU3OTFDNC43NTkyMiA4LjI4OTg1IDQuNzU5MjIgOC44MjgwNCA1LjA5MTE3IDkuMTU5OTlMNy4zOTg4NiAxMS40Njc3WiJ9KV19KX12YXIgeixIPW4oNzUzNTMpLEY9big1MTYzOCk7ZnVuY3Rpb24gRCgpe3JldHVybiBEPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sRC5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIEI9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixEKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIix2aWV3Qm94OiIwIDAgMTYgMTYifSx0KSx6fHwoej1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMyAzLjdoNFYySDNhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMnYtMmgtMS43djJhLjMuMyAwIDAgMS0uMy4zSDNhLjMuMyAwIDAgMS0uMy0uM1Y0YS4zLjMgMCAwIDEgLjMtLjNNOS4yMTggM2MwIC40Ny4zOC44NS44NS44NWgxLjg4TDguMjk2IDcuNTAyYS44NS44NSAwIDAgMCAxLjIwMiAxLjIwMmwzLjY1Mi0zLjY1MnYxLjg4YS44NS44NSAwIDAgMCAxLjcgMFYzYS44NS44NSAwIDAgMC0uODUtLjg1aC0zLjkzMmEuODUuODUgMCAwIDAtLjg1Ljg1IixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpfSxWPSgwLEMuQXkpKCJzdmciLHt0YXJnZXQ6ImUxdG1rdzF6MCJ9KSgiZmlsbDoiLCgwLEMudzQpKCJsaW5rQ29sb3IiKSwiIWltcG9ydGFudDtoZWlnaHQ6MTNweDt3aWR0aDoxM3B4O3BhZGRpbmctcmlnaHQ6NXB4OyIpLEc9ZnVuY3Rpb24oKXtyZXR1cm4oMCxTLmpzeCkoVix7Zm9jdXNhYmxlOiJmYWxzZSIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsdmlld0JveDoiMCAwIDE1IDE1Iix2ZXJzaW9uOiIxLjEiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsY2hpbGRyZW46KDAsUy5qc3gpKCJnIix7c3Ryb2tlV2lkdGg6IjEiLGZpbGxSdWxlOiJldmVub2RkIixzdHJva2U6ImN1cnJlbnRDb2xvciIsY2hpbGRyZW46KDAsUy5qc3gpKCJnIix7ZmlsbFJ1bGU6Im5vbnplcm8iLGNoaWxkcmVuOigwLFMuanN4cykoImciLHtjaGlsZHJlbjpbKDAsUy5qc3gpKCJwYXRoIix7ZDoiTTEsMTQgTDEsNCBMOC4xMTUzODQ2Miw0IEM4LjM5MTUyNjk5LDQgOC42MTUzODQ2MiwzLjc3NjE0MjM3IDguNjE1Mzg0NjIsMy41IEM4LjYxNTM4NDYyLDMuMjIzODU3NjMgOC4zOTE1MjY5OSwzIDguMTE1Mzg0NjIsMyBMMC41LDMgQzAuMjIzODU3NjI1LDMgMCwzLjIyMzg1NzYzIDAsMy41IEwwLDE0LjUgQzAsMTQuNzc2MTQyNCAwLjIyMzg1NzYyNSwxNSAwLjUsMTUgTDExLjUsMTUgQzExLjc3NjE0MjQsMTUgMTIsMTQuNzc2MTQyNCAxMiwxNC41IEwxMiw3LjczMDc2OTIzIEMxMiw3LjQ1NDYyNjg2IDExLjc3NjE0MjQsNy4yMzA3NjkyMyAxMS41LDcuMjMwNzY5MjMgQzExLjIyMzg1NzYsNy4yMzA3NjkyMyAxMSw3LjQ1NDYyNjg2IDExLDcuNzMwNzY5MjMgTDExLDE0IEwxLDE0IFoifSksKDAsUy5qc3gpKCJwYXRoIix7ZDoiTTUuMzUzNTUzMzksMTAuMzUzNTUzNCBMMTIuODUzNTUzNCwyLjg1MzU1MzM5IEMxMy4wNDg4MTU1LDIuNjU4MjkxMjQgMTMuMDQ4ODE1NSwyLjM0MTcwODc2IDEyLjg1MzU1MzQsMi4xNDY0NDY2MSBDMTIuNjU4MjkxMiwxLjk1MTE4NDQ2IDEyLjM0MTcwODgsMS45NTExODQ0NiAxMi4xNDY0NDY2LDIuMTQ2NDQ2NjEgTDQuNjQ2NDQ2NjEsOS42NDY0NDY2MSBDNC40NTExODQ0Niw5Ljg0MTcwODc2IDQuNDUxMTg0NDYsMTAuMTU4MjkxMiA0LjY0NjQ0NjYxLDEwLjM1MzU1MzQgQzQuODQxNzA4NzYsMTAuNTQ4ODE1NSA1LjE1ODI5MTI0LDEwLjU0ODgxNTUgNS4zNTM1NTMzOSwxMC4zNTM1NTM0IFoifSksKDAsUy5qc3gpKCJwYXRoIix7ZDoiTTE0LDUuNSBDMTQsNS43NzYxNDIzNyAxNC4yMjM4NTc2LDYgMTQuNSw2IEMxNC43NzYxNDI0LDYgMTUsNS43NzYxNDIzNyAxNSw1LjUgTDE1LDAuNSBDMTUsMC4yMjM4NTc2MjUgMTQuNzc2MTQyNCw5LjQzNjg5NTcxZS0xNiAxNC41LDguODgxNzg0MmUtMTYgTDkuNSwwIEM5LjIyMzg1NzYzLC00LjkwNTI3Mzk2ZS0xNyA5LDAuMjIzODU3NjI1IDksMC41IEM5LDAuNzc2MTQyMzc1IDkuMjIzODU3NjMsMSA5LjUsMSBMMTQsMSBMMTQsNS41IFoifSldfSl9KX0pfSl9O3ZhciBxPXtuYW1lOiJvdTh4c3ciLHN0eWxlczoiZmxleDowIDAgYXV0byJ9LFc9KDAsQy5BeSkoInN2ZyIse3RhcmdldDoiZTEwZGZ3NDgwIn0pKCJ3aWR0aDoxNnB4O2hlaWdodDoxNnB4O21hcmdpbi1yaWdodDo1cHg7dmVydGljYWwtYWxpZ246dGV4dC1ib3R0b207Pmc+Z3tzdHJva2U6IiwoMCxDLnc0KSgiaGVhZGVyVGl0bGVDb2xvciIpLCI7fSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzQmlvJiZxfSksIjsiKSxLPWZ1bmN0aW9uKCl7cmV0dXJuKDAsUy5qc3gpKFcse2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLHZpZXdCb3g6IjAgMCAxNyAxNSIsY2hpbGRyZW46KDAsUy5qc3gpKCJnIix7c3Ryb2tlV2lkdGg6IjEiLGZpbGxSdWxlOiJldmVub2RkIixzdHJva2VMaW5lam9pbjoicm91bmQiLGZpbGw6Im5vbmUiLGNoaWxkcmVuOigwLFMuanN4KSgiZyIse3N0cm9rZToiY3VycmVudENvbG9yIixjaGlsZHJlbjooMCxTLmpzeHMpKCJnIix7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoLTEwNzMgLTEyMCl0cmFuc2xhdGUoMTAwMiAzMCl0cmFuc2xhdGUoNzIgOTApdHJhbnNsYXRlKDAgMSkiLGNoaWxkcmVuOlsoMCxTLmpzeCkoInBhdGgiLHtkOiJNMC40IDYuN0w2LjcgNi43IixzdHJva2VMaW5lY2FwOiJyb3VuZCJ9KSwoMCxTLmpzeCkoInBhdGgiLHtkOiJNOC45IDYuN0wxNS4yIDYuNyIsc3Ryb2tlTGluZWNhcDoicm91bmQifSksKDAsUy5qc3gpKCJwb2x5Z29uIix7cG9pbnRzOiIxNS4yIDMuMiAwLjQgMy4yIDAuNCAxMy4xIDE1LjIgMTMuMSJ9KSwoMCxTLmpzeCkoInBvbHlnb24iLHtwb2ludHM6IjguOSA4LjkgNi43IDguOSA2LjcgNiA4LjkgNiJ9KSwoMCxTLmpzeCkoInBhdGgiLHtkOiJNNSAzLjJDNSAxLjYgNi4yIDAuNCA3LjggMC40IDkuNCAwLjQgMTAuNiAxLjYgMTAuNiAzLjIifSldfSl9KX0pfSl9LFo9big4MzM3OCksSj1uKDg4NTc2KSxZPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY29sb3Isbj0oMCxKLkEpKCkscj1TdHJpbmcobiYmZSYmbltlXXx8bi5pY29uRGVmYXVsdCk7cmV0dXJuKDAsUy5qc3gpKCJzdmciLHtmb2N1c2FibGU6ImZhbHNlIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIix2aWV3Qm94OiIwIDAgMzIgMzIiLGZpbGw6Im5vbmUiLGNoaWxkcmVuOigwLFMuanN4KSgicGF0aCIse2ZpbGw6cixkOiJNMjcuNTM4NCAyMC40MzExQzMwLjAxNjcgMjAuNDMxMSAzMi4wMjA2IDE4LjQwMTUgMzEuOTc4OSAxNS45MTQyQzMxLjkzOCAxMy40Nzg2IDI5LjkwMDQgMTEuNTQ4MyAyNy40NjQ3IDExLjU0ODNIMjUuNzYxQzI0LjQ4NzQgMTEuNTQ4MyAyMy4zMTkzIDExLjEwMDYgMjIuNDAyNSAxMC4zNTU0QzIyLjMxMzcgMTAuMjgzNCAyMi4zMTM3IDEwLjE0ODQgMjIuNDAyNSAxMC4wNzY0QzIzLjMxOTMgOS4zMzExNyAyNC40ODc0IDguODgzNDcgMjUuNzYxIDguODgzNDdIMjcuNDU5NEMyOS45Mzc2IDguODgzNDcgMzEuOTk2NiA2Ljg4ODM5IDMxLjk3ODkgNC40MTAwN0MzMS45NjExIDEuOTMxNzYgMjkuOTk3MiAwLjAxNzUxNzcgMjcuNTY5NiAwLjAwMDY0MDQyNEMyNS4wOTE0IC0wLjAxNzEyNTIgMjMuMDk2MyAyLjA0MjgxIDIzLjA5NjMgNC41MjAyM1Y2LjIxODYyQzIzLjA5NjMgNy40OTI0MiAyMi42NDg2IDguNjYwNTIgMjEuOTAzNCA5LjU3NzIzQzIxLjgzMTQgOS42NjYwNiAyMS42OTYzIDkuNjY2MDYgMjEuNjI0NSA5LjU3NzIzQzIwLjg3OTIgOC42NjA1MiAyMC40MzE2IDcuNDkyNDIgMjAuNDMxNiA2LjIxODYyVjQuNDQyMDVDMjAuNDMxNiAxLjk2Mzc0IDE4LjQwMTggLTAuMDQxMTA4OSAxNS45MTQ3IDAuMDAwNjQwNDI0QzEzLjQ3OTEgMC4wNDE1MDE1IDExLjU0ODkgMi4wNzkyMyAxMS41NDg5IDQuNTE0OVY2LjIxODYyQzExLjU0ODkgNy40OTI0MiAxMS4xMDEyIDguNjYwNTIgMTAuMzU2IDkuNTc3MjNDMTAuMjg0IDkuNjY2MDYgMTAuMTQ5IDkuNjY2MDYgMTAuMDc3MSA5LjU3NzIzQzkuMzMxODQgOC42NjA1MiA4Ljg4NDE0IDcuNDkyNDIgOC44ODQxNCA2LjIxODYyVjQuNDQyMDVDOC44ODQxNCAxLjkzMTc4IDYuODAxMTcgLTAuMDkyNjI4NiA0LjI2OTY0IDAuMDA0MTk0MzJDMS45NjgxNyAwLjA5MTI0NjEgMC4wOTIxNjEgMS45NjczIDAuMDA0MjIzMzIgNC4yNjg4NUMtMC4wOTE3MDg3IDYuODAwNDUgMS45MzE3NCA4Ljg4MzQ3IDQuNDQxOTUgOC44ODM0N0g2LjIxODQ3QzcuNDkyMjQgOC44ODM0NyA4LjY2MDMxIDkuMzMxMTcgOS41NzcgMTAuMDc2NEM5LjY2NTgxIDEwLjE0ODQgOS42NjU4MSAxMC4yODM0IDkuNTc3IDEwLjM1NTRDOC42NjAzMSAxMS4xMDA2IDcuNDkyMjQgMTEuNTQ4MyA2LjIxODQ3IDExLjU0ODNINC41MTQ4QzIuMDc5MiAxMS41NDgzIDAuMDQxNTI2OCAxMy40Nzg2IDAuMDAwNjY2ODE4IDE1LjkxNDJDLTAuMDQwMTkzIDE4LjM0OTkgMS45NjI4NCAyMC40MzExIDQuNDQxMDggMjAuNDMxMUg2LjIxNzU4QzcuNDkxMzUgMjAuNDMxMSA4LjY1OTQyIDIwLjg3ODkgOS41NzYwOSAyMS42MjQxQzkuNjY0OTIgMjEuNjk2IDkuNjY0OTIgMjEuODMxIDkuNTc2MDkgMjEuOTAzMUM4LjY1OTQyIDIyLjY0ODMgNy40OTEzNSAyMy4wOTYgNi4yMTc1OCAyMy4wOTZINC40NDEwOEMxLjkzMDg2IDIzLjA5NiAtMC4wOTM0ODU5IDI1LjE3OSAwLjAwMzMzNDIgMjcuNzEwN0MwLjA5MDM4MzYgMzAuMDEyMSAxLjk2NjM5IDMxLjg4ODMgNC4yNjg3NSAzMS45NzUyQzYuODAwMjggMzIuMDcxMiA4Ljg4MzI1IDMwLjA0NzcgOC44ODMyNSAyNy41Mzc0VjI1Ljc2MDhDOC44ODMyNSAyNC40ODcgOS4zMzA5NSAyMy4zMTkgMTAuMDc2MiAyMi40MDIyQzEwLjE0ODEgMjIuMzEzNCAxMC4yODMyIDIyLjMxMzQgMTAuMzU1MSAyMi40MDIyQzExLjEwMDMgMjMuMzE5IDExLjU0OCAyNC40ODcgMTEuNTQ4IDI1Ljc2MDhWMjcuNDY0NUMxMS41NDggMjkuOTAwMiAxMy40NzgyIDMxLjkzOCAxNS45MTM4IDMxLjk3ODlDMTguNDAxOCAzMi4wMjA2IDIwLjQzMDYgMzAuMDE2NyAyMC40MzA2IDI3LjUzODNWMjUuNzYxN0MyMC40MzA2IDI0LjQ4NzkgMjAuODc4MiAyMy4zMTk4IDIxLjYyMzYgMjIuNDAzMkMyMS42OTU1IDIyLjMxNDQgMjEuODMwNSAyMi4zMTQ0IDIxLjkwMjQgMjIuNDAzMkMyMi42NDc4IDIzLjMxOTggMjMuMDk1NSAyNC40ODc5IDIzLjA5NTUgMjUuNzYxN1YyNy41MzgzQzIzLjA5NTUgMzAuMDQ4NyAyNS4xNzgzIDMyLjA3MyAyNy43MDk4IDMxLjk3NjJDMzAuMDExMyAzMS44ODkxIDMxLjg4NzQgMzAuMDEzIDMxLjk3NDQgMjcuNzEwN0MzMi4wNzA0IDI1LjE3OSAzMC4wNDY4IDIzLjA5NiAyNy41MzY4IDIzLjA5NkgyNS43NjAyQzI0LjQ4NjQgMjMuMDk2IDIzLjMxODMgMjIuNjQ4MyAyMi40MDE3IDIxLjkwMzFDMjIuMzEyOSAyMS44MzEgMjIuMzEyOSAyMS42OTYgMjIuNDAxNyAyMS42MjQxQzIzLjMxODMgMjAuODc4OSAyNC40ODY0IDIwLjQzMTEgMjUuNzYwMiAyMC40MzExSDI3LjUzNjhIMjcuNTM4NFpNMTQuMjE1NSA4Ljg4MzQ3SDE3Ljc2ODVDMTkuMDQyMyA4Ljg4MzQ3IDIwLjIxMDMgOS4zMzExNyAyMS4xMjcgMTAuMDc2NEMyMS4yMTU4IDEwLjE0ODQgMjEuMjE1OCAxMC4yODM0IDIxLjEyNyAxMC4zNTU0QzIwLjIxMDMgMTEuMTAwNiAxOS4wNDIzIDExLjU0ODMgMTcuNzY4NSAxMS41NDgzSDE0LjIxNTVDMTIuOTQxNyAxMS41NDgzIDExLjc3MzYgMTEuMTAwNiAxMC44NTcgMTAuMzU1NEMxMC43NjgxIDEwLjI4MzQgMTAuNzY4MSAxMC4xNDg0IDEwLjg1NyAxMC4wNzY0QzExLjc3MzYgOS4zMzExNyAxMi45NDE3IDguODgzNDcgMTQuMjE1NSA4Ljg4MzQ3Wk04Ljg4NTkxIDE1Ljk4OTdWMTQuMjEzMkM4Ljg4NTkxIDEyLjkzOTQgOS4zMzM2MSAxMS43NzEzIDEwLjA3ODkgMTAuODU0NkMxMC4xNTA4IDEwLjc2NTggMTAuMjg1OCAxMC43NjU4IDEwLjM1NzggMTAuODU0NkMxMS4xMDMgMTEuNzcxMyAxMS41NTA3IDEyLjkzOTQgMTEuNTUwNyAxNC4yMTMyVjE1Ljk4ODlWMTcuNzY1NEMxMS41NTA3IDE5LjAzOTIgMTEuMTAzIDIwLjIwNzIgMTAuMzU3OCAyMS4xMjRDMTAuMjg1OCAyMS4yMTI4IDEwLjE1MDggMjEuMjEyOCAxMC4wNzg5IDIxLjEyNEM5LjMzMzYxIDIwLjIwNzIgOC44ODU5MSAxOS4wMzkyIDguODg1OTEgMTcuNzY1NFYxNS45ODg5VjE1Ljk4OTdaTTE3Ljc2ODUgMjMuMDk2SDE0LjIxNTVDMTIuOTQxNyAyMy4wOTYgMTEuNzczNiAyMi42NDgzIDEwLjg1NyAyMS45MDMxQzEwLjc2ODEgMjEuODMxIDEwLjc2ODEgMjEuNjk2IDEwLjg1NyAyMS42MjQxQzExLjc3MzYgMjAuODc4OSAxMi45NDE3IDIwLjQzMTEgMTQuMjE1NSAyMC40MzExSDE3Ljc2ODVDMTkuMDQyMyAyMC40MzExIDIwLjIxMDMgMjAuODc4OSAyMS4xMjcgMjEuNjI0MUMyMS4yMTU4IDIxLjY5NiAyMS4yMTU4IDIxLjgzMSAyMS4xMjcgMjEuOTAzMUMyMC4yMTAzIDIyLjY0ODMgMTkuMDQyMyAyMy4wOTYgMTcuNzY4NSAyMy4wOTZaTTIzLjA5ODEgMTUuOTg5N1YxNy43NjY0QzIzLjA5ODEgMTkuMDQwMiAyMi42NTAzIDIwLjIwODMgMjEuOTA1MSAyMS4xMjQ5QzIxLjgzMzIgMjEuMjEzNyAyMS42OTgyIDIxLjIxMzcgMjEuNjI2MSAyMS4xMjQ5QzIwLjg4MDkgMjAuMjA4MyAyMC40MzMzIDE5LjA0MDIgMjAuNDMzMyAxNy43NjY0VjE1Ljk4OTdWMTQuMjEzMkMyMC40MzMzIDEyLjkzOTQgMjAuODgwOSAxMS43NzEzIDIxLjYyNjEgMTAuODU0NkMyMS42OTgyIDEwLjc2NTggMjEuODMzMiAxMC43NjU4IDIxLjkwNTEgMTAuODU0NkMyMi42NTAzIDExLjc3MTMgMjMuMDk4MSAxMi45Mzk0IDIzLjA5ODEgMTQuMjEzMlYxNS45ODk3WiJ9KX0pfSxRPW4oMjY1NTUpLFg9KDAsQy5BeSkoInN2ZyIse3RhcmdldDoiZWEwZHpyYTAifSkoIm1hcmdpbjowIGF1dG87d2lkdGg6OXB4O2hlaWdodDoxNXB4Oz5nPmd7ZmlsbDoiLCgwLEMudzQpKCJoZWFkZXJUaXRsZUNvbG9yIiksIjt9Iik7ZnVuY3Rpb24gJCgpe3JldHVybigwLFMuanN4KShYLHtmb2N1c2FibGU6ImZhbHNlIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixjaGlsZHJlbjooMCxTLmpzeCkoImciLHtmaWxsOiJub25lIixjaGlsZHJlbjooMCxTLmpzeCkoImciLHtmaWxsOiJjdXJyZW50Q29sb3IiLGNoaWxkcmVuOigwLFMuanN4KSgicG9seWdvbiIse3RyYW5zZm9ybToidHJhbnNsYXRlKC00MCAtMjkpdHJhbnNsYXRlKDQ3LjA3MTA2OCAzNi4wNzEwNjgpcm90YXRlKC0zMTUpdHJhbnNsYXRlKC00Ny4wNzEwNjggLTM2LjA3MTA2OCkiLHBvaW50czoiNDQuMyAzOC44IDQ0LjMgMzEuMSA0Mi4xIDMxLjEgNDIuMSA0MCA0Mi4xIDQxLjEgNTIuMSA0MS4xIDUyLjEgMzguOCJ9KX0pfSl9KX12YXIgdHQ9KDAsQy5BeSkoInN2ZyIse3RhcmdldDoiZTFodWowOHUwIn0pKCJ3aWR0aDoxMnB4O2hlaWdodDoxMnB4O2ZpbGw6IiwoMCxDLnc0KSgidGV4dEVycm9yIiksIjsiKTtmdW5jdGlvbiBldCgpe3JldHVybigwLFMuanN4KSh0dCx7Zm9jdXNhYmxlOiJmYWxzZSIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsdmlld0JveDoiMCAwIDE0IDE0IixjaGlsZHJlbjooMCxTLmpzeCkoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGZpbGw6ImN1cnJlbnRDb2xvciIsZDoiTTMuNCA0YzAtLjY2NS0uNTM1LTEuMi0xLjItMS4yQzEuNTM1IDIuOCAxIDMuMzM1IDEgNGMwIC42NjUuNTM1IDEuMiAxLjIgMS4yLjY2NSAwIDEuMi0uNTM1IDEuMi0xLjJ6bTAgNGMwLS42NjUtLjUzNS0xLjItMS4yLTEuMkMxLjUzNSA2LjggMSA3LjMzNSAxIDhjMCAuNjY1LjUzNSAxLjIgMS4yIDEuMi42NjUgMCAxLjItLjUzNSAxLjItMS4yem0tMS4yIDIuOGMuNjY1IDAgMS4yLjUzNSAxLjIgMS4yIDAgLjY2NS0uNTM1IDEuMi0xLjIgMS4yLS42NjUgMC0xLjItLjUzNS0xLjItMS4yIDAtLjY2NS41MzUtMS4yIDEuMi0xLjJ6TTUgMy42YS40LjQgMCAwMS40LS40aDkuMmEuNC40IDAgMDEuNC40di44YS40LjQgMCAwMS0uNC40SDUuNGEuNC40IDAgMDEtLjQtLjR2LS44em0wIDRhLjQuNCAwIDAxLjQtLjRoOS4yYS40LjQgMCAwMS40LjR2LjhhLjQuNCAwIDAxLS40LjRINS40YS40LjQgMCAwMS0uNC0uNHYtLjh6bTAgNGMwLS4yMi4xOC0uNC40LS40aDcuMmMuMjIgMCAuNC4xOC40LjR2LjhhLjQuNCAwIDAxLS40LjRINS40YS40LjQgMCAwMS0uNC0uNHYtLjh6In0pfSl9dmFyIG50LHJ0PWZ1bmN0aW9uKCl7cmV0dXJuKDAsUy5qc3gpKFcse2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLHZpZXdCb3g6IjAgMCAxOCAxOCIsY2hpbGRyZW46KDAsUy5qc3gpKCJnIix7c3Ryb2tlV2lkdGg6IjEiLGZpbGxSdWxlOiJldmVub2RkIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIixmaWxsOiJub25lIixjaGlsZHJlbjooMCxTLmpzeHMpKCJnIix7c3Ryb2tlOiJjdXJyZW50Q29sb3IiLGNoaWxkcmVuOlsoMCxTLmpzeCkoInBhdGgiLHtkOiJNMTYuNyA5QzE2LjcgMTMuMiAxMy4yIDE2LjcgOSAxNi43IDQuOCAxNi43IDEuMyAxMy4yIDEuMyA5IDEuMyA0LjggNC44IDEuMyA5IDEuMyAxMy4yIDEuMyAxNi43IDQuOCAxNi43IDlMMTYuNyA5WiJ9KSwoMCxTLmpzeCkoInBhdGgiLHtkOiJNMTQuNyAzLjhDMTQuNyAzLjggMTQuMyA1LjcgMTMgNi4zIDExLjcgNiAxMC4zIDcgMTAuNyA3IDExIDcgMTEuMyA4LjMgMTEuMyA4LjMgMTEuNyA4LjcgMTIuMyA4LjMgMTIuMyA4LjMgMTMuMiA5LjIgMTEgMTAuNyAxMSAxMSAxMSAxMS4zIDExLjggMTEuNSAxMS4zIDEyIDEwLjggMTIuNSAxMC4zIDEyLjcgMTAuMyAxMi43IDEwLjMgMTQuMyA4LjcgMTQuMyA4LjMgMTQuMyA4IDE0LjMgNy4zIDEzIDcuMyAxMi43IDcuMyAxMi4zIDcuNyAxMiA3LjcgMTEuNyA3LjcgMTEuMyA3IDEwLjcgNyAxMC43IDcgOS4zIDYgOS43IDUgOS43IDQgOS43IDQgOC4zIDQgOC4zIDQgOC4zIDQgNiA1LjcgNS43IDcuMyA1LjMgNy4zIDYgNy4zIDYgOCA2LjcgOS4zIDYgMTAgNiAxMCA2IDEwLjMgMy43IDkuNyA0IDkgNC4zIDguNCA0LjEgOC4zIDMuMyA4LjIgMi4zIDExLjIgMS43IDExLjIgMS43In0pXX0pfSl9KX07ZnVuY3Rpb24gb3QoKXtyZXR1cm4gb3Q9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxvdC5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIGl0LGF0PWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsb3Qoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDMyIDMyIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksbnR8fChudD1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMzAuMyAxNmMwIDcuODk4LTYuNDAyIDE0LjMtMTQuMyAxNC4zUzEuNyAyMy44OTggMS43IDE2IDguMTAyIDEuNyAxNiAxLjcgMzAuMyA4LjEwMiAzMC4zIDE2bTEuNyAwYzAgOC44MzctNy4xNjMgMTYtMTYgMTZTMCAyNC44MzcgMCAxNiA3LjE2MyAwIDE2IDBzMTYgNy4xNjMgMTYgMTZtLTguNTg3LTEuNDEyQTEuOTMgMS45MyAwIDAgMCAyMiAxNHEtLjgyNCAwLTEuNDEzLjU4OEExLjkzIDEuOTMgMCAwIDAgMjAgMTZxMCAuODI0LjU4NyAxLjQxM1EyMS4xNzYgMTggMjIgMTh0MS40MTMtLjU4N1EyNCAxNi44MjUgMjQgMTZ0LS41ODctMS40MTJtLTYgMEExLjkzIDEuOTMgMCAwIDAgMTYgMTRxLS44MjUgMC0xLjQxMi41ODhBMS45MyAxLjkzIDAgMCAwIDE0IDE2cTAgLjgyNC41ODggMS40MTNRMTUuMTc1IDE4IDE2IDE4cS44MjQgMCAxLjQxMy0uNTg3UTE4IDE2LjgyNSAxOCAxNnQtLjU4Ny0xLjQxMm0tNiAwQTEuOTMgMS45MyAwIDAgMCAxMCAxNHEtLjgyNSAwLTEuNDEyLjU4OEExLjkzIDEuOTMgMCAwIDAgOCAxNnEwIC44MjQuNTg4IDEuNDEzUTkuMTc1IDE4IDEwIDE4dDEuNDEyLS41ODdUMTIgMTZ0LS41ODgtMS40MTIiLGNsaXBSdWxlOiJldmVub2RkIn0pKSl9LHV0PWZ1bmN0aW9uKHQpe3ZhciBlPXQuY29sb3Isbj0oMCxKLkEpKCkscj1TdHJpbmcobltlXSk7cmV0dXJuKDAsUy5qc3gpKCJzdmciLHt3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHZpZXdCb3g6Ii0yIC0xIDE2IDE2IixmaWxsOiJub25lIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGNoaWxkcmVuOigwLFMuanN4KSgicGF0aCIse2Q6Ik02IDlDNy42NiA5IDkgNy42NiA5IDZWM0M5IDEuMzQgNy42NiAwIDYgMEM0LjM0IDAgMyAxLjM0IDMgM1Y2QzMgNy42NiA0LjM0IDkgNiA5Wk0xMC41IDVWNkMxMC41IDguNDggOC40OCAxMC41IDYgMTAuNUMzLjUyIDEwLjUgMS41IDguNDggMS41IDZWNUgwVjZDMCA5LjA2IDIuMjkgMTEuNTggNS4yNSAxMS45NVYxNEg2Ljc1VjExLjk1QzkuNzEgMTEuNTggMTIgOS4wNiAxMiA2VjVIMTAuNVoiLGZpbGw6cn0pfSl9O2Z1bmN0aW9uIHN0KCl7cmV0dXJuIHN0PU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sc3QuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBjdCxsdD1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLHN0KHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxpdHx8KGl0PW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZDoiTTQuNSA4YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwbTUgMGExLjUgMS41IDAgMSAxLTMgMCAxLjUgMS41IDAgMCAxIDMgMG01IDBhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDAifSkpKX07ZnVuY3Rpb24gZnQoKXtyZXR1cm4oMCxTLmpzeCkoInN2ZyIse2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixjaGlsZHJlbjooMCxTLmpzeCkoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGQ6Ik04IDIuNUM4LjQ2MTA2IDIuNSA4LjgzNDgyIDIuODczNzYgOC44MzQ4MiAzLjMzNDgyVjcuMTY1MThMMTIuNjY1MiA3LjE2NTE4QzEzLjEyNjIgNy4xNjUxOCAxMy41IDcuNTM4OTQgMTMuNSA4QzEzLjUgOC40NjEwNiAxMy4xMjYyIDguODM0ODIgMTIuNjY1MiA4LjgzNDgyTDguODM0ODIgOC44MzQ4MlYxMi42NjUyQzguODM0ODIgMTMuMTI2MiA4LjQ2MTA2IDEzLjUgOCAxMy41QzcuNTM4OTQgMTMuNSA3LjE2NTE4IDEzLjEyNjIgNy4xNjUxOCAxMi42NjUyVjguODM0ODJIMy4zMzQ4MkMyLjg3Mzc2IDguODM0ODIgMi41IDguNDYxMDYgMi41IDhDMi41IDcuNTM4OTQgMi44NzM3NiA3LjE2NTE4IDMuMzM0ODIgNy4xNjUxOEg3LjE2NTE4VjMuMzM0ODJDNy4xNjUxOCAyLjg3Mzc2IDcuNTM4OTQgMi41IDggMi41WiIsZmlsbDoiY3VycmVudENvbG9yIn0pfSl9ZnVuY3Rpb24gZHQoKXtyZXR1cm4gZHQ9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxkdC5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIHB0PWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsZHQoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTcsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNyAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLGN0fHwoY3Q9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoibTQuNTYzIDE0LjYwNSA5LjM1Ni01LjQwMmMxLS41NzcgMS0yLjAyIDAtMi41OThMNC41NjMgMS4yMDNhMS41IDEuNSAwIDAgMC0yLjI1IDEuM3YxMC44MDNhMS41IDEuNSAwIDAgMCAyLjI1IDEuM002LjUxIDguMzg3IDIuMzEzIDkuNTEyVjYuMjk3TDYuNTEgNy40MmMuNDk0LjEzMy40OTQuODM0IDAgLjk2NiIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpKX0saHQ9big3OTk4OCksdnQ9KDAsQy5BeSkoInN2ZyIse3RhcmdldDoiZTFldTUzOG0wIn0pKCIucHJpbWFyeXtmaWxsOmN1cnJlbnRDb2xvcjt9LnNlY29uZGFyeXtmaWxsOiIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRoZW1lLmljb25PbkludmVyc2V9KSwiO30iKSx5dD1mdW5jdGlvbigpe3JldHVybigwLFMuanN4cykodnQse3dpZHRoOiIzMyIsaGVpZ2h0OiIzMiIsdmlld0JveDoiMCAwIDMzIDMyIixmaWxsOiJub25lIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGNoaWxkcmVuOlsoMCxTLmpzeCkoInBhdGgiLHtjbGFzc05hbWU6InByaW1hcnkiLGZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoiTTI3LjMzMzQgMi42NjY3NUMyOC43MTQxIDIuNjY2NzUgMjkuODMzNCAzLjc4NjA0IDI5LjgzMzQgNS4xNjY3NVYyMi41MDAxQzI5LjgzMzQgMjIuNTAzOCAyOS44MzM0IDIyLjUwNzUgMjkuODMzMyAyMi41MTEyVjI4Ljk0NTJDMjkuODMzMyAzMC4yODAyIDI4LjIyMDMgMzAuOTUwMSAyNy4yNzQ2IDMwLjAwNzhMMjEuMjQ0OSAyNC4wMDAxSDUuNjY2NzFDNC4yODYgMjQuMDAwMSAzLjE2NjcxIDIyLjg4MDggMy4xNjY3MSAyMS41MDAxVjUuMTY2NzVDMy4xNjY3MSAzLjc4NjA0IDQuMjg2IDIuNjY2NzUgNS42NjY3MSAyLjY2Njc1SDI3LjMzMzRaIn0pLCgwLFMuanN4KSgicGF0aCIse2NsYXNzTmFtZToic2Vjb25kYXJ5IixmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0yMyA5LjY2Njc1QzIzLjU1MjMgOS42NjY3NSAyNCAxMC4xMTQ1IDI0IDEwLjY2NjdDMjQgMTEuMjE5IDIzLjU1MjMgMTEuNjY2NyAyMyAxMS42NjY3SDkuNjY2NjdDOS4xMTQzOCAxMS42NjY3IDguNjY2NjcgMTEuMjE5IDguNjY2NjcgMTAuNjY2N0M4LjY2NjY3IDEwLjExNDUgOS4xMTQzOCA5LjY2Njc1IDkuNjY2NjcgOS42NjY3NUgyM1pNMTcgMTYuMzMzNEMxNy41NTIzIDE2LjMzMzQgMTggMTYuNzgxMSAxOCAxNy4zMzM0QzE4IDE3Ljg4NTcgMTcuNTUyMyAxOC4zMzM0IDE3IDE4LjMzMzRIMTAuMzMzM0M5Ljc4MTA1IDE4LjMzMzQgOS4zMzMzMyAxNy44ODU3IDkuMzMzMzMgMTcuMzMzNEM5LjMzMzMzIDE2Ljc4MTEgOS43ODEwNSAxNi4zMzM0IDEwLjMzMzMgMTYuMzMzNEgxN1oifSldfSl9LGd0PW4oNjY3NDgpO2Z1bmN0aW9uIG10KCl7cmV0dXJuKDAsUy5qc3gpKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhtbG5zWGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHdpZHRoOiIxNnB4IixoZWlnaHQ6IjE2cHgiLHZpZXdCb3g6IjAgMCAxNiAxNiIsdmVyc2lvbjoiMS4xIixjaGlsZHJlbjooMCxTLmpzeCkoImciLHtpZDoic3VyZmFjZTEiLGNoaWxkcmVuOigwLFMuanN4KSgicGF0aCIse3N0eWxlOntzdHJva2U6Im5vbmUiLGZpbGxSdWxlOiJub256ZXJvIixmaWxsOiJjdXJyZW50Q29sb3IiLGZpbGxPcGFjaXR5OjF9LGQ6Ik0gMCAxNC40Mzc1IEwgOCAxNC40Mzc1IEwgOCAxMi40Mzc1IEwgMCAxMi40Mzc1IFogTSAwIDExLjEwMTU2MiBMIDE2IDExLjEwMTU2MiBMIDE2IDkuMTAxNTYyIEwgMCA5LjEwMTU2MiBaIE0gMCA3Ljc3MzQzOCBMIDE2IDcuNzczNDM4IEwgMTYgNS43NzM0MzggTCAwIDUuNzczNDM4IFogTSAwIDIuNDM3NSBMIDAgNC40Mzc1IEwgMTYgNC40Mzc1IEwgMTYgMi40Mzc1IFogTSAwIDIuNDM3NSAifSl9KX0pfXZhciBidD1uKDUwMjgyKSx3dD1uKDIyNTMyKSxfdD1uKDU0NzI2KSxTdD1uKDEzNjA2KSx4dD1mdW5jdGlvbigpe3JldHVybigwLFMuanN4cykoInN2ZyIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxNiIsdmlld0JveDoiMCAwIDE2IDE2IixmaWxsOiJub25lIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGNoaWxkcmVuOlsoMCxTLmpzeCkoImNpcmNsZSIse2N4OiI3LjUiLGN5OiI3LjUiLHI6IjQuNjI1IixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjEuNzUifSksKDAsUy5qc3gpKCJwYXRoIix7ZDoiTTEzLjM4MTMgMTQuNjE4N0MxMy43MjMgMTQuOTYwNCAxNC4yNzcgMTQuOTYwNCAxNC42MTg3IDE0LjYxODdDMTQuOTYwNCAxNC4yNzcgMTQuOTYwNCAxMy43MjMgMTQuNjE4NyAxMy4zODEzTDEzLjM4MTMgMTQuNjE4N1pNMTAuMzgxMyAxMS42MTg3TDEzLjM4MTMgMTQuNjE4N0wxNC42MTg3IDEzLjM4MTNMMTEuNjE4NyAxMC4zODEzTDEwLjM4MTMgMTEuNjE4N1oiLGZpbGw6ImN1cnJlbnRDb2xvciJ9KV19KX0sRXQ9big1Njg2NiksQ3Q9ZnVuY3Rpb24oKXtyZXR1cm4oMCxTLmpzeCkoInN2ZyIse2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsY2hpbGRyZW46KDAsUy5qc3gpKCJwYXRoIix7ZDoiTTEuMzg4IDE1Ljc3Yy0uOTc3LjUxOC0xLjU3Mi4wNjEtMS4zMjktMS4wMTlsMS4wMzMtNC41ODVjLjEyMy0uNTQzLjY1OS0xLjAzNCAxLjIxNi0xLjFsNi4xOTUtLjcyYzEuNjQ4LS4xOSAxLjY1NC0uNDk4IDAtLjY4N2wtNi4xOTUtLjcwOGMtLjU1LS4wNjMtMS4wOS0uNTQtMS4yMTItMS4wODVMLjA1NiAxLjIzNEMtLjE4Ny4xNjEuNDA4LS4yODkgMS4zODcuMjMxbDEyLjg1IDYuODI5Yy45NzguNTE5Ljk4IDEuMzYgMCAxLjg4bC0xMi44NSA2LjgzeiIsZmlsbFJ1bGU6ImV2ZW5vZGQifSl9KX0sT3Q9KDAsQy5BeSkoInN2ZyIse3RhcmdldDoiZXhiNTZwaTAifSkoIndpZHRoOjEycHg7aGVpZ2h0OjEycHg7ZmlsbDoiLCgwLEMudzQpKCJ0ZXh0RXJyb3IiKSwiOyIpO2Z1bmN0aW9uIEF0KCl7cmV0dXJuKDAsUy5qc3hzKShPdCx7Zm9jdXNhYmxlOiJmYWxzZSIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsdmlld0JveDoiMCAwIDE1IDE1IixjaGlsZHJlbjpbKDAsUy5qc3gpKCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGNsaXBSdWxlOiJldmVub2RkIixmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik04IDVhMy41IDMuNSAwIDAxMi44MzIgNS41NTdMOCA4LjVWNXptNi4wNS0xLjgxOGwuNDY4LjU4NmMuMTEzLjA4My4wOC4yNjYtLjA2NC4zNjdMMTIuNjcgNS40M2MtLjA4My4xMTEtLjI2Ny4wNzktLjM2OS0uMDY1bC0uNDY4LS41ODZjLS4xMTItLjA4My0uMDgtLjI2Ni4wNjUtLjM2N2wxLjg0NS0xLjI4NGMuMDcyLS4wNS4yNTctLjAxOC4zMDcuMDU0eiJ9KSwoMCxTLmpzeCkoInJlY3QiLHt4OiI1LjUiLHdpZHRoOiI1IixoZWlnaHQ6IjEuNSIscng6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifSksKDAsUy5qc3gpKCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGNsaXBSdWxlOiJldmVub2RkIixmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik04IDEzLjVhNSA1IDAgMTAwLTEwIDUgNSAwIDAwMCAxMHpNOCAxNUE2LjUgNi41IDAgMTA4IDJhNi41IDYuNSAwIDAwMCAxM3oifSksKDAsUy5qc3gpKCJwYXRoIix7ZmlsbFJ1bGU6ImV2ZW5vZGQiLGNsaXBSdWxlOiJldmVub2RkIixmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik04LjUgMXYyaC0xVjFoMXoifSldfSl9dmFyIEl0LGt0PWZ1bmN0aW9uKHQpe3ZhciBlPXQuY29sb3Isbj0oMCxKLkEpKCkscj1TdHJpbmcobltlXSk7cmV0dXJuKDAsUy5qc3gpKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOiIxNiIsaGVpZ2h0OiIxNiIsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOnIsc3Ryb2tlOiJub25lIixjaGlsZHJlbjooMCxTLmpzeCkoInBhdGgiLHtkOiJNMTcgNGgtMTBhMyAzIDAgMCAwIC0zIDN2MTBhMyAzIDAgMCAwIDMgM2gxMGEzIDMgMCAwIDAgMyAtM3YtMTBhMyAzIDAgMCAwIC0zIC0zeiJ9KX0pfSxMdD1uKDgxNzI5KSxUdD1uKDQ1MCksanQ9bigzMzkxNiksUHQ9big4NjMzNCksTnQ9big3MzM1KTtmdW5jdGlvbiBNdCgpe3JldHVybiBNdD1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LE10LmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgUnQsVXQsenQsSHQ9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixNdCh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNCxoZWlnaHQ6MTAsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE0IDEwIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksSXR8fChJdD1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik0wIDguOTZjMC0uMzM2IDAtLjUwNC4wNjUtLjYzMmEuNi42IDAgMCAxIC4yNjMtLjI2M0MuNDU2IDggLjYyNCA4IC45NiA4aDkuMDhjLjMzNiAwIC41MDQgMCAuNjMyLjA2NWEuNi42IDAgMCAxIC4yNjMuMjYzYy4wNjUuMTI4LjA2NS4yOTYuMDY1LjYzMnYuMDhjMCAuMzM2IDAgLjUwNC0uMDY1LjYzMmEuNi42IDAgMCAxLS4yNjMuMjYzYy0uMTI4LjA2NS0uMjk2LjA2NS0uNjMyLjA2NUguOTZjLS4zMzYgMC0uNTA0IDAtLjYzMi0uMDY1YS42LjYgMCAwIDEtLjI2My0uMjYzQzAgOS41NDQgMCA5LjM3NiAwIDkuMDR6bTAtNGMwLS4zMzYgMC0uNTA0LjA2NS0uNjMyYS42LjYgMCAwIDEgLjI2My0uMjYzQy40NTYgNCAuNjI0IDQgLjk2IDRoNS4wOGMuMzM2IDAgLjUwNCAwIC42MzIuMDY1YS42LjYgMCAwIDEgLjI2My4yNjNDNyA0LjQ1NiA3IDQuNjI0IDcgNC45NnYuMDhjMCAuMzM2IDAgLjUwNC0uMDY1LjYzMmEuNi42IDAgMCAxLS4yNjMuMjYzQzYuNTQ0IDYgNi4zNzYgNiA2LjA0IDZILjk2Yy0uMzM2IDAtLjUwNCAwLS42MzItLjA2NWEuNi42IDAgMCAxLS4yNjMtLjI2M0MwIDUuNTQ0IDAgNS4zNzYgMCA1LjA0ek0uMDY1LjMyOEMwIC40NTYgMCAuNjI0IDAgLjk2di4wOGMwIC4zMzYgMCAuNTA0LjA2NS42MzJhLjYuNiAwIDAgMCAuMjYzLjI2M0MuNDU2IDIgLjYyNCAyIC45NiAyaDEyLjA4Yy4zMzYgMCAuNTA0IDAgLjYzMi0uMDY1YS42LjYgMCAwIDAgLjI2My0uMjYzQzE0IDEuNTQ0IDE0IDEuMzc2IDE0IDEuMDRWLjk2YzAtLjMzNiAwLS41MDQtLjA2NS0uNjMyYS42LjYgMCAwIDAtLjI2My0uMjYzQzEzLjU0NCAwIDEzLjM3NiAwIDEzLjA0IDBILjk2Qy42MjQgMCAuNDU2IDAgLjMyOC4wNjVhLjYuNiAwIDAgMC0uMjYzLjI2MyJ9KSkpfSxGdD1uKDczODAwKSxEdD1mdW5jdGlvbih0KXt2YXIgZT10LmNvbG9yLG49KDAsSi5BKSgpLHI9ZT9TdHJpbmcobltlXSk6ImN1cnJlbnRDb2xvciI7cmV0dXJuKDAsUy5qc3gpKCJzdmciLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHZpZXdCb3g6IjAgMCAxOCAxOCIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixjaGlsZHJlbjooMCxTLmpzeCkoInBhdGgiLHtkOiJNMi4yNSA3LjVMMi4yNSAxMC41TTUuNjI1IDguMjVWOS43NU05IDQuNVYxMy41TTEyLjM3NSAyLjI1VjE1Ljc1TTE1Ljc1IDcuNVYxMC41IixzdHJva2U6cixzdHJva2VXaWR0aDoiMS42IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pfSl9O2Z1bmN0aW9uIEJ0KCl7cmV0dXJuIEJ0PU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sQnQuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBWdCxHdD1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLEJ0KHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxSdHx8KFJ0PW8uY3JlYXRlRWxlbWVudCgicGF0aCIse3N0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VXaWR0aDoxLjcsZDoiTTguMzEyIDEyVjcifSkpLFV0fHwoVXQ9by5jcmVhdGVFbGVtZW50KCJjaXJjbGUiLHtyOjEuMSxmaWxsOiJjdXJyZW50Q29sb3IiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIC0xIDguMzEyIDUuMSkifSkpLHp0fHwoenQ9by5jcmVhdGVFbGVtZW50KCJjaXJjbGUiLHtjeDo4LjMxMyxjeTo4LHI6Ni41LHN0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VXaWR0aDoxLjc1fSkpKX07ZnVuY3Rpb24gcXQoKXtyZXR1cm4gcXQ9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxxdC5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFd0LEt0PWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIscXQoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6OCxoZWlnaHQ6MTIsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDggMTIiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxWdHx8KFZ0PW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZDoiTTYuNzEuNzFhLjk5Ni45OTYgMCAwIDAtMS40MSAwTC43MSA1LjNhLjk5Ni45OTYgMCAwIDAgMCAxLjQxTDUuMyAxMS4zYS45OTYuOTk2IDAgMSAwIDEuNDEtMS40MUwyLjgzIDZsMy44OC0zLjg4Yy4zOS0uMzkuMzgtMS4wMyAwLTEuNDEifSkpKX07ZnVuY3Rpb24gWnQoKXtyZXR1cm4gWnQ9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxadC5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIEp0LFl0LFF0PWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsWnQoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLFd0fHwoV3Q9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsT3BhY2l0eTouOSxkOiJNNy45OTMuNUMzLjg1My41LjUgMy44Ni41IDhzMy4zNTMgNy41IDcuNDkzIDcuNWM0LjE0NyAwIDcuNTA3LTMuMzYgNy41MDctNy41UzEyLjE0LjUgNy45OTMuNU04IDE0Yy0zLjMxNSAwLTYtMi42ODUtNi02czIuNjg1LTYgNi02IDYgMi42ODUgNiA2LTIuNjg1IDYtNiA2bS0uMTY1LTkuNzVINy43OWMtLjMgMC0uNTQuMjQtLjU0LjU0djMuNTRjMCAuMjYyLjEzNS41MS4zNjcuNjQ1bDMuMTEzIDEuODY3Yy4yNTUuMTUuNTg1LjA3NS43MzUtLjE4YS41MzMuNTMzIDAgMCAwLS4xODctLjc0Mkw4LjM3NSA4LjE5NVY0Ljc5YzAtLjMtLjI0LS41NC0uNTQtLjU0In0pKSl9LFh0PWZ1bmN0aW9uKCl7dmFyIHQ9KDAsSi5BKSgpO3JldHVybigwLFMuanN4KSgic3ZnIix7d2lkdGg6OCxoZWlnaHQ6OCxjaGlsZHJlbjooMCxTLmpzeCkoImNpcmNsZSIse2ZpbGw6dC5ub3RpZmljYXRpb25GaWxsLGN4OiI4IixyOiI0IixjeToiOCIsc3Ryb2tlV2lkdGg6IjAifSl9KX07ZnVuY3Rpb24gJHQoKXtyZXR1cm4gJHQ9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSwkdC5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIHRlLGVlPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsJHQoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTgsaGVpZ2h0OjE4LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxOCAxOCIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLEp0fHwoSnQ9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJNMTQuMjUgMy43NXYxMC41SDMuNzVWMy43NXptMC0xLjVIMy43NWMtLjgyNSAwLTEuNS42NzUtMS41IDEuNXYxMC41YzAgLjgyNS42NzUgMS41IDEuNSAxLjVoMTAuNWMuODI1IDAgMS41LS42NzUgMS41LTEuNVYzLjc1YzAtLjgyNS0uNjc1LTEuNS0xLjUtMS41In0pKSxZdHx8KFl0PW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZDoiTTEwLjUgMTIuNzVINS4yNXYtMS41aDUuMjV6bTIuMjUtM2gtNy41di0xLjVoNy41em0wLTNoLTcuNXYtMS41aDcuNXoifSkpKX07ZnVuY3Rpb24gbmUoKXtyZXR1cm4gbmU9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxuZS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIHJlLG9lPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsbmUoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTcsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNyAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLHRlfHwodGU9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJNNy41NjMgMy41N2MwLS41NzUtLjMyNC0xLjExNC0uODcyLTEuMjg1QTYuMyA2LjMgMCAwIDAgNC44MTMgMmE2LjMgNi4zIDAgMCAwLTMuMDQ1Ljc4My45Mi45MiAwIDAgMC0uNDU1LjgxMnY5LjE1NWMwIC41Ni42MzcuOTA4IDEuMTU3LjdBNi4zIDYuMyAwIDAgMSA0LjgxMyAxM2MxLjA1NSAwIDIuMDUuMjYgMi45MjUuNzE5YTEuMjQgMS4yNCAwIDAgMCAxLjE1IDBBNi4zIDYuMyAwIDAgMSAxMS44MTIgMTNjLjgyNyAwIDEuNjE4LjE2IDIuMzQyLjQ1LjUyLjIwOCAxLjE1OC0uMTQgMS4xNTgtLjdWMy41OTVhLjkyLjkyIDAgMCAwLS40NTYtLjgxMkE2LjMgNi4zIDAgMCAwIDExLjgxMyAyYy0uNjU1IDAtMS4yODUuMS0xLjg3OS4yODUtLjU0OC4xNy0uODcxLjcxLS44NzEgMS4yODRWMTFhLjc1Ljc1IDAgMCAxLTEuNSAweiJ9KSkpfTtmdW5jdGlvbiBpZSgpe3JldHVybiBpZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGllLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgYWUsdWUsc2UsY2U9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixpZSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMzIgMzIiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxyZXx8KHJlPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0xNS45OSAyNi41NjZhMi4wNiAyLjA2IDAgMCAxLTEuMDkyLS4yOSAxNyAxNyAwIDAgMC0uNTY1LS4yOThjLTMuNjI5LTEuODI1LTguMDUzLTIuMzc2LTExLjg5MS0uOTItMS4yMi40NzEtMi40NDItLjUyLTIuNDQyLTEuNzc5VjcuOTgzYzAtLjguNDc2LTEuNTQ4IDEuMjMtMS44MzYgNC44MDctMi4wMDUgMTAuNDUtMS4zMTIgMTQuNzYgMS41MzYgNC4zMS0yLjg0NyA5Ljk3My0zLjU0MSAxNC43OC0xLjUzNi43NTQuMjg4IDEuMjMgMS4wMzUgMS4yMyAxLjgzNlYyMy4yOGMwIDEuMjU5LTEuMjIxIDIuMjUtMi40NDIgMS43NzktMy44MzgtMS40NTYtOC4yNjItLjkwNS0xMS44OTEuOTJxLS4yODYuMTQzLS41NjUuMjk4YTIuMTQgMi4xNCAwIDAgMS0xLjExMy4yOW0tLjgyNy0yLjAwNFY5LjExOUMxMC4zNiA2LjE0NyA1Ljg2NSA2LjAxIDEuODY4IDcuNjc2bC0uMDIzLjAwOS0uMDIzLjAwOWEuMjMuMjMgMCAwIDAtLjEwOC4wOTIuMzYuMzYgMCAwIDAtLjA1OC4xOTdWMjMuMjhjMCAuMDg4LjA0NS4xNy4xMDYuMjE3YS4xLjEgMCAwIDAgLjA0OC4wMjRoLjAwNnEuMDAyLjAwMi4wMjktLjAwOGwuMDEtLjAwM2M0LjA4Mi0xLjU0OCA5Ljk2Ni0uOTczIDEzLjMwOCAxLjA1M20xLjY1NSAwVjkuMTE5QzE5LjYxNiA3LjMzNiAyNCA1LjM4NyAzMC4xMzIgNy42NzZsLjAyMy4wMDkuMDIzLjAwOWMuMDM1LjAxMy4wNzQuMDQuMTA4LjA5MmEuMzYuMzYgMCAwIDEgLjA1OC4xOTdWMjMuMjhhLjI4LjI4IDAgMCAxLS4xMDYuMjE3LjEuMSAwIDAgMS0uMDQ4LjAyNGgtLjAwOGwtLjAyNy0uMDA4LS4wMS0uMDAzYy00LjA4Mi0xLjU0OC0xMC4wNDItLjk3My0xMy4zMjcgMS4wNTNtMTAuNTUtMTMuODQzYy0yLjY1Mi0uNTUtNS42MDQtLjE3My04LjA1Ni43OTZhLjgyOC44MjggMCAxIDAgLjYwOCAxLjU0YzIuMTk3LS44NjcgNC44Mi0xLjE5IDcuMTEyLS43MTRhLjgyOC44MjggMCAwIDAgLjMzNi0xLjYyMm0tOC4wNTYgNC42OTNjMi40NTItLjk2OCA1LjQwNC0xLjM0NiA4LjA1Ni0uNzk2YS44MjguODI4IDAgMSAxLS4zMzYgMS42MjJjLTIuMjkyLS40NzUtNC45MTQtLjE1My03LjExMi43MTVhLjgyOC44MjggMCAxIDEtLjYwOC0xLjU0MW04LjA1NiAzLjEwMWMtMi42NTItLjU1LTUuNjA0LS4xNzItOC4wNTYuNzk2YS44MjguODI4IDAgMSAwIC42MDggMS41NDFjMi4xOTctLjg2NyA0LjgyLTEuMTkgNy4xMTItLjcxNWEuODI4LjgyOCAwIDAgMCAuMzM2LTEuNjIyIixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpfTtmdW5jdGlvbiBsZSgpe3JldHVybiBsZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGxlLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgZmUsZGUscGU9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixsZSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDo3NSxoZWlnaHQ6NzUsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDc1IDc1IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksYWV8fChhZT1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik0xNi44NzYgMjAuNjI1SDQ1djMuNzVIMTYuODc2em0wIDkuMzc1SDQ1djMuNzVIMTYuODc2em0wIDkuMzc0aDE1djMuNzVoLTE1em0yOS45OTkgMTYuODc1YzEuMDM1IDAgMS44NzUtMS4yNiAxLjg3NS0yLjgxM3MtLjg0LTIuODEyLTEuODc1LTIuODEyUzQ1IDUxLjg4MyA0NSA1My40MzZzLjg0IDIuODEzIDEuODc1IDIuODEzbTExLjI1IDBjMS4wMzUgMCAxLjg3NC0xLjI2IDEuODc0LTIuODEzcy0uODM5LTIuODEyLTEuODc0LTIuODEyLTEuODc1IDEuMjU5LTEuODc1IDIuODEyLjg0IDIuODEzIDEuODc1IDIuODEzIn0pKSx1ZXx8KHVlPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik02OC45OCA1NC43M2ExNi41IDE2LjUgMCAwIDAtLjk5My0zLjE2OSAxNyAxNyAwIDAgMC0xLjU1Ni0yLjgxMiAxNi45IDE2LjkgMCAwIDAtNC41NTYtNC42MTMgMTcgMTcgMCAwIDAtMi44Ny0xLjU1NiAxNyAxNyAwIDAgMC0zLjE2OC0uOTkzIDIwIDIwIDAgMCAwLTEuNDYyLS4yMjVWMTEuMjVhMS44OCAxLjg4IDAgMCAwLS41NDQtMS4zMzFMNDQuNDU2LjU0NEExLjg4IDEuODggMCAwIDAgNDMuMTI1IDBIOS4zNzVDOC4zNCAwIDcuNTAyLjg0IDcuNTAyIDEuODc1djU5Ljk5OWMwIDEuMDM1Ljg0IDEuODc1IDEuODc1IDEuODc1aDI3LjE2OHEuMDUuMTQyLjA5OC4yODZjLjA3NC4yMjIuMTQ3LjQ0MS4yNC42NTFhMTYuOSAxNi45IDAgMCAwIDMuNjE4IDUuMzYybDIuNjI1LTIuNTVhMTMuMSAxMy4xIDAgMCAxLTIuODEyLTQuMTYyIDEzLjEzIDEzLjEzIDAgMCAxIDEuMi0xMi40NSAxMy4xIDEzLjEgMCAwIDEgNS43NzQtNC43NjIgMTMgMTMgMCAwIDEgMi40NTYtLjc2OSAxMy40IDEzLjQgMCAwIDEgNS4yODggMCAxMy4xMyAxMy4xMyAwIDAgMSA5LjM3NSA3Ljc0NGMuMzM3Ljc5LjU5NSAxLjYxNC43NjggMi40NTZhMTMuMyAxMy4zIDAgMCAxIDAgNS4yODcgMTMuMSAxMy4xIDAgMCAxLTMuNTgxIDYuNjE5IDEzLjQgMTMuNCAwIDAgMS0xLjg3NSAxLjYxMiAxMy4xIDEzLjEgMCAwIDEtNC42ODcgMS45NyAxMy40IDEzLjQgMCAwIDEtNS4yODggMCAxMyAxMyAwIDAgMS0yLjQ1Ni0uNzdsLTEuNDYyIDMuNDVhMTYuOSAxNi45IDAgMCAwIDYuNjc1IDEuMjc1IDE2Ljc1IDE2Ljc1IDAgMCAwIDYuNTYyLTEuMzMgMTcgMTcgMCAwIDAgMi44MTMtMS41NTcgMTYuOSAxNi45IDAgMCAwIDQuNTU2LTQuNjEyIDE3IDE3IDAgMCAwIDEuNTU2LTIuODcgMTYuNiAxNi42IDAgMCAwIC45OTQtMy4xNjhjLjQ1NS0yLjI0LjQ1NS00LjU0OCAwLTYuNzg3ek00My4xMjYgMy43NWw2LjczMSA2LjczMWgtNi43MzF6bTYuMDQgMzcuODFjLjQ3My0uMTA1Ljk3NC0uMjE3IDEuNDYtLjIxN1YxNUg0MS4yNWExLjg3NSAxLjg3NSAwIDAgMS0xLjg3NS0xLjg3NVYzLjc1SDExLjI1MXY1Ni4yNDloMTguODhhNS42MjUgNS42MjUgMCAwIDAgNS43OTQtNC44MTl2LS4zOTRjLjIyLTEuMDg2LjU0Ni0yLjE0Ny45NzUtMy4xNjhhMTcgMTcgMCAwIDEgMS41NTYtMi44N2MuNjAzLS45MiAxLjI5NC0xLjc4IDIuMDYzLTIuNTY4YTE2LjkgMTYuOSAwIDAgMSA4LjUzLTQuNTkzeiIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpLHNlfHwoc2U9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJtNTYuMjUgNjUuNTIgMi42NDMtMi42NDRjLTMuODM2LTMuODM3LTEwLjA1Ni0zLjgzNy0xMy44OTMgMGwyLjY0NCAyLjY0M2E2LjIyNSA2LjIyNSAwIDAgMSA4LjYwNiAwIn0pKSl9O2Z1bmN0aW9uIGhlKCl7cmV0dXJuIGhlPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0saGUuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciB2ZSx5ZT1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLGhlKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxmZXx8KGZlPW8uY3JlYXRlRWxlbWVudCgiY2lyY2xlIix7cjoyLjk1NSxmaWxsOiJjdXJyZW50Q29sb3IiLHRyYW5zZm9ybToibWF0cml4KC0xIDAgMCAxIDggMy45NTUpIn0pKSxkZXx8KGRlPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZDoiTTEzLjUgMTRjLjU1MiAwIDEuMDAyLS40NS45LS45OTMtLjE5Mi0xLjAyOC0uNzI5LTIuNDk3LTIuMTU1LTMuNjEtLjU1Ny0uNDY0LTIuMTg2LTEuMzA2LTQuMjQ1LTEuMzA2cy0zLjY4OC44NDItNC4yNDUgMS4zMDdjLTEuNDI3IDEuMTEyLTEuOTYzIDIuNTgtMi4xNTUgMy42MDktLjEwMi41NDMuMzQ4Ljk5My45Ljk5M3oifSkpKX07ZnVuY3Rpb24gZ2UoKXtyZXR1cm4gZ2U9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxnZS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIG1lLGJlPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsZ2Uoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLHZlfHwodmU9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJNMTIuMjg2IDExLjVoLTIuMTQzTDguNzE0IDguN1Y0LjVIMTN2NC4yaC0yLjE0M3ptLTUuNzE1IDBINC40M0wzIDguN1Y0LjVoNC4yODZ2NC4ySDUuMTQzeiJ9KSkpfSx3ZT1uKDY2MzcyKTtmdW5jdGlvbiBfZSgpe3JldHVybiBfZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LF9lLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgU2UseGUsRWUsQ2U9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixfZSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksbWV8fChtZT1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCIsc3Ryb2tlV2lkdGg6MS43LGQ6Ik0xMS41IDkuNSA4IDYgNC41IDkuNSJ9KSkpfSxPZT1uKDMwNjA4KTtmdW5jdGlvbiBBZSgpe3JldHVybiBBZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LEFlLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgSWUsa2UsTGUsVGU9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixBZSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksU2V8fChTZT1vLmNyZWF0ZUVsZW1lbnQoInJlY3QiLHt3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoiY3VycmVudENvbG9yIixyeDo4fSkpLHhlfHwoeGU9by5jcmVhdGVFbGVtZW50KCJnIix7Y2xpcFBhdGg6InVybCgjYjM0NmEpIn0sby5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJNOC4wMDcgNS42ODdhNy43IDcuNyAwIDAgMC0xLjI3NC0uNjE0IDcuNyA3LjcgMCAwIDAtMS40Mi0uNDA2Yy0uMTA2LS4wMi0uMjEzLS4wNDctLjMyLS4wNkE3IDcgMCAwIDAgNCA0LjUyN3Y2LjE4YTcuODUgNy44NSAwIDAgMSA0IDEuMTYgNy44NSA3Ljg1IDAgMCAxIDQtMS4xNnYtNi4xOGE3Ljg1IDcuODUgMCAwIDAtNCAxLjE2em0zIDQuMDg2YTkgOSAwIDAgMC0zIC45NFY2Ljg2bC41Mi0uMzJhNi44IDYuOCAwIDAgMSAyLjQ4LS45MnoifSkpKSxFZXx8KEVlPW8uY3JlYXRlRWxlbWVudCgiZGVmcyIsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoImNsaXBQYXRoIix7aWQ6ImIzNDZhIn0sby5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiI2ZmZiIsZDoiTTQgNGg4djhINHoifSkpKSkpfTtmdW5jdGlvbiBqZSgpe3JldHVybiBqZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGplLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgUGUsTmUsTWUsUmU9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixqZSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksSWV8fChJZT1vLmNyZWF0ZUVsZW1lbnQoInJlY3QiLHt3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoiY3VycmVudENvbG9yIixyeDo4fSkpLGtlfHwoa2U9by5jcmVhdGVFbGVtZW50KCJnIix7ZmlsbDoiY3VycmVudENvbG9yIixjbGlwUGF0aDoidXJsKCNmZmM3YSkifSxvLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNOC40NCAxMC4yM2MtLjMzNSAwLS42Ni0uMDY1LS45NjUtLjE4bC0uMjE1LjIxNWExLjEwMyAxLjEwMyAwIDAgMS0xLjUyIDAgMS4wNyAxLjA3IDAgMCAxLS4zMTUtLjc2YzAtLjI4NS4xMS0uNTU1LjMxNS0uNzZsMS4wNi0xLjA2YTEuMDcgMS4wNyAwIDAgMSAxLjUyIDBjLjA1NS4wNTUuMS4xMTUuMTQ1LjE4aC4wM2MuMDQgMCAuMTE1LS4wMS4xNzUtLjA3NWwuNDYtLjQ2YTEuNiAxLjYgMCAwIDAtLjIwNS0uMjVjLS43NS0uNzUtMS45Ny0uNzUtMi43MjUgMEw1LjE0IDguMTRhMS45IDEuOSAwIDAgMC0uNTY1IDEuMzZjMCAuNTE1LjIgMSAuNTY1IDEuMzYuMzY1LjM2NS44NDUuNTY1IDEuMzYuNTY1czEtLjIgMS4zNi0uNTY1bC42NC0uNjRzLS4wNC4wMDUtLjA2LjAwNXoifSksby5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTEwLjg2IDUuMTRjLS43MjUtLjcyNS0xLjk5NS0uNzMtMi43MiAwbC0uNTUuNTVjLjM1IDAgLjY4LjA4Ljk5NS4yMWwuMTYtLjE2Yy4yMDUtLjIwNS40NzUtLjMxNS43Ni0uMzE1cy41NTUuMTEuNzYuMzE1LjMxNS40NzUuMzE1Ljc2LS4xMS41NTUtLjMxNS43NmwtMS4wNiAxLjA2YTEuMTAzIDEuMTAzIDAgMCAxLTEuNTIgMCAxIDEgMCAwIDEtLjA5NS0uMTJoLS4wMmEuMjUuMjUgMCAwIDAtLjE3NS4wNjVsLS40NjUuNDY1Yy4wNS4wNjUuMS4xMzUuMTYuMTk1LjM2NS4zNjUuODQ1LjU2NSAxLjM2LjU2NXMxLS4yIDEuMzYtLjU2NWwxLjA2LTEuMDZjLjM2NS0uMzY1LjU2NS0uODQ1LjU2NS0xLjM2cy0uMi0xLS41NjUtMS4zNnoifSkpKSxMZXx8KExlPW8uY3JlYXRlRWxlbWVudCgiZGVmcyIsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoImNsaXBQYXRoIix7aWQ6ImZmYzdhIn0sby5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiI2ZmZiIsZDoiTTQgNGg4djhINHoifSkpKSkpfTtmdW5jdGlvbiBVZSgpe3JldHVybiBVZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LFVlLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgemUsSGUsRmUsRGU9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixVZSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDI0IDI0IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksUGV8fChQZT1vLmNyZWF0ZUVsZW1lbnQoIm1hc2siLHtpZDoiMDQ1ZmEiLGZpbGw6Im5vbmUifSxvLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTIyLjUgMTJjMCA1Ljc5OS00LjcwMSAxMC41LTEwLjUgMTAuNVMxLjUgMTcuNzk5IDEuNSAxMiA2LjIwMSAxLjUgMTIgMS41IDIyLjUgNi4yMDEgMjIuNSAxMk0xMS45MjYgNy44NWExLjU2IDEuNTYgMCAwIDAtMS40NjUgMS4wMi44NS44NSAwIDEgMS0xLjU5NC0uNTg4IDMuMjYgMy4yNiAwIDEgMSA1LjU0NyAzLjIzM2wtLjAxOS4wMjItLjAyLjAyMS0xLjA3NSAxLjEwNS0uMDA2LjAwNi0uMDA2LjAwNmMtLjMxOS4zMTUtLjUxMi41MzQtLjUxMi45NHYuMzYzYS44NS44NSAwIDAgMS0xLjcgMHYtLjM2NGMwLTEuMTQ0LjY2NC0xLjggMS4wMDMtMi4xMzRsLjAwOS0uMDA4IDEuMDQ2LTEuMDc2YTEuNTYgMS41NiAwIDAgMC0xLjIwOC0yLjU0Nm0wIDkuOTE3YS44ODQuODg0IDAgMSAwIDAtMS43NjcuODg0Ljg4NCAwIDAgMCAwIDEuNzY3IixjbGlwUnVsZToiZXZlbm9kZCIsc2hhcGVSZW5kZXJpbmc6ImNyaXNwRWRnZXMifSkpKSxOZXx8KE5lPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0yMi41IDEyYzAgNS43OTktNC43MDEgMTAuNS0xMC41IDEwLjVTMS41IDE3Ljc5OSAxLjUgMTIgNi4yMDEgMS41IDEyIDEuNSAyMi41IDYuMjAxIDIyLjUgMTJNMTEuOTI2IDcuODVhMS41NiAxLjU2IDAgMCAwLTEuNDY1IDEuMDIuODUuODUgMCAxIDEtMS41OTQtLjU4OCAzLjI2IDMuMjYgMCAxIDEgNS41NDcgMy4yMzNsLS4wMTkuMDIyLS4wMi4wMjEtMS4wNzUgMS4xMDUtLjAwNi4wMDYtLjAwNi4wMDZjLS4zMTkuMzE1LS41MTIuNTM0LS41MTIuOTR2LjM2M2EuODUuODUgMCAwIDEtMS43IDB2LS4zNjRjMC0xLjE0NC42NjQtMS44IDEuMDAzLTIuMTM0bC4wMDktLjAwOCAxLjA0Ni0xLjA3NmExLjU2IDEuNTYgMCAwIDAtMS4yMDgtMi41NDZtMCA5LjkxN2EuODg0Ljg4NCAwIDEgMCAwLTEuNzY3Ljg4NC44ODQgMCAwIDAgMCAxLjc2NyIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpLE1lfHwoTWU9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJtMTAuNDYyIDguODcgMS41OTUuNTg4em0tMS4wOTIuNTAzLS41ODggMS41OTV6bS0uNTAzLTEuMDkxLTEuNTk1LS41ODl6bTUuNTQ3IDMuMjMzLTEuMjk3LTEuMDk5em0tLjAxOS4wMjIgMS4yMiAxLjE4NS4wNC0uMDQyLjAzOC0uMDQ0em0tLjAyLjAyMSAxLjIxOSAxLjE4NnpNMTMuMyAxMi42NjNsMS4yMiAxLjE4NXptLS4wMDYuMDA2IDEuMTk1IDEuMjEuMDEyLS4wMTIuMDEyLS4wMTN6bS0uMDA2LjAwNi0xLjE5NC0xLjIxek0xMi4wOCAxMS40OGwxLjE5NCAxLjIxem0uMDA5LS4wMDggMS4xOTQgMS4yMS4wMTItLjAxMy4wMTMtLjAxMnptMS4wNDYtMS4wNzYgMS4yMTggMS4xODYuMDUxLS4wNTMuMDQ2LS4wNTZ6TTEyIDI0LjJjNi43MzggMCAxMi4yLTUuNDYyIDEyLjItMTIuMmgtMy40YTguOCA4LjggMCAwIDEtOC44IDguOHpNLS4yIDEyYzAgNi43MzggNS40NjIgMTIuMiAxMi4yIDEyLjJ2LTMuNEE4LjggOC44IDAgMCAxIDMuMiAxMnpNMTItLjJDNS4yNjItLjItLjIgNS4yNjItLjIgMTJoMy40QTguOCA4LjggMCAwIDEgMTIgMy4yek0yNC4yIDEyQzI0LjIgNS4yNjIgMTguNzM4LS4yIDEyLS4ydjMuNGE4LjggOC44IDAgMCAxIDguOCA4Ljh6TTEyLjA1NyA5LjQ1OGEuMTQuMTQgMCAwIDEtLjA1LjA2NS4xNS4xNSAwIDAgMS0uMDgxLjAyN3YtMy40YTMuMjYgMy4yNiAwIDAgMC0zLjA2IDIuMTMyem0tMy4yNzUgMS41MWEyLjU1IDIuNTUgMCAwIDAgMy4yNzQtMS41MWwtMy4xOS0xLjE3NmEuODUuODUgMCAwIDEgMS4wOTItLjUwNHptLTEuNTEtMy4yNzVhMi41NSAyLjU1IDAgMCAwIDEuNTEgMy4yNzVsMS4xNzYtMy4xOWEuODUuODUgMCAwIDEgLjUwMyAxLjA5MnptNC42NTQtMy4yNDNhNC45NiA0Ljk2IDAgMCAwLTQuNjU0IDMuMjQzbDMuMTkgMS4xNzdhMS41NiAxLjU2IDAgMCAxIDEuNDY0LTEuMDJ6bTQuOTYgNC45NmE0Ljk2IDQuOTYgMCAwIDAtNC45Ni00Ljk2djMuNGMuODYxIDAgMS41Ni42OTggMS41NiAxLjU2em0tMS4xNzQgMy4yMDNhNC45NSA0Ljk1IDAgMCAwIDEuMTczLTMuMjAzaC0zLjRjMCAuMzg0LS4xMzguNzM0LS4zNjggMS4wMDZ6bS0uMDE5LjAyMy4wMTktLjAyMy0yLjU5NS0yLjE5Ny0uMDIuMDIzem0tLjEuMTA4LjAyMS0uMDIxLTIuNDM3LTIuMzcxLS4wMi4wMjF6bS0xLjA3NCAxLjEwNCAxLjA3NS0xLjEwNC0yLjQzOC0yLjM3MS0xLjA3NCAxLjEwNXptLS4wMDYuMDA2LjAwNi0uMDA2LTIuNDM3LTIuMzctLjAwNi4wMDZ6bS0uMDMuMDMxLjAwNi0uMDA2LTIuMzg5LTIuNDItLjAwNi4wMDd6bS0uMDA3LS4yN2EuOC44IDAgMCAxLS4xMTIuMzgyYy0uMDI1LjA0LS4wMzkuMDUyLS4wMTguMDI4LjAyMy0uMDI2LjA2LS4wNjUuMTM3LS4xNGwtMi4zODktMi40MmMtLjMzLjMyNi0xLjAxOC45ODUtMS4wMTggMi4xNXptMCAuMzYzdi0uMzY0aC0zLjR2LjM2NHptLTIuNTUgMi41NWEyLjU1IDIuNTUgMCAwIDAgMi41NS0yLjU1aC0zLjRjMC0uNDcuMzgtLjg1Ljg1LS44NXptLTIuNTUtMi41NWEyLjU1IDIuNTUgMCAwIDAgMi41NSAyLjU1di0zLjRjLjQ2OSAwIC44NS4zOC44NS44NXptMC0uMzY0di4zNjRoMy40di0uMzY0em0xLjUxLTMuMzQ0Yy0uMzcyLjM2Ni0xLjUxIDEuNDU1LTEuNTEgMy4zNDRoMy40YzAtLjQuMTktLjYyMS40OTctLjkyM3ptLjAwOC0uMDA5LS4wMDkuMDEgMi4zODggMi40Mi4wMDktLjAxem0xLjAyMS0xLjA1LTEuMDQ2IDEuMDc1IDIuNDM4IDIuMzcgMS4wNDUtMS4wNzR6bS0uMTMuMTk5YS4xNC4xNCAwIDAgMSAuMDMzLS4wOWwyLjYzMSAyLjE1M2EzLjI1IDMuMjUgMCAwIDAgLjczNi0yLjA2M3ptLjE0LjE0YS4xNC4xNCAwIDAgMS0uMTQtLjE0aDMuNGMwLTEuOC0xLjQ2LTMuMjYtMy4yNi0zLjI2em0tLjgxNSA3LjMzNGMwLS40NTEuMzY2LS44MTcuODE3LS44MTd2My40YTIuNTg0IDIuNTg0IDAgMCAwIDIuNTgzLTIuNTgzem0uODE3LjgxNmEuODE2LjgxNiAwIDAgMS0uODE3LS44MTZoMy40YTIuNTg0IDIuNTg0IDAgMCAwLTIuNTgzLTIuNTg0em0uODE2LS44MTZjMCAuNDUtLjM2Ni44MTYtLjgxNi44MTZ2LTMuNGEyLjU4NCAyLjU4NCAwIDAgMC0yLjU4NCAyLjU4NHptLS44MTYtLjgxN2MuNDUgMCAuODE2LjM2Ni44MTYuODE3aC0zLjRhMi41ODQgMi41ODQgMCAwIDAgMi41ODQgMi41ODN6IixtYXNrOiJ1cmwoIzA0NWZhKSJ9KSkpfTtmdW5jdGlvbiBCZSgpe3JldHVybiBCZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LEJlLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgVmUsR2UscWUsV2U9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixCZSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDI0IDI0IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksemV8fCh6ZT1vLmNyZWF0ZUVsZW1lbnQoImNpcmNsZSIse2N4OjEyLGN5OjEyLHI6OS42NSxzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6MS43LGNsYXNzTmFtZToiNTRlOGM3YjRzdHJva2UgYjE1YmU0ZmFjaXJjbGUifSkpLEhlfHwoSGU9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7c3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VXaWR0aDoxLjcsZDoiTTkuNjY0IDguNTc2YTIuNDEgMi40MSAwIDEgMSA0LjEwMiAyLjM5bC0xLjA3NSAxLjEwNGMtLjMyNi4zMjItLjc2NS43Ni0uNzY1IDEuNTQ0di4zNjQiLGNsYXNzTmFtZToiNTRlOGM3YjRzdHJva2UgOTczZWExZTduZWdhdGl2ZSJ9KSksRmV8fChGZT1vLmNyZWF0ZUVsZW1lbnQoImNpcmNsZSIse2N4OjExLjkyNyxjeToxNi44ODQscjouODg0LGZpbGw6ImN1cnJlbnRDb2xvciIsY2xhc3NOYW1lOiI1YjM2MDY4ZGZpbGwgOTczZWExZTduZWdhdGl2ZSJ9KSkpfTtmdW5jdGlvbiBLZSgpe3JldHVybiBLZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LEtlLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgWmUsSmUsWWU9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixLZSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDI0IDI0IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksVmV8fChWZT1vLmNyZWF0ZUVsZW1lbnQoIm1hc2siLHtpZDoiZGE2YWEiLGZpbGw6Im5vbmUifSxvLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTEwLjUgMi4zMzUgMyA3LjUxYy0uNjI1LjQzNy0xIDEuMTE2LTEgMS44NFYxOS43QzIgMjAuOTY1IDMuMTI1IDIyIDQuNSAyMmgxNWMxLjM3NSAwIDIuNS0xLjAzNSAyLjUtMi4zVjkuMzVjMC0uNzI0LS4zNzUtMS40MDMtMS0xLjg0bC03LjUtNS4xNzVhMi42OSAyLjY5IDAgMCAwLTMgME03LjMxNiAxNC4zNjZhLjg1Ljg1IDAgMSAwLTEuMTMyIDEuMjY4QTguNyA4LjcgMCAwIDAgMTIgMTcuODUyYTguNyA4LjcgMCAwIDAgNS44MTYtMi4yMTguODUuODUgMCAxIDAtMS4xMzItMS4yNjhBNyA3IDAgMCAxIDEyIDE2LjE1MmMtMS44IDAtMy40NC0uNjc1LTQuNjg0LTEuNzg2IixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpLEdlfHwoR2U9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTEwLjUgMi4zMzUgMyA3LjUxYy0uNjI1LjQzNy0xIDEuMTE2LTEgMS44NFYxOS43QzIgMjAuOTY1IDMuMTI1IDIyIDQuNSAyMmgxNWMxLjM3NSAwIDIuNS0xLjAzNSAyLjUtMi4zVjkuMzVjMC0uNzI0LS4zNzUtMS40MDMtMS0xLjg0bC03LjUtNS4xNzVhMi42OSAyLjY5IDAgMCAwLTMgME03LjMxNiAxNC4zNjZhLjg1Ljg1IDAgMSAwLTEuMTMyIDEuMjY4QTguNyA4LjcgMCAwIDAgMTIgMTcuODUyYTguNyA4LjcgMCAwIDAgNS44MTYtMi4yMTguODUuODUgMCAxIDAtMS4xMzItMS4yNjhBNyA3IDAgMCAxIDEyIDE2LjE1MmMtMS44IDAtMy40NC0uNjc1LTQuNjg0LTEuNzg2IixjbGlwUnVsZToiZXZlbm9kZCJ9KSkscWV8fChxZT1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Im0zIDcuNTEtLjk2NS0xLjQtLjAxLjAwN3ptNy41LTUuMTc1TDkuNTM4LjkzNGwtLjAwMy4wMDJ6TTIxIDcuNTFsLjk3NC0xLjM5My0uMDA5LS4wMDZ6bS03LjUtNS4xNzUuOTY2LTEuNC0uMDA0LS4wMDF6TTYuMTE2IDE0LjQzNGwxLjI2OCAxLjEzMnptMS4yLS4wNjggMS4xMzMtMS4yNjh6bS0xLjEzMiAxLjI2OEw1LjA1IDE2LjkwMnptMTEuNjMyIDAgMS4xMzMgMS4yNjh6bS4wNjgtMS4yLTEuMjY4IDEuMTMyem0tMS4yLS4wNjgtMS4xMzMtMS4yNjh6TTMuOTY1IDguOTFsNy41LTUuMTc1TDkuNTM2LjkzNmwtNy41IDUuMTc1em0tLjI2NS40NGMwLS4xMi4wNjMtLjI5OS4yNzQtLjQ0N0wyLjAyNiA2LjExN0MuOTg3IDYuODQzLjMgOC4wMjIuMyA5LjM1em0wIDEwLjM1VjkuMzVILjNWMTkuN3ptLjguNmEuOS45IDAgMCAxLS42MTUtLjIyNy41LjUgMCAwIDEtLjE4NS0uMzczSC4zYzAgMi4zMzUgMi4wMjIgNCA0LjIgNHptMTUgMGgtMTV2My40aDE1em0uOC0uNmEuNS41IDAgMCAxLS4xODUuMzczLjkuOSAwIDAgMS0uNjE1LjIyN3YzLjRjMi4xNzggMCA0LjItMS42NjUgNC4yLTR6bTAtMTAuMzVWMTkuN2gzLjRWOS4zNXptLS4yNzQtLjQ0N2MuMjExLjE0OC4yNzQuMzI2LjI3NC40NDdoMy40YzAtMS4zMjgtLjY4Ny0yLjUwNy0xLjcyNi0zLjIzM3ptLTcuNDkxLTUuMTY5IDcuNSA1LjE3NSAxLjkzLTIuNzk4LTcuNS01LjE3NXptLTEuMDczLjAwMmEuOTkuOTkgMCAwIDEgMS4wNzYgMEwxNC40NjIuOTM0YTQuMzkgNC4zOSAwIDAgMC00LjkyNCAwem0tNC4wNzggMTEuODNhLjg1Ljg1IDAgMCAxLTEuMi4wNjhsMi4yNjUtMi41MzZhMi41NSAyLjU1IDAgMCAwLTMuNi4yMDN6bS0uMDY4LTEuMmMuMzUuMzEzLjM4Ljg1LjA2OCAxLjJsLTIuNTM2LTIuMjY1YTIuNTUgMi41NSAwIDAgMCAuMjAzIDMuNnpNMTIgMTYuMTUyYy0xLjggMC0zLjQ0LS42NzUtNC42ODQtMS43ODZsLTIuMjY1IDIuNTM2QTEwLjQgMTAuNCAwIDAgMCAxMiAxOS41NTJ6bTQuNjg0LTEuNzg2QTcgNyAwIDAgMSAxMiAxNi4xNTJ2My40YzIuNjY3IDAgNS4xMDUtMS4wMDQgNi45NDktMi42NXptLS4wNjggMS4yYS44NS44NSAwIDAgMSAuMDY4LTEuMmwyLjI2NSAyLjUzNmEyLjU1IDIuNTUgMCAwIDAgLjIwMy0zLjZ6bTEuMi4wNjhhLjg1Ljg1IDAgMCAxLTEuMi0uMDY4bDIuNTM2LTIuMjY1YTIuNTUgMi41NSAwIDAgMC0zLjYtLjIwM3pNMTIgMTcuODUyYTguNyA4LjcgMCAwIDAgNS44MTYtMi4yMThsLTIuMjY1LTIuNTM2QTUuMyA1LjMgMCAwIDEgMTIgMTQuNDUyem0tNS44MTYtMi4yMThBOC43IDguNyAwIDAgMCAxMiAxNy44NTJ2LTMuNGE1LjMgNS4zIDAgMCAxLTMuNTUxLTEuMzU0eiIsbWFzazoidXJsKCNkYTZhYSkifSkpKX07ZnVuY3Rpb24gUWUoKXtyZXR1cm4gUWU9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxRZS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFhlLCRlLHRuLGVuPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsUWUoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MjQsaGVpZ2h0OjI0LGZpbGw6Im5vbmUiLHN0cm9rZToiY3VycmVudENvbG9yIix2aWV3Qm94OiIwIDAgMjQgMjQiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxaZXx8KFplPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse3N0cm9rZVdpZHRoOjEuNyxkOiJNMi44NSA5LjM1YzAtLjQyMy4yMTgtLjg1LjYzNS0xLjE0M2w3LjQ5Ni01LjE3MmguMDAxYTEuODQgMS44NCAwIDAgMSAyLjAzNiAwbDcuNDk1IDUuMTcuMDAyLjAwMmMuNDE3LjI5My42MzUuNzIuNjM1IDEuMTQyVjE5LjdjMCAuNzMtLjY3NiAxLjQ1LTEuNjUgMS40NWgtMTVjLS45NzQgMC0xLjY1LS43Mi0xLjY1LTEuNDV6IixjbGFzc05hbWU6IjJjNDRlNzUwc3Ryb2tlIn0pKSxKZXx8KEplPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse3N0cm9rZToiI2N1cnJlbnRDb2xvciIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZVdpZHRoOjEuNyxkOiJNMTcuMjUgMTVBNy44NiA3Ljg2IDAgMCAxIDEyIDE3LjAwMiA3Ljg2IDcuODYgMCAwIDEgNi43NSAxNSIsY2xhc3NOYW1lOiIyYzQ0ZTc1MHN0cm9rZSJ9KSkpfTtmdW5jdGlvbiBubigpe3JldHVybiBubj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LG5uLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgcm4sb24sYW4sdW49ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixubih7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDI0IDI0IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksWGV8fChYZT1vLmNyZWF0ZUVsZW1lbnQoIm1hc2siLHtpZDoiY2FkZWEiLGZpbGw6Im5vbmUifSxvLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTIyIDVhMyAzIDAgMCAwLTMtM0g1YTMgMyAwIDAgMC0zIDN2MTBhMyAzIDAgMCAwIDMgM2gxMC41NThsMy44ODMgMy44N2MuOTQ2Ljk0MiAyLjU1OS4yNzIgMi41NTktMS4wNjN6bS00LjE1IDIuODVBLjg1Ljg1IDAgMCAwIDE3IDdIN2EuODUuODUgMCAwIDAgMCAxLjdoMTBjLjQ3IDAgLjg1LS4zOC44NS0uODVtLTUgNEEuODUuODUgMCAwIDAgMTIgMTFIN2EuODUuODUgMCAwIDAgMCAxLjdoNWMuNDcgMCAuODUtLjM4Ljg1LS44NSIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpKSwkZXx8KCRlPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0yMiA1YTMgMyAwIDAgMC0zLTNINWEzIDMgMCAwIDAtMyAzdjEwYTMgMyAwIDAgMCAzIDNoMTAuNTU4bDMuODgzIDMuODdjLjk0Ni45NDIgMi41NTkuMjcyIDIuNTU5LTEuMDYzem0tNC4xNSAyLjg1QS44NS44NSAwIDAgMCAxNyA3SDdhLjg1Ljg1IDAgMCAwIDAgMS43aDEwYy40NyAwIC44NS0uMzguODUtLjg1bS01IDRBLjg1Ljg1IDAgMCAwIDEyIDExSDdhLjg1Ljg1IDAgMCAwIDAgMS43aDVjLjQ3IDAgLjg1LS4zOC44NS0uODUiLGNsaXBSdWxlOiJldmVub2RkIn0pKSx0bnx8KHRuPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZDoiTTE1LjU1OCAxOHYtMS43aC43MDJsLjQ5OC40OTZ6bTMuODgzIDMuODcgMS4yLTEuMjA1ek0xOSAuM0E0LjcgNC43IDAgMCAxIDIzLjcgNWgtMy40QTEuMyAxLjMgMCAwIDAgMTkgMy43ek01IC4zaDE0djMuNEg1ek0uMyA1QTQuNyA0LjcgMCAwIDEgNSAuM3YzLjRBMS4zIDEuMyAwIDAgMCAzLjcgNXptMCAxMFY1aDMuNHYxMHpNNSAxOS43QTQuNyA0LjcgMCAwIDEgLjMgMTVoMy40QTEuMyAxLjMgMCAwIDAgNSAxNi4zem0xMC41NTggMEg1di0zLjRoMTAuNTU4em0yLjY4MyAzLjM3NC0zLjg4My0zLjg3IDIuNC0yLjQwOCAzLjg4MyAzLjg3em01LjQ1OS0yLjI2N2MwIDIuODQ4LTMuNDQxIDQuMjc3LTUuNDU5IDIuMjY3bDIuNC0yLjQwOWEuMjMuMjMgMCAwIDAtLjIxOC0uMDQzLjIzLjIzIDAgMCAwLS4xMjMuMTg1em0wLTQuMzA3djQuMzA3aC0zLjRWMTYuNXptMC0yLjU0M1YxNi41aC0zLjR2LTIuNTQzek0yMy43IDV2OC45NTdoLTMuNFY1em0tNi43LjNhMi41NSAyLjU1IDAgMCAxIDIuNTUgMi41NWgtMy40YzAgLjQ3LjM4Ljg1Ljg1Ljg1em0tMTAgMGgxMHYzLjRIN3pNNC40NSA3Ljg1QTIuNTUgMi41NSAwIDAgMSA3IDUuM3YzLjRjLjQ3IDAgLjg1LS4zOC44NS0uODV6TTcgMTAuNGEyLjU1IDIuNTUgMCAwIDEtMi41NS0yLjU1aDMuNEEuODUuODUgMCAwIDAgNyA3em0xMCAwSDdWN2gxMHptMi41NS0yLjU1QTIuNTUgMi41NSAwIDAgMSAxNyAxMC40VjdhLjg1Ljg1IDAgMCAwLS44NS44NXpNMTIgOS4zYTIuNTUgMi41NSAwIDAgMSAyLjU1IDIuNTVoLTMuNGMwIC40Ny4zOC44NS44NS44NXptLTUgMGg1djMuNEg3em0tMi41NSAyLjU1QTIuNTUgMi41NSAwIDAgMSA3IDkuM3YzLjRjLjQ3IDAgLjg1LS4zOC44NS0uODV6TTcgMTQuNGEyLjU1IDIuNTUgMCAwIDEtMi41NS0yLjU1aDMuNEEuODUuODUgMCAwIDAgNyAxMXptNSAwSDdWMTFoNXptMi41NS0yLjU1QTIuNTUgMi41NSAwIDAgMSAxMiAxNC40VjExYS44NS44NSAwIDAgMC0uODUuODV6IixtYXNrOiJ1cmwoI2NhZGVhKSJ9KSkpfTtmdW5jdGlvbiBzbigpe3JldHVybiBzbj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LHNuLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgY24sbG49ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixzbih7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDI0IDI0IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCkscm58fChybj1vLmNyZWF0ZUVsZW1lbnQoIm1hc2siLHtpZDoiYWYxZGEiLGZpbGw6IiNmZmYifSxvLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTE5IDJhMyAzIDAgMCAxIDMgM3YxNS44MDZjMCAxLjMzNS0xLjYxMyAyLjAwNS0yLjU1OSAxLjA2MkwxNS41NiAxOEg1YTMgMyAwIDAgMS0zLTNWNWEzIDMgMCAwIDEgMy0zeiIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpKSxvbnx8KG9uPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZDoibTE5LjQ0MSAyMS44NjggMS4yLTEuMjA0ek0xNS41NiAxOHYtMS43aC43MDJsLjQ5OC40OTZ6TTIwLjMgNUExLjMgMS4zIDAgMCAwIDE5IDMuN1YuM0E0LjcgNC43IDAgMCAxIDIzLjcgNXptMCA4Ljk1NlY1aDMuNHY4Ljk1NnptMCAyLjU0NHYtMi41NDRoMy40VjE2LjV6bTAgNC4zMDZWMTYuNWgzLjR2NC4zMDZ6bS4zNDEtLjE0MmEuMjMuMjMgMCAwIDAtLjIxOC0uMDQzLjIzLjIzIDAgMCAwLS4xMjMuMTg1aDMuNGMwIDIuODQ4LTMuNDQxIDQuMjc3LTUuNDU5IDIuMjY3em0tMy44ODItMy44NjggMy44ODIgMy44NjgtMi40IDIuNDA5LTMuODgyLTMuODY5ek01IDE2LjNoMTAuNTU5djMuNEg1ek0zLjcgMTVBMS4zIDEuMyAwIDAgMCA1IDE2LjN2My40QTQuNyA0LjcgMCAwIDEgLjMgMTV6bTAtMTB2MTBILjNWNXpNNSAzLjdBMS4zIDEuMyAwIDAgMCAzLjcgNUguM0E0LjcgNC43IDAgMCAxIDUgLjN6bTE0IDBINVYuM2gxNHoiLGNsYXNzTmFtZToiNjA0YWQyN2NmaWxsIixtYXNrOiJ1cmwoI2FmMWRhKSJ9KSksYW58fChhbj1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMTcgN2EuODUuODUgMCAwIDEgMCAxLjdIN0EuODUuODUgMCAxIDEgNyA3em0tNSA0YS44NS44NSAwIDAgMSAwIDEuN0g3QS44NS44NSAwIDAgMSA3IDExeiIsY2xhc3NOYW1lOiI2MDRhZDI3Y2ZpbGwiLGNsaXBSdWxlOiJldmVub2RkIn0pKSl9O2Z1bmN0aW9uIGZuKCl7cmV0dXJuIGZuPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sZm4uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBkbixwbixobix2bj1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLGZuKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjI0LGhlaWdodDoyNCxmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMjQgMjQiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxjbnx8KGNuPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0xMC4yMTggMTRIOS41djYuMjMyYTIuMjY4IDIuMjY4IDAgMCAxLTQuNDU2LjU5N2wtMS45NjctNy4yMTJBNS4wMDEgNS4wMDEgMCAwIDEgNSA0aDUuOTM4bDQuNTExLTIuOTc3QTEgMSAwIDAgMSAxNyAxLjg1OHYxNC43NmExIDEgMCAwIDEtMS41NS44MzR6TTIwLjU5NSAzLjM5M2EuODUuODUgMCAxIDAtMS4xOSAxLjIxNEE2LjEzIDYuMTMgMCAwIDEgMjEuMjUxIDlhNi4xMyA2LjEzIDAgMCAxLTEuODQ2IDQuMzkzLjg1Ljg1IDAgMSAwIDEuMTkgMS4yMTRBNy44MyA3LjgzIDAgMCAwIDIyLjk1IDlhNy44MyA3LjgzIDAgMCAwLTIuMzU2LTUuNjA3IixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpfTtmdW5jdGlvbiB5bigpe3JldHVybiB5bj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LHluLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgZ24sbW49ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIix5bih7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDI0IDI0IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksZG58fChkbj1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZVdpZHRoOjEuNyxkOiJNMjAgNGE2Ljk4IDYuOTggMCAwIDEgMi4xMDEgNWMwIDEuOTU5LS44MDQgMy43My0yLjEwMSA1IixjbGFzc05hbWU6IjNhYzE3MWE3c3Ryb2tlIn0pKSxwbnx8KHBuPW8uY3JlYXRlRWxlbWVudCgibWFzayIse2lkOiIzNDUwYSIsZmlsbDoiI2ZmZiJ9LG8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixkOiJNOS41IDE0aC43MThsNS4yMzEgMy40NTJBMSAxIDAgMCAwIDE3IDE2LjYxN1YxLjg1OGExIDEgMCAwIDAtMS41NS0uODM1TDEwLjkzNyA0SDVhNSA1IDAgMCAwLTEuOTIzIDkuNjE3bDEuOTY3IDcuMjEyYTIuMjY4IDIuMjY4IDAgMCAwIDQuNDU2LS41OTd6IixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpLGhufHwoaG49by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJtMTAuMjE4IDE0IC45MzYtMS40MTktLjQyNi0uMjhoLS41MXpNOS41IDE0di0xLjdINy44VjE0em01Ljk1IDMuNDUyLS45MzcgMS40MnptMC0xNi40MjktLjkzNy0xLjQxOXpNMTAuOTM3IDR2MS43aC41MWwuNDI2LS4yOHptLTcuODYgOS42MTcgMS42NC0uNDQ3LS4yMi0uODAyLS43NjYtLjMyem0xLjk2NiA3LjIxMiAxLjY0LS40NDd6bTUuMTc0LTguNTI5SDkuNXYzLjRoLjcxOHptNi4xNjggMy43MzMtNS4yMzItMy40NTJMOS4yOCAxNS40Mmw1LjIzMiAzLjQ1MnptLTEuMDg2LjU4NGEuNy43IDAgMCAxIDEuMDg1LS41ODRsLTEuODcyIDIuODM4YzEuNzk1IDEuMTg1IDQuMTg3LS4xMDMgNC4xODctMi4yNTN6bTAtMTQuNzU5djE0Ljc2aDMuNFYxLjg1OHptMS4wODUuNTg0YS43LjcgMCAwIDEtMS4wODUtLjU4NGgzLjRjMC0yLjE1LTIuMzkyLTMuNDM4LTQuMTg3LTIuMjU0em0tNC41MSAyLjk3NyA0LjUxLTIuOTc3LTEuODcyLTIuODM4LTQuNTExIDIuOTc3ek01IDUuN2g1LjkzOFYyLjNINXpNMS43IDlBMy4zIDMuMyAwIDAgMSA1IDUuN1YyLjNjLTMuNyAwLTYuNyAzLTYuNyA2Ljd6bTIuMDMyIDMuMDQ4QTMuMyAzLjMgMCAwIDEgMS43IDloLTMuNGE2LjcgNi43IDAgMCAwIDQuMTIzIDYuMTg2em0yLjk1MiA4LjMzNEw0LjcxOCAxMy4xN2wtMy4yOC44OTUgMS45NjYgNy4yMTF6bS41NDguNDE4YS41Ny41NyAwIDAgMS0uNTQ4LS40MThsLTMuMjguODk0QTMuOTcgMy45NyAwIDAgMCA3LjIzMiAyNC4yem0uNTY4LS41NjhhLjU3LjU3IDAgMCAxLS41NjguNTY4djMuNGEzLjk3IDMuOTcgMCAwIDAgMy45NjgtMy45Njh6TTcuOCAxNHY2LjIzMmgzLjRWMTR6IixjbGFzc05hbWU6IjM2MWQ5YzgwZmlsbCIsbWFzazoidXJsKCMzNDUwYSkifSkpKX07ZnVuY3Rpb24gYm4oKXtyZXR1cm4gYm49T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxibi5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIHduLF9uLFNuLHhuPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsYm4oe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MjQsaGVpZ2h0OjI0LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAyNCAyNCIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLGdufHwoZ249by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTMuNzUgNC41QTIuMjUgMi4yNSAwIDAgMCAxLjUgNi43NXYxLjg3NWMwIC40MTQuMzQzLjc0Ljc0Ljg1NmEyLjYyNiAyLjYyNiAwIDAgMSAwIDUuMDM4Yy0uMzk3LjExNy0uNzQuNDQyLS43NC44NTZ2MS44NzVhMi4yNSAyLjI1IDAgMCAwIDIuMjUgMi4yNWgxNi41YTIuMjUgMi4yNSAwIDAgMCAyLjI1LTIuMjV2LTEuODc1YzAtLjQxNC0uMzQzLS43NC0uNzQtLjg1NmEyLjYyNiAyLjYyNiAwIDAgMSAwLTUuMDM4Yy4zOTctLjExNy43NC0uNDQyLjc0LS44NTZWNi43NWEyLjI1IDIuMjUgMCAwIDAtMi4yNS0yLjI1ek0xNi41IDkuNzVoLTlhMS4xMjUgMS4xMjUgMCAwIDEgMC0yLjI1aDlhMS4xMjUgMS4xMjUgMCAwIDEgMCAyLjI1IixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpfTtmdW5jdGlvbiBFbigpe3JldHVybiBFbj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LEVuLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgQ24sT249ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixFbih7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDI0IDI0IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksd258fCh3bj1vLmNyZWF0ZUVsZW1lbnQoIm1hc2siLHtpZDoiOTA5YmEiLGZpbGw6IiNmZmYifSxvLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTMgNC41QTEuNSAxLjUgMCAwIDAgMS41IDZ2Mi44NzVjMCAuMjc2LjIyNi40OTUuNDk3LjU0N2EyLjYyNiAyLjYyNiAwIDAgMSAwIDUuMTU2Yy0uMjcxLjA1Mi0uNDk3LjI3LS40OTcuNTQ3VjE4QTEuNSAxLjUgMCAwIDAgMyAxOS41aDE4YTEuNSAxLjUgMCAwIDAgMS41LTEuNXYtMi44NzVjMC0uMjc2LS4yMjYtLjQ5NS0uNDk3LS41NDdhMi42MjYgMi42MjYgMCAwIDEgMC01LjE1NmMuMjcxLS4wNTIuNDk3LS4yNy40OTctLjU0N1Y2QTEuNSAxLjUgMCAwIDAgMjEgNC41eiIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpKSxfbnx8KF9uPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZDoibTEuOTk3IDkuNDIyLS4zMiAxLjY3em0wIDUuMTU2LS4zMi0xLjY3em0yMC4wMDYgMC0uMzIgMS42N3ptMC01LjE1Ni0uMzItMS42N3pNMy4yIDZhLjIuMiAwIDAgMS0uMi4yVjIuOEEzLjIgMy4yIDAgMCAwLS4yIDZ6bTAgMS41VjZILS4ydjEuNXptMCAxLjM3NVY3LjVILS4ydjEuMzc1em0tLjg4My0xLjEyM2MuMzMyLjA2NC44ODMuMzk3Ljg4MyAxLjEyM0gtLjJjMCAxLjI3OCAxLjAwMyAyLjA1IDEuODc3IDIuMjE3ek01LjgyNSAxMmMwLTIuMTEtMS41MS0zLjg2NS0zLjUwOC00LjI0OGwtLjY0IDMuMzRhLjkyNS45MjUgMCAwIDEgLjc0OC45MDh6bS0zLjUwOCA0LjI0OEE0LjMyNiA0LjMyNiAwIDAgMCA1LjgyNSAxMmgtMy40YzAgLjQ1LS4zMjIuODI3LS43NDguOTA4em0uODgzLTEuMTIzYTEuMTIgMS4xMiAwIDAgMS0uODgzIDEuMTIzbC0uNjQtMy4zNGMtLjg3NC4xNjgtMS44NzcuOTQtMS44NzcgMi4yMTd6bTAgMS4zNzV2LTEuMzc1SC0uMlYxNi41em0wIDEuNXYtMS41SC0uMlYxOHptLS4yLS4yYy4xMSAwIC4yLjA5LjIuMkgtLjJBMy4yIDMuMiAwIDAgMCAzIDIxLjJ6bTE4IDBIM3YzLjRoMTh6bS0uMi4yYzAtLjExLjA5LS4yLjItLjJ2My40YTMuMiAzLjIgMCAwIDAgMy4yLTMuMnptMC0xLjVWMThoMy40di0xLjV6bTMuNCAwdi0xLjM3NWgtMy40VjE2LjV6bTAtMS4zNzVjMC0xLjI3OC0xLjAwMy0yLjA1LTEuODc3LTIuMjE3bC0uNjQgMy4zNGExLjEyIDEuMTIgMCAwIDEtLjg4My0xLjEyM3ptLTEuODc3LTIuMjE3YS45MjYuOTI2IDAgMCAxLS43NDgtLjkwOGgtMy40YzAgMi4xMSAxLjUxIDMuODY1IDMuNTA4IDQuMjQ4ek0yMS41NzUgMTJjMC0uNDUuMzIyLS44MjcuNzQ4LS45MDhsLS42NC0zLjM0QTQuMzI2IDQuMzI2IDAgMCAwIDE4LjE3NSAxMnptLjc0OC0uOTA4Yy44NzQtLjE2OCAxLjg3Ny0uOTQgMS44NzctMi4yMTdoLTMuNGMwLS43MjYuNTUxLTEuMDU5Ljg4My0xLjEyM3pNMjQuMiA4Ljg3NVY3LjVoLTMuNHYxLjM3NXpNMjAuOCA2djEuNWgzLjRWNnptLjIuMmEuMi4yIDAgMCAxLS4yLS4yaDMuNEEzLjIgMy4yIDAgMCAwIDIxIDIuOHptLTE4IDBoMThWMi44SDN6IixjbGFzc05hbWU6Ijk1MzYxODc1ZmlsbCIsbWFzazoidXJsKCM5MDliYSkifSkpLFNufHwoU249by5jcmVhdGVFbGVtZW50KCJwYXRoIix7c3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQiLHN0cm9rZVdpZHRoOjEuNyxkOiJNNy41IDguNjI1aDkiLGNsYXNzTmFtZToiOTgzZGVlM2ZzdHJva2UifSkpKX07ZnVuY3Rpb24gQW4oKXtyZXR1cm4gQW49T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxBbi5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIEluLGtuPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsQW4oe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MjQsaGVpZ2h0OjI0LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAyNCAyNCIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLENufHwoQ249by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJNOS4xOSA2LjM1Yy0yLjA0IDIuMjktMy40NCA1LjU4LTMuNTcgNS44OWwtMi4yNi0uOTdjLS42NS0uMjgtLjgxLTEuMTMtLjMxLTEuNjNsMy4wMS0zLjAxYy40Ny0uNDcgMS4xNS0uNjggMS44MS0uNTV6bTEuNDkgMTAuMTZjLjMuMy43NC4zOCAxLjEyLjIgMS4xNi0uNTQgMy42NS0xLjgxIDUuMjYtMy40MiA0LjU5LTQuNTkgNC42My04LjMzIDQuMzYtOS45M2EuOTguOTggMCAwIDAtLjc5LS43OWMtMS42LS4yNy01LjM0LS4yMy05LjkzIDQuMzYtMS42MSAxLjYxLTIuODcgNC4xLTMuNDIgNS4yNi0uMTguMzgtLjA5LjgzLjIgMS4xMnptNi45Ny0xLjdjLTIuMjkgMi4wNC01LjU4IDMuNDQtNS44OSAzLjU3bC45NyAyLjI2Yy4yOC42NSAxLjEzLjgxIDEuNjMuMzFsMy4wMS0zLjAxYy40Ny0uNDcuNjgtMS4xNS41NS0xLjgxem0tOC43MSAyLjZhMyAzIDAgMCAxLS44MiAyLjcxYy0uNzcuNzctMy4xNiAxLjM0LTQuNzEgMS42NC0uNjkuMTMtMS4zLS40OC0xLjE3LTEuMTcuMy0xLjU1Ljg2LTMuOTQgMS42NC00LjcxYTMgMyAwIDAgMSAyLjcxLS44MmMxLjE3LjIyIDIuMTMgMS4xOCAyLjM1IDIuMzVNMTMgOWMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yIn0pKSl9O2Z1bmN0aW9uIExuKCl7cmV0dXJuIExuPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sTG4uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBUbixqbj1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLExuKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjI0LGhlaWdodDoyNCxmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMjQgMjQiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxJbnx8KEluPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse3N0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VXaWR0aDoxLjcsZDoiTTUuNSAzLjM1QTIuMTUgMi4xNSAwIDAgMCAzLjM1IDUuNXYxMGEyLjE1IDIuMTUgMCAwIDAgMi4xNSAyLjE1aDEwYTIuMTUgMi4xNSAwIDAgMCAyLjE1LTIuMTV2LTEwYTIuMTUgMi4xNSAwIDAgMC0yLjE1LTIuMTV6TTEuNjUgNS41QTMuODUgMy44NSAwIDAgMSA1LjUgMS42NWgxMGEzLjg1IDMuODUgMCAwIDEgMy44NSAzLjg1djEwYTMuODUgMy44NSAwIDAgMS0zLjg1IDMuODVoLTEwYTMuODUgMy44NSAwIDAgMS0zLjg1LTMuODV6TTE0LjEgNy44OTlhLjg1Ljg1IDAgMCAxIDAgMS4yMDJsLTQgNGEuODUuODUgMCAwIDEtMS4yMDEgMGwtMi0yQS44NS44NSAwIDEgMSA4LjEgOS44OTlsMS40IDEuMzk5IDMuMzk5LTMuNGEuODUuODUgMCAwIDEgMS4yMDIgMFptNi41NSAxLjZhLjg1Ljg1IDAgMSAxIDEuNyAwdjYuODUxYTUuODUgNS44NSAwIDAgMS01Ljg1IDUuODVoLTdhLjg1Ljg1IDAgMCAxIDAtMS43aDdhNC4xNSA0LjE1IDAgMCAwIDQuMTUtNC4xNXoiLGNsYXNzTmFtZToiYWU1ZTUwNDFmaWxsIn0pKSl9O2Z1bmN0aW9uIFBuKCl7cmV0dXJuIFBuPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sUG4uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBObixNbj1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLFBuKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjI0LGhlaWdodDoyNCxmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMjQgMjQiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxUbnx8KFRuPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0xOS4zNSAxNi4zNVY0LjY1YTMgMyAwIDAgMC0zLTNINC42NWEzIDMgMCAwIDAtMyAzdjExLjdhMyAzIDAgMCAwIDMgM2gxMS43YTMgMyAwIDAgMCAzLTNNMTQuMSA3Ljg5OWEuODUuODUgMCAwIDEgMCAxLjIwMmwtNCA0YS44NS44NSAwIDAgMS0xLjIwMSAwbC0yLTJBLjg1Ljg1IDAgMSAxIDguMSA5Ljg5OWwxLjQgMS4zOTkgMy4zOTktMy40YS44NS44NSAwIDAgMSAxLjIwMiAwWm02LjU1IDEuNmEuODUuODUgMCAxIDEgMS43IDB2Ni44NTFhNS44NSA1Ljg1IDAgMCAxLTUuODUgNS44NWgtN2EuODUuODUgMCAwIDEgMC0xLjdoN2E0LjE1IDQuMTUgMCAwIDAgNC4xNS00LjE1eiIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpKX07ZnVuY3Rpb24gUm4oKXtyZXR1cm4gUm49T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxSbi5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFVuLHpuPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsUm4oe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLE5ufHwoTm49by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTIuNSAzQTEuNSAxLjUgMCAwIDAgMSA0LjV2MS4yNWMwIC4yNzYuMjI4LjQ5My40OTMuNTdhMS43NSAxLjc1IDAgMCAxIDAgMy4zNmMtLjI2NS4wNzctLjQ5My4yOTQtLjQ5My41N3YxLjI1QTEuNSAxLjUgMCAwIDAgMi41IDEzaDExYTEuNSAxLjUgMCAwIDAgMS41LTEuNXYtMS4yNWMwLS4yNzYtLjIyOC0uNDkzLS40OTMtLjU3YTEuNzUgMS43NSAwIDAgMSAwLTMuMzZjLjI2NS0uMDc3LjQ5My0uMjk0LjQ5My0uNTdWNC41QTEuNSAxLjUgMCAwIDAgMTMuNSAzek0xMSA2LjVINUEuNzUuNzUgMCAwIDEgNSA1aDZhLjc1Ljc1IDAgMCAxIDAgMS41IixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpfTtmdW5jdGlvbiBIbigpe3JldHVybiBIbj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LEhuLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgRm4sRG49ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixIbih7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksVW58fChVbj1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMS41IDJBMS41IDEuNSAwIDAgMCAwIDMuNXYxLjkzN2MuMDIuMjU4LjIzOC40Ni40OTMuNTI4QzEuMzYgNi4xOTUgMiA3LjAxOSAyIDhjMCAuOTgtLjY0IDEuODA0LTEuNTA2IDIuMDM1LS4yNTUuMDY4LS40NzQuMjctLjQ5My41MjhWMTIuNUExLjUgMS41IDAgMCAwIDEuNSAxNGgxM2ExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTEuOWMwLS4yNzYtLjIyOC0uNDkzLS40OTUtLjU2NS0uODY1LS4yMy0xLjUwNi0xLjA1NC0xLjUwNi0yLjAzNSAwLS45OC42NC0xLjgwNCAxLjUwNi0yLjAzNS4yNjctLjA3Mi40OTQtLjI4OS40OTQtLjU2NXYtMUgxNnYtLjlBMS41IDEuNSAwIDAgMCAxNC41IDJ6bTkuOTI5IDQuMDVINC41N2EuNzUuNzUgMCAxIDEgMC0xLjVoNi44NThhLjc1Ljc1IDAgMCAxIDAgMS41IixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpfTtmdW5jdGlvbiBCbigpe3JldHVybiBCbj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LEJuLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgVm4sR249ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixCbih7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksRm58fChGbj1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMCAzLjVBMS41IDEuNSAwIDAgMSAxLjUgMmgxM0ExLjUgMS41IDAgMCAxIDE2IDMuNXYuOWgtLjAwMnYxYzAgLjI3Ni0uMjI3LjQ5My0uNDk0LjU2NS0uODY2LjIzLTEuNTA2IDEuMDU0LTEuNTA2IDIuMDM1IDAgLjk4LjY0IDEuODA0IDEuNTA2IDIuMDM1LjI2Ny4wNzIuNDk0LjI4OS40OTQuNTY1djFIMTZ2LjlhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0xM0ExLjUgMS41IDAgMCAxIDAgMTIuNXYtMS45NGMuMDItLjI1Ny4yNC0uNDU3LjQ5My0uNTI1Ljg2NS0uMjMgMS41MDUtMS4wNTQgMS41MDUtMi4wMzUgMC0uOTgtLjY0LTEuODA0LTEuNTA1LTIuMDM1Qy4yMzkgNS44OTcuMDIgNS42OTcgMCA1LjQ0ek03LjUgOWEuNS41IDAgMCAxLS41LS41di00YS41LjUgMCAwIDEgLjUtLjVoMWEuNS41IDAgMCAxIC41LjV2NGEuNS41IDAgMCAxLS41LjV6bS41IDNjLS41NyAwLTEtLjQyOS0xLTFzLjQzLTEgMS0xIDEgLjQyOSAxIDEtLjQyOSAxLTEgMSIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpKX07ZnVuY3Rpb24gcW4oKXtyZXR1cm4gcW49T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxxbi5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFduLEtuPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIscW4oe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLFZufHwoVm49by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTEuNSAyQTEuNSAxLjUgMCAwIDAgMCAzLjV2MS45MzdjLjAyLjI1OC4yMzkuNDYuNDk0LjUyOC44NjUuMjMgMS41MDUgMS4wNTQgMS41MDUgMi4wMzUgMCAuOTgtLjY0IDEuODA0LTEuNTA1IDIuMDM1LS4yNTUuMDY4LS40NzQuMjctLjQ5NC41MjhWMTIuNUExLjUgMS41IDAgMCAwIDEuNSAxNGgxM2ExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTEuOWMwLS4yNzYtLjIyOC0uNDkzLS40OTUtLjU2NUMxNC42NCA5LjgwNSAxNCA4Ljk4MSAxNCA4YzAtLjk4LjY0LTEuODA0IDEuNTA1LTIuMDM1LjI2Ny0uMDcyLjQ5NS0uMjg5LjQ5NS0uNTY1VjMuNUExLjUgMS41IDAgMCAwIDE0LjUgMnptMTAuMDU0IDMuMzk3YS44NS44NSAwIDAgMSAuMDA0IDEuMjAybC0zLjk3NiA0YS44NS44NSAwIDAgMS0xLjIwNSAwbC0xLjc0LTEuNzVhLjg1Ljg1IDAgMSAxIDEuMjA2LTEuMTk4TDYuOTggOC43OTRsMy4zNzItMy4zOTNhLjg1Ljg1IDAgMCAxIDEuMjAyLS4wMDQiLGNsaXBSdWxlOiJldmVub2RkIn0pKSl9O2Z1bmN0aW9uIFpuKCl7cmV0dXJuIFpuPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sWm4uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBKbixZbixRbj1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLFpuKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxXbnx8KFduPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse3N0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlV2lkdGg6MS43LGQ6Ik0xMS44OSAxMS44ODkgOCA3Ljk5OW0wIDBMNC4xMTEgNC4xMTJNOC4wMDEgOGwzLjg4OS0zLjg5TTggOGwtMy44ODkgMy44ODkifSkpKX07ZnVuY3Rpb24gWG4oKXtyZXR1cm4gWG49T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxYbi5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyICRuLHRyLGVyLG5yPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsWG4oe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTcsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNyAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLEpufHwoSm49by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTQuMjIzIDMuM0gxNGEuNy43IDAgMCAxIC43Ljd2OGEuNy43IDAgMCAxLS43LjdINC4yMjNhLjcuNyAwIDAgMS0uNy0uN2gtMS4zYTIgMiAwIDAgMCAyIDJIMTRhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJINC4yMjNhMiAyIDAgMCAwLTIgMmgxLjNhLjcuNyAwIDAgMSAuNy0uNyIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpLFlufHwoWW49by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJNNS42NTggNy4xYTEuOSAxLjkgMCAwIDAtLjE3Mi0uNjcxIDEuNyAxLjcgMCAwIDAtLjQxOC0uNTcgMS45NSAxLjk1IDAgMCAwLS42NzItLjM5OSAyLjcgMi43IDAgMCAwLS45MjItLjE0NHEtLjc2IDAtMS4yODkuMzA4LS41MjcuMzA5LS44Ljg1Ni0uMjc0LjU0My0uMjc0IDEuMjU4di42NHEwIC41MjQuMTM3Ljk3My4xNC40NDUuNDMuNzgxLjI4OC4zMzIuNzM0LjUyLjQ0Ni4xODcgMS4wNTkuMTg3LjU3NCAwIC45ODgtLjE2LjQxOC0uMTY1LjY4My0uNDQxLjI3LS4yODIuMzk5LS42MzcuMTI5LS4zNi4xMjktLjc1VjcuODFIMy41M3YuOTAzaC45Mjl2LjIzNGEuODQuODQgMCAwIDEtLjEwNi40MTUuOC44IDAgMCAxLS4zMi4zMDggMS4xIDEuMSAwIDAgMS0uNTM5LjExN3EtLjM5NCAwLS42MzctLjE4M2ExLjA3IDEuMDcgMCAwIDEtLjM0Ny0uNTA4IDIuMyAyLjMgMCAwIDEtLjEwNi0uNzIzVjcuNzVxMC0uNjYuMjc0LTEuMDIuMjczLS4zNjIuNzg1LS4zNjMuMjAyIDAgLjM2My4wNTVhLjg2Ljg2IDAgMCAxIC40OC4zOS45LjkgMCAwIDEgLjEwMi4yOXptMi4zMjggMy42NDJWNS40MDlINi43MDF2NS4zMzN6bTIuNTI0IDBWOC43M2gyLjA1OHYtMUgxMC41MVY2LjQ0aDIuMjY1VjUuNDFoLTMuNTV2NS4zMzJ6In0pKSl9O2Z1bmN0aW9uIHJyKCl7cmV0dXJuIHJyPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0scnIuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBvcixpcj1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLHJyKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSwkbnx8KCRuPW8uY3JlYXRlRWxlbWVudCgiY2lyY2xlIix7Y3g6OCxjeTo4LHI6Ni43MjUsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZVdpZHRoOjEuM30pKSx0cnx8KHRyPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik01LjgxOCA3LjUzNGExLjEgMS4xIDAgMSAwIDAtMi4yIDEuMSAxLjEgMCAwIDAgMCAyLjJtNC4zNjQgMGExLjEgMS4xIDAgMSAwIDAtMi4yIDEuMSAxLjEgMCAwIDAgMCAyLjIiLGNsaXBSdWxlOiJldmVub2RkIn0pKSxlcnx8KGVyPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse3N0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlV2lkdGg6MS4zLGQ6Ik0xMCAxMGMtLjQ0LjYwNC0xLjE3MiAxLTIgMXMtMS41Ni0uMzk2LTItMSJ9KSkpfTtmdW5jdGlvbiBhcigpe3JldHVybiBhcj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGFyLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgdXIsc3I9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixhcih7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksb3J8fChvcj1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZU1pdGVybGltaXQ6MTAsc3Ryb2tlV2lkdGg6MS4zLGQ6Im01LjI3IDkuNTEyIDUuODgyLTUuODgyYTEuNjg1IDEuNjg1IDAgMCAxIDIuMzgzIDIuMzg0bC01LjkyOCA1LjkyOUEzLjMxNCAzLjMxNCAwIDAgMSAyLjkyIDcuMjU3bDQuMTQ5LTQuMTUifSkpKX07ZnVuY3Rpb24gY3IoKXtyZXR1cm4gY3I9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxjci5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIGxyLGZyLGRyLHByPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsY3Ioe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLHVyfHwodXI9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTIgMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMnptNC40ODEgNC4zMjNxLjE1LjMyMS4xNzIuNjcyaC0xLjI1YS45LjkgMCAwIDAtLjEwMS0uMjg5Ljg0Ljg0IDAgMCAwLS40OC0uMzkgMS4xIDEuMSAwIDAgMC0uMzY0LS4wNTVxLS41MTIgMC0uNzg1LjM2My0uMjc0LjM2LS4yNzQgMS4wMnYuNjI1cTAgLjQwMi4xMDYuNzIyLjExLjMyLjM0Ny41MDguMjQzLjE4My42MzcuMTg0LjMyNCAwIC41NC0uMTE4YS44LjggMCAwIDAgLjMyLS4zMDguODQuODQgMCAwIDAgLjEwNS0uNDE0di0uMjM1aC0uOTN2LS45MDJoMi4xNHYxLjA0cTAgLjM5LS4xMjguNzUtLjEzLjM1NC0uMzk4LjYzNmExLjkgMS45IDAgMCAxLS42ODQuNDQxcS0uNDE0LjE2LS45ODguMTYtLjYxNCAwLTEuMDU5LS4xODdhMiAyIDAgMCAxLS43MzQtLjUyIDIuMiAyLjIgMCAwIDEtLjQzLS43OCAzLjMgMy4zIDAgMCAxLS4xMzctLjk3NHYtLjY0cTAtLjcxNS4yNzQtMS4yNTguMjczLS41NDguOC0uODU1LjUyOC0uMzA5IDEuMjktLjMwOS41MjQgMCAuOTIxLjE0NC4zOTkuMTQ2LjY3Mi4zOTkuMjc0LjI1LjQxOC41N20yLjUtMS4wMnY1LjMzM0g3LjY5NlY1LjMwNHptMi41MjQgMy4zMjF2Mi4wMTJIMTAuMjJWNS4zMDRoMy41NXYxLjAzMWgtMi4yNjV2MS4yODloMi4wNTh2MXoiLGNsaXBSdWxlOiJldmVub2RkIn0pKSl9O2Z1bmN0aW9uIGhyKCl7cmV0dXJuIGhyPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0saHIuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciB2cix5cj1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLGhyKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxscnx8KGxyPW8uY3JlYXRlRWxlbWVudCgiY2lyY2xlIix7Y3g6OCxjeTo4LHI6Ni43MjUsZmlsbDoiY3VycmVudENvbG9yIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6MS4zfSkpLGZyfHwoZnI9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTUuODE4IDcuNTM0YTEuMSAxLjEgMCAxIDAgMC0yLjIgMS4xIDEuMSAwIDAgMCAwIDIuMm00LjM2NCAwYTEuMSAxLjEgMCAxIDAgMC0yLjIgMS4xIDEuMSAwIDAgMCAwIDIuMiIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpLGRyfHwoZHI9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7c3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VXaWR0aDoxLjMsZDoiTTEwIDEwYy0uNDQuNjA0LTEuMTcyIDEtMiAxcy0xLjU2LS4zOTYtMi0xIn0pKSl9O2Z1bmN0aW9uIGdyKCl7cmV0dXJuIGdyPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sZ3IuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBtcixicj1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLGdyKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSx2cnx8KHZyPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Im00LjM5NCAxNC43IDkuMzU2LTUuNGMxLS41NzcgMS0yLjAyIDAtMi41OThMNC4zOTQgMS4yOTlhMS41IDEuNSAwIDAgMC0yLjI1IDEuM3YzLjQzOGw0LjA1OSAxLjA4OGMuNDk0LjEzMi40OTQuODMzIDAgLjk2NmwtNC4wNiAxLjA4N3Y0LjIyNGExLjUgMS41IDAgMCAwIDIuMjUgMS4yOTkiLGNsaXBSdWxlOiJldmVub2RkIn0pKSl9O2Z1bmN0aW9uIHdyKCl7cmV0dXJuIHdyPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sd3IuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBfcixTcj1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLHdyKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjI0LGhlaWdodDoyNCxmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMjQgMjQiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxtcnx8KG1yPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse3N0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIixzdHJva2VXaWR0aDoxLjcsZDoibTE0IDE4LTYtNiA2LTYifSkpKX07ZnVuY3Rpb24geHIoKXtyZXR1cm4geHI9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSx4ci5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIEVyLENyPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIseHIoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MjQsaGVpZ2h0OjI0LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAyNCAyNCIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLF9yfHwoX3I9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTUuODQ5IDguNDczYTEuMjc1IDEuMjc1IDAgMCAxIDEuODAzIDBMMTIgMTIuODJsNC4zNDktNC4zNDhhMS4yNzUgMS4yNzUgMCAxIDEgMS44MDMgMS44MDNsLTUuMjUgNS4yNWExLjI3NSAxLjI3NSAwIDAgMS0xLjgwMyAwbC01LjI1LTUuMjVhMS4yNzUgMS4yNzUgMCAwIDEgMC0xLjgwM1oiLGNsaXBSdWxlOiJldmVub2RkIn0pKSl9O2Z1bmN0aW9uIE9yKCl7cmV0dXJuKDAsUy5qc3gpKCJzdmciLHt3aWR0aDoiMjQiLGhlaWdodDoiMjQiLHZpZXdCb3g6IjAgMCAyNCAyNCIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixjaGlsZHJlbjooMCxTLmpzeCkoImciLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgzLjUsIDguNSkgc2NhbGUoMS4zLCAxLjQpIixjaGlsZHJlbjooMCxTLmpzeCkoInBhdGgiLHtkOiJNNi4wNjgzNiA2LjgwNjY0TDEuMTkzMzYgMS45MzE2NEMwLjkzOTQ1MyAxLjcwMzEyIDAuOTM5NDUzIDEuMzIyMjcgMS4xOTMzNiAxLjA2ODM2QzEuNDIxODggMC44Mzk4NDQgMS44MDI3MyAwLjgzOTg0NCAyLjA1NjY0IDEuMDY4MzZMNi41IDUuNTM3MTFMMTAuOTQzNCAxLjA5Mzc1QzExLjE3MTkgMC44Mzk4NDQgMTEuNTUyNyAwLjgzOTg0NCAxMS44MDY2IDEuMDkzNzVDMTIuMDM1MiAxLjMyMjI3IDEyLjAzNTIgMS43MDMxMiAxMS44MDY2IDEuOTMxNjRMNi45MDYyNSA2LjgwNjY0QzYuNjc3NzMgNy4wNjA1NSA2LjI5Njg4IDcuMDYwNTUgNi4wNjgzNiA2LjgwNjY0WiIsZmlsbDoiY3VycmVudENvbG9yIn0pfSl9KX1mdW5jdGlvbiBBcigpe3JldHVybiBBcj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LEFyLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgSXIsa3I9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixBcih7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksRXJ8fChFcj1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMy41IDUuNWE0LjUgNC41IDAgMCAxIDkgMFY4bDIuMjkzIDIuMjkzYy42My42My4xODQgMS43MDctLjcwNyAxLjcwN0gxLjkxNGMtLjg5IDAtMS4zMzctMS4wNzctLjcwNy0xLjcwN0wzLjUgOHptNi41IDguMDhhMiAyIDAgMSAxLTQtLjA4aDMuOTk3eiIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpKX07ZnVuY3Rpb24gTHIoKXtyZXR1cm4gTHI9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxMci5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFRyLGpyPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsTHIoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLElyfHwoSXI9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTEzIDMuN0gzYS4zLjMgMCAwIDAtLjMuM3Y0LjYzMmwxLjkwNC0xLjA3YTIuODUgMi44NSAwIDAgMSAyLjc5MiAwbDIuMDQgMS4xNDZjLjM1LjE5Ny43NzguMTk3IDEuMTI3IDBMMTMuMyA3LjE3MVY0YS4zLjMgMCAwIDAtLjMtLjNNMi43IDEydi0xLjQxOGwyLjczNy0xLjUzOGExLjE1IDEuMTUgMCAwIDEgMS4xMjYgMGwyLjA0MSAxLjE0NmEyLjg1IDIuODUgMCAwIDAgMi43OTIgMEwxMy4zIDkuMTJWMTJhLjMuMyAwIDAgMS0uMy4zSDNhLjMuMyAwIDAgMS0uMy0uM00zIDJhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJ6bTcuMSA1LjJhMS4xIDEuMSAwIDEgMCAwLTIuMiAxLjEgMS4xIDAgMCAwIDAgMi4yIixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpfTtmdW5jdGlvbiBQcigpe3JldHVybiBQcj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LFByLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgTnIsTXI9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixQcih7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksVHJ8fChUcj1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMyAyYTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0yem0zLjU1IDMuMTA2IDMuOTYyIDIuMjg4YS43LjcgMCAwIDEgMCAxLjIxMkw2LjU1IDEwLjg5NGEuNy43IDAgMCAxLTEuMDUtLjYwNlY1LjcxMmEuNy43IDAgMCAxIDEuMDUtLjYwNiIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpKX07ZnVuY3Rpb24gUnIoKXtyZXR1cm4gUnI9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxSci5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFVyPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsUnIoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLE5yfHwoTnI9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTcuNjcgMi41MDdhLjg1Ljg1IDAgMCAxIDAgMS4yMDJMMy41MjQgNy44NTVhMi40NjQgMi40NjQgMCAwIDAgMy40ODUgMy40ODRsNS45MjUtNS45MjZhLjgzNi44MzYgMCAwIDAtMS4xODEtMS4xODJMNS44NyAxMC4xMTNhLjg1Ljg1IDAgMCAxLTEuMi0xLjIwM2w1Ljg4Mi01Ljg4MmEyLjUzNiAyLjUzNiAwIDAgMSAzLjU4NSAzLjU4Nkw4LjIwMiAxMi41NWE0LjE2NCA0LjE2NCAwIDAgMS01Ljg4OS01Ljg4OGwuMDA2LS4wMDYgNC4xNDktNC4xNDlhLjg1Ljg1IDAgMCAxIDEuMjAyIDAiLGNsaXBSdWxlOiJldmVub2RkIn0pKSl9LHpyPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY29sb3Isbj0oMCxKLkEpKCkscj1TdHJpbmcobiYmZSYmbltlXXx8bi5pY29uRGVmYXVsdCk7cmV0dXJuKDAsUy5qc3gpKCJzdmciLHt3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHZpZXdCb3g6IjAgMCAxNiAxNiIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixjaGlsZHJlbjooMCxTLmpzeCkoInBhdGgiLHtkOiJNMTIuMzQ3NyA0LjUwNjk2SDguMDkyMTRDNS4zMzI2NCA0LjUwNjk2IDMuMDk1NjIgNi43NDM5OCAzLjA5NTYyIDkuNTAzNDhDMy4wOTU2MiAxMi4yNjMgNS4zMzI2NCAxNC41IDguMDkyMTQgMTQuNUMxMC4zODQgMTQuNSAxMi4zMTU1IDEyLjk1NjkgMTIuOTA0MyAxMC44NTNNMTIuMzQ3NyA0LjUwNjk2TDkuMzQwNTEgMS41TTEyLjM0NzcgNC41MDY5Nkw5LjM0MDUxIDcuNTE0MTIiLHN0cm9rZTpyLHN0cm9rZVdpZHRoOiIxLjciLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQiLHN0eWxlOntmaWxsOiJub25lIn19KX0pfTtmdW5jdGlvbiBIcih0KXt2YXIgZT10LmNvbG9yLG49KDAsSi5BKSgpLHI9U3RyaW5nKG4mJmUmJm5bZV18fChudWxsPT1uP3ZvaWQgMDpuLmFscGhhV2hpdGUxMDApKTtyZXR1cm4oMCxTLmpzeCkoInN2ZyIse2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6IjIwIixoZWlnaHQ6IjIwIix2aWV3Qm94OiIwIDAgMjAgMjAiLGZpbGw6Im5vbmUiLGNoaWxkcmVuOigwLFMuanN4KSgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoiTTEwLjkyNCAxLjEyNGExLjA2MiAxLjA2MiAwIDAgMCAwIDEuNTAybDEuOTQ1IDEuOTQ1aC0yLjc1NGE3LjMwOCA3LjMwOCAwIDEgMCA3LjAzOSA5LjI4MSAxLjA2MyAxLjA2MyAwIDAgMC0yLjA0Ny0uNTcyIDUuMTgzIDUuMTgzIDAgMSAxLTQuOTkyLTYuNTg0aDIuNzU1bC0xLjk0NiAxLjk0NWExLjA2MiAxLjA2MiAwIDEgMCAxLjUwMyAxLjUwM2wzLjc1OS0zLjc1OWExLjA2MiAxLjA2MiAwIDAgMCAwLTEuNTAzbC0zLjc1OS0zLjc1OGExLjA2MyAxLjA2MyAwIDAgMC0xLjUwMyAwWiIsZmlsbDpyfSl9KX1mdW5jdGlvbiBGcigpe3JldHVybigwLFMuanN4cykoInN2ZyIse2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6IjIwIixoZWlnaHQ6IjIwIix2aWV3Qm94OiIwIDAgMjAgMjAiLGZpbGw6Im5vbmUiLGNoaWxkcmVuOlsoMCxTLmpzeCkoInBhdGgiLHtjbGFzc05hbWU6ImJhY2tncm91bmQiLGQ6Ik0xMCAxLjI1QzE0LjgzMjUgMS4yNSAxOC43NSA1LjE2NzUxIDE4Ljc1IDEwQzE4Ljc1IDE0LjgzMjUgMTQuODMyNSAxOC43NSAxMCAxOC43NUM1LjE2NzUxIDE4Ljc1IDEuMjUgMTQuODMyNSAxLjI1IDEwQzEuMjUgNS4xNjc1MSA1LjE2NzUxIDEuMjUgMTAgMS4yNVoifSksKDAsUy5qc3gpKCJwYXRoIix7Y2xhc3NOYW1lOiJpY29uIixkOiJNMTAgMTIuNUMxMC44OTIyIDEyLjUgMTEuNTYyNSAxMy4xNzAzIDExLjU2MjUgMTQuMDYyNUMxMS41NjI1IDE0Ljk1NDcgMTAuODkyMiAxNS42MjUgMTAgMTUuNjI1QzkuMTA3ODEgMTUuNjI1IDguNDM3NSAxNC45NTQ3IDguNDM3NSAxNC4wNjI1QzguNDM3NSAxMy4xNzAzIDkuMTA3ODEgMTIuNSAxMCAxMi41Wk0xMC4xNjAyIDQuMzc1QzEwLjkwNzIgNC4zNzUxIDExLjQ4NyA1LjAyNjQxIDExLjQwMTQgNS43Njg1NUwxMC44NzExIDEwLjM3MDFDMTAuODE5OSAxMC44MTIzIDEwLjQ0NTEgMTEuMTQ1NSAxMCAxMS4xNDU1QzkuNTU0ODcgMTEuMTQ1NSA5LjE4MDEgMTAuODEyMyA5LjEyODkxIDEwLjM3MDFMOC41OTg2MyA1Ljc2ODU1QzguNTEzIDUuMDI2NDEgOS4wOTI4MSA0LjM3NTEgOS44Mzk4NCA0LjM3NUgxMC4xNjAyWiJ9KV19KX12YXIgRHI9WyJ3aWR0aCIsImhlaWdodCIsImNvbG9yIl07ZnVuY3Rpb24gQnIoKXtyZXR1cm4gQnI9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxCci5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVnIodCl7dmFyIGU9dC53aWR0aCxuPXZvaWQgMD09PWU/MjA6ZSxyPXQuaGVpZ2h0LG89dm9pZCAwPT09cj8yMDpyLGk9dC5jb2xvcixhPXZvaWQgMD09PWk/ImN1cnJlbnRDb2xvciI6aSx1PWZ1bmN0aW9uKHQsZSl7aWYobnVsbD09dClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpe2lmKC0xIT09ZS5pbmRleE9mKHIpKWNvbnRpbnVlO25bcl09dFtyXX1yZXR1cm4gbn0odCxEcik7cmV0dXJuKDAsUy5qc3hzKSgic3ZnIixCcih7Zm9jdXNhYmxlOiJmYWxzZSIsImFyaWEtaGlkZGVuIjoidHJ1ZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDpuLGhlaWdodDpvLHZpZXdCb3g6IjAgMCAyMCAyMCIsZmlsbDoibm9uZSJ9LHUse2NoaWxkcmVuOlsoMCxTLmpzeCkoInBhdGgiLHtkOiJNMTAuMDM3IDEuMzJ2Ni43ODhoNi45MTN2OS40NjNIMy4yVjEuMzJoNi44MzdaIixmaWxsOmF9KSwoMCxTLmpzeCkoInBhdGgiLHtkOiJtMTMuMTYyIDEuMzIgMy43ODggMy43MjV2MS4xODhoLTUuMDM4VjEuMzJoMS4yNVoiLGZpbGw6YX0pXX0pKX12YXIgR3I9WyJ3aWR0aCIsImhlaWdodCIsImNvbG9yIl07ZnVuY3Rpb24gcXIoKXtyZXR1cm4gcXI9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxxci5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gV3IodCl7dmFyIGU9dC53aWR0aCxuPXZvaWQgMD09PWU/MjA6ZSxyPXQuaGVpZ2h0LG89dm9pZCAwPT09cj8yMDpyLGk9dC5jb2xvcixhPXZvaWQgMD09PWk/ImN1cnJlbnRDb2xvciI6aSx1PWZ1bmN0aW9uKHQsZSl7aWYobnVsbD09dClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpe2lmKC0xIT09ZS5pbmRleE9mKHIpKWNvbnRpbnVlO25bcl09dFtyXX1yZXR1cm4gbn0odCxHcik7cmV0dXJuKDAsUy5qc3gpKCJzdmciLHFyKHtmb2N1c2FibGU6ImZhbHNlIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOm4saGVpZ2h0Om8sdmlld0JveDoiMCAwIDIwIDIwIixmaWxsOiJub25lIn0sdSx7Y2hpbGRyZW46KDAsUy5qc3gpKCJwYXRoIix7ZDoiTTE4LjQ3NSAxMS4yNUg2LjA4N2MtLjM3NCAwLS43MTIuMi0uOS41MjVsLTIuMDYyIDMuNTYzVjQuMzc1aDMuMTg4bDEuNDM3IDIuNWg2LjYyNXYyLjIzN2gxLjg3NVY1LjYyNUEuNjE5LjYxOSAwIDAgMCAxNS42MjUgNUg4LjgzOEw3LjY1IDIuOTM4YS44ODEuODgxIDAgMCAwLS43NjMtLjQzOEgxLjg3NmEuNjE5LjYxOSAwIDAgMC0uNjI1LjYyNVYxNy41aDEzLjkxMmMuMzc1IDAgLjcxMy0uMi45LS41MjVsMi44NjMtNC45NWEuNTE2LjUxNiAwIDAgMC0uNDUtLjc3NVoiLGZpbGw6YX0pfSkpfXZhciBLcj1bIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiXTtmdW5jdGlvbiBacigpe3JldHVybiBacj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LFpyLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBKcih0KXt2YXIgZT10LndpZHRoLG49dm9pZCAwPT09ZT8yMDplLHI9dC5oZWlnaHQsbz12b2lkIDA9PT1yPzIwOnIsaT10LmNvbG9yLGE9dm9pZCAwPT09aT8iY3VycmVudENvbG9yIjppLHU9ZnVuY3Rpb24odCxlKXtpZihudWxsPT10KXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwodCxyKSl7aWYoLTEhPT1lLmluZGV4T2YocikpY29udGludWU7bltyXT10W3JdfXJldHVybiBufSh0LEtyKTtyZXR1cm4oMCxTLmpzeCkoInN2ZyIsWnIoe2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6bixoZWlnaHQ6byx2aWV3Qm94OiIwIDAgMjAgMjAiLGZpbGw6Im5vbmUifSx1LHtjaGlsZHJlbjooMCxTLmpzeCkoInBhdGgiLHtkOiJNMTcuNSAyLjVoLTE1Yy0uNjg4IDAtMS4yNS41NjMtMS4yNSAxLjI1djEyLjVjMCAuNjg4LjU2MyAxLjI1IDEuMjUgMS4yNWgxNWMuNjg4IDAgMS4yNS0uNTYzIDEuMjUtMS4yNVYzLjc1YzAtLjY4OC0uNTYzLTEuMjUtMS4yNS0xLjI1Wm0tMTQuMzc1IDVoMy4yODd2My4xMjVIMy4xMjVWNy41Wm01LjE2MiAwSDExLjd2My4xMjVIOC4yODhWNy41Wm01LjMgMGgzLjI4OHYzLjEyNWgtMy4yODdWNy41Wk0zLjEyNiAxNS42MjVWMTIuNWgzLjI4N3YzLjEyNUgzLjEyNVptNS4xNjIgMFYxMi41SDExLjd2My4xMjVIOC4yODhabTUuMyAwVjEyLjVoMy4yODh2My4xMjVoLTMuMjg3WiIsZmlsbDphfSl9KSl9dmFyIFlyPVsid2lkdGgiLCJoZWlnaHQiLCJjb2xvciJdO2Z1bmN0aW9uIFFyKCl7cmV0dXJuIFFyPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sUXIuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIFhyKHQpe3ZhciBlPXQud2lkdGgsbj12b2lkIDA9PT1lPzIwOmUscj10LmhlaWdodCxvPXZvaWQgMD09PXI/MjA6cixpPXQuY29sb3IsYT12b2lkIDA9PT1pPyJjdXJyZW50Q29sb3IiOmksdT1mdW5jdGlvbih0LGUpe2lmKG51bGw9PXQpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIHQpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpKXtpZigtMSE9PWUuaW5kZXhPZihyKSljb250aW51ZTtuW3JdPXRbcl19cmV0dXJuIG59KHQsWXIpO3JldHVybigwLFMuanN4KSgic3ZnIixRcih7Zm9jdXNhYmxlOiJmYWxzZSIsImFyaWEtaGlkZGVuIjoidHJ1ZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDpuLGhlaWdodDpvLHZpZXdCb3g6IjAgMCAyMCAyMCIsZmlsbDoibm9uZSJ9LHUse2NoaWxkcmVuOigwLFMuanN4KSgicGF0aCIse2ZpbGw6YSxkOiJNNS43MTMgNS43NzUgMi41IDE0Ljk4OGgxLjhsLjc1LTIuMjg4SDguNWwuNzc1IDIuMjg4aDEuODEzTDcuOCA1Ljc3NUg1LjdoLjAxM1ptLS4yMTMgNS42LjM4OC0xLjE3NWMuMTUtLjQ3NS4zLTEuMDM3LjQ3NC0xLjY2Mi4xMTMtLjQ1LjI1LS45NS4zODgtMS40ODguMTM4LjUyNS4yNzUgMS4wMjUuNCAxLjQ3NS4xNzUuNjI1LjMzNyAxLjE4OC41IDEuNjc1bC40IDEuMTc1SDUuNVptMTEuNzUtMi4xNWMtLjE3NS0uMy0uMzg3LS41NS0uNjYzLS43MjVhMi41ODQgMi41ODQgMCAwIDAtLjkxMi0uMzg3QTQuNTE3IDQuNTE3IDAgMCAwIDE0LjY4NyA4Yy0uNDYyIDAtLjg4Ny4wNjMtMS4yODcuMi0uMzg4LjEzOC0uNzM4LjMyNS0xLjAxMy42LS4yNzQuMjc1LS41LjYtLjYyNSAxLjAxMmwxLjQ4OC4zYy4wNjMtLjE1LjE1LS4zLjI3NS0uNDI1LjEyNS0uMTM3LjI4Ny0uMjM3LjQ3NS0uMzI0LjItLjA4OC40MjUtLjEyNS43LS4xMjUuMjc1IDAgLjQ4OC4wMzcuNjYzLjEyNWEuODcuODcgMCAwIDEgLjQuMzYyYy4wODcuMTYyLjEzNy4zNS4xMzcuNTc1di4wMjVhLjM5MS4zOTEgMCAwIDEtLjE3NS4zNWMtLjExMi4wNzUtLjMuMTI1LS41NS4xNjItLjI1LjAzOC0uNTc1LjA3NS0uOTc1LjExM2E3LjkzIDcuOTMgMCAwIDAtLjk3NS4xNjNjLS4zMTMuMDc1LS42LjE4Ny0uODUuMzUtLjI1LjE1LS40NS4zNjItLjU4OC42MTItLjE1LjI1LS4yMjUuNTc1LS4yMjUuOTc1IDAgLjQ1LjEuODM3LjMgMS4xNS4yLjMxMy40NzYuNTM4LjgyNS43LjM1LjE2Mi43NS4yMzcgMS4xNzYuMjM3LjM2MiAwIC42NzUtLjA1LjkzNy0uMTVhMi4wMzcgMi4wMzcgMCAwIDAgMS4wODctLjkzN2guMDYzVjE1aDEuNTM4di00LjYxM2MwLS40NjItLjA4OC0uODUtLjI1LTEuMTVsLjAxMi0uMDEyWm0tMS4zMzggMy4yODdjMCAuMjUtLjA2Mi40ODgtLjIuNzEzYTEuNjI2IDEuNjI2IDAgMCAxLS41NjIuNTI1Yy0uMjM4LjEzNy0uNTI1LjItLjg2My4yLS4yMjUgMC0uNDI1LS4wMzctLjYtLjFhMS4wNCAxLjA0IDAgMCAxLS40MTItLjMuODE4LjgxOCAwIDAgMS0uMTUtLjVjMC0uMjEzLjA1LS4zODguMTYyLS41MjVhMS4wOCAxLjA4IDAgMCAxIC40NS0uMzEzYy4xODgtLjA3NS40MTMtLjEyNC42NS0uMTYyLjEgMCAuMjI2LS4wMjUuMzc1LS4wNS4xNS0uMDI1LjMtLjA1LjQ2My0uMDc1LjE2Mi0uMDI1LjMtLjA2My40MjUtLjEuMTI1LS4wMzcuMjEzLS4wNzUuMjc1LS4xMTJ2LjgxMmwtLjAxMy0uMDEzWiJ9KX0pKX12YXIgJHIsdG8sZW89WyJ3aWR0aCIsImhlaWdodCIsImNvbG9yIl07ZnVuY3Rpb24gbm8oKXtyZXR1cm4gbm89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxuby5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcm8odCl7dmFyIGU9dC53aWR0aCxuPXZvaWQgMD09PWU/MjA6ZSxyPXQuaGVpZ2h0LG89dm9pZCAwPT09cj8yMDpyLGk9dC5jb2xvcixhPXZvaWQgMD09PWk/ImN1cnJlbnRDb2xvciI6aSx1PWZ1bmN0aW9uKHQsZSl7aWYobnVsbD09dClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpe2lmKC0xIT09ZS5pbmRleE9mKHIpKWNvbnRpbnVlO25bcl09dFtyXX1yZXR1cm4gbn0odCxlbyk7cmV0dXJuKDAsUy5qc3gpKCJzdmciLG5vKHtmb2N1c2FibGU6ImZhbHNlIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOm4saGVpZ2h0Om8sdmlld0JveDoiMCAwIDIwIDIwIixmaWxsOiJub25lIn0sdSx7Y2hpbGRyZW46KDAsUy5qc3gpKCJwYXRoIix7ZmlsbDphLGQ6Ik01LjczIDE4Ljc1Yy0xLjcxNSAwLTIuNjA1LS45MDUtMi42MDUtMi42NTFWMy45YzAtMS43MzguODktMi42NTEgMi42MDYtMi42NTFoMy42NjR2Ni4xMWMwIDEuMDExLjQ4IDEuNTA0IDEuNDgzIDEuNTA0aDUuOTk3VjE2LjFjMCAxLjczOC0uODkgMi42NTEtMi42MDYgMi42NTFINS43MzFabTUuMjkyLTExLjA2NmMtLjMwNCAwLS40NjUtLjE1My0uNDY1LS40NlYxLjMzYy4zNjkuMDQ4LjczLjMyMyAxLjEyMy43MjdsNC4zODUgNC40ODZjLjQxLjQyOS42NzQuNzc2LjcyMiAxLjE0aC01Ljc2NVoifSl9KSl9ZnVuY3Rpb24gb28odCl7dmFyIGU9dC5jb2xvcixuPSgwLEouQSkoKSxyPVN0cmluZyhuJiZlJiZuW2VdfHxuLmljb25PbkludmVyc2UpO3JldHVybigwLFMuanN4cykoInN2ZyIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxNiIsdmlld0JveDoiMCAwIDE2IDE2IixmaWxsOiJub25lIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGNoaWxkcmVuOlsoMCxTLmpzeCkoInBhdGgiLHtkOiJNNy45OTk5NCAxMlY3IixzdHJva2U6cixzdHJva2VXaWR0aDoiMS43In0pLCgwLFMuanN4KSgiY2lyY2xlIix7Y3g6IjEuMSIsY3k6IjEuMSIscjoiMS4xIix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSA2Ljg5OTkzIDYuMjAwMikiLGZpbGw6cixzdHJva2VXaWR0aDoiMCIsc3Ryb2tlOiJub25lIn0pLCgwLFMuanN4KSgiY2lyY2xlIix7Y3g6IjgiLGN5OiI4IixyOiI2LjUiLHN0cm9rZTpyLHN0cm9rZVdpZHRoOiIxLjc1In0pXX0pfWZ1bmN0aW9uIGlvKCl7cmV0dXJuIGlvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0saW8uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBhbyx1bz1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLGlvKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSwkcnx8KCRyPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse3N0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VXaWR0aDoxLjcsZDoibTEuOTk5IDIgNSA1In0pKSx0b3x8KHRvPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse3N0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VXaWR0aDoxLjc1LGQ6Ik02LjQ5OSAxLjVoLTV2NW03LjUgMi41IDUgNW0uNS00LjV2NWgtNSJ9KSkpfTtmdW5jdGlvbiBzbygpe3JldHVybigwLFMuanN4KSgic3ZnIix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix2aWV3Qm94OiIwIDAgMTYgMTYiLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdHJhbnNmb3JtOiJtYXRyaXgoLTEsMCwwLDEsMCwwKSIsY2hpbGRyZW46KDAsUy5qc3gpKCJwYXRoIix7ZDoiTTEzLjU5IDUuMzFoLTEuN2wzLjMtMy4zLTEuMi0xLjItMy4zIDMuM3YtMS43YS44NS44NSAwIDEgMC0xLjcgMHY0LjZoNC42YS44NS44NSAwIDEgMCAwLTEuN00xLjU3IDkuODRjMCAuNDcuMzguODUuODUuODVoMS43bC0zLjMgMy4zIDEuMiAxLjIgMy4zLTMuM3YxLjdhLjg1Ljg1IDAgMSAwIDEuNyAwdi00LjZoLTQuNmEuODUuODUgMCAwIDAtLjg1Ljg1IixmaWxsOiJjdXJyZW50Q29sb3IifSl9KX1mdW5jdGlvbiBjbygpe3JldHVybiBjbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGNvLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgbG8sZm89ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixjbyh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksYW98fChhbz1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCIsc3Ryb2tlV2lkdGg6MS41LGQ6Im05IDcgNC41LTQuNW0tNCAwaDR2NE03IDlsLTQuNSA0LjVtNCAwaC00di00In0pKSl9O2Z1bmN0aW9uIHBvKCl7cmV0dXJuKDAsUy5qc3gpKCJzdmciLHt3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHZpZXdCb3g6IjAgMCAxNiAxNiIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixjaGlsZHJlbjooMCxTLmpzeCkoInBhdGgiLHtkOiJNMyA2LjVDMi4xNyA2LjUgMS41IDcuMTcgMS41IDhDMS41IDguODMgMi4xNyA5LjUgMyA5LjVDMy44MyA5LjUgNC41IDguODMgNC41IDhDNC41IDcuMTcgMy44MyA2LjUgMyA2LjVaTTggNi41QzcuMTcgNi41IDYuNSA3LjE3IDYuNSA4QzYuNSA4LjgzIDcuMTcgOS41IDggOS41QzguODMgOS41IDkuNSA4LjgzIDkuNSA4QzkuNSA3LjE3IDguODMgNi41IDggNi41Wk0xMyA2LjVDMTIuMTcgNi41IDExLjUgNy4xNyAxMS41IDhDMTEuNSA4LjgzIDEyLjE3IDkuNSAxMyA5LjVDMTMuODMgOS41IDE0LjUgOC44MyAxNC41IDhDMTQuNSA3LjE3IDEzLjgzIDYuNSAxMyA2LjVaIixmaWxsOiJjdXJyZW50Q29sb3IifSl9KX1mdW5jdGlvbiBobygpe3JldHVybigwLFMuanN4KSgic3ZnIix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix2aWV3Qm94OiIwIDAgMTYgMTYiLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsY2hpbGRyZW46KDAsUy5qc3gpKCJnIix7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoNiwgMikiLGNoaWxkcmVuOigwLFMuanN4KSgicGF0aCIse2Q6Ik0yIDguOTY4NzVDMi40MzE2NCA4Ljk2ODc1IDIuODEyNSA5LjIyMjY2IDMuMDQxMDIgOS41NzgxMkMzLjI2OTUzIDkuOTU4OTggMy4yNjk1MyAxMC40NDE0IDMuMDQxMDIgMTAuNzk2OUMyLjgxMjUgMTEuMTc3NyAyLjQzMTY0IDExLjQwNjIgMiAxMS40MDYyQzEuNTQyOTcgMTEuNDA2MiAxLjE2MjExIDExLjE3NzcgMC45MzM1OTQgMTAuNzk2OUMwLjcwNTA3OCAxMC40NDE0IDAuNzA1MDc4IDkuOTU4OTggMC45MzM1OTQgOS41NzgxMkMxLjE2MjExIDkuMjIyNjYgMS41NDI5NyA4Ljk2ODc1IDIgOC45Njg3NVpNMiA0LjkwNjI1QzIuNDMxNjQgNC45MDYyNSAyLjgxMjUgNS4xNjAxNiAzLjA0MTAyIDUuNTE1NjJDMy4yNjk1MyA1Ljg5NjQ4IDMuMjY5NTMgNi4zNzg5MSAzLjA0MTAyIDYuNzM0MzhDMi44MTI1IDcuMTE1MjMgMi40MzE2NCA3LjM0Mzc1IDIgNy4zNDM3NUMxLjU0Mjk3IDcuMzQzNzUgMS4xNjIxMSA3LjExNTIzIDAuOTMzNTk0IDYuNzM0MzhDMC43MDUwNzggNi4zNzg5MSAwLjcwNTA3OCA1Ljg5NjQ4IDAuOTMzNTk0IDUuNTE1NjJDMS4xNjIxMSA1LjE2MDE2IDEuNTQyOTcgNC45MDYyNSAyIDQuOTA2MjVaTTMuMjE4NzUgMi4wNjI1QzMuMjE4NzUgMi41MTk1MyAyLjk2NDg0IDIuOTAwMzkgMi42MDkzOCAzLjEyODkxQzIuMjI4NTIgMy4zNTc0MiAxLjc0NjA5IDMuMzU3NDIgMS4zOTA2MiAzLjEyODkxQzEuMDA5NzcgMi45MDAzOSAwLjc4MTI1IDIuNTE5NTMgMC43ODEyNSAyLjA2MjVDMC43ODEyNSAxLjYzMDg2IDEuMDA5NzcgMS4yNSAxLjM5MDYyIDEuMDIxNDhDMS43NDYwOSAwLjc5Mjk2OSAyLjIyODUyIDAuNzkyOTY5IDIuNjA5MzggMS4wMjE0OEMyLjk2NDg0IDEuMjUgMy4yMTg3NSAxLjYzMDg2IDMuMjE4NzUgMi4wNjI1WiIsZmlsbDoiY3VycmVudENvbG9yIn0pfSl9KX1mdW5jdGlvbiB2bygpe3JldHVybigwLFMuanN4KSgic3ZnIix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix2aWV3Qm94OiIwIDAgMTYgMTYiLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsY2hpbGRyZW46KDAsUy5qc3gpKCJwYXRoIix7ZDoiTTEwLjg1IDMuOTk5ODRDMTAuODUgNC4yMTk4NCAxMC43NyA0LjQzOTg0IDEwLjYgNC41OTk4NEw3LjIwMDA1IDcuOTk5ODRMMTAuNiAxMS4zOTk4QzEwLjkzIDExLjcyOTggMTAuOTMgMTIuMjY5OCAxMC42IDEyLjU5OThDMTAuMjcgMTIuOTI5OCA5LjczMDA1IDEyLjkyOTggOS40MDAwNSAxMi41OTk4TDQuODAwMDUgNy45OTk4NEw5LjQwMDA1IDMuMzk5ODRDOS43MzAwNSAzLjA2OTg0IDEwLjI3IDMuMDY5ODQgMTAuNiAzLjM5OTg0QzEwLjc3IDMuNTY5ODQgMTAuODUgMy43Nzk4NCAxMC44NSAzLjk5OTg0WiIsZmlsbDoiY3VycmVudENvbG9yIn0pfSl9ZnVuY3Rpb24geW8oKXtyZXR1cm4oMCxTLmpzeCkoInN2ZyIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxNiIsdmlld0JveDoiMCAwIDE2IDE2IixmaWxsOiJub25lIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGNoaWxkcmVuOigwLFMuanN4KSgicGF0aCIse2Q6Ik01LjE1IDMuOTk5ODRDNS4xNSA0LjIxOTg0IDUuMjMgNC40Mzk4NCA1LjQgNC41OTk4NEw4Ljc5OTk1IDcuOTk5ODRMNS40IDExLjM5OThDNS4wNyAxMS43Mjk4IDUuMDcgMTIuMjY5OCA1LjQgMTIuNTk5OEM1LjczIDEyLjkyOTggNi4yNjk5NSAxMi45Mjk4IDYuNTk5OTUgMTIuNTk5OEwxMS4yIDcuOTk5ODRMNi41OTk5NSAzLjM5OTg0QzYuMjY5OTUgMy4wNjk4NCA1LjczIDMuMDY5ODQgNS40IDMuMzk5ODRDNS4yMyAzLjU2OTg0IDUuMTUgMy43Nzk4NCA1LjE1IDMuOTk5ODRaIixmaWxsOiJjdXJyZW50Q29sb3IifSl9KX1mdW5jdGlvbiBnbygpe3JldHVybigwLFMuanN4KSgic3ZnIix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix2aWV3Qm94OiIwIDAgMTYgMTYiLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsY2hpbGRyZW46KDAsUy5qc3gpKCJwYXRoIix7ZDoiTTQuMDAwMDkgNS4xNDk5QzQuMjIwMDkgNS4xNDk5IDQuNDQwMDkgNS4yMjk5IDQuNjAwMDkgNS4zOTk5TDguMDAwMDkgOC43OTk5TDExLjQwMDEgNS4zOTk5QzExLjczMDEgNS4wNjk5IDEyLjI3MDEgNS4wNjk5IDEyLjYwMDEgNS4zOTk5QzEyLjkzMDEgNS43Mjk5IDEyLjkzMDEgNi4yNjk5IDEyLjYwMDEgNi41OTk5TDguMDAwMDkgMTEuMTk5OUwzLjQwMDA5IDYuNTk5OUMzLjA3MDA5IDYuMjY5OSAzLjA3MDA5IDUuNzI5OSAzLjQwMDA5IDUuMzk5OUMzLjU3MDA5IDUuMjI5OSAzLjc4MDA5IDUuMTQ5OSA0LjAwMDA5IDUuMTQ5OVoiLGZpbGw6ImN1cnJlbnRDb2xvciJ9KX0pfWZ1bmN0aW9uIG1vKCl7cmV0dXJuKDAsUy5qc3gpKCJzdmciLHt3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHZpZXdCb3g6IjAgMCAxNiAxNiIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixjaGlsZHJlbjooMCxTLmpzeCkoInBhdGgiLHtkOiJNMTMuMjUgMy45NUwxMi4wNSAyLjc1TDggNi44TDMuOTUgMi43NUwyLjc1IDMuOTVMNi44IDhMMi43NSAxMi4wNUwzLjk1IDEzLjI1TDggOS4yTDEyLjA1IDEzLjI1TDEzLjI1IDEyLjA1TDkuMiA4TDEzLjI1IDMuOTVaIixmaWxsOiJjdXJyZW50Q29sb3IifSl9KX1mdW5jdGlvbiBibygpe3JldHVybigwLFMuanN4KSgic3ZnIix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix2aWV3Qm94OiIwIDAgMTYgMTYiLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsY2hpbGRyZW46KDAsUy5qc3gpKCJwYXRoIix7ZDoiTTEzLjU5IDUuMzFoLTEuN2wzLjMtMy4zLTEuMi0xLjItMy4zIDMuM3YtMS43YS44NS44NSAwIDEgMC0xLjcgMHY0LjZoNC42YS44NS44NSAwIDEgMCAwLTEuN00xLjU3IDkuODRjMCAuNDcuMzguODUuODUuODVoMS43bC0zLjMgMy4zIDEuMiAxLjIgMy4zLTMuM3YxLjdhLjg1Ljg1IDAgMSAwIDEuNyAwdi00LjZoLTQuNmEuODUuODUgMCAwIDAtLjg1Ljg1IixmaWxsOiJjdXJyZW50Q29sb3IifSl9KX1mdW5jdGlvbiB3bygpe3JldHVybiB3bz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LHdvLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgX28sU289ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIix3byh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxOCxoZWlnaHQ6MTQsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE4IDE0IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksbG98fChsbz1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik0yIDBoMTRzMiAwIDIgMnYxMHMwIDItMiAySDJzLTIgMC0yLTJWMnMwLTIgMi0ybTQuODUyIDExSDlMNi44MDMgMy4yNUg0LjM5MkwyLjIgMTFoMS45NTVsLjM3LTEuNzAzaDEuOTY3em0tMS4zOC02LjAwNWguMTAxbC42MTMgMi44ODRINC44Mzd6TTE1LjAxNSAxMVY5LjQxNmgtMS42MzNWNC44MzRoMS42MzNWMy4yNUg5Ljc4NHYxLjU4NGgxLjYzM3Y0LjU4Mkg5Ljc4NFYxMXoifSkpKX0seG89bigxOTQ5MCk7ZnVuY3Rpb24gRW8oKXtyZXR1cm4gRW89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxFby5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIENvLE9vLEFvLElvPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsRW8oe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLF9vfHwoX289by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTE1IDRhMiAyIDAgMCAwLTItMkgzYTIgMiAwIDAgMC0yIDJ2N2EyIDIgMCAwIDAgMiAyaDhsMi4yOTMgMi4yOTNjLjYzLjYzIDEuNzA3LjE4NCAxLjcwNy0uNzA3em0tMyAxLjc1YS43NS43NSAwIDAgMC0uNzUtLjc1aC02LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDYuNWEuNzUuNzUgMCAwIDAgLjc1LS43NW0tMyAzLjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41QS43NS43NSAwIDAgMCA5IDkuMjUiLGNsaXBSdWxlOiJldmVub2RkIn0pKSl9O2Z1bmN0aW9uIGtvKCl7cmV0dXJuIGtvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sa28uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBMbyxUbz1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLGtvKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxDb3x8KENvPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZDoiTTguNzUgMWEuNzUuNzUgMCAwIDAtMS41IDB2M2EuNzUuNzUgMCAwIDAgMS41IDB6bS00Ljc0LjAzMWEuNzUuNzUgMCAwIDEgLjk1LjQ3NWwuNzUyIDIuMjU3YS43NS43NSAwIDEgMS0xLjQyNC40NzRMMy41MzYgMS45OGEuNzUuNzUgMCAwIDEgLjQ3NC0uOTQ5In0pKSxPb3x8KE9vPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0xLjczNiAzLjU3NWEuODUuODUgMCAwIDAtMS40NzIuODVMMS44NjYgNy4yQTEgMSAwIDAgMSAyIDcuN1YxNGExIDEgMCAwIDAgMSAxaDEwYTEgMSAwIDAgMCAxLTFWNy43YTEgMSAwIDAgMSAuMTM0LS41bDEuNjAyLTIuNzc1YS44NS44NSAwIDAgMC0xLjQ3Mi0uODVMMTIuNTc1IDYuNWExIDEgMCAwIDEtLjg2Ni41SDQuMjkxYTEgMSAwIDAgMS0uODY2LS41ek02Ljc1IDlhLjc1Ljc1IDAgMCAwIDAgMS41aDIuNWEuNzUuNzUgMCAwIDAgMC0xLjV6IixjbGlwUnVsZToiZXZlbm9kZCJ9KSksQW98fChBbz1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik0xMS45OSAxLjAzMWEuNzUuNzUgMCAwIDAtLjk1LjQ3NWwtLjc1MSAyLjI1N2EuNzUuNzUgMCAxIDAgMS40MjMuNDc0bC43NTItMi4yNTdhLjc1Ljc1IDAgMCAwLS40NzQtLjk0OSJ9KSkpfTtmdW5jdGlvbiBqbygpe3JldHVybiBqbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGpvLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgUG8sTm89ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixqbyh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksTG98fChMbz1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMy41IDUuNWE0LjUgNC41IDAgMCAxIDkgMFY4bDIuMjkzIDIuMjkzYy42My42My4xODQgMS43MDctLjcwNyAxLjcwN0gxLjkxNGMtLjg5IDAtMS4zMzctMS4wNzctLjcwNy0xLjcwN0wzLjUgOHptNi41IDguMDhhMiAyIDAgMSAxLTMuOTk4LS4wOGgzLjk5NnoiLGNsaXBSdWxlOiJldmVub2RkIn0pKSl9O2Z1bmN0aW9uIE1vKCl7cmV0dXJuIE1vPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sTW8uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBSbyxVbyx6bz1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLE1vKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxQb3x8KFBvPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik05LjczNiAxLjI4OWMtLjc2Ny0xLjM0NC0yLjcwNS0xLjM0NC0zLjQ3MyAwTC43MSAxMS4wMDhDLS4wNTIgMTIuMzQuOTEgMTQgMi40NDYgMTRoMTEuMTA4YzEuNTM1IDAgMi40OTgtMS42NTkgMS43MzYtMi45OTJ6TTcuMjUgNHY1aDEuNVY0ek04IDEyLjJBMS4xIDEuMSAwIDEgMCA4IDEwYTEuMSAxLjEgMCAwIDAgMCAyLjIiLGNsaXBSdWxlOiJldmVub2RkIn0pKSl9O2Z1bmN0aW9uIEhvKCl7cmV0dXJuIEhvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sSG8uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBGbyxEbz1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLEhvKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxSb3x8KFJvPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZDoiTTEgM2EyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAyaC0uODZMOS4xMTEgNC40NThjLTEuNDMxLTEuMi0zLjYxNC0uMTgzLTMuNjE0IDEuNjg2VjdIM2EyIDIgMCAwIDEtMi0yeiJ9KSksVW98fChVbz1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Im0xMy4yNzEgOS45MDctNS4xMjQtNC4zYS43LjcgMCAwIDAtMS4xNS41Mzd2Ni42ODhhLjcuNyAwIDAgMCAuOTk2LjYzNWwxLjc5MS0uODM1IDEuMjU1IDIuNjlhLjg1Ljg1IDAgMSAwIDEuNTQtLjcxOGwtMS4yNTQtMi42OSAxLjc5Mi0uODM2YS43LjcgMCAwIDAgLjE1NC0xLjE3MSJ9KSkpfTtmdW5jdGlvbiBCbygpe3JldHVybiBCbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LEJvLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgVm8sR289ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixCbyh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksRm98fChGbz1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik05LjIwNSAxLjY2M2EuODUuODUgMCAxIDAtMS43IDB2MS42OWEuODUuODUgMCAxIDAgMS43IDB6TTQuNDc2IDIuOTE4QS44NS44NSAwIDAgMCAzLjI3NCA0LjEybDEuMTk1IDEuMTk1QS44NS44NSAwIDAgMCA1LjY3IDQuMTEzem04Ljk2MSAxLjIwMmEuODUuODUgMCAwIDAtMS4yMDItMS4yMDJMMTEuMDQgNC4xMTNhLjg1Ljg1IDAgMSAwIDEuMjAyIDEuMjAyek0yLjAxOSA3LjE1YS44NS44NSAwIDAgMCAwIDEuN2gxLjY5YS44NS44NSAwIDAgMCAwLTEuN3ptMTAuOTgzIDBhLjg1Ljg1IDAgMSAwIDAgMS43aDEuNjlhLjg1Ljg1IDAgMCAwIDAtMS43ek01LjY3IDExLjg4N2EuODUuODUgMCAxIDAtMS4yMDEtMS4yMDJsLTEuMTk1IDEuMTk0YS44NS44NSAwIDAgMCAxLjIwMiAxLjIwM3ptNi40ODItMi4wODVMOC4xNTYgNi40NDlhLjcuNyAwIDAgMC0xLjE1LjUzNnY1LjIxNmEuNy43IDAgMCAwIC45OTUuNjM1bDEuMjI4LS41NzMgMS4zNzcgMi45NTNhLjg1Ljg1IDAgMSAwIDEuNTQtLjcxOWwtMS4zNzYtMi45NTIgMS4yMjgtLjU3MmEuNy43IDAgMCAwIC4xNTQtMS4xNzEifSkpKX07ZnVuY3Rpb24gcW8oKXtyZXR1cm4gcW89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxxby5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFdvLEtvPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIscW8oe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLFZvfHwoVm89by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTIgMmExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMCAxIDEgMXY1aDFhMSAxIDAgMCAxIDEgMXY2SDJ6bTQgMUg0djNoMnpNNCA4aDJ2M0g0em00IDBoMnYzSDh6bTAtNWgydjNIOHoiLGNsaXBSdWxlOiJldmVub2RkIn0pKSl9O2Z1bmN0aW9uIFpvKCl7cmV0dXJuIFpvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sWm8uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBKbyxZbz1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLFpvKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxXb3x8KFdvPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0xNSA0YTMgMyAwIDAgMC0zLTNINGExIDEgMCAwIDAtMSAxdjFoLS41YTEgMSAwIDAgMCAwIDJIM3YyaC0uNWExIDEgMCAwIDAgMCAySDN2MmgtLjVhMSAxIDAgMSAwIDAgMkgzdjFhMSAxIDAgMCAwIDEgMWg4YTMgMyAwIDAgMCAzLTN6TTkgNy4yM2ExLjU5IDEuNTkgMCAxIDAgMC0zLjE4IDEuNTkgMS41OSAwIDAgMCAwIDMuMThtLTIuOCA0LjM1OGMtLjM4NyAwLS43MDItLjMxNi0uNjEzLS42OTNBMy4xNSAzLjE1IDAgMCAxIDYuNzE0IDkuMTFjLjMtLjI1IDEuMTc3LS43MDQgMi4yODYtLjcwNHMxLjk4Ni40NTQgMi4yODYuNzA0Yy42OTcuNTQ0IDEgMS4yNDYgMS4xMjcgMS43ODUuMDg5LjM3Ny0uMjI2LjY5My0uNjEzLjY5M3oiLGNsaXBSdWxlOiJldmVub2RkIn0pKSl9O2Z1bmN0aW9uIFFvKCl7cmV0dXJuIFFvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sUW8uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBYbywkbyx0aT1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLFFvKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxKb3x8KEpvPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0uOTc0IDQuMzAzQy40NjUgNC41MiAwIDQuOTQ4IDAgNS41djVjMCAuNTUyLjQ2NS45ODEuOTc0IDEuMTk3YTIuNSAyLjUgMCAwIDEgMS4zMyAxLjMzYy4yMTUuNTA4LjY0NC45NzMgMS4xOTYuOTczaDljLjU1MiAwIC45ODEtLjQ2NSAxLjE5Ny0uOTc0YTIuNSAyLjUgMCAwIDEgMS4zMy0xLjMzYy41MDgtLjIxNS45NzMtLjY0NC45NzMtMS4xOTZ2LTVjMC0uNTUyLS40NjUtLjk4MS0uOTc0LTEuMTk3YTIuNSAyLjUgMCAwIDEtMS4zMy0xLjMzQzEzLjQ4MiAyLjQ2NiAxMy4wNTMgMiAxMi41IDJoLTljLS41NTIgMC0uOTgxLjQ2NS0xLjE5Ny45NzRhMi41IDIuNSAwIDAgMS0xLjMzIDEuMzNNMyA2LjI1YS43NS43NSAwIDAgMSAuNzUtLjc1aDhhLjc1Ljc1IDAgMCAxIDAgMS41aC04QS43NS43NSAwIDAgMSAzIDYuMjVtMS41IDMuNUEuNzUuNzUgMCAwIDEgNS4yNSA5aDVhLjc1Ljc1IDAgMCAxIDAgMS41aC01YS43NS43NSAwIDAgMS0uNzUtLjc1IixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpfTtmdW5jdGlvbiBlaSgpe3JldHVybiBlaT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGVpLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgbmkscmk9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixlaSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksWG98fChYbz1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik0yLjUgM0ExLjUgMS41IDAgMCAwIDEgNC41VjVoMTR2LS41QTEuNSAxLjUgMCAwIDAgMTMuNSAzeiJ9KSksJG98fCgkbz1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMTUgNi41SDF2NkExLjUgMS41IDAgMCAwIDIuNSAxNGgxMWExLjUgMS41IDAgMCAwIDEuNS0xLjV6bS01IDNhLjUuNSAwIDAgMSAuNS0uNWgyYS41LjUgMCAwIDEgLjUuNXYyYS41LjUgMCAwIDEtLjUuNWgtMmEuNS41IDAgMCAxLS41LS41eiIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpKX07ZnVuY3Rpb24gb2koKXtyZXR1cm4gb2k9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxvaS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIGlpLGFpPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsb2koe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLG5pfHwobmk9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTMgMmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMnptLjM3NSAyLjEwMmEuNzUuNzUgMCAxIDAtLjc1IDEuM2w0IDIuMzA5Yy44NS40OTEgMS45LjQ5MSAyLjc1IDBsNC0yLjMxYS43NS43NSAwIDAgMC0uNzUtMS4yOTlsLTQgMi4zMWExLjI1IDEuMjUgMCAwIDEtMS4yNSAweiIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpKX07ZnVuY3Rpb24gdWkoKXtyZXR1cm4gdWk9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSx1aS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIHNpLGNpPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsdWkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLGlpfHwoaWk9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJNMy41NzUgMTMuOTdxLTEuMDI1IDAtMS41NS0uNTEyLS41MjUtLjUxMS0uNTI1LTEuNTM2VjQuMDU0cTAtMS4wMjMuNTI1LTEuNTM1UTIuNTUgMiAzLjU3NSAyaDguODVxMS4wMzggMCAxLjU1Ni41MTkuNTE5LjUxOC41MTkgMS41MzV2Ny44NjhxMCAxLjAxNy0uNTE5IDEuNTI5LS41MTguNTE5LTEuNTU2LjUxOXptLS4wNTUtMS4xNTRoOC45NTNxLjQxNyAwIC42NDItLjIxOC4yMzItLjIxOC4yMzItLjY2MlY1LjkyNHEwLS40MzctLjIzMi0uNjU1LS4yMjUtLjIxOS0uNjQyLS4yMTlIMy41MnEtLjQxNyAwLS42MzUuMjE5LS4yMTguMjE4LS4yMTguNjU1djYuMDEycTAgLjQ0NC4yMTguNjYyLjIxOS4yMTguNjM1LjIxOG0zLjIzNS01LjQ5M3EtLjE3MSAwLS4yNDYtLjA2Mi0uMDY5LS4wNi0uMDY4LS4yMzJ2LS4zNzVxMC0uMTcuMDY4LS4yMzIuMDc1LS4wNjguMjQ2LS4wNjhoLjM3NXEuMTcgMCAuMjMyLjA2OC4wNjguMDYxLjA2OC4yMzJ2LjM3NXEwIC4xNy0uMDY4LjIzMi0uMDYxLjA2Mi0uMjMyLjA2MnptMi4xMjIgMHEtLjE3IDAtLjIzOS0uMDYyLS4wNi0uMDYtLjA2MS0uMjMydi0uMzc1cTAtLjE3LjA2MS0uMjMyLjA2OS0uMDY4LjIzOS0uMDY4aC4zODJxLjE3IDAgLjIzOS4wNjguMDY4LjA2MS4wNjguMjMydi4zNzVxMCAuMTctLjA2OC4yMzItLjA2OS4wNjItLjIzOS4wNjJ6bTIuMTI5IDBxLS4xNzcgMC0uMjQ2LS4wNjItLjA2LS4wNi0uMDYxLS4yMzJ2LS4zNzVxMC0uMTcuMDYxLS4yMzIuMDY5LS4wNjguMjQ2LS4wNjhoLjM4MnEuMTcgMCAuMjMyLjA2OC4wNjkuMDYxLjA2OS4yMzJ2LjM3NXEwIC4xNy0uMDY5LjIzMi0uMDYuMDYyLS4yMzIuMDYyem0tNi4zOCAyLjEwMnEtLjE3OCAwLS4yNDYtLjA2Mi0uMDYyLS4wNjgtLjA2Mi0uMjM5di0uMzgycTAtLjE3LjA2Mi0uMjMyLjA2OC0uMDYuMjQ1LS4wNjFoLjM3NnEuMTc3IDAgLjIzOS4wNjEuMDY4LjA2Mi4wNjguMjMydi4zODJxMCAuMTcxLS4wNjguMjQtLjA2LjA2LS4yNC4wNnptMi4xMjkgMHEtLjE3MSAwLS4yNDYtLjA2Mi0uMDY5LS4wNjgtLjA2OC0uMjM5di0uMzgycTAtLjE3LjA2OC0uMjMyLjA3NS0uMDYuMjQ2LS4wNjFoLjM3NXEuMTcgMCAuMjMyLjA2MS4wNjguMDYyLjA2OC4yMzJ2LjM4MnEwIC4xNzEtLjA2OC4yNC0uMDYxLjA2LS4yMzIuMDZ6bTIuMTIyIDBxLS4xNyAwLS4yMzktLjA2Mi0uMDYtLjA2OC0uMDYxLS4yMzl2LS4zODJxMC0uMTcuMDYxLS4yMzIuMDY5LS4wNi4yMzktLjA2MWguMzgycS4xNyAwIC4yMzkuMDYxLjA2OC4wNjIuMDY4LjIzMnYuMzgycTAgLjE3MS0uMDY4LjI0LS4wNjkuMDYtLjIzOS4wNnptMi4xMjkgMHEtLjE3NyAwLS4yNDYtLjA2Mi0uMDYtLjA2OC0uMDYxLS4yMzl2LS4zODJxMC0uMTcuMDYxLS4yMzIuMDY5LS4wNi4yNDYtLjA2MWguMzgycS4xNyAwIC4yMzIuMDYxLjA2OS4wNjIuMDY5LjIzMnYuMzgycTAgLjE3MS0uMDY5LjI0LS4wNi4wNi0uMjMyLjA2em0tNi4zOCAyLjA4OHEtLjE3OCAwLS4yNDYtLjA2Mi0uMDYyLS4wNi0uMDYyLS4yMzJ2LS4zNzVxMC0uMTc3LjA2Mi0uMjM5LjA2OC0uMDYuMjQ1LS4wNjFoLjM3NnEuMTc3IDAgLjIzOS4wNjEuMDY4LjA2LjA2OC4yNHYuMzc0cTAgLjE3Mi0uMDY4LjIzMi0uMDYuMDYyLS4yNC4wNjJ6bTIuMTI5IDBxLS4xNzEgMC0uMjQ2LS4wNjItLjA2OS0uMDYtLjA2OC0uMjMydi0uMzc1cTAtLjE3Ny4wNjgtLjIzOS4wNzUtLjA2LjI0Ni0uMDYxaC4zNzVxLjE3IDAgLjIzMi4wNjEuMDY4LjA2LjA2OC4yNHYuMzc0cTAgLjE3Mi0uMDY4LjIzMi0uMDYxLjA2Mi0uMjMyLjA2MnptMi4xMjIgMHEtLjE3IDAtLjIzOS0uMDYyLS4wNi0uMDYtLjA2MS0uMjMydi0uMzc1cTAtLjE3Ny4wNjEtLjIzOS4wNjktLjA2LjIzOS0uMDYxaC4zODJxLjE3IDAgLjIzOS4wNjEuMDY4LjA2LjA2OC4yNHYuMzc0cTAgLjE3Mi0uMDY4LjIzMi0uMDY5LjA2Mi0uMjM5LjA2MnoifSkpKX07ZnVuY3Rpb24gbGkoKXtyZXR1cm4gbGk9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxsaS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIGZpLGRpPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsbGkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLHNpfHwoc2k9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTUuNjQ5IDEyLjEwMWEuODUuODUgMCAwIDEgMC0xLjIwMmwyLjg5OS0yLjktMi45LTIuODk4YS44NS44NSAwIDAgMSAxLjIwMy0xLjIwMmwzLjUgMy41YS44NS44NSAwIDAgMSAwIDEuMjAybC0zLjUgMy41YS44NS44NSAwIDAgMS0xLjIwMiAwIixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpfTtmdW5jdGlvbiBwaSgpe3JldHVybiBwaT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LHBpLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgaGksdmk9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixwaSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksZml8fChmaT1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik0xMS44MDYgOS40N2E1LjUgNS41IDAgMSAwLTcuNjEzIDBxLjExLjExMi4yMDguMjM0SDcuMjVWNi44MUw1LjczMiA1LjI5MmEuNzUuNzUgMCAxIDEgMS4wNi0xLjA2TDggNS40MzhsMS4yMDctMS4yMDdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNkw4Ljc1IDYuODF2Mi44OTRoMi44NXEuMDk3LS4xMjIuMjA5LS4yMzR6bS0uNzk3IDEuNzM0SDQuOTkxcS4wMDguMTA4LjAwOC4yMTZ2MS4xM2MwIC4zOTkuMTU4Ljc4LjQ0IDEuMDYxbC45NS45NWExLjUgMS41IDAgMCAwIDEuMDYuNDRoMS4xYTEuNSAxLjUgMCAwIDAgMS4wNi0uNDRsLjk1LS45NWExLjUgMS41IDAgMCAwIC40NC0xLjA2di0xLjEzcTAtLjExLjAwOC0uMjE3In0pKSl9O2Z1bmN0aW9uIHlpKCl7cmV0dXJuIHlpPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0seWkuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBnaSxtaT1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLHlpKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjE2LGhlaWdodDoxNixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTYgMTYiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxoaXx8KGhpPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZmlsbFJ1bGU6ImV2ZW5vZGQiLGQ6Ik00LjUgNUg0YTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLS41di0uNWEzLjUgMy41IDAgMSAwLTcgMHptMS43IDBoMy42di0uNWExLjggMS44IDAgMCAwLTMuNiAwek04IDcuNzVhLjc1Ljc1IDAgMCAxIC43NS43NXYzYS43NS43NSAwIDAgMS0xLjUgMHYtM0EuNzUuNzUgMCAwIDEgOCA3Ljc1IixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpfTtmdW5jdGlvbiBiaSgpe3JldHVybiBiaT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGJpLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgd2ksX2k9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixiaSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksZ2l8fChnaT1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNNS42MzUgMS41OTJhMS4wMjUgMS4wMjUgMCAwIDAtMS4zNzUtLjQ5bC0xLjc5NS44NjhhMi41OTMgMi41OTMgMCAwIDAtMS4yOTcgMy4yNTFsLjAwMS4wMDJ2LjAwNWExNy44IDE3LjggMCAwIDAgMy44NTQgNS43NDcgMTcuOCAxNy44IDAgMCAwIDUuNzQ2IDMuODUzaC4wMDVsLjAwMy4wMDMuMDAzLjAwMmEyLjU5MyAyLjU5MyAwIDAgMCAzLjI1LTEuMjk4bC44NjgtMS43OTVhMS4wMjUgMS4wMjUgMCAwIDAtLjQ5LTEuMzc1bC0yLjU0OC0xLjE5YTEuMDIgMS4wMiAwIDAgMC0xLjA4OS4xNDFsLS44ODEuNzMyYS45OC45OCAwIDAgMS0xLjIyMy4wNCAxNSAxNSAwIDAgMS0yLjc1NS0yLjc1NC45OC45OCAwIDAgMSAuMDQtMS4yMjRsLjczMi0uODgxYy4yNTMtLjMwNi4zMDgtLjczLjE0LTEuMDl6IixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpfTtmdW5jdGlvbiBTaSgpe3JldHVybiBTaT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LFNpLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgeGksRWk9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixTaSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMjQgMjQiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSx3aXx8KHdpPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6ImN1cnJlbnRDb2xvciIsZDoibTEuNDUgMTUuNTkyLTIuMTIxLTIuMTIxYTIgMiAwIDAgMSAuMTI3LTIuOTU2IDE5LjggMTkuOCAwIDAgMSA4LjI3My0zLjkzMSAxOS41IDE5LjUgMCAwIDEgOC40ODUgMCAxOS44IDE5LjggMCAwIDEgOC4zMDIgMy45NiAyIDIgMCAwIDEgLjEzNCAyLjk0OGwtMi4xMjEgMi4xMjFhMiAyIDAgMCAxLTIuNjMuMTk4IDEyLjggMTIuOCAwIDAgMC0yLjQ4My0xLjQ5MiAyIDIgMCAwIDEtMS4xNzMtMS44MXYtMS43OTZhMTYgMTYgMCAwIDAtOC40ODYgMHYxLjc5NmEyIDIgMCAwIDEtMS4xNzMgMS44MSAxMi44IDEyLjggMCAwIDAtMi40ODIgMS40OTIgMiAyIDAgMCAxLTIuNjUyLS4yMTkifSkpKX07ZnVuY3Rpb24gQ2koKXtyZXR1cm4gQ2k9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxDaS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIE9pLEFpLElpPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsQ2koe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCkseGl8fCh4aT1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik04IDEwYzEuNjYgMCAzLTEuMzQgMy0zVjRjMC0xLjY2LTEuMzQtMy0zLTNTNSAyLjM0IDUgNHYzYzAgMS42NiAxLjM0IDMgMyAzbTQuNS00djFjMCAyLjQ4LTIuMDIgNC41LTQuNSA0LjVTMy41IDkuNDggMy41IDdWNkgydjFjMCAzLjA2IDIuMjkgNS41OCA1LjI1IDUuOTVWMTVoMS41di0yLjA1QTYgNiAwIDAgMCAxNCA3VjZ6In0pKSl9O2Z1bmN0aW9uIGtpKCl7cmV0dXJuIGtpPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sa2kuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBMaSxUaT1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLGtpKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLE9pfHwoT2k9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJNOCAxMGMxLjY2IDAgMy0xLjM0IDMtM1Y0YzAtMS42Ni0xLjM0LTMtMy0zUzUgMi4zNCA1IDR2M2MwIDEuNjYgMS4zNCAzIDMgM200LjUtNHYxYzAgMi40OC0yLjAyIDQuNS00LjUgNC41UzMuNSA5LjQ4IDMuNSA3VjZIMnYxYzAgMy4wNiAyLjI5IDUuNTggNS4yNSA1Ljk1VjE1aDEuNXYtMi4wNUE2IDYgMCAwIDAgMTQgN1Y2eiJ9KSksQWl8fChBaT1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZVdpZHRoOjEuNixkOiJtMi4yIDEuMiAxMi42IDEyLjYifSkpKX07ZnVuY3Rpb24gamkoKXtyZXR1cm4gamk9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxqaS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFBpLE5pLE1pPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsamkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLExpfHwoTGk9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTggNi45MUEyLjk1NSAyLjk1NSAwIDEgMCA4IDFhMi45NTUgMi45NTUgMCAwIDAgMCA1LjkxbTYuMjEgNS4zMzhhLjg1Ljg1IDAgMCAxLS4yOTQuOTNDMTMuMTQgMTMuODI2IDEwLjg3IDE1IDggMTVzLTUuMTQtMS4xNzQtNS45MTYtMS44MjJhLjg1Ljg1IDAgMCAxLS4yOTQtLjkzIDUuOCA1LjggMCAwIDEgMS45NjUtMi44NUM0LjMxMiA4LjkzMyA1Ljk0MSA4LjA5IDggOC4wOXMzLjY4OC44NDIgNC4yNDUgMS4zMDdhNS44IDUuOCAwIDAgMSAxLjk2NSAyLjg1IixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpfTtmdW5jdGlvbiBSaSgpe3JldHVybiBSaT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LFJpLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgVWksemksSGk9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixSaSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksUGl8fChQaT1vLmNyZWF0ZUVsZW1lbnQoImciLHtjbGlwUGF0aDoidXJsKCMyNjEzYSkifSxvLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMTAuNDYuNTVjLjcwOC4wOTQuODkuOTQyLjM4NSAxLjQ0N2wtMi4xMSAyLjExYTEgMSAwIDAgMC0uMjU4Ljk2NWwuMzY4IDEuMzc2YTEgMSAwIDAgMCAuNzA3LjcwN2wxLjM3Ni4zNjhhMSAxIDAgMCAwIC45NjUtLjI1OGwyLjExLTIuMTFjLjUwNS0uNTA1IDEuMzUzLS4zMjMgMS40NDYuMzg0YTUuODA2IDUuODA2IDAgMCAxLTcuNTA0IDYuMzA1bC0zLjM2MyAzLjM2M2ExIDEgMCAwIDEtMS40MTMgMEwuNzkzIDEyLjgzMWExIDEgMCAwIDEgMC0xLjQxM2wzLjM2My0zLjM2NEE1LjgwNiA1LjgwNiAwIDAgMSAxMC40NjEuNTUxIixjbGlwUnVsZToiZXZlbm9kZCJ9KSkpLE5pfHwoTmk9by5jcmVhdGVFbGVtZW50KCJkZWZzIixudWxsLG8uY3JlYXRlRWxlbWVudCgiY2xpcFBhdGgiLHtpZDoiMjYxM2EifSxvLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMCAwaDE2djE2SDB6In0pKSkpKX07ZnVuY3Rpb24gRmkoKXtyZXR1cm4gRmk9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxGaS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIERpLEJpLFZpPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsRmkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLFVpfHwoVWk9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJNMS41IDE0LjVBMS41IDEuNSAwIDAgMSAzIDEzaDEwYTEuNSAxLjUgMCAwIDEgMS41IDEuNXYuNWgtMTN6TTguOS45YS45LjkgMCAxIDEtMS44IDAgLjkuOSAwIDAgMSAxLjggMG00LjY5MyAxLjMwOWEuOS45IDAgMSAxLTEuOCAwIC45LjkgMCAwIDEgMS44IDBNMTYgNi4zMzJhLjkuOSAwIDEgMS0xLjggMCAuOS45IDAgMCAxIDEuOCAwTTIuNDA3IDIuMjA5YS45LjkgMCAxIDAgMS44IDAgLjkuOSAwIDAgMC0xLjggME0wIDYuMzMyYS45LjkgMCAxIDAgMS44IDAgLjkuOSAwIDAgMC0xLjggMCJ9KSkseml8fCh6aT1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGZpbGxSdWxlOiJldmVub2RkIixkOiJNMyA4YTUgNSAwIDAgMSAxMCAwdjMuNTE4SDN6bTEuMzkzLjA4MWEzLjY0MiAzLjY0MiAwIDAgMSA2LjI5NC0yLjQ5OC43NS43NSAwIDAgMS0xLjA5MiAxLjAyOSAyLjE0MiAyLjE0MiAwIDAgMC0zLjcwMiAxLjQ2OS43NS43NSAwIDEgMS0xLjUgMCIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpKX07ZnVuY3Rpb24gR2koKXtyZXR1cm4gR2k9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxHaS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIHFpLFdpPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsR2koe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLERpfHwoRGk9by5jcmVhdGVFbGVtZW50KCJnIix7ZmlsbDoiY3VycmVudENvbG9yIixjbGlwUGF0aDoidXJsKCNmZmUxYSkifSxvLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtkOiJNMTMuMjM0IDQuODAyYTMgMyAwIDAgMS0xLjk3My0xLjk3MkwxMC41NTUuNTU3Yy0uMjA0LS42NTYtMS4xMzItLjY1Ni0xLjMzNyAwTDguNTEgMi44M2EzIDMgMCAwIDEtMS45NzMgMS45NzJsLTIuMjcyLjcwOGMtLjY1Ni4yMDQtLjY1NiAxLjEzMiAwIDEuMzM3bDIuMjcyLjcwN0EzIDMgMCAwIDEgOC41MSA5LjUyN2wuNzA3IDIuMjcyYy4yMDUuNjU2IDEuMTMzLjY1NiAxLjMzNyAwbC43MDctMi4yNzJhMyAzIDAgMCAxIDEuOTczLTEuOTczbDIuMjczLS43MDdjLjY1Ni0uMjA1LjY1Ni0xLjEzMyAwLTEuMzM3ek02LjE0NSAxMS41N0EyLjU4IDIuNTggMCAwIDEgNC40NSA5Ljg3NWwtLjIyMy0uNzE2Yy0uMTc1LS41NjMtLjk3MS0uNTYzLTEuMTQ2IDBsLS4yMjMuNzE2YTIuNTggMi41OCAwIDAgMS0xLjY5NyAxLjY5N2wtLjcxNi4yMjNjLS41NjIuMTc1LS41NjIuOTcgMCAxLjE0NWwuNzE2LjIyM2EyLjU4IDIuNTggMCAwIDEgMS42OTcgMS42OTdsLjIyMy43MTZjLjE3NS41NjMuOTcuNTYzIDEuMTQ2IDBsLjIyMy0uNzE2YTIuNTggMi41OCAwIDAgMSAxLjY5Ni0xLjY5N2wuNzE3LS4yMjNjLjU2Mi0uMTc1LjU2Mi0uOTcgMC0xLjE0NXoifSkpKSxCaXx8KEJpPW8uY3JlYXRlRWxlbWVudCgiZGVmcyIsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoImNsaXBQYXRoIix7aWQ6ImZmZTFhIn0sby5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZDoiTTAgMGgxNnYxNkgweiJ9KSkpKSl9LEtpPW4oNjk3MjUpO2Z1bmN0aW9uIFppKCl7cmV0dXJuIFppPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sWmkuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBKaSxZaT1mdW5jdGlvbih0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KCJzdmciLFppKHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOjEyLGhlaWdodDoxMixmaWxsOiJub25lIix2aWV3Qm94OiIwIDAgMTIgMTIiLCJhcmlhLWhpZGRlbiI6InRydWUifSx0KSxxaXx8KHFpPW8uY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGw6IiNGQUZBRkEiLGQ6Ik02LjE0NyA3LjU5MnEtLjQ0NCAwLS42NzgtLjI1LS4yMy0uMjQ4LS4yNDQtLjcwN2wtLjEwOC00LjEzMS0uMDEtLjE0MmEyIDIgMCAwIDEtLjAwNC0uMTI3cTAtLjQ4OC4yNzgtLjc2MS4yODQtLjI3NC43NzEtLjI3NC40ODQgMCAuNzU3LjI3NC4yNzQuMjczLjI3NC43NjF2LjEyN3EwIC4wNjktLjAwNS4xNDJsLS4xMDggNC4xM3EtLjAxLjQ2LS4yNDQuNzA5dC0uNjc5LjI0OW0wIDIuOTc4YTEuMTUgMS4xNSAwIDAgMS0uOTktLjU0MkExIDEgMCAwIDEgNSA5LjQ3N3EwLS4yOTkuMTU2LS41NDIuMTU3LS4yNS40MTUtLjM5MS4yNi0uMTQ3LjU3Ni0uMTQ3YTEuMTUgMS4xNSAwIDAgMSAuOTgyLjUzNyAxIDEgMCAwIDEgLjE1Ni41NDMgMSAxIDAgMCAxLS4xNTYuNTUxIDEuMTQgMS4xNCAwIDAgMS0uOTgxLjU0MloifSkpKX07ZnVuY3Rpb24gUWkoKXtyZXR1cm4gUWk9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxRaS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFhpLCRpPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsUWkoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLEppfHwoSmk9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJNNC43OCAxMy41cS0uNjA2IDAtLjk0Ny0uMzQ2LS4zMzMtLjM0Ni0uMzMzLS45NzdWMy44M3EwLS42MzkuMzMzLS45ODUuMzQxLS4zNDYuOTQ2LS4zNDZoMy44MzhxMS4wNTIgMCAxLjgwOS4zMzguNzU3LjMzMiAxLjE2Ni45NTQuNDE2LjYyNC40MTYgMS40NzcgMCAuNjA3LS4yNjUgMS4xMTYtLjI2NS41LS43NDIuODNhMi42IDIuNiAwIDAgMS0xLjEwNS40MTZ2LjA2MWEyLjg0IDIuODQgMCAwIDEgMS4zNTUuMzkzcS41OS4zNTQuOTE2LjkzOC4zMzMuNTg1LjMzMyAxLjMzOCAwIC45NTQtLjQ2MiAxLjY2Mi0uNDYyLjctMS4zMSAxLjA5Mi0uODQ3LjM4NS0yLjAwNS4zODVINC43NzlabTEuMjE4LTEuNzc3SDcuOTVxLjk3NiAwIDEuNDkxLS4zOTIuNTIyLS40LjUyMi0xLjE1NCAwLS43MzgtLjUzNy0xLjEyMy0uNTMtLjM4NS0xLjUzLS4zODVoLTEuOXYzLjA1NFptMC00LjY1NEg3LjY3cS44ODYgMCAxLjM3Ny0uMzc3LjUtLjM3Ny41LTEuMDQ2IDAtLjYzLS40NDctLjk4NC0uNDQ2LS4zNTQtMS4yNDEtLjM1NEg1Ljk5OHoifSkpKX07ZnVuY3Rpb24gdGEoKXtyZXR1cm4gdGE9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSx0YS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIGVhLG5hPWZ1bmN0aW9uKHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoInN2ZyIsdGEoe3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6Im5vbmUiLHZpZXdCb3g6IjAgMCAxNiAxNiIsImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LHQpLFhpfHwoWGk9by5jcmVhdGVFbGVtZW50KCJwYXRoIix7ZmlsbDoiY3VycmVudENvbG9yIixkOiJNNC42MTggMTMuNWEuNjYuNjYgMCAwIDEtLjQ0OC0uMTU0LjU3LjU3IDAgMCAxLS4xNy0uNDNxMC0uMjYyLjE3LS40MTZhLjYzLjYzIDAgMCAxIC40NC0uMTU0aDEuNzM3bDEuODc3LTguNjkyaC0xLjczYS42Ni42NiAwIDAgMS0uNDQ4LS4xNTQuNTcuNTcgMCAwIDEtLjE3LS40M3EwLS4yNjMuMTctLjQxNmEuNjMuNjMgMCAwIDEgLjQ0LS4xNTRoNC45MDRhLjYzLjYzIDAgMCAxIC40NC4xNTRxLjE3LjE1My4xNy40MTUgMCAuMjctLjE3OC40MzFhLjYzLjYzIDAgMCAxLS40NC4xNTRoLTEuNzNsLTEuODc2IDguNjkyaDEuNzNxLjI3NyAwIC40NDguMTU0dC4xNy40MTVxMCAuMjctLjE3OC40MzFhLjY0LjY0IDAgMCAxLS40NDguMTU0eiJ9KSkpfTtmdW5jdGlvbiByYSgpe3JldHVybiByYT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LHJhLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgb2EsaWE9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixyYSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksZWF8fChlYT1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik04LjI4NyA1LjI2cS41NjcuMTA0Ljk2NC4zMTIuNDA0LjIwOC42OS41LjgwNy44IDEuMDc0IDEuNzY5YTMuNiAzLjYgMCAwIDEgMCAxLjkzN3EtLjI2Ny45NjItMS4wNjggMS43NjJsLTIuMjY1IDIuMjYycS0uNzk1Ljc5My0xLjc2NCAxLjA2YTMuNTMgMy41MyAwIDAgMS0xLjkzMy4wMDZxLS45Ny0uMjY2LTEuNzc4LTEuMDc5LS44MDctLjgtMS4wNzQtMS43NjhhMy41NiAzLjU2IDAgMCAxIDAtMS45M3EuMjY3LS45NyAxLjA2OC0xLjc3bDEuODY4LTEuODU4YTIuNSAyLjUgMCAwIDAtLjAzOS44cS4wNDYuNDA4LjIwMi43NmwtMS4xMiAxLjExMWEyLjcgMi43IDAgMCAwLS43MjkgMS4yMSAyLjQ2IDIuNDYgMCAwIDAgMCAxLjMyNnEuMTgzLjY2My43MzYgMS4yMTYuNTQ3LjU1MSAxLjIxLjcyOC42NjUuMTgyIDEuMzI4IDBhMi43IDIuNyAwIDAgMCAxLjIxMS0uNzI5bDIuMTY4LTIuMTU4YTIuNyAyLjcgMCAwIDAgLjcyOS0xLjIwOSAyLjQgMi40IDAgMCAwLS4wMDctMS4zMjZxLS4xODItLjY2My0uNzM1LTEuMjE2LS4yOTMtLjMtLjcxNi0uNDgxYTMuMyAzLjMgMCAwIDAtMS4wMS0uMjM0em0tLjU4IDUuNDhxLS41NjYtLjEwNC0uOTY5LS4zMTJhMi43IDIuNyAwIDAgMS0uNjc3LS40OTRxLS44MTQtLjgwNi0xLjA4LTEuNzc1YTMuNTYgMy41NiAwIDAgMSAwLTEuOTNxLjI3My0uOTcgMS4wNzQtMS43NjlsMi4yNTgtMi4yNTZxLjgwMS0uOCAxLjc2NC0xLjA2NmEzLjUzIDMuNTMgMCAwIDEgMS45MzQtLjAwNnEuOTY5LjI2NiAxLjc4MyAxLjA3OS44MDcuOCAxLjA3NCAxLjc2OGEzLjU0IDMuNTQgMCAwIDEtLjAwNiAxLjkzN3EtLjI2Ny45NjktMS4wNjEgMS43NjJsLTEuODY5IDEuODZhMi40IDIuNCAwIDAgMCAuMDQtLjc4NyAyLjYgMi42IDAgMCAwLS4yMDItLjc3NGwxLjExMy0xLjExMXEuNTUzLS41NDYuNzM1LTEuMjAzYTIuNCAyLjQgMCAwIDAtLjAwNi0xLjMyNiAyLjcgMi43IDAgMCAwLS43My0xLjIxNnEtLjU1OC0uNTYtMS4yMjMtLjczNWEyLjQ0IDIuNDQgMCAwIDAtMS4zMjEgMHEtLjY1OC4xODMtMS4yMTguNzM1TDYuOTY2IDUuMjczYTIuNyAyLjcgMCAwIDAtLjczNiAxLjIwOSAyLjQ2IDIuNDYgMCAwIDAgMCAxLjMyNnEuMTg5LjY2My43NDIgMS4yMjIuMy4yOTMuNzIzLjQ3NWEzLjQgMy40IDAgMCAwIDEuMDAyLjI0eiJ9KSkpfTtmdW5jdGlvbiBhYSgpe3JldHVybiBhYT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGFhLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgdWEsc2E9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixhYSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksb2F8fChvYT1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik0xLjg4IDQuNzZhLjg2Ljg2IDAgMCAxLS42MjItLjI1MkEuODYuODYgMCAwIDEgMSAzLjg4cTAtLjM2NC4yNTgtLjYyMkEuODUuODUgMCAwIDEgMS44OCAzcS4zNjQgMCAuNjIxLjI1OC4yNi4yNi4yNTkuNjIyYS44Ni44NiAwIDAgMS0uMjU5LjYyOC44Ni44NiAwIDAgMS0uNjIxLjI1MVptMy4wODYtLjMxNWEuNTYuNTYgMCAwIDEtLjQwNS0uMTYuNTYuNTYgMCAwIDEtLjE2LS40MDUuNTQuNTQgMCAwIDEgLjE2LS4zOTguNTYuNTYgMCAwIDEgLjQwNS0uMTZoOS41MzFhLjU2NC41NjQgMCAwIDEgLjU3My41NTguNTY0LjU2NCAwIDAgMS0uNTczLjU2NmgtOS41M1pNMS44OCA4Ljk4NGEuODUuODUgMCAwIDEtLjYyMi0uMjU4QS44NS44NSAwIDAgMSAxIDguMTA0cTAtLjM2NC4yNTgtLjYyMWEuODUuODUgMCAwIDEgLjYyMi0uMjU5cS4zNjQgMCAuNjIxLjI1OS4yNi4yNTguMjU5LjYyMWMtLjAwMS4zNjMtLjA4Ni40NS0uMjU5LjYyMmEuODUuODUgMCAwIDEtLjYyMS4yNThtMy4wODYtLjMyMWEuNTYuNTYgMCAwIDEtLjQwNS0uMTYuNTQuNTQgMCAwIDEtLjE2LS4zOTkuNTQuNTQgMCAwIDEgLjE2LS4zOTguNTUuNTUgMCAwIDEgLjQwNS0uMTY4aDkuNTMxcS4yMzcgMCAuNDA1LjE2OGEuNTMuNTMgMCAwIDEgLjE2OC4zOTguNTY0LjU2NCAwIDAgMS0uNTczLjU1OXpNMS44OCAxMy4yYS44Ni44NiAwIDAgMS0uNjIyLS4yNTEuODYuODYgMCAwIDEtLjI1OC0uNjI4cTAtLjM2NC4yNTgtLjYxNWEuODUuODUgMCAwIDEgLjYyMi0uMjU4cS4zNjQgMCAuNjIxLjI1OGEuODMuODMgMCAwIDEgLjI1OS42MTQuODYuODYgMCAwIDEtLjI1OS42MjkuODYuODYgMCAwIDEtLjYyMS4yNTFtMy4wODYtLjMxNGEuNTYuNTYgMCAwIDEtLjQwNS0uMTYuNTYuNTYgMCAwIDEtLjE2LS40MDUuNTQuNTQgMCAwIDEgLjE2LS4zOTguNTYuNTYgMCAwIDEgLjQwNS0uMTYxaDkuNTMxYS41NjQuNTY0IDAgMCAxIC40MDUuOTYzLjU2LjU2IDAgMCAxLS40MDUuMTYxaC05LjUzWiJ9KSkpfTtmdW5jdGlvbiBjYSgpe3JldHVybiBjYT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGNhLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgbGE9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudCgic3ZnIixjYSh7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDoibm9uZSIsdmlld0JveDoiMCAwIDE2IDE2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sdCksdWF8fCh1YT1vLmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik0yLjMyMyA1LjIwNWEuNS41IDAgMCAxLS4zMzYtLjExMnEtLjEyNS0uMTE5LS4xMjUtLjM1NlYyLjg3M2gtLjAxNGwtLjMyMS4yMTZhLjcuNyAwIDAgMS0uMTMzLjA4NC40LjQgMCAwIDEtLjExOS4wMTQuMy4zIDAgMCAxLS4zLS4zMDdxMC0uMTkuMjE2LS4zMzVsLjQ5Ni0uMzQzcS4xMzMtLjA5LjI1OS0uMTQ2QS44LjggMCAwIDEgMi4yNiAycS4yMyAwIC4zNy4xMzMuMTQ2LjEyNS4xNDYuMzQ5djIuMjU1cTAgLjIzNy0uMTI1LjM1NmEuNDguNDggMCAwIDEtLjMyOC4xMTJtMi45NTMtLjg0NWEuNTYuNTYgMCAwIDEtLjQwNS0uMTYuNTQuNTQgMCAwIDEtLjE2LS4zOTkuNTQuNTQgMCAwIDEgLjE2LS4zOTguNTUuNTUgMCAwIDEgLjQwNS0uMTY3aDkuMDIxcS4yMzkgMCAuNDA1LjE2N2EuNTMuNTMgMCAwIDEgLjE2OC4zOTguNTY0LjU2NCAwIDAgMS0uNTczLjU1OXpNMS4xOTggOS40MTVBLjM4LjM4IDAgMCAxIC45MiA5LjMxYS4zNi4zNiAwIDAgMS0uMTA1LS4yNjUuNDkuNDkgMCAwIDEgLjE5Ni0uMzlsLjkxNS0uNzU1cS4yNzItLjIxNi4zNTYtLjM0MmEuNDYuNDYgMCAwIDAgLjA5LS4yNTguMy4zIDAgMCAwLS4wOTctLjIzOC4zNi4zNiAwIDAgMC0uMjUyLS4wOXEtLjI3MSAwLS40MTkuMjU4YS40LjQgMCAwIDEtLjM2My4yMXEtLjM4NCAwLS4zODQtLjM0MyAwLS4zMzUuMzIxLS41NjYuMzMtLjIzLjgzMS0uMjMuNTY1IDAgLjg5NC4yNThhLjgyLjgyIDAgMCAxIC4zMjguNjc4cTAgLjMwOC0uMTUzLjUyMy0uMTU1LjIxLS41MS41MDNsLS41NzMuNDYxdi4wMmguOTk5YS4zMi4zMiAwIDAgMSAuMzM1LjM0My4zMi4zMiAwIDAgMS0uMzM1LjMyOHptNC4wNzgtLjgzYS41Ni41NiAwIDAgMS0uNDA1LS4xNjEuNTYuNTYgMCAwIDEtLjE2LS40MDUuNTQuNTQgMCAwIDEgLjE2LS4zOTguNTYuNTYgMCAwIDEgLjQwNS0uMTZoOS4wMjFhLjU2NC41NjQgMCAwIDEgLjU3My41NTguNTY0LjU2NCAwIDAgMS0uNTczLjU2NmgtOS4wMlptLTMuMjU0IDUuMThxLS40MjUgMC0uODI0LS4xOTVRLjggMTMuMzguOCAxMy4wMjVxMC0uMTYuMTA1LS4yNTFhLjQuNCAwIDAgMSAuMjgtLjA5OHEuMDk3IDAgLjE2LjA0MmEuNy43IDAgMCAxIC4xMjYuMDlxLjA5OC4wOTkuMjMuMTkuMTQuMDgzLjMyMS4wODMuMTc1IDAgLjI5NC0uMDlhLjMuMyAwIDAgMCAuMTE4LS4yMzhxMC0uMzIxLS40ODEtLjMyMWgtLjA5MXEtLjMyMSAwLS4zMjEtLjN0LjMyLS4zaC4wNzhhLjcuNyAwIDAgMCAuMzM1LS4wNy4yNS4yNSAwIDAgMCAuMTE4LS4yMjRxMC0uMTYtLjExMS0uMjM4YS40NC40NCAwIDAgMC0uMjY2LS4wNzYuNi42IDAgMCAwLS4yMzcuMDQ5LjcuNyAwIDAgMC0uMjIzLjE4MS43LjcgMCAwIDEtLjE0Ny4xMjYuMy4zIDAgMCAxLS4xNzUuMDQyLjM3LjM3IDAgMCAxLS4yNTgtLjA5MS4zMy4zMyAwIDAgMS0uMDk4LS4yNDVxMC0uMjMuMTY4LS4zOS4xNzQtLjE2Mi40MzMtLjI0NWExLjggMS44IDAgMCAxIC41MzctLjA4NHEuNTE3IDAgLjg2LjIxNy4zNDguMjEuMzQ4LjYwNyAwIC4zMDgtLjE4MS40ODJhLjg1Ljg1IDAgMCAxLS40NDcuMjI0di4wMnEuMzYzLjAyOC41NTIuMjE3LjE5NS4xODkuMTk1LjQ3NWEuODIuODIgMCAwIDEtLjM1LjY5OHEtLjM0LjI1OC0uOTcuMjU4bTMuMjU0LS45NjNhLjU2LjU2IDAgMCAxLS40MDUtLjE2LjU0LjU0IDAgMCAxLS4xNi0uMzk5LjU0LjU0IDAgMCAxIC4xNi0uMzk4LjU1LjU1IDAgMCAxIC40MDUtLjE2OGg5LjAyMXEuMjM5IDAgLjQwNS4xNjhhLjUzLjUzIDAgMCAxIC4xNjguMzk4LjU2NC41NjQgMCAwIDEtLjU3My41NTl6In0pKSl9fSw4MzM3ODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oNzQ4NDgpO2UuQT1mdW5jdGlvbigpe3JldHVybigwLHIuanN4KSgic3ZnIix7Zm9jdXNhYmxlOiJmYWxzZSIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsdmlld0JveDoiMCAwIDI4IDMyIix3aWR0aDoiMjgiLGhlaWdodDoiMzIiLGNoaWxkcmVuOigwLHIuanN4KSgicGF0aCIse2Q6Ik0yOCwzMiBDMjgsMzIgMjMuMjg2MzI2NiwzMC4xNDUwNjY3IDE5LjQ3Mjc4MTgsMjguNjU5MiBMMy40Mzc0OTEwNywyOC42NTkyIEMxLjUzOTIxOTg5LDI4LjY1OTIgMCwyNy4wMjcyIDAsMjUuMDE0NCBMMCwzLjY0NDggQzAsMS42MzIgMS41MzkyMTk4OSwwIDMuNDM3NDkxMDcsMCBMMjQuNTYxNTA4OCwwIEMyNi40NTk3OCwwIDI3Ljk5ODk5OTksMS42MzIgMjcuOTk4OTk5OSwzLjY0NDggTDI3Ljk5ODk5OTksMjIuMDQ5MDY2NyBMMjgsMjIuMDQ5MDY2NyBMMjgsMzIgWiBNMjMuODYxNDA4OCwyMC4wMTgxMzMzIEMyMy41MzA5MjIzLDE5LjYxMDUyNDIgMjIuOTU0MDgxMiwxOS41NjMzODM2IDIyLjU2OTIyNDIsMTkuOTEyNTMzMyBDMjIuNTM5MjE5OSwxOS45MzkyIDE5LjU1Mzc5MzQsMjIuNTk0MTMzMyAxMy45OTg5OTk5LDIyLjU5NDEzMzMgQzguNTEzMjE2MTcsMjIuNTk0MTMzMyA1LjQ4MTc4MzExLDE5Ljk1ODQgNS40Mjc3NzU0LDE5LjkxMDQgQzUuMDQyOTUxMTksMTkuNTYyOTQyOCA0LjQ2NzYwOTkxLDE5LjYxMDUwOTUgNC4xMzc1OTEwOCwyMC4wMTcwNjY3IEMzLjk3OTEzMDUxLDIwLjIxMjQ5MTYgMy45MDA0NDk0LDIwLjQ2NzMzOTUgMy45MTkwNDM1NywyMC43MjQ5NDE1IEMzLjkzNzYzNzc0LDIwLjk4MjU0MzUgNC4wNTE5NjU3NSwyMS4yMjE1NDQ3IDQuMjM2NjA1MjMsMjEuMzg4OCBDNC4zNzg2MjU1MiwyMS41MTY4IDcuNzc0MTEwNTksMjQuNTM4NjY2NyAxMy45OTg5OTk5LDI0LjUzODY2NjcgQzIwLjIyNDg4OTMsMjQuNTM4NjY2NyAyMy42MjAzNzQzLDIxLjUxNjggMjMuNzYyMzk0NiwyMS4zODg4IEMyMy45NDY3MzQyLDIxLjIyMTU3MjYgMjQuMDYwODY0MiwyMC45ODI3OTA1IDI0LjA3OTQ1MzksMjAuNzI1NDUwNyBDMjQuMDk4MDQzNiwyMC40NjgxMTA5IDI0LjAxOTU1NTEsMjAuMjEzNTAxOSAyMy44NjE0MDg4LDIwLjAxODEzMzMgWiJ9KX0pfX0sMjY1NTU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7QTpmdW5jdGlvbigpe3JldHVybiBvfX0pO3ZhciByPW4oNzQ4NDgpO2Z1bmN0aW9uIG8oKXtyZXR1cm4oMCxyLmpzeCkoInN2ZyIse3dpZHRoOiIyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGNoaWxkcmVuOigwLHIuanN4KSgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoiTTE4LjYwMSA4LjM5ODk3QzE4LjI2OSA4LjA2NzAyIDE3LjczMDkgOC4wNjcwMiAxNy4zOTg5IDguMzk4OTdMMTIgMTMuNzk3OUw2LjYwMDk5IDguMzk4OTdDNi4yNjkwNCA4LjA2NzAyIDUuNzMwODYgOC4wNjcwMiA1LjM5ODkxIDguMzk4OTdDNS4wNjY5NiA4LjczMDkxIDUuMDY2OTYgOS4yNjkxIDUuMzk4OTEgOS42MDEwNUwxMS4zOTg5IDE1LjYwMUMxMS43MzA5IDE1LjkzMyAxMi4yNjkgMTUuOTMzIDEyLjYwMSAxNS42MDFMMTguNjAxIDkuNjAxMDVDMTguOTMyOSA5LjI2OTEgMTguOTMyOSA4LjczMDkxIDE4LjYwMSA4LjM5ODk3WiIsZmlsbDoiY3VycmVudENvbG9yIn0pfSl9fSw3OTk4ODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtBOmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7dmFyIHI9big3NDg0OCk7ZnVuY3Rpb24gbyh0KXtyZXR1cm4oMCxyLmpzeCkoInN2ZyIse2ZvY3VzYWJsZToiZmFsc2UiLCJhcmlhLWhpZGRlbiI6InRydWUiLGNsYXNzTmFtZTp0LmNsYXNzTmFtZSx3aWR0aDoiMTZweCIsaGVpZ2h0OiIxMnB4Iix2aWV3Qm94OiIwIDAgMTYgMTIiLGNoaWxkcmVuOigwLHIuanN4KSgiZyIse3N0cm9rZToibm9uZSIsc3Ryb2tlV2lkdGg6IjEiLGZpbGxSdWxlOiJldmVub2RkIixjaGlsZHJlbjooMCxyLmpzeCkoImciLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgtMjU3LjAwMDAwMCwgLTUyOS4wMDAwMDApIixjaGlsZHJlbjooMCxyLmpzeCkoImciLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgxMDAuMDAwMDAwLCAxODcuMDAwMDAwKSIsY2hpbGRyZW46KDAsci5qc3gpKCJnIix7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoOTQuMDAwMDAwLCAwLjAwMDAwMCkiLGNoaWxkcmVuOigwLHIuanN4KSgiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDE2LjAwMDAwMCwgMTY5LjAwMDAwMCkiLGNoaWxkcmVuOigwLHIuanN4KSgiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDI0LjAwMDAwMCwgMTU5LjAwMDAwMCkiLGNoaWxkcmVuOigwLHIuanN4KSgiZyIse3RyYW5zZm9ybToidHJhbnNsYXRlKDIzLjAwMDAwMCwgMTQuMDAwMDAwKSIsY2hpbGRyZW46KDAsci5qc3gpKCJwYXRoIix7ZDoiTTEwLjg0MDE0ODgsNi4yMjQ5MDcgTDE1LjY4MTc3NjUsMTEuMDY2NTM0NyBDMTUuNTEwMDUsMTEuMzQ5OTUyOCAxNS4yNzIyNTc0LDExLjU3NDg3OTQgMTQuOTc2ODQ1NywxMS43MzI4NjczIEMxNC42NTA5MTk4LDExLjkwNzE3NDQgMTQuMzI3NjMzNSwxMiAxMy40MzYxMTQ4LDEyIEwyLjU2Mzg4NTIsMTIgQzEuNjcyMzY2NDYsMTIgMS4zNDkwODAyMiwxMS45MDcxNzQ0IDEuMDIzMTU0MywxMS43MzI4NjczIEMwLjcyODc3MjU0LDExLjU3NTQzMDIgMC40OTE2MDg4NjksMTEuMzUxNTIwNSAwLjMyMDAyMjE0OCwxMS4wNjk0OTcgTDUuMTYyNzgxMDEsNi4yMjY3MzgxMyBMNy4yNjkzMzE4OCw3LjU0MzMzMjQyIEM3LjU1MzIxMTc5LDcuNzIwNzU3MzcgNy42NjY2NTk4Nyw3Ljc2NjYyMjMyIDcuODAwNTQzNTcsNy43OTY3OTY2MyBDNy45MzQ0MjcyNyw3LjgyNjk3MDk0IDguMDY1NTcyNzMsNy44MjY5NzA5NCA4LjE5OTQ1NjQzLDcuNzk2Nzk2NjMgQzguMzMzMzQwMTMsNy43NjY2MjIzMiA4LjQ0Njc4ODIxLDcuNzIwNzU3MzcgOC43MzA2NjgxMiw3LjU0MzMzMjQyIEwxMC44NDAxNDg4LDYuMjI0OTA3IFogTTExLjcxMDQzNDEsNS42ODA5Nzg3IEwxNS42OTQwMDAyLDMuMTkxMjQ5ODcgQzE1Ljc4NzY2NzUsMy4xMzI3MDc4IDE1LjkxMTA1NzYsMy4xNjExODI0MyAxNS45Njk1OTk3LDMuMjU0ODQ5NzQgQzE1Ljk4OTQ2NjEsMy4yODY2MzYwNiAxNiwzLjMyMzM2NTU4IDE2LDMuMzYwODQ5NTMgTDE2LDkuNDM2MTE0OCBDMTYsOS42MzYwNjg0MyAxNS45OTUzMzA2LDkuODA3NDM4MDEgMTUuOTg2MTE5Niw5Ljk1NjY2NDI4IEwxMS43MTA0MzQxLDUuNjgwOTc4NyBaIE00LjI5MjQ5NTc0LDUuNjgyODA5ODQgTDAuMDE0MTU4ODE0Myw5Ljk2MTE0Njc2IEMwLjAwNDc2MzU2MzYsOS44MTA4NzE5OSAyLjQ3MzI4MDY3ZS0xNyw5LjYzODA3MzQ4IDAsOS40MzYxMTQ4IEwxLjI0NTY3MTcyZS0xNiwzLjM2MDg0OTUzIEMxLjExMDQwMDk3ZS0xNiwzLjI1MDM5MjU4IDAuMDg5NTQzMDUsMy4xNjA4NDk1MyAwLjIsMy4xNjA4NDk1MyBDMC4yMzc0ODM5NDMsMy4xNjA4NDk1MyAwLjI3NDIxMzQ2OCwzLjE3MTM4MzQyIDAuMzA1OTk5Nzg4LDMuMTkxMjQ5ODcgTDQuMjkyNDk1NzQsNS42ODI4MDk4NCBaIE0xLC0yLjQ4Njg5OTU4ZS0xNCBMMTUsLTIuNDg2ODk5NThlLTE0IEMxNS41NTIyODQ3LC0yLjQ5NzA0NDg4ZS0xNCAxNiwwLjQ0NzcxNTI1IDE2LDEgTDE2LDEuODc2MzkzMiBDMTYsMS45NTIxNDc2MSAxNS45NTcxOTk1LDIuMDIxNDAwMjQgMTUuODg5NDQyNywyLjA1NTI3ODY0IEw4LjQ0NzIxMzYsNS43NzYzOTMyIEM4LjE2NTY4NjEsNS45MTcxNTY5NSA3LjgzNDMxMzksNS45MTcxNTY5NSA3LjU1Mjc4NjQsNS43NzYzOTMyIEwwLjExMDU1NzI4MSwyLjA1NTI3ODY0IEMwLjA0MjgwMDQ3NTIsMi4wMjE0MDAyNCAzLjk3ODU1Mjk4ZS0xNiwxLjk1MjE0NzYxIDMuODg1NzgwNTllLTE2LDEuODc2MzkzMiBMMCwxIEMtNi43NjM1Mzc1MWUtMTcsMC40NDc3MTUyNSAwLjQ0NzcxNTI1LC0yLjQ3Njc1NDI3ZS0xNCAxLC0yLjQ4Njg5OTU4ZS0xNCBaIn0pfSl9KX0pfSl9KX0pfSl9KX19LDY2NzQ4OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9big3NDg0OCk7ZS5BPWZ1bmN0aW9uKCl7cmV0dXJuKDAsci5qc3hzKSgic3ZnIix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix2aWV3Qm94OiIwIDAgMTYgMTYiLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsY2hpbGRyZW46WygwLHIuanN4KSgicGF0aCIse2NsYXNzTmFtZToiYm94IixkOiJNNy4xODQyMSA0LjVIM0MyLjE3MTU3IDQuNSAxLjUgNS4xNzE1NyAxLjUgNlYxM0MxLjUgMTMuODI4NCAyLjE3MTU3IDE0LjUgMyAxNC41SDEwQzEwLjgyODQgMTQuNSAxMS41IDEzLjgyODQgMTEuNSAxM1Y5LjUiLHN0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLCgwLHIuanN4KSgicGF0aCIse2NsYXNzTmFtZToiYXJyb3ciLGZpbGxSdWxlOiJldmVub2RkIixjbGlwUnVsZToiZXZlbm9kZCIsZDoiTTEzLjk2MjEgMi4zMDg2MUMxMy45Mzc3IDIuMjQ5NjQgMTMuOTAxNSAyLjE5NDM5IDEzLjg1MzYgMi4xNDY0NUMxMy44MDU2IDIuMDk4NTEgMTMuNzUwNCAyLjA2MjM0IDEzLjY5MTQgMi4wMzc5NEMxMy42MzI0IDIuMDEzNDkgMTMuNTY3OCAyIDEzLjUgMkgxMy40OTk5SDkuNUM5LjIyMzg2IDIgOSAyLjIyMzg2IDkgMi41QzkgMi43NzYxNCA5LjIyMzg2IDMgOS41IDNIMTIuMjkyOUw1LjE0NjQ1IDEwLjE0NjRDNC45NTExOCAxMC4zNDE3IDQuOTUxMTggMTAuNjU4MyA1LjE0NjQ1IDEwLjg1MzZDNS4zNDE3MSAxMS4wNDg4IDUuNjU4MjkgMTEuMDQ4OCA1Ljg1MzU1IDEwLjg1MzZMMTMgMy43MDcxMVY2LjVDMTMgNi43NzYxNCAxMy4yMjM5IDcgMTMuNSA3QzEzLjc3NjEgNyAxNCA2Ljc3NjE0IDE0IDYuNVYyLjUwMDQ5VjIuNUMxNCAyLjQ5OSAxNCAyLjQ5OCAxNCAyLjQ5N0MxMy45OTk2IDIuNDMwMyAxMy45ODYxIDIuMzY2NjkgMTMuOTYyMSAyLjMwODYxWiIsZmlsbDoiY3VycmVudENvbG9yIn0pXX0pfX0sNTAyODI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDcwODc4KSxvPW4oNzQ4NDgpO2UuQT1mdW5jdGlvbigpe3JldHVybigwLG8uanN4cykoci5XLHtmb2N1c2FibGU6ImZhbHNlIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIix3aWR0aDoiMTYiLGhlaWdodDoiMTMuNTkiLHZpZXdCb3g6IjAgMCAxNiAxMy41OSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZGF0YS10ZXN0aWQiOiJwcm9kdWN0LXRvdXItaWNvbiIsY2hpbGRyZW46WygwLG8uanN4KSgicGF0aCIse2Q6Ik00IDYuMmMwLS4yMi4xOC0uNC40LS40aDcuMmMuMjIgMCAuNC4xOC40LjR2LjZhLjQuNCAwIDAxLS40LjRINC40YS40LjQgMCAwMS0uNC0uNHYtLjZ6bS40IDIuNmEuNC40IDAgMDAtLjQuNHYuNmMwIC4yMjEuMTguNC40LjRoNS4yYS40LjQgMCAwMC40LS40di0uNmEuNC40IDAgMDAtLjQtLjRINC40eiJ9KSwoMCxvLmpzeCkoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGQ6Ik02IDJINC44Yy0xLjY4IDAtMi41MiAwLTMuMTYyLjMyN0EzIDMgMCAwMC4zMjcgMy42MzhDMCA0LjI4IDAgNS4xMiAwIDYuOHYyLjRjMCAxLjY4IDAgMi41Mi4zMjcgMy4xNjJhMyAzIDAgMDAxLjMxMSAxLjMxMUMyLjI4IDE0IDMuMTIgMTQgNC44IDE0aDYuNGMxLjY4IDAgMi41MiAwIDMuMTYyLS4zMjdhMyAzIDAgMDAxLjMxMS0xLjMxMUMxNiAxMS43MiAxNiAxMC44OCAxNiA5LjJWNi44YzAtMS42OCAwLTIuNTItLjMyNy0zLjE2MmEzIDMgMCAwMC0xLjMxMS0xLjMxMUMxMy43MiAyIDEyLjg4IDIgMTEuMiAySDEwbC0uODY5LS44NjlDOC43MzUuNzM1IDguNTM3LjUzNyA4LjMxLjQ2M2ExIDEgMCAwMC0uNjE4IDBjLS4yMjguMDc0LS40MjYuMjcyLS44MjIuNjY4TDYgMnptNC4wODMgMS40Yy0uMjQ1IDAtLjM2NyAwLS40ODItLjAyOGExIDEgMCAwMS0uMjktLjEyYy0uMS0uMDYxLS4xODctLjE0OC0uMzYtLjMybC0uODEtLjgxTDggMS45OGwtLjE0MS4xNDEtLjgxLjgxYy0uMTczLjE3My0uMjYuMjYtLjM2LjMyMmExIDEgMCAwMS0uMjkuMTJjLS4xMTUuMDI3LS4yMzcuMDI3LS40ODIuMDI3SDQuOGMtLjg2MyAwLTEuNDI2LjAwMS0xLjg1Ni4wMzYtLjQxNC4wMzQtLjU4LjA5Mi0uNjcuMTM4YTEuNiAxLjYgMCAwMC0uNy43Yy0uMDQ2LjA5LS4xMDQuMjU2LS4xMzguNjctLjAzNS40My0uMDM2Ljk5My0uMDM2IDEuODU2djIuNGMwIC44NjMuMDAxIDEuNDI2LjAzNiAxLjg1Ni4wMzQuNDE0LjA5Mi41OC4xMzguNjdhMS42IDEuNiAwIDAwLjcuN2MuMDkuMDQ2LjI1Ni4xMDQuNjcuMTM4LjQzLjAzNS45OTMuMDM2IDEuODU2LjAzNmg2LjRjLjg2MyAwIDEuNDI2LS4wMDEgMS44NTYtLjAzNi40MTQtLjAzNC41OC0uMDkyLjY3LS4xMzhhMS42IDEuNiAwIDAwLjctLjdjLjA0Ni0uMDkuMTA0LS4yNTYuMTM4LS42Ny4wMzUtLjQzLjAzNi0uOTkzLjAzNi0xLjg1NlY2LjhjMC0uODYzLS4wMDEtMS40MjYtLjAzNi0xLjg1Ni0uMDM0LS40MTQtLjA5Mi0uNTgtLjEzOC0uNjdhMS42IDEuNiAwIDAwLS43LS43Yy0uMDktLjA0Ni0uMjU2LS4xMDQtLjY3LS4xMzgtLjQzLS4wMzUtLjk5My0uMDM2LTEuODU2LS4wMzZoLTEuMTE3eiJ9KV19KX19LDU0NzI2OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9big3NDg0OCk7ZS5BPWZ1bmN0aW9uKCl7cmV0dXJuKDAsci5qc3gpKCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHdpZHRoOiIxNiIsaGVpZ2h0OiIxNiIsdmlld0JveDoiMCAwIDE2IDE2IixmaWxsOiJub25lIixjaGlsZHJlbjooMCxyLmpzeCkoInBhdGgiLHtkOiJNNS40Mjc3MyA0LjcwODk4QzUuNDYzODcgNC44NTI1NCA1LjUzODA5IDQuOTg4MjggNS42NTAzOSA1LjEwMDU5TDguNTQ5MzIgOEw1LjY0ODkzIDEwLjkwMDRDNS4zMTY4OSAxMS4yMzI0IDUuMzE2ODkgMTEuNzcwNSA1LjY0ODkzIDEyLjEwMjVDNS45ODA5NiAxMi40MzM2IDYuNTE5MDQgMTIuNDMzNiA2Ljg1MTA3IDEyLjEwMjVMMTAuMzUxNiA4LjYwMDU5QzEwLjU1OTEgOC4zOTM1NSAxMC42MzY3IDguMTA0NDkgMTAuNTg1IDcuODM2OTFDMTAuNTUzNyA3LjY3NTc4IDEwLjQ3NjEgNy41MjI0NiAxMC4zNTE2IDcuMzk4NDRMNi44NTI1NCAzLjg5OTQxQzYuNTIwNTEgMy41NjczOCA1Ljk4MjQyIDMuNTY3MzggNS42NTAzOSAzLjg5OTQxQzUuNDMwNjYgNC4xMTgxNiA1LjM1NjQ1IDQuNDI4NzEgNS40Mjc3MyA0LjcwODk4WiIsZmlsbDoiY3VycmVudENvbG9yIn0pfSl9fSwyMjUzMjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oNzQ4NDgpO2UuQT1mdW5jdGlvbigpe3JldHVybigwLHIuanN4KSgic3ZnIix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix2aWV3Qm94OiIwIDAgMTYgMTYiLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIscm9sZToicHJlc2VudGF0aW9uIixjaGlsZHJlbjooMCxyLmpzeCkoInBhdGgiLHtkOiJNNi41IDMuNUwxMSA4TDYuNSAxMi41IixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjEuNzUiLHN0cm9rZUxpbmVjYXA6InNxdWFyZSJ9KX0pfX0sMTM2MDY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDg4NTc2KSxvPW4oNzQ4NDgpO2UuQT1mdW5jdGlvbih0KXt2YXIgZT10LmNvbG9yLG49KDAsci5BKSgpLGk9U3RyaW5nKG4mJmUmJm5bZV18fG4uaWNvbkRlZmF1bHQpO3JldHVybigwLG8uanN4KSgic3ZnIix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix2aWV3Qm94OiIwIDAgMTYgMTYiLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsY2hpbGRyZW46KDAsby5qc3gpKCJwYXRoIix7ZDoiTTYuMjUgMTEuNUw5Ljc1IDhMNi4yNSA0LjUiLHN0cm9rZTppLHN0cm9rZVdpZHRoOiIxLjciLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSl9KX19LDU2ODY2OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0E6ZnVuY3Rpb24oKXtyZXR1cm4gb319KTt2YXIgcj1uKDc0ODQ4KTtmdW5jdGlvbiBvKCl7cmV0dXJuKDAsci5qc3hzKSgic3ZnIix7ImFyaWEtaGlkZGVuIjoidHJ1ZSIsdmlld0JveDoiMSAxIDYwIDYwIixjaGlsZHJlbjpbKDAsci5qc3gpKCJwYXRoIix7ZDoiTTI3Ljc2NSA0Mi4yNDRjLTguNjE0IDAtMTUuNjIyLTcuMDA4LTE1LjYyMi0xNS42MjJTMTkuMTUxIDExIDI3Ljc2NSAxMXMxNS42MjIgNy4wMDggMTUuNjIyIDE1LjYyMi03LjAwNyAxNS42MjItMTUuNjIyIDE1LjYyMnptMC0yOC4zOThjLTcuMDQ1IDAtMTIuNzc1IDUuNzMtMTIuNzc1IDEyLjc3NXM1LjczIDEyLjc3NSAxMi43NzUgMTIuNzc1IDEyLjc3NS01LjczIDEyLjc3NS0xMi43NzUtNS43My0xMi43NzUtMTIuNzc1LTEyLjc3NXoifSksKDAsci5qc3gpKCJwYXRoIix7ZDoiTTM0Ljg2OSAzOS4xNDZsNC4wMTQtMy43MzggOS4yODYgOS4xMTRhMy4xNjQgMy4xNjQgMCAwMS0uMDcgNC41NjJsLS4wNzEuMDY2YTMuMTYzIDMuMTYzIDAgMDEtNC41NjEtLjI1N2wtOC41OTgtOS43NDd6TTI3Ljc3IDM0LjE3M2MtMi44ODIgMC01LjQxMi0uODc2LTcuNjU2LTIuNTI2YTEuMDAyIDEuMDAyIDAgMDEtLjM1LS44MWMuMDA4LS40NjEuNDQ1LS45NjkgMS4wMi0uOTU5LjI4NC4wMDUuNDkzLjE1My43MTMuMzA4IDEuODM3IDEuMzAyIDMuODMyIDEuOTcxIDYuMjc1IDEuOTcxIDEuODc1IDAgNC40OTItLjQ3NiA2LjMxNC0yLjExOGEuOTguOTggMCAwMS42MzgtLjI2MS45Mi45MiAwIDAxLjY4Ni4yNDFjLjIyMi4yMDkuMzMuNTI3LjMzNi43MzVhMS4wMiAxLjAyIDAgMDEtLjMxOC43NzVjLTEuMzMzIDEuMjM3LTQuMjYyIDIuNjQ0LTcuNjU4IDIuNjQ0eiJ9KV19KX19LDY5NzI1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9big4ODU3Niksbz1uKDc0ODQ4KTtlLkE9ZnVuY3Rpb24odCl7dmFyIGU9dC5jb2xvcixuPXZvaWQgMD09PWU/InRleHREZWZhdWx0IjplLGk9dC5pc1BsYXlpbmcsYT12b2lkIDAhPT1pJiZpLHU9KDAsci5BKSgpLHM9U3RyaW5nKHVbbl0pO3JldHVybiBhPygwLG8uanN4KSgic3ZnIix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix2aWV3Qm94OiIwIDAgMTYgMTYiLGZpbGw6Im5vbmUiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsY2hpbGRyZW46KDAsby5qc3gpKCJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjEwIixoZWlnaHQ6IjEwIixyeDoiMSIsZmlsbDpzfSl9KTooMCxvLmpzeHMpKCJzdmciLHt3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHZpZXdCb3g6IjAgMCAxNiAxNiIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixjaGlsZHJlbjpbKDAsby5qc3gpKCJwYXRoIix7ZDoiTTMgNS41VjEwLjVINS41TDkgMTRWMkw1LjUgNS41SDNaIixmaWxsOnMsc3Ryb2tlOnMsc3Ryb2tlV2lkdGg6IjEiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KSwoMCxvLmpzeCkoInBhdGgiLHtkOiJNMTEgNS41QzExLjggNi4zIDEyLjI1IDcuNCAxMi4yNSA4LjVDMTIuMjUgOS42IDExLjggMTAuNyAxMSAxMS41IixzdHJva2U6cyxzdHJva2VXaWR0aDoiMS41IixzdHJva2VMaW5lY2FwOiJyb3VuZCJ9KSwoMCxvLmpzeCkoInBhdGgiLHtkOiJNMTMgMy41QzE0LjMgNC44IDE1IDYuNiAxNSA4LjVDMTUgMTAuNCAxNC4zIDEyLjIgMTMgMTMuNSIsc3Ryb2tlOnMsc3Ryb2tlV2lkdGg6IjEuNSIsc3Ryb2tlTGluZWNhcDoicm91bmQifSldfSl9fSw4MTcyOTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtBOmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7dmFyIHI9big3NDg0OCk7ZnVuY3Rpb24gbygpe3JldHVybigwLHIuanN4cykoInN2ZyIse3ZpZXdCb3g6IjAgMCAzMCAzMCIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixjaGlsZHJlbjpbKDAsci5qc3gpKCJwYXRoIix7Y2xhc3NOYW1lOiJzdGFyLWJvZHkiLGQ6Ik0xNC4xNTc3IDMuMzQ3NjFDMTQuNDk1OCAyLjYzNDEzIDE1LjUwNDIgMi42MzQxMyAxNS44NDIzIDMuMzQ3NkwxOC44MTM5IDkuNjE4ODhDMTguOTQ5OSA5LjkwNjAyIDE5LjIyMSAxMC4xMDQzIDE5LjUzNDIgMTAuMTQ1OUwyNi4zNzUxIDExLjA1NEMyNy4xNTM0IDExLjE1NzQgMjcuNDY1IDEyLjEyMzIgMjYuODk1NyAxMi42Njc1TDIxLjg5MTMgMTcuNDUxNUMyMS42NjIyIDE3LjY3MDUgMjEuNTU4NyAxNy45OTE0IDIxLjYxNjIgMTguMzA0MkwyMi44NzI1IDI1LjEzNjhDMjMuMDE1NCAyNS45MTQxIDIyLjE5OTYgMjYuNTExIDIxLjUwOTYgMjYuMTMzOUwxNS40NDUyIDIyLjgxOTNDMTUuMTY3NSAyMi42Njc2IDE0LjgzMjUgMjIuNjY3NiAxNC41NTQ4IDIyLjgxOTNMOC40OTAzNyAyNi4xMzM5QzcuODAwNDQgMjYuNTExIDYuOTg0NTYgMjUuOTE0MSA3LjEyNzQ5IDI1LjEzNjhMOC4zODM4MiAxOC4zMDQyQzguNDQxMzQgMTcuOTkxNCA4LjMzNzggMTcuNjcwNSA4LjEwODY4IDE3LjQ1MTVMMy4xMDQzMiAxMi42Njc1QzIuNTM0OTkgMTIuMTIzMiAyLjg0NjYyIDExLjE1NzQgMy42MjQ5IDExLjA1NEwxMC40NjU4IDEwLjE0NTlDMTAuNzc5IDEwLjEwNDMgMTEuMDUwMSA5LjkwNjAyIDExLjE4NjEgOS42MTg4OEwxNC4xNTc3IDMuMzQ3NjFaIixmaWxsOiJjdXJyZW50Q29sb3IifSksKDAsci5qc3gpKCJwYXRoIix7Y2xhc3NOYW1lOiJzdGFyLXN0cm9rZSIsZDoiTTEwLjczNDMgOS40MDQ3OEwxMS4xODYxIDkuNjE4ODhMMTAuNzM0MyA5LjQwNDc4QzEwLjY3MDMgOS41Mzk3MyAxMC41NDQgOS42MzExNiAxMC40IDkuNjUwMjhMMy41NTkxIDEwLjU1ODRDMi4zNTk4MyAxMC43MTc2IDEuODg5OTYgMTIuMTk4MyAyLjc1ODgyIDEzLjAyODlMNy43NjMxNyAxNy44MTI5QzcuODcwMDYgMTcuOTE1MSA3LjkxOTI2IDE4LjA2NTkgNy44OTIwNiAxOC4yMTM4TDYuNjM1NzQgMjUuMDQ2M0M2LjQxODIxIDI2LjIyOTQgNy42NjM0NiAyNy4xNTU3IDguNzMwMTggMjYuNTcyN0wxNC43OTQ2IDIzLjI1ODFDMTQuOTIyOCAyMy4xODggMTUuMDc3MiAyMy4xODggMTUuMjA1NCAyMy4yNTgxTDIxLjI2OTggMjYuNTcyN0MyMi4zMzY1IDI3LjE1NTcgMjMuNTgxOCAyNi4yMjk0IDIzLjM2NDMgMjUuMDQ2M0wyMi4xMDc5IDE4LjIxMzhDMjIuMDgwNyAxOC4wNjU5IDIyLjEyOTkgMTcuOTE1MSAyMi4yMzY4IDE3LjgxMjlMMjcuMjQxMiAxMy4wMjg5QzI4LjExIDEyLjE5ODMgMjcuNjQwMiAxMC43MTc2IDI2LjQ0MDkgMTAuNTU4NEwxOS42IDkuNjUwMjhDMTkuNDU2IDkuNjMxMTYgMTkuMzI5NyA5LjUzOTczIDE5LjI2NTcgOS40MDQ3OEwxNi4yOTQyIDMuMTMzNUMxNS43NzU1IDIuMDM4ODMgMTQuMjI0NSAyLjAzODg0IDEzLjcwNTggMy4xMzM1MUwxMC43MzQzIDkuNDA0NzhaIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlT3BhY2l0eToiMC4yIn0pXX0pfX0sNDUwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9big3NDg0OCk7ZS5BPWZ1bmN0aW9uKCl7cmV0dXJuKDAsci5qc3gpKCJzdmciLHt3aWR0aDoiMTYiLGhlaWdodDoiMTciLHZpZXdCb3g6IjAgMCAxNiAxNyIsZmlsbDoibm9uZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixjaGlsZHJlbjooMCxyLmpzeCkoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsY2xpcFJ1bGU6ImV2ZW5vZGQiLGQ6Ik0yLjUgMy41QzEuNjcxNTcgMy41IDEgNC4xNzE1NyAxIDVWNS41VjYuMjVDMSA2LjUyNjE0IDEuMjI4NDIgNi43NDI4IDEuNDkzNCA2LjgyMDUyQzIuMjE5NjYgNy4wMzM1NCAyLjc1IDcuNzA0ODQgMi43NSA4LjVDMi43NSA5LjI5NTE2IDIuMjE5NjYgOS45NjY0NiAxLjQ5MzQgMTAuMTc5NUMxLjIyODQyIDEwLjI1NzIgMSAxMC40NzM5IDEgMTAuNzVWMTEuNVYxMkMxIDEyLjgyODQgMS42NzE1NyAxMy41IDIuNSAxMy41SDEzLjVDMTQuMzI4NCAxMy41IDE1IDEyLjgyODQgMTUgMTJWMTEuNVYxMC43NUMxNSAxMC40NzM5IDE0Ljc3MTYgMTAuMjU3MiAxNC41MDY2IDEwLjE3OTVDMTMuNzgwMyA5Ljk2NjQ2IDEzLjI1IDkuMjk1MTYgMTMuMjUgOC41QzEzLjI1IDcuNzA0ODQgMTMuNzgwMyA3LjAzMzU0IDE0LjUwNjYgNi44MjA1MkMxNC43NzE2IDYuNzQyOCAxNSA2LjUyNjE0IDE1IDYuMjVWNS41VjVDMTUgNC4xNzE1NyAxNC4zMjg0IDMuNSAxMy41IDMuNUgyLjVaTTExIDdMNSA3QzQuNTg1NzkgNyA0LjI1IDYuNjY0MjEgNC4yNSA2LjI1QzQuMjUgNS44MzU3OSA0LjU4NTc5IDUuNSA1IDUuNUgxMUMxMS40MTQyIDUuNSAxMS43NSA1LjgzNTc5IDExLjc1IDYuMjVDMTEuNzUgNi42NjQyMSAxMS40MTQyIDcgMTEgN1oiLGZpbGw6ImN1cnJlbnRDb2xvciJ9KX0pfX0sMzM5MTY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDMyOTgpLG89bigyNjY2NCksaT1uKDc0ODQ4KTtlLkE9ZnVuY3Rpb24odCl7dmFyIGU9dC5vbkNsaWNrO3JldHVybigwLGkuanN4cykoby5BWCx7dmlld0JveDoiMCAwIDI0IDI0IiwiYXJpYS1sYWJlbCI6KDAsci5UbCkoInBhdXNlIiksImFyaWEtaGlkZGVuIjoiZmFsc2UiLG9uQ2xpY2s6ZSxjaGlsZHJlbjpbKDAsaS5qc3gpKCJyZWN0Iix7eDoiNyIseToiNiIsd2lkdGg6IjMiLGhlaWdodDoiMTIiLHJ4OiIxIn0pLCgwLGkuanN4KSgicmVjdCIse3g6IjE0Iix5OiI2Iix3aWR0aDoiMyIsaGVpZ2h0OiIxMiIscng6IjEifSldfSl9fSw4NjMzNDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMzI5OCksbz1uKDI2NjY0KSxpPW4oNzQ4NDgpO2UuQT1mdW5jdGlvbih0KXt2YXIgZT10Lm9uQ2xpY2s7cmV0dXJuKDAsaS5qc3gpKG8uYUcse3ZpZXdCb3g6IjAgMCAyNCAyNCIsImFyaWEtbGFiZWwiOigwLHIuVGwpKCJwbGF5IiksImFyaWEtaGlkZGVuIjoiZmFsc2UiLG9uQ2xpY2s6ZSxjaGlsZHJlbjooMCxpLmpzeCkoInBhdGgiLHtkOiJNNyAxNy42OTQyVjYuMzA1NzhDNyA1LjcyNjkzIDcuNjI3OTEgNS4zNjYyOCA4LjEyNzkgNS42NTc5NEwxNy41MTkyIDExLjEzNjJDMTguMTgwNyAxMS41MjIxIDE4LjE4MDcgMTIuNDc3OSAxNy41MTkyIDEyLjg2MzhMOC4xMjc5IDE4LjM0MjFDNy42Mjc5MSAxOC42MzM3IDcgMTguMjczMSA3IDE3LjY5NDJaIn0pfSl9fSw3MzM1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9big3NDg0OCk7ZS5BPWZ1bmN0aW9uKCl7cmV0dXJuKDAsci5qc3gpKCJzdmciLHtmb2N1c2FibGU6ImZhbHNlIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIix3aWR0aDoiMzAiLGhlaWdodDoiMzAiLHZpZXdCb3g6IjAgMCAzMCAzMCIsY2hpbGRyZW46KDAsci5qc3gpKCJwYXRoIix7ZDoiTTE1IDh2My43OTNhLjQ5MS40OTEgMCAwIDEtLjI2OC40NDQuNDk2LjQ5NiAwIDAgMS0uNTg1LS4wOUw5LjM1NCA3LjM1M2EuNS41IDAgMCAxIDAtLjcwOGw0Ljc5My00Ljc5MmEuNS41IDAgMCAxIC44NTQuMzUzVjZhOSA5IDAgMSAxLTguOTQ1IDkuOTk4QzUuOTk0IDE1LjQ1IDYuNDQ3IDE1IDcgMTVjLjU1MiAwIC45OTIuNDUgMS4wNy45OTdBNyA3IDAgMSAwIDE1IDh6In0pfSl9fSw3MzgwMDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oNTE5MTYpLG89big3NDg0OCk7ZS5BPWZ1bmN0aW9uKCl7cmV0dXJuKDAsby5qc3gpKHIuQyx7Zm9jdXNhYmxlOiJmYWxzZSIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsdmlld0JveDoiMCAwIDE2IDE2IixjaGlsZHJlbjooMCxvLmpzeCkoImciLHtjaGlsZHJlbjooMCxvLmpzeCkoInBhdGgiLHtmaWxsOiJjdXJyZW50Q29sb3IiLGQ6Ik0xMy45IDguOEMxMy45IDkuMSAxMy42IDkuMyAxMy4zIDkuMyAxMyA5LjMgMTIuOCA5LjEgMTIuOCA4LjhMMTIuOCA0QzEyLjggMy43IDEzIDMuNSAxMy4zIDMuNSAxMy42IDMuNSAxMy45IDMuNyAxMy45IDRMMTMuOSA4LjggMTMuOSA4LjhaTTEzLjcgMTIuMUMxMy42IDEyLjIgMTEuNiAxMy45IDggMTMuOSA0LjQgMTMuOSAyLjQgMTIuMiAyLjMgMTIuMSAyLjEgMTEuOSAyLjEgMTEuNiAyLjMgMTEuNCAyLjUgMTEuMiAyLjggMTEuMSAzIDExLjMgMyAxMS40IDQuOCAxMi44IDggMTIuOCAxMS4yIDEyLjggMTMgMTEuMyAxMyAxMS4zIDEzLjIgMTEuMSAxMy41IDExLjIgMTMuNyAxMS40IDEzLjkgMTEuNiAxMy45IDExLjkgMTMuNyAxMi4xTDEzLjcgMTIuMVpNMi4xIDRDMi4xIDMuNyAyLjQgMy41IDIuNyAzLjUgMyAzLjUgMy4yIDMuNyAzLjIgNEwzLjIgOC44QzMuMiA5LjEgMyA5LjMgMi43IDkuMyAyLjQgOS4zIDIuMSA5LjEgMi4xIDguOEwyLjEgNCAyLjEgNFpNNC44IDIuOUM0LjggMi42IDUgMi40IDUuMyAyLjQgNS42IDIuNCA1LjkgMi42IDUuOSAyLjlMNS45IDEwLjFDNS45IDEwLjQgNS42IDEwLjYgNS4zIDEwLjYgNSAxMC42IDQuOCAxMC40IDQuOCAxMC4xTDQuOCAyLjkgNC44IDIuOVpNNy41IDIuN0M3LjUgMi40IDcuNyAyLjEgOCAyLjEgOC4zIDIuMSA4LjUgMi40IDguNSAyLjdMOC41IDEwLjRDOC41IDEwLjcgOC4zIDEwLjkgOCAxMC45IDcuNyAxMC45IDcuNSAxMC43IDcuNSAxMC40TDcuNSAyLjcgNy41IDIuN1pNMTAuMSAyLjlDMTAuMSAyLjYgMTAuNCAyLjQgMTAuNyAyLjQgMTEgMi40IDExLjIgMi42IDExLjIgMi45TDExLjIgMTAuMUMxMS4yIDEwLjQgMTEgMTAuNiAxMC43IDEwLjYgMTAuNCAxMC42IDEwLjEgMTAuNCAxMC4xIDEwLjFMMTAuMSAyLjkgMTAuMSAyLjlaTTE0IDBMMiAwQzAuOSAwIDAgMC45IDAgMkwwIDE0QzAgMTUuMSAwLjkgMTYgMiAxNkwxNCAxNkMxNS4xIDE2IDE2IDE1LjEgMTYgMTRMMTYgMkMxNiAwLjkgMTUuMSAwIDE0IDBMMTQgMFoifSl9KX0pfX0sOTgwNTQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7QUg6ZnVuY3Rpb24oKXtyZXR1cm4gaS5BSH0sWjI6ZnVuY3Rpb24oKXtyZXR1cm4gaS5aMn0saTc6ZnVuY3Rpb24oKXtyZXR1cm4gaS5pN30sbUw6ZnVuY3Rpb24oKXtyZXR1cm4gaS5tTH0scjc6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sdzQ6ZnVuY3Rpb24oKXtyZXR1cm4geX0seGs6ZnVuY3Rpb24oKXtyZXR1cm4gZ319KTt2YXIgcj1uKDkwNjQ0KSxvPW4oOTY1NDApLGk9bigxNzQzNyksYT1uKDMyMzUwKSx1PW4oNzQ4NDgpO2Z1bmN0aW9uIHModCl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGModCl9KHQpfHxmdW5jdGlvbih0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9dFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT10WyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20odCl9KHQpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gYyh0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9jKHQsZSk6dm9pZCAwfX0odCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gYyh0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkoZSk7bjxlO24rKylyW25dPXRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gbD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sbCh0KX1mdW5jdGlvbiBmKCl7cmV0dXJuIGY9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxmLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgZD1bImJ1dHRvbiIsImlucHV0Iiwic2VsZWN0IiwidGV4dGFyZWEiXSxwPVsiaW1nIiwidmlkZW8iXTtmdW5jdGlvbiBoKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4oMCxvLmZvcndhcmRSZWYpKChmdW5jdGlvbihuLHIpe3ZhciBvPWZ1bmN0aW9uKHQpe3ZhciBlPWYoe30sdCk7cmV0dXJuIG51bGwhPWUuc3R5bGUmJiJvYmplY3QiIT09bChlLnN0eWxlKSYmZGVsZXRlIGUuc3R5bGUsZX0obiksaT1mKHt9LG8sdChvKSksYT1mKHt9LGkse3JlZjpyfSkscz1lO3JldHVybigwLHUuanN4KShzLGYoe30sYSkpfSkpfX12YXIgdj1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgbj1hcmd1bWVudHMubGVuZ3RoLG89bmV3IEFycmF5KG4pLGk9MDtpPG47aSsrKW9baV09YXJndW1lbnRzW2ldO3ZhciB1PSgwLHIuQSkodCxmKHt9LHt0YXJnZXQ6ImVubnA5NzIwIn0sZSkpLmFwcGx5KHZvaWQgMCxmdW5jdGlvbih0LGUsbil7aWYoZSYmIUFycmF5LmlzQXJyYXkoZSkmJiJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpe3ZhciByPWUubGVuZ3RoO3JldHVybiBjKGUsdm9pZCAwIT09biYmbjxyP246cil9cmV0dXJuIHQoZSxuKX0ocyxvKSk7dS5kaXNwbGF5TmFtZT0iRW1vdGlvbiI7dmFyIGw9aChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49e307aWYoInN0cmluZyIhPXR5cGVvZiB0fHwiLTEiPT09ZS50YWJJbmRleHx8IWUub25DbGljaylyZXR1cm4gbjt2YXIgcj0iYSI9PT10JiZlLmhyZWYsbz0tMSE9PWQuaW5kZXhPZih0KSxpPS0xIT09cC5pbmRleE9mKHQpO3JldHVybiExPT09ZS5yb2xlfHxyfHxvfHxpfHwobi5yb2xlPWUucm9sZXx8ImJ1dHRvbiIpLHJ8fG98fChuLm9uS2V5RG93bj1lLm9uS2V5RG93bnx8KDAsYS5oZikoZS5vbkNsaWNrKSksZS5jbGFzc05hbWUmJihuLmNsYXNzTmFtZT1lLmNsYXNzTmFtZSksbi50YWJJbmRleD1lLnRhYkluZGV4fHwiMCIsbn19KHQpKSh1KTtyZXR1cm4gbC5kaXNwbGF5TmFtZT0ic3RyaW5nIj09dHlwZW9mIHQ/IlN0eWxlZC4iK3Q6IlN0eWxlZCgpIixsLmNsYXNzTmFtZT11LGx9fTtmdW5jdGlvbiB5KHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS50aGVtZVt0XX19ZnVuY3Rpb24gZyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGVbdF19fWZ1bmN0aW9uIG0oKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxlPW5ldyBBcnJheSh0KSxuPTA7bjx0O24rKyllW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gZS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPXQueCxuPXZvaWQgMD09PWU/MDplLHI9dC55LG89dm9pZCAwPT09cj8wOnIsaT10LmJsdXIsYT12b2lkIDA9PT1pPzA6aSx1PXQuc3ByZWFkLHM9dm9pZCAwPT09dT8wOnUsYz10LmNvbG9yLGw9dC5pbnNldDtyZXR1cm4odm9pZCAwIT09bCYmbD8iaW5zZXQgIjoiIikrbisicHggIitvKyJweCAiK2ErInB4ICIrcysicHggIitjfSkpLmpvaW4oIiwgIil9ZS5BeT12fSw4ODMzMzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtRMzpmdW5jdGlvbigpe3JldHVybiBzfSxoMzpmdW5jdGlvbigpe3JldHVybiBpfSxtQjpmdW5jdGlvbigpe3JldHVybiByfSx1YjpmdW5jdGlvbigpe3JldHVybiBhfSx5azpmdW5jdGlvbigpe3JldHVybiB1fSx6UjpmdW5jdGlvbigpe3JldHVybiBvfX0pO3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiB0W3QuaW5wdXQ9MF09ImlucHV0Iix0W3QudGV4dD0xXT0idGV4dCIsdFt0LmRyb3Bkb3duPTJdPSJkcm9wZG93biIsdFt0LnNjYWxlPTNdPSJzY2FsZSIsdFt0Lm11bHRpU2VsZWN0PTRdPSJtdWx0aVNlbGVjdCIsdH0oe30pLG89ZnVuY3Rpb24odCl7cmV0dXJuIHRbdC5iYW5uZXI9MF09ImJhbm5lciIsdFt0LnBvc3Q9MV09InBvc3QiLHR9KHt9KSxpPWZ1bmN0aW9uKHQpe3JldHVybiB0W3QucmVxdWlyZWQ9LTFdPSJyZXF1aXJlZCIsdFt0LnRleHQ9MF09InRleHQiLHRbdC5udW1iZXI9MV09Im51bWJlciIsdFt0LmVtYWlsPTJdPSJlbWFpbCIsdFt0LnBob25lPTNdPSJwaG9uZSIsdH0oe30pLGE9ZnVuY3Rpb24odCl7cmV0dXJuIHRbdC5udW1lcmljPTBdPSJudW1lcmljIix0W3Quc3RhcnM9MV09InN0YXJzIix0W3QuZW1vamk9Ml09ImVtb2ppIix0W3QubnBzPTNdPSJucHMiLHR9KHt9KSx1PWZ1bmN0aW9uKHQpe3JldHVybiB0W3QuY29udGVudD0wXT0iY29udGVudCIsdFt0LnF1ZXN0aW9uPTFdPSJxdWVzdGlvbiIsdFt0LmludHJvPTJdPSJpbnRybyIsdFt0LnRoYW5rWW91PTNdPSJ0aGFua1lvdSIsdH0oe30pLHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRbdC5vcGVuVXJsQ3VycmVudFRhYj0wXT0ib3BlblVybEN1cnJlbnRUYWIiLHRbdC5vcGVuVXJsTmV3VGFiPTFdPSJvcGVuVXJsTmV3VGFiIix0fSh7fSl9LDQwMjM4OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse2I1OmZ1bmN0aW9uKCl7cmV0dXJuIGh9LHlKOmZ1bmN0aW9uKCl7cmV0dXJuIHB9LHpqOmZ1bmN0aW9uKCl7cmV0dXJuIGR9fSk7dmFyIHI9bigzODk5KSxvPW4oMjUxMTUpO2Z1bmN0aW9uIGkoKXtyZXR1cm4gaT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGkuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBhPW4oNzgzOTApLHU9T2JqZWN0LmFzc2lnbixzPXZvaWQgMDtmdW5jdGlvbiBjKHQpe2lmKHQpcmV0dXJuLTEhPT10LmluZGV4T2YoImV1LmludGVyY29tLmlvIik/Imh0dHBzOi8vYXBpLWlhbS5ldS5pbnRlcmNvbS5pbyI6LTEhPT10LmluZGV4T2YoImF1LmludGVyY29tLmlvIik/Imh0dHBzOi8vYXBpLWlhbS5hdS5pbnRlcmNvbS5pbyI6Imh0dHBzOi8vYXBpLWlhbS5pbnRlcmNvbS5pbyJ9ZnVuY3Rpb24gbCgpe3ZhciB0PXUoe30sYSksZT1mdW5jdGlvbigpe3ZhciB0LGU9d2luZG93LnBhcmVudHx8d2luZG93O2lmKGUpe3ZhciBuPShudWxsPT1lfHxudWxsPT0odD1lLmludGVyY29tU2V0dGluZ3MpP3ZvaWQgMDp0LmFwaV9iYXNlKXx8ZnVuY3Rpb24odCl7dmFyIGU9dC5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJtZXRhW25hbWU9aW50ZXJjb20tanMtYXBpLWJhc2VdIik7cmV0dXJuIG51bGw9PWU/dm9pZCAwOmUuY29udGVudH0oZSk7aWYoIW58fCgwLG8uQTgpKG4pKXJldHVybiBuOygwLHIualApKCJJbnZhbGlkIGFwaV9iYXNlIGNvbmZpZ3VyYXRpb24gZGV0ZWN0ZWQ6ICIrbisiLiBNdXN0IGJlIGEgdmFsaWQgaHR0cDovLyBvciBodHRwczovLyBVUkwuIFVzaW5nIGRlZmF1bHQuIil9fSgpLG49e2FwaV9iYXNlOmUsdGVsZW1ldHJ5X2Jhc2U6YyhlKX07cmV0dXJuIG4uYXBpX2Jhc2U/aSh7fSx0LG4pOnR9dmFyIGY9dm9pZCAwO2Z1bmN0aW9uIGQoKXtyZXR1cm4gc3x8KHM9bCgpKSxmfHwoZj1uZXcgUHJveHkocyx7c2V0OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4iYXBpX2Jhc2UiPT09ZT8oKDAsci5qUCkoIkRpcmVjdCBtdXRhdGlvbiBvZiBhcGlfYmFzZSBpcyBub3QgYWxsb3dlZC4gVXNlIHNldENvbmZpZ1ZhbHVlKCdhcGlfYmFzZScsIHZhbHVlKSBpbnN0ZWFkLiBBdHRlbXB0ZWQgdmFsdWU6ICIrbiksITEpOih0W2VdPW4sITApfX0pKSxmfWZ1bmN0aW9uIHAodCxlKXtpZihkKCkscyl7aWYoImFwaV9iYXNlIj09PXQpe2lmKCEoMCxvLkE4KShlKSlyZXR1cm4gdm9pZCgwLHIualApKCJJbnZhbGlkIGFwaV9iYXNlIGNvbmZpZ3VyYXRpb24gZGV0ZWN0ZWQ6ICIrZSsiLiBNdXN0IGJlIGEgdmFsaWQgaHR0cDovLyBvciBodHRwczovLyBVUkwuIFVzaW5nIGRlZmF1bHQuIik7cy50ZWxlbWV0cnlfYmFzZT1jKGUpfXNbdF09ZX19ZnVuY3Rpb24gaCgpe3JldHVybiExfX0sNzgzOTA6ZnVuY3Rpb24odCl7dC5leHBvcnRzPXtzb3VyY2VfbWFwOiJoaWRkZW4tc291cmNlLW1hcCIsYXBpX2Jhc2U6Imh0dHBzOi8vYXBpLWlhbS5pbnRlcmNvbS5pbyIsdGVsZW1ldHJ5X2Jhc2U6Imh0dHBzOi8vYXBpLWlhbS5pbnRlcmNvbS5pbyIscHVibGljX3BhdGg6Imh0dHBzOi8vanMuaW50ZXJjb21jZG4uY29tLyIseXRfaWZyYW1lX3Byb3h5X3BhdGg6Imh0dHBzOi8vaW50ZXJjb20tc2hlZXRzLmNvbS95b3V0dWJlX2lmcmFtZV9wcm94eSIsc2hlZXRzX3Byb3h5X3BhdGg6Imh0dHBzOi8vaW50ZXJjb20tc2hlZXRzLmNvbS9zaGVldHNfcHJveHkiLHNlbnRyeV9wcm94eV9wYXRoOiJodHRwczovL3d3dy5pbnRlcmNvbS1yZXBvcnRpbmcuY29tL3NlbnRyeS9pbmRleC5odG1sIixpbnN0YWxsX21vZGVfYmFzZToiaHR0cHM6Ly9hcHAuaW50ZXJjb20uY29tIixzZW50cnlfZHNuOiJodHRwczovL2YzMDVkZTY5Y2FjNjRhODRhNDk0NTU2ZDUzMDNkYzJkQGFwcC5nZXRzZW50cnkuY29tLzI0Mjg3IixpbnRlcnNlY3Rpb25fanM6Imh0dHBzOi8vanMuaW50ZXJjb21jZG4uY29tL2ludGVyc2VjdGlvbi9hc3NldHMvYXBwLmpzIixpbnRlcnNlY3Rpb25fc3R5bGVzOiJodHRwczovL2pzLmludGVyY29tY2RuLmNvbS9pbnRlcnNlY3Rpb24vYXNzZXRzL3N0eWxlcy5qcyIsYXJ0aWNsZV9zZWFyY2hfbWVzc2VuZ2VyX2FwcF9pZDoyNyxtb2RlOiJwcm9kdWN0aW9uIn19LDM4OTk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe2NvbnNvbGUmJmNvbnNvbGUuaW5mbyh0KX1mdW5jdGlvbiBvKHQpe2NvbnNvbGUmJmNvbnNvbGUud2Fybih0KX1mdW5jdGlvbiBpKHQpe2NvbnNvbGUmJmNvbnNvbGUuZXJyb3IodCl9bi5kKGUse0RmOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LEZTOmZ1bmN0aW9uKCl7cmV0dXJuIG99LGpQOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSl9LDExNDgxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0NrOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LEY5OmZ1bmN0aW9uKCl7cmV0dXJuIGF9LFRBOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LFZqOmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7dmFyIHI9e2NoZWNrbGlzdHM6ImNoZWNrbGlzdHMiLGNoZWNrbGlzdERldGFpbHM6ZnVuY3Rpb24odCl7cmV0dXJuIHIuY2hlY2tsaXN0cysiLyIrdH0sY2hlY2tsaXN0Q29tcGxldGlvblNjcmVlbjpmdW5jdGlvbih0KXtyZXR1cm4gci5jaGVja2xpc3RzKyIvY29tcGxldGUvIit0fX0sbz01LGk9ODY0ZTUsYT1mdW5jdGlvbih0KXt0KHtwYXJ0aWNsZUNvdW50OjEwMCxzcHJlYWQ6NTAsb3JpZ2luOnt5Oi4zfSx0aWNrczo4MDAsZ3Jhdml0eToyLHNjYWxhcjoxLjN9KX19LDY3MTI1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0k6ZnVuY3Rpb24oKXtyZXR1cm4gcn0sbjpmdW5jdGlvbigpe3JldHVybiBvfX0pO3ZhciByPTQ1MCxvPSIobWF4LXdpZHRoOiAiK3IrInB4KSwgKG1heC13aWR0aDogIisyKnIrInB4KSBhbmQgKG1heC1oZWlnaHQ6ICIrcisicHgpIn0sNTYwMzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtqOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7dmFyIHI9e3NhbGVzX21lc3Nlbmdlcjoic2FsZXNfbWVzc2VuZ2VyIn19LDE0NDcxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse3c6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KTt2YXIgcj17VE9VUjowLEJBTk5FUl9WSUVXOjExLFNVUlZFWV9QUk9HUkVTUzo4NX19LDM2NTc3OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0ZMOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LGEkOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGdLOmZ1bmN0aW9uKCl7cmV0dXJuIG99LHczOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7dmFyIHI9ImluaXRpYWxpc2luZyIsbz0icGVuZGluZyIsaT0iY29ubmVjdGVkIixhPSJkaXNjb25uZWN0ZWQifSwyNjcwMzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtJajpmdW5jdGlvbigpe3JldHVybiBzfSxORDpmdW5jdGlvbigpe3JldHVybiBsfSxVbDpmdW5jdGlvbigpe3JldHVybiBmfSxaTDpmdW5jdGlvbigpe3JldHVybiBjfSxaaDpmdW5jdGlvbigpe3JldHVybiB1fSxrRzpmdW5jdGlvbigpe3JldHVybiBhfSxtcDpmdW5jdGlvbigpe3JldHVybiBofSxySzpmdW5jdGlvbigpe3JldHVybiBkfX0pO3ZhciByPW4oNTA4MDQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LG8uYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGkodCl7cmV0dXJuIG8oe3BhdGg6Ii8iK3QuaWR9LHQpfXZhciBhPWkoe2lkOiJsb2FkaW5nIixpY29uQ29tcG9uZW50OnthY3RpdmU6ci5Ib21lQWN0aXZlLGRlZmF1bHQ6ci5Ib21lfX0pLHU9aSh7aWQ6ImhvbWUiLGljb25Db21wb25lbnQ6e2FjdGl2ZTpyLkhvbWVBY3RpdmUsZGVmYXVsdDpyLkhvbWV9fSkscz1pKHtpZDoibWVzc2FnZXMiLGljb25Db21wb25lbnQ6e2FjdGl2ZTpyLk1lc3NhZ2VzQWN0aXZlLGRlZmF1bHQ6ci5NZXNzYWdlc319KSxjPWkoe2lkOiJoZWxwIixpY29uQ29tcG9uZW50OnthY3RpdmU6ci5IZWxwQWN0aXZlLGRlZmF1bHQ6ci5IZWxwfX0pLGw9aSh7aWQ6Im5ld3MiLGljb25Db21wb25lbnQ6e2FjdGl2ZTpyLk5ld3NBY3RpdmUsZGVmYXVsdDpyLk5ld3N9fSksZj1pKHtpZDoidGFza3MiLGljb25Db21wb25lbnQ6e2FjdGl2ZTpyLlRhc2tBY3RpdmUsZGVmYXVsdDpyLlRhc2t9fSksZD1pKHtpZDoidGlja2V0cyIsaWNvbkNvbXBvbmVudDp7YWN0aXZlOnIuVGlja2V0c0FjdGl2ZSxkZWZhdWx0OnIuVGlja2V0c319KSxwPWkoe2lkOiJuZXdfY29udmVyc2F0aW9uIixpY29uQ29tcG9uZW50OnthY3RpdmU6ci5NZXNzYWdlc0FjdGl2ZSxkZWZhdWx0OnIuTWVzc2FnZXN9LHBhdGg6Ii9tZXNzYWdlcy9jb252ZXJzYXRpb24vbmV3In0pLGg9W2EscCx1LHMsYyxsLGYsZF19LDQwMTI3OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse2U6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KTt2YXIgcj1mdW5jdGlvbih0KXtyZXR1cm4gdFt0LnNoYXJlYWJsZV91cmw9M109InNoYXJlYWJsZV91cmwiLHRbdC50cmlnZ2VyZWRfZnJvbV9jb2RlPTddPSJ0cmlnZ2VyZWRfZnJvbV9jb2RlIix0W3QudHJpZ2dlcmVkX2Zyb21fZW1haWw9OF09InRyaWdnZXJlZF9mcm9tX2VtYWlsIix0fSh7fSl9LDQ5MjQzOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse2g6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KTt2YXIgcj0iZWR1Y2F0ZS5hcnRpY2xlIn0sMjg4MDI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7Q1M6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sWXA6ZnVuY3Rpb24oKXtyZXR1cm4gY30sbUc6ZnVuY3Rpb24oKXtyZXR1cm4gc319KTt2YXIgcj1uKDk2NTQwKSxvPW4oNzQ4NDgpO2Z1bmN0aW9uIGkoKXtyZXR1cm4gaT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGkuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBhPXtoaWRlQ29tcG9zZXI6ITEsaGlkZUludGVyY29tTGluazohMSxoaWRlQ2xhc3NpY0hlYWRlcjohMSxoaWRlQ2xvc2VCdXR0b246ITEsc2hvd0xhdW5jaGVyOiExLGhpZGVMYXVuY2hlcldoZW5PcGVuOiExLGFsd2F5c1Zpc2libGU6ITEsY29udmVyc2F0aW9uT25seTohMSxwbGFuQXdhcmVSb3V0aW5nOiExLG11dGVTb3VuZDohMSxzcGxpdFRhYmxlQmxvY2tzOiExLGltcHJvdmVkQ29kZUJsb2NrUmVuZGVyaW5nOiEwLGRpc2FibGVWaWRlb0F1dG9wbGF5OiExLG9wZW5BcnRpY2xlU291cmNlc0luTmV3VGFiOiExLHN0cmVhbWluZ1RhYmxlUmV2ZWFsOiExLHN1cHBvcnRzRmluVm9pY2VDYWxsOiExLHNwb3RsaWdodE1ldHJpY3NUYWc6ITEsb3BlbnNEaXJlY3RseUludG9Db252ZXJzYXRpb246ITEsaGlkZUV4cGFuZEJ1dHRvbjohMSxoaWRlVGFibGVFeHBhbmRCdXR0b246ITEsaGlkZUNocm9tZUhlYWRlcjohMSxhdXRvRXhwYW5kQ2Fyb3VzZWxJdGVtczohMSxoaWRlUmVhbHRpbWVTdGF0dXNCYW5uZXI6ITEsY2xvc2VDb21wb3Nlck9uQ29udmVyc2F0aW9uRW5kOiExLGlubGluZUZvb3Rlck5vdGljZTohMSxtYXJrQ29udmVyc2F0aW9uUmVhZE9uVmlzaWJsZTohMSxzcG90bGlnaHROb3RpZmljYXRpb25QYXRoOiExLGhpZGVUZWFtSW50cm86ITEsaGlkZVNwZWNpYWxOb3RpY2U6ITEsc2lkZUJ5U2lkZUNhcmRMYXlvdXQ6ITEsc3BvdGxpZ2h0U2hlZXRIZWFkZXI6ITEsZGVmZXJWaWV3TWV0cmljVW50aWxWaXNpYmxlOiExLHJlc3RyaWN0Q29tcG9zZXJJbnB1dFdoZW5EaXNhYmxlZDohMSxjb21wb3Nlck93bnNNb2JpbGVLZXlib2FyZFNjcm9sbDohMSxzaG93Q29sbGFwc2VkRXhwaXJlZENhbGVuZGFyQ2FyZDohMSxzcG90bGlnaHRQcml2YWN5Tm90aWNlRm9vdGVyOiExLGhhc1Nocmlua2VkQ29tcG9zZXJTdGF0ZTohMSxzdXBwcmVzc0xhdW5jaGVyVW5yZWFkQmFkZ2U6ITEsc3VwcHJlc3NDaHJvbWVHcmFkaWVudDohMSxzdXBwcmVzc0NsYXNzaWNOdWRnZTohMSxzaGVsbFZpc2liaWxpdHlGb2xsb3dzSG9zdFN0YXRlOiExLGxhdW5jaGVyVXNlc05ldXRyYWxTdXJmYWNlOiExLHJlc3RyaWN0VGlja2V0TmF2aWdhdGlvblRvTWVzc2FnZXNSb3V0ZTohMSxjb21wYWN0Tm90aWZpY2F0aW9uQ29tcG9zZXJHYXA6ITF9LHU9KDAsci5jcmVhdGVDb250ZXh0KShhKTtmdW5jdGlvbiBzKCl7cmV0dXJuKDAsci51c2VDb250ZXh0KSh1KX1mdW5jdGlvbiBjKHQpe3ZhciBlPXQuY29uZmlnLG49dC5jaGlsZHJlbixzPSgwLHIudXNlTWVtbykoKGZ1bmN0aW9uKCl7cmV0dXJuIGkoe30sYSxlKX0pLFtlXSk7cmV0dXJuKDAsby5qc3gpKHUuUHJvdmlkZXIse3ZhbHVlOnMsY2hpbGRyZW46bn0pfXUuZGlzcGxheU5hbWU9IkxheW91dENvbmZpZ0NvbnRleHQifSw4Mzg4NjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtJczpmdW5jdGlvbigpe3JldHVybiBzfSxLSDpmdW5jdGlvbigpe3JldHVybiB1fSxvRTpmdW5jdGlvbigpe3JldHVybiBhfX0pO3ZhciByPW4oOTY1NDApLG89big3NDg0OCksaT17fSxhPSgwLHIuY3JlYXRlQ29udGV4dCkoaSk7ZnVuY3Rpb24gdSh0KXt2YXIgZT10LmNoaWxkcmVuLG49dC5jdXN0b21pc2F0aW9uO3JldHVybigwLG8uanN4KShhLlByb3ZpZGVyLHt2YWx1ZTpuLGNoaWxkcmVuOmV9KX1mdW5jdGlvbiBzKCl7cmV0dXJuKDAsci51c2VDb250ZXh0KShhKX1hLmRpc3BsYXlOYW1lPSJTdHlsaW5nQ3VzdG9taXNhdGlvbkNvbnRleHQifSw2Nzk3OTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtJczpmdW5jdGlvbigpe3JldHVybiByLklzfSxLSDpmdW5jdGlvbigpe3JldHVybiByLktIfSxvRTpmdW5jdGlvbigpe3JldHVybiByLm9FfX0pO3ZhciByPW4oODM4ODYpfSw4NDA3NzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtBOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7dmFyIHI9big2Njg1NCksbz1uKDg3MTMzKSxpPXtpc0VwaGVtZXJhbDpmdW5jdGlvbigpe3ZhciB0PSgwLHIuJCkoKTtyZXR1cm4hKG51bGw9PXR8fCF0LmxvY2F0aW9uKSYmInRydWUiPT09KDAsby5DSCkodC5sb2NhdGlvbikuaW50ZXJjb21fZGlzYWJsZV9jb29raWVzfSxyZWFkOmZ1bmN0aW9uKHQsZSl7ZT1lfHwodGhpcy5pc0VwaGVtZXJhbCgpPyIiOnBhcmVudC5kb2N1bWVudC5jb29raWUpO3ZhciBuPSIoPzooPzpefFteXSo7KVxccyoiK2VuY29kZVVSSUNvbXBvbmVudCh0KS5yZXBsYWNlKC9bXC1cLlwrXCpdL2csIlxcJCYiKSsiXFxzKlxcPVxccyooW147XSopLiokKXxeLiokIixyPWUubWF0Y2gobmV3IFJlZ0V4cChuKSk7aWYobnVsbCE9PXImJnZvaWQgMCE9PXJbMV0pcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChyWzFdKX0sd3JpdGU6ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PW4mJihuPXt9KTt2YXIgcj1uLG89ci5kb21haW4saT1yLnBhdGgsYT1yLmV4cGlyZXMsdT1yLnNlY3VyZSxzPXIuc2FtZVNpdGUsYz10KyI9IitlO3JldHVybiBvJiYoYys9IjsgZG9tYWluPSIrbyksaSYmKGMrPSI7IHBhdGg9IitpKSxhJiYoYys9IjsgZXhwaXJlcz0iK2EudG9VVENTdHJpbmcoKSkscyYmKGMrPSI7IHNhbWVzaXRlPSIrcyksdSYmKGMrPSI7IHNlY3VyZSIpLHRoaXMuaXNFcGhlbWVyYWwoKXx8ZnVuY3Rpb24odCl7cGFyZW50LmRvY3VtZW50LmNvb2tpZT10fShjKSxjfSxjbGVhcjpmdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj1lLHI9bi5kb21haW4sbz1uLnBhdGgsaT1uZXcgRGF0ZSgwKTtyZXR1cm4gdGhpcy53cml0ZSh0LCIiLHtkb21haW46cixwYXRoOm8sZXhwaXJlczppfSl9fSxhPWl9LDMzMDQ4OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtpZihudWxsIT10KXJldHVybiBuZXcgRGF0ZSgxZTMqdCl9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gRGF0ZS5ub3coKS0xZTMqdH1uLmQoZSx7a1U6ZnVuY3Rpb24oKXtyZXR1cm4gcn0sbUc6ZnVuY3Rpb24oKXtyZXR1cm4gb319KSxlLkF5PXt0aW1lc3RhbXBUb0RhdGU6cixub3c6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1EYXRlLm5vdztyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdCYmISgicHJvdG90eXBlImluIHQpfSgpP0RhdGUubm93KCk6KG5ldyBEYXRlKS5nZXRUaW1lKCl9LGNhbGN1bGF0ZUR1cmF0aW9uSW5NczpvfX0sOTA1MDI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDIyOTc5KTtmdW5jdGlvbiBvKHQpe3JldHVybiBvPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxvKHQpfWZ1bmN0aW9uIGkodCl7cmV0dXJuIHQ/ImRyYWZ0LSIrdDoiZHJhZnQifWZ1bmN0aW9uIGEodCxlLG4pe3JldHVybiBlJiYiIiE9PWU/ci5zLnNldChpKHQpLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGU/e3Y6Mix0ZXh0OnQsYmxvY2tzOmV9Ont0ZXh0OnR9KX0oZSxuKSk6bCh0KX1mdW5jdGlvbiB1KHQpe3ZhciBlPXIucy5nZXQoaSh0KSk7aWYoZSl0cnl7dmFyIG4sbz1KU09OLnBhcnNlKGUpO3JldHVybiBudWxsIT0obj1udWxsPT1vP3ZvaWQgMDpvLnRleHQpP246bnVsbH1jYXRjaCh0KXtyZXR1cm4gbnVsbH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBzKHQpe2lmKCJvYmplY3QiIT09byh0KXx8bnVsbD09PXQpcmV0dXJuITE7dmFyIGU9dCxuPWUudHlwZTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGUudGV4dCYmKCJwYXJhZ3JhcGgiPT09bnx8ImhlYWRpbmciPT09bnx8InN1YmhlYWRpbmciPT09bnx8ImNvZGUiPT09bil9ZnVuY3Rpb24gYyh0KXt2YXIgZT1yLnMuZ2V0KGkodCkpO2lmKCFlKXJldHVybiBudWxsO3RyeXt2YXIgbj1KU09OLnBhcnNlKGUpO3JldHVybiAyPT09KG51bGw9PW4/dm9pZCAwOm4udikmJkFycmF5LmlzQXJyYXkobi5ibG9ja3MpJiZuLmJsb2Nrcy5ldmVyeShzKT9uLmJsb2NrczpudWxsfWNhdGNoKHQpe3JldHVybiBudWxsfX1mdW5jdGlvbiBsKHQpe3JldHVybiByLnMucmVtb3ZlKGkodCkpfWUuQT17c2F2ZURyYWZ0OmEsbG9hZERyYWZ0OnUsbG9hZERyYWZ0QmxvY2tzOmMscmVtb3ZlRHJhZnQ6bCx0cmFuc2ZlckRyYWZ0OmZ1bmN0aW9uKHQsZSl7dmFyIG4scj11KHQpO3ImJmEoZSxyLG51bGwhPShuPWModCkpP246dm9pZCAwKSxsKHQpfSxORVdfQ09OVkVSU0FUSU9OX0RSQUZUX0lEOiJuZXctY29udmVyc2F0aW9uLWRyYWZ0In19LDgzMTQ3OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0xWOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LE1TOmZ1bmN0aW9uKCl7cmV0dXJuIHh9LFpROmZ1bmN0aW9uKCl7cmV0dXJuIE99LGVWOmZ1bmN0aW9uKCl7cmV0dXJuIEF9LGY1OmZ1bmN0aW9uKCl7cmV0dXJuIEV9LGwyOmZ1bmN0aW9uKCl7cmV0dXJuIF99LHdkOmZ1bmN0aW9uKCl7cmV0dXJuIFN9fSk7dmFyIHIsbz1uKDM1MzEpLGk9big5ODYxNiksYT1uKDg4MjkxKTtmdW5jdGlvbiB1KCl7cmV0dXJuIHU9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSx1LmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBzKCl7cz1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLGM9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGwodCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7bCh7fSwiIil9Y2F0Y2godCl7bD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gZCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGI/ZTpiLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgaihyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOkkodCxuLHUpfSksYX1mdW5jdGlvbiBwKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWQ7dmFyIGg9InN1c3BlbmRlZFN0YXJ0Iix2PSJzdXNwZW5kZWRZaWVsZCIseT0iZXhlY3V0aW5nIixnPSJjb21wbGV0ZWQiLG09e307ZnVuY3Rpb24gYigpe31mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIF8oKXt9dmFyIFM9e307bChTLGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIHg9T2JqZWN0LmdldFByb3RvdHlwZU9mLEU9eCYmeCh4KFAoW10pKSk7RSYmRSE9PW4mJnIuY2FsbChFLGEpJiYoUz1FKTt2YXIgQz1fLnByb3RvdHlwZT1iLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFMpO2Z1bmN0aW9uIE8odCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtsKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEEodCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBzPXAodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLGw9Yy52YWx1ZTtyZXR1cm4gbCYmIm9iamVjdCI9PWYobCkmJnIuY2FsbChsLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGwuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCxhLHUpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LGEsdSl9KSk6ZS5yZXNvbHZlKGwpLnRoZW4oKGZ1bmN0aW9uKHQpe2MudmFsdWU9dCxhKGMpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCxhLHUpfSkpfXUocy5hcmcpfXZhciBpO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIEkoZSxuLHIpe3ZhciBvPWg7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PXkpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09Zyl7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9ayh1LHIpO2lmKHMpe2lmKHM9PT1tKWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWgpdGhyb3cgbz1nLHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz15O3ZhciBjPXAoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT9nOnYsYy5hcmc9PT1tKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89ZyxyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIGsoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LGsoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSksbTt2YXIgaT1wKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwsbTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwsbSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCxtKX1mdW5jdGlvbiBMKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIFQodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIGoodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChMLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFAoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW2FdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGk9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBpLm5leHQ9aX19dGhyb3cgbmV3IFR5cGVFcnJvcihmKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIHcucHJvdG90eXBlPV8sbyhDLCJjb25zdHJ1Y3RvciIse3ZhbHVlOl8sY29uZmlndXJhYmxlOiEwfSksbyhfLCJjb25zdHJ1Y3RvciIse3ZhbHVlOncsY29uZmlndXJhYmxlOiEwfSksdy5kaXNwbGF5TmFtZT1sKF8sYywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PXd8fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LF8pOih0Ll9fcHJvdG9fXz1fLGwodCxjLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEMpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LE8oQS5wcm90b3R5cGUpLGwoQS5wcm90b3R5cGUsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QSxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEEoZCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxPKEMpLGwoQyxjLCJHZW5lcmF0b3IiKSxsKEMsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxsKEMsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9UCxqLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aixyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goVCksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLG0pOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSksbX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxUKG4pLG19fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7VChuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6UChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLG19fSxlfWZ1bmN0aW9uIGModCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBsKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBhKHQpe2MoaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpe2MoaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfX1mdW5jdGlvbiBmKHQpe3JldHVybiBmPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxmKHQpfXZhciBkLHAsaD0iMSI9PT13aW5kb3cubmF2aWdhdG9yLmRvTm90VHJhY2ssdj1bImFkZHJlc3MiLCJhZGRyZXNzZXMiLCJlbWFpbCIsImVtYWlsQWRkcmVzcyIsImVtYWlsQWRkcmVzc2VzIiwicGhvbmVOdW1iZXIiLCJwaG9uZSIsIm51bWJlciIsIm5hbWUiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsInVzZXJTdXBwbGllZEVtYWlsIiwiYXV0aFRva2VucyIsImF1dGhfdG9rZW5zIiwiaW5pdGlhbCIsInRleHQiLCJtZXNzZW5nZXJDYXJkcyIsInVybCJdLHk9W10sZz1mdW5jdGlvbiB0KGUpe3JldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKGZ1bmN0aW9uKG4scil7dmFyIG89ZVtyXTtyZXR1cm4gdi5pbmRleE9mKHIpPj0wP25bcl09InJlbW92ZWRJZGVudGlmeWluZ0luZm8iOiJvYmplY3QiIT09ZihvKXx8bnVsbD09PW98fG8gaW5zdGFuY2VvZiBEYXRlP25bcl09bzpuW3JdPXQoby50b0pTP28udG9KUygpOm8pLG59KSxBcnJheS5pc0FycmF5KGUpP1tdOnt9KX0sbT1mdW5jdGlvbih0KXt2YXIgZT0oMCxvLm0pKHQpO3JldHVybiBnKGUpfSxiPWZ1bmN0aW9uKCl7dmFyIHQ9bChzKCkubWFyaygoZnVuY3Rpb24gdCgpe3ZhciBlLHIsbyxhO3JldHVybiBzKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQubmV4dD0yLCgwLGkuQSkoe3Byb21pc2U6ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoW24uZSg3ODcyKSxuLmUoMzMyNildKS50aGVuKG4uYmluZChuLDYwMTc1KSl9fSk7Y2FzZSAyOnJldHVybiBlPXQuc2VudCxyPWUuYWRkVGFnLG89ZS5hZGRFeHRyYSxhPWUuYWRkQnJlYWRjcnVtYixyKCJhcHAuaWQiLGQpLHkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGEodCl9KSkscCYmcC5nZXRTdGF0ZSYmbygic3RhdGUiLCh1PXAuZ2V0U3RhdGUoKSxoPyJyZW1vdmVkSWRlbnRpZnlpbmdJbmZvIjptKHUpKSksdC5hYnJ1cHQoInJldHVybiIsZSk7Y2FzZSA4OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9dmFyIHV9KSx0KX0pKSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSx3PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQ/bmV3IEVycm9yKGUpOnR9LF89ZnVuY3Rpb24oKXt2YXIgdD1sKHMoKS5tYXJrKChmdW5jdGlvbiB0KGUsbil7dmFyIHIsbyxpLHUsYztyZXR1cm4gcygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmlmKHQucHJldj0wLHI9dyhlLCJDYXVnaHQgbnVsbCBvciB1bmRlZmluZWQgZXJyb3IiKSwhKG89ci5tZXNzYWdlfHwiIikubWF0Y2goL2Fib3V0OlwvXC8vKSl7dC5uZXh0PTU7YnJlYWt9cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDU6aWYoISgwLGEuTikobykpe3QubmV4dD03O2JyZWFrfXJldHVybiB0LmFicnVwdCgicmV0dXJuIik7Y2FzZSA3OnJldHVybiB0Lm5leHQ9OSxiKCk7Y2FzZSA5Omk9dC5zZW50LHU9aS5sb2dFcnJvcixjPWkuYWRkRXh0cmEsbiYmT2JqZWN0LmtleXMobikuZm9yRWFjaCgoZnVuY3Rpb24odCl7dm9pZCAwIT09blt0XSYmbnVsbCE9PW5bdF0mJmModCxuW3RdKX0pKSx1KHIpLHQubmV4dD0xODticmVhaztjYXNlIDE2OnQucHJldj0xNix0LnQwPXQuY2F0Y2goMCk7Y2FzZSAxODpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsbnVsbCxbWzAsMTZdXSl9KSkpO3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksUz1mdW5jdGlvbigpe3ZhciB0PWwocygpLm1hcmsoKGZ1bmN0aW9uIHQoZSxuLHIpe3ZhciBvLGksYSx1LGM7cmV0dXJuIHMoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLHZvaWQgMD09PXImJihyPXt9KSx0LnByZXY9MixsPSJDYXVnaHQgbnVsbCBvciB1bmRlZmluZWQgbWVzc2FnZSIsbz1udWxsPT0ocz1lKT9sOnMsdC5uZXh0PTYsYigpO2Nhc2UgNjppPXQuc2VudCxhPWkubG9nTWVzc2FnZSx1PWkuYWRkVGFnLGM9aS5hZGRFeHRyYSxPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdSh0LG5bdF0pfSkpLE9iamVjdC5rZXlzKHIpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZvaWQgMCE9PXJbdF0mJm51bGwhPT1yW3RdJiZjKHQsclt0XSl9KSksYShvKSx0Lm5leHQ9MTc7YnJlYWs7Y2FzZSAxNTp0LnByZXY9MTUsdC50MD10LmNhdGNoKDIpO2Nhc2UgMTc6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX12YXIgcyxsfSksdCxudWxsLFtbMiwxNV1dKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHg9ZnVuY3Rpb24odCl7dC5vbmVycm9yPWZ1bmN0aW9uKHQsZSxuLHIsbyl7aWYodCYmL1Jlc2l6ZU9ic2VydmVyLiovLnRlc3QodCkpcmV0dXJuITE7aWYoZSYmZS5tYXRjaCgvXmh0dHBzPzpcL1wvLykmJiFlLm1hdGNoKC9odHRwcz86XC9cLyhqc1wuaW50ZXJjb21jZG5cLmNvbXxpbnRlcmNvbS1zaGVldHNcLmNvbXx3aWRnZXRcLmludGVyY29tXC5pbykvKSlyZXR1cm4hMTt2YXIgaT17ZXJyb3JNZXNzYWdlOnQsZXJyb3JVcmw6ZSxlcnJvckxpbmU6bixlcnJvckNvbHVtbjpyfTtyZXR1cm4gXyh3KG8sIndpbmRvdy5vbmVycm9yIGNhdWdodCBudWxsIG9yIHVuZGVmaW5lZCBlcnJvciIpLGkpfSx0Lm9udW5oYW5kbGVkcmVqZWN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBfKHcodC5yZWFzb24sIlVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCBudWxsIG9yIHVuZGVmaW5lZCByZWFzb24iKSl9fSxFPWZ1bmN0aW9uKHQpe3QmJihkPXQpfSxDPWZ1bmN0aW9uKHQpe3QmJihwPXQpfSxPPWZ1bmN0aW9uKHQpe3kucHVzaCh1KHt9LHQse3RpbWVzdGFtcDoobmV3IERhdGUpLnRvSVNPU3RyaW5nKCl9KSl9LEE9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB5LnB1c2goe21lc3NhZ2U6ZS50eXBlLGNhdGVnb3J5OiJyZWR1eC1hY3Rpb24iLHRpbWVzdGFtcDoobmV3IERhdGUpLnRvSVNPU3RyaW5nKCl9KSx0KGUpfX19O251bGwhPShyPXdpbmRvdykmJm51bGwhPShyPXIucGFyZW50KSYmci5pbnRlcmNvbVNldHRpbmdzJiZFKHdpbmRvdy5wYXJlbnQuaW50ZXJjb21TZXR0aW5ncy5hcHBfaWQpfSw5NDU2NDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oODM1MTUpLG4oODY0ODkpLG4oNDg2NDIpLG4oMzExMzMpLG4oNzA2NDApLG4oNDExMjgpLG4oOTU3NTUpLG4oMzY4OSksbigyMTgzOCksbig2MjAzNSksbig5NTg0Myksbig3OTQzMiksbig4MjYyNyksbig3NTY3MCksbigxOTMyMiksbig1ODgwKSxuKDQ1NzczKSxuKDgzMzk2KSxuKDg0MjE2KSxuKDE4OTQ0KSxuKDE3ODcwKSxuKDYwMjQzKSxuKDYwODUpLG4oMjg5MjEpLG4oODEzMDgpLG4oNDk3MyksbigzNDkyKSxuKDg0NDY3KSxuKDI2NzM2KSxuKDU0NzU0KSxuKDk5MDc4KSxuKDkxOTU0KSxuKDg1MTgzKSxuKDk2MzgwKSxuKDkxMDU5KSxuKDc0NTIpO3ZhciByPW4oMjI5NzkpLG89bigxNzc3Nyk7aWYodm9pZCAwIT09d2luZG93JiZ2b2lkIDAhPT13aW5kb3cuT2JqZWN0KXt0cnl7dmFyIGksYT0oMCxvLmEpKG51bGw9PShpPXdpbmRvdyl8fG51bGw9PShpPWkucGFyZW50KT92b2lkIDA6aS5sb2NhdGlvbiwiaW50ZXJjb21fc3VydmV5X2lkIik7YSYmci5MLnNldCgic3VydmV5X3BlbmRpbmdfdHJpZ2dlciIsYSl9Y2F0Y2godCl7fW4oMzU1NjgpfX0sNzExMDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHskQjpmdW5jdGlvbigpe3JldHVybiB3fSxCZzpmdW5jdGlvbigpe3JldHVybiBqfSxGVjpmdW5jdGlvbigpe3JldHVybiB2fSxGcDpmdW5jdGlvbigpe3JldHVybiBTfSxJbzpmdW5jdGlvbigpe3JldHVybiBffSxONTpmdW5jdGlvbigpe3JldHVybiB5fSxPTzpmdW5jdGlvbigpe3JldHVybiBifSxhTjpmdW5jdGlvbigpe3JldHVybiBnfSxlRDpmdW5jdGlvbigpe3JldHVybiBPfSxoczpmdW5jdGlvbigpe3JldHVybiBtfSx2aTpmdW5jdGlvbigpe3JldHVybiBDfX0pO3ZhciByPW4oNzczNiksbz1uKDMyOTgpLGk9big2NzA5OCksYT1uLm4oaSksdT1uKDExOTUpLHM9bigzODg4MyksYz1uKDczNTU3KTtmdW5jdGlvbiBsKHQsZSl7dmFyIG49InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG4pcmV0dXJuKG49bi5jYWxsKHQpKS5uZXh0LmJpbmQobik7aWYoQXJyYXkuaXNBcnJheSh0KXx8KG49ZnVuY3Rpb24odCxlKXtpZih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIGYodCxlKTt2YXIgbj17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/Zih0LGUpOnZvaWQgMH19KHQpKXx8ZSYmdCYmIm51bWJlciI9PXR5cGVvZiB0Lmxlbmd0aCl7biYmKHQ9bik7dmFyIHI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcj49dC5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOnRbcisrXX19fXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX1mdW5jdGlvbiBmKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn12YXIgZD1bImltYWdlIiwiYXR0YWNobWVudExpc3QiLCJ2aWRlbyIsInZpZGVvUmVwbHkiLCJ2aWRlb0ZpbGUiLCJtZXNzZW5nZXJDYXJkIl0scD1bImltYWdlIiwidmlkZW8iLCJ2aWRlb1JlcGx5IiwidmlkZW9GaWxlIiwibm90aWZpY2F0aW9uQ2hhbm5lbHNDYXJkIl0saD1be3VzZXI6InNlbnRfYW5faW1hZ2UiLGFkbWluOiJzZW50X3lvdV9hbl9pbWFnZSJ9LHt1c2VyOiJzZW50X2FuX2F0dGFjaG1lbnQiLGFkbWluOiJzZW50X3lvdV9hbl9hdHRhY2htZW50In0se3VzZXI6InNlbnRfYV92aWRlbyIsYWRtaW46InNlbnRfeW91X2FfdmlkZW8ifSx7dXNlcjoic2VudF9hX3ZpZGVvX3JlcGx5IixhZG1pbjoic2VudF95b3VfYV92aWRlb19yZXBseSJ9LHt1c2VyOiJzZW50X2FfdmlkZW8iLGFkbWluOiJzZW50X3lvdV9hX3ZpZGVvIn0se3VzZXI6InNlbnRfYW5fYXBwIixhZG1pbjoic2VudF95b3VfYW5faW50ZXJhY3RpdmVfbWVzc2FnZSJ9XSx2PWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiJwYXJhZ3JhcGgiPT09dC50eXBlJiYhKG51bGwhPShlPXQudGV4dCkmJmUudHJpbSgpKX0seT1mdW5jdGlvbih0KXtyZXR1cm4hKCF0fHwhdC50eXBlfHwidmlkZW9GaWxlIiE9PXQudHlwZSl9LGc9ZnVuY3Rpb24odCl7cmV0dXJuIHAuaW5kZXhPZih0LnR5cGUpPi0xfSxtPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRleHR8fHQuY29udGVudH0sYj1mdW5jdGlvbiB0KGUpe3ZhciBuLGk9KDAscy5IVikoZSk7aWYoaSl7dmFyIGEsdT1pLmJvZHksbD1pLmF1dGhvcixmPSEobnVsbD09KG49aS5ib2R5KXx8IW4uc29tZShnKSk7dSYmQXJyYXkuaXNBcnJheSh1KSYmTCh1WzBdKSYmKGE9QSh1KSk7dmFyIGQscD1FKHUpLGg9ayh1LGwpO2lmKGE9MD09PXAubGVuZ3RoJiZoP2g6cCwoMCxyLmlpKShpKSlyZXR1cm4gdChlLnNsaWNlKDAsZS5sZW5ndGgtMSkpO2lmKCgwLHIuYVQpKGkpJiYoYT0oMCxvLlRsKSgib3BlcmF0b3JfYXNrZWRfZm9yX2F0dHJpYnV0ZSIse2F0dHJpYnV0ZTp4KGkpfSksZj0hMCksKDAsci5rNCkoaSkpYT0oMCxjLkJUKShudWxsPT0oZD1pLmV2ZW50RGF0YSk/dm9pZCAwOmQuc3RhdHVzKTtyZXR1cm4oKDAsci54TSkoaSl8fCgwLHIuQTcpKGkpfHwoMCxyLlA1KShpKSkmJihhPSgwLG8uVGwpKCJzZW50X3lvdV9hbl9pbnRlcmFjdGl2ZV9tZXNzYWdlIiksZj0hMCkse2F1dGhvcjpsLHN1bW1hcnlUZXh0OihhfHwiIikudHJpbSgpLGlzTWV0YWRhdGE6Zn19fSx3PWZ1bmN0aW9uKHQpe3ZhciBlPSgwLHUuaSkodCk7cmV0dXJuIFQoZSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm57dHlwZToicGFyYWdyYXBoIix0ZXh0OnR9fSkpfSxfPWZ1bmN0aW9uKHQpe3ZhciBlPXQubmFtZSxuPXQuY29udGVudFR5cGUscj10LnNpemU7cmV0dXJuW3t0eXBlOiJhdHRhY2htZW50TGlzdCIsYXR0YWNobWVudHM6W3tpZDp0LmlkLHVybDp0LnVybCxuYW1lOmUsY29udGVudFR5cGU6bixzaXplOnJ9XX1dfSxTPWZ1bmN0aW9uKHQsZSxuLHIsbyl7cmV0dXJuW3t0eXBlOiJpbWFnZSIsdXJsOnR8fCIiLHdpZHRoOmUsaGVpZ2h0Om4sYXR0cmlidXRpb246cix0aXRsZTpvfV19LHg9ZnVuY3Rpb24odCl7dmFyIGUsbj1udWxsPT0oZT10LmZvcm0pP3ZvaWQgMDplLmF0dHJpYnV0ZXNbMF07cmV0dXJuIG4/bi5uYW1lfHxuLmlkZW50aWZpZXIudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCIuIiwiICIpOiIifSxFPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiIiO3ZhciBlPXQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4iYnV0dG9uIiE9PXQudHlwZSYmIUwodCl9KSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gSSh0KX0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiEhdH0pKS5qb2luKCIgIik7cmV0dXJuIGEoKShlLnJlcGxhY2UoLzxicj4vZywiICIpKX0sQz01MCxPPWZ1bmN0aW9uKHQpe3JldHVybiB0JiYwIT09dC5sZW5ndGg/YSgpKHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gSSh0KX0pKS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpKToiIn0sQT1mdW5jdGlvbih0KXt2YXIgZT10LmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIEwodCl9KSlbMF07aWYoZSYmZS50aXRsZSlyZXR1cm4gYSgpKGUudGl0bGUpfSxJPWZ1bmN0aW9uKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UidmlkZW9GaWxlIjpjYXNlIm1lc3NlbmdlckNhcmQiOnJldHVybiIiO2Nhc2Uib3JkZXJlZExpc3QiOnJldHVybiB0Lml0ZW1zP3QuaXRlbXMubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiBlKzErIi4gIit0fSkpLmpvaW4oIiwgIik6IiI7Y2FzZSJ1bm9yZGVyZWRMaXN0IjpyZXR1cm4gdC5pdGVtcz90Lml0ZW1zLmpvaW4oIiwgIik6IiI7ZGVmYXVsdDpyZXR1cm4gdC50ZXh0fHx0LmNvbnRlbnR9fSxrPWZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuIiI7dmFyIG49ZnVuY3Rpb24odCl7cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gZC5pbmRleE9mKHQudHlwZSk+LTF9KSlbMF19KHQpO2lmKCFuKXJldHVybiIiO3ZhciByPWQuaW5kZXhPZihuLnR5cGUpLGk9aFtyXTtyZXR1cm4gbnVsbCE9ZSYmZS5pc0FkbWluPygwLG8uVGwpKGkuYWRtaW4pOigwLG8uVGwpKGkudXNlcil9LEw9ZnVuY3Rpb24odCl7cmV0dXJuISghdHx8IXQudHlwZXx8ImxpbmsiIT09dC50eXBlKX0sVD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5zcGxpdCgiXG5cbiIpLG49MDtuPGUubGVuZ3RoO24rKyllW25dPWVbbl0ucmVwbGFjZSgvXG4vZywiPGJyPiIpO3JldHVybiBlLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSl9O2Z1bmN0aW9uIGoodCxlKXtmb3IodmFyIG4scj1bXSxvPVtdLGk9bCh0LCEwKTshKG49aSgpKS5kb25lOyl7dmFyIGE9bi52YWx1ZTstMSE9PWUuaW5kZXhPZihhLnR5cGUpPyhvLmxlbmd0aD4wJiYoci5wdXNoKHt0eXBlOiJjb250ZW50IixibG9ja3M6b30pLG89W10pLHIucHVzaCh7dHlwZToic2VwYXJhdGVkIixibG9jazphfSkpOm8ucHVzaChhKX1yZXR1cm4gby5sZW5ndGg+MCYmci5wdXNoKHt0eXBlOiJjb250ZW50IixibG9ja3M6b30pLHJ9fSwxMzcwOTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtLOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7dmFyIHI9bigyMTE0MSk7ZnVuY3Rpb24gbyh0LGUpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fSh0KXx8ZnVuY3Rpb24odCxlKXt2YXIgbj1udWxsPT10P251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxhLHU9W10scz0hMCxjPSExO3RyeXtpZihpPShuPW4uY2FsbCh0KSkubmV4dCwwPT09ZSl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47cz0hMX1lbHNlIGZvcig7IShzPShyPWkuY2FsbChuKSkuZG9uZSkmJih1LnB1c2goci52YWx1ZSksdS5sZW5ndGghPT1lKTtzPSEwKTt9Y2F0Y2godCl7Yz0hMCxvPXR9ZmluYWxseXt0cnl7aWYoIXMmJm51bGwhPW4ucmV0dXJuJiYoYT1uLnJldHVybigpLE9iamVjdChhKSE9PWEpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIHV9fSh0LGUpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gaSh0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9pKHQsZSk6dm9pZCAwfX0odCxlKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGkodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfXZhciBhPWZ1bmN0aW9uIHQoZSl7aWYoISgwLHIuUSkoZSkpcmV0dXJuIGU7dmFyIG49e307cmV0dXJuIE9iamVjdC5lbnRyaWVzKGUpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByLGE9ZnVuY3Rpb24odCxlLG4pe2lmKGUmJiFBcnJheS5pc0FycmF5KGUpJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXt2YXIgcj1lLmxlbmd0aDtyZXR1cm4gaShlLHZvaWQgMCE9PW4mJm48cj9uOnIpfXJldHVybiB0KGUsbil9KG8sZSwyKSx1PWFbMF0scz1hWzFdLGM9dChzKTtBcnJheS5pc0FycmF5KGMpJiYoYz1jLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSl9KSkpLG5bKHI9dSxyLnRyaW0oKS5yZXBsYWNlKC8oW0EtWl0rKShbQS1aXVthLXpdKS9nLCIkMSAkMiIpLnJlcGxhY2UoLyhbYS16MC05XSkoW0EtWl0pL2csIiQxICQyIikuc3BsaXQoL1teYS16QS1aMC05XSsvKS5maWx0ZXIoQm9vbGVhbikubWFwKChmdW5jdGlvbih0LGUpe3ZhciBuPXQudG9Mb3dlckNhc2UoKTtyZXR1cm4gMD09PWU/bjpuLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK24uc2xpY2UoMSl9KSkuam9pbigiIikpXT1jfSkpLG59fSw2MDM0NTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtDMjpmdW5jdGlvbigpe3JldHVybiBzfSxHazpmdW5jdGlvbigpe3JldHVybiB5fSxNMjpmdW5jdGlvbigpe3JldHVybiB2fSxPbTpmdW5jdGlvbigpe3JldHVybiBmfSxTZzpmdW5jdGlvbigpe3JldHVybiBkfSxmcDpmdW5jdGlvbigpe3JldHVybiBofSxqSzpmdW5jdGlvbigpe3JldHVybiBjfSxzRTpmdW5jdGlvbigpe3JldHVybiBsfSx6RTpmdW5jdGlvbigpe3JldHVybiBwfX0pO3ZhciByPW4oMTc4MzMpLG89bi5uKHIpLGk9bigxMTQ4MSk7ZnVuY3Rpb24gYSh0KXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdSh0KX0odCl8fGZ1bmN0aW9uKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fGZ1bmN0aW9uKHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB1KHQsZSk7dmFyIG49e30udG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbSh0KToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP3UodCxlKTp2b2lkIDB9fSh0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiB1KHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn12YXIgcz1vKCkoImNoZWNrbGlzdHM6ZGVidWciKSxjPWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlZHVjZSgoZnVuY3Rpb24odCxlKXt2YXIgbj1uZXcgRGF0ZSh0LnB1Ymxpc2hlZEF0KTtyZXR1cm4gbmV3IERhdGUoZS5wdWJsaXNoZWRBdCk8bj9lOnR9KSl9LGw9ZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoP3QuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIXQuaXNDb21wbGV0ZX0pKTp2b2lkIDB9LGY9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IERhdGU7cmV0dXJuIGUuc2V0RGF0ZShlLmdldERhdGUoKS1pLlZqKSx0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubGF0ZXN0SW50ZXJhY3Rpb25BdH0pKS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4hdHx8dD5lfSkpfSxkPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiB0JiZ0LnRhc2tHcm91cHMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5wdXNoLmFwcGx5KGUsZnVuY3Rpb24odCxlLG4pe2lmKGUmJiFBcnJheS5pc0FycmF5KGUpJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXt2YXIgcj1lLmxlbmd0aDtyZXR1cm4gdShlLHZvaWQgMCE9PW4mJm48cj9uOnIpfXJldHVybiB0KGUsbil9KGEsdC50YXNrcykpfSkpLGV9LHA9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hMD09PXQuaXNDb21wbGV0ZX0pKX0saD1mdW5jdGlvbih0KXtyZXR1cm4gdC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0LmlzQ29tcGxldGV9KSl9LHY9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5vcmRlci1lLm9yZGVyfSkpWzBdfSx5PWZ1bmN0aW9uKHQpe3ZhciBlPWQodCksbj1wKGUpO3JldHVybiBlLmxlbmd0aC1uLmxlbmd0aD09MH19LDI3MjY5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0dsOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LEoxOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LFNsOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LGE6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sZSQ6ZnVuY3Rpb24oKXtyZXR1cm4gc30sajY6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sdmY6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1uKDk3MTYwKSxvPW4ubihyKSxpPVsicmV0dXJuVG9rZW5OYW1lIiwibGlnaHRDb2xvciIsImRhcmtDb2xvciJdO2Z1bmN0aW9uIGEodCl7cmV0dXJuKDAsci50aW55Y29sb3IpKHQpLmdldEx1bWluYW5jZSgpfXZhciB1PWZ1bmN0aW9uKHQsZSl7cmV0dXJuKDAsci50aW55Y29sb3IpKHQpLmxpZ2h0ZW4oZSkudG9IZXhTdHJpbmcoKX0scz1mdW5jdGlvbih0LGUpe3JldHVybigwLHIudGlueWNvbG9yKSh0KS5kYXJrZW4oZSkudG9IZXhTdHJpbmcoKX0sYz1mdW5jdGlvbih0LGUpe3JldHVybigwLHIudGlueWNvbG9yKSh0KS5zZXRBbHBoYShNYXRoLm1pbihNYXRoLm1heChlLDApLDEpKS50b1JnYlN0cmluZygpfTtmdW5jdGlvbiBsKHQpe3JldHVybi0xIT09WyIjZmZmZmZmIiwiI2ZmZiIsIndoaXRlIl0uaW5kZXhPZih0LnRvTG93ZXJDYXNlKCkpfXZhciBmPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgucm91bmQoMWUzKnIudGlueWNvbG9yLnJlYWRhYmlsaXR5KHQsZSkpLzFlM307ZnVuY3Rpb24gZCh0LGUsbil7dm9pZCAwPT09ZSYmKGU9ImxpZ2h0Iik7dmFyIHI9bnx8e30sYT1yLnJldHVyblRva2VuTmFtZSx1PXZvaWQgMD09PWF8fGEscz1yLmxpZ2h0Q29sb3IsYz12b2lkIDA9PT1zPyIjRkZGRkZGIjpzLGw9ci5kYXJrQ29sb3IsZj12b2lkIDA9PT1sPyIjMjIyMjIyIjpsLGQ9ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PWUmJihlPSJsaWdodCIpO3ZhciByPW58fHt9LGk9ci5taW5pbWFsQ29udHJhc3RSYXRpb0xpZ2h0LGE9dm9pZCAwPT09aT8xLjY6aSx1PXIubWluaW1hbENvbnRyYXN0UmF0aW9EYXJrLHM9dm9pZCAwPT09dT80LjU6dSxjPXIuaXNNb2JpbGVQbGF0Zm9ybSxsPXZvaWQgMCE9PWMmJmN8fCJkYXJrIj09PWU/ImNvbnRyYXN0LXJhdGlvLTQuNSI6Imx1bWluYW5jZSIsZj0iZGFyayI9PT1lP3M6YSxkPW8oKSh7cHJpbWFyeUNvbG9yOnQsdGhlbWVNb2RlOmUsY29udHJhc3RDaGVja01ldGhvZDpsfSkucHJpbWFyeV9vbl93aGl0ZV9jb250cmFzdCxwPWQ+ZjtyZXR1cm57aXNSZWFkYWJsZTpwLHRleHRDb2xvcjpwPyJsaWdodCI6ImRhcmsiLGNvbnRyYXN0UmF0aW86ZH19KHQsZSxmdW5jdGlvbih0LGUpe2lmKG51bGw9PXQpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIHQpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpKXtpZigtMSE9PWUuaW5kZXhPZihyKSljb250aW51ZTtuW3JdPXRbcl19cmV0dXJuIG59KHIsaSkpLHA9ZC5pc1JlYWRhYmxlO3JldHVybiB1P3A/InRleHRPbkludmVyc2UiOiJ0ZXh0RGVmYXVsdCI6cD9jOmZ9fSw2Nzc1MTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtGOmZ1bmN0aW9uKCl7cmV0dXJuIG99LHo6ZnVuY3Rpb24oKXtyZXR1cm4gaX19KTt2YXIgcj1uKDQwMjM4KSxvPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10JiYodD0hMCksKDAsci55SikoImNvbnZlcnNhdGlvbkRlbW9Nb2RlRW5hYmxlZCIsdCl9LGk9ZnVuY3Rpb24oKXt0cnl7dmFyIHQ7cmV0dXJuIShudWxsPT0odD0oMCxyLnpqKSgpKXx8IXQuY29udmVyc2F0aW9uRGVtb01vZGVFbmFibGVkKX1jYXRjaCh0KXtyZXR1cm4hMX19fSw0MDE4OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0FtOmZ1bmN0aW9uKCl7cmV0dXJuIEl9LEhwOmZ1bmN0aW9uKCl7cmV0dXJuIGp9LEk0OmZ1bmN0aW9uKCl7cmV0dXJuIEF9LEpBOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LE1GOmZ1bmN0aW9uKCl7cmV0dXJuIEx9LFE0OmZ1bmN0aW9uKCl7cmV0dXJuIEN9LFF6OmZ1bmN0aW9uKCl7cmV0dXJuIGJ9LFM5OmZ1bmN0aW9uKCl7cmV0dXJuIGt9LFhOOmZ1bmN0aW9uKCl7cmV0dXJuIFJ9LFhVOmZ1bmN0aW9uKCl7cmV0dXJuIHh9LFhjOmZ1bmN0aW9uKCl7cmV0dXJuIHp9LGNBOmZ1bmN0aW9uKCl7cmV0dXJuIEV9LGNHOmZ1bmN0aW9uKCl7cmV0dXJuIG19LGRGOmZ1bmN0aW9uKCl7cmV0dXJuIHl9LGRUOmZ1bmN0aW9uKCl7cmV0dXJuIE59LGh0OmZ1bmN0aW9uKCl7cmV0dXJuIHZ9LGl1OmZ1bmN0aW9uKCl7cmV0dXJuIFB9LGtnOmZ1bmN0aW9uKCl7cmV0dXJuIFN9LG1uOmZ1bmN0aW9uKCl7cmV0dXJuIEh9LHNpOmZ1bmN0aW9uKCl7cmV0dXJuIF99LHU6ZnVuY3Rpb24oKXtyZXR1cm4gT30sd1g6ZnVuY3Rpb24oKXtyZXR1cm4gRn0sd3k6ZnVuY3Rpb24oKXtyZXR1cm4gd30seGY6ZnVuY3Rpb24oKXtyZXR1cm4gVX0sek46ZnVuY3Rpb24oKXtyZXR1cm4gTX19KTt2YXIgcj1uKDM4ODgzKSxvPW4oNjY4MzgpLGk9big5MjQxNyksYT1uKDY5NzQ0KSx1PW4oODMxNDcpLHM9WyJ0eXBlIl07ZnVuY3Rpb24gYygpe3JldHVybiBjPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sYy5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbCh0LGUsbil7aWYoZSYmIUFycmF5LmlzQXJyYXkoZSkmJiJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpe3ZhciByPWUubGVuZ3RoO3JldHVybiBkKGUsdm9pZCAwIT09biYmbjxyP246cil9cmV0dXJuIHQoZSxuKX1mdW5jdGlvbiBmKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBkKHQpfSh0KXx8ZnVuY3Rpb24odCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPXRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9dFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHQpfSh0KXx8ZnVuY3Rpb24odCxlKXtpZih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIGQodCxlKTt2YXIgbj17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/ZCh0LGUpOnZvaWQgMH19KHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGQodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfXZhciBwPU9iamVjdC5hc3NpZ247ZnVuY3Rpb24gaCh0LGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4hIXQmJihudWxsPT10fHxudWxsPT0oZT10LmNvbXBvc2VyU3RhdGUpP3ZvaWQgMDplLndvcmtmbG93QWN0aXZlKX0oZSl8fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIWUmJnR8fHQmJiJib3QiPT09KG51bGw9PWU/dm9pZCAwOmUudXhTdHlsZSl8fHQmJiEobnVsbCE9ZSYmZS51eFN0eWxlKX0odCxlKX12YXIgdj1mdW5jdGlvbih0KXtyZXR1cm4gdC5wYXJ0cy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBudWxsPT0oZT10LmF1dGhvcik/dm9pZCAwOmUuaXNBZG1pbn0pKVswXX0seT1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT0hMCksZyh0LnBhcnRzLGUpfSxnPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9ITApO3ZhciBuPSgobnVsbD09dD92b2lkIDA6dC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3ZhciBuLHI7cmV0dXJuKG51bGw9PShuPXQuYXV0aG9yKT92b2lkIDA6bi5pc0FkbWluKSYmKGV8fCEobnVsbCE9KHI9dC5hdXRob3IpJiZyLmlzQm90KSl9KSkpfHxbXSkuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jcmVhdGVkQXQuZ2V0VGltZSgpLWUuY3JlYXRlZEF0LmdldFRpbWUoKX0pKTtyZXR1cm4oMCxyLkhWKShuKX0sbT1mdW5jdGlvbih0KXtyZXR1cm4gdC5wYXJ0cy5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7dmFyIG47cmV0dXJuIHQrKG51bGwhPShuPWUuYXV0aG9yKSYmbi5pc0FkbWluPzE6MCl9KSwwKX0sYj1mdW5jdGlvbih0KXt2YXIgZSxuO3JldHVybihudWxsPT0oZT10LnBhcnRzKT92b2lkIDA6ZS5sZW5ndGgpPjEmJiEwPT09KG51bGw9PShuPSgwLHIuSFYpKHQucGFydHMpKXx8bnVsbD09KG49bi5hdXRob3IpP3ZvaWQgMDpuLmlzQWRtaW4pfSx3PWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBudWxsPT0oZT10LmF1dGhvcik/dm9pZCAwOmUuaXNCb3R9LF89ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbCE9dC5pZCYmdC5pZD09PWUuaWR8fG51bGwhPXQuY2xpZW50SWQmJnQuY2xpZW50SWQ9PT1lLmNsaWVudElkfSxTPWZ1bmN0aW9uKHQsZSl7aWYoKDAsby5JKShlKSlyZXR1cm4gdC5wYXJ0czt2YXIgbj15KHQpOygwLHUuWlEpKHtjYXRlZ29yeToiZ2V0LWNvbnZlcnNhdGlvbiIsbWVzc2FnZToiTWVyZ2luZyBjb252ZXJzYXRpb24gcGFydHMiLGRhdGE6e2NvbnZlcnNhdGlvbklkOnQuaWQsbGFzdEluY29taW5nQWRtaW5QYXJ0SWQ6bnVsbD09bj92b2lkIDA6bi5pZH0sbGV2ZWw6ImluZm8ifSk7dmFyIHI9ZS5wYXJ0c3x8W10sYT1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xpZW50SWR9KSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0W2UuY2xpZW50SWRdPWUsdH0pLHt9KSxzPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZS5pZF09ZSx0fSkse30pLGQ9dC5wYXJ0cy5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZCYmIXNbdC5pZF19KSkscD1bXS5jb25jYXQobChmLHQucGFydHMpLGwoZixyKSkuZmlsdGVyKChmdW5jdGlvbih0LGUsbil7cmV0dXJuIG4uZmluZEluZGV4KChmdW5jdGlvbihlKXtyZXR1cm4gXyhlLHQpfSkpPT09ZX0pKSxoPXA7ZCYmKGg9cC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiEoKHZvaWQgMCE9PXQudG9rZW5TZXF1ZW5jZUluZGV4fHx0LnN0cmVhbUVuZGVkKSYmIXQuaWQpfSkpKSxoLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlLG4scixvLGk9YVt0LmNsaWVudElkXTtpJiZudWxsIT0oZT1pLmF1dGhvcikmJmUuaXNBZG1pbiYmbnVsbCE9KG49aS5hdXRob3IpJiZuLmlzQm90JiYodC5jcmVhdGVkQXQ9aS5jcmVhdGVkQXR8fHQuY3JlYXRlZEF0KTt2YXIgdT10LmlkP251bGw9PShyPXNbdC5pZF0pfHxudWxsPT0ocj1yLmhhbmRvdmVyQ3RhKT92b2lkIDA6ci5zcGF3bmVkX2NvbnZlcnNhdGlvbl9pZDp2b2lkIDA7IXV8fG51bGwhPShvPXQuaGFuZG92ZXJDdGEpJiZvLnNwYXduZWRfY29udmVyc2F0aW9uX2lkfHwodC5oYW5kb3ZlckN0YT1jKHt9LHQuaGFuZG92ZXJDdGEse3N0YXR1czoic3Bhd25lZCIsc3Bhd25lZF9jb252ZXJzYXRpb25faWQ6dX0pKX0pKTt2YXIgdj1nKGgpO3JldHVybigwLHUuWlEpKHtjYXRlZ29yeToiZ2V0LWNvbnZlcnNhdGlvbiIsbWVzc2FnZToiTWVyZ2VkIHBhcnRzIGNvbXBsZXRlIixkYXRhOntjb252ZXJzYXRpb25JZDp0LmlkLGxhc3RNZXJnZWRBZG1pblBhcnRJZDpudWxsPT12P3ZvaWQgMDp2LmlkfSxsZXZlbDoiaW5mbyJ9KSwoMCxpLk0pKGgsWyJjcmVhdGVkQXQiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzTWVzc2FnZT8wOjF9XSxbImFzYyIsImFzYyJdKX0seD1mdW5jdGlvbih0LGUpe2lmKHQuY29tcG9zZXJTdGF0ZSYmISgwLG8uSSkoZSkmJm51bGwhPWUmJmUuY29tcG9zZXJTdGF0ZSl7aWYoZS5jb21wb3NlclN0YXRlLnZlcnNpb24mJnQuY29tcG9zZXJTdGF0ZS52ZXJzaW9uJiZlLmNvbXBvc2VyU3RhdGUudmVyc2lvbj50LmNvbXBvc2VyU3RhdGUudmVyc2lvbiYmZS5jb21wb3NlclN0YXRlLndvcmtmbG93QWN0aXZlPT09dC5jb21wb3NlclN0YXRlLndvcmtmbG93QWN0aXZlKXJldHVybiBlLmNvbXBvc2VyU3RhdGU7ZS5jb21wb3NlclN0YXRlLnZlcnNpb249PT10LmNvbXBvc2VyU3RhdGUudmVyc2lvbiYmZS5jb21wb3NlclN0YXRlLnZpc2libGUhPT10LmNvbXBvc2VyU3RhdGUudmlzaWJsZSYmKDAsYS51bykoIkRpZmZlcmVudCBjb21wb3NlclN0YXRlIHZpc2liaWxpdHkgd2l0aCBzYW1lIHZlcnNpb24gbnVtYmVyIGZvciBjb252ZXJzYXRpb24gd2l0aCBpZD0iK3QuaWQpfXJldHVybiB0LmNvbXBvc2VyU3RhdGV9LEU9ZnVuY3Rpb24odCl7dmFyIGU7aWYodCYmdC5wYXJ0cyYmMCE9PXQucGFydHMubGVuZ3RoKXJldHVybiB0LmlkKyItIisobnVsbD09KGU9KDAsci5IVikodC5wYXJ0cykpP3ZvaWQgMDplLmlkKX0sQz1mdW5jdGlvbih0KXtyZXR1cm4icGFydGlhbCI9PT10LmZldGNoU3RhdGV9LE89ZnVuY3Rpb24odCl7dmFyIGU9eSh0KTtyZXR1cm4gMT09PXQucGFydHMubGVuZ3RoP0EodCk6cCh7fSxlLHttZXNzYWdlVHlwZTplP0koZSk6dm9pZCAwfSl9LEE9ZnVuY3Rpb24odCl7dmFyIGU9dC5sYXN0UGFydGljaXBhdGluZ0FkbWluLG49ZT9lLmxhc3RBY3RpdmVBdDp2b2lkIDAscj1lP2UuaXNBY3RpdmU6dm9pZCAwO3JldHVybiBwKHt9LHQucGFydHNbMF0se2xhc3RBY3RpdmVBdDpuLGlzQWN0aXZlOnJ9KX0sST1mdW5jdGlvbih0KXtyZXR1cm4gdC5tZXNzYWdlVHlwZXx8ImFkbWluUmVwbHkifSxrPWZ1bmN0aW9uKHQpe3JldHVybiEoIXQuaWRlbnRpZmllci5zdGFydHNXaXRoKCJjdXN0b21fZGF0YS4iKSYmIXQuaWRlbnRpZmllci5zdGFydHNXaXRoKCJjb21wYW55LmN1c3RvbV9kYXRhLiIpKX0sTD1mdW5jdGlvbih0LGUpe3ZhciBuPXQuYXR0cmlidXRlcy5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZGVudGlmaWVyPT09ZX0pKTtpZihuKXJldHVybiJzdHJpbmciPT09bi50eXBlJiZBcnJheS5pc0FycmF5KG4ub3B0aW9ucyk/Imxpc3QiOiJlbWFpbCI9PT1uLmlkZW50aWZpZXI/ImVtYWlsIjoicGhvbmUiPT09bi5pZGVudGlmaWVyPyJwaG9uZSI6bi50eXBlfSxUPWZ1bmN0aW9uKHQpe3JldHVybih0LnBhcnRzfHxbXSkuZmxhdE1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYm9keX0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiJtZXNzZW5nZXJDYXJkIj09PXQudHlwZX0pKX0saj1mdW5jdGlvbih0KXtyZXR1cm4gVCh0KS5tYXAoKGZ1bmN0aW9uKHQpe3QudHlwZTtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZihudWxsPT10KXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwodCxyKSl7aWYoLTEhPT1lLmluZGV4T2YocikpY29udGludWU7bltyXT10W3JdfXJldHVybiBufSh0LHMpfSkpfSxQPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFQodCkuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQudXJpPT09ZX0pKX0sTj1mdW5jdGlvbih0KXtyZXR1cm4gdC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLmxhc3RQYXJ0Q3JlYXRlZEF0LmdldFRpbWUoKS10Lmxhc3RQYXJ0Q3JlYXRlZEF0LmdldFRpbWUoKX0pKX0sTT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIShudWxsPT0oZT10LmNvbXBvc2VyU3RhdGUpfHwhZS52aXNpYmxlfHx0LmluYm91bmRDb252ZXJzYXRpb25zRGlzYWJsZWR8fHQucHJldmVudEVuZFVzZXJSZXBsaWVzKX0odCkmJiFmdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0LnBhcnRzKSYmdC5wYXJ0c1swXSYmImF0dHJpYnV0ZV9jb2xsZWN0b3IiPT09dC5wYXJ0c1swXS5yZXBseVR5cGV9KHQpfSxSPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiB0LnBhcnRzJiYicG9pbnRlciI9PT0obnVsbD09KGU9KDAsci5IVikodC5wYXJ0cykpP3ZvaWQgMDplLm1lc3NhZ2VUeXBlKX0sVT1mdW5jdGlvbih0LGUsbil7aWYoIShuPDEpKXt2YXIgcj10LnNsaWNlKC1NYXRoLmFicyhuKSksbz1lLnNsaWNlKC1NYXRoLmFicyhuKSk7cmV0dXJuIHIuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiBvLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiBfKHQsZSl9KSl9KSl9fSx6PWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiExO3RyeXt2YXIgZSxuPUpTT04ucGFyc2UodCk7cmV0dXJuInJlcGxpZXNfcHJldmVudGVkIj09PShudWxsPT1ufHxudWxsPT0oZT1uLmVycm9yc1swXSk/dm9pZCAwOmUuY29kZSl9Y2F0Y2godCl7cmV0dXJuITF9fSxIPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiExO3RyeXt2YXIgZSxuPUpTT04ucGFyc2UodCk7cmV0dXJuImludmFsaWRfdXBsb2FkX2V4dGVuc2lvbiI9PT0obnVsbD09bnx8bnVsbD09KGU9bi5lcnJvcnNbMF0pP3ZvaWQgMDplLmNvZGUpfWNhdGNoKHQpe3JldHVybiExfX0sRj1mdW5jdGlvbih0KXtyZXR1cm4obnVsbD09dD92b2lkIDA6dC5pc0ZldGNoaW5nKSYmIShudWxsIT10JiZ0LmlzVXBkYXRpbmcpfX0sMzgwNDI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7S0s6ZnVuY3Rpb24oKXtyZXR1cm4gb30sTEE6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sbnU6ZnVuY3Rpb24oKXtyZXR1cm4gcn0scjQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KTt2YXIgcj1mdW5jdGlvbigpe3JldHVybiJpbnRlcmNvbS1pZCJ9LG89ZnVuY3Rpb24odCl7cmV0dXJuImludGVyY29tLWlkLSIrdH0saT1mdW5jdGlvbih0KXtyZXR1cm4iaW50ZXJjb20tc2Vzc2lvbi0iK3R9LGE9ZnVuY3Rpb24odCl7cmV0dXJuImludGVyY29tLWRldmljZS1pZC0iK3R9fSwyMDIxNTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHI9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHIodCl9ZnVuY3Rpb24gbyh0LGUpe2lmKHQ9PT1lKXJldHVybiEwO2lmKG51bGw9PXR8fG51bGw9PWUpcmV0dXJuITE7aWYocih0KSE9PXIoZSkpcmV0dXJuITE7aWYodCBpbnN0YW5jZW9mIERhdGUmJmUgaW5zdGFuY2VvZiBEYXRlKXJldHVybiB0LmdldFRpbWUoKT09PWUuZ2V0VGltZSgpO2lmKHQgaW5zdGFuY2VvZiBSZWdFeHAmJmUgaW5zdGFuY2VvZiBSZWdFeHApcmV0dXJuIHQudG9TdHJpbmcoKT09PWUudG9TdHJpbmcoKTtpZihBcnJheS5pc0FycmF5KHQpJiZBcnJheS5pc0FycmF5KGUpKXJldHVybiB0Lmxlbmd0aD09PWUubGVuZ3RoJiZ0LmV2ZXJ5KChmdW5jdGlvbih0LG4pe3JldHVybiBvKHQsZVtuXSl9KSk7aWYoIm9iamVjdCI9PT1yKHQpJiYib2JqZWN0Ij09PXIoZSkpe3ZhciBuPXQsaT1lLGE9T2JqZWN0LmtleXMobiksdT1PYmplY3Qua2V5cyhpKTtyZXR1cm4gYS5sZW5ndGg9PT11Lmxlbmd0aCYmYS5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuISFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSx0KSYmbyhuW3RdLGlbdF0pfSkpfXJldHVybiExfW4uZChlLHtiOmZ1bmN0aW9uKCl7cmV0dXJuIG99fSl9LDcyMzYxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse2Y6ZnVuY3Rpb24oKXtyZXR1cm4gb319KTt2YXIgcj1uKDM1MjA2KSxvPWZ1bmN0aW9uKHQsZSxuKXtpZih2b2lkIDA9PT1uJiYobj0iZW4iKSx0LmNvbnRlbnREb2N1bWVudCl7aWYoci5BeS5pc0ZpcmVmb3goKSl7dmFyIG89dC5jb250ZW50RG9jdW1lbnQub3BlbigpO28ud3JpdGUoIjwhRE9DVFlQRSBodG1sPiIpLG8uY2xvc2UoKX0hZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PW4mJihuPSJlbiIpLHQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTD1lLHQuZG9jdW1lbnRFbGVtZW50LnNldEF0dHJpYnV0ZSgibGFuZyIsbil9KHQuY29udGVudERvY3VtZW50LGUsbil9fX0sNDkwMTQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7QWg6ZnVuY3Rpb24oKXtyZXR1cm4gc30sQ1o6ZnVuY3Rpb24oKXtyZXR1cm4gaH0sVnI6ZnVuY3Rpb24oKXtyZXR1cm4gY30sWjI6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sbUo6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sdFc6ZnVuY3Rpb24oKXtyZXR1cm4gcH0seDpmdW5jdGlvbigpe3JldHVybiB1fSx4MzpmdW5jdGlvbigpe3JldHVybiBsfX0pO3ZhciByPW4oMzIzNTApLG89bigzNjI2NiksaT1mdW5jdGlvbih0KXt2YXIgZTtpZihudWxsIT0oZT13aW5kb3cpJiZudWxsIT0oZT1lLnBhcmVudCkmJmUuZG9jdW1lbnQpcmV0dXJuIHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KX0sYT1mdW5jdGlvbigpe3ZhciB0O3JldHVybihudWxsPT0odD0oMCxvLm1DKSgpKT92b2lkIDA6dC5pbm5lckhlaWdodCl8fDB9LHU9ZnVuY3Rpb24oKXtyZXR1cm4gaSgnW25hbWU9ImludGVyY29tLW1vZGFsLWZyYW1lIl0nKX0scz1mdW5jdGlvbigpe3JldHVybiBpKCdbbmFtZT0iaW50ZXJjb20tbm90ZS1mcmFtZSJdJyl9LGM9ZnVuY3Rpb24oKXtyZXR1cm4gaSgnW25hbWU9ImludGVyY29tLW1lc3Nlbmdlci1mcmFtZSJdJyl9LGw9ZnVuY3Rpb24oKXt2YXIgdD1jKCk7aWYodClyZXR1cm4gdC5jb250ZW50RG9jdW1lbnR9LGY9ZnVuY3Rpb24odCl7cmV0dXJuIShudWxsPT10fHwhdC5wb3N0TWVzc2FnZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHQucG9zdE1lc3NhZ2UpfSxkPWZ1bmN0aW9uKCl7dmFyIHQ9aSgnW25hbWU9ImludGVyY29tLWxhdW5jaGVyLWZyYW1lIl0nKTtpZih0KXJldHVybiB0LmNvbnRlbnREb2N1bWVudH0scD1mdW5jdGlvbigpe3JldHVybiBkKCkmJigwLHIucmUpKGQoKSlbMF19LGg9ZnVuY3Rpb24oKXtyZXR1cm4gbCgpJiYoMCxyLnJlKShsKCkpWzBdfX0sMzIzNTA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7Q186ZnVuY3Rpb24oKXtyZXR1cm4gRX0sRnA6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sS3g6ZnVuY3Rpb24oKXtyZXR1cm4gX30sTTc6ZnVuY3Rpb24oKXtyZXR1cm4gU30sUk06ZnVuY3Rpb24oKXtyZXR1cm4gan0sUms6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sVDU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sVFY6ZnVuY3Rpb24oKXtyZXR1cm4gc30sVno6ZnVuY3Rpb24oKXtyZXR1cm4gVH0sWUc6ZnVuY3Rpb24oKXtyZXR1cm4geH0sX1Q6ZnVuY3Rpb24oKXtyZXR1cm4gTH0sYTg6ZnVuY3Rpb24oKXtyZXR1cm4gd30sYiQ6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sYmY6ZnVuY3Rpb24oKXtyZXR1cm4gUH0sY3M6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sZGk6ZnVuY3Rpb24oKXtyZXR1cm4gT30sZjpmdW5jdGlvbigpe3JldHVybiBnfSxmJDpmdW5jdGlvbigpe3JldHVybiBifSxmbzpmdW5jdGlvbigpe3JldHVybiBsfSxoZjpmdW5jdGlvbigpe3JldHVybiBDfSxpUTpmdW5jdGlvbigpe3JldHVybiBofSxuQjpmdW5jdGlvbigpe3JldHVybiBOfSxuZjpmdW5jdGlvbigpe3JldHVybiBBfSxueDpmdW5jdGlvbigpe3JldHVybiBJfSxvMjpmdW5jdGlvbigpe3JldHVybiBwfSxxMjpmdW5jdGlvbigpe3JldHVybiB5fSxyZTpmdW5jdGlvbigpe3JldHVybiBrfSx2eTpmdW5jdGlvbigpe3JldHVybiB2fX0pO3ZhciByPW4oMzI5OCksbz1uKDM1MjA2KSxpPW4oMTc4MzMpLGE9bi5uKGkpKCkoImRvbSIpLHU9e1RBQjo5LEVOVEVSOjEzLEVTQzoyNyxTUEFDRTozMixCQUNLU1BBQ0U6OCxERUxFVEU6NDZ9LHM9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2Nyb2xsSGVpZ2h0LXQuY2xpZW50SGVpZ2h0LXQuc2Nyb2xsVG9wfSxjPWZ1bmN0aW9uKHQpe3JldHVybiB0LnNjcm9sbFRvcC8odC5zY3JvbGxIZWlnaHQtdC5jbGllbnRIZWlnaHQpfSxsPWZ1bmN0aW9uKHQsZSl7dmFyIG49dDt0cnl7cmV0dXJuIG51bGw9PWU/dm9pZCAwOmUuc3BsaXQoIiA+IDpzaGFkb3ctcm9vdCA+ICIpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXt2YXIgcjtpZihuKXt2YXIgbz1uLnF1ZXJ5U2VsZWN0b3IoZSk7cmV0dXJuIG49bnVsbCE9KHI9bnVsbD09bz92b2lkIDA6by5zaGFkb3dSb290KT9yOm51bGwsb319KSx2b2lkIDApfWNhdGNoKHQpe3JldHVybiBhKCdmaW5kRWxlbWVudEZyb21TZWxlY3Rvcjogc2VsZWN0b3IgIiVzIiB0aHJldywgcmV0dXJuaW5nIG51bGwnLGUsdCksbnVsbH19LGY9ZnVuY3Rpb24odCl7aWYodCl7dmFyIGU9dC5zY3JvbGxIZWlnaHQsbj10LmNsaWVudEhlaWdodDt0LnNjcm9sbFRvcD1lLW59fSxkPWZ1bmN0aW9uKHQpe2lmKHQpe3ZhciBlPXQuc2Nyb2xsSGVpZ2h0LG49dC5jbGllbnRIZWlnaHQ7aWYoIXQuc2Nyb2xsQnkpcmV0dXJuIGYodCk7dC5zY3JvbGxCeSh7dG9wOmUtbixsZWZ0OjAsYmVoYXZpb3I6InNtb290aCJ9KX19LHA9ZnVuY3Rpb24odCxlKXtpZihlKXt2YXIgbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9bi5ib3R0b20sbz1uLnRvcCxpPW4uaGVpZ2h0LGE9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx1PWEuYm90dG9tLHM9YS50b3AsYz1hLmhlaWdodDtpZihvPHN8fHI+dSl7Zm9yKHZhciBsPXQub2Zmc2V0VG9wLGY9dDtmOyl7InJlbGF0aXZlIj09PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGYpLnBvc2l0aW9uJiYobCs9Zi5vZmZzZXRUb3AtZi5zY3JvbGxUb3ArZi5jbGllbnRUb3ApLGY9Zi5vZmZzZXRQYXJlbnR9ZS5zY3JvbGxUb3A9bC1NYXRoLnRydW5jKGMvMikrTWF0aC50cnVuYyhpLzIpfX19LGg9ZnVuY3Rpb24odCxlKXtpZih0KXt2YXIgbj10LmNsYXNzTmFtZS5zcGxpdCgiICIpO24uc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1lfSkpfHwobi5wdXNoKGUpLHQuY2xhc3NOYW1lPW4uam9pbigiICIpLnRyaW0oKSl9fSx2PWZ1bmN0aW9uKHQsZSl7dCYmKHQuY2xhc3NOYW1lPXQuY2xhc3NOYW1lLnNwbGl0KCIgIikuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdCE9PWV9KSkuam9pbigiICIpKX0seT1mdW5jdGlvbih0LGUsbixyKXt2b2lkIDA9PT1yJiYocj0hMSksbnVsbCE9dCYmKHQuYWRkRXZlbnRMaXN0ZW5lcj90LmFkZEV2ZW50TGlzdGVuZXIoZSxuLHIpOnQuYXR0YWNoRXZlbnQmJnQuYXR0YWNoRXZlbnQoIm9uIitlLG4pKX0sZz1mdW5jdGlvbih0LGUsbil7bnVsbCE9dCYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcj90LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxuKTp0LmRldGFjaEV2ZW50JiZ0LmRldGFjaEV2ZW50KCJvbiIrZSxuKSl9LG09ZnVuY3Rpb24odCl7dmFyIGU9dC5jdXJyZW50VGFyZ2V0LG49ZS5zY3JvbGxUb3Ascj1lLnNjcm9sbEhlaWdodCxvPWUuY2xpZW50SGVpZ2h0LGk9dC5kZWx0YVksYT1pPjA7YSYmaT5yLW8tbj9lLnNjcm9sbFRvcD1yOiFhJiYtaT5uP2Uuc2Nyb2xsVG9wPTA6dC5zdG9wUHJvcGFnYXRpb24oKX0sYj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQuc2xpY2UoMCxuKStlK3Quc2xpY2Uobil9LHc9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT0tMSksdCYmKHQuZm9jdXMoKSwic2V0U2VsZWN0aW9uUmFuZ2UiaW4gdCYmdC5zZXRTZWxlY3Rpb25SYW5nZSYmZT49MCYmdC5zZXRTZWxlY3Rpb25SYW5nZShlLGUpKX07ZnVuY3Rpb24gXyh0LGUsbil7dmFyIHI9dC5kb2N1bWVudHx8dC5vd25lckRvY3VtZW50O3JldHVybiBmdW5jdGlvbih0KXtpZihyKWZvcih2YXIgbz1BcnJheS5mcm9tKHIucXVlcnlTZWxlY3RvckFsbChlKSksaT10LnRhcmdldDtpOyl7aWYoby5pbmRleE9mKGkpPi0xKXtuLmNhbGwoaSx0KTticmVha31pPWkucGFyZW50Tm9kZX19fXZhciBTPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10LmhpZGRlbj8hdC5oaWRkZW46dm9pZCAwIT09dC5tb3pIaWRkZW4/IXQubW96SGlkZGVuOnZvaWQgMCE9PXQubXNIaWRkZW4/IXQubXNIaWRkZW46dm9pZCAwPT09dC53ZWJraXRIaWRkZW58fCF0LndlYmtpdEhpZGRlbn0seD1mdW5jdGlvbigpe3ZhciB0LGU9ZG9jdW1lbnQ7cmV0dXJuIHZvaWQgMCE9PWUuaGlkZGVuP3Q9InZpc2liaWxpdHljaGFuZ2UiOnZvaWQgMCE9PWUubW96SGlkZGVuP3Q9Im1venZpc2liaWxpdHljaGFuZ2UiOnZvaWQgMCE9PWUubXNIaWRkZW4/dD0ibXN2aXNpYmlsaXR5Y2hhbmdlIjp2b2lkIDAhPT1lLndlYmtpdEhpZGRlbiYmKHQ9IndlYmtpdHZpc2liaWxpdHljaGFuZ2UiKSx0fSxFPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKTtuLnNldEF0dHJpYnV0ZSgidGFyZ2V0IiwiX2JsYW5rIiksbi5zZXRBdHRyaWJ1dGUoIm1ldGhvZCIsInBvc3QiKSxuLnNldEF0dHJpYnV0ZSgiYWN0aW9uIix0KSxPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3IudHlwZT0iaGlkZGVuIixyLm5hbWU9dCxyLnZhbHVlPVN0cmluZyhlW3RdKSxuLmFwcGVuZENoaWxkKHIpfSkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobiksbi5zdWJtaXQoKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG4pfSxDPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtlLmtleUNvZGUhPT11LkVOVEVSJiZlLmtleUNvZGUhPT11LlNQQUNFfHx0KGUpfX0sTz1mdW5jdGlvbih0KXt2YXIgZSxuPXQudGFyZ2V0O3JldHVybiB0LmtleUNvZGU9PT11LlRBQiYmISgtMSE9PVsiSU5QVVQiLCJCVVRUT04iXS5pbmRleE9mKG51bGwhPShlPW51bGw9PW4/dm9pZCAwOm4udGFnTmFtZSk/ZToiIikpfSxBPWZ1bmN0aW9uKHQpe2lmKHQpe3ZhciBlPXQ7cmV0dXJuISEoZS5vZmZzZXRXaWR0aHx8ZS5vZmZzZXRIZWlnaHR8fHQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpfX0sST1mdW5jdGlvbih0KXtyZXR1cm4iRXNjYXBlIj09PXQua2V5fSxrPWZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5mcm9tKHQucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uLCBbaHJlZl0sIGlucHV0Om5vdChbdHlwZT0iZmlsZSJdKTpub3QoW3R5cGU9ImhpZGRlbiJdKSwgc2VsZWN0LCB0ZXh0YXJlYSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSItMSJdKScpKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0LmNsb3Nlc3QoJ1thcmlhLWhpZGRlbj0idHJ1ZSJdJyl9KSl9LEw9ZnVuY3Rpb24odCl7cmV0dXJuKDAsci5WZikodCk/InJ0bCI6Imx0ciJ9LFQ9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXQuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSk7cmV0dXJuIHJ8fGoodCxlLG4pfSxqPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10LmRvY3VtZW50LG89ci5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gby5pZD1lLG4mJm8uY2xhc3NMaXN0LmFkZChuKSxyLmJvZHkuYXBwZW5kQ2hpbGQobyksb30sUD1mdW5jdGlvbih0KXt2YXIgZTtudWxsPT10fHxudWxsPT0oZT10LnBhcmVudE5vZGUpfHxlLnJlbW92ZUNoaWxkKHQpfSxOPWZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwPT09ZSYmKGU9NTAwKSwhby51bilyZXR1cm4gc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0LmZvY3VzKCl9KSxlKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3JldHVybiBuLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQiKSxuLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsbi5zdHlsZS5vcGFjaXR5PSIwIixuLnN0eWxlLmhlaWdodD0iMCIsbi5zdHlsZS5mb250U2l6ZT0iMTZweCIsZG9jdW1lbnQuYm9keS5wcmVwZW5kKG4pLG4uZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3QuZm9jdXMoKSxuLnJlbW92ZSgpfSksZSl9fSw5NzQ0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse2tyOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHROOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LHVZOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LHlmOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7dmFyIHI9big3MjM2MSksbz1udWxsLGk9ZnVuY3Rpb24odCxlLG4pe2lmKCFlfHxvKXJldHVybiBvO3RyeXt2YXIgaT10LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZSk7aWYoMD09PWkubGVuZ3RoKXJldHVybiBjb25zb2xlLmVycm9yKCdbSW50ZXJjb21dIGVtYmVkX21lc3NlbmdlcjogVGFyZ2V0IGVsZW1lbnQgIicrZSsnIiBub3QgZm91bmQnKSxudWxsO2kubGVuZ3RoPjEmJmNvbnNvbGUud2FybignW0ludGVyY29tXSBlbWJlZF9tZXNzZW5nZXI6IE11bHRpcGxlIGVsZW1lbnRzIG1hdGNoIHNlbGVjdG9yICInK2UrJyIgKCcraS5sZW5ndGgrIiBmb3VuZCkuIFVzaW5nIHRoZSBmaXJzdCBvbmUuIik7dmFyIGE9aVswXSx1PXQuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7dS5pZD0iaW50ZXJjb20tZW1iZWRkZWQtbWVzc2VuZ2VyIix1LnNldEF0dHJpYnV0ZSgidGl0bGUiLCJJbnRlcmNvbSBFbWJlZGRlZCBNZXNzZW5nZXIiKSx1LnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJmYWxzZSIpO3ZhciBzPW51bGwhPW4mJm4uZnVsbFBhZ2U/ImJvcmRlcjogbm9uZTsgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB6LWluZGV4OiAxOyI6IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJvcmRlcjogbm9uZTsgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiByZWxhdGl2ZTsiO3Uuc2V0QXR0cmlidXRlKCJzdHlsZSIscyksYS5hcHBlbmRDaGlsZCh1KTt2YXIgYz10LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT0icmVmZXJyZXIiXScpLGw9Yz8nPG1ldGEgbmFtZT0icmVmZXJyZXIiIGNvbnRlbnQ9IicrYy5jb250ZW50KyciPic6IiI7KDAsci5mKSh1LCc8IURPQ1RZUEUgaHRtbD5cbiAgICAgIDxodG1sIGxhbmc9ImVuIj5cbiAgICAgICAgPGhlYWQ+XG4gICAgICAgICAgJytsKydcbiAgICAgICAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xLCB3aWR0aD1kZXZpY2Utd2lkdGgiIC8+XG4gICAgICAgICAgPHN0eWxlPlxuICAgICAgICAgICAgaHRtbCwgYm9keSB7XG4gICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3N0eWxlPlxuICAgICAgICA8L2hlYWQ+XG4gICAgICAgIDxib2R5PlxuICAgICAgICA8L2JvZHk+XG4gICAgICA8L2h0bWw+Jyk7dmFyIGY9dS5jb250ZW50V2luZG93O3JldHVybiBmP289e2lmcmFtZTp1LHdpbmRvdzpmLGNsZWFudXA6ZnVuY3Rpb24oKXt1LnBhcmVudE5vZGUmJnUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh1KSxvPW51bGx9fTooY29uc29sZS5lcnJvcigiW0ludGVyY29tXSBGYWlsZWQgdG8gZ2V0IGVtYmVkZGVkIGlmcmFtZSB3aW5kb3ciKSxudWxsKX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiW0ludGVyY29tXSBGYWlsZWQgdG8gY3JlYXRlIGVtYmVkZGVkIGNvbnRhaW5lcjoiLHQpLG51bGx9fSxhPWZ1bmN0aW9uKCl7cmV0dXJuIG99LHU9ZnVuY3Rpb24oKXt2YXIgdD1vO3JldHVybiBvPW51bGwsdH0scz1mdW5jdGlvbih0KXtyZXR1cm4hISh0JiZ0LmVtYmVkX21lc3NlbmdlciYmdC5lbWJlZF9tZXNzZW5nZXIudHJpbSgpKX19LDU3NDcxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse3U6ZnVuY3Rpb24oKXtyZXR1cm4gb319KTt2YXIgcj1uKDY2ODU0KTtmdW5jdGlvbiBvKCl7dHJ5e3ZhciB0LGUsbixvPSgwLHIuJCkoKTtpZihudWxsIT1vJiZudWxsIT0odD1vLmludGVyY29tU2V0dGluZ3MpJiZ0Lm1lc3Nlbmdlcl9lbnZpcm9ubWVudClyZXR1cm4gby5pbnRlcmNvbVNldHRpbmdzLm1lc3Nlbmdlcl9lbnZpcm9ubWVudDtpZihudWxsPT1vfHwhby5sb2NhdGlvbnx8InN0cmluZyIhPXR5cGVvZihudWxsPT1vfHxudWxsPT0oZT1vLmxvY2F0aW9uKT92b2lkIDA6ZS5zZWFyY2gpKXJldHVybjt2YXIgaT1uZXcgVVJMU2VhcmNoUGFyYW1zKG51bGw9PW98fG51bGw9PShuPW8ubG9jYXRpb24pP3ZvaWQgMDpuLnNlYXJjaCk7cmV0dXJuKG51bGw9PWk/dm9pZCAwOmkuZ2V0KCJtZXNzZW5nZXJfZW52aXJvbm1lbnQiKSl8fHZvaWQgMH1jYXRjaCh0KXtyZXR1cm59fX0sMTE5NTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtpOmZ1bmN0aW9uKCl7cmV0dXJuIG99LHg6ZnVuY3Rpb24oKXtyZXR1cm4gaX19KTt2YXIgcj1mdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0sbj0iKD86IitPYmplY3Qua2V5cyh0KS5qb2luKCJ8IikrIikiLHI9UmVnRXhwKG4pLG89UmVnRXhwKG4sImciKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8iIjoiIit0LHIudGVzdCh0KT90LnJlcGxhY2UobyxlKTp0fX0sbz1yKHsiJiI6IiZhbXA7IiwiPCI6IiZsdDsiLCI+IjoiJmd0OyIsJyInOiImcXVvdDsiLCInIjoiJiN4Mjc7IiwiYCI6IiYjeDYwOyJ9KSxpPXIoeyImYW1wOyI6IiYiLCImbHQ7IjoiPCIsIiZndDsiOiI+IiwiJnF1b3Q7IjonIicsIiYjeDI3OyI6IiciLCImI3g2MDsiOiJgIiwiJiMzOTsiOiInIn0pfSw5MTk2NDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtkczpmdW5jdGlvbigpe3JldHVybiBpfSxyTjpmdW5jdGlvbigpe3JldHVybiBhfX0pO3ZhciByPW4oNDAyMzgpLG89ImludGVyY29tLXNuaXBwZXRfX2Zpbi1leHBlcmltZW50YWwtZGVtb19fa2V5IjtmdW5jdGlvbiBpKHQpe3ZvaWQgMD09PXQmJih0PXt9KSwoMCxyLnlKKShvLHQpfWZ1bmN0aW9uIGEoKXtyZXR1cm4oMCxyLnpqKSgpW29dfX0sNDQ4MzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtJRTpmdW5jdGlvbigpe3JldHVybiBhfSxVQTpmdW5jdGlvbigpe3JldHVybiBpfX0pO3ZhciByPW4oNDAyMzgpLG89ImludGVyY29tLXNuaXBwZXRfX3ByZXZpZXctcGVyc29uYWxpdHktc2V0dGluZ3NfX2luc3RhbmNlLWlkIjtmdW5jdGlvbiBpKHQpeygwLHIueUopKG8sdCl9ZnVuY3Rpb24gYSgpe3JldHVybigwLHIuemopKClbb119fSw4MzE1ODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHskUjpmdW5jdGlvbigpe3JldHVybiBhfSx4RTpmdW5jdGlvbigpe3JldHVybiB1fX0pO3ZhciByPW4oNDAyMzgpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LG8uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBpPSJpbnRlcmNvbS1zbmlwcGV0X19maW4tcHJldmlldy1zZXR0aW5nc19faW5zdGFuY2UtaWQiO2Z1bmN0aW9uIGEodCl7dmFyIGU9byh7fSx1KCksdCk7KDAsci55SikoaSxlKX1mdW5jdGlvbiB1KCl7cmV0dXJuKDAsci56aikoKVtpXX19LDg4MjkxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtpZigic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuITE7aWYoMD09PXQubGVuZ3RoKXJldHVybiExO3ZhciBlPXQudHJpbSgpLnRvTG93ZXJDYXNlKCk7cmV0dXJuWy9ePCFkb2N0eXBlXHMraHRtbC9pLC9ePGh0bWxbXHM+XS9pLC9ePFw/eG1sW1xzXFNdKjxodG1sL2ksLzxoZWFkW1xzPl0vaSwvPGJvZHlbXHM+XS9pLC88bWV0YVtccz5dL2ldLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRlc3QoZSl9KSl9ZnVuY3Rpb24gbyh0KXtyZXR1cm4iQnJvd3NlciBleHRlbnNpb24gaW50ZXJjZXB0ZWQgQVBJIHJlcXVlc3QgYW5kIHJldHVybmVkIEhUTUwgaW5zdGVhZCBvZiBKU09OLiBTbmlwcGV0OiAiK3Quc3Vic3RyaW5nKDAsMTAwKSsiLi4uIn1uLmQoZSx7TjpmdW5jdGlvbigpe3JldHVybiByfSxjOmZ1bmN0aW9uKCl7cmV0dXJuIG99fSl9LDgxODM5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0ZmOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LFNEOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LGtuOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSk7dmFyIHI9bigzNTIwNiksbz1bImltYWdlL2dpZiIsImltYWdlL2pwZWciLCJpbWFnZS9wbmciLCJpbWFnZS9ibXAiLCJpbWFnZS94LWljb24iXSxpPWZ1bmN0aW9uKHQpe3QmJmEodCkuY2F0Y2goKGZ1bmN0aW9uKCl7fSkpfSxhPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSxuKXt2YXIgcj1uZXcgSW1hZ2U7ci5vbmxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gZShyKX0sci5vbmVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIG4obmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCBpbWFnZSBmcm9tIFVSTDogIisodHx8InVua25vd24iKSkpfSxyLnNyYz10fSkpfSx1PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSxuKXtpZihzKHQpJiYoMCxyLkkxKSgpKXt2YXIgbz1uZXcgRmlsZVJlYWRlcjtvLm9ubG9hZD1mdW5jdGlvbihyKXt2YXIgbyxpPW5ldyBJbWFnZTtpLm9ubG9hZD1mdW5jdGlvbigpe3JldHVybiBlKGkpfSxpLm9uZXJyb3I9ZnVuY3Rpb24oKXtyZXR1cm4gbihuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIGltYWdlIHByZXZpZXcgZm9yIGZpbGU6ICIrKChudWxsPT10P3ZvaWQgMDp0Lm5hbWUpfHwidW5rbm93biIpKSl9LGkuc3JjPW51bGw9PShvPXIudGFyZ2V0KT92b2lkIDA6by5yZXN1bHR9LG8ub25lcnJvcj1mdW5jdGlvbigpe3JldHVybiBuKG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlYWQgZmlsZSBhcyBkYXRhIFVSTDogIisoKG51bGw9PXQ/dm9pZCAwOnQubmFtZSl8fCJ1bmtub3duIikpKX0sby5yZWFkQXNEYXRhVVJMKHQpfWVsc2UgZSh2b2lkIDApfSkpfSxzPWZ1bmN0aW9uKHQpe3JldHVybiEhdCYmLTEhPT1vLmluZGV4T2YodC50eXBlLnRvTG93ZXJDYXNlKCkpfX0sNzg2NTM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7YjpmdW5jdGlvbigpe3JldHVybiBvfSxsOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7dmFyIHI9ImpzLXNuaXBwZXQiLG89ZnVuY3Rpb24odCl7cmV0dXJuIHI9dH0saT1mdW5jdGlvbigpe3JldHVybiByfX0sMzE0MDE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7SDpmdW5jdGlvbigpe3JldHVybiBvfSxKOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7dmFyIHI9IiIsbz1mdW5jdGlvbih0KXtyZXR1cm4gcj10fSxpPWZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSw2MTM2NzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtqOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4hKCF3aW5kb3cucGFyZW50fHwhd2luZG93LnBhcmVudC5pbnRlcmNvbVNldHRpbmdzfHwidHgycDEzMGMiIT09KG51bGw9PSh0PXdpbmRvdy5wYXJlbnQuaW50ZXJjb21TZXR0aW5ncyk/dm9pZCAwOnQuYXBwX2lkKSl9fSw5NTU2NTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtIOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHQ6ZnVuY3Rpb24oKXtyZXR1cm4gaX19KTt2YXIgcj1uKDIyOTc5KSxvPSJpbnRlcmNvbS1zbmlwcGV0X19pbnRlcnNlY3Rpb24tbW9kZSIsaT1mdW5jdGlvbigpe3JldHVybiEhci5zLmdldChvKX0sYT1mdW5jdGlvbigpe3JldHVybiJzdXJ2ZXktcHJldmlldyI9PT1yLnMuZ2V0KG8pfHwic3VydmV5LWxvY2FsLXByZXZpZXciPT09ci5zLmdldChvKX19LDIxMTQxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtyZXR1cm4gcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0scih0KX1uLmQoZSx7UTpmdW5jdGlvbigpe3JldHVybiBvfX0pO3ZhciBvPWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiIT09cih0KXx8bnVsbD09PXQpcmV0dXJuITE7aWYoIltvYmplY3QgT2JqZWN0XSIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkpcmV0dXJuITE7dmFyIGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO2lmKG51bGw9PT1lKXJldHVybiEwO3ZhciBuPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCJjb25zdHJ1Y3RvciIpJiZlLmNvbnN0cnVjdG9yO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXJldHVybiExO3ZhciBvPW4ucHJvdG90eXBlO2lmKCJvYmplY3QiIT09cihvKXx8bnVsbD09PW8pcmV0dXJuITE7aWYoIShuIGluc3RhbmNlb2YgbikpcmV0dXJuITE7dmFyIGk9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLGE9aS5jYWxsKE9iamVjdCk7cmV0dXJuIGkuY2FsbChuKT09PWF9fSw4NzY4MTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtqOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LHE6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KTt2YXIgcj1uKDMyOTgpLG89ZnVuY3Rpb24odCxlKXtpZihlPjApe3ZhciBuPWZ1bmN0aW9uKHQpe3JldHVybiAxPT09dD8oMCxyLlRsKSgibGF1bmNoZXJfbmV3X21lc3NhZ2Vfc2luZ3VsYXIiLHtjb3VudDp0LnRvU3RyaW5nKCl9KTooMCxyLlRsKSgibGF1bmNoZXJfbmV3X21lc3NhZ2VzX3BsdXJhbCIse2NvdW50OnQudG9TdHJpbmcoKX0pfShlKTtyZXR1cm4gdCsiLCAiK259cmV0dXJuIHR9LGk9ZnVuY3Rpb24odCxlKXt2YXIgbj10PygwLHIuVGwpKCJjbG9zZV9pbnRlcmNvbV9tZXNzZW5nZXIiKTooMCxyLlRsKSgib3Blbl9pbnRlcmNvbV9tZXNzZW5nZXIiKTtyZXR1cm4gdD9uOm8obixlKX0sYT1mdW5jdGlvbih0LGUpe3JldHVybiBvKHQsZSl9fSwzNTMxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtyZXR1cm4gcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0scih0KX1mdW5jdGlvbiBvKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygc3RydWN0dXJlZENsb25lKXJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUodCk7aWYobnVsbD09PXR8fCJvYmplY3QiIT09cih0KSlyZXR1cm4gdDtpZih0IGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gbmV3IERhdGUodC5nZXRUaW1lKCkpO2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbyh0KX0pKTt2YXIgZT17fTtmb3IodmFyIG4gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09byh0W25dKSk7cmV0dXJuIGV9bi5kKGUse206ZnVuY3Rpb24oKXtyZXR1cm4gb319KX0sNDExNzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxlLG4pe3ZhciByLG87dm9pZCAwPT09biYmKG49e30pO3ZhciBpLGEsdSxzPTAsYz1uLGw9Yy5sZWFkaW5nLGY9dm9pZCAwIT09bCYmbCxkPWMudHJhaWxpbmcscD12b2lkIDA9PT1kfHxkLGg9Yy5tYXhXYWl0O2Z1bmN0aW9uIHYoZSl7dmFyIG49aSxyPWE7cmV0dXJuIHM9ZSx1PXQuYXBwbHkocixuKX1mdW5jdGlvbiB5KHQpe3ZhciBuPXQtcyxyPWUtKHQtKG98fDApKTtyZXR1cm4gdm9pZCAwIT09aD9NYXRoLm1pbihyLGgtbik6cn1mdW5jdGlvbiBnKHQpe3ZhciBuPXQtKG98fDApO3JldHVybiB2b2lkIDA9PT1vfHxuPj1lfHxuPDB8fHZvaWQgMCE9PWgmJnQtcz49aH1mdW5jdGlvbiBtKCl7dmFyIHQ9RGF0ZS5ub3coKTtnKHQpP2IodCk6cj1zZXRUaW1lb3V0KG0seSh0KSl9ZnVuY3Rpb24gYih0KXtpZihyPXZvaWQgMCxwJiZpKXt2YXIgZT12KHQpO3JldHVybiBpPWE9dm9pZCAwLGV9cmV0dXJuIGk9YT12b2lkIDAsdX1mdW5jdGlvbiB3KCl7Zm9yKHZhciB0PURhdGUubm93KCksbj1nKHQpLGM9YXJndW1lbnRzLmxlbmd0aCxsPW5ldyBBcnJheShjKSxkPTA7ZDxjO2QrKylsW2RdPWFyZ3VtZW50c1tkXTtpZihpPWwsYT10aGlzLG4pe2lmKG89dCx2b2lkIDA9PT1yKXJldHVybiBmdW5jdGlvbih0KXtzPXQscj1zZXRUaW1lb3V0KG0sZSk7dmFyIG49Zj92KHQpOnU7cmV0dXJuIGYmJnZvaWQgMCE9PWgmJihpPWE9dm9pZCAwKSxufShvKTtpZih2b2lkIDAhPT1oKXJldHVybiBjbGVhclRpbWVvdXQocikscj1zZXRUaW1lb3V0KG0sZSksdihvKX1yZXR1cm4gdm9pZCAwPT09cj8obz10LHI9c2V0VGltZW91dChtLGUpKTp2b2lkIDA9PT1oJiZmJiYwIT09c3x8KG89dCxjbGVhclRpbWVvdXQocikscj1zZXRUaW1lb3V0KG0seSh0KSkpLHV9cmV0dXJuIHcuY2FuY2VsPWZ1bmN0aW9uKCl7dm9pZCAwIT09ciYmY2xlYXJUaW1lb3V0KHIpLHM9MCxpPW89YT1yPXZvaWQgMH0sdy5mbHVzaD1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT1yP3U6YihEYXRlLm5vdygpKX0sdy5wZW5kaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXJ9LHd9bi5kKGUse3M6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KX0sNjY4Mzg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiByPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxyKHQpfW4uZChlLHtJOmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7dmFyIG89ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXR8fCgic3RyaW5nIj09dHlwZW9mIHR8fEFycmF5LmlzQXJyYXkodCk/MD09PXQubGVuZ3RoOnQgaW5zdGFuY2VvZiBNYXB8fHQgaW5zdGFuY2VvZiBTZXQ/MD09PXQuc2l6ZToib2JqZWN0IiE9PXIodCl8fDA9PT1PYmplY3Qua2V5cyh0KS5sZW5ndGgpfX0sOTI0MTc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQsZSxuKXtpZihlJiYhQXJyYXkuaXNBcnJheShlKSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aCl7dmFyIHI9ZS5sZW5ndGg7cmV0dXJuIGkoZSx2b2lkIDAhPT1uJiZuPHI/bjpyKX1yZXR1cm4gdChlLG4pfWZ1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGkodCl9KHQpfHxmdW5jdGlvbih0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9dFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT10WyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20odCl9KHQpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gaSh0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9pKHQsZSk6dm9pZCAwfX0odCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gaSh0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkoZSk7bjxlO24rKylyW25dPXRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gYSh0LGUsbil7aWYodm9pZCAwPT09biYmKG49ImFzYyIpLCF0fHwwPT09dC5sZW5ndGgpcmV0dXJuW107Zm9yKHZhciBpPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV0sYT1BcnJheS5pc0FycmF5KG4pP3IobyxuKTppLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gbn0pKTthLmxlbmd0aDxpLmxlbmd0aDspYS5wdXNoKCJhc2MiKTtyZXR1cm4gcihvLHQpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTA7bjxpLmxlbmd0aDtuKyspe3ZhciByPWlbbl0sbz1hW25dLHU9dm9pZCAwLHM9dm9pZCAwO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiByPyh1PXIodCkscz1yKGUpKToodT10W3JdLHM9ZVtyXSksbnVsbCE9dXx8bnVsbCE9cyl7aWYobnVsbD09dSlyZXR1cm4gMTtpZihudWxsPT1zKXJldHVybi0xO3ZhciBjPTA7aWYodTxzP2M9LTE6dT5zJiYoYz0xKSwwIT09YylyZXR1cm4iZGVzYyI9PT1vPy1jOmN9fXJldHVybiAwfSkpfW4uZChlLHtNOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSl9LDUxMDA2OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse246ZnVuY3Rpb24oKXtyZXR1cm4gb319KTt2YXIgcj1uKDQxMTcpO2Z1bmN0aW9uIG8odCxlLG4pe3ZvaWQgMD09PW4mJihuPXt9KTt2YXIgbz1uLGk9by5sZWFkaW5nLGE9dm9pZCAwPT09aXx8aSx1PW8udHJhaWxpbmcscz12b2lkIDA9PT11fHx1O3JldHVybigwLHIucykodCxlLHtsZWFkaW5nOmEsdHJhaWxpbmc6cyxtYXhXYWl0OmV9KX19LDg0OTkwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUpe3ZhciBuPW5ldyBNYXA7cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbih0KXt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgZT9lKHQpOnRbZV07cmV0dXJuIW4uaGFzKHIpJiYobi5zZXQociwhMCksITApfSkpfW4uZChlLHtoOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSl9LDQ1NDk2OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse1BKOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LEt6OmZ1bmN0aW9uKCl7cmV0dXJuIG19LGt4OmZ1bmN0aW9uKCl7cmV0dXJuIHZ9LFlJOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9LFN2OmZ1bmN0aW9uKCl7cmV0dXJuIHl9fSk7dmFyIHI9bigxMzcwOSk7ZnVuY3Rpb24gbygpe3JldHVybiBvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sby5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIGk9e2J1dHRvbjpmdW5jdGlvbih0KXtyZXR1cm4gdC5hY3Rpb24uaWQ/KHQuaWQ9dC5hY3Rpb24uaWQsZGVsZXRlIHQuYWN0aW9uLmlkLHQpOnR9LGlucHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0LmFjdGlvbiYmdC5hY3Rpb24uaWQ/KHQuaWQ9dC5hY3Rpb24uaWQsZGVsZXRlIHQuYWN0aW9uLmlkLHQpOnR9LGxpc3Q6ZnVuY3Rpb24odCl7dmFyIGU9dC5pdGVtcy5tYXAoKGZ1bmN0aW9uKHQpe2lmKHQuYWN0aW9uKXtpZighdC5hY3Rpb24uaWQpcmV0dXJuIHQ7dC5pZD10LmFjdGlvbi5pZCxkZWxldGUgdC5hY3Rpb24uaWR9cmV0dXJuIHR9KSk7cmV0dXJuIHQuaXRlbXM9ZSx0fX07ZnVuY3Rpb24gYSh0KXtyZXR1cm4gdC5jb21wb25lbnRzP3QuY29tcG9uZW50cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1vKHt9LHQpO3JldHVybihpW3QudHlwZV18fGZ1bmN0aW9uKCl7fSkoZSksZX0odCl9KSk6W119dmFyIHU9big1Nzg4MCkscz1uKDM1MzEpO2Z1bmN0aW9uIGModCl7cmV0dXJuIGM9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LGModCl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gZih0KX0odCl8fGZ1bmN0aW9uKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fGZ1bmN0aW9uKHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBmKHQsZSk7dmFyIG49e30udG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbSh0KToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP2YodCxlKTp2b2lkIDB9fSh0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBmKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn1mdW5jdGlvbiBkKCl7cmV0dXJuIGQ9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxkLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgcD1mdW5jdGlvbih0KXtyZXR1cm4gdD8oMCx1LkEpKHQudG9TdHJpbmcoKSk6IiJ9LGg9ZnVuY3Rpb24odCxlKXtzd2l0Y2godC50eXBlKXtjYXNlImJ1dHRvbiI6cmV0dXJuImJ1dHRvbi0iK3AodC5pZCk7Y2FzZSJ0ZXh0IjpyZXR1cm4idGV4dC0iK2UrIi0iK3AodC50ZXh0KTtjYXNlImlucHV0IjpyZXR1cm4iaW5wdXQtIitwKHQuaWQpO2Nhc2Uic3BhY2VyIjpyZXR1cm4ic3BhY2VyLSIrZTtjYXNlImRpdmlkZXIiOnJldHVybiJkaXZpZGVyLSIrZTtjYXNlImltYWdlIjpyZXR1cm4iaW1hZ2UtIitlKyItIitwKHQudXJsKTtjYXNlImxpc3QiOnJldHVybiJsaXN0LSIrdC5pdGVtcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBwKHQuaWQpfSkpLmpvaW4oIi0iKTtjYXNlImRyb3Bkb3duIjpyZXR1cm4iZHJvcGRvd24tIitwKHQuaWQpO2Nhc2Uic2luZ2xlLXNlbGVjdCI6cmV0dXJuInNpbmdsZS1zZWxlY3QtIitwKHQuaWQpO2RlZmF1bHQ6cmV0dXJuInVua25vd24tIitlfX0sdj1mdW5jdGlvbih0KXtyZXR1cm4gdC5zdGF0ZT97dXJpOnQudXJpLGNhbnZhczp7aWQ6IiIsY29udGVudDp0LnN0YXRlfX06dH0seT1mdW5jdGlvbih0KXt2YXIgZSxuLG89ZCh7fSx0KTtyZXR1cm4gby5jYW52YXMuY29udGVudCYmKG8uY2FudmFzLmNvbnRlbnQ9IjAuMSI9PT0obj0oMCxzLm0pKG8uY2FudmFzLmNvbnRlbnQpKS52ZXJzaW9uP246bi5jb21wb25lbnRzP3t2ZXJzaW9uOiIwLjEiLGNvbXBvbmVudHM6YShuKX06biksbnVsbCE9KGU9by5jYW52YXMuY29udGVudCkmJmUuY29tcG9uZW50cyYmKG8uY2FudmFzLmNvbnRlbnQuY29tcG9uZW50cz1vLmNhbnZhcy5jb250ZW50LmNvbXBvbmVudHMubWFwKHIuSykpLG99LGc9ZnVuY3Rpb24odCxlLG4pe3ZhciByPVtdO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpeyJsaXN0Ij09PXQudHlwZT9yLnB1c2guYXBwbHkocixmdW5jdGlvbih0LGUsbil7aWYoZSYmIUFycmF5LmlzQXJyYXkoZSkmJiJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpe3ZhciByPWUubGVuZ3RoO3JldHVybiBmKGUsdm9pZCAwIT09biYmbjxyP246cil9cmV0dXJuIHQoZSxuKX0obCx0Lml0ZW1zKSk6ci5wdXNoKHQpfSkpLHIuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHRbZV0mJighbnx8dFtlXT09PW4pfSkpfSxtPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4hIWcodCxlLG4pfSxiPWZ1bmN0aW9uKHQsZSxuKXt2b2lkIDA9PT1uJiYobj0hMCk7dmFyIHI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZyh0LCJpZCIsZSl9KGUsdCksbz13KHIsZSk7aWYoIW8pcmV0dXJuIGU7aWYoIXJ8fCFyLnR5cGUpcmV0dXJuIGU7dmFyIGk9KDAscy5tKShlKSxhPW8ubWF0Y2goL1xbKFxkKylcXS9nKTtpZighYXx8MD09PWEubGVuZ3RoKXJldHVybiBlO2Zvcih2YXIgdT1pLGM9MDtjPGEubGVuZ3RoLTE7YysrKXt1PXVbcGFyc2VJbnQoYVtjXS5zbGljZSgxLC0xKSldLC0xIT09by5pbmRleE9mKCIuaXRlbXMiKSYmMD09PWMmJih1PXUuaXRlbXMpfXZhciBsPXVbcGFyc2VJbnQoYVthLmxlbmd0aC0xXS5zbGljZSgxLC0xKSldO3JldHVybiBsPygiYnV0dG9uIj09PXIudHlwZXx8Iml0ZW0iPT09ci50eXBlP2wubG9hZGluZz1uOiJpbnB1dCIhPT1yLnR5cGUmJiJkcm9wZG93biIhPT1yLnR5cGUmJiJzaW5nbGUtc2VsZWN0IiE9PXIudHlwZXx8KGwuc2F2ZVN0YXRlPW4/InNhdmluZyI6InVuc2F2ZWQiKSxpKTplfSx3PWZ1bmN0aW9uIHQoZSxuKXtmb3IodmFyIHIgaW4gbilpZihuLmhhc093blByb3BlcnR5KHIpKXtpZihlPT09bltyXSlyZXR1cm4iWyIrcisiXSI7aWYobltyXSYmIm9iamVjdCI9PT1jKG5bcl0pKXt2YXIgbz10KGUsbltyXSk7aWYobylyZXR1cm4iWyIrcisiXSIrb319fX0sMzQ2MTk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7Q0Q6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sSks6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sT1Y6ZnVuY3Rpb24oKXtyZXR1cm4ga30sUUI6ZnVuY3Rpb24oKXtyZXR1cm4gSX0sVVc6ZnVuY3Rpb24oKXtyZXR1cm4gdn0sV2w6ZnVuY3Rpb24oKXtyZXR1cm4gU30sWHo6ZnVuY3Rpb24oKXtyZXR1cm4gaH0sWkU6ZnVuY3Rpb24oKXtyZXR1cm4gQ30sX2s6ZnVuY3Rpb24oKXtyZXR1cm4gX30saDY6ZnVuY3Rpb24oKXtyZXR1cm4geX0saG46ZnVuY3Rpb24oKXtyZXR1cm4gd30saTA6ZnVuY3Rpb24oKXtyZXR1cm4gQX0scFU6ZnVuY3Rpb24oKXtyZXR1cm4gT30sczU6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sdlE6ZnVuY3Rpb24oKXtyZXR1cm4gYn19KTt2YXIgcj1uKDM1MjA2KSxvPW4oNjY4MzgpLGk9bigzODk5KSxhPW4oNjk3NDQpLHU9ITEscz0hMSxjPSExLGw9bnVsbCxmPSExLGQ9ITEscD1mdW5jdGlvbih0KXtyZXR1cm4hIXQmJiEhdFswXSYmImF0dGFjaG1lbnRMaXN0Ij09PXRbMF0udHlwZX0saD1mdW5jdGlvbih0KXtpZih0KXJldHVybiB0LmlzQWN0aXZlPyJhY3RpdmUiOiJhd2F5In0sdj1mdW5jdGlvbih0KXtpZih0JiZ0Lmxhc3RBY3RpdmVBdCl7dmFyIGU9bmV3IERhdGU7cmV0dXJuIE1hdGgucm91bmQoKGUuZ2V0VGltZSgpLXQubGFzdEFjdGl2ZUF0LmdldFRpbWUoKSkvNmU0KX19LHk9ZnVuY3Rpb24odCl7cmV0dXJuKDAsby5JKSh0KX0sZz1mdW5jdGlvbih0KXt1PXR9LG09ZnVuY3Rpb24oKXtyZXR1cm4gdX0sYj1mdW5jdGlvbih0KXtzPXR9LHc9ZnVuY3Rpb24oKXtyZXR1cm4gc307ZnVuY3Rpb24gXyh0LGUpe3RyeXt2YXIgbixyPUUoKSxvPXQucGFydHNbdC5wYXJ0cy5sZW5ndGgtMV0sdT1udWxsPT1vfHxudWxsPT0obj1vLmF1dGhvcik/dm9pZCAwOm4uaXNCb3Q7aWYocnx8IXV8fCFlKXJldHVybjsoMCxhLnNxKSgidGltZVRvRmlyc3RCb3RSZXNwb25zZSIse2R1cmF0aW9uX21zOkRhdGUubm93KCktTnVtYmVyKGUpfSkseCghMCl9Y2F0Y2godCl7KDAsaS5qUCkoIkZhaWx1cmUgd2hpbGUgcmVjb3JkaW5nIHRyaWdnZXIgdHJhbnNpdGlvbiBkdXJhdGlvbiAiK3QpfX1mdW5jdGlvbiBTKHQsZSxuKXt0cnl7dmFyIHIsbz1kLHU9dC5wYXJ0c1t0LnBhcnRzLmxlbmd0aC0xXSxzPW51bGw9PXV8fG51bGw9PShyPXUuYXV0aG9yKT92b2lkIDA6ci5pc0JvdCxjPU51bWJlcihlKSxsPU51bWJlcihuKTtpZihvfHwhc3x8IWV8fE1hdGguYWJzKGwtYyk+NTApcmV0dXJuIHZvaWQoZD0hMCk7KDAsYS5zcSkoImR1cmF0aW9uRnJvbUNyZWF0ZUNvbnZlcnNhdGlvblRvT3BlcmF0b3JSZXBseSIse2R1cmF0aW9uX21zOkRhdGUubm93KCktY30pLGQ9ITB9Y2F0Y2godCl7KDAsaS5qUCkoIkZhaWx1cmUgd2hpbGUgcmVjb3JkaW5nIHRyaWdnZXIgdHJhbnNpdGlvbiBkdXJhdGlvbiAiK3QpfX12YXIgeD1mdW5jdGlvbih0KXtmPXR9LEU9ZnVuY3Rpb24oKXtyZXR1cm4gZn0sQz1mdW5jdGlvbih0KXtjPXR9LE89ZnVuY3Rpb24oKXtyZXR1cm4gY30sQT1mdW5jdGlvbih0KXtsPXR9LEk9ZnVuY3Rpb24oKXtyZXR1cm4gbH0saz1mdW5jdGlvbih0KXtyZXR1cm4hIXQmJnIuQXkubWVzc2VuZ2VySXNWaXNpYmxlKCl9fSwyMTQ5ODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtCVzpmdW5jdGlvbigpe3JldHVybiB1fSxJUzpmdW5jdGlvbigpe3JldHVybiBpfSxyeDpmdW5jdGlvbigpe3JldHVybiBhfX0pO3ZhciByPW4oNjcxMjUpLG89bigzNjI2NiksaT1mdW5jdGlvbigpe3ZhciB0PSgwLG8ubUMpKCk7cmV0dXJuIHQuaW5uZXJXaWR0aDw9ci5JfHx0LmlubmVyV2lkdGg8PTIqci5JJiZ0LmlubmVySGVpZ2h0PD1yLkl9LGE9ZnVuY3Rpb24oKXt2YXIgdD0oMCxvLm1DKSgpO3JldHVybiBpKCkmJnQuaW5uZXJXaWR0aD50LmlubmVySGVpZ2h0fSx1PWZ1bmN0aW9uKCl7dHJ5e2koKSYmIXdpbmRvdy5wYXJlbnQubmF2aWdhdG9yLnN0YW5kYWxvbmUmJndpbmRvdy5wYXJlbnQuc2Nyb2xsVG8oMCwwKX1jYXRjaCh0KXt9fX0sNzczNjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtBNzpmdW5jdGlvbigpe3JldHVybiBsfSxQNTpmdW5jdGlvbigpe3JldHVybiBmfSxhVDpmdW5jdGlvbigpe3JldHVybiB1fSxoSzpmdW5jdGlvbigpe3JldHVybiBhfSxpaTpmdW5jdGlvbigpe3JldHVybiBvfSxrNDpmdW5jdGlvbigpe3JldHVybiBzfSx4TTpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPW4oMzg4ODMpO2Z1bmN0aW9uIG8odCl7cmV0dXJuInF1aWNrX3JlcGx5Ij09PXQucGFydFR5cGV9dmFyIGk9bmV3IFNldChbInBvc3QiLCJub3RlIiwibGluayIsImZpblRob3VnaHQiLCJnZW5lcmF0ZWRQbGFuIiwiY2Fyb3VzZWwiLCJjb21wb3NpdGUiLCJjb21wb3NhYmxlU2VhcmNoIiwiY2FsZW5kYXJDYXJkIiwiY29udmVyc2F0aW9uUmF0aW5nIiwiaGFuZG92ZXJDdGEiLCJoYW5kb3ZlckNvbnRleHQiLCJub3RpZmljYXRpb25DaGFubmVscyIsImF0dHJpYnV0ZUNvbGxlY3RvciIsInBvaW50ZXIiLCJ0aWNrZXRDYXJkIiwidGlja2V0U3RhdHVzVXBkYXRlIiwibWVyZ2VkUHJpbWFyeUNvbnZlcnNhdGlvbiIsImdlbmVyaWNIYW5kb2ZmIl0pLGE9ZnVuY3Rpb24odCl7cmV0dXJuISgwLHIueEgpKHQucGFydFR5cGUpJiYoIXQubWVzc2FnZVR5cGV8fCFpLmhhcyh0Lm1lc3NhZ2VUeXBlKSl9O2Z1bmN0aW9uIHUodCl7cmV0dXJuImF0dHJpYnV0ZV9jb2xsZWN0b3IiPT09dC5wYXJ0VHlwZX12YXIgcz1mdW5jdGlvbih0KXtyZXR1cm4idGlja2V0U3RhdHVzVXBkYXRlIj09PXQubWVzc2FnZVR5cGV9LGM9ZnVuY3Rpb24odCl7cmV0dXJuImNhbGVuZGFyQ2FyZCI9PT10Lm1lc3NhZ2VUeXBlfSxsPWZ1bmN0aW9uKHQpe3JldHVybiJoYW5kb3ZlckN0YSI9PT10Lm1lc3NhZ2VUeXBlfSxmPWZ1bmN0aW9uKHQpe3JldHVybiJoYW5kb3ZlckNvbnRleHQiPT09dC5tZXNzYWdlVHlwZX19LDgwMjc4OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0UyOmZ1bmN0aW9uKCl7cmV0dXJuIHB9LEozOmZ1bmN0aW9uKCl7cmV0dXJuIHZ9LGZuOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LHhJOmZ1bmN0aW9uKCl7cmV0dXJuIGh9fSk7dmFyIHI9L1xzKy9nLG89L14oMDApfChcKykvaSxpPS9bXihcZHxcc3xcK3xcLnxcKHxcKXxcLSldL2csYT0vXEQvZyx1PSJ0aGF0X251bWJlcl9uZWVkc19hX3ByZWZpeCIscz0idGhhdF9udW1iZXJfZG9lc250X2xvb2tfcXVpdGVfcmlnaHQiLGM9InRoYXRfY291bnRyeV9jb2RlX2RvZXNudF9sb29rX3F1aXRlX3JpZ2h0IixsPSJ0aGF0X251bWJlcl9pc19taXNzaW5nX2FfZmV3X2RpZ2l0cyIsZj0idGhhdF9udW1iZXJfaGFzX3Rvb19tYW55X2RpZ2l0cyIsZD1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09cCh0KX0scD1mdW5jdGlvbih0KXtpZigheSh0KSlyZXR1cm4gdTt2YXIgZT10LnJlcGxhY2UobywiIik7aWYoZS5tYXRjaChpKSlyZXR1cm4gcztpZigoZT1lLnJlcGxhY2UoYSwiIikpLmxlbmd0aD4xNSlyZXR1cm4gZjt2YXIgbj12KGUpO3JldHVybiBuJiYoZT1lLnN1YnN0cmluZyhuLmRpYWxDb2RlLmxlbmd0aCkpLGUubGVuZ3RoPDY/bDpuP3ZvaWQgMDpjfSxoPWZ1bmN0aW9uKHQpe3ZhciBlPVNbdF07cmV0dXJuIGU/IisiK2UuZGlhbENvZGU6IisxIn0sdj1mdW5jdGlvbih0KXt2YXIgZT1nKHQpO2lmKCEoZS5sZW5ndGg8NCkpe3ZhciBuPW0oZSk7cmV0dXJuIF8obil9fSx5PWZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hdGNoKG8pfSxnPWZ1bmN0aW9uKHQpe3ZhciBlPXQucmVwbGFjZShyLCIiKTtyZXR1cm4oZT0oZT1lLnJlcGxhY2UobywiIikpLnJlcGxhY2UoaSwiIikpLnNsaWNlKDAsNCl9LG09ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49T2JqZWN0LmtleXMoUykscj0wO3I8PW4ubGVuZ3RoLTE7cisrKXt2YXIgbz1iKG5bcl0pLGk9dyhvKTtpZihpLmluZGV4T2YodCk+LTEpe2UucHVzaChvKTticmVha31pLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiB0LnN0YXJ0c1dpdGgoZSl9KSkmJmUucHVzaChvKX1yZXR1cm4gZX0sYj1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihTW3RdLHtjb2RlOnR9KX0sdz1mdW5jdGlvbih0KXt2YXIgZT10LmRpYWxDb2RlLG49dC5hcmVhQ29kZXM7cmV0dXJuIG4/bi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiIiK2UrdH0pKTpbZV19LF89ZnVuY3Rpb24odCl7aWYoMT09PXQubGVuZ3RoKXJldHVybiB0WzBdO2lmKHQubGVuZ3RoPjEmJjE9PT1uZXcgU2V0KHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kaWFsQ29kZX0pKSkuc2l6ZSlyZXR1cm4gdC5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQucHJpb3JpdHl9KSl9LFM9e2FmOntkaWFsQ29kZToiOTMiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGFsOntkaWFsQ29kZToiMzU1IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxkejp7ZGlhbENvZGU6IjIxMyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sYXM6e2RpYWxDb2RlOiIxNjg0IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxhZDp7ZGlhbENvZGU6IjM3NiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sYW86e2RpYWxDb2RlOiIyNDQiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGFpOntkaWFsQ29kZToiMTI2NCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sYWc6e2RpYWxDb2RlOiIxMjY4IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxhcjp7ZGlhbENvZGU6IjU0IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxhbTp7ZGlhbENvZGU6IjM3NCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sYXc6e2RpYWxDb2RlOiIyOTciLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGF1OntkaWFsQ29kZToiNjEiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGF0OntkaWFsQ29kZToiNDMiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGF6OntkaWFsQ29kZToiOTk0IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxiczp7ZGlhbENvZGU6IjEyNDIiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGJoOntkaWFsQ29kZToiOTczIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxiZDp7ZGlhbENvZGU6Ijg4MCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sYmI6e2RpYWxDb2RlOiIxMjQ2IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxieTp7ZGlhbENvZGU6IjM3NSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sYmU6e2RpYWxDb2RlOiIzMiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sYno6e2RpYWxDb2RlOiI1MDEiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGJqOntkaWFsQ29kZToiMjI5IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxibTp7ZGlhbENvZGU6IjE0NDEiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGJ0OntkaWFsQ29kZToiOTc1IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxibzp7ZGlhbENvZGU6IjU5MSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sYmE6e2RpYWxDb2RlOiIzODciLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGJ3OntkaWFsQ29kZToiMjY3IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxicjp7ZGlhbENvZGU6IjU1IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxpbzp7ZGlhbENvZGU6IjI0NiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sdmc6e2RpYWxDb2RlOiIxMjg0IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxibjp7ZGlhbENvZGU6IjY3MyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sYmc6e2RpYWxDb2RlOiIzNTkiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGJmOntkaWFsQ29kZToiMjI2IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxiaTp7ZGlhbENvZGU6IjI1NyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sa2g6e2RpYWxDb2RlOiI4NTUiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGNtOntkaWFsQ29kZToiMjM3IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxjYTp7ZGlhbENvZGU6IjEiLGFyZWFDb2RlczpbIjIwNCIsIjIyNiIsIjIzNiIsIjI0OSIsIjI1MCIsIjI4OSIsIjMwNiIsIjM0MyIsIjM2NSIsIjM4NyIsIjQwMyIsIjQxNiIsIjQxOCIsIjQzMSIsIjQzNyIsIjQzOCIsIjQ1MCIsIjUwNiIsIjUxNCIsIjUxOSIsIjU0OCIsIjU3OSIsIjU4MSIsIjU4NyIsIjYwNCIsIjYxMyIsIjYzOSIsIjY0NyIsIjY3MiIsIjcwNSIsIjcwOSIsIjc0MiIsIjc3OCIsIjc4MCIsIjc4MiIsIjgwNyIsIjgxOSIsIjgyNSIsIjg2NyIsIjg3MyIsIjkwMiIsIjkwNSJdLHByaW9yaXR5OjF9LGN2OntkaWFsQ29kZToiMjM4IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxicTp7ZGlhbENvZGU6IjU5OSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MX0sa3k6e2RpYWxDb2RlOiIxMzQ1IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxjZjp7ZGlhbENvZGU6IjIzNiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sdGQ6e2RpYWxDb2RlOiIyMzUiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGNsOntkaWFsQ29kZToiNTYiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGNuOntkaWFsQ29kZToiODYiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGN4OntkaWFsQ29kZToiNjEiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjJ9LGNjOntkaWFsQ29kZToiNjEiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjF9LGNvOntkaWFsQ29kZToiNTciLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGttOntkaWFsQ29kZToiMjY5IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxjZDp7ZGlhbENvZGU6IjI0MyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sY2c6e2RpYWxDb2RlOiIyNDIiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGNrOntkaWFsQ29kZToiNjgyIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxjcjp7ZGlhbENvZGU6IjUwNiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sY2k6e2RpYWxDb2RlOiIyMjUiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGhyOntkaWFsQ29kZToiMzg1IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxjdTp7ZGlhbENvZGU6IjUzIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxjdzp7ZGlhbENvZGU6IjU5OSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sY3k6e2RpYWxDb2RlOiIzNTciLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGN6OntkaWFsQ29kZToiNDIwIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxkazp7ZGlhbENvZGU6IjQ1IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxkajp7ZGlhbENvZGU6IjI1MyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sZG06e2RpYWxDb2RlOiIxNzY3IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxkbzp7ZGlhbENvZGU6IjEiLGFyZWFDb2RlczpbIjgwOSIsIjgyOSIsIjg0OSJdLHByaW9yaXR5OjJ9LGVjOntkaWFsQ29kZToiNTkzIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxlZzp7ZGlhbENvZGU6IjIwIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxzdjp7ZGlhbENvZGU6IjUwMyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sZ3E6e2RpYWxDb2RlOiIyNDAiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGVyOntkaWFsQ29kZToiMjkxIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxlZTp7ZGlhbENvZGU6IjM3MiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sZXQ6e2RpYWxDb2RlOiIyNTEiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGZrOntkaWFsQ29kZToiNTAwIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxmbzp7ZGlhbENvZGU6IjI5OCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sZmo6e2RpYWxDb2RlOiI2NzkiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGZpOntkaWFsQ29kZToiMzU4IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxmcjp7ZGlhbENvZGU6IjMzIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxnZjp7ZGlhbENvZGU6IjU5NCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0scGY6e2RpYWxDb2RlOiI2ODkiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGdhOntkaWFsQ29kZToiMjQxIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxnbTp7ZGlhbENvZGU6IjIyMCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sZ2U6e2RpYWxDb2RlOiI5OTUiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGRlOntkaWFsQ29kZToiNDkiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGdoOntkaWFsQ29kZToiMjMzIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxnaTp7ZGlhbENvZGU6IjM1MCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sZ3I6e2RpYWxDb2RlOiIzMCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sZ2w6e2RpYWxDb2RlOiIyOTkiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGdkOntkaWFsQ29kZToiMTQ3MyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sZ3A6e2RpYWxDb2RlOiI1OTAiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGd1OntkaWFsQ29kZToiMTY3MSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sZ3Q6e2RpYWxDb2RlOiI1MDIiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGdnOntkaWFsQ29kZToiNDQiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjF9LGduOntkaWFsQ29kZToiMjI0IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxndzp7ZGlhbENvZGU6IjI0NSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sZ3k6e2RpYWxDb2RlOiI1OTIiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGh0OntkaWFsQ29kZToiNTA5IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxobjp7ZGlhbENvZGU6IjUwNCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0saGs6e2RpYWxDb2RlOiI4NTIiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGh1OntkaWFsQ29kZToiMzYiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGlzOntkaWFsQ29kZToiMzU0IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxpbjp7ZGlhbENvZGU6IjkxIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxpZDp7ZGlhbENvZGU6IjYyIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxpcjp7ZGlhbENvZGU6Ijk4IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxpcTp7ZGlhbENvZGU6Ijk2NCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0saWU6e2RpYWxDb2RlOiIzNTMiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGltOntkaWFsQ29kZToiNDQiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjJ9LGlsOntkaWFsQ29kZToiOTcyIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxpdDp7ZGlhbENvZGU6IjM5IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxqbTp7ZGlhbENvZGU6IjE4NzYiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGpwOntkaWFsQ29kZToiODEiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGplOntkaWFsQ29kZToiNDQiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjN9LGpvOntkaWFsQ29kZToiOTYyIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxrejp7ZGlhbENvZGU6IjciLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjF9LGtlOntkaWFsQ29kZToiMjU0IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxraTp7ZGlhbENvZGU6IjY4NiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0seGs6e2RpYWxDb2RlOiIzODMiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGt3OntkaWFsQ29kZToiOTY1IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxrZzp7ZGlhbENvZGU6Ijk5NiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbGE6e2RpYWxDb2RlOiI4NTYiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGx2OntkaWFsQ29kZToiMzcxIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxsYjp7ZGlhbENvZGU6Ijk2MSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbHM6e2RpYWxDb2RlOiIyNjYiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGxyOntkaWFsQ29kZToiMjMxIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxseTp7ZGlhbENvZGU6IjIxOCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbGk6e2RpYWxDb2RlOiI0MjMiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGx0OntkaWFsQ29kZToiMzcwIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxsdTp7ZGlhbENvZGU6IjM1MiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbW86e2RpYWxDb2RlOiI4NTMiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LG1rOntkaWFsQ29kZToiMzg5IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxtZzp7ZGlhbENvZGU6IjI2MSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbXc6e2RpYWxDb2RlOiIyNjUiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LG15OntkaWFsQ29kZToiNjAiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LG12OntkaWFsQ29kZToiOTYwIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxtbDp7ZGlhbENvZGU6IjIyMyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbXQ6e2RpYWxDb2RlOiIzNTYiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LG1oOntkaWFsQ29kZToiNjkyIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxtcTp7ZGlhbENvZGU6IjU5NiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbXI6e2RpYWxDb2RlOiIyMjIiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LG11OntkaWFsQ29kZToiMjMwIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSx5dDp7ZGlhbENvZGU6IjI2MiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MX0sbXg6e2RpYWxDb2RlOiI1MiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sZm06e2RpYWxDb2RlOiI2OTEiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LG1kOntkaWFsQ29kZToiMzczIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxtYzp7ZGlhbENvZGU6IjM3NyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbW46e2RpYWxDb2RlOiI5NzYiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LG1lOntkaWFsQ29kZToiMzgyIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxtczp7ZGlhbENvZGU6IjE2NjQiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LG1hOntkaWFsQ29kZToiMjEyIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxtejp7ZGlhbENvZGU6IjI1OCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbW06e2RpYWxDb2RlOiI5NSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbmE6e2RpYWxDb2RlOiIyNjQiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LG5yOntkaWFsQ29kZToiNjc0IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxucDp7ZGlhbENvZGU6Ijk3NyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbmw6e2RpYWxDb2RlOiIzMSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbmM6e2RpYWxDb2RlOiI2ODciLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LG56OntkaWFsQ29kZToiNjQiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LG5pOntkaWFsQ29kZToiNTA1IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxuZTp7ZGlhbENvZGU6IjIyNyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbmc6e2RpYWxDb2RlOiIyMzQiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LG51OntkaWFsQ29kZToiNjgzIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxuZjp7ZGlhbENvZGU6IjY3MiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sa3A6e2RpYWxDb2RlOiI4NTAiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LG1wOntkaWFsQ29kZToiMTY3MCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbm86e2RpYWxDb2RlOiI0NyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sb206e2RpYWxDb2RlOiI5NjgiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHBrOntkaWFsQ29kZToiOTIiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHB3OntkaWFsQ29kZToiNjgwIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxwczp7ZGlhbENvZGU6Ijk3MCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0scGE6e2RpYWxDb2RlOiI1MDciLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHBnOntkaWFsQ29kZToiNjc1IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxweTp7ZGlhbENvZGU6IjU5NSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0scGU6e2RpYWxDb2RlOiI1MSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0scGg6e2RpYWxDb2RlOiI2MyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0scGw6e2RpYWxDb2RlOiI0OCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0scHQ6e2RpYWxDb2RlOiIzNTEiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHByOntkaWFsQ29kZToiMSIsYXJlYUNvZGVzOlsiNzg3IiwiOTM5Il0scHJpb3JpdHk6M30scWE6e2RpYWxDb2RlOiI5NzQiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHJlOntkaWFsQ29kZToiMjYyIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxybzp7ZGlhbENvZGU6IjQwIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxydTp7ZGlhbENvZGU6IjciLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHJ3OntkaWFsQ29kZToiMjUwIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxibDp7ZGlhbENvZGU6IjU5MCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MX0sc2g6e2RpYWxDb2RlOiIyOTAiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGtuOntkaWFsQ29kZToiMTg2OSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbGM6e2RpYWxDb2RlOiIxNzU4IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxtZjp7ZGlhbENvZGU6IjU5MCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6Mn0scG06e2RpYWxDb2RlOiI1MDgiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHZjOntkaWFsQ29kZToiMTc4NCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sd3M6e2RpYWxDb2RlOiI2ODUiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHNtOntkaWFsQ29kZToiMzc4IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxzdDp7ZGlhbENvZGU6IjIzOSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sc2E6e2RpYWxDb2RlOiI5NjYiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHNuOntkaWFsQ29kZToiMjIxIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxyczp7ZGlhbENvZGU6IjM4MSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sc2M6e2RpYWxDb2RlOiIyNDgiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHNsOntkaWFsQ29kZToiMjMyIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxzZzp7ZGlhbENvZGU6IjY1IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxzeDp7ZGlhbENvZGU6IjE3MjEiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHNrOntkaWFsQ29kZToiNDIxIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxzaTp7ZGlhbENvZGU6IjM4NiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sc2I6e2RpYWxDb2RlOiI2NzciLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHNvOntkaWFsQ29kZToiMjUyIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSx6YTp7ZGlhbENvZGU6IjI3IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxrcjp7ZGlhbENvZGU6IjgyIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxzczp7ZGlhbENvZGU6IjIxMSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sZXM6e2RpYWxDb2RlOiIzNCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sbGs6e2RpYWxDb2RlOiI5NCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sc2Q6e2RpYWxDb2RlOiIyNDkiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHNyOntkaWFsQ29kZToiNTk3IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxzajp7ZGlhbENvZGU6IjQ3IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eToxfSxzejp7ZGlhbENvZGU6IjI2OCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sc2U6e2RpYWxDb2RlOiI0NiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sY2g6e2RpYWxDb2RlOiI0MSIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sc3k6e2RpYWxDb2RlOiI5NjMiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHR3OntkaWFsQ29kZToiODg2IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSx0ajp7ZGlhbENvZGU6Ijk5MiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sdHo6e2RpYWxDb2RlOiIyNTUiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHRoOntkaWFsQ29kZToiNjYiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHRsOntkaWFsQ29kZToiNjcwIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSx0Zzp7ZGlhbENvZGU6IjIyOCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sdGs6e2RpYWxDb2RlOiI2OTAiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHRvOntkaWFsQ29kZToiNjc2IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSx0dDp7ZGlhbENvZGU6IjE4NjgiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHRuOntkaWFsQ29kZToiMjE2IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSx0cjp7ZGlhbENvZGU6IjkwIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSx0bTp7ZGlhbENvZGU6Ijk5MyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sdGM6e2RpYWxDb2RlOiIxNjQ5IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSx0djp7ZGlhbENvZGU6IjY4OCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sdmk6e2RpYWxDb2RlOiIxMzQwIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSx1Zzp7ZGlhbENvZGU6IjI1NiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sdWE6e2RpYWxDb2RlOiIzODAiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LGFlOntkaWFsQ29kZToiOTcxIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxnYjp7ZGlhbENvZGU6IjQ0IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSx1czp7ZGlhbENvZGU6IjEiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHV5OntkaWFsQ29kZToiNTk4IixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSx1ejp7ZGlhbENvZGU6Ijk5OCIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sdnU6e2RpYWxDb2RlOiI2NzgiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHZhOntkaWFsQ29kZToiMzkiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjF9LHZlOntkaWFsQ29kZToiNTgiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHZuOntkaWFsQ29kZToiODQiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHdmOntkaWFsQ29kZToiNjgxIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSxlaDp7ZGlhbENvZGU6IjIxMiIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MX0seWU6e2RpYWxDb2RlOiI5NjciLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjB9LHptOntkaWFsQ29kZToiMjYwIixhcmVhQ29kZXM6bnVsbCxwcmlvcml0eTowfSx6dzp7ZGlhbENvZGU6IjI2MyIsYXJlYUNvZGVzOm51bGwscHJpb3JpdHk6MH0sYXg6e2RpYWxDb2RlOiIzNTgiLGFyZWFDb2RlczpudWxsLHByaW9yaXR5OjF9fX0sNjI5NDg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7WjpmdW5jdGlvbigpe3JldHVybiBhfSxsOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7dmFyIHI9big0MDIzOCksbz0iaW50ZXJjb20tc25pcHBldF9fcHJldmlldy1tb2RlLWN1c3RvbWl6YXRpb25fX2luc3RhbmNlLWlkIjtmdW5jdGlvbiBpKHQpeygwLHIueUopKG8sdCl9ZnVuY3Rpb24gYSgpe3JldHVybigwLHIuemopKClbb118fHt9fX0sODQxOTA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7SVI6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sVUY6ZnVuY3Rpb24oKXtyZXR1cm4gaX19KTt2YXIgcj1uKDQwMjM4KSxvPSJpbnRlcmNvbS1zbmlwcGV0X19wcmV2aWV3LXNldHRpbmdzX19pbnN0YW5jZS1pZCI7ZnVuY3Rpb24gaSh0KXsoMCxyLnlKKShvLHQpfWZ1bmN0aW9uIGEoKXtyZXR1cm4oMCxyLnpqKSgpW29dfX0sMTI0NTU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7JDpmdW5jdGlvbigpe3JldHVybiBzfSxaOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9fSk7dmFyIHI9big2OTc0NCksbz1uKDMzMDQ4KTtmdW5jdGlvbiBpKHQpe3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxpKHQpfWZ1bmN0aW9uIGEoKXthPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3ZhciB0LGU9e30sbj1PYmplY3QucHJvdG90eXBlLHI9bi5oYXNPd25Qcm9wZXJ0eSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24odCxlLG4pe3RbZV09bi52YWx1ZX0sdT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxzPXUuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIixjPXUuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIsbD11LnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gZih0LGUsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtmKHt9LCIiKX1jYXRjaCh0KXtmPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1ufX1mdW5jdGlvbiBkKHQsZSxuLHIpe3ZhciBpPWUmJmUucHJvdG90eXBlIGluc3RhbmNlb2YgYj9lOmIsYT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSx1PW5ldyBqKHJ8fFtdKTtyZXR1cm4gbyhhLCJfaW52b2tlIix7dmFsdWU6SSh0LG4sdSl9KSxhfWZ1bmN0aW9uIHAodCxlLG4pe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6dC5jYWxsKGUsbil9fWNhdGNoKHQpe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOnR9fX1lLndyYXA9ZDt2YXIgaD0ic3VzcGVuZGVkU3RhcnQiLHY9InN1c3BlbmRlZFlpZWxkIix5PSJleGVjdXRpbmciLGc9ImNvbXBsZXRlZCIsbT17fTtmdW5jdGlvbiBiKCl7fWZ1bmN0aW9uIHcoKXt9ZnVuY3Rpb24gXygpe312YXIgUz17fTtmKFMscywoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgeD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsRT14JiZ4KHgoUChbXSkpKTtFJiZFIT09biYmci5jYWxsKEUscykmJihTPUUpO3ZhciBDPV8ucHJvdG90eXBlPWIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoUyk7ZnVuY3Rpb24gTyh0KXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2YodCxlLChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW52b2tlKGUsdCl9KSl9KSl9ZnVuY3Rpb24gQSh0LGUpe2Z1bmN0aW9uIG4obyxhLHUscyl7dmFyIGM9cCh0W29dLHQsYSk7aWYoInRocm93IiE9PWMudHlwZSl7dmFyIGw9Yy5hcmcsZj1sLnZhbHVlO3JldHVybiBmJiYib2JqZWN0Ij09aShmKSYmci5jYWxsKGYsIl9fYXdhaXQiKT9lLnJlc29sdmUoZi5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LHUscyl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsdSxzKX0pKTplLnJlc29sdmUoZikudGhlbigoZnVuY3Rpb24odCl7bC52YWx1ZT10LHUobCl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LHUscyl9KSl9cyhjLmFyZyl9dmFyIGE7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGE9YT9hLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gSShlLG4scil7dmFyIG89aDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09eSl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT1nKXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1rKHUscik7aWYocyl7aWYocz09PW0pY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09aCl0aHJvdyBvPWcsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPXk7dmFyIGM9cChlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP2c6dixjLmFyZz09PW0pY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz1nLHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gayhlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsayhlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSxtO3ZhciBpPXAobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCxtO3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCxtKTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLG0pfWZ1bmN0aW9uIEwodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gVCh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gaih0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEwsdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gUChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbc107aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsYT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGEubmV4dD1hfX10aHJvdyBuZXcgVHlwZUVycm9yKGkoZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gdy5wcm90b3R5cGU9XyxvKEMsImNvbnN0cnVjdG9yIix7dmFsdWU6Xyxjb25maWd1cmFibGU6ITB9KSxvKF8sImNvbnN0cnVjdG9yIix7dmFsdWU6dyxjb25maWd1cmFibGU6ITB9KSx3LmRpc3BsYXlOYW1lPWYoXyxsLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09d3x8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsXyk6KHQuX19wcm90b19fPV8sZih0LGwsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoQyksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sTyhBLnByb3RvdHlwZSksZihBLnByb3RvdHlwZSxjLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1BLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQShkKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LE8oQyksZihDLGwsIkdlbmVyYXRvciIpLGYoQyxzLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGYoQywidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1QLGoucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpqLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChUKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MsbSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSxtfSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLFQobiksbX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztUKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpQKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCksbX19LGV9ZnVuY3Rpb24gdSh0LGUsbixyLG8saSxhKXt0cnl7dmFyIHU9dFtpXShhKSxzPXUudmFsdWV9Y2F0Y2godCl7cmV0dXJuIHZvaWQgbih0KX11LmRvbmU/ZShzKTpQcm9taXNlLnJlc29sdmUocykudGhlbihyLG8pfWZ1bmN0aW9uIHModCxlLG4scil7cmV0dXJuIGMobCh0LGUsbixyKSl9dmFyIGM9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBuPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkobiksbz0wO288bjtvKyspcltvXT1hcmd1bWVudHNbb107dmFyIGk9ZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseSh2b2lkIDAscil9O3JldHVybiBlPVByb21pc2UucmVzb2x2ZShlKS50aGVuKGksaSl9fSxsPWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciBhPTAsdT0wO3JldHVybiBmdW5jdGlvbigpe3ZhciBzPW8uQXkubm93KCk7cmV0dXJuIHMtdT49biYmKGE9MCx1PXMpLCsrYTw9ZT90LmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpOigoMCxyLm9TKSgicmF0ZV9saW1pdGluZy4iK2kpLCgwLHIuc3EpKCJyYXRlX2xpbWl0X2NoZWNrXyIraSx7cmF0ZV9saW1pdGVkOiEwLHJhdGVfbGltaXRfY291bnQ6bn0sITApLFByb21pc2UucmVqZWN0KCJyYXRlX2xpbWl0ZWRfdXBkYXRlIikpfX07ZnVuY3Rpb24gZih0LGUpe3JldHVybiBkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBkKCl7dmFyIHQ7cmV0dXJuIHQ9YSgpLm1hcmsoKGZ1bmN0aW9uIHQoZSxuKXt2YXIgcixvLGksdSxzLGMsbCxmLGQscCxoLHYseSxnLG0sYix3O3JldHVybiBhKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6dm9pZCAwPT09biYmKG49e30pLG89KHI9bikubWF4UmV0cmllcyxpPXZvaWQgMD09PW8/MzpvLHU9ci5pbml0aWFsRGVsYXlNcyxzPXZvaWQgMD09PXU/NTAwOnUsYz1yLm1heERlbGF5TXMsbD12b2lkIDA9PT1jPzNlNDpjLGY9ci5iYWNrb2ZmTXVsdGlwbGllcixkPXZvaWQgMD09PWY/MjpmLHA9ci5tYXhUaW1lb3V0TXMsaD1yLnNob3VsZE5vdFJldHJ5LHY9RGF0ZS5ub3coKSxnPXMsbT1hKCkubWFyaygoZnVuY3Rpb24gdCgpe3ZhciBuO3JldHVybiBhKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYoIShwJiZEYXRlLm5vdygpLXY+PXApKXt0Lm5leHQ9MjticmVha310aHJvdyBuZXcgRXJyb3IoIlJldHJ5IHRpbWVvdXQgZXhjZWVkZWQgYWZ0ZXIgIitwKyJtcyIpO2Nhc2UgMjpyZXR1cm4gdC5wcmV2PTIsdC5uZXh0PTUsZSgpO2Nhc2UgNTpyZXR1cm4gdC50MD10LnNlbnQsdC5hYnJ1cHQoInJldHVybiIse3Y6dC50MH0pO2Nhc2UgOTppZih0LnByZXY9OSx0LnQxPXQuY2F0Y2goMikseT10LnQxLCFofHwhaCh0LnQxKSl7dC5uZXh0PTE0O2JyZWFrfXRocm93IHQudDE7Y2FzZSAxNDppZighKHc8aSkpe3QubmV4dD0xOTticmVha31yZXR1cm4gbj1NYXRoLm1pbihnLGwpLHQubmV4dD0xOCxuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCl7cmV0dXJuIHNldFRpbWVvdXQodCxuKX0pKTtjYXNlIDE4OmcqPWQ7Y2FzZSAxOTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsbnVsbCxbWzIsOV1dKX0pKSx3PTA7Y2FzZSA2OmlmKCEodzw9aSkpe3QubmV4dD0xNDticmVha31yZXR1cm4gdC5kZWxlZ2F0ZVlpZWxkKG0oKSwidDAiLDgpO2Nhc2UgODppZighKGI9dC50MCkpe3QubmV4dD0xMTticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIsYi52KTtjYXNlIDExOncrKyx0Lm5leHQ9NjticmVhaztjYXNlIDE0OnRocm93IHk7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQpfSkpLGQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXt1KGkscixvLGEscywibmV4dCIsdCl9ZnVuY3Rpb24gcyh0KXt1KGkscixvLGEscywidGhyb3ciLHQpfWEodm9pZCAwKX0pKX0sZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSwzMjA5NTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtQOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7dmFyIHI9ZnVuY3Rpb24odCxlLG4pe3ZhciByO3ZvaWQgMD09PWUmJihlPTZlNCksdm9pZCAwPT09biYmKG49MCk7dmFyIG89ZnVuY3Rpb24oKXtyPVtdfSxpPWZ1bmN0aW9uKCl7dmFyIG89dC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSxpPXIuZmluZEluZGV4KChmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXk9PT1vfSkpLGE9RGF0ZS5ub3coKTtpZihpPi0xKXtpZighZnVuY3Rpb24odCxuKXtyZXR1cm4gdC1uLmNyZWF0ZWRBdD5lfShhLHJbaV0pKXJldHVybiEwO3Iuc3BsaWNlKGksMSl9cmV0dXJuIG4+MCYmci5sZW5ndGg9PT1uJiZyLnNoaWZ0KCksci5wdXNoKHtrZXk6byxjcmVhdGVkQXQ6YX0pLCExfTtyZXR1cm4gaS5yZXNldD1vLG8oKSxpfX0sMjY5NDc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7Um86ZnVuY3Rpb24oKXtyZXR1cm4gY30sUnA6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sZVI6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sczM6ZnVuY3Rpb24oKXtyZXR1cm4gZn19KTt2YXIgcj1uKDgzMTQ3KSxvPW4oMzg5OSksaT1uKDg4MjkxKTtmdW5jdGlvbiBhKCl7YT1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30scz1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsYz1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLGw9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGYodCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Zih7fSwiIil9Y2F0Y2godCl7Zj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gZCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGI/ZTpiLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgaihyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOkkodCxuLHUpfSksYX1mdW5jdGlvbiBwKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWQ7dmFyIGg9InN1c3BlbmRlZFN0YXJ0Iix2PSJzdXNwZW5kZWRZaWVsZCIseT0iZXhlY3V0aW5nIixnPSJjb21wbGV0ZWQiLG09e307ZnVuY3Rpb24gYigpe31mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIF8oKXt9dmFyIFM9e307ZihTLHMsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIHg9T2JqZWN0LmdldFByb3RvdHlwZU9mLEU9eCYmeCh4KFAoW10pKSk7RSYmRSE9PW4mJnIuY2FsbChFLHMpJiYoUz1FKTt2YXIgQz1fLnByb3RvdHlwZT1iLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFMpO2Z1bmN0aW9uIE8odCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtmKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEEodCxlKXtmdW5jdGlvbiBuKG8saSxhLHMpe3ZhciBjPXAodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1jLnR5cGUpe3ZhciBsPWMuYXJnLGY9bC52YWx1ZTtyZXR1cm4gZiYmIm9iamVjdCI9PXUoZikmJnIuY2FsbChmLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGYuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCxhLHMpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LGEscyl9KSk6ZS5yZXNvbHZlKGYpLnRoZW4oKGZ1bmN0aW9uKHQpe2wudmFsdWU9dCxhKGwpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCxhLHMpfSkpfXMoYy5hcmcpfXZhciBpO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIEkoZSxuLHIpe3ZhciBvPWg7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PXkpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09Zyl7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9ayh1LHIpO2lmKHMpe2lmKHM9PT1tKWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWgpdGhyb3cgbz1nLHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz15O3ZhciBjPXAoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT9nOnYsYy5hcmc9PT1tKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89ZyxyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIGsoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LGsoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSksbTt2YXIgaT1wKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwsbTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwsbSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCxtKX1mdW5jdGlvbiBMKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIFQodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIGoodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChMLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFAoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW3NdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGk9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBpLm5leHQ9aX19dGhyb3cgbmV3IFR5cGVFcnJvcih1KGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIHcucHJvdG90eXBlPV8sbyhDLCJjb25zdHJ1Y3RvciIse3ZhbHVlOl8sY29uZmlndXJhYmxlOiEwfSksbyhfLCJjb25zdHJ1Y3RvciIse3ZhbHVlOncsY29uZmlndXJhYmxlOiEwfSksdy5kaXNwbGF5TmFtZT1mKF8sbCwiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PXd8fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LF8pOih0Ll9fcHJvdG9fXz1fLGYodCxsLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEMpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LE8oQS5wcm90b3R5cGUpLGYoQS5wcm90b3R5cGUsYywoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QSxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEEoZCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxPKEMpLGYoQyxsLCJHZW5lcmF0b3IiKSxmKEMscywoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxmKEMsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9UCxqLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aixyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goVCksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLG0pOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSksbX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxUKG4pLG19fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7VChuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6UChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLG19fSxlfWZ1bmN0aW9uIHUodCl7cmV0dXJuIHU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHUodCl9ZnVuY3Rpb24gcyh0LGUsbixyLG8saSxhKXt0cnl7dmFyIHU9dFtpXShhKSxzPXUudmFsdWV9Y2F0Y2godCl7cmV0dXJuIHZvaWQgbih0KX11LmRvbmU/ZShzKTpQcm9taXNlLnJlc29sdmUocykudGhlbihyLG8pfXZhciBjPSJicm93c2VyX2V4dGVuc2lvbl9odG1sX2luamVjdGlvbiI7ZnVuY3Rpb24gbCgpe3ZhciB0O3JldHVybiB0PWEoKS5tYXJrKChmdW5jdGlvbiB0KGUsbil7dmFyIG87cmV0dXJuIGEoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdC5wcmV2PTAsbz1lLnN1YnN0cmluZygwLDIwMCksdC5uZXh0PTQsKDAsci53ZCkoIkJyb3dzZXIgZXh0ZW5zaW9uIEhUTUwgaW5qZWN0aW9uIGRldGVjdGVkIix7ImVycm9yLnR5cGUiOiJodG1sX2luamVjdGlvbiIsImVycm9yLmVuZHBvaW50IjpuLCJlcnJvci5hdHRhY2tfdHlwZSI6ImJyb3dzZXJfZXh0ZW5zaW9uX2ludGVyY2VwdCJ9LHtodG1sX3NuaXBwZXQ6byxkZXRlY3Rpb25fdGltZXN0YW1wOihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKX0pO2Nhc2UgNDp0Lm5leHQ9ODticmVhaztjYXNlIDY6dC5wcmV2PTYsdC50MD10LmNhdGNoKDApO2Nhc2UgODpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsbnVsbCxbWzAsNl1dKX0pKSxsPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7cyhpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7cyhpLHIsbyxhLHUsInRocm93Iix0KX1hKHZvaWQgMCl9KSl9LGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciBmPWZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwPT09dClyZXR1cm4gbnVsbDtpZigiaHR0cF9wb3N0X3Nlc3Npb25fZW1wdHkiPT09dClyZXR1cm4gbnVsbDtpZigicmF0ZV9saW1pdGVkX3VwZGF0ZSI9PT10KXJldHVybiBudWxsO2lmKCJzdHJpbmciPT10eXBlb2YgdCYmKDAsaS5OKSh0KSl7dmFyIG49KDAsaS5jKSh0KTtyZXR1cm4oMCxvLmpQKShuKSxlJiZmdW5jdGlvbih0LGUpe2wuYXBwbHkodGhpcyxhcmd1bWVudHMpfSh0LGUpLFt7Y29kZTpjfV19dHJ5e3JldHVybiB0LmVycm9yc3x8SlNPTi5wYXJzZSh0KS5lcnJvcnN9Y2F0Y2goZSl7dmFyIGE9ZnVuY3Rpb24odCl7dmFyIGU9bnVsbDtpZigic3RyaW5nIj09dHlwZW9mIHQpdHJ5e2U9SlNPTi5wYXJzZSh0KX1jYXRjaChlKXtyZXR1cm4tMSE9PXQuaW5kZXhPZignInR5cGUiOiJlcnJvci5saXN0IicpfHwtMSE9PXQuaW5kZXhPZignImVycm9ycyI6WycpfWVsc2Uib2JqZWN0Ij09PXUodCkmJm51bGwhPT10JiYoZT10KTtyZXR1cm4hKCFlfHwiZXJyb3IubGlzdCIhPT1lLnR5cGUmJiEoImVycm9ycyJpbiBlKSl9KHQpO2lmKGEpe3ZhciBzPSJzdHJpbmciPT10eXBlb2YgdD90OkpTT04uc3RyaW5naWZ5KHQpOygwLG8ualApKCJBUEkgZXJyb3IgcmVzcG9uc2U6ICIrcyl9ZWxzZSgwLG8ualApKHQpLCgwLHIubDIpKHQpO3JldHVybn19O3ZhciBkPWZ1bmN0aW9uKHQpe3ZhciBlPWYodCk7aWYoZSl7dmFyIG49ZS5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kYXRhfSkpO2lmKG4pe3ZhciByPW4uZGF0YTtyZXR1cm57YWN0aXZlU3Vic2NyaXB0aW9uOnIuYWN0aXZlX3N1YnNjcmlwdGlvbix1c2VySGFzaFZlcmlmaWVkOnIudXNlcl9oYXNoX3ZlcmlmaWVkLHNlY3VyZUluc3RhbGxWMjpyLnNlY3VyZV9pbnN0YWxsX3YyLG1lc3NlbmdlckVuYWJsZWRGb3JWaXNpdG9yczpyLm1lc3Nlbmdlcl9lbmFibGVkX2Zvcl92aXNpdG9ycyxtZXNzZW5nZXJFbmFibGVkRm9yVXNlcnM6ci5tZXNzZW5nZXJfZW5hYmxlZF9mb3JfdXNlcnN9fX19LHA9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnRbMF0uY29kZX19LDY4NzYyOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse05xOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LE9tOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LGJ4OmZ1bmN0aW9uKCl7cmV0dXJuIGF9LGM2OmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LGZQOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHNCOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9big3MDQwMCksbz1uKDI2NzAzKSxpPVsiL2xvYWRpbmciLCIvIitvLklqLmlkKyIvY29udmVyc2F0aW9uL3RyaWdnZXItc2NyZWVuIl0sYT1mdW5jdGlvbih0KXtyZXR1cm4hIXQmJi0xIT09aS5pbmRleE9mKHQpfSx1PWZ1bmN0aW9uKHQpe3JldHVybiIvIitvLklqLmlkKyIvY29udmVyc2F0aW9uLyIrdH0scz1mdW5jdGlvbih0KXt2YXIgZSxuPSgwLHIubWF0Y2hQYXRoKSgiLyIrby5Jai5pZCsiL2NvbnZlcnNhdGlvbi86Y29udmVyc2F0aW9uSWQiLHQpLGk9bnVsbD09bnx8bnVsbD09KGU9bi5wYXJhbXMpP3ZvaWQgMDplLmNvbnZlcnNhdGlvbklkO3JldHVybiBudWxsIT1pJiZpLmxlbmd0aD8ibmV3Ij09PWl8fCJ0cmlnZ2VyLXNjcmVlbiI9PT1pP251bGw6aTpudWxsfSxjPWZ1bmN0aW9uKHQpe3JldHVybiEhcyh0KX0sbD1mdW5jdGlvbih0KXtyZXR1cm4hISgwLHIubWF0Y2hQYXRoKSgiLyIrby5Jai5pZCsiL2NvbnZlcnNhdGlvbi9uZXciLHQpfSxmPWZ1bmN0aW9uKHQpe3JldHVybiBsKHQpPyJuZXctY29udmVyc2F0aW9uIjpjKHQpPyJjb252ZXJzYXRpb24iOmZ1bmN0aW9uKHQpe3JldHVybigwLHIubWF0Y2hQYXRoKSgiLyIrby5Jai5pZCx0KX0odCk/ImNvbnZlcnNhdGlvbnMiOiJob21lLXNjcmVlbiJ9fSwxNzc3NzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHthOmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7dmFyIHI9big4NzEzMyksbz1mdW5jdGlvbih0LGUpe2lmKHQpe3ZhciBuPSgwLHIuQ0gpKHQpW2VdO2lmKCFuKXt2YXIgbz10LnRvU3RyaW5nKCk7aWYoIW8pcmV0dXJuO3ZhciBpPW5ldyBSZWdFeHAoZSsiPShcXGQrKSIsImkiKSxhPW8ubWF0Y2goaSk7YSYmKG49YVsxXSl9aWYoIW58fG4ubWF0Y2goL15cZCskLykpcmV0dXJuIG59fX0sMTEzODg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7TzpmdW5jdGlvbigpe3JldHVybiBhfX0pO3ZhciByPW4oMjExNDEpO2Z1bmN0aW9uIG8odCxlKXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdH0odCl8fGZ1bmN0aW9uKHQsZSl7dmFyIG49bnVsbD09dD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1uKXt2YXIgcixvLGksYSx1PVtdLHM9ITAsYz0hMTt0cnl7aWYoaT0obj1uLmNhbGwodCkpLm5leHQsMD09PWUpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO3M9ITF9ZWxzZSBmb3IoOyEocz0ocj1pLmNhbGwobikpLmRvbmUpJiYodS5wdXNoKHIudmFsdWUpLHUubGVuZ3RoIT09ZSk7cz0hMCk7fWNhdGNoKHQpe2M9ITAsbz10fWZpbmFsbHl7dHJ5e2lmKCFzJiZudWxsIT1uLnJldHVybiYmKGE9bi5yZXR1cm4oKSxPYmplY3QoYSkhPT1hKSlyZXR1cm59ZmluYWxseXtpZihjKXRocm93IG99fXJldHVybiB1fX0odCxlKXx8ZnVuY3Rpb24odCxlKXtpZih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIGkodCxlKTt2YXIgbj17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/aSh0LGUpOnZvaWQgMH19KHQsZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBpKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn12YXIgYT1mdW5jdGlvbiB0KGUpe2lmKCEoMCxyLlEpKGUpKXJldHVybiBlO3ZhciBuPXt9O3JldHVybiBPYmplY3QuZW50cmllcyhlKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgcixhPWZ1bmN0aW9uKHQsZSxuKXtpZihlJiYhQXJyYXkuaXNBcnJheShlKSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aCl7dmFyIHI9ZS5sZW5ndGg7cmV0dXJuIGkoZSx2b2lkIDAhPT1uJiZuPHI/bjpyKX1yZXR1cm4gdChlLG4pfShvLGUsMiksdT1hWzBdLHM9YVsxXSxjPXQocyk7QXJyYXkuaXNBcnJheShjKSYmKGM9Yy5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpfSkpKSxuWyhyPXUsci5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCIkMV8kMiIpLnJlcGxhY2UoLyhbYS16XSkoWzAtOV0pL2csIiQxXyQyIikucmVwbGFjZSgvKFswLTldKShbYS16QS1aXSkvZywiJDFfJDIiKS5yZXBsYWNlKC8oW0EtWl0rKShbQS1aXVthLXpdKS9nLCIkMV8kMiIpLnJlcGxhY2UoL1teYS16QS1aMC05XSsvZywiXyIpLnJlcGxhY2UoL15fK3xfKyQvZywiIikudG9Mb3dlckNhc2UoKSldPWN9KSksbn19LDIyOTc5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0w6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sczpmdW5jdGlvbigpe3JldHVybiB1fX0pO3ZhciByPW4oMzUyMDYpLG89ImludGVyY29tLiIsaT1mdW5jdGlvbih0KXtyZXR1cm57Z2V0OmZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gdC5nZXRJdGVtKCIiK28rZSl9Y2F0Y2godCl7cmV0dXJuIG51bGx9fSxzZXQ6ZnVuY3Rpb24oZSxuKXt0cnl7dC5zZXRJdGVtKCIiK28rZSwobnVsbD09bj92b2lkIDA6bi50b1N0cmluZygpKXx8IiIpfWNhdGNoKHQpe319LHJlbW92ZTpmdW5jdGlvbihlKXt0cnl7dC5yZW1vdmVJdGVtKCIiK28rZSl9Y2F0Y2godCl7fX0sY2xlYXI6ZnVuY3Rpb24oKXt0cnl7dC5jbGVhcigpfWNhdGNoKHQpe319fX0sYT1yLkF5Lmhhc0xvY2FsU3RvcmFnZVN1cHBvcnQoKT9pKGxvY2FsU3RvcmFnZSk6e2dldDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxzZXQ6ZnVuY3Rpb24oKXt9LHJlbW92ZTpmdW5jdGlvbigpe30sY2xlYXI6ZnVuY3Rpb24oKXt9fSx1PXIuQXkuaGFzU2Vzc2lvblN0b3JhZ2VTdXBwb3J0KCk/aShzZXNzaW9uU3RvcmFnZSk6e2dldDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxzZXQ6ZnVuY3Rpb24oKXt9LHJlbW92ZTpmdW5jdGlvbigpe30sY2xlYXI6ZnVuY3Rpb24oKXt9fX0sNzcyMzQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7JDA6ZnVuY3Rpb24oKXtyZXR1cm4geX0sRUo6ZnVuY3Rpb24oKXtyZXR1cm4gd30sU2M6ZnVuY3Rpb24oKXtyZXR1cm4gaH0sYkc6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdn0sanc6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sa206ZnVuY3Rpb24oKXtyZXR1cm4gZ30sclE6ZnVuY3Rpb24oKXtyZXR1cm4gZH0seU86ZnVuY3Rpb24oKXtyZXR1cm4gcH19KTt2YXIgcj1uKDY2ODM4KSxvPW4oMzg4ODMpLGk9bigyNzI2OSksYT1uKDgwMjc4KSx1PW4oODgzMzMpLHM9bigxNzgzMyksYz1uLm4ocyksbD1uKDk3MTYwKSxmPW4ubihsKSxkPWZ1bmN0aW9uKHQpe3ZhciBlPXQuYmFja2dyb3VuZENvbG9yLG49dC5idXR0b25Db2xvcixyPSIjRDIyNjI4IixvPSIjMjIyIixhPSIjRkZGRkZGIjtufHwobj1vKSxlfHwoZT1hKTt2YXIgdT1mKCkoe3ByaW1hcnlDb2xvcjpuLHNlY29uZGFyeUNvbG9yOmUsZGFya2VuQW1vdW50OjIwfSk7cmV0dXJue2JhY2tncm91bmRDb2xvcjplLGJ1dHRvbkNvbG9yOm4sYmFja2dyb3VuZFRleHRDb2xvcjoiZGFyayI9PT11LnNlY29uZGFyeV90eXBlP2E6byxidXR0b25UZXh0Q29sb3I6dS5wcmltYXJ5X29uX3doaXRlX2NvbnRyYXN0PjEuNj9hOm8saXNCYWNrZ3JvdW5kQ29sb3JMaWdodDoibGlnaHQiPT09dS5zZWNvbmRhcnlfdHlwZSxpc0J1dHRvbkNvbG9yTGlnaHQ6ImxpZ2h0Ij09PXUucHJpbWFyeV90eXBlLGJ1dHRvbkNvbG9ySG92ZXI6dS5idXR0b25fYmFja2dyb3VuZF9jb2xvcl9ob3ZlcixidXR0b25Db2xvckFjdGl2ZTp1LmJ1dHRvbl9iYWNrZ3JvdW5kX2NvbG9yX2FjdGl2ZSxiYW5uZXJFcnJvclRleHQ6KDAsaS5TbCkocixlKT4zP3I6YSxwcm9ncmVzc0JhckJhY2tncm91bmQ6KDAsaS52ZikobiwuMjUpLHByb2dyZXNzQmFyT3ZlcmxheToibGlnaHQiPT09dS5wcmltYXJ5X3R5cGU/KDAsaS52ZikoIiMyMjIiLC4yKToiIzAwMDAwMDAwIixncmF5QmFja2dyb3VuZFRleHRDb2xvcjpvLGdyYXlCYWNrZ3JvdW5kOiIjRjFGMUYxIixncmF5QmFja2dyb3VuZEFjdGl2ZToiI0Q3RDdENyIsZ3JheUJhY2tncm91bmRIb3ZlcjoiI0JFQkVCRSJ9fSxwPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj1lLnRoZW1lO2lmKG4pcmV0dXJuIG4uc3VydmV5Q29sb3JQYWxldHRlW3RdfX0saD1jKCkoInN1cnZleXM6ZGVidWciKSx2PWZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10JiYtMSE9PU9iamVjdC52YWx1ZXModS5oMykuaW5kZXhPZih0KX0seT1mdW5jdGlvbih0LGUpe3ZhciBuLGk9bnVsbCxzPWUucmVxdWlyZWQ7aWYoInN0cmluZyI9PXR5cGVvZiB0JiYodD10LnRyaW0oKSkscyYmKDAsci5JKSh0KSlpPXUuaDMucmVxdWlyZWQ7ZWxzZSBpZih0JiZlLnZhbGlkYXRpb24mJm51bGwhPWUmJm51bGwhPShuPWUudmFsaWRhdGlvbikmJm4udHlwZSl7dmFyIGM9ZS52YWxpZGF0aW9uLnR5cGUsbD1mdW5jdGlvbih0LGUpe3N3aXRjaChlKXtjYXNlIHUuaDMuZW1haWw6cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYoMCxvLkI5KSh0KTtjYXNlIHUuaDMubnVtYmVyOnJldHVybiFpc05hTih0KTtjYXNlIHUuaDMucGhvbmU6cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYoMCxhLmZuKSh0KTtkZWZhdWx0OnJldHVybiBudWxsfX0odCxjKTtsfHwoaT1jKX1yZXR1cm57ZmFpbGVkVmFsaWRhdGlvbjp2KGkpLHZhbGlkYXRpb25FcnJvcjppfX0sZz1mdW5jdGlvbih0LGUpe3JldHVybiB0P3QucmVkdWNlKChmdW5jdGlvbih0LG4scil7dmFyIG89TWF0aC5mbG9vcihyL2UpO3JldHVybiB0W29dfHwodFtvXT1bXSksdFtvXS5wdXNoKG4pLHR9KSxbXSk6W119LG09e2NvbnRhaW5lcjp7ZGVmYXVsdDoiNjYwcHgiLHdpdGhTZW5kZXI6IjcxNnB4In0sd3JhcHBlcjp7ZGVmYXVsdDoiNDg0cHgiLHdpdGhTZW5kZXI6IjU0MHB4In19LGI9e2xhcmdlOiI2NjFweCIsbWVkaXVtOiI1NTZweCIsc21hbGw6IjQ3N3B4In0sdz1mdW5jdGlvbih0LGUpe3JldHVybiB0Lmxlbmd0aDw9ZT90OnQuc2xpY2UoMCxlKSsiLi4uIn19LDk1ODc5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtpZigibGlnaHQiPT09dHx8ImRhcmsiPT09dClyZXR1cm4gdDtpZigic3lzdGVtIj09PXQmJiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cubWF0Y2hNZWRpYSl0cnl7cmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcz8iZGFyayI6ImxpZ2h0In1jYXRjaCh0KXtyZXR1cm4ibGlnaHQifXJldHVybiJsaWdodCJ9ZnVuY3Rpb24gbyh0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT0hMSksZXx8ImRhcmsiPT09dD8iY29udHJhc3QtcmF0aW8tNC41IjoibHVtaW5hbmNlIn1uLmQoZSx7bDpmdW5jdGlvbigpe3JldHVybiByfSx5OmZ1bmN0aW9uKCl7cmV0dXJuIG99fSl9LDczNTU3OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0JUOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LEpOOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LGNSOmZ1bmN0aW9uKCl7cmV0dXJuIHB9LGZkOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHFZOmZ1bmN0aW9uKCl7cmV0dXJuIGR9fSk7dmFyIHIsbyxpPW4oNzI5MCksYT1uKDMyOTgpLHU9KChyPXt9KVtpLlM1LnN1Ym1pdHRlZF09e2tleToidGlja2V0c19zdGF0dXNfc3VibWl0dGVkIn0scltpLlM1LmluUHJvZ3Jlc3NdPXtrZXk6InRpY2tldHNfc3RhdHVzX2luX3Byb2dyZXNzIn0scltpLlM1LndhaXRpbmddPXtrZXk6InRpY2tldHNfc3RhdHVzX3dhaXRpbmdfb25feW91In0scltpLlM1LnJlc29sdmVkXT17a2V5OiJ0aWNrZXRzX3N0YXR1c19yZXNvbHZlZCJ9LHIpLHM9KChvPXt9KVtpLlM1LnN1Ym1pdHRlZF09e2tleToidGlja2V0c19zdGF0dXNfZGVzY3JpcHRpb25fd2VsbF9waWNrX3VwX3Nvb24ifSxvW2kuUzUuaW5Qcm9ncmVzc109e2tleToidGlja2V0c19zdGF0dXNfZGVzY3JpcHRpb25fd29ya2luZ19vbiJ9LG9baS5TNS53YWl0aW5nXT17a2V5OiJ0aWNrZXRzX3N0YXR1c19kZXNjcmlwdGlvbl9tb3JlX2luZm8ifSxvW2kuUzUucmVzb2x2ZWRdPXtrZXk6InRpY2tldHNfc3RhdHVzX2Rlc2NyaXB0aW9uX2NvbXBsZXRlZCJ9LG8pO2Z1bmN0aW9uIGModCl7cmV0dXJuKDAsYS5UbCkodVt0XS5rZXkpfWZ1bmN0aW9uIGwodCl7dmFyIGU9dC5zdGF0dXMsbj10LnN0YXR1c0xhYmVsO3JldHVybiBufHwoLTEhPT1PYmplY3QudmFsdWVzKGkuUzUpLmluZGV4T2YoZSk/YyhlKTplKX1mdW5jdGlvbiBmKHQpe3JldHVybigwLGEuVGwpKHNbdF0ua2V5KX1mdW5jdGlvbiBkKHQpe3N3aXRjaCh0KXtjYXNlIGkuUzUuc3VibWl0dGVkOmNhc2UgaS5TNS5pblByb2dyZXNzOnJldHVybiJpblByb2dyZXNzRmlsbCI7Y2FzZSBpLlM1LndhaXRpbmc6cmV0dXJuIndhaXRpbmdPbllvdUZpbGwiO2Nhc2UgaS5TNS5yZXNvbHZlZDpyZXR1cm4ib25saW5lRmlsbCI7ZGVmYXVsdDpyZXR1cm4icHJpbWFyeUNvbG9yIn19ZnVuY3Rpb24gcCh0KXtzd2l0Y2godCl7Y2FzZSBpLlM1LnN1Ym1pdHRlZDpjYXNlIGkuUzUuaW5Qcm9ncmVzczpyZXR1cm4iVGlja2V0RGVmYXVsdCI7Y2FzZSBpLlM1LndhaXRpbmc6cmV0dXJuIlRpY2tldFdhaXRpbmdPbllvdSI7Y2FzZSBpLlM1LnJlc29sdmVkOnJldHVybiJUaWNrZXRSZXNvbHZlZCI7ZGVmYXVsdDpyZXR1cm4iVGlja2V0RGVmYXVsdCJ9fX0sODc3OTk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7WlE6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sYTI6ZnVuY3Rpb24oKXtyZXR1cm4gc30sc3E6ZnVuY3Rpb24oKXtyZXR1cm4gY30sdm46ZnVuY3Rpb24oKXtyZXR1cm4gZn0sd286ZnVuY3Rpb24oKXtyZXR1cm4gbH19KTt2YXIgcj1uKDMyOTgpLG89bigzMzA0OCksaT1uKDI2NzAzKTtmdW5jdGlvbiBhKHQpe3JldHVybiBhPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxhKHQpfWZ1bmN0aW9uIHUodCl7cmV0dXJuIG51bGw9PT10P251bGw6QXJyYXkuaXNBcnJheSh0KT90OiJvYmplY3QiPT09YSh0KSYmIUFycmF5LmlzQXJyYXkodCkmJiJsYWJlbCJpbiB0P3QubGFiZWwudG9TdHJpbmcoKTp0LnRvU3RyaW5nKCl9ZnVuY3Rpb24gcyh0LGUpe3ZhciBuLGk9KDAsci5KSykoKTtzd2l0Y2goZSl7Y2FzZSJkYXRldGltZSI6cmV0dXJuIG51bGw9PShuPSgwLG8ua1UpKHBhcnNlSW50KHQpKSk/dm9pZCAwOm4udG9Mb2NhbGVTdHJpbmcoaSx7ZGF0ZVN0eWxlOiJsb25nIix0aW1lU3R5bGU6InNob3J0In0pO2Nhc2UiYm9vbGVhbiI6cmV0dXJuInRydWUiPT09dD8oMCxyLlRsKSgiYXR0cmlidXRlX2NvbGxlY3Rvcl9wb3NpdGl2ZSIpOigwLHIuVGwpKCJhdHRyaWJ1dGVfY29sbGVjdG9yX25lZ2F0aXZlIik7ZGVmYXVsdDpyZXR1cm4gdH19ZnVuY3Rpb24gYyh0LGUpe3ZvaWQgMD09PWUmJihlPSExKTt2YXIgbj0iLyIraS5Jai5pZCsiL3RpY2tldHMvIit0O3JldHVybiBlP24rIj9zdWJtaXR0ZWQ9dHJ1ZSI6bn1mdW5jdGlvbiBsKHQsZSl7dmFyIG49Ii8iK2kuSWouaWQrIi90aWNrZXRzL2NyZWF0ZS8iK3QudG9TdHJpbmcoKTtyZXR1cm4gZSYmKG49bisiP2NvbnZlcnNhdGlvbklkPSIrZSksbn1mdW5jdGlvbiBmKHQpe3JldHVybiF0fHwhdC5zaGFyaW5nfHwhdC5zaGFyaW5nLmNhbkpvaW59fSwxMTA4OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse246ZnVuY3Rpb24oKXtyZXR1cm4gaX0sdjpmdW5jdGlvbigpe3JldHVybiBvfX0pO3ZhciByPW4oMTc4MzMpLG89bi5uKHIpKCkoImRlYnVnOnRvb2x0aXBzIiksaT17YmFja2dyb3VuZENvbG9yOiIjRkZGRkZGIixidXR0b25Db2xvcjpudWxsLGZvbnRDb2xvcjoiIzIyMjIyMiJ9fSw1MTQ4MDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtIOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fSk7dmFyIHI9big5OTQzOSksbz1uKDg0MzgyKTtmdW5jdGlvbiBpKHQpe3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxpKHQpfWZ1bmN0aW9uIGEodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHUoci5rZXkpLHIpfX1mdW5jdGlvbiB1KHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoIm9iamVjdCIhPWkodCl8fCF0KXJldHVybiB0O3ZhciBuPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT1pKHIpKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09ZT9TdHJpbmc6TnVtYmVyKSh0KX0odCwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PWkoZSk/ZTplKyIifXZhciBzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe3RoaXMud2hlblJlYWR5PXZvaWQgMCx0aGlzLnN0YXRlPXZvaWQgMCx0aGlzLmFjdGl2ZVN0ZXA9dm9pZCAwLHRoaXMubmV4dFN0ZXA9dm9pZCAwLHRoaXMuc3RhdGU9dCx0aGlzLndoZW5SZWFkeT1lLHRoaXMuYWN0aXZlU3RlcD0oMCxyLlFPKSh0KSx0aGlzLm5leHRTdGVwPSgwLHIuc1gpKHQpLHRoaXMuX2NoZWNrKCl9dmFyIGUsbixpLHU9dC5wcm90b3R5cGU7cmV0dXJuIHUuX2NoZWNrPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWN0aXZlU3RlcCYmImNsaWNrIj09PXRoaXMuYWN0aXZlU3RlcC5wcm9ncmVzc2lvbkJlaGF2aW9yPygoMCxvLms3KSgiQ2xpY2sgdG8gcHJvZ3Jlc3MgYmVoYXZpb3IgZGV0ZWN0ZWQuIiksdGhpcy5fZXZhbHVhdGVQcm9ncmVzc2lvbkJ5Q2xpY2soKSk6dGhpcy53aGVuUmVhZHkoKX0sdS5fZXZhbHVhdGVQcm9ncmVzc2lvbkJ5Q2xpY2s9ZnVuY3Rpb24oKXtpZighdGhpcy5hY3RpdmVTdGVwfHwhdGhpcy5uZXh0U3RlcClyZXR1cm4gdGhpcy53aGVuUmVhZHkoKTt2YXIgdD0wLGU9MDt0aGlzLl9wYWdlTmVlZHNSZWRpcmVjdGlvbigpPygoMCxvLms3KSgiU3RlcCB1cmwgZm9yIHRoZSBuZXh0IHN0ZXAgaXMgZGlmZmVyZW50IHNvIHRoZSB0b3VyIHdpbGwgd2FpdCAycyBmb3IgdGhlIHBhZ2UgdG8gcmVsb2FkIiksdD0yZTMpOigwLG8uazcpKCJObyBwYWdlIHJlZGlyZWN0aW9uIGRldGVjdGVkLiIpLHRoaXMuX25leHRTdGVwSXNQb2ludGVyKCkmJigoMCxvLms3KSgiVGhlIHBhZ2UgaXMgZ29pbmcgdG8gd2FpdCB1cHRvIDVzIGZvciB0aGUgbmV4dCBzdGVwJ3Mgc2VsZWN0b3IgdG8gYmVjb21lIHZpc2libGUgaW4gcGFnZSIpLGU9NWUzKSxuZXcgby50VCh0aGlzLm5leHRTdGVwLnNlbGVjdG9yLGUsdCx0aGlzLndoZW5SZWFkeSl9LHUuX3BhZ2VOZWVkc1JlZGlyZWN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuISghdGhpcy5hY3RpdmVTdGVwfHwhdGhpcy5uZXh0U3RlcCkmJnRoaXMuYWN0aXZlU3RlcC51cmwhPT10aGlzLm5leHRTdGVwLnVybH0sdS5fbmV4dFN0ZXBJc1BvaW50ZXI9ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4hKG51bGw9PSh0PXRoaXMubmV4dFN0ZXApfHwhdC5zZWxlY3Rvcil9LGU9dCxuJiZhKGUucHJvdG90eXBlLG4pLGkmJmEoZSxpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfSgpfSw4NDM4MjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHskRjpmdW5jdGlvbigpe3JldHVybiB2fSxDWjpmdW5jdGlvbigpe3JldHVybiBkfSxFSjpmdW5jdGlvbigpe3JldHVybiBtfSxMMjpmdW5jdGlvbigpe3JldHVybiBwfSxrNzpmdW5jdGlvbigpe3JldHVybiB5fSx0VDpmdW5jdGlvbigpe3JldHVybiBnfX0pO3ZhciByPW4oMzIzNTApLG89big1MTAwNiksaT1uKDE3ODMzKSxhPW4ubihpKSx1PW4oMjI5NzkpO2Z1bmN0aW9uIHModCl7cmV0dXJuIHM9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHModCl9ZnVuY3Rpb24gYyh0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZihyLmtleSkscil9fWZ1bmN0aW9uIGwodCxlLG4pe3JldHVybiBlJiZjKHQucHJvdG90eXBlLGUpLG4mJmModCxuKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0fWZ1bmN0aW9uIGYodCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0IiE9cyh0KXx8IXQpcmV0dXJuIHQ7dmFyIG49dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbCh0LGV8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXMocikpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1lP1N0cmluZzpOdW1iZXIpKHQpfSh0LCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09cyhlKT9lOmUrIiJ9ZnVuY3Rpb24gZCh0KXt2YXIgZT0idG91cl90cmlnZ2VyZWRfZnJvbV91cmwiLG49dS5zLmdldChlKSxyPW4/SlNPTi5wYXJzZShuKTpudWxsO2lmKHIpe3ZhciBvPXIuaW5kZXhPZih0LnRvU3RyaW5nKCkpOy0xIT09byYmKHIuc3BsaWNlKG8sMSksdS5zLnNldChlLEpTT04uc3RyaW5naWZ5KHIpKSl9fWZ1bmN0aW9uIHAodCxlKXtyZXR1cm4gZS5ob3N0bmFtZT09PXQuaG9zdG5hbWUmJmUucGF0aG5hbWU9PT10LnBhdGhuYW1lJiZlLmhhc2g9PT10Lmhhc2h9dmFyIGg9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZSgvW1x1MjAwQi1cdTIwMERcdUZFRkZdL2csIiIpfSx2PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe3ZhciBuPXRoaXM7dGhpcy5lbGVtZW50cz12b2lkIDAsdGhpcy5jYWxsYmFjaz12b2lkIDAsdGhpcy5kZXN0cm95ZWQ9dm9pZCAwLHRoaXMudmFsaWRhdGVJbnB1dHM9ZnVuY3Rpb24oKXt2YXIgdD0hMDtuLmVsZW1lbnRzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPSJ0eXBlImluIGU/ZS50eXBlOiIiOyJjaGVja2JveCIhPT1yJiYicmFkaW8iIT09ciYmbi5lbGVtZW50SGFzRW1wdHlWYWx1ZShlKSYmKHQ9ITEpfSkpLG4ub25DaGFuZ2UodCl9LHRoaXMuY2FsbGJhY2s9ZSx0aGlzLmRlc3Ryb3llZD0hMSx0aGlzLmVsZW1lbnRzPVtdO3ZhciBvPSgwLHIuZm8pKHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQsdCk7aWYobyl7dmFyIGk9by50YWdOYW1lLnRvTG93ZXJDYXNlKCksYT0iaW5wdXQiPT09aXx8InRleHRhcmVhIj09PWl8fCJzZWxlY3QiPT09aXx8by5pc0NvbnRlbnRFZGl0YWJsZTt0aGlzLmVsZW1lbnRzPWE/W29dOkFycmF5LmZyb20oby5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgZGl2W2NvbnRlbnRlZGl0YWJsZV0iKSl9fXZhciBlPXQucHJvdG90eXBlO3JldHVybiBlLm9uQ2hhbmdlPWZ1bmN0aW9uKHQpe3RoaXMuZGVzdHJveWVkfHx0aGlzLmNhbGxiYWNrKHQpfSxlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmRlc3Ryb3llZD0hMCx0aGlzLnJlbW92ZUxpc3RlbmVycygpfSxlLmVsZW1lbnRIYXNFbXB0eVZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiJzZWxlY3QiPT09dC50YWdOYW1lLnRvTG93ZXJDYXNlKCk/IWgodC5vcHRpb25zW3Quc2VsZWN0ZWRJbmRleF0udmFsdWUpOnQuaXNDb250ZW50RWRpdGFibGU/IWgodC5pbm5lclRleHR8fCIiKTohaCh0LnZhbHVlKX0sZS5hZGRMaXN0ZW5lcnM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuZWxlbWVudHMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7InNlbGVjdCI9PT1lLnRhZ05hbWUudG9Mb3dlckNhc2UoKT9lLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdC52YWxpZGF0ZUlucHV0cyk6ZS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsdC52YWxpZGF0ZUlucHV0cyl9KSl9LGUucmVtb3ZlTGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmVsZW1lbnRzLmZvckVhY2goKGZ1bmN0aW9uKGUpeyJzZWxlY3QiPT09KCJ0eXBlImluIGU/ZS50eXBlOiIiKT9lLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdC52YWxpZGF0ZUlucHV0cyk6ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnB1dCIsdC52YWxpZGF0ZUlucHV0cyl9KSl9LGUucnVuPWZ1bmN0aW9uKCl7aWYoIXRoaXMuZWxlbWVudHMubGVuZ3RoKXJldHVybiB0aGlzLmNhbGxiYWNrKCEwKTt0aGlzLnZhbGlkYXRlSW5wdXRzKCksdGhpcy5hZGRMaXN0ZW5lcnMoKX0sbCh0KX0oKSx5PWEoKSgidG91cnM6ZGVidWciKSxnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbixyLGkpe3ZhciBhPXRoaXM7dm9pZCAwPT09aSYmKGk9ITEpLHRoaXMuc2VsZWN0b3I9dm9pZCAwLHRoaXMudGltZW91dFZhbHVlPXZvaWQgMCx0aGlzLmNhbGxiYWNrPXZvaWQgMCx0aGlzLmZhaWxPbmx5T25UaW1lb3V0PXZvaWQgMCx0aGlzLnJlc29sdmVkPXZvaWQgMCx0aGlzLnRpbWVvdXQ9dm9pZCAwLHRoaXMud2FpdFRpbWVvdXQ9dm9pZCAwLHRoaXMuZG9jdW1lbnQ9dm9pZCAwLHRoaXMub2JzZXJ2ZXI9dm9pZCAwLHRoaXMuc2VsZWN0b3I9dCx0aGlzLnRpbWVvdXRWYWx1ZT1lLHRoaXMuZG9jdW1lbnQ9d2luZG93LnBhcmVudC5kb2N1bWVudCx0aGlzLmNhbGxiYWNrPXIsdGhpcy5mYWlsT25seU9uVGltZW91dD1pLHRoaXMucmVzb2x2ZWQ9ITEsdGhpcy5vYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcigoMCxvLm4pKHRoaXMuX2NoZWNrLmJpbmQodGhpcyksMjAwKSksdGhpcy53YWl0VGltZW91dD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2EuX2luaXRPYnNlcnZlcigpLGEuX3N0YXJ0VGltZXIoKSxhLl9jaGVjaygpfSksbnx8MCl9dmFyIGU9dC5wcm90b3R5cGU7cmV0dXJuIGUuX2luaXRPYnNlcnZlcj1mdW5jdGlvbigpe3RoaXMuZG9jdW1lbnQuYm9keSYmdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuZG9jdW1lbnQuYm9keSx7YXR0cmlidXRlczohMCxjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pfSxlLl9yZXNvbHZlPWZ1bmN0aW9uKHQpe3RoaXMucmVzb2x2ZWR8fCh0aGlzLnJlc29sdmVkPSEwLHRoaXMuY2FsbGJhY2sodCksdGhpcy5jYW5jZWwoKSl9LGUuX2NoZWNrPWZ1bmN0aW9uKCl7aWYoIXRoaXMucmVzb2x2ZWQpe3ZhciB0PSgwLHIuZm8pKHRoaXMuZG9jdW1lbnQsdGhpcy5zZWxlY3Rvcik7KDAsci5uZikodCk/dGhpcy5fcmVzb2x2ZSghMCk6dGhpcy5mYWlsT25seU9uVGltZW91dHx8dGhpcy5jYWxsYmFjayghMSl9fSxlLl9zdGFydFRpbWVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczsodGhpcy50aW1lb3V0VmFsdWV8fDA9PT10aGlzLnRpbWVvdXRWYWx1ZSkmJih0aGlzLnRpbWVvdXQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtpZih0LmZhaWxPbmx5T25UaW1lb3V0KXt2YXIgZT0oMCxyLmZvKSh0LmRvY3VtZW50LHQuc2VsZWN0b3IpO3QuX3Jlc29sdmUoQm9vbGVhbigoMCxyLm5mKShlKSkpfWVsc2UgdC5fcmVzb2x2ZSghMSl9KSx0aGlzLnRpbWVvdXRWYWx1ZSkpfSxlLmNhbmNlbD1mdW5jdGlvbigpe3RoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMudGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCksdGhpcy53YWl0VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMud2FpdFRpbWVvdXQpfSxsKHQpfSgpLG09ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5sZW5ndGg8PWU/dDp0LnNsaWNlKDAsZSkrIi4uLiJ9fSw2MDc3MTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtXJDpmdW5jdGlvbigpe3JldHVybiBzfSxhNDpmdW5jdGlvbigpe3JldHVybiBhfSxwUzpmdW5jdGlvbigpe3JldHVybiBpfSx1QjpmdW5jdGlvbigpe3JldHVybiBvfSx2MDpmdW5jdGlvbigpe3JldHVybiB1fX0pO3ZhciByPW4oMzUyMDYpLG89MTA0ODU3NjAwLGk9MTAwLGE9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIG51bGwhPXQmJm51bGwhPShlPXQuZmVhdHVyZXMpJiZlLmFzYW5hTGltaXRVcGxvYWRzVG81bWI/NTI0Mjg4MDpvfSx1PWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBudWxsIT10JiZudWxsIT0oZT10LmZlYXR1cmVzKSYmZS5hc2FuYUxpbWl0VXBsb2Fkc1RvNW1iPzU6aX0scz1mdW5jdGlvbih0KXt2YXIgZT0odD10fHwiIikubWF0Y2goL1teXHgwMC1ceDdGXS8pO2lmKCF0fHxyLkF5LmlzU2FmYXJpKCkmJmUpe3ZhciBuPXQuc3BsaXQoIi4iKTt0PSJGaWxlIisobmV3IERhdGUpLmdldFRpbWUoKSxuLmxlbmd0aD4xJiYodCs9Ii4iK25bbi5sZW5ndGgtMV0pfXJldHVybiB0fX0sODY5Nzk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7Q1Y6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sRmU6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sWms6ZnVuY3Rpb24oKXtyZXR1cm4gdn0sYkI6ZnVuY3Rpb24oKXtyZXR1cm4gaH0scmU6ZnVuY3Rpb24oKXtyZXR1cm4gcH19KTt2YXIgcj1uKDM1MjA2KSxvPW4oNDkyNDMpLGk9bigzODk5KTtmdW5jdGlvbiBhKCl7YT1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sdT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsYz1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLGw9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGYodCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Zih7fSwiIil9Y2F0Y2godCl7Zj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gZCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGI/ZTpiLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgaihyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOkkodCxuLHUpfSksYX1mdW5jdGlvbiBwKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWQ7dmFyIGg9InN1c3BlbmRlZFN0YXJ0Iix2PSJzdXNwZW5kZWRZaWVsZCIseT0iZXhlY3V0aW5nIixnPSJjb21wbGV0ZWQiLG09e307ZnVuY3Rpb24gYigpe31mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIF8oKXt9dmFyIFM9e307ZihTLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIHg9T2JqZWN0LmdldFByb3RvdHlwZU9mLEU9eCYmeCh4KFAoW10pKSk7RSYmRSE9PW4mJnIuY2FsbChFLHUpJiYoUz1FKTt2YXIgQz1fLnByb3RvdHlwZT1iLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFMpO2Z1bmN0aW9uIE8odCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtmKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEEodCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBjPXAodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1jLnR5cGUpe3ZhciBsPWMuYXJnLGY9bC52YWx1ZTtyZXR1cm4gZiYmIm9iamVjdCI9PXMoZikmJnIuY2FsbChmLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGYuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCxhLHUpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LGEsdSl9KSk6ZS5yZXNvbHZlKGYpLnRoZW4oKGZ1bmN0aW9uKHQpe2wudmFsdWU9dCxhKGwpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCxhLHUpfSkpfXUoYy5hcmcpfXZhciBpO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIEkoZSxuLHIpe3ZhciBvPWg7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PXkpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09Zyl7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9ayh1LHIpO2lmKHMpe2lmKHM9PT1tKWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWgpdGhyb3cgbz1nLHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz15O3ZhciBjPXAoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT9nOnYsYy5hcmc9PT1tKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89ZyxyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIGsoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LGsoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSksbTt2YXIgaT1wKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwsbTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwsbSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCxtKX1mdW5jdGlvbiBMKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIFQodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIGoodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChMLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFAoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW3VdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGk9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBpLm5leHQ9aX19dGhyb3cgbmV3IFR5cGVFcnJvcihzKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIHcucHJvdG90eXBlPV8sbyhDLCJjb25zdHJ1Y3RvciIse3ZhbHVlOl8sY29uZmlndXJhYmxlOiEwfSksbyhfLCJjb25zdHJ1Y3RvciIse3ZhbHVlOncsY29uZmlndXJhYmxlOiEwfSksdy5kaXNwbGF5TmFtZT1mKF8sbCwiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PXd8fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LF8pOih0Ll9fcHJvdG9fXz1fLGYodCxsLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEMpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LE8oQS5wcm90b3R5cGUpLGYoQS5wcm90b3R5cGUsYywoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QSxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEEoZCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxPKEMpLGYoQyxsLCJHZW5lcmF0b3IiKSxmKEMsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxmKEMsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9UCxqLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aixyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goVCksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLG0pOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSksbX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxUKG4pLG19fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7VChuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6UChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLG19fSxlfWZ1bmN0aW9uIHUodCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBzKHQpe3JldHVybiBzPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxzKHQpfWZ1bmN0aW9uIGModCxlKXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdH0odCl8fGZ1bmN0aW9uKHQsZSl7dmFyIG49bnVsbD09dD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1uKXt2YXIgcixvLGksYSx1PVtdLHM9ITAsYz0hMTt0cnl7aWYoaT0obj1uLmNhbGwodCkpLm5leHQsMD09PWUpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO3M9ITF9ZWxzZSBmb3IoOyEocz0ocj1pLmNhbGwobikpLmRvbmUpJiYodS5wdXNoKHIudmFsdWUpLHUubGVuZ3RoIT09ZSk7cz0hMCk7fWNhdGNoKHQpe2M9ITAsbz10fWZpbmFsbHl7dHJ5e2lmKCFzJiZudWxsIT1uLnJldHVybiYmKGE9bi5yZXR1cm4oKSxPYmplY3QoYSkhPT1hKSlyZXR1cm59ZmluYWxseXtpZihjKXRocm93IG99fXJldHVybiB1fX0odCxlKXx8ZnVuY3Rpb24odCxlKXtpZih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIGwodCxlKTt2YXIgbj17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/bCh0LGUpOnZvaWQgMH19KHQsZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBsKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn12YXIgZj1PYmplY3QuZnJlZXplKHtMSU5LX0NBUkQ6IkxJTktfQ0FSRCIsTUFJTFRPOiJNQUlMVE8iLEFSVElDTEU6IkFSVElDTEUiLElOVEVSQ09NOiJJTlRFUkNPTSIsRVhURVJOQUw6IkVYVEVSTkFMIn0pLGQ9bnVsbCxwPWZ1bmN0aW9uKHQpe3ZhciBlPXBhcmVudC53aW5kb3cub3Blbih0LCJfYmxhbmsiLCJub29wZW5lciIpO2UmJihlLm9wZW5lcj1udWxsKX0saD1mdW5jdGlvbih0KXtfKHQpJiYoeSh0KT9iKHQpOlMoKT93aW5kb3cub3Blbih0KTpwKHQpKX0sdj1mdW5jdGlvbih0KXtfKHQpJiYoeSh0KT9iKHQpOlMoKT9udWxsPT1kfHxkLmNsb3NlZD9kPXdpbmRvdy5vcGVuKHQsInBvcHVwLHdpZHRoPTUxMCxoZWlnaHQ9NTAwIik6ZC5mb2N1cygpOm51bGw9PWR8fGQuY2xvc2VkP2Q9d2luZG93Lm9wZW4odCwiVmlkZW9DYWxsUG9wdXAiLCJ3aWR0aD01MTAsIGhlaWdodD01MDAiKTpkLmZvY3VzKCkpfSx5PWZ1bmN0aW9uKHQpe3ZhciBlO3RyeXtlPW5ldyBVUkwodCl9Y2F0Y2godCl7cmV0dXJuITF9cmV0dXJuImludGVyY29tOiI9PT1lLnByb3RvY29sfSxnPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybi9cYmludGVyY29tLWxpbmstY2FyZFxiLy50ZXN0KHQuY2xhc3NOYW1lKSwhMX0odCk/Zi5MSU5LX0NBUkQ6ZnVuY3Rpb24odCl7cmV0dXJuL15tYWlsdG86Ly50ZXN0KHQpfShlKT9mLk1BSUxUTzpmdW5jdGlvbih0KXtyZXR1cm4hKHQuZ2V0QXR0cmlidXRlKCJkYXRhLWxpbmstdHlwZSIpIT09by5ofHwhdC5nZXRBdHRyaWJ1dGUoImRhdGEtbGluay1pZCIpKX0odCk/Zi5BUlRJQ0xFOnkoZSk/Zi5JTlRFUkNPTTpmLkVYVEVSTkFMfSxtPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlKCJocmVmIil8fCIiLG49dC5nZXRBdHRyaWJ1dGUoImRhdGEtdmlhIil8fGUscj13aW5kb3cucGFyZW50LkludGVyY29tO3N3aXRjaChnKHQsZSkpe2Nhc2UgZi5MSU5LX0NBUkQ6Y2FzZSBmLk1BSUxUTzpyZXR1cm4hMTtjYXNlIGYuQVJUSUNMRTpyZXR1cm4gbnVsbD09cnx8cigic2hvd0FydGljbGUiLHQuZ2V0QXR0cmlidXRlKCJkYXRhLWxpbmstaWQiKXx8dm9pZCAwKSwhMDtjYXNlIGYuSU5URVJDT006cmV0dXJuIHQucmVtb3ZlQXR0cmlidXRlKCJ0YXJnZXQiKSxiKGUpLG4hPT1lJiZ3KG4pLCEwO2Nhc2UgZi5FWFRFUk5BTDpyZXR1cm4gbiE9PWUmJncobiksdC5zZXRBdHRyaWJ1dGUoImhyZWYiLG4pLHQuc2V0QXR0cmlidXRlKCJ0YXJnZXQiLCJfYmxhbmsiKSwhMX19LGI9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFJlZ0V4cCgvdjFcLyguKikrXC8oWzAtOV0rKS0/KFswLTldKyk/L2kpLmV4ZWModCk7aWYoZSl7dmFyIG4scj1mdW5jdGlvbih0LGUsbil7aWYoZSYmIUFycmF5LmlzQXJyYXkoZSkmJiJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpe3ZhciByPWUubGVuZ3RoO3JldHVybiBsKGUsdm9pZCAwIT09biYmbjxyP246cil9cmV0dXJuIHQoZSxuKX0oYyxlLDQpLG89clsxXSxhPXJbMl0sdT1yWzNdO3N3aXRjaChvKXtjYXNlInN1cnZleSI6bj0ic3RhcnRTdXJ2ZXkiO2JyZWFrO2Nhc2UiY2hlY2tsaXN0IjpuPSJzdGFydENoZWNrbGlzdCI7YnJlYWs7Y2FzZSJ0b3VyIjpuPSJzdGFydFRvdXIiO2JyZWFrO2Nhc2UiYXJ0aWNsZSI6bj0ic2hvd0FydGljbGUiO2JyZWFrO2Nhc2UibmV3cyI6bj0ic2hvd05ld3MiO2JyZWFrO2Nhc2UiY29udmVyc2F0aW9uIjpuPSJzaG93Q29udmVyc2F0aW9uIjticmVhaztkZWZhdWx0OnJldHVybn12YXIgZj13aW5kb3cucGFyZW50LkludGVyY29tO2lmKGYmJiJmdW5jdGlvbiI9PXR5cGVvZiBmKSJjaGVja2xpc3QiIT09byYmImNvbnZlcnNhdGlvbiIhPT1vJiZmKCJoaWRlIiksImFydGljbGUiPT09bz9mKG4sYSx1KTpmKG4sYSk7ZWxzZXt2YXIgZD12b2lkIDA9PT13aW5kb3cucGFyZW50LkludGVyY29tPyJ3aW5kb3cucGFyZW50LkludGVyY29tIGlzIHVuZGVmaW5lZCI6IndpbmRvdy5wYXJlbnQuSW50ZXJjb20gaXMgIitzKHdpbmRvdy5wYXJlbnQuSW50ZXJjb20pKyIsIGV4cGVjdGVkIGZ1bmN0aW9uIjsoMCxpLmpQKSgiSW50ZXJjb20gcHJvdG9jb2wgaGFuZGxlcjogSW50ZXJjb20gQVBJIG5vdCBhdmFpbGFibGUgb24gcGFyZW50IHdpbmRvdy4gVVJMOiAiK3QrIiwgVHlwZTogIitvKyIsIElEOiAiK2ErIiwgUmVhc29uOiAiK2QpfX1lbHNlKDAsaS5qUCkoIkludGVyY29tIHByb3RvY29sIGhhbmRsZXI6IEludmFsaWQgVVJMIGZvcm1hdC4gRXhwZWN0ZWQ6IGludGVyY29tOi8vc2hvdy92MS97dHlwZX0ve2lkfSBvciBpbnRlcmNvbTovL3N0YXJ0L3YxL3t0eXBlfS97aWR9LCBnb3Q6ICIrdCl9LHc9ZnVuY3Rpb24oKXt2YXIgdCxlPSh0PWEoKS5tYXJrKChmdW5jdGlvbiB0KGUpe3JldHVybiBhKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYoImZldGNoImluIHdpbmRvdyl7dC5uZXh0PTI7YnJlYWt9cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDI6cmV0dXJuIHQubmV4dD00LGZldGNoKGUse21vZGU6Im5vLWNvcnMifSkuY2F0Y2goKGZ1bmN0aW9uKCl7fSkpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQpfSkpLGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7dShpLHIsbyxhLHMsIm5leHQiLHQpfWZ1bmN0aW9uIHModCl7dShpLHIsbyxhLHMsInRocm93Iix0KX1hKHZvaWQgMCl9KSl9KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxfPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10JiYiIiE9PXR9LFM9ZnVuY3Rpb24oKXtyZXR1cm4gci5BeS5pc0VsZWN0cm9uKCl8fHIuQXkuaXNOYXRpdmVNb2JpbGUoKXx8ci5BeS5pc0lPU0ZpcmVmb3goKX19LDI1MTE1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0E4OmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LFBWOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LFQ3OmZ1bmN0aW9uKCl7cmV0dXJuIHB9LFU4OmZ1bmN0aW9uKCl7cmV0dXJuIGR9LFVtOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LGVGOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHZKOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LHg4OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LHhIOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSk7dmFyIHI9bigzNjI2Niksbz1bInBhc3N3b3JkIiwicGFzc3dkIiwic2VjcmV0IiwiYXBpX2tleSIsImFwaWtleSIsImFjY2Vzc190b2tlbiIsImF1dGhfdG9rZW4iLCJjcmVkZW50aWFscyIsIm15c3FsX3B3ZCIsInN0cmlwZXRva2VuIiwidG9rZW4iXSxpPWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIG51bGw9PSh0PSgwLHIuS1EpKCkpP3ZvaWQgMDp0LmhyZWZ9LGE9ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gbnVsbD09KHQ9KDAsci5LUSkoKSk/dm9pZCAwOnQuaG9zdH0sdT1mdW5jdGlvbih0KXtpZighdClyZXR1cm4gdDt2YXIgZT10O3JldHVybiBvLmZvckVhY2goKGZ1bmN0aW9uKHQpe2U9cyhlLHQsIioqKiIpfSkpLGV9LHM9ZnVuY3Rpb24odCxlLG4pe3ZhciByPW5ldyBSZWdFeHAoIihbPyZdKSIrZSsiPS4qPygmfCQpIiwiaSIpO3JldHVybiB0Lm1hdGNoKHIpP3QucmVwbGFjZShyLCIkMSIrZSsiPSIrbisiJDIiKTp0fSxjPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPS9eaHR0cHM/OlwvXC8vaSksZS50ZXN0KHQudHJpbSgpKX0sbD1mdW5jdGlvbih0KXt2YXIgZT10LnRyaW0oKTtpZighL15odHRwcz86XC9cL1xTKyQvaS50ZXN0KGUpKXJldHVybiExO3RyeXtyZXR1cm4iIiE9PW5ldyBVUkwoZSkuaG9zdG5hbWV9Y2F0Y2godCl7cmV0dXJuITF9fSxmPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiExO3RyeXt2YXIgZT1uZXcgVVJMKHQpO3JldHVybiJodHRwOiI9PT1lLnByb3RvY29sfHwiaHR0cHM6Ij09PWUucHJvdG9jb2x9Y2F0Y2godCl7cmV0dXJuITF9fSxkPWZ1bmN0aW9uKHQpe2lmKCF0fHwic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuITA7dHJ5e3JldHVybiBuZXcgVVJMKHQpLGYodCl9Y2F0Y2godCl7cmV0dXJuITB9fSxwPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRXJyb3IoIkludmFsaWQgVVJMIHByb3RvY29sLiBPbmx5IGh0dHA6Ly8gYW5kIGh0dHBzOi8vIGFyZSBzdXBwb3J0ZWQgZm9yIFhNTEh0dHBSZXF1ZXN0LiBVUkw6ICIrdCl9LGg9ZnVuY3Rpb24odCl7aWYoIXR8fCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gdDt0cnl7dmFyIGU9bmV3IFVSTCh0KTtyZXR1cm4iIitlLm9yaWdpbitlLnBhdGhuYW1lfWNhdGNoKGUpe3JldHVybiB0LnNwbGl0KCI/IilbMF0uc3BsaXQoIiMiKVswXX19fSwzODg4MzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtCOTpmdW5jdGlvbigpe3JldHVybiBhfSxIVjpmdW5jdGlvbigpe3JldHVybiBvfSxxRTpmdW5jdGlvbigpe3JldHVybiByfSx4SDpmdW5jdGlvbigpe3JldHVybiB1fSx6dTpmdW5jdGlvbigpe3JldHVybiBpfX0pO3ZhciByPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTWF0aC5taW4obixNYXRoLm1heCh0LGUpKX0sbz1mdW5jdGlvbih0KXtpZih0KXJldHVybiB0W3QubGVuZ3RoLTFdfSxpPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSkpfSxhPWZ1bmN0aW9uKHQpe3JldHVybi9eKChbXjw+KClbXF1cXC4sOzpcc0BcIl0rKFwuW148PigpW1xdXFwuLDs6XHNAXCJdKykqKXwoXCIuK1wiKSlAKChcW1swLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31cXSl8KChbYS16QS1aXC0wLTldK1wuKStbYS16QS1aXXsyLH0pKSQvLnRlc3QodCl9LHU9ZnVuY3Rpb24odCl7cmV0dXJuInBhcnRpY2lwYW50X2FkZGVkIj09PXR8fCJwYXJ0aWNpcGFudF9yZW1vdmVkIj09PXR8fCJhcnRpY2xlX2ZlZWRiYWNrX3JlcXVlc3RlZCI9PT10fHwidGVtcG9yYXJ5X2V4cGVjdGF0aW9ucyI9PT10fHwibWVyZ2VkX3ByaW1hcnlfY29udmVyc2F0aW9uIj09PXR8fCJ0ZWFtbWF0ZV9qb2luZWQiPT09dH19LDcxNDQ0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse056OmZ1bmN0aW9uKCl7cmV0dXJuIHN9LFpIOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LHU1OmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHV0OmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSk7dmFyIHI9big0MDIzOCksbz0iaW50ZXJjb20tc25pcHBldF9fd29ya2Zsb3ctcHJldmlld19faW5zdGFuY2UtaWQiLGk9ImludGVyY29tLXNuaXBwZXRfX3dvcmtmbG93LXByZXZpZXdfX3Byb2ZpbGUtdmVyc2lvbi1pZCI7ZnVuY3Rpb24gYSh0KXsoMCxyLnlKKShvLG51bGwhPXQ/dDpudWxsKX1mdW5jdGlvbiB1KCl7cmV0dXJuKDAsci56aikoKVtvXX1mdW5jdGlvbiBzKHQpeygwLHIueUopKGksbnVsbCE9dD90Om51bGwpfWZ1bmN0aW9uIGMoKXtyZXR1cm4oMCxyLnpqKSgpW2ldfX0sNDE2MDk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7R1Y6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sUzQ6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sakw6ZnVuY3Rpb24oKXtyZXR1cm4gaX19KTt2YXIgcj1uKDcxNDY4KSxvPW4oMTU0NTIpLGk9ci53QSxhPXIuZDQsdT1vLnpELndpdGhUeXBlcygpfSw4ODU3NjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtBOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7dmFyIHI9big5NjU0MCksbz1uKDQwMDg1KTtmdW5jdGlvbiBpKCl7cmV0dXJuKDAsci51c2VDb250ZXh0KShvLlQpfX0sMzI5ODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtKSzpmdW5jdGlvbigpe3JldHVybiBffSxUbDpmdW5jdGlvbigpe3JldHVybiBTfSxWZjpmdW5jdGlvbigpe3JldHVybiBFfSxpZDpmdW5jdGlvbigpe3JldHVybiB4fSx4UzpmdW5jdGlvbigpe3JldHVybiB3fX0pO3ZhciByPW4oOTg2MTYpLG89bigyNjc2NSk7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gaT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0saSh0KX1mdW5jdGlvbiBhKCl7cmV0dXJuIGE9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxhLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiB1KCl7dT1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGE9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30scz1hLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsYz1hLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLGw9YS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGYodCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Zih7fSwiIil9Y2F0Y2godCl7Zj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gZCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGI/ZTpiLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgaihyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOkkodCxuLHUpfSksYX1mdW5jdGlvbiBwKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWQ7dmFyIGg9InN1c3BlbmRlZFN0YXJ0Iix2PSJzdXNwZW5kZWRZaWVsZCIseT0iZXhlY3V0aW5nIixnPSJjb21wbGV0ZWQiLG09e307ZnVuY3Rpb24gYigpe31mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIF8oKXt9dmFyIFM9e307ZihTLHMsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIHg9T2JqZWN0LmdldFByb3RvdHlwZU9mLEU9eCYmeCh4KFAoW10pKSk7RSYmRSE9PW4mJnIuY2FsbChFLHMpJiYoUz1FKTt2YXIgQz1fLnByb3RvdHlwZT1iLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFMpO2Z1bmN0aW9uIE8odCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtmKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEEodCxlKXtmdW5jdGlvbiBuKG8sYSx1LHMpe3ZhciBjPXAodFtvXSx0LGEpO2lmKCJ0aHJvdyIhPT1jLnR5cGUpe3ZhciBsPWMuYXJnLGY9bC52YWx1ZTtyZXR1cm4gZiYmIm9iamVjdCI9PWkoZikmJnIuY2FsbChmLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGYuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCx1LHMpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LHUscyl9KSk6ZS5yZXNvbHZlKGYpLnRoZW4oKGZ1bmN0aW9uKHQpe2wudmFsdWU9dCx1KGwpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCx1LHMpfSkpfXMoYy5hcmcpfXZhciBhO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBhPWE/YS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIEkoZSxuLHIpe3ZhciBvPWg7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PXkpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09Zyl7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9ayh1LHIpO2lmKHMpe2lmKHM9PT1tKWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWgpdGhyb3cgbz1nLHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz15O3ZhciBjPXAoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT9nOnYsYy5hcmc9PT1tKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89ZyxyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIGsoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LGsoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSksbTt2YXIgaT1wKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwsbTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwsbSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCxtKX1mdW5jdGlvbiBMKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIFQodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIGoodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChMLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFAoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW3NdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGE9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBhLm5leHQ9YX19dGhyb3cgbmV3IFR5cGVFcnJvcihpKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIHcucHJvdG90eXBlPV8sbyhDLCJjb25zdHJ1Y3RvciIse3ZhbHVlOl8sY29uZmlndXJhYmxlOiEwfSksbyhfLCJjb25zdHJ1Y3RvciIse3ZhbHVlOncsY29uZmlndXJhYmxlOiEwfSksdy5kaXNwbGF5TmFtZT1mKF8sbCwiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PXd8fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LF8pOih0Ll9fcHJvdG9fXz1fLGYodCxsLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEMpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LE8oQS5wcm90b3R5cGUpLGYoQS5wcm90b3R5cGUsYywoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QSxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEEoZCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxPKEMpLGYoQyxsLCJHZW5lcmF0b3IiKSxmKEMscywoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxmKEMsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9UCxqLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aixyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goVCksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLG0pOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSksbX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxUKG4pLG19fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7VChuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6UChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLG19fSxlfWZ1bmN0aW9uIHModCxlLG4pe2lmKGUmJiFBcnJheS5pc0FycmF5KGUpJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXt2YXIgcj1lLmxlbmd0aDtyZXR1cm4gbChlLHZvaWQgMCE9PW4mJm48cj9uOnIpfXJldHVybiB0KGUsbil9ZnVuY3Rpb24gYyh0LGUpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fSh0KXx8ZnVuY3Rpb24odCxlKXt2YXIgbj1udWxsPT10P251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxhLHU9W10scz0hMCxjPSExO3RyeXtpZihpPShuPW4uY2FsbCh0KSkubmV4dCwwPT09ZSl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47cz0hMX1lbHNlIGZvcig7IShzPShyPWkuY2FsbChuKSkuZG9uZSkmJih1LnB1c2goci52YWx1ZSksdS5sZW5ndGghPT1lKTtzPSEwKTt9Y2F0Y2godCl7Yz0hMCxvPXR9ZmluYWxseXt0cnl7aWYoIXMmJm51bGwhPW4ucmV0dXJuJiYoYT1uLnJldHVybigpLE9iamVjdChhKSE9PWEpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIHV9fSh0LGUpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gbCh0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9sKHQsZSk6dm9pZCAwfX0odCxlKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGwodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfWZ1bmN0aW9uIGYodCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBkKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBhKHQpe2YoaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpe2YoaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfX12YXIgcD1mdW5jdGlvbigpe3ZhciB0PWQodSgpLm1hcmsoKGZ1bmN0aW9uIHQoZSxyKXt2YXIgbyxpLGE7cmV0dXJuIHUoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZigidW5kZWZpbmVkIj09dHlwZW9mIGplc3R8fCJ0cnVlIj09PXByb2Nlc3MuZW52LlRFU1RfU0VOVFJZKXt0Lm5leHQ9MjticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMjpyZXR1cm4gdC5wcmV2PTIsdC5uZXh0PTUsUHJvbWlzZS5hbGwoW24uZSg3ODcyKSxuLmUoMzMyNildKS50aGVuKG4uYmluZChuLDYwMTc1KSk7Y2FzZSA1Om89dC5zZW50LGk9by5sb2dNZXNzYWdlLGE9by5hZGRUYWcsciYmT2JqZWN0LmVudHJpZXMocikuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9cyhjLHQsMiksbj1lWzBdLHI9ZVsxXTthKG4scil9KSksaShlKSx0Lm5leHQ9MTQ7YnJlYWs7Y2FzZSAxMjp0LnByZXY9MTIsdC50MD10LmNhdGNoKDIpO2Nhc2UgMTQ6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LG51bGwsW1syLDEyXV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGg9WyJhciIsImF6LUFaIiwiYmciLCJibiIsImJzIiwiY2EiLCJjcyIsImRhIiwiZGUiLCJkZS1mb3JtIiwiZWwiLCJlbiIsImVzIiwiZXQiLCJmYS1JUiIsImZpIiwiZnIiLCJmci1DQSIsImhlIiwiaGkiLCJociIsImh1IiwiaHkiLCJpZCIsIml0IiwiamEiLCJrYSIsImtvIiwibHQiLCJsdiIsIm1uIiwibXMiLCJuYiIsIm5sIiwicGwiLCJwdCIsInB0LUJSIiwicm8iLCJydSIsInNpIiwic2siLCJzbCIsInNyIiwic3YiLCJzdyIsInRhIiwidGgiLCJ0bCIsInRyIiwidWsiLCJ1ciIsInV6IiwidmkiLCJ6aC1DTiIsInpoLVRXIl0sdj1bImFyIiwiaGUiLCJmYS1JUiJdLHk9e2VuOm99LGc9eSxtPSJlbiIsYj1mdW5jdGlvbih0LGUpe3JldHVybiB0JiZ0LnJlcGxhY2UoL3soW1xzXFNdKz8pfS9nLChmdW5jdGlvbih0LG4pe3JldHVybiBlW25dfSkpfSx3PWZ1bmN0aW9uKCl7dmFyIHQ9ZCh1KCkubWFyaygoZnVuY3Rpb24gdChlKXt2YXIgaSxzO3JldHVybiB1KCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYoLTEhPT1oLmluZGV4T2YoZSkpe3QubmV4dD0yO2JyZWFrfXJldHVybiB0LmFicnVwdCgicmV0dXJuIik7Y2FzZSAyOmlmKHlbZV0pe3QubmV4dD0xNzticmVha31yZXR1cm4gdC5wcmV2PTMsdC5uZXh0PTYsKDAsci5BKSh7cHJvbWlzZTpmdW5jdGlvbigpe3JldHVybiBuKDI1MTY5KSgiLi8iK2UrIi5qc29uIikudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVmYXVsdH0pKX19KTtjYXNlIDY6aT10LnNlbnQseVtlXT1pLHQubmV4dD0xNzticmVhaztjYXNlIDEwOnJldHVybiB0LnByZXY9MTAsdC50MD10LmNhdGNoKDMpLHAoIkZhaWxlZCB0byBsb2FkIGxvY2FsZSAnIitlKyInOiAiK3QudDApLHkuZW58fCh5LmVuPW8pLGcuZW58fGchPT15JiYoZz1hKHt9LGcse2VuOnkuZW59KSksbT0iZW4iLHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDE3OmchPT15JiYhZ1tlXSYmeVtlXSYmKGc9YSh7fSxnLCgocz17fSlbZV09eVtlXSxzKSkpLG09ZTtjYXNlIDE5OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCxudWxsLFtbMywxMF1dKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksXz1mdW5jdGlvbigpe3JldHVybiBtfSxTPWZ1bmN0aW9uKHQsZSl7dmFyIG49Z1ttXTtpZighbilyZXR1cm4gcCgiVW5rbm93biBsb2NhbGUgJyIrbSsiJyIpLCIiO3ZhciByPW5bdF07aWYoIXIpe3AoIlVua25vd24ga2V5ICciK3QrIicgaW4gbG9jYWxlICciK20rIiciLHsiaTE4bi5taXNzaW5nIjp0KyJfaW5fIittLCJpMThuLmtleSI6dCwiaTE4bi5sb2NhbGUiOm0sImkxOG4uZXJyb3JfdHlwZSI6Im1pc3Npbmdfa2V5In0pO3ZhciBvPWcuZW58fHt9O3JldHVybiBiKG9bdF0sZSl8fCIifXRyeXtyZXR1cm4gYihyLGUpfWNhdGNoKGUpe3JldHVybiBwKCJJbnRlcnBvbGF0aW9uIGZhaWxlZCBmb3Iga2V5ICciK3QrIicgaW4gbG9jYWxlICciK20rIiciKSwiIn19LHg9ZnVuY3Rpb24odCl7aWYodCl7aWYoLTEhPT1oLmluZGV4T2YodCkpcmV0dXJuIHQ7dmFyIGU9dC5zcGxpdCgiLSIpWzBdO3JldHVybi0xIT09aC5pbmRleE9mKGUpP2U6dm9pZCAwfX0sRT1mdW5jdGlvbih0KXtyZXR1cm4tMSE9PXYuaW5kZXhPZih0KX19LDM1NTY4OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxNTUwMik7dmFyIG89big1MTg4MyksaT1uKDIxNDk4KSxhPW4oODQwNzcpLHU9bigzODk5KSxzPW4oODMxNDcpLGM9bigzODA0Mik7ZnVuY3Rpb24gbCh0KXt2YXIgZT17fSxuPSExO2lmKCIxIj09PW5hdmlnYXRvci5kb05vdFRyYWNrKWUubWFya2V0b190cmFja2luZ19jb29raWU9bnVsbCxlLmh1YnNwb3RfdHJhY2tpbmdfY29va2llPW51bGw7ZWxzZXtpZih0LmZlYXR1cmVzLm1hcmtldG9FbnJpY2htZW50SW5zdGFsbGVkKXtuPSEwO3ZhciByPWEuQS5yZWFkKCJfbWt0b190cmsiKTtyJiYoZS5tYXJrZXRvX3RyYWNraW5nX2Nvb2tpZT1yKX1pZih0LmZlYXR1cmVzLmh1YnNwb3RJbnN0YWxsZWQpe249ITA7dmFyIG89YS5BLnJlYWQoImh1YnNwb3R1dGsiKTtvJiYoZS5odWJzcG90X3RyYWNraW5nX2Nvb2tpZT1vKX19cmV0dXJue2ludGVybmFsOmUsaGFzU2NyYXBlZENvb2tpZXM6bn19dmFyIGY9bigzNTIwNiksZD1uKDM2MjY2KSxwPW4oODcyNjIpLGg9big0NDk4MCksdj1uKDM2MDQ2KSx5PW4oMzQ2MTkpLGc9big1MTY2OSksbT1uKDY5MjY5KSxiPW4oOTUxNjgpLHc9big0MTYwOSksXz1uKDM4MjUzKSxTPW4oODc2MDIpLHg9big5OTMyKSxFPW4oMzIwOTUpLEM9bigyNTExNSksTz1uKDE3ODMzKSxBPW4ubihPKTtmdW5jdGlvbiBJKHQpe3JldHVybiBJPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxJKHQpfWZ1bmN0aW9uIGsoKXtrPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3ZhciB0LGU9e30sbj1PYmplY3QucHJvdG90eXBlLHI9bi5oYXNPd25Qcm9wZXJ0eSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24odCxlLG4pe3RbZV09bi52YWx1ZX0saT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxhPWkuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIix1PWkuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIscz1pLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gYyh0LGUsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtjKHt9LCIiKX1jYXRjaCh0KXtjPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1ufX1mdW5jdGlvbiBsKHQsZSxuLHIpe3ZhciBpPWUmJmUucHJvdG90eXBlIGluc3RhbmNlb2YgZz9lOmcsYT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSx1PW5ldyBqKHJ8fFtdKTtyZXR1cm4gbyhhLCJfaW52b2tlIix7dmFsdWU6Tyh0LG4sdSl9KSxhfWZ1bmN0aW9uIGYodCxlLG4pe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6dC5jYWxsKGUsbil9fWNhdGNoKHQpe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOnR9fX1lLndyYXA9bDt2YXIgZD0ic3VzcGVuZGVkU3RhcnQiLHA9InN1c3BlbmRlZFlpZWxkIixoPSJleGVjdXRpbmciLHY9ImNvbXBsZXRlZCIseT17fTtmdW5jdGlvbiBnKCl7fWZ1bmN0aW9uIG0oKXt9ZnVuY3Rpb24gYigpe312YXIgdz17fTtjKHcsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgXz1PYmplY3QuZ2V0UHJvdG90eXBlT2YsUz1fJiZfKF8oUChbXSkpKTtTJiZTIT09biYmci5jYWxsKFMsYSkmJih3PVMpO3ZhciB4PWIucHJvdG90eXBlPWcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodyk7ZnVuY3Rpb24gRSh0KXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2ModCxlLChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW52b2tlKGUsdCl9KSl9KSl9ZnVuY3Rpb24gQyh0LGUpe2Z1bmN0aW9uIG4obyxpLGEsdSl7dmFyIHM9Zih0W29dLHQsaSk7aWYoInRocm93IiE9PXMudHlwZSl7dmFyIGM9cy5hcmcsbD1jLnZhbHVlO3JldHVybiBsJiYib2JqZWN0Ij09SShsKSYmci5jYWxsKGwsIl9fYXdhaXQiKT9lLnJlc29sdmUobC5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LGEsdSl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsYSx1KX0pKTplLnJlc29sdmUobCkudGhlbigoZnVuY3Rpb24odCl7Yy52YWx1ZT10LGEoYyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LGEsdSl9KSl9dShzLmFyZyl9dmFyIGk7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gTyhlLG4scil7dmFyIG89ZDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09aCl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT12KXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1BKHUscik7aWYocyl7aWYocz09PXkpY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09ZCl0aHJvdyBvPXYsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPWg7dmFyIGM9ZihlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP3Y6cCxjLmFyZz09PXkpY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz12LHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gQShlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsQShlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSx5O3ZhciBpPWYobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCx5O3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCx5KTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLHkpfWZ1bmN0aW9uIEwodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gVCh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gaih0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEwsdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gUChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbYV07aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKEkoZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gbS5wcm90b3R5cGU9YixvKHgsImNvbnN0cnVjdG9yIix7dmFsdWU6Yixjb25maWd1cmFibGU6ITB9KSxvKGIsImNvbnN0cnVjdG9yIix7dmFsdWU6bSxjb25maWd1cmFibGU6ITB9KSxtLmRpc3BsYXlOYW1lPWMoYixzLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09bXx8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsYik6KHQuX19wcm90b19fPWIsYyh0LHMsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoeCksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sRShDLnByb3RvdHlwZSksYyhDLnByb3RvdHlwZSx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1DLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQyhsKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LEUoeCksYyh4LHMsIkdlbmVyYXRvciIpLGMoeCxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGMoeCwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1QLGoucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpqLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChUKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MseSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSx5fSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLFQobikseX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztUKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpQKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCkseX19LGV9ZnVuY3Rpb24gTCh0LGUsbixyLG8saSxhKXt0cnl7dmFyIHU9dFtpXShhKSxzPXUudmFsdWV9Y2F0Y2godCl7cmV0dXJuIHZvaWQgbih0KX11LmRvbmU/ZShzKTpQcm9taXNlLnJlc29sdmUocykudGhlbihyLG8pfWZ1bmN0aW9uIFQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7TChpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7TChpLHIsbyxhLHUsInRocm93Iix0KX1hKHZvaWQgMCl9KSl9fXZhciBqPUEoKSgiaW50ZXJjb20uYWN0aW9ucy5sYXVuY2hlci1zZXR0aW5ncyIpLFA9KDAsdy5TNCkoImxhdW5jaGVyLXNldHRpbmdzL2ZldGNoIixUKGsoKS5tYXJrKChmdW5jdGlvbiB0KGUsbil7dmFyIHIsbyxpO3JldHVybiBrKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYobz1uLmRpc3BhdGNoLCFOKG51bGwhPShyPSgwLEMueEgpKCgwLEMueDgpKCkpKT9yOiIiKSl7dC5uZXh0PTQ7YnJlYWt9cmV0dXJuIGooIkR1cGxpY2F0ZSBsYXVuY2hlciBzZXR0aW5ncyByZXF1ZXN0LCBza2lwcGluZy4iKSx0LmFicnVwdCgicmV0dXJuIik7Y2FzZSA0OnJldHVybiBvKCgwLFMudFgpKCkpLHQubmV4dD03LF8uQXkucG9zdEZvckxhdW5jaGVyU2V0dGluZ3Moe3Nlc3Npb246ZX0pO2Nhc2UgNzpyZXR1cm4gaT10LnNlbnQsbygoMCxTLnR6KShpKSksbygoMCx4Lm1wKShpKSksdC5hYnJ1cHQoInJldHVybiIsaSk7Y2FzZSAxMTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQpfSkpKSksTj0oMCxFLlApKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pLDNlNSwxKSxNPXtmZXRjaDpQLHJlc2V0RGVkdXA6Ti5yZXNldH0sUj1uKDIyOTA2KSxVPW4oMzg0OSksej1uKDQwOTE1KSxIPW4oMTEzNyksRj1uKDY2Mjc0KTt2YXIgRD1uKDQwMTgpLEI9bigzODg4MyksVj1uKDY5NzQ0KSxHPW4oMjAyMTUpO2Z1bmN0aW9uIHEodCl7cmV0dXJuIHQucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybigwLEQuUTQpKGUpfHwodFsoMCxELmNBKShlKV09ITApLHR9KSx7fSl9ZnVuY3Rpb24gVyh0LGUpe3ZhciBuPSgwLEguQSkoZSkubGVuZ3RoPjAmJmZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5ub3RpZmljYXRpb25UeXBlT3ZlcnJpZGVzLmZvcmNlU25pcHBldDtyZXR1cm4gdC5maWx0ZXIoKGZ1bmN0aW9uKHQpe2lmKCgwLEQuUTQpKHQpKXJldHVybiExO3ZhciBlPXQuaWQrIi0iKygwLEIuSFYpKHQucGFydHMpLmlkO3JldHVybiB2b2lkIDA9PT1uW2VdfSkpfSh0LGUpLmxlbmd0aD4wO2lmKGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10LmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybigwLEQuUXopKHQpfSkpfSh0KSlyZXR1cm4hMDt2YXIgcj1uZXcgRGF0ZTtyZXR1cm4gci5zZXREYXRlKHIuZ2V0RGF0ZSgpLTIpLCEoKGUudXNlcj9uZXcgRGF0ZShlLnVzZXIubGFzdENvbnRhY3RlZEF0KTpuZXcgRGF0ZSk8cikmJih0Lmxlbmd0aD4xfHxuKX12YXIgSz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZSxuLHI9dC5nZXRTdGF0ZSgpLG89cSgoMCxILkEpKHIpLnNsaWNlKDAsLTMpKSxpPSgwLHouQSkociksYT1xKFcoaSxyKT9pOltdKTsoT2JqZWN0LmtleXMobykubGVuZ3RoPjB8fE9iamVjdC5rZXlzKGEpLmxlbmd0aD4wKSYmZnVuY3Rpb24odCxlLG4pe3ZhciByO2lmKG51bGwhPShyPXQubWVzc2FnZSkmJnIuY29udmVyc2F0aW9uSWQpcmV0dXJuITE7dmFyIG89ZnVuY3Rpb24odCl7cmV0dXJuIHQubm90aWZpY2F0aW9uVHlwZU92ZXJyaWRlcy5zdXBwcmVzc30odCksaT1mdW5jdGlvbih0KXtyZXR1cm4gdC5ub3RpZmljYXRpb25UeXBlT3ZlcnJpZGVzLmZvcmNlU25pcHBldH0odCk7cmV0dXJuISgwLEcuYikobyxlKXx8ISgwLEcuYikoaSxuKX0ocixvLGEpJiZ0LmRpc3BhdGNoKChlPW8sbj1hLHt0eXBlOkYublAsc3VwcHJlc3M6ZSxmb3JjZVNuaXBwZXQ6bn0pKSxmdW5jdGlvbih0LGUsbil7aWYoT2JqZWN0LmtleXModCkubGVuZ3RoPD0xKXJldHVybjt2YXIgcj1lLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIXQuZGlzbWlzc2VkfSkpO2lmKDEhPT1yLmxlbmd0aHx8ImZ1bGwiIT09clswXS5wYXJ0c1swXS5ub3RpZmljYXRpb25UeXBlKXJldHVybjsoMCxWLnNxKSgiZnVsbE1lc3NhZ2VTdXBwcmVzc2VkIix7bWVzc2FnZVR5cGU6clswXS5wYXJ0c1swXS5tZXNzYWdlVHlwZSxkaXNtaXNzZWRDb3VudDplLmxlbmd0aC1yLmxlbmd0aCxpc0xhdW5jaGVyRW5hYmxlZDpuLmlzTGF1bmNoZXJFbmFibGVkfSl9KGEsaSxyLmxhdW5jaGVyKX19LFo9bigxNTQ1MiksSj1uKDE0NjQ0KSxZPW4oMzQ1OSksUT1uKDE5NzA3KSxYPW4oMjI5NzkpO2Z1bmN0aW9uICQoKXtyZXR1cm4gJD1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LCQuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciB0dD0iaW50ZXJjb20tZXhwYW5kZWQtbW9kZSIsZXQ9T2JqZWN0LmFzc2lnbjt2YXIgbnQ9T2JqZWN0LmFzc2lnbixydD17aXNMYXVuY2hlckVuYWJsZWQ6ITEsbGF1bmNoZXJFbmFibGVkT3ZlcnJpZGU6Im5vdC1wcmVzZW50In07dmFyIG90PW4oOTM5ODIpLGl0PU9iamVjdC5hc3NpZ24sYXQ9e2lzUHJlc2VudDohMSxsYXN0UmVxdWVzdEF0OjB9O3ZhciB1dD1mdW5jdGlvbih0LGUpe3ZhciBuO2lmKHZvaWQgMD09PXQmJih0PWF0KSwoMCxvdC5YWCkoZSkpe3ZhciByLG8saSxhPWl0KHt9LHQudGVzdEFzc2lnbm1lbnRzLG51bGw9PWV8fG51bGw9PShyPWUucGF5bG9hZCk/dm9pZCAwOnIudGVzdEFzc2lnbm1lbnRzKTtyZXR1cm4gaXQoe30sdCx7dGVzdEFzc2lnbm1lbnRzOmEscmVzb2x1dGlvbkJvdEJlaGF2aW9yVmVyc2lvbklkOm51bGw9PWV8fG51bGw9PShvPWUucGF5bG9hZCk/dm9pZCAwOm8ucmVzb2x1dGlvbkJvdEJlaGF2aW9yVmVyc2lvbklkLHVzZXJIYXNFbWFpbDpudWxsPT1lfHxudWxsPT0oaT1lLnBheWxvYWQpP3ZvaWQgMDppLnVzZXJIYXNFbWFpbH0pfXN3aXRjaChlLnR5cGUpe2Nhc2UgRi5QMkk6dmFyIHU9ZS51cmwscz1lLmN1c3RvbUF0dHJpYnV0ZXMsYz1lLmFub255bW91c1Nlc3Npb25EdXJhdGlvbixsPWUuYWN0aXZlQ29tcGFueUlkO3JldHVybiBpdCh7fSx0LHt1cmw6dSxjdXN0b21BdHRyaWJ1dGVzOnMsYW5vbnltb3VzU2Vzc2lvbkR1cmF0aW9uOmMsYWN0aXZlQ29tcGFueUlkOmwsbGFzdFJlcXVlc3RBdDpEYXRlLm5vdygpfSk7Y2FzZSBGLlJ3cTp2YXIgZixkPWUudXNlcixwPWQuaWQsaD1kLmxvY2FsZSx2PWQuY291bnRyeUNvZGUseT1kLnJvbGUsZz1kLm5hbWUsbT1kLnVzZXJTdXBwbGllZEVtYWlsLGI9ZC51bnJlYWRDb252ZXJzYXRpb25JZHMsdz1kLnVucmVhZERpc21pc3NlZENvbnZlcnNhdGlvbklkcyxfPWQubm90aWZpY2F0aW9uTGlua0NvbnZlcnNhdGlvbklkLFM9ZC5waG9uZU51bWJlcix4PWQuYXJ0aWNsZUNvbnZlcnNhdGlvbklkLEU9ZC5jZGFzQnJlYWNoaW5nTGltaXQsQz1kLmxhc3RDb250YWN0ZWRBdCxPPWQucmVxdWlyZXNDb29raWVDb25zZW50LEE9ZC5yZXNvbHV0aW9uQm90QmVoYXZpb3JWZXJzaW9uSWQsST1kLnNlYXJjaFJlcXVpcmVkQmVmb3JlQ29udmVyc2F0aW9uLGs9ZC5wcmV2ZW50TXVsdGlwbGVJbmJvdW5kQ29udmVyc2F0aW9uLEw9ZC50ZXN0QXNzaWdubWVudHMsVD1kLm5ld3NmZWVkSWQsaj1kLnVucmVhZE5ld3NJdGVtc0NvdW50LFA9ZC51bnJlYWRUaWNrZXRzQ291bnQsTj1kLmxhc3RVbnJlYWROZXdzSXRlbUlkLE09ZC5uZXdzZmVlZExhc3RWaXNpdCxSPShudWxsPT1lfHxudWxsPT0oZj1lLnVzZXIpP3ZvaWQgMDpmLmhhc0NvbnZlcnNhdGlvbnMpfHwoKG51bGw9PWI/dm9pZCAwOmIubGVuZ3RoKXx8MCk+MHx8KChudWxsPT13P3ZvaWQgMDp3Lmxlbmd0aCl8fDApPjAsVT1pdCh7fSx0LnRlc3RBc3NpZ25tZW50cyxMKTtyZXR1cm4gaXQoe30sdCx7aWQ6cCxsb2NhbGU6aCxjb3VudHJ5Q29kZTp2LHJvbGU6eSxuYW1lOmcsdXNlclN1cHBsaWVkRW1haWw6bSxoYXNDb252ZXJzYXRpb25zOlIscGhvbmVOdW1iZXI6UyxhcnRpY2xlQ29udmVyc2F0aW9uSWQ6eCxub3RpZmljYXRpb25MaW5rQ29udmVyc2F0aW9uSWQ6XyxjZGFzQnJlYWNoaW5nTGltaXQ6RSxsYXN0Q29udGFjdGVkQXQ6QyxyZXF1aXJlc0Nvb2tpZUNvbnNlbnQ6TyxyZXNvbHV0aW9uQm90QmVoYXZpb3JWZXJzaW9uSWQ6QSxzZWFyY2hSZXF1aXJlZEJlZm9yZUNvbnZlcnNhdGlvbjpJLHByZXZlbnRNdWx0aXBsZUluYm91bmRDb252ZXJzYXRpb246ayx0ZXN0QXNzaWdubWVudHM6VSxuZXdzZmVlZElkOlQsdW5yZWFkTmV3c0l0ZW1zQ291bnQ6aix1bnJlYWRUaWNrZXRzQ291bnQ6UCxsYXN0VW5yZWFkTmV3c0l0ZW1JZDpOLG5ld3NmZWVkTGFzdFZpc2l0Ok19KTtjYXNlIEYuWFdvOmNhc2UgRi5JRFA6Y2FzZSBGLmZFQzpjYXNlIEYudXZJOnJldHVybiBpdCh7fSx0LHtoYXNDb252ZXJzYXRpb25zOiEwfSk7Y2FzZSBGLm1HWDp2YXIgej0oZS5jb252ZXJzYXRpb25zfHx7fSkuY29udmVyc2F0aW9ucyxIPXZvaWQgMCE9PXomJnoubGVuZ3RoPjA7cmV0dXJuIGl0KHt9LHQse2hhc0NvbnZlcnNhdGlvbnM6SH0pO2Nhc2UgRi5fYlM6dmFyIEQ9ZS51c2VyU3VwcGxpZWRFbWFpbDtyZXR1cm4gaXQoe30sdCx7dXNlclN1cHBsaWVkRW1haWw6RH0pO2Nhc2UgRi5mbjg6dmFyIEI9ZS5waG9uZU51bWJlcjtyZXR1cm4gaXQoe30sdCx7cGhvbmVOdW1iZXI6Qn0pO2Nhc2UgRi5uaVg6cmV0dXJuIGl0KHt9LHQse2lzUHJlc2VudDohMH0pO2Nhc2UgRi5OVXo6cmV0dXJuIGl0KHt9LHQse2lzUHJlc2VudDohMX0pO2Nhc2UgRi5yMng6cmV0dXJuIGl0KHt9LHQsbnVsbD09ZXx8bnVsbD09KG49ZS5zdGF0ZSk/dm9pZCAwOm4udXNlcik7Y2FzZSBGLlVPQTpyZXR1cm4gaXQoe30sdCx7bmV3c2ZlZWRMYXN0VmlzaXQ6ZS5uZXdzZmVlZExhc3RWaXNpdCx1bnJlYWROZXdzSXRlbXNDb3VudDowfSk7Y2FzZSBGLm4yXzp2YXIgVj10LnVucmVhZFRpY2tldHNDb3VudDtyZXR1cm4gaXQoe30sdCx7dW5yZWFkVGlja2V0c0NvdW50OlY/Vi0xOlZ9KTtjYXNlIEYuY2x1OnZhciBHPXQudW5yZWFkVGlja2V0c0NvdW50O3JldHVybiBpdCh7fSx0LHt1bnJlYWRUaWNrZXRzQ291bnQ6Rz9HKzE6R30pO2RlZmF1bHQ6cmV0dXJuIHR9fSxzdD1PYmplY3QuYXNzaWduO2Z1bmN0aW9uIGN0KCl7cmV0dXJuIGN0PU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sY3QuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBsdD17aWQ6bnVsbCxwYXJ0czpbXSxvcGVyYXRvcjpudWxsfTt2YXIgZnQ9e307dmFyIGR0PXt9O2Z1bmN0aW9uIHB0KCl7cmV0dXJuIHB0PU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0scHQuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBodD17fTtmdW5jdGlvbiB2dCh0LGUsbil7aWYoZSYmIUFycmF5LmlzQXJyYXkoZSkmJiJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpe3ZhciByPWUubGVuZ3RoO3JldHVybiBndChlLHZvaWQgMCE9PW4mJm48cj9uOnIpfXJldHVybiB0KGUsbil9ZnVuY3Rpb24geXQodCl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGd0KHQpfSh0KXx8ZnVuY3Rpb24odCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPXRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9dFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHQpfSh0KXx8ZnVuY3Rpb24odCxlKXtpZih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIGd0KHQsZSk7dmFyIG49e30udG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbSh0KToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP2d0KHQsZSk6dm9pZCAwfX0odCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gZ3QodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfWZ1bmN0aW9uIG10KCl7cmV0dXJuIG10PU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sbXQuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBidD17YWN0aXZlQXJ0aWNsZUlkOm51bGwsaXNMb2FkZWQ6ITEsdmlld1N0YWNrOltdLHRyYW5zaXRpb25pbmdCYWNrOiExLGluU2VhcmNoQnJvd3NlOiExLGhhc2g6IiIsYXJ0aWNsZUxvY2FsZTpudWxsLGlzU3RhbmRhbG9uZTohMSxmcm9tSG9tZVNjcmVlblN1Z2dlc3Rpb25zOiExfTtmdW5jdGlvbiB3dCh0KXtpZigwPT09dC5jaGlsZHJlbi5sZW5ndGgpcmV0dXJuW107dmFyIGU9W107cmV0dXJuIHQuY2hpbGRyZW4uZm9yRWFjaCgoZnVuY3Rpb24odCl7ZT1lLmNvbmNhdCh0LmFydGljbGVzLmNvbmNhdCh3dCh0KSkpfSkpLGUuZmxhdCgpfXZhciBfdD1mdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFydGljbGVzLmNvbmNhdCh3dCh0KSl9KSkuZmxhdCgpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtlLmlkXT1lLHR9KSx7fSl9O2Z1bmN0aW9uIFN0KHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBBdCh0KX0odCl8fGZ1bmN0aW9uKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fE90KHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHh0KCl7cmV0dXJuIHh0PU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0seHQuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIEV0KHQsZSxuKXtpZihlJiYhQXJyYXkuaXNBcnJheShlKSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aCl7dmFyIHI9ZS5sZW5ndGg7cmV0dXJuIEF0KGUsdm9pZCAwIT09biYmbjxyP246cil9cmV0dXJuIHQoZSxuKX1mdW5jdGlvbiBDdCh0LGUpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fSh0KXx8ZnVuY3Rpb24odCxlKXt2YXIgbj1udWxsPT10P251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxhLHU9W10scz0hMCxjPSExO3RyeXtpZihpPShuPW4uY2FsbCh0KSkubmV4dCwwPT09ZSl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47cz0hMX1lbHNlIGZvcig7IShzPShyPWkuY2FsbChuKSkuZG9uZSkmJih1LnB1c2goci52YWx1ZSksdS5sZW5ndGghPT1lKTtzPSEwKTt9Y2F0Y2godCl7Yz0hMCxvPXR9ZmluYWxseXt0cnl7aWYoIXMmJm51bGwhPW4ucmV0dXJuJiYoYT1uLnJldHVybigpLE9iamVjdChhKSE9PWEpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIHV9fSh0LGUpfHxPdCh0LGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gT3QodCxlKXtpZih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIEF0KHQsZSk7dmFyIG49e30udG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbSh0KToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP0F0KHQsZSk6dm9pZCAwfX1mdW5jdGlvbiBBdCh0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkoZSk7bjxlO24rKylyW25dPXRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gSXQodCl7cmV0dXJuIEl0PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxJdCh0KX1mdW5jdGlvbiBrdCh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGt0KHQpfSkpOnQmJiJvYmplY3QiPT09SXQodCk/T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHQpLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9RXQoQ3QsdCwyKTtyZXR1cm5bZVswXSxrdChlWzFdKV19KSkpOnR9ZnVuY3Rpb24gTHQodCxlKXt2YXIgbj14dCh7fSx0KSxyPWZ1bmN0aW9uKCl7aWYoIU9iamVjdC5oYXNPd24oZSxvKSlyZXR1cm4gMTt2YXIgdD1lW29dLHI9bltvXTtpZihBcnJheS5pc0FycmF5KHQpJiZBcnJheS5pc0FycmF5KHIpKXt2YXIgaT1FdChTdCxyKTt0LmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dmFyIG49aVtlXTt0JiYib2JqZWN0Ij09PUl0KHQpJiYhQXJyYXkuaXNBcnJheSh0KSYmbiYmIm9iamVjdCI9PT1JdChuKSYmIUFycmF5LmlzQXJyYXkobik/aVtlXT1MdChuLHQpOmlbZV09a3QodCl9KSksbltvXT1pfWVsc2UgdCYmIm9iamVjdCI9PT1JdCh0KSYmIUFycmF5LmlzQXJyYXkodCkmJnImJiJvYmplY3QiPT09SXQocikmJiFBcnJheS5pc0FycmF5KHIpP25bb109THQocix0KTpuW29dPWt0KHQpfTtmb3IodmFyIG8gaW4gZSlyKCk7cmV0dXJuIG59dmFyIFR0PXt9O3ZhciBqdD1bXTt2YXIgUHQ9bigyNjk0Nyk7ZnVuY3Rpb24gTnQodCxlKXtzd2l0Y2godm9pZCAwPT09dCYmKHQ9dW5kZWZpbmVkKSxlLnR5cGUpe2Nhc2UgRi5BZEw6Y2FzZSBGLm9uWDpjYXNlIEYuRHpMOmNhc2UgRi5mRUM6cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sdCx7YXR0cmlidXRlczp0LmF0dHJpYnV0ZXMubWFwKChmdW5jdGlvbihlKXt2YXIgbj1udWxsPT1lLnZhbHVlfHwiIj09PWUudmFsdWU/InVuc2F2ZWQiOiJzYXZlZCI7cmV0dXJuImJvdF93b3JrZmxvdyI9PT10LnR5cGUmJiJzYXZlZCI9PT1uJiYobj10LmF0dHJpYnV0ZV9jb2xsZWN0b3JfbG9ja2VkfHxlLmF0dHJpYnV0ZV9jb2xsZWN0aW9uX2Rpc2FibGVkfHwhZS5hdHRyaWJ1dGVfY29sbGVjdGlvbl9vdmVyd3JpdGFibGU/InNhdmVkIjoidW5zYXZlZCIpLE9iamVjdC5hc3NpZ24oe30sZSx7c2F2ZVN0YXRlOm59KX0pKX0pO2Nhc2UgRi5QV0M6dmFyIG49ZS5pZGVudGlmaWVyLHI9ZS52YWx1ZTtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0LHthdHRyaWJ1dGVzOnQuYXR0cmlidXRlcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkZW50aWZpZXI9PT1uP09iamVjdC5hc3NpZ24oe30sdCx7dmFsdWU6cixzYXZlU3RhdGU6InNhdmluZyJ9KTp0fSkpfSk7Y2FzZSBGLlpTOTpyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0LHthdHRyaWJ1dGVzOnQuYXR0cmlidXRlcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkZW50aWZpZXI9PT1lLmlkZW50aWZpZXI/T2JqZWN0LmFzc2lnbih7fSx0LHtzYXZlU3RhdGU6InNhdmVkIn0pOnR9KSl9KTtjYXNlIEYuY3g0OnZhciBvPSgwLFB0LnMzKShlLmVycm9yKSxpPW8/KDAsUHQuZVIpKG8pOnZvaWQgMDtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0LHthdHRyaWJ1dGVzOnQuYXR0cmlidXRlcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkZW50aWZpZXI9PT1lLmlkZW50aWZpZXI/T2JqZWN0LmFzc2lnbih7fSx0LHtzYXZlU3RhdGU6ImZhaWxlZCIsZXJyb3JDb2RlOml9KTp0fSkpfSk7ZGVmYXVsdDpyZXR1cm4gdH19dmFyIE10PVsiY3JlYXRlZEF0IiwiYm9keSIsImNsaWVudElkIiwiZmlsZSIsImlzTWVzc2FnZSIsInNlbGVjdGVkUmVwbHlPcHRpb24iLCJjb21wb3NlclN1Z2dlc3Rpb25JdGVtIiwiYXV0aG9yIiwicGFydFR5cGUiXTtmdW5jdGlvbiBSdCh0LGUsbil7aWYoZSYmIUFycmF5LmlzQXJyYXkoZSkmJiJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpe3ZhciByPWUubGVuZ3RoO3JldHVybiB6dChlLHZvaWQgMCE9PW4mJm48cj9uOnIpfXJldHVybiB0KGUsbil9ZnVuY3Rpb24gVXQodCl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHp0KHQpfSh0KXx8ZnVuY3Rpb24odCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPXRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9dFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHQpfSh0KXx8ZnVuY3Rpb24odCxlKXtpZih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHp0KHQsZSk7dmFyIG49e30udG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbSh0KToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP3p0KHQsZSk6dm9pZCAwfX0odCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24genQodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfWZ1bmN0aW9uIEh0KCl7cmV0dXJuIEh0PU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sSHQuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBGdD1PYmplY3QuYXNzaWduLER0PVsiY2Fyb3VzZWwiLCJpdGVtX2Nhcm91c2VsIiwidmFyaWFudHNfY2Fyb3VzZWwiXSxCdD1bImZpbl9hbnN3ZXIiLCJjb21wb3NpdGUiXTtmdW5jdGlvbiBWdCh0LGUpe3ZhciBuPSh0LmNyZWF0ZWRBdD90LmNyZWF0ZWRBdC5nZXRUaW1lKCk6MS8wKS0oZS5jcmVhdGVkQXQ/ZS5jcmVhdGVkQXQuZ2V0VGltZSgpOjEvMCk7cmV0dXJuIDAhPT1uP246KHQuaXNNZXNzYWdlPzA6MSktKGUuaXNNZXNzYWdlPzA6MSl9ZnVuY3Rpb24gR3QodCl7dmFyIGU9dC5jcmVhdGVkQXQsbj10LmJvZHkscj10LmNsaWVudElkLG89dC5maWxlLGk9dC5pc01lc3NhZ2UsYT10LnNlbGVjdGVkUmVwbHlPcHRpb24sdT10LmNvbXBvc2VyU3VnZ2VzdGlvbkl0ZW0scz10LmF1dGhvcixjPXQucGFydFR5cGU7cmV0dXJuIEh0KHtib2R5Om4sY3JlYXRlZEF0OmUsY2xpZW50SWQ6cixpc01lc3NhZ2U6aSxmaWxlOm8sc2VsZWN0ZWRSZXBseU9wdGlvbjphLGNvbXBvc2VyU3VnZ2VzdGlvbkl0ZW06dSxwYXJ0VHlwZTp2b2lkIDA9PT1jP2k/Im1lc3NhZ2UiOiJjb21tZW50IjpjLGV2ZW50RGF0YTp7fSxzYXZlU3RhdGU6InNhdmluZyIsc2VlblN0YXRlOiJwZW5kaW5nIixyZXBseU9wdGlvbnM6W10sYXV0aG9yOnN8fHtpc0FkbWluOiExLGlzU2VsZjohMH19LGZ1bmN0aW9uKHQsZSl7aWYobnVsbD09dClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpe2lmKC0xIT09ZS5pbmRleE9mKHIpKWNvbnRpbnVlO25bcl09dFtyXX1yZXR1cm4gbn0odCxNdCkpfWZ1bmN0aW9uIHF0KHQsZSl7c3dpdGNoKHZvaWQgMD09PXQmJih0PVtdKSxlLnR5cGUpe2Nhc2UgRi5YV286dmFyIG49ZS5wYXJ0LHI9bi5ib2R5LG89bi5jcmVhdGVkQXQsaT1uLmZpbGUsYT1uLmNvbXBvc2VyU3VnZ2VzdGlvbkl0ZW0sdT1uLmNsaWVudElkLHM9bi51eFN0eWxlO3JldHVybiBlLmlzUmV0cnk/dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBGdCh7fSx0LHtzYXZlU3RhdGU6InNhdmluZyJ9KX0pKTp0LmNvbmNhdChHdCh7Y3JlYXRlZEF0Om8sYm9keTpyLGZpbGU6aSxpc01lc3NhZ2U6ITAsY29tcG9zZXJTdWdnZXN0aW9uSXRlbTphLGNsaWVudElkOnUsdXhTdHlsZTpzfSkpO2Nhc2UgRi5JdGw6cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4iYm90X2ludHJvIj09PXQucGFydFR5cGU/dDpGdCh7fSx0LHtzYXZlU3RhdGU6ImZhaWxlZCIsc2F2ZUZhaWx1cmVSZWFzb246ZS5yZWFzb259KX0pKTtjYXNlIEYuUHpTOnZhciBjPWUucGFydCxsPWMuYm9keSxmPWMuY3JlYXRlZEF0LGQ9Yy5jbGllbnRJZCxwPWMuZmlsZSxoPWMuc2VsZWN0ZWRSZXBseU9wdGlvbix2PWMudXhTdHlsZTtyZXR1cm4gZS5pc1JldHJ5P3QubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZD09PXQuY2xpZW50SWQ/RnQoe30sdCx7c2F2ZVN0YXRlOiJzYXZpbmcifSk6dH0pKTp0LmNvbmNhdChHdCh7Y3JlYXRlZEF0OmYsYm9keTpsLGNsaWVudElkOmQsZmlsZTpwLGlzTWVzc2FnZTohMSxzZWxlY3RlZFJlcGx5T3B0aW9uOmgsdXhTdHlsZTp2fSkpO2Nhc2UgRi5ITXU6cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtpZihlLnBhcnQuY2xpZW50SWQhPT10LmNsaWVudElkKXJldHVybiB0O3ZhciBuPUZ0KHt9LHQsZS5wYXJ0LHtzYXZlU3RhdGU6InNhdmVkIn0pOygicGVuZGluZyI9PT1uLnNlZW5TdGF0ZSYmKG4uc2VlblN0YXRlPSJub3Qtc2Vlbi15ZXQiKSx0LmJvZHkmJm4uYm9keSYmdC5ib2R5Lmxlbmd0aD09PW4uYm9keS5sZW5ndGgpJiYodC5ib2R5LmV2ZXJ5KChmdW5jdGlvbih0LGUpe3ZhciByPW4uYm9keVtlXTtyZXR1cm4iaW1hZ2UiPT09dC50eXBlJiYiaW1hZ2UiPT09ci50eXBlP3Qud2lkdGg9PT1yLndpZHRoJiZ0LmhlaWdodD09PXIuaGVpZ2h0OnQudHlwZT09PXIudHlwZSYmdC50ZXh0PT09ci50ZXh0fSkpJiYobi5ib2R5PXQuYm9keSkpO3JldHVybiBufSkpO2Nhc2UgRi5VMmQ6cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5wYXJ0LmNsaWVudElkPT09dC5jbGllbnRJZD9GdCh7fSx0LHtzYXZlU3RhdGU6ImZhaWxlZCIsc2F2ZUZhaWx1cmVSZWFzb246ZS5yZWFzb259KTp0fSkpO2Nhc2UgRi5vblg6Y2FzZSBGLmZFQzpjYXNlIEYuRHpMOnJldHVybiBlLmNvbnZlcnNhdGlvbi5wYXJ0cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmZvcm0/RnQoe30sdCx7Zm9ybTpOdCh0LmZvcm0sZSksc2F2ZVN0YXRlOnQuc2F2ZVN0YXRlfHwic2F2ZWQifSk6RnQoe30sdCx7c2F2ZVN0YXRlOnQuc2F2ZVN0YXRlfHwic2F2ZWQifSl9KSkudG9Tb3J0ZWQoVnQpO2Nhc2UgRi5hbE06dmFyIHk9ZS5wYXJ0LGc9dC5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jbGllbnRJZD09PXkuY2xpZW50SWR9KSk7aWYobnVsbCE9ZyYmZy5pZClyZXR1cm4gdDt2YXIgbSxiPXZvaWQgMD09PXkudG9rZW5TZXF1ZW5jZUluZGV4O3JldHVybiBtPWc/dC5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuIHQuY2xpZW50SWQhPT15LmNsaWVudElkfHx0LnN0cmVhbUVuZGVkP3Q6Yj9GdCh7fSx0LHt0b2tlblNlcXVlbmNlSW5kZXg6dm9pZCAwLHN0cmVhbUVuZGVkOiEwfSk6IXQuaWQmJigiY29tcG9zaXRlIj09PXkucGFydFR5cGU/eS50b2tlblNlcXVlbmNlSW5kZXg+PShudWxsIT0oZT1udWxsPT10P3ZvaWQgMDp0LnRva2VuU2VxdWVuY2VJbmRleCk/ZTotMSk6eS50b2tlblNlcXVlbmNlSW5kZXg+KG51bGwhPShuPW51bGw9PXQ/dm9pZCAwOnQudG9rZW5TZXF1ZW5jZUluZGV4KT9uOi0xKSk/ZnVuY3Rpb24odCxlKXtpZigiY29tcG9zaXRlIiE9PWUucGFydFR5cGV8fCF0LnNlZ21lbnRzfHwhZS5zZWdtZW50cylyZXR1cm4gZTt2YXIgbj1lLnNlZ21lbnRzLm1hcCgoZnVuY3Rpb24oZSxuKXt2YXIgcj10LnNlZ21lbnRzW25dO3JldHVybiBlJiYiYnVmZmVyaW5nIj09PWUudHlwZSYmciYmLTEhPT1EdC5pbmRleE9mKHIudHlwZSk/cjplfSkpO3JldHVybiBIdCh7fSxlLHtzZWdtZW50czpufSl9KHQseSk6dH0pKTpbXS5jb25jYXQoUnQoVXQsdCksW2I/RnQoe30seSx7c3RyZWFtRW5kZWQ6ITB9KTp5XSksbT1tLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuISEoIXR8fCF0LmNsaWVudElkfHx2b2lkIDA9PT10LnRva2VuU2VxdWVuY2VJbmRleCYmIXQuc3RyZWFtRW5kZWR8fHQuaWR8fC0xPT09QnQuaW5kZXhPZih0LnBhcnRUeXBlKXx8dC5jbGllbnRJZD09PXkuY2xpZW50SWR8fHQuc3RyZWFtR3JvdXBJZCYmdC5zdHJlYW1Hcm91cElkPT09eS5zdHJlYW1Hcm91cElkKX0pKSxtO2Nhc2UgRi5BZEw6dmFyIHc9ZS5wYXJ0LF89dy5mb3JtP0Z0KHt9LHcse2Zvcm06TnQody5mb3JtLGUpfSk6dyxTPXQuZmluZEluZGV4KChmdW5jdGlvbih0KXtyZXR1cm4oMCxELnNpKSh0LF8pfSkpO3JldHVybi0xIT09Uz90Lm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZT09PVM/Xzp0fSkpOltdLmNvbmNhdChSdChVdCx0KSxbX10pLnRvU29ydGVkKFZ0KTtjYXNlIEYuRm44OnZhciB4PWUuY2xpZW50SWQ7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jbGllbnRJZD09PXgmJnZvaWQgMCE9PXQudG9rZW5TZXF1ZW5jZUluZGV4P0Z0KHt9LHQse3Rva2VuU2VxdWVuY2VJbmRleDp2b2lkIDAsc3RyZWFtRW5kZWQ6ITB9KTp0fSkpO2Nhc2UgRi5mRUw6cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PWUucGFydElkP0Z0KHt9LHQse2hhbmRvdmVyQ3RhOkZ0KHt9LHQuaGFuZG92ZXJDdGEse3N0YXR1czoic3Bhd25lZCIsc3Bhd25lZF9jb252ZXJzYXRpb25faWQ6ZS5zcGF3bmVkQ29udmVyc2F0aW9uSWR9KX0pOnR9KSk7Y2FzZSBGLklEejpjYXNlIEYuVDRrOnJldHVybiB0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVhY3Rpb25zUmVwbHk/RnQoe30sdCx7cmVhY3Rpb25zUmVwbHk6e3JlYWN0aW9uSW5kZXg6ZS5yZWFjdGlvbkluZGV4LHJlYWN0aW9uU2V0OnQucmVhY3Rpb25zUmVwbHkucmVhY3Rpb25TZXR9fSk6dH0pKTtjYXNlIEYuYVE1OnJldHVybiB0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuImNvbnZlcnNhdGlvblJhdGluZyI9PT10Lm1lc3NhZ2VUeXBlJiZ0LmNvbnZlcnNhdGlvblJhdGluZy51dWlkPT09ZS5yYXRpbmdVdWlkP0Z0KHt9LHQse2NvbnZlcnNhdGlvblJhdGluZzpGdCh7fSx0LmNvbnZlcnNhdGlvblJhdGluZyx7Y2hvc2VuUmF0aW5nOmUucmF0aW5nSW5kZXh9KX0pOnR9KSk7Y2FzZSBGLnplXzpyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiJjb252ZXJzYXRpb25SYXRpbmciPT09dC5tZXNzYWdlVHlwZSYmdC5jb252ZXJzYXRpb25SYXRpbmcudXVpZD09PWUucmF0aW5nVXVpZD9GdCh7fSx0LHtjb252ZXJzYXRpb25SYXRpbmc6RnQoe30sdC5jb252ZXJzYXRpb25SYXRpbmcse3JlbWFyazplLnJlbWFyayxzdWJtaXR0ZWQ6ITB9KX0pOnR9KSk7Y2FzZSBGLnVmVTpyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLnBhcnQuY2xpZW50SWQ9PT10LmNsaWVudElkP0Z0KHt9LHQse2JvZHk6dC5ib2R5Lm1hcCgoZnVuY3Rpb24odCxuKXtyZXR1cm4gMD09PW4mJiJpbWFnZSI9PT10LnR5cGU/RnQoe30sdCx7cHJvZ3Jlc3M6ZS5wcm9ncmVzc30pOnR9KSl9KTp0fSkpO2Nhc2UgRi5vX0U6Y2FzZSBGLlQkNTppZihlLmFja25vd2xlZGdlbWVudFBhcnQpe3ZhciBFPXQuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xpZW50SWQ9PT1lLmFja25vd2xlZGdlbWVudFBhcnQuY2xpZW50SWR9KSk7cmV0dXJuIEU/dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNsaWVudElkPT09ZS5hY2tub3dsZWRnZW1lbnRQYXJ0LmNsaWVudElkP0Z0KHt9LHQse3NlZW5TdGF0ZToic2VlbiJ9KTp0fSkpOnQuY29uY2F0KGUuYWNrbm93bGVkZ2VtZW50UGFydCl9cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4ibm90LXNlZW4teWV0Ij09PXQuc2VlblN0YXRlfHwicGVuZGluZyI9PT10LnNlZW5TdGF0ZT9GdCh7fSx0LHtzZWVuU3RhdGU6InNlZW4ifSk6dH0pKTtjYXNlIEYuUFdDOmNhc2UgRi5aUzk6Y2FzZSBGLmN4NDpyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ZS5wYXJ0SWQ/RnQoe30sdCx7Zm9ybTpOdCh0LmZvcm0sZSl9KTp0fSkpO2RlZmF1bHQ6cmV0dXJuIHR9fXZhciBXdD1uKDkxMjgpLEt0PVsidGlja2V0Il07ZnVuY3Rpb24gWnQoKXtyZXR1cm4gWnQ9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxadC5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIEp0PU9iamVjdC5hc3NpZ24sWXQ9e2ZldGNoU3RhdGU6InBhcnRpYWwiLGlzRmV0Y2hpbmc6ITEsaXNVcGRhdGluZzohMSxyZWFkOiEwLGRpc21pc3NlZDohMSxwcmV2ZW50RW5kVXNlclJlcGxpZXM6ITEscGFydHM6W10scGFydGljaXBhbnRzOltdLGlzRW1haWxBdHRyaWJ1dGVDb2xsZWN0b3JJbnNlcnRlZDohMSxjb21wb3NlclN1Z2dlc3Rpb25zOld0Lm42LHNhbGVzZm9yY2VfZXh0ZXJuYWxfcmVmZXJlbmNlOnZvaWQgMCxjb21wb3NlclN0YXRlOnt9fTtmdW5jdGlvbiBRdCh0LGUpe3JldHVybiB2b2lkIDAhPT10P3Q6ZX1mdW5jdGlvbiBYdCh0LGUpe3N3aXRjaCh2b2lkIDA9PT10JiYodD1ZdCksZS50eXBlKXtjYXNlIEYuTExKOnZhciBuPWUuY29udmVyc2F0aW9uSWQscj1lLmlzVXBkYXRpbmc7cmV0dXJuKDAscy5aUSkoe2NhdGVnb3J5OiJnZXQtY29udmVyc2F0aW9uIixtZXNzYWdlOiJFeGVjdXRpbmcgR0VUX0NPTlZFUlNBVElPTl9SRVFVRVNUIixkYXRhOntjb252ZXJzYXRpb25JZDpufSxsZXZlbDoiaW5mbyJ9KSxKdCh7fSx0LHtpZDpRdCh0LmlkLG4pLGZldGNoU3RhdGU6UXQodC5mZXRjaFN0YXRlLCJwYXJ0aWFsIiksaXNGZXRjaGluZzohMCxpc1VwZGF0aW5nOnIscmVhZDpRdCh0LnJlYWQsITApLGRpc21pc3NlZDpRdCh0LmRpc21pc3NlZCwhMSkscHJldmVudEVuZFVzZXJSZXBsaWVzOlF0KHQucHJldmVudEVuZFVzZXJSZXBsaWVzLCExKSxwYXJ0czpRdCh0LnBhcnRzLFtdKX0pO2Nhc2UgRi5FMDg6cmV0dXJuIEp0KHt9LHQse2lzRmV0Y2hpbmc6ITEsaXNVcGRhdGluZzohMX0pO2Nhc2UgRi5vblg6Y2FzZSBGLmZFQzp2YXIgbz1lLmNvbnZlcnNhdGlvbixpPW8ucGFydHMuc29tZSgoZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIShudWxsIT0oZT10LmF1dGhvcikmJmUuaXNBZG1pbil9KSk7KDAscy5aUSkoe2NhdGVnb3J5OiJnZXQtY29udmVyc2F0aW9uIixtZXNzYWdlOiJFeGVjdXRpbmcgR0VUX0NPTlZFUlNBVElPTl9TVUNDRVNTIixkYXRhOntjb252ZXJzYXRpb25JZDpvLmlkLHVzZXJQYXJ0aWNpcGF0ZWQ6aX0sbGV2ZWw6ImluZm8ifSksby5wYXJ0cz0oMCxELmtnKShvLHQpLG8uY29tcG9zZXJTdGF0ZT0oMCxELlhVKShvLHQpO3ZhciBhPW8udGlja2V0LHU9ZnVuY3Rpb24odCxlKXtpZihudWxsPT10KXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiB0KWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwodCxyKSl7aWYoLTEhPT1lLmluZGV4T2YocikpY29udGludWU7bltyXT10W3JdfXJldHVybiBufShvLEt0KSxjPXF0KHQucGFydHMsZSksbD1jLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSk7KDAscy5aUSkoe2NhdGVnb3J5OiJnZXQtY29udmVyc2F0aW9uIixtZXNzYWdlOiJSZXR1cm5pbmcgZGF0YSBmcm9tIEdFVF9DT05WRVJTQVRJT05fU1VDQ0VTUyIsZGF0YTp7Y29udmVyc2F0aW9uSWQ6by5pZCxwYXJ0SWRzOmx9LGxldmVsOiJpbmZvIn0pO3ZhciBmPVp0KHt9LHQsdSx7c2FsZXNmb3JjZV9leHRlcm5hbF9yZWZlcmVuY2U6by5zYWxlc2ZvcmNlX2V4dGVybmFsX3JlZmVyZW5jZSxmZXRjaFN0YXRlOiJhbGwiLGlzRmV0Y2hpbmc6ITEsaXNVcGRhdGluZzohMSx1c2VyUGFydGljaXBhdGVkOmkscGFydHM6Y30pO3JldHVybiBhJiYoZi50aWNrZXRJZD1hLmlkKSxmO2Nhc2UgRi5jeDQ6Y2FzZSBGLlpTOTpjYXNlIEYuRHpMOnZhciBkPSJjb252ZXJzYXRpb24iaW4gZT9lLmNvbnZlcnNhdGlvbjp2b2lkIDA7cmV0dXJuIGQmJihkLnBhcnRzPSgwLEQua2cpKGQsdCksZC5jb21wb3NlclN0YXRlPSgwLEQuWFUpKGQsdCkpLEp0KHt9LHQsZCx7ZmV0Y2hTdGF0ZToiYWxsIixpc0ZldGNoaW5nOiExLGlzVXBkYXRpbmc6ITEsdXNlclBhcnRpY2lwYXRlZDohMCxwYXJ0czpxdCh0LnBhcnRzLGUpfSk7Y2FzZSBGLnlNNTpjYXNlIEYuVG1ROnJldHVybiBKdCh7fSx0LHtyZWFkOiEwfSk7Y2FzZSBGLnUwYzpyZXR1cm4gSnQoe30sdCx7cmVhZDohMCxyZWFkQXQ6ZS5yZWFkQXR9KTtjYXNlIEYuc1VTOnJldHVybiBKdCh7fSx0LHtkaXNtaXNzZWQ6ITB9KTtjYXNlIEYuSE11OmNhc2UgRi5QelM6dmFyIHA9ZS5wYXJ0LmNyZWF0ZWRBdDtyZXR1cm4gSnQoe30sdCx7dXNlclBhcnRpY2lwYXRlZDohMCxsYXN0UGFydENyZWF0ZWRBdDpwLHBhcnRzOnF0KHQucGFydHMsZSksZXhjbHVkZUZyb21Db252ZXJzYXRpb25zTGlzdDohdC50aWNrZXRJZCYmdC5leGNsdWRlRnJvbUNvbnZlcnNhdGlvbnNMaXN0LGVsaWdpYmxlRm9yUmVjZW50Q29udmVyc2F0aW9uczohKCF0LnRpY2tldElkfHwhdC5leGNsdWRlRnJvbUNvbnZlcnNhdGlvbnNMaXN0KXx8dC5lbGlnaWJsZUZvclJlY2VudENvbnZlcnNhdGlvbnN9KTtjYXNlIEYuRm44OnJldHVybiBKdCh7fSx0LHtwYXJ0czpxdCh0LnBhcnRzLGUpfSk7Y2FzZSBGLmFsTTpyZXR1cm4gSnQoe30sdCx7cGFydHM6cXQodC5wYXJ0cyxlKSxmb290ZXJOb3RpY2U6dC5mb290ZXJOb3RpY2V9KTtjYXNlIEYudXZJOnZhciBoPU9iamVjdC5hc3NpZ24oe30sZS5jb252ZXJzYXRpb24pO3JldHVybiBoLmNvbXBvc2VyU3RhdGU9KDAsRC5YVSkoaCx0KSxoLnRpY2tldCYmKGgudGlja2V0SWQ9aC50aWNrZXQuaWQpLEp0KHt9LHQsaCx7ZmV0Y2hTdGF0ZToiYWxsIixpc0ZldGNoaW5nOiExLGlzVXBkYXRpbmc6ITF9KTtjYXNlIEYuUDV5OmlmKHQuaWQhPT1lLmNvbnZlcnNhdGlvbklkKXJldHVybiB0O3ZhciB2PSgwLEQuWFUpKHtjb21wb3NlclN0YXRlOmUuY29tcG9zZXJTdGF0ZSxpZDplLmNvbnZlcnNhdGlvbklkfSx0KTtyZXR1cm4gSnQoe30sdCx7Y29tcG9zZXJTdGF0ZTp2fSk7Y2FzZSBGLkFkTDp2YXIgeSxnLG09ZS5wYXJ0LGI9bS5hdXRob3ImJiFtLmF1dGhvci5pc1NlbGYsdz0oInRlYW1tYXRlX2pvaW5lZCI9PT1tLnBhcnRUeXBlfHwiYXNzaWdubWVudCI9PT1tLnBhcnRUeXBlKSYmKG51bGw9PSh5PW0uYXV0aG9yKT92b2lkIDA6eS5pc0FkbWluKSYmIShudWxsIT0oZz1tLmF1dGhvcikmJmcuaXNCb3QpLF89bS5hdXRob3IsUz13JiZfP3t1eFN0eWxlOiJhc3NpZ25lZCIsbGFzdFBhcnRpY2lwYXRpbmdBZG1pbjp7aWQ6Xy5pZCxmaXJzdE5hbWU6Xy5maXJzdE5hbWUsaW5pdGlhbDpfLmluaXRpYWwsaXNCb3Q6Xy5pc0JvdCxpc0FjdGl2ZTohMCxhdmF0YXI6Xy5hdmF0YXJ9fTp7fTtyZXR1cm4gSnQoe30sdCxadCh7cGFydHM6cXQodC5wYXJ0cyxlKSxyZWFkOiFiJiZ0LnJlYWQsbGFzdFBhcnRDcmVhdGVkQXQ6bS5jcmVhdGVkQXR9LFMpKTtjYXNlIEYuUFdDOmNhc2UgRi5UNGs6Y2FzZSBGLnVmVTpjYXNlIEYuYVE1OmNhc2UgRi56ZV86Y2FzZSBGLm9fRTpjYXNlIEYuZkVMOnJldHVybiBKdCh7fSx0LHtwYXJ0czpxdCh0LnBhcnRzLGUpfSk7Y2FzZSBGLlUyZDpyZXR1cm4oMCxELlhjKShlLnJlYXNvbik/SnQoe30sdCx7cGFydHM6cXQodC5wYXJ0cyxlKSxwcmV2ZW50RW5kVXNlclJlcGxpZXM6ITAsc3RhdGU6InN0YXRlX2Nsb3NlZCJ9KTpKdCh7fSx0LHtwYXJ0czpxdCh0LnBhcnRzLGUpfSk7Y2FzZSBGLlQkNTpyZXR1cm4gSnQoe30sdCx7cGFydHM6cXQodC5wYXJ0cyxlKSxmb290ZXJOb3RpY2U6dC5mb290ZXJOb3RpY2V9KTtjYXNlIEYuZmptOnJldHVybiBKdCh7fSx0LHtpc0VtYWlsQXR0cmlidXRlQ29sbGVjdG9ySW5zZXJ0ZWQ6ITB9KTtjYXNlIEYuSUtKOmNhc2UgRi5BOTk6Y2FzZSBGLmlEZDpjYXNlIEYucl8xOnJldHVybiBudWxsPT1lLmNvbnZlcnNhdGlvbklkP3Q6WnQoe30sdCx7Y29tcG9zZXJTdWdnZXN0aW9uczooMCxXdC5BeSkodC5jb21wb3NlclN1Z2dlc3Rpb25zLGUpfSk7ZGVmYXVsdDpyZXR1cm4gdH19dmFyICR0PW4oNzczNiksdGU9WyJ0aWNrZXQiLCJzYWxlc2ZvcmNlX2V4dGVybmFsX3JlZmVyZW5jZSJdO2Z1bmN0aW9uIGVlKCl7cmV0dXJuIGVlPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sZWUuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBuZT1PYmplY3QuYXNzaWduLHJlPXtpc0ZldGNoaW5nOiExLHBhZ2VzRmV0Y2hlZDowLHNjcm9sbFBvc2l0aW9uOjAsYnlJZDp7fSxwYXJ0czpbXSx0aXRsZVVwZGF0ZXM6e319O2Z1bmN0aW9uIG9lKHQsZSxuLHIpe3ZvaWQgMD09PXQmJih0PXt9KTt2YXIgbz10LmZldGNoU3RhdGU7cmV0dXJuIG5lKHt9LHQse2lkOmUsZmV0Y2hTdGF0ZTpvfHwicGFydGlhbCIsZGlzbWlzc2VkOm4scmVhZDpyLHNhbGVzZm9yY2VfZXh0ZXJuYWxfcmVmZXJlbmNlOnQuc2FsZXNmb3JjZV9leHRlcm5hbF9yZWZlcmVuY2V9KX1mdW5jdGlvbiBpZSh0LGUpe3N3aXRjaCh2b2lkIDA9PT10JiYodD17fSksZS50eXBlKXtjYXNlIEYuUndxOmNhc2UgRi5fYlM6dmFyIG49ZS51c2VyfHx7fSxyPW4udW5yZWFkQ29udmVyc2F0aW9uSWRzLG89bi51bnJlYWREaXNtaXNzZWRDb252ZXJzYXRpb25JZHM7aWYobnVsbD09ciYmbnVsbD09bylyZXR1cm4gdDt2YXIgaT17fTtyZXR1cm4gbyYmby5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gaVtlXT1vZSh0W2VdLGUsITAsITEpfSkpLHImJnIuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGlbZV09b2UodFtlXSxlLCExLCExKX0pKSxuZSh7fSx0LGkpO2Nhc2UgRi5hd3A6dmFyIGE9ZS51bnJlYWRDb252ZXJzYXRpb25zfHx7fSx1PWEudW5yZWFkQ29udmVyc2F0aW9uSWRzLHM9YS51bnJlYWREaXNtaXNzZWRDb252ZXJzYXRpb25JZHMsYz17fTtyZXR1cm4gbnVsbD09c3x8cy5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gY1tlXT1vZSh0W2VdLGUsITAsITEpfSkpLG51bGw9PXV8fHUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGNbZV09b2UodFtlXSxlLCExLCExKX0pKSxuZSh7fSx0LGMpO2Nhc2UgRi5tR1g6Y2FzZSBGLl9VODp2YXIgbCxmPSgobnVsbD09ZXx8bnVsbD09KGw9ZS5jb252ZXJzYXRpb25zKT92b2lkIDA6bC5jb252ZXJzYXRpb25zKXx8ZS5jb252ZXJzYXRpb25zKS5yZWR1Y2UoKGZ1bmN0aW9uKG4scil7dmFyIG89ci5pZCxpPXIudXBkYXRlZEF0LGE9ci5sYXN0UGFydENyZWF0ZWRBdDtyZXR1cm4gdFtvXSYmImFsbCI9PT10W29dLmZldGNoU3RhdGUmJiFmdW5jdGlvbih0LGUsbil7dmFyIHIsbyxpLGE9bnVsbD09KHI9ZVt0XSl8fG51bGw9PShyPXIucGFydHMpP3ZvaWQgMDpyLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuISgwLCR0Lms0KSh0KX0pKSx1PW4ucGFydHM7cmV0dXJuKG51bGw9PWF8fG51bGw9PShvPWEuYXQoLTEpKT92b2lkIDA6by5pZCkhPT0obnVsbD09KGk9dS5hdCgtMSkpP3ZvaWQgMDppLmlkKX0obyx0LHIpfHx0W29dJiZlLnR5cGU9PT1GLl9VOCYmaTw9dFtvXS51cGRhdGVkQXR8fHRbb10mJmUudHlwZT09PUYubUdYJiZhPD10W29dLmxhc3RQYXJ0Q3JlYXRlZEF0fHwobltvXT1mdW5jdGlvbih0KXt2b2lkIDA9PT10JiYodD17fSk7dmFyIGU9dCxuPWUudGlja2V0LHI9ZS5zYWxlc2ZvcmNlX2V4dGVybmFsX3JlZmVyZW5jZSxvPWVlKHt9LGZ1bmN0aW9uKHQsZSl7aWYobnVsbD09dClyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gdClpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpe2lmKC0xIT09ZS5pbmRleE9mKHIpKWNvbnRpbnVlO25bcl09dFtyXX1yZXR1cm4gbn0oZSx0ZSkse2ZldGNoU3RhdGU6InN1bW1hcnkiLGlzRmV0Y2hpbmc6ITEsaXNVcGRhdGluZzohMSxwYXJ0czp0LnBhcnRzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGVlKHt9LHQse3NhdmVTdGF0ZToic2F2ZWQifSl9KSksc2FsZXNmb3JjZV9leHRlcm5hbF9yZWZlcmVuY2U6cn0pO3JldHVybiBuJiYoby50aWNrZXRJZD1uLmlkKSxvfShyKSksbn0pLHt9KTtyZXR1cm4gZWUoe30sdCxmKTtjYXNlIEYudXZJOmNhc2UgRi5aUzk6Y2FzZSBGLkR6TDpjYXNlIEYuZkVDOmNhc2UgRi5vblg6dmFyIGQscD0oZS5jb252ZXJzYXRpb258fHt9KS5pZCxoPSgoZD17fSlbcF09WHQodFtwXSxlKSxkKTtyZXR1cm4gbmUoe30sdCxoKTtjYXNlIEYudnlQOnZhciB2LHk9ZS5jb252ZXJzYXRpb25JZDtpZihudWxsPT15KXJldHVybiB0O3ZhciBnPXRbeV07aWYoIWcpcmV0dXJuIHQ7dmFyIG09KCh2PXt9KVt5XT1uZSh7fSxnLHt0aXRsZTplLnRpdGxlLHRpdGxlT3JpZ2luOmUudGl0bGVPcmlnaW59KSx2KTtyZXR1cm4gbmUoe30sdCxtKTtjYXNlIEYuS0hfOnZhciBiLHcsXz1lLmNvbnZlcnNhdGlvbklkO2lmKG51bGw9PV8pcmV0dXJuIHQ7dmFyIFM9dFtfXTtpZihudWxsPT1TfHxudWxsPT0oYj1TLmhlYWRlcil8fCFiLmNvbGxhcHNlZClyZXR1cm4gdDt2YXIgeD0oKHc9e30pW19dPW5lKHt9LFMse2hlYWRlcjpuZSh7fSxTLmhlYWRlcix7Y29sbGFwc2VkOm5lKHt9LFMuaGVhZGVyLmNvbGxhcHNlZCx7c3VidGl0bGU6ZS5xdWV1ZVBvc2l0aW9uVGV4dCxpY29uOmUucXVldWVQb3NpdGlvblRleHQ/ImNsb2NrIjpudWxsfSl9KX0pLHcpO3JldHVybiBuZSh7fSx0LHgpO2Nhc2UgRi5hbE06Y2FzZSBGLkFkTDpjYXNlIEYuRm44OmNhc2UgRi5QV0M6Y2FzZSBGLlQ0azpjYXNlIEYuSFRFOmNhc2UgRi5MTEo6Y2FzZSBGLlB6UzpjYXNlIEYuSE11OmNhc2UgRi5VMmQ6Y2FzZSBGLnlNNTpjYXNlIEYuVG1ROmNhc2UgRi51MGM6Y2FzZSBGLmFRNTpjYXNlIEYuY3g0OmNhc2UgRi56ZV86Y2FzZSBGLmlEZDpjYXNlIEYuQTk5OmNhc2UgRi5yXzE6Y2FzZSBGLmZFTDpjYXNlIEYuUDV5OnZhciBFLEM9ZS5jb252ZXJzYXRpb25JZDtpZihudWxsPT1DKXJldHVybiB0O3ZhciBPPSgoRT17fSlbQ109WHQodFtDXSxlKSxFKTtyZXR1cm4gbmUoe30sdCxPKTtjYXNlIEYuVCQ1OmNhc2UgRi5vX0U6dmFyIEEsST1lLmNvbnZlcnNhdGlvbklkO2lmKHZvaWQgMD09PXRbSV0pcmV0dXJuIHQ7dmFyIGs9KChBPXt9KVtJXT1YdCh0W0ldLGUpLEEpO3JldHVybiBuZSh7fSx0LGspO2Nhc2UgRi51ZlU6dmFyIEwsVD1lLmNvbnZlcnNhdGlvbklkO2lmKHZvaWQgMD09PVQpcmV0dXJuIHQ7dmFyIGo9KChMPXt9KVtUXT1YdCh0W1RdLGUpLEwpO3JldHVybiBuZSh7fSx0LGopO2Nhc2UgRi5zVVM6dmFyIFAsTj1udWxsPT1lfHxudWxsPT0oUD1lLmNvbnZlcnNhdGlvbklkcyk/dm9pZCAwOlAucmVkdWNlKChmdW5jdGlvbihuLHIpe3JldHVybiBuW3JdPVh0KHRbcl0sZSksbn0pLHt9KTtyZXR1cm4gbmUoe30sdCxOKTtjYXNlIEYuZmptOnZhciBNLFI9ZS5jb252ZXJzYXRpb25JZDtpZih2b2lkIDA9PT10W1JdKXJldHVybiB0O3ZhciBVPSgoTT17fSlbUl09WHQodFtSXSxlKSxNKTtyZXR1cm4gbmUoe30sdCxVKTtkZWZhdWx0OnJldHVybiB0fX1mdW5jdGlvbiBhZSgpe3JldHVybiBhZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGFlLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgdWU9T2JqZWN0LmFzc2lnbixzZT17aXNGZXRjaGluZzohMSxpc1VwZGF0aW5nOiExLGZldGNoU3RhdGU6ImFsbCIscmVhZDohMCxpbnRlcmNvbUxpbmtTb2x1dGlvbjoibGl2ZS1jaGF0IixwYXJ0czpbXSxpbnRyb1BhcnRzOltdLHBhcnRpY2lwYW50czpbXSxjb21wb3NlclN0YXRlOnt2aXNpYmxlOiEwLHdvcmtmbG93QWN0aXZlOnZvaWQgMH0sY29tcG9zZXJTdWdnZXN0aW9uczpXdC5uNixib3RJbnRyb0lkOm51bGwsYXJ0aWNsZVVybDpudWxsLGZyb21BcnRpY2xlSWQ6bnVsbCxmcm9tU3RhbmRhbG9uZUFydGljbGU6ITEscHJldmlld1dvcmtmbG93SW5zdGFuY2VJZDp2b2lkIDAscHJldmlld1Jlc29sdXRpb25Cb3RCZWhhdmlvclZlcnNpb25JZDp2b2lkIDAsY3VycmVudENoYW5uZWw6Im1lc3NlbmdlciIsbGFzdFBhcnRDcmVhdGVkQXQ6dm9pZCAwfTt2YXIgY2U9KDAsWi52eSkoc2UsKGZ1bmN0aW9uKHQpe3QuYWRkQ2FzZSgibWVzc2VuZ2VyL2ZldGNoTmV3Q29udmVyc2F0aW9uQ29udGVudC9wZW5kaW5nIiwoZnVuY3Rpb24odCl7dC5pc0ZldGNoaW5nPSEwfSkpLmFkZENhc2UoIm1lc3Nlbmdlci9mZXRjaE5ld0NvbnZlcnNhdGlvbkNvbnRlbnQvZnVsZmlsbGVkIiwoZnVuY3Rpb24odCl7dC5pc0ZldGNoaW5nPSExfSkpLmFkZENhc2UoIm1lc3Nlbmdlci9mZXRjaE5ld0NvbnZlcnNhdGlvbkNvbnRlbnQvcmVqZWN0ZWQiLChmdW5jdGlvbih0KXt0LmlzRmV0Y2hpbmc9ITF9KSkuYWRkRGVmYXVsdENhc2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7c3dpdGNoKHZvaWQgMD09PXQmJih0PXNlKSxlLnR5cGUpe2Nhc2UgRi52eG46cmV0dXJuIHVlKHt9LHQse2RlZmF1bHRNZXNzYWdlOmUuZGVmYXVsdE1lc3NhZ2UsYXJ0aWNsZVVybDplLmFydGljbGVVcmx8fG51bGwsZnJvbUFydGljbGVJZDplLmZyb21BcnRpY2xlSWQsZnJvbVN0YW5kYWxvbmVBcnRpY2xlOmUuZnJvbVN0YW5kYWxvbmVBcnRpY2xlLHBhcnRzOmUucGFydHMmJmUucGFydHMubGVuZ3RoPjA/ZS5wYXJ0czp0LnBhcnRzLGJvdEludHJvSWQ6ZS5hcnRpY2xlVXJsP251bGw6dC5ib3RJbnRyb0lkfSk7Y2FzZSBGLnVfOTpyZXR1cm4gdWUoe30sdCx7YXJ0aWNsZVVybDpudWxsfSk7Y2FzZSBGLlhXbzpjYXNlIEYuSXRsOnZhciBuPWUud2VsY29tZVBhcnRzfHxbXTtuLmxlbmd0aD4wJiYobj1uLm1hcCgoZnVuY3Rpb24odCl7dmFyIG47cmV0dXJuIGFlKHt9LHQse2NyZWF0ZWRBdDoobnVsbD09ZXx8bnVsbD09KG49ZS5wYXJ0KT92b2lkIDA6bi5jcmVhdGVkQXQpfHxuZXcgRGF0ZX0pfSkpKTt2YXIgcj1uLmxlbmd0aD4wP246dC5wYXJ0cztyZXR1cm4gdWUoe30sdCx7dXNlclBhcnRpY2lwYXRlZDplLnR5cGUhPT1GLkl0bCxwYXJ0czpxdChyLGUpfSk7Y2FzZSBGLnpsNjpyZXR1cm4gdWUoe30sdCx7Y29tcG9zZXJTdGF0ZTphZSh7cGxhY2Vob2xkZXI6dC5jb21wb3NlclN0YXRlLnBsYWNlaG9sZGVyfSxlLmNvbXBvc2VyU3RhdGUpfSk7Y2FzZSBGLksyMDp2YXIgbz1udWxsIT1lJiZlLnBhcnRzP2UucGFydHMubWFwKChmdW5jdGlvbihuLHIpe3ZhciBvO3JldHVybiBhZSh7fSxuLHtwYXJ0VHlwZToiYm90X2ludHJvIixjcmVhdGVkQXQ6KG51bGw9PW4/dm9pZCAwOm4uY3JlYXRlZEF0KXx8ZS5jcmVhdGVkQXR9LG51bGwhPShvPXQucGFydHMpJiZudWxsIT0obz1vW3JdKSYmby5jbGllbnRJZD97Y2xpZW50SWQ6dC5wYXJ0c1tyXS5jbGllbnRJZH06e30pfSkpOltdO3JldHVybiBhZSh7fSx0LHtpbnRyb1BhcnRzOm8scGFydHM6byxib3RJbnRyb0lkOmUuZnJvbUNsaWVudE1hdGNoP251bGw6dC5ib3RJbnRyb0lkfSk7Y2FzZSBGLkR6TDpyZXR1cm4gdWUoe30sc2Use2NvbXBvc2VyU3RhdGU6dC5jb21wb3NlclN0YXRlLHByZXZpZXdXb3JrZmxvd0luc3RhbmNlSWQ6dC5wcmV2aWV3V29ya2Zsb3dJbnN0YW5jZUlkLHByZXZpZXdSZXNvbHV0aW9uQm90QmVoYXZpb3JWZXJzaW9uSWQ6dC5wcmV2aWV3UmVzb2x1dGlvbkJvdEJlaGF2aW9yVmVyc2lvbklkLGludHJvUGFydHM6dC5pbnRyb1BhcnRzfHxbXSxwYXJ0czp0LnBhcnRzfHxbXSx0ZWFtSW50cm86dC50ZWFtSW50cm98fCIiLHNwZWNpYWxOb3RpY2U6dC5zcGVjaWFsTm90aWNlfHwiIn0pO2Nhc2UgRi5KJFM6cmV0dXJuIHVlKHt9LHNlLHtjb21wb3NlclN0YXRlOnQuY29tcG9zZXJTdGF0ZSxwcmV2aWV3V29ya2Zsb3dJbnN0YW5jZUlkOnQucHJldmlld1dvcmtmbG93SW5zdGFuY2VJZCxwcmV2aWV3UmVzb2x1dGlvbkJvdEJlaGF2aW9yVmVyc2lvbklkOnQucHJldmlld1Jlc29sdXRpb25Cb3RCZWhhdmlvclZlcnNpb25JZCxpbnRyb1BhcnRzOnQuaW50cm9QYXJ0c3x8W10scGFydHM6dC5pbnRyb1BhcnRzfHxbXSx0ZWFtSW50cm86dC50ZWFtSW50cm98fCIiLHNwZWNpYWxOb3RpY2U6dC5zcGVjaWFsTm90aWNlfHwiIn0pO2Nhc2UgRi51ZlU6cmV0dXJuIHZvaWQgMCE9PWUuY29udmVyc2F0aW9uSWQ/dDp1ZSh7fSx0LHtwYXJ0czpxdCh0LnBhcnRzLGUpfSk7Y2FzZSBGLklLSjpjYXNlIEYuQTk5OmNhc2UgRi5pRGQ6Y2FzZSBGLnJfMTpyZXR1cm4gYWUoe30sdCx7Y29tcG9zZXJTdWdnZXN0aW9uczooMCxXdC5BeSkodC5jb21wb3NlclN1Z2dlc3Rpb25zLGUpfSk7Y2FzZSBGLmxXTzp2YXIgaSxhLHUscyxjLGw9bnVsbD09KGk9dC5wYXJ0cyk/dm9pZCAwOmkuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuImJvdF9pbnRybyI9PT10LnBhcnRUeXBlfSkpO2lmKGwpcmV0dXJuIGFlKHt9LHQse2JvdEludHJvSWQ6KG51bGw9PWV8fG51bGw9PShjPWUuYm90SW50cm8pP3ZvaWQgMDpjLmlkKXx8bnVsbH0pO3ZhciBmLGQ9bnVsbD09KGE9dC5pbnRyb1BhcnRzKT92b2lkIDA6YS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4iYm90X2ludHJvIj09PXQucGFydFR5cGV9KSk7cmV0dXJuIGFlKHt9LHQsZD97cGFydHM6dC5pbnRyb1BhcnRzLGJvdEludHJvSWQ6KG51bGw9PWV8fG51bGw9PShmPWUuYm90SW50cm8pP3ZvaWQgMDpmLmlkKXx8bnVsbH06e3BhcnRzOm51bGwhPWUmJmUuYm90SW50cm8/bnVsbD09ZXx8bnVsbD09KHU9ZS5ib3RJbnRybyk/dm9pZCAwOnUucGFydHMubWFwKChmdW5jdGlvbih0LG4pe3ZhciByO3JldHVybntpZDoiYm90LWludHJvLSIrbixjbGllbnRJZDoiYm90LWludHJvLSIrbixhdXRob3I6bnVsbD09ZXx8bnVsbD09KHI9ZS5ib3RJbnRybyk/dm9pZCAwOnIub3BlcmF0b3IsY3JlYXRlZEF0OmUuY3JlYXRlZEF0P25ldyBEYXRlKGUuY3JlYXRlZEF0KTpuZXcgRGF0ZSxwYXJ0VHlwZToiYm90X2ludHJvIixib2R5OnQsZXZlbnREYXRhOnt9LHJlcGx5T3B0aW9uczpbXSxpc01lc3NhZ2U6ITEsc2VlblN0YXRlOiJub3Qtc2Vlbi15ZXQifX0pKTpbXSxib3RJbnRyb0lkOihudWxsPT1lfHxudWxsPT0ocz1lLmJvdEludHJvKT92b2lkIDA6cy5pZCl8fG51bGx9KTtjYXNlIEYuJEVlOnZhciBwLGgsdix5PW51bGw9PShwPXQucGFydHMpP3ZvaWQgMDpwLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiJib3RfaW50cm8iPT09dC5wYXJ0VHlwZX0pKTtpZih5JiYobnVsbD09ZXx8IWUuZnJvbUNsaWVudE1hdGNoKSlyZXR1cm4gdDt2YXIgZz1udWxsPT0oaD10LmludHJvUGFydHMpP3ZvaWQgMDpoLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiJib3RfaW50cm8iPT09dC5wYXJ0VHlwZX0pKTtyZXR1cm4hZ3x8bnVsbCE9ZSYmZS5mcm9tQ2xpZW50TWF0Y2g/YWUoe30sdCx7Ym90SW50cm9JZDpudWxsLHBhcnRzOm51bGwhPWUmJmUuc3VnZ2VzdGlvblBhcnRzP251bGw9PWV8fG51bGw9PSh2PWUuc3VnZ2VzdGlvblBhcnRzKT92b2lkIDA6di5wYXJ0cy5tYXAoKGZ1bmN0aW9uKG4scil7dmFyIG8saTtyZXR1cm4gYWUoe2lkOiJzdWdnZXN0aW9uLXBhcnRzLSIrcixhdXRob3I6bnVsbD09ZXx8bnVsbD09KG89ZS5zdWdnZXN0aW9uUGFydHMpP3ZvaWQgMDpvLm9wZXJhdG9yLGNyZWF0ZWRBdDplLmNyZWF0ZWRBdCxwYXJ0VHlwZToiYm90X2ludHJvIixib2R5Om4sc2hvd0NyZWF0ZWRBdDohMH0sbnVsbCE9KGk9dC5wYXJ0cykmJm51bGwhPShpPWlbcl0pJiZpLmNsaWVudElkP3tjbGllbnRJZDp0LnBhcnRzW3JdLmNsaWVudElkfTp7fSl9KSk6W119KTphZSh7fSx0LHtwYXJ0czp0LmludHJvUGFydHN9KTtjYXNlIEYuSFRQOnJldHVybiBhZSh7fSx0LHtwcmV2aWV3V29ya2Zsb3dJbnN0YW5jZUlkOmUud29ya2Zsb3dJbnN0YW5jZUlkLHByZXZpZXdSZXNvbHV0aW9uQm90QmVoYXZpb3JWZXJzaW9uSWQ6ZS5yZXNvbHV0aW9uQm90QmVoYXZpb3JWZXJzaW9uSWR9KTtjYXNlIEYucGlJOnJldHVybiBhZSh7fSx0LHt0ZWFtSW50cm86ZS50ZWFtSW50cm99KTtjYXNlIEYueFUzOnJldHVybiBhZSh7fSx0LHtzcGVjaWFsTm90aWNlOmUuc3BlY2lhbE5vdGljZX0pO2RlZmF1bHQ6cmV0dXJuIHR9fSh0LGUpfSkpfSkpLGxlPXtzdXBwcmVzczp7fSxmb3JjZVNuaXBwZXQ6e319O3ZhciBmZT1PYmplY3QuYXNzaWduLGRlPXtpc1NhdmluZzohMSxzaG93RXJyb3JNZXNzYWdlOiExLGVycm9yTWVzc2FnZTpudWxsfTt2YXIgcGU9T2JqZWN0LmFzc2lnbixoZT17aXNJbnN0YWxsTW9kZU9wZW46ITEsaW5zdGFsbE1vZGVDb25maWc6e2FjdGl2ZVN1YnNjcmlwdGlvbjohMSx1c2VySGFzaFZlcmlmaWVkOiExLHNlY3VyZUluc3RhbGxWMjohMSxtZXNzZW5nZXJFbmFibGVkRm9yVmlzaXRvcnM6ITAsbWVzc2VuZ2VyRW5hYmxlZEZvclVzZXJzOiEwfX07dmFyIHZlPU9iamVjdC5hc3NpZ24seWU9e2lzRmV0Y2hpbmc6ITEsZ2lmczpbXSxmZXRjaGluZ0ZhaWxlZDohMSxzZWFyY2hUZXJtOm51bGx9O3ZhciBnZT1uKDY2ODM4KSxtZT1PYmplY3QuYXNzaWduLGJlPXtpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZUVuYWJsZWQ6ITEsaXNMYXVuY2hlckRpc2NvdmVyeU1vZGVPcGVuaW5nOiExLGlzTGF1bmNoZXJEaXNjb3ZlcnlNb2RlQ2xvc2luZzohMSxoYXNEaXNjb3ZlcmVkTGF1bmNoZXI6ITF9O2Z1bmN0aW9uIHdlKHQpe3ZhciBlPXQuYXBwLG49ZS5mZWF0dXJlcyxyPWUuaW5ib3VuZENvbnZlcnNhdGlvbnNEaXNhYmxlZCxvPWUub2ZmaWNlSG91cnNSZXNwb25zZSxpPXQuY2xpZW50c2lkZVJ1bGVzZXRDb25kaXRpb25zO3JldHVybiJ2aXNpdG9yIj09PXQucm9sZSYmKCEhbi5maW5MYXVuY2hlckRpc2NvdmVyeU1vZGV8fCEhbi5sYXVuY2hlckRpc2NvdmVyeU1vZGUmJighciYmKCEhKDAsZ2UuSSkoaSkmJm51bGw9PW8pKSl9dmFyIF9lPW4oMzUzMSksU2U9big0NTQ5Nik7ZnVuY3Rpb24geGUoKXtyZXR1cm4geGU9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSx4ZS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIEVlPXt9O2Z1bmN0aW9uIENlKHQsZSl7dmFyIG49eGUoe30sdCk7cmV0dXJuIG5bZV18fChuW2VdPXt9KSxufWZ1bmN0aW9uIE9lKHQsZSxuKXt2YXIgcjtpZihudWxsIT0ocj10LmNhcmQpJiZudWxsIT0ocj1yLmNhbnZhcy5jb250ZW50KSYmci5jb21wb25lbnRzKXt2YXIgbz0oMCxTZS5ZSSkoZSx0LmNhcmQuY2FudmFzLmNvbnRlbnQuY29tcG9uZW50cyxuKTtvJiYodC5jYXJkLmNhbnZhcy5jb250ZW50LmNvbXBvbmVudHM9byl9fWZ1bmN0aW9uIEFlKCl7cmV0dXJuIEFlPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sQWUuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBJZT17aXNPcGVuOiExLGlzU2hlZXRzRGF0YUxvYWRpbmc6ITEsaXNTaGVldHNEYXRhTG9hZGVkOiExLGlzUHJveHlMb2FkZWQ6ITEsaXNOYXZpZ2F0aW5nOiExLHNvdXJjZUNhcmQ6bnVsbCxkYXRhOm51bGwsdXJsOm51bGwsc2hlZXRUaXRsZToiIn07ZnVuY3Rpb24ga2UoKXtyZXR1cm4ga2U9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxrZS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIExlPXtjb21wb3Nlckhhc0NvbnRlbnQ6ITEsbGFzdENvbXBvc2VyRXZlbnQ6MCxsYXN0QXJ0aWNsZUNsb3NlZEF0Om51bGwsY29udmVyc2F0aW9uSWRPZkxhc3RWaWV3ZWRBcnRpY2xlOm51bGwsY2xpZW50c2lkZVJ1bGVzZXRDb25kaXRpb25zOm51bGwsbGFzdFRyaWdnZXJUcmFuc2l0aW9uVGltZXN0YW1wOm51bGwsdXNlckNyZWF0ZWRDb252ZXJzYXRpb25BdDpudWxsfTtmdW5jdGlvbiBUZSgpe3JldHVybiBUZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LFRlLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgamU9e2lzU2hvd246ITEsYWxlcnRUeXBlOnZvaWQgMCxhbGVydFBheWxvYWQ6dm9pZCAwfTtmdW5jdGlvbiBQZSgpe3JldHVybiBQZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LFBlLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgTmU9e307ZnVuY3Rpb24gTWUoKXtyZXR1cm4gTWU9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxNZS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFJlPXt0YWJOYXZpZ2F0aW9uOiExLGFjY2Vzc2liaWxpdHlUaGVtZToiZGVmYXVsdCIsc2Vjb25kYXJ5QWNjZXNzaWJpbGl0eVRoZW1lOiJsaWdodCIsaXNNb2RhbE9wZW46ITF9O2Z1bmN0aW9uIFVlKCl7cmV0dXJuIFVlPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sVWUuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciB6ZT17aXNGZXRjaGluZzohMSxpc0ZldGNoZWQ6ITEsaXNQcmV2aWV3aW5nOiExLGZldGNoaW5nRmFpbGVkOiExLGFjdGl2ZVRvdXI6dm9pZCAwLHVwZGF0ZUZhaWxlZDohMSx2aWRlb0F1ZGlvTXV0ZWQ6ITAsdXNlckhhc0ludGVyYWN0ZWRXaXRoVmlkZW86ITEsZW5kVG91ckFuaW1hdGlvbjoiIixpc0F3YWl0aW5nUHJvZ3Jlc3M6ITF9O2Z1bmN0aW9uIEhlKCl7cmV0dXJuIEhlPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sSGUuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBGZT17dHJpZ2dlcnM6e30sYWN0aXZlOm51bGwsZmFpbGVkOiExfTt2YXIgRGU9big4NDk5MCk7ZnVuY3Rpb24gQmUodCxlLG4pe2lmKGUmJiFBcnJheS5pc0FycmF5KGUpJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXt2YXIgcj1lLmxlbmd0aDtyZXR1cm4gR2UoZSx2b2lkIDAhPT1uJiZuPHI/bjpyKX1yZXR1cm4gdChlLG4pfWZ1bmN0aW9uIFZlKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBHZSh0KX0odCl8fGZ1bmN0aW9uKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fGZ1bmN0aW9uKHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBHZSh0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9HZSh0LGUpOnZvaWQgMH19KHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEdlKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn1mdW5jdGlvbiBxZSgpe3JldHVybiBxZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LHFlLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgV2U9e2FsbFN1Z2dlc3Rpb25zOltdLGlzRGlzbWlzc2VkOiExLHNlcnZlclNpZGVTdWdnZXN0aW9uczpudWxsLHByZXZpZXdTdWdnZXN0aW9uczpudWxsfTt2YXIgS2U9KDAsWi5aMCkoe25hbWU6ImJhbm5lcnMiLGluaXRpYWxTdGF0ZTpbXSxyZWR1Y2Vyczp7fSxleHRyYVJlZHVjZXJzOmZ1bmN0aW9uKHQpe3QuYWRkTWF0Y2hlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZT09PUYuQTBGfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuYmFubmVycz9lLmJhbm5lcnM6dH0pKSx0LmFkZE1hdGNoZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGU9PT1GLmR4en0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmJhbm5lcklkJiZlLnJlYWN0aW9uP3QubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nKHQuYmFubmVyX2lkKT09PVN0cmluZyhlLmJhbm5lcklkKT9PYmplY3QuYXNzaWduKHt9LHQse3NlbGVjdGVkX3JlYWN0aW9uOmUucmVhY3Rpb259KTp0fSkpOnR9KSl9fSkucmVkdWNlcjtmdW5jdGlvbiBaZSgpe3JldHVybiBaZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LFplLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgSmU9e2NvbnRlbnQ6bnVsbH07ZnVuY3Rpb24gWWUoKXtyZXR1cm4gWWU9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxZZS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFFlPXtjb21wb3NlclN1Z2dlc3Rpb25zOm51bGx9LFhlPW4oNDQzNDEpLCRlPW4oMTI5NTIpO2Z1bmN0aW9uIHRuKCl7cmV0dXJuIHRuPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sdG4uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBlbj17aXNBY3RpdmU6ITF9LG5uPW4oNTEwMzUpO2Z1bmN0aW9uIHJuKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBvbih0KX0odCl8fGZ1bmN0aW9uKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fGZ1bmN0aW9uKHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBvbih0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9vbih0LGUpOnZvaWQgMH19KHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIG9uKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn1mdW5jdGlvbiBhbigpe3JldHVybiBhbj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGFuLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgdW49e3R5cGU6bnVsbCxtZXRhZGF0YTp7fSxsYXN0T3BlbkF0VGltZXN0YW1wOjB9O2Z1bmN0aW9uIHNuKCl7cmV0dXJuIHNuPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sc24uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBjbj17aXNPcGVuOiExLGlzRmV0Y2hpbmc6ITAsZmV0Y2hlZENvbGxlY3Rpb25zOiExLGZldGNoaW5nRmFpbGVkOiExLHBocmFzZToiIixzZWFyY2hSZXN1bHRzOltdLHNob3dTZWFyY2hSZXN1bHRzOiExLGhhc1NlYXJjaFJlc3VsdHM6ITEscm91dGVkVG9OZXdDb252ZXJzYXRpb246ITEsaW1tZWRpYXRlU2VhcmNoOiExLGhpZGVSZXN1bHRzV2l0aERlbGF5OiExLGNsb3NlVHJhbnNpdGlvbkVuZGVkOiEwLHNlYXJjaGVkUGhyYXNlOiIiLGhhc1ZpZXdlZEFuQXJ0aWNsZTohMSxza2lwT3BlbkFuaW1hdGlvbjohMSxpc1ZpZXdpbmdBcnRpY2xlOiExLGlzU2VhcmNoRm9jdXNlZDohMSxpc0ZldGNoaW5nU2VhcmNoUmVzdWx0czohMX07dmFyIGxuPW4oMTgwMzQpO2Z1bmN0aW9uIGZuKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBkbih0KX0odCl8fGZ1bmN0aW9uKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fGZ1bmN0aW9uKHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBkbih0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9kbih0LGUpOnZvaWQgMH19KHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGRuKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn12YXIgcG49W107ZnVuY3Rpb24gaG4odCxlLG4pe2lmKGUmJiFBcnJheS5pc0FycmF5KGUpJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXt2YXIgcj1lLmxlbmd0aDtyZXR1cm4geW4oZSx2b2lkIDAhPT1uJiZuPHI/bjpyKX1yZXR1cm4gdChlLG4pfWZ1bmN0aW9uIHZuKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB5bih0KX0odCl8fGZ1bmN0aW9uKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fGZ1bmN0aW9uKHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB5bih0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT95bih0LGUpOnZvaWQgMH19KHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHluKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn1mdW5jdGlvbiBnbigpe3JldHVybiBnbj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGduLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBtbih0LGUsbil7aWYoZSYmIUFycmF5LmlzQXJyYXkoZSkmJiJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpe3ZhciByPWUubGVuZ3RoO3JldHVybiB3bihlLHZvaWQgMCE9PW4mJm48cj9uOnIpfXJldHVybiB0KGUsbil9ZnVuY3Rpb24gYm4odCl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHduKHQpfSh0KXx8ZnVuY3Rpb24odCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPXRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9dFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHQpfSh0KXx8ZnVuY3Rpb24odCxlKXtpZih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHduKHQsZSk7dmFyIG49e30udG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbSh0KToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP3duKHQsZSk6dm9pZCAwfX0odCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gd24odCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfWZ1bmN0aW9uIF9uKCl7cmV0dXJuIF9uPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sX24uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBTbj1bXTt2YXIgeG49big2NWUzKSxFbj1uKDYzNzk4KTtmdW5jdGlvbiBDbigpe3JldHVybiBDbj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LENuLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgT249e307dmFyIEFuPW4oNzI5MCk7ZnVuY3Rpb24gSW4oKXtyZXR1cm4gSW49T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxJbi5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24ga24odCxlLG4pe2lmKGUmJiFBcnJheS5pc0FycmF5KGUpJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXt2YXIgcj1lLmxlbmd0aDtyZXR1cm4gVG4oZSx2b2lkIDAhPT1uJiZuPHI/bjpyKX1yZXR1cm4gdChlLG4pfWZ1bmN0aW9uIExuKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBUbih0KX0odCl8fGZ1bmN0aW9uKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fGZ1bmN0aW9uKHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBUbih0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9Ubih0LGUpOnZvaWQgMH19KHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIFRuKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn12YXIgam49T2JqZWN0LmFzc2lnbjtmdW5jdGlvbiBQbigpe3JldHVybiBQbj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LFBuLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgTm49e2FjdGl2ZU5ld3NJdGVtOm51bGwsZGV0YWlsc0ZldGNoaW5nU3RhdHVzOkFuLm41Lm5vdFN0YXJ0ZWR9O3ZhciBNbj1uKDkxMDYyKSxSbj1uKDg5NTMpO2Z1bmN0aW9uIFVuKCl7cmV0dXJuIFVuPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sVW4uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciB6bj17aXNCb290ZWQ6ITEsaXNUb29sdGlwUHJldmlldzohMX07ZnVuY3Rpb24gSG4oKXtyZXR1cm4gSG49T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxIbi5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRm4odCxlLG4pe2lmKGUmJiFBcnJheS5pc0FycmF5KGUpJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXt2YXIgcj1lLmxlbmd0aDtyZXR1cm4gVm4oZSx2b2lkIDAhPT1uJiZuPHI/bjpyKX1yZXR1cm4gdChlLG4pfWZ1bmN0aW9uIERuKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBWbih0KX0odCl8fGZ1bmN0aW9uKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fEJuKHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEJuKHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBWbih0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9Wbih0LGUpOnZvaWQgMH19ZnVuY3Rpb24gVm4odCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfXZhciBHbj1bXTtmdW5jdGlvbiBxbigpe3JldHVybiBxbj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LHFuLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgV249e2N1cnJlbnRseVJlc29sdmluZ1Rhc2tJZDpudWxsLG9wZW5DaGVja2xpc3RQcm9ncmVzc0lkOm51bGx9O3ZhciBLbj1uKDY0ODA3KSxabj1uKDI3NjU2KTtmdW5jdGlvbiBKbigpe3JldHVybiBKbj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LEpuLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIgWW49e30sUW49ZnVuY3Rpb24odCxlKXtzd2l0Y2godm9pZCAwPT09dCYmKHQ9WW4pLGUudHlwZSl7Y2FzZSBGLlQkNTp2YXIgbixyPWUuY29udmVyc2F0aW9uSWQsbz1Kbih7fSx0LCgobj17fSlbcl09ZnVuY3Rpb24odCxlKXtpZih2b2lkIDA9PT10JiYodD17fSksZS50eXBlPT09Ri5UJDUpe3ZhciBuPWUubGFzdEFjdGl2ZUF0LHI9ZS5maXJzdE5hbWUsbz1lLmF2YXRhclVybCxpPWUuYWRtaW5JZCxhPWUuaXNCb3Q7cmV0dXJue2lkOmksbGFzdEFjdGl2ZUF0Om4sZmlyc3ROYW1lOnIsYXZhdGFyOntzcXVhcmUxMjg6byxzaGFwZTphPyJzcXVpcmNsZSI6bnVsbH0saXNCb3Q6YSxoYXNBSTplLmhhc0FJLHNob3dBdmF0YXI6ZS5zaG93QXZhdGFyLGxvYWRpbmdTdGF0dXM6ZS5sb2FkaW5nU3RhdHVzLGNsaWVudElkOmUuY2xpZW50SWR8fHQuY2xpZW50SWR9fXJldHVybiB0fSh0W3JdLGUpLG4pKTtyZXR1cm4gbztjYXNlIEYuYWxNOmNhc2UgRi5BZEw6dmFyIGksYSx1PWUuY29udmVyc2F0aW9uSWQscz10W3VdO3JldHVybiBlLnR5cGU9PT1GLkFkTCYmImJvdF9pbnRybyI9PT0obnVsbD09KGk9ZS5wYXJ0KT92b2lkIDA6aS5wYXJ0VHlwZSk/dDpzP0puKHt9LHQsKChhPXt9KVt1XT12b2lkIDAsYSkpOnQ7ZGVmYXVsdDpyZXR1cm4gdH19O2Z1bmN0aW9uIFhuKCl7cmV0dXJuIFhuPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sWG4uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciAkbj0oMCxaLlowKSh7bmFtZToib25ib2FyZGluZ1BsYW4iLGluaXRpYWxTdGF0ZTp7cGxhbkRhdGE6bnVsbCxpc0xvYWRpbmc6ITEsaGFzRmV0Y2hlZDohMX0scmVkdWNlcnM6e30sZXh0cmFSZWR1Y2VyczpmdW5jdGlvbih0KXt0LmFkZE1hdGNoZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGU9PT1GLnljUX0pLChmdW5jdGlvbih0LGUpe3ZhciBuLHI7bnVsbCE9PWUucGxhbkRhdGEmJnQucGxhbkRhdGEmJihuPWUucGxhbkRhdGEudXBkYXRlZF9hdCxyPXQucGxhbkRhdGEudXBkYXRlZF9hdCwhbnx8ciYmIShuPj1yKSl8fCh0LnBsYW5EYXRhPWUucGxhbkRhdGEpLHQuaGFzRmV0Y2hlZD0hMH0pKSx0LmFkZE1hdGNoZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGU9PT1GLmtZTn0pLChmdW5jdGlvbih0LGUpe3QuaXNMb2FkaW5nPWUuaXNMb2FkaW5nfSkpfX0pLnJlZHVjZXIsdHI9KDAsWi5aMCkoe25hbWU6ImRldk92ZXJyaWRlcyIsaW5pdGlhbFN0YXRlOntmb3JjZVJ0bDohMX0scmVkdWNlcnM6e3NldEZvcmNlUnRsOmZ1bmN0aW9uKHQsZSl7dC5mb3JjZVJ0bD1lLnBheWxvYWR9fX0pLGVyPSh0ci5hY3Rpb25zLnNldEZvcmNlUnRsLHRyLnJlZHVjZXIpLG5yPW4oNDYxNjcpLHJyPW4oODM3NCksb3I9KDAsSi5IWSkoe2FwcDpZLkF5LGV4cGVjdGF0aW9uU2V0dGluZzpRLkF5LGNocm9tZTpmdW5jdGlvbih0LGUpe3ZhciBuO3N3aXRjaCh2b2lkIDA9PT10JiYodD17c2hvdWxkRXhwYW5kOihuPVguTC5nZXQodHQpLCFufHwhIUpTT04ucGFyc2UobikpLGV4cGFuc2lvblRyYW5zaXRpb25Db21wbGV0ZTohMSx3YXNFeHBsaWNpdGx5Q2hhbmdlZDohMSxhdXRvRXhwYW5kZWRCeUNvbnRlbnQ6ITF9KSxlLnR5cGUpe2Nhc2UgRi52JGw6cmV0dXJuIFguTC5zZXQodHQsSlNPTi5zdHJpbmdpZnkoZS5zaG91bGRFeHBhbmQpKSxldCh7fSx0LHtzaG91bGRFeHBhbmQ6ZS5zaG91bGRFeHBhbmQsd2FzRXhwbGljaXRseUNoYW5nZWQ6ITAsYXV0b0V4cGFuZGVkQnlDb250ZW50OiExfSk7Y2FzZSBGLnNrNTp2YXIgcjtyZXR1cm4gJCh7fSx0LHthdXRvRXhwYW5kZWRCeUNvbnRlbnQ6bnVsbCE9KHI9ZS5hdXRvRXhwYW5kKSYmcn0pO2Nhc2UgRi5VQzk6cmV0dXJuICQoe30sdCx7ZXhwYW5zaW9uVHJhbnNpdGlvbkNvbXBsZXRlOiEwfSk7ZGVmYXVsdDpyZXR1cm4gdH19LGxhdW5jaGVyOmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHZvaWQgMD09PXQmJih0PXJ0KSxlLnR5cGUpe2Nhc2UgRi5rZmY6dmFyIG49ZS5sYXVuY2hlckVuYWJsZWRPdmVycmlkZSYmIm5vdC1wcmVzZW50IiE9PWUubGF1bmNoZXJFbmFibGVkT3ZlcnJpZGU/ZS5sYXVuY2hlckVuYWJsZWRPdmVycmlkZTp0LmxhdW5jaGVyRW5hYmxlZE92ZXJyaWRlO3JldHVybiBudCh7fSx0LHtsYXVuY2hlckVuYWJsZWRPdmVycmlkZTpufSk7Y2FzZSBGLlJ3cTppZighZS51c2VyLmxhdW5jaGVyU2V0dGluZ3MpcmV0dXJuIHQ7dmFyIHI9ZS51c2VyLmxhdW5jaGVyU2V0dGluZ3Muc2hvd0xhdW5jaGVyO3JldHVybiBudCh7fSx0LHtpc0xhdW5jaGVyRW5hYmxlZDpyfSk7Y2FzZSBGLm9KdTpyZXR1cm4gZS5pc0lkZW50aXR5VmVyaWZpY2F0aW9uRXJyb3I/bnQoe30sdCx7aXNMYXVuY2hlckVuYWJsZWQ6ITF9KTp0O2Nhc2UgUy50ei50eXBlOnZhciBvPWUucGF5bG9hZC5zaG93TGF1bmNoZXI7cmV0dXJuIG50KHt9LHQse2lzTGF1bmNoZXJFbmFibGVkOm99KTtjYXNlIEYucjJ4OnJldHVybiBudCh7fSx0LGUuc3RhdGUubGF1bmNoZXIpO2RlZmF1bHQ6cmV0dXJuIHR9fSxib3RJbnRybzpmdW5jdGlvbih0LGUpe2lmKHZvaWQgMD09PXQmJih0PWx0KSxlLnR5cGU9PT1GLmxUbCl7dmFyIG49ZS5ib3RJbnRybztyZXR1cm4gY3Qoe30sdCxuP3tpZDpuLmlkLHBhcnRzOm4ucGFydHMsb3BlcmF0b3I6bi5vcGVyYXRvcn06bHQpfXJldHVybiB0fSx1c2VyOnV0LHNlc3Npb246ZnVuY3Rpb24odCxlKXtzd2l0Y2godm9pZCAwPT09dCYmKHQ9bnVsbCksZS50eXBlKXtjYXNlIEYuUDJJOnZhciBuPWUuc2Vzc2lvbixyPW4uYXBwSWQsbz1uLnVzZXJJZCxpPW4uZW1haWwsYT1uLnVzZXJIYXNoLHU9bi5pbnRlcmNvbVVzZXJKd3Qscz1uLmFub255bW91c0lkLGM9bi5hbm9ueW1vdXNTZXNzaW9uLGw9bi5zZXNzaW9uSWQsZj1uLm1lc3NlbmdlclN0eWxlSWQ7cmV0dXJuIHN0KHt9LHQse2FwcElkOnIsdXNlcklkOm8sZW1haWw6aSx1c2VySGFzaDphLGludGVyY29tVXNlckp3dDp1LGFub255bW91c0lkOnMsYW5vbnltb3VzU2Vzc2lvbjpjLHNlc3Npb25JZDpsLG1lc3NlbmdlclN0eWxlSWQ6Zn0pO2Nhc2UgRi5Sd3E6dmFyIGQscCxoPWUudXNlcix2PWguYW5vbnltb3VzSWQseT1oLmFub255bW91c1Nlc3Npb24sZz1oLmFjdGl2ZUNvbXBhbnlJZCxtPWgubmV3U2Vzc2lvbixiPWguc2Vzc2lvbkV4cGlyeTtyZXR1cm4gc3Qoe30sdCx7YW5vbnltb3VzSWQ6dnx8KG51bGw9PShkPXQpP3ZvaWQgMDpkLmFub255bW91c0lkKSxhbm9ueW1vdXNTZXNzaW9uOnl8fChudWxsPT0ocD10KT92b2lkIDA6cC5hbm9ueW1vdXNTZXNzaW9uKSxhY3RpdmVDb21wYW55SWQ6ZyxuZXdTZXNzaW9uOm0sc2Vzc2lvbkV4cGlyeTpifSk7Y2FzZSBGLnFqUzpyZXR1cm4gbnVsbDtjYXNlIEYuaXhqOnJldHVybiBzdCh7fSx0LHthdXRoVG9rZW5zOmUuYXV0aFRva2Vuc30pO2Nhc2UgRi5vSzM6cmV0dXJuIHN0KHt9LHQse2Fub255bW91c1Nlc3Npb246ZS5hbm9ueW1vdXNTZXNzaW9ufSk7Y2FzZSBGLl9iUzpyZXR1cm4gc3Qoe30sdCx7ZGlkVXNlclN1cHBseUVtYWlsOiEwfSk7Y2FzZSBGLkpfNzpyZXR1cm4gc3Qoe30sdCx7aGVscENlbnRlclNlc3Npb246ZS5oZWxwQ2VudGVyU2Vzc2lvbn0pO2Nhc2UgRi5vUDk6cmV0dXJuIHN0KHt9LHQse2Fub255bW91c1Nlc3Npb246ZS5hbm9ueW1vdXNTZXNzaW9uLHNlc3Npb25FeHBpcnk6ZS5zZXNzaW9uRXhwaXJ5fSk7ZGVmYXVsdDpyZXR1cm4gdH19LG9wZW5PbkJvb3Q6ZnVuY3Rpb24odCxlKXt2YXIgbjtpZih2b2lkIDA9PT10JiYodD11biksby5VYy5tYXRjaChlKSl7dmFyIHIsaSxhLHUscyxjPWFuKHt9LHQpLGw9ZS5wYXlsb2FkLmxvY2F0aW9uLnBhdGhuYW1lLGY9bnVsbD09KHI9L15cL3Rhc2tzXC9jaGVja2xpc3RzXC8oXGQrKS8uZXhlYyhsKSk/dm9pZCAwOnJbMV07Zj8oKDAsbm4uc3YpKCJwdXNoIGNoZWNrbGlzdCBwcm9ncmVzcyAiK2YrIiB0byBvcGVuT25Cb290IiksYy50eXBlPW5uLlpOLGMubWV0YWRhdGE9e2NoZWNrbGlzdFByb2dyZXNzSWQ6Zn0pOihudWxsPT0oaT10KT92b2lkIDA6aS50eXBlKT09PW5uLlpOJiYoKDAsbm4uc3YpKCJjbGVhciBjaGVja2xpc3QgcHJvZ3Jlc3MgZnJvbSBvcGVuT25Cb290IHdpdGggaW5jb21pbmcgcGF0aCAiK2wpLGMudHlwZT1udWxsLGMubWV0YWRhdGE9e30pO3ZhciBkPW51bGw9PShhPS9eXC9tZXNzYWdlc1wvY29udmVyc2F0aW9uXC8oXGQrfG5ldykvLmV4ZWMobCkpP3ZvaWQgMDphWzFdO2lmKCJuZXciPT09ZCkoMCxubi5zdikoInB1c2ggbmV3IGNvbnZlcnNhdGlvbiB0byBvcGVuT25Cb290IiksYy50eXBlPW5uLkJyLGMubWV0YWRhdGE9e307ZWxzZSBpZihkKXsoMCxubi5zdikoInB1c2ggY29udmVyc2F0aW9uICIrZCsiIHRvIG9wZW5PbkJvb3QiKTt2YXIgcD1uZXcgVVJMU2VhcmNoUGFyYW1zKGUucGF5bG9hZC5sb2NhdGlvbi5zZWFyY2gpLmdldCgidmlzaWJpbGl0eSIpO2MudHlwZT1ubi55RSxjLm1ldGFkYXRhPXA/e2NvbnZlcnNhdGlvbklkOmQsdmlzaWJpbGl0eTpwfTp7Y29udmVyc2F0aW9uSWQ6ZH19ZWxzZShudWxsPT0odT10KT92b2lkIDA6dS50eXBlKSE9PW5uLnlFJiYobnVsbD09KHM9dCk/dm9pZCAwOnMudHlwZSkhPT1ubi5Ccnx8KCgwLG5uLnN2KSgiY2xlYXIgY29udmVyc2F0aW9uIGZyb20gb3Blbk9uQm9vdCB3aXRoIGluY29taW5nIHBhdGggIitsKSxjLnR5cGU9bnVsbCxjLm1ldGFkYXRhPXt9KTtyZXR1cm4gYy5sYXN0T3BlbkF0VGltZXN0YW1wPURhdGUubm93KCksY31zd2l0Y2goZS50eXBlKXtjYXNlIEYublEwOnJldHVybiBlLnBlcnNpc3RTdGF0ZXx8dC5tZXRhZGF0YS5pc1ZpZXdpbmdBcnRpY2xlP2FuKHt9LHQse2xhc3RPcGVuQXRUaW1lc3RhbXA6RGF0ZS5ub3coKX0pOigoMCxubi5zdikoImNsZWFyIG9wZW5PbkJvb3Qgc3RhdGUgd2l0aCBhY3Rpb24gIitlLnR5cGUpLHVuKTtjYXNlIG5uLnZuOnJldHVybiBhbih7fSx0LHtsYXN0T3BlbkF0VGltZXN0YW1wOkRhdGUubm93KCl9KTtjYXNlIEYudV85OmNhc2UgRi5oZ3E6Y2FzZSBGLkd2WjpjYXNlIEYucWpTOnJldHVybigwLG5uLnN2KSgiY2xlYXIgb3Blbk9uQm9vdCBzdGF0ZSB3aXRoIGFjdGlvbiAiK2UudHlwZSksdW47Y2FzZSBGLndBczpyZXR1cm4gZS5pZENoYW5nZWQ/KCgwLG5uLnN2KSgiY2xlYXIgb3Blbk9uQm9vdCBzdGF0ZSB3aXRoIGFjdGlvbiAiK2UudHlwZSksdW4pOnQ7Y2FzZSBGLnBTSzppZigiYXJ0aWNsZS1saW5rIj09PWUuY29tcG9uZW50SWQpe3ZhciBoPWFuKHt9LHQpO3JldHVybnt0eXBlOiJhcnRpY2xlIixtZXRhZGF0YTp7dXJsOmUudXJsLGNhcmRVcmk6ZS5jYXJkVXJpLGNvbXBvbmVudElkOmUuY29tcG9uZW50SWQscHJldmlvdXNTdGF0ZTpofSxsYXN0T3BlbkF0VGltZXN0YW1wOkRhdGUubm93KCl9fXJldHVybiB0O2Nhc2UgRi5scGU6cmV0dXJuIG51bGwhPShuPXQubWV0YWRhdGEpJiZuLnByZXZpb3VzU3RhdGU/YW4oe30sdC5tZXRhZGF0YS5wcmV2aW91c1N0YXRlKTp1bjtjYXNlIEYuU2NROnZhciB2LHk9dC5tZXRhZGF0YSxnPXkuYXJ0aWNsZUlkcyxtPXkuYXJ0aWNsZUxhbmd1YWdlcyxiPXZvaWQgMD09PW0/e306bSx3PWc/W10uY29uY2F0KGZ1bmN0aW9uKHQsZSxuKXtpZihlJiYhQXJyYXkuaXNBcnJheShlKSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aCl7dmFyIHI9ZS5sZW5ndGg7cmV0dXJuIG9uKGUsdm9pZCAwIT09biYmbjxyP246cil9cmV0dXJuIHQoZSxuKX0ocm4sZyksW2UuYXJ0aWNsZUlkXSkuZmlsdGVyKEJvb2xlYW4pOltlLmFydGljbGVJZF0uZmlsdGVyKEJvb2xlYW4pLF89ZS5sYW5nP2FuKHt9LGIsKCh2PXt9KVtlLmFydGljbGVJZF09ZS5sYW5nLHYpKTpiO2lmKCFlLmZyb21Ccm93c2VNb2RlKXt2YXIgUz1hbih7fSx0Lm1ldGFkYXRhLHthcnRpY2xlSWRzOncsb3BlbkFydGljbGVTdGFuZGFsb25lOiEwfSk7cmV0dXJuIE9iamVjdC5rZXlzKF8pLmxlbmd0aD4wJiYoUy5hcnRpY2xlTGFuZ3VhZ2VzPV8pLGFuKHt9LHQse21ldGFkYXRhOlMsbGFzdE9wZW5BdFRpbWVzdGFtcDpEYXRlLm5vdygpfSl9dmFyIHg9e2FydGljbGVJZHM6d307cmV0dXJuIE9iamVjdC5rZXlzKF8pLmxlbmd0aD4wJiYoeC5hcnRpY2xlTGFuZ3VhZ2VzPV8pLHt0eXBlOiJzZWFyY2hfYnJvd3NlX2FydGljbGUiLG1ldGFkYXRhOngsbGFzdE9wZW5BdFRpbWVzdGFtcDpEYXRlLm5vdygpfTtjYXNlIEYuT1p5OnZhciBFLEM7aWYoInNlYXJjaF9icm93c2VfYXJ0aWNsZSI9PT10LnR5cGUmJm51bGwhPShFPXQubWV0YWRhdGEpJiZFLmFydGljbGVJZHMmJihudWxsPT0oQz10Lm1ldGFkYXRhKXx8bnVsbD09KEM9Qy5hcnRpY2xlSWRzKT92b2lkIDA6Qy5sZW5ndGgpPjEpe3ZhciBPPXthcnRpY2xlSWRzOnQubWV0YWRhdGEuYXJ0aWNsZUlkcy5zbGljZSgwLHQubWV0YWRhdGEuYXJ0aWNsZUlkcy5sZW5ndGgtMSl9O3JldHVybiB0Lm1ldGFkYXRhLmFydGljbGVMYW5ndWFnZXMmJk9iamVjdC5rZXlzKHQubWV0YWRhdGEuYXJ0aWNsZUxhbmd1YWdlcykubGVuZ3RoPjAmJihPLmFydGljbGVMYW5ndWFnZXM9dC5tZXRhZGF0YS5hcnRpY2xlTGFuZ3VhZ2VzKSx7dHlwZToic2VhcmNoX2Jyb3dzZV9hcnRpY2xlIixtZXRhZGF0YTpPLGxhc3RPcGVuQXRUaW1lc3RhbXA6RGF0ZS5ub3coKX19cmV0dXJuIHVuO2Nhc2Ugbm4uQ0M6cmV0dXJue3R5cGU6bm4uQ0MsbWV0YWRhdGE6e2FydGljbGVJZHM6W2UuYXJ0aWNsZUlkXSxvcGVuQXJ0aWNsZVN0YW5kYWxvbmU6ITB9LGxhc3RPcGVuQXRUaW1lc3RhbXA6RGF0ZS5ub3coKX07Y2FzZSBGLnIyeDpyZXR1cm4gYW4oe30sdCxlLnN0YXRlLm9wZW5PbkJvb3QpO2RlZmF1bHQ6cmV0dXJuIHR9fSxvcGVyYXRvcjpmdW5jdGlvbih0LGUpe3N3aXRjaCh2b2lkIDA9PT10JiYodD1MZSksZS50eXBlKXtjYXNlIEYudnhuOmNhc2UgRi5FbVg6cmV0dXJuIGtlKHt9LHQse2xhc3RBcnRpY2xlQ2xvc2VkQXQ6bnVsbCxjb252ZXJzYXRpb25JZE9mTGFzdFZpZXdlZEFydGljbGU6bnVsbH0pO2Nhc2UgRi5JS0o6cmV0dXJuIGtlKHt9LHQse2xhc3RDb21wb3NlckV2ZW50OmUubGFzdEFjdGl2ZUF0LmdldFRpbWUoKSxjb21wb3Nlckhhc0NvbnRlbnQ6IiIhPT1lLmNvbXBvc2VyQ29udGVudH0pO2Nhc2UgRi5YV286cmV0dXJuIGtlKHt9LHQse3VzZXJDcmVhdGVkQ29udmVyc2F0aW9uQXQ6ZS50aW1lc3RhbXB9KTtjYXNlIEYuU2NROnJldHVybiBrZSh7fSx0LHtsYXN0QXJ0aWNsZUNsb3NlZEF0Om51bGwsY29udmVyc2F0aW9uSWRPZkxhc3RWaWV3ZWRBcnRpY2xlOmUuY29udmVyc2F0aW9uSWR9KTtjYXNlIEYuT1p5OnJldHVybiBrZSh7fSx0LHtsYXN0QXJ0aWNsZUNsb3NlZEF0OmUuY2xvc2VkQXR9KTtjYXNlIEYuUndxOmNhc2UgRi5fYlM6cmV0dXJuIGtlKHt9LHQse2NsaWVudHNpZGVSdWxlc2V0Q29uZGl0aW9uczplLnVzZXIuY2xpZW50c2lkZVJ1bGVzZXRDb25kaXRpb25zfSk7Y2FzZSBGLmU5SDpyZXR1cm4ga2Uoe30sdCx7bGFzdFRyaWdnZXJUcmFuc2l0aW9uVGltZXN0YW1wOmUucGF5bG9hZC50aW1lc3RhbXB9KTtjYXNlIEYucjJ4OnJldHVybiBrZSh7fSx0LGUuc3RhdGUub3BlcmF0b3IpO2RlZmF1bHQ6cmV0dXJuIHR9fSxtZXNzYWdlOmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHZvaWQgMD09PXQmJih0PWZ0KSxlLnR5cGUpe2Nhc2UgRi52elA6cmV0dXJue2NvbnZlcnNhdGlvbklkOmUuY29udmVyc2F0aW9uSWQscGFydElkOmUucGFydElkfTtjYXNlIEYubEw6cmV0dXJuIGZ0O2Nhc2UgRi53QXM6cmV0dXJuIGUuaWRDaGFuZ2VkP2Z0OnQ7ZGVmYXVsdDpyZXR1cm4gdH19LHBvaW50ZXJNZXNzYWdlOmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHZvaWQgMD09PXQmJih0PWR0KSxlLnR5cGUpe2Nhc2UgRi5GMzY6cmV0dXJue2NvbnZlcnNhdGlvbklkOmUuY29udmVyc2F0aW9uSWQscGFydElkOmUucGFydElkfTtjYXNlIEYuUHo5OnJldHVybiBkdDtkZWZhdWx0OnJldHVybiB0fX0sZGlzbWlzc2VkUG9pbnRlcnM6ZnVuY3Rpb24odCxlKXt2YXIgbjtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9aHQpLGUudHlwZT09PUYuUHJxP3B0KHt9LHQsKChuPXt9KVtlLmNvbnZlcnNhdGlvbklkXT0hMCxuKSk6dH0sYXJ0aWNsZTpmdW5jdGlvbih0LGUpe3N3aXRjaCh2b2lkIDA9PT10JiYodD1idCksZS50eXBlKXtjYXNlIEYuU2NROnJldHVybiBwYXJzZUludCh0LmFjdGl2ZUFydGljbGVJZHx8IiIpPT09cGFyc2VJbnQoZS5hcnRpY2xlSWR8fCIiKT90Om10KHt9LHQse2FjdGl2ZUFydGljbGVJZDplLmFydGljbGVJZCxpblNlYXJjaEJyb3dzZTplLmZyb21Ccm93c2VNb2RlLGZyb21Ib21lU2NyZWVuU3VnZ2VzdGlvbnM6ZS5mcm9tSG9tZVNjcmVlblN1Z2dlc3Rpb25zLHZpZXdTdGFjazpbXS5jb25jYXQodnQoeXQsdC52aWV3U3RhY2t8fFtdKSxbZS5hcnRpY2xlSWRdKSxpc0xvYWRlZDohMSxoYXNoOmUuaGFzaH0pO2Nhc2UgRi5IT2k6dmFyIG4scjtyZXR1cm4obnVsbD09KG49dCl8fG51bGw9PShuPW4uYXJ0aWNsZUxvY2FsZSk/dm9pZCAwOm4udXJsKT09PShudWxsPT1lfHxudWxsPT0ocj1lLmFydGljbGVMb2NhbGUpP3ZvaWQgMDpyLnVybCk/dDptdCh7fSx0LHthY3RpdmVBcnRpY2xlSWQ6ZS5hcnRpY2xlSWQsaXNMb2FkZWQ6ITEsYXJ0aWNsZUxvY2FsZTplLmFydGljbGVMb2NhbGV9KTtjYXNlIEYuT1p5OnZhciBvPXQudmlld1N0YWNrLGk9dm9pZCAwPT09bz9bXTpvO3JldHVybiBpLnBvcCgpLGkubGVuZ3RoPjA/bXQoe30sdCx7YWN0aXZlQXJ0aWNsZUlkOmlbaS5sZW5ndGgtMV0saXNMb2FkZWQ6ITEsdHJhbnNpdGlvbmluZ0JhY2s6ITF9KTpidDtjYXNlIEYua3RtOmNhc2UgRi5taU86cmV0dXJuIGJ0O2Nhc2UgRi5uUTA6cmV0dXJuIHQuaXNTdGFuZGFsb25lfHx0LmluU2VhcmNoQnJvd3NlP3Q6YnQ7Y2FzZSBGLkJIZTpyZXR1cm4gbXQoe30sdCx7aXNMb2FkZWQ6ITB9KTtjYXNlIEYuZXhaOnJldHVybiBtdCh7fSx0LHt0cmFuc2l0aW9uaW5nQmFjazohMH0pO2Nhc2UgRi5ReVU6cmV0dXJuIG10KHt9LHQse3ZpZXdTdGFjazpbXX0pO2Nhc2UgRi5YRHI6cmV0dXJuIG10KHt9LHQse2lzU3RhbmRhbG9uZTohMCxpc0xvYWRlZDohMX0pO2Nhc2UgRi52eG46cmV0dXJuIGJ0O2RlZmF1bHQ6cmV0dXJuIHR9fSxhcnRpY2xlczpmdW5jdGlvbih0LGUpe3N3aXRjaCh2b2lkIDA9PT10JiYodD1UdCksZS50eXBlKXtjYXNlIEYuJGFQOnZhciBuO3JldHVybiB4dCh7fSx0LCgobj17fSlbZS5hcnRpY2xlLmlkXT14dCh7fSxlLmFydGljbGUpLG4pKTtjYXNlIEYuX2FKOnZhciByLG89ZS5hcnRpY2xlSWQsaT1lLnJlYWN0aW9uSW5kZXg7aWYoIU9iamVjdC5oYXNPd24odCxvKSlyZXR1cm4gdDt2YXIgYT10W29dO3JldHVybiB4dCh7fSx0LCgocj17fSlbb109eHQoe30sYSx7cmVhY3Rpb25zUmVwbHk6eHQoe30sYS5yZWFjdGlvbnNSZXBseSx7cmVhY3Rpb25JbmRleDppfSl9KSxyKSk7Y2FzZSBGLmdMSDp2YXIgdSxzPWUuYXJ0aWNsZUlkLGM9ZS5yZWxhdGVkQ29udmVyc2F0aW9uSWQ7aWYoIU9iamVjdC5oYXNPd24odCxzKSlyZXR1cm4gdDt2YXIgbD10W3NdO3JldHVybiB4dCh7fSx0LCgodT17fSlbc109eHQoe30sbCx7cmVsYXRlZENvbnZlcnNhdGlvbklkOmN9KSx1KSk7Y2FzZSBGLkIyRjp2YXIgZj1lLmFydGljbGVDb2xsZWN0aW9ucztyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbj14dCh7fSx0KTtmb3IodmFyIHIgaW4gZSlpZihPYmplY3QuaGFzT3duKGUscikpe3ZhciBvPW5bcl0saT1lW3JdO25bcl09THQob3x8e30saSl9cmV0dXJuIG59KHQsX3QoZikpfXJldHVybiB0fSxhcnRpY2xlQ29sbGVjdGlvbnM6ZnVuY3Rpb24odCxlKXtzd2l0Y2godm9pZCAwPT09dCYmKHQ9anQpLGUudHlwZSl7Y2FzZSBGLkVfTjpyZXR1cm4ganQ7Y2FzZSBGLkIyRjppZihlLmFydGljbGVDb2xsZWN0aW9ucy5sZW5ndGg+MClyZXR1cm4gZS5hcnRpY2xlQ29sbGVjdGlvbnN9cmV0dXJuIHR9LGNvbnZlcnNhdGlvbnM6ZnVuY3Rpb24odCxlKXt2YXIgbjtzd2l0Y2godm9pZCAwPT09dCYmKHQ9cmUpLGUudHlwZSl7Y2FzZSBGLlJ3cTpjYXNlIEYuX2JTOmNhc2UgRi5hd3A6cmV0dXJuIG5lKHt9LHQse2J5SWQ6aWUodC5ieUlkLGUpfSk7Y2FzZSBGLk9OSzpyZXR1cm4gbmUoe30sdCx7aXNGZXRjaGluZzohMH0pO2Nhc2UgRi5tR1g6dmFyIHIsbz0obnVsbD09ZXx8bnVsbD09KHI9ZS5jb252ZXJzYXRpb25zKT92b2lkIDA6ci5wYWdlcyl8fHt9LGk9by5wYWdlLGE9by50b3RhbFBhZ2VzO3JldHVybiBuZSh7fSx0LHtpc0ZldGNoaW5nOiExLHBhZ2VzRmV0Y2hlZDppLHRvdGFsUGFnZXM6YSxieUlkOmllKHQuYnlJZCxlKX0pO2Nhc2UgRi54MDY6cmV0dXJuIG5lKHt9LHQse2lzRmV0Y2hpbmc6ITF9KTtjYXNlIEYudXZJOmNhc2UgRi5hbE06Y2FzZSBGLkFkTDpjYXNlIEYuRm44OmNhc2UgRi5QV0M6Y2FzZSBGLlQ0azpjYXNlIEYuSUR6OmNhc2UgRi5MTEo6Y2FzZSBGLmZFQzpjYXNlIEYuUHpTOmNhc2UgRi5ITXU6Y2FzZSBGLlUyZDpjYXNlIEYueU01OmNhc2UgRi5UbVE6Y2FzZSBGLnUwYzpjYXNlIEYuc1VTOmNhc2UgRi5Eekw6Y2FzZSBGLlQkNTpjYXNlIEYudWZVOmNhc2UgRi5hUTU6Y2FzZSBGLnplXzpjYXNlIEYuWlM5OmNhc2UgRi5vX0U6Y2FzZSBGLmN4NDpjYXNlIEYub25YOmNhc2UgRi5fVTg6Y2FzZSBGLmlEZDpjYXNlIEYuSUtKOmNhc2UgRi5BOTk6Y2FzZSBGLnJfMTpjYXNlIEYuZkVMOmNhc2UgRi5QNXk6cmV0dXJuIG5lKHt9LHQse2J5SWQ6aWUodC5ieUlkLGUpfSk7Y2FzZSBGLnZ5UDpyZXR1cm4gbmUoe30sdCx7YnlJZDppZSh0LmJ5SWQsZSksdGl0bGVVcGRhdGVzOm5lKHt9LHQudGl0bGVVcGRhdGVzLChuPXt9LG5bZS5jb252ZXJzYXRpb25JZF09RGF0ZS5ub3coKSxuKSl9KTtjYXNlIEYuS0hfOnJldHVybiBuZSh7fSx0LHtieUlkOmllKHQuYnlJZCxlKX0pO2Nhc2UgRi55cWs6cmV0dXJuIG5lKHt9LHQse3Njcm9sbFBvc2l0aW9uOmUuc2Nyb2xsUG9zaXRpb259KTtjYXNlIEYuZmptOnJldHVybiBuZSh7fSx0LHtieUlkOmllKHQuYnlJZCxlKX0pO2Nhc2UgRi53QXM6cmV0dXJuIGUuaWRDaGFuZ2VkP25lKHt9LHJlKTp0O2RlZmF1bHQ6cmV0dXJuIHR9fSxuZXdDb252ZXJzYXRpb246Y2Usbm90aWZpY2F0aW9uQ2hhbm5lbHM6ZnVuY3Rpb24odCxlKXtzd2l0Y2godm9pZCAwPT09dCYmKHQ9ZGUpLGUudHlwZSl7Y2FzZSBGLmt4OnJldHVybiBmZSh7fSx0LHtpc1NhdmluZzohMH0pO2Nhc2UgRi5Sd3E6Y2FzZSBGLl9iUzpyZXR1cm4gZmUoe30sdCx7aXNTYXZpbmc6ITF9KTtjYXNlIEYueDNzOnJldHVybiBmZSh7fSx0LHtpc1NhdmluZzohMCxlcnJvck1lc3NhZ2U6bnVsbCxzaG93RXJyb3JNZXNzYWdlOiExfSk7Y2FzZSBGLmZuODpyZXR1cm4gZmUoe30sdCx7cGhvbmVOdW1iZXI6ZS5waG9uZU51bWJlcixpc1NhdmluZzohMX0pO2Nhc2UgRi5XRWk6cmV0dXJuIGZlKHt9LHQse2Vycm9yTWVzc2FnZTplLm1lc3NhZ2UsaXNTYXZpbmc6ITEsc2hvd0Vycm9yTWVzc2FnZTohMH0pO2Nhc2UgRi5BZzc6cmV0dXJuIGZlKHt9LHQse2Vycm9yTWVzc2FnZTpudWxsLHNob3dFcnJvck1lc3NhZ2U6ITF9KTtkZWZhdWx0OnJldHVybiB0fX0sbm90aWZpY2F0aW9uVHlwZU92ZXJyaWRlczpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10JiYodD1sZSksZS50eXBlPT09Ri5uUD9PYmplY3QuYXNzaWduKHt9LHQse3N1cHByZXNzOk9iamVjdC5hc3NpZ24oe30sdC5zdXBwcmVzcyxlLnN1cHByZXNzKSxmb3JjZVNuaXBwZXQ6T2JqZWN0LmFzc2lnbih7fSx0LmZvcmNlU25pcHBldCxlLmZvcmNlU25pcHBldCl9KTp0fSxpbnN0YWxsOmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHZvaWQgMD09PXQmJih0PWhlKSxlLnR5cGUpe2Nhc2UgRi5CdWI6dmFyIG49ZS5hY3RpdmVTdWJzY3JpcHRpb24scj1lLnVzZXJIYXNoVmVyaWZpZWQsbz1lLnNlY3VyZUluc3RhbGxWMixpPWUubWVzc2VuZ2VyRW5hYmxlZEZvclZpc2l0b3JzLGE9ZS5tZXNzZW5nZXJFbmFibGVkRm9yVXNlcnM7cmV0dXJuIHBlKHt9LHQse2lzSW5zdGFsbE1vZGVPcGVuOiEwLGluc3RhbGxNb2RlQ29uZmlnOnthY3RpdmVTdWJzY3JpcHRpb246bix1c2VySGFzaFZlcmlmaWVkOnIsc2VjdXJlSW5zdGFsbFYyOm8sbWVzc2VuZ2VyRW5hYmxlZEZvclZpc2l0b3JzOmksbWVzc2VuZ2VyRW5hYmxlZEZvclVzZXJzOmF9fSk7Y2FzZSBGLiRvQjpyZXR1cm4gcGUoe30sdCx7aXNJbnN0YWxsTW9kZU9wZW46ITF9KTtkZWZhdWx0OnJldHVybiB0fX0sZ2lmczpmdW5jdGlvbih0LGUpe3N3aXRjaCh2b2lkIDA9PT10JiYodD15ZSksZS50eXBlKXtjYXNlIEYuckdrOnZhciBuPWUuc2VhcmNoVGVybTtyZXR1cm4gdmUoe30sdCx7aXNGZXRjaGluZzohMCxmZXRjaGluZ0ZhaWxlZDohMSxzZWFyY2hUZXJtOm59KTtjYXNlIEYuWmlIOnZhciByPWUuZ2lmcyxvPWUuc2VhcmNoVGVybTtyZXR1cm4gbyE9PXQuc2VhcmNoVGVybT90OnZlKHt9LHQse2lzRmV0Y2hpbmc6ITEsZ2lmczpyLGZldGNoaW5nRmFpbGVkOiExLHNlYXJjaFRlcm06b30pO2Nhc2UgRi5jZGg6dmFyIGk9ZS5zZWFyY2hUZXJtO3JldHVybiBpIT09dC5zZWFyY2hUZXJtP3Q6dmUoe30sdCx7aXNGZXRjaGluZzohMSxmZXRjaGluZ0ZhaWxlZDohMCxzZWFyY2hUZXJtOml9KTtkZWZhdWx0OnJldHVybiB0fX0sbGF1bmNoZXJEaXNjb3ZlcnlNb2RlOmZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09dCYmKHQ9YmUpO3ZhciBuPXQuaXNMYXVuY2hlckRpc2NvdmVyeU1vZGVFbmFibGVkO3N3aXRjaChlLnR5cGUpe2Nhc2UgRi5Sd3E6dmFyIHI9ZS51c2VyO3JldHVybiBtZSh7fSx0LHtpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZUVuYWJsZWQ6d2Uocil9KTtjYXNlIEYuT05LOnJldHVybiBtZSh7fSx0LHtpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZUVuYWJsZWQ6ITEsaGFzRGlzY292ZXJlZExhdW5jaGVyOiEwfSk7Y2FzZSBGLko0QzpyZXR1cm4gbWUoe30sdCx7aGFzRGlzY292ZXJlZExhdW5jaGVyOiEwLGlzTGF1bmNoZXJEaXNjb3ZlcnlNb2RlRW5hYmxlZDohMX0pO2Nhc2UgRi5yRVg6cmV0dXJuIG1lKHt9LHQse2lzTGF1bmNoZXJEaXNjb3ZlcnlNb2RlT3BlbmluZzpuLGhhc0Rpc2NvdmVyZWRMYXVuY2hlcjohMH0pO2Nhc2UgRi5ubms6cmV0dXJuIG1lKHt9LHQse2lzTGF1bmNoZXJEaXNjb3ZlcnlNb2RlT3BlbmluZzohMSxpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZUNsb3Npbmc6bn0pO2Nhc2UgRi52eG46Y2FzZSBGLlVZNTpyZXR1cm4gbWUoe30sdCx7aXNMYXVuY2hlckRpc2NvdmVyeU1vZGVDbG9zaW5nOiExLGlzTGF1bmNoZXJEaXNjb3ZlcnlNb2RlT3BlbmluZzohMX0pO2Nhc2UgRi5UOTI6cmV0dXJuIG1lKHt9LHQse2lzTGF1bmNoZXJEaXNjb3ZlcnlNb2RlRW5hYmxlZDohMSxpc0xhdW5jaGVyRGlzY292ZXJ5TW9kZUNsb3Npbmc6ITF9KTtjYXNlIEYucjJ4OnZhciBvPWUuc3RhdGUubGF1bmNoZXJEaXNjb3ZlcnlNb2RlO3JldHVybiBtZSh7fSx0LG8pO2RlZmF1bHQ6cmV0dXJuIHR9fSxtZXNzZW5nZXJDYXJkczpmdW5jdGlvbih0LGUpe3N3aXRjaCh2b2lkIDA9PT10JiYodD1FZSksZS50eXBlKXtjYXNlIEYua1N5OmlmKCFlLmNhcmRVcmkpcmV0dXJuIHQ7dmFyIG49Q2UodCxlLmNhcmRVcmkpO3JldHVybiBuW2UuY2FyZFVyaV0uaXNGZXRjaGluZz0hMSxPZShuW2UuY2FyZFVyaV0sZS5jb21wb25lbnRJZCwhMSksbjtjYXNlIEYuWkJ6OmlmKCFlLmNhcmQudXJpKXJldHVybiB0O3ZhciByPUNlKHQsZS5jYXJkLnVyaSk7cmV0dXJuIHJbZS5jYXJkLnVyaV0uaXNGZXRjaGluZz0hMSxyW2UuY2FyZC51cmldLmlzRmV0Y2hlZD0hMCxyW2UuY2FyZC51cmldLnBhcnRpYWxDYXJkPWUuY2FyZCxyO2Nhc2UgRi5kSWY6aWYoIWUuY2FyZFVyaSlyZXR1cm4gdDt2YXIgbz1DZSh0LGUuY2FyZFVyaSk7cmV0dXJuIG9bZS5jYXJkVXJpXS5pc0ZldGNoaW5nPSEwLE9lKG9bZS5jYXJkVXJpXSxlLmNvbXBvbmVudElkLCEwKSxvO2Nhc2UgRi5JMFU6aWYoIWUuY2FyZC51cmkpcmV0dXJuIHQ7dmFyIGk9Q2UodCxlLmNhcmQudXJpKTtyZXR1cm4gaVtlLmNhcmQudXJpXS5pc0NvbnRlbnRGZXRjaGluZz0hMCxpO2Nhc2UgRi5VSGQ6aWYoIWUuY2FyZC51cmkpcmV0dXJuIHQ7dmFyIGE9Q2UodCxlLmNhcmQudXJpKSx1PWUuY2FyZC51cmk7YVt1XS5pc0ZldGNoaW5nPSExLGFbdV0uaXNGZXRjaGVkPSEwLGFbdV0uaXNDb250ZW50RmV0Y2hlZD0hMCxhW3VdLmlzQ29udGVudEVycm9yPSExLGFbdV0uaXNDb250ZW50RmV0Y2hpbmc9ITE7dmFyIHM9KDAsX2UubSkoZS5jYXJkKSxjPSgwLF9lLm0pKGUuY29udGVudCk7cmV0dXJuIGFbdV0uY2FyZD1zLGFbdV0uY2FyZC5jYW52YXM/YVt1XS5jYXJkLmNhbnZhcy5jb250ZW50PWM6YVt1XS5jYXJkLmNhbnZhcz17aWQ6IiIsY29udGVudDpjfSxhW3VdLmNhcmQ9KDAsU2UuU3YpKGFbdV0uY2FyZCksYTtjYXNlIEYuJFJjOmlmKCFlLmNhcmQudXJpKXJldHVybiB0O3ZhciBsPUNlKHQsZS5jYXJkLnVyaSk7cmV0dXJuIGxbZS5jYXJkLnVyaV0uaXNDb250ZW50RXJyb3I9ITAsbFtlLmNhcmQudXJpXS5pc0NvbnRlbnRGZXRjaGluZz0hMSxsW2UuY2FyZC51cmldLnBhcnRpYWxDYXJkPWUuY2FyZCxsO2RlZmF1bHQ6cmV0dXJuIHR9fSxtZXNzZW5nZXJTaGVldDpmdW5jdGlvbih0LGUpe3N3aXRjaCh2b2lkIDA9PT10JiYodD1JZSksZS50eXBlKXtjYXNlIEYucnpFOnJldHVybiBBZSh7fSx0LHtpc05hdmlnYXRpbmc6ITB9KTtjYXNlIEYueVN6OnJldHVybiBBZSh7fSx0LHtpc05hdmlnYXRpbmc6ITF9KTtjYXNlIEYudFhROnJldHVybiBBZSh7fSx0LHtpc1Byb3h5TG9hZGVkOmUuaXNMb2FkZWR9KTtjYXNlIEYucFNLOnJldHVybiBBZSh7fSx0LHt1cmw6ZS51cmwsaXNPcGVuOiEwLHNvdXJjZUNhcmQ6e2NhcmRVcmk6ZS5jYXJkVXJpLGNvbXBvbmVudElkOmUuY29tcG9uZW50SWR9fSk7Y2FzZSBGLlViXzpyZXR1cm4gQWUoe30sdCx7dXJsOmUudXJsLGlzT3BlbjohMCxzb3VyY2VDYXJkOnt0b2tlbjplLnRva2VuLGNvbXBvbmVudElkOmUuY29tcG9uZW50SWR9fSk7Y2FzZSBGLmxwZTpyZXR1cm4gSWU7Y2FzZSBGLnd3WjpyZXR1cm4gQWUoe30sdCx7c2hlZXRUaXRsZTplLnNoZWV0VGl0bGV9KTtjYXNlIEYuT1hYOnJldHVybiBBZSh7fSx0LHtpc1NoZWV0c0RhdGFMb2FkaW5nOiEwfSk7Y2FzZSBGLllqcjpyZXR1cm4gQWUoe30sdCx7aXNTaGVldHNEYXRhTG9hZGluZzohMSxpc1NoZWV0c0RhdGFMb2FkZWQ6ITAsZGF0YTplLmRhdGF9KTtjYXNlIEYuSFZIOnJldHVybiBBZSh7fSx0LHtpc1NoZWV0c0RhdGFMb2FkaW5nOiExfSk7ZGVmYXVsdDpyZXR1cm4gdH19LG1lc3NlbmdlckFsZXJ0czpmdW5jdGlvbih0LGUpe3N3aXRjaCh2b2lkIDA9PT10JiYodD1qZSksZS50eXBlKXtjYXNlIEYuQlFUOnJldHVybiBUZSh7fSx0LHtpc1Nob3duOiEwLGFsZXJ0VHlwZTplLnBheWxvYWQuYWxlcnRUeXBlLGFsZXJ0UGF5bG9hZDplLnBheWxvYWQuYWxlcnRQYXlsb2FkfSk7Y2FzZSBGLm9ldzpyZXR1cm4gamU7ZGVmYXVsdDpyZXR1cm4gdH19LGN1c3RvbWl6YXRpb25PdmVycmlkZXM6ZnVuY3Rpb24odCxlKXtzd2l0Y2godm9pZCAwPT09dCYmKHQ9TmUpLGUudHlwZSl7Y2FzZSBGLldFeDpyZXR1cm4gUGUoe30sdCxlLmN1c3RvbWl6YXRpb25BdHRyaWJ1dGVzKTtjYXNlIEYuUFlUOnJldHVybiBQZSh7fSx0LGUuY3VzdG9taXphdGlvbkF0dHJpYnV0ZXMse2lzSGVpZ2h0U2V0QnlCYW5uZXI6ITB9KTtkZWZhdWx0OnJldHVybiB0fX0sYWNjZXNzaWJpbGl0eTpmdW5jdGlvbih0LGUpe3N3aXRjaCh2b2lkIDA9PT10JiYodD1SZSksZS50eXBlKXtjYXNlIEYuTWtJOnJldHVybiBNZSh7fSx0LHt0YWJOYXZpZ2F0aW9uOmUudGFiTmF2aWdhdGlvbn0pO2Nhc2UgRi5BMFU6cmV0dXJuIE1lKHt9LHQse2FjY2Vzc2liaWxpdHlUaGVtZTplLmFjY2Vzc2liaWxpdHlUaGVtZSxzZWNvbmRhcnlBY2Nlc3NpYmlsaXR5VGhlbWU6ZS5zZWNvbmRhcnlBY2Nlc3NpYmlsaXR5VGhlbWV9KTtjYXNlIEYucSR1OnJldHVybiBNZSh7fSx0LHtpc01vZGFsT3BlbjplLmlzTW9kYWxPcGVufSk7ZGVmYXVsdDpyZXR1cm4gdH19LHRvdXI6ZnVuY3Rpb24odCxlKXtzd2l0Y2godm9pZCAwPT09dCYmKHQ9emUpLGUudHlwZSl7Y2FzZSBGLkdfcjpyZXR1cm4gVWUoe30sdCx7aXNGZXRjaGluZzohMCxpc0ZldGNoZWQ6ITEsZmV0Y2hpbmdGYWlsZWQ6ITF9KTtjYXNlIEYuJFNaOnJldHVybiBVZSh7fSx0LHt1cGRhdGVGYWlsZWQ6ITB9KTtjYXNlIEYuX2pyOnJldHVybiBVZSh7fSx0LHtpc0ZldGNoaW5nOiExLGlzRmV0Y2hlZDohMCxmZXRjaGluZ0ZhaWxlZDohMSxpc1ByZXZpZXdpbmc6ZS5pc1ByZXZpZXdpbmdUb3VyLGFjdGl2ZVRvdXI6ZS50b3VyfSk7Y2FzZSBGLlZoRjpyZXR1cm4gVWUoe30sdCx7aXNGZXRjaGluZzohMSxpc0ZldGNoZWQ6ITEsZmV0Y2hpbmdGYWlsZWQ6ITB9KTtjYXNlIEYuUFZnOnJldHVybiB0LmFjdGl2ZVRvdXI/VWUoe30sdCx7YWN0aXZlVG91cjpVZSh7fSx0LmFjdGl2ZVRvdXIse2FjdGl2ZVN0ZXBJZDplLmFjdGl2ZVN0ZXBJZH0pfSk6VWUoe30sdCk7Y2FzZSBGLnpGcTpyZXR1cm4gVWUoe30sdCx7aXNGZXRjaGVkOiEwLGlzUHJldmlld2luZzohMCxhY3RpdmVUb3VyOmUudG91cn0pO2Nhc2UgRi5ueXI6cmV0dXJuIFVlKHt9LHQse2lzRmV0Y2hlZDohMSxpc1ByZXZpZXdpbmc6ITEsYWN0aXZlVG91cjp2b2lkIDB9KTtjYXNlIEYuaDB0OmNhc2UgRi5QOGk6Y2FzZSBGLnl2RTpjYXNlIEYuT0NkOnJldHVybiB6ZTtjYXNlIEYuZHNFOnJldHVybiB0LmFjdGl2ZVRvdXI/VWUoe30sdCx7YWN0aXZlVG91cjpVZSh7fSx0LmFjdGl2ZVRvdXIse2lzQ29tcGxldGVkOiEwfSl9KTpVZSh7fSx0KTtjYXNlIEYuWEJrOnJldHVybiBVZSh7fSx0LHt2aWRlb0F1ZGlvTXV0ZWQ6ZS5tdXRlZCx1c2VySGFzSW50ZXJhY3RlZFdpdGhWaWRlbzohMH0pO2Nhc2UgRi54dTI6cmV0dXJuIFVlKHt9LHQse2lzQXdhaXRpbmdQcm9ncmVzczohMH0pO2Nhc2UgRi5BMGU6cmV0dXJuIFVlKHt9LHQse2lzQXdhaXRpbmdQcm9ncmVzczohMX0pO2RlZmF1bHQ6cmV0dXJuIHR9fSx0cmlnZ2VyczpmdW5jdGlvbih0LGUpe3ZvaWQgMD09PXQmJih0PUZlKTt2YXIgbj1IZSh7fSx0LnRyaWdnZXJzKTtzd2l0Y2goZS50eXBlKXtjYXNlIEYuZEpxOnJldHVybiBuW2UudHJpZ2dlci5pZF09ZS50cmlnZ2VyLEhlKHt9LHQse3RyaWdnZXJzOm59KTtjYXNlIEYuZ1V5OnJldHVybiBkZWxldGUgbltlLnRyaWdnZXJJZF0sSGUoe30sdCx7dHJpZ2dlcnM6bn0pO2Nhc2UgRi5oRms6cmV0dXJuIEhlKHt9LHQse2FjdGl2ZTplLnRyaWdnZXJJZCxmYWlsZWQ6ITF9KTtjYXNlIEYua240OnJldHVybiBIZSh7fSx0LHthY3RpdmU6bnVsbH0pO2Nhc2UgRi5ybGs6cmV0dXJuIEhlKHt9LHQse2ZhaWxlZDohMH0pO2RlZmF1bHQ6cmV0dXJuIHR9fSxpbmJvdW5kU3VnZ2VzdGlvbnM6ZnVuY3Rpb24odCxlKXtzd2l0Y2godm9pZCAwPT09dCYmKHQ9V2UpLGUudHlwZSl7Y2FzZSBGLllkTTpyZXR1cm4gcWUoe30sdCx7YWxsU3VnZ2VzdGlvbnM6W10uY29uY2F0KEJlKFZlLHQuYWxsU3VnZ2VzdGlvbnMpLFtlLmNvbXBvc2VyU3VnZ2VzdGlvbnNdKX0pO2Nhc2UgRi5EM1I6cmV0dXJuIHFlKHt9LHQse2FsbFN1Z2dlc3Rpb25zOnQuYWxsU3VnZ2VzdGlvbnMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5ydWxlc2V0SWQhPT1lLnJ1bGVzZXRJZH0pKX0pO2Nhc2UgRi5LVTE6dmFyIG49dC5hbGxTdWdnZXN0aW9ucztyZXR1cm4gdC5zZXJ2ZXJTaWRlU3VnZ2VzdGlvbnMmJihuPW4uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXJ2ZXJTaWRlU3VnZ2VzdGlvbnMmJmUucnVsZXNldElkIT09dC5zZXJ2ZXJTaWRlU3VnZ2VzdGlvbnMucnVsZXNldElkfSkpKSxlLmNvbXBvc2VyU3VnZ2VzdGlvbnMmJihuPSgwLERlLmgpKFtdLmNvbmNhdChCZShWZSxuKSxbZS5jb21wb3NlclN1Z2dlc3Rpb25zXSksInJ1bGVzZXRJZCIpKSxxZSh7fSx0LHthbGxTdWdnZXN0aW9uczpuLHNlcnZlclNpZGVTdWdnZXN0aW9uczplLmNvbXBvc2VyU3VnZ2VzdGlvbnN9KTtjYXNlIEYuck13OnJldHVybiBxZSh7fSx0LHtwcmV2aWV3U3VnZ2VzdGlvbnM6ZS5jb21wb3NlclN1Z2dlc3Rpb25zfSk7ZGVmYXVsdDpyZXR1cm4gdH19LGJhbm5lcnM6S2UsY29tcG9zZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9SmUpLGUudHlwZT09PUYuSUtKP1plKHt9LHQse2NvbnRlbnQ6ZS5jb21wb3NlckNvbnRlbnR9KTp0fSxwcmVkaWN0aXZlQW5zd2VyczpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10JiYodD1RZSksZS50eXBlPT09Ri5YaHI/WWUoe30sdCx7Y29tcG9zZXJTdWdnZXN0aW9uczplLnByZWRpY3RpdmVBbnN3ZXJzU3VnZ2VzdGlvbnN9KTp0fSxsYXVuY2hlclNldHRpbmdzOlMuQXksY29tcG9zZXJEcmFmdHM6WGUuQXksYWlTdWdnZXN0aW9uczokZS5BeSxsaWdodHdlaWdodEFwcDpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10JiYodD1lbiksZS50eXBlPT09Ri5IR0s/dG4oe30sdCx7aXNBY3RpdmU6ZS5pc0FjdGl2ZX0pOnR9LGJyb3dzZU1vZGU6ZnVuY3Rpb24odCxlKXtzd2l0Y2godm9pZCAwPT09dCYmKHQ9Y24pLGUudHlwZSl7Y2FzZSBGLm1pTzpyZXR1cm4gc24oe30sY24se2lzT3BlbjohMCxjbG9zZVRyYW5zaXRpb25FbmRlZDohMSxpc0ZldGNoaW5nOnQuaXNGZXRjaGluZyxoYXNWaWV3ZWRBbkFydGljbGU6dC5oYXNWaWV3ZWRBbkFydGljbGUsc2tpcE9wZW5BbmltYXRpb246ZS5za2lwT3BlbkFuaW1hdGlvbn0pO2Nhc2UgRi5EWWY6cmV0dXJuIHNuKHt9LHQse2lzT3BlbjohMH0pO2Nhc2UgRi5fUEY6cmV0dXJuIHNuKHt9LHQse2lzT3BlbjohMX0pO2Nhc2UgRi5rdG06cmV0dXJuIHNuKHt9LHQse2Nsb3NlVHJhbnNpdGlvbkVuZGVkOiEwfSk7Y2FzZSBGLnBCbjpyZXR1cm4gc24oe30sdCx7aXNPcGVuOiExLHNlYXJjaGVkUGhyYXNlOiIiLHBocmFzZToiIixoYXNTZWFyY2hSZXN1bHRzOiExLHNob3dTZWFyY2hSZXN1bHRzOiExLHNlYXJjaFJlc3VsdHM6W119KTtjYXNlIEYuZllrOnJldHVybiBzbih7fSx0LHtpc1NlYXJjaEZvY3VzZWQ6ZS52YWx1ZX0pO2Nhc2UgRi52eG46cmV0dXJuIHQuaXNPcGVuP3NuKHt9LHQse2lzT3BlbjohMSxyb3V0ZWRUb05ld0NvbnZlcnNhdGlvbjohMH0pOnNuKHt9LHQse3JvdXRlZFRvTmV3Q29udmVyc2F0aW9uOiExfSk7Y2FzZSBGLnBuaDp2YXIgbj1lLnBocmFzZSxyPWUuaGlkZVJlc3VsdHNXaXRoRGVsYXksbz10Lmhhc1NlYXJjaFJlc3VsdHMmJjA9PT0obnVsbD09bj92b2lkIDA6bi50cmltKCkubGVuZ3RoKTtyZXR1cm4gc24oe30sdCx7cGhyYXNlOm4saGlkZVJlc3VsdHNXaXRoRGVsYXk6cixzaG93U2VhcmNoUmVzdWx0czohbyYmdC5zaG93U2VhcmNoUmVzdWx0cyxoYXNTZWFyY2hSZXN1bHRzOiFvJiZ0Lmhhc1NlYXJjaFJlc3VsdHN9KTtjYXNlIEYuUElZOnJldHVybiBzbih7fSx0LHtpbW1lZGlhdGVTZWFyY2g6dC5pbW1lZGlhdGVTZWFyY2h8fGUuaW1tZWRpYXRlLGlzRmV0Y2hpbmdTZWFyY2hSZXN1bHRzOiEwfSk7Y2FzZSBGLnJQSTp2YXIgaT1lLnNlYXJjaFJlc3VsdHMsYT1lLnBocmFzZSx1PXNuKHt9LHQse2lzRmV0Y2hpbmdTZWFyY2hSZXN1bHRzOiExfSk7cmV0dXJuIGEhPT11LnBocmFzZT91OnNuKHt9LHUse2ZldGNoaW5nRmFpbGVkOiExLGhhc1NlYXJjaFJlc3VsdHM6ITAsc2hvd1NlYXJjaFJlc3VsdHM6dC5pbW1lZGlhdGVTZWFyY2gsc2VhcmNoUmVzdWx0czppLGltbWVkaWF0ZVNlYXJjaDohMSxzZWFyY2hlZFBocmFzZTphfSk7Y2FzZSBGLlNzMzp2YXIgcz1lLnBocmFzZSxjPXNuKHt9LHQse2lzRmV0Y2hpbmdTZWFyY2hSZXN1bHRzOiExfSk7cmV0dXJuIHMhPT1jLnBocmFzZT9jOnNuKHt9LGMse2lzRmV0Y2hpbmc6ITEsZmV0Y2hpbmdGYWlsZWQ6ITAsaW1tZWRpYXRlU2VhcmNoOiExfSk7Y2FzZSBGLkIyRjp2YXIgbDtyZXR1cm4gMT09PShudWxsPT1lfHxudWxsPT0obD1lLmFydGljbGVDb2xsZWN0aW9ucyk/dm9pZCAwOmwubGVuZ3RoKT9zbih7fSx0LHtzdGFja011bHRpbGV2ZWxDb2xsZWN0aW9uczpbZS5hcnRpY2xlQ29sbGVjdGlvbnNbMF0uaWRdLGZldGNoZWRDb2xsZWN0aW9uczohMCxpc0ZldGNoaW5nOiExfSk6c24oe30sdCx7ZmV0Y2hlZENvbGxlY3Rpb25zOiEwLGlzRmV0Y2hpbmc6ITF9KTtjYXNlIEYuQkhlOnJldHVybiBzbih7fSx0LHtpc1ZpZXdpbmdBcnRpY2xlOiEwfSk7Y2FzZSBGLk9aeTpyZXR1cm4gdC5pc09wZW4/c24oe30sdCx7aGFzVmlld2VkQW5BcnRpY2xlOiEwLGlzVmlld2luZ0FydGljbGU6ITF9KTp0O2Nhc2UgRi51Xzk6cmV0dXJuIHNuKHt9LGNuLHtpc0ZldGNoaW5nOnQuaXNGZXRjaGluZyxoYXNWaWV3ZWRBbkFydGljbGU6dC5oYXNWaWV3ZWRBbkFydGljbGV9KTtjYXNlIEYuSjRDOmlmKHQuaXNWaWV3aW5nQXJ0aWNsZSYmdC5pc09wZW4pcmV0dXJuIHNuKHt9LHQse3NraXBPcGVuQW5pbWF0aW9uOiEwfSk7aWYoIXQuc2tpcE9wZW5BbmltYXRpb24pcmV0dXJuIHNuKHt9LGNuLHtpc0ZldGNoaW5nOnQuaXNGZXRjaGluZ30pO2JyZWFrO2Nhc2UgRi5uUTA6cmV0dXJuIHQuaXNPcGVuP3Q6c24oe30sdCx7c2tpcE9wZW5BbmltYXRpb246ITF9KX1yZXR1cm4gdH0sb3BlbkluYm91bmRDb252ZXJzYXRpb25JZHM6ZnVuY3Rpb24odCxlKXtzd2l0Y2godm9pZCAwPT09dCYmKHQ9cG4pLGUudHlwZSl7Y2FzZSBGLldmcDpyZXR1cm4obnVsbD09ZT92b2lkIDA6ZS5vcGVuSW5ib3VuZENvbnZlcnNhdGlvbklkcyl8fFtdO2Nhc2UgbG4uUDAudHlwZTppZighZS5wYXlsb2FkLmNhcmRzKXJldHVybltdO3ZhciBuPWUucGF5bG9hZC5jYXJkcy5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4ibmV3X2NvbnZlcnNhdGlvbiI9PT10LnR5cGV9KSk7cmV0dXJuIG4mJm4ucHJldmVudF9tdWx0aXBsZV9pbmJvdW5kX2NvbnZlcnNhdGlvbnNfZW5hYmxlZCYmKG51bGw9PW4/dm9pZCAwOm4ub3Blbl9pbmJvdW5kX2NvbnZlcnNhdGlvbl9pZHMpfHxbXTtjYXNlIEYudXZJOmNhc2UgRi5Eekw6Y2FzZSBGLmZFQzp2YXIgcj1lLmNvbnZlcnNhdGlvbjtyZXR1cm4gci5zaG91bGRJbmNsdWRlSW5PcGVuSW5ib3VuZElkcz8tMT09PXQuaW5kZXhPZihyLmlkKT9bXS5jb25jYXQoZnVuY3Rpb24odCxlLG4pe2lmKGUmJiFBcnJheS5pc0FycmF5KGUpJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXt2YXIgcj1lLmxlbmd0aDtyZXR1cm4gZG4oZSx2b2lkIDAhPT1uJiZuPHI/bjpyKX1yZXR1cm4gdChlLG4pfShmbix0KSxbci5pZF0pOnQ6dC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09ci5pZH0pKTtjYXNlIEYuVTJkOnZhciBvPWUuY29udmVyc2F0aW9uSWQsaT1lLnJlYXNvbjtpZigoMCxELlhjKShpKSlyZXR1cm4gdC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09b30pKTtkZWZhdWx0OnJldHVybiB0fX0sc3VydmV5OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHZvaWQgMD09PXQmJih0PW51bGwpLGUudHlwZSl7Y2FzZSBGLkI2ZDpyZXR1cm4gZS5zdXJ2ZXk/Z24oe30sZS5zdXJ2ZXkse2lzU3VibWl0dGluZzohMX0pOnQ7Y2FzZSBGLldrMzp2YXIgbixyLG87cmV0dXJuIGUuc3VydmV5SWQhPT0obnVsbD09KG49dCk/dm9pZCAwOm4uaWQpP3Q6Z24oe30sdCx7c3RlcHM6W10uY29uY2F0KGhuKHZuLChudWxsPT0ocj10KT92b2lkIDA6ci5zdGVwcyl8fFtdKSxbZS5zdXJ2ZXlTdGVwXSksYWN0aXZlU3RlcElkOm51bGw9PWV8fG51bGw9PShvPWUuc3VydmV5U3RlcCk/dm9pZCAwOm8uaWQsY29tcGxldGVkOmUuY29tcGxldGVkfSk7Y2FzZSBGLkZkbzp2YXIgaTtyZXR1cm4gZS5zdXJ2ZXlJZCE9PShudWxsPT0oaT10KT92b2lkIDA6aS5pZCk/dDpnbih7fSx0LHtpc1N1Ym1pdHRpbmc6ITB9KTtjYXNlIEYua0taOnZhciBhO3JldHVybiBlLnN1cnZleUlkIT09KG51bGw9PShhPXQpP3ZvaWQgMDphLmlkKT90OmduKHt9LHQse2lzU3VibWl0dGluZzohMX0pO2Nhc2UgRi5IOEc6dmFyIHU7cmV0dXJuIGduKHt9LHQse3N0ZXBzOm51bGw9PSh1PXQpfHxudWxsPT0odT11LnN0ZXBzKT92b2lkIDA6dS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBnbih7fSx0LHtxdWVzdGlvbnM6dC5xdWVzdGlvbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZCE9PWUucXVlc3Rpb25JZD9nbih7fSx0KTpnbih7fSx0LHtyZXNwb25zZTplLnJlc3BvbnNlfSl9KSl9KX0pKX0pO2Nhc2UgRi51TXE6dmFyIHM7cmV0dXJuIGduKHt9LHQse3N0ZXBzOm51bGw9PShzPXQpfHxudWxsPT0ocz1zLnN0ZXBzKT92b2lkIDA6cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkIT09ZS5zdGVwSWQ/Z24oe30sdCk6Z24oe30sdCx7cXVlc3Rpb25zOnQucXVlc3Rpb25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGduKHt9LHQse3ZhbGlkYXRpb25FcnJvcjoobnVsbD09ZT92b2lkIDA6ZS52YWxpZGF0aW9uUmVzdWx0KVt0LmlkXXx8bnVsbH0pfSkpfSl9KSl9KTtjYXNlIEYuYTR6OnJldHVybiBnbih7fSx0LHtmaXJzdEZhaWxlZFZhbGlkYXRpb25RdWVzdGlvbjpudWxsPT1lP3ZvaWQgMDplLnF1ZXN0aW9uSWR9KTtjYXNlIEYuZ1lYOnZhciBjO3JldHVybiBnbih7fSx0LHtzdGVwczpudWxsPT0oYz10KXx8bnVsbD09KGM9Yy5zdGVwcyk/dm9pZCAwOmMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZ24oe30sdCx7cXVlc3Rpb25zOnQucXVlc3Rpb25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQhPT1lLnF1ZXN0aW9uSWQ/Z24oe30sdCk6Z24oe30sdCx7dmFsaWRhdGlvbkVycm9yOm51bGx9KX0pKX0pfSkpfSk7Y2FzZSBGLldYcDp2YXIgbDtyZXR1cm4gZS5zdXJ2ZXlJZCYmKG51bGw9PShsPXQpP3ZvaWQgMDpsLmlkKT09PWUuc3VydmV5SWQ/Z24oe30sdCx7ZGlzbWlzc2VkOiEwfSk6dDtjYXNlIEYuRWRoOnJldHVybiBnbih7fSx0LHtoaWRkZW46ITB9KTtjYXNlIEYuaHlpOnJldHVybiB0P2duKHt9LHQse2NvbXBsZXRlZDohMH0pOnQ7Y2FzZSBGLmdwSTp2YXIgZjtyZXR1cm4obnVsbD09KGY9dCk/dm9pZCAwOmYuaWQpIT09ZS5zdXJ2ZXlJZD90Om51bGw7Y2FzZSBGLko0QzpyZXR1cm4gdD9nbih7fSx0LHtoaWRkZW46ITB9KTp0O2Nhc2UgRi5uUTA6cmV0dXJuIHQmJnQuaGlkZGVuP2duKHt9LHQse2hpZGRlbjohMX0pOnQ7ZGVmYXVsdDpyZXR1cm4gdH19LG51ZGdlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PXQmJih0PW51bGwpLGUudHlwZT09PUYuX0w3JiZlLm51ZGdlP1huKHt9LGUubnVkZ2UpOnR9LHRvb2x0aXBHcm91cHM6ZnVuY3Rpb24odCxlKXtzd2l0Y2godm9pZCAwPT09dCYmKHQ9U24pLGUudHlwZSl7Y2FzZSBGLlBhdDppZihlLnRvb2x0aXBHcm91cHMpe3ZhciBuPXQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pKSxyPVtdO3JldHVybiBlLnRvb2x0aXBHcm91cHMubWFwKChmdW5jdGlvbih0KXstMT09PW4uaW5kZXhPZih0LmlkKSYmci5wdXNoKF9uKHt9LHQse3Rvb2x0aXBzOnQudG9vbHRpcHMubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gX24oe30sZSx7ZGlzcGxheUJlaGF2aW9yOnQuZGlzcGxheUJlaGF2aW9yfSl9KSl9KSl9KSksW10uY29uY2F0KG1uKGJuLHQpLHIpfXJldHVybiB0O2Nhc2UgRi5OS1g6cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gX24oe30sdCx7dG9vbHRpcHM6dC50b29sdGlwcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBfbih7fSx0LHtpc09wZW46dC5pZD09PWUudG9vbHRpcElkJiYhdC5pc09wZW59KX0pKX0pfSkpO2Nhc2UgRi5wVTU6cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gX24oe30sdCx7dG9vbHRpcHM6dC50b29sdGlwcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBfbih7fSx0LHtpc1ZpZXdlZDp0LmlzVmlld2VkfHx0LmlkPT09ZS50b29sdGlwSWR9KX0pKX0pfSkpO2Nhc2UgRi5sNW46cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gX24oe30sdCx7dG9vbHRpcHM6dC50b29sdGlwcy5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBuLHIsbz10LmlzTWF0Y2hlZDtyZXR1cm4gbnVsbCE9ZSYmbnVsbCE9KG49ZS5tYXRjaGVzKSYmLTEhPT1uLm1hdGNoZWQuaW5kZXhPZih0LmlkKT9vPSEwOm51bGwhPWUmJm51bGwhPShyPWUubWF0Y2hlcykmJi0xIT09ci51bm1hdGNoZWQuaW5kZXhPZih0LmlkKSYmKG89ITEpLF9uKHt9LHQse2lzTWF0Y2hlZDpvfSl9KSl9KX0pKTtjYXNlIEYuVTlpOmlmKGUudG9vbHRpcEdyb3VwKXt2YXIgbz10LmZpbHRlcigoZnVuY3Rpb24odCl7dmFyIG47cmV0dXJuIE51bWJlcih0LmlkKSE9PU51bWJlcihudWxsPT0obj1lLnRvb2x0aXBHcm91cCk/dm9pZCAwOm4uaWQpfSkpO3JldHVybltdLmNvbmNhdChtbihibixvKSxbZS50b29sdGlwR3JvdXBdKX1yZXR1cm4gdDtkZWZhdWx0OnJldHVybiB0fX0sdGlja2V0czp4bi5BeSx0aWNrZXRUeXBlczpFbi51LHRpY2tldEZvcm06ZnVuY3Rpb24odCxlKXtzd2l0Y2godm9pZCAwPT09dCYmKHQ9T24pLGUudHlwZSl7Y2FzZSBGLlE0eDp2YXIgbjtyZXR1cm4gZS50aWNrZXRGb3JtP0NuKHt9LHQsKChuPXt9KVtlLnRpY2tldEZvcm0udGlja2V0VHlwZUlkXT1lLnRpY2tldEZvcm0sbikpOnQ7Y2FzZSBGLkVfTjpyZXR1cm4gT247Y2FzZSBGLm9PODp2YXIgcjtyZXR1cm4gZS50aWNrZXRGb3JtP0NuKHt9LHQsKChyPXt9KVtlLnRpY2tldEZvcm0udGlja2V0VHlwZUlkXT1udWxsLHIpKTp0O2RlZmF1bHQ6cmV0dXJuIHR9fSxuZXdzSXRlbXM6ZnVuY3Rpb24odCxlKXt2YXIgbixyLG87c3dpdGNoKHZvaWQgMD09PXQmJih0PW51bGwpLGUudHlwZSl7Y2FzZSBGLmtPMDpyZXR1cm4gam4oe30sdCx7ZGF0YTpbXSxuZXh0UGFnZTpudWxsLGZldGNoaW5nU3RhdHVzOkFuLm41LmluUHJvZ3Jlc3N9KTtjYXNlIEYuRWJGOnJldHVybiBqbih7fSx0LHtuZXh0UGFnZTpudWxsLGZldGNoaW5nU3RhdHVzOkFuLm41LmluUHJvZ3Jlc3N9KTtjYXNlIEYuQVZKOnJldHVybiBqbih7fSx0LHtkYXRhOmUubmV3c0l0ZW1zfHxbXSxuZXh0UGFnZTplLm5leHRQYWdlLGZldGNoaW5nU3RhdHVzOkFuLm41LnN1Y2Nlc3MsbmV3c2ZlZWRWaXNpdGVkOiExfSk7Y2FzZSBGLmtpejpyZXR1cm4gam4oe30sdCx7ZGF0YTooMCxEZS5oKShbXS5jb25jYXQoa24oTG4sKG51bGw9PShuPXQpP3ZvaWQgMDpuLmRhdGEpfHxbXSksa24oTG4sZS5uZXdzSXRlbXN8fFtdKSksImlkIiksbmV4dFBhZ2U6ZS5uZXh0UGFnZSxmZXRjaGluZ1N0YXR1czpBbi5uNS5zdWNjZXNzfSk7Y2FzZSBGLlpvVjpyZXR1cm4gam4oe30sdCx7ZGF0YTpudWxsLGZldGNoaW5nU3RhdHVzOkFuLm41LmZhaWx1cmV9KTtjYXNlIEYuVU9BOnJldHVybiBqbih7fSx0LHtuZXdzZmVlZFZpc2l0ZWQ6ITB9KTtjYXNlIEYuY2dzOnJldHVybiBqbih7fSx0LHtkYXRhOm51bGw9PShyPXQpfHxudWxsPT0ocj1yLmRhdGEpP3ZvaWQgMDpyLm1hcCgoZnVuY3Rpb24odCl7dmFyIG47cmV0dXJuKG51bGw9PShuPWUubmV3c0l0ZW0pP3ZvaWQgMDpuLmlkKT09PXQuaWQ/ZS5uZXdzSXRlbTp0fSkpfSk7Y2FzZSBGLmNSbTpyZXR1cm4gam4oe30sdCx7ZGF0YTpudWxsPT0obz10KXx8bnVsbD09KG89by5kYXRhKT92b2lkIDA6by5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLm5ld3NJdGVtSWQ9PT10LmlkP0luKHt9LHQse3JlYWN0aW9uc1JlcGx5OkluKHt9LHQucmVhY3Rpb25zUmVwbHkse3JlYWN0aW9uSW5kZXg6ZS5yZWFjdGlvbkluZGV4fSl9KTp0fSkpfSk7Y2FzZSBGLmtwMzp2YXIgaSxhLHU9ZS5uZXdzZmVlZElkLHM9dSE9PShudWxsPT0oaT10KT92b2lkIDA6aS5uZXdzZmVlZElkKTtyZXR1cm4gam4oe30sdCx7bmV3c2ZlZWRJZDp1LGRhdGE6cz9udWxsOm51bGw9PShhPXQpP3ZvaWQgMDphLmRhdGF9KTtkZWZhdWx0OnJldHVybiB0fX0sbmV3c0l0ZW06ZnVuY3Rpb24odCxlKXt2YXIgbjtzd2l0Y2godm9pZCAwPT09dCYmKHQ9Tm4pLGUudHlwZSl7Y2FzZSBGLlBkNDpyZXR1cm4gUG4oe30sdCx7YWN0aXZlTmV3c0l0ZW06ZS5uZXdzSXRlbX0pO2Nhc2UgRi5HR006cmV0dXJuIFBuKHt9LHQse2RldGFpbHNGZXRjaGluZ1N0YXR1czpBbi5uNS5pblByb2dyZXNzfSk7Y2FzZSBGLmNnczpyZXR1cm4gZS5uZXdzSXRlbT97YWN0aXZlTmV3c0l0ZW06ZS5uZXdzSXRlbSxkZXRhaWxzRmV0Y2hpbmdTdGF0dXM6QW4ubjUuc3VjY2Vzc306e2FjdGl2ZU5ld3NJdGVtOm51bGwsZGV0YWlsc0ZldGNoaW5nU3RhdHVzOkFuLm41LmZhaWx1cmV9O2Nhc2UgRi5jUm06aWYoKG51bGw9PShuPXQuYWN0aXZlTmV3c0l0ZW0pP3ZvaWQgMDpuLmlkKT09PWUubmV3c0l0ZW1JZClyZXR1cm4gUG4oe30sdCx7YWN0aXZlTmV3c0l0ZW06UG4oe30sdC5hY3RpdmVOZXdzSXRlbSx7cmVhY3Rpb25zUmVwbHk6UG4oe30sdC5hY3RpdmVOZXdzSXRlbS5yZWFjdGlvbnNSZXBseSx7cmVhY3Rpb25JbmRleDplLnJlYWN0aW9uSW5kZXh9KX0pfSl9cmV0dXJuIHR9LHNwYWNlczpSbi5BeSxob21lOmxuLkF5LGhlbHA6TW4uQSxpbnRlcnNlY3Rpb246ZnVuY3Rpb24odCxlKXtzd2l0Y2godm9pZCAwPT09dCYmKHQ9em4pLGUudHlwZSl7Y2FzZSBGLmFfRTpyZXR1cm4gVW4oe30sdCx7aXNCb290ZWQ6ITB9KTtjYXNlIEYuVTlpOnJldHVybiBVbih7fSx0LHtpc1Rvb2x0aXBQcmV2aWV3OiEwfSk7Y2FzZSBGLm52OnJldHVybiBVbih7fSx0LHtpc1Rvb2x0aXBQcmV2aWV3OiExfSk7ZGVmYXVsdDpyZXR1cm4gdH19LHJvdXRlcjpvLkNfLHJvdXRlckhpc3Rvcnk6ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT10JiYodD17aGlzdG9yeTpbXSxpbmRleDowfSk7dmFyIG49dCxyPW4uaGlzdG9yeSxpPW4uaW5kZXgsYT10O2lmKG8uVWMubWF0Y2goZSkpe3N3aXRjaChlLnBheWxvYWQuYWN0aW9uKXtjYXNlIlBPUCI6LTE9PT0oaT1yLmZpbmRJbmRleCgoZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5PT09ZS5wYXlsb2FkLmxvY2F0aW9uLmtleX0pKSkmJihpPTAscj1bZS5wYXlsb2FkLmxvY2F0aW9uXSksYT17aGlzdG9yeTpyLGluZGV4Oml9O2JyZWFrO2Nhc2UiUkVQTEFDRSI6cltpXT1lLnBheWxvYWQubG9jYXRpb24sYT17aGlzdG9yeTpyLGluZGV4Oml9O2JyZWFrO2Nhc2UiUFVTSCI6ci5sZW5ndGg+MD9pKz0xOmk9MCxyLnNwbGljZShpLHIubGVuZ3RoLWksZS5wYXlsb2FkLmxvY2F0aW9uKSxhPXtoaXN0b3J5OnIsaW5kZXg6aX19MH1yZXR1cm4gYX0sY2hlY2tsaXN0czpmdW5jdGlvbih0LGUpe3N3aXRjaCh2b2lkIDA9PT10JiYodD1HbiksZS50eXBlKXtjYXNlIEYucUhlOmZvcih2YXIgbixyPUZuKERuLHQpLG89ZnVuY3Rpb24oKXt2YXIgdD1uLnZhbHVlLGU9ci5maW5kSW5kZXgoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNoZWNrbGlzdFByb2dyZXNzSWQ9PT10LmNoZWNrbGlzdFByb2dyZXNzSWR9KSk7LTE9PT1lP3IucHVzaCh0KTpyW2VdPXR9LGk9ZnVuY3Rpb24odCxlKXt2YXIgbj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdfHx0WyJAQGl0ZXJhdG9yIl07aWYobilyZXR1cm4obj1uLmNhbGwodCkpLm5leHQuYmluZChuKTtpZihBcnJheS5pc0FycmF5KHQpfHwobj1Cbih0KSl8fGUmJnQmJiJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGgpe24mJih0PW4pO3ZhciByPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHI+PXQubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTp0W3IrK119fX10aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KGUuY2hlY2tsaXN0cywhMCk7IShuPWkoKSkuZG9uZTspbygpO3JldHVybiByO2Nhc2UgRi5zMzA6dmFyIGE9ZS5jaGVja2xpc3RQcm9ncmVzc0lkLHU9dC5maW5kSW5kZXgoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNoZWNrbGlzdFByb2dyZXNzSWQ9PT1hfSkpO3JldHVybiB1Pi0xP1tdLmNvbmNhdChGbihEbix0LnNsaWNlKDAsdSkpLFtIbih7fSx0W3VdLHtkaXNtaXNzZWQ6ITB9KV0sRm4oRG4sdC5zbGljZSh1KzEpKSk6dDtjYXNlIEYuUU9COnZhciBzPWUuY2hlY2tsaXN0UHJvZ3Jlc3NJZCxjPXQuZmluZEluZGV4KChmdW5jdGlvbih0KXtyZXR1cm4gdC5jaGVja2xpc3RQcm9ncmVzc0lkPT09c30pKTtyZXR1cm4gYz4tMT9bXS5jb25jYXQoRm4oRG4sdC5zbGljZSgwLGMpKSxbSG4oe30sdFtjXSx7aGFzVXBkYXRlZE5vdGlmaWNhdGlvbkRldGFpbHM6ITB9KV0sRm4oRG4sdC5zbGljZShjKzEpKSk6dDtjYXNlIEYuQzIkOnZhciBsLGYsZD1lLmNoZWNrbGlzdFByb2dyZXNzSWQscD1lLnRhc2tJZCxoPXQuZmluZEluZGV4KChmdW5jdGlvbih0KXtyZXR1cm4gdC5jaGVja2xpc3RQcm9ncmVzc0lkPT09ZH0pKSx2PW51bGw9PShsPXRbaF0pP3ZvaWQgMDpsLnRhc2tHcm91cHMuZmluZEluZGV4KChmdW5jdGlvbih0KXtyZXR1cm4gdC50YXNrcy5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXB9KSl9KSkseT1udWxsPT0oZj10W2hdKT92b2lkIDA6Zi50YXNrR3JvdXBzW3ZdLnRhc2tzLmZpbmRJbmRleCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1wfSkpO2lmKChofHx2fHx5KTwwKXJldHVybiB0O3ZhciBnPXRbaF0udGFza0dyb3VwcyxtPUhuKHt9LGdbdl0se3Rhc2tzOltdLmNvbmNhdChGbihEbixnW3ZdLnRhc2tzLnNsaWNlKDAseSkpLFtIbih7fSxnW3ZdLnRhc2tzW3ldLHtpc0NvbXBsZXRlOiEwfSldLEZuKERuLGdbdl0udGFza3Muc2xpY2UoeSsxKSkpfSk7cmV0dXJuW10uY29uY2F0KEZuKERuLHQuc2xpY2UoMCxoKSksW0huKHt9LHRbaF0se3Rhc2tHcm91cHM6W10uY29uY2F0KEZuKERuLGcuc2xpY2UoMCx2KSksW21dLEZuKERuLGcuc2xpY2UodisxKSkpfSldLEZuKERuLHQuc2xpY2UoaCsxKSkpO2Nhc2UgRi5STVE6dmFyIGI9ZS5jaGVja2xpc3RQcm9ncmVzc0lkLHc9ZS50YXNrSWQ7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jaGVja2xpc3RQcm9ncmVzc0lkPT09Yj90LnF1ZXVlZFRhc2tJZD13OnQucXVldWVkVGFza0lkPXZvaWQgMCx0fSkpO2Nhc2UgRi5JZ3k6cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5xdWV1ZWRUYXNrSWQ9dm9pZCAwLHR9KSk7ZGVmYXVsdDpyZXR1cm4gdH19LGNoZWNrbGlzdDpmdW5jdGlvbih0LGUpe3N3aXRjaCh2b2lkIDA9PT10JiYodD1XbiksZS50eXBlKXtjYXNlIEYuUUtXOnJldHVybiBxbih7fSx0LHtjdXJyZW50bHlSZXNvbHZpbmdUYXNrSWQ6ZS50YXNrSWR9KTtjYXNlIEYucUR5OnJldHVybiBxbih7fSx0LHtjdXJyZW50bHlSZXNvbHZpbmdUYXNrSWQ6bnVsbH0pO2Nhc2UgRi51Ylo6cmV0dXJuIHFuKHt9LHQse29wZW5DaGVja2xpc3RQcm9ncmVzc0lkOmUuY2hlY2tsaXN0UHJvZ3Jlc3NJZH0pO2Nhc2UgRi5lS1g6cmV0dXJuIHFuKHt9LHQse29wZW5DaGVja2xpc3RQcm9ncmVzc0lkOm51bGx9KTtkZWZhdWx0OnJldHVybiB0fX0sdGFza3M6S24uQXkscmVhbHRpbWVDb25uZWN0aW9uOlpuLkF5LHdvcmtmbG93UHJldmlldzpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10JiYodD1udWxsKSxlLnR5cGU9PT1GLlRjMD97d29ya2Zsb3dJbnN0YW5jZUlkOmUud29ya2Zsb3dJbnN0YW5jZUlkLHJlc29sdXRpb25Cb3RCZWhhdmlvclZlcnNpb25JZDplLnJlc29sdXRpb25Cb3RCZWhhdmlvclZlcnNpb25JZCxib3RJbnRybzplLmJvdEludHJvfTp0fSx0eXBpbmdBZG1pbnM6UW4sb25ib2FyZGluZ1BsYW46JG4sZGV2T3ZlcnJpZGVzOmVyLGZpblZvaWNlQ2FsbDpuci5BeSxtZXNzZW5nZXJNb2RlU3dpdGNoZXI6cnIudV99KSxpcj1vcixhcj1uKDY4NzYyKTtmdW5jdGlvbiB1cih0LGUpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fSh0KXx8ZnVuY3Rpb24odCxlKXt2YXIgbj1udWxsPT10P251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxhLHU9W10scz0hMCxjPSExO3RyeXtpZihpPShuPW4uY2FsbCh0KSkubmV4dCwwPT09ZSl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47cz0hMX1lbHNlIGZvcig7IShzPShyPWkuY2FsbChuKSkuZG9uZSkmJih1LnB1c2goci52YWx1ZSksdS5sZW5ndGghPT1lKTtzPSEwKTt9Y2F0Y2godCl7Yz0hMCxvPXR9ZmluYWxseXt0cnl7aWYoIXMmJm51bGwhPW4ucmV0dXJuJiYoYT1uLnJldHVybigpLE9iamVjdChhKSE9PWEpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIHV9fSh0LGUpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gc3IodCxlKTt2YXIgbj17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/c3IodCxlKTp2b2lkIDB9fSh0LGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gc3IodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfWZ1bmN0aW9uIGNyKCl7cmV0dXJuIGNyPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sY3IuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBscj0vXihVQXxZVHxNTyktXGQrLVxkKyQvaSxmcj0vXkctWzAtOUEtWl17MTB9JC8sZHI9W0YuSjRDLEYublEwLEYuRHpMLEYuSE11LEYuX2JTLEYuWkJ6LEYuUjNVLEYuVG1RLEYuWGlBXTtmdW5jdGlvbiBwcih0LGUsbil7c3dpdGNoKHQudHlwZSl7Y2FzZSBGLko0QzpyZXR1cm57bmFtZToiT3BlbmVkIE1lc3NlbmdlciJ9O2Nhc2UgRi5uUTA6cmV0dXJue25hbWU6IkNsb3NlZCBNZXNzZW5nZXIifTtjYXNlIEYuRHpMOnJldHVybntuYW1lOiJTdGFydGVkIE5ldyBDb252ZXJzYXRpb24ifTtjYXNlIEYuSE11OnZhciByPWUuYnlJZFt0LmNvbnZlcnNhdGlvbklkXSxvPXZyKHIpLGk9by5jdXN0b21Cb3RJZCxhPW8ubWVzc2FnZUlkLHU9Y3Ioe30saT97IkN1c3RvbSBCb3QgSUQiOml8fGF9OnsiTWVzc2FnZSBJRCI6YX0pO3JldHVybntuYW1lOiJTZW50IGEgUmVwbHkiLG1ldGFkYXRhOmF8fGk/dTp2b2lkIDAsY29udmVyc2F0aW9uSWQ6dC5jb252ZXJzYXRpb25JZH07Y2FzZSBGLlhpQTpjYXNlIEYuX2JTOnJldHVybntuYW1lOiJQcm92aWRlZCBFbWFpbCBBZGRyZXNzIn07Y2FzZSBGLlpCejpyZXR1cm57bmFtZTp0LmNhcmQuY29tcGxldGVkPyJDb21wbGV0ZWQgQXBwIEZsb3ciOiJJbnRlcmFjdGVkIHdpdGggQXBwIixtZXRhZGF0YTp7IkFwcCBOYW1lIjp0LmNhcmQuYXBwX3BhY2thZ2VfbmFtZSxMb2NhdGlvbjpncihuKX19O2Nhc2UgRi5SM1U6dmFyIHM9ZS5ieUlkW3QuY29udmVyc2F0aW9uSWRdLGM9eXIocyx0LnBhcnRJZCksbD1jLmN1c3RvbUJvdElkLGY9Yy5tZXNzYWdlSWQ7cmV0dXJuIGY/e25hbWU6IlRyaWdnZXJlZCBNZXNzYWdlIixtZXRhZGF0YTpjcih7fSxsP3siQ3VzdG9tIEJvdCBJRCI6bHx8Zn06eyJNZXNzYWdlIElEIjpmfSksY29udmVyc2F0aW9uSWQ6dC5jb252ZXJzYXRpb25JZCxub25JbnRlcmFjdGlvbjohMH06dm9pZCAwO2Nhc2UgRi5UbVE6aWYoZS5ieUlkW3QuY29udmVyc2F0aW9uSWRdLnJlYWQpcmV0dXJuO3ZhciBkPWUuYnlJZFt0LmNvbnZlcnNhdGlvbklkXSxwPXZyKGQpLGg9cC5jdXN0b21Cb3RJZCx2PXAubWVzc2FnZUlkO3JldHVybntuYW1lOiJWaWV3ZWQgTWVzc2FnZSIsbWV0YWRhdGE6Y3Ioe30saD97IkN1c3RvbSBCb3QgSUQiOmh8fHZ9OnsiTWVzc2FnZSBJRCI6dn0pLGNvbnZlcnNhdGlvbklkOnQuY29udmVyc2F0aW9uSWQsbm9uSW50ZXJhY3Rpb246ITB9fX12YXIgaHI9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHQpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXt2YXIgbj1mdW5jdGlvbih0LGUsbil7aWYoZSYmIUFycmF5LmlzQXJyYXkoZSkmJiJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpe3ZhciByPWUubGVuZ3RoO3JldHVybiBzcihlLHZvaWQgMCE9PW4mJm48cj9uOnIpfXJldHVybiB0KGUsbil9KHVyLGUsMikscj1uWzBdLG89blsxXTtpZihvKXJldHVybiB0P3QrIiwgIityKyI6ICIrbzpyKyI6ICciK28rIicifSksbnVsbCl9LHZyPWZ1bmN0aW9uKHQpe3ZhciBlLG49dC5wYXJ0c1swXSxyPW4mJm4ucnVsZXNldElkO3JldHVybntjdXN0b21Cb3RJZDpudWxsPT0oZT10LmFuYWx5dGljc01ldGFkYXRhKT92b2lkIDA6ZS5jdXN0b21Cb3RJZCxtZXNzYWdlSWQ6cn19LHlyPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZSYmLTEhPT1lLmluZGV4T2YoIm1lc3NhZ2UtIikscj12cih0KSxvPXIuY3VzdG9tQm90SWQsaT1yLm1lc3NhZ2VJZDtyZXR1cm4gY3Ioe2N1c3RvbUJvdElkOm99LG4/e21lc3NhZ2VJZDppfTp7fSl9LGdyPWZ1bmN0aW9uKHQpe3JldHVybigwLGFyLnNCKSh0KT8iQ29udmVyc2F0aW9uIjoiSG9tZSJ9O3ZhciBtcj1uKDE0MTIwKTtmdW5jdGlvbiBicigpe3JldHVybiBicj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPWFyZ3VtZW50c1tlXTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKHRbcl09bltyXSl9cmV0dXJuIHR9LGJyLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiB3cih0KXt2YXIgZT17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24obil7aWYodFtuXSl7dmFyIHI9bi50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyAvZywiXyIpO2Vbcl09dFtuXX19KSksZX1mdW5jdGlvbiBfcih0LGUsbixyLG8pe3ZhciBpPW4/ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHI9dm9pZCAwPT09bj97fTpuLG89ci5uYW1lLGk9ci5tZXRhZGF0YSxhPXZvaWQgMD09PWk/e306aSxzPXIuY29udmVyc2F0aW9uSWQsYz1yLm5vbkludGVyYWN0aW9uLGw9dm9pZCAwIT09YyYmYzt0cnl7dCgiZXZlbnQiLG8sYnIoe2V2ZW50Q2F0ZWdvcnk6IkludGVyY29tIE1lc3NlbmdlciIsZXZlbnRMYWJlbDpocihhKX0sd3IoYSkscz97Y29udmVyc2F0aW9uX2lkOnN9Ont9LGw/e25vbkludGVyYWN0aW9uOmx9Ont9LGU/e3NlbmRfdG86ZX06e30pKX1jYXRjaCh0KXsoMCx1LkZTKSgiSW50ZXJjb20gLSBTb21ldGhpbmcgd2VudCB3cm9uZyBzZW5kaW5nIHRoZSBHb29nbGUgQW5hbHl0aWNzIGV2ZW50IHZpYSBndGFnIix0KX19fShuLHIpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciByPXZvaWQgMD09PW4/e306bixvPXIubmFtZSxpPXIubWV0YWRhdGEsYT12b2lkIDA9PT1pP3t9Omkscz1yLmNvbnZlcnNhdGlvbklkLGM9ci5ub25JbnRlcmFjdGlvbixsPXZvaWQgMCE9PWMmJmM7dHJ5e3QucHVzaChicih7ZXZlbnQ6byxldmVudENhdGVnb3J5OiJJbnRlcmNvbSBNZXNzZW5nZXIiLGV2ZW50TGFiZWw6aHIoYSl9LHdyKGEpLHM/e2NvbnZlcnNhdGlvbl9pZDpzfTp7fSxsP3tub25JbnRlcmFjdGlvbjpsfTp7fSxlP3tzZW5kX3RvOmV9Ont9KSl9Y2F0Y2godCl7KDAsdS5GUykoIkludGVyY29tIC0gU29tZXRoaW5nIHdlbnQgd3JvbmcgcHVzaGluZyB0aGUgR29vZ2xlIEFuYWx5dGljcyBldmVudCB0byBHVE0iLHQpfX19KG8sciksYT0oMCxtci5vUCkoZSkscz1wcih0LGUuY29udmVyc2F0aW9ucyxhKTtzJiZpKHMpfWZ1bmN0aW9uIFNyKCl7cmV0dXJuIFNyPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sU3IuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciB4cj1mdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iPT10eXBlb2Yobj1udWxsPT0oZT13aW5kb3cpfHxudWxsPT0oZT1lLnBhcmVudCk/dm9pZCAwOmUuZ2EpJiYiZnVuY3Rpb24iPT10eXBlb2YobnVsbD09bj92b2lkIDA6bi5nZXRBbGwpJiYobnVsbD09bj92b2lkIDA6bi5sb2FkZWQpKXt2YXIgZSxuLHI9d2luZG93LnBhcmVudC5nYS5nZXRBbGwoKTtpZihBcnJheS5pc0FycmF5KHIpJiZyLmxlbmd0aCl7aWYodCl7dmFyIG89RXIocix0KTtyZXR1cm4gb3x8KHdpbmRvdy5wYXJlbnQuZ2EoImNyZWF0ZSIsdCwiYXV0byIsImludGVyY29tTWVzc2VuZ2VyIiksRXIod2luZG93LnBhcmVudC5nYS5nZXRBbGwoKSx0KSl9cmV0dXJuIHJbMF19fX0sRXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5maW5kKChmdW5jdGlvbih0KXt0cnl7cmV0dXJuIHQuYi5kYXRhLnZhbHVlc1siOnRyYWNraW5nSWQiXT09PWV9Y2F0Y2gobil7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQuZ2V0KXJldHVybiBlPT09dC5nZXQoInRyYWNraW5nSWQiKX19KSl9O2Z1bmN0aW9uIENyKHQsZSxuKXt2YXIgcj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49dm9pZCAwPT09ZT97fTplLHI9bi5uYW1lLG89bi5tZXRhZGF0YSxpPXZvaWQgMD09PW8/e306byxhPW4ubm9uSW50ZXJhY3Rpb24scz12b2lkIDAhPT1hJiZhO3RyeXt0LnNlbmQoImV2ZW50IixTcih7ZXZlbnRDYXRlZ29yeToiSW50ZXJjb20gTWVzc2VuZ2VyIixldmVudEFjdGlvbjpyLGV2ZW50TGFiZWw6aHIoaSl9LHM/e25vbkludGVyYWN0aW9uOnN9Ont9KSl9Y2F0Y2godCl7KDAsdS5GUykoIkludGVyY29tIC0gU29tZXRoaW5nIHdlbnQgd3Jvbmcgc2VuZGluZyB0aGUgR29vZ2xlIEFuYWx5dGljcyBldmVudCIsdCl9fX0obiksbz0oMCxtci5vUCkoZSksaT1wcih0LGUuY29udmVyc2F0aW9ucyxvKTtpJiZyKGkpfXZhciBPcj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciByPXQuZ2V0U3RhdGUoKSxvPWUobik7aWYoLTE9PT1kci5pbmRleE9mKG4udHlwZSl8fCFyLmFwcC5mZWF0dXJlcy5nb29nbGVBbmFseXRpY3MpcmV0dXJuIG87dmFyIGksYSxzPXIuYXBwLmN1c3RvbUdvb2dsZUFuYWx5dGljc1RyYWNrZXJJZCxjPXZvaWQgMCxsPXZvaWQgMCxmPXZvaWQgMDtyZXR1cm4oKGk9cykmJmkubWF0Y2gobHIpfHwhcykmJihjPXhyKHMpKSYmQ3IobixyLGMpLCFmdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5tYXRjaChmcil9KHMpJiZzfHwhci5hcHAuZmVhdHVyZXMuZ29vZ2xlQW5hbHl0aWNzNEludGVncmF0aW9ufHwobD1mdW5jdGlvbigpe3ZhciB0LGU9bnVsbD09KHQ9d2luZG93KXx8bnVsbD09KHQ9dC5wYXJlbnQpP3ZvaWQgMDp0Lmd0YWc7aWYoZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUpcmV0dXJuIGV9KCksZj1udWxsPT0oYT13aW5kb3cpfHxudWxsPT0oYT1hLnBhcmVudCk/dm9pZCAwOmEuZGF0YUxheWVyLChsfHxmKSYmX3IobixyLGwscyxmKSksY3x8bHx8Znx8KDAsdS5GUykoIkludGVyY29tIC0gR29vZ2xlIEFuYWx5dGljcyBpcyBub3QgaW5zdGFsbGVkIG9yIGNvbmZpZ3VyZWQsIGhhdmUgeW91IGZvcmdvdHRlbiB0byBpbmNsdWRlIGl0PyIpLG99fX0sQXI9bigzMzA0OCksSXI9big5Nzc3NSksa3I9bigzODI4NSk7ZnVuY3Rpb24gTHIoKXtyZXR1cm4gTHI9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxMci5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFRyPSIvIixqcj1mdW5jdGlvbih0KXtyZXR1cm4gdFt0Lk9ORV9XRUVLPTYwNDhlNV09Ik9ORV9XRUVLIix0W3QuTklORV9NT05USFM9MjMzM2U3XT0iTklORV9NT05USFMiLHR9KGpyfHx7fSksUHI9anIuTklORV9NT05USFMsTnI9anIuT05FX1dFRUssTXI9anIuT05FX1dFRUs7ZnVuY3Rpb24gUnIodCxlKXtyZXR1cm4gdm9pZCAwIT09ZSYmZSE9PXR9ZnVuY3Rpb24gVXIodCxlLG4scixvLGksYSx1KXt0LndyaXRlKGUsbix7ZG9tYWluOm8scGF0aDpUcixleHBpcmVzOnU/bmV3IERhdGUoMWUzKnUpOm5ldyBEYXRlKEFyLkF5Lm5vdygpK3IpLHNhbWVTaXRlOmk/Im5vbmUiOiJsYXgiLHNlY3VyZTppfHxhfSl9ZnVuY3Rpb24genIodCxlKXtyZXR1cm4gbnVsbCE9dD90OmV9ZnVuY3Rpb24gSHIodCl7dmFyIGU9dC5kb21haW5TZXR0aW5nLG49dC5vcmlnaW5Db29raWVEb21haW4scj10Lm1ldGEsbz12b2lkIDA9PT1yP3t9OnI7aWYoIm5vbmUiIT09ZSl7aWYodm9pZCAwIT09ZSYmKDAsdS5GUykoIkludGVyY29tIE1lc3NlbmdlciBlcnJvcjogY29va2llX2RvbWFpbiBhdHRyaWJ1dGUgc3VwcG9ydHMgb25seSBgbm9uZWAgb3B0aW9uIiksbilyZXR1cm4iLiIrbjt2YXIgaT0oMCxDLlVtKSgpLGE9KGl8fCIiKS5zcGxpdCgiOiIpWzBdO3JldHVybigwLFYuc3EpKCJtaXNzaW5nT3JpZ2luRG9tYWluIixMcih7fSxvLHtob3N0OmEscmF3SG9zdDppfSkpLCJsb2NhbGhvc3QiPT09YT8iIjphfX12YXIgRnI9big0MTE3KSxEcj1uKDEzNTYwKSxCcj1uLm4oRHIpLFZyPW4oNzY3MjIpLEdyPW4oOTcxMzIpLHFyPW4oMjU0MTcpLFdyPSgwLEdyLk16KSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYXBwLmhhc1RoZU1lc3NlbmdlckJlZW5PcGVuZWR9KSxxci5BeSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmISFlLmxlbmd0aH0pKSxLcj1uKDcyNjgzKSxacj1uKDY2Nzk5KSxKcj1mdW5jdGlvbih0LGUsbixyLG8pe3JldHVybiBmdW5jdGlvbihpKXtpKGZ1bmN0aW9uKHQsZSxuLHIsbyl7cmV0dXJue3R5cGU6Ri5MdlAsdXNlcjp0LGhvc3RuYW1lOmUsY29udmVyc2F0aW9uSWQ6bixvcmdhbml6YXRpb25JZDpyLHVzZXJWZXJpZmljYXRpb25FbmFibGVkOm99fSh0LGUsbixyLG8pKX19O3ZhciBZcj1uKDk2NzE5KSxRcj1uKDE0NDcxKSxYcj1uKDM2NTc3KSwkcj1uKDcxNDI0KSx0bz1uKDY1MjYxKSxlbz1uKDI5NTQ0KSxubz1uKDExMzg4KSxybz1uKDQ2MDUpLG9vPW4oNTQ3ODgpLGlvPW4oNDc4ODMpLGFvPW4oNDY2MDQpLHVvPW4oNDAyMzgpLHNvPW5ldyBNYXA7ZnVuY3Rpb24gY28odCl7cmV0dXJuIGNvPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxjbyh0KX1mdW5jdGlvbiBsbygpe2xvPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3ZhciB0LGU9e30sbj1PYmplY3QucHJvdG90eXBlLHI9bi5oYXNPd25Qcm9wZXJ0eSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24odCxlLG4pe3RbZV09bi52YWx1ZX0saT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxhPWkuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIix1PWkuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIscz1pLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gYyh0LGUsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtjKHt9LCIiKX1jYXRjaCh0KXtjPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1ufX1mdW5jdGlvbiBsKHQsZSxuLHIpe3ZhciBpPWUmJmUucHJvdG90eXBlIGluc3RhbmNlb2YgZz9lOmcsYT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSx1PW5ldyBMKHJ8fFtdKTtyZXR1cm4gbyhhLCJfaW52b2tlIix7dmFsdWU6Tyh0LG4sdSl9KSxhfWZ1bmN0aW9uIGYodCxlLG4pe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6dC5jYWxsKGUsbil9fWNhdGNoKHQpe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOnR9fX1lLndyYXA9bDt2YXIgZD0ic3VzcGVuZGVkU3RhcnQiLHA9InN1c3BlbmRlZFlpZWxkIixoPSJleGVjdXRpbmciLHY9ImNvbXBsZXRlZCIseT17fTtmdW5jdGlvbiBnKCl7fWZ1bmN0aW9uIG0oKXt9ZnVuY3Rpb24gYigpe312YXIgdz17fTtjKHcsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgXz1PYmplY3QuZ2V0UHJvdG90eXBlT2YsUz1fJiZfKF8oVChbXSkpKTtTJiZTIT09biYmci5jYWxsKFMsYSkmJih3PVMpO3ZhciB4PWIucHJvdG90eXBlPWcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodyk7ZnVuY3Rpb24gRSh0KXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2ModCxlLChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW52b2tlKGUsdCl9KSl9KSl9ZnVuY3Rpb24gQyh0LGUpe2Z1bmN0aW9uIG4obyxpLGEsdSl7dmFyIHM9Zih0W29dLHQsaSk7aWYoInRocm93IiE9PXMudHlwZSl7dmFyIGM9cy5hcmcsbD1jLnZhbHVlO3JldHVybiBsJiYib2JqZWN0Ij09Y28obCkmJnIuY2FsbChsLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGwuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCxhLHUpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LGEsdSl9KSk6ZS5yZXNvbHZlKGwpLnRoZW4oKGZ1bmN0aW9uKHQpe2MudmFsdWU9dCxhKGMpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCxhLHUpfSkpfXUocy5hcmcpfXZhciBpO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIE8oZSxuLHIpe3ZhciBvPWQ7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PWgpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09dil7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9QSh1LHIpO2lmKHMpe2lmKHM9PT15KWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWQpdGhyb3cgbz12LHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz1oO3ZhciBjPWYoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT92OnAsYy5hcmc9PT15KWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89dixyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIEEoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LEEoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSkseTt2YXIgaT1mKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwseTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwseSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCx5KX1mdW5jdGlvbiBJKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIGsodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIEwodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChJLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFQoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW2FdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGk9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBpLm5leHQ9aX19dGhyb3cgbmV3IFR5cGVFcnJvcihjbyhlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiBtLnByb3RvdHlwZT1iLG8oeCwiY29uc3RydWN0b3IiLHt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMH0pLG8oYiwiY29uc3RydWN0b3IiLHt2YWx1ZTptLGNvbmZpZ3VyYWJsZTohMH0pLG0uZGlzcGxheU5hbWU9YyhiLHMsIkdlbmVyYXRvckZ1bmN0aW9uIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT1tfHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxiKToodC5fX3Byb3RvX189YixjKHQscywiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh4KSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSxFKEMucHJvdG90eXBlKSxjKEMucHJvdG90eXBlLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPUMsZS5hc3luYz1mdW5jdGlvbih0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBDKGwodCxuLHIsbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sRSh4KSxjKHgscywiR2VuZXJhdG9yIiksYyh4LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksYyh4LCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPVQsTC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkwscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKGspLCFlKWZvcih2YXIgbiBpbiB0aGlzKSJ0Ij09PW4uY2hhckF0KDApJiZyLmNhbGwodGhpcyxuKSYmIWlzTmFOKCtuLnNsaWNlKDEpKSYmKHRoaXNbbl09dCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgbj10aGlzO2Z1bmN0aW9uIG8ocixvKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5hcmc9ZSxuLm5leHQ9cixvJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sdT1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPXIuY2FsbChhLCJjYXRjaExvYyIpLGM9ci5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZihzJiZjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFjKXRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIG89dGhpcy50cnlFbnRyaWVzW25dO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJnIuY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZpLnRyeUxvYzw9ZSYmZTw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyx5KTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLHl9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksayhuKSx5fX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBvPXIuYXJnO2sobil9cmV0dXJuIG99fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOlQoZSkscmVzdWx0TmFtZTpuLG5leHRMb2M6cn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSx5fX0sZX1mdW5jdGlvbiBmbyh0LGUpe3ZhciBuPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZihuKXJldHVybihuPW4uY2FsbCh0KSkubmV4dC5iaW5kKG4pO2lmKEFycmF5LmlzQXJyYXkodCl8fChuPWZ1bmN0aW9uKHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBwbyh0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9wbyh0LGUpOnZvaWQgMH19KHQpKXx8ZSYmdCYmIm51bWJlciI9PXR5cGVvZiB0Lmxlbmd0aCl7biYmKHQ9bik7dmFyIHI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcj49dC5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOnRbcisrXX19fXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX1mdW5jdGlvbiBwbyh0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkoZSk7bjxlO24rKylyW25dPXRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gaG8odCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiB2byh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXtobyhpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7aG8oaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfX1mdW5jdGlvbiB5byh0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZ28oci5rZXkpLHIpfX1mdW5jdGlvbiBnbyh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKCJvYmplY3QiIT1jbyh0KXx8IXQpcmV0dXJuIHQ7dmFyIG49dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbCh0LGV8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPWNvKHIpKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09ZT9TdHJpbmc6TnVtYmVyKSh0KX0odCwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PWNvKGUpP2U6ZSsiIn12YXIgbW89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBlPXQuY2FwdHVyZUVycm9yLG49dC5zYWZlQ29uc29sZUVycm9yLHI9dC5pbnRlcmNvbUNsaWVudCxvPXQuc3RvcmU7dGhpcy5jYXB0dXJlRXJyb3I9dm9pZCAwLHRoaXMuc2FmZUNvbnNvbGVFcnJvcj12b2lkIDAsdGhpcy5pbnRlcmNvbUNsaWVudD12b2lkIDAsdGhpcy5zdG9yZT12b2lkIDAsdGhpcy5jYXB0dXJlRXJyb3I9ZSx0aGlzLnNhZmVDb25zb2xlRXJyb3I9bix0aGlzLmludGVyY29tQ2xpZW50PXIsdGhpcy5zdG9yZT1vfXZhciBlLHIsbyxpPXQucHJvdG90eXBlO3JldHVybiBpLmF0dGVtcHRDb25uZWN0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dm8obG8oKS5tYXJrKChmdW5jdGlvbiB0KGUpe3ZhciBuLHIsbyxpLGE7cmV0dXJuIGxvKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYoMCE9PWUuZW5kcG9pbnRzLmxlbmd0aCl7dC5uZXh0PTM7YnJlYWt9cmV0dXJuIHRoaXMucmVwb3J0RXJyb3IobmV3IEVycm9yKCJObyBlbmRwb2ludHMgY29uZmlndXJlZCIpKSx0LmFicnVwdCgicmV0dXJuIixudWxsKTtjYXNlIDM6bj1mbyhlLmVuZHBvaW50cywhMCk7Y2FzZSA0OmlmKChyPW4oKSkuZG9uZSl7dC5uZXh0PTIwO2JyZWFrfXJldHVybiBvPXIudmFsdWUsdC5uZXh0PTgsdGhpcy5hdHRlbXB0U2luZ2xlQ29ubmVjdGlvbihvKTtjYXNlIDg6aT10LnNlbnQsdC50MD1pLnR5cGUsdC5uZXh0PSJjb25uZWN0ZWQiPT09dC50MD8xMjoiY3NwLXZpb2xhdGlvbiI9PT10LnQwPzEzOiJzZWN1cml0eS1lcnJvciI9PT10LnQwPzE0OiJmYWlsZWQiPT09dC50MD8xNToxODticmVhaztjYXNlIDEyOnJldHVybiB0LmFicnVwdCgicmV0dXJuIixpLnJlYWx0aW1lQ2xpZW50KTtjYXNlIDEzOmNhc2UgMTQ6cmV0dXJuIHQuYWJydXB0KCJjb250aW51ZSIsMTgpO2Nhc2UgMTU6cmV0dXJuKDAsVi5vUykoImFibHlfY29ubmVjdGlvbl9mYWlsZWQiLHtlcnJvcl90eXBlOiJ0ZXJtaW5hbCJ9KSx0aGlzLnJlcG9ydEVycm9yKGkuZXJyb3IpLHQuYWJydXB0KCJyZXR1cm4iLG51bGwpO2Nhc2UgMTg6dC5uZXh0PTQ7YnJlYWs7Y2FzZSAyMDpyZXR1cm4gYT1uZXcgRXJyb3IoIkFsbCBjb25uZWN0aW9uIGF0dGVtcHRzIGZhaWxlZCBkdWUgdG8gQ1NQIHZpb2xhdGlvbnMiKSx0aGlzLnJlcG9ydEVycm9yKGEpLHQuYWJydXB0KCJyZXR1cm4iLG51bGwpO2Nhc2UgMjM6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LHRoaXMpfSkpKTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxpLmF0dGVtcHRTaW5nbGVDb25uZWN0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dm8obG8oKS5tYXJrKChmdW5jdGlvbiB0KGUpe3ZhciBuLHIsbyxpLGEsdTtyZXR1cm4gbG8oKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gbj1udWxsLHI9bnVsbCx0LnByZXY9Mix0Lm5leHQ9NSx0aGlzLmNyZWF0ZVJlYWx0aW1lQ2xpZW50KGUpO2Nhc2UgNTpyZXR1cm4gbz10LnNlbnQsbj10aGlzLndhaXRGb3JDc3BWaW9sYXRpb24oZS5lbmRwb2ludCkscj10aGlzLndhaXRGb3JDb25uZWN0aW9uKG8pLHQubmV4dD0xMCxQcm9taXNlLnJhY2UoW3IucHJvbWlzZSxuLnByb21pc2VdKTtjYXNlIDEwOmlmKCJjc3AtdmlvbGF0aW9uIiE9PXQuc2VudCl7dC5uZXh0PTE2O2JyZWFrfXJldHVybiByLmRpc3Bvc2UoKSxuLmRpc3Bvc2UoKSwoMCxWLm9TKSgiYWJseV9jc3BfdmlvbGF0aW9uIiksdC5hYnJ1cHQoInJldHVybiIse3R5cGU6ImNzcC12aW9sYXRpb24ifSk7Y2FzZSAxNjpyZXR1cm4gdC5hYnJ1cHQoInJldHVybiIse3R5cGU6ImNvbm5lY3RlZCIscmVhbHRpbWVDbGllbnQ6b30pO2Nhc2UgMTk6aWYodC5wcmV2PTE5LHQudDA9dC5jYXRjaCgyKSxudWxsPT0oaT1yKXx8aS5kaXNwb3NlKCksbnVsbD09KGE9bil8fGEuZGlzcG9zZSgpLCEodC50MCBpbnN0YW5jZW9mIEVycm9yJiYiU2VjdXJpdHlFcnJvciI9PT10LnQwLm5hbWUpKXt0Lm5leHQ9MjU7YnJlYWt9cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iLHt0eXBlOiJzZWN1cml0eS1lcnJvciJ9KTtjYXNlIDI1OnJldHVybiB0LmFicnVwdCgicmV0dXJuIix7dHlwZToiZmFpbGVkIixlcnJvcjp0LnQwfSk7Y2FzZSAyNjpyZXR1cm4gdC5wcmV2PTI2LG51bGw9PSh1PW4pfHx1LmRpc3Bvc2UoKSx0LmZpbmlzaCgyNik7Y2FzZSAyOTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsdGhpcyxbWzIsMTksMjYsMjldXSl9KSkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGkud2FpdEZvckNzcFZpb2xhdGlvbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybntwcm9taXNlOm5ldyBQcm9taXNlKChmdW5jdGlvbihuKXtlLmFkZENzcFZpb2xhdGlvbk9ic2VydmVyKHQsbil9KSkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4iY3NwLXZpb2xhdGlvbiJ9KSksZGlzcG9zZTpmdW5jdGlvbigpe3JldHVybiBlLnJlbW92ZUNzcFZpb2xhdGlvbk9ic2VydmVyKHQpfX19LGkud2FpdEZvckNvbm5lY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm57cHJvbWlzZTpuZXcgUHJvbWlzZSgoZnVuY3Rpb24obixyKXt0LmNvbm5lY3Rpb24ub25jZSgiY29ubmVjdGVkIiwoZnVuY3Rpb24oKXsoMCxWLm9TKSgiYWJseV9jb25uZWN0ZWQiLHtjb25uZWN0aW9uX3R5cGU6ImluaXRpYWwifSksZS5zdG9yZS5kaXNwYXRjaCgoMCxabi5UcCkoWHIuYSQpKSxuKCl9KSksdC5jb25uZWN0aW9uLm9uY2UoImZhaWxlZCIsKGZ1bmN0aW9uKHQpe3IobmV3IEVycm9yKCJBYmx5IGNvbm5lY3Rpb24gZmFpbGVkOiAiK3QucmVhc29uKSksZS5zdG9yZS5kaXNwYXRjaCgoMCxabi5UcCkoWHIudzMpKX0pKSx0LmNvbm5lY3QoKX0pKS50aGVuKChmdW5jdGlvbigpe3JldHVybiJjb25uZWN0ZWQifSkpLGRpc3Bvc2U6ZnVuY3Rpb24oKXtyZXR1cm4gdC5jbG9zZSgpfX19LGkuY3JlYXRlUmVhbHRpbWVDbGllbnQ9ZnVuY3Rpb24oKXt2YXIgdD12byhsbygpLm1hcmsoKGZ1bmN0aW9uIHQoZSl7dmFyIHIsbyxpLGEsdT10aGlzO3JldHVybiBsbygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB0Lm5leHQ9MixuLmUoODA5NikudGhlbihuLmJpbmQobiw0Njc3KSk7Y2FzZSAyOnJldHVybiByPXQuc2VudCxvPXIuQmFzZVJlYWx0aW1lLGk9ci5XZWJTb2NrZXRUcmFuc3BvcnQsYT1yLkZldGNoUmVxdWVzdCx0LmFicnVwdCgicmV0dXJuIixuZXcgbyh7YXV0aENhbGxiYWNrOmZ1bmN0aW9uKHQsZSl7dS5hdXRob3JpemUoKS50aGVuKChmdW5jdGlvbih0KXt2YXIgbj10LnRva2VuO3JldHVybiBlKG51bGwsbil9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQsbnVsbCl9KSl9LGF1dG9Db25uZWN0OiExLGVuZHBvaW50OmUuZW5kcG9pbnQsZmFsbGJhY2tIb3N0czplLmZhbGxiYWNrLGNvbm5lY3Rpdml0eUNoZWNrVXJsOmUuY29ubmVjdGl2aXR5Q2hlY2tVcmwsd3NDb25uZWN0aXZpdHlDaGVja1VybDplLndzQ29ubmVjdGl2aXR5Q2hlY2tVcmwscGx1Z2luczp7V2ViU29ja2V0VHJhbnNwb3J0OmksRmV0Y2hSZXF1ZXN0OmF9fSkpO2Nhc2UgNzpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQpfSkpKTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxpLnJlcG9ydEVycm9yPWZ1bmN0aW9uKHQpe3ZhciBlPSJzdHJpbmciPT10eXBlb2YgdD9uZXcgRXJyb3IodCk6dDtudWxsPT1lJiYoZT1uZXcgRXJyb3IoIkNvbm5lY3Rpb25NYW5hZ2VyIGNhdWdodCBhIG51bGwgb3IgdW5kZWZpbmVkIGVycm9yIikpLGUgaW5zdGFuY2VvZiBFcnJvcj8odGhpcy5jYXB0dXJlRXJyb3IoZSksdGhpcy5zYWZlQ29uc29sZUVycm9yKGUubWVzc2FnZSkpOih0aGlzLmNhcHR1cmVFcnJvcihuZXcgRXJyb3IoU3RyaW5nKGUpKSksdGhpcy5zYWZlQ29uc29sZUVycm9yKFN0cmluZyhlKSkpfSxpLmF1dGhvcml6ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3RvcmUuZ2V0U3RhdGUoKS5zZXNzaW9uO3JldHVybiB0aGlzLmludGVyY29tQ2xpZW50LmF1dGhvcml6ZVJlYWx0aW1lKHtzZXNzaW9uOnR9KX0saS5hZGRDc3BWaW9sYXRpb25PYnNlcnZlcj1mdW5jdGlvbih0LGUpeyFmdW5jdGlvbih0LGUpe2lmKCFzby5oYXMoZS5pZCkpe3ZhciBuPWZ1bmN0aW9uKG4pe2lmKGUubWF0Y2gobikpe2UuaGFuZGxlKG4pO3ZhciByPXQuZ2V0U3RhdGUoKS5zZXNzaW9uOygwLF8uVlkpKHIsImNzcF92aW9sYXRpb24iLHt2aW9sYXRlZERpcmVjdGl2ZTpuLnZpb2xhdGVkRGlyZWN0aXZlLGJsb2NrZWRVUkk6bi5ibG9ja2VkVVJJfSwoMCx1by56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvbWV0cmljcy9yY3YiKX19O3NvLnNldChlLmlkLG4pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlY3VyaXR5cG9saWN5dmlvbGF0aW9uIixuKX19KHRoaXMuc3RvcmUse2lkOnQsaGFuZGxlOmUsbWF0Y2g6ZnVuY3Rpb24oZSl7dmFyIG47cmV0dXJuImVuZm9yY2UiPT09ZS5kaXNwb3NpdGlvbiYmKG51bGw9PShuPWUuYmxvY2tlZFVSSSk/dm9pZCAwOi0xIT09bi5pbmRleE9mKHQpKX19KX0saS5yZW1vdmVDc3BWaW9sYXRpb25PYnNlcnZlcj1mdW5jdGlvbih0KXt2YXIgZSxuO2U9dCwobj1zby5nZXQoZSkpJiYoc28uZGVsZXRlKGUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlY3VyaXR5cG9saWN5dmlvbGF0aW9uIixuKSl9LGU9dCxyJiZ5byhlLnByb3RvdHlwZSxyKSxvJiZ5byhlLG8pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGV9KCksYm89big2NjY0KSx3bz1uKDM4NzI5KTtmdW5jdGlvbiBfbyh0LGUpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fSh0KXx8ZnVuY3Rpb24odCxlKXt2YXIgbj1udWxsPT10P251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxhLHU9W10scz0hMCxjPSExO3RyeXtpZihpPShuPW4uY2FsbCh0KSkubmV4dCwwPT09ZSl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47cz0hMX1lbHNlIGZvcig7IShzPShyPWkuY2FsbChuKSkuZG9uZSkmJih1LnB1c2goci52YWx1ZSksdS5sZW5ndGghPT1lKTtzPSEwKTt9Y2F0Y2godCl7Yz0hMCxvPXR9ZmluYWxseXt0cnl7aWYoIXMmJm51bGwhPW4ucmV0dXJuJiYoYT1uLnJldHVybigpLE9iamVjdChhKSE9PWEpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIHV9fSh0LGUpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gU28odCxlKTt2YXIgbj17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/U28odCxlKTp2b2lkIDB9fSh0LGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gU28odCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfXZhciB4bz17c2V0QXR0cmlidXRlczpmdW5jdGlvbigpe3JldHVybiB4b30scmVjb3JkRXhjZXB0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHhvfSxlbmQ6ZnVuY3Rpb24oKXt9fSxFbz1iby51LmdldFRyYWNlcigiYWJseS1pbnN0cnVtZW50YXRpb24iKTtmdW5jdGlvbiBDbyh0KXt0cnl7dmFyIGU9dC5zcGxpdCgiLSIpO2lmKDQhPT1lLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgbj1mdW5jdGlvbih0LGUsbil7aWYoZSYmIUFycmF5LmlzQXJyYXkoZSkmJiJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpe3ZhciByPWUubGVuZ3RoO3JldHVybiBTbyhlLHZvaWQgMCE9PW4mJm48cj9uOnIpfXJldHVybiB0KGUsbil9KF9vLGUsNCkscj1uWzBdLG89blsxXSxpPW5bMl0sYT1uWzNdO3JldHVybiIwMCIhPT1yfHwzMiE9PW8ubGVuZ3RofHwxNiE9PWkubGVuZ3RoP251bGw6e3RyYWNlSWQ6byxzcGFuSWQ6aSx0cmFjZUZsYWdzOnBhcnNlSW50KGEsMTYpLGlzUmVtb3RlOiEwfX1jYXRjaCh0KXtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gT28odCxlKXt2YXIgbj1wZXJmb3JtYW5jZS5ub3coKSxyPWZ1bmN0aW9uKHQpe3RyeXt2YXIgZTtyZXR1cm4gbnVsbD09KGU9dC5kYXRhKXx8bnVsbD09KGU9ZS5ldmVudERhdGEpP3ZvaWQgMDplLnRyYWNlcGFyZW50fWNhdGNoKHQpe3JldHVybn19KHQpO2lmKHIpe3ZhciBvPUNvKHIpO2lmKG8pdHJ5e3ZhciBpPWJvLnUuc2V0U3BhbkNvbnRleHQod28ubCxvKTtFby5zdGFydEFjdGl2ZVNwYW4oImFibHkubWVzc2FnZS4iK3QubmFtZSx7fSxpLChmdW5jdGlvbih0KXt0cnl7ZSh0KX1jYXRjaChlKXt0aHJvdyBmdW5jdGlvbih0LGUpe3QucmVjb3JkRXhjZXB0aW9uKGUpLHQuc2V0QXR0cmlidXRlcyh7ZXJyb3I6ITAsImVycm9yLnR5cGUiOmUuY29uc3RydWN0b3IubmFtZSwiZXJyb3IubWVzc2FnZSI6ZS5tZXNzYWdlfSl9KHQsZSksZX1maW5hbGx5e3Quc2V0QXR0cmlidXRlcyh7ImFibHkucHJvY2Vzc2luZ19kdXJhdGlvbl9tcyI6TWF0aC5yb3VuZChwZXJmb3JtYW5jZS5ub3coKS1uKX0pLHQuZW5kKCl9fSkpfWNhdGNoKHQpe3Rocm93IGUoeG8pLHR9ZWxzZSBlKHhvKX1lbHNlIGUoeG8pfXZhciBBbz0ic2FsZXNmb3JjZS1tZXNzYWdpbmctY2xpZW50LXN0YXRlIixJbz1mdW5jdGlvbih0KXtyZXR1cm4ic2FsZXNmb3JjZS1tZXNzYWdpbmctY2xpZW50LXN0YXRlLSIrdH0sa289ZnVuY3Rpb24odCxlKXtyZXR1cm4ic2FsZXNmb3JjZS1tZXNzYWdpbmctY2xpZW50LXN0YXRlLSIrdCsiLSIrZX0sTG89ZnVuY3Rpb24odCl7cmV0dXJuInNhbGVzZm9yY2UtbWVzc2FnaW5nLWhlYXJ0YmVhdC0iK3R9LFRvPSJzYWxlc2ZvcmNlLW1lc3NhZ2luZy1hY3RpdmUtdGFiLWlkIixqbz1mdW5jdGlvbih0KXt2YXIgZSxuPXtuYW1lOihudWxsPT10P3ZvaWQgMDp0Lm5hbWUpfHxudWxsLHNhbGVzZm9yY2VfaWRlbnRpdHlfdG9rZW46KG51bGw9PXQ/dm9pZCAwOnQuc2FsZXNmb3JjZV9pZGVudGl0eV90b2tlbil8fHZvaWQgMH07cmV0dXJuIG51bGwhPXQmJm51bGwhPShlPXQuY3VzdG9tQXR0cmlidXRlcykmJmUuc2FsZXNmb3JjZV9pZGVudGl0eV90b2tlbiYmKG4uc2FsZXNmb3JjZV9pZGVudGl0eV90b2tlbj10LmN1c3RvbUF0dHJpYnV0ZXMuc2FsZXNmb3JjZV9pZGVudGl0eV90b2tlbi50b1N0cmluZygpKSxufSxQbz1mdW5jdGlvbih0KXt2YXIgZT1YLkwuZ2V0KEFvKTshWC5MLmdldChJbyh0KSkmJmUmJihYLkwuc2V0KElvKHQpLGUpLFguTC5yZW1vdmUoQW8pKX07dmFyIE5vPW4oNzE4MTYpLE1vPW4oNTc1MjApO2Z1bmN0aW9uIFJvKHQsZSl7dmFyIG49InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG4pcmV0dXJuKG49bi5jYWxsKHQpKS5uZXh0LmJpbmQobik7aWYoQXJyYXkuaXNBcnJheSh0KXx8KG49ZnVuY3Rpb24odCxlKXtpZih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIFVvKHQsZSk7dmFyIG49e30udG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbSh0KToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP1VvKHQsZSk6dm9pZCAwfX0odCkpfHxlJiZ0JiYibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKXtuJiYodD1uKTt2YXIgcj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiByPj10Lmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6dFtyKytdfX19dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfWZ1bmN0aW9uIFVvKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn12YXIgem89big2MTUwMyk7dmFyIEhvPW4oNDQyOTcpO2Z1bmN0aW9uIEZvKHQpe3JldHVybiBGbz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sRm8odCl9ZnVuY3Rpb24gRG8oKXtEbz1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHM9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGModCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Yyh7fSwiIil9Y2F0Y2godCl7Yz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gbCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGc/ZTpnLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgTChyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOk8odCxuLHUpfSksYX1mdW5jdGlvbiBmKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWw7dmFyIGQ9InN1c3BlbmRlZFN0YXJ0IixwPSJzdXNwZW5kZWRZaWVsZCIsaD0iZXhlY3V0aW5nIix2PSJjb21wbGV0ZWQiLHk9e307ZnVuY3Rpb24gZygpe31mdW5jdGlvbiBtKCl7fWZ1bmN0aW9uIGIoKXt9dmFyIHc9e307Yyh3LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIF89T2JqZWN0LmdldFByb3RvdHlwZU9mLFM9XyYmXyhfKFQoW10pKSk7UyYmUyE9PW4mJnIuY2FsbChTLGEpJiYodz1TKTt2YXIgeD1iLnByb3RvdHlwZT1nLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHcpO2Z1bmN0aW9uIEUodCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtjKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEModCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBzPWYodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLGw9Yy52YWx1ZTtyZXR1cm4gbCYmIm9iamVjdCI9PUZvKGwpJiZyLmNhbGwobCwiX19hd2FpdCIpP2UucmVzb2x2ZShsLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShsKS50aGVuKChmdW5jdGlvbih0KXtjLnZhbHVlPXQsYShjKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KHMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBPKGUsbixyKXt2YXIgbz1kO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT1oKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PXYpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPUEodSxyKTtpZihzKXtpZihzPT09eSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89dixyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289aDt2YXIgYz1mKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/djpwLGMuYXJnPT09eSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPXYsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBBKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxBKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLHk7dmFyIGk9ZihvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLHk7dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLHkpOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwseSl9ZnVuY3Rpb24gSSh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBrKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBMKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goSSx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBUKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IoRm8oZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gbS5wcm90b3R5cGU9YixvKHgsImNvbnN0cnVjdG9yIix7dmFsdWU6Yixjb25maWd1cmFibGU6ITB9KSxvKGIsImNvbnN0cnVjdG9yIix7dmFsdWU6bSxjb25maWd1cmFibGU6ITB9KSxtLmRpc3BsYXlOYW1lPWMoYixzLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09bXx8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsYik6KHQuX19wcm90b19fPWIsYyh0LHMsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoeCksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sRShDLnByb3RvdHlwZSksYyhDLnByb3RvdHlwZSx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1DLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQyhsKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LEUoeCksYyh4LHMsIkdlbmVyYXRvciIpLGMoeCxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGMoeCwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1ULEwucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpMLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChrKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MseSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSx5fSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLGsobikseX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztrKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpUKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCkseX19LGV9ZnVuY3Rpb24gQm8odCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBWbyh0KXtyZXR1cm4gR28uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEdvKCl7dmFyIHQ7cmV0dXJuIHQ9RG8oKS5tYXJrKChmdW5jdGlvbiB0KGUpe3ZhciBuLHIsbyxpLGEsdSxzO3JldHVybiBEbygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiBuPWUuc2Vzc2lvbixyPWUucmVxdWVzdElkLG89ZS5yZXN1bHQsaT1lLmVycm9yLGE9ZS5zdWNjZXNzLHU9ZS5leGVjdXRpb25UaW1lTXMscz0oMCx1by56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvY2xpZW50X3NpZGVfYWN0aW9uX3Jlc3BvbnNlcyIsdC5hYnJ1cHQoInJldHVybiIsSG8uQS5wb3N0KHt1cmw6cyxzZXNzaW9uOm4scGFyYW1zOntyZXF1ZXN0X2lkOnIscmVzdWx0OnZvaWQgMCE9PW8/SlNPTi5zdHJpbmdpZnkobyk6bnVsbCxlcnJvcjppLHN1Y2Nlc3M6YSxleGVjdXRpb25fdGltZV9tczp1fX0pKTtjYXNlIDM6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSxHbz1mdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBhKHQpe0JvKGkscixvLGEsdSwibmV4dCIsdCl9ZnVuY3Rpb24gdSh0KXtCbyhpLHIsbyxhLHUsInRocm93Iix0KX1hKHZvaWQgMCl9KSl9LEdvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBxbyh0KXtyZXR1cm4gcW89ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHFvKHQpfWZ1bmN0aW9uIFdvKCl7V289ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixzPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Moe30sIiIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGwodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBnP2U6ZyxhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IEwocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpPKHQsbix1KX0pLGF9ZnVuY3Rpb24gZih0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1sO3ZhciBkPSJzdXNwZW5kZWRTdGFydCIscD0ic3VzcGVuZGVkWWllbGQiLGg9ImV4ZWN1dGluZyIsdj0iY29tcGxldGVkIix5PXt9O2Z1bmN0aW9uIGcoKXt9ZnVuY3Rpb24gbSgpe31mdW5jdGlvbiBiKCl7fXZhciB3PXt9O2ModyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciBfPU9iamVjdC5nZXRQcm90b3R5cGVPZixTPV8mJl8oXyhUKFtdKSkpO1MmJlMhPT1uJiZyLmNhbGwoUyxhKSYmKHc9Uyk7dmFyIHg9Yi5wcm90b3R5cGU9Zy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh3KTtmdW5jdGlvbiBFKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Yyh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBDKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgcz1mKHRbb10sdCxpKTtpZigidGhyb3ciIT09cy50eXBlKXt2YXIgYz1zLmFyZyxsPWMudmFsdWU7cmV0dXJuIGwmJiJvYmplY3QiPT1xbyhsKSYmci5jYWxsKGwsIl9fYXdhaXQiKT9lLnJlc29sdmUobC5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LGEsdSl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsYSx1KX0pKTplLnJlc29sdmUobCkudGhlbigoZnVuY3Rpb24odCl7Yy52YWx1ZT10LGEoYyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LGEsdSl9KSl9dShzLmFyZyl9dmFyIGk7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gTyhlLG4scil7dmFyIG89ZDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09aCl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT12KXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1BKHUscik7aWYocyl7aWYocz09PXkpY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09ZCl0aHJvdyBvPXYsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPWg7dmFyIGM9ZihlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP3Y6cCxjLmFyZz09PXkpY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz12LHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gQShlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsQShlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSx5O3ZhciBpPWYobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCx5O3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCx5KTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLHkpfWZ1bmN0aW9uIEkodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gayh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gTCh0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEksdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gVChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbYV07aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKHFvKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIG0ucHJvdG90eXBlPWIsbyh4LCJjb25zdHJ1Y3RvciIse3ZhbHVlOmIsY29uZmlndXJhYmxlOiEwfSksbyhiLCJjb25zdHJ1Y3RvciIse3ZhbHVlOm0sY29uZmlndXJhYmxlOiEwfSksbS5kaXNwbGF5TmFtZT1jKGIscywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PW18fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGIpOih0Ll9fcHJvdG9fXz1iLGModCxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHgpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LEUoQy5wcm90b3R5cGUpLGMoQy5wcm90b3R5cGUsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QyxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEMobCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxFKHgpLGMoeCxzLCJHZW5lcmF0b3IiKSxjKHgsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxjKHgsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9VCxMLnByb3RvdHlwZT17Y29uc3RydWN0b3I6TCxyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goayksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLHkpOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSkseX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxrKG4pLHl9fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7ayhuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6VChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLHl9fSxlfWZ1bmN0aW9uIEtvKHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gWm8odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7S28oaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpe0tvKGkscixvLGEsdSwidGhyb3ciLHQpfWEodm9pZCAwKX0pKX19ZnVuY3Rpb24gSm8odCl7cmV0dXJuIFlvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBZbygpe3JldHVybiBZbz1abyhXbygpLm1hcmsoKGZ1bmN0aW9uIHQoZSl7dmFyIG4scixvLGksYSx1O3JldHVybiBXbygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiBuPWUuc2Vzc2lvbixyPWUucmVxdWVzdElkLG89ZS5yZXN1bHQsaT1lLmVycm9yLGE9ZS5zdWNjZXNzLHU9ZS5leGVjdXRpb25UaW1lTXMsdC5wcmV2PTEsdC5uZXh0PTQsVm8oe3Nlc3Npb246bixyZXF1ZXN0SWQ6cixyZXN1bHQ6byxlcnJvcjppLHN1Y2Nlc3M6YSxleGVjdXRpb25UaW1lTXM6dX0pO2Nhc2UgNDp0Lm5leHQ9OTticmVhaztjYXNlIDY6dC5wcmV2PTYsdC50MD10LmNhdGNoKDEpLGNvbnNvbGUuZXJyb3IoIltDbGllbnRTaWRlQWN0aW9uXSBGYWlsZWQgdG8gc2VuZCByZXNwb25zZToiLHQudDApO2Nhc2UgOTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsbnVsbCxbWzEsNl1dKX0pKSksWW8uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFFvKHQsZSxuKXt2YXIgcixvLGk9bi5nZXRTdGF0ZSgpO2lmKG51bGwhPShyPWkuYXBwLmZlYXR1cmVzKSYmci5jbGllbnRTaWRlQWN0aW9ucyl7dmFyIGE9ZS5kYXRhLmV2ZW50RGF0YSx1PWEudGFyZ2V0U2Vzc2lvbklkO3UmJnUhPT0obnVsbD09KG89aS5zZXNzaW9uKT92b2lkIDA6by5zZXNzaW9uSWQpP2NvbnNvbGUuZGVidWcoIltDbGllbnRTaWRlQWN0aW9uXSBJZ25vcmluZyByZXF1ZXN0IHRhcmdldGVkIGF0IGRpZmZlcmVudCBzZXNzaW9uOiIsdSk6T28oZSwoZnVuY3Rpb24oKXt2YXIgZT1hLmFjdGlvbklkLG49YS5mdW5jdGlvbk5hbWUscj1hLmFyZ3VtZW50cyxvPWEucmVxdWVzdElkLGk9YS50aW1lb3V0TXM7dChmdW5jdGlvbih0KXt2YXIgZT10LmZ1bmN0aW9uTmFtZSxuPXQuYXJndW1lbnRzLHI9dC5yZXF1ZXN0SWQsbz10LnRpbWVvdXRNcztyZXR1cm4gWm8oV28oKS5tYXJrKChmdW5jdGlvbiB0KGksYSl7dmFyIHUscyxjLGwsZixkLHAsaDtyZXR1cm4gV28oKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZih1PWEoKS5zZXNzaW9uLHM9RGF0ZS5ub3coKSxjPXdpbmRvdy5wYXJlbnR8fHdpbmRvdywiZnVuY3Rpb24iPT10eXBlb2YobD1jW2VdKSl7dC5uZXh0PTk7YnJlYWt9cmV0dXJuIGNvbnNvbGUud2FybignW0NsaWVudFNpZGVBY3Rpb25dIEZ1bmN0aW9uICInK2UrJyIgaXMgbm90IGRlZmluZWQgb24gd2luZG93JyksdC5uZXh0PTgsSm8oe3Nlc3Npb246dSxyZXF1ZXN0SWQ6cixyZXN1bHQ6bnVsbCxlcnJvcjonRnVuY3Rpb24gIicrZSsnIiBpcyBub3QgZGVmaW5lZCcsc3VjY2VzczohMSxleGVjdXRpb25UaW1lTXM6RGF0ZS5ub3coKS1zfSk7Y2FzZSA4OnJldHVybiB0LmFicnVwdCgicmV0dXJuIik7Y2FzZSA5OnJldHVybiBmPW5ldyBQcm9taXNlKChmdW5jdGlvbih0LGUpe3RyeXtsKG4sdCxlKX1jYXRjaCh0KXtlKHQpfX0pKSxkPW5ldyBQcm9taXNlKChmdW5jdGlvbih0LGUpe3JldHVybiBzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBlKG5ldyBFcnJvcigiRXhlY3V0aW9uIHRpbWVvdXQiKSl9KSxvKX0pKSx0LnByZXY9MTEsdC5uZXh0PTE0LFByb21pc2UucmFjZShbZixkXSk7Y2FzZSAxNDpyZXR1cm4gcD10LnNlbnQsdC5uZXh0PTE3LEpvKHtzZXNzaW9uOnUscmVxdWVzdElkOnIscmVzdWx0OnAsZXJyb3I6bnVsbCxzdWNjZXNzOiEwLGV4ZWN1dGlvblRpbWVNczpEYXRlLm5vdygpLXN9KTtjYXNlIDE3OnQubmV4dD0yNTticmVhaztjYXNlIDE5OnJldHVybiB0LnByZXY9MTksdC50MD10LmNhdGNoKDExKSxoPXQudDAgaW5zdGFuY2VvZiBFcnJvcj90LnQwLm1lc3NhZ2U6U3RyaW5nKHQudDApLGNvbnNvbGUuZXJyb3IoIltDbGllbnRTaWRlQWN0aW9uXSBFeGVjdXRpb24gZmFpbGVkOiIsdC50MCksdC5uZXh0PTI1LEpvKHtzZXNzaW9uOnUscmVxdWVzdElkOnIscmVzdWx0Om51bGwsZXJyb3I6aCxzdWNjZXNzOiExLGV4ZWN1dGlvblRpbWVNczpEYXRlLm5vdygpLXN9KTtjYXNlIDI1OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCxudWxsLFtbMTEsMTldXSl9KSkpfSh7YWN0aW9uSWQ6ZSxmdW5jdGlvbk5hbWU6bixhcmd1bWVudHM6cixyZXF1ZXN0SWQ6byx0aW1lb3V0TXM6aX0pKX0pKX1lbHNlIGNvbnNvbGUud2FybigiW0NsaWVudFNpZGVBY3Rpb25dIEZlYXR1cmUgZGlzYWJsZWQsIGlnbm9yaW5nIHJlcXVlc3QiKX12YXIgWG89big2Njg1NCk7ZnVuY3Rpb24gJG8odCl7dmFyIGU7dHJ5e2U9d2luZG93LnBhcmVudC5kb2N1bWVudH1jYXRjaCh0KXtyZXR1cm59dmFyIG49d2luZG93LnBhcmVudDt0cnl7IWZ1bmN0aW9uKHQsZSl7dmFyIG47aWYodC5xdWVyeVNlbGVjdG9yKCJjYXJ0LWRyYXdlciIpKXt2YXIgcj1lLnB1Ymxpc2g7cmV0dXJuIHZvaWQoImZ1bmN0aW9uIj09dHlwZW9mIHI/cigiY2FydC11cGRhdGUiLHtzb3VyY2U6ImludGVyY29tIn0pOnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNhcnQ6dXBkYXRlIix7YnViYmxlczohMCxkZXRhaWw6e2RhdGE6e3NvdXJjZToiaW50ZXJjb20ifX19KSkpfXZhciBvPWUuYWpheENhcnQ7aWYoImZ1bmN0aW9uIj09dHlwZW9mKG51bGw9PW8/dm9pZCAwOm8ubG9hZCkpcmV0dXJuIHZvaWQgby5sb2FkKCk7dmFyIGk9ZS5TaG9waWZ5O2lmKCJmdW5jdGlvbiI9PXR5cGVvZihudWxsPT1pfHxudWxsPT0obj1pLnRoZW1lKXx8bnVsbD09KG49bi5qc0FqYXhDYXJ0KT92b2lkIDA6bi51cGRhdGVWaWV3KSlyZXR1cm4gdm9pZCBpLnRoZW1lLmpzQWpheENhcnQudXBkYXRlVmlldygpO3ZhciBhPXQucXVlcnlTZWxlY3RvcigiZm9ybS5jYXJ0IGlucHV0LmFqYXhjYXJ0X19xdHktbnVtIik7aWYoYSlyZXR1cm4gdm9pZCBhLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJjaGFuZ2UiLHtidWJibGVzOiEwfSkpO3ZhciB1PXQucXVlcnlTZWxlY3RvcigiZm9ybS5jYXJ0X19jb250ZW50cyBpbnB1dC5xdWFudGl0eV9faW5wdXQiKTtpZih1KXJldHVybiB2b2lkIHUuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImNoYW5nZSIse2J1YmJsZXM6ITB9KSk7dC5kb2N1bWVudEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNhcnQ6cmVmcmVzaCIse2J1YmJsZXM6ITB9KSl9KGUsbil9Y2F0Y2godCl7fWUuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImludGVyY29tOmNhcnRVcGRhdGVkIix7ZGV0YWlsOnR9KSl9ZnVuY3Rpb24gdGkodCl7cmV0dXJuIG51bGwhPXQuZGF0YX1mdW5jdGlvbiBlaSh0LGUsbil7dmFyIHI9bi5kaXNwYXRjaDtzd2l0Y2goZS5uYW1lKXtjYXNlIkNvbnZlcnNhdGlvblN0YXRlQ2hhbmdlZCI6aWYoIXRpKGUpKXRocm93IG5ldyBFcnJvcigiQ29udmVyc2F0aW9uU3RhdGVDaGFuZ2VkIG1lc3NhZ2UgbWlzc2luZyBkYXRhIik7IWZ1bmN0aW9uKHQsZSxuLHIpe09vKGUsKGZ1bmN0aW9uKCl7dmFyIG89ZS5kYXRhLmV2ZW50RGF0YS5jb252ZXJzYXRpb24saT1vLmlkLGE9bi5nZXRTdGF0ZSgpLmNvbnZlcnNhdGlvbnMuYnlJZFtpXSx1PSEhYSYmInBhcnRpYWwiIT09YS5mZXRjaFN0YXRlO3QodT8oMCxyby5fWikoKDAsXy5qMykobykpOigwLHJvLlFMKShyLGkse3JlcXVlc3RPcmlnaW46IkNvbnZlcnNhdGlvblN0YXRlQ2hhbmdlZCIsYmFja2dyb3VuZEZldGNoOiEwfSkpfSkpfShyLGUsbix0KTticmVhaztjYXNlIk5ld0NvbW1lbnQiOmlmKCF0aShlKSl0aHJvdyBuZXcgRXJyb3IoIk5ld0NvbW1lbnQgbWVzc2FnZSBtaXNzaW5nIGRhdGEiKTshZnVuY3Rpb24odCxlLG4pe09vKG4sKGZ1bmN0aW9uKCl7KDAsVi5vUykoImFibHlfbmV3X2NvbW1lbnRfcmVjZWl2ZWQiKSx0KCgwLFpuLmJFKSgiTmV3Q29tbWVudCIpKTt2YXIgcj1TdHJpbmcobi5kYXRhLmV2ZW50RGF0YS5jb252ZXJzYXRpb25JZCksbz0oMCxfLndqKShuLmRhdGEuZXZlbnREYXRhLmNvbnZlcnNhdGlvblBhcnQpO2lmKG4uZGF0YS5ldmVudERhdGEuY29udmVyc2F0aW9uKXt2YXIgaT0oMCxfLmozKShuLmRhdGEuZXZlbnREYXRhLmNvbnZlcnNhdGlvbik7dCgoMCxyby5fWikoaSkpfXQoKDAscm8ubVEpKHtjb252ZXJzYXRpb25JZDpyLHBhcnQ6b30pKTtmb3IodmFyIGEsdT1SbygoMCxELkhwKSh7cGFydHM6W29dfSksITApOyEoYT11KCkpLmRvbmU7KXt2YXIgcz1hLnZhbHVlO3QoKDAsTW8uX0QpKGUscywhMSkpfSgwLE5vLkEpKHtwYXJ0czpbb119LHQpO3ZhciBjPW4uZGF0YS5ldmVudERhdGEudHJhY2VwYXJlbnQ7YyYmYW8uZi5vbk5ld0NvbW1lbnRWaWFSZWFsdGltZSh7cGFydHM6W29dfSxjKX0pKX0ocix0LGUpO2JyZWFrO2Nhc2UiRmluSGFuZG9mZlRvU2FsZXNmb3JjZUluQXBwTWVzc2FnaW5nIjppZighdGkoZSkpdGhyb3cgbmV3IEVycm9yKCJGaW5IYW5kb2ZmVG9TYWxlc2ZvcmNlSW5BcHBNZXNzYWdpbmcgbWVzc2FnZSBtaXNzaW5nIGRhdGEiKTshZnVuY3Rpb24odCxlLG4pe09vKGUsKGZ1bmN0aW9uKCl7dmFyIHI9bi5nZXRTdGF0ZSgpLG89ci51c2VyLGk9ci5zZXNzaW9uO2lmKCFvfHwhaSl0aHJvdyBuZXcgRXJyb3IoIlVzZXIgb3IgU2Vzc2lvbiBpcyBub3QgcHJlc2VudCBpbiBTdG9yZSIpO3ZhciBhPWUuZGF0YS5ldmVudERhdGEsdT1hLmNvbnZlcnNhdGlvbklkLHM9YS5ob3N0bmFtZSxjPWEub3JnYW5pemF0aW9uSWQsbD1hLnVzZXJWZXJpZmljYXRpb25FbmFibGVkLGY9am8obyk7dChKcihmLHMsU3RyaW5nKHUpLGMsbCkpfSkpfShyLGUsbik7YnJlYWs7Y2FzZSJDb21wb3NlclN0YXRlQ2hhbmdlZCI6aWYoIXRpKGUpKXRocm93IG5ldyBFcnJvcigiQ29tcG9zZXJTdGF0ZUNoYW5nZWQgbWVzc2FnZSBtaXNzaW5nIGRhdGEiKTshZnVuY3Rpb24odCxlKXtPbyhlLChmdW5jdGlvbigpe3ZhciBuPWUuZGF0YS5ldmVudERhdGEscj1uLmNvbnZlcnNhdGlvbklkLG89bi5jb21wb3NlclN0YXRlLGk9KDAsem8ua0cpKG8pO2kmJnQoKDAscm8uVDYpKFN0cmluZyhyKSxpKSl9KSl9KHIsZSk7YnJlYWs7Y2FzZSJDbGllbnRTaWRlQWN0aW9uUmVxdWVzdCI6aWYoIXRpKGUpKXRocm93IG5ldyBFcnJvcigiQ2xpZW50U2lkZUFjdGlvblJlcXVlc3QgbWVzc2FnZSBtaXNzaW5nIGRhdGEiKTsiaW50ZXJjb206bmF2aWdhdGVUb1VybCI9PT1lLmRhdGEuZXZlbnREYXRhLmZ1bmN0aW9uTmFtZT9mdW5jdGlvbih0LGUpe3ZhciBuLHIsbz1lLmdldFN0YXRlKCk7aWYobnVsbCE9KG49by5hcHAuZmVhdHVyZXMpJiZuLmNsaWVudFNpZGVBY3Rpb25zKXt2YXIgaT10LmRhdGEuZXZlbnREYXRhLGE9aS50YXJnZXRTZXNzaW9uSWQsdT1pLmFyZ3VtZW50cztpZighYXx8YT09PShudWxsPT0ocj1vLnNlc3Npb24pP3ZvaWQgMDpyLnNlc3Npb25JZCkpe3ZhciBzPW51bGw9PXU/dm9pZCAwOnUudXJsO2lmKCJzdHJpbmciPT10eXBlb2YgcyYmcyl0cnl7dmFyIGM9bmV3IFVSTChzKTtpZigiaHR0cHM6IiE9PWMucHJvdG9jb2wpcmV0dXJuO2lmKGMudXNlcm5hbWV8fGMucGFzc3dvcmQpcmV0dXJuO3ZhciBsPSgwLFhvLiQpKCk7aWYoKG51bGw9PWw/dm9pZCAwOmwubG9jYXRpb24uaHJlZik9PT1jLmhyZWYpcmV0dXJuO251bGwhPWwmJmwuX19pbnRlcmNvbUFzc2lnbkxvY2F0aW9uP2wuX19pbnRlcmNvbUFzc2lnbkxvY2F0aW9uKGMuaHJlZik6bnVsbD09bHx8bC5sb2NhdGlvbi5hc3NpZ24oYy5ocmVmKX1jYXRjaCh0KXt9fX19KGUsbik6UW8ocixlLG4pO2JyZWFrO2Nhc2UiQ29udmVyc2F0aW9uUGFydFRva2VuIjppZighdGkoZSkpdGhyb3cgbmV3IEVycm9yKCJDb252ZXJzYXRpb25QYXJ0VG9rZW4gbWVzc2FnZSBtaXNzaW5nIGRhdGEiKTshZnVuY3Rpb24odCxlLG4pe3ZhciByPSgwLGVvLkxmKShuLmdldFN0YXRlKCkpLG89ci5wYXJ0aWNpcGFudCxpPXIuc3RyZWFtaW5nUGFydDtvJiZPbyhlLChmdW5jdGlvbigpe3ZhciByPWUuZGF0YS5ldmVudERhdGEsYT1yLmNvbnZlcnNhdGlvbklkLHU9ci50b2tlblNlcXVlbmNlSW5kZXgscz1yLmUyZU1ldHJpY0lkLGM9T2JqZWN0LmFzc2lnbih7fSwoMCxfLndqKSgoMCxuby5PKShyKSkse2F1dGhvcjp7aWQ6by5pZCxhdmF0YXI6by5hdmF0YXIsZmlyc3ROYW1lOm8uZmlyc3ROYW1lLGluaXRpYWw6by5pbml0aWFsLHR5cGU6ImFkbWluIixpc0FkbWluOiEwLGlzQm90OiEwLGlzU2VsZjohMX0sdXhTdHlsZTpudWxsPT1pP3ZvaWQgMDppLnV4U3R5bGUsbWV0YWRhdGE6bnVsbD09aT92b2lkIDA6aS5tZXRhZGF0YX0pO3QoKDAscm8uJFopKHtjb252ZXJzYXRpb25JZDphLHBhcnQ6Y30pKTt2YXIgbD0oMCxWci5WTikobi5nZXRTdGF0ZSgpLGEpO3MmJjA9PT11JiZsJiYoMCxWLnNxKSgicmVjZWl2ZWRfZmlyc3Rfc3RyZWFtZWRfdG9rZW4iLHtjbGllbnRfYXNzaWduZWRfdXVpZDpzLHRpbWVzdGFtcDpEYXRlLm5vdygpfSksci50cmFjZXBhcmVudCYmYW8uZi5vblRva2VuUmVjZWl2ZWQoe2V2ZW50RGF0YTpyfSxyLnRyYWNlcGFyZW50KX0pKX0ocixlLG4pO2JyZWFrO2Nhc2UiQWRtaW5Jc1R5cGluZyI6aWYoIXRpKGUpKXRocm93IG5ldyBFcnJvcigiQWRtaW5Jc1R5cGluZyBtZXNzYWdlIG1pc3NpbmcgZGF0YSIpOyFmdW5jdGlvbih0LGUsbil7dmFyIHIsbz1lLmRhdGEuZXZlbnREYXRhLGk9by5jb252ZXJzYXRpb25JZCxhPW8uYWRtaW5JZCx1PW8uYWRtaW5OYW1lLGM9by5hZG1pbkF2YXRhcixsPW8uaGFzRGVmYXVsdEF2YXRhcixmPW8uaXNCb3QsZD1vLmhhc0FJLHA9by5zaG93QXZhdGFyLGg9by5sb2FkaW5nU3RhdHVzLHY9by5jbGllbnRJZCx5PW8uYWNrbm93bGVkZ2VtZW50UGFydCxnPW8ud3JpdGluZ0ZpcnN0TWVzc2FnZSxtPW8udHlwaW5nQXQ7aWYoIWcpaWYodm9pZCAwPT09aHx8LTEhPT1PYmplY3QudmFsdWVzKEFuLnMxKS5pbmRleE9mKGgpKXt2YXIgYj0oMCxlby5MZikobi5nZXRTdGF0ZSgpKSx3PWIucGFydGljaXBhbnQsUz1iLnN0cmVhbWluZ1BhcnQseD12b2lkIDA7eSYmdyYmKHg9T2JqZWN0LmFzc2lnbih7fSwoMCxfLndqKSgoMCxuby5PKSh5KSkse2F1dGhvcjp7aWQ6dy5pZCxhdmF0YXI6dy5hdmF0YXIsZmlyc3ROYW1lOncuZmlyc3ROYW1lLGluaXRpYWw6dy5pbml0aWFsLHR5cGU6ImFkbWluIixpc0FkbWluOiEwLGlzQm90OiEwLGlzU2VsZjohMX0sdXhTdHlsZTpudWxsPT1TP3ZvaWQgMDpTLnV4U3R5bGUsbWV0YWRhdGE6bnVsbD09Uz92b2lkIDA6Uy5tZXRhZGF0YX0pKSx0KCgwLHJvLkJoKShpLHthZG1pbklkOmEsZmlyc3ROYW1lOnUsYXZhdGFyVXJsOkJpKGMsbCksaXNCb3Q6ZixoYXNBSTpkLHNob3dBdmF0YXI6cCxsb2FkaW5nU3RhdHVzOmgsbGFzdEFjdGl2ZUF0Om0/bmV3IERhdGUoMWUzKm0pOm51bGwhPShyPXgpJiZyLmNyZWF0ZWRBdD94LmNyZWF0ZWRBdDpuZXcgRGF0ZSxjbGllbnRJZDp2LGFja25vd2xlZGdlbWVudFBhcnQ6eH0pKX1lbHNle3ZhciBFPW4uZ2V0U3RhdGUoKS5zZXNzaW9uOygwLHMud2QpKCJVbnN1cHBvcnRlZCBsb2FkaW5nU3RhdHVzIHJlY2VpdmVkIGluIGFkbWluSXNUeXBpbmcgZXZlbnQgLSBjb252ZXJzYXRpb25JZDogIitpKyIsIGFwcElkOiAiKyhudWxsPT1FP3ZvaWQgMDpFLmFwcElkKSsiLCBzdGF0dXM6ICIraCl9fShyLGUsbik7YnJlYWs7Y2FzZSJTaG9waWZ5Q2FydFVwZGF0ZWQiOmlmKCF0aShlKSl0aHJvdyBuZXcgRXJyb3IoIlNob3BpZnlDYXJ0VXBkYXRlZCBtZXNzYWdlIG1pc3NpbmcgZGF0YSIpOyFmdW5jdGlvbih0LGUpe3ZhciBuO2lmKG51bGwhPShuPWUuZ2V0U3RhdGUoKS5hcHAuZmVhdHVyZXMpJiZuLmZpbkVjb21tZXJjZVN5bmNDYXJ0KXt2YXIgcj10LmRhdGEuZXZlbnREYXRhLG89ci5jYXJ0VG9rZW4saT1yLmlzTmV3Q2FydDtvJiYoaSYmIWEuQS5yZWFkKCJjYXJ0IikmJmEuQS53cml0ZSgiY2FydCIsbyksJG8oe2NhcnRUb2tlbjpvLGlzTmV3Q2FydDppfSkpfX0oZSxuKTticmVhaztjYXNlIlF1ZXVlUG9zaXRpb25VcGRhdGVkIjppZighdGkoZSkpdGhyb3cgbmV3IEVycm9yKCJRdWV1ZVBvc2l0aW9uVXBkYXRlZCBtZXNzYWdlIG1pc3NpbmcgZGF0YSIpOyFmdW5jdGlvbih0LGUpe3ZhciBuPWUuZGF0YS5ldmVudERhdGE7aWYobil7dmFyIHI9bi5jb252ZXJzYXRpb25JZCxvPW4ucXVldWVQb3NpdGlvblRleHQ7bnVsbCE9ciYmdm9pZCAwIT09byYmIiIhPT1vJiZ0KCgwLG9vLkE5KShTdHJpbmcociksbykpfX0ocixlKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5rbm93biBtZXNzYWdlOiAiK2UubmFtZSl9fWZ1bmN0aW9uIG5pKHQpe3JldHVybiBuaT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sbmkodCl9ZnVuY3Rpb24gcmkoKXtyaT1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHM9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGModCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Yyh7fSwiIil9Y2F0Y2godCl7Yz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gbCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGc/ZTpnLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgTChyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOk8odCxuLHUpfSksYX1mdW5jdGlvbiBmKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWw7dmFyIGQ9InN1c3BlbmRlZFN0YXJ0IixwPSJzdXNwZW5kZWRZaWVsZCIsaD0iZXhlY3V0aW5nIix2PSJjb21wbGV0ZWQiLHk9e307ZnVuY3Rpb24gZygpe31mdW5jdGlvbiBtKCl7fWZ1bmN0aW9uIGIoKXt9dmFyIHc9e307Yyh3LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIF89T2JqZWN0LmdldFByb3RvdHlwZU9mLFM9XyYmXyhfKFQoW10pKSk7UyYmUyE9PW4mJnIuY2FsbChTLGEpJiYodz1TKTt2YXIgeD1iLnByb3RvdHlwZT1nLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHcpO2Z1bmN0aW9uIEUodCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtjKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEModCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBzPWYodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLGw9Yy52YWx1ZTtyZXR1cm4gbCYmIm9iamVjdCI9PW5pKGwpJiZyLmNhbGwobCwiX19hd2FpdCIpP2UucmVzb2x2ZShsLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShsKS50aGVuKChmdW5jdGlvbih0KXtjLnZhbHVlPXQsYShjKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KHMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBPKGUsbixyKXt2YXIgbz1kO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT1oKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PXYpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPUEodSxyKTtpZihzKXtpZihzPT09eSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89dixyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289aDt2YXIgYz1mKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/djpwLGMuYXJnPT09eSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPXYsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBBKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxBKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLHk7dmFyIGk9ZihvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLHk7dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLHkpOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwseSl9ZnVuY3Rpb24gSSh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBrKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBMKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goSSx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBUKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IobmkoZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gbS5wcm90b3R5cGU9YixvKHgsImNvbnN0cnVjdG9yIix7dmFsdWU6Yixjb25maWd1cmFibGU6ITB9KSxvKGIsImNvbnN0cnVjdG9yIix7dmFsdWU6bSxjb25maWd1cmFibGU6ITB9KSxtLmRpc3BsYXlOYW1lPWMoYixzLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09bXx8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsYik6KHQuX19wcm90b19fPWIsYyh0LHMsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoeCksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sRShDLnByb3RvdHlwZSksYyhDLnByb3RvdHlwZSx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1DLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQyhsKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LEUoeCksYyh4LHMsIkdlbmVyYXRvciIpLGMoeCxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGMoeCwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1ULEwucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpMLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChrKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MseSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSx5fSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLGsobikseX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztrKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpUKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCkseX19LGV9ZnVuY3Rpb24gb2kodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGlpKHIua2V5KSxyKX19ZnVuY3Rpb24gaWkodCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0IiE9bmkodCl8fCF0KXJldHVybiB0O3ZhciBuPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT1uaShyKSlyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWU/U3RyaW5nOk51bWJlcikodCl9KHQsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT1uaShlKT9lOmUrIiJ9ZnVuY3Rpb24gYWkodCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiB1aSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXthaShpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7YWkoaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfX12YXIgc2k9bnVsbDtmdW5jdGlvbiBjaSgpe3JldHVybiBsaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbGkoKXtyZXR1cm4obGk9dWkocmkoKS5tYXJrKChmdW5jdGlvbiB0KCl7cmV0dXJuIHJpKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYoc2kpe3QubmV4dD0yO2JyZWFrfXRocm93IG5ldyBFcnJvcigiQWJseSBjbGllbnQgbXVzdCBiZSBzZXR1cCBiZWZvcmUgY29ubmVjdGluZyIpO2Nhc2UgMjpyZXR1cm4gdC5uZXh0PTQsc2kuY29ubmVjdCgpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQpfSkpKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGZpKCl7dmFyIHQ7bnVsbD09KHQ9c2kpfHx0LmNsb3NlKCl9ZnVuY3Rpb24gZGkoKXt2YXIgdDtyZXR1cm4obnVsbD09KHQ9c2kpP3ZvaWQgMDp0LmlzQ29ubmVjdGVkKXx8ITF9dmFyIHBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZT10LmNhcHR1cmVFcnJvcixuPXQuc2FmZUNvbnNvbGVFcnJvcixyPXQuaW50ZXJjb21DbGllbnQsbz10LnN0b3JlO3RoaXMucmVhbHRpbWVDbGllbnQ9bnVsbCx0aGlzLmNvbm5lY3Rpb25Qcm9taXNlPXZvaWQgMCx0aGlzLmNvbmZpZz12b2lkIDAsdGhpcy5jaGFubmVsPW51bGwsdGhpcy5jb25uZWN0aW9uTWFuYWdlcj12b2lkIDAsdGhpcy5jYXB0dXJlRXJyb3I9dm9pZCAwLHRoaXMuc2FmZUNvbnNvbGVFcnJvcj12b2lkIDAsdGhpcy5pbnRlcmNvbUNsaWVudD12b2lkIDAsdGhpcy5zdG9yZT12b2lkIDAsdGhpcy5jYXB0dXJlRXJyb3I9ZSx0aGlzLnNhZmVDb25zb2xlRXJyb3I9bix0aGlzLmludGVyY29tQ2xpZW50PXIsdGhpcy5zdG9yZT1vLHRoaXMuY29ubmVjdGlvbk1hbmFnZXI9bmV3IG1vKHtjYXB0dXJlRXJyb3I6ZSxzYWZlQ29uc29sZUVycm9yOm4saW50ZXJjb21DbGllbnQ6cixzdG9yZTpvfSl9dmFyIGUsbixyLG89dC5wcm90b3R5cGU7cmV0dXJuIG8uY29ubmVjdD1mdW5jdGlvbigpe3ZhciB0PXVpKHJpKCkubWFyaygoZnVuY3Rpb24gdCgpe3JldHVybiByaSgpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmlmKCF0aGlzLmlzQ29ubmVjdGVkKXt0Lm5leHQ9MjticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMjpyZXR1cm4gbnVsbCE9dGhpcy5jb25uZWN0aW9uUHJvbWlzZXx8KHRoaXMuY29ubmVjdGlvblByb21pc2U9dGhpcy5lc3RhYmxpc2hDb25uZWN0aW9uKCkpLHQuYWJydXB0KCJyZXR1cm4iLHRoaXMuY29ubmVjdGlvblByb21pc2UpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsdGhpcyl9KSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksby5jbG9zZT1mdW5jdGlvbigpe3RoaXMucmVhbHRpbWVDbGllbnQmJigoMCxWLm9TKSgiYWJseV9kaXNjb25uZWN0ZWQiLHtkaXNjb25uZWN0X3R5cGU6ImV4cGxpY2l0X2Nsb3NlIn0pLHRoaXMucmVhbHRpbWVDbGllbnQuY2xvc2UoKSx0aGlzLnJlYWx0aW1lQ2xpZW50PW51bGwsdGhpcy5jaGFubmVsPW51bGwsdGhpcy5jb25uZWN0aW9uUHJvbWlzZT12b2lkIDAsdGhpcy5zdG9yZS5kaXNwYXRjaCgoMCxabi5UcCkoWHIuRkwpKSl9LG8uZXN0YWJsaXNoQ29ubmVjdGlvbj1mdW5jdGlvbigpe3ZhciB0PXVpKHJpKCkubWFyaygoZnVuY3Rpb24gdCgpe3ZhciBlLG4scixvO3JldHVybiByaSgpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB0LnByZXY9MCx0Lm5leHQ9Myx0aGlzLmdldENvbmZpZygpO2Nhc2UgMzp0aGlzLmNvbmZpZz10LnNlbnQsdC5uZXh0PTEwO2JyZWFrO2Nhc2UgNjpyZXR1cm4gdC5wcmV2PTYsdC50MD10LmNhdGNoKDApLHRoaXMucmVwb3J0RXJyb3IodC50MCksdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMTA6cmV0dXJuIHQubmV4dD0xMix0aGlzLmNvbm5lY3Rpb25NYW5hZ2VyLmF0dGVtcHRDb25uZWN0aW9uKHRoaXMuY29uZmlnKTtjYXNlIDEyOmlmKGU9dC5zZW50KXt0Lm5leHQ9MTU7YnJlYWt9cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDE1OmlmKHQucHJldj0xNSxuPWUuY2hhbm5lbHMuZ2V0KHRoaXMuY29uZmlnLmNoYW5uZWwpKXt0Lm5leHQ9MTk7YnJlYWt9dGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gZ2V0IEFibHkgY2hhbm5lbCIpO2Nhc2UgMTk6cmV0dXJuIHI9dGhpcy5jcmVhdGVNZXNzYWdlSGFuZGxlcigpLHQubmV4dD0yMixuLnN1YnNjcmliZShyKTtjYXNlIDIyOmlmKG89dC5zZW50KXt0Lm5leHQ9MjU7YnJlYWt9dGhyb3cgbmV3IEVycm9yKCJBYmx5IHN1YnNjcmlwdGlvbiBmYWlsZWQiKTtjYXNlIDI1OmlmKCFvLnJlYXNvbil7dC5uZXh0PTI3O2JyZWFrfXRocm93IG5ldyBFcnJvcigiQWJseSBzdWJzY3JpcHRpb24gZmFpbGVkOiAiK28ucmVhc29uKTtjYXNlIDI3OnRoaXMuc2V0dXBDb25uZWN0aW9uU3RhdGVMaXN0ZW5lcnMoZSksdGhpcy5zZXR1cENoYW5uZWxTdGF0ZUxpc3RlbmVycyhuKSx0aGlzLnJlYWx0aW1lQ2xpZW50PWUsdGhpcy5jaGFubmVsPW4sdC5uZXh0PTM3O2JyZWFrO2Nhc2UgMzM6dC5wcmV2PTMzLHQudDE9dC5jYXRjaCgxNSksZS5jbG9zZSgpLHRoaXMucmVwb3J0RXJyb3IodC50MSk7Y2FzZSAzNzpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsdGhpcyxbWzAsNl0sWzE1LDMzXV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG8uc2V0dXBDb25uZWN0aW9uU3RhdGVMaXN0ZW5lcnM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0LmNvbm5lY3Rpb24ub24oImNvbm5lY3RpbmciLChmdW5jdGlvbigpe2Uuc3RvcmUuZGlzcGF0Y2goKDAsWm4uVHApKFhyLmdLKSl9KSksdC5jb25uZWN0aW9uLm9uKCJjb25uZWN0ZWQiLChmdW5jdGlvbigpeygwLFYub1MpKCJhYmx5X2Nvbm5lY3RlZCIse2Nvbm5lY3Rpb25fdHlwZToicmVjb25uZWN0In0pLGUuc3RvcmUuZGlzcGF0Y2goKDAsWm4uVHApKFhyLmEkKSl9KSksdC5jb25uZWN0aW9uLm9uKCJkaXNjb25uZWN0ZWQiLChmdW5jdGlvbigpeygwLFYub1MpKCJhYmx5X2Rpc2Nvbm5lY3RlZCIse2Rpc2Nvbm5lY3RfdHlwZToibmV0d29yayJ9KSxlLnN0b3JlLmRpc3BhdGNoKCgwLFpuLlRwKShYci53MykpfSkpLHQuY29ubmVjdGlvbi5vbigic3VzcGVuZGVkIiwoZnVuY3Rpb24oKXtlLnN0b3JlLmRpc3BhdGNoKCgwLFpuLlRwKShYci53MykpfSkpLHQuY29ubmVjdGlvbi5vbigiZmFpbGVkIiwoZnVuY3Rpb24oKXtlLnN0b3JlLmRpc3BhdGNoKCgwLFpuLlRwKShYci53MykpfSkpfSxvLnNldHVwQ2hhbm5lbFN0YXRlTGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLnN0b3JlLmRpc3BhdGNoLHI9ZnVuY3Rpb24ocil7dmFyIG89dC5uYW1lLGk9ci5yZXN1bWVkO2Uuc3RvcmUuZGlzcGF0Y2goKDAsWm4ubHgpKHIuY3VycmVudCkpLCgwLHMuWlEpKHtjYXRlZ29yeToiYWJseS1jaGFubmVsIixtZXNzYWdlOiJBYmx5IGNoYW5uZWwgIitvKyIgc3RhdGUgY2hhbmdlZCB0byAiK3IuY3VycmVudCxkYXRhOntyZXN1bWVkOmkscHJldmlvdXM6ci5wcmV2aW91c30sbGV2ZWw6ImluZm8ifSksaXx8V3IoZS5zdG9yZS5nZXRTdGF0ZSgpKSYmKCgwLHMuWlEpKHtjYXRlZ29yeToiYWJseS1jaGFubmVsIixtZXNzYWdlOiJBYmx5IGNoYW5uZWwgcmVjb25uZWN0ZWQgd2l0aG91dCByZXN1bWUgLSBsaWtlbHkgbWlzc2VkIHVwZGF0ZXMgLSBmZXRjaGluZyB1bnJlYWQgY29udmVyc2F0aW9ucyIsZGF0YTp7Y2hhbm5lbE5hbWU6byxyZXN1bWVkOml9LGxldmVsOiJpbmZvIn0pLCgwLFYuc3EpKCJhYmx5UmVjb25uZWN0ZWRHZXR0aW5nQ29udmVyc2F0aW9ucyIpLG4oKDAsJHIuc1gpKF8uQXkpKSl9O3Qub24oImF0dGFjaGVkIixyKSx0Lm9uKCJ1cGRhdGUiLHIpLHQub24oImRldGFjaGVkIiwoZnVuY3Rpb24odCl7ZS5zdG9yZS5kaXNwYXRjaCgoMCxabi5seCkoImRldGFjaGVkIikpLCgwLHMuWlEpKHtjYXRlZ29yeToiYWJseS1jaGFubmVsIixtZXNzYWdlOiJBYmx5IGNoYW5uZWwgZGV0YWNoZWQ6ICIrdC5yZWFzb24sbGV2ZWw6Indhcm5pbmcifSl9KSksdC5vbigic3VzcGVuZGVkIiwoZnVuY3Rpb24odCl7ZS5zdG9yZS5kaXNwYXRjaCgoMCxabi5seCkoInN1c3BlbmRlZCIpKSwoMCxzLlpRKSh7Y2F0ZWdvcnk6ImFibHktY2hhbm5lbCIsbWVzc2FnZToiQWJseSBjaGFubmVsIHN1c3BlbmRlZDogIit0LnJlYXNvbixsZXZlbDoid2FybmluZyJ9KX0pKSx0Lm9uKCJmYWlsZWQiLChmdW5jdGlvbih0KXtlLnN0b3JlLmRpc3BhdGNoKCgwLFpuLmx4KSgiZmFpbGVkIikpLCgwLFYub1MpKCJhYmx5X2NoYW5uZWxfZmFpbGVkIiksKDAscy5aUSkoe2NhdGVnb3J5OiJhYmx5LWNoYW5uZWwiLG1lc3NhZ2U6IkFibHkgY2hhbm5lbCBmYWlsZWQ6ICIrdC5yZWFzb24sbGV2ZWw6ImVycm9yIn0pfSkpfSxvLnJlcG9ydEVycm9yPWZ1bmN0aW9uKHQpe3ZhciBlPSJzdHJpbmciPT10eXBlb2YgdD9uZXcgRXJyb3IodCk6dDtudWxsPT1lJiYoZT1uZXcgRXJyb3IoIkFibHkgY2xpZW50IGNhdWdodCBhIG51bGwgb3IgdW5kZWZpbmVkIGVycm9yIikpLGUgaW5zdGFuY2VvZiBFcnJvcj8odGhpcy5jYXB0dXJlRXJyb3IoZSksdGhpcy5zYWZlQ29uc29sZUVycm9yKGUubWVzc2FnZSkpOih0aGlzLmNhcHR1cmVFcnJvcihuZXcgRXJyb3IoU3RyaW5nKGUpKSksdGhpcy5zYWZlQ29uc29sZUVycm9yKFN0cmluZyhlKSkpfSxvLmdldENvbmZpZz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3RvcmUuZ2V0U3RhdGUoKS5zZXNzaW9uO3JldHVybiB0aGlzLmludGVyY29tQ2xpZW50LmdldFJlYWx0aW1lQ29uZmlnKHtzZXNzaW9uOnR9KX0sby5jcmVhdGVNZXNzYWdlSGFuZGxlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIGZ1bmN0aW9uKGUpe3RyeXtlaSh0LmludGVyY29tQ2xpZW50LGUsdC5zdG9yZSl9Y2F0Y2goZSl7dC5yZXBvcnRFcnJvcihlKX19fSxlPXQsKG49W3trZXk6ImlzQ29ubmVjdGVkIixnZXQ6ZnVuY3Rpb24oKXt2YXIgdCxlO3JldHVybiJjb25uZWN0ZWQiPT09KG51bGw9PSh0PXRoaXMucmVhbHRpbWVDbGllbnQpP3ZvaWQgMDp0LmNvbm5lY3Rpb24uc3RhdGUpJiYiYXR0YWNoZWQiPT09KG51bGw9PShlPXRoaXMuY2hhbm5lbCk/dm9pZCAwOmUuc3RhdGUpfX1dKSYmb2koZS5wcm90b3R5cGUsbiksciYmb2koZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfSgpO2Z1bmN0aW9uIGhpKHQpe3JldHVybiBoaT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0saGkodCl9ZnVuY3Rpb24gdmkoKXt2aT1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHM9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGModCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Yyh7fSwiIil9Y2F0Y2godCl7Yz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gbCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGc/ZTpnLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgTChyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOk8odCxuLHUpfSksYX1mdW5jdGlvbiBmKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWw7dmFyIGQ9InN1c3BlbmRlZFN0YXJ0IixwPSJzdXNwZW5kZWRZaWVsZCIsaD0iZXhlY3V0aW5nIix2PSJjb21wbGV0ZWQiLHk9e307ZnVuY3Rpb24gZygpe31mdW5jdGlvbiBtKCl7fWZ1bmN0aW9uIGIoKXt9dmFyIHc9e307Yyh3LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIF89T2JqZWN0LmdldFByb3RvdHlwZU9mLFM9XyYmXyhfKFQoW10pKSk7UyYmUyE9PW4mJnIuY2FsbChTLGEpJiYodz1TKTt2YXIgeD1iLnByb3RvdHlwZT1nLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHcpO2Z1bmN0aW9uIEUodCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtjKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEModCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBzPWYodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLGw9Yy52YWx1ZTtyZXR1cm4gbCYmIm9iamVjdCI9PWhpKGwpJiZyLmNhbGwobCwiX19hd2FpdCIpP2UucmVzb2x2ZShsLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShsKS50aGVuKChmdW5jdGlvbih0KXtjLnZhbHVlPXQsYShjKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KHMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBPKGUsbixyKXt2YXIgbz1kO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT1oKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PXYpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPUEodSxyKTtpZihzKXtpZihzPT09eSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89dixyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289aDt2YXIgYz1mKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/djpwLGMuYXJnPT09eSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPXYsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBBKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxBKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLHk7dmFyIGk9ZihvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLHk7dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLHkpOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwseSl9ZnVuY3Rpb24gSSh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBrKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBMKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goSSx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBUKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IoaGkoZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gbS5wcm90b3R5cGU9YixvKHgsImNvbnN0cnVjdG9yIix7dmFsdWU6Yixjb25maWd1cmFibGU6ITB9KSxvKGIsImNvbnN0cnVjdG9yIix7dmFsdWU6bSxjb25maWd1cmFibGU6ITB9KSxtLmRpc3BsYXlOYW1lPWMoYixzLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09bXx8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsYik6KHQuX19wcm90b19fPWIsYyh0LHMsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoeCksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sRShDLnByb3RvdHlwZSksYyhDLnByb3RvdHlwZSx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1DLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQyhsKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LEUoeCksYyh4LHMsIkdlbmVyYXRvciIpLGMoeCxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGMoeCwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1ULEwucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpMLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChrKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MseSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSx5fSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLGsobikseX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztrKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpUKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCkseX19LGV9ZnVuY3Rpb24geWkodCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBnaSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXt5aShpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7eWkoaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfX12YXIgbWk9IkNvbnZlcnNhdGlvblNlZW4iLGJpPSJOZXdDb21tZW50Iix3aT0iQ29udmVyc2F0aW9uUGFydFVwZGF0ZWQiLF9pPSJVc2VyQ29udGVudFNlZW5CeUFkbWluIixTaT0iQWRtaW5Jc1R5cGluZyIseGk9IkNvbnZlcnNhdGlvblBhcnRUb2tlbiIsRWk9Ik1lc3NlbmdlckNhcmRVcGRhdGVkIixDaT0iU3RhcnRUb3VyIixPaT0iTmV3Q29udGVudCIsQWk9IlBpbmdIaW50IixJaT0iQ2hlY2tsaXN0VGFza0NvbXBsZXRlZCIsa2k9IkNoZWNrbGlzdHNSZXNvbHZlSGludCIsTGk9IkZpbkhhbmRvZmZUb1NhbGVzZm9yY2VJbkFwcE1lc3NhZ2luZyIsVGk9IkNvbnZlcnNhdGlvblRpdGxlR2VuZXJhdGVkIixqaT0iT25ib2FyZGluZ1BsYW5VcGRhdGVkIixQaT0iUXVldWVQb3NpdGlvblVwZGF0ZWQiLE5pPXtpbmNyZW1lbnQ6Vi5vUyxjb3VudDpWLnNMLHRpbWluZzpWLlZlfSxNaT17aW5mbzpWLkEyLGVycm9yOlYudW99O2Z1bmN0aW9uIFJpKHQpe2lmKHZvaWQgMCE9PXQpdHJ5e3Quc2h1dGRvd24oKX1jYXRjaCh0KXsoMCxWLnVvKSgic2h1dGRvd25SZWFsdGltZUNsaWVudDogIit0KX19ZnVuY3Rpb24gVWkodCxlKXtpZih2b2lkIDAhPT10KXRyeXtlLmRpc3BhdGNoKCgwLFpuLnVRKShYci5nSykpLHQucmV0cnlDb25uZWN0aW9uKCl9Y2F0Y2godCl7KDAsVi51bykoInJldHJ5UmVhbHRpbWVDbGllbnQ6ICIrdCl9fWZ1bmN0aW9uIHppKHQsZSxuLHIsbyxpLGEsdSxjLGwpe2lmKCFxaShlLG4sYykpcmV0dXJuIHQ7aWYoUmkodCksVmkobikpe3ZhciBmPVhyLkZMO3IuZGlzcGF0Y2goKDAsWm4udVEpKFhyLkZMKSksKDAscy5aUSkoe2NhdGVnb3J5OiJuZXh1cy1jb25uZWN0aW9uIixtZXNzYWdlOiJJbml0aWFsaXNpbmcgbmV3IHJlYWx0aW1lIGNsaWVudCIsZGF0YTp7cmVhbHRpbWVDb25maWc6ZSxuZXdSZWFsdGltZUNvbmZpZzpuLHVzZXJJZENoYW5nZWQ6Y30sbGV2ZWw6ImluZm8ifSk7dmFyIGQ9ZnVuY3Rpb24odCxlLG4scixvLGkpe3ZhciBhO3RyeXthPW5ldyBlKHQuZW5kcG9pbnRzLE1pLE5pLG4scixvLChmdW5jdGlvbigpe30pLHQub3B0aW9ucyxpKX1jYXRjaCh0KXsoMCxWLnVvKSgiY3JlYXRlUmVhbHRpbWVDbGllbnQ6ICIrdCksUmkoYSl9cmV0dXJuIGF9KG4sQnIoKSwoZnVuY3Rpb24oKXtkJiZkLnN1YnNjcmliZVRvQWxsVG9waWNzKCksZj1mdW5jdGlvbih0LGUpeygwLHMuWlEpKHtjYXRlZ29yeToibmV4dXMtY29ubmVjdGlvbiIsbWVzc2FnZToiTmV4dXMgY29ubmVjdGVkIixkYXRhOntwcmV2aW91c0Nvbm5lY3Rpb25TdGF0ZTp0fSxsZXZlbDoiaW5mbyJ9KSx0PT09WHIudzMmJldyKGUuZ2V0U3RhdGUoKSkmJigoMCxzLlpRKSh7Y2F0ZWdvcnk6Im5leHVzLWNvbm5lY3Rpb24iLG1lc3NhZ2U6Ik5leHVzIGNvbm5lY3RlZCAtIGxpa2VseSB0byBoYXZlIG1pc3NlZCB1cGRhdGVzIC0gZmV0Y2hpbmcgdW5yZWFkIGNvbnZlcnNhdGlvbnMiLGRhdGE6e3ByZXZpb3VzQ29ubmVjdGlvblN0YXRlOnR9LGxldmVsOiJpbmZvIn0pLCgwLFYuc3EpKCJuZXh1c1JlY29ubmVjdGVkR2V0dGluZ0NvbnZlcnNhdGlvbnMiKSxIaSgoZnVuY3Rpb24oKXtyZXR1cm4gZS5kaXNwYXRjaCgoMCwkci5zWCkoXy5BeSkpfSkpKTsoMCx5LmhuKSgpfHwoKDAsVi5zcSkoInJlYWxUaW1lQ29ubmVjdGVkIiksKDAseS52USkoITApKTtyZXR1cm4gZS5kaXNwYXRjaCgoMCxabi51USkoWHIuYSQpKSxYci5hJH0oZixyKX0pLChmdW5jdGlvbigpe2Y9ZnVuY3Rpb24odCl7cmV0dXJuKDAscy5aUSkoe2NhdGVnb3J5OiJuZXh1cy1jb25uZWN0aW9uIixtZXNzYWdlOiJOZXh1cyBkaXNjb25uZWN0ZWQiLGxldmVsOiJpbmZvIn0pLHQuZGlzcGF0Y2goKDAsWm4udVEpKFhyLnczKSksWHIudzN9KHIpfSksZ2kodmkoKS5tYXJrKChmdW5jdGlvbiB0KCl7dmFyIGUsbixvLGk7cmV0dXJuIHZpKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYoZT1yLmdldFN0YXRlKCksbj1lLnNlc3Npb24pe3QubmV4dD0zO2JyZWFrfXJldHVybiB0LmFicnVwdCgicmV0dXJuIixbXSk7Y2FzZSAzOnJldHVybiB0LnByZXY9MywoMCxzLlpRKSh7Y2F0ZWdvcnk6Im5leHVzLWNvbm5lY3Rpb24iLG1lc3NhZ2U6IkZldGNoaW5nIG5leHVzIGNvbmZpZyBmb3IgcmVjb25uZWN0aW9uIixsZXZlbDoiaW5mbyJ9KSx0Lm5leHQ9NyxfLkF5LmdldE5leHVzQ29uZmlnKHtzZXNzaW9uOm59KTtjYXNlIDc6cmV0dXJuIG89dC5zZW50LGk9by5lbmRwb2ludHN8fFtdLCgwLHMuWlEpKHtjYXRlZ29yeToibmV4dXMtY29ubmVjdGlvbiIsbWVzc2FnZToiTmV4dXMgY29uZmlnIGZldGNoZWQgZm9yIHJlY29ubmVjdGlvbiIsZGF0YTp7ZW5kcG9pbnRzOml9LGxldmVsOiJpbmZvIn0pLHQuYWJydXB0KCJyZXR1cm4iLGkpO2Nhc2UgMTM6cmV0dXJuIHQucHJldj0xMyx0LnQwPXQuY2F0Y2goMyksKDAsVi51bykoImdldE5leHVzQ29uZmlnIGZhaWxlZDogIit0LnQwKSx0LmFicnVwdCgicmV0dXJuIixbXSk7Y2FzZSAxNzpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsbnVsbCxbWzMsMTNdXSl9KSkpLGwpO2lmKGQpe3RyeXshZnVuY3Rpb24odCxlLG4scixvLGksYSx1LGMsbCl7dmFyIGYsZD1lLmdldFN0YXRlKCk7ITAhPT0obnVsbD09ZHx8bnVsbD09KGY9ZC5hcHApfHxudWxsPT0oZj1mLmZlYXR1cmVzKT92b2lkIDA6Zi5uZXh1c0FibHkpP2Z1bmN0aW9uKHQsZSxuKXt2YXIgcj0oMCxGci5zKSgoZnVuY3Rpb24odCl7cmV0dXJuIHQoKX0pLDVlMyk7dC5hZGRMaXN0ZW5lcihiaSwoZnVuY3Rpb24odCl7dmFyIG8saT10LGE9aS5ldmVudERhdGEsdT1hLmNvbnZlcnNhdGlvbklkLGM9YS5jcmVhdGVkQnlVc2VySWQsbD1hLmRlbGl2ZXJ5Q2hhbm5lbCxmPWEuY2xpZW50QXNzaWduZWRVdWlkLGQ9YS5jdXN0b21Cb3RTdGF0ZSxwPWEuaXNPcGVyYXRvclBhcnQsaD1pLndlYlNvY2tldEVucXVldWVkQXQ7aWYoIWx8fC0xIT09bC5pbmRleE9mKCJ3ZWIiKSl7dmFyIHYseSxnPWUuZ2V0U3RhdGUoKS51c2VyO2lmKG51bGwhPShvPXQuZXZlbnREYXRhKSYmby5jbXIpKDAsVi5zcSkoIm1pc3NpbmdfcmVwbGllc19uZXdfY29tbWVudF9ldmVudF9yZWNlaXZlZCIse2NsaWVudF9hc3NpZ25lZF91dWlkOm51bGw9PSh2PXQuZXZlbnREYXRhKT92b2lkIDA6di5jbGllbnRBc3NpZ25lZFV1aWQsY29udmVyc2F0aW9uX2lkOm51bGw9PSh5PXQuZXZlbnREYXRhKT92b2lkIDA6eS5jb252ZXJzYXRpb25JZCxkZXN0aW5hdGlvbjp0WyJueC5EZXN0aW5hdGlvbiJdfSk7KDAscy5aUSkoe2NhdGVnb3J5OiJnZXQtY29udmVyc2F0aW9uIixtZXNzYWdlOiJOZXh1cyBOZXcgQ29tbWVudCBldmVudCByZWNlaXZlZCIsZGF0YTp7Y29udmVyc2F0aW9uSWQ6dSxjcmVhdGVkQnlVc2VySWQ6Y30sbGV2ZWw6ImluZm8ifSk7dmFyIG09ZnVuY3Rpb24oKXtyZXR1cm4gZS5kaXNwYXRjaChuKF8uQXksdSx7aXNVcGRhdGluZzohMCxjbGllbnRBc3NpZ25lZFV1aWQ6Zix3ZWJTb2NrZXRFbnF1ZXVlZEF0OmgsY3VzdG9tQm90U3RhdGU6ZCxpc09wZXJhdG9yUGFydDpwLHJlcXVlc3RPcmlnaW46Ik5leHVzIE5ldyBDb21tZW50IixldmVudERhdGE6dC5ldmVudERhdGF9KSl9O2M9PT1nLmlkP3IobSk6bSgpfX0pKX0odCxlLG4pOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj0oMCxGci5zKSgoZnVuY3Rpb24odCl7cmV0dXJuIHQoKX0pLDVlMyk7dC5hZGRMaXN0ZW5lcihiaSxnaSh2aSgpLm1hcmsoKGZ1bmN0aW9uIHQobyl7dmFyIGksYSx1LGMsbCxmLGQscCxoLHYseSxnLG0sYix3O3JldHVybiB2aSgpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmlmKHU9KGE9bykuZXZlbnREYXRhLGM9dS5jb252ZXJzYXRpb25JZCxsPXUuY3JlYXRlZEJ5VXNlcklkLGY9dS5kZWxpdmVyeUNoYW5uZWwsZD11LmNsaWVudEFzc2lnbmVkVXVpZCxwPXUuY3VzdG9tQm90U3RhdGUsaD11LmlzT3BlcmF0b3JQYXJ0LHY9YS53ZWJTb2NrZXRFbnF1ZXVlZEF0LCFmfHwtMSE9PWYuaW5kZXhPZigid2ViIikpe3QubmV4dD01O2JyZWFrfXJldHVybiB0LmFicnVwdCgicmV0dXJuIik7Y2FzZSA1OmlmKHk9ZS5nZXRTdGF0ZSgpLGc9eS51c2VyLG51bGwhPShpPW8uZXZlbnREYXRhKSYmaS5jbXImJigwLFYuc3EpKCJtaXNzaW5nX3JlcGxpZXNfbmV3X2NvbW1lbnRfZXZlbnRfcmVjZWl2ZWQiLHtjbGllbnRfYXNzaWduZWRfdXVpZDpudWxsPT0obT1vLmV2ZW50RGF0YSk/dm9pZCAwOm0uY2xpZW50QXNzaWduZWRVdWlkLGNvbnZlcnNhdGlvbl9pZDpudWxsPT0oYj1vLmV2ZW50RGF0YSk/dm9pZCAwOmIuY29udmVyc2F0aW9uSWQsZGVzdGluYXRpb246b1sibnguRGVzdGluYXRpb24iXX0pLCgwLHMuWlEpKHtjYXRlZ29yeToiZ2V0LWNvbnZlcnNhdGlvbiIsbWVzc2FnZToiTmV4dXMgTmV3IENvbW1lbnQgZXZlbnQgcmVjZWl2ZWQgLSBmZXRjaGluZyBjb252ZXJzYXRpb24iLGRhdGE6e2NvbnZlcnNhdGlvbklkOmMsY3JlYXRlZEJ5VXNlcklkOmx9LGxldmVsOiJpbmZvIn0pLHQucHJldj04LCFkaSgpKXt0Lm5leHQ9MTE7YnJlYWt9cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDExOnc9ZnVuY3Rpb24oKXtyZXR1cm4gZS5kaXNwYXRjaChuKF8uQXksYyx7aXNVcGRhdGluZzohMCxjbGllbnRBc3NpZ25lZFV1aWQ6ZCx3ZWJTb2NrZXRFbnF1ZXVlZEF0OnYsY3VzdG9tQm90U3RhdGU6cCxpc09wZXJhdG9yUGFydDpoLHJlcXVlc3RPcmlnaW46Ik5leHVzIE5ldyBDb21tZW50IChBYmx5KSIsZXZlbnREYXRhOm8uZXZlbnREYXRhfSkpfSxsPT09Zy5pZD9yKHcpOncoKSx0Lm5leHQ9MTg7YnJlYWs7Y2FzZSAxNTp0LnByZXY9MTUsdC50MD10LmNhdGNoKDgpLCgwLFYudW8pKCJhZGROZXdDb21tZW50RXZlbnRMaXN0ZW5lcldpdGhBYmx5OiAiK3QudDApO2Nhc2UgMTg6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LG51bGwsW1s4LDE1XV0pfSkpKSl9KHQsZSxuKTt0LmFkZExpc3RlbmVyKF9pLChmdW5jdGlvbih0KXt2YXIgbj10LmV2ZW50RGF0YS5jb252ZXJzYXRpb25JZDtlLmRpc3BhdGNoKHIobikpfSkpLHQuYWRkTGlzdGVuZXIobWksKGZ1bmN0aW9uKHQpe3ZhciBuPXQuZXZlbnREYXRhLmNvbnZlcnNhdGlvbklkO2UuZGlzcGF0Y2goaShuKSl9KSksdC5hZGRMaXN0ZW5lcihTaSwoZnVuY3Rpb24odCl7dmFyIG4scj10LmV2ZW50RGF0YSxpPXIuY29udmVyc2F0aW9uSWQsYT1yLmFkbWluSWQsdT1yLmFkbWluTmFtZSxjPXIuYWRtaW5BdmF0YXIsbD1yLmhhc0RlZmF1bHRBdmF0YXIsZj1yLmlzQm90LGQ9ci5oYXNBSSxwPXIuc2hvd0F2YXRhcixoPXIubG9hZGluZ1N0YXR1cyx2PXIuY2xpZW50SWQseT1yLmFja25vd2xlZGdlbWVudFBhcnQ7aWYoIXIud3JpdGluZ0ZpcnN0TWVzc2FnZSlpZih2b2lkIDA9PT1ofHwtMSE9PU9iamVjdC52YWx1ZXMoQW4uczEpLmluZGV4T2YoaCkpe3ZhciBnPSgwLGVvLkxmKShlLmdldFN0YXRlKCkpLG09Zy5wYXJ0aWNpcGFudCxiPWcuc3RyZWFtaW5nUGFydCx3PXZvaWQgMDt5JiZtJiYodz1PYmplY3QuYXNzaWduKHt9LCgwLF8ud2opKCgwLG5vLk8pKHkpKSx7YXV0aG9yOntpZDptLmlkLGF2YXRhcjptLmF2YXRhcixmaXJzdE5hbWU6bS5maXJzdE5hbWUsaW5pdGlhbDptLmluaXRpYWwsdHlwZToiYWRtaW4iLGlzQWRtaW46ITAsaXNCb3Q6ITAsaXNTZWxmOiExfSx1eFN0eWxlOm51bGw9PWI/dm9pZCAwOmIudXhTdHlsZSxtZXRhZGF0YTpudWxsPT1iP3ZvaWQgMDpiLm1ldGFkYXRhfSkpLGUuZGlzcGF0Y2gobyhpLHthZG1pbklkOmEsZmlyc3ROYW1lOnUsYXZhdGFyVXJsOkJpKGMsbCksaXNCb3Q6ZixoYXNBSTpkLHNob3dBdmF0YXI6cCxsb2FkaW5nU3RhdHVzOmgsbGFzdEFjdGl2ZUF0Om51bGwhPShuPXcpJiZuLmNyZWF0ZWRBdD93LmNyZWF0ZWRBdDpuZXcgRGF0ZSxjbGllbnRJZDp2LGFja25vd2xlZGdlbWVudFBhcnQ6d30pKX1lbHNle3ZhciBTPWUuZ2V0U3RhdGUoKS5zZXNzaW9uOygwLHMud2QpKCJVbnN1cHBvcnRlZCBsb2FkaW5nU3RhdHVzIHJlY2VpdmVkIGluIGFkbWluSXNUeXBpbmcgZXZlbnQgLSBjb252ZXJzYXRpb25JZDogIitpKyIsIGFwcElkOiAiKyhudWxsPT1TP3ZvaWQgMDpTLmFwcElkKSsiLCBzdGF0dXM6ICIraCl9fSkpLHQuYWRkTGlzdGVuZXIoRWksKGZ1bmN0aW9uKHQpe3ZhciByPXQuZXZlbnREYXRhLmNhcmRVcmksbz0oMCxWci5HbSkoZS5nZXRTdGF0ZSgpKTtvJiYoMCxELml1KShvLHIpJiZlLmRpc3BhdGNoKG4oXy5BeSxvLmlkLHtpc1VwZGF0aW5nOiEwLHJlcXVlc3RPcmlnaW46Ik5leHVzIE1lc3NlbmdlciBjYXJkIHVwZGF0ZSJ9KSl9KSksdC5hZGRMaXN0ZW5lcih3aSwoZnVuY3Rpb24odCl7dmFyIHI9dC5ldmVudERhdGEuY29udmVyc2F0aW9uSWQsbz0oMCxWci5HbSkoZS5nZXRTdGF0ZSgpKTsobnVsbD09bz92b2lkIDA6by5pZCk9PT1TdHJpbmcocikmJmUuZGlzcGF0Y2gobihfLkF5LHIse2lzVXBkYXRpbmc6ITAscmVxdWVzdE9yaWdpbjoiTmV4dXMgQ29udmVyc2F0aW9uIHBhcnQgdXBkYXRlIn0pKX0pKSx0LmFkZExpc3RlbmVyKENpLChmdW5jdGlvbih0KXt2YXIgbj10LmV2ZW50RGF0YS50b3VyLHI9ZS5nZXRTdGF0ZSgpLnVzZXI7KDAsVi5KcikociwicmVjZWl2ZWRfbmV4dXMiLCJ0b3VyIiwibWVzc2VuZ2VyIixudWxsLHt0b3VyX2lkOm4uaWR9KSxyLmlzUHJlc2VudCYmZS5kaXNwYXRjaChhKG4uaWQpKX0pKSx0LmFkZExpc3RlbmVyKE9pLChmdW5jdGlvbih0KXt2YXIgbj10LmV2ZW50RGF0YSxyPW4uZW50aXR5X2lkLG89bi5lbnRpdHlfdHlwZSxpPW4uZXZlbnRfbWV0YWRhdGEsYT1lLmdldFN0YXRlKCkudXNlcjsoMCxWLkpyKShhLCJyZWNlaXZlZF9uZXh1cyIsIm5ld19jb250ZW50IiwibWVzc2VuZ2VyIixudWxsLHtlbnRpdHlfaWQ6cixlbnRpdHlfdHlwZTpvfSksbz09PVFyLncuQkFOTkVSX1ZJRVc/ZS5kaXNwYXRjaCh1KHIsaSkpOm89PT1Rci53LlNVUlZFWV9QUk9HUkVTUyYmZS5kaXNwYXRjaChjKHIsbykpfSkpLHQuYWRkTGlzdGVuZXIoQWksKGZ1bmN0aW9uKCl7dmFyIHQ9ZS5nZXRTdGF0ZSgpLnNlc3Npb247RmkoKGZ1bmN0aW9uKCl7ZS5kaXNwYXRjaChsKF8uQXksdCx3aW5kb3cucGFyZW50LmxvY2F0aW9uLmhyZWYsbnVsbCxudWxsLHt9LCEwLHZvaWQgMCwiYXBpVXBkYXRlIikpfSkpfSkpLHQuYWRkTGlzdGVuZXIoSWksKGZ1bmN0aW9uKHQpe3ZhciBuPXQuZXZlbnREYXRhLHI9bi5jaGVja2xpc3RfaWQsbz1uLmNoZWNrbGlzdF9wcm9ncmVzc19pZCxpPW4udGFza19pZDtlLmRpc3BhdGNoKCgwLFpyLkJkKShyLE51bWJlcihvKSxpKSl9KSksdC5hZGRMaXN0ZW5lcihraSwoZnVuY3Rpb24oKXtGaSgoZnVuY3Rpb24oKXtlLmRpc3BhdGNoKCgwLFpyLm93KSgpKX0pKX0pKSx0LmFkZExpc3RlbmVyKExpLChmdW5jdGlvbih0KXt2YXIgbj1lLmdldFN0YXRlKCkudXNlcixyPXQuZXZlbnREYXRhLG89ci5jb252ZXJzYXRpb25JZCxpPXIuaG9zdG5hbWUsYT1yLm9yZ2FuaXphdGlvbklkLHU9ci51c2VyVmVyaWZpY2F0aW9uRW5hYmxlZDsoMCxWLkpyKShuLCJyZWNlaXZlZF9uZXh1cyIsImhhbmRvdmVyX3RvX3NhbGVzZm9yY2VfaW5fYXBwX21lc3NhZ2luZyIsIm1lc3NlbmdlciIsbnVsbCx7Y29udmVyc2F0aW9uX2lkOm99KTt2YXIgcz1qbyhuKTtlLmRpc3BhdGNoKEpyKHMsaSxvLGEsdSkpfSkpLHQuYWRkTGlzdGVuZXIoVGksKGZ1bmN0aW9uKHQpe3ZhciBuPXQuZXZlbnREYXRhLHI9bi5jb252ZXJzYXRpb25JZCxvPW4udGl0bGU7ZS5kaXNwYXRjaCgoMCxvby54SikocixvKSl9KSksdC5hZGRMaXN0ZW5lcihqaSwoZnVuY3Rpb24odCl7dmFyIG4scj0obnVsbD09KG49dC5ldmVudERhdGEpP3ZvaWQgMDpuLmNvbnZlcnNhdGlvbklkKXx8dm9pZCAwO0ZpKChmdW5jdGlvbigpe3JldHVybiBlLmRpc3BhdGNoKCgwLGlvLlp5KSh7Zm9yY2U6ITAsY29udmVyc2F0aW9uSWQ6cn0pKX0pKX0pKSx0LmFkZExpc3RlbmVyKFBpLChmdW5jdGlvbih0KXt2YXIgbixyLG89bnVsbD09KG49dC5ldmVudERhdGEpP3ZvaWQgMDpuLmNvbnZlcnNhdGlvbklkLGk9bnVsbD09KHI9dC5ldmVudERhdGEpP3ZvaWQgMDpyLnF1ZXVlUG9zaXRpb25UZXh0O251bGwhPW8mJnZvaWQgMCE9PWkmJiIiIT09aSYmZS5kaXNwYXRjaCgoMCxvby5BOSkoU3RyaW5nKG8pLGkpKX0pKTt2YXIgcD1mdW5jdGlvbih0LG4pe2UuZGlzcGF0Y2goKDAscm8uJFopKHtjb252ZXJzYXRpb25JZDp0LHBhcnQ6bn0pKX07dC5hZGRMaXN0ZW5lcih4aSwoZnVuY3Rpb24odCl7dmFyIG49KDAsZW8uTGYpKGUuZ2V0U3RhdGUoKSkscj1uLnBhcnRpY2lwYW50LG89bi5zdHJlYW1pbmdQYXJ0O2lmKHIpe3ZhciBpPXQuZXZlbnREYXRhLGE9aS5jb252ZXJzYXRpb25JZCx1PWkudG9rZW5TZXF1ZW5jZUluZGV4LHM9aS5lMmVNZXRyaWNJZCxjPWkudHJhY2VwYXJlbnQsbD1PYmplY3QuYXNzaWduKHt9LCgwLF8ud2opKCgwLG5vLk8pKHQuZXZlbnREYXRhKSkse2F1dGhvcjp7aWQ6ci5pZCxhdmF0YXI6ci5hdmF0YXIsZmlyc3ROYW1lOnIuZmlyc3ROYW1lLGluaXRpYWw6ci5pbml0aWFsLHR5cGU6ImFkbWluIixpc0FkbWluOiEwLGlzQm90OiEwLGlzU2VsZjohMX0sdXhTdHlsZTpudWxsPT1vP3ZvaWQgMDpvLnV4U3R5bGUsbWV0YWRhdGE6bnVsbD09bz92b2lkIDA6by5tZXRhZGF0YX0pO3AoYSxsKTt2YXIgZj0oMCxWci5WTikoZS5nZXRTdGF0ZSgpLGEpO3MmJjA9PT11JiZmJiYoMCxWLnNxKSgicmVjZWl2ZWRfZmlyc3Rfc3RyZWFtZWRfdG9rZW4iLHtjbGllbnRfYXNzaWduZWRfdXVpZDpzLHRpbWVzdGFtcDpEYXRlLm5vdygpfSksYW8uZi5vblRva2VuUmVjZWl2ZWQodCxjKX19KSksdC5hZGRHbG9iYWxMaXN0ZW5lcigoZnVuY3Rpb24odCl7KDAscy5aUSkoe2NhdGVnb3J5OiJuZXh1cy1jb25uZWN0aW9uIixtZXNzYWdlOiJOZXh1cyBldmVudCByZWNlaXZlZCIsZGF0YTp7ZXZlbnQ6dH0sbGV2ZWw6ImluZm8ifSksZS5kaXNwYXRjaCgoMCxabi5iRSkodC5ldmVudE5hbWUpKX0pKX0oZCxyLG8saSxhLHUsYi5vcyxLci5FMyxZci4kTix0by5vaSl9Y2F0Y2godCl7KDAsVi51bykoImFkZFJlYWx0aW1lTGlzdGVuZXJzOiAiK3QpLFJpKGQpfXJldHVybiBkfX19dmFyIEhpPSgwLEZyLnMpKChmdW5jdGlvbih0KXtyZXR1cm4gdCgpfSksNWUzLHtsZWFkaW5nOiEwLHRyYWlsaW5nOiEwfSksRmk9KDAsRnIucykoKGZ1bmN0aW9uKHQpe3JldHVybiB0KCl9KSwxZTMpO2Z1bmN0aW9uIERpKHQpe3ZvaWQgMCE9PXQmJigoMCxzLlpRKSh7Y2F0ZWdvcnk6Im5leHVzLWNvbm5lY3Rpb24iLG1lc3NhZ2U6IlBlcmZvcm1pbmcgbWFudWFsIGhlYWx0aGNoZWNrIixsZXZlbDoiaW5mbyJ9KSx0LnBlcmZvcm1IZWFsdGhDaGVjaygpKX12YXIgQmk9ZnVuY3Rpb24odCxlKXtyZXR1cm4hZSYmdCYmMD09PXQuaW5kZXhPZigiaHR0cCIpP3Q6dm9pZCAwfSxWaT1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dCYmQXJyYXkuaXNBcnJheSh0LmVuZHBvaW50cykmJnQuZW5kcG9pbnRzLmxlbmd0aD4wfSxHaT1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gbnVsbD09KGU9KDAsQi5IVikodC5zcGxpdCgiLyIpKSk/dm9pZCAwOmUuc3BsaXQoIi0iKVswXX0scWk9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBWaSh0KSYmVmkoZSk/bnx8ZnVuY3Rpb24odCxlKXtyZXR1cm4gR2kodCkhPT1HaShlKX0odC5lbmRwb2ludHNbMF0sZS5lbmRwb2ludHNbMF0pOiFWaSh0KSYmVmkoZSl8fFZpKHQpJiYhVmkoZSl9LFdpPSgwLEdyLk16KSgoZnVuY3Rpb24odCl7cmV0dXJuIHQub3BlcmF0b3J9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQubGFzdENvbXBvc2VyRXZlbnR9KSksS2k9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0LmtleXModCksbj17fTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgcj10W2VdLG89ci5kaXNtaXNzZWQsaT1yLnJlYWQ7bltlXT17ZmV0Y2hTdGF0ZToicGFydGlhbCIsZGlzbWlzc2VkOm8scmVhZDppfX0pKSxufSxaaT0hMD09PXBhcmVudC5fX0lOVEVSQ09NX1JFRFVYX0RFVl9UT09MU19fJiZwYXJlbnQuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fQ09NUE9TRV9fP3BhcmVudC5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX18oe3RyYWNlOiExLHRyYWNlTGltaXQ6MjV9KTpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdH19LEppPW4oNTk3Nyk7ZnVuY3Rpb24gWWkoKXtyZXR1cm4gWWk9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxZaS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFFpPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7c2k9bmV3IHBpKHQpfShZaSh7fSx0LHtzdG9yZTplfSkpLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgcixpLGEsdT10KG4pO2lmKGk9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJiJfREFUQURPR19TWU5USEVUSUNTX0JST1dTRVIiaW4gd2luZG93LGE9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5sb2NhdGlvbiYmKCJhcHAuaW50ZXJjb20udGVzdCI9PT13aW5kb3cubG9jYXRpb24uaG9zdG5hbWV8fCJpbnRlcmNvbS1qcy50ZXN0Ij09PXdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZXx8LTEhPT13aW5kb3cubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoImxvY2FsX2NsaWVudD10cnVlIikpLGl8fGEpcmV0dXJuIHU7aWYobi50eXBlIT09Ri5KNEMmJm4udHlwZSE9PUYuUndxJiZuLnR5cGUhPT1GLm5RMCYmbi50eXBlIT09by5VYy50eXBlKXJldHVybiB1O3ZhciBzPWUuZ2V0U3RhdGUoKTtpZihuLnR5cGU9PT1GLm5RMClyZXR1cm4gZmkoKSx1O2lmKCEoKG51bGw9PShyPXMuYXBwLmZlYXR1cmVzKT92b2lkIDA6ci5uZXh1c0FibHkpfHwhMSkpcmV0dXJuIHU7aWYobi50eXBlPT09by5VYy50eXBlKXtpZighKDAsaC5EcykocykpcmV0dXJuIHU7dmFyIGM9KDAsSmkuTikocyk7cmV0dXJuIGM9PT1Bbi5jeS5zaHJpbmtlZD8oZmkoKSx1KToocy5hcHAuaXNNZXNzZW5nZXJPcGVuJiZjPT09QW4uY3kudmlzaWJsZSYmY2koKSx1KX1pZihuLnR5cGU9PT1GLko0QylyZXR1cm4oMCxoLkRzKShzKXx8Y2koKSx1O2lmKGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGU9PT1GLlJ3cX0obikpe2lmKCFzLmFwcC5pc01lc3Nlbmdlck9wZW4pcmV0dXJuIHU7KDAsaC5Ecykocyk/KDAsSmkuTikocyk9PT1Bbi5jeS52aXNpYmxlJiZjaSgpOmNpKCl9cmV0dXJuIHV9fX19O3ZhciBYaT12b2lkIDAsJGk9dm9pZCAwLHRhPXZvaWQgMDt2YXIgZWE9ZnVuY3Rpb24odCl7dmFyIGU9dC51cGRhdGVSZWFsdGltZUNsaWVudCxuPXQuc2h1dGRvd25SZWFsdGltZUNsaWVudCxyPXQuZ2V0Q29udmVyc2F0aW9uLG89dC51c2VyQ29udGVudFNlZW5CeUFkbWluLGk9dC5hZG1pbklzVHlwaW5nLGE9dC5jb252ZXJzYXRpb25SZWFkRWxzZXdoZXJlLHU9dC5yZXRyeVJlYWx0aW1lQ2xpZW50LHM9dC5wZXJmb3JtSGVhbHRoQ2hlY2s7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24obCl7dmFyIGY9YyhsKSxkPWw7c3dpdGNoKGQudHlwZSl7Y2FzZSBGLlJ3cTp2YXIgcD1kLnVzZXIuYXBwLnJlYWx0aW1lQ29uZmlnLGg9ZC51c2VyLmlkO1hpPWUoWGksJGkscCx0LHIsbyxpLGEsaCE9PXRhLGQudXNlci5yb2xlKSwkaT1wLHRhPWg7YnJlYWs7Y2FzZSBGLnFqUzpuKFhpKSxYaT12b2lkIDAsJGk9dm9pZCAwLHRhPXZvaWQgMDticmVhaztjYXNlIEYub2c4OnUoWGksdCl9aWYoIVhpKXJldHVybiBmO3N3aXRjaChkLnR5cGUpe2Nhc2UgRi5UbVE6WGkuc2VuZEV2ZW50KG1pLHtjb252ZXJzYXRpb25JZDpkLmNvbnZlcnNhdGlvbklkfSk7YnJlYWs7Y2FzZSBGLk5mYjpYaS50aHJvdHRsZVNlbmRFdmVudCgiVXNlcklzVHlwaW5nIix7Y29udmVyc2F0aW9uSWQ6ZC5jb252ZXJzYXRpb25JZH0sITApO2JyZWFrO2Nhc2UgRi5aQno6WGkuc2VuZEV2ZW50KEVpLHtjYXJkVXJpOmQuY2FyZC51cml9KTticmVhaztjYXNlIEYuUmt4OnMoWGkpfXJldHVybiBmfX19fSxuYT13aW5kb3cucGFyZW50LHJhPWZ1bmN0aW9uKHQpe2lmKG5hJiZuYS5pbnRlcmNvbVNldHRpbmdzJiZuYS5pbnRlcmNvbVNldHRpbmdzLmFwcF9pZCl7dmFyIGU9bmEuaW50ZXJjb21TZXR0aW5ncy5hcHBfaWQ7LTE9PT10LmluZGV4T2YoZSkmJih0PXQrIi0iK2UpO3ZhciBuPW5hLmludGVyY29tU2V0dGluZ3MuaGVscF9jZW50ZXJfaWQ7biYmKHQ9dCsiLWhjIituKX1yZXR1cm4gdH0sb2E9ZnVuY3Rpb24odCl7dHJ5e3ZhciBlPVguTC5nZXQodCk7cmV0dXJuIGU/SlNPTi5wYXJzZShlKTpudWxsfWNhdGNoKHQpeygwLFYub1MpKCJoeWRyYXRlX3JlYWRfZXJyb3IiKX19LGlhPWZ1bmN0aW9uKHQsZSl7dHJ5e1guTC5zZXQodCxKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2godCl7KDAsVi5vUykoImh5ZHJhdGVfd3JpdGVfZXJyb3IiKX19O3ZhciBhYT1mdW5jdGlvbih0KXtyZXR1cm57dHlwZTpGLnIyeCxzdGF0ZTp0fX0sdWE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ImludGVyY29tLXN0YXRlIiksZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsbz1uZXcgQXJyYXkociksaT0wO2k8cjtpKyspb1tpXT1hcmd1bWVudHNbaV07dmFyIGE9bi5hcHBseSh2b2lkIDAsbyk7aWYoZT1yYShlKSwhKDAsZi5HNSkoKSlyZXR1cm4gYTt2YXIgdT1vYShlKTtpZih1KXt2YXIgcz1hLmdldFN0YXRlKCk7dHJ5e2EuZGlzcGF0Y2goYWEodSkpfWNhdGNoKHQpeygwLFYub1MpKCJoeWRyYXRlX2Vycm9yIiksZnVuY3Rpb24odCl7dHJ5e1guTC5yZW1vdmUodCl9Y2F0Y2godCl7KDAsVi5vUykoImh5ZHJhdGVfcmVtb3ZlX2Vycm9yIil9fShlKSxhLmRpc3BhdGNoKGFhKHMpKX19cmV0dXJuIGEuc3Vic2NyaWJlKChmdW5jdGlvbigpe3ZhciBuPWEuZ2V0U3RhdGUoKTtuLnNlc3Npb24mJmlhKGUsdChuKSl9KSksYX19fSxzYT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49dChlKSxyPWU7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGU9PT1GLnFqU30ocikmJigwLGYuRzUpKCkmJnIuY2xlYXJDb29raWVzJiZYLkwucmVtb3ZlKHJhKCJpbnRlcmNvbS1zdGF0ZSIpKSxufX19LGNhPXtwbGF5OmZ1bmN0aW9uKHQpe2lmKHRoaXMuc2hvdWxkUGxheUF1ZGlvKCkpe3ZhciBlPXRoaXMubG9hZCh0KTtpZihlKXt2YXIgbj1lLnBsYXkoKTtuJiZuLmNhdGNoKChmdW5jdGlvbigpe30pKX19fSxwbGF5RmlsZTpmdW5jdGlvbih0KXt0JiZ0aGlzLnNob3VsZFBsYXlBdWRpbygpJiZ0aGlzLnBsYXkobig3MzIzMCkoIi4vIit0KSl9LGxvYWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYXVkaW9bdF18fCh0aGlzLmF1ZGlvW3RdPW5ldyBBdWRpbyh0KSksdGhpcy5hdWRpb1t0XX0scGxheU5vdGlmaWNhdGlvbjooMCxGci5zKSgoZnVuY3Rpb24odCl7dGhpcy5wbGF5KG4oNzMyMzApKCIuLyIrdCkpfSksM2UzLHtsZWFkaW5nOiEwLHRyYWlsaW5nOiExfSksc2hvdWxkUGxheUF1ZGlvOmZ1bmN0aW9uKCl7cmV0dXJuIGYuQXkuaGFzQXVkaW9TdXBwb3J0KCkmJiFmLkF5LmlzSU9TKCl9LGF1ZGlvOnt9fSxsYT1uKDYzMzQ5KTtmdW5jdGlvbiBmYSh0KXtyZXR1cm4gZmE9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LGZhKHQpfXZhciBkYT0icGxheWVkLW5vdGlmaWNhdGlvbnMiLHBhPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBCb29sZWFuKG51bGw9PShlPXQuc2Vzc2lvbik/dm9pZCAwOmUubmV3U2Vzc2lvbil9LGhhPWZ1bmN0aW9uKHQsZSxuKXtpZighZSlyZXR1cm4hMTt2YXIgcj1mdW5jdGlvbih0KXtyZXR1cm4hIXQmJigwLEIueEgpKHQucGFydFR5cGUpfShlKXx8ZnVuY3Rpb24odCxlKXtyZXR1cm4hISh0JiZ0LmF1dGhvciYmdC5hdXRob3IuaXNCb3QpJiZ5YS5oYXMoZSl9KGUsdCl8fGZ1bmN0aW9uKHQsZSl7cmV0dXJuISEodCYmdC5hdXRob3ImJnQuYXV0aG9yLmlzQm90KSYmZ2EuaGFzKGUpfShlLHQpfHxmdW5jdGlvbih0LGUpe3JldHVybiEwPT09KG51bGw9PXQ/dm9pZCAwOnQuaXNGaW5Wb2ljZVBhcnQpfHwoMCxuci5OcCkoZSl9KGUsbik7cmV0dXJuISFyJiYobWEodCxlLmlkKSwhMCl9LHZhPWZ1bmN0aW9uKCl7dmFyIHQ9WC5zLmdldChkYSk7aWYoIXQpcmV0dXJue307dHJ5e3ZhciBlPUpTT04ucGFyc2UodCk7aWYoZSYmIm9iamVjdCI9PT1mYShlKSYmIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9Y2F0Y2godCl7fXJldHVybnt9fSgpLHlhPW5ldyBTZXQsZ2E9bmV3IFNldCxtYT1mdW5jdGlvbih0LGUpe3ZhW1N0cmluZyh0KV09ZSxYLnMuc2V0KGRhLEpTT04uc3RyaW5naWZ5KHZhKSl9LGJhPWZ1bmN0aW9uKHQsZSl7aWYoIXQucGFydHN8fDA9PT10LnBhcnRzLmxlbmd0aClyZXR1cm4hMTt2YXIgbixyLG8saT0oMCxCLkhWKSh0LnBhcnRzKTtyZXR1cm4hIWkmJihuPXQuaWQscj1pLmlkLCEoKG89dmFbU3RyaW5nKG4pXSk9PT1yfHwtMT09PW8pfHxmdW5jdGlvbih0LGUpe3JldHVybiJyZW5vdGlmeWluZyI9PT10Lm5vdGlmaWNhdGlvblN0YXR1cyYmZX0odCxlKSl9LHdhPWZ1bmN0aW9uKHQsZSxuLHIpe3ZvaWQgMD09PXImJihyPSExKTt2YXIgbz0hMTt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPXQucGFydHM/KDAsQi5IVikodC5wYXJ0cyk6bnVsbDtiYSh0LGUpJiYobz0hMCksbiYmbWEodC5pZCxuLmlkKX0pKSxvJiYhciYmY2EucGxheU5vdGlmaWNhdGlvbihuKX0sX2E9ZnVuY3Rpb24odCxlKXtzd2l0Y2godCl7Y2FzZSBGLlUyZDpjYXNlIEYuSXRsOnJldHVybiJmYWlsZWQubXAzIjtjYXNlIEYuUHpTOmNhc2UgRi5YV286cmV0dXJuInN1Ym1pdC5tcDMiO2Nhc2UgRi5hbE06cmV0dXJuIm9wZXJhdG9yLm1wMyI7ZGVmYXVsdDpyZXR1cm4gZSYmZS5hdXRob3ImJmUuYXV0aG9yLmlzQm90PyJvcGVyYXRvci5tcDMiOiJub3RpZmljYXRpb24ubXAzIn19LFNhPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHI9ZShuKSxvPW4saT10LmdldFN0YXRlKCk7aWYoIWkuYXBwLmlzQXVkaW9FbmFibGVkKXJldHVybiByO2lmKCgwLGxhLkFkKShpKS5tdXRlU291bmQpcmV0dXJuIHI7c3dpdGNoKG8udHlwZSl7Y2FzZSBGLlB6UzpjYXNlIEYuWFdvOmNhc2UgRi5VMmQ6Y2FzZSBGLkl0bDpjYS5wbGF5RmlsZShfYShvLnR5cGUpKTticmVhaztjYXNlIEYudnpQOnZhciBhPW8uY29udmVyc2F0aW9uSWQsdT1pLmNvbnZlcnNhdGlvbnMuYnlJZFtTdHJpbmcoYSldO3lhLmRlbGV0ZShhKSx1JiZ3YShbdV0scGEoaSksX2Eoby50eXBlKSk7YnJlYWs7Y2FzZSBGLmZFQzp2YXIgcz1vLGM9cy5jb252ZXJzYXRpb24sbD1zLnNraXBOb3RpZmljYXRpb247aWYoYy5yZWFkKXJldHVybiByO3ZhciBmPSgwLEIuSFYpKGMucGFydHN8fFtdKTtpZighMD09PWwmJmYpcmV0dXJuIG1hKGMuaWQsZi5pZCkscjtpZihoYShjLmlkLGZ8fHZvaWQgMCxpKSlyZXR1cm4gcjt3YShbY10scGEoaSksX2Eoby50eXBlLGZ8fHZvaWQgMCkpO2JyZWFrO2Nhc2UgRi5UJDU6dmFyIGQ9byxwPWQuY29udmVyc2F0aW9uSWQsaD1kLmlzQm90LHY9ZC5oYXNBSTtoJiZ2JiZnYS5hZGQocCk7YnJlYWs7Y2FzZSBGLm1HWDp2YXIgeT0oMCxILkEpKGkpO3dhKHkscGEoaSksX2Eoby50eXBlKSwoMCxuci5OcCkoaSkpO2JyZWFrO2Nhc2UgRi5BZEw6dmFyIGc9byxtPWcuY29udmVyc2F0aW9uSWQsYj1nLnBhcnQsdz1pLmNvbnZlcnNhdGlvbnMuYnlJZFtTdHJpbmcobSldO2lmKCF3fHwhYi5hdXRob3J8fGIuYXV0aG9yLmlzU2VsZilyZXR1cm47aWYoaGEobSxiLGkpKXJldHVybjt3YShbd10scGEoaSksX2Eoby50eXBlLGIpKTticmVhaztjYXNlIEYuYWxNOnZhciBfPW8sUz1fLmNvbnZlcnNhdGlvbklkLHg9Xy5wYXJ0OzA9PT14LnRva2VuU2VxdWVuY2VJbmRleCYmeC5hdXRob3ImJnguYXV0aG9yLmlzQm90JiZnYS5oYXMoUykmJih5YS5hZGQoUyksZ2EuZGVsZXRlKFMpLCgwLG5yLk5wKShpKXx8Y2EucGxheU5vdGlmaWNhdGlvbihfYShvLnR5cGUseCkpKTticmVhaztjYXNlIEYuUndxOnZhciBFPW8udXNlci51bnJlYWREaXNtaXNzZWRDb252ZXJzYXRpb25JZHM7RSYmRS5mb3JFYWNoKChmdW5jdGlvbih0KXttYSh0LC0xKX0pKX1yZXR1cm4gcn19fTtmdW5jdGlvbiB4YSh0KXtyZXR1cm4geGE9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHhhKHQpfWZ1bmN0aW9uIEVhKCl7RWE9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixzPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Moe30sIiIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGwodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBnP2U6ZyxhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IEwocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpPKHQsbix1KX0pLGF9ZnVuY3Rpb24gZih0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1sO3ZhciBkPSJzdXNwZW5kZWRTdGFydCIscD0ic3VzcGVuZGVkWWllbGQiLGg9ImV4ZWN1dGluZyIsdj0iY29tcGxldGVkIix5PXt9O2Z1bmN0aW9uIGcoKXt9ZnVuY3Rpb24gbSgpe31mdW5jdGlvbiBiKCl7fXZhciB3PXt9O2ModyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciBfPU9iamVjdC5nZXRQcm90b3R5cGVPZixTPV8mJl8oXyhUKFtdKSkpO1MmJlMhPT1uJiZyLmNhbGwoUyxhKSYmKHc9Uyk7dmFyIHg9Yi5wcm90b3R5cGU9Zy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh3KTtmdW5jdGlvbiBFKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Yyh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBDKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgcz1mKHRbb10sdCxpKTtpZigidGhyb3ciIT09cy50eXBlKXt2YXIgYz1zLmFyZyxsPWMudmFsdWU7cmV0dXJuIGwmJiJvYmplY3QiPT14YShsKSYmci5jYWxsKGwsIl9fYXdhaXQiKT9lLnJlc29sdmUobC5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LGEsdSl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsYSx1KX0pKTplLnJlc29sdmUobCkudGhlbigoZnVuY3Rpb24odCl7Yy52YWx1ZT10LGEoYyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LGEsdSl9KSl9dShzLmFyZyl9dmFyIGk7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gTyhlLG4scil7dmFyIG89ZDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09aCl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT12KXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1BKHUscik7aWYocyl7aWYocz09PXkpY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09ZCl0aHJvdyBvPXYsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPWg7dmFyIGM9ZihlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP3Y6cCxjLmFyZz09PXkpY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz12LHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gQShlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsQShlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSx5O3ZhciBpPWYobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCx5O3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCx5KTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLHkpfWZ1bmN0aW9uIEkodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gayh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gTCh0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEksdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gVChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbYV07aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKHhhKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIG0ucHJvdG90eXBlPWIsbyh4LCJjb25zdHJ1Y3RvciIse3ZhbHVlOmIsY29uZmlndXJhYmxlOiEwfSksbyhiLCJjb25zdHJ1Y3RvciIse3ZhbHVlOm0sY29uZmlndXJhYmxlOiEwfSksbS5kaXNwbGF5TmFtZT1jKGIscywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PW18fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGIpOih0Ll9fcHJvdG9fXz1iLGModCxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHgpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LEUoQy5wcm90b3R5cGUpLGMoQy5wcm90b3R5cGUsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QyxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEMobCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxFKHgpLGMoeCxzLCJHZW5lcmF0b3IiKSxjKHgsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxjKHgsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9VCxMLnByb3RvdHlwZT17Y29uc3RydWN0b3I6TCxyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goayksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLHkpOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSkseX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxrKG4pLHl9fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7ayhuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6VChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLHl9fSxlfWZ1bmN0aW9uIENhKHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gT2EodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7Q2EoaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpe0NhKGkscixvLGEsdSwidGhyb3ciLHQpfWEodm9pZCAwKX0pKX19dmFyIEFhPWZ1bmN0aW9uKHQpe3JldHVybihudWxsPT10P3ZvaWQgMDp0LnR5cGUpPT09Ri5hbE19LElhPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixvO3JldHVybihudWxsIT0ocj1udWxsPT0obz10LmNvbnZlcnNhdGlvbnMuYnlJZFtlXSk/dm9pZCAwOm8ucGFydHMpP3I6W10pLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNsaWVudElkPT09biYmdm9pZCAwIT09dC50b2tlblNlcXVlbmNlSW5kZXh9KSl9LGthPW5ldyBNYXAsTGE9big3NTAxKSxUYT1bXSxqYT1bXTt2YXIgUGE9ZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRTdGF0ZTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciBuPXQoKSxyPW4udXNlcixvPW4uYXJ0aWNsZSxpPSgwLG1yLlZ5KShuKSxhPSgwLGguRHMpKG4pPyJ0cnVlIjoiZmFsc2UiO3N3aXRjaChlLnR5cGUpe2Nhc2UgRi5yRVg6cmV0dXJuWygwLFYuZm0pKHIsInJlY2VpdmVkIiwibWVzc2FnZSIsIm1lc3NlbmdlciIsImZyb21fbGF1bmNoZXJfZGlzY292ZXJ5X21vZGUiKV07Y2FzZSBGLkhNdTp2YXIgdT17Y29udmVyc2F0aW9uX2lkOmUuY29udmVyc2F0aW9uSWQsY29tbWVudF9pZDplLnBhcnQuaWQsaXNfYXR0YWNobWVudDooMCx5LnM1KShlLnBhcnQuYm9keSksaXNfYW5ub3RhdGVkOmUuaXNBbm5vdGF0ZWRJbWFnZXx8ITEsd2l0aGluX29mZmljZV9ob3VyczooMCx5Lmg2KShlLm9mZmljZUhvdXJzUmVzcG9uc2UpLHRlYW1tYXRlX3N0YXR1czooMCx5Llh6KShlLmxhc3RQYXJ0aWNpcGF0aW5nQWRtaW4pLHRpbWVfc2luY2VfbGFzdF9hY3RpdmVfaW5fbWludXRlczooMCx5LlVXKShlLmxhc3RQYXJ0aWNpcGF0aW5nQWRtaW4pLGZyb21fbWVzc2VuZ2VyX3N1Z2dlc3RlZF9jb250ZW50OmUuZnJvbU1lc3NlbmdlclN1Z2dlc3RlZENvbnRlbnQsZmluX29ubHk6YX07cmV0dXJuWygwLFYuZm0pKHIsInNlbnQiLCJyZXBseSIsIm1lc3NlbmdlciIsImluX2NvbnZlcnNhdGlvbiIsdSldO2Nhc2UgRi5Eekw6dmFyIHM9LTEhPT1bImN1c3RvbV9ib3QiLCJyZXNvbHV0aW9uX2JvdF9hdXRvX3N1Z2dlc3QiXS5pbmRleE9mKGUuY29udmVyc2F0aW9uVHJpZ2dlclR5cGUpLGM9InJlc29sdXRpb25fYm90X2F1dG9fc3VnZ2VzdCI9PT1lLmNvbnZlcnNhdGlvblRyaWdnZXJUeXBlLGw9e2NvbnZlcnNhdGlvbl9pZDplLmNvbnZlcnNhdGlvbi5pZCxpc19hdHRhY2htZW50OigwLHkuczUpKGUuY29udmVyc2F0aW9uLnBhcnRzWzBdLmJvZHkpLGlzX2Fubm90YXRlZDplLmlzQW5ub3RhdGVkSW1hZ2V8fCExLHdpdGhpbl9vZmZpY2VfaG91cnM6KDAseS5oNikoZS5vZmZpY2VIb3Vyc1Jlc3BvbnNlKSxmcm9tX3N1Z2dlc3Rpb246cyxmcm9tX21lc3Nlbmdlcl9zdWdnZXN0ZWRfY29udGVudDpjLHRyaWdnZXJfdHlwZTplLmNvbnZlcnNhdGlvblRyaWdnZXJUeXBlLGZpbl9vbmx5OmEsdmlhOmUudmlhfTtyZXR1cm5bKDAsVi5mbSkociwic2VudCIsIm1lc3NhZ2UiLCJtZXNzZW5nZXIiLCJpbl9uZXdfY29udmVyc2F0aW9uIixsKV07Y2FzZSBGLlBXQzpyZXR1cm5bKDAsVi5mbSkociwic2VudCIsInJlcGx5IiwibWVzc2VuZ2VyIiwiaW5fY29udmVyc2F0aW9uIix7dHlwZToiYXV0b21hdGVkX2xlYWRfcXVhbGlmaWNhdGlvbiIsY29udmVyc2F0aW9uX2lkOmUuY29udmVyc2F0aW9uSWQscGFydF9pZDplLnBhcnRJZCxhdHRyaWJ1dGVfaWRlbnRpZmllcjplLmlkZW50aWZpZXIscmVwbHk6ZS52YWx1ZSxhdHRyaWJ1dGVfdHlwZTplLmlkZW50aWZpZXJUeXBlLGZvcm1fdHlwZTplLmZvcm1UeXBlLGF0dHJpYnV0ZV9pc19jdXN0b21fZGF0YTplLmlzQ3VzdG9tRGF0YX0pXTtjYXNlIEYuVDRrOnJldHVyblsoMCxWLmZtKShyLCJzZW50IiwicmVhY3Rpb24iLGUuaXNGcm9tQ29udmVyc2F0aW9uPyJtZXNzZW5nZXIiOiJpbl9hcHAiLGUuaXNGcm9tQ29udmVyc2F0aW9uPyJpbl9jb252ZXJzYXRpb24iOiJmcm9tX2Z1bGwiLHtjb252ZXJzYXRpb25faWQ6ZS5jb252ZXJzYXRpb25JZH0pXTtjYXNlIEYuU2NROmlmKGUuZnJvbUhvbWVTY3JlZW5TdWdnZXN0aW9ucylyZXR1cm5bXTt2YXIgZj1PYmplY3QuYXNzaWduKHtvd25lcjoiZWR1Y2F0ZSIsYXJ0aWNsZV9pZDplLmFydGljbGVJZCxjb252ZXJzYXRpb25faWQ6ZS5jb252ZXJzYXRpb25JZH0sZS5tZXRyaWNNZXRhZGF0YXx8e30sIWUuZnJvbUJyb3dzZU1vZGUmJnthcnRpY2xlX2NoYW5uZWw6Im1lc3NlbmdlciIsYXJ0aWNsZV9zb3VyY2U6ImNvbnZlcnNhdGlvbiJ9KTtyZXR1cm5bZS5mcm9tQnJvd3NlTW9kZSYmKDAsVi5mbSkociwiY2xpY2tlZCIsTGEucmssTGEucVksIm1lc3NlbmdlciIsZiksISFlLm1ldHJpY01ldGFkYXRhJiYhZS5mcm9tQnJvd3NlTW9kZSYmKDAsVi5xbCkociwidmlld2VkIiwiYXJ0aWNsZSIsImluX2FwcCIsImZyb21fY29udmVyc2F0aW9uIixmKV0uZmlsdGVyKEJvb2xlYW4pO2Nhc2UgRi5fYUo6dmFyIGQ9by5hY3RpdmVBcnRpY2xlLHA9ZCYmZC5yZWFjdGlvbnNSZXBseSYmZC5yZWFjdGlvbnNSZXBseS5yZWFjdGlvblNldFtlLnJlYWN0aW9uSW5kZXhdJiZkLnJlYWN0aW9uc1JlcGx5LnJlYWN0aW9uU2V0W2UucmVhY3Rpb25JbmRleF0uZW1vamk7cmV0dXJuWygwLFYucWwpKHIsInNlbnQiLCJyZWFjdGlvbiIsImluX2FwcCIsIm9uX2FydGljbGUiLHtvd25lcjoiZWR1Y2F0ZSIscmVhY3Rpb246cCxhcnRpY2xlX2lkOmUuYXJ0aWNsZUlkLGNvbnZlcnNhdGlvbl9pZDppfSldO2RlZmF1bHQ6cmV0dXJuW119fShlLG4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybigwLFYubm4pKHQpfSkpLCJERVNUUk9ZX1NFU1NJT04iPT09bi50eXBlJiYoVGEuc3BsaWNlKDApLGphLnNwbGljZSgwKSksdChuKX19fSxOYT1uKDcwNDQxKTtmdW5jdGlvbiBNYSh0KXtyZXR1cm4gTWE9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LE1hKHQpfWZ1bmN0aW9uIFJhKCl7UmE9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixzPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Moe30sIiIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGwodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBnP2U6ZyxhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IEwocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpPKHQsbix1KX0pLGF9ZnVuY3Rpb24gZih0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1sO3ZhciBkPSJzdXNwZW5kZWRTdGFydCIscD0ic3VzcGVuZGVkWWllbGQiLGg9ImV4ZWN1dGluZyIsdj0iY29tcGxldGVkIix5PXt9O2Z1bmN0aW9uIGcoKXt9ZnVuY3Rpb24gbSgpe31mdW5jdGlvbiBiKCl7fXZhciB3PXt9O2ModyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciBfPU9iamVjdC5nZXRQcm90b3R5cGVPZixTPV8mJl8oXyhUKFtdKSkpO1MmJlMhPT1uJiZyLmNhbGwoUyxhKSYmKHc9Uyk7dmFyIHg9Yi5wcm90b3R5cGU9Zy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh3KTtmdW5jdGlvbiBFKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Yyh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBDKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgcz1mKHRbb10sdCxpKTtpZigidGhyb3ciIT09cy50eXBlKXt2YXIgYz1zLmFyZyxsPWMudmFsdWU7cmV0dXJuIGwmJiJvYmplY3QiPT1NYShsKSYmci5jYWxsKGwsIl9fYXdhaXQiKT9lLnJlc29sdmUobC5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LGEsdSl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsYSx1KX0pKTplLnJlc29sdmUobCkudGhlbigoZnVuY3Rpb24odCl7Yy52YWx1ZT10LGEoYyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LGEsdSl9KSl9dShzLmFyZyl9dmFyIGk7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gTyhlLG4scil7dmFyIG89ZDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09aCl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT12KXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1BKHUscik7aWYocyl7aWYocz09PXkpY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09ZCl0aHJvdyBvPXYsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPWg7dmFyIGM9ZihlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP3Y6cCxjLmFyZz09PXkpY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz12LHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gQShlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsQShlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSx5O3ZhciBpPWYobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCx5O3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCx5KTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLHkpfWZ1bmN0aW9uIEkodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gayh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gTCh0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEksdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gVChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbYV07aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKE1hKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIG0ucHJvdG90eXBlPWIsbyh4LCJjb25zdHJ1Y3RvciIse3ZhbHVlOmIsY29uZmlndXJhYmxlOiEwfSksbyhiLCJjb25zdHJ1Y3RvciIse3ZhbHVlOm0sY29uZmlndXJhYmxlOiEwfSksbS5kaXNwbGF5TmFtZT1jKGIscywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PW18fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGIpOih0Ll9fcHJvdG9fXz1iLGModCxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHgpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LEUoQy5wcm90b3R5cGUpLGMoQy5wcm90b3R5cGUsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QyxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEMobCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxFKHgpLGMoeCxzLCJHZW5lcmF0b3IiKSxjKHgsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxjKHgsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9VCxMLnByb3RvdHlwZT17Y29uc3RydWN0b3I6TCxyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goayksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLHkpOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSkseX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxrKG4pLHl9fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7ayhuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6VChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLHl9fSxlfWZ1bmN0aW9uIFVhKHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gemEodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LEhhKHIua2V5KSxyKX19ZnVuY3Rpb24gSGEodCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0IiE9TWEodCl8fCF0KXJldHVybiB0O3ZhciBuPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT1NYShyKSlyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWU/U3RyaW5nOk51bWJlcikodCl9KHQsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT1NYShlKT9lOmUrIiJ9dmFyIEZhPUEoKSgiaW50ZXJjb20uY2xpZW50LW1hdGNoaW5nLmNsaWVudC1tYXRjaC1vYmplY3QuYmFzZSIpLERhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLl9ydWxlc2V0PXZvaWQgMCx0aGlzLl9wcmVkaWNhdGVDaGFpbj12b2lkIDAsdGhpcy5fcnVsZXNldD10LHRoaXMuX3ByZWRpY2F0ZUNoYWluPW5ldyBOYS5BKHQsKGZ1bmN0aW9uKCl7fSkpfXZhciBlLG4scixvPXQucHJvdG90eXBlO3JldHVybiBvLmdldFJ1bGVzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcnVsZXNldH0sby5nZXRSdWxlc2V0SWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcnVsZXNldC5ydWxlc2V0X2lkfSxvLmdldE9iamVjdFR5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcnVsZXNldC5ydWxlc2V0X2xpbmtfb2JqZWN0X3R5cGV9LG8uZ2V0U2VyaWFsaXplZE9iamVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ydWxlc2V0LnNlcmlhbGl6ZWRfb2JqZWN0fSxvLmlzTWF0Y2hhYmxlSW5Mb2NhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4hdGhpcy5fcnVsZXNldC5tYXRjaGluZ19sb2NhdGlvbnN8fC0xIT09dGhpcy5fcnVsZXNldC5tYXRjaGluZ19sb2NhdGlvbnMuaW5kZXhPZih0KX0sby5ldmFsdWF0ZVByZWRpY2F0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4hKCF0aGlzLm1hdGNoT25Nb2JpbGVCcm93c2VyKCkmJigwLGYucnIpKCkpJiZ0aGlzLl9wcmVkaWNhdGVDaGFpbi5ldmFsdWF0ZSgpfSxvLmNhblJlbWF0Y2g9ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNpZW50X21hdGNoIj09PXRoaXMuZ2V0UnVsZXNldCgpLnJ1bGVzZXRfbWF0Y2hfYmVoYXZpb3J9LG8ubWF0Y2hPbk1vYmlsZUJyb3dzZXI9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sby5yZWZyZXNoQWN0aXZlTWF0Y2g9ZnVuY3Rpb24odCl7dGhpcy5vblJlZnJlc2hBY3RpdmVNYXRjaCh0aGlzLl9ydWxlc2V0LnNlcmlhbGl6ZWRfb2JqZWN0LHQpfSxvLm1hdGNoPWZ1bmN0aW9uKCl7dmFyIHQsZT0odD1SYSgpLm1hcmsoKGZ1bmN0aW9uIHQoZSl7dmFyIG4scixvLGksYSx1LHM9dGhpcztyZXR1cm4gUmEoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZihGYSgiLm1hdGNoIGNhbGxlZCBbIit0aGlzLmdldE9iamVjdFR5cGUoKSsiXSIsdGhpcy5nZXRSdWxlc2V0KCkpLG49ZS5nZXRTdGF0ZSgpLHI9dGhpcy5nZXRSdWxlc2V0KCksbz10aGlzLm9uUHJlTWF0Y2goZSksdC5wcmV2PTQsYT1fLkF5LnJ1bGVzZXRDb25kaXRpb25TYXRpc2ZpZWQobi5zZXNzaW9uLHIucnVsZXNldF9pZCxyLnJ1bGVzZXRfbGlua19pZCxyLnVzZXJfaWQsci5jb21wYW55X2lkLHIucHJlZGljYXRlcyxyLmNoZWNrcG9pbnRfaWQsci5ub3RpZmljYXRpb25fcmVjb3JkX2lkLHIuZXh0cmFfY29udGV4dCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHMuc2VsZWN0TWF0Y2hPYmplY3QodCl9KSksISh1PXRoaXMuZ2V0U2VyaWFsaXplZE9iamVjdCgpKSl7dC5uZXh0PTEzO2JyZWFrfXJldHVybiB0Lm5leHQ9MTAsUHJvbWlzZS5yZXNvbHZlKHUpO2Nhc2UgMTA6aT10LnNlbnQsdC5uZXh0PTE2O2JyZWFrO2Nhc2UgMTM6cmV0dXJuIHQubmV4dD0xNSxhO2Nhc2UgMTU6aT10LnNlbnQ7Y2FzZSAxNjp0Lm5leHQ9MjE7YnJlYWs7Y2FzZSAxODpyZXR1cm4gdC5wcmV2PTE4LHQudDA9dC5jYXRjaCg0KSx0LmFicnVwdCgicmV0dXJuIiwoMCxWLnVvKSgiQ2FsbCB0byAvbWF0Y2ggZmFpbGVkLCB1bmFibGUgdG8gY29tcGxldGUgY2xpZW50IG1hdGNoIHJ1bGVzZXRJZD0iK3RoaXMuZ2V0UnVsZXNldElkKCkpKTtjYXNlIDIxOnRoaXMub25NYXRjaChpLGUsbyk7Y2FzZSAyMjpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsdGhpcyxbWzQsMThdXSl9KSksZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXtVYShpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7VWEoaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksby5zZWxlY3RNYXRjaE9iamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gdH0sby5vblByZU1hdGNoPWZ1bmN0aW9uKHQpe30sby5vbk1hdGNoPWZ1bmN0aW9uKHQsZSxuKXt9LG8ub25SZWZyZXNoQWN0aXZlTWF0Y2g9ZnVuY3Rpb24odCxlKXt9LG8udW5tYXRjaD1mdW5jdGlvbih0KXtGYSgiLnVubWF0Y2ggY2FsbGVkIFsiK3RoaXMuZ2V0T2JqZWN0VHlwZSgpKyJdIix0aGlzLmdldFJ1bGVzZXQoKSksdGhpcy5vblVubWF0Y2godCl9LG8ub25Vbm1hdGNoPWZ1bmN0aW9uKHQpe30sby5zaG91bGRQcm9jZXNzU2VxdWVudGlhbGx5PWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmdldFJ1bGVzZXQoKS5jb250YWluc19sY2FfcHJlZGljYXRlfSxlPXQsbiYmemEoZS5wcm90b3R5cGUsbiksciYmemEoZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfSgpO2Z1bmN0aW9uIEJhKHQpe3JldHVybiBCYT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sQmEodCl9ZnVuY3Rpb24gVmEodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LEdhKHIua2V5KSxyKX19ZnVuY3Rpb24gR2EodCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0IiE9QmEodCl8fCF0KXJldHVybiB0O3ZhciBuPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT1CYShyKSlyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWU/U3RyaW5nOk51bWJlcikodCl9KHQsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT1CYShlKT9lOmUrIiJ9ZnVuY3Rpb24gcWEodCxlKXtyZXR1cm4gcWE9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSxxYSh0LGUpfXZhciBXYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfSFmdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiZxYSh0LGUpfShlLHQpO3ZhciBuLHIsbyxpPWUucHJvdG90eXBlO3JldHVybiBpLnNlbGVjdE1hdGNoT2JqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiB0LmJhbm5lcn0saS5vbk1hdGNoPWZ1bmN0aW9uKHQsZSl7aWYodCl7dmFyIG49Xy5BeS5idWlsZEJhbm5lcih0KSxyPWUuZ2V0U3RhdGUoKS5iYW5uZXJzO3I9ci5jb25jYXQobiksZS5kaXNwYXRjaCgoMCxLci5ISikocikpfX0saS5jYW5SZW1hdGNoPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGkub25Vbm1hdGNoPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10LmdldFN0YXRlKCkuYmFubmVycztuPW4uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5ydWxlc2V0X2lkIT09ZS5nZXRSdWxlc2V0KCkucnVsZXNldF9pZH0pKSx0LmRpc3BhdGNoKCgwLEtyLkhKKShuKSl9LG49ZSxyJiZWYShuLnByb3RvdHlwZSxyKSxvJiZWYShuLG8pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG59KERhKTtmdW5jdGlvbiBLYSh0KXtyZXR1cm4gS2E9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LEthKHQpfWZ1bmN0aW9uIFphKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxKYShyLmtleSkscil9fWZ1bmN0aW9uIEphKHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoIm9iamVjdCIhPUthKHQpfHwhdClyZXR1cm4gdDt2YXIgbj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIHI9bi5jYWxsKHQsZXx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9S2EocikpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1lP1N0cmluZzpOdW1iZXIpKHQpfSh0LCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09S2EoZSk/ZTplKyIifWZ1bmN0aW9uIFlhKHQsZSl7cmV0dXJuIFlhPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sWWEodCxlKX12YXIgUWE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc30hZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmWWEodCxlKX0oZSx0KTt2YXIgbixyLG8saT1lLnByb3RvdHlwZTtyZXR1cm4gaS5zZWxlY3RNYXRjaE9iamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gdC50b3VyfSxpLm1hdGNoT25Nb2JpbGVCcm93c2VyPWZ1bmN0aW9uKCl7cmV0dXJuITF9LGkub25NYXRjaD1mdW5jdGlvbih0LGUpe2UuZGlzcGF0Y2goKDAsYi5UYykoXy5BeS5idWlsZFRvdXIodCkpKX0sbj1lLHImJlphKG4ucHJvdG90eXBlLHIpLG8mJlphKG4sbyksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksbn0oRGEpLFhhPW4oMjU4MzYpLCRhPW4oMjg4MjQpO2Z1bmN0aW9uIHR1KHQpe3JldHVybiB0dT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sdHUodCl9ZnVuY3Rpb24gZXUoKXtldT1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHM9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGModCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Yyh7fSwiIil9Y2F0Y2godCl7Yz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gbCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGc/ZTpnLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgTChyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOk8odCxuLHUpfSksYX1mdW5jdGlvbiBmKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWw7dmFyIGQ9InN1c3BlbmRlZFN0YXJ0IixwPSJzdXNwZW5kZWRZaWVsZCIsaD0iZXhlY3V0aW5nIix2PSJjb21wbGV0ZWQiLHk9e307ZnVuY3Rpb24gZygpe31mdW5jdGlvbiBtKCl7fWZ1bmN0aW9uIGIoKXt9dmFyIHc9e307Yyh3LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIF89T2JqZWN0LmdldFByb3RvdHlwZU9mLFM9XyYmXyhfKFQoW10pKSk7UyYmUyE9PW4mJnIuY2FsbChTLGEpJiYodz1TKTt2YXIgeD1iLnByb3RvdHlwZT1nLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHcpO2Z1bmN0aW9uIEUodCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtjKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEModCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBzPWYodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLGw9Yy52YWx1ZTtyZXR1cm4gbCYmIm9iamVjdCI9PXR1KGwpJiZyLmNhbGwobCwiX19hd2FpdCIpP2UucmVzb2x2ZShsLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShsKS50aGVuKChmdW5jdGlvbih0KXtjLnZhbHVlPXQsYShjKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KHMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBPKGUsbixyKXt2YXIgbz1kO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT1oKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PXYpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPUEodSxyKTtpZihzKXtpZihzPT09eSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89dixyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289aDt2YXIgYz1mKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/djpwLGMuYXJnPT09eSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPXYsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBBKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxBKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLHk7dmFyIGk9ZihvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLHk7dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLHkpOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwseSl9ZnVuY3Rpb24gSSh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBrKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBMKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goSSx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBUKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IodHUoZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gbS5wcm90b3R5cGU9YixvKHgsImNvbnN0cnVjdG9yIix7dmFsdWU6Yixjb25maWd1cmFibGU6ITB9KSxvKGIsImNvbnN0cnVjdG9yIix7dmFsdWU6bSxjb25maWd1cmFibGU6ITB9KSxtLmRpc3BsYXlOYW1lPWMoYixzLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09bXx8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsYik6KHQuX19wcm90b19fPWIsYyh0LHMsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoeCksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sRShDLnByb3RvdHlwZSksYyhDLnByb3RvdHlwZSx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1DLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQyhsKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LEUoeCksYyh4LHMsIkdlbmVyYXRvciIpLGMoeCxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGMoeCwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1ULEwucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpMLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChrKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MseSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSx5fSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLGsobikseX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztrKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpUKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCkseX19LGV9ZnVuY3Rpb24gbnUodCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBydSh0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsb3Uoci5rZXkpLHIpfX1mdW5jdGlvbiBvdSh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKCJvYmplY3QiIT10dSh0KXx8IXQpcmV0dXJuIHQ7dmFyIG49dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbCh0LGV8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR1KHIpKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09ZT9TdHJpbmc6TnVtYmVyKSh0KX0odCwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR1KGUpP2U6ZSsiIn1mdW5jdGlvbiBpdSh0LGUpe3JldHVybiBpdT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LGl1KHQsZSl9dmFyIGF1PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9IWZ1bmN0aW9uKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUmJml1KHQsZSl9KGUsdCk7dmFyIG4scixvLGk9ZS5wcm90b3R5cGU7cmV0dXJuIGkuc2VsZWN0TWF0Y2hPYmplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29tcG9zZXJTdWdnZXN0aW9uc30saS5vbk1hdGNoPWZ1bmN0aW9uKCl7dmFyIHQsZT0odD1ldSgpLm1hcmsoKGZ1bmN0aW9uIHQoZSxuKXt2YXIgcixvLGksYSx1LHMsYztyZXR1cm4gZXUoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZigocj0oMCwkYS4kKShuLmdldFN0YXRlKCkpKSYmIShyLnByaW9yaXR5PmUucHJpb3JpdHkpKXt0Lm5leHQ9MTI7YnJlYWt9aWYoaT1uLmdldFN0YXRlKCksYT1lLndlbGNvbWVQYXJ0cyx1PWUudXhTdHlsZSxudWxsPT0obz1pLm5ld0NvbnZlcnNhdGlvbil8fG51bGw9PShvPW8uY29tcG9zZXJTdGF0ZSl8fCFvLmRpc2FibGVkfHxudWxsIT1lJiZlLmNvbXBvc2VyRGlzYWJsZWR8fG4uZGlzcGF0Y2goKDAscm8uTiQpKHt2aXNpYmxlOiEwfSkpLG51bGwhPXUmJnUud2VsY29tZVBhcnRzV2l0aFN1Z2dlc3Rpb25zfHxudWxsPT1hfHwhYS5sZW5ndGg/bi5kaXNwYXRjaCgoMCxYYS5BaykoZS5zdWdnZXN0aW9uUGFydHMsITApKTpuLmRpc3BhdGNoKCgwLHJvLnlRKShhLCEwKSksbnVsbD09YXx8IWEubGVuZ3RoKXt0Lm5leHQ9MTI7YnJlYWt9aWYocz1hLmZsYXRNYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmJvZHl8fFtdfSkpLCEoKGM9cy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0JiYibWVzc2VuZ2VyQ2FyZCI9PT10LnR5cGV9KSkpLmxlbmd0aD4wKSl7dC5uZXh0PTEyO2JyZWFrfXJldHVybiB0Lm5leHQ9MTIsUHJvbWlzZS5hbGwoYy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBuLmRpc3BhdGNoKCgwLE1vLl9EKShfLkF5LHQsITEpKX0pKSk7Y2FzZSAxMjpuLmRpc3BhdGNoKCgwLGcuX0wpKGUpKTtjYXNlIDEzOmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCl9KSksZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXtudShpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7bnUoaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfSk7cmV0dXJuIGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxpLm9uVW5tYXRjaD1mdW5jdGlvbih0KXt0LmRpc3BhdGNoKCgwLGcuTjcpKHRoaXMuZ2V0UnVsZXNldElkKCkpKX0saS5zaG91bGRQcm9jZXNzU2VxdWVudGlhbGx5PWZ1bmN0aW9uKCl7cmV0dXJuITF9LG49ZSxyJiZydShuLnByb3RvdHlwZSxyKSxvJiZydShuLG8pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG59KERhKSx1dT1uKDU0MTAxKTtmdW5jdGlvbiBzdSh0KXtyZXR1cm4gc3U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHN1KHQpfWZ1bmN0aW9uIGN1KHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxsdShyLmtleSkscil9fWZ1bmN0aW9uIGx1KHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoIm9iamVjdCIhPXN1KHQpfHwhdClyZXR1cm4gdDt2YXIgbj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIHI9bi5jYWxsKHQsZXx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9c3UocikpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1lP1N0cmluZzpOdW1iZXIpKHQpfSh0LCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09c3UoZSk/ZTplKyIifWZ1bmN0aW9uIGZ1KHQsZSl7cmV0dXJuIGZ1PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sZnUodCxlKX12YXIgZHU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc30hZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmZnUodCxlKX0oZSx0KTt2YXIgbixyLG8saT1lLnByb3RvdHlwZTtyZXR1cm4gaS5zZWxlY3RNYXRjaE9iamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gdC5hbnN3ZXJib3RQcmVkaWN0aXZlQ29udGV4dHN9LGkub25NYXRjaD1mdW5jdGlvbih0LGUpe2UuZGlzcGF0Y2goKDAsdXUueSkodCkpfSxpLm9uVW5tYXRjaD1mdW5jdGlvbih0KXt0LmRpc3BhdGNoKCgwLHV1LnkpKG51bGwpKX0saS5zaG91bGRQcm9jZXNzU2VxdWVudGlhbGx5PWZ1bmN0aW9uKCl7cmV0dXJuITF9LG49ZSxyJiZjdShuLnByb3RvdHlwZSxyKSxvJiZjdShuLG8pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG59KERhKSxwdT1uKDIzNzEyKTtmdW5jdGlvbiBodSh0KXtyZXR1cm4gaHU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LGh1KHQpfWZ1bmN0aW9uIHZ1KHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCx5dShyLmtleSkscil9fWZ1bmN0aW9uIHl1KHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoIm9iamVjdCIhPWh1KHQpfHwhdClyZXR1cm4gdDt2YXIgbj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIHI9bi5jYWxsKHQsZXx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9aHUocikpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1lP1N0cmluZzpOdW1iZXIpKHQpfSh0LCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09aHUoZSk/ZTplKyIifWZ1bmN0aW9uIGd1KHQsZSl7cmV0dXJuIGd1PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sZ3UodCxlKX12YXIgbXU9QSgpKCJpbnRlcmNvbS5jbGllbnQtbWF0Y2gtb2JqZWN0Lm1lc3Nlbmdlci10cmlnZ2VyIiksYnU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe2Zvcih2YXIgZSxuPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkobiksbz0wO288bjtvKyspcltvXT1hcmd1bWVudHNbb107cmV0dXJuKGU9dC5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChyKSl8fHRoaXMpLl9ub2RlPXZvaWQgMCxlfSFmdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiZndSh0LGUpfShlLHQpO3ZhciBuLHIsbyxpPWUucHJvdG90eXBlO3JldHVybiBpLnNlbGVjdE1hdGNoT2JqZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LGkub25NYXRjaD1mdW5jdGlvbih0LGUpe3ZhciBuO3RoaXMuX25vZGU9bnVsbCE9KG49dGhpcy5fZmluZERPTU5vZGUodCkpP246dm9pZCAwLGUuZGlzcGF0Y2goKDAscHUuRSQpKHQsXy5BeSkpfSxpLm9uVW5tYXRjaD1mdW5jdGlvbih0KXt0LmRpc3BhdGNoKCgwLHB1Lms2KSh0aGlzLm1lc3NlbmdlclRyaWdnZXJJZCgpKSl9LGkub25SZWZyZXNoQWN0aXZlTWF0Y2g9ZnVuY3Rpb24odCxlKXt0aGlzLl9zaG91bGRSZWZyZXNoQWN0aXZlTWF0Y2goKSYmKG11KCJUcmlnZ2VySWQ9Iit0LmlkKyIgKCIrdC5zZWxlY3RvcisiKSBpcyBtaXNzaW5nIGZyb20gdGhlIHBhZ2UsIHJlLWF0dGFjaGluZyBsaXN0ZW5lciIpLHRoaXMub25Vbm1hdGNoKGUpLHRoaXMub25NYXRjaCh0LGUpKX0saS5zaG91bGRQcm9jZXNzU2VxdWVudGlhbGx5PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGkubWVzc2VuZ2VyVHJpZ2dlcklkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0U2VyaWFsaXplZE9iamVjdCgpLmlkfSxpLl9zaG91bGRSZWZyZXNoQWN0aXZlTWF0Y2g9ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLl9ub2RlJiYhdGhpcy5fZG9jdW1lbnRDb250YWlucyh0aGlzLl9ub2RlKSl9LGkuX2ZpbmRET01Ob2RlPWZ1bmN0aW9uKHQpe3JldHVybiB3aW5kb3cucGFyZW50LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodC5zZWxlY3Rvcil9LGkuX2RvY3VtZW50Q29udGFpbnM9ZnVuY3Rpb24odCl7cmV0dXJuIHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQuY29udGFpbnM/d2luZG93LnBhcmVudC5kb2N1bWVudC5jb250YWlucyh0KTp3aW5kb3cucGFyZW50LmRvY3VtZW50LmJvZHkuY29udGFpbnModCl9LG49ZSxyJiZ2dShuLnByb3RvdHlwZSxyKSxvJiZ2dShuLG8pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG59KERhKTtmdW5jdGlvbiB3dSh0KXtyZXR1cm4gd3U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHd1KHQpfWZ1bmN0aW9uIF91KHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxTdShyLmtleSkscil9fWZ1bmN0aW9uIFN1KHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoIm9iamVjdCIhPXd1KHQpfHwhdClyZXR1cm4gdDt2YXIgbj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIHI9bi5jYWxsKHQsZXx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9d3UocikpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1lP1N0cmluZzpOdW1iZXIpKHQpfSh0LCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09d3UoZSk/ZTplKyIifWZ1bmN0aW9uIHh1KHQsZSl7cmV0dXJuIHh1PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0seHUodCxlKX12YXIgRXU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc30hZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmeHUodCxlKX0oZSx0KTt2YXIgbixyLG8saT1lLnByb3RvdHlwZTtyZXR1cm4gaS5zZWxlY3RNYXRjaE9iamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gdC5jaGF0fSxpLm9uTWF0Y2g9ZnVuY3Rpb24odCxlKXt0JiZlLmRpc3BhdGNoKCgwLHJvLkZvKShfLkF5LCgwLF8ueXMpKHQpKSl9LG49ZSxyJiZfdShuLnByb3RvdHlwZSxyKSxvJiZfdShuLG8pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG59KERhKTtmdW5jdGlvbiBDdSh0KXtyZXR1cm4gQ3U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LEN1KHQpfWZ1bmN0aW9uIE91KHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxBdShyLmtleSkscil9fWZ1bmN0aW9uIEF1KHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoIm9iamVjdCIhPUN1KHQpfHwhdClyZXR1cm4gdDt2YXIgbj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIHI9bi5jYWxsKHQsZXx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9Q3UocikpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1lP1N0cmluZzpOdW1iZXIpKHQpfSh0LCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09Q3UoZSk/ZTplKyIifWZ1bmN0aW9uIEl1KHQsZSl7cmV0dXJuIEl1PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sSXUodCxlKX12YXIga3U9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc30hZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmSXUodCxlKX0oZSx0KTt2YXIgbixyLG8saT1lLnByb3RvdHlwZTtyZXR1cm4gaS5zZWxlY3RNYXRjaE9iamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gdC5jdXN0b21Cb3R9LGkub25NYXRjaD1mdW5jdGlvbih0LGUpe3QmJmUuZGlzcGF0Y2goKDAscm8uRm8pKF8uQXksKDAsXy55cykodCkpKX0sbj1lLHImJk91KG4ucHJvdG90eXBlLHIpLG8mJk91KG4sbyksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksbn0oRGEpO2Z1bmN0aW9uIEx1KHQpe3JldHVybiBMdT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sTHUodCl9ZnVuY3Rpb24gVHUodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGp1KHIua2V5KSxyKX19ZnVuY3Rpb24ganUodCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0IiE9THUodCl8fCF0KXJldHVybiB0O3ZhciBuPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT1MdShyKSlyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWU/U3RyaW5nOk51bWJlcikodCl9KHQsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT1MdShlKT9lOmUrIiJ9ZnVuY3Rpb24gUHUodCxlKXtyZXR1cm4gUHU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSxQdSh0LGUpfXZhciBOdT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfSFmdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiZQdSh0LGUpfShlLHQpO3ZhciBuLHIsbyxpPWUucHJvdG90eXBlO3JldHVybiBpLnNlbGVjdE1hdGNoT2JqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiB0LnBvc3R9LGkub25NYXRjaD1mdW5jdGlvbih0LGUpe3QmJmUuZGlzcGF0Y2goKDAscm8uRm8pKF8uQXksKDAsXy55cykodCkpKX0sbj1lLHImJlR1KG4ucHJvdG90eXBlLHIpLG8mJlR1KG4sbyksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksbn0oRGEpO2Z1bmN0aW9uIE11KHQpe3JldHVybiBNdT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sTXUodCl9ZnVuY3Rpb24gUnUodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFV1KHIua2V5KSxyKX19ZnVuY3Rpb24gVXUodCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0IiE9TXUodCl8fCF0KXJldHVybiB0O3ZhciBuPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT1NdShyKSlyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWU/U3RyaW5nOk51bWJlcikodCl9KHQsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT1NdShlKT9lOmUrIiJ9ZnVuY3Rpb24genUodCxlKXtyZXR1cm4genU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSx6dSh0LGUpfXZhciBIdT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfSFmdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiZ6dSh0LGUpfShlLHQpO3ZhciBuLHIsbyxpPWUucHJvdG90eXBlO3JldHVybiBpLnNlbGVjdE1hdGNoT2JqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiB0LnN1cnZleX0saS5vbk1hdGNoPWZ1bmN0aW9uKHQsZSl7aWYodCl7dmFyIG49KDAsem8uSGQpKHQpO2UuZGlzcGF0Y2goKDAsWXIud2opKG4pKX19LG49ZSxyJiZSdShuLnByb3RvdHlwZSxyKSxvJiZSdShuLG8pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG59KERhKTtmdW5jdGlvbiBGdSh0KXtyZXR1cm4gRnU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LEZ1KHQpfWZ1bmN0aW9uIER1KHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxCdShyLmtleSkscil9fWZ1bmN0aW9uIEJ1KHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoIm9iamVjdCIhPUZ1KHQpfHwhdClyZXR1cm4gdDt2YXIgbj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIHI9bi5jYWxsKHQsZXx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9RnUocikpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1lP1N0cmluZzpOdW1iZXIpKHQpfSh0LCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09RnUoZSk/ZTplKyIifWZ1bmN0aW9uIFZ1KHQsZSl7cmV0dXJuIFZ1PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sVnUodCxlKX12YXIgR3U9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc30hZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmVnUodCxlKX0oZSx0KTt2YXIgbixyLG8saT1lLnByb3RvdHlwZTtyZXR1cm4gaS5zZWxlY3RNYXRjaE9iamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gdC5zZXJpZXNDb25kaXRpb259LGkub25NYXRjaD1mdW5jdGlvbih0LGUpe3ZhciBuPWUuZ2V0U3RhdGUoKS5zZXNzaW9uO2UuZGlzcGF0Y2goKDAsdG8ub2kpKF8uQXksbix3aW5kb3cucGFyZW50LmxvY2F0aW9uLmhyZWYsbnVsbCxudWxsLHt9LCEwLHZvaWQgMCwiYXBpVXBkYXRlIikpfSxuPWUsciYmRHUobi5wcm90b3R5cGUsciksbyYmRHUobixvKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxufShEYSk7ZnVuY3Rpb24gcXUodCl7cmV0dXJuIHF1PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxxdSh0KX1mdW5jdGlvbiBXdSh0KXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gS3UodCl9KHQpfHxmdW5jdGlvbih0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9dFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT10WyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20odCl9KHQpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gS3UodCxlKTt2YXIgbj17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/S3UodCxlKTp2b2lkIDB9fSh0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBLdSh0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkoZSk7bjxlO24rKylyW25dPXRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gWnUodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LEp1KHIua2V5KSxyKX19ZnVuY3Rpb24gSnUodCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0IiE9cXUodCl8fCF0KXJldHVybiB0O3ZhciBuPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT1xdShyKSlyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWU/U3RyaW5nOk51bWJlcikodCl9KHQsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT1xdShlKT9lOmUrIiJ9ZnVuY3Rpb24gWXUodCxlKXtyZXR1cm4gWXU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSxZdSh0LGUpfXZhciBRdT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfSFmdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiZZdSh0LGUpfShlLHQpO3ZhciBuLHIsbyxpPWUucHJvdG90eXBlO3JldHVybiBpLnNlbGVjdE1hdGNoT2JqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiB0LmNoZWNrbGlzdH0saS5vbk1hdGNoPWZ1bmN0aW9uKHQsZSl7aWYodCl7dmFyIG49ZS5nZXRTdGF0ZSgpLmNoZWNrbGlzdHN8fFtdO2UuZGlzcGF0Y2goKDAsWnIuWF8pKF8uQXkuYnVpbGRDaGVja2xpc3RzKFtdLmNvbmNhdChmdW5jdGlvbih0LGUsbil7aWYoZSYmIUFycmF5LmlzQXJyYXkoZSkmJiJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpe3ZhciByPWUubGVuZ3RoO3JldHVybiBLdShlLHZvaWQgMCE9PW4mJm48cj9uOnIpfXJldHVybiB0KGUsbil9KFd1LG4pLFt0XSkpKSl9fSxuPWUsciYmWnUobi5wcm90b3R5cGUsciksbyYmWnUobixvKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxufShEYSk7ZnVuY3Rpb24gWHUodCl7cmV0dXJuIFh1PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxYdSh0KX1mdW5jdGlvbiAkdSh0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsdHMoci5rZXkpLHIpfX1mdW5jdGlvbiB0cyh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKCJvYmplY3QiIT1YdSh0KXx8IXQpcmV0dXJuIHQ7dmFyIG49dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbCh0LGV8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPVh1KHIpKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09ZT9TdHJpbmc6TnVtYmVyKSh0KX0odCwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PVh1KGUpP2U6ZSsiIn1mdW5jdGlvbiBlcyh0LGUpe3JldHVybiBlcz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LGVzKHQsZSl9dmFyIG5zPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9IWZ1bmN0aW9uKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUmJmVzKHQsZSl9KGUsdCk7dmFyIG4scixvLGk9ZS5wcm90b3R5cGU7cmV0dXJuIGkuc2VsZWN0TWF0Y2hPYmplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHQubnVkZ2V9LGkub25NYXRjaD1mdW5jdGlvbih0LGUpe2lmKHQmJiFlLmdldFN0YXRlKCkubnVkZ2Upe3RyeXt2YXIgbj1YLnMuZ2V0KCJ2aWV3ZWQtbnVkZ2VzIik7aWYoLTEhPT0obj9KU09OLnBhcnNlKG4pOltdKS5pbmRleE9mKHQuaWQpKXJldHVybn1jYXRjaCh0KXt9dmFyIHI9KDAsem8uX0opKHQpO2UuZGlzcGF0Y2goZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6Ri5fTDcsbnVkZ2U6dH19KHIpKX19LGkuc2hvdWxkUHJvY2Vzc1NlcXVlbnRpYWxseT1mdW5jdGlvbigpe3JldHVybiEwfSxuPWUsciYmJHUobi5wcm90b3R5cGUsciksbyYmJHUobixvKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxufShEYSk7dmFyIHJzPW4oMTA2Nyksb3M9QSgpKCJpbnRlcmNvbS5jbGllbnQtbWF0Y2hpbmcubWF0Y2hlcy1maWx0ZXJzLmZpbHRlci1vdXRib3VuZC1ib3RzIik7ZnVuY3Rpb24gaXModCxlKXt2YXIgbj1mdW5jdGlvbih0KXtyZXR1cm4gdC5wb3NpdGl2ZU1hdGNoZXMuZmlsdGVyKGFzKX0odCk7aWYoMCE9PW4ubGVuZ3RoKWlmKHQucG9zaXRpdmVNYXRjaGVzPXQucG9zaXRpdmVNYXRjaGVzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIWFzKHQpfSkpLGUudXNlci5wcmV2ZW50TXVsdGlwbGVJbmJvdW5kQ29udmVyc2F0aW9uJiYoMCxycy5BKShlKSlvcygiU2tpcHBpbmcgb3V0Ym91bmQgYm90IG1hdGNoIGluIG9yZGVyIHRvIHByZXZlbnQgbXVsdGlwbGUgaW5ib3VuZCBjb252ZXJzYXRpb25zIik7ZWxzZXt2YXIgcj1uWzBdO3QucG9zaXRpdmVNYXRjaGVzLnB1c2gocil9fWZ1bmN0aW9uIGFzKHQpe3JldHVybiJjdXN0b21fYm90Ij09PXQuZ2V0T2JqZWN0VHlwZSgpfWZ1bmN0aW9uIHVzKHQpe3JldHVybiB1cz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sdXModCl9ZnVuY3Rpb24gc3ModCxlKXt2YXIgbj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdfHx0WyJAQGl0ZXJhdG9yIl07aWYobilyZXR1cm4obj1uLmNhbGwodCkpLm5leHQuYmluZChuKTtpZihBcnJheS5pc0FycmF5KHQpfHwobj1mdW5jdGlvbih0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gY3ModCxlKTt2YXIgbj17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/Y3ModCxlKTp2b2lkIDB9fSh0KSl8fGUmJnQmJiJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGgpe24mJih0PW4pO3ZhciByPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHI+PXQubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTp0W3IrK119fX10aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9ZnVuY3Rpb24gY3ModCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfWZ1bmN0aW9uIGxzKCl7bHM9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixzPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Moe30sIiIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGwodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBnP2U6ZyxhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IEwocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpPKHQsbix1KX0pLGF9ZnVuY3Rpb24gZih0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1sO3ZhciBkPSJzdXNwZW5kZWRTdGFydCIscD0ic3VzcGVuZGVkWWllbGQiLGg9ImV4ZWN1dGluZyIsdj0iY29tcGxldGVkIix5PXt9O2Z1bmN0aW9uIGcoKXt9ZnVuY3Rpb24gbSgpe31mdW5jdGlvbiBiKCl7fXZhciB3PXt9O2ModyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciBfPU9iamVjdC5nZXRQcm90b3R5cGVPZixTPV8mJl8oXyhUKFtdKSkpO1MmJlMhPT1uJiZyLmNhbGwoUyxhKSYmKHc9Uyk7dmFyIHg9Yi5wcm90b3R5cGU9Zy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh3KTtmdW5jdGlvbiBFKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Yyh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBDKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgcz1mKHRbb10sdCxpKTtpZigidGhyb3ciIT09cy50eXBlKXt2YXIgYz1zLmFyZyxsPWMudmFsdWU7cmV0dXJuIGwmJiJvYmplY3QiPT11cyhsKSYmci5jYWxsKGwsIl9fYXdhaXQiKT9lLnJlc29sdmUobC5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LGEsdSl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsYSx1KX0pKTplLnJlc29sdmUobCkudGhlbigoZnVuY3Rpb24odCl7Yy52YWx1ZT10LGEoYyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LGEsdSl9KSl9dShzLmFyZyl9dmFyIGk7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gTyhlLG4scil7dmFyIG89ZDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09aCl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT12KXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1BKHUscik7aWYocyl7aWYocz09PXkpY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09ZCl0aHJvdyBvPXYsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPWg7dmFyIGM9ZihlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP3Y6cCxjLmFyZz09PXkpY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz12LHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gQShlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsQShlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSx5O3ZhciBpPWYobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCx5O3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCx5KTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLHkpfWZ1bmN0aW9uIEkodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gayh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gTCh0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEksdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gVChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbYV07aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKHVzKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIG0ucHJvdG90eXBlPWIsbyh4LCJjb25zdHJ1Y3RvciIse3ZhbHVlOmIsY29uZmlndXJhYmxlOiEwfSksbyhiLCJjb25zdHJ1Y3RvciIse3ZhbHVlOm0sY29uZmlndXJhYmxlOiEwfSksbS5kaXNwbGF5TmFtZT1jKGIscywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PW18fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGIpOih0Ll9fcHJvdG9fXz1iLGModCxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHgpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LEUoQy5wcm90b3R5cGUpLGMoQy5wcm90b3R5cGUsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QyxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEMobCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxFKHgpLGMoeCxzLCJHZW5lcmF0b3IiKSxjKHgsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxjKHgsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9VCxMLnByb3RvdHlwZT17Y29uc3RydWN0b3I6TCxyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goayksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLHkpOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSkseX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxrKG4pLHl9fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7ayhuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6VChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLHl9fSxlfWZ1bmN0aW9uIGZzKHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gZHModCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHBzKHIua2V5KSxyKX19ZnVuY3Rpb24gcHModCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0IiE9dXModCl8fCF0KXJldHVybiB0O3ZhciBuPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT11cyhyKSlyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWU/U3RyaW5nOk51bWJlcikodCl9KHQsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT11cyhlKT9lOmUrIiJ9dmFyIGhzLHZzPUEoKSgiaW50ZXJjb20uY2xpZW50LW1hdGNoaW5nLmNsaWVudC1tYXRjaC1ydW5uZXIiKSx5cz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5jbGllbnRNYXRjaGVzPVtdLHRoaXMuYWN0aXZlQ2xpZW50TWF0Y2hJZHM9e30sdGhpcy5ldmFsTG9vcD12b2lkIDAsdGhpcy5zdG9yZT12b2lkIDAsdGhpcy5zdG9yZT10fXZhciBlLG4scixvPXQucHJvdG90eXBlO3JldHVybiBvLnN0YXJ0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt2b2lkIDA9PT10aGlzLmV2YWxMb29wJiYodnMoIlN0YXJ0aW5nIGV2YWx1YXRpb24gbG9vcCIpLHRoaXMuZXZhbExvb3A9c2V0SW50ZXJ2YWwoKGZ1bmN0aW9uKCl7cmV0dXJuIHQucGVyZm9ybUNsaWVudE1hdGNoaW5nKCl9KSw1MDApKX0sby5zdG9wPWZ1bmN0aW9uKCl7dm9pZCAwIT09dGhpcy5ldmFsTG9vcCYmKHZzKCJTdG9wcGluZyBldmFsdWF0aW9uIGxvb3AiKSx3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLmV2YWxMb29wKSx0aGlzLmV2YWxMb29wPXZvaWQgMCl9LG8udXBkYXRlQ2xpZW50TWF0Y2hlcz1mdW5jdGlvbih0LGUpe3RoaXMuX3JlbW92ZU1pc3NpbmdNYXRjaGVzKHQsZSksdGhpcy5fYWRkTmV3TWF0Y2hlcyh0KSx0aGlzLnBlcmZvcm1DbGllbnRNYXRjaGluZygpfSxvLnBlcmZvcm1DbGllbnRNYXRjaGluZz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2V2YWx1YXRlQ2xpZW50TWF0Y2hlcygpO2lzKHQsdGhpcy5zdG9yZS5nZXRTdGF0ZSgpKSx0aGlzLl9wcm9jZXNzUmVzdWx0cyh0KX0sby5fZXZhbHVhdGVDbGllbnRNYXRjaGVzPWZ1bmN0aW9uKCl7dmFyIHQ9e3Bvc2l0aXZlTWF0Y2hlczpbXSxuZWdhdGl2ZU1hdGNoZXM6W119O3JldHVybiB0aGlzLmNsaWVudE1hdGNoZXMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS5ldmFsdWF0ZVByZWRpY2F0ZXMoKT90LnBvc2l0aXZlTWF0Y2hlcy5wdXNoKGUpOnQubmVnYXRpdmVNYXRjaGVzLnB1c2goZSl9KSksdH0sby5fcHJvY2Vzc1Jlc3VsdHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0Lm5lZ2F0aXZlTWF0Y2hlcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgbj10LmdldFJ1bGVzZXRJZCgpO2UuYWN0aXZlQ2xpZW50TWF0Y2hJZHNbbl0mJih0LnVubWF0Y2goZS5zdG9yZSksZGVsZXRlIGUuYWN0aXZlQ2xpZW50TWF0Y2hJZHNbbl0sdC5jYW5SZW1hdGNoKCl8fGUuX3JlbW92ZUNsaWVudE1hdGNoKHQpKX0pKTt2YXIgbj1bXSxyPXQucG9zaXRpdmVNYXRjaGVzLm1hcCgoZnVuY3Rpb24odCl7dmFyIHI9dC5nZXRSdWxlc2V0SWQoKTtyZXR1cm4gZS5hY3RpdmVDbGllbnRNYXRjaElkc1tyXT90LnJlZnJlc2hBY3RpdmVNYXRjaChlLnN0b3JlKTooZS5hY3RpdmVDbGllbnRNYXRjaElkc1tyXT0hMCx0LnNob3VsZFByb2Nlc3NTZXF1ZW50aWFsbHkoKT9uLnB1c2godCk6dC5tYXRjaChlLnN0b3JlKSl9KSksbz1mdW5jdGlvbigpe3ZhciB0LG89KHQ9bHMoKS5tYXJrKChmdW5jdGlvbiB0KCl7dmFyIG8saSxhO3JldHVybiBscygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB0Lm5leHQ9MixQcm9taXNlLmFsbChyKTtjYXNlIDI6bz0wLGk9bjtjYXNlIDM6aWYoIShvPGkubGVuZ3RoKSl7dC5uZXh0PTEwO2JyZWFrfXJldHVybiBhPWlbb10sdC5uZXh0PTcsYS5tYXRjaChlLnN0b3JlKTtjYXNlIDc6bysrLHQubmV4dD0zO2JyZWFrO2Nhc2UgMTA6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSxmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBhKHQpe2ZzKGkscixvLGEsdSwibmV4dCIsdCl9ZnVuY3Rpb24gdSh0KXtmcyhpLHIsbyxhLHUsInRocm93Iix0KX1hKHZvaWQgMCl9KSl9KTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO28oKX0sby5fYWRkTmV3TWF0Y2hlcz1mdW5jdGlvbih0KXtmb3IodmFyIGUsbj10aGlzLHI9ZnVuY3Rpb24oKXt2YXIgdD1lLnZhbHVlO24uY2xpZW50TWF0Y2hlcy5maW5kKChmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRSdWxlc2V0SWQoKT09PXQucnVsZXNldF9pZH0pKXx8bi5jbGllbnRNYXRjaGVzLnB1c2goZnVuY3Rpb24odCl7c3dpdGNoKHQucnVsZXNldF9saW5rX29iamVjdF90eXBlKXtjYXNlImJhbm5lciI6cmV0dXJuIG5ldyBXYSh0KTtjYXNlInRvdXIiOnJldHVybiBuZXcgUWEodCk7Y2FzZSJzdXJ2ZXkiOnJldHVybiBuZXcgSHUodCk7Y2FzZSJpbmJvdW5kX3RyaWdnZXIiOmNhc2UiaW5ib3VuZF9jdXN0b21fYm90IjpyZXR1cm4gbmV3IGF1KHQpO2Nhc2UiY2hhdCI6cmV0dXJuIG5ldyBFdSh0KTtjYXNlImNoZWNrbGlzdCI6cmV0dXJuIG5ldyBRdSh0KTtjYXNlImN1c3RvbV9ib3QiOnJldHVybiBuZXcga3UodCk7Y2FzZSJwb3N0IjpyZXR1cm4gbmV3IE51KHQpO2Nhc2UibWVzc2VuZ2VyX3RyaWdnZXIiOmNhc2UiYnV0dG9uX2N1c3RvbV9ib3QiOmNhc2UidHJpZ2dlcmFibGVfY3VzdG9tX2JvdCI6cmV0dXJuIG5ldyBidSh0KTtjYXNlImFuc3dlcmJvdF9wcmVkaWN0aXZlX2NvbnRleHQiOnJldHVybiBuZXcgZHUodCk7Y2FzZSJzZXJpZXNfY29uZGl0aW9uIjpyZXR1cm4gbmV3IEd1KHQpO2Nhc2UibWVzc2VuZ2VyX251ZGdlIjpyZXR1cm4gbmV3IG5zKHQpO2RlZmF1bHQ6cmV0dXJuIG5ldyBEYSh0KX19KHQpKX0sbz1zcyh0LCEwKTshKGU9bygpKS5kb25lOylyKCk7dGhpcy5fZXZhbHVhdGVDbGllbnRNYXRjaGVzKCl9LG8uX3JlbW92ZU1pc3NpbmdNYXRjaGVzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuLHI9dGhpcyxvPWZ1bmN0aW9uKCl7dmFyIG89bi52YWx1ZTtvLmlzTWF0Y2hhYmxlSW5Mb2NhdGlvbihlKSYmIXQuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucnVsZXNldF9pZD09PW8uZ2V0UnVsZXNldElkKCl9KSkmJihyLmFjdGl2ZUNsaWVudE1hdGNoSWRzW28uZ2V0UnVsZXNldElkKCldJiZvLnVubWF0Y2goci5zdG9yZSksci5fcmVtb3ZlQ2xpZW50TWF0Y2gobykpfSxpPXNzKHRoaXMuY2xpZW50TWF0Y2hlcywhMCk7IShuPWkoKSkuZG9uZTspbygpfSxvLl9yZW1vdmVDbGllbnRNYXRjaD1mdW5jdGlvbih0KXt0aGlzLmNsaWVudE1hdGNoZXMuc3BsaWNlKHRoaXMuY2xpZW50TWF0Y2hlcy5pbmRleE9mKHQpLDEpfSxlPXQsbiYmZHMoZS5wcm90b3R5cGUsbiksciYmZHMoZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfSgpLGdzPW4oMzIyMDgpLG1zPTAsYnM9MTIsd3M9MTQsX3M9ZnVuY3Rpb24odCxlLG4pe2hzfHwoaHM9bmV3IHlzKHQpKS5zdGFydCgpLGhzLnVwZGF0ZUNsaWVudE1hdGNoZXMoZSxuKSwoMCxncy5yKShocy5jbGllbnRNYXRjaGVzLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiJpbmJvdW5kX3RyaWdnZXIiPT09dC5nZXRPYmplY3RUeXBlKCl8fCJpbmJvdW5kX2N1c3RvbV9ib3QiPT09dC5nZXRPYmplY3RUeXBlKCl9KSkpfSxTcz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciByPWUobiksbz1uLGk9dDtzd2l0Y2goby50eXBlKXtjYXNlIEYuUndxOnZhciBhO251bGwhPW8mJm51bGwhPShhPW8udXNlcikmJmEuY2xpZW50c2lkZVJ1bGVzZXRDb25kaXRpb25zJiZfcyhpLG8udXNlci5jbGllbnRzaWRlUnVsZXNldENvbmRpdGlvbnMsbXMpO2JyZWFrO2Nhc2Ugb3QuV0YuZnVsZmlsbGVkLnRvU3RyaW5nKCk6dmFyIHU9bnVsbD09bz92b2lkIDA6by5wYXlsb2FkO251bGwhPXUmJnUuY2xpZW50c2lkZVJ1bGVzZXRDb25kaXRpb25zJiZfcyhpLHUuY2xpZW50c2lkZVJ1bGVzZXRDb25kaXRpb25zLHdzKTticmVhaztjYXNlIEYuY3MyOnZhciBzO2lmKG51bGwhPW8mJm51bGwhPShzPW8ucmVzcG9uc2UpJiZzLmNsaWVudHNpZGVSdWxlc2V0Q29uZGl0aW9ucyl7dmFyIGM9by5yZXNwb25zZS5jbGllbnRzaWRlUnVsZXNldENvbmRpdGlvbnM7YyYmYy5sZW5ndGg+MCYmX3MoaSxjLGJzKX1icmVhaztjYXNlIEYucWpTOnZhciBsO2lmKGhzKW51bGw9PShsPWhzKXx8bC5zdG9wKCksaHM9dm9pZCAwOygwLGdzLnIpKCExKX1yZXR1cm4gcn19fSx4cz1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49ZTtyZXR1cm4gbi50eXBlIT09Ri5FbVgmJm4udHlwZSE9PUYudnhufHxhby5mLnNldEludGVyYWN0aW9uTW9kZSgidW5rbm93biIpLHQoZSl9fX0sRXM9big1MTAwNiksQ3M9big4MjUxMyksT3M9ZnVuY3Rpb24odCl7cmV0dXJuIHQuTm90SW5pdGlhbGl6ZWQ9Im5vdC1pbml0aWFsaXplZCIsdC5Jbml0aWFsaXplZD0iaW5pdGlhbGl6ZWQiLHQuR2V0dGluZ1Rva2VuPSJnZXR0aW5nLXRva2VuIix0LkNyZWF0aW5nQ29udmVyc2F0aW9uPSJjcmVhdGluZy1jb252ZXJzYXRpb24iLHQuV2FpdGluZ0ZvckFnZW50PSJ3YWl0aW5nLWZvci1hZ2VudCIsdC5Db25uZWN0ZWRUb0FnZW50PSJjb25uZWN0ZWQtdG8tYWdlbnQiLHQuQ2hlY2tpbmdGb3JNZXNzYWdlcz0iY2hlY2tpbmctZm9yLW1lc3NhZ2VzIix0LkNoYXRUZXJtaW5hdGVkPSJjaGF0LXRlcm1pbmF0ZWQiLHR9KHt9KSxBcz1mdW5jdGlvbih0KXtyZXR1cm4gdC5WZXJpZmllZD0idmVyaWZpZWQiLHQuVW52ZXJpZmllZD0idW52ZXJpZmllZCIsdC5Vbmtub3duPSJ1bmtub3duIix0fSh7fSksSXM9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT02ZTQpO3RyeXt2YXIgbj10LnNwbGl0KCIuIilbMV07aWYoIW4pcmV0dXJuITA7dmFyIHI9KGk9bi5yZXBsYWNlKC8tL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKSwoYT1pLmxlbmd0aCU0KT4wJiYoaSs9Ij0iLnJlcGVhdCg0LWEpKSxpKSxvPUpTT04ucGFyc2UoYXRvYihyKSk7cmV0dXJuISFvLmV4cCYmMWUzKm8uZXhwLURhdGUubm93KCk8ZX1jYXRjaCh0KXtyZXR1cm4hMH12YXIgaSxhfSxrcz1uKDU3NDcxKTtmdW5jdGlvbiBMcyh0KXtyZXR1cm4gTHM9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LExzKHQpfWZ1bmN0aW9uIFRzKCl7cmV0dXJuIFRzPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sVHMuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGpzKCl7anM9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixzPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Moe30sIiIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGwodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBnP2U6ZyxhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IEwocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpPKHQsbix1KX0pLGF9ZnVuY3Rpb24gZih0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1sO3ZhciBkPSJzdXNwZW5kZWRTdGFydCIscD0ic3VzcGVuZGVkWWllbGQiLGg9ImV4ZWN1dGluZyIsdj0iY29tcGxldGVkIix5PXt9O2Z1bmN0aW9uIGcoKXt9ZnVuY3Rpb24gbSgpe31mdW5jdGlvbiBiKCl7fXZhciB3PXt9O2ModyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciBfPU9iamVjdC5nZXRQcm90b3R5cGVPZixTPV8mJl8oXyhUKFtdKSkpO1MmJlMhPT1uJiZyLmNhbGwoUyxhKSYmKHc9Uyk7dmFyIHg9Yi5wcm90b3R5cGU9Zy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh3KTtmdW5jdGlvbiBFKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Yyh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBDKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgcz1mKHRbb10sdCxpKTtpZigidGhyb3ciIT09cy50eXBlKXt2YXIgYz1zLmFyZyxsPWMudmFsdWU7cmV0dXJuIGwmJiJvYmplY3QiPT1McyhsKSYmci5jYWxsKGwsIl9fYXdhaXQiKT9lLnJlc29sdmUobC5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LGEsdSl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsYSx1KX0pKTplLnJlc29sdmUobCkudGhlbigoZnVuY3Rpb24odCl7Yy52YWx1ZT10LGEoYyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LGEsdSl9KSl9dShzLmFyZyl9dmFyIGk7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gTyhlLG4scil7dmFyIG89ZDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09aCl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT12KXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1BKHUscik7aWYocyl7aWYocz09PXkpY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09ZCl0aHJvdyBvPXYsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPWg7dmFyIGM9ZihlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP3Y6cCxjLmFyZz09PXkpY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz12LHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gQShlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsQShlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSx5O3ZhciBpPWYobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCx5O3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCx5KTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLHkpfWZ1bmN0aW9uIEkodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gayh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gTCh0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEksdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gVChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbYV07aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKExzKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIG0ucHJvdG90eXBlPWIsbyh4LCJjb25zdHJ1Y3RvciIse3ZhbHVlOmIsY29uZmlndXJhYmxlOiEwfSksbyhiLCJjb25zdHJ1Y3RvciIse3ZhbHVlOm0sY29uZmlndXJhYmxlOiEwfSksbS5kaXNwbGF5TmFtZT1jKGIscywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PW18fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGIpOih0Ll9fcHJvdG9fXz1iLGModCxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHgpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LEUoQy5wcm90b3R5cGUpLGMoQy5wcm90b3R5cGUsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QyxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEMobCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxFKHgpLGMoeCxzLCJHZW5lcmF0b3IiKSxjKHgsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxjKHgsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9VCxMLnByb3RvdHlwZT17Y29uc3RydWN0b3I6TCxyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goayksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLHkpOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSkseX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxrKG4pLHl9fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7ayhuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6VChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLHl9fSxlfWZ1bmN0aW9uIFBzKHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gTnModCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7UHMoaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpe1BzKGkscixvLGEsdSwidGhyb3ciLHQpfWEodm9pZCAwKX0pKX19ZnVuY3Rpb24gTXModCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFJzKHIua2V5KSxyKX19ZnVuY3Rpb24gUnModCl7dmFyIGU9ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0IiE9THModCl8fCF0KXJldHVybiB0O3ZhciBuPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT1McyhyKSlyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWU/U3RyaW5nOk51bWJlcikodCl9KHQsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT1McyhlKT9lOmUrIiJ9dmFyIFVzPUEoKSgiaW50ZXJjb20uc3RhbmRhbG9uZS5zYWxlc2ZvcmNlLW1lc3NhZ2luZy1jbGllbnQiKSx6cz1bIm1vdXNlbW92ZSIsImNsaWNrIiwia2V5dXAiLCJmb2N1cyIsInZpc2liaWxpdHljaGFuZ2UiXSxIcz1bIkNPTlZFUlNBVElPTl9ST1VUSU5HX1JFU1VMVCIsIkNPTlZFUlNBVElPTl9QQVJUSUNJUEFOVF9DSEFOR0VEIiwiQ09OVkVSU0FUSU9OX01FU1NBR0UiLCJDT05WRVJTQVRJT05fVFlQSU5HX1NUQVJURURfSU5ESUNBVE9SIiwiQ09OVkVSU0FUSU9OX1RZUElOR19TVE9QUEVEX0lORElDQVRPUiIsIkNPTlZFUlNBVElPTl9DTE9TRV9DT05WRVJTQVRJT04iXSxGcz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGU9dGhpcyxuPXQuYXBwSWQscj10Lmhvc3RuYW1lLG89dC5vcmdhbml6YXRpb25JZCxpPXQudXNlclZlcmlmaWNhdGlvbkVuYWJsZWQsYT10LmVudmlyb25tZW50SWQsdT10LmRpc3BhdGNoLHM9dC5pbkFwcE1lc3NhZ2luZ0NvbmZpZyxjPXZvaWQgMD09PXM/bnVsbDpzLGw9dC5zdG9yZTt0aGlzLmFwcElkPXZvaWQgMCx0aGlzLmhvc3RuYW1lPXZvaWQgMCx0aGlzLm9yZ2FuaXphdGlvbklkPXZvaWQgMCx0aGlzLnVzZXJWZXJpZmljYXRpb25FbmFibGVkPXZvaWQgMCx0aGlzLmVudmlyb25tZW50SWQ9dm9pZCAwLHRoaXMuY2xpZW50U3RhdGU9T3MuTm90SW5pdGlhbGl6ZWQsdGhpcy5zdWJzY3JpYmVkVG9FdmVudHM9dm9pZCAwLHRoaXMuZXZlbnRTb3VyY2VFcnJvckNvdW50PXZvaWQgMCx0aGlzLmluQXBwTWVzc2FnaW5nQ29uZmlnPXZvaWQgMCx0aGlzLmRpc3BhdGNoPXZvaWQgMCx0aGlzLnN0b3JlPXZvaWQgMCx0aGlzLnRhYklkPXZvaWQgMCx0aGlzLmhhbmRvdmVycz12b2lkIDAsdGhpcy5sYXN0VG9rZW5SZXNldFRpbWU9dm9pZCAwLHRoaXMuaGVhcnRiZWF0VGltZXI9bnVsbCx0aGlzLnJlZnJlc2hUb2tlblRpbWVyPW51bGwsdGhpcy5lcz1udWxsLHRoaXMudG9rZW5GZXRjaFByb21pc2U9bnVsbCx0aGlzLmhhbmRsZUV2ZW50PU5zKGpzKCkubWFyaygoZnVuY3Rpb24gdChuKXt2YXIgcixvO3JldHVybiBqcygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB0LnByZXY9MCxlLmluZm9Mb2coImhhbmRsZUV2ZW50IiwiUmF3IEV2ZW50IiwiZXZlbnQ9IitKU09OLnN0cmluZ2lmeShuKSksZS5ldmVudFNvdXJjZUVycm9yQ291bnQ9MCxvPXtpZDpuLmxhc3RFdmVudElkLHR5cGU6bi50eXBlLGRhdGE6SlNPTi5wYXJzZShuLmRhdGEpfSxlLmluZm9Mb2coImhhbmRsZUV2ZW50IiwiVHJhbnNmb3JtZWQgRXZlbnQiLCJldmVudD0iK0pTT04uc3RyaW5naWZ5KG8pKSx0Lm5leHQ9NyxIby5BLnBvc3Qoe3VybDooMCx1by56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvc3RhbmRhbG9uZS9zYWxlc2ZvcmNlL2V2ZW50cyIsc2Vzc2lvbjplLmdldFNlc3Npb24oKSxwYXJhbXM6e2FwcF9pZDplLmFwcElkLGFjY2Vzc190b2tlbjpudWxsPT0ocj1lLmluQXBwTWVzc2FnaW5nQ29uZmlnKT92b2lkIDA6ci5hY2Nlc3NUb2tlbixldmVudHM6SlNPTi5zdHJpbmdpZnkoW29dKX19KTtjYXNlIDc6ZS5zZXRMYXN0RXZlbnRJZChOdW1iZXIoby5pZCkpLHQubmV4dD0xMzticmVhaztjYXNlIDEwOnQucHJldj0xMCx0LnQwPXQuY2F0Y2goMCksZS5pbmZvTG9nKCJoYW5kbGVFdmVudCIsImZhaWxlZCB0byBoYW5kbGUgZXZlbnQiLCJlcnJvcj0iK3QudDAsImV2ZW50PSIrSlNPTi5zdHJpbmdpZnkobikpO2Nhc2UgMTM6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LG51bGwsW1swLDEwXV0pfSkpKSx0aGlzLmhhbmRsZUFjdGl2ZVRhYkV2ZW50PSgwLEVzLm4pKChmdW5jdGlvbigpe1VzKCJbaGFuZGxlQWN0aXZlVGFiRXZlbnRdIixlLmlzQWN0aXZlVGFiKCksZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlKSxlLmlzQWN0aXZlVGFiKCl8fCJ2aXNpYmxlIiE9PWRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZXx8KGUuaW5mb0xvZygiaGFuZGxlQWN0aXZlVGFiRXZlbnQiLCJTZXR0aW5nIGFjdGl2ZSB0YWIgaWQiKSxlLnNldEFjdGl2ZVRhYklkKCksZS5nZXRPclVwZGF0ZVRva2VuKCkpfSksMWUzKSx0aGlzLmNoZWNrQWN0aXZlVGFiTGVhc2U9KDAsRXMubikoKGZ1bmN0aW9uKHQpe2UuaXNBY3RpdmVUYWIoKXx8c2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgdD1YLkwuZ2V0KExvKGUuYXBwSWQpKTtpZih0KXt2YXIgbj1KU09OLnBhcnNlKHQpO24mJm4udGFiSWQhPT1lLnRhYklkJiZEYXRlLm5vdygpLW4ubGFzdFNlZW5BdD42ZTQmJihlLmluZm9Mb2coImNoZWNrQWN0aXZlVGFiTGVhc2UiLCJhY3RpdmUgdGFiIGxlYXNlIGV4cGlyZWQsIHNldHRpbmcgYWN0aXZlIHRhYiBpZCIpLGUuc2V0QWN0aXZlVGFiSWQoKSl9fSksdCl9KSwxZTMpLHRoaXMuaGFuZGxlU3RvcmFnZUV2ZW50PWZ1bmN0aW9uKHQpe3ZhciBuLHI9ZS5nZXRTdG9yYWdlS2V5KCk7aWYobnVsbCE9KG49dC5rZXkpJiYtMSE9PW4uaW5kZXhPZihyKSl7dmFyIG89WC5MLmdldChyKTtpZihvKXRyeXt2YXIgaSxhLHU9SlNPTi5wYXJzZShvKTtpZihudWxsPT0oaT11LmluQXBwTWVzc2FnaW5nQ29uZmlnKXx8IWkuYWNjZXNzVG9rZW4pcmV0dXJuOyhudWxsPT0oYT1lLmluQXBwTWVzc2FnaW5nQ29uZmlnKXx8IWEuYWNjZXNzVG9rZW58fChudWxsPT11P3ZvaWQgMDp1Lmxhc3RUb2tlblJlc2V0VGltZSk+KG51bGw9PWU/dm9pZCAwOmUubGFzdFRva2VuUmVzZXRUaW1lKSkmJihlLmluZm9Mb2coImhhbmRsZVN0b3JhZ2VFdmVudCIsInRva2VuIHJlc2V0IHRpbWUgbWlzbWF0Y2gsIHVwZGF0aW5nIHRva2VuIiksZS5sYXN0VG9rZW5SZXNldFRpbWU9dS5sYXN0VG9rZW5SZXNldFRpbWUsZS5pbkFwcE1lc3NhZ2luZ0NvbmZpZz11LmluQXBwTWVzc2FnaW5nQ29uZmlnLGUuc3Vic2NyaWJlVG9FdmVudHMoKSl9Y2F0Y2godCl7ZS5pbmZvTG9nKCJoYW5kbGVTdG9yYWdlRXZlbnQiLCJmYWlsZWQgdG8gaGFuZGxlIHN0b3JhZ2UgZXZlbnQiLCJlcnJvcj0iK3QpfX19LHRoaXMuYXBwSWQ9bix0aGlzLmhvc3RuYW1lPXIsdGhpcy5vcmdhbml6YXRpb25JZD1vLHRoaXMudXNlclZlcmlmaWNhdGlvbkVuYWJsZWQ9aSx0aGlzLmVudmlyb25tZW50SWQ9YXx8KDAsa3MudSkoKSx0aGlzLmluQXBwTWVzc2FnaW5nQ29uZmlnPWMsdGhpcy5kaXNwYXRjaD11LHRoaXMudGFiSWQ9KDAsa3IubCkoKSx0aGlzLnN1YnNjcmliZWRUb0V2ZW50cz0hMSx0aGlzLmV2ZW50U291cmNlRXJyb3JDb3VudD0wLHRoaXMuc3RvcmU9bCx0aGlzLmxhc3RUb2tlblJlc2V0VGltZT0wLHRoaXMuc2V0U3RhdGUoT3MuTm90SW5pdGlhbGl6ZWQpLHRoaXMuYWRkQWN0aXZlVGFiRXZlbnRMaXN0ZW5lcnMoKSx0aGlzLmhhbmRvdmVycz1bXSwidmlzaWJsZSI9PT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGUmJihVcygiW2NvbnN0cnVjdG9yXSBTZXR0aW5nIGFjdGl2ZSB0YWIgaWQiLHRoaXMudGFiSWQpLHRoaXMuc2V0QWN0aXZlVGFiSWQoKSl9dmFyIGUsbixyLG89dC5wcm90b3R5cGU7cmV0dXJuIG8uaGFuZG92ZXJUb1NhbGVzZm9yY2U9ZnVuY3Rpb24oKXt2YXIgdD1OcyhqcygpLm1hcmsoKGZ1bmN0aW9uIHQoZSxuKXt2YXIgcjtyZXR1cm4ganMoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZih0LnByZXY9MCx0aGlzLmlzQWN0aXZlVGFiKCkpe3QubmV4dD00O2JyZWFrfXJldHVybiB0aGlzLmluZm9Mb2coImhhbmRvdmVyVG9TYWxlc2ZvcmNlIiwibm90IGFjdGl2ZSB0YWIsIHNraXBwaW5nIGhhbmRvdmVyIiwiY29udmVyc2F0aW9uVG9IYW5kb3ZlcklkPSIrZSksdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgNDppZigtMT09PXRoaXMuaGFuZG92ZXJzLmluZGV4T2YoZSkpe3QubmV4dD03O2JyZWFrfXJldHVybiB0aGlzLmluZm9Mb2coImhhbmRvdmVyVG9TYWxlc2ZvcmNlIiwiaGFuZG92ZXIgaW4gcHJvZ3Jlc3MiLCJjb252ZXJzYXRpb25Ub0hhbmRvdmVySWQ9IitlKSx0LmFicnVwdCgicmV0dXJuIik7Y2FzZSA3OmlmKHRoaXMuaGFuZG92ZXJzLnB1c2goZSksdGhpcy5pbmZvTG9nKCJoYW5kb3ZlclRvU2FsZXNmb3JjZSIsImhhbmRvdmVyIHRvIHNhbGVzZm9yY2UiLCJjb252ZXJzYXRpb25Ub0hhbmRvdmVySWQ9IitlKSx0aGlzLmluQXBwTWVzc2FnaW5nQ29uZmlnJiYhbil7dC5uZXh0PTE1O2JyZWFrfXJldHVybiB0aGlzLmluZm9Mb2coImhhbmRvdmVyVG9TYWxlc2ZvcmNlIiwiZ2V0dGluZyB0b2tlbiIsImNvbnZlcnNhdGlvblRvSGFuZG92ZXJJZD0iK2UpLHQubmV4dD0xMyx0aGlzLmdldFRva2VuKCk7Y2FzZSAxMzp0Lm5leHQ9MTk7YnJlYWs7Y2FzZSAxNTpyZXR1cm4gdGhpcy5pbmZvTG9nKCJoYW5kb3ZlclRvU2FsZXNmb3JjZSIsInJlZnJlc2hpbmcgdG9rZW4gYmVmb3JlIGhhbmRvZmYiLCJjb252ZXJzYXRpb25Ub0hhbmRvdmVySWQ9IitlKSx0Lm5leHQ9MTgsdGhpcy5nZXRPclVwZGF0ZVRva2VuKCk7Y2FzZSAxODp0aGlzLnNldFN0YXRlKE9zLkluaXRpYWxpemVkKTtjYXNlIDE5OmlmKG51bGwhPShyPXRoaXMuaW5BcHBNZXNzYWdpbmdDb25maWcpJiZyLmFjY2Vzc1Rva2VuKXt0Lm5leHQ9MjI7YnJlYWt9cmV0dXJuIHRoaXMuaW5mb0xvZygiaGFuZG92ZXJUb1NhbGVzZm9yY2UiLCJubyBhY2Nlc3MgdG9rZW4iLCJjb252ZXJzYXRpb25Ub0hhbmRvdmVySWQ9IitlKSx0LmFicnVwdCgicmV0dXJuIik7Y2FzZSAyMjp0aGlzLmluZm9Mb2coImhhbmRvdmVyVG9TYWxlc2ZvcmNlIiwiY3JlYXRpbmcgY29udmVyc2F0aW9uIiwiY29udmVyc2F0aW9uVG9IYW5kb3ZlcklkPSIrZSksdGhpcy5jcmVhdGVDb252ZXJzYXRpb24oZSksdC5uZXh0PTI5O2JyZWFrO2Nhc2UgMjY6dC5wcmV2PTI2LHQudDA9dC5jYXRjaCgwKSx0aGlzLmluZm9Mb2coImhhbmRvdmVyVG9TYWxlc2ZvcmNlIiwiZmFpbGVkIHRvIGhhbmRvdmVyIHRvIHNhbGVzZm9yY2UiLCJlcnJvcj0iK3QudDAsImNvbnZlcnNhdGlvblRvSGFuZG92ZXJJZD0iK2UpO2Nhc2UgMjk6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LHRoaXMsW1swLDI2XV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG8ucmVmcmVzaFRva2VuSWZFeHBpcmVkPWZ1bmN0aW9uKCl7dmFyIHQ9TnMoanMoKS5tYXJrKChmdW5jdGlvbiB0KCl7dmFyIGU7cmV0dXJuIGpzKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYodGhpcy5pbmZvTG9nKCJyZWZyZXNoVG9rZW5JZkV4cGlyZWQiLCJhdHRlbXB0aW5nIHRvIHJlZnJlc2ggdG9rZW4gaWYgZXhwaXJlZCIpLHRoaXMudXNlclZlcmlmaWNhdGlvbkVuYWJsZWQpe3QubmV4dD0zO2JyZWFrfXJldHVybiB0LmFicnVwdCgicmV0dXJuIik7Y2FzZSAzOmlmKG51bGwhPShlPXRoaXMuaW5BcHBNZXNzYWdpbmdDb25maWcpJiZlLmFjY2Vzc1Rva2VuKXt0Lm5leHQ9NTticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgNTppZihJcyh0aGlzLmluQXBwTWVzc2FnaW5nQ29uZmlnLmFjY2Vzc1Rva2VuKSl7dC5uZXh0PTc7YnJlYWt9cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDc6cmV0dXJuIHRoaXMuaW5mb0xvZygicmVmcmVzaFRva2VuSWZFeHBpcmVkIiwidG9rZW4gaXMgZXhwaXJlZCwgcmVmcmVzaGluZyIpLHQubmV4dD0xMCx0aGlzLmdldFRva2VuKCk7Y2FzZSAxMDpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsdGhpcyl9KSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksby5nZXRUb2tlbj1mdW5jdGlvbigpe3ZhciB0PU5zKGpzKCkubWFyaygoZnVuY3Rpb24gdCgpe3JldHVybiBqcygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmlmKHRoaXMuaXNBY3RpdmVUYWIoKSl7dC5uZXh0PTM7YnJlYWt9cmV0dXJuIHRoaXMuaW5mb0xvZygiZ2V0VG9rZW4iLCJub3QgYWN0aXZlIHRhYiIsImNsaWVudFN0YXRlPSIrdGhpcy5jbGllbnRTdGF0ZSksdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMzppZih0aGlzLmNsaWVudFN0YXRlIT09T3MuR2V0dGluZ1Rva2VuKXt0Lm5leHQ9ODticmVha31yZXR1cm4gdGhpcy5pbmZvTG9nKCJnZXRUb2tlbiIsImFscmVhZHkgZmV0Y2hpbmcgdG9rZW4sIGF3YWl0aW5nIGluLWZsaWdodCByZXF1ZXN0IiksdC5uZXh0PTcsdGhpcy50b2tlbkZldGNoUHJvbWlzZTtjYXNlIDc6cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDg6cmV0dXJuIHRoaXMudG9rZW5GZXRjaFByb21pc2U9dGhpcy5mZXRjaFRva2VuKCksdC5wcmV2PTksdC5uZXh0PTEyLHRoaXMudG9rZW5GZXRjaFByb21pc2U7Y2FzZSAxMjpyZXR1cm4gdC5wcmV2PTEyLHRoaXMudG9rZW5GZXRjaFByb21pc2U9bnVsbCx0LmZpbmlzaCgxMik7Y2FzZSAxNTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsdGhpcyxbWzksLDEyLDE1XV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG8uZmV0Y2hUb2tlbj1mdW5jdGlvbigpe3ZhciB0PU5zKGpzKCkubWFyaygoZnVuY3Rpb24gdCgpe3ZhciBlLG47cmV0dXJuIGpzKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQucHJldj0wLHRoaXMuaW5mb0xvZygiZ2V0VG9rZW4iLCJnZXR0aW5nIHRva2VuIiksdGhpcy5zZXRTdGF0ZShPcy5HZXR0aW5nVG9rZW4pLGU9e2FwcF9pZDp0aGlzLmFwcElkLHRhYl9pZDp0aGlzLnRhYklkfSx0aGlzLnVzZXJTYWxlc2ZvcmNlSWRlbnRpdHlUb2tlbigpJiYoZS5zYWxlc2ZvcmNlX2lkZW50aXR5X3Rva2VuPXRoaXMudXNlclNhbGVzZm9yY2VJZGVudGl0eVRva2VuKCkpLHQubmV4dD03LEhvLkEucG9zdCh7dXJsOigwLHVvLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9zdGFuZGFsb25lL3NhbGVzZm9yY2UvZ2V0X3Rva2VuIixzZXNzaW9uOnRoaXMuZ2V0U2Vzc2lvbigpLHBhcmFtczplfSk7Y2FzZSA3Om51bGwhPShuPXQuc2VudCkmJm4ub2smJih0aGlzLmxhc3RUb2tlblJlc2V0VGltZT1EYXRlLm5vdygpLHRoaXMuaW5BcHBNZXNzYWdpbmdDb25maWc9bi5ib2R5LHRoaXMuc2V0U3RhdGUoT3MuSW5pdGlhbGl6ZWQpLHRoaXMuc3RhcnRUb2tlblJlZnJlc2hUaW1lcigpKSx0Lm5leHQ9MTY7YnJlYWs7Y2FzZSAxMTp0LnByZXY9MTEsdC50MD10LmNhdGNoKDApLHRoaXMuaW5mb0xvZygiZ2V0VG9rZW4iLCJmYWlsZWQgdG8gZ2V0IHRva2VuIiwiZXJyb3I9Iit0LnQwKSx0aGlzLnNldFN0YXRlKE9zLk5vdEluaXRpYWxpemVkKSx0aGlzLnN0b3BUb2tlblJlZnJlc2hUaW1lcigpO2Nhc2UgMTY6cmV0dXJuIHQucHJldj0xNix0aGlzLmNsaWVudFN0YXRlPT09T3MuR2V0dGluZ1Rva2VuJiYodGhpcy5zZXRTdGF0ZShPcy5Ob3RJbml0aWFsaXplZCksdGhpcy5zdG9wVG9rZW5SZWZyZXNoVGltZXIoKSksdC5maW5pc2goMTYpO2Nhc2UgMTk6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LHRoaXMsW1swLDExLDE2LDE5XV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG8udXBkYXRlVG9rZW49ZnVuY3Rpb24oKXt2YXIgdD1OcyhqcygpLm1hcmsoKGZ1bmN0aW9uIHQoKXt2YXIgZSxuO3JldHVybiBqcygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmlmKHRoaXMuaXNBY3RpdmVUYWIoKSYmdGhpcy5pbkFwcE1lc3NhZ2luZ0NvbmZpZyl7dC5uZXh0PTM7YnJlYWt9cmV0dXJuIHRoaXMuaW5mb0xvZygidXBkYXRlVG9rZW4iLCJub3QgYWN0aXZlIHRhYiBvciBubyBpbkFwcE1lc3NhZ2luZ0NvbmZpZyIpLHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDM6cmV0dXJuIHRoaXMuaW5mb0xvZygidXBkYXRlVG9rZW4iLCJ1cGRhdGluZyB0b2tlbiIpLHQucHJldj00LHQubmV4dD03LEhvLkEucG9zdCh7dXJsOigwLHVvLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9zdGFuZGFsb25lL3NhbGVzZm9yY2UvdXBkYXRlX3Rva2VuIixzZXNzaW9uOnRoaXMuZ2V0U2Vzc2lvbigpLHBhcmFtczp7YXBwX2lkOnRoaXMuYXBwSWQsYWNjZXNzX3Rva2VuOm51bGw9PShlPXRoaXMuaW5BcHBNZXNzYWdpbmdDb25maWcpP3ZvaWQgMDplLmFjY2Vzc1Rva2VufX0pO2Nhc2UgNzppZihudWxsPT0obj10LnNlbnQpfHwhbi5vayl7dC5uZXh0PTEzO2JyZWFrfXJldHVybiB0aGlzLmluQXBwTWVzc2FnaW5nQ29uZmlnLmFjY2Vzc1Rva2VuPW4uYm9keS5hY2Nlc3NUb2tlbix0aGlzLnNldFN0YXRlKE9zLkluaXRpYWxpemVkKSx0aGlzLnN0YXJ0VG9rZW5SZWZyZXNoVGltZXIoKSx0LmFicnVwdCgicmV0dXJuIix0aGlzLnN1YnNjcmliZVRvRXZlbnRzKCkpO2Nhc2UgMTM6dC5uZXh0PTE4O2JyZWFrO2Nhc2UgMTU6dC5wcmV2PTE1LHQudDA9dC5jYXRjaCg0KSx0aGlzLmluZm9Mb2coInVwZGF0ZVRva2VuIiwiZmFpbGVkIHRvIHVwZGF0ZSB0b2tlbiIsImVycm9yPSIrdC50MCk7Y2FzZSAxODpyZXR1cm4gdGhpcy5pbkFwcE1lc3NhZ2luZ0NvbmZpZz1udWxsLHRoaXMuc3RvcFRva2VuUmVmcmVzaFRpbWVyKCksdGhpcy5zYXZlU3RhdGVUb1N0b3JhZ2UoKSx0Lm5leHQ9MjMsdGhpcy5nZXRUb2tlbigpO2Nhc2UgMjM6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LHRoaXMsW1s0LDE1XV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG8uZ2V0T3JVcGRhdGVUb2tlbj1mdW5jdGlvbigpe3ZhciB0PU5zKGpzKCkubWFyaygoZnVuY3Rpb24gdCgpe3JldHVybiBqcygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmlmKCF0aGlzLnNob3VsZEdldFRva2VuKCkpe3QubmV4dD01O2JyZWFrfXJldHVybiB0Lm5leHQ9Myx0aGlzLmdldFRva2VuKCk7Y2FzZSAzOnQubmV4dD04O2JyZWFrO2Nhc2UgNTppZighdGhpcy5pbkFwcE1lc3NhZ2luZ0NvbmZpZyl7dC5uZXh0PTg7YnJlYWt9cmV0dXJuIHQubmV4dD04LHRoaXMudXBkYXRlVG9rZW4oKTtjYXNlIDg6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LHRoaXMpfSkpKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG8uc2hvdWxkR2V0VG9rZW49ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy51c2VyVmVyaWZpY2F0aW9uRW5hYmxlZHx8dGhpcy51c2VyU2FsZXNmb3JjZUlkZW50aXR5VG9rZW4oKSkmJighdGhpcy5pbkFwcE1lc3NhZ2luZ0NvbmZpZ3x8dGhpcy5jb25uZWN0aW9uVHlwZSgpPT09QXMuVW52ZXJpZmllZCl9LG8ucGVyZm9ybUhlYWx0aENoZWNrPWZ1bmN0aW9uKCl7dmFyIHQ9TnMoanMoKS5tYXJrKChmdW5jdGlvbiB0KGUpe3ZhciBuLHIsbztyZXR1cm4ganMoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZih0aGlzLmluZm9Mb2coInBlcmZvcm1IZWFsdGhDaGVjayIsInBlcmZvcm1pbmcgaGVhbHRoIGNoZWNrIiwiY29udmVyc2F0aW9uSWQ9IitlKSx0aGlzLmlzQWN0aXZlVGFiKCkpe3QubmV4dD00O2JyZWFrfXJldHVybiB0aGlzLmluZm9Mb2coInBlcmZvcm1IZWFsdGhDaGVjayIsIm5vdCBhY3RpdmUgdGFiLCBza2lwcGluZyBoZWFsdGggY2hlY2siKSx0LmFicnVwdCgicmV0dXJuIik7Y2FzZSA0OmlmKHQucHJldj00LG51bGwhPShuPXRoaXMuaW5BcHBNZXNzYWdpbmdDb25maWcpJiZuLmFjY2Vzc1Rva2VuKXt0Lm5leHQ9ODticmVha31yZXR1cm4gdGhpcy5pbmZvTG9nKCJwZXJmb3JtSGVhbHRoQ2hlY2siLCJubyBhY2Nlc3MgdG9rZW4sIHNraXBwaW5nIGhlYWx0aCBjaGVjayIpLHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDg6cmV0dXJuIHQubmV4dD0xMCxIby5BLnBvc3Qoe3VybDooMCx1by56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvc3RhbmRhbG9uZS9zYWxlc2ZvcmNlL2hlYWx0aF9jaGVjayIsc2Vzc2lvbjp0aGlzLmdldFNlc3Npb24oKSxwYXJhbXM6e2FwcF9pZDp0aGlzLmFwcElkLGFjY2Vzc190b2tlbjpudWxsPT0ocj10aGlzLmluQXBwTWVzc2FnaW5nQ29uZmlnKT92b2lkIDA6ci5hY2Nlc3NUb2tlbixjb252ZXJzYXRpb25faWQ6ZSx0YWJfaWQ6dGhpcy50YWJJZCxjb25uZWN0aW9uX3R5cGU6dGhpcy5jb25uZWN0aW9uVHlwZSgpfX0pO2Nhc2UgMTA6bnVsbCE9KG89dC5zZW50KSYmby5va3x8dGhpcy5jb25uZWN0aW9uVHlwZSgpIT09QXMuVmVyaWZpZWR8fCh0aGlzLmluZm9Mb2coInBlcmZvcm1IZWFsdGhDaGVjayIsImhlYWx0aCBjaGVjayBmYWlsZWQsIGdldHRpbmcgbmV3IHRva2VuIiksdGhpcy5nZXRUb2tlbigpKSx0Lm5leHQ9MTc7YnJlYWs7Y2FzZSAxNDp0LnByZXY9MTQsdC50MD10LmNhdGNoKDQpLHRoaXMuaW5mb0xvZygicGVyZm9ybUhlYWx0aENoZWNrIiwiZmFpbGVkIHRvIHBlcmZvcm0gaGVhbHRoIGNoZWNrIiwiZXJyb3I9Iit0LnQwKTtjYXNlIDE3OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCx0aGlzLFtbNCwxNF1dKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksby5jcmVhdGVDb252ZXJzYXRpb249ZnVuY3Rpb24oKXt2YXIgdD1OcyhqcygpLm1hcmsoKGZ1bmN0aW9uIHQoZSl7dmFyIG4scixvPXRoaXM7cmV0dXJuIGpzKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYodC5wcmV2PTAsdGhpcy5pc0FjdGl2ZVRhYigpJiZ0aGlzLmNsaWVudFN0YXRlIT09T3MuQ3JlYXRpbmdDb252ZXJzYXRpb24pe3QubmV4dD00O2JyZWFrfXJldHVybiB0aGlzLmluZm9Mb2coImNyZWF0ZUNvbnZlcnNhdGlvbiIsIm5vdCBhY3RpdmUgdGFiIG9yIGFscmVhZHkgZmV0Y2hpbmcgdG9rZW4iLCJjbGllbnRTdGF0ZT0iK3RoaXMuY2xpZW50U3RhdGUpLHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDQ6cmV0dXJuIHRoaXMuc2V0U3RhdGUoT3MuQ3JlYXRpbmdDb252ZXJzYXRpb24pLHRoaXMuaW5mb0xvZygiY3JlYXRlQ29udmVyc2F0aW9uIiwiY3JlYXRpbmcgY29udmVyc2F0aW9uIiwiY29udmVyc2F0aW9uSWQ9IitlKSx0Lm5leHQ9OCxIby5BLnBvc3Qoe3VybDooMCx1by56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvc3RhbmRhbG9uZS9zYWxlc2ZvcmNlL2NyZWF0ZV9jb252ZXJzYXRpb24iLHNlc3Npb246dGhpcy5nZXRTZXNzaW9uKCkscGFyYW1zOnthcHBfaWQ6dGhpcy5hcHBJZCxjb252ZXJzYXRpb25faWQ6ZSxhY2Nlc3NfdG9rZW46bnVsbD09KG49dGhpcy5pbkFwcE1lc3NhZ2luZ0NvbmZpZyk/dm9pZCAwOm4uYWNjZXNzVG9rZW4sdGFiX2lkOnRoaXMudGFiSWR9fSkuY2F0Y2goKGZ1bmN0aW9uKHQpe3ZhciBuPUpTT04ucGFyc2UodCkscj0obnVsbD09bj92b2lkIDA6bi5ib2R5KXx8e30saT1yLnJldHJ5X2FmdGVyO2lmKCEoci5yZXRyeWFibGUmJmkmJmk+MCkpdGhyb3cgdDtzZXRUaW1lb3V0KChmdW5jdGlvbigpe28uY3JlYXRlQ29udmVyc2F0aW9uKGUpfSksaSl9KSk7Y2FzZSA4Om51bGwhPShyPXQuc2VudCkmJnIub2smJih0aGlzLnNldFN0YXRlKE9zLkNoZWNraW5nRm9yTWVzc2FnZXMpLHRoaXMuc3Vic2NyaWJlVG9FdmVudHMoKSksdC5uZXh0PTE2O2JyZWFrO2Nhc2UgMTI6dC5wcmV2PTEyLHQudDA9dC5jYXRjaCgwKSx0aGlzLmluZm9Mb2coImNyZWF0ZUNvbnZlcnNhdGlvbiIsImZhaWxlZCB0byBjcmVhdGUgY29udmVyc2F0aW9uIiwiZXJyb3I9Iit0LnQwKSx0aGlzLnNldFN0YXRlKE9zLk5vdEluaXRpYWxpemVkKTtjYXNlIDE2OnJldHVybiB0LnByZXY9MTYsdGhpcy5jbGllbnRTdGF0ZT09PU9zLkNyZWF0aW5nQ29udmVyc2F0aW9uJiZ0aGlzLnNldFN0YXRlKE9zLk5vdEluaXRpYWxpemVkKSx0LmZpbmlzaCgxNik7Y2FzZSAxOTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsdGhpcyxbWzAsMTIsMTYsMTldXSl9KSkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG8uc2VuZE1lc3NhZ2U9ZnVuY3Rpb24oKXt2YXIgdD1OcyhqcygpLm1hcmsoKGZ1bmN0aW9uIHQoZSxuLHIpe3ZhciBvO3JldHVybiBqcygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmlmKHQucHJldj0wLG4pe3QubmV4dD00O2JyZWFrfXJldHVybiB0aGlzLmVycm9yTG9nKCJzZW5kTWVzc2FnZSIsIm1pc3NpbmcgcGFydElkLCBjYW5ub3Qgc2VuZCIsImNvbnZlcnNhdGlvbklkPSIrZSksdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgNDpyZXR1cm4gdC5uZXh0PTYsdGhpcy5yZWNvdmVyQWNjZXNzVG9rZW4oInNlbmRNZXNzYWdlIik7Y2FzZSA2OmlmKHQuc2VudCl7dC5uZXh0PTk7YnJlYWt9cmV0dXJuIHRoaXMuZXJyb3JMb2coInNlbmRNZXNzYWdlIiwibm8gYWNjZXNzIHRva2VuIGFmdGVyIHJlY292ZXJ5LCBkcm9wcGluZyBtZXNzYWdlIiwiY29udmVyc2F0aW9uSWQ9IitlLCJwYXJ0SWQ9IituKSx0LmFicnVwdCgicmV0dXJuIik7Y2FzZSA5OnJldHVybiB0Lm5leHQ9MTEsSG8uQS5wb3N0KHt1cmw6KDAsdW8uemopKCkuYXBpX2Jhc2UrIi9tZXNzZW5nZXIvd2ViL3N0YW5kYWxvbmUvc2FsZXNmb3JjZS9zZW5kX2luX2FwcF9tZXNzYWdlIixzZXNzaW9uOnRoaXMuZ2V0U2Vzc2lvbigpLHBhcmFtczp7YXBwX2lkOnRoaXMuYXBwSWQsY29udmVyc2F0aW9uX2lkOmUsYWNjZXNzX3Rva2VuOm51bGw9PShvPXRoaXMuaW5BcHBNZXNzYWdpbmdDb25maWcpP3ZvaWQgMDpvLmFjY2Vzc1Rva2VuLHBhcnRfaWQ6bix0ZXh0OnJ9fSk7Y2FzZSAxMTp0Lm5leHQ9MTY7YnJlYWs7Y2FzZSAxMzp0LnByZXY9MTMsdC50MD10LmNhdGNoKDApLHRoaXMuZXJyb3JMb2coInNlbmRNZXNzYWdlIiwiZmFpbGVkIHRvIHNlbmQgbWVzc2FnZSIsImVycm9yPSIrdC50MCwiY29udmVyc2F0aW9uSWQ9IitlLCJwYXJ0SWQ9IituKTtjYXNlIDE2OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCx0aGlzLFtbMCwxM11dKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLG8uc2VuZEZpbGU9ZnVuY3Rpb24oKXt2YXIgdD1OcyhqcygpLm1hcmsoKGZ1bmN0aW9uIHQoZSxuLHIsbyl7dmFyIGksYTtyZXR1cm4ganMoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZih0LnByZXY9MCxuKXt0Lm5leHQ9NDticmVha31yZXR1cm4gdGhpcy5lcnJvckxvZygic2VuZEZpbGUiLCJtaXNzaW5nIHBhcnRJZCwgY2Fubm90IHNlbmQiLCJjb252ZXJzYXRpb25JZD0iK2UpLHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDQ6cmV0dXJuIHQubmV4dD02LHRoaXMucmVjb3ZlckFjY2Vzc1Rva2VuKCJzZW5kRmlsZSIpO2Nhc2UgNjppZih0LnNlbnQpe3QubmV4dD05O2JyZWFrfXJldHVybiB0aGlzLmVycm9yTG9nKCJzZW5kRmlsZSIsIm5vIGFjY2VzcyB0b2tlbiBhZnRlciByZWNvdmVyeSwgZHJvcHBpbmcgZmlsZSIsImNvbnZlcnNhdGlvbklkPSIrZSwicGFydElkPSIrbiksdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgOTpyZXR1cm4gYT17YXBwX2lkOnRoaXMuYXBwSWQsY29udmVyc2F0aW9uX2lkOmUsYWNjZXNzX3Rva2VuOm51bGw9PShpPXRoaXMuaW5BcHBNZXNzYWdpbmdDb25maWcpP3ZvaWQgMDppLmFjY2Vzc1Rva2VuLHBhcnRfaWQ6bix1cmw6cn0sbyYmKGEuYXR0cmlidXRpb249byksdC5uZXh0PTEzLEhvLkEucG9zdCh7dXJsOigwLHVvLnpqKSgpLmFwaV9iYXNlKyIvbWVzc2VuZ2VyL3dlYi9zdGFuZGFsb25lL3NhbGVzZm9yY2Uvc2VuZF9maWxlIixzZXNzaW9uOnRoaXMuZ2V0U2Vzc2lvbigpLHBhcmFtczphfSk7Y2FzZSAxMzp0Lm5leHQ9MTg7YnJlYWs7Y2FzZSAxNTp0LnByZXY9MTUsdC50MD10LmNhdGNoKDApLHRoaXMuZXJyb3JMb2coInNlbmRGaWxlIiwiZmFpbGVkIHRvIHNlbmQgZmlsZSIsImVycm9yPSIrdC50MCwiY29udmVyc2F0aW9uSWQ9IitlLCJwYXJ0SWQ9IituKTtjYXNlIDE4OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCx0aGlzLFtbMCwxNV1dKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKGUsbixyLG8pe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksby5zdWJzY3JpYmVUb0V2ZW50cz1mdW5jdGlvbigpe3ZhciB0PU5zKGpzKCkubWFyaygoZnVuY3Rpb24gdCgpe3ZhciBlLG4scixvLGksYT10aGlzO3JldHVybiBqcygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnRoaXMuc3Vic2NyaWJlZFRvRXZlbnRzJiYodGhpcy5pbmZvTG9nKCJzdWJzY3JpYmVUb0V2ZW50cyIsImFscmVhZHkgc3Vic2NyaWJlZCIpLHRoaXMuZGlzY29ubmVjdEV2ZW50U291cmNlKCkpLHRoaXMuaW5mb0xvZygic3Vic2NyaWJlVG9FdmVudHMiLCJzdWJzY3JpYmluZyB0byBldmVudHMiKSxvPXRoaXMuaG9zdG5hbWUrIi9ldmVudHJvdXRlci92MS9zc2UiLGk9e0FjY2VwdDoidGV4dC9ldmVudC1zdHJlYW0iLEF1dGhvcml6YXRpb246IkJlYXJlciAiKyhudWxsPT0oZT10aGlzLmluQXBwTWVzc2FnaW5nQ29uZmlnKT92b2lkIDA6ZS5hY2Nlc3NUb2tlbiksIlgtT3JnLUlkIjp0aGlzLm9yZ2FuaXphdGlvbklkLCJMYXN0LUV2ZW50LUlkIjoobnVsbD09KG49dGhpcy5pbkFwcE1lc3NhZ2luZ0NvbmZpZyl8fG51bGw9PShuPW4ubGFzdEV2ZW50SWQpP3ZvaWQgMDpuLnRvU3RyaW5nKCkpfHwiIn0sdGhpcy5lcz1uZXcgQ3MuRyhvLHtmZXRjaDpmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbil7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHQudG9TdHJpbmcoKX0sZX0oKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZldGNoKHQsVHMoe30sZSx7aGVhZGVyczpUcyh7fSxlLmhlYWRlcnMsaSl9KSl9KSl9KSxIcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZTtudWxsPT0oZT1hLmVzKXx8ZS5hZGRFdmVudExpc3RlbmVyKHQsYS5oYW5kbGVFdmVudCl9KSksbnVsbD09KHI9dGhpcy5lcyl8fHIuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLChmdW5jdGlvbih0KXtpZihhLmluZm9Mb2coInN1YnNjcmliZVRvRXZlbnRzIiwiRXZlbnRTb3VyY2UgZXJyb3IiLCJjb2RlPSIrdC5jb2RlLCJtZXNzYWdlPSIrdC5tZXNzYWdlKSxhLmV2ZW50U291cmNlRXJyb3JDb3VudCsrLGEuZGlzY29ubmVjdEV2ZW50U291cmNlKCksIShhLmV2ZW50U291cmNlRXJyb3JDb3VudD4zKSl7dmFyIGU9TWF0aC5taW4oMWUzKk1hdGgucG93KDIsYS5ldmVudFNvdXJjZUVycm9yQ291bnQpLDFlNCk7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtVcygiW3N1YnNjcmliZVRvRXZlbnRzXSBFdmVudFNvdXJjZSByZWNvbm5lY3Rpb24iLGUpLGEuc3Vic2NyaWJlVG9FdmVudHMoKX0pLGUpfX0pKSx0aGlzLnNldFN0YXRlKE9zLkNoZWNraW5nRm9yTWVzc2FnZXMpLHRoaXMuc3Vic2NyaWJlZFRvRXZlbnRzPSEwO2Nhc2UgOTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsdGhpcyl9KSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksby5zZXRMYXN0RXZlbnRJZD1mdW5jdGlvbih0KXshdGhpcy5pbkFwcE1lc3NhZ2luZ0NvbmZpZ3x8dGhpcy5pbkFwcE1lc3NhZ2luZ0NvbmZpZyYmdGhpcy5pbkFwcE1lc3NhZ2luZ0NvbmZpZy5sYXN0RXZlbnRJZD50fHwoVXMoIltzZXRMYXN0RXZlbnRJZF0gU2V0dGluZyBsYXN0IGV2ZW50IGlkIix0KSx0aGlzLmluQXBwTWVzc2FnaW5nQ29uZmlnLmxhc3RFdmVudElkPXQsdGhpcy5zYXZlU3RhdGVUb1N0b3JhZ2UoKSl9LG8uc3RhcnRIZWFydGJlYXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMud3JpdGVIZWFydGJlYXRSZWNvcmQoKSx0aGlzLmhlYXJ0YmVhdFRpbWVyfHwodGhpcy5oZWFydGJlYXRUaW1lcj1zZXRJbnRlcnZhbCgoZnVuY3Rpb24oKXt0LmlzQWN0aXZlVGFiKCk/dC53cml0ZUhlYXJ0YmVhdFJlY29yZCgpOnQuc3RvcEhlYXJ0YmVhdCgpfSksNWUzKSl9LG8ud3JpdGVIZWFydGJlYXRSZWNvcmQ9ZnVuY3Rpb24oKXt2YXIgdD17dGFiSWQ6dGhpcy50YWJJZCxsYXN0U2VlbkF0OkRhdGUubm93KCl9O1guTC5zZXQoTG8odGhpcy5hcHBJZCksSlNPTi5zdHJpbmdpZnkodCkpfSxvLnN0b3BIZWFydGJlYXQ9ZnVuY3Rpb24oKXt0aGlzLmhlYXJ0YmVhdFRpbWVyJiYoY2xlYXJJbnRlcnZhbCh0aGlzLmhlYXJ0YmVhdFRpbWVyKSx0aGlzLmhlYXJ0YmVhdFRpbWVyPW51bGwpfSxvLnN0YXJ0VG9rZW5SZWZyZXNoVGltZXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMudXNlclZlcmlmaWNhdGlvbkVuYWJsZWQmJih0aGlzLnN0b3BUb2tlblJlZnJlc2hUaW1lcigpLHRoaXMucmVmcmVzaFRva2VuVGltZXI9c2V0SW50ZXJ2YWwoKGZ1bmN0aW9uKCl7dC5pc0FjdGl2ZVRhYigpP3QucmVmcmVzaFRva2VuSWZFeHBpcmVkKCk6dC5zdG9wVG9rZW5SZWZyZXNoVGltZXIoKX0pLDZlNCkpfSxvLnN0b3BUb2tlblJlZnJlc2hUaW1lcj1mdW5jdGlvbigpe3RoaXMucmVmcmVzaFRva2VuVGltZXImJihjbGVhckludGVydmFsKHRoaXMucmVmcmVzaFRva2VuVGltZXIpLHRoaXMucmVmcmVzaFRva2VuVGltZXI9bnVsbCl9LG8uc2V0QWN0aXZlVGFiSWQ9ZnVuY3Rpb24oKXt0aGlzLmlzQWN0aXZlVGFiKCl8fCh0aGlzLmluZm9Mb2coInNldEFjdGl2ZVRhYklkIiwic2V0dGluZyBhY3RpdmUgdGFiIGlkIiksWC5MLnNldChUbyx0aGlzLnRhYklkKSx0aGlzLnJlYWRUb2tlbkZyb21TdG9yYWdlKCksdGhpcy5zdGFydEhlYXJ0YmVhdCgpKX0sby5nZXRTdG9yYWdlS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW52aXJvbm1lbnRJZD9rbyh0aGlzLmFwcElkLHRoaXMuZW52aXJvbm1lbnRJZCk6SW8odGhpcy5hcHBJZCl9LG8uaXNBY3RpdmVUYWI9ZnVuY3Rpb24oKXtVcygiW2lzQWN0aXZlVGFiXSBDaGVja2luZyBpZiB0YWIgaXMgYWN0aXZlIixYLkwuZ2V0KFRvKSx0aGlzLnRhYklkKTt2YXIgdD1YLkwuZ2V0KFRvKT09PXRoaXMudGFiSWQ7cmV0dXJuIHR8fHRoaXMuY2hlY2tBY3RpdmVUYWJMZWFzZSgyMDAqTWF0aC5yYW5kb20oKSksdH0sby5hZGRBY3RpdmVUYWJFdmVudExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciB0LGU9dGhpczt6cy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgbjt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcih0LGUuaGFuZGxlQWN0aXZlVGFiRXZlbnQpLG51bGw9PShuPSgwLFhvLiQpKCkpfHxuLmFkZEV2ZW50TGlzdGVuZXIodCxlLmhhbmRsZUFjdGl2ZVRhYkV2ZW50KX0pKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsdGhpcy5oYW5kbGVTdG9yYWdlRXZlbnQpLG51bGw9PSh0PSgwLFhvLiQpKCkpfHx0LmFkZEV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLHRoaXMuaGFuZGxlU3RvcmFnZUV2ZW50KX0sby5yZW1vdmVBY3RpdmVUYWJFdmVudExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciB0LGU9dGhpczt6cy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgbjt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGUuaGFuZGxlQWN0aXZlVGFiRXZlbnQpLG51bGw9PShuPSgwLFhvLiQpKCkpfHxuLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxlLmhhbmRsZUFjdGl2ZVRhYkV2ZW50KX0pKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsdGhpcy5oYW5kbGVTdG9yYWdlRXZlbnQpLG51bGw9PSh0PSgwLFhvLiQpKCkpfHx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLHRoaXMuaGFuZGxlU3RvcmFnZUV2ZW50KX0sby5nZXRTZXNzaW9uPWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIG51bGw9PSh0PXRoaXMuc3RvcmUpP3ZvaWQgMDp0LmdldFN0YXRlKCkuc2Vzc2lvbn0sby5kaXNjb25uZWN0RXZlbnRTb3VyY2U9ZnVuY3Rpb24oKXt2YXIgdDtudWxsPT0odD10aGlzLmVzKXx8dC5jbG9zZSgpLHRoaXMuZXM9bnVsbCx0aGlzLnN1YnNjcmliZWRUb0V2ZW50cz0hMX0sby5zZXRTdGF0ZT1mdW5jdGlvbih0KXt0cnl7dGhpcy5jbGllbnRTdGF0ZT10LHRoaXMuc2F2ZVN0YXRlVG9TdG9yYWdlKCl9Y2F0Y2goZSl7dGhpcy5pbmZvTG9nKCJzZXRTdGF0ZSIsImZhaWxlZCB0byBzZXQgc3RhdGUiLCJlcnJvcj0iK2UsInN0YXRlPSIrdCl9fSxvLnVzZXI9ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gbnVsbD09KHQ9dGhpcy5zdG9yZSk/dm9pZCAwOnQuZ2V0U3RhdGUoKS51c2VyfSxvLnVzZXJTYWxlc2ZvcmNlSWRlbnRpdHlUb2tlbj1mdW5jdGlvbigpe3ZhciB0O3JldHVybiBudWxsPT0odD10aGlzLnVzZXIoKSl8fG51bGw9PSh0PXQuY3VzdG9tQXR0cmlidXRlcyk/dm9pZCAwOnQuc2FsZXNmb3JjZV9pZGVudGl0eV90b2tlbn0sby5jb25uZWN0aW9uVHlwZT1mdW5jdGlvbigpe3ZhciB0LGU9KG51bGw9PSh0PXRoaXMuaW5BcHBNZXNzYWdpbmdDb25maWcpfHxudWxsPT0odD10LmNvbnRleHQpfHxudWxsPT0odD10LmVuZFVzZXIpfHxudWxsPT0odD10LnN1YmplY3QpP3ZvaWQgMDp0LnRvTG93ZXJDYXNlKCkpfHwiIjtyZXR1cm4tMSE9PWUuaW5kZXhPZigiL3VuYXV0aC8iKT9Bcy5VbnZlcmlmaWVkOi0xIT09ZS5pbmRleE9mKCIvYXV0aC8iKT9Bcy5WZXJpZmllZDpBcy5Vbmtub3dufSxvLnJlYWRUb2tlbkZyb21TdG9yYWdlPWZ1bmN0aW9uKCl7dmFyIHQ7dGhpcy5pbmZvTG9nKCJyZWFkVG9rZW5Gcm9tU3RvcmFnZSIsInJlYWRpbmcgdG9rZW4gZnJvbSBzdG9yYWdlIik7dmFyIGU9dGhpcy5nZXRTdG9yYWdlS2V5KCksbj1YLkwuZ2V0KGUpO2lmKG4pe3ZhciByPUpTT04ucGFyc2Uobik7bnVsbCE9ciYmbnVsbCE9KHQ9ci5pbkFwcE1lc3NhZ2luZ0NvbmZpZykmJnQuYWNjZXNzVG9rZW4/KHRoaXMuaW5BcHBNZXNzYWdpbmdDb25maWc9ci5pbkFwcE1lc3NhZ2luZ0NvbmZpZyx0aGlzLmxhc3RUb2tlblJlc2V0VGltZT1yLmxhc3RUb2tlblJlc2V0VGltZXx8MCx0aGlzLmluZm9Mb2coInJlYWRUb2tlbkZyb21TdG9yYWdlIiwiZm91bmQgdG9rZW4gaW4gc3RvcmFnZSwgdXBkYXRlZCIpKTp0aGlzLmluZm9Mb2coInJlYWRUb2tlbkZyb21TdG9yYWdlIiwibm8gdG9rZW4gZm91bmQgaW4gc3RvcmFnZSIpfWVsc2UgdGhpcy5pbmZvTG9nKCJyZWFkVG9rZW5Gcm9tU3RvcmFnZSIsIm5vIGNsaWVudCBzdGF0ZSBmb3VuZCIpfSxvLnNhdmVTdGF0ZVRvU3RvcmFnZT1mdW5jdGlvbigpe2lmKHRoaXMuaXNBY3RpdmVUYWIoKSl7dmFyIHQ9dGhpcy5nZXRTdG9yYWdlS2V5KCk7WC5MLnNldCh0LEpTT04uc3RyaW5naWZ5KHthcHBJZDp0aGlzLmFwcElkLGhvc3RuYW1lOnRoaXMuaG9zdG5hbWUsb3JnYW5pemF0aW9uSWQ6dGhpcy5vcmdhbml6YXRpb25JZCxlbnZpcm9ubWVudElkOnRoaXMuZW52aXJvbm1lbnRJZCxjbGllbnRTdGF0ZTp0aGlzLmNsaWVudFN0YXRlLGluQXBwTWVzc2FnaW5nQ29uZmlnOnRoaXMuaW5BcHBNZXNzYWdpbmdDb25maWcsbGFzdFRva2VuUmVzZXRUaW1lOnRoaXMubGFzdFRva2VuUmVzZXRUaW1lLHVzZXJWZXJpZmljYXRpb25FbmFibGVkOnRoaXMudXNlclZlcmlmaWNhdGlvbkVuYWJsZWR9KSl9ZWxzZSBVcygiW3NhdmVTdGF0ZVRvU3RvcmFnZV0gTm90IGFjdGl2ZSB0YWIsIHNraXBwaW5nIHNhdmUiKX0sby5yZWNvdmVyQWNjZXNzVG9rZW49ZnVuY3Rpb24oKXt2YXIgdD1OcyhqcygpLm1hcmsoKGZ1bmN0aW9uIHQoZSl7dmFyIG4scixvLGk7cmV0dXJuIGpzKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYobnVsbD09KG49dGhpcy5pbkFwcE1lc3NhZ2luZ0NvbmZpZyl8fCFuLmFjY2Vzc1Rva2VuKXt0Lm5leHQ9MjticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMjppZih0aGlzLnJlYWRUb2tlbkZyb21TdG9yYWdlKCksbnVsbD09KHI9dGhpcy5pbkFwcE1lc3NhZ2luZ0NvbmZpZyl8fCFyLmFjY2Vzc1Rva2VuKXt0Lm5leHQ9NjticmVha31yZXR1cm4gdGhpcy5pbmZvTG9nKGUsInJlY292ZXJlZCBhY2Nlc3MgdG9rZW4gZnJvbSBzdG9yYWdlIiksdC5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgNjpyZXR1cm4gdC5uZXh0PTgsdGhpcy5nZXRUb2tlbigpO2Nhc2UgODppZihudWxsPT0obz10aGlzLmluQXBwTWVzc2FnaW5nQ29uZmlnKXx8IW8uYWNjZXNzVG9rZW4pe3QubmV4dD0xMTticmVha31yZXR1cm4gdGhpcy5pbmZvTG9nKGUsInJlY292ZXJlZCBhY2Nlc3MgdG9rZW4gdmlhIGZldGNoIiksdC5hYnJ1cHQoInJldHVybiIsITApO2Nhc2UgMTE6aWYodGhpcy5yZWFkVG9rZW5Gcm9tU3RvcmFnZSgpLG51bGw9PShpPXRoaXMuaW5BcHBNZXNzYWdpbmdDb25maWcpfHwhaS5hY2Nlc3NUb2tlbil7dC5uZXh0PTE1O2JyZWFrfXJldHVybiB0aGlzLmluZm9Mb2coZSwicmVjb3ZlcmVkIGFjY2VzcyB0b2tlbiBmcm9tIGNvbmN1cnJlbnQgZmV0Y2giKSx0LmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAxNTpyZXR1cm4gdC5hYnJ1cHQoInJldHVybiIsITEpO2Nhc2UgMTY6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LHRoaXMpfSkpKTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxvLmJ1aWxkTG9nZ2luZ1N0cmluZz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbixyLG89KG51bGw9PShuPXRoaXMuaW5BcHBNZXNzYWdpbmdDb25maWcpfHxudWxsPT0obj1uLmFjY2Vzc1Rva2VuKT92b2lkIDA6bi5zbGljZSgtNikpfHwibnVsbCIsaT0iIixhPWFyZ3VtZW50cy5sZW5ndGgsdT1uZXcgQXJyYXkoYT4yP2EtMjowKSxzPTI7czxhO3MrKyl1W3MtMl09YXJndW1lbnRzW3NdO3JldHVybiB1Lmxlbmd0aD4wJiYoaT0iIFsiK3UubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCl9KSkuam9pbigiXSBbIikrIl0iKSwiW2FwcF9pZD0iK3RoaXMuYXBwSWQrIl0gW3Rva2VuPSIrbysiXSBbdXNlcl9pZD0iKyhudWxsPT0ocj10aGlzLnVzZXIoKSk/dm9pZCAwOnIuaWQpKyJdIFt0YWJJZD0iK3RoaXMudGFiSWQrIl0gW21ldGhvZD0iK3QrIl0gW2lzQWN0aXZlVGFiPSIrdGhpcy5pc0FjdGl2ZVRhYigpKyJdICIrZStpfSxvLmluZm9Mb2c9ZnVuY3Rpb24odCxlKXt0cnl7Zm9yKHZhciBuPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkobj4yP24tMjowKSxvPTI7bzxuO28rKylyW28tMl09YXJndW1lbnRzW29dO3ZhciBpPXRoaXMuYnVpbGRMb2dnaW5nU3RyaW5nLmFwcGx5KHRoaXMsW3QsZV0uY29uY2F0KHIpKTsoMCxWLkEyKShpKSxVcyhpKX1jYXRjaCh0KXsoMCxWLnVvKSgiW2luZm9Mb2ddIGZhaWxlZCB0byBsb2cgaW5mbyBlcnJvcj0iK3QpfX0sby5lcnJvckxvZz1mdW5jdGlvbih0LGUpe3RyeXtmb3IodmFyIG49YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShuPjI/bi0yOjApLG89MjtvPG47bysrKXJbby0yXT1hcmd1bWVudHNbb107dmFyIGk9dGhpcy5idWlsZExvZ2dpbmdTdHJpbmcuYXBwbHkodGhpcyxbdCxlXS5jb25jYXQocikpOygwLFYudW8pKGkpLFVzKGkpfWNhdGNoKHQpeygwLFYudW8pKCJbZXJyb3JMb2ddIGZhaWxlZCB0byBsb2cgZXJyb3IgZXJyb3I9Iit0KX19LGU9dCxuJiZNcyhlLnByb3RvdHlwZSxuKSxyJiZNcyhlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGV9KCk7ZnVuY3Rpb24gRHModCl7cmV0dXJuIERzPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxEcyh0KX1mdW5jdGlvbiBCcygpe0JzPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3ZhciB0LGU9e30sbj1PYmplY3QucHJvdG90eXBlLHI9bi5oYXNPd25Qcm9wZXJ0eSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24odCxlLG4pe3RbZV09bi52YWx1ZX0saT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxhPWkuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIix1PWkuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIscz1pLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gYyh0LGUsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtjKHt9LCIiKX1jYXRjaCh0KXtjPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1ufX1mdW5jdGlvbiBsKHQsZSxuLHIpe3ZhciBpPWUmJmUucHJvdG90eXBlIGluc3RhbmNlb2YgZz9lOmcsYT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSx1PW5ldyBMKHJ8fFtdKTtyZXR1cm4gbyhhLCJfaW52b2tlIix7dmFsdWU6Tyh0LG4sdSl9KSxhfWZ1bmN0aW9uIGYodCxlLG4pe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6dC5jYWxsKGUsbil9fWNhdGNoKHQpe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOnR9fX1lLndyYXA9bDt2YXIgZD0ic3VzcGVuZGVkU3RhcnQiLHA9InN1c3BlbmRlZFlpZWxkIixoPSJleGVjdXRpbmciLHY9ImNvbXBsZXRlZCIseT17fTtmdW5jdGlvbiBnKCl7fWZ1bmN0aW9uIG0oKXt9ZnVuY3Rpb24gYigpe312YXIgdz17fTtjKHcsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgXz1PYmplY3QuZ2V0UHJvdG90eXBlT2YsUz1fJiZfKF8oVChbXSkpKTtTJiZTIT09biYmci5jYWxsKFMsYSkmJih3PVMpO3ZhciB4PWIucHJvdG90eXBlPWcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodyk7ZnVuY3Rpb24gRSh0KXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2ModCxlLChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW52b2tlKGUsdCl9KSl9KSl9ZnVuY3Rpb24gQyh0LGUpe2Z1bmN0aW9uIG4obyxpLGEsdSl7dmFyIHM9Zih0W29dLHQsaSk7aWYoInRocm93IiE9PXMudHlwZSl7dmFyIGM9cy5hcmcsbD1jLnZhbHVlO3JldHVybiBsJiYib2JqZWN0Ij09RHMobCkmJnIuY2FsbChsLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGwuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCxhLHUpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LGEsdSl9KSk6ZS5yZXNvbHZlKGwpLnRoZW4oKGZ1bmN0aW9uKHQpe2MudmFsdWU9dCxhKGMpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCxhLHUpfSkpfXUocy5hcmcpfXZhciBpO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIE8oZSxuLHIpe3ZhciBvPWQ7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PWgpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09dil7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9QSh1LHIpO2lmKHMpe2lmKHM9PT15KWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWQpdGhyb3cgbz12LHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz1oO3ZhciBjPWYoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT92OnAsYy5hcmc9PT15KWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89dixyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIEEoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LEEoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSkseTt2YXIgaT1mKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwseTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwseSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCx5KX1mdW5jdGlvbiBJKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIGsodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIEwodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChJLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFQoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW2FdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGk9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBpLm5leHQ9aX19dGhyb3cgbmV3IFR5cGVFcnJvcihEcyhlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiBtLnByb3RvdHlwZT1iLG8oeCwiY29uc3RydWN0b3IiLHt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMH0pLG8oYiwiY29uc3RydWN0b3IiLHt2YWx1ZTptLGNvbmZpZ3VyYWJsZTohMH0pLG0uZGlzcGxheU5hbWU9YyhiLHMsIkdlbmVyYXRvckZ1bmN0aW9uIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT1tfHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxiKToodC5fX3Byb3RvX189YixjKHQscywiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh4KSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSxFKEMucHJvdG90eXBlKSxjKEMucHJvdG90eXBlLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPUMsZS5hc3luYz1mdW5jdGlvbih0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBDKGwodCxuLHIsbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sRSh4KSxjKHgscywiR2VuZXJhdG9yIiksYyh4LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksYyh4LCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPVQsTC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkwscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKGspLCFlKWZvcih2YXIgbiBpbiB0aGlzKSJ0Ij09PW4uY2hhckF0KDApJiZyLmNhbGwodGhpcyxuKSYmIWlzTmFOKCtuLnNsaWNlKDEpKSYmKHRoaXNbbl09dCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgbj10aGlzO2Z1bmN0aW9uIG8ocixvKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5hcmc9ZSxuLm5leHQ9cixvJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sdT1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPXIuY2FsbChhLCJjYXRjaExvYyIpLGM9ci5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZihzJiZjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFjKXRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIG89dGhpcy50cnlFbnRyaWVzW25dO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJnIuY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZpLnRyeUxvYzw9ZSYmZTw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyx5KTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLHl9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksayhuKSx5fX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBvPXIuYXJnO2sobil9cmV0dXJuIG99fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOlQoZSkscmVzdWx0TmFtZTpuLG5leHRMb2M6cn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSx5fX0sZX1mdW5jdGlvbiBWcyh0LGUsbixyLG8saSxhKXt0cnl7dmFyIHU9dFtpXShhKSxzPXUudmFsdWV9Y2F0Y2godCl7cmV0dXJuIHZvaWQgbih0KX11LmRvbmU/ZShzKTpQcm9taXNlLnJlc29sdmUocykudGhlbihyLG8pfXZhciBHcz1mdW5jdGlvbigpe3ZhciB0LGU9KHQ9QnMoKS5tYXJrKChmdW5jdGlvbiB0KGUpe3ZhciBuO3JldHVybiBCcygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmlmKG49ZS5nZXRTdGF0ZSgpLnNlc3Npb24pe3QubmV4dD0zO2JyZWFrfXJldHVybiB0LmFicnVwdCgicmV0dXJuIik7Y2FzZSAzOnJldHVybiB0Lm5leHQ9NSxIby5BLnBvc3Qoe3VybDooMCx1by56aikoKS5hcGlfYmFzZSsiL21lc3Nlbmdlci93ZWIvc3RhbmRhbG9uZS9zYWxlc2ZvcmNlL2dldF9pbmFwcF9jb25maWciLHNlc3Npb246bixwYXJhbXM6e2FwcF9pZDpuLmFwcElkfX0pO2Nhc2UgNTpyZXR1cm4gdC5hYnJ1cHQoInJldHVybiIsdC5zZW50KTtjYXNlIDY6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSxmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBhKHQpe1ZzKGkscixvLGEsdSwibmV4dCIsdCl9ZnVuY3Rpb24gdSh0KXtWcyhpLHIsbyxhLHUsInRocm93Iix0KX1hKHZvaWQgMCl9KSl9KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtmdW5jdGlvbiBxcyh0KXtyZXR1cm4gcXM9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHFzKHQpfWZ1bmN0aW9uIFdzKCl7V3M9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixzPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Moe30sIiIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGwodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBnP2U6ZyxhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IEwocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpPKHQsbix1KX0pLGF9ZnVuY3Rpb24gZih0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1sO3ZhciBkPSJzdXNwZW5kZWRTdGFydCIscD0ic3VzcGVuZGVkWWllbGQiLGg9ImV4ZWN1dGluZyIsdj0iY29tcGxldGVkIix5PXt9O2Z1bmN0aW9uIGcoKXt9ZnVuY3Rpb24gbSgpe31mdW5jdGlvbiBiKCl7fXZhciB3PXt9O2ModyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciBfPU9iamVjdC5nZXRQcm90b3R5cGVPZixTPV8mJl8oXyhUKFtdKSkpO1MmJlMhPT1uJiZyLmNhbGwoUyxhKSYmKHc9Uyk7dmFyIHg9Yi5wcm90b3R5cGU9Zy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh3KTtmdW5jdGlvbiBFKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Yyh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBDKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgcz1mKHRbb10sdCxpKTtpZigidGhyb3ciIT09cy50eXBlKXt2YXIgYz1zLmFyZyxsPWMudmFsdWU7cmV0dXJuIGwmJiJvYmplY3QiPT1xcyhsKSYmci5jYWxsKGwsIl9fYXdhaXQiKT9lLnJlc29sdmUobC5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LGEsdSl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsYSx1KX0pKTplLnJlc29sdmUobCkudGhlbigoZnVuY3Rpb24odCl7Yy52YWx1ZT10LGEoYyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LGEsdSl9KSl9dShzLmFyZyl9dmFyIGk7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gTyhlLG4scil7dmFyIG89ZDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09aCl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT12KXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1BKHUscik7aWYocyl7aWYocz09PXkpY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09ZCl0aHJvdyBvPXYsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPWg7dmFyIGM9ZihlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP3Y6cCxjLmFyZz09PXkpY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz12LHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gQShlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsQShlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSx5O3ZhciBpPWYobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCx5O3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCx5KTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLHkpfWZ1bmN0aW9uIEkodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gayh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gTCh0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEksdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gVChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbYV07aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKHFzKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIG0ucHJvdG90eXBlPWIsbyh4LCJjb25zdHJ1Y3RvciIse3ZhbHVlOmIsY29uZmlndXJhYmxlOiEwfSksbyhiLCJjb25zdHJ1Y3RvciIse3ZhbHVlOm0sY29uZmlndXJhYmxlOiEwfSksbS5kaXNwbGF5TmFtZT1jKGIscywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PW18fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGIpOih0Ll9fcHJvdG9fXz1iLGModCxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHgpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LEUoQy5wcm90b3R5cGUpLGMoQy5wcm90b3R5cGUsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QyxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEMobCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxFKHgpLGMoeCxzLCJHZW5lcmF0b3IiKSxjKHgsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxjKHgsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9VCxMLnByb3RvdHlwZT17Y29uc3RydWN0b3I6TCxyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goayksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLHkpOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSkseX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxrKG4pLHl9fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7ayhuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6VChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLHl9fSxlfWZ1bmN0aW9uIEtzKHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gWnModCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7S3MoaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpe0tzKGkscixvLGEsdSwidGhyb3ciLHQpfWEodm9pZCAwKX0pKX19ZnVuY3Rpb24gSnMoKXtyZXR1cm4gSnM9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxKcy5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFlzLFFzPUEoKSgiaW50ZXJjb20uc3RhbmRhbG9uZS5taWRkbGV3YXJlLnNhbGVzZm9yY2UtbWVzc2FnaW5nIiksWHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5hcHBJZCxuPXQuaG9zdG5hbWUscj10Lm9yZ2FuaXphdGlvbklkLG89dC51c2VyVmVyaWZpY2F0aW9uRW5hYmxlZCxpPXQuZW52aXJvbm1lbnRJZCxhPXQuc3RvcmUsdT10LmRpc3BhdGNoLHM9dC5pbkFwcE1lc3NhZ2luZ0NvbmZpZztyZXR1cm4gWXM9bmV3IEZzKHthcHBJZDplLGhvc3RuYW1lOm4sb3JnYW5pemF0aW9uSWQ6cix1c2VyVmVyaWZpY2F0aW9uRW5hYmxlZDpvLGVudmlyb25tZW50SWQ6aSxzdG9yZTphLGRpc3BhdGNoOnUsaW5BcHBNZXNzYWdpbmdDb25maWc6c30pfSwkcz1mdW5jdGlvbih0LGUpe3ZhciBuO2lmKFlzKXJldHVybiBZcy5zdG9yZT10LFlzO3ZhciByPW51bGw9PShuPXQuZ2V0U3RhdGUoKS5zZXNzaW9uKT92b2lkIDA6bi5hcHBJZDtpZihyKXt2YXIgbz1mdW5jdGlvbih0LGUpe3JldHVybiBQbyh0KSxlP1guTC5nZXQoa28odCxlKSk6WC5MLmdldChJbyh0KSl9KHIsKDAsa3MudSkoKSk7aWYobyl7dmFyIGk7dHJ5e2k9SlNPTi5wYXJzZShvKSx0JiYoaS5zdG9yZT10KX1jYXRjaCh0KXtyZXR1cm59cmV0dXJuIFhzKEpzKHt1c2VyVmVyaWZpY2F0aW9uRW5hYmxlZDohMX0saSx7ZGlzcGF0Y2g6ZSxzdG9yZTp0fSkpfX19LHRjPWZ1bmN0aW9uKCl7dmFyIHQ9WnMoV3MoKS5tYXJrKChmdW5jdGlvbiB0KGUsbil7dmFyIHIsbyxpLGEsdSxzLGMsbDtyZXR1cm4gV3MoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZigocj1lLmdldFN0YXRlKCkpLnNlc3Npb24pe3QubmV4dD0zO2JyZWFrfXJldHVybiB0LmFicnVwdCgicmV0dXJuIik7Y2FzZSAzOnJldHVybiB0Lm5leHQ9NSxHcyhlKTtjYXNlIDU6aWYobnVsbCE9KG89dC5zZW50KSYmby5vayl7dC5uZXh0PTg7YnJlYWt9cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDg6cmV0dXJuIGk9by5ib2R5LGE9aS5ob3N0bmFtZSx1PWkub3JnYW5pemF0aW9uSWQscz1pLnVzZXJWZXJpZmljYXRpb25FbmFibGVkLGM9aS5lbnZpcm9ubWVudElkZW50aWZpZXIsbD0oMCxrcy51KSgpfHxjLHQuYWJydXB0KCJyZXR1cm4iLFhzKHthcHBJZDpyLnNlc3Npb24uYXBwSWQsaG9zdG5hbWU6YSxvcmdhbml6YXRpb25JZDp1LHVzZXJWZXJpZmljYXRpb25FbmFibGVkOnMsZW52aXJvbm1lbnRJZDpsLGRpc3BhdGNoOm4sc3RvcmU6ZX0pKTtjYXNlIDExOmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCl9KSkpO3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7dmFyIGVjLG5jPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gWnMoV3MoKS5tYXJrKChmdW5jdGlvbiBuKHIpe3ZhciBvLGksYSx1LHMsYyxsLGYsZCxwLGgsdix5LGcsbSxiLHcsXyxTLHgsRSxDLE8sQSxJLGssTCxULGosUCxOLE0sUixVLHosSDtyZXR1cm4gV3MoKS53cmFwKChmdW5jdGlvbihuKXtmb3IoOzspc3dpdGNoKG4ucHJldj1uLm5leHQpe2Nhc2UgMDpvPWUociksaT1yLHU9KGE9dCkuZGlzcGF0Y2gsbi50MD1pLnR5cGUsbi5uZXh0PW4udDA9PT1GLkx2UD83Om4udDA9PT1GLlJ3cT8xOTpuLnQwPT09Ri51dkl8fG4udDA9PT1GLmZFQ3x8bi50MD09PUYubUdYPzI0Om4udDA9PT1GLkhNdT80MjpuLnQwPT09Ri5OZmI/ODI6ODU7YnJlYWs7Y2FzZSA3OmlmKGM9KHM9aSkuY29udmVyc2F0aW9uSWQsbD1zLmhvc3RuYW1lLGY9cy5vcmdhbml6YXRpb25JZCxkPXMudXNlclZlcmlmaWNhdGlvbkVuYWJsZWQscD0kcyhhLHUpKXtuLm5leHQ9MTU7YnJlYWt9aWYodj1udWxsPT0oaD1hLmdldFN0YXRlKCkuc2Vzc2lvbik/dm9pZCAwOmguYXBwSWQpe24ubmV4dD0xNDticmVha310aHJvdyBuZXcgRXJyb3IoIkFwcCBpZCBub3QgcHJlc2VudCBpbiBTZXNzaW9uIik7Y2FzZSAxNDpwPVhzKHtob3N0bmFtZTpsLG9yZ2FuaXphdGlvbklkOmYsYXBwSWQ6dix1c2VyVmVyaWZpY2F0aW9uRW5hYmxlZDpkLGRpc3BhdGNoOnUsc3RvcmU6YX0pO2Nhc2UgMTU6cmV0dXJuIHk9KDAsZW8udmUpKGEuZ2V0U3RhdGUoKSksZz0hIXkuYWx3YXlzR2V0U2FsZXNmb3JjZVRva2VuLHAuaGFuZG92ZXJUb1NhbGVzZm9yY2UoTnVtYmVyKGMpLGcpLG4uYWJydXB0KCJicmVhayIsODUpO2Nhc2UgMTk6aWYobT0kcyhhLHUpKXtuLm5leHQ9MjI7YnJlYWt9cmV0dXJuIG4uYWJydXB0KCJicmVhayIsODUpO2Nhc2UgMjI6cmV0dXJuIG0uZ2V0T3JVcGRhdGVUb2tlbigpLG4uYWJydXB0KCJicmVhayIsODUpO2Nhc2UgMjQ6aWYodz0oYj1pKS5jb252ZXJzYXRpb25zLF89Yi5jb252ZXJzYXRpb24sUz0obnVsbD09dz92b2lkIDA6dy5jb252ZXJzYXRpb25zKXx8W19dLHg9Uy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3ZhciBlPSJzdGF0ZV9jbG9zZWQiPT09KG51bGw9PXQ/dm9pZCAwOnQuc3RhdGUpfHwobnVsbD09dD92b2lkIDA6dC5wcmV2ZW50RW5kVXNlclJlcGxpZXMpO3JldHVybihudWxsPT10P3ZvaWQgMDp0LmVzY2FsYXRlZFRvU2FsZXNmb3JjZSkmJiFlfSkpLDAhPT14Lmxlbmd0aCl7bi5uZXh0PTI5O2JyZWFrfXJldHVybiBuLmFicnVwdCgiYnJlYWsiLDg1KTtjYXNlIDI5OmlmKEU9JHMoYSx1KSl7bi5uZXh0PTQwO2JyZWFrfXJldHVybiBRcygidW5hYmxlIHRvIGdldCBjbGllbnQgdXNpbmcgc3RvcmFnZSwgZmV0Y2hpbmcgY29uZmlnIiksbi5uZXh0PTM0LHRjKGEsdSk7Y2FzZSAzNDppZihFPW4uc2VudCl7bi5uZXh0PTM4O2JyZWFrfXJldHVybiBRcygiZmFpbGVkIHRvIGdldCBjbGllbnQgdXNpbmcgY29uZmlnIiksbi5hYnJ1cHQoImJyZWFrIiw4NSk7Y2FzZSAzODpyZXR1cm4gbi5uZXh0PTQwLEUuZ2V0T3JVcGRhdGVUb2tlbigpO2Nhc2UgNDA6cmV0dXJuIHguZm9yRWFjaCgoZnVuY3Rpb24odCl7aWYodClpZih0LnNhbGVzZm9yY2VfZXh0ZXJuYWxfcmVmZXJlbmNlKVFzKCJwZXJmb3JtaW5nIGhlYWx0aCBjaGVjayBmb3IgY29udmVyc2F0aW9uICVzIix0LmlkKSxFLnBlcmZvcm1IZWFsdGhDaGVjayhOdW1iZXIodC5pZCkpO2Vsc2V7dmFyIGU9am8oYS5nZXRTdGF0ZSgpLnVzZXIpO1FzKCJoYW5kaW5nIG92ZXIgY29udmVyc2F0aW9uICVzIix0LmlkLGUpLHUoSnIoZSxFLmhvc3RuYW1lLHQuaWQsRS5vcmdhbml6YXRpb25JZCxFLnVzZXJWZXJpZmljYXRpb25FbmFibGVkKSl9fSkpLG4uYWJydXB0KCJicmVhayIsODUpO2Nhc2UgNDI6aWYoQz1pLnBhcnQsQT0oTz1DKS5ib2R5LEk9Ty5pZCxrPU51bWJlcihpLmNvbnZlcnNhdGlvbklkKSxMPSRzKGEsdSkpe24ubmV4dD00ODticmVha31yZXR1cm4gbi5hYnJ1cHQoImJyZWFrIiw4NSk7Y2FzZSA0ODppZihUPWEuZ2V0U3RhdGUoKSxudWxsIT0oaj0oMCxWci5WTikoVCxpLmNvbnZlcnNhdGlvbklkKSkmJmouZXNjYWxhdGVkVG9TYWxlc2ZvcmNlKXtuLm5leHQ9NTI7YnJlYWt9cmV0dXJuIG4uYWJydXB0KCJicmVhayIsODUpO2Nhc2UgNTI6UD0wO2Nhc2UgNTM6aWYoIShQPChBfHxbXSkubGVuZ3RoKSl7bi5uZXh0PTgxO2JyZWFrfU49QVtQXSxNPUkrIl8iK1Asbi50MT1OLnR5cGUsbi5uZXh0PSJwYXJhZ3JhcGgiPT09bi50MT81OToiaW1hZ2UiPT09bi50MT82MzoiYXR0YWNobWVudExpc3QiPT09bi50MT82Nzo3ODticmVhaztjYXNlIDU5OmlmKCFOLnRleHR8fCFMLnNlbmRNZXNzYWdlKXtuLm5leHQ9NjI7YnJlYWt9cmV0dXJuIG4ubmV4dD02MixMLnNlbmRNZXNzYWdlKGssTSxOLnRleHQpO2Nhc2UgNjI6cmV0dXJuIG4uYWJydXB0KCJicmVhayIsNzgpO2Nhc2UgNjM6aWYoISgidXJsImluIE4mJk4udXJsJiZMLnNlbmRGaWxlKSl7bi5uZXh0PTY2O2JyZWFrfXJldHVybiBuLm5leHQ9NjYsTC5zZW5kRmlsZShrLE0sTi51cmwsImF0dHJpYnV0aW9uImluIE4/Ti5hdHRyaWJ1dGlvbjp2b2lkIDApO2Nhc2UgNjY6cmV0dXJuIG4uYWJydXB0KCJicmVhayIsNzgpO2Nhc2UgNjc6aWYoISgiYXR0YWNobWVudHMiaW4gTiYmQXJyYXkuaXNBcnJheShOLmF0dGFjaG1lbnRzKSYmTC5zZW5kRmlsZSkpe24ubmV4dD03NzticmVha31SPTA7Y2FzZSA2OTppZighKFI8Ti5hdHRhY2htZW50cy5sZW5ndGgpKXtuLm5leHQ9Nzc7YnJlYWt9aWYoISgidXJsImluKFU9Ti5hdHRhY2htZW50c1tSXSkpfHwhVS51cmwpe24ubmV4dD03NDticmVha31yZXR1cm4gbi5uZXh0PTc0LEwuc2VuZEZpbGUoayxNKyJfIitSLFUudXJsLHZvaWQgMCk7Y2FzZSA3NDpSKyssbi5uZXh0PTY5O2JyZWFrO2Nhc2UgNzc6cmV0dXJuIG4uYWJydXB0KCJicmVhayIsNzgpO2Nhc2UgNzg6UCsrLG4ubmV4dD01MzticmVhaztjYXNlIDgxOnJldHVybiBuLmFicnVwdCgiYnJlYWsiLDg1KTtjYXNlIDgyOnJldHVybihIPSRzKGEsdSkpJiYidmlzaWJsZSI9PT0obnVsbD09KHo9d2luZG93LnBhcmVudCk/dm9pZCAwOnouZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlKSYmSC5zZXRBY3RpdmVUYWJJZCgpLG4uYWJydXB0KCJicmVhayIsODUpO2Nhc2UgODU6cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iLG8pO2Nhc2UgODY6Y2FzZSJlbmQiOnJldHVybiBuLnN0b3AoKX19KSxuKX0pKSl9fSxyYz1uKDk0MjE0KSxvYz1uKDU0MjQ4KSxpYz1uKDQ2NDk1KSxhYz1BKCkoImludGVyY29tLm1pZGRsZXdhcmUubWVzc2VuZ2VyLWZvcm0tY2hhbmdlIiksdWM9ZnVuY3Rpb24odCl7cmV0dXJuKDAsaWMubUIpKHQpPyJmaW5fb25seSI6ImNsYXNzaWMifSxzYz1bRi5Sd3EsUy50ei50eXBlXSxjYz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciByPXQuZ2V0U3RhdGUoKSxpPXVjKHIpLGE9ZShuKTtpZigoMCxKLnZlKShuKSYmZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1zYy5pbmRleE9mKHQudHlwZSl9KG4pKXt2YXIgdT10LmdldFN0YXRlKCkscz11Yyh1KTtpZihpPT09cylyZXR1cm4gYTtpZigiZmluX29ubHkiPT09cyYmKDAscC5ZKSh1KSl7YWMoIkF1dG8tb3BlbmluZyBtZXNzZW5nZXI6IGZvcm1DaGFuZ2VkPSIrcysiLCBpc1Nwb3RsaWdodFNoZWxsVmlzaWJsZT0iKygwLHAuWSkodSkrIiwgYWN0aW9uVHlwZT0iK24udHlwZSk7dmFyIGM9KDAsb2MuQlUpKHUpLGw9ci5hcHAuaXNNZXNzZW5nZXJPcGVuP0FuLmN5LnZpc2libGU6QW4uY3kuc2hyaW5rZWQsZj1uZXcgVVJMKGMsImh0dHA6Ly9wbGFjZWhvbGRlciIpO2Yuc2VhcmNoUGFyYW1zLnNldCgidmlzaWJpbGl0eSIsbCksdC5kaXNwYXRjaCgoMCxvLkhDKShmLnBhdGhuYW1lKyI/IitmLnNlYXJjaFBhcmFtcy50b1N0cmluZygpKSksdC5kaXNwYXRjaCgoMCxyYy5xeSkoKSl9fXJldHVybiBhfX19LGxjPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHIsbz1lKG4pO2lmKCEoMCxKLnZlKShuKXx8bi50eXBlIT09Ri5KNEMpcmV0dXJuIG87dmFyIGk9dC5nZXRTdGF0ZSgpLGE9KDAsbXIuVnkpKGkpO2lmKCFhKXJldHVybiBvO3ZhciB1PW51bGw9PShyPWkuY29udmVyc2F0aW9ucyk/dm9pZCAwOnIuYnlJZFthXTtyZXR1cm4obnVsbD09dT92b2lkIDA6dS5pc0ZldGNoaW5nKXx8dC5kaXNwYXRjaCgoMCxyby5RTCkoXy5BeSxhLHtpc1VwZGF0aW5nOiEwLHJlcXVlc3RPcmlnaW46Ik1lc3NlbmdlciBvcGVuIG9uIGNvbnZlcnNhdGlvbiByb3V0ZSJ9KSksb319fSxmYz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciByPWUobik7aWYoISgwLEoudmUpKG4pKXJldHVybiByO2lmKCgwLGVvLm1uKSh0LmdldFN0YXRlKCkpKXJldHVybiByO2lmKG4udHlwZT09PUYuSjRDKXt2YXIgbz10LmdldFN0YXRlKCk7by5hcHAuaXNCb290ZWQmJigwLG9jLkFlKShvKSYmKCgwLFYub1MpKCJtZXNzZW5nZXJfb3Blbl9zYWZldHlfbmV0X2Rpc3BhdGNoIix7dHJpZ2dlcjoiT1BFTl9NRVNTRU5HRVIifSksdC5kaXNwYXRjaCgoMCxvdC5XRikoKSkpfWlmKG4udHlwZT09PUYuUndxKXt2YXIgaT10LmdldFN0YXRlKCksYT0oMCxtci5vUCkoaSksdT0hYXx8Ii9sb2FkaW5nIj09PWEscz1pLmFwcC5vcGVuUmVxdWVzdEluRmxpZ2h0U2luY2UsYz0hIXMmJkRhdGUubm93KCktczw9b3QubzAsbD1pLmFwcC5pc01lc3Nlbmdlck9wZW4mJmkuYXBwLm9wZW5Db250ZW50TG9hZGluZ0ZhaWxlZCYmIWM7KGkuYXBwLmlzTWVzc2VuZ2VyT3BlbiYmdSYmKDAsb2MuQWUpKGkpfHxsKSYmKCgwLFYub1MpKCJtZXNzZW5nZXJfb3Blbl9zYWZldHlfbmV0X2Rpc3BhdGNoIix7dHJpZ2dlcjoiQ1JFQVRFX09SX1VQREFURV9VU0VSX1NVQ0NFU1MifSksdC5kaXNwYXRjaCgoMCxvdC5XRikoKSkpfXJldHVybiByfX19LGRjPW4oNzUxMjEpLHBjPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHI9ZShuKSxvPW47aWYoby50eXBlPT09Ri5XRXgpe3ZhciBpLGE9bnVsbD09KGk9by5jdXN0b21pemF0aW9uQXR0cmlidXRlcyk/dm9pZCAwOmkudGhlbWVNb2RlO2EmJnQuZGlzcGF0Y2goKDAsZGMuSCkoYSkpfXJldHVybiByfX19LGhjPWZ1bmN0aW9uKHQpe3ZhciBlLG4scj1mdW5jdGlvbih0KXt2YXIgcj10LnVzZXIsbz10LmNvb2tpZSxpPXQuYXBwSWQsYT10LmRvbWFpbix1PXQuYW5vbnltb3VzSWQscz10LmFub255bW91c1Nlc3Npb24sbD10LmFub255bW91c1Nlc3Npb25EdXJhdGlvbixmPXQuY3Jvc3NTaXRlQ29va2llcyxkPXQuY29va2llU2VjdXJlRmxhZyxwPXQuc2Vzc2lvbkV4cGlyeTtpZihScihlLHUpKXt2YXIgaD16cihsLCgwLElyLlBDKShyKT9OcjpQcik7VXIobywoMCxjLktLKShpKSx1LGgsYSxmLGQpLGU9dX1pZihScihuLHMpKXt2YXIgdj16cihsLE1yKSx5PXA7VXIobywoMCxjLkxBKShpKSxzLHYsYSxmLGQseSksbj1zfXZhciBnPW8ucmVhZCgoMCxjLnI0KShpKSl8fGtyLkEuZ2VuZXJhdGVVVUlEKCk7VXIobywoMCxjLnI0KShpKSxnLFByLGEsZixkKX07cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24obyl7dmFyIGk9byxhPWUuZ2V0U3RhdGUoKTtpZihmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlPT09Ri5Sd3F9KGkpKXtpZighYS5zZXNzaW9uKXJldHVybjt2YXIgdT1hLnNlc3Npb24uYXBwSWQscz1hLnVzZXIuYW5vbnltb3VzU2Vzc2lvbkR1cmF0aW9uLGw9aS51c2VyLGY9bC5hbm9ueW1vdXNJZCxkPWwuYW5vbnltb3VzU2Vzc2lvbixwPWwuc2Vzc2lvbkV4cGlyeSxoPWkudXNlci5hcHAub3JpZ2luQ29va2llRG9tYWluLHY9aS51c2VyLmFwcC5mZWF0dXJlcyx5PXYuY3Jvc3NTaXRlQ29va2llcyxnPXYuY29va2llU2VjdXJlRmxhZyxtPUhyKHtkb21haW5TZXR0aW5nOmEuYXBwLmNvb2tpZURvbWFpbixvcmlnaW5Db29raWVEb21haW46aCxtZXRhOnthY3Rpb246aS50eXBlLHJvbGU6aS51c2VyJiZpLnVzZXIucm9sZX19KTtyKHt1c2VyOmkudXNlcixjb29raWU6dCxhcHBJZDp1LGRvbWFpbjptLGFub255bW91c0lkOmYsYW5vbnltb3VzU2Vzc2lvbjpkLGFub255bW91c1Nlc3Npb25EdXJhdGlvbjpzLGNyb3NzU2l0ZUNvb2tpZXM6bnVsbCE9eSYmeSxjb29raWVTZWN1cmVGbGFnOm51bGwhPWcmJmcsc2Vzc2lvbkV4cGlyeTpwfSl9ZWxzZSBpZihmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlPT09Ri5xalN9KGkpKXt2YXIgYj1hLnNlc3Npb24sdz1hLmFwcC5vcmlnaW5Db29raWVEb21haW4sXz1Icih7ZG9tYWluU2V0dGluZzphLmFwcC5jb29raWVEb21haW4sb3JpZ2luQ29va2llRG9tYWluOncsbWV0YTp7YWN0aW9uOmkudHlwZSxyb2xlOmEudXNlciYmYS51c2VyLnJvbGV9fSk7aWYoYiYmaS5jbGVhckNvb2tpZXMpe3ZhciBTPWIuYXBwSWQ7dC5jbGVhcigoMCxjLkxBKShTKSx7ZG9tYWluOl8scGF0aDpUcn0pLHQuY2xlYXIoKDAsYy5LSykoUykse2RvbWFpbjpfLHBhdGg6VHJ9KSx0LmNsZWFyKCgwLGMubnUpKCkse2RvbWFpbjpfLHBhdGg6VHJ9KX19ZWxzZSBpZihmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlPT09Ri5vUDl9KGkpKXtpZighYS5zZXNzaW9uKXJldHVybiBuKG8pO3ZhciB4PWEuc2Vzc2lvbi5hcHBJZCxFPWEuYXBwLmZlYXR1cmVzLEM9RS5jcm9zc1NpdGVDb29raWVzLE89RS5jb29raWVTZWN1cmVGbGFnLEE9SHIoe2RvbWFpblNldHRpbmc6YS5hcHAuY29va2llRG9tYWluLG9yaWdpbkNvb2tpZURvbWFpbjphLmFwcC5vcmlnaW5Db29raWVEb21haW4sbWV0YTp7YWN0aW9uOmkudHlwZX19KTtyKHt1c2VyOmEudXNlcixjb29raWU6dCxhcHBJZDp4LGRvbWFpbjpBLGFub255bW91c1Nlc3Npb246aS5hbm9ueW1vdXNTZXNzaW9uLGFub255bW91c1Nlc3Npb25EdXJhdGlvbjpudWxsLGNyb3NzU2l0ZUNvb2tpZXM6bnVsbCE9QyYmQyxjb29raWVTZWN1cmVGbGFnOm51bGwhPU8mJk8sc2Vzc2lvbkV4cGlyeTppLnNlc3Npb25FeHBpcnl9KX1yZXR1cm4gbihvKX19fX0oYS5BKSx2Yz11YSgoZnVuY3Rpb24odCl7dmFyIGUsbj10LmFwcCxyPW4uc2VsZlNlcnZlU3VnZ2VzdGlvbnNNYXRjaCxvPW4ub3BlbkNvbmZpZyxpPW4ubmFtZSxhPW4uZmVhdHVyZXMsdT1hLmFub255bW91c0luYm91bmRNZXNzYWdlcyxzPWEuZ29vZ2xlQW5hbHl0aWNzLGM9YS5odWJzcG90SW5zdGFsbGVkLGw9YS5pbmJvdW5kTWVzc2FnZXMsZj1hLm1hcmtldG9FbnJpY2htZW50SW5zdGFsbGVkLGQ9YS5nb29nbGVBbmFseXRpY3M0SW50ZWdyYXRpb24scD1hLmltcHJvdmVPcGVuQmVoYXZpb3IsaD1uLmhlbHBDZW50ZXJTaXRlVXJsLHY9bi5pbmJvdW5kQ29udmVyc2F0aW9uc0Rpc2FibGVkLHk9bi5pc0RldmVsb3BlcldvcmtzcGFjZSxnPW4uY3VzdG9tR29vZ2xlQW5hbHl0aWNzVHJhY2tlcklkLG09dC5sYXVuY2hlci5pc0xhdW5jaGVyRW5hYmxlZCxiPXQubGF1bmNoZXJTZXR0aW5ncyx3PXQubWVzc2FnZS5jb252ZXJzYXRpb25JZCxfPXQub3Blbk9uQm9vdCxTPV8udHlwZSx4PV8ubWV0YWRhdGEsRT10LnVzZXIsQz1FLmlkLE89RS5yb2xlLEE9RS5sb2NhbGUsST1FLmhhc0NvbnZlcnNhdGlvbnMsaz10LnJvdXRlcixMPXQuY29udmVyc2F0aW9ucyxUPXQubGF1bmNoZXJEaXNjb3ZlcnlNb2RlLGo9TD9MLmJ5SWQ6e307cmV0dXJue2FwcDp7b3BlbkNvbmZpZzpvLHNlbGZTZXJ2ZVN1Z2dlc3Rpb25zTWF0Y2g6cixuYW1lOmksZmVhdHVyZXM6e2Fub255bW91c0luYm91bmRNZXNzYWdlczp1LGdvb2dsZUFuYWx5dGljczpzLGh1YnNwb3RJbnN0YWxsZWQ6YyxpbmJvdW5kTWVzc2FnZXM6bCxtYXJrZXRvRW5yaWNobWVudEluc3RhbGxlZDpmLGdvb2dsZUFuYWx5dGljczRJbnRlZ3JhdGlvbjpkLGltcHJvdmVPcGVuQmVoYXZpb3I6cH0saGVscENlbnRlclNpdGVVcmw6aCxpbmJvdW5kQ29udmVyc2F0aW9uc0Rpc2FibGVkOnYsaXNEZXZlbG9wZXJXb3Jrc3BhY2U6eSxjdXN0b21Hb29nbGVBbmFseXRpY3NUcmFja2VySWQ6Z30sbGF1bmNoZXI6e2lzTGF1bmNoZXJFbmFibGVkOm19LGxhdW5jaGVyRGlzY292ZXJ5TW9kZTp7aGFzRGlzY292ZXJlZExhdW5jaGVyOm51bGwhPShlPW51bGw9PVQ/dm9pZCAwOlQuaGFzRGlzY292ZXJlZExhdW5jaGVyKSYmZX0sbGF1bmNoZXJTZXR0aW5nczpiLHVzZXI6e2lkOkMscm9sZTpPLGxvY2FsZTpBLGhhc0NvbnZlcnNhdGlvbnM6SX0sbWVzc2FnZTp7Y29udmVyc2F0aW9uSWQ6d30sY29udmVyc2F0aW9uczp7YnlJZDpLaShqKX0sb3Blbk9uQm9vdDp7dHlwZTpTLG1ldGFkYXRhOngsbGFzdE9wZW5BdFRpbWVzdGFtcDpEYXRlLm5vdygpfSxvcGVyYXRvcjp7bGFzdENvbXBvc2VyRXZlbnQ6V2kodCl9LHJvdXRlcjprfX0pKSx5Yz0oMCxaLk5jKSgpOygwLHljLnN0YXJ0TGlzdGVuaW5nKSh7cHJlZGljYXRlOkFhLGVmZmVjdDooZWM9T2EoRWEoKS5tYXJrKChmdW5jdGlvbiB0KGUsbil7dmFyIHIsbyxpLGEsdSxzO3JldHVybiBFYSgpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmlmKG89ZS5jb252ZXJzYXRpb25JZCxpPWUucGFydCxhPWkuY2xpZW50SWQpe3QubmV4dD00O2JyZWFrfXJldHVybiB0LmFicnVwdCgicmV0dXJuIik7Y2FzZSA0OnJldHVybiB1PW8rIjo6IithLG51bGw9PShyPWthLmdldCh1KSl8fHIuY2FuY2VsKCkscz1uLmZvcmsoT2EoRWEoKS5tYXJrKChmdW5jdGlvbiB0KGUpe3JldHVybiBFYSgpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB0Lm5leHQ9MixlLmRlbGF5KDFlNCk7Y2FzZSAyOmlmKElhKG4uZ2V0U3RhdGUoKSxvLGEpKXt0Lm5leHQ9NDticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgNDooMCxWLm9TKSgiY29udmVyc2F0aW9uX3BhcnRfc3RyZWFtaW5nX3RpbWVvdXQiKSxuLmRpc3BhdGNoKCgwLHJvLktNKSh7Y29udmVyc2F0aW9uSWQ6byxjbGllbnRJZDphfSkpO2Nhc2UgNjpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQpfSkpKSksa2Euc2V0KHUscyksdC5uZXh0PTEwLHMucmVzdWx0O2Nhc2UgMTA6a2EuZ2V0KHUpPT09cyYma2EuZGVsZXRlKHUpO2Nhc2UgMTE6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSksZnVuY3Rpb24odCxlKXtyZXR1cm4gZWMuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9KTt2YXIgZ2M9ZnVuY3Rpb24odCl7dmFyIGU9ZWEoe3VwZGF0ZVJlYWx0aW1lQ2xpZW50OnppLHNodXRkb3duUmVhbHRpbWVDbGllbnQ6UmksZ2V0Q29udmVyc2F0aW9uOnJvLlFMLHVzZXJDb250ZW50U2VlbkJ5QWRtaW46cm8uZTgsYWRtaW5Jc1R5cGluZzpyby5CaCxjb252ZXJzYXRpb25SZWFkRWxzZXdoZXJlOnJvLnNfLHJldHJ5UmVhbHRpbWVDbGllbnQ6VWkscGVyZm9ybUhlYWx0aENoZWNrOkRpfSksbj1RaSh7Y2FwdHVyZUVycm9yOnMubDIsc2FmZUNvbnNvbGVFcnJvcjp1LmpQLGludGVyY29tQ2xpZW50Ol8uQXl9KTtyZXR1cm4oMCxaLlUxKSh7cmVkdWNlcjppcixwcmVsb2FkZWRTdGF0ZTp0LGRldlRvb2xzOiExLG1pZGRsZXdhcmU6ZnVuY3Rpb24odCl7cmV0dXJuIHQoe3RodW5rOiEwLGltbXV0YWJsZUNoZWNrOiExLHNlcmlhbGl6YWJsZUNoZWNrOiExfSkucHJlcGVuZCh5Yy5taWRkbGV3YXJlKS5jb25jYXQoW1BhLFNhLE9yLGUsbixoYyxzYSxzLmVWLFNzLHhzLG5jLGNjLGxjLGZjLHBjXSl9LGVuaGFuY2VyczpmdW5jdGlvbih0KXtyZXR1cm4gdCgpLmNvbmNhdChbdmMsWmkoKV0pfX0pfTtmdW5jdGlvbiBtYyh0KXtyZXR1cm4gbWM9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LG1jKHQpfWZ1bmN0aW9uIGJjKCl7YmM9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dmFyIHQsZT17fSxuPU9iamVjdC5wcm90b3R5cGUscj1uLmhhc093blByb3BlcnR5LG89T2JqZWN0LmRlZmluZVByb3BlcnR5fHxmdW5jdGlvbih0LGUsbil7dFtlXT1uLnZhbHVlfSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGE9aS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLHU9aS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIixzPWkudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKHQsZSxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pLHRbZV19dHJ5e2Moe30sIiIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0W2VdPW59fWZ1bmN0aW9uIGwodCxlLG4scil7dmFyIGk9ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBnP2U6ZyxhPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLHU9bmV3IEwocnx8W10pO3JldHVybiBvKGEsIl9pbnZva2UiLHt2YWx1ZTpPKHQsbix1KX0pLGF9ZnVuY3Rpb24gZih0LGUsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGFyZzp0LmNhbGwoZSxuKX19Y2F0Y2godCl7cmV0dXJue3R5cGU6InRocm93Iixhcmc6dH19fWUud3JhcD1sO3ZhciBkPSJzdXNwZW5kZWRTdGFydCIscD0ic3VzcGVuZGVkWWllbGQiLGg9ImV4ZWN1dGluZyIsdj0iY29tcGxldGVkIix5PXt9O2Z1bmN0aW9uIGcoKXt9ZnVuY3Rpb24gbSgpe31mdW5jdGlvbiBiKCl7fXZhciB3PXt9O2ModyxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpO3ZhciBfPU9iamVjdC5nZXRQcm90b3R5cGVPZixTPV8mJl8oXyhUKFtdKSkpO1MmJlMhPT1uJiZyLmNhbGwoUyxhKSYmKHc9Uyk7dmFyIHg9Yi5wcm90b3R5cGU9Zy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh3KTtmdW5jdGlvbiBFKHQpe1sibmV4dCIsInRocm93IiwicmV0dXJuIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7Yyh0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnZva2UoZSx0KX0pKX0pKX1mdW5jdGlvbiBDKHQsZSl7ZnVuY3Rpb24gbihvLGksYSx1KXt2YXIgcz1mKHRbb10sdCxpKTtpZigidGhyb3ciIT09cy50eXBlKXt2YXIgYz1zLmFyZyxsPWMudmFsdWU7cmV0dXJuIGwmJiJvYmplY3QiPT1tYyhsKSYmci5jYWxsKGwsIl9fYXdhaXQiKT9lLnJlc29sdmUobC5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LGEsdSl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQsYSx1KX0pKTplLnJlc29sdmUobCkudGhlbigoZnVuY3Rpb24odCl7Yy52YWx1ZT10LGEoYyl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LGEsdSl9KSl9dShzLmFyZyl9dmFyIGk7byh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihlLG8pe24odCxyLGUsbyl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fSl9ZnVuY3Rpb24gTyhlLG4scil7dmFyIG89ZDtyZXR1cm4gZnVuY3Rpb24oaSxhKXtpZihvPT09aCl0aHJvdyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2lmKG89PT12KXtpZigidGhyb3ciPT09aSl0aHJvdyBhO3JldHVybnt2YWx1ZTp0LGRvbmU6ITB9fWZvcihyLm1ldGhvZD1pLHIuYXJnPWE7Oyl7dmFyIHU9ci5kZWxlZ2F0ZTtpZih1KXt2YXIgcz1BKHUscik7aWYocyl7aWYocz09PXkpY29udGludWU7cmV0dXJuIHN9fWlmKCJuZXh0Ij09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoInRocm93Ij09PXIubWV0aG9kKXtpZihvPT09ZCl0aHJvdyBvPXYsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtvPWg7dmFyIGM9ZihlLG4scik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKG89ci5kb25lP3Y6cCxjLmFyZz09PXkpY29udGludWU7cmV0dXJue3ZhbHVlOmMuYXJnLGRvbmU6ci5kb25lfX0idGhyb3ciPT09Yy50eXBlJiYobz12LHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9Yy5hcmcpfX19ZnVuY3Rpb24gQShlLG4pe3ZhciByPW4ubWV0aG9kLG89ZS5pdGVyYXRvcltyXTtpZihvPT09dClyZXR1cm4gbi5kZWxlZ2F0ZT1udWxsLCJ0aHJvdyI9PT1yJiZlLml0ZXJhdG9yLnJldHVybiYmKG4ubWV0aG9kPSJyZXR1cm4iLG4uYXJnPXQsQShlLG4pLCJ0aHJvdyI9PT1uLm1ldGhvZCl8fCJyZXR1cm4iIT09ciYmKG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIityKyInIG1ldGhvZCIpKSx5O3ZhciBpPWYobyxlLml0ZXJhdG9yLG4uYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBuLm1ldGhvZD0idGhyb3ciLG4uYXJnPWkuYXJnLG4uZGVsZWdhdGU9bnVsbCx5O3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8obltlLnJlc3VsdE5hbWVdPWEudmFsdWUsbi5uZXh0PWUubmV4dExvYywicmV0dXJuIiE9PW4ubWV0aG9kJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLG4uZGVsZWdhdGU9bnVsbCx5KTphOihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0Iiksbi5kZWxlZ2F0ZT1udWxsLHkpfWZ1bmN0aW9uIEkodCl7dmFyIGU9e3RyeUxvYzp0WzBdfTsxIGluIHQmJihlLmNhdGNoTG9jPXRbMV0pLDIgaW4gdCYmKGUuZmluYWxseUxvYz10WzJdLGUuYWZ0ZXJMb2M9dFszXSksdGhpcy50cnlFbnRyaWVzLnB1c2goZSl9ZnVuY3Rpb24gayh0KXt2YXIgZT10LmNvbXBsZXRpb258fHt9O2UudHlwZT0ibm9ybWFsIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gTCh0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sdC5mb3JFYWNoKEksdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gVChlKXtpZihlfHwiIj09PWUpe3ZhciBuPWVbYV07aWYobilyZXR1cm4gbi5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiBuKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKHIuY2FsbChlLG8pKXJldHVybiBuLnZhbHVlPWVbb10sbi5kb25lPSExLG47cmV0dXJuIG4udmFsdWU9dCxuLmRvbmU9ITAsbn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKG1jKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIG0ucHJvdG90eXBlPWIsbyh4LCJjb25zdHJ1Y3RvciIse3ZhbHVlOmIsY29uZmlndXJhYmxlOiEwfSksbyhiLCJjb25zdHJ1Y3RvciIse3ZhbHVlOm0sY29uZmlndXJhYmxlOiEwfSksbS5kaXNwbGF5TmFtZT1jKGIscywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY29uc3RydWN0b3I7cmV0dXJuISFlJiYoZT09PW18fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGIpOih0Ll9fcHJvdG9fXz1iLGModCxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHgpLHR9LGUuYXdyYXA9ZnVuY3Rpb24odCl7cmV0dXJue19fYXdhaXQ6dH19LEUoQy5wcm90b3R5cGUpLGMoQy5wcm90b3R5cGUsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9QyxlLmFzeW5jPWZ1bmN0aW9uKHQsbixyLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEMobCh0LG4scixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKG4pP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9uZT90LnZhbHVlOmEubmV4dCgpfSkpfSxFKHgpLGMoeCxzLCJHZW5lcmF0b3IiKSxjKHgsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxjKHgsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KHQpLG49W107Zm9yKHZhciByIGluIGUpbi5wdXNoKHIpO3JldHVybiBuLnJldmVyc2UoKSxmdW5jdGlvbiB0KCl7Zm9yKDtuLmxlbmd0aDspe3ZhciByPW4ucG9wKCk7aWYociBpbiBlKXJldHVybiB0LnZhbHVlPXIsdC5kb25lPSExLHR9cmV0dXJuIHQuZG9uZT0hMCx0fX0sZS52YWx1ZXM9VCxMLnByb3RvdHlwZT17Y29uc3RydWN0b3I6TCxyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goayksIWUpZm9yKHZhciBuIGluIHRoaXMpInQiPT09bi5jaGFyQXQoMCkmJnIuY2FsbCh0aGlzLG4pJiYhaXNOYU4oK24uc2xpY2UoMSkpJiYodGhpc1tuXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgdD10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciBuPXRoaXM7ZnVuY3Rpb24gbyhyLG8pe3JldHVybiB1LnR5cGU9InRocm93Iix1LmFyZz1lLG4ubmV4dD1yLG8mJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSx1PWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9ci5jYWxsKGEsImNhdGNoTG9jIiksYz1yLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfX19fSxhYnJ1cHQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl07aWYoby50cnlMb2M8PXRoaXMucHJldiYmci5jYWxsKG8sImZpbmFsbHlMb2MiKSYmdGhpcy5wcmV2PG8uZmluYWxseUxvYyl7dmFyIGk9bzticmVha319aSYmKCJicmVhayI9PT10fHwiY29udGludWUiPT09dCkmJmkudHJ5TG9jPD1lJiZlPD1pLmZpbmFsbHlMb2MmJihpPW51bGwpO3ZhciBhPWk/aS5jb21wbGV0aW9uOnt9O3JldHVybiBhLnR5cGU9dCxhLmFyZz1lLGk/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9aS5maW5hbGx5TG9jLHkpOnRoaXMuY29tcGxldGUoYSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHQsZSl7aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4iYnJlYWsiPT09dC50eXBlfHwiY29udGludWUiPT09dC50eXBlP3RoaXMubmV4dD10LmFyZzoicmV0dXJuIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSkseX0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKG4uY29tcGxldGlvbixuLmFmdGVyTG9jKSxrKG4pLHl9fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi50cnlMb2M9PT10KXt2YXIgcj1uLmNvbXBsZXRpb247aWYoInRocm93Ij09PXIudHlwZSl7dmFyIG89ci5hcmc7ayhuKX1yZXR1cm4gb319dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6VChlKSxyZXN1bHROYW1lOm4sbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXQpLHl9fSxlfWZ1bmN0aW9uIHdjKHQsZSxuLHIsbyxpLGEpe3RyeXt2YXIgdT10W2ldKGEpLHM9dS52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBuKHQpfXUuZG9uZT9lKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gX2ModCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7dmFyIGk9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGEodCl7d2MoaSxyLG8sYSx1LCJuZXh0Iix0KX1mdW5jdGlvbiB1KHQpe3djKGkscixvLGEsdSwidGhyb3ciLHQpfWEodm9pZCAwKX0pKX19dmFyIFNjPUEoKSgiaW50ZXJjb20uYWN0aW9ucy5wYWdlLXZpZXctZXZlbnQiKSx4Yz0oMCx3LlM0KSgicGFnZS12aWV3LWV2ZW50L2NyZWF0ZSIsX2MoYmMoKS5tYXJrKChmdW5jdGlvbiB0KGUsbil7dmFyIHIsbyxpO3JldHVybiBiYygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmlmKHI9bi5nZXRTdGF0ZSgpLChvPSgwLEMueEgpKCgwLEMueDgpKCkpKSYmIUVjKHIudXNlcixvKSl7dC5uZXh0PTU7YnJlYWt9cmV0dXJuIFNjKCJEdXBsaWNhdGUgcGFnZSB2aWV3IGV2ZW50LCBza2lwcGluZyIpLHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDU6cmV0dXJuIGk9ci5zZXNzaW9uLHQubmV4dD04LF8uQXkuY3JlYXRlUGFnZVZpZXdFdmVudCh7Y3VycmVudFVybDpvLHNlc3Npb246aX0pO2Nhc2UgODpyZXR1cm4gdC5hYnJ1cHQoInJldHVybiIsdC5zZW50KTtjYXNlIDk6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSkpLEVjPSgwLEUuUCkoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHt1cmw6ZSx1c2VyX2lkOnQuaWR9KX0pLDNlNSwyNSksQ2M9e2NyZWF0ZTp4YyxyZXNldERlZHVwOkVjLnJlc2V0fSxPYz1uKDMzNDcyKSxBYz1uKDc4NjUzKSxJYz1uKDMxNDAxKTtmdW5jdGlvbiBrYyh0LGUpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fSh0KXx8ZnVuY3Rpb24odCxlKXt2YXIgbj1udWxsPT10P251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxhLHU9W10scz0hMCxjPSExO3RyeXtpZihpPShuPW4uY2FsbCh0KSkubmV4dCwwPT09ZSl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47cz0hMX1lbHNlIGZvcig7IShzPShyPWkuY2FsbChuKSkuZG9uZSkmJih1LnB1c2goci52YWx1ZSksdS5sZW5ndGghPT1lKTtzPSEwKTt9Y2F0Y2godCl7Yz0hMCxvPXR9ZmluYWxseXt0cnl7aWYoIXMmJm51bGwhPW4ucmV0dXJuJiYoYT1uLnJldHVybigpLE9iamVjdChhKSE9PWEpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIHV9fSh0LGUpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gTGModCxlKTt2YXIgbj17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/TGModCxlKTp2b2lkIDB9fSh0LGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gTGModCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfXZhciBUYz0iI0ludGVyY29tRGVmYXVsdFdpZGdldCIsamM9WyJhcHBfaWQiLCJ1c2VyX2lkIiwiZW1haWwiLCJ1c2VyX2hhc2giLCJzZXNzaW9uX2R1cmF0aW9uIiwiY3VzdG9tX2RhdGEiLCJ1c2VyX2RhdGEiLCJ3aWRnZXQiLCJjdXN0b21fbGF1bmNoZXJfc2VsZWN0b3IiLCJoaWRlX2RlZmF1bHRfbGF1bmNoZXIiLCJlbWJlZF9tZXNzZW5nZXIiLCJhbGlnbm1lbnQiLCJhdXRvX29wZW4iLCJleHBhbmRfbWVzc2VuZ2VyIiwiaG9yaXpvbnRhbF9wYWRkaW5nIiwidmVydGljYWxfcGFkZGluZyIsImNvb2tpZV9kb21haW4iLCJiYWNrZ3JvdW5kX2NvbG9yIiwiYWN0aW9uX2NvbG9yIiwiYXBpX2Jhc2UiLCJwYWdlX3RpdGxlIiwiaW5zdGFsbGF0aW9uX3R5cGUiLCJpbnN0YWxsYXRpb25fdmVyc2lvbiIsInpfaW5kZXgiLCJwcm9kdWN0X3RvdXJzX3pfaW5kZXgiLCJkaXNhYmxlZCIsImhhbmRvZmZfd2l0aF9qYXZhc2NyaXB0IiwiYXV0aF90b2tlbnMiLCJoaWRlX2NvbnZlcnNhdGlvbl9oZWFkZXIiLCJoaWRlX25vdGlmaWNhdGlvbnMiLCJoaWRlX2Nsb3NlX2J1dHRvbiIsImhpZGVfZ3JhZGllbnQiLCJ0aGVtZV9tb2RlIiwibWVzc2VuZ2VyX3dpZHRoIiwibWVzc2VuZ2VyX2hlaWdodCIsIm1lc3Nlbmdlcl9lbnZpcm9ubWVudCIsIm1lc3Nlbmdlcl9zdHlsZV9pZCIsInN1Z2dlc3Rpb25zIiwiZG9fbm90X3NocmluayIsIm1lc3Nlbmdlcl9sYXlvdXQiLCJkZW1vX21vZGUiLCJsaW5rX2NvbG9yIiwiY29tcG9zZXJfc3Ryb2tlIl07ZnVuY3Rpb24gUGModCl7cmV0dXJuISgwLGdlLkkpKHQpfWZ1bmN0aW9uIE5jKHQpe3JldHVybiBqYy5pbmRleE9mKHQpPDB9ZnVuY3Rpb24gTWModCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZpbHRlcihOYykuZmlsdGVyKFBjKS5yZWR1Y2UoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHZvaWQgMCE9PXRbbl0mJihlW25dPXRbbl0pLGV9KSx7fSl9ZnVuY3Rpb24gUmModCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZpbHRlcihQYykucmVkdWNlKChmdW5jdGlvbihlLG4pe3ZhciByPXRbbl07cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10fShyKSYmKGVbbl09ciksZX0pLHt9KX1mdW5jdGlvbiBVYyh0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihmdW5jdGlvbih0KXtyZXR1cm4gdC5jdXN0b21fZGF0YT9NYyh0LmN1c3RvbV9kYXRhKTp7fX0odCksTWModCkpfWZ1bmN0aW9uIHpjKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZih0LnVzZXJfZGF0YSlyZXR1cm4gUmMoe2FwcElkOnQuYXBwX2lkLGVtYWlsOnQudXNlcl9kYXRhLmVtYWlsLHVzZXJJZDp0LnVzZXJfZGF0YS51c2VyX2lkLHVzZXJIYXNoOnQudXNlcl9kYXRhLnVzZXJfaGFzaCxpbnRlcmNvbVVzZXJKd3Q6dC51c2VyX2RhdGEuaW50ZXJjb21fdXNlcl9qd3QsbWVzc2VuZ2VyU3R5bGVJZDp0Lm1lc3Nlbmdlcl9zdHlsZV9pZH0pfSh0KXx8ZnVuY3Rpb24odCl7cmV0dXJuIFJjKHthcHBJZDp0LmFwcF9pZCxlbWFpbDp0LmVtYWlsLHVzZXJJZDp0LnVzZXJfaWQsdXNlckhhc2g6dC51c2VyX2hhc2gsaW50ZXJjb21Vc2VySnd0OnQuaW50ZXJjb21fdXNlcl9qd3QsbWVzc2VuZ2VyU3R5bGVJZDp0Lm1lc3Nlbmdlcl9zdHlsZV9pZH0pfSh0KX1mdW5jdGlvbiBIYyh0KXtyZXR1cm4gdCYmdC53aWRnZXQmJiEoMCxnZS5JKSh0LndpZGdldC5hY3RpdmF0b3IpJiZ0LndpZGdldC5hY3RpdmF0b3IhPT1UYz90LndpZGdldC5hY3RpdmF0b3I6bnVsbH1mdW5jdGlvbiBGYyh0KXtyZXR1cm4oMCxnZS5JKSh0LmN1c3RvbV9sYXVuY2hlcl9zZWxlY3Rvcik/SGModCk6dC5jdXN0b21fbGF1bmNoZXJfc2VsZWN0b3J9ZnVuY3Rpb24gRGModCl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdC5oaWRlX2RlZmF1bHRfbGF1bmNoZXI/dC5oaWRlX2RlZmF1bHRfbGF1bmNoZXI/ImhpZGUiOiJzaG93IjpmdW5jdGlvbih0KXtyZXR1cm4gdC53aWRnZXQmJnQud2lkZ2V0LmFjdGl2YXRvcj09PVRjPyJzaG93Ijoibm90LXByZXNlbnQifSh0KX1mdW5jdGlvbiBCYyh0KXt2YXIgZT17YWxpZ25tZW50OnQuYWxpZ25tZW50LGF1dG9PcGVuOnQuYXV0b19vcGVuLGhvcml6b250YWxQYWRkaW5nOnQuaG9yaXpvbnRhbF9wYWRkaW5nLHZlcnRpY2FsUGFkZGluZzp0LnZlcnRpY2FsX3BhZGRpbmcsY29va2llRG9tYWluOnQuY29va2llX2RvbWFpbixlbWJlZE1lc3Nlbmdlcjp0LmVtYmVkX21lc3NlbmdlcixleHBhbmRNZXNzZW5nZXI6dC5leHBhbmRfbWVzc2VuZ2VyLGNvbG9yOnQuYWN0aW9uX2NvbG9yLHNlY29uZGFyeUNvbG9yOnQuYmFja2dyb3VuZF9jb2xvcix6SW5kZXg6dC56X2luZGV4LHByb2R1Y3RUb3Vyc1pJbmRleDp0LnByb2R1Y3RfdG91cnNfel9pbmRleCxoaWRlQ29udmVyc2F0aW9uSGVhZGVyOnQuaGlkZV9jb252ZXJzYXRpb25faGVhZGVyLGhpZGVOb3RpZmljYXRpb25zOnQuaGlkZV9ub3RpZmljYXRpb25zLGhpZGVDbG9zZUJ1dHRvbjp0LmhpZGVfY2xvc2VfYnV0dG9uLGhpZGVHcmFkaWVudDp0LmhpZGVfZ3JhZGllbnQsdGhlbWVNb2RlOnQudGhlbWVfbW9kZSxsYXVuY2hlclRleHQ6dC5sYXVuY2hlcl90ZXh0LG1lc3NlbmdlckxheW91dDp0Lm1lc3Nlbmdlcl9sYXlvdXQsbWVzc2VuZ2VyV2lkdGg6dC5tZXNzZW5nZXJfd2lkdGgsbWVzc2VuZ2VySGVpZ2h0OnQubWVzc2VuZ2VyX2hlaWdodCxjb3JuZXJTdHlsZTp0LmNvcm5lcl9zdHlsZSxnbG93Q29sb3I6dC5nbG93X2NvbG9yLGNvbXBvc2VyU3Ryb2tlOnQuY29tcG9zZXJfc3Ryb2tlLHNob3dCb29rTWVldGluZ0J1dHRvbjp0LnNob3dfYm9va19tZWV0aW5nX2J1dHRvbixzdWdnZXN0aW9uczp0LnN1Z2dlc3Rpb25zLGRvTm90U2hyaW5rOnQuZG9fbm90X3NocmluayxsaW5rQ29sb3I6dC5saW5rX2NvbG9yfTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGUpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PWZ1bmN0aW9uKHQsZSxuKXtpZihlJiYhQXJyYXkuaXNBcnJheShlKSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aCl7dmFyIHI9ZS5sZW5ndGg7cmV0dXJuIExjKGUsdm9pZCAwIT09biYmbjxyP246cil9cmV0dXJuIHQoZSxuKX0oa2MsdCwyKVsxXX0pKSl9dmFyIFZjPW4oMzIzNTApLEdjPW4oOTU1NjUpLHFjPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdC5zZWxmIT09dC50b3B9Y2F0Y2godCl7cmV0dXJuITF9fSxXYz1mdW5jdGlvbih0KXt0cnl7dmFyIGUsbjtyZXR1cm4obnVsbCE9KGU9bnVsbD09KG49dC5kb2N1bWVudC5ib2R5KXx8bnVsbD09KG49bi50ZXh0KT92b2lkIDA6bi5sZW5ndGgpP2U6MCk+MH1jYXRjaCh0KXtyZXR1cm4hMX19O2Z1bmN0aW9uIEtjKHQsZSl7dmFyIG49InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG4pcmV0dXJuKG49bi5jYWxsKHQpKS5uZXh0LmJpbmQobik7aWYoQXJyYXkuaXNBcnJheSh0KXx8KG49ZnVuY3Rpb24odCxlKXtpZih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIFpjKHQsZSk7dmFyIG49e30udG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbSh0KToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP1pjKHQsZSk6dm9pZCAwfX0odCkpfHxlJiZ0JiYibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKXtuJiYodD1uKTt2YXIgcj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiByPj10Lmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6dFtyKytdfX19dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfWZ1bmN0aW9uIFpjKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn12YXIgSmM9ZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCgvWz8jXS8pWzBdLG49ZS5zbGljZShlLmxhc3RJbmRleE9mKCIvIikrMSk7cmV0dXJuIi5qcyIhPT1uLnNsaWNlKC0zKT9udWxsOjA9PT1uLmluZGV4T2YoImZyYW1lIik/ImZyYW1lIjowPT09bi5pbmRleE9mKCJ2ZW5kb3IiKT8idmVuZG9yIjpudWxsfSxZYz0hMSxRYz1uKDkwOTM2KSxYYz1uKDQwMTI3KTt2YXIgJGM9bigyNjcwMyksdGw9big3MDQwMCksZWw9bigyMTEyOSksbmw9big4Nzc5OSkscmw9big0NTM4Nyksb2w9bnVsbDtmdW5jdGlvbiBpbCh0KXtvbD8oMCx1by5iNSkoKSYmY29uc29sZS5lcnJvcigiQmVmb3JlIHVubG9hZCBzdWJzY3JpcHRpb24gYWxyZWFkeSBleGlzdHMsIG5vdCBhZGRpbmcgY3VycmVudCBjYWxsYmFjayEiKToob2w9ZnVuY3Rpb24oKXt0KCl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLG9sKSl9dmFyIGFsPW4oMTc3NzcpLHVsPW4oMzQ5NDYpLHNsPW4oODgxMTQpLGNsPW4oNzE2MjApLGxsPW4oOTA1MDIpO2Z1bmN0aW9uIGZsKHQpe3JldHVybiBmbD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sZmwodCl9ZnVuY3Rpb24gZGwoKXtyZXR1cm4gZGw9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxkbC5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcGwoKXtwbD1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHM9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGModCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Yyh7fSwiIil9Y2F0Y2godCl7Yz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gbCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGc/ZTpnLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgTChyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOk8odCxuLHUpfSksYX1mdW5jdGlvbiBmKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWw7dmFyIGQ9InN1c3BlbmRlZFN0YXJ0IixwPSJzdXNwZW5kZWRZaWVsZCIsaD0iZXhlY3V0aW5nIix2PSJjb21wbGV0ZWQiLHk9e307ZnVuY3Rpb24gZygpe31mdW5jdGlvbiBtKCl7fWZ1bmN0aW9uIGIoKXt9dmFyIHc9e307Yyh3LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIF89T2JqZWN0LmdldFByb3RvdHlwZU9mLFM9XyYmXyhfKFQoW10pKSk7UyYmUyE9PW4mJnIuY2FsbChTLGEpJiYodz1TKTt2YXIgeD1iLnByb3RvdHlwZT1nLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHcpO2Z1bmN0aW9uIEUodCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtjKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEModCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBzPWYodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLGw9Yy52YWx1ZTtyZXR1cm4gbCYmIm9iamVjdCI9PWZsKGwpJiZyLmNhbGwobCwiX19hd2FpdCIpP2UucmVzb2x2ZShsLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShsKS50aGVuKChmdW5jdGlvbih0KXtjLnZhbHVlPXQsYShjKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KHMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBPKGUsbixyKXt2YXIgbz1kO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT1oKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PXYpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPUEodSxyKTtpZihzKXtpZihzPT09eSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89dixyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289aDt2YXIgYz1mKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/djpwLGMuYXJnPT09eSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPXYsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBBKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxBKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLHk7dmFyIGk9ZihvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLHk7dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLHkpOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwseSl9ZnVuY3Rpb24gSSh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBrKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBMKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goSSx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBUKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IoZmwoZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gbS5wcm90b3R5cGU9YixvKHgsImNvbnN0cnVjdG9yIix7dmFsdWU6Yixjb25maWd1cmFibGU6ITB9KSxvKGIsImNvbnN0cnVjdG9yIix7dmFsdWU6bSxjb25maWd1cmFibGU6ITB9KSxtLmRpc3BsYXlOYW1lPWMoYixzLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09bXx8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsYik6KHQuX19wcm90b19fPWIsYyh0LHMsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoeCksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sRShDLnByb3RvdHlwZSksYyhDLnByb3RvdHlwZSx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1DLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQyhsKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LEUoeCksYyh4LHMsIkdlbmVyYXRvciIpLGMoeCxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGMoeCwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1ULEwucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpMLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChrKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MseSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSx5fSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLGsobikseX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztrKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpUKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCkseX19LGV9ZnVuY3Rpb24gaGwodCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiB2bCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXtobChpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7aGwoaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfX1mdW5jdGlvbiB5bCh0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZ2woci5rZXkpLHIpfX1mdW5jdGlvbiBnbCh0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKCJvYmplY3QiIT1mbCh0KXx8IXQpcmV0dXJuIHQ7dmFyIG49dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbCh0LGV8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPWZsKHIpKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09ZT9TdHJpbmc6TnVtYmVyKSh0KX0odCwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PWZsKGUpP2U6ZSsiIn12YXIgbWw9T2JqZWN0LmFzc2lnbixibD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4pe3ZhciByPXRoaXM7dGhpcy53aW5kb3c9dm9pZCAwLHRoaXMuc3RvcmU9dm9pZCAwLHRoaXMuZGVzdHJveUFwcD12b2lkIDAsdGhpcy5pc1JlYWR5PXZvaWQgMCx0aGlzLmlzRGVzdHJveWVkPXZvaWQgMCx0aGlzLmhhc1NjcmFwZWRDb29raWVzPXZvaWQgMCx0aGlzLnJlYWR5Q2FsbGJhY2tzPXZvaWQgMCx0aGlzLm1lc3Nlbmdlck9wZW5DYWxsYmFja3M9dm9pZCAwLHRoaXMubWVzc2VuZ2VyQ2xvc2VDYWxsYmFja3M9dm9pZCAwLHRoaXMudXNlckVtYWlsU3VwcGxpZWRDYWxsYmFja3M9dm9pZCAwLHRoaXMudW5yZWFkQ29udmVyc2F0aW9uQ291bnRDaGFuZ2VDYWxsYmFja3M9dm9pZCAwLHRoaXMuc3RvcmVTdWJzY3JpYmVycz12b2lkIDAsdGhpcy5zdG9wTWV0cmljc1BvbGxpbmc9dm9pZCAwLHRoaXMuY3VzdG9tTGF1bmNoZXJDbGlja0hhbmRsZXI9dm9pZCAwLHRoaXMuY2xlYW51cFRoZW1lTGlzdGVuZXI9bnVsbCx0aGlzLmNsZWFudXBVcmxDaGFuZ2VMaXN0ZW5lcj1udWxsLHRoaXMuaGFuZGxlQ3VzdG9tTGF1bmNoZXJDbGljaz1mdW5jdGlvbih0KXtyZXR1cm4gdC5wcmV2ZW50RGVmYXVsdCgpLHIudG9nZ2xlTWVzc2VuZ2VyKCksci5hZGRMYXVuY2hlckNsaWNrZWRNZXRyaWMoKSxIYyhfbChyLndpbmRvdykpJiYoVi5BeS5hZGRJbmNyZW1lbnRPcE1ldHJpYygibGVnYWN5Q3VzdG9tTGF1bmNoZXJDbGljayIpLFYuQXkuYnVpbGRBbmRBZGRIY01ldHJpYygibGVnYWN5Q3VzdG9tTGF1bmNoZXJDbGljayIpKSwhMX0sdGhpcy5oYW5kbGVNZXNzZW5nZXJDaGFuZ2U9ZnVuY3Rpb24odCl7dmFyIGU9ci5zdG9yZS5nZXRTdGF0ZSgpOygwLGguRHMpKGUpP3R8fHIubWVzc2VuZ2VyQ2xvc2VDYWxsYmFja3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQoKX0pKToodD9yLm1lc3Nlbmdlck9wZW5DYWxsYmFja3M6ci5tZXNzZW5nZXJDbG9zZUNhbGxiYWNrcykuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQoKX0pKTt0JiZyLnNlbmRNZXNzZW5nZXJPcGVuKCl9LHRoaXMuaGFuZGxlVmlzaWJpbGl0eVN0YXRlQ2hhbmdlPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZnJvbSxuPXQudG87aWYodC5pc1Nwb3RsaWdodE1lc3Nlbmdlcil7dmFyIG89bj09PUFuLmN5LmNvbGxhcHNlZHx8bj09PUFuLmN5LnZpc2libGU7ZT09PUFuLmN5LnNocmlua2VkJiZvJiZyLm1lc3Nlbmdlck9wZW5DYWxsYmFja3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQoKX0pKSwoZT09PUFuLmN5LmNvbGxhcHNlZHx8ZT09PUFuLmN5LnZpc2libGUpJiZuPT09QW4uY3kuc2hyaW5rZWQmJnIubWVzc2VuZ2VyQ2xvc2VDYWxsYmFja3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQoKX0pKX19LHRoaXMuaGFuZGxlVW5yZWFkQ29udmVyc2F0aW9uQ291bnRDaGFuZ2U9ZnVuY3Rpb24odCl7ci51bnJlYWRDb252ZXJzYXRpb25Db3VudENoYW5nZUNhbGxiYWNrcy5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZSh0KX0pKX0sdGhpcy5oYW5kbGVVc2VyRW1haWxTdXBwbGllZD1mdW5jdGlvbih0KXt0JiZyLnVzZXJFbWFpbFN1cHBsaWVkQ2FsbGJhY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0KCl9KSl9LHRoaXMud2luZG93PXQsdGhpcy5zdG9yZT1lfHxmdW5jdGlvbih0KXt2YXIgZT1nYyh0KTtyZXR1cm4gZS5zdWJzY3JpYmUoSyhlKSksZX0oe30pLHRoaXMuZGVzdHJveUFwcD1uLHRoaXMuaXNSZWFkeT0hMSx0aGlzLmlzRGVzdHJveWVkPSExLHRoaXMuaGFzU2NyYXBlZENvb2tpZXM9ITEsdGhpcy5yZWFkeUNhbGxiYWNrcz1bXSx0aGlzLm1lc3Nlbmdlck9wZW5DYWxsYmFja3M9W10sdGhpcy5tZXNzZW5nZXJDbG9zZUNhbGxiYWNrcz1bXSx0aGlzLnVzZXJFbWFpbFN1cHBsaWVkQ2FsbGJhY2tzPVtdLHRoaXMudW5yZWFkQ29udmVyc2F0aW9uQ291bnRDaGFuZ2VDYWxsYmFja3M9W10sdGhpcy5zdG9yZVN1YnNjcmliZXJzPVtdLHRoaXMuc3RvcE1ldHJpY3NQb2xsaW5nPWZ1bmN0aW9uKCl7fSx0aGlzLmN1c3RvbUxhdW5jaGVyQ2xpY2tIYW5kbGVyPW51bGwsdGhpcy5jcmVhdGVNZXNzZW5nZXJDaGFuZ2VTdWJzY3JpYmVyKCksdGhpcy5jcmVhdGVWaXNpYmlsaXR5U3RhdGVTdWJzY3JpYmVyKCksdGhpcy5jcmVhdGVVc2VyRW1haWxTdXBwbGllZFN1YnNjcmliZXIoKSx0aGlzLmNyZWF0ZVVucmVhZENvbnZlcnNhdGlvbkNvdW50Q2hhbmdlU3Vic2NyaWJlcigpLHRoaXMuc2V0dXBUaGVtZUxpc3RlbmVyKCksaWwoKGZ1bmN0aW9uKCl7ci5jaGVja09wZW5BbmRTZW5kTGFzdE9wZW5BY3Rpb24oKX0pKX12YXIgZSxuLHIsdz10LnByb3RvdHlwZTtyZXR1cm4gdy5zZXR1cFRoZW1lTGlzdGVuZXI9ZnVuY3Rpb24oKXt0aGlzLmNsZWFudXBUaGVtZUxpc3RlbmVyJiYodGhpcy5jbGVhbnVwVGhlbWVMaXN0ZW5lcigpLHRoaXMuY2xlYW51cFRoZW1lTGlzdGVuZXI9bnVsbCksdGhpcy5jbGVhbnVwVGhlbWVMaXN0ZW5lcj0oMCxTLl82KSh0aGlzLnN0b3JlLmRpc3BhdGNoKX0sdy5zZXR1cFVybENoYW5nZUxpc3RlbmVySWZFbmFibGVkPWZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLG49dGhpcy5zdG9yZS5nZXRTdGF0ZSgpLHI9KDAsaC5Ecykobik7KG51bGwhPSh0PW4uYXBwLmZlYXR1cmVzKSYmdC51cmxCYXNlZENsaWVudE1hdGNoaW5nfHxyKSYmKHRoaXMuY2xlYW51cFVybENoYW5nZUxpc3RlbmVyfHwodGhpcy5jbGVhbnVwVXJsQ2hhbmdlTGlzdGVuZXI9ZnVuY3Rpb24odCl7dmFyIGU9KDAsWG8uJCkoKTtpZighZSlyZXR1cm4gbnVsbDt2YXIgbj1lLmxvY2F0aW9uLmhyZWYscj1mdW5jdGlvbigpe3ZhciByPWUubG9jYXRpb24uaHJlZjtyIT09biYmKG49cix0KCkpfSxvPWUuaGlzdG9yeS5wdXNoU3RhdGUsaT1lLmhpc3RvcnkucmVwbGFjZVN0YXRlO3JldHVybiBlLmhpc3RvcnkucHVzaFN0YXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCksbj0wO248dDtuKyspZVtuXT1hcmd1bWVudHNbbl07by5hcHBseSh0aGlzLGUpLHIoKX0sZS5oaXN0b3J5LnJlcGxhY2VTdGF0ZT1mdW5jdGlvbigpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLGU9bmV3IEFycmF5KHQpLG49MDtuPHQ7bisrKWVbbl09YXJndW1lbnRzW25dO2kuYXBwbHkodGhpcyxlKSxyKCl9LGUuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHIpLGUuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsciksZnVuY3Rpb24oKXtlLmhpc3RvcnkucHVzaFN0YXRlPW8sZS5oaXN0b3J5LnJlcGxhY2VTdGF0ZT1pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHIpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIscil9fSgoZnVuY3Rpb24oKXtlLmZldGNoTGF1bmNoZXJTZXR0aW5nc0lmTmVjZXNzYXJ5KHt9LHtmb3JjZTohMH0pfSkpKSl9LHcuY2hlY2tPcGVuQW5kU2VuZExhc3RPcGVuQWN0aW9uPWZ1bmN0aW9uKCl7dGhpcy5zdG9yZS5nZXRTdGF0ZSgpLmFwcC5pc01lc3Nlbmdlck9wZW4mJnRoaXMuc3RvcmUuZGlzcGF0Y2goKDAsbm4uVUUpKCkpfSx3LmNyZWF0ZU9yVXBkYXRlVXNlcj1mdW5jdGlvbih0LGUsbil7dmFyIHI9dGhpczt2b2lkIDA9PT10JiYodD17fSksdm9pZCAwPT09biYmKG49ITEpO3ZhciBvPXRoaXMuZ2V0U2V0dGluZ3ModCksaT10aGlzLmdldFNlc3Npb24oe3NldHRpbmdzOm8sZ2VuZXJhdGVTZXNzaW9uSWRJZk5lY2Vzc2FyeTohMX0pO2lmKCFpKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTshZnVuY3Rpb24odCl7dmFyIGU9dC5hcHBXaW5kb3csbj10LmFwcElkO2lmKHFjKGUpKXt2YXIgcj0hIWUucGFyZW50JiZxYyhlLnBhcmVudCksbz1XYyhlKSxpPWUuZG9jdW1lbnQucmVmZXJyZXI7KDAsVi5BMikoIm1lc3Nlbmdlcl9zYW5kYm94ZWQgLSByZWZlcnJlcj0iK2kpLCgwLFYub1MpKCJtZXNzZW5nZXJfc2FuZGJveGVkIix7YXBwSWQ6bixhcHBTYW5kYm94ZWQ6cixoYXNCb2R5VGV4dDpvfSl9fSh7YXBwV2luZG93OnRoaXMud2luZG93LGFwcElkOmkuYXBwSWR9KSxmdW5jdGlvbih0KXtpZighWWMpdHJ5e3ZhciBlPW51bGw9PXQ/dm9pZCAwOnQucGVyZm9ybWFuY2U7aWYoImZ1bmN0aW9uIiE9dHlwZW9mKG51bGw9PWU/dm9pZCAwOmUuZ2V0RW50cmllc0J5VHlwZSkpcmV0dXJuO3ZhciBuPWUuZ2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKTtpZighbnx8MD09PW4ubGVuZ3RoKXJldHVybjtmb3IodmFyIHIsbz0hMSxpPUtjKG4sITApOyEocj1pKCkpLmRvbmU7KXt2YXIgYT1yLnZhbHVlLHU9SmMoYS5uYW1lKTtpZih1KXtvPSEwO3ZhciBzPU1hdGgucm91bmQoYS5kdXJhdGlvbik7cz4wJiYoMCxWLlZlKSgiYnVuZGxlX2xvYWRfZHVyYXRpb24iLHMse2J1bmRsZTp1fSk7dmFyIGM9YS50cmFuc2ZlclNpemU7Im51bWJlciI9PXR5cGVvZiBjJiZjPjAmJigwLFYuc0wpKCJidW5kbGVfdHJhbnNmZXJfc2l6ZV9ieXRlcyIsYyx7YnVuZGxlOnV9KX19byYmKFljPSEwKX1jYXRjaCh0KXt9fSh3aW5kb3cpO3ZhciBhPWwodGhpcy5zdG9yZS5nZXRTdGF0ZSgpLmFwcCksdT1hLmludGVybmFsLHM9YS5oYXNTY3JhcGVkQ29va2llczt0aGlzLmhhc1NjcmFwZWRDb29raWVzfHwodGhpcy5oYXNTY3JhcGVkQ29va2llcz1zKTt2YXIgYz1GYyhvKTtyZXR1cm4gYyYmdGhpcy5lbmFibGVDdXN0b21MYXVuY2hlcihjKSx0aGlzLnN0b3BNZXRyaWNzUG9sbGluZz1WLkF5LnN0YXJ0TWV0cmljc1BvbGxpbmcoaSx0aGlzLndpbmRvdyksKDAsdGhpcy5zdG9yZS5kaXNwYXRjaCkodG8uQXkuY3JlYXRlT3JVcGRhdGVVc2VyKF8uQXksaSx0aGlzLndpbmRvdy5kb2N1bWVudC5VUkwsVWMobyksZnVuY3Rpb24odCl7cmV0dXJuIHQuc2Vzc2lvbl9kdXJhdGlvbnx8bnVsbH0obyksQmMobyksbixmdW5jdGlvbih0KXtyZXR1cm4gdC5pbnRlcmNvbUVuY3J5cHRlZFBheWxvYWR9KHRoaXMud2luZG93KSxlLHUsKDAsR2MudCkoKSx0aGlzLmRlc3Ryb3lBcHApKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdCYmImlkImluIHQmJnIuaGFuZGxlVXNlckNyZWF0ZU9yVXBkYXRlKHQsbyl9KSl9LHcuc2VuZE1lc3Nlbmdlck9wZW49ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuaXNEZW1vTW9kZSgpfHx0aGlzLndoZW5SZWFkeSgoZnVuY3Rpb24oKXtyZXR1cm4oMCx0LnN0b3JlLmRpc3BhdGNoKSgoMCxvdC5XRikoKSl9KSl9LHcuY3JlYXRlQ3VzdG9taXphdGlvbk92ZXJyaWRlPWZ1bmN0aW9uKHQpe3ZhciBlPUJjKHRoaXMuZ2V0U2V0dGluZ3ModCkpO3JldHVybiB0aGlzLnN0b3JlLmRpc3BhdGNoKCgwLG0uRSkoZSkpfSx3LnNldExhdW5jaGVyRW5hYmxlZE92ZXJyaWRlPWZ1bmN0aW9uKHQpe3ZhciBlPURjKHRoaXMuZ2V0U2V0dGluZ3ModCkpO3JldHVybiB0aGlzLnN0b3JlLmRpc3BhdGNoKCgwLHNsLm0pKGUpKX0sdy5kZXN0cm95PWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PSEwKSx0aGlzLmlzRGVzdHJveWVkPSEwLHRoaXMucmVhZHlDYWxsYmFja3M9W10sdGhpcy5zdG9yZS5kaXNwYXRjaCh0by5BeS5kZXN0cm95U2Vzc2lvbih0KSksdGhpcy5zdG9wTWV0cmljc1BvbGxpbmcmJnRoaXMuc3RvcE1ldHJpY3NQb2xsaW5nKCksdGhpcy5jbGVhbnVwVGhlbWVMaXN0ZW5lciYmKHRoaXMuY2xlYW51cFRoZW1lTGlzdGVuZXIoKSx0aGlzLmNsZWFudXBUaGVtZUxpc3RlbmVyPW51bGwpLHRoaXMuY2xlYW51cFVybENoYW5nZUxpc3RlbmVyJiYodGhpcy5jbGVhbnVwVXJsQ2hhbmdlTGlzdGVuZXIoKSx0aGlzLmNsZWFudXBVcmxDaGFuZ2VMaXN0ZW5lcj1udWxsKSx0aGlzLmRpc2FibGVDdXN0b21MYXVuY2hlcigpLHRoaXMucmVtb3ZlU3RvcmVTdWJzY3JpYmVycygpLCgwLHVsLlhRKSgpLHRvLkF5LmlzRHVwbGljYXRlQ3JlYXRlT3JVcGRhdGVVc2VyUmVxdWVzdC5yZXNldCgpLE0ucmVzZXREZWR1cCgpLENjLnJlc2V0RGVkdXAoKSxvbCYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLG9sKSxvbD1udWxsKX0sdy5vcGVuTWVzc2VuZ2VyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLndoZW5SZWFkeSgoZnVuY3Rpb24oKXt2YXIgZSxuLHI9dC5zdG9yZS5nZXRTdGF0ZSgpLG89ci5hcHAsaT10LnN0b3JlLmRpc3BhdGNoO2lmKCEoKG51bGw9PShlPW8uZmVhdHVyZXMpP3ZvaWQgMDplLmltcHJvdmVPcGVuQmVoYXZpb3IpJiYobnVsbD09KG49ci5vcGVuT25Cb290KT92b2lkIDA6bi50eXBlKSkpe3ZhciBhPSgwLG9jLkFlKShyKTsoIWF8fGEmJm8uaGFzVGhlTWVzc2VuZ2VyQmVlbk9wZW5lZCkmJmkocmMuQXkuc2hvd0luaXRpYWxTY3JlZW4oKSl9aShyYy5BeS5vcGVuTWVzc2VuZ2VyKCkpfSkpfSx3Lm9wZW5PbkF1dG9PcGVuPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zdG9yZS5nZXRTdGF0ZSgpO2lmKCEoMCxpLklTKSgpfHwoMCxoLkRzKSh0KSl7dmFyIGU9dGhpcy5zdG9yZS5kaXNwYXRjaCxuPSgwLGguQXkpKHQpOyEwPT09KG51bGw9PW4/dm9pZCAwOm4uYXV0b09wZW4pJiYoZSgoMCxjbC5iKSghMCkpLGUocmMuQXkub3Blbk1lc3NlbmdlcigpKSl9fSx3Lm9wZW5PbkJvb3Q9ZnVuY3Rpb24oKXt2YXIgdCxlLG49dGhpcy5zdG9yZS5kaXNwYXRjaCxyPXRoaXMuc3RvcmUuZ2V0U3RhdGUoKSxvPXIub3Blbk9uQm9vdCxhPSgwLGguQXkpKHIpO2lmKG51bGw9PSh0PXIuYXBwLmZlYXR1cmVzKXx8IXQuaW1wcm92ZU9wZW5CZWhhdmlvcilpZihEYXRlLm5vdygpLW8ubGFzdE9wZW5BdFRpbWVzdGFtcD4zNmU1KSgwLGkuSVMpKCl8fCEwIT09KG51bGw9PWE/dm9pZCAwOmEuYXV0b09wZW4pfHwobigoMCxjbC5iKSghMCkpLG4ocmMuQXkub3Blbk1lc3NlbmdlcigpKSk7ZWxzZSBpZih2b2lkIDA9PT0oMCxhbC5hKShudWxsPT0oZT13aW5kb3cpfHxudWxsPT0oZT1lLnBhcmVudCk/dm9pZCAwOmUubG9jYXRpb24sImludGVyY29tX3N1cnZleV9pZCIpJiYhWC5MLmdldCgic3VydmV5X3BlbmRpbmdfdHJpZ2dlciIpKXtpZighKDAsaS5JUykoKSYmbylzd2l0Y2goby50eXBlKXtjYXNlIG5uLnlFOnZhciB1PW8ubWV0YWRhdGEuY29udmVyc2F0aW9uSWQ7aWYodSl7dmFyIHM7KDAsbm4uc3YpKCJvcGVuIGNvbnZlcnNhdGlvbiAiK3UpO3ZhciBjPW51bGwhPShzPW8ubWV0YWRhdGEudmlzaWJpbGl0eSk/czpudWxsO24ocmMuQXkub3BlbkNvbnZlcnNhdGlvbkluTWVzc2VuZ2VyKHUsYykpfWJyZWFrO2Nhc2Ugbm4uQnI6KDAsbm4uc3YpKCJvcGVuIG5ldyBjb252ZXJzYXRpb24iKTt2YXIgbD0oMCxoLkRzKShyKSxmPSEhbGwuQS5sb2FkRHJhZnQobGwuQS5ORVdfQ09OVkVSU0FUSU9OX0RSQUZUX0lEKTtsPyhuKHJjLkF5Lm9wZW5NZXNzZW5nZXIoKSksbihyYy5BeS5zaG93TmV3Q29udmVyc2F0aW9uKHt2aXNpYmlsaXR5OkFuLmN5LnNocmlua2VkfSkpKTpmPyhuKHJjLkF5Lm9wZW5NZXNzZW5nZXIoKSksbihyYy5BeS5zaG93TmV3Q29udmVyc2F0aW9uKCkpKTpuKHJjLkF5LnNob3dOZXdDb252ZXJzYXRpb24oKSk7YnJlYWs7Y2FzZSJhcnRpY2xlIjppZigiYXJ0aWNsZS1saW5rIj09PW8ubWV0YWRhdGEuY29tcG9uZW50SWQmJm8ubWV0YWRhdGEudXJsKXt2YXIgZCxwPW51bGw9PShkPW8ubWV0YWRhdGEpfHxudWxsPT0oZD1kLnByZXZpb3VzU3RhdGUpP3ZvaWQgMDpkLm1ldGFkYXRhO2lmKHApe3ZhciB2PXAuY29udmVyc2F0aW9uSWQ7diYmKCgwLG5uLnN2KSgib3BlbiBjb252ZXJzYXRpb24gIit2KyIgZnJvbSBhcnRpY2xlIiksbihyYy5BeS5vcGVuQ29udmVyc2F0aW9uSW5NZXNzZW5nZXIodikpKX0oMCxubi5zdikoIm9wZW4gc2hlZXQgZnJvbSBhcnRpY2xlICIrby5tZXRhZGF0YS5jYXJkVXJpKyIsICIrby5tZXRhZGF0YS5jb21wb25lbnRJZCsiLCAiK28ubWV0YWRhdGEudXJsKSxuKCgwLFUubFUpKF8uQXksby5tZXRhZGF0YS5jYXJkVXJpLG8ubWV0YWRhdGEuY29tcG9uZW50SWQsby5tZXRhZGF0YS51cmwse30pKX1icmVhaztjYXNlIG5uLlpOOnZhciB5PW8ubWV0YWRhdGEuY2hlY2tsaXN0UHJvZ3Jlc3NJZDsoMCxubi5zdikoIm9wZW4gY2hlY2tsaXN0ICIreSksbihyYy5BeS5vcGVuTWVzc2VuZ2VyKCkpLG4oKDAsWnIudEIpKHkpKX1pZih0aGlzLmFydGljbGVPcGVuV2l0aE5vQ2hlY2tsaXN0KG8pKXt2YXIgZz1vLm1ldGFkYXRhLmFydGljbGVJZHMsbT1vLm1ldGFkYXRhLmFydGljbGVMYW5ndWFnZXM7aWYobnVsbCE9ZyYmZy5sZW5ndGgpe3ZhciBiPWdbZy5sZW5ndGgtMV0sdz0obnVsbD09bT92b2lkIDA6bVtiXSl8fG51bGw7dGhpcy5zaG93QXJ0aWNsZShiLHZvaWQgMCx2b2lkIDAsdyl9fSgwLGkuSVMpKCl8fCEwIT09KG51bGw9PWE/dm9pZCAwOmEuYXV0b09wZW4pfHxvLnR5cGV8fChuKCgwLGNsLmIpKCEwKSksbihyYy5BeS5vcGVuTWVzc2VuZ2VyKCkpKX19LHcuYXJ0aWNsZU9wZW5XaXRoTm9DaGVja2xpc3Q9ZnVuY3Rpb24odCl7dmFyIGUsbj12b2lkIDA9PT0oMCxhbC5hKShudWxsPT0oZT13aW5kb3cpfHxudWxsPT0oZT1lLnBhcmVudCk/dm9pZCAwOmUubG9jYXRpb24sImludGVyY29tX2NoZWNrbGlzdF9pZCIpLHI9dC5tZXRhZGF0YSxvPXIub3BlbkFydGljbGVTdGFuZGFsb25lLGk9ci5hcnRpY2xlSWRzO3JldHVybiBCb29sZWFuKG8mJmkmJm4pfSx3Lm9wZW5PbkJvb3RBZnRlclVzZXJMb2FkZWQ9ZnVuY3Rpb24oKXt2YXIgdD0oMCx0aGlzLnN0b3JlLmdldFN0YXRlKSgpLm9wZW5PbkJvb3Q7aWYoISgwLGkuSVMpKCkmJnQmJiJzZWFyY2hfYnJvd3NlX2FydGljbGUiPT09dC50eXBlKXJldHVybiB0aGlzLm9wZW5JbnRvU2VhcmNoQnJvd3NlQXJ0aWNsZSh0KX0sdy5vcGVuSW50b1NlYXJjaEJyb3dzZUFydGljbGU9ZnVuY3Rpb24oKXt2YXIgdD12bChwbCgpLm1hcmsoKGZ1bmN0aW9uIHQoZSl7dmFyIG4scixpLGEsdSxzO3JldHVybiBwbCgpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmlmKG49dGhpcy5zdG9yZS5kaXNwYXRjaCxyPWUubWV0YWRhdGEsaT1yLmFydGljbGVJZHMsYT1yLmFydGljbGVMYW5ndWFnZXMsbnVsbCE9aSYmaS5sZW5ndGgpe3QubmV4dD00O2JyZWFrfXJldHVybiB0LmFicnVwdCgicmV0dXJuIik7Y2FzZSA0OmlmKHU9aS5wb3AoKSl7dC5uZXh0PTc7YnJlYWt9cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDc6cz0obnVsbD09YT92b2lkIDA6YVt1XSl8fG51bGwsbigoMCxvLlZDKSgiL2hlbHAiKSksbigoMCxRYy5MNykodSxudWxsLCEwLCEwLG51bGwsIiIsITEscykpLG4ocmMuQXkub3Blbk1lc3NlbmdlcighMCkpLG4oKDAsUWMueFopKHUsbnVsbCwhMCx2b2lkIDAscykpO2Nhc2UgMTI6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LHRoaXMpfSkpKTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSx3LnNob3dDb252ZXJzYXRpb249ZnVuY3Rpb24oKXt2YXIgdD12bChwbCgpLm1hcmsoKGZ1bmN0aW9uIHQoZSl7dmFyIG49dGhpcztyZXR1cm4gcGwoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDp0aGlzLndoZW5SZWFkeSh2bChwbCgpLm1hcmsoKGZ1bmN0aW9uIHQoKXtyZXR1cm4gcGwoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDooMCxuLnN0b3JlLmRpc3BhdGNoKShyYy5BeS5nZXRBbmRPcGVuQ29udmVyc2F0aW9uKGUpKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsdGhpcyl9KSkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHcuY2xvc2VNZXNzZW5nZXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMud2hlblJlYWR5KChmdW5jdGlvbigpeygwLHQuc3RvcmUuZGlzcGF0Y2gpKHJjLkF5LmNsb3NlTWVzc2VuZ2VyKCkpfSkpfSx3LnRvZ2dsZU1lc3Nlbmdlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy53aGVuUmVhZHkoKGZ1bmN0aW9uKCl7KDAsdC5zdG9yZS5kaXNwYXRjaCkocmMuQXkudG9nZ2xlTWVzc2VuZ2VyKCkpfSkpfSx3LnNob3dDb252ZXJzYXRpb25zPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLndoZW5SZWFkeSgoZnVuY3Rpb24oKXsoMCx0LnN0b3JlLmRpc3BhdGNoKShyYy5BeS5vcGVuQ29udmVyc2F0aW9ucygpKX0pKX0sdy5zaG93TmV3Q29udmVyc2F0aW9uPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpczt0aGlzLndoZW5SZWFkeSgoZnVuY3Rpb24oKXsoMCxuLnN0b3JlLmRpc3BhdGNoKShyYy5BeS5vcGVuTmV3Q29udmVyc2F0aW9uKHQsITEsbnVsbCE9ZT9lOm51bGwpKX0pKX0sdy5zdGFydENvbnZlcnNhdGlvbj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dGhpcy53aGVuUmVhZHkoKGZ1bmN0aW9uKCl7dmFyIHI9bi5zdG9yZS5kaXNwYXRjaCxvPW4uc3RvcmUuZ2V0U3RhdGUoKTtpZigoMCxlby5MTykobyl8fCgwLGVvLkVpKShvKSl7cihyYy5BeS5vcGVuTmV3Q29udmVyc2F0aW9uKCkpO3ZhciBpPWRsKHtib2R5Olt7dHlwZToicGFyYWdyYXBoIix0ZXh0OnR9XSxjbGllbnRJZDooMCxrci5sKSgpLGNyZWF0ZWRBdDpuZXcgRGF0ZX0sKG51bGw9PWU/dm9pZCAwOmUudmlhKSYme3ZpYTplLnZpYX0pO3IoKDAscm8ueWspKF8uQXksdm9pZCAwLGkpKX19KSl9LHcuc2VuZE1lc3NhZ2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLndoZW5SZWFkeSgoZnVuY3Rpb24oKXt2YXIgbj1lLnN0b3JlLmRpc3BhdGNoLHI9ZS5zdG9yZS5nZXRTdGF0ZSgpLG89KDAsbXIub1ApKHIpLGk9KDAsdGwubWF0Y2hQYXRoKSgiLyIrJGMuSWouaWQrIi9jb252ZXJzYXRpb24vOmNvbnZlcnNhdGlvbklkIixvKSxhPShudWxsPT1pP3ZvaWQgMDppLnBhcmFtcy5jb252ZXJzYXRpb25JZCl8fCIiOyJuZXciPT09YSYmKGE9dm9pZCAwKTt2YXIgdT0oMCxWci5WTikocixhKTsic3RhdGVfY2xvc2VkIj09PShudWxsPT11P3ZvaWQgMDp1LnN0YXRlKSYmKG4ocmMuQXkuc2hvd05ld0NvbnZlcnNhdGlvbigpKSxhPXZvaWQgMCk7dmFyIHM9e2JvZHk6W3t0eXBlOiJwYXJhZ3JhcGgiLHRleHQ6dH1dLGNsaWVudElkOigwLGtyLmwpKCksY3JlYXRlZEF0Om5ldyBEYXRlfTtuKCgwLHJvLnlrKShfLkF5LGEscykpfSkpfSx3LnN0YXJ0U3VydmV5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy53aGVuUmVhZHkoKGZ1bmN0aW9uKCl7dmFyIG49ZS5zdG9yZS5kaXNwYXRjaDsoMCx0by5yZSkodCwiQVBJX3N0YXJ0U3VydmV5IiksbigoMCxZci5BeSkodCxYYy5lLnRyaWdnZXJlZF9mcm9tX2NvZGUpKSxuKCgwLHJsLlk2KSgpKX0pKX0sdy5zdGFydENoZWNrbGlzdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMud2hlblJlYWR5KChmdW5jdGlvbigpeygwLGUuc3RvcmUuZGlzcGF0Y2gpKCgwLFpyLllIKSh0LFhjLmUudHJpZ2dlcmVkX2Zyb21fY29kZSwhMCkpfSkpfSx3LnN0YXJ0VG91cj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMud2hlblJlYWR5KChmdW5jdGlvbigpeygwLGUuc3RvcmUuZGlzcGF0Y2gpKCgwLGIubTcpKHQpKX0pKX0sdy5jcmVhdGVFdmVudD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5pc0RlbW9Nb2RlKCl8fHRoaXMud2hlblJlYWR5KChmdW5jdGlvbigpeygwLG4uc3RvcmUuZGlzcGF0Y2gpKHRvLkF5LmNyZWF0ZUV2ZW50KF8uQXksdCxlKSl9KSl9LHcuY3JlYXRlUGFnZVZpZXdFdmVudD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5pc0RlbW9Nb2RlKCl8fHRoaXMud2hlblJlYWR5KChmdW5jdGlvbigpeygwLHQuc3RvcmUuZGlzcGF0Y2gpKENjLmNyZWF0ZSgpKX0pKX0sdy5jcmVhdGVBcnRpY2xlUmVhY3Rpb249ZnVuY3Rpb24odCxlLG4scil7dmFyIG89dGhpczt0aGlzLndoZW5SZWFkeSgoZnVuY3Rpb24oKXt2YXIgaT1vLnN0b3JlLmdldFN0YXRlKCksYT1pLnNlc3Npb24sdT1pLmFwcC5pc01lc3Nlbmdlck9wZW4scz0hKCgwLG1yLktTKShpKSYmdSk7Xy5BeS5jcmVhdGVBcnRpY2xlUmVhY3Rpb24oYSx0LGUscyxuLHIpfSkpfSx3LnByZXZpZXdJbmJvdW5kQ3VzdG9tQm90PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy53aGVuUmVhZHkoKGZ1bmN0aW9uKCl7dmFyIG49Xy5BeS5idWlsZENvbXBvc2VyU3VnZ2VzdGlvbnModCk7ZS5zdG9yZS5kaXNwYXRjaCgoMCxnLk1HKShuKSl9KSl9LHcucHJldmlld091dGJvdW5kQ3VzdG9tQm90PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy53aGVuUmVhZHkoKGZ1bmN0aW9uKCl7KDAsZS5zdG9yZS5kaXNwYXRjaCkoKDAscHUuRkQpKF8uQXksdCkpfSkpfSx3LnByZXZpZXdXb3JrZmxvdz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMud2hlblJlYWR5KChmdW5jdGlvbigpeygwLGUuc3RvcmUuZGlzcGF0Y2gpKCgwLHB1LkZiKShfLkF5LHQpKX0pKX0sdy5jcmVhdGVNZXRyaWM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3RoaXMuaXNEZW1vTW9kZSgpfHx0aGlzLndoZW5SZWFkeSgoZnVuY3Rpb24oKXt2YXIgcj1uLnN0b3JlLmdldFN0YXRlKCksbz1yLnNlc3Npb24saT1yLnVzZXI7ZT1tbCh7YW5vbnltb3VzX2lkOm8uYW5vbnltb3VzSWQsZW5kX3VzZXJfaWQ6aS5pZCx1c2VyX2lkOmkuaWQsdXNlcl9yb2xlOmkucm9sZX0sZSk7dmFyIGE9by5hcHBJZCx1PVt7bmFtZTp0LnRvU3RyaW5nKCksaWQ6a3IuQS5nZW5lcmF0ZVVVSUQoKSxhcHBfaWRfY29kZTphLGNyZWF0ZWRfYXQ6TWF0aC5yb3VuZChEYXRlLm5vdygpLzFlMyksbWV0YWRhdGE6ZX1dOygwLElyLkkxKShpKSYmXy5BeS5jcmVhdGVNZXRyaWNzKG8sdSkuY2F0Y2goKGZ1bmN0aW9uKHQpe01hdGgucmFuZG9tKCk8PS4wMSYmKDAscy5sMikodCx7Y29udGV4dDoibWV0cmljc19jb2xsZWN0aW9uIixlcnJvcl90eXBlOiJtZXRyaWNzX2ZldGNoX2ZhaWxlZCJ9KX0pKX0pKX0sdy50cmlnZ2VyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuKDAsdGhpcy5zdG9yZS5kaXNwYXRjaCkoKDAscHUuaGcpKHQsXy5BeSxlKSl9LHcudHJpZ2dlckJvdD1mdW5jdGlvbih0LGUsbil7dmFyIHIsbz10aGlzLnN0b3JlLmdldFN0YXRlKCkub3BlcmF0b3IuY2xpZW50c2lkZVJ1bGVzZXRDb25kaXRpb25zLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJ1bGVzZXRfaWQ9PT10fSkpO2lmKG8mJiJidXR0b25fY3VzdG9tX2JvdCI9PT1vLnJ1bGVzZXRfbGlua19vYmplY3RfdHlwZSl7dmFyIGk9bnVsbD09b3x8bnVsbD09KHI9by5zZXJpYWxpemVkX29iamVjdCk/dm9pZCAwOnIuaWQ7aWYoaSlyZXR1cm4gbiYmdGhpcy5zdG9yZS5kaXNwYXRjaCgoMCxwdS5jcikoby5zZXJpYWxpemVkX29iamVjdCkpLHRoaXMudHJpZ2dlcihpLGUpfX0sdy5nZXRTZXR0aW5ncz1mdW5jdGlvbih0KXtyZXR1cm4gbWwoe30sX2wodGhpcy53aW5kb3cpLHQpfSx3LnNldFNldHRpbmc9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLndpbmRvdztuLmludGVyY29tU2V0dGluZ3N8fChuLmludGVyY29tU2V0dGluZ3M9e30pLG4uaW50ZXJjb21TZXR0aW5nc1t0XT1lfSx3LnNldEhpZGVOb3RpZmljYXRpb25zPWZ1bmN0aW9uKHQpe3RoaXMuc3RvcmUuZGlzcGF0Y2goKDAsY2wuYikodCkpfSx3Lm1hcmtIb21lRGF0YUFzU3RhbGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMud2hlblJlYWR5KChmdW5jdGlvbigpe3Quc3RvcmUuZGlzcGF0Y2goKDAsbG4uUk0pKCEwKSl9KSl9LHcuZ2V0QXJ0aWNsZVJlYWN0aW9uPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO3RoaXMud2hlblJlYWR5KChmdW5jdGlvbigpe3ZhciBvPXIuc3RvcmUuZ2V0U3RhdGUoKS5zZXNzaW9uO18uQXkuZ2V0QXJ0aWNsZVJlYWN0aW9uKG8sdCxlLG4pfSkpfSx3LmVudGVyVG91clByZXZpZXdNb2RlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy53aGVuUmVhZHkoKGZ1bmN0aW9uKCl7KDAsZS5zdG9yZS5kaXNwYXRjaCkoKDAsYi5mUykoXy5BeS5idWlsZFRvdXIodCkpKX0pKX0sdy5leGl0VG91clByZXZpZXdNb2RlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLndoZW5SZWFkeSgoZnVuY3Rpb24oKXsoMCx0LnN0b3JlLmRpc3BhdGNoKSgoMCxiLnJLKSgpKX0pKX0sdy5wcmV2aWV3U3VydmV5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy53aGVuUmVhZHkoKGZ1bmN0aW9uKCl7dmFyIG49ZS5zdG9yZS5kaXNwYXRjaDsoMCx0by5yZSkodCwiQVBJX3ByZXZpZXdTdXJ2ZXkiKSxuKCgwLFlyLlR1KSh0KSl9KSl9LHcucHJldmlld0Jhbm5lcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMud2hlblJlYWR5KChmdW5jdGlvbigpeygwLGUuc3RvcmUuZGlzcGF0Y2gpKCgwLEtyLlhtKSh0KSl9KSl9LHcucHJldmlld1Bvc3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLndoZW5SZWFkeSgoZnVuY3Rpb24oKXsoMCxlLnN0b3JlLmRpc3BhdGNoKSgoMCxybC5kVCkodCkpfSkpfSx3LmdldFNlc3Npb249ZnVuY3Rpb24odCl7dmFyIGU9dC5zZXR0aW5ncyxuPXQuZ2VuZXJhdGVTZXNzaW9uSWRJZk5lY2Vzc2FyeSxyPXRoaXMuc3RvcmUuZ2V0U3RhdGUoKS5zZXNzaW9uLG89emModGhpcy5nZXRTZXR0aW5ncyhlKSk7aWYoZnVuY3Rpb24odCl7cmV0dXJuIEJvb2xlYW4odCYmdC5hcHBJZCl9KHI9bWwoe30scixvKSkpcmV0dXJuIHI9bWwoe30scixmdW5jdGlvbih0KXt2YXIgZT17fSxuPWEuQS5yZWFkKCgwLGMuS0spKHQpKXx8YS5BLnJlYWQoKDAsYy5udSkoKSkscj1hLkEucmVhZCgoMCxjLkxBKSh0KSk7biYmbWwoZSx7YW5vbnltb3VzSWQ6bn0pO3ImJm1sKGUse2Fub255bW91c1Nlc3Npb246cn0pO3JldHVybiBlfShyLmFwcElkKSksbiYmIXIuc2Vzc2lvbklkJiYoci5zZXNzaW9uSWQ9a3IuQS5nZW5lcmF0ZVVVSUQoKSkscn0sdy5mZXRjaExhdW5jaGVyU2V0dGluZ3NJZk5lY2Vzc2FyeT1mdW5jdGlvbih0LGUpe3ZhciBuLHI9KHZvaWQgMD09PWU/e306ZSkuZm9yY2Usbz12b2lkIDAhPT1yJiZyLGk9dGhpcy5zdG9yZS5nZXRTdGF0ZSgpO2lmKG98fG51bGw9PShuPWkubGF1bmNoZXJTZXR0aW5ncyl8fCFuLmluc3RhbnRCb290RW5hYmxlZCl7dmFyIGE9dGhpcy5nZXRTZXNzaW9uKHtzZXR0aW5nczp0LGdlbmVyYXRlU2Vzc2lvbklkSWZOZWNlc3Nhcnk6ITB9KTtpZihhKSgwLHRoaXMuc3RvcmUuZGlzcGF0Y2gpKE0uZmV0Y2goYSkpfX0sdy5mZXRjaFRvb2x0aXBzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0U2Vzc2lvbih7c2V0dGluZ3M6dCxnZW5lcmF0ZVNlc3Npb25JZElmTmVjZXNzYXJ5OiEwfSk7aWYoZSl7dmFyIG49VWModGhpcy5nZXRTZXR0aW5ncyh0KSk7KDAsdGhpcy5zdG9yZS5kaXNwYXRjaCkoKDAsUi5kSCkoe3Nlc3Npb246ZSxjdXN0b21BdHRyaWJ1dGVzOm59KSl9fSx3LnByZXZpZXdUb29sdGlwR3JvdXA9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLndoZW5SZWFkeSgoZnVuY3Rpb24oKXtlLnN0b3JlLmRpc3BhdGNoKCgwLFIuWmUpKF8uQXkuYnVpbGRUb29sdGlwR3JvdXAodCkpKX0pKX0sdy5leGl0UHJldmlld1Rvb2x0aXBHcm91cD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy53aGVuUmVhZHkoKGZ1bmN0aW9uKCl7dC5zdG9yZS5kaXNwYXRjaCgoMCxSLm45KSgpKX0pKX0sdy5nZXRWaXNpdG9ySWQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnN0b3JlLmdldFN0YXRlKCkuc2Vzc2lvbjtpZih0KXt2YXIgZT10LmFwcElkO3JldHVybiBhLkEucmVhZCgoMCxjLktLKShlKSl8fGEuQS5yZWFkKCgwLGMubnUpKCkpfX0sdy5kZWNvZGVkSW50ZXJjb21Vc2VySnd0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zdG9yZS5nZXRTdGF0ZSgpLnNlc3Npb247aWYobnVsbCE9dCYmdC5pbnRlcmNvbVVzZXJKd3Qpe3ZhciBlPXQuaW50ZXJjb21Vc2VySnd0LnNwbGl0KCIuIik7aWYoMz09PWUubGVuZ3RoKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShhdG9iKGVbMV0ucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIikpKX1jYXRjaCh0KXtyZXR1cm59fX0sdy5nZXRVc2VySW5mbz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnN0b3JlLmdldFN0YXRlKCksbj1lLnVzZXIscj1lLnNlc3Npb247aWYobnVsbCE9biYmbi5pZCl7dmFyIG89e2ludGVyY29tX3VzZXJfaWQ6bnVsbD09bj92b2lkIDA6bi5pZCxyb2xlOm51bGw9PW4/dm9pZCAwOm4ucm9sZSxhcHBfaWQ6bnVsbD09cj92b2lkIDA6ci5hcHBJZCx1c2VyX2lkOm51bGw9PXI/dm9pZCAwOnIudXNlcklkLGVtYWlsOm51bGw9PXI/dm9pZCAwOnIuZW1haWx9LGk9dGhpcy5kZWNvZGVkSW50ZXJjb21Vc2VySnd0KCk7cmV0dXJuIGkmJihpLnVzZXJfaWQmJihvLnVzZXJfaWQ9aS51c2VyX2lkKSxpLmVtYWlsJiYoby5lbWFpbD1pLmVtYWlsKSksb31udWxsIT10JiZ0LndpdGhMb2dnaW5nJiYoMCx1LmpQKSgiTm8gdXNlciBpZCBmb3VuZCB3aGVuIGxvb2tpbmcgdXAgdGhlIHVzZXIgaW5mby4iKX0sdy5vbk1lc3Nlbmdlck9wZW49ZnVuY3Rpb24odCl7dGhpcy5tZXNzZW5nZXJPcGVuQ2FsbGJhY2tzLnB1c2godCl9LHcub25NZXNzZW5nZXJDbG9zZT1mdW5jdGlvbih0KXt0aGlzLm1lc3NlbmdlckNsb3NlQ2FsbGJhY2tzLnB1c2godCl9LHcub25VbnJlYWRDb252ZXJzYXRpb25Db3VudENoYW5nZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnN0b3JlLmdldFN0YXRlKCksbj0oMCxPYy5qKShlKTt0aGlzLnVucmVhZENvbnZlcnNhdGlvbkNvdW50Q2hhbmdlQ2FsbGJhY2tzLnB1c2godCksdChuKX0sdy5vblVzZXJFbWFpbFN1cHBsaWVkPWZ1bmN0aW9uKHQpe3QmJiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0aGlzLnVzZXJFbWFpbFN1cHBsaWVkQ2FsbGJhY2tzLnB1c2godCl9LHcub25SZWFkeT1mdW5jdGlvbih0KXt0JiYiZnVuY3Rpb24iPT10eXBlb2YgdCYmdGhpcy53aGVuUmVhZHkodCl9LHcuZW5hYmxlQ3VzdG9tTGF1bmNoZXI9ZnVuY3Rpb24odCl7dGhpcy5kaXNhYmxlQ3VzdG9tTGF1bmNoZXIoKTt2YXIgZT10aGlzLndpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdO3RoaXMuY3VzdG9tTGF1bmNoZXJDbGlja0hhbmRsZXI9KDAsVmMuS3gpKGUsdCx0aGlzLmhhbmRsZUN1c3RvbUxhdW5jaGVyQ2xpY2spLCgwLFZjLnEyKShlLCJjbGljayIsdGhpcy5jdXN0b21MYXVuY2hlckNsaWNrSGFuZGxlcil9LHcuZGlzYWJsZUN1c3RvbUxhdW5jaGVyPWZ1bmN0aW9uKCl7aWYodGhpcy5jdXN0b21MYXVuY2hlckNsaWNrSGFuZGxlcil7dmFyIHQ9dGhpcy53aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXTsoMCxWYy5mKSh0LCJjbGljayIsdGhpcy5jdXN0b21MYXVuY2hlckNsaWNrSGFuZGxlciksdGhpcy5jdXN0b21MYXVuY2hlckNsaWNrSGFuZGxlcj1udWxsfX0sdy53aGVuUmVhZHk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZighdGhpcy5pc0Rlc3Ryb3llZClyZXR1cm4gdGhpcy5pc1JlYWR5P3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5pc0Rlc3Ryb3llZHx8dCgpfSksMSk6dm9pZCB0aGlzLnJlYWR5Q2FsbGJhY2tzLnB1c2godCl9LHcuZXhlY3V0ZVJlYWR5Q2FsbGJhY2tzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT10aGlzLnJlYWR5Q2FsbGJhY2tzLG49ZnVuY3Rpb24oKXt2YXIgbj1lLnNoaWZ0KCk7biYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0LmlzRGVzdHJveWVkfHxuKCl9KSwxKX07ZS5sZW5ndGg7KW4oKTt0aGlzLnJlYWR5Q2FsbGJhY2tzPVtdfSx3LmFkZExhdW5jaGVyQ2xpY2tlZE1ldHJpYz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy53aGVuUmVhZHkoKGZ1bmN0aW9uKCl7dmFyIGU9dC5zdG9yZS5nZXRTdGF0ZSgpLG49ZS51c2VyLHI9e2lzX21lc3Nlbmdlcl9vcGVuOmUuYXBwLmlzTWVzc2VuZ2VyT3Blbixpc19jdXN0b21fbGF1bmNoZXI6ITB9O1YuQXkuYnVpbGRBbmRBZGRNZXRyaWMobiwiY2xpY2tlZCIsImxhdW5jaGVyIiwiaW5fYXBwIiwiIixyKX0pKX0sdy5oYW5kbGVVc2VyQ3JlYXRlT3JVcGRhdGU9ZnVuY3Rpb24odCxlKXt2YXIgbjsoMCx5LkNEKSgpfHwoVi5BeS5idWlsZEFuZEFkZEhjTWV0cmljKCJhcGlCb290IiksKDAseS5KSykoITApKSx0aGlzLnNob3VsZFNlbmRUcmFja2luZ0Nvb2tpZXMoKSYmdGhpcy5jcmVhdGVPclVwZGF0ZVVzZXIoZSwiYXBpVXBkYXRlIik7dmFyIHI9dGhpcy5zdG9yZS5nZXRTdGF0ZSgpLnNlc3Npb24sbz1udWxsIT0obj1udWxsPT1lP3ZvaWQgMDplLmF1dGhfdG9rZW5zKT9uOm51bGw9PXI/dm9pZCAwOnIuYXV0aFRva2VucztyZXR1cm4gbyYmdGhpcy5zZXRVc2VyQXV0aFRva2VucyhvKSx0aGlzLmlzUmVhZHl8fCh0aGlzLmV4ZWN1dGVSZWFkeUNhbGxiYWNrcygpLHRoaXMuaXNSZWFkeT0hMCx0aGlzLnNldHVwVXJsQ2hhbmdlTGlzdGVuZXJJZkVuYWJsZWQoKSwoMCxHYy50KSgpJiZ0aGlzLndpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoIm1lc3Nlbmdlcl9zZXNzaW9uX3JlYWR5IiwiKiIpLHRoaXMuZmlyZVBpbmdNZXRyaWNzKCksdGhpcy5vcGVuT25Cb290KCksdGhpcy5vcGVuT25BdXRvT3BlbigpLHRoaXMub3Blbk9uQm9vdEFmdGVyVXNlckxvYWRlZCgpLHRoaXMuY3JlYXRlTGF5b3V0Q2hhbmdlU3Vic2NyaWJlcigpKSx0fSx3LmZpcmVQaW5nTWV0cmljcz1mdW5jdGlvbigpe2lmKCEoMCx5LnBVKSgpKXt2YXIgdCxlPXRoaXMuc3RvcmUuZ2V0U3RhdGUoKSxuPSgwLHAuQSkoZSkscj0oMCxmLkFyKSgpO1YuQXkuYnVpbGRBbmRBZGRIY01ldHJpYygiY3JlYXRlT3JVcGRhdGVVc2VyIix7bWVzc2VuZ2VySXNWaXNpYmxlOigwLHkuT1YpKG4pLGlzTGF1bmNoZXJFbmFibGVkOm4saGFzRGlzcGxheU5vbmVTZXQ6cn0pO3ZhciBvPSgwLHYuYykoZSkubWV0YSxpPW51bGw9PSh0PSgwLGQuS1EpKCkpP3ZvaWQgMDp0LmhyZWYsYT0oMCxoLkRzKShlKSx1PWRsKHt9LG8se2RldmljZV90eXBlOigwLGYucnIpKCk/Im1vYmlsZSI6ImRlc2t0b3AifSxpP3twYWdlX3VybDppfTp7fSxhP3tmaW5fb25seToidHJ1ZSJ9Ont9KTtWLkF5LmJ1aWxkQW5kQWRkTWV0cmljKGUudXNlciwibG9hZGVkIiwibWVzc2VuZ2VyX3dpZGdldCIsIm1lc3NlbmdlciIsIiIsdSksKDAseS5pMCkoKDAsaC5sZCkodGhpcy5zdG9yZS5nZXRTdGF0ZSgpKSksKDAseS5aRSkoITApfX0sdy5jcmVhdGVMYXlvdXRDaGFuZ2VTdWJzY3JpYmVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmFkZFN0b3JlU3Vic2NyaWJlcih3bCh0aGlzLnN0b3JlLGgubGQsKGZ1bmN0aW9uKCl7dHJ5e251bGwhPT0oMCx5LlFCKSgpJiYoKDAseS5aRSkoITEpLHQuZmlyZVBpbmdNZXRyaWNzKCkpfWNhdGNoKHQpeygwLHMubDIpKHQpfX0pKSl9LHcuc2hvd0FydGljbGU9ZnVuY3Rpb24odCxlLG4scil7dmFyIG89dGhpcyxpPXRoaXMuc3RvcmUuZ2V0U3RhdGUsYT10aGlzLnN0b3JlLmRpc3BhdGNoLHU9IWkoKS5hcHAuaXNNZXNzZW5nZXJPcGVuO3RoaXMud2hlblJlYWR5KHZsKHBsKCkubWFyaygoZnVuY3Rpb24gcygpe3JldHVybiBwbCgpLndyYXAoKGZ1bmN0aW9uKHMpe2Zvcig7Oylzd2l0Y2gocy5wcmV2PXMubmV4dCl7Y2FzZSAwOnJldHVybiB1JiZhKCgwLG5uLmUkKSh0KSkscy5uZXh0PTMsbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpeyFmdW5jdGlvbiBlKCl7dmFyIG49aSgpO24uYXBwLmlzTWVzc2VuZ2VyT3Blbnx8by5vcGVuTWVzc2VuZ2VyKCksbi5hcHAuaXNNZXNzZW5nZXJPcGVuJiZuLmFwcC5pc01vdW50ZWQmJiFuLmhvbWUuaXNGZXRjaGluZz90KCk6c2V0VGltZW91dChlLDEwMCl9KCl9KSk7Y2FzZSAzOmEoKDAsUWMubiQpKHQse30sITEsITEsbixlLHUscikpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIHMuc3RvcCgpfX0pLHMpfSkpKSl9LHcuc2hvd05ld3M9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0KXt2YXIgbj10aGlzLnN0b3JlLHI9bi5kaXNwYXRjaCxpPW4uZ2V0U3RhdGU7dGhpcy53aGVuUmVhZHkodmwocGwoKS5tYXJrKChmdW5jdGlvbiBuKCl7dmFyIGE7cmV0dXJuIHBsKCkud3JhcCgoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6YT1pKCksYS5hcHAuaXNNZXNzZW5nZXJPcGVufHxyKHJjLkF5Lm9wZW5NZXNzZW5nZXIoKSksZS53aGVuUmVhZHkoKGZ1bmN0aW9uKCl7cigoMCxvLlZDKSgiL25ld3MvZGV0YWlscy8iK3QpKX0pKTtjYXNlIDM6Y2FzZSJlbmQiOnJldHVybiBuLnN0b3AoKX19KSxuKX0pKSkpfWVsc2UgdGhpcy5zaG93U3BhY2UoIm5ld3MiKX0sdy5zaG93VGlja2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc3RvcmUuZ2V0U3RhdGUsbj10aGlzLnN0b3JlLmRpc3BhdGNoLHI9bigoMCx4bi5ycykodCkpO3RoaXMud2hlblJlYWR5KHZsKHBsKCkubWFyaygoZnVuY3Rpb24gdCgpe3ZhciBpO3JldHVybiBwbCgpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmk9ZSgpLGkuYXBwLmlzTWVzc2VuZ2VyT3Blbnx8bihyYy5BeS5vcGVuTWVzc2VuZ2VyKCkpLHIudGhlbigoZnVuY3Rpb24odCl7dmFyIGU9bnVsbD09dD92b2lkIDA6dC5wYXlsb2FkO251bGwhPWUmJmUuaWQmJm4oKDAsby5WQykoIi90aWNrZXRzL2RldGFpbHMvIitlLmlkLHtzdGF0ZTp7bmF2aWdhdGluZ0Zyb206TGEud1V9fSkpfSkpO2Nhc2UgMzpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQpfSkpKSl9LHcuc2hvd1RpY2tldEZvcm09ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zdG9yZS5nZXRTdGF0ZSxuPXRoaXMuc3RvcmUuZGlzcGF0Y2gscj1uKCgwLGVsLm9uKShfLkF5KSk7dGhpcy53aGVuUmVhZHkodmwocGwoKS5tYXJrKChmdW5jdGlvbiBpKCl7dmFyIGE7cmV0dXJuIHBsKCkud3JhcCgoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6YT1lKCksYS5hcHAuaXNNZXNzZW5nZXJPcGVufHxuKHJjLkF5Lm9wZW5NZXNzZW5nZXIoKSksci50aGVuKChmdW5jdGlvbihlKXsobnVsbD09ZT92b2lkIDA6ZS5maW5kKChmdW5jdGlvbihlKXtyZXR1cm4gTnVtYmVyKGUuaWQpPT09TnVtYmVyKHQpfSkpKSYmbigoMCxvLlZDKSgoMCxubC53bykodCkpKX0pKTtjYXNlIDM6Y2FzZSJlbmQiOnJldHVybiBpLnN0b3AoKX19KSxpKX0pKSkpfSx3LnNob3dTcGFjZT1mdW5jdGlvbih0KXt2YXIgZSxuPXRoaXMscj10aGlzLnN0b3JlLmRpc3BhdGNoLGk9dGhpcy5zdG9yZS5nZXRTdGF0ZSgpLGE9bnVsbD09KGU9KDAsb2MuJEIpKGkpLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dH0pKSk/dm9pZCAwOmUucGF0aDthJiZ0aGlzLndoZW5SZWFkeSh2bChwbCgpLm1hcmsoKGZ1bmN0aW9uIHQoKXt2YXIgZSx1O3JldHVybiBwbCgpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmU9aS5hcHAuaXNNZXNzZW5nZXJPcGVuLHU9aS5hcnRpY2xlLmlzTG9hZGVkLGV8fHIocmMuQXkub3Blbk1lc3NlbmdlcigpKSx1JiZyKCgwLFFjLm5YKSgpKSxuLndoZW5SZWFkeSgoZnVuY3Rpb24oKXtyKCgwLG8uVkMpKGEpKX0pKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSkpfSx3LnNob3VsZFNlbmRUcmFja2luZ0Nvb2tpZXM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnN0b3JlLmdldFN0YXRlKCkuYXBwO3JldHVybiF0aGlzLmhhc1NjcmFwZWRDb29raWVzJiYodC5mZWF0dXJlcy5odWJzcG90SW5zdGFsbGVkfHx0LmZlYXR1cmVzLm1hcmtldG9FbnJpY2htZW50SW5zdGFsbGVkKX0sdy5jcmVhdGVNZXNzZW5nZXJDaGFuZ2VTdWJzY3JpYmVyPWZ1bmN0aW9uKCl7dGhpcy5hZGRTdG9yZVN1YnNjcmliZXIod2wodGhpcy5zdG9yZSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuYXBwLmlzTWVzc2VuZ2VyT3Blbn0pLHRoaXMuaGFuZGxlTWVzc2VuZ2VyQ2hhbmdlKSl9LHcuY3JlYXRlVmlzaWJpbGl0eVN0YXRlU3Vic2NyaWJlcj1mdW5jdGlvbigpe3ZhciB0LGUsbixyLG8saTt0aGlzLmFkZFN0b3JlU3Vic2NyaWJlcigodD10aGlzLnN0b3JlLGU9SmkuTixuPWguRHMscj10aGlzLmhhbmRsZVZpc2liaWxpdHlTdGF0ZUNoYW5nZSxvPWUodC5nZXRTdGF0ZSgpKSxpPSEwLGZ1bmN0aW9uKCl7dmFyIGE9dC5nZXRTdGF0ZSgpLHU9ZShhKSxzPW4oYSk7aWYobyE9PXUpe2lmKGkpcmV0dXJuIGk9ITEsdm9pZChvPXUpO3Ioe2Zyb206byx0bzp1LGlzU3BvdGxpZ2h0TWVzc2VuZ2VyOnN9KSxvPXV9fSkpfSx3LmNyZWF0ZVVucmVhZENvbnZlcnNhdGlvbkNvdW50Q2hhbmdlU3Vic2NyaWJlcj1mdW5jdGlvbigpe3RoaXMuYWRkU3RvcmVTdWJzY3JpYmVyKHdsKHRoaXMuc3RvcmUsT2Muaix0aGlzLmhhbmRsZVVucmVhZENvbnZlcnNhdGlvbkNvdW50Q2hhbmdlKSl9LHcuY3JlYXRlVXNlckVtYWlsU3VwcGxpZWRTdWJzY3JpYmVyPWZ1bmN0aW9uKCl7dGhpcy5hZGRTdG9yZVN1YnNjcmliZXIod2wodGhpcy5zdG9yZSwoZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIG51bGw9PShlPXQuc2Vzc2lvbik/dm9pZCAwOmUuZGlkVXNlclN1cHBseUVtYWlsfSksdGhpcy5oYW5kbGVVc2VyRW1haWxTdXBwbGllZCkpfSx3LmFkZFN0b3JlU3Vic2NyaWJlcj1mdW5jdGlvbih0KXt0aGlzLnN0b3JlU3Vic2NyaWJlcnMucHVzaCh0aGlzLnN0b3JlLnN1YnNjcmliZSh0KSl9LHcucmVtb3ZlU3RvcmVTdWJzY3JpYmVycz1mdW5jdGlvbigpe3RoaXMuc3RvcmVTdWJzY3JpYmVycy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4hIXQmJnQoKX0pKX0sdy5oYW5kbGVJbnRlcnNlY3Rpb25Cb290PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLndoZW5SZWFkeSgoZnVuY3Rpb24oKXt0LnN0b3JlLmRpc3BhdGNoKHt0eXBlOkYuYV9FfSl9KSl9LHcuc2V0SW5zdGFsbGF0aW9uVHlwZT1mdW5jdGlvbih0KXsoMCxBYy5iKSh0KX0sdy5zZXRJbnN0YWxsYXRpb25WZXJzaW9uPWZ1bmN0aW9uKHQpeygwLEljLkgpKHQpfSx3LnNldFVzZXJBdXRoVG9rZW5zPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc3RvcmUuZ2V0U3RhdGUoKS5zZXNzaW9uOyhudWxsPT1lP3ZvaWQgMDplLmF1dGhUb2tlbnMpIT09dCYmdGhpcy5zdG9yZS5kaXNwYXRjaCgoMCx0by5UaCkodCkpLG51bGwhPWUmJmUuYXBwSWQmJl8uQXkuc2V0VXNlckF1dGhUb2tlbnMoZSx0KX0sdy5pc0RlbW9Nb2RlPWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIShudWxsPT0odD10aGlzLmdldFNldHRpbmdzKCkpfHwhdC5kZW1vX21vZGUpfSx3LnZhbGlkYXRlU2V0dGluZ3M9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdldFNldHRpbmdzKCk7T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsInVzZXJfaWQiKSYmdm9pZCAwPT09dC51c2VyX2lkJiYoMCx1LkZTKSgid2luZG93LmludGVyY29tU2V0dGluZ3MudXNlcl9pZCBpcyBzZXQgdG8gdW5kZWZpbmVkLiBUaGlzIHZhbHVlIHNob3VsZCBlaXRoZXIgYmUgYSBzdHJpbmcgb3Igbm90IHNldCBhdCBhbGwuIil9LGU9dCxuJiZ5bChlLnByb3RvdHlwZSxuKSxyJiZ5bChlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGV9KCk7ZnVuY3Rpb24gd2wodCxlLG4pe3ZhciByPWUodC5nZXRTdGF0ZSgpKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1lKHQuZ2V0U3RhdGUoKSk7ciE9PW8mJihyPW8sbihvKSl9fWZ1bmN0aW9uIF9sKHQpe3JldHVybiB0LmludGVyY29tU2V0dGluZ3N9dmFyIFNsPWJsLHhsPW4oMTczMzYpLEVsPW4ubih4bCksQ2w9big0MDI5NSksT2w9big5NDc5MiksQWw9KDAsR3IuTXopKFtmdW5jdGlvbih0KXtyZXR1cm4gdC5hY2Nlc3NpYmlsaXR5fV0sKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpLElsPW4oOTcxNjApLGtsPW4ubihJbCksTGw9big5NTg3OSksVGw9KDAsR3IuTXopKGguQXksKGZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBudWxsPT0oZT10LmxhdW5jaGVyU2V0dGluZ3MpP3ZvaWQgMDplLnRoZW1lTW9kZX0pLChmdW5jdGlvbih0LGUpe3ZhciBuPXQuY29sb3Iscj10LnNlY29uZGFyeUNvbG9yLG89dC50aGVtZU1vZGU7aWYoIW58fCFyKXJldHVybnt9O3ZhciBpPWV8fG8sYT0oMCxMbC5sKShpKSx1PSgwLExsLnkpKGEpLHM9a2woKSh7cHJpbWFyeUNvbG9yOm4sc2Vjb25kYXJ5Q29sb3I6cixkYXJrZW5BbW91bnQ6MjAscHVyZUJsYWNrQWN0aW9uQ29sb3JzOiEwLGNvbnRyYXN0Q2hlY2tNZXRob2Q6dSx0aGVtZU1vZGU6YX0pO3JldHVybntwcmltYXJ5Q29sb3I6bixzZWNvbmRhcnlDb2xvcjpyLGdyYWRpZW50U3RhcnRDb2xvcjpzLmdyYWRpZW50X3N0YXJ0X2NvbG9yLGdyYWRpZW50RW5kQ29sb3I6cy5ncmFkaWVudF9lbmRfY29sb3IsbGF1bmNoZXJJY29uQ29sb3I6cy5sYXVuY2hlcl9pY29uX2NvbG9yLGlzUHJpbWFyeUNvbG9yTGlnaHQ6ImxpZ2h0Ij09PXMucHJpbWFyeV90eXBlLHRoZW1lTW9kZTphfX0pKSxqbD1uKDY0Nzg1KSxQbD1uKDcwMzQyKSxObD1uKDcyNDkzKSxNbD1uKDg3NDkzKSxSbD1mdW5jdGlvbigpe3JldHVybiBQbC5KWH0sVWw9ZnVuY3Rpb24oKXtyZXR1cm4gUGwuUHZ9LHpsPWZ1bmN0aW9uKCl7cmV0dXJuIFBsLmhQfSxIbD1mdW5jdGlvbigpe3JldHVybiBQbC5uOX0sRmw9ZnVuY3Rpb24odCl7dmFyIGU9dC5pc01vYmlsZSxuPXQuY3VzdG9taXphdGlvbjtyZXR1cm4gZXx8aXNOYU4obi56SW5kZXgpPzIxNDc0ODMwMDE6bi56SW5kZXh9LERsPWZ1bmN0aW9uKHQpe3ZhciBlPXQuaXNMYXVuY2hlckVuYWJsZWQsbj10LmN1c3RvbWl6YXRpb24udmVydGljYWxQYWRkaW5nLHI9dC5sYXVuY2hlclRleHQ7cmV0dXJuIGU/ISghcnx8IXIudHJpbSgpKT9uOm4rUmwoKStVbCgpOm59LEJsPWZ1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuIG51bGwhPShlPW51bGw9PShuPXQuY3VzdG9taXphdGlvbik/dm9pZCAwOm4ubWVzc2VuZ2VyV2lkdGgpP2U6NDAwfSxWbD1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4iZGFyayI9PT0obnVsbD09KGU9dC5jb2xvcnMpP3ZvaWQgMDplLnRoZW1lTW9kZSk/TmwuZS5jb250YWluZXJCYXNlTmV1dHJhbDpNbC5tLmNvbnRhaW5lckJhc2VOZXV0cmFsfSxHbD1mdW5jdGlvbih0KXtyZXR1cm4gdC5pc1Nwb3RsaWdodFNoZWxsP2Z1bmN0aW9uKHQpe3ZhciBlO3JldHVybiJkYXJrIj09PShudWxsPT0oZT10LmNvbG9ycyk/dm9pZCAwOmUudGhlbWVNb2RlKT9ObC5lLnRleHREZWZhdWx0Ok1sLm0udGV4dERlZmF1bHR9KHQpOnQuY29sb3JzLmxhdW5jaGVySWNvbkNvbG9yfSxxbD1mdW5jdGlvbih0KXtyZXR1cm4iXG4gIEBrZXlmcmFtZXMgaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLWxhdW5jaGVyIHtcbiAgICBmcm9tIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLWdyYWRpZW50IHtcbiAgICBmcm9tIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBpbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbWVzc2VuZ2VyIHtcbiAgICAwJSB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB9XG4gICAgNDAlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG4gIH1cblxuICAuaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogIitGbCh0KSsnO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBmb250LWZhbWlseTogc3lzdGVtLXVpLCAiU2Vnb2UgVUkiLCBSb2JvdG8sIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYsICJBcHBsZSBDb2xvciBFbW9qaSIsICJTZWdvZSBVSSBFbW9qaSIsICJTZWdvZSBVSSBTeW1ib2wiO1xuICB9XG5cbiAgLmludGVyY29tLWxpZ2h0d2VpZ2h0LWFwcC1ncmFkaWVudCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICcrKEZsKHQpKzEpKyI7XG4gICAgd2lkdGg6IDUwMHB4O1xuICAgIGhlaWdodDogNTAwcHg7XG4gICAgYm90dG9tOiAwO1xuICAgICIrKCJjZW50ZXIiPT09dC5jdXN0b21pemF0aW9uLmFsaWdubWVudD8ibGVmdDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7Ijp0LmN1c3RvbWl6YXRpb24uYWxpZ25tZW50KyI6IDA7IikrIlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChcbiAgICAgIGVsbGlwc2UgYXQgYm90dG9tICIrdC5jdXN0b21pemF0aW9uLmFsaWdubWVudCsiLFxuICAgICAgcmdiYSgyOSwgMzksIDU0LCAwLjE2KSAwJSxcbiAgICAgIHJnYmEoMjksIDM5LCA1NCwgMCkgNzIlKTtcbiAgICBhbmltYXRpb246IGludGVyY29tLWxpZ2h0d2VpZ2h0LWFwcC1ncmFkaWVudCAyMDBtcyBlYXNlLW91dDtcbiAgfVxuXG4gIC5pbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAiKyhGbCh0KSsyKSsiO1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm90dG9tOiAiKyhmdW5jdGlvbih0KXt2YXIgZT10LmlzTW9iaWxlLG49dC5jdXN0b21pemF0aW9uO3JldHVybiBlP3psKCk6TWF0aC5tYXgobi52ZXJ0aWNhbFBhZGRpbmd8fFBsLmhQLFBsLmhQKX0odCkrKHQuaXNTcG90bGlnaHRTaGVsbD84OjApKSsicHg7XG4gICAgIisoImNlbnRlciI9PT10LmN1c3RvbWl6YXRpb24uYWxpZ25tZW50PyJsZWZ0OiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsiOnQuY3VzdG9taXphdGlvbi5hbGlnbm1lbnQrIjogIisobj0oZT10KS5pc01vYmlsZSxyPWUuY3VzdG9taXphdGlvbiwobj9QbC5YJDpyLmhvcml6b250YWxQYWRkaW5nKSsicHg7IikpKyJcbiAgICBtYXgtd2lkdGg6ICIrUmwoKSsicHg7XG4gICAgd2lkdGg6ICIrUmwoKSsicHg7XG4gICAgbWF4LWhlaWdodDogIitSbCgpKyJweDtcbiAgICBoZWlnaHQ6ICIrUmwoKSsicHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICIrKHQuaXNTcG90bGlnaHRTaGVsbD9WbCh0KTp0LmNvbG9ycy5wcmltYXJ5Q29sb3IpKyI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDZweCAwIHJnYmEoMCwgMCwgMCwgMC4wNiksIDAgMnB4IDMycHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNjdtcyBjdWJpYy1iZXppZXIoMC4zMywgMC4wMCwgMC4wMCwgMS4wMCk7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIH1cblxuXG4gIC5pbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXI6aG92ZXIge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBjdWJpYy1iZXppZXIoMC4zMywgMC4wMCwgMC4wMCwgMS4wMCk7XG4gICAgdHJhbnNmb3JtOiAiKygiY2VudGVyIj09PXQuY3VzdG9taXphdGlvbi5hbGlnbm1lbnQ/InRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMS4xKSI6InNjYWxlKDEuMSkiKSsiXG4gIH1cblxuICAuaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLWxhdW5jaGVyOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiAiKygiY2VudGVyIj09PXQuY3VzdG9taXphdGlvbi5hbGlnbm1lbnQ/InRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMC44NSkiOiJzY2FsZSgwLjg1KSIpKyI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEzNG1zIGN1YmljLWJlemllcigwLjQ1LCAwLCAwLjIsIDEpO1xuICB9XG5cblxuICAuaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLWxhdW5jaGVyOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgIisodC5hY2Nlc3NpYmlsaXR5LnRhYk5hdmlnYXRpb24/ImJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDVweCAiK2Z1bmN0aW9uKHQpe3ZhciBlPXQuYWNjZXNzaWJpbGl0eTtyZXR1cm4gamwuTVtlLmFjY2Vzc2liaWxpdHlUaGVtZV19KHQpKyI7IjoiIikrIlxuICB9XG5cbiAgLmludGVyY29tLWxpZ2h0d2VpZ2h0LWFwcC1sYXVuY2hlci1pY29uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAiK1JsKCkrInB4O1xuICAgIGhlaWdodDogIitSbCgpKyJweDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgbGluZWFyLCBvcGFjaXR5IDgwbXMgbGluZWFyO1xuICB9XG5cbiAgLmludGVyY29tLWxpZ2h0d2VpZ2h0LWFwcC1sYXVuY2hlci1pY29uLW9wZW4ge1xuICAgICIrKHQuaXNNZXNzZW5nZXJPcGVuJiYhdC5oaWRlTGlnaHR3ZWlnaHRBcHBNZXNzZW5nZXI/IlxuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZykgc2NhbGUoMCk7XG4gICAgICAiOiJcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgc2NhbGUoMSk7XG4gICAgICAiKSsiXG4gIH1cblxuICAuaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLWxhdW5jaGVyLWljb24tb3BlbiBzdmcge1xuICAgIHdpZHRoOiAiK0hsKCkrInB4O1xuICAgIGhlaWdodDogIitIbCgpKyJweDtcbiAgfVxuXG4gIC5pbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXItaWNvbi1vcGVuIHN2ZyBwYXRoIHtcbiAgICBmaWxsOiAiK0dsKHQpKyI7XG4gIH1cblxuICAuaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLWxhdW5jaGVyLWljb24tc2VsZi1zZXJ2ZSB7XG4gICAgIisodC5pc01lc3Nlbmdlck9wZW4mJiF0LmhpZGVMaWdodHdlaWdodEFwcE1lc3Nlbmdlcj8iXG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKSBzY2FsZSgwKTtcbiAgICAgICI6IlxuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTtcbiAgICAgICIpKyJcbiAgfVxuXG4gIC5pbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXItaWNvbi1zZWxmLXNlcnZlIHN2ZyB7XG4gICAgaGVpZ2h0OiAiKyhSbCgpLTQpKyJweDtcbiAgfVxuXG4gIC5pbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXItaWNvbi1zZWxmLXNlcnZlIHN2ZyBwYXRoIHtcbiAgICBmaWxsOiAiK0dsKHQpKyI7XG4gIH1cblxuICAuaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLWxhdW5jaGVyLWN1c3RvbS1pY29uLW9wZW4ge1xuICAgIG1heC1oZWlnaHQ6ICIrSGwoKSsicHg7XG4gICAgbWF4LXdpZHRoOiAiK0hsKCkrInB4O1xuXG4gICAgIisodC5pc01lc3Nlbmdlck9wZW4mJiF0LmhpZGVMaWdodHdlaWdodEFwcE1lc3Nlbmdlcj8iXG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKSBzY2FsZSgwKTtcbiAgICAgICI6IlxuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTtcbiAgICAgICIpKyJcbiAgfVxuXG4gIC5pbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXItaWNvbi1taW5pbWl6ZSB7XG4gICAgIisodC5pc01lc3Nlbmdlck9wZW4mJiF0LmhpZGVMaWdodHdlaWdodEFwcE1lc3Nlbmdlcj8iXG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIHNjYWxlKDEpO1xuICAgICAgIjoiXG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC02MGRlZykgc2NhbGUoMCk7XG4gICAgICAiKSsiXG4gIH1cblxuICAuaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLWxhdW5jaGVyLWljb24tbWluaW1pemUgc3ZnIHBhdGgge1xuICAgIGZpbGw6ICIrR2wodCkrIjtcbiAgfVxuXG4gIC8qIEV4dGVuZGVkIGxhdW5jaGVyIHN0eWxlcyAqL1xuICAuaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLWxhdW5jaGVyLmludGVyY29tLWxhdW5jaGVyLWV4dGVuZGVkIHtcbiAgICB3aWR0aDogY2FsYygiK1BsLndyKyJweCAtIDMwcHgpO1xuICAgIG1heC13aWR0aDogY2FsYygiK1BsLndyKyJweCAtIDMwcHgpO1xuICAgIGhlaWdodDogY2FsYygiK1BsLm5rKyJweCAtIDI2cHgpO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoIitQbC5uaysicHggLSAyNnB4KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDEycHggMTJweCAhaW1wb3J0YW50O1xuICAgIGdhcDogNnB4O1xuICAgIC8qIFVzZSB0aGVtZSBiYWNrZ3JvdW5kIGluc3RlYWQgb2YgaGFyZGNvZGVkIGdyYWRpZW50ICovXG4gICAgYmFja2dyb3VuZDogIisodC5pc1Nwb3RsaWdodFNoZWxsP1ZsKHQpOnQuY29sb3JzLnByaW1hcnlDb2xvcikrIjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICAgIGJveC1zaGFkb3c6IDBweCAtMnB4IDUwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICIrKHQuaXNNZXNzZW5nZXJPcGVuJiYhdC5oaWRlTGlnaHR3ZWlnaHRBcHBNZXNzZW5nZXI/ImRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsiOiIiKSsiXG4gIH1cblxuICAuaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLWxhdW5jaGVyLmludGVyY29tLWxhdW5jaGVyLWV4dGVuZGVkIC5pbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXItaWNvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAiK0hsKCkrInB4O1xuICAgIGhlaWdodDogIitIbCgpKyJweDtcbiAgfVxuXG4gIC5pbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXItdGV4dCB7XG4gICAgLyogTWF0Y2ggdGV4dCBjb2xvciB3aXRoIGxhdW5jaGVyIGljb24gKi9cbiAgICBjb2xvcjogIitHbCh0KSsiO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIG1heC13aWR0aDogMTQwcHg7XG4gICAgb3BhY2l0eTogIisodC5pc01lc3Nlbmdlck9wZW4mJiF0LmhpZGVMaWdodHdlaWdodEFwcE1lc3Nlbmdlcj8wOjEpKyI7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA4MG1zIGxpbmVhcjtcbiAgfVxuXG4gIC5pbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbWVzc2VuZ2VyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogIisoRmwodCkrMikrIjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICIrVmwodCkrIjtcbiAgICBhbmltYXRpb246IGludGVyY29tLWxpZ2h0d2VpZ2h0LWFwcC1tZXNzZW5nZXIgMjUwbXMgY3ViaWMtYmV6aWVyKDAsIDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSAiKygiY2VudGVyIj09PXQuY3VzdG9taXphdGlvbi5hbGlnbm1lbnQ/ImNlbnRlciI6dC5jdXN0b21pemF0aW9uLmFsaWdubWVudCkrIjtcblxuICAgICIrKHQuaXNNb2JpbGU/IlxuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAiOnQuY3VzdG9taXphdGlvbi5lbWJlZE1lc3Nlbmdlcj8iXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6ICIrKHQuaXNMYXVuY2hlckVuYWJsZWQ/ImNhbGMoMTAwJSAtICIrKFJsKCkrVWwoKSt6bCgpKSsicHgpIjoiMTAwJSIpKyI7XG4gICAgICAgIG1heC1oZWlnaHQ6ICIrKHQuaXNMYXVuY2hlckVuYWJsZWQ/ImNhbGMoMTAwJSAtICIrKFJsKCkrVWwoKSt6bCgpKSsicHgpIjoiMTAwJSIpKyI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206ICIrKHQuaXNMYXVuY2hlckVuYWJsZWQ/UmwoKStVbCgpK3psKCkrInB4IjoiMCIpKyI7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAiOiJcbiAgICAgICAgd2lkdGg6ICIrQmwodCkrInB4O1xuICAgICAgICBoZWlnaHQ6ICIrZnVuY3Rpb24odCl7cmV0dXJuImNhbGMoMTAwJSAtICIrKHpsKCkrRGwodCkpKyJweCkifSh0KSsiO1xuICAgICAgICBtYXgtaGVpZ2h0OiAiK2Z1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuIG51bGwhPShlPW51bGw9PShuPXQuY3VzdG9taXphdGlvbik/dm9pZCAwOm4ubWVzc2VuZ2VySGVpZ2h0KT9lOjcwNH0odCkrInB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAyNTBweDtcbiAgICAgICAgIisoImNlbnRlciI9PT10LmN1c3RvbWl6YXRpb24uYWxpZ25tZW50PyJsZWZ0OiBjYWxjKDUwJSAtICIrQmwodCkvMisicHgpOyI6dC5jdXN0b21pemF0aW9uLmFsaWdubWVudCsiOiAiK3QuY3VzdG9taXphdGlvbi5ob3Jpem9udGFsUGFkZGluZysicHg7IikrIlxuICAgICAgICBib3R0b206ICIrRGwodCkrInB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDVweCA0MHB4IHJnYmEoMCwwLDAsMC4xNik7XG4gICAgICAiKSsiXG5cbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICB9XG5cbiAgLmludGVyY29tLWxpZ2h0d2VpZ2h0LWFwcC1tZXNzZW5nZXItaGVhZGVyIHtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAiK1ZsKHQpKyI7XG4gIH1cblxuICAuaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLW1lc3Nlbmdlci1mb290ZXJ7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgYm90dG9tOjA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICAgIGJhY2tncm91bmQ6ICIrVmwodCkrIjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIxcHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgIC5pbnRlcmNvbS1saWdodHdlaWdodC1hcHAge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiI7dmFyIGUsbixyfSxXbD1uKDMyOTgpLEtsPW4oODc2ODEpLFpsPWZ1bmN0aW9uKHQpe3JldHVybiJzaWRlX3BhbmVsIj09PXR8fCJmdWxsX3BhZ2UiPT09dH0sSmw9ZnVuY3Rpb24odCl7cmV0dXJuISghdC5pc01lc3Nlbmdlck9wZW58fHQuaGlkZUxpZ2h0d2VpZ2h0QXBwTWVzc2VuZ2VyKX0sWWw9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLm9uTGF1bmNoZXJDbGljayxyPWUub25MYXVuY2hlckhvdmVyLG89ZS5sYXVuY2hlckxvZ29VcmwsaT1lLmFsbG93U2VsZlNlcnZlSWNvbixhPWUubGF1bmNoZXJUZXh0LHU9ZS5hY3RpdmVOb3RpZmljYXRpb25Db3VudCxzPXZvaWQgMD09PXU/MDp1LGM9dGYoZSksbD0hKCFhfHwhYS50cmltKCkpLGY9dC5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixuLCEwKSxmLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsciwhMCksZi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixjLCEwKSxmLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCJpbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXIgaW50ZXJjb20tbGF1bmNoZXIiKyhsPyIgaW50ZXJjb20tbGF1bmNoZXItZXh0ZW5kZWQiOiIiKSksZi5zZXRBdHRyaWJ1dGUoInJvbGUiLCJidXR0b24iKSxmLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksZi5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCgwLEtsLmopKCExLHMpKSxmLnNldEF0dHJpYnV0ZSgiYXJpYS1saXZlIiwicG9saXRlIiksZi5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLEpsKGUpPyJ0cnVlIjoiZmFsc2UiKTt2YXIgZD10LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKGQuc2V0QXR0cmlidXRlKCJjbGFzcyIsImludGVyY29tLWxpZ2h0d2VpZ2h0LWFwcC1sYXVuY2hlci1pY29uIGludGVyY29tLWxpZ2h0d2VpZ2h0LWFwcC1sYXVuY2hlci1pY29uLW9wZW4iKSxvKXt2YXIgcD10LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpO3Auc2V0QXR0cmlidXRlKCJzcmMiLG8pLHAuc2V0QXR0cmlidXRlKCJhbHQiLCIiKSxwLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCJpbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXItY3VzdG9tLWljb24tb3BlbiIpLGQuYXBwZW5kQ2hpbGQocCl9ZWxzZSBpPyhkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCJpbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXItaWNvbiBpbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXItaWNvbi1zZWxmLXNlcnZlIiksZC5pbm5lckhUTUw9JzxzdmcgYXJpYS1oaWRkZW49InRydWUiIHZpZXdCb3g9IjEgMSA2MCA2MCI+PHBhdGggZD0iTTI3Ljc2NSA0Mi4yNDRjLTguNjE0IDAtMTUuNjIyLTcuMDA4LTE1LjYyMi0xNS42MjJTMTkuMTUxIDExIDI3Ljc2NSAxMXMxNS42MjIgNy4wMDggMTUuNjIyIDE1LjYyMi03LjAwNyAxNS42MjItMTUuNjIyIDE1LjYyMnptMC0yOC4zOThjLTcuMDQ1IDAtMTIuNzc1IDUuNzMtMTIuNzc1IDEyLjc3NXM1LjczIDEyLjc3NSAxMi43NzUgMTIuNzc1IDEyLjc3NS01LjczIDEyLjc3NS0xMi43NzUtNS43My0xMi43NzUtMTIuNzc1LTEyLjc3NXoiLz48cGF0aCBkPSJNMzQuODY5IDM5LjE0Nmw0LjAxNC0zLjczOCA5LjI4NiA5LjExNGEzLjE2NCAzLjE2NCAwIDAxLS4wNyA0LjU2MmwtLjA3MS4wNjZhMy4xNjMgMy4xNjMgMCAwMS00LjU2MS0uMjU3bC04LjU5OC05Ljc0N3pNMjcuNzcgMzQuMTczYy0yLjg4MiAwLTUuNDEyLS44NzYtNy42NTYtMi41MjZhMS4wMDIgMS4wMDIgMCAwMS0uMzUtLjgxYy4wMDgtLjQ2MS40NDUtLjk2OSAxLjAyLS45NTkuMjg0LjAwNS40OTMuMTUzLjcxMy4zMDggMS44MzcgMS4zMDIgMy44MzIgMS45NzEgNi4yNzUgMS45NzEgMS44NzUgMCA0LjQ5Mi0uNDc2IDYuMzE0LTIuMTE4YS45OC45OCAwIDAxLjYzOC0uMjYxLjkyLjkyIDAgMDEuNjg2LjI0MWMuMjIyLjIwOS4zMy41MjcuMzM2LjczNWExLjAyIDEuMDIgMCAwMS0uMzE4Ljc3NWMtMS4zMzMgMS4yMzctNC4yNjIgMi42NDQtNy42NTggMi42NDR6Ii8+PC9zdmc+XG4nKTpkLmlubmVySFRNTD0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAzMiI+PHBhdGggZD0iTTI4IDMycy00LjcxNC0xLjg1NS04LjUyNy0zLjM0SDMuNDM3QzEuNTQgMjguNjYgMCAyNy4wMjYgMCAyNS4wMTNWMy42NDRDMCAxLjYzMyAxLjU0IDAgMy40MzcgMGgyMS4xMjVjMS44OTggMCAzLjQzNyAxLjYzMiAzLjQzNyAzLjY0NXYxOC40MDRIMjhWMzJ6bS00LjEzOS0xMS45ODJhLjg4Ljg4IDAgMDAtMS4yOTItLjEwNWMtLjAzLjAyNi0zLjAxNSAyLjY4MS04LjU3IDIuNjgxLTUuNDg2IDAtOC41MTctMi42MzYtOC41NzEtMi42ODRhLjg4Ljg4IDAgMDAtMS4yOS4xMDcgMS4wMSAxLjAxIDAgMDAtLjIxOS43MDguOTkyLjk5MiAwIDAwLjMxOC42NjRjLjE0Mi4xMjggMy41MzcgMy4xNSA5Ljc2MiAzLjE1IDYuMjI2IDAgOS42MjEtMy4wMjIgOS43NjMtMy4xNWEuOTkyLjk5MiAwIDAwLjMxNy0uNjY0IDEuMDEgMS4wMSAwIDAwLS4yMTgtLjcwN3oiLz48L3N2Zz4nO2lmKGYuYXBwZW5kQ2hpbGQoZCksbCYmYSl7dmFyIGg9dC5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7aC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLWxhdW5jaGVyLXRleHQiKSxoLnRleHRDb250ZW50PWEsZi5hcHBlbmRDaGlsZChoKX1pZighbCl7dmFyIHY9dC5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt2LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCJpbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXItaWNvbiBpbnRlcmNvbS1saWdodHdlaWdodC1hcHAtbGF1bmNoZXItaWNvbi1taW5pbWl6ZSIpLHYuaW5uZXJIVE1MPSc8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPlxuICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE4LjYwMSA4LjM5ODk3QzE4LjI2OSA4LjA2NzAyIDE3LjczMDkgOC4wNjcwMiAxNy4zOTg5IDguMzk4OTdMMTIgMTMuNzk3OUw2LjYwMDk5IDguMzk4OTdDNi4yNjkwNCA4LjA2NzAyIDUuNzMwODYgOC4wNjcwMiA1LjM5ODkxIDguMzk4OTdDNS4wNjY5NiA4LjczMDkxIDUuMDY2OTYgOS4yNjkxIDUuMzk4OTEgOS42MDEwNUwxMS4zOTg5IDE1LjYwMUMxMS43MzA5IDE1LjkzMyAxMi4yNjkgMTUuOTMzIDEyLjYwMSAxNS42MDFMMTguNjAxIDkuNjAxMDVDMTguOTMyOSA5LjI2OTEgMTguOTMyOSA4LjczMDkxIDE4LjYwMSA4LjM5ODk3WiIgZmlsbD0iY3VycmVudENvbG9yIi8+XG48L3N2Zz5cbicsZi5hcHBlbmRDaGlsZCh2KX1yZXR1cm4gZn0sUWw9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmludGVyY29tLWxpZ2h0d2VpZ2h0LWFwcC1sYXVuY2hlciIpfSxYbD1mdW5jdGlvbih0LGUsbixyLG8saSl7cmV0dXJuIGZ1bmN0aW9uKGEpe2lmKGkudGV4dENvbnRlbnQ9cWwoYSksZS5sb2NhbGUhPT1hLmxvY2FsZSYmKDAsV2wueFMpKGEubG9jYWxlKSwhZS5pc0FwcEFjdGl2ZSYmYS5pc0FwcEFjdGl2ZT90LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobik6ZS5pc0FwcEFjdGl2ZSYmIWEuaXNBcHBBY3RpdmUmJnQuZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChuKSwhZS5pc0xhdW5jaGVyRW5hYmxlZCYmYS5pc0xhdW5jaGVyRW5hYmxlZCl7dmFyIHU9WWwodCxhKTtuLmFwcGVuZENoaWxkKHUpfWVsc2UgaWYoIWEuaXNMYXVuY2hlckVuYWJsZWQpe3ZhciBzPVFsKHQpO3MmJm4uY29udGFpbnMocykmJm4ucmVtb3ZlQ2hpbGQocyl9dmFyIGM9UWwodCk7YyYmYy5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLEpsKGEpPyJ0cnVlIjoiZmFsc2UiKSxlLmlzTWVzc2VuZ2VyT3Blbnx8IWEuaXNNZXNzZW5nZXJPcGVufHxhLmhpZGVMaWdodHdlaWdodEFwcE1lc3Nlbmdlcnx8YS5pc1Nwb3RsaWdodFNoZWxsfHxabChhLm1lc3NlbmdlckxheW91dCk/KGUuaXNNZXNzZW5nZXJPcGVuJiYhYS5pc01lc3Nlbmdlck9wZW58fCFlLmlzU3BvdGxpZ2h0U2hlbGwmJmEuaXNTcG90bGlnaHRTaGVsbCYmYS5pc01lc3Nlbmdlck9wZW4pJiZuLmNvbnRhaW5zKHIpJiYobi5yZW1vdmVDaGlsZChyKSxuLnJlbW92ZUNoaWxkKG8pKToobi5hcHBlbmRDaGlsZChyKSxuLmFwcGVuZENoaWxkKG8pKSxlPWF9fSwkbD1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXQuZG9jdW1lbnQuYm9keTtlJiZuLmNvbnRhaW5zKGUpJiZuLnJlbW92ZUNoaWxkKGUpfX0sdGY9ZnVuY3Rpb24odCl7dmFyIGU9dC5vbkxhdW5jaGVyS2V5cHJlc3M7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPXQua2V5Q29kZTtuIT09VmMuUmsuRU5URVImJm4hPT1WYy5Say5TUEFDRXx8ZSgpfX0sZWY9ZnVuY3Rpb24odCl7dmFyIGU9dC5vblRhYktleURvd247cmV0dXJuIGZ1bmN0aW9uKHQpe3Qua2V5Q29kZT09PVZjLlJrLlRBQiYmZSgpfX0sbmY9ZnVuY3Rpb24odCl7dmFyIGU9dC5vbkNsaWNrO3JldHVybiBmdW5jdGlvbigpe2UoKX19LHJmPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5pc0FwcEFjdGl2ZSxyPWUuaXNMYXVuY2hlckVuYWJsZWQsbz1lLmlzTGF1bmNoZXJTZXR0aW5nc0xvYWRpbmcsaT1lLmxvY2FsZSxhPWUuaXNTcG90bGlnaHRTaGVsbDt2b2lkIDAhPT1pJiYoMCxXbC54UykoaSk7dmFyIHM9ZWYoZSksYz1uZihlKTt0LmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHMsITApLHQuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGMsITEpO3ZhciBsPXQuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYobC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwIiksbiYmdC5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGwpLHIpe3ZhciBmPVlsKHQsZSk7bC5hcHBlbmRDaGlsZChmKX1lbHNlIG98fCgwLHUuRGYpKCJbSW50ZXJjb21dIExhdW5jaGVyIGlzIGRpc2FibGVkIGluIHNldHRpbmdzIG9yIGN1cnJlbnQgcGFnZSBkb2VzIG5vdCBtYXRjaCBkaXNwbGF5IGNvbmRpdGlvbnMiKTt2YXIgZD10LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Quc2V0QXR0cmlidXRlKCJjbGFzcyIsImludGVyY29tLWxpZ2h0d2VpZ2h0LWFwcC1tZXNzZW5nZXIgaW50ZXJjb20tbWVzc2VuZ2VyIiksZC5zZXRBdHRyaWJ1dGUoImFyaWEtbGl2ZSIsInBvbGl0ZSIpO3ZhciBwPXQuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLW1lc3Nlbmdlci1oZWFkZXIiKSxkLmFwcGVuZENoaWxkKHApO3ZhciBoPXQuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLW1lc3Nlbmdlci1mb290ZXIiKSxkLmFwcGVuZENoaWxkKGgpO3ZhciB2PXQuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7di5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiaW50ZXJjb20tbGlnaHR3ZWlnaHQtYXBwLWdyYWRpZW50IiksIUpsKGUpfHxhfHxabChlLm1lc3NlbmdlckxheW91dCl8fChsLmFwcGVuZENoaWxkKGQpLGwuYXBwZW5kQ2hpbGQodikpO3ZhciB5PXQuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTt5LnNldEF0dHJpYnV0ZSgiaWQiLCJpbnRlcmNvbS1saWdodHdlaWdodC1hcHAtc3R5bGUiKSx5LnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvY3NzIik7dmFyIGc9dC5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShxbChlKSk7cmV0dXJuIHkuYXBwZW5kQ2hpbGQoZyksbC5hcHBlbmRDaGlsZCh5KSx7dXBkYXRlTGlnaHR3ZWlnaHRBcHA6WGwodCxlLGwsZCx2LGcpLHJlbW92ZUxpZ2h0d2VpZ2h0QXBwOiRsKHQsbCl9fSxvZj0oMCxHci5NeikoW2Z1bmN0aW9uKHQpe3JldHVybiB0LmFwcH0sZnVuY3Rpb24odCl7cmV0dXJuIHQubGF1bmNoZXJTZXR0aW5nc31dLChmdW5jdGlvbih0LGUpe3JldHVybiB0LmlzQm9vdGVkfHx0LmJvb3RGYWlsZWR8fHQuaXNCb290aW5nJiYobnVsbD09ZT92b2lkIDA6ZS5pbnN0YW50Qm9vdEVuYWJsZWQpfHx0LmlzQm9vdGluZyYmIShudWxsIT1lJiZlLmlzTG9hZGluZykmJihudWxsPT1lP3ZvaWQgMDplLnNob3dMYXVuY2hlcil9KSksYWY9big0NjY0OSksdWY9ZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6Ri5IR0ssaXNBY3RpdmU6dH19O2Z1bmN0aW9uIHNmKCl7cmV0dXJuIHNmPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sc2YuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBjZj0oMCxHci5qOCkoe2lzQXBwQWN0aXZlOm9mLGlzTGF1bmNoZXJFbmFibGVkOnAuQSxpc0xhdW5jaGVyU2V0dGluZ3NMb2FkaW5nOkNsLnJYLGlzTWVzc2VuZ2VyT3BlbjpPbC5BLGN1c3RvbWl6YXRpb246aC5BeSxhY2Nlc3NpYmlsaXR5OkFsLGNvbG9yczpUbCxsYXVuY2hlckxvZ29Vcmw6Q2wuWEssbGF1bmNoZXJUZXh0OkNsLm5DLGFsbG93U2VsZlNlcnZlSWNvbjplby5OcCxsb2NhbGU6YWYuQSxoaWRlTGlnaHR3ZWlnaHRBcHBNZXNzZW5nZXI6ZW8uQ08saXNVbmlmaWVkU3R5bGluZzpvYy5TSSxpc1Nwb3RsaWdodFNoZWxsOmVvLm1CLG1lc3NlbmdlckxheW91dDpoLmxkfSksbGY9ZnVuY3Rpb24odCl7dmFyIGU9KDAsb2MuQlUpKHQuZ2V0U3RhdGUoKSk7KDAsVi5BNSkoImNsaWNrZWQiLCJsYXVuY2hlciIsImluX2FwcCIsIiIse2lzX21lc3Nlbmdlcl9vcGVuOiExLGlzX2N1c3RvbV9sYXVuY2hlcjohMSxzcGFjZV9vcGVuZWQ6ZX0pLHQuZGlzcGF0Y2goKDAscmMua0IpKCkpfSxmZj1mdW5jdGlvbih0LGUpe3ZhciBuPWZ1bmN0aW9uKHQsZSl7cmV0dXJue2lzTW9iaWxlOigwLGkuSVMpKCksb25MYXVuY2hlckNsaWNrOmZ1bmN0aW9uKCl7ZS5nZXRTdGF0ZSgpLmFjY2Vzc2liaWxpdHkudGFiTmF2aWdhdGlvbiYmZS5kaXNwYXRjaCgoMCx4Lnk4KSghMSkpLGxmKGUpfSxvbkxhdW5jaGVySG92ZXI6ZnVuY3Rpb24oKXtlLmRpc3BhdGNoKCgwLFJuLkxWKSgpKSxlLmRpc3BhdGNoKCgwLFJuLnBSKSgpKX0sb25MYXVuY2hlcktleXByZXNzOmZ1bmN0aW9uKCl7bGYoZSl9LG9uQ2xpY2s6ZnVuY3Rpb24oKXtlLmdldFN0YXRlKCkuYWNjZXNzaWJpbGl0eS50YWJOYXZpZ2F0aW9uJiZlLmRpc3BhdGNoKCgwLHgueTgpKCExKSl9LG9uVGFiS2V5RG93bjpmdW5jdGlvbigpe2UuZ2V0U3RhdGUoKS5hY2Nlc3NpYmlsaXR5LnRhYk5hdmlnYXRpb258fGUuZGlzcGF0Y2goKDAseC55OCkoITApKX19fSgwLGUpLHI9Y2YoZS5nZXRTdGF0ZSgpKSxvPXNmKHt9LHIsbiksYT1yZih0LG8pLHU9YS51cGRhdGVMaWdodHdlaWdodEFwcCxzPWEucmVtb3ZlTGlnaHR3ZWlnaHRBcHA7ZS5kaXNwYXRjaCh1ZighMCkpO3ZhciBjPWUuc3Vic2NyaWJlKChmdW5jdGlvbigpe3ZhciB0PWNmKGUuZ2V0U3RhdGUoKSk7aWYodCE9PXIpe3ZhciBvPXNmKHt9LHQsbik7dShvKX19KSk7cmV0dXJuIGZ1bmN0aW9uKCl7YygpLHModCksZS5kaXNwYXRjaCh1ZighMSkpfX0sZGY9big3NTc2NSkscGY9bigxMzUwNSksaGY9KDAsR3IuTXopKFtmdW5jdGlvbih0KXtyZXR1cm4gdC5hcHAuaXNNZXNzZW5nZXJPcGVufV0sKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpLHZmPSgwLEdyLk16KShbei5BXSwoZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoPjB9KSkseWY9KDAsR3IuTXopKFtILkFdLChmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGg+MH0pKSxnZj0oMCxHci5NeikoW2RmLkFdLChmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGg+MH0pKSxtZj0oMCxHci5NeikoW2Z1bmN0aW9uKHQpe3JldHVybiB0Lmluc3RhbGwuaXNJbnN0YWxsTW9kZU9wZW59XSwoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSksYmY9KDAsR3IuTXopKFtmdW5jdGlvbih0KXtyZXR1cm4gdC5iYW5uZXJzfV0sKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aD4wfSkpLHdmPSgwLEdyLk16KShbcGYuY1ZdLChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKSxfZj0oMCxHci5NeikoW2Z1bmN0aW9uKHQpe3JldHVybiB0LmxhdW5jaGVyRGlzY292ZXJ5TW9kZS5pc0xhdW5jaGVyRGlzY292ZXJ5TW9kZU9wZW5pbmd9XSwoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSksU2Y9KDAsR3IuTXopKFtmdW5jdGlvbih0KXtyZXR1cm4gdC50b3VyLmFjdGl2ZVRvdXJ9XSwoZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXR9KSkseGY9KDAsR3IuTXopKFtmdW5jdGlvbih0KXtyZXR1cm4gdC5zdXJ2ZXl9XSwoZnVuY3Rpb24odCl7cmV0dXJuISF0fSkpLEVmPSgwLEdyLk16KShbZnVuY3Rpb24odCl7cmV0dXJuIHQubnVkZ2V9XSwoZnVuY3Rpb24odCl7cmV0dXJuISF0fSkpLENmPSgwLEdyLk16KShbaGYsdmYseWYsZ2YsbWYsYmYsd2YsX2YsU2YseGYsRWZdLChmdW5jdGlvbih0LGUsbixyLG8saSxhLHUscyxjLGwpe3JldHVybiBCb29sZWFuKHR8fGV8fG58fHJ8fG98fGl8fGF8fHV8fHN8fGN8fGwpfSkpLE9mPW4oNTYxMDkpLEFmPW4oOTc0NCk7ZnVuY3Rpb24gSWYodCl7cmV0dXJuIElmPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxJZih0KX1mdW5jdGlvbiBrZigpe2tmPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3ZhciB0LGU9e30sbj1PYmplY3QucHJvdG90eXBlLHI9bi5oYXNPd25Qcm9wZXJ0eSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24odCxlLG4pe3RbZV09bi52YWx1ZX0saT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxhPWkuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIix1PWkuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIscz1pLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gYyh0LGUsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtjKHt9LCIiKX1jYXRjaCh0KXtjPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1ufX1mdW5jdGlvbiBsKHQsZSxuLHIpe3ZhciBpPWUmJmUucHJvdG90eXBlIGluc3RhbmNlb2YgZz9lOmcsYT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSx1PW5ldyBMKHJ8fFtdKTtyZXR1cm4gbyhhLCJfaW52b2tlIix7dmFsdWU6Tyh0LG4sdSl9KSxhfWZ1bmN0aW9uIGYodCxlLG4pe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6dC5jYWxsKGUsbil9fWNhdGNoKHQpe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOnR9fX1lLndyYXA9bDt2YXIgZD0ic3VzcGVuZGVkU3RhcnQiLHA9InN1c3BlbmRlZFlpZWxkIixoPSJleGVjdXRpbmciLHY9ImNvbXBsZXRlZCIseT17fTtmdW5jdGlvbiBnKCl7fWZ1bmN0aW9uIG0oKXt9ZnVuY3Rpb24gYigpe312YXIgdz17fTtjKHcsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgXz1PYmplY3QuZ2V0UHJvdG90eXBlT2YsUz1fJiZfKF8oVChbXSkpKTtTJiZTIT09biYmci5jYWxsKFMsYSkmJih3PVMpO3ZhciB4PWIucHJvdG90eXBlPWcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodyk7ZnVuY3Rpb24gRSh0KXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2ModCxlLChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faW52b2tlKGUsdCl9KSl9KSl9ZnVuY3Rpb24gQyh0LGUpe2Z1bmN0aW9uIG4obyxpLGEsdSl7dmFyIHM9Zih0W29dLHQsaSk7aWYoInRocm93IiE9PXMudHlwZSl7dmFyIGM9cy5hcmcsbD1jLnZhbHVlO3JldHVybiBsJiYib2JqZWN0Ij09SWYobCkmJnIuY2FsbChsLCJfX2F3YWl0Iik/ZS5yZXNvbHZlKGwuX19hd2FpdCkudGhlbigoZnVuY3Rpb24odCl7bigibmV4dCIsdCxhLHUpfSksKGZ1bmN0aW9uKHQpe24oInRocm93Iix0LGEsdSl9KSk6ZS5yZXNvbHZlKGwpLnRoZW4oKGZ1bmN0aW9uKHQpe2MudmFsdWU9dCxhKGMpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJ0aHJvdyIsdCxhLHUpfSkpfXUocy5hcmcpfXZhciBpO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKHQscil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgZSgoZnVuY3Rpb24oZSxvKXtuKHQscixlLG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIE8oZSxuLHIpe3ZhciBvPWQ7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PWgpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZihvPT09dil7aWYoInRocm93Ij09PWkpdGhyb3cgYTtyZXR1cm57dmFsdWU6dCxkb25lOiEwfX1mb3Ioci5tZXRob2Q9aSxyLmFyZz1hOzspe3ZhciB1PXIuZGVsZWdhdGU7aWYodSl7dmFyIHM9QSh1LHIpO2lmKHMpe2lmKHM9PT15KWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1yLm1ldGhvZClyLnNlbnQ9ci5fc2VudD1yLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1yLm1ldGhvZCl7aWYobz09PWQpdGhyb3cgbz12LHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2UicmV0dXJuIj09PXIubWV0aG9kJiZyLmFicnVwdCgicmV0dXJuIixyLmFyZyk7bz1oO3ZhciBjPWYoZSxuLHIpO2lmKCJub3JtYWwiPT09Yy50eXBlKXtpZihvPXIuZG9uZT92OnAsYy5hcmc9PT15KWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19InRocm93Ij09PWMudHlwZSYmKG89dixyLm1ldGhvZD0idGhyb3ciLHIuYXJnPWMuYXJnKX19fWZ1bmN0aW9uIEEoZSxuKXt2YXIgcj1uLm1ldGhvZCxvPWUuaXRlcmF0b3Jbcl07aWYobz09PXQpcmV0dXJuIG4uZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09ciYmZS5pdGVyYXRvci5yZXR1cm4mJihuLm1ldGhvZD0icmV0dXJuIixuLmFyZz10LEEoZSxuKSwidGhyb3ciPT09bi5tZXRob2QpfHwicmV0dXJuIiE9PXImJihuLm1ldGhvZD0idGhyb3ciLG4uYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSkseTt2YXIgaT1mKG8sZS5pdGVyYXRvcixuLmFyZyk7aWYoInRocm93Ij09PWkudHlwZSlyZXR1cm4gbi5tZXRob2Q9InRocm93IixuLmFyZz1pLmFyZyxuLmRlbGVnYXRlPW51bGwseTt2YXIgYT1pLmFyZztyZXR1cm4gYT9hLmRvbmU/KG5bZS5yZXN1bHROYW1lXT1hLnZhbHVlLG4ubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT1uLm1ldGhvZCYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSxuLmRlbGVnYXRlPW51bGwseSk6YToobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLG4uZGVsZWdhdGU9bnVsbCx5KX1mdW5jdGlvbiBJKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIGsodCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9Im5vcm1hbCIsZGVsZXRlIGUuYXJnLHQuY29tcGxldGlvbj1lfWZ1bmN0aW9uIEwodCl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOiJyb290In1dLHQuZm9yRWFjaChJLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIFQoZSl7aWYoZXx8IiI9PT1lKXt2YXIgbj1lW2FdO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciBvPS0xLGk9ZnVuY3Rpb24gbigpe2Zvcig7KytvPGUubGVuZ3RoOylpZihyLmNhbGwoZSxvKSlyZXR1cm4gbi52YWx1ZT1lW29dLG4uZG9uZT0hMSxuO3JldHVybiBuLnZhbHVlPXQsbi5kb25lPSEwLG59O3JldHVybiBpLm5leHQ9aX19dGhyb3cgbmV3IFR5cGVFcnJvcihJZihlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfXJldHVybiBtLnByb3RvdHlwZT1iLG8oeCwiY29uc3RydWN0b3IiLHt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMH0pLG8oYiwiY29uc3RydWN0b3IiLHt2YWx1ZTptLGNvbmZpZ3VyYWJsZTohMH0pLG0uZGlzcGxheU5hbWU9YyhiLHMsIkdlbmVyYXRvckZ1bmN0aW9uIiksZS5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT1tfHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSxlLm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxiKToodC5fX3Byb3RvX189YixjKHQscywiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh4KSx0fSxlLmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSxFKEMucHJvdG90eXBlKSxjKEMucHJvdG90eXBlLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5Bc3luY0l0ZXJhdG9yPUMsZS5hc3luYz1mdW5jdGlvbih0LG4scixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyBDKGwodCxuLHIsbyksaSk7cmV0dXJuIGUuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sRSh4KSxjKHgscywiR2VuZXJhdG9yIiksYyh4LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksYyh4LCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksZS5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LGUudmFsdWVzPVQsTC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkwscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKGspLCFlKWZvcih2YXIgbiBpbiB0aGlzKSJ0Ij09PW4uY2hhckF0KDApJiZyLmNhbGwodGhpcyxuKSYmIWlzTmFOKCtuLnNsaWNlKDEpKSYmKHRoaXNbbl09dCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgbj10aGlzO2Z1bmN0aW9uIG8ocixvKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5hcmc9ZSxuLm5leHQ9cixvJiYobi5tZXRob2Q9Im5leHQiLG4uYXJnPXQpLCEhb31mb3IodmFyIGk9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2k+PTA7LS1pKXt2YXIgYT10aGlzLnRyeUVudHJpZXNbaV0sdT1hLmNvbXBsZXRpb247aWYoInJvb3QiPT09YS50cnlMb2MpcmV0dXJuIG8oImVuZCIpO2lmKGEudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPXIuY2FsbChhLCJjYXRjaExvYyIpLGM9ci5jYWxsKGEsImZpbmFsbHlMb2MiKTtpZihzJiZjKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8YS5jYXRjaExvYylyZXR1cm4gbyhhLmNhdGNoTG9jLCEwKX1lbHNle2lmKCFjKXRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIG89dGhpcy50cnlFbnRyaWVzW25dO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJnIuY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZpLnRyeUxvYzw9ZSYmZTw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPXQsYS5hcmc9ZSxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyx5KTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLHl9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksayhuKSx5fX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBvPXIuYXJnO2sobil9cmV0dXJuIG99fXRocm93IEVycm9yKCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHQiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOlQoZSkscmVzdWx0TmFtZTpuLG5leHRMb2M6cn0sIm5leHQiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSx5fX0sZX1mdW5jdGlvbiBMZih0LGUsbixyLG8saSxhKXt0cnl7dmFyIHU9dFtpXShhKSxzPXUudmFsdWV9Y2F0Y2godCl7cmV0dXJuIHZvaWQgbih0KX11LmRvbmU/ZShzKTpQcm9taXNlLnJlc29sdmUocykudGhlbihyLG8pfWZ1bmN0aW9uIFRmKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBhKHQpe0xmKGkscixvLGEsdSwibmV4dCIsdCl9ZnVuY3Rpb24gdSh0KXtMZihpLHIsbyxhLHUsInRocm93Iix0KX1hKHZvaWQgMCl9KSl9fXZhciBqZj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe2lmKCgwLGVvLkxPKSh0LmdldFN0YXRlKCkpfHxDZih0LmdldFN0YXRlKCkpKWUoKTtlbHNlIHZhciBuPXQuc3Vic2NyaWJlKChmdW5jdGlvbigpe0NmKHQuZ2V0U3RhdGUoKSkmJihuKCksZSgpKX0pKX0pKX0sUGY9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihlKXt2YXIgbj10LnN1YnNjcmliZSgoZnVuY3Rpb24oKXsoMCxPZi5PaykodC5nZXRTdGF0ZSgpKSYmKG4oKSxlKCkpfSkpfSkpfSxOZj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUsbil7dmFyIHI9bmV3IEltYWdlO3IuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGUocil9KSksci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKGZ1bmN0aW9uKCl7cmV0dXJuIG4ocil9KSksci5zcmM9dH0pKX0sTWY9ZnVuY3Rpb24oKXt2YXIgdD1UZihrZigpLm1hcmsoKGZ1bmN0aW9uIHQoZSxuLHIpe3ZhciBvLGksYSx1LHMsYyxsLGYsZDtyZXR1cm4ga2YoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdC5uZXh0PTIsemYobik7Y2FzZSAyOnJldHVybiBvPSgwLEFmLmtyKSgpLGk9bz9vLndpbmRvdzplLGE9KDAsbGEuQWQpKG4uZ2V0U3RhdGUoKSksdT0hKDAsZW8uTE8pKG4uZ2V0U3RhdGUoKSkmJiFhLmFsd2F5c1Zpc2libGUscz11P2ZmKGksbik6ZnVuY3Rpb24oKXt9LGY9ITAsZD1mdW5jdGlvbigpe2YmJihsP2woKTpzKCksYyYmYygpLGY9ITEpfSxyJiZyKGQpLFBmKG4pLnRoZW4oVGYoa2YoKS5tYXJrKChmdW5jdGlvbiB0KCl7dmFyIGU7cmV0dXJuIGtmKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQubmV4dD0yLFVmKCk7Y2FzZSAyOmU9dC5zZW50LGYmJihjPWUoaSxuKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCl9KSkpKSxqZihuKS50aGVuKFRmKGtmKCkubWFyaygoZnVuY3Rpb24gdCgpe3ZhciBlLHIsbztyZXR1cm4ga2YoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZihmKXt0Lm5leHQ9MjticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMjpyZXR1cm4gdC5uZXh0PTQsUmYoKTtjYXNlIDQ6cmV0dXJuIGU9dC5zZW50LHQubmV4dD03LGUoaSxuKTtjYXNlIDc6bD10LnNlbnQscj0hMSxvPW4uc3Vic2NyaWJlKChmdW5jdGlvbigpe3ZhciB0PW4uZ2V0U3RhdGUoKTshciYmdC5hcHAuaXNNb3VudGVkJiYocj0hMCxzKCksbygpKX0pKTtjYXNlIDEwOmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCl9KSkpKSx0LmFicnVwdCgicmV0dXJuIixkKTtjYXNlIDEzOmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCl9KSkpO3JldHVybiBmdW5jdGlvbihlLG4scil7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxSZj1mdW5jdGlvbigpe3ZhciB0PVRmKGtmKCkubWFyaygoZnVuY3Rpb24gdChlKXt2YXIgcixvLGk7cmV0dXJuIGtmKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHZvaWQgMD09PWUmJihlPTMpLHQucHJldj0xLHI9RGF0ZS5ub3coKSx0Lm5leHQ9NSxFbCgpKFRmKGtmKCkubWFyaygoZnVuY3Rpb24gdCgpe3JldHVybiBrZigpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB0Lm5leHQ9MixQcm9taXNlLmFsbChbbi5lKDU1NjMpLG4uZSg3ODcyKSxuLmUoNDMxNSksbi5lKDg0NjIpLG4uZSgzNTI0KV0pLnRoZW4obi5iaW5kKG4sNjI4OTYpKTtjYXNlIDI6cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iLHQuc2VudCk7Y2FzZSAzOmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCl9KSkpLHtyZXRyaWVzOmV9KTtjYXNlIDU6cmV0dXJuIG89dC5zZW50LGk9RGF0ZS5ub3coKSwoMCxWLlZlKSgibG9hZF9hcHBfYnVuZGxlX2R1cmF0aW9uIixpLXIpLHQuYWJydXB0KCJyZXR1cm4iLG8uZGVmYXVsdCk7Y2FzZSAxMTp0aHJvdyB0LnByZXY9MTEsdC50MD10LmNhdGNoKDEpLCgwLFYub1MpKCJsb2FkX2FwcF9idW5kbGVfZmFpbGVkIiksdC50MDtjYXNlIDE1OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCxudWxsLFtbMSwxMV1dKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksVWY9ZnVuY3Rpb24oKXt2YXIgdD1UZihrZigpLm1hcmsoKGZ1bmN0aW9uIHQoZSl7dmFyIHI7cmV0dXJuIGtmKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHZvaWQgMD09PWUmJihlPTMpLHQucHJldj0xLHQubmV4dD00LEVsKCkoVGYoa2YoKS5tYXJrKChmdW5jdGlvbiB0KCl7cmV0dXJuIGtmKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQubmV4dD0yLFByb21pc2UuYWxsKFtuLmUoNTU2Myksbi5lKDg0NjIpLG4uZSg4NjM1KV0pLnRoZW4obi5iaW5kKG4sODUzNjQpKTtjYXNlIDI6cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iLHQuc2VudCk7Y2FzZSAzOmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCl9KSkpLHtyZXRyaWVzOmV9KTtjYXNlIDQ6cmV0dXJuIHI9dC5zZW50LHQuYWJydXB0KCJyZXR1cm4iLHIuZGVmYXVsdCk7Y2FzZSA4OnRocm93IHQucHJldj04LHQudDA9dC5jYXRjaCgxKSx0LnQwO2Nhc2UgMTE6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LG51bGwsW1sxLDhdXSl9KSkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHpmPWZ1bmN0aW9uKCl7dmFyIHQ9VGYoa2YoKS5tYXJrKChmdW5jdGlvbiB0KGUpe3ZhciBuLHI7cmV0dXJuIGtmKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYodC5wcmV2PTAsbj1lLmdldFN0YXRlKCkscj1uLmFwcC5sYXVuY2hlckxvZ29Vcmwpe3QubmV4dD01O2JyZWFrfXJldHVybiB0LmFicnVwdCgicmV0dXJuIik7Y2FzZSA1OnJldHVybiB0Lm5leHQ9NyxOZihyKTtjYXNlIDc6dC5uZXh0PTExO2JyZWFrO2Nhc2UgOTp0LnByZXY9OSx0LnQwPXQuY2F0Y2goMCk7Y2FzZSAxMTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsbnVsbCxbWzAsOV1dKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksSGY9TWYsRmY9QSgpKCJpbnRlcmNvbS5hcHAuYWN0aW9ucy51c2VyLnNraXAtcGluZyIpO2Z1bmN0aW9uIERmKHQsZSxuKXt2YXIgcj1EYXRlLm5vdygpLWUubGFzdFJlcXVlc3RBdDtpZihGZigiVGltZSBzaW5jZSBsYXN0IHBpbmcgKGluIG1pbGxpc2Vjb25kcyk6IixyKSxyPjM2ZTUpcmV0dXJuITE7aWYoIXR8fCgwLGdlLkkpKHQpKXJldHVybiEwO3ZhciBvPSEhdC5lbWFpbCYmdC5lbWFpbCE9PShudWxsPT1uP3ZvaWQgMDpuLmVtYWlsKSxpPSEhdC51c2VyX2lkJiZ0LnVzZXJfaWQhPT0obnVsbD09bj92b2lkIDA6bi51c2VySWQpLGE9ISF0LmFwcF9pZCYmdC5hcHBfaWQhPT0obnVsbD09bj92b2lkIDA6bi5hcHBJZCk7aWYob3x8aXx8YSlyZXR1cm4hMTt2YXIgdT1VYyh0KTtpZigoMCxnZS5JKSh1KSlyZXR1cm4hMDt2YXIgcz1lLmN1c3RvbUF0dHJpYnV0ZXM7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHUpPT09SlNPTi5zdHJpbmdpZnkocyl9dmFyIEJmPW4oODcxMzMpO2Z1bmN0aW9uIFZmKHQpe3JldHVybiBWZj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sVmYodCl9ZnVuY3Rpb24gR2YoKXtyZXR1cm4gR2Y9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxHZi5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcWYoKXtxZj1mdW5jdGlvbigpe3JldHVybiBlfTt2YXIgdCxlPXt9LG49T2JqZWN0LnByb3RvdHlwZSxyPW4uaGFzT3duUHJvcGVydHksbz1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsdT1pLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHM9aS50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGModCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7Yyh7fSwiIil9Y2F0Y2godCl7Yz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gbCh0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIGc/ZTpnLGE9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgTChyfHxbXSk7cmV0dXJuIG8oYSwiX2ludm9rZSIse3ZhbHVlOk8odCxuLHUpfSksYX1mdW5jdGlvbiBmKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaCh0KXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzp0fX19ZS53cmFwPWw7dmFyIGQ9InN1c3BlbmRlZFN0YXJ0IixwPSJzdXNwZW5kZWRZaWVsZCIsaD0iZXhlY3V0aW5nIix2PSJjb21wbGV0ZWQiLHk9e307ZnVuY3Rpb24gZygpe31mdW5jdGlvbiBtKCl7fWZ1bmN0aW9uIGIoKXt9dmFyIHc9e307Yyh3LGEsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIF89T2JqZWN0LmdldFByb3RvdHlwZU9mLFM9XyYmXyhfKFQoW10pKSk7UyYmUyE9PW4mJnIuY2FsbChTLGEpJiYodz1TKTt2YXIgeD1iLnByb3RvdHlwZT1nLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHcpO2Z1bmN0aW9uIEUodCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtjKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIEModCxlKXtmdW5jdGlvbiBuKG8saSxhLHUpe3ZhciBzPWYodFtvXSx0LGkpO2lmKCJ0aHJvdyIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLGw9Yy52YWx1ZTtyZXR1cm4gbCYmIm9iamVjdCI9PVZmKGwpJiZyLmNhbGwobCwiX19hd2FpdCIpP2UucmVzb2x2ZShsLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oIm5leHQiLHQsYSx1KX0pLChmdW5jdGlvbih0KXtuKCJ0aHJvdyIsdCxhLHUpfSkpOmUucmVzb2x2ZShsKS50aGVuKChmdW5jdGlvbih0KXtjLnZhbHVlPXQsYShjKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gbigidGhyb3ciLHQsYSx1KX0pKX11KHMuYXJnKX12YXIgaTtvKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKGUsbyl7bih0LHIsZSxvKX0pKX1yZXR1cm4gaT1pP2kudGhlbihvLG8pOm8oKX19KX1mdW5jdGlvbiBPKGUsbixyKXt2YXIgbz1kO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKG89PT1oKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PXYpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKHIubWV0aG9kPWksci5hcmc9YTs7KXt2YXIgdT1yLmRlbGVnYXRlO2lmKHUpe3ZhciBzPUEodSxyKTtpZihzKXtpZihzPT09eSljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89dixyLmFyZztyLmRpc3BhdGNoRXhjZXB0aW9uKHIuYXJnKX1lbHNlInJldHVybiI9PT1yLm1ldGhvZCYmci5hYnJ1cHQoInJldHVybiIsci5hcmcpO289aDt2YXIgYz1mKGUsbixyKTtpZigibm9ybWFsIj09PWMudHlwZSl7aWYobz1yLmRvbmU/djpwLGMuYXJnPT09eSljb250aW51ZTtyZXR1cm57dmFsdWU6Yy5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT1jLnR5cGUmJihvPXYsci5tZXRob2Q9InRocm93IixyLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBBKGUsbil7dmFyIHI9bi5tZXRob2Qsbz1lLml0ZXJhdG9yW3JdO2lmKG89PT10KXJldHVybiBuLmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYobi5tZXRob2Q9InJldHVybiIsbi5hcmc9dCxBKGUsbiksInRocm93Ij09PW4ubWV0aG9kKXx8InJldHVybiIhPT1yJiYobi5tZXRob2Q9InRocm93IixuLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK3IrIicgbWV0aG9kIikpLHk7dmFyIGk9ZihvLGUuaXRlcmF0b3Isbi5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9aS5hcmcsbi5kZWxlZ2F0ZT1udWxsLHk7dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhuW2UucmVzdWx0TmFtZV09YS52YWx1ZSxuLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09bi5tZXRob2QmJihuLm1ldGhvZD0ibmV4dCIsbi5hcmc9dCksbi5kZWxlZ2F0ZT1udWxsLHkpOmE6KG4ubWV0aG9kPSJ0aHJvdyIsbi5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxuLmRlbGVnYXRlPW51bGwseSl9ZnVuY3Rpb24gSSh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBrKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBMKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goSSx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBUKGUpe2lmKGV8fCIiPT09ZSl7dmFyIG49ZVthXTtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUubmV4dClyZXR1cm4gZTtpZighaXNOYU4oZS5sZW5ndGgpKXt2YXIgbz0tMSxpPWZ1bmN0aW9uIG4oKXtmb3IoOysrbzxlLmxlbmd0aDspaWYoci5jYWxsKGUsbykpcmV0dXJuIG4udmFsdWU9ZVtvXSxuLmRvbmU9ITEsbjtyZXR1cm4gbi52YWx1ZT10LG4uZG9uZT0hMCxufTtyZXR1cm4gaS5uZXh0PWl9fXRocm93IG5ldyBUeXBlRXJyb3IoVmYoZSkrIiBpcyBub3QgaXRlcmFibGUiKX1yZXR1cm4gbS5wcm90b3R5cGU9YixvKHgsImNvbnN0cnVjdG9yIix7dmFsdWU6Yixjb25maWd1cmFibGU6ITB9KSxvKGIsImNvbnN0cnVjdG9yIix7dmFsdWU6bSxjb25maWd1cmFibGU6ITB9KSxtLmRpc3BsYXlOYW1lPWMoYixzLCJHZW5lcmF0b3JGdW5jdGlvbiIpLGUuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4hIWUmJihlPT09bXx8IkdlbmVyYXRvckZ1bmN0aW9uIj09PShlLmRpc3BsYXlOYW1lfHxlLm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsYik6KHQuX19wcm90b19fPWIsYyh0LHMsIkdlbmVyYXRvckZ1bmN0aW9uIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoeCksdH0sZS5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sRShDLnByb3RvdHlwZSksYyhDLnByb3RvdHlwZSx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGUuQXN5bmNJdGVyYXRvcj1DLGUuYXN5bmM9ZnVuY3Rpb24odCxuLHIsbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgQyhsKHQsbixyLG8pLGkpO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24obik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb25lP3QudmFsdWU6YS5uZXh0KCl9KSl9LEUoeCksYyh4LHMsIkdlbmVyYXRvciIpLGMoeCxhLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGMoeCwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLGUua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QodCksbj1bXTtmb3IodmFyIHIgaW4gZSluLnB1c2gocik7cmV0dXJuIG4ucmV2ZXJzZSgpLGZ1bmN0aW9uIHQoKXtmb3IoO24ubGVuZ3RoOyl7dmFyIHI9bi5wb3AoKTtpZihyIGluIGUpcmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITEsdH1yZXR1cm4gdC5kb25lPSEwLHR9fSxlLnZhbHVlcz1ULEwucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpMLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5hcmc9dCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChrKSwhZSlmb3IodmFyIG4gaW4gdGhpcykidCI9PT1uLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsbikmJiFpc05hTigrbi5zbGljZSgxKSkmJih0aGlzW25dPXQpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciB0PXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIG49dGhpcztmdW5jdGlvbiBvKHIsbyl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuYXJnPWUsbi5uZXh0PXIsbyYmKG4ubWV0aG9kPSJuZXh0IixuLmFyZz10KSwhIW99Zm9yKHZhciBpPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dGhpcy50cnlFbnRyaWVzW2ldLHU9YS5jb21wbGV0aW9uO2lmKCJyb290Ij09PWEudHJ5TG9jKXJldHVybiBvKCJlbmQiKTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2KXt2YXIgcz1yLmNhbGwoYSwiY2F0Y2hMb2MiKSxjPXIuY2FsbChhLCJmaW5hbGx5TG9jIik7aWYocyYmYyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGEuZmluYWxseUxvYylyZXR1cm4gbyhhLmZpbmFsbHlMb2MpfWVsc2UgaWYocyl7aWYodGhpcy5wcmV2PGEuY2F0Y2hMb2MpcmV0dXJuIG8oYS5jYXRjaExvYywhMCl9ZWxzZXtpZighYyl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8YS5maW5hbGx5TG9jKXJldHVybiBvKGEuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobywiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8by5maW5hbGx5TG9jKXt2YXIgaT1vO2JyZWFrfX1pJiYoImJyZWFrIj09PXR8fCJjb250aW51ZSI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1pLmZpbmFsbHlMb2MseSk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24odCxlKXtpZigidGhyb3ciPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiJicmVhayI9PT10LnR5cGV8fCJjb250aW51ZSI9PT10LnR5cGU/dGhpcy5uZXh0PXQuYXJnOiJyZXR1cm4iPT09dC50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9dC5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PXQudHlwZSYmZSYmKHRoaXMubmV4dD1lKSx5fSxmaW5pc2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4uZmluYWxseUxvYz09PXQpcmV0dXJuIHRoaXMuY29tcGxldGUobi5jb21wbGV0aW9uLG4uYWZ0ZXJMb2MpLGsobikseX19LGNhdGNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tlXTtpZihuLnRyeUxvYz09PXQpe3ZhciByPW4uY29tcGxldGlvbjtpZigidGhyb3ciPT09ci50eXBlKXt2YXIgbz1yLmFyZztrKG4pfXJldHVybiBvfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpUKGUpLHJlc3VsdE5hbWU6bixuZXh0TG9jOnJ9LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCkseX19LGV9ZnVuY3Rpb24gV2YodCxlLG4scixvLGksYSl7dHJ5e3ZhciB1PXRbaV0oYSkscz11LnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIG4odCl9dS5kb25lP2Uocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBLZih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixvKXt2YXIgaT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gYSh0KXtXZihpLHIsbyxhLHUsIm5leHQiLHQpfWZ1bmN0aW9uIHUodCl7V2YoaSxyLG8sYSx1LCJ0aHJvdyIsdCl9YSh2b2lkIDApfSkpfX1mdW5jdGlvbiBaZih0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsSmYoci5rZXkpLHIpfX1mdW5jdGlvbiBKZih0KXt2YXIgZT1mdW5jdGlvbih0LGUpe2lmKCJvYmplY3QiIT1WZih0KXx8IXQpcmV0dXJuIHQ7dmFyIG49dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbCh0LGV8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPVZmKHIpKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09ZT9TdHJpbmc6TnVtYmVyKSh0KX0odCwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PVZmKGUpP2U6ZSsiIn12YXIgWWY9QSgpKCJpbnRlcmNvbS5hcHAiKSxRZj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGU9dGhpczt0aGlzLnJlbmRlckFwcD12b2lkIDAsdGhpcy51bm1vdW50Q3VycmVudEFwcD12b2lkIDAsdGhpcy5zZXNzaW9uPXZvaWQgMCx0aGlzLndpbmRvdz12b2lkIDAsdGhpcy5ib290Q2FsbGVkPXZvaWQgMCx0aGlzLmRlc3Ryb3lTZXNzaW9uPWZ1bmN0aW9uKHQpe2Uuc2Vzc2lvbi5kZXN0cm95KHQpLGUuc2Vzc2lvbj1uZXcgU2woZS53aW5kb3cpO3ZhciBuPSgwLEFmLnROKSgpO2UucmVuZGVyQXBwP2UucmVuZGVyQXBwLnRoZW4oKGZ1bmN0aW9uKHQpe3QoKSxuJiZuLmNsZWFudXAoKX0pKTpuJiZuLmNsZWFudXAoKSxlLnJlbmRlckFwcD12b2lkIDB9LHRoaXMud2luZG93PXQsdGhpcy5zZXNzaW9uPW5ldyBTbCh0aGlzLndpbmRvdyxudWxsLHRoaXMuZGVzdHJveVNlc3Npb24pLHRoaXMuYm9vdENhbGxlZD0hMX12YXIgZSxyLGksYT10LnByb3RvdHlwZTtyZXR1cm4gYS5ib290PWZ1bmN0aW9uKHQsZSl7aWYodGhpcy5ib290Q2FsbGVkKXJldHVybiB0aGlzLnVwZGF0ZSh0KS50aGVuKChmdW5jdGlvbigpe3JldHVybiBlKCl9KSk7dGhpcy5ib290Q2FsbGVkPSEwLHRoaXMuc2Vzc2lvbi52YWxpZGF0ZVNldHRpbmdzKCk7dmFyIG49dGhpcy5zZXNzaW9uLmdldFNldHRpbmdzKHQpO3JldHVybiBuLmRlbW9fbW9kZT90aGlzLmJvb3REZW1vTW9kZShuLGUpOih0aGlzLmZldGNoVG9vbHRpcHModCksdGhpcy5zZXNzaW9uLmZldGNoTGF1bmNoZXJTZXR0aW5nc0lmTmVjZXNzYXJ5KHQpLHRoaXMuc2Vzc2lvbi5jcmVhdGVDdXN0b21pemF0aW9uT3ZlcnJpZGUodCksdGhpcy5zZXNzaW9uLnNldExhdW5jaGVyRW5hYmxlZE92ZXJyaWRlKHQpLHJyLnppKHRoaXMuc2Vzc2lvbi5zdG9yZSxuLmFwcF9pZCksdGhpcy5jcmVhdGVPclVwZGF0ZVVzZXIodCwiYXBpQm9vdCIpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIGUoKX0pKSl9LGEuYm9vdERlbW9Nb2RlPWZ1bmN0aW9uKCl7dmFyIHQ9S2YocWYoKS5tYXJrKChmdW5jdGlvbiB0KGUscil7dmFyIG87cmV0dXJuIHFmKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQubmV4dD0yLG4uZSgxNDM0KS50aGVuKG4uYmluZChuLDkyNDAwKSk7Y2FzZSAyOm89dC5zZW50LCgwLG8uZXhlY3V0ZURlbW9Cb290KSh0aGlzLnNlc3Npb24sZSksdGhpcy5yZW5kZXJBcHB8fCh0aGlzLnJlbmRlckFwcD1IZih0aGlzLndpbmRvdyx0aGlzLnNlc3Npb24uc3RvcmUpKSxyKCk7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCx0aGlzKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxhLnNldERlbW9WaXNpYmlsaXR5PWZ1bmN0aW9uKCl7dmFyIHQ9S2YocWYoKS5tYXJrKChmdW5jdGlvbiB0KGUpe3ZhciByO3JldHVybiBxZigpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiB0Lm5leHQ9MixuLmUoMTQzNCkudGhlbihuLmJpbmQobiw5MjQwMCkpO2Nhc2UgMjpyPXQuc2VudCwoMCxyLnNldFZpc2liaWxpdHkpKHRoaXMuc2Vzc2lvbi5zdG9yZSxlKTtjYXNlIDU6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LHRoaXMpfSkpKTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxhLnNldERlbW9GZWF0dXJlcz1mdW5jdGlvbigpe3ZhciB0PUtmKHFmKCkubWFyaygoZnVuY3Rpb24gdChlKXt2YXIgcjtyZXR1cm4gcWYoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdC5uZXh0PTIsbi5lKDE0MzQpLnRoZW4obi5iaW5kKG4sOTI0MDApKTtjYXNlIDI6cj10LnNlbnQsKDAsci5zZXRGZWF0dXJlcykodGhpcy5zZXNzaW9uLnN0b3JlLGUpO2Nhc2UgNTpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQsdGhpcyl9KSkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGEuY3JlYXRlT3JVcGRhdGVVc2VyPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxyPUdmKHt9LHRoaXMuc2Vzc2lvbi5nZXRTZXR0aW5ncygpLHQpOygwLEFmLnVZKShyKSYmKDAsQWYueWYpKHRoaXMud2luZG93LHIuZW1iZWRfbWVzc2VuZ2VyLHtmdWxsUGFnZToiZnVsbF9wYWdlIj09PXIubWVzc2VuZ2VyX2xheW91dH0pO3ZhciBvPXRoaXMuc2Vzc2lvbi5jcmVhdGVPclVwZGF0ZVVzZXIodCxlKTtyZXR1cm4gdGhpcy5yZW5kZXJBcHB8fCh0aGlzLnJlbmRlckFwcD1IZih0aGlzLndpbmRvdyx0aGlzLnNlc3Npb24uc3RvcmUsKGZ1bmN0aW9uKHQpe24udW5tb3VudEN1cnJlbnRBcHA9dH0pKSksb30sYS5vcGVuTWVzc2VuZ2VyPWZ1bmN0aW9uKCl7dGhpcy5zZXNzaW9uLm9wZW5NZXNzZW5nZXIoKX0sYS5vcGVuTWVzc2VuZ2VyRnJvbUFQST1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnNlc3Npb24uc3RvcmUuZ2V0U3RhdGUoKSxuPWUudXNlcjtpZighKDAsbGEuQWQpKGUpLmFsd2F5c1Zpc2libGUpe2lmKCgwLGguRHMpKGUpKXt2YXIgcj0obnVsbD09dD92b2lkIDA6dC52aXNpYmlsaXR5KXx8QW4uY3kuc2hyaW5rZWQ7aWYocj09PUFuLmN5LmNvbGxhcHNlZCl0aGlzLnNlc3Npb24uc2hvd05ld0NvbnZlcnNhdGlvbigiIixBbi5jeS5jb2xsYXBzZWQpO2Vsc2V7dmFyIGk9KDAsbXIub1ApKGUpO3RoaXMuc2Vzc2lvbi5zdG9yZS5kaXNwYXRjaCgoMCxvLkhDKSgiIitpKygwLEJmLldDKSh7dmlzaWJpbGl0eTpyfSkpKSx0aGlzLnNlc3Npb24ub3Blbk1lc3NlbmdlcigpfX1lbHNlIHRoaXMuc2Vzc2lvbi5vcGVuTWVzc2VuZ2VyKCk7KDAsVi5Kcikobiwib3BlbmVkIiwibWVzc2VuZ2VyIiwiaW5fYXBwIiwiZnJvbV9hcGkiKX19LGEuc2hvd0FydGljbGU9ZnVuY3Rpb24odCxlLG4scil7dGhpcy5zZXNzaW9uLnNob3dBcnRpY2xlKHQsZSxuLHIpfSxhLnNob3dOZXdzPWZ1bmN0aW9uKHQpe3RoaXMuc2Vzc2lvbi5zaG93TmV3cyh0KX0sYS5zaG93VGlja2V0PWZ1bmN0aW9uKHQpe3RoaXMuc2Vzc2lvbi5zaG93VGlja2V0KHQpfSxhLnNob3dUaWNrZXRGb3JtPWZ1bmN0aW9uKHQpe3RoaXMuc2Vzc2lvbi5zaG93VGlja2V0Rm9ybSh0KX0sYS5zaG93U3BhY2U9ZnVuY3Rpb24odCl7dGhpcy5zZXNzaW9uLnNob3dTcGFjZSh0KX0sYS5jbG9zZU1lc3Nlbmdlcj1mdW5jdGlvbigpe3RoaXMuc2Vzc2lvbi5jbG9zZU1lc3NlbmdlcigpfSxhLnNldEhpZGVOb3RpZmljYXRpb25zPWZ1bmN0aW9uKHQpe3RoaXMuc2Vzc2lvbi5zZXRIaWRlTm90aWZpY2F0aW9ucyh0KX0sYS5jbG9zZU1lc3NlbmdlckZyb21BUEk9ZnVuY3Rpb24oKXt0aGlzLnNlc3Npb24uY2xvc2VNZXNzZW5nZXIoKTt2YXIgdD10aGlzLnNlc3Npb24uc3RvcmUuZ2V0U3RhdGUoKS51c2VyOygwLFYuSnIpKHQsImNsb3NlZCIsIm1lc3NlbmdlciIsIm1lc3NlbmdlciIsImZyb21fYXBpIil9LGEuc2hvd0NvbnZlcnNhdGlvbnM9ZnVuY3Rpb24oKXt0aGlzLnNlc3Npb24uc2hvd0NvbnZlcnNhdGlvbnMoKX0sYS5zaG93TmV3Q29udmVyc2F0aW9uPWZ1bmN0aW9uKHQpe3RoaXMuc2Vzc2lvbi5zaG93TmV3Q29udmVyc2F0aW9uKHQpfSxhLnN0YXJ0Q29udmVyc2F0aW9uPWZ1bmN0aW9uKHQsZSl7dGhpcy5zZXNzaW9uLnN0YXJ0Q29udmVyc2F0aW9uKHQsZSl9LGEuc2VuZE1lc3NhZ2U9ZnVuY3Rpb24odCl7dGhpcy5zZXNzaW9uLnNlbmRNZXNzYWdlKHQpfSxhLnNob3dDb252ZXJzYXRpb249ZnVuY3Rpb24odCl7dGhpcy5zZXNzaW9uLnNob3dDb252ZXJzYXRpb24odCl9LGEuc3RhcnRTdXJ2ZXk9ZnVuY3Rpb24odCl7dmFyIGU9cGFyc2VJbnQodCwxMCk7aWYoaXNOYU4oZSkpKDAsdS5qUCkoIkludmFsaWQgc3VydmV5SWQgcGFzc2VkIHRvIHN0YXJ0U3VydmV5LiBzdXJ2ZXlJZCBtdXN0IGJlIGEgbnVtYmVyIik7ZWxzZXt0aGlzLnNlc3Npb24uc3RhcnRTdXJ2ZXkoZSk7dmFyIG49dGhpcy5zZXNzaW9uLnN0b3JlLmdldFN0YXRlKCkudXNlcjsoMCxWLkpyKShuLCJyZXF1ZXN0ZWQiLCJtZXNzZW5nZXIiLCJzdXJ2ZXkiLCJmcm9tX2FwaSIse3J1bGVzZXRfaWQ6ZX0pfX0sYS5zdGFydENoZWNrbGlzdD1mdW5jdGlvbih0KXt2YXIgZT1wYXJzZUludCh0LDEwKTtpc05hTihlKT8oMCx1LmpQKSgiSW52YWxpZCBjaGVja2xpc3RJZCBwYXNzZWQgdG8gc3RhcnRDaGVja2xpc3QuIENoZWNrbGlzdElkIG11c3QgYmUgYSBudW1iZXIiKTp0aGlzLnNlc3Npb24uc3RhcnRDaGVja2xpc3QoZSl9LGEuc3RhcnRUb3VyPWZ1bmN0aW9uKHQpe3ZhciBlPXBhcnNlSW50KHQsMTApO2lmKGlzTmFOKGUpKSgwLHUualApKCJJbnZhbGlkIHRvdXJJZCBwYXNzZWQgdG8gc3RhcnRUb3VyLiB0b3VySWQgbXVzdCBiZSBhIG51bWJlciIpO2Vsc2V7dGhpcy5zZXNzaW9uLnN0YXJ0VG91cihlKTt2YXIgbj10aGlzLnNlc3Npb24uc3RvcmUuZ2V0U3RhdGUoKS51c2VyOygwLFYuSnIpKG4sInJlcXVlc3RlZCIsIm1lc3NlbmdlciIsInRvdXIiLCJmcm9tX2FwaSIse3RvdXJfaWQ6ZX0pfX0sYS5jcmVhdGVFdmVudD1mdW5jdGlvbih0LGUpe3RoaXMuc2Vzc2lvbi5jcmVhdGVFdmVudCh0LGUpfSxhLm9uTWVzc2VuZ2VyT3Blbj1mdW5jdGlvbih0KXt0aGlzLnNlc3Npb24ub25NZXNzZW5nZXJPcGVuKHQpfSxhLm9uTWVzc2VuZ2VyQ2xvc2U9ZnVuY3Rpb24odCl7dGhpcy5zZXNzaW9uLm9uTWVzc2VuZ2VyQ2xvc2UodCl9LGEub25Vc2VyRW1haWxTdXBwbGllZD1mdW5jdGlvbih0KXt0aGlzLnNlc3Npb24ub25Vc2VyRW1haWxTdXBwbGllZCh0KX0sYS5vblJlYWR5PWZ1bmN0aW9uKHQpe3RoaXMuc2Vzc2lvbi5vblJlYWR5KHQpfSxhLm9uVW5yZWFkQ29udmVyc2F0aW9uQ291bnRDaGFuZ2U9ZnVuY3Rpb24odCl7dGhpcy5zZXNzaW9uLm9uVW5yZWFkQ29udmVyc2F0aW9uQ291bnRDaGFuZ2UodCl9LGEuZ2V0QXJ0aWNsZVJlYWN0aW9uPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLnNlc3Npb24uZ2V0QXJ0aWNsZVJlYWN0aW9uKHQsZSxuKX0sYS5jcmVhdGVBcnRpY2xlUmVhY3Rpb249ZnVuY3Rpb24odCxlLG4scil7dGhpcy5zZXNzaW9uLmNyZWF0ZUFydGljbGVSZWFjdGlvbih0LGUsbixyKX0sYS5wcmV2aWV3SW5ib3VuZEN1c3RvbUJvdD1mdW5jdGlvbih0KXt0aGlzLnNlc3Npb24ucHJldmlld0luYm91bmRDdXN0b21Cb3QodCl9LGEucHJldmlld091dGJvdW5kQ3VzdG9tQm90PWZ1bmN0aW9uKHQpe3RoaXMuc2Vzc2lvbi5wcmV2aWV3T3V0Ym91bmRDdXN0b21Cb3QodCl9LGEucHJldmlld1dvcmtmbG93PWZ1bmN0aW9uKHQpe3RoaXMuc2Vzc2lvbi5wcmV2aWV3V29ya2Zsb3codCl9LGEuY3JlYXRlTWV0cmljPWZ1bmN0aW9uKHQsZSl7dGhpcy5zZXNzaW9uLmNyZWF0ZU1ldHJpYyh0LGUpfSxhLmdldFZpc2l0b3JJZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNlc3Npb24uZ2V0VmlzaXRvcklkKCl9LGEuZ2V0VXNlckluZm89ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2Vzc2lvbi5nZXRVc2VySW5mbyh0KX0sYS5nZXRTbWFydFN1Z2dlc3Rpb25zPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zZXNzaW9uLnN0b3JlLmdldFN0YXRlKCk7cmV0dXJuKDAsJGUuemcpKHQpfSxhLmVudGVyVG91clByZXZpZXdNb2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlc3Npb24uZW50ZXJUb3VyUHJldmlld01vZGUodCl9LGEuZXhpdFRvdXJQcmV2aWV3TW9kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNlc3Npb24uZXhpdFRvdXJQcmV2aWV3TW9kZSgpfSxhLnByZXZpZXdTdXJ2ZXk9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2Vzc2lvbi5wcmV2aWV3U3VydmV5KHQpfSxhLnByZXZpZXdCYW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2Vzc2lvbi5wcmV2aWV3QmFubmVyKHQpfSxhLnByZXZpZXdQb3N0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlc3Npb24ucHJldmlld1Bvc3QodCl9LGEuZmV0Y2hUb29sdGlwcz1mdW5jdGlvbih0KXt0cnl7dmFyIGU9WC5MLmdldCgibGFzdFRvb2x0aXBzUmVjZWl2ZWRBdCIpLG49ZT9wYXJzZUludChlKTowO2lmKCFufHxuPChuZXcgRGF0ZSkuZ2V0VGltZSgpLTg2NGU1KXJldHVybjtyZXR1cm4gdGhpcy5zZXNzaW9uLmZldGNoVG9vbHRpcHModCl9Y2F0Y2godCl7cmV0dXJufX0sYS5wcmV2aWV3VG9vbHRpcEdyb3VwPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlc3Npb24ucHJldmlld1Rvb2x0aXBHcm91cCh0KX0sYS5leGl0UHJldmlld1Rvb2x0aXBHcm91cD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNlc3Npb24uZXhpdFByZXZpZXdUb29sdGlwR3JvdXAoKX0sYS5oYW5kbGVJbnRlcnNlY3Rpb25Cb290PWZ1bmN0aW9uKCl7dGhpcy5zZXNzaW9uLmhhbmRsZUludGVyc2VjdGlvbkJvb3QoKX0sYS50cmlnZ2VyPWZ1bmN0aW9uKHQsZSl7aWYodGhpcy5zZXNzaW9uLmlzUmVhZHkpcmV0dXJuIHRoaXMuc2Vzc2lvbi50cmlnZ2VyKHQsZSk7KDAsdS5qUCkoIkludGVyY29tIGlzIG5vdCByZWFkeS4gQWJvcnRpbmcgTWVzc2VuZ2VyVHJpZ2dlciByZXF1ZXN0Iil9LGEudHJpZ2dlckJvdD1mdW5jdGlvbih0LGUsbil7aWYodGhpcy5zZXNzaW9uLmlzUmVhZHkpcmV0dXJuIHRoaXMuc2Vzc2lvbi50cmlnZ2VyQm90KHQsZSxuKX0sYS5zZXRJbnN0YWxsYXRpb25UeXBlPWZ1bmN0aW9uKHQpe3RoaXMuc2Vzc2lvbi5zZXRJbnN0YWxsYXRpb25UeXBlKHQpfSxhLnNldEluc3RhbGxhdGlvblZlcnNpb249ZnVuY3Rpb24odCl7dGhpcy5zZXNzaW9uLnNldEluc3RhbGxhdGlvblZlcnNpb24odCl9LGEuc2V0VXNlckF1dGhUb2tlbnM9ZnVuY3Rpb24odCl7dGhpcy5zZXNzaW9uLnNldFVzZXJBdXRoVG9rZW5zKHQpfSxhLnVwZGF0ZT1mdW5jdGlvbigpe3ZhciB0PUtmKHFmKCkubWFyaygoZnVuY3Rpb24gdChlKXt2YXIgbixyLG8saSxhLHUscyxjLGwsZixkLHAsdix5PXRoaXM7cmV0dXJuIHFmKCkud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6aWYodGhpcy5zZXNzaW9uLnZhbGlkYXRlU2V0dGluZ3MoKSxuPXRoaXMuc2Vzc2lvbi5nZXRTZXR0aW5ncyhlKSxyPW4ubWVzc2VuZ2VyX2xheW91dCxvPSExLGk9ITEsciYmKHM9dGhpcy5zZXNzaW9uLnN0b3JlLmdldFN0YXRlKCksYz0oMCxoLmxkKShzKSxsPW4uZW1iZWRfbWVzc2VuZ2VyLGY9bCYmbCE9PShudWxsPT0oYT1zLmN1c3RvbWl6YXRpb25PdmVycmlkZXMpP3ZvaWQgMDphLmVtYmVkTWVzc2VuZ2VyKSxkPSExPT09KG51bGw9PSh1PSgwLEFmLmtyKSgpKT92b2lkIDA6dS5pZnJhbWUuaXNDb25uZWN0ZWQpLCJmdWxsX3BhZ2UiPT09ciYmKCJmdWxsX3BhZ2UiIT09Y3x8Znx8ZCk/KHRoaXMudHJhbnNpdGlvblRvRnVsbFBhZ2UobHx8IiIsbiksbz0hMCk6ImZ1bGxfcGFnZSI9PT1jJiYiZnVsbF9wYWdlIiE9PXImJih0aGlzLnRyYW5zaXRpb25Gcm9tRnVsbFBhZ2Uobiksbz0hMCxpPSEwKSksb3x8dGhpcy5zZXNzaW9uLmNyZWF0ZUN1c3RvbWl6YXRpb25PdmVycmlkZShlKSx0aGlzLnNlc3Npb24uc2V0TGF1bmNoZXJFbmFibGVkT3ZlcnJpZGUoZSksIXRoaXMuc2Vzc2lvbi5pc0RlbW9Nb2RlKCkpe3QubmV4dD0xMDticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMTA6aWYobnVsbCE9ZSYmZS5ndG1fY29va2llX2lkZW50aWZpZXImJnRoaXMuc2Vzc2lvbi53aGVuUmVhZHkoKGZ1bmN0aW9uKCl7dmFyIHQ9eS5zZXNzaW9uLnN0b3JlLmdldFN0YXRlKCkudXNlcjsoMCxWLkpyKSh0LCJndG1fY29va2llX2lkZW50aWZpZXIiLGUuZ3RtX2Nvb2tpZV9pZGVudGlmaWVyLCJtZXNzZW5nZXIiLCJmcm9tX2FwaSIpfSkpLHA9aT9HZih7fSxlLHtlbWJlZF9tZXNzZW5nZXI6IiJ9KTplLHY9dGhpcy5zZXNzaW9uLnN0b3JlLmdldFN0YXRlKCksIURmKHAsdi51c2VyLHYuc2Vzc2lvbikpe3QubmV4dD0yMDticmVha31ZZigiTGFzdCBwaW5nIHdhcyBsZXNzIHRoYW4gYW4gaG91ciBhZ28uIFNraXBwaW5nIHBpbmcuIiksdGhpcy5zZXNzaW9uLmZldGNoTGF1bmNoZXJTZXR0aW5nc0lmTmVjZXNzYXJ5KHt9KSx0aGlzLnNlc3Npb24uY3JlYXRlUGFnZVZpZXdFdmVudCgpLG51bGwhPXAmJnAuYXV0aF90b2tlbnMmJnRoaXMuc2V0VXNlckF1dGhUb2tlbnMocC5hdXRoX3Rva2VucyksdC5uZXh0PTI2O2JyZWFrO2Nhc2UgMjA6cmV0dXJuIHQucHJldj0yMCx0Lm5leHQ9MjMsdGhpcy5jcmVhdGVPclVwZGF0ZVVzZXIocCwiYXBpVXBkYXRlIik7Y2FzZSAyMzpyZXR1cm4gdC5wcmV2PTIzLHRoaXMuc2Vzc2lvbi5tYXJrSG9tZURhdGFBc1N0YWxlKCksdC5maW5pc2goMjMpO2Nhc2UgMjY6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LHRoaXMsW1syMCwsMjMsMjZdXSl9KSkpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGEuc3RhcnRGdWxsUGFnZU1lc3Nlbmdlcj1mdW5jdGlvbih0KXt0aGlzLnRyYW5zaXRpb25Ub0Z1bGxQYWdlKHQpfSxhLnN0b3BGdWxsUGFnZU1lc3Nlbmdlcj1mdW5jdGlvbigpe3ZhciB0LGU9bnVsbD09KHQ9dGhpcy5zZXNzaW9uLnN0b3JlLmdldFN0YXRlKCkubGF1bmNoZXJTZXR0aW5ncyk/dm9pZCAwOnQubWVzc2VuZ2VyTGF5b3V0LG49ZSYmImZ1bGxfcGFnZSIhPT1lP2U6IndpZGdldCI7dGhpcy50cmFuc2l0aW9uRnJvbUZ1bGxQYWdlKHttZXNzZW5nZXJfbGF5b3V0Om59KX0sYS50cmFuc2l0aW9uVG9GdWxsUGFnZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dGhpcy51bm1vdW50Q3VycmVudEFwcCYmKHRoaXMudW5tb3VudEN1cnJlbnRBcHAoKSx0aGlzLnVubW91bnRDdXJyZW50QXBwPXZvaWQgMCx0aGlzLnJlbmRlckFwcD12b2lkIDApO3ZhciByPSgwLEFmLnROKSgpO3ImJnIuY2xlYW51cCgpLHRoaXMuc2Vzc2lvbi5jcmVhdGVDdXN0b21pemF0aW9uT3ZlcnJpZGUoR2Yoe30sZSx7bWVzc2VuZ2VyX2xheW91dDoiZnVsbF9wYWdlIixlbWJlZF9tZXNzZW5nZXI6dH0pKSx0aGlzLnNlc3Npb24uc3RvcmUuZGlzcGF0Y2goKDAsby5GVikoKSksdGhpcy5vcGVuTWVzc2VuZ2VyKCksKDAsQWYueWYpKHRoaXMud2luZG93LHQse2Z1bGxQYWdlOiEwfSksdGhpcy5yZW5kZXJBcHA9SGYodGhpcy53aW5kb3csdGhpcy5zZXNzaW9uLnN0b3JlLChmdW5jdGlvbih0KXtuLnVubW91bnRDdXJyZW50QXBwPXR9KSl9LGEudHJhbnNpdGlvbkZyb21GdWxsUGFnZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49KDAsQWYua3IpKCk7bnVsbCE9biYmbi5pZnJhbWUmJihuLmlmcmFtZS5zdHlsZS5kaXNwbGF5PSJub25lIiksdGhpcy5jbG9zZU1lc3NlbmdlcigpLHRoaXMudW5tb3VudEN1cnJlbnRBcHAmJih0aGlzLnVubW91bnRDdXJyZW50QXBwKCksdGhpcy51bm1vdW50Q3VycmVudEFwcD12b2lkIDApO3ZhciByPSgwLEFmLnROKSgpO3ImJnIuY2xlYW51cCgpO3ZhciBvPShudWxsPT10P3ZvaWQgMDp0Lm1lc3Nlbmdlcl9sYXlvdXQpfHwid2lkZ2V0Ijt0aGlzLnNlc3Npb24uY3JlYXRlQ3VzdG9taXphdGlvbk92ZXJyaWRlKEdmKHtoaWRlX2Nsb3NlX2J1dHRvbjohMSxhdXRvX29wZW46ITF9LHQse21lc3Nlbmdlcl9sYXlvdXQ6byxlbWJlZF9tZXNzZW5nZXI6IiJ9KSksdGhpcy5zZXNzaW9uLnNldFNldHRpbmcoImVtYmVkX21lc3NlbmdlciIsIiIpLHRoaXMuc2Vzc2lvbi5zZXRTZXR0aW5nKCJtZXNzZW5nZXJfbGF5b3V0IixvKSx0aGlzLnJlbmRlckFwcD12b2lkIDAsdGhpcy53aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe2UucmVuZGVyQXBwfHwoZS5yZW5kZXJBcHA9SGYoZS53aW5kb3csZS5zZXNzaW9uLnN0b3JlLChmdW5jdGlvbih0KXtlLnVubW91bnRDdXJyZW50QXBwPXR9KSkpfSkpfSxlPXQsciYmWmYoZS5wcm90b3R5cGUsciksaSYmWmYoZSxpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfSgpLFhmPVFmLCRmPW4oMTEwOCksdGQ9big3MTQ0NCksZWQ9big5MTk2NCksbmQ9big2Nzc1MSkscmQ9big2Mjk0OCksb2Q9big0NDgzKSxpZD1uKDgzMTU4KSxhZD1uKDg0MTkwKSx1ZD1uKDE3MTU0KTtmdW5jdGlvbiBzZCh0LGUsbil7aWYoZSYmIUFycmF5LmlzQXJyYXkoZSkmJiJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpe3ZhciByPWUubGVuZ3RoO3JldHVybiBsZChlLHZvaWQgMCE9PW4mJm48cj9uOnIpfXJldHVybiB0KGUsbil9ZnVuY3Rpb24gY2QodCl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGxkKHQpfSh0KXx8ZnVuY3Rpb24odCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPXRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9dFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHQpfSh0KXx8ZnVuY3Rpb24odCxlKXtpZih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIGxkKHQsZSk7dmFyIG49e30udG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbSh0KToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP2xkKHQsZSk6dm9pZCAwfX0odCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gbGQodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfWZ1bmN0aW9uIGZkKHQpe3JldHVybiBmZD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sZmQodCl9ZnVuY3Rpb24gZGQoKXtyZXR1cm4gZGQ9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJih0W3JdPW5bcl0pfXJldHVybiB0fSxkZC5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIHBkPSJJbnRlcmNvbSI7ZnVuY3Rpb24gaGQodCl7dmFyIGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRbcGRdfSh0KTtyZXR1cm4gZSYmZS5xfHxbXX1mdW5jdGlvbiB2ZCh0LGUpe3QuY3VzdG9tX2RhdGE9ZGQoe30sdC5jdXN0b21fZGF0YSx7cHJldmlld19tb2RlOmV9KX12YXIgeWQ9big0OTAxNCksZ2Q9ImludGVyY29tLWVsZW1lbnQtcGlja2VyIjtmdW5jdGlvbiBtZCh0KXtQcm9taXNlLmFsbChbbi5lKDc4NzIpLG4uZSgzMzI2KV0pLnRoZW4obi5iaW5kKG4sNjAxNzUpKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4oMCxlLmxvZ0Vycm9yKSh0KX0pKX1mdW5jdGlvbiBiZCh0LGUsbil7dC5waWNrZXJJZnJhbWVXaW5kb3cmJnQud2luZG93LnBvc3RNZXNzYWdlKHtfX21lc3NhZ2VUeXBlOiJpbnRlcnNlY3Rpb24tc2VydmljZS1yZXNwb25zZSIsX19yZXF1ZXN0SWQ6ZSxyZXN1bHQ6bn0sdC53aW5kb3cubG9jYXRpb24ub3JpZ2luKX1mdW5jdGlvbiB3ZCh0KXt2YXIgZT10LndpbmRvdztpZihudWxsIT1lJiZlLmxvY2F0aW9uKXt2YXIgbj1mdW5jdGlvbih0KXtyZXR1cm4oMCxCZi5DSCkodC5sb2NhdGlvbilbZ2RdfHx2b2lkIDB9KGUpO2lmKG4pe3ZhciByPWZ1bmN0aW9uKHQpe3ZhciBlLG49dC5nZXRTZXR0aW5ncygpLHI9bnVsbD09bj92b2lkIDA6bi5sYW5ndWFnZV9vdmVycmlkZTtyZXR1cm57YXBwSWQ6bnVsbD09KGU9dC5zdG9yZS5nZXRTdGF0ZSgpLnNlc3Npb24pP3ZvaWQgMDplLmFwcElkLGxvY2FsZToic3RyaW5nIj09dHlwZW9mIHI/cjp2b2lkIDB9fSh0LnNlc3Npb24pLG89ci5hcHBJZCxpPXIubG9jYWxlO298fG1kKG5ldyBFcnJvcigiSW50ZXJzZWN0aW9uIHBpY2tlciBib290ZWQgd2l0aG91dCBhbiBhcHAgaWQgZnJvbSB0aGUgc2Vzc2lvbiIpKSxlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLChmdW5jdGlvbihyKXt2YXIgaSxhLHUscztpZihyLnNvdXJjZT09PXQucGlja2VySWZyYW1lV2luZG93JiZyLm9yaWdpbj09PWUubG9jYXRpb24ub3JpZ2luKXt2YXIgYz1udWxsPT0oaT1yLmRhdGEpP3ZvaWQgMDppLl9fcmVxdWVzdERhdGE7aWYoInNlbGVjdG9yLWNob3NlbiI9PT0obnVsbD09Yz92b2lkIDA6Yy5ldmVudE5hbWUpKXt2YXIgbD1udWxsPT0oYT1jLmV2ZW50RGF0YSk/dm9pZCAwOmEuc2VsZWN0b3IsZj1udWxsPT0odT1jLmV2ZW50RGF0YSk/dm9pZCAwOnUudXJsO2lmKGwmJmYpe3ZhciBkPW51bGw9PShzPXIuZGF0YSk/dm9pZCAwOnMuX19yZXF1ZXN0SWQ7KDAsXy5JRykoe3Nlc3Npb246bz97YXBwSWQ6b306bnVsbCx0b2tlbjpuLHNlbGVjdG9yOmwsdXJsOmZ9KS50aGVuKChmdW5jdGlvbigpe3JldHVybiBiZCh0LGQsInN1Y2Nlc3MiKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7bWQoZSksYmQodCxkLCJlcnJvciIpfSkpfX19fSkpLHQuaW5qZWN0SW50ZXJzZWN0aW9uKCJwcm9jZWR1cmUtZWxlbWVudC1zZWxlY3RvciIsbnVsbCE9bz9vOiIiLG51bGwhPWk/aToiIiwnXG4gICAgICAgIDxtZXRhIG5hbWU9ImludGVyc2VjdGlvbi1waWNrZXItcmVsYXkiIGNvbnRlbnQ9InRydWUiPlxuICAgICAgICA8bWV0YSBuYW1lPSJpbnRlcnNlY3Rpb24taG9zdC1vcmlnaW4iIGNvbnRlbnQ9IicrZS5sb2NhdGlvbi5vcmlnaW4rJyI+Jyl9fX12YXIgX2Q9big2NzA5OCksU2Q9bi5uKF9kKTtmdW5jdGlvbiB4ZCh0KXtyZXR1cm4geGQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHhkKHQpfWZ1bmN0aW9uIEVkKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxDZChyLmtleSkscil9fWZ1bmN0aW9uIENkKHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoIm9iamVjdCIhPXhkKHQpfHwhdClyZXR1cm4gdDt2YXIgbj10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIHI9bi5jYWxsKHQsZXx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9eGQocikpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1lP1N0cmluZzpOdW1iZXIpKHQpfSh0LCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09eGQoZSk/ZTplKyIifXZhciBPZD1uKDc4MzkwKSxBZD0iaW50ZXJjb20tc25pcHBldF9faW50ZXJzZWN0aW9uLW1vZGUiLElkPSJpbnRlcnNlY3Rpb24tZnJhbWUiLGtkPSJpbnRlcnNlY3Rpb24tY29udGFpbmVyIixMZD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXt2b2lkIDA9PT1lJiYoZT1udWxsKSx0aGlzLmludGVyY29tRG9tYWlucz1bImh0dHA6Ly9pbnRlcmNvbS50ZXN0IiwiaHR0cDovL2FwcC5pbnRlcmNvbS50ZXN0IiwiaHR0cHM6Ly9hcHAuaW50ZXJjb20uY29tIiwiaHR0cHM6Ly9hcHAuaW50ZXJjb20uaW8iLCJodHRwczovL2FwcC5maW4uYWkiLCJodHRwczovL2FwcC5ldS5pbnRlcmNvbS5jb20iLCJodHRwczovL2FwcC5ldS5maW4uYWkiLCJodHRwczovL2FwcC5hdS5pbnRlcmNvbS5jb20iLCJodHRwczovL2FwcC5hdS5maW4uYWkiLCJodHRwczovL2ludGVyY29tcmFkZXMuaW50ZXJjb20uaW8iLCJodHRwczovL2ludGVyY29tcmFkZXMuaW50ZXJjb20uY29tIiwiaHR0cHM6Ly9pbnRlcmNvbXJhZGVzLmV1LmludGVyY29tLmNvbSIsImh0dHBzOi8vaW50ZXJjb21yYWRlcy5hdS5pbnRlcmNvbS5jb20iLCJodHRwOi8vaW50ZXJjb21yYWRlcy5pbnRlcmNvbS50ZXN0Il0sdGhpcy53aW5kb3c9dCx0aGlzLm9wZW5lcj10aGlzLndpbmRvdy5vcGVuZXIsdGhpcy5zZXNzaW9uPWUsdGhpcy53aW5kb3c9PT10aGlzLndpbmRvdy5wYXJlbnR8fHRoaXMud2luZG93Lm9wZW5lcnx8KHRoaXMub3BlbmVyPXRoaXMud2luZG93LnBhcmVudCksdGhpcy5zZXR1cEludGVyc2VjdGlvbigpfXZhciBlLHIsbyxpPXQucHJvdG90eXBlO3JldHVybiBpLnNldHVwSW50ZXJzZWN0aW9uPWZ1bmN0aW9uKCl7aWYodGhpcy5oYXNQaWNrZXJUb2tlbigpKXRyeXt3ZCh0aGlzKX1jYXRjaCh0KXtQcm9taXNlLmFsbChbbi5lKDc4NzIpLG4uZSgzMzI2KV0pLnRoZW4obi5iaW5kKG4sNjAxNzUpKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4oMCxlLmxvZ0Vycm9yKSh0KX0pKX1lbHNlIHRoaXMub3BlbmVyRXhpc3RzKCkmJih0aGlzLm1vZGVFeGlzdHMoKT90aGlzLmluamVjdEludGVyc2VjdGlvbigpOih0aGlzLnNldHVwTWVzc2FnZUxpc3RlbmVyKCksdGhpcy5zZW5kTWVzc2FnZVRvT3BlbmVyKHt0eXBlOiJpbnRlcmNvbS1zbmlwcGV0X19yZWFkeSJ9KSkpfSxpLnNlbmRNZXNzYWdlVG9PcGVuZXI9ZnVuY3Rpb24odCl7KDAseWQuWjIpKHRoaXMub3BlbmVyKSYmdGhpcy5vcGVuZXIucG9zdE1lc3NhZ2UuY2FsbCh0aGlzLm9wZW5lcix0LCIqIil9LGkuaGFzUGlja2VyVG9rZW49ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGdkIGluKDAsQmYuQ0gpKHRoaXMud2luZG93LmxvY2F0aW9uKX1jYXRjaCh0KXtyZXR1cm4hMX19LGkub3BlbmVyRXhpc3RzPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLm9wZW5lcn0saS5tb2RlRXhpc3RzPWZ1bmN0aW9uKCl7cmV0dXJuISFYLnMuZ2V0KEFkKX0saS5zZXR1cE1lc3NhZ2VMaXN0ZW5lcj1mdW5jdGlvbigpe3RoaXMud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMuYm9vdEludGVyc2VjdGlvbi5iaW5kKHRoaXMpKX0saS5nZXRNb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIFgucy5nZXQoQWQpfSxpLmdldEFwcElkPWZ1bmN0aW9uKCl7cmV0dXJuIFgucy5nZXQoImludGVyY29tLXNuaXBwZXRfX2ludGVyc2VjdGlvbi1hcHAtaWQiKX0saS5nZXRMb2NhbGU9ZnVuY3Rpb24oKXtyZXR1cm4gWC5zLmdldCgiaW50ZXJjb20tc25pcHBldF9faW50ZXJzZWN0aW9uLWxvY2FsZSIpfSxpLmJvb3RJbnRlcnNlY3Rpb249ZnVuY3Rpb24odCl7LTEhPT10aGlzLmludGVyY29tRG9tYWlucy5pbmRleE9mKHQub3JpZ2luKSYmImludGVyY29tLXNuaXBwZXRfX2Jvb3QtaW50ZXJzZWN0aW9uIj09PXQuZGF0YS50eXBlJiYodGhpcy5yZW1vdmVNZXNzYWdlTGlzdGVuZXIoKSx0aGlzLnNhdmVPcGVuZXJPcmlnaW4odC5vcmlnaW4pLHRoaXMuaW5qZWN0SW50ZXJzZWN0aW9uKHQuZGF0YS5tb2RlLHQuZGF0YS5hcHBJZCx0LmRhdGEubG9jYWxlKSl9LGkucmVtb3ZlTWVzc2FnZUxpc3RlbmVyPWZ1bmN0aW9uKCl7dGhpcy53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5ib290SW50ZXJzZWN0aW9uLmJpbmQodGhpcykpfSxpLnNhdmVPcGVuZXJPcmlnaW49ZnVuY3Rpb24odCl7WC5zLnNldCgiaW50ZXJjb20tc25pcHBldF9faW50ZXJzZWN0aW9uLW9wZW5lci1vcmlnaW4iLHQpfSxpLmluamVjdEludGVyc2VjdGlvbj1mdW5jdGlvbih0LGUsbixyKXt0aGlzLndpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZCl8fCh0aGlzLmluamVjdEludGVyc2VjdGlvbkZyYW1lKCksdGhpcy5pbmplY3RFbWJlckFwcCh0LGUsbixyKSl9LGkuaW5qZWN0SW50ZXJzZWN0aW9uRnJhbWU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPXRoaXMud2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO3QuaWQ9a2QsZS5pZD1JZCxlLmZyYW1lQm9yZGVyPTAsZS5zdHlsZS5jb2xvclNjaGVtZT0ibGlnaHQiLHQuYXBwZW5kQ2hpbGQoZSksdGhpcy53aW5kb3cuZG9jdW1lbnQuYm9keS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImJlZm9yZWVuZCIsdCl9LGkuY3JlYXRlU2NyaXB0VGFnPWZ1bmN0aW9uKHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3JldHVybiBlLnR5cGU9InRleHQvamF2YXNjcmlwdCIsZS5jaGFyc2V0PSJ1dGYtOCIsZS5zcmM9dCxlfSxpLmluamVjdEZyYW1lVGVtcGxhdGU9ZnVuY3Rpb24odCxlLG4scixvKXt2b2lkIDA9PT1lJiYoZT10aGlzLmdldE1vZGUoKSksdm9pZCAwPT09biYmKG49dGhpcy5nZXRBcHBJZCgpKSx2b2lkIDA9PT1yJiYocj10aGlzLmdldExvY2FsZSgpKSx2b2lkIDA9PT1vJiYobz0iIik7dmFyIGk9U2QoKShlfHwiIiksYT1TZCgpKG58fCIiKSx1PVNkKCkocnx8IiIpO3Qub3BlbigpLHQud3JpdGUoJ1xuICAgIDwhRE9DVFlQRSBodG1sPlxuICAgICAgPGhlYWQ+XG4gICAgICAgIDx0aXRsZT5JbnRlcnNlY3Rpb24gPC90aXRsZT5cbiAgICAgICAgPG1ldGEgbmFtZT0iaW50ZXJzZWN0aW9uLW1vZGUiIGNvbnRlbnQ9JytpKyc+XG4gICAgICAgIDxtZXRhIG5hbWU9ImludGVyc2VjdGlvbi1hcHBJZCIgY29udGVudD0nK2ErJz5cbiAgICAgICAgPG1ldGEgbmFtZT0iaW50ZXJzZWN0aW9uLWxvY2FsZSIgY29udGVudD0nK3UrIj4iK28rIlxuICAgICAgICA8c3R5bGU+XG4gICAgICAgICAgaHRtbCB7XG4gICAgICAgICAgICBjb2xvci1zY2hlbWU6IGxpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICA8L3N0eWxlPlxuICAgICAgPC9oZWFkPlxuICAgICAgPGJvZHk+PC9ib2R5PlxuICAgIDwvaHRtbD5cbiAgICAiKSx0LmNsb3NlKCl9LGkuaW5qZWN0SW50ZXJzZWN0aW9uU2NyaXB0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNyZWF0ZVNjcmlwdFRhZyhPZC5pbnRlcnNlY3Rpb25fanMpLG49dGhpcy5jcmVhdGVTY3JpcHRUYWcoT2QuaW50ZXJzZWN0aW9uX3N0eWxlcyk7dC5jb250ZW50V2luZG93LmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZSksdC5jb250ZW50V2luZG93LmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobil9LGkuaW5qZWN0RW1iZXJBcHA9ZnVuY3Rpb24odCxlLG4scil7dmFyIG89dGhpcy53aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoSWQpO3RoaXMucGlja2VySWZyYW1lV2luZG93PW8uY29udGVudFdpbmRvdyx0aGlzLmluamVjdEZyYW1lVGVtcGxhdGUoby5jb250ZW50RG9jdW1lbnQsdCxlLG4sciksdGhpcy5pbmplY3RJbnRlcnNlY3Rpb25TY3JpcHRzKG8pfSxlPXQsciYmRWQoZS5wcm90b3R5cGUsciksbyYmRWQoZSxvKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlfSgpOygwLGQuVXIpKCgwLFhvLiQpKCl8fHdpbmRvdyksKDAsci5BKSh3aW5kb3cpLGZ1bmN0aW9uKHQpe2lmKHZvaWQgMCE9PXQpdHJ5e3ZhciBlPW5ldyB0LkN1c3RvbUV2ZW50KCJ0ZXN0Iix7Y2FuY2VsYWJsZTohMH0pO2lmKGUucHJldmVudERlZmF1bHQoKSwhMCE9PWUuZGVmYXVsdFByZXZlbnRlZCl0aHJvdyBuZXcgRXJyb3IoIkNvdWxkIG5vdCBwcmV2ZW50IGRlZmF1bHQiKX1jYXRjaChlKXt2YXIgbj1mdW5jdGlvbih0LGUpeyhlPWV8fHt9KS5idWJibGVzPSEhZS5idWJibGVzLGUuY2FuY2VsYWJsZT0hIWUuY2FuY2VsYWJsZTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKTtuLmluaXRDdXN0b21FdmVudCh0LGUuYnViYmxlcyxlLmNhbmNlbGFibGUsZS5kZXRhaWwpO3ZhciByPW4ucHJldmVudERlZmF1bHQ7cmV0dXJuIG4ucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXtyLmNhbGwodGhpcyk7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJkZWZhdWx0UHJldmVudGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSl9Y2F0Y2godCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwfX0sbn07bi5wcm90b3R5cGU9dC5FdmVudC5wcm90b3R5cGUsdC5DdXN0b21FdmVudD1ufX0od2luZG93KSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lPXdpbmRvdy5wYXJlbnQucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lO3ZhciBUZD1wYXJlbnQ7KDAscy5NUykod2luZG93KTt2YXIgamQ9bmV3IFhmKFRkKTsoMCxzLkxWKShqZC5zZXNzaW9uLnN0b3JlKTt2YXIgUGQ9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlLG49YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShuKSxpPTA7aTxuO2krKylyW2ldPWFyZ3VtZW50c1tpXTt2YXIgYT1mdW5jdGlvbihlLG4pe3ZvaWQgMD09PWUmJihlPXt9KSx2b2lkIDA9PT1uJiYobj1mdW5jdGlvbigpe30pLGUuYXBpX2Jhc2UmJigwLHVvLnlKKSgiYXBpX2Jhc2UiLGUuYXBpX2Jhc2UpO3ZhciByPXQuc2Vzc2lvbi5nZXRTZXR0aW5ncygpLG89ZGQoe30scixlKTtpZihvLmRpc2FibGVkKXJldHVybigwLFYuc3EpKCJtZXNzZW5nZXJfZGlzYWJsZWQiLHt9LCEwKSwoMCxWLm9TKSgibWVzc2VuZ2VyX2Rpc2FibGVkIix7YXBwX2lkOnIuYXBwX2lkfSksdm9pZCgwLFYuV0EpKHIuYXBwX2lkP3thcHBJZDpyLmFwcF9pZH06bnVsbCk7by5hcHBfaWQmJiJBUFBfSUQiIT09by5hcHBfaWR8fCgwLHUuRlMpKCJbSW50ZXJjb21dIFRoZSBBcHAgSUQgaW4geW91ciBjb2RlIHNuaXBwZXQgaGFzIG5vdCBiZWVuIHNldC4gU2V0IGl0IHRvIHlvdXIgQXBwIElEIGZvdW5kIGluIHNldHRpbmdzIHRvIGNvbXBsZXRlIGluc3RhbGxhdGlvbjogaHR0cHM6Ly9hcHAuaW50ZXJjb20uY29tL2EvYXBwcy9fL3NldHRpbmdzL3dlYiIpLHVkLm0uc2V0KHthcHBfaWQ6by5hcHBfaWR9KSwhKDAsdW8uYjUpKCkmJm8uYXBpX2Jhc2UmJiJodHRwczovL2FwaS1pYW0uaW50ZXJjb20uaW8iIT09by5hcGlfYmFzZSYmImh0dHBzOi8vYXBpLWlhbS5ldS5pbnRlcmNvbS5pbyIhPT1vLmFwaV9iYXNlJiYiaHR0cHM6Ly9hcGktaWFtLmF1LmludGVyY29tLmlvIiE9PW8uYXBpX2Jhc2UmJi0xPT09by5hcGlfYmFzZS5pbmRleE9mKCIuaW50ZXJjb20tbWVzc2VuZ2VyLmNvbSIpJiYoMCx1LkZTKSgiW0ludGVyY29tXSBUaGUgYXBpX2Jhc2UgdmFsdWUgaW4geW91ciBjb2RlIHNuaXBwZXQgaXMgaW52YWxpZC4gU2V0IGl0IHRvIHRoZSBVUkwgbWF0Y2hpbmcgeW91ciB3b3Jrc3BhY2UgcmVnaW9uIGF0IGh0dHBzOi8vZGV2ZWxvcGVycy5pbnRlcmNvbS5jb20vaW5zdGFsbGluZy1pbnRlcmNvbS93ZWIvaW5zdGFsbGF0aW9uLyNpbnN0YWxsaW5nLXRoZS1tZXNzZW5nZXItZm9yLXJlZ2lvbmFsLWRhdGEtaG9zdGVkLWN1c3RvbWVycyIpLG8uaW5zdGFsbGF0aW9uX3R5cGUmJnQuc2V0SW5zdGFsbGF0aW9uVHlwZShvLmluc3RhbGxhdGlvbl90eXBlKSxvLmluc3RhbGxhdGlvbl92ZXJzaW9uJiZ0LnNldEluc3RhbGxhdGlvblZlcnNpb24oby5pbnN0YWxsYXRpb25fdmVyc2lvbiksci5kaXNhYmxlZCYmdC5zZXNzaW9uLnNldFNldHRpbmcoImRpc2FibGVkIiwhMSksby5oYW5kb2ZmX3dpdGhfamF2YXNjcmlwdCYmKDAsTm8uVSkoby5oYW5kb2ZmX3dpdGhfamF2YXNjcmlwdCksZS5tZXNzZW5nZXJfZW52aXJvbm1lbnQmJnQuc2Vzc2lvbi5zZXRTZXR0aW5nKCJtZXNzZW5nZXJfZW52aXJvbm1lbnQiLGUubWVzc2VuZ2VyX2Vudmlyb25tZW50KSx0LmJvb3QoZSxuKX0sYz17fTtjPXtib290OmZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PXt9KSxhKHQpfSx1cGRhdGU6ZnVuY3Rpb24oZSl7dC51cGRhdGUoZSkuY2F0Y2goKGZ1bmN0aW9uKHQpeygwLHMubDIpKHR8fG5ldyBFcnJvcigiQVBJIHVwZGF0ZSBmYWlsZWQgd2l0aCBubyBlcnJvciBkZXRhaWxzIikse2NvbnRleHQ6ImFwaS51cGRhdGUiLGhhc1NldHRpbmdzOiEhZSxzZXR0aW5nc0tleXM6ZT9PYmplY3Qua2V5cyhlKTpbXX0pfSkpfSxzdGFydEZ1bGxQYWdlTWVzc2VuZ2VyOmZ1bmN0aW9uKGUpe3Quc3RhcnRGdWxsUGFnZU1lc3NlbmdlcihlKX0sc3RvcEZ1bGxQYWdlTWVzc2VuZ2VyOmZ1bmN0aW9uKCl7dC5zdG9wRnVsbFBhZ2VNZXNzZW5nZXIoKX0sc2h1dGRvd246ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9ITApLHQuZGVzdHJveVNlc3Npb24oZSl9LHNob3c6ZnVuY3Rpb24oZSl7dC5vcGVuTWVzc2VuZ2VyRnJvbUFQSShlKX0sc2hvd1NwYWNlOmZ1bmN0aW9uKGUpe3Quc2hvd1NwYWNlKGUpfSxzaG93QXJ0aWNsZTpmdW5jdGlvbihlLG4scixvKXt0LnNob3dBcnRpY2xlKGUsbixyLG8pfSxzaG93Q29sbGVjdGlvbjpmdW5jdGlvbih0KXtjWyJwcml2YXRlOm5hdmlnYXRlIl0oJGMuWkwucGF0aCsiL2NvbGxlY3Rpb24vIit0KX0sc2hvd05ld3M6ZnVuY3Rpb24oZSl7dC5zaG93TmV3cyhlKX0sc2hvd1RpY2tldDpmdW5jdGlvbihlKXt0LnNob3dUaWNrZXQoZSl9LHNob3dUaWNrZXRGb3JtOmZ1bmN0aW9uKGUpe3Quc2hvd1RpY2tldEZvcm0oZSl9LHNob3dNZXNzYWdlczpmdW5jdGlvbigpe3Quc2hvd0NvbnZlcnNhdGlvbnMoKX0sc2hvd05ld01lc3NhZ2U6ZnVuY3Rpb24oZSl7dC5zaG93TmV3Q29udmVyc2F0aW9uKGUpfSxzdGFydENvbnZlcnNhdGlvbjpmdW5jdGlvbihlLG4pe3Quc3RhcnRDb252ZXJzYXRpb24oZSxuKX0sc2hvd0NvbnZlcnNhdGlvbjpmdW5jdGlvbihlKXt0LnNob3dDb252ZXJzYXRpb24oZSl9LHN0YXJ0U3VydmV5OmZ1bmN0aW9uKGUpe3Quc3RhcnRTdXJ2ZXkoZSl9LHN0YXJ0Q2hlY2tsaXN0OmZ1bmN0aW9uKGUpe3Quc3RhcnRDaGVja2xpc3QoZSl9LHN0YXJ0VG91cjpmdW5jdGlvbihlKXt0LnN0YXJ0VG91cihlKX0saGlkZTpmdW5jdGlvbigpe3QuY2xvc2VNZXNzZW5nZXJGcm9tQVBJKCl9LGhpZGVOb3RpZmljYXRpb25zOmZ1bmN0aW9uKGUpe3Quc2V0SGlkZU5vdGlmaWNhdGlvbnMoZSl9LHRyYWNrRXZlbnQ6ZnVuY3Rpb24oZSxuKXt0LmNyZWF0ZUV2ZW50KGUsbil9LG9uU2hvdzpmdW5jdGlvbihlKXt0Lm9uTWVzc2VuZ2VyT3BlbihlKX0sb25IaWRlOmZ1bmN0aW9uKGUpe3Qub25NZXNzZW5nZXJDbG9zZShlKX0sb25VbnJlYWRDb3VudENoYW5nZTpmdW5jdGlvbihlKXt0Lm9uVW5yZWFkQ29udmVyc2F0aW9uQ291bnRDaGFuZ2UoZSl9LG9uVXNlckVtYWlsU3VwcGxpZWQ6ZnVuY3Rpb24oZSl7dC5vblVzZXJFbWFpbFN1cHBsaWVkKGUpfSxyZWFkeTpmdW5jdGlvbihlKXt0Lm9uUmVhZHkoZSl9LHRyaWdnZXI6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC50cmlnZ2VyKGUsbil9LHRyaWdnZXJCb3Q6ZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0LnRyaWdnZXJCb3QoZSxuLHIpfSxnZXRWaXNpdG9ySWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdC5nZXRWaXNpdG9ySWQoKX0sZ2V0U21hcnRTdWdnZXN0aW9uczpmdW5jdGlvbigpe3JldHVybiB0LmdldFNtYXJ0U3VnZ2VzdGlvbnMoKX0sZ2V0U2V0dGluZ3M6ZnVuY3Rpb24oKXtyZXR1cm4gdC5zZXNzaW9uLmdldFNldHRpbmdzKCl9LHdob2FtaTpmdW5jdGlvbihlKXtyZXR1cm4gdC5nZXRVc2VySW5mbyhlKX0sc2V0QXV0aFRva2VuczpmdW5jdGlvbihlKXt0LnNldFVzZXJBdXRoVG9rZW5zKGUpfSx2ZXJzaW9uOmZ1bmN0aW9uKCl7cmV0dXJuIjY2YmI4MWEwNGI2NTg2ZDYxMGQzMDZiMzFmNTUzNWExNzUyNTNjMGMifSwicHJpdmF0ZTpnZXRBcnRpY2xlUmVhY3Rpb24iOmZ1bmN0aW9uKGUsbixyKXt0LmdldEFydGljbGVSZWFjdGlvbihlLG4scil9LCJwcml2YXRlOmNyZWF0ZU1ldHJpYyI6ZnVuY3Rpb24oZSxuKXt0LmNyZWF0ZU1ldHJpYyhlLG4pfSwicHJpdmF0ZTpjcmVhdGVBcnRpY2xlUmVhY3Rpb24iOmZ1bmN0aW9uKGUsbixyLG8pe3QuY3JlYXRlQXJ0aWNsZVJlYWN0aW9uKGUsbixyLG8pfSwicHJpdmF0ZTplbnRlclRvdXJQcmV2aWV3TW9kZSI6ZnVuY3Rpb24oZSl7dC5lbnRlclRvdXJQcmV2aWV3TW9kZShlKX0sInByaXZhdGU6ZXhpdFRvdXJQcmV2aWV3TW9kZSI6ZnVuY3Rpb24oKXt0LmV4aXRUb3VyUHJldmlld01vZGUoKX0sInByaXZhdGU6Ym9vdFByZXZpZXdPdXRib3VuZEN1c3RvbUJvdCI6ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT10JiYodD17fSksdm9pZCAwPT09ZSYmKGU9ZnVuY3Rpb24oKXt9KSxhKHQsZSl9LCJwcml2YXRlOmJvb3RXaXRoQ2FsbGJhY2siOmZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09dCYmKHQ9e30pLHZvaWQgMD09PWUmJihlPWZ1bmN0aW9uKCl7fSksYSh0LGUpfSwicHJpdmF0ZTpwcmV2aWV3SW5ib3VuZEN1c3RvbUJvdCI6ZnVuY3Rpb24oZSl7dC5wcmV2aWV3SW5ib3VuZEN1c3RvbUJvdChlKX0sInByaXZhdGU6cHJldmlld091dGJvdW5kQ3VzdG9tQm90IjpmdW5jdGlvbihlKXt0LnByZXZpZXdPdXRib3VuZEN1c3RvbUJvdChlKX0sInByaXZhdGU6cHJldmlld1dvcmtmbG93IjpmdW5jdGlvbihlKXt0LnByZXZpZXdXb3JrZmxvdyhlKX0sInByaXZhdGU6c2hvd0NvbnZlcnNhdGlvbiI6ZnVuY3Rpb24oZSl7dC5zaG93Q29udmVyc2F0aW9uKGUpfSwicHJpdmF0ZTpwcmV2aWV3U3VydmV5IjpmdW5jdGlvbihlKXt0LnByZXZpZXdTdXJ2ZXkoZSl9LCJwcml2YXRlOnByZXZpZXdCYW5uZXIiOmZ1bmN0aW9uKGUpe3QucHJldmlld0Jhbm5lcihlKX0sInByaXZhdGU6cHJldmlld1Bvc3QiOmZ1bmN0aW9uKGUpe3QucHJldmlld1Bvc3QoZSl9LCJwcml2YXRlOmhhbmRsZUludGVyc2VjdGlvbkJvb3RlZCI6ZnVuY3Rpb24oKXt0LmhhbmRsZUludGVyc2VjdGlvbkJvb3QoKX0sInByaXZhdGU6cHJldmlld1Rvb2x0aXBHcm91cCI6ZnVuY3Rpb24oZSl7KDAsJGYudikoIlByZXZpZXdpbmcgdG9vbHRpcCBncm91cCIsZSksdC5wcmV2aWV3VG9vbHRpcEdyb3VwKGUpfSwicHJpdmF0ZTpleGl0UHJldmlld1Rvb2x0aXBHcm91cCI6ZnVuY3Rpb24oKXt0LmV4aXRQcmV2aWV3VG9vbHRpcEdyb3VwKCl9LCJwcml2YXRlOmJvb3RDb252ZXJzYXRpb25EZW1vTW9kZSI6ZnVuY3Rpb24oZSxuKXt2b2lkIDA9PT1lJiYoZT17fSksdm9pZCAwPT09biYmKG49ZnVuY3Rpb24oKXt9KSwoMCxuZC5GKSgpLHZkKGUsITApLGEoZSxuKSx0LnNob3dOZXdDb252ZXJzYXRpb24oKX0sInByaXZhdGU6c2VuZE1lc3NhZ2UiOmZ1bmN0aW9uKGUpe3Quc2VuZE1lc3NhZ2UoZSl9LCJwcml2YXRlOmNvbnZlcnNhdGlvbmFsOmJvb3RNZXNzZW5nZXJQcmV2aWV3IjpmdW5jdGlvbihlLG4pe3ZvaWQgMD09PWUmJihlPXt9KSx2b2lkIDA9PT1uJiYobj1mdW5jdGlvbigpe30pLCgwLG5kLkYpKCksYShlLG4pLHQuc2hvd05ld0NvbnZlcnNhdGlvbigpfSwicHJpdmF0ZTpzZXRQcmV2aWV3UGVyc29uYWxpdHlTZXR0aW5ncyI6ZnVuY3Rpb24oZSl7ZS5wcmV2aWV3UGVyc29uYWxpdHlTZXR0aW5ncyYmKCgwLG9kLlVBKShlLnByZXZpZXdQZXJzb25hbGl0eVNldHRpbmdzKSx0LnNob3dOZXdDb252ZXJzYXRpb24oKSl9LCJwcml2YXRlOnNldEZpblByZXZpZXdTZXR0aW5ncyI6ZnVuY3Rpb24oZSl7KDAsaWQuJFIpKGUpLHQuc2hvd05ld0NvbnZlcnNhdGlvbigpfSwicHJpdmF0ZTp3b3JrZmxvdzpib290TWVzc2VuZ2VyUHJldmlldyI6ZnVuY3Rpb24oZSxuKXt2YXIgcjt2b2lkIDA9PT1lJiYoZT17fSksdm9pZCAwPT09biYmKG49ZnVuY3Rpb24oKXt9KSwoMCxuZC5GKSgpLCgwLHRkLnU1KShlLndvcmtmbG93SW5zdGFuY2VJZCksKDAsdGQuTnopKGUucHJvZmlsZVZlcnNpb25JZCksKDAsYWQuVUYpKGUucHJldmlld1NldHRpbmdzKSxlLmZpblByZXZpZXdTZXR0aW5ncyYmKDAsaWQuJFIpKGUuZmluUHJldmlld1NldHRpbmdzKSxkZWxldGUgZS53b3JrZmxvd0luc3RhbmNlSWQsZGVsZXRlIGUucHJvZmlsZVZlcnNpb25JZCxkZWxldGUgZS5wcmV2aWV3U2V0dGluZ3MsZGVsZXRlIGUuZmluUHJldmlld1NldHRpbmdzLGUuZmluRXhwZXJpbWVudGFsRGVtbyYmKCgwLGVkLmRzKShlLmZpbkV4cGVyaW1lbnRhbERlbW8pLGRlbGV0ZSBlLmZpbkV4cGVyaW1lbnRhbERlbW8pLG51bGwhPShyPXQuc2Vzc2lvbi5nZXRTZXR0aW5ncygpKSYmbnVsbCE9KHI9ci5lbWFpbCkmJnIuc3RhcnRzV2l0aCgicHJldmlldy11c2VyIikmJmUucHJldmlld01vZGVDdXN0b21pemF0aW9uJiYoKDAscmQubCkoZS5wcmV2aWV3TW9kZUN1c3RvbWl6YXRpb24pLGRlbGV0ZSBlLnByZXZpZXdNb2RlQ3VzdG9taXphdGlvbiksdmQoZSwhMCksYShlLG4pLHQuc2hvd05ld0NvbnZlcnNhdGlvbigpfSwicHJpdmF0ZTpzZXREZW1vVmlzaWJpbGl0eSI6ZnVuY3Rpb24oZSl7dC5zZXREZW1vVmlzaWJpbGl0eShlKX0sInByaXZhdGU6c2V0RGVtb0ZlYXR1cmVzIjpmdW5jdGlvbihlKXtlJiYib2JqZWN0Ij09PWZkKGUpJiYhQXJyYXkuaXNBcnJheShlKSYmdC5zZXREZW1vRmVhdHVyZXMoZSl9LCJwcml2YXRlOnNldEluc3RhbGxhdGlvblR5cGUiOmZ1bmN0aW9uKGUpe3Quc2V0SW5zdGFsbGF0aW9uVHlwZShlKX0sInByaXZhdGU6bmF2aWdhdGUiOmZ1bmN0aW9uKGUsbil7dmFyIHI9KHZvaWQgMD09PW4/e306bikubWV0aG9kLGk9dm9pZCAwPT09cj8icHVzaCI6cjstMT09PWU/dC5zZXNzaW9uLnN0b3JlLmRpc3BhdGNoKCgwLG8uT0UpKCkpOnQuc2Vzc2lvbi5zdG9yZS5kaXNwYXRjaCgicHVzaCI9PT1pPygwLG8uVkMpKGUpOigwLG8uSEMpKGUpKX19O3ZhciBsPXJbMF07aWYobCYmY1tsXSYmKCF0LnNlc3Npb24uZ2V0U2V0dGluZ3MoKS5kaXNhYmxlZHx8ImJvb3QiPT09bCkpcmV0dXJuKGU9YylbbF0uYXBwbHkoZSxzZChjZCxyLnNsaWNlKDEpKSl9fShqZCksTmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGhkKHQpLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiJib290Ij09PShudWxsPT10P3ZvaWQgMDp0WzBdKXx8InNodXRkb3duIj09PShudWxsPT10P3ZvaWQgMDp0WzBdKXx8InByaXZhdGU6d29ya2Zsb3c6Ym9vdE1lc3NlbmdlclByZXZpZXciPT09KG51bGw9PXQ/dm9pZCAwOnRbMF0pfHwicHJpdmF0ZTpjb252ZXJzYXRpb25hbDpib290TWVzc2VuZ2VyUHJldmlldyI9PT0obnVsbD09dD92b2lkIDA6dFswXSl9KSl9KFRkKTshZnVuY3Rpb24odCxlKXtmb3IodmFyIG49aGQoZSk7bi5sZW5ndGg7KXt2YXIgcj1uLnNoaWZ0KCk7bnVsbCE9ciYmclswXSYmdC5hcHBseSh2b2lkIDAsc2QoY2QscikpfX0oUGQsVGQpLGZ1bmN0aW9uKHQsZSl7ZVtwZF09dCx0LmJvb3RlZD0hMH0oUGQsVGQpLE5kfHxQZCgiYm9vdCIpLG5ldyBMZChUZCxqZC5zZXNzaW9uKX0sMjM3NTY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7ZDpmdW5jdGlvbigpe3JldHVybiByfX0pO3ZhciByPXtoaWRlQ29tcG9zZXI6ITEsaGlkZUludGVyY29tTGluazohMSxoaWRlQ2xhc3NpY0hlYWRlcjohMSxoaWRlQ2xvc2VCdXR0b246ITEsc2hvd0xhdW5jaGVyOiExLGhpZGVMYXVuY2hlcldoZW5PcGVuOiExLGFsd2F5c1Zpc2libGU6ITEsY29udmVyc2F0aW9uT25seTohMSxwbGFuQXdhcmVSb3V0aW5nOiExLG11dGVTb3VuZDohMSxzcGxpdFRhYmxlQmxvY2tzOiEwLGltcHJvdmVkQ29kZUJsb2NrUmVuZGVyaW5nOiEwLGRpc2FibGVWaWRlb0F1dG9wbGF5OiExLG9wZW5BcnRpY2xlU291cmNlc0luTmV3VGFiOiExLHN0cmVhbWluZ1RhYmxlUmV2ZWFsOiExLHN1cHBvcnRzRmluVm9pY2VDYWxsOiEwLHNwb3RsaWdodE1ldHJpY3NUYWc6ITEsb3BlbnNEaXJlY3RseUludG9Db252ZXJzYXRpb246ITEsaGlkZUV4cGFuZEJ1dHRvbjohMSxoaWRlVGFibGVFeHBhbmRCdXR0b246ITEsaGlkZUNocm9tZUhlYWRlcjohMSxhdXRvRXhwYW5kQ2Fyb3VzZWxJdGVtczohMSxoaWRlUmVhbHRpbWVTdGF0dXNCYW5uZXI6ITEsY2xvc2VDb21wb3Nlck9uQ29udmVyc2F0aW9uRW5kOiExLGlubGluZUZvb3Rlck5vdGljZTohMSxtYXJrQ29udmVyc2F0aW9uUmVhZE9uVmlzaWJsZTohMSxzcG90bGlnaHROb3RpZmljYXRpb25QYXRoOiExLGhpZGVUZWFtSW50cm86ITEsaGlkZVNwZWNpYWxOb3RpY2U6ITEsc2lkZUJ5U2lkZUNhcmRMYXlvdXQ6ITEsc3BvdGxpZ2h0U2hlZXRIZWFkZXI6ITEsZGVmZXJWaWV3TWV0cmljVW50aWxWaXNpYmxlOiExLHJlc3RyaWN0Q29tcG9zZXJJbnB1dFdoZW5EaXNhYmxlZDohMSxjb21wb3Nlck93bnNNb2JpbGVLZXlib2FyZFNjcm9sbDohMSxzaG93Q29sbGFwc2VkRXhwaXJlZENhbGVuZGFyQ2FyZDohMSxzcG90bGlnaHRQcml2YWN5Tm90aWNlRm9vdGVyOiExLGhhc1Nocmlua2VkQ29tcG9zZXJTdGF0ZTohMSxzdXBwcmVzc0xhdW5jaGVyVW5yZWFkQmFkZ2U6ITEsc3VwcHJlc3NDaHJvbWVHcmFkaWVudDohMSxzdXBwcmVzc0NsYXNzaWNOdWRnZTohMSxzaGVsbFZpc2liaWxpdHlGb2xsb3dzSG9zdFN0YXRlOiExLGxhdW5jaGVyVXNlc05ldXRyYWxTdXJmYWNlOiExLHJlc3RyaWN0VGlja2V0TmF2aWdhdGlvblRvTWVzc2FnZXNSb3V0ZTohMSxjb21wYWN0Tm90aWZpY2F0aW9uQ29tcG9zZXJHYXA6ITF9fSw0NDQ0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcigpe3JldHVybiByPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49YXJndW1lbnRzW2VdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYodFtyXT1uW3JdKX1yZXR1cm4gdH0sci5hcHBseShudWxsLGFyZ3VtZW50cyl9bi5kKGUse1Y6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sZTpmdW5jdGlvbigpe3JldHVybiBvfX0pO3ZhciBvPXtoaWRlQ29tcG9zZXI6ITEsaGlkZUludGVyY29tTGluazohMCxoaWRlQ2xhc3NpY0hlYWRlcjohMCxoaWRlQ2xvc2VCdXR0b246ITAsc2hvd0xhdW5jaGVyOiExLGhpZGVMYXVuY2hlcldoZW5PcGVuOiExLGFsd2F5c1Zpc2libGU6ITAsY29udmVyc2F0aW9uT25seTohMCxwbGFuQXdhcmVSb3V0aW5nOiEwLG11dGVTb3VuZDohMCxzcGxpdFRhYmxlQmxvY2tzOiExLGltcHJvdmVkQ29kZUJsb2NrUmVuZGVyaW5nOiEwLGRpc2FibGVWaWRlb0F1dG9wbGF5OiEwLG9wZW5BcnRpY2xlU291cmNlc0luTmV3VGFiOiExLHN0cmVhbWluZ1RhYmxlUmV2ZWFsOiEwLHN1cHBvcnRzRmluVm9pY2VDYWxsOiExLHNwb3RsaWdodE1ldHJpY3NUYWc6ITEsb3BlbnNEaXJlY3RseUludG9Db252ZXJzYXRpb246ITEsaGlkZUV4cGFuZEJ1dHRvbjohMSxoaWRlVGFibGVFeHBhbmRCdXR0b246ITEsaGlkZUNocm9tZUhlYWRlcjohMSxhdXRvRXhwYW5kQ2Fyb3VzZWxJdGVtczohMSxoaWRlUmVhbHRpbWVTdGF0dXNCYW5uZXI6ITEsY2xvc2VDb21wb3Nlck9uQ29udmVyc2F0aW9uRW5kOiExLGlubGluZUZvb3Rlck5vdGljZTohMSxtYXJrQ29udmVyc2F0aW9uUmVhZE9uVmlzaWJsZTohMSxzcG90bGlnaHROb3RpZmljYXRpb25QYXRoOiExLGhpZGVUZWFtSW50cm86ITEsaGlkZVNwZWNpYWxOb3RpY2U6ITEsc2lkZUJ5U2lkZUNhcmRMYXlvdXQ6ITEsc3BvdGxpZ2h0U2hlZXRIZWFkZXI6ITEsZGVmZXJWaWV3TWV0cmljVW50aWxWaXNpYmxlOiExLHJlc3RyaWN0Q29tcG9zZXJJbnB1dFdoZW5EaXNhYmxlZDohMSxjb21wb3Nlck93bnNNb2JpbGVLZXlib2FyZFNjcm9sbDohMSxzaG93Q29sbGFwc2VkRXhwaXJlZENhbGVuZGFyQ2FyZDohMSxzcG90bGlnaHRQcml2YWN5Tm90aWNlRm9vdGVyOiExLGhhc1Nocmlua2VkQ29tcG9zZXJTdGF0ZTohMSxzdXBwcmVzc0xhdW5jaGVyVW5yZWFkQmFkZ2U6ITEsc3VwcHJlc3NDaHJvbWVHcmFkaWVudDohMSxzdXBwcmVzc0NsYXNzaWNOdWRnZTohMSxzaGVsbFZpc2liaWxpdHlGb2xsb3dzSG9zdFN0YXRlOiExLGxhdW5jaGVyVXNlc05ldXRyYWxTdXJmYWNlOiExLHJlc3RyaWN0VGlja2V0TmF2aWdhdGlvblRvTWVzc2FnZXNSb3V0ZTohMSxjb21wYWN0Tm90aWZpY2F0aW9uQ29tcG9zZXJHYXA6ITF9LGk9cih7fSxvLHtoaWRlQ2xhc3NpY0hlYWRlcjohMX0pfSw5NTE4NzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLHtIOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7dmFyIHI9e2hpZGVDb21wb3NlcjohMSxoaWRlSW50ZXJjb21MaW5rOiExLGhpZGVDbGFzc2ljSGVhZGVyOiExLGhpZGVDbG9zZUJ1dHRvbjohMSxzaG93TGF1bmNoZXI6ITAsaGlkZUxhdW5jaGVyV2hlbk9wZW46ITAsYWx3YXlzVmlzaWJsZTohMSxjb252ZXJzYXRpb25Pbmx5OiEwLHBsYW5Bd2FyZVJvdXRpbmc6ITEsbXV0ZVNvdW5kOiExLHNwbGl0VGFibGVCbG9ja3M6ITEsaW1wcm92ZWRDb2RlQmxvY2tSZW5kZXJpbmc6ITAsZGlzYWJsZVZpZGVvQXV0b3BsYXk6ITAsb3BlbkFydGljbGVTb3VyY2VzSW5OZXdUYWI6ITEsc3RyZWFtaW5nVGFibGVSZXZlYWw6ITAsc3VwcG9ydHNGaW5Wb2ljZUNhbGw6ITAsc3BvdGxpZ2h0TWV0cmljc1RhZzohMSxvcGVuc0RpcmVjdGx5SW50b0NvbnZlcnNhdGlvbjohMSxoaWRlRXhwYW5kQnV0dG9uOiExLGhpZGVUYWJsZUV4cGFuZEJ1dHRvbjohMSxoaWRlQ2hyb21lSGVhZGVyOiExLGF1dG9FeHBhbmRDYXJvdXNlbEl0ZW1zOiExLGhpZGVSZWFsdGltZVN0YXR1c0Jhbm5lcjohMCxjbG9zZUNvbXBvc2VyT25Db252ZXJzYXRpb25FbmQ6ITEsaW5saW5lRm9vdGVyTm90aWNlOiExLG1hcmtDb252ZXJzYXRpb25SZWFkT25WaXNpYmxlOiExLHNwb3RsaWdodE5vdGlmaWNhdGlvblBhdGg6ITEsaGlkZVRlYW1JbnRybzohMSxoaWRlU3BlY2lhbE5vdGljZTohMSxzaWRlQnlTaWRlQ2FyZExheW91dDohMSxzcG90bGlnaHRTaGVldEhlYWRlcjohMSxkZWZlclZpZXdNZXRyaWNVbnRpbFZpc2libGU6ITEscmVzdHJpY3RDb21wb3NlcklucHV0V2hlbkRpc2FibGVkOiExLGNvbXBvc2VyT3duc01vYmlsZUtleWJvYXJkU2Nyb2xsOiExLHNob3dDb2xsYXBzZWRFeHBpcmVkQ2FsZW5kYXJDYXJkOiExLHNwb3RsaWdodFByaXZhY3lOb3RpY2VGb290ZXI6ITEsaGFzU2hyaW5rZWRDb21wb3NlclN0YXRlOiExLHN1cHByZXNzTGF1bmNoZXJVbnJlYWRCYWRnZTohMSxzdXBwcmVzc0Nocm9tZUdyYWRpZW50OiExLHN1cHByZXNzQ2xhc3NpY051ZGdlOiExLHNoZWxsVmlzaWJpbGl0eUZvbGxvd3NIb3N0U3RhdGU6ITEsbGF1bmNoZXJVc2VzTmV1dHJhbFN1cmZhY2U6ITEscmVzdHJpY3RUaWNrZXROYXZpZ2F0aW9uVG9NZXNzYWdlc1JvdXRlOiExLGNvbXBhY3ROb3RpZmljYXRpb25Db21wb3NlckdhcDohMX19LDM1MTE2OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse2Y6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KTt2YXIgcj17aGlkZUNvbXBvc2VyOiEwLGhpZGVJbnRlcmNvbUxpbms6ITAsaGlkZUNsYXNzaWNIZWFkZXI6ITEsaGlkZUNsb3NlQnV0dG9uOiExLHNob3dMYXVuY2hlcjohMSxoaWRlTGF1bmNoZXJXaGVuT3BlbjohMSxhbHdheXNWaXNpYmxlOiExLGNvbnZlcnNhdGlvbk9ubHk6ITEscGxhbkF3YXJlUm91dGluZzohMSxtdXRlU291bmQ6ITEsc3BsaXRUYWJsZUJsb2NrczohMSxpbXByb3ZlZENvZGVCbG9ja1JlbmRlcmluZzohMSxkaXNhYmxlVmlkZW9BdXRvcGxheTohMSxvcGVuQXJ0aWNsZVNvdXJjZXNJbk5ld1RhYjohMCxzdHJlYW1pbmdUYWJsZVJldmVhbDohMCxzdXBwb3J0c0ZpblZvaWNlQ2FsbDohMSxzcG90bGlnaHRNZXRyaWNzVGFnOiEwLG9wZW5zRGlyZWN0bHlJbnRvQ29udmVyc2F0aW9uOiEwLGhpZGVFeHBhbmRCdXR0b246ITAsaGlkZVRhYmxlRXhwYW5kQnV0dG9uOiEwLGhpZGVDaHJvbWVIZWFkZXI6ITAsYXV0b0V4cGFuZENhcm91c2VsSXRlbXM6ITAsaGlkZVJlYWx0aW1lU3RhdHVzQmFubmVyOiEwLGNsb3NlQ29tcG9zZXJPbkNvbnZlcnNhdGlvbkVuZDohMCxpbmxpbmVGb290ZXJOb3RpY2U6ITAsbWFya0NvbnZlcnNhdGlvblJlYWRPblZpc2libGU6ITAsc3BvdGxpZ2h0Tm90aWZpY2F0aW9uUGF0aDohMCxoaWRlVGVhbUludHJvOiEwLGhpZGVTcGVjaWFsTm90aWNlOiEwLHNpZGVCeVNpZGVDYXJkTGF5b3V0OiEwLHNwb3RsaWdodFNoZWV0SGVhZGVyOiEwLGRlZmVyVmlld01ldHJpY1VudGlsVmlzaWJsZTohMCxyZXN0cmljdENvbXBvc2VySW5wdXRXaGVuRGlzYWJsZWQ6ITAsY29tcG9zZXJPd25zTW9iaWxlS2V5Ym9hcmRTY3JvbGw6ITAsc2hvd0NvbGxhcHNlZEV4cGlyZWRDYWxlbmRhckNhcmQ6ITAsc3BvdGxpZ2h0UHJpdmFjeU5vdGljZUZvb3RlcjohMCxoYXNTaHJpbmtlZENvbXBvc2VyU3RhdGU6ITAsc3VwcHJlc3NMYXVuY2hlclVucmVhZEJhZGdlOiEwLHN1cHByZXNzQ2hyb21lR3JhZGllbnQ6ITAsc3VwcHJlc3NDbGFzc2ljTnVkZ2U6ITAsc2hlbGxWaXNpYmlsaXR5Rm9sbG93c0hvc3RTdGF0ZTohMCxsYXVuY2hlclVzZXNOZXV0cmFsU3VyZmFjZTohMCxyZXN0cmljdFRpY2tldE5hdmlnYXRpb25Ub01lc3NhZ2VzUm91dGU6ITAsY29tcGFjdE5vdGlmaWNhdGlvbkNvbXBvc2VyR2FwOiEwLGRlZmF1bHRDdXN0b21pemF0aW9uOnthbGlnbm1lbnQ6ImNlbnRlciIsbWVzc2VuZ2VyV2lkdGg6NTkyLG1lc3NlbmdlckhlaWdodDo1NzEsY29ybmVyU3R5bGU6InJvdW5kZWQiLGF1dG9PcGVuOiEwfX19LDU3ODgwOmZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3ZhciBuPXdpbmRvdy5idG9hO2UuQT1mdW5jdGlvbih0KXtpZighbilyZXR1cm4gU3RyaW5nKHQpO3RyeXt2YXIgZT1lbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKHQpKSxyPWUucmVwbGFjZSgvJXVbMC05QS1GXXs0fS9naSwoZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQodC5zbGljZSgyKSwxNikpfSkpLnJlcGxhY2UoLyVbMC05QS1GXXsyfS9naSwoZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQodC5zbGljZSgxKSwxNikpfSkpO3JldHVybiBuKHIpfWNhdGNoKGUpe3JldHVybiBTdHJpbmcodCl9fX0sMzIyMDg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSx7aDpmdW5jdGlvbigpe3JldHVybiBpfSxyOmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7dmFyIHI9ITEsbz1mdW5jdGlvbih0KXtyPXR9LGk9ZnVuY3Rpb24oKXtyZXR1cm4gcn19LDIzOTEwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse3U6ZnVuY3Rpb24oKXtyZXR1cm4gZn19KTt2YXIgcj0uMjEyNixvPS43MTUyLGk9LjA3MjIsYT0xLzEyLjkyO2Z1bmN0aW9uIHUodCl7cmV0dXJuIE1hdGgucG93KCh0Ky4wNTUpLzEuMDU1LDIuNCl9ZnVuY3Rpb24gcyh0KXt2YXIgZT10WzBdLzI1NSxuPXRbMV0vMjU1LHM9dFsyXS8yNTUsYz1lPD0uMDM5Mjg/ZSphOnUoZSksbD1uPD0uMDM5Mjg/biphOnUobiksZj1zPD0uMDM5Mjg/cyphOnUocyk7cmV0dXJuIGMqcitsKm8rZippfWZ1bmN0aW9uIGModCl7dmFyIGU9MjU1Ozg9PT0odD10LnJlcGxhY2UoL14jLywiIikpLmxlbmd0aCYmKGU9cGFyc2VJbnQodC5zbGljZSg2LDgpLDE2KSx0PXQuc3Vic3RyaW5nKDAsNikpLDQ9PT10Lmxlbmd0aCYmKGU9cGFyc2VJbnQodC5zbGljZSgzLDQpLnJlcGVhdCgyKSwxNiksdD10LnN1YnN0cmluZygwLDMpKSwzPT09dC5sZW5ndGgmJih0PXRbMF0rdFswXSt0WzFdK3RbMV0rdFsyXSt0WzJdKTt2YXIgbj1wYXJzZUludCh0LDE2KTtyZXR1cm5bbj4+MTYsbj4+OCYyNTUsMjU1Jm4sZV19ZnVuY3Rpb24gbCh0LGUpe3JldHVybiBmdW5jdGlvbih0LGUpe3JldHVybihNYXRoLm1heCh0LGUpKy4wNSkvKE1hdGgubWluKHQsZSkrLjA1KX0ocyh0KSxzKGUpKX1mdW5jdGlvbiBmKHQsZSl7cmV0dXJuIGwoYyh0KSxjKGUpKX19LDk3Nzc1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUse0kxOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LFBDOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7dmFyIHI9big4NDA3Nyksbz0iZ3RtX2Nvb2tpZV9jb25zZW50IjtmdW5jdGlvbiBpKHQpe3JldHVybihudWxsPT10P3ZvaWQgMDp0LnJlcXVpcmVzQ29va2llQ29uc2VudCl8fCExfWZ1bmN0aW9uIGEodCl7aWYoIXQpcmV0dXJuITA7aWYoISh0LnJlcXVpcmVzQ29va2llQ29uc2VudHx8ITEpKXJldHVybiEwO3ZhciBlPXIuQS5yZWFkKG8pO2lmKCFlKXJldHVybiExO3ZhciBuPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdC5mcm9tRW50cmllcyh0LnNwbGl0KCIrIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm5bdCwhMF19KSkpLG49ZS5hZHZlcnRpc2luZyxyPWUubWFya2V0aW5nLG89ZS5hbmFseXRpY3MsaT1lLnBlcmZvcm1hbmNlO3JldHVybnthZHZlcnRpc2luZzohIW4sYW5hbHl0aWNzOiEhbyxtYXJrZXRpbmc6ISFyLHBlcmZvcm1hbmNlOiEhaX19KGUpO3JldHVybiBuLmFuYWx5dGljc319LDY2ODU0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93KXJldHVybiBudWxsO3RyeXtyZXR1cm4gd2luZG93LnBhcmVudH1jYXRjaCh0KXtyZXR1cm4gbnVsbH19bi5kKGUseyQ6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KX0sOTg2MTY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDY5NzQ0KSxvPW4oNjY4NTQpO2UuQT1mdW5jdGlvbih0KXt2YXIgZSxuPXQucHJvbWlzZSxpPXQubWF4UmV0cmllcyxhPXZvaWQgMD09PWk/MzppLHU9MCxzPW51bGw9PShlPSgwLG8uJCkoKSk/dm9pZCAwOmUucmVxdWVzdEFuaW1hdGlvbkZyYW1lLGM9ZnVuY3Rpb24gdChlLG8pe24oKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gZSh0KX0pLChmdW5jdGlvbihuKXt1PGEmJnM/KHUrPTEsd2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIHMoKGZ1bmN0aW9uKCl7cmV0dXJuIHQoZSxvKX0pKX0pLDFlMyp1KSk6KCgwLHIuc3EpKCJkeW5hbWljSW1wb3J0Q2RuRXJyb3IiLHttZXNzYWdlOm4mJm4ubWVzc2FnZX0pLG8obikpfSkpfTtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGModCxlKX0pKX19LDgwNDk2OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsbztuLmQoZSx7VVM6ZnVuY3Rpb24oKXtyZXR1cm4gbH0sWm46ZnVuY3Rpb24oKXtyZXR1cm4gZn0sZng6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sbVM6ZnVuY3Rpb24oKXtyZXR1cm4gY30sdkg6ZnVuY3Rpb24oKXtyZXR1cm4gc30seDY6ZnVuY3Rpb24oKXtyZXR1cm4gdX19KTt2YXIgaT0hMSxhPWZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHU9ZnVuY3Rpb24odCl7cmV0dXJuIHI9dH0scz1mdW5jdGlvbih0KXtyZXR1cm4gbz10fSxjPWZ1bmN0aW9uKCl7cmV0dXJuIG99LGw9ZnVuY3Rpb24oKXtyZXR1cm4haX0sZj1mdW5jdGlvbih0KXtyZXR1cm4gaT10fX0sNzA0NDE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiByPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbg=="}},"time_used":273,"timings":{"blocked":-1,"dns":3,"connect":8,"send":0,"wait":10,"receive":10,"ssl":240},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/mass-media/associated-press.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.066Z","timestamp":1785121660066,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/mass-media/associated-press.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:39 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 1964\r\ndate: Mon, 27 Jul 2026 03:07:39 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":1964,"size_decoded":2229,"mime_type":"image/png","magic":"PNG image data, 300 x 52, 8-bit colormap, non-interlaced","md5":"787def5df69e0b296a10cc4d6333ce8a","sha1":"008ff7187ee0f21f5fc0c82888f9520c30c9f22e","sha256":"0acb4ae6f56f05c3e3b31ae9b1837ca844196ca8610d8d8d9c8eda1327788ddf","sha512":"ed805b1ada21f18c734ffaec36d5eede8d3d5f6d28e6710d2ce8303a85f0f51c015194fc60638a6b69593d8fe3f6a2fc6dabda644501d45e03a9678a6d06dc78","ssdeep":"","tlshash":"d7413be578186835e67f37b56170fae620faf9a01634911f30446c33cc1ab41c6f179a","first_seen":"2026-07-27T02:49:41.000471Z","last_seen":"2026-07-27T03:09:30.398687Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":386,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":386,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/green-oval.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.203Z","timestamp":1785121660203,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/green-oval.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/css/main.css?v=1684946825\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:40 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 389649\r\ndate: Mon, 27 Jul 2026 03:07:40 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":389649,"size_decoded":389916,"mime_type":"image/png","magic":"PNG image data, 1150 x 1150, 8-bit/color RGBA, non-interlaced","md5":"7a23eb47fdffa4123f61145f5657edd0","sha1":"7e8b2c35133ce180e7a9947c52dc072eba869a8f","sha256":"3b41f08279a9874da86934a6cf7325806092c23c5c90951966a4f48cb29d4e9e","sha512":"45b2ccd0fde135115ba106d0339b0eef6f9e46b38a9638d11301350c94a5e2b50d96fd219fb5c8cb75c84633b34c1a48953dfa4da84f2f1d68ed0732b846f6e8","ssdeep":"6144:SxUeWoB8KaEY/D93nh2IvPmbTbd6X3vzDw3bVr9AEfUkPHNkkf7n+z1:ajNB8KaE8WbTcX3vfKbp96kPHVT+","tlshash":"6b842358c5cae74482f717ab55f4d302a1126bb3206ebeb1105805cb7aaed378e317e7","first_seen":"2025-05-27T13:16:54.71881Z","last_seen":"2026-07-27T03:09:30.410223Z","times_seen":4,"resource_available":false,"data":"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"}},"time_used":400,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":288,"receive":112,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/_/ytembeds/_/js/k=ytembeds.base.en_US._88TwyyHKHs.2021.O/am=AAAAgA/d=1/excm=base,root/br=1/rs=AGKMywEu2TQUzdSF0AcsFBMUrFqyurKluw/m=root,base","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.youtube.com/embed/Ymge-qh3m4E","date":"2026-07-27T03:07:40.425Z","timestamp":1785121660425,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /s/_/ytembeds/_/js/k=ytembeds.base.en_US._88TwyyHKHs.2021.O/am=AAAAgA/d=1/excm=base,root/br=1/rs=AGKMywEu2TQUzdSF0AcsFBMUrFqyurKluw/m=root,base HTTP/1.1\r\nHost: www.youtube.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://www.youtube.com/embed/Ymge-qh3m4E\r\nCookie: __Secure-YNID=20.YT=OD2AqDJJ5KCd2FQHST0PP6nm_PUnOmOKKW_5n2sU3Uto7bgqmGZVezTy0eT5Ch1tu0JzTUorYggNVLrq4iBbxMgjKYV2etvlvytuKk4TF9mvut1pghwMJgUbuW8p4XdgsmD-iSy6zHQlRAhB-JrbMaRe5h5KsRdBUFWbvsxsNeH89V6KOOjVPuXhJsEWmIkl-LvE1HpLYRq5EZFVQYIOUs-Z8R5-lI8AE0vJVBeC2LGwT5UqkcaMp_COMwshp2EEUXAKmfxi2oM6g3JxUmkhMTmLxZ6-dd5IROcdvW6cdIjiQ0GqdQz5GxuAM3oOINnB4Vt5On4L4U_Gl5n7h1P_CQ; YSC=IgHKWvjgj0E; __Secure-ROLLOUT_TOKEN=CNnI7u31yczMShCAqsGz8PGVAxiAqsGz8PGVAw%3D%3D; VISITOR_INFO1_LIVE=mzxiTe7ERp4; VISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgIw%3D%3D\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\naccept-ranges: bytes\r\ncontent-encoding: br\r\ncontent-security-policy: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/youtube-main-app-web-scs-key\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"youtube-main-app-web-scs-key\"\r\nreport-to: {\"group\":\"youtube-main-app-web-scs-key\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube-main-app-web-scs-key\"}]}\r\ntiming-allow-origin: *youtube.com\r\ncontent-length: 150031\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 12:56:07 GMT\r\nexpires: Sat, 24 Jul 2027 12:56:07 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Fri, 24 Jul 2026 07:10:55 GMT\r\ncontent-type: text/javascript; charset=UTF-8\r\nvary: Accept-Encoding\r\nage: 223893\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":442344,"size_decoded":150945,"mime_type":"text/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (534)","md5":"779ffe8039ad87e2a1aa1c111061fae4","sha1":"7765f6360937f90e51dc4974d13c20887adca712","sha256":"9e5e6d330bae7d5d640cf35fbbd6dbac19e4eec6c5bdea7b99a664523269f90f","sha512":"17cd5c8a938106fbe74d4ea623e67c3669683343c08f866700fd6284152c7397141c9ca02451bf6a32808003c4b4bf3fcce72cbbe6c53a851a1da6d254ea3619","ssdeep":"6144:OZaBJxrsw56sgMoiImct8de1F6Suapko3iM80AvhapoXgvWbq/+:FFpgMoircDkMiM80CapoXgvWbq/+","tlshash":"30944cd97762707392a2f5a5902f0103b17a68a6f40c8c7cf798ddd16eb494942bbf38","first_seen":"2026-07-24T13:29:06.322297Z","last_seen":"2026-07-27T05:15:36.961391Z","times_seen":888,"resource_available":true,"data":"InVzZSBzdHJpY3QiO3RoaXMuZGVmYXVsdF9iYXNlPXRoaXMuZGVmYXVsdF9iYXNlfHx7fTsoZnVuY3Rpb24oXyl7dmFyIHdpbmRvdz10aGlzOwp0cnl7Cl8uX0ZfdG9nZ2xlc19pbml0aWFsaXplPWZ1bmN0aW9uKGEpeyh0eXBlb2YgZ2xvYmFsVGhpcyE9PSJ1bmRlZmluZWQiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGYhPT0idW5kZWZpbmVkIj9zZWxmOnRoaXMpLl9GX3RvZ2dsZXNfZGVmYXVsdF9iYXNlPWF8fFtdfTsoMCxfLl9GX3RvZ2dsZXNfaW5pdGlhbGl6ZSkoWzB4MCwgMHgyLCBdKTsKLyoKCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KLyoKCiBDb3B5cmlnaHQgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KLyoKCiBDb3B5cmlnaHQgMjAwNSwgMjAwNyBCb2IgSXBwb2xpdG8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAoqLwovKgoKIChUaGUgTUlUIExpY2Vuc2UpCgogQ29weXJpZ2h0IChDKSAyMDE0IGJ5IFZpdGFseSBQdXpyaW4KCiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KCiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCiBUSEUgU09GVFdBUkUuCgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFBvcnRlZCBmcm9tIHpsaWIsIHdoaWNoIGlzIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZQogaHR0cHM6Ly9naXRodWIuY29tL21hZGxlci96bGliL2Jsb2IvbWFzdGVyL3psaWIuaAoKIHpsaWIuaCAtLSBpbnRlcmZhY2Ugb2YgdGhlICd6bGliJyBnZW5lcmFsIHB1cnBvc2UgY29tcHJlc3Npb24gbGlicmFyeQogICB2ZXJzaW9uIDEuMi44LCBBcHJpbCAyOHRoLCAyMDEzCiAgIENvcHlyaWdodCAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKICAgVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKICAgd2FycmFudHkuICBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwogICBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgogICBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKICAgaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAogICBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6CiAgIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90CiAgICAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCiAgICAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQogICAgICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgogICAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdCBiZQogICAgICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCiAgIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uCiAgIEplYW4tbG91cCBHYWlsbHkgICAgICAgIE1hcmsgQWRsZXIKICAgamxvdXBAZ3ppcC5vcmcgICAgICAgICAgbWFkbGVyQGFsdW1uaS5jYWx0ZWNoLmVkdQogICBUaGUgZGF0YSBmb3JtYXQgdXNlZCBieSB0aGUgemxpYiBsaWJyYXJ5IGlzIGRlc2NyaWJlZCBieSBSRkNzIChSZXF1ZXN0IGZvcgogICBDb21tZW50cykgMTk1MCB0byAxOTUyIGluIHRoZSBmaWxlcyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxOTUwCiAgICh6bGliIGZvcm1hdCksIHJmYzE5NTEgKGRlZmxhdGUgZm9ybWF0KSBhbmQgcmZjMTk1MiAoZ3ppcCBmb3JtYXQpLgoqLwp2YXIgZWEsZmEsZGEsbmEscWEsdWEsdmEsQmEsSWEsSmEsS2EsUGEsUmEsVmEsJGEsaGIsbWIsd2IsemIsQWIsRWIsQ2IsRmIsR2IsTmIsVGIsZmMsaGMsaWMsamMsa2MsbWMsbmMsb2MsdGMscWMsR2MsSWMsTGMsTmMsVWMsUWMsV2MsY2QsZmQsaGQsamQsa2QsbWQsb2Qsc2QsQWQsQmQsRWQsdWQsR2QsSGQsSmQsSWQsS2QsTGQsTWQsT2QsU2QsWWQsYmUsY2UsZWUsZmUsZ2UsaGUsaWUsamUsa2UscWUsbGUscmUsb2UscGUsdmUsdGUsc2UsdWUsd2UseGUseWUsemUsQ2UsRGUsRWUsRmUsSGUsS2UsTWUsTmUsT2UsUGUsUWUsVmUsWWUsUmUsWmUsYWYsV2UsVGUsaGYsbGYsbWYsbmYsb2YscmYsdGYseGYsemYsQ2YsS2YsTGYsUWYsRmYsU2YsT2YsTWYsTmYsVGYsUmYsV2YsVmYsWGYsWWYsWmYsYmcsZGcsZWcsZmcsY2csa2csbGcsaGcsZ2csaWcsamcscmcsc2csdGcsdmcseGcsemcsQWcsdWcsRWcsd2csRmcsRGcsSGcsSWcsSmcsT2csUmcsTmcsVGcsU2csVWcsWWcsWGcsYmgsJGcsClpnLGFoLFBnLGNoLGZoLGloLGpoLGtoLGxoLGdoLGhoLG5oLHVoLHZoLHdoLHhoLHloLEFoLEJoLENoLERoLEVoLEZoLEloLEpoLEtoLExoLE1oLE5oLE9oLFBoLFFoLFJoLFNoLFRoLFVoLFZoLGNpLGRpLGVpLGZpLGdpLGhpLGppLGtpLGxpLHBpLHFpLHJpLHNpLHZpLHdpLHhpLHlpLHppLEFpLEJpLERpLEVpLE1pLFRpLFlpLGFqLGRqLGNqLFhpLG9qLHhqLHdqLEFqLEJqLENqLEVqLEpqLEZqLEhqLElqLHZqLFFqLFpqLGJrLGNrLGFrLGVrLGhrLGlrLGZrLGtrLG1rLGxrLG9rLHBrLHFrLHNrLHJrLHZrLHlrLHhrLHprLEFrLEVrLEprLEtrLExrLFJrLFNrLFRrLFVrLFhrLFlrLFdrLFprLCRrLGJsLGNsLGRsLGhsLG5sLHFsLHNsLHRsLGdsLHVsLHZsLHBsLHJsLHlsLHpsLEJsLEVsLEhsLExsLE5sLE9sLFFsLFJsLFNsLFRsLFVsLFZsLFdsLFhsLFpsLGJtLGNtLGRtLGVtLGZtLGdtLGhtLGttLGxtLG1tLG9tLHRtLEFtLEJtLERtLENtLEdtLEhtLEVtLEZtLEltLEptLExtLE1tLApPbSxQbSxRbSxSbSxTbSxUbSxVbSxObSxXbSxYbSxZbSxabSxmbixnbixqbixsbixtbixvbixxbixybix2bix4bixBbix3bix6bixFbixLbixKbixNbixRbixSbixTbixUbixWbixabixXbixYbixZbiwkbixjbyxhbyxxbyx2byx3byxEbyxIbyxGbyxHbyxLbyxKbyxJbyxMbyxPbyxRbywkbyxZbyxXbyxTbyxpcCxlcCxmcCx0cCxycCxxcCxSbyx1cCxkcCxocCxzcCxhcCxUbyxWbyxabyxwcCxGcCxKcCxScCxTcCxVcCxZcCxUcCxhcSxjcSxkcSxlcSxmcSxocSxqcSxxcSxrYSxqYSxpYSxjYTtlYT1mdW5jdGlvbihhLGIpe2lmKGIpZm9yKHZhciBjPTA7YzxjYS5sZW5ndGg7YysrKWRhKGNhW2NdKyJBcnJheS5wcm90b3R5cGUuIithLGIpfTtmYT1mdW5jdGlvbihhLGIpe2ImJmRhKGEsYil9OwpkYT1mdW5jdGlvbihhLGIpe3ZhciBjPWlhO2E9YS5zcGxpdCgiLiIpO2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKXJldHVybjtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmYiE9bnVsbCYmamEoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTtuYT1mdW5jdGlvbihhLGIpe2EucHJvdG90eXBlPWthKGIucHJvdG90eXBlKTthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2xhKGEsYik7YS56Yj1iLnByb3RvdHlwZX07cWE9ZnVuY3Rpb24oYSl7YT1NYXRoLnRydW5jKGEpfHwwO2E8MCYmKGErPXRoaXMubGVuZ3RoKTtpZighKGE8MHx8YT49dGhpcy5sZW5ndGgpKXJldHVybiB0aGlzW2FdfTsKXy5yYT1mdW5jdGlvbihhLGIsYyl7YT1hLnNwbGl0KCIuIik7Yz1jfHxfLnU7Zm9yKHZhciBkO2EubGVuZ3RoJiYoZD1hLnNoaWZ0KCkpOylhLmxlbmd0aHx8Yj09PXZvaWQgMD9jW2RdJiZjW2RdIT09T2JqZWN0LnByb3RvdHlwZVtkXT9jPWNbZF06Yz1jW2RdPXt9OmNbZF09Yn07dWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLnNhKCJXSVpfZ2xvYmFsX2RhdGEub3hOM25iIik7YT1jJiZjW2FdO3JldHVybiBhIT1udWxsP2E6Yn07dmE9ZnVuY3Rpb24oKXt9O18uc2E9ZnVuY3Rpb24oYSxiKXthPWEuc3BsaXQoIi4iKTtiPWJ8fF8udTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihiPWJbYVtjXV0sYj09bnVsbClyZXR1cm4gbnVsbDtyZXR1cm4gYn07Xy53YT1mdW5jdGlvbihhKXthLlNsPXZvaWQgMDthLmpjPWZ1bmN0aW9uKCl7cmV0dXJuIGEuU2w/YS5TbDphLlNsPW5ldyBhfX07Cl8ueGE9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIGE7cmV0dXJuIGIhPSJvYmplY3QiP2I6YT9BcnJheS5pc0FycmF5KGEpPyJhcnJheSI6YjoibnVsbCJ9O18ueWE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy54YShhKTtyZXR1cm4gYj09ImFycmF5Inx8Yj09Im9iamVjdCImJnR5cGVvZiBhLmxlbmd0aD09Im51bWJlciJ9O18uQWE9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIGE7cmV0dXJuIGI9PSJvYmplY3QiJiZhIT1udWxsfHxiPT0iZnVuY3Rpb24ifTtCYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGEuY2FsbC5hcHBseShhLmJpbmQsYXJndW1lbnRzKX07Xy5DYT1mdW5jdGlvbihhLGIsYyl7Xy5DYT1CYTtyZXR1cm4gXy5DYS5hcHBseShudWxsLGFyZ3VtZW50cyl9OwpfLkRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBmdW5jdGlvbigpe3ZhciBkPWMuc2xpY2UoKTtkLnB1c2guYXBwbHkoZCxhcmd1bWVudHMpO3JldHVybiBhLmFwcGx5KHRoaXMsZCl9fTtfLkVhPWZ1bmN0aW9uKCl7cmV0dXJuIERhdGUubm93KCl9O18uRmE9ZnVuY3Rpb24oYSxiKXtfLnJhKGEsYil9O18uR2E9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9O18uSGE9ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7fWMucHJvdG90eXBlPWIucHJvdG90eXBlO2EuemI9Yi5wcm90b3R5cGU7YS5wcm90b3R5cGU9bmV3IGM7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YTthLmJhc2U9ZnVuY3Rpb24oZCxlLGYpe2Zvcih2YXIgaD1BcnJheShhcmd1bWVudHMubGVuZ3RoLTIpLGs9MjtrPGFyZ3VtZW50cy5sZW5ndGg7aysrKWhbay0yXT1hcmd1bWVudHNba107cmV0dXJuIGIucHJvdG90eXBlW2VdLmFwcGx5KGQsaCl9fTsKSWE9ZnVuY3Rpb24oYSwuLi5iKXtiPWIuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiYiKTtpZighYilyZXR1cm4gYTt2YXIgYz1hLm1hdGNoKC9bPyZdYWR1cmw9Lyk7cmV0dXJuIGM/YS5zbGljZSgwLGMuaW5kZXgrMSkrYisiJiIrYS5zbGljZShjLmluZGV4KzEpOmErKGEuaW5kZXhPZigiPyIpPDA/Ij8iOiImIikrYn07SmE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj8iJiIrYSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpOiIifTsKS2E9ZnVuY3Rpb24oYSl7YT1hLkI7aWYoIWEpcmV0dXJuIiI7dmFyIGI9SmEoInVhcCIsYS5wbGF0Zm9ybSkrSmEoInVhcHYiLGEucGxhdGZvcm1WZXJzaW9uKStKYSgidWFmdiIsYS51YUZ1bGxWZXJzaW9uKStKYSgidWFhIixhLmFyY2hpdGVjdHVyZSkrSmEoInVhbSIsYS5tb2RlbCkrSmEoInVhYiIsYS5iaXRuZXNzKTthLmZ1bGxWZXJzaW9uTGlzdCYmKGIrPSImdWFmdmw9IitlbmNvZGVVUklDb21wb25lbnQoYS5mdWxsVmVyc2lvbkxpc3QubWFwKGM9PmVuY29kZVVSSUNvbXBvbmVudChjLmJyYW5kKSsiOyIrZW5jb2RlVVJJQ29tcG9uZW50KGMudmVyc2lvbikpLmpvaW4oInwiKSkpO2Eud293NjQhPW51bGwmJihiKz0iJnVhdz0iK051bWJlcihhLndvdzY0KSk7cmV0dXJuIGIuc2xpY2UoMSl9OwpfLkxhPWZ1bmN0aW9uKGEsYil7aWYoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxfLkxhKTtlbHNle2xldCBjPUVycm9yKCkuc3RhY2s7YyYmKHRoaXMuc3RhY2s9Yyl9YSYmKHRoaXMubWVzc2FnZT1TdHJpbmcoYSkpO2IhPT12b2lkIDAmJih0aGlzLmNhdXNlPWIpfTtfLk1hPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5sZW5ndGgtYi5sZW5ndGg7cmV0dXJuIGM+PTAmJmEuaW5kZXhPZihiLGMpPT1jfTtQYT1mdW5jdGlvbigpe3ZhciBhPW51bGw7aWYoIU5hKXJldHVybiBhO3RyeXtsZXQgYj1jPT5jO2E9TmEuY3JlYXRlUG9saWN5KCJnb29nI2h0bWwiLHtjcmVhdGVIVE1MOmIsY3JlYXRlU2NyaXB0OmIsY3JlYXRlU2NyaXB0VVJMOmJ9KX1jYXRjaChiKXt9cmV0dXJuIGF9O1JhPWZ1bmN0aW9uKCl7UWE9PT12b2lkIDAmJihRYT1QYSgpKTtyZXR1cm4gUWF9OwpfLlRhPWZ1bmN0aW9uKGEpe3ZhciBiPVJhKCk7YT1iP2IuY3JlYXRlU2NyaXB0VVJMKGEpOmE7cmV0dXJuIG5ldyBfLlNhKGEpfTtfLlVhPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLlNhKXJldHVybiBhLmo7dGhyb3cgRXJyb3IoImgiKTt9O1ZhPWZ1bmN0aW9uKGEpe3JldHVybiBhLnRvU3RyaW5nKCkuaW5kZXhPZigiYCIpPT09LTF9O18uWGE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBfLldhfTtfLllhPWZ1bmN0aW9uKGEpe2lmKF8uWGEoYSkpcmV0dXJuIGEuajt0aHJvdyBFcnJvcigiaCIpO307JGE9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBaYShiPT5iLnN1YnN0cigwLGEubGVuZ3RoKzEpLnRvTG93ZXJDYXNlKCk9PT1hKyI6Iil9O18uYmI9ZnVuY3Rpb24oYSxiPV8uYWIpe2lmKF8uWGEoYSkpcmV0dXJuIGE7Zm9yKGxldCBjPTA7YzxiLmxlbmd0aDsrK2Mpe2xldCBkPWJbY107aWYoZCBpbnN0YW5jZW9mIFphJiZkLmZiKGEpKXJldHVybiBuZXcgXy5XYShhKX19OwpfLmRiPWZ1bmN0aW9uKGEpe2EgaW5zdGFuY2VvZiBfLldhP2E9Xy5ZYShhKTphPWNiLnRlc3QoYSk/YTp2b2lkIDA7cmV0dXJuIGF9O18uZWI9ZnVuY3Rpb24oYSxiPWB1bmV4cGVjdGVkIHZhbHVlICR7YX0hYCl7dGhyb3cgRXJyb3IoYik7fTtfLmdiPWZ1bmN0aW9uKGEpe3ZhciBiPVJhKCk7YT1iP2IuY3JlYXRlSFRNTChhKTphO3JldHVybiBuZXcgXy5mYihhKX07Xy5pYj1mdW5jdGlvbihhKXtyZXR1cm4gaGIoInNjcmlwdCIsYSl9O2hiPWZ1bmN0aW9uKGEsYj1kb2N1bWVudCl7YT1iLnF1ZXJ5U2VsZWN0b3I/LihgJHthfVtub25jZV1gKTtyZXR1cm4gYT09bnVsbD8iIjphLm5vbmNlfHxhLmdldEF0dHJpYnV0ZSgibm9uY2UiKXx8IiJ9O18ua2I9ZnVuY3Rpb24oYSl7dmFyIGI9UmEoKTthPWI/Yi5jcmVhdGVTY3JpcHQoYSk6YTtyZXR1cm4gbmV3IF8uamIoYSl9OwpfLmxiPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLmpiKXJldHVybiBhLmo7dGhyb3cgRXJyb3IoImgiKTt9O21iPWZ1bmN0aW9uKGEpe3ZhciBiPV8uaWIoYS5vd25lckRvY3VtZW50KTtiJiZhLnNldEF0dHJpYnV0ZSgibm9uY2UiLGIpfTtfLm5iPWZ1bmN0aW9uKGEsYil7YS50ZXh0Q29udGVudD1fLmxiKGIpO21iKGEpfTtfLm9iPWZ1bmN0aW9uKGEsYil7YS5zcmM9Xy5VYShiKTttYihhKX07Xy5xYj1mdW5jdGlvbihhLGIsYyl7aWYoYiBpbnN0YW5jZW9mIF8uU2EpYS5ocmVmPV8uVWEoYikudG9TdHJpbmcoKSxhLnJlbD1jO2Vsc2V7aWYocGIuaW5kZXhPZihjKT09PS0xKXRocm93IEVycm9yKCJqYCIrYyk7Yj1fLmRiKGIpO2IhPT12b2lkIDAmJihhLmhyZWY9YixhLnJlbD1jKX19O18uc2I9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLGIsdm9pZCAwKX07Cl8udGI9ZnVuY3Rpb24oYSxiKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEsYix2b2lkIDApfTtfLnViPWZ1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoYSxiLHZvaWQgMCl9O18udmI9ZnVuY3Rpb24oYSxiKXthOntsZXQgYz1hLmxlbmd0aCxkPXR5cGVvZiBhPT09InN0cmluZyI/YS5zcGxpdCgiIik6YTtmb3IobGV0IGU9MDtlPGM7ZSsrKWlmKGUgaW4gZCYmYi5jYWxsKHZvaWQgMCxkW2VdLGUsYSkpe2I9ZTticmVhayBhfWI9LTF9cmV0dXJuIGI8MD9udWxsOnR5cGVvZiBhPT09InN0cmluZyI/YS5jaGFyQXQoYik6YVtiXX07d2I9ZnVuY3Rpb24oYSxiKXtfLnNiKGEsYik+PTB8fGEucHVzaChiKX07Xy54Yj1mdW5jdGlvbihhLGIpe2I9Xy5zYihhLGIpO3ZhciBjOyhjPWI+PTApJiZBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoYSxiLDEpO3JldHVybiBjfTsKXy55Yj1mdW5jdGlvbihhKXt2YXIgYj1hLmxlbmd0aDtpZihiPjApe2xldCBjPUFycmF5KGIpO2ZvcihsZXQgZD0wO2Q8YjtkKyspY1tkXT1hW2RdO3JldHVybiBjfXJldHVybltdfTt6Yj1mdW5jdGlvbihhLGIpe2ZvcihsZXQgYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspe2xldCBkPWFyZ3VtZW50c1tjXTtpZihfLnlhKGQpKXtsZXQgZT1hLmxlbmd0aHx8MCxmPWQubGVuZ3RofHwwO2EubGVuZ3RoPWUrZjtmb3IobGV0IGg9MDtoPGY7aCsrKWFbZStoXT1kW2hdfWVsc2UgYS5wdXNoKGQpfX07QWI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz0wLGQ9bmV3IFNldDtjPGEubGVuZ3RoOyl7bGV0IGU9YVtjKytdO2QuaGFzKGUpfHwoZC5hZGQoZSksYVtiKytdPWUpfWEubGVuZ3RoPWJ9OwpfLkJiPWZ1bmN0aW9uKGEsYil7YS5fX2Nsb3N1cmVfX2Vycm9yX19jb250ZXh0X185ODQzODJ8fChhLl9fY2xvc3VyZV9fZXJyb3JfX2NvbnRleHRfXzk4NDM4Mj17fSk7YS5fX2Nsb3N1cmVfX2Vycm9yX19jb250ZXh0X185ODQzODIuc2V2ZXJpdHk9Yn07CkViPWZ1bmN0aW9uKGEpe3ZhciBiPV8uc2EoIndpbmRvdy5sb2NhdGlvbi5ocmVmIik7YT09bnVsbCYmKGE9J1Vua25vd24gRXJyb3Igb2YgdHlwZSAibnVsbC91bmRlZmluZWQiJyk7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm57bWVzc2FnZTphLG5hbWU6IlVua25vd24gZXJyb3IiLGxpbmVOdW1iZXI6Ik5vdCBhdmFpbGFibGUiLGZpbGVOYW1lOmIsc3RhY2s6Ik5vdCBhdmFpbGFibGUifTt2YXIgYz0hMTt0cnl7dmFyIGQ9YS5saW5lTnVtYmVyfHxhLmxpbmV8fCJOb3QgYXZhaWxhYmxlIn1jYXRjaChmKXtkPSJOb3QgYXZhaWxhYmxlIixjPSEwfXRyeXt2YXIgZT1hLmZpbGVOYW1lfHxhLmZpbGVuYW1lfHxhLnNvdXJjZVVSTHx8Xy51LiRnb29nRGVidWdGbmFtZXx8Yn1jYXRjaChmKXtlPSJOb3QgYXZhaWxhYmxlIixjPSEwfWI9Q2IoYSk7aWYoISghYyYmYS5saW5lTnVtYmVyJiZhLmZpbGVOYW1lJiZhLnN0YWNrJiZhLm1lc3NhZ2UmJmEubmFtZSkpe2M9YS5tZXNzYWdlOwppZihjPT1udWxsKXtpZihhLmNvbnN0cnVjdG9yJiZhLmNvbnN0cnVjdG9yIGluc3RhbmNlb2YgRnVuY3Rpb24pe2lmKGEuY29uc3RydWN0b3IubmFtZSljPWEuY29uc3RydWN0b3IubmFtZTtlbHNlIGlmKGM9YS5jb25zdHJ1Y3RvcixEYltjXSljPURiW2NdO2Vsc2V7Yz1TdHJpbmcoYyk7aWYoIURiW2NdKXtsZXQgZj0vZnVuY3Rpb25ccysoW15cKF0rKS9tLmV4ZWMoYyk7RGJbY109Zj9mWzFdOiJbQW5vbnltb3VzXSJ9Yz1EYltjXX1jPSdVbmtub3duIEVycm9yIG9mIHR5cGUgIicrYysnIid9ZWxzZSBjPSJVbmtub3duIEVycm9yIG9mIHVua25vd24gdHlwZSI7dHlwZW9mIGEudG9TdHJpbmc9PT0iZnVuY3Rpb24iJiZPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIT09YS50b1N0cmluZyYmKGMrPSI6ICIrYS50b1N0cmluZygpKX1yZXR1cm57bWVzc2FnZTpjLG5hbWU6YS5uYW1lfHwiVW5rbm93bkVycm9yIixsaW5lTnVtYmVyOmQsZmlsZU5hbWU6ZSxzdGFjazpifHwiTm90IGF2YWlsYWJsZSJ9fXJldHVybnttZXNzYWdlOmEubWVzc2FnZSwKbmFtZTphLm5hbWUsbGluZU51bWJlcjphLmxpbmVOdW1iZXIsZmlsZU5hbWU6YS5maWxlTmFtZSxzdGFjazpifX07CkNiPWZ1bmN0aW9uKGEsYil7Ynx8KGI9e30pO2JbRmIoYSldPSEwO3ZhciBjPWEuc3RhY2t8fCIiLGQ9YS5jYXVzZTtkJiYhYltGYihkKV0mJihjKz0iXG5DYXVzZWQgYnk6ICIsZC5zdGFjayYmZC5zdGFjay5pbmRleE9mKGQudG9TdHJpbmcoKSk9PTB8fChjKz10eXBlb2YgZD09PSJzdHJpbmciP2Q6ZC5tZXNzYWdlKyJcbiIpLGMrPUNiKGQsYikpO2E9YS5lcnJvcnM7aWYoQXJyYXkuaXNBcnJheShhKSl7ZD0xO2xldCBlO2ZvcihlPTA7ZTxhLmxlbmd0aCYmIShkPjQpO2UrKyliW0ZiKGFbZV0pXXx8KGMrPSJcbklubmVyIGVycm9yICIrZCsrICsiOiAiLGFbZV0uc3RhY2smJmFbZV0uc3RhY2suaW5kZXhPZihhW2VdLnRvU3RyaW5nKCkpPT0wfHwoYys9dHlwZW9mIGFbZV09PT0ic3RyaW5nIj9hW2VdOmFbZV0ubWVzc2FnZSsiXG4iKSxjKz1DYihhW2VdLGIpKTtlPGEubGVuZ3RoJiYoYys9IlxuLi4uICIrKGEubGVuZ3RoLWUpKyIgbW9yZSBpbm5lciBlcnJvcnMiKX1yZXR1cm4gY307CkZiPWZ1bmN0aW9uKGEpe3ZhciBiPSIiO3R5cGVvZiBhLnRvU3RyaW5nPT09ImZ1bmN0aW9uIiYmKGI9IiIrYSk7cmV0dXJuIGIrYS5zdGFja307R2I9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uVGEoYSl9O18uSGI9ZnVuY3Rpb24oYSl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhLnJlcGxhY2UoL1wrL2csIiAiKSl9O18uSWI9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsaCl7dmFyIGs9IiI7YSYmKGsrPWErIjoiKTtjJiYoays9Ii8vIixiJiYoays9YisiQCIpLGsrPWMsZCYmKGsrPSI6IitkKSk7ZSYmKGsrPWUpO2YmJihrKz0iPyIrZik7aCYmKGsrPSIjIitoKTtyZXR1cm4ga307Xy5NYj1mdW5jdGlvbihhKXtyZXR1cm4gYS5tYXRjaChLYil9O05iPWZ1bmN0aW9uKGEpe3JldHVybiBhP2RlY29kZVVSSShhKTphfTsKXy5PYj1mdW5jdGlvbihhKXthPV8uTWIoYSlbMV18fG51bGw7IWEmJl8udS5zZWxmJiZfLnUuc2VsZi5sb2NhdGlvbiYmKGE9Xy51LnNlbGYubG9jYXRpb24ucHJvdG9jb2wuc2xpY2UoMCwtMSkpO3JldHVybiBhP2EudG9Mb3dlckNhc2UoKToiIn07Xy5QYj1mdW5jdGlvbihhKXtyZXR1cm4gTmIoXy5NYihhKVszXXx8bnVsbCl9O18uUWI9ZnVuY3Rpb24oYSl7cmV0dXJuIE5iKF8uTWIoYSlbNV18fG51bGwpfTtfLlJiPWZ1bmN0aW9uKGEsYil7aWYoYSl7YT1hLnNwbGl0KCImIik7Zm9yKGxldCBjPTA7YzxhLmxlbmd0aDtjKyspe2xldCBkPWFbY10uaW5kZXhPZigiPSIpLGUsZj1udWxsO2Q+PTA/KGU9YVtjXS5zdWJzdHJpbmcoMCxkKSxmPWFbY10uc3Vic3RyaW5nKGQrMSkpOmU9YVtjXTtiKGUsZj9fLkhiKGYpOiIiKX19fTsKXy5TYj1mdW5jdGlvbihhLGIpe2lmKCFiKXJldHVybiBhO3ZhciBjPWEuaW5kZXhPZigiIyIpO2M8MCYmKGM9YS5sZW5ndGgpO3ZhciBkPWEuaW5kZXhPZigiPyIpO2lmKGQ8MHx8ZD5jKXtkPWM7dmFyIGU9IiJ9ZWxzZSBlPWEuc3Vic3RyaW5nKGQrMSxjKTthPVthLnNsaWNlKDAsZCksZSxhLnNsaWNlKGMpXTtjPWFbMV07YVsxXT1iP2M/YysiJiIrYjpiOmM7cmV0dXJuIGFbMF0rKGFbMV0/Ij8iK2FbMV06IiIpK2FbMl19O1RiPWZ1bmN0aW9uKGEsYixjKXtpZihBcnJheS5pc0FycmF5KGIpKWZvcihsZXQgZD0wO2Q8Yi5sZW5ndGg7ZCsrKVRiKGEsU3RyaW5nKGJbZF0pLGMpO2Vsc2UgYiE9bnVsbCYmYy5wdXNoKGErKGI9PT0iIj8iIjoiPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhiKSkpKX07Xy5VYj1mdW5jdGlvbihhKXt2YXIgYj1bXTtmb3IobGV0IGMgaW4gYSlUYihjLGFbY10sYik7cmV0dXJuIGIuam9pbigiJiIpfTsKXy5XYj1mdW5jdGlvbihhLGIpe2I9Xy5VYihiKTtyZXR1cm4gXy5TYihhLGIpfTtfLlhiPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT1jLmxlbmd0aDsoYj1hLmluZGV4T2YoYyxiKSk+PTAmJmI8ZDspe3ZhciBmPWEuY2hhckNvZGVBdChiLTEpO2lmKGY9PTM4fHxmPT02MylpZihmPWEuY2hhckNvZGVBdChiK2UpLCFmfHxmPT02MXx8Zj09Mzh8fGY9PTM1KXJldHVybiBiO2IrPWUrMX1yZXR1cm4tMX07Xy5aYj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuc2VhcmNoKF8uWWIpLGQ9Xy5YYihhLDAsYixjKTtpZihkPDApcmV0dXJuIG51bGw7dmFyIGU9YS5pbmRleE9mKCImIixkKTtpZihlPDB8fGU+YyllPWM7ZCs9Yi5sZW5ndGgrMTtyZXR1cm4gXy5IYihhLnNsaWNlKGQsZSE9PS0xP2U6MCkpfTtfLiRiPWZ1bmN0aW9uKGEpe18udS5zZXRUaW1lb3V0KCgpPT57dGhyb3cgYTt9LDApfTsKXy5hYz1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPTA7Zm9yKGxldCBkPTA7ZDxhLmxlbmd0aDtkKyspe2xldCBlPWEuY2hhckNvZGVBdChkKTtlPDEyOD9iW2MrK109ZTooZTwyMDQ4P2JbYysrXT1lPj42fDE5MjooKGUmNjQ1MTIpPT01NTI5NiYmZCsxPGEubGVuZ3RoJiYoYS5jaGFyQ29kZUF0KGQrMSkmNjQ1MTIpPT01NjMyMD8oZT02NTUzNisoKGUmMTAyMyk8PDEwKSsoYS5jaGFyQ29kZUF0KCsrZCkmMTAyMyksYltjKytdPWU+PjE4fDI0MCxiW2MrK109ZT4+MTImNjN8MTI4KTpiW2MrK109ZT4+MTJ8MjI0LGJbYysrXT1lPj42JjYzfDEyOCksYltjKytdPWUmNjN8MTI4KX1yZXR1cm4gYn07Xy5iYz1mdW5jdGlvbigpe3ZhciBhPV8udS5uYXZpZ2F0b3I7cmV0dXJuIGEmJihhPWEudXNlckFnZW50KT9hOiIifTsKZmM9ZnVuY3Rpb24oYSl7aWYoIWRjfHwhZWMpcmV0dXJuITE7Zm9yKGxldCBiPTA7YjxlYy5icmFuZHMubGVuZ3RoO2IrKyl7bGV0IHticmFuZDpjfT1lYy5icmFuZHNbYl07aWYoYyYmYy5pbmRleE9mKGEpIT0tMSlyZXR1cm4hMH1yZXR1cm4hMX07aGM9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uYmMoKS5pbmRleE9mKGEpIT0tMX07aWM9ZnVuY3Rpb24oKXtyZXR1cm4gZGM/ISFlYyYmZWMuYnJhbmRzLmxlbmd0aD4wOiExfTtqYz1mdW5jdGlvbigpe3JldHVybiBpYygpPyExOmhjKCJPcGVyYSIpfTtrYz1mdW5jdGlvbigpe3JldHVybiBoYygiRmlyZWZveCIpfHxoYygiRnhpT1MiKX07bWM9ZnVuY3Rpb24oKXtyZXR1cm4gaWMoKT9mYygiQ2hyb21pdW0iKTooaGMoIkNocm9tZSIpfHxoYygiQ3JpT1MiKSkmJiEoaWMoKT8wOmhjKCJFZGdlIikpfHxoYygiU2lsayIpfTtuYz1mdW5jdGlvbigpe3JldHVybiBkYz8hIWVjJiYhIWVjLnBsYXRmb3JtOiExfTsKb2M9ZnVuY3Rpb24oKXtyZXR1cm4gaGMoImlQaG9uZSIpJiYhaGMoImlQb2QiKSYmIWhjKCJpUGFkIil9O18ucGM9ZnVuY3Rpb24oYSl7Xy5wY1siICJdKGEpO3JldHVybiBhfTtfLnNjPWZ1bmN0aW9uKGEsYil7Yj09PXZvaWQgMCYmKGI9MCk7cWMoKTtiPXJjW2JdO2Zvcih2YXIgYz1BcnJheShNYXRoLmZsb29yKGEubGVuZ3RoLzMpKSxkPWJbNjRdfHwiIixlPTAsZj0wO2U8YS5sZW5ndGgtMjtlKz0zKXt2YXIgaD1hW2VdLGs9YVtlKzFdLGw9YVtlKzJdLG09YltoPj4yXTtoPWJbKGgmMyk8PDR8az4+NF07az1iWyhrJjE1KTw8MnxsPj42XTtsPWJbbCY2M107Y1tmKytdPW0raCtrK2x9bT0wO2w9ZDtzd2l0Y2goYS5sZW5ndGgtZSl7Y2FzZSAyOm09YVtlKzFdLGw9YlsobSYxNSk8PDJdfHxkO2Nhc2UgMTphPWFbZV0sY1tmXT1iW2E+PjJdK2JbKGEmMyk8PDR8bT4+NF0rbCtkfXJldHVybiBjLmpvaW4oIiIpfTsKXy51Yz1mdW5jdGlvbihhKXt2YXIgYj1hLmxlbmd0aCxjPWIqMy80O2MlMz9jPU1hdGguZmxvb3IoYyk6Ij0uIi5pbmRleE9mKGFbYi0xXSkhPS0xJiYoYz0iPS4iLmluZGV4T2YoYVtiLTJdKSE9LTE/Yy0yOmMtMSk7dmFyIGQ9bmV3IFVpbnQ4QXJyYXkoYyksZT0wO3RjKGEsZnVuY3Rpb24oZil7ZFtlKytdPWZ9KTtyZXR1cm4gZSE9PWM/ZC5zdWJhcnJheSgwLGUpOmR9O3RjPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhlKXtmb3IoO2Q8YS5sZW5ndGg7KXtsZXQgZj1hLmNoYXJBdChkKyspLGg9dmNbZl07aWYoaCE9bnVsbClyZXR1cm4gaDtpZighL15bXHNceGEwXSokLy50ZXN0KGYpKXRocm93IEVycm9yKCJtYCIrZik7fXJldHVybiBlfXFjKCk7Zm9yKHZhciBkPTA7Oyl7bGV0IGU9YygtMSksZj1jKDApLGg9Yyg2NCksaz1jKDY0KTtpZihrPT09NjQmJmU9PT0tMSlicmVhaztiKGU8PDJ8Zj4+NCk7aCE9NjQmJihiKGY8PDQmMjQwfGg+PjIpLGshPTY0JiZiKGg8PDYmMTkyfGspKX19OwpxYz1mdW5jdGlvbigpe2lmKCF2Yyl7dmM9e307dmFyIGE9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ii5zcGxpdCgiIiksYj1bIisvPSIsIisvIiwiLV89IiwiLV8uIiwiLV8iXTtmb3IobGV0IGM9MDtjPDU7YysrKXtsZXQgZD1hLmNvbmNhdChiW2NdLnNwbGl0KCIiKSk7cmNbY109ZDtmb3IobGV0IGU9MDtlPGQubGVuZ3RoO2UrKyl7bGV0IGY9ZFtlXTt2Y1tmXT09PXZvaWQgMCYmKHZjW2ZdPWUpfX19fTtfLnhjPWZ1bmN0aW9uKGEsYil7aWYoYSE9bnVsbCl7dmFyIGM9d2M/Pyh3Yz17fSk7dmFyIGQ9Y1thXXx8MDtkPj1ifHwoY1thXT1kKzEsYT1FcnJvcigpLF8uQmIoYSwiaW5jaWRlbnQiKSxfLiRiKGEpKX19O18ueWM9ZnVuY3Rpb24oYSxiPSExKXtyZXR1cm4gYiYmU3ltYm9sLmZvciYmYT9TeW1ib2wuZm9yKGEpOmEhPW51bGw/U3ltYm9sKGEpOlN5bWJvbCgpfTsKXy5CYz1mdW5jdGlvbihhLGIpe3JldHVybiBiPT09dm9pZCAwP2EuaiE9PV8uemMmJiEhKDImKGEuRGFbXy5BY118MCkpOiEhKDImYikmJmEuaiE9PV8uemN9O18uQ2M9ZnVuY3Rpb24oYSl7YS51Sj0hMDtyZXR1cm4gYX07Xy5GYz1mdW5jdGlvbihhKXtpZihEYyhhKSl7aWYoIS9eXHMqKD86LT9bMS05XVxkKnwwKT9ccyokLy50ZXN0KGEpKXRocm93IEVycm9yKFN0cmluZyhhKSk7fWVsc2UgaWYoRWMoYSkmJiFOdW1iZXIuaXNTYWZlSW50ZWdlcihhKSl0aHJvdyBFcnJvcihTdHJpbmcoYSkpO3JldHVybiBCaWdJbnQoYSl9O0djPWZ1bmN0aW9uKGEpe3JldHVybiBhfTtJYz1mdW5jdGlvbihhLGIpe2I8MTAwfHxfLnhjKEhjLDEpfTsKTGM9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9ZCE9PXZvaWQgMDtkPSEhZDt2YXIgZj1fLkdhKF8uSmMpLGg7IWUmJmYmJihoPWFbZl0pJiZoLmN3KEljKTtmPVtdO3ZhciBrPWEubGVuZ3RoO2g9NDI5NDk2NzI5NTt2YXIgbD0hMSxtPSEhKGImNjQpLG49bT9iJjEyOD8wOi0xOnZvaWQgMDtpZighKGImMSkpe3ZhciBwPWsmJmFbay0xXTtwIT1udWxsJiZ0eXBlb2YgcD09PSJvYmplY3QiJiZwLmNvbnN0cnVjdG9yPT09T2JqZWN0PyhrLS0saD1rKTpwPXZvaWQgMDshbXx8YiYxMjh8fGV8fChsPSEwLGg9KEtjPz9HYykoaC1uLG4sYSxwLHZvaWQgMCkrbil9Yj12b2lkIDA7Zm9yKGU9MDtlPGs7ZSsrKXtsZXQgcj1hW2VdO2lmKHIhPW51bGwmJihyPWMocixkKSkhPW51bGwpaWYobSYmZT49aCl7bGV0IHQ9ZS1uOyhiPz8oYj17fSkpW3RdPXJ9ZWxzZSBmW2VdPXJ9aWYocClmb3IobGV0IHIgaW4gcCl7YT1wW3JdO2lmKGE9PW51bGx8fChhPWMoYSxkKSk9PW51bGwpY29udGludWU7az0rcjsKbGV0IHQ7bSYmIU51bWJlci5pc05hTihrKSYmKHQ9aytuKTxoP2ZbdF09YTooYj8/KGI9e30pKVtyXT1hfWImJihsP2YucHVzaChiKTpmW2hdPWIpO3JldHVybiBmfTtOYz1mdW5jdGlvbihhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgIm51bWJlciI6cmV0dXJuIE51bWJlci5pc0Zpbml0ZShhKT9hOiIiK2E7Y2FzZSAiYmlnaW50IjpyZXR1cm4oMCxfLk1jKShhKT9OdW1iZXIoYSk6IiIrYTtjYXNlICJib29sZWFuIjpyZXR1cm4gYT8xOjA7Y2FzZSAib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGEpKXtsZXQgYj1hW18uQWNdfDA7cmV0dXJuIGEubGVuZ3RoPT09MCYmYiYxP3ZvaWQgMDpMYyhhLGIsTmMpfWlmKGEhPW51bGwmJmFbXy5PY109PT1fLlBjKXJldHVybiBRYyhhKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgXy5SYyYmYSBpbnN0YW5jZW9mIF8uUmMpcmV0dXJuIGEubygpO3JldHVybn1yZXR1cm4gYX07ClVjPWZ1bmN0aW9uKGEsYil7aWYoYil7S2M9Yj09bnVsbHx8Yj09PUdjfHxiW1NjXSE9PVRjP0djOmI7dHJ5e3JldHVybiBRYyhhKX1maW5hbGx5e0tjPXZvaWQgMH19cmV0dXJuIFFjKGEpfTtRYz1mdW5jdGlvbihhKXthPWEuRGE7cmV0dXJuIExjKGEsYVtfLkFjXXwwLE5jKX07Cl8uWGM9ZnVuY3Rpb24oYSxiLGMsZD0wKXtpZihhPT1udWxsKXt2YXIgZT0zMjtjPyhhPVtjXSxlfD0xMjgpOmE9W107YiYmKGU9ZSYtMTY3NjA4MzN8KGImMTAyMyk8PDE0KX1lbHNle2lmKCFBcnJheS5pc0FycmF5KGEpKXRocm93IEVycm9yKCJzIik7ZT1hW18uQWNdfDA7aWYoVmMmJjEmZSl0aHJvdyBFcnJvcigidCIpOzIwNDgmZSYmISgyJmUpJiZXYygpO2lmKGUmMjU2KXRocm93IEVycm9yKCJ1Iik7aWYoZSY2NClyZXR1cm4oZXxkKSE9PWUmJihhW18uQWNdPWV8ZCksYTtpZihjJiYoZXw9MTI4LGMhPT1hWzBdKSl0aHJvdyBFcnJvcigidiIpO2E6e2M9YTtlfD02NDt2YXIgZj1jLmxlbmd0aDtpZihmKXt2YXIgaD1mLTE7bGV0IGw9Y1toXTtpZihsIT1udWxsJiZ0eXBlb2YgbD09PSJvYmplY3QiJiZsLmNvbnN0cnVjdG9yPT09T2JqZWN0KXtiPWUmMTI4PzA6LTE7aC09YjtpZihoPj0xMDI0KXRocm93IEVycm9yKCJ4Iik7Zm9yKHZhciBrIGluIGwpaWYoZj0rayxmPGgpY1tmKwpiXT1sW2tdLGRlbGV0ZSBsW2tdO2Vsc2UgYnJlYWs7ZT1lJi0xNjc2MDgzM3woaCYxMDIzKTw8MTQ7YnJlYWsgYX19aWYoYil7az1NYXRoLm1heChiLGYtKGUmMTI4PzA6LTEpKTtpZihrPjEwMjQpdGhyb3cgRXJyb3IoInkiKTtlPWUmLTE2NzYwODMzfChrJjEwMjMpPDwxNH19fWFbXy5BY109ZXw2NHxkO3JldHVybiBhfTtXYz1mdW5jdGlvbigpe2lmKFZjKXRocm93IEVycm9yKCJ3Iik7Xy54YyhZYyw1KX07CmNkPWZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGEhPT0ib2JqZWN0IilyZXR1cm4gYTtpZihBcnJheS5pc0FycmF5KGEpKXt2YXIgYz1hW18uQWNdfDA7YS5sZW5ndGg9PT0wJiZjJjE/YT12b2lkIDA6YyYyfHwoIWJ8fDQwOTYmY3x8MTYmYz9hPV8uWmMoYSxjLCExLGImJiEoYyYxNikpOihhW18uQWNdfD0zNCxjJjQmJk9iamVjdC5mcmVlemUoYSkpKTtyZXR1cm4gYX1pZihhIT1udWxsJiZhW18uT2NdPT09Xy5QYylyZXR1cm4gYj1hLkRhLGM9YltfLkFjXXwwLF8uQmMoYSxjKT9hOl8uJGMoYSxiLGMpP18uYmQoYSxiKTpfLlpjKGIsYyk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIF8uUmMmJmEgaW5zdGFuY2VvZiBfLlJjKXJldHVybiBhfTtfLmJkPWZ1bmN0aW9uKGEsYixjKXthPW5ldyBhLmNvbnN0cnVjdG9yKGIpO2MmJihhLmo9Xy56Yyk7YS5vPV8uemM7cmV0dXJuIGF9OwpfLlpjPWZ1bmN0aW9uKGEsYixjLGQpe2Q/PyhkPSEhKDM0JmIpKTthPUxjKGEsYixjZCxkKTtkPTMyO2MmJihkfD0yKTtiPWImMTY3NjkyMTd8ZDthW18uQWNdPWI7cmV0dXJuIGF9O18uJGM9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjJjI/ITA6YyYzMiYmIShjJjQwOTYpPyhiW18uQWNdPWN8MixhLmo9Xy56YywhMCk6ITF9O18uZWQ9ZnVuY3Rpb24oYSxiLGMsZCxlKXtiPV8uZGQoYS5EYSxiLGMsZSk7aWYoYiE9PW51bGx8fGQmJmEubyE9PV8uemMpcmV0dXJuIGJ9OwpfLmRkPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGI9PT0tMSlyZXR1cm4gbnVsbDt2YXIgZT1iKyhjPzA6LTEpLGY9YS5sZW5ndGgtMTtpZighKGY8MSsoYz8wOi0xKSkpe2lmKGU+PWYpe3ZhciBoPWFbZl07aWYoaCE9bnVsbCYmdHlwZW9mIGg9PT0ib2JqZWN0IiYmaC5jb25zdHJ1Y3Rvcj09PU9iamVjdCl7Yz1oW2JdO3ZhciBrPSEwfWVsc2UgaWYoZT09PWYpYz1oO2Vsc2UgcmV0dXJufWVsc2UgYz1hW2VdO2lmKGQmJmMhPW51bGwpe2Q9ZChjKTtpZihkPT1udWxsKXJldHVybiBkO2lmKCFPYmplY3QuaXMoZCxjKSlyZXR1cm4gaz9oW2JdPWQ6YVtlXT1kLGR9cmV0dXJuIGN9fTtmZD1mdW5jdGlvbigpe3ZhciBhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhyb3cgRXJyb3IoKTt9fTtPYmplY3Quc2V0UHJvdG90eXBlT2YoYSxhLnByb3RvdHlwZSk7cmV0dXJuIGF9O18uZ2Q9ZnVuY3Rpb24oKXt9OwpoZD1mdW5jdGlvbihhKXt2YXIgYj0hMSxjO3JldHVybiBmdW5jdGlvbigpe2J8fChjPWEoKSxiPSEwKTtyZXR1cm4gY319O2pkPWZ1bmN0aW9uKGEpe3ZhciBiPWlkO2lmKGIpZm9yKGxldCBjIGluIGIpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsYykmJmEoYltjXSxjLGIpfTtrZD1mdW5jdGlvbigpe3ZhciBhPVtdO2pkKGI9PnthLnB1c2goYil9KTtyZXR1cm4gYX07bWQ9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxiPXt9O18udGIobGQoKSxjPT57YS5zYW5kYm94JiZhLnNhbmRib3guc3VwcG9ydHMmJmEuc2FuZGJveC5zdXBwb3J0cyhjKSYmKGJbY109ITApfSk7cmV0dXJuIGJ9O18ubmQ9ZnVuY3Rpb24oYSxiKXt0aGlzLndpZHRoPWE7dGhpcy5oZWlnaHQ9Yn07b2Q9ZnVuY3Rpb24oYSxiKXtmb3IobGV0IGMgaW4gYSliLmNhbGwodm9pZCAwLGFbY10sYyxhKX07Cl8ucGQ9ZnVuY3Rpb24oYSl7Zm9yKGxldCBiIGluIGEpcmV0dXJuITE7cmV0dXJuITB9OwpfLnFkPWZ1bmN0aW9uKGEpe2lmKCFhfHx0eXBlb2YgYSE9PSJvYmplY3QiKXJldHVybiBhO2lmKHR5cGVvZiBhLmNsb25lPT09ImZ1bmN0aW9uIilyZXR1cm4gYS5jbG9uZSgpO2lmKHR5cGVvZiBNYXAhPT0idW5kZWZpbmVkIiYmYSBpbnN0YW5jZW9mIE1hcClyZXR1cm4gbmV3IE1hcChhKTtpZih0eXBlb2YgU2V0IT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBTZXQpcmV0dXJuIG5ldyBTZXQoYSk7aWYoYSBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKGEuZ2V0VGltZSgpKTt2YXIgYj1BcnJheS5pc0FycmF5KGEpP1tdOnR5cGVvZiBBcnJheUJ1ZmZlciE9PSJmdW5jdGlvbiJ8fHR5cGVvZiBBcnJheUJ1ZmZlci5pc1ZpZXchPT0iZnVuY3Rpb24ifHwhQXJyYXlCdWZmZXIuaXNWaWV3KGEpfHxhIGluc3RhbmNlb2YgRGF0YVZpZXc/e306bmV3IGEuY29uc3RydWN0b3IoYS5sZW5ndGgpO2ZvcihsZXQgYyBpbiBhKWJbY109Xy5xZChhW2NdKTtyZXR1cm4gYn07CnNkPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIGM9YXJndW1lbnRzW2VdO2ZvcihkIGluIGMpYVtkXT1jW2RdO2ZvcihsZXQgZj0wO2Y8cmQubGVuZ3RoO2YrKyl7dmFyIGQ9cmRbZl07T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGMsZCkmJihhW2RdPWNbZF0pfX19O18ueGQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/bmV3IHVkKF8udmQoYSkpOndkfHwod2Q9bmV3IHVkKX07Xy55ZD1mdW5jdGlvbihhKXthPWEuZG9jdW1lbnQ7YT1hLmNvbXBhdE1vZGU9PSJDU1MxQ29tcGF0Ij9hLmRvY3VtZW50RWxlbWVudDphLmJvZHk7cmV0dXJuIG5ldyBfLm5kKGEuY2xpZW50V2lkdGgsYS5jbGllbnRIZWlnaHQpfTtfLnpkPWZ1bmN0aW9uKGEpe3JldHVybiBhP2EuZGVmYXVsdFZpZXc6d2luZG93fTsKQWQ9ZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoZSl7ZSYmYi5hcHBlbmRDaGlsZCh0eXBlb2YgZT09PSJzdHJpbmciP2EuY3JlYXRlVGV4dE5vZGUoZSk6ZSl9Zm9yKGxldCBlPTE7ZTxjLmxlbmd0aDtlKyspe2xldCBmPWNbZV07IV8ueWEoZil8fF8uQWEoZikmJmYubm9kZVR5cGU+MD9kKGYpOl8udGIoZiYmdHlwZW9mIGYubGVuZ3RoPT0ibnVtYmVyIiYmdHlwZW9mIGYuaXRlbT09ImZ1bmN0aW9uIj9fLnliKGYpOmYsZCl9fTtfLkNkPWZ1bmN0aW9uKGEpe3JldHVybiBCZChkb2N1bWVudCxhKX07QmQ9ZnVuY3Rpb24oYSxiKXtiPVN0cmluZyhiKTthLmNvbnRlbnRUeXBlPT09ImFwcGxpY2F0aW9uL3hodG1sK3htbCImJihiPWIudG9Mb3dlckNhc2UoKSk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChiKX07Xy5EZD1mdW5jdGlvbihhKXtyZXR1cm4gYSYmYS5wYXJlbnROb2RlP2EucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKTpudWxsfTsKXy52ZD1mdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlVHlwZT09OT9hOmEub3duZXJEb2N1bWVudHx8YS5kb2N1bWVudH07Xy5GZD1mdW5jdGlvbihhKXtyZXR1cm4gYS50YWdOYW1lPT0iQSImJmEuaGFzQXR0cmlidXRlKCJocmVmIil8fGEudGFnTmFtZT09IklOUFVUInx8YS50YWdOYW1lPT0iVEVYVEFSRUEifHxhLnRhZ05hbWU9PSJTRUxFQ1QifHxhLnRhZ05hbWU9PSJCVVRUT04iPyFhLmRpc2FibGVkJiYoIWEuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHxFZChhKSk6YS5oYXNBdHRyaWJ1dGUoInRhYmluZGV4IikmJkVkKGEpfTtFZD1mdW5jdGlvbihhKXthPWEudGFiSW5kZXg7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciImJmE+PTAmJmE8MzI3Njh9O3VkPWZ1bmN0aW9uKGEpe3RoaXMuaj1hfHxfLnUuZG9jdW1lbnR8fGRvY3VtZW50fTsKR2Q9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIiI7aWYoL15hYm91dDooPzpibGFua3xzcmNkb2MpJC8udGVzdChhKSlyZXR1cm4gd2luZG93Lm9yaWdpbnx8IiI7YS5pbmRleE9mKCJibG9iOiIpPT09MCYmKGE9YS5zdWJzdHJpbmcoNSkpO2E9YS5zcGxpdCgiIyIpWzBdLnNwbGl0KCI/IilbMF07YT1hLnRvTG93ZXJDYXNlKCk7YS5pbmRleE9mKCIvLyIpPT0wJiYoYT13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrYSk7L15bXHdcLV0qOlwvXC8vLnRlc3QoYSl8fChhPXdpbmRvdy5sb2NhdGlvbi5ocmVmKTt2YXIgYj1hLnN1YnN0cmluZyhhLmluZGV4T2YoIjovLyIpKzMpLGM9Yi5pbmRleE9mKCIvIik7YyE9LTEmJihiPWIuc3Vic3RyaW5nKDAsYykpO2M9YS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIjovLyIpKTtpZighYyl0aHJvdyBFcnJvcigiQmAiK2EpO2lmKGMhPT0iaHR0cCImJmMhPT0iaHR0cHMiJiZjIT09ImNocm9tZS1leHRlbnNpb24iJiZjIT09Im1vei1leHRlbnNpb24iJiYKYyE9PSJmaWxlIiYmYyE9PSJhbmRyb2lkLWFwcCImJmMhPT0iY2hyb21lLXNlYXJjaCImJmMhPT0iY2hyb21lLXVudHJ1c3RlZCImJmMhPT0iY2hyb21lIiYmYyE9PSJhcHAiJiZjIT09ImRldnRvb2xzIil0aHJvdyBFcnJvcigiQ2AiK2MpO2E9IiI7dmFyIGQ9Yi5pbmRleE9mKCI6Iik7aWYoZCE9LTEpe3ZhciBlPWIuc3Vic3RyaW5nKGQrMSk7Yj1iLnN1YnN0cmluZygwLGQpO2lmKGM9PT0iaHR0cCImJmUhPT0iODAifHxjPT09Imh0dHBzIiYmZSE9PSI0NDMiKWE9IjoiK2V9cmV0dXJuIGMrIjovLyIrYithfTsKSGQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7ZVswXT0xNzMyNTg0MTkzO2VbMV09NDAyMzIzMzQxNztlWzJdPTI1NjIzODMxMDI7ZVszXT0yNzE3MzM4Nzg7ZVs0XT0zMjg1Mzc3NTIwO249bT0wfWZ1bmN0aW9uIGIocCl7Zm9yKHZhciByPWgsdD0wO3Q8NjQ7dCs9NClyW3QvNF09cFt0XTw8MjR8cFt0KzFdPDwxNnxwW3QrMl08PDh8cFt0KzNdO2Zvcih0PTE2O3Q8ODA7dCsrKXA9clt0LTNdXnJbdC04XV5yW3QtMTRdXnJbdC0xNl0sclt0XT0ocDw8MXxwPj4+MzEpJjQyOTQ5NjcyOTU7cD1lWzBdO3ZhciB2PWVbMV0sej1lWzJdLEU9ZVszXSxBPWVbNF07Zm9yKHQ9MDt0PDgwO3QrKyl7aWYodDw0MClpZih0PDIwKXt2YXIgRj1FXnYmKHpeRSk7dmFyIEM9MTUxODUwMDI0OX1lbHNlIEY9dl56XkUsQz0xODU5Nzc1MzkzO2Vsc2UgdDw2MD8oRj12Jnp8RSYodnx6KSxDPTI0MDA5NTk3MDgpOihGPXZeel5FLEM9MzM5NTQ2OTc4Mik7Rj0oKHA8PDV8cD4+PjI3KSY0Mjk0OTY3Mjk1KStGKwpBK0Mrclt0XSY0Mjk0OTY3Mjk1O0E9RTtFPXo7ej0odjw8MzB8dj4+PjIpJjQyOTQ5NjcyOTU7dj1wO3A9Rn1lWzBdPWVbMF0rcCY0Mjk0OTY3Mjk1O2VbMV09ZVsxXSt2JjQyOTQ5NjcyOTU7ZVsyXT1lWzJdK3omNDI5NDk2NzI5NTtlWzNdPWVbM10rRSY0Mjk0OTY3Mjk1O2VbNF09ZVs0XStBJjQyOTQ5NjcyOTV9ZnVuY3Rpb24gYyhwLHIpe2lmKHR5cGVvZiBwPT09InN0cmluZyIpe3A9dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHApKTtmb3IodmFyIHQ9W10sdj0wLHo9cC5sZW5ndGg7djx6Oysrdil0LnB1c2gocC5jaGFyQ29kZUF0KHYpKTtwPXR9cnx8KHI9cC5sZW5ndGgpO3Q9MDtpZihtPT0wKWZvcig7dCs2NDxyOyliKHAuc2xpY2UodCx0KzY0KSksdCs9NjQsbis9NjQ7Zm9yKDt0PHI7KWlmKGZbbSsrXT1wW3QrK10sbisrLG09PTY0KWZvcihtPTAsYihmKTt0KzY0PHI7KWIocC5zbGljZSh0LHQrNjQpKSx0Kz02NCxuKz02NH1mdW5jdGlvbiBkKCl7dmFyIHA9W10scj0Kbio4O208NTY/YyhrLDU2LW0pOmMoayw2NC0obS01NikpO2Zvcih2YXIgdD02Mzt0Pj01Njt0LS0pZlt0XT1yJjI1NSxyPj4+PTg7YihmKTtmb3IodD1yPTA7dDw1O3QrKylmb3IodmFyIHY9MjQ7dj49MDt2LT04KXBbcisrXT1lW3RdPj52JjI1NTtyZXR1cm4gcH1mb3IodmFyIGU9W10sZj1bXSxoPVtdLGs9WzEyOF0sbD0xO2w8NjQ7KytsKWtbbF09MDt2YXIgbSxuO2EoKTtyZXR1cm57cmVzZXQ6YSx1cGRhdGU6YyxkaWdlc3Q6ZCxrdjpmdW5jdGlvbigpe2Zvcih2YXIgcD1kKCkscj0iIix0PTA7dDxwLmxlbmd0aDt0Kyspcis9IjAxMjM0NTY3ODlBQkNERUYiLmNoYXJBdChNYXRoLmZsb29yKHBbdF0vMTYpKSsiMDEyMzQ1Njc4OUFCQ0RFRiIuY2hhckF0KHBbdF0lMTYpO3JldHVybiByfX19O0pkPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1TdHJpbmcoXy51LmxvY2F0aW9uLmhyZWYpO3JldHVybiBkJiZhJiZiP1tiLElkKEdkKGQpLGEsY3x8bnVsbCldLmpvaW4oIiAiKTpudWxsfTsKSWQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVtdLGU9W107aWYoKEFycmF5LmlzQXJyYXkoYyk/MjoxKT09MSlyZXR1cm4gZT1bYixhXSxfLnRiKGQsZnVuY3Rpb24oayl7ZS5wdXNoKGspfSksS2QoZS5qb2luKCIgIikpO3ZhciBmPVtdLGg9W107Xy50YihjLGZ1bmN0aW9uKGspe2gucHVzaChrLmtleSk7Zi5wdXNoKGsudmFsdWUpfSk7Yz1NYXRoLmZsb29yKChuZXcgRGF0ZSkuZ2V0VGltZSgpLzFFMyk7ZT1mLmxlbmd0aD09MD9bYyxiLGFdOltmLmpvaW4oIjoiKSxjLGIsYV07Xy50YihkLGZ1bmN0aW9uKGspe2UucHVzaChrKX0pO2E9S2QoZS5qb2luKCIgIikpO2E9W2MsYV07aC5sZW5ndGg9PTB8fGEucHVzaChoLmpvaW4oIiIpKTtyZXR1cm4gYS5qb2luKCJfIil9O0tkPWZ1bmN0aW9uKGEpe3ZhciBiPUhkKCk7Yi51cGRhdGUoYSk7cmV0dXJuIGIua3YoKS50b0xvd2VyQ2FzZSgpfTtMZD1mdW5jdGlvbihhKXt0aGlzLmo9YXx8e2Nvb2tpZToiIn19OwpNZD1mdW5jdGlvbihhKXthPShhLmouY29va2llfHwiIikuc3BsaXQoIjsiKTt2YXIgYj1bXSxjPVtdO2ZvcihsZXQgZj0wO2Y8YS5sZW5ndGg7ZisrKXt2YXIgZD1hW2ZdLnRyaW0oKTt2YXIgZT1kLmluZGV4T2YoIj0iKTtlPT0tMT8oYi5wdXNoKCIiKSxjLnB1c2goZCkpOihiLnB1c2goZC5zdWJzdHJpbmcoMCxlKSksYy5wdXNoKGQuc3Vic3RyaW5nKGUrMSkpKX1yZXR1cm57a2V5czpiLHZhbHVlczpjfX07Xy5OZD1mdW5jdGlvbigpe3ZhciBhPV8udS5fX1NBUElTSUR8fF8udS5fX0FQSVNJRHx8Xy51Ll9fM1BTQVBJU0lEfHxfLnUuX18xUFNBUElTSUR8fF8udS5fX09WRVJSSURFX1NJRDtpZihhKXJldHVybiEwO3R5cGVvZiBkb2N1bWVudCE9PSJ1bmRlZmluZWQiJiYoYT1uZXcgTGQoZG9jdW1lbnQpLGE9YS5nZXQoIlNBUElTSUQiKXx8YS5nZXQoIkFQSVNJRCIpfHxhLmdldCgiX19TZWN1cmUtM1BBUElTSUQiKXx8YS5nZXQoIl9fU2VjdXJlLTFQQVBJU0lEIikpO3JldHVybiEhYX07Ck9kPWZ1bmN0aW9uKGEsYixjLGQpeyhhPV8udVthXSl8fHR5cGVvZiBkb2N1bWVudD09PSJ1bmRlZmluZWQifHwoYT0obmV3IExkKGRvY3VtZW50KSkuZ2V0KGIpKTtyZXR1cm4gYT9KZChhLGMsZCk6bnVsbH07Cl8uUGQ9ZnVuY3Rpb24oYSl7dmFyIGI9R2QoXy51Py5sb2NhdGlvbi5ocmVmKSxjPVtdO2lmKF8uTmQoKSl7Yj1iLmluZGV4T2YoImh0dHBzOiIpPT0wfHxiLmluZGV4T2YoImNocm9tZS1leHRlbnNpb246Iik9PTB8fGIuaW5kZXhPZigiY2hyb21lLXVudHJ1c3RlZDovL25ldy10YWItcGFnZSIpPT0wfHxiLmluZGV4T2YoIm1vei1leHRlbnNpb246Iik9PTA7dmFyIGQsZT0oZD1iKT9fLnUuX19TQVBJU0lEOl8udS5fX0FQSVNJRDtlfHx0eXBlb2YgZG9jdW1lbnQ9PT0idW5kZWZpbmVkInx8KGU9bmV3IExkKGRvY3VtZW50KSxlPWUuZ2V0KGQ/IlNBUElTSUQiOiJBUElTSUQiKXx8ZS5nZXQoIl9fU2VjdXJlLTNQQVBJU0lEIikpOyhkPWU/SmQoZSxkPyJTQVBJU0lESEFTSCI6IkFQSVNJREhBU0giLGEpOm51bGwpJiZjLnB1c2goZCk7YiYmKChiPU9kKCJfXzFQU0FQSVNJRCIsIl9fU2VjdXJlLTFQQVBJU0lEIiwiU0FQSVNJRDFQSEFTSCIsYSkpJiZjLnB1c2goYiksKGE9T2QoIl9fM1BTQVBJU0lEIiwKIl9fU2VjdXJlLTNQQVBJU0lEIiwiU0FQSVNJRDNQSEFTSCIsYSkpJiZjLnB1c2goYSkpfXJldHVybiBjLmxlbmd0aD09MD9udWxsOmMuam9pbigiICIpfTtTZD1mdW5jdGlvbihhKXtfLlFkP2EoXy5RZCk6KFJkPz8oUmQ9W10pKS5wdXNoKGEpfTtfLlZkPWZ1bmN0aW9uKCl7IV8uUWQmJl8uVGQmJl8uVWQoXy5UZCgpKTtyZXR1cm4gXy5RZH07Xy5VZD1mdW5jdGlvbihhKXtfLlFkPWE7UmQ/LmZvckVhY2goU2QpO1JkPXZvaWQgMH07Xy5XZD1mdW5jdGlvbihhKXtfLlFkJiZfLlFkLlJvKGEpfTtfLlhkPWZ1bmN0aW9uKCl7Xy5RZCYmXy5RZC55ZSgpfTsKWWQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHxfLnhkKCk7Yj1jLmo7dmFyIGQ9Yy5jcmVhdGVFbGVtZW50KCJTVFlMRSIpLGU9aGIoInN0eWxlIixiKTtlJiZkLnNldEF0dHJpYnV0ZSgibm9uY2UiLGUpO2QudHlwZT0idGV4dC9jc3MiO2M9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSEVBRCIpWzBdO2Quc3R5bGVTaGVldD9kLnN0eWxlU2hlZXQuY3NzVGV4dD1hOmQuYXBwZW5kQ2hpbGQoYi5jcmVhdGVUZXh0Tm9kZShhKSk7Yy5hcHBlbmRDaGlsZChkKTtyZXR1cm4gZH07Xy5aZD1mdW5jdGlvbihhKXthJiZ0eXBlb2YgYS5kaXNwb3NlPT0iZnVuY3Rpb24iJiZhLmRpc3Bvc2UoKX07Xy4kZD1mdW5jdGlvbihhKXtmb3IobGV0IGI9MCxjPWFyZ3VtZW50cy5sZW5ndGg7YjxjOysrYil7bGV0IGQ9YXJndW1lbnRzW2JdO18ueWEoZCk/Xy4kZC5hcHBseShudWxsLGQpOl8uWmQoZCl9fTtfLmFlPWZ1bmN0aW9uKCl7dGhpcy5ZPXRoaXMuWTt0aGlzLks9dGhpcy5LfTtiZT1mdW5jdGlvbigpe18uYWUuY2FsbCh0aGlzKX07CmNlPWZ1bmN0aW9uKGEsYil7dGhpcy5qPWE7dGhpcy5vPWJ9O2VlPWZ1bmN0aW9uKGEsYil7Xy5hZS5jYWxsKHRoaXMpO3RoaXMuaj1hO3RoaXMuRD1iO3RoaXMuQj1kZT9udWxsOltdO3RoaXMudj1kZT9udWxsOltdO3RoaXMubz1kZT9udWxsOltdO3RoaXMuST0hMX07ZmU9ZnVuY3Rpb24oYSxiKXthLm98fChhLm89W10pO2Euby5wdXNoKG5ldyB2YS53ayhiLHZvaWQgMCkpfTtnZT1mdW5jdGlvbihhLGIsYyl7YS5CfHwoYS5CPVtdKTthLkIucHVzaChuZXcgdmEud2soYixjKSl9O2hlPWZ1bmN0aW9uKGEsYil7YS52fHwoYS52PVtdKTthLnYucHVzaChuZXcgdmEud2soYix2b2lkIDApKX07aWU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtmb3IobGV0IGQ9MDtkPGEubGVuZ3RoO2QrKyl0cnl7YVtkXS5leGVjdXRlKGIpfWNhdGNoKGUpe18uJGIoZSksYy5wdXNoKGUpfWEubGVuZ3RoPTA7cmV0dXJuIGMubGVuZ3RoP2M6bnVsbH07amU9ZnVuY3Rpb24oKXt0aGlzLlk9bnVsbH07CmtlPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LGM9Yi5zdHlsZVNoZWV0cy5sZW5ndGgsZD1ZZChhLG5ldyB1ZChiKSk7ZC5zZXRBdHRyaWJ1dGUoImRhdGEtbGF0ZS1jc3MiLCIiKTtiLnN0eWxlU2hlZXRzLmxlbmd0aD09YysxJiZfLnZiKGIuc3R5bGVTaGVldHMsZT0+KGUub3duZXJOb2RlfHxlLm93bmluZ0VsZW1lbnQpPT1kKX07cWU9ZnVuY3Rpb24oYSxiPSEwKXt2YXIgYz1sZShhKSxkPW5ldyBtZSxlPV8uTWIoYylbNV07b2QobmUsZnVuY3Rpb24oaCl7dmFyIGs9ZS5tYXRjaCgiLyIraCsiPShbXi9dKykiKTtrJiZvZShkLGgsa1sxXSl9KTt2YXIgZj0iIjtmPWEuaW5kZXhPZigiXy9zcy8iKSE9LTE/Il8vc3MvIjoiXy9qcy8iO3BlKGQsYS5zdWJzdHIoMCxhLmluZGV4T2YoZikrZi5sZW5ndGgpKTtpZighYilyZXR1cm4gZDsoYT1fLk1iKGMpWzZdfHxudWxsKSYmXy5SYihhLChoLGspPT57ZC52W2hdPWt9KTtyZXR1cm4gZH07CmxlPWZ1bmN0aW9uKGEpe3JldHVybiBhLnN0YXJ0c1dpdGgoImh0dHBzOi8vdWJlcnByb3h5LXBlbi1yZWRpcmVjdC5jb3JwLmdvb2dsZS5jb20vdWJlcnByb3h5L3Blbj91cmw9Iik/YS5zdWJzdHIoNjUpOmF9O3JlPWZ1bmN0aW9uKGEpe2E9Xy5RYihsZShhKSk7cmV0dXJuIGE9PT1udWxsPyExOlJlZ0V4cCgiKC9fL2pzLyl8KC9fL3NzLykiLCJnIikudGVzdChhKT8vXC9rPS8udGVzdChhKTohMX07b2U9ZnVuY3Rpb24oYSxiLGMpe2M/YS5qW2JdPWM6ZGVsZXRlIGEualtiXX07cGU9ZnVuY3Rpb24oYSxiKXthLm89Yn07CnZlPWZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM9ZD0+e2EualtkXSE9PXZvaWQgMCYmYi5wdXNoKGQrIj0iK2EualtkXSl9O3NlKGEpPyhjKCJtZCIpLGMoImsiKSxjKCJjayIpLGMoImFtIiksYygicnMiKSxjKCJnc3Ntb2R1bGVzZXRwcm90byIpLGMoInNsayIpLGMoImR0aSIpLGMoImRid2giKSk6KGMoInNkY2giKSxjKCJrIiksYygiY2siKSxjKCJhbSIpLGMoImFtYyIpLGMoInJ0IiksImQiaW4gYS5qfHxvZShhLCJkIiwiMCIpLGMoImQiKSxjKCJleG0iKSxjKCJleGNtIiksKGEuai5leGNtfHxhLmouZXhtKSYmYi5wdXNoKCJlZD0xIiksYygiaW0iKSxjKCJkZyIpLGMoInNtIiksdGUoYSwiYnIiKSE9IjEiJiZ0ZShhLCJiciIpIT0iMCJ8fGMoImJyIiksYygiYnItZCIpLHRlKGEsInJiIik9PSIxIiYmYygicmIiKSx0ZShhLCJ6cyIpIT09IjAiJiZjKCJ6cyIpLHVlKGEpIT09IiImJmMoInd0IiksYygiZ3NzbW9kdWxlc2V0cHJvdG8iKSxjKCJ1amciKSxjKCJzcCIpLGMoImljaGMiKSwKYygicnMiKSxjKCJjYiIpLGMoImNjYiIpLGMoImVlIiksYygic2xrIiksYygiZHRpIiksYygiZGJ3aCIpLGMoImljIiksYygibSIpKTtyZXR1cm4gYi5qb2luKCIvIil9O3RlPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEualtiXT9hLmpbYl06bnVsbH07c2U9ZnVuY3Rpb24oYSl7YT10ZShhLCJtZCIpO3JldHVybiEhYSYmYSE9PSIwIn07dWU9ZnVuY3Rpb24oYSl7c3dpdGNoKHRlKGEsInd0Iikpe2Nhc2UgIjAiOnJldHVybiIwIjtjYXNlICIxIjpyZXR1cm4iMSI7Y2FzZSAiMiI6cmV0dXJuIjIiO2RlZmF1bHQ6cmV0dXJuIiJ9fTt3ZT1mdW5jdGlvbihhLGIpe2ImJmIubGVuZ3RoPjA/KGIuc29ydCgpLG9lKGEsImV4bSIsYi5qb2luKCIsIikpKTpvZShhLCJleG0iLG51bGwpfTt4ZT1mdW5jdGlvbihhLGIpe2ImJmIubGVuZ3RoPjA/KGIuc29ydCgpLG9lKGEsImV4Y20iLGIuam9pbigiLCIpKSk6b2UoYSwiZXhjbSIsbnVsbCl9Owp5ZT1mdW5jdGlvbihhKXtyZXR1cm4oYT10ZShhLCJtIikpP2Euc3BsaXQoIiwiKTpbXX07emU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iIGluc3RhbmNlb2YgTWFwP0FycmF5LmZyb20oYi5lbnRyaWVzKCkpLmZpbHRlcigoWyxkXSk9PmQmJmQuc2l6ZT4wKS5tYXAoKFtkLGVdKT0+e2U9QXJyYXkuZnJvbShlKTtlLmxlbmd0aD4xJiZlLnNvcnQoKTtyZXR1cm4gZCsiOiIrZS5qb2luKCIsIil9KTpPYmplY3Qua2V5cyhiKS5maWx0ZXIoZD0+ISFPYmplY3Qua2V5cyhiW2RdKS5sZW5ndGgpLm1hcChkPT57dmFyIGU9T2JqZWN0LmtleXMoYltkXSk7ZS5sZW5ndGg+MSYmZS5zb3J0KCk7cmV0dXJuIGQrIjoiK2Uuam9pbigiLCIpfSk7Yy5zb3J0KCk7b2UoYSwiZWUiLGMuam9pbigiOyIpKX07CkNlPWZ1bmN0aW9uKGEpe2E9dGUoYSwiZWUiKTtpZihBZSl7aWYoIWEpcmV0dXJuIG5ldyBNYXA7dmFyIGI9bmV3IE1hcCxjPWEuc3BsaXQoIjsiKTtmb3IodmFyIGQgb2YgYyl7bGV0IFtmLGhdPWQuc3BsaXQoIjoiKTtjPW5ldyBTZXQ7Yi5zZXQoZixjKTtmb3IodmFyIGUgb2YgaC5zcGxpdCgiLCIpKWMuYWRkKGUpfXJldHVybiBifWlmKCFhKXJldHVybnt9O2Q9e307ZT1hLnNwbGl0KCI7Iik7Zm9yKGIgb2YgZSl7bGV0IFtmLGhdPWIuc3BsaXQoIjoiKTtkW2ZdPXt9O2ZvcihjIG9mIGguc3BsaXQoIiwiKSlkW2ZdW2NdPSEwfXJldHVybiBkfTtEZT1mdW5jdGlvbihhKXtkZWxldGUgYS5qLm07ZGVsZXRlIGEuai5leG07ZGVsZXRlIGEuai5lZH07CkVlPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBkb2N1bWVudCE9PSJ1bmRlZmluZWQiJiZkb2N1bWVudCYmZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQmJihhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpKSl7bGV0IGI9YS50YWdOYW1lLnRvVXBwZXJDYXNlKCk7aWYoYj09IlNDUklQVCJ8fGI9PSJMSU5LIilyZXR1cm4gYX1yZXR1cm4gbnVsbH07RmU9ZnVuY3Rpb24oYT0iIixiKXtpZihhJiZiKXRocm93IEVycm9yKCJMIik7dmFyIGM9IiI7dmFyIGQ9Xy51Ll9GX2pzVXJsOyhhPWJ8fEVlKGEpKSYmKGM9YS5zcmM/YS5zcmM6YS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7aWYoZCYmYyl7aWYoZCE9Yyl0aHJvdyBFcnJvcigiTWAiK2QrImAiK2MpO2M9ZH1lbHNlIGM9ZHx8YztpZighcmUoYykpdGhyb3cgRXJyb3IoIk4iKTtyZXR1cm4gY307CkhlPWZ1bmN0aW9uKCl7aWYoIUdlKXtHZT0hMDt0cnl7dmFyIGE9RmUoXy51Ll9GX2pzVXJsPyIiOiJiYXNlLWpzIil9Y2F0Y2goYyl7cmV0dXJufXZhciBiPUNlKHFlKGEpKTtpZihiIGluc3RhbmNlb2YgTWFwKWIuc2l6ZSE9PTAmJlNkKGM9Pntmb3IobGV0IFtkLGVdb2YgYi5lbnRyaWVzKCkpe2xldCBmPWQsaD1lO2ZvcihsZXQgayBvZiBoKWMubmkoZixrKX19KTtlbHNle2xldCBjPU9iamVjdC5rZXlzKGIpO2MubGVuZ3RoIT09MCYmU2QoZD0+e2ZvcihsZXQgZSBvZiBjKXtsZXQgZj1iW2VdO2ZvcihsZXQgaCBvZiBPYmplY3Qua2V5cyhmKSlkLm5pKGUsaCl9fSl9fX07Xy5KZT1mdW5jdGlvbihhLGIpe3RoaXMudHlwZT0iZnVuY3Rpb24iPT10eXBlb2YgXy5JZSYmYSBpbnN0YW5jZW9mIF8uSWU/U3RyaW5nKGEpOmE7dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PWI7dGhpcy5kZWZhdWx0UHJldmVudGVkPXRoaXMubz0hMX07CktlPWZ1bmN0aW9uKGEsYil7Xy5KZS5jYWxsKHRoaXMsYT9hLnR5cGU6IiIpO3RoaXMucmVsYXRlZFRhcmdldD10aGlzLmN1cnJlbnRUYXJnZXQ9dGhpcy50YXJnZXQ9bnVsbDt0aGlzLmJ1dHRvbj10aGlzLnNjcmVlblk9dGhpcy5zY3JlZW5YPXRoaXMuY2xpZW50WT10aGlzLmNsaWVudFg9dGhpcy5vZmZzZXRZPXRoaXMub2Zmc2V0WD0wO3RoaXMua2V5PSIiO3RoaXMuY2hhckNvZGU9dGhpcy5rZXlDb2RlPTA7dGhpcy5tZXRhS2V5PXRoaXMuc2hpZnRLZXk9dGhpcy5hbHRLZXk9dGhpcy5jdHJsS2V5PSExO3RoaXMuc3RhdGU9bnVsbDt0aGlzLnBvaW50ZXJJZD0wO3RoaXMucG9pbnRlclR5cGU9IiI7dGhpcy50aW1lU3RhbXA9MDt0aGlzLmo9bnVsbDthJiZ0aGlzLmluaXQoYSxiKX07Ck1lPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5saXN0ZW5lcj1hO3RoaXMucHJveHk9bnVsbDt0aGlzLnNyYz1iO3RoaXMudHlwZT1jO3RoaXMuY2FwdHVyZT0hIWQ7dGhpcy5oYW5kbGVyPWU7dGhpcy5rZXk9KytMZTt0aGlzLk5oPXRoaXMuemk9ITF9O05lPWZ1bmN0aW9uKGEpe2EuTmg9ITA7YS5saXN0ZW5lcj1udWxsO2EucHJveHk9bnVsbDthLnNyYz1udWxsO2EuaGFuZGxlcj1udWxsfTtPZT1mdW5jdGlvbihhKXt0aGlzLnNyYz1hO3RoaXMubGlzdGVuZXJzPXt9O3RoaXMuaj0wfTtQZT1mdW5jdGlvbihhLGIpe3ZhciBjPWIudHlwZTtjIGluIGEubGlzdGVuZXJzJiZfLnhiKGEubGlzdGVuZXJzW2NdLGIpJiYoTmUoYiksYS5saXN0ZW5lcnNbY10ubGVuZ3RoPT0wJiYoZGVsZXRlIGEubGlzdGVuZXJzW2NdLGEuai0tKSl9OwpRZT1mdW5jdGlvbihhLGIsYyxkKXtmb3IobGV0IGU9MDtlPGEubGVuZ3RoOysrZSl7bGV0IGY9YVtlXTtpZighZi5OaCYmZi5saXN0ZW5lcj09YiYmZi5jYXB0dXJlPT0hIWMmJmYuaGFuZGxlcj09ZClyZXR1cm4gZX1yZXR1cm4tMX07Xy5TZT1mdW5jdGlvbihhLGIsYyxkLGUpe2lmKGQmJmQub25jZSlyZXR1cm4gUmUoYSxiLGMsZCxlKTtpZihBcnJheS5pc0FycmF5KGIpKXtmb3IobGV0IGY9MDtmPGIubGVuZ3RoO2YrKylfLlNlKGEsYltmXSxjLGQsZSk7cmV0dXJuIG51bGx9Yz1UZShjKTtyZXR1cm4gYSYmYVtVZV0/YS5saXN0ZW4oYixjLF8uQWEoZCk/ISFkLmNhcHR1cmU6ISFkLGUpOlZlKGEsYixjLCExLGQsZSl9OwpWZT1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoIWIpdGhyb3cgRXJyb3IoIk8iKTt2YXIgaD1fLkFhKGUpPyEhZS5jYXB0dXJlOiEhZSxrPVdlKGEpO2t8fChhW1hlXT1rPW5ldyBPZShhKSk7Yz1rLmFkZChiLGMsZCxoLGYpO2lmKGMucHJveHkpcmV0dXJuIGM7ZD1ZZSgpO2MucHJveHk9ZDtkLnNyYz1hO2QubGlzdGVuZXI9YztpZihhLmFkZEV2ZW50TGlzdGVuZXIpZT09PXZvaWQgMCYmKGU9ITEpLGEuYWRkRXZlbnRMaXN0ZW5lcihiLnRvU3RyaW5nKCksZCxlKTtlbHNlIGlmKGEuYXR0YWNoRXZlbnQpYS5hdHRhY2hFdmVudChaZShiLnRvU3RyaW5nKCkpLGQpO2Vsc2UgaWYoYS5hZGRMaXN0ZW5lciYmYS5yZW1vdmVMaXN0ZW5lcilhLmFkZExpc3RlbmVyKGQpO2Vsc2UgdGhyb3cgRXJyb3IoIlAiKTskZSsrO3JldHVybiBjfTtZZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7cmV0dXJuIGIuY2FsbChhLnNyYyxhLmxpc3RlbmVyLGMpfXZhciBiPWFmO3JldHVybiBhfTsKUmU9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihBcnJheS5pc0FycmF5KGIpKXtmb3IobGV0IGY9MDtmPGIubGVuZ3RoO2YrKylSZShhLGJbZl0sYyxkLGUpO3JldHVybiBudWxsfWM9VGUoYyk7cmV0dXJuIGEmJmFbVWVdP18uYmYoYSxiLGMsXy5BYShkKT8hIWQuY2FwdHVyZTohIWQsZSk6VmUoYSxiLGMsITAsZCxlKX07Xy5jZj1mdW5jdGlvbihhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYikpZm9yKGxldCBmPTA7ZjxiLmxlbmd0aDtmKyspXy5jZihhLGJbZl0sYyxkLGUpO2Vsc2UoZD1fLkFhKGQpPyEhZC5jYXB0dXJlOiEhZCxjPVRlKGMpLGEmJmFbVWVdKT9hLm8ucmVtb3ZlKFN0cmluZyhiKSxjLGQsZSk6YSYmKGE9V2UoYSkpJiYoYj1hLmxpc3RlbmVyc1tiLnRvU3RyaW5nKCldLGE9LTEsYiYmKGE9UWUoYixjLGQsZSkpLChjPWE+LTE/YlthXTpudWxsKSYmXy5kZihjKSl9OwpfLmRmPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09Im51bWJlciImJmEmJiFhLk5oKXt2YXIgYj1hLnNyYztpZihiJiZiW1VlXSlQZShiLm8sYSk7ZWxzZXt2YXIgYz1hLnR5cGUsZD1hLnByb3h5O2IucmVtb3ZlRXZlbnRMaXN0ZW5lcj9iLnJlbW92ZUV2ZW50TGlzdGVuZXIoYyxkLGEuY2FwdHVyZSk6Yi5kZXRhY2hFdmVudD9iLmRldGFjaEV2ZW50KFplKGMpLGQpOmIuYWRkTGlzdGVuZXImJmIucmVtb3ZlTGlzdGVuZXImJmIucmVtb3ZlTGlzdGVuZXIoZCk7JGUtLTsoYz1XZShiKSk/KFBlKGMsYSksYy5qPT0wJiYoYy5zcmM9bnVsbCxiW1hlXT1udWxsKSk6TmUoYSl9fX07WmU9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW4gZWY/ZWZbYV06ZWZbYV09Im9uIithfTthZj1mdW5jdGlvbihhLGIpe2lmKGEuTmgpYT0hMDtlbHNle2I9bmV3IEtlKGIsdGhpcyk7bGV0IGM9YS5saXN0ZW5lcixkPWEuaGFuZGxlcnx8YS5zcmM7YS56aSYmXy5kZihhKTthPWMuY2FsbChkLGIpfXJldHVybiBhfTsKV2U9ZnVuY3Rpb24oYSl7YT1hW1hlXTtyZXR1cm4gYSBpbnN0YW5jZW9mIE9lP2E6bnVsbH07VGU9ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGE9PT0iZnVuY3Rpb24iKXJldHVybiBhO2FbZmZdfHwoYVtmZl09ZnVuY3Rpb24oYil7cmV0dXJuIGEuaGFuZGxlRXZlbnQoYil9KTtyZXR1cm4gYVtmZl19O18uZ2Y9ZnVuY3Rpb24oKXtfLmFlLmNhbGwodGhpcyk7dGhpcy5vPW5ldyBPZSh0aGlzKTt0aGlzLkZhPXRoaXM7dGhpcy5NPW51bGx9O18uYmY9ZnVuY3Rpb24oYSxiLGMsZCxlKXtyZXR1cm4gYS5vLmFkZChTdHJpbmcoYiksYywhMCxkLGUpfTsKaGY9ZnVuY3Rpb24oYSxiLGMsZCl7Yj1hLm8ubGlzdGVuZXJzW1N0cmluZyhiKV07aWYoIWIpcmV0dXJuITA7Yj1iLmNvbmNhdCgpO3ZhciBlPSEwO2ZvcihsZXQgZj0wO2Y8Yi5sZW5ndGg7KytmKXtsZXQgaD1iW2ZdO2lmKGgmJiFoLk5oJiZoLmNhcHR1cmU9PWMpe2xldCBrPWgubGlzdGVuZXIsbD1oLmhhbmRsZXJ8fGguc3JjO2guemkmJlBlKGEubyxoKTtlPWsuY2FsbChsLGQpIT09ITEmJmV9fXJldHVybiBlJiYhZC5kZWZhdWx0UHJldmVudGVkfTtsZj1mdW5jdGlvbigpe3ZhciBhPV8uamY7a2YuaW5zdGFuY2V8fChrZi5pbnN0YW5jZT1uZXcga2YoYSkpO3JldHVybiBrZi5pbnN0YW5jZX07Cm1mPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuQj9hLkI6YS5CPW5ldyBQcm9taXNlKGFzeW5jIGM9Pnt2YXIgZD13aW5kb3cuQWJvcnRDb250cm9sbGVyP25ldyB3aW5kb3cuQWJvcnRDb250cm9sbGVyOnZvaWQgMCxlPWQ/LnNpZ25hbCxmPSExO3RyeXtkJiYoYS5qPWEuRGMucGIoKCk9PntkLmFib3J0KCl9LGJ8fDJFNCkpLGF3YWl0IGZldGNoKCIvZ2VuZXJhdGVfMjA0Iix7bWV0aG9kOiJIRUFEIixzaWduYWw6ZX0pLGY9ITB9Y2F0Y2h7Zj0hMX1maW5hbGx5e2EuQj12b2lkIDAsYS5qJiYoYS5EYy5BYShhLmopLGEuaj0wKSxmIT09YS5pc09ubGluZSYmKGEuaXNPbmxpbmU9ZixhLmlzT25saW5lP2EuZGlzcGF0Y2hFdmVudCgibmV0d29ya3N0YXR1cy1vbmxpbmUiKTphLmRpc3BhdGNoRXZlbnQoIm5ldHdvcmtzdGF0dXMtb2ZmbGluZSIpKSxjKGYpfX0pfTsKbmY9ZnVuY3Rpb24oYSl7YS5EPWEuRGMucGIoYXN5bmMoKT0+e2EuaXNPbmxpbmU/d2luZG93Lm5hdmlnYXRvcj8ub25MaW5lfHxhd2FpdCBtZihhKTphd2FpdCBtZihhKTtuZihhKX0sM0U0KX07b2Y9ZnVuY3Rpb24oKXt2YXIgYSxiO3JldHVybntwcm9taXNlOm5ldyBQcm9taXNlKChjLGQpPT57YT1jO2I9ZH0pLHJlc29sdmU6YSxyZWplY3Q6Yn19O3JmPWZ1bmN0aW9uKGEpe3ZhciB7cHJvbWlzZTpiLHJlc29sdmU6YyxyZWplY3Q6ZH09b2YoKTtwZi5zZXQoYSx7cHJvbWlzZTpiLHJlc29sdmU6YyxyZWplY3Q6ZH0pO3FmfHwocWY9W10scXVldWVNaWNyb3Rhc2soKCk9Pnt2YXIgZT1bLi4ucWZdO3FmPW51bGw7dmFyIGY9Xy5WZCgpLmFmKGUpO2ZvcihsZXQgaCBvZiBlKWZbaF0udGhlbihwZi5nZXQoaCkucmVzb2x2ZSxwZi5nZXQoaCkucmVqZWN0KX0pKTtxZi5wdXNoKGEpO3JldHVybiBifTsKXy5zZj1mdW5jdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAyMDA6Y2FzZSAyMDE6Y2FzZSAyMDI6Y2FzZSAyMDQ6Y2FzZSAyMDY6Y2FzZSAzMDQ6Y2FzZSAxMjIzOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fTt0Zj1mdW5jdGlvbihhLGIpe2EuQihiKTthLm88MTAwJiYoYS5vKyssYi5uZXh0PWEuaixhLmo9Yil9O3hmPWZ1bmN0aW9uKCl7Zm9yKHZhciBhO2E9dWYucmVtb3ZlKCk7KXt0cnl7YS5mbi5jYWxsKGEuc2NvcGUpfWNhdGNoKGIpe18uJGIoYil9dGYodmYsYSl9d2Y9ITF9O18ueWY9ZnVuY3Rpb24oYSl7YS5wcm90b3R5cGUuJGdvb2dfVGhlbmFibGU9ITB9O3pmPWZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiExO3RyeXtyZXR1cm4hIWEuJGdvb2dfVGhlbmFibGV9Y2F0Y2goYil7cmV0dXJuITF9fTsKXy5CZj1mdW5jdGlvbihhLGIpe3RoaXMuaj0wO3RoaXMuST12b2lkIDA7dGhpcy5CPXRoaXMubz10aGlzLnY9bnVsbDt0aGlzLkQ9dGhpcy5LPSExO2lmKGEhPV8uZ2QpdHJ5e2xldCBjPXRoaXM7YS5jYWxsKGIsZnVuY3Rpb24oZCl7Xy5BZihjLDIsZCl9LGZ1bmN0aW9uKGQpe18uQWYoYywzLGQpfSl9Y2F0Y2goYyl7Xy5BZih0aGlzLDMsYyl9fTtDZj1mdW5jdGlvbigpe3RoaXMubmV4dD10aGlzLmNvbnRleHQ9dGhpcy5qPXRoaXMubz10aGlzLmNoaWxkPW51bGw7dGhpcy52PSExfTtfLkVmPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1EZi5nZXQoKTtkLm89YTtkLmo9YjtkLmNvbnRleHQ9YztyZXR1cm4gZH07Xy5IZj1mdW5jdGlvbihhLGIsYyl7RmYoYSxiLGMsbnVsbCl8fEdmKF8uRGEoYixhKSl9OwpfLklmPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgXy5CZihmdW5jdGlvbihiLGMpe3ZhciBkPWEubGVuZ3RoLGU9W107aWYoZCl7dmFyIGY9ZnVuY3Rpb24obCxtKXtkLS07ZVtsXT1tO2Q9PTAmJmIoZSl9LGg9ZnVuY3Rpb24obCl7YyhsKX07Zm9yKGxldCBsPTA7bDxhLmxlbmd0aDtsKyspe3ZhciBrPWFbbF07Xy5IZihrLF8uRGEoZixsKSxoKX19ZWxzZSBiKGUpfSl9O0tmPWZ1bmN0aW9uKGEsYixjLGQpe18uSmYoYSxfLkVmKGJ8fF8uZ2QsY3x8bnVsbCxkKSl9OwpMZj1mdW5jdGlvbihhLGIpe2lmKGEuaj09MClpZihhLnYpe3ZhciBjPWEudjtpZihjLm8pe3ZhciBkPTAsZT1udWxsLGY9bnVsbDtmb3IobGV0IGg9Yy5vO2gmJihoLnZ8fChkKyssaC5jaGlsZD09YSYmKGU9aCksIShlJiZkPjEpKSk7aD1oLm5leHQpZXx8KGY9aCk7ZSYmKGMuaj09MCYmZD09MT9MZihjLGIpOihmPyhkPWYsZC5uZXh0PT1jLkImJihjLkI9ZCksZC5uZXh0PWQubmV4dC5uZXh0KTpNZihjKSxOZihjLGUsMyxiKSkpfWEudj1udWxsfWVsc2UgXy5BZihhLDMsYil9O18uSmY9ZnVuY3Rpb24oYSxiKXthLm98fGEuaiE9MiYmYS5qIT0zfHxPZihhKTthLkI/YS5CLm5leHQ9YjphLm89YjthLkI9Yn07ClFmPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPV8uRWYobnVsbCxudWxsLG51bGwpO2UuY2hpbGQ9bmV3IF8uQmYoZnVuY3Rpb24oZixoKXtlLm89Yj9mdW5jdGlvbihrKXt0cnl7bGV0IGw9Yi5jYWxsKGQsayk7ZihsKX1jYXRjaChsKXtoKGwpfX06ZjtlLmo9Yz9mdW5jdGlvbihrKXt0cnl7bGV0IGw9Yy5jYWxsKGQsayk7bD09PXZvaWQgMCYmayBpbnN0YW5jZW9mIF8uUGY/aChrKTpmKGwpfWNhdGNoKGwpe2gobCl9fTpofSk7ZS5jaGlsZC52PWE7Xy5KZihhLGUpO3JldHVybiBlLmNoaWxkfTtfLkFmPWZ1bmN0aW9uKGEsYixjKXthLmo9PTAmJihhPT09YyYmKGI9MyxjPW5ldyBUeXBlRXJyb3IoIlEiKSksYS5qPTEsRmYoYyxhLm5CLGEub0IsYSl8fChhLkk9YyxhLmo9YixhLnY9bnVsbCxPZihhKSxiIT0zfHxjIGluc3RhbmNlb2YgXy5QZnx8UmYoYSxjKSkpfTsKRmY9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYSBpbnN0YW5jZW9mIF8uQmYpcmV0dXJuIEtmKGEsYixjLGQpLCEwO2lmKHpmKGEpKXJldHVybiBhLnRoZW4oYixjLGQpLCEwO2lmKF8uQWEoYSkpdHJ5e2xldCBlPWEudGhlbjtpZih0eXBlb2YgZT09PSJmdW5jdGlvbiIpcmV0dXJuIFNmKGEsZSxiLGMsZCksITB9Y2F0Y2goZSl7cmV0dXJuIGMuY2FsbChkLGUpLCEwfXJldHVybiExfTtTZj1mdW5jdGlvbihhLGIsYyxkLGUpe2Z1bmN0aW9uIGYobCl7a3x8KGs9ITAsZC5jYWxsKGUsbCkpfWZ1bmN0aW9uIGgobCl7a3x8KGs9ITAsYy5jYWxsKGUsbCkpfXZhciBrPSExO3RyeXtiLmNhbGwoYSxoLGYpfWNhdGNoKGwpe2YobCl9fTtPZj1mdW5jdGlvbihhKXthLkt8fChhLks9ITAsR2YoYS50dCxhKSl9O01mPWZ1bmN0aW9uKGEpe3ZhciBiPW51bGw7YS5vJiYoYj1hLm8sYS5vPWIubmV4dCxiLm5leHQ9bnVsbCk7YS5vfHwoYS5CPW51bGwpO3JldHVybiBifTsKTmY9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYz09MyYmYi5qJiYhYi52KWZvcig7YSYmYS5EO2E9YS52KWEuRD0hMTtpZihiLmNoaWxkKWIuY2hpbGQudj1udWxsLFRmKGIsYyxkKTtlbHNlIHRyeXtiLnY/Yi5vLmNhbGwoYi5jb250ZXh0KTpUZihiLGMsZCl9Y2F0Y2goZSl7Xy5VZi5jYWxsKG51bGwsZSl9dGYoRGYsYil9O1RmPWZ1bmN0aW9uKGEsYixjKXtiPT0yP2Euby5jYWxsKGEuY29udGV4dCxjKTphLmomJmEuai5jYWxsKGEuY29udGV4dCxjKX07UmY9ZnVuY3Rpb24oYSxiKXthLkQ9ITA7R2YoZnVuY3Rpb24oKXthLkQmJl8uVWYuY2FsbChudWxsLGIpfSl9O18uUGY9ZnVuY3Rpb24oYSl7Xy5MYS5jYWxsKHRoaXMsYSl9O1dmPWZ1bmN0aW9uKGEpe3JldHVybiBWZihhKS50aGVuKGZ1bmN0aW9uKGIpe3JldHVybiBKU09OLnBhcnNlKGIucmVzcG9uc2VUZXh0KX0pfTsKVmY9ZnVuY3Rpb24oYSl7dmFyIGI9e30sYz1uZXcgWE1MSHR0cFJlcXVlc3Q7cmV0dXJuKG5ldyBfLkJmKGZ1bmN0aW9uKGQsZSl7dmFyIGY7dHJ5e2Mub3BlbigiR0VUIixhLCEwKX1jYXRjaChoKXtlKG5ldyBYZigiRXJyb3Igb3BlbmluZyBYSFI6ICIraC5tZXNzYWdlLGEsYykpfWMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoYy5yZWFkeVN0YXRlPT00KXtfLnUuY2xlYXJUaW1lb3V0KGYpO3ZhciBoOyEoaD1fLnNmKGMuc3RhdHVzKSkmJihoPWMuc3RhdHVzPT09MCkmJihoPV8uT2IoYSksaD0hKGg9PSJodHRwInx8aD09Imh0dHBzInx8aD09IiIpKTtoP2QoYyk6ZShuZXcgWWYoYy5zdGF0dXMsYSxjKSl9fTtjLm9uZXJyb3I9ZnVuY3Rpb24oKXtlKG5ldyBYZigiTmV0d29yayBlcnJvciIsYSxjKSl9O2lmKGIuaGVhZGVycylmb3IobGV0IGggaW4gYi5oZWFkZXJzKXtsZXQgaz1iLmhlYWRlcnNbaF07ayE9bnVsbCYmYy5zZXRSZXF1ZXN0SGVhZGVyKGgsayl9Yi53aXRoQ3JlZGVudGlhbHMmJgooYy53aXRoQ3JlZGVudGlhbHM9Yi53aXRoQ3JlZGVudGlhbHMpO2IucmVzcG9uc2VUeXBlJiYoYy5yZXNwb25zZVR5cGU9Yi5yZXNwb25zZVR5cGUpO2IubWltZVR5cGUmJmMub3ZlcnJpZGVNaW1lVHlwZShiLm1pbWVUeXBlKTtiLnRpbWVvdXRNcz4wJiYoZj1fLnUuc2V0VGltZW91dChmdW5jdGlvbigpe2Mub25yZWFkeXN0YXRlY2hhbmdlPSgpPT57fTtjLmFib3J0KCk7ZShuZXcgWmYoYSxjKSl9LGIudGltZW91dE1zKSk7dHJ5e2Muc2VuZChudWxsKX1jYXRjaChoKXtjLm9ucmVhZHlzdGF0ZWNoYW5nZT0oKT0+e30sXy51LmNsZWFyVGltZW91dChmKSxlKG5ldyBYZigiRXJyb3Igc2VuZGluZyBYSFI6ICIraC5tZXNzYWdlLGEsYykpfX0pKS5LZyhmdW5jdGlvbihkKXtkIGluc3RhbmNlb2YgXy5QZiYmYy5hYm9ydCgpO3Rocm93IGQ7fSl9O1hmPWZ1bmN0aW9uKGEsYil7Xy5MYS5jYWxsKHRoaXMsYSsiLCB1cmw9IitiKTt0aGlzLnVybD1ifTsKWWY9ZnVuY3Rpb24oYSxiLGMpe1hmLmNhbGwodGhpcywiUmVxdWVzdCBGYWlsZWQsIHN0YXR1cz0iK2EsYixjKTt0aGlzLnN0YXR1cz1hfTtaZj1mdW5jdGlvbihhLGIpe1hmLmNhbGwodGhpcywiUmVxdWVzdCB0aW1lZCBvdXQiLGEsYil9O18uJGY9ZnVuY3Rpb24oYSxiLGMsZCxlPWIpe3ZhciBmPWIubGVuZ3RoLGg9KCk9PntmPTA7YS5vbmxvYWQ9bnVsbDthLm9uZXJyb3I9bnVsbDtrPSgpPT57fX0saz0oKT0+e2goKTt2YXIgbT1lLmZpbHRlcihuPT4hXy5WZCgpLkxhKG4pLmlzTG9hZGVkKCkpO20ubGVuZ3RoIT09MD9kKG0sYFJlc3BvbnNlIHdhcyBzdWNjZXNzZnVsIGJ1dCB3YXMgbWlzc2luZyBtb2R1bGUocykgJHttfS5gKTpjKCl9LGw9KCk9PntmLS07Zj09MCYmaygpfTtiLmZvckVhY2gobT0+e209Xy5WZCgpLkxhKG0pO20uaXNMb2FkZWQoKT9sKCk6KGZlKG0sbCksaGUobSxsKSl9KTthLm9ubG9hZD0oKT0+aygpO2Eub25lcnJvcj0oKT0+e2goKTtkKGIpfX07Cl8uYWc9ZnVuY3Rpb24oYSxiKXt2YXIgYz0hMSxkPVtdO2ZvcihsZXQgZT0wO2U8Yi5sZW5ndGg7KytlKXtsZXQgZj1iW2VdO2EuQltmXXx8KGEuQltmXT0hMCxhLloucHVzaChmKSxjPSEwLGQucHVzaChmKSl9YyYmKGEub2E9ITEpfTtiZz1mdW5jdGlvbihhLGIpe2lmKGIuaHJlZnx8Yi5nZXRBdHRyaWJ1dGUoImRhdGEtaHJlZiIpKWlmKGI9Yi5ocmVmfHxiLmdldEF0dHJpYnV0ZSgiZGF0YS1ocmVmIikscmUoYikmJiFxZShiKS5vLmVuZHNXaXRoKCJfL2pzLyIpKXtiPXllKHFlKGIpKTtmb3IobGV0IGMgb2YgYilhLmhhLmluY2x1ZGVzKGMpfHxhLmhhLnB1c2goYyl9fTtkZz1mdW5jdGlvbihhLGIsYyxkPSgpPT57fSxlPSgpPT57fSxmPSExKXtjZyhhLGIsKGgsayxsPWspPT57YS5NYSYmZj9hLlFhKGgsayxkLGUsbCk6YS5sb2FkKGgsayxkLGUsbCxjKX0sYyl8fGQoLTEpfTtlZz1mdW5jdGlvbihhLGIpe3JldHVybiBiLmZpbHRlcihjPT4hYS5CW2NdKX07CmZnPWZ1bmN0aW9uKGEsYixjLHtZZDpkLG9uRXJyb3I6ZSxvblN1Y2Nlc3M6Zixmb3JjZVJlbG9hZDpofT17fSl7YS5NPWM7aWYoIWIpdGhyb3cgRXJyb3IoIlMiKTtpZihhLlZkKXtmb3IobGV0IGsgb2YgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0eWxlIikpYmcoYSxrKTtmb3IobGV0IGsgb2YgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpbmsiKSliZyhhLGspfWRnKGEsZWcoYSxiKSxkLGUsZixoKX07CmNnPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGEudilyZXR1cm4gYS52LnRoZW4oKCk9PntjZyhhLGIsYyxkKX0pLCEwO2lmKCFhLkQpe2xldCBmPVtdO3ZhciBlPU9iamVjdC5hc3NpZ24oe30sYS5CKTtnZyhhLGIsaD0+e2YucHVzaChoLmdldElkKCkpfSxkLGg9PiFoLmlzTG9hZGVkKCksZSk7Yj1mfWZvcihlPTA7ZTxiLmxlbmd0aDspe2xldCBmPWIubGVuZ3RoLWUsaD1lPT0wP2I6Yi5zbGljZShlLGIubGVuZ3RoKSxrPWhnKGEsaCxkKSxsPV8uVWEoaykudG9TdHJpbmcoKTtmb3IoO2wubGVuZ3RoPmEuZGk7KWlmKGY+MSlmLT1NYXRoLmNlaWwoKGwubGVuZ3RoLWEuZGkpLzYpLGY9TWF0aC5tYXgoZiwxKSxoPWIuc2xpY2UoZSxlK2YpLGs9aGcoYSxoLGQpLGw9Xy5VYShrKS50b1N0cmluZygpO2Vsc2UgcmV0dXJuIGEuRD8oYS5EPSExLGEudj1pZyhhKS50aGVuKG09PntqZyhhLG0sZCl9KSxjZyhhLGIuc2xpY2UoZSksYyxkKSk6ITE7ZSs9ZjthLkQ/YyhrLGgpOmMoayxoLGU9PT1iLmxlbmd0aD8KYjpbXSl9cmV0dXJuITB9O2tnPWZ1bmN0aW9uKGEpe2Eub2F8fChhLm9hPSEwLGEuWi5zb3J0KCkpO3JldHVybiBhLlp9O2xnPWZ1bmN0aW9uKGEpe2E9YS5oYTthLnNvcnQoKTtyZXR1cm4gYX07aGc9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhLkQ/bWcoYS5ZLGIse2Nzc1Jvd0tleTphLkZhLEtlOmEueWEsWWQ6YyxtbjprZyhhKSxsbjpsZyhhKX0pOm5nKGEuWSxiLHtjc3NSb3dLZXk6YS5GYSxLZTphLnlhLG1uOmtnKGEpLGxuOmxnKGEpfSl9O18ub2c9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtmb3IobGV0IGQ9MDtkPGIubGVuZ3RoOysrZCl7bGV0IGU9YltkXTthLkJbZV0mJihkZWxldGUgYS5CW2VdLF8ueGIoYS5aLGUpLGMucHVzaChlKSl9fTsKXy5wZz1mdW5jdGlvbihhLGIsYyxkLGUsZixoPWQpe2EuST1jO2EuZ2EuaW5zZXJ0QmVmb3JlKGMsYS5nYS5maXJzdENoaWxkKTtfLiRmKGMsZCwoKT0+e2MucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChjKTthLkk9PWMmJihhLkk9bnVsbCk7ZigpfSxrPT57Yy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGMpO2EuST09YyYmKGEuST1udWxsKTtfLm9nKGEsayk7YS52P2Eudi50aGVuKCgpPT57ZSgtMSxiKX0pOmUoLTEsYil9LGgpfTtnZz1mdW5jdGlvbihhLGIsYyxkLGUsZj17fSl7dmFyIGg9Xy5WZCgpO2ZvcihsZXQgayBvZiBiKXtiPWguTGEoayk7aWYoZltrXXx8ZSYmIWUoYikpY29udGludWU7ZltrXT0hMDtsZXQgbD1iLmp8fFtdO2lmKGQpe2xldCBtPVtdO2lmKGQgaW5zdGFuY2VvZiBNYXApe2xldCBuPWQuZ2V0KGspO24mJihtPUFycmF5LmZyb20obikpfWVsc2UgZFtrXSYmKG09T2JqZWN0LmtleXMoZFtrXSkpO2w9bC5jb25jYXQobSl9Z2coYSxsLGMsZCxlLGYpO2MoYil9fTsKaWc9ZnVuY3Rpb24oYSl7YT1hLlkuY2xvbmUoKTtEZShhKTtvZShhLCJkZyIsbnVsbCk7b2UoYSwibWQiLCIxIik7cmV0dXJuIFdmKGEudG9TdHJpbmcoKSl9O2pnPWZ1bmN0aW9uKGEsYixjKXtfLlZkKCkuVGgoKGJ8fHt9KS5tb2R1bGVHcmFwaCk7Z2coYSxrZyhhKSxkPT57Xy5hZyhhLFtkLmdldElkKCldKX0sYyk7YS52PW51bGx9O3JnPWZ1bmN0aW9uKGEpe2E9YS5idWYuY2hhckNvZGVBdChhLnBvcysrKTtyZXR1cm4gcWdbYV19O3NnPWZ1bmN0aW9uKGEpe3ZhciBiPTAsYz0wO2Rve3ZhciBkPXJnKGEpO2J8PShkJjMxKTw8YztjKz01fXdoaWxlKGQmMzIpO3JldHVybiBiPDA/Yis0Mjk0OTY3Mjk2OmJ9O3RnPWZ1bmN0aW9uKGEsYil7dGhpcy5EPVtdO3RoaXMuWj1hO3RoaXMuVT1ifHxudWxsO3RoaXMuQj10aGlzLmo9ITE7dGhpcy52PXZvaWQgMDt0aGlzLk09dGhpcy5nYT10aGlzLkk9ITE7dGhpcy5LPTA7dGhpcy5vPW51bGw7dGhpcy5ZPTB9Owp2Zz1mdW5jdGlvbihhLGIsYyl7YS5qPSEwO2Eudj1jO2EuQj0hYjt1ZyhhKX07eGc9ZnVuY3Rpb24oYSl7aWYoYS5qKXtpZighYS5NKXRocm93IG5ldyB3ZyhhKTthLk09ITF9fTt6Zz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLmo7ZXx8KGI9PT1jP2I9Yz0oMCxfLnlnKShiKTooYj0oMCxfLnlnKShiKSxjPSgwLF8ueWcpKGMpKSk7YS5ELnB1c2goW2IsYyxkXSk7ZSYmdWcoYSl9O0FnPWZ1bmN0aW9uKGEpe3JldHVybiBfLnViKGEuRCxmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGJbMV09PT0iZnVuY3Rpb24ifSl9Owp1Zz1mdW5jdGlvbihhKXtpZihhLksmJmEuaiYmQWcoYSkpe3ZhciBiPWEuSyxjPUJnW2JdO2MmJihfLnUuY2xlYXJUaW1lb3V0KGMuaiksZGVsZXRlIEJnW2JdKTthLks9MH1hLm8mJihhLm8uWS0tLGRlbGV0ZSBhLm8pO2I9YS52O2Zvcih2YXIgZD1jPSExO2EuRC5sZW5ndGgmJiFhLkk7KXt2YXIgZT1hLkQuc2hpZnQoKSxmPWVbMF07bGV0IGs9ZVsxXTtlPWVbMl07aWYoZj1hLkI/azpmKXRyeXt2YXIgaD1mLmNhbGwoZXx8YS5VLGIpO2g9PT1DZyYmKGg9dm9pZCAwKTtoIT09dm9pZCAwJiYoYS5CPWEuQiYmKGg9PWJ8fGEuaXNFcnJvcihoKSksYS52PWI9aCk7aWYoemYoYil8fHR5cGVvZiBfLnUuUHJvbWlzZT09PSJmdW5jdGlvbiImJmIgaW5zdGFuY2VvZiBfLnUuUHJvbWlzZSlkPSEwLGEuST0hMH1jYXRjaChsKXtiPWwsYS5CPSEwLEFnKGEpfHwoYz0hMCl9fWEudj1iO2QmJihoPSgwLF8uQ2EpKGEuc3AsYSwhMCksZD0oMCxfLkNhKShhLnNwLGEsITEpLGIgaW5zdGFuY2VvZiB0Zz8KKHpnKGIsaCxkKSxiLmdhPSEwKTpiLnRoZW4oaCxkKSk7YyYmKGI9bmV3IERnKGIpLEJnW2Iual09YixhLks9Yi5qKX07RWc9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IHRnO2EudGhlbihmdW5jdGlvbihjKXtiLmNhbGxiYWNrKGMpfSxmdW5jdGlvbihjKXt4ZyhiKTt2ZyhiLCExLGMpfSk7cmV0dXJuIGJ9O3dnPWZ1bmN0aW9uKCl7Xy5MYS5jYWxsKHRoaXMpfTtGZz1mdW5jdGlvbigpe18uTGEuY2FsbCh0aGlzKX07RGc9ZnVuY3Rpb24oYSl7dGhpcy5qPV8udS5zZXRUaW1lb3V0KCgwLF8uQ2EpKHRoaXMudGhyb3dFcnJvcix0aGlzKSwwKTt0aGlzLm89YX07CkhnPWZ1bmN0aW9uKGEpe3N3aXRjaChhLnR5cGUpe2Nhc2UgR2cuVHlwZS5wbzpyZXR1cm4iVW5hdXRob3JpemVkIjtjYXNlIEdnLlR5cGUucGs6cmV0dXJuIkNvbnNlY3V0aXZlIGxvYWQgZmFpbHVyZXMiO2Nhc2UgR2cuVHlwZS5USU1FT1VUOnJldHVybiJUaW1lZCBvdXQiO2Nhc2UgR2cuVHlwZS5obzpyZXR1cm4iT3V0IG9mIGRhdGUgbW9kdWxlIGlkIjtjYXNlIEdnLlR5cGUudWs6cmV0dXJuIkluaXQgZXJyb3IiO2RlZmF1bHQ6cmV0dXJuYFVua25vd24gZmFpbHVyZSB0eXBlICR7YS50eXBlfWB9fTsKSWc9ZnVuY3Rpb24oKXt0aGlzLmhhPXRoaXMuWT1udWxsO3RoaXMuRD1uZXcgTWFwO3RoaXMuQj1uZXcgU2V0O3RoaXMuSz1bXTt0aGlzLlU9bmV3IFNldDt0aGlzLnY9W107dGhpcy5JPW5ldyBTZXQ7dGhpcy5qPUFlP25ldyBNYXA6e307dGhpcy5NPW5ldyBNYXA7dGhpcy5vPXRoaXMuWj1uZXcgdmEuT2coW10sIiIpO3RoaXMueWE9bnVsbDt0aGlzLmdhPW5ldyB0Zzt0aGlzLkZhPXRoaXMuUWE9dGhpcy5NYT10aGlzLm9hPSExfTtKZz1mdW5jdGlvbihhLGIpe18uTGEuY2FsbCh0aGlzLGBFcnJvciBsb2FkaW5nICR7YX06ICR7Yn1gKX07Ck9nPWZ1bmN0aW9uKGEsYil7aWYoIUtnKXtmb3IodmFyIGM9MDtjPDY0O2MrKylxZ1siQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXyIuY2hhckNvZGVBdChjKV09YztLZz0hMH1iPXtidWY6Yixwb3M6Mn07c2coYik7Yz1zZyhiKTt2YXIgZD1zZyhiKSsxLGU9QXJyYXkoYyksZj1BcnJheShjKSxoPUFycmF5KGMpO2Q9QXJyYXkoZCk7dmFyIGs9MCxsPTAsbT1iLmJ1ZixuPWIucG9zLHA9Yi5idWYuaW5kZXhPZigifCIsYi5wb3MpO2IucG9zPXArMTtmb3IocD0wO3A8YztwKyspe3ZhciByPXNnKGIpLHQ9ciYyLHY9ciYxO3I+Pj49Mjt2PyhrKz1yPj4+MV4tKHImMSkscj0ic3kiK2sudG9TdHJpbmcoMzYpKToodj1uLG4rPXIscj1tLnN1YnN0cmluZyh2LG4pKTtlW3BdPXI7dCYmKGRbbCsrXT1yKX1kW2xdPSIiO2IucG9zKys7bD1jJi0yO2s9YyYxO2ZvcihtPTA7bTxsO20rPTIpbj1yZyhiKSxoW21dPW4mNyxoW20rMV09Cm4+Pj4zJjc7ayYmKGs9cmcoYiksaFtsXT1rJjcpO2IucG9zKys7Zm9yKGw9MDtsPGM7bCsrKWhbbF09PT03JiYoaFtsXT1zZyhiKSk7Yi5wb3MrKztsPTA7Zm9yKGs9MDtrPGM7aysrKXttPWhba107bj1tPT09MD9MZzpBcnJheShtKTtmW2tdPW47cD1sO2Zvcih0PTA7dDxtO3QrKylwLT1zZyhiKSxuW3RdPWRbcF07ZFtsXT09PWVba10mJmwrK312YXIge2lkczp6LGRlcGVuZGVuY2llczpFfT17aWRzOmUsZGVwZW5kZW5jaWVzOmZ9O2ZvcihiPTA7Yjx6Lmxlbmd0aDtiKyspTmcoYSx6W2JdLEVbYl0pO2EuaGE9en07Umc9ZnVuY3Rpb24oYSl7dmFyIGI9YS5NYSxjPWEuaXNBY3RpdmUoKTtjIT1iJiYoUGcoYSxjP1FnLk1zOlFnLklETEUpLGEuTWE9Yyk7Yj1hLkZxKCk7YiE9YS5RYSYmKFBnKGEsYj9RZy5odTpRZy5pdSksYS5RYT1iKX07Tmc9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuRC5nZXQoYik7ZD9kLmo9YzphLkQuc2V0KGIsbmV3IHZhLk9nKGMsYikpfTsKVGc9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW5ldyBTZXQoYik7Yj1bXTt2YXIgZT17fTtmb3IobGV0IGYgb2YgZCl7ZD1hLkxhKGYpO2lmKCFkKXRocm93IEVycm9yKCJVYCIrZik7bGV0IGg9bmV3IHRnO2VbZl09aDtkLmlzTG9hZGVkKCk/aC5jYWxsYmFjayhudWxsKTooU2coYSxmLGQsISFjLGgpLGEudWgoZil8fGIucHVzaChmKSl9Yi5sZW5ndGg+MCYmKGEuQi5zaXplPT09MD9hLnNqKGIpOihhLnYucHVzaChiKSxSZyhhKSkpO3JldHVybiBlfTtTZz1mdW5jdGlvbihhLGIsYyxkLGUpe2dlKGMsZS5jYWxsYmFjayxlKTtoZShjLGZ1bmN0aW9uKGYpe2Y9bmV3IEpnKGIsZik7eGcoZSk7dmcoZSwhMSxmKX0pO2EudWgoYik/ZCYmKGEuSS5hZGQoYiksUmcoYSkpOmQmJmEuSS5hZGQoYil9OwpVZz1mdW5jdGlvbihhLGIpe2lmKCFhLm8uaGFzKGIpJiYoYS5vLmFkZChiKSwhYS5qLlUuaGFzKGIpKSl7dmFyIGM9YS5qLkxhKGIpO2lmKGMmJiFjLmlzTG9hZGVkKCkpe2M9Yy5qO2ZvcihsZXQgZD0wO2Q8Yy5sZW5ndGg7ZCsrKVVnKGEsY1tkXSk7YS5yZXN1bHQucHVzaChiKX19fTtZZz1mdW5jdGlvbihhLGIpe2I9Yi5maWx0ZXIoZT0+YS5ELmdldChlKS5pc0xvYWRlZCgpPyhfLnUuc2V0VGltZW91dCgoKT0+RXJyb3IoIlhgIitlKSwwKSwhMSk6ITApO2lmKFZnKXt2YXIgYz1uZXcgV2coYSk7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspVWcoYyxiW2RdKTtjPWMucmVzdWx0fWVsc2V7Yz1bXTtmb3IoZD0wO2Q8Yi5sZW5ndGg7ZCsrKWM9Yy5jb25jYXQoWGcoYSxiW2RdKSk7QWIoYyl9cmV0dXJuIWEub2EmJmMubGVuZ3RoPjE/KGI9Yy5zaGlmdCgpLGEudj1jLm1hcChmdW5jdGlvbihlKXtyZXR1cm5bZV19KS5jb25jYXQoYS52KSxbYl0pOmN9OwpYZz1mdW5jdGlvbihhLGIpe2lmKFZnKXJldHVybiBhPW5ldyBXZyhhKSxVZyhhLGIpLGEucmVzdWx0O3ZhciBjPVtdO2EuVS5oYXMoYil8fGMucHVzaChiKTtiPVtiXTtmb3IobGV0IGQ9MDtkPGIubGVuZ3RoO2QrKyl7bGV0IGU9YS5MYShiW2RdKS5qO2ZvcihsZXQgZj1lLmxlbmd0aC0xO2Y+PTA7Zi0tKXtsZXQgaD1lW2ZdO2EuTGEoaCkuaXNMb2FkZWQoKXx8YS5VLmhhcyhoKXx8KGMucHVzaChoKSxiLnB1c2goaCkpfX1jLnJldmVyc2UoKTtBYihjKTtyZXR1cm4gY307CmJoPWZ1bmN0aW9uKGEsYixjLGQsZSxmPTAsaD0hMSl7dmFyIGs9aD8wOmYrMTtmPV8ueWIoYyk7YS5LPWI7Zm9yKGxldCBsIG9mIGMpYS5VLmRlbGV0ZShsKTtpZihkPT00MDEpWmcoYSxuZXcgdmEub2IodmEub2IuVHlwZS5wbyxkKSksYS52Lmxlbmd0aD0wO2Vsc2UgaWYoZD09NDEwKSRnKGEsbmV3IHZhLm9iKHZhLm9iLlR5cGUuaG8sZCkpLGFoKGEpO2Vsc2UgaWYoaz49MylbLi4uYS5CXSwkZyhhLG5ldyB2YS5vYih2YS5vYi5UeXBlLnBrLGQsZixlKSksYWgoYSk7ZWxzZXtbLi4uYS5CXTtsZXQgbD1kPT04MDAxfHwhMTsoYz1NYXRoLnBvdyhrLDIpKjVFMyk/Xy51LnNldFRpbWVvdXQoKCk9PnthLnNqKGIsayxsKX0sYyk6YS5zaihiLGssbCl9fTskZz1mdW5jdGlvbihhLGIpe2EuSy5sZW5ndGg+MT9hLnY9YS5LLm1hcChmdW5jdGlvbihjKXtyZXR1cm5bY119KS5jb25jYXQoYS52KTpaZyhhLGIpfTsKWmc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLks7YS5CLmNsZWFyKCk7dmFyIGQ9W107Zm9yKHZhciBlPTA7ZTxhLnYubGVuZ3RoO2UrKyl7dmFyIGY9YS52W2VdLmZpbHRlcihmdW5jdGlvbihoKXt2YXIgaz1YZyh0aGlzLGgpO3JldHVybiBfLnViKGMsZnVuY3Rpb24obCl7cmV0dXJuIF8uc2IoayxsKT49MH0pfSxhKTt6YihkLGYpfWZvcihlPTA7ZTxjLmxlbmd0aDtlKyspd2IoZCxjW2VdKTtmb3IoZT0wO2U8ZC5sZW5ndGg7ZSsrKXtmb3IoZj0wO2Y8YS52Lmxlbmd0aDtmKyspXy54YihhLnZbZl0sZFtlXSk7YS5JLmRlbGV0ZShkW2VdKX1pZihlPWEuTS5nZXQoUWcuRVJST1IpKWZvcihmPTA7ZjxlLmxlbmd0aDtmKyspe2xldCBoPWVbZl07Zm9yKGxldCBrPTA7azxkLmxlbmd0aDtrKyspaChRZy5FUlJPUixkW2tdLGIpfWZvcihkPTA7ZDxjLmxlbmd0aDtkKyspaWYoZT1hLkQuZ2V0KGNbZF0pKWUub25FcnJvcihiKTthLksubGVuZ3RoPTA7UmcoYSl9OwphaD1mdW5jdGlvbihhKXtmb3IoO2Eudi5sZW5ndGg7KXtsZXQgYj1hLnYuc2hpZnQoKS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIXRoaXMuTGEoYykuaXNMb2FkZWQoKX0sYSk7aWYoYi5sZW5ndGg+MCl7YS5zaihiKTtyZXR1cm59fVJnKGEpfTtQZz1mdW5jdGlvbihhLGIpe2E9YS5NLmdldChiKTtmb3IobGV0IGM9MDthJiZjPGEubGVuZ3RoO2MrKylhW2NdKGIpfTtjaD1mdW5jdGlvbihhLGIsYyxkLGUpe2ZvcihsZXQgZiBvZiBiKWI9YS5MYShmKSwhZS5oYXMoZikmJmQoYikmJihlLmFkZChmKSxjaChhLGIuanx8W10sYyxkLGUpLGMoYikpfTsKZmg9ZnVuY3Rpb24oKXt2YXIgYT17RXU6IkJBVENIIn0sYj1hLmNzc1Jvd0tleXx8IiIsYz1hLktlfHwiIjshYS54SSYmIWImJndpbmRvdyYmd2luZG93Ll9GX2Nzc1Jvd0tleSYmKGI9d2luZG93Ll9GX2Nzc1Jvd0tleSwhYyYmd2luZG93Ll9GX2NvbWJpbmVkU2lnbmF0dXJlJiYoYz13aW5kb3cuX0ZfY29tYmluZWRTaWduYXR1cmUpKTtpZighYS5jc3NSb3dLZXkmJmImJnR5cGVvZiB3aW5kb3cuX0ZfaW5zdGFsbENzcyE9PSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IoIloiKTt2YXIgZD1hLk5KfHxfLmRoLGU9RWUoImJhc2UtanMiKTtiPW5ldyBkKEdiKEZlKCIiLGUpKSxiLGMsITAsITEpO2M9YS5wTHx8ZSYmZS5oYXNBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIik7ZT1hLmxJfHxlJiZlLmdldEF0dHJpYnV0ZSgiY3Jvc3NvcmlnaW4iKTtjJiYoYi5maT1jKTtlJiYoYi5XZz1lKTthLmRpJiYoYi5kaT1hLmRpKTthLmZldGNoUHJpb3JpdHkmJihiLmZldGNoUHJpb3JpdHk9YS5mZXRjaFByaW9yaXR5KTsKdmFyIGY9Xy5WZCgpO2YuWT1iO2YuUnIoITApO18uZWg9YS5FdT09PSJCQVRDSCI/cmY6aD0+UHJvbWlzZS5yZXNvbHZlKGYubG9hZChoKSl9O2loPWZ1bmN0aW9uKGEsYil7Yj1iLmZpbHRlcihjPT4hYS51aChjKSYmIWEuTGEoYykuaXNMb2FkZWQoKSk7Yi5sZW5ndGg+MCYmKGdoKGEsLi4uYiksYS5LLnB1c2goYiksaGgoYSkpfTtqaD1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgXy5CZigoYyxkKT0+e3ZhciBlPWEuTGEoYik7ZS5pc0xvYWRlZCgpP2MobnVsbCk6KGdlKGUsKCk9PntjKG51bGwpfSksaGUoZSxmPT57dmFyIGg9YEVycm9yIGxvYWRpbmcgJHtifTogJHtmfWA7ZiBpbnN0YW5jZW9mIHZhLm9iJiZmLnVybCYmKGg9YCR7aH0sIHJlcXVlc3RlZCB1cmw6ICR7Zi51cmwudG9TdHJpbmcoKX1gKTtkKEVycm9yKGgpKX0pKX0pfTsKa2g9ZnVuY3Rpb24oYSxiLGMsZD0oKT0+ITAsZT17fSl7Zm9yKGxldCBmIG9mIGIpYj1hLkxhKGYpLCFlW2ZdJiZkKGIpJiYoZVtmXT0hMCxraChhLGIuanx8W10sYyxkLGUpLGMoYikpfTtsaD1mdW5jdGlvbihhLC4uLmIpe2IuZm9yRWFjaChjPT57ZGVsZXRlIGEuRFtjXX0pfTtnaD1mdW5jdGlvbihhLC4uLmIpe2IuZm9yRWFjaChjPT57YS5EW2NdPSEwfSl9OwpoaD1mdW5jdGlvbihhKXtmb3IoO2EuQjxJbmZpbml0eSYmYS5LLmxlbmd0aD4wOyl7bGV0IGI9YS5LLnNoaWZ0KCkuZmlsdGVyKGM9PiFhLkxhKGMpLmlzTG9hZGVkKCkpO2lmKGIubGVuZ3RoPjApe2EuQisrO2xldCBjPSgpPT57YS5CLS07aGgoYSk7Yz0oKT0+e319O18uSWYoYi5tYXAoZj0+amgoYSxmKSkpLnRoZW4oKCk9PntjKCl9KTtsZXQgZD0wLGU9KCk9PntpZigoYS5qIGluc3RhbmNlb2YgTWFwP2Euai5zaXplPjA6T2JqZWN0LmtleXMoYS5qKS5sZW5ndGg+MCkmJiFhLlkuRWIpdGhyb3cgRXJyb3IoIlciKTtmZyhhLlksYixhLnYse1lkOmEuaixvbkVycm9yOihmLGgpPT57dmFyIGs9bWhbZCsrXTtrIT09dm9pZCAwP3NldFRpbWVvdXQoKCk9PntlKCl9LGspOihsaChhLC4uLmIpLGMoKSxiLmZvckVhY2gobD0+e2w9YS5MYShsKTtpZighbC5pc0xvYWRlZCgpKWwub25FcnJvcihuZXcgdmEub2IodmEub2IuVHlwZS5wayxmLGIsaCkpfSkpfX0pfTtlKCl9fX07Cm5oPWZ1bmN0aW9uKGEpe2Euaj09PS0xJiYoYS5qPWEuZGF0YS5yZWR1Y2UoKGIsYyxkKT0+YisoYz8yKipkOjApLDApKTtyZXR1cm4gYS5qfTtfLm9oPWZ1bmN0aW9uKCl7fTtfLnNoPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBwaHx8YSBpbnN0YW5jZW9mIHFofHxhIGluc3RhbmNlb2YgcmgpcmV0dXJuIGE7aWYodHlwZW9mIGEubmV4dD09ImZ1bmN0aW9uIilyZXR1cm4gbmV3IHBoKCgpPT5hKTtpZih0eXBlb2YgYVtTeW1ib2wuaXRlcmF0b3JdPT0iZnVuY3Rpb24iKXJldHVybiBuZXcgcGgoKCk9PmFbU3ltYm9sLml0ZXJhdG9yXSgpKTtpZih0eXBlb2YgYS5iZD09ImZ1bmN0aW9uIilyZXR1cm4gbmV3IHBoKCgpPT5hLmJkKCkpO3Rocm93IEVycm9yKCIkIik7fTtfLnRoPWZ1bmN0aW9uKGEpe18uYWUuY2FsbCh0aGlzKTt0aGlzLkQ9MTt0aGlzLnY9W107dGhpcy5CPTA7dGhpcy5qPVtdO3RoaXMubz17fTt0aGlzLkk9ISFhfTsKdWg9ZnVuY3Rpb24oYSxiLGMpe0dmKGZ1bmN0aW9uKCl7YS5hcHBseShiLGMpfSl9O3ZoPWZ1bmN0aW9uKGEpe3RoaXMuaj1hfTt3aD1mdW5jdGlvbihhKXt0aGlzLmo9YX07eGg9ZnVuY3Rpb24oYSl7dGhpcy5kYXRhPWF9O3loPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09dm9pZCAwfHxhIGluc3RhbmNlb2YgeGg/YTpuZXcgeGgoYSl9O18uemg9ZnVuY3Rpb24oYSl7dGhpcy5qPWF9O0FoPWZ1bmN0aW9uKCl7fTtCaD1mdW5jdGlvbigpe307Q2g9ZnVuY3Rpb24oYSl7dGhpcy5qPWE7dGhpcy5vPW51bGx9O0RoPWZ1bmN0aW9uKGEpe2lmKGEuaj09bnVsbCl0aHJvdyBFcnJvcigiYWEiKTthLmlzQXZhaWxhYmxlKCl8fF8uJGIoRXJyb3IoImFhIikpfTtFaD1mdW5jdGlvbigpe3ZhciBhPW51bGw7dHJ5e2E9Xy51LmxvY2FsU3RvcmFnZXx8bnVsbH1jYXRjaChiKXt9Q2guY2FsbCh0aGlzLGEpfTtGaD1mdW5jdGlvbihhLGIpe3RoaXMubz1hO3RoaXMuaj1iKyI6OiJ9OwpfLkdoPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBFaDtyZXR1cm4gYi5pc0F2YWlsYWJsZSgpP2E/bmV3IEZoKGIsYSk6YjpudWxsfTsKSWg9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPWEubGVuZ3RoLGU9MDtmb3IoYj0wO2I8ZDtiKyspe3ZhciBmPWEuY2hhckNvZGVBdChiKTtpZigoZiY2NDUxMik9PT01NTI5NiYmYisxPGQpe3ZhciBoPWEuY2hhckNvZGVBdChiKzEpOyhoJjY0NTEyKT09PTU2MzIwJiYoZj02NTUzNisoZi01NTI5Njw8MTApKyhoLTU2MzIwKSxiKyspfWUrPWY8MTI4PzE6ZjwyMDQ4PzI6Zjw2NTUzNj8zOjR9dmFyIGs9bmV3IEhoLnRmKGUpO2ZvcihiPWM9MDtjPGU7YisrKWY9YS5jaGFyQ29kZUF0KGIpLChmJjY0NTEyKT09PTU1Mjk2JiZiKzE8ZCYmKGg9YS5jaGFyQ29kZUF0KGIrMSksKGgmNjQ1MTIpPT09NTYzMjAmJihmPTY1NTM2KyhmLTU1Mjk2PDwxMCkrKGgtNTYzMjApLGIrKykpLGY8MTI4P2tbYysrXT1mOihmPDIwNDg/a1tjKytdPTE5MnxmPj4+NjooZjw2NTUzNj9rW2MrK109MjI0fGY+Pj4xMjooa1tjKytdPTI0MHxmPj4+MTgsa1tjKytdPTEyOHxmPj4+MTImNjMpLGtbYysrXT0xMjh8Zj4+Pgo2JjYzKSxrW2MrK109MTI4fGYmNjMpO3JldHVybiBrfTtKaD1mdW5jdGlvbihhKXtmb3IodmFyIGI9YS5sZW5ndGg7LS1iPj0wOylhW2JdPTB9O0toPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5Zcj1hO3RoaXMuVXY9Yjt0aGlzLlR2PWM7dGhpcy54dj1kO3RoaXMuRnk9ZTt0aGlzLmVxPWEmJmEubGVuZ3RofTtMaD1mdW5jdGlvbihhLGIpe3RoaXMuRXA9YTt0aGlzLmxnPTA7dGhpcy56ZT1ifTtNaD1mdW5jdGlvbihhLGIpe2EuT2FbYS5wZW5kaW5nKytdPWImMjU1O2EuT2FbYS5wZW5kaW5nKytdPWI+Pj44JjI1NX07Tmg9ZnVuY3Rpb24oYSxiLGMpe2EuaGI+MTYtYz8oYS5GYnw9Yjw8YS5oYiY2NTUzNSxNaChhLGEuRmIpLGEuRmI9Yj4+MTYtYS5oYixhLmhiKz1jLTE2KTooYS5GYnw9Yjw8YS5oYiY2NTUzNSxhLmhiKz1jKX07T2g9ZnVuY3Rpb24oYSxiLGMpe05oKGEsY1tiKjJdLGNbYioyKzFdKX07ClBoPWZ1bmN0aW9uKGEsYil7dmFyIGM9MDtkbyBjfD1hJjEsYT4+Pj0xLGM8PD0xO3doaWxlKC0tYj4wKTtyZXR1cm4gYz4+PjF9O1FoPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1BcnJheSgxNiksZT0wLGY7Zm9yKGY9MTtmPD0xNTtmKyspZFtmXT1lPWUrY1tmLTFdPDwxO2ZvcihjPTA7Yzw9YjtjKyspZT1hW2MqMisxXSxlIT09MCYmKGFbYyoyXT1QaChkW2VdKyssZSkpfTtSaD1mdW5jdGlvbihhKXt2YXIgYjtmb3IoYj0wO2I8Mjg2O2IrKylhLlFiW2IqMl09MDtmb3IoYj0wO2I8MzA7YisrKWEuUGVbYioyXT0wO2ZvcihiPTA7YjwxOTtiKyspYS5xYltiKjJdPTA7YS5RYls1MTJdPTE7YS5DZD1hLkhnPTA7YS5rYz1hLm1hdGNoZXM9MH07U2g9ZnVuY3Rpb24oYSl7YS5oYj44P01oKGEsYS5GYik6YS5oYj4wJiYoYS5PYVthLnBlbmRpbmcrK109YS5GYik7YS5GYj0wO2EuaGI9MH07ClRoPWZ1bmN0aW9uKGEsYixjKXtTaChhKTtNaChhLGMpO01oKGEsfmMpO0hoLndmKGEuT2EsYS53aW5kb3csYixjLGEucGVuZGluZyk7YS5wZW5kaW5nKz1jfTtVaD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iKjIsZj1jKjI7cmV0dXJuIGFbZV08YVtmXXx8YVtlXT09PWFbZl0mJmRbYl08PWRbY119O1ZoPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9YS5oZWFwW2NdLGU9Yzw8MTtlPD1hLnhkOyl7ZTxhLnhkJiZVaChiLGEuaGVhcFtlKzFdLGEuaGVhcFtlXSxhLmRlcHRoKSYmZSsrO2lmKFVoKGIsZCxhLmhlYXBbZV0sYS5kZXB0aCkpYnJlYWs7YS5oZWFwW2NdPWEuaGVhcFtlXTtjPWU7ZTw8PTF9YS5oZWFwW2NdPWR9OwpjaT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9MDtpZihhLmtjIT09MCl7ZG97dmFyIGU9YS5PYVthLllnK2QqMl08PDh8YS5PYVthLllnK2QqMisxXTt2YXIgZj1hLk9hW2Eua20rZF07ZCsrO2lmKGU9PT0wKU9oKGEsZixiKTtlbHNle3ZhciBoPVdoW2ZdO09oKGEsaCsyNTYrMSxiKTt2YXIgaz1YaFtoXTtrIT09MCYmKGYtPVloW2hdLE5oKGEsZixrKSk7ZS0tO2g9ZTwyNTY/WmhbZV06WmhbMjU2KyhlPj4+NyldO09oKGEsaCxjKTtrPSRoW2hdO2shPT0wJiYoZS09YmlbaF0sTmgoYSxlLGspKX19d2hpbGUoZDxhLmtjKX1PaChhLDI1NixiKX07CmRpPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5FcCxkPWIuemUuWXIsZT1iLnplLmVxLGY9Yi56ZS54dixoLGs9LTE7YS54ZD0wO2EuWGY9NTczO2ZvcihoPTA7aDxmO2grKyljW2gqMl0hPT0wPyhhLmhlYXBbKythLnhkXT1rPWgsYS5kZXB0aFtoXT0wKTpjW2gqMisxXT0wO2Zvcig7YS54ZDwyOyl7dmFyIGw9YS5oZWFwWysrYS54ZF09azwyPysrazowO2NbbCoyXT0xO2EuZGVwdGhbbF09MDthLkNkLS07ZSYmKGEuSGctPWRbbCoyKzFdKX1iLmxnPWs7Zm9yKGg9YS54ZD4+MTtoPj0xO2gtLSlWaChhLGMsaCk7bD1mO2RvIGg9YS5oZWFwWzFdLGEuaGVhcFsxXT1hLmhlYXBbYS54ZC0tXSxWaChhLGMsMSksZD1hLmhlYXBbMV0sYS5oZWFwWy0tYS5YZl09aCxhLmhlYXBbLS1hLlhmXT1kLGNbbCoyXT1jW2gqMl0rY1tkKjJdLGEuZGVwdGhbbF09KGEuZGVwdGhbaF0+PWEuZGVwdGhbZF0/YS5kZXB0aFtoXTphLmRlcHRoW2RdKSsxLGNbaCoyKzFdPWNbZCoyKzFdPWwsYS5oZWFwWzFdPWwrKywKVmgoYSxjLDEpO3doaWxlKGEueGQ+PTIpO2EuaGVhcFstLWEuWGZdPWEuaGVhcFsxXTtoPWIuRXA7bD1iLmxnO2Q9Yi56ZS5ZcjtlPWIuemUuZXE7Zj1iLnplLlV2O3ZhciBtPWIuemUuVHYsbj1iLnplLkZ5LHAscj0wO2ZvcihwPTA7cDw9MTU7cCsrKWEua2RbcF09MDtoW2EuaGVhcFthLlhmXSoyKzFdPTA7Zm9yKGI9YS5YZisxO2I8NTczO2IrKyl7dmFyIHQ9YS5oZWFwW2JdO3A9aFtoW3QqMisxXSoyKzFdKzE7cD5uJiYocD1uLHIrKyk7aFt0KjIrMV09cDtpZighKHQ+bCkpe2Eua2RbcF0rKzt2YXIgdj0wO3Q+PW0mJih2PWZbdC1tXSk7dmFyIHo9aFt0KjJdO2EuQ2QrPXoqKHArdik7ZSYmKGEuSGcrPXoqKGRbdCoyKzFdK3YpKX19aWYociE9PTApe2Rve2ZvcihwPW4tMTthLmtkW3BdPT09MDspcC0tO2Eua2RbcF0tLTthLmtkW3ArMV0rPTI7YS5rZFtuXS0tO3ItPTJ9d2hpbGUocj4wKTtmb3IocD1uO3AhPT0wO3AtLSlmb3IodD1hLmtkW3BdO3QhPT0wOylkPWEuaGVhcFstLWJdLApkPmx8fChoW2QqMisxXSE9PXAmJihhLkNkKz0ocC1oW2QqMisxXSkqaFtkKjJdLGhbZCoyKzFdPXApLHQtLSl9UWgoYyxrLGEua2QpfTtlaT1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT0tMSxmPWJbMV0saD0wLGs9NyxsPTQ7Zj09PTAmJihrPTEzOCxsPTMpO2JbKGMrMSkqMisxXT02NTUzNTtmb3IoZD0wO2Q8PWM7ZCsrKXt2YXIgbT1mO2Y9YlsoZCsxKSoyKzFdOysraDxrJiZtPT09Znx8KGg8bD9hLnFiW20qMl0rPWg6bSE9PTA/KG0hPT1lJiZhLnFiW20qMl0rKyxhLnFiWzMyXSsrKTpoPD0xMD9hLnFiWzM0XSsrOmEucWJbMzZdKyssaD0wLGU9bSxmPT09MD8oaz0xMzgsbD0zKTptPT09Zj8oaz02LGw9Myk6KGs9NyxsPTQpKX19OwpmaT1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT0tMSxmPWJbMV0saD0wLGs9NyxsPTQ7Zj09PTAmJihrPTEzOCxsPTMpO2ZvcihkPTA7ZDw9YztkKyspe3ZhciBtPWY7Zj1iWyhkKzEpKjIrMV07aWYoISgrK2g8ayYmbT09PWYpKXtpZihoPGwpe2RvIE9oKGEsbSxhLnFiKTt3aGlsZSgtLWghPT0wKX1lbHNlIG0hPT0wPyhtIT09ZSYmKE9oKGEsbSxhLnFiKSxoLS0pLE9oKGEsMTYsYS5xYiksTmgoYSxoLTMsMikpOmg8PTEwPyhPaChhLDE3LGEucWIpLE5oKGEsaC0zLDMpKTooT2goYSwxOCxhLnFiKSxOaChhLGgtMTEsNykpO2g9MDtlPW07Zj09PTA/KGs9MTM4LGw9Myk6bT09PWY/KGs9NixsPTMpOihrPTcsbD00KX19fTsKZ2k9ZnVuY3Rpb24oYSl7dmFyIGI9NDA5MzYyNDQ0NyxjO2ZvcihjPTA7Yzw9MzE7YysrLGI+Pj49MSlpZihiJjEmJmEuUWJbYyoyXSE9PTApcmV0dXJuIDA7aWYoYS5RYlsxOF0hPT0wfHxhLlFiWzIwXSE9PTB8fGEuUWJbMjZdIT09MClyZXR1cm4gMTtmb3IoYz0zMjtjPDI1NjtjKyspaWYoYS5RYltjKjJdIT09MClyZXR1cm4gMTtyZXR1cm4gMH07aGk9ZnVuY3Rpb24oYSxiLGMpe2EuT2FbYS5ZZythLmtjKjJdPWI+Pj44JjI1NTthLk9hW2EuWWcrYS5rYyoyKzFdPWImMjU1O2EuT2FbYS5rbSthLmtjXT1jJjI1NTthLmtjKys7Yj09PTA/YS5RYltjKjJdKys6KGEubWF0Y2hlcysrLGItLSxhLlFiWyhXaFtjXSsyNTYrMSkqMl0rKyxhLlBlWyhiPDI1Nj9aaFtiXTpaaFsyNTYrKGI+Pj43KV0pKjJdKyspO3JldHVybiBhLmtjPT09YS5BaC0xfTtqaT1mdW5jdGlvbihhLGIpe2EubXNnPWlpW2JdO3JldHVybiBifTsKa2k9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWEubGVuZ3RoOy0tYj49MDspYVtiXT0wfTtsaT1mdW5jdGlvbihhKXt2YXIgYj1hLnN0YXRlLGM9Yi5wZW5kaW5nO2M+YS56YSYmKGM9YS56YSk7YyE9PTAmJihIaC53ZihhLm91dHB1dCxiLk9hLGIuSmgsYyxhLnFnKSxhLnFnKz1jLGIuSmgrPWMsYS5Fbis9YyxhLnphLT1jLGIucGVuZGluZy09YyxiLnBlbmRpbmc9PT0wJiYoYi5KaD0wKSl9OwpwaT1mdW5jdGlvbihhLGIpe3ZhciBjPWEuVWI+PTA/YS5VYjotMSxkPWEuVi1hLlViLGU9MDtpZihhLmxldmVsPjApe2Eud2EuaWw9PT0yJiYoYS53YS5pbD1naShhKSk7ZGkoYSxhLnBqKTtkaShhLGEuSWkpO2VpKGEsYS5RYixhLnBqLmxnKTtlaShhLGEuUGUsYS5JaS5sZyk7ZGkoYSxhLlRvKTtmb3IoZT0xODtlPj0zJiZhLnFiW21pW2VdKjIrMV09PT0wO2UtLSk7YS5DZCs9MyooZSsxKSs1KzUrNDt2YXIgZj1hLkNkKzMrNz4+PjM7dmFyIGg9YS5IZyszKzc+Pj4zO2g8PWYmJihmPWgpfWVsc2UgZj1oPWQrNTtpZihkKzQ8PWYmJmMhPT0tMSlOaChhLGI/MTowLDMpLFRoKGEsYyxkKTtlbHNlIGlmKGEuc3RyYXRlZ3k9PT00fHxoPT09ZilOaChhLDIrKGI/MTowKSwzKSxjaShhLG5pLG9pKTtlbHNle05oKGEsNCsoYj8xOjApLDMpO2M9YS5wai5sZysxO2Q9YS5JaS5sZysxO2UrPTE7TmgoYSxjLTI1Nyw1KTtOaChhLGQtMSw1KTtOaChhLGUtNCw0KTtmb3IoZj0wO2Y8ZTtmKyspTmgoYSwKYS5xYlttaVtmXSoyKzFdLDMpO2ZpKGEsYS5RYixjLTEpO2ZpKGEsYS5QZSxkLTEpO2NpKGEsYS5RYixhLlBlKX1SaChhKTtiJiZTaChhKTthLlViPWEuVjtsaShhLndhKX07cWk9ZnVuY3Rpb24oYSxiKXthLk9hW2EucGVuZGluZysrXT1ifTtyaT1mdW5jdGlvbihhLGIpe2EuT2FbYS5wZW5kaW5nKytdPWI+Pj44JjI1NTthLk9hW2EucGVuZGluZysrXT1iJjI1NX07CnNpPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5OcSxkPWEuVixlPWEuWWIsZj1hLlNxLGg9YS5WPmEuQmItMjYyP2EuVi0oYS5CYi0yNjIpOjAsaz1hLndpbmRvdyxsPWEuQmUsbT1hLlVhLG49YS5WKzI1OCxwPWtbZCtlLTFdLHI9a1tkK2VdO2EuWWI+PWEuWXAmJihjPj49Mik7Zj5hLmRhJiYoZj1hLmRhKTtkb3t2YXIgdD1iO2lmKGtbdCtlXT09PXImJmtbdCtlLTFdPT09cCYma1t0XT09PWtbZF0mJmtbKyt0XT09PWtbZCsxXSl7ZCs9Mjtmb3IodCsrO2tbKytkXT09PWtbKyt0XSYma1srK2RdPT09a1srK3RdJiZrWysrZF09PT1rWysrdF0mJmtbKytkXT09PWtbKyt0XSYma1srK2RdPT09a1srK3RdJiZrWysrZF09PT1rWysrdF0mJmtbKytkXT09PWtbKyt0XSYma1srK2RdPT09a1srK3RdJiZkPG47KTt0PTI1OC0obi1kKTtkPW4tMjU4O2lmKHQ+ZSl7YS5rZz1iO2U9dDtpZih0Pj1mKWJyZWFrO3A9a1tkK2UtMV07cj1rW2QrZV19fX13aGlsZSgoYj1tW2ImbF0pPmgmJi0tYyE9PTApOwpyZXR1cm4gZTw9YS5kYT9lOmEuZGF9Owp2aT1mdW5jdGlvbihhKXt2YXIgYj1hLkJiLGM7ZG97dmFyIGQ9YS5Lcy1hLmRhLWEuVjtpZihhLlY+PWIrKGItMjYyKSl7SGgud2YoYS53aW5kb3csYS53aW5kb3csYixiLDApO2Eua2ctPWI7YS5WLT1iO2EuVWItPWI7dmFyIGU9Yz1hLmFqO2Rve3ZhciBmPWEuaGVhZFstLWVdO2EuaGVhZFtlXT1mPj1iP2YtYjowfXdoaWxlKC0tYyk7ZT1jPWI7ZG8gZj1hLlVhWy0tZV0sYS5VYVtlXT1mPj1iP2YtYjowO3doaWxlKC0tYyk7ZCs9Yn1pZihhLndhLkRiPT09MClicmVhaztlPWEud2E7Yz1hLndpbmRvdztmPWEuVithLmRhO3ZhciBoPWUuRGI7aD5kJiYoaD1kKTtoPT09MD9jPTA6KGUuRGItPWgsSGgud2YoYyxlLmlucHV0LGUuZmYsaCxmKSxlLnN0YXRlLndyYXA9PT0xP2Uuc2E9dGkoZS5zYSxjLGgsZik6ZS5zdGF0ZS53cmFwPT09MiYmKGUuc2E9dWkoZS5zYSxjLGgsZikpLGUuZmYrPWgsZS5xZis9aCxjPWgpO2EuZGErPWM7aWYoYS5kYSthLnJiPj0zKWZvcihkPWEuVi1hLnJiLGEueGE9CmEud2luZG93W2RdLGEueGE9KGEueGE8PGEud2ReYS53aW5kb3dbZCsxXSkmYS52ZDthLnJiJiYhKGEueGE9KGEueGE8PGEud2ReYS53aW5kb3dbZCszLTFdKSZhLnZkLGEuVWFbZCZhLkJlXT1hLmhlYWRbYS54YV0sYS5oZWFkW2EueGFdPWQsZCsrLGEucmItLSxhLmRhK2EucmI8Myk7KTt9d2hpbGUoYS5kYTwyNjImJmEud2EuRGIhPT0wKX07CndpPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjOzspe2lmKGEuZGE8MjYyKXt2aShhKTtpZihhLmRhPDI2MiYmYj09PTApcmV0dXJuIDE7aWYoYS5kYT09PTApYnJlYWt9Yz0wO2EuZGE+PTMmJihhLnhhPShhLnhhPDxhLndkXmEud2luZG93W2EuViszLTFdKSZhLnZkLGM9YS5VYVthLlYmYS5CZV09YS5oZWFkW2EueGFdLGEuaGVhZFthLnhhXT1hLlYpO2MhPT0wJiZhLlYtYzw9YS5CYi0yNjImJihhLkJhPXNpKGEsYykpO2lmKGEuQmE+PTMpaWYoYz1oaShhLGEuVi1hLmtnLGEuQmEtMyksYS5kYS09YS5CYSxhLkJhPD1hLm9tJiZhLmRhPj0zKXthLkJhLS07ZG8gYS5WKyssYS54YT0oYS54YTw8YS53ZF5hLndpbmRvd1thLlYrMy0xXSkmYS52ZCxhLlVhW2EuViZhLkJlXT1hLmhlYWRbYS54YV0sYS5oZWFkW2EueGFdPWEuVjt3aGlsZSgtLWEuQmEhPT0wKTthLlYrK31lbHNlIGEuVis9YS5CYSxhLkJhPTAsYS54YT1hLndpbmRvd1thLlZdLGEueGE9KGEueGE8PGEud2ReYS53aW5kb3dbYS5WKwoxXSkmYS52ZDtlbHNlIGM9aGkoYSwwLGEud2luZG93W2EuVl0pLGEuZGEtLSxhLlYrKztpZihjJiYocGkoYSwhMSksYS53YS56YT09PTApKXJldHVybiAxfWEucmI9YS5WPDI/YS5WOjI7cmV0dXJuIGI9PT00PyhwaShhLCEwKSxhLndhLnphPT09MD8zOjQpOmEua2MmJihwaShhLCExKSxhLndhLnphPT09MCk/MToyfTsKeGk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZDs7KXtpZihhLmRhPDI2Mil7dmkoYSk7aWYoYS5kYTwyNjImJmI9PT0wKXJldHVybiAxO2lmKGEuZGE9PT0wKWJyZWFrfWM9MDthLmRhPj0zJiYoYS54YT0oYS54YTw8YS53ZF5hLndpbmRvd1thLlYrMy0xXSkmYS52ZCxjPWEuVWFbYS5WJmEuQmVdPWEuaGVhZFthLnhhXSxhLmhlYWRbYS54YV09YS5WKTthLlliPWEuQmE7YS5Bcj1hLmtnO2EuQmE9MjtjIT09MCYmYS5ZYjxhLm9tJiZhLlYtYzw9YS5CYi0yNjImJihhLkJhPXNpKGEsYyksYS5CYTw9NSYmKGEuc3RyYXRlZ3k9PT0xfHxhLkJhPT09MyYmYS5WLWEua2c+NDA5NikmJihhLkJhPTIpKTtpZihhLlliPj0zJiZhLkJhPD1hLlliKXtkPWEuVithLmRhLTM7Yz1oaShhLGEuVi0xLWEuQXIsYS5ZYi0zKTthLmRhLT1hLlliLTE7YS5ZYi09MjtkbysrYS5WPD1kJiYoYS54YT0oYS54YTw8YS53ZF5hLndpbmRvd1thLlYrMy0xXSkmYS52ZCxhLlVhW2EuViZhLkJlXT1hLmhlYWRbYS54YV0sCmEuaGVhZFthLnhhXT1hLlYpO3doaWxlKC0tYS5ZYiE9PTApO2EuY2Y9MDthLkJhPTI7YS5WKys7aWYoYyYmKHBpKGEsITEpLGEud2EuemE9PT0wKSlyZXR1cm4gMX1lbHNlIGlmKGEuY2Ype2lmKChjPWhpKGEsMCxhLndpbmRvd1thLlYtMV0pKSYmcGkoYSwhMSksYS5WKyssYS5kYS0tLGEud2EuemE9PT0wKXJldHVybiAxfWVsc2UgYS5jZj0xLGEuVisrLGEuZGEtLX1hLmNmJiYoaGkoYSwwLGEud2luZG93W2EuVi0xXSksYS5jZj0wKTthLnJiPWEuVjwyP2EuVjoyO3JldHVybiBiPT09ND8ocGkoYSwhMCksYS53YS56YT09PTA/Mzo0KTphLmtjJiYocGkoYSwhMSksYS53YS56YT09PTApPzE6Mn07CnlpPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjLGQsZSxmPWEud2luZG93Ozspe2lmKGEuZGE8PTI1OCl7dmkoYSk7aWYoYS5kYTw9MjU4JiZiPT09MClyZXR1cm4gMTtpZihhLmRhPT09MClicmVha31hLkJhPTA7aWYoYS5kYT49MyYmYS5WPjAmJihkPWEuVi0xLGM9ZltkXSxjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZjPT09ZlsrK2RdKSl7Zm9yKGU9YS5WKzI1ODtjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZjPT09ZlsrK2RdJiZkPGU7KTthLkJhPTI1OC0oZS1kKTthLkJhPmEuZGEmJihhLkJhPWEuZGEpfWEuQmE+PTM/KGM9aGkoYSwxLGEuQmEtMyksYS5kYS09YS5CYSxhLlYrPWEuQmEsYS5CYT0wKTooYz1oaShhLDAsYS53aW5kb3dbYS5WXSksYS5kYS0tLGEuVisrKTtpZihjJiYocGkoYSwhMSksYS53YS56YT09PTApKXJldHVybiAxfWEucmI9MDtyZXR1cm4gYj09PTQ/KHBpKGEsCiEwKSxhLndhLnphPT09MD8zOjQpOmEua2MmJihwaShhLCExKSxhLndhLnphPT09MCk/MToyfTt6aT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYzs7KXtpZihhLmRhPT09MCYmKHZpKGEpLGEuZGE9PT0wKSl7aWYoYj09PTApcmV0dXJuIDE7YnJlYWt9YS5CYT0wO2M9aGkoYSwwLGEud2luZG93W2EuVl0pO2EuZGEtLTthLlYrKztpZihjJiYocGkoYSwhMSksYS53YS56YT09PTApKXJldHVybiAxfWEucmI9MDtyZXR1cm4gYj09PTQ/KHBpKGEsITApLGEud2EuemE9PT0wPzM6NCk6YS5rYyYmKHBpKGEsITEpLGEud2EuemE9PT0wKT8xOjJ9O0FpPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy50dz1hO3RoaXMuRXk9Yjt0aGlzLld5PWM7dGhpcy5EeT1kO3RoaXMua3c9ZX07CkJpPWZ1bmN0aW9uKCl7dGhpcy53YT1udWxsO3RoaXMuc3RhdHVzPTA7dGhpcy5PYT1udWxsO3RoaXMud3JhcD10aGlzLnBlbmRpbmc9dGhpcy5KaD10aGlzLm5jPTA7dGhpcy5xYT1udWxsO3RoaXMuemM9MDt0aGlzLm1ldGhvZD04O3RoaXMuaWc9LTE7dGhpcy5CZT10aGlzLk5uPXRoaXMuQmI9MDt0aGlzLndpbmRvdz1udWxsO3RoaXMuS3M9MDt0aGlzLmhlYWQ9dGhpcy5VYT1udWxsO3RoaXMuU3E9dGhpcy5ZcD10aGlzLnN0cmF0ZWd5PXRoaXMubGV2ZWw9dGhpcy5vbT10aGlzLk5xPXRoaXMuWWI9dGhpcy5kYT10aGlzLmtnPXRoaXMuVj10aGlzLmNmPXRoaXMuQXI9dGhpcy5CYT10aGlzLlViPXRoaXMud2Q9dGhpcy52ZD10aGlzLkxsPXRoaXMuYWo9dGhpcy54YT0wO3RoaXMuUWI9bmV3IEhoLlljKDExNDYpO3RoaXMuUGU9bmV3IEhoLlljKDEyMik7dGhpcy5xYj1uZXcgSGguWWMoNzgpO2tpKHRoaXMuUWIpO2tpKHRoaXMuUGUpO2tpKHRoaXMucWIpO3RoaXMuVG89dGhpcy5JaT0KdGhpcy5waj1udWxsO3RoaXMua2Q9bmV3IEhoLlljKDE2KTt0aGlzLmhlYXA9bmV3IEhoLlljKDU3Myk7a2kodGhpcy5oZWFwKTt0aGlzLlhmPXRoaXMueGQ9MDt0aGlzLmRlcHRoPW5ldyBIaC5ZYyg1NzMpO2tpKHRoaXMuZGVwdGgpO3RoaXMuaGI9dGhpcy5GYj10aGlzLnJiPXRoaXMubWF0Y2hlcz10aGlzLkhnPXRoaXMuQ2Q9dGhpcy5ZZz10aGlzLmtjPXRoaXMuQWg9dGhpcy5rbT0wfTsKRGk9ZnVuY3Rpb24oYSxiKXtpZighYXx8IWEuc3RhdGV8fGI+NXx8YjwwKXJldHVybiBhP2ppKGEsLTIpOi0yO3ZhciBjPWEuc3RhdGU7aWYoIWEub3V0cHV0fHwhYS5pbnB1dCYmYS5EYiE9PTB8fGMuc3RhdHVzPT09NjY2JiZiIT09NClyZXR1cm4gamkoYSxhLnphPT09MD8tNTotMik7Yy53YT1hO3ZhciBkPWMuaWc7Yy5pZz1iO2lmKGMuc3RhdHVzPT09NDIpaWYoYy53cmFwPT09MilhLnNhPTAscWkoYywzMSkscWkoYywxMzkpLHFpKGMsOCksYy5xYT8ocWkoYywoYy5xYS50ZXh0PzE6MCkrKGMucWEuYmU/MjowKSsoYy5xYS5leHRyYT80OjApKyhjLnFhLm5hbWU/ODowKSsoYy5xYS5jb21tZW50PzE2OjApKSxxaShjLGMucWEudGltZSYyNTUpLHFpKGMsYy5xYS50aW1lPj44JjI1NSkscWkoYyxjLnFhLnRpbWU+PjE2JjI1NSkscWkoYyxjLnFhLnRpbWU+PjI0JjI1NSkscWkoYyxjLmxldmVsPT09OT8yOmMuc3RyYXRlZ3k+PTJ8fGMubGV2ZWw8Mj80OjApLHFpKGMsYy5xYS5vcyYyNTUpLApjLnFhLmV4dHJhJiZjLnFhLmV4dHJhLmxlbmd0aCYmKHFpKGMsYy5xYS5leHRyYS5sZW5ndGgmMjU1KSxxaShjLGMucWEuZXh0cmEubGVuZ3RoPj44JjI1NSkpLGMucWEuYmUmJihhLnNhPXVpKGEuc2EsYy5PYSxjLnBlbmRpbmcsMCkpLGMuemM9MCxjLnN0YXR1cz02OSk6KHFpKGMsMCkscWkoYywwKSxxaShjLDApLHFpKGMsMCkscWkoYywwKSxxaShjLGMubGV2ZWw9PT05PzI6Yy5zdHJhdGVneT49Mnx8Yy5sZXZlbDwyPzQ6MCkscWkoYywzKSxjLnN0YXR1cz0xMTMpO2Vsc2V7dmFyIGU9OCsoYy5Obi04PDw0KTw8ODtlfD0oYy5zdHJhdGVneT49Mnx8Yy5sZXZlbDwyPzA6Yy5sZXZlbDw2PzE6Yy5sZXZlbD09PTY/MjozKTw8NjtjLlYhPT0wJiYoZXw9MzIpO2Muc3RhdHVzPTExMztyaShjLGUrKDMxLWUlMzEpKTtjLlYhPT0wJiYocmkoYyxhLnNhPj4+MTYpLHJpKGMsYS5zYSY2NTUzNSkpO2Euc2E9MX1pZihjLnN0YXR1cz09PTY5KWlmKGMucWEuZXh0cmEpe2ZvcihlPWMucGVuZGluZztjLnpjPAooYy5xYS5leHRyYS5sZW5ndGgmNjU1MzUpJiYoYy5wZW5kaW5nIT09Yy5uY3x8KGMucWEuYmUmJmMucGVuZGluZz5lJiYoYS5zYT11aShhLnNhLGMuT2EsYy5wZW5kaW5nLWUsZSkpLGxpKGEpLGU9Yy5wZW5kaW5nLGMucGVuZGluZyE9PWMubmMpKTspcWkoYyxjLnFhLmV4dHJhW2MuemNdJjI1NSksYy56YysrO2MucWEuYmUmJmMucGVuZGluZz5lJiYoYS5zYT11aShhLnNhLGMuT2EsYy5wZW5kaW5nLWUsZSkpO2MuemM9PT1jLnFhLmV4dHJhLmxlbmd0aCYmKGMuemM9MCxjLnN0YXR1cz03Myl9ZWxzZSBjLnN0YXR1cz03MztpZihjLnN0YXR1cz09PTczKWlmKGMucWEubmFtZSl7ZT1jLnBlbmRpbmc7ZG97aWYoYy5wZW5kaW5nPT09Yy5uYyYmKGMucWEuYmUmJmMucGVuZGluZz5lJiYoYS5zYT11aShhLnNhLGMuT2EsYy5wZW5kaW5nLWUsZSkpLGxpKGEpLGU9Yy5wZW5kaW5nLGMucGVuZGluZz09PWMubmMpKXt2YXIgZj0xO2JyZWFrfWY9Yy56YzxjLnFhLm5hbWUubGVuZ3RoP2MucWEubmFtZS5jaGFyQ29kZUF0KGMuemMrKykmCjI1NTowO3FpKGMsZil9d2hpbGUoZiE9PTApO2MucWEuYmUmJmMucGVuZGluZz5lJiYoYS5zYT11aShhLnNhLGMuT2EsYy5wZW5kaW5nLWUsZSkpO2Y9PT0wJiYoYy56Yz0wLGMuc3RhdHVzPTkxKX1lbHNlIGMuc3RhdHVzPTkxO2lmKGMuc3RhdHVzPT09OTEpaWYoYy5xYS5jb21tZW50KXtlPWMucGVuZGluZztkb3tpZihjLnBlbmRpbmc9PT1jLm5jJiYoYy5xYS5iZSYmYy5wZW5kaW5nPmUmJihhLnNhPXVpKGEuc2EsYy5PYSxjLnBlbmRpbmctZSxlKSksbGkoYSksZT1jLnBlbmRpbmcsYy5wZW5kaW5nPT09Yy5uYykpe2Y9MTticmVha31mPWMuemM8Yy5xYS5jb21tZW50Lmxlbmd0aD9jLnFhLmNvbW1lbnQuY2hhckNvZGVBdChjLnpjKyspJjI1NTowO3FpKGMsZil9d2hpbGUoZiE9PTApO2MucWEuYmUmJmMucGVuZGluZz5lJiYoYS5zYT11aShhLnNhLGMuT2EsYy5wZW5kaW5nLWUsZSkpO2Y9PT0wJiYoYy5zdGF0dXM9MTAzKX1lbHNlIGMuc3RhdHVzPTEwMztjLnN0YXR1cz09PTEwMyYmCihjLnFhLmJlPyhjLnBlbmRpbmcrMj5jLm5jJiZsaShhKSxjLnBlbmRpbmcrMjw9Yy5uYyYmKHFpKGMsYS5zYSYyNTUpLHFpKGMsYS5zYT4+OCYyNTUpLGEuc2E9MCxjLnN0YXR1cz0xMTMpKTpjLnN0YXR1cz0xMTMpO2lmKGMucGVuZGluZyE9PTApe2lmKGxpKGEpLGEuemE9PT0wKXJldHVybiBjLmlnPS0xLDB9ZWxzZSBpZihhLkRiPT09MCYmKGI8PDEpLShiPjQ/OTowKTw9KGQ8PDEpLShkPjQ/OTowKSYmYiE9PTQpcmV0dXJuIGppKGEsLTUpO2lmKGMuc3RhdHVzPT09NjY2JiZhLkRiIT09MClyZXR1cm4gamkoYSwtNSk7aWYoYS5EYiE9PTB8fGMuZGEhPT0wfHxiIT09MCYmYy5zdGF0dXMhPT02NjYpe2Q9Yy5zdHJhdGVneT09PTI/emkoYyxiKTpjLnN0cmF0ZWd5PT09Mz95aShjLGIpOkNpW2MubGV2ZWxdLmt3KGMsYik7aWYoZD09PTN8fGQ9PT00KWMuc3RhdHVzPTY2NjtpZihkPT09MXx8ZD09PTMpcmV0dXJuIGEuemE9PT0wJiYoYy5pZz0tMSksMDtpZihkPT09MiYmKGI9PT0xPwooTmgoYywyLDMpLE9oKGMsMjU2LG5pKSxjLmhiPT09MTY/KE1oKGMsYy5GYiksYy5GYj0wLGMuaGI9MCk6Yy5oYj49OCYmKGMuT2FbYy5wZW5kaW5nKytdPWMuRmImMjU1LGMuRmI+Pj04LGMuaGItPTgpKTpiIT09NSYmKE5oKGMsMCwzKSxUaChjLDAsMCksYj09PTMmJihraShjLmhlYWQpLGMuZGE9PT0wJiYoYy5WPTAsYy5VYj0wLGMucmI9MCkpKSxsaShhKSxhLnphPT09MCkpcmV0dXJuIGMuaWc9LTEsMH1pZihiIT09NClyZXR1cm4gMDtpZihjLndyYXA8PTApcmV0dXJuIDE7Yy53cmFwPT09Mj8ocWkoYyxhLnNhJjI1NSkscWkoYyxhLnNhPj44JjI1NSkscWkoYyxhLnNhPj4xNiYyNTUpLHFpKGMsYS5zYT4+MjQmMjU1KSxxaShjLGEucWYmMjU1KSxxaShjLGEucWY+PjgmMjU1KSxxaShjLGEucWY+PjE2JjI1NSkscWkoYyxhLnFmPj4yNCYyNTUpKToocmkoYyxhLnNhPj4+MTYpLHJpKGMsYS5zYSY2NTUzNSkpO2xpKGEpO2Mud3JhcD4wJiYoYy53cmFwPS1jLndyYXApO3JldHVybiBjLnBlbmRpbmchPT0KMD8wOjF9OwpFaT1mdW5jdGlvbihhKXtpZighKHRoaXMgaW5zdGFuY2VvZiBFaSkpcmV0dXJuIG5ldyBFaShhKTthPXRoaXMub3B0aW9ucz1IaC5hc3NpZ24oe2xldmVsOi0xLG1ldGhvZDo4LGNodW5rU2l6ZToxNjM4NCx3aW5kb3dCaXRzOjE1LG1lbUxldmVsOjgsc3RyYXRlZ3k6MCx0bzoiIn0sYXx8e30pO2EucmF3JiZhLndpbmRvd0JpdHM+MD9hLndpbmRvd0JpdHM9LWEud2luZG93Qml0czphLmd6aXAmJmEud2luZG93Qml0cz4wJiZhLndpbmRvd0JpdHM8MTYmJihhLndpbmRvd0JpdHMrPTE2KTt0aGlzLmVycj0wO3RoaXMubXNnPSIiO3RoaXMuZW5kZWQ9ITE7dGhpcy5jaHVua3M9W107dGhpcy53YT1uZXcgRmk7dGhpcy53YS56YT0wO3ZhciBiPXRoaXMud2E7dmFyIGM9YS5sZXZlbCxkPWEubWV0aG9kLGU9YS53aW5kb3dCaXRzLGY9YS5tZW1MZXZlbCxoPWEuc3RyYXRlZ3k7aWYoYil7dmFyIGs9MTtjPT09LTEmJihjPTYpO2U8MD8oaz0wLGU9LWUpOmU+MTUmJihrPTIsZS09MTYpO2lmKGY8CjF8fGY+OXx8ZCE9PTh8fGU8OHx8ZT4xNXx8YzwwfHxjPjl8fGg8MHx8aD40KWI9amkoYiwtMik7ZWxzZXtlPT09OCYmKGU9OSk7dmFyIGw9bmV3IEJpO2Iuc3RhdGU9bDtsLndhPWI7bC53cmFwPWs7bC5xYT1udWxsO2wuTm49ZTtsLkJiPTE8PGwuTm47bC5CZT1sLkJiLTE7bC5MbD1mKzc7bC5haj0xPDxsLkxsO2wudmQ9bC5hai0xO2wud2Q9fn4oKGwuTGwrMy0xKS8zKTtsLndpbmRvdz1uZXcgSGgudGYobC5CYioyKTtsLmhlYWQ9bmV3IEhoLlljKGwuYWopO2wuVWE9bmV3IEhoLlljKGwuQmIpO2wuQWg9MTw8Zis2O2wubmM9bC5BaCo0O2wuT2E9bmV3IEhoLnRmKGwubmMpO2wuWWc9bC5BaDtsLmttPTMqbC5BaDtsLmxldmVsPWM7bC5zdHJhdGVneT1oO2wubWV0aG9kPWQ7aWYoYiYmYi5zdGF0ZSl7Yi5xZj1iLkVuPTA7Yi5pbD0yO2M9Yi5zdGF0ZTtjLnBlbmRpbmc9MDtjLkpoPTA7Yy53cmFwPDAmJihjLndyYXA9LWMud3JhcCk7Yy5zdGF0dXM9Yy53cmFwPzQyOjExMztiLnNhPQpjLndyYXA9PT0yPzA6MTtjLmlnPTA7aWYoIUdpKXtkPUFycmF5KDE2KTtmb3IoZj1oPTA7ZjwyODtmKyspZm9yKFloW2ZdPWgsZT0wO2U8MTw8WGhbZl07ZSsrKVdoW2grK109ZjtXaFtoLTFdPWY7Zm9yKGY9aD0wO2Y8MTY7ZisrKWZvcihiaVtmXT1oLGU9MDtlPDE8PCRoW2ZdO2UrKylaaFtoKytdPWY7Zm9yKGg+Pj03O2Y8MzA7ZisrKWZvcihiaVtmXT1oPDw3LGU9MDtlPDE8PCRoW2ZdLTc7ZSsrKVpoWzI1NitoKytdPWY7Zm9yKGU9MDtlPD0xNTtlKyspZFtlXT0wO2ZvcihlPTA7ZTw9MTQzOyluaVtlKjIrMV09OCxlKyssZFs4XSsrO2Zvcig7ZTw9MjU1OyluaVtlKjIrMV09OSxlKyssZFs5XSsrO2Zvcig7ZTw9Mjc5OyluaVtlKjIrMV09NyxlKyssZFs3XSsrO2Zvcig7ZTw9Mjg3OyluaVtlKjIrMV09OCxlKyssZFs4XSsrO1FoKG5pLDI4NyxkKTtmb3IoZT0wO2U8MzA7ZSsrKW9pW2UqMisxXT01LG9pW2UqMl09UGgoZSw1KTtIaT1uZXcgS2gobmksWGgsMjU3LDI4NiwxNSk7SWk9Cm5ldyBLaChvaSwkaCwwLDMwLDE1KTtKaT1uZXcgS2goW10sS2ksMCwxOSw3KTtHaT0hMH1jLnBqPW5ldyBMaChjLlFiLEhpKTtjLklpPW5ldyBMaChjLlBlLElpKTtjLlRvPW5ldyBMaChjLnFiLEppKTtjLkZiPTA7Yy5oYj0wO1JoKGMpO2M9MH1lbHNlIGM9amkoYiwtMik7Yz09PTAmJihiPWIuc3RhdGUsYi5Lcz0yKmIuQmIsa2koYi5oZWFkKSxiLm9tPUNpW2IubGV2ZWxdLkV5LGIuWXA9Q2lbYi5sZXZlbF0udHcsYi5TcT1DaVtiLmxldmVsXS5XeSxiLk5xPUNpW2IubGV2ZWxdLkR5LGIuVj0wLGIuVWI9MCxiLmRhPTAsYi5yYj0wLGIuQmE9Yi5ZYj0yLGIuY2Y9MCxiLnhhPTApO2I9Y319ZWxzZSBiPS0yO2lmKGIhPT0wKXRocm93IEVycm9yKGlpW2JdKTthLmhlYWRlciYmKGI9dGhpcy53YSkmJmIuc3RhdGUmJmIuc3RhdGUud3JhcD09PTImJihiLnN0YXRlLnFhPWEuaGVhZGVyKTtpZihhLmRpY3Rpb25hcnkpe3ZhciBtO3R5cGVvZiBhLmRpY3Rpb25hcnk9PT0ic3RyaW5nIj9tPQpJaChhLmRpY3Rpb25hcnkpOkxpLmNhbGwoYS5kaWN0aW9uYXJ5KT09PSJbb2JqZWN0IEFycmF5QnVmZmVyXSI/bT1uZXcgVWludDhBcnJheShhLmRpY3Rpb25hcnkpOm09YS5kaWN0aW9uYXJ5O2E9dGhpcy53YTtmPW07aD1mLmxlbmd0aDtpZihhJiZhLnN0YXRlKWlmKG09YS5zdGF0ZSxiPW0ud3JhcCxiPT09Mnx8Yj09PTEmJm0uc3RhdHVzIT09NDJ8fG0uZGEpYj0tMjtlbHNle2I9PT0xJiYoYS5zYT10aShhLnNhLGYsaCwwKSk7bS53cmFwPTA7aD49bS5CYiYmKGI9PT0wJiYoa2kobS5oZWFkKSxtLlY9MCxtLlViPTAsbS5yYj0wKSxjPW5ldyBIaC50ZihtLkJiKSxIaC53ZihjLGYsaC1tLkJiLG0uQmIsMCksZj1jLGg9bS5CYik7Yz1hLkRiO2Q9YS5mZjtlPWEuaW5wdXQ7YS5EYj1oO2EuZmY9MDthLmlucHV0PWY7Zm9yKHZpKG0pO20uZGE+PTM7KXtmPW0uVjtoPW0uZGEtMjtkbyBtLnhhPShtLnhhPDxtLndkXm0ud2luZG93W2YrMy0xXSkmbS52ZCxtLlVhW2YmbS5CZV09bS5oZWFkW20ueGFdLAptLmhlYWRbbS54YV09ZixmKys7d2hpbGUoLS1oKTttLlY9ZjttLmRhPTI7dmkobSl9bS5WKz1tLmRhO20uVWI9bS5WO20ucmI9bS5kYTttLmRhPTA7bS5CYT1tLlliPTI7bS5jZj0wO2EuZmY9ZDthLmlucHV0PWU7YS5EYj1jO20ud3JhcD1iO2I9MH1lbHNlIGI9LTI7aWYoYiE9PTApdGhyb3cgRXJyb3IoaWlbYl0pO3RoaXMuTUg9ITB9fTtNaT1mdW5jdGlvbihhLGIpe2I9PT0wJiYoYS5yZXN1bHQ9YS5vcHRpb25zLnRvPT09InN0cmluZyI/YS5jaHVua3Muam9pbigiIik6SGguTXAoYS5jaHVua3MpKTthLmNodW5rcz1bXTthLmVycj1iO2EubXNnPWEud2EubXNnfTtfLk5pPWZ1bmN0aW9uKGEpe3ZhciBiPWJ8fHt9O2IuZ3ppcD0hMDtiPW5ldyBFaShiKTtiLnB1c2goYSwhMCk7aWYoYi5lcnIpdGhyb3cgYi5tc2d8fGlpW2IuZXJyXTtyZXR1cm4gYi5yZXN1bHR9OwpfLk9pPWZ1bmN0aW9uKGEsYil7Yi5sZW5ndGg+MT9hW2JbMF1dPWJbMV06Yi5sZW5ndGg9PT0xJiZPYmplY3QuYXNzaWduKGEsYlswXSl9O18uUWk9ZnVuY3Rpb24oLi4uYSl7Xy5PaShfLlBpLGFyZ3VtZW50cyl9O18udz1mdW5jdGlvbihhLGIpe3JldHVybiBhIGluIF8uUGk/Xy5QaVthXTpifTtfLlJpPWZ1bmN0aW9uKGEpe3ZhciBiPV8uUGkuRVhQRVJJTUVOVF9GTEFHUztyZXR1cm4gYj9iW2FdOnZvaWQgMH07VGk9ZnVuY3Rpb24oYSl7U2kuZm9yRWFjaChiPT5iKGEpKX07Xy5WaT1mdW5jdGlvbihhKXtyZXR1cm4gYSYmd2luZG93Lnl0ZXJyP2Z1bmN0aW9uKCl7dHJ5e3JldHVybiBhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jYXRjaChiKXtfLlVpKGIpfX06YX07Cl8uVWk9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5zYSgieXQubG9nZ2luZy5lcnJvcnMubG9nIik7Yj9iKGEsIkVSUk9SIix2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwKTooYj1fLncoIkVSUk9SUyIsW10pLGIucHVzaChbYSwiRVJST1IiLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDBdKSxfLlFpKCJFUlJPUlMiLGIpKTtUaShhKX07Xy5XaT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPV8uc2EoInl0LmxvZ2dpbmcuZXJyb3JzLmxvZyIpO2Y/ZihhLCJXQVJOSU5HIixiLGMsZCx2b2lkIDAsZSk6KGY9Xy53KCJFUlJPUlMiLFtdKSxmLnB1c2goW2EsIldBUk5JTkciLGIsYyxkLHZvaWQgMCxlXSksXy5RaSgiRVJST1JTIixmKSl9OwpZaT1mdW5jdGlvbihhLGIpe2I9YS5zcGxpdChiKTt2YXIgYz17fTtmb3IobGV0IGY9MCxoPWIubGVuZ3RoO2Y8aDtmKyspe2xldCBrPWJbZl0uc3BsaXQoIj0iKTtpZihrLmxlbmd0aD09PTEmJmtbMF18fGsubGVuZ3RoPT09Mil0cnl7bGV0IGw9WGkoa1swXXx8IiIpLG09WGkoa1sxXXx8IiIpO2lmKGwgaW4gYyl7bGV0IG49Y1tsXTtBcnJheS5pc0FycmF5KG4pP3piKG4sbSk6Y1tsXT1bbixtXX1lbHNlIGNbbF09bX1jYXRjaChsKXt2YXIgZD1sLGU9a1swXTtsZXQgbT1TdHJpbmcoWWkpO2QuYXJncz1be2tleTplLHZhbHVlOmtbMV0scXVlcnk6YSxtZXRob2Q6Wmk9PT1tPyJ1bmNoYW5nZWQiOm19XTskaS5oYXNPd25Qcm9wZXJ0eShlKXx8Xy5XaShkKX19cmV0dXJuIGN9Owphaj1mdW5jdGlvbihhKXt2YXIgYj1bXTtvZChhLChjLGQpPT57dmFyIGU9ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhkKSk7Yz1BcnJheS5pc0FycmF5KGMpP2M6W2NdO18udGIoYyxmPT57Zj09IiI/Yi5wdXNoKGUpOmIucHVzaChgJHtlfT0ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZikpfWApfSl9KTtyZXR1cm4gYi5qb2luKCImIil9O18uYmo9ZnVuY3Rpb24oYSl7YS5jaGFyQXQoMCk9PT0iPyImJihhPWEuc3Vic3RyaW5nKDEpKTtyZXR1cm4gWWkoYSwiJiIpfTtkaj1mdW5jdGlvbihhLGIpe3JldHVybiBjaihhLGJ8fHt9LCEwKX07Xy5laj1mdW5jdGlvbihhLGIpe3JldHVybiBjaihhLGJ8fHt9LCExKX07CmNqPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLnNwbGl0KCIjIiwyKTthPWRbMF07ZD1kLmxlbmd0aD4xPyIjIitkWzFdOiIiO3ZhciBlPWEuc3BsaXQoIj8iLDIpO2E9ZVswXTtlPV8uYmooZVsxXXx8IiIpO2ZvcihsZXQgZiBpbiBiKSFjJiZlIT09bnVsbCYmZiBpbiBlfHwoZVtmXT1iW2ZdKTtyZXR1cm4gXy5XYihhLGUpK2R9O18uZmo9ZnVuY3Rpb24oYSl7aWYoIWIpdmFyIGI9d2luZG93LmxvY2F0aW9uLmhyZWY7dmFyIGM9Xy5NYihhKVsxXXx8bnVsbCxkPV8uUGIoYSk7YyYmZD8oYT1fLk1iKGEpLGI9Xy5NYihiKSxhPWFbM109PWJbM10mJmFbMV09PWJbMV0mJmFbNF09PWJbNF0pOmE9ZD9fLlBiKGIpPT09ZCYmKE51bWJlcihfLk1iKGIpWzRdfHxudWxsKXx8bnVsbCk9PT0oTnVtYmVyKF8uTWIoYSlbNF18fG51bGwpfHxudWxsKTohMDtyZXR1cm4gYX07WGk9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEubWF0Y2goZ2opP2E6Xy5IYihhKX07Cl8ubGo9ZnVuY3Rpb24oYT1fLnNhKCJ5dC5hZHMuYmlzY290dGkubGFzdElkXyIpfHwiIil7dmFyIGI9aGosYz1PYmplY3QsZD1jLmFzc2lnbjthOnt0cnl7dmFyIGU9Yi5qLnRvcC5sb2NhdGlvbi5ocmVmfWNhdGNoKEEpe2U9MjticmVhayBhfWU9ZT9lPT09Yi5vLmxvY2F0aW9uLmhyZWY/MDoxOjJ9ZT17ZHQ6aWosZmxhc2g6IjAiLGZybTplfTt0cnl7ZS51X3R6PS0obmV3IERhdGUpLmdldFRpbWV6b25lT2Zmc2V0KCk7dHJ5e3ZhciBmPWpqLmhpc3RvcnkubGVuZ3RofWNhdGNoKEEpe2Y9MH1lLnVfaGlzPWY7ZS51X2g9amouc2NyZWVuPy5oZWlnaHQ7ZS51X3c9amouc2NyZWVuPy53aWR0aDtlLnVfYWg9amouc2NyZWVuPy5hdmFpbEhlaWdodDtlLnVfYXc9amouc2NyZWVuPy5hdmFpbFdpZHRoO2UudV9jZD1qai5zY3JlZW4/LmNvbG9yRGVwdGh9Y2F0Y2goQSl7fWY9Yi5qO3RyeXt2YXIgaD1mLnNjcmVlblg7dmFyIGs9Zi5zY3JlZW5ZfWNhdGNoKEEpe310cnl7dmFyIGw9Zi5vdXRlcldpZHRoOwp2YXIgbT1mLm91dGVySGVpZ2h0fWNhdGNoKEEpe310cnl7dmFyIG49Zi5pbm5lcldpZHRoO3ZhciBwPWYuaW5uZXJIZWlnaHR9Y2F0Y2goQSl7fXRyeXt2YXIgcj1mLnNjcmVlbkxlZnQ7dmFyIHQ9Zi5zY3JlZW5Ub3B9Y2F0Y2goQSl7fXRyeXtuPWYuaW5uZXJXaWR0aCxwPWYuaW5uZXJIZWlnaHR9Y2F0Y2goQSl7fXRyeXt2YXIgdj1mLnNjcmVlbi5hdmFpbFdpZHRoO3ZhciB6PWYuc2NyZWVuLmF2YWlsVG9wfWNhdGNoKEEpe31oPVtyLHQsaCxrLHYseixsLG0sbixwXTt0cnl7dmFyIEU9Xy55ZChiLmoudG9wfHx3aW5kb3cpLnJvdW5kKCl9Y2F0Y2goQSl7RT1uZXcgXy5uZCgtMTIyNDU5MzMsLTEyMjQ1OTMzKX1sPUU7RT1uZXcga2o7IlNWR0VsZW1lbnQiaW4gXy51JiYiY3JlYXRlRWxlbWVudE5TImluIF8udS5kb2N1bWVudCYmRS5zZXQoMCk7az1tZCgpO2tbImFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbiJdJiZFLnNldCgxKTtrWyJhbGxvdy1wb3B1cHMtdG8tZXNjYXBlLXNhbmRib3giXSYmCkUuc2V0KDIpO18udS5jcnlwdG8mJl8udS5jcnlwdG8uc3VidGxlJiZFLnNldCgzKTsiVGV4dERlY29kZXIiaW4gXy51JiYiVGV4dEVuY29kZXIiaW4gXy51JiZFLnNldCg0KTtFPW5oKEUpO2s9bC5oZWlnaHQ7bD1sLndpZHRoO2g9aC5qb2luKCk7Yj1iLm87Yz1kLmNhbGwoYyxlLHtiYzpFLGJpaDprLGJpdzpsLGJyZGltOmgsdmlzOmIucHJlcmVuZGVyaW5nPzM6e3Zpc2libGU6MSxoaWRkZW46MixwcmVyZW5kZXI6MyxwcmV2aWV3OjQsdW5sb2FkZWQ6NSwiIjowfVtiLnZpc2liaWxpdHlTdGF0ZXx8Yi53ZWJraXRWaXNpYmlsaXR5U3RhdGV8fGIubW96VmlzaWJpbGl0eVN0YXRlfHwiIl0/PzAsd2dsOiEhamouV2ViR0xSZW5kZXJpbmdDb250ZXh0fSk7Yy5jYV90eXBlPSJpbWFnZSI7YSYmKGMuYmlkPWEpO3JldHVybiBjfTtfLm1qPWZ1bmN0aW9uKGEsYil7dHlwZW9mIGE9PT0iZnVuY3Rpb24iJiYoYT1fLlZpKGEpKTtyZXR1cm4gd2luZG93LnNldFRpbWVvdXQoYSxiKX07Cm9qPWZ1bmN0aW9uKCl7aWYoIW5qKXJldHVybiBudWxsO3ZhciBhPW5qKCk7cmV0dXJuIm9wZW4iaW4gYT9hOm51bGx9O18ucWo9ZnVuY3Rpb24oYSl7c3dpdGNoKF8ucGooYSkpe2Nhc2UgMjAwOmNhc2UgMjAxOmNhc2UgMjAyOmNhc2UgMjAzOmNhc2UgMjA0OmNhc2UgMjA1OmNhc2UgMjA2OmNhc2UgMzA0OnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fTtfLnBqPWZ1bmN0aW9uKGEpe3JldHVybiBhJiYic3RhdHVzImluIGE/YS5zdGF0dXM6LTF9O18ueD1mdW5jdGlvbihhLGIpe2E9Xy5yaihhLGIpO3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmciJiZhPT09ImZhbHNlIj8hMTohIWF9O18uc2o9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gTnVtYmVyKF8ucmooYSxiKXx8MCl9O18udGo9ZnVuY3Rpb24oYSl7YT1fLnJqKGEpO3JldHVybiBhIT09dm9pZCAwP1N0cmluZyhhKToiIn07Cl8ucmo9ZnVuY3Rpb24oYSxiKXthPV8udygiRVhQRVJJTUVOVF9GTEFHUyIse30pW2FdO3JldHVybiBhIT09dm9pZCAwP2E6Yn07Xy51aj1mdW5jdGlvbigpe3ZhciBhPVtdLGI9Xy53KCJFWFBFUklNRU5UU19GT1JDRURfRkxBR1MiLHt9KTtmb3IodmFyIGMgb2YgT2JqZWN0LmtleXMoYikpYS5wdXNoKHtrZXk6Yyx2YWx1ZTpTdHJpbmcoYltjXSl9KTtjPV8udygiRVhQRVJJTUVOVF9GTEFHUyIse30pO2ZvcihsZXQgZCBvZiBPYmplY3Qua2V5cyhjKSlkLnN0YXJ0c1dpdGgoImZvcmNlXyIpJiZiW2RdPT09dm9pZCAwJiZhLnB1c2goe2tleTpkLHZhbHVlOlN0cmluZyhjW2RdKX0pO3JldHVybiBhfTsKeGo9ZnVuY3Rpb24oYSxiLGM9IkdFVCIsZD0iIixlLGYsaCxrPSExLGwpe3ZhciBtPW9qKCk7aWYoIW0pcmV0dXJuIG51bGw7dmFyIG49KCk9PnsobSYmInJlYWR5U3RhdGUiaW4gbT9tLnJlYWR5U3RhdGU6MCk9PT00JiZiJiZfLlZpKGIpKG0pfTsib25sb2FkZW5kImluIG0/bS5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixuLCExKTptLm9ucmVhZHlzdGF0ZWNoYW5nZT1uO18ueCgiZGVidWdfZm9yd2FyZF93ZWJfcXVlcnlfcGFyYW1ldGVycyIpJiYoYT12aihhKSk7bS5vcGVuKGMsYSwhMCk7ZiYmKG0ucmVzcG9uc2VUeXBlPWYpO2gmJihtLndpdGhDcmVkZW50aWFscz0hMCk7Yz1jPT09IlBPU1QiJiYod2luZG93LkZvcm1EYXRhPT09dm9pZCAwfHwhKGQgaW5zdGFuY2VvZiBGb3JtRGF0YSkpO2lmKGU9d2ooYSxlKSlmb3IobGV0IHAgaW4gZSltLnNldFJlcXVlc3RIZWFkZXIocCxlW3BdKSwiY29udGVudC10eXBlIj09PXAudG9Mb3dlckNhc2UoKSYmKGM9ITEpO2MmJm0uc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwKImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpO2wmJiJvbnByb2dyZXNzImluIG0mJihtLm9ucHJvZ3Jlc3M9KCk9PntsKG0ucmVzcG9uc2VUZXh0KX0pO2lmKGsmJiJzZXRBdHRyaWJ1dGlvblJlcG9ydGluZyJpbiBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUpe2E9e2V2ZW50U291cmNlRWxpZ2libGU6ITAsdHJpZ2dlckVsaWdpYmxlOiExfTt0cnl7bS5zZXRBdHRyaWJ1dGlvblJlcG9ydGluZyhhKX1jYXRjaChwKXtfLldpKHApfX1tLnNlbmQoZCk7cmV0dXJuIG19Owp3aj1mdW5jdGlvbihhLGI9e30pe3ZhciBjPV8uZmooYSksZD1fLncoIklOTkVSVFVCRV9DTElFTlRfTkFNRSIpLGU9Xy54KCJ3ZWJfYWpheF9pZ25vcmVfZ2xvYmFsX2hlYWRlcnNfaWZfc2V0Iik7Zm9yKGxldCBrIGluIHlqKXtsZXQgbD1fLncoeWpba10pLG09az09PSJYLUdvb2ctQXV0aFVzZXIifHxrPT09IlgtR29vZy1QYWdlSWQiO2shPT0iWC1Hb29nLVZpc2l0b3ItSWQifHxsfHwobD1fLncoIlZJU0lUT1JfREFUQSIpKTt2YXIgZjtpZighKGY9IWwpKXtpZighKGY9Y3x8KF8uUGIoYSk/ITE6ITApKSl7Zj1hO3ZhciBoO2lmKGg9Xy54KCJhZGRfYXV0aF9oZWFkZXJzX3RvX3JlbWFya2V0aW5nX2dvb2dsZV9kb3RfY29tX3BpbmciKSYmaz09PSJBdXRob3JpemF0aW9uIiYmKGQ9PT0iVFZIVE1MNSJ8fGQ9PT0iVFZIVE1MNV9VTlBMVUdHRUQifHxkPT09IlRWSFRNTDVfU0lNUExZIikpaD1fLlBiKGYpLGg9aCE9PW51bGw/aC5zcGxpdCgiLiIpLnJldmVyc2UoKTpudWxsLGg9aD09PQpudWxsPyExOmhbMV09PT0iZ29vZ2xlIj8hMDpoWzJdPT09Imdvb2dsZSI/aFswXT09PSJhdSImJmhbMV09PT0iY29tIj8hMDpoWzBdPT09InVrIiYmaFsxXT09PSJjbyI/ITA6ITE6ITE7aCYmKGY9Xy5RYihmKXx8IiIsZj1mLnNwbGl0KCIvIiksZj0iLyIrKGYubGVuZ3RoPjE/ZlsxXToiIiksaD1mPT09Ii9wYWdlYWQiKTtmPWg/ITA6ITF9Zj0hZn1mfHxlJiZiW2tdIT09dm9pZCAwfHxkPT09IlRWSFRNTDVfVU5QTFVHR0VEIiYmbXx8KGJba109bCl9IlgtR29vZy1FT00tVmlzaXRvci1JZCJpbiBiJiYiWC1Hb29nLVZpc2l0b3ItSWQiaW4gYiYmZGVsZXRlIGJbIlgtR29vZy1WaXNpdG9yLUlkIl07aWYoY3x8IV8uUGIoYSkpYlsiWC1Zb3VUdWJlLVV0Yy1PZmZzZXQiXT1TdHJpbmcoLShuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKSk7aWYoY3x8IV8uUGIoYSkpe2xldCBrO3RyeXtrPShuZXcgSW50bC5EYXRlVGltZUZvcm1hdCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmV9Y2F0Y2h7fWsmJgooYlsiWC1Zb3VUdWJlLVRpbWUtWm9uZSJdPWspfWRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lLmVuZHNXaXRoKCJ5b3V0dWJlZWR1Y2F0aW9uLmNvbSIpfHwhYyYmXy5QYihhKXx8KGJbIlgtWW91VHViZS1BZC1TaWduYWxzIl09YWooXy5saigpKSk7cmV0dXJuIGJ9O0FqPWZ1bmN0aW9uKGEsYil7Yi5tZXRob2Q9IlBPU1QiO2IucG9zdFBhcmFtc3x8KGIucG9zdFBhcmFtcz17fSk7cmV0dXJuIF8uemooYSxiKX07Cl8uemo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmZvcm1hdHx8IkpTT04iO2E9QmooYSxiKTt2YXIgZD1DaihhLGIpLGU9ITEsZj1EaihhLGs9PntpZighZSl7ZT0hMDtoJiZ3aW5kb3cuY2xlYXJUaW1lb3V0KGgpO3ZhciBsPV8ucWooayksbT1udWxsLG49NDAwPD1rLnN0YXR1cyYmay5zdGF0dXM8NTAwLHA9NTAwPD1rLnN0YXR1cyYmay5zdGF0dXM8NjAwO2lmKGx8fG58fHApbT1FaihhLGMsayxiLmNvbnZlcnRUb1NhZmVIdG1sKTtsJiYobD1GaihjLGssbSkpO209bXx8e307bj1iLmNvbnRleHR8fF8udTtsP2Iub25TdWNjZXNzJiZiLm9uU3VjY2Vzcy5jYWxsKG4sayxtKTpiLm9uRXJyb3ImJmIub25FcnJvci5jYWxsKG4sayxtKTtiLm9uRmluaXNoJiZiLm9uRmluaXNoLmNhbGwobixrLG0pfX0sYi5tZXRob2QsZCxiLmhlYWRlcnMsYi5yZXNwb25zZVR5cGUsYi53aXRoQ3JlZGVudGlhbHMsITEsYi5vblByb2dyZXNzKTtkPWIudGltZW91dHx8MDtpZihiLm9uVGltZW91dCYmZD4wKXtsZXQgaz0KYi5vblRpbWVvdXQ7dmFyIGg9Xy5taigoKT0+e2V8fChlPSEwLGYuYWJvcnQoKSx3aW5kb3cuY2xlYXJUaW1lb3V0KGgpLGsuY2FsbChiLmNvbnRleHR8fF8udSxmKSl9LGQpfXJldHVybiBmfTtCaj1mdW5jdGlvbihhLGIpe2IuaW5jbHVkZURvbWFpbiYmKGE9ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wrIi8vIitkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSsoZG9jdW1lbnQubG9jYXRpb24ucG9ydD8iOiIrZG9jdW1lbnQubG9jYXRpb24ucG9ydDoiIikrYSk7dmFyIGM9Xy53KCJYU1JGX0ZJRUxEX05BTUUiKTtpZihiPWIudXJsUGFyYW1zKWJbY10mJmRlbGV0ZSBiW2NdLGE9ZGooYSxiKTtyZXR1cm4gYX07CkNqPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy53KCJYU1JGX0ZJRUxEX05BTUUiKSxkPV8udygiWFNSRl9UT0tFTiIpLGU9Yi5wb3N0Qm9keXx8IiIsZj1iLnBvc3RQYXJhbXMsaD1fLncoIlhTUkZfRklFTERfTkFNRSIpLGs7Yi5oZWFkZXJzJiYoaz1iLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdKTtiLmV4Y2x1ZGVYc3JmfHxfLlBiKGEpJiYhYi53aXRoQ3JlZGVudGlhbHMmJl8uUGIoYSkhPT1kb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZXx8Yi5tZXRob2QhPT0iUE9TVCJ8fGsmJmshPT0iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkInx8Yi5wb3N0UGFyYW1zJiZiLnBvc3RQYXJhbXNbaF18fChmfHwoZj17fSksZltjXT1kKTtmJiZ0eXBlb2YgZT09PSJzdHJpbmciJiYoZT1fLmJqKGUpLHNkKGUsZiksZT1iLnBvc3RCb2R5Rm9ybWF0JiZiLnBvc3RCb2R5Rm9ybWF0PT09IkpTT04iP0pTT04uc3RyaW5naWZ5KGUpOl8uVWIoZSkpO2Y9ZXx8ZiYmIV8ucGQoZik7IUdqJiZmJiYKYi5tZXRob2QhPT0iUE9TVCImJihHaj0hMCxfLlVpKEVycm9yKCJjYSIpKSk7cmV0dXJuIGV9O0VqPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPW51bGw7c3dpdGNoKGIpe2Nhc2UgIkpTT04iOmxldCBmO3RyeXtmPWMucmVzcG9uc2VUZXh0fWNhdGNoKGgpe3Rocm93IGQ9RXJyb3IoImRhIiksZC5wYXJhbXM9YSxfLldpKGQpLGg7fWE9Yy5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1UeXBlIil8fCIiO2lmKGYmJmEuaW5kZXhPZigianNvbiIpPj0wKXtmLnN1YnN0cmluZygwLDUpPT09IildfSdcbiImJihmPWYuc3Vic3RyaW5nKDUpKTt0cnl7ZT1KU09OLnBhcnNlKGYpfWNhdGNoKGgpe319YnJlYWs7Y2FzZSAiWE1MIjppZihhPShhPWMucmVzcG9uc2VYTUwpP0hqKGEpOm51bGwpZT17fSxfLnRiKGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxoPT57ZVtoLnRhZ05hbWVdPUlqKGgpfSl9ZCYmSmooZSk7cmV0dXJuIGV9OwpKaj1mdW5jdGlvbihhKXtpZihfLkFhKGEpKWZvcihsZXQgYiBpbiBhKWI9PT0iaHRtbF9jb250ZW50Inx8Xy5NYShiLCJfaHRtbCIpP2FbYl09Xy5nYihhW2JdKTpKaihhW2JdKX07Rmo9ZnVuY3Rpb24oYSxiLGMpe2lmKGImJmIuc3RhdHVzPT09MjA0KXJldHVybiEwO3N3aXRjaChhKXtjYXNlICJKU09OIjpyZXR1cm4hIWM7Y2FzZSAiWE1MIjpyZXR1cm4gTnVtYmVyKGMmJmMucmV0dXJuX2NvZGUpPT09MDtjYXNlICJSQVciOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuISFjfX07SGo9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/KGE9KCJyZXNwb25zZVhNTCJpbiBhP2EucmVzcG9uc2VYTUw6YSkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInJvb3QiKSkmJmEubGVuZ3RoPjA/YVswXTpudWxsOm51bGx9O0lqPWZ1bmN0aW9uKGEpe3ZhciBiPSIiO18udGIoYS5jaGlsZE5vZGVzLGM9PntiKz1jLm5vZGVWYWx1ZX0pO3JldHVybiBifTsKdmo9ZnVuY3Rpb24oYSl7dmFyIGI9d2luZG93LmxvY2F0aW9uLnNlYXJjaCxjPV8uUGIoYSk7Xy54KCJkZWJ1Z19oYW5kbGVfcmVsYXRpdmVfdXJsX2Zvcl9xdWVyeV9mb3J3YXJkX2tpbGxzd2l0Y2giKXx8IWMmJl8uZmooYSkmJihjPWRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKTt2YXIgZD1fLlFiKGEpO2Q9KGM9YyYmKGMuZW5kc1dpdGgoInlvdXR1YmUuY29tIil8fGMuZW5kc1dpdGgoInlvdXR1YmUtbm9jb29raWUuY29tIikpKSYmZCYmZC5zdGFydHNXaXRoKCIvYXBpLyIpO2lmKCFjfHxkKXJldHVybiBhO3ZhciBlPV8uYmooYiksZj17fTtfLnRiKEtqLGg9PntlW2hdJiYoZltoXT1lW2hdKX0pO3JldHVybiBfLmVqKGEsZil9O18uTWo9ZnVuY3Rpb24oYSxiLGMsZD0ieW91dHViZS5jb20iLGU9ITEpe18uTGouc2V0KGEsYix7dmo6YyxwYXRoOiIvIixkb21haW46ZCxzZWN1cmU6ZX0pfTsKXy5Oaj1mdW5jdGlvbihhLGI9Ii8iLGM9InlvdXR1YmUuY29tIil7Xy5Mai5yZW1vdmUoYSxiLGMpfTtfLk9qPWZ1bmN0aW9uKCl7aWYoIV8udS5tYXRjaE1lZGlhKXJldHVybiJXRUJfRElTUExBWV9NT0RFX1VOS05PV04iO3RyeXtyZXR1cm4gXy51Lm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IHN0YW5kYWxvbmUpIikubWF0Y2hlcz8iV0VCX0RJU1BMQVlfTU9ERV9TVEFOREFMT05FIjpfLnUubWF0Y2hNZWRpYSgiKGRpc3BsYXktbW9kZTogbWluaW1hbC11aSkiKS5tYXRjaGVzPyJXRUJfRElTUExBWV9NT0RFX01JTklNQUxfVUkiOl8udS5tYXRjaE1lZGlhKCIoZGlzcGxheS1tb2RlOiBmdWxsc2NyZWVuKSIpLm1hdGNoZXM/IldFQl9ESVNQTEFZX01PREVfRlVMTFNDUkVFTiI6Xy51Lm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IGJyb3dzZXIpIikubWF0Y2hlcz8iV0VCX0RJU1BMQVlfTU9ERV9CUk9XU0VSIjoiV0VCX0RJU1BMQVlfTU9ERV9VTktOT1dOIn1jYXRjaChhKXtyZXR1cm4iV0VCX0RJU1BMQVlfTU9ERV9VTktOT1dOIn19OwpfLlBqPWZ1bmN0aW9uKGEpe3ZhciBiPXt9LGM9W107IlVTRVJfU0VTU0lPTl9JRCJpbiBfLlBpJiZjLnB1c2goe2tleToidSIsdmFsdWU6Xy53KCJVU0VSX1NFU1NJT05fSUQiKX0pO2lmKGM9Xy5QZChjKSliLkF1dGhvcml6YXRpb249YyxjPWE9YT8uc2Vzc2lvbkluZGV4LGM9PT12b2lkIDAmJihjPU51bWJlcihfLncoIlNFU1NJT05fSU5ERVgiLDApKSxjPWlzTmFOKGMpPzA6YyksXy54KCJ2b2ljZV9zZWFyY2hfYXV0aF9oZWFkZXJfcmVtb3ZhbCIpfHwoYlsiWC1Hb29nLUF1dGhVc2VyIl09Yy50b1N0cmluZygpKSwiSU5ORVJUVUJFX0hPU1RfT1ZFUlJJREUiaW4gXy5QaXx8KGJbIlgtT3JpZ2luIl09d2luZG93LmxvY2F0aW9uLm9yaWdpbiksYT09PXZvaWQgMCYmIkRFTEVHQVRFRF9TRVNTSU9OX0lEImluIF8uUGkmJihiWyJYLUdvb2ctUGFnZUlkIl09Xy53KCJERUxFR0FURURfU0VTU0lPTl9JRCIpKTtyZXR1cm4gYn07ClFqPWZ1bmN0aW9uKCl7dmFyIGE9Xy51Lm5hdmlnYXRvcjtyZXR1cm4gYT9hLmNvbm5lY3Rpb246dm9pZCAwfTtfLlNqPWZ1bmN0aW9uKCl7dmFyIGE9UWooKTtpZihhKXt2YXIgYj1SalthLnR5cGV8fCJ1bmtub3duIl18fCJDT05OX1VOS05PV04iO2E9UmpbYS5lZmZlY3RpdmVUeXBlfHwidW5rbm93biJdfHwiQ09OTl9VTktOT1dOIjtiPT09IkNPTk5fQ0VMTFVMQVJfVU5LTk9XTiImJmEhPT0iQ09OTl9VTktOT1dOIiYmKGI9YSk7aWYoYiE9PSJDT05OX1VOS05PV04iKXJldHVybiBiO2lmKGEhPT0iQ09OTl9VTktOT1dOIilyZXR1cm4gYX19O18uVWo9ZnVuY3Rpb24oKXt2YXIgYT1RaigpO2lmKGE/LmVmZmVjdGl2ZVR5cGUpcmV0dXJuIFRqLmhhc093blByb3BlcnR5KGEuZWZmZWN0aXZlVHlwZSk/VGpbYS5lZmZlY3RpdmVUeXBlXToiRUZGRUNUSVZFX0NPTk5FQ1RJT05fVFlQRV9VTktOT1dOIn07Xy5Xaj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gXy5WaigpLCEwfWNhdGNoKGEpe3JldHVybiExfX07Cl8uVmo9ZnVuY3Rpb24oYT0idW5rbm93biIpe2lmKF8udygiREFUQVNZTkNfSUQiKSE9PXZvaWQgMClyZXR1cm4gXy53KCJEQVRBU1lOQ19JRCIpO3Rocm93IG5ldyBfLlhqKCJEYXRhc3luYyBJRCBub3Qgc2V0IixhKTt9O18uWWo9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5qZi5HYShhLDAsYil9O1pqPWZ1bmN0aW9uKGEsYil7dHJ5e2IoKX1jYXRjaChjKXthLkpiKGMpfX07Yms9ZnVuY3Rpb24oYSl7dmFyIGI9Xy54KCJlbmFibGVfc2NoZWR1bGVyX3NpbXVsYXRlX3JhZiIpO2lmKGEub1s4XS5sZW5ndGgpe2lmKGEuaGEpcmV0dXJuIDQ7aWYoYil7aWYoIWEuaXNIaWRkZW4oKSlyZXR1cm4gYS5aPzM6NX1lbHNlIGlmKGFrKGEpKXJldHVybiAzfWZvcihsZXQgYz01O2M+PWEuQjtjLS0paWYoYS5vW2NdLmxlbmd0aD4wKXJldHVybiBjPjA/Yj9hLmlzSGlkZGVuKCk/MjphLlo/Mzo1OmFrKGEpPzM6MjoxO3JldHVybiAwfTsKY2s9ZnVuY3Rpb24oYSl7YS5nYS5sZW5ndGg9MDtmb3IobGV0IGI9NTtiPj0wO2ItLSlhLm9bYl0ubGVuZ3RoPTA7YS5vWzhdLmxlbmd0aD0wO2Eudj17fTthLnN0b3AoKX07YWs9ZnVuY3Rpb24oYSl7cmV0dXJuIWEuaXNIaWRkZW4oKSYmYS5afTtlaz1mdW5jdGlvbihhKXtmb3IobGV0IGIgb2YgZGspaWYoYS5vW2JdLmxlbmd0aClyZXR1cm4hMDtyZXR1cm4hMX07CmhrPWZ1bmN0aW9uKGEsYixjKXthLmhhJiZhLkk9PT00JiZhLmp8fGEuc3RvcCgpO2EuRD0hMDtiPV8uRWEoKSsoYnx8YS5NKTtmb3IodmFyIGQ9YS5vWzVdO2QubGVuZ3RoOyl7dmFyIGU9ZC5zaGlmdCgpLGY9YS52W2VdO2RlbGV0ZSBhLnZbZV07aWYoZil7ZT1hO3RyeXtmKGMpfWNhdGNoKGgpe2UuSmIoaCl9fX1mb3IoZD1hLm9bNF07ZC5sZW5ndGg7KWM9ZC5zaGlmdCgpLGY9YS52W2NdLGRlbGV0ZSBhLnZbY10sZiYmWmooYSxmKTtkPWEueWE/MDoxO2Q9YS5CPmQ/YS5COmQ7aWYoIShfLkVhKCk+PWIpKXtkb3thOntjPWE7Zj1kO2ZvcihlPTM7ZT49ZjtlLS0pe2xldCBoPWMub1tlXTtmb3IoO2gubGVuZ3RoOyl7bGV0IGs9aC5zaGlmdCgpLGw9Yy52W2tdO2RlbGV0ZSBjLnZba107aWYobCl7Yz1sO2JyZWFrIGF9fX1jPW51bGx9YyYmWmooYSxjKX13aGlsZShjJiZfLkVhKCk8Yil9YS5EPSExO2ZrKGEpO2EuTT1naztlayhhKSYmYS5zdGFydCgpfTsKaWs9ZnVuY3Rpb24oYSl7YS5zdG9wKCk7YS5EPSEwO2Zvcih2YXIgYj1fLkVhKCksYz1hLm9bOF07Yy5sZW5ndGg7KXtsZXQgZD1jLnNoaWZ0KCksZT1hLnZbZF07ZGVsZXRlIGEudltkXTtlJiZaaihhLGUpfWZrKGEpO2EuRD0hMTtlayhhKSYmYS5zdGFydCgpO2I9Xy5FYSgpLWI7YS5NLT1ifTtmaz1mdW5jdGlvbihhKXtmb3IobGV0IGI9MCxjPWEuZ2EubGVuZ3RoO2I8YztiKyspe2xldCBkPWEuZ2FbYl07YS5vW2QucHJpb3JpdHldLnB1c2goZC5pZCl9YS5nYS5sZW5ndGg9MH07a2s9ZnVuY3Rpb24oKXt2YXIgYT1fLnNhKCJ5dGdsb2JhbC5zY2hlZHVsZXJJbnN0YW5jZUluc3RhbmNlXyIpO2lmKCFhfHxhLmlhKCkpYT1uZXcgamsoXy53KCJzY2hlZHVsZXIiKXx8e30pLF8ucmEoInl0Z2xvYmFsLnNjaGVkdWxlckluc3RhbmNlSW5zdGFuY2VfIixhKTtyZXR1cm4gYX07Cm1rPWZ1bmN0aW9uKCl7bGsoKTt2YXIgYT1fLnNhKCJ5dGdsb2JhbC5zY2hlZHVsZXJJbnN0YW5jZUluc3RhbmNlXyIpO2EmJihfLlpkKGEpLF8ucmEoInl0Z2xvYmFsLnNjaGVkdWxlckluc3RhbmNlSW5zdGFuY2VfIixudWxsKSl9O2xrPWZ1bmN0aW9uKCl7Y2soa2soKSk7Zm9yKGxldCBhIGluIG5rKW5rLmhhc093blByb3BlcnR5KGEpJiZkZWxldGUgbmtbTnVtYmVyKGEpXX07b2s9ZnVuY3Rpb24oYSxiLGMpe2lmKCFjKXJldHVybiBjPWM9PT12b2lkIDAsLWtrKCkuR2EoYSxiLGMpO3ZhciBkPXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57dmFyIGU9a2soKS5HYShhLGIpO25rW2RdPWV9LGMpO3JldHVybiBkfTtwaz1mdW5jdGlvbihhKXtraygpLlUoYSl9O3FrPWZ1bmN0aW9uKGEpe3ZhciBiPWtrKCk7aWYoYTwwKWIuQWEoLWEpO2Vsc2V7dmFyIGM9bmtbYV07Yz8oYi5BYShjKSxkZWxldGUgbmtbYV0pOndpbmRvdy5jbGVhclRpbWVvdXQoYSl9fTtzaz1mdW5jdGlvbigpe3JrKCl9Owpyaz1mdW5jdGlvbigpe3dpbmRvdy5jbGVhclRpbWVvdXQodGspO2trKCkuc3RhcnQoKX07dms9ZnVuY3Rpb24oKXtraygpLnBhdXNlKCk7d2luZG93LmNsZWFyVGltZW91dCh0ayk7dGs9d2luZG93LnNldFRpbWVvdXQoc2ssdWspfTt5az1mdW5jdGlvbigpe3dpbmRvdy5jbGVhclRpbWVvdXQod2spO3drPXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57eGsoMCl9LHVrKX07eGs9ZnVuY3Rpb24oYSl7eWsoKTt2YXIgYj1raygpO2IuQj1hO2Iuc3RhcnQoKX07ems9ZnVuY3Rpb24oYSl7eWsoKTt2YXIgYj1raygpO2IuQj5hJiYoYi5CPWEsYi5zdGFydCgpKX07QWs9ZnVuY3Rpb24oKXt3aW5kb3cuY2xlYXJUaW1lb3V0KHdrKTt2YXIgYT1raygpO2EuQj0wO2Euc3RhcnQoKX07Xy5Daz1mdW5jdGlvbigpe0JrLmluc3RhbmNlfHwoQmsuaW5zdGFuY2U9bmV3IEJrKTtyZXR1cm4gQmsuaW5zdGFuY2V9OwpFaz1mdW5jdGlvbigpe3JldHVybiBEaygpPy5nZXQoIkxBU1RfUkVTVUxUX0VOVFJZX0tFWSIsITApfTtfLklrPWZ1bmN0aW9uKGEpe0ZrfHwoXy5Haz9fLkdrLkpiKGEpOihfLkhrLnB1c2goe3R5cGU6IkVSUk9SIixwYXlsb2FkOmF9KSxfLkhrLmxlbmd0aD4xMCYmXy5Iay5zaGlmdCgpKSl9O0prPWZ1bmN0aW9uKGEsYil7Rmt8fChfLkdrP18uR2subG0oYSxiKTooXy5Iay5wdXNoKHt0eXBlOiJFVkVOVCIsZXZlbnRUeXBlOmEscGF5bG9hZDpifSksXy5Iay5sZW5ndGg+MTAmJl8uSGsuc2hpZnQoKSkpfTtLaz1mdW5jdGlvbihhKXtpZihhLmluZGV4T2YoIjoiKT49MCl0aHJvdyBFcnJvcigiaGEiKTt9O0xrPWZ1bmN0aW9uKGEpe3JldHVybiBhLnN1YnN0cigwLGEuaW5kZXhPZigiOiIpKXx8YX07Xy5Naz1mdW5jdGlvbihhKXt2YXIgYj1fLmJjKCk7cmV0dXJuIGI/Yi50b0xvd2VyQ2FzZSgpLmluZGV4T2YoYSk+PTA6ITF9OwpSaz1mdW5jdGlvbihhLGIsYyxkKXtiPUxrKGIpO3ZhciBlPWEgaW5zdGFuY2VvZiBFcnJvcj9hOkVycm9yKCJpYWAiK2EpO2lmKGUgaW5zdGFuY2VvZiBOaylyZXR1cm4gZTthPXtvYmplY3RTdG9yZU5hbWVzOmMsZGJOYW1lOmIsZGJWZXJzaW9uOmR9O2lmKGUubmFtZT09PSJRdW90YUV4Y2VlZGVkRXJyb3IiKXJldHVybiBuZXcgTmsoIlFVT1RBX0VYQ0VFREVEIixhKTtpZihfLk9rJiZlLm5hbWU9PT0iVW5rbm93bkVycm9yIilyZXR1cm4gbmV3IE5rKCJRVU9UQV9NQVlCRV9FWENFRURFRCIsYSk7aWYoZSBpbnN0YW5jZW9mIFBrKXJldHVybiBuZXcgTmsoIk1JU1NJTkdfSU5ERVgiLHsuLi5hLG9iamVjdFN0b3JlOmUub2JqZWN0U3RvcmUsaW5kZXg6ZS5pbmRleH0pO2lmKGUubmFtZT09PSJJbnZhbGlkU3RhdGVFcnJvciImJlFrLnNvbWUoZj0+ZS5tZXNzYWdlLmluY2x1ZGVzKGYpKSlyZXR1cm4gbmV3IE5rKCJFWEVDVVRFX1RSQU5TQUNUSU9OX09OX0NMT1NFRF9EQiIsYSk7aWYoZS5uYW1lPT09CiJBYm9ydEVycm9yIilyZXR1cm4gbmV3IE5rKCJVTktOT1dOX0FCT1JUIixhLGUubWVzc2FnZSk7ZS5hcmdzPVt7Li4uYSxuYW1lOiJJZGJFcnJvciIsTW06ZS5uYW1lfV07ZS5sZXZlbD0iV0FSTklORyI7cmV0dXJuIGV9O1NrPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1FaygpO3JldHVybiBuZXcgTmsoIklEQl9OT1RfU1VQUE9SVEVEIix7Y29udGV4dDp7Y2FsbGVyOmEscHVibGljTmFtZTpiLHZlcnNpb246YyxoYXNTdWNjZWVkZWRPbmNlOmQ/Lmhhc1N1Y2NlZWRlZE9uY2V9fSl9O1RrPWZ1bmN0aW9uKGEpe2lmKCFhKXRocm93IEVycm9yKCk7dGhyb3cgYTt9O1VrPWZ1bmN0aW9uKGEpe3JldHVybiBhfTtYaz1mdW5jdGlvbihhLGIsYyxkLGUpe3RyeXtpZihhLnN0YXRlLnN0YXR1cyE9PSJGVUxGSUxMRUQiKXRocm93IEVycm9yKCJqYSIpO2xldCBmPWMoYS5zdGF0ZS52YWx1ZSk7ZiBpbnN0YW5jZW9mIF8uVms/V2soYSxiLGYsZCxlKTpkKGYpfWNhdGNoKGYpe2UoZil9fTsKWWs9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0cnl7aWYoYS5zdGF0ZS5zdGF0dXMhPT0iUkVKRUNURUQiKXRocm93IEVycm9yKCJrYSIpO2xldCBmPWMoYS5zdGF0ZS5yZWFzb24pO2YgaW5zdGFuY2VvZiBfLlZrP1drKGEsYixmLGQsZSk6ZChmKX1jYXRjaChmKXtlKGYpfX07V2s9ZnVuY3Rpb24oYSxiLGMsZCxlKXtiPT09Yz9lKG5ldyBUeXBlRXJyb3IoImxhIikpOmMudGhlbihmPT57ZiBpbnN0YW5jZW9mIF8uVms/V2soYSxiLGYsZCxlKTpkKGYpfSxmPT57ZShmKX0pfTtaaz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9KCk9Pnt0cnl7YS5yZW1vdmVFdmVudExpc3RlbmVyKCJzdWNjZXNzIixlKSxhLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixmKX1jYXRjaHt9fSxlPSgpPT57YihhLnJlc3VsdCk7ZCgpfSxmPSgpPT57YyhhLmVycm9yKTtkKCl9O2EuYWRkRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsZSk7YS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZil9Owokaz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IFByb21pc2UoKGIsYyk9PntaayhhLGIsYyl9KX07Ymw9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBfLlZrKG5ldyBhbCgoYixjKT0+e1prKGEsYixjKX0pKX07Y2w9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IF8uVmsobmV3IGFsKChjLGQpPT57dmFyIGU9KCk9Pnt2YXIgZj1hP2IoYSk6bnVsbDtmP2YudGhlbihoPT57YT1oO2UoKX0sZCk6YygpfTtlKCl9KSl9O2RsPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueCgiaWRiX2ltbWVkaWF0ZV9jb21taXQiKX07Cl8uaWw9YXN5bmMgZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e21vZGU6InJlYWRvbmx5IixrYjohMSx0YWc6IklEQl9UUkFOU0FDVElPTl9UQUdfVU5LTk9XTiJ9O3R5cGVvZiBjPT09InN0cmluZyI/ZS5tb2RlPWM6T2JqZWN0LmFzc2lnbihlLGMpO2EudHJhbnNhY3Rpb25Db3VudCsrO2M9ZS5rYj8zOjE7Zm9yKHZhciBmPTAsaDshaDspe2YrKztsZXQgbj1NYXRoLnJvdW5kKCgwLF8uZWwpKCkpO3RyeXt2YXIgaz1hLmoudHJhbnNhY3Rpb24oYixlLm1vZGUpLGw9ZCxtPSEhZS5jb21taXQ7bGV0IHA9bmV3IGZsKGspLHI9YXdhaXQgZ2wocCxsLG0pLHQ9TWF0aC5yb3VuZCgoMCxfLmVsKSgpKTtobChhLG4sdCxmLHZvaWQgMCxiLmpvaW4oKSxlKTtyZXR1cm4gcn1jYXRjaChwKXtsPU1hdGgucm91bmQoKDAsXy5lbCkoKSk7bGV0IHI9UmsocCxhLmoubmFtZSxiLmpvaW4oKSxhLmoudmVyc2lvbik7aWYociBpbnN0YW5jZW9mIE5rJiYhci5qfHxmPj1jKWhsKGEsbixsLGYscixiLmpvaW4oKSwKZSksaD1yfX1yZXR1cm4gUHJvbWlzZS5yZWplY3QoaCl9O18ua2w9ZnVuY3Rpb24oYSxiLGMpe2E9YS5qLmNyZWF0ZU9iamVjdFN0b3JlKGIsYyk7cmV0dXJuIG5ldyBqbChhKX07Xy5tbD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uaWwoYSxbYl0se21vZGU6InJlYWR3cml0ZSIsa2I6ITAsY29tbWl0OmRsKCl9LGQ9Pl8ubGwoZC5vYmplY3RTdG9yZShiKSxjKSl9OwpobD1mdW5jdGlvbihhLGIsYyxkLGUsZixoKXtiPWMtYjtlPyhlIGluc3RhbmNlb2YgTmsmJihlLnR5cGU9PT0iUVVPVEFfRVhDRUVERUQifHxlLnR5cGU9PT0iUVVPVEFfTUFZQkVfRVhDRUVERUQiKSYmSmsoIlFVT1RBX0VYQ0VFREVEIix7ZGJOYW1lOkxrKGEuai5uYW1lKSxvYmplY3RTdG9yZU5hbWVzOmYsdHJhbnNhY3Rpb25Db3VudDphLnRyYW5zYWN0aW9uQ291bnQsdHJhbnNhY3Rpb25Nb2RlOmgubW9kZX0pLGUgaW5zdGFuY2VvZiBOayYmZS50eXBlPT09IlVOS05PV05fQUJPUlQiJiYoYy09YS52LGM8MCYmYz49MjE0NzQ4MzY0OCYmKGM9MCksSmsoIlRSQU5TQUNUSU9OX1VORVhQRUNURURMWV9BQk9SVEVEIix7b2JqZWN0U3RvcmVOYW1lczpmLHRyYW5zYWN0aW9uRHVyYXRpb246Yix0cmFuc2FjdGlvbkNvdW50OmEudHJhbnNhY3Rpb25Db3VudCxkYkR1cmF0aW9uOmN9KSxhLm89ITApLG5sKGEsITEsZCxmLGIsaC50YWcpLF8uSWsoZSkpOm5sKGEsITAsZCxmLGIsaC50YWcpfTsKbmw9ZnVuY3Rpb24oYSxiLGMsZCxlLGY9IklEQl9UUkFOU0FDVElPTl9UQUdfVU5LTk9XTiIpe0prKCJUUkFOU0FDVElPTl9FTkRFRCIse29iamVjdFN0b3JlTmFtZXM6ZCxjb25uZWN0aW9uSGFzVW5rbm93bkFib3J0ZWRUcmFuc2FjdGlvbjphLm8sZHVyYXRpb246ZSxpc1N1Y2Nlc3NmdWw6Yix0cnlDb3VudDpjLHRhZzpmfSl9O18ubGw9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYmwoYS5qLnB1dChiLHZvaWQgMCkpfTtfLm9sPWZ1bmN0aW9uKGEsYixjKXthLmouY3JlYXRlSW5kZXgoYixjLHt1bmlxdWU6ITF9KX07cWw9ZnVuY3Rpb24oYSxiLGMpe2E9YS5qLm9wZW5DdXJzb3IoYi5xdWVyeSxiLmRpcmVjdGlvbik7cmV0dXJuIHBsKGEpLnRoZW4oZD0+Y2woZCxjKSl9O3NsPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHFsKGEse3F1ZXJ5OmJ9LGM9PmMuZGVsZXRlKCkudGhlbigoKT0+cmwoYykpKS50aGVuKCgpPT57fSl9Owp0bD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W107cmV0dXJuIHFsKGEse3F1ZXJ5OmJ9LGU9PntpZighKGMhPT12b2lkIDAmJmQubGVuZ3RoPj1jKSlyZXR1cm4gZC5wdXNoKGUuY3Vyc29yLnZhbHVlKSxybChlKX0pLnRoZW4oKCk9PmQpfTtnbD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bmV3IFByb21pc2UoKGUsZik9Pnt0cnl7bGV0IGg9YihhKTtjJiZhLmNvbW1pdCgpO2gudGhlbihrPT57ZShrKX0pLmNhdGNoKGYpfWNhdGNoKGgpe2YoaCksYS5hYm9ydCgpfX0pO3JldHVybiBQcm9taXNlLmFsbChbZCxhLmRvbmVdKS50aGVuKChbZV0pPT5lKX07dWw9ZnVuY3Rpb24oYSxiLGMpe3ZhciB7cXVlcnk6ZD1udWxsLGRpcmVjdGlvbjplPSJuZXh0In09YjthPWEuai5vcGVuQ3Vyc29yKGQsZSk7cmV0dXJuIHBsKGEpLnRoZW4oZj0+Y2woZixjKSl9Owp2bD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W107cmV0dXJuIHVsKGEse3F1ZXJ5OmJ9LGU9PntpZighKGMhPT12b2lkIDAmJmQubGVuZ3RoPj1jKSlyZXR1cm4gZC5wdXNoKGUuY3Vyc29yLnZhbHVlKSxybChlKX0pLnRoZW4oKCk9PmQpfTtwbD1mdW5jdGlvbihhKXtyZXR1cm4gYmwoYSkudGhlbihiPT5iP25ldyB3bChhLGIpOm51bGwpfTtybD1mdW5jdGlvbihhKXthLmN1cnNvci5jb250aW51ZSh2b2lkIDApO3JldHVybiBwbChhLnJlcXVlc3QpfTsKeWw9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuZXcgUHJvbWlzZSgoZCxlKT0+e3ZhciBmPWIhPT12b2lkIDA/c2VsZi5pbmRleGVkREIub3BlbihhLGIpOnNlbGYuaW5kZXhlZERCLm9wZW4oYSk7dmFyIGg9Yy5ibG9ja2VkLGs9Yy5ibG9ja2luZyxsPWMuVEEsbT1jLnVwZ3JhZGUsbj1jLmNsb3NlZCxwLHI9KCk9PntwfHwocD1uZXcgeGwoZi5yZXN1bHQse2Nsb3NlZDpufSkpO3JldHVybiBwfTtmLmFkZEV2ZW50TGlzdGVuZXIoInVwZ3JhZGVuZWVkZWQiLHQ9Pnt0cnl7aWYodC5uZXdWZXJzaW9uPT09bnVsbCl0aHJvdyBFcnJvcigibmEiKTtpZihmLnRyYW5zYWN0aW9uPT09bnVsbCl0aHJvdyBFcnJvcigib2EiKTt0LmRhdGFMb3NzJiZ0LmRhdGFMb3NzIT09Im5vbmUiJiZKaygiSURCX0RBVEFfQ09SUlVQVEVEIix7cmVhc29uOnQuZGF0YUxvc3NNZXNzYWdlfHwidW5rbm93biByZWFzb24iLGRiTmFtZTpMayhhKX0pO2xldCB2PXIoKSx6PW5ldyBmbChmLnRyYW5zYWN0aW9uKTttJiYKbSh2LEU9PnQub2xkVmVyc2lvbjxFJiZ0Lm5ld1ZlcnNpb24+PUUseik7ei5kb25lLmNhdGNoKEU9PntlKEUpfSl9Y2F0Y2godil7ZSh2KX19KTtmLmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLCgpPT57dmFyIHQ9Zi5yZXN1bHQ7ayYmdC5hZGRFdmVudExpc3RlbmVyKCJ2ZXJzaW9uY2hhbmdlIiwoKT0+e2socigpKX0pO3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCgpPT57SmsoIklEQl9VTkVYUEVDVEVETFlfQ0xPU0VEIix7ZGJOYW1lOkxrKGEpLGRiVmVyc2lvbjp0LnZlcnNpb259KTtsJiZsKCl9KTtkKHIoKSl9KTtmLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+e2UoZi5lcnJvcil9KTtoJiZmLmFkZEV2ZW50TGlzdGVuZXIoImJsb2NrZWQiLCgpPT57aCgpfSl9KX07emw9ZnVuY3Rpb24oYSxiLGM9e30pe3JldHVybiB5bChhLGIsYyl9OwpfLkFsPWFzeW5jIGZ1bmN0aW9uKGEsYj17fSl7dHJ5e2xldCBjPXNlbGYuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGEpLGQ9Yi5ibG9ja2VkO2QmJmMuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIsKCk9PntkKCl9KTthd2FpdCAkayhjKX1jYXRjaChjKXt0aHJvdyBSayhjLGEsIiIsLTEpO319O0JsPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBOaygiSU5DT01QQVRJQkxFX0RCX1ZFUlNJT04iLHtkYk5hbWU6YS5uYW1lLG9sZFZlcnNpb246YS5vcHRpb25zLnZlcnNpb24sbmV3VmVyc2lvbjpifSl9O18uQ2w9ZnVuY3Rpb24oYSxiKXtpZighYil0aHJvdyBTaygib3BlbldpdGhUb2tlbiIsTGsoYS5uYW1lKSk7cmV0dXJuIGEub3BlbigpfTsKRWw9YXN5bmMgZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5pbChhd2FpdCBfLkNsKERsLGIpLFsiZGF0YWJhc2VzIl0se2tiOiEwLG1vZGU6InJlYWR3cml0ZSJ9LGM9Pnt2YXIgZD1jLm9iamVjdFN0b3JlKCJkYXRhYmFzZXMiKTtyZXR1cm4gZC5nZXQoYS5hY3R1YWxOYW1lKS50aGVuKGU9PntpZihlP2EuYWN0dWFsTmFtZSE9PWUuYWN0dWFsTmFtZXx8YS5wdWJsaWNOYW1lIT09ZS5wdWJsaWNOYW1lfHxhLnVzZXJJZGVudGlmaWVyIT09ZS51c2VySWRlbnRpZmllcjoxKXJldHVybiBfLmxsKGQsYSkudGhlbigoKT0+e30pfSl9KX07Xy5GbD1hc3luYyBmdW5jdGlvbihhLGIpe3JldHVybiBhPyhhd2FpdCBfLkNsKERsLGIpKS5kZWxldGUoImRhdGFiYXNlcyIsYSk6dm9pZCAwfTsKXy5HbD1hc3luYyBmdW5jdGlvbihhLGIpe3ZhciBjPVtdO2I9YXdhaXQgXy5DbChEbCxiKTthd2FpdCBfLmlsKGIsWyJkYXRhYmFzZXMiXSx7a2I6ITAsbW9kZToicmVhZG9ubHkifSxkPT57Yy5sZW5ndGg9MDtyZXR1cm4gcWwoZC5vYmplY3RTdG9yZSgiZGF0YWJhc2VzIikse30sZT0+e2EoZS5jdXJzb3IudmFsdWUpJiZjLnB1c2goZS5jdXJzb3IudmFsdWUpO3JldHVybiBybChlKX0pfSk7cmV0dXJuIGN9O0hsPWZ1bmN0aW9uKGEpe3JldHVybiBfLkdsKGI9PmIucHVibGljTmFtZT09PSJMb2dzRGF0YWJhc2VWMiImJmIudXNlcklkZW50aWZpZXIhPT12b2lkIDAsYSl9OwpMbD1hc3luYyBmdW5jdGlvbigpe2lmKEVrKCk/Lmhhc1N1Y2NlZWRlZE9uY2UpcmV0dXJuITA7dmFyIGE7aWYoYT1fLklsKWE9L1dlYktpdFwvKFswLTldKykvLmV4ZWMoXy5iYygpKSxhPSEhKGEmJnBhcnNlSW50KGFbMV0sMTApPj02MDApO2EmJihhPS9XZWJLaXRcLyhbMC05XSspLy5leGVjKF8uYmMoKSksYT0hKGEmJnBhcnNlSW50KGFbMV0sMTApPj02MDIpKTtpZighKGE9YXx8Xy5KbCkpe3RyeXthPXNlbGY7dmFyIGI9ISEoYS5pbmRleGVkREImJmEuSURCSW5kZXgmJmEuSURCS2V5UmFuZ2UmJmEuSURCT2JqZWN0U3RvcmUpfWNhdGNoKGMpe2I9ITF9YT0hYn1pZihhfHwhKCJJREJUcmFuc2FjdGlvbiJpbiBzZWxmJiYib2JqZWN0U3RvcmVOYW1lcyJpbiBJREJUcmFuc2FjdGlvbi5wcm90b3R5cGUpKXJldHVybiExO3RyeXtyZXR1cm4gYXdhaXQgRWwoe2FjdHVhbE5hbWU6Inl0LWlkYi10ZXN0LWRvLW5vdC11c2UiLHB1YmxpY05hbWU6Inl0LWlkYi10ZXN0LWRvLW5vdC11c2UiLAp1c2VySWRlbnRpZmllcjp2b2lkIDB9LEtsKSxhd2FpdCBfLkZsKCJ5dC1pZGItdGVzdC1kby1ub3QtdXNlIixLbCksITB9Y2F0Y2goYyl7cmV0dXJuITF9fTtObD1mdW5jdGlvbigpe2lmKE1sIT09dm9pZCAwKXJldHVybiBNbDtGaz0hMDtyZXR1cm4gTWw9TGwoKS50aGVuKGE9PntGaz0hMTtpZihEaygpPy5vKCkpe3ZhciBiPXtoYXNTdWNjZWVkZWRPbmNlOkVrKCk/Lmhhc1N1Y2NlZWRlZE9uY2V8fGF9O0RrKCk/LnNldCgiTEFTVF9SRVNVTFRfRU5UUllfS0VZIixiLDI1OTJFMywhMCl9cmV0dXJuIGF9KX07T2w9ZnVuY3Rpb24oKXtyZXR1cm4gXy5zYSgieXRnbG9iYWwuaWRiVG9rZW5fIil8fHZvaWQgMH07Xy5QbD1mdW5jdGlvbigpe3ZhciBhPU9sKCk7cmV0dXJuIGE/UHJvbWlzZS5yZXNvbHZlKGEpOk5sKCkudGhlbihiPT57Yj8oXy5yYSgieXRnbG9iYWwuaWRiVG9rZW5fIixLbCksYj1LbCk6Yj12b2lkIDA7cmV0dXJuIGJ9KX07ClFsPWZ1bmN0aW9uKGEpe2lmKCFfLldqKCkpdGhyb3cgYT1uZXcgTmsoIkFVVEhfSU5WQUxJRCIse2RiTmFtZTphfSksXy5JayhhKSxhO3ZhciBiPV8uVmooKTtyZXR1cm57YWN0dWFsTmFtZTpgJHthfToke2J9YCxwdWJsaWNOYW1lOmEsdXNlcklkZW50aWZpZXI6Yn19OwpSbD1hc3luYyBmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1FcnJvcigpLnN0YWNrPz8iIixmPWF3YWl0IF8uUGwoKTtpZighZil0aHJvdyBiPVNrKCJvcGVuRGJJbXBsIixhLGIpLF8ueCgieXRpZGJfYXN5bmNfc3RhY2tfa2lsbHN3aXRjaCIpfHwoYi5zdGFjaz1gJHtiLnN0YWNrfVxuJHtlLnN1YnN0cmluZyhlLmluZGV4T2YoIlxuIikrMSl9YCksXy5JayhiKSxiO0trKGEpO2U9Yz97YWN0dWFsTmFtZTphLHB1YmxpY05hbWU6YSx1c2VySWRlbnRpZmllcjp2b2lkIDB9OlFsKGEpO3RyeXtyZXR1cm4gYXdhaXQgRWwoZSxmKSxhd2FpdCB6bChlLmFjdHVhbE5hbWUsYixkKX1jYXRjaChoKXt0cnl7YXdhaXQgXy5GbChlLmFjdHVhbE5hbWUsZil9Y2F0Y2h7fXRocm93IGg7fX07U2w9ZnVuY3Rpb24oYSxiLGM9e30pe3JldHVybiBSbChhLGIsITEsYyl9O1RsPWZ1bmN0aW9uKGEsYixjPXt9KXtyZXR1cm4gUmwoYSxiLCEwLGMpfTsKVWw9YXN5bmMgZnVuY3Rpb24oYSxiPXt9KXt2YXIgYz1hd2FpdCBfLlBsKCk7YyYmKEtrKGEpLGE9UWwoYSksYXdhaXQgXy5BbChhLmFjdHVhbE5hbWUsYiksYXdhaXQgXy5GbChhLmFjdHVhbE5hbWUsYykpfTtWbD1mdW5jdGlvbihhLGIsYyl7YT1hLm1hcChhc3luYyBkPT57YXdhaXQgXy5BbChkLmFjdHVhbE5hbWUsYik7YXdhaXQgXy5GbChkLmFjdHVhbE5hbWUsYyl9KTtyZXR1cm4gUHJvbWlzZS5hbGwoYSkudGhlbigoKT0+e30pfTtXbD1hc3luYyBmdW5jdGlvbigpe3ZhciBhPXt9LGI9YXdhaXQgXy5QbCgpO2lmKGIpe0trKCJMb2dzRGF0YWJhc2VWMiIpO3ZhciBjPWF3YWl0IEhsKGIpO2F3YWl0IFZsKGMsYSxiKX19O1hsPWFzeW5jIGZ1bmN0aW9uKGEsYj17fSl7dmFyIGM9YXdhaXQgXy5QbCgpO2MmJihLayhhKSxhd2FpdCBfLkFsKGEsYiksYXdhaXQgXy5GbChhLGMpKX07Wmw9ZnVuY3Rpb24oYSxiKXt2YXIgYztyZXR1cm4oKT0+e2N8fChjPW5ldyBZbChhLGIpKTtyZXR1cm4gY319OwpfLiRsPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFpsKGEsYil9O2JtPWZ1bmN0aW9uKGEpe3JldHVybiBfLkNsKGFtKCksYSl9O2NtPWFzeW5jIGZ1bmN0aW9uKGEsYixjKXthPXtjb25maWc6YSxoYXNoRGF0YTpiLHRpbWVzdGFtcDooMCxfLmVsKSgpfTtjPWF3YWl0IGJtKGMpO2F3YWl0IGMuY2xlYXIoImhvdENvbmZpZ1N0b3JlIik7cmV0dXJuIGF3YWl0IF8ubWwoYywiaG90Q29uZmlnU3RvcmUiLGEpfTtkbT1hc3luYyBmdW5jdGlvbihhLGIsYyxkKXthPXtjb25maWc6YSxoYXNoRGF0YTpiLGNvbmZpZ0RhdGE6Yyx0aW1lc3RhbXA6KDAsXy5lbCkoKX07ZD1hd2FpdCBibShkKTthd2FpdCBkLmNsZWFyKCJjb2xkQ29uZmlnU3RvcmUiKTtyZXR1cm4gYXdhaXQgXy5tbChkLCJjb2xkQ29uZmlnU3RvcmUiLGEpfTsKZW09YXN5bmMgZnVuY3Rpb24oYSl7YT1hd2FpdCBibShhKTt2YXIgYj12b2lkIDA7YXdhaXQgXy5pbChhLFsiY29sZENvbmZpZ1N0b3JlIl0se21vZGU6InJlYWR3cml0ZSIsa2I6ITB9LGM9PnVsKGMub2JqZWN0U3RvcmUoImNvbGRDb25maWdTdG9yZSIpLmluZGV4KCJjb2xkVGltZXN0YW1wSW5kZXgiKSx7ZGlyZWN0aW9uOiJwcmV2In0sZD0+e2I9ZC5jdXJzb3IudmFsdWV9KSk7cmV0dXJuIGJ9O2ZtPWFzeW5jIGZ1bmN0aW9uKGEpe2E9YXdhaXQgYm0oYSk7dmFyIGI9dm9pZCAwO2F3YWl0IF8uaWwoYSxbImhvdENvbmZpZ1N0b3JlIl0se21vZGU6InJlYWR3cml0ZSIsa2I6ITB9LGM9PnVsKGMub2JqZWN0U3RvcmUoImhvdENvbmZpZ1N0b3JlIikuaW5kZXgoImhvdFRpbWVzdGFtcEluZGV4Iikse2RpcmVjdGlvbjoicHJldiJ9LGQ9PntiPWQuY3Vyc29yLnZhbHVlfSkpO3JldHVybiBifTsKZ209YXN5bmMgZnVuY3Rpb24oYSxiLGMpe2lmKF8ueCgic3RhcnRfY2xpZW50X2djZiIpKXtjJiYoYS52PWMsXy5yYSgieXQuZ2NmLmNvbmZpZy5ob3RDb25maWdHcm91cCIsYS52fHxudWxsKSk7YS5CKGIpO2xldCBkPU9sKCk7ZCYmKGN8fChjPShhd2FpdCBmbShkKSk/LmNvbmZpZyksYXdhaXQgY20oYyxiLGQpKTtpZihjKXthPWEubztmb3IobGV0IGUgb2YgYS5qKWUoYyl9fX07aG09YXN5bmMgZnVuY3Rpb24oYSxiLGMpe18ueCgic3RhcnRfY2xpZW50X2djZiIpJiYoYS5jb2xkSGFzaERhdGE9YixfLnJhKCJ5dC5nY2YuY29uZmlnLmNvbGRIYXNoRGF0YSIsYS5jb2xkSGFzaERhdGF8fG51bGwpLGE9T2woKSkmJihjfHwoYz0oYXdhaXQgZW0oYSkpPy5jb25maWcpLGMmJmF3YWl0IGRtKGMsYixjLmNvbmZpZ0RhdGEsYSkpfTsKXy5qbT1mdW5jdGlvbigpe2lmKCFpbS5pbnN0YW5jZSl7dmFyIGE9bmV3IGltO2ltLmluc3RhbmNlPWF9YT1pbS5pbnN0YW5jZTt2YXIgYj0oMCxfLmVsKSgpLWEuajtpZighKGEuaiE9PTAmJmI8Xy5zaigic2VuZF9jb25maWdfaGFzaF90aW1lciIpKSl7Yj1fLnNhKCJ5dC5nY2YuY29uZmlnLmNvbGRDb25maWdEYXRhIik7dmFyIGM9Xy5zYSgieXQuZ2NmLmNvbmZpZy5ob3RIYXNoRGF0YSIpLGQ9Xy5zYSgieXQuZ2NmLmNvbmZpZy5jb2xkSGFzaERhdGEiKTtiJiZjJiZkJiYoYS5qPSgwLF8uZWwpKCkpO3JldHVybntjb2xkQ29uZmlnRGF0YTpiLGhvdEhhc2hEYXRhOmMsY29sZEhhc2hEYXRhOmR9fX07a209ZnVuY3Rpb24oKXtyZXR1cm4iSU5ORVJUVUJFX0FQSV9LRVkiaW4gXy5QaSYmIklOTkVSVFVCRV9BUElfVkVSU0lPTiJpbiBfLlBpfTsKbG09ZnVuY3Rpb24oKXtyZXR1cm57aW5uZXJ0dWJlQXBpS2V5Ol8udygiSU5ORVJUVUJFX0FQSV9LRVkiKSxpbm5lcnR1YmVBcGlWZXJzaW9uOl8udygiSU5ORVJUVUJFX0FQSV9WRVJTSU9OIiksd3g6Xy53KCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfQ09ORklHX0lORk8iKSxtcTpfLncoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9OQU1FIiwiV0VCIikscUo6Xy53KCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsMSksaW5uZXJ0dWJlQ29udGV4dENsaWVudFZlcnNpb246Xy53KCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfVkVSU0lPTiIpLHl4Ol8udygiSU5ORVJUVUJFX0NPTlRFWFRfSEwiKSx4eDpfLncoIklOTkVSVFVCRV9DT05URVhUX0dMIikseng6Xy53KCJJTk5FUlRVQkVfSE9TVF9PVkVSUklERSIpfHwiIixBeDohIV8udygiSU5ORVJUVUJFX1VTRV9USElSRF9QQVJUWV9BVVRIIiwhMSkscko6ISFfLncoIklOTkVSVFVCRV9PTUlUX0FQSV9LRVlfV0hFTl9BVVRIX0hFQURFUl9JU19QUkVTRU5UIiwKITEpLGFwcEluc3RhbGxEYXRhOl8udygiU0VSSUFMSVpFRF9DTElFTlRfQ09ORklHX0RBVEEiKX19OwptbT1mdW5jdGlvbihhKXt2YXIgYj17Y2xpZW50OntobDphLnl4LGdsOmEueHgsY2xpZW50TmFtZTphLm1xLGNsaWVudFZlcnNpb246YS5pbm5lcnR1YmVDb250ZXh0Q2xpZW50VmVyc2lvbixjb25maWdJbmZvOmEud3h9fTtuYXZpZ2F0b3IudXNlckFnZW50JiYoYi5jbGllbnQudXNlckFnZW50PVN0cmluZyhuYXZpZ2F0b3IudXNlckFnZW50KSk7dmFyIGM9Xy51LmRldmljZVBpeGVsUmF0aW87YyYmYyE9MSYmKGIuY2xpZW50LnNjcmVlbkRlbnNpdHlGbG9hdD1TdHJpbmcoYykpO2M9Xy53KCJFWFBFUklNRU5UU19UT0tFTiIsIiIpO2MhPT0iIiYmKGIuY2xpZW50LmV4cGVyaW1lbnRzVG9rZW49Yyk7Yz1fLnVqKCk7Yy5sZW5ndGg+MCYmKGIucmVxdWVzdD17aW50ZXJuYWxFeHBlcmltZW50RmxhZ3M6Y30pO2M9YS5tcTtjIT09IldFQiImJmMhPT0iTVdFQiImJmMhPT0xJiZjIT09Mnx8IWJ8fChiLmNsaWVudC5tYWluQXBwV2ViSW5mbz1iLmNsaWVudC5tYWluQXBwV2ViSW5mbz8/e30sCmIuY2xpZW50Lm1haW5BcHBXZWJJbmZvLndlYkRpc3BsYXlNb2RlPV8uT2ooKSk7KGM9Xy5zYSgieXQuZW1iZWRkZWRfcGxheWVyLmVtYmVkX3VybCIpKSYmYiYmKGIudGhpcmRQYXJ0eT17ZW1iZWRVcmw6Y30pO18ueCgid2ViX2xvZ19tZW1vcnlfdG90YWxfa2J5dGVzIikmJl8udS5uYXZpZ2F0b3I/LmRldmljZU1lbW9yeSYmKGM9Xy51Lm5hdmlnYXRvcj8uZGV2aWNlTWVtb3J5LGImJihiLmNsaWVudC5tZW1vcnlUb3RhbEtieXRlcz1gJHtjKjFFNn1gKSk7YS5hcHBJbnN0YWxsRGF0YSYmYiYmKGIuY2xpZW50LmNvbmZpZ0luZm89Yi5jbGllbnQuY29uZmlnSW5mb3x8e30sYi5jbGllbnQuY29uZmlnSW5mby5hcHBJbnN0YWxsRGF0YT1hLmFwcEluc3RhbGxEYXRhKTsoYT1fLlNqKCkpJiZiJiYoYi5jbGllbnQuY29ubmVjdGlvblR5cGU9YSk7Xy54KCJ3ZWJfbG9nX2VmZmVjdGl2ZV9jb25uZWN0aW9uX3R5cGUiKSYmKGE9Xy5VaigpKSYmYiYmKGIuY2xpZW50LmVmZmVjdGl2ZUNvbm5lY3Rpb25UeXBlPQphKTtpZihfLngoInN0YXJ0X2NsaWVudF9nY2YiKSl7dmFyIGQ9Xy5qbSgpO2QmJihhPWQuY29sZENvbmZpZ0RhdGEsYz1kLmNvbGRIYXNoRGF0YSxkPWQuaG90SGFzaERhdGEsYiYmKGIuY2xpZW50LmNvbmZpZ0luZm89Yi5jbGllbnQuY29uZmlnSW5mb3x8e30sYSYmKGIuY2xpZW50LmNvbmZpZ0luZm8uY29sZENvbmZpZ0RhdGE9YSksYyYmKGIuY2xpZW50LmNvbmZpZ0luZm8uY29sZEhhc2hEYXRhPWMpLGQmJihiLmNsaWVudC5jb25maWdJbmZvLmhvdEhhc2hEYXRhPWQpKSl9Xy53KCJERUxFR0FURURfU0VTU0lPTl9JRCIpJiYhXy54KCJwYWdlaWRfYXNfaGVhZGVyX3dlYiIpJiYoYi51c2VyPXtvbkJlaGFsZk9mVXNlcjpfLncoIkRFTEVHQVRFRF9TRVNTSU9OX0lEIil9KTshXy54KCJmaWxsX2RlbGVnYXRlX2NvbnRleHRfaW5fZ2VsX2tpbGxzd2l0Y2giKSYmKGE9Xy53KCJJTk5FUlRVQkVfQ09OVEVYVF9TRVJJQUxJWkVEX0RFTEVHQVRJT05fQ09OVEVYVCIpKSYmKGIudXNlcj0Key4uLmIudXNlcixzZXJpYWxpemVkRGVsZWdhdGlvbkNvbnRleHQ6YX0pO2E9Xy53KCJJTk5FUlRVQkVfQ09OVEVYVCIpO18ueCgiZW5hYmxlX3BlcnNpc3RlbnRfZGV2aWNlX3Rva2VuIikmJmE/LmNsaWVudD8ucm9sbG91dFRva2VuJiYoYi5jbGllbnQucm9sbG91dFRva2VuPWE/LmNsaWVudD8ucm9sbG91dFRva2VuKTthPU9iamVjdDtjPWEuYXNzaWduO2Q9Yi5jbGllbnQ7dmFyIGU9Xy53KCJERVZJQ0UiLCIiKSxmPXt9O2ZvcihsZXQgW2gsa11vZiBPYmplY3QuZW50cmllcyhfLmJqKGUpKSllPWgsZT09PSJjYnJhbmQiP2YuZGV2aWNlTWFrZT1rOmU9PT0iY21vZGVsIj9mLmRldmljZU1vZGVsPWs6ZT09PSJjYnIiP2YuYnJvd3Nlck5hbWU9azplPT09ImNicnZlciI/Zi5icm93c2VyVmVyc2lvbj1rOmU9PT0iY29zIj9mLm9zTmFtZT1rOmU9PT0iY29zdmVyIj9mLm9zVmVyc2lvbj1rOmU9PT0iY3BsYXRmb3JtIiYmKGYucGxhdGZvcm09ayk7Yi5jbGllbnQ9Yy5jYWxsKGEsZCxmKTsKXy54KCJ3ZWJfYXR0ZW50aW9uX2xvZ2dpbmdfZW5hYmxlZCIpJiYoYi5jbGllbnQud2luZG93V2lkdGhQb2ludHM9d2luZG93LmlubmVyV2lkdGgsYi5jbGllbnQud2luZG93SGVpZ2h0UG9pbnRzPXdpbmRvdy5pbm5lckhlaWdodCk7cmV0dXJuIGJ9OwpvbT1mdW5jdGlvbihhLGIsYz17fSl7dmFyIGQ9e307Xy53KCJFT01fVklTSVRPUl9EQVRBIik/ZD17IlgtR29vZy1FT00tVmlzaXRvci1JZCI6Xy53KCJFT01fVklTSVRPUl9EQVRBIil9OmQ9eyJYLUdvb2ctVmlzaXRvci1JZCI6Yy52aXNpdG9yRGF0YXx8Xy53KCJWSVNJVE9SX0RBVEEiLCIiKX07aWYoYiYmYi5pbmNsdWRlcygid3d3LnlvdXR1YmUtbm9jb29raWUuY29tIikpcmV0dXJuIGQ7Yj1jLmF1dGhvcml6YXRpb258fF8udygiQVVUSE9SSVpBVElPTiIpO2J8fChhP2I9YEJlYXJlciAke18uc2EoImdhcGkuYXV0aC5nZXRUb2tlbiIpKCkuT0h9YDooXy5ubS5pbnN0YW5jZXx8KF8ubm0uaW5zdGFuY2U9bmV3IF8ubm0pLGE9Xy5QaigpLF8ueCgicGFnZWlkX2FzX2hlYWRlcl93ZWIiKXx8ZGVsZXRlIGFbIlgtR29vZy1QYWdlSWQiXSxkPXsuLi5kLC4uLmF9KSk7YiYmKGQuQXV0aG9yaXphdGlvbj1iKTtyZXR1cm4gZH07Cl8ucG09ZnVuY3Rpb24oYSl7dGhpcy52ZXJzaW9uPTE7dGhpcy5hcmdzPWF9O18ucW09ZnVuY3Rpb24oYSxiKXt0aGlzLnRvcGljPWE7dGhpcy5qPWJ9O18uc209ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLnJtKCk7YyYmYy5wdWJsaXNoLmNhbGwoYyxhLnRvU3RyaW5nKCksYSxiKX07Xy5ybT1mdW5jdGlvbigpe3JldHVybiBfLnNhKCJ5dFB1YnN1YjJQdWJzdWIySW5zdGFuY2UiKX07dG09ZnVuY3Rpb24oYSxiLGM9e3NhbXBsZVJhdGU6LjF9KXtNYXRoLnJhbmRvbSgpPE1hdGgubWluKC4wMixjLnNhbXBsZVJhdGUvMTAwKSYmXy5zbSgibWV0YV9sb2dnaW5nX2NzaV9ldmVudCIse3RpbWVyTmFtZTphLHRpbWVsaW5lRGF0YTpifSl9OwpBbT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT17c3RhcnRUaW1lOigwLF8uZWwpKCksdGlja3M6e30saW5mb3M6e319O3RyeXtsZXQgaD1fLnVtKGIpO2lmKGg9PW51bGx8fCEoaD5fLndtfHxoPF8ueG0pKXt2YXIgZj1fLk5pKCgwLF8ueW0pKGIpKTtsZXQgaz0oMCxfLmVsKSgpO2UudGlja3MuZ2VsYz1rO3ptKys7Xy54KCJnZWxfY29tcHJlc3Npb25fY3NpX2tpbGxzd2l0Y2giKXx8IV8ueCgibG9nX2dlbF9jb21wcmVzc2lvbl9sYXRlbmN5IikmJiFfLngoImxvZ19nZWxfY29tcHJlc3Npb25fbGF0ZW5jeV9sciIpfHx0bSgiZ2VsX2NvbXByZXNzaW9uIixlLHtzYW1wbGVSYXRlOi4xfSk7Yy5oZWFkZXJzfHwoYy5oZWFkZXJzPXt9KTtjLmhlYWRlcnNbIkNvbnRlbnQtRW5jb2RpbmciXT0iZ3ppcCI7Yy5wb3N0Qm9keT1mO2MucG9zdFBhcmFtcz12b2lkIDB9ZChhLGMpfWNhdGNoKGgpe18uV2koaCksZChhLGMpfX07Cl8udW09ZnVuY3Rpb24oYSl7dHJ5e3JldHVybihuZXcgQmxvYihhLnNwbGl0KCIiKSkpLnNpemV9Y2F0Y2goYil7cmV0dXJuIF8uV2koYiksbnVsbH19O0JtPWZ1bmN0aW9uKGEpe3JldHVybiEhYS5KYXx8YS54aX07RG09ZnVuY3Rpb24oYSl7Qm0oYSkmJiFhLmFoJiYoYS5PYz0hMCxhLk9pJiZNYXRoLnJhbmRvbSgpPD1hLkRpJiZhLmNiLk91KGEuSmEpLENtKGEpLGEuU2EuU2IoKSYmYS5vKCksYS5TYS5saXN0ZW4oYS5LbSxhLm8uYmluZChhKSksYS5TYS5saXN0ZW4oYS5GbSxhLnYuYmluZChhKSkpfTtDbT1mdW5jdGlvbihhKXtpZighQm0oYSkpdGhyb3cgRXJyb3IoInhhIik7YS5jYi5XcCgiUVVFVUVEIixhLkphKS50aGVuKGI9PntiJiYhRW0oYSxiLGEuQ3IpP2EuRGMucGIoYXN5bmMoKT0+e2IuaWQhPT12b2lkIDAmJmF3YWl0IGEuY2Iubm4oYi5pZCxhLkphKTtDbShhKX0pOmEuU2EuU2IoKSYmYS5vKCl9KX07CkdtPWFzeW5jIGZ1bmN0aW9uKGEsYil7aWYoIUJtKGEpKXRocm93IEVycm9yKCJzYSIpO2IuaWQhPT12b2lkIDAmJihhd2FpdCBhLmNiLkF5KGIuaWQsYS5KYSl8fGEuVGYoRXJyb3IoInRhIikpKTtFbShhLGIsYS5Lcik/KGIuc2tpcFJldHJ5fHwoYj1GbShhLGIpKSxiJiYoYi5za2lwUmV0cnkmJmIuaWQhPT12b2lkIDAmJmF3YWl0IGEuY2IuRmYoYi5pZCxhLkphKSxhLkdkKGIudXJsLGIub3B0aW9ucywhIWIuc2tpcFJldHJ5KSkpOihhLlRmKEVycm9yKCJ1YSIpKSxiLmlkIT09dm9pZCAwJiZhd2FpdCBhLmNiLkZmKGIuaWQsYS5KYSkpfTtIbT1mdW5jdGlvbihhLGIpe2EuTHMmJiFhLlNhLlNiKCk/YS5McyhiKTphLmhhbmRsZUVycm9yKGIpfTtFbT1mdW5jdGlvbihhLGIsYyl7Yj1iLnRpbWVzdGFtcDtyZXR1cm4gYS5ub3coKS1iPj1jPyExOiEwfTsKRm09ZnVuY3Rpb24oYSxiKXtpZighQm0oYSkpdGhyb3cgRXJyb3IoInZhIik7dmFyIGM9Yi5vcHRpb25zLm9uRXJyb3I/Yi5vcHRpb25zLm9uRXJyb3I6KCk9Pnt9O2Iub3B0aW9ucy5vbkVycm9yPWFzeW5jKGUsZik9Pnt2YXIgaD1JbShmKSxrPUptKGYpO2smJmEuS2EmJmEuS2EoIndlYl9lbmFibGVfZXJyb3JfMjA0IikmJmEuaGFuZGxlRXJyb3IoRXJyb3IoIndhIiksYi51cmwsZik7aWYoYS5LYSYmYS5LYSgibndsX2NvbnNpZGVyX2Vycm9yX2NvZGUiKSYmaHx8YS5LYSYmIWEuS2EoIm53bF9jb25zaWRlcl9lcnJvcl9jb2RlIikmJmEucG90ZW50aWFsRXNmRXJyb3JDb3VudGVyPD1hLktqKWlmKGEuU2EuUWomJmF3YWl0IGEuU2EuUWooKSwhYS5TYS5TYigpKXtjKGUsZik7YS5LYSYmYS5LYSgibndsX2NvbnNpZGVyX2Vycm9yX2NvZGUiKSYmYj8uaWQhPT12b2lkIDAmJmF3YWl0IGEuY2Iubm4oYi5pZCxhLkphLCExKTtyZXR1cm59YS5LYSYmYS5LYSgibndsX2NvbnNpZGVyX2Vycm9yX2NvZGUiKSYmCiFoJiZhLnBvdGVudGlhbEVzZkVycm9yQ291bnRlcj5hLktqfHwoYS5wb3RlbnRpYWxFc2ZFcnJvckNvdW50ZXIrKyxiPy5pZCE9PXZvaWQgMCYmKGIuc2VuZENvdW50PGEuTXI/KGF3YWl0IGEuY2Iubm4oYi5pZCxhLkphLCEwLGs/ITE6dm9pZCAwKSxhLkRjLnBiKCgpPT57YS5TYS5TYigpJiZhLm8oKX0sYS5McikpOmF3YWl0IGEuY2IuRmYoYi5pZCxhLkphKSksYyhlLGYpKX07dmFyIGQ9Yi5vcHRpb25zLm9uU3VjY2Vzcz9iLm9wdGlvbnMub25TdWNjZXNzOigpPT57fTtiLm9wdGlvbnMub25TdWNjZXNzPWFzeW5jKGUsZik9PntiPy5pZCE9PXZvaWQgMCYmYXdhaXQgYS5jYi5GZihiLmlkLGEuSmEpO2EuU2EuZWYmJmEuS2EmJmEuS2EoInZzc19uZXR3b3JrX2hpbnQiKSYmYS5TYS5lZighMCk7ZChlLGYpfTtyZXR1cm4gYn07SW09ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YT8uZXJyb3I/LmNvZGUpJiZhPj00MDAmJmE8PTU5OT8hMTohMH07CkptPWZ1bmN0aW9uKGEpe2E9YT8uZXJyb3I/LmNvZGU7cmV0dXJuIShhIT09NDAwJiZhIT09NDE1KX07CkxtPWZ1bmN0aW9uKCl7aWYoS20pcmV0dXJuIEttKCk7S209Xy4kbCgiTG9nc0RhdGFiYXNlVjIiLHtzZTp7TG9nc1JlcXVlc3RzU3RvcmU6e1BkOjJ9fSxzaGFyZWQ6ITEsdXBncmFkZShhLGIsYyl7YigyKSYmXy5rbChhLCJMb2dzUmVxdWVzdHNTdG9yZSIse2tleVBhdGg6ImlkIixhdXRvSW5jcmVtZW50OiEwfSk7YigzKTtiKDUpJiYoYz1jLm9iamVjdFN0b3JlKCJMb2dzUmVxdWVzdHNTdG9yZSIpLGMuai5pbmRleE5hbWVzLmNvbnRhaW5zKCJuZXdSZXF1ZXN0IikmJmMuai5kZWxldGVJbmRleCgibmV3UmVxdWVzdCIpLF8ub2woYywibmV3UmVxdWVzdFYyIixbInN0YXR1cyIsImludGVyZmFjZSIsInRpbWVzdGFtcCJdKSk7Yig3KSYmYS5qLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoInNhcGlzaWQiKSYmYS5qLmRlbGV0ZU9iamVjdFN0b3JlKCJzYXBpc2lkIik7Yig5KSYmYS5qLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoIlNXSGVhbHRoTG9nIikmJmEuai5kZWxldGVPYmplY3RTdG9yZSgiU1dIZWFsdGhMb2ciKX0sCnZlcnNpb246OX0pO3JldHVybiBLbSgpfTtNbT1mdW5jdGlvbihhKXtyZXR1cm4gXy5DbChMbSgpLGEpfTtPbT1hc3luYyBmdW5jdGlvbihhLGIpe3ZhciBjPXtzdGFydFRpbWU6KDAsXy5lbCkoKSxpbmZvczp7dHJhbnNhY3Rpb25UeXBlOiJZVF9JREJfVFJBTlNBQ1RJT05fVFlQRV9XUklURSJ9LHRpY2tzOnt9fTtiPWF3YWl0IE1tKGIpO2E9ey4uLmEsb3B0aW9uczpKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGEub3B0aW9ucykpLGludGVyZmFjZTpfLncoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9OQU1FIiwwKX07YT1hd2FpdCBfLm1sKGIsIkxvZ3NSZXF1ZXN0c1N0b3JlIixhKTtjLnRpY2tzLnRjPSgwLF8uZWwpKCk7Tm0oYyk7cmV0dXJuIGF9OwpQbT1hc3luYyBmdW5jdGlvbihhLGIpe3ZhciBjPXtzdGFydFRpbWU6KDAsXy5lbCkoKSxpbmZvczp7dHJhbnNhY3Rpb25UeXBlOiJZVF9JREJfVFJBTlNBQ1RJT05fVFlQRV9SRUFEIn0sdGlja3M6e319O2I9YXdhaXQgTW0oYik7dmFyIGQ9Xy53KCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsMCksZT1bYSxkLDBdO2Q9W2EsZCwoMCxfLmVsKSgpXTt2YXIgZj1JREJLZXlSYW5nZS5ib3VuZChlLGQpLGg9InByZXYiO18ueCgidXNlX2ZpZm9fZm9yX25ldHdvcmtsZXNzIikmJihoPSJuZXh0Iik7dmFyIGs9dm9pZCAwO2U9YT09PSJORVciPyJyZWFkd3JpdGUiOiJyZWFkb25seSI7Xy54KCJ1c2VfcmVhZG9ubHlfZm9yX2dldF9tb3N0X3JlY2VudF9ieV9zdGF0dXNfa2lsbHN3aXRjaCIpJiYoZT0icmVhZHdyaXRlIik7YXdhaXQgXy5pbChiLFsiTG9nc1JlcXVlc3RzU3RvcmUiXSx7bW9kZTplLGtiOiEwfSxsPT51bChsLm9iamVjdFN0b3JlKCJMb2dzUmVxdWVzdHNTdG9yZSIpLmluZGV4KCJuZXdSZXF1ZXN0VjIiKSwKe3F1ZXJ5OmYsZGlyZWN0aW9uOmh9LG09PnttLmN1cnNvci52YWx1ZSYmKGs9bS5jdXJzb3IudmFsdWUsYT09PSJORVciJiYoay5zdGF0dXM9IlFVRVVFRCIsbS51cGRhdGUoaykpKX0pKTtjLnRpY2tzLnRjPSgwLF8uZWwpKCk7Tm0oYyk7cmV0dXJuIGt9O1FtPWFzeW5jIGZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uaWwoYXdhaXQgTW0oYiksWyJMb2dzUmVxdWVzdHNTdG9yZSJdLHttb2RlOiJyZWFkd3JpdGUiLGtiOiEwfSxjPT57dmFyIGQ9Yy5vYmplY3RTdG9yZSgiTG9nc1JlcXVlc3RzU3RvcmUiKTtyZXR1cm4gZC5nZXQoYSkudGhlbihlPT57aWYoZSlyZXR1cm4gZS5zdGF0dXM9IlFVRVVFRCIsXy5sbChkLGUpLnRoZW4oKCk9PmUpfSl9KX07ClJtPWFzeW5jIGZ1bmN0aW9uKGEsYixjPSEwLGQpe3JldHVybiBfLmlsKGF3YWl0IE1tKGIpLFsiTG9nc1JlcXVlc3RzU3RvcmUiXSx7bW9kZToicmVhZHdyaXRlIixrYjohMH0sZT0+e3ZhciBmPWUub2JqZWN0U3RvcmUoIkxvZ3NSZXF1ZXN0c1N0b3JlIik7cmV0dXJuIGYuZ2V0KGEpLnRoZW4oaD0+aD8oaC5zdGF0dXM9Ik5FVyIsYyYmKGguc2VuZENvdW50Kz0xKSxkIT09dm9pZCAwJiYoaC5vcHRpb25zLmNvbXByZXNzPWQpLF8ubGwoZixoKS50aGVuKCgpPT5oKSk6Xy5Way5yZXNvbHZlKHZvaWQgMCkpfSl9O1NtPWFzeW5jIGZ1bmN0aW9uKGEsYil7cmV0dXJuKGF3YWl0IE1tKGIpKS5kZWxldGUoIkxvZ3NSZXF1ZXN0c1N0b3JlIixhKX07ClRtPWFzeW5jIGZ1bmN0aW9uKGEpe2E9YXdhaXQgTW0oYSk7dmFyIGI9KDAsXy5lbCkoKS0yNTkyRTY7YXdhaXQgXy5pbChhLFsiTG9nc1JlcXVlc3RzU3RvcmUiXSx7bW9kZToicmVhZHdyaXRlIixrYjohMH0sYz0+cWwoYy5vYmplY3RTdG9yZSgiTG9nc1JlcXVlc3RzU3RvcmUiKSx7fSxkPT57aWYoZC5jdXJzb3IudmFsdWUudGltZXN0YW1wPD1iKXJldHVybiBkLmRlbGV0ZSgpLnRoZW4oKCk9PnJsKGQpKX0pKX07VW09YXN5bmMgZnVuY3Rpb24oKXthd2FpdCBXbCgpfTtObT1mdW5jdGlvbihhKXtfLngoIm53bF9jc2lfa2lsbHN3aXRjaCIpfHx0bSgibmV0d29ya2xlc3NfcGVyZm9ybWFuY2UiLGEse3NhbXBsZVJhdGU6MX0pfTtXbT1mdW5jdGlvbihhKXtyZXR1cm4gXy5DbChWbSgpLGEpfTsKWG09YXN5bmMgZnVuY3Rpb24oYSl7YT1hd2FpdCBXbShhKTt2YXIgYj0oMCxfLmVsKSgpLTI1OTJFNjthd2FpdCBfLmlsKGEsWyJTV0hlYWx0aExvZyJdLHttb2RlOiJyZWFkd3JpdGUiLGtiOiEwfSxjPT5xbChjLm9iamVjdFN0b3JlKCJTV0hlYWx0aExvZyIpLHt9LGQ9PntpZihkLmN1cnNvci52YWx1ZS50aW1lc3RhbXA8PWIpcmV0dXJuIGQuZGVsZXRlKCkudGhlbigoKT0+cmwoZCkpfSkpfTtZbT1hc3luYyBmdW5jdGlvbihhKXthd2FpdCAoYXdhaXQgV20oYSkpLmNsZWFyKCJTV0hlYWx0aExvZyIpfTsKXy5hbj1mdW5jdGlvbihhLGIsYyxkLGU9IiIsZj0hMSxoPSExKXtpZihhKWlmKGMmJiFfLk1rKCJjb2JhbHQiKSlfLldpKG5ldyBfLlhqKCJMZWdhY3kgcmVmZXJyZXItc2NydWJiZWQgcGluZyBkZXRlY3RlZCIpKSxhJiZabShhLHZvaWQgMCx7c2NydWJSZWZlcnJlcjohMH0pO2Vsc2UgaWYoZSl4aihhLGIsIlBPU1QiLGUsZCk7ZWxzZSBpZihfLncoIlVTRV9ORVRfQUpBWF9GT1JfUElOR19UUkFOU1BPUlQiLCExKXx8ZHx8aCl4aihhLGIsIkdFVCIsIiIsZCx2b2lkIDAsZixoKTtlbHNle2I6e3RyeXtjOnt2YXIgaz1uZXcgJG0oe3VybDphfSk7aWYoay5qLmRzaD09PSIxIil2YXIgbD1udWxsO2Vsc2V7dmFyIG09ay5qLmFlO2lmKG09PT0iMSIpe2xldCByPWsuai5hZHVybDtpZihyKXRyeXtsPXt2ZXJzaW9uOjMsbXY6ZGVjb2RlVVJJQ29tcG9uZW50KHIpLHp1OklhKGsubywiYWN0PTEiLCJyaT0xIixLYShrKSl9O2JyZWFrIGN9Y2F0Y2godCl7fX1sPW09PT0iMiI/e3ZlcnNpb246NCwKbXY6SWEoay5vLCJkY3Q9MSIsInN1aWQ9IitrLnYsInJpPTEiKSx6dTpJYShrLm8sImFjdD0xIiwicmk9MSIsInN1aWQ9IitrLnYpfTpudWxsfX1pZihsKXtsZXQgcj1fLlFiKGEpO3ZhciBuPSEoIXJ8fCFyLmVuZHNXaXRoKCIvYWNsayIpfHxfLlpiKGEsInJpIikhPT0iMSIpO2JyZWFrIGJ9fWNhdGNoKHIpe31uPSExfWlmKG4pe2I6e3RyeXtpZih3aW5kb3cubmF2aWdhdG9yJiZ3aW5kb3cubmF2aWdhdG9yLnNlbmRCZWFjb24mJndpbmRvdy5uYXZpZ2F0b3Iuc2VuZEJlYWNvbihhLCIiKSl7dmFyIHA9ITA7YnJlYWsgYn19Y2F0Y2gocil7fXA9ITF9cD8oYiYmYigpLGM9ITApOmM9ITF9ZWxzZSBjPSExO2N8fFptKGEsYil9fTsKWm09ZnVuY3Rpb24oYSxiLGM9e30pe3ZhciBkPW5ldyBJbWFnZSxlPSIiK2JuKys7Y25bZV09ZDtkLm9ubG9hZD1kLm9uZXJyb3I9KCk9PntiJiZjbltlXSYmYigpO2RlbGV0ZSBjbltlXX07Yy5zY3J1YlJlZmVycmVyJiYoZC5yZWZlcnJlclBvbGljeT0ibm8tcmVmZXJyZXIiKTtkLnNyYz1hfTtmbj1mdW5jdGlvbigpe2RufHwoZG49bmV3IF8uZW4oInl0Lm9mZmxpbmUiKSk7cmV0dXJuIGRufTtnbj1mdW5jdGlvbihhKXtpZihfLngoIm9mZmxpbmVfZXJyb3JfaGFuZGxpbmciKSl7dmFyIGI9Zm4oKS5nZXQoImVycm9ycyIsITApfHx7fTtiW2EubWVzc2FnZV09e25hbWU6YS5uYW1lLHN0YWNrOmEuc3RhY2t9O2EubGV2ZWwmJihiW2EubWVzc2FnZV0ubGV2ZWw9YS5sZXZlbCk7Zm4oKS5zZXQoImVycm9ycyIsYiwyNTkyRTMsITApfX07CmpuPWZ1bmN0aW9uKCl7aWYoIWhuLmluc3RhbmNlKXtsZXQgYT1fLnNhKCJ5dC5uZXR3b3JrUmVxdWVzdE1vbml0b3IuaW5zdGFuY2UiKXx8bmV3IGhuO18ucmEoInl0Lm5ldHdvcmtSZXF1ZXN0TW9uaXRvci5pbnN0YW5jZSIsYSk7aG4uaW5zdGFuY2U9YX1yZXR1cm4gaG4uaW5zdGFuY2V9O2xuPWZ1bmN0aW9uKCl7aWYoIWtuLmluc3RhbmNlKXtsZXQgYT1fLnNhKCJ5dC5uZXR3b3JrU3RhdHVzTWFuYWdlci5pbnN0YW5jZSIpfHxuZXcga247Xy5yYSgieXQubmV0d29ya1N0YXR1c01hbmFnZXIuaW5zdGFuY2UiLGEpO2tuLmluc3RhbmNlPWF9cmV0dXJuIGtuLmluc3RhbmNlfTsKbW49ZnVuY3Rpb24oYSxiKXthLnJhdGVMaW1pdD9hLmo/KF8uamYuQWEoYS5EKSxhLkQ9Xy5qZi5wYigoKT0+e2EuQiE9PWImJihhLmRpc3BhdGNoRXZlbnQoYiksYS5CPWIsYS5qPSgwLF8uZWwpKCkpfSxhLnJhdGVMaW1pdC0oKDAsXy5lbCkoKS1hLmopKSk6KGEuZGlzcGF0Y2hFdmVudChiKSxhLkI9YixhLmo9KDAsXy5lbCkoKSk6YS5kaXNwYXRjaEV2ZW50KGIpfTsKXy5wbj1mdW5jdGlvbigpe3ZhciBhPV8uc2EoInl0Lm5ldHdvcmtsZXNzUmVxdWVzdENvbnRyb2xsZXIuaW5zdGFuY2UiKTthfHwoYT1uZXcgbm4sXy5yYSgieXQubmV0d29ya2xlc3NSZXF1ZXN0Q29udHJvbGxlci5pbnN0YW5jZSIsYSksXy54KCJuZXR3b3JrbGVzc19sb2dnaW5nIikmJl8uUGwoKS50aGVuKGI9PnthLkphPWI7RG0oYSk7YS5CLnJlc29sdmUoKTthLk9pJiZNYXRoLnJhbmRvbSgpPD1hLkRpJiZhLkphJiZYbShhLkphKTtfLngoIm5ldHdvcmtsZXNzX2ltbWVkaWF0ZWx5X2Ryb3Bfc3dfaGVhbHRoX3N0b3JlIikmJm9uKGEpfSkpO3JldHVybiBhfTtvbj1hc3luYyBmdW5jdGlvbihhKXtpZighYS5KYSl0aHJvdyBTaygiY2xlYXJTV0hlYWx0aExvZ3NEYiIpO1ltKGEuSmEpLmNhdGNoKGI9PnthLmhhbmRsZUVycm9yKGIpfSl9Owpxbj1mdW5jdGlvbihhLGIsYyl7Yj1fLngoIndlYl9mcF92aWFfanNwYiIpP09iamVjdC5hc3NpZ24oe30sYik6YjtfLngoInVzZV9yZXF1ZXN0X3RpbWVfbXNfaGVhZGVyIik/Yi5oZWFkZXJzJiZfLmZqKGEpJiYoYi5oZWFkZXJzWyJYLUdvb2ctUmVxdWVzdC1UaW1lIl09SlNPTi5zdHJpbmdpZnkoTWF0aC5yb3VuZCgoMCxfLmVsKSgpKSkpOmIucG9zdFBhcmFtcz8ucmVxdWVzdFRpbWVNcyYmKGIucG9zdFBhcmFtcy5yZXF1ZXN0VGltZU1zPU1hdGgucm91bmQoKDAsXy5lbCkoKSkpO2MmJk9iamVjdC5rZXlzKGIpLmxlbmd0aD09PTA/Xy5hbihhKTpiLmNvbXByZXNzP2IucG9zdEJvZHk/KHR5cGVvZiBiLnBvc3RCb2R5IT09InN0cmluZyImJihiLnBvc3RCb2R5PUpTT04uc3RyaW5naWZ5KGIucG9zdEJvZHkpKSxBbShhLGIucG9zdEJvZHksYixfLnpqKSk6QW0oYSxKU09OLnN0cmluZ2lmeShiLnBvc3RQYXJhbXMpLGIsQWopOl8uemooYSxiKX07CnJuPWZ1bmN0aW9uKGEsYil7Xy54KCJ1c2VfZXZlbnRfdGltZV9tc19oZWFkZXIiKSYmXy5maihhKSYmKGIuaGVhZGVyc3x8KGIuaGVhZGVycz17fSksYi5oZWFkZXJzWyJYLUdvb2ctRXZlbnQtVGltZSJdPUpTT04uc3RyaW5naWZ5KE1hdGgucm91bmQoKDAsXy5lbCkoKSkpKTtyZXR1cm4gYn07Xy5zbj1mdW5jdGlvbigpe3JldHVybiBfLlBiKGRvY3VtZW50LmxvY2F0aW9uLnRvU3RyaW5nKCkpIT09Ind3dy55b3V0dWJlLW5vY29va2llLmNvbSJ9Owp2bj1mdW5jdGlvbihhLGIsYyxkKXshXy53KCJWSVNJVE9SX0RBVEEiKSYmYiE9PSJ2aXNpdG9yX2lkIiYmTWF0aC5yYW5kb20oKTwuMDEmJl8uV2kobmV3IF8uWGooIk1pc3NpbmcgVklTSVRPUl9EQVRBIHdoZW4gc2VuZGluZyBpbm5lcnR1YmUgcmVxdWVzdC4iLGIsYyxkKSk7aWYoIWEuaXNSZWFkeSgpKXRocm93IGE9bmV3IF8uWGooImlubmVydHViZSB4aHJjbGllbnQgbm90IHJlYWR5IixiLGMsZCksXy5VaShhKSxhO3ZhciBlPXtoZWFkZXJzOmQuaGVhZGVyc3x8e30sbWV0aG9kOiJQT1NUIixwb3N0UGFyYW1zOmMscG9zdEJvZHk6ZC5wb3N0Qm9keSxwb3N0Qm9keUZvcm1hdDpkLnBvc3RCb2R5Rm9ybWF0fHwiSlNPTiIsb25UaW1lb3V0OigpPT57ZC5vblRpbWVvdXQoKX0sb25GZXRjaFRpbWVvdXQ6ZC5vblRpbWVvdXQsb25TdWNjZXNzOihtLG4pPT57aWYoZC5vblN1Y2Nlc3MpZC5vblN1Y2Nlc3Mobil9LG9uRmV0Y2hTdWNjZXNzOm09PntpZihkLm9uU3VjY2VzcylkLm9uU3VjY2VzcyhtKX0sCm9uUHJvZ3Jlc3M6bT0+e2lmKGQub25Qcm9ncmVzcylkLm9uUHJvZ3Jlc3MobSl9LG9uRXJyb3I6KG0sbik9PntpZihkLm9uRXJyb3IpZC5vbkVycm9yKG4pfSxvbkZldGNoRXJyb3I6bT0+e2lmKGQub25FcnJvcilkLm9uRXJyb3IobSl9LHRpbWVvdXQ6ZC50aW1lb3V0LHdpdGhDcmVkZW50aWFsczohMCxjb21wcmVzczpkLmNvbXByZXNzfTtlLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdfHwoZS5oZWFkZXJzWyJDb250ZW50LVR5cGUiXT0iYXBwbGljYXRpb24vanNvbiIpO2M9IiI7dmFyIGY9YS5jb25maWdfLnp4O2YmJihjPWYpO2Y9YS5jb25maWdfLkF4fHwhMTt2YXIgaD1vbShmLGMsZCk7T2JqZWN0LmFzc2lnbihlLmhlYWRlcnMsaCk7ZS5oZWFkZXJzLkF1dGhvcml6YXRpb24mJiFjJiZmJiYoZS5oZWFkZXJzWyJ4LW9yaWdpbiJdPXdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO3ZhciBrPWRqKGAke2N9JHtgL3lvdXR1YmVpLyR7YS5jb25maWdfLmlubmVydHViZUFwaVZlcnNpb259LyR7Yn1gfWAsCnthbHQ6Impzb24ifSksbD0obT0hMSk9Pnt0cnl7aWYobSYmZC5yZXRyeSYmIWQubmV0d29ya2xlc3NPcHRpb25zLmJ5cGFzc05ldHdvcmtsZXNzKWUubWV0aG9kPSJQT1NUIixkLm5ldHdvcmtsZXNzT3B0aW9ucy53cml0ZVRoZW5TZW5kP18ucG4oKS53cml0ZVRoZW5TZW5kKGssZSk6Xy5wbigpLnNlbmRBbmRXcml0ZShrLGUpO2Vsc2UgaWYoZC5jb21wcmVzcylpZihlLnBvc3RCb2R5KXtsZXQgbj1lLnBvc3RCb2R5O3R5cGVvZiBuIT09InN0cmluZyImJihuPUpTT04uc3RyaW5naWZ5KGUucG9zdEJvZHkpKTtBbShrLG4sZSxfLnpqKX1lbHNlIEFtKGssSlNPTi5zdHJpbmdpZnkoZS5wb3N0UGFyYW1zKSxlLEFqKTtlbHNlIEFqKGssZSl9Y2F0Y2gobil7aWYobi5uYW1lPT09IkludmFsaWRBY2Nlc3NFcnJvciIpXy5XaShFcnJvcigieWEiKSk7ZWxzZSB0aHJvdyBuO319OyhfLnNhKCJ5dE5ldHdvcmtsZXNzTG9nZ2luZ0luaXRpYWxpemF0aW9uT3B0aW9ucyIpP18udG4uaXNOd2xJbml0aWFsaXplZDoKXy51bik/TmwoKS50aGVuKG09PntsKG0pfSk6bCghMSl9O18ueW49ZnVuY3Rpb24oYSwuLi5iKXtpZighd24oYSl8fGIuc29tZShjPT4hd24oYykpKXRocm93IEVycm9yKCJ6YSIpO2ZvcihsZXQgYyBvZiBiKXhuKGEsYyl9O3huPWZ1bmN0aW9uKGEsYil7Zm9yKGxldCBjIGluIGIpaWYod24oYltjXSkpe2lmKGMgaW4gYSYmIXduKGFbY10pKXRocm93IEVycm9yKCJBYSIpO2MgaW4gYXx8KGFbY109e30pO3huKGFbY10sYltjXSl9ZWxzZSBpZih6bihiW2NdKSl7aWYoYyBpbiBhJiYhem4oYVtjXSkpdGhyb3cgRXJyb3IoIkJhIik7YyBpbiBhfHwoYVtjXT1bXSk7QW4oYVtjXSxiW2NdKX1lbHNlIGFbY109YltjXTtyZXR1cm4gYX07QW49ZnVuY3Rpb24oYSxiKXtmb3IobGV0IGMgb2YgYil3bihjKT9hLnB1c2goeG4oe30sYykpOnpuKGMpP2EucHVzaChBbihbXSxjKSk6YS5wdXNoKGMpO3JldHVybiBhfTt3bj1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkoYSl9Owp6bj1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ib2JqZWN0IiYmQXJyYXkuaXNBcnJheShhKX07Xy5Cbj1mdW5jdGlvbigpe3ZhciBhPV8uc2EoIl9sYWN0Iix3aW5kb3cpO3JldHVybiBhPT1udWxsPy0xOk1hdGgubWF4KERhdGUubm93KCktYSwwKX07Cl8uRG49ZnVuY3Rpb24oKXtpZih3aW5kb3cuY3J5cHRvJiZ3aW5kb3cuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyl0cnl7dmFyIGE9QXJyYXkoMTYpLGI9bmV3IFVpbnQ4QXJyYXkoMTYpO3dpbmRvdy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGIpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWFbY109YltjXTtyZXR1cm4gYX1jYXRjaChkKXt9YT1BcnJheSgxNik7Zm9yKGI9MDtiPDE2O2IrKyl7Yz1EYXRlLm5vdygpO2ZvcihsZXQgZD0wO2Q8YyUyMztkKyspYVtiXT1NYXRoLnJhbmRvbSgpO2FbYl09TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1Nil9aWYoQ24pZm9yKGI9MSxjPTA7YzxDbi5sZW5ndGg7YysrKWFbYiUxNl1ePWFbKGItMSklMTZdLzReQ24uY2hhckNvZGVBdChjKSxiKys7cmV0dXJuIGF9OwpFbj1mdW5jdGlvbigpe3ZhciBhPV8uRG4oKSxiPVtdO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7YysrKWIucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXyIuY2hhckF0KGFbY10mNjMpKTtyZXR1cm4gYi5qb2luKCIiKX07Xy5Gbj1mdW5jdGlvbigpe3ZhciBhPV8udS55dExvZ2dpbmdEb2NEb2N1bWVudE5vbmNlXzthfHwoYT1FbigpLF8ucmEoInl0TG9nZ2luZ0RvY0RvY3VtZW50Tm9uY2VfIixhKSk7cmV0dXJuIGF9O18uR249ZnVuY3Rpb24oYSl7dmFyIGI9MDtmb3IobGV0IGM9MDtjPGEubGVuZ3RoO2MrKyliPWIqMzErYS5jaGFyQ29kZUF0KGMpLGM8YS5sZW5ndGgtMSYmKGIlPTB4ODAwMDAwMDAwMDAwKTtyZXR1cm4gYiUxRTV9O18uSW49ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBIbihhKX07CktuPWZ1bmN0aW9uKGEsYil7Yj1iLmp2O2lmKGEuai5oYXMoYikpcmV0dXJuIGEuai5nZXQoYikucHJvbWlzZTt2YXIgYz1KbihhLGIsW10sITApO2lmKGMhPT12b2lkIDApcmV0dXJuIFByb21pc2UucmVzb2x2ZShjKTt2YXIgZD17fTtkLnByb21pc2U9bmV3IFByb21pc2UoKGUsZik9PntkLlFoPWU7ZC5Rej1mfSk7YS5qLnNldChiLGQpO3JldHVybiBkLnByb21pc2V9OwpKbj1mdW5jdGlvbihhLGIsYyxkPSExKXtpZihjLmluZGV4T2YoYik+LTEpdGhyb3cgRXJyb3IoIkRhYCIrYik7aWYoYS5vLmhhcyhiKSlyZXR1cm4gYS5vLmdldChiKTtpZighYS52LmhhcyhiKSl7aWYoZClyZXR1cm47dGhyb3cgRXJyb3IoIkVhYCIrYik7fWQ9YS52LmdldChiKTtjLnB1c2goYik7aWYoZC5NYiE9PXZvaWQgMCl2YXIgZT1kLk1iO2Vsc2UgaWYoZC5XYyllPWRbXy5Mbl0/TW4oYSxkW18uTG5dLGMpOltdLGU9ZC5XYyguLi5lKTtlbHNlIGlmKGQuUGEpe2U9ZC5QYTtsZXQgZj1lW18uTG5dP01uKGEsZVtfLkxuXSxjKTpbXTtlPW5ldyBlKC4uLmYpfWVsc2UgdGhyb3cgRXJyb3IoIkZhYCIrYik7Yy5wb3AoKTtkLmdifHxhLm8uc2V0KGIsZSk7cmV0dXJuIGV9O01uPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYj9iLm1hcChkPT5kIGluc3RhbmNlb2YgSG4/Sm4oYSxkLmtleSxjLCEwKTpKbihhLGQsYykpOltdfTtfLnk9ZnVuY3Rpb24oKXtObnx8KE5uPW5ldyBPbik7cmV0dXJuIE5ufTsKUW49ZnVuY3Rpb24oKXtyZXR1cm4iaDV2Y2MiaW4gUG4mJlBuLmg1dmNjLnRyYWNlRXZlbnQ/LnRyYWNlQmVnaW4mJlBuLmg1dmNjLnRyYWNlRXZlbnQ/LnRyYWNlRW5kPzE6InBlcmZvcm1hbmNlImluIFBuJiZQbi5wZXJmb3JtYW5jZS5tYXJrJiZQbi5wZXJmb3JtYW5jZS5tZWFzdXJlPzI6MH07Um49ZnVuY3Rpb24oYSl7dmFyIGI9UW4oKTtzd2l0Y2goYil7Y2FzZSAxOlBuLmg1dmNjLnRyYWNlRXZlbnQudHJhY2VCZWdpbigiWVRMUiIsYSk7YnJlYWs7Y2FzZSAyOlBuLnBlcmZvcm1hbmNlLm1hcmsoYCR7YX0tc3RhcnRgKTticmVhaztjYXNlIDA6YnJlYWs7ZGVmYXVsdDpfLmViKGIsInVua25vd24gdHJhY2UgdHlwZSIpfX07ClNuPWZ1bmN0aW9uKGEpe3ZhciBiPVFuKCk7c3dpdGNoKGIpe2Nhc2UgMTpQbi5oNXZjYy50cmFjZUV2ZW50LnRyYWNlRW5kKCJZVExSIixhKTticmVhaztjYXNlIDI6Yj1gJHthfS1zdGFydGA7bGV0IGM9YCR7YX0tZW5kYDtQbi5wZXJmb3JtYW5jZS5tYXJrKGMpO1BuLnBlcmZvcm1hbmNlLm1lYXN1cmUoYSxiLGMpO2JyZWFrO2Nhc2UgMDpicmVhaztkZWZhdWx0Ol8uZWIoYiwidW5rbm93biB0cmFjZSB0eXBlIil9fTtUbj1mdW5jdGlvbihhKXt2YXIgYj1BcnJheS5mcm9tKGEuai5rZXlzKCkpLnNvcnQoKGMsZCk9PmEuZ2V0UHJpb3JpdHkoYS5qW2RdKS1hLmdldFByaW9yaXR5KGEualtjXSkpO2ZvcihsZXQgYyBvZiBiKWI9YS5qW2NdLGIuam9iSWQ9PT12b2lkIDB8fGIuTmp8fChhLnNjaGVkdWxlci5BYShiLmpvYklkKSxhLnNjaGVkdWxlci5HYShiLnhoLDEwKSl9OwpWbj1mdW5jdGlvbihhLGIsYyl7VW4mJmNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQmJmNvbnNvbGUuZ3JvdXBFbmQmJihjb25zb2xlLmdyb3VwQ29sbGFwc2VkKGBbJHthLmNvbnN0cnVjdG9yLm5hbWV9XSAnJHthLnN0YXRlfScgdG8gJyR7Yn0nYCksY29uc29sZS5sb2coIndpdGggbWVzc2FnZTogIixjKSxjb25zb2xlLmdyb3VwRW5kKCkpfTtabj1mdW5jdGlvbihhLGIpe3ZhciBjPWIuZmlsdGVyKGU9PihhLnY/P2UucHJpb3JpdHk/PzApPT09MTApLGQ9Yi5maWx0ZXIoZT0+KGEudj8/ZS5wcmlvcml0eT8/MCkhPT0xMCk7cmV0dXJuIGEuQi5GZz9hc3luYyguLi5lKT0+e2F3YWl0IFduKGMsLi4uZSk7WG4oYSxkLC4uLmUpfTooLi4uZSk9PntZbihjLC4uLmUpO1huKGEsZCwuLi5lKX19OwpXbj1hc3luYyBmdW5jdGlvbihhLC4uLmIpe3ZhciBjPV8uQ2soKTtmb3IobGV0IGQgb2YgYSl7bGV0IGU7Yy5VKCgpPT57JG4oZC5uYW1lKTt2YXIgZj1hbygoKT0+ZC5jYWxsYmFjayguLi5iKSk7KDAsXy5ibykoZik/ZT1fLngoIndlYl9saWZlY3ljbGVfZXJyb3JfaGFuZGxpbmdfa2lsbHN3aXRjaCIpP2YudGhlbigoKT0+e2NvKGQubmFtZSl9KTpmLnRoZW4oKCk9PntjbyhkLm5hbWUpfSxoPT57d2luZG93Lm9uZXJyb3I/LihoLm1lc3NhZ2UsIiIsMCwwLGgpO2NvKGQubmFtZSl9KTpjbyhkLm5hbWUpfSk7ZSYmYXdhaXQgZX19O1huPWZ1bmN0aW9uKGEsYiwuLi5jKXtiPWIubWFwKGQ9Pih7eGg6KCk9PnskbihkLm5hbWUpO2FvKCgpPT5kLmNhbGxiYWNrKC4uLmMpKTtjbyhkLm5hbWUpfSxwcmlvcml0eTphLnY/P2QucHJpb3JpdHk/PzB9KSk7Yi5sZW5ndGgmJihhLmo9bmV3IGVvKGIpKX07ClluPWZ1bmN0aW9uKGEsLi4uYil7dmFyIGM9Xy5DaygpO2ZvcihsZXQgZCBvZiBhKWMuVSgoKT0+eyRuKGQubmFtZSk7YW8oKCk9PmQuY2FsbGJhY2soLi4uYikpO2NvKGQubmFtZSl9KX07JG49ZnVuY3Rpb24oYSl7Zm8mJmEmJlJuKGEpfTtjbz1mdW5jdGlvbihhKXtmbyYmYSYmU24oYSl9O2FvPWZ1bmN0aW9uKGEpe2lmKF8ueCgid2ViX2xpZmVjeWNsZV9lcnJvcl9oYW5kbGluZ19raWxsc3dpdGNoIikpcmV0dXJuIGEoKTt0cnl7cmV0dXJuIGEoKX1jYXRjaChiKXt3aW5kb3cub25lcnJvcj8uKGIubWVzc2FnZSwiIiwwLDAsYil9fTtfLmlvPWZ1bmN0aW9uKCl7Z298fChnbz1uZXcgaG8pO3JldHVybiBnb307Xy5rbz1mdW5jdGlvbihhKXtyZXR1cm4gXy5zYSgieXRjc2kuIisoYXx8IiIpKyJkYXRhXyIpfHxfLmpvKGEpfTtfLmxvPWZ1bmN0aW9uKGEpe2E9Xy5rbyhhKTthLm1ldGFkYXRhfHwoYS5tZXRhZGF0YT17fSk7cmV0dXJuIGEubWV0YWRhdGF9OwpfLm1vPWZ1bmN0aW9uKGEpe2E9Xy5rbyhhKTthLnRpY2t8fChhLnRpY2s9e30pO3JldHVybiBhLnRpY2t9O18ubm89ZnVuY3Rpb24oYSl7YT1fLmtvKGEpO2lmKGEuZ2VsKXtsZXQgYj1hLmdlbDtiLmdlbEluZm9zfHwoYi5nZWxJbmZvcz17fSk7Yi5nZWxUaWNrc3x8KGIuZ2VsVGlja3M9e30pfWVsc2UgYS5nZWw9e2dlbFRpY2tzOnt9LGdlbEluZm9zOnt9fTtyZXR1cm4gYS5nZWx9O18ub289ZnVuY3Rpb24oYSl7YT1fLm5vKGEpO2EuZ2VsSW5mb3N8fChhLmdlbEluZm9zPXt9KTtyZXR1cm4gYS5nZWxJbmZvc307Xy5wbz1mdW5jdGlvbihhKXt2YXIgYj1fLmtvKGEpLm5vbmNlO2J8fChiPUVuKCksXy5rbyhhKS5ub25jZT1iKTtyZXR1cm4gYn07Xy5qbz1mdW5jdGlvbihhKXt2YXIgYj17dGljazp7fSxpbmZvOnt9fTtfLnJhKCJ5dGNzaS4iKyhhfHwiIikrImRhdGFfIixiKTtyZXR1cm4gYn07CnFvPWZ1bmN0aW9uKCl7dmFyIGE9Xy5zYSgieXRjc2kuZGVidWciKTthfHwoYT1bXSxfLnJhKCJ5dGNzaS5kZWJ1ZyIsYSksXy5yYSgieXRjc2kucmVmZXJlbmNlIix7fSkpO3JldHVybiBhfTtfLnNvPWZ1bmN0aW9uKGEpe3ZhciBiPXFvKCk7Yi5wdXNoKGEpO18ueCgibGltaXRfeXRjc2lfZGVidWdfYXJyYXlfc2l6ZSIpJiZiLmxlbmd0aD5ybyYmYi5zcGxpY2UoMCxiLmxlbmd0aC1ybyl9O18udW89ZnVuY3Rpb24oYSl7YT1hfHwiIjt2YXIgYj1fLnRvKCk7aWYoYlthXSlyZXR1cm4gYlthXTt2YXIgYz17dGltZXJOYW1lOmEsaW5mbzp7fSx0aWNrOnt9LHNwYW46e30sanNwYkluZm86W119O18uc28oYyk7cmV0dXJuIGJbYV09Y307Xy50bz1mdW5jdGlvbigpe3ZhciBhPV8uc2EoInl0Y3NpLnJlZmVyZW5jZSIpO2lmKGEpcmV0dXJuIGE7cW8oKTtyZXR1cm4gXy5zYSgieXRjc2kucmVmZXJlbmNlIil9Owp2bz1mdW5jdGlvbihhKXtpZihhLm5hbWU9PT0iSmF2YUV4Y2VwdGlvbiIpcmV0dXJuITA7YT1hLnN0YWNrO3JldHVybiBhLmluY2x1ZGVzKCJjaHJvbWU6Ly8iKXx8YS5pbmNsdWRlcygiLWV4dGVuc2lvbjovLyIpfHxhLmluY2x1ZGVzKCJ3ZWJraXQtbWFza2VkLXVybDovLyIpfTt3bz1mdW5jdGlvbihhKXtpZighYS5zdGFjaylyZXR1cm4hMDt2YXIgYj0hYS5zdGFjay5pbmNsdWRlcygiXG4iKTtyZXR1cm4gYiYmYS5zdGFjay5pbmNsdWRlcygiRXJyb3JUeXBlOiAiKXx8YiYmYS5zdGFjay5pbmNsdWRlcygiQW5vbnltb3VzIGZ1bmN0aW9uIChVbmtub3duIHNjcmlwdCIpfHxhLnN0YWNrLnRvTG93ZXJDYXNlKCk9PT0ibm90IGF2YWlsYWJsZSJ8fGEuZmlsZU5hbWU9PT0idXNlci1zY3JpcHQifHxhLmZpbGVOYW1lLnN0YXJ0c1dpdGgoInVzZXItc2NyaXB0OiIpPyEwOiExfTsKXy5Cbz1mdW5jdGlvbigpe2lmKCF4byl7dmFyIGE9eG89bmV3IHlvO2EubGUubGVuZ3RoPTA7YS5TZC5sZW5ndGg9MDtfLnpvKGEsQW8pfXJldHVybiB4b307Xy56bz1mdW5jdGlvbihhLGIpe2IubGUmJmEubGUudW5zaGlmdC5hcHBseShhLmxlLGIubGUpO2IuU2QmJmEuU2QudW5zaGlmdC5hcHBseShhLlNkLGIuU2QpfTtfLkNvPWZ1bmN0aW9uKGEpe3JldHVybiBhdG9iKGEucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIikpfTsKXy5Fbz1mdW5jdGlvbihhLGIpe3ZhciBjPWEubGVuZ3RoLGQ9MCxlPSgpPT5hLmNoYXJDb2RlQXQoZCsrKTtkb3t2YXIgZj1EbyhlKTtpZihmPT09SW5maW5pdHkpYnJlYWs7bGV0IGg9Zj4+Mztzd2l0Y2goZiY3KXtjYXNlIDA6Zj1EbyhlKTtpZihoPT09YilyZXR1cm4gZjticmVhaztjYXNlIDE6aWYoaD09PWIpcmV0dXJuO2QrPTg7YnJlYWs7Y2FzZSAyOmY9RG8oZSk7aWYoaD09PWIpcmV0dXJuIGEuc3Vic3RyKGQsZik7ZCs9ZjticmVhaztjYXNlIDU6aWYoaD09PWIpcmV0dXJuO2QrPTQ7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fXdoaWxlKGQ8Yyl9O0RvPWZ1bmN0aW9uKGEpe3ZhciBiPWEoKSxjPWImMTI3O2lmKGI8MTI4KXJldHVybiBjO2I9YSgpO2N8PShiJjEyNyk8PDc7aWYoYjwxMjgpcmV0dXJuIGM7Yj1hKCk7Y3w9KGImMTI3KTw8MTQ7aWYoYjwxMjgpcmV0dXJuIGM7Yj1hKCk7cmV0dXJuIGI8MTI4P2N8KGImMTI3KTw8MjE6SW5maW5pdHl9OwpIbz1mdW5jdGlvbihhLGIsYyxkKXtpZihhKWlmKEFycmF5LmlzQXJyYXkoYSkpe3ZhciBlPWQ7Zm9yKGQ9MDtkPGEubGVuZ3RoJiYhKGFbZF0mJihlKz1GbyhkLGFbZF0sYixjKSxlPjUwMCkpO2QrKyk7ZD1lfWVsc2UgaWYodHlwZW9mIGE9PT0ib2JqZWN0Iilmb3IoZSBpbiBhKXtpZihhW2VdKXthOnt2YXIgZj1lO3ZhciBoPWFbZV0saz1iLGw9YztpZih0eXBlb2YgaCE9PSJzdHJpbmcifHxmIT09ImNsaWNrVHJhY2tpbmdQYXJhbXMiJiZmIT09InRyYWNraW5nUGFyYW1zIil7Zj0wO2JyZWFrIGF9Zj0oaD1fLkVvKF8uQ28oaCksMikpP0ZvKGAke2Z9LnZlYCxoLGssbCk6MH1kKz1mO2QrPUZvKGUsYVtlXSxiLGMpO2lmKGQ+NTAwKWJyZWFrfX1lbHNlIGNbYl09R28oYSksZCs9Y1tiXS5sZW5ndGg7ZWxzZSBjW2JdPUdvKGEpLGQrPWNbYl0ubGVuZ3RoO3JldHVybiBkfTsKRm89ZnVuY3Rpb24oYSxiLGMsZCl7Yys9YC4ke2F9YDthPUdvKGIpO2RbY109YTtyZXR1cm4gYy5sZW5ndGgrYS5sZW5ndGh9O0dvPWZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4odHlwZW9mIGE9PT0ic3RyaW5nIj9hOlN0cmluZyhKU09OLnN0cmluZ2lmeShhKSkpLnN1YnN0cigwLDUwMCl9Y2F0Y2goYil7cmV0dXJuYHVuYWJsZSB0byBzZXJpYWxpemUgJHt0eXBlb2YgYX0gKCR7Yi5tZXNzYWdlfSlgfX07CktvPWZ1bmN0aW9uKGEsYil7dmFyIGM9SW8oYik7aWYoYS5qW2NdKXJldHVybiBhLmpbY107dmFyIGQ9T2JqZWN0LmtleXMoYS5zdG9yZSl8fFtdO2lmKGQubGVuZ3RoPD0xJiZJbyhiKT09PWRbMF0pcmV0dXJuIGQ7dmFyIGU9W107Zm9yKGxldCBoPTA7aDxkLmxlbmd0aDtoKyspe2xldCBrPWRbaF0uc3BsaXQoIi8iKTtpZihKbyhiLmF1dGgsa1swXSkpe3ZhciBmPWIuaXNKc3BiO0pvKGY9PT12b2lkIDA/InVuZGVmaW5lZCI6Zj8idHJ1ZSI6ImZhbHNlIixrWzFdKSYmSm8oYi5jdHRBdXRoSW5mbyxrWzJdKSYmKGY9Yi50aWVyLGY9Zj09PXZvaWQgMD8idW5kZWZpbmVkIjpKU09OLnN0cmluZ2lmeShmKSxKbyhmLGtbM10pJiZlLnB1c2goZFtoXSkpfX1yZXR1cm4gYS5qW2NdPWV9O0pvPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PT12b2lkIDB8fGE9PT0idW5kZWZpbmVkIj8hMDphPT09Yn07CklvPWZ1bmN0aW9uKGEpe3JldHVyblthLmF1dGg9PT12b2lkIDA/InVuZGVmaW5lZCI6YS5hdXRoLGEuaXNKc3BiPT09dm9pZCAwPyJ1bmRlZmluZWQiOmEuaXNKc3BiLGEuY3R0QXV0aEluZm89PT12b2lkIDA/InVuZGVmaW5lZCI6YS5jdHRBdXRoSW5mbyxhLnRpZXI9PT12b2lkIDA/InVuZGVmaW5lZCI6YS50aWVyXS5qb2luKCIvIil9O18uQj1mdW5jdGlvbihhLGIpe2lmKGEpcmV0dXJuIGFbYi5uYW1lXX07TG89ZnVuY3Rpb24oKXtyZXR1cm4gXy54KCJodG1sNV9zZW5kX3FvZV9vbl9nZWwiKXx8Xy54KCJ3ZWJfc2VuZF92c3MzX2lzb2xhdGVkX3BheWxvYWQiKX07T289ZnVuY3Rpb24oYSl7TW89YTtMbygpJiYoXy51Lnl0TG9nZ2luZ1RyYW5zcG9ydFJlZ2lzdGVyZWRDbGllbnRDdG9yXz1hKTtObz1uZXcgYX07UW89ZnVuY3Rpb24oKXt2YXIgYT1fLnNhKCJ5dC5sb2dnaW5nLmltcyIpO2F8fChhPW5ldyBQbyxfLnJhKCJ5dC5sb2dnaW5nLmltcyIsYSkpO3JldHVybiBhfTsKJG89ZnVuY3Rpb24oYSxiKXtpZihhLmVuZHBvaW50PT09ImxvZ19ldmVudCIpe1JvKGEpO3ZhciBjPVNvKGEpLGQ9VG8oYS5wYXlsb2FkKXx8IiI7YTp7aWYoXy54KCJlbmFibGVfd2ViX3RpZXJlZF9nZWwiKSl7dmFyIGU9VW9bZHx8IiJdO3ZhciBmPV8ueSgpLnJlc29sdmUoXy5JbihpbSkpPy53aigpPy5sb2dnaW5nSG90Q29uZmlnPy5ldmVudExvZ2dpbmdDb25maWc/LnBheWxvYWRQb2xpY2llcztpZihmKWZvcihsZXQgaD0wO2g8Zi5sZW5ndGg7aCsrKWlmKGZbaF0ucGF5bG9hZE51bWJlcj09PWUpe2U9ZltoXTticmVhayBhfX1lPXZvaWQgMH1mPTIwMDtpZihlKXtpZihlLmVuYWJsZWQ9PT0hMSYmIV8ueCgid2ViX3BheWxvYWRfcG9saWN5X2Rpc2FibGVkX2tpbGxzd2l0Y2giKSlyZXR1cm47Zj1WbyhlLnRpZXIpO2lmKGY9PT00MDApe1dvKGEsYik7cmV0dXJufX1Yb1tjXT0hMDtjPXtjdHRBdXRoSW5mbzpjLGlzSnNwYjohMSx0aWVyOmZ9O1FvKCkuc3RvcmVQYXlsb2FkKGMsCmEucGF5bG9hZCk7WW8oYixjLFpvKGQpKX19O1lvPWZ1bmN0aW9uKGEsYixjPSExKXthJiZPbyhhKTthPV8uc2ooInR2aHRtbDVfbG9nZ2luZ19tYXhfYmF0Y2hfYWRzX2ZvcmsiKXx8Xy5zaigidHZodG1sNV9sb2dnaW5nX21heF9iYXRjaCIpfHxfLnNqKCJ3ZWJfbG9nZ2luZ19tYXhfYmF0Y2giKXx8MTAwO3ZhciBkPSgwLF8uZWwpKCksZT1hcCghMSxiLnRpZXIpLGY9ZS5CO2MmJihlLmo9ITApO2M9MDtiJiYoYz1RbygpLmdldFNlcXVlbmNlQ291bnQoYikpO3ZhciBoPSgpPT57Xy5icCh7d3JpdGVUaGVuU2VuZDohMH0sdm9pZCAwLCExLGIudGllcil9O2M+PTFFMz9oKCk6Yz49YT9jcHx8KGNwPWRwKCgpPT57aCgpO2NwPXZvaWQgMH0sMCkpOmQtZj49MTAmJihlcCghMSxiLnRpZXIpLGUuQj1kKX07CldvPWZ1bmN0aW9uKGEsYil7aWYoYS5lbmRwb2ludD09PSJsb2dfZXZlbnQiKXtfLngoIm1vcmVfYWNjdXJhdGVfZ2VsX3BhcnNlciIpJiZRbygpLnN0b3JlUGF5bG9hZCh7aXNKc3BiOiExfSxhLnBheWxvYWQpO1JvKGEpO3ZhciBjPVNvKGEpLGQ9bmV3IE1hcDtkLnNldChjLFthLnBheWxvYWRdKTt2YXIgZT1UbyhhLnBheWxvYWQpfHwiIjsoYT1iP2I6TG8oKT9Nb3x8Xy51Lnl0TG9nZ2luZ1RyYW5zcG9ydFJlZ2lzdGVyZWRDbGllbnRDdG9yX3x8bnVsbDpudWxsKSYmT28oYSk7cmV0dXJuIG5ldyBfLkJmKChmLGgpPT57Tm8mJk5vLmlzUmVhZHkoKT9mcChkLE5vLGYsaCx7YnlwYXNzTmV0d29ya2xlc3M6ITB9LCEwLFpvKGUpKTpmKCl9KX19OwpTbz1mdW5jdGlvbihhKXt2YXIgYj0iIjtpZihhLmRhbmdlcm91c0xvZ1RvVmlzaXRvclNlc3Npb24pYj0idmlzaXRvck9ubHlBcHByb3ZlZEtleSI7ZWxzZSBpZihhLmN0dEF1dGhJbmZvKXtiPWEuY3R0QXV0aEluZm87bGV0IGM9e307Yi52aWRlb0lkP2MudmlkZW9JZD1iLnZpZGVvSWQ6Yi5wbGF5bGlzdElkJiYoYy5wbGF5bGlzdElkPWIucGxheWxpc3RJZCk7Z3BbYS5jdHRBdXRoSW5mby50b2tlbl09YztiPWEuY3R0QXV0aEluZm8udG9rZW59cmV0dXJuIGJ9OwpfLmJwPWZ1bmN0aW9uKGE9e30sYixjPSExLGQpe25ldyBfLkJmKChlLGYpPT57dmFyIGg9YXAoYyxkKSxrPWguajtoLmo9ITE7aWYoXy54KCJlbmFibGVfd2ViX3RpZXJlZF9nZWwiKSYmXy54KCJ3ZWJfdnNzX3JvdXRpbmdfY2hlY2tfYWxsX3RpZXJfcG9saWNpZXMiKSl7bGV0IGw9YXAoYywzMDApLG09YXAoYywyMDApO2s9a3x8bC5qfHxtLmo7bC5qPSExO20uaj0hMX1ocChoLnYpO2hwKGgubyk7aC5vPTA7Tm8mJk5vLmlzUmVhZHkoKT9kPT09dm9pZCAwJiZfLngoImVuYWJsZV93ZWJfdGllcmVkX2dlbCIpP2lwKGUsZixhLGIsYywzMDAsayk6aXAoZSxmLGEsYixjLGQsayk6KGVwKGMsZCksZSgpKX0pfTsKaXA9ZnVuY3Rpb24oYSxiLGM9e30sZCxlPSExLGY9MjAwLGg9ITEpe3ZhciBrPU5vLGw9bmV3IE1hcCxtPXtpc0pzcGI6ZSxjdHRBdXRoSW5mbzpkLHRpZXI6Zn07ZT17aXNKc3BiOmUsY3R0QXV0aEluZm86ZH07aWYoZCE9PXZvaWQgMClmPV8ueCgiZW5hYmxlX3dlYl90aWVyZWRfZ2VsIik/UW8oKS5zbWFydEV4dHJhY3RNYXRjaGluZ0VudHJpZXMoe2tleXM6W20sZV0sc2l6ZUxpbWl0OjFFM30pOlFvKCkuZXh0cmFjdE1hdGNoaW5nRW50cmllcyhlKSxsLnNldChkLGYpO2Vsc2UgZm9yKGxldCBuIG9mIE9iamVjdC5rZXlzKFhvKSlkPV8ueCgiZW5hYmxlX3dlYl90aWVyZWRfZ2VsIik/UW8oKS5zbWFydEV4dHJhY3RNYXRjaGluZ0VudHJpZXMoe2tleXM6W3tpc0pzcGI6ITEsY3R0QXV0aEluZm86bix0aWVyOmZ9LHtpc0pzcGI6ITEsY3R0QXV0aEluZm86bn1dLHNpemVMaW1pdDoxRTN9KTpRbygpLmV4dHJhY3RNYXRjaGluZ0VudHJpZXMoe2lzSnNwYjohMSxjdHRBdXRoSW5mbzpufSksCmQubGVuZ3RoPjAmJmwuc2V0KG4sZCksKF8ueCgid2ViX2ZwX3ZpYV9qc3BiX2FuZF9qc29uIikmJmMud3JpdGVUaGVuU2VuZHx8IV8ueCgid2ViX2ZwX3ZpYV9qc3BiX2FuZF9qc29uIikpJiZkZWxldGUgWG9bbl07ZnAobCxrLGEsYixjLCExLGgpfTsKZXA9ZnVuY3Rpb24oYT0hMSxiPTIwMCl7dmFyIGM9KCk9PntfLmJwKHt3cml0ZVRoZW5TZW5kOiEwfSx2b2lkIDAsYSxiKX0sZD1hcChhLGIpLGU9ZD09PWpwfHxkPT09a3A/NUUzOmxwO18ueCgid2ViX2dlbF90aW1lb3V0X2NhcCIpJiYhZC5vJiYoZT1kcCgoKT0+e2MoKX0sZSksZC5vPWUpO2hwKGQudik7ZT1fLncoIkxPR0dJTkdfQkFUQ0hfVElNRU9VVCIsXy5zaigid2ViX2dlbF9kZWJvdW5jZV9tcyIsMUU0KSk7Xy54KCJzaG9ydGVuX2luaXRpYWxfZ2VsX2JhdGNoX3RpbWVvdXQiKSYmbXAmJihlPW5wKTtlPWRwKCgpPT57Xy5zaigiZ2VsX21pbl9iYXRjaF9zaXplIik+MD9RbygpLmdldFNlcXVlbmNlQ291bnQoe2N0dEF1dGhJbmZvOnZvaWQgMCxpc0pzcGI6YSx0aWVyOmJ9KT49b3AmJmMoKTpjKCl9LGUpO2Qudj1lfTsKZnA9ZnVuY3Rpb24oYSxiLGMsZCxlPXt9LGYsaCl7dmFyIGs9TWF0aC5yb3VuZCgoMCxfLmVsKSgpKSxsPWEuc2l6ZSxtPXBwKGgpO2ZvcihsZXQgW24scF1vZiBhKXthPW47aD1wO2xldCByPV8ucWQoe2NvbnRleHQ6bW0oYi5jb25maWdffHxsbSgpKX0pO2lmKCFfLnlhKGgpJiYhXy54KCJ0aHJvd19lcnJfd2hlbl9sb2dldmVudF9tYWxmb3JtZWRfa2lsbHN3aXRjaCIpKXtkKCk7YnJlYWt9ci5ldmVudHM9aDsoaD1ncFthXSkmJnFwKHIsYSxoKTtkZWxldGUgZ3BbYV07bGV0IHQ9YT09PSJ2aXNpdG9yT25seUFwcHJvdmVkS2V5IjtycChyLGssdCk7Xy54KCJhbHdheXNfc2VuZF9hbmRfd3JpdGUiKSYmKGUud3JpdGVUaGVuU2VuZD0hMSk7bGV0IHY9QT0+e18ueCgic3RhcnRfY2xpZW50X2djZiIpJiZfLmpmLnBiKGFzeW5jKCk9Pnthd2FpdCBzcChBKX0pO2wtLTtsfHxjKCl9LHo9MCxFPSgpPT57eisrO2lmKGUuYnlwYXNzTmV0d29ya2xlc3MmJno9PT0xKXRyeXt2bihiLG0scix0cCh7d3JpdGVUaGVuU2VuZDohMH0sCnQsdixFLGYpKSxtcD0hMX1jYXRjaChBKXtfLlVpKEEpLGQoKX1sLS07bHx8YygpfTt0cnl7dm4oYixtLHIsdHAoZSx0LHYsRSxmKSksbXA9ITF9Y2F0Y2goQSl7Xy5VaShBKSxkKCl9fX07dHA9ZnVuY3Rpb24oYSxiLGMsZCxlKXthPXtyZXRyeTohMCxvblN1Y2Nlc3M6YyxvbkVycm9yOmQsbmV0d29ya2xlc3NPcHRpb25zOmEsZGFuZ2Vyb3VzTG9nVG9WaXNpdG9yU2Vzc2lvbjpiLGJJOiEhZSxoZWFkZXJzOnt9LHBvc3RCb2R5Rm9ybWF0OiIiLHBvc3RCb2R5OiIiLGNvbXByZXNzOl8ueCgiY29tcHJlc3NfZ2VsIil8fF8ueCgiY29tcHJlc3NfZ2VsX2xyIil9O3VwKCkmJihhLmhlYWRlcnNbIlgtR29vZy1SZXF1ZXN0LVRpbWUiXT1KU09OLnN0cmluZ2lmeShNYXRoLnJvdW5kKCgwLF8uZWwpKCkpKSk7cmV0dXJuIGF9OwpycD1mdW5jdGlvbihhLGIsYyl7dXAoKXx8KGEucmVxdWVzdFRpbWVNcz1TdHJpbmcoYikpO18ueCgidW5zcGxpdF9nZWxfcGF5bG9hZHNfaW5fbG9ncyIpJiYoYS51bnNwbGl0R2VsUGF5bG9hZHNJbkxvZ3M9ITApOyFjJiYoYj1fLncoIkVWRU5UX0lEIikpJiYoKGM9Xy53KCJCQVRDSF9DTElFTlRfQ09VTlRFUiIpfHwwKXx8KGM9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjY1NTM1LzIpKSxjKyssYz42NTUzNSYmKGM9MSksXy5RaSgiQkFUQ0hfQ0xJRU5UX0NPVU5URVIiLGMpLGEuc2VyaWFsaXplZENsaWVudEV2ZW50SWQ9e3NlcmlhbGl6ZWRFdmVudElkOmIsY2xpZW50Q291bnRlcjpTdHJpbmcoYyl9KX07CnFwPWZ1bmN0aW9uKGEsYixjKXtpZihjLnZpZGVvSWQpdmFyIGQ9IlZJREVPIjtlbHNlIGlmKGMucGxheWxpc3RJZClkPSJQTEFZTElTVCI7ZWxzZSByZXR1cm47YS5jcmVkZW50aWFsVHJhbnNmZXJUb2tlblRhcmdldElkPWM7YS5jb250ZXh0PWEuY29udGV4dHx8e307YS5jb250ZXh0LnVzZXI9YS5jb250ZXh0LnVzZXJ8fHt9O2EuY29udGV4dC51c2VyLmNyZWRlbnRpYWxUcmFuc2ZlclRva2Vucz1be3Rva2VuOmIsc2NvcGU6ZH1dfTsKUm89ZnVuY3Rpb24oYSl7dmFyIGI9Xy50aigiaWxfcGF5bG9hZF9zY3JhcGluZyIpPT09ImVuYWJsZV9pbF9wYXlsb2FkX3NjcmFwaW5nIjtpZighXy5zYSgieXQubG9nZ2luZy50cmFuc3BvcnQuZW5hYmxlU2NyYXBpbmdGb3JUZXN0IikpaWYoYil2cD1bXSxfLnJhKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5lbmFibGVTY3JhcGluZ0ZvclRlc3QiLCEwKSxfLnJhKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5zY3JhcGVkUGF5bG9hZHNGb3JUZXN0aW5nIix2cCksXy5yYSgieXQubG9nZ2luZy50cmFuc3BvcnQucGF5bG9hZFRvU2NyYXBlIiwidmlzdWFsRWxlbWVudFNob3duIHZpc3VhbEVsZW1lbnRIaWRkZW4gdmlzdWFsRWxlbWVudEF0dGFjaGVkIHNjcmVlbkNyZWF0ZWQgdmlzdWFsRWxlbWVudEdlc3R1cmVkIHZpc3VhbEVsZW1lbnRTdGF0ZUNoYW5nZWQiLnNwbGl0KCIgIikpLF8ucmEoInl0LmxvZ2dpbmcudHJhbnNwb3J0LmdldFNjcmFwZWRQYXlsb2FkRnJvbUNsaWVudEV2ZW50c0Z1bmN0aW9uIiksCl8ucmEoInl0LmxvZ2dpbmcudHJhbnNwb3J0LnNjcmFwZUNsaWVudEV2ZW50IiwhMCk7ZWxzZSByZXR1cm47Yj1fLnNhKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5zY3JhcGVkUGF5bG9hZHNGb3JUZXN0aW5nIik7dmFyIGM9Xy5zYSgieXQubG9nZ2luZy50cmFuc3BvcnQucGF5bG9hZFRvU2NyYXBlIiksZD1fLnNhKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5zY3JhcGVDbGllbnRFdmVudCIpO2lmKGMmJmMubGVuZ3RoPj0xKWZvcihsZXQgZT0wO2U8Yy5sZW5ndGg7ZSsrKWEmJmEucGF5bG9hZFtjW2VdXSYmKGQ/Yi5wdXNoKGEucGF5bG9hZCk6Yi5wdXNoKChhPy5wYXlsb2FkKVtjW2VdXSkpO18ucmEoInl0LmxvZ2dpbmcudHJhbnNwb3J0LnNjcmFwZWRQYXlsb2Fkc0ZvclRlc3RpbmciLGIpfTt1cD1mdW5jdGlvbigpe3JldHVybiBfLngoInVzZV9yZXF1ZXN0X3RpbWVfbXNfaGVhZGVyIil8fF8ueCgibHJfdXNlX3JlcXVlc3RfdGltZV9tc19oZWFkZXIiKX07CmRwPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8ueCgidHJhbnNwb3J0X3VzZV9zY2hlZHVsZXIiKT09PSExP18ubWooYSxiKTpfLngoImxvZ2dpbmdfYXZvaWRfYmxvY2tpbmdfZHVyaW5nX25hdmlnYXRpb24iKXx8Xy54KCJscl9sb2dnaW5nX2F2b2lkX2Jsb2NraW5nX2R1cmluZ19uYXZpZ2F0aW9uIik/Xy5ZaigoKT0+e18uaW8oKS5jdXJyZW50U3RhdGU9PT0ibm9uZSI/YSgpOl8uaW8oKS5pbnN0YWxsKHtub25lOntjYWxsYmFjazphfX0pfSxiKTpfLllqKGEsYil9O2hwPWZ1bmN0aW9uKGEpe18ueCgidHJhbnNwb3J0X3VzZV9zY2hlZHVsZXIiKT9fLmpmLkFhKGEpOndpbmRvdy5jbGVhclRpbWVvdXQoYSl9OwpzcD1hc3luYyBmdW5jdGlvbihhKXthPWE/LnJlc3BvbnNlQ29udGV4dD8uZ2xvYmFsQ29uZmlnR3JvdXA7dmFyIGI9Xy5CKGEsd3ApLGM9YT8uaG90SGFzaERhdGEsZD1fLkIoYSx4cCksZT1hPy5jb2xkSGFzaERhdGEsZj1fLnkoKS5yZXNvbHZlKF8uSW4oaW0pKTtmJiYoYyYmKGI/YXdhaXQgZ20oZixjLGIpOmF3YWl0IGdtKGYsYykpLGUmJihkP2F3YWl0IGhtKGYsZSxkKTphd2FpdCBobShmLGUpKSk7Yj1hPy5yYXdGaW5jaFN0YXRpY0NvbmZpZ0dyb3VwOyhhPWE/LmZpbmNoU3RhdGljSGFzaERhdGEpPyhjPV8ueSgpLnJlc29sdmUoXy5Jbih5cCkpKT9hd2FpdCBjLndLKHtjb25maWc6Ynx8e30saUk6YXx8IiJ9KTooYnx8YSkmJl8uV2kobmV3IF8uWGooIkZpbmNoQ29uZmlnTWFuYWdlclNlcnZpY2UgaXMgbm90IHByZXNlbnQsIGJ1dCBGaW5jaCBjb25maWcgZGF0YSBpcyBwcmVzZW50LiIpKTpiJiZfLldpKG5ldyBfLlhqKCJGaW5jaCBjb25maWcgZGF0YSBpcyBwcmVzZW50LCBidXQgaGFzaCBpcyBtaXNzaW5nLiIpKX07CmFwPWZ1bmN0aW9uKGEsYj0yMDApe3JldHVybiBhP2I9PT0zMDA/anA6enA6Yj09PTMwMD9rcDpBcH07VG89ZnVuY3Rpb24oYSl7YT1PYmplY3Qua2V5cyhhKTtmb3IobGV0IGIgb2YgYSlpZihVb1tiXSlyZXR1cm4gYn07Vm89ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgIkRFTEFZRURfRVZFTlRfVElFUl9VTlNQRUNJRklFRCI6cmV0dXJuIDA7Y2FzZSAiREVMQVlFRF9FVkVOVF9USUVSX0RFRkFVTFQiOnJldHVybiAxMDA7Y2FzZSAiREVMQVlFRF9FVkVOVF9USUVSX0RJU1BBVENIX1RPX0VNUFRZIjpyZXR1cm4gMjAwO2Nhc2UgIkRFTEFZRURfRVZFTlRfVElFUl9GQVNUIjpyZXR1cm4gMzAwO2Nhc2UgIkRFTEFZRURfRVZFTlRfVElFUl9JTU1FRElBVEUiOnJldHVybiA0MDA7ZGVmYXVsdDpyZXR1cm4gMjAwfX07Wm89ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT0iZ2VsRGVidWdnaW5nRXZlbnQifHxhPT09IndhdGNoVGltZVNlZ21lbnQifTsKcHA9ZnVuY3Rpb24oYT0hMSl7cmV0dXJuIGEmJl8ueCgidnNzX3Rocm91Z2hfZ2VsX3ZpZGVvX3N0YXRzIik/InZpZGVvX3N0YXRzIjoibG9nX2V2ZW50In07Cl8uQ3A9ZnVuY3Rpb24oYSxiLGMsZD17fSl7dmFyIGU9e30sZj1NYXRoLnJvdW5kKGQudGltZXN0YW1wfHwoMCxfLmVsKSgpKTtlLmV2ZW50VGltZU1zPWY8TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI/ZjowO2VbYV09YjthPV8uQm4oKTtlLmNvbnRleHQ9e2xhc3RBY3Rpdml0eU1zOlN0cmluZyhkLnRpbWVzdGFtcHx8IWlzRmluaXRlKGEpPy0xOmEpfTtkLnNlcXVlbmNlR3JvdXAmJiFfLngoIndlYl9nZWxfc2VxdWVuY2VfaW5mb19raWxsc3dpdGNoIikmJihhPWUuY29udGV4dCxiPWQuc2VxdWVuY2VHcm91cCxCcFtiXT1iIGluIEJwP0JwW2JdKzE6MCxhLnNlcXVlbmNlPXtpbmRleDpCcFtiXSxncm91cEtleTpifSxkLmVuZE9mU2VxdWVuY2UmJmRlbGV0ZSBCcFtkLnNlcXVlbmNlR3JvdXBdKTtfLngoIndlYl90YWdfYXV0b21hdGVkX2xvZ19ldmVudHMiKSYmKGUuY29udGV4dC5hdXRvbWF0ZWRMb2dFdmVudFNvdXJjZT1kLmF1dG9tYXRlZExvZ0V2ZW50U291cmNlKTsoZC5zZW5kSXNvbGF0ZWRQYXlsb2FkPwpXbzokbykoe2VuZHBvaW50OiJsb2dfZXZlbnQiLHBheWxvYWQ6ZSxjdHRBdXRoSW5mbzpkLmN0dEF1dGhJbmZvLGRhbmdlcm91c0xvZ1RvVmlzaXRvclNlc3Npb246ZC5kYW5nZXJvdXNMb2dUb1Zpc2l0b3JTZXNzaW9ufSxjKX07Xy5FcD1mdW5jdGlvbihhLGIsYz17fSl7dmFyIGQ9RHA7Xy53KCJ5dExvZ2dpbmdFdmVudHNEZWZhdWx0RGlzYWJsZWQiLCExKSYmRHA9PT1EcCYmKGQ9bnVsbCk7Xy5DcChhLGIsZCxjKX07CkZwPWZ1bmN0aW9uKGEsYj17fSl7aWYoYT1hLk5kKXtsZXQgYz1hLmZoLGQ9YS5BbDthPVtbImNvbXBvbmVudFN0YWNrIixhLmNvbXBvbmVudFN0YWNrXSxbIndpelRhZ05hbWUiLGEudGFnTmFtZV0sWyJ3aXpPd25lclRyYWNlIixhLnByPy5qb2luKCIgPiAiKV0sWyJlcnJvclNldmVyaXR5IixjPy50b1N0cmluZygpXSxbIndpekZlYXR1cmVGbGFncyIsZD9PYmplY3QuZW50cmllcyhkKS5qb2luKCJcbiIpOnZvaWQgMF1dO2ZvcihsZXQgW2UsZl1vZiBhKWE9ZixhIT09dm9pZCAwJiYoYltlXT1hKX1yZXR1cm4gYn07Xy5IcD1mdW5jdGlvbihhKXtfLkdwKGEpfTtfLklwPWZ1bmN0aW9uKGEpe18uR3AoYSwiV0FSTklORyIpfTsKXy5HcD1mdW5jdGlvbihhLGI9IkVSUk9SIixjLGQsZSxmPXt9LGg9ITEsayl7Zi5uYW1lPWN8fF8udygiSU5ORVJUVUJFX0NPTlRFWFRfQ0xJRU5UX05BTUUiLDEpO2YudmVyc2lvbj1kfHxfLncoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9WRVJTSU9OIik7SnAoYSxmLGIsaCxrKX07CkpwPWZ1bmN0aW9uKGEsYixjPSJFUlJPUiIsZD0hMSxlKXtpZihhKXthLmhhc093blByb3BlcnR5KCJsZXZlbCIpJiZhLmxldmVsJiYoYz1hLmxldmVsKTtpZihfLngoIndpel9lbmFibGVfbWV0YWRhdGFfZXh0cmFjdGlvbl9raWxsc3dpdGNoIikpe3ZhciBmPWI7aWYoIWY/LmNvbXBvbmVudFN0YWNrKXt2YXIgaD1hLk5kPy5jb21wb25lbnRTdGFjaztoJiYoZnx8KGY9e30pLGYuY29tcG9uZW50U3RhY2s9aCl9Yj1mfHxifWVsc2UgYj1GcChhLGIpLGY9YS5OZD8uZmgsZiE9PXZvaWQgMCYmYyE9PSJJR05PUkVEIiYmKGM9Zj49Mz8iRVJST1IiOiJXQVJOSU5HIik7aWYoXy54KCJjb25zb2xlX2xvZ19qc19leGNlcHRpb25zIil8fFsidGVzdCIsImRldiIsImF1dG9wdXNoIiwic3RhZ2luZyJdLmluY2x1ZGVzKF8udygiU0VSVkVSX1ZFUlNJT04iKSkpZj1bXSxmLnB1c2goYE5hbWU6ICR7YS5uYW1lfWApLGYucHVzaChgTWVzc2FnZTogJHthLm1lc3NhZ2V9YCksYS5oYXNPd25Qcm9wZXJ0eSgicGFyYW1zIikmJgpmLnB1c2goYEVycm9yIFBhcmFtczogJHtKU09OLnN0cmluZ2lmeShhLnBhcmFtcyl9YCksYS5oYXNPd25Qcm9wZXJ0eSgiYXJncyIpJiZmLnB1c2goYEVycm9yIGFyZ3M6ICR7SlNPTi5zdHJpbmdpZnkoYS5hcmdzKX1gKSxmLnB1c2goYEZpbGUgbmFtZTogJHthLmZpbGVOYW1lfWApLGYucHVzaChgU3RhY2t0cmFjZTogJHthLnN0YWNrfWApLGY9Zi5qb2luKCJcbiIpLHdpbmRvdy5jb25zb2xlLmxvZyhmLGEpO2lmKCEoS3A+PTUpKXtmPVtdO2ZvcihrIG9mIExwKXRyeXtrKCkmJmYucHVzaChrKCkpfWNhdGNoKEUpe312YXIgaz1mO2s9Wy4uLk1wLC4uLmtdO3ZhciBsPUViKGEpO2Y9bC5tZXNzYWdlfHwiVW5rbm93biBFcnJvciI7aD1sLm5hbWV8fCJVbmtub3duRXJyb3IiO3ZhciBtPWwuc3RhY2t8fGEuWEt8fCJOb3QgYXZhaWxhYmxlIjtpZihtLnN0YXJ0c1dpdGgoYCR7aH06ICR7Zn1gKSl7dmFyIG49bS5zcGxpdCgiXG4iKTtuLnNoaWZ0KCk7bT1uLmpvaW4oIlxuIil9bj1sLmxpbmVOdW1iZXJ8fAoiTm90IGF2YWlsYWJsZSI7bD1sLmZpbGVOYW1lfHwiTm90IGF2YWlsYWJsZSI7bGV0IHo9MDtpZihhLmhhc093blByb3BlcnR5KCJhcmdzIikmJmEuYXJncyYmYS5hcmdzLmxlbmd0aClmb3IodmFyIHA9MDtwPGEuYXJncy5sZW5ndGgmJiEoej1IbyhhLmFyZ3NbcF0sYHBhcmFtcy4ke3B9YCxiLHopLHo+PTUwMCk7cCsrKTtlbHNlIGlmKGEuaGFzT3duUHJvcGVydHkoInBhcmFtcyIpJiZhLnBhcmFtcyl7bGV0IEU9YS5wYXJhbXM7aWYodHlwZW9mIGEucGFyYW1zPT09Im9iamVjdCIpZm9yKHAgaW4gRSl7aWYoIUVbcF0pY29udGludWU7bGV0IEE9YHBhcmFtcy4ke3B9YCxGPUdvKEVbcF0pO2JbQV09Rjt6Kz1BLmxlbmd0aCtGLmxlbmd0aDtpZih6PjUwMClicmVha31lbHNlIGIucGFyYW1zPUdvKEUpfWlmKGsubGVuZ3RoKWZvcihwPTA7cDxrLmxlbmd0aCYmISh6PUhvKGtbcF0sYHBhcmFtcy5jb250ZXh0LiR7cH1gLGIseiksej49NTAwKTtwKyspO25hdmlnYXRvci52ZW5kb3ImJiFiLmhhc093blByb3BlcnR5KCJ2ZW5kb3IiKSYmCihiWyJkZXZpY2UudmVuZG9yIl09bmF2aWdhdG9yLnZlbmRvcik7cD17bWVzc2FnZTpmLG5hbWU6aCxsaW5lTnVtYmVyOm4sZmlsZU5hbWU6bCxzdGFjazptLHBhcmFtczpiLHNhbXBsZVdlaWdodDoxfTtiPU51bWJlcihhLmNvbHVtbk51bWJlcik7aXNOYU4oYil8fChwLmxpbmVOdW1iZXI9YCR7cC5saW5lTnVtYmVyfToke2J9YCk7aWYoYS5sZXZlbD09PSJJR05PUkVEIil2YXIgcj0wO2Vsc2UgYTp7YT1fLkJvKCk7Zm9yKHIgb2YgYS5sZSlpZihwLm1lc3NhZ2UmJnAubWVzc2FnZS5tYXRjaChyLldKKSl7cj1yLndlaWdodDticmVhayBhfWZvcih2YXIgdCBvZiBhLlNkKWlmKHQuY2FsbGJhY2socCkpe3I9dC53ZWlnaHQ7YnJlYWsgYX1yPTF9cC5zYW1wbGVXZWlnaHQ9cjtyPXA7Zm9yKHZhciB2IG9mIE5wKXtpZighdi5KaltyLm5hbWVdKWNvbnRpbnVlO3Q9di5KaltyLm5hbWVdO2ZvcihsZXQgRSBvZiB0KXt0PXIubWVzc2FnZS5tYXRjaChFLnJlZ2V4cCk7aWYoIXQpY29udGludWU7CnIucGFyYW1zWyJwYXJhbXMuZXJyb3Iub3JpZ2luYWwiXT10WzBdO2E9RS5ncm91cHM7cD17fTtmb3IoYj0wO2I8YS5sZW5ndGg7YisrKXBbYVtiXV09dFtiKzFdLHIucGFyYW1zW2BwYXJhbXMuZXJyb3IuJHthW2JdfWBdPXRbYisxXTtyLm1lc3NhZ2U9di5wbShwKTticmVha319ci5wYXJhbXN8fChyLnBhcmFtcz17fSk7dj1fLkJvKCk7ci5wYXJhbXNbInBhcmFtcy5lcnJvclNlcnZpY2VTaWduYXR1cmUiXT1gbXNnPSR7di5sZS5sZW5ndGh9JmNiPSR7di5TZC5sZW5ndGh9YDtyLnBhcmFtc1sicGFyYW1zLnNlcnZpY2VXb3JrZXIiXT0iZmFsc2UiO18udS5kb2N1bWVudCYmXy51LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwmJihyLnBhcmFtc1sicGFyYW1zLmZzY3JpcHRzIl09U3RyaW5nKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdDpub3QoW25vbmNlXSkiKS5sZW5ndGgpKTsobmV3IE9wKFBwLCJzYW1wbGUiKSkuY29uc3RydWN0b3IhPT1PcCYmKHIucGFyYW1zWyJwYXJhbXMuZmNvbnN0Il09CiJ0cnVlIik7d2luZG93Lnl0ZXJyJiZ0eXBlb2Ygd2luZG93Lnl0ZXJyPT09ImZ1bmN0aW9uIiYmd2luZG93Lnl0ZXJyKHIpO3Iuc2FtcGxlV2VpZ2h0PT09MHx8UXAuaGFzKHIubWVzc2FnZSl8fChkP1JwKHIsYyk6U3AocixjLGUpKX19fTtScD1mdW5jdGlvbihhLGI9IkVSUk9SIil7VHAoYixhKTtVcChhKX07ClNwPWZ1bmN0aW9uKGEsYj0iRVJST1IiLGMpe2lmKGI9PT0iRVJST1IiKXtfLlZwLnB1Ymxpc2goImhhbmRsZUVycm9yIixhKTtpZihfLngoInJlY29yZF9hcHBfY3Jhc2hlZF93ZWIiKSYmV3A9PT0wJiZhLnNhbXBsZVdlaWdodD09PTEpe1dwKys7bGV0IGQ9e2FwcENyYXNoVHlwZToiQVBQX0NSQVNIX1RZUEVfQlJFQUtQQUQifTtfLngoInJlcG9ydF9jbGllbnRfZXJyb3Jfd2l0aF9hcHBfY3Jhc2hfa3MiKXx8KGQuc3lzdGVtSGVhbHRoPXtjcmFzaERhdGE6e2NsaWVudEVycm9yOntsb2dNZXNzYWdlOnttZXNzYWdlOmEubWVzc2FnZX19fX0pO18uRXAoImFwcENyYXNoZWQiLGQpfVhwKyt9ZWxzZSBiPT09IldBUk5JTkciJiZfLlZwLnB1Ymxpc2goImhhbmRsZVdhcm5pbmciLGEpO18ueCgia2V2bGFyX2dlbF9lcnJvcl9yb3V0aW5nIikmJihjPVlwKGIsYSxjKSkmJihfLkVwKCJjbGllbnRFcnJvciIsYyksKGI9PT0iRVJST1IifHxfLngoImVycm9yc19mbHVzaF9nZWxfYWx3YXlzX2tpbGxzd2l0Y2giKSkmJgpfLmJwKHZvaWQgMCx2b2lkIDAsITEpKTtfLngoInN1cHByZXNzX2Vycm9yXzIwNF9sb2dnaW5nIil8fFRwKGIsYSk7VXAoYSl9O1VwPWZ1bmN0aW9uKGEpe3RyeXtRcC5hZGQoYS5tZXNzYWdlKX1jYXRjaChiKXt9S3ArK307CllwPWZ1bmN0aW9uKGEsYixjPXt9KXthOntmb3IoZCBvZiBacClpZihfLk1rKGQudG9Mb3dlckNhc2UoKSkpe3ZhciBkPSEwO2JyZWFrIGF9ZD0hMX1pZighZCl7dmFyIGU9e3N0YWNrVHJhY2U6Yi5zdGFja307Yi5maWxlTmFtZSYmKGUuZmlsZW5hbWU9Yi5maWxlTmFtZSk7ZD1iLmxpbmVOdW1iZXImJmIubGluZU51bWJlci5zcGxpdD9iLmxpbmVOdW1iZXIuc3BsaXQoIjoiKTpbXTtkLmxlbmd0aCE9PTAmJihkLmxlbmd0aCE9PTF8fGlzTmFOKE51bWJlcihkWzBdKSk/ZC5sZW5ndGghPT0yfHxpc05hTihOdW1iZXIoZFswXSkpfHxpc05hTihOdW1iZXIoZFsxXSkpfHwoZS5saW5lTnVtYmVyPU51bWJlcihkWzBdKSxlLmNvbHVtbk51bWJlcj1OdW1iZXIoZFsxXSkpOmUubGluZU51bWJlcj1OdW1iZXIoZFswXSkpO2Q9e2xldmVsOiJFUlJPUl9MRVZFTF9VTktOT1dOIixtZXNzYWdlOmIubWVzc2FnZSxlcnJvckNsYXNzTmFtZTpiLm5hbWUsc2FtcGxlV2VpZ2h0OmIuc2FtcGxlV2VpZ2h0fTsKYT09PSJFUlJPUiI/ZC5sZXZlbD0iRVJST1JfTEVWRUxfRVJST1IiOmE9PT0iV0FSTklORyImJihkLmxldmVsPSJFUlJPUl9MRVZFTF9XQVJOTklORyIpO2E9e2lzT2JmdXNjYXRlZDohMCxicm93c2VyU3RhY2tJbmZvOmV9O2MucGFnZVVybD13aW5kb3cubG9jYXRpb24uaHJlZjtjLmt2UGFpcnM9W107Xy53KCJGRVhQX0VYUEVSSU1FTlRTIikmJihjLmV4cGVyaW1lbnRJZHM9Xy53KCJGRVhQX0VYUEVSSU1FTlRTIikpO2U9Xy53KCJMQVRFU1RfRUNBVENIRVJfU0VSVklDRV9UUkFDS0lOR19QQVJBTVMiKTtpZighXy5SaSgid2ViX2Rpc2FibGVfZ2VsX3N0cF9lY2F0Y2hlcl9raWxsc3dpdGNoIikmJmUpZm9yKHZhciBmIG9mIE9iamVjdC5rZXlzKGUpKWMua3ZQYWlycy5wdXNoKHtrZXk6Zix2YWx1ZTpTdHJpbmcoZVtmXSl9KTtpZihmPWIucGFyYW1zKWZvcih2YXIgaCBvZiBPYmplY3Qua2V5cyhmKSljLmt2UGFpcnMucHVzaCh7a2V5OmBjbGllbnQuJHtofWAsdmFsdWU6U3RyaW5nKGZbaF0pfSk7CmlmKGI9Yi5wYXJhbXM/LnNlc3Npb25SZXBsYXlJZCljLnNlc3Npb25SZXBsYXlJZD1TdHJpbmcoYik7Yj1fLncoIlNFUlZFUl9OQU1FIik7aD1fLncoIlNFUlZFUl9WRVJTSU9OIik7YiYmaCYmKGMua3ZQYWlycy5wdXNoKHtrZXk6InNlcnZlci5uYW1lIix2YWx1ZTpifSksYy5rdlBhaXJzLnB1c2goe2tleToic2VydmVyLnZlcnNpb24iLHZhbHVlOmh9KSk7KGI9Xy53KCJQTEFZRVJfQ0xJRU5UX1ZFUlNJT04iKSkmJmMua3ZQYWlycy5wdXNoKHtrZXk6ImNsaWVudC5wbGF5ZXIudmVyc2lvbiIsdmFsdWU6Yn0pO3JldHVybntlcnJvck1ldGFkYXRhOmMsc3RhY2tUcmFjZTphLGxvZ01lc3NhZ2U6ZH19fTsKVHA9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnBhcmFtc3x8e307YT17dXJsUGFyYW1zOnthOiJsb2dlcnJvciIsdDoianNlcnJvciIsdHlwZTpiLm5hbWUsbXNnOmIubWVzc2FnZS5zdWJzdHIoMCwyNTApLGxpbmU6Yi5saW5lTnVtYmVyLGxldmVsOmEsImNsaWVudC5uYW1lIjpjLm5hbWV9LHBvc3RQYXJhbXM6e3VybDpfLncoIlBBR0VfTkFNRSIsd2luZG93LmxvY2F0aW9uLmhyZWYpLGZpbGU6Yi5maWxlTmFtZX0sbWV0aG9kOiJQT1NUIn07Yy52ZXJzaW9uJiYoYVsiY2xpZW50LnZlcnNpb24iXT1jLnZlcnNpb24pO2lmKGEucG9zdFBhcmFtcyl7Yi5zdGFjayYmKGEucG9zdFBhcmFtcy5zdGFjaz1iLnN0YWNrKTtmb3IobGV0IGUgb2YgT2JqZWN0LmtleXMoYykpYS5wb3N0UGFyYW1zW2BjbGllbnQuJHtlfWBdPWNbZV07aWYoYj1fLncoIkxBVEVTVF9FQ0FUQ0hFUl9TRVJWSUNFX1RSQUNLSU5HX1BBUkFNUyIpKWZvcih2YXIgZCBvZiBPYmplY3Qua2V5cyhiKSlhLnBvc3RQYXJhbXNbZF09CmJbZF07KGQ9Xy53KCJMQVZBX1ZFUlNJT04iKSkmJihhLnBvc3RQYXJhbXNbImxhdmEudmVyc2lvbiJdPWQpO2Q9Xy53KCJTRVJWRVJfTkFNRSIpO2I9Xy53KCJTRVJWRVJfVkVSU0lPTiIpO2QmJmImJihhLnBvc3RQYXJhbXNbInNlcnZlci5uYW1lIl09ZCxhLnBvc3RQYXJhbXNbInNlcnZlci52ZXJzaW9uIl09Yik7KGQ9Xy53KCJQTEFZRVJfQ0xJRU5UX1ZFUlNJT04iKSkmJihhLnBvc3RQYXJhbXNbImNsaWVudC5wbGF5ZXIudmVyc2lvbiJdPWQpfV8uemooYCR7Xy53KCJFQ0FUQ0hFUl9SRVBPUlRfSE9TVCIsIiIpfS9lcnJvcl8yMDRgLGEpfTthcT1mdW5jdGlvbigpeyRwLmluc3RhbmNlfHwoJHAuaW5zdGFuY2U9bmV3ICRwKTtyZXR1cm4gJHAuaW5zdGFuY2V9OwpjcT1mdW5jdGlvbihhLGIpe2JxW2JdPWJxW2JdfHx7Y291bnQ6MH07dmFyIGM9YnFbYl07Yy5jb3VudCsrO2MudGltZT0oMCxfLmVsKSgpO2Euanx8KGEuaj1fLllqKCgpPT57dmFyIGQ9KDAsXy5lbCkoKTtmb3IobGV0IGUgaW4gYnEpYnFbZV0mJmQtYnFbZV0udGltZT42RTQmJmRlbGV0ZSBicVtlXTthJiYoYS5qPTApfSw1RTMpKTtyZXR1cm4gYy5jb3VudD41PyhjLmNvdW50PT09NiYmTWF0aC5yYW5kb20oKSoxRTU8MSYmKGM9bmV3IF8uWGooIkNTSSBkYXRhIGV4Y2VlZGVkIGxvZ2dpbmcgbGltaXQgd2l0aCBrZXkiLGIuc3BsaXQoIl8iKSksYi5pbmRleE9mKCJwbGV2Iik+PTB8fF8uSXAoYykpLCEwKTohMX07ZHE9ZnVuY3Rpb24oYT0wKXtyZXR1cm4gXy53KCJjbGllbnQtc2NyZWVuLW5vbmNlLXN0b3JlIix7fSlbYV19OwplcT1mdW5jdGlvbihhLGI9MCl7dmFyIGM9Xy53KCJjbGllbnQtc2NyZWVuLW5vbmNlLXN0b3JlIik7Y3x8KGM9e30sXy5RaSgiY2xpZW50LXNjcmVlbi1ub25jZS1zdG9yZSIsYykpO2NbYl09YX07ZnE9ZnVuY3Rpb24oYT0wKXtyZXR1cm4gYT09PTA/IlJPT1RfVkVfVFlQRSI6YFJPT1RfVkVfVFlQRS4ke2F9YH07Xy5ncT1mdW5jdGlvbihhPTApe3JldHVybiBfLncoZnEoYSkpfTtocT1mdW5jdGlvbigpe3ZhciBhPV8udygiY3NuLXRvLWN0dC1hdXRoLWluZm8iKTthfHwoYT17fSxfLlFpKCJjc24tdG8tY3R0LWF1dGgtaW5mbyIsYSkpO3JldHVybiBhfTtfLmlxPWZ1bmN0aW9uKGE9MCl7YT1kcShhKTtpZighYSYmIV8udygiVVNFX0NTTl9GQUxMQkFDSyIsITApKXJldHVybiBudWxsO2F8fChhPSJVTkRFRklORURfQ1NOIik7cmV0dXJuIGE/YTpudWxsfTtqcT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9aHEoKTsoYz1fLmlxKGMpKSYmZGVsZXRlIGRbY107YiYmKGRbYV09Yil9OwpfLmtxPWZ1bmN0aW9uKGEpe3JldHVybiBocSgpW2FdfTtfLm1xPWZ1bmN0aW9uKGEsYixjPTAsZCl7aWYoYSE9PWRxKGMpfHxiIT09Xy53KGZxKGMpKSlpZihqcShhLGQsYyksZXEoYSxjKSxfLlFpKGZxKGMpLGIpLGI9KCk9PntzZXRUaW1lb3V0KCgpPT57YSYmXy5FcCgiZm9yZWdyb3VuZEhlYXJ0YmVhdFNjcmVlbkFzc29jaWF0ZWQiLHtjbGllbnREb2N1bWVudE5vbmNlOmxxLGNsaWVudFNjcmVlbk5vbmNlOmF9KX0sMCl9LCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiaW4gd2luZG93KXRyeXt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGIpfWNhdGNoKGUpe2IoKX1lbHNlIGIoKX07Xy5vcT1mdW5jdGlvbihhLGIpe18ubnEoIl9zdGFydCIsYSxiKX07Cl8ucHE9ZnVuY3Rpb24oYSxiKXtpZighXy54KCJ3ZWJfY3NpX2FjdGlvbl9zYW1wbGluZ19lbmFibGVkIil8fCFfLmtvKGIpLmFjdGlvbkRpc2FibGVkKXt2YXIgYz1fLnVvKGJ8fCIiKTtfLnluKGMuaW5mbyxhKTthLmxvYWRUeXBlJiYoYz1hLmxvYWRUeXBlLF8ubG8oYikubG9hZFR5cGU9Yyk7Xy55bihfLm9vKGIpLGEpO2M9Xy5wbyhiKTtiPV8ua28oYikuY3R0QXV0aEluZm87YXEoKS5pbmZvKGEsYyxiKX19O3FxPWZ1bmN0aW9uKCl7cmV0dXJuKF8ueSgpLnJlc29sdmUoXy5JbihpbSkpPy53aigpPy5sb2dnaW5nSG90Q29uZmlnPy5jc2lDb25maWc/LmRlYnVnVGlja3M/P1tdKS5tYXAoYT0+T2JqZWN0LnZhbHVlcyhhKVswXSl9OwpfLm5xPWZ1bmN0aW9uKGEsYixjKXtpZighXy54KCJ3ZWJfY3NpX2FjdGlvbl9zYW1wbGluZ19lbmFibGVkIil8fCFfLmtvKGMpLmFjdGlvbkRpc2FibGVkKXt2YXIgZD1fLnBvKGMpLGU7aWYoZT1fLngoIndlYl9jc2lfZGVidWdfc2FtcGxlX2VuYWJsZWQiKSYmZCl7Xy55KCkucmVzb2x2ZShfLkluKGltKSk/LndqKCkmJiFycSYmKHJxPSEwLF8ubnEoImdjZmwiLCgwLF8uZWwpKCksYykpO2U9Xy55KCkucmVzb2x2ZShfLkluKGltKSk/LndqKCk/LmxvZ2dpbmdIb3RDb25maWc/LmNzaUNvbmZpZz8uZGVidWdTYW1wbGVXZWlnaHR8fDA7dmFyIGY7aWYoZj1lIT09MCliOntmPXFxKCk7aWYoZi5sZW5ndGg+MClmb3IodmFyIGg9MDtoPGYubGVuZ3RoO2grKylpZihhPT09ZltoXSl7Zj0hMDticmVhayBifWY9ITF9Zj8oZT1fLkduKGQpJWUhPT0wLF8ua28oYykuZGVidWdUaWNrc0V4Y2x1ZGVkTG9nZ2VkfHwoZj17fSxmLmRlYnVnVGlja3NFeGNsdWRlZD1lLF8ucHEoZixjKSksXy5rbyhjKS5kZWJ1Z1RpY2tzRXhjbHVkZWRMb2dnZWQ9CiEwKTplPSExfWlmKCFlKXtpZihhWzBdIT09Il8iJiYoZT1hLF8uc3EubWFyaykpe2Uuc3RhcnRzV2l0aCgibWFya18iKXx8KGU9Im1hcmtfIitlKTtjJiYoZSs9YCAoJHtjfSlgKTtmPWU7aD17fTtpZihiIT09dm9pZCAwJiYhXy54KCJ3ZWJfY3NpX2Rpc2FibGVfYWx0X3RpbWVfcGVyZm9ybWFuY2VfbWFyayIpKXtsZXQgbD1iO2w9Xy54KCJjc2lfdXNlX3BlcmZvcm1hbmNlX25hdmlnYXRpb25fdGltaW5nIik/bC1fLnNxLnRpbWVPcmlnaW46bC0oXy5zcS50aW1lT3JpZ2lufHxfLnNxLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnQpO2guc3RhcnRUaW1lPWx9Xy54KCJjc2lfZW5hYmxlX2Nocm9tZV9kZXZ0b29sc19wZXJmb3JtYW5jZV90aW1lbGluZV9pbnRlZ3JhdGlvbiIpJiYoaC5kZXRhaWw9e3ZJOntkYXRhVHlwZToibWFya2VyIixjb2xvcjoicHJpbWFyeSIsdG9vbHRpcFRleHQ6Zn19KTtmPU9iamVjdC5rZXlzKGgpLmxlbmd0aD4wP2g6dm9pZCAwO3RyeXtfLnNxLm1hcmsoZSxmKX1jYXRjaChsKXtfLnNxLm1hcmsoZSl9fWU9Cl8udW8oY3x8IiIpO2UudGlja1thXT1ifHwoMCxfLmVsKSgpO2lmKGUuY2FsbGJhY2smJmUuY2FsbGJhY2tbYV0pZm9yKHZhciBrIG9mIGUuY2FsbGJhY2tbYV0paygpO2s9Xy5ubyhjKTtrLmdlbFRpY2tzJiYoay5nZWxUaWNrc1thXT0hMCk7ZT1fLm1vKGMpO2s9Ynx8KDAsXy5lbCkoKTtlW2FdPWs7ZT1fLmtvKGMpLmN0dEF1dGhJbmZvO2E9PT0iX3N0YXJ0Ij8oYT1hcSgpLGNxKGEsYGJhc2VsaW5lXyR7ZH1gKXx8Xy5FcCgibGF0ZW5jeUFjdGlvbkJhc2VsaW5lZCIse2NsaWVudEFjdGlvbk5vbmNlOmR9LHt0aW1lc3RhbXA6YixjdHRBdXRoSW5mbzplfSkpOmFxKCkudGljayhhLGQsYixlKTtfLnRxKGMpO3JldHVybiBrfX19OwpfLnZxPWZ1bmN0aW9uKGEpe3ZhciBiPV8udXEoImFmdCIsYSk7aWYoYilyZXR1cm4gYjtiPV8udygoYXx8IiIpKyJUSU1JTkdfQUZUX0tFWVMiLFsib2wiXSk7dmFyIGM9Yi5sZW5ndGg7Zm9yKGxldCBkPTA7ZDxjO2QrKyl7bGV0IGU9Xy51cShiW2RdLGEpO2lmKGUpcmV0dXJuIGV9cmV0dXJuIE5hTn07Xy51cT1mdW5jdGlvbihhLGIpe2lmKGE9Xy5tbyhiKVthXSlyZXR1cm4gdHlwZW9mIGE9PT0ibnVtYmVyIj9hOmFbYS5sZW5ndGgtMV19O18udHE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy51cSgiX3N0YXJ0IixhKSxjPV8udnEoYSksZD0hd3E7YiYmYyYmZCYmKF8uc20oeHEsbmV3IHlxKE1hdGgucm91bmQoYy1iKSxhKSksd3E9ITApfTtfLnpxPWZ1bmN0aW9uKGEsYixjPSExKXtfLlZpKF8ucHEpKGEsYixjKX07Xy5BcT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uVmkoXy5ucSkoYSxiLGMpfTsKXy5CcT1mdW5jdGlvbihhLGIpe3JldHVybiBfLlZpKCgpPT57dmFyIGM9Xy5tbyhiKTtyZXR1cm4gYSBpbiBjfSkoKX07a2E9T2JqZWN0LmNyZWF0ZTtqYT1PYmplY3QuZGVmaW5lUHJvcGVydHk7aWE9Z2xvYmFsVGhpcztjYT0iSW50OCBVaW50OCBVaW50OENsYW1wZWQgSW50MTYgVWludDE2IEludDMyIFVpbnQzMiBGbG9hdDMyIEZsb2F0NjQiLnNwbGl0KCIgIik7aWEuQmlnSW50NjRBcnJheSYmKGNhLnB1c2goIkJpZ0ludDY0IiksY2EucHVzaCgiQmlnVWludDY0IikpO3ZhciBsYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y7ZmEoIlN5bWJvbC5kaXNwb3NlIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOlN5bWJvbCgiYSIpfSk7CmZhKCJTdXBwcmVzc2VkRXJyb3IiLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyxkLGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGIpKXJldHVybiBuZXcgYihjLGQsZSk7ZT1FcnJvcihlKTsic3RhY2siaW4gZSYmKHRoaXMuc3RhY2s9ZS5zdGFjayk7dGhpcy5tZXNzYWdlPWUubWVzc2FnZTt0aGlzLmVycm9yPWM7dGhpcy5zdXBwcmVzc2VkPWR9aWYoYSlyZXR1cm4gYTtuYShiLEVycm9yKTtiLnByb3RvdHlwZS5uYW1lPSJTdXBwcmVzc2VkRXJyb3IiO3JldHVybiBifSk7CmZhKCJTdHJpbmcucHJvdG90eXBlLnJlcGxhY2VBbGwiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXtpZihiIGluc3RhbmNlb2YgUmVnRXhwJiYhYi5nbG9iYWwpdGhyb3cgbmV3IFR5cGVFcnJvcigiYiIpO3JldHVybiBiIGluc3RhbmNlb2YgUmVnRXhwP3RoaXMucmVwbGFjZShiLGMpOnRoaXMucmVwbGFjZShuZXcgUmVnRXhwKFN0cmluZyhiKS5yZXBsYWNlKC8oWy0oKVxbXF17fSs/Ki4kXF58LDojPCFcXF0pL2csIlxcJDEiKS5yZXBsYWNlKC9ceDA4L2csIlxceDA4IiksImciKSxjKX19KTtmYSgiUHJvbWlzZS53aXRoUmVzb2x2ZXJzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKCl7dmFyIGIsYztyZXR1cm57cHJvbWlzZTpuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2I9ZDtjPWV9KSxyZXNvbHZlOmIscmVqZWN0OmN9fX0pOwpmYSgiT2JqZWN0Lmhhc093biIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYixjKX19KTtmYSgiQXJyYXkucHJvdG90eXBlLmF0IixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOnFhfSk7ZWEoImF0IixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOnFhfSk7ZmEoIlN0cmluZy5wcm90b3R5cGUuYXQiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6cWF9KTtfLl9EdW1wRXhjZXB0aW9uPXdpbmRvdy5fRHVtcEV4Y2VwdGlvbnx8ZnVuY3Rpb24oYSl7dGhyb3cgYTt9O3dpbmRvdy5fRHVtcEV4Y2VwdGlvbj1fLl9EdW1wRXhjZXB0aW9uO3dpbmRvdy55dGNzaSYmd2luZG93Lnl0Y3NpLnRpY2smJndpbmRvdy55dGNzaS50aWNrKCJyc2VzX2RwaiIpO18uQ3E9Xy5DcXx8e307Xy51PXRoaXN8fHNlbGY7Xy5EcT1fLnUuX0ZfdG9nZ2xlc19kZWZhdWx0X2Jhc2V8fFtdO3ZhLmdldD1mdW5jdGlvbigpe3JldHVybiBudWxsfTtfLmVoPW51bGw7Xy5FcT0iY2xvc3VyZV91aWRfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKTt2YXIgJG09Y2xhc3N7Y29uc3RydWN0b3Ioe3VybDphLGtMOmJ9KXt0aGlzLm89YTt0aGlzLkI9Yjt0aGlzLnY9KG5ldyBEYXRlKS5nZXRUaW1lKCktMTcwNDA2NzJFNTt0aGlzLmo9e307Zm9yKHZhciBjPS9bPyZdKFteJj1dKyk9KFteJl0qKS9nO2I9Yy5leGVjKGEpOyl0aGlzLmpbYlsxXV09YlsyXX19O18uSGEoXy5MYSxFcnJvcik7Xy5MYS5wcm90b3R5cGUubmFtZT0iQ3VzdG9tRXJyb3IiO3ZhciB3ZDt2YXIgTmE9Z2xvYmFsVGhpcy50cnVzdGVkVHlwZXMsUWE7Xy5TYT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX10b1N0cmluZygpe3JldHVybiB0aGlzLmorIiJ9fTtWYShhPT5hYGApfHxWYShhPT5hYFwwYCl8fFZhKGE9PmFgXG5gKXx8VmEoYT0+YWBcdTAwMDBgKTtfLldhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaj1hfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuan19O18uRnE9bmV3IF8uV2EoImFib3V0OmludmFsaWQjekNsb3N1cmV6Iik7dmFyIFphLGNiO1phPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuZmI9YX19O18uR3E9bmV3IFphKGE9Pi9eW146XSooWy8/I118JCkvLnRlc3QoYSkpO18uSHE9JGEoInRlbCIpO18uSXE9JGEoImRhdGEiKTtfLkpxPSRhKCJodHRwIik7Xy5LcT0kYSgiaHR0cHMiKTtfLkxxPSRhKCJmdHAiKTtfLk1xPSRhKCJtYWlsdG8iKTtfLk5xPSRhKCJpbnRlbnQiKTtfLk9xPSRhKCJzbXMiKTtfLlBxPSRhKCJ2bmQueW91dHViZSIpO18uYWI9W18uSXEsXy5KcSxfLktxLF8uTXEsXy5McSxfLkdxXTtjYj0vXlxzKig/IWphdmFzY3JpcHQ6KSg/OltcdysuLV0rOnxbXjovPyNdKig/OlsvPyNdfCQpKS9pO18uZmI9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWF9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5qKyIifX07Xy5qYj1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX10b1N0cmluZygpe3JldHVybiB0aGlzLmorIiJ9fTt2YXIgcGI9ImFsdGVybmF0ZSBhdXRob3IgYm9va21hcmsgY2Fub25pY2FsIGNpdGUgaGVscCBpY29uIGxpY2Vuc2UgbW9kdWxlcHJlbG9hZCBuZXh0IHByZWZldGNoIGRucy1wcmVmZXRjaCBwcmVyZW5kZXIgcHJlY29ubmVjdCBwcmVsb2FkIHByZXYgc2VhcmNoIHN1YnJlc291cmNlIi5zcGxpdCgiICIpO3ZhciBEYj17fTt2YXIgS2I7S2I9UmVnRXhwKCJeKD86KFteOi8/Iy5dKyk6KT8oPzovLyg/OihbXlxcXFwvPyNdKilAKT8oW15cXFxcLz8jXSo/KSg/OjooWzAtOV0rKSk/KD89W1xcXFwvPyNdfCQpKT8oW14/I10rKT8oPzpcXD8oW14jXSopKT8oPzojKFtcXHNcXFNdKikpPyQiKTtfLlliPS8jfCQvO3ZhciBRcT0hIShfLkRxWzBdPj4yNSYxKSxScT0hIShfLkRxWzBdPj4yMCYxKSxTcT0hIShfLkRxWzBdPj4yNyYxKSxUcT0hIShfLkRxWzBdJjgpLFVxPSEhKF8uRHFbMF0mODE5MiksVnE9ISEoXy5EcVswXT4+MTkmMSksV3E9ISEoXy5EcVswXT4+MTcmMSksWHE9ISEoXy5EcVswXT4+MTgmMSk7dmFyIGRjLFZjLGRlLEFlLFZnO2RjPVFxP1NxOnVhKDYxMDQwMTMwMSwhMSk7Xy5ZcT1RcT9UcTp1YSg1MTM2NTk1MjMsITEpO1ZjPVFxP1JxfHwhVXE6dWEoNzQ4NDAyMTQ3LCEwKTtkZT1RcT9WcTp1YSg5MTk0NDQ4MjQsITEpO0FlPVFxP1dxOnVhKDkyODg3NTM5OCwhMSk7Vmc9UXE/WHE6dWEoNjgzNzQ5MjAxLCExKTt2YXIgZWMsWnE9Xy51Lm5hdmlnYXRvcjtlYz1acT9acS51c2VyQWdlbnREYXRhfHxudWxsOm51bGw7Xy5wY1siICJdPWZ1bmN0aW9uKCl7fTt2YXIgJHEsYXIsYnI7JHE9amMoKTthcj1pYygpPyExOmhjKCJUcmlkZW50Iil8fGhjKCJNU0lFIik7Xy5KbD1oYygiRWRnZSIpO2JyPWhjKCJHZWNrbyIpJiYhKF8uYmMoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpIT0tMSYmIWhjKCJFZGdlIikpJiYhKGhjKCJUcmlkZW50Iil8fGhjKCJNU0lFIikpJiYhaGMoIkVkZ2UiKTtfLmNyPV8uYmMoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpIT0tMSYmIWhjKCJFZGdlIik7Xy5kcj1fLmNyJiZoYygiTW9iaWxlIik7bmMoKXx8aGMoIk1hY2ludG9zaCIpO25jKCl8fGhjKCJXaW5kb3dzIik7KG5jKCk/ZWMucGxhdGZvcm09PT0iTGludXgiOmhjKCJMaW51eCIpKXx8bmMoKXx8aGMoIkNyT1MiKTtfLmVyPW5jKCk/ZWMucGxhdGZvcm09PT0iQW5kcm9pZCI6aGMoIkFuZHJvaWQiKTtvYygpO2hjKCJpUGFkIik7aGMoImlQb2QiKTtfLmZyPW9jKCl8fGhjKCJpUGFkIil8fGhjKCJpUG9kIik7Cl8uZ3I9Xy5iYygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigia2Fpb3MiKSE9LTE7a2MoKTtfLmhyPW9jKCl8fGhjKCJpUG9kIik7Xy5pcj1oYygiaVBhZCIpOyFoYygiQW5kcm9pZCIpfHxtYygpfHxrYygpfHxqYygpfHxoYygiU2lsayIpO21jKCk7Xy5Paz1oYygiU2FmYXJpIikmJiEobWMoKXx8KGljKCk/MDpoYygiQ29hc3QiKSl8fGpjKCl8fChpYygpPzA6aGMoIkVkZ2UiKSl8fChpYygpP2ZjKCJNaWNyb3NvZnQgRWRnZSIpOmhjKCJFZGcvIikpfHwoaWMoKT9mYygiT3BlcmEiKTpoYygiT1BSIikpfHxrYygpfHxoYygiU2lsayIpfHxoYygiQW5kcm9pZCIpKSYmIShvYygpfHxoYygiaVBhZCIpfHxoYygiaVBvZCIpKTt2YXIgcmM9e30sdmM9bnVsbDt2YXIgd2M9dm9pZCAwO3ZhciBIYyxZYyxTYztfLkpjPV8ueWMoKTtfLmpyPV8ueWMoKTtIYz1fLnljKCk7Xy5rcj1fLnljKCk7WWM9Xy55YygpO18uT2M9Xy55YygibV9tIiwhMCk7U2M9Xy55YygpO18ubHI9Xy55YygpO3ZhciBucjtfLkFjPV8ueWMoImphcyIsITApO25yPVtdO25yW18uQWNdPTc7Xy5tcj1PYmplY3QuZnJlZXplKG5yKTtfLlBjPXt9O18uemM9e307Xy5vcj1PYmplY3QuZnJlZXplKHt9KTtfLnByPV8uQ2MoYT0+YSE9PW51bGwmJmEhPT12b2lkIDApO3ZhciBFYyxEYztFYz1fLkNjKGE9PnR5cGVvZiBhPT09Im51bWJlciIpO0RjPV8uQ2MoYT0+dHlwZW9mIGE9PT0ic3RyaW5nIik7Xy5ibz1fLkNjKGE9PmEhPW51bGwmJnR5cGVvZiBhPT09Im9iamVjdCImJnR5cGVvZiBhLnRoZW49PT0iZnVuY3Rpb24iKTtfLnFyPV8uQ2MoYT0+ISFhJiYodHlwZW9mIGE9PT0ib2JqZWN0Inx8dHlwZW9mIGE9PT0iZnVuY3Rpb24iKSk7dmFyIHJyLHNyO18uTWM9Xy5DYyhhPT5hPj1yciYmYTw9c3IpO3JyPUJpZ0ludChOdW1iZXIuTUlOX1NBRkVfSU5URUdFUik7c3I9QmlnSW50KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtfLnRyPXR5cGVvZiBCaWdJbnQ9PT0iZnVuY3Rpb24iP0JpZ0ludC5hc0ludE46dm9pZCAwO18udXI9dHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiI/QmlnSW50LmFzVWludE46dm9pZCAwO18udnI9TnVtYmVyLmlzU2FmZUludGVnZXI7Xy53cj1OdW1iZXIuaXNGaW5pdGU7Xy54cj1NYXRoLnRydW5jO3ZhciBUYz17fTt2YXIgS2M7Xy55cj1fLkZjKDApO18uenI9ZmQoKTtfLkFyPWZkKCk7Xy5Ccj1mZCgpO18uQ3I9ZmQoKTtfLkRyPWZkKCk7Xy5Fcj1mZCgpO18uRnI9ZmQoKTtfLkdyPWZkKCk7Xy5Icj1mZCgpO18uSXI9ZmQoKTtfLkpyPWZkKCk7Xy5Lcj1mZCgpO18uTHI9ZmQoKTtfLk1yPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjKXt0aGlzLkRhPV8uWGMoYSxiLGMsMjA0OCl9dG9KU09OKCl7cmV0dXJuIFVjKHRoaXMpfXNlcmlhbGl6ZShhKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoVWModGhpcyxhKSl9Y2xvbmUoKXt2YXIgYT10aGlzLkRhLGI9YVtfLkFjXXwwO3JldHVybiBfLiRjKHRoaXMsYSxiKT9fLmJkKHRoaXMsYSwhMCk6bmV3IHRoaXMuY29uc3RydWN0b3IoXy5aYyhhLGIsITEpKX19O18uTXIucHJvdG90eXBlW18uT2NdPV8uUGM7dmFyIGpqPXdpbmRvdzsiQVJUSUNMRSBTRUNUSU9OIE5BViBBU0lERSBIMSBIMiBIMyBINCBINSBINiBIRUFERVIgRk9PVEVSIEFERFJFU1MgUCBIUiBQUkUgQkxPQ0tRVU9URSBPTCBVTCBMSCBMSSBETCBEVCBERCBGSUdVUkUgRklHQ0FQVElPTiBNQUlOIERJViBFTSBTVFJPTkcgU01BTEwgUyBDSVRFIFEgREZOIEFCQlIgUlVCWSBSQiBSVCBSVEMgUlAgREFUQSBUSU1FIENPREUgVkFSIFNBTVAgS0JEIFNVQiBTVVAgSSBCIFUgTUFSSyBCREkgQkRPIFNQQU4gQlIgV0JSIE5PQlIgSU5TIERFTCBQSUNUVVJFIFBBUkFNIFRSQUNLIE1BUCBUQUJMRSBDQVBUSU9OIENPTEdST1VQIENPTCBUQk9EWSBUSEVBRCBURk9PVCBUUiBURCBUSCBTRUxFQ1QgREFUQUxJU1QgT1BUR1JPVVAgT1BUSU9OIE9VVFBVVCBQUk9HUkVTUyBNRVRFUiBGSUVMRFNFVCBMRUdFTkQgREVUQUlMUyBTVU1NQVJZIE1FTlUgRElBTE9HIFNMT1QgQ0FOVkFTIEZPTlQgQ0VOVEVSIEFDUk9OWU0gQkFTRUZPTlQgQklHIERJUiBIR1JPVVAgU1RSSUtFIFRUIi5zcGxpdCgiICIpLmNvbmNhdChbIkJVVFRPTiIsCiJJTlBVVCJdKTt2YXIgaWQ9e1FCOiJhbGxvdy1mb3JtcyIsU0I6ImFsbG93LW1vZGFscyIsVEI6ImFsbG93LW9yaWVudGF0aW9uLWxvY2siLFVCOiJhbGxvdy1wb2ludGVyLWxvY2siLFZCOiJhbGxvdy1wb3B1cHMiLFdCOiJhbGxvdy1wb3B1cHMtdG8tZXNjYXBlLXNhbmRib3giLFhCOiJhbGxvdy1wcmVzZW50YXRpb24iLFlCOiJhbGxvdy1zYW1lLW9yaWdpbiIsWkI6ImFsbG93LXNjcmlwdHMiLGFDOiJhbGxvdy10b3AtbmF2aWdhdGlvbiIsYkM6ImFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbiJ9LGxkPWhkKCgpPT5rZCgpKTtfLmc9Xy5uZC5wcm90b3R5cGU7Xy5nLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBfLm5kKHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpfTtfLmcuYXJlYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLndpZHRoKnRoaXMuaGVpZ2h0fTtfLmcuYXNwZWN0UmF0aW89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWR0aC90aGlzLmhlaWdodH07Xy5nLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5hcmVhKCl9O18uZy5jZWlsPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRoLmNlaWwodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5jZWlsKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307Xy5nLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRoLmZsb29yKHRoaXMud2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGguZmxvb3IodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTsKXy5nLnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRoLnJvdW5kKHRoaXMud2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGgucm91bmQodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTtfLmcuc2NhbGU9ZnVuY3Rpb24oYSxiKXt0aGlzLndpZHRoKj1hO3RoaXMuaGVpZ2h0Kj10eXBlb2YgYj09PSJudW1iZXIiP2I6YTtyZXR1cm4gdGhpc307dmFyIHJkPSJjb25zdHJ1Y3RvciBoYXNPd25Qcm9wZXJ0eSBpc1Byb3RvdHlwZU9mIHByb3BlcnR5SXNFbnVtZXJhYmxlIHRvTG9jYWxlU3RyaW5nIHRvU3RyaW5nIHZhbHVlT2YiLnNwbGl0KCIgIik7dmFyIE9wPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5qPWE9PT1QcCYmYnx8IiJ9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5qfX0sUHA9e307bmV3IE9wKFBwLCIiKTtfLmc9dWQucHJvdG90eXBlO18uZy5nZXRFbGVtZW50c0J5VGFnTmFtZT1mdW5jdGlvbihhLGIpe3JldHVybihifHx0aGlzLmopLmdldEVsZW1lbnRzQnlUYWdOYW1lKFN0cmluZyhhKSl9O18uZy5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGEpe3JldHVybiBCZCh0aGlzLmosYSl9O18uZy5jcmVhdGVUZXh0Tm9kZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5qLmNyZWF0ZVRleHROb2RlKFN0cmluZyhhKSl9O18uZy5hcHBlbmRDaGlsZD1mdW5jdGlvbihhLGIpe2EuYXBwZW5kQ2hpbGQoYil9O18uZy5hcHBlbmQ9ZnVuY3Rpb24oYSxiKXtBZChfLnZkKGEpLGEsYXJndW1lbnRzKX07Xy5nLmNhbkhhdmVDaGlsZHJlbj1mdW5jdGlvbihhKXtpZihhLm5vZGVUeXBlIT0xKXJldHVybiExO3N3aXRjaChhLnRhZ05hbWUpe2Nhc2UgIkFQUExFVCI6Y2FzZSAiQVJFQSI6Y2FzZSAiQkFTRSI6Y2FzZSAiQlIiOmNhc2UgIkNPTCI6Y2FzZSAiQ09NTUFORCI6Y2FzZSAiRU1CRUQiOmNhc2UgIkZSQU1FIjpjYXNlICJIUiI6Y2FzZSAiSU1HIjpjYXNlICJJTlBVVCI6Y2FzZSAiSUZSQU1FIjpjYXNlICJJU0lOREVYIjpjYXNlICJLRVlHRU4iOmNhc2UgIkxJTksiOmNhc2UgIk5PRlJBTUVTIjpjYXNlICJOT1NDUklQVCI6Y2FzZSAiTUVUQSI6Y2FzZSAiT0JKRUNUIjpjYXNlICJQQVJBTSI6Y2FzZSAiU0NSSVBUIjpjYXNlICJTT1VSQ0UiOmNhc2UgIlNUWUxFIjpjYXNlICJUUkFDSyI6Y2FzZSAiV0JSIjpyZXR1cm4hMX1yZXR1cm4hMH07Cl8uZy5yZW1vdmVOb2RlPV8uRGQ7Xy5nLmNvbnRhaW5zPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEmJmI/YT09Ynx8YS5jb250YWlucyhiKTohMX07Xy5nLmlzRm9jdXNhYmxlPV8uRmQ7dmFyIGlqPShuZXcgRGF0ZSkuZ2V0VGltZSgpO18uZz1MZC5wcm90b3R5cGU7Xy5nLmlzRW5hYmxlZD1mdW5jdGlvbigpe2lmKCFfLnUubmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQpcmV0dXJuITE7aWYoIXRoaXMuaXNFbXB0eSgpKXJldHVybiEwO3RoaXMuc2V0KCJURVNUQ09PS0lFU0VOQUJMRUQiLCIxIix7dmo6NjB9KTtpZih0aGlzLmdldCgiVEVTVENPT0tJRVNFTkFCTEVEIikhPT0iMSIpcmV0dXJuITE7dGhpcy5yZW1vdmUoIlRFU1RDT09LSUVTRU5BQkxFRCIpO3JldHVybiEwfTsKXy5nLnNldD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9ITE7aWYodHlwZW9mIGM9PT0ib2JqZWN0Iil7dmFyIGU9Yy5zYW1lU2l0ZTtkPWMuc2VjdXJlfHwhMTt2YXIgZj1jLmRvbWFpbnx8dm9pZCAwO3ZhciBoPWMucGF0aHx8dm9pZCAwO3ZhciBrPWMudmp9aWYoL1s7PVxzXS8udGVzdChhKSl0aHJvdyBFcnJvcigiRGAiK2EpO2lmKC9bO1xyXG5dLy50ZXN0KGIpKXRocm93IEVycm9yKCJFYCIrYik7az09PXZvaWQgMCYmKGs9LTEpO2M9Zj8iO2RvbWFpbj0iK2Y6IiI7aD1oPyI7cGF0aD0iK2g6IiI7ZD1kPyI7c2VjdXJlIjoiIjtrPWs8MD8iIjprPT0wPyI7ZXhwaXJlcz0iKyhuZXcgRGF0ZSgxOTcwLDEsMSkpLnRvVVRDU3RyaW5nKCk6IjtleHBpcmVzPSIrKG5ldyBEYXRlKERhdGUubm93KCkrayoxRTMpKS50b1VUQ1N0cmluZygpO3RoaXMuai5jb29raWU9YSsiPSIrYitjK2graytkKyhlIT1udWxsPyI7c2FtZXNpdGU9IitlOiIiKX07Cl8uZy5nZXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hKyI9IixkPSh0aGlzLmouY29va2llfHwiIikuc3BsaXQoIjsiKTtmb3IobGV0IGU9MCxmO2U8ZC5sZW5ndGg7ZSsrKXtmPWRbZV0udHJpbSgpO2lmKGYubGFzdEluZGV4T2YoYywwKT09MClyZXR1cm4gZi5zbGljZShjLmxlbmd0aCk7aWYoZj09YSlyZXR1cm4iIn1yZXR1cm4gYn07Xy5nLnJlbW92ZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5nZXQoYSkhPT12b2lkIDA7dGhpcy5zZXQoYSwiIix7dmo6MCxwYXRoOmIsZG9tYWluOmN9KTtyZXR1cm4gZH07Xy5nLnJkPWZ1bmN0aW9uKCl7cmV0dXJuIE1kKHRoaXMpLmtleXN9O18uZy5NYz1mdW5jdGlvbigpe3JldHVybiBNZCh0aGlzKS52YWx1ZXN9O18uZy5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuai5jb29raWV9O18uZy5jbGVhcj1mdW5jdGlvbigpe3ZhciBhPU1kKHRoaXMpLmtleXM7Zm9yKGxldCBiPWEubGVuZ3RoLTE7Yj49MDtiLS0pdGhpcy5yZW1vdmUoYVtiXSl9OwpfLkxqPW5ldyBMZCh0eXBlb2YgZG9jdW1lbnQ9PSJ1bmRlZmluZWQiP251bGw6ZG9jdW1lbnQpO3ZhciBSZDtfLk5yPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dmFyIGM9Y3x8W107dGhpcy52PWE7dGhpcy5vPWJ8fG51bGw7dGhpcy5qPVtdO3RoaXMuaj10aGlzLmouY29uY2F0KGMpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMudn19O18uT3I9bmV3IF8uTnIoIm43M3F3ZiIsIm43M3F3ZiIpO18uYWUucHJvdG90eXBlLlk9ITE7Xy5hZS5wcm90b3R5cGUuaWE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ZfTtfLmFlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5ZfHwodGhpcy5ZPSEwLHRoaXMubGEoKSl9O18uYWUucHJvdG90eXBlW1N5bWJvbC5kaXNwb3NlXT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfTtfLmFlLnByb3RvdHlwZS5hZGRPbkRpc3Bvc2VDYWxsYmFjaz1mdW5jdGlvbihhLGIpe3RoaXMuWT9iIT09dm9pZCAwP2EuY2FsbChiKTphKCk6KHRoaXMuS3x8KHRoaXMuSz1bXSksYiYmKGE9YS5iaW5kKGIpKSx0aGlzLksucHVzaChhKSl9O18uYWUucHJvdG90eXBlLmxhPWZ1bmN0aW9uKCl7aWYodGhpcy5LKWZvcig7dGhpcy5LLmxlbmd0aDspdGhpcy5LLnNoaWZ0KCkoKX07dmE9dmF8fHt9O18uSGEoYmUsXy5hZSk7YmUucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24oKXt9O2NlLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGEpe3RoaXMuaiYmKHRoaXMuai5jYWxsKHRoaXMub3x8bnVsbCxhKSx0aGlzLmo9dGhpcy5vPW51bGwpfTtjZS5wcm90b3R5cGUuYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLm89dGhpcy5qPW51bGx9O3ZhLndrPWNlO18uSGEoZWUsXy5hZSk7Xy5nPWVlLnByb3RvdHlwZTtfLmcuUGo9bnVsbDtfLmcuT3k9YmU7Xy5nLkFqPW51bGw7Xy5nLnN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuan07Xy5nLmdldElkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRH07Xy5nLmlzTG9hZGVkPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLkFqfTtfLmcueWU9ZnVuY3Rpb24oKXt0aGlzLkFqPW5ldyBiZX07Xy5nLm9uTG9hZD1mdW5jdGlvbihhKXt2YXIgYj1uZXcgdGhpcy5PeTtiLmluaXRpYWxpemUoYSgpKTt0aGlzLkFqPWI7aWYodGhpcy5vJiYoYj1pZSh0aGlzLm8sYSgpKSkpcmV0dXJuIGI7aWYodGhpcy5CJiYoYT1pZSh0aGlzLkIsYSgpKSkpcmV0dXJuIGE7dGhpcy52JiYodGhpcy52Lmxlbmd0aD0wKTtyZXR1cm4gbnVsbH07Cl8uZy5vbkVycm9yPWZ1bmN0aW9uKGEpe3RoaXMudiYmKGE9aWUodGhpcy52LGEpKSYmXy4kYihFcnJvcigiR2AiK2EpKTt0aGlzLm8mJih0aGlzLm8ubGVuZ3RoPTApO3RoaXMuQiYmKHRoaXMuQi5sZW5ndGg9MCl9O18uZy5sYT1mdW5jdGlvbigpe2VlLnpiLmxhLmNhbGwodGhpcyk7Xy5aZCh0aGlzLkFqKTt0aGlzLlBqPW51bGx9O3ZhLk9nPWVlO3ZhciBRZz17RVJST1I6ImVycm9yIixJRExFOiJpZGxlIixNczoiYWN0aXZlIixpdToidXNlcklkbGUiLGh1OiJ1c2VyQWN0aXZlIn07Xy5nPWplLnByb3RvdHlwZTtfLmcuUnI9ZnVuY3Rpb24oKXt9O18uZy5UaD1mdW5jdGlvbigpe307Xy5nLm5pPWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoIkgiKTt9O18uZy5BZz1mdW5jdGlvbigpe3Rocm93IEVycm9yKCJJIik7fTtfLmcuVnA9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07Xy5nLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuITF9O18uZy5GcT1mdW5jdGlvbigpe3JldHVybiExfTtfLmcuZW49ZnVuY3Rpb24oKXt9O18uZy5abj1mdW5jdGlvbigpe307dmFyIFByPWNsYXNze2luaXQoKXtfLkZhKCJfRl9pbnN0YWxsQ3NzIixhPT57YSYma2UoYSl9KX19O3ZhciBtZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaj17fTt0aGlzLm89IiI7dGhpcy52PXt9fXRvU3RyaW5nKCl7dmFyIGE9dGhpcy5vK3ZlKHRoaXMpLGI9Xy5VYih0aGlzLnYpLGM9IiI7YiE9IiImJihjPSI/IitiKTtyZXR1cm4gYStjfWNsb25lKCl7dmFyIGE9bmV3IG1lO2Euaj17Li4udGhpcy5qfTthLm89dGhpcy5vO2Eudj17Li4udGhpcy52fTtyZXR1cm4gYX19LG5lPXt2RzoiayIsRUM6ImNrIix6RjoibSIsWUM6ImV4bSIsV0M6ImV4Y20iLExCOiJhbSIsUkI6ImFtYyIsbUY6Im1tIix0RzoicnQiLGJGOiJkIixYQzoiZWQiLGlIOiJzdiIsSkM6ImRlb2IiLHNDOiJjYiIsd0M6ImNjYiIsdEM6ImNiaSIsWUc6InJzIixCRzoic2RjaCIsY0Y6ImltIixLQzoiZGciLFVDOiJiciIsVEM6ImJyLWQiLFZDOiJyYiIsSUg6InpzIixFSDoid3QiLFpDOiJlZSIsaEg6InNtIix4RjoibWQiLFhFOiJnc3Ntb2R1bGVzZXRwcm90byIsQ0g6InVqZyIsQkg6InNwIixhRjoiaWNoYyIsWEc6InNsayIsCk1DOiJkdGkiLExDOiJkYndoIixlRjoiaWMifSxRcj1SZWdFeHAoIl4oZ2FwaVxcLik/bG9hZGVkKF9nfF9oKT8oX1swLTlhLXpdKykrJCIpLFJyPVJlZ0V4cCgiXlthLXpBLVowLTktXypdKyQiKTt2YXIgR2U9ITE7Xy55Zz10eXBlb2YgQXN5bmNDb250ZXh0IT09InVuZGVmaW5lZCImJnR5cGVvZiBBc3luY0NvbnRleHQuU25hcHNob3Q9PT0iZnVuY3Rpb24iP2E9PmEmJkFzeW5jQ29udGV4dC5TbmFwc2hvdC53cmFwKGEpOmE9PmE7Xy5KZS5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7dGhpcy5vPSEwfTtfLkplLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD0hMH07Xy5IYShLZSxfLkplKTsKS2UucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLnR5cGU9YS50eXBlLGQ9YS5jaGFuZ2VkVG91Y2hlcyYmYS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg/YS5jaGFuZ2VkVG91Y2hlc1swXTpudWxsO3RoaXMudGFyZ2V0PWEudGFyZ2V0fHxhLnNyY0VsZW1lbnQ7dGhpcy5jdXJyZW50VGFyZ2V0PWI7Yj1hLnJlbGF0ZWRUYXJnZXQ7Ynx8KGM9PSJtb3VzZW92ZXIiP2I9YS5mcm9tRWxlbWVudDpjPT0ibW91c2VvdXQiJiYoYj1hLnRvRWxlbWVudCkpO3RoaXMucmVsYXRlZFRhcmdldD1iO2Q/KHRoaXMuY2xpZW50WD1kLmNsaWVudFghPT12b2lkIDA/ZC5jbGllbnRYOmQucGFnZVgsdGhpcy5jbGllbnRZPWQuY2xpZW50WSE9PXZvaWQgMD9kLmNsaWVudFk6ZC5wYWdlWSx0aGlzLnNjcmVlblg9ZC5zY3JlZW5YfHwwLHRoaXMuc2NyZWVuWT1kLnNjcmVlbll8fDApOih0aGlzLm9mZnNldFg9Xy5jcnx8YS5vZmZzZXRYIT09dm9pZCAwP2Eub2Zmc2V0WDphLmxheWVyWCx0aGlzLm9mZnNldFk9Cl8uY3J8fGEub2Zmc2V0WSE9PXZvaWQgMD9hLm9mZnNldFk6YS5sYXllclksdGhpcy5jbGllbnRYPWEuY2xpZW50WCE9PXZvaWQgMD9hLmNsaWVudFg6YS5wYWdlWCx0aGlzLmNsaWVudFk9YS5jbGllbnRZIT09dm9pZCAwP2EuY2xpZW50WTphLnBhZ2VZLHRoaXMuc2NyZWVuWD1hLnNjcmVlblh8fDAsdGhpcy5zY3JlZW5ZPWEuc2NyZWVuWXx8MCk7dGhpcy5idXR0b249YS5idXR0b247dGhpcy5rZXlDb2RlPWEua2V5Q29kZXx8MDt0aGlzLmtleT1hLmtleXx8IiI7dGhpcy5jaGFyQ29kZT1hLmNoYXJDb2RlfHwoYz09ImtleXByZXNzIj9hLmtleUNvZGU6MCk7dGhpcy5jdHJsS2V5PWEuY3RybEtleTt0aGlzLmFsdEtleT1hLmFsdEtleTt0aGlzLnNoaWZ0S2V5PWEuc2hpZnRLZXk7dGhpcy5tZXRhS2V5PWEubWV0YUtleTt0aGlzLnBvaW50ZXJJZD1hLnBvaW50ZXJJZHx8MDt0aGlzLnBvaW50ZXJUeXBlPWEucG9pbnRlclR5cGU7dGhpcy5zdGF0ZT1hLnN0YXRlO3RoaXMudGltZVN0YW1wPQphLnRpbWVTdGFtcDt0aGlzLmo9YTthLmRlZmF1bHRQcmV2ZW50ZWQmJktlLnpiLnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyl9O0tlLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXtLZS56Yi5zdG9wUHJvcGFnYXRpb24uY2FsbCh0aGlzKTt0aGlzLmouc3RvcFByb3BhZ2F0aW9uP3RoaXMuai5zdG9wUHJvcGFnYXRpb24oKTp0aGlzLmouY2FuY2VsQnViYmxlPSEwfTtLZS5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXtLZS56Yi5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuajthLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExfTt2YXIgVWU9ImNsb3N1cmVfbGlzdGVuYWJsZV8iKyhNYXRoLnJhbmRvbSgpKjFFNnwwKTt2YXIgTGU9MDtPZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YS50b1N0cmluZygpO2E9dGhpcy5saXN0ZW5lcnNbZl07YXx8KGE9dGhpcy5saXN0ZW5lcnNbZl09W10sdGhpcy5qKyspO3ZhciBoPVFlKGEsYixkLGUpO2g+LTE/KGI9YVtoXSxjfHwoYi56aT0hMSkpOihiPW5ldyBNZShiLHRoaXMuc3JjLGYsISFkLGUpLGIuemk9YyxhLnB1c2goYikpO3JldHVybiBifTtPZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGEsYixjLGQpe2E9YS50b1N0cmluZygpO2lmKCEoYSBpbiB0aGlzLmxpc3RlbmVycykpcmV0dXJuITE7dmFyIGU9dGhpcy5saXN0ZW5lcnNbYV07Yj1RZShlLGIsYyxkKTtyZXR1cm4gYj4tMT8oTmUoZVtiXSksQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGUsYiwxKSxlLmxlbmd0aD09MCYmKGRlbGV0ZSB0aGlzLmxpc3RlbmVyc1thXSx0aGlzLmotLSksITApOiExfTt2YXIgWGU9ImNsb3N1cmVfbG1fIisoTWF0aC5yYW5kb20oKSoxRTZ8MCksZWY9e30sJGU9MCxmZj0iX19jbG9zdXJlX2V2ZW50c19mbl8iKyhNYXRoLnJhbmRvbSgpKjFFOT4+PjApO18uSGEoXy5nZixfLmFlKTtfLmdmLnByb3RvdHlwZVtVZV09ITA7Xy5nPV8uZ2YucHJvdG90eXBlO18uZy5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEsYixjLGQpe18uU2UodGhpcyxhLGIsYyxkKX07Xy5nLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5jZih0aGlzLGEsYixjLGQpfTsKXy5nLmRpc3BhdGNoRXZlbnQ9ZnVuY3Rpb24oYSl7dmFyIGIsYz10aGlzLk07aWYoYylmb3IoYj1bXTtjO2M9Yy5NKWIucHVzaChjKTtjPXRoaXMuRmE7dmFyIGQ9YS50eXBlfHxhO2lmKHR5cGVvZiBhPT09InN0cmluZyIpYT1uZXcgXy5KZShhLGMpO2Vsc2UgaWYoYSBpbnN0YW5jZW9mIF8uSmUpYS50YXJnZXQ9YS50YXJnZXR8fGM7ZWxzZXt2YXIgZT1hO2E9bmV3IF8uSmUoZCxjKTtzZChhLGUpfWU9ITA7dmFyIGY7aWYoYilmb3IoZj1iLmxlbmd0aC0xOyFhLm8mJmY+PTA7Zi0tKXt2YXIgaD1hLmN1cnJlbnRUYXJnZXQ9YltmXTtlPWhmKGgsZCwhMCxhKSYmZX1hLm98fChoPWEuY3VycmVudFRhcmdldD1jLGU9aGYoaCxkLCEwLGEpJiZlLGEub3x8KGU9aGYoaCxkLCExLGEpJiZlKSk7aWYoYilmb3IoZj0wOyFhLm8mJmY8Yi5sZW5ndGg7ZisrKWg9YS5jdXJyZW50VGFyZ2V0PWJbZl0sZT1oZihoLGQsITEsYSkmJmU7cmV0dXJuIGV9OwpfLmcubGE9ZnVuY3Rpb24oKXtfLmdmLnpiLmxhLmNhbGwodGhpcyk7dGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoKTt0aGlzLk09bnVsbH07Xy5nLmxpc3Rlbj1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5vLmFkZChTdHJpbmcoYSksYiwhMSxjLGQpfTtfLmcucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKGEpe2lmKHRoaXMubyl7dmFyIGI9dGhpcy5vO2E9YSYmYS50b1N0cmluZygpO2xldCBjPTA7Zm9yKGxldCBkIGluIGIubGlzdGVuZXJzKWlmKCFhfHxkPT1hKXtsZXQgZT1iLmxpc3RlbmVyc1tkXTtmb3IobGV0IGY9MDtmPGUubGVuZ3RoO2YrKykrK2MsTmUoZVtmXSk7ZGVsZXRlIGIubGlzdGVuZXJzW2RdO2Iuai0tfWI9Y31lbHNlIGI9MDtyZXR1cm4gYn07dmFyIGtmPWNsYXNzIGV4dGVuZHMgXy5nZntjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMuRD10aGlzLmo9MDt0aGlzLkRjPWE/P3twYjooYixjKT0+c2V0VGltZW91dChiLGMpLEFhOmI9PntjbGVhclRpbWVvdXQoYil9fTt0aGlzLmlzT25saW5lPXdpbmRvdy5uYXZpZ2F0b3I/Lm9uTGluZT8/ITA7dGhpcy52PWFzeW5jKCk9Pnthd2FpdCBtZih0aGlzKX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLHRoaXMudik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsdGhpcy52KTt0aGlzLkR8fG5mKHRoaXMpfWRpc3Bvc2UoKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigib2ZmbGluZSIsdGhpcy52KTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25saW5lIix0aGlzLnYpO3RoaXMuRGMuQWEodGhpcy5EKTtkZWxldGUga2YuaW5zdGFuY2V9U2IoKXtyZXR1cm4gdGhpcy5pc09ubGluZX19O3ZhciBxZj1udWxsLHBmPW5ldyBNYXA7dmFyIFNyPWE9PnthPWEuY2xvbmUoKTtEZShhKTtvZShhLCJkZyIsbnVsbCk7b2UoYSwiZCIsIjAiKTt3ZShhLG51bGwpO3hlKGEsbnVsbCk7cmV0dXJuIGF9LFRyPSEwLFVyPShhLGIse2Nzc1Jvd0tleTpjLEtlOmQsWWQ6ZSxjYWxsYmFjazpmfT17fSk9PntpZihiKWZvcihsZXQgaCBvZiBiKWlmKCFSci50ZXN0KGgpKXRocm93IEVycm9yKCJKYCIraCk7b2UoYSwibSIsYi5qb2luKCIsIikpO2UmJnplKGEsZSk7YyYmKG9lKGEsImNrIixjKSxkP29lKGEsInJzIixkKTpUciYmKFRyPSExKSk7aWYoZil7aWYoZiE9bnVsbCYmIVFyLnRlc3QoZikpdGhyb3cgRXJyb3IoIktgIitmKTtvZShhLCJjYiIsZil9YT1hLnRvU3RyaW5nKCk7YS5sYXN0SW5kZXhPZigiLyIsMCk9PTAmJihiPV8uTWIoZG9jdW1lbnQubG9jYXRpb24uaHJlZiksYT1fLkliKGJbMV0sYlsyXSxiWzNdLGJbNF0pK2EpO3JldHVybiBfLlRhKGEpfSxuZz0oYSxiLHtsbjpjPVtdLGNzc1Jvd0tleTpkLEtlOmUsWWQ6ZixjYWxsYmFjazpofT0Ke30pPT57YT1TcihhKTt4ZShhLGMpO3JldHVybiBVcihhLGIse2Nzc1Jvd0tleTpkLEtlOmUsWWQ6ZixjYWxsYmFjazpofSl9LG1nPShhLGIse21uOmM9W10sbG46ZD1bXSxjc3NSb3dLZXk6ZSxLZTpmLFlkOmgsY2FsbGJhY2s6a309e30pPT57YT1TcihhKTtvZShhLCJkIiwiMSIpO3dlKGEsYyk7eGUoYSxkKTtyZXR1cm4gVXIoYSxiLHtjc3NSb3dLZXk6ZSxLZTpmLFlkOmgsY2FsbGJhY2s6a30pfTt2YXIgVnI9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLnY9YTt0aGlzLkI9Yjt0aGlzLm89MDt0aGlzLmo9bnVsbH1nZXQoKXtpZih0aGlzLm8+MCl7dGhpcy5vLS07dmFyIGE9dGhpcy5qO3RoaXMuaj1hLm5leHQ7YS5uZXh0PW51bGx9ZWxzZSBhPXRoaXMudigpO3JldHVybiBhfX07dmFyIFdyPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5vPXRoaXMuaj1udWxsfWFkZChhLGIpe3ZhciBjPXZmLmdldCgpO2Muc2V0KGEsYik7dGhpcy5vP3RoaXMuby5uZXh0PWM6dGhpcy5qPWM7dGhpcy5vPWN9cmVtb3ZlKCl7dmFyIGE9bnVsbDt0aGlzLmomJihhPXRoaXMuaix0aGlzLmo9dGhpcy5qLm5leHQsdGhpcy5qfHwodGhpcy5vPW51bGwpLGEubmV4dD1udWxsKTtyZXR1cm4gYX19LHZmPW5ldyBWcigoKT0+bmV3IFhyLGE9PmEucmVzZXQoKSksWHI9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm5leHQ9dGhpcy5zY29wZT10aGlzLmZuPW51bGx9c2V0KGEsYil7dGhpcy5mbj1hO3RoaXMuc2NvcGU9Yjt0aGlzLm5leHQ9bnVsbH1yZXNldCgpe3RoaXMubmV4dD10aGlzLnNjb3BlPXRoaXMuZm49bnVsbH19O3ZhciBZcix3Zj0hMSx1Zj1uZXcgV3IsR2Y9KGEsYik9PntZcnx8WnIoKTt3Znx8KFlyKCksd2Y9ITApO3VmLmFkZChhLGIpfSxacj0oKT0+e3ZhciBhPVByb21pc2UucmVzb2x2ZSh2b2lkIDApO1lyPSgpPT57YS50aGVuKHhmKX19O0NmLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuY29udGV4dD10aGlzLmo9dGhpcy5vPXRoaXMuY2hpbGQ9bnVsbDt0aGlzLnY9ITF9O3ZhciBEZj1uZXcgVnIoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IENmfSxmdW5jdGlvbihhKXthLnJlc2V0KCl9KTtfLkJmLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUWYodGhpcywoMCxfLnlnKSh0eXBlb2YgYT09PSJmdW5jdGlvbiI/YTpudWxsKSwoMCxfLnlnKSh0eXBlb2YgYj09PSJmdW5jdGlvbiI/YjpudWxsKSxjKX07Xy55ZihfLkJmKTtfLmc9Xy5CZi5wcm90b3R5cGU7Xy5nLmZpbmFsbHk9ZnVuY3Rpb24oYSl7YT0oMCxfLnlnKShhKTtyZXR1cm4gbmV3IF8uQmYoKGIsYyk9PntLZih0aGlzLGQ9PnthKCk7YihkKX0sZD0+e2EoKTtjKGQpfSl9KX07Xy5nLktnPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFFmKHRoaXMsbnVsbCwoMCxfLnlnKShhKSxiKX07Xy5nLmNhdGNoPV8uQmYucHJvdG90eXBlLktnOwpfLmcuY2FuY2VsPWZ1bmN0aW9uKGEpe2lmKHRoaXMuaj09MCl7bGV0IGI9bmV3IF8uUGYoYSk7R2YoZnVuY3Rpb24oKXtMZih0aGlzLGIpfSx0aGlzKX19O18uZy5uQj1mdW5jdGlvbihhKXt0aGlzLmo9MDtfLkFmKHRoaXMsMixhKX07Xy5nLm9CPWZ1bmN0aW9uKGEpe3RoaXMuaj0wO18uQWYodGhpcywzLGEpfTtfLmcudHQ9ZnVuY3Rpb24oKXtmb3IodmFyIGE7YT1NZih0aGlzKTspTmYodGhpcyxhLHRoaXMuaix0aGlzLkkpO3RoaXMuSz0hMX07Xy5VZj1fLiRiO18uSGEoXy5QZixfLkxhKTtfLlBmLnByb3RvdHlwZS5uYW1lPSJjYW5jZWwiO18uSGEoWGYsXy5MYSk7WGYucHJvdG90eXBlLm5hbWU9IlhockVycm9yIjtfLkhhKFlmLFhmKTtZZi5wcm90b3R5cGUubmFtZT0iWGhySHR0cEVycm9yIjtfLkhhKFpmLFhmKTtaZi5wcm90b3R5cGUubmFtZT0iWGhyVGltZW91dEVycm9yIjtfLmRoPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQ9ITEsZT0hMSl7dGhpcy5ZPXFlKF8uVWEoYSkudG9TdHJpbmcoKSwhMCk7dGhpcy5GYT1iO3RoaXMueWE9Yzt0aGlzLkQ9ZDt0aGlzLkI9e307dGhpcy5NPW5ldyBNYXA7dGhpcy5aPVtdO3RoaXMub2E9ITA7dGhpcy5oYT0oYT10ZSh0aGlzLlksImV4Y20iKSk/YS5zcGxpdCgiLCIpOltdO3RoaXMuVmQ9ZTt0aGlzLmZpPSExO3RoaXMuV2c9ImFub255bW91cyI7dGhpcy5kaT00MDQzO3RoaXMuZ2E9ZG9jdW1lbnQuaGVhZHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3RoaXMudj10aGlzLkk9bnVsbDt0aGlzLkViPSEwO0hlKCk7dGhpcy5YPW51bGw7Xy5hZyh0aGlzLHllKHRoaXMuWSkpO3RoaXMuZmV0Y2hQcmlvcml0eT12b2lkIDA7dGhpcy5NYT0hMTt0aGlzLlUoKX1hc3luYyBRYSgpe3Rocm93IEVycm9yKCJUIik7fVUoKXt9bG9hZChhLGIsYyxkLGU9Yil7Xy5VYShhKTt2YXIgZj10aGlzLmZpLGg9dGhpcy5XZyxrPXRoaXMuZmV0Y2hQcmlvcml0eSwKbD1fLkNkKCJTQ1JJUFQiKTtfLm9iKGwsYSk7ZiYmKGwuY3Jvc3NPcmlnaW49aCk7bC5hc3luYz0hMTtrJiZsLnNldEF0dHJpYnV0ZSgiZmV0Y2hwcmlvcml0eSIsayk7Xy5hZyh0aGlzLGIpO18ucGcodGhpcyxhLGwsYixjLGQsZSl9fTt2YXIgcWc9bmV3IFVpbnQ4QXJyYXkoMTIzKSxLZz0hMTt2YXIgTGc9W107Xy5nPXRnLnByb3RvdHlwZTtfLmcuY2FuY2VsPWZ1bmN0aW9uKGEpe2lmKHRoaXMuail0aGlzLnYgaW5zdGFuY2VvZiB0ZyYmdGhpcy52LmNhbmNlbCgpO2Vsc2V7aWYodGhpcy5vKXtsZXQgYj10aGlzLm87ZGVsZXRlIHRoaXMubzthP2IuY2FuY2VsKGEpOihiLlktLSxiLlk8PTAmJmIuY2FuY2VsKCkpfXRoaXMuWj90aGlzLlouY2FsbCh0aGlzLlUsdGhpcyk6dGhpcy5NPSEwO3RoaXMuanx8KGE9bmV3IEZnKHRoaXMpLHhnKHRoaXMpLHZnKHRoaXMsITEsYSkpfX07Xy5nLnNwPWZ1bmN0aW9uKGEsYil7dGhpcy5JPSExO3ZnKHRoaXMsYSxiKX07Xy5nLmNhbGxiYWNrPWZ1bmN0aW9uKGEpe3hnKHRoaXMpO3ZnKHRoaXMsITAsYSl9O18uZy5maW5hbGx5PWZ1bmN0aW9uKGEpe3JldHVybiBFZyhuZXcgUHJvbWlzZSgoYixjKT0+e3pnKHRoaXMsZD0+e2EoKTtiKGQpfSxkPT57YSgpO2MoZCl9KX0pKX07Cl8uZy50aGVuPWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGY9bmV3IF8uQmYoZnVuY3Rpb24oaCxrKXtlPWg7ZD1rfSk7emcodGhpcyxlLGZ1bmN0aW9uKGgpe2ggaW5zdGFuY2VvZiBGZz9mLmNhbmNlbCgpOmQoaCk7cmV0dXJuIENnfSx0aGlzKTtyZXR1cm4gZi50aGVuKGEsYixjKX07Xy55Zih0Zyk7dGcucHJvdG90eXBlLmlzRXJyb3I9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBFcnJvcn07dmFyIENnPXt9O18uSGEod2csXy5MYSk7d2cucHJvdG90eXBlLm1lc3NhZ2U9IkRlZmVycmVkIGhhcyBhbHJlYWR5IGZpcmVkIjt3Zy5wcm90b3R5cGUubmFtZT0iQWxyZWFkeUNhbGxlZEVycm9yIjtfLkhhKEZnLF8uTGEpO0ZnLnByb3RvdHlwZS5tZXNzYWdlPSJEZWZlcnJlZCB3YXMgY2FuY2VsZWQiO0ZnLnByb3RvdHlwZS5uYW1lPSJDYW5jZWxlZEVycm9yIjsKRGcucHJvdG90eXBlLnRocm93RXJyb3I9ZnVuY3Rpb24oKXtkZWxldGUgQmdbdGhpcy5qXTt0aHJvdyB0aGlzLm87fTt2YXIgQmc9e307dmFyIEdnPWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoYSxiLGMsZCxlKXtzdXBlcigpO3RoaXMubmFtZT0iTW9kdWxlTG9hZEZhaWx1cmUiO3RoaXMudHlwZT1hO3RoaXMuc3RhdHVzPWI7dGhpcy5tbj1jO3RoaXMudXJsPWQ7dGhpcy5jYXVzZT1lO3RoaXMubWVzc2FnZT10aGlzLnRvU3RyaW5nKCl9dG9TdHJpbmcoKXtyZXR1cm5gJHtIZyh0aGlzKX0gKCR7dGhpcy5zdGF0dXMhPXZvaWQgMD90aGlzLnN0YXR1czoiPyJ9KWB9fTt2YS5vYj1HZzt2YS5vYi5UeXBlPXtwbzowLHBrOjEsVElNRU9VVDoyLGhvOjMsdWs6NH07Xy5IYShJZyxqZSk7Xy5IYShKZyxfLkxhKTtfLmc9SWcucHJvdG90eXBlO18uZy5Scj1mdW5jdGlvbihhKXt0aGlzLm9hPWF9OwpfLmcuVGg9ZnVuY3Rpb24oYSxiKXtpZighKHRoaXMgaW5zdGFuY2VvZiBJZykpdGhpcy5UaChhLGIpO2Vsc2UgaWYodHlwZW9mIGE9PT0ic3RyaW5nIil7aWYoYS5zdGFydHNXaXRoKCJkJCIpKXthPWEuc3Vic3RyaW5nKDIpO2Zvcih2YXIgYz1bXSxkPTAsZT1hLmluZGV4T2YoIi8iKSxmPTAsaD0hMSxrPTA7Oyl7dmFyIGw9aD9hLnN1YnN0cmluZyhmKTphLnN1YnN0cmluZyhmLGUpO2lmKGwubGVuZ3RoPT09MClkKyssZj0ic3kiK2QudG9TdHJpbmcoMzYpLGw9W107ZWxzZXt2YXIgbT1sLmluZGV4T2YoIjoiKTtpZihtPDApZj1sLGw9W107ZWxzZSBpZihtPT09bC5sZW5ndGgtMSlmPWwuc3Vic3RyaW5nKDAsbSksbD1BcnJheShjW2stMV0pO2Vsc2V7Zj1sLnN1YnN0cmluZygwLG0pO2w9bC5zdWJzdHJpbmcobSsxKS5zcGxpdCgiLCIpO209aztmb3IobGV0IG49MDtuPGwubGVuZ3RoO24rKyltLT1sW25dLmxlbmd0aD09PTA/MTpOdW1iZXIobFtuXSksbFtuXT1jW21dfW09MDtpZihmLmxlbmd0aD09PQowKW09MTtlbHNlIGlmKGYuY2hhckF0KDApPT09IisifHxmLmNoYXJBdCgwKT09PSItIiltPU51bWJlcihmKTttIT09MCYmKGQrPW0sZj0ic3kiK2QudG9TdHJpbmcoMzYpKX1jLnB1c2goZik7TmcodGhpcyxmLGwpO2lmKGgpYnJlYWs7Zj1lKzE7ZT1hLmluZGV4T2YoIi8iLGYpO2U9PT0tMSYmKGg9ITApO2srK310aGlzLmhhPWN9ZWxzZSBpZihhLnN0YXJ0c1dpdGgoInAkIikpT2codGhpcyxhKTtlbHNle2E9YS5zcGxpdCgiLyIpO2M9W107Zm9yKGQ9MDtkPGEubGVuZ3RoO2QrKyl7az1hW2RdLnNwbGl0KCI6Iik7ZT1rWzBdO2g9W107aWYoa1sxXSlmb3IoaD1rWzFdLnNwbGl0KCIsIiksaz0wO2s8aC5sZW5ndGg7aysrKWhba109Y1twYXJzZUludChoW2tdLDM2KV07Yy5wdXNoKGUpO05nKHRoaXMsZSxoKX10aGlzLmhhPWN9aWYoYiYmYi5sZW5ndGgpe2ZvcihsZXQgbiBvZiBiKXRoaXMuQi5hZGQobik7dGhpcy55YT1iW2IubGVuZ3RoLTFdfWVsc2UgdGhpcy5nYS5qfHx0aGlzLmdhLmNhbGxiYWNrKCk7Ck9iamVjdC5mcmVlemUodGhpcy5oYSk7dGhpcy5vPT10aGlzLlomJih0aGlzLm89bnVsbCwoYj10aGlzLloub25Mb2FkKCgwLF8uQ2EpKHRoaXMuVnAsdGhpcykpKSYmYi5sZW5ndGgmJlpnKHRoaXMsbmV3IHZhLm9iKHZhLm9iLlR5cGUudWssdm9pZCAwLHZvaWQgMCx2b2lkIDAsYlswXSkpLFJnKHRoaXMpKX19O18uZy5MYT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ELmdldChhKX07Xy5nLm5pPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5MYShhKTtjJiZjLmlzTG9hZGVkKCk/dGhpcy5sb2FkKGIpOnRoaXMuaiBpbnN0YW5jZW9mIE1hcD8oYz10aGlzLmouZ2V0KGEpLGN8fChjPW5ldyBTZXQsdGhpcy5qLnNldChhLGMpKSxjLmFkZChiKSk6KHRoaXMualthXXx8KHRoaXMualthXT17fSksdGhpcy5qW2FdW2JdPSEwKX07Cl8uZy5BZz1mdW5jdGlvbihhLGIpe2lmKHRoaXMuaiBpbnN0YW5jZW9mIE1hcCl7dmFyIGM9dGhpcy5qLmdldChhKTtjJiYoYy5kZWxldGUoYiksYy5zaXplPT09MCYmdGhpcy5qLmRlbGV0ZShhKSl9ZWxzZSBpZih0aGlzLmpbYV0pe2RlbGV0ZSB0aGlzLmpbYV1bYl07Zm9yKGMgaW4gdGhpcy5qW2FdKXJldHVybjtkZWxldGUgdGhpcy5qW2FdfX07Xy5nLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQi5zaXplPjB9O18uZy5GcT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkkuc2l6ZT4wfTsKXy5nLnNqPWZ1bmN0aW9uKGEsYj0wLGMpe3ZhciBkPVlnKHRoaXMsYSk7dGhpcy5CPW5ldyBTZXQoZCk7dGhpcy5LPXRoaXMub2E/YTpfLnliKGQpO1JnKHRoaXMpO2lmKGQubGVuZ3RoIT09MCl7Zm9yKGxldCBlIG9mIGQpdGhpcy5VLmFkZChlKTthPXRoaXMuWTtpZighYSl0aHJvdyBFcnJvcigiViIpO2lmKCh0aGlzLmogaW5zdGFuY2VvZiBNYXA/dGhpcy5qLnNpemU+MDpPYmplY3Qua2V5cyh0aGlzLmopLmxlbmd0aD4wKSYmIWEuRWIpdGhyb3cgRXJyb3IoIlciKTtmZyhhLF8ueWIoZCksdGhpcy5ELHtZZDp0aGlzLmosb25FcnJvcjooZSxmLGgpPT5iaCh0aGlzLHRoaXMuSyxkLGUhPW51bGw/ZTp2b2lkIDAsZixiLCEhaCksb25UaW1lb3V0OigwLF8uQ2EpKHRoaXMud3csdGhpcyksZm9yY2VSZWxvYWQ6ISFjfSl9fTt2YXIgV2c9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWE7dGhpcy5vPW5ldyBTZXQ7dGhpcy5yZXN1bHQ9W119fTtfLmc9SWcucHJvdG90eXBlOwpfLmcueWU9ZnVuY3Rpb24oKXtpZih0aGlzLm8pe3ZhciBhPXRoaXMuby5nZXRJZCgpLGI9W107aWYodGhpcy5qIGluc3RhbmNlb2YgTWFwKXt2YXIgYz10aGlzLmouZ2V0KGEpO2lmKGMpe2Zvcih2YXIgZCBvZiBBcnJheS5mcm9tKGMpKShjPXRoaXMuTGEoZCkpJiYhYy5pc0xvYWRlZCgpJiYodGhpcy5BZyhhLGQpLGIucHVzaChkKSk7dGhpcy5hZihiKX19ZWxzZSBpZih0aGlzLmpbYV0pe2ZvcihjIG9mIE9iamVjdC5rZXlzKHRoaXMualthXSkpKGQ9dGhpcy5MYShjKSkmJiFkLmlzTG9hZGVkKCkmJih0aGlzLkFnKGEsYyksYi5wdXNoKGMpKTt0aGlzLmFmKGIpfXRoaXMuaWEoKXx8KChiPXRoaXMuRC5nZXQoYSkub25Mb2FkKCgwLF8uQ2EpKHRoaXMuVnAsdGhpcykpKSYmYi5sZW5ndGgmJlpnKHRoaXMsbmV3IHZhLm9iKHZhLm9iLlR5cGUudWssdm9pZCAwLHZvaWQgMCx2b2lkIDAsYlswXSkpLHRoaXMuSS5kZWxldGUoYSksdGhpcy5CLmRlbGV0ZShhKSx0aGlzLkIuc2l6ZSE9PTB8fAphaCh0aGlzKSx0aGlzLnlhJiZhPT10aGlzLnlhJiYodGhpcy5nYS5qfHx0aGlzLmdhLmNhbGxiYWNrKCkpLFJnKHRoaXMpLHRoaXMubz1udWxsKX19O18uZy51aD1mdW5jdGlvbihhKXtpZih0aGlzLkIuaGFzKGEpKXJldHVybiEwO2ZvcihsZXQgYj0wO2I8dGhpcy52Lmxlbmd0aDtiKyspaWYoXy5zYih0aGlzLnZbYl0sYSk+PTApcmV0dXJuITA7cmV0dXJuITF9O18uZy5sb2FkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIFRnKHRoaXMsW2FdLGIpW2FdfTtfLmcuYWY9ZnVuY3Rpb24oYSl7cmV0dXJuIFRnKHRoaXMsYSl9OwpfLmcuUm89ZnVuY3Rpb24oYSl7dGhpcy5vJiZ0aGlzLm8uZ2V0SWQoKT09PSJzeW50aGV0aWNfbW9kdWxlX292ZXJoZWFkIj8odGhpcy55ZSgpLHRoaXMuRC5kZWxldGUoInN5bnRoZXRpY19tb2R1bGVfb3ZlcmhlYWQiKSk6dGhpcy5vJiZ0aGlzLm8uZ2V0SWQoKTt2YXIgYj10aGlzLkQuZ2V0KGEpO2ImJmNoKHRoaXMsYi5qfHxbXSxjPT57Yy55ZSgpO3RoaXMuQi5kZWxldGUoYy5nZXRJZCgpKX0sYz0+IWMuaXNMb2FkZWQoKSxuZXcgU2V0KTtpZih0aGlzLm89dGhpcy5MYShhKSl0aGlzLm8uST0hMH07Xy5nLmVuPWZ1bmN0aW9uKGEpe2lmKCF0aGlzLm8pe2xldCBiPW5ldyB2YS5PZyhbXSwic3ludGhldGljX21vZHVsZV9vdmVyaGVhZCIpO3RoaXMuRC5zZXQoInN5bnRoZXRpY19tb2R1bGVfb3ZlcmhlYWQiLGIpO3RoaXMubz1ifWZlKHRoaXMubyxhKX07Xy5nLnd3PWZ1bmN0aW9uKCl7Wy4uLnRoaXMuQl07JGcodGhpcyxuZXcgdmEub2IodmEub2IuVHlwZS5USU1FT1VUKSk7YWgodGhpcyl9OwpfLmcuWm49ZnVuY3Rpb24oYSxiKXtBcnJheS5pc0FycmF5KGEpfHwoYT1bYV0pO2ZvcihsZXQgZT0wO2U8YS5sZW5ndGg7ZSsrKXt2YXIgYz1hW2VdLGQ9YjtsZXQgZj10aGlzLk0uZ2V0KGMpO2Y/Zi5wdXNoKGQpOnRoaXMuTS5zZXQoYyxbZF0pfX07Xy5nLmRpc3Bvc2U9ZnVuY3Rpb24oKXtfLiRkKEFycmF5LmZyb20odGhpcy5ELnZhbHVlcygpKSx0aGlzLlopO3RoaXMuRC5jbGVhcigpO3RoaXMuQi5jbGVhcigpO3RoaXMuSz1bXTt0aGlzLkkuY2xlYXIoKTt0aGlzLnY9W107dGhpcy5NLmNsZWFyKCk7dGhpcy5GYT0hMH07Xy5nLmlhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRmF9O18uVGQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IElnfTt2YXIgbWg9WzVFMywyRTRdLCRyPWNsYXNzIGV4dGVuZHMgamV7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RoaXMudj1uZXcgTWFwO3RoaXMuRD1PYmplY3QuY3JlYXRlKG51bGwpO3RoaXMuQj0wO3RoaXMuSz1bXTt0aGlzLmo9QWU/bmV3IE1hcDpPYmplY3QuY3JlYXRlKG51bGwpO3RoaXMubz10aGlzLkxhKCJ7YmFzZX0iKX1UaCgpe3RoaXMubyYmdGhpcy5vLmdldElkKCk9PSJ7YmFzZX0iJiZ0aGlzLnllKCl9TGEoYSl7dmFyIGI9dGhpcy52LmdldChhKTtifHwoYj1uZXcgdmEuT2coW10sYSksdGhpcy52LnNldChhLGIpKTtyZXR1cm4gYn1uaShhLGIpe2lmKHRoaXMuTGEoYSkuaXNMb2FkZWQoKSl0aGlzLmxvYWQoYik7ZWxzZSBpZih0aGlzLmogaW5zdGFuY2VvZiBNYXApe2xldCBjPXRoaXMuai5nZXQoYSk7Y3x8KGM9bmV3IFNldCx0aGlzLmouc2V0KGEsYykpO2MuYWRkKGIpfWVsc2UgdGhpcy5qW2FdfHwodGhpcy5qW2FdPXt9KSx0aGlzLmpbYV1bYl09ITB9QWcoYSxiKXtpZih0aGlzLmogaW5zdGFuY2VvZgpNYXApe3ZhciBjPXRoaXMuai5nZXQoYSk7YyYmKGMuZGVsZXRlKGIpLGMuc2l6ZT09PTAmJnRoaXMuai5kZWxldGUoYSkpfWVsc2UgaWYodGhpcy5qW2FdKXtkZWxldGUgdGhpcy5qW2FdW2JdO2ZvcihjIGluIHRoaXMualthXSlyZXR1cm47ZGVsZXRlIHRoaXMualthXX19dWgoYSl7cmV0dXJuISF0aGlzLkRbYV19bG9hZChhKXtpaCh0aGlzLFthXSk7cmV0dXJuIGpoKHRoaXMsYSl9YWYoYSl7dmFyIGI9T2JqZWN0LmNyZWF0ZShudWxsKSxjPVtdO2EuZm9yRWFjaChkPT57YltkXXx8KGJbZF09amgodGhpcyxkKSxjLnB1c2goZCkpfSk7aWgodGhpcyxjKTtyZXR1cm4gYn1SbyhhKXt0aGlzLm8/LmdldElkKCk9PT0ic3ludGhldGljX21vZHVsZV9vdmVyaGVhZCImJnRoaXMueWUoKTt2YXIgYj10aGlzLnYuZ2V0KGEpO2toKHRoaXMsYj8uc3QoKT8/W10sYz0+Yy55ZSgpLGM9PiFjLmlzTG9hZGVkKCkpO3RoaXMubz10aGlzLkxhKGEpfXllKCl7aWYodGhpcy5vKXt2YXIgYT10aGlzLm8uZ2V0SWQoKSwKYj1bXTtpZih0aGlzLmogaW5zdGFuY2VvZiBNYXApe3ZhciBjPXRoaXMuai5nZXQoYSk7aWYoYyl7Zm9yKGxldCBkIG9mIEFycmF5LmZyb20oYykpdGhpcy5MYShkKS5pc0xvYWRlZCgpfHwodGhpcy5BZyhhLGQpLGIucHVzaChkKSk7dGhpcy5hZihiKX19ZWxzZSBpZih0aGlzLmpbYV0pe2ZvcihjIG9mIE9iamVjdC5rZXlzKHRoaXMualthXSkpdGhpcy5MYShjKS5pc0xvYWRlZCgpfHwodGhpcy5BZyhhLGMpLGIucHVzaChjKSk7dGhpcy5hZihiKX10aGlzLm8ub25Mb2FkKCgpPT5udWxsKTt0aGlzLm89bnVsbDsoIXRoaXMudWgoYSkmJi9ec3lbMC05YS16XXswLDR9JC8udGVzdChhKXx8YT09PSJzeW50aGV0aWNfbW9kdWxlX292ZXJoZWFkIikmJnRoaXMudi5kZWxldGUoYSk7bGgodGhpcyxhKX19ZW4oYSl7aWYoIXRoaXMubyl7bGV0IGI9bmV3IHZhLk9nKFtdLCJzeW50aGV0aWNfbW9kdWxlX292ZXJoZWFkIik7dGhpcy52LnNldCgic3ludGhldGljX21vZHVsZV9vdmVyaGVhZCIsCmIpO3RoaXMubz1ifWZlKHRoaXMubyxhKX19O3ZhciBraj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZGF0YT1bXTt0aGlzLmo9LTF9c2V0KGEsYj0hMCl7MDw9YSYmYTw1MiYmTnVtYmVyLmlzSW50ZWdlcihhKSYmdGhpcy5kYXRhW2FdIT09YiYmKHRoaXMuZGF0YVthXT1iLHRoaXMuaj0tMSl9Z2V0KGEpe3JldHVybiEhdGhpcy5kYXRhW2FdfX07Xy5vaC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe3JldHVybiBfLmFzfTtfLmFzPXtkb25lOiEwLHZhbHVlOnZvaWQgMH07Xy5vaC5wcm90b3R5cGUuYmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307dmFyIHBoPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMubz1hfWJkKCl7cmV0dXJuIG5ldyBxaCh0aGlzLm8oKSl9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gbmV3IHJoKHRoaXMubygpKX1qKCl7cmV0dXJuIG5ldyByaCh0aGlzLm8oKSl9fSxxaD1jbGFzcyBleHRlbmRzIF8ub2h7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLm89YX1uZXh0KCl7cmV0dXJuIHRoaXMuby5uZXh0KCl9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gbmV3IHJoKHRoaXMubyl9aigpe3JldHVybiBuZXcgcmgodGhpcy5vKX19LHJoPWNsYXNzIGV4dGVuZHMgcGh7Y29uc3RydWN0b3IoYSl7c3VwZXIoKCk9PmEpO3RoaXMudj1hfW5leHQoKXtyZXR1cm4gdGhpcy52Lm5leHQoKX19O3ZhciBicz1fLnUuSlNPTi5zdHJpbmdpZnk7Xy5jcz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoYSxiKT0+e3RoaXMucmVzb2x2ZT1hO3RoaXMucmVqZWN0PWJ9KX19O18uSGEoXy50aCxfLmFlKTtfLmc9Xy50aC5wcm90b3R5cGU7Xy5nLnN1YnNjcmliZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5vW2FdO2R8fChkPXRoaXMub1thXT1bXSk7dmFyIGU9dGhpcy5EO3RoaXMualtlXT1hO3RoaXMualtlKzFdPWI7dGhpcy5qW2UrMl09Yzt0aGlzLkQ9ZSszO2QucHVzaChlKTtyZXR1cm4gZX07Xy5nLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKGEsYixjKXtpZihhPXRoaXMub1thXSl7bGV0IGQ9dGhpcy5qO2lmKGE9YS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBkW2UrMV09PWImJmRbZSsyXT09Y30pKXJldHVybiB0aGlzLmNpKGEpfXJldHVybiExfTtfLmcuY2k9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5qW2FdO2lmKGIpe2xldCBjPXRoaXMub1tiXTt0aGlzLkIhPTA/KHRoaXMudi5wdXNoKGEpLHRoaXMualthKzFdPSgpPT57fSk6KGMmJl8ueGIoYyxhKSxkZWxldGUgdGhpcy5qW2FdLGRlbGV0ZSB0aGlzLmpbYSsxXSxkZWxldGUgdGhpcy5qW2ErMl0pfXJldHVybiEhYn07Cl8uZy5wdWJsaXNoPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5vW2FdO2lmKGMpe2xldCBlPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aDtsZXQgZjtmb3IoZj0xO2Y8ZDtmKyspZVtmLTFdPWFyZ3VtZW50c1tmXTtpZih0aGlzLkkpZm9yKGY9MDtmPGMubGVuZ3RoO2YrKylkPWNbZl0sdWgodGhpcy5qW2QrMV0sdGhpcy5qW2QrMl0sZSk7ZWxzZXt0aGlzLkIrKzt0cnl7Zm9yKGY9MCxkPWMubGVuZ3RoO2Y8ZCYmIXRoaXMuaWEoKTtmKyspe2xldCBoPWNbZl07dGhpcy5qW2grMV0uYXBwbHkodGhpcy5qW2grMl0sZSl9fWZpbmFsbHl7aWYodGhpcy5CLS0sdGhpcy52Lmxlbmd0aD4wJiZ0aGlzLkI9PTApZm9yKDtjPXRoaXMudi5wb3AoKTspdGhpcy5jaShjKX19cmV0dXJuIGYhPTB9cmV0dXJuITF9OwpfLmcuY2xlYXI9ZnVuY3Rpb24oYSl7aWYoYSl7bGV0IGI9dGhpcy5vW2FdO2ImJihiLmZvckVhY2godGhpcy5jaSx0aGlzKSxkZWxldGUgdGhpcy5vW2FdKX1lbHNlIHRoaXMuai5sZW5ndGg9MCx0aGlzLm89e319O18uZy5sYT1mdW5jdGlvbigpe18udGguemIubGEuY2FsbCh0aGlzKTt0aGlzLmNsZWFyKCk7dGhpcy52Lmxlbmd0aD0wfTt2aC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7Yj09PXZvaWQgMD90aGlzLmoucmVtb3ZlKGEpOnRoaXMuai5zZXQoYSxicyhiKSl9O3ZoLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7dHJ5e3ZhciBiPXRoaXMuai5nZXQoYSl9Y2F0Y2goYyl7cmV0dXJufWlmKGIhPT1udWxsKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShiKX1jYXRjaChjKXt0aHJvdyJTdG9yYWdlOiBJbnZhbGlkIHZhbHVlIHdhcyBlbmNvdW50ZXJlZCI7fX07dmgucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLmoucmVtb3ZlKGEpfTtfLkhhKHdoLHZoKTt3aC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7d2guemIuc2V0LmNhbGwodGhpcyxhLHloKGIpKX07d2gucHJvdG90eXBlLm89ZnVuY3Rpb24oYSl7YT13aC56Yi5nZXQuY2FsbCh0aGlzLGEpO2lmKGE9PT12b2lkIDB8fGEgaW5zdGFuY2VvZiBPYmplY3QpcmV0dXJuIGE7dGhyb3ciU3RvcmFnZTogSW52YWxpZCB2YWx1ZSB3YXMgZW5jb3VudGVyZWQiO307d2gucHJvdG90eXBlLmdldD1mdW5jdGlvbihhKXtpZihhPXRoaXMubyhhKSl7aWYoYT1hLmRhdGEsYT09PXZvaWQgMCl0aHJvdyJTdG9yYWdlOiBJbnZhbGlkIHZhbHVlIHdhcyBlbmNvdW50ZXJlZCI7fWVsc2UgYT12b2lkIDA7cmV0dXJuIGF9O18uSGEoXy56aCx3aCk7Xy56aC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYixjKXtpZihiPXloKGIpKXtpZihjKXtpZihjPF8uRWEoKSl7Xy56aC5wcm90b3R5cGUucmVtb3ZlLmNhbGwodGhpcyxhKTtyZXR1cm59Yi5leHBpcmF0aW9uPWN9Yi5jcmVhdGlvbj1fLkVhKCl9Xy56aC56Yi5zZXQuY2FsbCh0aGlzLGEsYil9O18uemgucHJvdG90eXBlLm89ZnVuY3Rpb24oYSl7dmFyIGI9Xy56aC56Yi5vLmNhbGwodGhpcyxhKTtpZihiKXtsZXQgYz1iLmNyZWF0aW9uLGQ9Yi5leHBpcmF0aW9uO2lmKGQmJmQ8Xy5FYSgpfHxjJiZjPl8uRWEoKSlfLnpoLnByb3RvdHlwZS5yZW1vdmUuY2FsbCh0aGlzLGEpO2Vsc2UgcmV0dXJuIGJ9fTtfLkhhKEJoLEFoKTtCaC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiBfLnNoKHRoaXMuYmQoITApKS5qKCl9O0JoLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3ZhciBhPUFycmF5LmZyb20odGhpcyk7Zm9yKGxldCBiIG9mIGEpdGhpcy5yZW1vdmUoYil9O18uSGEoQ2gsQmgpO18uZz1DaC5wcm90b3R5cGU7Xy5nLmlzQXZhaWxhYmxlPWZ1bmN0aW9uKCl7aWYodGhpcy5vPT09bnVsbCl7dmFyIGE9dGhpcy5qO2lmKGEpdHJ5e2Euc2V0SXRlbSgiX19zYWsiLCIxIik7YS5yZW1vdmVJdGVtKCJfX3NhayIpO3ZhciBiPSEwfWNhdGNoKGMpe2I9YyBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiYmKGMubmFtZT09PSJRdW90YUV4Y2VlZGVkRXJyb3IifHxjLmNvZGU9PT0yMnx8Yy5jb2RlPT09MTAxNHx8Yy5uYW1lPT09Ik5TX0VSUk9SX0RPTV9RVU9UQV9SRUFDSEVEIikmJmEmJmEubGVuZ3RoIT09MH1lbHNlIGI9ITE7dGhpcy5vPWJ9cmV0dXJuIHRoaXMub307Cl8uZy5zZXQ9ZnVuY3Rpb24oYSxiKXtEaCh0aGlzKTt0cnl7dGhpcy5qLnNldEl0ZW0oYSxiKX1jYXRjaChjKXtpZih0aGlzLmoubGVuZ3RoPT0wKXRocm93IlN0b3JhZ2UgbWVjaGFuaXNtOiBTdG9yYWdlIGRpc2FibGVkIjt0aHJvdyJTdG9yYWdlIG1lY2hhbmlzbTogUXVvdGEgZXhjZWVkZWQiO319O18uZy5nZXQ9ZnVuY3Rpb24oYSl7RGgodGhpcyk7YT10aGlzLmouZ2V0SXRlbShhKTtpZih0eXBlb2YgYSE9PSJzdHJpbmciJiZhIT09bnVsbCl0aHJvdyJTdG9yYWdlIG1lY2hhbmlzbTogSW52YWxpZCB2YWx1ZSB3YXMgZW5jb3VudGVyZWQiO3JldHVybiBhfTtfLmcucmVtb3ZlPWZ1bmN0aW9uKGEpe0RoKHRoaXMpO3RoaXMuai5yZW1vdmVJdGVtKGEpfTsKXy5nLmJkPWZ1bmN0aW9uKGEpe0RoKHRoaXMpO3ZhciBiPTAsYz10aGlzLmosZD1uZXcgXy5vaDtkLm5leHQ9ZnVuY3Rpb24oKXtpZihiPj1jLmxlbmd0aClyZXR1cm4gXy5hczt2YXIgZT1jLmtleShiKyspO2lmKGEpcmV0dXJue3ZhbHVlOmUsZG9uZTohMX07ZT1jLmdldEl0ZW0oZSk7aWYodHlwZW9mIGUhPT0ic3RyaW5nIil0aHJvdyJTdG9yYWdlIG1lY2hhbmlzbTogSW52YWxpZCB2YWx1ZSB3YXMgZW5jb3VudGVyZWQiO3JldHVybnt2YWx1ZTplLGRvbmU6ITF9fTtyZXR1cm4gZH07Xy5nLmNsZWFyPWZ1bmN0aW9uKCl7RGgodGhpcyk7dGhpcy5qLmNsZWFyKCl9O18uZy5rZXk9ZnVuY3Rpb24oYSl7RGgodGhpcyk7cmV0dXJuIHRoaXMuai5rZXkoYSl9O18uSGEoRWgsQ2gpO18uSGEoRmgsQmgpO0ZoLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm8uc2V0KHRoaXMuaithLGIpfTtGaC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm8uZ2V0KHRoaXMuaithKX07RmgucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihhKXt0aGlzLm8ucmVtb3ZlKHRoaXMuaithKX07RmgucHJvdG90eXBlLmJkPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMub1tTeW1ib2wuaXRlcmF0b3JdKCksYz10aGlzLGQ9bmV3IF8ub2g7ZC5uZXh0PWZ1bmN0aW9uKCl7dmFyIGU9Yi5uZXh0KCk7aWYoZS5kb25lKXJldHVybiBlO2ZvcihlPWUudmFsdWU7ZS5zbGljZSgwLGMuai5sZW5ndGgpIT1jLmo7KXtlPWIubmV4dCgpO2lmKGUuZG9uZSlyZXR1cm4gZTtlPWUudmFsdWV9cmV0dXJue3ZhbHVlOmE/ZS5zbGljZShjLmoubGVuZ3RoKTpjLm8uZ2V0KGUpLGRvbmU6ITF9fTtyZXR1cm4gZH07dmFyIEhoPXt9LGRzPXR5cGVvZiBVaW50OEFycmF5IT09InVuZGVmaW5lZCImJnR5cGVvZiBVaW50MTZBcnJheSE9PSJ1bmRlZmluZWQiJiZ0eXBlb2YgSW50MzJBcnJheSE9PSJ1bmRlZmluZWQiO0hoLmFzc2lnbj1mdW5jdGlvbihhKXtmb3IodmFyIGI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2IubGVuZ3RoOyl7dmFyIGM9Yi5zaGlmdCgpO2lmKGMpe2lmKHR5cGVvZiBjIT09Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiYmFgIitjKTtmb3IodmFyIGQgaW4gYylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYyxkKSYmKGFbZF09Y1tkXSl9fXJldHVybiBhfTtIaC53bj1mdW5jdGlvbihhLGIpe2lmKGEubGVuZ3RoPT09YilyZXR1cm4gYTtpZihhLnN1YmFycmF5KXJldHVybiBhLnN1YmFycmF5KDAsYik7YS5sZW5ndGg9YjtyZXR1cm4gYX07CnZhciBlcz17d2Y6ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihiLnN1YmFycmF5JiZhLnN1YmFycmF5KWEuc2V0KGIuc3ViYXJyYXkoYyxjK2QpLGUpO2Vsc2UgZm9yKHZhciBmPTA7ZjxkO2YrKylhW2UrZl09YltjK2ZdfSxNcDpmdW5jdGlvbihhKXt2YXIgYixjO3ZhciBkPWM9MDtmb3IoYj1hLmxlbmd0aDtkPGI7ZCsrKWMrPWFbZF0ubGVuZ3RoO3ZhciBlPW5ldyBVaW50OEFycmF5KGMpO2Q9Yz0wO2ZvcihiPWEubGVuZ3RoO2Q8YjtkKyspe3ZhciBmPWFbZF07ZS5zZXQoZixjKTtjKz1mLmxlbmd0aH1yZXR1cm4gZX19LGdzPXt3ZjpmdW5jdGlvbihhLGIsYyxkLGUpe2Zvcih2YXIgZj0wO2Y8ZDtmKyspYVtlK2ZdPWJbYytmXX0sTXA6ZnVuY3Rpb24oYSl7cmV0dXJuW10uY29uY2F0LmFwcGx5KFtdLGEpfX07CkhoLmpBPWZ1bmN0aW9uKCl7ZHM/KEhoLnRmPVVpbnQ4QXJyYXksSGguWWM9VWludDE2QXJyYXksSGguUXM9SW50MzJBcnJheSxIaC5hc3NpZ24oSGgsZXMpKTooSGgudGY9QXJyYXksSGguWWM9QXJyYXksSGguUXM9QXJyYXksSGguYXNzaWduKEhoLGdzKSl9O0hoLmpBKCk7dmFyIGhzPSEwO3RyeXtuZXcgVWludDhBcnJheSgxKX1jYXRjaChhKXtocz0hMX07dmFyIHRpPXt9O3RpPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEmNjU1MzV8MDthPWE+Pj4xNiY2NTUzNXwwO2Zvcih2YXIgZjtjIT09MDspe2Y9Yz4yRTM/MkUzOmM7Yy09ZjtkbyBlPWUrYltkKytdfDAsYT1hK2V8MDt3aGlsZSgtLWYpO2UlPTY1NTIxO2ElPTY1NTIxfXJldHVybiBlfGE8PDE2fDB9O2Zvcih2YXIgdWk9e30saXMsanM9W10sa3M9MDtrczwyNTY7a3MrKyl7aXM9a3M7Zm9yKHZhciBscz0wO2xzPDg7bHMrKylpcz1pcyYxPzM5ODgyOTIzODReaXM+Pj4xOmlzPj4+MTtqc1trc109aXN9dWk9ZnVuY3Rpb24oYSxiLGMsZCl7Yz1kK2M7Zm9yKGFePS0xO2Q8YztkKyspYT1hPj4+OF5qc1soYV5iW2RdKSYyNTVdO3JldHVybiBhXi0xfTt2YXIgaWk9e307aWk9ezI6Im5lZWQgZGljdGlvbmFyeSIsMToic3RyZWFtIGVuZCIsMDoiIiwiLTEiOiJmaWxlIGVycm9yIiwiLTIiOiJzdHJlYW0gZXJyb3IiLCItMyI6ImRhdGEgZXJyb3IiLCItNCI6Imluc3VmZmljaWVudCBtZW1vcnkiLCItNSI6ImJ1ZmZlciBlcnJvciIsIi02IjoiaW5jb21wYXRpYmxlIHZlcnNpb24ifTt2YXIgWGg9WzAsMCwwLDAsMCwwLDAsMCwxLDEsMSwxLDIsMiwyLDIsMywzLDMsMyw0LDQsNCw0LDUsNSw1LDUsMF0sJGg9WzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTNdLEtpPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIsMyw3XSxtaT1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV0sbmk9QXJyYXkoNTc2KTtKaChuaSk7dmFyIG9pPUFycmF5KDYwKTtKaChvaSk7dmFyIFpoPUFycmF5KDUxMik7SmgoWmgpO3ZhciBXaD1BcnJheSgyNTYpO0poKFdoKTt2YXIgWWg9QXJyYXkoMjkpO0poKFloKTt2YXIgYmk9QXJyYXkoMzApO0poKGJpKTt2YXIgSGksSWksSmksR2k9ITE7dmFyIENpOwpDaT1bbmV3IEFpKDAsMCwwLDAsZnVuY3Rpb24oYSxiKXt2YXIgYz02NTUzNTtmb3IoYz5hLm5jLTUmJihjPWEubmMtNSk7Oyl7aWYoYS5kYTw9MSl7dmkoYSk7aWYoYS5kYT09PTAmJmI9PT0wKXJldHVybiAxO2lmKGEuZGE9PT0wKWJyZWFrfWEuVis9YS5kYTthLmRhPTA7dmFyIGQ9YS5VYitjO2lmKGEuVj09PTB8fGEuVj49ZClpZihhLmRhPWEuVi1kLGEuVj1kLHBpKGEsITEpLGEud2EuemE9PT0wKXJldHVybiAxO2lmKGEuVi1hLlViPj1hLkJiLTI2MiYmKHBpKGEsITEpLGEud2EuemE9PT0wKSlyZXR1cm4gMX1hLnJiPTA7aWYoYj09PTQpcmV0dXJuIHBpKGEsITApLGEud2EuemE9PT0wPzM6NDthLlY+YS5VYiYmcGkoYSwhMSk7cmV0dXJuIDF9KSxuZXcgQWkoNCw0LDgsNCx3aSksbmV3IEFpKDQsNSwxNiw4LHdpKSxuZXcgQWkoNCw2LDMyLDMyLHdpKSxuZXcgQWkoNCw0LDE2LDE2LHhpKSxuZXcgQWkoOCwxNiwzMiwzMix4aSksbmV3IEFpKDgsMTYsMTI4LDEyOCx4aSksbmV3IEFpKDgsCjMyLDEyOCwyNTYseGkpLG5ldyBBaSgzMiwxMjgsMjU4LDEwMjQseGkpLG5ldyBBaSgzMiwyNTgsMjU4LDQwOTYseGkpXTt2YXIgRmk9e307Rmk9ZnVuY3Rpb24oKXt0aGlzLmlucHV0PW51bGw7dGhpcy5xZj10aGlzLkRiPXRoaXMuZmY9MDt0aGlzLm91dHB1dD1udWxsO3RoaXMuRW49dGhpcy56YT10aGlzLnFnPTA7dGhpcy5tc2c9IiI7dGhpcy5zdGF0ZT1udWxsO3RoaXMuaWw9Mjt0aGlzLnNhPTB9O3ZhciBMaT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwpFaS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMud2EsZD10aGlzLm9wdGlvbnMuY2h1bmtTaXplO2lmKHRoaXMuZW5kZWQpcmV0dXJuITE7dmFyIGU9Yj09PX5+Yj9iOmI9PT0hMD80OjA7dHlwZW9mIGE9PT0ic3RyaW5nIj9jLmlucHV0PUloKGEpOkxpLmNhbGwoYSk9PT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iP2MuaW5wdXQ9bmV3IFVpbnQ4QXJyYXkoYSk6Yy5pbnB1dD1hO2MuZmY9MDtjLkRiPWMuaW5wdXQubGVuZ3RoO2Rve2MuemE9PT0wJiYoYy5vdXRwdXQ9bmV3IEhoLnRmKGQpLGMucWc9MCxjLnphPWQpO2E9RGkoYyxlKTtpZihhIT09MSYmYSE9PTApcmV0dXJuIE1pKHRoaXMsYSksdGhpcy5lbmRlZD0hMCwhMTtpZihjLnphPT09MHx8Yy5EYj09PTAmJihlPT09NHx8ZT09PTIpKWlmKHRoaXMub3B0aW9ucy50bz09PSJzdHJpbmciKXt2YXIgZj1IaC53bihjLm91dHB1dCxjLnFnKTtiPWY7Zj1mLmxlbmd0aDtpZihmPDY1NTM3JiYoYi5zdWJhcnJheSYmCmhzfHwhYi5zdWJhcnJheSkpYj1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsSGgud24oYixmKSk7ZWxzZXtmb3IodmFyIGg9IiIsaz0wO2s8ZjtrKyspaCs9U3RyaW5nLmZyb21DaGFyQ29kZShiW2tdKTtiPWh9dGhpcy5jaHVua3MucHVzaChiKX1lbHNlIGI9SGgud24oYy5vdXRwdXQsYy5xZyksdGhpcy5jaHVua3MucHVzaChiKX13aGlsZSgoYy5EYj4wfHxjLnphPT09MCkmJmEhPT0xKTtpZihlPT09NClyZXR1cm4oYz10aGlzLndhKSYmYy5zdGF0ZT8oZD1jLnN0YXRlLnN0YXR1cyxkIT09NDImJmQhPT02OSYmZCE9PTczJiZkIT09OTEmJmQhPT0xMDMmJmQhPT0xMTMmJmQhPT02NjY/YT1qaShjLC0yKTooYy5zdGF0ZT1udWxsLGE9ZD09PTExMz9qaShjLC0zKTowKSk6YT0tMixNaSh0aGlzLGEpLHRoaXMuZW5kZWQ9ITAsYT09PTA7ZT09PTImJihNaSh0aGlzLDApLGMuemE9MCk7cmV0dXJuITB9O18uST1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLm5hbWU9YX19O3ZhciB4cD1uZXcgXy5JKCJyYXdDb2xkQ29uZmlnR3JvdXAiKTt2YXIgd3A9bmV3IF8uSSgicmF3SG90Q29uZmlnR3JvdXAiKTt2YXIgbXM7bXM9Xy51LndpbmRvdztfLlBpPW1zPy55dD8uY29uZmlnX3x8bXM/Lnl0Y2ZnPy5kYXRhX3x8e307Xy5yYSgieXQuY29uZmlnXyIsXy5QaSk7dmFyIFNpPVtdO3ZhciBnaj0vXltcdy5dKiQvLCRpPXtxOiEwLHNlYXJjaF9xdWVyeTohMH0sWmk9U3RyaW5nKFlpKTt2YXIgaGo9bmV3IGNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5qPWE7dGhpcy5vPWJ9fSh3aW5kb3csd2luZG93LmRvY3VtZW50KTtfLnJhKCJ5dC5hZHNfLnNpZ25hbHNfLmdldEFkU2lnbmFsc1N0cmluZyIsZnVuY3Rpb24oYSl7cmV0dXJuIGFqKF8ubGooYSkpfSk7Xy5FYSgpO25hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiIChDcktleSAiKTt2YXIgcXM7cXM9MDtfLnJzPV8uY3I/IndlYmtpdCI6YnI/Im1veiI6YXI/Im1zIjokcT8ibyI6IiI7Xy5yYSgieXREb21Eb21HZXROZXh0SWQiLF8uc2EoInl0RG9tRG9tR2V0TmV4dElkIil8fCgoKT0+KytxcykpO18uc3M9Xy51Lnl0RXZlbnRzRXZlbnRzTGlzdGVuZXJzfHx7fTtfLnJhKCJ5dEV2ZW50c0V2ZW50c0xpc3RlbmVycyIsXy5zcyk7Xy50cz1fLnUueXRFdmVudHNFdmVudHNDb3VudGVyfHx7Y291bnQ6MH07Xy5yYSgieXRFdmVudHNFdmVudHNDb3VudGVyIixfLnRzKTtfLnVzPWhkKGZ1bmN0aW9uKCl7dmFyIGE9ITE7dHJ5e2xldCBiPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiY2FwdHVyZSIse2dldDpmdW5jdGlvbigpe2E9ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsYil9Y2F0Y2goYil7fXJldHVybiBhfSk7dmFyIHZzO3ZzPXdpbmRvdztfLmVsPXZzLnl0Y3NpJiZ2cy55dGNzaS5ub3c/dnMueXRjc2kubm93OnZzLnBlcmZvcm1hbmNlJiZ2cy5wZXJmb3JtYW5jZS50aW1pbmcmJnZzLnBlcmZvcm1hbmNlLm5vdyYmdnMucGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydD8oKT0+dnMucGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydCt2cy5wZXJmb3JtYW5jZS5ub3coKTooKT0+KG5ldyBEYXRlKS5nZXRUaW1lKCk7dmFyIG5qPSJYTUxIdHRwUmVxdWVzdCJpbiBfLnU/KCk9Pm5ldyBYTUxIdHRwUmVxdWVzdDpudWxsO3ZhciB3cz0iYWJzb2x1dGVfZXhwZXJpbWVudHMgY2xpZW50X2Rldl9kb21haW4gY2xpZW50X2Rldl9leHBmbGFnIGNsaWVudF9kZXZfcmVnZXhfbWFwIGNsaWVudF9kZXZfcm9vdF91cmwgY2xpZW50X3JvbGxvdXRfb3ZlcnJpZGUgZXhwZmxhZyBmb3JjZWRDYXBhYmlsaXR5IGpzZmVhdCBqc21vZGUgbW9kcyB0aGVtZSIuc3BsaXQoIiAiKTtbLi4ud3NdO3ZhciB5aj17QXV0aG9yaXphdGlvbjoiQVVUSE9SSVpBVElPTiIsIlgtR29vZy1FT00tVmlzaXRvci1JZCI6IkVPTV9WSVNJVE9SX0RBVEEiLCJYLUdvb2ctVmlzaXRvci1JZCI6IlNBTkRCT1hFRF9WSVNJVE9SX0lEIiwiWC1Zb3V0dWJlLURvbWFpbi1BZG1pbi1TdGF0ZSI6IkRPTUFJTl9BRE1JTl9TVEFURSIsIlgtWW91dHViZS1DaHJvbWUtQ29ubmVjdGVkIjoiQ0hST01FX0NPTk5FQ1RFRF9IRUFERVIiLCJYLVlvdVR1YmUtQ2xpZW50LU5hbWUiOiJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsIlgtWW91VHViZS1DbGllbnQtVmVyc2lvbiI6IklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9WRVJTSU9OIiwiWC1Zb3VUdWJlLURlbGVnYXRpb24tQ29udGV4dCI6IklOTkVSVFVCRV9DT05URVhUX1NFUklBTElaRURfREVMRUdBVElPTl9DT05URVhUIiwiWC1Zb3VUdWJlLURldmljZSI6IkRFVklDRSIsIlgtWW91dHViZS1JZGVudGl0eS1Ub2tlbiI6IklEX1RPS0VOIiwiWC1Zb3VUdWJlLVBhZ2UtQ0wiOiJQQUdFX0NMIiwKIlgtWW91VHViZS1QYWdlLUxhYmVsIjoiUEFHRV9CVUlMRF9MQUJFTCIsIlgtR29vZy1BdXRoVXNlciI6IlNFU1NJT05fSU5ERVgiLCJYLUdvb2ctUGFnZUlkIjoiREVMRUdBVEVEX1NFU1NJT05fSUQifSxLaj1bImFwcCIsImRlYnVnY3NzIiwiZGVidWdqcyIsImV4cGZsYWciLCJmb3JjZV9hZF9wYXJhbXMiLCJmb3JjZV9hZF9lbmNyeXB0ZWQiLCJmb3JjZV92aXJhbF9hZF9yZXNwb25zZV9wYXJhbXMiLCJmb3JjZWRfZXhwZXJpbWVudHMiLCJpbm5lcnR1YmVfc25hcHNob3RzIiwiaW5uZXJ0dWJlX2dvbGRlbnMiLCJpbnRlcm5hbGNvdW50cnljb2RlIiwiaW50ZXJuYWxpcG92ZXJyaWRlIiwiYWJzb2x1dGVfZXhwZXJpbWVudHMiLCJjb25kaXRpb25hbF9leHBlcmltZW50cyIsInNiYiIsInNyX2Juc19hZGRyZXNzIiwuLi53c10sR2o9ITEsRGo9eGo7Xy5ubT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuem49ITB9fTtfLnhzPV8uc2EoInl0Z2xvYmFsLnByZWZzVXNlclByZWZzUHJlZnNfIil8fHt9O18ucmEoInl0Z2xvYmFsLnByZWZzVXNlclByZWZzUHJlZnNfIixfLnhzKTt2YXIgUmo9e2JsdWV0b290aDoiQ09OTl9ESVNDTyIsY2VsbHVsYXI6IkNPTk5fQ0VMTFVMQVJfVU5LTk9XTiIsZXRoZXJuZXQ6IkNPTk5fV0lGSSIsbm9uZToiQ09OTl9OT05FIix3aWZpOiJDT05OX1dJRkkiLHdpbWF4OiJDT05OX0NFTExVTEFSXzRHIixvdGhlcjoiQ09OTl9VTktOT1dOIix1bmtub3duOiJDT05OX1VOS05PV04iLCJzbG93LTJnIjoiQ09OTl9DRUxMVUxBUl8yRyIsIjJnIjoiQ09OTl9DRUxMVUxBUl8yRyIsIjNnIjoiQ09OTl9DRUxMVUxBUl8zRyIsIjRnIjoiQ09OTl9DRUxMVUxBUl80RyJ9LFRqPXsic2xvdy0yZyI6IkVGRkVDVElWRV9DT05ORUNUSU9OX1RZUEVfU0xPV18yRyIsIjJnIjoiRUZGRUNUSVZFX0NPTk5FQ1RJT05fVFlQRV8yRyIsIjNnIjoiRUZGRUNUSVZFX0NPTk5FQ1RJT05fVFlQRV8zRyIsIjRnIjoiRUZGRUNUSVZFX0NPTk5FQ1RJT05fVFlQRV80RyJ9O18uWGo9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihhLC4uLmIpe3N1cGVyKGEpO3RoaXMuYXJncz1bLi4uYl07T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsbmV3LnRhcmdldC5wcm90b3R5cGUpfX07dmFyIHlzPWNsYXNze3BiKGEsYil7cmV0dXJuIHRoaXMuR2EoYSwxLGIpfVUoYSl7dmFyIGI9Xy5zYSgieXQuc2NoZWR1bGVyLmluc3RhbmNlLmFkZEltbWVkaWF0ZUpvYiIpO2I/YihhKTphKCl9fTt2YXIgenM9MUUzLzYwLEFzPV8uc2ooIndlYl9lbXVsYXRlZF9pZGxlX2NhbGxiYWNrX2RlbGF5IiwzMDApLGdrPXpzLTMsZGs9WzgsNSw0LDMsMiwxLDBdLGprPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3RvcihhPXt9KXtzdXBlcigpO3RoaXMubz1bXTt0aGlzLnY9e307dGhpcy5vYT10aGlzLmo9MDt0aGlzLnBhdXNlZD10aGlzLkQ9ITE7dGhpcy5nYT1bXTt0aGlzLmhhPXRoaXMueWE9ITE7Zm9yKGxldCBiIG9mIGRrKXRoaXMub1tiXT1bXTt0aGlzLkI9MDt0aGlzLmV5PWEudGltZW91dHx8MTt0aGlzLk09Z2s7dGhpcy5JPTA7dGhpcy5NYT10aGlzLml5LmJpbmQodGhpcyk7dGhpcy5neD10aGlzLnp5LmJpbmQodGhpcyk7dGhpcy5mYz10aGlzLkViLmJpbmQodGhpcyk7dGhpcy5WZD10aGlzLmh5LmJpbmQodGhpcyk7dGhpcy5GbD10aGlzLlFhLmJpbmQodGhpcyk7dGhpcy51dz0oKT0+e3RoaXMuUWEocGVyZm9ybWFuY2Uubm93KCkpfTt0aGlzLkZhPSEhd2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2smJgohIXdpbmRvdy5jYW5jZWxJZGxlQ2FsbGJhY2smJiFfLngoImRpc2FibGVfc2NoZWR1bGVyX3JlcXVlc3RJZGxlQ2FsbGJhY2siKTsoKHRoaXMuWj1hLnVzZVJhZiE9PSExJiYhIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpfHxfLngoImVuYWJsZV9zY2hlZHVsZXJfc2ltdWxhdGVfcmFmIikpJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLk1hKX1VKGEpe3ZhciBiPV8uRWEoKTtaaih0aGlzLGEpO2E9Xy5FYSgpLWI7dGhpcy5EfHwodGhpcy5NLT1hKX1HYShhLGIsYyl7Kyt0aGlzLm9hO2lmKGI9PT0xMClyZXR1cm4gdGhpcy5VKGEpLHRoaXMub2E7dmFyIGQ9dGhpcy5vYTt0aGlzLnZbZF09YTt0aGlzLkQmJiFjP3RoaXMuZ2EucHVzaCh7aWQ6ZCxwcmlvcml0eTpifSk6KHRoaXMub1tiXS5wdXNoKGQpLHRoaXMucGF1c2VkfHx0aGlzLkR8fCh0aGlzLmohPT0wJiZiayh0aGlzKSE9PXRoaXMuSSYmdGhpcy5zdG9wKCksdGhpcy5zdGFydCgpKSk7CnJldHVybiBkfUFhKGEpe2RlbGV0ZSB0aGlzLnZbYV19aXNIaWRkZW4oKXtyZXR1cm4hIWRvY3VtZW50LmhpZGRlbnx8ITF9SmIoYSl7dmFyIGI9Xy5zYSgieXQubG9nZ2luZy5lcnJvcnMubG9nIik7YiYmYihhKX1oeShhKXt2YXIgYj12b2lkIDA7YSYmKGI9YS50aW1lUmVtYWluaW5nKCkpO3RoaXMueWE9ITA7aGsodGhpcyxiKTt0aGlzLnlhPSExfXp5KCl7aGsodGhpcyl9RWIoKXtpayh0aGlzKX1RYShhKXt0aGlzLmhhPSEwO3ZhciBiPWJrKHRoaXMpO2I9PT00JiZiIT09dGhpcy5JJiYodGhpcy5zdG9wKCksdGhpcy5zdGFydCgpKTtoayh0aGlzLHZvaWQgMCxhKTt0aGlzLmhhPSExfWl5KCl7dGhpcy5pc0hpZGRlbigpfHxpayh0aGlzKTt0aGlzLmomJih0aGlzLnN0b3AoKSx0aGlzLnN0YXJ0KCkpfXJlcXVlc3RJZGxlQ2FsbGJhY2soYSl7cmV0dXJuIHRoaXMuRmE/d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2soYSx7dGltZW91dDozRTN9KTp3aW5kb3cuc2V0VGltZW91dChhLApBcyl9Y2FuY2VsSWRsZUNhbGxiYWNrKGEpe3RoaXMuRmE/d2luZG93LmNhbmNlbElkbGVDYWxsYmFjayhhKTp3aW5kb3cuY2xlYXJUaW1lb3V0KGEpfXN0YXJ0KCl7dGhpcy5wYXVzZWQ9ITE7aWYodGhpcy5qPT09MClzd2l0Y2godGhpcy5JPWJrKHRoaXMpLHRoaXMuSSl7Y2FzZSAxOnRoaXMuaj10aGlzLnJlcXVlc3RJZGxlQ2FsbGJhY2sodGhpcy5WZCk7YnJlYWs7Y2FzZSAyOnRoaXMuaj13aW5kb3cuc2V0VGltZW91dCh0aGlzLmd4LHRoaXMuZXkpO2JyZWFrO2Nhc2UgMzp0aGlzLmo9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLkZsKTticmVhaztjYXNlIDQ6dGhpcy5qPXdpbmRvdy5zZXRUaW1lb3V0KHRoaXMuZmMsMCk7YnJlYWs7Y2FzZSA1OnRoaXMuaj13aW5kb3cuc2V0VGltZW91dCh0aGlzLnV3LHpzKX19cGF1c2UoKXt0aGlzLnN0b3AoKTt0aGlzLnBhdXNlZD0hMH1zdG9wKCl7aWYodGhpcy5qKXtzd2l0Y2godGhpcy5JKXtjYXNlIDE6dGhpcy5jYW5jZWxJZGxlQ2FsbGJhY2sodGhpcy5qKTsKYnJlYWs7Y2FzZSA1OmNhc2UgMjpjYXNlIDQ6d2luZG93LmNsZWFyVGltZW91dCh0aGlzLmopO2JyZWFrO2Nhc2UgMzp3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5qKX10aGlzLmo9MH19bGEoKXtjayh0aGlzKTt0aGlzLnN0b3AoKTsodGhpcy5afHxfLngoImVuYWJsZV9zY2hlZHVsZXJfc2ltdWxhdGVfcmFmIikpJiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLk1hKTtzdXBlci5sYSgpfX07dmFyIG5rPV8uc2EoInl0LnNjaGVkdWxlci5pbnN0YW5jZS50aW1lcklkTWFwXyIpfHx7fSx1az1fLnNqKCJrZXZsYXJfdHVuZXJfc2NoZWR1bGVyX3NvZnRfc3RhdGVfdGltZXJfbXMiLDgwMCksdGs9MCx3az0wO3ZhciBCaztCaz1jbGFzcyBleHRlbmRzIHlze0dhKGEsYixjKXtjIT09dm9pZCAwJiZOdW1iZXIuaXNOYU4oTnVtYmVyKGMpKSYmKGM9dm9pZCAwKTt2YXIgZD1fLnNhKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UuYWRkSm9iIik7cmV0dXJuIGQ/ZChhLGIsYyk6Yz09PXZvaWQgMD8oYSgpLE5hTik6Xy5taihhLGN8fDApfUFhKGEpe2lmKGE9PT12b2lkIDB8fCFOdW1iZXIuaXNOYU4oTnVtYmVyKGEpKSl7dmFyIGI9Xy5zYSgieXQuc2NoZWR1bGVyLmluc3RhbmNlLmNhbmNlbEpvYiIpO2I/YihhKTp3aW5kb3cuY2xlYXJUaW1lb3V0KGEpfX1zdGFydCgpe3ZhciBhPV8uc2EoInl0LnNjaGVkdWxlci5pbnN0YW5jZS5zdGFydCIpO2EmJmEoKX1wYXVzZSgpe3ZhciBhPV8uc2EoInl0LnNjaGVkdWxlci5pbnN0YW5jZS5wYXVzZSIpO2EmJmEoKX19O18uamY9Xy5DaygpOwpfLnNhKCJ5dC5zY2hlZHVsZXIuaW5pdGlhbGl6ZWQiKXx8KF8ucmEoInl0LnNjaGVkdWxlci5pbnN0YW5jZS5kaXNwb3NlIixtayksXy5yYSgieXQuc2NoZWR1bGVyLmluc3RhbmNlLmFkZEpvYiIsb2spLF8ucmEoInl0LnNjaGVkdWxlci5pbnN0YW5jZS5hZGRJbW1lZGlhdGVKb2IiLHBrKSxfLnJhKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UuY2FuY2VsSm9iIixxayksXy5yYSgieXQuc2NoZWR1bGVyLmluc3RhbmNlLmNhbmNlbEFsbEpvYnMiLGxrKSxfLnJhKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2Uuc3RhcnQiLHJrKSxfLnJhKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UucGF1c2UiLHZrKSxfLnJhKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2Uuc2V0UHJpb3JpdHlUaHJlc2hvbGQiLHhrKSxfLnJhKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UuZW5hYmxlUHJpb3JpdHlUaHJlc2hvbGQiLHprKSxfLnJhKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UuY2xlYXJQcmlvcml0eVRocmVzaG9sZCIsQWspLF8ucmEoInl0LnNjaGVkdWxlci5pbml0aWFsaXplZCIsCiEwKSk7Xy5lbj1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9KGE9Xy5HaChhKSk/bmV3IF8uemgoYSk6bnVsbDt0aGlzLnY9ZG9jdW1lbnQuZG9tYWlufHx3aW5kb3cubG9jYXRpb24uaG9zdG5hbWV9bygpe3JldHVybiEhdGhpcy5qfXNldChhLGIsYyxkKXtjPWN8fDMxMTA0RTM7dGhpcy5yZW1vdmUoYSk7aWYodGhpcy5vKCkpdHJ5e3RoaXMuai5zZXQoYSxiLERhdGUubm93KCkrYyoxRTMpO3JldHVybn1jYXRjaChmKXt9dmFyIGU9IiI7aWYoZCl0cnl7ZT1lc2NhcGUoYnMoYikpfWNhdGNoKGYpe3JldHVybn1lbHNlIGU9ZXNjYXBlKGIpO18uTWooYSxlLGMsdGhpcy52KX1nZXQoYSxiKXt2YXIgYz12b2lkIDAsZD0hdGhpcy5vKCk7aWYoIWQpdHJ5e2M9dGhpcy5qLmdldChhKX1jYXRjaChlKXtkPSEwfWlmKGQmJihjPV8uTGouZ2V0KGEsdm9pZCAwKSkmJihjPXVuZXNjYXBlKGMpLGIpKXRyeXtjPUpTT04ucGFyc2UoYyl9Y2F0Y2goZSl7dGhpcy5yZW1vdmUoYSksYz12b2lkIDB9cmV0dXJuIGN9cmVtb3ZlKGEpe3RoaXMubygpJiYKdGhpcy5qLnJlbW92ZShhKTtfLk5qKGEsIi8iLHRoaXMudil9fTt2YXIgRGs9KCgpPT57dmFyIGE7cmV0dXJuKCk9PnthfHwoYT1uZXcgXy5lbigieXRpZGIiKSk7cmV0dXJuIGF9fSkoKTt2YXIgRms7Xy5Iaz1bXTtGaz0hMTtfLklsPV8uaHJ8fF8uaXI7dmFyIEJzPXtBVVRIX0lOVkFMSUQ6Ik5vIHVzZXIgaWRlbnRpZmllciBzcGVjaWZpZWQuIixFWFBMSUNJVF9BQk9SVDoiVHJhbnNhY3Rpb24gd2FzIGV4cGxpY2l0bHkgYWJvcnRlZC4iLElEQl9OT1RfU1VQUE9SVEVEOiJJbmRleGVkREIgaXMgbm90IHN1cHBvcnRlZC4iLE1JU1NJTkdfSU5ERVg6IkluZGV4IG5vdCBjcmVhdGVkLiIsTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiJPYmplY3Qgc3RvcmVzIG5vdCBjcmVhdGVkLiIsREJfREVMRVRFRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVM6IkRhdGFiYXNlIGlzIGRlbGV0ZWQgYmVjYXVzZSBleHBlY3RlZCBvYmplY3Qgc3RvcmVzIHdlcmUgbm90IGNyZWF0ZWQuIixEQl9SRU9QRU5FRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVM6IkRhdGFiYXNlIGlzIHJlb3BlbmVkIGJlY2F1c2UgZXhwZWN0ZWQgb2JqZWN0IHN0b3JlcyB3ZXJlIG5vdCBjcmVhdGVkLiIsVU5LTk9XTl9BQk9SVDoiVHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQgZm9yIHVua25vd24gcmVhc29ucy4iLApRVU9UQV9FWENFRURFRDoiVGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gZXhjZWVkZWQgaXRzIHF1b3RhIGxpbWl0YXRpb25zLiIsUVVPVEFfTUFZQkVfRVhDRUVERUQ6IlRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIG1heSBoYXZlIGZhaWxlZCBiZWNhdXNlIG9mIGV4Y2VlZGluZyBxdW90YSBsaW1pdGF0aW9ucy4iLEVYRUNVVEVfVFJBTlNBQ1RJT05fT05fQ0xPU0VEX0RCOiJDYW4ndCBzdGFydCBhIHRyYW5zYWN0aW9uIG9uIGEgY2xvc2VkIGRhdGFiYXNlIixJTkNPTVBBVElCTEVfREJfVkVSU0lPTjoiVGhlIGJpbmFyeSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgZGF0YWJhc2UgdmVyc2lvbiJ9LENzPXtBVVRIX0lOVkFMSUQ6IkVSUk9SIixFWEVDVVRFX1RSQU5TQUNUSU9OX09OX0NMT1NFRF9EQjoiV0FSTklORyIsRVhQTElDSVRfQUJPUlQ6IklHTk9SRUQiLElEQl9OT1RfU1VQUE9SVEVEOiJFUlJPUiIsTUlTU0lOR19JTkRFWDoiV0FSTklORyIsTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiJFUlJPUiIsCkRCX0RFTEVURURfQllfTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiJXQVJOSU5HIixEQl9SRU9QRU5FRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVM6IldBUk5JTkciLFFVT1RBX0VYQ0VFREVEOiJXQVJOSU5HIixRVU9UQV9NQVlCRV9FWENFRURFRDoiV0FSTklORyIsVU5LTk9XTl9BQk9SVDoiV0FSTklORyIsSU5DT01QQVRJQkxFX0RCX1ZFUlNJT046IldBUk5JTkcifSxEcz17QVVUSF9JTlZBTElEOiExLEVYRUNVVEVfVFJBTlNBQ1RJT05fT05fQ0xPU0VEX0RCOiExLEVYUExJQ0lUX0FCT1JUOiExLElEQl9OT1RfU1VQUE9SVEVEOiExLE1JU1NJTkdfSU5ERVg6ITEsTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiExLERCX0RFTEVURURfQllfTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiExLERCX1JFT1BFTkVEX0JZX01JU1NJTkdfT0JKRUNUX1NUT1JFUzohMSxRVU9UQV9FWENFRURFRDohMSxRVU9UQV9NQVlCRV9FWENFRURFRDohMCxVTktOT1dOX0FCT1JUOiEwLElOQ09NUEFUSUJMRV9EQl9WRVJTSU9OOiExfSwKTms9Y2xhc3MgZXh0ZW5kcyBfLlhqe2NvbnN0cnVjdG9yKGEsYj17fSxjPUJzW2FdLGQ9Q3NbYV0sZT1Ec1thXSl7c3VwZXIoYyx7bmFtZToiWXRJZGJLbm93bkVycm9yIixpc1N3OnNlbGYuZG9jdW1lbnQ9PT12b2lkIDAsaXNJZnJhbWU6c2VsZiE9PXNlbGYudG9wLHR5cGU6YSwuLi5ifSk7dGhpcy50eXBlPWE7dGhpcy5tZXNzYWdlPWM7dGhpcy5sZXZlbD1kO3RoaXMuaj1lO09iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLE5rLnByb3RvdHlwZSl9fSxFcz1jbGFzcyBleHRlbmRzIE5re2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoIk1JU1NJTkdfT0JKRUNUX1NUT1JFUyIse2V4cGVjdGVkT2JqZWN0U3RvcmVzOmIsZm91bmRPYmplY3RTdG9yZXM6YX0sQnMuTUlTU0lOR19PQkpFQ1RfU1RPUkVTKTtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxFcy5wcm90b3R5cGUpfX0sUGs9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihhLGIpe3N1cGVyKCk7dGhpcy5pbmRleD1hO3RoaXMub2JqZWN0U3RvcmU9CmI7T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsUGsucHJvdG90eXBlKX19LFFrPVsiVGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24gaXMgY2xvc2luZyIsIkNhbid0IHN0YXJ0IGEgdHJhbnNhY3Rpb24gb24gYSBjbG9zZWQgZGF0YWJhc2UiLCJBIG11dGF0aW9uIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIG9uIGEgZGF0YWJhc2UgdGhhdCBkaWQgbm90IGFsbG93IG11dGF0aW9ucyJdO3ZhciBhbDthbD1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX19OwpfLlZrPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuc3RhdGU9e3N0YXR1czoiUEVORElORyJ9O3RoaXMuaj1bXTt0aGlzLm89W107YT1hLmo7dmFyIGI9ZD0+e2lmKHRoaXMuc3RhdGUuc3RhdHVzPT09IlBFTkRJTkciKXt0aGlzLnN0YXRlPXtzdGF0dXM6IkZVTEZJTExFRCIsdmFsdWU6ZH07Zm9yKGxldCBlIG9mIHRoaXMuaillKCl9fSxjPWQ9PntpZih0aGlzLnN0YXRlLnN0YXR1cz09PSJQRU5ESU5HIil7dGhpcy5zdGF0ZT17c3RhdHVzOiJSRUpFQ1RFRCIscmVhc29uOmR9O2ZvcihsZXQgZSBvZiB0aGlzLm8pZSgpfX07dHJ5e2EoYixjKX1jYXRjaChkKXtjKGQpfX1zdGF0aWMgYWxsKGEpe3JldHVybiBuZXcgXy5WayhuZXcgYWwoKGIsYyk9Pnt2YXIgZD1bXSxlPWEubGVuZ3RoO2U9PT0wJiZiKGQpO2ZvcihsZXQgZj0wO2Y8YS5sZW5ndGg7KytmKV8uVmsucmVzb2x2ZShhW2ZdKS50aGVuKGg9PntkW2ZdPWg7ZS0tO2U9PT0wJiZiKGQpfSkuY2F0Y2goaD0+e2MoaCl9KX0pKX1zdGF0aWMgcmVzb2x2ZShhKXtyZXR1cm4gbmV3IF8uVmsobmV3IGFsKChiLApjKT0+e2EgaW5zdGFuY2VvZiBfLlZrP2EudGhlbihiLGMpOmIoYSl9KSl9c3RhdGljIHJlamVjdChhKXtyZXR1cm4gbmV3IF8uVmsobmV3IGFsKChiLGMpPT57YyhhKX0pKX10aGVuKGEsYil7dmFyIGM9YT8/VWssZD1iPz9UaztyZXR1cm4gbmV3IF8uVmsobmV3IGFsKChlLGYpPT57dGhpcy5zdGF0ZS5zdGF0dXM9PT0iUEVORElORyI/KHRoaXMuai5wdXNoKCgpPT57WGsodGhpcyx0aGlzLGMsZSxmKX0pLHRoaXMuby5wdXNoKCgpPT57WWsodGhpcyx0aGlzLGQsZSxmKX0pKTp0aGlzLnN0YXRlLnN0YXR1cz09PSJGVUxGSUxMRUQiP1hrKHRoaXMsdGhpcyxjLGUsZik6dGhpcy5zdGF0ZS5zdGF0dXM9PT0iUkVKRUNURUQiJiZZayh0aGlzLHRoaXMsZCxlLGYpfSkpfWNhdGNoKGEpe3JldHVybiB0aGlzLnRoZW4odm9pZCAwLGEpfX07dmFyIHhsPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5qPWE7dGhpcy5vcHRpb25zPWI7dGhpcy50cmFuc2FjdGlvbkNvdW50PTA7dGhpcy52PU1hdGgucm91bmQoKDAsXy5lbCkoKSk7dGhpcy5vPSExfWFkZChhLGIsYyl7cmV0dXJuIF8uaWwodGhpcyxbYV0se21vZGU6InJlYWR3cml0ZSIsa2I6ITAsY29tbWl0OmRsKCl9LGQ9PmQub2JqZWN0U3RvcmUoYSkuYWRkKGIsYykpfWNsZWFyKGEpe3JldHVybiBfLmlsKHRoaXMsW2FdLHttb2RlOiJyZWFkd3JpdGUiLGtiOiEwfSxiPT5iLm9iamVjdFN0b3JlKGEpLmNsZWFyKCkpfWNsb3NlKCl7dGhpcy5qLmNsb3NlKCk7dGhpcy5vcHRpb25zPy5jbG9zZWQmJnRoaXMub3B0aW9ucy5jbG9zZWQoKX1jb3VudChhLGIpe3JldHVybiBfLmlsKHRoaXMsW2FdLHttb2RlOiJyZWFkb25seSIsa2I6ITAsY29tbWl0OmRsKCl9LGM9PmMub2JqZWN0U3RvcmUoYSkuY291bnQoYikpfWRlbGV0ZShhLGIpe3JldHVybiBfLmlsKHRoaXMsW2FdLHttb2RlOiJyZWFkd3JpdGUiLAprYjohMCxjb21taXQ6ZGwoKSYmIShiIGluc3RhbmNlb2YgSURCS2V5UmFuZ2UpfSxjPT5jLm9iamVjdFN0b3JlKGEpLmRlbGV0ZShiKSl9Z2V0KGEsYil7cmV0dXJuIF8uaWwodGhpcyxbYV0se21vZGU6InJlYWRvbmx5IixrYjohMCxjb21taXQ6ZGwoKX0sYz0+Yy5vYmplY3RTdG9yZShhKS5nZXQoYikpfWdldEFsbChhLGIsYyl7cmV0dXJuIF8uaWwodGhpcyxbYV0se21vZGU6InJlYWRvbmx5IixrYjohMH0sZD0+ZC5vYmplY3RTdG9yZShhKS5nZXRBbGwoYixjKSl9b2JqZWN0U3RvcmVOYW1lcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuai5vYmplY3RTdG9yZU5hbWVzKX1nZXROYW1lKCl7cmV0dXJuIHRoaXMuai5uYW1lfX0samw9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWF9YWRkKGEsYil7cmV0dXJuIGJsKHRoaXMuai5hZGQoYSxiKSl9YXV0b0luY3JlbWVudCgpe3JldHVybiB0aGlzLmouYXV0b0luY3JlbWVudH1jbGVhcigpe3JldHVybiBibCh0aGlzLmouY2xlYXIoKSkudGhlbigoKT0+Cnt9KX1jb3VudChhKXtyZXR1cm4gYmwodGhpcy5qLmNvdW50KGEpKX1kZWxldGUoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBJREJLZXlSYW5nZT9zbCh0aGlzLGEpOmJsKHRoaXMuai5kZWxldGUoYSkpfWdldChhKXtyZXR1cm4gYmwodGhpcy5qLmdldChhKSl9Z2V0QWxsKGEsYil7cmV0dXJuImdldEFsbCJpbiBJREJPYmplY3RTdG9yZS5wcm90b3R5cGU/YmwodGhpcy5qLmdldEFsbChhLGIpKTp0bCh0aGlzLGEsYil9aW5kZXgoYSl7dHJ5e3JldHVybiBuZXcgRnModGhpcy5qLmluZGV4KGEpKX1jYXRjaChiKXtpZihiIGluc3RhbmNlb2YgRXJyb3ImJmIubmFtZT09PSJOb3RGb3VuZEVycm9yIil0aHJvdyBuZXcgUGsoYSx0aGlzLmoubmFtZSk7dGhyb3cgYjt9fWdldE5hbWUoKXtyZXR1cm4gdGhpcy5qLm5hbWV9a2V5UGF0aCgpe3JldHVybiB0aGlzLmoua2V5UGF0aH19LGZsPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaj1hO3RoaXMubz1uZXcgTWFwO3RoaXMuYWJvcnRlZD0hMTsKdGhpcy5kb25lPW5ldyBQcm9taXNlKChiLGMpPT57dGhpcy5qLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIiwoKT0+e2IoKX0pO3RoaXMuai5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZD0+e2QuY3VycmVudFRhcmdldD09PWQudGFyZ2V0JiZjKHRoaXMuai5lcnJvcil9KTt0aGlzLmouYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLCgpPT57dmFyIGQ9dGhpcy5qLmVycm9yO2lmKGQpYyhkKTtlbHNlIGlmKCF0aGlzLmFib3J0ZWQpe2Q9Tms7dmFyIGU9dGhpcy5qLm9iamVjdFN0b3JlTmFtZXM7bGV0IGY9W107Zm9yKGxldCBoPTA7aDxlLmxlbmd0aDtoKyspe2xldCBrPWUuaXRlbShoKTtpZihrPT09bnVsbCl0aHJvdyBFcnJvcigibWEiKTtmLnB1c2goayl9ZD1uZXcgZCgiVU5LTk9XTl9BQk9SVCIse29iamVjdFN0b3JlTmFtZXM6Zi5qb2luKCksZGJOYW1lOnRoaXMuai5kYi5uYW1lLG1vZGU6dGhpcy5qLm1vZGV9KTtjKGQpfX0pfSl9YWJvcnQoKXt0aGlzLmouYWJvcnQoKTt0aGlzLmFib3J0ZWQ9CiEwO3Rocm93IG5ldyBOaygiRVhQTElDSVRfQUJPUlQiKTt9Y29tbWl0KCl7dGhpcy5hYm9ydGVkfHx0aGlzLmouY29tbWl0Py4oKX1vYmplY3RTdG9yZShhKXthPXRoaXMuai5vYmplY3RTdG9yZShhKTt2YXIgYj10aGlzLm8uZ2V0KGEpO2J8fChiPW5ldyBqbChhKSx0aGlzLm8uc2V0KGEsYikpO3JldHVybiBifX0sRnM9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWF9Y291bnQoYSl7cmV0dXJuIGJsKHRoaXMuai5jb3VudChhKSl9ZGVsZXRlKGEpe3JldHVybiB1bCh0aGlzLHtxdWVyeTphfSxiPT5iLmRlbGV0ZSgpLnRoZW4oKCk9PnJsKGIpKSl9Z2V0KGEpe3JldHVybiBibCh0aGlzLmouZ2V0KGEpKX1nZXRBbGwoYSxiKXtyZXR1cm4iZ2V0QWxsImluIElEQkluZGV4LnByb3RvdHlwZT9ibCh0aGlzLmouZ2V0QWxsKGEsYikpOnZsKHRoaXMsYSxiKX1rZXlQYXRoKCl7cmV0dXJuIHRoaXMuai5rZXlQYXRofXVuaXF1ZSgpe3JldHVybiB0aGlzLmoudW5pcXVlfX0sd2w9Y2xhc3N7Y29uc3RydWN0b3IoYSwKYil7dGhpcy5yZXF1ZXN0PWE7dGhpcy5jdXJzb3I9Yn1kZWxldGUoKXtyZXR1cm4gYmwodGhpcy5jdXJzb3IuZGVsZXRlKCkpLnRoZW4oKCk9Pnt9KX11cGRhdGUoYSl7cmV0dXJuIGJsKHRoaXMuY3Vyc29yLnVwZGF0ZShhKSl9fTt2YXIgR3M9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLm5hbWU9YTt0aGlzLm9wdGlvbnM9Yjt0aGlzLnY9ITA7dGhpcy5EPXRoaXMuQj0wfW8oYSxiLGM9e30pe3JldHVybiB6bChhLGIsYyl9ZGVsZXRlKGE9e30pe3JldHVybiBfLkFsKHRoaXMubmFtZSxhKX1vcGVuKCl7aWYoIXRoaXMudil0aHJvdyBCbCh0aGlzKTtpZih0aGlzLmopcmV0dXJuIHRoaXMuajt2YXIgYSxiPSgpPT57dGhpcy5qPT09YSYmKHRoaXMuaj12b2lkIDApfSxjPXtibG9ja2luZzplPT57ZS5jbG9zZSgpfSxjbG9zZWQ6YixUQTpiLHVwZ3JhZGU6dGhpcy5vcHRpb25zLnVwZ3JhZGV9LGQ9YXN5bmMoKT0+e3ZhciBlPUVycm9yKCkuc3RhY2s/PyIiO3RyeXtsZXQgaz1hd2FpdCB0aGlzLm8odGhpcy5uYW1lLHRoaXMub3B0aW9ucy52ZXJzaW9uLGMpO3ZhciBmPWssaD10aGlzLm9wdGlvbnM7bGV0IGw9W107Zm9yKGxldCBtIG9mIE9iamVjdC5rZXlzKGguc2UpKXtsZXQge1BkOm4seks6cD1OdW1iZXIuTUFYX1ZBTFVFfT0KaC5zZVttXTshKGYuai52ZXJzaW9uPj1uKXx8Zi5qLnZlcnNpb24+PXB8fGYuai5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKG0pfHxsLnB1c2gobSl9aWYobC5sZW5ndGghPT0wKXtsZXQgbT1PYmplY3Qua2V5cyh0aGlzLm9wdGlvbnMuc2UpLG49ay5vYmplY3RTdG9yZU5hbWVzKCk7aWYodGhpcy5EPF8uc2ooInl0aWRiX3Jlb3Blbl9kYl9yZXRyaWVzIiwwKSlyZXR1cm4gdGhpcy5EKyssay5jbG9zZSgpLF8uSWsobmV3IE5rKCJEQl9SRU9QRU5FRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVMiLHtkYk5hbWU6dGhpcy5uYW1lLGV4cGVjdGVkT2JqZWN0U3RvcmVzOm0sZm91bmRPYmplY3RTdG9yZXM6bn0pKSxkKCk7aWYodGhpcy5CPF8uc2ooInl0aWRiX3JlbWFrZV9kYl9yZXRyaWVzIiwxKSlyZXR1cm4gdGhpcy5CKyssYXdhaXQgdGhpcy5kZWxldGUoKSxfLklrKG5ldyBOaygiREJfREVMRVRFRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVMiLHtkYk5hbWU6dGhpcy5uYW1lLGV4cGVjdGVkT2JqZWN0U3RvcmVzOm0sCmZvdW5kT2JqZWN0U3RvcmVzOm59KSksZCgpO3Rocm93IG5ldyBFcyhuLG0pO31yZXR1cm4ga31jYXRjaChrKXtpZihrIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uP2submFtZT09PSJWZXJzaW9uRXJyb3IiOiJET01FcnJvciJpbiBzZWxmJiZrIGluc3RhbmNlb2YgRE9NRXJyb3I/ay5uYW1lPT09IlZlcnNpb25FcnJvciI6ayBpbnN0YW5jZW9mIE9iamVjdCYmIm1lc3NhZ2UiaW4gayYmay5tZXNzYWdlPT09IkFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gb3BlbiBhIGRhdGFiYXNlIHVzaW5nIGEgbG93ZXIgdmVyc2lvbiB0aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uLiIpe2U9YXdhaXQgdGhpcy5vKHRoaXMubmFtZSx2b2lkIDAsey4uLmMsdXBncmFkZTp2b2lkIDB9KTtmPWUuai52ZXJzaW9uO2lmKHRoaXMub3B0aW9ucy52ZXJzaW9uIT09dm9pZCAwJiZmPnRoaXMub3B0aW9ucy52ZXJzaW9uKzEpdGhyb3cgZS5jbG9zZSgpLHRoaXMudj0hMSxCbCh0aGlzLGYpO3JldHVybiBlfWIoKTtrIGluc3RhbmNlb2YKRXJyb3ImJiFfLngoInl0aWRiX2FzeW5jX3N0YWNrX2tpbGxzd2l0Y2giKSYmKGsuc3RhY2s9YCR7ay5zdGFja31cbiR7ZS5zdWJzdHJpbmcoZS5pbmRleE9mKCJcbiIpKzEpfWApO3Rocm93IFJrKGssdGhpcy5uYW1lLCIiLHRoaXMub3B0aW9ucy52ZXJzaW9uPz8tMSk7fX07cmV0dXJuIHRoaXMuaj1hPWQoKX19O3ZhciBEbD1uZXcgR3MoIll0SWRiTWV0YSIse3NlOntkYXRhYmFzZXM6e1BkOjF9fSx1cGdyYWRlKGEsYil7YigxKSYmXy5rbChhLCJkYXRhYmFzZXMiLHtrZXlQYXRoOiJhY3R1YWxOYW1lIn0pfX0pO3ZhciBNbCxLbD1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt9fShuZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt9fSk7bmV3IF8uY3M7dmFyIFlsPWNsYXNzIGV4dGVuZHMgR3N7Y29uc3RydWN0b3IoYSxiKXtzdXBlcihhLGIpO3RoaXMub3B0aW9ucz1iO0trKGEpfW8oYSxiLGM9e30pe3JldHVybih0aGlzLm9wdGlvbnMuc2hhcmVkP1RsOlNsKShhLGIsey4uLmN9KX1kZWxldGUoYT17fSl7cmV0dXJuKHRoaXMub3B0aW9ucy5zaGFyZWQ/WGw6VWwpKHRoaXMubmFtZSxhKX19O3ZhciBhbT1fLiRsKCJ5dEdjZkNvbmZpZyIse3NlOntjb2xkQ29uZmlnU3RvcmU6e1BkOjF9LGhvdENvbmZpZ1N0b3JlOntQZDoxfX0sc2hhcmVkOiExLHVwZ3JhZGUoYSxiKXtiKDEpJiYoXy5vbChfLmtsKGEsImhvdENvbmZpZ1N0b3JlIix7a2V5UGF0aDoia2V5IixhdXRvSW5jcmVtZW50OiEwfSksImhvdFRpbWVzdGFtcEluZGV4IiwidGltZXN0YW1wIiksXy5vbChfLmtsKGEsImNvbGRDb25maWdTdG9yZSIse2tleVBhdGg6ImtleSIsYXV0b0luY3JlbWVudDohMH0pLCJjb2xkVGltZXN0YW1wSW5kZXgiLCJ0aW1lc3RhbXAiKSl9LHZlcnNpb246MX0pO3ZhciBIcz1jbGFzcyBleHRlbmRzIF8uYWV7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RoaXMubz1bXTt0aGlzLmo9W107dmFyIGE9Xy5zYSgieXQuZ2NmLmNvbmZpZy5ob3RVcGRhdGVDYWxsYmFja3MiKTthPyh0aGlzLm89Wy4uLmFdLHRoaXMuaj1hKToodGhpcy5qPVtdLF8ucmEoInl0LmdjZi5jb25maWcuaG90VXBkYXRlQ2FsbGJhY2tzIix0aGlzLmopKX1sYSgpe2ZvcihsZXQgYiBvZiB0aGlzLm8pe3ZhciBhPXRoaXMuajtsZXQgYz1hLmluZGV4T2YoYik7Yz49MCYmYS5zcGxpY2UoYywxKX10aGlzLm8ubGVuZ3RoPTA7c3VwZXIubGEoKX19O3ZhciBpbT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaj0wO3RoaXMubz1uZXcgSHN9d2ooKXtyZXR1cm4gXy5zYSgieXQuZ2NmLmNvbmZpZy5ob3RDb25maWdHcm91cCIpPz9fLncoIlJBV19IT1RfQ09ORklHX0dST1VQIil9QihhKXt0aGlzLmhvdEhhc2hEYXRhPWE7Xy5yYSgieXQuZ2NmLmNvbmZpZy5ob3RIYXNoRGF0YSIsdGhpcy5ob3RIYXNoRGF0YXx8bnVsbCl9fTt2YXIgSXM7SXM9dHlwZW9mIFRleHRFbmNvZGVyIT09InVuZGVmaW5lZCI/bmV3IFRleHRFbmNvZGVyOm51bGw7Xy55bT1Jcz9hPT5Jcy5lbmNvZGUoYSk6YT0+e2E9Xy5hYyhhKTt2YXIgYj1uZXcgVWludDhBcnJheShhLmxlbmd0aCk7Zm9yKGxldCBjPTA7YzxiLmxlbmd0aDtjKyspYltjXT1hW2NdO3JldHVybiBifTtfLnBtLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm57dmVyc2lvbjp0aGlzLnZlcnNpb24sYXJnczp0aGlzLmFyZ3N9fTtfLnFtLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvcGljfTt2YXIgSnM9Xy5zYSgieXRQdWJzdWIyUHVic3ViMkluc3RhbmNlIil8fG5ldyBfLnRoO18udGgucHJvdG90eXBlLnN1YnNjcmliZT1fLnRoLnByb3RvdHlwZS5zdWJzY3JpYmU7Xy50aC5wcm90b3R5cGUudW5zdWJzY3JpYmVCeUtleT1fLnRoLnByb3RvdHlwZS5jaTtfLnRoLnByb3RvdHlwZS5wdWJsaXNoPV8udGgucHJvdG90eXBlLnB1Ymxpc2g7Xy50aC5wcm90b3R5cGUuY2xlYXI9Xy50aC5wcm90b3R5cGUuY2xlYXI7Xy5yYSgieXRQdWJzdWIyUHVic3ViMkluc3RhbmNlIixKcyk7Xy5Lcz1fLnNhKCJ5dFB1YnN1YjJQdWJzdWIyU3Vic2NyaWJlZEtleXMiKXx8e307Xy5yYSgieXRQdWJzdWIyUHVic3ViMlN1YnNjcmliZWRLZXlzIixfLktzKTtfLkxzPV8uc2EoInl0UHVic3ViMlB1YnN1YjJUb3BpY1RvS2V5cyIpfHx7fTtfLnJhKCJ5dFB1YnN1YjJQdWJzdWIyVG9waWNUb0tleXMiLF8uTHMpO18uTXM9Xy5zYSgieXRQdWJzdWIyUHVic3ViMklzQXN5bmMiKXx8e307Cl8ucmEoInl0UHVic3ViMlB1YnN1YjJJc0FzeW5jIixfLk1zKTtfLnJhKCJ5dFB1YnN1YjJQdWJzdWIyU2tpcFN1YktleSIsbnVsbCk7dmFyIHptO18ud209Xy5zaigibWF4X2JvZHlfc2l6ZV90b19jb21wcmVzcyIsNUU1KTtfLnhtPV8uc2ooIm1pbl9ib2R5X3NpemVfdG9fY29tcHJlc3MiLDUwMCk7em09MDt2YXIgTnM9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy54aT10aGlzLk9jPSExO3RoaXMucG90ZW50aWFsRXNmRXJyb3JDb3VudGVyPXRoaXMuaj0wO3RoaXMuaGFuZGxlRXJyb3I9KCk9Pnt9O3RoaXMuVGY9KCk9Pnt9O3RoaXMubm93PURhdGUubm93O3RoaXMuYWg9ITE7dGhpcy5ncz1hLmdzPz8xMDA7dGhpcy5Ncj1hLk1yPz8xO3RoaXMuS3I9YS5Lcj8/MjU5MkU2O3RoaXMuQ3I9YS5Dcj8/MTJFNDt0aGlzLkxyPWEuTHI/PzVFMzt0aGlzLkphPWEuSmE/P3ZvaWQgMDt0aGlzLk9pPSEhYS5PaTt0aGlzLkRpPWEuRGk/Py4xO3RoaXMuS2o9YS5Laj8/MTA7YS5oYW5kbGVFcnJvciYmKHRoaXMuaGFuZGxlRXJyb3I9YS5oYW5kbGVFcnJvcik7YS5UZiYmKHRoaXMuVGY9YS5UZik7YS5haCYmKHRoaXMuYWg9YS5haCk7YS54aSYmKHRoaXMueGk9YS54aSk7dGhpcy5LYT1hLkthO3RoaXMuRGM9YS5EYzt0aGlzLmNiPWEuY2I7dGhpcy5TYT1hLlNhO3RoaXMuR2Q9YS5HZDt0aGlzLkttPWEuS207CnRoaXMuRm09YS5GbTtCbSh0aGlzKSYmKCF0aGlzLkthfHx0aGlzLkthKCJuZXR3b3JrbGVzc19sb2dnaW5nIikpJiZEbSh0aGlzKX13cml0ZVRoZW5TZW5kKGEsYj17fSl7aWYoQm0odGhpcykmJnRoaXMuT2Mpe2xldCBjPXt1cmw6YSxvcHRpb25zOmIsdGltZXN0YW1wOnRoaXMubm93KCksc3RhdHVzOiJORVciLHNlbmRDb3VudDowfTt0aGlzLmNiLnNldChjLHRoaXMuSmEpLnRoZW4oZD0+e2MuaWQ9ZDt0aGlzLlNhLlNiKCkmJkdtKHRoaXMsYyl9KS5jYXRjaChkPT57R20odGhpcyxjKTtIbSh0aGlzLGQpfSl9ZWxzZSB0aGlzLkdkKGEsYil9c2VuZFRoZW5Xcml0ZShhLGI9e30sYyl7aWYoQm0odGhpcykmJnRoaXMuT2Mpe2xldCBkPXt1cmw6YSxvcHRpb25zOmIsdGltZXN0YW1wOnRoaXMubm93KCksc3RhdHVzOiJORVciLHNlbmRDb3VudDowfTt0aGlzLkthJiZ0aGlzLkthKCJud2xfc2tpcF9yZXRyeSIpJiYoZC5za2lwUmV0cnk9Yyk7aWYodGhpcy5TYS5TYigpfHx0aGlzLkthJiYKdGhpcy5LYSgibndsX2FnZ3Jlc3NpdmVfc2VuZF90aGVuX3dyaXRlIikmJiFkLnNraXBSZXRyeSl7aWYoIWQuc2tpcFJldHJ5KXtsZXQgZT1iLm9uRXJyb3I/Yi5vbkVycm9yOigpPT57fTtiLm9uRXJyb3I9YXN5bmMoZixoKT0+e2F3YWl0IHRoaXMuY2Iuc2V0KGQsdGhpcy5KYSkuY2F0Y2goaz0+e0htKHRoaXMsayl9KTtlKGYsaCl9fXRoaXMuR2QoYSxiLGQuc2tpcFJldHJ5KX1lbHNlIHRoaXMuY2Iuc2V0KGQsdGhpcy5KYSkuY2F0Y2goZT0+e3RoaXMuR2QoYSxiLGQuc2tpcFJldHJ5KTtIbSh0aGlzLGUpfSl9ZWxzZSB0aGlzLkdkKGEsYix0aGlzLkthJiZ0aGlzLkthKCJud2xfc2tpcF9yZXRyeSIpJiZjKX1zZW5kQW5kV3JpdGUoYSxiPXt9KXtpZihCbSh0aGlzKSYmdGhpcy5PYyl7bGV0IGM9e3VybDphLG9wdGlvbnM6Yix0aW1lc3RhbXA6dGhpcy5ub3coKSxzdGF0dXM6Ik5FVyIsc2VuZENvdW50OjB9LGQ9ITEsZT1iLm9uU3VjY2Vzcz9iLm9uU3VjY2VzczooKT0+e307Yy5vcHRpb25zLm9uU3VjY2Vzcz0KKGYsaCk9PntjLmlkIT09dm9pZCAwP3RoaXMuY2IuRmYoYy5pZCx0aGlzLkphKTpkPSEwO3RoaXMuU2EuZWYmJnRoaXMuS2EmJnRoaXMuS2EoInZzc19uZXR3b3JrX2hpbnQiKSYmdGhpcy5TYS5lZighMCk7ZShmLGgpfTt0aGlzLkdkKGMudXJsLGMub3B0aW9ucyx2b2lkIDAsITApO3RoaXMuY2Iuc2V0KGMsdGhpcy5KYSkudGhlbihmPT57Yy5pZD1mO2QmJnRoaXMuY2IuRmYoYy5pZCx0aGlzLkphKX0pLmNhdGNoKGY9PntIbSh0aGlzLGYpfSl9ZWxzZSB0aGlzLkdkKGEsYix2b2lkIDAsITApfW8oKXtpZighQm0odGhpcykpdGhyb3cgRXJyb3IoInJhIik7dGhpcy5qfHwodGhpcy5qPXRoaXMuRGMucGIoYXN5bmMoKT0+e3ZhciBhPWF3YWl0IHRoaXMuY2IuV3AoIk5FVyIsdGhpcy5KYSk7YT8oYXdhaXQgR20odGhpcyxhKSx0aGlzLmomJih0aGlzLmo9MCx0aGlzLm8oKSkpOnRoaXMudigpfSx0aGlzLmdzKSl9digpe3RoaXMuRGMuQWEodGhpcy5qKTt0aGlzLmo9MH19O3ZhciBLbTt2YXIgVW89e2FjY291bnRTdGF0ZUNoYW5nZVNpZ25lZEluOjIzLGFjY291bnRTdGF0ZUNoYW5nZVNpZ25lZE91dDoyNCxkZWxheWVkRXZlbnRNZXRyaWNDYXB0dXJlZDoxMSxsYXRlbmN5QWN0aW9uQmFzZWxpbmVkOjYsbGF0ZW5jeUFjdGlvbkluZm86NyxsYXRlbmN5QWN0aW9uVGlja2VkOjUsb2ZmbGluZVRyYW5zZmVyU3RhdHVzQ2hhbmdlZDoyLG9mZmxpbmVJbWFnZURvd25sb2FkOjMzNSxwbGF5YmFja1N0YXJ0U3RhdGVDaGFuZ2VkOjksc3lzdGVtSGVhbHRoQ2FwdHVyZWQ6MyxtYW5nb09uYm9hcmRpbmdDb21wbGV0ZWQ6MTAsbWFuZ29QdXNoTm90aWZpY2F0aW9uUmVjZWl2ZWQ6MjMwLG1hbmdvVW5mb3JrRGJNaWdyYXRpb25FcnJvcjoxMjEsbWFuZ29VbmZvcmtEYk1pZ3JhdGlvblN1bW1hcnk6MTIyLG1hbmdvVW5mb3JrRGJNaWdyYXRpb25QcmV1bmZvcmtEYlZlcnNpb25OdW1iZXI6MTMzLG1hbmdvVW5mb3JrRGJNaWdyYXRpb25QaG9uZU1ldGFkYXRhOjEzNCxtYW5nb1VuZm9ya0RiTWlncmF0aW9uUGhvbmVTdG9yYWdlOjEzNSwKbWFuZ29VbmZvcmtEYk1pZ3JhdGlvblN0ZXA6MTQyLG1hbmdvQXN5bmNBcGlNaWdyYXRpb25FdmVudDoyMjMsbWFuZ29Eb3dubG9hZFZpZGVvUmVzdWx0OjIyNCxtYW5nb0hvbWVwYWdlVmlkZW9Db3VudDoyNzksbWFuZ29Ib21lVjNTdGF0ZToyOTUsbWFuZ29JbWFnZUNsaWVudENhY2hlSGl0RXZlbnQ6MjczLHNkQ2FyZFN0YXR1c0NoYW5nZWQ6OTgsZnJhbWVzRHJvcHBlZDoxMix0aHVtYm5haWxIb3ZlcmVkOjEzLGRldmljZVJldGVudGlvbkluZm9DYXB0dXJlZDoxNCx0aHVtYm5haWxMb2FkZWQ6MTUsYmFja1RvQXBwRXZlbnQ6MzE4LHN0cmVhbWluZ1N0YXRzQ2FwdHVyZWQ6MTcsb2ZmbGluZVZpZGVvU2hhcmVkOjE5LGFwcENyYXNoZWQ6MjAseW91VGhlcmU6MjEsb2ZmbGluZVN0YXRlU25hcHNob3Q6MjIsbWR4U2Vzc2lvblN0YXJ0ZWQ6MjUsbWR4U2Vzc2lvbkNvbm5lY3RlZDoyNixtZHhTZXNzaW9uRGlzY29ubmVjdGVkOjI3LGJlZHJvY2tSZXNvdXJjZUNvbnN1bXB0aW9uU25hcHNob3Q6MjgsCm5leHRHZW5XYXRjaFdhdGNoU3dpcGVkOjI5LGtpZHNBY2NvdW50c1NuYXBzaG90OjMwLHplcm9TdGVwQ2hhbm5lbENyZWF0ZWQ6MzEsdHZodG1sNVNlYXJjaENvbXBsZXRlZDozMixvZmZsaW5lU2hhcmVQYWlyaW5nOjM0LG9mZmxpbmVTaGFyZVVubG9jazozNSxtZHhSb3V0ZURpc3RyaWJ1dGlvblNuYXBzaG90OjM2LGJlZHJvY2tSZXBldGl0aXZlQWN0aW9uVGltZWQ6MzcsdW5wbHVnZ2VkRGVncmFkYXRpb25JbmZvOjIyOSx1cGxvYWRNcDRIZWFkZXJNb3ZlZDozOCx1cGxvYWRWaWRlb1RyYW5zY29kZWQ6MzksdXBsb2FkUHJvY2Vzc29yU3RhcnRlZDo0Nix1cGxvYWRQcm9jZXNzb3JFbmRlZDo0Nyx1cGxvYWRQcm9jZXNzb3JSZWFkeTo5NCx1cGxvYWRQcm9jZXNzb3JSZXF1aXJlbWVudFBlbmRpbmc6OTUsdXBsb2FkUHJvY2Vzc29ySW50ZXJydXB0ZWQ6OTYsdXBsb2FkRnJvbnRlbmRFdmVudDoyNDEsYXNzZXRQYWNrRG93bmxvYWRTdGFydGVkOjQxLGFzc2V0UGFja0Rvd25sb2FkZWQ6NDIsCmFzc2V0UGFja0FwcGxpZWQ6NDMsYXNzZXRQYWNrRGVsZXRlZDo0NCxhcHBJbnN0YWxsQXR0cmlidXRpb25FdmVudDo0NTkscGxheWJhY2tTZXNzaW9uU3RvcHBlZDo0NSxhZEJsb2NrZXJNZXNzYWdpbmdTaG93bjo0OCxkaXN0cmlidXRpb25DaGFubmVsQ2FwdHVyZWQ6NDksZGF0YVBsYW5DcGlkUmVxdWVzdGVkOjUxLGRldGFpbGVkTmV0d29ya1R5cGVDYXB0dXJlZDo1MixzZW5kU3RhdGVVcGRhdGVkOjUzLHJlY2VpdmVTdGF0ZVVwZGF0ZWQ6NTQsc2VuZERlYnVnU3RhdGVVcGRhdGVkOjU1LHJlY2VpdmVEZWJ1Z1N0YXRlVXBkYXRlZDo1NixraWRzRXJyb3JlZDo1NyxtZHhNc25TZXNzaW9uU3RhdHNGaW5pc2hlZDo1OCxhcHBTZXR0aW5nc0NhcHR1cmVkOjU5LG1keFdlYlNvY2tldFNlcnZlckh0dHBFcnJvcjo2MCxtZHhXZWJTb2NrZXRTZXJ2ZXI6NjEsc3RhcnR1cENyYXNoZXNEZXRlY3RlZDo2Mixjb2xkU3RhcnRJbmZvOjQzNSxvZmZsaW5lUGxheWJhY2tTdGFydGVkOjYzLGxpdmVDaGF0TWVzc2FnZVNlbnQ6MjI1LApsaXZlQ2hhdFVzZXJQcmVzZW50OjQzNCxsaXZlQ2hhdEJlaW5nTW9kZXJhdGVkOjQ1NyxsaXZlQ2hhdEdpZnRCdXR0b25JbXByZXNzZWQ6NTU4LGxpdmVDcmVhdGlvbkNhbWVyYVVwZGF0ZWQ6NjQsbGl2ZUNyZWF0aW9uRW5jb2RpbmdDYXB0dXJlZDo2NSxsaXZlQ3JlYXRpb25FcnJvcjo2NixsaXZlQ3JlYXRpb25IZWFsdGhVcGRhdGVkOjY3LGxpdmVDcmVhdGlvblZpZGVvRWZmZWN0c0NhcHR1cmVkOjY4LGxpdmVDcmVhdGlvblN0YWdlT2NjdXJlZDo3NSxvZmZsaW5lU3lzdGVtRmFpbHVyZTo1NDYsbGl2ZUNyZWF0aW9uQnJvYWRjYXN0U2NoZWR1bGVkOjEyMyxsaXZlQ3JlYXRpb25BcmNoaXZlUmVwbGFjZW1lbnQ6MTQ5LGxpdmVDcmVhdGlvbkNvc3RyZWFtaW5nQ29ubmVjdGlvbjo0MjEsbGl2ZUNyZWF0aW9uUGxheWFibGVzTWV0cmljczo1MzMsbGl2ZUNyZWF0aW9uU3RyZWFtV2VicnRjU3RhdHM6Mjg4LGxpdmVDcmVhdGlvbldlYnJ0Y0Vycm9yOjUyNixtZHhTZXNzaW9uUmVjb3ZlcnlTdGFydGVkOjY5LAptZHhTZXNzaW9uUmVjb3ZlcnlDb21wbGV0ZWQ6NzAsbWR4U2Vzc2lvblJlY292ZXJ5U3RvcHBlZDo3MSx2aXN1YWxFbGVtZW50U2hvd246NzIsdmlzdWFsRWxlbWVudEhpZGRlbjo3Myx2aXN1YWxFbGVtZW50R2VzdHVyZWQ6NzgsdmlzdWFsRWxlbWVudFN0YXRlQ2hhbmdlZDoyMDgsc2NyZWVuQ3JlYXRlZDoxNTYscGxheWJhY2tBc3NvY2lhdGVkOjIwMix2aXN1YWxFbGVtZW50QXR0YWNoZWQ6MjE1LHBsYXliYWNrQ29udGV4dEV2ZW50OjIxNCxjbG91ZENhc3RpbmdQbGF5YmFja1N0YXJ0ZWQ6NzQsd2ViUGxheWVyQXBpQ2FsbGVkOjc2LHR2aHRtbDVBY2NvdW50RGlhbG9nT3BlbmVkOjc5LGZvcmVncm91bmRIZWFydGJlYXQ6ODAsZm9yZWdyb3VuZEhlYXJ0YmVhdFNjcmVlbkFzc29jaWF0ZWQ6MTExLGtpZHNPZmZsaW5lU25hcHNob3Q6ODEsbWR4RW5jcnlwdGlvblNlc3Npb25TdGF0c0ZpbmlzaGVkOjgyLHBsYXllclJlcXVlc3RDb21wbGV0ZWQ6ODMsbGl0ZVNjaGVkdWxlclN0YXRpc3RpY3M6ODQsCm1keFNpZ25Jbjo4NSxzcGFjZWNhc3RNZXRhZGF0YUxvb2t1cFJlcXVlc3RlZDo4NixzcGFjZWNhc3RCYXRjaExvb2t1cFJlcXVlc3RlZDo4NyxzcGFjZWNhc3RTdW1tYXJ5UmVxdWVzdGVkOjg4LHNwYWNlY2FzdFBsYXliYWNrOjg5LHNwYWNlY2FzdERpc2NvdmVyeTo5MCx0dmh0bWw1TGF1bmNoVXJsQ29tcG9uZW50Q2hhbmdlZDo5MSxtZHhCYWNrZ3JvdW5kUGxheWJhY2tSZXF1ZXN0Q29tcGxldGVkOjkyLG1keEJyb2tlbkFkZGl0aW9uYWxEYXRhRGV2aWNlRGV0ZWN0ZWQ6OTMsdHZodG1sNUxvY2FsU3RvcmFnZTo5Nyx0dmh0bWw1RGV2aWNlU3RvcmFnZVN0YXR1czoxNDcsYXV0b0NhcHRpb25zQXZhaWxhYmxlOjk5LHBsYXliYWNrU2NydWJiaW5nRXZlbnQ6MzM5LGZsZXh5U3RhdGU6MTAwLGludGVyZmFjZU9yaWVudGF0aW9uQ2FwdHVyZWQ6MTAxLG1haW5BcHBCcm93c2VGcmFnbWVudENhY2hlOjEwMixvZmZsaW5lQ2FjaGVWZXJpZmljYXRpb25GYWlsdXJlOjEwMyxvZmZsaW5lUGxheWJhY2tFeGNlcHRpb25EaWdlc3Q6MjE3LAp2ckNvcHJlc2VuY2VTdGF0czoxMDQsdnJDb3ByZXNlbmNlU3luY1N0YXRzOjEzMCx2ckNvcHJlc2VuY2VDb21tc1N0YXRzOjEzNyx2ckNvcHJlc2VuY2VQYXJ0eVN0YXRzOjE1Myx2ckNvcHJlc2VuY2VFbW9qaVN0YXRzOjIxMyx2ckNvcHJlc2VuY2VFdmVudDoxNDEsdnJDb3ByZXNlbmNlRmxvd1RyYW5zaXRFdmVudDoxNjAsdnJDb3dhdGNoUGFydHlFdmVudDo0OTIsdnJDb3dhdGNoVXNlclN0YXJ0T3JKb2luRXZlbnQ6NTA0LHZyUGxheWJhY2tFdmVudDozNDUsa2lkc0FnZUdhdGVUcmFja2luZzoxMDUsb2ZmbGluZURlbGF5QWxsb3dlZFRyYWNraW5nOjEwNixtYWluQXBwQXV0b09mZmxpbmVTdGF0ZToxMDcsdmlkZW9Bc1RodW1ibmFpbERvd25sb2FkOjEwOCx2aWRlb0FzVGh1bWJuYWlsUGxheWJhY2s6MTA5LGxpdGVTaG93TW9yZToxMTAscmVuZGVyaW5nRXJyb3I6MTE4LGtpZHNQcm9maWxlUGluR2F0ZVRyYWNraW5nOjExOSxhYnJUcmFqZWN0b3J5OjEyNCxzY3JvbGxFdmVudDoxMjUsCnN0cmVhbXpJbmNyZW1lbnRlZDoxMjYsa2lkc1Byb2ZpbGVTd2l0Y2hlclRyYWNraW5nOjEyNyxraWRzUHJvZmlsZUNyZWF0aW9uVHJhY2tpbmc6MTI5LGJ1eUZsb3dTdGFydGVkOjEzNixpbnRlZ3JhdGlvbkF0dHJpYnV0aW9uRXZlbnQ6NTU2LG1ic0Nvbm5lY3Rpb25Jbml0aWF0ZWQ6MTM4LG1ic1BsYXliYWNrSW5pdGlhdGVkOjEzOSxtYnNMb2FkQ2hpbGRyZW46MTQwLGxpdGVQcm9maWxlRmV0Y2hlcjoxNDQsbWR4UmVtb3RlVHJhbnNhY3Rpb246MTQ2LHJlZWxQbGF5YmFja0Vycm9yOjE0OCxyZWFjaGFiaWxpdHlEZXRlY3Rpb25FdmVudDoxNTAsbW9iaWxlUGxheWJhY2tFdmVudDoxNTEsY291cnRzaWRlUGxheWVyU3RhdGVDaGFuZ2VkOjE1MixtdXNpY1BlcnNpc3RlbnRDYWNoZUNoZWNrZWQ6MTU0LG11c2ljUGVyc2lzdGVudENhY2hlQ2xlYXJlZDoxNTUscGxheWJhY2tJbnRlcnJ1cHRlZDoxNTcscGxheWJhY2tJbnRlcnJ1cHRpb25SZXNvbHZlZDoxNTgsZml4Rm9wRmxvdzoxNTksCmFuckRldGVjdGlvbjoxNjEsYmFja3N0YWdlUG9zdENyZWF0aW9uRmxvd0VuZGVkOjE2MixjbGllbnRFcnJvcjoxNjMsZ2FtaW5nQWNjb3VudExpbmtTdGF0dXNDaGFuZ2VkOjE2NCxsaXRlSG91c2V3YXJtaW5nOjE2NSxidXlGbG93RXZlbnQ6MTY3LGtpZHNQYXJlbnRhbEdhdGVUcmFja2luZzoxNjgsa2lkc1NpZ25lZE91dFNldHRpbmdzU3RhdHVzOjQzNyxraWRzU2lnbmVkT3V0UGF1c2VIaXN0b3J5Rml4U3RhdHVzOjQzOCx0dmh0bWw1V2F0Y2hkb2dWaW9sYXRpb246NDQ0LHlwY1VwZ3JhZGVGbG93OjE2OSx5b25nbGVTdHVkeToxNzAseXBjVXBkYXRlRmxvd1N0YXJ0ZWQ6MTcxLHlwY1VwZGF0ZUZsb3dDYW5jZWxsZWQ6MTcyLHlwY1VwZGF0ZUZsb3dTdWNjZWVkZWQ6MTczLHlwY1VwZGF0ZUZsb3dGYWlsZWQ6MTc0LGxpdGVHcm93dGhraXRQcm9tbzoxNzUscGF5bWVudEZsb3dTdGFydGVkOjM0MSx0cmFuc2FjdGlvbkZsb3dTaG93UGF5bWVudERpYWxvZzo0MDUsdHJhbnNhY3Rpb25GbG93U3RhcnRlZDoxNzYsCnRyYW5zYWN0aW9uRmxvd1NlY29uZGFyeURldmljZVN0YXJ0ZWQ6MjIyLHRyYW5zYWN0aW9uRmxvd1NlY29uZGFyeURldmljZVNpZ25lZE91dFN0YXJ0ZWQ6MzgzLHRyYW5zYWN0aW9uRmxvd0NhbmNlbGxlZDoxNzcsdHJhbnNhY3Rpb25GbG93UGF5bWVudENhbGxCYWNrUmVjZWl2ZWQ6Mzg3LHRyYW5zYWN0aW9uRmxvd1BheW1lbnRTdWJtaXR0ZWQ6NDYwLHRyYW5zYWN0aW9uRmxvd1BheW1lbnRTdWNjZWVkZWQ6MzI5LHRyYW5zYWN0aW9uRmxvd1N1Y2NlZWRlZDoxNzgsdHJhbnNhY3Rpb25GbG93RmFpbGVkOjE3OSx0cmFuc2FjdGlvbkZsb3dQbGF5QmlsbGluZ0Nvbm5lY3Rpb25TdGFydEV2ZW50OjQyOCx0cmFuc2FjdGlvbkZsb3dTZWNvbmRhcnlEZXZpY2VTdWNjZXNzOjQ1OCx0cmFuc2FjdGlvbkZsb3dFcnJvckV2ZW50OjQxMSxsaXRlVmlkZW9RdWFsaXR5Q2hhbmdlZDoxODAsd2F0Y2hCcmVha0VuYWJsZW1lbnRTZXR0aW5nRXZlbnQ6MTgxLHdhdGNoQnJlYWtGcmVxdWVuY3lTZXR0aW5nRXZlbnQ6MTgyLAp2aWRlb0VmZmVjdHNDYW1lcmFQZXJmb3JtYW5jZU1ldHJpY3M6MTgzLGFkTm90aWZ5OjE4NCxzdGFydHVwVGVsZW1ldHJ5OjE4NSxwbGF5YmFja09mZmxpbmVGYWxsYmFja1VzZWQ6MTg2LG91dE9mTWVtb3J5OjE4Nyx5cGNQYXVzZUZsb3dTdGFydGVkOjE4OCx5cGNQYXVzZUZsb3dDYW5jZWxsZWQ6MTg5LHlwY1BhdXNlRmxvd1N1Y2NlZWRlZDoxOTAseXBjUGF1c2VGbG93RmFpbGVkOjE5MSx1cGxvYWRGaWxlU2VsZWN0ZWQ6MTkyLHlwY1Jlc3VtZUZsb3dTdGFydGVkOjE5Myx5cGNSZXN1bWVGbG93Q2FuY2VsbGVkOjE5NCx5cGNSZXN1bWVGbG93U3VjY2VlZGVkOjE5NSx5cGNSZXN1bWVGbG93RmFpbGVkOjE5NixhZHNDbGllbnRTdGF0ZUNoYW5nZToxOTcseXBjQ2FuY2VsRmxvd1N0YXJ0ZWQ6MTk4LHlwY0NhbmNlbEZsb3dDYW5jZWxsZWQ6MTk5LHlwY0NhbmNlbEZsb3dTdWNjZWVkZWQ6MjAwLHlwY0NhbmNlbEZsb3dGYWlsZWQ6MjAxLHlwY0NhbmNlbEZsb3dHb1RvUGF5bWVudFByb2Nlc3Nvcjo0MDIsCnlwY0RlYWN0aXZhdGVGbG93U3RhcnRlZDozMjAseXBjUmVkZWVtRmxvd1N0YXJ0ZWQ6MjAzLHlwY1JlZGVlbUZsb3dDYW5jZWxsZWQ6MjA0LHlwY1JlZGVlbUZsb3dTdWNjZWVkZWQ6MjA1LHlwY1JlZGVlbUZsb3dGYWlsZWQ6MjA2LHlwY0ZhbWlseUNyZWF0ZUZsb3dTdGFydGVkOjI1OCx5cGNGYW1pbHlDcmVhdGVGbG93Q2FuY2VsbGVkOjI1OSx5cGNGYW1pbHlDcmVhdGVGbG93U3VjY2VlZGVkOjI2MCx5cGNGYW1pbHlDcmVhdGVGbG93RmFpbGVkOjI2MSx5cGNGYW1pbHlNYW5hZ2VGbG93U3RhcnRlZDoyNjIseXBjRmFtaWx5TWFuYWdlRmxvd0NhbmNlbGxlZDoyNjMseXBjRmFtaWx5TWFuYWdlRmxvd1N1Y2NlZWRlZDoyNjQseXBjRmFtaWx5TWFuYWdlRmxvd0ZhaWxlZDoyNjUscmVzdG9yZUNvbnRleHRFdmVudDoyMDcsZW1iZWRzQWRFdmVudDozMjcsYXV0b3BsYXlUcmlnZ2VyZWQ6MjA5LGNsaWVudERhdGFFcnJvckV2ZW50OjIxMCxleHBlcmltZW50YWxWc3NWYWxpZGF0aW9uOjIxMSwKdHZodG1sNVRyaWdnZXJlZEV2ZW50OjIxMix0dmh0bWw1RnJhbWV3b3Jrc0ZpZWxkVHJpYWxSZXN1bHQ6MjE2LHR2aHRtbDVGcmFtZXdvcmtzRmllbGRUcmlhbFN0YXJ0OjIyMCxtdXNpY09mZmxpbmVQcmVmZXJlbmNlczoyMTgsd2F0Y2hUaW1lU2VnbWVudDoyMTksYXBwV2lkdGhMYXlvdXRFcnJvcjoyMjEsYWNjb3VudFJlZ2lzdHJ5Q2hhbmdlOjIyNix1c2VyTWVudGlvbkF1dG9Db21wbGV0ZUJveEV2ZW50OjIyNyxkb3dubG9hZFJlY29tbWVuZGF0aW9uRW5hYmxlbWVudFNldHRpbmdFdmVudDoyMjgsbXVzaWNQbGF5YmFja0NvbnRlbnRNb2RlQ2hhbmdlRXZlbnQ6MjMxLG9mZmxpbmVEYk9wZW5Db21wbGV0ZWQ6MjMyLGtpZHNGbG93RXZlbnQ6MjMzLGtpZHNGbG93Q29ycHVzU2VsZWN0ZWRFdmVudDoyMzQsdmlkZW9FZmZlY3RzRXZlbnQ6MjM1LHVucGx1Z2dlZE9wc0VvZ0FuYWx5dGljc0V2ZW50OjIzNixwbGF5YmFja0F1ZGlvUm91dGVFdmVudDoyMzcsaW50ZXJhY3Rpb25Mb2dnaW5nRGVidWdNb2RlRXJyb3I6MjM4LApvZmZsaW5lWXRiUmVmcmVzaGVkOjIzOSxraWRzRmxvd0Vycm9yOjI0MCxtdXNpY0F1dG9wbGF5T25MYXVuY2hBdHRlbXB0ZWQ6MjQyLGRldmljZUNvbnRleHRBY3Rpdml0eUV2ZW50OjI0MyxkZXZpY2VDb250ZXh0RXZlbnQ6MjQ0LHRlbXBsYXRlUmVzb2x1dGlvbkV4Y2VwdGlvbjoyNDUsbXVzaWNTaWRlbG9hZGVkUGxheWxpc3RTZXJ2aWNlQ2FsbGVkOjI0NixlbWJlZHNTdG9yYWdlQWNjZXNzTm90Q2hlY2tlZDoyNDcsZW1iZWRzSGFzU3RvcmFnZUFjY2Vzc1Jlc3VsdDoyNDgsZW1iZWRzSXRwUGxheWVkT25SZWxvYWQ6MjQ5LGVtYmVkc1JlcXVlc3RTdG9yYWdlQWNjZXNzUmVzdWx0OjI1MCxlbWJlZHNTaG91bGRSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3VsdDoyNTEsZW1iZWRzUmVxdWVzdFN0b3JhZ2VBY2Nlc3NTdGF0ZToyNTYsZW1iZWRzUmVxdWVzdFN0b3JhZ2VBY2Nlc3NGYWlsZWRTdGF0ZToyNTcsZW1iZWRzSXRwV2F0Y2hMYXRlclJlc3VsdDoyNjYsc2VhcmNoU3VnZ2VzdERlY29kaW5nUGF5bG9hZEZhaWx1cmU6MjUyLApzaXJpU2hvcnRjdXRBY3RpdmF0ZWQ6MjUzLHR2aHRtbDVLZXlib2FyZFBlcmZvcm1hbmNlOjI1NCxsYXRlbmN5QWN0aW9uU3BhbjoyNTUsZWxlbWVudHNMb2c6MjY3LHl0YkZpbGVPcGVuZWQ6MjY4LHRmbGl0ZU1vZGVsRXJyb3I6MjY5LGFwaVRlc3Q6MjcwLHlvbmdsZVVzYlNldHVwOjI3MSx0b3VTdHJpa2VJbnRlcnN0aXRpYWxFdmVudDoyNzIsbGl0ZVN0cmVhbVRvU2F2ZToyNzQsYXBwQnVuZGxlQ2xpZW50RXZlbnQ6Mjc1LHl0YkZpbGVDcmVhdGlvbkZhaWxlZDoyNzYsYWROb3RpZnlGYWlsdXJlOjI3OCx5dGJUcmFuc2ZlckZhaWxlZDoyODAsYmxvY2tpbmdSZXF1ZXN0RmFpbGVkOjI4MSxsaXRlQWNjb3VudFNlbGVjdG9yOjI4MixsaXRlQWNjb3VudFVpQ2FsbGJhY2tzOjI4MyxkdW1teVBheWxvYWQ6Mjg0LGJyb3dzZVJlc3BvbnNlVmFsaWRhdGlvbkV2ZW50OjI4NSxlbnRpdGllc0Vycm9yOjI4NixtdXNpY0lvc0JhY2tncm91bmRGZXRjaDoyODcsbWR4Tm90aWZpY2F0aW9uRXZlbnQ6Mjg5LApsYXllcnNWYWxpZGF0aW9uRXJyb3I6MjkwLG11c2ljUHdhSW5zdGFsbGVkOjI5MSxsaXRlQWNjb3VudENsZWFudXA6MjkyLGh0bWw1UGxheWVySGVhbHRoRXZlbnQ6MjkzLHdhdGNoUmVzdG9yZUF0dGVtcHQ6Mjk0LGxpdGVBY2NvdW50U2lnbkluOjI5Nixub3RhaXJlRXZlbnQ6Mjk4LGtpZHNWb2ljZVNlYXJjaEV2ZW50OjI5OSxhZE5vdGlmeUZpbGxlZDozMDAsZGVsYXllZEV2ZW50RHJvcHBlZDozMDEsYW5hbHl0aWNzU2VhcmNoRXZlbnQ6MzAyLHN5c3RlbURhcmtUaGVtZU9wdE91dEV2ZW50OjMwMyxmbG93RXZlbnQ6MzA0LG5ldHdvcmtDb25uZWN0aXZpdHlCYXNlbGluZUV2ZW50OjMwNSx5dGJGaWxlSW1wb3J0ZWQ6MzA2LGRvd25sb2FkU3RyZWFtVXJsRXhwaXJlZDozMDcsZGlyZWN0U2lnbkluRXZlbnQ6MzA4LGx5cmljSW1wcmVzc2lvbkV2ZW50OjMwOSxhY2Nlc3NpYmlsaXR5U3RhdGVFdmVudDozMTAsdG9rZW5SZWZyZXNoRXZlbnQ6MzExLGdlbmVyaWNBdHRlc3RhdGlvbkV4ZWN1dGlvbjozMTIsCnR2aHRtbDVWaWRlb1NlZWs6MzEzLHVucGx1Z2dlZEF1dG9QYXVzZTozMTQsc2NydWJiaW5nRXZlbnQ6MzE1LGJlZHRpbWVSZW1pbmRlckV2ZW50OjMxNyx0dmh0bWw1VW5leHBlY3RlZFJlc3RhcnQ6MzE5LHR2aHRtbDVEZXZpY2VTdG9yYWdlU3RhdHM6NTM1LHR2aHRtbDVTdGFiaWxpdHlUcmFjZUV2ZW50OjQ3OCx0dmh0bWw1T3BlcmF0aW9uSGVhbHRoOjQ2Nyx0dmh0bWw1V2F0Y2hLZXlFdmVudDozMjEsdm9pY2VMYW5ndWFnZUNoYW5nZWQ6MzIyLHR2aHRtbDVMaXZlQ2hhdFN0YXR1czozMjMscGFyZW50VG9vbHNDb3JwdXNTZWxlY3RlZEV2ZW50OjMyNCxvZmZlckFkc0Vucm9sbG1lbnRJbml0aWF0ZWQ6MzI1LG5ldHdvcmtRdWFsaXR5SW50ZXJ2YWxFdmVudDozMjYsZGV2aWNlU3RhcnR1cE1ldHJpY3M6MzI4LGhlYXJ0YmVhdEFjdGlvblBsYXllclRyYW5zaXRpb25lZDozMzAsdHZodG1sNUxpZmVjeWNsZTozMzEsaGVhcnRiZWF0QWN0aW9uUGxheWVySGFsdGVkOjMzMixhZGFwdGl2ZUlubGluZU11dGVkU2V0dGluZ0V2ZW50OjMzMywKbWFpbkFwcExpYnJhcnlMb2FkaW5nU3RhdGU6MzM0LHRoaXJkUGFydHlMb2dNb25pdG9yaW5nRXZlbnQ6MzM2LGFwcFNoZWxsQXNzZXRMb2FkUmVwb3J0OjMzNyx0dmh0bWw1QW5kcm9pZEF0dGVzdGF0aW9uOjMzOCx0dmh0bWw1U3RhcnR1cFNvdW5kRXZlbnQ6MzQwLGlvc0JhY2tncm91bmRSZWZyZXNoVGFzazozNDIsaW9zQmFja2dyb3VuZFByb2Nlc3NpbmdUYXNrOjM0MyxzbGlFdmVudEJhdGNoOjM0NCxwb3N0SW1wcmVzc2lvbkV2ZW50OjM0NixtdXNpY1NpZGVsb2FkZWRQbGF5bGlzdEV4cG9ydDozNDcsaWRiVW5leHBlY3RlZGx5Q2xvc2VkOjM0OCx2b2ljZVNlYXJjaEV2ZW50OjM0OSxtZHhTZXNzaW9uQ2FzdEV2ZW50OjM1MCxpZGJRdW90YUV4Y2VlZGVkOjM1MSxpZGJUcmFuc2FjdGlvbkVuZGVkOjM1MixpZGJUcmFuc2FjdGlvbkFib3J0ZWQ6MzUzLHR2aHRtbDVLZXlib2FyZExvZ2dpbmc6MzU0LGlkYklzU3VwcG9ydGVkQ29tcGxldGVkOjM1NSxjcmVhdG9yU3R1ZGlvTW9iaWxlRXZlbnQ6MzU2LAppZGJEYXRhQ29ycnVwdGVkOjM1NyxwYXJlbnRUb29sc0FwcENob3NlbkV2ZW50OjM1OCx3ZWJWaWV3Qm90dG9tU2hlZXRSZXNpemVkOjM1OSxhY3RpdmVTdGF0ZUNvbnRyb2xsZXJTY3JvbGxQZXJmb3JtYW5jZVN1bW1hcnk6MzYwLG5hdmlnYXRvclZhbGlkYXRpb246MzYxLG1keFNlc3Npb25IZWFydGJlYXQ6MzYyLGNsaWVudEhpbnRzUG9seWZpbGxEaWFnbm9zdGljczozNjMsY2xpZW50SGludHNQb2x5ZmlsbEV2ZW50OjM2NCxwcm9vZk9mT3JpZ2luVG9rZW5FcnJvcjozNjUsa2lkc0FkZGVkQWNjb3VudFN1bW1hcnk6MzY2LG11c2ljV2VhcmFibGVEZXZpY2U6MzY3LHlwY1JlZnVuZEZsb3dFdmVudDozNjgsdHZodG1sNVBsYXliYWNrTWVhc3VyZW1lbnRFdmVudDozNjksdHZodG1sNVdhdGVybWFya01lYXN1cmVtZW50RXZlbnQ6MzcwLGNsaWVudEV4cEdjZlByb3BhZ2F0aW9uRXZlbnQ6MzcxLG1haW5BcHBSZWZlcnJlckludGVudDozNzIsbGVhZGVyTG9ja0VuZGVkOjM3MyxsZWFkZXJMb2NrQWNxdWlyZWQ6Mzc0LApnb29nbGVIYXRzRXZlbnQ6Mzc1LHBlcnNpc3RlbnRMZW5zTGF1bmNoRXZlbnQ6Mzc2LHBhcmVudFRvb2xzQ2hpbGRXZWxjb21lQ2hvc2VuRXZlbnQ6Mzc4LGJyb3dzZVRodW1ibmFpbFByZWxvYWRFdmVudDozNzksZmluYWxQYXlsb2FkOjM4MCxtZHhEaWFsQWRkaXRpb25hbERhdGFVcGRhdGVFdmVudDozODEsd2ViT3JjaGVzdHJhdGlvblRhc2tMaWZlY3ljbGVSZWNvcmQ6MzgyLHN0YXJ0dXBTaWduYWxFdmVudDozODQsYWNjb3VudEVycm9yOjM4NSxnbXNEZXZpY2VDaGVja0V2ZW50OjM4NixhY2NvdW50U2VsZWN0b3JFdmVudDozODgsYWNjb3VudFVpQ2FsbGJhY2tzOjM4OSxtZHhEaWFsQWRkaXRpb25hbERhdGFQcm9iZUV2ZW50OjM5MCxkb3dubG9hZHNTZWFyY2hJY2luZ0FwaVN0YXRzOjM5MSxkb3dubG9hZHNTZWFyY2hJbmRleFVwZGF0ZWRFdmVudDozOTcsZG93bmxvYWRzU2VhcmNoSW5kZXhTbmFwc2hvdDozOTgsZGF0YVB1c2hDbGllbnRFdmVudDozOTIsa2lkc0NhdGVnb3J5U2VsZWN0ZWRFdmVudDozOTMsCm1keERldmljZU1hbmFnZW1lbnRTbmFwc2hvdEV2ZW50OjM5NCxwcmVmZXRjaFJlcXVlc3RlZDozOTUscHJlZmV0Y2hhYmxlQ29tbWFuZEV4ZWN1dGVkOjM5NixnZWxEZWJ1Z2dpbmdFdmVudDozOTksd2ViTGlua1R0c1BsYXlFbmQ6NDAwLGNsaXBWaWV3SW52YWxpZDo0MDEscGVyc2lzdGVudFN0b3JhZ2VTdGF0ZUNoZWNrZWQ6NDAzLGNhY2hlV2lwZW91dEV2ZW50OjQwNCxwbGF5ZXJFdmVudDo0MTAsc2Z2RWZmZWN0UGlwZWxpbmVTdGFydGVkRXZlbnQ6NDEyLHNmdkVmZmVjdFBpcGVsaW5lUGF1c2VkRXZlbnQ6NDI5LHNmdkVmZmVjdFBpcGVsaW5lRW5kZWRFdmVudDo0MTMsc2Z2RWZmZWN0Q2hvc2VuRXZlbnQ6NDE0LHNmdkVmZmVjdExvYWRlZEV2ZW50OjQxNSxzZnZFZmZlY3RVc2VySW50ZXJhY3Rpb25FdmVudDo0NjUsc2Z2RWZmZWN0Rmlyc3RGcmFtZVByb2Nlc3NlZExhdGVuY3lFdmVudDo0MTYsc2Z2RWZmZWN0QWdncmVnYXRlZEZyYW1lc1Byb2Nlc3NlZExhdGVuY3lFdmVudDo0MTcsCnNmdkVmZmVjdEFnZ3JlZ2F0ZWRGcmFtZXNEcm9wcGVkRXZlbnQ6NDE4LHNmdkVmZmVjdFBpcGVsaW5lRXJyb3JFdmVudDo0MzAsc2Z2RWZmZWN0R3JhcGhGcm96ZW5FdmVudDo0MTksc2Z2RWZmZWN0R2xUaHJlYWRCbG9ja2VkRXZlbnQ6NDIwLG1kZVFvc0V2ZW50OjUxMCxtZGVWaWRlb0NoYW5nZWRFdmVudDo0NDIsbWRlUGxheWVyUGVyZm9ybWFuY2VNZXRyaWNzOjQ3MixtZGVFeHBvcnRlckV2ZW50OjQ5NyxnZW5lcmljQ2xpZW50RXhwZXJpbWVudEV2ZW50OjQyMyxob21lUHJlbG9hZFRhc2tTY2hlZHVsZWQ6NDI0LGhvbWVQcmVsb2FkVGFza0V4ZWN1dGVkOjQyNSxob21lUHJlbG9hZENhY2hlSGl0OjQyNixwb2x5bWVyUHJvcGVydHlDaGFuZ2VkSW5PYnNlcnZlcjo0MjcsYXBwbGljYXRpb25TdGFydGVkOjQzMSxuZXR3b3JrQ3JvbmV0UnR0QmF0Y2g6NDMyLG5ldHdvcmtDcm9uZXRSdHRTdW1tYXJ5OjQzMyxyZXBlYXRDaGFwdGVyTG9vcEV2ZW50OjQzNixzZWVrQ2FuY2VsbGF0aW9uRXZlbnQ6NDYyLApsb2NrTW9kZVRpbWVvdXRFdmVudDo0ODMsZXh0ZXJuYWxWaWRlb1NoYXJlVG9Zb3V0dWJlQXR0ZW1wdDo1MDEscGFyZW50Q29kZUV2ZW50OjUwMixvZmZsaW5lVHJhbnNmZXJTdGFydGVkOjQsbXVzaWNPZmZsaW5lTWl4dGFwZVByZWZlcmVuY2VzQ2hhbmdlZDoxNixtYW5nb0RhaWx5TmV3VmlkZW9zTm90aWZpY2F0aW9uQXR0ZW1wdDo0MCxtYW5nb0RhaWx5TmV3VmlkZW9zTm90aWZpY2F0aW9uRXJyb3I6NzcsZHR3c1BsYXliYWNrU3RhcnRlZDoxMTIsZHR3c1RpbGVGZXRjaFN0YXJ0ZWQ6MTEzLGR0d3NUaWxlRmV0Y2hDb21wbGV0ZWQ6MTE0LGR0d3NUaWxlRmV0Y2hTdGF0dXNDaGFuZ2VkOjE0NSxkdHdzS2V5ZnJhbWVEZWNvZGVyQnVmZmVyU2VudDoxMTUsZHR3c1RpbGVVbmRlcmZsb3dlZE9uTm9ua2V5ZnJhbWU6MTE2LGR0d3NCYWNrZmlsbEZldGNoU3RhdHVzQ2hhbmdlZDoxNDMsZHR3c0JhY2tmaWxsVW5kZXJmbG93ZWQ6MTE3LGR0d3NBZGFwdGl2ZUxldmVsQ2hhbmdlZDoxMjgsCmJsb2NraW5nVmlzaXRvcklkVGltZW91dDoyNzcsbGl0ZVNvY2lhbDoxOCxtb2JpbGVKc0ludm9jYXRpb246Mjk3LGJpc2NvdHRpQmFzZWREZXRlY3Rpb246NDM5LGNvV2F0Y2hTdGF0ZUNoYW5nZTo0NDAsZW1iZWRzVmlkZW9EYXRhRGlkQ2hhbmdlOjQ0MSxzaG9ydHNGaXJzdDo0NDMsY3J1aXNlQ29udHJvbEV2ZW50OjQ0NSxxb2VDbGllbnRMb2dnaW5nQ29udGV4dDo0NDYsYXR2UmVjb21tZW5kYXRpb25Kb2JFeGVjdXRlZDo0NDcsdHZodG1sNVVzZXJGZWVkYmFjazo0NDgscHJvZHVjZXJQcm9qZWN0Q3JlYXRlZDo0NDkscHJvZHVjZXJQcm9qZWN0T3BlbmVkOjQ1MCxwcm9kdWNlclByb2plY3REZWxldGVkOjQ1MSxwcm9kdWNlclByb2plY3RFbGVtZW50QWRkZWQ6NDUzLHByb2R1Y2VyUHJvamVjdEVsZW1lbnRSZW1vdmVkOjQ1NCxwcm9kdWNlckFwcFN0YXRlQ2hhbmdlOjUwOSxwcm9kdWNlclByb2plY3REaXNrSW5zdWZmaWNpZW50RXhwb3J0RmFpbHVyZTo1MTYscHJvZHVjZXJNZWRpYVNlcnZpY2VzUmVzZXREZXRhaWxzOjUyMiwKdHZodG1sNVNob3dDbG9ja0V2ZW50OjQ1NSxkZXZpY2VDYXBhYmlsaXR5Q2hlY2tNZXRyaWNzOjQ1Nix5b3V0dWJlQ2xlYXJjdXRFdmVudDo0NjEsb2ZmbGluZUJyb3dzZUZhbGxiYWNrRXZlbnQ6NDYzLGdldEN0dlRva2VuRXZlbnQ6NDY0LHN0YXJ0dXBEcm9wcGVkRnJhbWVzU3VtbWFyeTo0NjYsc2NyZWVuc2hvdEV2ZW50OjQ2OCxtaW5pQXBwUGxheUV2ZW50OjQ2OSxlbGVtZW50c0RlYnVnQ291bnRlcnM6NDcwLGZvbnRMb2FkRXZlbnQ6NDcxLHdlYktpbGxzd2l0Y2hSZWNlaXZlZDo0NzMsd2ViS2lsbHN3aXRjaEV4ZWN1dGVkOjQ3NCxjYW1lcmFPcGVuRXZlbnQ6NDc1LG1hbnVhbFNtb290aG5lc3NNZWFzdXJlbWVudDo0NzYsdHZodG1sNUFwcFF1YWxpdHlFdmVudDo0NzcscG9seW1lclByb3BlcnR5QWNjZXNzRXZlbnQ6NDc5LG1pbmlBcHBTZGtVc2FnZTo0ODAsY29iYWx0VGVsZW1ldHJ5RXZlbnQ6NDgxLGNyb3NzRGV2aWNlUGxheWJhY2s6NDgyLGNoYW5uZWxDcmVhdGVkV2l0aE9iYWtlSW1hZ2U6NDg0LApjaGFubmVsRWRpdGVkV2l0aE9iYWtlSW1hZ2U6NDg1LG9mZmxpbmVEZWxldGVFdmVudDo0ODYsY3Jvc3NEZXZpY2VOb3RpZmljYXRpb25UcmFuc2Zlcjo0ODcsYW5kcm9pZEludGVudEV2ZW50OjQ4OCx1bnBsdWdnZWRBbWJpZW50SW50ZXJsdWRlc0NvdW50ZXJmYWN0dWFsRXZlbnQ6NDg5LGtleVBsYXlzUGxheWJhY2s6NDkwLHNob3J0c0NyZWF0aW9uRmFsbGJhY2tFdmVudDo0OTMsdnNzRGF0YTo0OTEsY2FzdE1hdGNoOjQ5NCxtaW5pQXBwUGVyZm9ybWFuY2VNZXRyaWNzOjQ5NSx1c2VyRmVlZGJhY2tFdmVudDo0OTYsa2lkc0d1ZXN0U2Vzc2lvbk1pc21hdGNoOjQ5OCxtdXNpY1NpZGVsb2FkZWRQbGF5bGlzdE1pZ3JhdGlvbkV2ZW50OjQ5OSxzbGVlcFRpbWVyU2Vzc2lvbkZpbmlzaEV2ZW50OjUwMCx3YXRjaEVwUHJvbW9Db25mbGljdDo1MDMsaW5uZXJ0dWJlUmVzcG9uc2VDYWNoZU1ldHJpY3M6NTA1LG1pbmlBcHBBZEV2ZW50OjUwNixkYXRhUGxhblVwc2VsbEV2ZW50OjUwNywKcHJvZHVjZXJQcm9qZWN0UmVuYW1lZDo1MDgscHJvZHVjZXJNZWRpYVNlbGVjdGlvbkV2ZW50OjUxMSxlbWJlZHNBdXRvcGxheVN0YXR1c0NoYW5nZWQ6NTEyLHJlbW90ZUNvbm5lY3RFdmVudDo1MTMsY29ubmVjdGVkU2Vzc2lvbk1pc2F0dHJpYnV0aW9uRXZlbnQ6NTE0LHByb2R1Y2VyUHJvamVjdEVsZW1lbnRNb2RpZmllZDo1MTUsYWRzU2VlbkNsaWVudExvZ2dpbmc6NTE3LHByb2R1Y2VyRXZlbnQ6NTE4LHR2aHRtbDVDbGVhblN0YXJ0OjUxOSxkZXZpY2VBY2NvdW50TWV0cmljc0V2ZW50OjUyMCxkZXJwTG9nRXZlbnQ6NTIxLHBsYXlhYmxlc1BvcnRhbEV2ZW50OjUyMyxpcFZhbGlkYXRpb25TdGFydGVkOjUyNCxpcFZhbGlkYXRpb25SZWNlaXZlZDo1MjUscmVlbHNTZXF1ZW5jZU11dGF0aW9uRXZlbnQ6NTI3LHdhdGNoWm9vbVN0YXRlQ2hhbmdlOjUyOCxtZXRhZGF0YUVkaXRvckV2ZW50OjUyOSxraWRzUHJpc21hRGVlcGxpbmtzRXZlbnQ6NTMwLGNyZWF0aW9uT3JjaGVzdHJhdGlvbkV2ZW50OjUzMSwKY29vcmRpbmF0ZWRTYW1wbGluZ1RyaWdnZXJlZDo1MzIscmVjYXBTY3JlZW5zaG90RXZlbnQ6NTM0LG1keExvY2FsTmV0d29ya1Blcm1pc3Npb25SZXF1ZXN0RXZlbnQ6NTM2LG1keExvY2FsTmV0d29ya1Blcm1pc3Npb25SZXNwb25zZUV2ZW50OjUzNyxzZXNzaW9uUmVwbGF5RXZlbnQ6NTM4LHNlc3Npb25SZXBsYXlTdGF0dXNFdmVudDo1MzksbG9nZ2luZ1JlbGlhYmlsaXR5UHJvYmU6NTQwLGtleVZhbHVlU3RvcmVTdGF0c0V2ZW50OjU0MSxkZXZpY2VMb2NhdGlvblBlcm1pc3Npb25FdmVudDo1NDIscmVtb3RlQ29udHJvbFN0YXJ0ZWQ6NTQzLHJlbW90ZUNvbnRyb2xDb21wbGV0ZWQ6NTQ0LHJlZWxzQWRzRXZlbnRzOjU0NSx5dGxyTG9hZGVyVGVzdEhhcm5lc3NFdmVudDo1NDcsYmlvbWV0cmljQXV0aGVudGljYXRpb25FdmVudDo1NDgsbWFpbkFwcExpZmVjeWNsZUV2ZW50OjU0OSxtdXNpY0Rvd25sb2FkQmFja2dyb3VuZENvbnRpbnVlZFByb2Nlc3NpbmdUYXNrOjU1MCxtdXNpY01ldGFkYXRhTWlzbWF0Y2hFdmVudDo1NTEsCnNjcm9sbFRvQ29tcG9uZW50Q29tcGxldGVkOjU1MixlbnRpdHlTdG9yZVRlbGVtZXRyeTo1NTMsc3RyZWFtaW5nRGFya0xhdW5jaEV2ZW50OjU1NCxjaGlsZEFjY291bnRzRGlzcGxheUV2ZW50OjU1NSx0dmZhc1BsYXliYWNrQ29udGV4dDo1NTcsbWRlQzJQYUV2ZW50OjU1OX07dmFyIFZtPV8uJGwoIlNlcnZpY2VXb3JrZXJMb2dzRGF0YWJhc2UiLHtzZTp7U1dIZWFsdGhMb2c6e1BkOjF9fSxzaGFyZWQ6ITAsdXBncmFkZTooYSxiKT0+e2IoMSkmJl8ub2woXy5rbChhLCJTV0hlYWx0aExvZyIse2tleVBhdGg6ImlkIixhdXRvSW5jcmVtZW50OiEwfSksInN3SGVhbHRoTmV3UmVxdWVzdCIsWyJpbnRlcmZhY2UiLCJ0aW1lc3RhbXAiXSl9LHZlcnNpb246MX0pO3ZhciBjbj17fSxibj0wO3ZhciBkbjt2YXIgaG49Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmo9bmV3IE1hcDt0aGlzLm89ITF9cmVxdWVzdENvbXBsZXRlKGEsYil7YiYmKHRoaXMubz0hMCk7YT10aGlzLnJlbW92ZVBhcmFtcyhhKTt0aGlzLmouZ2V0KGEpfHx0aGlzLmouc2V0KGEsYil9aXNFbmRwb2ludENGUihhKXthPXRoaXMucmVtb3ZlUGFyYW1zKGEpO3JldHVybihhPXRoaXMuai5nZXQoYSkpPyExOmE9PT0hMSYmdGhpcy5vPyEwOm51bGx9cmVtb3ZlUGFyYW1zKGEpe3JldHVybiBhLnNwbGl0KCI/IilbMF19fTtobi5wcm90b3R5cGUucmVtb3ZlUGFyYW1zPWhuLnByb3RvdHlwZS5yZW1vdmVQYXJhbXM7aG4ucHJvdG90eXBlLmlzRW5kcG9pbnRDRlI9aG4ucHJvdG90eXBlLmlzRW5kcG9pbnRDRlI7aG4ucHJvdG90eXBlLnJlcXVlc3RDb21wbGV0ZT1obi5wcm90b3R5cGUucmVxdWVzdENvbXBsZXRlO2huLmdldEluc3RhbmNlPWpuO3ZhciBrbj1jbGFzcyBleHRlbmRzIF8uZ2Z7Y29uc3RydWN0b3IoKXtzdXBlcigpO3RoaXMudj0hMTt0aGlzLmo9bGYoKTt0aGlzLmoubGlzdGVuKCJuZXR3b3Jrc3RhdHVzLW9ubGluZSIsKCk9PntpZih0aGlzLnYmJl8ueCgib2ZmbGluZV9lcnJvcl9oYW5kbGluZyIpKXt2YXIgYT1mbigpLmdldCgiZXJyb3JzIiwhMCk7aWYoYSl7Zm9yKGxldCBiIGluIGEpaWYoYVtiXSl7bGV0IGM9bmV3IF8uWGooYiwic2VudCB2aWEgb2ZmbGluZV9lcnJvcnMiKTtjLm5hbWU9YVtiXS5uYW1lO2Muc3RhY2s9YVtiXS5zdGFjaztjLmxldmVsPWFbYl0ubGV2ZWw7Xy5VaShjKX1mbigpLnNldCgiZXJyb3JzIix7fSwyNTkyRTMsITApfX19KX1TYigpe3JldHVybiB0aGlzLmouU2IoKX1lZihhKXt0aGlzLmouaXNPbmxpbmU9YX1xdygpe3ZhciBhPXdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lO3JldHVybiBhPT09dm9pZCAwPyEwOmF9Q3YoKXt0aGlzLnY9ITB9bGlzdGVuKGEsYil7cmV0dXJuIHRoaXMuai5saXN0ZW4oYSwKYil9UWooYSl7cmV0dXJuIG1mKHRoaXMuaixhKX19O2tuLnByb3RvdHlwZS5zZW5kTmV0d29ya0NoZWNrUmVxdWVzdD1rbi5wcm90b3R5cGUuUWo7a24ucHJvdG90eXBlLmxpc3Rlbj1rbi5wcm90b3R5cGUubGlzdGVuO2tuLnByb3RvdHlwZS5lbmFibGVFcnJvckZsdXNoaW5nPWtuLnByb3RvdHlwZS5Ddjtrbi5wcm90b3R5cGUuZ2V0V2luZG93U3RhdHVzPWtuLnByb3RvdHlwZS5xdztrbi5wcm90b3R5cGUubmV0d29ya1N0YXR1c0hpbnQ9a24ucHJvdG90eXBlLmVmO2tuLnByb3RvdHlwZS5pc05ldHdvcmtBdmFpbGFibGU9a24ucHJvdG90eXBlLlNiO2tuLmdldEluc3RhbmNlPWxuO18uT3M9Y2xhc3MgZXh0ZW5kcyBfLmdme2NvbnN0cnVjdG9yKGE9e30pe3N1cGVyKCk7dGhpcy5qPXRoaXMuRD0wO3RoaXMudj1sbigpO3ZhciBiPV8uc2EoInl0Lm5ldHdvcmtTdGF0dXNNYW5hZ2VyLmluc3RhbmNlLmxpc3RlbiIpLmJpbmQodGhpcy52KTtiJiYoYS5yYXRlTGltaXQ/KHRoaXMucmF0ZUxpbWl0PWEucmF0ZUxpbWl0LGIoIm5ldHdvcmtzdGF0dXMtb25saW5lIiwoKT0+e21uKHRoaXMsInB1YmxpY3l0bmV0d29ya3N0YXR1cy1vbmxpbmUiKX0pLGIoIm5ldHdvcmtzdGF0dXMtb2ZmbGluZSIsKCk9Pnttbih0aGlzLCJwdWJsaWN5dG5ldHdvcmtzdGF0dXMtb2ZmbGluZSIpfSkpOihiKCJuZXR3b3Jrc3RhdHVzLW9ubGluZSIsKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQoInB1YmxpY3l0bmV0d29ya3N0YXR1cy1vbmxpbmUiKX0pLGIoIm5ldHdvcmtzdGF0dXMtb2ZmbGluZSIsKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQoInB1YmxpY3l0bmV0d29ya3N0YXR1cy1vZmZsaW5lIil9KSkpfVNiKCl7dmFyIGE9Cl8uc2EoInl0Lm5ldHdvcmtTdGF0dXNNYW5hZ2VyLmluc3RhbmNlLmlzTmV0d29ya0F2YWlsYWJsZSIpO3JldHVybiBhP2EuYmluZCh0aGlzLnYpKCk6ITB9ZWYoYSl7dmFyIGI9Xy5zYSgieXQubmV0d29ya1N0YXR1c01hbmFnZXIuaW5zdGFuY2UubmV0d29ya1N0YXR1c0hpbnQiKS5iaW5kKHRoaXMudik7YiYmYihhKX1hc3luYyBRaihhKXt2YXIgYj1fLnNhKCJ5dC5uZXR3b3JrU3RhdHVzTWFuYWdlci5pbnN0YW5jZS5zZW5kTmV0d29ya0NoZWNrUmVxdWVzdCIpLmJpbmQodGhpcy52KTtyZXR1cm4gXy54KCJza2lwX25ldHdvcmtfY2hlY2tfaWZfY2ZyIikmJmpuKCkuaXNFbmRwb2ludENGUigiZ2VuZXJhdGVfMjA0Iik/bmV3IFByb21pc2UoYz0+e3RoaXMuZWYod2luZG93Lm5hdmlnYXRvcj8ub25MaW5lfHwhMCk7Yyh0aGlzLlNiKCkpfSk6Yj9iKGEpOiEwfX07dmFyIFBzLG5uPWNsYXNzIGV4dGVuZHMgTnN7Y29uc3RydWN0b3IoKXtQc3x8KFBzPW5ldyBfLk9zKHtTSjohMCxKSTohMH0pKTtzdXBlcih7Y2I6e091OlRtLEZmOlNtLFdwOlBtLEF5OlFtLG5uOlJtLHNldDpPbX0sU2E6UHMsaGFuZGxlRXJyb3I6KGEsYixjKT0+e3ZhciBkPWM/LmVycm9yPy5jb2RlO2Q9PT00MDB8fGQ9PT00MTU/KGE9bmV3IF8uWGooYS5tZXNzYWdlLGIsYz8uZXJyb3I/LmNvZGUpLF8uV2koYSx2b2lkIDAsdm9pZCAwLHZvaWQgMCwhMCkpOl8uVWkoYSl9LFRmOl8uV2ksR2Q6cW4sbm93Ol8uZWwsTHM6Z24sRGM6Xy5DaygpLEttOiJwdWJsaWN5dG5ldHdvcmtzdGF0dXMtb25saW5lIixGbToicHVibGljeXRuZXR3b3Jrc3RhdHVzLW9mZmxpbmUiLE9pOiEwLERpOi4xLEtqOl8uc2ooInBvdGVudGlhbF9lc2ZfZXJyb3JfbGltaXQiLDEwKSxLYTpfLngsYWg6IShfLldqKCkmJl8uc24oKSl9KTt0aGlzLkI9bmV3IF8uY3M7Xy54KCJuZXR3b3JrbGVzc19pbW1lZGlhdGVseV9kcm9wX2FsbF9yZXF1ZXN0cyIpJiYKVW0oKTtYbCgiTG9nc0RhdGFiYXNlVjIiKX13cml0ZVRoZW5TZW5kKGEsYil7Ynx8KGI9e30pO2I9cm4oYSxiKTtfLldqKCl8fCh0aGlzLk9jPSExKTtzdXBlci53cml0ZVRoZW5TZW5kKGEsYil9c2VuZFRoZW5Xcml0ZShhLGIsYyl7Ynx8KGI9e30pO2I9cm4oYSxiKTtfLldqKCl8fCh0aGlzLk9jPSExKTtzdXBlci5zZW5kVGhlbldyaXRlKGEsYixjKX1zZW5kQW5kV3JpdGUoYSxiKXtifHwoYj17fSk7Yj1ybihhLGIpO18uV2ooKXx8KHRoaXMuT2M9ITEpO3N1cGVyLnNlbmRBbmRXcml0ZShhLGIpfWF3YWl0SW5pdGlhbGl6YXRpb24oKXtyZXR1cm4gdGhpcy5CLnByb21pc2V9fTtfLnVuPSExO18udG49Xy51Lnl0TmV0d29ya2xlc3NMb2dnaW5nSW5pdGlhbGl6YXRpb25PcHRpb25zfHx7aXNOd2xJbml0aWFsaXplZDpfLnVufTtfLnJhKCJ5dE5ldHdvcmtsZXNzTG9nZ2luZ0luaXRpYWxpemF0aW9uT3B0aW9ucyIsXy50bik7dmFyIERwPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuY29uZmlnXz1udWxsO2E/dGhpcy5jb25maWdfPWE6a20oKSYmKHRoaXMuY29uZmlnXz1sbSgpKX1pc1JlYWR5KCl7IXRoaXMuY29uZmlnXyYma20oKSYmKHRoaXMuY29uZmlnXz1sbSgpKTtyZXR1cm4hIXRoaXMuY29uZmlnX319O3ZhciBRcztRcz1fLnUueXRQdWJzdWJQdWJzdWJJbnN0YW5jZXx8bmV3IF8udGg7Xy5Scz1fLnUueXRQdWJzdWJQdWJzdWJTdWJzY3JpYmVkS2V5c3x8e307Xy5Tcz1fLnUueXRQdWJzdWJQdWJzdWJUb3BpY1RvS2V5c3x8e307Xy5Ucz1fLnUueXRQdWJzdWJQdWJzdWJJc1N5bmNocm9ub3VzfHx7fTtfLnRoLnByb3RvdHlwZS5zdWJzY3JpYmU9Xy50aC5wcm90b3R5cGUuc3Vic2NyaWJlO18udGgucHJvdG90eXBlLnVuc3Vic2NyaWJlQnlLZXk9Xy50aC5wcm90b3R5cGUuY2k7Xy50aC5wcm90b3R5cGUucHVibGlzaD1fLnRoLnByb3RvdHlwZS5wdWJsaXNoO18udGgucHJvdG90eXBlLmNsZWFyPV8udGgucHJvdG90eXBlLmNsZWFyO18ucmEoInl0UHVic3ViUHVic3ViSW5zdGFuY2UiLFFzKTtfLnJhKCJ5dFB1YnN1YlB1YnN1YlRvcGljVG9LZXlzIixfLlNzKTtfLnJhKCJ5dFB1YnN1YlB1YnN1YklzU3luY2hyb25vdXMiLF8uVHMpOwpfLnJhKCJ5dFB1YnN1YlB1YnN1YlN1YnNjcmliZWRLZXlzIixfLlJzKTt2YXIgQ249RGF0ZS5ub3coKS50b1N0cmluZygpO0RhdGUubm93KCk7Xy5Mbj1TeW1ib2woIkNhIik7dmFyIEhuPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMua2V5PWF9fTt2YXIgT249Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnY9bmV3IE1hcDt0aGlzLmo9bmV3IE1hcDt0aGlzLm89bmV3IE1hcH1yZXNvbHZlKGEpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBfLlVzJiZhIGluc3RhbmNlb2YgXy5Vcz9Lbih0aGlzLGEpOmEgaW5zdGFuY2VvZiBIbj9Kbih0aGlzLGEua2V5LFtdLCEwKTpKbih0aGlzLGEsW10pfX07Xy5Wcz1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLm5hbWU9YX10b1N0cmluZygpe3JldHVybmBJbmplY3Rpb25Ub2tlbigke3RoaXMubmFtZX0pYH19O3ZhciBObjt2YXIgUG49d2luZG93O3ZhciBmbz1fLngoIndlYl9lbmFibGVfbGlmZWN5Y2xlX21vbml0b3JpbmciKSYmUW4oKSE9PTAsVW49Xy54KCJ3ZWJfZW5hYmxlX2xpZmVjeWNsZV9tb25pdG9yaW5nIik7dmFyIGVvPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuc2NoZWR1bGVyPV8uQ2soKTt0aGlzLm89bmV3IF8uY3M7dGhpcy5qPWE7Zm9yKGxldCBjPTA7Yzx0aGlzLmoubGVuZ3RoO2MrKyl7bGV0IGQ9dGhpcy5qW2NdO2E9KCk9PntkLnhoKCk7dGhpcy5qW2NdLk5qPSEwO3RoaXMuai5ldmVyeShlPT5lLk5qPT09ITApJiZ0aGlzLm8ucmVzb2x2ZSgpfTt2YXIgYj10aGlzLmdldFByaW9yaXR5KGQpO2I9dGhpcy5zY2hlZHVsZXIuR2EoYSxiKTt0aGlzLmpbY109ey4uLmQseGg6YSxqb2JJZDpifX19Y2FuY2VsKCl7Zm9yKGxldCBhIG9mIHRoaXMuailhLmpvYklkPT09dm9pZCAwfHxhLk5qfHx0aGlzLnNjaGVkdWxlci5BYShhLmpvYklkKSxhLk5qPSEwO3RoaXMuby5yZXNvbHZlKCl9Z2V0UHJpb3JpdHkoYSl7cmV0dXJuIGEucHJpb3JpdHk/PzB9fTtfLldzPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuc3RhdGU9YTt0aGlzLnBsdWdpbnM9W107dGhpcy52PXZvaWQgMDt0aGlzLkI9e307Zm8mJlJuKHRoaXMuc3RhdGUpfWdldCBjdXJyZW50U3RhdGUoKXtyZXR1cm4gdGhpcy5zdGF0ZX1pbnN0YWxsKGEpe3RoaXMucGx1Z2lucy5wdXNoKGEpO3JldHVybiB0aGlzfXVuaW5zdGFsbCguLi5hKXthLmZvckVhY2goYj0+e2I9dGhpcy5wbHVnaW5zLmluZGV4T2YoYik7Yj4tMSYmdGhpcy5wbHVnaW5zLnNwbGljZShiLDEpfSl9dHJhbnNpdGlvbihhLGIpe2ZvJiZTbih0aGlzLnN0YXRlKTt2YXIgYz10aGlzLnRyYW5zaXRpb25zLmZpbmQoZD0+QXJyYXkuaXNBcnJheShkLmZyb20pP2QuZnJvbS5maW5kKGU9PmU9PT10aGlzLnN0YXRlJiZkLnRvPT09YSk6ZC5mcm9tPT09dGhpcy5zdGF0ZSYmZC50bz09PWEpO2lmKGMpe3RoaXMuaiYmKFRuKHRoaXMuaiksdGhpcy5qPXZvaWQgMCk7Vm4odGhpcyxhLGIpO3RoaXMuc3RhdGU9YTtmbyYmUm4odGhpcy5zdGF0ZSk7CmM9Yy5hY3Rpb24uYmluZCh0aGlzKTtsZXQgZD10aGlzLnBsdWdpbnMuZmlsdGVyKGU9PmVbYV0pLm1hcChlPT5lW2FdKTtjKFpuKHRoaXMsZCksYil9ZWxzZSB0aHJvdyBFcnJvcigiR2FgIit0aGlzLnN0YXRlKyJgIithKTt9fTt2YXIgaG89Y2xhc3MgZXh0ZW5kcyBfLldze2NvbnN0cnVjdG9yKCl7c3VwZXIoIm5vbmUiKTt0aGlzLm89bnVsbDt0aGlzLnY9MTA7dGhpcy50cmFuc2l0aW9ucz1be2Zyb206Im5vbmUiLHRvOiJhcHBsaWNhdGlvbl9uYXZpZ2F0aW5nIixhY3Rpb246dGhpcy5EfSx7ZnJvbToiYXBwbGljYXRpb25fbmF2aWdhdGluZyIsdG86Im5vbmUiLGFjdGlvbjp0aGlzLkt9LHtmcm9tOiJhcHBsaWNhdGlvbl9uYXZpZ2F0aW5nIix0bzoiYXBwbGljYXRpb25fbmF2aWdhdGluZyIsYWN0aW9uOigpPT57fX0se2Zyb206Im5vbmUiLHRvOiJub25lIixhY3Rpb246KCk9Pnt9fV19RChhLGIpe3RoaXMubz1fLllqKCgpPT57dGhpcy5jdXJyZW50U3RhdGU9PT0iYXBwbGljYXRpb25fbmF2aWdhdGluZyImJnRoaXMudHJhbnNpdGlvbigibm9uZSIpfSw1RTMpO2EoYj8uZXZlbnQpfUsoYSxiKXt0aGlzLm8mJihfLmpmLkFhKHRoaXMubyksdGhpcy5vPW51bGwpO2EoYj8uZXZlbnQpfX0sZ287dmFyIHJvPV8uc2ooInl0Y3NpX2RlYnVnX21heF9zaXplIiwxMDApO3ZhciBYcz0wO3ZhciB5cT1jbGFzcyBleHRlbmRzIF8ucG17Y29uc3RydWN0b3IoYSxiKXtzdXBlcihhcmd1bWVudHMpO3RoaXMuaj1hO3RoaXMudGltZXI9Yn19LHhxPW5ldyBfLnFtKCJhZnQtcmVjb3JkZWQiLHlxKTt2YXIgTnA9W3twbTphPT5gQ2Fubm90IHJlYWQgcHJvcGVydHkgJyR7YS5rZXl9J2AsSmo6e0Vycm9yOlt7cmVnZXhwOi8oUGVybWlzc2lvbiBkZW5pZWQpIHRvIGFjY2VzcyBwcm9wZXJ0eSAiKFteJ10rKSIvLGdyb3VwczpbInJlYXNvbiIsImtleSJdfV0sVHlwZUVycm9yOlt7cmVnZXhwOi9DYW5ub3QgcmVhZCBwcm9wZXJ0eSAnKFteJ10rKScgb2YgKG51bGx8dW5kZWZpbmVkKS8sZ3JvdXBzOlsia2V5IiwidmFsdWUiXX0se3JlZ2V4cDovXHU2NWUwXHU2Y2Q1XHU4M2I3XHU1M2Q2XHU2NzJhXHU1YjlhXHU0ZTQ5XHU2MjE2IChudWxsfHVuZGVmaW5lZCkgXHU1ZjE1XHU3NTI4XHU3Njg0XHU1YzVlXHU2MDI3XHUyMDFjKFteXHUyMDFkXSspXHUyMDFkLyxncm91cHM6WyJ2YWx1ZSIsImtleSJdfSx7cmVnZXhwOi9cdWM4MTVcdWM3NThcdWI0MThcdWM5YzAgXHVjNTRhXHVjNzRjIFx1YjYxMFx1YjI5NCAobnVsbHx1bmRlZmluZWQpIFx1Y2MzOFx1Yzg3MFx1Yzc3OCAnKFteJ10rKScgXHVjMThkXHVjMTMxXHVjNzQ0IFx1YWMwMFx1YzgzOFx1YzYyYyBcdWMyMTggXHVjNWM2XHVjMmI1XHViMmM4XHViMmU0Li8sCmdyb3VwczpbInZhbHVlIiwia2V5Il19LHtyZWdleHA6L05vIHNlIHB1ZWRlIG9idGVuZXIgbGEgcHJvcGllZGFkICcoW14nXSspJyBkZSByZWZlcmVuY2lhIG51bGEgbyBzaW4gZGVmaW5pci8sZ3JvdXBzOlsia2V5Il19LHtyZWdleHA6L1VuYWJsZSB0byBnZXQgcHJvcGVydHkgJyhbXiddKyknIG9mICh1bmRlZmluZWQgb3IgbnVsbCkgcmVmZXJlbmNlLyxncm91cHM6WyJrZXkiLCJ2YWx1ZSJdfSx7cmVnZXhwOi8obnVsbCkgaXMgbm90IGFuIG9iamVjdCBcKGV2YWx1YXRpbmcgJyg/OihbXi5dKylcLik/KFteJ10rKSdcKS8sZ3JvdXBzOlsidmFsdWUiLCJiYXNlIiwia2V5Il19XX19LHtwbTphPT5gQ2Fubm90IGNhbGwgJyR7YS5rZXl9J2AsSmo6e1R5cGVFcnJvcjpbe3JlZ2V4cDovKD86KFteIF0rKT9cLik/KFteIF0rKSBpcyBub3QgYSBmdW5jdGlvbi8sZ3JvdXBzOlsiYmFzZSIsImtleSJdfSx7cmVnZXhwOi8oW14gXSspIGNhbGxlZCBvbiAobnVsbCBvciB1bmRlZmluZWQpLywKZ3JvdXBzOlsia2V5IiwidmFsdWUiXX0se3JlZ2V4cDovT2JqZWN0ICguKikgaGFzIG5vIG1ldGhvZCAnKFteIF0rKScvLGdyb3VwczpbImJhc2UiLCJrZXkiXX0se3JlZ2V4cDovT2JqZWN0IGRvZXNuJ3Qgc3VwcG9ydCBwcm9wZXJ0eSBvciBtZXRob2QgJyhbXiBdKyknLyxncm91cHM6WyJrZXkiXX0se3JlZ2V4cDovXHUzMGFhXHUzMGQ2XHUzMGI4XHUzMGE3XHUzMGFmXHUzMGM4XHUzMDZmICcoW14nXSspJyBcdTMwZDdcdTMwZWRcdTMwZDFcdTMwYzZcdTMwYTNcdTMwN2VcdTMwNWZcdTMwNmZcdTMwZTFcdTMwYmRcdTMwYzNcdTMwYzlcdTMwOTJcdTMwYjVcdTMwZGRcdTMwZmNcdTMwYzhcdTMwNTdcdTMwNjZcdTMwNDRcdTMwN2VcdTMwNWJcdTMwOTMvLGdyb3VwczpbImtleSJdfSx7cmVnZXhwOi9cdWFjMWNcdWNjYjRcdWFjMDAgJyhbXiddKyknIFx1YzE4ZFx1YzEzMVx1Yzc3NFx1YjA5OCBcdWJhNTRcdWMxMWNcdWI0ZGNcdWI5N2MgXHVjOWMwXHVjNmQwXHVkNTU4XHVjOWMwIFx1YzU0YVx1YzJiNVx1YjJjOFx1YjJlNC4vLApncm91cHM6WyJrZXkiXX1dfX0se3BtOmE9PmAke2Eua2V5fSBpcyBub3QgZGVmaW5lZGAsSmo6e1JlZmVyZW5jZUVycm9yOlt7cmVnZXhwOi8oLiopIGlzIG5vdCBkZWZpbmVkLyxncm91cHM6WyJrZXkiXX0se3JlZ2V4cDovQ2FuJ3QgZmluZCB2YXJpYWJsZTogKC4qKS8sZ3JvdXBzOlsia2V5Il19XX19XTt2YXIgQW89e2xlOltdLFNkOlt7Y2FsbGJhY2s6dm8sd2VpZ2h0OjUwMH0se2NhbGxiYWNrOndvLHdlaWdodDo1MDB9XX07dmFyIHlvPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5TZD1bXTt0aGlzLmxlPVtdfX0seG87Xy5WcD1uZXcgXy50aDt2YXIgdnA9W107Xy5yYSgieXQubG9nZ2luZy50cmFuc3BvcnQuZ2V0U2NyYXBlZEdlbFBheWxvYWRzIixmdW5jdGlvbigpe3JldHVybiB2cH0pO3ZhciBQbz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3RvcmU9e307dGhpcy5qPXt9fXN0b3JlUGF5bG9hZChhLGIpe2E9SW8oYSk7dGhpcy5zdG9yZVthXT90aGlzLnN0b3JlW2FdLnB1c2goYik6KHRoaXMuaj17fSx0aGlzLnN0b3JlW2FdPVtiXSk7Xy54KCJtb3JlX2FjY3VyYXRlX2dlbF9wYXJzZXIiKSYmKGI9bmV3IEN1c3RvbUV2ZW50KCJUUkFOU1BPUlRJTkdfTkVXX0VWRU5UIiksd2luZG93LmRpc3BhdGNoRXZlbnQoYikpO3JldHVybiBhfXNtYXJ0RXh0cmFjdE1hdGNoaW5nRW50cmllcyhhKXtpZighYS5rZXlzLmxlbmd0aClyZXR1cm5bXTt2YXIgYj1Lbyh0aGlzLGEua2V5cy5zcGxpY2UoMCwxKVswXSksYz1bXTtmb3IobGV0IGQ9MDtkPGIubGVuZ3RoO2QrKyl0aGlzLnN0b3JlW2JbZF1dJiZhLnNpemVMaW1pdCYmKHRoaXMuc3RvcmVbYltkXV0ubGVuZ3RoPD1hLnNpemVMaW1pdD8oYy5wdXNoKC4uLnRoaXMuc3RvcmVbYltkXV0pLGRlbGV0ZSB0aGlzLnN0b3JlW2JbZF1dKToKYy5wdXNoKC4uLnRoaXMuc3RvcmVbYltkXV0uc3BsaWNlKDAsYS5zaXplTGltaXQpKSk7YT8uc2l6ZUxpbWl0JiZjLmxlbmd0aDxhPy5zaXplTGltaXQmJihhLnNpemVMaW1pdC09Yy5sZW5ndGgsYy5wdXNoKC4uLnRoaXMuc21hcnRFeHRyYWN0TWF0Y2hpbmdFbnRyaWVzKGEpKSk7cmV0dXJuIGN9ZXh0cmFjdE1hdGNoaW5nRW50cmllcyhhKXthPUtvKHRoaXMsYSk7dmFyIGI9W107Zm9yKGxldCBjPTA7YzxhLmxlbmd0aDtjKyspdGhpcy5zdG9yZVthW2NdXSYmKGIucHVzaCguLi50aGlzLnN0b3JlW2FbY11dKSxkZWxldGUgdGhpcy5zdG9yZVthW2NdXSk7cmV0dXJuIGJ9Z2V0U2VxdWVuY2VDb3VudChhKXthPUtvKHRoaXMsYSk7dmFyIGI9MDtmb3IobGV0IGM9MDtjPGEubGVuZ3RoO2MrKyliKz10aGlzLnN0b3JlW2FbY11dPy5sZW5ndGh8fDA7cmV0dXJuIGJ9fTtQby5wcm90b3R5cGUuZ2V0U2VxdWVuY2VDb3VudD1Qby5wcm90b3R5cGUuZ2V0U2VxdWVuY2VDb3VudDsKUG8ucHJvdG90eXBlLmV4dHJhY3RNYXRjaGluZ0VudHJpZXM9UG8ucHJvdG90eXBlLmV4dHJhY3RNYXRjaGluZ0VudHJpZXM7UG8ucHJvdG90eXBlLnNtYXJ0RXh0cmFjdE1hdGNoaW5nRW50cmllcz1Qby5wcm90b3R5cGUuc21hcnRFeHRyYWN0TWF0Y2hpbmdFbnRyaWVzO1BvLnByb3RvdHlwZS5zdG9yZVBheWxvYWQ9UG8ucHJvdG90eXBlLnN0b3JlUGF5bG9hZDt2YXIgeXA9bmV3IF8uVnMoIkZpbmNoQ29uZmlnTWFuYWdlclNlcnZpY2UiKTt2YXIgbnA9Xy5zaigiaW5pdGlhbF9nZWxfYmF0Y2hfdGltZW91dCIsMkUzKSxscD1fLnNqKCJnZWxfcXVldWVfdGltZW91dF9tYXhfbXMiLDZFNCksb3A9Xy5zaigiZ2VsX21pbl9iYXRjaF9zaXplIiw1KSxObz12b2lkIDAsTW89bnVsbCxZcz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuQj10aGlzLm89dGhpcy52PTA7dGhpcy5qPSExfX0sQXA9bmV3IFlzLHpwPW5ldyBZcyxrcD1uZXcgWXMsanA9bmV3IFlzLGNwLG1wPSEwLGdwPV8udS55dExvZ2dpbmdUcmFuc3BvcnRUb2tlbnNUb0N0dFRhcmdldElkc198fHt9O18ucmEoInl0TG9nZ2luZ1RyYW5zcG9ydFRva2Vuc1RvQ3R0VGFyZ2V0SWRzXyIsZ3ApO3ZhciBYbz17fTt2YXIgQnA9Xy51Lnl0TG9nZ2luZ0dlbFNlcXVlbmNlSWRPYmpffHx7fTtfLnJhKCJ5dExvZ2dpbmdHZWxTZXF1ZW5jZUlkT2JqXyIsQnApO3ZhciBRcD1uZXcgU2V0LEtwPTAsWHA9MCxXcD0wLE1wPVtdLExwPVtdLFpwPVsiUGhhbnRvbUpTIiwiR29vZ2xlYm90IiwiVE8gU1RPUCBUSElTIFNFQ1VSSVRZIFNDQU4gZ28vc2NhbiJdO3ZhciBacz17YV9iaWRfZjo0ODIsYV9iaWRfczo0ODEsYWE6MixhYWNpOjQzMyxhYWNyOjQzNCxhYl9yOjExLGFiX3M6MTAsYWJjOjU3OSxhYzoxOTMsYWNjOjUxMSxhY2k6NTEyLGFkXzBfZToxMyxhZF8wX3M6MTIsYWRfYmw6MTQsYWRfaToxNSxhZF9tYnM6MTYsYWRfcHI6NTYyLGFkX3ZpOjE3LGFkX3ZpcjoxOCxhZGE6MTk0LGFkYmNfZjo1NzYsYWRjOjE5NSxhZGZsX2Y6MTksYWRmbF9zOjIwLGFkbDoxOTYsYWRuczoxOTcsYWRzX2U6MjIsYWRzX3M6MjEsYWZiOjUxMyxhZmM6MTk4LGFmbDoxOTksYWZ0OjEsYWhiOjUxNCxhaToyMDAsYWlzX2E6NTAzLGFpc19yOjUwMixhaXNmOjIzLGFpc2k6MjQsYWlzcjoyNSxhaXNzOjI2LGFtbDoyMDEsYXBhX2E6MjAzLGFwYV9iOjIwMixhcGJzOjIwNCxhcHBfbDozLGFwcF9zaTo2MTIsYXBwX3NpZTo2NjEsYXBwZGVsX2k6MjcsYXBwaV9lOjYxNixhcHBpX3M6NjE1LGFwcjoyMDUsYXByZXM6NDM2LGFwc3VzOjQzNSxhcjoyMDYsYXI0MGs6MjgsCmFyYl9mOjUwNCxhcmM6MjA3LGFyZXE6MjA4LGFyZmI6MjksYXJpOjQsYXJyOjIwOSxhcnJoOjMwLGFzY2U6Nzg4LGFzY2Y6Nzg5LGFzY3M6Nzg3LGFzaXNmYjozMSxhc2lzcjozMixhc2lzcmg6MzMsYXNpc3M6MzQsYXNyOjIxMCxhc3luY19vcmNoX3RfYWN0OjcxMixhc3luY19vcmNoX3Rfbm90aWZ5OjcxMSxhdHJyOjUxNSxhdHJzOjUxNixhdHRfZToyMTEsYXR0X2Y6MjEyLGF0dF9mYzo3OTcsYXR0X2Zycjo3OTYsYXR0X2ZzOjc5MyxhdHRfZnNyOjc5NSxhdHRfcG5hOjc5NCxhdHRfczoyMTMsYXR0X3diOjIxNCxhd2ZsX2Y6NTU3LGF3Zmxfczo1NTgsYmFzZV9qc19yOjQ0MSxiY3A6MjE1LGJmOjIxNixiZ19lOjIxNyxiZ19pOjIxOCxiZ19sOjIyMCxiZ19zOjIyMSxiZ192OjIxOSxicGRfYzo0ODQsYnBkX3M6NDgzLGJwdDoyMjMsYnJfZTozNyxicl9sZDozOCxicl9scnByOjM5LGJyX2xycjo0MCxicl9sd206NTc3LGJyX3I6NDEsYnJfczo0MixicmVyOjM1LGJyZXM6MzYsYnJucjo0MywKYnJuczo0NCxicnBlOjQ1LGJycHM6NDYsYnJyX2U6NDcsYnJyX2k6NDgsYnJyX2l1czo0OSxiczoyMjIsY19jOjUwLGNfY3M6NTEsY19jc2ZzOjUyLGNfZDo1MyxjX2xhZjo1OSxjX2xhczo1OCxjX3JuZjo0MzgsY19ybnM6NDM3LGNjOjQ2NyxjY19jOjU0LGNjX2NmOjU2LGNjX2NzYWxhOjU1LGNjX2xhOjU3LGNmZzoyMjQsY2hsczoyMjUsY2hwczoyMjYsY2w6NDgwLGNtYzoyMjcsY21kX2g6NjI5LGNtaGw6MjI5LGNtaToyMjgsY21sOjIzMCxjbXA6Nzc5LGNtdjoyMzEsY3B0OjIzMixjcjozNjQsY3JfZXJyOjY2OSxjcl9yOjY3MCxjcl9zOjY2OCxjc2w6MjMzLGNzcl90OjYzMSxjdDo1LGN0X2xpOjYwLGRfbDo2MSxkX2xhZjo2MixkX2xhcjo2MyxkX2xhczo2NCxkX2xmOjY1LGRfbHM6NjYsZF9sdzo2NyxkX2x3Zjo2OCxkX2x3czo2OSxkYXNfYzozNjYsZGFzX3M6MzY1LGRjcDoyMzQsZGdfcGJfYzoyMzYsZGdfcGJfcjoyMzcsZGdfcGJfczoyMzUsZGhpYzoyMzgsZGw6MjM5LGRuc186MjQwLApkcm1fZ2tfZjozODgsZHJtX2drX3M6Mzg3LGRybV9rcl9yOjM5Mixkcm1fa3JfczozOTEsZHJtX25ldF9yOjM5MCxkcm1fbmV0X3M6Mzg5LGRybV9wYl9mOjM4Nixkcm1fcGJfczozODUsZHNfYWM6NzM2LGRzX2FzOjczNSxkc19jbGM6NzQwLGRzX2NzOjczNyxkc19kYzo3MzksZHNfZHM6NzM4LGVtcGE6NDMyLGVtcHU6NDMxLGVucF9lcnI6Njg1LGVucF9maTo2ODQsZW5wX3N0OjY4Myxlb3ByX3I6NjczLGVwX2FfcHJfcjo1MzIsZXBfYV9wcl9zOjUzMSxlcF9oYXZfZW5kOjUyNixlcF9oYXZfc3RhcnQ6NTI1LGVwX2luaXRfYXI6Njk5LGVwX2luaXRfY3VlOjYzNSxlcF9pbml0X2N1czo2MzQsZXBfaW5pdF9lcGU6NjM3LGVwX2luaXRfZXBzOjYzNixlcF9pbml0X2lqZTo2MzksZXBfaW5pdF9panM6NjM4LGVwX2luaXRfcHI6NTI3LGVwX2luaXRfcmU6NjQxLGVwX2luaXRfcnM6NjQwLGVwX2luaXRfd2VlOjY0MyxlcF9pbml0X3dlczo2NDIsZXBfbWFfcmVwcjo1NDMsZXBfbWFfcnI6NTMzLAplcF9tYV9zZXByOjU0MixlcF9tYV9zcHI6NTM0LGVwX3BfbDo1MzAsZXBfcHJfcjo1MjksZXBfcHJfczo1MjgsZXBfcl9wcmVfcjo1NDEsZXBfcl9ycjo1MzUsZXBfcl9zbWFyOjUzNixlcF9yZWNfZW5kOjUzOCxlcF9yZWNfc3RhcnQ6NTM3LGVwX3JlcHNfZW5kOjU0MCxlcF9yZXBzX3N0YXJ0OjUzOSxlcGU6NjE4LGVwczo2MTcsZXJfY2w6NjUzLGVyX25zOjY1Mixlcl9wZTo2NTAsZXJfcHM6NjQ5LGVyX3M6NjQ4LGVyX3NfbnI6NzkwLGVyX3NfbnM6Nzg0LGVyX3Q6NjUxLGZhYl9yOjI0NixmY2Jfcjo1MDYsZmlyZTo3MCxmaXJzOjcxLGZtdGg6MjQxLGZvb3RfanM6MjQyLGZwdDoyNDMsZnJfczo1NjEsZnM6MjQ0LGZzYzoyNDUsZnNzYjBfYTo3NSxmc3NiMF9mcjo3NCxmc3NiMF9ucjo3Myxmc3NiMF9uczo3MixmdF86NDM5LGZ0bDo3LGZ0cjo0NzUsZnZiX3I6MjQ3LGZ2ZjoyNDgsZnlkX2dmOjc2NyxmeWRfZ3M6NzY2LGdjYzoyNDksZ2NmbDoyNTAsZ2Nzcjo3NixnZXBfZXJyOjgwMCwKZ2VwX3JlcTo3OTgsZ2VwX3Jlczo3OTksZ2dzcjo3NyxnaXdhX2E6NjI3LGdpd2FfZDo2MjgsZ2xjOjU5MyxnbGU6MjUxLGdsczoyNTIsZ3BlOjI1MyxncmM6MjU0LGdyaXdfbnI6Nzg2LGdyaXdfbnM6Nzg1LGdzX3I6NzM0LGdzX3M6NzMzLGdzbWQ6NTg2LGd1X3I6NjIwLGd2OjQ4NSxnd19haWVyOjc3MSxnd19hcmY6NzcyLGd3X2FybmFmOjc3NSxnd19hcm5uYWY6Nzc2LGd3X2FybnM6Nzc3LGd3X2FybnN1Ojc3OCxnd19hcnM6Nzc0LGd3X2Fyc3U6NzczLGd3X21hYWY6NjMzLGd3X21hYXM6NjMyLGhiZmc6Njc3LGhnY3I6MjU1LGhyOjI1NixocmU6MzYzLGhyczozNjIsaHM6MzczLGh0bWxfZmJfcjo3NTUsaHRtbF9mZTo3NDgsaHRtbF9mczo3NDcsaHRtbF9md2U6NzUyLGh0bWxfZndzOjc1MSxodG1sX2pjZTo3NTQsaHRtbF9qY3M6NzUzLGh0bWxfbGJfcjo3NTYsaHRtbF9zZTo3NTAsaHRtbF9zczo3NDksaV9ycDo0NzcsaV9ycTo0NzYsaXBfczo2NDYsaXBjOjI1NyxpcHM6MjU4LAppc21wX2E6ODM2LGlzbXBfYzo4MzgsaXNtcF9kOjgzOSxpc21wX2k6ODM1LGlzbXBfcDo4NDAsaXNtcF9yYzo4MzcsaXRfZ3A6NzgsaXZfczo1MDUsanNwOjI1OSxqc3I6MjYwLGtZVExhdGVuY3lNREVQcm9kdWN0U3RpY2tlckVkaXRvckNhbmNlbGxlZDo4MDEsa1lUTGF0ZW5jeU1ERVByb2R1Y3RTdGlja2VyRWRpdG9yRmluaXNoZWQ6ODAyLGwyczoyNjEsbGNfZnJyOjY2MCxsY19zX3M6NjU5LGxjX3NfdTo2NTgsbGNwOjI2MixsZF9zOjQ0MCxsaW06MjYzLGxwY2Y6MjY0LGxwY3M6MjY1LGxwczoyNjYsbHNfYzozNjgsbHNfczozNjcsbHNzOjI2NyxsdjoyNjgsbWFfY2w6NTUxLG1hX2Zmcjo1NTIsbWFfZnVhOjU1NCxtYV9ncjo1NTMsbWFfaWw6NTczLG1haW46NzksbWFpbl9qc19yOjQ0MixtYWluX2pzX3JxOjQ0MyxtYl9zOjUwNyxtYmFwX2M6Mzg0LG1iY19hbGM6NzMyLG1iY19hc2w6NzMxLG1iY19jOjM3NSxtYmNfczozNzQsbWJnY2hpZF9ycjo3NDQsbWJnY2hpZF9yczo3NDYsCm1iZ3JfcmY6NjU3LG1iZ3JfcnI6Mzc5LG1iZ3JfcnM6Mzc4LG1ibGNfYzozNzcsbWJsY19zOjM3NixtYmxjaGlkX2M6NzQ1LG1ibGNoaWRfczo3NDMsbWJsY3JpZF9jOjc0MixtYmxjcmlkX3M6NzQxLG1ic19jOjM4MSxtYnNfcnI6MzgzLG1ic19yczozODIsbWJzX3M6MzgwLG1keF9jY3A6ODAsbWR4X2Njczo4MSxtZHhfY2NzdDo4MixtZHhfY3I6ODMsbWR4X2NzOjg0LG1keF9sczo4NSxtZHhfb2ZmOjg2LG1keF9zYzo4NyxtZV9iOjU1NSxtZV9jOjY4NyxtZV9mOjU1NixtZV9mYTo2ODgsbWVzdl9zOjUwOSxtbV9pZTo3MjAsbW1faXM6NzE5LG1yYzoyNjksbXJzOjI3MCxtc2E6MjcxLG1zdGk6ODgsbXN0cjo4OSxuX2N0OjcwMixuX3NyOjY5NyxuX3N3OjY5OCwibmNbMC05XSI6MjcyLG5jbDoyNzMsbmN0OjI3NCxuZDoyNzUsbmRuc2U6Mjc2LG5kbnNzOjI3NywibnBbMC05XSI6Mjc4LG5yOjI3OSxucmU6MjgwLG5yZXFzOjI4MSxucmVzZToyODIsbnJlc3M6MjgzLG5ycnBzOjkwLApucnM6Mjg0LG5zdGNwczoyODUsbnRjcGU6Mjg2LG50Y3BzOjI4Nyxud3A6Mjg4LG9hZDJzOjQyNSxvYWZzX3I6NDA3LG9hZnNfcnA6NDA5LG9haXNyOjQwNSxvYXIyczo0MTIsb2FycDJzOjQyNyxvY3NpX3o6OTEsb2N0azo2MjEsb2N0cDo2MjIsb2ZhcnA6NDIzLG9mZG86NDAwLG9mZG9zOjM5OCxvZnI6NDE3LG9mdnJwOjQyNCxvZ3NmX2M6Mzk1LG9nc2ZfczozOTQsb2hyX3I6NzY1LG9ocl9zOjc2NCxvbDo2LG9sX2k6OCxvbG9jX2U6ODMwLG9sb2Nfc2E6ODI5LG9sb2Nfc3M6ODI4LG9tZF9jOjQyMixvbWRfczo0MjEsb21wX2M6NDE5LG9tcF9yOjQxOCxvcGZjOjY4MCxvcHJfcjo0MTQsb3ByZF9zOjQxNSxvcHJnejJfZTo4NDIsb3ByZ3oyX2Y6ODQzLG9wcmd6Ml9zOjg0MSxvcHJnel9zOjY4OSxvcHJyOjQxNixvcjEwMGs6NDExLG9yX2ZlOjQyOSxvcl9mczo0MzAsb3JfaTozOTMsb3JfcDozOTcsb3JjaF9yX2Q6Njk0LG9yY2hfcl9zOjY5NSxvcmNoX3RfcG1kOjc3MCxvcmNoX3RfcG1zOjc2OSwKb3JjaF90X3RjZWQ6NzA4LG9yY2hfdF90Y2VzOjcwNSxvcmNoX3RfdGQ6NjkyLG9yY2hfdF90bWQ6ODA0LG9yY2hfdF90bXM6ODAzLG9yY2hfdF91ZDo2OTMsb3JjaF90X3VzOjY5NixvcmZiOjQwNCxvcmhfcjo0MDMsb3Jtazo0MjAsb3JxcGJfYTo4MzEsb3JxcGJfZTo4MzQsb3JxcGJfczo4MzIsb3JxcGJfdzo4MzMsb3Nkbzo0MDEsb3Nkb2Y6NDAyLG9zZG9zOjM5OSxvc29yOjM5NixvdmQyczo0MjYsb3Zmc19yOjQwOCxvdmZzX3JwOjQxMCxvdmlzcjo0MDYsb3ZyMnM6NDEzLG92cnAyczo0MjgscGFjOjI4OSxwYXJpOjUxNyxwYXQ6MjkwLHBiMF9zOjYxMSxwYl9ycV9hdXRoejo0NDYscGJfcnFfY3R0X2NmbTo0NDcscGJjX2U6NjYzLHBiY19zOjY2MixwYmZfYzo5MixwYnA6NDg2LHBicmVzdW1lOjI5MixwYnM6NDg3LHBidToyOTMscGM6NDg4LHBjYzo1NDYscGNlOjU0NyxwY3E6NTQ0LHBjcjo1NDUscGN1X2FwOjgwOSxwY3VfY2U6NTgxLHBjdV9jczo1ODAscGN1X3JlOjgwOCxwY3VfcnM6ODA3LApwY3Vfczo4MDUscGN1X3NlOjgwNixwZGE6Mjk0LHBkYzoyOTUscGRyOjI5NixwZToyOTcscGVtX3I6NDQ0LHBlbV9ycTo0NDUscGZqZTozMDkscGZycjozMDUscGZyczozMDYscGZzOjMwNyxwZnQ6MzA4LHBmdF9pOjkzLHBsX2M6MjkxLHBsX2k6NDg5LHBsX2ludDo0OTAscGxfcjo0OTEscGxfcmM6NzAzLHBsX3M6NDkyLHBsX3NzOjQ5MyxwbGV2OjMxMCxwbGpzX3I6NDQ4LHBsanNfcnE6NDQ5LHBsdnM6NzIzLHBvdF9hZjo5Nyxwb3RfYXM6OTYscG90X2NtZTo1NjkscG90X2NtZjoyOTkscG90X2NtczoyOTgscG90X2NzbWU6NTcwLHBvdF9jc21mOjMwMSxwb3RfY3NtczozMDAscG90X2lmOjMwNCxwb3RfaW5pdGY6OTUscG90X2lzYzozMDIscG90X2lzdDozMDMscG90X3NlOjU2NSxwb3Rfc2Y6NTY0LHBvdF9zczo1NjMscG90X3hlOjU2OCxwb3RfeGY6NTY3LHBvdF94czo1NjYscG90cGU6OTQscHB1Ojk4LHByb2Nfazo2MTMscHJvY19rX2w6NjE0LHBzOjMxMSxwc19iczo2NDcscHNfYzo0OTQsCnBzX2VzOjk5LHBzX3BhOjY4MSxwc19waWhmOjU5Nyxwc19waWhzOjU5Nixwc19yOjM2MCxwc19zOjM2MSxwc19zZ2Y6NTk1LHBzX3Nnczo1OTQscHNucjo0OTUscHNuczo0OTYscHNwZToxMDAscHNwczoxMDEscHRfbWU6ODE1LHB0X21mOjgxNCxwdF9tczo4MTMscHRfcGllOjgxMixwdF9waWY6ODExLHB0X3Bpczo4MTAscHRfcGlzaDo2MDYscHZyaTo1MTgscHdjOjMxMixxb2VzOjMxMyxyX2Nfc2xkOjQ1MCxyX2Nfc3JxOjQ1MSxyX2Nvbm5lY3RfYmFja2VuZDo0NTIscl9jb25uZWN0X2JhY2tlbmRfc3VjY2Vzczo0NTMscl9jb25uZWN0ZWQ6NDU0LHJfY29uc3RydWN0aW9uOjQ1NSxyX2Rpc2Nvbm5lY3RlZDo0NTYscl9lYmk6NjY0LHJfZW9kOjU4NSxyX2Y6NDU3LHJfb3I6NzEzLHJfcGw6MTA1LHJfcHM6MTA2LHJfcnFfcGx5OjQ1OCxyX3NfcGx5bHN0OjQ1OSxyX3NfdmlkOjQ2MCxyX3N0YXR1c191cGRhdGU6NDYxLHJfdHI6MTA3LHJfdnRjOjEwNCxyX3dpcGJjOjU4NCxyX3ducjo3OTIsCnJfd25zOjc5MSxyX3dycjoxMDMscl93cnM6MTAyLHJfd3NycDo2MDkscl93c3JyOjYwOCxyX3dzcnM6NjA3LHJjdl86MzE0LHJlbW92ZV9zcGxhc2g6NDYyLHJlcV86MzE1LHJmZzozMTYscmdyX25yZjo2MDAscmdyX3M6NTk5LHJwZTo4MTYscnBseV9ycWQ6NDYzLHJwczo4MTcscnNfczo1MDgscnNhZV9wYzozMzIscnNhZV9wZWo6MzM0LHJzYWVfcGo6MzMzLHJzYmVfcGM6MzIzLHJzYmVfcGVqOjMyNSxyc2JlX3BqOjMyNCxyc2VfcGM6MzIwLHJzZV9wZWo6MzIyLHJzZV9wajozMjEscnNlZl9wYzozMjkscnNlZl9wZWo6MzMxLHJzZWZfcGo6MzMwLHJzZXNfcGM6MzI2LHJzZXNfcGVqOjMyOCxyc2VzX3BqOjMyNyxyc2ZfcGM6MzE3LHJzZl9wZWo6MzE5LHJzZl9wajozMTgscnRpbWVfOjMzNSxydXJsX2U6MTA4LHJ1cmxfcjoxMDkscnVybF9zOjExMCxydXJscGU6MTExLHJ1cmxwczoxMTIsczN0X3I6NDcyLHNhX2Y6NjI0LHNhX2ZvOjYyNSxzYV9zOjYyMyxzYWZfZnA6NjY1LHNhZl9yOjY2NiwKc2FmX3JlOjY2NyxzYXNfaTo2MjYsc2NnYXRfZmZzOjU2MCxzY2dhdF9mczo1NTksc2RhX2Y6NjA1LHNkYV9pOjYwNCxzZGFfcmVjcDo2MDEsc2RhX3JzcHA6NjAzLHNkYV9yc3ByOjYwMixzZGxfZTo2NTUsc2RsX3M6NjU0LHNkbF90OjY1NixzZl9pOjExMyxzZ3NjX3I6NzgxLHNnc2Nfczo3ODAsc2hvd19jYWxsX3RvX2Nhc3Q6NDY0LHNocmJfYzoxNjUsc2hyb19jOjE3MCxzaHJvX3I6MTY3LHNocnBfYzoxNjksc2hycF9sZDoxNjYsc2hycF9wOjE2OCxzb19yOjExOSxzb19yZToxMTgsc29fcnE6MTIwLHNwYToxMTQsc3BkOjExNSxzcGY6MTE2LHNwbnJfaDo2NzIsc3Bucl9zOjY3MSxzcHI6Njc4LHNyX2U6MTE3LHNyX3A6MTIxLHNyX3BhOjEyMixzcl9yOjEyMyxzcl9yZToxMjQsc3JfczoxMjUsc3JfdWk6MTI2LHNydDozMzYsc3Nfcjo0Njksc3Nfczo0Njgsc3Nfc2Zfczo3MjQsc3Nfc2Zfdzo3MjUsc3NucjoxMjcsc3NuczoxMjgsc3RjcF86MzM3LHN0ZV9hbGY6NTg5LHN0ZV9jOjU5MiwKc3RlX2VsZjo1OTAsc3RlX2Y6NTkxLHN0ZV9mdGw6NTg4LHN0ZV9sOjU4NyxzdHRzX2I6NTgyLHN0dHNfZjo1ODMsc3R2c19mOjY5MSxzdHZzX3M6NjkwLHN2ZTo0NjYsc3ZzOjQ2NSxzd19mYjo1MTAsc3dfaTo3ODMsc3dfcjo0OTcsc3dfczo0OTgsc3dzbnI6ODE5LHN3c25zOjgxOCxzd3NwZTo4MjEsc3dzcHM6ODIwLHRjcF86MzM4LHRlbnhfbDo0NzEsdGVueF9yOjQ3MCx0aDBfaDo2MTAsdGgwX25jOjY3NSx0aDBfbmU6Njc2LHRoMF9ucjoxMjksdGgwX25zOjY3NCx0aF9jXzE6NzA5LHRoX2RfMTo3MTAsdGhfbF8xOjEzMCx0aF9zXzE6NTc4LHRoc2IwX2ZyOjEzNCx0aHNiMF9uZToxMzEsdGhzYjBfbnI6MTMyLHRoc2IwX25zOjEzMyx0dGM6MzM5LHR0Y3I6MzQwLHVpX2w6MTM1LHVpYmZfYzoxNDEsdWliZl9yOjE0Myx1aWJmX3M6MTQyLHVpc2ZfcjoxNDQsdWl3d2FfYmM6NjE5LHVpd3dhX2M6MTM2LHVpd3dhX2U6MTQwLHVpd3dhX3ByOjEzOSx1aXd3YV9yOjEzOCx1aXd3YV9zOjEzNywKdWxyc19jOjM3MCx1bHJzX3M6MzY5LHVua25vd246MCx1cjozNDEsdmM6NjgyLHZjYzo1MTksdmNpOjUyMCx2ZGE6MzQyLHZkZXVjOjM0Myx2ZGV1cjozNDQsdmRldXM6MzQ1LHZkbnM6MzQ2LHZmYjo1MjEsdmZwOjM0Nyx2aGI6NTIyLHZpcjozNDgsdmlyYzozNDksdmlzX2E6NTAwLHZpc19yOjQ5OSx2aXNmOjE0NSx2aXNpOjE0Nix2aXNyOjE0Nyx2aXNzOjE0OCx2b3pfY3g6MTc5LHZvel9lb3U6MTg3LHZvel9lcnI6MTg0LHZvel9lcnJfbXM6MTgwLHZvel9lcnJfbm1wOjE4MSx2b3pfZXJyX29mZjoxODMsdm96X2Vycl91YXI6MTgyLHZvel9mdHI6MTg4LHZvel9mdmM6MTg5LHZvel9scl9sc286MTg1LHZvel9scl9tZDoxODYsdm96X21mOjE3Mix2b3pfbXM6MTcxLHZvel9ycWY6MTc0LHZvel9ycXM6MTczLHZvel9zZjoxNzgsdm96X3NzOjE3Nyx2b3pfdnA6MTc1LHZvel92dDoxNzYsdnBsOjM1MCx2cjozNTEsdnIxMDBrOjE0OSx2cmJfZjo1MDEsdnJjOjM1Mix2cmVxOjM1Myx2cmZiOjE1MCwKdnJpOjksdnJyOjM1NCx2cnJfcjo0NzQsdnJyX3M6NDczLHZycmg6MTUxLHZzaXNmYjoxNTIsdnNpc3I6MTUzLHZzaXNyaDoxNTQsdnNpc3M6MTU1LHZ0YTozNTUsdnRycjo1MjMsdnRyczo1MjQsd19zdDoxNTYsd2FzbV9mYTo4MjYsd2FzbV9mZXJyOjgyNyx3YXNtX2Z3OjgyNSx3YXNtX3M6ODI0LHdjOjM3Mix3Y3I6MzU2LHdlYmZlX2U6NzI4LHdlYmZlX2dibV9yOjc1OCx3ZWJmZV9nYm1fczo3NTcsd2ViZmVfZ2xfcjo3NjIsd2ViZmVfZ2xfczo3NjEsd2ViZmVfZ3Nfcjo3NjAsd2ViZmVfZ3Nfczo3NTksd2ViZmVfZ3VzX3I6NzMwLHdlYmZlX2d1c19zOjcyOSx3ZWJmZV9ndm1fczo3NjMsd2ViZmVfczo3Mjcsd2ZmZTozNTcsd2ZmczozNTgsd2ZnOjM1OSx3bl9lOjE2Mix3bl9sOjM3MSx3bl9yOjE1OSx3bl9ycDo0Nzgsd25fczoxNjAsd25fc2w6MTYxLHdubDoxNTgsd25sX2Q6ODIzLHdubF9tcDo1NzEsd25sX3BkOjgyMix3bmxyOjU3Mix3bmxzOjE1Nyx3bnBlOjE2Myx3bnBzOjE2NCwKd3A6NDc5LHdzX2NlOjE5MCx3c19zczoxOTEsd3Nfc3NyOjE5Mix5Y2VjOjU0OSx5Y2VmOjU0OCx5Y2Z0cjo2NDUseWNpZjo1NTAseWNtc2Y6NjQ0LHljcmM6NzE4LHljcmY6NzE3LHljcnM6NzE0LHljcnNjOjcxNSx5Y3J1ZWE6NzE2fTtfLnJhKCJ5dExvZ2dpbmdHZWxTZXF1ZW5jZUlkT2JqXyIsXy51Lnl0TG9nZ2luZ0dlbFNlcXVlbmNlSWRPYmpffHx7fSk7dmFyIGJxPV8udS55dExvZ2dpbmdMYXRlbmN5VXNhZ2VTdGF0c198fHt9O18ucmEoInl0TG9nZ2luZ0xhdGVuY3lVc2FnZVN0YXRzXyIsYnEpOwp2YXIgJHA9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmo9MH10aWNrKGEsYixjLGQpe2NxKHRoaXMsYHRpY2tfJHthfV8ke2J9YCl8fChjPXt0aW1lc3RhbXA6YyxjdHRBdXRoSW5mbzpkfSxiPXt0aWNrTmFtZTphLGNsaWVudEFjdGlvbk5vbmNlOmJ9LF8ueCgieW91dHViZV93ZWJfY3NpX3RpY2tzX21pZ3JhdGlvbiIpJiYoYT1ac1thXSxhIT09dm9pZCAwJiYoYi50aWNrPWEsZGVsZXRlIGIudGlja05hbWUpKSxfLkVwKCJsYXRlbmN5QWN0aW9uVGlja2VkIixiLGMpKX1pbmZvKGEsYixjKXt2YXIgZD1PYmplY3Qua2V5cyhhKS5qb2luKCIiKTtjcSh0aGlzLGBpbmZvXyR7ZH1fJHtifWApfHwoYT1PYmplY3QuYXNzaWduKHt9LGEpLGEuY2xpZW50QWN0aW9uTm9uY2U9YixfLkVwKCJsYXRlbmN5QWN0aW9uSW5mbyIsYSx7Y3R0QXV0aEluZm86Y30pKX1qc3BiSW5mbygpe31zcGFuKGEsYixjLGQpe3ZhciBlPU9iamVjdC5rZXlzKGEpLmpvaW4oIiIpO2lmKGR8fCFjcSh0aGlzLGBzcGFuXyR7ZX1fJHtifWApKWEuY2xpZW50QWN0aW9uTm9uY2U9CmIsXy5FcCgibGF0ZW5jeUFjdGlvblNwYW4iLGEse2N0dEF1dGhJbmZvOmN9KX19O3ZhciAkcyxhdDskcz13aW5kb3c7YXQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnRpbWluZz17fTt0aGlzLmNsZWFyUmVzb3VyY2VUaW1pbmdzPSgpPT57fTt0aGlzLndlYmtpdENsZWFyUmVzb3VyY2VUaW1pbmdzPSgpPT57fTt0aGlzLm1vekNsZWFyUmVzb3VyY2VUaW1pbmdzPSgpPT57fTt0aGlzLm1zQ2xlYXJSZXNvdXJjZVRpbWluZ3M9KCk9Pnt9O3RoaXMub0NsZWFyUmVzb3VyY2VUaW1pbmdzPSgpPT57fX19O18uc3E9JHMucGVyZm9ybWFuY2V8fCRzLm1velBlcmZvcm1hbmNlfHwkcy5tc1BlcmZvcm1hbmNlfHwkcy53ZWJraXRQZXJmb3JtYW5jZXx8bmV3IGF0O3ZhciBscT1fLkZuKCk7Xy5yYSgieXRfbG9nZ2luZ19zY3JlZW4uZ2V0Um9vdFZlVHlwZSIsXy5ncSk7Xy5yYSgieXRfbG9nZ2luZ19zY3JlZW4uZ2V0Q3VycmVudENzbiIsXy5pcSk7Xy5yYSgieXRfbG9nZ2luZ19zY3JlZW4uZ2V0Q3R0QXV0aEluZm8iLF8ua3EpO18ucmEoInl0X2xvZ2dpbmdfc2NyZWVuLnNldEN1cnJlbnRTY3JlZW4iLF8ubXEpO3ZhciB3cSxycTt3cT0hMTtycT0hMTtfLmJ0PSgwLF8uQ2EpKF8uc3EuY2xlYXJSZXNvdXJjZVRpbWluZ3N8fF8uc3Eud2Via2l0Q2xlYXJSZXNvdXJjZVRpbWluZ3N8fF8uc3EubW96Q2xlYXJSZXNvdXJjZVRpbWluZ3N8fF8uc3EubXNDbGVhclJlc291cmNlVGltaW5nc3x8Xy5zcS5vQ2xlYXJSZXNvdXJjZVRpbWluZ3N8fF8uZ2QsXy5zcSk7dmFyIGR0OwpfLmN0PV8uVmkoZnVuY3Rpb24oYSxiLGMsZCxlLGYsaCl7aWYoIV8ueCgid2ViX2NzaV9hY3Rpb25fc2FtcGxpbmdfZW5hYmxlZCIpfHwhXy5rbyhmKS5hY3Rpb25EaXNhYmxlZCl7dmFyIGs9aD8uc3BhblN0YXR1cyxsPWg/LnJvb3RTcGFuTm9uY2U7bGV0IG09Xy5ubyhmKTttLmdlbFNwYW5zP20uZ2VsU3BhbnNbYV09ITA6bS5nZWxTcGFucz17W2FdOiEwfTtYcysrO2E9e3NwYW5OYW1lOmEsc3Bhbkxlbmd0aFVzZWM6U3RyaW5nKE1hdGgucm91bmQoYioxRTMpKSxzcGFuTm9uY2U6WHMscm9vdFNwYW5Ob25jZTpsfHxYc307ayYmKGEuc3BhblN0YXR1cz1rKTtkJiYoYS5zcGFuSW5mbz1kKTtlJiYoYS5wYXJlbnRTcGFuTm9uY2U9ZSk7YyYmKGEuc3BhblN0YXJ0VGltZVVzZWM9U3RyaW5nKE1hdGgucm91bmQoYyoxRTMpKSk7Yz1hO18udW8oZnx8IiIpLnNwYW5bU3RyaW5nKGMuc3Bhbk5hbWUpXT1jO2Q9Xy5ubyhmKTtkLmdlbFNwYW5zfHwoZC5nZWxTcGFucz17fSk7Xy55bihkLmdlbFNwYW5zLGMpOwpkPV8ucG8oZik7Zj1fLmtvKGYpLmN0dEF1dGhJbmZvO2FxKCkuc3BhbihjLGQsZixoPy5xdSk7cmV0dXJuIGMuc3Bhbk5vbmNlfX0pO2R0PXdpbmRvdztkdC55dGNzaSYmKGR0Lnl0Y3NpLmluZm9HZWw9Xy56cSxkdC55dGNzaS50aWNrPV8uQXEpO3ZhciBldDtldD1uZXcgXy5jcztfLmZ0PWV0LnByb21pc2U7KGZ1bmN0aW9uKGEpe18uQXEoIm1tX2lzIik7dmFyIGI9bmV3ICRyO18uVWQoYik7Xy54KCJ3ZWJfZW5hYmxlX2xhenlfY3NzIikmJihuZXcgUHIpLmluaXQoKTtiLmVuKCgpPT57ZmgoKTtfLkFxKCJtbV9pZSIpO2E/LigpfSk7Yi5abihRZy5FUlJPUiwoYyxkLGUpPT57Xy5VaShFcnJvcigiSGFgIitkKyJgIitlKSl9KX0pKCgpPT57ZXQucmVzb2x2ZSgpfSk7Cl8uX01vZHVsZU1hbmFnZXJfaW5pdGlhbGl6ZT1mdW5jdGlvbihhLGIpe2lmKCFfLlFkKXtpZighXy5UZClyZXR1cm47Xy5VZChfLlRkKCkpfV8uUWQuVGgoYSxiKX07Cl8uX01vZHVsZU1hbmFnZXJfaW5pdGlhbGl6ZSgncm9vdC9zeTAvbjczcXdmOjEvc3kxL3N5MjozL2l1VDVPYzo0L3N5My9VVUpxVmU6MSw2L3N5NS9zeTQ6OC9NcEp3WmM6MSw2LDkvc3k2L3N5Nzo4L3N5ODpjL3N5Yy9zeWc6YixlL3N5aDpmL3N5YS9zeTFmL3N5M2M6aS9zeTNxOmkvc3k1YS9zeTU2L3N5NTgvc3k1YjpqLGssbCxtLG4vc3k1OTpqLG0sbi9zeTNkL3N5OTozLGMsZyxoL3N5ay9zeTU3L3N5YjpzL3N5ZDo4LGUvc3k1YzpqLGwsbSxuL3N5NWU6ayxxLHcvc3llL3N5Zi9zeWkvc3lqL3N5bC9zeW0vc3kxaC9zeTFlL3N5MWw6MTUvc3kzODoxNCwxNi9zeXA6MSw5LGMvc3l1OmMvc3lzOmQsMTgsMTkvc3kxaS9zeTJkL3N5Mms6MWEvc3kyajoxZC9zeTJ3OjFhL3N5MTkvc3kxcC9zeTIxL3N5Mm0vc3kybjoxai9zeTFiL3N5MXovc3kydS9zeTFrOmMsdiwxaCwxaSwxaywxbCwxbSwxbi9zeTJsL3N5MXU6MWcsMW4vc3kzMS9zeXY6Yy9zeTEwOjE4L3N5ejoxdC9zeXk6MWEvc3kzNjpjL3N5M2Y6Yy9zeTFtOmIsMWYsMXEsMXIsMXMsMXUsMXYsMXcsMXgvc3kyci9zeTNlL3N5M2E6aC9zeTEyOjFhL3N5M2c6MXUvc3kzaDoxOS9zeTFxOmcsaixxLDFvLDFwLDF5LDF6LDIwLDIxLDIyLDIzLDI0L3N5M2k6MXovc3kzbToxZS9zeTQzOjFlL3N5NDQ6MWUvc3k0ZjoxZS9zeTQ3OjFlL3N5NGc6MWUvc3k0aC9zeTRpOjE5L3N5eDoxYS9zeXQ6MWEvc3lyOjJnL3N5MTg6MWQsMXMsMmYsMmgvc3kyby9zeTMyL3N5M2I6MTksMW8sMXUvc3l3OjE4L3N5MTc6MjEsMm0vc3kzay9zeTFuOjFvLDFzLDJoLDJuLDJvL3N5M2o6MXcsMmssMmwsMnAvc3kxdi9zeTF5L3N5MnM6MTYvc3kyei9zeTFkL3N5M3Q6MTkvc3k0ajpqLGsscSwxZiwxdSwxdywxeCwyaywydi9zeTRkOmMsMWIvc3k0azoxOCwxcy9zeTQxOmMvc3k0MjoxOSwzMC9zeTJjOjExLDI1LDI2LDI3LDI4LDI5LDJhLDJiLDJjLDJkLDJlLDJpLDJqLDJxLDJyLDJzLDJ0LDJ1LDJ3LDJ4LDJ5LDJ6LDMxL3N5MWo6MTYvc3kyNDozMy9zeTRsOjE5LDMwL3N5MjM6MW8vc3kyNS9zeTJpOjE5LDM3L3N5NDYvc3k0cTozMiwzNiwzOCwzOS9zeW46MTcsMWMsMzQsMzUsM2Evc3kzMy9zeTJ2OjE4L3N5MWE6ayxtLHQsdSwyNSwyZiwybCwzYywzZC9zeTRuL3N5NG86M2Yvc3kzeC9zeTN6L3N5NHA6aixrLDFhLDFzLDF1LDF3LDF4LDNnLDNoLDNpL3N5Mjkvc3kzbDoxZS9zeTFvOjFtL3N5Mmg6M20vc3kxNDoxdCwyMi9zeTJmOmosayxxLDFzLDF3LDF4LDIzLDNvL3N5Mmcvc3kzcy9zeTQwOjFvL3N5M3Ivc3kzdS9zeTN2L3N5MWcvc3kzcC9zeTN3OmIsaiwxYSwxcywxdywxeCwyMywzaCwzdi9zeTN5OjFlL3N5M286MjUsMmksMmwsMncsM2ksM3AsM3IsM3QsM3UsM3csM3gsM3ksM3ovc3kxcjoyaywycywydCwzMSwzbiwzcSwzcyw0MC9zeTRzL3N5MnEvc3kyeS9zeTJ0OjFuLDNkL3N5NHUvc3k0dDoxZS9zeTI3OjFiLDF2LDF3LDNxLDQ2LDQ3L3N5MnA6MWUvc3kzbjoxZS9zeTQ1OjFlL3N5MjYvc3k0ODoxZS9zeTQ5OjFlL3N5NGEvc3k0Yjo0Zi9zeTRjOjNvLDRnL3N5Mjg6MjUsMjYsMjcsMmIsMmksMnAsMncsMnksNGMsNGQsNGUsNGgvc3k0ZToxZS9zeTJhOmssMjgsMnYsMzgsMzksNGEsNGIsNGksNGovc3kxdC9zeTRtOjE2L3N5MmI6MzIsMzUsMzgsMzksM28sNGwsNG0vc3kyZTozayw0MS9zeTIyL3N5MzAvc3k1MjoxOSwxcywyMy9zeTU0OjFhL3N5Mzcvc3kyMDoxaS9zeTM1OjFzLDF1LDF3LDJnL3N5MzQ6aywxbiwxeiwydCwzYyw0dCw0dSw0di9zeTE1OjF1L3N5cTp3LDEwLDNiLDNlLDNqLDNsLDQyLDQzLDQ0LDQ1LDQ4LDQ5LDRrLDRuLDRvLDRwLDRxLDRyLDRzLDR3LDR4L3N5NHcvc3lvOm8scCxyLDR5LDR6L3N5MTE6ZCwxOC9zeTEzOjF1LDIyLDUxL3N5MTY6Mm0vc3kxdy9zeTUxOjFmLDNwLDQ2LDRyLDR2L3N5Mngvc3kxeDo0eSw1NCw1NSw1Ni9zeTR2OmosayxxLDFhLDF3LDIzLDNyLDQ1LDR6L3N5Mzkvc3kxczo0cS9zeTR6OjFlL3N5NWQ6MWUvc3k1MDpqLHEsMXksMjgsMmEsMmIsMmksMmwsM28sNWEsNWIsNWMvc3k0cjoxZS9zeTR4OmssMW4sMXosNHYvc3k0eTpzLDJ1LDNjL3N5NTMvc3k1NToxOCwxcy9zeTFjOjQseCx5LDUwLDUyLDUzLDU3LDU4LDU5LDVkLDVlLDVmLDVnLDVoLDVpL3N5NWYvc3k1Zy9zeTVpL3N5NWsvc3k1bC9zeTVtL3N5NW4vc3k1bzoxOC9zeTVqL3N5NWg6NCx6LDUwLDU4LDVhLDVoLDVtLDVuLDVvLDVwLDVxLDVyLDVzL3N5NXA6NWosNXQvYmFzZTpkLHIsdSx2LHkseiwxMCwxMSwxMiwxMy9zeTVxL3N5NXIvc3k1czpjLGgvc3k1dDoybSwzbiwzbyw0eC9zeTdkL3N5NXU6MWwsMm8sNXIsNjAvc3k3cS9zeTZ0L3N5ODU6MTYvc3k4NDpqLDFyLDF3LDIzLDI4LDJpLDM1LDN0LDUzLDVpLDYzLDY0L3N5NXY6MTMsNTEsNjIsNjUvc3k2Yy9zeTZzOjQxL3N5ODY6MzUsNjQsNjgvc3k3bDpqLGsscSwxZSwxZiwxdSwxdywzbywzdSwzdi9zeTY3L3N5NXc6MzIsMzgsNDUsNXosNjYsNjcsNjksNmEsNmIvc3k1eC9zeTdlOjNkLDNtLDYwL3N5OHM6NmUvc3k5czoxZS9zeTV5OmYsaiwxaywxdywyMiwyMyw1YSw1biw2Ziw2Zy9zeTdyOjE0LDR0L3N5NmI6MnQsMzMvc3k1ejozNSwzZiwzayw0MSw0cCw2aSw2ai9zeTd6OjFlL3N5NjI6aC9zeThuOjFvLDFzL3N5NjA6MWIsMmQsMm4sNDEsNDYsNDcsNmwsNm0sNm4vc3k4bTpqLHEsMWcsMXcsMXgsMjMsNm4vc3k4bzoxNi9zeTc3L3N5Nnc6aiwxciwxdywyOCwyYSwyYywyaSwzayw1Yiw2ci9zeTdpL3N5OGwvc3k2MTp6LDEyLDJwLDJyLDM1LDNkLDQxLDR1LDU5LDVpLDV5LDV6LDYxLDZtLDZwLDZxLDZzLDZ0LDZ1L3N5NjM6MjUsMmksNGUvc3k2NDprLDI1LDI3LDJkLDJpLDJxLDRnL3N5NmQvc3k2OToxbiw0Ziw2Mi9zeTY4OjFlLDZ6L3N5N3Avc3k4YS9zeThjOjFlL3N5NjU6MWIsMjksMnAsM2csNmssNnUsNnksNzAsNzEsNzIsNzMvc3k2ei9zeTY2OjFjLDJrLDJyLDM1LDNzLDQwLDR3LDVmLDVnLDVuLDVvLDV6LDZmLDZqLDc1L3N5N286aixrLDFhLDFxLDF3LDF4LDF6LDNnL3N5Nmsvc3k2YTo1Nyw2eiw3MSw3Nyw3OC9zeThrOjFlL3N5OGY6MWUvc3k2ZToxNSwxdywyaSwzMCwzbyw0OSw0YSw0aiw0eiw3YSw3Yi9zeTZmOjFvLDFzLDF3LDI4LDJhLDJ1LDM1LDNrLDNyLDV6LDZlLDZxLDZyL3N5N2o6YywxaCwxaiwzNy9zeTdrOjFvLDM4LDM5LDZhL3N5Nmc6MWMsM2EsNDQsNGwsNW8sNXAsNjEsNjcsNzgsN2UsN2Yvc3k2aDozZSw0Miw0cSw2Myw2OC9zeTZpOmoscSwxNiwxOCwxdywzNS9zeTZyL3N5Nmo6MjUsMjcsMmksM28sN2UsN2ovc3k2bDoxNywyMywyOCwyaywydCwzMSwzayw1cS9zeThiOjJkL3N5ODA6MmQsN2ovc3k2eToxYiwyNSwyNywyaSwycCw0Yyw2MSw3Myw3bSw3bi9zeTZ4OjJiLDJlLDJ3LDRoLDVoLDcyLDdvL3N5Nm06MmEsNDEsN3Avc3k3eDoxZS9zeTd5OjJpLDdyL3N5OHI6MWIsMWcsMXUsMXcsMnAsM3MsNGMsNmwsN24sN3Mvc3k2bjoyYyw0MSw0dSw1OSw3NSw3byw3dC9zeThoOjFlL3N5Nm86MmksN2UsN3Yvc3k2cDoxaywxeiwzNSwzbyw0bSw0diw1bS9zeTZxOmssMjUsMjgsMmkvc3k2dS9zeTZ2OmosMTgsMXcvc3k3My9zeTcwOjFxLDFzLDF3LDJzLDJ0LDMxLDQ2LDQ3LDVnLDgxL3N5NzEvc3k4OToxZS9zeTcyOmosaywxeSwyaSwzMSwzZywzbyw1Niw1aSw2aSw3ciw4NC9zeTc0OjF3LDI4LDJpLDNyL3N5NzU6aixrLHEsMWEsMXcsM2csM3Qvc3k3NjoyNSwyaSw3My9zeTc4OmoscSwxNiwxbywxdSwxdywyYSwyaSwzNSwzbyw2ci9zeTc5OjJpLDdlLDdmL3N5ODI6MWUvc3k4MzoxZS9zeTdhOjFwLDF4LDIwLDJiLDJqLDJ3LDN4LDRhLDRiLDRkLDVoLDV3LDV5LDY2LDZ0LDcwLDcyLDdhLDd2LDhiLDhjL3N5N2I6NmYsN28sN3osOGMvc3k3YzpxLDFrLDF3LDF4LDJmLDMxLDZkLDZnLDZqL3N5N2Y6NDEsN2wvc3k3Zzo0MS9zeTdoOmosMXksMXovc3k3bToyNSwyNiwyaS9zeTduOmoscSwxOCwxdywxei9zeTdzL3N5N3U6MjAvc3k3dDoyNSwzbyw1aCw4bCw4bS9zeTd2OjFiLDFlLDI1LDJwLDhsL3N5N3c6MW8sNmwsN24sN3Mvc3k4MToyNSwyaSw0aCw4Yiw4Yy9zeTg3OmosMXksMXosMjAsNWgvc3k4ODo3Nyw4NS9zeThkOjExLDJyLDM0LDM1LDQxL3N5OGU6MmksMzgsN2IsN2Uvc3k4ZzoxZSwyNSwydy9zeThpOjFjLDMyLDNvLDdlL3N5OGo6MzgsNDEsN2Uvc3k4cToyNSwyYiwyaSwycCw4Yy9zeThwOjQxLDZ1LDZ6LDdwLDd0LDh5L3N5OHQ6NG8sN2Uvc3k4dToxYiwyNSwyNiw0Mi9zeTh2OjF5L3N5OHg6MWUvc3k4dzpqLHEsMXcsMmksM2csOTMvc3k4eTprLDFiLDI1LDJwLDYxLDgzL3N5OHo6aiwxdywyYSwyaSwzdCw4My9zeTkwOjF3LDJpLDNnLDgxLDkzL3N5OTE6aixxLDFiLDF5LDJlL3N5OTI6aywxYiwxeSwyMywyNiwycCw3ciw3eiw4NCw4Ni9zeTkzOjExLDJvLDJ0LDQwLDhkL3N5OTQ6aixrLHEsMWYsMXYsMXcsMXgsMjMsMnosNjEvc3k5NToyNSw0Miw4bS9zeTk2OmosayxxLDFlLDFvLDF5LDMxLDR1LDU5LDYxL3N5OTc6aixrLDF6LDNvLDR2LDVnL3N5OTg6MXcsMmEsMzUsNG0sNTQsNnIvc3k5OToxdywyNCwyYSwydywzNSwzdywzeCw0bSw1NCw2ci9zeTlhOmosaywxdSwxdywzNi9zeTliOmosayxxLDF5LDIzLDJ6LDN0LDQzLDZ5LDdtL3N5OWM6MjUsMjYsMjcsMmIsN3Qvc3k5ZDo3by9zeTllOjFvLDFzLDF3LDIzLDRzLDZiL3N5OWY6aywyNSw3dC9zeTlnOmssMjUsMzEsM2wsM3IsNHUsNTksNWQvc3k5aDoyNSwyNywyaS9zeTlpOmssMTEsMjUsMjgsMmksM3IsNGYsNXkvc3k5ajpqLGsscSwxeSwybCwyciwzMSw0dSw1OS9zeTlrOjI3LDQxL3N5OWw6MXcsMjgsMmksMzEsM3IsNHUsNTkvc3k5bTprLDI1LDJsLDMxLDR1LDU5L3N5OW46MjUvc3k5bzprLDI1LDJ0LDMxLDM1LDNpLDNvLDN6LDR1LDU5L3N5OXA6MjUsMm8sMzEsNHUsNTkvc3k5cToyNSwyNyw3dCw4Yy9zeTlyOmssMjUsMmYsMmwsM2wsNXMsNmcvc3k5dDoyaSw1Yy9zeTl1OnMsMXMsMXcsMjMsMnUsM2MsNTIsNmQvc3k5djozNSwzayw0MSw2ai9zeTl3OjQwL3N5OXg6aixxLDE4LDF3LDM1LDRtLDU0L2Jhc2Vfc3luY19tb2RfY2h1bms6NXYvcjlLTWpiOjhqL1ZjR1M4OjhrL3pDa0tCYzoyeC9pNlhvbWU6OHYvbk81ZFRkOjd4L090S1NKZTozai9udlg0VmI6M3kvRGx2RjFkOjQxLGFiL2Y5MHRDYjo3bC9WYlhyVWU6OGcsYWMsYWQvcEVTbERiOjhpL0ttQmZjYzo5NS9TVTN1aTo5aS9SYXE0Y2I6OHAvakJpc2FmOjU1L1B6VWRaYjo0OC9xVExkUTo4bi9XcWxjVmI6OG8vUUhBdGVmOjh0LGFjL1VBOEdTZTo4eCxhYy9MVmlNTTo3NixhYi9wZXZ0dmM6OWYvaXpqbVA6OWcvamd4OG1lOmExLGFjL3VobExHYjo2cy9GcUhjR2U6OWIvY3lDVmxkOjRpL29QcDVMZTo4Mi9BNG9BVmU6OTcvT3NtNDljOjg2L1BEdjZNZTo5OSxheS9vc1R0eGU6OHEvcVZEZ0JkOjhyL0hEbVUxZTo3dC9MSFA3SmQ6N28vVHUzTUI6N3AsYjMvRnNvWHpjOjdxLGFjLGI0L2lhaTJpYzo5Mi90UGdZemQ6ODcvYTY2TGZlOjk0L0lXcFVyZjo4OC9kSGNvSWY6OTYvb1hCV0hmOjk4L0lUdUNVYjo2cC9OcjBrZmU6ODUvYWNGdVZjOjhzLGJkL21tMk4wYzo5aC9oYjBXbWY6N2QvaE5lbHZkOmEzL3I1Q09IZjo3aS9aUUt4MToycS9wZTJvamI6MzIsYTcsYmovaGFvdU9lOjg5L2pKZkNvZDphMixhYi93U240YWM6NnYsYWMsYXQsYmMvaGExSWk6OHkvT003eG9iOjh6LGFjLGIyLGI0LGJvL0ZpTkdPYzo2ayxhYy9Xc2lNaWM6Nm8sYWMvVUFNNW06NzQsYnEvRDlXTWQ6NncveTlub09iOjZ4LGJqL1cwZ1NLYjo2OSxhYy9Id2xPaGQ6NjUvaGpyTm46ODAvdkRjazFkOjRuLGJrL0h4amxiYjozYixiay9uMERIZzo3eS9uQnZCeWQ6OWosYjIvZURVRG9jOjlrLGIzL1ZPVVA5ZDo4ZCxidy9iemowamQ6OWEsYWIsYzMvdVJJYUM6OW0sYjIvY2dTRW9iOjljL1hlUlhCZDo5ZC9zNjQ5ajo5cS91U3hkbmI6OXMvV2ZmNkJkOjd1LGFjLGIyLGIzL1UzbXpzZDo5dC95UDBKQmQ6OXUvUnFhSnNkOjl2L0UzSGViYzo5dy9wMXZFU2Q6YTAvQVQ4TFRlOjl5L3NET1RHZTo5bi9lY3VQQWM6NmgvTlFjMUlkOjhmL0ZRZElKZTo5ei9ibFpaWGU6OGgsYWMvZ0FPWXg6NmEvSU5jMUVmOjdnLGJrLGNtL2xQV2prYjo0byxhYy9vakdUNmQ6OHUvZDJMVHhiOjRrLGF2L0haNDFPZDo4dyxiay9lM1V0Vzo4ZSxiMy9hVTFHVGI6OTAsY28vSWJ4eE9lOjkxL3ZpVVdWOjU4L0R2WkM5OjlsL2ZBemRUOjZjLGJrLGJ2LGJ3LGNtL2ZnbEpOYjo4YSxjbS9pbFFTQWY6OW8vVWtadVdiOjlyLGFjL2w4YUtEYjo3ay9jbnE1UWI6OXgsYjIvbjlESkJmOjd3L2ZLRThxZDo3Yy9uN2VvMjo5cC9SWmVrSjo5ZS9RbWtNRTo3aCxhYy9OdWlsdWU6NzksYWEsYWosYWssYnksYnosY28sY3EvbWVIOUViOjUsNXQsYWEsYWssYnksYnosY28sY3EsY3YveUVmTkZiOjVqLGFqLGQ5L3I3OERyYjo1dSxhaixkOScsWydzeTEnLCdzeTUnLCdzeTYnLCdzeTcnLCdzeTgnLCdzeWMnLCdzeWcnLCdzeWgnLCdzeWEnLCdzeTknLCdzeWsnLCdzeWInLCdzeWQnLCdzeWUnLCdzeWYnLCdzeWknLCdzeWonLCdzeWwnLCdzeW0nLCdiYXNlJ10pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgUHQsUXQsVnQ7Xy5NdD1mdW5jdGlvbihhKXt2YXIgYj1fLmpmO2ZvcihsZXQgYz0wLGQ9YS5sZW5ndGg7YzxkO2MrKyliLkFhKGFbY10pfTtfLk50PWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8uamYuR2EoYSw0LGIpfTtfLk90PWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgXy5CZihmdW5jdGlvbihiLGMpe2MoYSl9KX07UHQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhLmNsYXNzTmFtZT09InN0cmluZyI/YS5jbGFzc05hbWU6YS5nZXRBdHRyaWJ1dGUmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn07UXQ9ZnVuY3Rpb24oYSxiKXt0eXBlb2YgYS5jbGFzc05hbWU9PSJzdHJpbmciP2EuY2xhc3NOYW1lPWI6YS5zZXRBdHRyaWJ1dGUmJmEuc2V0QXR0cmlidXRlKCJjbGFzcyIsYil9OwpfLlJ0PWZ1bmN0aW9uKGEsYil7YS5jbGFzc0xpc3Q/Yj1hLmNsYXNzTGlzdC5jb250YWlucyhiKTooYT1hLmNsYXNzTGlzdD9hLmNsYXNzTGlzdDpQdChhKS5tYXRjaCgvXFMrL2cpfHxbXSxiPV8uc2IoYSxiKT49MCk7cmV0dXJuIGJ9O18uU3Q9ZnVuY3Rpb24oYSxiKXtpZihhLmNsYXNzTGlzdClhLmNsYXNzTGlzdC5hZGQoYik7ZWxzZSBpZighXy5SdChhLGIpKXtsZXQgYz1QdChhKTtRdChhLGMrKGMubGVuZ3RoPjA/IiAiK2I6YikpfX07Xy5UdD1mdW5jdGlvbihhLGIpe2EuY2xhc3NMaXN0P2EuY2xhc3NMaXN0LnJlbW92ZShiKTpfLlJ0KGEsYikmJlF0KGEsQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGEuY2xhc3NMaXN0P2EuY2xhc3NMaXN0OlB0KGEpLm1hdGNoKC9cUysvZyl8fFtdLGZ1bmN0aW9uKGMpe3JldHVybiBjIT1ifSkuam9pbigiICIpKX07Cl8uVXQ9ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYSE9PSJmdW5jdGlvbiIpaWYoYSYmdHlwZW9mIGEuaGFuZGxlRXZlbnQ9PSJmdW5jdGlvbiIpYT0oMCxfLkNhKShhLmhhbmRsZUV2ZW50LGEpO2Vsc2UgdGhyb3cgRXJyb3IoIk9hIik7cmV0dXJuIE51bWJlcihiKT4yMTQ3NDgzNjQ3Py0xOl8udS5zZXRUaW1lb3V0KGEsYnx8MCl9O1Z0PWZ1bmN0aW9uKGEpe2Euaj1fLlV0KCgpPT57YS5qPW51bGw7YS5vJiYhYS5CJiYoYS5vPSExLFZ0KGEpKX0sYS5JKTt2YXIgYj1hLkQ7YS5EPW51bGw7YS5NLmFwcGx5KG51bGwsYil9O18uV3Q9Y2xhc3MgZXh0ZW5kcyBfLmFle2NvbnN0cnVjdG9yKGEsYixjKXtzdXBlcigpO3RoaXMuTT1jIT1udWxsP2EuYmluZChjKTphO3RoaXMuST1iO3RoaXMuRD1udWxsO3RoaXMubz0hMTt0aGlzLkI9MDt0aGlzLmo9bnVsbH12KGEpe3RoaXMuRD1hcmd1bWVudHM7dGhpcy5qfHx0aGlzLkI/dGhpcy5vPSEwOlZ0KHRoaXMpfXN0b3AoKXt0aGlzLmomJihfLnUuY2xlYXJUaW1lb3V0KHRoaXMuaiksdGhpcy5qPW51bGwsdGhpcy5vPSExLHRoaXMuRD1udWxsKX1wYXVzZSgpe3RoaXMuQisrfXJlc3VtZSgpe3RoaXMuQi0tO3RoaXMuQnx8IXRoaXMub3x8dGhpcy5qfHwodGhpcy5vPSExLFZ0KHRoaXMpKX1sYSgpe3N1cGVyLmxhKCk7dGhpcy5zdG9wKCl9fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKLyoKCiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgoKIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQoqLwp2YXIgc3UscXUsb3UsdXUsbnUsenUsQXUsRHUsR3UsSHUsSXUsTnUsVHUsVnUsJHUsaXYsbXYscXYscnY7Xy5YdD1mdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbHx8dHlwZW9mIGE9PT0ic3RyaW5nIj9hOnZvaWQgMH07Xy5ZdD1hc3luYyBmdW5jdGlvbihhLGIpe3ZhciBjPV8ueSgpLGQ9Yy5yZXNvbHZlKF8uSW4oYSkpO2Q/KGIoZCksUHJvbWlzZS5yZXNvbHZlKGQpKTpjLnJlc29sdmUobmV3IF8uVXMoYSkpLnRoZW4oZT0+e2IoZSk7cmV0dXJuIGV9KX07Xy4kdD1mdW5jdGlvbihhKXt2YXIgYj1fLlp0O18uWnQ9YTtyZXR1cm4gYn07Xy5idT1mdW5jdGlvbihhKXtyZXR1cm4gYT09PV8uYXV8fGE/Lm5hbWU9PT0iXHUwMjc1Tm90Rm91bmQifTtfLmN1PWZ1bmN0aW9uKGEsYil7aWYoYT8uaWEpdGhyb3cgRXJyb3IoIlNhYCIrU3RyaW5nKGEuZGVidWdOYW1lKSk7Zm9yKDthIT09dm9pZCAwOyl7bGV0IGM9YTtpZihjLlJoKXJldHVybiBjLlJoKGIse29wdGlvbmFsOiEwfSk7YT1hLnBhcmVudH1yZXR1cm4gXy5hdX07Cl8uZHU9ZnVuY3Rpb24oYSl7cmV0dXJue2Rlc2NyaXB0aW9uOmEsQ2I6e016OiJyb290Iix0b2tlbjpTeW1ib2woYSksS3A6dm9pZCAwLHZhbHVlOnZvaWQgMH19fTtfLmV1PWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYSYmYj9gJHthfV9fJHtifWA6YT8/Yj8/Y307Xy5ndT1mdW5jdGlvbihhLGIpe3JldHVybnsuLi5fLmR1KGI/PyIiKSxbXy5mdV06ITAsZGVidWdOYW1lOmI/PyJbY29udGV4dF0iLGRlZmF1bHRWYWx1ZTphPy5kZWZhdWx0VmFsdWUscmVxdWlyZWQ6IWF8fCFPYmplY3QuaGFzT3duKGEsImRlZmF1bHRWYWx1ZSIpLGlkOmIsT0s6dm9pZCAwfX07Xy5odT1mdW5jdGlvbihhLGIpe2I9Xy5jdShiLGEpO2lmKF8uYnUoYikpe2lmKGEucmVxdWlyZWQpdGhyb3cgRXJyb3IoImpiYCIrYS5kZWJ1Z05hbWUpO3JldHVybiBhLmRlZmF1bHRWYWx1ZX1yZXR1cm4gYn07Xy5pdT1mdW5jdGlvbihhLGIpe3JldHVybiBPYmplY3QuaXMoYSxiKX07Cl8ua3U9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5qdTtfLmp1PWE7cmV0dXJuIGJ9O18ucHU9ZnVuY3Rpb24oYSl7aWYobHUpdGhyb3cgRXJyb3IoImgiKTtpZihfLmp1IT09bnVsbCl7Xy5qdS5pcChhKTt2YXIgYj1fLmp1LmtmO2lmKGI9PT12b2lkIDB8fGIuTWghPT1hKXt2YXIgYz12b2lkIDAsZD1fLmp1LmNuO2lmKGQmJihjPWIhPT12b2lkIDA/Yi5yZTpfLmp1LnByb2R1Y2VycyxjIT09dm9pZCAwJiZjLk1oPT09YSkpe18uanUua2Y9YztjLkhxPWEudmVyc2lvbjtjLm9qPV8ubXU7cmV0dXJufXZhciBlPWEuVWc7aWYoZT09PXZvaWQgMHx8ZS5EZiE9PV8uanV8fGQmJmUub2ohPT1fLm11KWQ9bnUoXy5qdSksYz17TWg6YSxEZjpfLmp1LHJlOmMsTWo6dm9pZCAwLG9qOl8ubXUsSHE6YS52ZXJzaW9uLHFlOnZvaWQgMH0sXy5qdS5rZj1jLGIhPT12b2lkIDA/Yi5yZT1jOl8uanUucHJvZHVjZXJzPWMsZCYmb3UoYSxjKX19fTsKXy5ydT1mdW5jdGlvbihhKXtpZighbnUoYSl8fGEuUGIpaWYoYS5QYnx8YS5yaiE9PV8ubXUpKGEuWG0oYSl8fHF1KGEpKSYmYS5ZbShhKSxhLlBiPSExLGEucmo9Xy5tdX07c3U9ZnVuY3Rpb24oYSl7aWYoYS5jb25zdW1lcnMhPT12b2lkIDApe3ZhciBiPWx1O2x1PSEwO3RyeXtmb3IobGV0IGM9YS5jb25zdW1lcnM7YyE9PXZvaWQgMDtjPWMucWUpe2xldCBkPWMuRGY7ZC5QYnx8KGQuUGI9ITAsc3UoZCksZC5ocD8uKGQpKX19ZmluYWxseXtsdT1ifX19O18udHU9ZnVuY3Rpb24oYSl7aWYoYSl7aWYoYS5rZj8ub2o9PT1fLm11KXtsZXQgYj1hLnByb2R1Y2Vycztmb3IoO2IhPT12b2lkIDA7KWIub2o9bnVsbCxiPWIucmV9YS5rZj12b2lkIDA7YS5jbj0hMH1yZXR1cm4gXy5rdShhKX07Cl8udnU9ZnVuY3Rpb24oYSl7YS5jbj0hMTt2YXIgYj1hLmtmLGM9YiE9PXZvaWQgMD9iLnJlOmEucHJvZHVjZXJzO2lmKGMhPT12b2lkIDApe2lmKG51KGEpKXtkbyBjPXV1KGMpO3doaWxlKGMhPT12b2lkIDApfWIhPT12b2lkIDA/Yi5yZT12b2lkIDA6YS5wcm9kdWNlcnM9dm9pZCAwfX07cXU9ZnVuY3Rpb24oYSl7Zm9yKGE9YS5wcm9kdWNlcnM7YSE9PXZvaWQgMDthPWEucmUpe2xldCBiPWEuTWgsYz1hLkhxO2lmKGMhPT1iLnZlcnNpb24pcmV0dXJuITA7Xy5ydShiKTtpZihjIT09Yi52ZXJzaW9uKXJldHVybiEwfXJldHVybiExfTtvdT1mdW5jdGlvbihhLGIpe3ZhciBjPWEuVWcsZD1udShhKTtjIT09dm9pZCAwPyhiLnFlPWMucWUsYy5xZT1iKTooYi5xZT12b2lkIDAsYS5jb25zdW1lcnM9Yik7Yi5Naj1jO2EuVWc9YjtpZighZClmb3IoYT1hLnByb2R1Y2VyczthIT09dm9pZCAwO2E9YS5yZSlvdShhLk1oLGEpfTsKdXU9ZnVuY3Rpb24oYSl7dmFyIGI9YS5NaCxjPWEucmUsZD1hLnFlLGU9YS5NajthLnFlPXZvaWQgMDthLk1qPXZvaWQgMDtkIT09dm9pZCAwP2QuTWo9ZTpiLlVnPWU7aWYoZSE9PXZvaWQgMCllLnFlPWQ7ZWxzZSBpZihiLmNvbnN1bWVycz1kLCFudShiKSlmb3IoYT1iLnByb2R1Y2VyczthIT09dm9pZCAwOylhPXV1KGEpO3JldHVybiBjfTtudT1mdW5jdGlvbihhKXtyZXR1cm4gYS5ncHx8YS5jb25zdW1lcnMhPT12b2lkIDB9O18ud3U9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpO307Xy55dT1mdW5jdGlvbihhLGIpe18uanU/LkxlIT09ITF8fF8ud3UoYSk7YS5lcXVhbChhLnZhbHVlLGIpfHwoYS52YWx1ZT1iLGEudmVyc2lvbisrLF8ubXUrKyxzdShhKSx4dT8uKGEpKX07enU9ZnVuY3Rpb24oYSxiKXtiLnptPXZvaWQgMDthLlpqP2EuWmouem09YjphLlVrPWI7YS5aaj1ifTtBdT1mdW5jdGlvbihhLGIpe3p1KGEse1tTeW1ib2wuZGlzcG9zZV06Yn0pfTsKXy5CdT1mdW5jdGlvbihhKXt2YXIgYj1fLlp0O2ImJiFiLmlhJiYoenUoYixhKSxhLnBhcmVudD1iKX07RHU9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWEuVWs7Yjspe2xldCBjPWIuem07Xy5DdShiKTtiPWN9YS5Vaz12b2lkIDA7YS5aaj12b2lkIDB9O18uQ3U9ZnVuY3Rpb24oYSl7YS5pYXx8KGEuaWE9ITAsYVtTeW1ib2wuZGlzcG9zZV0/LigpLGEucGFyZW50PXZvaWQgMCxEdShhKSl9O18uRnU9ZnVuY3Rpb24oYSl7cmV0dXJuKDAsXy5xcikoYSkmJl8uRXUgaW4gYX07R3U9ZnVuY3Rpb24oYT1fLlp0KXtmb3IoO2E7KXtpZihfLkZ1KGEpKXJldHVybiBhO2E9YS5wYXJlbnQ/P251bGx9cmV0dXJuIG51bGx9O0h1PWZ1bmN0aW9uKGE9Xy5adCl7Zm9yKHZhciBiPVtdO2E7KV8uRnUoYSkmJmIucHVzaChhLmRlYnVnTmFtZSksYT1hLnBhcmVudD8/bnVsbDtyZXR1cm4gYn07Ckl1PWZ1bmN0aW9uKGEpe3JldHVybigwLF8ucXIpKGEpJiZhLm5hbWUhPT12b2lkIDAmJmEubGohPT12b2lkIDAmJmEucGFyZW50IT09dm9pZCAwfTtfLkx1PWZ1bmN0aW9uKCl7dmFyIGE9ey4uLkp1fTtPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhKdSkuZm9yRWFjaChiPT57Xy5LdVtiXSE9PXZvaWQgMCYmKGFbYl09Xy5LdVtiXSl9KTtyZXR1cm4gYX07Xy5SdT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Xy5NdTtiJiYoXy5NdT1iKTt0cnl7cmV0dXJuIGM9PW51bGw/YSgpOmEuY2FsbChjKX1jYXRjaChlKXtOdShlLF8uTXUpO2lmKGUhPT1PdSl7Xy5QdT1fLk11O2E9W107Zm9yKGI9Xy5adDtiOylhLnB1c2goYi5kZWJ1Z05hbWU/PyJbY29udGV4dF0iKSxiPWIucGFyZW50Pz9udWxsO18uUXU9YS5yZXZlcnNlKCl9T3U9ZTt0aHJvdyBlO31maW5hbGx5e18uTXU9ZH19OwpOdT1mdW5jdGlvbihhLGIpe3RyeXtsZXQgYz1fLlN1KGIpO2lmKGMmJiFhLk5kPy5jb21wb25lbnRTdGFjayYmKGEuTmQ/YS5OZC5jb21wb25lbnRTdGFja3x8KGEuTmQuY29tcG9uZW50U3RhY2s9Yyk6YS5OZD17Y29tcG9uZW50U3RhY2s6Y30sXy5LdS5Cdikpe2xldCBkPWAke2EubWVzc2FnZX1cblxuQ29tcG9uZW50IHN0YWNrOiAke2N9YDthLnN0YWNrJiYoYS5zdGFjaz1hLnN0YWNrLnJlcGxhY2UoYS5tZXNzYWdlLGQpKTthLm1lc3NhZ2U9ZH19Y2F0Y2h7fX07VHU9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgNDpjYXNlIDM6cmV0dXJuInNldmVyZSI7Y2FzZSAyOnJldHVybiJ3YXJuaW5nIjtjYXNlIDE6Y2FzZSAwOnJldHVybiJpbmZvIjtkZWZhdWx0OnJldHVybiJ1bmtub3duIn19OwpfLlV1PWZ1bmN0aW9uKGEsYixjKXtpZihhLk5kKXJldHVybiBhO3RyeXtsZXQgZD0oYT09PU91P18uUHU6bnVsbCk/P18uTXU7TnUoYSxkKTthLk5kPXtjb21wb25lbnRTdGFjazpfLlN1KGQpLGZoOmIsQWw6Xy5MdSgpLHRhZ05hbWU6YyxwcjpfLlF1Py5zbGljZSgpPz9bXX07YS5yZXBvcnRTZXZlcml0eT1UdShiKX1jYXRjaHt9cmV0dXJuIGF9O1Z1PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wLGM9IiI7YjwyMCYmYTspYys9YCR7YCQkWElEOiR7YS5uYW1lfSQkYH0gPiBgLGE9YS5wYXJlbnQsYisrO3JldHVybiBjLnNsaWNlKDAsLTMpfTtfLlN1PWZ1bmN0aW9uKGEpe3JldHVybiBJdShhKXx8YT09PW51bGw/VnUoYSk6Xy5LdS5GcD8oYT1HdShhKSxIdShhKS5zbGljZSgwLDIwKS5tYXAoYj0+YCQkWElEOiR7Yn0kJGApLmpvaW4oIiA+ICIpKToiIn07Cl8uWXU9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5adDtpZihiKXt2YXIgYz1fLk11O0F1KGIsKCk9Pnt2YXIgZD1fLmt1KF8uV3U/PyhfLld1PU9iamVjdC5jcmVhdGUoey4uLl8uWHUsTGU6ITB9KSkpO3RyeXtfLlJ1KCgpPT52b2lkIGEoKSxjKX1jYXRjaChlKXt0aHJvdyBfLlV1KGUsNCksZTt9ZmluYWxseXtfLmt1KGQpfX0pfWVsc2UgXy5qdT09PV8uV3U/UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoRXJyb3IoIlhhIiksMik7fSk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoRXJyb3IoIiRhIiksMik7fSl9OyR1PWZ1bmN0aW9uKGEpe3ZhciBiPSgpPT57Xy5wdShhKTtyZXR1cm4gYS52YWx1ZX07YltfLlp1XT1hO3JldHVybltiLGM9PntfLnl1KGEsYyl9LGM9PntfLmp1Py5MZSE9PSExfHxfLnd1KGEpO18ueXUoYSxjKGEudmFsdWUpKX1dfTsKXy5KPWZ1bmN0aW9uKGEsYixjPSIiKXt2YXIgZD1PYmplY3QuY3JlYXRlKGF2KTtkLnZhbHVlPWE7Yj8uZXF1YWxzIT09dm9pZCAwJiYoZC5lcXVhbD1iLmVxdWFscyk7ZC5kZWJ1Z05hbWU9Xy5ldShiPy5kZWJ1Z05hbWUsYywiW3NpZ25hbF0iKTtyZXR1cm4gJHUoZCl9O18uZnY9ZnVuY3Rpb24oYSl7aWYoIWEuaWEpc3dpdGNoKGEuZWZmZWN0VHlwZSl7Y2FzZSBidjpfLmN2LnNjaGVkdWxlKGEpO2JyZWFrO2Nhc2UgXy5kdjpldi5zY2hlZHVsZShhKTticmVhaztkZWZhdWx0Ol8uZWIoYS5lZmZlY3RUeXBlLHZvaWQgMCl9fTtfLmp2PWZ1bmN0aW9uKCl7aWYoXy5ndj4wKV8uS3UuUmkmJl8uY3YuZmx1c2goKTtlbHNle2ZvcihsZXQgYSBvZiBodilhLmZsdXNoKCk7aXYoKX19O2l2PWFzeW5jIGZ1bmN0aW9uKCl7YXdhaXQgUHJvbWlzZS5yZXNvbHZlKCk7Zm9yKGxldCBhIG9mIGt2KWEuZmx1c2goKX07Cm12PWZ1bmN0aW9uKGEpe3ZhciBiPWEuaXNGbHVzaGluZzthLmlzRmx1c2hpbmc9ITA7dHJ5e2xldCBjPTA7Zm9yKDtjPGEuWmI7KXtsZXQgZD1hLkRkW2NdO2EuRGRbY109dm9pZCAwO2MrKztpZighZHx8IWQuUGIpY29udGludWU7bGV0IGU9W2RdLGY9ZDtmb3IoO2YucGFyZW50IT09dm9pZCAwOylmPWYucGFyZW50LCgwLF8ubHYpKGYpJiZmLlBiJiZlLnB1c2goZik7Zm9yKDtlLmxlbmd0aD4wOyllLnBvcCgpLnJ1bigpfWEuWmI9MH1maW5hbGx5e2EuaXNGbHVzaGluZz1ifX07Xy5vdj1mdW5jdGlvbihhLGI9Xy5adCl7aWYoYiYmIWIuaWEmJihiPV8uaHUobnYsYiksYj8ucmVwb3J0RXJyb3IpKXtiLnJlcG9ydEVycm9yKGEpO3JldHVybn10aHJvdyBhO307Cl8ucHY9ZnVuY3Rpb24oYSxiLGMpe2E9T2JqZWN0LmNyZWF0ZShhKTtiJiYoYS5mbj1iKTtjJiYoYS5kZWJ1Z05hbWU9Yyk7Xy5qdT09PV8uV3U/UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoRXJyb3IoIlRhIiksMik7fSk6Xy5adD09PW51bGw/UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3Rocm93IF8uVXUoRXJyb3IoImNiIiksMik7fSk6Xy5CdShhKTthLmNvbXBvbmVudFN0YWNrPV8uTXU7cmV0dXJuIGF9O3F2PWZ1bmN0aW9uKGEpe2lmKCFhLmlhKXtpZihsdSl0aHJvdyBfLlV1KEVycm9yKCJ4YiIpLDQpO3ZhciBiPV8uJHQoYSk7dHJ5e18uUnUoKCk9PnthLlBiPSExO2lmKCEoYS52ZXJzaW9uPjApfHxxdShhKSl7YS52ZXJzaW9uKys7dmFyIGM9Xy50dShhKTt0cnl7YS5WaygpLGEuZm4oKX1maW5hbGx5e18ua3UoYyksYSYmXy52dShhKX19fSxhLmNvbXBvbmVudFN0YWNrLGEpfWNhdGNoKGMpe18uVXUoYyw0KSxfLm92KGMpfWZpbmFsbHl7Xy4kdChiKX19fTsKcnY9ZnVuY3Rpb24oYSl7dmFyIGI9RXJyb3IoIlphYCIrYS5kZWJ1Z05hbWUpO18uVXUoYiw0KTtQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57dGhyb3cgYjt9KX07Xy50dj1mdW5jdGlvbihhLGIpe2E9Xy5wdihzdixhLGIpO18uZnYoYSl9O18udXY9ZnVuY3Rpb24oYSxiPSEwKXt2YXIgYz17cGFyZW50OnZvaWQgMCxpYTohMSxVazp2b2lkIDAsWmo6dm9pZCAwLHptOnZvaWQgMH07YiYmXy5CdShjKTtiPV8uJHQoYyk7dHJ5e2EoYyl9ZmluYWxseXtfLiR0KGIpfXJldHVybigpPT52b2lkIF8uQ3UoYyl9O18udnY9ZnVuY3Rpb24oKXt9O18ud3Y9ZnVuY3Rpb24oKXt9O18ueHY9ZnVuY3Rpb24oKXt9O18uQnY9ZnVuY3Rpb24oYSl7aWYoXy5qdT09PV8ueXZ8fF8uanU9PT1fLnp2KXRocm93IF8uVXUoRXJyb3IoIllhIiksNCk7cmV0dXJuIHR5cGVvZiBhPT09ImZ1bmN0aW9uIj9hKCk6YT8uW0F2XT9hLmdldCgpOmF9O18uQ3Y9ZnVuY3Rpb24oKXt9O18uRHY9e307Cl8uVXM9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qdj1hfX07Xy5Fdj1fLnUuSlNPTi5wYXJzZTtuZXcgY2xhc3MgZXh0ZW5kcyBfLmFle2luaXQoKXt9fTtfLkVhKCk7Xy5adD12b2lkIDA7Xy5hdT1TeW1ib2woImRiIik7dmFyIEZ2LGJ2O0Z2PVN5bWJvbCgiZWIiKTtidj1TeW1ib2woImZiIik7Xy5kdj1TeW1ib2woImdiIik7Xy5sdj1fLkNjKGE9PigwLF8ucXIpKGEpJiZGdiBpbiBhKTtfLmZ1PVN5bWJvbCgiaGIiKTt2YXIgbHU7Xy5qdT1udWxsO2x1PSExO18ubXU9MTtfLlp1PVN5bWJvbCgia2IiKTtfLlh1PXt2ZXJzaW9uOjAscmo6MCxQYjohMSxwcm9kdWNlcnM6dm9pZCAwLGtmOnZvaWQgMCxjb25zdW1lcnM6dm9pZCAwLFVnOnZvaWQgMCxjbjohMSxMZTohMSxncDohMSxraW5kOiJ1bmtub3duIixYbTooKT0+ITEsWW06KCk9Pnt9LGhwOigpPT57fSxpcDooKT0+e319O18uR3Y9U3ltYm9sKCJsYiIpO18uSHY9U3ltYm9sKCJtYiIpO18uSXY9U3ltYm9sKCJuYiIpO3ZhciBKdj17Li4uXy5YdSxncDohMCxMZTohMCxQYjohMCxraW5kOiJlZmZlY3QifTt2YXIgeHU9bnVsbCxhdj17Li4uXy5YdSxlcXVhbDpfLml1LHZhbHVlOnZvaWQgMCxraW5kOiJzaWduYWwifTtfLkt2PVN5bWJvbCgib2IiKTtfLkx2PVN5bWJvbCgicGIiKTtfLk12PVN5bWJvbCgicWIiKTtfLkV1PVN5bWJvbCgicmIiKTt2YXIgSnU9e3l2OiEwLEJ2OiExLEZwOl8uWXEsR3A6Xy5ZcSxHdjohMSxyaTohMSxISTohMCxSaTohMSxKcTohMX07Xy5LdT17YXR0cmlidXRlczp7fSxoYW5kbGVFcnJvcihhKXt0aHJvdyBhO30sLi4uSnV9O3ZhciBPdTtfLk11PW51bGw7Xy5QdT1udWxsO18uTnY9bmV3IFNldDtfLk92PW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe319O3ZhciBQdixTdixUdixWdixXdixYdixldixodixrdixadjtfLmd2PTA7UHY9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmlzRmx1c2hpbmc9ITE7dGhpcy5EZD1bXTt0aGlzLlpiPTB9c2NoZWR1bGUoYSl7dGhpcy5EZFt0aGlzLlpiKytdPWF9Y2xlYXIoKXtmb3IobGV0IGE9MDthPHRoaXMuWmI7YSsrKXRoaXMuRGRbYV09dm9pZCAwO3RoaXMuWmI9MH19O18uUXY9U3ltYm9sKCJ3YiIpO1N2PWNsYXNzIGV4dGVuZHMgUHZ7Zmx1c2goKXtpZih0aGlzLlpiIT09MCl7Zm9yKHZhciBhPTA7YTx0aGlzLlpiOyl7bGV0IGI9dGhpcy5EZFthXTt0aGlzLkRkW2FdPXZvaWQgMDthKys7aWYoYil0cnl7Yi5ydW4oKX1jYXRjaChjKXtSdihjKX19dGhpcy5aYj0wfX19O1R2PWNsYXNzIGV4dGVuZHMgU3Z7fTtfLlV2PW5ldyBUdjtWdj1jbGFzcyBleHRlbmRzIFB2e2ZsdXNoKCl7dGhpcy5aYj09PTB8fHRoaXMuaXNGbHVzaGluZ3x8bXYodGhpcyl9fTsKV3Y9Y2xhc3MgZXh0ZW5kcyBWdntzY2hlZHVsZShhKXthLnZlcnNpb249PT0wP2EucnVuKCk6c3VwZXIuc2NoZWR1bGUoYSl9Zmx1c2goKXtpZih0aGlzLlpiIT09MClpZihfLkt1LlJpKXtsZXQgYT17RGQ6dGhpcy5EZCxaYjp0aGlzLlpiLGlzRmx1c2hpbmc6ITF9O3RoaXMuRGQ9W107dGhpcy5aYj0wO212KGEpfWVsc2UgdGhpcy5pc0ZsdXNoaW5nfHxtdih0aGlzKX19O18uY3Y9bmV3IFd2O1h2PWNsYXNzIGV4dGVuZHMgVnZ7fTtldj1uZXcgWHY7aHY9W18uY3ZdO2t2PVtfLlV2LGV2XTtfLll2PVsuLi5odiwuLi5rdl07WnY9W107eHU9KCk9PntfLmp2KCk7Zm9yKGxldCBhIG9mIFp2KWEoKX07dmFyIFJ2PV8uJGI7dmFyIG52PV8uZ3Uoe2RlZmF1bHRWYWx1ZTpudWxsfSwiaW0xTWtmIik7Xy4kdj17Li4uSnYsW0Z2XTohMCxlZmZlY3RUeXBlOmJ2LEVKOiEwLGhwOl8uZnYscnVuKCl7cXYodGhpcyl9LFZrKCl7RHUodGhpcyl9LGNvbXBvbmVudFN0YWNrOnZvaWQgMCxkZWJ1Z05hbWU6IltlZmZlY3RdIixkZXN0cm95KCl7aWYobnUodGhpcykpe2xldCBhPXRoaXMucHJvZHVjZXJzO2Zvcig7YSE9PXZvaWQgMDspYT11dShhKX10aGlzLlVnPXRoaXMuY29uc3VtZXJzPXRoaXMua2Y9dGhpcy5wcm9kdWNlcnM9dm9pZCAwO18uQ3UodGhpcyk7dGhpcy5QYj0hMX0sW1N5bWJvbC5kaXNwb3NlXSgpe3RoaXMuZGVzdHJveSgpfX07dmFyIGF3O2F3PXtpcDpydn07Xy55dj1PYmplY3QuY3JlYXRlKHsuLi5fLlh1LExlOiEwLC4uLmF3fSk7Xy56dj1PYmplY3QuY3JlYXRlKHsuLi5fLlh1LExlOiEwLC4uLmF3fSk7dmFyIHN2PXsuLi5fLiR2LGVmZmVjdFR5cGU6YnZ9O18uYnc9e1BIKCl7fSxlSygpe30sWUgoKXt9LFNvKCl7fSxRSCgpe30sSmkoKXt9LEdmKCl7fSxIZigpe30sS2koKXt9fTt2YXIgQXY9U3ltYm9sKCJLYiIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgZXc7Xy5jdz1mdW5jdGlvbihhLC4uLmIpe2EuYXJnc3x8KGEuYXJncz1bXSk7QXJyYXkuaXNBcnJheShhLmFyZ3MpJiZhLmFyZ3MucHVzaCguLi5iKX07Xy5kdz1mdW5jdGlvbihhKXtmb3IobGV0IGIgaW4gYSl7bGV0IGM9Xy5id1tiXSxkPWFbYl07Xy5id1tiXT0oLi4uZSk9PntjKC4uLmUpO2QoLi4uZSl9fX07Xy5mdz1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsXy5FcSkmJmFbXy5FcV18fChhW18uRXFdPSsrZXcpfTtfLmd3PWZ1bmN0aW9uKGEsYixjKXthJiYhYyYmKGE9YS5wYXJlbnROb2RlKTtmb3IoYz0wO2E7KXtpZihiKGEpKXJldHVybiBhO2E9YS5wYXJlbnROb2RlO2MrK31yZXR1cm4gbnVsbH07Xy5odz1mdW5jdGlvbihhKXtyZXR1cm4gYT8oYT1hLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVRydXN0ZWRSZXNvdXJjZVVybFdyYXBwZWRWYWx1ZSk/Xy5UYShhKTpudWxsOm51bGx9OwpfLml3PWZ1bmN0aW9uKGEpe2lmKF8uWnQpdGhyb3cgXy5VdShFcnJvcigiYWIiKSw0KTtyZXR1cm4gXy51dihiPT57Xy5ZdSgoKT0+e30pO2EoYil9LCExKX07ZXc9MDt2YXIganc7anc9e25hbWU6IjxSb290PiIscHJvcHM6e30sS3o6e30sZWZmZWN0czpbXSxkSTpbXSxnSTooKT0+e30sW1N5bWJvbCgiSmIiKV06ITB9OyhuZXcgV2Vha01hcCkuc2V0KGp3Lkt6LHtuYW1lOmp3Lm5hbWUscHJvcHM6ancucHJvcHN9KTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIHN3LHl3LHR3LHJ3O18ua3c9ZnVuY3Rpb24oYSxiLGMpe2lmKGEhPW51bGwmJmFbXy5PY109PT1fLlBjKXJldHVybiBhO2lmKEFycmF5LmlzQXJyYXkoYSkpe3ZhciBkPWFbXy5BY118MDtjPWR8YyYzMnxjJjI7YyE9PWQmJihhW18uQWNdPWMpO3JldHVybiBuZXcgYihhKX19O18ubHc9ZnVuY3Rpb24oYSl7dmFyIGI9YS5EYSxjPWJbXy5BY118MDtyZXR1cm4gXy5CYyhhLGMpP18uJGMoYSxiLGMpP18uYmQoYSxiLCEwKTpuZXcgYS5jb25zdHJ1Y3RvcihfLlpjKGIsYywhMSkpOmF9O18ubXc9ZnVuY3Rpb24oYSl7aWYoYS5qIT09Xy56YylyZXR1cm4hMTt2YXIgYj1hLkRhO2I9Xy5aYyhiLGJbXy5BY118MCk7YltfLkFjXXw9MjA0ODthLkRhPWI7YS5qPXZvaWQgMDthLm89dm9pZCAwO3JldHVybiEwfTtfLm53PWZ1bmN0aW9uKGEpe2lmKCFfLm13KGEpJiZfLkJjKGEsYS5EYVtfLkFjXXwwKSl0aHJvdyBFcnJvcigpO307Cl8ub3c9ZnVuY3Rpb24oYSxiKXtiPT09dm9pZCAwJiYoYj1hW18uQWNdfDApO2ImMzImJiEoYiY0MDk2KSYmKGFbXy5BY109Ynw0MDk2KX07Xy5wdz1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWMrKGU/MDotMSksaD1hLmxlbmd0aC0xO2lmKGg+PTErKGU/MDotMSkmJmY+PWgpe2xldCBrPWFbaF07aWYoayE9bnVsbCYmdHlwZW9mIGs9PT0ib2JqZWN0IiYmay5jb25zdHJ1Y3Rvcj09PU9iamVjdClyZXR1cm4ga1tjXT1kLGJ9aWYoZjw9aClyZXR1cm4gYVtmXT1kLGI7ZCE9PXZvaWQgMCYmKGg9KGI/PyhiPWFbXy5BY118MCkpPj4xNCYxMDIzfHw1MzY4NzA5MTIsYz49aD9kIT1udWxsJiYoYVtoKyhlPzA6LTEpXT17W2NdOmR9KTphW2ZdPWQpO3JldHVybiBifTtfLnF3PWZ1bmN0aW9uKGEsYixjLGQpe18ubncoYSk7dmFyIGU9YS5EYTtfLnB3KGUsZVtfLkFjXXwwLGIsYyxkKTtyZXR1cm4gYX07c3c9ZnVuY3Rpb24oYSl7cmV0dXJuIHJ3W2FdfHwiIn07Cl8udXc9ZnVuY3Rpb24oYSl7YT10dy50ZXN0KGEpP2EucmVwbGFjZSh0dyxzdyk6YTthPWF0b2IoYSk7dmFyIGI9bmV3IFVpbnQ4QXJyYXkoYS5sZW5ndGgpO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7YysrKWJbY109YS5jaGFyQ29kZUF0KGMpO3JldHVybiBifTtfLnd3PWZ1bmN0aW9uKGEpe2lmKF8udnchPT1fLnZ3KXRocm93IEVycm9yKCJvIik7dmFyIGI9YS5qO2I9PW51bGx8fGIhPW51bGwmJmIgaW5zdGFuY2VvZiBVaW50OEFycmF5fHwodHlwZW9mIGI9PT0ic3RyaW5nIj9iPV8udXcoYik6KF8ueGEoYiksYj1udWxsKSk7cmV0dXJuIGI9PW51bGw/YjphLmo9Yn07Xy54dz1mdW5jdGlvbihhKXtpZihhIT1udWxsJiZ0eXBlb2YgYSE9PSJib29sZWFuIil0aHJvdyBFcnJvcigicmAiK18ueGEoYSkrImAiK2EpO3JldHVybiBhfTsKeXc9ZnVuY3Rpb24oKXt2YXIgYT1fLkRuKCk7dmFyIGI9W107Zm9yKGxldCBjPTA7YzxhLmxlbmd0aDtjKyspYi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fIi5jaGFyQXQoYVtjXSY2MykpO3JldHVybiBiLmpvaW4oIiIpfTt0dz0vWy1fLl0vZztydz17Ii0iOiIrIixfOiIvIiwiLiI6Ij0ifTtfLnZ3PXt9O18uenc9bmV3IF8uSSgid2ViQ29tbWFuZE1ldGFkYXRhIik7Xy5Bdz1uZXcgXy5JKCJ3YXRjaEVuZHBvaW50Iik7Xy5Cdz1jbGFzcyBleHRlbmRzIF8ucG17Y29uc3RydWN0b3IoYSl7c3VwZXIoYXJndW1lbnRzKTt0aGlzLmNzbj1hfX07Xy5Ddz1uZXcgXy5xbSgic2NyZWVuLWNyZWF0ZWQiLF8uQncpO18uRHc9eXc7Xy5Fdz1uZXcgTWFwO18uRnc9bmV3IE1hcDtfLkd3PW5ldyBNYXA7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBRdyxSdyxhYWEsYmFhLFh3LFN3LGF4LEx3LGNhYSxZdyxadztfLkh3PWZ1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChhLGIsdm9pZCAwKX07Xy5Jdz1mdW5jdGlvbihhKXthPUVycm9yKGEpO18uQmIoYSwid2FybmluZyIpO3JldHVybiBhfTtfLkp3PWZ1bmN0aW9uKGEpe2E9PW51bGwmJihhPXZvaWQgMCk7cmV0dXJuIGF9O18uS3c9ZnVuY3Rpb24oYSxiLGMsZCl7Yz1fLkp3KGMpO18ucXcoYSxiLGMsZCk7YyYmIV8uQmMoYykmJl8ub3coYS5EYSk7cmV0dXJuIGF9O18uTXc9ZnVuY3Rpb24oKXtyZXR1cm4gTHd8fChMdz1uZXcgXy5SYyhudWxsLF8udncpKX07Cl8uTnc9ZnVuY3Rpb24oYSxiKXtpZihhIT1udWxsKWlmKHR5cGVvZiBhPT09InN0cmluZyIpYT1hP25ldyBfLlJjKGEsXy52dyk6Xy5NdygpO2Vsc2UgaWYoYS5jb25zdHJ1Y3RvciE9PV8uUmMpaWYoYSE9bnVsbCYmYSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpYT1hLmxlbmd0aD9uZXcgXy5SYyhuZXcgVWludDhBcnJheShhKSxfLnZ3KTpfLk13KCk7ZWxzZXtpZighYil0aHJvdyBFcnJvcigpO2E9dm9pZCAwfXJldHVybiBhfTtfLk93PWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09Im51bWJlciIpdGhyb3cgXy5JdygiaW50MzIiKTtpZighKDAsXy53cikoYSkpdGhyb3cgXy5JdygiaW50MzIiKTtyZXR1cm4gYXwwfTtfLlB3PWZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsP2E6Xy5PdyhhKX07ClF3PWZ1bmN0aW9uKGEpe3ZhciBiPV8ucm0oKTtpZighYilyZXR1cm4gMDt2YXIgYz1iLnN1YnNjcmliZShfLkN3LnRvU3RyaW5nKCksKGQsZSk9Pnt2YXIgZj1fLnNhKCJ5dFB1YnN1YjJQdWJzdWIyU2tpcFN1YktleSIpO2YmJmY9PWN8fChmPSgpPT57aWYoXy5Lc1tjXSl0cnl7aWYoZSYmXy5DdyBpbnN0YW5jZW9mIF8ucW0mJl8uQ3chPWQpdHJ5e3t2YXIgaD1fLkN3Lmosaz1lO2lmKCFrLmFyZ3N8fCFrLnZlcnNpb24pdGhyb3cgRXJyb3IoInBhIik7bGV0IGw7dHJ5e2lmKCFoLkFlKXtsZXQgbT1uZXcgaDtoLkFlPW0udmVyc2lvbn1sPWguQWV9Y2F0Y2gobSl7fWlmKCFsfHxrLnZlcnNpb24hPWwpdGhyb3cgRXJyb3IoInFhIik7dHJ5e2U9UmVmbGVjdC5jb25zdHJ1Y3QoaCxfLnliKGsuYXJncykpfWNhdGNoKG0pe3Rocm93IG0ubWVzc2FnZT0ieXQucHVic3ViMi5EYXRhLmRlc2VyaWFsaXplKCk6ICIrbS5tZXNzYWdlLG07fX19Y2F0Y2gobCl7dGhyb3cgbC5tZXNzYWdlPSJ5dC5wdWJzdWIyLnB1YnN1YjIgY3Jvc3MtYmluYXJ5IGNvbnZlcnNpb24gZXJyb3IgZm9yICIrCl8uQ3cudG9TdHJpbmcoKSsiOiAiK2wubWVzc2FnZSxsO31hLmNhbGwod2luZG93LGUpfWNhdGNoKGwpe18uVWkobCl9fSxfLk1zW18uQ3cudG9TdHJpbmcoKV0/Xy5zYSgieXQuc2NoZWR1bGVyLmluc3RhbmNlIik/Xy5qZi5wYihmKTpfLm1qKGYsMCk6ZigpKX0pO18uS3NbY109ITA7Xy5Mc1tfLkN3LnRvU3RyaW5nKCldfHwoXy5Mc1tfLkN3LnRvU3RyaW5nKCldPVtdKTtfLkxzW18uQ3cudG9TdHJpbmcoKV0ucHVzaChjKTtyZXR1cm4gY307Unc9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5ybSgpO2ImJih0eXBlb2YgYT09PSJudW1iZXIiJiYoYT1bYV0pLF8udGIoYSxjPT57Yi51bnN1YnNjcmliZUJ5S2V5KGMpO2RlbGV0ZSBfLktzW2NdfSkpfTthYWE9ZnVuY3Rpb24oKXt2YXIgYT1TdyxiPVF3KGZ1bmN0aW9uKGMpe2EuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyk7UncoYil9KTtyZXR1cm4gYn07Xy5Vdz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IF8uVHcoe3RyYWNraW5nUGFyYW1zOmF9KX07Cl8uVnc9ZnVuY3Rpb24oYT0wKXtyZXR1cm4oYT1fLmdxKGEpKT9uZXcgXy5Udyh7dmVUeXBlOmEseW91dHViZURhdGE6dm9pZCAwLGpzcGJZb3V0dWJlRGF0YTp2b2lkIDB9KTpudWxsfTtiYWE9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LnZhbHVlcyhfLncoImNsaWVudC1zY3JlZW4tbm9uY2Utc3RvcmUiLHt9KSkuZmlsdGVyKGE9PmEhPT12b2lkIDApfTtfLld3PWZ1bmN0aW9uKGEsYil7Xy54KCJsb2dfc2VxdWVuY2VfaW5mb19vbl9nZWxfd2ViIikmJihhLnNlcXVlbmNlR3JvdXA9Yik7cmV0dXJuIGF9O1h3PWZ1bmN0aW9uKGEsYil7cmV0dXJuYCR7YS5nZXRBc0pzb24oKS52ZVR5cGV9JHthLmdldEFzSnNvbigpLnZlQ291bnRlcn0ke2J9YH07U3c9ZnVuY3Rpb24oYSl7aWYoWXcpe2ZvcihsZXQgYiBvZiBZdyliLnBheWxvYWQmJihiLnBheWxvYWQuY3NuPWEuY3NuLF8uRXAoYi5wYXlsb2FkTmFtZSxiLnBheWxvYWQsYi5vcHRpb25zKSk7WXcubGVuZ3RoPTB9Wnc9MH07Cl8uJHc9ZnVuY3Rpb24oYSxiLGMpe1l3LnB1c2goe3BheWxvYWROYW1lOmEscGF5bG9hZDpjLEpKOnZvaWQgMCxvcHRpb25zOmJ9KTtad3x8KFp3PWFhYSgpKX07Xy5ieD1mdW5jdGlvbihhLGIsYyxkLGU9ITEsZj17fSl7YXgoYSxiLGMsW2RdLGUsZil9OwpheD1mdW5jdGlvbihhLGIsYyxkLGU9ITEsZj17fSl7T2JqZWN0LmFzc2lnbihmLF8uV3coe2N0dEF1dGhJbmZvOl8ua3EoYil8fHZvaWQgMH0sYikpO2ZvcihsZXQgayBvZiBkKXt2YXIgaD1rLmdldEFzSnNvbigpOyhfLnBkKGgpfHwhaC50cmFja2luZ1BhcmFtcyYmIWgudmVUeXBlKSYmXy5JcChFcnJvcigiTGIiKSk7aWYoXy54KCJub19jbGllbnRfdmVfYXR0YWNoX3VubGVzc19zaG93biIpKXtsZXQgbD1YdyhrLGIpO2lmKGgudmVUeXBlJiYhXy5Gdy5oYXMobCkmJiFfLkd3LmhhcyhsKSYmIWUpe2lmKCFfLngoImlsX2F0dGFjaF9jYWNoZV9saW1pdCIpfHxfLkV3LnNpemU8MUUzKXtfLkV3LnNldChsLFthLGIsYyxrXSk7cmV0dXJufV8ueCgiaWxfYXR0YWNoX2NhY2hlX2xpbWl0IikmJl8uRXcuc2l6ZT4xRTMmJl8uSXAobmV3IF8uWGooIklMIEF0dGFjaCBjYWNoZSBleGNlZWRlZCBsaW1pdCIpKX1oPVh3KGMsYik7Xy5Fdy5oYXMoaCk/Xy5jeChjLGIpOl8uR3cuc2V0KGgsITApfX1kPQpkLmZpbHRlcihrPT57ay5jc24hPT1iPyhrLmNzbj1iLGs9ITApOms9ITE7cmV0dXJuIGt9KTtjPXtjc246YixwYXJlbnRWZTpjLmdldEFzSnNvbigpLGNoaWxkVmVzOl8uSHcoZCxrPT5rLmdldEFzSnNvbigpKX07Yj09PSJVTkRFRklORURfQ1NOIj9fLiR3KCJ2aXN1YWxFbGVtZW50QXR0YWNoZWQiLGYsYyk6YT9fLkNwKCJ2aXN1YWxFbGVtZW50QXR0YWNoZWQiLGMsYSxmKTpfLkVwKCJ2aXN1YWxFbGVtZW50QXR0YWNoZWQiLGMsZil9O18uY3g9ZnVuY3Rpb24oYSxiKXthPVh3KGEsYik7Xy5Fdy5oYXMoYSkmJihiPV8uRXcuZ2V0KGEpfHxbXSxfLmJ4KGJbMF0sYlsxXSxiWzJdLGJbM10sITApLF8uRXcuZGVsZXRlKGEpKX07Xy5keD1mdW5jdGlvbihhLGIpe2lmKF8ueCgibm9fY2xpZW50X3ZlX2F0dGFjaF91bmxlc3Nfc2hvd24iKSl7dmFyIGM9WHcoYSxiKTtfLkZ3LnNldChjLCEwKTtfLmN4KGEsYil9fTsKXy5leD1mdW5jdGlvbihhLGIsYyxkLGUsZixoKXtfLmR4KGMsYik7ZD1kfHwiSU5URVJBQ1RJT05fTE9HR0lOR19HRVNUVVJFX1RZUEVfR0VORVJJQ19DTElDSyI7Zj1fLld3KHtjdHRBdXRoSW5mbzpfLmtxKGIpfHx2b2lkIDAsYXV0b21hdGVkTG9nRXZlbnRTb3VyY2U6aH0sYik7Yz17Y3NuOmIsdmU6Yy5nZXRBc0pzb24oKSxnZXN0dXJlVHlwZTpkfTtlJiYoYy5jbGllbnREYXRhPWUpO2I9PT0iVU5ERUZJTkVEX0NTTiI/Xy4kdygidmlzdWFsRWxlbWVudEdlc3R1cmVkIixmLGMpOmE/Xy5DcCgidmlzdWFsRWxlbWVudEdlc3R1cmVkIixjLGEsZik6Xy5FcCgidmlzdWFsRWxlbWVudEdlc3R1cmVkIixjLGYpfTtfLmZ4PWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtfLmV4KGEsYixjLHZvaWQgMCxkLGUsZil9O18uaHg9ZnVuY3Rpb24oKXtneC5pbnN0YW5jZXx8KGd4Lmluc3RhbmNlPW5ldyBneCk7cmV0dXJuIGd4Lmluc3RhbmNlfTsKXy5qeD1mdW5jdGlvbihhLGIsYyxkPTAsZSl7YS5vLmhhcyhlKXx8YS5vLnNldChlLG5ldyBTZXQpO3ZhciBmPWN8fF8uVncoZCk7Zj1gJHtiLnRvU3RyaW5nKCl9fCR7Zj9mLnRvU3RyaW5nKCk6IiJ9YDthLm8uZ2V0KGUpLmhhcyhmKXx8KF8uaXgoYSxiLGMsZCksYS5vLmdldChlKS5hZGQoZikpfTtfLml4PWZ1bmN0aW9uKGEsYixjLGQ9MCl7cmV0dXJuIF8uVmkoKCk9PntpZihhLmouaGFzKGQpKXJldHVybiBhLlkucHVzaChbYixjXSksITA7dmFyIGU9Xy5pcShkKSxmPWN8fF8uVncoZCk7aWYoZSYmZil7aWYoXy54KCJjb21iaW5lX3ZlX2dyYWZ0cyIpKXtsZXQgaD1hLnYuZ2V0KGYudG9TdHJpbmcoKSk7aD9oLnB1c2goYik6KGEuSS5zZXQoZi50b1N0cmluZygpLGYpLGEudi5zZXQoZi50b1N0cmluZygpLFtiXSkpO2EuWnx8KGEuWj1fLllqKCgpPT57Xy5reChhLGUpfSwxMjAwKSl9ZWxzZSBfLmJ4KGEuY2xpZW50LGUsZixiKTtyZXR1cm4hMH1yZXR1cm4hMX0pKCl9OwpfLmx4PWZ1bmN0aW9uKGEsYixjLGQ9MCl7cmV0dXJuIF8uVmkoKCk9Pnt2YXIgZT1fLlV3KGIpLGY9Xy5pcShkKTtmJiYhYS5qLmhhcyhkKT9fLmp4KGEsZSxjLGQsZik6Xy5peChhLGUsYyxkKTtyZXR1cm4gZX0pKCl9O18ua3g9ZnVuY3Rpb24oYSxiKXtpZihiPT09dm9pZCAwKXtsZXQgYz1iYWEoKTtmb3IobGV0IGQ9MDtkPGMubGVuZ3RoO2QrKyljW2RdIT09dm9pZCAwJiZfLmt4KGEsY1tkXSl9ZWxzZSBhLnYuZm9yRWFjaCgoYyxkKT0+eyhkPWEuSS5nZXQoZCkpJiZheChhLmNsaWVudCxiLGQsYyl9KSxhLnYuY2xlYXIoKSxhLkkuY2xlYXIoKSxhLlo9dm9pZCAwfTsKXy5teD1mdW5jdGlvbihhLGIsYyxkPTApe3ZhciBlPV8uaXEoZCk7Yj1ifHxfLlZ3KGQpO2UmJmImJihhPWEuY2xpZW50LGQ9Xy5Xdyh7Y3R0QXV0aEluZm86Xy5rcShlKXx8dm9pZCAwfSxlKSxjPXtjc246ZSx2ZTpiLmdldEFzSnNvbigpLGNsaWVudERhdGE6Y30sZT09PSJVTkRFRklORURfQ1NOIj9fLiR3KCJ2aXN1YWxFbGVtZW50U3RhdGVDaGFuZ2VkIixkLGMpOmE/Xy5DcCgidmlzdWFsRWxlbWVudFN0YXRlQ2hhbmdlZCIsYyxhLGQpOl8uRXAoInZpc3VhbEVsZW1lbnRTdGF0ZUNoYW5nZWQiLGMsZCkpfTsKXy5SYz1jbGFzc3tvKCl7dmFyIGE9dGhpcy5qO2lmKGE9PW51bGwpYT0iIjtlbHNlIGlmKHR5cGVvZiBhIT09InN0cmluZyIpe2xldCBiPSIiLGM9MCxkPWEubGVuZ3RoLTEwMjQwO2Zvcig7YzxkOyliKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYS5zdWJhcnJheShjLGMrPTEwMjQwKSk7Yis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGM/YS5zdWJhcnJheShjKTphKTthPXRoaXMuaj1idG9hKGIpfXJldHVybiBhfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5qPT1udWxsfXNpemVCeXRlcygpe3ZhciBhPV8ud3codGhpcyk7cmV0dXJuIGE/YS5sZW5ndGg6MH1jb25zdHJ1Y3RvcihhLGIpe2lmKGIhPT1fLnZ3KXRocm93IEVycm9yKCJvIik7dGhpcy5qPWE7aWYoYSE9bnVsbCYmYS5sZW5ndGg9PT0wKXRocm93IEVycm9yKCJuIik7fX07CmNhYT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9c2V0VHJhY2tpbmdQYXJhbXMoYSl7cmV0dXJuIF8ucXcodGhpcywxLF8uTncoYSwhMSkpfX07Cl8uVHc9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWF9Z2V0QXNKc29uKCl7dmFyIGE9e307dGhpcy5qLnRyYWNraW5nUGFyYW1zIT09dm9pZCAwP2EudHJhY2tpbmdQYXJhbXM9dGhpcy5qLnRyYWNraW5nUGFyYW1zOihhLnZlVHlwZT10aGlzLmoudmVUeXBlLHRoaXMuai52ZUNvdW50ZXIhPT12b2lkIDAmJihhLnZlQ291bnRlcj10aGlzLmoudmVDb3VudGVyKSx0aGlzLmouZWxlbWVudEluZGV4IT09dm9pZCAwJiYoYS5lbGVtZW50SW5kZXg9dGhpcy5qLmVsZW1lbnRJbmRleCkpO3RoaXMuai5kYXRhRWxlbWVudCE9PXZvaWQgMCYmKGEuZGF0YUVsZW1lbnQ9dGhpcy5qLmRhdGFFbGVtZW50LmdldEFzSnNvbigpKTt0aGlzLmoueW91dHViZURhdGEhPT12b2lkIDAmJihhLnlvdXR1YmVEYXRhPXRoaXMuai55b3V0dWJlRGF0YSk7dGhpcy5qLmlzQ291bnRlcmZhY3R1YWwmJihhLmlzQ291bnRlcmZhY3R1YWw9ITApO3JldHVybiBhfWdldEFzSnNwYigpe3ZhciBhPW5ldyBjYWE7dGhpcy5qLnRyYWNraW5nUGFyYW1zIT09CnZvaWQgMD9hLnNldFRyYWNraW5nUGFyYW1zKHRoaXMuai50cmFja2luZ1BhcmFtcyk6KHRoaXMuai52ZVR5cGUhPT12b2lkIDAmJl8ucXcoYSwyLF8uUHcodGhpcy5qLnZlVHlwZSkpLHRoaXMuai52ZUNvdW50ZXIhPT12b2lkIDAmJl8ucXcoYSw2LF8uUHcodGhpcy5qLnZlQ291bnRlcikpLHRoaXMuai5lbGVtZW50SW5kZXghPT12b2lkIDAmJl8ucXcoYSwzLF8uUHcodGhpcy5qLmVsZW1lbnRJbmRleCkpLHRoaXMuai5pc0NvdW50ZXJmYWN0dWFsJiZfLnF3KGEsNSxfLnh3KCEwKSkpO2lmKHRoaXMuai5kYXRhRWxlbWVudCE9PXZvaWQgMCl7dmFyIGI9dGhpcy5qLmRhdGFFbGVtZW50LmdldEFzSnNwYigpO18uS3coYSw3LGIpfXRoaXMuai55b3V0dWJlRGF0YSE9PXZvaWQgMCYmXy5LdyhhLDgsdGhpcy5qLmpzcGJZb3V0dWJlRGF0YSk7cmV0dXJuIGF9dG9TdHJpbmcoKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5nZXRBc0pzb24oKSl9aXNDbGllbnRWZSgpe3JldHVybiF0aGlzLmoudHJhY2tpbmdQYXJhbXMmJgohIXRoaXMuai52ZVR5cGV9Z2V0TG9nZ2luZ0RpcmVjdGl2ZXMoKXtyZXR1cm4gdGhpcy5qLmxvZ2dpbmdEaXJlY3RpdmVzfX07WXc9W107Wnc9MDtfLm54PW5ldyBfLkkoImludGVyYWN0aW9uTG9nZ2luZ0NvbW1hbmRNZXRhZGF0YSIpO18uZGFhPW5ldyBfLkkoIndhdGNoUGxheWxpc3RFbmRwb2ludCIpO18uZWFhPW5ldyBfLkkoInJlc29sdmVVcmxDb21tYW5kTWV0YWRhdGEiKTtfLm94PVN5bWJvbCgiTWIiKTtfLnB4PW5ldyBXZWFrTWFwO3ZhciBneD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuWT1bXTt0aGlzLk09W107dGhpcy5LPW5ldyBNYXA7dGhpcy5nYT1uZXcgTWFwO3RoaXMuRD1bXTt0aGlzLlU9W107dGhpcy52PW5ldyBNYXA7dGhpcy5JPW5ldyBNYXA7dGhpcy5vPW5ldyBNYXA7dGhpcy5qPW5ldyBTZXQ7dGhpcy5oYT1uZXcgTWFwfUNmKGEsYixjPTApe2lmKCFhKXJldHVybiExO2M9Xy5pcShjKTtpZighYylyZXR1cm4hMTtfLmZ4KHRoaXMuY2xpZW50LGMsXy5VdyhhKSxiKTtyZXR1cm4hMH1jbGlja0NvbW1hbmQoYSxiLGM9MCl7cmV0dXJuIHRoaXMuQ2YoYS5jbGlja1RyYWNraW5nUGFyYW1zLGIsYyl9c3RhdGVDaGFuZ2VkKGEsYixjPTApe3RoaXMudmlzdWFsRWxlbWVudFN0YXRlQ2hhbmdlZChfLlV3KGEpLGIsYyl9dmlzdWFsRWxlbWVudFN0YXRlQ2hhbmdlZChhLGIsYz0wKXtjPT09MCYmdGhpcy5qLmhhcyhjKT90aGlzLk0ucHVzaChbYSxiXSk6Xy5teCh0aGlzLGEsYixjKX19Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgeXgsengsZ2FhLEh4LEl4LGZhYSxBeCxDeDtfLnF4PWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYS5HYShiLDMsYyl9O18ucng9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5qZi5HYShhLDIsYil9O18uc3g9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClyZXR1cm4gYTtpZih0eXBlb2YgYT09PSJzdHJpbmciJiZhKWE9K2E7ZWxzZSBpZih0eXBlb2YgYSE9PSJudW1iZXIiKXJldHVybjtyZXR1cm4oMCxfLndyKShhKT9hfDA6dm9pZCAwfTtfLnR4PWZ1bmN0aW9uKGEsYixjPTApe3JldHVybiBfLnN4KF8uZWQoYSxiKSk/P2N9O18udXg9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBoPWZhYSsrO3JldHVybiBuZXcgXy5Udyh7dmVUeXBlOmEsdmVDb3VudGVyOmgsZWxlbWVudEluZGV4OmMsZGF0YUVsZW1lbnQ6Yix5b3V0dWJlRGF0YTpkLGpzcGJZb3V0dWJlRGF0YTplLGxvZ2dpbmdEaXJlY3RpdmVzOmZ9KX07Cl8udng9ZnVuY3Rpb24oYSxiLGMsZD0hMSxlLGYpe3ZhciBoPWQ/MTY6ODtkPV8uV3coe2N0dEF1dGhJbmZvOl8ua3EoYil8fHZvaWQgMCxlbmRPZlNlcXVlbmNlOmQsYXV0b21hdGVkTG9nRXZlbnRTb3VyY2U6Zn0sYik7Yz17Y3NuOmIsdmU6Yy5nZXRBc0pzb24oKSxldmVudFR5cGU6aH07ZSYmKGMuY2xpZW50RGF0YT1lKTtiPT09IlVOREVGSU5FRF9DU04iP18uJHcoInZpc3VhbEVsZW1lbnRIaWRkZW4iLGQsYyk6YT9fLkNwKCJ2aXN1YWxFbGVtZW50SGlkZGVuIixjLGEsZCk6Xy5FcCgidmlzdWFsRWxlbWVudEhpZGRlbiIsYyxkKX07Cl8ud3g9ZnVuY3Rpb24oYSxiLGMsZCxlKXtfLmR4KGMsYik7ZT1fLld3KHtjdHRBdXRoSW5mbzpfLmtxKGIpfHx2b2lkIDAsYXV0b21hdGVkTG9nRXZlbnRTb3VyY2U6ZX0sYik7Yz17Y3NuOmIsdmU6Yy5nZXRBc0pzb24oKSxldmVudFR5cGU6MX07ZCYmKGMuY2xpZW50RGF0YT1kKTtiPT09IlVOREVGSU5FRF9DU04iP18uJHcoInZpc3VhbEVsZW1lbnRTaG93biIsZSxjKTphP18uQ3AoInZpc3VhbEVsZW1lbnRTaG93biIsYyxhLGUpOl8uRXAoInZpc3VhbEVsZW1lbnRTaG93biIsYyxlKX07Xy54eD1mdW5jdGlvbihhKXtpZihhPT09d2luZG93KXJldHVybiBudWxsO3ZhciBiPWEucGFyZW50RWxlbWVudDtyZXR1cm4gYj9iOnR5cGVvZiBTaGFkb3dSb290IT09InVuZGVmaW5lZCImJmEuZ2V0Um9vdE5vZGUhPW51bGwmJihhPWEuZ2V0Um9vdE5vZGUoKSxhIGluc3RhbmNlb2YgU2hhZG93Um9vdCk/YS5ob3N0OndpbmRvd307Cnl4PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1fLmlxKGMpO3JldHVybiBhLmNzbj09PW51bGx8fGQ9PT1hLmNzbnx8Yz9kOihhPW5ldyBfLlhqKCJWaXNpYmlsaXR5TG9nZ2VyIGNhbGxlZCBiZWZvcmUgbmV3U2NyZWVuIix7Y2FsbGVyOmIudGFnTmFtZSxwcmV2aW91c19jc246YS5jc24sY3VycmVudF9jc246ZH0pLF8uSXAoYSksbnVsbCl9O3p4PWZ1bmN0aW9uKGEsYil7YT1hLmdldERhdGEoYik7cmV0dXJuIE1hdGguZmxvb3IoTnVtYmVyKGEmJmEubG9nZ2luZ0RpcmVjdGl2ZXMmJmEubG9nZ2luZ0RpcmVjdGl2ZXMudmlzaWJpbGl0eSYmYS5sb2dnaW5nRGlyZWN0aXZlcy52aXNpYmlsaXR5LnR5cGVzfHwiIikpfHwxfTtfLkJ4PWZ1bmN0aW9uKCl7QXguaW5zdGFuY2V8fChBeC5pbnN0YW5jZT1uZXcgQXgpO3JldHVybiBBeC5pbnN0YW5jZX07Xy5EeD1mdW5jdGlvbigpe0N4Lmluc3RhbmNlfHwoQ3guaW5zdGFuY2U9bmV3IEN4KX07Cl8uRXg9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIF8uVmkoKCk9PntpZighYi52ZVR5cGUpcmV0dXJuIF8uSHAobmV3IF8uWGooIkVycm9yOiBUcnlpbmcgdG8gZ3JhZnQgYSBjbGllbnQgVkUgd2l0aG91dCBhIHZlVHlwZS4iKSksbnVsbDtpZihiLnZpc2liaWxpdHlUeXBlcyl7dmFyIGU9Yi52aXNpYmlsaXR5VHlwZXMucmVkdWNlKChmLGgpPT5mfGgpO2U9e3Zpc2liaWxpdHk6e3R5cGVzOlN0cmluZyhlKX19fWU9Xy51eChiLnZlVHlwZSxiLnZpc3VhbEVsZW1lbnQsYi5lbGVtZW50SW5kZXgsYi5jbGllbnRZb3VUdWJlRGF0YSx2b2lkIDAsZSk7cmV0dXJuIF8uaXgoYSxlLGMsZCk/ZTpudWxsfSkoKX07Xy5GeD1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPTA7Zm9yKGxldCBkIGluIGEpYltjKytdPWQ7cmV0dXJuIGJ9OwpfLkd4PWZ1bmN0aW9uKGEsYil7YT1hLmpmPz9hO2ZvcihsZXQgYyBvZiBhLnZpc2liaWxpdHlNb25pdG9yS2V5c3x8W10pYi5yZihjKTthLnZpc2liaWxpdHlNb25pdG9yS2V5cz12b2lkIDB9O18uSng9ZnVuY3Rpb24oYSxiKXtpZihfLmlxKCkpe2lmKF8ueCgia2V2bGFyX3ZpbWlvX3VzZV9zaGFyZWRfbW9uaXRvciIpKUh4KGEsYi5kYXRhKTtlbHNlIGlmKCFIeChhLGIuZGF0YSkpcmV0dXJuO3ZhciBjPWIuZGF0YSxkPUl4KGMpO2lmKF8ueCgiZW5hYmxlX2NsaWVudF92ZV9zcGVjX2xvZ2dpbmciKSlfLkd4KGEsYi5vYnNlcnZlcik7ZWxzZXt2YXIgZT1hLmpmPz9hO2UudHJhY2tlZFBhcmFtcyYmZS50cmFja2VkUGFyYW1zIT09ZCYmXy5HeChhLGIub2JzZXJ2ZXIpfWU9YS5qZj8/YTshY3x8ZS5kYXRhJiZlLmRhdGE9PT1jfHwoZS5kYXRhPWMpO2dhYShhLGIpO2UudHJhY2tlZFBhcmFtcz1kfX07CmdhYT1mdW5jdGlvbihhLGIpe3ZhciBjPWIub2JzZXJ2ZXI7aWYoIWMmJl8ueCgid2ViX3NraXBfbWlzc2luZ192aW1pb19vYnNlcnZlciIpKV8uSXAobmV3IF8uWGooIlZpc2liaWxpdHlPYnNlcnZlciBpcyBub3QgZGVmaW5lZC4iLGEudGFnTmFtZSxhLnRyYWNrZWRQYXJhbXMsYi5kYXRhPy50cmFja2luZ1BhcmFtcyxiLmRhdGE/LmxvZ2dpbmdEaXJlY3RpdmVzKSk7ZWxzZXt2YXIgZD1iLmxheWVyLGU9Yi5OYnx8KCgpPT57fSksZj1iLkxqLGg9YS5qZj8/YSxrPVtdO2IuZWImJmsucHVzaChjLm9ic2VydmUoYSwoKT0+e2IueEEmJmIueEEoKXx8KF8uRHgoKSxfLlZpKF8uQngoKS5ZKS5iaW5kKF8uQngoKSkoaCx2b2lkIDAsZCw3KSk7ZSghMCl9LGIuZWIpKTtiLk5jJiZrLnB1c2goYy5vYnNlcnZlKGEsKCk9PntfLkR4KCk7Xy5WaShfLkJ4KCkuSSkuYmluZChfLkJ4KCkpKGgsdm9pZCAwLGQsNyk7ZSghMSl9LGIuTmMpKTtiLkxoJiZmJiZrLnB1c2goYy5vYnNlcnZlKGEsKCk9Pgp7ZigpfSxiLkxoKSk7aC52aXNpYmlsaXR5TW9uaXRvcktleXM9a319OwpIeD1mdW5jdGlvbihhLGIpe2E9YS5qZj8/YTtpZihhLnZpc3VhbEVsZW1lbnQmJiFiKXJldHVybiEwO2lmKCFiKXJldHVybiExO3ZhciBjPSExO18ueCgiZW5hYmxlX2NsaWVudF92ZV9zcGVjX2xvZ2dpbmciKSYmKGM9ISFiLmxvZ2dpbmdEaXJlY3RpdmVzPy5jbGllbnRWZVNwZWM/LnVpVHlwZSk7dmFyIGQ9SXgoYik7aWYoIWQmJiFjKXJldHVybiExO18ueCgibXdlYl9jb21wb25lbnRfdmlzaWJpbGl0eV9sb2dnaW5nIikmJihhLnZlQ29udGFpbmVyfHwoYS52ZUNvbnRhaW5lcj17fSksYS52ZUNvbnRhaW5lci50cmFja2luZ1BhcmFtcz1kKTtpZihhLnRyYWNrZWRQYXJhbXMmJmEudHJhY2tlZFBhcmFtcz09PWR8fF8ueCgiZW5hYmxlX2NsaWVudF92ZV9zcGVjX2xvZ2dpbmciKSYmYS52aXN1YWxFbGVtZW50Py5pc0NsaWVudFZlKCkmJihjPWEudmlzdWFsRWxlbWVudD8uZ2V0QXNKc3BiKCksXy50eChjLDIpPT09Yi5sb2dnaW5nRGlyZWN0aXZlcz8uY2xpZW50VmVTcGVjPy51aVR5cGUmJgpfLnR4KGMsMywtMSk9PT1iLmxvZ2dpbmdEaXJlY3RpdmVzPy5jbGllbnRWZVNwZWM/LmVsZW1lbnRJbmRleCkpcmV0dXJuITE7Xy54KCJlbmFibGVfY2xpZW50X3ZlX3NwZWNfbG9nZ2luZyIpJiYhYS52aXN1YWxFbGVtZW50JiZiLmxvZ2dpbmdEaXJlY3RpdmVzPy5jbGllbnRWZVNwZWM/LnVpVHlwZSYmKGM9Yi5sb2dnaW5nRGlyZWN0aXZlcy5jbGllbnRWZVNwZWMudWlUeXBlLGQ9Yi5sb2dnaW5nRGlyZWN0aXZlcy5jbGllbnRWZVNwZWMuZWxlbWVudEluZGV4LGI9Yi5sb2dnaW5nRGlyZWN0aXZlcy5jbGllbnRWZVNwZWMuY2xpZW50WW91dHViZURhdGEsYS52aXN1YWxFbGVtZW50PV8uRXgoXy5oeCgpLHt2ZVR5cGU6YyxlbGVtZW50SW5kZXg6ZCxjbGllbnRZb3VUdWJlRGF0YTpifSkpO3JldHVybiEwfTsKSXg9ZnVuY3Rpb24oYSl7aWYoYT8ucmVuZGVyZXJDb250ZXh0KXtsZXQgYj1fLkIoYS5yZW5kZXJlckNvbnRleHQsXy5LeCk7aWYoYj8ubG9nZ2luZ0RpcmVjdGl2ZXMpcmV0dXJuIGIubG9nZ2luZ0RpcmVjdGl2ZXMudHJhY2tpbmdQYXJhbXN9cmV0dXJuIGE/LmxvZ2dpbmdEaXJlY3RpdmVzP2EubG9nZ2luZ0RpcmVjdGl2ZXMudHJhY2tpbmdQYXJhbXM6YT8udHJhY2tpbmdQYXJhbXN9O2ZhYT0xOwpBeD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuRD1uZXcgU2V0O3RoaXMuQj1uZXcgU2V0O3RoaXMubz1uZXcgTWFwO3RoaXMuY2xpZW50PXZvaWQgMDt0aGlzLmNzbj1udWxsfUsoKXt0aGlzLmNsZWFyKCk7dGhpcy5jc249Xy5pcSgpfWNsZWFyKCl7dGhpcy5ELmNsZWFyKCk7dGhpcy5CLmNsZWFyKCk7dGhpcy5vLmNsZWFyKCk7dGhpcy5jc249bnVsbH1ZKGEsYixjLGQpe3ZhciBlPXRoaXMuaihhKSxmPWEudmlzdWFsRWxlbWVudD9hLnZpc3VhbEVsZW1lbnQ6ZTtiPXRoaXMuRC5oYXMoZik7dmFyIGg9dGhpcy5vLmdldChmKTt0aGlzLkQuYWRkKGYpO3RoaXMuby5zZXQoZiwhMCk7YS5pbXByZXNzaW9uTG9nJiYhYiYmYS5pbXByZXNzaW9uTG9nKCk7aWYoZXx8YS52aXN1YWxFbGVtZW50KWlmKGM9eXgodGhpcyxhLGMpKXt2YXIgaz0hIXRoaXMuZ2V0RGF0YShhKT8ubG9nZ2luZ0RpcmVjdGl2ZXM7aWYoengodGhpcyxhKXx8aylmPWEudmlzdWFsRWxlbWVudD9hLnZpc3VhbEVsZW1lbnQ6Cl8uVXcoZSksYS5pbnRlcmFjdGlvbkxvZ2dpbmdDbGllbnREYXRhfHwoYS5pbnRlcmFjdGlvbkxvZ2dpbmdDbGllbnREYXRhPXt9KSxlPWEuaW50ZXJhY3Rpb25Mb2dnaW5nQ2xpZW50RGF0YSxrfHxiP3p4KHRoaXMsYSkmND9ofHwoYT10aGlzLmNsaWVudCxfLmR4KGYsYyksZD1fLld3KHtjdHRBdXRoSW5mbzpfLmtxKGMpfHx2b2lkIDAsYXV0b21hdGVkTG9nRXZlbnRTb3VyY2U6dm9pZCAwfSxjKSxiPXtjc246Yyx2ZTpmLmdldEFzSnNvbigpLGV2ZW50VHlwZTo0fSxlJiYoYi5jbGllbnREYXRhPWUpLGM9PT0iVU5ERUZJTkVEX0NTTiI/Xy4kdygidmlzdWFsRWxlbWVudFNob3duIixkLGIpOmE/Xy5DcCgidmlzdWFsRWxlbWVudFNob3duIixiLGEsZCk6Xy5FcCgidmlzdWFsRWxlbWVudFNob3duIixiLGQpKTp6eCh0aGlzLGEpJjEmJiFiJiZfLnd4KHRoaXMuY2xpZW50LGMsZixlLGQpOl8ud3godGhpcy5jbGllbnQsYyxmLGUsZCl9fUkoYSxiLGMsZCl7dmFyIGU9dGhpcy5qKGEpLApmPWEudmlzdWFsRWxlbWVudD9hLnZpc3VhbEVsZW1lbnQ6ZTtiPXRoaXMuQi5oYXMoZik7dmFyIGg9dGhpcy5vLmdldChmKTt0aGlzLkIuYWRkKGYpO3RoaXMuby5zZXQoZiwhMSk7aWYoaD09PSExKXJldHVybiEwO2lmKCFlJiYhYS52aXN1YWxFbGVtZW50KXJldHVybiExO2M9eXgodGhpcyxhLGMpO2lmKCFjfHwhengodGhpcyxhKSYmdGhpcy5nZXREYXRhKGEpPy5sb2dnaW5nRGlyZWN0aXZlcylyZXR1cm4hMTtlPWEudmlzdWFsRWxlbWVudD9hLnZpc3VhbEVsZW1lbnQ6Xy5VdyhlKTt6eCh0aGlzLGEpJjg/Xy52eCh0aGlzLmNsaWVudCxjLGUsdm9pZCAwLHZvaWQgMCxkKTp6eCh0aGlzLGEpJjImJiFiJiYoYT10aGlzLmNsaWVudCxkPV8uV3coe2N0dEF1dGhJbmZvOl8ua3EoYyl8fHZvaWQgMCxhdXRvbWF0ZWRMb2dFdmVudFNvdXJjZTpkfSxjKSxiPXtjc246Yyx2ZTplLmdldEFzSnNvbigpLGV2ZW50VHlwZToyfSxjPT09IlVOREVGSU5FRF9DU04iP18uJHcoInZpc3VhbEVsZW1lbnRIaWRkZW4iLApkLGIpOmE/Xy5DcCgidmlzdWFsRWxlbWVudEhpZGRlbiIsYixhLGQpOl8uRXAoInZpc3VhbEVsZW1lbnRIaWRkZW4iLGIsZCkpO3JldHVybiEwfWooYSl7dmFyIGI9dGhpcy5nZXREYXRhKGEpO3JldHVybiBfLngoImlsX3VzZV92aWV3X21vZGVsX2xvZ2dpbmdfY29udGV4dCIpJiZiPy5jb250ZXh0Py5sb2dnaW5nQ29udGV4dD8ubG9nZ2luZ0RpcmVjdGl2ZXM/Yi5jb250ZXh0LmxvZ2dpbmdDb250ZXh0LmxvZ2dpbmdEaXJlY3RpdmVzLnRyYWNraW5nUGFyYW1zfHwiIjpiPy5yZW5kZXJlckNvbnRleHQ/LmxvZ2dpbmdDb250ZXh0Py5sb2dnaW5nRGlyZWN0aXZlcz9iLnJlbmRlcmVyQ29udGV4dC5sb2dnaW5nQ29udGV4dC5sb2dnaW5nRGlyZWN0aXZlcy50cmFja2luZ1BhcmFtc3x8IiI6Yj8ubG9nZ2luZ0RpcmVjdGl2ZXM/Yi5sb2dnaW5nRGlyZWN0aXZlcy50cmFja2luZ1BhcmFtc3x8IiI6YS52ZUNvbnRhaW5lcj8udHJhY2tpbmdQYXJhbXM/YS52ZUNvbnRhaW5lci50cmFja2luZ1BhcmFtczoKYj8udHJhY2tpbmdQYXJhbXN8fCIifXYoYSl7aWYoXy54KCJ3aXpfbmV4dF9jbGllbnRfdmVfcGFyZW50X2ZpeCIpKXt2YXIgYj10aGlzLmooYSk7cmV0dXJuIGEudmlzdWFsRWxlbWVudD9hLnZpc3VhbEVsZW1lbnQ6Yj9fLlV3KGIpOihhPV8ueHgoYSkpP3RoaXMudihhKTpudWxsfWI9dGhpcy5qKGEpO3JldHVybiBhLnZpc3VhbEVsZW1lbnQ/YS52aXN1YWxFbGVtZW50OmI/Xy5VdyhiKTphLnBhcmVudEVsZW1lbnQ/dGhpcy52KGEucGFyZW50RWxlbWVudCk6bnVsbH1nZXREYXRhKGEpe3ZhciBiPWEuZGF0YXx8YS5wcm9wcz8uZGF0YTtpZighYnx8YS5pc1dlYkNvbXBvbmVudFdyYXBwZXIpYj1fLnB4LmdldChhKT8uW18ub3hdO3JldHVybiBifX07Q3g9Y2xhc3N7Y2xlYXIoKXtfLlZpKF8uQngoKS5jbGVhcikuYmluZChfLkJ4KCkpKCl9fTtfLkt4PW5ldyBfLkkoImxvZ2dpbmdDb250ZXh0Iik7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8uTHg9bmV3IF8uVnMoIlZJU0lCSUxJVFlfT0JTRVJWRVIiKTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIE94LFB4LFF4LFN4LFR4LFZ4LGhhYSxpYWEsamFhLCR4LGF5LGN5LGJ5LGthYSxkeSxsYWEsZXksZ3ksaHksaXksb3kscHkscXkscnksdHksdnksb2FhLHBhYSxreTtfLk14PWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9ITE7ZD1fLmRkKGEsZCxlLGg9Pnt2YXIgaz1fLmt3KGgsYyxiKTtmPWshPT1oJiZrIT1udWxsO3JldHVybiBrfSk7aWYoZCE9bnVsbClyZXR1cm4gZiYmIV8uQmMoZCkmJl8ub3coYSxiKSxkfTtfLk54PWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuRGEsZj1lW18uQWNdfDA7Yj1fLk14KGUsZixiLGMsZCk7aWYoYj09bnVsbClyZXR1cm4gYjtmPWVbXy5BY118MDtpZighXy5CYyhhLGYpKXtsZXQgaD1fLmx3KGIpO2ghPT1iJiYoXy5tdyhhKSYmKGU9YS5EYSxmPWVbXy5BY118MCksYj1oLGY9Xy5wdyhlLGYsYyxiLGQpLF8ub3coZSxmKSl9cmV0dXJuIGJ9OwpPeD1mdW5jdGlvbihhKXthLlp8fChhLlo9ITAsYS5kaXNwYXRjaEV2ZW50KCJjb21wbGV0ZSIpLGEuZGlzcGF0Y2hFdmVudCgiZXJyb3IiKSl9O1B4PWZ1bmN0aW9uKGEsYil7aWYoYS5yYSl7YS5EJiYoY2xlYXJUaW1lb3V0KGEuRCksYS5EPW51bGwpO2xldCBjPWEucmE7YS5yYT1udWxsO2J8fGEuZGlzcGF0Y2hFdmVudCgicmVhZHkiKTt0cnl7Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbH1jYXRjaChkKXt9fX07UXg9ZnVuY3Rpb24oYSxiKXthLmo9ITE7YS5yYSYmKGEudj0hMCxhLnJhLmFib3J0KCksYS52PSExKTthLkI9YjtPeChhKTtQeChhKX07Xy5SeD1mdW5jdGlvbihhKXt0cnl7cmV0dXJuKGEucmE/YS5yYS5yZWFkeVN0YXRlOjApPjI/YS5yYS5zdGF0dXM6LTF9Y2F0Y2goYil7cmV0dXJuLTF9fTsKU3g9ZnVuY3Rpb24oYSl7aWYoYS5qJiZ0eXBlb2YgXy5DcSE9InVuZGVmaW5lZCIpaWYoYS5JJiYoYS5yYT9hLnJhLnJlYWR5U3RhdGU6MCk9PTQpc2V0VGltZW91dChhLmdyLmJpbmQoYSksMCk7ZWxzZSBpZihhLmRpc3BhdGNoRXZlbnQoInJlYWR5c3RhdGVjaGFuZ2UiKSxhLmlzQ29tcGxldGUoKSl7YS5qPSExO3RyeXtpZihhLmlzU3VjY2VzcygpKWEuZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSxhLmRpc3BhdGNoRXZlbnQoInN1Y2Nlc3MiKTtlbHNle3RyeXt2YXIgYj0oYS5yYT9hLnJhLnJlYWR5U3RhdGU6MCk+Mj9hLnJhLnN0YXR1c1RleHQ6IiJ9Y2F0Y2goYyl7Yj0iIn1hLkI9YisiIFsiK18uUngoYSkrIl0iO094KGEpfX1maW5hbGx5e1B4KGEpfX19OwpUeD1mdW5jdGlvbigpe18uZ2YuY2FsbCh0aGlzKTt0aGlzLmhlYWRlcnM9bmV3IE1hcDt0aGlzLmo9ITE7dGhpcy5yYT1udWxsO3RoaXMuQj10aGlzLmhhPSIiO3RoaXMudj10aGlzLmdhPXRoaXMuST10aGlzLlo9ITE7dGhpcy5VPTA7dGhpcy5EPW51bGw7dGhpcy55YT0iIjt0aGlzLm9hPSExfTtfLlV4PWZ1bmN0aW9uKGEpe18uRHgoKTtyZXR1cm4gXy5WaShfLkJ4KCkudikuYmluZChfLkJ4KCkpKGEpfTtWeD1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gXy54KCJlbmFibGVfY2xpZW50X3ZlX3NwZWMiKSYmYi5jbGllbnRWZVNwZWM/KGI9Xy51eChiLmNsaWVudFZlU3BlYy51aVR5cGUsdm9pZCAwLGIuY2xpZW50VmVTcGVjLmVsZW1lbnRJbmRleCxiLmNsaWVudFZlU3BlYy5jbGllbnRZb3V0dWJlRGF0YSx2b2lkIDAsYiksXy5peChhLGIsYyxkKT9iOm51bGwpOmIudHJhY2tpbmdQYXJhbXM/Xy5seChhLGIudHJhY2tpbmdQYXJhbXMsYyxkKTpudWxsfTsKXy5XeD1mdW5jdGlvbihhLGIsYyxkLGUpe18ubncoYSk7dmFyIGY9YS5EYTtfLnB3KGYsZltfLkFjXXwwLGIsKGQ9PT0iMCI/TnVtYmVyKGMpPT09MDpjPT09ZCk/dm9pZCAwOmMsZSk7cmV0dXJuIGF9O18uWHg9ZnVuY3Rpb24oYSxiKXtpZihiPT1udWxsfHxiPT0iIilyZXR1cm4gbmV3IGE7Yj1KU09OLnBhcnNlKGIpO2lmKCFBcnJheS5pc0FycmF5KGIpKXRocm93IEVycm9yKCJ6Iik7YltfLkFjXXw9MzI7cmV0dXJuIG5ldyBhKGIpfTtfLll4PWZ1bmN0aW9uKGEsLi4uYil7aWYoYi5sZW5ndGg9PT0wKXJldHVybiBfLlRhKGFbMF0pO3ZhciBjPWFbMF07Zm9yKGxldCBkPTA7ZDxiLmxlbmd0aDtkKyspYys9ZW5jb2RlVVJJQ29tcG9uZW50KGJbZF0pK2FbZCsxXTtyZXR1cm4gXy5UYShjKX07Xy5aeD1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPTA7Zm9yKGxldCBkIGluIGEpYltjKytdPWFbZF07cmV0dXJuIGJ9OwpoYWE9ZnVuY3Rpb24oYSl7aWYoYS5NYyYmdHlwZW9mIGEuTWM9PSJmdW5jdGlvbiIpcmV0dXJuIGEuTWMoKTtpZih0eXBlb2YgTWFwIT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBNYXB8fHR5cGVvZiBTZXQhPT0idW5kZWZpbmVkIiYmYSBpbnN0YW5jZW9mIFNldClyZXR1cm4gQXJyYXkuZnJvbShhLnZhbHVlcygpKTtpZih0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiBhLnNwbGl0KCIiKTtpZihfLnlhKGEpKXtsZXQgYj1bXSxjPWEubGVuZ3RoO2ZvcihsZXQgZD0wO2Q8YztkKyspYi5wdXNoKGFbZF0pO3JldHVybiBifXJldHVybiBfLlp4KGEpfTsKaWFhPWZ1bmN0aW9uKGEpe2lmKGEucmQmJnR5cGVvZiBhLnJkPT0iZnVuY3Rpb24iKXJldHVybiBhLnJkKCk7aWYoIWEuTWN8fHR5cGVvZiBhLk1jIT0iZnVuY3Rpb24iKXtpZih0eXBlb2YgTWFwIT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBNYXApcmV0dXJuIEFycmF5LmZyb20oYS5rZXlzKCkpO2lmKCEodHlwZW9mIFNldCE9PSJ1bmRlZmluZWQiJiZhIGluc3RhbmNlb2YgU2V0KSl7aWYoXy55YShhKXx8dHlwZW9mIGE9PT0ic3RyaW5nIil7bGV0IGI9W107YT1hLmxlbmd0aDtmb3IobGV0IGM9MDtjPGE7YysrKWIucHVzaChjKTtyZXR1cm4gYn1yZXR1cm4gXy5GeChhKX19fTsKamFhPWZ1bmN0aW9uKGEsYixjKXtpZihhLmZvckVhY2gmJnR5cGVvZiBhLmZvckVhY2g9PSJmdW5jdGlvbiIpYS5mb3JFYWNoKGIsYyk7ZWxzZSBpZihfLnlhKGEpfHx0eXBlb2YgYT09PSJzdHJpbmciKUFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYSxiLGMpO2Vsc2V7bGV0IGQ9aWFhKGEpLGU9aGFhKGEpLGY9ZS5sZW5ndGg7Zm9yKGxldCBoPTA7aDxmO2grKyliLmNhbGwoYyxlW2hdLGQmJmRbaF0sYSl9fTskeD1mdW5jdGlvbihhLGIpe3RoaXMubz10aGlzLmo9bnVsbDt0aGlzLnY9YXx8bnVsbDt0aGlzLkI9ISFifTtheT1mdW5jdGlvbihhKXthLmp8fChhLmo9bmV3IE1hcCxhLm89MCxhLnYmJl8uUmIoYS52LGZ1bmN0aW9uKGIsYyl7YS5hZGQoXy5IYihiKSxjKX0pKX07Y3k9ZnVuY3Rpb24oYSxiKXtheShhKTtiPWJ5KGEsYik7cmV0dXJuIGEuai5oYXMoYil9O2J5PWZ1bmN0aW9uKGEsYil7Yj1TdHJpbmcoYik7YS5CJiYoYj1iLnRvTG93ZXJDYXNlKCkpO3JldHVybiBifTsKa2FhPWZ1bmN0aW9uKGEsYil7YiYmIWEuQiYmKGF5KGEpLGEudj1udWxsLGEuai5mb3JFYWNoKGZ1bmN0aW9uKGMsZCl7dmFyIGU9ZC50b0xvd2VyQ2FzZSgpO2QhPWUmJih0aGlzLnJlbW92ZShkKSx0aGlzLnJlbW92ZShlKSxjLmxlbmd0aD4wJiYodGhpcy52PW51bGwsdGhpcy5qLnNldChieSh0aGlzLGUpLF8ueWIoYykpLHRoaXMubys9Yy5sZW5ndGgpKX0sYSkpO2EuQj1ifTtkeT1mdW5jdGlvbihhLGIpe3JldHVybiBhP2I/ZGVjb2RlVVJJKGEucmVwbGFjZSgvJTI1L2csIiUyNTI1IikpOmRlY29kZVVSSUNvbXBvbmVudChhKToiIn07bGFhPWZ1bmN0aW9uKGEpe2E9YS5jaGFyQ29kZUF0KDApO3JldHVybiIlIisoYT4+NCYxNSkudG9TdHJpbmcoMTYpKyhhJjE1KS50b1N0cmluZygxNil9OwpleT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyI/KGE9ZW5jb2RlVVJJKGEpLnJlcGxhY2UoYixsYWEpLGMmJihhPWEucmVwbGFjZSgvJTI1KFswLTlhLWZBLUZdezJ9KS9nLCIlJDEiKSksYSk6bnVsbH07Cl8uZnk9ZnVuY3Rpb24oYSl7dGhpcy5vPXRoaXMuST10aGlzLkI9IiI7dGhpcy5ZPW51bGw7dGhpcy52PXRoaXMuaj0iIjt0aGlzLkQ9ITE7dmFyIGI7YSBpbnN0YW5jZW9mIF8uZnk/KHRoaXMuRD1hLkQsZ3kodGhpcyxhLkIpLHRoaXMuST1hLkksdGhpcy5vPWEubyxoeSh0aGlzLGEuWSksdGhpcy5qPWEuaixpeSh0aGlzLGEuSy5jbG9uZSgpKSx0aGlzLnY9YS52KTphJiYoYj1fLk1iKFN0cmluZyhhKSkpPyh0aGlzLkQ9ITEsZ3kodGhpcyxiWzFdfHwiIiwhMCksdGhpcy5JPWR5KGJbMl18fCIiKSx0aGlzLm89ZHkoYlszXXx8IiIsITApLGh5KHRoaXMsYls0XSksdGhpcy5qPWR5KGJbNV18fCIiLCEwKSxpeSh0aGlzLGJbNl18fCIiLCEwKSx0aGlzLnY9ZHkoYls3XXx8IiIpKToodGhpcy5EPSExLHRoaXMuSz1uZXcgJHgobnVsbCx0aGlzLkQpKX07Z3k9ZnVuY3Rpb24oYSxiLGMpe2EuQj1jP2R5KGIsITApOmI7YS5CJiYoYS5CPWEuQi5yZXBsYWNlKC86JC8sIiIpKX07Cmh5PWZ1bmN0aW9uKGEsYil7aWYoYil7Yj1OdW1iZXIoYik7aWYoaXNOYU4oYil8fGI8MCl0aHJvdyBFcnJvcigiS2FgIitiKTthLlk9Yn1lbHNlIGEuWT1udWxsfTtpeT1mdW5jdGlvbihhLGIsYyl7YiBpbnN0YW5jZW9mICR4PyhhLks9YixrYWEoYS5LLGEuRCkpOihjfHwoYj1leShiLG1hYSkpLGEuSz1uZXcgJHgoYixhLkQpKX07Xy5qeT1mdW5jdGlvbihhLGIpe18uZ2YuY2FsbCh0aGlzKTt0aGlzLnY9YXx8MTt0aGlzLmo9Ynx8Xy51O3RoaXMuQj0oMCxfLkNhKSh0aGlzLmFCLHRoaXMpO3RoaXMuRD1fLkVhKCl9O18ubHk9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsaCl7dmFyIGs9bmV3IFR4O2t5LnB1c2goayk7YiYmay5saXN0ZW4oImNvbXBsZXRlIixiKTtfLmJmKGssInJlYWR5IixrLlB1KTtmJiYoay5VPU1hdGgubWF4KDAsZikpO2gmJihrLm9hPWgpO2suc2VuZChhLGMsZCxlKX07Xy5teT1mdW5jdGlvbihhKXtmb3IobGV0IGIgb2YgYS5yZWdpc3Rlci52YWx1ZXMoKSliLnpnKCJBQk9SVEVEIil9OwpfLm55PWZ1bmN0aW9uKGEsYixjKXtzd2l0Y2goYi50eXBlKXtjYXNlICJtYXBwaW5nIjpyZXR1cm4gYi52YWx1ZTtjYXNlICJmYWN0b3J5IjpyZXR1cm4gYj1iLnZhbHVlKCksYS5tYXBwaW5ncy5zZXQoYy50b1N0cmluZygpLHt0eXBlOiJtYXBwaW5nIix2YWx1ZTpifSksYjtkZWZhdWx0OnJldHVybiBfLmViKGIsdm9pZCAwKX19OwpveT1mdW5jdGlvbihhLGIsYyl7aWYoXy54KCJkZWJ1Z193ZWJfdmVfZGF0YSIpKXt2YXIgZD1fLkIoYz8ucmVuZGVyZXJDb250ZXh0LF8uS3gpPy5sb2dnaW5nRGlyZWN0aXZlczshZCYmYyYmKGQ9Yy5sb2dnaW5nRGlyZWN0aXZlcyk7YTp7aWYoZD1jPy50cmFja2luZ1BhcmFtcz8/ZD8udHJhY2tpbmdQYXJhbXMpdHJ5e3ZhciBlPV8uQ28oZCk7aWYoZSl7bGV0IGg9Xy5FbyhlLDEpLGs9Xy5FbyhlLDIpO2U9e307aCE9PXZvaWQgMCYmKGUuR3M9TnVtYmVyKGgpKTtrIT09dm9pZCAwJiYoZS52ZVR5cGU9TnVtYmVyKGspKTt2YXIgZj1lO2JyZWFrIGF9fWNhdGNoKGgpe31mPXZvaWQgMH1mPy52ZVR5cGUhPT12b2lkIDAmJihhLmRhdGFzZXQudmU9U3RyaW5nKGYudmVUeXBlKSk7Zj8uR3MhPT12b2lkIDAmJihhLmRhdGFzZXQudmVJbmRleD1TdHJpbmcoZi5HcykpOyhjPWM/LmxvZ2dpbmdEaXJlY3RpdmVzPy5jbGllbnRWZVNwZWM/LnVpVHlwZSl8fChjPWIudmVUeXBlfHxiLmxvZ2dpbmdDb25maWc/LnZlVHlwZSk7CmMmJihhLmRhdGFzZXQudmU9U3RyaW5nKGMpKX19O3B5PWZ1bmN0aW9uKGEpe3JldHVybiBhLmxheWVyIT09dm9pZCAwP2EubGF5ZXI6YS5wYXJlbnQ/cHkoYS5wYXJlbnQpOmEubGF5ZXI9MH07cXk9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLnB4LmdldChhKXx8e1plOmJ9O2MuWmU9YjtfLnB4LnNldChhLGMpO2EuZ2V0U2NyZWVuTGF5ZXI9KCk9PnB5KGMuWmUpfTtyeT1mdW5jdGlvbihhKXtmb3IoYT1hLnBhcmVudE5vZGU7YSYmIV8ucHguZ2V0KGEpPy5XeCYmIShhLmpmPz9hKS5ESjspYT1hLnBhcmVudE5vZGV8fGEuaG9zdDtpZihhKXJldHVybiBfLnB4LmdldChhKX07Xy5zeT1mdW5jdGlvbihhKXtpZihhKXtfLnB4LmRlbGV0ZShhKTtsZXQgYj1fLnkoKS5yZXNvbHZlKF8uTHgpO18uR3goYSxiKX19OwpfLnV5PWZ1bmN0aW9uKGEsYixjPSExKXtpZihjKXtpZihjPWEuZ2V0QXR0cmlidXRlKCJjbGllbnQtdmUtdHlwZSIpLGIuZGF0YSYmIWIuQkl8fGMpXy50digoKT0+e3ZhciBkPV8uQnYoYi5kYXRhKTt0eShhLGQpO295KGEsYixkKX0sImEiKSxfLll1KCgpPT52b2lkIF8uc3koYSkpfWVsc2UgdHlwZW9mIGIuZGF0YSE9PSJmdW5jdGlvbiImJihjPWIuZGF0YSx0eShhLGMpLG95KGEsYixjKSl9Owp0eT1mdW5jdGlvbihhLGIpe25hYSsrO3Z5KGEsYikmJl8uQ2soKS5HYSgoKT0+e18ucXgoXy5DaygpLCgpPT57aWYodnkoYSxiKSYmYS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudD09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmYSl7dmFyIGM7aWYoYS5nZXRBdHRyaWJ1dGUoImxheWVyIikpe3ZhciBkPWM9TnVtYmVyKGEuZ2V0QXR0cmlidXRlKCJsYXllciIpKSxlPV8ucHguZ2V0KGEpO2U/ZS5aZS5sYXllcj1kOnF5KGEsbmV3IHd5KGQpKTsoZD1yeShhKSkmJl8ucHguZ2V0KGEpPy5aZS5zZXRQYXJlbnQoZC5aZSl9ZWxzZShjPV8ucHguZ2V0KGEpKT9jPXB5KGMuWmUpOihjPXB5LGQ9bmV3IHd5LChlPXJ5KGEpKSYmZC5zZXRQYXJlbnQoZS5aZSkscXkoYSxkKSxjPWMoZCkpO2M/PyhjPTApO2Q9YS5nZXRBdHRyaWJ1dGUoImNsaWVudC12ZS10eXBlIik7ZT1OdW1iZXIoZCk7dmFyIGY9ITE7ZD0hMTt2YXIgaD1fLnB4LmdldChhKTtoJiYoaFtfLm94XSE9PWJ8fGUmJl8ucHguZ2V0KGEpPy5VZD09PQp2b2lkIDApJiYoaFtfLm94XT1iLGY9ZD1oLld4PSEwKTtfLnB4LmhhcyhhKSYmKF8ucHguZ2V0KGEpLlVkPWUpO2EudmlzdWFsRWxlbWVudCYmKGQ9ITApO3ZhciBrO18ueCgid2l6X25leHRfbGRfZml4X2NsaWVudF92ZV9zcGVjIik/az1fLkIoYj8ucmVuZGVyZXJDb250ZXh0LF8uS3gpPy5sb2dnaW5nRGlyZWN0aXZlc3x8Yj8ubG9nZ2luZ0RpcmVjdGl2ZXM6az1iPy5sb2dnaW5nRGlyZWN0aXZlcztfLngoIndpel9uZXh0X2NsaWVudF92ZV9wYXJlbnRfZml4Iik/ayYmKGsuY2xpZW50VmVTcGVjfHxrLnRyYWNraW5nUGFyYW1zKSYmKGg9KGg9Xy54eChhKSk/Xy5VeChoKTpudWxsLGs9VngoXy5oeCgpLGssaHx8dm9pZCAwLGMpKSYmKGEudmlzdWFsRWxlbWVudD1rKTprJiZrLmNsaWVudFZlU3BlYyYmKGg9Xy5VeChhKSxrPVZ4KF8uaHgoKSxrLGh8fHZvaWQgMCxjKSkmJihhLnZpc3VhbEVsZW1lbnQ9ayk7IWEudmlzdWFsRWxlbWVudCYmZSYmZiYmKGEudmVUeXBlPWUsaz12b2lkIDAsCl8ueCgid2l6X25leHRfY2xpZW50X3ZlX3BhcmVudF9maXgiKSYmKGU9Xy54eChhKSkmJihrPV8uVXgoZSkpLGs9Xy5FeChfLmh4KCksYSxrLGMpLGEudmlzdWFsRWxlbWVudD1rKTtkJiYoaz1fLnkoKS5yZXNvbHZlKF8uTHgpLF8uSngoYSx7ZGF0YTpiLG9ic2VydmVyOmssbGF5ZXI6YyxlYjp7VmI6ITEsc3RhdGU6InZpc2libGUifSxOYzp7VmI6ITEsc3RhdGU6ImhpZGRlbiJ9fSkpfX0sMCl9LDgpfTt2eT1mdW5jdGlvbihhLGIpe3JldHVybiBiPy50cmFja2luZ1BhcmFtc3x8Yj8ubG9nZ2luZ0RpcmVjdGl2ZXN8fF8uQihiPy5yZW5kZXJlckNvbnRleHQsXy5LeCl8fGEuZ2V0QXR0cmlidXRlKCJjbGllbnQtdmUtdHlwZSIpPyEwOiExfTtvYWE9L15odHRwcz8kL2k7cGFhPVsiUE9TVCIsIlBVVCJdO2t5PVtdO18uSGEoVHgsXy5nZik7Xy5nPVR4LnByb3RvdHlwZTtfLmcuUHU9ZnVuY3Rpb24oKXt0aGlzLmRpc3Bvc2UoKTtfLnhiKGt5LHRoaXMpfTsKXy5nLnNlbmQ9ZnVuY3Rpb24oYSxiLGMsZCl7aWYodGhpcy5yYSl0aHJvdyBFcnJvcigiUGFgIit0aGlzLmhhKyJgIithKTtiPWI/Yi50b1VwcGVyQ2FzZSgpOiJHRVQiO3RoaXMuaGE9YTt0aGlzLkI9IiI7dGhpcy5aPSExO3RoaXMuaj0hMDt0aGlzLnJhPW5ldyBYTUxIdHRwUmVxdWVzdDt0aGlzLnJhLm9ucmVhZHlzdGF0ZWNoYW5nZT0oMCxfLnlnKSgoMCxfLkNhKSh0aGlzLmdyLHRoaXMpKTt0cnl7dGhpcy5nYT0hMCx0aGlzLnJhLm9wZW4oYixTdHJpbmcoYSksITApLHRoaXMuZ2E9ITF9Y2F0Y2goZil7UXgodGhpcyxmKTtyZXR1cm59YT1jfHwiIjtjPW5ldyBNYXAodGhpcy5oZWFkZXJzKTtpZihkKWlmKE9iamVjdC5nZXRQcm90b3R5cGVPZihkKT09PU9iamVjdC5wcm90b3R5cGUpZm9yKHZhciBlIGluIGQpYy5zZXQoZSxkW2VdKTtlbHNlIGlmKHR5cGVvZiBkLmtleXM9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgZC5nZXQ9PT0iZnVuY3Rpb24iKWZvcihsZXQgZiBvZiBkLmtleXMoKSljLnNldChmLApkLmdldChmKSk7ZWxzZSB0aHJvdyBFcnJvcigiUWFgIitTdHJpbmcoZCkpO2Q9QXJyYXkuZnJvbShjLmtleXMoKSkuZmluZChmPT4iY29udGVudC10eXBlIj09Zi50b0xvd2VyQ2FzZSgpKTtlPV8udS5Gb3JtRGF0YSYmYSBpbnN0YW5jZW9mIF8udS5Gb3JtRGF0YTshKF8uc2IocGFhLGIpPj0wKXx8ZHx8ZXx8Yy5zZXQoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04Iik7Zm9yKGxldCBbZixoXW9mIGMpdGhpcy5yYS5zZXRSZXF1ZXN0SGVhZGVyKGYsaCk7dGhpcy55YSYmKHRoaXMucmEucmVzcG9uc2VUeXBlPXRoaXMueWEpOyJ3aXRoQ3JlZGVudGlhbHMiaW4gdGhpcy5yYSYmdGhpcy5yYS53aXRoQ3JlZGVudGlhbHMhPT10aGlzLm9hJiYodGhpcy5yYS53aXRoQ3JlZGVudGlhbHM9dGhpcy5vYSk7dHJ5e3RoaXMuRCYmKGNsZWFyVGltZW91dCh0aGlzLkQpLHRoaXMuRD1udWxsKSx0aGlzLlU+MCYmKHRoaXMuRD1zZXRUaW1lb3V0KHRoaXMuZEIuYmluZCh0aGlzKSwKdGhpcy5VKSksdGhpcy5JPSEwLHRoaXMucmEuc2VuZChhKSx0aGlzLkk9ITF9Y2F0Y2goZil7UXgodGhpcyxmKX19O18uZy5kQj1mdW5jdGlvbigpe3R5cGVvZiBfLkNxIT0idW5kZWZpbmVkIiYmdGhpcy5yYSYmKHRoaXMuQj0iVGltZWQgb3V0IGFmdGVyICIrdGhpcy5VKyJtcywgYWJvcnRpbmciLHRoaXMuZGlzcGF0Y2hFdmVudCgidGltZW91dCIpLHRoaXMuYWJvcnQoOCkpfTtfLmcuYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLnJhJiZ0aGlzLmomJih0aGlzLmo9ITEsdGhpcy52PSEwLHRoaXMucmEuYWJvcnQoKSx0aGlzLnY9ITEsdGhpcy5kaXNwYXRjaEV2ZW50KCJjb21wbGV0ZSIpLHRoaXMuZGlzcGF0Y2hFdmVudCgiYWJvcnQiKSxQeCh0aGlzKSl9O18uZy5sYT1mdW5jdGlvbigpe3RoaXMucmEmJih0aGlzLmomJih0aGlzLmo9ITEsdGhpcy52PSEwLHRoaXMucmEuYWJvcnQoKSx0aGlzLnY9ITEpLFB4KHRoaXMsITApKTtUeC56Yi5sYS5jYWxsKHRoaXMpfTsKXy5nLmdyPWZ1bmN0aW9uKCl7dGhpcy5pYSgpfHwodGhpcy5nYXx8dGhpcy5JfHx0aGlzLnY/U3godGhpcyk6dGhpcy5seigpKX07Xy5nLmx6PWZ1bmN0aW9uKCl7U3godGhpcyl9O18uZy5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5yYX07Xy5nLmlzQ29tcGxldGU9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yYT90aGlzLnJhLnJlYWR5U3RhdGU6MCk9PTR9O18uZy5pc1N1Y2Nlc3M9ZnVuY3Rpb24oKXt2YXIgYT1fLlJ4KHRoaXMpLGI7aWYoIShiPV8uc2YoYSkpKXtpZihhPWE9PT0wKWE9Xy5PYihTdHJpbmcodGhpcy5oYSkpLGE9IW9hYS50ZXN0KGEpO2I9YX1yZXR1cm4gYn07Xy5nLmdldExhc3RFcnJvcj1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgdGhpcy5CPT09InN0cmluZyI/dGhpcy5COlN0cmluZyh0aGlzLkIpfTtfLmc9JHgucHJvdG90eXBlOwpfLmcuYWRkPWZ1bmN0aW9uKGEsYil7YXkodGhpcyk7dGhpcy52PW51bGw7YT1ieSh0aGlzLGEpO3ZhciBjPXRoaXMuai5nZXQoYSk7Y3x8dGhpcy5qLnNldChhLGM9W10pO2MucHVzaChiKTt0aGlzLm8rPTE7cmV0dXJuIHRoaXN9O18uZy5yZW1vdmU9ZnVuY3Rpb24oYSl7YXkodGhpcyk7YT1ieSh0aGlzLGEpO3JldHVybiB0aGlzLmouaGFzKGEpPyh0aGlzLnY9bnVsbCx0aGlzLm8tPXRoaXMuai5nZXQoYSkubGVuZ3RoLHRoaXMuai5kZWxldGUoYSkpOiExfTtfLmcuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmo9dGhpcy52PW51bGw7dGhpcy5vPTB9O18uZy5pc0VtcHR5PWZ1bmN0aW9uKCl7YXkodGhpcyk7cmV0dXJuIHRoaXMubz09MH07Xy5nLmZvckVhY2g9ZnVuY3Rpb24oYSxiKXtheSh0aGlzKTt0aGlzLmouZm9yRWFjaChmdW5jdGlvbihjLGQpe2MuZm9yRWFjaChmdW5jdGlvbihlKXthLmNhbGwoYixlLGQsdGhpcyl9LHRoaXMpfSx0aGlzKX07Cl8uZy5yZD1mdW5jdGlvbigpe2F5KHRoaXMpO3ZhciBhPUFycmF5LmZyb20odGhpcy5qLnZhbHVlcygpKSxiPUFycmF5LmZyb20odGhpcy5qLmtleXMoKSksYz1bXTtmb3IobGV0IGQ9MDtkPGIubGVuZ3RoO2QrKyl7bGV0IGU9YVtkXTtmb3IobGV0IGY9MDtmPGUubGVuZ3RoO2YrKyljLnB1c2goYltkXSl9cmV0dXJuIGN9O18uZy5NYz1mdW5jdGlvbihhKXtheSh0aGlzKTt2YXIgYj1bXTtpZih0eXBlb2YgYT09PSJzdHJpbmciKWN5KHRoaXMsYSkmJihiPWIuY29uY2F0KHRoaXMuai5nZXQoYnkodGhpcyxhKSkpKTtlbHNle2E9QXJyYXkuZnJvbSh0aGlzLmoudmFsdWVzKCkpO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7YysrKWI9Yi5jb25jYXQoYVtjXSl9cmV0dXJuIGJ9OwpfLmcuc2V0PWZ1bmN0aW9uKGEsYil7YXkodGhpcyk7dGhpcy52PW51bGw7YT1ieSh0aGlzLGEpO2N5KHRoaXMsYSkmJih0aGlzLm8tPXRoaXMuai5nZXQoYSkubGVuZ3RoKTt0aGlzLmouc2V0KGEsW2JdKTt0aGlzLm8rPTE7cmV0dXJuIHRoaXN9O18uZy5nZXQ9ZnVuY3Rpb24oYSxiKXtpZighYSlyZXR1cm4gYjthPXRoaXMuTWMoYSk7cmV0dXJuIGEubGVuZ3RoPjA/U3RyaW5nKGFbMF0pOmJ9OwpfLmcudG9TdHJpbmc9ZnVuY3Rpb24oKXtpZih0aGlzLnYpcmV0dXJuIHRoaXMudjtpZighdGhpcy5qKXJldHVybiIiO3ZhciBhPVtdLGI9QXJyYXkuZnJvbSh0aGlzLmoua2V5cygpKTtmb3IobGV0IGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGM9YltkXTtsZXQgZT1lbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGMpKTtjPXRoaXMuTWMoYyk7Zm9yKGxldCBmPTA7ZjxjLmxlbmd0aDtmKyspe2xldCBoPWU7Y1tmXSE9PSIiJiYoaCs9Ij0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoY1tmXSkpKTthLnB1c2goaCl9fXJldHVybiB0aGlzLnY9YS5qb2luKCImIil9O18uZy5jbG9uZT1mdW5jdGlvbigpe3ZhciBhPW5ldyAkeDthLnY9dGhpcy52O3RoaXMuaiYmKGEuaj1uZXcgTWFwKHRoaXMuaiksYS5vPXRoaXMubyk7cmV0dXJuIGF9OwpfLmcuZXh0ZW5kPWZ1bmN0aW9uKGEpe2ZvcihsZXQgYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspamFhKGFyZ3VtZW50c1tiXSxmdW5jdGlvbihjLGQpe3RoaXMuYWRkKGQsYyl9LHRoaXMpfTt2YXIgeHk9L1sjXC9cP0BdL2cscWFhPS9bI1w/XS9nLHJhYT0vWyNcPzpdL2csc2FhPS8jL2csbWFhPS9bI1w/QF0vZzsKXy5meS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPXRoaXMuQjtiJiZhLnB1c2goZXkoYix4eSwhMCksIjoiKTt2YXIgYz10aGlzLm87aWYoY3x8Yj09ImZpbGUiKWEucHVzaCgiLy8iKSwoYj10aGlzLkkpJiZhLnB1c2goZXkoYix4eSwhMCksIkAiKSxhLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhjKSkucmVwbGFjZSgvJTI1KFswLTlhLWZBLUZdezJ9KS9nLCIlJDEiKSksYz10aGlzLlksYyE9bnVsbCYmYS5wdXNoKCI6IixTdHJpbmcoYykpO2lmKGM9dGhpcy5qKXRoaXMubyYmYy5jaGFyQXQoMCkhPSIvIiYmYS5wdXNoKCIvIiksYS5wdXNoKGV5KGMsYy5jaGFyQXQoMCk9PSIvIj9xYWE6cmFhLCEwKSk7KGM9dGhpcy5LLnRvU3RyaW5nKCkpJiZhLnB1c2goIj8iLGMpOyhjPXRoaXMudikmJmEucHVzaCgiIyIsZXkoYyxzYWEpKTtyZXR1cm4gYS5qb2luKCIiKX07Cl8uZnkucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5jbG9uZSgpLGM9ISFhLkI7Yz9neShiLGEuQik6Yz0hIWEuSTtjP2IuST1hLkk6Yz0hIWEubztjP2Iubz1hLm86Yz1hLlkhPW51bGw7dmFyIGQ9YS5qO2lmKGMpaHkoYixhLlkpO2Vsc2UgaWYoYz0hIWEuail7aWYoZC5jaGFyQXQoMCkhPSIvIilpZih0aGlzLm8mJiF0aGlzLmopZD0iLyIrZDtlbHNle3ZhciBlPWIuai5sYXN0SW5kZXhPZigiLyIpO2UhPS0xJiYoZD1iLmouc2xpY2UoMCxlKzEpK2QpfWU9ZDtpZihlPT0iLi4ifHxlPT0iLiIpZD0iIjtlbHNlIGlmKGUuaW5kZXhPZigiLi8iKSE9LTF8fGUuaW5kZXhPZigiLy4iKSE9LTEpe2Q9ZS5sYXN0SW5kZXhPZigiLyIsMCk9PTA7ZT1lLnNwbGl0KCIvIik7bGV0IGY9W107Zm9yKGxldCBoPTA7aDxlLmxlbmd0aDspe2xldCBrPWVbaCsrXTtrPT0iLiI/ZCYmaD09ZS5sZW5ndGgmJmYucHVzaCgiIik6az09Ii4uIj8oKGYubGVuZ3RoPjF8fGYubGVuZ3RoPT0KMSYmZlswXSE9IiIpJiZmLnBvcCgpLGQmJmg9PWUubGVuZ3RoJiZmLnB1c2goIiIpKTooZi5wdXNoKGspLGQ9ITApfWQ9Zi5qb2luKCIvIil9ZWxzZSBkPWV9Yz9iLmo9ZDpjPWEuSy50b1N0cmluZygpIT09IiI7Yz9peShiLGEuSy5jbG9uZSgpKTpjPSEhYS52O2MmJihiLnY9YS52KTtyZXR1cm4gYn07Xy5meS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IF8uZnkodGhpcyl9O18uZnkucHJvdG90eXBlLmFtPWZ1bmN0aW9uKCl7cmV0dXJuITF9O18uSGEoXy5qeSxfLmdmKTtfLmc9Xy5qeS5wcm90b3R5cGU7Xy5nLmVuYWJsZWQ9ITE7Xy5nLnNjPW51bGw7Xy5nLnNldEludGVydmFsPWZ1bmN0aW9uKGEpe3RoaXMudj1hO3RoaXMuc2MmJnRoaXMuZW5hYmxlZD8odGhpcy5zdG9wKCksdGhpcy5zdGFydCgpKTp0aGlzLnNjJiZ0aGlzLnN0b3AoKX07Cl8uZy5hQj1mdW5jdGlvbigpe2lmKHRoaXMuZW5hYmxlZCl7bGV0IGE9Xy5FYSgpLXRoaXMuRDthPjAmJmE8dGhpcy52Ki44P3RoaXMuc2M9dGhpcy5qLnNldFRpbWVvdXQodGhpcy5CLHRoaXMudi1hKToodGhpcy5zYyYmKHRoaXMuai5jbGVhclRpbWVvdXQodGhpcy5zYyksdGhpcy5zYz1udWxsKSx0aGlzLmRpc3BhdGNoRXZlbnQoInRpY2siKSx0aGlzLmVuYWJsZWQmJih0aGlzLnN0b3AoKSx0aGlzLnN0YXJ0KCkpKX19O18uZy5zdGFydD1mdW5jdGlvbigpe3RoaXMuZW5hYmxlZD0hMDt0aGlzLnNjfHwodGhpcy5zYz10aGlzLmouc2V0VGltZW91dCh0aGlzLkIsdGhpcy52KSx0aGlzLkQ9Xy5FYSgpKX07Xy5nLnN0b3A9ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWQ9ITE7dGhpcy5zYyYmKHRoaXMuai5jbGVhclRpbWVvdXQodGhpcy5zYyksdGhpcy5zYz1udWxsKX07Xy5nLmxhPWZ1bmN0aW9uKCl7Xy5qeS56Yi5sYS5jYWxsKHRoaXMpO3RoaXMuc3RvcCgpO2RlbGV0ZSB0aGlzLmp9O18uQXk9bmV3IF8uSSgiY29udGludWF0aW9uQ29tbWFuZCIpO18uQnk9bmV3IF8uSSgibW9kaWZ5Q2hhbm5lbE5vdGlmaWNhdGlvblByZWZlcmVuY2VFbmRwb2ludCIpO18uQ3k9bmV3IF8uSSgidW5kb0ZlZWRiYWNrRW5kcG9pbnQiKTtfLkR5PW5ldyBfLkkoInVuc3Vic2NyaWJlRW5kcG9pbnQiKTt2YXIgdGFhO3RhYT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucmVnaXN0ZXI9bmV3IE1hcH1jbGVhcigpe18ubXkodGhpcyk7dGhpcy5yZWdpc3Rlci5jbGVhcigpfX07Xy5FeT1uZXcgdGFhO3ZhciB1YWE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmo9e319Y29udGFpbnMoYSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmosYSl9Z2V0KGEpe2lmKHRoaXMuY29udGFpbnMoYSkpcmV0dXJuIHRoaXMualthXX1zZXQoYSxiKXt0aGlzLmpbYV09Yn1yZCgpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLmopfXJlbW92ZShhKXtkZWxldGUgdGhpcy5qW2FdfX07Xy5HeT1uZXcgY2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm1hcHBpbmdzPW5ldyB1YWE7dGhpcy5qPW5ldyBTZXR9Z2V0KGEpe3ZhciBiPXRoaXMubWFwcGluZ3MuZ2V0KGEudG9TdHJpbmcoKSk7cmV0dXJuIF8ubnkodGhpcyxiLGEpfW9uTG9hZEVycm9yKGEpe3RoaXMuai5hZGQoYSk7cmV0dXJuKCk9Pnt0aGlzLmouZGVsZXRlKGEpfX19O18uSHk9bmV3IF8uVnMoIkFTWU5DX0lOTkVSVFVCRV9UUkFOU1BPUlRfVE9LRU4iKTtfLkl5PW5ldyBfLlZzKCJJTk5FUlRVQkVfVFJBTlNQT1JUX1RPS0VOIik7Xy5KeT1uZXcgXy5WcygiUkVTUE9OU0VfUFJPQ0VTU09SX01BUF9UT0tFTiIpO3ZhciB3eT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmxheWVyPWF9c2V0UGFyZW50KGEpe3RoaXMucGFyZW50PWF9fTt2YXIgbmFhPTA7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8udmFhPSJwbGF5ZXJfdWlkXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciB4YWEseWFhLHphYSxWeSwkeSxheixieixjeixBYWEsaHosQmFhLENhYSxpeixreixFYWEsdHosd2FhLFJ5LFN5LEhhYSxJYWEsRGFhLEZhYSxkeixqeixleixmejtfLkt5PWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLkJmKXJldHVybiBhO3ZhciBiPW5ldyBfLkJmKF8uZ2QpO18uQWYoYiwyLGEpO3JldHVybiBifTtfLkx5PWZ1bmN0aW9uKGEsYil7Yj1fLmRiKGIpO2IhPT12b2lkIDAmJihhLmhyZWY9Yil9O18uTXk9ZnVuY3Rpb24oYSl7dmFyIGI9MDtmb3IobGV0IGM9MDtjPGEubGVuZ3RoOysrYyliPTMxKmIrYS5jaGFyQ29kZUF0KGMpPj4+MDtyZXR1cm4gYn07Xy5OeT1mdW5jdGlvbihhKXthPV8uTWIoYSk7cmV0dXJuIF8uSWIobnVsbCxudWxsLG51bGwsbnVsbCxhWzVdLGFbNl0sYVs3XSl9O18uT3k9ZnVuY3Rpb24oYSl7dmFyIGI9YS5pbmRleE9mKCIjIik7cmV0dXJuIGI8MD9hOmEuc2xpY2UoMCxiKX07Cl8uUHk9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5zZWFyY2goXy5ZYiksZD0wLGUsZj1bXTsoZT1fLlhiKGEsZCxiLGMpKT49MDspZi5wdXNoKGEuc3Vic3RyaW5nKGQsZSkpLGQ9TWF0aC5taW4oYS5pbmRleE9mKCImIixlKSsxfHxjLGMpO2YucHVzaChhLnNsaWNlKGQpKTtyZXR1cm4gZi5qb2luKCIiKS5yZXBsYWNlKHdhYSwiJDEiKX07eGFhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iJjEyOD8wOi0xLGU9YS5sZW5ndGgsZjtpZihmPSEhZSlmPWFbZS0xXSxmPWYhPW51bGwmJnR5cGVvZiBmPT09Im9iamVjdCImJmYuY29uc3RydWN0b3I9PT1PYmplY3Q7dmFyIGg9ZSsoZj8tMTowKTtmb3IoYj1iJjEyOD8xOjA7YjxoO2IrKyljKGItZCxhW2JdKTtpZihmKXthPWFbZS0xXTtmb3IobGV0IGsgaW4gYSkhaXNOYU4oaykmJmMoK2ssYVtrXSl9fTtfLlF5PWZ1bmN0aW9uKGEpe2lmKGE9PW51bGx8fHR5cGVvZiBhPT09ImJvb2xlYW4iKXJldHVybiBhO2lmKHR5cGVvZiBhPT09Im51bWJlciIpcmV0dXJuISFhfTsKeWFhPWZ1bmN0aW9uKGEpe3ZhciBiPV8uR2EoXy5KYyk7cmV0dXJuIGI/YVtiXTp2b2lkIDB9O3phYT1mdW5jdGlvbihhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgImJvb2xlYW4iOnJldHVybiBSeXx8KFJ5PVswLHZvaWQgMCwhMF0pO2Nhc2UgIm51bWJlciI6cmV0dXJuIGE+MD92b2lkIDA6YT09PTA/U3l8fChTeT1bMCx2b2lkIDBdKTpbLWEsdm9pZCAwXTtjYXNlICJzdHJpbmciOnJldHVyblswLGFdO2Nhc2UgIm9iamVjdCI6cmV0dXJuIGF9fTtfLlR5PWZ1bmN0aW9uKGEpe3JldHVybiEhKDImYSkmJiEhKDQmYSl8fCEhKDI1NiZhKX07Xy5VeT1mdW5jdGlvbihhLGIpe3JldHVybiBhPSgyJmI/YXwyOmEmLTMpJi0yNzN9O1Z5PWZ1bmN0aW9uKGEsYil7MiZiJiYoYXw9Mik7cmV0dXJuIGF8MX07Cl8uV3k9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsaCxrKXt2YXIgbD1fLkJjKGEsYyk7Zj1sPzE6ZjtoPSEhaHx8Zj09PTM7bD1rJiYhbDsoZj09PTJ8fGwpJiZfLm13KGEpJiYoYj1hLkRhLGM9YltfLkFjXXwwKTthPV8uZGQoYixlKTtrPUFycmF5LmlzQXJyYXkoYSk/YTpfLm1yO3ZhciBtPWs9PT1fLm1yPzc6a1tfLkFjXXwwLG49VnkobSxjKTtpZihhPSEoNCZuKSl7dmFyIHA9ayxyPWM7bGV0IHQ9ISEoMiZuKTt0JiYocnw9Mik7bGV0IHY9IXQsej0hMCxFPTAsQT0wO2Zvcig7RTxwLmxlbmd0aDtFKyspe2xldCBGPV8ua3cocFtFXSxkLHIpO2lmKEYgaW5zdGFuY2VvZiBkKXtpZighdCl7bGV0IEM9Xy5CYyhGKTt2JiYodj0hQyk7eiYmKHo9Qyl9cFtBKytdPUZ9fUE8RSYmKHAubGVuZ3RoPUEpO258PTQ7bj16P24mLTQwOTc6bnw0MDk2O249dj9ufDg6biYtOX1uIT09bSYmKGtbXy5BY109biwyJm4mJk9iamVjdC5mcmVlemUoaykpO2lmKGwmJiEoOCZufHwhay5sZW5ndGgmJihmPT09MXx8CihmIT09ND8wOjImbnx8ISgxNiZuKSYmMzImYykpKSl7Xy5UeShuKSYmKGs9Wy4uLmtdLG49Xy5VeShuLGMpLGM9Xy5wdyhiLGMsZSxrKSk7ZD1rO2w9bjtmb3IobT0wO208ZC5sZW5ndGg7bSsrKXA9ZFttXSxuPV8ubHcocCkscCE9PW4mJihkW21dPW4pO2x8PTg7bj1sPWQubGVuZ3RoP2x8NDA5NjpsJi00MDk3O2tbXy5BY109bn1kPWs7bD1rPW47Zj09PTF8fChmIT09ND8wOjIma3x8ISgxNiZrKSYmMzImYyk/Xy5UeShrKXx8KGt8PSFkLmxlbmd0aHx8YSYmISg0MDk2JmspfHwzMiZjJiYhKDQwOTYma3x8MTYmayk/MjoyNTYsayE9PWwmJihkW18uQWNdPWspLE9iamVjdC5mcmVlemUoZCkpOihmPT09MiYmXy5UeShrKSYmKGQ9Wy4uLmRdLGw9MCxrPV8uVXkoayxjKSxjPV8ucHcoYixjLGUsZCkpLF8uVHkoayl8fChofHwoa3w9MTYpLGshPT1sJiYoZFtfLkFjXT1rKSkpOzIma3x8ISg0MDk2Jmt8fDE2JmspfHxfLm93KGIsYyk7cmV0dXJuIGR9OwpfLlh5PWZ1bmN0aW9uKGEsYil7Zm9yKDtiPjEyNzspYS5qLnB1c2goYiYxMjd8MTI4KSxiPj4+PTc7YS5qLnB1c2goYil9O18uWXk9ZnVuY3Rpb24oYSxiKXtiLmxlbmd0aCE9PTAmJihhLnYucHVzaChiKSxhLm8rPWIubGVuZ3RoKX07Xy5aeT1mdW5jdGlvbihhLGIsYyl7Xy5YeShhLmosYio4K2MpfTskeT1mdW5jdGlvbihhLGIpe18uWnkoYSxiLDIpO2I9YS5qLmVuZCgpO18uWXkoYSxiKTtiLnB1c2goYS5vKTtyZXR1cm4gYn07YXo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnBvcCgpO2ZvcihjPWEubythLmoubGVuZ3RoKCktYztjPjEyNzspYi5wdXNoKGMmMTI3fDEyOCksYz4+Pj03LGEubysrO2IucHVzaChjKTthLm8rK307Yno9ZnVuY3Rpb24oYSxiKXtpZihhIGluc3RhbmNlb2YgXy5NcilyZXR1cm4gYS5EYTtpZihBcnJheS5pc0FycmF5KGEpKXJldHVybiBfLlhjKGEsYlswXSxiWzFdKX07CmN6PWZ1bmN0aW9uKGEsYixjLGQsZSl7Yj1ieihiLGQpO2IhPW51bGwmJihjPSR5KGEsYyksZShiLGEpLGF6KGEsYykpfTtBYWE9ZnVuY3Rpb24oYSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSkmJiEhYS5sZW5ndGgmJnR5cGVvZiBhWzBdPT09Im51bWJlciImJmFbMF0+MH07Cmh6PWZ1bmN0aW9uKGEpe3ZhciBiPUJhYSxjPUNhYSxkPWFbZHpdO2lmKGQpcmV0dXJuIGQ7ZD17fTtkLlpIPWE7ZC5PcT16YWEoYVswXSk7dmFyIGU9YVsxXSxmPTE7ZSYmZS5jb25zdHJ1Y3Rvcj09PU9iamVjdCYmKGQuZXh0ZW5zaW9ucz1lLGU9YVsrK2ZdLHR5cGVvZiBlPT09ImZ1bmN0aW9uIiYmKGQuU3g9ITAsZXo/Pyhlej1lKSxmej8/KGZ6PWFbZisxXSksZT1hW2YrPTJdKSk7Zm9yKHZhciBoPXt9O2UmJkFhYShlKTspe2Zvcih2YXIgaz0wO2s8ZS5sZW5ndGg7aysrKWhbZVtrXV09ZTtlPWFbKytmXX1mb3Ioaz0xO2UhPT12b2lkIDA7KXt0eXBlb2YgZT09PSJudW1iZXIiJiYoays9ZSxlPWFbKytmXSk7bGV0IG47dmFyIGw9dm9pZCAwO2UgaW5zdGFuY2VvZiBfLmd6P249ZToobj1EYWEsZi0tKTtpZihuPy5vKXtlPWFbKytmXTtsPWE7dmFyIG09Zjt0eXBlb2YgZT09PSJmdW5jdGlvbiImJihlPWUoKSxsW21dPWUpO2w9ZX1lPWFbKytmXTttPWsrMTt0eXBlb2YgZT09PSJudW1iZXIiJiYKZTwwJiYobS09ZSxlPWFbKytmXSk7Zm9yKDtrPG07aysrKXtsZXQgcD1oW2tdO2w/YyhkLGssbixsLHApOmIoZCxrLG4scCl9fXJldHVybiBhW2R6XT1kfTtCYWE9ZnVuY3Rpb24oYSxiLGMpe2FbYl09Yy5qfTtDYWE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixoPWMuajthW2JdPShrLGwsbSk9PmgoayxsLG0sZnx8KGY9aHooZCkuT3EpLGV8fChlPWl6KGQpKSl9O2l6PWZ1bmN0aW9uKGEpe3ZhciBiPWFbanpdO2lmKCFiKXtsZXQgYz1oeihhKTtiPShkLGUpPT5reihkLGUsYyk7YVtqel09Yn1yZXR1cm4gYn07a3o9ZnVuY3Rpb24oYSxiLGMpe3hhYShhLGFbXy5BY118MCwoZCxlKT0+e2lmKGUhPW51bGwpe3ZhciBmPUVhYShjLGQpO2Y/ZihiLGUsZCk6ZDw1MDB8fF8ueGMoXy5rciwzKX19KTsoYT15YWEoYSkpJiZhLmN3KChkLGUsZik9PntfLll5KGIsYi5qLmVuZCgpKTtmb3IoZD0wO2Q8Zi5sZW5ndGg7ZCsrKV8uWXkoYixfLnd3KGZbZF0pfHxuZXcgVWludDhBcnJheSgwKSl9KX07CkVhYT1mdW5jdGlvbihhLGIpe3ZhciBjPWFbYl07aWYoYylyZXR1cm4gYztpZihjPWEuZXh0ZW5zaW9ucylpZihjPWNbYl0pe2M9QXJyYXkuaXNBcnJheShjKT9jWzBdaW5zdGFuY2VvZiBfLmd6P2M6W0ZhYSxjXTpbYyx2b2lkIDBdO3ZhciBkPWNbMF0uajtpZihjPWNbMV0pe2xldCBlPWl6KGMpLGY9aHooYykuT3E7Yz1hLlN4P2Z6KGYsZSk6KGgsayxsKT0+ZChoLGssbCxmLGUpfWVsc2UgYz1kO3JldHVybiBhW2JdPWN9fTtfLmx6PWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBfLmd6KGEsYil9O18ubXo9ZnVuY3Rpb24oYSxiLGMpe2I9Xy5ReShiKTtiIT1udWxsJiYoXy5aeShhLGMsMCksYS5qLmoucHVzaChiPzE6MCkpfTtfLm56PWZ1bmN0aW9uKGEsYixjLGQsZSl7Yj1ieihiLGQpO2IhPW51bGwmJihjPSR5KGEsYyksZShiLGEpLGF6KGEsYykpfTtfLnB6PWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBfLm96KHRoaXMsYSl9fTsKXy5xej1mdW5jdGlvbigpe2lmKCFfLkxqLmlzRW5hYmxlZCgpKXJldHVybiExO2lmKCFfLkxqLmlzRW1wdHkoKSlyZXR1cm4hMDtfLkxqLnNldCgiVEVTVENPT0tJRVNFTkFCTEVEIiwiMSIse3ZqOjYwfSk7aWYoXy5Mai5nZXQoIlRFU1RDT09LSUVTRU5BQkxFRCIpIT09IjEiKXJldHVybiExO18uTGoucmVtb3ZlKCJURVNUQ09PS0lFU0VOQUJMRUQiKTtyZXR1cm4hMH07Xy5yej1mdW5jdGlvbigpe3JldHVybihfLmhyfHxfLmlyKSYmXy5NaygiYXBwbGV3ZWJraXQiKSYmIV8uTWsoInZlcnNpb24iKSYmKCFfLk1rKCJzYWZhcmkiKXx8Xy5NaygiZ3NhLyIpKX07Xy5zej1mdW5jdGlvbigpe3JldHVybiBfLk5kKCl8fF8ucnooKXx8Xy5lciYmXy5NaygidmVyc2lvbi8iKT8hMDpfLncoIkVPTV9WSVNJVE9SX0RBVEEiKT8hMTohMH07Cl8udXo9ZnVuY3Rpb24oYSxiLGMsZD0hMCl7dmFyIGU9Xy53KCJWQUxJRF9TRVNTSU9OX1RFTVBEQVRBX0RPTUFJTlMiLFtdKSxmPV8uUGIod2luZG93LmxvY2F0aW9uLmhyZWYpO2YmJmUucHVzaChmKTtmPV8uUGIoYSk7aWYoXy5zYihlLGYpPj0wfHwhZiYmYS5sYXN0SW5kZXhPZigiLyIsMCk9PTApaWYoZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksXy5MeShlLGEpLGE9ZS5ocmVmKWlmKGE9Xy5OeShhKSxhPV8uT3koYSkpZCYmIWIuY3NuJiYoYi5pdGN0fHxiLnZlZCkmJihiPU9iamVjdC5hc3NpZ24oe2NzbjpfLmlxKCl9LGIpKSxjPyhjPXBhcnNlSW50KGMsMTApLGlzRmluaXRlKGMpJiZjPjAmJnR6KGEsYixjKSk6dHooYSxiKX07dHo9ZnVuY3Rpb24oYSxiLGMpe2E9Xy52eihhKTtiPWI/Xy5VYihiKToiIjtjPWN8fDU7Xy5zeigpJiZfLk1qKGEsYixjKX07Xy52ej1mdW5jdGlvbihhKXtmb3IobGV0IGIgb2YgR2FhKWE9Xy5QeShhLGIpO3JldHVybiJTVC0iK18uTXkoYSkudG9TdHJpbmcoMzYpfTsKXy53ej17fTt3YWE9L1s/Jl0oJHwjKS87SGFhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5qPVtdfWxlbmd0aCgpe3JldHVybiB0aGlzLmoubGVuZ3RofWVuZCgpe3ZhciBhPXRoaXMuajt0aGlzLmo9W107cmV0dXJuIGF9d3JpdGVVaW50OChhKXt0aGlzLmoucHVzaChhPj4+MCYyNTUpfXdyaXRlSW50OChhKXt0aGlzLmoucHVzaChhPj4+MCYyNTUpfX07SWFhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy52PVtdO3RoaXMubz0wO3RoaXMuaj1uZXcgSGFhfX07Xy5nej1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMuaj1hO2E9Xy5HYShfLnpyKTt0aGlzLm89ISFhJiZiPT09YXx8ITF9fTtEYWE9bmV3IF8uZ3ooY3osXy56cik7RmFhPW5ldyBfLmd6KGN6LF8uenIpO2R6PVN5bWJvbCgpO2p6PVN5bWJvbCgpOwpfLm96PShhLGIpPT57dmFyIGM9bmV3IElhYTtreihhLkRhLGMsaHooYikpO18uWXkoYyxjLmouZW5kKCkpO2E9bmV3IFVpbnQ4QXJyYXkoYy5vKTtiPWMudjt2YXIgZD1iLmxlbmd0aCxlPTA7Zm9yKGxldCBmPTA7ZjxkO2YrKyl7bGV0IGg9YltmXTthLnNldChoLGUpO2UrPWgubGVuZ3RofWMudj1bYV07cmV0dXJuIGF9O18ueHo9Xy5seihfLm16LF8uQXIpOwpfLnl6PWZ1bmN0aW9uKGEsYixjPV8uenIpe3JldHVybiBuZXcgXy5neihiLGMpfShmdW5jdGlvbihhLGIsYyxkLGUpe2lmKGEuaigpIT09MilyZXR1cm4hMTt2YXIgZj1hLm87ZD1fLlhjKHZvaWQgMCxkWzBdLGRbMV0pO3ZhciBoPWJbXy5BY118MDtpZihoJjIpdGhyb3cgRXJyb3IoKTt2YXIgaz1oJjEyOD9fLnd6OnZvaWQgMCxsPV8uZGQoYixjLGspO2w9QXJyYXkuaXNBcnJheShsKT9sOl8ubXI7dmFyIG09bD09PV8ubXI/NzpsW18uQWNdfDAsbj1WeShtLGgpO2lmKDImbnx8Xy5UeShuKXx8MTYmbiluPT09bXx8Xy5UeShuKXx8KGxbXy5BY109biksbD1bLi4ubF0sbT0wLG49Xy5VeShuLGgpLF8ucHcoYixoLGMsbCxrKTtuJj0tMTM7biE9PW0mJihsW18uQWNdPW4pO2wucHVzaChkKTtmLmNhbGwoYSxkLGUpO3JldHVybiEwfSxmdW5jdGlvbihhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYikpe2ZvcihsZXQgZj0wO2Y8Yi5sZW5ndGg7ZisrKV8ubnooYSxiW2ZdLGMsZCxlKTsKYT1iW18uQWNdfDA7YSYxfHwoYltfLkFjXT1hfDEpfX0pO18ueno9bmV3IF8uSSgic2lnbmFsU2VydmljZUVuZHBvaW50Iik7Xy5Bej1uZXcgXy5JKCJwbGF5bGlzdEVkaXRFbmRwb2ludCIpO3ZhciBHYWE9ImFic29sdXRlX2V4cGVyaW1lbnRzIGFwcCBjb25kaXRpb25hbF9leHBlcmltZW50cyBkZWJ1Z2NzcyBkZWJ1Z2pzIGV4cGZsYWcgZm9yY2VkX2V4cGVyaW1lbnRzIHBiaiBwYmpyZWxvYWQgc2JiIHNwZiBzcGZyZWxvYWQgc3JfYm5zX2FkZHJlc3Mgc3R0aWNrIi5zcGxpdCgiICIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgRXosRnosQnosR3osSmFhO18uQ3o9ZnVuY3Rpb24oYSl7cmV0dXJuISEoKEJ6KGBmJHtNYXRoLmZsb29yKGEvMzEpKzF9YCl8fDApJjE8PGElMzEpfTtfLkR6PWZ1bmN0aW9uKGEsYil7dmFyIGM9YGYke01hdGguZmxvb3IoYS8zMSkrMX1gO2E9MTw8YSUzMTt2YXIgZD1CeihjKXx8MDtkPWI/ZHxhOmQmfmE7ZD09PTA/ZGVsZXRlIF8ueHNbY106Xy54c1tjXT1kLnRvU3RyaW5nKDE2KS50b1N0cmluZygpfTtFej1mdW5jdGlvbihhKXtpZigvXmYoWzEtOV1bMC05XSopJC8udGVzdChhKSl0aHJvdyBFcnJvcigiZmFgIithKTt9O0Z6PWZ1bmN0aW9uKGEpe2lmKCEvXlx3KyQvLnRlc3QoYSkpdGhyb3cgRXJyb3IoImdhYCIrYSk7fTtCej1mdW5jdGlvbihhKXthPV8ueHNbYV0hPT12b2lkIDA/Xy54c1thXS50b1N0cmluZygpOm51bGw7cmV0dXJuIGEhPW51bGwmJi9eW0EtRmEtZjAtOV0rJC8udGVzdChhKT9wYXJzZUludChhLDE2KTpudWxsfTsKXy5Iej1mdW5jdGlvbigpe0d6fHwoR3o9bmV3IEphYSk7cmV0dXJuIEd6fTtfLkl6PWZ1bmN0aW9uKGEpe3JldHVybiBfLlZpKCgpPT57aWYoXy5CcShhKSlyZXR1cm4hMTtfLkFxKGEsdm9pZCAwLHZvaWQgMCk7cmV0dXJuITB9KSgpfTsKSmFhPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5qPV8udygiQUxUX1BSRUZfQ09PS0lFX05BTUUiLCJQUkVGIik7dGhpcy5vPV8udygiQUxUX1BSRUZfQ09PS0lFX0RPTUFJTiIsInlvdXR1YmUuY29tIik7dmFyIGE9Xy5Mai5nZXQodGhpcy5qLHZvaWQgMCk7YSYmdGhpcy5wYXJzZShhKX1nZXQoYSxiKXtGeihhKTtFeihhKTthPV8ueHNbYV0hPT12b2lkIDA/Xy54c1thXS50b1N0cmluZygpOm51bGw7cmV0dXJuIGEhPW51bGw/YTpiP2I6IiJ9c2V0KGEsYil7RnooYSk7RXooYSk7aWYoYj09bnVsbCl0aHJvdyBFcnJvcigiZWEiKTtfLnhzW2FdPWIudG9TdHJpbmcoKX1yZW1vdmUoYSl7RnooYSk7RXooYSk7ZGVsZXRlIF8ueHNbYV19c2F2ZSgpe18uTWoodGhpcy5qLHRoaXMuZHVtcCgpLDYzMDcyRTMsdGhpcy5vLCEwKX1jbGVhcigpe2ZvcihsZXQgYSBpbiBfLnhzKWRlbGV0ZSBfLnhzW2FdfWR1bXAoKXt2YXIgYT1bXTtmb3IobGV0IGIgaW4gXy54cylfLnhzLmhhc093blByb3BlcnR5KGIpJiYKYS5wdXNoKGAke2J9PWArZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhfLnhzW2JdKSkpO3JldHVybiBhLmpvaW4oIiYiKX1wYXJzZShhKXthPWRlY29kZVVSSUNvbXBvbmVudChhKS5zcGxpdCgiJiIpO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgYj1hW2NdLnNwbGl0KCI9Iik7bGV0IGQ9YlswXTsoYj1iWzFdKSYmKF8ueHNbZF09Yi50b1N0cmluZygpKX19fTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIExhYSxLYWE7Xy5Kej1mdW5jdGlvbihhLGIpe2Eudi5zZXQoYi5qYSxiKTt2YXIgYz1hLmouZ2V0KGIuamEpO2lmKGMpdHJ5e2MuUWgoYS5yZXNvbHZlKGIuamEpKX1jYXRjaChkKXtjLlF6KGQpfX07Xy5Lej1mdW5jdGlvbihhLGI9Xy5hYil7cmV0dXJuIF8uYmIoYSxiKXx8Xy5GcX07Xy5Mej1mdW5jdGlvbigpe3JldHVybiBfLnUueXRQdWJzdWJQdWJzdWJJbnN0YW5jZX07Xy5Nej1mdW5jdGlvbihhLGIpe3ZhciBjPV8uTHooKTtpZihjJiZiKXtsZXQgZD1jLnN1YnNjcmliZShhLGZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLGY9KCk9PntfLlJzW2RdJiZiLmFwcGx5JiZ0eXBlb2YgYi5hcHBseT09ImZ1bmN0aW9uIiYmYi5hcHBseSh3aW5kb3csZSl9O3RyeXtfLlRzW2FdP2YoKTpfLm1qKGYsMCl9Y2F0Y2goaCl7Xy5VaShoKX19LHZvaWQgMCk7Xy5Sc1tkXT0hMDtfLlNzW2FdfHwoXy5Tc1thXT1bXSk7Xy5Tc1thXS5wdXNoKGQpO3JldHVybiBkfXJldHVybiAwfTsKXy5Oej1mdW5jdGlvbihhKXt2YXIgYj1fLkx6KCk7YiYmKHR5cGVvZiBhPT09Im51bWJlciI/YT1bYV06dHlwZW9mIGE9PT0ic3RyaW5nIiYmKGE9W3BhcnNlSW50KGEsMTApXSksXy50YihhLGM9PntiLnVuc3Vic2NyaWJlQnlLZXkoYyk7ZGVsZXRlIF8uUnNbY119KSl9O18uT3o9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLkx6KCk7cmV0dXJuIGM/Yy5wdWJsaXNoLmFwcGx5KGMsYXJndW1lbnRzKTohMX07Xy5Qej1mdW5jdGlvbihhKXtyZXR1cm4gS2FhW2FdfHwiTEFURU5DWV9BQ1RJT05fVU5LTk9XTiJ9O0xhYT1mdW5jdGlvbigpe3ZhciBhPV8uc3EuZ2V0RW50cmllc0J5VHlwZT8uKCJtYXJrIik7YSYmYS5mb3JFYWNoKGI9PntiLm5hbWUuc3RhcnRzV2l0aCgibWFya18iKSYmXy5zcS5jbGVhck1hcmtzPy4oYi5uYW1lKX0pfTtfLlF6PWZ1bmN0aW9uKGEpe18ucmEoInl0Z2xvYmFsLnRpbWluZyIrKGF8fCIiKSsicmVhZHlfIiwhMCl9OwpfLlJ6PWZ1bmN0aW9uKGEpe3JldHVybiBfLlZpKCgpPT5fLkJxKCJfc3RhcnQiLGEpKSgpfTtfLlN6PWZ1bmN0aW9uKGEpe18uVmkoKCk9PntfLlJ6KGEpJiZfLkFxKCJhYSIsdm9pZCAwLGEpO3ZhciBiPWF8fCIiLGM9Xy50bygpO2NbYl0mJmRlbGV0ZSBjW2JdO3ZhciBkPXt0aW1lck5hbWU6YixpbmZvOnt9LHRpY2s6e30sc3Bhbjp7fSxqc3BiSW5mbzpbXX07Xy5zbyhkKTtjW2JdPWQ7Xy5qbyhhKTsoMCxfLmJ0KSgpO0xhYSgpO2F8fChfLncoIlRJTUlOR19BQ1RJT04iKSYmXy5RaSgiUFJFVklPVVNfQUNUSU9OIixfLncoIlRJTUlOR19BQ1RJT04iKSksXy5RaSgiVElNSU5HX0FDVElPTiIsIiIpKX0pKCl9OwpfLlR6PWZ1bmN0aW9uKGEsYj17fSxjLGQpe18uVmkoKCk9Pnt2YXIgZT1jP2M6YTtfLlN6KGUpO3ZhciBmPWIuc2FtcGxlUmF0ZTtpZighXy54KCJ3ZWJfY3NpX2FjdGlvbl9zYW1wbGluZ19lbmFibGVkIil8fGY9PT12b2lkIDB8fGY8PTEpZj0hMTtlbHNle3ZhciBoPV8ucG8oZSk7Zj1fLkduKGgpJWYhPT0wfWYmJihfLmtvKGUpLmFjdGlvbkRpc2FibGVkPSEwKTtfLnVvKGV8fCIiKS5pbmZvLmFjdGlvblR5cGU9YTtiLmN0dEF1dGhJbmZvJiYoXy5rbyhlKS5jdHRBdXRoSW5mbz1iLmN0dEF1dGhJbmZvKTtfLlFpKGUrIlRJTUlOR19BQ1RJT04iLGEpO18uVmkoXy5vcSkoYi5zdGFydFRpbWUsZSk7Zj17YWN0aW9uVHlwZTpkfHxfLlB6KGEpfTtiLlRKJiYoZi5wcmV2aW91c0FjdGlvbj1fLlB6KF8udygiVElNSU5HX0FDVElPTiIpKSk7KGg9Xy5pcSgpKSYmaCE9PSJVTkRFRklORURfQ1NOIiYmKGYuY2xpZW50U2NyZWVuTm9uY2U9aCk7Xy56cShmLGUpO18uUXooZSl9KSgpfTsKS2FhPXthdXRvX3NlYXJjaDoiTEFURU5DWV9BQ1RJT05fQVVUT19TRUFSQ0giLGFkX3RvX2FkOiJMQVRFTkNZX0FDVElPTl9BRF9UT19BRCIsYWRfdG9fdmlkZW86IkxBVEVOQ1lfQUNUSU9OX0FEX1RPX1ZJREVPIixhcHBfc3RhcnR1cDoiTEFURU5DWV9BQ1RJT05fQVBQX1NUQVJUVVAiLGJyb3dzZToiTEFURU5DWV9BQ1RJT05fQlJPV1NFIixjYXN0X3NwbGFzaDoiTEFURU5DWV9BQ1RJT05fQ0FTVF9TUExBU0giLGNhbGxfdG9fY2FzdDoiTEFURU5DWV9BQ1RJT05fQ0FMTF9UT19DQVNUIixjaGFubmVsX2FjdGl2aXR5OiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX0NIQU5ORUxfQUNUSVZJVFkiLGNoYW5uZWxzOiJMQVRFTkNZX0FDVElPTl9DSEFOTkVMUyIsY2hpcHM6IkxBVEVOQ1lfQUNUSU9OX0NISVBTIixjb21tZXJjZV90cmFuc2FjdGlvbjoiTEFURU5DWV9BQ1RJT05fQ09NTUVSQ0VfVFJBTlNBQ1RJT04iLGRpcmVjdF9wbGF5YmFjazoiTEFURU5DWV9BQ1RJT05fRElSRUNUX1BMQVlCQUNLIiwKZWRpdG9yOiJMQVRFTkNZX0FDVElPTl9FRElUT1IiLGVtYmVkOiJMQVRFTkNZX0FDVElPTl9FTUJFRCIsZW1iZWRfbm9fdmlkZW86IkxBVEVOQ1lfQUNUSU9OX0VNQkVEX05PX1ZJREVPIixlbnRpdHlfa2V5X3NlcmlhbGl6YXRpb25fcGVyZjoiTEFURU5DWV9BQ1RJT05fRU5USVRZX0tFWV9TRVJJQUxJWkFUSU9OX1BFUkYiLGVudGl0eV9rZXlfZGVzZXJpYWxpemF0aW9uX3BlcmY6IkxBVEVOQ1lfQUNUSU9OX0VOVElUWV9LRVlfREVTRVJJQUxJWkFUSU9OX1BFUkYiLGV4cGxvcmU6IkxBVEVOQ1lfQUNUSU9OX0VYUExPUkUiLGZhdm9yaXRlczoiTEFURU5DWV9BQ1RJT05fRkFWT1JJVEVTIixob21lOiJMQVRFTkNZX0FDVElPTl9IT01FIixpbmJvYXJkaW5nOiJMQVRFTkNZX0FDVElPTl9JTkJPQVJESU5HIixsYW5kaW5nOiJMQVRFTkNZX0FDVElPTl9MQU5ESU5HIixsZWFybmluZzoiTEFURU5DWV9BQ1RJT05fTEVBUk5JTkciLGxlYXJuaW5nX2pvdXJuZXlfYnJvd3NlOiJMQVRFTkNZX0FDVElPTl9MRUFSTklOR19KT1VSTkVZX0JST1dTRSIsCmxlYXJuaW5nX2pvdXJuZXlfd2F0Y2g6IkxBVEVOQ1lfQUNUSU9OX0xFQVJOSU5HX0pPVVJORVlfV0FUQ0giLGxpYnJhcnk6IkxBVEVOQ1lfQUNUSU9OX0xJQlJBUlkiLGxpdmU6IkxBVEVOQ1lfQUNUSU9OX0xJVkUiLGxpdmVfcGFnaW5hdGlvbjoiTEFURU5DWV9BQ1RJT05fTElWRV9QQUdJTkFUSU9OIixtYW5hZ2VtZW50OiJMQVRFTkNZX0FDVElPTl9NQU5BR0VNRU5UIixtaW5pX2FwcDoiTEFURU5DWV9BQ1RJT05fTUlOSV9BUFBfUExBWSIsbm90aWZpY2F0aW9uX3NldHRpbmdzOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX05PVElGSUNBVElPTl9TRVRUSU5HUyIsb25ib2FyZGluZzoiTEFURU5DWV9BQ1RJT05fT05CT0FSRElORyIscGFyZW50X3Byb2ZpbGVfc2V0dGluZ3M6IkxBVEVOQ1lfQUNUSU9OX0tJRFNfUEFSRU5UX1BST0ZJTEVfU0VUVElOR1MiLHBhcmVudF90b29sc19jb2xsZWN0aW9uOiJMQVRFTkNZX0FDVElPTl9QQVJFTlRfVE9PTFNfQ09MTEVDVElPTiIscGFyZW50X3Rvb2xzX2Rhc2hib2FyZDoiTEFURU5DWV9BQ1RJT05fUEFSRU5UX1RPT0xTX0RBU0hCT0FSRCIsCnBsYXllcl9hdHQ6IkxBVEVOQ1lfQUNUSU9OX1BMQVlFUl9BVFRFU1RBVElPTiIscHJlYnVmZmVyOiJMQVRFTkNZX0FDVElPTl9QUkVCVUZGRVIiLHByZWZldGNoOiJMQVRFTkNZX0FDVElPTl9QUkVGRVRDSCIscHJvZmlsZV9zZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fS0lEU19QUk9GSUxFX1NFVFRJTkdTIixwcm9maWxlX3N3aXRjaGVyOiJMQVRFTkNZX0FDVElPTl9MT0dJTiIscHJvamVjdHM6IkxBVEVOQ1lfQUNUSU9OX1BST0pFQ1RTIixyZWVsX3dhdGNoOiJMQVRFTkNZX0FDVElPTl9SRUVMX1dBVENIIixyZXN1bHRzOiJMQVRFTkNZX0FDVElPTl9SRVNVTFRTIixyZWQ6IkxBVEVOQ1lfQUNUSU9OX1BSRU1JVU1fUEFHRV9HRVRfQlJPV1NFIixwcmVtaXVtOiJMQVRFTkNZX0FDVElPTl9QUkVNSVVNX1BBR0VfR0VUX0JST1dTRSIscHJlbWl1bV9saXRlX3Vwc2VsbDoiTEFURU5DWV9BQ1RJT05fUFJFTUlVTV9MSVRFX1VQU0VMTCIscHJpdmFjeV9wb2xpY3k6IkxBVEVOQ1lfQUNUSU9OX0ZBTUlMWV9DRU5URVJfUFJJVkFDWV9QT0xJQ1kiLApyZXZpZXc6IkxBVEVOQ1lfQUNUSU9OX1JFVklFVyIsc2VhcmNoX292ZXJ2aWV3X2Fuc3dlcjoiTEFURU5DWV9BQ1RJT05fU0VBUkNIX09WRVJWSUVXX0FOU1dFUiIsc2VhcmNoX3VpOiJMQVRFTkNZX0FDVElPTl9TRUFSQ0hfVUkiLHNlYXJjaF9zdWdnZXN0OiJMQVRFTkNZX0FDVElPTl9TVUdHRVNUIixzZWFyY2hfemVyb19zdGF0ZToiTEFURU5DWV9BQ1RJT05fU0VBUkNIX1pFUk9fU1RBVEUiLHNlY3JldF9jb2RlOiJMQVRFTkNZX0FDVElPTl9LSURTX1NFQ1JFVF9DT0RFIixzd2l0Y2hwbGFuOiJMQVRFTkNZX0FDVElPTl9VTlBMVUdHRURfU1dJVENIX1BMQU4iLHNlZWs6IkxBVEVOQ1lfQUNUSU9OX1BMQVlFUl9TRUVLIixzZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fU0VUVElOR1MiLHN0b3JlOiJMQVRFTkNZX0FDVElPTl9TVE9SRSIsc3VwZXJ2aXNpb25fZGFzaGJvYXJkOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX1NVUEVSVklTSU9OX0RBU0hCT0FSRCIsYmVkdGltZV9yZW1pbmRlcl9zZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9CRURUSU1FX1JFTUlOREVSX1NFVFRJTkdTIiwKYnJlYWtfcmVtaW5kZXJfc2V0dGluZ3M6IkxBVEVOQ1lfQUNUSU9OX0ZBTUlMWV9DRU5URVJfQlJFQUtfUkVNSU5ERVJfU0VUVElOR1MiLHN1cGVydmlzaW9uX3NldHRpbmdzX2Rhc2hib2FyZDoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9TVVBFUlZJU0lPTl9TRVRUSU5HU19EQVNIQk9BUkQiLHRpbWVfbWFuYWdlbWVudDoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9USU1FX01BTkFHRU1FTlQiLHVwZGF0ZV9wcm9maWxlOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX1VQREFURV9QUk9GSUxFIix2aWV3aW5nX3Blcm1pc3Npb25zOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX1ZJRVdJTkdfUEVSTUlTU0lPTlMiLHNob3J0c19zZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9TSE9SVFNfU0VUVElOR1MiLHByaXZhY3lfc2V0dGluZ3M6IkxBVEVOQ1lfQUNUSU9OX0ZBTUlMWV9DRU5URVJfUFJJVkFDWV9TRVRUSU5HUyIsdGVueDoiTEFURU5DWV9BQ1RJT05fVEVOWCIsCnZpZGVvX3ByZXZpZXc6IkxBVEVOQ1lfQUNUSU9OX1ZJREVPX1BSRVZJRVciLHZpZGVvX3RvX2FkOiJMQVRFTkNZX0FDVElPTl9WSURFT19UT19BRCIsd2F0Y2g6IkxBVEVOQ1lfQUNUSU9OX1dBVENIIix3YXRjaF9pdF9hZ2FpbjoiTEFURU5DWV9BQ1RJT05fS0lEU19XQVRDSF9JVF9BR0FJTiIsIndhdGNoLHdhdGNoNyI6IkxBVEVOQ1lfQUNUSU9OX1dBVENIIiwid2F0Y2gsd2F0Y2g3X2h0bWw1IjoiTEFURU5DWV9BQ1RJT05fV0FUQ0giLCJ3YXRjaCx3YXRjaDdhZCI6IkxBVEVOQ1lfQUNUSU9OX1dBVENIIiwid2F0Y2gsd2F0Y2g3YWRfaHRtbDUiOiJMQVRFTkNZX0FDVElPTl9XQVRDSCIsd25fY29tbWVudHM6IkxBVEVOQ1lfQUNUSU9OX0xPQURfQ09NTUVOVFMiLHd3X3JxczoiTEFURU5DWV9BQ1RJT05fV0hPX0lTX1dBVENISU5HIix2b2ljZV9hc3Npc3RhbnQ6IkxBVEVOQ1lfQUNUSU9OX1ZPSUNFX0FTU0lTVEFOVCIsY2FzdF9sb2FkX2J5X2VudGl0eV90b193YXRjaDoiTEFURU5DWV9BQ1RJT05fQ0FTVF9MT0FEX0JZX0VOVElUWV9UT19XQVRDSCIsCm5ldHdvcmtsZXNzX3BlcmZvcm1hbmNlOiJMQVRFTkNZX0FDVElPTl9ORVRXT1JLTEVTU19QRVJGT1JNQU5DRSIsZ2VsX2NvbXByZXNzaW9uOiJMQVRFTkNZX0FDVElPTl9HRUxfQ09NUFJFU1NJT04iLGdlbF9qc3BiX3NlcmlhbGl6ZToiTEFURU5DWV9BQ1RJT05fR0VMX0pTUEJfU0VSSUFMSVpFIixhdHRlc3RhdGlvbl9jaGFsbGVuZ2VfZmV0Y2g6IkxBVEVOQ1lfQUNUSU9OX0FUVEVTVEFUSU9OX0NIQUxMRU5HRV9GRVRDSCJ9O18uVXo9bmV3IF8uSSgiZmVlZGJhY2tFbmRwb2ludCIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlZ6PWZ1bmN0aW9uKGEsYil7aWYoYiE9PW51bGwmJmIhPT12b2lkIDApe2lmKHR5cGVvZiBiIT09Im9iamVjdCImJnR5cGVvZiBiIT09ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJkIik7aWYoYz09PXZvaWQgMCl7aWYoIVN5bWJvbC5kaXNwb3NlKXRocm93IG5ldyBUeXBlRXJyb3IoImYiKTt2YXIgYz1iW1N5bWJvbC5kaXNwb3NlXX1pZih0eXBlb2YgYyE9PSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZyIpO2Euc3RhY2sucHVzaCh7dmFsdWU6YixkaXNwb3NlOmMsYXN5bmM6ITF9KX1yZXR1cm4gYn07Cl8uV3o9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihmKXthLmVycm9yPWEuaGFzRXJyb3I/bmV3IFN1cHByZXNzZWRFcnJvcihmLGEuZXJyb3IsIkFuIGVycm9yIHdhcyBzdXBwcmVzc2VkIGR1cmluZyBkaXNwb3NhbC4iKTpmO2EuaGFzRXJyb3I9ITB9ZnVuY3Rpb24gYygpe2Zvcig7ZD1hLnN0YWNrLnBvcCgpOyl0cnl7aWYoIWQuYXN5bmMmJmU9PT0xKXJldHVybiBlPTAsYS5zdGFjay5wdXNoKGQpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oYyk7aWYoZC5kaXNwb3NlKXt2YXIgZj1kLmRpc3Bvc2UuY2FsbChkLnZhbHVlKTtpZihkLmFzeW5jKXJldHVybiBlfD0yLFByb21pc2UucmVzb2x2ZShmKS50aGVuKGMsZnVuY3Rpb24oaCl7YihoKTtyZXR1cm4gYygpfSl9ZWxzZSBlfD0xfWNhdGNoKGgpe2IoaCl9aWYoZT09PTEpcmV0dXJuIGEuaGFzRXJyb3I/UHJvbWlzZS5yZWplY3QoYS5lcnJvcik6UHJvbWlzZS5yZXNvbHZlKCk7aWYoYS5oYXNFcnJvcil0aHJvdyBhLmVycm9yO312YXIgZCwKZT0wO2MoKX07Xy5Yej1mdW5jdGlvbigpe3RyeXtyZXR1cm4hIXNlbGYubG9jYWxTdG9yYWdlfWNhdGNoe3JldHVybiExfX07Xy5Zej1uZXcgXy5JKCJzaGFyZUVuZHBvaW50Iik7Xy5aej1uZXcgXy5JKCJzaGFyZUVudGl0eUVuZHBvaW50Iik7Xy5NYWE9bmV3IF8uSSgic2hhcmVFbnRpdHlTZXJ2aWNlRW5kcG9pbnQiKTtfLk5hYT1uZXcgXy5JKCJ3ZWJQbGF5ZXJTaGFyZUVudGl0eVNlcnZpY2VFbmRwb2ludCIpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmFBPWZ1bmN0aW9uKGEsYj17fSxjKXthPShhPWEgaW4gXy4kej9fLiR6W2FdOmMpfHwiIjtmb3IobGV0IGQgaW4gYiljPSgpPT5TdHJpbmcoYltkXSksYT1hLnJlcGxhY2UobmV3IFJlZ0V4cCgiXFwkXFx7IitkKyJcXH0iLCJnaSIpLGMpLGE9YS5yZXBsYWNlKG5ldyBSZWdFeHAoIlxcJCIrZCwiZ2kiKSxjKTtyZXR1cm4gYX07Xy4kej13aW5kb3cueXQmJndpbmRvdy55dC5tc2dzX3x8d2luZG93Lnl0Y2ZnJiZ3aW5kb3cueXRjZmcubXNnc3x8e307Xy5yYSgieXQubXNnc18iLF8uJHopOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgY0E7Xy5iQT1mdW5jdGlvbihhKXt2YXIgYj1hLmluZGV4T2YoIjoiKTtyZXR1cm4gYj09PS0xP3tNbTphfTp7TW06YS5zdWJzdHJpbmcoMCxiKSxkYXRhc3luY0lkOmEuc3Vic3RyaW5nKGIrMSl9fTtfLmVBPWFzeW5jIGZ1bmN0aW9uKCl7cmV0dXJuIGNBIT09dm9pZCAwP2NBOmNBPW5ldyBQcm9taXNlKGFzeW5jIGE9Pnt0cnl7YXdhaXQgXy5kQS5vcGVuKCJ0ZXN0LW9ubHkiKSxhd2FpdCBfLmRBLmRlbGV0ZSgidGVzdC1vbmx5Iil9Y2F0Y2goYil7aWYoYiBpbnN0YW5jZW9mIEVycm9yJiZiLm5hbWU9PT0iU2VjdXJpdHlFcnJvciIpe2EoITEpO3JldHVybn19YSgiY2FjaGVzImluIHdpbmRvdyl9KX07Xy5kQT1fLnUuY2FjaGVzOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmdBPW5ldyBXZWFrTWFwO18uaEE9bmV3IFNldDsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5XZCgiYmFzZSIpOwp2YXIgQVosQlosQ1osY3JhLERaLGVyYSxFWixGWixIWixLWixMWixNWixmcmEsUFosUVosU1osZ3JhLFZaLGNfLGRfLGVfLGZfLGdfLGhfLGlfLGpfLGtfLGlyYSxqcmEsa3JhLGxyYSxucmEsbV8sbl8sb18scF8scV8scl8sc18sdF8sdV8sdl8sd18seF8scHJhLHlfLHpfLHFyYSxBXyxycmEsc3JhLHRyYSxCXyxDXyxEXyxGXyxHXyxIXyxJXyxKXyxLXyxMXyxNXyxPXyxQXyxRXyxSXyxTXyxocmEsdXJhLHZyYSxUXyxVXyxWXyxXXyxYXyxZXyx3cmEsJF8sYTAsYjAseHJhLGQwLHlyYSxlMCx6cmEsQnJhLENyYSxEcmEsZzAsRXJhLEZyYSxHcmEsaDAsaTAsbDAsSHJhLGswLGowLG4wLElyYSxKcmEsbzAsS3JhLHAwLHEwLHIwLExyYSxNcmEsTnJhLE9yYSxQcmEsUXJhLHQwLHYwLHcwLHgwLFNyYSxUcmEseTAsQTAsQjAsQzAsRDAsRTAsRzAsVXJhLFZyYSxIMCxXcmEsWHJhLFlyYSxJMCxKMCxTMCxUMCxQMCxVMCxMMCxRMCxLMCxPMCxNMCxOMCxacmEsUjAsJHJhLFYwLGFzYSxjc2EsClgwLFkwLFowLCQwLGExLGRzYSxiMSxjMSxlc2EsZnNhLGdzYSxkMSxmMSxoc2EsZzEsanNhLGtzYSxqMSxsc2EsazEsbDEsbTEsbXNhLHIxLHNzYSx1c2EsdjEseTEsdzEsdnNhLHhzYSxCMSxDMSxEMSx5c2EsRTEsRjEsQXNhLEJzYSx6c2EsQ3NhLEVzYSxGc2EsR3NhLHFzYSxvMSxuc2EsSTEsSHNhLEcxLElzYSxKc2EsSzEsTTEsTjEsS3NhLE8xLFAxLExzYSxSMSxPc2EsUHNhLFJzYSxRMSxVMSxXMSxUc2EsJDEsWDEsVXNhLFZzYSxXc2EsWHNhLGF0YSxidGEsZjIsJHNhLFpzYSxhMixlMixiMixjdGEsZzIsaDIsaTIsazIsbDIsZXRhLGZ0YSxndGEsbjIscDIsbzIsdDIsanRhLHIyLGl0YSx3Mix2MixtdGEsbnRhLG90YSxwdGEseDIseTIsejIsQTIsQzIsdXRhLHZ0YSxFMixGMix3dGEsRzIseXRhLFpfLEkyLEoyLEwyLHp0YSxOMixPMixQMixCdGEsUTIsRHRhLFMyLFQyLFUyLEV0YSxWMixXMixGdGEsR3RhLGEzLGIzLEl0YSxlMyxKdGEsZDMsZjMsS3RhLEx0YSxNdGEsYzMsSHRhLApoMyxOdGEsazMsT3RhLFB0YSxRdGEsbTMsbjMsbDMsUnRhLG8zLHAzLFN0YSxxMyxUdGEscjMsczMsdzMsVXRhLHgzLHkzLFZ0YSxZdGEsWnRhLEMzLEQzLEUzLCR0YSxidWEsY3VhLEczLGR1YSxldWEsWHRhLEgzLEkzLGZ1YSxndWEsYzQsZDQsZTQsaHVhLGY0LGl1YSxqdWEsWXNhLGh0YSxrdWEsbnVhLGc0LGk0LHB1YSxoNCxrNCxzdWEsdHVhLGw0LG00LHZ1YSx3dWEsbzQseHVhLHl1YSxxNCx6dWEsQXVhLEJ1YSxEdWEsR3VhLHY0LEp1YSx3NCxJdWEsSHVhLEt1YSx4NCx5NCx6NCxBNCxENCxDNCxCNCxFNCxNdWEsRjQsT3VhLFB1YSxRdWEsUnVhLFN1YSxUdWEsVXVhLEk0LEs0LFp1YSwkdWEsUTQsTTQsVnVhLFI0LFM0LGF2YSxidmEsY3ZhLGR2YSxkcmEsQTMsR1osSVosSlosTl8sTlosT1osUlosVFosVVosJFosYV8sYl8sWlosWVosV1osWFosbF8sRV8sb3JhLFY0LGV2YSxXNCxYNCxmdmEsWTQsWjQsZ3ZhLGh2YSxpdmEsanZhLGt2YSwkNCxsdmEsbXZhLGE1LG52YSxiNSwKYzUsb3ZhLHB2YTtBWj1mdW5jdGlvbihhKXtpZihhIT1udWxsJiZ0eXBlb2YgYSE9PSJzdHJpbmciKXRocm93IEVycm9yKCk7cmV0dXJuIGF9O0JaPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5xdyhhLGIsQVooYykpfTtDWj1mdW5jdGlvbihhLGIsYyl7aWYoYyE9bnVsbCl7aWYoISgwLF8ud3IpKGMpKXRocm93IF8uSXcoImVudW0iKTtjfD0wfXJldHVybiBfLnF3KGEsYixjKX07Y3JhPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO2ZvcihsZXQgYz0wO2M8YS5sZW5ndGg7YysrKWIucHVzaChhLmNoYXJDb2RlQXQoYykpO3JldHVybiBifTtEWj1mdW5jdGlvbihhLGIpe3JldHVybiBhW2JdKyhhW2IrMV08PDgpKyhhW2IrMl08PDE2KSsoYVtiKzNdPDwyNCl9OwplcmE9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe2MtPWQ7Yy09ZTtjXj1lPj4+MTM7ZC09ZTtkLT1jO2RePWM8PDg7ZS09YztlLT1kO2VePWQ+Pj4xMztjLT1kO2MtPWU7Y149ZT4+PjEyO2QtPWU7ZC09YztkXj1jPDwxNjtlLT1jO2UtPWQ7ZV49ZD4+PjU7Yy09ZDtjLT1lO2NePWU+Pj4zO2QtPWU7ZC09YztkXj1jPDwxMDtlLT1jO2UtPWQ7ZV49ZD4+PjE1fWE9Y3JhKGEpO2Zvcih2YXIgYz0yNjU0NDM1NzY5LGQ9MjY1NDQzNTc2OSxlPTMxNDE1OTI2NSxmPWEubGVuZ3RoLGg9ZixrPTA7aD49MTI7aC09MTIsays9MTIpYys9RFooYSxrKSxkKz1EWihhLGsrNCksZSs9RFooYSxrKzgpLGIoKTtlKz1mO3N3aXRjaChoKXtjYXNlIDExOmUrPWFbaysxMF08PDI0O2Nhc2UgMTA6ZSs9YVtrKzldPDwxNjtjYXNlIDk6ZSs9YVtrKzhdPDw4O2Nhc2UgODpkKz1hW2srN108PDI0O2Nhc2UgNzpkKz1hW2srNl08PDE2O2Nhc2UgNjpkKz1hW2srNV08PDg7Y2FzZSA1OmQrPWFbays0XTtjYXNlIDQ6Yys9CmFbayszXTw8MjQ7Y2FzZSAzOmMrPWFbaysyXTw8MTY7Y2FzZSAyOmMrPWFbaysxXTw8ODtjYXNlIDE6Yys9YVtrXX1iKCk7cmV0dXJuIGRyYS50b1N0cmluZyhlKX07RVo9ZnVuY3Rpb24oYSxiKXthLmFkZE9uRGlzcG9zZUNhbGxiYWNrKF8uRGEoXy5aZCxiKSl9O0ZaPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVWludDhBcnJheShfLnd3KGEpfHwwKX07SFo9ZnVuY3Rpb24oYSl7cmV0dXJuKEdafHwoR1o9bmV3IFRleHRFbmNvZGVyKSkuZW5jb2RlKGEpfTtLWj1mdW5jdGlvbihhKXt2YXIgYj1hPj4+MDtJWj1iO0paPShhLWIpLzQyOTQ5NjcyOTY+Pj4wfTtMWj1mdW5jdGlvbihhKXtpZihhPDApe0taKC1hKTthPUlaO3ZhciBiPUpaO2I9fmI7YT9hPX5hKzE6Yis9MTtsZXQgW2MsZF09W2EsYl07SVo9Yz4+PjA7Slo9ZD4+PjB9ZWxzZSBLWihhKX07Ck1aPWZ1bmN0aW9uKGEpe2EubGVuZ3RoPDE2P0xaKE51bWJlcihhKSk6KGE9QmlnSW50KGEpLElaPU51bWJlcihhJkJpZ0ludCg0Mjk0OTY3Mjk1KSk+Pj4wLEpaPU51bWJlcihhPj5CaWdJbnQoMzIpJkJpZ0ludCg0Mjk0OTY3Mjk1KSkpfTsKZnJhPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT09InN0cmluZyIpcmV0dXJuIG5ldyBOWihfLnV3KGEpLCEwKTtpZihBcnJheS5pc0FycmF5KGEpKXJldHVybiBuZXcgTloobmV3IFVpbnQ4QXJyYXkoYSksITApO2lmKGEuY29uc3RydWN0b3I9PT1VaW50OEFycmF5KXJldHVybiBuZXcgTlooYSwhMSk7aWYoYS5jb25zdHJ1Y3Rvcj09PUFycmF5QnVmZmVyKXJldHVybiBhPW5ldyBVaW50OEFycmF5KGEpLG5ldyBOWihhLCExKTtpZihhLmNvbnN0cnVjdG9yPT09Xy5SYyl7bGV0IGI9Xy53dyhhKXx8bmV3IFVpbnQ4QXJyYXkoMCk7cmV0dXJuIG5ldyBOWihiLCEwLGEpfWlmKGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KXJldHVybiBhPWEuY29uc3RydWN0b3I9PT1VaW50OEFycmF5P2E6bmV3IFVpbnQ4QXJyYXkoYS5idWZmZXIsYS5ieXRlT2Zmc2V0LGEuYnl0ZUxlbmd0aCksbmV3IE5aKGEsITEpO3Rocm93IEVycm9yKCk7fTsKUFo9ZnVuY3Rpb24oYSl7cmV0dXJuIGEubz09PTA/bmV3IE9aKDAsMSt+YS5qKTpuZXcgT1oofmEubysxLH5hLmopfTtRWj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IE9aKGEmNDI5NDk2NzI5NSxNYXRoLmZsb29yKGEvNDI5NDk2NzI5NikpfTtTWj1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gUlp8fChSWj1uZXcgT1ooMCwwKSk7aWYoIS9eXGQrJC8udGVzdChhKSlyZXR1cm4gbnVsbDtNWihhKTtyZXR1cm4gbmV3IE9aKElaLEpaKX07Z3JhPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVFooYSY0Mjk0OTY3Mjk1LE1hdGguZmxvb3IoYS80Mjk0OTY3Mjk2KSl9O1ZaPWZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiBVWnx8KFVaPW5ldyBUWigwLDApKTtpZighL14tP1xkKyQvLnRlc3QoYSkpcmV0dXJuIG51bGw7TVooYSk7cmV0dXJuIG5ldyBUWihJWixKWil9OwpjXz1mdW5jdGlvbihhLGIsYyl7aWYodHlwZW9mIEJpZ0ludDY0QXJyYXkhPT0idW5kZWZpbmVkIilyZXR1cm4gV1p8fChXWj1uZXcgQmlnSW50NjRBcnJheSgxKSxYWj1uZXcgVWludDMyQXJyYXkoV1ouYnVmZmVyKSxXWlswXT1CaWdJbnQoMSksWVo9WFpbMF09PT0xKSxXWlswXT1hLGE9WVo/MDoxLG5ldyBiKFhaW2FdLFhaWzEtYV0pO1pafHwoJFo9QmlnSW50KE51bWJlci5NSU5fU0FGRV9JTlRFR0VSKSxhXz1CaWdJbnQoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLGJfPUJpZ0ludCg0Mjk0OTY3Mjk1KSxaWj1CaWdJbnQoMzIpKTtpZihhPj0kWiYmYTw9YV8pcmV0dXJuIGMoTnVtYmVyKGEpKTthPUJpZ0ludC5hc1VpbnROKDY0LGEpO3JldHVybiBuZXcgYihOdW1iZXIoYSZiXyksTnVtYmVyKGE+PlpaKSl9O2RfPWZ1bmN0aW9uKGEsYixjKXtmb3IoO2M+MHx8Yj4xMjc7KWEuai5wdXNoKGImMTI3fDEyOCksYj0oYj4+Pjd8Yzw8MjUpPj4+MCxjPj4+PTc7YS5qLnB1c2goYil9OwplXz1mdW5jdGlvbihhLGIpe2Euai5wdXNoKGI+Pj4wJjI1NSk7YS5qLnB1c2goYj4+PjgmMjU1KTthLmoucHVzaChiPj4+MTYmMjU1KTthLmoucHVzaChiPj4+MjQmMjU1KX07Zl89ZnVuY3Rpb24oYSxiKXtpZihiPj0wKV8uWHkoYSxiKTtlbHNle2ZvcihsZXQgYz0wO2M8OTtjKyspYS5qLnB1c2goYiYxMjd8MTI4KSxiPj49NzthLmoucHVzaCgxKX19O2dfPWZ1bmN0aW9uKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAic3RyaW5nIjpTWihhKX19O2hfPWZ1bmN0aW9uKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAic3RyaW5nIjphLmxlbmd0aCYmYVswXT09PSItIj9TWihhLnN1YnN0cmluZygxKSk6U1ooYSl9fTsKaV89ZnVuY3Rpb24oYSxiLGMpe2lmKGMhPW51bGwpc3dpdGNoKGdfKGMpLF8uWnkoYSxiLDEpLHR5cGVvZiBjKXtjYXNlICJudW1iZXIiOmE9YS5qO0taKGMpO2VfKGEsSVopO2VfKGEsSlopO2JyZWFrO2Nhc2UgImJpZ2ludCI6Yz1jXyhjLE9aLFFaKTthPWEuajtiPWMuajtlXyhhLGMubyk7ZV8oYSxiKTticmVhaztkZWZhdWx0OmM9U1ooYyksYT1hLmosYj1jLmosZV8oYSxjLm8pLGVfKGEsYil9fTtqXz1mdW5jdGlvbihhLGIsYyl7YyE9bnVsbCYmKGM9cGFyc2VJbnQoYywxMCksXy5aeShhLGIsMCksZl8oYS5qLGMpKX07a189ZnVuY3Rpb24oYSxiLGMpe18uWnkoYSxiLDIpO18uWHkoYS5qLGMubGVuZ3RoKTtfLll5KGEsYS5qLmVuZCgpKTtfLll5KGEsYyl9OwppcmE9ZnVuY3Rpb24oYSl7dmFyIGI9InRydWUiLnRvU3RyaW5nKCksYz1baHJhYGRhdGEtYF07aWYoYy5sZW5ndGg9PT0wKXRocm93IEVycm9yKCJoIik7aWYoYy5tYXAoZD0+e2lmKGQgaW5zdGFuY2VvZiBsXylkPWQuajtlbHNlIHRocm93IEVycm9yKCJoIik7cmV0dXJuIGR9KS5ldmVyeShkPT4iZGF0YS1sb2FkZWQiLmluZGV4T2YoZCkhPT0wKSl0aHJvdyBFcnJvcigiaWBkYXRhLWxvYWRlZCIpO2Euc2V0QXR0cmlidXRlKCJkYXRhLWxvYWRlZCIsYil9O2pyYT1mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoYSxiLHZvaWQgMCl9O2tyYT1mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoYSxiLHtkdXJhdGlvbjowfSl9O2xyYT1mdW5jdGlvbihhLGIpe3JldHVybiBhPmI/MTphPGI/LTE6MH07Cm5yYT1mdW5jdGlvbigpe3ZhciBhPW1yYTtyZXR1cm4gXy5DYyhiPT57Zm9yKGxldCBjIGluIGEpaWYoYj09PWFbY10mJiEvXlswLTldKyQvLnRlc3QoYykpcmV0dXJuITA7cmV0dXJuITF9KX07bV89ZnVuY3Rpb24oYSxiKXtiPj4+PTA7YT4+Pj0wO3ZhciBjO2I8PTIwOTcxNTE/Yz0iIisoNDI5NDk2NzI5NipiK2EpOmM9IiIrKEJpZ0ludChiKTw8QmlnSW50KDMyKXxCaWdJbnQoYSkpO3JldHVybiBjfTtuXz1mdW5jdGlvbihhLGIpe3ZhciBjPWIqNDI5NDk2NzI5NisoYT4+PjApO3JldHVybiBOdW1iZXIuaXNTYWZlSW50ZWdlcihjKT9jOm1fKGEsYil9O29fPWZ1bmN0aW9uKCl7dmFyIGE9SVosYj1KWixjO2ImMjE0NzQ4MzY0OD9jPSIiKyhCaWdJbnQoYnwwKTw8QmlnSW50KDMyKXxCaWdJbnQoYT4+PjApKTpjPW1fKGEsYik7cmV0dXJuIGN9OwpwXz1mdW5jdGlvbihhKXtpZihhIT1udWxsJiZ0eXBlb2YgYSE9PSJudW1iZXIiKXRocm93IEVycm9yKCJxYCIrdHlwZW9mIGErImAiK2EpO3JldHVybiBhfTtxXz1mdW5jdGlvbihhKXtpZihhPT1udWxsfHx0eXBlb2YgYT09PSJudW1iZXIiKXJldHVybiBhO2lmKGE9PT0iTmFOInx8YT09PSJJbmZpbml0eSJ8fGE9PT0iLUluZmluaXR5IilyZXR1cm4gTnVtYmVyKGEpfTtyXz1mdW5jdGlvbihhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgImJpZ2ludCI6cmV0dXJuITA7Y2FzZSAibnVtYmVyIjpyZXR1cm4oMCxfLndyKShhKTtjYXNlICJzdHJpbmciOnJldHVybiBvcmEudGVzdChhKTtkZWZhdWx0OnJldHVybiExfX07c189ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClyZXR1cm4gYTtpZih0eXBlb2YgYT09PSJzdHJpbmciJiZhKWE9K2E7ZWxzZSBpZih0eXBlb2YgYSE9PSJudW1iZXIiKXJldHVybjtyZXR1cm4oMCxfLndyKShhKT9hPj4+MDp2b2lkIDB9Owp0Xz1mdW5jdGlvbihhKXt2YXIgYj0oMCxfLnhyKShOdW1iZXIoYSkpO2lmKCgwLF8udnIpKGIpKXJldHVybiBfLkZjKGIpO2I9YS5pbmRleE9mKCIuIik7YiE9PS0xJiYoYT1hLnN1YnN0cmluZygwLGIpKTtyZXR1cm4gXy5GYygoMCxfLnRyKSg2NCxCaWdJbnQoYSkpKX07dV89ZnVuY3Rpb24oYSl7dmFyIGI9KDAsXy54cikoTnVtYmVyKGEpKTtpZigoMCxfLnZyKShiKSlyZXR1cm4gU3RyaW5nKGIpO2I9YS5pbmRleE9mKCIuIik7YiE9PS0xJiYoYT1hLnN1YnN0cmluZygwLGIpKTtiPWEubGVuZ3RoOyhhWzBdPT09Ii0iP2I8MjB8fGI9PT0yMCYmYTw9Ii05MjIzMzcyMDM2ODU0Nzc1ODA4IjpiPDE5fHxiPT09MTkmJmE8PSI5MjIzMzcyMDM2ODU0Nzc1ODA3Iil8fChNWihhKSxhPW9fKCkpO3JldHVybiBhfTsKdl89ZnVuY3Rpb24oYSl7YT0oMCxfLnhyKShhKTtpZighKDAsXy52cikoYSkpe0xaKGEpO3ZhciBiPUlaLGM9Slo7aWYoYT1jJjIxNDc0ODM2NDgpYj1+YisxPj4+MCxjPX5jPj4+MCxiPT0wJiYoYz1jKzE+Pj4wKTtiPW5fKGIsYyk7YT10eXBlb2YgYj09PSJudW1iZXIiP2E/LWI6YjphPyItIitiOmJ9cmV0dXJuIGF9O3dfPWZ1bmN0aW9uKGEpe2E9KDAsXy54cikoYSk7KDAsXy52cikoYSk/YT1TdHJpbmcoYSk6KExaKGEpLGE9b18oKSk7cmV0dXJuIGF9O3hfPWZ1bmN0aW9uKGEpe3JldHVybigwLF8udnIpKGEpP18uRmModl8oYSkpOl8uRmMod18oYSkpfTsKcHJhPWZ1bmN0aW9uKGEpe3ZhciBiPXZvaWQgMDtiPTEwMjQ7aWYoIXJfKGEpKXRocm93IF8uSXcoImludDY0Iik7dmFyIGM9dHlwZW9mIGE7c3dpdGNoKGIpe2Nhc2UgNTEyOnN3aXRjaChjKXtjYXNlICJzdHJpbmciOnJldHVybiB1XyhhKTtjYXNlICJiaWdpbnQiOnJldHVybiBTdHJpbmcoKDAsXy50cikoNjQsYSkpO2RlZmF1bHQ6cmV0dXJuIHdfKGEpfWNhc2UgMTAyNDpzd2l0Y2goYyl7Y2FzZSAic3RyaW5nIjpyZXR1cm4gdF8oYSk7Y2FzZSAiYmlnaW50IjpyZXR1cm4gXy5GYygoMCxfLnRyKSg2NCxhKSk7ZGVmYXVsdDpyZXR1cm4geF8oYSl9Y2FzZSAwOnN3aXRjaChjKXtjYXNlICJzdHJpbmciOnJldHVybiB1XyhhKTtjYXNlICJiaWdpbnQiOnJldHVybiBfLkZjKCgwLF8udHIpKDY0LGEpKTtkZWZhdWx0OnJldHVybiB2XyhhKX1kZWZhdWx0OnJldHVybiBfLmViKGIsIlVua25vd24gZm9ybWF0IHJlcXVlc3RlZCB0eXBlIGZvciBpbnQ2NCIpfX07CnlfPWZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsP2E6cHJhKGEpfTt6Xz1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgYTtpZihhPT1udWxsKXJldHVybiBhO2lmKGI9PT0iYmlnaW50IilyZXR1cm4gXy5GYygoMCxfLnRyKSg2NCxhKSk7aWYocl8oYSkpcmV0dXJuIGI9PT0ic3RyaW5nIj90XyhhKTp4XyhhKX07cXJhPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIGE7dmFyIGI9dHlwZW9mIGE7aWYoYj09PSJiaWdpbnQiKXJldHVybiBTdHJpbmcoKDAsXy50cikoNjQsYSkpO2lmKHJfKGEpKXtpZihiPT09InN0cmluZyIpcmV0dXJuIHVfKGEpO2lmKGI9PT0ibnVtYmVyIilyZXR1cm4gdl8oYSl9fTsKQV89ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClyZXR1cm4gYTt2YXIgYj10eXBlb2YgYTtpZihiPT09ImJpZ2ludCIpcmV0dXJuIFN0cmluZygoMCxfLnVyKSg2NCxhKSk7aWYocl8oYSkpe2lmKGI9PT0ic3RyaW5nIilyZXR1cm4gYj0oMCxfLnhyKShOdW1iZXIoYSkpLCgwLF8udnIpKGIpJiZiPj0wP2E9U3RyaW5nKGIpOihiPWEuaW5kZXhPZigiLiIpLGIhPT0tMSYmKGE9YS5zdWJzdHJpbmcoMCxiKSksYVswXT09PSItIj9iPSExOihiPWEubGVuZ3RoLGI9YjwyMD8hMDpiPT09MjAmJmE8PSIxODQ0Njc0NDA3MzcwOTU1MTYxNSIpLGJ8fChNWihhKSxhPW1fKElaLEpaKSkpLGE7aWYoYj09PSJudW1iZXIiKXJldHVybiBhPSgwLF8ueHIpKGEpLGE+PTAmJigwLF8udnIpKGEpfHwoTFooYSksYT1uXyhJWixKWikpLGF9fTtycmE9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbHx8dHlwZW9mIGE9PSJzdHJpbmcifHxhIGluc3RhbmNlb2YgXy5SYylyZXR1cm4gYX07CnNyYT1mdW5jdGlvbihhKXtpZih0eXBlb2YgYSE9PSJzdHJpbmciKXRocm93IEVycm9yKCk7cmV0dXJuIGF9O3RyYT1mdW5jdGlvbihhKXtyZXR1cm4gXy5OdyhhLCEwKX07Ql89ZnVuY3Rpb24oYSl7YT1fLmVkKGEsMSx2b2lkIDAsdm9pZCAwLHRyYSk7cmV0dXJuIGE9PW51bGw/Xy5NdygpOmF9OwpDXz1mdW5jdGlvbihhLGIsYyl7Xy5udyhhKTt2YXIgZD1hLkRhLGU9ZFtfLkFjXXwwO2lmKGI9PW51bGwpcmV0dXJuIF8ucHcoZCxlLDMpLGE7dmFyIGY9Yj09PV8ubXI/NzpiW18uQWNdfDAsaD1mLGs9Xy5UeShmKSxsPWt8fE9iamVjdC5pc0Zyb3plbihiKTtrfHwoZj0wKTtsfHwoYj1bLi4uYl0saD0wLGY9Xy5VeShmLGUpLGw9ITEpO2Z8PTU7az0oNCZmPzUxMiZmPzUxMjoxMDI0JmY/MTAyNDowOnZvaWQgMCk/PzEwMjQ7Znw9aztmb3IobGV0IG09MDttPGIubGVuZ3RoO20rKyl7bGV0IG49YlttXSxwPWMobixrKTtPYmplY3QuaXMobixwKXx8KGwmJihiPVsuLi5iXSxoPTAsZj1fLlV5KGYsZSksbD0hMSksYlttXT1wKX1mIT09aCYmKGwmJihiPVsuLi5iXSxmPV8uVXkoZixlKSksYltfLkFjXT1mKTtfLnB3KGQsZSwzLGIpO3JldHVybiBhfTsKRF89ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5nZXQoZCk7aWYoZSE9bnVsbClyZXR1cm4gZTtlPTA7Zm9yKGxldCBmPTA7ZjxkLmxlbmd0aDtmKyspe2xldCBoPWRbZl07Xy5kZChiLGgpIT1udWxsJiYoZSE9PTAmJihjPV8ucHcoYixjLGUpKSxlPWgpfWEuc2V0KGQsZSk7cmV0dXJuIGV9O0ZfPWZ1bmN0aW9uKGEsYixjLGQpe18ubncoYSk7YT1hLkRhO3ZhciBlPWFbXy5BY118MDtpZihkPT1udWxsKXt2YXIgZj1hW0VfXT8/KGFbRV9dPW5ldyBNYXApO2lmKERfKGYsYSxlLGMpPT09YilmLnNldChjLDApO2Vsc2UgcmV0dXJufWVsc2V7Zj1hW0VfXT8/KGFbRV9dPW5ldyBNYXApO2xldCBoPURfKGYsYSxlLGMpO2ghPT1iJiYoaCYmKGU9Xy5wdyhhLGUsaCkpLGYuc2V0KGMsYikpfV8ucHcoYSxlLGIsZCl9O0dfPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLkRhO3JldHVybiBfLld5KGEsZCxkW18uQWNdfDAsYixjLHZvaWQgMD09PV8ub3I/Mjo0LCExLCEwKX07CkhfPWZ1bmN0aW9uKGEsYixjKXtfLm53KGEpO3ZhciBkPWEuRGEsZT1kW18uQWNdfDA7aWYoYz09bnVsbClyZXR1cm4gXy5wdyhkLGUsYiksYTt2YXIgZj1jPT09Xy5tcj83OmNbXy5BY118MCxoPWYsaz1fLlR5KGYpLGw9a3x8T2JqZWN0LmlzRnJvemVuKGMpLG09ITAsbj0hMDtmb3IobGV0IHI9MDtyPGMubGVuZ3RoO3IrKyl7dmFyIHA9Y1tyXTtrfHwocD1fLkJjKHApLG0mJihtPSFwKSxuJiYobj1wKSl9a3x8KGY9bT8xMzo1LGY9bj9mJi00MDk3OmZ8NDA5Nik7bCYmZj09PWh8fChjPVsuLi5jXSxoPTAsZj1fLlV5KGYsZSkpO2YhPT1oJiYoY1tfLkFjXT1mKTtlPV8ucHcoZCxlLGIsYyk7MiZmfHwhKDQwOTYmZnx8MTYmZil8fF8ub3coZCxlKTtyZXR1cm4gYX07SV89ZnVuY3Rpb24oYSxiLGM9Xy55cil7cmV0dXJuIF8uZWQoYSxiLHZvaWQgMCx2b2lkIDAsel8pPz9jfTtKXz1mdW5jdGlvbihhLGIsYz0iIixkKXtyZXR1cm4gXy5YdChfLmVkKGEsYixkKSk/P2N9OwpLXz1mdW5jdGlvbihhKXthPV8uZWQoYSwxKTtyZXR1cm4oYT09bnVsbD9hOigwLF8ud3IpKGEpP2F8MDp2b2lkIDApPz8wfTtMXz1mdW5jdGlvbihhLGIsYyl7aWYoQXJyYXkuaXNBcnJheShiKSl7dmFyIGQ9YltfLkFjXXwwO2lmKGQmNClyZXR1cm4gYjtmb3IodmFyIGU9MCxmPTA7ZTxiLmxlbmd0aDtlKyspe2xldCBoPWEoYltlXSk7aCE9bnVsbCYmKGJbZisrXT1oKX1mPGUmJihiLmxlbmd0aD1mKTthPWR8MTtjJiYoYT0oYXw0KSYtMTUzNyk7YSE9PWQmJihiW18uQWNdPWEpO2MmJmEmMiYmT2JqZWN0LmZyZWV6ZShiKTtyZXR1cm4gYn19O01fPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBfLmd6KGEsYil9OwpPXz1mdW5jdGlvbihhLGIsYyl7Yj1xXyhiKTtiIT1udWxsJiYoXy5aeShhLGMsMSksYT1hLmosYz1OX3x8KE5fPW5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoOCkpKSxjLnNldEZsb2F0NjQoMCwrYiwhMCksSVo9Yy5nZXRVaW50MzIoMCwhMCksSlo9Yy5nZXRVaW50MzIoNCwhMCksZV8oYSxJWiksZV8oYSxKWikpfTtQXz1mdW5jdGlvbihhLGIsYyl7Yj1xcmEoYik7aWYoYiE9bnVsbCl7c3dpdGNoKHR5cGVvZiBiKXtjYXNlICJzdHJpbmciOlZaKGIpfWlmKGIhPW51bGwpc3dpdGNoKF8uWnkoYSxjLDApLHR5cGVvZiBiKXtjYXNlICJudW1iZXIiOmE9YS5qO0xaKGIpO2RfKGEsSVosSlopO2JyZWFrO2Nhc2UgImJpZ2ludCI6Yz1jXyhiLFRaLGdyYSk7ZF8oYS5qLGMubyxjLmopO2JyZWFrO2RlZmF1bHQ6Yz1WWihiKSxkXyhhLmosYy5vLGMuail9fX07UV89ZnVuY3Rpb24oYSxiLGMpe2I9Xy5zeChiKTtiIT1udWxsJiZiIT1udWxsJiYoXy5aeShhLGMsMCksZl8oYS5qLGIpKX07ClJfPWZ1bmN0aW9uKGEsYixjKXtiPV8uWHQoYik7YiE9bnVsbCYma18oYSxjLEhaKGIpKX07U189ZnVuY3Rpb24oYSl7cmV0dXJuIGI9Pl8uWHgoYSxiKX07aHJhPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgbF8oYVswXS50b0xvd2VyQ2FzZSgpKX07Xy5lVj1mdW5jdGlvbihhLGIpe3RoaXMueD1hIT09dm9pZCAwP2E6MDt0aGlzLnk9YiE9PXZvaWQgMD9iOjB9O3VyYT1mdW5jdGlvbihhKXtmb3IobGV0IGIgaW4gXy5zcylpZihhLmNhbGwodm9pZCAwLF8uc3NbYl0sYixfLnNzKSlyZXR1cm4gYn07dnJhPWZ1bmN0aW9uKGEsYil7aWYoYSE9PW51bGwmJmIgaW4gYSl0aHJvdyBFcnJvcigiQWAiK2IpO2FbYl09ITB9O1RfPWZ1bmN0aW9uKGEpe3JldHVybiBhIT09bnVsbCYmInByaXZlbWJlZCJpbiBhP2EucHJpdmVtYmVkOiExfTtVXz1mdW5jdGlvbihhKXt2YXIgYj17fTtmb3IobGV0IGMgaW4gYSliW2NdPWFbY107cmV0dXJuIGJ9OwpWXz1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudDtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIj9iLmdldEVsZW1lbnRCeUlkKGEpOmF9O1dfPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYjtiPWEuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChiKX07WF89ZnVuY3Rpb24oYSl7dHlwZW9mIGE9PSJudW1iZXIiJiYoYT1NYXRoLnJvdW5kKGEpKyJweCIpO3JldHVybiBhfTtZXz1mdW5jdGlvbihhKXtyZXR1cm4gYT8oYT1hLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVTY3JpcHRXcmFwcGVkVmFsdWUpP18ua2IoYSk6bnVsbDpudWxsfTt3cmE9ZnVuY3Rpb24oKXt2YXIgYT1aXztfLnNhKCJ5dC5hZHMuYmlzY290dGkuZ2V0SWRfIil8fF8ucmEoInl0LmFkcy5iaXNjb3R0aS5nZXRJZF8iLGEpfTskXz1mdW5jdGlvbihhKXtfLnJhKCJ5dC5hZHMuYmlzY290dGkubGFzdElkXyIsYSl9OwphMD1mdW5jdGlvbihhKXtyZXR1cm4gYS5pbmRleE9mKCI/IikhPT0tMT8oYT0oYXx8IiIpLnNwbGl0KCIjIilbMF0sYT1hLnNwbGl0KCI/IiwyKSxfLmJqKGEubGVuZ3RoPjE/YVsxXTphWzBdKSk6e319O2IwPWZ1bmN0aW9uKGEpe2lmKGRvY3VtZW50LmJvZHkmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCl7bGV0IGI9ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ArZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDthLmo9YS5jbGllbnRYKyhkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQrZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQpO2Eubz1hLmNsaWVudFkrYn19Owp4cmE9ZnVuY3Rpb24oYSxiLGMsZD17fSl7YS5hZGRFdmVudExpc3RlbmVyJiYoYiE9Im1vdXNlZW50ZXIifHwib25tb3VzZWVudGVyImluIGRvY3VtZW50P2IhPSJtb3VzZWxlYXZlInx8Im9ubW91c2VlbnRlciJpbiBkb2N1bWVudD9iPT0ibW91c2V3aGVlbCImJiJNb3pCb3hTaXppbmciaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiYoYj0iTW96TW91c2VQaXhlbFNjcm9sbCIpOmI9Im1vdXNlb3V0IjpiPSJtb3VzZW92ZXIiKTtyZXR1cm4gdXJhKGU9Pnt2YXIgZj10eXBlb2YgZVs0XT09PSJib29sZWFuIiYmZVs0XT09ISFkLGg7aWYoaD1fLkFhKGVbNF0pJiZfLkFhKGQpKWE6e2g9ZVs0XTtmb3IobGV0IGsgaW4gaClpZighKGsgaW4gZCl8fGhba10hPT1kW2tdKXtoPSExO2JyZWFrIGF9Zm9yKGxldCBrIGluIGQpaWYoIShrIGluIGgpKXtoPSExO2JyZWFrIGF9aD0hMH1yZXR1cm4hIWUubGVuZ3RoJiZlWzBdPT1hJiZlWzFdPT1iJiZlWzJdPT1jJiYoZnx8aCl9KX07CmQwPWZ1bmN0aW9uKGEsYixjLGQ9e30pe2lmKCFhfHwhYS5hZGRFdmVudExpc3RlbmVyJiYhYS5hdHRhY2hFdmVudClyZXR1cm4iIjt2YXIgZT14cmEoYSxiLGMsZCk7aWYoZSlyZXR1cm4gZTtlPSsrXy50cy5jb3VudCsiIjt2YXIgZj0hKGIhPSJtb3VzZWVudGVyIiYmYiE9Im1vdXNlbGVhdmUifHwhYS5hZGRFdmVudExpc3RlbmVyfHwib25tb3VzZWVudGVyImluIGRvY3VtZW50KTt2YXIgaD1mP2s9PntrPW5ldyBjMChrKTtpZighXy5ndyhrLnJlbGF0ZWRUYXJnZXQsbD0+bD09YSwhMCkpcmV0dXJuIGsuY3VycmVudFRhcmdldD1hLGsudHlwZT1iLGMuY2FsbChhLGspfTprPT57az1uZXcgYzAoayk7ay5jdXJyZW50VGFyZ2V0PWE7cmV0dXJuIGMuY2FsbChhLGspfTtoPV8uVmkoaCk7YS5hZGRFdmVudExpc3RlbmVyPyhiPT0ibW91c2VlbnRlciImJmY/Yj0ibW91c2VvdmVyIjpiPT0ibW91c2VsZWF2ZSImJmY/Yj0ibW91c2VvdXQiOmI9PSJtb3VzZXdoZWVsIiYmIk1vekJveFNpemluZyJpbgpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUmJihiPSJNb3pNb3VzZVBpeGVsU2Nyb2xsIiksKDAsXy51cykoKXx8dHlwZW9mIGQ9PT0iYm9vbGVhbiI/YS5hZGRFdmVudExpc3RlbmVyKGIsaCxkKTphLmFkZEV2ZW50TGlzdGVuZXIoYixoLCEhZC5jYXB0dXJlKSk6YS5hdHRhY2hFdmVudChgb24ke2J9YCxoKTtfLnNzW2VdPVthLGIsYyxoLGRdO3JldHVybiBlfTt5cmE9ZnVuY3Rpb24oYSl7YSYmKHR5cGVvZiBhPT0ic3RyaW5nIiYmKGE9W2FdKSxfLnRiKGEsYj0+e2lmKGIgaW4gXy5zcyl7dmFyIGM9Xy5zc1tiXTtsZXQgZD1jWzBdLGU9Y1sxXSxmPWNbM107Yz1jWzRdO2QucmVtb3ZlRXZlbnRMaXN0ZW5lcj8oMCxfLnVzKSgpfHx0eXBlb2YgYz09PSJib29sZWFuIj9kLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxmLGMpOmQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLGYsISFjLmNhcHR1cmUpOmQuZGV0YWNoRXZlbnQmJmQuZGV0YWNoRXZlbnQoYG9uJHtlfWAsZik7ZGVsZXRlIF8uc3NbYl19fSkpfTsKZTA9ZnVuY3Rpb24oYSl7dGhpcy5NPWE7dGhpcy5qPW51bGw7dGhpcy5CPTA7dGhpcy5JPW51bGw7dGhpcy5EPTA7dGhpcy5vPVtdO2ZvcihhPTA7YTw0O2ErKyl0aGlzLm8ucHVzaCgwKTt0aGlzLnY9MDt0aGlzLlo9ZDAod2luZG93LCJtb3VzZW1vdmUiLCgwLF8uQ2EpKHRoaXMuZ2EsdGhpcykpO2E9KDAsXy5DYSkodGhpcy5VLHRoaXMpO3R5cGVvZiBhPT09ImZ1bmN0aW9uIiYmKGE9Xy5WaShhKSk7dGhpcy5oYT13aW5kb3cuc2V0SW50ZXJ2YWwoYSwyNSl9O3pyYT1mdW5jdGlvbigpe3ZhciBhPV8ucmooImh0bWw1X3dlYl9wb19leHBlcmltZW50X2lkcyIpO3JldHVybiBBcnJheS5pc0FycmF5KGEpP18uSHcoYSxiPT5OdW1iZXIoYnx8MCkpOltOdW1iZXIoYXx8MCldfTsKQnJhPWZ1bmN0aW9uKCl7KHtoYW5kbGVFcnJvcjphPV8uSHAsbG06Yj1fLkVwfT17fSk7dmFyIGE7Zm9yKF8uR2s9bmV3IEFyYShhLGIpO18uSGsubGVuZ3RoPjA7KXt2YXIgYj1fLkhrLnNoaWZ0KCk7c3dpdGNoKGIudHlwZSl7Y2FzZSAiRVJST1IiOl8uR2suSmIoYi5wYXlsb2FkKTticmVhaztjYXNlICJFVkVOVCI6Xy5Hay5sbShiLmV2ZW50VHlwZSxiLnBheWxvYWQpfX19O0NyYT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uR2woZD0+Yz9kLnVzZXJJZGVudGlmaWVyIT09dm9pZCAwJiYhYS5pbmNsdWRlcyhkLnVzZXJJZGVudGlmaWVyKSYmYy5pbmNsdWRlcyhkLnB1YmxpY05hbWUpOmQudXNlcklkZW50aWZpZXIhPT12b2lkIDAmJiFhLmluY2x1ZGVzKGQudXNlcklkZW50aWZpZXIpLGIpfTsKRHJhPWFzeW5jIGZ1bmN0aW9uKGEpe3ZhciBiPV8uVmooIll0SWRiTWV0YSBoYXNBbnlNZXRhIG90aGVyIik7cmV0dXJuKGF3YWl0IF8uR2woYz0+Yy51c2VySWRlbnRpZmllciE9PXZvaWQgMCYmYy51c2VySWRlbnRpZmllciE9PWIsYSkpLmxlbmd0aD4wfTtnMD1mdW5jdGlvbihhLGIpe2YwfHwoZjA9Xy5qZi5wYihhc3luYygpPT57dmFyIGM9YXdhaXQgXy5QbCgpO2lmKGMpe3ZhciBkPSEwO3RyeXtsZXQgZT1hd2FpdCBDcmEoYSxjLGIpO2lmKGUubGVuZ3RoKXtsZXQgZj1lWzBdO2F3YWl0IF8uQWwoZi5hY3R1YWxOYW1lKTthd2FpdCBfLkZsKGYuYWN0dWFsTmFtZSxjKX1lbHNlIGQ9ITF9Y2F0Y2goZSl7Xy5JayhlKSxkPSExfV8uamYuQWEoZjApO2YwPTA7ZCYmZzAoYSxiKX19KSl9O0VyYT1hc3luYyBmdW5jdGlvbigpe3ZhciBhPWF3YWl0IF8uUGwoKTtyZXR1cm4gYT9EcmEoYSk6ITF9OwpGcmE9ZnVuY3Rpb24oYSl7KDAsXy5lbCkoKTtpZighYS5ib2R5KXJldHVybiBhO3RyeXtsZXQgYj10eXBlb2YgYS5ib2R5PT09InN0cmluZyI/YS5ib2R5OkpTT04uc3RyaW5naWZ5KGEuYm9keSksYz1iO2lmKHR5cGVvZiBiPT09InN0cmluZyIpe2xldCBkPV8udW0oYik7aWYoZCE9bnVsbCYmKGQ+Xy53bXx8ZDxfLnhtKSlyZXR1cm4gYTtjPV8uTmkoKDAsXy55bSkoYikpOygwLF8uZWwpKCl9YS5oZWFkZXJzPXsiQ29udGVudC1FbmNvZGluZyI6Imd6aXAiLC4uLihhLmhlYWRlcnN8fHt9KX07YS5ib2R5PWM7cmV0dXJuIGF9Y2F0Y2goYil7cmV0dXJuIF8uV2koYiksYX19O0dyYT1hc3luYyBmdW5jdGlvbigpe2F3YWl0IF8uUGwoKSYmKF8uV2ooKXx8Xy54KCJud2xfaW5pdF9yZXF1aXJlX2RhdGFzeW5jX2lkX2tpbGxzd2l0Y2giKSkmJl8uc24oKSYmKF8udW49ITAsXy50bi5pc053bEluaXRpYWxpemVkPV8udW4sYXdhaXQgXy5wbigpLmF3YWl0SW5pdGlhbGl6YXRpb24oKSl9OwpoMD1mdW5jdGlvbihhKXtfLlNzW2FdJiYoYT1fLlNzW2FdLF8udGIoYSxiPT57Xy5Sc1tiXSYmZGVsZXRlIF8uUnNbYl19KSxhLmxlbmd0aD0wKX07aTA9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5MeigpO2lmKGIpaWYoYi5jbGVhcihhKSxhKWgwKGEpO2Vsc2UgZm9yKGxldCBjIGluIF8uU3MpaDAoYyl9O2wwPWZ1bmN0aW9uKHt1SzphPSExLE1JOmI9ITB9PXt9KXtpZihfLnNhKCJfbGFjdCIsd2luZG93KT09bnVsbCl7dmFyIGM9cGFyc2VJbnQoXy53KCJMQUNUIiksMTApO2M9aXNGaW5pdGUoYyk/RGF0ZS5ub3coKS1NYXRoLm1heChjLDApOi0xO18ucmEoIl9sYWN0IixjLHdpbmRvdyk7Xy5yYSgiX2ZhY3QiLGMsd2luZG93KTtjPT0tMSYmajAoKTtIcmEoYSxiKTtuZXcgZTAoKCk9PntrMCgibW91c2UiLDEwMCl9KX19OwpIcmE9ZnVuY3Rpb24oYT0hMSxiPSEwKXt2YXIgYz13aW5kb3c7ZDAoYy5kb2N1bWVudCwia2V5ZG93biIsajApO2QwKGMuZG9jdW1lbnQsImtleXVwIixqMCk7ZDAoYy5kb2N1bWVudCwibW91c2Vkb3duIixqMCk7ZDAoYy5kb2N1bWVudCwibW91c2V1cCIsajApO2E/ZDAoYywidG91Y2htb3ZlIiwoKT0+e2swKCJ0b3VjaG1vdmUiLDIwMCl9LHtwYXNzaXZlOiEwfSk6KGQwKGMsInJlc2l6ZSIsKCk9PntrMCgicmVzaXplIiwyMDApfSksYiYmZDAoYywic2Nyb2xsIiwoKT0+e2swKCJzY3JvbGwiLDIwMCl9KSk7ZDAoYy5kb2N1bWVudCwidG91Y2hzdGFydCIsajAse3Bhc3NpdmU6ITB9KTtkMChjLmRvY3VtZW50LCJ0b3VjaGVuZCIsajAse3Bhc3NpdmU6ITB9KX07azA9ZnVuY3Rpb24oYSxiKXttMFthXXx8KG0wW2FdPSEwLF8uamYucGIoKCk9PntqMCgpO20wW2FdPSExfSxiKSl9OwpqMD1mdW5jdGlvbigpe18uc2EoIl9sYWN0Iix3aW5kb3cpPT1udWxsJiZsMCgpO3ZhciBhPURhdGUubm93KCk7Xy5yYSgiX2xhY3QiLGEsd2luZG93KTtfLnNhKCJfZmFjdCIsd2luZG93KT09LTEmJl8ucmEoIl9mYWN0IixhLHdpbmRvdyk7KGE9Xy5zYSgieXRnbG9iYWwueXRVdGlsQWN0aXZpdHlDYWxsYmFja18iKSkmJmEoKX07bjA9ZnVuY3Rpb24oKXt2YXIgYT1fLmtvKCk7YS5pbmZvfHwoYS5pbmZvPXt9KTtyZXR1cm4gYS5pbmZvfTtJcmE9ZnVuY3Rpb24oKXt2YXIgYT1fLm5vKCk7YS5wcmVMb2dnZWRHZWxJbmZvc3x8KGEucHJlTG9nZ2VkR2VsSW5mb3M9W10pO3JldHVybiBhLnByZUxvZ2dlZEdlbEluZm9zfTsKSnJhPWZ1bmN0aW9uKGEsYj0iVW5rbm93biBmaWxlIixjPTAsZCxlLGYpe3ZhciBoPSExLGs9Xy5SaSgibG9nX3dpbmRvd19vbmVycm9yX2ZyYWN0aW9uIik7aWYoayYmTWF0aC5yYW5kb20oKTxrKWg9ITA7ZWxzZXtrPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKTtmb3IobGV0IGw9MCxtPWsubGVuZ3RoO2w8bTtsKyspaWYoa1tsXS5zcmMuaW5kZXhPZigiL2RlYnVnLSIpPjApe2g9ITA7YnJlYWt9fWgmJihoPSExLGU/aD0hMDoodHlwZW9mIGE9PT0ic3RyaW5nIj9rPWE6RXJyb3JFdmVudCYmYSBpbnN0YW5jZW9mIEVycm9yRXZlbnQ/KGg9ITAsaz1hLm1lc3NhZ2UsYj1hLmZpbGVuYW1lLGM9YS5saW5lbm8sZD1hLmNvbG5vKTooaz0iVW5rbm93biBlcnJvciIsYj0iVW5rbm93biBmaWxlIixjPTApLGU9bmV3IF8uWGooayksZS5uYW1lPSJVbmhhbmRsZWRXaW5kb3dFcnJvciIsZS5tZXNzYWdlPWssZS5maWxlTmFtZT1iLGUubGluZU51bWJlcj1jLGlzTmFOKGQpPwpkZWxldGUgZS5jb2x1bW5OdW1iZXI6ZS5jb2x1bW5OdW1iZXI9ZCksZiYmXy5jdyhlLGYpLGg/Xy5HcChlKTpfLklwKGUpKX07bzA9ZnVuY3Rpb24oYSl7YSBpbnN0YW5jZW9mIEVycm9yP18uR3AoYSk6KGE9Xy5BYShhKT9KU09OLnN0cmluZ2lmeShhKTpTdHJpbmcoYSksYT1uZXcgXy5YaihhKSxhLm5hbWU9IlJlamVjdGVkUHJvbWlzZUVycm9yIixfLklwKGEpKX07S3JhPWZ1bmN0aW9uKCl7Xy50YihfLncoIkVSUk9SUyIpfHxbXSxhPT57Xy5HcC5hcHBseShudWxsLGEpfSk7Xy5RaSgiRVJST1JTIixbXSl9O3AwPWZ1bmN0aW9uKCl7cmV0dXJuKF8ueCgiY3NpX3VzZV90aW1lX29yaWdpbiIpfHxfLngoImNzaV91c2VfdGltZV9vcmlnaW5fdHZodG1sNSIpKSYmXy5zcS50aW1lT3JpZ2luP01hdGguZmxvb3IoXy5zcS50aW1lT3JpZ2luKTpfLnNxLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnR9O3EwPWZ1bmN0aW9uKGEpe3JldHVybiBNYXRoLnJvdW5kKHAwKCkrYSl9OwpyMD1mdW5jdGlvbigpe3ZhciBhO18ueCgiY3NpX3VzZV9wZXJmb3JtYW5jZV9uYXZpZ2F0aW9uX3RpbWluZyIpPyhhPV8uc3E/LmdldEVudHJpZXNCeVR5cGU/LigibmF2aWdhdGlvbiIpPy5bMF0/LnRvSlNPTj8uKCkpPyhhLnJlcXVlc3RTdGFydD1xMChhLnJlcXVlc3RTdGFydCksYS5yZXNwb25zZUVuZD1xMChhLnJlc3BvbnNlRW5kKSxhLnJlZGlyZWN0U3RhcnQ9cTAoYS5yZWRpcmVjdFN0YXJ0KSxhLnJlZGlyZWN0RW5kPXEwKGEucmVkaXJlY3RFbmQpLGEuZG9tYWluTG9va3VwRW5kPXEwKGEuZG9tYWluTG9va3VwRW5kKSxhLmNvbm5lY3RTdGFydD1xMChhLmNvbm5lY3RTdGFydCksYS5jb25uZWN0RW5kPXEwKGEuY29ubmVjdEVuZCksYS5yZXNwb25zZVN0YXJ0PXEwKGEucmVzcG9uc2VTdGFydCksYS5zZWN1cmVDb25uZWN0aW9uU3RhcnQ9cTAoYS5zZWN1cmVDb25uZWN0aW9uU3RhcnQpLGEuZG9tYWluTG9va3VwU3RhcnQ9cTAoYS5kb21haW5Mb29rdXBTdGFydCksYS5pc1BlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZz0KITApOmE9Xy5zcS50aW1pbmc6YT1fLngoImNzaV9wZXJmb3JtYW5jZV90aW1pbmdfdG9fb2JqZWN0Iik/SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShfLnNxLnRpbWluZykpOl8uc3EudGltaW5nO3JldHVybiBhfTtMcmE9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudDtpZigidmlzaWJpbGl0eVN0YXRlImluIGEpYT1hLnZpc2liaWxpdHlTdGF0ZTtlbHNle3ZhciBiPV8ucnMrIlZpc2liaWxpdHlTdGF0ZSI7YT1iIGluIGE/YVtiXTp2b2lkIDB9c3dpdGNoKGEpe2Nhc2UgImhpZGRlbiI6cmV0dXJuIDA7Y2FzZSAidmlzaWJsZSI6cmV0dXJuIDE7Y2FzZSAicHJlcmVuZGVyIjpyZXR1cm4gMjtjYXNlICJ1bmxvYWRlZCI6cmV0dXJuIDM7ZGVmYXVsdDpyZXR1cm4tMX19OwpNcmE9ZnVuY3Rpb24oKXtpZihfLnNxLmdldEVudHJpZXNCeVR5cGUpe3ZhciBhPV8uc3EuZ2V0RW50cmllc0J5VHlwZSgicGFpbnQiKTtpZihhPV8udmIoYSxjPT5jLm5hbWU9PT0iZmlyc3QtcGFpbnQiKSlyZXR1cm4gcTAoYS5zdGFydFRpbWUpfXZhciBiO18ueCgiY3NpX3VzZV9wZXJmb3JtYW5jZV9uYXZpZ2F0aW9uX3RpbWluZyIpP2I9Xy5zcS5nZXRFbnRyaWVzQnlUeXBlKCJmaXJzdC1wYWludCIpWzBdLnN0YXJ0VGltZTpiPV8uc3EudGltaW5nLmFLO3JldHVybiBiP01hdGgubWF4KDAsYik6MH07Ck5yYT1mdW5jdGlvbigpe3ZhciBhPV8udygiVElNSU5HX0lORk8iLHt9KSxiPXt9LGM9KGQsZSxmKT0+e2U9ZS5tYXRjaCgiX3JpZCIpP2Uuc3BsaXQoIl9yaWQiKVswXTplO3R5cGVvZiBmPT09Im51bWJlciImJihmPUpTT04uc3RyaW5naWZ5KGYpKTtkLnJlcXVlc3RJZHM/ZC5yZXF1ZXN0SWRzLnB1c2goe2VuZHBvaW50OmUsaWQ6Zn0pOmQucmVxdWVzdElkcz1be2VuZHBvaW50OmUsaWQ6Zn1dfTtmb3IobGV0IFtkLGVdb2YgT2JqZWN0LmVudHJpZXMoYSkpe2E9ZDtsZXQgZj1lO3N3aXRjaChhKXtjYXNlICJHZXRCcm93c2VfcmlkIjpjKGIsYSxmKTticmVhaztjYXNlICJHZXRHdWlkZV9yaWQiOmMoYixhLGYpO2JyZWFrO2Nhc2UgIkdldEhvbWVfcmlkIjpjKGIsYSxmKTticmVhaztjYXNlICJHZXRQbGF5ZXJfcmlkIjpjKGIsYSxmKTticmVhaztjYXNlICJHZXRTZWFyY2hfcmlkIjpjKGIsYSxmKTticmVhaztjYXNlICJHZXRTZXR0aW5nc19yaWQiOmMoYixhLGYpO2JyZWFrO2Nhc2UgIkdldFRyZW5kaW5nX3JpZCI6YyhiLAphLGYpO2JyZWFrO2Nhc2UgIkdldFdhdGNoTmV4dF9yaWQiOmMoYixhLGYpO2JyZWFrO2Nhc2UgInl0X3JlZCI6Yi5pc1JlZFN1YnNjcmliZXI9ISFmO2JyZWFrO2Nhc2UgInl0X2FkIjpiLmlzTW9uZXRpemVkPSEhZn19cmV0dXJuIGJ9O09yYT1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCxiPV8uc3EuZ2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKTtiPWpyYShiLGM9PmMubmFtZS5pbmRleE9mKGAke2F9Ly9mb250cy5nc3RhdGljLmNvbS9zL2ApPT09MCk7KGI9a3JhKGIsKGMsZCk9PmQuZHVyYXRpb24+Yy5kdXJhdGlvbj9kOmMpKSYmYi5zdGFydFRpbWU+MCYmYi5yZXNwb25zZUVuZD4wJiYoXy5ucSgid2ZmcyIscTAoYi5zdGFydFRpbWUpKSxfLm5xKCJ3ZmZlIixxMChiLnJlc3BvbnNlRW5kKSkpfTsKUHJhPWZ1bmN0aW9uKGEsYil7YT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGEpO2lmKCFhKXJldHVybiExO3ZhciBjPSIiLGQ9YS5ub2RlTmFtZTtkPT09IlNDUklQVCI/KGM9YS5zcmMsY3x8KGM9YS5nZXRBdHRyaWJ1dGUoImRhdGEtdGltaW5nLWhyZWYiKSkmJihjPXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCtjKSk6ZD09PSJMSU5LIiYmKGM9YS5ocmVmKTtfLmliKGRvY3VtZW50KSYmYS5zZXRBdHRyaWJ1dGUoIm5vbmNlIixfLmliKGRvY3VtZW50KSk7cmV0dXJuIGM/KGE9Xy5zcS5nZXRFbnRyaWVzQnlOYW1lKGMpKSYmYVswXSYmKGE9YVswXSxjPXAwKCksXy5ucSgicnNmXyIrYixjK01hdGgucm91bmQoYS5mZXRjaFN0YXJ0KSksXy5ucSgicnNlXyIrYixjK01hdGgucm91bmQoYS5yZXNwb25zZUVuZCkpLGEudHJhbnNmZXJTaXplIT09dm9pZCAwJiZhLnRyYW5zZmVyU2l6ZT09PTApPyEwOiExOiExfTsKUXJhPWZ1bmN0aW9uKCl7dmFyIGE9SXJhKCksYj1fLm9vKCksYz12b2lkIDA7Zm9yKHZhciBkPTA7ZDxhLmxlbmd0aDtkKyspe2xldCBrPWFbZF07aWYoay5sb2FkVHlwZSl7Yz1rLmxvYWRUeXBlO2JyZWFrfX1pZihfLmxvKCkubG9hZFR5cGU9PT0iY29sZCImJihiLmxvYWRUeXBlPT09ImNvbGQifHxjPT09ImNvbGQiKSl7Yz1fLm1vKCk7ZD1fLm5vKCk7ZD1kLmdlbFRpY2tzP2QuZ2VsVGlja3M6ZC5nZWxUaWNrcz17fTtmb3IodmFyIGUgaW4gYyllIGluIGR8fHR5cGVvZiBjW2VdPT09Im51bWJlciImJl8ubnEoZSxfLnVxKGUpKTt2YXIgZj17fSxoPSExO2U9az0+e18ueW4oYixrKTtfLnluKGYsayk7aD0hMH07Zm9yKGxldCBrIG9mIGEpZShrKTtoJiZfLnBxKGYpfX07CnQwPWZ1bmN0aW9uKGEsYil7Xy5WaSgoKT0+e18udW8oIiIpLmluZm8uYWN0aW9uVHlwZT1hO2ImJl8uUWkoIlRJTUlOR19BRlRfS0VZUyIsYik7Xy5RaSgiVElNSU5HX0FDVElPTiIsYSk7dmFyIGM9TnJhKCk7T2JqZWN0LmtleXMoYykubGVuZ3RoPjAmJl8ucHEoYyk7Yz17aXNOYXZpZ2F0aW9uOiEwLGFjdGlvblR5cGU6Xy5QeihfLncoIlRJTUlOR19BQ1RJT04iKSl9O3ZhciBkPV8udygiUFJFVklPVVNfQUNUSU9OIik7ZCYmKGMucHJldmlvdXNBY3Rpb249Xy5QeihkKSk7aWYoZD1fLncoIkNMSUVOVF9QUk9UT0NPTCIpKWMuaHR0cFByb3RvY29sPWQ7aWYoZD1fLncoIkNMSUVOVF9UUkFOU1BPUlQiKSljLnRyYW5zcG9ydFByb3RvY29sPWQ7KGQ9Xy5pcSgpKSYmZCE9PSJVTkRFRklORURfQ1NOIiYmKGMuY2xpZW50U2NyZWVuTm9uY2U9ZCk7ZD1McmEoKTtpZihkPT09MXx8ZD09PS0xKWMuaXNWaXNpYmxlPSEwO18ubG8oKTtuMCgpO2MubG9hZFR5cGU9ImNvbGQiO2Q9bjAoKTt2YXIgZT0KcjAoKSxmPXAwKCksaD1fLncoIkNTSV9TVEFSVF9USU1FU1RBTVBfTUlMTElTIiwwKTtoPjAmJiFfLngoImVtYmVkc193ZWJfZW5hYmxlX2NzaV9zdGFydF9vdmVycmlkZV9raWxsc3dpdGNoIikmJihmPWgpO2YmJihfLm5xKCJzcnQiLGUucmVzcG9uc2VTdGFydCksZC5wcmVyZW5kZXIhPT0xJiZfLm9xKGYpKTtkPU1yYSgpO2Q+MCYmXy5ucSgiZnB0IixkKTtkPXIwKCk7ZC5pc1BlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZyYmXy5wcSh7cGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nOiEwfSx2b2lkIDApO18ubnEoIm5yZXFzIixkLnJlcXVlc3RTdGFydCx2b2lkIDApO18ubnEoIm5yZXNzIixkLnJlc3BvbnNlU3RhcnQsdm9pZCAwKTtfLm5xKCJucmVzZSIsZC5yZXNwb25zZUVuZCx2b2lkIDApO2QucmVkaXJlY3RFbmQtZC5yZWRpcmVjdFN0YXJ0PjAmJihfLm5xKCJucnMiLGQucmVkaXJlY3RTdGFydCx2b2lkIDApLF8ubnEoIm5yZSIsZC5yZWRpcmVjdEVuZCx2b2lkIDApKTtkLmRvbWFpbkxvb2t1cEVuZC0KZC5kb21haW5Mb29rdXBTdGFydD4wJiYoXy5ucSgibmRuc3MiLGQuZG9tYWluTG9va3VwU3RhcnQsdm9pZCAwKSxfLm5xKCJuZG5zZSIsZC5kb21haW5Mb29rdXBFbmQsdm9pZCAwKSk7ZC5jb25uZWN0RW5kLWQuY29ubmVjdFN0YXJ0PjAmJihfLm5xKCJudGNwcyIsZC5jb25uZWN0U3RhcnQsdm9pZCAwKSxfLm5xKCJudGNwZSIsZC5jb25uZWN0RW5kLHZvaWQgMCkpO2Quc2VjdXJlQ29ubmVjdGlvblN0YXJ0Pj1wMCgpJiZkLmNvbm5lY3RFbmQtZC5zZWN1cmVDb25uZWN0aW9uU3RhcnQ+MCYmKF8ubnEoIm5zdGNwcyIsZC5zZWN1cmVDb25uZWN0aW9uU3RhcnQsdm9pZCAwKSxfLm5xKCJudGNwZSIsZC5jb25uZWN0RW5kLHZvaWQgMCkpO18uc3EmJiJnZXRFbnRyaWVzQnlUeXBlImluIF8uc3EmJk9yYSgpO2Q9W107aWYoZG9jdW1lbnQucXVlcnlTZWxlY3RvciYmXy5zcSYmXy5zcS5nZXRFbnRyaWVzQnlOYW1lKWZvcih2YXIgayBpbiBzMClzMC5oYXNPd25Qcm9wZXJ0eShrKSYmKGU9CnMwW2tdLFByYShrLGUpJiZkLnB1c2goZSkpO2lmKGQubGVuZ3RoPjApe2MucmVzb3VyY2VJbmZvPVtdO2ZvcihsZXQgbCBvZiBkKWMucmVzb3VyY2VJbmZvLnB1c2goe3Jlc291cmNlQ2FjaGU6bH0pfV8ucHEoYyk7UXJhKCk7Xy5ReigpO2s9Xy53KCJUSU1JTkdfQUNUSU9OIik7Xy5zYSgieXRnbG9iYWwudGltaW5ncmVhZHlfIikmJmsmJl8uUnooKSYmXy52cSgpJiZfLnRxKCl9KSgpfTt2MD1mdW5jdGlvbihhKXtpZighXy54KCJ1bml2ZXJzYWxfY3NpX25ldHdvcmtfdGlja3MiKSlyZXR1cm4iIjthPV8uUWIoYSl8fCIiO3ZhciBiPU9iamVjdC5rZXlzKHUwKTtmb3IobGV0IGM9MDtjPGIubGVuZ3RoO2MrKyl7bGV0IGQ9YltjXTtpZihhLmluY2x1ZGVzKGQpKXJldHVybiBkfXJldHVybiIifTsKdzA9ZnVuY3Rpb24oYSl7aWYoIV8ueCgidW5pdmVyc2FsX2NzaV9uZXR3b3JrX3RpY2tzIikpcmV0dXJuKCk9Pnt9O3ZhciBiPXUwW2FdO3JldHVybiBiPyhfLkl6KGIpLCgpPT57dmFyIGM9Xy54KCJ1bml2ZXJzYWxfY3NpX25ldHdvcmtfdGlja3MiKT8oYz1ScmFbYV0pP18uSXooYyk6ITE6ITE7cmV0dXJuIGN9KTooKT0+e319O3gwPWZ1bmN0aW9uKGEpe18uVmkoKCk9PntpZighXy5SeigiYXR0ZXN0YXRpb25fY2hhbGxlbmdlX2ZldGNoIil8fF8uQnEoYSwiYXR0ZXN0YXRpb25fY2hhbGxlbmdlX2ZldGNoIikpcmV0dXJuITE7Xy5BcShhLHZvaWQgMCwiYXR0ZXN0YXRpb25fY2hhbGxlbmdlX2ZldGNoIik7cmV0dXJuITB9KSgpfTtTcmE9ZnVuY3Rpb24oKXtfLlZpKCgpPT57dmFyIGE9Xy5wbygpO3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3NldFRpbWVvdXQoKCk9PnthPT09Xy5wbygpJiZfLkFxKCJvbCIsdm9pZCAwLHZvaWQgMCl9LDApfSl9KSgpfTsKVHJhPWZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiBudWxsO2E9Xy5YdChfLmVkKGEsNCx2b2lkIDAsXy5EdikpO3JldHVybiBhPT09bnVsbHx8YT09PXZvaWQgMD9udWxsOl8uVGEoYSl9O3kwPWZ1bmN0aW9uKGEpe3JldHVybiBfLlRhKGE9PT1udWxsPyJudWxsIjphPT09dm9pZCAwPyJ1bmRlZmluZWQiOmEpfTtBMD1mdW5jdGlvbigpe3JldHVybiB6MC5sb2FkZWR8fCh6MC5sb2FkZWQ9ImxvYWRlZCIucmVwbGFjZSgvXC0oW2Etel0pL2csKGEsYik9PmIudG9VcHBlckNhc2UoKSkpfTtCMD1mdW5jdGlvbihhKXtyZXR1cm4gYT9hLmRhdGFzZXQ/YS5kYXRhc2V0W0EwKCldOmEuZ2V0QXR0cmlidXRlKCJkYXRhLWxvYWRlZCIpOm51bGx9O0MwPWZ1bmN0aW9uKGEpe2EmJihhLmRhdGFzZXQ/YS5kYXRhc2V0W0EwKCldPSJ0cnVlIjppcmEoYSkpfTsKRDA9ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO18uTHkoYixhKTtyZXR1cm5ganMtJHtfLk15KGIuaHJlZi5yZXBsYWNlKC9eW2EtekEtWl0rOlwvXC8vLCIvLyIpKX1gfTtFMD1mdW5jdGlvbihhKXthPUQwKGEpO3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpO2ImJihpMChhKSxiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYikpfTtHMD1mdW5jdGlvbihhLGIpe2EmJmImJihhPWAke18uZncoYil9YCwoYT1GMFthXSkmJl8uTnooYSkpfTsKVXJhPWZ1bmN0aW9uKGEsYixjLGQ9bnVsbCl7dmFyIGU9Xy5DZCgiU0NSSVBUIik7ZS5pZD1iO2Uub25sb2FkPSgpPT57YyYmc2V0VGltZW91dChjLDApfTtlLm9ucmVhZHlzdGF0ZWNoYW5nZT0oKT0+e3N3aXRjaChlLnJlYWR5U3RhdGUpe2Nhc2UgImxvYWRlZCI6Y2FzZSAiY29tcGxldGUiOmUub25sb2FkKCl9fTtkJiZlLnNldEF0dHJpYnV0ZSgibm9uY2UiLGQpO18ub2IoZSx0eXBlb2YgYT09PSJzdHJpbmciP3kwKGEpOmEpO2E9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8ZG9jdW1lbnQuYm9keTthLmluc2VydEJlZm9yZShlLGEuZmlyc3RDaGlsZCk7cmV0dXJuIGV9OwpWcmE9ZnVuY3Rpb24oYSxiLGM9bnVsbCl7dmFyIGQ9RDAodHlwZW9mIGE9PT0ic3RyaW5nIj9hOmEudG9TdHJpbmcoKSksZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChkKSxmPWUmJkIwKGUpLGg9ZSYmIWY7Zj9iJiZiKCk6KGImJihmPV8uTXooZCxiKSxiPWAke18uZncoYil9YCxGMFtiXT1mKSxofHwoZT1VcmEoYSxkLCgpPT57QjAoZSl8fChDMChlKSxfLk96KGQpLF8ubWooKCk9PntpMChkKX0sMCkpfSxjKSkpfTtIMD1mdW5jdGlvbihhLGIsYz1udWxsKXtWcmEoYSxiLGMpfTtXcmE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5DZCgiQSIpO18uTHkoYixuZXcgXy5XYShhKSk7cmV0dXJuYGNzcy0ke18uTXkoYi5ocmVmLnJlcGxhY2UoL15bYS16QS1aXSs6XC9cLy8sIi8vIikpfWB9OwpYcmE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtkLmlkPWI7ZC5vbmxvYWQ9KCk9PntjJiZzZXRUaW1lb3V0KGMsMCl9O2E9eTAoYSk7Xy5xYihkLGEsInN0eWxlc2hlZXQiKTsoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8ZG9jdW1lbnQuYm9keSkuYXBwZW5kQ2hpbGQoZCk7cmV0dXJuIGR9O1lyYT1mdW5jdGlvbihhKXt2YXIgYj1XcmEoYSksYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiKSxkPWMmJkIwKGMpO2R8fGMmJiFkfHwoYz1YcmEoYSxiLCgpPT57aWYoIUIwKGMpKXtDMChjKTtfLk96KGIpO2xldCBlPV8uRGEoaTAsYik7Xy5taihlLDApfX0pKX07CkkwPWZ1bmN0aW9uKGEpe2EuRmE9ITE7aWYoYS5oYSlmb3IodmFyIGIgaW4gYS5qKWEuai5oYXNPd25Qcm9wZXJ0eShiKSYmYS5oYShiLGEualtiXSk7Zm9yKGxldCBjIGluIGEuSSlhLkkuaGFzT3duUHJvcGVydHkoYykmJmNsZWFyVGltZW91dChOdW1iZXIoYykpO2EuST17fTthLkI9bnVsbDthLmhhPW51bGw7Yj1hLmFwaTtmb3IobGV0IGMgaW4gYiliLmhhc093blByb3BlcnR5KGMpJiYoYltjXT1udWxsKTtiLmFkZEV2ZW50TGlzdGVuZXI9KGMsZCk9PnthLmFkZEV2ZW50TGlzdGVuZXIoYyxkKX07Yi5yZW1vdmVFdmVudExpc3RlbmVyPShjLGQpPT57YS5yZW1vdmVFdmVudExpc3RlbmVyKGMsZCl9O2IuZGVzdHJveT0oKT0+e2EuZGlzcG9zZSgpfTtiLmdldExhc3RFcnJvcj0oKT0+YS5nZXRMYXN0RXJyb3IoKTtiLmdldFBsYXllclR5cGU9KCk9PmEuZ2V0UGxheWVyVHlwZSgpO2IuZ2V0Q3VycmVudFZpZGVvQ29uZmlnPSgpPT5hLk1hO2IubG9hZE5ld1ZpZGVvQ29uZmlnPWM9Pgp7YS5sb2FkTmV3VmlkZW9Db25maWcoYyl9O2IuaXNSZWFkeT0oKT0+YS5pc1JlYWR5KCl9O0owPWZ1bmN0aW9uKGEpe3ZhciBiO2Eud2ViUGxheWVyQ29udGV4dENvbmZpZz9iPWEud2ViUGxheWVyQ29udGV4dENvbmZpZy5yb290RWxlbWVudElkOmI9YS5jb25maWcuYXR0cnMuaWQ7YS5lbGVtZW50SWQ9Ynx8YS5lbGVtZW50SWQ7YS5lbGVtZW50SWQ9PT0idmlkZW8tcGxheWVyIiYmKGEuZWxlbWVudElkPWEucGxheWVySWQsYS53ZWJQbGF5ZXJDb250ZXh0Q29uZmlnP2Eud2ViUGxheWVyQ29udGV4dENvbmZpZy5yb290RWxlbWVudElkPWEucGxheWVySWQ6YS5jb25maWcuYXR0cnMuaWQ9YS5wbGF5ZXJJZCk7YS5vPy5pZD09PWEuZWxlbWVudElkJiYoYS5lbGVtZW50SWQ9YCR7YS5lbGVtZW50SWR9LXBsYXllcmAsYS53ZWJQbGF5ZXJDb250ZXh0Q29uZmlnP2Eud2ViUGxheWVyQ29udGV4dENvbmZpZy5yb290RWxlbWVudElkPWEuZWxlbWVudElkOmEuY29uZmlnLmF0dHJzLmlkPWEuZWxlbWVudElkKX07ClMwPWZ1bmN0aW9uKGEpe2lmKCFhLmlhKCkmJiFhLlUpe3ZhciBiPUswKGEpO2lmKGImJihMMChhKT8iaHRtbDUiOm51bGwpPT09Imh0bWw1IilhLlo9Imh0bWw1IixhLmlzUmVhZHkoKXx8TTAoYSk7ZWxzZSBpZihOMChhKSxhLlo9Imh0bWw1IixiJiZhLnYmJmEudGFyZ2V0RWxlbWVudClhLnRhcmdldEVsZW1lbnQuYXBwZW5kQ2hpbGQoYS52KSxNMChhKTtlbHNle2EuY29uZmlnJiYoYS5jb25maWcubG9hZGVkPSEwKTtsZXQgYz0hMTthLkQ9KCk9PntjPSEwO3ZhciBkPU8wKGEsInBsYXllcl9ib290c3RyYXBfbWV0aG9kIik/Xy5zYSgieXQucGxheWVyLkFwcGxpY2F0aW9uLmNyZWF0ZUFsdGVybmF0ZSIpfHxfLnNhKCJ5dC5wbGF5ZXIuQXBwbGljYXRpb24uY3JlYXRlIik6Xy5zYSgieXQucGxheWVyLkFwcGxpY2F0aW9uLmNyZWF0ZSIpO3ZhciBlPWEuY29uZmlnP1AwKGEuY29uZmlnKTp2b2lkIDA7ZCYmZChhLnRhcmdldEVsZW1lbnQsZSxhLndlYlBsYXllckNvbnRleHRDb25maWcsCmEuRWIpO00wKGEpfTthLlU9ITA7Yj9hLkQoKTooSDAoUTAoYSksYS5EKSwoYj1acmEoYSkpJiZZcmEoYnx8IiIpLFIwKGEpJiYhYyYmXy5yYSgieXQucGxheWVyLkFwcGxpY2F0aW9uLmNyZWF0ZSIsbnVsbCkpfX19O1QwPWZ1bmN0aW9uKGEpe2EuY29uZmlnJiZhLmNvbmZpZy5sb2FkZWQhPT0hMCYmKGEuY29uZmlnLmxvYWRlZD0hMCwhYS5jb25maWcuYXJnc3x8YS5jb25maWcuYXJncy5hdXRvcGxheSE9PSIwIiYmYS5jb25maWcuYXJncy5hdXRvcGxheSE9PTAmJmEuY29uZmlnLmFyZ3MuYXV0b3BsYXkhPT0hMT9hLmFwaS5sb2FkVmlkZW9CeVBsYXllclZhcnMoYS5jb25maWcuYXJncz8/bnVsbCk6YS5hcGkuY3VlVmlkZW9CeVBsYXllclZhcnMoYS5jb25maWcuYXJncykpfTtQMD1mdW5jdGlvbihhKXt2YXIgYj17fTtmb3IobGV0IGMgb2YgT2JqZWN0LmtleXMoYSkpe2xldCBkPWFbY107YltjXT10eXBlb2YgZD09PSJvYmplY3QiP1VfKGQpOmR9cmV0dXJuIGJ9OwpVMD1mdW5jdGlvbihhLGIpe3ZhciBjPWI7aWYodHlwZW9mIGI9PT0ic3RyaW5nIil7aWYoYS55YVtiXSlyZXR1cm4gYS55YVtiXTtjPSguLi5kKT0+e3ZhciBlPV8uc2EoYik7aWYoZSl0cnl7ZS5hcHBseShfLnUsZCl9Y2F0Y2goZil7dGhyb3cgZD1uZXcgXy5YaigiUGxheWVyUHJveHkgZXJyb3Igd2hlbiBleGVjdXRpbmcgY2FsbGJhY2siLHtlcnJvcjpmfSksZC5sZXZlbD0iRVJST1IiLGQ7fX07YS55YVtiXT1jfXJldHVybiBjP2M6bnVsbH07TDA9ZnVuY3Rpb24oYSl7dmFyIGI9Vl8oYS5lbGVtZW50SWQpOyFiJiZhLm8mJmEuby5xdWVyeVNlbGVjdG9yJiYoYj1hLm8ucXVlcnlTZWxlY3RvcihgIyR7YS5lbGVtZW50SWR9YCkpO3JldHVybiBifTtRMD1mdW5jdGlvbihhKXtyZXR1cm4gYS53ZWJQbGF5ZXJDb250ZXh0Q29uZmlnP2Eud2ViUGxheWVyQ29udGV4dENvbmZpZy5qc1VybDooYT1hLmNvbmZpZy5hc3NldHMpP2EuanM6IiJ9OwpLMD1mdW5jdGlvbihhKXt2YXIgYj0hMCxjPUwwKGEpO2MmJmEuY29uZmlnJiYoYj1jLmRhdGFzZXQudmVyc2lvbj09PVEwKGEpKTtyZXR1cm4gYiYmISFfLnNhKCJ5dC5wbGF5ZXIuQXBwbGljYXRpb24uY3JlYXRlIil9O08wPWZ1bmN0aW9uKGEsYil7aWYoYS53ZWJQbGF5ZXJDb250ZXh0Q29uZmlnKXZhciBjPWEud2ViUGxheWVyQ29udGV4dENvbmZpZy5zZXJpYWxpemVkRXhwZXJpbWVudEZsYWdzO2Vsc2UgYS5jb25maWc/LmFyZ3MmJihjPWEuY29uZmlnLmFyZ3MuZmZsYWdzKTtyZXR1cm4oY3x8IiIpLnNwbGl0KCImIikuaW5jbHVkZXMoYCR7Yn09dHJ1ZWApfTsKTTA9ZnVuY3Rpb24oYSl7aWYoIWEuaWEoKSl7bGV0IGI9TDAoYSksYz0hMTtiJiZiLmdldEFwaUludGVyZmFjZSYmYi5nZXRBcGlJbnRlcmZhY2UoKSYmKGM9ITApO2M/KGEuVT0hMSwhTzAoYSwiaHRtbDVfcmVtb3ZlX25vdF9zZXJ2YWJsZV9jaGVja19raWxsc3dpdGNoIikmJmI/LmlzTm90U2VydmFibGUmJmEuY29uZmlnJiZiPy5pc05vdFNlcnZhYmxlKGEuY29uZmlnLmFyZ3M/LnZpZGVvX2lkKXx8JHJhKGEpKTphLlFhPXNldFRpbWVvdXQoKCk9PntNMChhKX0sNTApfX07TjA9ZnVuY3Rpb24oYSl7YS5jYW5jZWwoKTtJMChhKTthLlo9bnVsbDthLmNvbmZpZyYmKGEuY29uZmlnLmxvYWRlZD0hMSk7dmFyIGI9TDAoYSk7YiYmKEswKGEpfHwhUjAoYSk/YS52PWI6KGImJmIuZGVzdHJveSYmYi5kZXN0cm95KCksYS52PW51bGwpKTthLnRhcmdldEVsZW1lbnQmJldfKGEudGFyZ2V0RWxlbWVudCl9OwpacmE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEud2ViUGxheWVyQ29udGV4dENvbmZpZz9hLndlYlBsYXllckNvbnRleHRDb25maWcuY3NzVXJsOihhPWEuY29uZmlnLmFzc2V0cyk/YS5jc3M6IiJ9O1IwPWZ1bmN0aW9uKGEpe2E9YS5jb25maWc/LmFyZ3M/LmZmbGFncztyZXR1cm4hIWEmJmEuaW5kZXhPZigicGxheWVyX2Rlc3Ryb3lfb2xkX3ZlcnNpb249dHJ1ZSIpIT09LTF9OwokcmE9ZnVuY3Rpb24oYSl7STAoYSk7YS5GYT0hMDt2YXIgYj1MMChhKTtpZihiKXthLkI9VjAoYSxiLCJhZGRFdmVudExpc3RlbmVyIik7YS5oYT1WMChhLGIsInJlbW92ZUV2ZW50TGlzdGVuZXIiKTtsZXQgYz1iLmdldEFwaUludGVyZmFjZSgpO2M9Yy5jb25jYXQoYi5nZXRJbnRlcm5hbEFwaUludGVyZmFjZSgpKTtsZXQgZD1hLmFwaTtmb3IobGV0IGU9MDtlPGMubGVuZ3RoO2UrKyl7bGV0IGY9Y1tlXTtkW2ZdfHwoZFtmXT1WMChhLGIsZikpfX1mb3IobGV0IGMgaW4gYS5qKWEuai5oYXNPd25Qcm9wZXJ0eShjKSYmYS5CJiZhLkIoYyxhLmpbY10pO1QwKGEpO2Eub2EmJmEub2EoYS5hcGkpO2EuTS5wdWJsaXNoKCJvblJlYWR5IixhLmFwaSl9OwpWMD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YltjXTtyZXR1cm4oLi4uZSk9Pnt0cnl7cmV0dXJuIGEubGFzdEVycm9yPW51bGwsZC5hcHBseShiLGUpfWNhdGNoKGYpe2lmKGMhPT0ic2VuZEFiYW5kb25tZW50UGluZyIpdGhyb3cgZi5wYXJhbXM9YyxhLmxhc3RFcnJvcj1mLGU9bmV3IF8uWGooIlBsYXllclByb3h5IGVycm9yIGluIG1ldGhvZCBjYWxsIix7ZXJyb3I6ZixtZXRob2Q6YyxwbGF5ZXJJZDphLnBsYXllcklkfSksZS5sZXZlbD0iV0FSTklORyIsZTt9fX07CmFzYT1mdW5jdGlvbihhLGIpe3ZhciBjPWQ9Pnt2YXIgZT0oKT0+e2EuaWEoKTtpZighYS5pYSgpKXRyeXthLk0ucHVibGlzaChiLGQ/P3ZvaWQgMCl9Y2F0Y2goaCl7dmFyIGY9bmV3IF8uWGooIlBsYXllclByb3h5IGVycm9yIHdoZW4gY3JlYXRpbmcgZ2xvYmFsIGNhbGxiYWNrIix7ZXJyb3I6aC5tZXNzYWdlLGV2ZW50OmIscGxheWVySWQ6YS5wbGF5ZXJJZCxkYXRhOmQsb3JpZ2luYWxTdGFjazpoLnN0YWNrLGNvbXBvbmVudFN0YWNrOmguY29tcG9uZW50U3RhY2t9KTtmLmxldmVsPSJXQVJOSU5HIjt0aHJvdyBmO319O2lmKE8wKGEsIndlYl9wbGF5ZXJfcHVibGlzaF9ldmVudHNfaW1tZWRpYXRlbHkiKSllKCk7ZWxzZXtsZXQgZj1zZXRUaW1lb3V0KCgpPT57ZSgpO3ZhciBoPWEuSSxrPVN0cmluZyhmKTtrIGluIGgmJmRlbGV0ZSBoW2tdfSwwKTt2cmEoYS5JLFN0cmluZyhmKSl9fTtyZXR1cm4gYS5qW2JdPWN9Owpjc2E9ZnVuY3Rpb24oYSxiKXt2YXIgYz0icGxheWVyIjtjPXR5cGVvZiBjPT09InN0cmluZyI/Vl8oYyk6Yzt2YXIgZD1gJHtfLnZhYX1fJHtfLmZ3KGMpfWAsZT1XMFtkXTtlPW5ldyBic2EoYyxkLGEsYik7VzBbZF09ZTtlLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57ZGVsZXRlIFcwW2UuZ2V0SWQoKV19KTtyZXR1cm4gZS5hcGl9O1gwPWZ1bmN0aW9uKGEpe3ZhciBiPXt9O18ueCgianNvbl9jb25kZW5zZWRfcmVzcG9uc2UiKSYmKGIucHJldHR5UHJpbnQ9ImZhbHNlIik7cmV0dXJuIGE9Xy5laihhLGIpfTtZMD1mdW5jdGlvbihhKXt2YXIgYj1fLncoIklOTkVSVFVCRV9IT1NUX09WRVJSSURFIik7YiYmKGE9U3RyaW5nKGIpK1N0cmluZyhfLk55KGEpKSk7cmV0dXJuIGF9OwpaMD1mdW5jdGlvbihhLGI9IlBPU1QiKXthPXttZXRob2Q6Yixtb2RlOl8uZmooYSk/InNhbWUtb3JpZ2luIjoiY29ycyIsY3JlZGVudGlhbHM6Xy5maihhKT8ic2FtZS1vcmlnaW4iOiJpbmNsdWRlIn07Yj17fTt2YXIgYz17fTtmb3IobGV0IGQgb2YgT2JqZWN0LmtleXMoYikpYltkXSYmKGNbZF09YltkXSk7T2JqZWN0LmtleXMoYykubGVuZ3RoPjAmJihhLmhlYWRlcnM9Yyk7cmV0dXJuIGF9OyQwPWZ1bmN0aW9uKGEpe2E9YS5tYXRjaCgvKC4qKTo6Lio6Oi4qLyk7aWYoYSE9PW51bGwpcmV0dXJuIGFbMV19O2ExPWZ1bmN0aW9uKGEpe2lmKF8uWHooKSl7dmFyIGI9T2JqZWN0LmtleXMod2luZG93LmxvY2FsU3RvcmFnZSk7Zm9yKGxldCBjIG9mIGIpYj0kMChjKSxiPT09dm9pZCAwfHxhLmluY2x1ZGVzKGIpfHxzZWxmLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGMpfX07CmRzYT1mdW5jdGlvbigpe2lmKCFfLlh6KCkpcmV0dXJuITE7dmFyIGE9Xy5WaigpLGI9T2JqZWN0LmtleXMod2luZG93LmxvY2FsU3RvcmFnZSk7Zm9yKGxldCBjIG9mIGIpaWYoYj0kMChjKSxiIT09dm9pZCAwJiZiIT09YSlyZXR1cm4hMDtyZXR1cm4hMX07YjE9ZnVuY3Rpb24oYSl7Xy5PaShfLiR6LGFyZ3VtZW50cyl9O2MxPWFzeW5jIGZ1bmN0aW9uKGEpe2lmKGF3YWl0IF8uZUEoKSl7dmFyIGI9W10sYz1hd2FpdCBfLmRBLmtleXMoKTtmb3IobGV0IGQgb2YgYykoe2RhdGFzeW5jSWQ6Y309Xy5iQShkKSksIWN8fGEuaW5jbHVkZXMoYyl8fGIucHVzaChfLmRBLmRlbGV0ZShkKSk7UHJvbWlzZS5hbGwoYikudGhlbihkPT5kLnNvbWUoZT0+ZSkpfX07CmVzYT1hc3luYyBmdW5jdGlvbigpe2lmKCFhd2FpdCBfLmVBKCkpcmV0dXJuITE7dmFyIGE9Xy5WaigiY2FjaGUgY29udGFpbnMgb3RoZXIiKSxiPWF3YWl0IF8uZEEua2V5cygpO2ZvcihsZXQgYyBvZiBiKWlmKHtkYXRhc3luY0lkOmJ9PV8uYkEoYyksYiYmYiE9PWEpcmV0dXJuITA7cmV0dXJuITF9O2ZzYT1mdW5jdGlvbihhKXtpZihfLmhBLmhhcyhhKSYmXy5mQSYmKF8uZkE/LnRhZ05hbWUudG9Mb3dlckNhc2UoKT8/IiIpPT09YSl7bGV0IGI7KGI9Xy5mQSkubWk/PyhiLm1pPTApO18uZkEubWkrKztpZihfLmZBLm1pPjEpdGhyb3cgRXJyb3IoIlBiIik7cmV0dXJuIF8uZkF9fTtnc2E9ZnVuY3Rpb24oYSl7dmFyIGI9YT8udGFnTmFtZS50b0xvd2VyQ2FzZSgpPz8iIjtfLmZBIT09YSYmYi5pbmNsdWRlcygiLSIpJiZfLmdBLnNldChhLCEwKX07ZDE9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuISF3aW5kb3c/LnRvcD8ubG9jYXRpb24uaHJlZiYmITF9Y2F0Y2goYSl7cmV0dXJuITB9fTsKZjE9ZnVuY3Rpb24oYT0iYmV2YXNyc2ciKXtyZXR1cm4gbmV3IFByb21pc2UoYj0+e3ZhciBjPXdpbmRvdz09PXdpbmRvdy50b3A/d2luZG93OmQxKCk/d2luZG93OndpbmRvdy50b3AsZD1jW2FdO2Q/LmJldmFzcnM/YihuZXcgZTEoZC5iZXZhc3JzKSk6KGR8fChkPXtucWZiZWw6W119LGNbYV09ZCksZC5ucWZiZWwucHVzaChlPT57YihuZXcgZTEoZSkpfSkpfSl9O2hzYT1mdW5jdGlvbihhKXthLmohPT12b2lkIDAmJihhLm8uZm9yRWFjaChiPT57YS5qPy5yZW1vdmVFdmVudExpc3RlbmVyKGIsYS52KX0pLGEuaj12b2lkIDApfTtnMT1mdW5jdGlvbihhKXt2YXIgYj17S2M6YS5jLHNsOmEuZSxMeTphLm1jPz8hMSxNeTphLm1lPz8hMX07YS5jbyYmKGIueWk9e1hvOmEuY28uYyxBdTphLmNvLmEsSkE6YS5jby5zfSk7cmV0dXJuIGJ9Owpqc2E9ZnVuY3Rpb24oYSl7cmV0dXJuIGFzeW5jKCk9Pnt2YXIgYj1hd2FpdCBhKCk7cmV0dXJue2Y6KCk9PmIueWcucHJvbWlzZSxjOmM9PntpZihjPjE1MCl2YXIgZD0hMTtlbHNlIHRyeXtiLmNhY2hlPW5ldyBpc2EoYyxiLlgpLGQ9ITB9Y2F0Y2goZSl7Yi5yZXBvcnRFcnJvcihuZXcgaDEoMjIsIkdCSjppbml0IixlKSksZD0hMX1yZXR1cm4gZH0sbTpjPT5iLm9lKGcxKGMpKSxtd3M6Yz0+Yi56aihnMShjKSl9fX07CmtzYT1mdW5jdGlvbihhLGIsYz0iYmV2YXNyc2ciKXtiPXtzOmY9PmEuc25hcHNob3Qoey4uLihmLmMmJntLYzpmLmN9KSwuLi4oZi5zJiZ7WWo6Zi5zfSksVUs6Zi5wPz8hMH0pLGU6Zj0+dm9pZCBhLkloPy4oZiksYzooZixoKT0+YS5CaShmLGgpLHA6YS5DZyxsOigpPT5hLlZoKCksd3BjOmI/anNhKGIpOnZvaWQgMH07dmFyIGQ9d2luZG93PT09d2luZG93LnRvcD93aW5kb3c6ZDEoKT93aW5kb3c6d2luZG93LnRvcCxlPWRbY107aWYoZSl7ZS5iZXZhc3JzPWI7aWYoZS5ucWZiZWwhPT12b2lkIDApZm9yKGxldCBmIG9mIGUubnFmYmVsKWYoYik7ZS5ucWZiZWw9dm9pZCAwfWVsc2UgZT17YmV2YXNyczpiLG5xZmJlbDp2b2lkIDB9LGRbY109ZX07ajE9ZnVuY3Rpb24oYSl7dmFyIGI9W107R18oYSxpMSw2KS5mb3JFYWNoKGM9PntfLnR4KGMsMik8PTUzJiZiLnB1c2goXy50eChjLDEpKX0pO3JldHVybiBifTsKbHNhPWZ1bmN0aW9uKGEpe3ZhciBiPVtdO0dfKGEsaTEsNikuZm9yRWFjaChjPT57Xy50eChjLDIpPjUzJiZiLnB1c2goXy50eChjLDEpKX0pO3JldHVybiBifTtrMT1mdW5jdGlvbihhKXthLnRoZW4oKCk9Pnt9LCgpPT57fSl9O2wxPWZ1bmN0aW9uKGEpe3JldHVybntmaWVsZFR5cGU6MixmaWVsZE5hbWU6YX19O20xPWZ1bmN0aW9uKGEpe3JldHVybntmaWVsZFR5cGU6MyxmaWVsZE5hbWU6YX19O21zYT1mdW5jdGlvbihhLGIpe3JldHVybiBDXyhhLGIsXy5Pdyl9OwpyMT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgbjE7Yj1CWihiLDEsYS5vKTt2YXIgYz1uc2EoYSk7Yj1DXyhiLGMsc3JhKTtjPVtdO3ZhciBkPVtdO2Zvcih2YXIgZSBvZiBhLmoua2V5cygpKWQucHVzaChlLnNwbGl0KCIsIikpO2ZvcihlPTA7ZTxkLmxlbmd0aDtlKyspe2xldCBwPWRbZV07dmFyIGY9YS52LGg9bzEoYSwuLi5wKXx8W107bGV0IHI9W107Zm9yKHZhciBrPTA7azxoLmxlbmd0aDtrKyspe3ZhciBsPWhba10sbT1sJiZsLmo7bD1uZXcgb3NhO3N3aXRjaChmKXtjYXNlIDM6bT1OdW1iZXIobSk7TnVtYmVyLmlzRmluaXRlKG0pJiZGXyhsLDEscDEseV8obSkpO2JyZWFrO2Nhc2UgMjpGXyhsLDIscDEscF8oTnVtYmVyKG0pKSl9ci5wdXNoKGwpfWZvcihmPTA7ZjxyLmxlbmd0aDtmKyspe2s9cltmXTtoPW5ldyBwc2E7aD1fLkt3KGgsMixrKTtrPVtdO2w9cXNhKGEpO2ZvcihtPTA7bTxsLmxlbmd0aDttKyspe3ZhciBuPWxbbV07bGV0IHQ9cFttXSx2PW5ldyByc2E7c3dpdGNoKG4pe2Nhc2UgMzpGXyh2LAoxLHExLEFaKFN0cmluZyh0KSkpO2JyZWFrO2Nhc2UgMjpuPU51bWJlcih0KTtOdW1iZXIuaXNGaW5pdGUobikmJkZfKHYsMixxMSxfLlB3KG4pKTticmVhaztjYXNlIDE6Rl8odiwzLHExLF8ueHcodD09PSJ0cnVlIikpfWsucHVzaCh2KX1IXyhoLDEsayk7Yy5wdXNoKGgpfX1IXyhiLDQsYyk7cmV0dXJuIGJ9O3NzYT1mdW5jdGlvbihhKXtIXyhzMSwxLGEpfTsKdXNhPWZ1bmN0aW9uKGEsYj10MSl7aWYoIXUxKXthPWEubmF2aWdhdG9yPy51c2VyQWdlbnREYXRhO2lmKCFhfHx0eXBlb2YgYS5nZXRIaWdoRW50cm9weVZhbHVlcyE9PSJmdW5jdGlvbiJ8fGEuYnJhbmRzJiZ0eXBlb2YgYS5icmFuZHMubWFwIT09ImZ1bmN0aW9uIilyZXR1cm4gUHJvbWlzZS5yZWplY3QoRXJyb3IoImtlIikpO3NzYSgoYS5icmFuZHN8fFtdKS5tYXAoZD0+e3ZhciBlPW5ldyB0c2E7ZT1CWihlLDEsZC5icmFuZCk7cmV0dXJuIEJaKGUsMixkLnZlcnNpb24pfSkpO3R5cGVvZiBhLm1vYmlsZT09PSJib29sZWFuIiYmXy5xdyhzMSwyLF8ueHcoYS5tb2JpbGUpKTt1MT1hLmdldEhpZ2hFbnRyb3B5VmFsdWVzKGIpfXZhciBjPW5ldyBTZXQoYik7cmV0dXJuIHUxLnRoZW4oZD0+e3ZhciBlPXMxLmNsb25lKCk7Yy5oYXMoInBsYXRmb3JtIikmJkJaKGUsMyxkLnBsYXRmb3JtKTtjLmhhcygicGxhdGZvcm1WZXJzaW9uIikmJkJaKGUsNCxkLnBsYXRmb3JtVmVyc2lvbik7CmMuaGFzKCJhcmNoaXRlY3R1cmUiKSYmQlooZSw1LGQuYXJjaGl0ZWN0dXJlKTtjLmhhcygibW9kZWwiKSYmQlooZSw2LGQubW9kZWwpO2MuaGFzKCJ1YUZ1bGxWZXJzaW9uIikmJkJaKGUsNyxkLnVhRnVsbFZlcnNpb24pO3JldHVybiBlLnNlcmlhbGl6ZSgpfSkuY2F0Y2goKCk9PnMxLnNlcmlhbGl6ZSgpKX07djE9ZnVuY3Rpb24oYSl7cmV0dXJuIENaKGEsMSwxKX07eTE9ZnVuY3Rpb24oYSxiKXtfLkt3KGEuaiwxLGIpO0tfKGIpfHx2MShiKTthLnlkfHwoYj13MShhKSxKXyhiLDUpfHxCWihiLDUsYS5sb2NhbGUpKTthLnYmJihiPXcxKGEpLF8uTngoYix4MSw5KXx8Xy5LdyhiLDksYS52KSl9O3cxPWZ1bmN0aW9uKGEpe3ZhciBiPV8uTngoYS5qLHoxLDEpO2J8fChiPW5ldyB6MSx5MShhLGIpKTthPWI7Yj1fLk54KGEsQTEsMTEpO2J8fChiPW5ldyBBMSxfLkt3KGEsMTEsYikpO3JldHVybiBifTt2c2E9ZnVuY3Rpb24oYSxiKXthLm89Yn07CnhzYT1mdW5jdGlvbihhKXt2YXIgYj1hLnlkP3ZvaWQgMDpfLnpkKCk7Yj91c2EoYix0MSkudGhlbihjPT57YS52PXdzYShjPz8iW10iKTtjPXcxKGEpO18uS3coYyw5LGEudik7cmV0dXJuITB9KS5jYXRjaCgoKT0+ITEpOlByb21pc2UucmVzb2x2ZSghMSl9O0IxPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuQj1hO3RoaXMuRD1iO3RoaXMubz10aGlzLmo9YTt0aGlzLks9Y3x8MDt0aGlzLkk9ZHx8Mn07QzE9ZnVuY3Rpb24oYSl7YS5vPU1hdGgubWluKGEuRCxhLm8qYS5JKTthLmo9TWF0aC5taW4oYS5ELGEubysoYS5LP01hdGgucm91bmQoYS5LKihNYXRoLnJhbmRvbSgpLS41KSoyKmEubyk6MCkpO2EudisrfTtEMT1mdW5jdGlvbigpe3JldHVybiJodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9sb2c/Zm9ybWF0PWpzb24maGFzZmFzdD10cnVlIn07CnlzYT1mdW5jdGlvbihhLGIpe2lmKCFhLk1hKXJldHVybigpPT57fTt2YXIgYz0oKT0+e2EuZmx1c2goKX07cmV0dXJuIGI/KCk9PntiKCkudGhlbihjKX06Y307RTE9ZnVuY3Rpb24oYSl7YS52LmlzRmluYWw9ITA7YS5mbHVzaCgpO2Eudi5pc0ZpbmFsPSExfTtGMT1mdW5jdGlvbihhKXthLlV8fChhLlU9RDEoKSk7dHJ5e3JldHVybihuZXcgVVJMKGEuVSkpLnRvU3RyaW5nKCl9Y2F0Y2goYil7cmV0dXJuKG5ldyBVUkwoYS5VLF8uemQoKS5sb2NhdGlvbi5vcmlnaW4pKS50b1N0cmluZygpfX07QXNhPWZ1bmN0aW9uKGEpe3pzYShhLChiLGMpPT57Yj1uZXcgVVJMKGIpO2Iuc2VhcmNoUGFyYW1zLnNldCgiZm9ybWF0IiwianNvbiIpO3ZhciBkPSExO3RyeXtkPV8uemQoKS5uYXZpZ2F0b3Iuc2VuZEJlYWNvbihiLnRvU3RyaW5nKCksYy5zZXJpYWxpemUoKSl9Y2F0Y2h7fWR8fChhLlo9ITEpO3JldHVybiBkfSl9OwpCc2E9ZnVuY3Rpb24oYSxiLGM9bnVsbCxkPWEud2l0aENyZWRlbnRpYWxzKXt2YXIgZT17fSxmPW5ldyBVUkwoRjEoYSkpO2MmJihlLkF1dGhvcml6YXRpb249Yyk7YS5zZXNzaW9uSW5kZXgmJihlWyJYLUdvb2ctQXV0aFVzZXIiXT1hLnNlc3Npb25JbmRleCxmLnNlYXJjaFBhcmFtcy5zZXQoImF1dGh1c2VyIixhLnNlc3Npb25JbmRleCkpO2EucGFnZUlkJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIlgtR29vZy1QYWdlSWQiLHt2YWx1ZTphLnBhZ2VJZH0pLGYuc2VhcmNoUGFyYW1zLnNldCgicGFnZUlkIixhLnBhZ2VJZCkpO3JldHVybnt1cmw6Zi50b1N0cmluZygpLGJvZHk6YixHdToxLE9qOmUscmVxdWVzdFR5cGU6IlBPU1QiLHdpdGhDcmVkZW50aWFsczpkLHRpbWVvdXRNaWxsaXM6YS50aW1lb3V0TWlsbGlzfX07CnpzYT1mdW5jdGlvbihhLGIpe2lmKGEuai5sZW5ndGghPT0wKXt2YXIgYz1uZXcgVVJMKEYxKGEpKTtjLnNlYXJjaFBhcmFtcy5kZWxldGUoImZvcm1hdCIpO3ZhciBkPWEuU2YoKTtkJiZjLnNlYXJjaFBhcmFtcy5zZXQoImF1dGgiLGQpO2Muc2VhcmNoUGFyYW1zLnNldCgiYXV0aHVzZXIiLGEuc2Vzc2lvbkluZGV4fHwiMCIpO2ZvcihkPTA7ZDwxMCYmYS5qLmxlbmd0aDsrK2Qpe2xldCBlPWEuai5zbGljZSgwLDMyKSxmPWEudi5idWlsZChlLGEuQixhLkksYS5sZixhLmhhLGEuZ2EpO2lmKCFiKGMudG9TdHJpbmcoKSxmKSl7KythLkk7YnJlYWt9YS5CPTA7YS5JPTA7YS5oYT0wO2EuZ2E9MDthLmo9YS5qLnNsaWNlKGUubGVuZ3RoKX1hLm8uZW5hYmxlZCYmYS5vLnN0b3AoKX19O0NzYT1mdW5jdGlvbihhLGIpe2EuYnVpbGRMYWJlbD1iO3JldHVybiBhfTtFc2E9ZnVuY3Rpb24oYSl7YS5uZXR3b3JrPW5ldyBEc2E7cmV0dXJuIGF9O0ZzYT1mdW5jdGlvbihhLGIpe2Euaj1ifTsKR3NhPWZ1bmN0aW9uKGEpe2Eubz0hMDtyZXR1cm4gYX07cXNhPWZ1bmN0aW9uKGEpe3JldHVybiBhLmZpZWxkcy5tYXAoYj0+Yi5maWVsZFR5cGUpfTtvMT1mdW5jdGlvbihhLC4uLmIpe2I9RzEoLi4uYik7cmV0dXJuIGEuai5oYXMoYik/YS5qLmdldChiKTp2b2lkIDB9O25zYT1mdW5jdGlvbihhKXtyZXR1cm4gYS5maWVsZHMubWFwKGI9PmIuZmllbGROYW1lKX07STE9ZnVuY3Rpb24oYSxiLC4uLmMpe2M9RzEoLi4uYyk7YS5qLnNldChjLFtuZXcgSDEoYildKX07SHNhPWZ1bmN0aW9uKGEsYiwuLi5jKXt2YXIgZD1vMShhLC4uLmMpO2Q/ZC5wdXNoKG5ldyBIMShiKSk6STEoYSxiLC4uLmMpfTtHMT1mdW5jdGlvbiguLi5hKXtyZXR1cm4gYT9hLmpvaW4oIiwiKToia2V5In07SXNhPWZ1bmN0aW9uKGEsLi4uYil7cmV0dXJuKGE9bzEoYSwuLi5iKSkmJmEubGVuZ3RoP2FbMF06dm9pZCAwfTsKSnNhPWZ1bmN0aW9uKGEsLi4uYil7dmFyIGM9MCxkPUlzYShhLC4uLmIpO2QmJihjPWQuaik7STEoYSxjKzEsLi4uYil9O0sxPWZ1bmN0aW9uKGEsYiwuLi5jKXthLnYuaGFzKGIpfHxhLnYuc2V0KGIsbmV3IEoxKGIsYykpfTtNMT1mdW5jdGlvbihhLGIsLi4uYyl7YS52LmhhcyhiKXx8YS52LnNldChiLG5ldyBMMShiLGMpKX07TjE9ZnVuY3Rpb24oYSl7YS5vLmVuYWJsZWR8fGEuby5zdGFydCgpO2EuSSsrO2EuST49YS5CJiZhLkQoKX07S3NhPWZ1bmN0aW9uKGEpe2ZvcihsZXQgYj0wO2I8YS5sZW5ndGg7YisrKWFbYl0uY2xlYXIoKX07TzE9ZnVuY3Rpb24oYSxiLC4uLmMpeyhiPWEuaihiKSkmJmIgaW5zdGFuY2VvZiBMMSYmKEpzYShiLC4uLmMpLE4xKGEpKX07ClAxPWZ1bmN0aW9uKGEpe3N3aXRjaChhKXtjYXNlIDIwMDpyZXR1cm4gMDtjYXNlIDQwMDpyZXR1cm4gMztjYXNlIDQwMTpyZXR1cm4gMTY7Y2FzZSA0MDM6cmV0dXJuIDc7Y2FzZSA0MDQ6cmV0dXJuIDU7Y2FzZSA0MDk6cmV0dXJuIDEwO2Nhc2UgNDEyOnJldHVybiA5O2Nhc2UgNDI5OnJldHVybiA4O2Nhc2UgNDk5OnJldHVybiAxO2Nhc2UgNTAwOnJldHVybiAyO2Nhc2UgNTAxOnJldHVybiAxMjtjYXNlIDUwMzpyZXR1cm4gMTQ7Y2FzZSA1MDQ6cmV0dXJuIDQ7ZGVmYXVsdDpyZXR1cm4gMn19OwpMc2E9ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4iT0siO2Nhc2UgMTpyZXR1cm4iQ0FOQ0VMTEVEIjtjYXNlIDI6cmV0dXJuIlVOS05PV04iO2Nhc2UgMzpyZXR1cm4iSU5WQUxJRF9BUkdVTUVOVCI7Y2FzZSA0OnJldHVybiJERUFETElORV9FWENFRURFRCI7Y2FzZSA1OnJldHVybiJOT1RfRk9VTkQiO2Nhc2UgNjpyZXR1cm4iQUxSRUFEWV9FWElTVFMiO2Nhc2UgNzpyZXR1cm4iUEVSTUlTU0lPTl9ERU5JRUQiO2Nhc2UgMTY6cmV0dXJuIlVOQVVUSEVOVElDQVRFRCI7Y2FzZSA4OnJldHVybiJSRVNPVVJDRV9FWEhBVVNURUQiO2Nhc2UgOTpyZXR1cm4iRkFJTEVEX1BSRUNPTkRJVElPTiI7Y2FzZSAxMDpyZXR1cm4iQUJPUlRFRCI7Y2FzZSAxMTpyZXR1cm4iT1VUX09GX1JBTkdFIjtjYXNlIDEyOnJldHVybiJVTklNUExFTUVOVEVEIjtjYXNlIDEzOnJldHVybiJJTlRFUk5BTCI7Y2FzZSAxNDpyZXR1cm4iVU5BVkFJTEFCTEUiO2Nhc2UgMTU6cmV0dXJuIkRBVEFfTE9TUyI7CmRlZmF1bHQ6cmV0dXJuIiJ9fTtSMT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9UTEoKTtiPWIoKTthLnYoYyxRMSgpLWQpO3JldHVybiBifTtPc2E9ZnVuY3Rpb24oYSxiLGMsZCl7YT1Hc2EoRXNhKENzYShuZXcgUzEsYSkpKS5ubCgpO2IubGVuZ3RoJiZGc2EoYSxtc2EobmV3IE1zYSxiKSk7ZCE9PXZvaWQgMCYmKGEuTmU9ZCk7dmFyIGU9bmV3IE5zYShhLmJ1aWxkKCkpO0VaKGUsYSk7dmFyIGY9bmV3IFQxKHtmbHVzaChoKXt0cnl7ZS5mbHVzaChoKX1jYXRjaChrKXtjKGspfX19KTtmLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57c2V0VGltZW91dCgoKT0+e3RyeXtmLkQoKX1maW5hbGx5e2UuZGlzcG9zZSgpfX0pfSk7Zi5CPTFFNTtmLmZsdXNoSW50ZXJ2YWw9M0U0O2Yuby5zZXRJbnRlcnZhbCgzRTQpO3JldHVybiBmfTsKUHNhPWZ1bmN0aW9uKGEpe2lmKGEudGltZXI9PT12b2lkIDApe2xldCBiPU1hdGgubWF4KDAsYS5qK2Euby1RMSgpKTthLnRpbWVyPXNldFRpbWVvdXQoKCk9Pnt0cnl7YS5jYWxsYmFjaygpfWZpbmFsbHl7YS5qPVExKCksYS50aW1lcj12b2lkIDB9fSxiKX19O1JzYT1mdW5jdGlvbihhLGI9W10pe3JldHVybiBuZXcgUXNhKGEsYil9O1ExPWZ1bmN0aW9uKCl7cmV0dXJuIGdsb2JhbFRoaXMucGVyZm9ybWFuY2U/Lm5vdz8uKCk/P0RhdGUubm93KCl9O1UxPWZ1bmN0aW9uKGEsYil7aWYoYS5kaXNhYmxlKXJldHVybiBuZXcgU3NhO2I9Yj9qMShiKTpbXTtyZXR1cm4gUnNhKHttYjphLm1iLHpsOmEuU3Ysbm06YS5LeSxOZTphLk5lLEZqOmEuRmosSWc6YS5JZ30sYil9O1cxPWZ1bmN0aW9uKCl7VjEuaW5zdGFuY2V8fChWMS5pbnN0YW5jZT1uZXcgVjEpO3JldHVybiBWMS5pbnN0YW5jZX07ClRzYT1mdW5jdGlvbihhLGIsYyxkKXtpZighYiYmIWMpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2lmKCFkKXJldHVybiBYMShiLGMpO3ZhciBlOyhlPWEucHJvbWlzZXMpW2RdfHwoZVtkXT1uZXcgUHJvbWlzZSgoZixoKT0+e1gxKGIsYykudGhlbigoKT0+e2Euaj1kO2YoKX0saz0+e2RlbGV0ZSBhLnByb21pc2VzW2RdO2goayl9KX0pKTtyZXR1cm4gYS5wcm9taXNlc1tkXX07JDE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVHNhKGEsXy5OeChiLFkxLDEsXy53eiksXy5OeChiLFoxLDIsXy53eiksSl8oYiwzLHZvaWQgMCxfLnd6KSl9O1gxPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/VXNhKGIpOmE/VnNhKGEpOlByb21pc2UucmVzb2x2ZSgpfTsKVXNhPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgUHJvbWlzZSgoYixjKT0+e3ZhciBkPV8uQ2QoIlNDUklQVCIpLGU9VHJhKGEpO18ub2IoZCxlKTtkLm9ubG9hZD0oKT0+e18uRGQoZCk7YigpfTtkLm9uZXJyb3I9KCk9PntfLkRkKGQpO2MoRXJyb3IoInFlIikpfTsoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkhFQUQiKVswXXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5hcHBlbmRDaGlsZChkKX0pfTtWc2E9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQcm9taXNlKGI9Pnt2YXIgYz1fLkNkKCJTQ1JJUFQiKTtpZihhKXt2YXIgZD1fLlh0KF8uZWQoYSw2LHZvaWQgMCxfLkR2KSk7ZD1kPT09bnVsbHx8ZD09PXZvaWQgMD9udWxsOl8ua2IoZCl9ZWxzZSBkPW51bGw7Xy5uYihjLGQpOyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSEVBRCIpWzBdfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmFwcGVuZENoaWxkKGMpO18uRGQoYyk7YigpfSl9OwpXc2E9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5XeChhLDEsQVooYiksIiIpfTtYc2E9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5XeChhLDIsQVooYiksIiIpfTsKYXRhPWFzeW5jIGZ1bmN0aW9uKGEsYixjLGQ9VzEoKSxlPVByb21pc2UucmVzb2x2ZSh2b2lkIDApLGYpe2F3YWl0IDA7Zm9yKHZhciBoOzspe2xldCBrPW51bGw7aWYoaCl7YTIoYSw3KTt0cnl7az1hd2FpdCBiMihoLnNuYXBzaG90KHt9KSxmLmF2LCgpPT5Qcm9taXNlLnJlc29sdmUoIkU6Q1RPIikpfWNhdGNoKG4pe2s9IkU6VUNFIn19bGV0IGwsbT1uZXcgQjEoaD9mLkp2OmYuS3YsZi5MdixmLk12LGYuSXYpO2ZvcihsZXQgbj0xO248PWYubWF4QXR0ZW1wdHM7bisrKXtpZihuIT09MSl7YTIoYSwwKTthLmo9bmV3IGMyKG0uaixmLmVrLGYubHMpO2xldCBwPWF3YWl0IGEuai5wcm9taXNlO2Euaj12b2lkIDA7cD09PTE/KG49MSxtLnJlc2V0KCkpOkMxKG0pfXRyeXtsZXQgcDtjP3A9YzooYTIoYSw1KSxwPWF3YWl0IGIyKFlzYShiLGQuaixrKSxmLlZ2LCgpPT5Qcm9taXNlLnJlamVjdChFcnJvcigic2UiKSkpKTthMihhLDMpO2F3YWl0IGIyKCQxKGQscCksZi5xeSwoKT0+UHJvbWlzZS5yZWplY3QoRXJyb3IoInRlIikpKTsKYTIoYSw4KTthd2FpdCBlO2xldCByPW5ldyBkMih7Y2hhbGxlbmdlOnAsbmc6YS5vcHRpb25zLm5nLEZzOmEub3B0aW9ucy5Gc30pO2F3YWl0IGIyKHIuQ2csZi5tQSwoKT0+UHJvbWlzZS5yZWplY3QoRXJyb3IoInVlIikpKTtsPXI7YnJlYWt9Y2F0Y2gocCl7YS5oYW5kbGVFcnJvcihwKSxlMihhKX19aWYoYS5pYSgpKWJyZWFrO2wmJihjPXZvaWQgMCxac2EoYSxoKSxoPWwsJHNhKGEsbCksZTIoYSkpO2EyKGEsMik7YS5qPW5ldyBjMihmLkZyLGYuZWssZi5scyk7YS5pc1BhdXNlZCYmYS5qLnBhdXNlKCk7YXdhaXQgYS5qLnByb21pc2U7YS5qPXZvaWQgMDtpZihhLmlhKCkpYnJlYWt9aD8uZGlzcG9zZSgpfTsKYnRhPWZ1bmN0aW9uKGEpe2EuTT1FcnJvcigicmUiKTthLkQucmVzb2x2ZSgpO2sxKGEuSS5wcm9taXNlKTthLkkucmVqZWN0KEVycm9yKCJyZSIpKTthLlguZGlzcG9zZSgpO1Byb21pc2UuYWxsKGEuQikudGhlbihhc3luYygpPT57YS5vPy5kaXNwb3NlKCk7YS5vPXZvaWQgMH0pO2EuQj1bXTthLmo/Lm8oKTtrMShhLnYucHJvbWlzZSk7YS52LnJlamVjdChFcnJvcigicmUiKSl9O2YyPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5HajthLkdqPSgpPT57YygpO2IoKX19OyRzYT1mdW5jdGlvbihhLGIpe2EuaWEoKXx8KGEubz1iLGEuWC51cGRhdGUoYi5WaCgpKSxhLkQucmVzb2x2ZSgpLGEuSS5yZXNvbHZlKHZvaWQgMCksYS5HaigpKX07WnNhPWZ1bmN0aW9uKGEsYil7YiYmKFByb21pc2UuYWxsKGEuQikudGhlbigoKT0+dm9pZCBiLmRpc3Bvc2UoKSksYS5CPVtdKX07YTI9ZnVuY3Rpb24oYSxiKXthLlo9YjthLm9wdGlvbnMuaks/LihiKX07CmUyPWZ1bmN0aW9uKGEpe2EuaWEoKXx8KGEudi5yZXNvbHZlKCksYS52PW5ldyBfLmNzKX07YjI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2M9KG5ldyBQcm9taXNlKGU9PntkPXNldFRpbWVvdXQoZSxiKX0pKS50aGVuKGMpO2sxKGMpO3JldHVybiBQcm9taXNlLnJhY2UoW2EuZmluYWxseSgoKT0+dm9pZCBjbGVhclRpbWVvdXQoZCkpLGNdKX07Y3RhPWZ1bmN0aW9uKGEsYil7YS5lbmRUaW1lTXM9RGF0ZS5ub3coKStiO2EudGljaygpfTtnMj1mdW5jdGlvbihhKXthLmomJihjbGVhclRpbWVvdXQoYS5qKSxhLmo9bnVsbCl9O2gyPWZ1bmN0aW9uKGEsYil7dHJ5e3JldHVybiBnbG9iYWxUaGlzLnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oYSxiKSwhMH1jYXRjaChjKXtyZXR1cm4hMX19OwppMj1mdW5jdGlvbihhLGI9MCxjPWEubGVuZ3RoLGQpe3ZhciBlPTA7Zm9yKGQmJihlPWkyKGQpKTtiPGM7YisrKWU9ZHRhKDMxLGUpKyh0eXBlb2YgYT09PSJzdHJpbmciP2EuY2hhckNvZGVBdChiKTphW2JdKXwwO3JldHVybiBlfTtrMj1mdW5jdGlvbihhKXt2YXIgW2IsY109W2kyKGEsMCxhLmxlbmd0aD4+MSxqMiksaTIoYSxhLmxlbmd0aD4+MSldO3JldHVybiBiLnRvU3RyaW5nKDE2KStjLnRvU3RyaW5nKDE2KX07CmwyPWZ1bmN0aW9uKGEsYil7dmFyIGM9W2kyKGIsMCxiLmxlbmd0aD4+MSx2b2lkIDApLGkyKGIsYi5sZW5ndGg+PjEpXTthPW5ldyBVaW50MzJBcnJheShhLmJ1ZmZlcik7Yj1hWzBdO3ZhciBbZCxlXT1jO2ZvcihjPTE7YzxhLmxlbmd0aDtjKz0yKXt2YXIgZj1iLGg9YyxrPWQsbD1lO2ZvcihsZXQgbT0wO208MjI7bSsrKWg9aD4+Pjh8aDw8MjQsaCs9ZnwwLGhePWsrMzgyOTMsZj1mPDwzfGY+Pj4yOSxmXj1oLGw9bD4+Pjh8bDw8MjQsbCs9a3wwLGxePW0rMzgyOTMsaz1rPDwzfGs+Pj4yOSxrXj1sO2Y9W2YsaF07YVtjXV49ZlswXTtjKzE8YS5sZW5ndGgmJihhW2MrMV1ePWZbMV0pfX07CmV0YT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSg0LShqMi5sZW5ndGgrYy5sZW5ndGgpJTQpJTQsaD1uZXcgVWludDhBcnJheSg0K2YrajIubGVuZ3RoKzQrYy5sZW5ndGgpLGs9bmV3IERhdGFWaWV3KGguYnVmZmVyKSxsPTA7ay5zZXRVaW50MzIobCxNYXRoLnJhbmRvbSgpKjQyOTQ5NjcyOTUpO2w9bCs0K2Y7aC5zZXQoajIsbCk7bCs9ajIubGVuZ3RoO2suc2V0VWludDMyKGwsZSk7aC5zZXQoYyxsKzQpO2wyKGgsZCk7cmV0dXJuIGEucmIoYixtPT52b2lkIGdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShtKSk/aDIoYixfLnNjKGgpKT8icyI6InQiOiJpIn07CmZ0YT1mdW5jdGlvbihhLGIpe3ZhciBjPWdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShhKTtpZighYylyZXR1cm5bIm0iXTt0cnl7dmFyIGQ9Xy51YyhjKTtsMihkLGIpfWNhdGNoKGUpe3JldHVybiBnbG9iYWxUaGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oYSksWyJjIl19Zm9yKGI9NDtiPDcmJmRbYl09PT0wOyliKys7Zm9yKGM9MDtjPGoyLmxlbmd0aDtjKyspaWYoZFtiKytdIT09ajJbY10pcmV0dXJuIGdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShhKSxbImQiXTtjPShuZXcgRGF0YVZpZXcoZC5idWZmZXIpKS5nZXRVaW50MzIoYik7cmV0dXJuIE1hdGguZmxvb3IoRGF0ZS5ub3coKS8xRTMpPj1jPyhnbG9iYWxUaGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oYSksWyJlIl0pOlsiYSIsbmV3IFVpbnQ4QXJyYXkoZC5idWZmZXIsYis0KV19OwpndGE9ZnVuY3Rpb24oYSl7dmFyIGI9Z2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJpVTVxLSFPOUAkIik7aWYoIWIpcmV0dXJuIG5ldyBtMihhKTt2YXIgYz1iLnNwbGl0KCIsIik7aWYoYy5sZW5ndGg8MilyZXR1cm4gZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJpVTVxLSFPOUAkIiksbmV3IG0yKGEpO2I9Yy5zbGljZSgxKTtiLmxlbmd0aD09PTEmJmJbMF09PT0iIiYmKGI9W10pO2M9TnVtYmVyKGNbMF0pO3JldHVybiBpc05hTihjKXx8YzwwfHxjPmIubGVuZ3RoPyhnbG9iYWxUaGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oImlVNXEtIU85QCQiKSxuZXcgbTIoYSkpOm5ldyBtMihhLGMsYil9O24yPWZ1bmN0aW9uKGEsYil7dmFyIGM9c2V0VGltZW91dCgoKT0+e2Eudi5yZXNvbHZlKCl9LGIpO2EuYWRkT25EaXNwb3NlQ2FsbGJhY2soKCk9PnZvaWQgY2xlYXJUaW1lb3V0KGMpKX07CnAyPWZ1bmN0aW9uKGEsYil7dmFyIGM9YCR7YihhLmVycm9yLm1lc3NhZ2UpfToke2IoYS5lcnJvci5zdGFjayl9YC5zdWJzdHJpbmcoMCwyMDQ4KTtiPWMubGVuZ3RoKzE7Yz1vMihjKTt2YXIgZD1uZXcgVWludDhBcnJheSg0K2MubGVuZ3RoKTtkLnNldChbNDIsYiYxMjd8MTI4LGI+PjcsYS5lcnJvci5jb2RlXSk7ZC5zZXQoYyw0KTtyZXR1cm4gZH07bzI9ZnVuY3Rpb24oYSl7cmV0dXJuIGdsb2JhbFRoaXMuVGV4dEVuY29kZXI/KG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGEpOl8uYWMoYSl9Owp0Mj1hc3luYyBmdW5jdGlvbihhKXt2YXIgYj12b2lkIDA7YS52Kys7dmFyIGM9bmV3IF8uY3M7YS52bSBpbnN0YW5jZW9mIHEyJiZhLnZtLkIucHVzaChjLnByb21pc2UpO2lmKGEuUW4pe2xldCBmPW5ldyBfLmNzO3NldFRpbWVvdXQoKCk9PnZvaWQgZi5yZXNvbHZlKCkpO2F3YWl0IGYucHJvbWlzZX12YXIgZD1hLlguc2hhcmUoKTt0cnl7YS5zdGF0ZT01O2xldCBmPVtdLGg9YXdhaXQgYjIoYS52bS5zbmFwc2hvdCh7S2M6e30sSXM6Zn0pLGEuTGcuQkEsKCk9PlByb21pc2UucmVqZWN0KG5ldyBoMSgxNSwiTURBOlRpbWVvdXQiKSkpO3IyKGEsIk1EQTpEaXNwb3NlZCIpO2xldCBrPWZbMF07YS5zdGF0ZT02O2xldCBsPWF3YWl0IGIyKGh0YShhLm9kLGgpLGEuTGcuV3YsKCk9PlByb21pc2UucmVqZWN0KG5ldyBoMSgxMCwiQldCOlRpbWVvdXQiKSkpO3IyKGEsIkJXQjpEaXNwb3NlZCIpO2Euc3RhdGU9NztiPVIxKGQsKCk9Pnt2YXIgbT1pdGEoYSxsLGMsayk7bS52LnByb21pc2UudGhlbigoKT0+CnZvaWQgYS5CKCkpO3JldHVybiBtfSwiaSIpfWNhdGNoKGYpe2I/LmRpc3Bvc2UoKTtpZighYS5vKXtsZXQgaD1qdGEoYSxmKTtjLnJlc29sdmUoKTt2YXIgZTtpZihlPWEudm0gaW5zdGFuY2VvZiBxMiYmYS52PDIpYTppZihmIGluc3RhbmNlb2YgaDEpZT1mLmNvZGUhPT0zMiYmZi5jb2RlIT09MjAmJmYuY29kZSE9PTEwO2Vsc2V7aWYoZiBpbnN0YW5jZW9mIHMyKXN3aXRjaChmLmNvZGUpe2Nhc2UgMjpjYXNlIDEzOmNhc2UgMTQ6Y2FzZSA0OmJyZWFrO2RlZmF1bHQ6ZT0hMTticmVhayBhfWU9ITB9aWYoZSl7bGV0IGs9c2V0VGltZW91dCgoKT0+dm9pZCBhLkIoKSwoMStNYXRoLnJhbmRvbSgpKi4yNSkqKGEuaj82RTQ6MUUzKSk7YS5hZGRPbkRpc3Bvc2VDYWxsYmFjaygoKT0+dm9pZCBjbGVhclRpbWVvdXQoaykpO3JldHVybn1hLm89aH1kLkpiKGEuaj8xMzoxNCk7YS55Zy5yZWplY3QoYS5vKTtyZXR1cm59ZmluYWxseXtkLmRpc3Bvc2UoKX1hLnN0YXRlPTg7YS52PTA7YS5qPy5kaXNwb3NlKCk7CmEuaj1iO2EueWcucmVzb2x2ZSgpfTtqdGE9ZnVuY3Rpb24oYSxiKXtpZighKGIgaW5zdGFuY2VvZiBoMSkpaWYoYiBpbnN0YW5jZW9mIHMyKXtsZXQgYz1FcnJvcihiLnRvU3RyaW5nKCkpO2Muc3RhY2s9Yi5zdGFjaztiPW5ldyBoMSgxMSwiRUJIOkVycm9yIixjKX1lbHNlIGI9bmV3IGgxKDEyLCJCU086VW5rbm93biIsYik7cmV0dXJuIGEucmVwb3J0RXJyb3IoYil9O3IyPWZ1bmN0aW9uKGEsYil7aWYoYS5pYSgpKXRocm93IG5ldyBoMShhLmo/MjA6MzIsYik7fTsKaXRhPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPShzXyhfLmVkKGIsMikpPz8wKSoxRTM7aWYoZTw9MCl0aHJvdyBuZXcgaDEoMzEsIlRUTTpJbnZhbGlkIik7aWYoSl8oYiw0KSlyZXR1cm4gbmV3IGt0YShhLlgsSl8oYiw0KSxlKTtpZighKHNfKF8uZWQoYiwzKSk/PzApKXJldHVybiBuZXcgbHRhKGEuWCxGWihCXyhiKSksZSk7aWYoIWQpdGhyb3cgbmV3IGgxKDQsIlBNRDpVbmRlZmluZWQiKTtkPWQoRlooQl8oYikpKTtpZih0eXBlb2YgZCE9PSJmdW5jdGlvbiIpdGhyb3cgbmV3IGgxKDE2LCJBUEY6RmFpbGVkIik7YS5EPU1hdGguZmxvb3IoKERhdGUubm93KCkrZSkvMUUzKTthPW5ldyB1MihhLlgsZCxzXyhfLmVkKGIsMykpPz8wLGUpO2EuYWRkT25EaXNwb3NlQ2FsbGJhY2soKCk9PnZvaWQgYy5yZXNvbHZlKCkpO3JldHVybiBhfTsKdzI9ZnVuY3Rpb24oYSxiLGMpe3RyeXtpZihhLmlhKCkpdGhyb3cgbmV3IGgxKDIxLCJCTlQ6ZGlzcG9zZWQiKTtpZighYS5qJiZhLm8pdGhyb3cgYS5vO3JldHVybiBtdGEoYSxiLGMpPz9udGEoYSxiLGMpPz9vdGEoYSxiLGMpfWNhdGNoKGQpe2lmKCFiLk15KXRocm93IHYyKGEsZCk7cmV0dXJuIHB0YShhLGMsZCl9fTt2Mj1mdW5jdGlvbihhLGIpe2I9YiBpbnN0YW5jZW9mIGgxP2I6bmV3IGgxKDUsIlRWRDplcnJvciIsYik7cmV0dXJuIGEucmVwb3J0RXJyb3IoYil9O210YT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGEuaj8uc20oKCk9PngyKGEsYiksYyxkPT57aWYoYS5qIGluc3RhbmNlb2YgdTImJmIueWk/LkpBKXRyeXthLmNhY2hlPy5qKHgyKGEsYiksZCxiLnlpLlhvLGEuRC0xMjApfWNhdGNoKGUpe2EucmVwb3J0RXJyb3IobmV3IGgxKDI0LCJFTFg6d3JpdGUiLGUpKX19KX07Cm50YT1mdW5jdGlvbihhLGIsYyl7aWYoYi55aT8uQXUpdHJ5e2xldCBkPWEuY2FjaGU/Lm8oeDIoYSxiKSxiLnlpLlhvKTtyZXR1cm4gZD9jP1IxKGEuWCwoKT0+Xy5zYyhkLDIpLCJhIik6ZDp2b2lkIDB9Y2F0Y2goZCl7YS5yZXBvcnRFcnJvcihuZXcgaDEoMjMsIlJYTzpyZWFkIixkKSl9fTtvdGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXtzdGFjazpbXSxlcnJvcjp2b2lkIDAsaGFzRXJyb3I6ITF9O3RyeXtpZighYi5MeSl0aHJvdyBuZXcgaDEoMjksIlNERjpub3RyZWFkeSIpO3JldHVybiBfLlZ6KGQsbmV3IHF0YShhLlgsYS5zdGF0ZSkpLnNtKCgpPT54MihhLGIpLGMpfWNhdGNoKGUpe2QuZXJyb3I9ZSxkLmhhc0Vycm9yPSEwfWZpbmFsbHl7Xy5XeihkKX19OwpwdGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXtzdGFjazpbXSxlcnJvcjp2b2lkIDAsaGFzRXJyb3I6ITF9O3RyeXtsZXQgZT12MihhLGMpO3JldHVybiBfLlZ6KGQsbmV3IHJ0YShhLlgsZSkpLnNtKCgpPT5bXSxiKX1jYXRjaChlKXtkLmVycm9yPWUsZC5oYXNFcnJvcj0hMH1maW5hbGx5e18uV3ooZCl9fTt4Mj1mdW5jdGlvbihhLGIpe3JldHVybiBiLnNsP2Iuc2w6Yi5LYz9SMShhLlgsKCk9PmIuc2w9bzIoYi5LYyksImMiKTpbXX07eTI9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PSJcciJ8fGE9PSJcbiJ8fGE9PSIgInx8YT09Ilx0In07ejI9ZnVuY3Rpb24oKXt0aGlzLk09bnVsbDt0aGlzLlk9W107dGhpcy5JPSIiO3RoaXMuVT1bXTt0aGlzLnY9dGhpcy5vPTA7dGhpcy5EPSExO3RoaXMuSz0wO3RoaXMuWj0vW1xcIl0vZzt0aGlzLmo9dGhpcy5CPTB9OwpBMj1mdW5jdGlvbihhLGIsYyl7YS5CPTM7YS5NPSJUaGUgc3RyZWFtIGlzIGJyb2tlbiBAIithLnYrIi8iK2MrIi4gV2l0aCBpbnB1dDpcbiIrYjt0aHJvdyBFcnJvcihhLk0pO307QzI9ZnVuY3Rpb24oKXt2YXIgYT1VXyhzdGEpLGI7cmV0dXJuKG5ldyBfLkJmKChjLGQpPT57YS5vblN1Y2Nlc3M9ZT0+e18ucWooZSk/YyhuZXcgdHRhKGUpKTpkKG5ldyBCMihgUmVxdWVzdCBmYWlsZWQsIHN0YXR1cz0ke18ucGooZSl9YCwibmV0LmJhZHN0YXR1cyIpKX07YS5vbkVycm9yPSgpPT57ZChuZXcgQjIoIlVua25vd24gcmVxdWVzdCBlcnJvciIsIm5ldC51bmtub3duIikpfTthLm9uVGltZW91dD0oKT0+e2QobmV3IEIyKCJSZXF1ZXN0IHRpbWVkIG91dCIsIm5ldC50aW1lb3V0IikpfTtiPV8uemooIi8vZ29vZ2xlYWRzLmcuZG91YmxlY2xpY2submV0L3BhZ2VhZC9pZCIsYSl9KSkuS2coYz0+e2MgaW5zdGFuY2VvZiBfLlBmJiZiPy5hYm9ydCgpO3JldHVybiBfLk90KGMpfSl9Owp1dGE9ZnVuY3Rpb24oYSxiPW51bGwpe2Euaj0yO2Eubz1ifTt2dGE9ZnVuY3Rpb24oYSxiPW51bGwpe2Euaj0xO2Eubz1ifTtFMj1mdW5jdGlvbihhPW51bGwpe3ZhciBiPW5ldyBEMjt1dGEoYixhKTtyZXR1cm4gYn07RjI9ZnVuY3Rpb24oYT1udWxsKXt2YXIgYj1uZXcgRDI7dnRhKGIsYSk7cmV0dXJuIGJ9O3d0YT1mdW5jdGlvbihhKXt2YXIgYj1hLmRvY2lkfHxhLnZpZGVvX2lkfHxhLnZpZGVvSWR8fGEuaWQ7aWYoYilyZXR1cm4gYjtiPWEucmF3X3BsYXllcl9yZXNwb25zZTtifHwoYT1hLnBsYXllcl9yZXNwb25zZSkmJihiPUpTT04ucGFyc2UoYSkpO3JldHVybiBiJiZiLnZpZGVvRGV0YWlscyYmYi52aWRlb0RldGFpbHMudmlkZW9JZHx8bnVsbH07CkcyPWZ1bmN0aW9uKGEpe3ZhciBiPSJFTUJFRERFRF9QTEFZRVJfTU9ERV9VTktOT1dOIjt3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuaW5jbHVkZXMoInlvdXR1YmVlZHVjYXRpb24uY29tIikmJihiPSJFTUJFRERFRF9QTEFZRVJfTU9ERV9QRkwiKTt2YXIgYz1hLnJhd19lbWJlZGRlZF9wbGF5ZXJfcmVzcG9uc2U7aWYoIWMmJihhPWEuZW1iZWRkZWRfcGxheWVyX3Jlc3BvbnNlKSl0cnl7Yz1KU09OLnBhcnNlKGEpfWNhdGNoKGQpe3JldHVybiBifWlmKGMpYTp7YT14dGE7Zm9yKGxldCBkIGluIGEpaWYoYVtkXT09Yy5lbWJlZGRlZFBsYXllck1vZGUpe2I9YVtkXTticmVhayBhfX1yZXR1cm4gYn07Cnl0YT1mdW5jdGlvbigpe2lmKF8ueCgiZGlzYWJsZV9iaXNjb3R0aV9mZXRjaF9lbnRpcmVseV9mb3JfYWxsX3dlYl9jbGllbnRzIikpcmV0dXJuIEVycm9yKCJ2ZSIpO2lmKCFfLnN6KCkpcmV0dXJuIEVycm9yKCJ3ZSIpO3ZhciBhPV8udygiUExBWUVSX1ZBUlMiLHt9KTtpZihUXyhhKT09IjEiKXJldHVybiBFcnJvcigieGUiKTtpZihHMihhKT09PSJFTUJFRERFRF9QTEFZRVJfTU9ERV9QRkwiKXJldHVybiBFcnJvcigieWUiKX07Wl89ZnVuY3Rpb24oKXt2YXIgYT15dGEoKTtpZihhIT09dm9pZCAwKXJldHVybiBfLk90KGEpO0gyfHwoSDI9QzIoKS50aGVuKEkyKS5LZyhiPT5KMigyLGIpKSk7cmV0dXJuIEgyfTsKSTI9ZnVuY3Rpb24oYSl7YT1hLmoucmVzcG9uc2VUZXh0O2lmKGEubGFzdEluZGV4T2YoIildfSciLDApIT0wKXRocm93IG5ldyBLMjthPUpTT04ucGFyc2UoYS5zdWJzdHIoNCkpO2lmKChhLnR5cGV8fDEpPjEpdGhyb3cgbmV3IEsyO2E9YS5pZDskXyhhKTtIMj1GMihhKTtMMigxOEU1LDIpO3JldHVybiBhfTtKMj1mdW5jdGlvbihhLGIpe2I9bmV3IE0yKGIpOyRfKCIiKTtIMj1FMihiKTthPjAmJkwyKDEyRTQsYS0xKTt0aHJvdyBiO307TDI9ZnVuY3Rpb24oYSxiKXtfLm1qKGZ1bmN0aW9uKCl7QzIoKS50aGVuKEkyLGM9PkoyKGIsYykpLktnKF8uZ2QpfSxhKX07enRhPWZ1bmN0aW9uKCl7dHJ5e2xldCBhPV8uc2EoInl0LmFkcy5iaXNjb3R0aS5nZXRJZF8iKTtyZXR1cm4gYT9hKCk6Wl8oKX1jYXRjaChhKXtyZXR1cm4gXy5PdChhKX19OwpOMj1mdW5jdGlvbigpe3ZhciBhPSExO3RyeXthPSEhd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oInNlc3Npb25fbG9naW5pbmZvIil9Y2F0Y2h7YT0hMH1yZXR1cm4oXy53KCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJXRUIifHxfLncoIklOTkVSVFVCRV9DTElFTlRfTkFNRSIpPT09IldFQl9DUkVBVE9SIikmJmF9OwpPMj1mdW5jdGlvbigpe3RyeXt3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgic3RpY2tpbmVzc19yZWxvYWQiKTt3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgic2Vzc2lvbl9sb2dpbmluZm8iKTtfLlFpKCJMT0dJTl9JTkZPIiwiIik7d2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oImZyb21fc3dpdGNoX2FjY291bnQiLCIxIik7dmFyIGE7bGV0IGM9QXRhO2N8fChjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwZXJzaXN0X2lkZW50aXR5IikpO2lmKGE9Yyl7dmFyIGI9YS5zcmM/KG5ldyBVUkwoYS5zcmMpKS5vcmlnaW46IioiO2EuY29udGVudFdpbmRvdz8ucG9zdE1lc3NhZ2Uoe2FjdGlvbjoiY2xlYXIifSxiKX19Y2F0Y2h7fX07ClAyPWZ1bmN0aW9uKGEpe2lmKGEpaWYoYS5zdGFydHNXaXRoKCJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vQWRkU2Vzc2lvbiIpKU8yKCk7ZWxzZSBpZihhLnN0YXJ0c1dpdGgoImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9TZXJ2aWNlTG9naW4iKSlPMigpO2Vsc2V7dmFyIGI7aWYoYj1hLnN0YXJ0c1dpdGgoImh0dHBzOi8vbXlhY2NvdW50Lmdvb2dsZS5jb20iKSliPShhIGluc3RhbmNlb2YgXy5meT9hLmNsb25lKCk6bmV3IF8uZnkoYSkpLmouZW5kc1dpdGgoIi95b3V0dWJlb3B0aW9ucyIpO2ImJk8yKCl9aWYoXy53KCJMT0dHRURfSU4iLCEwKSYmTjIoKSl7Yj1fLncoIlZBTElEX1NFU1NJT05fVEVNUERBVEFfRE9NQUlOUyIsW10pO3ZhciBjPV8uUGIod2luZG93LmxvY2F0aW9uLmhyZWYpO2MmJmIucHVzaChjKTtjPV8uUGIoYSk7Xy5zYihiLGMpPj0wfHwhYyYmYS5sYXN0SW5kZXhPZigiLyIsMCk9PTA/KGI9Xy5OeShhKSwoYj1fLk95KGIpKT8oYj1fLnZ6KGIpLApiPShiPV8uTGouZ2V0KGIsdm9pZCAwKXx8bnVsbCk/Xy5iaihiKTp7fSk6Yj1udWxsKTpiPW51bGw7Yj09bnVsbCYmKGI9e30pO2M9Yjt2YXIgZD12b2lkIDA7TjIoKT8oZHx8KGQ9Xy53KCJMT0dJTl9JTkZPIikpLGQ/KGMuc2Vzc2lvbl9sb2dpbmluZm89ZCxjPSEwKTpjPSExKTpjPSExO2MmJl8udXooYSxiKX19O0J0YT1mdW5jdGlvbihhLGI9e30sYz0hMSl7dmFyIGQ9Xy53KCJFVkVOVF9JRCIpO2QmJihiLmVpfHwoYi5laT1kKSk7YiYmXy51eihhLGIpO2lmKGMpcmV0dXJuITE7UDIoYSk7Yj13aW5kb3c7YT1fLldiKGEse30pO1AyKGEpO2E9Xy5LeihhKTtiPWIubG9jYXRpb247YT1fLmRiKGEpO2EhPT12b2lkIDAmJihiLmhyZWY9YSk7cmV0dXJuITB9O1EyPWZ1bmN0aW9uKGEpe2lmKFRfKF8udygiUExBWUVSX1ZBUlMiLHt9KSkhPSIxIil7YSYmd3JhKCk7dHJ5e3p0YSgpLnRoZW4oKCk9Pnt9LCgpPT57fSksXy5taihRMiwxOEU1KX1jYXRjaChiKXtfLlVpKGIpfX19OwpEdGE9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3cubG9jYXRpb24uaHJlZjtpZihfLngoImtldmxhcl9kaXNhYmxlX3RoZW1lX3BhcmFtIikpcmV0dXJuIG51bGw7Xy5RYihhKTt0cnl7bGV0IGI9YTAoYSkudGhlbWU7cmV0dXJuIEN0YS5nZXQoYil8fG51bGx9Y2F0Y2goYil7fXJldHVybiBudWxsfTsKUzI9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IFIyO2lmKGEuaW50ZXJwcmV0ZXJKYXZhc2NyaXB0KXt2YXIgYz1ZXyhhLmludGVycHJldGVySmF2YXNjcmlwdCk7Yz1fLmxiKGMpLnRvU3RyaW5nKCk7dmFyIGQ9bmV3IFkxO0JaKGQsNixjKTtfLkt3KGIsMSxkLF8ud3opfWVsc2UgYS5pbnRlcnByZXRlclVybCYmKGM9Xy5odyhhLmludGVycHJldGVyVXJsKSxjPV8uVWEoYykudG9TdHJpbmcoKSxkPW5ldyBaMSxCWihkLDQsYyksXy5LdyhiLDIsZCxfLnd6KSk7YS5pbnRlcnByZXRlckhhc2gmJl8uV3goYiwzLEFaKGEuaW50ZXJwcmV0ZXJIYXNoKSwiIixfLnd6KTthLnByb2dyYW0mJl8uV3goYiw0LEFaKGEucHJvZ3JhbSksIiIsXy53eik7YS5nbG9iYWxOYW1lJiZfLld4KGIsNSxBWihhLmdsb2JhbE5hbWUpLCIiLF8ud3opO2EuY2xpZW50RXhwZXJpbWVudHNTdGF0ZUJsb2ImJl8uV3goYiw3LEFaKGEuY2xpZW50RXhwZXJpbWVudHNTdGF0ZUJsb2IpLCIiLF8ud3opO3JldHVybiBifTsKVDI9ZnVuY3Rpb24oYSl7dmFyIGI9e307YT1hLnNwbGl0KCImIik7Zm9yKGxldCBjIG9mIGEpYT1jLnNwbGl0KCI9IiksYS5sZW5ndGg9PT0yJiYoYlthWzBdXT1hWzFdKTtyZXR1cm4gYn07VTI9ZnVuY3Rpb24oYSl7cmV0dXJuIE51bWJlcihhLnQpfHw3MjAwfTtFdGE9YXN5bmMgZnVuY3Rpb24oKXt2YXIgYT13aW5kb3c7YXdhaXQgZjEoVjIoKSk7dmFyIGI9YS5iZ2V2bWM7aWYoIWIpdGhyb3cgRXJyb3IoInplIik7cmV0dXJue3BhdXNlOigpPT57Yi5wKCl9LHJlc3VtZTooKT0+e2IucigpfSxjaGVja0ZvclJlZnJlc2g6KCk9PmIuY3IoKX19O1YyPWZ1bmN0aW9uKCl7cmV0dXJuIF8ueCgiYmdfc3RfaHIiKT8iaGF2dW9rbWhocy0wIjpgaGF2dW9rbWhocy0ke01hdGguZmxvb3IoZ2xvYmFsVGhpcy5wZXJmb3JtYW5jZT8udGltZU9yaWdpbnx8MCl9YH07VzI9ZnVuY3Rpb24oYSl7d2luZG93LmJnZW5zPWF9OwpGdGE9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFByb21pc2UoYT0+e3ZhciBiPXdpbmRvdztiLm50cGV2YXNycyE9PXZvaWQgMD9hKG5ldyBYMihiLm50cGV2YXNycykpOihiLm50cHFmYmVsPT09dm9pZCAwJiYoYi5udHBxZmJlbD1bXSksYi5udHBxZmJlbC5wdXNoKGM9PnthKG5ldyBYMihjKSl9KSl9KX07Ckd0YT1mdW5jdGlvbigpe2lmKF8uc3ooKSl7dmFyIGE9Xy53KCJQTEFZRVJfVkFSUyIse30pO2lmKFRfKGEpIT0iMSImJkcyKGEpIT09IkVNQkVEREVEX1BMQVlFUl9NT0RFX1BGTCIpe3ZhciBiPSgpPT57WTI9ITA7Imdvb2dsZV9hZF9zdGF0dXMiaW4gd2luZG93P18uUWkoIkRDTEtTVEFUIiwxKTpfLlFpKCJEQ0xLU1RBVCIsMil9O3RyeXtsZXQgYz1fLmliKGRvY3VtZW50KTtIMChaMixiLGMpfWNhdGNoKGMpe30kMi5wdXNoKF8uamYucGIoKCk9PntpZighKFkyfHwiZ29vZ2xlX2FkX3N0YXR1cyJpbiB3aW5kb3cpKXt0cnl7RzAoWjIudG9TdHJpbmcoKSxiKX1jYXRjaChjKXt9WTI9ITA7Xy5RaSgiRENMS1NUQVQiLDMpfX0sNUUzKSl9fX07YTM9ZnVuY3Rpb24oKXt2YXIgYT1OdW1iZXIoXy53KCJEQ0xLU1RBVCIsMCkpO3JldHVybiBpc05hTihhKT8wOmF9O2IzPWZ1bmN0aW9uKGEsYil7YS5qPWJ9OwpJdGE9YXN5bmMgZnVuY3Rpb24oYSl7aWYoXy51Lnl0QXRQJiYhXy54KCJ5dGF0cF9rcyIpKXt2YXIgYj1hd2FpdCBfLnUueXRBdFA7ZGVsZXRlIF8udS55dEF0UDt2YXIgYz1iPy5SO3ZhciBkPWI/LlQ7Yj1IdGEoYyk7bGV0IGY9ISFkO2Euby5vKGM/Yj9mPzc6MTA6Zj8xOjg6Zj8yOjksYS52KyspO2lmKCFjfHxiKWM9YXdhaXQgYS5SZihjMyhkLG51bGwpKSxjPUpTT04uc3RyaW5naWZ5KGMpO18udS55dEF0UkM/Xy51Lnl0QXRSQyhjKTpfLklwKEVycm9yKCJBZSIpKX1lbHNlIF8udS55dEF0UkM/Xy5yeChhc3luYygpPT57ZD1fLnUueXRBdFQ7ZGVsZXRlIF8udS55dEF0VDtpZihfLnUueXRBdFJDKXthLm8ubygyLGEudisrKTt2YXIgZj1hd2FpdCBhLlJmKGMzKGQsbnVsbCkpO18udS55dEF0UkMmJl8udS55dEF0UkMoSlNPTi5zdHJpbmdpZnkoZikpfWVsc2UgYS5vLm8oNixhLnYrKyl9LF8uc2ooImF0dF9pbml0X2RlbGF5IiwwKSk6KGQ9Xy51Lnl0QXRULGRlbGV0ZSBfLnUueXRBdFQsCmEuby5vKDEsYS52KyspKTtjPWF3YWl0IEZ0YSgpO2MuYmluZElubmVydHViZUNoYWxsZW5nZUZldGNoZXIoZj0+e2Euby5vKDMsYS52KyspO3JldHVybiBhLlJmKGMzKGQsZikpfSk7Yy5yZWdpc3RlckNoYWxsZW5nZUZldGNoZWRDYWxsYmFjayhmPT57Zj1mLmNoYWxsZW5nZTtpZighZil0aHJvdyBFcnJvcigiQmUiKTtmPXtjaGFsbGVuZ2U6ZixCZjpUMihmKSx2bTplLGJnQ2hhbGxlbmdlOm5ldyBSMn07Zj1Qcm9taXNlLnJlc29sdmUoZik7YS5qPWZ9KTt2YXIgZT1hd2FpdCBmMShWMigpKTtjPWMuZ2V0TGF0ZXN0Q2hhbGxlbmdlUmVzcG9uc2UoKS5jaGFsbGVuZ2U7aWYoIWMpdGhyb3cgRXJyb3IoIkNlIik7cmV0dXJue2NoYWxsZW5nZTpjLEJmOlQyKGMpLHZtOmUsYmdDaGFsbGVuZ2U6bmV3IFIyfX07CmUzPWFzeW5jIGZ1bmN0aW9uKGEpe3ZhciBiPWMzKHZvaWQgMCxXMSgpLmopO3RyeXt2YXIgYz1hd2FpdCBKdGEoYSxiKX1jYXRjaChmKXtyZXR1cm4gXy5JcChFcnJvcigiRGUiKSksZDMoYSw4NjRFNSkse2NoYWxsZW5nZToiIixCZjp7fSx2bTp2b2lkIDAsYmdDaGFsbGVuZ2U6dm9pZCAwfX1iPWMueXo7dmFyIGQ9Yy56ejtkMyhhLFUyKGQpKjFFMyk7YT12b2lkIDA7aWYoImMxYSJpbiBkJiZjLmJnQ2hhbGxlbmdlKXt2YXIgZT1TMihjLmJnQ2hhbGxlbmdlKTt0cnl7YXdhaXQgJDEoVzEoKSxlKX1jYXRjaChmKXtyZXR1cm4gXy5JcChmKSx7Y2hhbGxlbmdlOmIsQmY6ZCx2bTphLGJnQ2hhbGxlbmdlOmV9fXRyeXthPW5ldyBkMih7Y2hhbGxlbmdlOmUsbmc6e21iOiJhR0lmIn19KSxhd2FpdCBhLkNnfWNhdGNoKGYpe18uSXAoZiksYT12b2lkIDB9fXJldHVybntjaGFsbGVuZ2U6YixCZjpkLHZtOmEsYmdDaGFsbGVuZ2U6ZX19OwpKdGE9YXN5bmMgZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dm9pZCAwLGQ9MDtkPDU7KXtpZihkPjApe2xldCBlPTFFMypNYXRoLnBvdygyLGQtMSkrTWF0aC5yYW5kb20oKSoxRTM7YXdhaXQgbmV3IFByb21pc2UoZj0+e18uWWooKCk9PntmKHZvaWQgMCl9LGUpfSl9dHJ5e2Euby5vKDQsYS52KyspO2xldCBlPWF3YWl0IGEuUmYoYik7cmV0dXJuIEt0YShlKX1jYXRjaChlKXtjPWUsZSBpbnN0YW5jZW9mIEVycm9yJiZfLklwKGUpfWQrK310aHJvdyBjO307ZDM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1EYXRlLm5vdygpK2IsZD1hc3luYygpPT57dmFyIGU9Yy1EYXRlLm5vdygpO2U8MUUzP2F3YWl0IEx0YShhKTpfLllqKGQsTWF0aC5taW4oZSw2RTQpKX07ZCgpfTtmMz1hc3luYyBmdW5jdGlvbihhLGIpe1cyKDIpO3RyeXtsZXQgYz1hd2FpdCBhLm5ldHdvcmsuUmYoYik7Yz9jLmNoYWxsZW5nZSYmIWMuYmdDaGFsbGVuZ2U/VzIoMSk6VzIoNCk6VzIoMyk7cmV0dXJuIGN9Y2F0Y2goYyl7VzIoMyl9fTsKS3RhPWZ1bmN0aW9uKGEpe2lmKCFhKXRocm93IEVycm9yKCJFZSIpO2lmKCFhLmNoYWxsZW5nZSl0aHJvdyBFcnJvcigiRmUiKTt2YXIgYj1hLmNoYWxsZW5nZSxjPVQyKGIpO2lmKCJjMWEiaW4gYyYmKCFhLmJnQ2hhbGxlbmdlfHwhYS5iZ0NoYWxsZW5nZS5wcm9ncmFtKSl0aHJvdyBFcnJvcigiR2UiKTtyZXR1cm57Li4uYSx5ejpiLHp6OmN9fTtMdGE9YXN5bmMgZnVuY3Rpb24oYSl7dmFyIGI9YXdhaXQgUHJvbWlzZS5yYWNlKFthLmosbnVsbF0pLGM9ZTMoYSk7YS5qPWM7Yj8udm0/LmRpc3Bvc2UoKX07TXRhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBQcm9taXNlKGM9PntfLllqKCgpPT57YyhiKCkpfSxhKX0pfTtjMz1mdW5jdGlvbihhLGIpe3ZhciBjPXtlbmdhZ2VtZW50VHlwZToiRU5HQUdFTUVOVF9UWVBFX1VOQk9VTkQifTthJiYoYy5lYWNyVG9rZW49YSk7YiYmKGMuaW50ZXJwcmV0ZXJIYXNoPWIpO3JldHVybiBjfTsKSHRhPWZ1bmN0aW9uKGEpe2lmKCFhfHwhXy54KCJyb3NjYXMiKSlyZXR1cm4hMTt0cnl7dmFyIGI9SlNPTi5wYXJzZShhKX1jYXRjaChjKXtyZXR1cm4hMX1hPWIuY2hhbGxlbmdlO2lmKCFhKXJldHVybiExO2I9VDIoYSk7YT1OdW1iZXIoYi5jKXx8dm9pZCAwO2I9VTIoYik7cmV0dXJuISFhJiZEYXRlLm5vdygpPihhK2IpKjFFM307aDM9ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGg9PT0xKXJldHVybiBhWzBdO3ZhciBiPWczLlVOS05PV05fSU5URVJGQUNFO2lmKGIpe2I9bmV3IFJlZ0V4cChiKTtmb3IodmFyIGMgb2YgYSlpZihiLmV4ZWMoYykpcmV0dXJuIGN9dmFyIGQ9W107T2JqZWN0LmVudHJpZXMoZzMpLmZvckVhY2goKFtlLGZdKT0+eyJVTktOT1dOX0lOVEVSRkFDRSIhPT1lJiZkLnB1c2goZil9KTtjPW5ldyBSZWdFeHAoZC5qb2luKCJ8IikpO2Euc29ydCgoZSxmKT0+ZS5sZW5ndGgtZi5sZW5ndGgpO2ZvcihsZXQgZSBvZiBhKWlmKCFjLmV4ZWMoZSkpcmV0dXJuIGU7cmV0dXJuIGFbMF19OwpOdGE9ZnVuY3Rpb24oKXt2YXIgYSxiO3JldHVybntFbDpuZXcgaTMoKGMsZCk9PnthPWM7Yj1kfSkscmVzb2x2ZTphLHJlamVjdDpifX07azM9ZnVuY3Rpb24oYSl7cmV0dXJuIGozKGEpP2E6KDAsXy5ibykoYSk/bmV3IGkzKChiLGMpPT57YS50aGVuKGIsYyl9KTpuZXcgaTMoYj0+e2IoYSl9KX07T3RhPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgaTMoKGIsYyk9PntjKGEpfSl9O1B0YT1mdW5jdGlvbihhKXt0cnl7cmV0dXJuIGszKGEoKSl9Y2F0Y2goYil7cmV0dXJuIE90YShiKX19O1F0YT1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IF8uQmYoKGIsYyk9PntsMyhhLGIsYyl9KX07bTM9ZnVuY3Rpb24oYSl7cmV0dXJuIFF0YShhKX07bjM9ZnVuY3Rpb24oYSl7aWYoYS5qPT09ImZ1bGZpbGxlZCIpe3ZhciBiPWEubzthLm89W107YS52PVtdO2Zvcih2YXIgYyBvZiBiKWMoYS5yZXN1bHQpfWVsc2UgaWYoYS5qPT09InJlamVjdGVkIil7Yz1hLnY7YS5vPVtdO2Eudj1bXTtmb3IoYiBvZiBjKWIoYS5lcnJvcil9fTsKbDM9ZnVuY3Rpb24oYSxiLGMpe3ZhciB7RWw6ZCxyZXNvbHZlOmUscmVqZWN0OmZ9PU50YSgpO2Euby5wdXNoKGg9PntpZihiKXRyeXtsZXQgaz1iKGgpO2Uoayl9Y2F0Y2goayl7ZihrKX1lbHNlIGUoaCl9KTthLnYucHVzaChoPT57aWYoYyl0cnl7bGV0IGs9YyhoKTtlKGspfWNhdGNoKGspe2Yoayl9ZWxzZSBmKGgpfSk7bjMoYSk7cmV0dXJuIGR9O1J0YT1mdW5jdGlvbihhLGIpe3JldHVybiBsMyhhLHZvaWQgMCxiKX07bzM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gU3RhKGIuY2FsbChhKSl9O3AzPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbiooKXtyZXR1cm4geWllbGR7RWw6azMoYSl9fSgpfTtTdGE9ZnVuY3Rpb24oYSl7cmV0dXJuIFB0YSgoKT0+cTMoYSxhLm5leHQoKSkpfTtxMz1mdW5jdGlvbihhLGIpe3JldHVybiBiLmRvbmU/azMoYi52YWx1ZSk6UnRhKGwzKGIudmFsdWUuRWwsYz0+cTMoYSxhLm5leHQoYykpKSxjPT5xMyhhLGEudGhyb3coYykpKX07ClR0YT1hc3luYyBmdW5jdGlvbigpe3ZhciBhPV8ueSgpLnJlc29sdmUoXy5JeSk7aWYoYSl7aWYoYT1hd2FpdCBhLlFpKHtzaWduYWxTZXJ2aWNlRW5kcG9pbnQ6e3NpZ25hbDoiR0VUX0RBVEFTWU5DX0lEUyJ9fSkpe2lmKGEuZXJyb3JNZXRhZGF0YSl7Xy5JcChFcnJvcigiSGVgIithLmVycm9yTWV0YWRhdGEuc3RhdHVzKyJgIithLmVycm9yKSk7cmV0dXJufXJldHVybiBhLnRJfV8uSXAoRXJyb3IoIkllIikpfWVsc2UgXy5JcChFcnJvcigiSmUiKSl9OwpyMz1mdW5jdGlvbihhLGIpe2lmKGIuZW5jcnlwdGVkVG9rZW5KYXJDb250ZW50cyYmKGEualtiLmVuY3J5cHRlZFRva2VuSmFyQ29udGVudHNdPWIsdHlwZW9mIGIuZXhwaXJhdGlvblNlY29uZHM9PT0ic3RyaW5nIikpe2xldCBjPU51bWJlcihiLmV4cGlyYXRpb25TZWNvbmRzKTtzZXRUaW1lb3V0KCgpPT57ZGVsZXRlIGEualtiLmVuY3J5cHRlZFRva2VuSmFyQ29udGVudHNdfSxjKjFFMyk7YS5vJiZfLk1qKCJDT05TSVNURU5DWSIsYi5lbmNyeXB0ZWRUb2tlbkphckNvbnRlbnRzLGMsdm9pZCAwLCEwKX19O3MzPWZ1bmN0aW9uKGEpe3JldHVybiBhLmxvY2FsU3RvcmFnZT09PXZvaWQgMD9uZXcgXy5lbigieXQtY2xpZW50LWxvY2F0aW9uIik6YS5sb2NhbFN0b3JhZ2V9Owp3Mz1mdW5jdGlvbihhLGI9ITEsYz0hMSl7dmFyIGQ9Xy53KCJJTk5FUlRVQkVfQ09OVEVYVCIpO2lmKCFkKXJldHVybiBfLkdwKEVycm9yKCJNZSIpKSx7fTtkPV8ucWQoZCk7Xy54KCJ3ZWJfbm9fdHJhY2tpbmdfcGFyYW1zX2luX3NoZWxsX2tpbGxzd2l0Y2giKXx8ZGVsZXRlIGQuY2xpY2tUcmFja2luZztkLmNsaWVudHx8KGQuY2xpZW50PXt9KTt2YXIgZT1kLmNsaWVudDtlLmNsaWVudE5hbWU9PT0iTVdFQiImJmUuY2xpZW50Rm9ybUZhY3RvciE9PSJBVVRPTU9USVZFX0ZPUk1fRkFDVE9SIiYmKGUuY2xpZW50Rm9ybUZhY3Rvcj1fLncoIklTX1RBQkxFVCIpPyJMQVJHRV9GT1JNX0ZBQ1RPUiI6IlNNQUxMX0ZPUk1fRkFDVE9SIik7ZS5zY3JlZW5XaWR0aFBvaW50cz13aW5kb3cuaW5uZXJXaWR0aDtlLnNjcmVlbkhlaWdodFBvaW50cz13aW5kb3cuaW5uZXJIZWlnaHQ7ZS5zY3JlZW5QaXhlbERlbnNpdHk9TWF0aC5yb3VuZCh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSk7ZS5zY3JlZW5EZW5zaXR5RmxvYXQ9CndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO2UudXRjT2Zmc2V0TWludXRlcz0tTWF0aC5mbG9vcigobmV3IERhdGUpLmdldFRpbWV6b25lT2Zmc2V0KCkpO18uSHooKTt2YXIgZj0iVVNFUl9JTlRFUkZBQ0VfVEhFTUVfTElHSFQiO18uQ3ooMTY1KT9mPSJVU0VSX0lOVEVSRkFDRV9USEVNRV9EQVJLIjpfLkN6KDE3NCk/Zj0iVVNFUl9JTlRFUkZBQ0VfVEhFTUVfTElHSFQiOiFfLngoImtldmxhcl9sZWdhY3lfYnJvd3NlcnMiKSYmd2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWUpIikubWF0Y2hlcyYmd2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzJiYoZj0iVVNFUl9JTlRFUkZBQ0VfVEhFTUVfREFSSyIpO2Y9RHRhKCl8fGY7ZS51c2VySW50ZXJmYWNlVGhlbWU9ZjtfLngoIndlYl9wcm9wYWdhdGVfdmlzaWJpbGl0eV90b19hcHBsaWNhdGlvbl9zdGF0ZSIpJiZfLnUuZG9jdW1lbnQmJgooZS5hcHBsaWNhdGlvblN0YXRlPV8udS5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT0iaGlkZGVuIj8iQkFDS0dST1VORCI6IkFDVElWRSIpO2lmKCFiKXtpZihmPV8uU2ooKSllLmNvbm5lY3Rpb25UeXBlPWY7Xy54KCJ3ZWJfbG9nX2VmZmVjdGl2ZV9jb25uZWN0aW9uX3R5cGUiKSYmKGY9Xy5VaigpKSYmKGQuY2xpZW50LmVmZmVjdGl2ZUNvbm5lY3Rpb25UeXBlPWYpfV8ueCgid2ViX2xvZ19tZW1vcnlfdG90YWxfa2J5dGVzIikmJl8udS5uYXZpZ2F0b3I/LmRldmljZU1lbW9yeSYmKGQuY2xpZW50Lm1lbW9yeVRvdGFsS2J5dGVzPWAke18udS5uYXZpZ2F0b3I/LmRldmljZU1lbW9yeSoxRTZ9YCk7aWYoXy54KCJ3ZWJfZ2NmX2hhc2hlc19pbm5lcnR1YmUiKSl7dmFyIGg9Xy5qbSgpO2lmKGgpe2Y9aC5jb2xkQ29uZmlnRGF0YTtsZXQgbj1oLmNvbGRIYXNoRGF0YTtoPWguaG90SGFzaERhdGE7ZC5jbGllbnQuY29uZmlnSW5mbz1kLmNsaWVudC5jb25maWdJbmZvfHx7fTtmJiYKKGQuY2xpZW50LmNvbmZpZ0luZm8uY29sZENvbmZpZ0RhdGE9Zik7biYmKGQuY2xpZW50LmNvbmZpZ0luZm8uY29sZEhhc2hEYXRhPW4pO2gmJihkLmNsaWVudC5jb25maWdJbmZvLmhvdEhhc2hEYXRhPWgpfX1mPWEwKF8udS5sb2NhdGlvbi5ocmVmKTshXy54KCJ3ZWJfcG9wdWxhdGVfaW50ZXJuYWxfZ2VvX2tpbGxzd2l0Y2giKSYmZi5pbnRlcm5hbGNvdW50cnljb2RlJiYoZS5pbnRlcm5hbEdlbz1mLmludGVybmFsY291bnRyeWNvZGUpO2UuY2xpZW50TmFtZT09PSJNV0VCInx8ZS5jbGllbnROYW1lPT09IldFQiI/KGUubWFpbkFwcFdlYkluZm98fChlLm1haW5BcHBXZWJJbmZvPXt9KSxlLm1haW5BcHBXZWJJbmZvLmdyYWZ0VXJsPV8udS5sb2NhdGlvbi5ocmVmLF8ueCgia2V2bGFyX3dvZmZsZSIpJiZ0My5pbnN0YW5jZSYmKGY9dDMuaW5zdGFuY2UsZS5tYWluQXBwV2ViSW5mby5wd2FJbnN0YWxsYWJpbGl0eVN0YXR1cz0hZi5qJiZmLm8/IlBXQV9JTlNUQUxMQUJJTElUWV9TVEFUVVNfQ0FOX0JFX0lOU1RBTExFRCI6CiJQV0FfSU5TVEFMTEFCSUxJVFlfU1RBVFVTX1VOS05PV04iKSxlLm1haW5BcHBXZWJJbmZvLndlYkRpc3BsYXlNb2RlPV8uT2ooKSxlLm1haW5BcHBXZWJJbmZvLmlzV2ViTmF0aXZlU2hhcmVBdmFpbGFibGU9bmF2aWdhdG9yJiZuYXZpZ2F0b3Iuc2hhcmUhPT12b2lkIDApOmUuY2xpZW50TmFtZT09PSJUVkhUTUw1IiYmKCFfLngoIndlYl9scl9hcHBfcXVhbGl0eV9raWxsc3dpdGNoIikmJihmPV8udygiTElWSU5HX1JPT01fQVBQX1FVQUxJVFkiKSkmJihlLnR2QXBwSW5mbz1PYmplY3QuYXNzaWduKGUudHZBcHBJbmZvfHx7fSx7YXBwUXVhbGl0eTpmfSkpLGY9Xy53KCJMSVZJTkdfUk9PTV9DRVJUSUZJQ0FUSU9OX1NDT1BFIikpJiYoZS50dkFwcEluZm89T2JqZWN0LmFzc2lnbihlLnR2QXBwSW5mb3x8e30se2NlcnRpZmljYXRpb25TY29wZTpmfSkpO2lmKCFfLngoIndlYl9wb3B1bGF0ZV90aW1lX3pvbmVfaXRjX2tpbGxzd2l0Y2giKSl7YTp7aWYodHlwZW9mIEludGwhPT0idW5kZWZpbmVkIil0cnl7dmFyIGs9CihuZXcgSW50bC5EYXRlVGltZUZvcm1hdCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmU7YnJlYWsgYX1jYXRjaHt9az12b2lkIDB9ayYmKGUudGltZVpvbmU9ayl9KGs9Xy53KCJFWFBFUklNRU5UU19UT0tFTiIsIiIpKT9lLmV4cGVyaW1lbnRzVG9rZW49azpkZWxldGUgZS5leHBlcmltZW50c1Rva2VuO2U9Xy51aigpO3UzLmluc3RhbmNlfHwodTMuaW5zdGFuY2U9bmV3IHUzKTtrPV8uWngodTMuaW5zdGFuY2Uuaik7ZC5yZXF1ZXN0PXsuLi5kLnJlcXVlc3QsaW50ZXJuYWxFeHBlcmltZW50RmxhZ3M6ZSxjb25zaXN0ZW5jeVRva2VuSmFyczprfTshXy54KCJ3ZWJfcHJlcXVlc3RfY29udGV4dF9raWxsc3dpdGNoIikmJihlPV8udygiSU5ORVJUVUJFX0NPTlRFWFRfUFJFUVVFU1RfQ09OVEVYVCIpKSYmKGQucmVxdWVzdC5leHRlcm5hbFByZXF1ZXN0Q29udGV4dD1lKTtrPV8uSHooKTtlPV8uQ3ooNTgpO2s9ay5nZXQoImdzbWwiLCIiKTtkLnVzZXI9ey4uLmQudXNlcn07ZSYmKGQudXNlci5lbmFibGVTYWZldHlNb2RlPQplKTtrJiYoZC51c2VyLmxvY2tlZFNhZmV0eU1vZGU9ITApO18ueCgid2FybV9vcF9jc25fY2xlYW51cCIpP2MmJihiPV8uaXEoKSkmJihkLmNsaWVudFNjcmVlbk5vbmNlPWIpOiFiJiYoYj1fLmlxKCkpJiYoZC5jbGllbnRTY3JlZW5Ob25jZT1iKTthJiYoZC5jbGlja1RyYWNraW5nPXtjbGlja1RyYWNraW5nUGFyYW1zOmF9KTtpZihhPV8uc2EoInl0Lm1keC5yZW1vdGUucmVtb3RlQ2xpZW50XyIpKWQucmVtb3RlQ2xpZW50PWE7djMuamMoKS5zZXRMb2NhdGlvbk9uSW5uZXJUdWJlQ29udGV4dChkKTt0cnl7dmFyIGw9Xy5saigpLG09bC5iaWQ7ZGVsZXRlIGwuYmlkO2QuYWRTaWduYWxzSW5mbz17cGFyYW1zOltdLGJpZDptfTtmb3IobGV0IFtuLHBdb2YgT2JqZWN0LmVudHJpZXMobCkpbD1uLG09cCxkLmFkU2lnbmFsc0luZm8ucGFyYW1zPy5wdXNoKHtrZXk6bCx2YWx1ZTpgJHttfWB9KTtpZihkLmNsaWVudD8uY2xpZW50TmFtZT09PSJUVkhUTUw1Inx8ZC5jbGllbnQ/LmNsaWVudE5hbWU9PT0KIlRWSFRNTDVfVU5QTFVHR0VEIil7bGV0IG49Xy53KCJJTk5FUlRVQkVfQ09OVEVYVCIpO24uYWRTaWduYWxzSW5mbyYmKGQuYWRTaWduYWxzSW5mby5hZHZlcnRpc2luZ0lkPW4uYWRTaWduYWxzSW5mby5hZHZlcnRpc2luZ0lkLGQuYWRTaWduYWxzSW5mby5hZHZlcnRpc2luZ0lkU2lnbmFsVHlwZT0iREVWSUNFX0lEX1RZUEVfQ09OTkVDVEVEX1RWX0lGQSIsZC5hZFNpZ25hbHNJbmZvLmxpbWl0QWRUcmFja2luZz1uLmFkU2lnbmFsc0luZm8ubGltaXRBZFRyYWNraW5nLG4uYWRTaWduYWxzSW5mby5hdFRyYWNraW5nTWFuYWdlckF1dGhvcml6YXRpb25TdGF0dXMhPT12b2lkIDAmJihkLmFkU2lnbmFsc0luZm8uYXRUcmFja2luZ01hbmFnZXJBdXRob3JpemF0aW9uU3RhdHVzPW4uYWRTaWduYWxzSW5mby5hdFRyYWNraW5nTWFuYWdlckF1dGhvcml6YXRpb25TdGF0dXMpKX19Y2F0Y2gobil7Xy5HcChuKX1yZXR1cm4gZH07ClV0YT1mdW5jdGlvbihhLGIpe2lmKCFhKXJldHVybiExO3ZhciBjPV8uQihhLF8uenopPy5zaWduYWw7aWYoYyYmYi5IZClyZXR1cm4hIWIuSGRbY107aWYoKGM9Xy5CKGEsXy5BeSk/LnJlcXVlc3QpJiZiLlZnKXJldHVybiEhYi5WZ1tjXTtmb3IobGV0IGQgaW4gYSlpZihiLkZpW2RdKXJldHVybiEwO3JldHVybiExfTsKeDM9ZnVuY3Rpb24oYSl7dmFyIGI9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn07Xy53KCJFT01fVklTSVRPUl9EQVRBIik/YlsiWC1Hb29nLUVPTS1WaXNpdG9yLUlkIl09Xy53KCJFT01fVklTSVRPUl9EQVRBIik6Xy53KCJWSVNJVE9SX0RBVEEiKSYmKGJbIlgtR29vZy1WaXNpdG9yLUlkIl09Xy53KCJWSVNJVE9SX0RBVEEiKSk7YlsiWC1Zb3V0dWJlLUJvb3RzdHJhcC1Mb2dnZWQtSW4iXT1fLncoIkxPR0dFRF9JTiIsITEpO18udygiREVCVUdfU0VUVElOR1NfTUVUQURBVEEiKSYmKGJbIlgtRGVidWctU2V0dGluZ3MtTWV0YWRhdGEiXT1fLncoIkRFQlVHX1NFVFRJTkdTX01FVEFEQVRBIikpO2EhPT0iY29ycyImJigoYT1fLncoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9OQU1FIikpJiYoYlsiWC1Zb3V0dWJlLUNsaWVudC1OYW1lIl09YSksKGE9Xy53KCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfVkVSU0lPTiIpKSYmKGJbIlgtWW91dHViZS1DbGllbnQtVmVyc2lvbiJdPQphKSwoYT1fLncoIkNIUk9NRV9DT05ORUNURURfSEVBREVSIikpJiYoYlsiWC1Zb3V0dWJlLUNocm9tZS1Db25uZWN0ZWQiXT1hKSwoYT1fLncoIkRPTUFJTl9BRE1JTl9TVEFURSIpKSYmKGJbIlgtWW91dHViZS1Eb21haW4tQWRtaW4tU3RhdGUiXT1hKSwoYT12My5qYygpLmdldFhHZW9IZWFkZXI/LigpKSYmKGJbIlgtR2VvIl09YSkpOyhhPV8udygiU0VSSUFMSVpFRF9MQVZBX0RFVklDRV9DT05URVhUIikpJiYoYlsiWC1Zb3VUdWJlLUxhdmEtRGV2aWNlLUNvbnRleHQiXT1hKTtyZXR1cm4gYn07eTM9ZnVuY3Rpb24oYSl7cmV0dXJuKCk9Pm5ldyBhfTsKVnRhPWZ1bmN0aW9uKGEsYixjLGQpe2lmKHozLmluc3RhbmNlIT09dm9pZCAwKXtpZihkPXozLmluc3RhbmNlLGE9W2EhPT1kLnYsYiE9PWQuU2EsYyE9PWQubywhMSwhMSwhMSwhMV0sYS5zb21lKGU9PmUpKXRocm93IG5ldyBfLlhqKCJJbm5lclR1YmVUcmFuc3BvcnRTZXJ2aWNlIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQiLGEpO31lbHNlIHozLmluc3RhbmNlPW5ldyB6MyhhLGIsYyxkKX07Cll0YT1mdW5jdGlvbihhLGIpe3ZhciBjPWAveW91dHViZWkvdjEvJHtoMyhXdGEpfWAsZD17UmQ6e2lkZW50aXR5OkEzfX07aWYoXy54KCJtYXdfbmV0d29ya19tYWNoaW5lX3Jhd19yZXF1ZXN0Iil8fF8ueCgiYWxsX3dlYl9uZXR3b3JrX21hY2hpbmVfcmF3X3JlcXVlc3QiKSl7bGV0IGY9Xy55KCkucmVzb2x2ZShfLkluKEIzKSk/LigpO2lmKGYpcmV0dXJuIG0zKFh0YShmLHtpbm5lclR1YmVSZXF1ZXN0OmIsYXBpUGF0aDpjLGNsaWNrVHJhY2tpbmdQYXJhbXM6dm9pZCAwLGNvbmZpZzpkLGluY2x1ZGVDdXJyZW50U2NyZWVuTm9uY2U6ITB9KSkudGhlbihoPT5oLCgpPT57fSl9dmFyIGU9KCk9Pnt9O2U9dzAodjAoYykpO2IuY29udGV4dHx8KGIuY29udGV4dD13Myh2b2lkIDAsITApKTtyZXR1cm4gbmV3IF8uQmYoYXN5bmMgZj0+e3ZhciBoPVkwKGMpO2g9Xy5maihoKT8ic2FtZS1vcmlnaW4iOiJjb3JzIjtoPWEuby56bj9DMyhkLGgpOmF3YWl0IEQzKGQsaCk7dmFyIGs9WDAoWTAoYykpOwprPXtpbnB1dDprLHdiOlowKGspLGlubmVyVHViZVJlcXVlc3Q6Yixjb25maWc6ZH07ZihFMyhhLGssaCxlKSl9KX07WnRhPWZ1bmN0aW9uKGEsYil7YTp7YT1hLnY7dmFyIGM9Xy5CKGIsXy56eik/LnNpZ25hbDtpZihjJiZhLkhkJiYoYz1hLkhkW2NdKSl7dmFyIGQ9YygpO2JyZWFrIGF9aWYoKGM9Xy5CKGIsXy5BeSk/LnJlcXVlc3QpJiZhLlZnJiYoYz1hLlZnW2NdKSl7ZD1jKCk7YnJlYWsgYX1mb3IoZCBpbiBiKWlmKGEuRmlbZF0mJihiPWEuRmlbZF0pKXtkPWIoKTticmVhayBhfWQ9dm9pZCAwfWlmKGQhPT12b2lkIDApcmV0dXJuIFByb21pc2UucmVzb2x2ZShkKX07QzM9ZnVuY3Rpb24oYSxiKXthPV8uUGooe3Nlc3Npb25JbmRleDphPy5SZD8uc2Vzc2lvbkluZGV4fSk7cmV0dXJuey4uLngzKGIpLC4uLmF9fTsKRDM9YXN5bmMgZnVuY3Rpb24oYSxiKXthPWF3YWl0IF8uS3koXy5Qaih7c2Vzc2lvbkluZGV4OmE/LlJkPy5zZXNzaW9uSW5kZXh9KSk7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7Li4ueDMoYiksLi4uYX0pfTsKRTM9YXN5bmMgZnVuY3Rpb24oYSxiLGMsZD0oKT0+e30pe2F3YWl0ICR0YShiKTt2YXIgZT1iLmNvbmZpZz8ucmVxdWVzdEtleTtpZihlJiZhLmouaGFzKGUpKXZhciBmPWEuai5nZXQoZSk7ZWxzZSBmPUpTT04uc3RyaW5naWZ5KGIuaW5uZXJUdWJlUmVxdWVzdCksYi53Yj17Li4uYi53YixoZWFkZXJzOnsuLi4oYi53Yj8uaGVhZGVycz8/e30pLC4uLmN9fSxjPXsuLi5iLndifSxiLndiLm1ldGhvZD09PSJQT1NUIiYmKGM9ey4uLmMsYm9keTpmfSksYi5jb25maWc/LmtuJiZfLkFxKGIuY29uZmlnLmtuKSxmPWEuU2EuZmV0Y2goYi5pbnB1dCxjLGIuY29uZmlnKSxlJiZhLmouc2V0KGUsZik7aWYoKGY9YXdhaXQgZikmJiJlcnJvciJpbiBmJiZmPy5lcnJvcj8uZGV0YWlscyl7Yz1mLmVycm9yLmRldGFpbHM7Zm9yKGxldCBoIG9mIGMpKGM9aFsiQHR5cGUiXSkmJmF1YS5pbmRleE9mKGMpPi0xJiYoZGVsZXRlIGhbIkB0eXBlIl0sZj1oKX1lJiZhLmouaGFzKGUpJiZhLmouZGVsZXRlKGUpOwpiLmNvbmZpZz8ucG4mJl8uQXEoYi5jb25maWcucG4pO2J1YShhLGYsYik7Yi5jb25maWc/Lkl6JiZfLkFxKGIuY29uZmlnLkl6KTtkKCk7cmV0dXJuIGZ8fHZvaWQgMH07JHRhPWFzeW5jIGZ1bmN0aW9uKGEpe2lmKGE/LmlubmVyVHViZVJlcXVlc3Q/LmNvbnRleHQpe2E9YS5pbm5lclR1YmVSZXF1ZXN0LmNvbnRleHQ7Zm9yKGxldCBiIG9mW10pYXdhaXQgYi5CcihhKX19O2J1YT1mdW5jdGlvbihhLGIsYyl7aWYoYiYmIWI/LnNlcXVlbmNlTWV0YURhdGE/LnNraXBQcm9jZXNzaW5nJiZhLkIpZm9yKGxldCBkIG9mIEYzKWEuQltkXSYmYS5CW2RdLmhhbmRsZVJlc3BvbnNlKGIsYyl9O2N1YT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIG8zKGEsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIGQ9Xy5LeShfLlBqKHtzZXNzaW9uSW5kZXg6Yj8uUmQ/LnNlc3Npb25JbmRleH0pKTtkPXlpZWxkKnAzKGszKGQpKTtyZXR1cm57Li4ueDMoYyksLi4uZH19KCl9KX07CkczPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09MXx8YT09PTJ9O2R1YT1mdW5jdGlvbihhLGIsYz0hMSl7dmFyIGQsZT1fLkIoYixfLkF5KT8ucmVxdWVzdDtlJiZhLmouVmcmJihkPWEuai5WZ1tlXSk7ZHx8Y3x8KGU9Xy5CKGIsXy56eik/LnNpZ25hbCkmJmEuai5IZCYmKGQ9YS5qLkhkW2VdKTtpZighZCYmKGE9Yz9hLmouYUw6YS5qLkZpKSlmb3IobGV0IGYgaW4gYilpZihhW2ZdKXtkPWFbZl07YnJlYWt9aWYoIWQpe2lmKGMpdGhyb3cgRXJyb3IoIlFlIik7dGhyb3cgRXJyb3IoIlJlIik7fWI9ZCgpO3JldHVybiBrMyhiKX07ZXVhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEucnVuKCJDT01NQU5EX0lOSVQiLGIpfTtYdGE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5ydW4oIlJFUVVFU1RfSU5JVCIsYil9O0gzPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEucnVuKCJQUk9DRVNTX1JFU1BPTlNFIixiLCJSZXNwb25zZU1hY2hpbmUgKENhY2hlKSIpfTsKSTM9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhLnJ1bigiSU5JVCIsYixjIT09dm9pZCAwP2BSZXNwb25zZU1hY2hpbmUgKENodW5rICR7Y30pYDoiUmVzcG9uc2VNYWNoaW5lIil9OwpmdWE9ZnVuY3Rpb24oKXt2YXIgYT1fLnkoKTtfLkp6KGEse2phOkozLFdjOigpPT5uZXcgTWFwfSk7Xy5KeihhLHtqYTpLMyxQYTpLMyxnYjohMH0pO18uSnooYSx7amE6TDMsUGE6TDMsZ2I6ITB9KTtfLkp6KGEse2phOk0zLFBhOk0zLGdiOiEwfSk7Xy5KeihhLHtqYTpOMyxQYTpOMyxnYjohMH0pO18uSnooYSx7amE6TzMsUGE6TzMsZ2I6ITB9KTtfLkp6KGEse2phOlAzLFBhOlAzLGdiOiEwfSk7Xy5KeihhLHtqYTpRMyxQYTpRMyxnYjohMH0pO18uSnooYSx7amE6UjMsUGE6UjMsZ2I6ITB9KTtfLkp6KGEse2phOlMzLFBhOlMzLGdiOiEwfSk7Xy5KeihhLHtqYTpUMyxQYTpUMyxnYjohMH0pO18uSnooYSx7amE6VTMsV2M6KGIsYyxkLGUsZixoLGssbCxtLG4pPT4oe0NPTU1BTkRfSU5JVDpsLFJFUVVFU1RfSU5JVDptLENBQ0hFOmMsTE9DQUxfUk9VVEVSOmssQ09OVEVYVDpkLEFVVEg6YixERURVUEU6ZSxGRVRDSDpoLFJFVFJZOm4sRkFMTEJBQ0s6Zn0pLFtfLkxuXTpbSzMsTDMsCk0zLE4zLE8zLFAzLFEzLFIzLFMzLFQzXSxnYjohMH0pO18uSnooYSx7amE6QjMsV2M6Yj0+KCk9Pm5ldyBWMyhiKSxbXy5Mbl06W1UzXSxnYjohMH0pO18uSnooYSx7amE6VzMsUGE6VzMsZ2I6ITB9KTtfLkp6KGEse2phOlgzLFBhOlgzLGdiOiEwfSk7Xy5KeihhLHtqYTpZMyxQYTpZMyxnYjohMH0pO18uSnooYSx7amE6WjMsUGE6WjMsZ2I6ITB9KTtfLkp6KGEse2phOiQzLFdjOihiLGMsZCxlKT0+KHtJTklUOmUsRVJST1JfVU5QQUNLRVI6YyxQUk9DRVNTX1JFU1BPTlNFOmQsQ0FMTEJBQ0tfRElTUEFUQ0hFUjpifSksW18uTG5dOltXMyxYMyxZMyxaM10sZ2I6ITB9KTtfLkp6KGEse2phOmE0LFdjOmI9PigpPT5uZXcgYjQoYiksW18uTG5dOlskM10sZ2I6ITB9KX07Cmd1YT1mdW5jdGlvbigpe18ucmEoInl0LmxvZ2dpbmcuZXJyb3JzLmxvZyIsXy5HcCk7S3JhKCk7Xy56byhfLkJvKCkse30pO3dpbmRvdy5vbmVycm9yPUpyYTtfLlVmPW8wO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ1bmhhbmRsZWRyZWplY3Rpb24iLGE9PntpZihhLnJlYXNvbiBpbnN0YW5jZW9mIEVycm9yKXtsZXQgYj1hLnJlYXNvbjtfLmN3KGIse3NvdXJjZToidW5oYW5kbGVkcmVqZWN0aW9uIn0pO2IubmFtZT09PSJBYm9ydEVycm9yIiYmKGIubGV2ZWw9IldBUk5JTkciKX1vMChhLnJlYXNvbik7YS5wcmV2ZW50RGVmYXVsdCgpfSl9O2M0PWZ1bmN0aW9uKCl7dHJ5e3JldHVybiEhc2VsZi5zZXNzaW9uU3RvcmFnZX1jYXRjaHtyZXR1cm4hMX19O2Q0PWZ1bmN0aW9uKGEpe2E9YS5tYXRjaCgvKC4qKTo6Lio6Oi4qLyk7aWYoYSE9PW51bGwpcmV0dXJuIGFbMV19OwplND1mdW5jdGlvbihhKXtpZihjNCgpKXt2YXIgYj1PYmplY3Qua2V5cyh3aW5kb3cuc2Vzc2lvblN0b3JhZ2UpO2ZvcihsZXQgYyBvZiBiKWI9ZDQoYyksYj09PXZvaWQgMHx8YS5pbmNsdWRlcyhiKXx8c2VsZi5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGMpfX07aHVhPWZ1bmN0aW9uKCl7aWYoIWM0KCkpcmV0dXJuITE7dmFyIGE9Xy5WaigpLGI9T2JqZWN0LmtleXMod2luZG93LnNlc3Npb25TdG9yYWdlKTtmb3IobGV0IGMgb2YgYilpZihiPWQ0KGMpLGIhPT12b2lkIDAmJmIhPT1hKXJldHVybiEwO3JldHVybiExfTtmND1mdW5jdGlvbigpe1R0YSgpLnRoZW4oYT0+e2EmJihnMChhKSxjMShhKSxhMShhKSxlNChhKSl9KX07Cml1YT1mdW5jdGlvbigpe3ZhciBhPW5ldyBfLk9zO18uamYucGIoYXN5bmMoKT0+e2lmKCFfLngoInl0aWRiX2NsZWFyX29wdGltaXphdGlvbnNfa2lsbHN3aXRjaCIpKXt2YXIgYj1fLlZqKCJjbGVhciIpO2lmKGIuc3RhcnRzV2l0aCgiViIpJiZiLmVuZHNXaXRoKCJ8fCIpKXtiPVtiXTtnMChiKTtjMShiKTthMShiKTtlNChiKTtyZXR1cm59Yj1kc2EoKTtsZXQgYz1odWEoKSxkPWF3YWl0IGVzYSgpLGU9YXdhaXQgRXJhKCk7aWYoIShifHxjfHxkfHxlKSlyZXR1cm59YS5TYigpP2Y0KCk6Xy5iZihhLCJwdWJsaWN5dG5ldHdvcmtzdGF0dXMtb25saW5lIixmNCl9KX07anVhPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgUHJvbWlzZShiPT57d2luZG93LnNldFRpbWVvdXQoYixhKX0pfTsKWXNhPWFzeW5jIGZ1bmN0aW9uKGEsYixjKXtfLlR6KCJhdHRlc3RhdGlvbl9jaGFsbGVuZ2VfZmV0Y2giKTtfLkFxKCJhdHRfZnMiLHZvaWQgMCwiYXR0ZXN0YXRpb25fY2hhbGxlbmdlX2ZldGNoIik7aWYoIWEuail0aHJvdyBuZXcgczIoOSwiTWlzc2luZyBmZXRjaGVyIik7dmFyIGQ9YXdhaXQgYS5qKGIsYyk7Yj1kPy5iZ0NoYWxsZW5nZTtpZighYil0aHJvdyBuZXcgczIoMTUsIk1pc3NpbmcgZmllbGQiKTthLm89ZDthLnYuZm9yRWFjaChlPT57ZShkKX0pO2E9UzIoYik7Xy5BcSgiYXR0X2ZjIix2b2lkIDAsImF0dGVzdGF0aW9uX2NoYWxsZW5nZV9mZXRjaCIpO18uU3ooImF0dGVzdGF0aW9uX2NoYWxsZW5nZV9mZXRjaCIpO3JldHVybiBhfTsKaHRhPWFzeW5jIGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW5ldyBCMSgxMDAsM0U1LC4yNSwyKSxkPXZvaWQgMDtjLnY8MTA7KXRyeXtyZXR1cm4gYy52PjAmJmF3YWl0IGp1YShjLmopLGF3YWl0IGt1YShhLGIpfWNhdGNoKGUpe2Q9ZSBpbnN0YW5jZW9mIHMyP2U6bmV3IHMyKDksZSBpbnN0YW5jZW9mIEVycm9yP2UubWVzc2FnZToiVW5rbm93biIpLEMxKGMpfWlmKGQpdGhyb3cgZDt0aHJvdyBuZXcgczIoOSwiVW5rbm93biBlcnJvciIpO307Cmt1YT1mdW5jdGlvbihhLGIpe2I9V3NhKFhzYShuZXcgbHVhLGIpLGEucmVxdWVzdEtleSk7dmFyIGM9bmV3IF8uY3MsZD1hLkQoKTtkLm9wZW4oIlBPU1QiLGEuQik7ZC5zZXRSZXF1ZXN0SGVhZGVyKCJYLUdvb2ctQXBpLUtleSIsIkFJemFTeUR5VDVXMEpoNDlGMzBQcXF0eWZkZjdwRExGS0xKb0FudyIpO2Quc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbitwcm90b2J1ZiIpO2Qub25sb2FkPSgpPT57aWYoXy5xaihkKSl7bGV0IGU9bXVhKGQucmVzcG9uc2VUZXh0KTtjLnJlc29sdmUoZSl9ZWxzZSBjLnJlamVjdChuZXcgczIoUDEoXy5waihkKSksZC5zdGF0dXNUZXh0KSl9O2Qub25lcnJvcj0oKT0+e2MucmVqZWN0KG5ldyBzMihQMShfLnBqKGQpKSxkLnN0YXR1c1RleHQpKX07ZC5zZW5kKGIuc2VyaWFsaXplKCkpO3JldHVybiBjLnByb21pc2V9OwpudWE9ZnVuY3Rpb24oYSl7dmFyIGI9e2JpY2Y6ZD0+e2Euaj1kfSxibGM6KCk9PmEuZ2V0TGF0ZXN0Q2hhbGxlbmdlUmVzcG9uc2UoKSxiY3I6ZD0+e2Eudi5wdXNoKGQpfX0sYz13aW5kb3c7Yy5udHBldmFzcnM9YjtpZihjLm50cHFmYmVsIT09dm9pZCAwKWZvcihsZXQgZCBvZiBjLm50cHFmYmVsKWQoYik7Yy5udHBxZmJlbD12b2lkIDB9O2c0PWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBFcnJvcil7dmFyIGI9Xy5zYSgieXQubG9nZ2luZy5lcnJvcnMubG9nIik7YiYmYihhLCJXQVJOSU5HIil9fTtpND1mdW5jdGlvbihhLGIpe2E9bmV3IG91YShhLGIpO3B1YShhKTtiPy5DSXx8aDQoYSl9OwpwdWE9ZnVuY3Rpb24oYSl7aWYoIWEudm0pe3ZhciBiPXttYXhBdHRlbXB0czo1LEZyOmEudHRsU2Vjb25kcyoxRTN9O2EuWGcueXRjc2k/LnRpY2s/LigicG90X2lzdCIpO2Eudm09YS5Icyh7b2Q6YS5vZCxuZzp7ZGlzYWJsZTpfLngoImh0bWw1X3dlYl9wb19kaXNhYmxlX3JlbW90ZV9sb2dnaW5nIiksbWI6ImFHSWYiLFN2OnpyYSgpLEt5Ol8ueCgid3BvX2Rpc19sZmRtcyIpPzA6MUUzLElnOmQ9Pnt2YXIgZT1qNC5nZXQoZCk7ZXx8KGU9bmV3IHF1YShkKSxlPW5ldyBUMShlKSxqNC5zZXQoZCxlKSk7cmV0dXJuIGV9fSxMZzpiLHN4OmEuYmdDaGFsbGVuZ2UsRWo6ZzR9KTthLmo9RGF0ZS5ub3coKTtmMihhLnZtLCgpPT57YS5qPURhdGUubm93KCl9KTthLlhnLmJnZXZtYz17cDooKT0+e2Eudm0/LnBhdXNlKCl9LHI6KCk9PnthLnZtPy5yZXN1bWUoKX0sY3I6KCk9PmEudm0/LmNoZWNrRm9yUmVmcmVzaCgpPz9Qcm9taXNlLnJlc29sdmUoKX07a3NhKGEudm0sYXN5bmMoKT0+aDQoYSksClYyKCkpO3ZhciBjPWEudi5iaW5kKGEpO2EueW0mJmEudHRsU2Vjb25kcz4wJiZhLnltLnRoZW4oZD0+e2QubGlzdGVuKCJwdWJsaWN5dG5ldHdvcmtzdGF0dXMtb25saW5lIixjKX0pO2EuR3IoYyl9fTtoND1mdW5jdGlvbihhKXtpZihhLm8pcmV0dXJuIGEubztpZighYS52bSl0aHJvdyBFcnJvcigiVGUiKTthLm89bmV3IHJ1YSh7dm06YS52bSxvZDphLm9kLFFuOiEwLG9uRXJyb3I6ZzQsTGc6YS5Kc30pO3JldHVybiBhLm99O2s0PWZ1bmN0aW9uKGEpe3RyeXtsZXQgYj1KU09OLnBhcnNlKGEpO2lmKGIuYmdDaGFsbGVuZ2UpcmV0dXJuIGJ9Y2F0Y2goYil7fX07CnN1YT1mdW5jdGlvbihhPXdpbmRvdyl7dmFyIGI9e30sYz1hLnl0QXRSO2I/LmtxPy5EcigpO2lmKGMpe2lmKGM9azQoYykpYj8ua3E/LnpnKCJTVUNDRVNTIiksaTQoYyxiKTthLnl0QXRSPXZvaWQgMH1lbHNlIGEueXRBdFJDPWQ9PntpZihkPWs0KGQpKWI/LmtxPy56ZygiU1VDQ0VTUyIpLGk0KGQsYiksYS55dEF0UkM9dm9pZCAwfX07CnR1YT1mdW5jdGlvbihhLGIsYyxkLGUsZil7Yz8oYS5TKDIpLEgwKHkwKGMpLCgpPT57d2luZG93LnRyYXlyaWRlP2w0KGEsZCxlKTooYS5TKDMpLEUwKGMpLF8uSXAobmV3IF8uWGooIkJMOlVMQiIsYCR7Y31gKSkpfSxmKSk6Yj8oZj1fLkNkKCJTQ1JJUFQiKSxiIGluc3RhbmNlb2YgXy5qYj9fLm5iKGYsYik6Zi50ZXh0Q29udGVudD1iLGYubm9uY2U9Xy5pYihkb2N1bWVudCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChmKSxkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKGYpLHdpbmRvdy50cmF5cmlkZT9sNChhLGQsZSk6KGEuUyg0KSxfLklwKG5ldyBfLlhqKCJCTDpVTEJKIikpKSk6Xy5JcChuZXcgXy5YaigiQkw6VUxWIikpfTsKbDQ9ZnVuY3Rpb24oYSxiLGMpe2EuUyg1KTt2YXIgZD0hIWEuaiYmdXVhLmluY2x1ZGVzKF8uUGIoYS5qKXx8IiIpO3RyeXtsZXQgZT1uZXcgZDIoe3Byb2dyYW06YixnbG9iYWxOYW1lOiJ0cmF5cmlkZSIsbmc6e2Rpc2FibGU6IV8ueCgiYXR0X3dlYl9yZWNvcmRfbWV0cmljcyIpfHwhXy54KCJhdHRfc2tpcF9tZXRyaWNzX2Zvcl9jb29raWVsZXNzX2RvbWFpbnNfa3MiKSYmZCxtYjoiYUdJZiJ9fSk7ZS5DZy50aGVuKCgpPT57YS5TKDYpO2MmJmMoYil9KTthLm8oZSl9Y2F0Y2goZSl7YS5TKDcpLGUgaW5zdGFuY2VvZiBFcnJvciYmXy5JcChlKX19O200PWZ1bmN0aW9uKCl7dmFyIGE9Xy5zYSgieXQuYWJ1c2UucGxheWVyQXR0TG9hZGVyIik7cmV0dXJuIGEmJlsiYmd2bWEiLCJiZ3ZtYiIsImJndm1jIl0uZXZlcnkoYj0+YiBpbiBhKT9hOm51bGx9Owp2dWE9ZnVuY3Rpb24oKXt2YXIgYT1fLncoIkNMSUVOVF9FWFBFUklNRU5UX0VWRU5UUyIpO2lmKGEpe3ZhciBiPW5yYSgpO2ZvcihsZXQgYyBvZiBhKWIoYykmJl8uRXAoImdlbmVyaWNDbGllbnRFeHBlcmltZW50RXZlbnQiLHtldmVudFR5cGU6Y30pO2RlbGV0ZSBfLlBpLkNMSUVOVF9FWFBFUklNRU5UX0VWRU5UU319O3d1YT1mdW5jdGlvbihhLGIsYyl7aWYoYS5qKXtsZXQgZD1fLlFiKF8uUHkoYiwia2V5IikpfHwiL1VOS05PV05fUEFUSCI7YS5qLnN0YXJ0KGQpfWE9YztfLngoInd1Z19uZXR3b3JraW5nX2d6aXBfcmVxdWVzdCIpJiYoYT1GcmEoYykpO3JldHVybiBuZXcgd2luZG93LlJlcXVlc3QoYixhKX07Cm80PWFzeW5jIGZ1bmN0aW9uKGEsYixjLGQsZSxmKXtpZihmPy5hYm9ydGVkKXJldHVybiBiLmNhbmNlbCgpLGQ7dmFyIHt2YWx1ZTpoLGRvbmU6a309YXdhaXQgYi5yZWFkKCk7aWYoaylyZXR1cm4gYS5qPy5zdWNjZXNzKCksZDt0cnl7dmFyIGw9Yy5wYXJzZShoKX1jYXRjaChtKXt0aHJvdyBuZXcgbjQoIkZhaWxlZCB0byBwYXJzZSBzdHJlYW1pbmcgcmVzcG9uc2UiLGgpO31pZihsIT1udWxsKWZvcihsZXQgbSBvZiBsKWQucHVzaChtKSxlPy4obSk7cmV0dXJuIG80KGEsYixjLGQsZSxmKX07eHVhPWZ1bmN0aW9uKCl7dmFyIGE9bmF2aWdhdG9yO3JldHVybiBuZXcgUHJvbWlzZSgoYixjKT0+e2Eud2Via2l0VGVtcG9yYXJ5U3RvcmFnZT8ucXVlcnlVc2FnZUFuZFF1b3RhP2Eud2Via2l0VGVtcG9yYXJ5U3RvcmFnZS5xdWVyeVVzYWdlQW5kUXVvdGEoKGQsZSk9PntiKHt1c2FnZTpkLHF1b3RhOmV9KX0sZD0+e2MoZCl9KTpjKEVycm9yKCJWZSIpKX0pfTsKeXVhPWZ1bmN0aW9uKGEsYil7cDQuamMoKS5lc3RpbWF0ZSgpLnRoZW4oYz0+e2EuaigiaWRiUXVvdGFFeGNlZWRlZCIsey4uLmIsaXNTdzpzZWxmLmRvY3VtZW50PT09dm9pZCAwLGlzSWZyYW1lOnNlbGYhPT1zZWxmLnRvcCxkZXZpY2VTdG9yYWdlVXNhZ2VNYnl0ZXM6cTQoYz8udXNhZ2UpLGRldmljZVN0b3JhZ2VRdW90YU1ieXRlczpxNChjPy5xdW90YSl9KX0pfTtxND1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0idW5kZWZpbmVkIj8iLTEiOlN0cmluZyhNYXRoLmNlaWwoYS8xMDQ4NTc2KSl9Owp6dWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz17ZXJyb3JTZXZlcml0eTpiLmZoLnRvU3RyaW5nKCksd2l6RmVhdHVyZUZsYWdzOk9iamVjdC5lbnRyaWVzKGIuQWwpLmpvaW4oIlxuIil9O2I9Yi5maDtiPT09Mz9fLkdwKGEsIkVSUk9SIix2b2lkIDAsdm9pZCAwLHZvaWQgMCxjKTpiPT09MiYmXy5HcChhLCJXQVJOSU5HIix2b2lkIDAsdm9pZCAwLHZvaWQgMCxjKTtfLngoImNvd19pZl9lcnJvcnNfaW5fcG9wdXAiKSYmYj09PTMmJmEubWVzc2FnZS5pbmRleE9mKCI8SWY+IikhPT0tMSYmd2luZG93LmFsZXJ0KGEubWVzc2FnZSl9OwpBdWE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW51bGw7YyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50P2Q9YzohXy54KCJsb2dnaW5nX25lc3RlZF9jb21wb25lbnRfa3MiKSYmQXJyYXkuaXNBcnJheShjKSYmYy5sZW5ndGg9PT0xJiZBcnJheS5pc0FycmF5KGNbMF0pJiZjWzBdLmxlbmd0aD09PTEmJmNbMF1bMF1pbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYoZD1jWzBdWzBdKTthLmNvbXBvbmVudFR5cGUhPT1fLkt2JiZkJiZiJiYhXy54KCJjb3dfbG9nZ2luZ19pbl9jb21wb25lbnRfd3JhcHBlciIpJiZfLnV5KGQsYiwhMCl9O0J1YT1mdW5jdGlvbigpe18ueCgiY293X2xvZ2dpbmdfaW5fY29tcG9uZW50X3dyYXBwZXIiKT8oXy5Ddj0oYSxiKT0+e2IgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmXy51eShiLGEsITApfSxfLnZ2PSgpPT57fSk6KF8uQ3Y9KCk9Pnt9LF8udnY9QXVhKX07CkR1YT1mdW5jdGlvbigpe3ZhciBhPV8ueSgpO18uSnooYSx7amE6cjQsUGE6czR9KTtfLkp6KGEse2phOnQ0LFBhOl8ubm19KTt2YXIgYj12My5qYygpLGM9YS5yZXNvbHZlKHQ0KSxkPWEucmVzb2x2ZShyNCksZT17fTtiJiYoZS5jbGllbnRfbG9jYXRpb249Yik7Xy5KeihhLHtqYTp1NCxNYjpDdWF9KTtfLkp6KGEse2phOl8uSnksTWI6ZX0pO18ueCgibWF3X2VuYWJsZV9uZXR3b3JrX21hY2hpbmUiKSYmZnVhKCk7VnRhKGEucmVzb2x2ZSh1NCksZCxjLGEucmVzb2x2ZShfLkp5KSk7Xy5KeihhLHtqYTpfLkl5LE1iOnozLmluc3RhbmNlfSl9O0d1YT1mdW5jdGlvbihhLGIsYyxkPSgpPT57fSxlPW51bGwpe2I9bmV3IEV1YShhLGIsYyxkLGUpO0Z1YS5zZXQoYSxiKX07CnY0PWZ1bmN0aW9uKGEpe2lmKCFhLm9uUmVhZHlQYXRjaEFwcGxpZWQpe3ZhciBiPWEuYWRkRXZlbnRMaXN0ZW5lcjthLmFkZEV2ZW50TGlzdGVuZXI9KGMsZCk9PntjPT09Im9uUmVhZHkiP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntkKGEpfSk6Yi5jYWxsKGEsYyxkKX07YS5vblJlYWR5UGF0Y2hBcHBsaWVkPSEwfX07SnVhPWZ1bmN0aW9uKGEpe2lmKF8uc2EoInl0LnBsYXllci5BcHBsaWNhdGlvbi5jcmVhdGUiKSlQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57dzQoYSl9KTtlbHNle0h1YShfLmh3KGEud2ViUGxheWVyQ29udGV4dENvbmZpZy50cnVzdGVkSnNVcmwpLCgpPT57dzQoYSl9LCgpPT57YS5pYSgpfHxhLkVqKCl9KTtsZXQgYj1hLndlYlBsYXllckNvbnRleHRDb25maWcudHJ1c3RlZENzc1VybDtiJiZJdWEoXy5odyhiKSl9fTsKdzQ9ZnVuY3Rpb24oYSl7aWYoIWEuaWEoKSl7dmFyIGI9Xy5zYSgieXQucGxheWVyLkFwcGxpY2F0aW9uLmNyZWF0ZSIpO3RyeXthLmFwaT1iKGEuY29udGFpbmVyLHthcmdzOmEucGxheWVyVmFyc30sYS53ZWJQbGF5ZXJDb250ZXh0Q29uZmlnLHZvaWQgMCkuZ2V0SW50ZXJuYWxBcGkoKSx2NChhLmFwaSksYS5hcGkuaXNSZWFkeT0oKT0+ITAsYS5qKGEuYXBpKX1jYXRjaChjKXt0aHJvdyBhLkVqKCksYzt9fX07SXVhPWZ1bmN0aW9uKGEpe3ZhciBiPWB5dHAtJHthLnRvU3RyaW5nKCl9YDtpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYikpe3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtjLmlkPWI7Xy5xYihjLGEsInN0eWxlc2hlZXQiKTsoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8ZG9jdW1lbnQuYm9keSkuYXBwZW5kQ2hpbGQoYyl9fTsKSHVhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1geXRwLSR7YS50b1N0cmluZygpfWAsZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChkKTtpZihlKWUuZGF0YXNldC5mYWlsZWQ/YygpOmUuZGF0YXNldC5sb2FkZWQ/YigpOihlLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+e2MoKX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKCk9PntiKCl9KSk7ZWxzZXt2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtmLmlkPWQ7Zi5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9PntmLmRhdGFzZXQuZmFpbGVkPSJ0cnVlIjtjKCl9KTtmLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCgpPT57Zi5kYXRhc2V0LmxvYWRlZD0idHJ1ZSI7YigpfSk7Xy5vYihmLGEpO2E9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8ZG9jdW1lbnQuYm9keTthLmluc2VydEJlZm9yZShmLGEuZmlyc3RDaGlsZCl9fTsKS3VhPWZ1bmN0aW9uKGEpe18udygiRU5BQkxFX1dFQlZJRVdfQVBJIikmJndpbmRvdy55dHdlYnZpZXdwbGF5ZXImJih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYj0+e3RyeXtsZXQgZD1KU09OLnBhcnNlKGIuZGF0YSksZT1kLm1ldGhvZE5hbWUsZj1kLmFyZ3N8fFtdO2E6e2ZvcihsZXQgaCBvZiBmKWlmKFN0cmluZyhoKS5pbmNsdWRlcygiamF2YXNjcmlwdDoiKSl7dmFyIGM9ITA7YnJlYWsgYX1jPSExfWlmKGMpdGhyb3cgRXJyb3IoIldlYCIrZSsiYCIrZik7aWYoZSYmdHlwZW9mIGFbZV09PT0iZnVuY3Rpb24iKWFbZV0oLi4uZik7ZWxzZSB0aHJvdyBFcnJvcigiWGVgIitlKTt9Y2F0Y2goZCl7Xy5HcChkKX19KSxhLmFkZEV2ZW50TGlzdGVuZXIoIm9uUmVhZHkiLCgpPT57d2luZG93Lnl0d2Vidmlld3BsYXllci5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeSh7dHlwZToib25QbGF5ZXJSZWFkeSJ9KSl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoIm9uU3RhdGVDaGFuZ2UiLApiPT57d2luZG93Lnl0d2Vidmlld3BsYXllci5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeSh7dHlwZToib25TdGF0ZUNoYW5nZSIsc3RhdGU6Yn0pKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigib25FcnJvciIsYj0+e3dpbmRvdy55dHdlYnZpZXdwbGF5ZXIucG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe3R5cGU6Im9uRXJyb3IiLGVycm9yQ29kZTpifSkpfSkpfTt4ND1mdW5jdGlvbihhKXtyZXR1cm4oYS5zZWFyY2goImN1ZSIpPT09MHx8YS5zZWFyY2goImxvYWQiKT09PTApJiZhIT09ImxvYWRNb2R1bGUifTsKeTQ9ZnVuY3Rpb24oYSxiLGMpe2lmKHR5cGVvZiBhPT09InN0cmluZyIpcmV0dXJue3ZpZGVvSWQ6YSxzdGFydFNlY29uZHM6YixzdWdnZXN0ZWRRdWFsaXR5OmN9O2I9e307Zm9yKGxldCBlIG9mIEx1YSlhW2VdJiYoYltlXT1hW2VdKTtpZihhPWEuZW1iZWRDb25maWd8fGEuZW1iZWRfY29uZmlnKXthOmlmKHR5cGVvZiBhPT09InN0cmluZyIpdmFyIGQ9YTtlbHNle2lmKF8uQWEoYSkpdHJ5e2Q9SlNPTi5zdHJpbmdpZnkoYSk7YnJlYWsgYX1jYXRjaChlKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGVtYmVkQ29uZmlnIEpTT04iLGUpfWQ9dm9pZCAwfWIuZW1iZWRfY29uZmlnPWR9cmV0dXJuIGJ9Owp6ND1mdW5jdGlvbihhLGIsYyxkKXtpZihfLkFhKGEpJiYhQXJyYXkuaXNBcnJheShhKSl7Yj0icGxheWxpc3QgbGlzdCBsaXN0VHlwZSBpbmRleCBzdGFydFNlY29uZHMgc3VnZ2VzdGVkUXVhbGl0eSIuc3BsaXQoIiAiKTtjPXt9O2ZvcihkPTA7ZDxiLmxlbmd0aDtkKyspe2xldCBlPWJbZF07YVtlXSYmKGNbZV09YVtlXSl9cmV0dXJuIGN9Yj17aW5kZXg6YixzdGFydFNlY29uZHM6YyxzdWdnZXN0ZWRRdWFsaXR5OmR9O3R5cGVvZiBhPT09InN0cmluZyImJmEubGVuZ3RoPT09MTY/Yi5saXN0PSJQTCIrYTpiLnBsYXlsaXN0PWE7cmV0dXJuIGJ9O0E0PWZ1bmN0aW9uKGEsYixjKXthLkIucHVzaCh7ZXZlbnRUeXBlOmIsbGlzdGVuZXI6Y30pO2EuYXBpLmFkZEV2ZW50TGlzdGVuZXIoYixjKX07CkQ0PWZ1bmN0aW9uKGEpe2lmKGEuailpZihhLnYpYS5zZW5kTWVzc2FnZSgiYWxyZWFkeUluaXRpYWxpemVkIik7ZWxzZSBpZihhLk0pe2Eudj0hMDthLk09ITE7YS5zZW5kTWVzc2FnZSgiaW5pdGlhbERlbGl2ZXJ5IixCNChhKSk7YS5zZW5kTWVzc2FnZSgib25SZWFkeSIpO18uQXEoImVwX2luaXRfYXIiKTtmb3IobGV0IGIgb2YgYS5VKUM0KGEsYik7YS5VPVtdfX07QzQ9ZnVuY3Rpb24oYSxiLGM9YS5qKXtpZihjKXtiLmNoYW5uZWw9IndpZGdldCI7YS5zZXNzaW9uSWQmJihiLmlkPWEuc2Vzc2lvbklkKTt0cnl7bGV0IGQ9SlNPTi5zdHJpbmdpZnkoYik7Yy5wb3N0TWVzc2FnZShkLGEudGFyZ2V0T3JpZ2luKX1jYXRjaChkKXtfLklwKGQpfX19OwpCND1mdW5jdGlvbihhKXtpZighYS5hcGkpcmV0dXJuIG51bGw7dmFyIGI9YS5hcGkuZ2V0QXBpSW50ZXJmYWNlKCk7Xy54YihiLCJnZXRWaWRlb0RhdGEiKTt2YXIgYz17YXBpSW50ZXJmYWNlOmJ9O2ZvcihsZXQgZT0wLGY9Yi5sZW5ndGg7ZTxmO2UrKyl7bGV0IGg9YltlXTtpZihoLnNlYXJjaCgiZ2V0Iik9PT0wfHxoLnNlYXJjaCgiaXMiKT09PTApe3ZhciBkPTA7aC5zZWFyY2goImdldCIpPT09MD9kPTM6aC5zZWFyY2goImlzIik9PT0wJiYoZD0yKTtkPWguY2hhckF0KGQpLnRvTG93ZXJDYXNlKCkraC5zdWJzdHJpbmcoZCsxKTt0cnl7bGV0IGs9YS5hcGlbaF0oKTtjW2RdPWt9Y2F0Y2goayl7fX19Yy52aWRlb0RhdGE9YS5hcGkuZ2V0VmlkZW9EYXRhKCk7Yy5jdXJyZW50VGltZUxhc3RVcGRhdGVkXz1EYXRlLm5vdygpLzFFMztyZXR1cm4gY307RTQ9ZnVuY3Rpb24oYSxiKXthLnNlbmRNZXNzYWdlKCJpbmZvRGVsaXZlcnkiLGIpfTsKTXVhPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZD0+e2I9PT0ib25FcnJvciI/YS5hcGkubG9nQXBpQ2FsbChgJHtifSBpbnZvY2F0aW9uYCxjLGQpOmEuYXBpLmxvZ0FwaUNhbGwoYCR7Yn0gaW52b2NhdGlvbmAsYyk7YS5zZW5kTWVzc2FnZShiLGQpfX07RjQ9ZnVuY3Rpb24oYSxiLGMpe2EuaWEoKXx8KGI9e2lkOmEuaWQsY29tbWFuZDpifSxjJiYoYi5kYXRhPWMpLE51YS5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShiKSxhLm9yaWdpbikpfTtPdWE9ZnVuY3Rpb24oYSxiKXtzd2l0Y2goYSl7Y2FzZSAib25SZWFkeSI6cmV0dXJuO2Nhc2UgIm9uU3RhdGVDaGFuZ2UiOnJldHVybntwbGF5ZXJTdGF0ZTpifTtjYXNlICJvblBsYXliYWNrUXVhbGl0eUNoYW5nZSI6cmV0dXJue3BsYXliYWNrUXVhbGl0eTpifTtjYXNlICJvblBsYXliYWNrUmF0ZUNoYW5nZSI6cmV0dXJue3BsYXliYWNrUmF0ZTpifTtjYXNlICJvbkVycm9yIjpyZXR1cm57ZXJyb3JDb2RlOmJ9fWlmKGIhPW51bGwpcmV0dXJue3ZhbHVlOmJ9fTsKUHVhPWZ1bmN0aW9uKGEsYil7c3dpdGNoKGEpe2Nhc2UgImxvYWRWaWRlb0J5SWQiOnJldHVyblt5NChiKV07Y2FzZSAiY3VlVmlkZW9CeUlkIjpyZXR1cm5beTQoYildO2Nhc2UgImxvYWRWaWRlb0J5UGxheWVyVmFycyI6cmV0dXJuW2JdO2Nhc2UgImN1ZVZpZGVvQnlQbGF5ZXJWYXJzIjpyZXR1cm5bYl07Y2FzZSAibG9hZFBsYXlsaXN0IjpyZXR1cm5bejQoYildO2Nhc2UgImN1ZVBsYXlsaXN0IjpyZXR1cm5bejQoYildO2Nhc2UgInNlZWtUbyI6cmV0dXJuW2Iuc2Vjb25kcyxiLmFsbG93U2Vla0FoZWFkXTtjYXNlICJwbGF5VmlkZW9BdCI6cmV0dXJuW2IuaW5kZXhdO2Nhc2UgInNldFZvbHVtZSI6cmV0dXJuW2Iudm9sdW1lXTtjYXNlICJzZXRQbGF5YmFja1F1YWxpdHkiOnJldHVybltiLnN1Z2dlc3RlZFF1YWxpdHldO2Nhc2UgInNldFBsYXliYWNrUmF0ZSI6cmV0dXJuW2Iuc3VnZ2VzdGVkUmF0ZV07Y2FzZSAic2V0TG9vcCI6cmV0dXJuW2IubG9vcFBsYXlsaXN0c107Y2FzZSAic2V0U2h1ZmZsZSI6cmV0dXJuW2Iuc2h1ZmZsZVBsYXlsaXN0XTsKY2FzZSAiZ2V0T3B0aW9ucyI6cmV0dXJuW2IubW9kdWxlXTtjYXNlICJnZXRPcHRpb24iOnJldHVybltiLm1vZHVsZSxiLm9wdGlvbl07Y2FzZSAic2V0T3B0aW9uIjpyZXR1cm5bYi5tb2R1bGUsYi5vcHRpb24sYi52YWx1ZV07Y2FzZSAiaGFuZGxlR2xvYmFsS2V5RG93biI6cmV0dXJuW2Iua2V5Q29kZSxiLnNoaWZ0S2V5LGIuY3RybEtleSxiLmFsdEtleSxiLm1ldGFLZXksYi5rZXksYi5jb2RlXX1yZXR1cm5bXX07ClF1YT1mdW5jdGlvbihhLGIpe3N3aXRjaChhKXtjYXNlICJpc011dGVkIjpyZXR1cm57bXV0ZWQ6Yn07Y2FzZSAiZ2V0Vm9sdW1lIjpyZXR1cm57dm9sdW1lOmJ9O2Nhc2UgImdldFBsYXliYWNrUmF0ZSI6cmV0dXJue3BsYXliYWNrUmF0ZTpifTtjYXNlICJnZXRBdmFpbGFibGVQbGF5YmFja1JhdGVzIjpyZXR1cm57YXZhaWxhYmxlUGxheWJhY2tSYXRlczpifTtjYXNlICJnZXRWaWRlb0xvYWRlZEZyYWN0aW9uIjpyZXR1cm57dmlkZW9Mb2FkZWRGcmFjdGlvbjpifTtjYXNlICJnZXRQbGF5ZXJTdGF0ZSI6cmV0dXJue3BsYXllclN0YXRlOmJ9O2Nhc2UgImdldEN1cnJlbnRUaW1lIjpyZXR1cm57Y3VycmVudFRpbWU6Yn07Y2FzZSAiZ2V0UGxheWJhY2tRdWFsaXR5IjpyZXR1cm57cGxheWJhY2tRdWFsaXR5OmJ9O2Nhc2UgImdldEF2YWlsYWJsZVF1YWxpdHlMZXZlbHMiOnJldHVybnthdmFpbGFibGVRdWFsaXR5TGV2ZWxzOmJ9O2Nhc2UgImdldER1cmF0aW9uIjpyZXR1cm57ZHVyYXRpb246Yn07CmNhc2UgImdldFZpZGVvVXJsIjpyZXR1cm57dmlkZW9Vcmw6Yn07Y2FzZSAiZ2V0VmlkZW9FbWJlZENvZGUiOnJldHVybnt2aWRlb0VtYmVkQ29kZTpifTtjYXNlICJnZXRQbGF5bGlzdCI6cmV0dXJue3BsYXlsaXN0OmJ9O2Nhc2UgImdldFBsYXlsaXN0SW5kZXgiOnJldHVybntwbGF5bGlzdEluZGV4OmJ9O2Nhc2UgImdldE9wdGlvbnMiOnJldHVybntvcHRpb25zOmJ9O2Nhc2UgImdldE9wdGlvbiI6cmV0dXJue29wdGlvbjpifX19O1J1YT1mdW5jdGlvbigpe3JldHVybiBHNC5pc0luaXRpYWxpemVkKCl9O1N1YT1mdW5jdGlvbihhPXt9KXtyZXR1cm4gRzQuaW52b2tlKGEpfTtUdWE9ZnVuY3Rpb24oKXtpZihfLncoIkVOQUJMRV9KU19BUEkiKSl7dmFyIGE9Yj0+e0g0PWI7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGEpfTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYSl9fTsKVXVhPWZ1bmN0aW9uKCl7Xy5BcSgiZXBfaW5pdF93ZXMiKTt2YXIgYT1fLncoIlBMQVlFUl9DT05GSUciKTtpZighYSl7dmFyIGI9Xy53KCJQTEFZRVJfVkFSUyIpO2ImJihhPXthcmdzOmJ9KX1RMighMCk7YS5hcmdzLnBzPT09Imd2biImJihkb2N1bWVudC5ib2R5LnN0eWxlLmJhY2tncm91bmRDb2xvcj0idHJhbnNwYXJlbnQiKTthLmF0dHJzfHwoYS5hdHRycz17d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsaWQ6InZpZGVvLXBsYXllciJ9KTtiPWRvY3VtZW50LnJlZmVycmVyO3dpbmRvdyE9PXdpbmRvdy50b3AmJmImJmIhPT1kb2N1bWVudC5VUkwmJihhLmFyZ3MubG9hZGVyVXJsPWIpO2I9Xy53KCJXRUJfUExBWUVSX0NPTlRFWFRfQ09ORklHUyIpPy5XRUJfUExBWUVSX0NPTlRFWFRfQ09ORklHX0lEX0VNQkVEREVEX1BMQVlFUjtpZighYi5zZXJpYWxpemVkRm9yY2VkRXhwZXJpbWVudElkcyl7bGV0IGM9YTAod2luZG93LmxvY2F0aW9uLmhyZWYpO2MuZm9yY2VkX2V4cGVyaW1lbnRzJiYKKGIuc2VyaWFsaXplZEZvcmNlZEV4cGVyaW1lbnRJZHM9Yy5mb3JjZWRfZXhwZXJpbWVudHMpfWEuYXJncz8uYXV0b3BsYXk/dDAoIndhdGNoIixbInBicyIsInBidSIsInBicCJdKTphLmFyZ3MmJnd0YShhLmFyZ3MpP3QwKCJ2aWRlb19wcmV2aWV3IixbIm9sIl0pOnQwKCJlbWJlZF9ub192aWRlbyIsWyJlcF9pbml0X2FyIl0pO18ueCgiZW1iZWRzX3VzZV9wbGF5ZXJfaW5zdGFuY2VzX2xpYnJhcnkiKXx8Xy53KCJFTkFCTEVfV0VCVklFV19BUEkiKT8oR3VhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGF5ZXIiKSxiLGM9PntfLncoIkVOQUJMRV9XRUJWSUVXX0FQSSIpPyhjPWMuZ2V0VHJ1c3RlZEFwaSgpLHY0KGMpLEt1YShjKSk6KEk0KGMpLEo0KGMpKX0sKCk9Pnt0aHJvdyBFcnJvcigiWWUiKTt9LGEuYXJncyksXy53KCJFTkFCTEVfV0VCVklFV19BUEkiKXx8SzQoKSxfLkFxKCJlcF9pbml0X3dlZSIpKTooYT1jc2EoYSxiKSxJNChhKSxLNCgpLF8uQXEoImVwX2luaXRfd2VlIiksCko0KGEpKX07STQ9ZnVuY3Rpb24oYSl7TDQ9YTtMNC5hZGRFdmVudExpc3RlbmVyKCJvblZpZGVvRGF0YUNoYW5nZSIsTTQpO0w0LmFkZEV2ZW50TGlzdGVuZXIoIm9uUmVhZHkiLFZ1YSk7YT1fLncoIlBPU1RfTUVTU0FHRV9JRCIsInBsYXllciIpO3ZhciBiPV8udygiUE9TVF9NRVNTQUdFX09SSUdJTiIpO18udygiRU5BQkxFX0pTX0FQSSIpP040PW5ldyBXdWE6Xy53KCJFTkFCTEVfUE9TVF9BUEkiKSYmdHlwZW9mIGE9PT0ic3RyaW5nIiYmdHlwZW9mIGI9PT0ic3RyaW5nIiYmKE40PW5ldyBYdWEoYSxiKSk7SDQ9dm9pZCAwfTsKSzQ9ZnVuY3Rpb24oKXtHdGEoKTtfLngoInl0aWRiX2NyZWF0ZV9sb2dnZXJfZW1iZWRfa2lsbHN3aXRjaCIpfHxCcmEoKTtPNC5qfHwoTzQuaj1uZXcgTzQpO080LmouaW5zdGFsbCh7Zmx1c2hfbG9nczp7Y2FsbGJhY2s6KCk9PntfLmJwKCl9fX0pO18uSWx8fEdyYSgpO0R1YSgpO18uamYucGIoKCk9PntfLnkoKS5yZXNvbHZlKF8uSXkpO2l1YSgpfSk7c2V0VGltZW91dCgoKT0+e18ueCgiYXR0bXVzaSIpJiZzdWEod2luZG93KTt2YXIgYT1fLnkoKS5yZXNvbHZlKF8uSW4oXy5JeSkpO2lmKGEpe2E9bmV3IFl1YShhKTt2YXIgYj17cHJlbG9hZDohXy54KCJlbmFibGVfcnRhX25waSIpLHpzOl8ueCgiYXR0bXVzaSIpfTtiPU9iamVjdC5hc3NpZ24oe3ByZWxvYWQ6ITB9LGIpO2xldCBkPWIuQUk/dm9pZCAwOm5ldyBfLk9zO1A0Lmluc3RhbmNlPW5ldyBQNChhLGIsZCk7YT1QNC5pbnN0YW5jZTtpZigoXy54KCJhdHRtdXNpIil8fF8ueCgiYXR0bXVzaXciKSkmJl8ueCgiYXR0bXVzaV91ZSIpKXthPQp7czphLkIuYmluZChhKSxpcjphLkQuYmluZChhKX07Yj13aW5kb3c7Yi5hdHRtcD1hO2lmKGIuYXR0bXEhPT12b2lkIDApZm9yKHZhciBjIG9mIGIuYXR0bXEpYyhhKTtiLmF0dG1xPXZvaWQgMH1lbHNlIGM9YS5CLmJpbmQoYSksXy5yYSgieXQuYWJhLmF0dCIsYyksYz1hLkQuYmluZChhKSxfLnJhKCJ5dC5hYmEuYXR0MiIsYyl9fSxfLnNqKCJhdHRfaW5pdF9kZWxheSIsMjAwKSk7Xy5ZaigoKT0+e2lmKF8ueCgiZW5hYmxlX3p3X3BpbmciKSl7dmFyIGE9Xy53KCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiLCJVTktOT1dOX0lOVEVSRkFDRSIpLGI9Ii9lc3RhYmxpc2hfenciO2lmKGE9PT0iV0VCX0VNQkVEREVEX1BMQVlFUiIpYj0iL2VtYmVkL2VzdGFibGlzaF96dyI7ZWxzZSBpZihhPT09IlRWSFRNTDUifHxhPT09IlRWSFRNTDVfU0lNUExZIiliPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS90di9lc3RhYmxpc2hfenciO18udygiQ09PS0lFTEVTUyIsITEpJiZhPT09IldFQl9FTUJFRERFRF9QTEFZRVIiPwooYT1uZXcgSGVhZGVycyxhLnNldCgiWC1Hb29nLVZpc2l0b3ItSWQiLF8udygiVklTSVRPUl9EQVRBIikpLGZldGNoKGIse21ldGhvZDoiR0VUIixtb2RlOiJuby1jb3JzIixoZWFkZXJzOmF9KSk6ZmV0Y2goYix7bWV0aG9kOiJHRVQiLG1vZGU6Im5vLWNvcnMiLGNyZWRlbnRpYWxzOiJpbmNsdWRlIn0pfX0pfTtadWE9ZnVuY3Rpb24oKXtRNCgpfTskdWE9ZnVuY3Rpb24oYSl7YS5wZXJzaXN0ZWR8fFE0KCl9OwpRND1mdW5jdGlvbigpe1NyYSgpO3ZhciBhPV8uSHooKSxiPV8uQ3ooMTE5KSxjPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvPjE7ZG9jdW1lbnQuYm9keSYmXy5SdChkb2N1bWVudC5ib2R5LCJleHAtaW52ZXJ0LWxvZ28iKSYmKGMmJiFfLlJ0KGRvY3VtZW50LmJvZHksImludmVydGVkLWhkcGkiKT9fLlN0KGRvY3VtZW50LmJvZHksImludmVydGVkLWhkcGkiKTohYyYmXy5SdChkb2N1bWVudC5ib2R5LCJpbnZlcnRlZC1oZHBpIikmJl8uVHQoZG9jdW1lbnQuYm9keSwiaW52ZXJ0ZWQtaGRwaSIpKTtiIT1jJiYoXy5EeigxMTksYyksYS5zYXZlKCkpfTtNND1mdW5jdGlvbigpe1I0KCl9O1Z1YT1mdW5jdGlvbigpe18uQXEoImVwX2luaXRfcHIiKTtSNCgpfTtSND1mdW5jdGlvbigpe3ZhciBhPUw0LmdldFZpZGVvRGF0YSgxKTthPWEudGl0bGU/YS50aXRsZSsiIC0gWW91VHViZSI6IllvdVR1YmUiO2RvY3VtZW50LnRpdGxlIT09YSYmKGRvY3VtZW50LnRpdGxlPWEpfTsKUzQ9ZnVuY3Rpb24oKXtMNCYmTDQuc2VuZEFiYW5kb25tZW50UGluZyYmTDQuc2VuZEFiYW5kb25tZW50UGluZygpO18udygiUExfQVRUIikmJkc0LmRpc3Bvc2UoKTtfLk10KCQyKTskMi5sZW5ndGg9MDtFMChaMi50b1N0cmluZygpKTtZMj0hMTtfLlFpKCJEQ0xLU1RBVCIsMCk7Xy4kZChONCk7TDQmJihMNC5yZW1vdmVFdmVudExpc3RlbmVyKCJvblZpZGVvRGF0YUNoYW5nZSIsTTQpLEw0LmRlc3Ryb3koKSxMND1udWxsKX07YXZhPWZ1bmN0aW9uKGEpe18ueCgiZW1iZWRzX3dlYl9lbmFibGVfZGlzcG9zZV9wbGF5ZXJfaWZfcGFnZV9ub3RfY2FjaGVkX2tpbGxzd2l0Y2giKT9TNCgpOmEucGVyc2lzdGVkfHxTNCgpfTsKYnZhPWZ1bmN0aW9uKCl7VDR8fChfLmR3KHtKaShhKXthLnByb3BzLmRhdGEmJihhLmVsLmRhdGE9YS5wcm9wcy5kYXRhKX0sS2koYSxiLGMpe2EuZWw/Yi5kYXRhIT09Yy5kYXRhJiYoYS5lbC5kYXRhPWMuZGF0YSk6Xy5JcChuZXcgXy5YaigiSURPTSBjb21wb25lbnQgZWwgaXMgbnVsbCIsYS5qPy5aYykpfX0pLFQ0PSEwKX07Y3ZhPXtFSzohMH07ZHZhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3ZhciBiPVU0O3RoaXMuaj0xNzUyMzczNzU7dGhpcy5jdG9yPWE7dGhpcy5pc1JlcGVhdGVkPTA7dGhpcy5vPV8uTng7dGhpcy5kZWZhdWx0VmFsdWU9dm9pZCAwO3RoaXMudj1iLm1lc3NhZ2VJZCE9bnVsbD9fLnd6OnZvaWQgMH1yZWdpc3Rlcigpe18ucGModGhpcyl9fTsKZHJhPXt0b1N0cmluZzpmdW5jdGlvbihhKXt2YXIgYj1bXSxjPTA7YS09LTIxNDc0ODM2NDg7YltjKytdPSJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIi5jaGFyQXQoYSU1Mik7Zm9yKGE9TWF0aC5mbG9vcihhLzUyKTthPjA7KWJbYysrXT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkiLmNoYXJBdChhJTYyKSxhPU1hdGguZmxvb3IoYS82Mik7cmV0dXJuIGIuam9pbigiIil9fTtBMz17aWRlbnRpdHlUeXBlOiJVTkFVVEhFTlRJQ0FURURfSURFTlRJVFlfVFlQRV9VTktOT1dOIn07SVo9MDtKWj0wO05aPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjKXt0aGlzLmJ1ZmZlcj1hO2lmKGMmJiFiKXRocm93IEVycm9yKCk7fX07T1o9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLm89YT4+PjA7dGhpcy5qPWI+Pj4wfX07ClRaPWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5vPWE+Pj4wO3RoaXMuaj1iPj4+MH19O2xfPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaj1hfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuan19O0VfPV8ueWMoKTtvcmE9L14tPyhbMS05XVswLTldKnwwKShcLlswLTldKyk/JC87VjQ9Xy5seihPXyxfLkpyKTtldmE9Xy5seihPXyxfLkpyKTtXND1fLmx6KGZ1bmN0aW9uKGEsYixjKXtiPXFfKGIpO2IhPW51bGwmJihfLlp5KGEsYyw1KSxhPWEuaixjPU5ffHwoTl89bmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcig4KSkpLGMuc2V0RmxvYXQzMigwLCtiLCEwKSxKWj0wLElaPWMuZ2V0VWludDMyKDAsITApLGVfKGEsSVopKX0sXy5Jcik7WDQ9Xy5seihQXyxfLkZyKTtmdmE9Xy5seihQXyxfLkZyKTsKWTQ9Xy5seihmdW5jdGlvbihhLGIsYyl7Yj1BXyhiKTtpZihiIT1udWxsJiYoZ18oYiksYiE9bnVsbCkpc3dpdGNoKF8uWnkoYSxjLDApLHR5cGVvZiBiKXtjYXNlICJudW1iZXIiOmE9YS5qO0xaKGIpO2RfKGEsSVosSlopO2JyZWFrO2Nhc2UgImJpZ2ludCI6Yz1jXyhiLE9aLFFaKTtkXyhhLmosYy5vLGMuaik7YnJlYWs7ZGVmYXVsdDpjPVNaKGIpLGRfKGEuaixjLm8sYy5qKX19LF8uR3IpO1o0PV8ubHooUV8sXy5Dcik7Z3ZhPV8ubHooUV8sXy5Dcik7Cmh2YT1fLmx6KGZ1bmN0aW9uKGEsYixjKXtiPUFfKGIpO2lmKGIhPW51bGwpc3dpdGNoKGhfKGIpLF8uWnkoYSxjLDEpLGE9YS5qLGhfKGIpLHR5cGVvZiBiKXtjYXNlICJudW1iZXIiOmI8MD8oYj1QWihRWigtYikpLGM9Yi5qLGVfKGEsYi5vKSxlXyhhLGMpKTooS1ooYiksZV8oYSxJWiksZV8oYSxKWikpO2JyZWFrO2Nhc2UgImJpZ2ludCI6Yj1iPEJpZ0ludCgwKT9QWihjXygtYixPWixRWikpOmNfKGIsT1osUVopO2M9Yi5qO2VfKGEsYi5vKTtlXyhhLGMpO2JyZWFrO2RlZmF1bHQ6Yj1iLmxlbmd0aCYmYlswXT09PSItIj9QWihTWihiLnN1YnN0cmluZygxKSkpOlNaKGIpLGM9Yi5qLGVfKGEsYi5vKSxlXyhhLGMpfX0sXy5Icik7aXZhPV8ubHooZnVuY3Rpb24oYSxiLGMpe2lfKGEsYyxBXyhiKSl9LF8uSHIpO2p2YT1NXyhmdW5jdGlvbihhLGIsYyl7Yj1MXyhBXyxiLCExKTtpZihiIT1udWxsKWZvcihsZXQgZD0wO2Q8Yi5sZW5ndGg7ZCsrKWlfKGEsYyxiW2RdKX0sXy5Icik7Cmt2YT1fLmx6KF8ubXosXy5Bcik7JDQ9Xy5seihSXyxfLkJyKTtsdmE9TV8oZnVuY3Rpb24oYSxiLGMpe2I9TF8oXy5YdCxiLCEwKTtpZihiIT1udWxsKWZvcihsZXQgaD0wO2g8Yi5sZW5ndGg7aCsrKXt2YXIgZD1hLGU9YyxmPWJbaF07ZiE9bnVsbCYma18oZCxlLEhaKGYpKX19LF8uQnIpO212YT1fLmx6KFJfLF8uQnIpO2E1PW5ldyBfLmd6KF8ubnosXy56cik7bnZhPU1fKGZ1bmN0aW9uKGEsYixjKXtiPUxfKHJyYSxiLCExKTtpZihiIT1udWxsKWZvcihsZXQgaD0wO2g8Yi5sZW5ndGg7aCsrKXt2YXIgZD1hLGU9YyxmPWJbaF07ZiE9bnVsbCYma18oZCxlLGZyYShmKS5idWZmZXIpfX0sXy5Lcik7YjU9Xy5seihmdW5jdGlvbihhLGIsYyl7Yj1zXyhiKTtiIT1udWxsJiZiIT1udWxsJiYoXy5aeShhLGMsMCksXy5YeShhLmosYikpfSxfLkRyKTtjNT1fLmx6KGZ1bmN0aW9uKGEsYixjKXtqXyhhLGMsXy5zeChiKSl9LF8uTHIpOwpvdmE9TV8oZnVuY3Rpb24oYSxiLGMpe2I9TF8oXy5zeCxiLCEwKTtpZihiIT1udWxsKWZvcihsZXQgZD0wO2Q8Yi5sZW5ndGg7ZCsrKWpfKGEsYyxiW2RdKX0sXy5Mcik7cHZhPV8ubHooZnVuY3Rpb24oYSxiLGMpe2I9Xy5zeChiKTtiIT1udWxsJiYoXy5aeShhLGMsNSksYT1hLmosYS5qLnB1c2goYj4+PjAmMjU1KSxhLmoucHVzaChiPj4+OCYyNTUpLGEuai5wdXNoKGI+Pj4xNiYyNTUpLGEuai5wdXNoKGI+Pj4yNCYyNTUpKX0sXy5Fcik7Xy5nPV8uZVYucHJvdG90eXBlO18uZy5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgXy5lVih0aGlzLngsdGhpcy55KX07Xy5nLmVxdWFscz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIF8uZVYmJih0aGlzPT1hPyEwOnRoaXMmJmE/dGhpcy54PT1hLngmJnRoaXMueT09YS55OiExKX07Xy5nLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLng9TWF0aC5jZWlsKHRoaXMueCk7dGhpcy55PU1hdGguY2VpbCh0aGlzLnkpO3JldHVybiB0aGlzfTsKXy5nLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy54PU1hdGguZmxvb3IodGhpcy54KTt0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpO3JldHVybiB0aGlzfTtfLmcucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpO3RoaXMueT1NYXRoLnJvdW5kKHRoaXMueSk7cmV0dXJuIHRoaXN9O18uZy50cmFuc2xhdGU9ZnVuY3Rpb24oYSxiKXthIGluc3RhbmNlb2YgXy5lVj8odGhpcy54Kz1hLngsdGhpcy55Kz1hLnkpOih0aGlzLngrPU51bWJlcihhKSx0eXBlb2YgYj09PSJudW1iZXIiJiYodGhpcy55Kz1iKSk7cmV0dXJuIHRoaXN9O18uZy5zY2FsZT1mdW5jdGlvbihhLGIpe3RoaXMueCo9YTt0aGlzLnkqPXR5cGVvZiBiPT09Im51bWJlciI/YjphO3JldHVybiB0aGlzfTsKdmFyIHF2YT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fSxydmE9e3N0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjoxLHN0b3BQcm9wYWdhdGlvbjoxLHByZXZlbnRNb3VzZUV2ZW50OjEscHJldmVudE1hbmlwdWxhdGlvbjoxLHByZXZlbnREZWZhdWx0OjEsbGF5ZXJYOjEsbGF5ZXJZOjEsc2NyZWVuWDoxLHNjcmVlblk6MSxzY2FsZToxLHJvdGF0aW9uOjEsd2Via2l0TW92ZW1lbnRYOjEsd2Via2l0TW92ZW1lbnRZOjF9LGMwPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMudHlwZT0iIjt0aGlzLnN0YXRlPXRoaXMuc291cmNlPXRoaXMuZGF0YT10aGlzLmN1cnJlbnRUYXJnZXQ9dGhpcy5yZWxhdGVkVGFyZ2V0PXRoaXMudGFyZ2V0PW51bGw7dGhpcy5jaGFyQ29kZT10aGlzLmtleUNvZGU9MDt0aGlzLm1ldGFLZXk9dGhpcy5zaGlmdEtleT10aGlzLmN0cmxLZXk9dGhpcy5hbHRLZXk9ITE7dGhpcy5yb3RhdGlvbj10aGlzLmNsaWVudFk9dGhpcy5jbGllbnRYPQowO3RoaXMuc2NhbGU9MTt0aGlzLmNoYW5nZWRUb3VjaGVzPXRoaXMudG91Y2hlcz1udWxsO3RyeXtpZihhPWF8fHdpbmRvdy5ldmVudCl7dGhpcy5ldmVudD1hO2ZvcihsZXQgZCBpbiBhKWQgaW4gcnZhfHwodGhpc1tkXT1hW2RdKTt0aGlzLnNjYWxlPWEuc2NhbGU7dGhpcy5yb3RhdGlvbj1hLnJvdGF0aW9uO3ZhciBiPWEudGFyZ2V0fHxhLnNyY0VsZW1lbnQ7YiYmYi5ub2RlVHlwZT09MyYmKGI9Yi5wYXJlbnROb2RlKTt0aGlzLnRhcmdldD1iO3ZhciBjPWEucmVsYXRlZFRhcmdldDtpZihjKXRyeXtjPWMubm9kZU5hbWU/YzpudWxsfWNhdGNoKGQpe2M9bnVsbH1lbHNlIHRoaXMudHlwZT09Im1vdXNlb3ZlciI/Yz1hLmZyb21FbGVtZW50OnRoaXMudHlwZT09Im1vdXNlb3V0IiYmKGM9YS50b0VsZW1lbnQpO3RoaXMucmVsYXRlZFRhcmdldD1jO3RoaXMuY2xpZW50WD1hLmNsaWVudFghPXZvaWQgMD9hLmNsaWVudFg6YS5wYWdlWDt0aGlzLmNsaWVudFk9YS5jbGllbnRZIT12b2lkIDA/CmEuY2xpZW50WTphLnBhZ2VZO3RoaXMua2V5Q29kZT1hLmtleUNvZGU/YS5rZXlDb2RlOmEud2hpY2g7dGhpcy5jaGFyQ29kZT1hLmNoYXJDb2RlfHwodGhpcy50eXBlPT0ia2V5cHJlc3MiP3RoaXMua2V5Q29kZTowKTt0aGlzLmFsdEtleT1hLmFsdEtleTt0aGlzLmN0cmxLZXk9YS5jdHJsS2V5O3RoaXMuc2hpZnRLZXk9YS5zaGlmdEtleTt0aGlzLm1ldGFLZXk9YS5tZXRhS2V5O3RoaXMuaj1hLnBhZ2VYO3RoaXMubz1hLnBhZ2VZfX1jYXRjaChkKXt9fXByZXZlbnREZWZhdWx0KCl7dGhpcy5ldmVudCYmKHRoaXMuZXZlbnQucmV0dXJuVmFsdWU9ITEsdGhpcy5ldmVudC5wcmV2ZW50RGVmYXVsdCYmdGhpcy5ldmVudC5wcmV2ZW50RGVmYXVsdCgpKX1zdG9wUHJvcGFnYXRpb24oKXt0aGlzLmV2ZW50JiYodGhpcy5ldmVudC5jYW5jZWxCdWJibGU9ITAsdGhpcy5ldmVudC5zdG9wUHJvcGFnYXRpb24mJnRoaXMuZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkpfXN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpe3RoaXMuZXZlbnQmJgoodGhpcy5ldmVudC5jYW5jZWxCdWJibGU9ITAsdGhpcy5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24mJnRoaXMuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfX07Xy5IYShlMCxfLmFlKTtlMC5wcm90b3R5cGUuZ2E9ZnVuY3Rpb24oYSl7YS5qPT09dm9pZCAwJiZiMChhKTt2YXIgYj1hLmo7YS5vPT09dm9pZCAwJiZiMChhKTt0aGlzLmo9bmV3IF8uZVYoYixhLm8pfTsKZTAucHJvdG90eXBlLlU9ZnVuY3Rpb24oKXtpZih0aGlzLmope3ZhciBhPSgwLF8uZWwpKCk7aWYodGhpcy5CIT0wKXt2YXIgYj10aGlzLkksYz10aGlzLmosZD1iLngtYy54O2I9Yi55LWMueTtkPU1hdGguc3FydChkKmQrYipiKS8oYS10aGlzLkIpO3RoaXMub1t0aGlzLnZdPU1hdGguYWJzKChkLXRoaXMuRCkvdGhpcy5EKT4uNT8xOjA7Yj0wO2ZvcihjPTA7Yzw0O2MrKyliKz10aGlzLm9bY118fDA7Yj49MyYmdGhpcy5NKCk7dGhpcy5EPWR9dGhpcy5CPWE7dGhpcy5JPXRoaXMuajt0aGlzLnY9KHRoaXMudisxKSU0fX07ZTAucHJvdG90eXBlLmxhPWZ1bmN0aW9uKCl7d2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5oYSk7eXJhKHRoaXMuWil9Owp2YXIgdDM9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5vPXZvaWQgMDt0aGlzLmo9ITE7YS5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmVpbnN0YWxscHJvbXB0IixiPT57Yi5wcmV2ZW50RGVmYXVsdCgpO3RoaXMubz1ifSk7YS5hZGRFdmVudExpc3RlbmVyKCJhcHBpbnN0YWxsZWQiLCgpPT57dGhpcy5qPSEwfSx7b25jZTohMH0pfX0sZjA9MCx1MD17bmV4dDoid25fcyIsYnJvd3NlOiJicl9zIixzZWFyY2g6InNyX3MiLHJlZWw6InJfd3JzIixwbGF5ZXI6InBzX3MifSxScmE9e25leHQ6InduX3IiLGJyb3dzZToiYnJfciIsc2VhcmNoOiJzcl9yIixyZWVsOiJyX3dyciIscGxheWVyOiJwc19yIn0sbTA9e30sczA9eydzY3JpcHRbbmFtZT0ic2NoZWR1bGVyL3NjaGVkdWxlciJdJzoic2oiLCdzY3JpcHRbbmFtZT0icGxheWVyL2Jhc2UiXSc6InBqIiwnbGlua1tyZWw9InByZWxvYWQiXVtuYW1lPSJwbGF5ZXIvZW1iZWQiXSc6InBlaiIsJ2xpbmtbcmVsPSJzdHlsZXNoZWV0Il1bbmFtZT0id3d3LXBsYXllciJdJzoicGMiLAonbGlua1tyZWw9InN0eWxlc2hlZXQiXVtuYW1lPSJwbGF5ZXIvd3d3LXBsYXllciJdJzoicGMiLCdzY3JpcHRbbmFtZT0iZGVza3RvcF9wb2x5bWVyL2Rlc2t0b3BfcG9seW1lciJdJzoiZHBqIiwnbGlua1tyZWw9ImltcG9ydCJdW25hbWU9ImRlc2t0b3BfcG9seW1lciJdJzoiZHBoIiwnc2NyaXB0W25hbWU9Im1vYmlsZS1jMyJdJzoibWNqIiwnbGlua1tyZWw9InN0eWxlc2hlZXQiXVtuYW1lPSJtb2JpbGUtYzMiXSc6Im1jYyIsJ3NjcmlwdFtuYW1lPSJwbGF5ZXItcGxhc21hLWlhcy1waG9uZS9iYXNlIl0nOiJtY3BwaiIsJ3NjcmlwdFtuYW1lPSJwbGF5ZXItcGxhc21hLWlhcy10YWJsZXQvYmFzZSJdJzoibWNwdGoiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9Im1vYmlsZS1wb2x5bWVyLXBsYXllci1pYXMiXSc6Im1jcGMiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9Im1vYmlsZS1wb2x5bWVyLXBsYXllci1zdmctaWFzIl0nOiJtY3BzYyIsJ3NjcmlwdFtuYW1lPSJtb2JpbGVfYmxhemVyX2NvcmVfbW9kIl0nOiJtYmNqIiwKJ2xpbmtbcmVsPSJzdHlsZXNoZWV0Il1bbmFtZT0ibW9iaWxlX2JsYXplcl9jc3MiXSc6Im1iYyIsJ3NjcmlwdFtuYW1lPSJtb2JpbGVfYmxhemVyX2xvZ2dlZF9pbl91c2Vyc19tb2QiXSc6Im1ibGl1aiIsJ3NjcmlwdFtuYW1lPSJtb2JpbGVfYmxhemVyX2xvZ2dlZF9vdXRfdXNlcnNfbW9kIl0nOiJtYmxvdWoiLCdzY3JpcHRbbmFtZT0ibW9iaWxlX2JsYXplcl9ub25jb3JlX21vZCJdJzoibWJuaiIsIiNwbGF5ZXJfY3NzIjoibWJwYyIsJ3NjcmlwdFtuYW1lPSJtb2JpbGVfYmxhemVyX2Rlc2t0b3BwbGF5ZXJfbW9kIl0nOiJtYnBqIiwnbGlua1tyZWw9InN0eWxlc2hlZXQiXVtuYW1lPSJtb2JpbGVfYmxhemVyX3RhYmxldF9jc3MiXSc6Im1idGMiLCdzY3JpcHRbbmFtZT0ibW9iaWxlX2JsYXplcl93YXRjaF9tb2QiXSc6Im1id2oiLCdzY3JpcHRbbmFtZT0iZW1iZWRfY2xpZW50Il0nOiJlY2oiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9ImVtYmVkLXVpIl0nOiJlY2MifSwKWTE9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX0sWjE9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX0sejA9e30sZDU9Y2xhc3N7Y29uc3RydWN0b3IoYSl7YT1hfHx7fTt2YXIgYj17fSxjPXt9O3RoaXMudXJsPWEudXJsfHwiIjt0aGlzLmFyZ3M9YS5hcmdzfHxVXyhiKTt0aGlzLmFzc2V0cz1hLmFzc2V0c3x8e307dGhpcy5hdHRycz1hLmF0dHJzfHxVXyhjKTt0aGlzLmZhbGxiYWNrPWEuZmFsbGJhY2t8fG51bGw7dGhpcy5mYWxsYmFja01lc3NhZ2U9YS5mYWxsYmFja01lc3NhZ2V8fG51bGw7dGhpcy5odG1sNT0hIWEuaHRtbDU7dGhpcy5kaXNhYmxlPWEuZGlzYWJsZXx8e307dGhpcy5sb2FkZWQ9ISFhLmxvYWRlZDt0aGlzLm1lc3NhZ2VzPWEubWVzc2FnZXN8fHt9fWNsb25lKCl7dmFyIGE9bmV3IGQ1O2ZvcihsZXQgYiBpbiB0aGlzKWlmKHRoaXMuaGFzT3duUHJvcGVydHkoYikpe2xldCBjPXRoaXNbYl07Xy54YShjKT09CiJvYmplY3QiP2FbYl09VV8oYyk6YVtiXT1jfXJldHVybiBhfX0sRjA9e30sYnNhPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3RvcihhLGIsYyxkKXtzdXBlcigpO3RoaXMucGxheWVySWQ9Yjt0aGlzLndlYlBsYXllckNvbnRleHRDb25maWc9ZDt0aGlzLkViPXZvaWQgMDt0aGlzLkZhPSExO3RoaXMuYXBpPXt9O3RoaXMuaGE9dGhpcy5CPW51bGw7dGhpcy5NPW5ldyBfLnRoO3RoaXMuaj17fTt0aGlzLlo9dGhpcy5vYT10aGlzLmVsZW1lbnRJZD10aGlzLk1hPXRoaXMuY29uZmlnPW51bGw7dGhpcy5VPSExO3RoaXMudj10aGlzLkQ9bnVsbDt0aGlzLnlhPXt9O3RoaXMuZmM9WyJvblJlYWR5Il07dGhpcy5sYXN0RXJyb3I9bnVsbDt0aGlzLlFhPU5hTjt0aGlzLkk9e307dGhpcy5nYT0wO3RoaXMubz10aGlzLnRhcmdldEVsZW1lbnQ9YTtFWih0aGlzLHRoaXMuTSk7STAodGhpcyk7Yz90aGlzLmdhPXNldFRpbWVvdXQoKCk9Pnt0aGlzLmxvYWROZXdWaWRlb0NvbmZpZyhjKX0sMCk6CmQmJihKMCh0aGlzKSxTMCh0aGlzKSl9Z2V0SWQoKXtyZXR1cm4gdGhpcy5wbGF5ZXJJZH1sb2FkTmV3VmlkZW9Db25maWcoYSl7aWYoIXRoaXMuaWEoKSl7dGhpcy5nYSYmKGNsZWFyVGltZW91dCh0aGlzLmdhKSx0aGlzLmdhPTApO3ZhciBiPWF8fHt9O2IgaW5zdGFuY2VvZiBkNXx8KGI9bmV3IGQ1KGIpKTt0aGlzLmNvbmZpZz1iO3RoaXMuc2V0Q29uZmlnKGEpO1MwKHRoaXMpO3RoaXMuaXNSZWFkeSgpJiZUMCh0aGlzKX19c2V0Q29uZmlnKGEpe3RoaXMuTWE9YTt0aGlzLmNvbmZpZz1QMChhKTtKMCh0aGlzKTt0aGlzLm9hfHwodGhpcy5vYT1VMCh0aGlzLHRoaXMuY29uZmlnLmFyZ3M/LmpzYXBpY2FsbGJhY2t8fCJvbllvdVR1YmVQbGF5ZXJSZWFkeSIpKTt0aGlzLmNvbmZpZy5hcmdzP3RoaXMuY29uZmlnLmFyZ3MuanNhcGljYWxsYmFjaz1udWxsOnRoaXMuY29uZmlnLmFyZ3M9e2pzYXBpY2FsbGJhY2s6bnVsbH07aWYodGhpcy5jb25maWc/LmF0dHJzKXthPXRoaXMuY29uZmlnLmF0dHJzOwpsZXQgYj1hLndpZHRoO2ImJnRoaXMubyYmKHRoaXMuby5zdHlsZS53aWR0aD1YXyhOdW1iZXIoYil8fGIpKTsoYT1hLmhlaWdodCkmJnRoaXMubyYmKHRoaXMuby5zdHlsZS5oZWlnaHQ9WF8oTnVtYmVyKGEpfHxhKSl9fWlzUmVhZHkoKXtyZXR1cm4gdGhpcy5GYX1hZGRFdmVudExpc3RlbmVyKGEsYil7dGhpcy5pYSgpO3ZhciBjPVUwKHRoaXMsYik7YyYmKF8uc2IodGhpcy5mYyxhKT49MHx8dGhpcy5qW2FdfHwoYj1hc2EodGhpcyxhKSx0aGlzLkImJnRoaXMuQihhLGIpKSx0aGlzLk0uc3Vic2NyaWJlKGEsYyksYT09PSJvblJlYWR5IiYmdGhpcy5pc1JlYWR5KCkmJnNldFRpbWVvdXQoKCk9PntjKHRoaXMuYXBpKX0sMCkpfXJlbW92ZUV2ZW50TGlzdGVuZXIoYSxiKXt0aGlzLmlhKCl8fChiPVUwKHRoaXMsYikpJiZ0aGlzLk0udW5zdWJzY3JpYmUoYSxiKX1nZXRQbGF5ZXJUeXBlKCl7cmV0dXJuIHRoaXMuWnx8KEwwKHRoaXMpPyJodG1sNSI6bnVsbCl9Z2V0TGFzdEVycm9yKCl7cmV0dXJuIHRoaXMubGFzdEVycm9yfWNhbmNlbCgpe3RoaXMuRCYmCkcwKFEwKHRoaXMpLHRoaXMuRCk7Y2xlYXJUaW1lb3V0KHRoaXMuUWEpO3RoaXMuVT0hMX1sYSgpe04wKHRoaXMpO2lmKHRoaXMudiYmdGhpcy5jb25maWcmJnRoaXMudi5kZXN0cm95KXRyeXt0aGlzLnYuZGVzdHJveSgpfWNhdGNoKGIpe3ZhciBhPW5ldyBfLlhqKCJQbGF5ZXJQcm94eSBlcnJvciBkdXJpbmcgZGlzcG9zYWwiLHtlcnJvcjpifSk7YS5sZXZlbD0iRVJST1IiO3Rocm93IGE7fXRoaXMueWE9bnVsbDtmb3IoYSBpbiB0aGlzLmopdGhpcy5qLmhhc093blByb3BlcnR5KGEpJiZkZWxldGUgdGhpcy5qW2FdO3RoaXMuTWE9dGhpcy5jb25maWc9dGhpcy5hcGk9bnVsbDtkZWxldGUgdGhpcy50YXJnZXRFbGVtZW50O2RlbGV0ZSB0aGlzLm87c3VwZXIubGEoKX19LFcwPXt9LHh0YT17U0M6IkVNQkVEREVEX1BMQVlFUl9NT0RFX1VOS05PV04iLFBDOiJFTUJFRERFRF9QTEFZRVJfTU9ERV9ERUZBVUxUIixSQzoiRU1CRURERURfUExBWUVSX01PREVfUEZQIixRQzoiRU1CRURERURfUExBWUVSX01PREVfUEZMIn07dmFyIGgxPWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoYSxiLGM9RXJyb3IoKSl7c3VwZXIoKTt0aGlzLmNvZGU9YTtiKz0iOiI7YyBpbnN0YW5jZW9mIEVycm9yPyh0aGlzLm1lc3NhZ2U9YitjLm1lc3NhZ2UsdGhpcy5zdGFjaz1jLnN0YWNrfHwiIik6KHRoaXMubWVzc2FnZT1iK1N0cmluZyhjKSx0aGlzLnN0YWNrPSIiKTtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxuZXcudGFyZ2V0LnByb3RvdHlwZSl9fTt2YXIgZTE9Y2xhc3MgZXh0ZW5kcyBfLmFle2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy52bT1hO3RoaXMubz0ia2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCBmb2N1c2luIGZvY3Vzb3V0IHNlbGVjdCBjb3B5IGN1dCBwYXN0ZSBjaGFuZ2UgY2xpY2sgZGJsY2xpY2sgYXV4Y2xpY2sgcG9pbnRlcm92ZXIgcG9pbnRlcmRvd24gcG9pbnRlcnVwIHBvaW50ZXJtb3ZlIHBvaW50ZXJvdXQgZHJhZ2VudGVyIGRyYWdsZWF2ZSBkcmFnIGRyYWdlbmQgbW91c2VvdmVyIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW91dCB0b3VjaHN0YXJ0IHRvdWNoZW5kIHRvdWNobW92ZSB3aGVlbCIuc3BsaXQoIiAiKTt0aGlzLmo9dm9pZCAwO3RoaXMuQ2c9dGhpcy52bS5wO3RoaXMudj10aGlzLkloLmJpbmQodGhpcyk7dGhpcy5hZGRPbkRpc3Bvc2VDYWxsYmFjaygoKT0+dm9pZCBoc2EodGhpcykpfXNuYXBzaG90KGEpe3JldHVybiB0aGlzLnZtLnMoey4uLihhLktjJiZ7YzphLktjfSksCi4uLihhLllqJiZ7czphLllqfSksLi4uKGEueG4hPT12b2lkIDAmJntwOmEueG59KX0pfUloKGEpe3RoaXMudm0uZShhKX1CaShhLGIpe3JldHVybiB0aGlzLnZtLmMoYSxiLCExKX1WaCgpe3JldHVybiB0aGlzLnZtLmwoKX19O3ZhciBzdmE9Y2xhc3MgZXh0ZW5kcyBfLmFle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKTt0aGlzLmhhPTF9c2hhcmUoKXtpZih0aGlzLmlhKCkpdGhyb3cgRXJyb3IoImplIik7dGhpcy5oYSsrO3JldHVybiB0aGlzfWRpc3Bvc2UoKXstLXRoaXMuaGF8fHN1cGVyLmRpc3Bvc2UoKX19O3ZhciB0dmE9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5vPWE7SzEoYSwiL2NsaWVudF9zdHJlYW16L2JnL2ZycyIsbTEoIm1rIikpfXJlY29yZChhLGIpe3RoaXMuby5yZWNvcmQoIi9jbGllbnRfc3RyZWFtei9iZy9mcnMiLGEsYil9aigpe3JldHVybiB0aGlzLm8uaigiL2NsaWVudF9zdHJlYW16L2JnL2ZycyIpfX0sdXZhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMubz1hO0sxKGEsIi9jbGllbnRfc3RyZWFtei9iZy93cmwiLG0xKCJtbiIpLGwxKCJhYyIpLGwxKCJzYyIpLG0xKCJyayIpLG0xKCJtayIpKX1yZWNvcmQoYSxiLGMsZCxlLGYpe3RoaXMuby5yZWNvcmQoIi9jbGllbnRfc3RyZWFtei9iZy93cmwiLGEsYixjLGQsZSxmKX1qKCl7cmV0dXJuIHRoaXMuby5qKCIvY2xpZW50X3N0cmVhbXovYmcvd3JsIil9fSx2dmE9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy52PWE7TTEoYSwiL2NsaWVudF9zdHJlYW16L2JnL2VjIixtMSgiZW4iKSxtMSgibWsiKSl9byhhLGIpe08xKHRoaXMudiwKIi9jbGllbnRfc3RyZWFtei9iZy9lYyIsYSxiKX1qKCl7cmV0dXJuIHRoaXMudi5qKCIvY2xpZW50X3N0cmVhbXovYmcvZWMiKX19LHd2YT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLm89YTtLMShhLCIvY2xpZW50X3N0cmVhbXovYmcvZWwiLG0xKCJlbiIpLG0xKCJtayIpKX1yZWNvcmQoYSxiLGMpe3RoaXMuby5yZWNvcmQoIi9jbGllbnRfc3RyZWFtei9iZy9lbCIsYSxiLGMpfWooKXtyZXR1cm4gdGhpcy5vLmooIi9jbGllbnRfc3RyZWFtei9iZy9lbCIpfX0seHZhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMudj1hO00xKGEsIi9jbGllbnRfc3RyZWFtei9iZy9jZWMiLGwxKCJlYyIpLG0xKCJtayIpKX1vKGEsYil7TzEodGhpcy52LCIvY2xpZW50X3N0cmVhbXovYmcvY2VjIixhLGIpfWooKXtyZXR1cm4gdGhpcy52LmooIi9jbGllbnRfc3RyZWFtei9iZy9jZWMiKX19LHl2YT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLnY9YTtNMShhLCIvY2xpZW50X3N0cmVhbXovYmcvcG8vY3NjIiwKbDEoImNzIiksbTEoIm1rIikpfW8oYSxiKXtPMSh0aGlzLnYsIi9jbGllbnRfc3RyZWFtei9iZy9wby9jc2MiLGEsYil9aigpe3JldHVybiB0aGlzLnYuaigiL2NsaWVudF9zdHJlYW16L2JnL3BvL2NzYyIpfX0senZhPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMudj1hO00xKGEsIi9jbGllbnRfc3RyZWFtei9iZy9wby9jdGF2IixtMSgiYXYiKSxtMSgibWsiKSl9byhhLGIpe08xKHRoaXMudiwiL2NsaWVudF9zdHJlYW16L2JnL3BvL2N0YXYiLGEsYil9aigpe3JldHVybiB0aGlzLnYuaigiL2NsaWVudF9zdHJlYW16L2JnL3BvL2N0YXYiKX19LEF2YT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLnY9YTtNMShhLCIvY2xpZW50X3N0cmVhbXovYmcvcG8vY3dzYyIsbTEoInN1IiksbTEoIm1rIikpfW8oYSxiKXtPMSh0aGlzLnYsIi9jbGllbnRfc3RyZWFtei9iZy9wby9jd3NjIixhLGIpfWooKXtyZXR1cm4gdGhpcy52LmooIi9jbGllbnRfc3RyZWFtei9iZy9wby9jd3NjIil9fSxCdmE9CmNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMubz1hO0sxKGEsIi9jbGllbnRfc3RyZWFtei9iZy9vZC9wIixtMSgibWsiKSl9cmVjb3JkKGEsYil7dGhpcy5vLnJlY29yZCgiL2NsaWVudF9zdHJlYW16L2JnL29kL3AiLGEsYil9aigpe3JldHVybiB0aGlzLm8uaigiL2NsaWVudF9zdHJlYW16L2JnL29kL3AiKX19LEN2YT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLm89YTtLMShhLCIvY2xpZW50X3N0cmVhbXovYmcvb2QvbiIsbTEoImV0IiksbTEoIm1rIikpfXJlY29yZChhLGIsYyl7dGhpcy5vLnJlY29yZCgiL2NsaWVudF9zdHJlYW16L2JnL29kL24iLGEsYixjKX1qKCl7cmV0dXJuIHRoaXMuby5qKCIvY2xpZW50X3N0cmVhbXovYmcvb2QvbiIpfX07dmFyIE1zYT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTt2YXIgcnNhPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19LHExPVsxLDIsM107dmFyIG9zYT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fSxwMT1bMSwyLDNdO3ZhciBwc2E9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIER2YT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTt2YXIgRXZhPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19LGU1PVsxLDIsM107dmFyIG4xPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O24xLnByb3RvdHlwZS52PV8ucHooWzAsJDQsWzAsZTUsYTUsWzAsJDQsLTEsXy54el0sYTUsWzAsJDQsLTEsWjQsXy54el0sYTUsWzAsJDRdXSxsdmEsXy55eixbMCxfLnl6LFswLHExLG12YSxndmEsa3ZhXSxbMCxwMSxmdmEsZXZhLGE1LFswLF8ueXosWzAsVjQsWDRdXV1dLGl2YSxqdmFdKTt2YXIgRnZhPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O3ZhciBHdmE9Y2xhc3N7YXN5bmMgY29tcHJlc3MoYSl7dmFyIGI9bmV3IENvbXByZXNzaW9uU3RyZWFtKCJnemlwIiksYz0obmV3IFJlc3BvbnNlKGIucmVhZGFibGUpKS5hcnJheUJ1ZmZlcigpO2I9Yi53cml0YWJsZS5nZXRXcml0ZXIoKTthd2FpdCBiLndyaXRlKChuZXcgVGV4dEVuY29kZXIpLmVuY29kZShhKSk7YXdhaXQgYi5jbG9zZSgpO3JldHVybiBuZXcgVWludDhBcnJheShhd2FpdCBjKX1pc1N1cHBvcnRlZChhKXtyZXR1cm4gYTwxMDI0PyExOnR5cGVvZiBDb21wcmVzc2lvblN0cmVhbSE9PSJ1bmRlZmluZWQifX07dmFyIGY1PWNsYXNze2NvbnN0cnVjdG9yKGEsYil7dGhpcy5pbnRlcnZhbE1zPWE7dGhpcy5jYWxsYmFjaz1iO3RoaXMuZW5hYmxlZD0hMTt0aGlzLmo9KCk9Pl8uRWEoKTt0aGlzLm89dGhpcy5qKCl9c2V0SW50ZXJ2YWwoYSl7dGhpcy5pbnRlcnZhbE1zPWE7dGhpcy50aW1lciYmdGhpcy5lbmFibGVkPyh0aGlzLnN0b3AoKSx0aGlzLnN0YXJ0KCkpOnRoaXMudGltZXImJnRoaXMuc3RvcCgpfXN0YXJ0KCl7dGhpcy5lbmFibGVkPSEwO3RoaXMudGltZXJ8fCh0aGlzLnRpbWVyPXNldFRpbWVvdXQoKCk9Pnt0aGlzLnRpY2soKX0sdGhpcy5pbnRlcnZhbE1zKSx0aGlzLm89dGhpcy5qKCkpfXN0b3AoKXt0aGlzLmVuYWJsZWQ9ITE7dGhpcy50aW1lciYmKGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXZvaWQgMCl9dGljaygpe2lmKHRoaXMuZW5hYmxlZCl7bGV0IGE9TWF0aC5tYXgodGhpcy5qKCktdGhpcy5vLDApO2E8dGhpcy5pbnRlcnZhbE1zKi44P3RoaXMudGltZXI9CnNldFRpbWVvdXQoKCk9Pnt0aGlzLnRpY2soKX0sdGhpcy5pbnRlcnZhbE1zLWEpOih0aGlzLnRpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9dm9pZCAwKSx0aGlzLmNhbGxiYWNrKCksdGhpcy5lbmFibGVkJiYodGhpcy5zdG9wKCksdGhpcy5zdGFydCgpKSl9ZWxzZSB0aGlzLnRpbWVyPXZvaWQgMH19O3ZhciBIdmE9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIEl2YT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTt2YXIgSnZhPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1XaSgpe3JldHVybiBLXyh0aGlzKX19O3ZhciB0c2E9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIHgxPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19LHdzYT1TXyh4MSk7dmFyIEExPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O3ZhciB0MT1bInBsYXRmb3JtIiwicGxhdGZvcm1WZXJzaW9uIiwiYXJjaGl0ZWN0dXJlIiwibW9kZWwiLCJ1YUZ1bGxWZXJzaW9uIl0sczE9bmV3IHgxLHUxPW51bGw7dmFyIHoxPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19O3ZhciBLdmE9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEsNCl9fTt2YXIgZzU9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEsMzcpfX07dmFyIEx2YT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSwxOSl9VWgoYSl7cmV0dXJuIENaKHRoaXMsMixhKX19O3ZhciBNdmE9Y2xhc3N7Y29uc3RydWN0b3IoYSxiPSExKXt0aGlzLnlkPWI7dGhpcy52PXRoaXMubG9jYWxlPW51bGw7dGhpcy5vPTA7dGhpcy5pc0ZpbmFsPSExO3RoaXMuaj1uZXcgTHZhO051bWJlci5pc0ludGVnZXIoYSkmJnRoaXMuai5VaChhKTtifHwodGhpcy5sb2NhbGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgibGFuZyIpKTt5MSh0aGlzLG5ldyB6MSl9VWgoYSl7dGhpcy5qLlVoKGEpO3JldHVybiB0aGlzfWJ1aWxkKGEsYj0wLGM9MCxkPW51bGwsZT0wLGY9MCl7aWYoIXRoaXMueWQpe3ZhciBoPXcxKHRoaXMpO3ZhciBrPW5ldyBKdmE7az1DWihrLDEsdGhpcy5vKTtrPV8ucXcoaywyLF8ueHcodGhpcy5pc0ZpbmFsKSk7Yz1fLnF3KGssMyxfLlB3KGM+MD9jOnZvaWQgMCkpO2U9Xy5xdyhjLDQsXy5QdyhlPjA/ZTp2b2lkIDApKTtmPV8ucXcoZSw1LF8uUHcoZj4wP2Y6dm9pZCAwKSk7ZT1mLkRhO2M9ZVtfLkFjXXwwO2Y9Xy5CYyhmLGMpP2Y6Xy4kYyhmLAplLGMpP18uYmQoZixlKTpuZXcgZi5jb25zdHJ1Y3RvcihfLlpjKGUsYywhMCkpO18uS3coaCwxMCxmKX1oPXRoaXMuai5jbG9uZSgpO2Y9RGF0ZS5ub3coKS50b1N0cmluZygpO2g9Xy5xdyhoLDQseV8oZikpO2E9YS5zbGljZSgpO2E9SF8oaCwzLGEpO2QmJihoPW5ldyBIdmEsZD1fLnF3KGgsMTMsXy5QdyhkKSksaD1uZXcgSXZhLGQ9Xy5LdyhoLDIsZCksaD1uZXcgS3ZhLGQ9Xy5LdyhoLDEsZCksZD1DWihkLDIsOSksXy5LdyhhLDE4LGQpKTtiJiZfLnF3KGEsMTQseV8oYikpO3JldHVybiBhfX07QjEucHJvdG90eXBlLnY9MDtCMS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLm89dGhpcy5qPXRoaXMuQjt0aGlzLnY9MH07dmFyIFU0PWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhLDgpfX0sTnZhPVNfKFU0KTt2YXIgaDU7aDU9bmV3IGR2YShjbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fSk7dmFyIE92YT1jbGFzcyBleHRlbmRzIF8uYWV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLmNvbXBvbmVudElkPSIiO3RoaXMuaj1bXTt0aGlzLlFhPSIiO3RoaXMucGFnZUlkPW51bGw7dGhpcy5FYj10aGlzLm9hPS0xO3RoaXMuTT10aGlzLmV4cGVyaW1lbnRJZHM9bnVsbDt0aGlzLmdhPXRoaXMuaGE9dGhpcy5JPXRoaXMuQj0wO3RoaXMuZmM9MTt0aGlzLnRpbWVvdXRNaWxsaXM9MDt0aGlzLnlhPSExO3RoaXMubG9nU291cmNlPWEubG9nU291cmNlO3RoaXMuU2Y9YS5TZnx8KCgpPT57fSk7dGhpcy52PW5ldyBNdmEoYS5sb2dTb3VyY2UsYS55ZCk7dGhpcy5uZXR3b3JrPWEubmV0d29ya3x8bnVsbDt0aGlzLmxmPWEubGZ8fG51bGw7dGhpcy5idWZmZXJTaXplPTFFMzt0aGlzLlU9YS50Qnx8bnVsbDt0aGlzLnNlc3Npb25JbmRleD1hLnNlc3Npb25JbmRleHx8bnVsbDt0aGlzLlpnPWEuWmd8fCExO3RoaXMuWD1udWxsO3RoaXMud2l0aENyZWRlbnRpYWxzPSFhLm5sO3RoaXMueWQ9CmEueWR8fCExO3RoaXMuWj0hdGhpcy55ZCYmISFfLnpkKCkmJiEhXy56ZCgpLm5hdmlnYXRvciYmXy56ZCgpLm5hdmlnYXRvci5zZW5kQmVhY29uIT09dm9pZCAwO3RoaXMuTWE9dHlwZW9mIFVSTFNlYXJjaFBhcmFtcyE9PSJ1bmRlZmluZWQiJiYhIShuZXcgVVJMKEQxKCkpKS5zZWFyY2hQYXJhbXMmJiEhKG5ldyBVUkwoRDEoKSkpLnNlYXJjaFBhcmFtcy5zZXQ7dmFyIGI9djEobmV3IHoxKTt5MSh0aGlzLnYsYik7dGhpcy5EPW5ldyBCMSgxRTQsM0U1LC4xKTthPXlzYSh0aGlzLGEuTm8pO3RoaXMubz1uZXcgZjUodGhpcy5ELmosYSk7dGhpcy5GYT1uZXcgZjUoNkU1LGEpO3RoaXMuWmd8fHRoaXMuRmEuc3RhcnQoKTt0aGlzLnlkfHwoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsKCk9Pntkb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT0iaGlkZGVuIiYmRTEodGhpcyl9KSxfLnpkKCk/LmFkZEV2ZW50TGlzdGVuZXI/LigicGFnZWhpZGUiLCgpPT4Ke0UxKHRoaXMpfSkpfWxhKCl7RTEodGhpcyk7dGhpcy5vLnN0b3AoKTt0aGlzLkZhLnN0b3AoKTtzdXBlci5sYSgpfWRpc3BhdGNoKGEpe2lmKGEgaW5zdGFuY2VvZiBnNSl0aGlzLmxvZyhhKTtlbHNlIHRyeXt2YXIgYj1uZXcgZzUsYz1hLnNlcmlhbGl6ZSgpO3ZhciBkPUJaKGIsOCxjKTt0aGlzLmxvZyhkKX1jYXRjaHt9fWxvZyhhKXtpZih0aGlzLk1hKXthPWEuY2xvbmUoKTt2YXIgYj10aGlzLmZjKys7YT1fLnF3KGEsMjEseV8oYikpO3RoaXMuY29tcG9uZW50SWQmJkJaKGEsMjYsdGhpcy5jb21wb25lbnRJZCk7Yj1hO3t2YXIgYz1fLmVkKGIsMSk7bGV0IGQ9dHlwZW9mIGM7Yz1jPT1udWxsP2M6ZD09PSJiaWdpbnQiP1N0cmluZygoMCxfLnRyKSg2NCxjKSk6cl8oYyk/ZD09PSJzdHJpbmciP3VfKGMpOnZfKGMpOnZvaWQgMH1jPT1udWxsJiYoYz1EYXRlLm5vdygpLGM9TnVtYmVyLmlzRmluaXRlKGMpP2MudG9TdHJpbmcoKToiMCIsXy5xdyhiLDEseV8oYykpKTtjPV8uZWQoYiwKMTUsdm9pZCAwLHZvaWQgMCx6Xyk7YyE9bnVsbCYmKHR5cGVvZiBjPT09ImJpZ2ludCI/KDAsXy5NYykoYyk/Yz1OdW1iZXIoYyk6KGM9KDAsXy50cikoNjQsYyksYz0oMCxfLk1jKShjKT9OdW1iZXIoYyk6U3RyaW5nKGMpKTpjPXJfKGMpP3R5cGVvZiBjPT09Im51bWJlciI/dl8oYyk6dV8oYyk6dm9pZCAwKTtjPT1udWxsJiZfLnF3KGIsMTUseV8oKG5ldyBEYXRlKS5nZXRUaW1lem9uZU9mZnNldCgpKjYwKSk7dGhpcy5leHBlcmltZW50SWRzJiYoYz10aGlzLmV4cGVyaW1lbnRJZHMuY2xvbmUoKSxfLkt3KGIsMTYsYykpO2I9dGhpcy5qLmxlbmd0aC10aGlzLmJ1ZmZlclNpemUrMTtiPjAmJih0aGlzLmouc3BsaWNlKDAsYiksdGhpcy5CKz1iKTt0aGlzLmoucHVzaChhKTt0aGlzLlpnfHx0aGlzLm8uZW5hYmxlZHx8dGhpcy5vLnN0YXJ0KCl9fWZsdXNoKGEsYil7aWYodGhpcy5qLmxlbmd0aD09PTApYSYmYSgpO2Vsc2UgaWYodGhpcy55YSYmdGhpcy5aKXRoaXMudi5vPTMsQXNhKHRoaXMpOwplbHNle3ZhciBjPURhdGUubm93KCk7aWYodGhpcy5FYj5jJiZ0aGlzLm9hPGMpYiYmYigidGhyb3R0bGVkIik7ZWxzZXt0aGlzLm5ldHdvcmsmJih0eXBlb2YgdGhpcy5uZXR3b3JrLldpPT09ImZ1bmN0aW9uIj92c2EodGhpcy52LHRoaXMubmV0d29yay5XaSgpKTp0aGlzLnYubz0wKTt2YXIgZD10aGlzLnYuYnVpbGQodGhpcy5qLHRoaXMuQix0aGlzLkksdGhpcy5sZix0aGlzLmhhLHRoaXMuZ2EpLGU9dGhpcy5TZigpO2lmKGUmJnRoaXMuUWE9PT1lKWImJmIoInN0YWxlLWF1dGgtdG9rZW4iKTtlbHNle3RoaXMuaj1bXTt0aGlzLm8uZW5hYmxlZCYmdGhpcy5vLnN0b3AoKTt0aGlzLkI9MDtjPWQuc2VyaWFsaXplKCk7bGV0IGY7dGhpcy5NJiZ0aGlzLk0uaXNTdXBwb3J0ZWQoYy5sZW5ndGgpJiYoZj10aGlzLk0uY29tcHJlc3MoYykpO2xldCBoPUJzYSh0aGlzLGMsZSksaz1uPT57dGhpcy5ELnJlc2V0KCk7dGhpcy5vLnNldEludGVydmFsKHRoaXMuRC5qKTtpZihuKXt2YXIgcD0KbnVsbDt0cnl7dmFyIHI9SlNPTi5zdHJpbmdpZnkoSlNPTi5wYXJzZShuLnJlcGxhY2UoIildfSdcbiIsIiIpKSk7cD1OdmEocil9Y2F0Y2godil7fWlmKHApe249TnVtYmVyKElfKHAsMSxfLkZjKCItMSIpKSk7bj4wJiYodGhpcy5vYT1EYXRlLm5vdygpLHRoaXMuRWI9dGhpcy5vYStuKTtuPWg1Lmo7KHI9Xy5HYShfLkpjKSkmJnAuRGFbcl0/LltuXSE9bnVsbCYmXy54YyhfLmpyLDMpO249aDUuajtpZihfLkdhKF8ubHIpJiZfLkdhKF8uSmMpJiZ2b2lkIDA9PT1fLmxyKXtyPXAuRGE7dmFyIHQ9cltfLkpjXTtpZih0JiYodD10LkZLKSl0cnl7dChyLG4sY3ZhKX1jYXRjaCh2KXtfLiRiKHYpfX1wPWg1LmN0b3I/aDUubyhwLGg1LmN0b3IsaDUuaixoNS52KTpoNS5vKHAsaDUuaixudWxsLGg1LnYpO2lmKHA9cD09PW51bGw/dm9pZCAwOnApcD1fLnR4KHAsMSwtMSkscCE9PS0xJiYodGhpcy5EPW5ldyBCMShwPDE/MTpwLDNFNSwuMSksdGhpcy5vLnNldEludGVydmFsKHRoaXMuRC5qKSl9fWEmJgphKCk7dGhpcy5JPTB9LGw9KG4scCk9Pnt2YXIgcj1HXyhkLGc1LDMpO3ZhciB0PU51bWJlcihJXyhkLDE0KSk7QzEodGhpcy5EKTt0aGlzLm8uc2V0SW50ZXJ2YWwodGhpcy5ELmopO249PT00MDEmJmUmJih0aGlzLlFhPWUpO3QmJih0aGlzLkIrPXQpO3A9PT12b2lkIDAmJihwPXRoaXMuaXNSZXRyeWFibGUobikpO3AmJih0aGlzLmo9ci5jb25jYXQodGhpcy5qKSx0aGlzLlpnfHx0aGlzLm8uZW5hYmxlZHx8dGhpcy5vLnN0YXJ0KCkpO2ImJmIoIm5ldC1zZW5kLWZhaWxlZCIsbik7Kyt0aGlzLkl9LG09KCk9Pnt0aGlzLm5ldHdvcmsmJnRoaXMubmV0d29yay5zZW5kKGgsayxsKX07Zj9mLnRoZW4obj0+e2guT2pbIkNvbnRlbnQtRW5jb2RpbmciXT0iZ3ppcCI7aC5PalsiQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2JpbmFyeSI7aC5ib2R5PW47aC5HdT0yO20oKX0sKCk9PnttKCl9KTptKCl9fX19aXNSZXRyeWFibGUoYSl7cmV0dXJuIDUwMDw9YSYmYTw2MDB8fGE9PT00MDF8fAphPT09MH19O3ZhciBQdmE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnB1PXR5cGVvZiBBYm9ydENvbnRyb2xsZXIhPT0idW5kZWZpbmVkIn1hc3luYyBzZW5kKGEsYixjKXt2YXIgZD10aGlzLnB1P25ldyBBYm9ydENvbnRyb2xsZXI6dm9pZCAwLGU9ZCYmYS50aW1lb3V0TWlsbGlzPjA/c2V0VGltZW91dCgoKT0+e2QuYWJvcnQoKX0sYS50aW1lb3V0TWlsbGlzKTp2b2lkIDA7dHJ5e2xldCBmPWF3YWl0IGZldGNoKGEudXJsLHttZXRob2Q6YS5yZXF1ZXN0VHlwZSxoZWFkZXJzOnsuLi5hLk9qfSwuLi4oYS5ib2R5JiZ7Ym9keTphLmJvZHl9KSwuLi4oYS53aXRoQ3JlZGVudGlhbHMmJntjcmVkZW50aWFsczoiaW5jbHVkZSJ9KSxzaWduYWw6YS50aW1lb3V0TWlsbGlzJiZkP2Quc2lnbmFsOm51bGx9KTtmLnN0YXR1cz09PTIwMD9iPy4oYXdhaXQgZi50ZXh0KCkpOmM/LihmLnN0YXR1cyl9Y2F0Y2goZil7c3dpdGNoKGY/Lm5hbWUpe2Nhc2UgIkFib3J0RXJyb3IiOmM/Lig0MDgpO2JyZWFrO2RlZmF1bHQ6Yz8uKDQwMCl9fWZpbmFsbHl7Y2xlYXJUaW1lb3V0KGUpfX1XaSgpe3JldHVybiA0fX07dmFyIFMxPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dGhpcy5sb2dTb3VyY2U9MTgyODt0aGlzLnNlc3Npb25JbmRleD0iMCI7dGhpcy5OZT0iaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vbG9nP2Zvcm1hdD1qc29uJmhhc2Zhc3Q9dHJ1ZSI7dGhpcy5uZXR3b3JrPXRoaXMuYnVpbGRMYWJlbD1udWxsO3RoaXMuY29tcG9uZW50SWQ9IiI7dGhpcy5qPXRoaXMubGY9bnVsbDt0aGlzLm89ITE7dGhpcy5wYWdlSWQ9bnVsbDt0aGlzLmJ1ZmZlclNpemU9dm9pZCAwO3RoaXMuWD1udWxsfW5sKCl7dGhpcy52PSEwO3JldHVybiB0aGlzfWJ1aWxkKCl7dGhpcy5uZXR3b3JrfHwodGhpcy5uZXR3b3JrPW5ldyBQdmEpO3ZhciBhPW5ldyBPdmEoe2xvZ1NvdXJjZTp0aGlzLmxvZ1NvdXJjZSxTZjp0aGlzLlNmP3RoaXMuU2Y6Xy5QZCxzZXNzaW9uSW5kZXg6dGhpcy5zZXNzaW9uSW5kZXgsdEI6dGhpcy5OZSx5ZDohMSxaZzohMSxubDp0aGlzLnYsTm86dGhpcy5ObyxuZXR3b3JrOnRoaXMubmV0d29ya30pOwpFWih0aGlzLGEpO2lmKHRoaXMuYnVpbGRMYWJlbCl7dmFyIGI9dGhpcy5idWlsZExhYmVsLGM9dzEoYS52KTtCWihjLDcsYil9YS5NPW5ldyBHdmE7dGhpcy5jb21wb25lbnRJZCYmKGEuY29tcG9uZW50SWQ9dGhpcy5jb21wb25lbnRJZCk7dGhpcy5sZiYmKGEubGY9dGhpcy5sZik7dGhpcy5wYWdlSWQmJihhLnBhZ2VJZD10aGlzLnBhZ2VJZCk7dGhpcy5qJiYoKGM9dGhpcy5qKT8oYS5leHBlcmltZW50SWRzfHwoYS5leHBlcmltZW50SWRzPW5ldyBxdmEpLGI9YS5leHBlcmltZW50SWRzLGM9Yy5zZXJpYWxpemUoKSxCWihiLDQsYykpOmEuZXhwZXJpbWVudElkcyYmXy5xdyhhLmV4cGVyaW1lbnRJZHMsNCkpO3RoaXMubyYmKGEueWE9YS5aKTt4c2EoYS52KTt0aGlzLmJ1ZmZlclNpemUmJihhLmJ1ZmZlclNpemU9dGhpcy5idWZmZXJTaXplKTt0aGlzLm5ldHdvcmsuVWgmJnRoaXMubmV0d29yay5VaCh0aGlzLmxvZ1NvdXJjZSk7dGhpcy5uZXR3b3JrLmlBJiZ0aGlzLm5ldHdvcmsuaUEoYSk7CnJldHVybiBhfX07dmFyIE5zYT1jbGFzcyBleHRlbmRzIF8uYWV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLmxvZ1NvdXJjZT0xODI4O3RoaXMuY29tcG9uZW50SWQ9IiI7YXx8KGE9bmV3IFMxLGEuY29tcG9uZW50SWQ9IiIsRVoodGhpcyxhKSxhPWEuYnVpbGQoKSk7dGhpcy5qPWF9Zmx1c2goYSl7YT1hfHxbXTtpZihhLmxlbmd0aCl7bGV0IGI9bmV3IEZ2YSxjPVtdO2ZvcihsZXQgZD0wO2Q8YS5sZW5ndGg7ZCsrKXtsZXQgZT1hW2RdLGY9cjEoZSk7Yy5wdXNoKGYpO2UuY2xlYXIoKX1IXyhiLDEsYyk7dGhpcy5qLmRpc3BhdGNoKGIpO3RoaXMuai5mbHVzaCgpfX19O3ZhciBIMT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX19O3ZhciBpNT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYyl7dGhpcy5vPWE7dGhpcy52PWI7dGhpcy5maWVsZHM9Y3x8W107dGhpcy5qPW5ldyBNYXB9Y2xlYXIoKXt0aGlzLmouY2xlYXIoKX19O3ZhciBMMT1jbGFzcyBleHRlbmRzIGk1e2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoYSwzLGIpfX07dmFyIEoxPWNsYXNzIGV4dGVuZHMgaTV7Y29uc3RydWN0b3IoYSxiKXtzdXBlcihhLDIsYil9cmVjb3JkKGEsLi4uYil7SHNhKHRoaXMsYSwuLi5iKX19O3ZhciBUMT1jbGFzcyBleHRlbmRzIF8uYWV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLlo9YTt0aGlzLkk9MDt0aGlzLkI9MTAwO3RoaXMuTT0hMTt0aGlzLnY9bmV3IE1hcDt0aGlzLlU9bmV3IFNldDt0aGlzLmZsdXNoSW50ZXJ2YWw9M0U0O3RoaXMubz1uZXcgXy5qeSh0aGlzLmZsdXNoSW50ZXJ2YWwpO3RoaXMuby5saXN0ZW4oInRpY2siLHRoaXMuRCwhMSx0aGlzKTtFWih0aGlzLHRoaXMubyl9c2VuZElzb2xhdGVkUGF5bG9hZChhKXt0aGlzLk09YTt0aGlzLkI9MX1EKCl7dmFyIGE9Wy4uLnRoaXMudi52YWx1ZXMoKV0uZmlsdGVyKGI9PmIuai5zaXplKTthLmxlbmd0aCYmdGhpcy5aLmZsdXNoKGEsdGhpcy5NKTtLc2EoYSk7dGhpcy5JPTA7dGhpcy5vLmVuYWJsZWQmJnRoaXMuby5zdG9wKCl9aihhKXtyZXR1cm4gdGhpcy5VLmhhcyhhKT92b2lkIDA6dGhpcy52LmdldChhKX1yZWNvcmQoYSxiLC4uLmMpeyhhPXRoaXMuaihhKSkmJmEgaW5zdGFuY2VvZiBKMSYmKGEucmVjb3JkKGIsCi4uLmMpLE4xKHRoaXMpKX19O3ZhciBzMj1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoYik7dGhpcy5jb2RlPWE7dGhpcy5tZXRhZGF0YT17fTt0aGlzLm5hbWU9IlJwY0Vycm9yIjtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxuZXcudGFyZ2V0LnByb3RvdHlwZSl9dG9TdHJpbmcoKXt2YXIgYT1gUnBjRXJyb3IoJHtMc2EodGhpcy5jb2RlKXx8U3RyaW5nKHRoaXMuY29kZSl9KWA7dGhpcy5tZXNzYWdlJiYoYSs9IjogIit0aGlzLm1lc3NhZ2UpO3JldHVybiBhfX07dmFyIERzYT1jbGFzc3tzZW5kKGEsYj0oKT0+e30sYz0oKT0+e30pe18ubHkoYS51cmwsZD0+e2Q9ZC50YXJnZXQ7aWYoZC5pc1N1Y2Nlc3MoKSl7dHJ5e3ZhciBlPWQucmE/ZC5yYS5yZXNwb25zZVRleHQ6IiJ9Y2F0Y2goZil7ZT0iIn1iKGUpfWVsc2UgYyhfLlJ4KGQpKX0sYS5yZXF1ZXN0VHlwZSxhLmJvZHksYS5PaixhLnRpbWVvdXRNaWxsaXMsYS53aXRoQ3JlZGVudGlhbHMpfVdpKCl7cmV0dXJuIDF9fTt2YXIgajU9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLlg9YTt0aGlzLmV2ZW50PWI7dGhpcy5zdGFydFRpbWU9UTEoKX1kb25lKCl7dGhpcy5YLnYodGhpcy5ldmVudCxRMSgpLXRoaXMuc3RhcnRUaW1lKX19LGs1PWNsYXNzIGV4dGVuZHMgc3Zhe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKX19LFNzYT1jbGFzcyBleHRlbmRzIGs1e0IoKXt9aigpe312KCl7fUpiKCl7fU0oKXt9SSgpe31vKCl7fVooKXt9RCgpe31VKCl7fX0sUXZhPWNsYXNzIGV4dGVuZHMgazV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLlg9YTt0aGlzLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT52b2lkIHRoaXMuWC5kaXNwb3NlKCkpfXVwZGF0ZShhKXt0aGlzLlguZGlzcG9zZSgpO3RoaXMuWD1hfWooYSl7dGhpcy5YLmooYSl9dihhLGIpe3RoaXMuWC52KGEsYil9SmIoYSl7dGhpcy5YLkpiKGEpfU0oYSl7dGhpcy5YLk0oYSl9SShhLGIpe3RoaXMuWC5JKGEsYil9bygpe3RoaXMuWC5vKCl9WihhKXt0aGlzLlguWihhKX1EKGEpe3RoaXMuWC5EKGEpfVUoYSl7dGhpcy5YLlUoYSl9QihhKXt0aGlzLlguQihhKX19LApSdmE9Y2xhc3MgZXh0ZW5kcyBfLmFle2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoKTt0aGlzLmNhbGxiYWNrPWE7dGhpcy5vPWI7dGhpcy5qPS1iO3RoaXMuYWRkT25EaXNwb3NlQ2FsbGJhY2soKCk9PnZvaWQgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpKX19LFN2YT1jbGFzcyBleHRlbmRzIGs1e2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoKTt0aGlzLm1ldHJpY3M9YTt0aGlzLm1iPWJ9QihhKXt0aGlzLm1ldHJpY3MuQUEucmVjb3JkKGEsdGhpcy5tYil9aihhKXt0aGlzLm1ldHJpY3MuZXZlbnRDb3VudC5vKGEsdGhpcy5tYil9dihhLGIpe3RoaXMubWV0cmljcy5Odi5yZWNvcmQoYixhLHRoaXMubWIpfUpiKGEpe3RoaXMubWV0cmljcy5lcnJvckNvdW50Lm8oYSx0aGlzLm1iKX1aKGEpe3RoaXMubWV0cmljcy5KQi5vKGEsdGhpcy5tYil9RChhKXt0aGlzLm1ldHJpY3MuSnUubyhhLHRoaXMubWIpfVUoYSl7dGhpcy5tZXRyaWNzLklCLm8oYSx0aGlzLm1iKX1NKGEpe3RoaXMubWV0cmljcy5wYXlsb2FkU2l6ZS5yZWNvcmQoYSwKdGhpcy5tYil9SShhLGIpe3RoaXMubWV0cmljcy5YeS5yZWNvcmQoYixhLHRoaXMubWIpfX0sUXNhPWNsYXNzIGV4dGVuZHMgU3Zhe2NvbnN0cnVjdG9yKGEsYj1bXSl7dmFyIGM9e21iOmEubWJ8fCJfIix6bDphLnpsfHxbXSxubTphLm5tfDAsTmU6YS5OZSxGajphLkZqfHwoKCk9Pnt9KSxJZzphLklnfHwoKGUsZik9Pk9zYShlLGYsYy5GaixjLk5lKSl9LGQ9Yy5JZygiNTMiLGMuemwuY29uY2F0KGIpKTtzdXBlcih7QUE6bmV3IHR2YShkKSxlcnJvckNvdW50Om5ldyB4dmEoZCksZXZlbnRDb3VudDpuZXcgdnZhKGQpLE52Om5ldyB3dmEoZCkseUw6bmV3IHV2YShkKSxKQjpuZXcgeXZhKGQpLEp1Om5ldyB6dmEoZCksSUI6bmV3IEF2YShkKSxwYXlsb2FkU2l6ZTpuZXcgQnZhKGQpLFh5Om5ldyBDdmEoZCl9LGMubWIpO3RoaXMub3B0aW9ucz1jO3RoaXMuc2VydmljZT1kO3RoaXMub2E9IWEuSWc7dGhpcy5nYT1uZXcgUnZhKCgpPT52b2lkIHRoaXMuc2VydmljZS5EKCksYy5ubSk7CnRoaXMuYWRkT25EaXNwb3NlQ2FsbGJhY2soKCk9Pnt0aGlzLmdhLmRpc3Bvc2UoKTt0aGlzLm9hJiZ0aGlzLnNlcnZpY2UuZGlzcG9zZSgpfSk7Yi5zbGljZSgpLnNvcnQobHJhKX1vKCl7UHNhKHRoaXMuZ2EpfX07dmFyIFIyPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhLDAsUjIubWVzc2FnZUlkKX19LFR2YT1mdW5jdGlvbihhKXtyZXR1cm4gXy5DYyhiPT5iIGluc3RhbmNlb2YgYSYmIV8uQmMoYikpfShSMik7UjIubWVzc2FnZUlkPSJiZmtqIjt2YXIgaTE9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIGw1PWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX19LFV2YT1TXyhsNSk7dmFyIGQyPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMudj1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjAwKTt0aGlzLmo9bmV3IGw1O2lmKCJjaGFsbGVuZ2UiaW4gYSYmVHZhKGEuY2hhbGxlbmdlKSl7dmFyIGI9Sl8oYS5jaGFsbGVuZ2UsNCx2b2lkIDAsXy53eik7dmFyIGM9Sl8oYS5jaGFsbGVuZ2UsNSx2b2lkIDAsXy53eik7Sl8oYS5jaGFsbGVuZ2UsNyx2b2lkIDAsXy53eikmJih0aGlzLmo9VXZhKEpfKGEuY2hhbGxlbmdlLDcsdm9pZCAwLF8ud3opKSl9ZWxzZSh7cHJvZ3JhbTpiLGdsb2JhbE5hbWU6Y309YSk7dGhpcy5hZGRPbkRpc3Bvc2VDYWxsYmFjayhhc3luYygpPT57dmFyIHt1QTpufT1hd2FpdCB0aGlzLm87bj8uKCl9KTt0aGlzLlg9VTEoYS5uZ3x8e30sdGhpcy5qKTtFWih0aGlzLHRoaXMuWCk7dmFyIGQ9bmV3IF8uY3M7dGhpcy5vPWQucHJvbWlzZTt0aGlzLlguaigidCIpO3ZhciBlPXRoaXMuWC5zaGFyZSgpLGY9bmV3IGo1KGUsCiJ0IiksaD0obixwLHIsdCk9PntpZighdGhpcy5YLmlhKCkpe3ZhciB2PSJrIjtwP3Y9ImgiOnImJih2PSJ1Iik7diE9PSJrIj90IT09MCYmKHRoaXMuWC5qKHYpLHRoaXMuWC52KHYsbikpOnRoaXMudjw9MD8odGhpcy5YLmoodiksdGhpcy5YLnYodixuKSx0aGlzLnY9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjIwMCkpOnRoaXMudi0tfX0saz0obixwLHIsdCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57Zi5kb25lKCk7ZS5vKCk7ZS5kaXNwb3NlKCk7ZC5yZXNvbHZlKHt5dTpuLHVBOnAsQXo6cixOdTp0fSl9KX0sbD1bKG4scCk9Pnt0aGlzLlgudihuLHApfSxuPT57dGhpcy5YLkpiKG4pfSxuPT57dGhpcy5YLk0obil9LChuLHApPT57dGhpcy5YLkkobixwKX1dO2lmKCFfLnVbY10pdGhyb3cgdGhpcy5YLkpiKDI1KSxFcnJvcigibmUiKTtpZighXy51W2NdLmEpdGhyb3cgdGhpcy5YLkpiKDI2KSxFcnJvcigib2UiKTt0cnl7bGV0IG49Xy51W2NdLmE7Yz1bXTtsZXQgcD0KW107dmFyIG09ajEodGhpcy5qKTtmb3IobGV0IHY9MDt2PG0ubGVuZ3RoO3YrKyljLnB1c2gobVt2XSkscC5wdXNoKDEpO2xldCByPWxzYSh0aGlzLmopO2ZvcihtPTA7bTxyLmxlbmd0aDttKyspYy5wdXNoKHJbbV0pLHAucHVzaCgyKTtsZXQgW3RdPW4oYixrLCEwLGEuRnMsaCxbYyxwXSxKXyh0aGlzLmosNSksITEsbCk7dGhpcy5CPXQ7dGhpcy5DZz1kLnByb21pc2UudGhlbigoKT0+e30pfWNhdGNoKG4pe3Rocm93IHRoaXMuWC5KYigyOCksbjt9fXNuYXBzaG90KGEpe2lmKHRoaXMuaWEoKSl0aHJvdyBFcnJvcigicGUiKTt0aGlzLlguaigibiIpO3ZhciBiPXRoaXMuWC5zaGFyZSgpO3JldHVybiB0aGlzLm8udGhlbigoe3l1OmN9KT0+bmV3IFByb21pc2UoZD0+e3ZhciBlPW5ldyBqNShiLCJuIik7YyhmPT57ZS5kb25lKCk7Yi5CKGYubGVuZ3RoKTtiLm8oKTtiLmRpc3Bvc2UoKTtkKGYpfSxbYS5LYyxhLllqLGEuSXMsYS54bl0pfSkpfVhyKGEpe2lmKHRoaXMuaWEoKSl0aHJvdyBFcnJvcigicGUiKTsKdGhpcy5YLmooIm4iKTt2YXIgYj1SMSh0aGlzLlgsKCk9PnRoaXMuQihbYS5LYyxhLllqLGEuSXMsYS54bl0pLCJuIik7dGhpcy5YLkIoYi5sZW5ndGgpO3RoaXMuWC5vKCk7cmV0dXJuIGJ9SWgoYSl7dGhpcy5vLnRoZW4oKHtBejpifSk9PntiPy4oYSl9KX1CaShhLGIpe3JldHVybiB0aGlzLm8udGhlbigoe051OmN9KT0+Yz8uKGEsYiwhMSkpfVZoKCl7cmV0dXJuIHRoaXMuWC5zaGFyZSgpfX07dmFyIFYxPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5wcm9taXNlcz17fTt0aGlzLmo9bnVsbH19O3ZhciBsdWE9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIHEyPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMub3B0aW9ucz1hO3RoaXMuST1uZXcgXy5jczt0aGlzLkNnPXRoaXMuSS5wcm9taXNlO3RoaXMuRD1uZXcgXy5jczt0aGlzLlo9MTt0aGlzLnY9bmV3IF8uY3M7dGhpcy5CPVtdO3RoaXMuaXNQYXVzZWQ9ITE7dGhpcy5Haj1hLkdqfHwoKCk9Pnt9KTt0aGlzLlg9bmV3IFF2YShVMShhLm5nfHx7fSkpO2F0YSh0aGlzLGEub2QsYS5zeCxhLkhLLGEuTkssey4uLlZ2YSwuLi4oYS5MZ3x8e30pfSk7dGhpcy5hZGRPbkRpc3Bvc2VDYWxsYmFjaygoKT0+dm9pZCBidGEodGhpcykpfWFzeW5jIHNuYXBzaG90KGEpe2lmKHRoaXMuaWEoKSl0aHJvdyBFcnJvcigicGUiKTt0aGlzLm98fHRoaXMuTXx8YXdhaXQgdGhpcy5ELnByb21pc2U7aWYodGhpcy5vKXJldHVybiBhd2FpdCB0aGlzLm8uc25hcHNob3QoYSk7dGhyb3cgdGhpcy5NO31wYXVzZSgpe3RoaXMuaWEoKXx8dGhpcy5pc1BhdXNlZHx8KHRoaXMuaXNQYXVzZWQ9CiEwLHRoaXMuaiYmdGhpcy5qLnBhdXNlKCkpfXJlc3VtZSgpeyF0aGlzLmlhKCkmJnRoaXMuaXNQYXVzZWQmJih0aGlzLmlzUGF1c2VkPSExLHRoaXMuaiYmdGhpcy5qLnJlc3VtZSgpKX1hc3luYyBjaGVja0ZvclJlZnJlc2goKXtpZih0aGlzLmlhKCkpdGhyb3cgRXJyb3IoInBlIik7aWYodGhpcy5qKXt2YXIgYT10aGlzLmo7YS5pc0V4cGlyZWQoKT8oZzIoYSksYS5RaCgwKSxhPSEwKTphPSExO2EmJmF3YWl0IHRoaXMudi5wcm9taXNlfWVsc2UgYXdhaXQgdGhpcy52LnByb21pc2V9YXN5bmMgVSgpe2lmKHRoaXMuaWEoKSl0aHJvdyBFcnJvcigicGUiKTt0aGlzLmo/Lm8oKTthd2FpdCB0aGlzLnYucHJvbWlzZX1JaChhKXt0aGlzLm8/LkloPy4oYSl9QmkoYSxiKXtyZXR1cm4gdGhpcy5vPy5CaT8uKGEsYik/P1Byb21pc2UucmVzb2x2ZSgpfWhhbmRsZUVycm9yKGEpe3RoaXMuaWEoKXx8KHRoaXMuTT1hLHRoaXMuRC5yZXNvbHZlKCksdGhpcy5vcHRpb25zLkVqPy4oYSkpfVZoKCl7cmV0dXJuIHRoaXMuWC5zaGFyZSgpfX0sClZ2YT17RnI6NDMyRTUsZWs6M0U1LGxzOjEwLGF2OjFFNCxWdjozRTQscXk6M0U0LG1BOjZFNCxLdjoxRTMsSnY6NkU0LEx2OjZFNSxNdjouMjUsSXY6MixtYXhBdHRlbXB0czoxMH0sYzI9Y2xhc3N7Y29uc3RydWN0b3IoYSxiLGMpe3RoaXMuZW5kVGltZU1zPTA7dGhpcy5qPW51bGw7dGhpcy5pc1BhdXNlZD0hMTt0aGlzLnRpY2s9KCk9PntpZighdGhpcy5pc1BhdXNlZCl7dmFyIGQ9dGhpcy5lbmRUaW1lTXMtRGF0ZS5ub3coKTtkPD10aGlzLnY/KHRoaXMuaj1udWxsLHRoaXMuUWgoMCkpOnRoaXMuaj1zZXRUaW1lb3V0KHRoaXMudGljayxNYXRoLm1pbihkLHRoaXMuZWspKX19O3RoaXMuZWs9Yjt0aGlzLnY9Yzt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZD0+e3RoaXMuUWg9ZH0pO2N0YSh0aGlzLGEpfXBhdXNlKCl7dGhpcy5pc1BhdXNlZHx8KHRoaXMuaXNQYXVzZWQ9ITAsZzIodGhpcykpfXJlc3VtZSgpe3RoaXMuaXNQYXVzZWQmJih0aGlzLmlzUGF1c2VkPSExLHRoaXMudGljaygpKX1vKCl7ZzIodGhpcyk7CnRoaXMuZW5kVGltZU1zPTA7dGhpcy5pc1BhdXNlZD0hMTt0aGlzLlFoKDEpfWlzRXhwaXJlZCgpe3JldHVybiBEYXRlLm5vdygpPnRoaXMuZW5kVGltZU1zfX07dmFyIGR0YT1NYXRoLmltdWw/PygoYSxiKT0+YSpifDApLGoyPVsxOTYsMjAwLDIyNCwxOF0sbTI9Y2xhc3N7Y29uc3RydWN0b3IoYSxiPTAsYz1bXSl7dGhpcy5tYXhJdGVtcz1hO3RoaXMuaj1iO3RoaXMubz1jfXNlcmlhbGl6ZSgpe3JldHVybiBTdHJpbmcodGhpcy5qKSsiLCIrdGhpcy5vLmpvaW4oKX1yYihhLGIpe3ZhciBjPXZvaWQgMDtpZih0aGlzLm9bdGhpcy5qXSE9PWEpe2xldCBkPXRoaXMuby5pbmRleE9mKGEpO2QhPT0tMT8odGhpcy5vLnNwbGljZShkLDEpLGQ8dGhpcy5qJiZ0aGlzLmotLSx0aGlzLm8uc3BsaWNlKHRoaXMuaiwwLGEpKTooYz10aGlzLm9bdGhpcy5qXSx0aGlzLm9bdGhpcy5qXT1hKX10aGlzLmo9KHRoaXMuaisxKSV0aGlzLm1heEl0ZW1zO2E9aDIoImlVNXEtIU85QCQiLHRoaXMuc2VyaWFsaXplKCkpO2MmJmEmJmIoYyk7cmV0dXJuIGF9fSxpc2E9Y2xhc3N7Y29uc3RydWN0b3IoYSxiKXt0aGlzLlg9Yjt0cnl7dmFyIGM9Z2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZSYmCiEhZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtJiYhIWdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSYmISFnbG9iYWxUaGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW19Y2F0Y2goZCl7Yz0hMX1jJiYodGhpcy5pbmRleD1ndGEoYSkpfWooYSxiLGMsZCl7dmFyIGU9dGhpcy5pbmRleD9SMSh0aGlzLlgsKCk9PmV0YSh0aGlzLmluZGV4LGsyKGEpLGIsYyxkKSwiVyIpOiJ1Ijt0aGlzLlguVShlKX1vKGEsYil7dmFyIFtjLGRdPXRoaXMuaW5kZXg/UjEodGhpcy5YLCgpPT5mdGEoazIoYSksYiksIlIiKTpbInUiXTt0aGlzLlguRChjKTtyZXR1cm4gZH19O3ZhciBtNT1jbGFzcyBleHRlbmRzIF8uYWV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLlg9YTt0aGlzLnY9bmV3IF8uY3N9emooYSxiKXt2YXIgYz10aGlzLm9lKGEpO2I/LihjKTtyZXR1cm4gUjEodGhpcy5YLCgpPT5fLnNjKGMsMiksdGhpcy5vKX1zbShhLGIsYyl7cmV0dXJuIFIxKHRoaXMuWCwoKT0+Yj90aGlzLnpqKGEsYyk6dGhpcy5vZShhLGMpLHRoaXMuail9fSx1Mj1jbGFzcyBleHRlbmRzIG01e2NvbnN0cnVjdG9yKGEsYixjLGQpe3N1cGVyKGEpO3RoaXMuQj1iO3RoaXMuST1jO3RoaXMuaj0ibSI7dGhpcy5vPSJ4Ijt0aGlzLkQ9MDtuMih0aGlzLGQpfW9lKGEsYil7dGhpcy5YLmoodGhpcy5qKTsrK3RoaXMuRD49dGhpcy5JJiZ0aGlzLnYucmVzb2x2ZSgpO3ZhciBjPWEoKTthPVIxKHRoaXMuWCwoKT0+dGhpcy5CKGMpLCJDIik7aWYoYT09PXZvaWQgMCl0aHJvdyBuZXcgaDEoMTcsIllOSjpVbmRlZmluZWQiKTtpZighKGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KSl0aHJvdyBuZXcgaDEoMTgsCiJPRE06SW52YWxpZCIpO2I/LihhKTtyZXR1cm4gYX19LGx0YT1jbGFzcyBleHRlbmRzIG01e2NvbnN0cnVjdG9yKGEsYixjKXtzdXBlcihhKTt0aGlzLkI9Yjt0aGlzLmo9ImYiO3RoaXMubz0ieiI7bjIodGhpcyxjKX1vZSgpe3JldHVybiB0aGlzLkJ9fSxrdGE9Y2xhc3MgZXh0ZW5kcyBtNXtjb25zdHJ1Y3RvcihhLGIsYyl7c3VwZXIoYSk7dGhpcy5CPWI7dGhpcy5qPSJ3Ijt0aGlzLm89InoiO24yKHRoaXMsYyl9b2UoKXtyZXR1cm4gUjEodGhpcy5YLCgpPT5fLnVjKHRoaXMuQiksImQiKX16aigpe3JldHVybiB0aGlzLkJ9fSxydGE9Y2xhc3MgZXh0ZW5kcyBtNXtjb25zdHJ1Y3RvcihhLGIpe3N1cGVyKGEpO3RoaXMuZXJyb3I9Yjt0aGlzLmo9ImUiO3RoaXMubz0ieSJ9b2UoKXtpZih0aGlzLkIpcmV0dXJuIHRoaXMuQjt0aGlzLkI9cDIodGhpcyxhPT4iXyIrZXJhKGEpKTtyZXR1cm4gcDIodGhpcyxhPT5hKX19LHF0YT1jbGFzcyBleHRlbmRzIG01e2NvbnN0cnVjdG9yKGEsYil7c3VwZXIoYSk7CnRoaXMuY2xpZW50U3RhdGU9Yjt0aGlzLmo9IlMiO3RoaXMubz0icSJ9b2UoKXt2YXIgYT1NYXRoLmZsb29yKERhdGUubm93KCkvMUUzKSxiPVtNYXRoLnJhbmRvbSgpKjI1NSxNYXRoLnJhbmRvbSgpKjI1NV0sYz1iLmNvbmNhdChbMCx0aGlzLmNsaWVudFN0YXRlXSxbYT4+MjQmMjU1LGE+PjE2JjI1NSxhPj44JjI1NSxhJjI1NV0pO2E9bmV3IFVpbnQ4QXJyYXkoMitjLmxlbmd0aCk7YVswXT0zNDthWzFdPWMubGVuZ3RoO2Euc2V0KGMsMik7Yz1hLnN1YmFycmF5KDIpO2I9Yi5sZW5ndGg7Zm9yKGxldCBkPWI7ZDxjLmxlbmd0aDsrK2QpY1tkXV49Y1tkJWJdO3RoaXMuWC5aKHRoaXMuY2xpZW50U3RhdGUpO3JldHVybiBhfX07dmFyIFd2YT17V3Y6M0U0LEJBOjJFNH0scnVhPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3RvcihhKXtzdXBlcigpO3RoaXMueWc9bmV3IF8uY3M7dGhpcy52PTA7dGhpcy5vPXZvaWQgMDt0aGlzLnN0YXRlPTI7dGhpcy52bT1hLnZtO3RoaXMub2Q9YS5vZDt0aGlzLkxnPXsuLi5XdmEsLi4uKGEuTGd8fHt9KX07dGhpcy5YPWEudm0uVmgoKTt0aGlzLm9uRXJyb3I9YS5vbkVycm9yPz8oKCk9Pnt9KTt0aGlzLlFuPWEuUW58fCExO2lmKFh2YShhKSl7bGV0IGQ9dGhpcy52bTt0aGlzLkI9KCk9PmQuVSgpLmNhdGNoKGU9Pnt0aGlzLm89ZT10aGlzLnJlcG9ydEVycm9yKG5ldyBoMSh0aGlzLmo/MjA6MzIsIlRSRzpEaXNwb3NlZCIsZSkpO3RoaXMuaj8uZGlzcG9zZSgpO3RoaXMuaj12b2lkIDA7dGhpcy55Zy5yZWplY3QoZSl9KTtmMihkLCgpPT52b2lkIHQyKHRoaXMpKTtkLlo9PT0yJiZ0Mih0aGlzKX1lbHNlIHRoaXMuQj1hLmlLLHQyKHRoaXMpO3ZhciBiPXRoaXMuWC5zaGFyZSgpOwpiLmooIm8iKTt2YXIgYz1uZXcgajUoYiwibyIpO3RoaXMueWcucHJvbWlzZS50aGVuKCgpPT57Yy5kb25lKCk7Yi5vKCk7Yi5kaXNwb3NlKCl9LCgpPT52b2lkIGIuZGlzcG9zZSgpKTt0aGlzLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57dGhpcy5qPyh0aGlzLmouZGlzcG9zZSgpLHRoaXMuaj12b2lkIDApOnRoaXMubz90aGlzLlgubygpOih0aGlzLm89dGhpcy5yZXBvcnRFcnJvcihuZXcgaDEoMzIsIlROUDpEaXNwb3NlZCIpKSx0aGlzLlgubygpLHRoaXMueWcucmVqZWN0KHRoaXMubykpfSk7RVoodGhpcyx0aGlzLlgpfW9lKGEpe3JldHVybiB3Mih0aGlzLHsuLi5hfSwhMSl9emooYSl7cmV0dXJuIHcyKHRoaXMsey4uLmF9LCEwKX1yZXBvcnRFcnJvcihhKXt0aGlzLlguSmIoYS5jb2RlKTt0aGlzLm9uRXJyb3IoYSk7cmV0dXJuIGF9fSxYdmE9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQ2MoYj0+e2lmKCEoMCxfLnFyKShiKSlyZXR1cm4hMTtmb3IobGV0IFtjLGRdb2YgT2JqZWN0LmVudHJpZXMoYSkpe2xldCBlPQpjLGY9ZDtpZighKGUgaW4gYikpe2lmKGYuQko9PT0hMCljb250aW51ZTtyZXR1cm4hMX1pZighZihiW2VdKSlyZXR1cm4hMX1yZXR1cm4hMH0pfSh7dm06ZnVuY3Rpb24oYSl7cmV0dXJuIF8uQ2MoYj0+YiBpbnN0YW5jZW9mIGEpfShxMil9LCIiKTt2YXIgWnZhPWNsYXNze2NvbnN0cnVjdG9yKCl7aWYoIW41KXtuNT1uZXcgVDEobmV3IFl2YSk7dmFyIGE9Xy5zaigiY2xpZW50X3N0cmVhbXpfd2ViX2ZsdXNoX2NvdW50IiwtMSk7YSE9PS0xJiYobjUuQj1hKX10aGlzLnY9YT1uNTtNMShhLCIvY2xpZW50X3N0cmVhbXoveW91dHViZS9hYmEvZ2FjIixsMSgidHlwZSIpLGwxKCJzZXF1ZW5jZSIpKX1vKGEsYil7TzEodGhpcy52LCIvY2xpZW50X3N0cmVhbXoveW91dHViZS9hYmEvZ2FjIixhLGIpfWooKXtyZXR1cm4gdGhpcy52LmooIi9jbGllbnRfc3RyZWFtei95b3V0dWJlL2FiYS9nYWMiKX19O3ZhciBtdWE9U18oY2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX0pO3ZhciAkdmE9Y2xhc3MgZXh0ZW5kcyBfLk1ye2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfX07dmFyIG81PVswLHB2YSwtMV07dmFyIHA1PVswLGh2YSwtMV07dmFyIGF3YT1jbGFzcyBleHRlbmRzIF8uTXJ7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9fTt2YXIgYndhPWNsYXNzIGV4dGVuZHMgXy5Ncntjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1oYXNBdHRyaWJ1dGVzKCl7dmFyIGE9dGhpcy5EYTtyZXR1cm4gXy5NeChhLGFbXy5BY118MCxhd2EsMTkpIT09dm9pZCAwfX07dmFyIGN3YT1mdW5jdGlvbihhKXtyZXR1cm4gYj0+Xy5veihiLGEpfShbMCxjNSwtMSxYNCwkNCxvNSwtMSxXNCxaNCxjNSxwNSwkNCxjNSwtMSxbMCxvNSwtMV0sWjQsWTQscDUsVzQsWzAsMSxaNCwtNCxWNCxbMCxXNCwtMSxaNF0sJDQsVzQsXy55eixbMCxjNSxaNF0sWjQsLTEsYzUsLTIsVzQsLTEsYzUsVzQsYzUsWjQsWzAsMyxaNCwtMSw0LG52YV0sVjQsYjUsWzAsYzUsLTEsJDRdLF8ueHpdLCQ0LG92YSxfLnl6LFswLHA1LF8ueXosWzAsJDQsYzVdLFc0LGM1LC0xXSwxLF8ueXosWzAsWTQsLTEsYjVdLGM1LHA1XSk7ejIucHJvdG90eXBlLmlzSW5wdXRWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLkIhPTN9O3oyLnByb3RvdHlwZS5kb25lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQj09PTJ9Owp6Mi5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe2Zvcig7cDxhLmxlbmd0aDspaWYoeTIoYVtwXSkpcCsrLGYudisrO2Vsc2UgYnJlYWs7cmV0dXJuIHA8bH1mdW5jdGlvbiBjKCl7Zm9yKHZhciB0Ozspe3Q9YVtwKytdO2lmKCF0KWJyZWFrO2YudisrO3N3aXRjaChmLmope2Nhc2UgMDp0PT09InsiP2Yuaj0yOnQ9PT0iWyI/Zi5qPTQ6eTIodCl8fEEyKGYsYSxwKTtjb250aW51ZTtjYXNlIDc6Y2FzZSAyOmlmKHkyKHQpKWNvbnRpbnVlO2lmKGYuaj09PTcpaC5wdXNoKDgpO2Vsc2UgaWYodD09PSJ9Iil7ZSgie30iKTtmLmo9ZCgpO2NvbnRpbnVlfWVsc2UgaC5wdXNoKDMpO3Q9PT0nIic/Zi5qPTY6QTIoZixhLHApO2NvbnRpbnVlO2Nhc2UgODpjYXNlIDM6aWYoeTIodCkpY29udGludWU7dD09PSI6Ij8oZi5qPT09MyYmKGgucHVzaCgzKSxmLm8rKyksZi5qPTEpOnQ9PT0ifSI/KGYuby0tLGUoKSxmLmo9ZCgpKTp0PT09IiwiPyhmLmo9PT0zJiZoLnB1c2goMyksCmYuaj03KTpBMihmLGEscCk7Y29udGludWU7Y2FzZSA0OmNhc2UgMTppZih5Mih0KSljb250aW51ZTtpZihmLmo9PT00KWlmKGYubysrLGYuaj0xLHQ9PT0iXSIpe2Yuby0tO2lmKGYubz09PTApe2Yuaj01O3JldHVybn1lKCJbXSIpO2Yuaj1kKCk7Y29udGludWV9ZWxzZSBoLnB1c2goNSk7dD09PSciJz9mLmo9Njp0PT09InsiP2Yuaj0yOnQ9PT0iWyI/Zi5qPTQ6dD09PSJ0Ij9mLmo9OTp0PT09ImYiP2Yuaj0xMjp0PT09Im4iP2Yuaj0xNjp0IT09Ii0iJiYoIjAxMjM0NTY3ODkiLmluZGV4T2YodCkhPT0tMT9mLmo9MjA6QTIoZixhLHApKTtjb250aW51ZTtjYXNlIDU6aWYodD09PSIsIiloLnB1c2goNSksZi5qPTEsZi5vPT09MSYmKG49cCk7ZWxzZSBpZih0PT09Il0iKXtmLm8tLTtpZihmLm89PT0wKXJldHVybjtlKCk7Zi5qPWQoKX1lbHNlIGlmKHkyKHQpKWNvbnRpbnVlO2Vsc2UgQTIoZixhLHApO2NvbnRpbnVlO2Nhc2UgNjpsZXQgdj1wO2E6Zm9yKDs7KXtmb3IoO2YuSz4wOylpZih0PQphW3ArK10sZi5LPT09ND9mLks9MDpmLksrKywhdClicmVhayBhO2lmKHQ9PT0nIicmJiFmLkQpe2Yuaj1kKCk7YnJlYWt9aWYodD09PSJcXCImJiFmLkQmJihmLkQ9ITAsdD1hW3ArK10sIXQpKWJyZWFrO2lmKGYuRClpZihmLkQ9ITEsdD09PSJ1IiYmKGYuSz0xKSx0PWFbcCsrXSljb250aW51ZTtlbHNlIGJyZWFrO2subGFzdEluZGV4PXA7dD1rLmV4ZWMoYSk7aWYoIXQpe3A9YS5sZW5ndGgrMTticmVha31wPXQuaW5kZXgrMTt0PWFbdC5pbmRleF07aWYoIXQpYnJlYWt9Zi52Kz1wLXY7Y29udGludWU7Y2FzZSA5OmlmKCF0KWNvbnRpbnVlO3Q9PT0iciI/Zi5qPTEwOkEyKGYsYSxwKTtjb250aW51ZTtjYXNlIDEwOmlmKCF0KWNvbnRpbnVlO3Q9PT0idSI/Zi5qPTExOkEyKGYsYSxwKTtjb250aW51ZTtjYXNlIDExOmlmKCF0KWNvbnRpbnVlO3Q9PT0iZSI/Zi5qPWQoKTpBMihmLGEscCk7Y29udGludWU7Y2FzZSAxMjppZighdCljb250aW51ZTt0PT09ImEiP2Yuaj0xMzpBMihmLGEsCnApO2NvbnRpbnVlO2Nhc2UgMTM6aWYoIXQpY29udGludWU7dD09PSJsIj9mLmo9MTQ6QTIoZixhLHApO2NvbnRpbnVlO2Nhc2UgMTQ6aWYoIXQpY29udGludWU7dD09PSJzIj9mLmo9MTU6QTIoZixhLHApO2NvbnRpbnVlO2Nhc2UgMTU6aWYoIXQpY29udGludWU7dD09PSJlIj9mLmo9ZCgpOkEyKGYsYSxwKTtjb250aW51ZTtjYXNlIDE2OmlmKCF0KWNvbnRpbnVlO3Q9PT0idSI/Zi5qPTE3OkEyKGYsYSxwKTtjb250aW51ZTtjYXNlIDE3OmlmKCF0KWNvbnRpbnVlO3Q9PT0ibCI/Zi5qPTE4OkEyKGYsYSxwKTtjb250aW51ZTtjYXNlIDE4OmlmKCF0KWNvbnRpbnVlO3Q9PT0ibCI/Zi5qPWQoKTpBMihmLGEscCk7Y29udGludWU7Y2FzZSAxOTp0PT09Ii4iP2Yuaj0yMDpBMihmLGEscCk7Y29udGludWU7Y2FzZSAyMDppZigiMDEyMzQ1Njc4OS5lRSstIi5pbmRleE9mKHQpIT09LTEpY29udGludWU7ZWxzZSBwLS0sZi52LS0sZi5qPWQoKTtjb250aW51ZTtkZWZhdWx0OkEyKGYsYSxwKX19fQpmdW5jdGlvbiBkKCl7dmFyIHQ9aC5wb3AoKTtyZXR1cm4gdCE9bnVsbD90OjF9ZnVuY3Rpb24gZSh0KXtmLm8+MXx8KHR8fCh0PW49PT0tMT9mLkkrYS5zdWJzdHJpbmcobSxwKTphLnN1YnN0cmluZyhuLHApKSxmLlkucHVzaChKU09OLnBhcnNlKHQpKSxuPXApfWZvcih2YXIgZj10aGlzLGg9Zi5VLGs9Zi5aLGw9YS5sZW5ndGgsbT0wLG49LTEscD0wO3A8bDspc3dpdGNoKGYuQil7Y2FzZSAzOnJldHVybiBBMihmLGEscCksbnVsbDtjYXNlIDI6cmV0dXJuIGIoKSYmQTIoZixhLHApLG51bGw7Y2FzZSAwOmlmKGIoKSl7dmFyIHI9YVtwKytdO2YudisrO2lmKHI9PT0iWyIpe2YuQj0xO209cDtmLmo9NDtjb250aW51ZX1lbHNlIEEyKGYsYSxwKX1yZXR1cm4gbnVsbDtjYXNlIDE6cmV0dXJuIGMoKSxmLm89PT0wJiZmLmo9PTU/KGYuQj0yLGYuST1hLnN1YnN0cmluZyhwKSk6Zi5JPW49PT0tMT9mLkkrYS5zdWJzdHJpbmcobSk6YS5zdWJzdHJpbmcobiksZi5ZLmxlbmd0aD4wPyhyPWYuWSwKZi5ZPVtdLHIpOm51bGx9cmV0dXJuIG51bGx9O3ZhciBtcmE9e0dFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfVU5LTk9XTiIsQUQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9GT1JfVEVTVElORyIsa0U6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9SRVNVTUVfVE9fSE9NRV9UVEwiLHdFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfU1RBUlRfVE9fU0hPUlRTX0FOQUxZU0lTX1NMSUNFIixvRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0RFVklDRV9MQVlFUl9TTElDRSIsRkU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9VTklGSUVEX0xBWUVSX1NMSUNFIixKRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1ZJU0lUT1JfTEFZRVJfU0xJQ0UiLHVFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfU0hPV19TSEVFVF9DT01NQU5EX0hBTkRMRVJfQkxPQ0siLApNRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1dJWl9ORVhUX01JR1JBVEVEX0NPTVBPTkVOVCIsTEU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9XSVpfTkVYVF9DSEFOTkVMX05BTUVfVE9PTFRJUCIscEU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9ST1RBVElPTl9MT0NLX1NVUFBPUlRFRCIsekU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9USEVBVEVSX01PREVfRU5BQkxFRCIsU0U6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9XT1VMRF9TSE9XX1BJTl9TVUdHRVNUSU9OIixSRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1dPVUxEX1NIT1dfTE9OR19QUkVTU19FRFVfVE9BU1QiLFFFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfV09VTERfU0hPV19BTUJJRU5UIixBRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1RJTUVfV0FUQ0hFRF9QQU5FTCIsCnJFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfU0VBUkNIX0ZST01fU0VBUkNIX0JBUl9PVkVSTEFZIixURToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1dPVUxEX1NIT1dfVk9JQ0VfU0VBUkNIX0VEVV9UT0FTVCIseUU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9TVUdHRVNURURfTEFOR1VBR0VfU0VMRUNURUQiLFVFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfV09VTERfVFJJR0dFUl9TSE9SVFNfUElQIixKRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0lOX1pQX1ZPSUNFX0NSQVNIWV9TRVQiLGdFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfUkVFTF9GQVNUX1NXSVBFX1NVUFBSRVNTRUQiLGZFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfUkVFTF9GQVNUX1NXSVBFX0FMTE9XRUQiLGlFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfUkVFTF9QVUxMX1RPX1JFRlJFU0hfQVRURU1QVCIsCk5FOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfV09VTERfQkxPQ0tfS0FCVUtJIixqRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1JFRUxfVEFMTF9TQ1JFRU4iLGhFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfUkVFTF9OT1JNQUxfU0NSRUVOIixoRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0FDQ0VTU0lCSUxJVFlfTU9ERV9FTkFCTEVEIixnRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0FDQ0VTU0lCSUxJVFlfTU9ERV9ESVNBQkxFRCIsaUQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9BVVRPUExBWV9FTkFCTEVEIixqRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0NBU1RfTUFUQ0hfT0NDVVJSRUQiLHREOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfRU1DM0RTX0VMSUdJQkxFIix3RDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0VORFNDUkVFTl9UUklHR0VSRUQiLApkRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1BPU1RQTEFZX1RSSUdHRVJFRCIsY0U6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9QT1NUUExBWV9MQUNUX1RIUkVTSE9MRF9FWENFRURFRCIsQ0Q6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9JREVOVElUSUVTX1NUQVRFX01BVENIRURfT05fUkVNT1RFX0NPTk5FQ1RJT04iLEVEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfSURFTlRJVElFU19TVEFURV9TV0lUQ0hBQkxFX09OX1JFTU9URV9DT05ORUNUSU9OIixERDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0lERU5USVRJRVNfU1RBVEVfTUlTQVRUUklCVVRFRF9PTl9SRU1PVEVfQ09OTkVDVElPTiIsSEQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9JREVOVElUSUVTX1RWX0lTX1NJR05FRF9JTl9PTl9SRU1PVEVfQ09OTkVDVElPTiIsREU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9UVl9TVEFSVF9UWVBFX0NPTERfT05fUkVNT1RFX0NPTk5FQ1RJT04iLApFRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1RWX1NUQVJUX1RZUEVfTk9OX0NPTERfT05fUkVNT1RFX0NPTk5FQ1RJT04iLFlEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfT05fUkVNT1RFX0NPTk5FQ1RJT04iLG5EOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfQ09CQUxUX1BFUlNJU1RFTlRfU0VUVElOR1NfVEVTVF9WQUxJRCIsbEQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9DT0JBTFRfUEVSU0lTVEVOVF9TRVRUSU5HU19URVNUX0lOVkFMSUQiLG1EOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfQ09CQUxUX1BFUlNJU1RFTlRfU0VUVElOR1NfVEVTVF9VTkRFRklORUQiLGtEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfQ09CQUxUX1BFUlNJU1RFTlRfU0VUVElOR1NfVEVTVF9ERUZJTkVEIixNRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0xBQ1RfVEhSRVNIT0xEX0VYQ0VFREVEIiwKcUU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9ST1VORF9UUklQX0hBTkRMSU5HX09OX1JFTU9URV9DT05ORUNUSU9OIixHRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0lERU5USVRJRVNfU1RBVEVfU1dJVENIRURfT05fUkVNT1RFX0NPTk5FQ1RJT05fQkVGT1JFX0FQUF9SRUxPQUQiLEZEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfSURFTlRJVElFU19TVEFURV9TV0lUQ0hFRF9PTl9SRU1PVEVfQ09OTkVDVElPTl9BRlRFUl9BUFBfUkVMT0FEIix1RDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0VNQzNEU19JTkVMSUdJQkxFIixCRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1RWSFRNTDVfTUlEX1JPTExfVEhSRVNIT0xEX1JFQUNIRUQiLHlEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfRVhQX0NPQkFMVF9IVFRQM19DT05GSUdfUEVORElORyIsCnhEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfRVhQX0NPQkFMVF9IVFRQM19DT05GSUdfQUNUSVZBVEVEIix2RDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0VNQzNEU19NMl9FTElHSUJMRSIsbkU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9ST1RBVEVfREVWSUNFX1RPX0xBTkRTQ0FQRSIsb0U6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9ST1RBVEVfREVWSUNFX1RPX1BPUlRSQUlUIixzRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0VNQkVEU19GQUNFT0ZGX1VJX0VWRU5UIix6RDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0VYUF9DT0JBTFRfSFRUUDNfQ09ORklHX1JFQ0VJVkVEIixyRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0VMSUdJQkxFX1RPX1NVUFBSRVNTX1RSQU5TUE9SVF9DT05UUk9MU19CVVRUT05TIiwKSEU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9VU0VSX0hBU19USEVBVEVSX01PREVfQ09PS0lFX0VOQUJMRUQiLHFEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfRE9DVU1FTlRfUElDVFVSRV9JTl9QSUNUVVJFX1NVUFBPUlRFRCIsdEU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9TSE9SVFNfTk9OX0RFRkFVTFRfQVNQRUNUX1JBVElPIixiRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1BMQVlFUl9JTl9TUVVFRVpFQkFDSyIsTkQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9MSVZFX0NSRUFUT1JfQVJfR0lGVF9SRUNFSVZFRCIsbUU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9SRVRVUk5FRF9UT19WSURFT19BRlRFUl9GQUlMRURfQVRURU1QVF9UT19CQUNLR1JPVU5EIixPRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1dPVUxEX0VOVEVSX0FVVE9fWk9PTSIsClpEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfUEFTU0lWRV9JTl9DT05UUk9MIixhRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1BBU1NJVkVfSU5fVFJFQVRNRU5UIixwRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0RJU0FCTEVfUExBWUVSX09QRU5fT05fRlVMTFNDUkVFTiIsVEQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9NRFhfUkVDT05ORUNUX1dJVEhfUkVUUlkiLHZFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfU0lOR0xFX0NPTFVNTl9HUklEX1RSSUdHRVJFRCIsUEQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9NRFhfQ09OTkVDVElPTl9USU1FT1VUIixPRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX0xJVkVfR0hPU1RfTE9BRElOR19FTElHSUJMRSIseEU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9TVFJFQU1FRF9HRVRfV0FUQ0hfU1VQUE9SVEVEIiwKS0U6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9XRUJWSUVXX0NPTlRBSU5FUiIsUEU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9XT1VMRF9FTlRFUl9QSVAiLGVFOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfUFJFTUlVTV9MSVRFX1VQU0VMTF9FTElHSUJMRSIsVkQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9PRkZMSU5FX1JFQ09WRVJZX0JST0FEIixYRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX09GRkxJTkVfUkVDT1ZFUllfVU5QTEFZQUJMRSIsV0Q6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9PRkZMSU5FX1JFQ09WRVJZX1NUUklDVCIsS0Q6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9JT1NfU0hPUlRfT1JJRU5UQVRJT05fQ0hBTkdFIixDRToiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX1RWSFRNTDVfUExBWUVSX0VSUk9SX09WRVJMQVlfVFJJR0dFUkVEIiwKc0U6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9TSEFERVJfTElHSFRfRU5BQkxFRCIsSUQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9JREVOVElUWV9NSVNNQVRDSF9ERVRFQ1RFRCIsbEU6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9SRVNVTUVfVE9fU0hPUlRTX1RSSUdHRVJFRCIsQkQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9HUldTX0NVU1RPTV9SRVRSWV9DQUxMRUQiLFNEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfTURYX01PQklMRV9VTkxPQ0tfVE9LRU5fTUlTTUFUQ0giLFJEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfTURYX01PQklMRV9VTkxPQ0tfUEFZTE9BRF9UT0tFTl9NSVNTSU5HIixRRDoiR0VORVJJQ19DTElFTlRfRVhQRVJJTUVOVF9FVkVOVF9UWVBFX01EWF9NT0JJTEVfVU5MT0NLX0dBVEVfVE9LRU5fTUlTU0lORyIsClVEOiJHRU5FUklDX0NMSUVOVF9FWFBFUklNRU5UX0VWRU5UX1RZUEVfTVVTSUNfT0ZGTElORV9IT01FX1NNQVJUX0RPV05MT0FEU19QUk9NT19DSEVDSyIsTEQ6IkdFTkVSSUNfQ0xJRU5UX0VYUEVSSU1FTlRfRVZFTlRfVFlQRV9JUEFEX0RFU0tUT1BfTUFUQ0gifTt2YXIgZHdhPW5ldyBfLkkoInN1YnNjcmliZUVuZHBvaW50Iik7dmFyIEIyPWNsYXNzIGV4dGVuZHMgXy5MYXtjb25zdHJ1Y3RvcihhLGIpe3N1cGVyKGAke2F9LCBlcnJvckNvZGU9JHtifWApO3RoaXMuZXJyb3JDb2RlPWI7dGhpcy5uYW1lPSJQcm9taXNlQWpheEVycm9yIn19LHR0YT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX19O3ZhciBEMj1jbGFzc3tjb25zdHJ1Y3RvcihhPW51bGwpe3RoaXMudj1hO3RoaXMuaj0wO3RoaXMubz1udWxsfXRoZW4oYSxiLGMpe3JldHVybiB0aGlzLnY/dGhpcy52LnRoZW4oYSxiLGMpOnRoaXMuaj09PTEmJmE/KGE9YS5jYWxsKGMsdGhpcy5vKSkmJnR5cGVvZiBhLnRoZW49PT0iZnVuY3Rpb24iP2E6RjIoYSk6dGhpcy5qPT09MiYmYj8oYT1iLmNhbGwoYyx0aGlzLm8pKSYmdHlwZW9mIGEudGhlbj09PSJmdW5jdGlvbiI/YTpFMihhKTp0aGlzfWlzUmVqZWN0ZWQoKXtyZXR1cm4gdGhpcy5qPT0yfX07Xy55ZihEMik7dmFyIE0yPWNsYXNzIGV4dGVuZHMgXy5MYXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhLm1lc3NhZ2V8fGEuZGVzY3JpcHRpb258fGEubmFtZSk7dGhpcy5pc01pc3Npbmc9YSBpbnN0YW5jZW9mIEsyO3RoaXMuaXNUaW1lb3V0PWEgaW5zdGFuY2VvZiBCMiYmYS5lcnJvckNvZGU9PSJuZXQudGltZW91dCI7dGhpcy5pc0NhbmNlbGVkPWEgaW5zdGFuY2VvZiBfLlBmfX07TTIucHJvdG90eXBlLm5hbWU9IkJpc2NvdHRpRXJyb3IiO3ZhciBLMj1jbGFzcyBleHRlbmRzIF8uTGF7Y29uc3RydWN0b3IoKXtzdXBlcigiQmlzY290dGkgSUQgaXMgbWlzc2luZyBmcm9tIHNlcnZlciIpfX07SzIucHJvdG90eXBlLm5hbWU9IkJpc2NvdHRpTWlzc2luZ0Vycm9yIjt2YXIgc3RhPXtmb3JtYXQ6IlJBVyIsbWV0aG9kOiJHRVQiLHRpbWVvdXQ6NUUzLHdpdGhDcmVkZW50aWFsczohMH0sSDI9bnVsbDt2YXIgV3RhPVsiYXR0L2dldCJdLGV3YT1bInNoYXJlL2dldF9zaGFyZV9wYW5lbCJdLGZ3YT1bInNoYXJlL2dldF93ZWJfcGxheWVyX3NoYXJlX3BhbmVsIl0scTU9WyJmZWVkYmFjayJdLGd3YT1bIm5vdGlmaWNhdGlvbi9tb2RpZnlfY2hhbm5lbF9wcmVmZXJlbmNlIl0saHdhPVsiYnJvd3NlL2VkaXRfcGxheWxpc3QiXSxpd2E9WyJzdWJzY3JpcHRpb24vc3Vic2NyaWJlIl0sandhPVsic3Vic2NyaXB0aW9uL3Vuc3Vic2NyaWJlIl07dmFyIHI1PWNsYXNze2ZsdXNoKGE9W10sYj0hMSl7aWYoXy54KCJlbmFibGVfY2xpZW50X3N0cmVhbXpfd2ViIikpZm9yKGxldCBjIG9mIGEpYT1yMShjKSx0aGlzLmomJl8uS3coYSwyLHRoaXMuaiksYT17c2VyaWFsaXplZEluY3JlbWVudEJhdGNoOl8uc2MoYS52KCkpfSxfLkVwKCJzdHJlYW16SW5jcmVtZW50ZWQiLGEse3NlbmRJc29sYXRlZFBheWxvYWQ6Yn0pfX0sWXZhPWNsYXNzIGV4dGVuZHMgcjV7Y29uc3RydWN0b3IoKXtzdXBlcigpfX0scXVhPWNsYXNzIGV4dGVuZHMgcjV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt2YXIgYj1uZXcgRXZhO3ZhciBjPW5ldyBEdmE7Yz1CWihjLDEsImJvdGd1YXJkIik7YT1CWihjLDIsYSk7YT1fLkp3KGEpO0ZfKGIsMSxlNSxhKTthJiYhXy5CYyhhKSYmXy5vdyhiLkRhKTt0aGlzLmo9Yn19O3ZhciBuNSxqND1uZXcgTWFwO3ZhciBBdGE9bnVsbDt2YXIgQ3RhPW5ldyBNYXAoW1siZGFyayIsIlVTRVJfSU5URVJGQUNFX1RIRU1FX0RBUksiXSxbImxpZ2h0IiwiVVNFUl9JTlRFUkZBQ0VfVEhFTUVfTElHSFQiXV0pO3ZhciBYMj1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX1iaW5kSW5uZXJ0dWJlQ2hhbGxlbmdlRmV0Y2hlcihhKXt0aGlzLmouYmljZihhKX1yZWdpc3RlckNoYWxsZW5nZUZldGNoZWRDYWxsYmFjayhhKXt0aGlzLmouYmNyKGEpfWdldExhdGVzdENoYWxsZW5nZVJlc3BvbnNlKCl7cmV0dXJuIHRoaXMuai5ibGMoKX19O3ZhciAkMj1bXSxaMj0oMCxfLll4KWBodHRwczovL3N0YXRpYy5kb3VibGVjbGljay5uZXQvaW5zdHJlYW0vYWRfc3RhdHVzLmpzYCxZMj0hMTt2YXIgczU9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWF9fTtbbmV3IHM1KCJiLmZfIiksbmV3IHM1KCJqLnNfIiksbmV3IHM1KCJyLnNfIiksbmV3IHM1KCJlLmhfIiksbmV3IHM1KCJpLnNfIiksbmV3IHM1KCJzLnRfIiksbmV3IHM1KCJwLmhfIiksbmV3IHM1KCJzLmlfIiksbmV3IHM1KCJmLmlfIiksbmV3IHM1KCJhLmJfIiksbmV3IHM1KCJhLm9fIiksbmV3IHM1KCJnLm9fIiksbmV3IHM1KCJwLmlfIiksbmV3IHM1KCJwLm1fIiksbmV3IHM1KCJuLmtfIiksbmV3IHM1KCJpLmZfIiksbmV3IHM1KCJhLnNfIiksbmV3IHM1KCJtLmNfIiksbmV3IHM1KCJuLmhfIiksbmV3IHM1KCJvLnBfIiksbmV3IHM1KCJtLnBfIiksbmV3IHM1KCJvLmFfIiksbmV3IHM1KCJkLnBfIiksbmV3IHM1KCJlLmlfIildLnJlZHVjZSgoYSxiKT0+e2FbYi5qXT1iO3JldHVybiBhfSx7fSk7dmFyIFA0PWNsYXNze2NvbnN0cnVjdG9yKGEsYixjKXt0aGlzLm5ldHdvcms9YTt0aGlzLm9wdGlvbnM9Yjt0aGlzLks9Yzt0aGlzLnY9MDt0aGlzLmo9bnVsbDt0aGlzLm89bmV3IFp2YTtiLnpzP2IzKHRoaXMsSXRhKHRoaXMpKTpiLnByZWxvYWQmJmIzKHRoaXMsbmV3IFByb21pc2UoZD0+e18uWWooKCk9PntkKGUzKHRoaXMpKX0sMCl9KSl9YXN5bmMgRCgpe3JldHVybiEhYXdhaXQgUHJvbWlzZS5yYWNlKFt0aGlzLmosbnVsbF0pfWFzeW5jIEIoYSxiLGMpe3RoaXMuaj09PW51bGwmJmIzKHRoaXMsZTModGhpcykpO3ZhciBkPSExLGU9e307cmV0dXJuIFByb21pc2UucmFjZShbKGFzeW5jKCk9Pnt0aGlzLm9wdGlvbnMuUUkmJnRoaXMub3B0aW9ucy56cyYmYXdhaXQgKGF3YWl0IEV0YSgpKT8uY2hlY2tGb3JSZWZyZXNoKCk7dmFyIGY9YXdhaXQgdGhpcy5qO2UuY2hhbGxlbmdlPWYuY2hhbGxlbmdlO2lmKGYudm0pe3ZhciBoPXtjOmYuY2hhbGxlbmdlLGU6YSwuLi5ifTt0cnl7ZD0KITA7bGV0IGs7KGs9YXdhaXQgZi52bS5zbmFwc2hvdCh7S2M6aH0pKT9lLndlYlJlc3BvbnNlPWs6ZS5lcnJvcj0iQVRURVNUQVRJT05fRVJST1JfVk1fTk9fUkVTUE9OU0UifWNhdGNoe2UuZXJyb3I9IkFUVEVTVEFUSU9OX0VSUk9SX1ZNX0lOVEVSTkFMX0VSUk9SIn19ZWxzZSJjMWEiaW4gZi5CZiYmKGUuZXJyb3I9IkFUVEVTVEFUSU9OX0VSUk9SX1ZNX05PVF9JTklUSUFMSVpFRCIpO2E9PT0iRU5HQUdFTUVOVF9UWVBFX1BMQVlCQUNLIiYmKGY9Zi5CZixoPXt9LGYuYzZhJiYoaC5yZXBvcnRpbmdTdGF0dXM9U3RyaW5nKE51bWJlcihmLmMpXmEzKCkpKSxmLmM2YiYmKGguYnJvYWRTcGVjdHJ1bURldGVjdGlvblJlc3VsdD1TdHJpbmcoTnVtYmVyKGYuYyleTnVtYmVyKF8udygiQ0FUU1RBVCIsMCkpKSksZS5hZGJsb2NrUmVwb3J0aW5nPWgpO3JldHVybiBlfSkoKSxNdGEoYywoKT0+e3ZhciBmPU9iamVjdC5hc3NpZ24oe30sZSk7ZCYmKGYuZXJyb3I9IkFUVEVTVEFUSU9OX0VSUk9SX1ZNX1RJTUVPVVQiKTsKcmV0dXJuIGZ9KV0pfWFzeW5jIFJmKGEpe3ZhciBiPXRoaXMuSztpZighYnx8Yi5TYigpKXJldHVybiBmMyh0aGlzLGEpO3gwKCJhdHRfcG5hIik7cmV0dXJuIG5ldyBQcm9taXNlKGM9PntfLmJmKGIsInB1YmxpY3l0bmV0d29ya3N0YXR1cy1vbmxpbmUiLCgpPT57ZjModGhpcyxhKS50aGVuKGMpfSl9KX19O3ZhciBnMz17V0VCX1VOUExVR0dFRDoiXnVucGx1Z2dlZC8iLFdFQl9VTlBMVUdHRURfT05CT0FSRElORzoiXnVucGx1Z2dlZC8iLFdFQl9VTlBMVUdHRURfT1BTOiJedW5wbHVnZ2VkLyIsV0VCX1VOUExVR0dFRF9QVUJMSUM6Il51bnBsdWdnZWQvIixXRUJfQ1JFQVRPUjoiXmNyZWF0b3IvIixXRUJfS0lEUzoiXmtpZHMvIixXRUJfRVhQRVJJTUVOVFM6Il5leHBlcmltZW50cy8iLFdFQl9NVVNJQzoiXm11c2ljLyIsV0VCX1JFTUlYOiJebXVzaWMvIixXRUJfTVVTSUNfRU1CRURERURfUExBWUVSOiJebXVzaWMvIixXRUJfTVVTSUNfRU1CRURERURfUExBWUVSOiJebWFpbl9hcHAvfF5zZnYvIn07dmFyIFl1YT1jbGFzc3tjb25zdHJ1Y3RvcihhKXt0aGlzLmo9YX1hc3luYyBSZihhKXt4MCgiYXR0X2ZzciIpO2E9YXdhaXQgWXRhKHRoaXMuaixhKTt4MCgiYXR0X2ZyciIpO3JldHVybiBhfX07dmFyIGkzPWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaj0icGVuZGluZyI7dGhpcy5vPVtdO3RoaXMudj1bXTt0cnl7YSh0aGlzLkIuYmluZCh0aGlzKSx0aGlzLnJlamVjdC5iaW5kKHRoaXMpKX1jYXRjaChiKXt0aGlzLnJlamVjdChiKX19c3RhdGUoKXtyZXR1cm4gdGhpcy5pc0Z1bGZpbGxlZCgpP3tzdGF0ZToiZnVsZmlsbGVkIix2YWx1ZTp0aGlzLnJlc3VsdH06dGhpcy5pc1JlamVjdGVkKCk/e3N0YXRlOiJyZWplY3RlZCIscmVhc29uOnRoaXMuZXJyb3J9OntzdGF0ZToicGVuZGluZyJ9fWlzRnVsZmlsbGVkKCl7cmV0dXJuIHRoaXMuaj09PSJmdWxmaWxsZWQifWlzUmVqZWN0ZWQoKXtyZXR1cm4gdGhpcy5qPT09InJlamVjdGVkIn1pc1BlbmRpbmcoKXtyZXR1cm4gdGhpcy5qPT09InBlbmRpbmcifUIoYSl7KDAsXy5ibykoYSl8fGozKGEpP2wzKGszKGEpLHRoaXMuQi5iaW5kKHRoaXMpLHRoaXMucmVqZWN0LmJpbmQodGhpcykpOih0aGlzLmo9ImZ1bGZpbGxlZCIsdGhpcy5yZXN1bHQ9CmEsbjModGhpcykpfXJlamVjdChhKXt0aGlzLmo9InJlamVjdGVkIjt0aGlzLmVycm9yPWE7bjModGhpcyl9fSxqMz1fLkNjKGE9PigwLF8ucXIpKGEpP2EgaW5zdGFuY2VvZiBpMzohMSk7dmFyIHQ1PWNsYXNze2NvbnN0cnVjdG9yKGEpe3RoaXMuaj1hfXJ1bihhLGIpe3JldHVybiBvMyh0aGlzLGZ1bmN0aW9uKCl7dmFyIGM9dGhpcztyZXR1cm4gZnVuY3Rpb24qKCl7Zm9yKHZhciBkPWEsZT1iLGY9W107Oyl7Zi5wdXNoKFN0cmluZyhkKSk7ZT15aWVsZCpwMyhjLmpbZF0uZXhlY3V0ZShlKSk7aWYoZS5uZXh0U3RhdGU9PT0iRE9ORSIpcmV0dXJuIGYucHVzaCgiRE9ORSIpLGUudmFsdWU7aWYoZS5uZXh0U3RhdGU9PT0iRkFJTEVEIil0aHJvdyBmLnB1c2goYEZBSUxFRCgke2UuZXJyb3IubWVzc2FnZXx8ImVycm9yIn0pYCksZS5lcnJvcjtkPWUubmV4dFN0YXRlO2U9ZS5wYXJhbXN9fSgpfSl9fTt2YXIgdTU9Y2xhc3N7fTt2YXIgdTM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmo9e307aWYodGhpcy5vPV8ucXooKSl7bGV0IGE9Xy5Mai5nZXQoIkNPTlNJU1RFTkNZIix2b2lkIDApO2EmJnIzKHRoaXMse2VuY3J5cHRlZFRva2VuSmFyQ29udGVudHM6YX0pfX1oYW5kbGVSZXNwb25zZShhLGIpe2lmKCFiKXRocm93IEVycm9yKCJLZSIpO2I9Yi5pbm5lclR1YmVSZXF1ZXN0LmNvbnRleHQ/LnJlcXVlc3Q/LmNvbnNpc3RlbmN5VG9rZW5KYXJzfHxbXTsoYT1hLnJlc3BvbnNlQ29udGV4dD8uY29uc2lzdGVuY3lUb2tlbkphcikmJnRoaXMucmVwbGFjZShiLGEpfXJlcGxhY2UoYSxiKXtmb3IobGV0IGMgb2YgYSlkZWxldGUgdGhpcy5qW2MuZW5jcnlwdGVkVG9rZW5KYXJDb250ZW50c107cjModGhpcyxiKX19O3ZhciBrd2E9d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCIuIikuc2xpY2UoLTIpLmpvaW4oIi4iKSx2Mz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMudj0tMTt2YXIgYT1fLncoIkxPQ0FUSU9OX1BMQVlBQklMSVRZX1RPS0VOIik7Xy53KCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJUVkhUTUw1IiYmKHRoaXMubG9jYWxTdG9yYWdlPXMzKHRoaXMpKSYmKGE9dGhpcy5sb2NhbFN0b3JhZ2UuZ2V0KCJ5dC1sb2NhdGlvbi1wbGF5YWJpbGl0eS10b2tlbiIpKTthJiYodGhpcy5sb2NhdGlvblBsYXlhYmlsaXR5VG9rZW49YSx0aGlzLm89dGhpcy5qPXZvaWQgMCl9c3RhdGljIGpjKCl7djU9Xy5zYSgieXQuY2xpZW50TG9jYXRpb25TZXJ2aWNlLmluc3RhbmNlIik7djV8fCh2NT1uZXcgdjMsXy5yYSgieXQuY2xpZW50TG9jYXRpb25TZXJ2aWNlLmluc3RhbmNlIix2NSkpO3JldHVybiB2NX1zZXRMb2NhdGlvbk9uSW5uZXJUdWJlQ29udGV4dChhKXthLmNsaWVudHx8KGEuY2xpZW50PQp7fSk7aWYodGhpcy5qKWEuY2xpZW50LmxvY2F0aW9uSW5mb3x8KGEuY2xpZW50LmxvY2F0aW9uSW5mbz17fSksYS5jbGllbnQubG9jYXRpb25JbmZvLmxhdGl0dWRlRTc9TWF0aC5mbG9vcih0aGlzLmouY29vcmRzLmxhdGl0dWRlKjFFNyksYS5jbGllbnQubG9jYXRpb25JbmZvLmxvbmdpdHVkZUU3PU1hdGguZmxvb3IodGhpcy5qLmNvb3Jkcy5sb25naXR1ZGUqMUU3KSxhLmNsaWVudC5sb2NhdGlvbkluZm8uaG9yaXpvbnRhbEFjY3VyYWN5TWV0ZXJzPU1hdGgucm91bmQodGhpcy5qLmNvb3Jkcy5hY2N1cmFjeSksYS5jbGllbnQubG9jYXRpb25JbmZvLmZvcmNlTG9jYXRpb25QbGF5YWJpbGl0eVRva2VuUmVmcmVzaD0hMDtlbHNlIGlmKHRoaXMuQnx8dGhpcy5sb2NhdGlvblBsYXlhYmlsaXR5VG9rZW4pYS5jbGllbnQubG9jYXRpb25QbGF5YWJpbGl0eVRva2VuPXRoaXMuQnx8dGhpcy5sb2NhdGlvblBsYXlhYmlsaXR5VG9rZW59Z2V0WEdlb0hlYWRlcigpe2lmKHRoaXMubyl7dmFyIGE9CnRoaXMubzt2YXIgYj1NYXRoLmZsb29yKGEuY29vcmRzLmxvbmdpdHVkZSoxRTcpO3ZhciBjPU1hdGguZmxvb3IoYS5jb29yZHMubGF0aXR1ZGUqMUU3KTt2YXIgZD1uZXcgJHZhO2M9Xy5xdyhkLDEsXy5QdyhjKSk7Yj1fLnF3KGMsMixfLlB3KGIpKTtjPW5ldyBid2E7Yz1DWihjLDEsMSk7Yz1DWihjLDIsMTIpO2M9Q1ooYyw5LDgpO2M9Xy5xdyhjLDMseV8oYS50aW1lc3RhbXAqMUUzKSk7YT1fLnF3KGMsNyxwXyhhLmNvb3Jkcy5hY2N1cmFjeSoxRTMpKTthPUNaKGEsMjUsMik7YT1fLkt3KGEsNSxiKTthPWB3ICR7Xy5zYyhjd2EoYSksNCl9YH1lbHNlIGE9bnVsbDtyZXR1cm4gYX1oYW5kbGVSZXNwb25zZShhKXthPWEucmVzcG9uc2VDb250ZXh0Py5sb2NhdGlvblBsYXlhYmlsaXR5VG9rZW47YSE9PXZvaWQgMCYmKHRoaXMubG9jYXRpb25QbGF5YWJpbGl0eVRva2VuPWEsdGhpcy5vPXRoaXMuaj12b2lkIDAsXy53KCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJUVkhUTUw1Ij8KKHRoaXMubG9jYWxTdG9yYWdlPXMzKHRoaXMpKSYmdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0KCJ5dC1sb2NhdGlvbi1wbGF5YWJpbGl0eS10b2tlbiIsYSwxNTU1MkUzKTpfLk1qKCJZVF9DTCIsSlNPTi5zdHJpbmdpZnkoe2xvY3RvazphfSksMTU1NTJFMyxrd2EsITApKX1jbGVhckxvY2F0aW9uUGxheWFiaWxpdHlUb2tlbihhKXthPT09IlRWSFRNTDUiPyh0aGlzLmxvY2FsU3RvcmFnZT1zMyh0aGlzKSkmJnRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZSgieXQtbG9jYXRpb24tcGxheWFiaWxpdHktdG9rZW4iKTpfLk5qKCJZVF9DTCIpO3RoaXMuQj12b2lkIDA7dGhpcy52IT09LTEmJihjbGVhclRpbWVvdXQodGhpcy52KSx0aGlzLnY9LTEpfWNsZWFyQ3VycmVudFBvc2l0aW9uKCl7dGhpcy5vPXRoaXMuaj12b2lkIDB9Z2V0Q3VycmVudFBvc2l0aW9uRnJvbUdlb2xvY2F0aW9uKGEpe2lmKCEobmF2aWdhdG9yJiZuYXZpZ2F0b3IuZ2VvbG9jYXRpb24mJm5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24pKXJldHVybiBQcm9taXNlLnJlamVjdChFcnJvcigiTGUiKSk7CnZhciBiPSExLGM9MUU0O18udygiSU5ORVJUVUJFX0NMSUVOVF9OQU1FIik9PT0iTVdFQiImJihiPSEwLGM9MTVFMyk7cmV0dXJuIG5ldyBQcm9taXNlKChkLGUpPT57bmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmPT57dGhpcy5vPWE/LmFkZFRvSGVhZGVycz9mOnZvaWQgMDt0aGlzLmo9ZjtkKGYpfSxmPT57ZShmKX0se2VuYWJsZUhpZ2hBY2N1cmFjeTpiLG1heGltdW1BZ2U6MCx0aW1lb3V0OmN9KX0pfWNyZWF0ZVVucGx1Z2dlZExvY2F0aW9uSW5mbyhhKXt2YXIgYj17fTthPWEuY29vcmRzO2E/LmxhdGl0dWRlJiYoYi5sYXRpdHVkZUU3PU1hdGguZmxvb3IoYS5sYXRpdHVkZSoxRTcpKTthPy5sb25naXR1ZGUmJihiLmxvbmdpdHVkZUU3PU1hdGguZmxvb3IoYS5sb25naXR1ZGUqMUU3KSk7YT8uYWNjdXJhY3kmJihiLmxvY2F0aW9uUmFkaXVzTWV0ZXJzPU1hdGgucm91bmQoYS5hY2N1cmFjeSkpO3JldHVybiBifWNyZWF0ZUxvY2F0aW9uSW5mbyhhKXt2YXIgYj0Ke307YT1hLmNvb3JkczthPy5sYXRpdHVkZSYmKGIubGF0aXR1ZGVFNz1NYXRoLmZsb29yKGEubGF0aXR1ZGUqMUU3KSk7YT8ubG9uZ2l0dWRlJiYoYi5sb25naXR1ZGVFNz1NYXRoLmZsb29yKGEubG9uZ2l0dWRlKjFFNykpO3JldHVybiBifX0sdjU7dmFyIEYzPSJ0b2tlbnMgY29uc2lzdGVuY3kgc2VydmljZV9wYXJhbXMgbXNzIGNsaWVudF9sb2NhdGlvbiBlbnRpdGllcyBhZGJsb2NrX2RldGVjdGlvbiByZXNwb25zZV9yZWNlaXZlZF9jb21tYW5kcyBzdG9yZSBtYW5pZmVzdCBwbGF5ZXJfcHJlbG9hZCBzaG9ydHNfcHJlZmV0Y2ggcmVzb2x2ZV91cmxfcHJlZmV0Y2giLnNwbGl0KCIgIik7dmFyIGx3YT1jbGFzc3tEKGEsYj17fSxjPUEzKXt2YXIgZD17Y29udGV4dDp3MyhhLmNsaWNrVHJhY2tpbmdQYXJhbXMsITEsdGhpcy5CKX07dmFyIGU9dGhpcy5vKGEpO2lmKGUpe3RoaXMuaihkLGUsYik7ZT1gL3lvdXR1YmVpL3YxLyR7aDModGhpcy52KCkpfWA7dmFyIGY9Xy5CKGEuY29tbWFuZE1ldGFkYXRhLF8uencpPy5hcGlVcmw7ZiYmKGU9Zik7ZT1YMChZMChlKSk7Zj17Y29tbWFuZDphLC4uLih2b2lkIDApfTtkPXtpbnB1dDplLHdiOlowKGUpLGlubmVyVHViZVJlcXVlc3Q6ZCxjb25maWc6Zn07ZC5jb25maWcuUmQ/ZC5jb25maWcuUmQuaWRlbnRpdHk9YzpkLmNvbmZpZy5SZD17aWRlbnRpdHk6Y307KGE9dGhpcy5LKGEpKSYmIWQuY29uZmlnLnJlcXVlc3RLZXkmJihkLmNvbmZpZy5yZXF1ZXN0S2V5PWEpO2IuYWJvcnRTaWduYWwmJihkLndiLnNpZ25hbD1iLmFib3J0U2lnbmFsKTtyZXR1cm4gZH1iPW5ldyBfLlhqKCJFcnJvcjogRmFpbGVkIHRvIGNyZWF0ZSBSZXF1ZXN0IGZyb20gQ29tbWFuZC4iLAphKTtfLkdwKGIpfWdldCBCKCl7cmV0dXJuITF9Sygpe319LHc1PWNsYXNzIGV4dGVuZHMgbHdhe0soYSl7cmV0dXJuIF8uQihhLmNvbW1hbmRNZXRhZGF0YSxfLnp3KT8ucmVxdWVzdEtleT8/dm9pZCAwfX07dmFyIG13YT17R0VUX0RBVEFTWU5DX0lEUzp5MyhjbGFzcyBleHRlbmRzIHc1e0QoKXtyZXR1cm57aW5wdXQ6Ii9nZXREYXRhc3luY0lkc0VuZHBvaW50Iix3YjpaMCgiL2dldERhdGFzeW5jSWRzRW5kcG9pbnQiLCJHRVQiKSxpbm5lclR1YmVSZXF1ZXN0Ont9fX12KCl7cmV0dXJuW119bygpe31qKCl7fX0pfTt2YXIgVTM9bmV3IF8uVnMoIlJFUVVFU1RfTUFDSElORV9SRUdJU1RSWV9UT0tFTiIpLEIzPW5ldyBfLlZzKCJSRVFVRVNUX01BQ0hJTkVfRkFDVE9SWV9UT0tFTiIpLEozPW5ldyBfLlZzKCJJTkZMSUdIVF9SRVFVRVNUX01BUF9UT0tFTiIpO3ZhciBhdWE9WyJ0eXBlLmdvb2dsZWFwaXMuY29tL3lvdXR1YmUuYXBpLnBmaWlubmVydHViZS5Zb3V0dWJlQXBpSW5uZXJ0dWJlLkJyb3dzZVJlc3BvbnNlIiwidHlwZS5nb29nbGVhcGlzLmNvbS95b3V0dWJlLmFwaS5wZmlpbm5lcnR1YmUuWW91dHViZUFwaUlubmVydHViZS5QbGF5ZXJSZXNwb25zZSIsInR5cGUuZ29vZ2xlYXBpcy5jb20veW91dHViZS5hcGkucGZpaW5uZXJ0dWJlLllvdXR1YmVBcGlJbm5lcnR1YmUuUGFuZWxSZXNwb25zZSJdLHozPWNsYXNze2NvbnN0cnVjdG9yKGEsYixjLGQpe3RoaXMudj1hO3RoaXMuU2E9Yjt0aGlzLm89Yzt0aGlzLkI9ZDt0aGlzLmo9bmV3IE1hcDthLkhkfHwoYS5IZD17fSk7YS5IZD17Li4ubXdhLC4uLmEuSGR9fVFpKGEsYil7dmFyIGM9Xy55KCkucmVzb2x2ZShfLkluKEIzKSk/LigpO2lmKGMpcmV0dXJuIG0zKGV1YShjLHtjb21tYW5kOmEsZm9ybTpiLGlkZW50aXR5OkEzfSkpLnRoZW4oZT0+ZSwoKT0+e30pO3ZhciBkPVp0YSh0aGlzLAphKTtyZXR1cm4gZD9uZXcgXy5CZihhc3luYyhlLGYpPT57dmFyIGg9KGF3YWl0IGQpLkQoYSxiLEEzKTtoPyhQMihoLmlucHV0KSxmPWgud2I/Lm1vZGU9PT0iY29ycyI/ImNvcnMiOnZvaWQgMCxmPXRoaXMuby56bj9DMyhoLmNvbmZpZyxmKTphd2FpdCBEMyhoLmNvbmZpZyxmKSxlKEUzKHRoaXMsaCxmKSkpOmYobmV3IF8uWGooIkVycm9yOiBGYWlsZWQgdG8gYnVpbGQgcmVxdWVzdCBmb3IgY29tbWFuZCIsYSkpfSk6Xy5PdChuZXcgXy5YaigiRXJyb3I6IE5vIHJlcXVlc3QgYnVpbGRlciBmb3VuZCBmb3IgY29tbWFuZCIsYSkpfUp3KGEpe3JldHVybiBVdGEoYSx0aGlzLnYpfX07dmFyIHg1PW5ldyBfLlZzKCJMT0NBTF9JTk5FUlRVQkVfUk9VVEVSX1RPS0VOIik7dmFyIHU0PW5ldyBfLlZzKCJFTkRQT0lOVF9NQVAiKTt2YXIgdDQ9bmV3IF8uVnMoIkFVVEhfU0VSVklDRV9UT0tFTiIpO3ZhciBLMz1jbGFzcyBleHRlbmRzIHU1e2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5qPWF9ZXhlY3V0ZShhKXtyZXR1cm4gbzModGhpcyxmdW5jdGlvbigpe3ZhciBiPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBjPWEueXRSZXF1ZXN0O1AyKGMuaW5wdXQpO3ZhciBkPWMud2I/Lm1vZGU9PT0iY29ycyI/ImNvcnMiOnZvaWQgMDtpZihiLmouem4pe2xldCBlPV8uUGooe3Nlc3Npb25JbmRleDpjLmNvbmZpZz8uUmQ/LnNlc3Npb25JbmRleH0pO2Q9ey4uLngzKGQpLC4uLmV9fWVsc2UgZD15aWVsZCpwMyhjdWEoYixjLmNvbmZpZyxkKSk7Yy53Yj17Li4uYy53YixoZWFkZXJzOnsuLi4oYy53Yj8uaGVhZGVycz8/e30pLC4uLmR9fTtyZXR1cm57bmV4dFN0YXRlOiJERURVUEUiLHBhcmFtczphfX0oKX0pfX07SzNbXy5Mbl09W3Q0XTt2YXIgJDM9bmV3IF8uVnMoIlJFU1BPTlNFX01BQ0hJTkVfUkVHSVNUUllfVE9LRU4iKSxhND1uZXcgXy5WcygiUkVTUE9OU0VfTUFDSElORV9GQUNUT1JZX1RPS0VOIik7dmFyIEwzPWNsYXNzIGV4dGVuZHMgdTV7Y29uc3RydWN0b3IoYSxiKXtzdXBlcigpO3RoaXMuaj1hO3RoaXMubz1ifWV4ZWN1dGUoYSl7dmFyIGI9dGhpcy5vLGM9dGhpcy5qO3JldHVybiBvMyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBkPWEueXRSZXF1ZXN0LGU9ZC5jb25maWc/LktBPy5aSztpZihlJiZiJiZiLmhhcyhlKSYmIWQuY29uZmlnPy5LQT8uZGlzYWJsZUNhY2hlKXt2YXIgZj15aWVsZCpwMyhrMyhiLmdldChlKSkpO2lmKGYmJiFmLmlzRXhwaXJlZCgpKXJldHVybiBkPWYuaigpLF8ueCgid2ViX3Byb2Nlc3NfcmVzcG9uc2Vfc3RvcmVfcmVzcG9uc2VzIikmJiFmLmlzUHJvY2Vzc2VkKCk/KGY9YygpLGQ9eWllbGQqcDMoSDMoZix7d2lyZVJlc3BvbnNlOmQseXRSZXF1ZXN0OmEueXRSZXF1ZXN0LGNodW5rQ2FsbGJhY2s6YS5jaHVua0NhbGxiYWNrLHJlc3BvbnNlUGF5bG9hZDp7dHlwZToiUEFHRV9DT05UUkFDVCJ9LGV4dHJhY3RlZFJlc3BvbnNlOmR9KSksCnlpZWxkKnAzKGszKGIuaihlKSkpLHtuZXh0U3RhdGU6IkRPTkUiLHZhbHVlOmR9KTp7bmV4dFN0YXRlOiJET05FIix2YWx1ZTpkfX1yZXR1cm57bmV4dFN0YXRlOiJMT0NBTF9ST1VURVIiLHBhcmFtczphfX0oKX0pfX07TDNbXy5Mbl09W2E0LF8uSW4obmV3IF8uVnMoIkVQSEVNRVJBTF9TVE9SRV9UT0tFTiIpKV07dmFyIE0zPWNsYXNzIGV4dGVuZHMgdTV7Y29uc3RydWN0b3IoYSxiKXtzdXBlcigpO3RoaXMubz1hO3RoaXMuaj1ifWV4ZWN1dGUoYSl7dmFyIGI9dGhpcy5vLGM9dGhpcy5qLGQ9YS55dFJlcXVlc3QsZT1kPy5pbm5lclR1YmVSZXF1ZXN0Py5jb250ZXh0O2lmKCFlKXJldHVybiBrMyh7bmV4dFN0YXRlOiJBVVRIIixwYXJhbXM6YX0pO3ZhciBmPVtdO2lmKGMmJmMubGVuZ3RoPjApZm9yKGxldCBoIG9mIGMpYz1oLkJyKGQpLGMudiYmZi5wdXNoKGMudik7Zm9yKGxldCBoIG9mIGJ8fFtdKWguQnIoZSk7cmV0dXJuIGYubGVuZ3RoPjA/bzModGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt5aWVsZCpwMyhrMyhQcm9taXNlLmFsbChmKSkpO3JldHVybntuZXh0U3RhdGU6IkFVVEgiLHBhcmFtczphfX0oKX0pOmszKHtuZXh0U3RhdGU6IkFVVEgiLHBhcmFtczphfSl9fTtNM1tfLkxuXT1bXy5JbihuZXcgXy5WcygiQ09OVEVYVF9QUk9DRVNTT1JfTUFQIikpLF8uSW4obmV3IF8uVnMoIkFTWU5DX0NPTlRFWFRfUFJPQ0VTU09SX01BUCIpKV07dmFyIE4zPWNsYXNzIGV4dGVuZHMgdTV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLmo9YX1leGVjdXRlKGEpe3ZhciBiPXRoaXMuajtyZXR1cm4gbzModGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgYz1hLnl0UmVxdWVzdC5jb25maWc/LnJlcXVlc3RLZXk7cmV0dXJuIGMmJmIuaGFzKGMpJiYoYz1iLmdldChjKSxjPXlpZWxkKnAzKGszKGMpKSk/e25leHRTdGF0ZToiRE9ORSIsdmFsdWU6Y306e25leHRTdGF0ZToiRkVUQ0giLHBhcmFtczphfX0oKX0pfX07TjNbXy5Mbl09W0ozXTt2YXIgTzM9Y2xhc3MgZXh0ZW5kcyB1NXtjb25zdHJ1Y3RvcihhLGIpe3N1cGVyKCk7dGhpcy5vPWE7dGhpcy5qPWJ9ZXhlY3V0ZShhKXt2YXIgYj10aGlzLmosYz10aGlzLm87cmV0dXJuIG8zKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIGQ9YS55dFJlcXVlc3QsZT1hLmNodW5rQ2FsbGJhY2ssZj17dHlwZToiUEFHRV9DT05UUkFDVCJ9O2lmKGI/LmNJKGQuaW5wdXQsZC5pbm5lclR1YmVSZXF1ZXN0KSl7bGV0IGs9eWllbGQqcDMoazMoYi5PSihkLmlucHV0LGQuaW5uZXJUdWJlUmVxdWVzdCkpKTtpZihrKXtsZXQgbD0hMTt2YXIgaD1mdW5jdGlvbihtLG4pe3JldHVybiBmdW5jdGlvbiooKXt2YXIgcD1jKCk7eWllbGQqcDMoSDMocCx7d2lyZVJlc3BvbnNlOm4seXRSZXF1ZXN0OmQsY2h1bmtDYWxsYmFjazplLHJlc3BvbnNlUGF5bG9hZDpmfSkpO2w9ITB9KCl9O2sucGxheWVyUmVzcG9uc2UmJih5aWVsZCpoKGsucGxheWVyUmVzcG9uc2Use3BsYXllclJlc3BvbnNlOmsucGxheWVyUmVzcG9uc2V9KSk7Cmsud2F0Y2hOZXh0UmVzcG9uc2UmJih5aWVsZCpoKGsud2F0Y2hOZXh0UmVzcG9uc2Use3dhdGNoTmV4dFJlc3BvbnNlOmsud2F0Y2hOZXh0UmVzcG9uc2V9KSk7bHx8KGg9YygpLHlpZWxkKnAzKEgzKGgse3dpcmVSZXNwb25zZTprLHl0UmVxdWVzdDpkLGNodW5rQ2FsbGJhY2s6ZSxyZXNwb25zZVBheWxvYWQ6Zn0pKSk7aWYoZSlyZXR1cm57bmV4dFN0YXRlOiJET05FIix2YWx1ZTpmfTtoPWYuY29udGVudHx8Zi5wbGF5ZXJ8fGYuZG47cmV0dXJuIGYudHlwZT09PSJQQUdFX0NPTlRSQUNUIiYmaD97bmV4dFN0YXRlOiJET05FIix2YWx1ZTpofTp7bmV4dFN0YXRlOiJET05FIix2YWx1ZTprfX19cmV0dXJue25leHRTdGF0ZToiRkFJTEVEIixlcnJvcjpFcnJvcigiTmUiKX19KCl9KX19O08zW18uTG5dPVthNCxfLkluKHg1KV07dmFyIHk1PWNsYXNzIGV4dGVuZHMgXy5Yantjb25zdHJ1Y3RvcihhLGIsYyl7c3VwZXIoYix7c3RhdHVzOmMsLi4uW119KTt0aGlzLnR5cGU9YTt0aGlzLnN0YXR1cz1jO09iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLG5ldy50YXJnZXQucHJvdG90eXBlKX19O3ZhciByND1uZXcgXy5WcygiTkVUV09SS19NQU5BR0VSX1RPS0VOIik7dmFyIFAzPWNsYXNzIGV4dGVuZHMgdTV7Y29uc3RydWN0b3IoYSxiLGMsZCl7c3VwZXIoKTt0aGlzLlNhPWE7dGhpcy5qPWI7dGhpcy52PWM7dGhpcy5vPWR9ZXhlY3V0ZShhKXt2YXIgYj10aGlzLlNhLGM9dGhpcy5qLGQ9dGhpcy52LGU9dGhpcy5vO3JldHVybiBvMyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBmPWEueXRSZXF1ZXN0LGg9YS5jaHVua0NhbGxiYWNrLGs9Zi5jb25maWc/LnJlcXVlc3RLZXksbD1KU09OLnN0cmluZ2lmeShmLmlubmVyVHViZVJlcXVlc3QpLG09ey4uLmYud2IsYm9keTpmLndiLm1ldGhvZD09PSJQT1NUIj9sOnZvaWQgMH07Zi5jb25maWc/LmtuJiZfLkFxKGYuY29uZmlnLmtuKTt2YXIgbj17dHlwZToiUEFHRV9DT05UUkFDVCJ9LHA9MCxyPXo9PntJMyhkKCkse3dpcmVSZXNwb25zZTp6LHl0UmVxdWVzdDpmLGNodW5rQ2FsbGJhY2s6aCxyZXNwb25zZVBheWxvYWQ6bn0scCsrKX07bD0oKT0+aD9iLmZldGNoKGYuaW5wdXQsCm0sZi5jb25maWcscik6Yi5mZXRjaChmLmlucHV0LG0sZi5jb25maWcpO3RyeXt2YXIgdD1lP2UuSksoZixsKTpsKCl9Y2F0Y2goeil7dD1Qcm9taXNlLnJlamVjdCh6KX1rJiZjJiZjLnNldChrLHQpO3RyeXt2YXIgdj15aWVsZCpwMyhrMyh0KSl9Y2F0Y2goeil7cmV0dXJuIF8ueCgid2ViX2VuYWJsZV9yZXRyaWVzIikmJih2PXogaW5zdGFuY2VvZiBUeXBlRXJyb3ImJnoubWVzc2FnZT09PSJGYWlsZWQgdG8gZmV0Y2giPzE6MCxHMyh2KSk/e25leHRTdGF0ZToiUkVUUlkiLHBhcmFtczp7Li4uYSxlcnJvcjpuZXcgeTUodix6Lm1lc3NhZ2UpLGF0dGVtcHQ6KGEuYXR0ZW1wdHx8MCkrMX19OntuZXh0U3RhdGU6IkZBTExCQUNLIixwYXJhbXM6ey4uLmF9fX1rJiZjJiZjLmRlbGV0ZShrKTt3MCh2MChmLmlucHV0KSkoKTtmLmNvbmZpZz8ucG4mJl8uQXEoZi5jb25maWcucG4pO2lmKCF2KXJldHVybntuZXh0U3RhdGU6IkZBTExCQUNLIixwYXJhbXM6ey4uLmF9fTtpZih2JiZ0eXBlb2Ygdj09PQoib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkodikmJihrPXYsay5lcnJvck1ldGFkYXRhPy5zdGF0dXMmJihrPWsuZXJyb3JNZXRhZGF0YS5zdGF0dXMsdD1rPT09NTAzfHxrPT09NTA0fHxrPT09NDI5PzI6az49NDAwJiZrPDUwMHx8az49NTAwPzM6MCxHMyh0KSYmXy54KCJ3ZWJfZW5hYmxlX3JldHJpZXMiKSkpKXJldHVybntuZXh0U3RhdGU6IlJFVFJZIixwYXJhbXM6ey4uLmEsZXJyb3I6bmV3IHk1KHQsYEhUVFAgU3RhdHVzICR7a31gLGspLGF0dGVtcHQ6KGEuYXR0ZW1wdHx8MCkrMX19OyFoJiZ2JiYoaz1kKCksaz15aWVsZCpwMyhJMyhrLHt3aXJlUmVzcG9uc2U6dix5dFJlcXVlc3Q6ZixyZXNwb25zZVBheWxvYWQ6e3R5cGU6IlBBR0VfQ09OVFJBQ1QifX0pKSx0PWsuY29udGVudHx8ay5wbGF5ZXJ8fGsuZG4say50eXBlPT09IlBBR0VfQ09OVFJBQ1QiJiZ0JiYodj10KSk7az12O2lmKEFycmF5LmlzQXJyYXkodikpaWYodj12LmZpbHRlcih6PT4hKHoucGxheWVyUmVzcG9uc2V8fAp6LndhdGNoTmV4dFJlc3BvbnNlfHx6KS5yZXNwb25zZUNvbnRleHQ/LmZyYW1ld29ya09ubHkpLHYubGVuZ3RoPT09MSlrPXZbMF07ZWxzZSBpZih2Lmxlbmd0aD4xKWs9di5maW5kKHo9Pnoud2F0Y2hOZXh0UmVzcG9uc2UpfHx2WzBdO2Vsc2UgcmV0dXJue25leHRTdGF0ZToiRkFJTEVEIixlcnJvcjpFcnJvcigiT2UiKX07cmV0dXJue25leHRTdGF0ZToiRE9ORSIsdmFsdWU6aCYmIV8ueCgid2ViX25tX2ZldGNoX2NodW5rX2NhbGxiYWNrX2tzIik/bjprfX0oKX0pfX07UDNbXy5Mbl09W3I0LEozLGE0LF8uSW4obmV3IF8uVnMoIlJFUVVFU1RfU0VRVUVOQ0lORyIpKV07dmFyIFEzPWNsYXNzIGV4dGVuZHMgdTV7Y29uc3RydWN0b3IoYSxiKXtzdXBlcigpO3RoaXMubz1hO3RoaXMuaj1ifWV4ZWN1dGUoYSl7dmFyIGI9dGhpcy5qLGM9dGhpcy5vLGQ9YS55dFJlcXVlc3Q7cmV0dXJuIGI/LlBLKGQuaW5wdXQsZC5pbm5lclR1YmVSZXF1ZXN0KT9vMyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBlPXlpZWxkKnAzKGszKGIuUEooZC5pbnB1dCxkLmlubmVyVHViZVJlcXVlc3QpKSksZj1jKCk7aWYoZS5wbGF5ZXJSZXNwb25zZSYmZS53YXRjaE5leHRSZXNwb25zZSl7dmFyIGg9eWllbGQqcDMoSDMoZix7d2lyZVJlc3BvbnNlOntwbGF5ZXJSZXNwb25zZTplLnBsYXllclJlc3BvbnNlfSx5dFJlcXVlc3Q6YS55dFJlcXVlc3QsY2h1bmtDYWxsYmFjazphLmNodW5rQ2FsbGJhY2sscmVzcG9uc2VQYXlsb2FkOnt0eXBlOiJQQUdFX0NPTlRSQUNUIn0sZXh0cmFjdGVkUmVzcG9uc2U6ZS5wbGF5ZXJSZXNwb25zZX0pKTtoPXlpZWxkKnAzKEgzKGYsCnt3aXJlUmVzcG9uc2U6e3dhdGNoTmV4dFJlc3BvbnNlOmUud2F0Y2hOZXh0UmVzcG9uc2V9LHl0UmVxdWVzdDphLnl0UmVxdWVzdCxjaHVua0NhbGxiYWNrOmEuY2h1bmtDYWxsYmFjayxyZXNwb25zZVBheWxvYWQ6e3R5cGU6IlBBR0VfQ09OVFJBQ1QifSxleHRyYWN0ZWRSZXNwb25zZTplLndhdGNoTmV4dFJlc3BvbnNlfSkpfWVsc2UgaD15aWVsZCpwMyhIMyhmLHt3aXJlUmVzcG9uc2U6ZSx5dFJlcXVlc3Q6YS55dFJlcXVlc3QsY2h1bmtDYWxsYmFjazphLmNodW5rQ2FsbGJhY2sscmVzcG9uc2VQYXlsb2FkOnt0eXBlOiJQQUdFX0NPTlRSQUNUIn0sZXh0cmFjdGVkUmVzcG9uc2U6ZX0pKTtmPWguY29udGVudHx8aC5wbGF5ZXJ8fGguZG47aC50eXBlPT09IlBBR0VfQ09OVFJBQ1QiJiZmJiYoZT1mKTtyZXR1cm57bmV4dFN0YXRlOiJET05FIix2YWx1ZTplfX0oKX0pOmszKHtuZXh0U3RhdGU6IkNPTlRFWFQiLHBhcmFtczphfSl9fTtRM1tfLkxuXT1bYTQsXy5Jbih4NSldO3ZhciBSMz1jbGFzcyBleHRlbmRzIHU1e2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5qPWF9ZXhlY3V0ZShhKXtyZXR1cm4gbzModGhpcyxmdW5jdGlvbigpe3ZhciBiPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKigpe3RyeXt2YXIgYz15aWVsZCpwMyhkdWEoYixhLmNvbW1hbmQsISFhLmNodW5rQ2FsbGJhY2spKX1jYXRjaChkKXtyZXR1cm57bmV4dFN0YXRlOiJGQUlMRUQiLGVycm9yOmR9fXJldHVybihjPWMuRChhLmNvbW1hbmQsYS5mb3JtLGEuaWRlbnRpdHkpKT97bmV4dFN0YXRlOiJDQUNIRSIscGFyYW1zOnt5dFJlcXVlc3Q6YyxjaHVua0NhbGxiYWNrOmEuY2h1bmtDYWxsYmFja319OntuZXh0U3RhdGU6IkZBSUxFRCIsZXJyb3I6RXJyb3IoIlBlIil9fSgpfSl9fTtSM1tfLkxuXT1bdTRdO3ZhciBTMz1jbGFzcyBleHRlbmRzIHU1e2V4ZWN1dGUoYSl7cmV0dXJuIG8zKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIHtpbm5lclR1YmVSZXF1ZXN0OmIsYXBpUGF0aDpjLGNsaWNrVHJhY2tpbmdQYXJhbXM6ZCxjb25maWc6ZT17UmQ6e2lkZW50aXR5OkEzfX0saW5jbHVkZUN1cnJlbnRTY3JlZW5Ob25jZTpmPSEwLGNodW5rQ2FsbGJhY2s6aH09YTtiLmNvbnRleHR8fChiLmNvbnRleHQ9dzMoZCxmKSk7dmFyIGs9WDAoWTAoYykpO3JldHVybntuZXh0U3RhdGU6IkNBQ0hFIixwYXJhbXM6e3l0UmVxdWVzdDp7aW5wdXQ6ayx3YjpaMChrKSxpbm5lclR1YmVSZXF1ZXN0OmIsY29uZmlnOmV9LGNodW5rQ2FsbGJhY2s6aH19fSgpfSl9fTt2YXIgVjM9Y2xhc3MgZXh0ZW5kcyB0NXt9O1YzW18uTG5dPVtVM107dmFyIFQzPWNsYXNzIGV4dGVuZHMgdTV7ZXhlY3V0ZShhKXtyZXR1cm4gbzModGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgYj1hLnl0UmVxdWVzdCxjPWEuZXJyb3IsZD1hLmF0dGVtcHQsZT1hLmNodW5rQ2FsbGJhY2ssZj1iLmNvbmZpZz8uREs7aWYoIShmJiZjIGluc3RhbmNlb2YgeTUmJkczKGMudHlwZSkpfHxkPihmLm1heFJldHJpZXM/PzApKXJldHVybntuZXh0U3RhdGU6IkZBTExCQUNLIixwYXJhbXM6e3l0UmVxdWVzdDpiLGNodW5rQ2FsbGJhY2s6ZX19O3ZhciBoPShjPWYuWEgpP2MuY0ooZCk6LTE7aD09PS0xJiYoaD0xRTMpO2YuQ3khPT12b2lkIDAmJihoPU1hdGgubWluKGgsZi5DeSkpO3lpZWxkKnAzKGszKG5ldyBQcm9taXNlKGs9PntfLk50KGssaCl9KSkpO3JldHVybntuZXh0U3RhdGU6IkZFVENIIixwYXJhbXM6e3l0UmVxdWVzdDpiLGNodW5rQ2FsbGJhY2s6ZSxhdHRlbXB0OmR9fX0oKX0pfX07dmFyIFczPWNsYXNzIGV4dGVuZHMgdTV7ZXhlY3V0ZShhKXtyZXR1cm4gbzModGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgYj1hLmNodW5rQ2FsbGJhY2ssYz1hLnJlc3BvbnNlUGF5bG9hZCxkPWEud2lyZVJlc3BvbnNlO2ImJihiKGMpLCJwbGF5ZXJSZXNwb25zZSJpbiBkJiZkLnBsYXllclJlc3BvbnNlJiYoXy5DaygpLChiPV8uc2EoInl0LnNjaGVkdWxlci5pbnN0YW5jZS5zZXRQcmlvcml0eVRocmVzaG9sZCIpKSYmYig0KSkpO3JldHVybntuZXh0U3RhdGU6IkRPTkUiLHZhbHVlOmN9fSgpfSl9fTt2YXIgbndhPVsidHlwZS5nb29nbGVhcGlzLmNvbS95b3V0dWJlLmFwaS5wZmlpbm5lcnR1YmUuWW91dHViZUFwaUlubmVydHViZS5Ccm93c2VSZXNwb25zZSIsInR5cGUuZ29vZ2xlYXBpcy5jb20veW91dHViZS5hcGkucGZpaW5uZXJ0dWJlLllvdXR1YmVBcGlJbm5lcnR1YmUuUGxheWVyUmVzcG9uc2UiLCJ0eXBlLmdvb2dsZWFwaXMuY29tL3lvdXR1YmUuYXBpLnBmaWlubmVydHViZS5Zb3V0dWJlQXBpSW5uZXJ0dWJlLlBhbmVsUmVzcG9uc2UiXSxYMz1jbGFzcyBleHRlbmRzIHU1e2V4ZWN1dGUoYSl7cmV0dXJuIG8zKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIGI9YS5vbmVQbGF0Zm9ybUVycm9yO2lmKGImJiJkZXRhaWxzImluIGImJmIuZGV0YWlscyl7Yj1iLmRldGFpbHM7Zm9yKGxldCBjIG9mIGIpaWYoKGI9Y1siQHR5cGUiXSkmJm53YS5pbmRleE9mKGIpPi0xKXJldHVybiBkZWxldGUgY1siQHR5cGUiXSx7bmV4dFN0YXRlOiJQUk9DRVNTX1JFU1BPTlNFIiwKcGFyYW1zOnsuLi5hLGV4dHJhY3RlZFJlc3BvbnNlOmN9fX1yZXR1cm57bmV4dFN0YXRlOiJGQUlMRUQiLGVycm9yOkVycm9yKCJTZSIpfX0oKX0pfX07dmFyIFkzPWNsYXNzIGV4dGVuZHMgdTV7Y29uc3RydWN0b3IoYSl7c3VwZXIoKTt0aGlzLmo9YX1leGVjdXRlKGEpe3ZhciBiPXRoaXMuajtyZXR1cm4gbzModGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgYz1hLmV4dHJhY3RlZFJlc3BvbnNlLGQ9YS55dFJlcXVlc3QsZT1hLnJlc3BvbnNlUGF5bG9hZCxmPWEud2lyZVJlc3BvbnNlO2lmKGMmJiEoImNvZGUiaW4gY3x8ImVycm9yImluIGMpJiYhYy5zZXF1ZW5jZU1ldGFEYXRhPy5za2lwUHJvY2Vzc2luZylmb3IobGV0IGggb2YgRjMpYltoXSYmYltoXS5oYW5kbGVSZXNwb25zZShjLGQpO2Yud2F0Y2hOZXh0UmVzcG9uc2V8fGYucmVlbEl0ZW1XYXRjaFJlc3BvbnNlP2Yud2F0Y2hOZXh0UmVzcG9uc2U/ZS5jb250ZW50PWYud2F0Y2hOZXh0UmVzcG9uc2U6ZS5jb250ZW50PWYucmVlbEl0ZW1XYXRjaFJlc3BvbnNlOmYucGxheWVyUmVzcG9uc2U/ZS5wbGF5ZXI9Zi5wbGF5ZXJSZXNwb25zZTpmLnJlZWxXYXRjaFNlcXVlbmNlUmVzcG9uc2U/CmUuZG49Zi5yZWVsV2F0Y2hTZXF1ZW5jZVJlc3BvbnNlOmUuY29udGVudD1mO3JldHVybntuZXh0U3RhdGU6IkNBTExCQUNLX0RJU1BBVENIRVIiLHBhcmFtczphfX0oKX0pfX07WTNbXy5Mbl09W18uSnldO3ZhciBiND1jbGFzcyBleHRlbmRzIHQ1e307YjRbXy5Mbl09WyQzXTt2YXIgWjM9Y2xhc3MgZXh0ZW5kcyB1NXtleGVjdXRlKGEpe3JldHVybiBvMyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBiPWEud2lyZVJlc3BvbnNlLGM7QXJyYXkuaXNBcnJheShiKT9jPWJbMF06dHlwZW9mIGI9PT0ib2JqZWN0IiYmYiE9PW51bGwmJigicGxheWVyUmVzcG9uc2UiaW4gYnx8IndhdGNoTmV4dFJlc3BvbnNlImluIGJ8fCJyZWVsSXRlbVdhdGNoUmVzcG9uc2UiaW4gYnx8InJlZWxXYXRjaFNlcXVlbmNlUmVzcG9uc2UiaW4gYik/Yz1iLnBsYXllclJlc3BvbnNlfHxiLndhdGNoTmV4dFJlc3BvbnNlfHxiLnJlZWxJdGVtV2F0Y2hSZXNwb25zZXx8Yi5yZWVsV2F0Y2hTZXF1ZW5jZVJlc3BvbnNlOmM9YjtyZXR1cm4gYyYmImVycm9yImluIGM/e25leHRTdGF0ZToiRVJST1JfVU5QQUNLRVIiLHBhcmFtczp7Li4uYSxvbmVQbGF0Zm9ybUVycm9yOmMuZXJyb3J9fTp7bmV4dFN0YXRlOiJQUk9DRVNTX1JFU1BPTlNFIixwYXJhbXM6ey4uLmEsZXh0cmFjdGVkUmVzcG9uc2U6Y319fSgpfSl9fTt2YXIgb3dhPWNsYXNzIGV4dGVuZHMgdzV7digpe3JldHVybiBpd2F9Z2V0IEIoKXtyZXR1cm4hMH1vKGEpe3JldHVybiBfLkIoYSxkd2EpfHx2b2lkIDB9aihhLGIsYz17fSl7Yi5jaGFubmVsSWRzJiYoYS5jaGFubmVsSWRzPWIuY2hhbm5lbElkcyk7Yi5zaWxvTmFtZSYmKGEuc2lsb05hbWU9Yi5zaWxvTmFtZSk7Yi5wYXJhbXMmJihhLnBhcmFtcz1iLnBhcmFtcyk7Yy5ib3RndWFyZFJlc3BvbnNlJiYoYS5ib3RndWFyZFJlc3BvbnNlPWMuYm90Z3VhcmRSZXNwb25zZSk7Yy5mZWF0dXJlJiYoYS5jbGllbnRGZWF0dXJlPWMuZmVhdHVyZSl9fTt2YXIgcHdhPWNsYXNzIGV4dGVuZHMgdzV7digpe3JldHVybiBqd2F9Z2V0IEIoKXtyZXR1cm4hMH1vKGEpe3JldHVybiBfLkIoYSxfLkR5KXx8dm9pZCAwfWooYSxiKXtiLmNoYW5uZWxJZHMmJihhLmNoYW5uZWxJZHM9Yi5jaGFubmVsSWRzKTtiLnNpbG9OYW1lJiYoYS5zaWxvTmFtZT1iLnNpbG9OYW1lKTtiLnBhcmFtcyYmKGEucGFyYW1zPWIucGFyYW1zKX19O3ZhciB6NT1jbGFzcyBleHRlbmRzIHc1e2NvbnN0cnVjdG9yKGEpe3N1cGVyKCk7dGhpcy5JPWF9digpe3JldHVybiBld2F9byhhKXtyZXR1cm4gXy5CKGEsXy5aeil8fF8uQihhLF8uTWFhKXx8Xy5CKGEsXy5Zeil9aihhLGIpe2Iuc2VyaWFsaXplZFNoYXJlRW50aXR5JiYoYS5zZXJpYWxpemVkU2hhcmVkRW50aXR5PWIuc2VyaWFsaXplZFNoYXJlRW50aXR5KTtiLmNsaWVudFBhcmFtSWRlbnRpZmllciYmdGhpcy5JPy5qKGIuY2xpZW50UGFyYW1JZGVudGlmaWVyKSYmKGEuY2xpZW50UGFyYW1zPXRoaXMuSS5vKGIuY2xpZW50UGFyYW1JZGVudGlmaWVyKSl9fTt6NVtfLkxuXT1bbmV3IF8uVnMoIlNIQVJFX0NMSUVOVF9QQVJBTVNfUFJPVklERVJfVE9LRU4iKV07dmFyIHF3YT1jbGFzcyBleHRlbmRzIHc1e3YoKXtyZXR1cm4gcTV9Z2V0IEIoKXtyZXR1cm4hMH1vKGEpe3JldHVybiBfLkIoYSxfLlV6KXx8dm9pZCAwfWooYSxiLGMpe2EuZmVlZGJhY2tUb2tlbnM9W107Yi5mZWVkYmFja1Rva2VuJiZhLmZlZWRiYWNrVG9rZW5zLnB1c2goYi5mZWVkYmFja1Rva2VuKTtpZihiPWIuY3BufHxjLmNwbilhLmZlZWRiYWNrQ29udGV4dD17Y3BuOmJ9O2EuaXNGZWVkYmFja1Rva2VuVW5lbmNyeXB0ZWQ9ISFjLmlzX2ZlZWRiYWNrX3Rva2VuX3VuZW5jcnlwdGVkO2Euc2hvdWxkTWVyZ2U9ITE7Yy5leHRyYV9mZWVkYmFja190b2tlbnMmJihhLnNob3VsZE1lcmdlPSEwLGEuZmVlZGJhY2tUb2tlbnM9YS5mZWVkYmFja1Rva2Vucy5jb25jYXQoYy5leHRyYV9mZWVkYmFja190b2tlbnMpKX19O3ZhciByd2E9Y2xhc3MgZXh0ZW5kcyB3NXt2KCl7cmV0dXJuIHE1fW8oYSl7cmV0dXJuIF8uQihhLF8uQ3kpfWdldCBCKCl7cmV0dXJuITB9aihhLGIpe2IudW5kb1Rva2VuJiYoYS5mZWVkYmFja1Rva2Vucz1bYi51bmRvVG9rZW5dKTtiLmlzVW5kb1Rva2VuVW5lbmNyeXB0ZWQmJihhLmlzRmVlZGJhY2tUb2tlblVuZW5jcnlwdGVkPWIuaXNVbmRvVG9rZW5VbmVuY3J5cHRlZCl9fTt2YXIgc3dhPWNsYXNzIGV4dGVuZHMgdzV7digpe3JldHVybiBnd2F9byhhKXtyZXR1cm4gXy5CKGEsXy5CeSl8fHZvaWQgMH1qKGEsYil7Yi5wYXJhbXMmJihhLnBhcmFtcz1iLnBhcmFtcyk7Yi5zZWNvbmRhcnlQYXJhbXMmJihhLnNlY29uZGFyeVBhcmFtcz1iLnNlY29uZGFyeVBhcmFtcyl9fTt2YXIgdHdhPWNsYXNzIGV4dGVuZHMgdzV7digpe3JldHVybiBod2F9byhhKXtyZXR1cm4gXy5CKGEsXy5Beil8fHZvaWQgMH1qKGEsYil7Yi5hY3Rpb25zJiYoYS5hY3Rpb25zPWIuYWN0aW9ucyk7Yi5wYXJhbXMmJihhLnBhcmFtcz1iLnBhcmFtcyk7Yi5wbGF5bGlzdElkJiYoYS5wbGF5bGlzdElkPWIucGxheWxpc3RJZCl9fTt2YXIgdXdhPWNsYXNzIGV4dGVuZHMgdzV7digpe3JldHVybiBmd2F9byhhKXtyZXR1cm4gXy5CKGEsXy5OYWEpfWooYSxiLGM9e30pe2Iuc2VyaWFsaXplZFNoYXJlRW50aXR5JiYoYS5zZXJpYWxpemVkU2hhcmVkRW50aXR5PWIuc2VyaWFsaXplZFNoYXJlRW50aXR5KTtjLmluY2x1ZGVMaXN0SWQmJihhLmluY2x1ZGVMaXN0SWQ9ITApfX07dmFyIHZ3YT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIsYyl7dGhpcy5yZXF1ZXN0S2V5PWE7dGhpcy5CPWI7dGhpcy5vPWM7dGhpcy5EPSgpPT5uZXcgWE1MSHR0cFJlcXVlc3Q7dGhpcy5qPXZvaWQgMDt0aGlzLnY9W119Z2V0TGF0ZXN0Q2hhbGxlbmdlUmVzcG9uc2UoKXtyZXR1cm4gdGhpcy5vfX07dmFyIG91YT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMuaj0wO3RoaXMuWGc9Yj8uWGc/P3dpbmRvdzt0aGlzLnltPWI/LnltO3RoaXMucmVxdWVzdEtleT1iPy5yZXF1ZXN0S2V5Pz8oXy50aigicGFyX2Jpcl9rZXkiKXx8Ik80M3owZHBqaGdYMjBTQ3g0S0FvIik7dGhpcy5Icz1iPy5Icz8/KGQ9Pm5ldyBxMihkKSk7dmFyIGM9Yj8uVkk/PygoZCxlLGYpPT5uZXcgdndhKGQsZSxmKSk7dGhpcy5iZ0NoYWxsZW5nZT1TMihhLmJnQ2hhbGxlbmdlKTt0aGlzLnR0bFNlY29uZHM9VTIoVDIoYS5jaGFsbGVuZ2V8fCIiKSk7dGhpcy5vZD1jKHRoaXMucmVxdWVzdEtleSxfLngoInBhcl9hdF9lcCIpP1sid3d3LnlvdXR1YmUuY29tIiwibS55b3V0dWJlLmNvbSJdLmluY2x1ZGVzKF8udS5sb2NhdGlvbi5ob3N0bmFtZSk/Ii9hcGkvam5uL3YxL0dlbmVyYXRlSVQiOiJodHRwczovL2pubi1wYS5nb29nbGVhcGlzLmNvbS8kcnBjL2dvb2dsZS5pbnRlcm5hbC53YWEudjEuV2FhL0dlbmVyYXRlSVQiOgoiaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20vJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9HZW5lcmF0ZUlUIixhKTt0aGlzLkpzPWI/LkpzO251YSh0aGlzLm9kKTt0aGlzLkdyPWI/LkdyPz8oZD0+e18uU2UodGhpcy5YZy5kb2N1bWVudCwidmlzaWJpbGl0eWNoYW5nZSIsKCk9Pnt0aGlzLlhnLmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT09PSJ2aXNpYmxlIiYmZCgpfSl9KX12KCl7RGF0ZS5ub3coKT50aGlzLmordGhpcy50dGxTZWNvbmRzKjFFMyYmdGhpcy52bT8uVSgpfX07dmFyIHV1YT1bInd3dy55b3V0dWJlLW5vY29va2llLmNvbSIsInd3dy55b3V0dWJlZWR1Y2F0aW9uLmNvbSIsInlvdXR1YmUuZ29vZ2xlYXBpcy5jb20iXSx3d2E9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN0YXRlPTE7dGhpcy52bT1udWxsO3RoaXMuaj12b2lkIDB9aW5pdGlhbGl6ZShhLGIsYyxkKXt0aGlzLmo9ZDtpZihhLnByb2dyYW0pe3ZhciBlO2Q9YS5pbnRlcnByZXRlclVybD8/bnVsbDthLmludGVycHJldGVyU2FmZVNjcmlwdD9lPVlfKGEuaW50ZXJwcmV0ZXJTYWZlU2NyaXB0KTplPWEuaW50ZXJwcmV0ZXJTY3JpcHQ/P251bGw7YS5pbnRlcnByZXRlclNhZmVVcmwmJihkPV8uaHcoYS5pbnRlcnByZXRlclNhZmVVcmwpLnRvU3RyaW5nKCkpO3R1YSh0aGlzLGUsZCxhLnByb2dyYW0sYixjKX1lbHNlIF8uSXAoRXJyb3IoIlVlIikpfWlzSW5pdGlhbGl6ZWQoKXtyZXR1cm4gdGhpcy52KCl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5zdGF0ZX1pc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy5zdGF0ZT09PQoyfWludm9rZShhPXt9KXtyZXR1cm4gdGhpcy52KCk/dGhpcy5CKHtLYzphfSk6bnVsbH1kaXNwb3NlKCl7dGhpcy5vKG51bGwpO3RoaXMuUyg4KX12KCl7cmV0dXJuISF0aGlzLnZtfUIoYSl7cmV0dXJuIHRoaXMudm0uWHIoYSl9byhhKXtfLlpkKHRoaXMudm0pO3RoaXMudm09YX1TKGEpe3RoaXMuc3RhdGU9YX19O3ZhciB4d2E9Y2xhc3MgZXh0ZW5kcyB3d2F7byhhKXttNCgpPy5iZ3ZtYSgpO2lmKGEpe2xldCBiPXtiZ3ZtYTphLmRpc3Bvc2UuYmluZChhKSxiZ3ZtYjphLnNuYXBzaG90LmJpbmQoYSksYmd2bWM6YS5Yci5iaW5kKGEpfTtfLnJhKCJ5dC5hYnVzZS5wbGF5ZXJBdHRMb2FkZXIiLGIpO18uRmEoInl0LmFidXNlLnBsYXllckF0dExvYWRlclJ1biIsYz0+YS5zbmFwc2hvdChjKSl9ZWxzZSBfLnJhKCJ5dC5hYnVzZS5wbGF5ZXJBdHRMb2FkZXIiLG51bGwpLF8ucmEoInl0LmFidXNlLnBsYXllckF0dExvYWRlclJ1biIsbnVsbCl9digpe3JldHVybiEhbTQoKX1CKGEpe3JldHVybiBtNCgpLmJndm1jKGEpfX07dmFyIHl3YT1jbGFzcyBleHRlbmRzIF8uV3N7Y29uc3RydWN0b3IoKXtzdXBlcigiZG9jdW1lbnRfYWN0aXZlIik7dGhpcy52PTEwO3RoaXMubz1uZXcgTWFwO3RoaXMudHJhbnNpdGlvbnM9W3tmcm9tOiJkb2N1bWVudF9hY3RpdmUiLHRvOiJkb2N1bWVudF9kaXNwb3NlZF9wcmV2ZW50YWJsZSIsYWN0aW9uOnRoaXMuWX0se2Zyb206ImRvY3VtZW50X2FjdGl2ZSIsdG86ImRvY3VtZW50X2Rpc3Bvc2VkIixhY3Rpb246dGhpcy5LfSx7ZnJvbToiZG9jdW1lbnRfZGlzcG9zZWRfcHJldmVudGFibGUiLHRvOiJkb2N1bWVudF9kaXNwb3NlZCIsYWN0aW9uOnRoaXMuS30se2Zyb206ImRvY3VtZW50X2Rpc3Bvc2VkX3ByZXZlbnRhYmxlIix0bzoiZmx1c2hfbG9ncyIsYWN0aW9uOnRoaXMuSX0se2Zyb206ImRvY3VtZW50X2Rpc3Bvc2VkX3ByZXZlbnRhYmxlIix0bzoiZG9jdW1lbnRfYWN0aXZlIixhY3Rpb246dGhpcy5EfSx7ZnJvbToiZG9jdW1lbnRfZGlzcG9zZWQiLHRvOiJmbHVzaF9sb2dzIiwKYWN0aW9uOnRoaXMuSX0se2Zyb206ImRvY3VtZW50X2Rpc3Bvc2VkIix0bzoiZG9jdW1lbnRfYWN0aXZlIixhY3Rpb246dGhpcy5EfSx7ZnJvbToiZG9jdW1lbnRfZGlzcG9zZWQiLHRvOiJkb2N1bWVudF9kaXNwb3NlZCIsYWN0aW9uOigpPT57fX0se2Zyb206ImZsdXNoX2xvZ3MiLHRvOiJkb2N1bWVudF9hY3RpdmUiLGFjdGlvbjp0aGlzLkR9XTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLGE9Pnt0aGlzLnRyYW5zaXRpb24oImRvY3VtZW50X2Rpc3Bvc2VkIix7ZXZlbnQ6YX0pO2EucGVyc2lzdGVkPT09ITEmJih0aGlzLm89bmV3IE1hcCl9KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIixhPT57dGhpcy50cmFuc2l0aW9uKCJkb2N1bWVudF9kaXNwb3NlZF9wcmV2ZW50YWJsZSIse2V2ZW50OmF9KX0pfVkoYSxiKXtpZighdGhpcy5vLmdldCgiZG9jdW1lbnRfZGlzcG9zZWRfcHJldmVudGFibGUiKSYmKGEoYj8uZXZlbnQpLGI/LmV2ZW50Py5kZWZhdWx0UHJldmVudGVkfHwKYj8uZXZlbnQ/LnJldHVyblZhbHVlKSl7Yi5ldmVudC5yZXR1cm5WYWx1ZXx8KGIuZXZlbnQucmV0dXJuVmFsdWU9ITApO2IuZXZlbnQuZGVmYXVsdFByZXZlbnRlZHx8Yi5ldmVudC5wcmV2ZW50RGVmYXVsdCgpO3RoaXMubz1uZXcgTWFwO3RoaXMudHJhbnNpdGlvbigiZG9jdW1lbnRfYWN0aXZlIik7cmV0dXJufXRoaXMuby5zZXQoImRvY3VtZW50X2Rpc3Bvc2VkX3ByZXZlbnRhYmxlIiwhMCk7dGhpcy5vLmdldCgiZG9jdW1lbnRfZGlzcG9zZWQiKT90aGlzLnRyYW5zaXRpb24oImZsdXNoX2xvZ3MiKTp0aGlzLnRyYW5zaXRpb24oImRvY3VtZW50X2Rpc3Bvc2VkIil9SyhhLGIpe3RoaXMuby5nZXQoImRvY3VtZW50X2Rpc3Bvc2VkIik/dGhpcy50cmFuc2l0aW9uKCJkb2N1bWVudF9hY3RpdmUiKTooYShiPy5ldmVudCksdGhpcy5vLnNldCgiZG9jdW1lbnRfZGlzcG9zZWQiLCEwKSx0aGlzLnRyYW5zaXRpb24oImZsdXNoX2xvZ3MiKSl9SShhLGIpe2EoYj8uZXZlbnQpO3RoaXMudHJhbnNpdGlvbigiZG9jdW1lbnRfYWN0aXZlIil9RCgpe3RoaXMubz0KbmV3IE1hcH19O3ZhciB6d2E9Y2xhc3MgZXh0ZW5kcyBfLldze2NvbnN0cnVjdG9yKCl7c3VwZXIoImRvY3VtZW50X3Zpc2liaWxpdHlfdW5rbm93biIpO3RoaXMudHJhbnNpdGlvbnM9W3tmcm9tOiJkb2N1bWVudF92aXNpYmlsaXR5X3Vua25vd24iLHRvOiJkb2N1bWVudF92aXNpYmxlIixhY3Rpb246dGhpcy5EfSx7ZnJvbToiZG9jdW1lbnRfdmlzaWJpbGl0eV91bmtub3duIix0bzoiZG9jdW1lbnRfaGlkZGVuIixhY3Rpb246dGhpcy5vfSx7ZnJvbToiZG9jdW1lbnRfdmlzaWJpbGl0eV91bmtub3duIix0bzoiZG9jdW1lbnRfZm9yZWdyb3VuZGVkIixhY3Rpb246dGhpcy5JfSx7ZnJvbToiZG9jdW1lbnRfdmlzaWJpbGl0eV91bmtub3duIix0bzoiZG9jdW1lbnRfYmFja2dyb3VuZGVkIixhY3Rpb246dGhpcy5LfSx7ZnJvbToiZG9jdW1lbnRfdmlzaWJsZSIsdG86ImRvY3VtZW50X2hpZGRlbiIsYWN0aW9uOnRoaXMub30se2Zyb206ImRvY3VtZW50X3Zpc2libGUiLHRvOiJkb2N1bWVudF9mb3JlZ3JvdW5kZWQiLAphY3Rpb246dGhpcy5JfSx7ZnJvbToiZG9jdW1lbnRfdmlzaWJsZSIsdG86ImRvY3VtZW50X3Zpc2libGUiLGFjdGlvbjp0aGlzLkR9LHtmcm9tOiJkb2N1bWVudF9mb3JlZ3JvdW5kZWQiLHRvOiJkb2N1bWVudF92aXNpYmxlIixhY3Rpb246dGhpcy5EfSx7ZnJvbToiZG9jdW1lbnRfZm9yZWdyb3VuZGVkIix0bzoiZG9jdW1lbnRfaGlkZGVuIixhY3Rpb246dGhpcy5vfSx7ZnJvbToiZG9jdW1lbnRfZm9yZWdyb3VuZGVkIix0bzoiZG9jdW1lbnRfZm9yZWdyb3VuZGVkIixhY3Rpb246dGhpcy5JfSx7ZnJvbToiZG9jdW1lbnRfaGlkZGVuIix0bzoiZG9jdW1lbnRfdmlzaWJsZSIsYWN0aW9uOnRoaXMuRH0se2Zyb206ImRvY3VtZW50X2hpZGRlbiIsdG86ImRvY3VtZW50X2JhY2tncm91bmRlZCIsYWN0aW9uOnRoaXMuS30se2Zyb206ImRvY3VtZW50X2hpZGRlbiIsdG86ImRvY3VtZW50X2hpZGRlbiIsYWN0aW9uOnRoaXMub30se2Zyb206ImRvY3VtZW50X2JhY2tncm91bmRlZCIsdG86ImRvY3VtZW50X2hpZGRlbiIsCmFjdGlvbjp0aGlzLm99LHtmcm9tOiJkb2N1bWVudF9iYWNrZ3JvdW5kZWQiLHRvOiJkb2N1bWVudF9iYWNrZ3JvdW5kZWQiLGFjdGlvbjp0aGlzLkt9LHtmcm9tOiJkb2N1bWVudF9iYWNrZ3JvdW5kZWQiLHRvOiJkb2N1bWVudF92aXNpYmxlIixhY3Rpb246dGhpcy5EfV07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsYT0+e2RvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT09PSJ2aXNpYmxlIj90aGlzLnRyYW5zaXRpb24oImRvY3VtZW50X3Zpc2libGUiLHtldmVudDphfSk6dGhpcy50cmFuc2l0aW9uKCJkb2N1bWVudF9oaWRkZW4iLHtldmVudDphfSl9KTtfLngoInZpc2liaWxpdHlfbGlmZWN5Y2xlc19keW5hbWljX2JhY2tncm91bmRpbmciKSYmKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJibHVyIixhPT57dGhpcy50cmFuc2l0aW9uKCJkb2N1bWVudF9iYWNrZ3JvdW5kZWQiLHtldmVudDphfSl9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLAphPT57dGhpcy50cmFuc2l0aW9uKCJkb2N1bWVudF9mb3JlZ3JvdW5kZWQiLHtldmVudDphfSl9KSl9RChhLGIpe2EoYj8uZXZlbnQpO18ueCgidmlzaWJpbGl0eV9saWZlY3ljbGVzX2R5bmFtaWNfYmFja2dyb3VuZGluZyIpJiZ0aGlzLnRyYW5zaXRpb24oImRvY3VtZW50X2ZvcmVncm91bmRlZCIpfW8oYSxiKXthKGI/LmV2ZW50KTtfLngoInZpc2liaWxpdHlfbGlmZWN5Y2xlc19keW5hbWljX2JhY2tncm91bmRpbmciKSYmdGhpcy50cmFuc2l0aW9uKCJkb2N1bWVudF9iYWNrZ3JvdW5kZWQiKX1LKGEsYil7YShiPy5ldmVudCl9SShhLGIpe2EoYj8uZXZlbnQpfX07dmFyIEF3YT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuQj1uZXcgeXdhO3RoaXMuRD1uZXcgendhfWluc3RhbGwoLi4uYSl7YS5mb3JFYWNoKGI9Pnt0aGlzLkIuaW5zdGFsbChiKX0pO2EuZm9yRWFjaChiPT57dGhpcy5ELmluc3RhbGwoYil9KX19O3ZhciBPND1jbGFzcyBleHRlbmRzIEF3YXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dGhpcy5pbnN0YWxsKHtkb2N1bWVudF9kaXNwb3NlZDp7Y2FsbGJhY2s6dGhpcy5qfX0pO18ueCgiY29tYmluZV92ZV9ncmFmdHMiKSYmdGhpcy5pbnN0YWxsKHtkb2N1bWVudF9kaXNwb3NlZDp7Y2FsbGJhY2s6dGhpcy5vfX0pO3RoaXMuaW5zdGFsbCh7Zmx1c2hfbG9nczp7Y2FsbGJhY2s6dGhpcy52fX0pO18ueCgid2ViX2xvZ19jZmdfY2VlX2tzIil8fF8uWWoodnVhKX12KCl7Xy5FcCgiZmluYWxQYXlsb2FkIix7Y3NuOl8uaXEoKX0pfWooKXtfLm15KF8uRXkpO18uRnkhPW51bGwmJl8uRnkuZmx1c2goKX1vKCl7Xy5reChfLmh4KCkpfX07dmFyIG40PWNsYXNzIGV4dGVuZHMgXy5Yantjb25zdHJ1Y3RvcihhLC4uLmIpe3N1cGVyKGEsYik7dGhpcy5lcnJvclR5cGU9MTtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxuZXcudGFyZ2V0LnByb3RvdHlwZSl9fTt2YXIgczQ9Y2xhc3N7Y29uc3RydWN0b3IoYSl7dGhpcy5qPWF9YXN5bmMgZmV0Y2goYSxiLGMsZCl7YT13dWEodGhpcyxhLGIpO3RyeXtsZXQgZT1hd2FpdCBmZXRjaChhKTtpZihkJiZlLm9rJiZlLmJvZHkmJnR5cGVvZiBlLmJvZHkuZ2V0UmVhZGVyPT09ImZ1bmN0aW9uIil7bGV0IGY9ZS5jbG9uZSgpLmJvZHkuZ2V0UmVhZGVyKCkse3ZhbHVlOmh9PWF3YWl0IGYucmVhZCgpO2YuY2FuY2VsKCkuY2F0Y2goKCk9Pnt9KTtpZihoJiZoWzBdPT09OTEpe2xldCBrPWUuYm9keS5waXBlVGhyb3VnaChuZXcgVGV4dERlY29kZXJTdHJlYW0pLmdldFJlYWRlcigpO3JldHVybiBvNCh0aGlzLGssbmV3IHoyLFtdLGQpfX1yZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVSZXNwb25zZShlLGMpfWNhdGNoKGUpe2lmKF8uSXAoZSksYz8uUHYmJmUgaW5zdGFuY2VvZiBuNCYmZS5lcnJvclR5cGU9PT0xKXRocm93IGU7fX1oYW5kbGVSZXNwb25zZShhLGIpe3ZhciBjPWEudGV4dCgpLnRoZW4oZD0+e2lmKGI/Lmd5JiYKYS5vaylyZXR1cm4gXy5YeChiLmd5LGQpO2Q9ZC5yZXBsYWNlKCIpXX0nIiwiIik7aWYoYj8uUHYmJmQpdHJ5e3ZhciBlPUpTT04ucGFyc2UoZCl9Y2F0Y2goZil7dGhyb3cgbmV3IG40KCJKU09OIHBhcnNpbmcgZmFpbGVkIGFmdGVyIGZldGNoIik7fXJldHVybiBlPz9KU09OLnBhcnNlKGQpfSk7YS5yZWRpcmVjdGVkfHxhLm9rP3RoaXMuaiYmdGhpcy5qLnN1Y2Nlc3MoKToodGhpcy5qJiZ0aGlzLmouU0koKSxjPWMudGhlbihkPT57Xy5JcChuZXcgXy5YaigiRXJyb3I6IEFQSSBmZXRjaCBmYWlsZWQiLGEuc3RhdHVzLGEudXJsLGQpKTtyZXR1cm57Li4uZCxlcnJvck1ldGFkYXRhOntzdGF0dXM6YS5zdGF0dXN9fX0pKTtyZXR1cm4gY319O3M0W18uTG5dPVtfLkluKG5ldyBfLlZzKCJORVRXT1JLX1NMSV9UT0tFTiIpKV07dmFyIHA0PWNsYXNze3N0YXRpYyBqYygpe3ZhciBhPV8uc2EoInl0Z2xvYmFsLnN0b3JhZ2VfIik7YXx8KGE9bmV3IHA0LF8ucmEoInl0Z2xvYmFsLnN0b3JhZ2VfIixhKSk7cmV0dXJuIGF9YXN5bmMgZXN0aW1hdGUoKXt2YXIgYT1uYXZpZ2F0b3I7aWYoYS5zdG9yYWdlPy5lc3RpbWF0ZSlyZXR1cm4gYS5zdG9yYWdlLmVzdGltYXRlKCk7aWYoYS53ZWJraXRUZW1wb3JhcnlTdG9yYWdlPy5xdWVyeVVzYWdlQW5kUXVvdGEpcmV0dXJuIHh1YSgpfWFzeW5jIHBlcnNpc3QoKXt2YXIgYT1uYXZpZ2F0b3I7cmV0dXJuIGEuc3RvcmFnZT8ucGVyc2lzdD9hd2FpdCBhLnN0b3JhZ2U/LnBlcnNpc3QoKT8iUEVSU0lTVEVEX1NUQVRFX0dSQU5URUQiOiJQRVJTSVNURURfU1RBVEVfTk9UX0dSQU5URUQiOiJQRVJTSVNURURfU1RBVEVfTk9UX1NVUFBPUlRFRCJ9fTtfLnJhKCJ5dGdsb2JhbC5zdG9yYWdlQ2xhc3NfIixwNCk7dmFyIEFyYT1jbGFzc3tjb25zdHJ1Y3RvcihhLGIpe3RoaXMuaGFuZGxlRXJyb3I9YTt0aGlzLmo9Yjt0aGlzLm89ITE7c2VsZi5kb2N1bWVudD09PXZvaWQgMHx8c2VsZi5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLCgpPT57dGhpcy5vPSEwfSk7dGhpcy52PU1hdGgucmFuZG9tKCk8PS4yfUpiKGEpe3RoaXMuaGFuZGxlRXJyb3IoYSl9bG0oYSxiKXtzd2l0Y2goYSl7Y2FzZSAiSURCX0RBVEFfQ09SUlVQVEVEIjpfLngoImlkYl9kYXRhX2NvcnJ1cHRlZF9raWxsc3dpdGNoIil8fHRoaXMuaigiaWRiRGF0YUNvcnJ1cHRlZCIsYik7YnJlYWs7Y2FzZSAiSURCX1VORVhQRUNURURMWV9DTE9TRUQiOnRoaXMuaigiaWRiVW5leHBlY3RlZGx5Q2xvc2VkIixiKTticmVhaztjYXNlICJJU19TVVBQT1JURURfQ09NUExFVEVEIjpfLngoImlkYl9pc19zdXBwb3J0ZWRfY29tcGxldGVkX2tpbGxzd2l0Y2giKXx8dGhpcy5qKCJpZGJJc1N1cHBvcnRlZENvbXBsZXRlZCIsYik7YnJlYWs7CmNhc2UgIlFVT1RBX0VYQ0VFREVEIjp5dWEodGhpcyxiKTticmVhaztjYXNlICJUUkFOU0FDVElPTl9FTkRFRCI6dGhpcy52JiZNYXRoLnJhbmRvbSgpPD0uMSYmdGhpcy5qKCJpZGJUcmFuc2FjdGlvbkVuZGVkIixiKTticmVhaztjYXNlICJUUkFOU0FDVElPTl9VTkVYUEVDVEVETFlfQUJPUlRFRCI6dGhpcy5qKCJpZGJUcmFuc2FjdGlvbkFib3J0ZWQiLHsuLi5iLGhhc1dpbmRvd1VubG9hZGVkOnRoaXMub30pfX19O3ZhciBBNT0hMTt2YXIgQ3VhPXtGaTp7ZmVlZGJhY2tFbmRwb2ludDp5Myhxd2EpLG1vZGlmeUNoYW5uZWxOb3RpZmljYXRpb25QcmVmZXJlbmNlRW5kcG9pbnQ6eTMoc3dhKSxwbGF5bGlzdEVkaXRFbmRwb2ludDp5Myh0d2EpLHNoYXJlRW50aXR5RW5kcG9pbnQ6eTMoejUpLHN1YnNjcmliZUVuZHBvaW50OnkzKG93YSksdW5kb0ZlZWRiYWNrRW5kcG9pbnQ6eTMocndhKSx1bnN1YnNjcmliZUVuZHBvaW50OnkzKHB3YSksd2ViUGxheWVyU2hhcmVFbnRpdHlTZXJ2aWNlRW5kcG9pbnQ6eTModXdhKX19O3ZhciBGdWE9bmV3IE1hcCxFdWE9Y2xhc3MgZXh0ZW5kcyBfLmFle2NvbnN0cnVjdG9yKGEsYixjLGQsZSl7c3VwZXIoKTt0aGlzLmNvbnRhaW5lcj1hO3RoaXMud2ViUGxheWVyQ29udGV4dENvbmZpZz1iO3RoaXMuaj1jO3RoaXMuRWo9ZDt0aGlzLnBsYXllclZhcnM9ZTtKdWEodGhpcyl9bGEoKXt0aGlzLmFwaSYmdGhpcy5hcGkuZGVzdHJveSgpO1dfKHRoaXMuY29udGFpbmVyKTtzdXBlci5sYSgpfX07dmFyIEJ3YT17WyJhcGkuaW52YWxpZHBhcmFtIl06MixhdXRoOjE1MCxbImRybS5hdXRoIl06MTUwLFsiaGVhcnRiZWF0Lm5ldCJdOjE1MCxbImhlYXJ0YmVhdC5zZXJ2ZXJlcnJvciJdOjE1MCxbImhlYXJ0YmVhdC5zdG9wIl06MTUwLFsiaHRtbDUudW5zdXBwb3J0ZWRhZHMiXTo1LFsiZm10Lm5vbmVhdmFpbGFibGUiXTo1LFsiZm10LmRlY29kZSJdOjUsWyJmbXQudW5wbGF5YWJsZSJdOjUsWyJodG1sNS5taXNzaW5nYXBpIl06NSxbImh0bWw1LnVuc3VwcG9ydGVkbGl2ZSJdOjUsWyJkcm0udW5hdmFpbGFibGUiXTo1LFsibXJtLmJsb2NrZWQiXToxNTEsWyJlbWJlZGRlci5pZGVudGl0eS5kZW5pZWQiXToxNTIsWyJlbWJlZGRlci5pZGVudGl0eS5taXNzaW5nLnJlZmVycmVyIl06MTUzfTt2YXIgTHVhPW5ldyBTZXQoImVuZFNlY29uZHMgc3RhcnRTZWNvbmRzIG1lZGlhQ29udGVudFVybCBzdWdnZXN0ZWRRdWFsaXR5IHZpZGVvSWQgcmN0IHJjdG4gcGxheW11dGVkIG11dGVkX2F1dG9wbGF5X2R1cmF0aW9uX21vZGUiLnNwbGl0KCIgIikpO3ZhciBXdWE9Y2xhc3MgZXh0ZW5kcyBfLmFle2NvbnN0cnVjdG9yKCl7dmFyIGE9TDQsYj1INDtzdXBlcigpO3RoaXMuYXBpPWE7dGhpcy52PXRoaXMuTT0hMTt0aGlzLlU9W107dGhpcy5aPXt9O3RoaXMuQj1bXTt0aGlzLm89W107dGhpcy5oYT0hMTt0aGlzLnNlc3Npb25JZD10aGlzLmo9bnVsbDt0aGlzLnRhcmdldE9yaWdpbj0iKiI7dGhpcy5nYT1fLngoIndlYl9wbGF5ZXJfc3BsaXRfZXZlbnRfYnVzX2lmcmFtZSIpO3RoaXMuST1fLncoIlBPU1RfTUVTU0FHRV9PUklHSU4iKXx8YCR7ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2x9Ly8ke2RvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lfWA7dGhpcy5EPWM9Pnt0aGlzLm9uTWVzc2FnZShjKX07QjUuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5EKTtpZihhPV8udygiV0lER0VUX0lEIikpdGhpcy5zZXNzaW9uSWQ9YTtiJiZ0aGlzLkQoYik7QTQodGhpcywib25SZWFkeSIsKCk9Pnt0aGlzLk09ITA7dmFyIGM9dGhpcy5hcGkuZ2V0VmlkZW9EYXRhKCk7CmMuaXNQbGF5YWJsZXx8KHRoaXMuaGE9ITAsdGhpcy5lcnJvckNvZGU9KGM9Yy5lcnJvckNvZGUpP0J3YVtjXXx8NTo1LHRoaXMuc2VuZE1lc3NhZ2UoIm9uRXJyb3IiLE51bWJlcih0aGlzLmVycm9yQ29kZSkpKTtENCh0aGlzKTt0aGlzLmp8fHRoaXMudnx8d2luZG93LnBhcmVudD09PXdpbmRvd3x8IXRoaXMuc2Vzc2lvbklkfHxDNCh0aGlzLHtldmVudDoicmVhZHlUb0xpc3RlbiJ9LHdpbmRvdy5wYXJlbnQpfSk7QTQodGhpcywib25WaWRlb1Byb2dyZXNzIix0aGlzLmZjLmJpbmQodGhpcykpO0E0KHRoaXMsIm9uVm9sdW1lQ2hhbmdlIix0aGlzLlZkLmJpbmQodGhpcykpO0E0KHRoaXMsIm9uQXBpQ2hhbmdlIix0aGlzLm9hLmJpbmQodGhpcykpO0E0KHRoaXMsIm9uUGxheWJhY2tRdWFsaXR5Q2hhbmdlIix0aGlzLk1hLmJpbmQodGhpcykpO0E0KHRoaXMsIm9uUGxheWJhY2tSYXRlQ2hhbmdlIix0aGlzLlFhLmJpbmQodGhpcykpO0E0KHRoaXMsIm9uU3RhdGVDaGFuZ2UiLHRoaXMuRWIuYmluZCh0aGlzKSk7CkE0KHRoaXMsIm9uV2ViZ2xTZXR0aW5nc0NoYW5nZWQiLHRoaXMuRmwuYmluZCh0aGlzKSk7QTQodGhpcywib25DYXB0aW9uc1RyYWNrTGlzdENoYW5nZWQiLHRoaXMueWEuYmluZCh0aGlzKSk7QTQodGhpcywiY2FwdGlvbnNzZXR0aW5nc2NoYW5nZWQiLHRoaXMuRmEuYmluZCh0aGlzKSl9c2VuZE1lc3NhZ2UoYSxiKXthPXtldmVudDphLGluZm86Yj09PXZvaWQgMD9udWxsOmJ9O3RoaXMudj9DNCh0aGlzLGEpOnRoaXMuVS5wdXNoKGEpfUViKGEpe2E9e3BsYXllclN0YXRlOmEsY3VycmVudFRpbWU6dGhpcy5hcGkuZ2V0Q3VycmVudFRpbWUoKSxkdXJhdGlvbjp0aGlzLmFwaS5nZXREdXJhdGlvbigpLHZpZGVvRGF0YTp0aGlzLmFwaS5nZXRWaWRlb0RhdGEoKSx2aWRlb1N0YXJ0Qnl0ZXM6MCx2aWRlb0J5dGVzVG90YWw6dGhpcy5hcGkuZ2V0VmlkZW9CeXRlc1RvdGFsKCksdmlkZW9Mb2FkZWRGcmFjdGlvbjp0aGlzLmFwaS5nZXRWaWRlb0xvYWRlZEZyYWN0aW9uKCkscGxheWJhY2tRdWFsaXR5OnRoaXMuYXBpLmdldFBsYXliYWNrUXVhbGl0eSgpLAphdmFpbGFibGVRdWFsaXR5TGV2ZWxzOnRoaXMuYXBpLmdldEF2YWlsYWJsZVF1YWxpdHlMZXZlbHMoKSxjdXJyZW50VGltZUxhc3RVcGRhdGVkXzpEYXRlLm5vdygpLzFFMyxwbGF5YmFja1JhdGU6dGhpcy5hcGkuZ2V0UGxheWJhY2tSYXRlKCksbWVkaWFSZWZlcmVuY2VUaW1lOnRoaXMuYXBpLmdldE1lZGlhUmVmZXJlbmNlVGltZSgpfTt0aGlzLmFwaS5nZXRWaWRlb1VybCYmKGEudmlkZW9Vcmw9dGhpcy5hcGkuZ2V0VmlkZW9VcmwoKSk7dGhpcy5hcGkuZ2V0VmlkZW9Db250ZW50UmVjdCYmKGEudmlkZW9Db250ZW50UmVjdD10aGlzLmFwaS5nZXRWaWRlb0NvbnRlbnRSZWN0KCkpO3RoaXMuYXBpLmdldFByb2dyZXNzU3RhdGUmJihhLnByb2dyZXNzU3RhdGU9dGhpcy5hcGkuZ2V0UHJvZ3Jlc3NTdGF0ZSgpKTt0aGlzLmFwaS5nZXRQbGF5bGlzdCYmKGEucGxheWxpc3Q9dGhpcy5hcGkuZ2V0UGxheWxpc3QoKSk7dGhpcy5hcGkuZ2V0UGxheWxpc3RJbmRleCYmKGEucGxheWxpc3RJbmRleD0KdGhpcy5hcGkuZ2V0UGxheWxpc3RJbmRleCgpKTtFNCh0aGlzLGEpfU1hKGEpe2E9e3BsYXliYWNrUXVhbGl0eTphfTt0aGlzLmFwaS5nZXRBdmFpbGFibGVRdWFsaXR5TGV2ZWxzJiYoYS5hdmFpbGFibGVRdWFsaXR5TGV2ZWxzPXRoaXMuYXBpLmdldEF2YWlsYWJsZVF1YWxpdHlMZXZlbHMoKSk7dGhpcy5hcGkuZ2V0UHJlZmVycmVkUXVhbGl0eSYmKGEucHJlZmVycmVkUXVhbGl0eT10aGlzLmFwaS5nZXRQcmVmZXJyZWRRdWFsaXR5KCkpO0U0KHRoaXMsYSl9UWEoYSl7RTQodGhpcyx7cGxheWJhY2tSYXRlOmF9KX1vYSgpe3ZhciBhPXRoaXMuYXBpLmdldE9wdGlvbnMoKSxiPXtuYW1lc3BhY2VzOmF9O2ZvcihsZXQgYz0wLGQ9YS5sZW5ndGg7YzxkO2MrKyl7bGV0IGU9YVtjXSxmPXRoaXMuYXBpLmdldE9wdGlvbnMoZSk7YltlXT17b3B0aW9uczpmfTtmb3IobGV0IGg9MCxrPWYubGVuZ3RoO2g8aztoKyspe2xldCBsPWZbaF0sbT10aGlzLmFwaS5nZXRPcHRpb24oZSxsKTtiW2VdW2xdPQptfX10aGlzLnNlbmRNZXNzYWdlKCJhcGlJbmZvRGVsaXZlcnkiLGIpfVZkKCl7RTQodGhpcyx7bXV0ZWQ6dGhpcy5hcGkuaXNNdXRlZCgpLHZvbHVtZTp0aGlzLmFwaS5nZXRWb2x1bWUoKX0pfWZjKGEpe2E9e2N1cnJlbnRUaW1lOmEsdmlkZW9CeXRlc0xvYWRlZDp0aGlzLmFwaS5nZXRWaWRlb0J5dGVzTG9hZGVkKCksdmlkZW9Mb2FkZWRGcmFjdGlvbjp0aGlzLmFwaS5nZXRWaWRlb0xvYWRlZEZyYWN0aW9uKCksY3VycmVudFRpbWVMYXN0VXBkYXRlZF86RGF0ZS5ub3coKS8xRTMscGxheWJhY2tSYXRlOnRoaXMuYXBpLmdldFBsYXliYWNrUmF0ZSgpLG1lZGlhUmVmZXJlbmNlVGltZTp0aGlzLmFwaS5nZXRNZWRpYVJlZmVyZW5jZVRpbWUoKX07dGhpcy5hcGkuZ2V0UHJvZ3Jlc3NTdGF0ZSYmKGEucHJvZ3Jlc3NTdGF0ZT10aGlzLmFwaS5nZXRQcm9ncmVzc1N0YXRlKCkpO0U0KHRoaXMsYSl9RmwoKXtFNCh0aGlzLHtzcGhlcmljYWxQcm9wZXJ0aWVzOnRoaXMuYXBpLmdldFNwaGVyaWNhbFByb3BlcnRpZXMoKX0pfXlhKCl7aWYodGhpcy5hcGkuZ2V0Q2FwdGlvblRyYWNrcyl7bGV0IGE9CntjYXB0aW9uVHJhY2tzOnRoaXMuYXBpLmdldENhcHRpb25UcmFja3MoKX07RTQodGhpcyxhKX19RmEoKXtpZih0aGlzLmFwaS5nZXRTdWJ0aXRsZXNVc2VyU2V0dGluZ3Mpe2xldCBhPXtzdWJ0aXRsZXNVc2VyU2V0dGluZ3M6dGhpcy5hcGkuZ2V0U3VidGl0bGVzVXNlclNldHRpbmdzKCl9O0U0KHRoaXMsYSl9fW9uTWVzc2FnZShhKXtpZighKHRoaXMuSSE9PSIqIiYmYS5vcmlnaW4hPT10aGlzLkl8fHRoaXMuaiYmYS5zb3VyY2UhPT10aGlzLmp8fHR5cGVvZiBhLmRhdGEhPT0ic3RyaW5nIikpe3RyeXt2YXIgYj1KU09OLnBhcnNlKGEuZGF0YSl9Y2F0Y2goZil7cmV0dXJufWlmKGIpc3dpdGNoKGIuZXZlbnQpe2Nhc2UgImxpc3RlbmluZyI6dmFyIGM9YS5zb3VyY2U7YT1hLm9yaWdpbjtiPWIuaWQ7YSE9PSJudWxsIiYmKHRoaXMuST10aGlzLnRhcmdldE9yaWdpbj1hKTt0aGlzLmo9Yzt0aGlzLnNlc3Npb25JZD1iO0Q0KHRoaXMpO2JyZWFrO2Nhc2UgImNvbW1hbmQiOmM9Yi5mdW5jOwp2YXIgZD1iLmFyZ3M7aWYoYz09PSJhZGRFdmVudExpc3RlbmVyIiYmZCliPWRbMF0sYz1hLm9yaWdpbixiPT09Im9uUmVhZHkiP3RoaXMuYXBpLmxvZ0FwaUNhbGwoYCR7Yn0gaW52b2NhdGlvbmAsYyk6Yj09PSJvbkVycm9yIiYmdGhpcy5oYSYmKHRoaXMuYXBpLmxvZ0FwaUNhbGwoYCR7Yn0gaW52b2NhdGlvbmAsYyx0aGlzLmVycm9yQ29kZSksdGhpcy5lcnJvckNvZGU9dm9pZCAwKSx0aGlzLmFwaS5sb2dBcGlDYWxsKGAke2J9IHJlZ2lzdHJhdGlvbmAsYyksdGhpcy5aW2JdfHxiPT09Im9uUmVhZHkifHwoYT1NdWEodGhpcyxiLGMpLHRoaXMuby5wdXNoKHtldmVudFR5cGU6YixsaXN0ZW5lcjphLG9yaWdpbjpjfSksdGhpcy5nYT90aGlzLmFwaS5oYW5kbGVFeHRlcm5hbENhbGwoImFkZEV2ZW50TGlzdGVuZXIiLFtiLGFdLGMpOnRoaXMuYXBpLmFkZEV2ZW50TGlzdGVuZXIoYixhKSx0aGlzLlpbYl09ITApO2Vsc2UgaWYoYj1jLGM9ZCxhPWEub3JpZ2luLHRoaXMuYXBpLmlzRXh0ZXJuYWxNZXRob2RBdmFpbGFibGUoYiwKYSkpe2M9Y3x8W107aWYoYy5sZW5ndGg+MCYmeDQoYikpe3ZhciBlPWM7aWYoXy5BYShlWzBdKSYmIUFycmF5LmlzQXJyYXkoZVswXSkpZD1lWzBdO2Vsc2Ugc3dpdGNoKGQ9e30sYil7Y2FzZSAibG9hZFZpZGVvQnlJZCI6Y2FzZSAiY3VlVmlkZW9CeUlkIjpkPXk0KGVbMF0sZVsxXSE9PXZvaWQgMD9OdW1iZXIoZVsxXSk6dm9pZCAwLGVbMl0pO2JyZWFrO2Nhc2UgImxvYWRWaWRlb0J5VXJsIjpjYXNlICJjdWVWaWRlb0J5VXJsIjpkPWVbMF07dHlwZW9mIGQ9PT0ic3RyaW5nIiYmKGQ9e21lZGlhQ29udGVudFVybDpkLHN0YXJ0U2Vjb25kczplWzFdIT09dm9pZCAwP051bWJlcihlWzFdKTp2b2lkIDAsc3VnZ2VzdGVkUXVhbGl0eTplWzJdfSk7Yjp7aWYoKGU9ZC5tZWRpYUNvbnRlbnRVcmwpJiYoZT0vXC8oW3ZlXXxlbWJlZClcLyhbXiM/XSspLy5leGVjKGUpKSYmZVsyXSl7ZT1lWzJdO2JyZWFrIGJ9ZT1udWxsfWQudmlkZW9JZD1lO2Q9eTQoZCk7YnJlYWs7Y2FzZSAibG9hZFBsYXlsaXN0IjpjYXNlICJjdWVQbGF5bGlzdCI6ZD0KejQoZVswXSxlWzFdLGVbMl0sZVszXSl9Yy5sZW5ndGg9MTtjWzBdPWR9dGhpcy5hcGkuaGFuZGxlRXh0ZXJuYWxDYWxsKGIsYyxhKTt4NChiKSYmRTQodGhpcyxCNCh0aGlzKSl9fX19bGEoKXtzdXBlci5sYSgpO0I1LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMuRCk7Zm9yKHZhciBhPTA7YTx0aGlzLkIubGVuZ3RoO2ErKyl7dmFyIGI9dGhpcy5CW2FdO3RoaXMuYXBpLnJlbW92ZUV2ZW50TGlzdGVuZXIoYi5ldmVudFR5cGUsYi5saXN0ZW5lcil9dGhpcy5CPVtdO2ZvcihhPTA7YTx0aGlzLm8ubGVuZ3RoO2ErKyliPXRoaXMub1thXSx0aGlzLmdhP3RoaXMuYXBpLmhhbmRsZUV4dGVybmFsQ2FsbCgicmVtb3ZlRXZlbnRMaXN0ZW5lciIsW2IuZXZlbnRUeXBlLGIubGlzdGVuZXJdLGIub3JpZ2luKTp0aGlzLmFwaS5yZW1vdmVFdmVudExpc3RlbmVyKGIuZXZlbnRUeXBlLGIubGlzdGVuZXIpO3RoaXMubz1bXX19LEI1PXdpbmRvdzt2YXIgWHVhPWNsYXNzIGV4dGVuZHMgXy5hZXtjb25zdHJ1Y3RvcihhLGIpe3ZhciBjPUw0O3N1cGVyKCk7dGhpcy5hcGk9Yzt0aGlzLmlkPWE7dGhpcy5vcmlnaW49Yjt0aGlzLmo9e307dGhpcy52PV8ueCgid2ViX3BsYXllcl9zcGxpdF9ldmVudF9idXNfaWZyYW1lIik7dGhpcy5vPWQ9Pnt0aGlzLm9uTWVzc2FnZShkKX07QzUuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5vKTtGNCh0aGlzLCJSRUNFSVZJTkciKX1hZGRMaXN0ZW5lcihhLGIpe2lmKCEoYSBpbiB0aGlzLmopKXt2YXIgYz10aGlzLkIuYmluZCh0aGlzLGEpO3RoaXMualthXT1jO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcihhLGMsYil9fUIoYSxiKXt0aGlzLmlhKCl8fEY0KHRoaXMsYSxPdWEoYSxiKSl9cmVtb3ZlTGlzdGVuZXIoYSxiKXthIGluIHRoaXMuaiYmKHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLHRoaXMualthXSxiKSxkZWxldGUgdGhpcy5qW2FdKX1hZGRFdmVudExpc3RlbmVyKGEsYixjKXt0aGlzLnY/CmE9PT0ib25SZWFkeSI/dGhpcy5hcGkuYWRkRXZlbnRMaXN0ZW5lcihhLGIpOnRoaXMuYXBpLmhhbmRsZUV4dGVybmFsQ2FsbCgiYWRkRXZlbnRMaXN0ZW5lciIsW2EsYl0sY3x8bnVsbCk6dGhpcy5hcGkuYWRkRXZlbnRMaXN0ZW5lcihhLGIpfXJlbW92ZUV2ZW50TGlzdGVuZXIoYSxiLGMpe3RoaXMudj9hPT09Im9uUmVhZHkiP3RoaXMuYXBpLnJlbW92ZUV2ZW50TGlzdGVuZXIoYSxiKTp0aGlzLmFwaS5oYW5kbGVFeHRlcm5hbENhbGwoInJlbW92ZUV2ZW50TGlzdGVuZXIiLFthLGJdLGN8fG51bGwpOnRoaXMuYXBpLnJlbW92ZUV2ZW50TGlzdGVuZXIoYSxiKX1vbk1lc3NhZ2UoYSl7aWYoYS5vcmlnaW49PT10aGlzLm9yaWdpbil7dmFyIGI9YS5kYXRhO2lmKHR5cGVvZiBiPT09InN0cmluZyIpe3RyeXtiPUpTT04ucGFyc2UoYil9Y2F0Y2goZSl7cmV0dXJufWlmKGIuY29tbWFuZCl7dmFyIGM9Yi5jb21tYW5kO2I9Yi5kYXRhO2E9YS5vcmlnaW47aWYoIXRoaXMuaWEoKSl7dmFyIGQ9CmJ8fHt9O3N3aXRjaChjKXtjYXNlICJhZGRFdmVudExpc3RlbmVyIjp0eXBlb2YgZC5ldmVudD09PSJzdHJpbmciJiZ0aGlzLmFkZExpc3RlbmVyKGQuZXZlbnQsYSk7YnJlYWs7Y2FzZSAicmVtb3ZlRXZlbnRMaXN0ZW5lciI6dHlwZW9mIGQuZXZlbnQ9PT0ic3RyaW5nIiYmdGhpcy5yZW1vdmVMaXN0ZW5lcihkLmV2ZW50LGEpO2JyZWFrO2RlZmF1bHQ6dGhpcy5hcGkuaXNSZWFkeSgpJiZ0aGlzLmFwaS5pc0V4dGVybmFsTWV0aG9kQXZhaWxhYmxlKGMsYXx8bnVsbCkmJihiPVB1YShjLGJ8fHt9KSxiPXRoaXMuYXBpLmhhbmRsZUV4dGVybmFsQ2FsbChjLGIsYXx8bnVsbCksKGI9UXVhKGMsYikpJiZGNCh0aGlzLGMsYikpfX19fX19bGEoKXtDNS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0aGlzLm8pO2ZvcihsZXQgYSBpbiB0aGlzLmopdGhpcy5qLmhhc093blByb3BlcnR5KGEpJiZ0aGlzLnJlbW92ZUxpc3RlbmVyKGEpO3N1cGVyLmxhKCl9fSxDNT13aW5kb3csTnVhPQp3aW5kb3cucGFyZW50O3ZhciBHND1uZXcgeHdhO3ZhciBMND1udWxsLE40PW51bGwsSjQ9KCk9Pnt9LEg0O3ZhciBUND0hMTtfLmZ0LnRoZW4oKCk9PntfLkFxKCJlcF9pbml0X2N1cyIpO2lmKCFBNSl7QTU9ITA7dmFyIGE9Xy54KCJlbmFibGVfd2l6X2NvbnRleHRfcGVyX2NvbXBvbmVudCIpfHwhMTtPYmplY3QuYXNzaWduKF8uS3Use1JpOiEwLEdwOmEsRnA6YSxHdjpfLngoIndlYl9pbmNsdWRlX2Nvd190cmFjaW5nIiksaGFuZGxlRXJyb3I6enVhfSk7QnVhKCk7Xy53dj1mc2E7Xy54dj1nc2F9YnZhKCk7Xy5BcSgiZXBfaW5pdF9lcHMiKTtfLnJhKCJ5dC5zZXRDb25maWciLF8uUWkpO18ucmEoInl0LmNvbmZpZy5zZXQiLF8uUWkpO18ucmEoInl0LnNldE1zZyIsYjEpO18ucmEoInl0Lm1zZ3Muc2V0IixiMSk7Xy5yYSgieXQubG9nZ2luZy5lcnJvcnMubG9nIixfLkdwKTtfLnJhKCJ3cml0ZUVtYmVkIixVdWEpO18ucmEoInl0LmFidXNlLnBsYXllci5ib3RndWFyZEluaXRpYWxpemVkIixfLnNhKCJ5dC5hYnVzZS5wbGF5ZXIuYm90Z3VhcmRJbml0aWFsaXplZCIpfHxSdWEpO18ucmEoInl0LmFidXNlLnBsYXllci5pbnZva2VCb3RndWFyZCIsCl8uc2EoInl0LmFidXNlLnBsYXllci5pbnZva2VCb3RndWFyZCIpfHxTdWEpO18ucmEoInl0LmFidXNlLmRjbGtzdGF0dXMuY2hlY2tEY2xrU3RhdHVzIixfLnNhKCJ5dC5hYnVzZS5kY2xrc3RhdHVzLmNoZWNrRGNsa1N0YXR1cyIpfHxhMyk7Xy5yYSgieXQucGxheWVyLmV4cG9ydHMubmF2aWdhdGUiLF8uc2EoInl0LnBsYXllci5leHBvcnRzLm5hdmlnYXRlIil8fEJ0YSk7Xy5yYSgieXQudXRpbC5hY3Rpdml0eS5pbml0IixfLnNhKCJ5dC51dGlsLmFjdGl2aXR5LmluaXQiKXx8bDApO18ucmEoInl0LnV0aWwuYWN0aXZpdHkuZ2V0VGltZVNpbmNlQWN0aXZlIixfLnNhKCJ5dC51dGlsLmFjdGl2aXR5LmdldFRpbWVTaW5jZUFjdGl2ZSIpfHxfLkJuKTtfLnJhKCJ5dC51dGlsLmFjdGl2aXR5LnNldFRpbWVzdGFtcCIsXy5zYSgieXQudXRpbC5hY3Rpdml0eS5zZXRUaW1lc3RhbXAiKXx8ajApO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixfLlZpKFp1YSkpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsCl8uVmkoJHVhKSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VoaWRlIixfLlZpKGF2YSkpO2d1YSgpO1R1YSgpO18uQXEoImVwX2luaXRfZXBlIik7SjQ9Xy5ENTtfLkFxKCJlcF9pbml0X2N1ZSIpfSk7Xy5ENT0oKT0+e307Cl8uRDU9ZnVuY3Rpb24oYSl7KDAsXy5laCkoInI3OERyYiIpLnRoZW4oKCk9PnsoMCxfLnp5KShhKX0pfTsKXy5YZCgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KfSkuY2FsbCh0aGlzLHRoaXMuZGVmYXVsdF9iYXNlKTsKLy8gR29vZ2xlIEluYy4K"}},"time_used":37,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":14,"receive":23,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/roboto/v48/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.99","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://www.youtube.com/embed/Ymge-qh3m4E","date":"2026-07-27T03:07:40.442Z","timestamp":1785121660442,"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":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/roboto/v48/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2 HTTP/1.1\r\nHost: fonts.gstatic.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\nOrigin: https://www.youtube.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\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\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 40128\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 02:17:07 GMT\r\nexpires: Fri, 23 Jul 2027 02:17:07 GMT\r\ncache-control: public, max-age=31536000\r\nage: 348633\r\nlast-modified: Thu, 29 May 2025 23:30:55 GMT\r\ncontent-type: font/woff2\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":40128,"size_decoded":40941,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 40128, version 1.0","md5":"9a01b69183a9604ab3a439e388b30501","sha1":"8ed1d59003d0dbe6360481017b44665153665fbe","sha256":"20b535fa80c8189e3b87d1803038389960203a886d502bc2ef1857affc2f38d2","sha512":"0e6795255b6eea00b5403fd7e3b904d52776d49ac63a31c2778361262883697943aedcb29feee85694ba6f19eaa34dddb9a5bfe7118f4a25b4757e92c331feca","ssdeep":"768:Vce3jkow68wmT4IBX0tXdlSirS61gSjcz0GPwHbP+w2jec56O:VcI/iEEEtXdFJj+0GPwHbP+w5rO","tlshash":"3703023a5e3ccf1a84157a703950f6d9a8481e548e9d143b4f1ac7bf085dde2209b6d4","first_seen":"2025-01-08T22:59:02.845106Z","last_seen":"2026-07-27T05:13:54.226554Z","times_seen":946887,"resource_available":false,"data":"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"}},"time_used":74,"timings":{"blocked":-1,"dns":2,"connect":29,"send":0,"wait":16,"receive":26,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/apple-touch-icon.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.682Z","timestamp":1785121660682,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /apple-touch-icon.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 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 03:07:40 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-27T05:14:02.688672Z","times_seen":143744,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iIC8+Cjx0aXRsZT4gNDA0IE5vdCBGb3VuZA0KPC90aXRsZT48c3R5bGU+QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9fTwvc3R5bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KPGRpdiBzdHlsZT0iaGVpZ2h0OmF1dG87IG1pbi1oZWlnaHQ6MTAwJTsgIj4gICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6ODAwcHg7IG1hcmdpbi1sZWZ0OiAtNDAwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDMwJTsgbGVmdDo1MCU7Ij4KICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjowOyBmb250LXNpemU6MTUwcHg7IGxpbmUtaGVpZ2h0OjE1MHB4OyBmb250LXdlaWdodDpib2xkOyI+NDA0PC9oMT4KPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kDQo8L2gyPgo8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZvbnQtc2l6ZToxMnB4O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFja2dyb3VuZC1jb2xvcjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyI+Cjxicj5Qcm91ZGx5IHBvd2VyZWQgYnkgTGl0ZVNwZWVkIFdlYiBTZXJ2ZXI8cD5QbGVhc2UgYmUgYWR2aXNlZCB0aGF0IExpdGVTcGVlZCBUZWNobm9sb2dpZXMgSW5jLiBpcyBub3QgYSB3ZWIgaG9zdGluZyBjb21wYW55IGFuZCwgYXMgc3VjaCwgaGFzIG5vIGNvbnRyb2wgb3ZlciBjb250ZW50IGZvdW5kIG9uIHRoaXMgc2l0ZS48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4K"}},"time_used":99,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":99,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/icons/sprite.svg","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"other","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.188Z","timestamp":1785121660188,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /icons/sprite.svg HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: same-origin\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 03:07:40 GMT\r\ncontent-type: image/svg+xml\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 13049\r\ndate: Mon, 27 Jul 2026 03:07:40 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":38440,"size_decoded":13364,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"9550d2d4082145a56d05c06c1ba2b611","sha1":"5df40f567d1cfccd1b44a6c3d77742b54dab3606","sha256":"ff8e1afb2c7106c8d3493bf86223b6c0d4429cbd7fef5a585c4ca96d2ace5612","sha512":"1cb84dd5a89340ed7faae938b15ac80cd58f2f4925932176e71ea28175a4fcc8cf533d39624b037989d0b5ecf3f76e2732ebcf1db883d8ce74e766a626bcb8e3","ssdeep":"768:JNGUG0WWcbgremZEQ+/tYwEUQpAzju3YlbjUi:J8UGcZamZEQ+/tYF4Ui","tlshash":"f90373f59b2c91cc148b9ebeef26b111631fb8bab9a6c6945c5ecbf411c3594e507c00","first_seen":"2026-07-27T02:49:41.004787Z","last_seen":"2026-07-27T03:09:30.418625Z","times_seen":3,"resource_available":false,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48c3ltYm9sIGlkPSJpY29ucy1hcnJvdy1kb3duIiB2aWV3Qm94PSIwIDAgMTAgMTAiPjxwYXRoIGQ9Ik05Ljc1NCA0LjQwOGEuODMyLjgzMiAwIDAgMC0xLjE4MyAwbC0yLjc0IDIuNzVWLjgzM2EuODMzLjgzMyAwIDEgMC0xLjY2NCAwdjYuMzI1bC0yLjc0LTIuNzVBLjgzNi44MzYgMCAxIDAgLjI0NSA1LjU5Mmw0LjE2MyA0LjE2NmMuMDguMDc2LjE3My4xMzUuMjc1LjE3NS4yMDEuMDkuNDMxLjA5LjYzMyAwYS44MzMuODMzIDAgMCAwIC4yNzQtLjE3NWw0LjE2NC00LjE2NmEuODM0LjgzNCAwIDAgMCAwLTEuMTg0eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtYXJyb3ctcmlnaHQiIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZD0iTTE5Ljg3NSA5LjM2NmExLjY2NSAxLjY2NSAwIDAgMC0uMzUtLjU1TDExLjE4OC40OWExLjY3NiAxLjY3NiAwIDAgMC0yLjgwMS43NSAxLjY3IDEuNjcgMCAwIDAgLjQzMyAxLjYxNGw1LjUwMyA1LjQ4SDEuNjY3YTEuNjY2IDEuNjY2IDAgMSAwIDAgMy4zM2gxMi42NTZMOC44MiAxNy4xNDNhMS42NjQgMS42NjQgMCAwIDAgMCAyLjM2NCAxLjY2OCAxLjY2OCAwIDAgMCAyLjM2OCAwbDguMzM3LTguMzI2Yy4xNTItLjE1OC4yNy0uMzQ1LjM1LS41NWExLjY2IDEuNjYgMCAwIDAgMC0xLjI2NXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLWFycm93LXVwLWRvdWJsZSIgdmlld0JveD0iMCAwIDIwIDIwIj48cGF0aCBkPSJNMTEuMTY4IDEwLjk4NmExLjkzNSAxLjkzNSAwIDAgMC0xLjM2NC0uNTYxYy0uNTEzIDAtMS4wMDQuMjAyLTEuMzY0LjU2bC01Ljc2NCA1LjY4N2ExLjkxMiAxLjkxMiAwIDAgMC0uMDM5IDIuNzMgMS45NzUgMS45NzUgMCAwIDAgMi43NjcuMDM3bDQuNC00LjQzNSA0LjQgNC40MzVhMS45MzggMS45MzggMCAwIDAgMi43MjguMDAxYy4zNjMtLjM1Ny41NjgtLjg0MS41NjgtMS4zNDYgMC0uNTA2LS4yMDUtLjk5LS41NjgtMS4zNDZsLTUuNzY0LTUuNzYyek01LjQwNCA4LjkzOWw0LjQtNC4zNiA0LjQgNC4zNmExLjkzOCAxLjkzOCAwIDAgMCAyLjcyOCAwYy4zNjMtLjM1Ni41NjgtLjg0LjU2OC0xLjM0NiAwLS41MDYtLjIwNS0uOTktLjU2OC0xLjM0NkwxMS4xNjguNTYxQTEuOTM1IDEuOTM1IDAgMCAwIDkuODA0IDBDOS4yOSAwIDguOC4yMDIgOC40NC41NkwyLjY3NiA2LjI0OGExLjg4NSAxLjg4NSAwIDAgMCAwIDIuNjkyIDEuOTQ4IDEuOTQ4IDAgMCAwIDIuNzI4IDB6Ii8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtYm9sdCIgdmlld0JveD0iMCAwIDIwIDIwIj48cGF0aCBkPSJNMTcuMzkyIDcuNTgxYS45OS45OSAwIDAgMC0uODgyLS41NDhoLTQuOTUyVjEuMDQ4YS45OTcuOTk3IDAgMCAwLS42ODMtLjk5OC45ODYuOTg2IDAgMCAwLTEuMTEuMzZMMS44NDQgMTEuMzgxYTEuMDA0IDEuMDA0IDAgMCAwLS4wOC45OTcuOTkuOTkgMCAwIDAgLjg4Mi42MzloNC45NTJ2NS45ODRhLjk5Ny45OTcgMCAwIDAgLjk5Ljk5OC45ODguOTg4IDAgMCAwIC44MDItLjQwOWw3LjkyNC0xMC45NzJjLjIxNy0uMzA0LjI0OC0uNzA0LjA3OS0xLjAzOHptLTcuODE0IDguMzVWMTIuMDJhLjk5NC45OTQgMCAwIDAtLjk5LS45OTdINC42MjVMOS41NzggNC4xMnYzLjkxYzAgLjU1LjQ0My45OTguOTkuOTk4aDMuOTYyTDkuNTc4IDE1LjkzeiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtYm9vayIgdmlld0JveD0iMCAwIDIwIDIwIj48cGF0aCBkPSJNMTkuMTU4LjE4OEExMy4yMSAxMy4yMSAwIDAgMCAxNi45OSAwIDEzLjAxNyAxMy4wMTcgMCAwIDAgMTAgMi4wMjcgMTMuMDE4IDEzLjAxOCAwIDAgMCAzLjAxLjA1IDEzLjIxIDEzLjIxIDAgMCAwIC44NDEuMjM3YS45OTIuOTkyIDAgMCAwLS44MjkuOTl2MTEuODY1YS45ODUuOTg1IDAgMCAwIC4zNS43NjdjLjIyNi4xOS41MjYuMjcyLjgxOS4yMjJBMTAuOTcgMTAuOTcgMCAwIDEgOS40MiAxNS45N2wuMTIuMDdoLjExYS45MTcuOTE3IDAgMCAwIC42OTkgMGguMTFsLjEyLS4wN2ExMC45NjggMTAuOTY4IDAgMCAxIDguMjM4LTEuOTk3Yy4yOTMuMDUuNTkzLS4wMzIuODE5LS4yMjNhLjk4NS45ODUgMCAwIDAgLjM1LS43NjZWMS4xMTdhLjk5Mi45OTIgMCAwIDAtLjgzLS45M3pNOSAxMy4zM2ExMi45NTUgMTIuOTU1IDAgMCAwLTUuOTkyLTEuNDY0SDIuMDFWMS45NzhjLjMzMi0uMDIuNjY2LS4wMi45OTggMCAyLjEzLS4wMDMgNC4yMTUuNjE2IDUuOTkyIDEuNzh2OS41NzJ6bTguOTg4LTEuNDI0aC0uOTk4YTEyLjk1NSAxMi45NTUgMCAwIDAtNS45OTIgMS40NjNWMy43NThhMTAuOTIzIDEwLjkyMyAwIDAgMSA1Ljk5Mi0xLjc4Yy4zMzItLjAyLjY2Ni0uMDIuOTk4IDB2OS45Mjh6bTEuMTY5IDQuMTA0YTEzLjIxIDEzLjIxIDAgMCAwLTIuMTY3LS4xODhBMTMuMDE3IDEzLjAxNyAwIDAgMCAxMCAxNy44NDlhMTMuMDE3IDEzLjAxNyAwIDAgMC02Ljk5LTIuMDI3IDEzLjIxIDEzLjIxIDAgMCAwLTIuMTY4LjE4OCAxIDEgMCAwIDAtLjY1My4zOTguOTgxLjk4MSAwIDAgMC0uMTc2LjczOS45OTguOTk4IDAgMCAwIDEuMTY5Ljc4MSAxMC45NyAxMC45NyAwIDAgMSA4LjIzOSAxLjg4OWMuMzQ2LjI0NC44MTIuMjQ0IDEuMTU4IDBhMTAuOTcgMTAuOTcgMCAwIDEgOC4yNC0xLjg4OS45OTguOTk4IDAgMCAwIDEuMTY4LS43ODEuOTgxLjk4MSAwIDAgMC0uMTc2LS43NCAxIDEgMCAwIDAtLjY1My0uMzk3eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtYnVzaW5lc3MiIHZpZXdCb3g9IjAgMCAyNSAyNCI+PHBhdGggZD0iTTIwLjQyMiA1LjM0MmgtMy42di0xLjIxYzAtMi4wMDYtMS42MTItMy42MzItMy42LTMuNjMyaC0yLjRjLTEuOTg4IDAtMy42IDEuNjI2LTMuNiAzLjYzMnYxLjIxaC0zLjZjLS45NTUgMC0xLjg3LjM4My0yLjU0NiAxLjA2NEEzLjY0OCAzLjY0OCAwIDAgMCAuMDIyIDguOTc0djEwLjg5NGMwIDIuMDA2IDEuNjEyIDMuNjMyIDMuNiAzLjYzMmgxNi44YzEuOTg4IDAgMy42LTEuNjI2IDMuNi0zLjYzMlY4Ljk3NGMwLTIuMDA2LTEuNjEyLTMuNjMyLTMuNi0zLjYzMnptLTEwLjgtMS4yMWMwLS42NjkuNTM3LTEuMjEgMS4yLTEuMjFoMi40Yy42NjMgMCAxLjIuNTQxIDEuMiAxLjIxdjEuMjFoLTQuOHYtMS4yMXptMTIgMTUuNzM2YzAgLjY2OS0uNTM3IDEuMjEtMS4yIDEuMjFoLTE2LjhjLS42NjMgMC0xLjItLjU0MS0xLjItMS4yMXYtNi42NTdjMS4xNy40NjggMi4zNzQuODQ4IDMuNiAxLjEzN3YuNzE1YzAgLjY2OC41MzcgMS4yMSAxLjIgMS4yMS42NjMgMCAxLjItLjU0MiAxLjItMS4yMXYtLjI1NWEyNy4yNyAyNy4yNyAwIDAgMCAzLjYuMjU1IDI3LjM2NCAyNy4zNjQgMCAwIDAgMy42LS4yNTV2LjI1NWMwIC42NjguNTM3IDEuMjEgMS4yIDEuMjEuNjYzIDAgMS4yLS41NDIgMS4yLTEuMjF2LS43MTVjMS4yMjYtLjI4OSAyLjQzLS42NyAzLjYtMS4xMzd2Ni42NTd6bTAtOS4zMDlhMjQuMzIgMjQuMzIgMCAwIDEtMy42IDEuMjExdi0uMzc1YzAtLjY2OS0uNTM3LTEuMjEtMS4yLTEuMjEtLjY2MyAwLTEuMi41NDEtMS4yIDEuMjF2Ljg5NmEyMy45MjUgMjMuOTI1IDAgMCAxLTcuMiAwdi0uODk2YzAtLjY2OS0uNTM3LTEuMjEtMS4yLTEuMjEtLjY2MyAwLTEuMi41NDEtMS4yIDEuMjF2LjRhMjQuMzIgMjQuMzIgMCAwIDEtMy42LTEuMjExdi0xLjYxYzAtLjY2OS41MzctMS4yMSAxLjItMS4yMWgxNi44Yy42NjMgMCAxLjIuNTQxIDEuMiAxLjIxdjEuNTg1eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtY2FsZW5kYXIiIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZD0iTTEwIDEyYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnptNSAwYTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMnptLTUgNGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6bTUgMGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6TTUgMTJhMSAxIDAgMSAwIDAtMiAxIDEgMCAwIDAgMCAyek0xNyAyaC0xVjFhMSAxIDAgMCAwLTIgMHYxSDZWMWExIDEgMCAxIDAtMiAwdjFIM2EzIDMgMCAwIDAtMyAzdjEyYTMgMyAwIDAgMCAzIDNoMTRhMyAzIDAgMCAwIDMtM1Y1YTMgMyAwIDAgMC0zLTN6bTEgMTVhMSAxIDAgMCAxLTEgMUgzYTEgMSAwIDAgMS0xLTFWOGgxNnY5em0wLTExSDJWNWExIDEgMCAwIDEgMS0xaDE0YTEgMSAwIDAgMSAxIDF2MXpNNSAxNmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6Ii8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtY2hlY2stZG91YmxlIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0yMi43MSA1LjVjLjMzNCAwIC42NTMuMTM1Ljg4OC4zNzVhMS4yNzUgMS4yNzUgMCAwIDEgMCAxLjg2MkwxMy4xMjQgMTguMTI1YTEuMjQxIDEuMjQxIDAgMCAxLTEuNzc0IDBsLS44ODEtLjk3IDExLjM1NC0xMS4yOGMuMjM1LS4yNC41NTQtLjM3NS44ODgtLjM3NXptLTYuNDM4IDBjLjMzMyAwIC42NTIuMTM1Ljg4Ny4zNzVhMS4yNzUgMS4yNzUgMCAwIDEgMCAxLjg2Mkw2Ljk2MiAxOC4wNzVhMS4yNDEgMS4yNDEgMCAwIDEtMS43NzQgMEwuMzkgMTMuMjFhMS4zMDcgMS4zMDcgMCAwIDEtLjM1Mi0xLjI0NGMuMTEtLjQ1LjQ0OS0uODA0Ljg4Ny0uOTMxYTEuMjY2IDEuMjY2IDAgMCAxIDEuMjQuMzEzbDMuOTEgMy45NzggOS4zMS05LjQ1MWMuMjM0LS4yNC41NTMtLjM3NS44ODctLjM3NXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLWNsb3NlIiB2aWV3Qm94PSIwIDAgMjAgMjAiPjxwYXRoIGQ9Im0xMS43NjEgOS45OTkgNy44Ny03Ljg1OEExLjI1NCAxLjI1NCAwIDAgMCAxNy44NTcuMzY3TDEwIDguMjM3IDIuMTQzLjM2OEExLjI1NCAxLjI1NCAwIDEgMCAuMzcgMi4xNDFMOC4yNCAxMCAuMzcgMTcuODU4YTEuMjUgMS4yNSAwIDAgMCAwIDEuNzczIDEuMjQ5IDEuMjQ5IDAgMCAwIDEuNzc0IDBMMTAgMTEuNzZsNy44NTcgNy44N2ExLjI0OSAxLjI0OSAwIDAgMCAxLjc3NCAwIDEuMjUgMS4yNSAwIDAgMCAwLTEuNzczbC03Ljg3LTcuODU4eiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLWNvaW5zIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0yMy4wNjQgMTIuMjVBMy41OCAzLjU4IDAgMCAwIDI0IDkuODYxYTMuNTkyIDMuNTkyIDAgMCAwLTMuNi0zLjU4M2gtNi4yMTZhMy41NyAzLjU3IDAgMCAwLS40NTItMy4yNkEzLjYwNSAzLjYwNSAwIDAgMCAxMC44IDEuNUgzLjZBMy41OTIgMy41OTIgMCAwIDAgMCA1LjA4M2MuMDA1Ljg4NC4zMzkgMS43MzUuOTM2IDIuMzlhMy41NzEgMy41NzEgMCAwIDAgMCA0Ljc3NyAzLjU3MSAzLjU3MSAwIDAgMCAwIDQuNzc4QTMuNTc0IDMuNTc0IDAgMCAwIDAgMTkuNDE3IDMuNTkyIDMuNTkyIDAgMCAwIDMuNiAyM2gxNi44YTMuNiAzLjYgMCAwIDAgMy4yNzEtMi4xMyAzLjU3IDMuNTcgMCAwIDAtLjYwNy0zLjg0MiAzLjU3MSAzLjU3MSAwIDAgMCAwLTQuNzc4ek0xMC44IDIwLjYxMUgzLjZjLS42NjMgMC0xLjItLjUzNS0xLjItMS4xOTQgMC0uNjYuNTM3LTEuMTk1IDEuMi0xLjE5NWg3LjJjLjY2MyAwIDEuMi41MzUgMS4yIDEuMTk1cy0uNTM3IDEuMTk0LTEuMiAxLjE5NHptMC00Ljc3OEgzLjZjLS42NjMgMC0xLjItLjUzNC0xLjItMS4xOTQgMC0uNjYuNTM3LTEuMTk1IDEuMi0xLjE5NWg3LjJjLjY2MyAwIDEuMi41MzUgMS4yIDEuMTk1cy0uNTM3IDEuMTk0LTEuMiAxLjE5NHptMC00Ljc3N0gzLjZjLS42NjMgMC0xLjItLjUzNS0xLjItMS4xOTVzLjUzNy0xLjE5NCAxLjItMS4xOTRoNy4yYy42NjMgMCAxLjIuNTM0IDEuMiAxLjE5NCAwIC42Ni0uNTM3IDEuMTk1LTEuMiAxLjE5NXptMC00Ljc3OEgzLjZjLS42NjMgMC0xLjItLjUzNS0xLjItMS4xOTVTMi45MzcgMy44OSAzLjYgMy44OWg3LjJjLjY2MyAwIDEuMi41MzUgMS4yIDEuMTk0IDAgLjY2LS41MzcgMS4xOTUtMS4yIDEuMTk1em0xMC40MjggMTMuOTg3YTEuMTE5IDEuMTE5IDAgMCAxLS44MjguMzQ2aC02LjIxNmEzLjQxMyAzLjQxMyAwIDAgMCAwLTIuMzg5SDIwLjRjLjY2MyAwIDEuMi41MzUgMS4yIDEuMTk1YTEuMTkyIDEuMTkyIDAgMCAxLS4zNzIuODQ4em0wLTQuNzc4YTEuMTE5IDEuMTE5IDAgMCAxLS44MjguMzQ2aC02LjIxNmEzLjQxMyAzLjQxMyAwIDAgMCAwLTIuMzg5SDIwLjRjLjY2MyAwIDEuMi41MzUgMS4yIDEuMTk1YTEuMTkyIDEuMTkyIDAgMCAxLS4zNzIuODQ4em0wLTQuNzc4YTEuMTE5IDEuMTE5IDAgMCAxLS44MjguMzQ3aC02LjIxNmEzLjQxMyAzLjQxMyAwIDAgMCAwLTIuMzlIMjAuNGMuNjYzIDAgMS4yLjUzNSAxLjIgMS4xOTVhMS4xOTIgMS4xOTIgMCAwIDEtLjM3Mi44NDh6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1jb21tZW50IiB2aWV3Qm94PSIwIDAgMTYgMTciPjxwYXRoIGQ9Ik04LjAxMS4yNTFDMy42LjI1MS4wMjMgMy44MzMuMDIzIDguMjUxYTcuOTE4IDcuOTE4IDAgMCAwIDEuODA1IDUuMDY0bC0xLjU5OCAxLjZhLjguOCAwIDAgMC0uMTY4Ljg3Mi43OTkuNzk5IDAgMCAwIC43Ni40NjRoNy4xOWM0LjQxMSAwIDcuOTg4LTMuNTgyIDcuOTg4LThzLTMuNTc3LTgtNy45ODktOHptMCAxNC40SDIuNzQ3bC43NDMtLjc0NGEuOC44IDAgMCAwIDAtMS4xMjggNi40MDYgNi40MDYgMCAwIDEtLjgtOC4wOCA2LjM4NiA2LjM4NiAwIDAgMSA3Ljc1OC0yLjM2MkE2LjQwMiA2LjQwMiAwIDAgMSA4LjAxMSAxNC42NXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLWNvcHkiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTIyLjUgOC4zMjhhMS41NzggMS41NzggMCAwIDAtLjA3Mi0uMzI0di0uMTA4YTEuMjg0IDEuMjg0IDAgMCAwLS4yMjctLjMzNkwxNS4wMzUuMzZBMS4yNzggMS4yNzggMCAwIDAgMTQuNy4xMzJhLjM4LjM4IDAgMCAwLS4xMDcgMEExLjA0OCAxLjA0OCAwIDAgMCAxNC4xOTkgMEg5LjM2YTMuNTkyIDMuNTkyIDAgMCAwLTMuNTgzIDMuNnYxLjJINC41ODNBMy41OTIgMy41OTIgMCAwIDAgMSA4LjR2MTJDMSAyMi4zODggMi42MDQgMjQgNC41ODMgMjRoOS41NTZhMy41OTIgMy41OTIgMCAwIDAgMy41ODMtMy42di0xLjJoMS4xOTVhMy41OTIgMy41OTIgMCAwIDAgMy41ODMtMy42VjguMzI4em0tNy4xNjctNC4yMzZMMTguNDI3IDcuMmgtMS45QTEuMTk3IDEuMTk3IDAgMCAxIDE1LjMzMyA2VjQuMDkyem0wIDE2LjMwOGMwIC42NjMtLjUzNCAxLjItMS4xOTQgMS4ySDQuNTgzYy0uNjYgMC0xLjE5NC0uNTM3LTEuMTk0LTEuMnYtMTJjMC0uNjYzLjUzNS0xLjIgMS4xOTQtMS4yaDEuMTk1djguNGMwIDEuOTg4IDEuNjA0IDMuNiAzLjU4MyAzLjZoNS45NzJ2MS4yem00Ljc3OC00LjhjMCAuNjYzLS41MzUgMS4yLTEuMTk0IDEuMkg5LjM2Yy0uNjYgMC0xLjE5NC0uNTM3LTEuMTk0LTEuMnYtMTJjMC0uNjYzLjUzNC0xLjIgMS4xOTQtMS4yaDMuNTgzVjZjMCAxLjk4OCAxLjYwNSAzLjYgMy41ODQgMy42aDMuNTgzdjZ6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1jcm93biIgdmlld0JveD0iMCAwIDEyIDEyIj48cGF0aCBkPSJtMCAyLjI4OCAyLjk4MSAyLjk2NSAzLjAyLTMuMDAzTDkuMDIgNS4yNTMgMTIgMi4yOXY1LjU3NmExLjg5IDEuODkgMCAwIDEtMS44OTUgMS44ODVoLTguMjFBMS44OSAxLjg5IDAgMCAxIDAgNy44NjVWMi4yODh6bTEwLjczNyAzLjAyNnYyLjU1MWEuNjMuNjMgMCAwIDEtLjYzMi42MjloLTguMjFhLjYzLjYzIDAgMCAxLS42MzItLjYyOVY1LjMxNGwxLjcxOCAxLjcwOSAzLjAyLTMuMDA0TDkuMDIgNy4wMjNsMS43MTctMS43MDl6Ii8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtY3VwIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0yMi44IDIuNGgtMy42VjEuMkExLjIgMS4yIDAgMCAwIDE4IDBINmExLjIgMS4yIDAgMCAwLTEuMiAxLjJ2MS4ySDEuMkExLjIgMS4yIDAgMCAwIDAgMy42djMuNkE0LjggNC44IDAgMCAwIDQuOCAxMmgxLjg0OGE3LjIgNy4yIDAgMCAwIDQuMTUyIDIuMjkyVjE2LjhIOS42QTMuNiAzLjYgMCAwIDAgNiAyMC40djIuNEExLjIgMS4yIDAgMCAwIDcuMiAyNGg5LjZhMS4yIDEuMiAwIDAgMCAxLjItMS4ydi0yLjRhMy42IDMuNiAwIDAgMC0zLjYtMy42aC0xLjJ2LTIuNTA4QTcuMiA3LjIgMCAwIDAgMTcuMzUyIDEySDE5LjJBNC44IDQuOCAwIDAgMCAyNCA3LjJWMy42YTEuMiAxLjIgMCAwIDAtMS4yLTEuMnptLTE4IDcuMmEyLjQgMi40IDAgMCAxLTIuNC0yLjRWNC44aDIuNHYyLjRhNy4yIDcuMiAwIDAgMCAuNDIgMi40SDQuOHptOS42IDkuNmExLjIgMS4yIDAgMCAxIDEuMiAxLjJ2MS4ySDguNHYtMS4yYTEuMiAxLjIgMCAwIDEgMS4yLTEuMmg0Ljh6bTIuNC0xMmE0LjggNC44IDAgMSAxLTkuNiAwVjIuNGg5LjZ2NC44em00LjggMGEyLjQgMi40IDAgMCAxLTIuNCAyLjRoLS40MmE3LjIgNy4yIDAgMCAwIC40Mi0yLjRWNC44aDIuNHYyLjR6Ii8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtZGF5IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Im00LjM2OCAxOC0uODUyLjg1MmExLjIgMS4yIDAgMCAwIDAgMS42OTIgMS4yIDEuMiAwIDAgMCAxLjY5MiAwbC44NTItLjg1MkExLjIgMS4yIDAgMCAwIDQuMzY4IDE4ek0zLjYgMTJhMS4yIDEuMiAwIDAgMC0xLjItMS4ySDEuMmExLjIgMS4yIDAgMSAwIDAgMi40aDEuMkExLjIgMS4yIDAgMCAwIDMuNiAxMnpNMTIgMy42YTEuMiAxLjIgMCAwIDAgMS4yLTEuMlYxLjJhMS4yIDEuMiAwIDEgMC0yLjQgMHYxLjJBMS4yIDEuMiAwIDAgMCAxMiAzLjZ6TTQuMzY4IDYuMDZhMS4yIDEuMiAwIDAgMCAxLjY5MiAwIDEuMiAxLjIgMCAwIDAgMC0xLjY5MmwtLjg1Mi0uODUyYTEuMiAxLjIgMCAwIDAtMS42OTIgMS42OTJsLjg1Mi44NTJ6bTE0LjQuMzQ4YTEuMiAxLjIgMCAwIDAgLjg0LS4zNDhsLjg1Mi0uODUyYTEuMiAxLjIgMCAxIDAtMS42OTItMS42OTJMMTggNC4zNjhhMS4yIDEuMiAwIDAgMCAwIDEuNjkyIDEuMiAxLjIgMCAwIDAgLjc5Mi4zNDhoLS4wMjR6TTIyLjggMTAuOGgtMS4yYTEuMiAxLjIgMCAxIDAgMCAyLjRoMS4yYTEuMiAxLjIgMCAxIDAgMC0yLjR6TTEyIDIwLjRhMS4yIDEuMiAwIDAgMC0xLjIgMS4ydjEuMmExLjIgMS4yIDAgMSAwIDIuNCAwdi0xLjJhMS4yIDEuMiAwIDAgMC0xLjItMS4yem03LjYzMi0yLjRBMS4yIDEuMiAwIDAgMCAxOCAxOS42MzJsLjg1Mi44NTJhMS4yIDEuMiAwIDAgMCAxLjY5MiAwIDEuMiAxLjIgMCAwIDAgMC0xLjY5MkwxOS42MzIgMTh6TTEyIDUuNGE2LjYgNi42IDAgMSAwIDYuNiA2LjZBNi42MTIgNi42MTIgMCAwIDAgMTIgNS40em0wIDEwLjhhNC4yIDQuMiAwIDEgMSAwLTguNCA0LjIgNC4yIDAgMCAxIDAgOC40eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtZGVzaWduIiB2aWV3Qm94PSIwIDAgMjAgMjAiPjxwYXRoIGQ9Ik01Ljg2NyAxMy4xOTlhLjkxNS45MTUgMCAwIDAgMCAxLjI4MS44OTcuODk3IDAgMCAwIDEuMjggMCAuOTE1LjkxNSAwIDAgMCAwLTEuMjgxLjg5Ny44OTcgMCAwIDAtMS4yOCAwem0wLTcuNzE3YS45MTUuOTE1IDAgMCAwIDAgMS4yODEuODk3Ljg5NyAwIDAgMCAxLjI4IDAgLjkxNS45MTUgMCAwIDAgMC0xLjI4MS44OTcuODk3IDAgMCAwLTEuMjggMHptNC40NiA5LjA5Yy0uNDk4IDAtLjkwMi40MDYtLjkwMi45MDhzLjQwNC45MS45MDEuOTFhLjkwNi45MDYgMCAwIDAgLjkwMS0uOTEuOTE0LjkxNCAwIDAgMC0uMjQ3LS42NzIuODk3Ljg5NyAwIDAgMC0uNjU0LS4yODJ2LjA0NXpNNC45MiA5LjExN2MtLjQ5OCAwLS45LjQwNy0uOS45MDlzLjQwMi45MDguOS45MDguOS0uNDA2LjktLjkwOGEuOTE0LjkxNCAwIDAgMC0uMjQ3LS42NzMuODk3Ljg5NyAwIDAgMC0uNjUzLS4yODJ2LjA0NnptNS40MDUtNS40NTRjLS40OTcgMC0uOS40MDctLjkuOTA5cy40MDMuOTA5LjkuOTA5YS45MDUuOTA1IDAgMCAwIC45MDEtLjkxLjkxNC45MTQgMCAwIDAtLjI0Ny0uNjcxLjg5Ny44OTcgMCAwIDAtLjY1NC0uMjgzdi4wNDZ6bTMuMTkgMS44NjNhLjkxNS45MTUgMCAwIDAtLjE5OC45OTEuOS45IDAgMCAwIC44MzMuNTYzLjkuOSAwIDAgMCAuODMyLS41NjMuOTE1LjkxNSAwIDAgMC0uMTk3LS45OS44OTUuODk1IDAgMCAwLTEuMjctLjA0NnYuMDQ1em01LjY3NSAwQzE2LjkwNC45MTQgMTEuNTE0LTEuMTg3IDYuNzQ3LjY3NyAxLjk4IDIuNTQzLS42IDcuNzYuNzkzIDEyLjcyM2MxLjM5MiA0Ljk2NCA2LjI5OCA4LjA0NCAxMS4zMjYgNy4xMTJhMy40ODUgMy40ODUgMCAwIDAgMi4yNTItMS41Yy41NjEtLjg1My43Ni0xLjg5Ny41NS0yLjlhNS4xOCA1LjE4IDAgMCAxLS4wOS0uOTA4IDQuNTQ2IDQuNTQ2IDAgMCAxIDIuNzAyLTQuMTQ1IDMuNDc5IDMuNDc5IDAgMCAwIDEuODU2LTIuMDQ1Yy4zMTYtLjkzLjI0NC0xLjk1LS4xOTgtMi44Mjd2LjAxOHptLTEuNTMgMi4yMTljLS4xNTYuNDQtLjQ4Ljc5Ny0uOTAxLjk5YTYuMzY1IDYuMzY1IDAgMCAwLTMuNjA0IDcuMDYzYy4xMTEuNTE4LjAxIDEuMDU5LS4yOCAxLjVhMS42MSAxLjYxIDAgMCAxLTEuMDkuNzI3Yy0uNDguMDkyLS45Ny4xMzctMS40NTkuMTM3YTguMDczIDguMDczIDAgMCAxLTUuODI0LTIuNDg2IDguMjIxIDguMjIxIDAgMCAxLTIuMjg0LTUuOTVjLjE0NS00LjIzMiAzLjQ1LTcuNjYxIDcuNjQtNy45MjVoLjQ2YTguMTAxIDguMTAxIDAgMCAxIDcuMjYgNC41NDRjLjIwNy40MzIuMjM2LjkyOS4wODIgMS4zODJ2LjAxOHptLTcuMzM0IDEuMzI3Yy0uNDk3IDAtLjkuNDA3LS45LjkxIDAgLjUwMS40MDMuOTA4LjkuOTA4YS45MDUuOTA1IDAgMCAwIC45MDEtLjkwOS45MDUuOTA1IDAgMCAwLS45LS45MDl6Ii8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtZGVza3RvcCIgdmlld0JveD0iMCAwIDIwIDIwIj48cGF0aCBkPSJNMTcgLjgzM0gzQzEuMzQzLjgzMyAwIDIuMTcgMCAzLjgydjcuOTYzYTIuOTkzIDIuOTkzIDAgMCAwIDMgMi45ODdoNnYxLjk5SDVjLS41NTIgMC0xIC40NDYtMSAuOTk2cy40NDguOTk1IDEgLjk5NWgxMGMuNTUyIDAgMS0uNDQ2IDEtLjk5NWEuOTk4Ljk5OCAwIDAgMC0xLS45OTZoLTR2LTEuOTloNmMxLjY1NyAwIDMtMS4zMzcgMy0yLjk4N1YzLjgyYTIuOTkzIDIuOTkzIDAgMCAwLTMtMi45ODZ6bTEgMTAuOTVjMCAuNTUtLjQ0OC45OTUtMSAuOTk1SDNjLS41NTIgMC0xLS40NDYtMS0uOTk2VjMuODJjMC0uNTUuNDQ4LS45OTUgMS0uOTk1aDE0Yy41NTIgMCAxIC40NDYgMSAuOTk1djcuOTYzeiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLWVtcHR5IiB2aWV3Qm94PSIwIDAgMTkyIDE5MiI+PHBhdGggZD0iTTE1My42IDBjLTIxLjIwOCAwLTM4LjQgMTcuMTkyLTM4LjQgMzguNHMxNy4xOTIgMzguNCAzOC40IDM4LjRTMTkyIDU5LjYwOCAxOTIgMzguNEEzOC40IDM4LjQgMCAwIDAgMTUzLjYgMHptMCA1Ny42Yy0xMC42MDQgMC0xOS4yLTguNTk2LTE5LjItMTkuMnM4LjU5Ni0xOS4yIDE5LjItMTkuMiAxOS4yIDguNTk2IDE5LjIgMTkuMmExOS4yIDE5LjIgMCAwIDEtMTkuMiAxOS4yem0tMjguOCAxMTUuMmgtMTkuMnYtMTkuMmE5LjYgOS42IDAgMSAwLTE5LjIgMHYxOS4ySDY3LjJ2LTMyLjQ0OGwzMy4xMi0xNi42MDhhOS42IDkuNiAwIDAgMCA1LjI4LTguNTQ0Vjc2LjhhOS42IDkuNiAwIDEgMC0xOS4yIDB2MzIuNDQ4bC0xOS4yIDkuNlY1Ny42YTkuNiA5LjYgMCAxIDAtMTkuMiAwdjgwLjQ0OGwtMTkuMi05LjZWMTA1LjZhOS42IDkuNiAwIDEgMC0xOS4yIDB2MjguOGE5LjYgOS42IDAgMCAwIDUuMjggOC41NDRMNDggMTU5LjU1MlYxNzIuOEg5LjZhOS42IDkuNiAwIDEgMCAwIDE5LjJoMTE1LjJhOS42IDkuNiAwIDEgMCAwLTE5LjJ6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1lbnZlbG9wZSIgdmlld0JveD0iMCAwIDIwIDIwIj48cGF0aCBkPSJNMTcgMi4wODNIM2MtMS42NTcgMC0zIDEuMzMtMyAyLjk3djkuODk1YzAgMS42NCAxLjM0MyAyLjk2OSAzIDIuOTY5aDE0YzEuNjU3IDAgMy0xLjMzIDMtMi45N1Y1LjA1M2MwLTEuNjQtMS4zNDMtMi45NjktMy0yLjk2OXptLS40MSAxLjk4TDEwLjcxIDkuODhhMS4wMDUgMS4wMDUgMCAwIDEtMS40MiAwTDMuNDEgNC4wNjJoMTMuMTh6TTE4IDE0Ljk0N2MwIC41NDYtLjQ0OC45OS0xIC45OUgzYy0uNTUyIDAtMS0uNDQ0LTEtLjk5di05LjQ5bDUuODggNS44MTlhMy4wMjIgMy4wMjIgMCAwIDAgNC4yNCAwTDE4IDUuNDU3djkuNDl6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1mYXJtIiB2aWV3Qm94PSIwIDAgMjUgMjQiPjxwYXRoIGQ9Ik0xOC44MTQgNy4zNzhhMS4yIDEuMiAwIDAgMCAuODQtLjM0NmwuODUyLS44NDhhMS4xOTEgMS4xOTEgMCAwIDAtLjUtMi4wNjkgMS4yMDMgMS4yMDMgMCAwIDAtMS4xOTIuMzg1bC0uNzkyLjg0OGExLjE5IDEuMTkgMCAwIDAgLjc5MiAyLjAzem0tNi43OTItMi43OTVjLjY2MyAwIDEuMi0uNTM0IDEuMi0xLjE5NFYyLjE5NGMwLS42Ni0uNTM3LTEuMTk0LTEuMi0xLjE5NC0uNjYzIDAtMS4yLjUzNS0xLjIgMS4xOTRWMy4zOWMwIC42Ni41MzcgMS4xOTQgMS4yIDEuMTk0em0tOS42IDcuMTY3aC0xLjJjLS42NjMgMC0xLjIuNTM1LTEuMiAxLjE5NCAwIC42Ni41MzcgMS4xOTUgMS4yIDEuMTk1aDEuMmMuNjYzIDAgMS4yLS41MzUgMS4yLTEuMTk1cy0uNTM3LTEuMTk0LTEuMi0xLjE5NHpNNC4zOSA3LjAzMmExLjIwMyAxLjIwMyAwIDAgMCAxLjY5MiAwIDEuMTkgMS4xOSAwIDAgMCAwLTEuNjg0TDUuMjMgNC41YTEuMjA0IDEuMjA0IDAgMCAwLTEuNjMuMDYyIDEuMTkgMS4xOSAwIDAgMC0uMDYyIDEuNjIybC44NTIuODQ4em0xOC40MzIgNC43MThoLTEuMmMtLjY2MyAwLTEuMi41MzUtMS4yIDEuMTk0IDAgLjY2LjUzNyAxLjE5NSAxLjIgMS4xOTVoMS4yYy42NjMgMCAxLjItLjUzNSAxLjItMS4xOTVzLS41MzctMS4xOTQtMS4yLTEuMTk0em0tMTIgOC4zNjFoLTMuNmMtLjY2MyAwLTEuMi41MzUtMS4yIDEuMTk1cy41MzcgMS4xOTQgMS4yIDEuMTk0aDMuNmMuNjYzIDAgMS4yLS41MzUgMS4yLTEuMTk0IDAtLjY2LS41MzctMS4xOTUtMS4yLTEuMTk1em04LjQtNC43NzhoLTEuMDU2Yy4zMDMtLjc2LjQ1OC0xLjU3LjQ1Ni0yLjM4OSAwLTMuNjI4LTIuOTU1LTYuNTY5LTYuNi02LjU2OS0zLjY0NSAwLTYuNiAyLjk0MS02LjYgNi41N2E2LjQxMiA2LjQxMiAwIDAgMCAuNDU2IDIuMzg4SDQuODIyYy0uNjYzIDAtMS4yLjUzNS0xLjIgMS4xOTVzLjUzNyAxLjE5NCAxLjIgMS4xOTRoMTQuNGMuNjYzIDAgMS4yLS41MzUgMS4yLTEuMTk0IDAtLjY2LS41MzctMS4xOTUtMS4yLTEuMTk1em0tMy43OCAwaC02Ljg0YTQuMDk2IDQuMDk2IDAgMCAxLS43OC0yLjM4OWMwLTIuMzA4IDEuODgtNC4xOCA0LjItNC4xOCAyLjMyIDAgNC4yIDEuODcyIDQuMiA0LjE4YTQuMDk2IDQuMDk2IDAgMCAxLS43OCAyLjM5em0xLjM4IDQuNzc4aC0xLjJjLS42NjMgMC0xLjIuNTM1LTEuMiAxLjE5NXMuNTM3IDEuMTk0IDEuMiAxLjE5NGgxLjJjLjY2MyAwIDEuMi0uNTM1IDEuMi0xLjE5NCAwLS42Ni0uNTM3LTEuMTk1LTEuMi0xLjE5NXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLWdpZnQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE5LjQxNyA2LjAwNWgtLjQxOGE0LjE4NyA0LjE4NyAwIDAgMC0yLjE4LTUuNjk2IDQuMTU2IDQuMTU2IDAgMCAwLTQuNTY5Ljk2OSA0LjE1NiA0LjE1NiAwIDAgMC00LjU2OC0uOTcgNC4xODcgNC4xODcgMCAwIDAtMi4xOCA1LjY5N2gtLjQxOUEzLjU5MSAzLjU5MSAwIDAgMCAxLjUgOS42MDR2Mi40YzAgLjY2Mi41MzUgMS4xOTkgMS4xOTQgMS4xOTlIMy44OVYyMC40QTMuNTkgMy41OSAwIDAgMCA3LjQ3MiAyNGg5LjU1NmEzLjU5MSAzLjU5MSAwIDAgMCAzLjU4My0zLjZ2LTcuMTk3aDEuMTk1Yy42NiAwIDEuMTk0LS41MzcgMS4xOTQtMS4ydi0yLjRhMy41OSAzLjU5IDAgMCAwLTMuNTgzLTMuNTk4ek0xMS4wNTYgMjEuNkg3LjQ3MmMtLjY2IDAtMS4xOTQtLjUzNy0xLjE5NC0xLjJ2LTcuMTk4aDQuNzc4VjIxLjZ6bTAtMTAuNzk4SDMuODg5di0xLjJjMC0uNjYyLjUzNS0xLjE5OSAxLjE5NC0xLjE5OWg1Ljk3M3YyLjR6bTAtNC43OThIOS4yNjRjLS45OSAwLTEuNzkyLS44MDYtMS43OTItMS44cy44MDItMS44IDEuNzkyLTEuOCAxLjc5Mi44MDYgMS43OTIgMS44djEuOHptMi4zODgtMS44YzAtLjk5NC44MDMtMS44IDEuNzkyLTEuOC45OSAwIDEuNzkyLjgwNiAxLjc5MiAxLjhzLS44MDIgMS44LTEuNzkyIDEuOGgtMS43OTJ2LTEuOHpNMTguMjIyIDIwLjRjMCAuNjYzLS41MzUgMS4yLTEuMTk0IDEuMmgtMy41ODR2LTguMzk4aDQuNzc4VjIwLjR6bTIuMzktOS41OThoLTcuMTY4VjguNDA0aDUuOTczYy42NiAwIDEuMTk0LjUzNyAxLjE5NCAxLjJ2MS4yeiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLWdsb2JlIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0yMy4yOSA3Ljk1NnYtLjA2QTEyLjAyNCAxMi4wMjQgMCAwIDAgMTIgMCAxMi4wMjQgMTIuMDI0IDAgMCAwIC43MSA3Ljg5NnYuMDZhMTEuODc3IDExLjg3NyAwIDAgMCAwIDguMDg4di4wNkExMi4wMjQgMTIuMDI0IDAgMCAwIDEyIDI0YzUuMDQ2IDAgOS41NTUtMy4xNTMgMTEuMjktNy44OTZ2LS4wNmExMS44NzcgMTEuODc3IDAgMCAwIDAtOC4wODh6TTIuNjcgMTQuNDA3YTkuNDIgOS40MiAwIDAgMSAwLTQuODE0aDIuMjM2YTIwLjE1MyAyMC4xNTMgMCAwIDAgMCA0LjgxNEgyLjY2OXptLjk4NSAyLjQwN0g1LjM0YTE0LjYzIDE0LjYzIDAgMCAwIDEuMjAyIDMuMDkzIDkuNjI0IDkuNjI0IDAgMCAxLTIuODg2LTMuMDkzek01LjM0IDcuMTg2SDMuNjU1YTkuNjI1IDkuNjI1IDAgMCAxIDIuODUtMy4wOTNBMTQuNjMxIDE0LjYzMSAwIDAgMCA1LjM0IDcuMTg2em01LjQzNSAxNC4wODFhNy42MyA3LjYzIDAgMCAxLTIuOTIyLTQuNDUzaDIuOTIydjQuNDUzem0wLTYuODZoLTMuNDRhMTcuMjk4IDE3LjI5OCAwIDAgMSAwLTQuODE0aDMuNDR2NC44MTR6bTAtNy4yMjFINy44NTJhNy42MyA3LjYzIDAgMCAxIDIuOTIyLTQuNDUzdjQuNDUzem05LjUyMiAwaC0xLjY4M2ExNC42MyAxNC42MyAwIDAgMC0xLjIwMi0zLjA5MyA5LjYyNCA5LjYyNCAwIDAgMSAyLjg4NSAzLjA5M3ptLTcuMTE4LTQuNDUzQTcuNjMgNy42MyAwIDAgMSAxNi4xIDcuMTg2aC0yLjkyMlYyLjczM3ptMCAxOC41MzR2LTQuNDUzSDE2LjFhNy42MyA3LjYzIDAgMCAxLTIuOTIyIDQuNDUzem0zLjQ0LTYuODZoLTMuNDRWOS41OTNoMy40NGExNy4yOTggMTcuMjk4IDAgMCAxIDAgNC44MTR6bS44MjkgNS41Yy41MTctLjk4Mi45Mi0yLjAyIDEuMjAyLTMuMDkzaDEuNjg0YTkuNjI0IDkuNjI0IDAgMCAxLTIuODg2IDMuMDkzem0zLjgzNS01LjVoLTIuMjM2Yy4wOTgtLjc5OS4xNDYtMS42MDIuMTQ0LTIuNDA3YTE5LjYxMSAxOS42MTEgMCAwIDAtLjE0NC0yLjQwN2gyLjIzNmE5LjQyIDkuNDIgMCAwIDEgMCA0LjgxNHoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLWdvdmVybiIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMjIuMzUgOS4xNDNjLjMwNSAwIC41OTgtLjEyLjgxMy0uMzM1QTEuMTQgMS4xNCAwIDAgMCAyMy41IDhWNC41N2MwLS40OTItLjMxNy0uOTI5LS43ODYtMS4wODRMMTIuMzY0LjA2YTEuMTYgMS4xNiAwIDAgMC0uNzI4IDBMMS4yODYgMy40ODdDLjgxNiAzLjY0Mi41IDQuMDguNSA0LjU3MVY4YzAgLjMwMy4xMjEuNTk0LjMzNy44MDguMjE1LjIxNC41MDguMzM1LjgxMy4zMzVIMi44djguMjFhMy40MjQgMy40MjQgMCAwIDAtMi4zIDMuMjE4djIuMjg2QTEuMTUgMS4xNSAwIDAgMCAxLjY1IDI0aDIwLjdjLjMwNSAwIC41OTgtLjEyLjgxMy0uMzM1YTEuMTQgMS4xNCAwIDAgMCAuMzM3LS44MDh2LTIuMjg2YTMuNDI0IDMuNDI0IDAgMCAwLTIuMy0zLjIxOHYtOC4yMWgxLjE1ek0yMS4yIDIxLjcxNEgyLjh2LTEuMTQzYzAtLjYzLjUxNS0xLjE0MiAxLjE1LTEuMTQzaDE2LjFjLjYzNS4wMDEgMS4xNS41MTIgMS4xNSAxLjE0M3YxLjE0M3pNNS4xIDE3LjE0M3YtOGgyLjN2OEg1LjF6bTQuNiAwdi04aDQuNnY4SDkuN3ptNi45IDB2LThoMi4zdjhoLTIuM3pNMi44IDYuODU3VjUuMzk1TDEyIDIuMzQ3bDkuMiAzLjA0OHYxLjQ2MkgyLjh6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1ncmFwaCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNS40NTUgMTMuMDlIMS4wOUExLjA5IDEuMDkgMCAwIDAgMCAxNC4xODN2OC43MjdDMCAyMy41MTIuNDg4IDI0IDEuMDkgMjRoNC4zNjVhMS4wOSAxLjA5IDAgMCAwIDEuMDktMS4wOXYtOC43MjhhMS4wOSAxLjA5IDAgMCAwLTEuMDktMS4wOTF6bS0xLjA5MSA4LjcyOEgyLjE4MnYtNi41NDVoMi4xODJ2Ni41NDV6bTE4LjU0NS0xMy4wOWgtNC4zNjRhMS4wOSAxLjA5IDAgMCAwLTEuMDkgMS4wOVYyMi45MWExLjA5IDEuMDkgMCAwIDAgMS4wOSAxLjA5MWg0LjM2NEExLjA5IDEuMDkgMCAwIDAgMjQgMjIuOTFWOS44MTdhMS4wOSAxLjA5IDAgMCAwLTEuMDktMS4wOXptLTEuMDkgMTMuMDloLTIuMTgzVjEwLjkxaDIuMTgydjEwLjkxek0xNC4xODEgMEg5LjgxOGExLjA5IDEuMDkgMCAwIDAtMS4wOSAxLjA5djIxLjgyYzAgLjYwMi40ODggMS4wOSAxLjA5IDEuMDloNC4zNjRhMS4wOSAxLjA5IDAgMCAwIDEuMDktMS4wOVYxLjA5QTEuMDkgMS4wOSAwIDAgMCAxNC4xODMgMHpNMTMuMDkgMjEuODE4aC0yLjE4MlYyLjE4MmgyLjE4MnYxOS42MzZ6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1ncm93IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0zIDE2LjVBMS41IDEuNSAwIDAgMCAxLjUgMTh2NC41YTEuNSAxLjUgMCAwIDAgMyAwVjE4QTEuNSAxLjUgMCAwIDAgMyAxNi41ek05IDEyYTEuNSAxLjUgMCAwIDAtMS41IDEuNXY5YTEuNSAxLjUgMCAwIDAgMyAwdi05QTEuNSAxLjUgMCAwIDAgOSAxMnpNMjEgMGExLjUgMS41IDAgMCAwLTEuNSAxLjV2MjFhMS41IDEuNSAwIDAgMCAzIDB2LTIxQTEuNSAxLjUgMCAwIDAgMjEgMHptLTYgNmExLjUgMS41IDAgMCAwLTEuNSAxLjV2MTVhMS41IDEuNSAwIDAgMCAzIDB2LTE1QTEuNSAxLjUgMCAwIDAgMTUgNnoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLWhlYXJ0LWZpbGxlZCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMjEuODI4IDMuNjc3YTcuNjA4IDcuNjA4IDAgMCAwLTkuODAyLS43MDJDOC44NTYuNjM4IDQuNDAxIDEuMTI3IDEuODIzIDQuMDk1YTcuNDExIDcuNDExIDAgMCAwIC40MDIgMTAuMTYxbDcuMjA3IDcuMmEzLjYyNyAzLjYyNyAwIDAgMCA1LjA5MyAwbDcuMjA3LTcuMkE3LjQyOCA3LjQyOCAwIDAgMCAyNCA4Ljk4NmE3LjQyNSA3LjQyNSAwIDAgMC0yLjE3Mi01LjMxeiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtaGVhcnQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTIxLjgyOCAzLjY3N2E3LjYwOCA3LjYwOCAwIDAgMC05LjgwMi0uNzAyQzguODU2LjYzOCA0LjQwMSAxLjEyNyAxLjgyMyA0LjA5NWE3LjQxMSA3LjQxMSAwIDAgMCAuNDAyIDEwLjE2MWw3LjIwNyA3LjJhMy42MjcgMy42MjcgMCAwIDAgNS4wOTMgMGw3LjIwNy03LjJBNy40MjggNy40MjggMCAwIDAgMjQgOC45ODZhNy40MjUgNy40MjUgMCAwIDAtMi4xNzItNS4zMXptLTEuNjk0IDguODc3LTcuMjA3IDcuMTRhMS4yMDcgMS4yMDcgMCAwIDEtMS43MDYgMGwtNy4yMDctNy4xNGE1LjA3MSA1LjA3MSAwIDAgMSAwLTcuMTQgNS4xNjMgNS4xNjMgMCAwIDEgNy4yMDcgMCAxLjIwNyAxLjIwNyAwIDAgMCAxLjcwNiAwIDUuMTY1IDUuMTY1IDAgMCAxIDYuODIuMzgzIDUuMDQ3IDUuMDQ3IDAgMCAxIC4zODcgNi43NTd6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1oZWxwIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0yNCAxMC45NDJ2LS4zOTlsLS4xMDktLjcyNS0uMTA4LS40NzJjMC0uMjA1LS4wOTctLjQxMS0uMTU3LS42MTdhNS43NDkgNS43NDkgMCAwIDAtLjE1Ny0uNDgzIDIuNjI3IDIuNjI3IDAgMCAxLS4wODUtLjI5di0uMDZBMTIuMjAyIDEyLjIwMiAwIDAgMCAxNi4yNjIuNzYxaC0uMDZsLS4yNzgtLjA4NS0uNTA4LS4xNTdjLS4xOCAwLS4zNzQtLjA5Ny0uNTU1LS4xNDVsLS41NTUtLjEyMS0uNTU1LS4wODVjLS4xOTQgMC0uMzc1IDAtLjU4LS4wNzItLjIwNS0uMDczLS40MjMgMC0uNjI4IDBMMTEuOTI4IDBoLTEuMDk5Yy0uMjA1IDAtLjM4NiAwLS41OC4wNzNsLS41NTUuMDg0LS41NTUuMTIxYy0uMTgxIDAtLjM3NC4wODUtLjU1NS4xNDVMOC4wNzYuNTggNy44LjY2NWgtLjA2QTEyLjIwMiAxMi4yMDIgMCAwIDAgLjYxNSA3Ljc5OHYuMDZjLS4wMjMuMS0uMDUxLjE5Ni0uMDg1LjI5MSAwIC4xNTctLjEwOC4zMTQtLjE1Ny40ODQtLjA0OC4xNjktLjEwOC40MS0uMTU3LjYxNmwtLjEwOC40NzItLjEwOS43MjV2My4wOTZsLjEwOS43MjUuMTA4LjQ3MmMwIC4yMDUuMDk3LjQxLjE1Ny42MTYuMDYuMjA2LjA5Ny4zMjcuMTU3LjQ4NC4wMzQuMDk1LjA2Mi4xOTIuMDg1LjI5YS41Mi41MiAwIDAgMSAwIC4wODUgMTIuMDgyIDEyLjA4MiAwIDAgMCA3LjExIDcuMTA5aC4wNmwuMjkuMDg1LjQ4My4xNTcuNjE2LjE1Ny40Ny4xMDkuNzI1LjEwOWguMzk5Yy4zNzQgMCAuNzYuMDYgMS4xNDYuMDYuMzg3IDAgLjc3MyAwIDEuMTQ3LS4wNmguMzk5bC43MjQtLjExLjQ3LS4xMDguNjE3LS4xNTcuNDgzLS4xNTcuMjktLjA4NWguMDZhMTIuMDgyIDEyLjA4MiAwIDAgMCA3LjExLTcuMTEuNTIuNTIgMCAwIDEgMC0uMDg0YzAtLjA5Ny4wNi0uMTkzLjA4NS0uMjkuMDI0LS4wOTcuMTA4LS4zMTUuMTU3LS40ODQuMDQ4LS4xNy4xMDgtLjQxLjE1Ny0uNjE2bC4xMDgtLjQ3Mi4xMDktLjcyNXYtLjRjMC0uMzc0LjA2LS43NjEuMDYtMS4xNDggMC0uMzg3LjEwOS0uNjc3LjEwOS0xLjA1MnptLTcuNjA2LTcuNDQ4YTkuNjY1IDkuNjY1IDAgMCAxIDQuMTc3IDQuMTg0TDE3LjEyIDguODg3YTYuMjEgNi4yMSAwIDAgMC0xLjk4LTEuOTgzbDEuMjU1LTMuNDF6bS02LjQ3LS44NDZjLjI1My0uMDYuNDk1LS4wOTcuNzM2LS4xMzNoLjI5YTkuOTMzIDkuOTMzIDAgMCAxIDIuMDc2IDBoLjI5Yy4yNDEgMCAuNDgzLjA3Mi43MzYuMTMzaC4wNzNsLTEuMjA3IDMuNDU4YTUuNDEyIDUuNDEyIDAgMCAwLS45OS0uMDYgNS4yMTQgNS4yMTQgMCAwIDAtLjg4Mi4wNzJMOS44NCAyLjY2bC4wODUtLjAxMnptLTIuMzQzLjg0Nkw4Ljc5IDYuOTUyYTYuMjEgNi4yMSAwIDAgMC0xLjk5MiAxLjk4M2wtMy40NTMtMS4yMWE5LjY2NiA5LjY2NiAwIDAgMSA0LjE3Ny00LjIzaC4wNnpNMi41IDE0LjE1OGE1LjA0OSA1LjA0OSAwIDAgMS0uMTItLjcyNXYtLjMwM2E4Ljk4NSA4Ljk4NSAwIDAgMSAwLTIuMDh2LS4zMDFjLjAyMi0uMjQ1LjA2Mi0uNDg3LjEyLS43MjZ2LS4wNzJsMy40NTMgMS4yMDlhNS40MTMgNS40MTMgMCAwIDAgMCAxLjc2NUwyLjUgMTQuMTM0di4wMjR6bTUuMDIyIDYuNTNhOS42NjUgOS42NjUgMCAwIDEtNC4xNzctNC4xODRsMy40NTMtMS4yMWE2LjIxIDYuMjEgMCAwIDAgMS45OCAxLjk4NGwtMS4yNTYgMy40MXptNi40NzEuODQ2Yy0uMjU0LjA2LS40OTUuMDk2LS43MzYuMTMyaC0uMjlhOS45MzMgOS45MzMgMCAwIDEtMi4wNzcgMGgtLjI5Yy0uMjQgMC0uNDgyLS4wNzItLjczNi0uMTMyaC0uMDcybDEuMjA3LTMuNDU4YTUuMzg4IDUuMzg4IDAgMCAwIDEuNzYzIDBsMS4yMDcgMy40NThoLjAyNHptLS44MDktNi4wNDZjLS4yMDUuMDczLS40MS4xMjEtLjYwNC4xN2EzLjI5IDMuMjkgMCAwIDEtMS4yMDcgMGMtLjE5MyAwLS4zOTgtLjA5Ny0uNjAzLS4xN0EzLjYyNCAzLjYyNCAwIDAgMSA4LjU0NyAxMy4zYTMuOTEgMy45MSAwIDAgMS0uMTY5LS42MTdjLS4wNzctLjQtLjA3Ny0uODEgMC0xLjIwOWE0IDQgMCAwIDEgLjE1Ny0uNTkyIDMuNjI0IDMuNjI0IDAgMCAxIDIuMTg1LTIuMTc3Yy4yMDYtLjA3Mi40MS0uMTIuNjA0LS4xNjlhMy4yOSAzLjI5IDAgMCAxIDEuMjA3IDBjLjE5MyAwIC4zOTkuMDk3LjYwNC4xN2EzLjYyNCAzLjYyNCAwIDAgMSAyLjE3MyAyLjE3NmMuMDczLjIuMTMuNDA2LjE2OS42MTYuMDc3LjQuMDc3LjgxIDAgMS4yMWEzLjYyNCAzLjYyNCAwIDAgMS0yLjM0MiAyLjc2OWwuMDQ4LjAxMXptMy4xNTEgNS4yMTEtMS4yMDctMy40NThhNi4yMSA2LjIxIDAgMCAwIDEuOTgtMS45ODNsMy40NTIgMS4yMWE5LjY2NSA5LjY2NSAwIDAgMS00LjIyNSA0LjIydi4wMTF6bTUuMjUyLTcuNTY5di4zMDNhNS4wNDkgNS4wNDkgMCAwIDEtLjEyMS43MjV2LjA3M2wtMy40NTMtMS4yMWE1LjQxMyA1LjQxMyAwIDAgMCAwLTEuNzY1bDMuNDUzLTEuMjA5di4wNzNjLjA1OC4yMzguMDk4LjQ4LjEyLjcyNXYuMzAzYy4wODEuNjkuMDgxIDEuMzg4IDAgMi4wOHYtLjA5OHoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLWhvbWUiIHZpZXdCb3g9IjAgMCAyMCAyMSI+PHBhdGggZD0iTTE4LjE3MSA2LjA0OCAxMi4yLjc5NGEyLjk3OCAyLjk3OCAwIDAgMC0zLjk4MSAwTDIuMjQ2IDYuMDQ4YTMuMDAyIDMuMDAyIDAgMCAwLS45OTYgMi4yNTd2OC43M2EyLjk5MSAyLjk5MSAwIDAgMCAyLjk4NiAyLjk5NmgxMS45NDVhMi45OTEgMi45OTEgMCAwIDAgMi45ODYtMi45OTZ2LTguNzRhMy4wMDEgMy4wMDEgMCAwIDAtLjk5Ni0yLjI0N3pNMTIuMiAxOC4wMzRIOC4yMThWMTMuMDRjMC0uNTUyLjQ0NS0uOTk5Ljk5NS0uOTk5aDEuOTljLjU1IDAgLjk5Ni40NDcuOTk2Ljk5OXY0Ljk5NHptNC45NzctLjk5OWEuOTk3Ljk5NyAwIDAgMS0uOTk1Ljk5OUgxNC4xOVYxMy4wNGEyLjk5MSAyLjk5MSAwIDAgMC0yLjk4Ni0yLjk5N0g5LjIxM2EyLjk5MSAyLjk5MSAwIDAgMC0yLjk4NiAyLjk5N3Y0Ljk5NGgtMS45OWEuOTk3Ljk5NyAwIDAgMS0uOTk2LS45OTl2LTguNzRhMSAxIDAgMCAxIC4zMzgtLjc0OWw1Ljk3Mi01LjI0M2EuOTkzLjk5MyAwIDAgMSAxLjMxNCAwbDUuOTcyIDUuMjQzYTEgMSAwIDAgMSAuMzM5Ljc1djguNzM5eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtaW1hZ2UiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTIwLjQgMi41SDMuNkMxLjYxMiAyLjUgMCA0LjA5NSAwIDYuMDYzdjExLjg3NUMwIDE5LjkwNCAxLjYxMiAyMS41IDMuNiAyMS41aDE2LjhjMS45ODggMCAzLjYtMS41OTUgMy42LTMuNTYzVjYuMDYzQzI0IDQuMDk1IDIyLjM4OCAyLjUgMjAuNCAyLjV6TTMuNiAxOS4xMjVjLS42NjMgMC0xLjItLjUzMi0xLjItMS4xODh2LTIuODczbDMuOTYtMy45MDdhMS4yMDkgMS4yMDkgMCAwIDEgMS42OCAwbDguMDUyIDcuOTY4SDMuNnptMTgtMS4xODhjMCAuNjU2LS41MzcgMS4xODgtMS4yIDEuMTg4aC0uOTI0bC00LjU3Mi00LjU0OCAxLjA1Ni0xLjA0NWExLjIwOSAxLjIwOSAwIDAgMSAxLjY4IDBsMy45NiAzLjkwN3YuNDk4em0wLTMuODQ3LTIuMjU2LTIuMjJhMy43IDMuNyAwIDAgMC01LjA4OCAwTDEzLjIgMTIuOTEzbC0zLjQ1Ni0zLjQyYTMuNyAzLjcgMCAwIDAtNS4wODggMEwyLjQgMTEuNzE1VjYuMDYzYzAtLjY1Ni41MzctMS4xODggMS4yLTEuMTg4aDE2LjhjLjY2MyAwIDEuMi41MzIgMS4yIDEuMTg4djguMDI3eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMta2V5IiB2aWV3Qm94PSIwIDAgMjAgMjAiPjxwYXRoIGQ9Im0xOS42NzkgNC41MzItMS40MTgtMS40MSAxLjQxOC0xLjQwOWExLjAwNSAxLjAwNSAwIDAgMCAwLTEuNDE5IDEuMDAxIDEuMDAxIDAgMCAwLTEuNDE4IDBMNy43NCAxMC44M2E0Ljk4NiA0Ljk4NiAwIDAgMC02LjYxNiAxLjAxMiA1LjAwMyA1LjAwMyAwIDAgMCAuMzM4IDYuNjk0IDQuOTg2IDQuOTg2IDAgMCAwIDYuNjg0LjMzOSA1LjAwMyA1LjAwMyAwIDAgMCAxLjAxMS02LjYyNmw0Ljg3Mi00Ljg4OCAxLjQwNyAxLjQyYS45OTguOTk4IDAgMCAwIC43MDkuMjkuOTk4Ljk5OCAwIDAgMCAxLjAwNC0xIDEgMSAwIDAgMC0uMjk1LS43MWwtMS40MTgtMS4zNiAxLjQxOC0xLjQxOSAxLjQwNyAxLjQyYS45OTguOTk4IDAgMCAwIC43MDkuMjkuOTk4Ljk5OCAwIDAgMCAuNzA5LS4yOSAxIDEgMCAwIDAgMC0xLjQ3ek00Ljk5NSAxNy45OTdBMi45OTcgMi45OTcgMCAwIDEgMiAxNC45OTggMi45OTcgMi45OTcgMCAwIDEgNC45OTUgMTJhMi45OTcgMi45OTcgMCAwIDEgMi45OTQgMi45OTggMi45OTcgMi45OTcgMCAwIDEtMi45OTQgM3oiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLWxpbmsiIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZD0ibTcuOTMyIDE1LjY1LTEuNzg0IDEuNzMyYTIuNDk2IDIuNDk2IDAgMCAxLTMuNTI3IDAgMi40OSAyLjQ5IDAgMCAxIDAtMy41MjRsNC41NzUtNC41OGEyLjQ4IDIuNDggMCAwIDEgMy40MTctLjA5MWwuMTIuMWExLjAxIDEuMDEgMCAwIDAgMS40MTEtMS40NCAyLjc3IDIuNzcgMCAwIDAtLjE4MS0uMjEgNC40OTggNC40OTggMCAwIDAtNi4xMzcuMjJMMS4xOSAxMi40MzlhNC41MDcgNC41MDcgMCAwIDAgLjEzMiA2LjI0MSA0LjUxOCA0LjUxOCAwIDAgMCA2LjI0Ny4xMzJsMS43NDQtMS43MDFhMS4wMDYgMS4wMDYgMCAwIDAtMS4zODEtMS40NnpNMTguNzA1IDEuMzE0YTQuNTI4IDQuNTI4IDAgMCAwLTYuMzggMGwtMS43NDMgMS43MDFhMS4wMDYgMS4wMDYgMCAwIDAgMS4zOCAxLjQ2bDEuNzQ0LTEuNzMxYTIuNDk2IDIuNDk2IDAgMCAxIDMuNTI3IDAgMi40OSAyLjQ5IDAgMCAxIDAgMy41MjNsLTQuNTc1IDQuNThhMi40OCAyLjQ4IDAgMCAxLTMuNDE2LjA5MWwtLjEyMS0uMWExLjAxIDEuMDEgMCAwIDAtMS40MSAxLjQ0Yy4wNzIuMDc0LjE1LjE0NS4yMzEuMjFhNC41MDggNC41MDggMCAwIDAgNi4xMzctLjIybDQuNTg1LTQuNTgxYTQuNTE3IDQuNTE3IDAgMCAwIC4wNC02LjM3M3oiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLWxpcXVpZGl0eSIgdmlld0JveD0iMCAwIDIwIDIwIj48cGF0aCBkPSJNMTUuMDE3IDQuOTgzQTcuNzY2IDcuNzY2IDAgMSAwIDQuOTgzIDE1LjAxNyA3Ljc2NiA3Ljc2NiAwIDEgMCAxNS4wMTcgNC45ODN6bS0xLjYwNSAxLjYwNWMuMDcyLjM3Ny4xMDkuNzYuMTEgMS4xNDRhNS45NCA1Ljk0IDAgMCAxLS4xNiAxLjM0NWwtMi40NDktMi40MjhhNS45NCA1Ljk0IDAgMCAxIDEuMzQ1LS4xNiA2LjE0IDYuMTQgMCAwIDEgMS4xNDQuMTFsLjAxLS4wMXptLS45NDQgNC40MTVhNi4wMiA2LjAyIDAgMCAxLTEuNDY1IDEuNDY1TDcuNTMyIDguOTk3YTYuMDIgNi4wMiAwIDAgMSAxLjQ2NS0xLjQ2NWwzLjQ3MSAzLjQ3MXptLTguMDI3IDEuNDY1YTUuNzcgNS43NyAwIDEgMSA4LjAyNy04LjAyN2gtLjI1YTcuNzg2IDcuNzg2IDAgMCAwLTcuNzM3IDcuODE3YzAgLjA4LjAxLjE3LjAxLjI1bC0uMDUtLjA0em0yLjEwNy44OTNhNi4xNCA2LjE0IDAgMCAxLS4xMS0xLjE0MyA1Ljk0IDUuOTQgMCAwIDEgLjE2LTEuMzQ1bDIuNDM5IDIuNDM4YTUuOTQgNS45NCAwIDAgMS0xLjM0NS4xNiA2LjE0IDYuMTQgMCAwIDEtMS4wOTQtLjA3bC0uMDUtLjA0em01LjcxIDQuNjY2QTUuNzkgNS43OSAwIDAgMSA3LjQ5IDE1LjUxaC4yNTFhNy43ODYgNy43ODYgMCAwIDAgNy43NzctNy43Njd2LS4yNWE1Ljc3IDUuNzcgMCAwIDEtMy4yNjEgMTAuNTM1eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtbWVkYWwiIHZpZXdCb3g9IjAgMCAxMSAxMCI+PHBhdGggZD0iTTEwLjA3MiAxLjg3M2EuNS41IDAgMCAwLS4yMzQtLjMwNUw3LjI0Ny4wNjhhLjQ5Ny40OTcgMCAwIDAtLjY4My4xOGwtMS4xNjYgMi4wM0w0LjIzMi4yNDhhLjQ5OC40OTggMCAwIDAtLjY4Mi0uMThsLTIuNTkxIDEuNWEuNS41IDAgMCAwLS4xODUuNjhsMS45OTMgMy40MTVhMi45NjIgMi45NjIgMCAwIDAtLjM1OCAxLjMzQTMgMyAwIDAgMCA0LjMyNCA5LjhhMi45ODMgMi45ODMgMCAwIDAgMy4yOTctLjc5NCAzLjAwNyAzLjAwNyAwIDAgMCAuNDM4LTMuMzczbDEuOTQzLTMuMzhhLjUwMS41MDEgMCAwIDAgLjA3LS4zOHptLTguMTYyLjMxIDEuNzI0LTEgMS42MDUgMi44MWEyLjk1NSAyLjk1NSAwIDAgMC0xLjgzNC43OWwtMS40OTUtMi42em0zLjQ4OCA2LjgxYy0xLjEgMC0xLjk5My0uODk2LTEuOTkzLTIgMC0xLjEwNS44OTItMiAxLjk5My0yIDEuMSAwIDEuOTkzLjg5NSAxLjk5MyAyIDAgMS4xMDQtLjg5MiAyLTEuOTkzIDJ6bTEuOTkzLTQuMjI1YTIuOTM4IDIuOTM4IDAgMCAwLS45MjctLjU3NWwtLjQ4OC0uOTE1IDEuMjA2LTIuMDk1IDEuNzI0IDEtMS41MTUgMi41ODV6Ii8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtbWVudSIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMjIuNSAxMC41aC0yMWExLjUgMS41IDAgMCAwIDAgM2gyMWExLjUgMS41IDAgMCAwIDAtM3ptMC02aC0yMWExLjUgMS41IDAgMCAwIDAgM2gyMWExLjUgMS41IDAgMCAwIDAtM3ptMCAxMmgtMjFhMS41IDEuNSAwIDAgMCAwIDNoMjFhMS41IDEuNSAwIDAgMCAwLTN6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1tb25leS1zdGFjayIgdmlld0JveD0iMCAwIDIwIDIwIj48cGF0aCBkPSJNMTkuMDkgMTQuNTQ1SC45MWEuOTEuOTEgMCAwIDAgMCAxLjgxOWgxOC4xOGEuOTEuOTEgMCAwIDAgMC0xLjgxOXptMCAzLjYzN0guOTFBLjkxLjkxIDAgMSAwIC45MSAyMGgxOC4xOGEuOTEuOTEgMCAwIDAgMC0xLjgxOHpNNC41NDYgNS40NTVhLjkxLjkxIDAgMSAwIDAgMS44MTguOTEuOTEgMCAwIDAgMC0xLjgxOHpNMTcuMjczIDBIMi43MjdBMi43MjcgMi43MjcgMCAwIDAgMCAyLjcyN1YxMGEyLjcyNyAyLjcyNyAwIDAgMCAyLjcyNyAyLjcyN2gxNC41NDZBMi43MjcgMi43MjcgMCAwIDAgMjAgMTBWMi43MjdBMi43MjcgMi43MjcgMCAwIDAgMTcuMjczIDB6bS45MDkgMTBhLjkxLjkxIDAgMCAxLS45MS45MUgyLjcyOGEuOTEuOTEgMCAwIDEtLjkwOS0uOTFWMi43MjdhLjkxLjkxIDAgMCAxIC45MS0uOTA5aDE0LjU0NWEuOTEuOTEgMCAwIDEgLjkwOS45MVYxMHpNMTAgMy42MzZhMi43MjcgMi43MjcgMCAxIDAgMCA1LjQ1NSAyLjcyNyAyLjcyNyAwIDAgMCAwLTUuNDU1em0wIDMuNjM3YS45MS45MSAwIDEgMSAwLTEuODE4LjkxLjkxIDAgMCAxIDAgMS44MTh6bTUuNDU1LTEuODE4YS45MS45MSAwIDEgMCAwIDEuODE4LjkxLjkxIDAgMCAwIDAtMS44MTh6Ii8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtbmlnaHQiIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZD0iTTE5LjYwNyAxMS4xOTJhLjk5My45OTMgMCAwIDAtMS4wNDktLjE0IDcuOTkzIDcuOTkzIDAgMCAxLTMuMzY3LjczNGMtNC40NzUtLjAwNS04LjEwNy0zLjY0Ny04LjEzNC04LjE1NWE4LjcxIDguNzEgMCAwIDEgLjI1LTIuMDEzIDEuMDExIDEuMDExIDAgMCAwLS4zMzQtLjk2Mi45OTMuOTkzIDAgMCAwLS45OTUtLjE3NkMxLjY1OCAyLjQzNy0uNzQgNy4xNDkuMjA0IDExLjgyNmMuOTQ0IDQuNjc2IDQuOTc4IDguMDcgOS43MTMgOC4xNzIgNC43MzYuMTAxIDguOTEtMy4xMTYgMTAuMDUtNy43NDlhMS4wMTEgMS4wMTEgMCAwIDAtLjM2LTEuMDU3em0tOS40OTIgNi43MzZjLTMuNDM2LS4wMjUtNi40ODctMi4yMjItNy42Mi01LjQ5YTguMjM0IDguMjM0IDAgMCAxIDIuNTY0LTkuMDc5di4yNzJjLjAwNSA1LjYzNiA0LjUzOCAxMC4yMDQgMTAuMTMyIDEwLjIxYTkuNzExIDkuNzExIDAgMCAwIDIuMDk4LS4yMjIgOC4wOTYgOC4wOTYgMCAwIDEtNy4xNzQgNC4zNXYtLjA0MXoiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1waG9uZSIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJtMTIuODYyIDE3LjE0OC0uMTgyLS4xNDRhLjkyNy45MjcgMCAwIDAtLjIxOS0uMTA4bC0uMjE4LS4wOTZjLS40LS4wODMtLjgxNS4wNC0xLjEwNS4zMjRhMS4zNyAxLjM3IDAgMCAwLS4yNTUuMzk2IDEuMTkgMS4xOSAwIDAgMCAuMjYgMS4zMDZjLjM0NC4zNDMuODY1LjQ0OCAxLjMxOC4yNjYuMTQ2LS4wNy4yOC0uMTU4LjQwMS0uMjY0YTEuMTkgMS4xOSAwIDAgMCAuMjU1LTEuMzA4IDEuMiAxLjIgMCAwIDAtLjI1NS0uMzcyek0xNi44NTcgMEg3LjE0M0M1LjEzIDAgMy41IDEuNjEyIDMuNSAzLjZ2MTYuOGMwIDEuOTg4IDEuNjMxIDMuNiAzLjY0MyAzLjZoOS43MTRjMi4wMTIgMCAzLjY0My0xLjYxMiAzLjY0My0zLjZWMy42YzAtMS45ODgtMS42MzEtMy42LTMuNjQzLTMuNnptMS4yMTQgMjAuNGMwIC42NjMtLjU0MyAxLjItMS4yMTQgMS4ySDcuMTQzYy0uNjcgMC0xLjIxNC0uNTM3LTEuMjE0LTEuMlYzLjZjMC0uNjYzLjU0My0xLjIgMS4yMTQtMS4yaDkuNzE0Yy42NyAwIDEuMjE0LjUzNyAxLjIxNCAxLjJ2MTYuOHoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLXBsYXkiIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZD0iTTE3LjI3IDYuNjY1IDYuNTM1LjUxQTMuOCAzLjggMCAwIDAgLjgzNCAzLjg0M1YxNi4yYTMuOCAzLjggMCAwIDAgNS43IDMuMjg5bDEwLjczNi02LjE1NmEzLjggMy44IDAgMCAwIDAtNi41Nzl2LS4wODl6bS0xLjExMiA0LjY1Nkw1LjQyMyAxNy41NjZhMS42IDEuNiAwIDAgMS0xLjU3OCAwIDEuNTc4IDEuNTc4IDAgMCAxLS43ODktMS4zNjZWMy43OThhMS41NzUgMS41NzUgMCAwIDEgMS41NzgtMS41NzdjLjI3Ni4wMDUuNTQ3LjA3OC43OS4yMWwxMC43MzQgNi4yMDFhMS41NzggMS41NzggMCAwIDEgMCAyLjczNHYtLjA0NXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLXBsdXMiIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZD0iTTE4Ljc1IDguNzVoLTcuNXYtNy41YTEuMjUgMS4yNSAwIDAgMC0yLjUgMHY3LjVoLTcuNWExLjI1IDEuMjUgMCAxIDAgMCAyLjVoNy41djcuNWExLjI1IDEuMjUgMCAwIDAgMi41IDB2LTcuNWg3LjVhMS4yNSAxLjI1IDAgMCAwIDAtMi41eiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLXF1ZXN0aW9uIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMS4xNDggMTUuOTQ4Yy0uMDUyLjA1Ny0uMS4xMTctLjE0NC4xOGEuOTEyLjkxMiAwIDAgMC0uMTA4LjIxNi43NjguNzY4IDAgMCAwLS4wNzIuMjE2Yy0uMDA2LjA4LS4wMDYuMTYgMCAuMjQtLjAwNC4xNTcuMDI5LjMxNC4wOTYuNDU2LjExLjMwMS4zNDcuNTM5LjY0OC42NDguMjkuMTI4LjYyMi4xMjguOTEyIDBhMS4wOCAxLjA4IDAgMCAwIC42NDgtLjY0OCAxLjIgMS4yIDAgMCAwIC4wNzItLjQ1NiAxLjIgMS4yIDAgMCAwLTIuMDUyLS44NTJ6TTEyIDBDNS4zNzMgMCAwIDUuMzczIDAgMTJzNS4zNzMgMTIgMTIgMTIgMTItNS4zNzMgMTItMTJBMTIgMTIgMCAwIDAgMTIgMHptMCAyMS42YTkuNiA5LjYgMCAxIDEgMC0xOS4yIDkuNiA5LjYgMCAwIDEgMCAxOS4yek0xMiA2YTMuNiAzLjYgMCAwIDAtMy4xMiAxLjhBMS4yIDEuMiAwIDEgMCAxMC45NTYgOSAxLjIgMS4yIDAgMCAxIDEyIDguNGExLjIgMS4yIDAgMSAxIDAgMi40IDEuMiAxLjIgMCAwIDAtMS4yIDEuMnYxLjJhMS4yIDEuMiAwIDEgMCAyLjQgMHYtLjIxNkEzLjYgMy42IDAgMCAwIDEyIDZ6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1yb2NrZXQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTIzLjU5OCAxLjE3YTEuMDkzIDEuMDkzIDAgMCAwLS43OC0uNzc2IDEyLjM0MyAxMi4zNDMgMCAwIDAtMTIuNDk0IDMuOTQ3bC0xLjIyIDEuNDQzLTIuODUtLjY4NWEzLjA0NCAzLjA0NCAwIDAgMC0zLjcwNSAxLjQ3OUwuMTQgMTAuODI3YTEuMDg1IDEuMDg1IDAgMCAwLS4wNDUuOTgyYy4xNDMuMzE2LjQyOS41NDYuNzcuNjE4bDMuMzYxLjcxOGExNC41NjggMTQuNTY4IDAgMCAwLS42MDcgMi42NTJjLS4wNDQuMzM1LjA3LjY3Mi4zMTEuOTExbDMuMzkyIDMuMzc4YTEuMDk2IDEuMDk2IDAgMCAwIC44NjkuMzE1IDEzLjM2NCAxMy4zNjQgMCAwIDAgMi43MjYtLjUzNGwuNzA0IDMuMjcyYy4wNzMuMzM5LjMwMy42MjMuNjIuNzY1LjMxOC4xNDIuNjg0LjEyNi45ODgtLjA0NGw0LjI3Mi0yLjRhMy4zMDEgMy4zMDEgMCAwIDAgMS41MDUtMy42bC0uNzMyLTMuMDA1IDEuMzU0LTEuMjRhMTIuMTc2IDEyLjE3NiAwIDAgMCAzLjk2OS0xMi40NDR6bS0yMC44MiA5LjQzN0w0LjQ4IDcuNmEuOTA1LjkwNSAwIDAgMSAxLjE3LS40MDlsMS44OC40NTQtLjcxMS44NGExNC4yNjIgMTQuMjYyIDAgMCAwLTEuNzQgMi42MTNsLTIuMzAxLS40OTF6bTEzLjY0NCA4Ljk1OC0yLjk3MiAxLjY2OS0uNDctMi4xODRhMTIuNDEgMTIuNDEgMCAwIDAgMi42NC0xLjc2NWwuODE0LS43NDUuNDQyIDEuODE0YTEuMTMgMS4xMyAwIDAgMS0uNDU0IDEuMjF6bTEuNzY2LTcuNTg5LTQuMDMyIDMuNjlhMTAuNzE1IDEwLjcxNSAwIDAgMS01LjY1NyAyLjUxbC0yLjYzLTIuNjJhMTEuODg4IDExLjg4OCAwIDAgMSAyLjYyNy01LjY3MWwxLjgzNi0yLjE3MWMuMDMtLjAzMi4wNi0uMDY2LjA4NS0uMTAxbDEuNTctMS44NTdhMTAuMTc1IDEwLjE3NSAwIDAgMSA5LjY0LTMuMzk5IDEwLjAyIDEwLjAyIDAgMCAxLTMuNDQgOS42MnptLTEuMDEtNi43MTVjLS45MDYgMC0xLjY0MS43MzItMS42NDEgMS42MzQgMCAuOTAzLjczNSAxLjYzNCAxLjY0MSAxLjYzNHMxLjY0MS0uNzMxIDEuNjQxLTEuNjM0YzAtLjQzMy0uMTczLS44NDktLjQ4LTEuMTU1YTEuNjQ1IDEuNjQ1IDAgMCAwLTEuMTYxLS40Nzl6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1zaGllbGQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTIxLjA2IDEuOTc5YTEuMTc4IDEuMTc4IDAgMCAwLS45OTctLjI0QTkuNDE4IDkuNDE4IDAgMCAxIDEyLjY3Ny4yMTRhMS4xNzcgMS4xNzcgMCAwIDAtMS4zNTQgMEE5LjQxOCA5LjQxOCAwIDAgMSAzLjkzNyAxLjc0YTEuMTc4IDEuMTc4IDAgMCAwLS45OTguMjRjLS4yNzkuMjI4LS40NC41NzMtLjQzOS45MzZ2OC45NDNhMTAuODQgMTAuODQgMCAwIDAgNC40NzcgOC43OThsNC4zMzQgMy4xMjFjLjQxMy4yOTcuOTY1LjI5NyAxLjM3OCAwbDQuMzM0LTMuMTJhMTAuODQgMTAuODQgMCAwIDAgNC40NzctOC44VjIuOTE2YTEuMjA1IDEuMjA1IDAgMCAwLS40NC0uOTM2em0tMS45MzUgOS44NzlhOC40MzEgOC40MzEgMCAwIDEtMy40OCA2Ljg0MkwxMiAyMS4zMjlsLTMuNjQ2LTIuNjNhOC40MzEgOC40MzEgMCAwIDEtMy40NzktNi44NDFWNC4yOTVjMi40OS4yMTYgNC45ODMtLjM2OCA3LjEyNS0xLjY2OGExMS43NzMgMTEuNzczIDAgMCAwIDcuMTI1IDEuNjY4djcuNTYzem0tNS4yOTYtMi43NS0zLjE5NSAzLjI0Mi0xLjA1Ni0xLjA4YTEuMTgzIDEuMTgzIDAgMCAwLTEuNjg3IDAgMS4yMTUgMS4yMTUgMCAwIDAgMCAxLjcwNGwxLjkgMS45MmExLjE4MSAxLjE4MSAwIDAgMCAxLjY4NyAwbDQuMDg0LTQuMDkzYTEuMjE1IDEuMjE1IDAgMCAwIDAtMS43MDQgMS4xODMgMS4xODMgMCAwIDAtMS42ODYgMGwtLjA0Ny4wMTJ6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1zb2MtZGlzY29yZCIgdmlld0JveD0iMCAwIDMyIDMyIj48cGF0aCBkPSJNMjcuMTA3IDUuNGEyNi4xNDMgMjYuMTQzIDAgMCAwLTYuNjAyLTIuMDY3IDE5LjI0IDE5LjI0IDAgMCAwLS44NDUgMS43NDkgMjQuMzQyIDI0LjM0MiAwIDAgMC03LjMxNyAwIDE4LjY1NSAxOC42NTUgMCAwIDAtLjg1Ni0xLjc0OUEyNi4wNTYgMjYuMDU2IDAgMCAwIDQuODggNS40MDRDLjcwMiAxMS42OTEtLjQzIDE3LjgyMi4xMzYgMjMuODY2YzIuNzcxIDIuMDYgNS40NTcgMy4zMTIgOC4wOTcgNC4xMzFhMjAuMDM2IDIwLjAzNiAwIDAgMCAxLjczNC0yLjg0NCAxNy4wODIgMTcuMDgyIDAgMCAxLTIuNzMtMS4zMjNjLjIyOC0uMTY5LjQ1Mi0uMzQ2LjY2OS0uNTI3IDUuMjY1IDIuNDUyIDEwLjk4NiAyLjQ1MiAxNi4xODggMCAuMjIuMTgxLjQ0My4zNTguNjcuNTI3YTE3LjA0IDE3LjA0IDAgMCAxLTIuNzM2IDEuMzI2Yy41Ljk5OCAxLjA4IDEuOTUgMS43MzQgMi44NDQgMi42NDMtLjgyIDUuMzMtMi4wNyA4LjEwMi00LjEzNC42NjQtNy4wMDYtMS4xMzUtMTMuMDgtNC43NTctMTguNDY3ek0xMC42ODQgMjAuMTQ4Yy0xLjU4IDAtMi44NzctMS40Ny0yLjg3Ny0zLjI1OXMxLjI2OS0zLjI2IDIuODc3LTMuMjZjMS42MDkgMCAyLjkwNSAxLjQ2OCAyLjg3NyAzLjI2LjAwMyAxLjc5LTEuMjY4IDMuMjU5LTIuODc3IDMuMjU5em0xMC42MzIgMGMtMS41ODEgMC0yLjg3Ny0xLjQ3LTIuODc3LTMuMjU5czEuMjY4LTMuMjYgMi44NzctMy4yNmMxLjYwOCAwIDIuOTA0IDEuNDY4IDIuODc2IDMuMjYgMCAxLjc5LTEuMjY4IDMuMjU5LTIuODc2IDMuMjU5eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtc29jLWZhY2Vib29rIiB2aWV3Qm94PSIwIDAgMzIgMzIiPjxwYXRoIGQ9Ik0yMC45ODQgNS4zMTJIMjRWLjIyNEE0Mi4wMDMgNDIuMDAzIDAgMCAwIDE5LjYwNSAwYy00LjM2MyAwLTcuMzQ3IDIuNjU2LTcuMzQ3IDcuNTJ2NC4xOTJINy4zMzN2NS42OTZoNC45MjVWMzJoNS45MDNWMTcuNDA4aDQuOTA5bC43MzgtNS42OTZIMTguMTZWOC4wOGMwLTEuNjguNDUtMi43NjggMi44MjMtMi43Njh6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1zb2MtbWVkaXVtIiB2aWV3Qm94PSIwIDAgMzIgMzIiPjxwYXRoIGQ9Ik0zMC43MzQgNy4wNjdIMzJWMy4zMzNIMjAuMDMyTDE2LjA1NCAxOGgtLjEwOEwxMi4wMDQgMy4zMzNIMHYzLjczNGgxLjIzQTEuNDMzIDEuNDMzIDAgMCAxIDIuNCA4LjE3OHYxNS43MjlhMS4zNDUgMS4zNDUgMCAwIDEtMS4xNyAxLjAyNkgwdjMuNzM0aDkuNnYtMy43MzRINy4yVjguNGguMTRsNS41MzIgMjAuMjY3aDQuMzRMMjIuODE1IDguNGguMTE4djE2LjUzM2gtMi40djMuNzM0SDMydi0zLjczNGgtMS4yNjZhMS4zNDMgMS4zNDMgMCAwIDEtMS4xMzQtMS4wMjZWOC4xNzhhMS40MzYgMS40MzYgMCAwIDEgMS4xMzQtMS4xMTF6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1zb2MtdGVsZWdyYW0iIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZD0iTTE2IDBjOC44MzcgMCAxNiA3LjE2MyAxNiAxNnMtNy4xNjMgMTYtMTYgMTZTMCAyNC44MzcgMCAxNiA3LjE2MyAwIDE2IDB6bTYuNTQyIDkuNjMyYy0uNjAyLjAxLTEuNTI1LjMzMi01Ljk2OSAyLjE4bC05LjMzIDQuMDJjLS43NTguMy0xLjE1NS41OTUtMS4xOS44ODMtLjA3LjU1My43MjYuNzI2IDEuNzI4IDEuMDUxLjgxNy4yNjYgMS45MTYuNTc2IDIuNDg3LjU4OS41MTkuMDExIDEuMDk3LS4yMDMgMS43MzUtLjY0MSA0LjM1OS0yLjk0MiA2LjYwOC00LjQyOSA2Ljc1LTQuNDYxLjA5OS0uMDIyLjIzNy0uMDUxLjMzLjAzMi4wOTQuMDgzLjA4NS4yNC4wNzUuMjgzLS4wMzcuMTU4LS45NTYgMS4wNi0xLjk0NyAybC0uMzk4LjM3NmMtLjk5NS45MzYtMS45NTMgMS44MTUtMi4wNjQgMS45My0uOS45MzUtMS45MjQgMS41MDctLjM0NCAyLjU0OGwzLjU3IDIuMzk5Yy45LjU5IDEuNjA2IDEuMjkgMi41MzUgMS4yMDQuNDI4LS4wNC44Ny0uNDQxIDEuMDk0LTEuNjQuNTMtMi44MzQgMS41NzItOC45NzQgMS44MTItMTEuNTA0YTIuODIgMi44MiAwIDAgMC0uMDI2LS42My42NzQuNjc0IDAgMCAwLS4yMjgtLjQzM2MtLjE5Mi0uMTU1LS40ODgtLjE4OC0uNjItLjE4NnoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLXNvYy10d2l0dGVyIiB2aWV3Qm94PSIwIDAgMzIgMzIiPjxwYXRoIGQ9Ik0zMiA1Ljc4MmMtMS4yMDMuNTItMi40NzUuODY1LTMuNzc2IDEuMDIyYTYuNTk4IDYuNTk4IDAgMCAwIDIuODk2LTMuNjI1IDEzLjE1MSAxMy4xNTEgMCAwIDEtNC4xNzYgMS41OTcgNi41NyA2LjU3IDAgMCAwLTcuOTE0LTEuMzM3IDYuNTQzIDYuNTQzIDAgMCAwLTMuMjg2IDcuMzEgMTguNjM2IDE4LjYzNiAwIDAgMS0xMy41Mi02Ljg1MiA2LjYzMyA2LjYzMyAwIDAgMC0uODggMy4zMDYgNi41MjggNi41MjggMCAwIDAgMi45MTIgNS40NDYgNi40OSA2LjQ5IDAgMCAxLTIuOTc2LS44MTV2LjA4YTYuNTUgNi41NSAwIDAgMCA1LjI4IDYuMzg4IDYuMyA2LjMgMCAwIDEtMS43Ni4yNzEgNy44NTUgNy44NTUgMCAwIDEtMS4yMzItLjExMiA2LjU3NSA2LjU3NSAwIDAgMCA2LjEyOCA0LjUzNiAxMy4xNjggMTMuMTY4IDAgMCAxLTguMDk2IDIuODFjLS41MzUuMDAyLTEuMDctLjAzLTEuNi0uMDk2YTE4LjU0IDE4LjU0IDAgMCAwIDEwLjA2NCAyLjk1NSAxOC41NjMgMTguNTYzIDAgMCAwIDEzLjI4OC01LjQwNEExOC40OSAxOC40OSAwIDAgMCAyOC44IDEwLjAxNHYtLjg0N0ExMy40NzMgMTMuNDczIDAgMCAwIDMyIDUuNzgyeiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtc29jLXlvdXR1YmUiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZD0iTTMxLjk5MyAxMi42NTVhMTIuNTM5IDEyLjUzOSAwIDAgMC0xLjMyMy02LjA1MiA0LjIzOCA0LjIzOCAwIDAgMC0yLjUtMS40NjVjLTQuMDQ1LS4zNy04LjEwNy0uNTIyLTEyLjE2Ny0uNDU0YTExMy4wNiAxMTMuMDYgMCAwIDAtMTIuMTI0LjQ0IDQuMTYgNC4xNiAwIDAgMC0yLjEyMiAxLjA4NEMuNDUgNy40MjQuMzA0IDkuNTA1LjE1OCAxMS4yNjNhNzEuMzI4IDcxLjMyOCAwIDAgMCAwIDkuNDk1Yy4wNDIuOTkuMTg4IDEuOTcyLjQzNiAyLjkzLjE3Ni43NDEuNTMgMS40MjYgMS4wMzIgMS45OTQuNTkyLjU5MSAxLjM0Ny45OSAyLjE2NiAxLjE0MyAzLjEzNC4zOSA2LjI5Mi41NTEgOS40NDkuNDgzIDUuMDg4LjA3NCA5LjU1IDAgMTQuODI3LS40MWE0LjE3NSA0LjE3NSAwIDAgMCAyLjIyNC0xLjE0M2MuNDA3LS40MS43MS0uOTEzLjg4Ny0xLjQ2NS41Mi0xLjYwOC43NzUtMy4yOTEuNzU1LTQuOTgyLjA1OS0uODIuMDU5LTUuNzc0LjA1OS02LjY1M3ptLTE5LjI3NSA3LjUzMnYtOS4wN2w4LjYwNSA0LjU1N2MtMi40MTMgMS4zNDgtNS41OTYgMi44NzItOC42MDUgNC41MTN6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1zdGFrZSIgdmlld0JveD0iMCAwIDIwIDIwIj48cGF0aCBkPSJtLjQ5IDYuOTIgOC44MTIgNS4xYS45NzguOTc4IDAgMCAwIC45OCAwbDguODExLTUuMWEuOTgxLjk4MSAwIDAgMCAwLTEuNjk3TDEwLjI4MS4xM2EuOTc4Ljk3OCAwIDAgMC0uOTc5IDBMLjQ5IDUuMjIzYS45ODEuOTgxIDAgMCAwIDAgMS42OTd6bTkuMzAyLTQuNzY4IDYuODUzIDMuOTI0TDkuNzkyIDEwIDIuOTM4IDYuMDc2bDYuODU0LTMuOTI0em04LjMyMiA3LjAzNC04LjMyMiA0LjczOC04LjMyMy00Ljc3N2EuOTc3Ljk3NyAwIDAgMC0xLjM0MS4zNjMuOTgyLjk4MiAwIDAgMCAuMzYyIDEuMzM0bDguODEyIDUuMWEuOTc4Ljk3OCAwIDAgMCAuOTggMGw4LjgxMS01LjFhLjk4Mi45ODIgMCAwIDAtLjIzMy0xLjc5Ni45NzcuOTc3IDAgMCAwLS43NDYuMDk5di4wMzl6bTAgMy45MjQtOC4zMjIgNC43MzgtOC4zMjMtNC43NzhhLjk3Ny45NzcgMCAwIDAtMS4zNDEuMzYzLjk4Mi45ODIgMCAwIDAgLjM2MiAxLjMzNWw4LjgxMiA1LjFhLjk3OC45NzggMCAwIDAgLjk4IDBsOC44MTEtNS4xYS45ODIuOTgyIDAgMCAwLS4yMzMtMS43OTYuOTc3Ljk3NyAwIDAgMC0uNzQ2LjA5OHYuMDR6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1zdGFyIiB2aWV3Qm94PSIwIDAgMjUgMjQiPjxwYXRoIGQ9Ik0xOC42OTcgMjMuNWMtLjE5NSAwLS4zODYtLjA0OC0uNTU4LS4xMzhsLTYuMTE3LTMuMjMyLTYuMTE3IDMuMjMyYTEuMTk1IDEuMTk1IDAgMCAxLTEuMjYzLS4wOTIgMS4yMDkgMS4yMDkgMCAwIDEtLjQ3OC0xLjE4bDEuMTY4LTYuODQ0TC4zODQgMTAuNGExLjIxIDEuMjEgMCAwIDEtLjMwMy0xLjIzNmMuMTQtLjQzNy41MTYtLjc1NS45NjgtLjgyMWw2LjgzOS0uOTk5IDMuMDU4LTYuMjI3YTEuMjQ5IDEuMjQ5IDAgMCAxIDIuMTUyIDBsMy4wNTggNi4yMjcgNi44MzkuOTk4Yy40NTIuMDY3LjgyNy4zODUuOTY4LjgyMWExLjIxIDEuMjEgMCAwIDEtLjMwMyAxLjIzN2wtNC45NDggNC44NDYgMS4xNjggNi44NDRjLjA2LjM1LS4wMzcuNzEtLjI2Ni45ODFhMS4xOTggMS4xOTggMCAwIDEtLjkxNy40Mjl6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJpY29ucy1zeW5jIiB2aWV3Qm94PSIwIDAgMjAgMjAiPjxwYXRoIGQ9Ik0xNy45MSAxMy41MWgtNC41M2ExIDEgMCAwIDAgMCAyaDIuNEE4IDggMCAwIDEgMiAxMGExIDEgMCAxIDAtMiAwIDEwIDEwIDAgMCAwIDE2Ljg4IDcuMjNWMTlhMSAxIDAgMCAwIDIgMHYtNC41YTEgMSAwIDAgMC0uOTctLjk5ek0xMCAwYTEwIDEwIDAgMCAwLTYuODggMi43N1YxYTEgMSAwIDEgMC0yIDB2NC41YTEgMSAwIDAgMCAxIDFoNC41YTEgMSAwIDEgMCAwLTJoLTIuNEE4IDggMCAwIDEgMTggMTBhMSAxIDAgMCAwIDIgMEExMCAxMCAwIDAgMCAxMCAweiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLXRodW1icy11cCIgdmlld0JveD0iMCAwIDI1IDI0Ij48cGF0aCBkPSJNMjMuMTg0IDkuNjk2YTMuNiAzLjYgMCAwIDAtMi43Ni0xLjI5NkgxNC45NWwuNjcyLTEuNzE2QTQuOTU2IDQuOTU2IDAgMCAwIDEwLjk1NSAwYTEuMiAxLjIgMCAwIDAtMS4wOTIuNzA4TDYuNDQzIDguNGgtMi44MkEzLjYgMy42IDAgMCAwIC4wMjEgMTJ2OC40YTMuNiAzLjYgMCAwIDAgMy42IDMuNkgxOC45YTMuNiAzLjYgMCAwIDAgMy41NC0yLjk1MmwxLjUyNC04LjRhMy42IDMuNiAwIDAgMC0uNzgtMi45NTJ6TTYuMDIyIDIxLjZoLTIuNGExLjIgMS4yIDAgMCAxLTEuMi0xLjJWMTJhMS4yIDEuMiAwIDAgMSAxLjItMS4yaDIuNHYxMC44em0xNS42MDItOS4zODQtMS41MjQgOC40YTEuMiAxLjIgMCAwIDEtMS4yLjk4NEg4LjQyM1Y5Ljg1MmwzLjI2NC03LjM0NGEyLjUzMiAyLjUzMiAwIDAgMSAxLjY1NiAzLjMzNmwtLjYzNiAxLjcxNmEyLjQgMi40IDAgMCAwIDIuMjQ0IDMuMjRoNS40NzNhMS4yIDEuMiAwIDAgMSAuOTI0LjQzMiAxLjIgMS4yIDAgMCAxIC4yNzYuOTg0eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtdXNlciIgdmlld0JveD0iMCAwIDIwIDIwIj48cGF0aCBkPSJNMTMuNzEzIDEwLjcxYTUuOTc3IDUuOTc3IDAgMCAwIDEuOTctNi42NzVBNi4wMjcgNi4wMjcgMCAwIDAgOS45ODUgMGE2LjAyNyA2LjAyNyAwIDAgMC01LjY5OCA0LjAzNSA1Ljk3NyA1Ljk3NyAwIDAgMCAxLjk3IDYuNjc0IDEwLjAwMiAxMC4wMDIgMCAwIDAtNi4yNSA4LjE3NiAxLjAwNiAxLjAwNiAwIDAgMCAuODk0IDEuMTA5IDEuMDEgMS4wMSAwIDAgMCAxLjExNS0uODljLjQ1Ny00LjA0NSAzLjg5Ni03LjEwMiA3Ljk5LTcuMTAyIDQuMDkyIDAgNy41MzIgMy4wNTcgNy45ODggNy4xMDIuMDU3LjUwOS40OS44OTMgMS4wMDUuODloLjExYTEgMSAwIDAgMCAuODg1LTEuMSAxMC4wMDIgMTAuMDAyIDAgMCAwLTYuMjgtOC4xODV6TTkuOTg1IDEwYy0yLjIyIDAtNC4wMi0xLjc5LTQuMDItMy45OThzMS44LTMuOTk4IDQuMDItMy45OThjMi4yMiAwIDQuMDIgMS43OSA0LjAyIDMuOTk4IDAgMS4wNi0uNDI0IDIuMDc3LTEuMTc4IDIuODI3YTQuMDMxIDQuMDMxIDAgMCAxLTIuODQyIDEuMTd6Ii8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iaWNvbnMtdXNlcnMiIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZD0iTTEwLjI4NyA5Ljk5MWE0LjQ1NSA0LjQ1NSAwIDAgMCAxLjU0Ny0zLjM3M2MwLTIuNTA1LTIuMDM4LTQuNTM1LTQuNTUxLTQuNTM1LTIuNTE0IDAtNC41NTIgMi4wMy00LjU1MiA0LjUzNSAwIDEuMjk1LjU2NSAyLjUyNiAxLjU0OCAzLjM3M0E3LjI1NCA3LjI1NCAwIDAgMCAwIDE2LjU5M2MwIC41MDEuNDA4LjkwNy45MS45MDcuNTAzIDAgLjkxLS40MDYuOTEtLjkwNyAwLTMuMDA1IDIuNDQ2LTUuNDQxIDUuNDYzLTUuNDQxIDMuMDE2IDAgNS40NjIgMi40MzYgNS40NjIgNS40NDEgMCAuNTAxLjQwNy45MDcuOTEuOTA3LjUwMyAwIC45MS0uNDA2LjkxLS45MDdhNy4yNTQgNy4yNTQgMCAwIDAtNC4yNzgtNi42MDJ6bS0zLjAwNC0uNjUzYTIuNzI2IDIuNzI2IDAgMCAxLTIuNzMxLTIuNzIgMi43MjYgMi43MjYgMCAwIDEgMi43My0yLjcyIDIuNzI2IDIuNzI2IDAgMCAxIDIuNzMyIDIuNzJjMCAuNzIxLS4yODggMS40MTMtLjggMS45MjNhMi43MzYgMi43MzYgMCAwIDEtMS45MzEuNzk3em04Ljg2Ni4yOWE0LjUyIDQuNTIgMCAwIDAgLjc0OC00Ljg3IDQuNTUzIDQuNTUzIDAgMCAwLTQuMTUyLTIuNjc1LjkwOS45MDkgMCAwIDAtLjkxLjkwN2MwIC41MDEuNDA3LjkwNy45MS45MDdhMi43MjYgMi43MjYgMCAwIDEgMi43MyAyLjcyIDIuNzE5IDIuNzE5IDAgMCAxLTEuMzY1IDIuMzUuOTA2LjkwNiAwIDAgMC0uMDQ1IDEuNTQxbC4zNTUuMjM2LjExOC4wNjNhNi4zNDYgNi4zNDYgMCAwIDEgMy42NDEgNS43ODZjMCAuNTAxLjQwOC45MDcuOTEuOTA3LjUwMyAwIC45MS0uNDA2LjkxLS45MDdhOC4xNTUgOC4xNTUgMCAwIDAtMy44NS02Ljk2NXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLXdhbGxldCIgdmlld0JveD0iMCAwIDIwIDIwIj48cGF0aCBkPSJNMTcgNS4yMzFoLTF2LS45OTVhMi45OTMgMi45OTMgMCAwIDAtMy0yLjk4NkgzYy0xLjY1NyAwLTMgMS4zMzctMyAyLjk4NnYxMS45NDVhMi45OTMgMi45OTMgMCAwIDAgMyAyLjk4NmgxNGMxLjY1NyAwIDMtMS4zMzcgMy0yLjk4NlY4LjIxOGEyLjk5MyAyLjk5MyAwIDAgMC0zLTIuOTg3ek0zIDMuMjQxaDEwYy41NTIgMCAxIC40NDUgMSAuOTk1di45OTVIM2MtLjU1MiAwLTEtLjQ0NS0xLS45OTVzLjQ0OC0uOTk1IDEtLjk5NXptMTUgOS45NTNoLTFjLS41NTIgMC0xLS40NDUtMS0uOTk1cy40NDgtLjk5NSAxLS45OTVoMXYxLjk5em0wLTMuOTgxaC0xYy0xLjY1NyAwLTMgMS4zMzctMyAyLjk4NmEyLjk5MyAyLjk5MyAwIDAgMCAzIDIuOTg2aDF2Ljk5NmMwIC41NS0uNDQ4Ljk5NS0xIC45OTVIM2MtLjU1MiAwLTEtLjQ0Ni0xLS45OTVWNy4wNTNjLjMyMS4xMTMuNjYuMTcgMSAuMTdoMTRjLjU1MiAwIDEgLjQ0NSAxIC45OTV2Ljk5NXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9Imljb25zLXdpdGhkcmF3IiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxwYXRoIGQ9Im02Ljg4IDMuNTk3LjM5My0uNDMzdjIuNjM0QS43My43MyAwIDAgMCA4IDYuNTNhLjczLjczIDAgMCAwIC43MjctLjczM1YzLjE2NGwuMzkzLjQwNGEuNzI1LjcyNSAwIDAgMCAxLjA2Mi4wMy43MzcuNzM3IDAgMCAwIDAtMS4wNDNMOC41MTYuODc1YS43MjcuNzI3IDAgMCAwLS4yNC0uMTUzLjcyMi43MjIgMCAwIDAtLjU1MiAwIC43MjcuNzI3IDAgMCAwLS4yNC4xNTRsLTEuNjY2IDEuNjVhLjc2Mi43NjIgMCAwIDAgMCAxLjA3MS43NDYuNzQ2IDAgMCAwIDEuMDYyIDB6TTggNy45OThhMi4xOTEgMi4xOTEgMCAwIDAtMi4xODIgMi4yYzAgMS4yMTYuOTc3IDIuMjAxIDIuMTgyIDIuMjAxYTIuMTkxIDIuMTkxIDAgMCAwIDIuMTgyLTIuMkEyLjE5IDIuMTkgMCAwIDAgOCA3Ljk5OXptMCAyLjkzNGEuNzMuNzMgMCAwIDEtLjcyNy0uNzMzQS43My43MyAwIDAgMSA4IDkuNDY1YS43My43MyAwIDAgMSAuNzI3LjczNC43My43MyAwIDAgMS0uNzI3LjczM3pNMi45MSAxMC4yYS43My43MyAwIDAgMCAuNzI2LjczMy43My43MyAwIDAgMCAuNzI4LS43MzMuNzMuNzMgMCAwIDAtLjcyOC0uNzM0LjczLjczIDAgMCAwLS43MjcuNzM0em0xMC4xOCAwYS43My43MyAwIDAgMC0uNzI2LS43MzQuNzMuNzMgMCAwIDAtLjcyOC43MzQuNzMuNzMgMCAwIDAgLjcyOC43MzMuNzMuNzMgMCAwIDAgLjcyNy0uNzMzem0uNzI4LTUuMTM1SDEwLjkxYS43My43MyAwIDAgMC0uNzI3LjczNC43My43MyAwIDAgMCAuNzI3LjczM2gyLjkxYS43My43MyAwIDAgMSAuNzI2LjczNHY1Ljg2OGEuNzMuNzMgMCAwIDEtLjcyNy43MzNIMi4xODJhLjczLjczIDAgMCAxLS43MjctLjczM1Y3LjI2NWEuNzMuNzMgMCAwIDEgLjcyNy0uNzM0SDUuMDlhLjczLjczIDAgMCAwIC43MjctLjczMy43My43MyAwIDAgMC0uNzI3LS43MzRIMi4xOEEyLjE5MSAyLjE5MSAwIDAgMCAwIDcuMjY0djUuODY5YzAgMS4yMTUuOTc3IDIuMiAyLjE4MiAyLjJoMTEuNjM2YTIuMTkxIDIuMTkxIDAgMCAwIDIuMTgyLTIuMlY3LjI2NWEyLjE5IDIuMTkgMCAwIDAtMi4xODItMi4yeiIvPjwvc3ltYm9sPjwvc3ZnPg=="}},"time_used":280,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":101,"receive":179,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T03:07:38.861Z","timestamp":1785121658861,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: 7bridgecapital.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\nx-powered-by: PHP/7.3.33\r\nset-cookie: CameFrom=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; secure\nPHPSESSID=0309012af21666c6088ee48aa1461548; path=/; domain=7bridgecapital.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 03:07:39 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":"JivoChat","description":"JivoChat is a live chat solution for websites offering customizable web and mobile chat widgets.","website":"https://www.jivosite.com","common_platform_enumeration":"","icon":"JivoChat.png","categories":["Live chat"]},{"name":"Stimulus","description":"A modest JavaScript framework for the HTML you already have.","website":"https://stimulusjs.org/","common_platform_enumeration":"","icon":"Stimulus.svg","categories":["JavaScript frameworks"]},{"name":"Google Analytics","description":"Google Analytics is a free web analytics service that tracks and reports website traffic.","website":"https://google.com/analytics","common_platform_enumeration":"","icon":"Google Analytics.svg","categories":["Analytics"]},{"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":"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":"OneSignal","description":"OneSignal is a customer engagement messaging solution.","website":"https://onesignal.com","common_platform_enumeration":"","icon":"OneSignal.svg","categories":["Marketing automation","A/B Testing"]},{"name":"PHP:7.3.33","description":"PHP is a general-purpose scripting language used for web development.","website":"https://php.net","common_platform_enumeration":"cpe:2.3:a:php:php:*:*:*:*:*:*:*:*","icon":"PHP.svg","categories":["Programming languages"]}],"data":{"size":62535,"size_decoded":10043,"mime_type":"text/html; charset=UTF-8","magic":"HTML document, Unicode text, UTF-8 text, with very long lines (373)","md5":"3b7f2cabe79f8f751fbfeb35f08c4759","sha1":"437bd25f69fc2fa8bd5e2c2a8fd1848e54b190f8","sha256":"9c1f1ae8c5091ca5f7959d57213c6227d8276bdc5c628b6cd5924ebe5f70a16c","sha512":"f850616f1e9eb6819542df2f96a12077f8310e1087203becc9328e1bad75202c424f092696e8ea4cb9dd23a72b00d0cc200804f5ea316a1015b002c72aac46b5","ssdeep":"384:pKDlzzzzWuu+RubppxV8lC1huKtO01g8AOP8uNt10ywpnYhAPBuKNOUVALbOh8ZJ:pKDlznzlLExSKb8uNsywpb0KGpxXQqN","tlshash":"6e53402094f1103702c394b6eb39e61abfc1d507da0baa46b6fc47988fd3d929e5356c","first_seen":"2026-07-27T03:08:23.015188Z","last_seen":"2026-07-27T03:08:23.015188Z","times_seen":1,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KCjxoZWFkPgogICAgPHRpdGxlPjdCcmlkZ2UgQ2FwaXRhbDwvdGl0bGU+CiAgICAKICAgIAogICAgCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KICAgIDxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjZmZmZmZmIj4KICAgIDxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iL2ZvbnRzL091dGZpdC1SZWd1bGFyLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC93b2ZmMiIgY3Jvc3NvcmlnaW4+CiAgICA8bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii9mb250cy9SZWRIYXREaXNwbGF5LUJsYWNrLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC93b2ZmMiIgY3Jvc3NvcmlnaW4+CiAgICA8bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii9mb250cy9SZWRIYXREaXNwbGF5LUJvbGQud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L3dvZmYyIiBjcm9zc29yaWdpbj4KCiAgICA8bWV0YSBuYW1lPSJjc3JmLXBhcmFtIiBjb250ZW50PSJfY3NyZiI+CiAgICA8bWV0YSBuYW1lPSJjc3JmLXRva2VuIiBjb250ZW50PSI0b3pNZWthbTZ0dm5BcXpHV2dPcnhpNEdGWWxRYmxHeEZNWTI1RjZXQXp1VjZ2b3BNYzZDN3AxcTJZc09OT1B4VkdsUy1qcGRPZFJDaUZYZENQazNlZz09Ij4KCiAgICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ii9mYXZpY29uLmljbyI+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxODB4MTgwIiBocmVmPSIvYXBwbGUtdG91Y2gtaWNvbi5wbmciPgogICAgPGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS9wbmciIHNpemVzPSIzMngzMiIgaHJlZj0iL2Zhdmljb24tMzJ4MzIucG5nIj4KICAgIDxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBzaXplcz0iMTZ4MTYiIGhyZWY9Ii9mYXZpY29uLTE2eDE2LnBuZyI+CiAgICA8bGluayByZWw9Im1hbmlmZXN0IiBocmVmPSIvc2l0ZS53ZWJtYW5pZmVzdCI+CiAgICA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iI2ZmZmZmZiI+CgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IjdicmlkZ2UgQ2FwaXRhbCwgYSBsZWFkaW5nIEJpdGNvaW4gaW52ZXN0bWVudCBjb21wYW55IGZvdW5kZWQgb24gSnVuZSAzcmQsIDIwMDIuIFdlIHNwZWNpYWxpemUgaW4gcHJvdmlkaW5nIHNlY3VyZSwgcmVsaWFibGUgYW5kIHByb2ZpdGFibGUgaW52ZXN0bWVudCBzb2x1dGlvbnMgaW4gdGhlIGR5bmFtaWMgd29ybGQgb2YgY3J5cHRvY3VycmVuY2llcy4uISEiPiAKICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJhcnRpY2xlIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0iN2JyaWRnZSBDYXBpdGFsLCBhIGxlYWRpbmcgQml0Y29pbiBpbnZlc3RtZW50IGNvbXBhbnkgZm91bmRlZCBvbiBKdW5lIDNyZCwgMjAwMi4gV2Ugc3BlY2lhbGl6ZSBpbiBwcm92aWRpbmcgc2VjdXJlLCByZWxpYWJsZSBhbmQgcHJvZml0YWJsZSBpbnZlc3RtZW50IHNvbHV0aW9ucyBpbiB0aGUgZHluYW1pYyB3b3JsZCBvZiBjcnlwdG9jdXJyZW5jaWVzLi4hISEiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlIiBjb250ZW50PSJpbWcvc2hhcmUvc2hhcmUyLmpwZyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6c2VjdXJlX3VybCIgY29udGVudD0iaW1nL3NoYXJlL3NoYXJlMi5qcGciPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnVwZGF0ZWRfdGltZSIgY29udGVudD0iMjAyMy0wNy0zMSI+CiAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnkiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjpzaXRlIiBjb250ZW50PSIiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjpjcmVhdG9yIiBjb250ZW50PSIiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjpkZXNjcmlwdGlvbiIgY29udGVudD0iN2JyaWRnZSBDYXBpdGFsLCBhIGxlYWRpbmcgQml0Y29pbiBpbnZlc3RtZW50IGNvbXBhbnkgZm91bmRlZCBvbiBKdW5lIDNyZCwgMjAwMi4gV2Ugc3BlY2lhbGl6ZSBpbiBwcm92aWRpbmcgc2VjdXJlLCByZWxpYWJsZSBhbmQgcHJvZml0YWJsZSBpbnZlc3RtZW50IHNvbHV0aW9ucyBpbiB0aGUgZHluYW1pYyB3b3JsZCBvZiBjcnlwdG9jdXJyZW5jaWVzLi4hISI+CiAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmltYWdlIiBjb250ZW50PSJpbWcvc2hhcmUvc2hhcmUyLmpwZyI+CiAgICA8bGluayBocmVmPSJpbWcvc2hhcmUvc2hhcmUyLmpwZyIgcmVsPSJpbWFnZV9zcmMiPgogICAgPGxpbmsgaHJlZj0iL2Nzcy9tYWluLmNzcz92PTE2ODQ5NDY4MjUiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLm9uZXNpZ25hbC5jb20vc2Rrcy9PbmVTaWduYWxTREsuanMiIGFzeW5jPSIiPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQ+CiAgICAgICAgd2luZG93Lk9uZVNpZ25hbCA9IHdpbmRvdy5PbmVTaWduYWwgfHwgW107CiAgICAgICAgT25lU2lnbmFsLnB1c2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIE9uZVNpZ25hbC5pbml0KHsKICAgICAgICAgICAgICAgIGFwcElkOiAiNzg2MjdjNTUtZGE0Ny00ZmM0LTgxMzEtY2M1Yjg5OTkzNGU0IiwKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CgogICAgICAgIE9uZVNpZ25hbC5wdXNoKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBPbmVTaWduYWwub24oJ3N1YnNjcmlwdGlvbkNoYW5nZScsIGZ1bmN0aW9uKGlzU3Vic2NyaWJlZCkgewogICAgICAgICAgICAgICAgaWYgKGlzU3Vic2NyaWJlZCkgewogICAgICAgICAgICAgICAgICAgIE9uZVNpZ25hbC5nZXRVc2VySWQoKS50aGVuKGZ1bmN0aW9uKHVzZXJJZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAodXNlcklkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAnb3NfaWQ9JyArIHVzZXJJZDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIDwvc2NyaXB0PgoKICAgIDxzY3JpcHQ+CiAgICAgICAgd2luZG93LmludGVyY29tU2V0dGluZ3MgPSB7CiAgICAgICAgICAgIGFwaV9iYXNlOiAiaHR0cHM6Ly9hcGktaWFtLmludGVyY29tLmlvIiwKICAgICAgICAgICAgYXBwX2lkOiAicDYwcnU4eWYiCiAgICAgICAgfTsKCiAgICAgICAgLy8gV2UgcHJlLWZpbGxlZCB5b3VyIGFwcCBJRCBpbiB0aGUgd2lkZ2V0IFVSTDogJ2h0dHBzOi8vd2lkZ2V0LmludGVyY29tLmlvL3dpZGdldC9wNjBydTh5ZicKICAgICAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciB3ID0gd2luZG93OwogICAgICAgICAgICB2YXIgaWMgPSB3LkludGVyY29tOwogICAgICAgICAgICBpZiAodHlwZW9mIGljID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgICBpYygncmVhdHRhY2hfYWN0aXZhdG9yJyk7CiAgICAgICAgICAgICAgICBpYygndXBkYXRlJywgdy5pbnRlcmNvbVNldHRpbmdzKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkID0gZG9jdW1lbnQ7CiAgICAgICAgICAgICAgICB2YXIgaSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIGkuYyhhcmd1bWVudHMpOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIGkucSA9IFtdOwogICAgICAgICAgICAgICAgaS5jID0gZnVuY3Rpb24oYXJncykgewogICAgICAgICAgICAgICAgICAgIGkucS5wdXNoKGFyZ3MpOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIHcuSW50ZXJjb20gPSBpOwogICAgICAgICAgICAgICAgdmFyIGwgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgcyA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgICAgICAgICAgICAgcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgICAgICAgICAgICAgcy5hc3luYyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgcy5zcmMgPSAnaHR0cHM6Ly93aWRnZXQuaW50ZXJjb20uaW8vd2lkZ2V0L3A2MHJ1OHlmJzsKICAgICAgICAgICAgICAgICAgICB2YXIgeCA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOwogICAgICAgICAgICAgICAgICAgIHgucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocywgeCk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScpIHsKICAgICAgICAgICAgICAgICAgICBsKCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHcuYXR0YWNoRXZlbnQpIHsKICAgICAgICAgICAgICAgICAgICB3LmF0dGFjaEV2ZW50KCdvbmxvYWQnLCBsKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgbCwgZmFsc2UpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSkoKTsKICAgIDwvc2NyaXB0PgoKICAgIDwhLS0gR29vZ2xlIHRhZyAoZ3RhZy5qcykgLS0+CiAgICA8c2NyaXB0IGFzeW5jIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RhZy9qcz9pZD1HLUNUNlRWS1k0UUsiPjwvc2NyaXB0PgogICAgPHNjcmlwdD4KICAgICAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTsKCiAgICAgICAgZnVuY3Rpb24gZ3RhZygpIHsKICAgICAgICAgICAgZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTsKICAgICAgICB9CiAgICAgICAgZ3RhZygnanMnLCBuZXcgRGF0ZSgpKTsKCiAgICAgICAgZ3RhZygnY29uZmlnJywgJ0ctQ1Q2VFZLWTRRSycpOwogICAgPC9zY3JpcHQ+CgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgIGFkcm9sbF9hZHZfaWQgPSAiS0VSTUVIR0lNVkRRTENFRk0yVVVLVSI7CiAgICAgICAgYWRyb2xsX3BpeF9pZCA9ICJWR09EWVhUWEVaR0VWQ1FEVFBJUlhWIjsKICAgICAgICBhZHJvbGxfdmVyc2lvbiA9ICIyLjAiOwogICAgICAgIChmdW5jdGlvbih3LCBkLCBlLCBvLCBhKSB7CiAgICAgICAgICAgIHcuX19hZHJvbGxfbG9hZGVkID0gdHJ1ZTsKICAgICAgICAgICAgdy5hZHJvbGwgPSB3LmFkcm9sbCB8fCBbXTsKICAgICAgICAgICAgdy5hZHJvbGwuZiA9IFsnc2V0UHJvcGVydGllcycsICdpZGVudGlmeScsICd0cmFjayddOwogICAgICAgICAgICB2YXIgcm91bmR0cmlwVXJsID0gImh0dHBzOi8vcy5hZHJvbGwuY29tL2ovIiArIGFkcm9sbF9hZHZfaWQgKyAiL3JvdW5kdHJpcC5qcyI7CiAgICAgICAgICAgIGZvciAoYSA9IDA7IGEgPCB3LmFkcm9sbC5mLmxlbmd0aDsgYSsrKSB7CiAgICAgICAgICAgICAgICB3LmFkcm9sbFt3LmFkcm9sbC5mW2FdXSA9IHcuYWRyb2xsW3cuYWRyb2xsLmZbYV1dIHx8IChmdW5jdGlvbihuKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICB3LmFkcm9sbC5wdXNoKFtuLCBhcmd1bWVudHNdKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pKHcuYWRyb2xsLmZbYV0pCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZSA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgICAgIG8gPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsKICAgICAgICAgICAgZS5hc3luYyA9IDE7CiAgICAgICAgICAgIGUuc3JjID0gcm91bmR0cmlwVXJsOwogICAgICAgICAgICBvLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsIG8pOwogICAgICAgIH0pKHdpbmRvdywgZG9jdW1lbnQpOwogICAgICAgIGFkcm9sbC50cmFjaygicGFnZVZpZXciKTsKICAgIDwvc2NyaXB0PgogICAgCiAgICAKCjwvaGVhZD4KCjxib2R5IGNsYXNzPSJwYWdlIHBhZ2UtLWluZGV4IiBkYXRhLWNvbnRyb2xsZXI9InNvYy1wcm9vZiI+CiAgICA8ZGl2IGlkPSJmYi1yb290Ij48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InNvYy1wcm9vZi1jb250YWluZXIiIGRhdGEtc29jLXByb29mLXRhcmdldD0iY29udGFpbmVyIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9IndyYXBwZXIiPgoKCgoKICAgICAgICA8IS0tIE1lbnUgLS0+CgogICAgICAgIDxoZWFkZXIgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXJfX2lubmVyIiBkYXRhLWNvbnRyb2xsZXI9Im5hdiI+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaGVhZGVyX19idXJnZXIiIGRhdGEtYWN0aW9uPSJjbGljay0mZ3Q7bmF2I29wZW4iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLW1lbnUiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9ImhlYWRlcl9fbG9nby13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9pbWcvbG9nby1mdWxsLnN2ZyIgYWx0PSI3QlJJREdFIiB3aWR0aD0iMTcyIiBoZWlnaHQ9IjQwIiBsb2FkaW5nPSJlYWdlciIgY2xhc3M9ImhlYWRlcl9fbG9nbyI+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDxuYXYgY2xhc3M9ImhlYWRlcl9fbmF2IG5hdiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2X19saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19pdGVtIGhhcy1zdWJtZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXZfX2xpbmsiPlByb2R1Y3RzPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im5hdl9fc3VibWVudS1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/YT1zdGFrZSIgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1zdGFrZSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLXRpdGxlIGZsZXgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YWtpbmcgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay1kZXNjIj5HZXQgaGlnaGVyIEFQWTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPXJld2FyZHMiIGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtY29pbnMiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmstdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10aXRsZSI+UmV3YXJkczwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmstZGVzYyI+R2V0IDdCUklER0UgZm9yIGRhaWx5IGFjdGlvbnM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX2l0ZW0gaGFzLXN1Ym1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdl9fbGluayI+Q29tcGFueTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2X19zdWJtZW51LWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX3N1Ym1lbnUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iP2E9YWJvdXQiIGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtYnVzaW5lc3MiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmstdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10aXRsZSI+QWJvdXQ8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLWRlc2MiPldobyB3ZSBhcmU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnRydXN0cGlsb3QuY29tLyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtc3RhciI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLXRpdGxlIj5SZXZpZXdzPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay1kZXNjIj5QZW9wbGUgdHJ1c3QgdXM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPWVjb3N5c3RlbSIgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1ib2x0Ij48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLXRleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmstdGl0bGUiPkVjb3N5c3RlbTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmstZGVzYyI+TGVhcm4gYWJvdXQgTWF0cml4IFRlY2hub2xvZ3k8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPW1hdHJpeCIgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1yb2NrZXQiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmstdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10aXRsZSI+TWF0cml4PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay1kZXNjIj5UZWNobm9sb2d5IGluIGFjdGlvbjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX3N1Ym1lbnUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iP2E9Y29tbXVuaXR5IiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLXRodW1icy11cCI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLXRpdGxlIj5Db21tdW5pdHk8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLWRlc2MiPkxpdmUgYWN0aXZpdHkgaW4gU29jaWFsIE1lZGlhPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX2l0ZW0gaGFzLXN1Ym1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdl9fbGluayI+TGVhcm48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdl9fc3VibWVudS1saXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPWZhcSIgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1xdWVzdGlvbiI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLXRpdGxlIj5GQVE8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLWRlc2MiPkFsbCB0aGUgYW5zd2VyczwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX3N1Ym1lbnUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rIiBocmVmPSI/YT1zdXBwb3J0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1ib29rIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLXRleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJtZW51LWxpbmstdGl0bGUiPkdldCBIZWxwPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay1kZXNjIj5PbmxpbmUgMjQvNzwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX3N1Ym1lbnUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgIGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtaGVscCI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay10ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3VibWVudS1saW5rLXRpdGxlIj5Eb2N1bWVudGF0aW9uPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Ym1lbnUtbGluay1kZXNjIj5GdWxsIGRpc2Nsb3N1cmU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im5hdl9faXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iP2E9YmxvZyIgY2xhc3M9Im5hdl9fbGluayI+QmxvZzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9uYXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LW1vYmlsZSBoaWRkZW4iIGRhdGEtbmF2LXRhcmdldD0icGFuZWwiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtbW9iaWxlX19oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LW1vYmlsZV9fY2xvc2UiIGRhdGEtYWN0aW9uPSJjbGljay0mZ3Q7bmF2I2Nsb3NlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtY2xvc2UiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXYtbW9iaWxlX19sb2dvLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2xvZ28tZnVsbC5zdmciIGFsdD0iN0JSSURHRSIgd2lkdGg9IjE3MiIgaGVpZ2h0PSI0MCIgbG9hZGluZz0iZWFnZXIiIGNsYXNzPSJuYXYtbW9iaWxlX19sb2dvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1tb2JpbGVfX2JvZHktd3JhcHBlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtbW9iaWxlX19ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmF2IGNsYXNzPSJuYXYtbW9iaWxlX19tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWl0ZW0gaGFzLXN1Ym1lbnUiIGRhdGEtY29udHJvbGxlcj0iYWNjb3JkaW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWxpbmsiIGRhdGEtYWN0aW9uPSJjbGljay0mZ3Q7YWNjb3JkaW9uI3RvZ2dsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1tb2JpbGVfX21lbnUtbGluay1sYWJlbCI+UHJvZHVjdHM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1hcnJvdy1kb3duIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudSIgZGF0YS1hY2NvcmRpb24tdGFyZ2V0PSJib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPXN0YWtlIiBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudS1saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rha2luZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPXJld2FyZHMiIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWxpbmsiPlJld2FyZHM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2LW1vYmlsZV9fbWVudS1pdGVtIGhhcy1zdWJtZW51IiBkYXRhLWNvbnRyb2xsZXI9ImFjY29yZGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LW1vYmlsZV9fbWVudS1saW5rIiBkYXRhLWFjdGlvbj0iY2xpY2stJmd0O2FjY29yZGlvbiN0b2dnbGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWxpbmstbGFiZWwiPkNvbXBhbnk8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1hcnJvdy1kb3duIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudSIgZGF0YS1hY2NvcmRpb24tdGFyZ2V0PSJib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPWFib3V0IiBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudS1saW5rIj5BYm91dDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im5hdi1tb2JpbGVfX3N1Ym1lbnUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cudHJ1c3RwaWxvdC5jb20vIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Im5hdi1tb2JpbGVfX3N1Ym1lbnUtbGluayI+UmV2aWV3czwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im5hdi1tb2JpbGVfX3N1Ym1lbnUtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iP2E9ZWNvc3lzdGVtIiBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudS1saW5rIj5FY29zeXN0ZW08L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPW1hdHJpeCIgY2xhc3M9Im5hdi1tb2JpbGVfX3N1Ym1lbnUtbGluayI+TWF0cml4PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudS1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/YT1jb21tdW5pdHkiIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWxpbmsiPkNvbW11bml0eTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWl0ZW0gaGFzLXN1Ym1lbnUiIGRhdGEtY29udHJvbGxlcj0iYWNjb3JkaW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWxpbmsiIGRhdGEtYWN0aW9uPSJjbGljay0mZ3Q7YWNjb3JkaW9uI3RvZ2dsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1tb2JpbGVfX21lbnUtbGluay1sYWJlbCI+TGVhcm48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1hcnJvdy1kb3duIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudSIgZGF0YS1hY2NvcmRpb24tdGFyZ2V0PSJib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19zdWJtZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPWZhcSI+RkFRPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2LW1vYmlsZV9fc3VibWVudS1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/YT1kb2N1bWVudGF0aW9uIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Im5hdi1tb2JpbGVfX3N1Ym1lbnUtbGluayI+RG9jdW1lbnRhdGlvbjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPWJsb2ciIGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWxpbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtbW9iaWxlX19tZW51LWxpbmstbGFiZWwiPkJsb2c8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmF2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtbW9iaWxlX19mb290ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1tb2JpbGVfX2FjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtbW9iaWxlX19oZWxwIGJ0biBidG4tLXByaW1hcnkgYnRuLS1tZCIgZGF0YS1hY3Rpb249ImNsaWNrLSZndDtuYXYjY2xvc2UiIG9uY2xpY2s9IndpbmRvdy5JbnRlcmNvbSAmJiB3aW5kb3cuSW50ZXJjb20oJ3Nob3cnKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG5fX2xhYmVsIj5HZXQgaGVscDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtaGVscCI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LW1vYmlsZV9fc29jaWFsIj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZm9sbG93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9sbG93X19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vIiBjbGFzcz0iZm9sbG93X19saW5rIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IkZhY2Vib29rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1zb2MtZmFjZWJvb2siPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9sbG93X19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3R3aXR0ZXIuY29tLyIgY2xhc3M9ImZvbGxvd19fbGluayIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJUd2l0dGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1zb2MtdHdpdHRlciI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb2xsb3dfX2l0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdC5tZS8iIGNsYXNzPSJmb2xsb3dfX2xpbmsiIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0iVGVsZWdyYW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLXNvYy10ZWxlZ3JhbSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb2xsb3dfX2l0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZGlzY29yZC5nZy8iIGNsYXNzPSJmb2xsb3dfX2xpbmsiIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0iRGlzY29yZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtc29jLWRpc2NvcmQiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9sbG93X19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vIiBjbGFzcz0iZm9sbG93X19saW5rIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9Ik1lZGl1bSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtc29jLW1lZGl1bSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb2xsb3dfX2l0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tLyIgY2xhc3M9ImZvbGxvd19fbGluayIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJZb3V0dWJlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1zb2MteW91dHViZSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2LW1vYmlsZV9fZG9jcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2LW1vYmlsZV9fZG9jcy1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9kb2NzL1Rlcm1zX29mX1VzZS5wZGYiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0ibmF2LW1vYmlsZV9fZG9jcy1saW5rIj5UZXJtcyBvZiBVc2U8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2LW1vYmlsZV9fZG9jcy1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9kb2NzL1ByaXZhY3kucGRmIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Im5hdi1tb2JpbGVfX2RvY3MtbGluayI+UHJpdmFjeTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlcl9fYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiIGNsYXNzPSJoZWFkZXJfX2xhbmctY29udGFpbmVyIiBkYXRhLWNvbnRyb2xsZXI9ImRyb3Bkb3duIGxhbmciPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1faWQiIHZhbHVlPSIxNzg1MTIxNjU5NTcwNiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV90b2tlbiIgdmFsdWU9IjJmZGZhZjI2N2I5ZmFjODQ0NTM4MDc3MjRhNWI5MmQwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iaGVhZGVyX19sYW5nIiBkYXRhLWRyb3Bkb3duLXRhcmdldD0idHJpZ2dlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLWdsb2JlIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXJfX2xhbmctZHJvcGRvd24gZHJvcGRvd24gaGlkZGVuIiBkYXRhLWRyb3Bkb3duLXRhcmdldD0iZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnVfX2xpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93bi1tZW51X19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImRyb3Bkb3duLW1lbnVfX2J1dHRvbiIgZGF0YS1sYW5nPSJlbiIgZGF0YS1hY3Rpb249Imxhbmcjc3dpdGNoIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9pbWcvbGFuZ3MvZW4ucG5nIiBhbHQ9IiIgbG9hZGluZz0ibGF6eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkcm9wZG93bi1tZW51X19idXR0b24tbGFiZWwiPkVuZ2xpc2g8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duX19hcnJvdyI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkxhbmdGb3JtW2xhbmddIiB2YWx1ZT0iZW4iIGRhdGEtbGFuZy10YXJnZXQ9InZhbHVlIj4gPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic291cmNlIiB2YWx1ZT0iLyI+IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il9jc3JmIiB2YWx1ZT0iNG96TWVrYW02dHZuQXF6R1dnT3J4aTRHRllsUWJsR3hGTVkyNUY2V0F6dVY2dm9wTWM2QzdwMXEyWXNPTk9QeFZHbFMtanBkT2RSQ2lGWGRDUGszZWc9PSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPWxvZ2luIiBjbGFzcz0iaGVhZGVyX19sb2dpbiI+TG9naW48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPXNpZ251cCIgY2xhc3M9ImhlYWRlcl9fY29ubmVjdCBidG4gYnRuLS1zZWNvbmRhcnkgYnRuLS1tZCB3LVsyMDBweF0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuX19sYWJlbCI+Q29ubmVjdDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtYm9sdCI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/YT1zaWdudXAiIGNsYXNzPSJoZWFkZXJfX2Nvbm5lY3QtaWNvbiBidG4gYnRuLS1zZWNvbmRhcnkgYnRuLS1yYWlzZWQgYnRuLS1zbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy11c2VyIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9oZWFkZXI+CiAgICAgICAgCjxtYWluIGNsYXNzPSJtYWluIj4KCiAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiBzZWN0aW9uLS1tZCByZWxhdGl2ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBzbTpncmlkLWNvbHMtWzlmcixfOGZyXSBnYXAtNDAiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic206bWF4LXctWzY4MHB4XSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXBwZXJjYXNlIHRyYWNraW5nLVs1cHhdIG1iLTE2IHNtOm1heC13LVszNGNoXSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDdCcmlkZ2UgQ2FwaXRhbCBsaXF1aWRpdHkgcHJvdmlkZXI8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3M9InRleHQtcHJpbWFyeS1oMSBmb250LWJsYWNrIG1iLTI0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSBTdXByZW1lIDxicj4gPG1hcms+Q3J5cHRvIFBvd2VyPC9tYXJrPiA8L2gxPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtZGFyayBtYi00MCBzbTptYXgtdy1bNTAwcHhdIj4KICAgICAgICAgICAgICAgICAgICAgICAgUHJvdmlkZSBEZUZpIGxpcXVpZGl0eSB0byBlYXJuIHVwIHRvIDEyJSBBUFkuIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGZsZXgtd3JhcCBnYXAtMjQgbWItNjQiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/YT1zaWdudXAiIGNsYXNzPSJidG4gYnRuLS1wcmltYXJ5IGJ0bi0tbWQgbWluLXctWzI4MHB4XSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG5fX2xhYmVsIj5VbmxvY2sgRGVwb3NpdCBQb3dlcnM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLWtleSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXByaW1hcnktaDYgdGV4dC1kYXJrIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdldCB1cCB0byA8YnI+IDxtYXJrPjEyJSBBUFk8L21hcms+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnRydXN0cGlsb3QuY29tLyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0cnVzdHBpbG90LWV4dCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL3RydXN0cGlsb3QvdHJ1c3RwaWxvdC1zdGFycy5zdmciIGFsdD0iIiB3aWR0aD0iMTcwIiBoZWlnaHQ9IjMyIiBsb2FkaW5nPSJsYXp5IiBjbGFzcz0idHJ1c3RwaWxvdC1leHRfX3N0YXJzIj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRydXN0cGlsb3QtZXh0X190ZXh0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRydXN0cGlsb3QtZXh0X19yZXZpZXdzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWFyayBjbGFzcz0idGV4dC1zZWNvbmRhcnkiPjEgMDAwKzwvbWFyaz4gcmV2aWV3cyBvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9pbWcvdHJ1c3RwaWxvdC90cnVzdHBpbG90LWJsYWNrLnN2ZyIgYWx0PSIiIHdpZHRoPSIxMDYiIGhlaWdodD0iMjQiIGxvYWRpbmc9ImxhenkiIGNsYXNzPSJ0cnVzdHBpbG90LWV4dF9fbG9nbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9pbWcvbGlxdWlkaXR5LWFzc2V0cy5wbmciIGxvYWRpbmc9ImVhZ2VyIiBhbHQ9IkxpcXVpZGl0eSBhc3NldHMiIHdpZHRoPSI1MjAiIGhlaWdodD0iNDkyIiBjbGFzcz0idW50aWwtc206aGlkZGVuIG14LWF1dG8gbXQtMjQiPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXQtNDAiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJtYXNzLW1lZGlhIj4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im1hc3MtbWVkaWFfX2l0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5tYXJrZXR3YXRjaC5jb20vcHJlc3MtcmVsZWFzZS8iIGNsYXNzPSJtYXNzLW1lZGlhX19saW5rIiB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2ltZy9tYXNzLW1lZGlhL21hcmtldHdhdGNoLnBuZyIgYWx0PSJNYXJrZXQgV2F0Y2giIHdpZHRoPSIxNjYiIGhlaWdodD0iMjQiPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im1hc3MtbWVkaWFfX2l0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2FwbmV3cy5jb20vcHJlc3MtcmVsZWFzZS9tYXJrZXRlcnNtZWRpYS90ZWNobm9sb2d5LTAwYjI2N2Y5Nzc4OGU1MTQ1OTIwNzJhODY0MDRhYTE2IiBjbGFzcz0ibWFzcy1tZWRpYV9fbGluayIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9pbWcvbWFzcy1tZWRpYS9hc3NvY2lhdGVkLXByZXNzLnBuZyIgYWx0PSJBc3NvY2lhdGVkIFByZXNzIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjI2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJtYXNzLW1lZGlhX19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9tYXJrZXRzLmJ1c2luZXNzaW5zaWRlci5jb20vIiBjbGFzcz0ibWFzcy1tZWRpYV9fbGluayIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9pbWcvbWFzcy1tZWRpYS9idXNpbmVzcy1pbnNpZGVyLnBuZyIgYWx0PSJCdXNpbmVzcyBJbnNpZGVyIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjQwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJtYXNzLW1lZGlhX19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZGlnaXRhbGpvdXJuYWwuY29tLyIgY2xhc3M9Im1hc3MtbWVkaWFfX2xpbmsiIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL21hc3MtbWVkaWEvZGlnaXRhbC1qb3VybmFsLnBuZyIgYWx0PSJEaWdpdGFsIEpvdXJuYWwiIHdpZHRoPSIxMDAiIGhlaWdodD0iNDQiPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJsdXIgYmx1ci0tYmx1ZSIgc3R5bGU9InRvcDogLTI5MHB4OyBsZWZ0OiAyNDBweDsgd2lkdGg6IDk0MHB4OyBoZWlnaHQ6IDk0MHB4OyI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYmx1ciBibHVyLS1ncmVlbiIgc3R5bGU9InRvcDogMTAwcHg7IGxlZnQ6IDA7IHdpZHRoOiA4MDBweDsgaGVpZ2h0OiA4MDBweDsiPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJsdXIgYmx1ci0tYmx1ZSIgc3R5bGU9InRvcDogNDIwcHg7IGxlZnQ6IC0yOTBweDsgd2lkdGg6IDk0MHB4OyBoZWlnaHQ6IDk0MHB4OyBvcGFjaXR5OiAwLjI7Ij48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJibHVyIGJsdXItLWdyZWVuIiBzdHlsZT0idG9wOiAxNTBweDsgbGVmdDogMzQ0cHg7IHdpZHRoOiAxMDUwcHg7IGhlaWdodDogMTA1MHB4OyBvcGFjaXR5OiAwLjI7Ij4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJibHVyIGJsdXItLWJsdWUiIHN0eWxlPSJ0b3A6IDIwMHB4OyByaWdodDogLTIwcHg7IHdpZHRoOiAxMDUwcHg7IGhlaWdodDogMTA1MHB4OyBvcGFjaXR5OiAwLjQ7Ij48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJibHVyIGJsdXItLWdyZWVuIiBzdHlsZT0idG9wOiAtMTUwcHg7IHJpZ2h0OiAtMzAwcHg7IHdpZHRoOiAxMDUwcHg7IGhlaWdodDogMTA1MHB4OyBvcGFjaXR5OiAwLjU7Ij4KICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KCgogICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24gc2VjdGlvbi0teHMiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIG1iLTQ4Ij4KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRleHQtcHJpbWFyeS1oMSBmb250LWJsYWNrIG1iLTE2Ij5TaG9ydC1UZXJtICYgTG9uZy1UZXJtPC9oMj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWRhcmsiPkNob29zZSB3aGljaCBwbGFuIHdvcmtzIGJlc3QgZm9yIHlvdTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMSB4czpncmlkLWNvbHMtMiBnYXAteC00MCBnYXAteS00OCBtYXgtdy1bODYwcHhdIG14LWF1dG8gbWItNDAiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii9pbWcvY2FsZW5kYXItNjAtZGF5cy5wbmciIGFsdD0iMjQgaG91cnMiIGxvYWRpbmc9ImxhenkiIHdpZHRoPSIxODAiIGhlaWdodD0iMTkyIiBjbGFzcz0ibWItMjQgbXgtYXV0byI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtcHJpbWFyeS1oMiBmb250LWJsYWNrIHRleHQtcHJpbWFyeSBtYi04Ij4xMDQlIEFQWTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWJvZHktaDUgdGV4dC1kYXJrIj5VcCB0byAxMDQlIGRhaWx5PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2ltZy9jYWxlbmRhci0zNjUtZGF5cy5wbmciIGFsdD0iMzY1IGRheXMiIGxvYWRpbmc9ImxhenkiIHdpZHRoPSIxODAiIGhlaWdodD0iMTkyIiBjbGFzcz0ibWItMjQgbXgtYXV0byI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtcHJpbWFyeS1oMiBmb250LWJsYWNrIHRleHQtcHJpbWFyeSBtYi04Ij40LjUlIEFQWTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWJvZHktaDUgdGV4dC1kYXJrIj5VcCB0byA0LjUlIGRhaWx5PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2ltZy9jYWxlbmRhci0xMi1kYXlzLnBuZyIgYWx0PSIzNjUgZGF5cyIgbG9hZGluZz0ibGF6eSIgd2lkdGg9IjE4MCIgaGVpZ2h0PSIxOTIiIGNsYXNzPSJtYi0yNCBteC1hdXRvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1wcmltYXJ5LWgyIGZvbnQtYmxhY2sgdGV4dC1wcmltYXJ5IG1iLTgiPjEyJSBBUFk8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1ib2R5LWg1IHRleHQtZGFyayI+VXAgdG8gMTIlIGRhaWx5PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ib2R5LXRpbnkgdGV4dC1jZW50ZXIgbWItNDAiPgogICAgICAgICAgICAgICAgICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgbm8gZGFpbHkgcGF5b3V0cyBmb3IgTFAgcGxhbnMuIFlvdSBjYW4gY2xhaW0geW91ciBwcm9maXRzIG9uIHRoZSBkZXBvc2l0IG1hdHVyaXR5IGRhdGUuIDwvcD4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgbXQtNDAgZ2FwLXgtNDAgZ2FwLXktMjQiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPXNpZ251cCIgY2xhc3M9ImJ0biBidG4tLXByaW1hcnkgYnRuLS1tZCBtaW4tdy1bMjQwcHhdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuX19sYWJlbCI+Q2hvb3NlIGEgUGxhbjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLWxpcXVpZGl0eSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/YT1mYXEiIGNsYXNzPSJsaW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1ib29rIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IExQIEZBUSA8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CgoKICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIHNlY3Rpb24tLXhzIHNlY3Rpb24tLWRhcmsgeHM6YmctW3VybCgnL2ltZy9iZy1saXF1aWRpdHkuanBnJyldIGJnLVsjMDAwMTAzXSBiZy1jb3ZlciBiZy1uby1yZXBlYXQgYmctY2VudGVyICFwdC0wIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMSBzbTpncmlkLWNvbHMtMiBnYXAteC02NCBnYXAteS0yNCBpdGVtcy1jZW50ZXIgbWF4LXctWzExNDBweF0gbXgtYXV0byBtYi00OCI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGV4dC1wcmltYXJ5LWgxIGZvbnQtYmxhY2sgbWItOCI+UG93ZXIgVXAhPC9oMj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXByaW1hcnktaDMiPgogICAgICAgICAgICAgICAgICAgICAgICA8bWFyayBjbGFzcz0idGV4dC1zZWNvbmRhcnkiPllvdXIgQVBZIHdpdGggN2JyaWRnZSBDYXBpdGFsPC9tYXJrPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFuc2xhdGUteS04Ij4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibWItMjQiPgogICAgICAgICAgICAgICAgICAgICAgICA3YnJpZGdlIENhcGl0YWwgaXMgcGVnZ2VkIHdpdGggdGhlIFVTIGRvbGxhciBpbiAxOjEgcmF0aW8uIEJhY2sgaW52ZXN0ZWQgYW1vdW50IHdpdGggN2JyaWRnZSBDYXBpdGFsIHRvIGJvb3N0IHlvdXIgQVBZLiA8L3A+CiAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgIEJhY2sgMTAwJSBvZiB0aGUgTFAgZGVwb3NpdCB3aXRoIDdicmlkZ2UgQ2FwaXRhbCB0byBnZXQgYWRkaXRpb25hbCBwcm9maXQgb2YgKzElIEFQWSogPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ib2R5LXRpbnkgdGV4dC1ncmF5LWRhcmsgdy1maXQgbXgtYXV0byI+CiAgICAgICAgICAgICAgICAqIExQIHJld2FyZHMgYXJlIHBhaWQgaW4gYm90aCBpbnZlc3RlZCBjcnlwdG9jdXJyZW5jeSBhbmQgN2JyaWRnZSBDYXBpdGFsIGF0IHRoZSBzYW1lIEFQWSByYXRlLiA8YnI+CiAgICAgICAgICAgICAgICAqKllvdSBtdXN0IGJhY2sgbm8gbGVzcyB0aGFuIDElIG9mIHRoZSBMUCBkZXBvc2l0IGFtb3VudCB0byBnZXQgdGhlIEFQWSBib29zdC4gPC9wPgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKCjxkaXYgY2xhc3M9ImFib3V0LXZpZGVvIHRleHQtY2VudGVyIj4KICAgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgaGVpZ2h0OiAwOyBvdmVyZmxvdzogaGlkZGVuOyI+CiAgICAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvWW1nZS1xaDNtNEUiIHRpdGxlPSJBIFlvdVR1YmUgdmlkZW8iIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW49IiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyI+PC9pZnJhbWU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIAoKCiAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiBzZWN0aW9uLS1tZCByZWxhdGl2ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBzbTpncmlkLWNvbHMtMiBnYXAteC02NCBnYXAteS0yNCBpdGVtcy1jZW50ZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGc6cGwtODAgcmVsYXRpdmUiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL25lb3MtcHJlc2FsZS5wbmciIGFsdD0iN2JyaWRnZSBDYXBpdGFsIFByZXNhbGUiIHdpZHRoPSI0ODQiIGhlaWdodD0iNDgwIiBsb2FkaW5nPSJsYXp5IiBjbGFzcz0idW50aWwtc206bXgtYXV0byB1bnRpbC1zbTptYXgtdy1bNzAlXSI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIj4KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRleHQtcHJpbWFyeS1oMSBmb250LWJsYWNrIG1iLTI0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgN2JyaWRnZSBDYXBpdGFsIFRva2VuIDxtYXJrIGNsYXNzPSJ0ZXh0LXByaW1hcnkiPlByZXNhbGU8L21hcms+PC9oMj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXgtdy1bNjAwcHhdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im1iLTMyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2hhbmdlIGFueSBjcnlwdG8gZm9yIDdicmlkZ2UgQ2FwaXRhbCB3aXRoIHplcm8gZXhjaGFuZ2UgZmVlLiA8YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA3YnJpZGdlIENhcGl0YWwgY3VycmVudCBwcmljZTogJDEgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibWItMzIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnV5IDdicmlkZ2UgQ2FwaXRhbCBiZWZvcmUgaXQgaXMgbGlzdGVkIG9uIGV4Y2hhbmdlcy4gPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9hPWxvZ2luIiBjbGFzcz0iYnRuIGJ0bi0tcHJpbWFyeSBidG4tLW1kIG1pbi13LVsyNjBweF0iPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG5fX2xhYmVsIj5CdXkgN2JyaWRnZSBDYXBpdGFsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtd2FsbGV0Ij48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJsdXIgYmx1ci0tYmx1ZSIgc3R5bGU9InRvcDogLTE0MHB4OyByaWdodDogLTMyMHB4OyB3aWR0aDogMTA1MHB4OyBoZWlnaHQ6IDEwNTBweDsgb3BhY2l0eTogMC4yOyI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYmx1ciBibHVyLS1ncmVlbiIgc3R5bGU9InRvcDogNzBweDsgbGVmdDogLTE2MHB4OyB3aWR0aDogODAwcHg7IGhlaWdodDogODAwcHg7IG9wYWNpdHk6IDAuMzsiPgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKCiAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiBzZWN0aW9uLS1sZyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVsYXRpdmUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgbWItNDgiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtZGFyayBtYi0xNiI+WW91ciBKb3VybmV5IHRvIEZpbmFuY2lhbCBGcmVlZG9tPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0ZXh0LXByaW1hcnktaDEgZm9udC1ibGFjayI+QmVnaW5zIDxtYXJrPkhlcmU8L21hcms+PC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBzbTpncmlkLWNvbHMtMyBnYXAtMjQgbWQ6Z2FwLTQwIG1heC13LVsxMTAwcHhdIG14LWF1dG8iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQgYmctd2hpdGUvNTAiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX190b3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9faWNvbiBpY29uLXJhaXNlZCBpY29uLXJhaXNlZC0tcHJpbWFyeSBpY29uLXJhaXNlZC0tbWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy11c2VyIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdGl0bGUiPkNyZWF0ZSBBY2NvdW50PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2Rlc2MiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lnbiB1cCBhbmQgZ28gdG8geW91ciBEYXNoYm9hcmQgRGVwb3NpdCBzZWN0aW9uLiA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkIGJnLXdoaXRlLzUwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2ljb24gaWNvbi1yYWlzZWQgaWNvbi1yYWlzZWQtLXByaW1hcnkgaWNvbi1yYWlzZWQtLW1kIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtY29pbnMiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX190aXRsZSI+Q2hvb3NlIENyeXB0byBBc3NldDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkX19kZXNjIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBjb2luIHRvIGludmVzdCBpbiBhbmQgbWFrZSBhIGRlcG9zaXQgb2YgYW55IGFtb3VudCBhbmQgdGltZWZyYW1lLiA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkIGJnLXdoaXRlLzUwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmRfX2ljb24gaWNvbi1yYWlzZWQgaWNvbi1yYWlzZWQtLXByaW1hcnkgaWNvbi1yYWlzZWQtLW1kIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtY3VwIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fdGl0bGUiPkVhcm4gUmV3YXJkcyE8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZF9fZGVzYyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZWVwIGNyeXB0byBpbiB5b3VyIHdhbGxldCBhbmQgY2xhaW0gcmV3YXJkcyBldmVyeSAyNCBob3Vycy4gPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZmxleC13cmFwIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBtdC00MCBnYXAteC00MCBnYXAteS0yNCI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImJ0biBidG4tLXByaW1hcnkgYnRuLS1tZCBtaW4tdy1bMjQwcHhdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuX19sYWJlbCI+RGVwb3NpdCBOb3c8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1zdGFrZSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/YT1mYXEiIGNsYXNzPSJsaW5rIiB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtYm9vayI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiBEZXBvc2l0IEZBUSA8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsdXIgYmx1ci0tYmx1ZSIgc3R5bGU9InRvcDogLTI4MHB4OyBsZWZ0OiAtNzcwcHg7IG9wYWNpdHk6IDAuMjsiPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibHVyIGJsdXItLWdyZWVuIiBzdHlsZT0idG9wOiAtMTMwcHg7IGxlZnQ6IC0yNzBweDsgd2lkdGg6IDkwMHB4OyBoZWlnaHQ6IDkwMHB4OyI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibHVyIGJsdXItLWJsdWUiIHN0eWxlPSJ0b3A6IC0yMzBweDsgbGVmdDogNTMwcHg7IG9wYWNpdHk6IDAuMjsiPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibHVyIGJsdXItLWdyZWVuIiBzdHlsZT0idG9wOiAtNDIwcHg7IGxlZnQ6IDExMDBweDsgd2lkdGg6IDkwMHB4OyBoZWlnaHQ6IDkwMHB4OyI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgCiAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiBzZWN0aW9uLS1tZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIHRleHQtY2VudGVyIHRleHQtZGFyayI+CiAgICAgICAgICAgIDxoMiBjbGFzcz0idGV4dC1wcmltYXJ5LWgxIGZvbnQtYmxhY2sgbWItNDAiPgogICAgICAgICAgICAgICAgQ29tcGFueSA8bWFyaz5TdGF0aXN0aWNzPC9tYXJrPgogICAgICAgICAgICA8L2gyPgogICAgICAgICAgICA8cCBjbGFzcz0ibWItNjQiPk1ha2luZyB2aXNpb24gY29tZSB0cnVlIGlzIHRvdWdoIHdpdGhvdXQgdGhlIHdvcmxk4oCZcyBicmlnaHRlc3QgbWluZHMuIDxicj4KICAgICAgICAgICAgICAgIFRoZXNlIHBlb3BsZQogICAgICAgICAgICAgICAgc2hhcGUgdGhlIGZ1dHVyZS48L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubGluZS1ncmlkIGdyaWQtY29scy0xIHNtOmdyaWQtY29scy1bcmVwZWF0KDIsX21pbi1jb250ZW50KV0gZ2FwLXgtWzE4MHB4XSBnYXAteS02NCBzbTpnYXAteS1bODBweF0gc206dGV4dC1sZWZ0Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVudGlsLXNtOmZsZXgtY29sIGZsZXggZ2FwLXgtMjQgZ2FwLXktNCBpdGVtcy1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtcHJpbWFyeS1oMSB0ZXh0LXNlY29uZGFyeSI+PG1hcms+NTY4NjwvbWFyaz48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8cD5EYXlzIE9ubGluZTwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idW50aWwtc206ZmxleC1jb2wgZmxleCBnYXAteC0yNCBnYXAteS00IGl0ZW1zLWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1wcmltYXJ5LWgxIj48bWFyaz4zMjA8L21hcms+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPHA+VXNlcnM8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVudGlsLXNtOmZsZXgtY29sIGZsZXggZ2FwLXgtMjQgZ2FwLXktNCBpdGVtcy1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtcHJpbWFyeS1oMSB0ZXh0LXNlY29uZGFyeSI+PG1hcms+JDQyNzI2NC44MjwvbWFyaz48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8cD5JbnZlc3RlZDwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idW50aWwtc206ZmxleC1jb2wgZmxleCBnYXAteC0yNCBnYXAteS00IGl0ZW1zLWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1wcmltYXJ5LWgxIHRleHQtc2Vjb25kYXJ5Ij48bWFyaz4kNTA1MTAuNzc8L21hcms+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPHA+UGF5b3V0PC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgCiAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiBzZWN0aW9uLS1sZyI+CiAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0ZXh0LXByaW1hcnktaDEgZm9udC1ibGFjayBtYi0yNCI+CiAgICAgICAgICAgICAgICAgICAgIDxtYXJrPkdvIEJleW9uZDwvbWFyaz4gWW91ciBMaW1pdHMKICAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1heC13LVs4NDBweF0gbXgtYXV0byBtYi01NiB0ZXh0LWRhcmsiPgogICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibWItMjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgV2hlbiB5b3UgZWFybiA3YnJpZGdlIENhcGl0YWwsIERlcG9zaXQgeW91ciBjcnlwdG8gb3IgaW52aXRlIGZvbGxvd2VycywgeW91IGVhcm4gQ29tbWlzc2lvbnMgYW5kIGFkdmFuY2UgaW4gbGV2ZWwuIDwvcD4KICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgaGlnaGVyIHlvdXIgbGV2ZWwgaXMsIHRoZSBtb3JlIGJlbmVmaXRzIHlvdSBnZXQuIDxicj4gSGVyZeKAmXMgaG93IFJld2FyZCBpcyBjYWxjdWxhdGVkOiA8L3A+CiAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAteC0yNCBnYXAteS00OCB1bnRpbC1zbTpmbGV4LWNvbCB1bnRpbC1zbTppdGVtcy1jZW50ZXIgc206anVzdGlmeS1iZXR3ZWVuIG1heC13LVs5ODBweF0gbXgtYXV0byBtYi00OCI+CiAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctWzIxMHB4XSI+CiAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2ltZy9sZXZlbHMtc3Rhci0xLnBuZyIgYWx0PSIiIHdpZHRoPSI5OSIgaGVpZ2h0PSI5NSIgY2xhc3M9Im14LWF1dG8gbXQtOCBtYi1bMTBweF0iPgogICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1wcmltYXJ5LWgyIHRleHQtcHJpbWFyeSBmb250LWJsYWNrIG1iLTgiPjEwJTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1kYXJrIHRleHQtYm9keS1oNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yIDEtMjAgUmVmZXJyYWxzIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy1bMjEwcHhdIj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2xldmVscy1zdGFyLTIucG5nIiBhbHQ9IiIgd2lkdGg9IjE0MiIgaGVpZ2h0PSIxMTMiIGNsYXNzPSJteC1hdXRvIj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtcHJpbWFyeS1oMiB0ZXh0LXByaW1hcnkgZm9udC1ibGFjayBtYi04Ij4yMCU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtZGFyayB0ZXh0LWJvZHktaDUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciAyMS0xMDAgUmVmZXJyYWxzIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy1bMjEwcHhdIj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2xldmVscy1zdGFyLTMucG5nIiBhbHQ9IiIgd2lkdGg9IjE2OSIgaGVpZ2h0PSIxMTMiIGNsYXNzPSJteC1hdXRvIj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtcHJpbWFyeS1oMiB0ZXh0LXByaW1hcnkgZm9udC1ibGFjayBtYi04Ij41MCU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtZGFyayB0ZXh0LWJvZHktaDUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciAxMDArIFJlZmVycmFscyA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1ib2R5LXRpbnkgdGV4dC1sZWZ0IG1heC13LVs0MDBweF0gbXgtYXV0byI+CiAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgKkRlcG9zaXRkIDdicmlkZ2UgQ2FwaXRhbCBhcmUgbm90IGFwcGxpY2FibGUuIDwvcD4KICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAqKjEwMCA3YnJpZGdlIENhcGl0YWwgd2VsY29tZSBnaWZ0IGlzIG5vdCBhcHBsaWNhYmxlLiA8L3A+CiAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgKioqQSBmb2xsb3dlciBpcyBjb25zaWRlcmVkIGFjdGl2ZSBpZiB0aGV5IGhhdmUgJDEwMCBpbiB0aGVpciBiYWxhbmNlIGZvciB0aGUgd2FsbGV0IGJhbGFuY2UgcHJvZ3JhbSwgb3IgYW4gYWN0aXZlIGRlcG9zaXQgZm9yIHRoZSBqb2ludCBEZXBvc2l0IHByb2dyYW0uIDwvcD4KICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L2Rpdj4KICAgICAgICAgPGRpdiBjbGFzcz0iYmx1ciBibHVyLS12aXAiIHN0eWxlPSJ0b3A6IDE4MHB4OyBsZWZ0OiAtMzMwcHg7IHdpZHRoOiAxMDUwcHg7IGhlaWdodDogMTA1MHB4OyBvcGFjaXR5OiAwLjI7Ij4KICAgICAgICAgPC9kaXY+CiAgICAgICAgIDxkaXYgY2xhc3M9ImJsdXIgYmx1ci0tdmlwIiBzdHlsZT0idG9wOiA5MHB4OyByaWdodDogLTE4MHB4OyB3aWR0aDogNzgwcHg7IGhlaWdodDogNzgwcHg7IG9wYWNpdHk6IDAuMjsiPjwvZGl2PgogICAgIDwvc2VjdGlvbj4KPC9tYWluPgoKCiAgICAgICAgPGZvb3RlciBjbGFzcz0iZm9vdGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl9faW5uZXIiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJfX2xvZ28tbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2xvZ28tZnVsbC5zdmciIGFsdD0iTmVvcyIgbG9hZGluZz0ibGF6eSIgd2lkdGg9IjI0MCIgaGVpZ2h0PSI1NiIgY2xhc3M9ImZvb3Rlcl9fbG9nbyI+CiAgICAgICAgICAgICAgICAgICAgPC9hPgoKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJfX21lbnVzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLW1lbnVfX2NhdGVnb3J5Ij5Qcm9kdWN0czwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJmb290ZXItbWVudV9fbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXItbWVudV9faXRlbSAgIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1tZW51X19saW5rIiBocmVmPSI/YT1zdGFrZSI+U3Rha2luZzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyLW1lbnVfX2l0ZW0gICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJmb290ZXItbWVudV9fbGluayIgaHJlZj0iP2E9cmV3YXJkcyI+UmV3YXJkczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1tZW51X19jYXRlZ29yeSI+Q29tcGFueTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJmb290ZXItbWVudV9fbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXItbWVudV9faXRlbSAgIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1tZW51X19saW5rIiBocmVmPSI/YT1hYm91dCI+QWJvdXQ8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlci1tZW51X19pdGVtICAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZm9vdGVyLW1lbnVfX2xpbmsiIGhyZWY9Ij9hPWVjb3N5c3RlbSI+RWNvc3lzdGVtPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXItbWVudV9faXRlbSAgIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1tZW51X19saW5rIiBocmVmPSI/YT1tYXRyaXgiPk1hdHJpeCBUZWNoPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXItbWVudV9faXRlbSAgIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1tZW51X19saW5rIiBocmVmPSI/YT1jb21tdW5pdHkiPkNvbW11bml0eTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyLW1lbnVfX2l0ZW0gICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJmb290ZXItbWVudV9fbGluayIgaHJlZj0iaHR0cHM6Ly93d3cudHJ1c3RwaWxvdC5jb20vIiB0YXJnZXQ9Il9ibGFuayI+UmV2aWV3czwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1tZW51X19jYXRlZ29yeSI+TGVhcm48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZm9vdGVyLW1lbnVfX2xpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyLW1lbnVfX2l0ZW0gICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJmb290ZXItbWVudV9fbGluayIgaHJlZj0iP2E9YmxvZyI+QmxvZzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyLW1lbnVfX2l0ZW0gICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJmb290ZXItbWVudV9fbGluayIgaHJlZj0iP2E9ZG9jdW1lbnRhdGlvbiI+RG9jdW1lbnRhdGlvbjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9vdGVyLW1lbnVfX2l0ZW0gICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJmb290ZXItbWVudV9fbGluayIgaHJlZj0iP2E9ZmFxIj5GQVE8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvb3Rlci1tZW51X19pdGVtICAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZm9vdGVyLW1lbnVfX2xpbmsiIGhyZWY9Ij9hPXN1cHBvcnQiPkdldCBIZWxwPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLW1lbnVfX2NhdGVnb3J5Ij5MZWdhbDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJmb290ZXItbWVudV9fbGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXItbWVudV9faXRlbSAgIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1tZW51X19saW5rIiBocmVmPSIvZG9jcy9UZXJtc19vZl9Vc2UucGRmIiB0YXJnZXQ9Il9ibGFuayI+VGVybXMgb2YgVXNlPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXItbWVudV9faXRlbSAgIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1tZW51X19saW5rIiBocmVmPSIvZG9jcy9Qcml2YWN5LnBkZiIgdGFyZ2V0PSJfYmxhbmsiPlByaXZhY3kgUG9saWN5PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJmb290ZXItbWVudV9faXRlbSAgIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlci1tZW51X19saW5rIiBocmVmPSJodHRwczovL29wZW5jb3Jwb3JhdGVzLmNvbS9jb21wYW5pZXMvaGsvMDgwMDQzMCIgdGFyZ2V0PSJfYmxhbmsiPkxlZ2FsIEluZm9ybWF0aW9uPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyX19taXNjIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyX19mb2xsb3ciPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZm9sbG93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvbGxvd19faXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS8iIGNsYXNzPSJmb2xsb3dfX2xpbmsiIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0iRmFjZWJvb2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtc29jLWZhY2Vib29rIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvbGxvd19faXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vIiBjbGFzcz0iZm9sbG93X19saW5rIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IlR3aXR0ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtc29jLXR3aXR0ZXIiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9sbG93X19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly90Lm1lLyIgY2xhc3M9ImZvbGxvd19fbGluayIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJUZWxlZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uICI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1zb2MtdGVsZWdyYW0iPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9sbG93X19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9kaXNjb3JkLmdnLyIgY2xhc3M9ImZvbGxvd19fbGluayIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJEaXNjb3JkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLXNvYy1kaXNjb3JkIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImZvbGxvd19faXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS8iIGNsYXNzPSJmb2xsb3dfX2xpbmsiIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0iTWVkaXVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLXNvYy1tZWRpdW0iPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZm9sbG93X19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vIiBjbGFzcz0iZm9sbG93X19saW5rIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IllvdXR1YmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtc29jLXlvdXR1YmUiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJfX2FwcHMgYXBwcyBhcHBzLS1naG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBzX19saW5rIiB0aXRsZT0iQXBwIFN0b3JlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2ltZy9hcHBzL2JhZGdlLWFwcC1zdG9yZS5zdmciIGFsdD0iQXBwIFN0b3JlIiBsb2FkaW5nPSJsYXp5IiBjbGFzcz0iYXBwc19fYmFkZ2UiIHdpZHRoPSIxMjgiIGhlaWdodD0iMzgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcHBzX19saW5rIiB0aXRsZT0iR29vZ2xlIFBsYXkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2FwcHMvYmFkZ2UtZ29vZ2xlLXBsYXkuc3ZnIiBhbHQ9Ikdvb2dsZSBQbGF5IiBsb2FkaW5nPSJsYXp5IiBjbGFzcz0iYXBwc19fYmFkZ2UiIHdpZHRoPSIxMjgiIGhlaWdodD0iMzgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyX19ib3R0b20iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyX190cnVzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cudHJ1c3RwaWxvdC5jb20vIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImZvb3Rlcl9fdHJ1c3RwaWxvdCB0cnVzdHBpbG90LWNvbXBhY3QiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2ltZy90cnVzdHBpbG90L3RydXN0cGlsb3Qtd2hpdGUuc3ZnIiBhbHQ9IlRydXN0cGlsb3QiIHdpZHRoPSIxMjciIGhlaWdodD0iMjkiIGxvYWRpbmc9ImxhenkiIGNsYXNzPSJ0cnVzdHBpbG90LWNvbXBhY3RfX2xvZ28iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2ltZy90cnVzdHBpbG90L3RydXN0cGlsb3Qtc3RhcnMuc3ZnIiBhbHQ9IlRydXN0cGlsb3QgcmF0aW5nIiB3aWR0aD0iMTI3IiBoZWlnaHQ9IjI0IiBsb2FkaW5nPSJsYXp5IiBjbGFzcz0idHJ1c3RwaWxvdC1jb21wYWN0X19zdGFycyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl9fY29weSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZmluZC1hbmQtdXBkYXRlLmNvbXBhbnktaW5mb3JtYXRpb24uc2VydmljZS5nb3YudWsiIHRhcmdldD0iX2JsYW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2dvdnVrLnBuZyIgd2lkdGg9Ijc2IiBoZWlnaHQ9IjYxIiBhbHQ9IiIgbG9hZGluZz0ibGF6eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjdCcmlkZ2UgQ2FwaXRhbCA8YnI+IMKpIDIwMjU8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlcl9fZG9tYWlucyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyI+N0JyaWRnZSBDYXBpdGFsPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1hIGhyZWY9IiMiPm5lb3NpZnkuY288L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+bmVvc2lmeS5uZXQ8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+bmVvc2lmeS5vcmc8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyI+bmVvc2lmeS5pbmZvPC9hLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb290ZXI+CiAgICA8L2Rpdj4KICAgIDxzY3JpcHQgc3JjPSIvanMvdmVuZG9ycy5qcz92PTE2ODE0NjA1MjMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Ii9qcy9hcHAuanM/dj0xNjg0OTQ2ODI1Ij48L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdD4KICAgIHZhciB0ZWxlZ3JhbVVzZXJuYW1lID0gJ1NldmVuYnJpZGdlY2FwaXRhbFN1cHBvcnQnOyAvLyBSZXBsYWNlIHdpdGggeW91ciBUZWxlZ3JhbSB1c2VybmFtZQoKICAgIHZhciB3aWRnZXRDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIHdpZGdldENvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCd0ZWxlZ3JhbS13aWRnZXQtY29udGFpbmVyJyk7CiAgICB3aWRnZXRDb250YWluZXIuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnOwogICAgd2lkZ2V0Q29udGFpbmVyLnN0eWxlLmxlZnQgPSAnMjBweCc7CiAgICB3aWRnZXRDb250YWluZXIuc3R5bGUuYm90dG9tID0gJzIwcHgnOwogICAgd2lkZ2V0Q29udGFpbmVyLnN0eWxlLnpJbmRleCA9ICc5OTk5JzsKCiAgICB2YXIgdGVsZWdyYW1MaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogICAgdGVsZWdyYW1MaW5rLmhyZWYgPSAnaHR0cHM6Ly90Lm1lLycgKyB0ZWxlZ3JhbVVzZXJuYW1lOwoKICAgIHZhciB0ZWxlZ3JhbUxvZ28gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKICAgIHRlbGVncmFtTG9nby5zcmMgPSAnaW1nL3RlbGVncmFtbG9nby5wbmcnOwogICAgdGVsZWdyYW1Mb2dvLmFsdCA9ICdUZWxlZ3JhbSc7CiAgICB0ZWxlZ3JhbUxvZ28ud2lkdGggPSAnNzUnOwoKICAgIHRlbGVncmFtTGluay5hcHBlbmRDaGlsZCh0ZWxlZ3JhbUxvZ28pOwogICAgd2lkZ2V0Q29udGFpbmVyLmFwcGVuZENoaWxkKHRlbGVncmFtTGluayk7CiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHdpZGdldENvbnRhaW5lcik7CiAgPC9zY3JpcHQ+CiAgCiAgPHNjcmlwdCBzcmM9Ii8vY29kZS5qaXZvc2l0ZS5jb20vd2lkZ2V0L0VFWW5EcWxoZlYiIGFzeW5jPjwvc2NyaXB0PgogIAogCiAgPHN0eWxlPgoubWdtIHsKICAgIGJvcmRlci1yYWRpdXM6IDdweDsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHotaW5kZXg6IDkwOwogICAgYm90dG9tOiA4MHB4OwogICAgcmlnaHQ6IDIwcHg7CiAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgcGFkZGluZzogMTBweCAyN3B4OwogICAgYm94LXNoYWRvdzogMHB4IDVweCAxM3B4IDBweCByZ2JhKDAsIDAsIDAsIC4zKTsKICAgIGJvcmRlcjogNHB4IHNvbGlkOwogICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM3M2Q2MjMsICNGMEI4MzIpIDE7Cn0KLm1nbSBhIHsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGNvbG9yOiAjMDA4MGRiOwp9Ci5tZ20gYSwKLm1nbSBhOmFjdGl2ZSB7CiAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7CiAgICBjb2xvcjogIzAwODBkYjsKfQo8L3N0eWxlPgo8ZGl2IGNsYXNzPSJtZ20iIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CiAgICA8ZGl2IGNsYXNzPSJ0eHQiIHN0eWxlPSJjb2xvcjogYmxhY2s7Ij48L2Rpdj4KPC9kaXY+Cgo8c2NyaXB0IGRhdGEtY2Zhc3luYz0iZmFsc2UiIHNyYz0iIyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIHZhciBsaXN0Q291bnRyaWVzID0gWydVSycsICdVSycsICdHZXJtYW55JywgJ0ZyYW5jZScsICdJdGFseScsICdVSycsICdTb3V0aCBBZnJpY2EnLCAnVUsnLCAnQ2FuYWRhJywgJ0FyZ2VudGluYScsICdTYXVkaSBBcmFiaWEnLCAnTWV4aWNvJywgJ1VLJywgJ1VLJywgJ1VLJywgJ1VLJywgJ1N3ZWRlbicsICdTb3V0aCBBZnJpY2EnLCAnVUsnLCAnSXRhbHknLCAnVUsnLCAnVUsnLCAnVUsnLCAnR3JlZWNlJywgJ0N1YmEnLCAnVUsnLCAnUG9ydHVnYWwnLCAnQXVzdHJpYScsICdTb3V0aCBBZnJpY2EnLCAnUGFuYW1hJywgJ1VLJywgJ1VLJywgJ05ldGhlcmxhbmRzJywgJ1N3aXR6ZXJsYW5kJywgJ0JlbGdpdW0nLCAnSXNyYWVsJywgJ0N5cHJ1cyddOwogICAgdmFyIGxpc3RQbGFucyA9IFsnJDEwMDAnLCAnJDE1MDAnLCAnJDQwMCcsICckNDEwMCcsICckMTAwJywgJyQ1MDAwJywgJyQyLDMwMCcsICckNzAwJywgJyQxMDAnLCAnJDQ1MDAnLCAnJDksNTAwJywgJyQzNDAwJywgJyQyMDAwJywgJyQ0NjAwJywgJyQzLDcwMCcsICckNzUwMCcsICckODYyMycsICckMTYwMCddOwogICAgdmFyIHRyYW5zYXJyYXkgPSBbJ2p1c3QgPGI+aW52ZXN0ZWQ8L2I+JywgJ2hhcyA8Yj53aXRoZHJhd248L2I+JywgJ2lzIDxiPnRyYWRpbmcgd2l0aDwvYj4nXTsKCiAgICBpbnRlcnZhbCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg0MDAwMCAtIDgwMDAgKyAxKSArIDgwMDApOwogICAgdmFyIHJ1biA9IHNldEludGVydmFsKHJlcXVlc3QsIGludGVydmFsKTsKCiAgICBmdW5jdGlvbiByZXF1ZXN0KCkgewogICAgICAgIGNsZWFySW50ZXJ2YWwocnVuKTsKICAgICAgICBpbnRlcnZhbCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg0MDAwMCAtIDgwMDAgKyAxKSArIDgwMDApOwogICAgICAgIHZhciBjb3VudHJ5ID0gbGlzdENvdW50cmllc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBsaXN0Q291bnRyaWVzLmxlbmd0aCldOwogICAgICAgIHZhciB0cmFuc3R5cGUgPSB0cmFuc2FycmF5W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRyYW5zYXJyYXkubGVuZ3RoKV07CiAgICAgICAgdmFyIHBsYW4gPSBsaXN0UGxhbnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbGlzdFBsYW5zLmxlbmd0aCldOwogICAgICAgIHZhciBtc2cgPSAnU29tZW9uZSBmcm9tIDxiPicgKyBjb3VudHJ5ICsgJzwvYj4gJyArIHRyYW5zdHlwZSArICcgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKDApOyI+JyArIHBsYW4gKyAnPC9hPic7CiAgICAgICAgJCgiLm1nbSAudHh0IikuaHRtbChtc2cpOwogICAgICAgICQoIi5tZ20iKS5zdG9wKHRydWUpLmZhZGVJbigzMDApOwogICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAkKCIubWdtIikuc3RvcCh0cnVlKS5mYWRlT3V0KDMwMCk7CiAgICAgICAgfSwgMTAwMDApOwogICAgICAgIHJ1biA9IHNldEludGVydmFsKHJlcXVlc3QsIGludGVydmFsKTsKICAgIH0KPC9zY3JpcHQ+CiAKICAKCgo8L2JvZHk+Cgo8L2h0bWw+"}},"time_used":710,"timings":{"blocked":-1,"dns":212,"connect":98,"send":0,"wait":198,"receive":0,"ssl":201},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/fonts/Outfit-Regular.woff2","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:39.804Z","timestamp":1785121659804,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /fonts/Outfit-Regular.woff2 HTTP/1.1\r\nHost: 7bridgecapital.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: gzip, deflate, br, zstd\r\nReferer: https://7bridgecapital.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 03:07:39 GMT\r\ncontent-type: font/woff2\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 16232\r\ndate: Mon, 27 Jul 2026 03:07:39 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":"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":16232,"size_decoded":16677,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 16232, version 1.0","md5":"44d632a68853b6c01d99cbd5a40118f3","sha1":"736e4288c98d260bf4eae38b4b4e5d55e02489db","sha256":"e14fd6c0709c156920956b5d27c8d09e9d532ebd4c1969fd7030104734f1474f","sha512":"5c456e6120c72ac3f5720ced95618fd97a1b1c7c6597815b6c02a321f7ee6c67c8293249eec8a966a718e9c3c9bd20d5abca59d8bde90f9123c83f56ed0d9269","ssdeep":"384:pAuyOiQBIQ2HwM9i2RgXucyp1RaH6vk77P+KZnSoH5w:ZylpwgRcWkavku0nx5w","tlshash":"ff72df4cc174d26de6ed0c354f18e2f9d77750297139c314f99261092a88620ee6f78b","first_seen":"2023-05-22T19:02:30Z","last_seen":"2026-07-27T03:09:30.388132Z","times_seen":27,"resource_available":false,"data":"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"}},"time_used":101,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":100,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/js/vendors.js?v=1681460523","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.033Z","timestamp":1785121660033,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /js/vendors.js?v=1681460523 HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 218038\r\ndate: Mon, 27 Jul 2026 03:07:39 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":852692,"size_decoded":218277,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (65471)","md5":"a8ab6269b10f87faa9ccabe38cc127bd","sha1":"06741de6f158cafec153fb62a61432a70f951313","sha256":"9d94a0f9cdbb6deb6239e86322a35e5ac366931497be579b5381b6437370b003","sha512":"2b20e9869d52f7dd3913f7ea31f96f024fd273e879e73a2e8c6966f0f1992ceecfa8bab23fa1704a5d8ca94ddf5c591fee1ba7fe5ab4cae2a816cb9b925c8295","ssdeep":"12288:b+5PkviVmySXoHP6LkyEkNbBfgiVXIeaGM:b+5PFVbeN9gimem","tlshash":"ba052a46f256347385d2119dd86f1207a3726959644a80acf9bcd8e72cb8e8831fff78","first_seen":"2026-07-27T02:49:41.001609Z","last_seen":"2026-07-27T03:09:30.396329Z","times_seen":3,"resource_available":true,"data":"LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgdmVuZG9ycy5qcy5MSUNFTlNFLnR4dCAqLwooc2VsZi53ZWJwYWNrQ2h1bmtmcm9udGVuZD1zZWxmLndlYnBhY2tDaHVua2Zyb250ZW5kfHxbXSkucHVzaChbWzczMF0sezY4OTpmdW5jdGlvbih0LGUsaSl7InVzZSBzdHJpY3QiO2kuZChlLHtLUjpmdW5jdGlvbigpe3JldHVybiBCfX0pO2NvbnN0IHM9dD0+Im9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCYmdC5jb25zdHJ1Y3Rvcj09PU9iamVjdCYmIltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCksYT0oLi4udCk9PntsZXQgZT0hMTsiYm9vbGVhbiI9PXR5cGVvZiB0WzBdJiYoZT10LnNoaWZ0KCkpO2xldCBpPXRbMF07aWYoIWl8fCJvYmplY3QiIT10eXBlb2YgaSl0aHJvdyBuZXcgRXJyb3IoImV4dGVuZGVlIG11c3QgYmUgYW4gb2JqZWN0Iik7Y29uc3Qgbj10LnNsaWNlKDEpLHI9bi5sZW5ndGg7Zm9yKGxldCB0PTA7dDxyO3QrKyl7Y29uc3Qgcj1uW3RdO2ZvcihsZXQgdCBpbiByKWlmKHIuaGFzT3duUHJvcGVydHkodCkpe2NvbnN0IG49clt0XTtpZihlJiYoQXJyYXkuaXNBcnJheShuKXx8cyhuKSkpe2NvbnN0IGU9QXJyYXkuaXNBcnJheShuKT9bXTp7fTtpW3RdPWEoITAsaS5oYXNPd25Qcm9wZXJ0eSh0KT9pW3RdOmUsbil9ZWxzZSBpW3RdPW59fXJldHVybiBpfSxuPSh0LGU9MWU0KT0+KHQ9cGFyc2VGbG9hdCh0KXx8MCxNYXRoLnJvdW5kKCh0K051bWJlci5FUFNJTE9OKSplKS9lKSxyPWZ1bmN0aW9uKHQpe3JldHVybiEhKHQmJiJvYmplY3QiPT10eXBlb2YgdCYmdCBpbnN0YW5jZW9mIEVsZW1lbnQmJnQhPT1kb2N1bWVudC5ib2R5KSYmIXQuX19QYW56b29tJiYoZnVuY3Rpb24odCl7Y29uc3QgZT1nZXRDb21wdXRlZFN0eWxlKHQpWyJvdmVyZmxvdy15Il0saT1nZXRDb21wdXRlZFN0eWxlKHQpWyJvdmVyZmxvdy14Il0scz0oInNjcm9sbCI9PT1lfHwiYXV0byI9PT1lKSYmTWF0aC5hYnModC5zY3JvbGxIZWlnaHQtdC5jbGllbnRIZWlnaHQpPjEsYT0oInNjcm9sbCI9PT1pfHwiYXV0byI9PT1pKSYmTWF0aC5hYnModC5zY3JvbGxXaWR0aC10LmNsaWVudFdpZHRoKT4xO3JldHVybiBzfHxhfSh0KT90OnIodC5wYXJlbnROb2RlKSl9LG89InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5SZXNpemVPYnNlcnZlcnx8Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5vYnNlcnZhYmxlcz1bXSx0aGlzLmJvdW5kQ2hlY2s9dGhpcy5jaGVjay5iaW5kKHRoaXMpLHRoaXMuYm91bmRDaGVjaygpLHRoaXMuY2FsbGJhY2s9dH1vYnNlcnZlKHQpe2lmKHRoaXMub2JzZXJ2YWJsZXMuc29tZSgoZT0+ZS5lbD09PXQpKSlyZXR1cm47Y29uc3QgZT17ZWw6dCxzaXplOntoZWlnaHQ6dC5jbGllbnRIZWlnaHQsd2lkdGg6dC5jbGllbnRXaWR0aH19O3RoaXMub2JzZXJ2YWJsZXMucHVzaChlKX11bm9ic2VydmUodCl7dGhpcy5vYnNlcnZhYmxlcz10aGlzLm9ic2VydmFibGVzLmZpbHRlcigoZT0+ZS5lbCE9PXQpKX1kaXNjb25uZWN0KCl7dGhpcy5vYnNlcnZhYmxlcz1bXX1jaGVjaygpe2NvbnN0IHQ9dGhpcy5vYnNlcnZhYmxlcy5maWx0ZXIoKHQ9Pntjb25zdCBlPXQuZWwuY2xpZW50SGVpZ2h0LGk9dC5lbC5jbGllbnRXaWR0aDtpZih0LnNpemUuaGVpZ2h0IT09ZXx8dC5zaXplLndpZHRoIT09aSlyZXR1cm4gdC5zaXplLmhlaWdodD1lLHQuc2l6ZS53aWR0aD1pLCEwfSkpLm1hcCgodD0+dC5lbCkpO3QubGVuZ3RoPjAmJnRoaXMuY2FsbGJhY2sodCksd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLmJvdW5kQ2hlY2spfX07Y2xhc3MgbHtjb25zdHJ1Y3Rvcih0KXt0aGlzLmlkPXNlbGYuVG91Y2gmJnQgaW5zdGFuY2VvZiBUb3VjaD90LmlkZW50aWZpZXI6LTEsdGhpcy5wYWdlWD10LnBhZ2VYLHRoaXMucGFnZVk9dC5wYWdlWSx0aGlzLmNsaWVudFg9dC5jbGllbnRYLHRoaXMuY2xpZW50WT10LmNsaWVudFl9fWNvbnN0IGM9KHQsZSk9PmU/TWF0aC5zcXJ0KChlLmNsaWVudFgtdC5jbGllbnRYKSoqMisoZS5jbGllbnRZLXQuY2xpZW50WSkqKjIpOjAsaD0odCxlKT0+ZT97Y2xpZW50WDoodC5jbGllbnRYK2UuY2xpZW50WCkvMixjbGllbnRZOih0LmNsaWVudFkrZS5jbGllbnRZKS8yfTp0O2NsYXNzIGR7Y29uc3RydWN0b3IodCx7c3RhcnQ6ZT0oKCk9PiEwKSxtb3ZlOmk9KCgpPT57fSksZW5kOnM9KCgpPT57fSl9PXt9KXt0aGlzLl9lbGVtZW50PXQsdGhpcy5zdGFydFBvaW50ZXJzPVtdLHRoaXMuY3VycmVudFBvaW50ZXJzPVtdLHRoaXMuX3BvaW50ZXJTdGFydD10PT57aWYodC5idXR0b25zPjAmJjAhPT10LmJ1dHRvbilyZXR1cm47Y29uc3QgZT1uZXcgbCh0KTt0aGlzLmN1cnJlbnRQb2ludGVycy5zb21lKCh0PT50LmlkPT09ZS5pZCkpfHx0aGlzLl90cmlnZ2VyUG9pbnRlclN0YXJ0KGUsdCkmJih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9tb3ZlKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5fcG9pbnRlckVuZCkpfSx0aGlzLl90b3VjaFN0YXJ0PXQ9Pntmb3IoY29uc3QgZSBvZiBBcnJheS5mcm9tKHQuY2hhbmdlZFRvdWNoZXN8fFtdKSl0aGlzLl90cmlnZ2VyUG9pbnRlclN0YXJ0KG5ldyBsKGUpLHQpfSx0aGlzLl9tb3ZlPXQ9Pntjb25zdCBlPXRoaXMuY3VycmVudFBvaW50ZXJzLnNsaWNlKCksaT0odD0+ImNoYW5nZWRUb3VjaGVzImluIHQpKHQpP0FycmF5LmZyb20odC5jaGFuZ2VkVG91Y2hlcykubWFwKCh0PT5uZXcgbCh0KSkpOltuZXcgbCh0KV07Zm9yKGNvbnN0IHQgb2YgaSl7Y29uc3QgZT10aGlzLmN1cnJlbnRQb2ludGVycy5maW5kSW5kZXgoKGU9PmUuaWQ9PT10LmlkKSk7ZTwwfHwodGhpcy5jdXJyZW50UG9pbnRlcnNbZV09dCl9dGhpcy5fbW92ZUNhbGxiYWNrKGUsdGhpcy5jdXJyZW50UG9pbnRlcnMuc2xpY2UoKSx0KX0sdGhpcy5fdHJpZ2dlclBvaW50ZXJFbmQ9KHQsZSk9Pntjb25zdCBpPXRoaXMuY3VycmVudFBvaW50ZXJzLmZpbmRJbmRleCgoZT0+ZS5pZD09PXQuaWQpKTtyZXR1cm4hKGk8MHx8KHRoaXMuY3VycmVudFBvaW50ZXJzLnNwbGljZShpLDEpLHRoaXMuc3RhcnRQb2ludGVycy5zcGxpY2UoaSwxKSx0aGlzLl9lbmRDYWxsYmFjayh0LGUpLDApKX0sdGhpcy5fcG9pbnRlckVuZD10PT57dC5idXR0b25zPjAmJjAhPT10LmJ1dHRvbnx8dGhpcy5fdHJpZ2dlclBvaW50ZXJFbmQobmV3IGwodCksdCkmJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9tb3ZlLHtwYXNzaXZlOiExfSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuX3BvaW50ZXJFbmQse3Bhc3NpdmU6ITF9KSl9LHRoaXMuX3RvdWNoRW5kPXQ9Pntmb3IoY29uc3QgZSBvZiBBcnJheS5mcm9tKHQuY2hhbmdlZFRvdWNoZXN8fFtdKSl0aGlzLl90cmlnZ2VyUG9pbnRlckVuZChuZXcgbChlKSx0KX0sdGhpcy5fc3RhcnRDYWxsYmFjaz1lLHRoaXMuX21vdmVDYWxsYmFjaz1pLHRoaXMuX2VuZENhbGxiYWNrPXMsdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX3BvaW50ZXJTdGFydCx7cGFzc2l2ZTohMX0pLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fdG91Y2hTdGFydCx7cGFzc2l2ZTohMX0pLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLl9tb3ZlLHtwYXNzaXZlOiExfSksdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5fdG91Y2hFbmQpLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLHRoaXMuX3RvdWNoRW5kKX1zdG9wKCl7dGhpcy5fZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX3BvaW50ZXJTdGFydCx7cGFzc2l2ZTohMX0pLHRoaXMuX2VsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fdG91Y2hTdGFydCx7cGFzc2l2ZTohMX0pLHRoaXMuX2VsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLl9tb3ZlLHtwYXNzaXZlOiExfSksdGhpcy5fZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5fdG91Y2hFbmQpLHRoaXMuX2VsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLHRoaXMuX3RvdWNoRW5kKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9tb3ZlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5fcG9pbnRlckVuZCl9X3RyaWdnZXJQb2ludGVyU3RhcnQodCxlKXtyZXR1cm4hIXRoaXMuX3N0YXJ0Q2FsbGJhY2sodCxlKSYmKHRoaXMuY3VycmVudFBvaW50ZXJzLnB1c2godCksdGhpcy5zdGFydFBvaW50ZXJzLnB1c2godCksITApfX1jbGFzcyB1e2NvbnN0cnVjdG9yKHQ9e30pe3RoaXMub3B0aW9ucz1hKCEwLHt9LHQpLHRoaXMucGx1Z2lucz1bXSx0aGlzLmV2ZW50cz17fTtmb3IoY29uc3QgdCBvZlsib24iLCJvbmNlIl0pZm9yKGNvbnN0IGUgb2YgT2JqZWN0LmVudHJpZXModGhpcy5vcHRpb25zW3RdfHx7fSkpdGhpc1t0XSguLi5lKX1vcHRpb24odCxlLC4uLmkpe2xldCBzPShhPXQ9U3RyaW5nKHQpLG49dGhpcy5vcHRpb25zLGEuc3BsaXQoIi4iKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQmJnRbZV19KSxuKSk7dmFyIGEsbjtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgcyYmKHM9cy5jYWxsKHRoaXMsdGhpcywuLi5pKSksdm9pZCAwPT09cz9lOnN9bG9jYWxpemUodCxlPVtdKXtyZXR1cm4odD1TdHJpbmcodCkucmVwbGFjZSgvXHtceyhcdyspLj8oXHcrKT9cfVx9L2csKCh0LGkscyk9PntsZXQgYT0iIjtzP2E9dGhpcy5vcHRpb24oYCR7aVswXStpLnRvTG93ZXJDYXNlKCkuc3Vic3RyaW5nKDEpfS5sMTBuLiR7c31gKTppJiYoYT10aGlzLm9wdGlvbihgbDEwbi4ke2l9YCkpLGF8fChhPXQpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWE9YS5zcGxpdChlW3RdWzBdKS5qb2luKGVbdF1bMV0pO3JldHVybiBhfSkpKS5yZXBsYWNlKC9ce1x7KC4qKVx9XH0vLCgodCxlKT0+ZSkpfW9uKHQsZSl7aWYocyh0KSl7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmVudHJpZXModCkpdGhpcy5vbiguLi5lKTtyZXR1cm4gdGhpc31yZXR1cm4gU3RyaW5nKHQpLnNwbGl0KCIgIikuZm9yRWFjaCgodD0+e2NvbnN0IGk9dGhpcy5ldmVudHNbdF09dGhpcy5ldmVudHNbdF18fFtdOy0xPT1pLmluZGV4T2YoZSkmJmkucHVzaChlKX0pKSx0aGlzfW9uY2UodCxlKXtpZihzKHQpKXtmb3IoY29uc3QgZSBvZiBPYmplY3QuZW50cmllcyh0KSl0aGlzLm9uY2UoLi4uZSk7cmV0dXJuIHRoaXN9cmV0dXJuIFN0cmluZyh0KS5zcGxpdCgiICIpLmZvckVhY2goKHQ9Pntjb25zdCBpPSguLi5zKT0+e3RoaXMub2ZmKHQsaSksZS5jYWxsKHRoaXMsdGhpcywuLi5zKX07aS5fPWUsdGhpcy5vbih0LGkpfSkpLHRoaXN9b2ZmKHQsZSl7aWYoIXModCkpcmV0dXJuIHQuc3BsaXQoIiAiKS5mb3JFYWNoKCh0PT57Y29uc3QgaT10aGlzLmV2ZW50c1t0XTtpZighaXx8IWkubGVuZ3RoKXJldHVybiB0aGlzO2xldCBzPS0xO2ZvcihsZXQgdD0wLGE9aS5sZW5ndGg7dDxhO3QrKyl7Y29uc3QgYT1pW3RdO2lmKGEmJihhPT09ZXx8YS5fPT09ZSkpe3M9dDticmVha319LTEhPXMmJmkuc3BsaWNlKHMsMSl9KSksdGhpcztmb3IoY29uc3QgZSBvZiBPYmplY3QuZW50cmllcyh0KSl0aGlzLm9mZiguLi5lKX10cmlnZ2VyKHQsLi4uZSl7Zm9yKGNvbnN0IGkgb2ZbLi4udGhpcy5ldmVudHNbdF18fFtdXS5zbGljZSgpKWlmKGkmJiExPT09aS5jYWxsKHRoaXMsdGhpcywuLi5lKSlyZXR1cm4hMTtmb3IoY29uc3QgaSBvZlsuLi50aGlzLmV2ZW50c1siKiJdfHxbXV0uc2xpY2UoKSlpZihpJiYhMT09PWkuY2FsbCh0aGlzLHQsdGhpcywuLi5lKSlyZXR1cm4hMTtyZXR1cm4hMH1hdHRhY2hQbHVnaW5zKHQpe2NvbnN0IGU9e307Zm9yKGNvbnN0W2ksc11vZiBPYmplY3QuZW50cmllcyh0fHx7fSkpITE9PT10aGlzLm9wdGlvbnNbaV18fHRoaXMucGx1Z2luc1tpXXx8KHRoaXMub3B0aW9uc1tpXT1hKHt9LHMuZGVmYXVsdHN8fHt9LHRoaXMub3B0aW9uc1tpXSksZVtpXT1uZXcgcyh0aGlzKSk7Zm9yKGNvbnN0W3QsaV1vZiBPYmplY3QuZW50cmllcyhlKSlpLmF0dGFjaCh0aGlzKTtyZXR1cm4gdGhpcy5wbHVnaW5zPU9iamVjdC5hc3NpZ24oe30sdGhpcy5wbHVnaW5zLGUpLHRoaXN9ZGV0YWNoUGx1Z2lucygpe2Zvcihjb25zdCB0IGluIHRoaXMucGx1Z2lucyl7bGV0IGU7KGU9dGhpcy5wbHVnaW5zW3RdKSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuZGV0YWNoJiZlLmRldGFjaCh0aGlzKX1yZXR1cm4gdGhpcy5wbHVnaW5zPXt9LHRoaXN9fWNvbnN0IHA9e3RvdWNoOiEwLHpvb206ITAscGluY2hUb1pvb206ITAscGFuT25seVpvb21lZDohMSxsb2NrQXhpczohMSxmcmljdGlvbjouNjQsZGVjZWxGcmljdGlvbjouODgsem9vbUZyaWN0aW9uOi43NCxib3VuY2VGb3JjZTouMixiYXNlU2NhbGU6MSxtaW5TY2FsZToxLG1heFNjYWxlOjIsc3RlcDouNSx0ZXh0U2VsZWN0aW9uOiExLGNsaWNrOiJ0b2dnbGVab29tIix3aGVlbDoiem9vbSIsd2hlZWxGYWN0b3I6NDIsd2hlZWxMaW1pdDo1LGRyYWdnYWJsZUNsYXNzOiJpcy1kcmFnZ2FibGUiLGRyYWdnaW5nQ2xhc3M6ImlzLWRyYWdnaW5nIixyYXRpbzoxfTtjbGFzcyBnIGV4dGVuZHMgdXtjb25zdHJ1Y3Rvcih0LGU9e30pe3N1cGVyKGEoITAse30scCxlKSksdGhpcy5zdGF0ZT0iaW5pdCIsdGhpcy4kY29udGFpbmVyPXQ7Zm9yKGNvbnN0IHQgb2ZbIm9uTG9hZCIsIm9uV2hlZWwiLCJvbkNsaWNrIl0pdGhpc1t0XT10aGlzW3RdLmJpbmQodGhpcyk7dGhpcy5pbml0TGF5b3V0KCksdGhpcy5yZXNldFZhbHVlcygpLHRoaXMuYXR0YWNoUGx1Z2lucyhnLlBsdWdpbnMpLHRoaXMudHJpZ2dlcigiaW5pdCIpLHRoaXMudXBkYXRlTWV0cmljcygpLHRoaXMuYXR0YWNoRXZlbnRzKCksdGhpcy50cmlnZ2VyKCJyZWFkeSIpLCExPT09dGhpcy5vcHRpb24oImNlbnRlck9uU3RhcnQiKT90aGlzLnN0YXRlPSJyZWFkeSI6dGhpcy5wYW5Ubyh7ZnJpY3Rpb246MH0pLHQuX19QYW56b29tPXRoaXN9aW5pdExheW91dCgpe2NvbnN0IHQ9dGhpcy4kY29udGFpbmVyO2lmKCEodCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSl0aHJvdyBuZXcgRXJyb3IoIlBhbnpvb206IENvbnRhaW5lciBub3QgZm91bmQiKTtjb25zdCBlPXRoaXMub3B0aW9uKCJjb250ZW50Iil8fHQucXVlcnlTZWxlY3RvcigiLnBhbnpvb21fX2NvbnRlbnQiKTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIlBhbnpvb206IENvbnRlbnQgbm90IGZvdW5kIik7dGhpcy4kY29udGVudD1lO2xldCBpPXRoaXMub3B0aW9uKCJ2aWV3cG9ydCIpfHx0LnF1ZXJ5U2VsZWN0b3IoIi5wYW56b29tX192aWV3cG9ydCIpO2l8fCExPT09dGhpcy5vcHRpb24oIndyYXBJbm5lciIpfHwoaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxpLmNsYXNzTGlzdC5hZGQoInBhbnpvb21fX3ZpZXdwb3J0IiksaS5hcHBlbmQoLi4udC5jaGlsZE5vZGVzKSx0LmFwcGVuZENoaWxkKGkpKSx0aGlzLiR2aWV3cG9ydD1pfHxlLnBhcmVudE5vZGV9cmVzZXRWYWx1ZXMoKXt0aGlzLnVwZGF0ZVJhdGU9dGhpcy5vcHRpb24oInVwZGF0ZVJhdGUiLC9pUGhvbmV8aVBhZHxpUG9kfEFuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPzI1MDoyNCksdGhpcy5jb250YWluZXI9e3dpZHRoOjAsaGVpZ2h0OjB9LHRoaXMudmlld3BvcnQ9e3dpZHRoOjAsaGVpZ2h0OjB9LHRoaXMuY29udGVudD17b3JpZ1dpZHRoOjAsb3JpZ0hlaWdodDowLHdpZHRoOjAsaGVpZ2h0OjAseDp0aGlzLm9wdGlvbigieCIsMCkseTp0aGlzLm9wdGlvbigieSIsMCksc2NhbGU6dGhpcy5vcHRpb24oImJhc2VTY2FsZSIpfSx0aGlzLnRyYW5zZm9ybT17eDowLHk6MCxzY2FsZToxfSx0aGlzLnJlc2V0RHJhZ1Bvc2l0aW9uKCl9b25Mb2FkKHQpe3RoaXMudXBkYXRlTWV0cmljcygpLHRoaXMucGFuVG8oe3NjYWxlOnRoaXMub3B0aW9uKCJiYXNlU2NhbGUiKSxmcmljdGlvbjowfSksdGhpcy50cmlnZ2VyKCJsb2FkIix0KX1vbkNsaWNrKHQpe2lmKHQuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47aWYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jbG9zZXN0KCJbY29udGVudGVkaXRhYmxlXSIpKXJldHVybjtpZih0aGlzLm9wdGlvbigidGV4dFNlbGVjdGlvbiIpJiZ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKS5sZW5ndGgmJighdC50YXJnZXR8fCF0LnRhcmdldC5oYXNBdHRyaWJ1dGUoImRhdGEtZmFuY3lib3gtY2xvc2UiKSkpcmV0dXJuIHZvaWQgdC5zdG9wUHJvcGFnYXRpb24oKTtjb25zdCBlPXRoaXMuJGNvbnRlbnQuZ2V0Q2xpZW50UmVjdHMoKVswXTtpZigicmVhZHkiIT09dGhpcy5zdGF0ZSYmKHRoaXMuZHJhZ1Bvc2l0aW9uLm1pZFBvaW50fHxNYXRoLmFicyhlLnRvcC10aGlzLmRyYWdTdGFydC5yZWN0LnRvcCk+MXx8TWF0aC5hYnMoZS5sZWZ0LXRoaXMuZHJhZ1N0YXJ0LnJlY3QubGVmdCk+MSkpcmV0dXJuIHQucHJldmVudERlZmF1bHQoKSx2b2lkIHQuc3RvcFByb3BhZ2F0aW9uKCk7ITEhPT10aGlzLnRyaWdnZXIoImNsaWNrIix0KSYmdGhpcy5vcHRpb24oInpvb20iKSYmInRvZ2dsZVpvb20iPT09dGhpcy5vcHRpb24oImNsaWNrIikmJih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnpvb21XaXRoQ2xpY2sodCkpfW9uV2hlZWwodCl7ITEhPT10aGlzLnRyaWdnZXIoIndoZWVsIix0KSYmdGhpcy5vcHRpb24oInpvb20iKSYmdGhpcy5vcHRpb24oIndoZWVsIikmJnRoaXMuem9vbVdpdGhXaGVlbCh0KX16b29tV2l0aFdoZWVsKHQpe3ZvaWQgMD09PXRoaXMuY2hhbmdlZERlbHRhJiYodGhpcy5jaGFuZ2VkRGVsdGE9MCk7Y29uc3QgZT1NYXRoLm1heCgtMSxNYXRoLm1pbigxLC10LmRlbHRhWXx8LXQuZGVsdGFYfHx0LndoZWVsRGVsdGF8fC10LmRldGFpbCkpLGk9dGhpcy5jb250ZW50LnNjYWxlO2xldCBzPWkqKDEwMCtlKnRoaXMub3B0aW9uKCJ3aGVlbEZhY3RvciIpKS8xMDA7aWYoZTwwJiZNYXRoLmFicyhpLXRoaXMub3B0aW9uKCJtaW5TY2FsZSIpKTwuMDF8fGU+MCYmTWF0aC5hYnMoaS10aGlzLm9wdGlvbigibWF4U2NhbGUiKSk8LjAxPyh0aGlzLmNoYW5nZWREZWx0YSs9TWF0aC5hYnMoZSkscz1pKToodGhpcy5jaGFuZ2VkRGVsdGE9MCxzPU1hdGgubWF4KE1hdGgubWluKHMsdGhpcy5vcHRpb24oIm1heFNjYWxlIikpLHRoaXMub3B0aW9uKCJtaW5TY2FsZSIpKSksdGhpcy5jaGFuZ2VkRGVsdGE+dGhpcy5vcHRpb24oIndoZWVsTGltaXQiKSlyZXR1cm47aWYodC5wcmV2ZW50RGVmYXVsdCgpLHM9PT1pKXJldHVybjtjb25zdCBhPXRoaXMuJGNvbnRlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj10LmNsaWVudFgtYS5sZWZ0LHI9dC5jbGllbnRZLWEudG9wO3RoaXMuem9vbVRvKHMse3g6bix5OnJ9KX16b29tV2l0aENsaWNrKHQpe2NvbnN0IGU9dGhpcy4kY29udGVudC5nZXRDbGllbnRSZWN0cygpWzBdLGk9dC5jbGllbnRYLWUubGVmdCxzPXQuY2xpZW50WS1lLnRvcDt0aGlzLnRvZ2dsZVpvb20oe3g6aSx5OnN9KX1hdHRhY2hFdmVudHMoKXt0aGlzLiRjb250ZW50LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLHRoaXMub25Mb2FkKSx0aGlzLiRjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCx7cGFzc2l2ZTohMX0pLHRoaXMuJGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLHtwYXNzaXZlOiExfSksdGhpcy5pbml0T2JzZXJ2ZXIoKTtjb25zdCB0PW5ldyBkKHRoaXMuJGNvbnRhaW5lcix7c3RhcnQ6KGUsaSk9PntpZighdGhpcy5vcHRpb24oInRvdWNoIikpcmV0dXJuITE7aWYodGhpcy52ZWxvY2l0eS5zY2FsZTwwKXJldHVybiExO2NvbnN0IHM9aS5jb21wb3NlZFBhdGgoKVswXTtpZighdC5jdXJyZW50UG9pbnRlcnMubGVuZ3RoKXtpZigtMSE9PVsiQlVUVE9OIiwiVEVYVEFSRUEiLCJPUFRJT04iLCJJTlBVVCIsIlNFTEVDVCIsIlZJREVPIl0uaW5kZXhPZihzLm5vZGVOYW1lKSlyZXR1cm4hMTtpZih0aGlzLm9wdGlvbigidGV4dFNlbGVjdGlvbiIpJiYoKHQsZSxpKT0+e2NvbnN0IHM9dC5jaGlsZE5vZGVzLGE9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtmb3IobGV0IHQ9MDt0PHMubGVuZ3RoO3QrKyl7Y29uc3Qgbj1zW3RdO2lmKG4ubm9kZVR5cGUhPT1Ob2RlLlRFWFRfTk9ERSljb250aW51ZTthLnNlbGVjdE5vZGVDb250ZW50cyhuKTtjb25zdCByPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoZT49ci5sZWZ0JiZpPj1yLnRvcCYmZTw9ci5yaWdodCYmaTw9ci5ib3R0b20pcmV0dXJuIG59cmV0dXJuITF9KShzLGUuY2xpZW50WCxlLmNsaWVudFkpKXJldHVybiExfXJldHVybiFyKHMpJiYhMSE9PXRoaXMudHJpZ2dlcigidG91Y2hTdGFydCIsaSkmJigibW91c2Vkb3duIj09PWkudHlwZSYmaS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc3RhdGU9InBvaW50ZXJkb3duIix0aGlzLnJlc2V0RHJhZ1Bvc2l0aW9uKCksdGhpcy5kcmFnUG9zaXRpb24ubWlkUG9pbnQ9bnVsbCx0aGlzLmRyYWdQb3NpdGlvbi50aW1lPURhdGUubm93KCksITApfSxtb3ZlOihlLGkscyk9PntpZigicG9pbnRlcmRvd24iIT09dGhpcy5zdGF0ZSlyZXR1cm47aWYoITE9PT10aGlzLnRyaWdnZXIoInRvdWNoTW92ZSIscykpcmV0dXJuIHZvaWQgcy5wcmV2ZW50RGVmYXVsdCgpO2lmKGkubGVuZ3RoPDImJiEwPT09dGhpcy5vcHRpb24oInBhbk9ubHlab29tZWQiKSYmdGhpcy5jb250ZW50LndpZHRoPD10aGlzLnZpZXdwb3J0LndpZHRoJiZ0aGlzLmNvbnRlbnQuaGVpZ2h0PD10aGlzLnZpZXdwb3J0LmhlaWdodCYmdGhpcy50cmFuc2Zvcm0uc2NhbGU8PXRoaXMub3B0aW9uKCJiYXNlU2NhbGUiKSlyZXR1cm47aWYoaS5sZW5ndGg+MSYmKCF0aGlzLm9wdGlvbigiem9vbSIpfHwhMT09PXRoaXMub3B0aW9uKCJwaW5jaFRvWm9vbSIpKSlyZXR1cm47Y29uc3QgYT1oKGVbMF0sZVsxXSksbj1oKGlbMF0saVsxXSkscj1uLmNsaWVudFgtYS5jbGllbnRYLG89bi5jbGllbnRZLWEuY2xpZW50WSxsPWMoZVswXSxlWzFdKSxkPWMoaVswXSxpWzFdKSx1PWwmJmQ/ZC9sOjE7dGhpcy5kcmFnT2Zmc2V0LngrPXIsdGhpcy5kcmFnT2Zmc2V0LnkrPW8sdGhpcy5kcmFnT2Zmc2V0LnNjYWxlKj11LHRoaXMuZHJhZ09mZnNldC50aW1lPURhdGUubm93KCktdGhpcy5kcmFnUG9zaXRpb24udGltZTtjb25zdCBwPTE9PT10aGlzLmRyYWdTdGFydC5zY2FsZSYmdGhpcy5vcHRpb24oImxvY2tBeGlzIik7aWYocCYmIXRoaXMubG9ja0F4aXMpe2lmKE1hdGguYWJzKHRoaXMuZHJhZ09mZnNldC54KTw2JiZNYXRoLmFicyh0aGlzLmRyYWdPZmZzZXQueSk8NilyZXR1cm4gdm9pZCBzLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD1NYXRoLmFicygxODAqTWF0aC5hdGFuMih0aGlzLmRyYWdPZmZzZXQueSx0aGlzLmRyYWdPZmZzZXQueCkvTWF0aC5QSSk7dGhpcy5sb2NrQXhpcz10PjQ1JiZ0PDEzNT8ieSI6IngifWlmKCJ4eSI9PT1wfHwieSIhPT10aGlzLmxvY2tBeGlzKXtpZihzLnByZXZlbnREZWZhdWx0KCkscy5zdG9wUHJvcGFnYXRpb24oKSxzLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLHRoaXMubG9ja0F4aXMmJih0aGlzLmRyYWdPZmZzZXRbIngiPT09dGhpcy5sb2NrQXhpcz8ieSI6IngiXT0wKSx0aGlzLiRjb250YWluZXIuY2xhc3NMaXN0LmFkZCh0aGlzLm9wdGlvbigiZHJhZ2dpbmdDbGFzcyIpKSx0aGlzLnRyYW5zZm9ybS5zY2FsZT09PXRoaXMub3B0aW9uKCJiYXNlU2NhbGUiKSYmInkiPT09dGhpcy5sb2NrQXhpc3x8KHRoaXMuZHJhZ1Bvc2l0aW9uLng9dGhpcy5kcmFnU3RhcnQueCt0aGlzLmRyYWdPZmZzZXQueCksdGhpcy50cmFuc2Zvcm0uc2NhbGU9PT10aGlzLm9wdGlvbigiYmFzZVNjYWxlIikmJiJ4Ij09PXRoaXMubG9ja0F4aXN8fCh0aGlzLmRyYWdQb3NpdGlvbi55PXRoaXMuZHJhZ1N0YXJ0LnkrdGhpcy5kcmFnT2Zmc2V0LnkpLHRoaXMuZHJhZ1Bvc2l0aW9uLnNjYWxlPXRoaXMuZHJhZ1N0YXJ0LnNjYWxlKnRoaXMuZHJhZ09mZnNldC5zY2FsZSxpLmxlbmd0aD4xKXtjb25zdCBlPWgodC5zdGFydFBvaW50ZXJzWzBdLHQuc3RhcnRQb2ludGVyc1sxXSksaT1lLmNsaWVudFgtdGhpcy5kcmFnU3RhcnQucmVjdC54LHM9ZS5jbGllbnRZLXRoaXMuZHJhZ1N0YXJ0LnJlY3QueSx7ZGVsdGFYOmEsZGVsdGFZOnJ9PXRoaXMuZ2V0Wm9vbURlbHRhKHRoaXMuY29udGVudC5zY2FsZSp0aGlzLmRyYWdPZmZzZXQuc2NhbGUsaSxzKTt0aGlzLmRyYWdQb3NpdGlvbi54LT1hLHRoaXMuZHJhZ1Bvc2l0aW9uLnktPXIsdGhpcy5kcmFnUG9zaXRpb24ubWlkUG9pbnQ9bn1lbHNlIHRoaXMuc2V0RHJhZ1Jlc2lzdGFuY2UoKTt0aGlzLnRyYW5zZm9ybT17eDp0aGlzLmRyYWdQb3NpdGlvbi54LHk6dGhpcy5kcmFnUG9zaXRpb24ueSxzY2FsZTp0aGlzLmRyYWdQb3NpdGlvbi5zY2FsZX0sdGhpcy5zdGFydEFuaW1hdGlvbigpfX0sZW5kOihlLGkpPT57aWYoInBvaW50ZXJkb3duIiE9PXRoaXMuc3RhdGUpcmV0dXJuO2lmKHRoaXMuX2RyYWdPZmZzZXQ9ey4uLnRoaXMuZHJhZ09mZnNldH0sdC5jdXJyZW50UG9pbnRlcnMubGVuZ3RoKXJldHVybiB2b2lkIHRoaXMucmVzZXREcmFnUG9zaXRpb24oKTtpZih0aGlzLnN0YXRlPSJkZWNlbCIsdGhpcy5mcmljdGlvbj10aGlzLm9wdGlvbigiZGVjZWxGcmljdGlvbiIpLHRoaXMucmVjYWxjdWxhdGVUcmFuc2Zvcm0oKSx0aGlzLiRjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLm9wdGlvbigiZHJhZ2dpbmdDbGFzcyIpKSwhMT09PXRoaXMudHJpZ2dlcigidG91Y2hFbmQiLGkpKXJldHVybjtpZigiZGVjZWwiIT09dGhpcy5zdGF0ZSlyZXR1cm47Y29uc3Qgcz10aGlzLm9wdGlvbigibWluU2NhbGUiKTtpZih0aGlzLnRyYW5zZm9ybS5zY2FsZTxzKXJldHVybiB2b2lkIHRoaXMuem9vbVRvKHMse2ZyaWN0aW9uOi42NH0pO2NvbnN0IGE9dGhpcy5vcHRpb24oIm1heFNjYWxlIik7aWYodGhpcy50cmFuc2Zvcm0uc2NhbGUtYT4uMDEpe2NvbnN0IHQ9dGhpcy5kcmFnUG9zaXRpb24ubWlkUG9pbnR8fGUsaT10aGlzLiRjb250ZW50LmdldENsaWVudFJlY3RzKClbMF07dGhpcy56b29tVG8oYSx7ZnJpY3Rpb246LjY0LHg6dC5jbGllbnRYLWkubGVmdCx5OnQuY2xpZW50WS1pLnRvcH0pfX19KTt0aGlzLnBvaW50ZXJUcmFja2VyPXR9aW5pdE9ic2VydmVyKCl7dGhpcy5yZXNpemVPYnNlcnZlcnx8KHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IG8oKCgpPT57dGhpcy51cGRhdGVUaW1lcnx8KHRoaXMudXBkYXRlVGltZXI9c2V0VGltZW91dCgoKCk9Pntjb25zdCB0PXRoaXMuJGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0LndpZHRoJiZ0LmhlaWdodD8oKE1hdGguYWJzKHQud2lkdGgtdGhpcy5jb250YWluZXIud2lkdGgpPjF8fE1hdGguYWJzKHQuaGVpZ2h0LXRoaXMuY29udGFpbmVyLmhlaWdodCk+MSkmJih0aGlzLmlzQW5pbWF0aW5nKCkmJnRoaXMuZW5kQW5pbWF0aW9uKCEwKSx0aGlzLnVwZGF0ZU1ldHJpY3MoKSx0aGlzLnBhblRvKHt4OnRoaXMuY29udGVudC54LHk6dGhpcy5jb250ZW50Lnksc2NhbGU6dGhpcy5vcHRpb24oImJhc2VTY2FsZSIpLGZyaWN0aW9uOjB9KSksdGhpcy51cGRhdGVUaW1lcj1udWxsKTp0aGlzLnVwZGF0ZVRpbWVyPW51bGx9KSx0aGlzLnVwZGF0ZVJhdGUpKX0pKSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy4kY29udGFpbmVyKSl9cmVzZXREcmFnUG9zaXRpb24oKXt0aGlzLmxvY2tBeGlzPW51bGwsdGhpcy5mcmljdGlvbj10aGlzLm9wdGlvbigiZnJpY3Rpb24iKSx0aGlzLnZlbG9jaXR5PXt4OjAseTowLHNjYWxlOjB9O2NvbnN0e3g6dCx5OmUsc2NhbGU6aX09dGhpcy5jb250ZW50O3RoaXMuZHJhZ1N0YXJ0PXtyZWN0OnRoaXMuJGNvbnRlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkseDp0LHk6ZSxzY2FsZTppfSx0aGlzLmRyYWdQb3NpdGlvbj17Li4udGhpcy5kcmFnUG9zaXRpb24seDp0LHk6ZSxzY2FsZTppfSx0aGlzLmRyYWdPZmZzZXQ9e3g6MCx5OjAsc2NhbGU6MSx0aW1lOjB9fXVwZGF0ZU1ldHJpY3ModCl7ITAhPT10JiZ0aGlzLnRyaWdnZXIoImJlZm9yZVVwZGF0ZSIpO2NvbnN0IGU9dGhpcy4kY29udGFpbmVyLGk9dGhpcy4kY29udGVudCxzPXRoaXMuJHZpZXdwb3J0LGE9aSBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQscj10aGlzLm9wdGlvbigiem9vbSIpLG89dGhpcy5vcHRpb24oInJlc2l6ZVBhcmVudCIscik7bGV0IGw9dGhpcy5vcHRpb24oIndpZHRoIiksYz10aGlzLm9wdGlvbigiaGVpZ2h0IiksaD1sfHwoZD1pLE1hdGgubWF4KHBhcnNlRmxvYXQoZC5uYXR1cmFsV2lkdGh8fDApLHBhcnNlRmxvYXQoZC53aWR0aCYmZC53aWR0aC5iYXNlVmFsJiZkLndpZHRoLmJhc2VWYWwudmFsdWV8fDApLHBhcnNlRmxvYXQoZC5vZmZzZXRXaWR0aHx8MCkscGFyc2VGbG9hdChkLnNjcm9sbFdpZHRofHwwKSkpO3ZhciBkO2xldCB1PWN8fCh0PT5NYXRoLm1heChwYXJzZUZsb2F0KHQubmF0dXJhbEhlaWdodHx8MCkscGFyc2VGbG9hdCh0LmhlaWdodCYmdC5oZWlnaHQuYmFzZVZhbCYmdC5oZWlnaHQuYmFzZVZhbC52YWx1ZXx8MCkscGFyc2VGbG9hdCh0Lm9mZnNldEhlaWdodHx8MCkscGFyc2VGbG9hdCh0LnNjcm9sbEhlaWdodHx8MCkpKShpKTtPYmplY3QuYXNzaWduKGkuc3R5bGUse3dpZHRoOmw/YCR7bH1weGA6IiIsaGVpZ2h0OmM/YCR7Y31weGA6IiIsbWF4V2lkdGg6IiIsbWF4SGVpZ2h0OiIifSksbyYmT2JqZWN0LmFzc2lnbihzLnN0eWxlLHt3aWR0aDoiIixoZWlnaHQ6IiJ9KTtjb25zdCBwPXRoaXMub3B0aW9uKCJyYXRpbyIpO2g9bihoKnApLHU9bih1KnApLGw9aCxjPXU7Y29uc3QgZz1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGY9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtPXM9PWU/ZjplLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCB2PU1hdGgubWF4KHMub2Zmc2V0V2lkdGgsbihmLndpZHRoKSkseD1NYXRoLm1heChzLm9mZnNldEhlaWdodCxuKGYuaGVpZ2h0KSksYj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzKTtpZih2LT1wYXJzZUZsb2F0KGIucGFkZGluZ0xlZnQpK3BhcnNlRmxvYXQoYi5wYWRkaW5nUmlnaHQpLHgtPXBhcnNlRmxvYXQoYi5wYWRkaW5nVG9wKStwYXJzZUZsb2F0KGIucGFkZGluZ0JvdHRvbSksdGhpcy52aWV3cG9ydC53aWR0aD12LHRoaXMudmlld3BvcnQuaGVpZ2h0PXgscil7aWYoTWF0aC5hYnMoaC1nLndpZHRoKT4uMXx8TWF0aC5hYnModS1nLmhlaWdodCk+LjEpe2NvbnN0IHQ9KCh0LGUsaSxzKT0+e2NvbnN0IGE9TWF0aC5taW4oaS90fHwwLHMvZSk7cmV0dXJue3dpZHRoOnQqYXx8MCxoZWlnaHQ6ZSphfHwwfX0pKGgsdSxNYXRoLm1pbihoLGcud2lkdGgpLE1hdGgubWluKHUsZy5oZWlnaHQpKTtsPW4odC53aWR0aCksYz1uKHQuaGVpZ2h0KX1PYmplY3QuYXNzaWduKGkuc3R5bGUse3dpZHRoOmAke2x9cHhgLGhlaWdodDpgJHtjfXB4YCx0cmFuc2Zvcm06IiJ9KX1pZihvJiYoT2JqZWN0LmFzc2lnbihzLnN0eWxlLHt3aWR0aDpgJHtsfXB4YCxoZWlnaHQ6YCR7Y31weGB9KSx0aGlzLnZpZXdwb3J0PXsuLi50aGlzLnZpZXdwb3J0LHdpZHRoOmwsaGVpZ2h0OmN9KSxhJiZyJiYiZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5vcHRpb25zLm1heFNjYWxlKXtjb25zdCB0PXRoaXMub3B0aW9uKCJtYXhTY2FsZSIpO3RoaXMub3B0aW9ucy5tYXhTY2FsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRlbnQub3JpZ1dpZHRoPjAmJnRoaXMuY29udGVudC5maXRXaWR0aD4wP3RoaXMuY29udGVudC5vcmlnV2lkdGgvdGhpcy5jb250ZW50LmZpdFdpZHRoOnR9fXRoaXMuY29udGVudD17Li4udGhpcy5jb250ZW50LG9yaWdXaWR0aDpoLG9yaWdIZWlnaHQ6dSxmaXRXaWR0aDpsLGZpdEhlaWdodDpjLHdpZHRoOmwsaGVpZ2h0OmMsc2NhbGU6MSxpc1pvb21hYmxlOnJ9LHRoaXMuY29udGFpbmVyPXt3aWR0aDptLndpZHRoLGhlaWdodDptLmhlaWdodH0sITAhPT10JiZ0aGlzLnRyaWdnZXIoImFmdGVyVXBkYXRlIil9em9vbUluKHQpe3RoaXMuem9vbVRvKHRoaXMuY29udGVudC5zY2FsZSsodHx8dGhpcy5vcHRpb24oInN0ZXAiKSkpfXpvb21PdXQodCl7dGhpcy56b29tVG8odGhpcy5jb250ZW50LnNjYWxlLSh0fHx0aGlzLm9wdGlvbigic3RlcCIpKSl9dG9nZ2xlWm9vbSh0PXt9KXtjb25zdCBlPXRoaXMub3B0aW9uKCJtYXhTY2FsZSIpLGk9dGhpcy5vcHRpb24oImJhc2VTY2FsZSIpLHM9dGhpcy5jb250ZW50LnNjYWxlPmkrLjUqKGUtaSk/aTplO3RoaXMuem9vbVRvKHMsdCl9em9vbVRvKHQ9dGhpcy5vcHRpb24oImJhc2VTY2FsZSIpLHt4OmU9bnVsbCx5Omk9bnVsbH09e30pe3Q9TWF0aC5tYXgoTWF0aC5taW4odCx0aGlzLm9wdGlvbigibWF4U2NhbGUiKSksdGhpcy5vcHRpb24oIm1pblNjYWxlIikpO2NvbnN0IHM9bih0aGlzLmNvbnRlbnQuc2NhbGUvKHRoaXMuY29udGVudC53aWR0aC90aGlzLmNvbnRlbnQuZml0V2lkdGgpLDFlNyk7bnVsbD09PWUmJihlPXRoaXMuY29udGVudC53aWR0aCpzKi41KSxudWxsPT09aSYmKGk9dGhpcy5jb250ZW50LmhlaWdodCpzKi41KTtjb25zdHtkZWx0YVg6YSxkZWx0YVk6cn09dGhpcy5nZXRab29tRGVsdGEodCxlLGkpO2U9dGhpcy5jb250ZW50LngtYSxpPXRoaXMuY29udGVudC55LXIsdGhpcy5wYW5Ubyh7eDplLHk6aSxzY2FsZTp0LGZyaWN0aW9uOnRoaXMub3B0aW9uKCJ6b29tRnJpY3Rpb24iKX0pfWdldFpvb21EZWx0YSh0LGU9MCxpPTApe2NvbnN0IHM9dGhpcy5jb250ZW50LmZpdFdpZHRoKnRoaXMuY29udGVudC5zY2FsZSxhPXRoaXMuY29udGVudC5maXRIZWlnaHQqdGhpcy5jb250ZW50LnNjYWxlLG49ZT4wJiZzP2UvczowLHI9aT4wJiZhP2kvYTowO3JldHVybntkZWx0YVg6KHRoaXMuY29udGVudC5maXRXaWR0aCp0LXMpKm4sZGVsdGFZOih0aGlzLmNvbnRlbnQuZml0SGVpZ2h0KnQtYSkqcn19cGFuVG8oe3g6dD10aGlzLmNvbnRlbnQueCx5OmU9dGhpcy5jb250ZW50Lnksc2NhbGU6aSxmcmljdGlvbjpzPXRoaXMub3B0aW9uKCJmcmljdGlvbiIpLGlnbm9yZUJvdW5kczphPSExfT17fSl7aWYoaT1pfHx0aGlzLmNvbnRlbnQuc2NhbGV8fDEsIWEpe2NvbnN0e2JvdW5kWDpzLGJvdW5kWTphfT10aGlzLmdldEJvdW5kcyhpKTtzJiYodD1NYXRoLm1heChNYXRoLm1pbih0LHMudG8pLHMuZnJvbSkpLGEmJihlPU1hdGgubWF4KE1hdGgubWluKGUsYS50byksYS5mcm9tKSl9dGhpcy5mcmljdGlvbj1zLHRoaXMudHJhbnNmb3JtPXsuLi50aGlzLnRyYW5zZm9ybSx4OnQseTplLHNjYWxlOml9LHM/KHRoaXMuc3RhdGU9InBhbm5pbmciLHRoaXMudmVsb2NpdHk9e3g6KDEvdGhpcy5mcmljdGlvbi0xKSoodC10aGlzLmNvbnRlbnQueCkseTooMS90aGlzLmZyaWN0aW9uLTEpKihlLXRoaXMuY29udGVudC55KSxzY2FsZTooMS90aGlzLmZyaWN0aW9uLTEpKihpLXRoaXMuY29udGVudC5zY2FsZSl9LHRoaXMuc3RhcnRBbmltYXRpb24oKSk6dGhpcy5lbmRBbmltYXRpb24oKX1zdGFydEFuaW1hdGlvbigpe3RoaXMuckFGP2NhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuckFGKTp0aGlzLnRyaWdnZXIoInN0YXJ0QW5pbWF0aW9uIiksdGhpcy5yQUY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+dGhpcy5hbmltYXRlKCkpKX1hbmltYXRlKCl7aWYodGhpcy5zZXRFZGdlRm9yY2UoKSx0aGlzLnNldERyYWdGb3JjZSgpLHRoaXMudmVsb2NpdHkueCo9dGhpcy5mcmljdGlvbix0aGlzLnZlbG9jaXR5LnkqPXRoaXMuZnJpY3Rpb24sdGhpcy52ZWxvY2l0eS5zY2FsZSo9dGhpcy5mcmljdGlvbix0aGlzLmNvbnRlbnQueCs9dGhpcy52ZWxvY2l0eS54LHRoaXMuY29udGVudC55Kz10aGlzLnZlbG9jaXR5LnksdGhpcy5jb250ZW50LnNjYWxlKz10aGlzLnZlbG9jaXR5LnNjYWxlLHRoaXMuaXNBbmltYXRpbmcoKSl0aGlzLnNldFRyYW5zZm9ybSgpO2Vsc2UgaWYoInBvaW50ZXJkb3duIiE9PXRoaXMuc3RhdGUpcmV0dXJuIHZvaWQgdGhpcy5lbmRBbmltYXRpb24oKTt0aGlzLnJBRj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLmFuaW1hdGUoKSkpfWdldEJvdW5kcyh0KXtsZXQgZT10aGlzLmJvdW5kWCxpPXRoaXMuYm91bmRZO2lmKHZvaWQgMCE9PWUmJnZvaWQgMCE9PWkpcmV0dXJue2JvdW5kWDplLGJvdW5kWTppfTtlPXtmcm9tOjAsdG86MH0saT17ZnJvbTowLHRvOjB9LHQ9dHx8dGhpcy50cmFuc2Zvcm0uc2NhbGU7Y29uc3Qgcz10aGlzLmNvbnRlbnQuZml0V2lkdGgqdCxhPXRoaXMuY29udGVudC5maXRIZWlnaHQqdCxyPXRoaXMudmlld3BvcnQud2lkdGgsbz10aGlzLnZpZXdwb3J0LmhlaWdodDtpZihzPHIpe2NvbnN0IHQ9biguNSooci1zKSk7ZS5mcm9tPXQsZS50bz10fWVsc2UgZS5mcm9tPW4oci1zKTtpZihhPG8pe2NvbnN0IHQ9LjUqKG8tYSk7aS5mcm9tPXQsaS50bz10fWVsc2UgaS5mcm9tPW4oby1hKTtyZXR1cm57Ym91bmRYOmUsYm91bmRZOml9fXNldEVkZ2VGb3JjZSgpe2lmKCJkZWNlbCIhPT10aGlzLnN0YXRlKXJldHVybjtjb25zdCB0PXRoaXMub3B0aW9uKCJib3VuY2VGb3JjZSIpLHtib3VuZFg6ZSxib3VuZFk6aX09dGhpcy5nZXRCb3VuZHMoTWF0aC5tYXgodGhpcy50cmFuc2Zvcm0uc2NhbGUsdGhpcy5jb250ZW50LnNjYWxlKSk7bGV0IHMsYSxuLHI7aWYoZSYmKHM9dGhpcy5jb250ZW50Lng8ZS5mcm9tLGE9dGhpcy5jb250ZW50Lng+ZS50byksaSYmKG49dGhpcy5jb250ZW50Lnk8aS5mcm9tLHI9dGhpcy5jb250ZW50Lnk+aS50byksc3x8YSl7bGV0IGk9KChzP2UuZnJvbTplLnRvKS10aGlzLmNvbnRlbnQueCkqdDtjb25zdCBhPXRoaXMuY29udGVudC54Kyh0aGlzLnZlbG9jaXR5LngraSkvdGhpcy5mcmljdGlvbjthPj1lLmZyb20mJmE8PWUudG8mJihpKz10aGlzLnZlbG9jaXR5LngpLHRoaXMudmVsb2NpdHkueD1pLHRoaXMucmVjYWxjdWxhdGVUcmFuc2Zvcm0oKX1pZihufHxyKXtsZXQgZT0oKG4/aS5mcm9tOmkudG8pLXRoaXMuY29udGVudC55KSp0O2NvbnN0IHM9dGhpcy5jb250ZW50LnkrKGUrdGhpcy52ZWxvY2l0eS55KS90aGlzLmZyaWN0aW9uO3M+PWkuZnJvbSYmczw9aS50byYmKGUrPXRoaXMudmVsb2NpdHkueSksdGhpcy52ZWxvY2l0eS55PWUsdGhpcy5yZWNhbGN1bGF0ZVRyYW5zZm9ybSgpfX1zZXREcmFnUmVzaXN0YW5jZSgpe2lmKCJwb2ludGVyZG93biIhPT10aGlzLnN0YXRlKXJldHVybjtjb25zdHtib3VuZFg6dCxib3VuZFk6ZX09dGhpcy5nZXRCb3VuZHModGhpcy5kcmFnUG9zaXRpb24uc2NhbGUpO2xldCBpLHMsYSxuO2lmKHQmJihpPXRoaXMuZHJhZ1Bvc2l0aW9uLng8dC5mcm9tLHM9dGhpcy5kcmFnUG9zaXRpb24ueD50LnRvKSxlJiYoYT10aGlzLmRyYWdQb3NpdGlvbi55PGUuZnJvbSxuPXRoaXMuZHJhZ1Bvc2l0aW9uLnk+ZS50byksKGl8fHMpJiYoIWl8fCFzKSl7Y29uc3QgZT1pP3QuZnJvbTp0LnRvLHM9ZS10aGlzLmRyYWdQb3NpdGlvbi54O3RoaXMuZHJhZ1Bvc2l0aW9uLng9ZS0uMypzfWlmKChhfHxuKSYmKCFhfHwhbikpe2NvbnN0IHQ9YT9lLmZyb206ZS50byxpPXQtdGhpcy5kcmFnUG9zaXRpb24ueTt0aGlzLmRyYWdQb3NpdGlvbi55PXQtLjMqaX19c2V0RHJhZ0ZvcmNlKCl7InBvaW50ZXJkb3duIj09PXRoaXMuc3RhdGUmJih0aGlzLnZlbG9jaXR5Lng9dGhpcy5kcmFnUG9zaXRpb24ueC10aGlzLmNvbnRlbnQueCx0aGlzLnZlbG9jaXR5Lnk9dGhpcy5kcmFnUG9zaXRpb24ueS10aGlzLmNvbnRlbnQueSx0aGlzLnZlbG9jaXR5LnNjYWxlPXRoaXMuZHJhZ1Bvc2l0aW9uLnNjYWxlLXRoaXMuY29udGVudC5zY2FsZSl9cmVjYWxjdWxhdGVUcmFuc2Zvcm0oKXt0aGlzLnRyYW5zZm9ybS54PXRoaXMuY29udGVudC54K3RoaXMudmVsb2NpdHkueC8oMS90aGlzLmZyaWN0aW9uLTEpLHRoaXMudHJhbnNmb3JtLnk9dGhpcy5jb250ZW50LnkrdGhpcy52ZWxvY2l0eS55LygxL3RoaXMuZnJpY3Rpb24tMSksdGhpcy50cmFuc2Zvcm0uc2NhbGU9dGhpcy5jb250ZW50LnNjYWxlK3RoaXMudmVsb2NpdHkuc2NhbGUvKDEvdGhpcy5mcmljdGlvbi0xKX1pc0FuaW1hdGluZygpe3JldHVybiEoIXRoaXMuZnJpY3Rpb258fCEoTWF0aC5hYnModGhpcy52ZWxvY2l0eS54KT4uMDV8fE1hdGguYWJzKHRoaXMudmVsb2NpdHkueSk+LjA1fHxNYXRoLmFicyh0aGlzLnZlbG9jaXR5LnNjYWxlKT4uMDUpKX1zZXRUcmFuc2Zvcm0odCl7bGV0IGUsaSxzO2lmKHQ/KGU9bih0aGlzLnRyYW5zZm9ybS54KSxpPW4odGhpcy50cmFuc2Zvcm0ueSkscz10aGlzLnRyYW5zZm9ybS5zY2FsZSx0aGlzLmNvbnRlbnQ9ey4uLnRoaXMuY29udGVudCx4OmUseTppLHNjYWxlOnN9KTooZT1uKHRoaXMuY29udGVudC54KSxpPW4odGhpcy5jb250ZW50LnkpLHM9dGhpcy5jb250ZW50LnNjYWxlLyh0aGlzLmNvbnRlbnQud2lkdGgvdGhpcy5jb250ZW50LmZpdFdpZHRoKSx0aGlzLmNvbnRlbnQ9ey4uLnRoaXMuY29udGVudCx4OmUseTppfSksdGhpcy50cmlnZ2VyKCJiZWZvcmVUcmFuc2Zvcm0iKSxlPW4odGhpcy5jb250ZW50LngpLGk9bih0aGlzLmNvbnRlbnQueSksdCYmdGhpcy5vcHRpb24oInpvb20iKSl7bGV0IHQsYTt0PW4odGhpcy5jb250ZW50LmZpdFdpZHRoKnMpLGE9bih0aGlzLmNvbnRlbnQuZml0SGVpZ2h0KnMpLHRoaXMuY29udGVudC53aWR0aD10LHRoaXMuY29udGVudC5oZWlnaHQ9YSx0aGlzLnRyYW5zZm9ybT17Li4udGhpcy50cmFuc2Zvcm0sd2lkdGg6dCxoZWlnaHQ6YSxzY2FsZTpzfSxPYmplY3QuYXNzaWduKHRoaXMuJGNvbnRlbnQuc3R5bGUse3dpZHRoOmAke3R9cHhgLGhlaWdodDpgJHthfXB4YCxtYXhXaWR0aDoibm9uZSIsbWF4SGVpZ2h0OiJub25lIix0cmFuc2Zvcm06YHRyYW5zbGF0ZTNkKCR7ZX1weCwgJHtpfXB4LCAwKSBzY2FsZSgxKWB9KX1lbHNlIHRoaXMuJGNvbnRlbnQuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGUzZCgke2V9cHgsICR7aX1weCwgMCkgc2NhbGUoJHtzfSlgO3RoaXMudHJpZ2dlcigiYWZ0ZXJUcmFuc2Zvcm0iKX1lbmRBbmltYXRpb24odCl7Y2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5yQUYpLHRoaXMuckFGPW51bGwsdGhpcy52ZWxvY2l0eT17eDowLHk6MCxzY2FsZTowfSx0aGlzLnNldFRyYW5zZm9ybSghMCksdGhpcy5zdGF0ZT0icmVhZHkiLHRoaXMuaGFuZGxlQ3Vyc29yKCksITAhPT10JiZ0aGlzLnRyaWdnZXIoImVuZEFuaW1hdGlvbiIpfWhhbmRsZUN1cnNvcigpe2NvbnN0IHQ9dGhpcy5vcHRpb24oImRyYWdnYWJsZUNsYXNzIik7dCYmdGhpcy5vcHRpb24oInRvdWNoIikmJigxPT10aGlzLm9wdGlvbigicGFuT25seVpvb21lZCIpJiZ0aGlzLmNvbnRlbnQud2lkdGg8PXRoaXMudmlld3BvcnQud2lkdGgmJnRoaXMuY29udGVudC5oZWlnaHQ8PXRoaXMudmlld3BvcnQuaGVpZ2h0JiZ0aGlzLnRyYW5zZm9ybS5zY2FsZTw9dGhpcy5vcHRpb24oImJhc2VTY2FsZSIpP3RoaXMuJGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKHQpOnRoaXMuJGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKHQpKX1kZXRhY2hFdmVudHMoKXt0aGlzLiRjb250ZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLHRoaXMub25Mb2FkKSx0aGlzLiRjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCx7cGFzc2l2ZTohMX0pLHRoaXMuJGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLHtwYXNzaXZlOiExfSksdGhpcy5wb2ludGVyVHJhY2tlciYmKHRoaXMucG9pbnRlclRyYWNrZXIuc3RvcCgpLHRoaXMucG9pbnRlclRyYWNrZXI9bnVsbCksdGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bnVsbCl9ZGVzdHJveSgpeyJkZXN0cm95IiE9PXRoaXMuc3RhdGUmJih0aGlzLnN0YXRlPSJkZXN0cm95IixjbGVhclRpbWVvdXQodGhpcy51cGRhdGVUaW1lciksdGhpcy51cGRhdGVUaW1lcj1udWxsLGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuckFGKSx0aGlzLnJBRj1udWxsLHRoaXMuZGV0YWNoRXZlbnRzKCksdGhpcy5kZXRhY2hQbHVnaW5zKCksdGhpcy5yZXNldERyYWdQb3NpdGlvbigpKX19Zy52ZXJzaW9uPSI0LjAuMzEiLGcuUGx1Z2lucz17fTtjb25zdCBmPSh0LGUpPT57bGV0IGk9MDtyZXR1cm4gZnVuY3Rpb24oLi4ucyl7Y29uc3QgYT0obmV3IERhdGUpLmdldFRpbWUoKTtpZighKGEtaTxlKSlyZXR1cm4gaT1hLHQoLi4ucyl9fTtjbGFzcyBte2NvbnN0cnVjdG9yKHQpe3RoaXMuJGNvbnRhaW5lcj1udWxsLHRoaXMuJHByZXY9bnVsbCx0aGlzLiRuZXh0PW51bGwsdGhpcy5jYXJvdXNlbD10LHRoaXMub25SZWZyZXNoPXRoaXMub25SZWZyZXNoLmJpbmQodGhpcyl9b3B0aW9uKHQpe3JldHVybiB0aGlzLmNhcm91c2VsLm9wdGlvbihgTmF2aWdhdGlvbi4ke3R9YCl9Y3JlYXRlQnV0dG9uKHQpe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7ZS5zZXRBdHRyaWJ1dGUoInRpdGxlIix0aGlzLmNhcm91c2VsLmxvY2FsaXplKGB7eyR7dC50b1VwcGVyQ2FzZSgpfX19YCkpO2NvbnN0IGk9dGhpcy5vcHRpb24oImNsYXNzTmFtZXMuYnV0dG9uIikrIiAiK3RoaXMub3B0aW9uKGBjbGFzc05hbWVzLiR7dH1gKTtyZXR1cm4gZS5jbGFzc0xpc3QuYWRkKC4uLmkuc3BsaXQoIiAiKSksZS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLGUuaW5uZXJIVE1MPXRoaXMuY2Fyb3VzZWwubG9jYWxpemUodGhpcy5vcHRpb24oYCR7dH1UcGxgKSksZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKGU9PntlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNhcm91c2VsWyJzbGlkZSIrKCJuZXh0Ij09PXQ/Ik5leHQiOiJQcmV2IildKCl9KSksZX1idWlsZCgpe3RoaXMuJGNvbnRhaW5lcnx8KHRoaXMuJGNvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLiRjb250YWluZXIuY2xhc3NMaXN0LmFkZCguLi50aGlzLm9wdGlvbigiY2xhc3NOYW1lcy5tYWluIikuc3BsaXQoIiAiKSksdGhpcy5jYXJvdXNlbC4kY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuJGNvbnRhaW5lcikpLHRoaXMuJG5leHR8fCh0aGlzLiRuZXh0PXRoaXMuY3JlYXRlQnV0dG9uKCJuZXh0IiksdGhpcy4kY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuJG5leHQpKSx0aGlzLiRwcmV2fHwodGhpcy4kcHJldj10aGlzLmNyZWF0ZUJ1dHRvbigicHJldiIpLHRoaXMuJGNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLiRwcmV2KSl9b25SZWZyZXNoKCl7Y29uc3QgdD10aGlzLmNhcm91c2VsLnBhZ2VzLmxlbmd0aDt0PD0xfHx0PjEmJnRoaXMuY2Fyb3VzZWwuZWxlbURpbVdpZHRoPHRoaXMuY2Fyb3VzZWwud3JhcERpbVdpZHRoJiYhTnVtYmVyLmlzSW50ZWdlcih0aGlzLmNhcm91c2VsLm9wdGlvbigic2xpZGVzUGVyUGFnZSIpKT90aGlzLmNsZWFudXAoKToodGhpcy5idWlsZCgpLHRoaXMuJHByZXYucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpLHRoaXMuJG5leHQucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpLHRoaXMuY2Fyb3VzZWwub3B0aW9uKCJpbmZpbml0ZVgiLHRoaXMuY2Fyb3VzZWwub3B0aW9uKCJpbmZpbml0ZSIpKXx8KHRoaXMuY2Fyb3VzZWwucGFnZTw9MCYmdGhpcy4kcHJldi5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwiIiksdGhpcy5jYXJvdXNlbC5wYWdlPj10LTEmJnRoaXMuJG5leHQuc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsIiIpKSl9Y2xlYW51cCgpe3RoaXMuJHByZXYmJnRoaXMuJHByZXYucmVtb3ZlKCksdGhpcy4kcHJldj1udWxsLHRoaXMuJG5leHQmJnRoaXMuJG5leHQucmVtb3ZlKCksdGhpcy4kbmV4dD1udWxsLHRoaXMuJGNvbnRhaW5lciYmdGhpcy4kY29udGFpbmVyLnJlbW92ZSgpLHRoaXMuJGNvbnRhaW5lcj1udWxsfWF0dGFjaCgpe3RoaXMuY2Fyb3VzZWwub24oInJlZnJlc2ggY2hhbmdlIix0aGlzLm9uUmVmcmVzaCl9ZGV0YWNoKCl7dGhpcy5jYXJvdXNlbC5vZmYoInJlZnJlc2ggY2hhbmdlIix0aGlzLm9uUmVmcmVzaCksdGhpcy5jbGVhbnVwKCl9fW0uZGVmYXVsdHM9e3ByZXZUcGw6JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHRhYmluZGV4PSItMSI+PHBhdGggZD0iTTE1IDNsLTkgOSA5IDkiLz48L3N2Zz4nLG5leHRUcGw6JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHRhYmluZGV4PSItMSI+PHBhdGggZD0iTTkgM2w5IDktOSA5Ii8+PC9zdmc+JyxjbGFzc05hbWVzOnttYWluOiJjYXJvdXNlbF9fbmF2IixidXR0b246ImNhcm91c2VsX19idXR0b24iLG5leHQ6ImlzLW5leHQiLHByZXY6ImlzLXByZXYifX07Y2xhc3Mgdntjb25zdHJ1Y3Rvcih0KXt0aGlzLmNhcm91c2VsPXQsdGhpcy5zZWxlY3RlZEluZGV4PW51bGwsdGhpcy5mcmljdGlvbj0wLHRoaXMub25OYXZSZWFkeT10aGlzLm9uTmF2UmVhZHkuYmluZCh0aGlzKSx0aGlzLm9uTmF2Q2xpY2s9dGhpcy5vbk5hdkNsaWNrLmJpbmQodGhpcyksdGhpcy5vbk5hdkNyZWF0ZVNsaWRlPXRoaXMub25OYXZDcmVhdGVTbGlkZS5iaW5kKHRoaXMpLHRoaXMub25UYXJnZXRDaGFuZ2U9dGhpcy5vblRhcmdldENoYW5nZS5iaW5kKHRoaXMpfWFkZEFzVGFyZ2V0Rm9yKHQpe3RoaXMudGFyZ2V0PXRoaXMuY2Fyb3VzZWwsdGhpcy5uYXY9dCx0aGlzLmF0dGFjaEV2ZW50cygpfWFkZEFzTmF2Rm9yKHQpe3RoaXMudGFyZ2V0PXQsdGhpcy5uYXY9dGhpcy5jYXJvdXNlbCx0aGlzLmF0dGFjaEV2ZW50cygpfWF0dGFjaEV2ZW50cygpe3RoaXMubmF2Lm9wdGlvbnMuaW5pdGlhbFNsaWRlPXRoaXMudGFyZ2V0Lm9wdGlvbnMuaW5pdGlhbFBhZ2UsdGhpcy5uYXYub24oInJlYWR5Iix0aGlzLm9uTmF2UmVhZHkpLHRoaXMubmF2Lm9uKCJjcmVhdGVTbGlkZSIsdGhpcy5vbk5hdkNyZWF0ZVNsaWRlKSx0aGlzLm5hdi5vbigiUGFuem9vbS5jbGljayIsdGhpcy5vbk5hdkNsaWNrKSx0aGlzLnRhcmdldC5vbigiY2hhbmdlIix0aGlzLm9uVGFyZ2V0Q2hhbmdlKSx0aGlzLnRhcmdldC5vbigiUGFuem9vbS5hZnRlclVwZGF0ZSIsdGhpcy5vblRhcmdldENoYW5nZSl9b25OYXZSZWFkeSgpe3RoaXMub25UYXJnZXRDaGFuZ2UoITApfW9uTmF2Q2xpY2sodCxlLGkpe2NvbnN0IHM9aS50YXJnZXQuY2xvc2VzdCgiLmNhcm91c2VsX19zbGlkZSIpO2lmKCFzKXJldHVybjtpLnN0b3BQcm9wYWdhdGlvbigpO2NvbnN0IGE9cGFyc2VJbnQocy5kYXRhc2V0LmluZGV4LDEwKSxuPXRoaXMudGFyZ2V0LmZpbmRQYWdlRm9yU2xpZGUoYSk7dGhpcy50YXJnZXQucGFnZSE9PW4mJnRoaXMudGFyZ2V0LnNsaWRlVG8obix7ZnJpY3Rpb246dGhpcy5mcmljdGlvbn0pLHRoaXMubWFya1NlbGVjdGVkU2xpZGUoYSl9b25OYXZDcmVhdGVTbGlkZSh0LGUpe2UuaW5kZXg9PT10aGlzLnNlbGVjdGVkSW5kZXgmJnRoaXMubWFya1NlbGVjdGVkU2xpZGUoZS5pbmRleCl9b25UYXJnZXRDaGFuZ2UoKXtjb25zdCB0PXRoaXMudGFyZ2V0LnBhZ2VzW3RoaXMudGFyZ2V0LnBhZ2VdLmluZGV4ZXNbMF0sZT10aGlzLm5hdi5maW5kUGFnZUZvclNsaWRlKHQpO3RoaXMubmF2LnNsaWRlVG8oZSksdGhpcy5tYXJrU2VsZWN0ZWRTbGlkZSh0KX1tYXJrU2VsZWN0ZWRTbGlkZSh0KXt0aGlzLnNlbGVjdGVkSW5kZXg9dCxbLi4udGhpcy5uYXYuc2xpZGVzXS5maWx0ZXIoKHQ9PnQuJGVsJiZ0LiRlbC5jbGFzc0xpc3QucmVtb3ZlKCJpcy1uYXYtc2VsZWN0ZWQiKSkpO2NvbnN0IGU9dGhpcy5uYXYuc2xpZGVzW3RdO2UmJmUuJGVsJiZlLiRlbC5jbGFzc0xpc3QuYWRkKCJpcy1uYXYtc2VsZWN0ZWQiKX1hdHRhY2godCl7Y29uc3QgZT10Lm9wdGlvbnMuU3luYzsoZS50YXJnZXR8fGUubmF2KSYmKGUudGFyZ2V0P3RoaXMuYWRkQXNOYXZGb3IoZS50YXJnZXQpOmUubmF2JiZ0aGlzLmFkZEFzVGFyZ2V0Rm9yKGUubmF2KSx0aGlzLmZyaWN0aW9uPWUuZnJpY3Rpb24pfWRldGFjaCgpe3RoaXMubmF2JiYodGhpcy5uYXYub2ZmKCJyZWFkeSIsdGhpcy5vbk5hdlJlYWR5KSx0aGlzLm5hdi5vZmYoIlBhbnpvb20uY2xpY2siLHRoaXMub25OYXZDbGljayksdGhpcy5uYXYub2ZmKCJjcmVhdGVTbGlkZSIsdGhpcy5vbk5hdkNyZWF0ZVNsaWRlKSksdGhpcy50YXJnZXQmJih0aGlzLnRhcmdldC5vZmYoIlBhbnpvb20uYWZ0ZXJVcGRhdGUiLHRoaXMub25UYXJnZXRDaGFuZ2UpLHRoaXMudGFyZ2V0Lm9mZigiY2hhbmdlIix0aGlzLm9uVGFyZ2V0Q2hhbmdlKSl9fXYuZGVmYXVsdHM9e2ZyaWN0aW9uOi45Mn07Y29uc3QgeD17TmF2aWdhdGlvbjptLERvdHM6Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5jYXJvdXNlbD10LHRoaXMuJGxpc3Q9bnVsbCx0aGlzLmV2ZW50cz17Y2hhbmdlOnRoaXMub25DaGFuZ2UuYmluZCh0aGlzKSxyZWZyZXNoOnRoaXMub25SZWZyZXNoLmJpbmQodGhpcyl9fWJ1aWxkTGlzdCgpe2lmKHRoaXMuY2Fyb3VzZWwucGFnZXMubGVuZ3RoPHRoaXMuY2Fyb3VzZWwub3B0aW9uKCJEb3RzLm1pblNsaWRlQ291bnQiKSlyZXR1cm47Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvbCIpO3JldHVybiB0LmNsYXNzTGlzdC5hZGQoImNhcm91c2VsX19kb3RzIiksdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKHQ9PntpZighKCJwYWdlImluIHQudGFyZ2V0LmRhdGFzZXQpKXJldHVybjt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKTtjb25zdCBlPXBhcnNlSW50KHQudGFyZ2V0LmRhdGFzZXQucGFnZSwxMCksaT10aGlzLmNhcm91c2VsO2UhPT1pLnBhZ2UmJihpLnBhZ2VzLmxlbmd0aDwzJiZpLm9wdGlvbigiaW5maW5pdGUiKT9pWzA9PWU/InNsaWRlUHJldiI6InNsaWRlTmV4dCJdKCk6aS5zbGlkZVRvKGUpKX0pKSx0aGlzLiRsaXN0PXQsdGhpcy5jYXJvdXNlbC4kY29udGFpbmVyLmFwcGVuZENoaWxkKHQpLHRoaXMuY2Fyb3VzZWwuJGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoYXMtZG90cyIpLHR9cmVtb3ZlTGlzdCgpe3RoaXMuJGxpc3QmJih0aGlzLiRsaXN0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy4kbGlzdCksdGhpcy4kbGlzdD1udWxsKSx0aGlzLmNhcm91c2VsLiRjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgiaGFzLWRvdHMiKX1yZWJ1aWxkRG90cygpe2xldCB0PXRoaXMuJGxpc3Q7Y29uc3QgZT0hIXQsaT10aGlzLmNhcm91c2VsLnBhZ2VzLmxlbmd0aDtpZihpPDIpcmV0dXJuIHZvaWQoZSYmdGhpcy5yZW1vdmVMaXN0KCkpO2V8fCh0PXRoaXMuYnVpbGRMaXN0KCkpO2NvbnN0IHM9dGhpcy4kbGlzdC5jaGlsZHJlbi5sZW5ndGg7aWYocz5pKWZvcihsZXQgdD1pO3Q8czt0KyspdGhpcy4kbGlzdC5yZW1vdmVDaGlsZCh0aGlzLiRsaXN0Lmxhc3RDaGlsZCk7ZWxzZXtmb3IobGV0IHQ9czt0PGk7dCsrKXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7ZS5jbGFzc0xpc3QuYWRkKCJjYXJvdXNlbF9fZG90IiksZS5kYXRhc2V0LnBhZ2U9dCxlLnNldEF0dHJpYnV0ZSgicm9sZSIsImJ1dHRvbiIpLGUuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxlLnNldEF0dHJpYnV0ZSgidGl0bGUiLHRoaXMuY2Fyb3VzZWwubG9jYWxpemUoInt7R09UT319IixbWyIlZCIsdCsxXV0pKSxlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCh0PT57Y29uc3QgaT10LmNvZGU7bGV0IHM7IkVudGVyIj09PWl8fCJOdW1wYWRFbnRlciI9PT1pP3M9ZToiQXJyb3dSaWdodCI9PT1pP3M9ZS5uZXh0U2libGluZzoiQXJyb3dMZWZ0Ij09PWkmJihzPWUucHJldmlvdXNTaWJsaW5nKSxzJiZzLmNsaWNrKCl9KSksdGhpcy4kbGlzdC5hcHBlbmRDaGlsZChlKX10aGlzLnNldEFjdGl2ZURvdCgpfX1zZXRBY3RpdmVEb3QoKXtpZighdGhpcy4kbGlzdClyZXR1cm47dGhpcy4kbGlzdC5jaGlsZE5vZGVzLmZvckVhY2goKHQ9Pnt0LmNsYXNzTGlzdC5yZW1vdmUoImlzLXNlbGVjdGVkIil9KSk7Y29uc3QgdD10aGlzLiRsaXN0LmNoaWxkTm9kZXNbdGhpcy5jYXJvdXNlbC5wYWdlXTt0JiZ0LmNsYXNzTGlzdC5hZGQoImlzLXNlbGVjdGVkIil9b25DaGFuZ2UoKXt0aGlzLnNldEFjdGl2ZURvdCgpfW9uUmVmcmVzaCgpe3RoaXMucmVidWlsZERvdHMoKX1hdHRhY2goKXt0aGlzLmNhcm91c2VsLm9uKHRoaXMuZXZlbnRzKX1kZXRhY2goKXt0aGlzLnJlbW92ZUxpc3QoKSx0aGlzLmNhcm91c2VsLm9mZih0aGlzLmV2ZW50cyksdGhpcy5jYXJvdXNlbD1udWxsfX0sU3luYzp2fSxiPXtzbGlkZXM6W10scHJlbG9hZDowLHNsaWRlc1BlclBhZ2U6ImF1dG8iLGluaXRpYWxQYWdlOm51bGwsaW5pdGlhbFNsaWRlOm51bGwsZnJpY3Rpb246LjkyLGNlbnRlcjohMCxpbmZpbml0ZTohMCxmaWxsOiEwLGRyYWdGcmVlOiExLHByZWZpeDoiIixjbGFzc05hbWVzOnt2aWV3cG9ydDoiY2Fyb3VzZWxfX3ZpZXdwb3J0Iix0cmFjazoiY2Fyb3VzZWxfX3RyYWNrIixzbGlkZToiY2Fyb3VzZWxfX3NsaWRlIixzbGlkZVNlbGVjdGVkOiJpcy1zZWxlY3RlZCJ9LGwxMG46e05FWFQ6Ik5leHQgc2xpZGUiLFBSRVY6IlByZXZpb3VzIHNsaWRlIixHT1RPOiJHbyB0byBzbGlkZSAjJWQifX07Y2xhc3MgeSBleHRlbmRzIHV7Y29uc3RydWN0b3IodCxlPXt9KXtpZihzdXBlcihlPWEoITAse30sYixlKSksdGhpcy5zdGF0ZT0iaW5pdCIsdGhpcy4kY29udGFpbmVyPXQsISh0aGlzLiRjb250YWluZXIgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpdGhyb3cgbmV3IEVycm9yKCJObyByb290IGVsZW1lbnQgcHJvdmlkZWQiKTt0aGlzLnNsaWRlTmV4dD1mKHRoaXMuc2xpZGVOZXh0LmJpbmQodGhpcyksMjUwKSx0aGlzLnNsaWRlUHJldj1mKHRoaXMuc2xpZGVQcmV2LmJpbmQodGhpcyksMjUwKSx0aGlzLmluaXQoKSx0Ll9fQ2Fyb3VzZWw9dGhpc31pbml0KCl7dGhpcy5wYWdlcz1bXSx0aGlzLnBhZ2U9dGhpcy5wYWdlSW5kZXg9bnVsbCx0aGlzLnByZXZQYWdlPXRoaXMucHJldlBhZ2VJbmRleD1udWxsLHRoaXMuYXR0YWNoUGx1Z2lucyh5LlBsdWdpbnMpLHRoaXMudHJpZ2dlcigiaW5pdCIpLHRoaXMuaW5pdExheW91dCgpLHRoaXMuaW5pdFNsaWRlcygpLHRoaXMudXBkYXRlTWV0cmljcygpLHRoaXMuJHRyYWNrJiZ0aGlzLnBhZ2VzLmxlbmd0aCYmKHRoaXMuJHRyYWNrLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlM2QoJHstMSp0aGlzLnBhZ2VzW3RoaXMucGFnZV0ubGVmdH1weCwgMHB4LCAwKSBzY2FsZSgxKWApLHRoaXMubWFuYWdlU2xpZGVWaXNpYmxpdHkoKSx0aGlzLmluaXRQYW56b29tKCksdGhpcy5zdGF0ZT0icmVhZHkiLHRoaXMudHJpZ2dlcigicmVhZHkiKX1pbml0TGF5b3V0KCl7Y29uc3QgdD10aGlzLm9wdGlvbigicHJlZml4IiksZT10aGlzLm9wdGlvbigiY2xhc3NOYW1lcyIpO3RoaXMuJHZpZXdwb3J0PXRoaXMub3B0aW9uKCJ2aWV3cG9ydCIpfHx0aGlzLiRjb250YWluZXIucXVlcnlTZWxlY3RvcihgLiR7dH0ke2Uudmlld3BvcnR9YCksdGhpcy4kdmlld3BvcnR8fCh0aGlzLiR2aWV3cG9ydD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLiR2aWV3cG9ydC5jbGFzc0xpc3QuYWRkKC4uLih0K2Uudmlld3BvcnQpLnNwbGl0KCIgIikpLHRoaXMuJHZpZXdwb3J0LmFwcGVuZCguLi50aGlzLiRjb250YWluZXIuY2hpbGROb2RlcyksdGhpcy4kY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuJHZpZXdwb3J0KSksdGhpcy4kdHJhY2s9dGhpcy5vcHRpb24oInRyYWNrIil8fHRoaXMuJGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKGAuJHt0fSR7ZS50cmFja31gKSx0aGlzLiR0cmFja3x8KHRoaXMuJHRyYWNrPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuJHRyYWNrLmNsYXNzTGlzdC5hZGQoLi4uKHQrZS50cmFjaykuc3BsaXQoIiAiKSksdGhpcy4kdHJhY2suYXBwZW5kKC4uLnRoaXMuJHZpZXdwb3J0LmNoaWxkTm9kZXMpLHRoaXMuJHZpZXdwb3J0LmFwcGVuZENoaWxkKHRoaXMuJHRyYWNrKSl9aW5pdFNsaWRlcygpe3RoaXMuc2xpZGVzPVtdLHRoaXMuJHZpZXdwb3J0LnF1ZXJ5U2VsZWN0b3JBbGwoYC4ke3RoaXMub3B0aW9uKCJwcmVmaXgiKX0ke3RoaXMub3B0aW9uKCJjbGFzc05hbWVzLnNsaWRlIil9YCkuZm9yRWFjaCgodD0+e2NvbnN0IGU9eyRlbDp0LGlzRG9tOiEwfTt0aGlzLnNsaWRlcy5wdXNoKGUpLHRoaXMudHJpZ2dlcigiY3JlYXRlU2xpZGUiLGUsdGhpcy5zbGlkZXMubGVuZ3RoKX0pKSxBcnJheS5pc0FycmF5KHRoaXMub3B0aW9ucy5zbGlkZXMpJiYodGhpcy5zbGlkZXM9YSghMCxbLi4udGhpcy5zbGlkZXNdLHRoaXMub3B0aW9ucy5zbGlkZXMpKX11cGRhdGVNZXRyaWNzKCl7bGV0IHQsZT0wLGk9W107dGhpcy5zbGlkZXMuZm9yRWFjaCgoKHMsYSk9Pntjb25zdCBuPXMuJGVsLHI9cy5pc0RvbXx8IXQ/dGhpcy5nZXRTbGlkZU1ldHJpY3Mobik6dDtzLmluZGV4PWEscy53aWR0aD1yLHMubGVmdD1lLHQ9cixlKz1yLGkucHVzaChhKX0pKTtsZXQgcz1NYXRoLm1heCh0aGlzLiR0cmFjay5vZmZzZXRXaWR0aCxuKHRoaXMuJHRyYWNrLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKSksYT1nZXRDb21wdXRlZFN0eWxlKHRoaXMuJHRyYWNrKTtzLT1wYXJzZUZsb2F0KGEucGFkZGluZ0xlZnQpK3BhcnNlRmxvYXQoYS5wYWRkaW5nUmlnaHQpLHRoaXMuY29udGVudFdpZHRoPWUsdGhpcy52aWV3cG9ydFdpZHRoPXM7Y29uc3Qgcj1bXSxvPXRoaXMub3B0aW9uKCJzbGlkZXNQZXJQYWdlIik7aWYoTnVtYmVyLmlzSW50ZWdlcihvKSYmZT5zKWZvcihsZXQgdD0wO3Q8dGhpcy5zbGlkZXMubGVuZ3RoO3QrPW8pci5wdXNoKHtpbmRleGVzOmkuc2xpY2UodCx0K28pLHNsaWRlczp0aGlzLnNsaWRlcy5zbGljZSh0LHQrbyl9KTtlbHNle2xldCB0PTAsZT0wO2ZvcihsZXQgaT0wO2k8dGhpcy5zbGlkZXMubGVuZ3RoO2krPTEpe2xldCBhPXRoaXMuc2xpZGVzW2ldOyghci5sZW5ndGh8fGUrYS53aWR0aD5zKSYmKHIucHVzaCh7aW5kZXhlczpbXSxzbGlkZXM6W119KSx0PXIubGVuZ3RoLTEsZT0wKSxlKz1hLndpZHRoLHJbdF0uaW5kZXhlcy5wdXNoKGkpLHJbdF0uc2xpZGVzLnB1c2goYSl9fWNvbnN0IGw9dGhpcy5vcHRpb24oImNlbnRlciIpLGM9dGhpcy5vcHRpb24oImZpbGwiKTtyLmZvckVhY2goKCh0LGkpPT57dC5pbmRleD1pLHQud2lkdGg9dC5zbGlkZXMucmVkdWNlKCgodCxlKT0+dCtlLndpZHRoKSwwKSx0LmxlZnQ9dC5zbGlkZXNbMF0ubGVmdCxsJiYodC5sZWZ0Kz0uNSoocy10LndpZHRoKSotMSksYyYmIXRoaXMub3B0aW9uKCJpbmZpbml0ZVgiLHRoaXMub3B0aW9uKCJpbmZpbml0ZSIpKSYmZT5zJiYodC5sZWZ0PU1hdGgubWF4KHQubGVmdCwwKSx0LmxlZnQ9TWF0aC5taW4odC5sZWZ0LGUtcykpfSkpO2NvbnN0IGg9W107bGV0IGQ7ci5mb3JFYWNoKCh0PT57Y29uc3QgZT17Li4udH07ZCYmZS5sZWZ0PT09ZC5sZWZ0PyhkLndpZHRoKz1lLndpZHRoLGQuc2xpZGVzPVsuLi5kLnNsaWRlcywuLi5lLnNsaWRlc10sZC5pbmRleGVzPVsuLi5kLmluZGV4ZXMsLi4uZS5pbmRleGVzXSk6KGUuaW5kZXg9aC5sZW5ndGgsZD1lLGgucHVzaChlKSl9KSksdGhpcy5wYWdlcz1oO2xldCB1PXRoaXMucGFnZTtpZihudWxsPT09dSl7Y29uc3QgdD10aGlzLm9wdGlvbigiaW5pdGlhbFNsaWRlIik7dT1udWxsIT09dD90aGlzLmZpbmRQYWdlRm9yU2xpZGUodCk6cGFyc2VJbnQodGhpcy5vcHRpb24oImluaXRpYWxQYWdlIiwwKSwxMCl8fDAsaFt1XXx8KHU9aC5sZW5ndGgmJnU+aC5sZW5ndGg/aFtoLmxlbmd0aC0xXS5pbmRleDowKSx0aGlzLnBhZ2U9dSx0aGlzLnBhZ2VJbmRleD11fXRoaXMudXBkYXRlUGFuem9vbSgpLHRoaXMudHJpZ2dlcigicmVmcmVzaCIpfWdldFNsaWRlTWV0cmljcyh0KXtpZighdCl7Y29uc3QgZT10aGlzLnNsaWRlc1swXTsodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuZGF0YXNldC5pc1Rlc3RFbD0xLHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIix0LmNsYXNzTGlzdC5hZGQoLi4uKHRoaXMub3B0aW9uKCJwcmVmaXgiKSt0aGlzLm9wdGlvbigiY2xhc3NOYW1lcy5zbGlkZSIpKS5zcGxpdCgiICIpKSxlLmN1c3RvbUNsYXNzJiZ0LmNsYXNzTGlzdC5hZGQoLi4uZS5jdXN0b21DbGFzcy5zcGxpdCgiICIpKSx0aGlzLiR0cmFjay5wcmVwZW5kKHQpfWxldCBlPU1hdGgubWF4KHQub2Zmc2V0V2lkdGgsbih0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKSk7Y29uc3QgaT10LmN1cnJlbnRTdHlsZXx8d2luZG93LmdldENvbXB1dGVkU3R5bGUodCk7cmV0dXJuIGU9ZSsocGFyc2VGbG9hdChpLm1hcmdpbkxlZnQpfHwwKSsocGFyc2VGbG9hdChpLm1hcmdpblJpZ2h0KXx8MCksdC5kYXRhc2V0LmlzVGVzdEVsJiZ0LnJlbW92ZSgpLGV9ZmluZFBhZ2VGb3JTbGlkZSh0KXt0PXBhcnNlSW50KHQsMTApfHwwO2NvbnN0IGU9dGhpcy5wYWdlcy5maW5kKChlPT5lLmluZGV4ZXMuaW5kZXhPZih0KT4tMSkpO3JldHVybiBlP2UuaW5kZXg6bnVsbH1zbGlkZU5leHQoKXt0aGlzLnNsaWRlVG8odGhpcy5wYWdlSW5kZXgrMSl9c2xpZGVQcmV2KCl7dGhpcy5zbGlkZVRvKHRoaXMucGFnZUluZGV4LTEpfXNsaWRlVG8odCxlPXt9KXtjb25zdHt4Omk9LTEqdGhpcy5zZXRQYWdlKHQsITApLHk6cz0wLGZyaWN0aW9uOmE9dGhpcy5vcHRpb24oImZyaWN0aW9uIil9PWU7dGhpcy5QYW56b29tLmNvbnRlbnQueD09PWkmJiF0aGlzLlBhbnpvb20udmVsb2NpdHkueCYmYXx8KHRoaXMuUGFuem9vbS5wYW5Ubyh7eDppLHk6cyxmcmljdGlvbjphLGlnbm9yZUJvdW5kczohMH0pLCJyZWFkeSI9PT10aGlzLnN0YXRlJiYicmVhZHkiPT09dGhpcy5QYW56b29tLnN0YXRlJiZ0aGlzLnRyaWdnZXIoInNldHRsZSIpKX1pbml0UGFuem9vbSgpe3RoaXMuUGFuem9vbSYmdGhpcy5QYW56b29tLmRlc3Ryb3koKTtjb25zdCB0PWEoITAse30se2NvbnRlbnQ6dGhpcy4kdHJhY2ssd3JhcElubmVyOiExLHJlc2l6ZVBhcmVudDohMSx6b29tOiExLGNsaWNrOiExLGxvY2tBeGlzOiJ4Iix4OnRoaXMucGFnZXMubGVuZ3RoPy0xKnRoaXMucGFnZXNbdGhpcy5wYWdlXS5sZWZ0OjAsY2VudGVyT25TdGFydDohMSx0ZXh0U2VsZWN0aW9uOigpPT50aGlzLm9wdGlvbigidGV4dFNlbGVjdGlvbiIsITEpLHBhbk9ubHlab29tZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZW50LndpZHRoPD10aGlzLnZpZXdwb3J0LndpZHRofX0sdGhpcy5vcHRpb24oIlBhbnpvb20iKSk7dGhpcy5QYW56b29tPW5ldyBnKHRoaXMuJGNvbnRhaW5lcix0KSx0aGlzLlBhbnpvb20ub24oeyIqIjoodCwuLi5lKT0+dGhpcy50cmlnZ2VyKGBQYW56b29tLiR7dH1gLC4uLmUpLGFmdGVyVXBkYXRlOigpPT57dGhpcy51cGRhdGVQYWdlKCl9LGJlZm9yZVRyYW5zZm9ybTp0aGlzLm9uQmVmb3JlVHJhbnNmb3JtLmJpbmQodGhpcyksdG91Y2hFbmQ6dGhpcy5vblRvdWNoRW5kLmJpbmQodGhpcyksZW5kQW5pbWF0aW9uOigpPT57dGhpcy50cmlnZ2VyKCJzZXR0bGUiKX19KSx0aGlzLnVwZGF0ZU1ldHJpY3MoKSx0aGlzLm1hbmFnZVNsaWRlVmlzaWJsaXR5KCl9dXBkYXRlUGFuem9vbSgpe3RoaXMuUGFuem9vbSYmKHRoaXMuUGFuem9vbS5jb250ZW50PXsuLi50aGlzLlBhbnpvb20uY29udGVudCxmaXRXaWR0aDp0aGlzLmNvbnRlbnRXaWR0aCxvcmlnV2lkdGg6dGhpcy5jb250ZW50V2lkdGgsd2lkdGg6dGhpcy5jb250ZW50V2lkdGh9LHRoaXMucGFnZXMubGVuZ3RoPjEmJnRoaXMub3B0aW9uKCJpbmZpbml0ZVgiLHRoaXMub3B0aW9uKCJpbmZpbml0ZSIpKT90aGlzLlBhbnpvb20uYm91bmRYPW51bGw6dGhpcy5wYWdlcy5sZW5ndGgmJih0aGlzLlBhbnpvb20uYm91bmRYPXtmcm9tOi0xKnRoaXMucGFnZXNbdGhpcy5wYWdlcy5sZW5ndGgtMV0ubGVmdCx0bzotMSp0aGlzLnBhZ2VzWzBdLmxlZnR9KSx0aGlzLm9wdGlvbigiaW5maW5pdGVZIix0aGlzLm9wdGlvbigiaW5maW5pdGUiKSk/dGhpcy5QYW56b29tLmJvdW5kWT1udWxsOnRoaXMuUGFuem9vbS5ib3VuZFk9e2Zyb206MCx0bzowfSx0aGlzLlBhbnpvb20uaGFuZGxlQ3Vyc29yKCkpfW1hbmFnZVNsaWRlVmlzaWJsaXR5KCl7Y29uc3QgdD10aGlzLmNvbnRlbnRXaWR0aCxlPXRoaXMudmlld3BvcnRXaWR0aDtsZXQgaT10aGlzLlBhbnpvb20/LTEqdGhpcy5QYW56b29tLmNvbnRlbnQueDp0aGlzLnBhZ2VzLmxlbmd0aD90aGlzLnBhZ2VzW3RoaXMucGFnZV0ubGVmdDowO2NvbnN0IHM9dGhpcy5vcHRpb24oInByZWxvYWQiKSxhPXRoaXMub3B0aW9uKCJpbmZpbml0ZVgiLHRoaXMub3B0aW9uKCJpbmZpbml0ZSIpKSxuPXBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLiR2aWV3cG9ydCxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJwYWRkaW5nLWxlZnQiKSkscj1wYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUodGhpcy4kdmlld3BvcnQsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgicGFkZGluZy1yaWdodCIpKTt0aGlzLnNsaWRlcy5mb3JFYWNoKChvPT57bGV0IGwsYyxoPTA7bD1pLW4sYz1pK2UrcixsLT1zKihlK24rciksYys9cyooZStuK3IpO2NvbnN0IGQ9by5sZWZ0K28ud2lkdGg+bCYmby5sZWZ0PGM7bD1pK3QtbixjPWkrdCtlK3IsbC09cyooZStuK3IpO2NvbnN0IHU9YSYmby5sZWZ0K28ud2lkdGg+bCYmby5sZWZ0PGM7bD1pLXQtbixjPWktdCtlK3IsbC09cyooZStuK3IpO2NvbnN0IHA9YSYmby5sZWZ0K28ud2lkdGg+bCYmby5sZWZ0PGM7dXx8ZHx8cD8odGhpcy5jcmVhdGVTbGlkZUVsKG8pLGQmJihoPTApLHUmJihoPS0xKSxwJiYoaD0xKSxvLmxlZnQrby53aWR0aD5pJiZvLmxlZnQ8PWkrZStyJiYoaD0wKSk6dGhpcy5yZW1vdmVTbGlkZUVsKG8pLG8uaGFzRGlmZj1ofSkpO2xldCBvPTAsbD0wO3RoaXMuc2xpZGVzLmZvckVhY2goKChlLGkpPT57bGV0IHM9MDtlLiRlbD8oaSE9PW98fGUuaGFzRGlmZj9zPWwrZS5oYXNEaWZmKnQ6bD0wLGUuJGVsLnN0eWxlLmxlZnQ9TWF0aC5hYnMocyk+LjE/YCR7bCtlLmhhc0RpZmYqdH1weGA6IiIsbysrKTpsKz1lLndpZHRofSkpLHRoaXMubWFya1NlbGVjdGVkU2xpZGVzKCl9Y3JlYXRlU2xpZGVFbCh0KXtpZighdClyZXR1cm47aWYodC4kZWwpe2xldCBlPXQuJGVsLmRhdGFzZXQuaW5kZXg7aWYoIWV8fHBhcnNlSW50KGUsMTApIT09dC5pbmRleCl7bGV0IGU7dC4kZWwuZGF0YXNldC5pbmRleD10LmluZGV4LHQuJGVsLnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWxhenktc3Jjc2V0XSIpLmZvckVhY2goKHQ9Pnt0LnNyY3NldD10LmRhdGFzZXQubGF6eVNyY3NldH0pKSx0LiRlbC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1sYXp5LXNyY10iKS5mb3JFYWNoKCh0PT57bGV0IGU9dC5kYXRhc2V0LmxhenlTcmM7dCBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQ/dC5zcmM9ZTp0LnN0eWxlLmJhY2tncm91bmRJbWFnZT1gdXJsKCcke2V9JylgfSkpLChlPXQuJGVsLmRhdGFzZXQubGF6eVNyYykmJih0LiRlbC5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9YHVybCgnJHtlfScpYCksdC5zdGF0ZT0icmVhZHkifXJldHVybn1jb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuZGF0YXNldC5pbmRleD10LmluZGV4LGUuY2xhc3NMaXN0LmFkZCguLi4odGhpcy5vcHRpb24oInByZWZpeCIpK3RoaXMub3B0aW9uKCJjbGFzc05hbWVzLnNsaWRlIikpLnNwbGl0KCIgIikpLHQuY3VzdG9tQ2xhc3MmJmUuY2xhc3NMaXN0LmFkZCguLi50LmN1c3RvbUNsYXNzLnNwbGl0KCIgIikpLHQuaHRtbCYmKGUuaW5uZXJIVE1MPXQuaHRtbCk7Y29uc3QgaT1bXTt0aGlzLnNsaWRlcy5mb3JFYWNoKCgodCxlKT0+e3QuJGVsJiZpLnB1c2goZSl9KSk7Y29uc3Qgcz10LmluZGV4O2xldCBhPW51bGw7aWYoaS5sZW5ndGgpe2xldCB0PWkucmVkdWNlKCgodCxlKT0+TWF0aC5hYnMoZS1zKTxNYXRoLmFicyh0LXMpP2U6dCkpO2E9dGhpcy5zbGlkZXNbdF19cmV0dXJuIHRoaXMuJHRyYWNrLmluc2VydEJlZm9yZShlLGEmJmEuJGVsP2EuaW5kZXg8dC5pbmRleD9hLiRlbC5uZXh0U2libGluZzphLiRlbDpudWxsKSx0LiRlbD1lLHRoaXMudHJpZ2dlcigiY3JlYXRlU2xpZGUiLHQscyksdH1yZW1vdmVTbGlkZUVsKHQpe3QuJGVsJiYhdC5pc0RvbSYmKHRoaXMudHJpZ2dlcigicmVtb3ZlU2xpZGUiLHQpLHQuJGVsLnJlbW92ZSgpLHQuJGVsPW51bGwpfW1hcmtTZWxlY3RlZFNsaWRlcygpe2NvbnN0IHQ9dGhpcy5vcHRpb24oImNsYXNzTmFtZXMuc2xpZGVTZWxlY3RlZCIpLGU9ImFyaWEtaGlkZGVuIjt0aGlzLnNsaWRlcy5mb3JFYWNoKCgoaSxzKT0+e2NvbnN0IGE9aS4kZWw7aWYoIWEpcmV0dXJuO2NvbnN0IG49dGhpcy5wYWdlc1t0aGlzLnBhZ2VdO24mJm4uaW5kZXhlcyYmbi5pbmRleGVzLmluZGV4T2Yocyk+LTE/KHQmJiFhLmNsYXNzTGlzdC5jb250YWlucyh0KSYmKGEuY2xhc3NMaXN0LmFkZCh0KSx0aGlzLnRyaWdnZXIoInNlbGVjdFNsaWRlIixpKSksYS5yZW1vdmVBdHRyaWJ1dGUoZSkpOih0JiZhLmNsYXNzTGlzdC5jb250YWlucyh0KSYmKGEuY2xhc3NMaXN0LnJlbW92ZSh0KSx0aGlzLnRyaWdnZXIoInVuc2VsZWN0U2xpZGUiLGkpKSxhLnNldEF0dHJpYnV0ZShlLCEwKSl9KSl9dXBkYXRlUGFnZSgpe3RoaXMudXBkYXRlTWV0cmljcygpLHRoaXMuc2xpZGVUbyh0aGlzLnBhZ2Use2ZyaWN0aW9uOjB9KX1vbkJlZm9yZVRyYW5zZm9ybSgpe3RoaXMub3B0aW9uKCJpbmZpbml0ZVgiLHRoaXMub3B0aW9uKCJpbmZpbml0ZSIpKSYmdGhpcy5tYW5hZ2VJbmZpbml0ZVRyYWNrKCksdGhpcy5tYW5hZ2VTbGlkZVZpc2libGl0eSgpfW1hbmFnZUluZmluaXRlVHJhY2soKXtjb25zdCB0PXRoaXMuY29udGVudFdpZHRoLGU9dGhpcy52aWV3cG9ydFdpZHRoO2lmKCF0aGlzLm9wdGlvbigiaW5maW5pdGVYIix0aGlzLm9wdGlvbigiaW5maW5pdGUiKSl8fHRoaXMucGFnZXMubGVuZ3RoPDJ8fHQ8ZSlyZXR1cm47Y29uc3QgaT10aGlzLlBhbnpvb207bGV0IHM9ITE7cmV0dXJuIGkuY29udGVudC54PC0xKih0LWUpJiYoaS5jb250ZW50LngrPXQsdGhpcy5wYWdlSW5kZXg9dGhpcy5wYWdlSW5kZXgtdGhpcy5wYWdlcy5sZW5ndGgscz0hMCksaS5jb250ZW50Lng+ZSYmKGkuY29udGVudC54LT10LHRoaXMucGFnZUluZGV4PXRoaXMucGFnZUluZGV4K3RoaXMucGFnZXMubGVuZ3RoLHM9ITApLHMmJiJwb2ludGVyZG93biI9PT1pLnN0YXRlJiZpLnJlc2V0RHJhZ1Bvc2l0aW9uKCksc31vblRvdWNoRW5kKHQsZSl7Y29uc3QgaT10aGlzLm9wdGlvbigiZHJhZ0ZyZWUiKTtpZighaSYmdGhpcy5wYWdlcy5sZW5ndGg+MSYmdC5kcmFnT2Zmc2V0LnRpbWU8MzUwJiZNYXRoLmFicyh0LmRyYWdPZmZzZXQueSk8MSYmTWF0aC5hYnModC5kcmFnT2Zmc2V0LngpPjUpdGhpc1t0LmRyYWdPZmZzZXQueDwwPyJzbGlkZU5leHQiOiJzbGlkZVByZXYiXSgpO2Vsc2UgaWYoaSl7Y29uc3RbLGVdPXRoaXMuZ2V0UGFnZUZyb21Qb3NpdGlvbigtMSp0LnRyYW5zZm9ybS54KTt0aGlzLnNldFBhZ2UoZSl9ZWxzZSB0aGlzLnNsaWRlVG9DbG9zZXN0KCl9c2xpZGVUb0Nsb3Nlc3QodD17fSl7bGV0WyxlXT10aGlzLmdldFBhZ2VGcm9tUG9zaXRpb24oLTEqdGhpcy5QYW56b29tLmNvbnRlbnQueCk7dGhpcy5zbGlkZVRvKGUsdCl9Z2V0UGFnZUZyb21Qb3NpdGlvbih0KXtjb25zdCBlPXRoaXMucGFnZXMubGVuZ3RoO3RoaXMub3B0aW9uKCJjZW50ZXIiKSYmKHQrPS41KnRoaXMudmlld3BvcnRXaWR0aCk7Y29uc3QgaT1NYXRoLmZsb29yKHQvdGhpcy5jb250ZW50V2lkdGgpO3QtPWkqdGhpcy5jb250ZW50V2lkdGg7bGV0IHM9dGhpcy5zbGlkZXMuZmluZCgoZT0+ZS5sZWZ0PD10JiZlLmxlZnQrZS53aWR0aD50KSk7aWYocyl7bGV0IHQ9dGhpcy5maW5kUGFnZUZvclNsaWRlKHMuaW5kZXgpO3JldHVyblt0LHQraSplXX1yZXR1cm5bMCwwXX1zZXRQYWdlKHQsZSl7bGV0IGk9MCxzPXBhcnNlSW50KHQsMTApfHwwO2NvbnN0IGE9dGhpcy5wYWdlLG49dGhpcy5wYWdlSW5kZXgscj10aGlzLnBhZ2VzLmxlbmd0aCxvPXRoaXMuY29udGVudFdpZHRoLGw9dGhpcy52aWV3cG9ydFdpZHRoO2lmKHQ9KHMlcityKSVyLHRoaXMub3B0aW9uKCJpbmZpbml0ZVgiLHRoaXMub3B0aW9uKCJpbmZpbml0ZSIpKSYmbz5sKXtjb25zdCBhPU1hdGguZmxvb3Iocy9yKXx8MCxuPW87aWYoaT10aGlzLnBhZ2VzW3RdLmxlZnQrYSpuLCEwPT09ZSYmcj4yKXtsZXQgdD0tMSp0aGlzLlBhbnpvb20uY29udGVudC54O2NvbnN0IGU9aS1uLGE9aStuLG89TWF0aC5hYnModC1pKSxsPU1hdGguYWJzKHQtZSksYz1NYXRoLmFicyh0LWEpO2M8byYmYzw9bD8oaT1hLHMrPXIpOmw8byYmbDxjJiYoaT1lLHMtPXIpfX1lbHNlIHQ9cz1NYXRoLm1heCgwLE1hdGgubWluKHMsci0xKSksaT10aGlzLnBhZ2VzLmxlbmd0aD90aGlzLnBhZ2VzW3RdLmxlZnQ6MDtyZXR1cm4gdGhpcy5wYWdlPXQsdGhpcy5wYWdlSW5kZXg9cyxudWxsIT09YSYmdCE9PWEmJih0aGlzLnByZXZQYWdlPWEsdGhpcy5wcmV2UGFnZUluZGV4PW4sdGhpcy50cmlnZ2VyKCJjaGFuZ2UiLHQsYSkpLGl9ZGVzdHJveSgpe3RoaXMuc3RhdGU9ImRlc3Ryb3kiLHRoaXMuc2xpZGVzLmZvckVhY2goKHQ9Pnt0aGlzLnJlbW92ZVNsaWRlRWwodCl9KSksdGhpcy5zbGlkZXM9W10sdGhpcy5QYW56b29tLmRlc3Ryb3koKSx0aGlzLmRldGFjaFBsdWdpbnMoKX19eS52ZXJzaW9uPSI0LjAuMzEiLHkuUGx1Z2lucz14O2NvbnN0IHc9ISgidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvd3x8IXdpbmRvdy5kb2N1bWVudHx8IXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KTtsZXQgaz1udWxsO2NvbnN0IFM9WyJhW2hyZWZdIiwiYXJlYVtocmVmXSIsJ2lucHV0Om5vdChbZGlzYWJsZWRdKTpub3QoW3R5cGU9ImhpZGRlbiJdKTpub3QoW2FyaWEtaGlkZGVuXSknLCJzZWxlY3Q6bm90KFtkaXNhYmxlZF0pOm5vdChbYXJpYS1oaWRkZW5dKSIsInRleHRhcmVhOm5vdChbZGlzYWJsZWRdKTpub3QoW2FyaWEtaGlkZGVuXSkiLCJidXR0b246bm90KFtkaXNhYmxlZF0pOm5vdChbYXJpYS1oaWRkZW5dKSIsImlmcmFtZSIsIm9iamVjdCIsImVtYmVkIiwidmlkZW8iLCJhdWRpbyIsIltjb250ZW50ZWRpdGFibGVdIiwnW3RhYmluZGV4XTpub3QoW3RhYmluZGV4Xj0iLSJdKTpub3QoW2Rpc2FibGVkXSk6bm90KFthcmlhLWhpZGRlbl0pJ10sQz10PT57aWYodCYmdyl7bnVsbD09PWsmJmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLmZvY3VzKHtnZXQgcHJldmVudFNjcm9sbCgpe3JldHVybiBrPSEwLCExfX0pO3RyeXtpZih0LnNldEFjdGl2ZSl0LnNldEFjdGl2ZSgpO2Vsc2UgaWYoayl0LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk7ZWxzZXtjb25zdCBlPXdpbmRvdy5wYWdlWE9mZnNldHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AsaT13aW5kb3cucGFnZVlPZmZzZXR8fGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdDt0LmZvY3VzKCksZG9jdW1lbnQuYm9keS5zY3JvbGxUbyh7dG9wOmUsbGVmdDppLGJlaGF2aW9yOiJhdXRvIn0pfX1jYXRjaCh0KXt9fX07Y2xhc3MgQXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmZhbmN5Ym94PXQsdGhpcy4kY29udGFpbmVyPW51bGwsdGhpcy5zdGF0ZT0iaW5pdCI7Zm9yKGNvbnN0IHQgb2ZbIm9uUHJlcGFyZSIsIm9uQ2xvc2luZyIsIm9uS2V5ZG93biJdKXRoaXNbdF09dGhpc1t0XS5iaW5kKHRoaXMpO3RoaXMuZXZlbnRzPXtwcmVwYXJlOnRoaXMub25QcmVwYXJlLGNsb3Npbmc6dGhpcy5vbkNsb3Npbmcsa2V5ZG93bjp0aGlzLm9uS2V5ZG93bn19b25QcmVwYXJlKCl7dGhpcy5nZXRTbGlkZXMoKS5sZW5ndGg8dGhpcy5mYW5jeWJveC5vcHRpb24oIlRodW1icy5taW5TbGlkZUNvdW50Iik/dGhpcy5zdGF0ZT0iZGlzYWJsZWQiOiEwPT09dGhpcy5mYW5jeWJveC5vcHRpb24oIlRodW1icy5hdXRvU3RhcnQiKSYmdGhpcy5mYW5jeWJveC5DYXJvdXNlbC5QYW56b29tLmNvbnRlbnQuaGVpZ2h0Pj10aGlzLmZhbmN5Ym94Lm9wdGlvbigiVGh1bWJzLm1pblNjcmVlbkhlaWdodCIpJiZ0aGlzLmJ1aWxkKCl9b25DbG9zaW5nKCl7dGhpcy5DYXJvdXNlbCYmdGhpcy5DYXJvdXNlbC5QYW56b29tLmRldGFjaEV2ZW50cygpfW9uS2V5ZG93bih0LGUpe2U9PT10Lm9wdGlvbigiVGh1bWJzLmtleSIpJiZ0aGlzLnRvZ2dsZSgpfWJ1aWxkKCl7aWYodGhpcy4kY29udGFpbmVyKXJldHVybjtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NMaXN0LmFkZCgiZmFuY3lib3hfX3RodW1icyIpLHRoaXMuZmFuY3lib3guJGNhcm91c2VsLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQsdGhpcy5mYW5jeWJveC4kY2Fyb3VzZWwubmV4dFNpYmxpbmcpLHRoaXMuQ2Fyb3VzZWw9bmV3IHkodCxhKCEwLHtEb3RzOiExLE5hdmlnYXRpb246ITEsU3luYzp7ZnJpY3Rpb246MH0saW5maW5pdGU6ITEsY2VudGVyOiEwLGZpbGw6ITAsZHJhZ0ZyZWU6ITAsc2xpZGVzUGVyUGFnZToxLHByZWxvYWQ6MX0sdGhpcy5mYW5jeWJveC5vcHRpb24oIlRodW1icy5DYXJvdXNlbCIpLHtTeW5jOnt0YXJnZXQ6dGhpcy5mYW5jeWJveC5DYXJvdXNlbH0sc2xpZGVzOnRoaXMuZ2V0U2xpZGVzKCl9KSksdGhpcy5DYXJvdXNlbC5QYW56b29tLm9uKCJ3aGVlbCIsKCh0LGUpPT57ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZmFuY3lib3hbZS5kZWx0YVk8MD8icHJldiI6Im5leHQiXSgpfSkpLHRoaXMuJGNvbnRhaW5lcj10LHRoaXMuc3RhdGU9InZpc2libGUifWdldFNsaWRlcygpe2NvbnN0IHQ9W107Zm9yKGNvbnN0IGUgb2YgdGhpcy5mYW5jeWJveC5pdGVtcyl7Y29uc3QgaT1lLnRodW1iO2kmJnQucHVzaCh7aHRtbDp0aGlzLmZhbmN5Ym94Lm9wdGlvbigiVGh1bWJzLnRwbCIpLnJlcGxhY2UoL1x7XHtzcmNcfVx9L2dpLGkpLGN1c3RvbUNsYXNzOmBoYXMtdGh1bWIgaGFzLSR7ZS50eXBlfHwiaW1hZ2UifWB9KX1yZXR1cm4gdH10b2dnbGUoKXsidmlzaWJsZSI9PT10aGlzLnN0YXRlP3RoaXMuaGlkZSgpOiJoaWRkZW4iPT09dGhpcy5zdGF0ZT90aGlzLnNob3coKTp0aGlzLmJ1aWxkKCl9c2hvdygpeyJoaWRkZW4iPT09dGhpcy5zdGF0ZSYmKHRoaXMuJGNvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSIiLHRoaXMuQ2Fyb3VzZWwuUGFuem9vbS5hdHRhY2hFdmVudHMoKSx0aGlzLnN0YXRlPSJ2aXNpYmxlIil9aGlkZSgpeyJ2aXNpYmxlIj09PXRoaXMuc3RhdGUmJih0aGlzLkNhcm91c2VsLlBhbnpvb20uZGV0YWNoRXZlbnRzKCksdGhpcy4kY29udGFpbmVyLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuc3RhdGU9ImhpZGRlbiIpfWNsZWFudXAoKXt0aGlzLkNhcm91c2VsJiYodGhpcy5DYXJvdXNlbC5kZXN0cm95KCksdGhpcy5DYXJvdXNlbD1udWxsKSx0aGlzLiRjb250YWluZXImJih0aGlzLiRjb250YWluZXIucmVtb3ZlKCksdGhpcy4kY29udGFpbmVyPW51bGwpLHRoaXMuc3RhdGU9ImluaXQifWF0dGFjaCgpe3RoaXMuZmFuY3lib3gub24odGhpcy5ldmVudHMpfWRldGFjaCgpe3RoaXMuZmFuY3lib3gub2ZmKHRoaXMuZXZlbnRzKSx0aGlzLmNsZWFudXAoKX19QS5kZWZhdWx0cz17bWluU2xpZGVDb3VudDoyLG1pblNjcmVlbkhlaWdodDo1MDAsYXV0b1N0YXJ0OiEwLGtleToidCIsQ2Fyb3VzZWw6e30sdHBsOic8ZGl2IGNsYXNzPSJmYW5jeWJveF9fdGh1bWIiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOnVybChcJ3t7c3JjfX1cJykiPjwvZGl2Pid9O2NvbnN0IEU9KHQsZSk9Pntjb25zdCBpPW5ldyBVUkwodCkscz1uZXcgVVJMU2VhcmNoUGFyYW1zKGkuc2VhcmNoKTtsZXQgYT1uZXcgVVJMU2VhcmNoUGFyYW1zO2Zvcihjb25zdFt0LGldb2ZbLi4ucywuLi5PYmplY3QuZW50cmllcyhlKV0pInQiPT09dD9hLnNldCgic3RhcnQiLHBhcnNlSW50KGkpKTphLnNldCh0LGkpO2E9YS50b1N0cmluZygpO2xldCBuPXQubWF0Y2goLyN0PSgoLiopP1xkK3MpLyk7cmV0dXJuIG4mJihhKz1gI3Q9JHtuWzFdfWApLGF9LFQ9e3ZpZGVvOnthdXRvcGxheTohMCxyYXRpbzoxNi85fSx5b3V0dWJlOnthdXRvaGlkZToxLGZzOjEscmVsOjAsaGQ6MSx3bW9kZToidHJhbnNwYXJlbnQiLGVuYWJsZWpzYXBpOjEsaHRtbDU6MX0sdmltZW86e2hkOjEsc2hvd190aXRsZToxLHNob3dfYnlsaW5lOjEsc2hvd19wb3J0cmFpdDowLGZ1bGxzY3JlZW46MX0saHRtbDV2aWRlbzp7dHBsOic8dmlkZW8gY2xhc3M9ImZhbmN5Ym94X19odG1sNXZpZGVvIiBwbGF5c2lubGluZSBjb250cm9scyBjb250cm9sc0xpc3Q9Im5vZG93bmxvYWQiIHBvc3Rlcj0ie3twb3N0ZXJ9fSI+XG4gIDxzb3VyY2Ugc3JjPSJ7e3NyY319IiB0eXBlPSJ7e2Zvcm1hdH19IiAvPlNvcnJ5LCB5b3VyIGJyb3dzZXIgZG9lc25cJ3Qgc3VwcG9ydCBlbWJlZGRlZCB2aWRlb3MuPC92aWRlbz4nLGZvcm1hdDoiIn19O2NsYXNzIEx7Y29uc3RydWN0b3IodCl7dGhpcy5mYW5jeWJveD10O2Zvcihjb25zdCB0IG9mWyJvbkluaXQiLCJvblJlYWR5Iiwib25DcmVhdGVTbGlkZSIsIm9uUmVtb3ZlU2xpZGUiLCJvblNlbGVjdFNsaWRlIiwib25VbnNlbGVjdFNsaWRlIiwib25SZWZyZXNoIiwib25NZXNzYWdlIl0pdGhpc1t0XT10aGlzW3RdLmJpbmQodGhpcyk7dGhpcy5ldmVudHM9e2luaXQ6dGhpcy5vbkluaXQscmVhZHk6dGhpcy5vblJlYWR5LCJDYXJvdXNlbC5jcmVhdGVTbGlkZSI6dGhpcy5vbkNyZWF0ZVNsaWRlLCJDYXJvdXNlbC5yZW1vdmVTbGlkZSI6dGhpcy5vblJlbW92ZVNsaWRlLCJDYXJvdXNlbC5zZWxlY3RTbGlkZSI6dGhpcy5vblNlbGVjdFNsaWRlLCJDYXJvdXNlbC51bnNlbGVjdFNsaWRlIjp0aGlzLm9uVW5zZWxlY3RTbGlkZSwiQ2Fyb3VzZWwucmVmcmVzaCI6dGhpcy5vblJlZnJlc2h9fW9uSW5pdCgpe2Zvcihjb25zdCB0IG9mIHRoaXMuZmFuY3lib3guaXRlbXMpdGhpcy5wcm9jZXNzVHlwZSh0KX1wcm9jZXNzVHlwZSh0KXtpZih0Lmh0bWwpcmV0dXJuIHQuc3JjPXQuaHRtbCx0LnR5cGU9Imh0bWwiLHZvaWQgZGVsZXRlIHQuaHRtbDtjb25zdCBlPXQuc3JjfHwiIjtsZXQgaT10LnR5cGV8fHRoaXMuZmFuY3lib3gub3B0aW9ucy50eXBlLHM9bnVsbDtpZighZXx8InN0cmluZyI9PXR5cGVvZiBlKXtpZihzPWUubWF0Y2goLyg/OnlvdXR1YmVcLmNvbXx5b3V0dVwuYmV8eW91dHViZVwtbm9jb29raWVcLmNvbSlcLyg/OndhdGNoXD8oPzouKiYpP3Y9fHZcL3x1XC98ZW1iZWRcLz8pPyh2aWRlb3Nlcmllc1w/bGlzdD0oPzouKil8W1x3LV17MTF9fFw/bGlzdFR5cGU9KD86LiopJmxpc3Q9KD86LiopKSg/Oi4qKS9pKSl7Y29uc3QgYT1FKGUsdGhpcy5mYW5jeWJveC5vcHRpb24oIkh0bWwueW91dHViZSIpKSxuPWVuY29kZVVSSUNvbXBvbmVudChzWzFdKTt0LnZpZGVvSWQ9bix0LnNyYz1gaHR0cHM6Ly93d3cueW91dHViZS1ub2Nvb2tpZS5jb20vZW1iZWQvJHtufT8ke2F9YCx0LnRodW1iPXQudGh1bWJ8fGBodHRwczovL2kueXRpbWcuY29tL3ZpLyR7bn0vbXFkZWZhdWx0LmpwZ2AsdC52ZW5kb3I9InlvdXR1YmUiLGk9InZpZGVvIn1lbHNlIGlmKHM9ZS5tYXRjaCgvXi4rdmltZW8uY29tXC8oPzpcLyk/KFtcZF0rKSguKik/Lykpe2NvbnN0IGE9RShlLHRoaXMuZmFuY3lib3gub3B0aW9uKCJIdG1sLnZpbWVvIikpLG49ZW5jb2RlVVJJQ29tcG9uZW50KHNbMV0pO3QudmlkZW9JZD1uLHQuc3JjPWBodHRwczovL3BsYXllci52aW1lby5jb20vdmlkZW8vJHtufT8ke2F9YCx0LnZlbmRvcj0idmltZW8iLGk9InZpZGVvIn1lbHNlKHM9ZS5tYXRjaCgvKD86bWFwc1wuKT9nb29nbGVcLihbYS16XXsyLDN9KD86XC5bYS16XXsyfSk/KVwvKD86KD86KD86bWFwc1wvKD86cGxhY2VcLyg/Oi4qKVwvKT9cQCguKiksKFxkKy4/XGQrPyl6KSl8KD86XD9sbD0pKSguKik/L2kpKT8odC5zcmM9YC8vbWFwcy5nb29nbGUuJHtzWzFdfS8/bGw9JHsoc1syXT9zWzJdKyImej0iK01hdGguZmxvb3Ioc1szXSkrKHNbNF0/c1s0XS5yZXBsYWNlKC9eXC8vLCImIik6IiIpOnNbNF0rIiIpLnJlcGxhY2UoL1w/LywiJiIpfSZvdXRwdXQ9JHtzWzRdJiZzWzRdLmluZGV4T2YoImxheWVyPWMiKT4wPyJzdmVtYmVkIjoiZW1iZWQifWAsaT0ibWFwIik6KHM9ZS5tYXRjaCgvKD86bWFwc1wuKT9nb29nbGVcLihbYS16XXsyLDN9KD86XC5bYS16XXsyfSk/KVwvKD86bWFwc1wvc2VhcmNoXC8pKC4qKS9pKSkmJih0LnNyYz1gLy9tYXBzLmdvb2dsZS4ke3NbMV19L21hcHM/cT0ke3NbMl0ucmVwbGFjZSgicXVlcnk9IiwicT0iKS5yZXBsYWNlKCJhcGk9MSIsIiIpfSZvdXRwdXQ9ZW1iZWRgLGk9Im1hcCIpO2l8fCgiIyI9PT1lLmNoYXJBdCgwKT9pPSJpbmxpbmUiOihzPWUubWF0Y2goL1wuKG1wNHxtb3Z8b2d2fHdlYm0pKChcP3wjKS4qKT8kL2kpKT8oaT0iaHRtbDV2aWRlbyIsdC5mb3JtYXQ9dC5mb3JtYXR8fCJ2aWRlby8iKygib2d2Ij09PXNbMV0/Im9nZyI6c1sxXSkpOmUubWF0Y2goLyheZGF0YTppbWFnZVwvW2EtejAtOStcLz1dKiwpfChcLihqcChlfGd8ZWcpfGdpZnxwbmd8Ym1wfHdlYnB8c3ZnfGljbykoKFw/fCMpLiopPyQpL2kpP2k9ImltYWdlIjplLm1hdGNoKC9cLihwZGYpKChcP3wjKS4qKT8kL2kpJiYoaT0icGRmIikpLHQudHlwZT1pfHx0aGlzLmZhbmN5Ym94Lm9wdGlvbigiZGVmYXVsdFR5cGUiLCJpbWFnZSIpLCJodG1sNXZpZGVvIiE9PWkmJiJ2aWRlbyIhPT1pfHwodC52aWRlbz1hKHt9LHRoaXMuZmFuY3lib3gub3B0aW9uKCJIdG1sLnZpZGVvIiksdC52aWRlbyksdC5fd2lkdGgmJnQuX2hlaWdodD90LnJhdGlvPXBhcnNlRmxvYXQodC5fd2lkdGgpL3BhcnNlRmxvYXQodC5faGVpZ2h0KTp0LnJhdGlvPXQucmF0aW98fHQudmlkZW8ucmF0aW98fFQudmlkZW8ucmF0aW8pfX1vblJlYWR5KCl7dGhpcy5mYW5jeWJveC5DYXJvdXNlbC5zbGlkZXMuZm9yRWFjaCgodD0+e3QuJGVsJiYodGhpcy5zZXRDb250ZW50KHQpLHQuaW5kZXg9PT10aGlzLmZhbmN5Ym94LmdldFNsaWRlKCkuaW5kZXgmJnRoaXMucGxheVZpZGVvKHQpKX0pKX1vbkNyZWF0ZVNsaWRlKHQsZSxpKXsicmVhZHkiPT09dGhpcy5mYW5jeWJveC5zdGF0ZSYmdGhpcy5zZXRDb250ZW50KGkpfWxvYWRJbmxpbmVDb250ZW50KHQpe2xldCBlO2lmKHQuc3JjIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpZT10LnNyYztlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgdC5zcmMpe2NvbnN0IGk9dC5zcmMuc3BsaXQoIiMiLDIpLHM9Mj09PWkubGVuZ3RoJiYiIj09PWlbMF0/aVsxXTppWzBdO2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocyl9aWYoZSl7aWYoImNsb25lIj09PXQudHlwZXx8ZS4kcGxhY2VIb2xkZXIpe2U9ZS5jbG9uZU5vZGUoITApO2xldCBpPWUuZ2V0QXR0cmlidXRlKCJpZCIpO2k9aT9gJHtpfS0tY2xvbmVgOmBjbG9uZS0ke3RoaXMuZmFuY3lib3guaWR9LSR7dC5pbmRleH1gLGUuc2V0QXR0cmlidXRlKCJpZCIsaSl9ZWxzZXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NMaXN0LmFkZCgiZmFuY3lib3gtcGxhY2Vob2xkZXIiKSxlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQsZSksZS4kcGxhY2VIb2xkZXI9dH10aGlzLmZhbmN5Ym94LnNldENvbnRlbnQodCxlKX1lbHNlIHRoaXMuZmFuY3lib3guc2V0RXJyb3IodCwie3tFTEVNRU5UX05PVF9GT1VORH19Iil9bG9hZEFqYXhDb250ZW50KHQpe2NvbnN0IGU9dGhpcy5mYW5jeWJveCxpPW5ldyBYTUxIdHRwUmVxdWVzdDtlLnNob3dMb2FkaW5nKHQpLGkub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aS5yZWFkeVN0YXRlPT09WE1MSHR0cFJlcXVlc3QuRE9ORSYmInJlYWR5Ij09PWUuc3RhdGUmJihlLmhpZGVMb2FkaW5nKHQpLDIwMD09PWkuc3RhdHVzP2Uuc2V0Q29udGVudCh0LGkucmVzcG9uc2VUZXh0KTplLnNldEVycm9yKHQsNDA0PT09aS5zdGF0dXM/Int7QUpBWF9OT1RfRk9VTkR9fSI6Int7QUpBWF9GT1JCSURERU59fSIpKX07Y29uc3Qgcz10LmFqYXh8fG51bGw7aS5vcGVuKHM/IlBPU1QiOiJHRVQiLHQuc3JjKSxpLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpLGkuc2V0UmVxdWVzdEhlYWRlcigiWC1SZXF1ZXN0ZWQtV2l0aCIsIlhNTEh0dHBSZXF1ZXN0IiksaS5zZW5kKHMpLHQueGhyPWl9bG9hZElmcmFtZUNvbnRlbnQodCl7Y29uc3QgZT10aGlzLmZhbmN5Ym94LGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7aWYoaS5jbGFzc05hbWU9ImZhbmN5Ym94X19pZnJhbWUiLGkuc2V0QXR0cmlidXRlKCJpZCIsYGZhbmN5Ym94X19pZnJhbWVfJHtlLmlkfV8ke3QuaW5kZXh9YCksaS5zZXRBdHRyaWJ1dGUoImFsbG93IiwiYXV0b3BsYXk7IGZ1bGxzY3JlZW4iKSxpLnNldEF0dHJpYnV0ZSgic2Nyb2xsaW5nIiwiYXV0byIpLHQuJGlmcmFtZT1pLCJpZnJhbWUiIT09dC50eXBlfHwhMT09PXQucHJlbG9hZClyZXR1cm4gaS5zZXRBdHRyaWJ1dGUoInNyYyIsdC5zcmMpLHRoaXMuZmFuY3lib3guc2V0Q29udGVudCh0LGkpLHZvaWQgdGhpcy5yZXNpemVJZnJhbWUodCk7ZS5zaG93TG9hZGluZyh0KTtjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3Muc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIix0aGlzLmZhbmN5Ym94LnNldENvbnRlbnQodCxzKSxzLmFwcGVuZENoaWxkKGkpLGkub25lcnJvcj0oKT0+e2Uuc2V0RXJyb3IodCwie3tJRlJBTUVfRVJST1J9fSIpfSxpLm9ubG9hZD0oKT0+e2UuaGlkZUxvYWRpbmcodCk7bGV0IHM9ITE7aS5pc1JlYWR5fHwoaS5pc1JlYWR5PSEwLHM9ITApLGkuc3JjLmxlbmd0aCYmKGkucGFyZW50Tm9kZS5zdHlsZS52aXNpYmlsaXR5PSIiLHRoaXMucmVzaXplSWZyYW1lKHQpLHMmJmUucmV2ZWFsQ29udGVudCh0KSl9LGkuc2V0QXR0cmlidXRlKCJzcmMiLHQuc3JjKX1zZXRBc3BlY3RSYXRpbyh0KXtjb25zdCBlPXQuJGNvbnRlbnQsaT10LnJhdGlvO2lmKCFlKXJldHVybjtsZXQgcz10Ll93aWR0aCxhPXQuX2hlaWdodDtpZihpfHxzJiZhKXtPYmplY3QuYXNzaWduKGUuc3R5bGUse3dpZHRoOnMmJmE/IjEwMCUiOiIiLGhlaWdodDpzJiZhPyIxMDAlIjoiIixtYXhXaWR0aDoiIixtYXhIZWlnaHQ6IiJ9KTtsZXQgdD1lLm9mZnNldFdpZHRoLG49ZS5vZmZzZXRIZWlnaHQ7aWYocz1zfHx0LGE9YXx8bixzPnR8fGE+bil7bGV0IGU9TWF0aC5taW4odC9zLG4vYSk7cyo9ZSxhKj1lfU1hdGguYWJzKHMvYS1pKT4uMDEmJihpPHMvYT9zPWEqaTphPXMvaSksT2JqZWN0LmFzc2lnbihlLnN0eWxlLHt3aWR0aDpgJHtzfXB4YCxoZWlnaHQ6YCR7YX1weGB9KX19cmVzaXplSWZyYW1lKHQpe2NvbnN0IGU9dC4kaWZyYW1lO2lmKCFlKXJldHVybjtsZXQgaT10Ll93aWR0aHx8MCxzPXQuX2hlaWdodHx8MDtpJiZzJiYodC5hdXRvU2l6ZT0hMSk7Y29uc3QgYT1lLnBhcmVudE5vZGUsbj1hJiZhLnN0eWxlO2lmKCExIT09dC5wcmVsb2FkJiYhMSE9PXQuYXV0b1NpemUmJm4pdHJ5e2NvbnN0IHQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUoYSkscj1wYXJzZUZsb2F0KHQucGFkZGluZ0xlZnQpK3BhcnNlRmxvYXQodC5wYWRkaW5nUmlnaHQpLG89cGFyc2VGbG9hdCh0LnBhZGRpbmdUb3ApK3BhcnNlRmxvYXQodC5wYWRkaW5nQm90dG9tKSxsPWUuY29udGVudFdpbmRvdy5kb2N1bWVudCxjPWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKVswXSxoPWwuYm9keTtuLndpZHRoPSIiLGguc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsaT1pfHxjLnNjcm9sbFdpZHRoK3Isbi53aWR0aD1gJHtpfXB4YCxoLnN0eWxlLm92ZXJmbG93PSIiLG4uZmxleD0iMCAwIGF1dG8iLG4uaGVpZ2h0PWAke2guc2Nyb2xsSGVpZ2h0fXB4YCxzPWMuc2Nyb2xsSGVpZ2h0K299Y2F0Y2godCl7fWlmKGl8fHMpe2NvbnN0IHQ9e2ZsZXg6IjAgMSBhdXRvIn07aSYmKHQud2lkdGg9YCR7aX1weGApLHMmJih0LmhlaWdodD1gJHtzfXB4YCksT2JqZWN0LmFzc2lnbihuLHQpfX1vblJlZnJlc2godCxlKXtlLnNsaWRlcy5mb3JFYWNoKCh0PT57dC4kZWwmJih0LiRpZnJhbWUmJnRoaXMucmVzaXplSWZyYW1lKHQpLHQucmF0aW8mJnRoaXMuc2V0QXNwZWN0UmF0aW8odCkpfSkpfXNldENvbnRlbnQodCl7aWYodCYmIXQuaXNEb20pe3N3aXRjaCh0LnR5cGUpe2Nhc2UiaHRtbCI6dGhpcy5mYW5jeWJveC5zZXRDb250ZW50KHQsdC5zcmMpO2JyZWFrO2Nhc2UiaHRtbDV2aWRlbyI6dGhpcy5mYW5jeWJveC5zZXRDb250ZW50KHQsdGhpcy5mYW5jeWJveC5vcHRpb24oIkh0bWwuaHRtbDV2aWRlby50cGwiKS5yZXBsYWNlKC9ce1x7c3JjXH1cfS9naSx0LnNyYykucmVwbGFjZSgie3tmb3JtYXR9fSIsdC5mb3JtYXR8fHQuaHRtbDV2aWRlbyYmdC5odG1sNXZpZGVvLmZvcm1hdHx8IiIpLnJlcGxhY2UoInt7cG9zdGVyfX0iLHQucG9zdGVyfHx0LnRodW1ifHwiIikpO2JyZWFrO2Nhc2UiaW5saW5lIjpjYXNlImNsb25lIjp0aGlzLmxvYWRJbmxpbmVDb250ZW50KHQpO2JyZWFrO2Nhc2UiYWpheCI6dGhpcy5sb2FkQWpheENvbnRlbnQodCk7YnJlYWs7Y2FzZSJwZGYiOmNhc2UidmlkZW8iOmNhc2UibWFwIjp0LnByZWxvYWQ9ITE7Y2FzZSJpZnJhbWUiOnRoaXMubG9hZElmcmFtZUNvbnRlbnQodCl9dC5yYXRpbyYmdGhpcy5zZXRBc3BlY3RSYXRpbyh0KX19b25TZWxlY3RTbGlkZSh0LGUsaSl7InJlYWR5Ij09PXQuc3RhdGUmJnRoaXMucGxheVZpZGVvKGkpfXBsYXlWaWRlbyh0KXtpZigiaHRtbDV2aWRlbyI9PT10LnR5cGUmJnQudmlkZW8uYXV0b3BsYXkpdHJ5e2NvbnN0IGU9dC4kZWwucXVlcnlTZWxlY3RvcigidmlkZW8iKTtpZihlKXtjb25zdCB0PWUucGxheSgpO3ZvaWQgMCE9PXQmJnQudGhlbigoKCk9Pnt9KSkuY2F0Y2goKHQ9PntlLm11dGVkPSEwLGUucGxheSgpfSkpfX1jYXRjaCh0KXt9aWYoInZpZGVvIiE9PXQudHlwZXx8IXQuJGlmcmFtZXx8IXQuJGlmcmFtZS5jb250ZW50V2luZG93KXJldHVybjtjb25zdCBlPSgpPT57aWYoImRvbmUiPT09dC5zdGF0ZSYmdC4kaWZyYW1lJiZ0LiRpZnJhbWUuY29udGVudFdpbmRvdyl7bGV0IGU7aWYodC4kaWZyYW1lLmlzUmVhZHkpcmV0dXJuIHQudmlkZW8mJnQudmlkZW8uYXV0b3BsYXkmJihlPSJ5b3V0dWJlIj09dC52ZW5kb3I/e2V2ZW50OiJjb21tYW5kIixmdW5jOiJwbGF5VmlkZW8ifTp7bWV0aG9kOiJwbGF5Iix2YWx1ZToidHJ1ZSJ9KSx2b2lkKGUmJnQuJGlmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGUpLCIqIikpOyJ5b3V0dWJlIj09PXQudmVuZG9yJiYoZT17ZXZlbnQ6Imxpc3RlbmluZyIsaWQ6dC4kaWZyYW1lLmdldEF0dHJpYnV0ZSgiaWQiKX0sdC4kaWZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoZSksIioiKSl9dC5wb2xsZXI9c2V0VGltZW91dChlLDI1MCl9O2UoKX1vblVuc2VsZWN0U2xpZGUodCxlLGkpe2lmKCJodG1sNXZpZGVvIj09PWkudHlwZSl7dHJ5e2kuJGVsLnF1ZXJ5U2VsZWN0b3IoInZpZGVvIikucGF1c2UoKX1jYXRjaCh0KXt9cmV0dXJufWxldCBzPSExOyJ2aW1lbyI9PWkudmVuZG9yP3M9e21ldGhvZDoicGF1c2UiLHZhbHVlOiJ0cnVlIn06InlvdXR1YmUiPT09aS52ZW5kb3ImJihzPXtldmVudDoiY29tbWFuZCIsZnVuYzoicGF1c2VWaWRlbyJ9KSxzJiZpLiRpZnJhbWUmJmkuJGlmcmFtZS5jb250ZW50V2luZG93JiZpLiRpZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShzKSwiKiIpLGNsZWFyVGltZW91dChpLnBvbGxlcil9b25SZW1vdmVTbGlkZSh0LGUsaSl7aS54aHImJihpLnhoci5hYm9ydCgpLGkueGhyPW51bGwpLGkuJGlmcmFtZSYmKGkuJGlmcmFtZS5vbmxvYWQ9aS4kaWZyYW1lLm9uZXJyb3I9bnVsbCxpLiRpZnJhbWUuc3JjPSIvL2Fib3V0OmJsYW5rIixpLiRpZnJhbWU9bnVsbCk7Y29uc3Qgcz1pLiRjb250ZW50OyJpbmxpbmUiPT09aS50eXBlJiZzJiYocy5jbGFzc0xpc3QucmVtb3ZlKCJmYW5jeWJveF9fY29udGVudCIpLCJub25lIiE9PXMuc3R5bGUuZGlzcGxheSYmKHMuc3R5bGUuZGlzcGxheT0ibm9uZSIpKSxpLiRjbG9zZUJ1dHRvbiYmKGkuJGNsb3NlQnV0dG9uLnJlbW92ZSgpLGkuJGNsb3NlQnV0dG9uPW51bGwpO2NvbnN0IGE9cyYmcy4kcGxhY2VIb2xkZXI7YSYmKGEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocyxhKSxhLnJlbW92ZSgpLHMuJHBsYWNlSG9sZGVyPW51bGwpfW9uTWVzc2FnZSh0KXt0cnl7bGV0IGU9SlNPTi5wYXJzZSh0LmRhdGEpO2lmKCJodHRwczovL3BsYXllci52aW1lby5jb20iPT09dC5vcmlnaW4pe2lmKCJyZWFkeSI9PT1lLmV2ZW50KWZvcihsZXQgZSBvZiBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJmYW5jeWJveF9faWZyYW1lIikpZS5jb250ZW50V2luZG93PT09dC5zb3VyY2UmJihlLmlzUmVhZHk9MSl9ZWxzZSJodHRwczovL3d3dy55b3V0dWJlLW5vY29va2llLmNvbSI9PT10Lm9yaWdpbiYmIm9uUmVhZHkiPT09ZS5ldmVudCYmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUuaWQpLmlzUmVhZHk9MSl9Y2F0Y2godCl7fX1hdHRhY2goKXt0aGlzLmZhbmN5Ym94Lm9uKHRoaXMuZXZlbnRzKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5vbk1lc3NhZ2UsITEpfWRldGFjaCgpe3RoaXMuZmFuY3lib3gub2ZmKHRoaXMuZXZlbnRzKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5vbk1lc3NhZ2UsITEpfX1MLmRlZmF1bHRzPVQ7Y2xhc3MgUHtjb25zdHJ1Y3Rvcih0KXt0aGlzLmZhbmN5Ym94PXQ7Zm9yKGNvbnN0IHQgb2ZbIm9uUmVhZHkiLCJvbkNsb3NpbmciLCJvbkRvbmUiLCJvblBhZ2VDaGFuZ2UiLCJvbkNyZWF0ZVNsaWRlIiwib25SZW1vdmVTbGlkZSIsIm9uSW1hZ2VTdGF0dXNDaGFuZ2UiXSl0aGlzW3RdPXRoaXNbdF0uYmluZCh0aGlzKTt0aGlzLmV2ZW50cz17cmVhZHk6dGhpcy5vblJlYWR5LGNsb3Npbmc6dGhpcy5vbkNsb3NpbmcsZG9uZTp0aGlzLm9uRG9uZSwiQ2Fyb3VzZWwuY2hhbmdlIjp0aGlzLm9uUGFnZUNoYW5nZSwiQ2Fyb3VzZWwuY3JlYXRlU2xpZGUiOnRoaXMub25DcmVhdGVTbGlkZSwiQ2Fyb3VzZWwucmVtb3ZlU2xpZGUiOnRoaXMub25SZW1vdmVTbGlkZX19b25SZWFkeSgpe3RoaXMuZmFuY3lib3guQ2Fyb3VzZWwuc2xpZGVzLmZvckVhY2goKHQ9Pnt0LiRlbCYmdGhpcy5zZXRDb250ZW50KHQpfSkpfW9uRG9uZSh0LGUpe3RoaXMuaGFuZGxlQ3Vyc29yKGUpfW9uQ2xvc2luZyh0KXtjbGVhclRpbWVvdXQodGhpcy5jbGlja1RpbWVyKSx0aGlzLmNsaWNrVGltZXI9bnVsbCx0LkNhcm91c2VsLnNsaWRlcy5mb3JFYWNoKCh0PT57dC4kaW1hZ2UmJih0LnN0YXRlPSJkZXN0cm95IiksdC5QYW56b29tJiZ0LlBhbnpvb20uZGV0YWNoRXZlbnRzKCl9KSksImNsb3NpbmciPT09dGhpcy5mYW5jeWJveC5zdGF0ZSYmdGhpcy5jYW5ab29tKHQuZ2V0U2xpZGUoKSkmJnRoaXMuem9vbU91dCgpfW9uQ3JlYXRlU2xpZGUodCxlLGkpeyJyZWFkeSI9PT10aGlzLmZhbmN5Ym94LnN0YXRlJiZ0aGlzLnNldENvbnRlbnQoaSl9b25SZW1vdmVTbGlkZSh0LGUsaSl7aS4kaW1hZ2UmJihpLiRlbC5jbGFzc0xpc3QucmVtb3ZlKHQub3B0aW9uKCJJbWFnZS5jYW5ab29tSW5DbGFzcyIpKSxpLiRpbWFnZS5yZW1vdmUoKSxpLiRpbWFnZT1udWxsKSxpLlBhbnpvb20mJihpLlBhbnpvb20uZGVzdHJveSgpLGkuUGFuem9vbT1udWxsKSxpLiRlbCYmaS4kZWwuZGF0YXNldCYmZGVsZXRlIGkuJGVsLmRhdGFzZXQuaW1hZ2VGaXR9c2V0Q29udGVudCh0KXtpZih0LmlzRG9tfHx0Lmh0bWx8fHQudHlwZSYmImltYWdlIiE9PXQudHlwZSlyZXR1cm47aWYodC4kaW1hZ2UpcmV0dXJuO3QudHlwZT0iaW1hZ2UiLHQuc3RhdGU9ImxvYWRpbmciO2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2NvbnN0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7aS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoZT0+e2Uuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5vbkltYWdlU3RhdHVzQ2hhbmdlKHQpfSkpLGkuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgoKT0+e3RoaXMub25JbWFnZVN0YXR1c0NoYW5nZSh0KX0pKSxpLnNyYz10LnNyYyxpLmFsdD0iIixpLmRyYWdnYWJsZT0hMSxpLmNsYXNzTGlzdC5hZGQoImZhbmN5Ym94X19pbWFnZSIpLHQuc3Jjc2V0JiZpLnNldEF0dHJpYnV0ZSgic3Jjc2V0Iix0LnNyY3NldCksdC5zaXplcyYmaS5zZXRBdHRyaWJ1dGUoInNpemVzIix0LnNpemVzKSx0LiRpbWFnZT1pO2NvbnN0IHM9dGhpcy5mYW5jeWJveC5vcHRpb24oIkltYWdlLndyYXAiKTtpZihzKXtjb25zdCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuY2xhc3NMaXN0LmFkZCgic3RyaW5nIj09dHlwZW9mIHM/czoiZmFuY3lib3hfX2ltYWdlLXdyYXAiKSxhLmFwcGVuZENoaWxkKGkpLGUuYXBwZW5kQ2hpbGQoYSksdC4kd3JhcD1hfWVsc2UgZS5hcHBlbmRDaGlsZChpKTt0LiRlbC5kYXRhc2V0LmltYWdlRml0PXRoaXMuZmFuY3lib3gub3B0aW9uKCJJbWFnZS5maXQiKSx0aGlzLmZhbmN5Ym94LnNldENvbnRlbnQodCxlKSxpLmNvbXBsZXRlfHxpLmVycm9yP3RoaXMub25JbWFnZVN0YXR1c0NoYW5nZSh0KTp0aGlzLmZhbmN5Ym94LnNob3dMb2FkaW5nKHQpfW9uSW1hZ2VTdGF0dXNDaGFuZ2UodCl7Y29uc3QgZT10LiRpbWFnZTtlJiYibG9hZGluZyI9PT10LnN0YXRlJiYoZS5jb21wbGV0ZSYmZS5uYXR1cmFsV2lkdGgmJmUubmF0dXJhbEhlaWdodD8odGhpcy5mYW5jeWJveC5oaWRlTG9hZGluZyh0KSwiY29udGFpbiI9PT10aGlzLmZhbmN5Ym94Lm9wdGlvbigiSW1hZ2UuZml0IikmJnRoaXMuaW5pdFNsaWRlUGFuem9vbSh0KSx0LiRlbC5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsKGU9PnRoaXMub25XaGVlbCh0LGUpKSx7cGFzc2l2ZTohMX0pLHQuJGNvbnRlbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLChlPT50aGlzLm9uQ2xpY2sodCxlKSkse3Bhc3NpdmU6ITF9KSx0aGlzLnJldmVhbENvbnRlbnQodCkpOnRoaXMuZmFuY3lib3guc2V0RXJyb3IodCwie3tJTUFHRV9FUlJPUn19IikpfWluaXRTbGlkZVBhbnpvb20odCl7dC5QYW56b29tfHwodC5QYW56b29tPW5ldyBnKHQuJGVsLGEoITAsdGhpcy5mYW5jeWJveC5vcHRpb24oIkltYWdlLlBhbnpvb20iLHt9KSx7dmlld3BvcnQ6dC4kd3JhcCxjb250ZW50OnQuJGltYWdlLHdpZHRoOnQuX3dpZHRoLGhlaWdodDp0Ll9oZWlnaHQsd3JhcElubmVyOiExLHRleHRTZWxlY3Rpb246ITAsdG91Y2g6dGhpcy5mYW5jeWJveC5vcHRpb24oIkltYWdlLnRvdWNoIikscGFuT25seVpvb21lZDohMCxjbGljazohMSx3aGVlbDohMX0pKSx0LlBhbnpvb20ub24oInN0YXJ0QW5pbWF0aW9uIiwoKCk9Pnt0aGlzLmZhbmN5Ym94LnRyaWdnZXIoIkltYWdlLnN0YXJ0QW5pbWF0aW9uIix0KX0pKSx0LlBhbnpvb20ub24oImVuZEFuaW1hdGlvbiIsKCgpPT57Inpvb21JbiI9PT10LnN0YXRlJiZ0aGlzLmZhbmN5Ym94LmRvbmUodCksdGhpcy5oYW5kbGVDdXJzb3IodCksdGhpcy5mYW5jeWJveC50cmlnZ2VyKCJJbWFnZS5lbmRBbmltYXRpb24iLHQpfSkpLHQuUGFuem9vbS5vbigiYWZ0ZXJVcGRhdGUiLCgoKT0+e3RoaXMuaGFuZGxlQ3Vyc29yKHQpLHRoaXMuZmFuY3lib3gudHJpZ2dlcigiSW1hZ2UuYWZ0ZXJVcGRhdGUiLHQpfSkpKX1yZXZlYWxDb250ZW50KHQpe251bGw9PT10aGlzLmZhbmN5Ym94LkNhcm91c2VsLnByZXZQYWdlJiZ0LmluZGV4PT09dGhpcy5mYW5jeWJveC5vcHRpb25zLnN0YXJ0SW5kZXgmJnRoaXMuY2FuWm9vbSh0KT90aGlzLnpvb21JbigpOnRoaXMuZmFuY3lib3gucmV2ZWFsQ29udGVudCh0KX1nZXRab29tSW5mbyh0KXtjb25zdCBlPXQuJHRodW1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9ZS53aWR0aCxzPWUuaGVpZ2h0LGE9dC4kY29udGVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPWEud2lkdGgscj1hLmhlaWdodCxvPWEudG9wLWUudG9wLGw9YS5sZWZ0LWUubGVmdDtsZXQgYz10aGlzLmZhbmN5Ym94Lm9wdGlvbigiSW1hZ2Uuem9vbU9wYWNpdHkiKTtyZXR1cm4iYXV0byI9PT1jJiYoYz1NYXRoLmFicyhpL3Mtbi9yKT4uMSkse3RvcDpvLGxlZnQ6bCxzY2FsZTpuJiZpP2kvbjoxLG9wYWNpdHk6Y319Y2FuWm9vbSh0KXtjb25zdCBlPXRoaXMuZmFuY3lib3gsaT1lLiRjb250YWluZXI7aWYod2luZG93LnZpc3VhbFZpZXdwb3J0JiYxIT09d2luZG93LnZpc3VhbFZpZXdwb3J0LnNjYWxlKXJldHVybiExO2lmKHQuUGFuem9vbSYmIXQuUGFuem9vbS5jb250ZW50LndpZHRoKXJldHVybiExO2lmKCFlLm9wdGlvbigiSW1hZ2Uuem9vbSIpfHwiY29udGFpbiIhPT1lLm9wdGlvbigiSW1hZ2UuZml0IikpcmV0dXJuITE7Y29uc3Qgcz10LiR0aHVtYjtpZighc3x8ImxvYWRpbmciPT09dC5zdGF0ZSlyZXR1cm4hMTtpLmNsYXNzTGlzdC5hZGQoImZhbmN5Ym94X19uby1jbGljayIpO2NvbnN0IGE9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtsZXQgbjtpZih0aGlzLmZhbmN5Ym94Lm9wdGlvbigiSW1hZ2UuaWdub3JlQ292ZXJlZFRodW1ibmFpbCIpKXtjb25zdCB0PWRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoYS5sZWZ0KzEsYS50b3ArMSk9PT1zLGU9ZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChhLnJpZ2h0LTEsYS5ib3R0b20tMSk9PT1zO249dCYmZX1lbHNlIG49ZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChhLmxlZnQrLjUqYS53aWR0aCxhLnRvcCsuNSphLmhlaWdodCk9PT1zO3JldHVybiBpLmNsYXNzTGlzdC5yZW1vdmUoImZhbmN5Ym94X19uby1jbGljayIpLG59em9vbUluKCl7Y29uc3QgdD10aGlzLmZhbmN5Ym94LGU9dC5nZXRTbGlkZSgpLGk9ZS5QYW56b29tLHt0b3A6cyxsZWZ0OmEsc2NhbGU6bixvcGFjaXR5OnJ9PXRoaXMuZ2V0Wm9vbUluZm8oZSk7dC50cmlnZ2VyKCJyZXZlYWwiLGUpLGkucGFuVG8oe3g6LTEqYSx5Oi0xKnMsc2NhbGU6bixmcmljdGlvbjowLGlnbm9yZUJvdW5kczohMH0pLGUuJGNvbnRlbnQuc3R5bGUudmlzaWJpbGl0eT0iIixlLnN0YXRlPSJ6b29tSW4iLCEwPT09ciYmaS5vbigiYWZ0ZXJUcmFuc2Zvcm0iLCh0PT57Inpvb21JbiIhPT1lLnN0YXRlJiYiem9vbU91dCIhPT1lLnN0YXRlfHwodC4kY29udGVudC5zdHlsZS5vcGFjaXR5PU1hdGgubWluKDEsMS0oMS10LmNvbnRlbnQuc2NhbGUpLygxLW4pKSl9KSksaS5wYW5Ubyh7eDowLHk6MCxzY2FsZToxLGZyaWN0aW9uOnRoaXMuZmFuY3lib3gub3B0aW9uKCJJbWFnZS56b29tRnJpY3Rpb24iKX0pfXpvb21PdXQoKXtjb25zdCB0PXRoaXMuZmFuY3lib3gsZT10LmdldFNsaWRlKCksaT1lLlBhbnpvb207aWYoIWkpcmV0dXJuO2Uuc3RhdGU9Inpvb21PdXQiLHQuc3RhdGU9ImN1c3RvbUNsb3NpbmciLGUuJGNhcHRpb24mJihlLiRjYXB0aW9uLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIpO2xldCBzPXRoaXMuZmFuY3lib3gub3B0aW9uKCJJbWFnZS56b29tRnJpY3Rpb24iKTtjb25zdCBhPXQ9Pntjb25zdHt0b3A6YSxsZWZ0Om4sc2NhbGU6cixvcGFjaXR5Om99PXRoaXMuZ2V0Wm9vbUluZm8oZSk7dHx8b3x8KHMqPS44MiksaS5wYW5Ubyh7eDotMSpuLHk6LTEqYSxzY2FsZTpyLGZyaWN0aW9uOnMsaWdub3JlQm91bmRzOiEwfSkscyo9Ljk4fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixhKSxpLm9uY2UoImVuZEFuaW1hdGlvbiIsKCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsYSksdC5kZXN0cm95KCl9KSksYSgpfWhhbmRsZUN1cnNvcih0KXtpZigiaW1hZ2UiIT09dC50eXBlfHwhdC4kZWwpcmV0dXJuO2NvbnN0IGU9dC5QYW56b29tLGk9dGhpcy5mYW5jeWJveC5vcHRpb24oIkltYWdlLmNsaWNrIiwhMSx0KSxzPXRoaXMuZmFuY3lib3gub3B0aW9uKCJJbWFnZS50b3VjaCIpLGE9dC4kZWwuY2xhc3NMaXN0LG49dGhpcy5mYW5jeWJveC5vcHRpb24oIkltYWdlLmNhblpvb21JbkNsYXNzIikscj10aGlzLmZhbmN5Ym94Lm9wdGlvbigiSW1hZ2UuY2FuWm9vbU91dENsYXNzIik7YS5yZW1vdmUociksYS5yZW1vdmUobiksZSYmInRvZ2dsZVpvb20iPT09aT9lJiYxPT09ZS5jb250ZW50LnNjYWxlJiZlLm9wdGlvbigibWF4U2NhbGUiKS1lLmNvbnRlbnQuc2NhbGU+LjAxP2EuYWRkKG4pOmUuY29udGVudC5zY2FsZT4xJiYhcyYmYS5hZGQocik6ImNsb3NlIj09PWkmJmEuYWRkKHIpfW9uV2hlZWwodCxlKXtpZigicmVhZHkiPT09dGhpcy5mYW5jeWJveC5zdGF0ZSYmITEhPT10aGlzLmZhbmN5Ym94LnRyaWdnZXIoIkltYWdlLndoZWVsIixlKSlzd2l0Y2godGhpcy5mYW5jeWJveC5vcHRpb24oIkltYWdlLndoZWVsIikpe2Nhc2Uiem9vbSI6ImRvbmUiPT09dC5zdGF0ZSYmdC5QYW56b29tJiZ0LlBhbnpvb20uem9vbVdpdGhXaGVlbChlKTticmVhaztjYXNlImNsb3NlIjp0aGlzLmZhbmN5Ym94LmNsb3NlKCk7YnJlYWs7Y2FzZSJzbGlkZSI6dGhpcy5mYW5jeWJveFtlLmRlbHRhWTwwPyJwcmV2IjoibmV4dCJdKCl9fW9uQ2xpY2sodCxlKXtpZigicmVhZHkiIT09dGhpcy5mYW5jeWJveC5zdGF0ZSlyZXR1cm47Y29uc3QgaT10LlBhbnpvb207aWYoaSYmKGkuZHJhZ1Bvc2l0aW9uLm1pZFBvaW50fHwwIT09aS5kcmFnT2Zmc2V0Lnh8fDAhPT1pLmRyYWdPZmZzZXQueXx8MSE9PWkuZHJhZ09mZnNldC5zY2FsZSkpcmV0dXJuO2lmKHRoaXMuZmFuY3lib3guQ2Fyb3VzZWwuUGFuem9vbS5sb2NrQXhpcylyZXR1cm4hMTtjb25zdCBzPWk9Pntzd2l0Y2goaSl7Y2FzZSJ0b2dnbGVab29tIjplLnN0b3BQcm9wYWdhdGlvbigpLHQuUGFuem9vbSYmdC5QYW56b29tLnpvb21XaXRoQ2xpY2soZSk7YnJlYWs7Y2FzZSJjbG9zZSI6dGhpcy5mYW5jeWJveC5jbG9zZSgpO2JyZWFrO2Nhc2UibmV4dCI6ZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmZhbmN5Ym94Lm5leHQoKX19LGE9dGhpcy5mYW5jeWJveC5vcHRpb24oIkltYWdlLmNsaWNrIiksbj10aGlzLmZhbmN5Ym94Lm9wdGlvbigiSW1hZ2UuZG91YmxlQ2xpY2siKTtuP3RoaXMuY2xpY2tUaW1lcj8oY2xlYXJUaW1lb3V0KHRoaXMuY2xpY2tUaW1lciksdGhpcy5jbGlja1RpbWVyPW51bGwscyhuKSk6dGhpcy5jbGlja1RpbWVyPXNldFRpbWVvdXQoKCgpPT57dGhpcy5jbGlja1RpbWVyPW51bGwscyhhKX0pLDMwMCk6cyhhKX1vblBhZ2VDaGFuZ2UodCxlKXtjb25zdCBpPXQuZ2V0U2xpZGUoKTtlLnNsaWRlcy5mb3JFYWNoKCh0PT57dC5QYW56b29tJiYiZG9uZSI9PT10LnN0YXRlJiZ0LmluZGV4IT09aS5pbmRleCYmdC5QYW56b29tLnBhblRvKHt4OjAseTowLHNjYWxlOjEsZnJpY3Rpb246Ljh9KX0pKX1hdHRhY2goKXt0aGlzLmZhbmN5Ym94Lm9uKHRoaXMuZXZlbnRzKX1kZXRhY2goKXt0aGlzLmZhbmN5Ym94Lm9mZih0aGlzLmV2ZW50cyl9fVAuZGVmYXVsdHM9e2Nhblpvb21JbkNsYXNzOiJjYW4tem9vbV9pbiIsY2FuWm9vbU91dENsYXNzOiJjYW4tem9vbV9vdXQiLHpvb206ITAsem9vbU9wYWNpdHk6ImF1dG8iLHpvb21GcmljdGlvbjouODIsaWdub3JlQ292ZXJlZFRodW1ibmFpbDohMSx0b3VjaDohMCxjbGljazoidG9nZ2xlWm9vbSIsZG91YmxlQ2xpY2s6bnVsbCx3aGVlbDoiem9vbSIsZml0OiJjb250YWluIix3cmFwOiExLFBhbnpvb206e3JhdGlvOjF9fTtjbGFzcyBNe2NvbnN0cnVjdG9yKHQpe3RoaXMuZmFuY3lib3g9dDtmb3IoY29uc3QgdCBvZlsib25DaGFuZ2UiLCJvbkNsb3NpbmciXSl0aGlzW3RdPXRoaXNbdF0uYmluZCh0aGlzKTt0aGlzLmV2ZW50cz17aW5pdENhcm91c2VsOnRoaXMub25DaGFuZ2UsIkNhcm91c2VsLmNoYW5nZSI6dGhpcy5vbkNoYW5nZSxjbG9zaW5nOnRoaXMub25DbG9zaW5nfSx0aGlzLmhhc0NyZWF0ZWRIaXN0b3J5PSExLHRoaXMub3JpZ0hhc2g9IiIsdGhpcy50aW1lcj1udWxsfW9uQ2hhbmdlKHQpe2NvbnN0IGU9dC5DYXJvdXNlbDt0aGlzLnRpbWVyJiZjbGVhclRpbWVvdXQodGhpcy50aW1lcik7Y29uc3QgaT1udWxsPT09ZS5wcmV2UGFnZSxzPXQuZ2V0U2xpZGUoKSxhPW5ldyBVUkwoZG9jdW1lbnQuVVJMKS5oYXNoO2xldCBuPSExO2lmKHMuc2x1ZyluPSIjIitzLnNsdWc7ZWxzZXtjb25zdCBpPXMuJHRyaWdnZXImJnMuJHRyaWdnZXIuZGF0YXNldCxhPXQub3B0aW9uKCJzbHVnIil8fGkmJmkuZmFuY3lib3g7YSYmYS5sZW5ndGgmJiJ0cnVlIiE9PWEmJihuPSIjIithKyhlLnNsaWRlcy5sZW5ndGg+MT8iLSIrKHMuaW5kZXgrMSk6IiIpKX1pJiYodGhpcy5vcmlnSGFzaD1hIT09bj9hOiIiKSxuJiZhIT09biYmKHRoaXMudGltZXI9c2V0VGltZW91dCgoKCk9Pnt0cnl7d2luZG93Lmhpc3RvcnlbaT8icHVzaFN0YXRlIjoicmVwbGFjZVN0YXRlIl0oe30sZG9jdW1lbnQudGl0bGUsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lK3dpbmRvdy5sb2NhdGlvbi5zZWFyY2grbiksaSYmKHRoaXMuaGFzQ3JlYXRlZEhpc3Rvcnk9ITApfWNhdGNoKHQpe319KSwzMDApKX1vbkNsb3NpbmcoKXtpZih0aGlzLnRpbWVyJiZjbGVhclRpbWVvdXQodGhpcy50aW1lciksITAhPT10aGlzLmhhc1NpbGVudENsb3NlKXRyeXtyZXR1cm4gdm9pZCB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sZG9jdW1lbnQudGl0bGUsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lK3dpbmRvdy5sb2NhdGlvbi5zZWFyY2grKHRoaXMub3JpZ0hhc2h8fCIiKSl9Y2F0Y2godCl7fX1hdHRhY2godCl7dC5vbih0aGlzLmV2ZW50cyl9ZGV0YWNoKHQpe3Qub2ZmKHRoaXMuZXZlbnRzKX1zdGF0aWMgc3RhcnRGcm9tVXJsKCl7Y29uc3QgdD1NLkZhbmN5Ym94O2lmKCF0fHx0LmdldEluc3RhbmNlKCl8fCExPT09dC5kZWZhdWx0cy5IYXNoKXJldHVybjtjb25zdHtoYXNoOmUsc2x1ZzppLGluZGV4OnN9PU0uZ2V0UGFyc2VkVVJMKCk7aWYoIWkpcmV0dXJuO2xldCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLXNsdWc9IiR7ZX0iXWApO2lmKGEmJmEuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsaWNrIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSkpLHQuZ2V0SW5zdGFuY2UoKSlyZXR1cm47Y29uc3Qgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGBbZGF0YS1mYW5jeWJveD0iJHtpfSJdYCk7bi5sZW5ndGgmJihudWxsPT09cyYmMT09PW4ubGVuZ3RoP2E9blswXTpzJiYoYT1uW3MtMV0pLGEmJmEuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsaWNrIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSkpKX1zdGF0aWMgb25IYXNoQ2hhbmdlKCl7Y29uc3R7c2x1Zzp0LGluZGV4OmV9PU0uZ2V0UGFyc2VkVVJMKCksaT1NLkZhbmN5Ym94LHM9aSYmaS5nZXRJbnN0YW5jZSgpO2lmKHMmJnMucGx1Z2lucy5IYXNoKXtpZih0KXtjb25zdCBpPXMuQ2Fyb3VzZWw7aWYodD09PXMub3B0aW9uKCJzbHVnIikpcmV0dXJuIGkuc2xpZGVUbyhlLTEpO2ZvcihsZXQgZSBvZiBpLnNsaWRlcylpZihlLnNsdWcmJmUuc2x1Zz09PXQpcmV0dXJuIGkuc2xpZGVUbyhlLmluZGV4KTtjb25zdCBhPXMuZ2V0U2xpZGUoKSxuPWEuJHRyaWdnZXImJmEuJHRyaWdnZXIuZGF0YXNldDtpZihuJiZuLmZhbmN5Ym94PT09dClyZXR1cm4gaS5zbGlkZVRvKGUtMSl9cy5wbHVnaW5zLkhhc2guaGFzU2lsZW50Q2xvc2U9ITAscy5jbG9zZSgpfU0uc3RhcnRGcm9tVXJsKCl9c3RhdGljIGNyZWF0ZSh0KXtmdW5jdGlvbiBlKCl7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLE0ub25IYXNoQ2hhbmdlLCExKSxNLnN0YXJ0RnJvbVVybCgpfU0uRmFuY3lib3g9dCx3JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+ey9jb21wbGV0ZXxpbnRlcmFjdGl2ZXxsb2FkZWQvLnRlc3QoZG9jdW1lbnQucmVhZHlTdGF0ZSk/ZSgpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGUpfSkpfXN0YXRpYyBkZXN0cm95KCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLE0ub25IYXNoQ2hhbmdlLCExKX1zdGF0aWMgZ2V0UGFyc2VkVVJMKCl7Y29uc3QgdD13aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHIoMSksZT10LnNwbGl0KCItIiksaT1lLmxlbmd0aD4xJiYvXlwrP1xkKyQvLnRlc3QoZVtlLmxlbmd0aC0xXSkmJnBhcnNlSW50KGUucG9wKC0xKSwxMCl8fG51bGw7cmV0dXJue2hhc2g6dCxzbHVnOmUuam9pbigiLSIpLGluZGV4Oml9fX1jb25zdCBPPXtwYWdlWE9mZnNldDowLHBhZ2VZT2Zmc2V0OjAsZWxlbWVudDooKT0+ZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnR8fGRvY3VtZW50Lm1vekZ1bGxTY3JlZW5FbGVtZW50fHxkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRWxlbWVudCxhY3RpdmF0ZSh0KXtPLnBhZ2VYT2Zmc2V0PXdpbmRvdy5wYWdlWE9mZnNldCxPLnBhZ2VZT2Zmc2V0PXdpbmRvdy5wYWdlWU9mZnNldCx0LnJlcXVlc3RGdWxsc2NyZWVuP3QucmVxdWVzdEZ1bGxzY3JlZW4oKTp0Lm1velJlcXVlc3RGdWxsU2NyZWVuP3QubW96UmVxdWVzdEZ1bGxTY3JlZW4oKTp0LndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuP3Qud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKTp0Lm1zUmVxdWVzdEZ1bGxzY3JlZW4mJnQubXNSZXF1ZXN0RnVsbHNjcmVlbigpfSxkZWFjdGl2YXRlKCl7ZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4/ZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTpkb2N1bWVudC5tb3pDYW5jZWxGdWxsU2NyZWVuP2RvY3VtZW50Lm1vekNhbmNlbEZ1bGxTY3JlZW4oKTpkb2N1bWVudC53ZWJraXRFeGl0RnVsbHNjcmVlbiYmZG9jdW1lbnQud2Via2l0RXhpdEZ1bGxzY3JlZW4oKX19O2NsYXNzIEl7Y29uc3RydWN0b3IodCl7dGhpcy5mYW5jeWJveD10LHRoaXMuYWN0aXZlPSExLHRoaXMuaGFuZGxlVmlzaWJpbGl0eUNoYW5nZT10aGlzLmhhbmRsZVZpc2liaWxpdHlDaGFuZ2UuYmluZCh0aGlzKX1pc0FjdGl2ZSgpe3JldHVybiB0aGlzLmFjdGl2ZX1zZXRUaW1lcigpe2lmKCF0aGlzLmFjdGl2ZXx8dGhpcy50aW1lcilyZXR1cm47Y29uc3QgdD10aGlzLmZhbmN5Ym94Lm9wdGlvbigic2xpZGVzaG93LmRlbGF5IiwzZTMpO3RoaXMudGltZXI9c2V0VGltZW91dCgoKCk9Pnt0aGlzLnRpbWVyPW51bGwsdGhpcy5mYW5jeWJveC5vcHRpb24oImluZmluaXRlIil8fHRoaXMuZmFuY3lib3guZ2V0U2xpZGUoKS5pbmRleCE9PXRoaXMuZmFuY3lib3guQ2Fyb3VzZWwuc2xpZGVzLmxlbmd0aC0xP3RoaXMuZmFuY3lib3gubmV4dCgpOnRoaXMuZmFuY3lib3guanVtcFRvKDAse2ZyaWN0aW9uOjB9KX0pLHQpO2xldCBlPXRoaXMuJHByb2dyZXNzO2V8fChlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuY2xhc3NMaXN0LmFkZCgiZmFuY3lib3hfX3Byb2dyZXNzIiksdGhpcy5mYW5jeWJveC4kY2Fyb3VzZWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLmZhbmN5Ym94LiRjYXJvdXNlbCksdGhpcy4kcHJvZ3Jlc3M9ZSxlLm9mZnNldEhlaWdodCksZS5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb249YCR7dH1tc2AsZS5zdHlsZS50cmFuc2Zvcm09InNjYWxlWCgxKSJ9Y2xlYXJUaW1lcigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPW51bGwsdGhpcy4kcHJvZ3Jlc3MmJih0aGlzLiRwcm9ncmVzcy5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb249IiIsdGhpcy4kcHJvZ3Jlc3Muc3R5bGUudHJhbnNmb3JtPSIiLHRoaXMuJHByb2dyZXNzLm9mZnNldEhlaWdodCl9YWN0aXZhdGUoKXt0aGlzLmFjdGl2ZXx8KHRoaXMuYWN0aXZlPSEwLHRoaXMuZmFuY3lib3guJGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoYXMtc2xpZGVzaG93IiksImRvbmUiPT09dGhpcy5mYW5jeWJveC5nZXRTbGlkZSgpLnN0YXRlJiZ0aGlzLnNldFRpbWVyKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsdGhpcy5oYW5kbGVWaXNpYmlsaXR5Q2hhbmdlLCExKSl9aGFuZGxlVmlzaWJpbGl0eUNoYW5nZSgpe3RoaXMuZGVhY3RpdmF0ZSgpfWRlYWN0aXZhdGUoKXt0aGlzLmFjdGl2ZT0hMSx0aGlzLmNsZWFyVGltZXIoKSx0aGlzLmZhbmN5Ym94LiRjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgiaGFzLXNsaWRlc2hvdyIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRoaXMuaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSwhMSl9dG9nZ2xlKCl7dGhpcy5hY3RpdmU/dGhpcy5kZWFjdGl2YXRlKCk6dGhpcy5mYW5jeWJveC5DYXJvdXNlbC5zbGlkZXMubGVuZ3RoPjEmJnRoaXMuYWN0aXZhdGUoKX19Y29uc3QgRj17ZGlzcGxheTpbImNvdW50ZXIiLCJ6b29tIiwic2xpZGVzaG93IiwiZnVsbHNjcmVlbiIsInRodW1icyIsImNsb3NlIl0sYXV0b0VuYWJsZTohMCxpdGVtczp7Y291bnRlcjp7cG9zaXRpb246ImxlZnQiLHR5cGU6ImRpdiIsY2xhc3M6ImZhbmN5Ym94X19jb3VudGVyIixodG1sOic8c3BhbiBkYXRhLWZhbmN5Ym94LWluZGV4PSIiPjwvc3Bhbj4mbmJzcDsvJm5ic3A7PHNwYW4gZGF0YS1mYW5jeWJveC1jb3VudD0iIj48L3NwYW4+JyxhdHRyOnt0YWJpbmRleDotMX19LHByZXY6e3R5cGU6ImJ1dHRvbiIsY2xhc3M6ImZhbmN5Ym94X19idXR0b24tLXByZXYiLGxhYmVsOiJQUkVWIixodG1sOic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE1IDRsLTggOCA4IDgiLz48L3N2Zz4nLGF0dHI6eyJkYXRhLWZhbmN5Ym94LXByZXYiOiIifX0sbmV4dDp7dHlwZToiYnV0dG9uIixjbGFzczoiZmFuY3lib3hfX2J1dHRvbi0tbmV4dCIsbGFiZWw6Ik5FWFQiLGh0bWw6Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOCA0bDggOC04IDgiLz48L3N2Zz4nLGF0dHI6eyJkYXRhLWZhbmN5Ym94LW5leHQiOiIifX0sZnVsbHNjcmVlbjp7dHlwZToiYnV0dG9uIixjbGFzczoiZmFuY3lib3hfX2J1dHRvbi0tZnVsbHNjcmVlbiIsbGFiZWw6IlRPR0dMRV9GVUxMU0NSRUVOIixodG1sOic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCI+XG4gICAgICAgICAgICAgICAgPGc+PHBhdGggZD0iTTMgOCBWM2g1Ij48L3BhdGg+PHBhdGggZD0iTTIxIDhWM2gtNSI+PC9wYXRoPjxwYXRoIGQ9Ik04IDIxSDN2LTUiPjwvcGF0aD48cGF0aCBkPSJNMTYgMjFoNXYtNSI+PC9wYXRoPjwvZz5cbiAgICAgICAgICAgICAgICA8Zz48cGF0aCBkPSJNNyAydjVIMk0xNyAydjVoNU0yIDE3aDV2NU0yMiAxN2gtNXY1Ii8+PC9nPlxuICAgICAgICAgICAgPC9zdmc+JyxjbGljazpmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksTy5lbGVtZW50KCk/Ty5kZWFjdGl2YXRlKCk6Ty5hY3RpdmF0ZSh0aGlzLmZhbmN5Ym94LiRjb250YWluZXIpfX0sc2xpZGVzaG93Ont0eXBlOiJidXR0b24iLGNsYXNzOiJmYW5jeWJveF9fYnV0dG9uLS1zbGlkZXNob3ciLGxhYmVsOiJUT0dHTEVfU0xJREVTSE9XIixodG1sOic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCI+XG4gICAgICAgICAgICAgICAgPGc+PHBhdGggZD0iTTYgNHYxNiIvPjxwYXRoIGQ9Ik0yMCAxMkw2IDIwIi8+PHBhdGggZD0iTTIwIDEyTDYgNCIvPjwvZz5cbiAgICAgICAgICAgICAgICA8Zz48cGF0aCBkPSJNNyA0djE1TTE3IDR2MTUiLz48L2c+XG4gICAgICAgICAgICA8L3N2Zz4nLGNsaWNrOmZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0aGlzLlNsaWRlc2hvdy50b2dnbGUoKX19LHpvb206e3R5cGU6ImJ1dHRvbiIsY2xhc3M6ImZhbmN5Ym94X19idXR0b24tLXpvb20iLGxhYmVsOiJUT0dHTEVfWk9PTSIsaHRtbDonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxjaXJjbGUgY3g9IjEwIiBjeT0iMTAiIHI9IjciPjwvY2lyY2xlPjxwYXRoIGQ9Ik0xNiAxNiBMMjEgMjEiPjwvc3ZnPicsY2xpY2s6ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IGU9dGhpcy5mYW5jeWJveC5nZXRTbGlkZSgpLlBhbnpvb207ZSYmZS50b2dnbGVab29tKCl9fSxkb3dubG9hZDp7dHlwZToibGluayIsbGFiZWw6IkRPV05MT0FEIixjbGFzczoiZmFuY3lib3hfX2J1dHRvbi0tZG93bmxvYWQiLGh0bWw6Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgMTVWM20wIDEybC00LTRtNCA0bDQtNE0yIDE3bC42MiAyLjQ4QTIgMiAwIDAwNC41NiAyMWgxNC44OGEyIDIgMCAwMDEuOTQtMS41MUwyMiAxNyIvPjwvc3ZnPicsY2xpY2s6ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX19LHRodW1iczp7dHlwZToiYnV0dG9uIixsYWJlbDoiVE9HR0xFX1RIVU1CUyIsY2xhc3M6ImZhbmN5Ym94X19idXR0b24tLXRodW1icyIsaHRtbDonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxjaXJjbGUgY3g9IjQiIGN5PSI0IiByPSIxIiAvPjxjaXJjbGUgY3g9IjEyIiBjeT0iNCIgcj0iMSIgdHJhbnNmb3JtPSJyb3RhdGUoOTAgMTIgNCkiLz48Y2lyY2xlIGN4PSIyMCIgY3k9IjQiIHI9IjEiIHRyYW5zZm9ybT0icm90YXRlKDkwIDIwIDQpIi8+PGNpcmNsZSBjeD0iNCIgY3k9IjEyIiByPSIxIiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA0IDEyKSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEiIHRyYW5zZm9ybT0icm90YXRlKDkwIDEyIDEyKSIvPjxjaXJjbGUgY3g9IjIwIiBjeT0iMTIiIHI9IjEiIHRyYW5zZm9ybT0icm90YXRlKDkwIDIwIDEyKSIvPjxjaXJjbGUgY3g9IjQiIGN5PSIyMCIgcj0iMSIgdHJhbnNmb3JtPSJyb3RhdGUoOTAgNCAyMCkiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjIwIiByPSIxIiB0cmFuc2Zvcm09InJvdGF0ZSg5MCAxMiAyMCkiLz48Y2lyY2xlIGN4PSIyMCIgY3k9IjIwIiByPSIxIiB0cmFuc2Zvcm09InJvdGF0ZSg5MCAyMCAyMCkiLz48L3N2Zz4nLGNsaWNrOmZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCk7Y29uc3QgZT10aGlzLmZhbmN5Ym94LnBsdWdpbnMuVGh1bWJzO2UmJmUudG9nZ2xlKCl9fSxjbG9zZTp7dHlwZToiYnV0dG9uIixsYWJlbDoiQ0xPU0UiLGNsYXNzOiJmYW5jeWJveF9fYnV0dG9uLS1jbG9zZSIsaHRtbDonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0yMCAyMEw0IDRtMTYgMEw0IDIwIj48L3BhdGg+PC9zdmc+JyxhdHRyOnsiZGF0YS1mYW5jeWJveC1jbG9zZSI6IiIsdGFiaW5kZXg6MH19fX07Y2xhc3MgRHtjb25zdHJ1Y3Rvcih0KXt0aGlzLmZhbmN5Ym94PXQsdGhpcy4kY29udGFpbmVyPW51bGwsdGhpcy5zdGF0ZT0iaW5pdCI7Zm9yKGNvbnN0IHQgb2ZbIm9uSW5pdCIsIm9uUHJlcGFyZSIsIm9uRG9uZSIsIm9uS2V5ZG93biIsIm9uQ2xvc2luZyIsIm9uQ2hhbmdlIiwib25TZXR0bGUiLCJvblJlZnJlc2giXSl0aGlzW3RdPXRoaXNbdF0uYmluZCh0aGlzKTt0aGlzLmV2ZW50cz17aW5pdDp0aGlzLm9uSW5pdCxwcmVwYXJlOnRoaXMub25QcmVwYXJlLGRvbmU6dGhpcy5vbkRvbmUsa2V5ZG93bjp0aGlzLm9uS2V5ZG93bixjbG9zaW5nOnRoaXMub25DbG9zaW5nLCJDYXJvdXNlbC5jaGFuZ2UiOnRoaXMub25DaGFuZ2UsIkNhcm91c2VsLnNldHRsZSI6dGhpcy5vblNldHRsZSwiQ2Fyb3VzZWwuUGFuem9vbS50b3VjaFN0YXJ0IjooKT0+dGhpcy5vblJlZnJlc2goKSwiSW1hZ2Uuc3RhcnRBbmltYXRpb24iOih0LGUpPT50aGlzLm9uUmVmcmVzaChlKSwiSW1hZ2UuYWZ0ZXJVcGRhdGUiOih0LGUpPT50aGlzLm9uUmVmcmVzaChlKX19b25Jbml0KCl7aWYodGhpcy5mYW5jeWJveC5vcHRpb24oIlRvb2xiYXIuYXV0b0VuYWJsZSIpKXtsZXQgdD0hMTtmb3IoY29uc3QgZSBvZiB0aGlzLmZhbmN5Ym94Lml0ZW1zKWlmKCJpbWFnZSI9PT1lLnR5cGUpe3Q9ITA7YnJlYWt9aWYoIXQpcmV0dXJuIHZvaWQodGhpcy5zdGF0ZT0iZGlzYWJsZWQiKX1mb3IoY29uc3QgdCBvZiB0aGlzLmZhbmN5Ym94Lm9wdGlvbigiVG9vbGJhci5kaXNwbGF5IikpaWYoImNsb3NlIj09PShzKHQpP3QuaWQ6dCkpe3RoaXMuZmFuY3lib3gub3B0aW9ucy5jbG9zZUJ1dHRvbj0hMTticmVha319b25QcmVwYXJlKCl7Y29uc3QgdD10aGlzLmZhbmN5Ym94O2lmKCJpbml0Ij09PXRoaXMuc3RhdGUmJih0aGlzLmJ1aWxkKCksdGhpcy51cGRhdGUoKSx0aGlzLlNsaWRlc2hvdz1uZXcgSSh0KSwhdC5DYXJvdXNlbC5wcmV2UGFnZSYmKHQub3B0aW9uKCJzbGlkZXNob3cuYXV0b1N0YXJ0IikmJnRoaXMuU2xpZGVzaG93LmFjdGl2YXRlKCksdC5vcHRpb24oImZ1bGxzY3JlZW4uYXV0b1N0YXJ0IikmJiFPLmVsZW1lbnQoKSkpKXRyeXtPLmFjdGl2YXRlKHQuJGNvbnRhaW5lcil9Y2F0Y2godCl7fX1vbkZzQ2hhbmdlKCl7d2luZG93LnNjcm9sbFRvKE8ucGFnZVhPZmZzZXQsTy5wYWdlWU9mZnNldCl9b25TZXR0bGUoKXtjb25zdCB0PXRoaXMuZmFuY3lib3gsZT10aGlzLlNsaWRlc2hvdztlJiZlLmlzQWN0aXZlKCkmJih0LmdldFNsaWRlKCkuaW5kZXghPT10LkNhcm91c2VsLnNsaWRlcy5sZW5ndGgtMXx8dC5vcHRpb24oImluZmluaXRlIik/ImRvbmUiPT09dC5nZXRTbGlkZSgpLnN0YXRlJiZlLnNldFRpbWVyKCk6ZS5kZWFjdGl2YXRlKCkpfW9uQ2hhbmdlKCl7dGhpcy51cGRhdGUoKSx0aGlzLlNsaWRlc2hvdyYmdGhpcy5TbGlkZXNob3cuaXNBY3RpdmUoKSYmdGhpcy5TbGlkZXNob3cuY2xlYXJUaW1lcigpfW9uRG9uZSh0LGUpe2NvbnN0IGk9dGhpcy5TbGlkZXNob3c7ZS5pbmRleD09PXQuZ2V0U2xpZGUoKS5pbmRleCYmKHRoaXMudXBkYXRlKCksaSYmaS5pc0FjdGl2ZSgpJiYodC5vcHRpb24oImluZmluaXRlIil8fGUuaW5kZXghPT10LkNhcm91c2VsLnNsaWRlcy5sZW5ndGgtMT9pLnNldFRpbWVyKCk6aS5kZWFjdGl2YXRlKCkpKX1vblJlZnJlc2godCl7dCYmdC5pbmRleCE9PXRoaXMuZmFuY3lib3guZ2V0U2xpZGUoKS5pbmRleHx8KHRoaXMudXBkYXRlKCksIXRoaXMuU2xpZGVzaG93fHwhdGhpcy5TbGlkZXNob3cuaXNBY3RpdmUoKXx8dCYmImRvbmUiIT09dC5zdGF0ZXx8dGhpcy5TbGlkZXNob3cuZGVhY3RpdmF0ZSgpKX1vbktleWRvd24odCxlLGkpeyIgIj09PWUmJnRoaXMuU2xpZGVzaG93JiYodGhpcy5TbGlkZXNob3cudG9nZ2xlKCksaS5wcmV2ZW50RGVmYXVsdCgpKX1vbkNsb3NpbmcoKXt0aGlzLlNsaWRlc2hvdyYmdGhpcy5TbGlkZXNob3cuZGVhY3RpdmF0ZSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5jaGFuZ2UiLHRoaXMub25Gc0NoYW5nZSl9Y3JlYXRlRWxlbWVudCh0KXtsZXQgZTsiZGl2Ij09PXQudHlwZT9lPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOihlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiPT09dC50eXBlPyJhIjoiYnV0dG9uIiksZS5jbGFzc0xpc3QuYWRkKCJjYXJvdXNlbF9fYnV0dG9uIikpLGUuaW5uZXJIVE1MPXQuaHRtbCxlLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLHQudGFiaW5kZXh8fDApLHQuY2xhc3MmJmUuY2xhc3NMaXN0LmFkZCguLi50LmNsYXNzLnNwbGl0KCIgIikpO2Zvcihjb25zdCBpIGluIHQuYXR0cillLnNldEF0dHJpYnV0ZShpLHQuYXR0cltpXSk7dC5sYWJlbCYmZS5zZXRBdHRyaWJ1dGUoInRpdGxlIix0aGlzLmZhbmN5Ym94LmxvY2FsaXplKGB7eyR7dC5sYWJlbH19fWApKSx0LmNsaWNrJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0LmNsaWNrLmJpbmQodGhpcykpLCJwcmV2Ij09PXQuaWQmJmUuc2V0QXR0cmlidXRlKCJkYXRhLWZhbmN5Ym94LXByZXYiLCIiKSwibmV4dCI9PT10LmlkJiZlLnNldEF0dHJpYnV0ZSgiZGF0YS1mYW5jeWJveC1uZXh0IiwiIik7Y29uc3QgaT1lLnF1ZXJ5U2VsZWN0b3IoInN2ZyIpO3JldHVybiBpJiYoaS5zZXRBdHRyaWJ1dGUoInJvbGUiLCJpbWciKSxpLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpLGkuc2V0QXR0cmlidXRlKCJ4bWxucyIsImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIikpLGV9YnVpbGQoKXt0aGlzLmNsZWFudXAoKTtjb25zdCB0PXRoaXMuZmFuY3lib3gub3B0aW9uKCJUb29sYmFyLml0ZW1zIiksZT1be3Bvc2l0aW9uOiJsZWZ0IixpdGVtczpbXX0se3Bvc2l0aW9uOiJjZW50ZXIiLGl0ZW1zOltdfSx7cG9zaXRpb246InJpZ2h0IixpdGVtczpbXX1dLGk9dGhpcy5mYW5jeWJveC5wbHVnaW5zLlRodW1icztmb3IoY29uc3QgbiBvZiB0aGlzLmZhbmN5Ym94Lm9wdGlvbigiVG9vbGJhci5kaXNwbGF5Iikpe2xldCByLG87aWYocyhuKT8ocj1uLmlkLG89YSh7fSx0W3JdLG4pKToocj1uLG89dFtyXSksWyJjb3VudGVyIiwibmV4dCIsInByZXYiLCJzbGlkZXNob3ciXS5pbmNsdWRlcyhyKSYmdGhpcy5mYW5jeWJveC5pdGVtcy5sZW5ndGg8Miljb250aW51ZTtpZigiZnVsbHNjcmVlbiI9PT1yKXtpZighZG9jdW1lbnQuZnVsbHNjcmVlbkVuYWJsZWR8fHdpbmRvdy5mdWxsU2NyZWVuKWNvbnRpbnVlO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5jaGFuZ2UiLHRoaXMub25Gc0NoYW5nZSl9aWYoInRodW1icyI9PT1yJiYoIWl8fCJkaXNhYmxlZCI9PT1pLnN0YXRlKSljb250aW51ZTtpZighbyljb250aW51ZTtsZXQgbD1vLnBvc2l0aW9ufHwicmlnaHQiLGM9ZS5maW5kKCh0PT50LnBvc2l0aW9uPT09bCkpO2MmJmMuaXRlbXMucHVzaChvKX1jb25zdCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NMaXN0LmFkZCgiZmFuY3lib3hfX3Rvb2xiYXIiKTtmb3IoY29uc3QgdCBvZiBlKWlmKHQuaXRlbXMubGVuZ3RoKXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NMaXN0LmFkZCgiZmFuY3lib3hfX3Rvb2xiYXJfX2l0ZW1zIiksZS5jbGFzc0xpc3QuYWRkKGBmYW5jeWJveF9fdG9vbGJhcl9faXRlbXMtLSR7dC5wb3NpdGlvbn1gKTtmb3IoY29uc3QgaSBvZiB0Lml0ZW1zKWUuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVFbGVtZW50KGkpKTtuLmFwcGVuZENoaWxkKGUpfXRoaXMuZmFuY3lib3guJGNhcm91c2VsLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG4sdGhpcy5mYW5jeWJveC4kY2Fyb3VzZWwpLHRoaXMuJGNvbnRhaW5lcj1ufXVwZGF0ZSgpe2NvbnN0IHQ9dGhpcy5mYW5jeWJveC5nZXRTbGlkZSgpLGU9dC5pbmRleCxpPXRoaXMuZmFuY3lib3guaXRlbXMubGVuZ3RoLHM9dC5kb3dubG9hZFNyY3x8KCJpbWFnZSIhPT10LnR5cGV8fHQuZXJyb3I/bnVsbDp0LnNyYyk7Zm9yKGNvbnN0IHQgb2YgdGhpcy5mYW5jeWJveC4kY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoImEuZmFuY3lib3hfX2J1dHRvbi0tZG93bmxvYWQiKSlzPyh0LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKSx0LnJlbW92ZUF0dHJpYnV0ZSgidGFiaW5kZXgiKSx0LnNldEF0dHJpYnV0ZSgiaHJlZiIscyksdC5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixzKSx0LnNldEF0dHJpYnV0ZSgidGFyZ2V0IiwiX2JsYW5rIikpOih0LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCIiKSx0LnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLC0xKSx0LnJlbW92ZUF0dHJpYnV0ZSgiaHJlZiIpLHQucmVtb3ZlQXR0cmlidXRlKCJkb3dubG9hZCIpKTtjb25zdCBhPXQuUGFuem9vbSxuPWEmJmEub3B0aW9uKCJtYXhTY2FsZSIpPmEub3B0aW9uKCJiYXNlU2NhbGUiKTtmb3IoY29uc3QgdCBvZiB0aGlzLmZhbmN5Ym94LiRjb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgiLmZhbmN5Ym94X19idXR0b24tLXpvb20iKSluP3QucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOnQuc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsIiIpO2Zvcihjb25zdCBlIG9mIHRoaXMuZmFuY3lib3guJGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1mYW5jeWJveC1pbmRleF0iKSllLmlubmVySFRNTD10LmluZGV4KzE7Zm9yKGNvbnN0IHQgb2YgdGhpcy5mYW5jeWJveC4kY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWZhbmN5Ym94LWNvdW50XSIpKXQuaW5uZXJIVE1MPWk7aWYoIXRoaXMuZmFuY3lib3gub3B0aW9uKCJpbmZpbml0ZSIpKXtmb3IoY29uc3QgdCBvZiB0aGlzLmZhbmN5Ym94LiRjb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtZmFuY3lib3gtcHJldl0iKSkwPT09ZT90LnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCIiKTp0LnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTtmb3IoY29uc3QgdCBvZiB0aGlzLmZhbmN5Ym94LiRjb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtZmFuY3lib3gtbmV4dF0iKSllPT09aS0xP3Quc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsIiIpOnQucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpfX1jbGVhbnVwKCl7dGhpcy5TbGlkZXNob3cmJnRoaXMuU2xpZGVzaG93LmlzQWN0aXZlKCkmJnRoaXMuU2xpZGVzaG93LmNsZWFyVGltZXIoKSx0aGlzLiRjb250YWluZXImJnRoaXMuJGNvbnRhaW5lci5yZW1vdmUoKSx0aGlzLiRjb250YWluZXI9bnVsbH1hdHRhY2goKXt0aGlzLmZhbmN5Ym94Lm9uKHRoaXMuZXZlbnRzKX1kZXRhY2goKXt0aGlzLmZhbmN5Ym94Lm9mZih0aGlzLmV2ZW50cyksdGhpcy5jbGVhbnVwKCl9fUQuZGVmYXVsdHM9Rjtjb25zdCB6PXtTY3JvbGxMb2NrOmNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuZmFuY3lib3g9dCx0aGlzLnZpZXdwb3J0PW51bGwsdGhpcy5wZW5kaW5nVXBkYXRlPW51bGw7Zm9yKGNvbnN0IHQgb2ZbIm9uUmVhZHkiLCJvblJlc2l6ZSIsIm9uVG91Y2hzdGFydCIsIm9uVG91Y2htb3ZlIl0pdGhpc1t0XT10aGlzW3RdLmJpbmQodGhpcyl9b25SZWFkeSgpe2NvbnN0IHQ9d2luZG93LnZpc3VhbFZpZXdwb3J0O3QmJih0aGlzLnZpZXdwb3J0PXQsdGhpcy5zdGFydFk9MCx0LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5vblJlc2l6ZSksdGhpcy51cGRhdGVWaWV3cG9ydCgpKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5vblRvdWNoc3RhcnQse3Bhc3NpdmU6ITF9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2htb3ZlLHtwYXNzaXZlOiExfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLm9uV2hlZWwse3Bhc3NpdmU6ITF9KX1vblJlc2l6ZSgpe3RoaXMudXBkYXRlVmlld3BvcnQoKX11cGRhdGVWaWV3cG9ydCgpe2NvbnN0IHQ9dGhpcy5mYW5jeWJveCxlPXRoaXMudmlld3BvcnQsaT1lLnNjYWxlfHwxLHM9dC4kY29udGFpbmVyO2lmKCFzKXJldHVybjtsZXQgYT0iIixuPSIiLHI9IiI7aS0xPi4xJiYoYT1lLndpZHRoKmkrInB4IixuPWUuaGVpZ2h0KmkrInB4IixyPWB0cmFuc2xhdGUzZCgke2Uub2Zmc2V0TGVmdH1weCwgJHtlLm9mZnNldFRvcH1weCwgMCkgc2NhbGUoJHsxL2l9KWApLHMuc3R5bGUud2lkdGg9YSxzLnN0eWxlLmhlaWdodD1uLHMuc3R5bGUudHJhbnNmb3JtPXJ9b25Ub3VjaHN0YXJ0KHQpe3RoaXMuc3RhcnRZPXQudG91Y2hlcz90LnRvdWNoZXNbMF0uc2NyZWVuWTp0LnNjcmVlbll9b25Ub3VjaG1vdmUodCl7Y29uc3QgZT10aGlzLnN0YXJ0WSxpPXdpbmRvdy5pbm5lcldpZHRoL3dpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7aWYoIXQuY2FuY2VsYWJsZSlyZXR1cm47aWYodC50b3VjaGVzLmxlbmd0aD4xfHwxIT09aSlyZXR1cm47Y29uc3Qgcz1yKHQuY29tcG9zZWRQYXRoKClbMF0pO2lmKCFzKXJldHVybiB2b2lkIHQucHJldmVudERlZmF1bHQoKTtjb25zdCBhPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHMpLG49cGFyc2VJbnQoYS5nZXRQcm9wZXJ0eVZhbHVlKCJoZWlnaHQiKSwxMCksbz10LnRvdWNoZXM/dC50b3VjaGVzWzBdLnNjcmVlblk6dC5zY3JlZW5ZLGw9ZTw9byYmMD09PXMuc2Nyb2xsVG9wLGM9ZT49byYmcy5zY3JvbGxIZWlnaHQtcy5zY3JvbGxUb3A9PT1uOyhsfHxjKSYmdC5wcmV2ZW50RGVmYXVsdCgpfW9uV2hlZWwodCl7cih0LmNvbXBvc2VkUGF0aCgpWzBdKXx8dC5wcmV2ZW50RGVmYXVsdCgpfWNsZWFudXAoKXt0aGlzLnBlbmRpbmdVcGRhdGUmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnBlbmRpbmdVcGRhdGUpLHRoaXMucGVuZGluZ1VwZGF0ZT1udWxsKTtjb25zdCB0PXRoaXMudmlld3BvcnQ7dCYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLm9uUmVzaXplKSx0aGlzLnZpZXdwb3J0PW51bGwpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLm9uVG91Y2hzdGFydCwhMSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5vblRvdWNobW92ZSwhMSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLm9uV2hlZWwse3Bhc3NpdmU6ITF9KX1hdHRhY2goKXt0aGlzLmZhbmN5Ym94Lm9uKCJpbml0TGF5b3V0Iix0aGlzLm9uUmVhZHkpfWRldGFjaCgpe3RoaXMuZmFuY3lib3gub2ZmKCJpbml0TGF5b3V0Iix0aGlzLm9uUmVhZHkpLHRoaXMuY2xlYW51cCgpfX0sVGh1bWJzOkEsSHRtbDpMLFRvb2xiYXI6RCxJbWFnZTpQLEhhc2g6TX0sTj17c3RhcnRJbmRleDowLHByZWxvYWQ6MSxpbmZpbml0ZTohMCxzaG93Q2xhc3M6ImZhbmN5Ym94LXpvb21JblVwIixoaWRlQ2xhc3M6ImZhbmN5Ym94LWZhZGVPdXQiLGFuaW1hdGVkOiEwLGhpZGVTY3JvbGxiYXI6ITAscGFyZW50RWw6bnVsbCxtYWluQ2xhc3M6bnVsbCxhdXRvRm9jdXM6ITAsdHJhcEZvY3VzOiEwLHBsYWNlRm9jdXNCYWNrOiEwLGNsaWNrOiJjbG9zZSIsY2xvc2VCdXR0b246Imluc2lkZSIsZHJhZ1RvQ2xvc2U6ITAsa2V5Ym9hcmQ6e0VzY2FwZToiY2xvc2UiLERlbGV0ZToiY2xvc2UiLEJhY2tzcGFjZToiY2xvc2UiLFBhZ2VVcDoibmV4dCIsUGFnZURvd246InByZXYiLEFycm93VXA6Im5leHQiLEFycm93RG93bjoicHJldiIsQXJyb3dSaWdodDoibmV4dCIsQXJyb3dMZWZ0OiJwcmV2In0sdGVtcGxhdGU6e2Nsb3NlQnV0dG9uOic8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiB0YWJpbmRleD0iLTEiPjxwYXRoIGQ9Ik0yMCAyMEw0IDRtMTYgMEw0IDIwIi8+PC9zdmc+JyxzcGlubmVyOic8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiB2aWV3Qm94PSIyNSAyNSA1MCA1MCIgdGFiaW5kZXg9Ii0xIj48Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSIyMCIvPjwvc3ZnPicsbWFpbjpudWxsfSxsMTBuOntDTE9TRToiQ2xvc2UiLE5FWFQ6Ik5leHQiLFBSRVY6IlByZXZpb3VzIixNT0RBTDoiWW91IGNhbiBjbG9zZSB0aGlzIG1vZGFsIGNvbnRlbnQgd2l0aCB0aGUgRVNDIGtleSIsRVJST1I6IlNvbWV0aGluZyBXZW50IFdyb25nLCBQbGVhc2UgVHJ5IEFnYWluIExhdGVyIixJTUFHRV9FUlJPUjoiSW1hZ2UgTm90IEZvdW5kIixFTEVNRU5UX05PVF9GT1VORDoiSFRNTCBFbGVtZW50IE5vdCBGb3VuZCIsQUpBWF9OT1RfRk9VTkQ6IkVycm9yIExvYWRpbmcgQUpBWCA6IE5vdCBGb3VuZCIsQUpBWF9GT1JCSURERU46IkVycm9yIExvYWRpbmcgQUpBWCA6IEZvcmJpZGRlbiIsSUZSQU1FX0VSUk9SOiJFcnJvciBMb2FkaW5nIFBhZ2UiLFRPR0dMRV9aT09NOiJUb2dnbGUgem9vbSBsZXZlbCIsVE9HR0xFX1RIVU1CUzoiVG9nZ2xlIHRodW1ibmFpbHMiLFRPR0dMRV9TTElERVNIT1c6IlRvZ2dsZSBzbGlkZXNob3ciLFRPR0dMRV9GVUxMU0NSRUVOOiJUb2dnbGUgZnVsbC1zY3JlZW4gbW9kZSIsRE9XTkxPQUQ6IkRvd25sb2FkIn19LFI9bmV3IE1hcDtsZXQgXz0wO2NsYXNzIEIgZXh0ZW5kcyB1e2NvbnN0cnVjdG9yKHQsZT17fSl7dD10Lm1hcCgodD0+KHQud2lkdGgmJih0Ll93aWR0aD10LndpZHRoKSx0LmhlaWdodCYmKHQuX2hlaWdodD10LmhlaWdodCksdCkpKSxzdXBlcihhKCEwLHt9LE4sZSkpLHRoaXMuYmluZEhhbmRsZXJzKCksdGhpcy5zdGF0ZT0iaW5pdCIsdGhpcy5zZXRJdGVtcyh0KSx0aGlzLmF0dGFjaFBsdWdpbnMoQi5QbHVnaW5zKSx0aGlzLnRyaWdnZXIoImluaXQiKSwhMD09PXRoaXMub3B0aW9uKCJoaWRlU2Nyb2xsYmFyIikmJnRoaXMuaGlkZVNjcm9sbGJhcigpLHRoaXMuaW5pdExheW91dCgpLHRoaXMuaW5pdENhcm91c2VsKCksdGhpcy5hdHRhY2hFdmVudHMoKSxSLnNldCh0aGlzLmlkLHRoaXMpLHRoaXMudHJpZ2dlcigicHJlcGFyZSIpLHRoaXMuc3RhdGU9InJlYWR5Iix0aGlzLnRyaWdnZXIoInJlYWR5IiksdGhpcy4kY29udGFpbmVyLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJmYWxzZSIpLHRoaXMub3B0aW9uKCJ0cmFwRm9jdXMiKSYmdGhpcy5mb2N1cygpfW9wdGlvbih0LC4uLmUpe2NvbnN0IGk9dGhpcy5nZXRTbGlkZSgpO2xldCBzPWk/aVt0XTp2b2lkIDA7cmV0dXJuIHZvaWQgMCE9PXM/KCJmdW5jdGlvbiI9PXR5cGVvZiBzJiYocz1zLmNhbGwodGhpcyx0aGlzLC4uLmUpKSxzKTpzdXBlci5vcHRpb24odCwuLi5lKX1iaW5kSGFuZGxlcnMoKXtmb3IoY29uc3QgdCBvZlsib25Nb3VzZWRvd24iLCJvbktleWRvd24iLCJvbkNsaWNrIiwib25Gb2N1cyIsIm9uQ3JlYXRlU2xpZGUiLCJvblNldHRsZSIsIm9uVG91Y2hNb3ZlIiwib25Ub3VjaEVuZCIsIm9uVHJhbnNmb3JtIl0pdGhpc1t0XT10aGlzW3RdLmJpbmQodGhpcyl9YXR0YWNoRXZlbnRzKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLm9uTW91c2Vkb3duKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLm9uS2V5ZG93biwhMCksdGhpcy5vcHRpb24oInRyYXBGb2N1cyIpJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5vbkZvY3VzLCEwKSx0aGlzLiRjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMub25DbGljayl9ZGV0YWNoRXZlbnRzKCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLm9uTW91c2Vkb3duKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLm9uS2V5ZG93biwhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMub25Gb2N1cywhMCksdGhpcy4kY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLm9uQ2xpY2spfWluaXRMYXlvdXQoKXt0aGlzLiRyb290PXRoaXMub3B0aW9uKCJwYXJlbnRFbCIpfHxkb2N1bWVudC5ib2R5O2xldCB0PXRoaXMub3B0aW9uKCJ0ZW1wbGF0ZS5tYWluIik7dCYmKHRoaXMuJHJvb3QuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLHRoaXMubG9jYWxpemUodCkpLHRoaXMuJGNvbnRhaW5lcj10aGlzLiRyb290LnF1ZXJ5U2VsZWN0b3IoIi5mYW5jeWJveF9fY29udGFpbmVyIikpLHRoaXMuJGNvbnRhaW5lcnx8KHRoaXMuJGNvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLiRyb290LmFwcGVuZENoaWxkKHRoaXMuJGNvbnRhaW5lcikpLHRoaXMuJGNvbnRhaW5lci5vbnNjcm9sbD0oKT0+KHRoaXMuJGNvbnRhaW5lci5zY3JvbGxMZWZ0PTAsITEpLE9iamVjdC5lbnRyaWVzKHtjbGFzczoiZmFuY3lib3hfX2NvbnRhaW5lciIscm9sZToiZGlhbG9nIix0YWJJbmRleDoiLTEiLCJhcmlhLW1vZGFsIjoidHJ1ZSIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsImFyaWEtbGFiZWwiOnRoaXMubG9jYWxpemUoInt7TU9EQUx9fSIpfSkuZm9yRWFjaCgodD0+dGhpcy4kY29udGFpbmVyLnNldEF0dHJpYnV0ZSguLi50KSkpLHRoaXMub3B0aW9uKCJhbmltYXRlZCIpJiZ0aGlzLiRjb250YWluZXIuY2xhc3NMaXN0LmFkZCgiaXMtYW5pbWF0ZWQiKSx0aGlzLiRiYWNrZHJvcD10aGlzLiRjb250YWluZXIucXVlcnlTZWxlY3RvcigiLmZhbmN5Ym94X19iYWNrZHJvcCIpLHRoaXMuJGJhY2tkcm9wfHwodGhpcy4kYmFja2Ryb3A9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy4kYmFja2Ryb3AuY2xhc3NMaXN0LmFkZCgiZmFuY3lib3hfX2JhY2tkcm9wIiksdGhpcy4kY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuJGJhY2tkcm9wKSksdGhpcy4kY2Fyb3VzZWw9dGhpcy4kY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIi5mYW5jeWJveF9fY2Fyb3VzZWwiKSx0aGlzLiRjYXJvdXNlbHx8KHRoaXMuJGNhcm91c2VsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuJGNhcm91c2VsLmNsYXNzTGlzdC5hZGQoImZhbmN5Ym94X19jYXJvdXNlbCIpLHRoaXMuJGNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLiRjYXJvdXNlbCkpLHRoaXMuJGNvbnRhaW5lci5GYW5jeWJveD10aGlzLHRoaXMuaWQ9dGhpcy4kY29udGFpbmVyLmdldEF0dHJpYnV0ZSgiaWQiKSx0aGlzLmlkfHwodGhpcy5pZD10aGlzLm9wdGlvbnMuaWR8fCsrXyx0aGlzLiRjb250YWluZXIuc2V0QXR0cmlidXRlKCJpZCIsImZhbmN5Ym94LSIrdGhpcy5pZCkpO2NvbnN0IGU9dGhpcy5vcHRpb24oIm1haW5DbGFzcyIpO3JldHVybiBlJiZ0aGlzLiRjb250YWluZXIuY2xhc3NMaXN0LmFkZCguLi5lLnNwbGl0KCIgIikpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ3aXRoLWZhbmN5Ym94IiksdGhpcy50cmlnZ2VyKCJpbml0TGF5b3V0IiksdGhpc31zZXRJdGVtcyh0KXtjb25zdCBlPVtdO2Zvcihjb25zdCBpIG9mIHQpe2NvbnN0IHQ9aS4kdHJpZ2dlcjtpZih0KXtjb25zdCBlPXQuZGF0YXNldHx8e307aS5zcmM9ZS5zcmN8fHQuZ2V0QXR0cmlidXRlKCJocmVmIil8fGkuc3JjLGkudHlwZT1lLnR5cGV8fGkudHlwZSwhaS5zcmMmJnQgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50JiYoaS5zcmM9dC5jdXJyZW50U3JjfHxpLiR0cmlnZ2VyLnNyYyl9bGV0IHM9aS4kdGh1bWI7aWYoIXMpe2xldCB0PWkuJHRyaWdnZXImJmkuJHRyaWdnZXIub3JpZ1RhcmdldDt0JiYocz10IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudD90OnQucXVlcnlTZWxlY3RvcigiaW1nOm5vdChbYXJpYS1oaWRkZW5dKSIpKSwhcyYmaS4kdHJpZ2dlciYmKHM9aS4kdHJpZ2dlciBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQ/aS4kdHJpZ2dlcjppLiR0cmlnZ2VyLnF1ZXJ5U2VsZWN0b3IoImltZzpub3QoW2FyaWEtaGlkZGVuXSkiKSl9aS4kdGh1bWI9c3x8bnVsbDtsZXQgYT1pLnRodW1iOyFhJiZzJiYoYT1zLmN1cnJlbnRTcmN8fHMuc3JjLCFhJiZzLmRhdGFzZXQmJihhPXMuZGF0YXNldC5sYXp5U3JjfHxzLmRhdGFzZXQuc3JjKSksYXx8ImltYWdlIiE9PWkudHlwZXx8KGE9aS5zcmMpLGkudGh1bWI9YXx8bnVsbCxpLmNhcHRpb249aS5jYXB0aW9ufHwiIixlLnB1c2goaSl9dGhpcy5pdGVtcz1lfWluaXRDYXJvdXNlbCgpe3JldHVybiB0aGlzLkNhcm91c2VsPW5ldyB5KHRoaXMuJGNhcm91c2VsLGEoITAse30se3ByZWZpeDoiIixjbGFzc05hbWVzOnt2aWV3cG9ydDoiZmFuY3lib3hfX3ZpZXdwb3J0Iix0cmFjazoiZmFuY3lib3hfX3RyYWNrIixzbGlkZToiZmFuY3lib3hfX3NsaWRlIn0sdGV4dFNlbGVjdGlvbjohMCxwcmVsb2FkOnRoaXMub3B0aW9uKCJwcmVsb2FkIiksZnJpY3Rpb246Ljg4LHNsaWRlczp0aGlzLml0ZW1zLGluaXRpYWxQYWdlOnRoaXMub3B0aW9ucy5zdGFydEluZGV4LHNsaWRlc1BlclBhZ2U6MSxpbmZpbml0ZVg6dGhpcy5vcHRpb24oImluZmluaXRlIiksaW5maW5pdGVZOiEwLGwxMG46dGhpcy5vcHRpb24oImwxMG4iKSxEb3RzOiExLE5hdmlnYXRpb246e2NsYXNzTmFtZXM6e21haW46ImZhbmN5Ym94X19uYXYiLGJ1dHRvbjoiY2Fyb3VzZWxfX2J1dHRvbiIsbmV4dDoiaXMtbmV4dCIscHJldjoiaXMtcHJldiJ9fSxQYW56b29tOnt0ZXh0U2VsZWN0aW9uOiEwLHBhbk9ubHlab29tZWQ6KCk9PnRoaXMuQ2Fyb3VzZWwmJnRoaXMuQ2Fyb3VzZWwucGFnZXMmJnRoaXMuQ2Fyb3VzZWwucGFnZXMubGVuZ3RoPDImJiF0aGlzLm9wdGlvbigiZHJhZ1RvQ2xvc2UiKSxsb2NrQXhpczooKT0+e2lmKHRoaXMuQ2Fyb3VzZWwpe2xldCB0PSJ4IjtyZXR1cm4gdGhpcy5vcHRpb24oImRyYWdUb0Nsb3NlIikmJih0Kz0ieSIpLHR9fX0sb246eyIqIjoodCwuLi5lKT0+dGhpcy50cmlnZ2VyKGBDYXJvdXNlbC4ke3R9YCwuLi5lKSxpbml0OnQ9PnRoaXMuQ2Fyb3VzZWw9dCxjcmVhdGVTbGlkZTp0aGlzLm9uQ3JlYXRlU2xpZGUsc2V0dGxlOnRoaXMub25TZXR0bGV9fSx0aGlzLm9wdGlvbigiQ2Fyb3VzZWwiKSkpLHRoaXMub3B0aW9uKCJkcmFnVG9DbG9zZSIpJiZ0aGlzLkNhcm91c2VsLlBhbnpvb20ub24oe3RvdWNoTW92ZTp0aGlzLm9uVG91Y2hNb3ZlLGFmdGVyVHJhbnNmb3JtOnRoaXMub25UcmFuc2Zvcm0sdG91Y2hFbmQ6dGhpcy5vblRvdWNoRW5kfSksdGhpcy50cmlnZ2VyKCJpbml0Q2Fyb3VzZWwiKSx0aGlzfW9uQ3JlYXRlU2xpZGUodCxlKXtsZXQgaT1lLmNhcHRpb258fCIiO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMuY2FwdGlvbiYmKGk9dGhpcy5vcHRpb25zLmNhcHRpb24uY2FsbCh0aGlzLHRoaXMsdGhpcy5DYXJvdXNlbCxlKSksInN0cmluZyI9PXR5cGVvZiBpJiZpLmxlbmd0aCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxzPWBmYW5jeWJveF9fY2FwdGlvbl8ke3RoaXMuaWR9XyR7ZS5pbmRleH1gO3QuY2xhc3NOYW1lPSJmYW5jeWJveF9fY2FwdGlvbiIsdC5pbm5lckhUTUw9aSx0LnNldEF0dHJpYnV0ZSgiaWQiLHMpLGUuJGNhcHRpb249ZS4kZWwuYXBwZW5kQ2hpbGQodCksZS4kZWwuY2xhc3NMaXN0LmFkZCgiaGFzLWNhcHRpb24iKSxlLiRlbC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIscyl9fW9uU2V0dGxlKCl7dGhpcy5vcHRpb24oImF1dG9Gb2N1cyIpJiZ0aGlzLmZvY3VzKCl9b25Gb2N1cyh0KXt0aGlzLmlzVG9wbW9zdCgpJiZ0aGlzLmZvY3VzKHQpfW9uQ2xpY2sodCl7aWYodC5kZWZhdWx0UHJldmVudGVkKXJldHVybjtsZXQgZT10LmNvbXBvc2VkUGF0aCgpWzBdO2lmKGUubWF0Y2hlcygiW2RhdGEtZmFuY3lib3gtY2xvc2VdIikpcmV0dXJuIHQucHJldmVudERlZmF1bHQoKSx2b2lkIEIuY2xvc2UoITEsdCk7aWYoZS5tYXRjaGVzKCJbZGF0YS1mYW5jeWJveC1uZXh0XSIpKXJldHVybiB0LnByZXZlbnREZWZhdWx0KCksdm9pZCBCLm5leHQoKTtpZihlLm1hdGNoZXMoIltkYXRhLWZhbmN5Ym94LXByZXZdIikpcmV0dXJuIHQucHJldmVudERlZmF1bHQoKSx2b2lkIEIucHJldigpO2NvbnN0IGk9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZihpKXtpZihpLmNsb3Nlc3QoIltjb250ZW50ZWRpdGFibGVdIikpcmV0dXJuO2UubWF0Y2hlcyhTKXx8aS5ibHVyKCl9aWYoIWUuY2xvc2VzdCgiLmZhbmN5Ym94X19jb250ZW50IikmJiFnZXRTZWxlY3Rpb24oKS50b1N0cmluZygpLmxlbmd0aCYmITEhPT10aGlzLnRyaWdnZXIoImNsaWNrIix0KSlzd2l0Y2godGhpcy5vcHRpb24oImNsaWNrIikpe2Nhc2UiY2xvc2UiOnRoaXMuY2xvc2UoKTticmVhaztjYXNlIm5leHQiOnRoaXMubmV4dCgpfX1vblRvdWNoTW92ZSgpe2NvbnN0IHQ9dGhpcy5nZXRTbGlkZSgpLlBhbnpvb207cmV0dXJuIXR8fDE9PT10LmNvbnRlbnQuc2NhbGV9b25Ub3VjaEVuZCh0KXtjb25zdCBlPXQuZHJhZ09mZnNldC55O01hdGguYWJzKGUpPj0xNTB8fE1hdGguYWJzKGUpPj0zNSYmdC5kcmFnT2Zmc2V0LnRpbWU8MzUwPyh0aGlzLm9wdGlvbigiaGlkZUNsYXNzIikmJih0aGlzLmdldFNsaWRlKCkuaGlkZUNsYXNzPSJmYW5jeWJveC10aHJvd091dCIrKHQuY29udGVudC55PDA/IlVwIjoiRG93biIpKSx0aGlzLmNsb3NlKCkpOiJ5Ij09PXQubG9ja0F4aXMmJnQucGFuVG8oe3k6MH0pfW9uVHJhbnNmb3JtKHQpe2lmKHRoaXMuJGJhY2tkcm9wKXtjb25zdCBlPU1hdGguYWJzKHQuY29udGVudC55KSxpPWU8MT8iIjpNYXRoLm1heCguMzMsTWF0aC5taW4oMSwxLWUvdC5jb250ZW50LmZpdEhlaWdodCoxLjUpKTt0aGlzLiRjb250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoIi0tZmFuY3lib3gtdHMiLGk/IjBzIjoiIiksdGhpcy4kY29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KCItLWZhbmN5Ym94LW9wYWNpdHkiLGkpfX1vbk1vdXNlZG93bigpeyJyZWFkeSI9PT10aGlzLnN0YXRlJiZkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoImlzLXVzaW5nLW1vdXNlIil9b25LZXlkb3duKHQpe2lmKCF0aGlzLmlzVG9wbW9zdCgpKXJldHVybjtkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoImlzLXVzaW5nLW1vdXNlIik7Y29uc3QgZT10LmtleSxpPXRoaXMub3B0aW9uKCJrZXlib2FyZCIpO2lmKCFpfHx0LmN0cmxLZXl8fHQuYWx0S2V5fHx0LnNoaWZ0S2V5KXJldHVybjtjb25zdCBzPXQuY29tcG9zZWRQYXRoKClbMF0sYT1kb2N1bWVudC5hY3RpdmVFbGVtZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50LmNsYXNzTGlzdCxuPWEmJmEuY29udGFpbnMoImNhcm91c2VsX19idXR0b24iKTtpZigiRXNjYXBlIiE9PWUmJiFuJiYodC50YXJnZXQuaXNDb250ZW50RWRpdGFibGV8fC0xIT09WyJCVVRUT04iLCJURVhUQVJFQSIsIk9QVElPTiIsIklOUFVUIiwiU0VMRUNUIiwiVklERU8iXS5pbmRleE9mKHMubm9kZU5hbWUpKSlyZXR1cm47aWYoITE9PT10aGlzLnRyaWdnZXIoImtleWRvd24iLGUsdCkpcmV0dXJuO2NvbnN0IHI9aVtlXTsiZnVuY3Rpb24iPT10eXBlb2YgdGhpc1tyXSYmdGhpc1tyXSgpfWdldFNsaWRlKCl7Y29uc3QgdD10aGlzLkNhcm91c2VsO2lmKCF0KXJldHVybiBudWxsO2NvbnN0IGU9bnVsbD09PXQucGFnZT90Lm9wdGlvbigiaW5pdGlhbFBhZ2UiKTp0LnBhZ2UsaT10LnBhZ2VzfHxbXTtyZXR1cm4gaS5sZW5ndGgmJmlbZV0/aVtlXS5zbGlkZXNbMF06bnVsbH1mb2N1cyh0KXtpZihCLmlnbm9yZUZvY3VzQ2hhbmdlKXJldHVybjtpZihbImluaXQiLCJjbG9zaW5nIiwiY3VzdG9tQ2xvc2luZyIsImRlc3Ryb3kiXS5pbmRleE9mKHRoaXMuc3RhdGUpPi0xKXJldHVybjtjb25zdCBlPXRoaXMuJGNvbnRhaW5lcixpPXRoaXMuZ2V0U2xpZGUoKSxzPSJkb25lIj09PWkuc3RhdGU/aS4kZWw6bnVsbDtpZihzJiZzLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKXJldHVybjt0JiZ0LnByZXZlbnREZWZhdWx0KCksQi5pZ25vcmVGb2N1c0NoYW5nZT0hMDtjb25zdCBhPUFycmF5LmZyb20oZS5xdWVyeVNlbGVjdG9yQWxsKFMpKTtsZXQgbixyPVtdO2ZvcihsZXQgdCBvZiBhKXtjb25zdCBlPXQub2Zmc2V0UGFyZW50LGk9cyYmcy5jb250YWlucyh0KSxhPSF0aGlzLkNhcm91c2VsLiR2aWV3cG9ydC5jb250YWlucyh0KTtlJiYoaXx8YSk/KHIucHVzaCh0KSx2b2lkIDAhPT10LmRhdGFzZXQub3JpZ1RhYmluZGV4JiYodC50YWJJbmRleD10LmRhdGFzZXQub3JpZ1RhYmluZGV4LHQucmVtb3ZlQXR0cmlidXRlKCJkYXRhLW9yaWctdGFiaW5kZXgiKSksKHQuaGFzQXR0cmlidXRlKCJhdXRvRm9jdXMiKXx8IW4mJmkmJiF0LmNsYXNzTGlzdC5jb250YWlucygiY2Fyb3VzZWxfX2J1dHRvbiIpKSYmKG49dCkpOih0LmRhdGFzZXQub3JpZ1RhYmluZGV4PXZvaWQgMD09PXQuZGF0YXNldC5vcmlnVGFiaW5kZXg/dC5nZXRBdHRyaWJ1dGUoInRhYmluZGV4Iik6dC5kYXRhc2V0Lm9yaWdUYWJpbmRleCx0LnRhYkluZGV4PS0xKX10P3IuaW5kZXhPZih0LnRhcmdldCk+LTE/dGhpcy5sYXN0Rm9jdXM9dC50YXJnZXQ6dGhpcy5sYXN0Rm9jdXM9PT1lP0MocltyLmxlbmd0aC0xXSk6QyhlKTp0aGlzLm9wdGlvbigiYXV0b0ZvY3VzIikmJm4/QyhuKTpyLmluZGV4T2YoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk8MCYmQyhlKSx0aGlzLmxhc3RGb2N1cz1kb2N1bWVudC5hY3RpdmVFbGVtZW50LEIuaWdub3JlRm9jdXNDaGFuZ2U9ITF9aGlkZVNjcm9sbGJhcigpe2lmKCF3KXJldHVybjtjb25zdCB0PXdpbmRvdy5pbm5lcldpZHRoLWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCxlPSJmYW5jeWJveC1zdHlsZS1ub3Njcm9sbCI7bGV0IGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSk7aXx8dD4wJiYoaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpLGkuaWQ9ZSxpLnR5cGU9InRleHQvY3NzIixpLmlubmVySFRNTD1gLmNvbXBlbnNhdGUtZm9yLXNjcm9sbGJhciB7cGFkZGluZy1yaWdodDogJHt0fXB4O31gLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoaSksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJjb21wZW5zYXRlLWZvci1zY3JvbGxiYXIiKSl9cmV2ZWFsU2Nyb2xsYmFyKCl7ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJjb21wZW5zYXRlLWZvci1zY3JvbGxiYXIiKTtjb25zdCB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmYW5jeWJveC1zdHlsZS1ub3Njcm9sbCIpO3QmJnQucmVtb3ZlKCl9Y2xlYXJDb250ZW50KHQpe3RoaXMuQ2Fyb3VzZWwudHJpZ2dlcigicmVtb3ZlU2xpZGUiLHQpLHQuJGNvbnRlbnQmJih0LiRjb250ZW50LnJlbW92ZSgpLHQuJGNvbnRlbnQ9bnVsbCksdC4kY2xvc2VCdXR0b24mJih0LiRjbG9zZUJ1dHRvbi5yZW1vdmUoKSx0LiRjbG9zZUJ1dHRvbj1udWxsKSx0Ll9jbGFzc05hbWUmJnQuJGVsLmNsYXNzTGlzdC5yZW1vdmUodC5fY2xhc3NOYW1lKX1zZXRDb250ZW50KHQsZSxpPXt9KXtsZXQgcztjb25zdCBhPXQuJGVsO2lmKGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClbImltZyIsImlmcmFtZSIsInZpZGVvIiwiYXVkaW8iXS5pbmRleE9mKGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSk+LTE/KHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikscy5hcHBlbmRDaGlsZChlKSk6cz1lO2Vsc2V7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChlKTtzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHMuYXBwZW5kQ2hpbGQodCl9aWYodC5maWx0ZXImJiF0LmVycm9yJiYocz1zLnF1ZXJ5U2VsZWN0b3IodC5maWx0ZXIpKSxzIGluc3RhbmNlb2YgRWxlbWVudClyZXR1cm4gdC5fY2xhc3NOYW1lPWBoYXMtJHtpLnN1ZmZpeHx8dC50eXBlfHwidW5rbm93biJ9YCxhLmNsYXNzTGlzdC5hZGQodC5fY2xhc3NOYW1lKSxzLmNsYXNzTGlzdC5hZGQoImZhbmN5Ym94X19jb250ZW50IiksIm5vbmUiIT09cy5zdHlsZS5kaXNwbGF5JiYibm9uZSIhPT1nZXRDb21wdXRlZFN0eWxlKHMpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKXx8KHMuc3R5bGUuZGlzcGxheT10LmRpc3BsYXl8fHRoaXMub3B0aW9uKCJkZWZhdWx0RGlzcGxheSIpfHwiZmxleCIpLHQuaWQmJnMuc2V0QXR0cmlidXRlKCJpZCIsdC5pZCksdC4kY29udGVudD1zLGEucHJlcGVuZChzKSx0aGlzLm1hbmFnZUNsb3NlQnV0dG9uKHQpLCJsb2FkaW5nIiE9PXQuc3RhdGUmJnRoaXMucmV2ZWFsQ29udGVudCh0KSxzO3RoaXMuc2V0RXJyb3IodCwie3tFTEVNRU5UX05PVF9GT1VORH19Iil9bWFuYWdlQ2xvc2VCdXR0b24odCl7Y29uc3QgZT12b2lkIDA9PT10LmNsb3NlQnV0dG9uP3RoaXMub3B0aW9uKCJjbG9zZUJ1dHRvbiIpOnQuY2xvc2VCdXR0b247aWYoIWV8fCJ0b3AiPT09ZSYmdGhpcy4kY2xvc2VCdXR0b24pcmV0dXJuO2NvbnN0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7aS5jbGFzc0xpc3QuYWRkKCJjYXJvdXNlbF9fYnV0dG9uIiwiaXMtY2xvc2UiKSxpLnNldEF0dHJpYnV0ZSgidGl0bGUiLHRoaXMub3B0aW9ucy5sMTBuLkNMT1NFKSxpLmlubmVySFRNTD10aGlzLm9wdGlvbigidGVtcGxhdGUuY2xvc2VCdXR0b24iKSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwodD0+dGhpcy5jbG9zZSh0KSkpLCJpbnNpZGUiPT09ZT8odC4kY2xvc2VCdXR0b24mJnQuJGNsb3NlQnV0dG9uLnJlbW92ZSgpLHQuJGNsb3NlQnV0dG9uPXQuJGNvbnRlbnQuYXBwZW5kQ2hpbGQoaSkpOnRoaXMuJGNsb3NlQnV0dG9uPXRoaXMuJGNvbnRhaW5lci5pbnNlcnRCZWZvcmUoaSx0aGlzLiRjb250YWluZXIuZmlyc3RDaGlsZCl9cmV2ZWFsQ29udGVudCh0KXt0aGlzLnRyaWdnZXIoInJldmVhbCIsdCksdC4kY29udGVudC5zdHlsZS52aXNpYmlsaXR5PSIiO2xldCBlPSExO3QuZXJyb3J8fCJsb2FkaW5nIj09PXQuc3RhdGV8fG51bGwhPT10aGlzLkNhcm91c2VsLnByZXZQYWdlfHx0LmluZGV4IT09dGhpcy5vcHRpb25zLnN0YXJ0SW5kZXh8fChlPXZvaWQgMD09PXQuc2hvd0NsYXNzP3RoaXMub3B0aW9uKCJzaG93Q2xhc3MiKTp0LnNob3dDbGFzcyksZT8odC5zdGF0ZT0iYW5pbWF0aW5nIix0aGlzLmFuaW1hdGVDU1ModC4kY29udGVudCxlLCgoKT0+e3RoaXMuZG9uZSh0KX0pKSk6dGhpcy5kb25lKHQpfWFuaW1hdGVDU1ModCxlLGkpe2lmKHQmJnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFuaW1hdGlvbmVuZCIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMH0pKSwhdHx8IWUpcmV0dXJuIHZvaWQoImZ1bmN0aW9uIj09dHlwZW9mIGkmJmkoKSk7Y29uc3Qgcz1mdW5jdGlvbihhKXthLmN1cnJlbnRUYXJnZXQ9PT10aGlzJiYodC5yZW1vdmVFdmVudExpc3RlbmVyKCJhbmltYXRpb25lbmQiLHMpLGkmJmkoKSx0LmNsYXNzTGlzdC5yZW1vdmUoZSkpfTt0LmFkZEV2ZW50TGlzdGVuZXIoImFuaW1hdGlvbmVuZCIscyksdC5jbGFzc0xpc3QuYWRkKGUpfWRvbmUodCl7dC5zdGF0ZT0iZG9uZSIsdGhpcy50cmlnZ2VyKCJkb25lIix0KTtjb25zdCBlPXRoaXMuZ2V0U2xpZGUoKTtlJiZ0LmluZGV4PT09ZS5pbmRleCYmdGhpcy5vcHRpb24oImF1dG9Gb2N1cyIpJiZ0aGlzLmZvY3VzKCl9c2V0RXJyb3IodCxlKXt0LmVycm9yPWUsdGhpcy5oaWRlTG9hZGluZyh0KSx0aGlzLmNsZWFyQ29udGVudCh0KTtjb25zdCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NMaXN0LmFkZCgiZmFuY3lib3gtZXJyb3IiKSxpLmlubmVySFRNTD10aGlzLmxvY2FsaXplKGV8fCI8cD57e0VSUk9SfX08L3A+IiksdGhpcy5zZXRDb250ZW50KHQsaSx7c3VmZml4OiJlcnJvciJ9KX1zaG93TG9hZGluZyh0KXt0LnN0YXRlPSJsb2FkaW5nIix0LiRlbC5jbGFzc0xpc3QuYWRkKCJpcy1sb2FkaW5nIik7bGV0IGU9dC4kZWwucXVlcnlTZWxlY3RvcigiLmZhbmN5Ym94X19zcGlubmVyIik7ZXx8KGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5jbGFzc0xpc3QuYWRkKCJmYW5jeWJveF9fc3Bpbm5lciIpLGUuaW5uZXJIVE1MPXRoaXMub3B0aW9uKCJ0ZW1wbGF0ZS5zcGlubmVyIiksZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCgpPT57dGhpcy5DYXJvdXNlbC5QYW56b29tLnZlbG9jaXR5fHx0aGlzLmNsb3NlKCl9KSksdC4kZWwucHJlcGVuZChlKSl9aGlkZUxvYWRpbmcodCl7Y29uc3QgZT10LiRlbCYmdC4kZWwucXVlcnlTZWxlY3RvcigiLmZhbmN5Ym94X19zcGlubmVyIik7ZSYmKGUucmVtb3ZlKCksdC4kZWwuY2xhc3NMaXN0LnJlbW92ZSgiaXMtbG9hZGluZyIpKSwibG9hZGluZyI9PT10LnN0YXRlJiYodGhpcy50cmlnZ2VyKCJsb2FkIix0KSx0LnN0YXRlPSJyZWFkeSIpfW5leHQoKXtjb25zdCB0PXRoaXMuQ2Fyb3VzZWw7dCYmdC5wYWdlcy5sZW5ndGg+MSYmdC5zbGlkZU5leHQoKX1wcmV2KCl7Y29uc3QgdD10aGlzLkNhcm91c2VsO3QmJnQucGFnZXMubGVuZ3RoPjEmJnQuc2xpZGVQcmV2KCl9anVtcFRvKC4uLnQpe3RoaXMuQ2Fyb3VzZWwmJnRoaXMuQ2Fyb3VzZWwuc2xpZGVUbyguLi50KX1pc0Nsb3NpbmcoKXtyZXR1cm5bImNsb3NpbmciLCJjdXN0b21DbG9zaW5nIiwiZGVzdHJveSJdLmluY2x1ZGVzKHRoaXMuc3RhdGUpfWlzVG9wbW9zdCgpe3JldHVybiBCLmdldEluc3RhbmNlKCkuaWQ9PXRoaXMuaWR9Y2xvc2UodCl7aWYodCYmdC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNDbG9zaW5nKCkpcmV0dXJuO2lmKCExPT09dGhpcy50cmlnZ2VyKCJzaG91bGRDbG9zZSIsdCkpcmV0dXJuO2lmKHRoaXMuc3RhdGU9ImNsb3NpbmciLHRoaXMuQ2Fyb3VzZWwuUGFuem9vbS5kZXN0cm95KCksdGhpcy5kZXRhY2hFdmVudHMoKSx0aGlzLnRyaWdnZXIoImNsb3NpbmciLHQpLCJkZXN0cm95Ij09PXRoaXMuc3RhdGUpcmV0dXJuO3RoaXMuJGNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLHRoaXMuJGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJpcy1jbG9zaW5nIik7Y29uc3QgZT10aGlzLmdldFNsaWRlKCk7aWYodGhpcy5DYXJvdXNlbC5zbGlkZXMuZm9yRWFjaCgodD0+e3QuJGNvbnRlbnQmJnQuaW5kZXghPT1lLmluZGV4JiZ0aGlzLkNhcm91c2VsLnRyaWdnZXIoInJlbW92ZVNsaWRlIix0KX0pKSwiY2xvc2luZyI9PT10aGlzLnN0YXRlKXtjb25zdCB0PXZvaWQgMD09PWUuaGlkZUNsYXNzP3RoaXMub3B0aW9uKCJoaWRlQ2xhc3MiKTplLmhpZGVDbGFzczt0aGlzLmFuaW1hdGVDU1MoZS4kY29udGVudCx0LCgoKT0+e3RoaXMuZGVzdHJveSgpfSksITApfX1kZXN0cm95KCl7aWYoImRlc3Ryb3kiPT09dGhpcy5zdGF0ZSlyZXR1cm47dGhpcy5zdGF0ZT0iZGVzdHJveSIsdGhpcy50cmlnZ2VyKCJkZXN0cm95Iik7Y29uc3QgdD10aGlzLm9wdGlvbigicGxhY2VGb2N1c0JhY2siKT90aGlzLm9wdGlvbigidHJpZ2dlclRhcmdldCIsdGhpcy5nZXRTbGlkZSgpLiR0cmlnZ2VyKTpudWxsO3RoaXMuQ2Fyb3VzZWwuZGVzdHJveSgpLHRoaXMuZGV0YWNoUGx1Z2lucygpLHRoaXMuQ2Fyb3VzZWw9bnVsbCx0aGlzLm9wdGlvbnM9e30sdGhpcy5ldmVudHM9e30sdGhpcy4kY29udGFpbmVyLnJlbW92ZSgpLHRoaXMuJGNvbnRhaW5lcj10aGlzLiRiYWNrZHJvcD10aGlzLiRjYXJvdXNlbD1udWxsLHQmJkModCksUi5kZWxldGUodGhpcy5pZCk7Y29uc3QgZT1CLmdldEluc3RhbmNlKCk7ZT9lLmZvY3VzKCk6KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJ3aXRoLWZhbmN5Ym94IiksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJpcy11c2luZy1tb3VzZSIpLHRoaXMucmV2ZWFsU2Nyb2xsYmFyKCkpfXN0YXRpYyBzaG93KHQsZT17fSl7cmV0dXJuIG5ldyBCKHQsZSl9c3RhdGljIGZyb21FdmVudCh0LGU9e30pe2lmKHQuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47aWYodC5idXR0b24mJjAhPT10LmJ1dHRvbilyZXR1cm47aWYodC5jdHJsS2V5fHx0Lm1ldGFLZXl8fHQuc2hpZnRLZXkpcmV0dXJuO2NvbnN0IGk9dC5jb21wb3NlZFBhdGgoKVswXTtsZXQgcyxhLG4scj1pO2lmKChyLm1hdGNoZXMoIltkYXRhLWZhbmN5Ym94LXRyaWdnZXJdIil8fChyPXIuY2xvc2VzdCgiW2RhdGEtZmFuY3lib3gtdHJpZ2dlcl0iKSkpJiYoZS50cmlnZ2VyVGFyZ2V0PXIscz1yJiZyLmRhdGFzZXQmJnIuZGF0YXNldC5mYW5jeWJveFRyaWdnZXIpLHMpe2NvbnN0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgW2RhdGEtZmFuY3lib3g9IiR7c30iXWApLGU9cGFyc2VJbnQoci5kYXRhc2V0LmZhbmN5Ym94SW5kZXgsMTApfHwwO3I9dC5sZW5ndGg/dFtlXTpyfUFycmF5LmZyb20oQi5vcGVuZXJzLmtleXMoKSkucmV2ZXJzZSgpLnNvbWUoKGU9PntuPXJ8fGk7bGV0IHM9ITE7dHJ5e24gaW5zdGFuY2VvZiBFbGVtZW50JiYoInN0cmluZyI9PXR5cGVvZiBlfHxlIGluc3RhbmNlb2YgU3RyaW5nKSYmKHM9bi5tYXRjaGVzKGUpfHwobj1uLmNsb3Nlc3QoZSkpKX1jYXRjaCh0KXt9cmV0dXJuISFzJiYodC5wcmV2ZW50RGVmYXVsdCgpLGE9ZSwhMCl9KSk7bGV0IG89ITE7aWYoYSl7ZS5ldmVudD10LGUudGFyZ2V0PW4sbi5vcmlnVGFyZ2V0PWksbz1CLmZyb21PcGVuZXIoYSxlKTtjb25zdCBzPUIuZ2V0SW5zdGFuY2UoKTtzJiYicmVhZHkiPT09cy5zdGF0ZSYmdC5kZXRhaWwmJmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgiaXMtdXNpbmctbW91c2UiKX1yZXR1cm4gb31zdGF0aWMgZnJvbU9wZW5lcih0LGU9e30pe2xldCBpPVtdLHM9ZS5zdGFydEluZGV4fHwwLG49ZS50YXJnZXR8fG51bGw7Y29uc3Qgcj12b2lkIDAhPT0oZT1hKHt9LGUsQi5vcGVuZXJzLmdldCh0KSkpLmdyb3VwQWxsJiZlLmdyb3VwQWxsLG89dm9pZCAwPT09ZS5ncm91cEF0dHI/ImRhdGEtZmFuY3lib3giOmUuZ3JvdXBBdHRyLGw9byYmbj9uLmdldEF0dHJpYnV0ZShgJHtvfWApOiIiO2lmKCFufHxsfHxyKXtjb25zdCBzPWUucm9vdHx8KG4/bi5nZXRSb290Tm9kZSgpOmRvY3VtZW50LmJvZHkpO2k9W10uc2xpY2UuY2FsbChzLnF1ZXJ5U2VsZWN0b3JBbGwodCkpfWlmKG4mJiFyJiYoaT1sP2kuZmlsdGVyKCh0PT50LmdldEF0dHJpYnV0ZShgJHtvfWApPT09bCkpOltuXSksIWkubGVuZ3RoKXJldHVybiExO2NvbnN0IGM9Qi5nZXRJbnN0YW5jZSgpO3JldHVybiEoYyYmaS5pbmRleE9mKGMub3B0aW9ucy4kdHJpZ2dlcik+LTEpJiYocz1uP2kuaW5kZXhPZihuKTpzLGk9aS5tYXAoKGZ1bmN0aW9uKHQpe2NvbnN0IGU9WyJmYWxzZSIsIjAiLCJubyIsIm51bGwiLCJ1bmRlZmluZWQiXSxpPVsidHJ1ZSIsIjEiLCJ5ZXMiXSxzPU9iamVjdC5hc3NpZ24oe30sdC5kYXRhc2V0KSxhPXt9O2ZvcihsZXRbdCxuXW9mIE9iamVjdC5lbnRyaWVzKHMpKWlmKCJmYW5jeWJveCIhPT10KWlmKCJ3aWR0aCI9PT10fHwiaGVpZ2h0Ij09PXQpYVtgXyR7dH1gXT1uO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBufHxuIGluc3RhbmNlb2YgU3RyaW5nKWlmKGUuaW5kZXhPZihuKT4tMSlhW3RdPSExO2Vsc2UgaWYoaS5pbmRleE9mKGFbdF0pPi0xKWFbdF09ITA7ZWxzZSB0cnl7YVt0XT1KU09OLnBhcnNlKG4pfWNhdGNoKGUpe2FbdF09bn1lbHNlIGFbdF09bjtyZXR1cm4gdCBpbnN0YW5jZW9mIEVsZW1lbnQmJihhLiR0cmlnZ2VyPXQpLGF9KSksbmV3IEIoaSxhKHt9LGUse3N0YXJ0SW5kZXg6cywkdHJpZ2dlcjpufSkpKX1zdGF0aWMgYmluZCh0LGU9e30pe2Z1bmN0aW9uIGkoKXtkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixCLmZyb21FdmVudCwhMSl9dyYmKEIub3BlbmVycy5zaXplfHwoL2NvbXBsZXRlfGludGVyYWN0aXZlfGxvYWRlZC8udGVzdChkb2N1bWVudC5yZWFkeVN0YXRlKT9pKCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsaSkpLEIub3BlbmVycy5zZXQodCxlKSl9c3RhdGljIHVuYmluZCh0KXtCLm9wZW5lcnMuZGVsZXRlKHQpLEIub3BlbmVycy5zaXplfHxCLmRlc3Ryb3koKX1zdGF0aWMgZGVzdHJveSgpe2xldCB0O2Zvcig7dD1CLmdldEluc3RhbmNlKCk7KXQuZGVzdHJveSgpO0Iub3BlbmVycz1uZXcgTWFwLGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLEIuZnJvbUV2ZW50LCExKX1zdGF0aWMgZ2V0SW5zdGFuY2UodCl7cmV0dXJuIHQ/Ui5nZXQodCk6QXJyYXkuZnJvbShSLnZhbHVlcygpKS5yZXZlcnNlKCkuZmluZCgodD0+IXQuaXNDbG9zaW5nKCkmJnQpKXx8bnVsbH1zdGF0aWMgY2xvc2UodD0hMCxlKXtpZih0KWZvcihjb25zdCB0IG9mIFIudmFsdWVzKCkpdC5jbG9zZShlKTtlbHNle2NvbnN0IHQ9Qi5nZXRJbnN0YW5jZSgpO3QmJnQuY2xvc2UoZSl9fXN0YXRpYyBuZXh0KCl7Y29uc3QgdD1CLmdldEluc3RhbmNlKCk7dCYmdC5uZXh0KCl9c3RhdGljIHByZXYoKXtjb25zdCB0PUIuZ2V0SW5zdGFuY2UoKTt0JiZ0LnByZXYoKX19Qi52ZXJzaW9uPSI0LjAuMzEiLEIuZGVmYXVsdHM9TixCLm9wZW5lcnM9bmV3IE1hcCxCLlBsdWdpbnM9eixCLmJpbmQoIltkYXRhLWZhbmN5Ym94XSIpO2Zvcihjb25zdFt0LGVdb2YgT2JqZWN0LmVudHJpZXMoQi5QbHVnaW5zfHx7fSkpImZ1bmN0aW9uIj09dHlwZW9mIGUuY3JlYXRlJiZlLmNyZWF0ZShCKX0sNTk5OmZ1bmN0aW9uKHQsZSxpKXsidXNlIHN0cmljdCI7aS5kKGUse014OmZ1bmN0aW9uKCl7cmV0dXJuIF99LFFyOmZ1bmN0aW9uKCl7cmV0dXJuIGp9fSk7Y2xhc3Mgc3tjb25zdHJ1Y3Rvcih0LGUsaSl7dGhpcy5ldmVudFRhcmdldD10LHRoaXMuZXZlbnROYW1lPWUsdGhpcy5ldmVudE9wdGlvbnM9aSx0aGlzLnVub3JkZXJlZEJpbmRpbmdzPW5ldyBTZXR9Y29ubmVjdCgpe3RoaXMuZXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmV2ZW50TmFtZSx0aGlzLHRoaXMuZXZlbnRPcHRpb25zKX1kaXNjb25uZWN0KCl7dGhpcy5ldmVudFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMuZXZlbnROYW1lLHRoaXMsdGhpcy5ldmVudE9wdGlvbnMpfWJpbmRpbmdDb25uZWN0ZWQodCl7dGhpcy51bm9yZGVyZWRCaW5kaW5ncy5hZGQodCl9YmluZGluZ0Rpc2Nvbm5lY3RlZCh0KXt0aGlzLnVub3JkZXJlZEJpbmRpbmdzLmRlbGV0ZSh0KX1oYW5kbGVFdmVudCh0KXtjb25zdCBlPWZ1bmN0aW9uKHQpe2lmKCJpbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQiaW4gdClyZXR1cm4gdDt7Y29uc3R7c3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmV9PXQ7cmV0dXJuIE9iamVjdC5hc3NpZ24odCx7aW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOiExLHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpe3RoaXMuaW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPSEwLGUuY2FsbCh0aGlzKX19KX19KHQpO2Zvcihjb25zdCB0IG9mIHRoaXMuYmluZGluZ3Mpe2lmKGUuaW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKWJyZWFrO3QuaGFuZGxlRXZlbnQoZSl9fWdldCBiaW5kaW5ncygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudW5vcmRlcmVkQmluZGluZ3MpLnNvcnQoKCh0LGUpPT57Y29uc3QgaT10LmluZGV4LHM9ZS5pbmRleDtyZXR1cm4gaTxzPy0xOmk+cz8xOjB9KSl9fWNsYXNzIGF7Y29uc3RydWN0b3IodCl7dGhpcy5hcHBsaWNhdGlvbj10LHRoaXMuZXZlbnRMaXN0ZW5lck1hcHM9bmV3IE1hcCx0aGlzLnN0YXJ0ZWQ9ITF9c3RhcnQoKXt0aGlzLnN0YXJ0ZWR8fCh0aGlzLnN0YXJ0ZWQ9ITAsdGhpcy5ldmVudExpc3RlbmVycy5mb3JFYWNoKCh0PT50LmNvbm5lY3QoKSkpKX1zdG9wKCl7dGhpcy5zdGFydGVkJiYodGhpcy5zdGFydGVkPSExLHRoaXMuZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgodD0+dC5kaXNjb25uZWN0KCkpKSl9Z2V0IGV2ZW50TGlzdGVuZXJzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5ldmVudExpc3RlbmVyTWFwcy52YWx1ZXMoKSkucmVkdWNlKCgodCxlKT0+dC5jb25jYXQoQXJyYXkuZnJvbShlLnZhbHVlcygpKSkpLFtdKX1iaW5kaW5nQ29ubmVjdGVkKHQpe3RoaXMuZmV0Y2hFdmVudExpc3RlbmVyRm9yQmluZGluZyh0KS5iaW5kaW5nQ29ubmVjdGVkKHQpfWJpbmRpbmdEaXNjb25uZWN0ZWQodCl7dGhpcy5mZXRjaEV2ZW50TGlzdGVuZXJGb3JCaW5kaW5nKHQpLmJpbmRpbmdEaXNjb25uZWN0ZWQodCl9aGFuZGxlRXJyb3IodCxlLGk9e30pe3RoaXMuYXBwbGljYXRpb24uaGFuZGxlRXJyb3IodCxgRXJyb3IgJHtlfWAsaSl9ZmV0Y2hFdmVudExpc3RlbmVyRm9yQmluZGluZyh0KXtjb25zdHtldmVudFRhcmdldDplLGV2ZW50TmFtZTppLGV2ZW50T3B0aW9uczpzfT10O3JldHVybiB0aGlzLmZldGNoRXZlbnRMaXN0ZW5lcihlLGkscyl9ZmV0Y2hFdmVudExpc3RlbmVyKHQsZSxpKXtjb25zdCBzPXRoaXMuZmV0Y2hFdmVudExpc3RlbmVyTWFwRm9yRXZlbnRUYXJnZXQodCksYT10aGlzLmNhY2hlS2V5KGUsaSk7bGV0IG49cy5nZXQoYSk7cmV0dXJuIG58fChuPXRoaXMuY3JlYXRlRXZlbnRMaXN0ZW5lcih0LGUsaSkscy5zZXQoYSxuKSksbn1jcmVhdGVFdmVudExpc3RlbmVyKHQsZSxpKXtjb25zdCBhPW5ldyBzKHQsZSxpKTtyZXR1cm4gdGhpcy5zdGFydGVkJiZhLmNvbm5lY3QoKSxhfWZldGNoRXZlbnRMaXN0ZW5lck1hcEZvckV2ZW50VGFyZ2V0KHQpe2xldCBlPXRoaXMuZXZlbnRMaXN0ZW5lck1hcHMuZ2V0KHQpO3JldHVybiBlfHwoZT1uZXcgTWFwLHRoaXMuZXZlbnRMaXN0ZW5lck1hcHMuc2V0KHQsZSkpLGV9Y2FjaGVLZXkodCxlKXtjb25zdCBpPVt0XTtyZXR1cm4gT2JqZWN0LmtleXMoZSkuc29ydCgpLmZvckVhY2goKHQ9PntpLnB1c2goYCR7ZVt0XT8iIjoiISJ9JHt0fWApfSkpLGkuam9pbigiOiIpfX1jb25zdCBuPS9eKCguKz8pKEAod2luZG93fGRvY3VtZW50KSk/LT4pPyguKz8pKCMoW146XSs/KSkoOiguKykpPyQvO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQucmVwbGFjZSgvKD86W18tXSkoW2EtejAtOV0pL2csKCh0LGUpPT5lLnRvVXBwZXJDYXNlKCkpKX1mdW5jdGlvbiBvKHQpe3JldHVybiB0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdC5yZXBsYWNlKC8oW0EtWl0pL2csKCh0LGUpPT5gLSR7ZS50b0xvd2VyQ2FzZSgpfWApKX1jb25zdCBjPXthOnQ9PiJjbGljayIsYnV0dG9uOnQ9PiJjbGljayIsZm9ybTp0PT4ic3VibWl0IixkZXRhaWxzOnQ9PiJ0b2dnbGUiLGlucHV0OnQ9PiJzdWJtaXQiPT10LmdldEF0dHJpYnV0ZSgidHlwZSIpPyJjbGljayI6ImlucHV0IixzZWxlY3Q6dD0+ImNoYW5nZSIsdGV4dGFyZWE6dD0+ImlucHV0In07ZnVuY3Rpb24gaCh0KXt0aHJvdyBuZXcgRXJyb3IodCl9ZnVuY3Rpb24gZCh0KXt0cnl7cmV0dXJuIEpTT04ucGFyc2UodCl9Y2F0Y2goZSl7cmV0dXJuIHR9fWNsYXNzIHV7Y29uc3RydWN0b3IodCxlKXt0aGlzLmNvbnRleHQ9dCx0aGlzLmFjdGlvbj1lfWdldCBpbmRleCgpe3JldHVybiB0aGlzLmFjdGlvbi5pbmRleH1nZXQgZXZlbnRUYXJnZXQoKXtyZXR1cm4gdGhpcy5hY3Rpb24uZXZlbnRUYXJnZXR9Z2V0IGV2ZW50T3B0aW9ucygpe3JldHVybiB0aGlzLmFjdGlvbi5ldmVudE9wdGlvbnN9Z2V0IGlkZW50aWZpZXIoKXtyZXR1cm4gdGhpcy5jb250ZXh0LmlkZW50aWZpZXJ9aGFuZGxlRXZlbnQodCl7dGhpcy53aWxsQmVJbnZva2VkQnlFdmVudCh0KSYmdGhpcy5pbnZva2VXaXRoRXZlbnQodCl9Z2V0IGV2ZW50TmFtZSgpe3JldHVybiB0aGlzLmFjdGlvbi5ldmVudE5hbWV9Z2V0IG1ldGhvZCgpe2NvbnN0IHQ9dGhpcy5jb250cm9sbGVyW3RoaXMubWV0aG9kTmFtZV07aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpcmV0dXJuIHQ7dGhyb3cgbmV3IEVycm9yKGBBY3Rpb24gIiR7dGhpcy5hY3Rpb259IiByZWZlcmVuY2VzIHVuZGVmaW5lZCBtZXRob2QgIiR7dGhpcy5tZXRob2ROYW1lfSJgKX1pbnZva2VXaXRoRXZlbnQodCl7Y29uc3R7dGFyZ2V0OmUsY3VycmVudFRhcmdldDppfT10O3RyeXtjb25zdHtwYXJhbXM6c309dGhpcy5hY3Rpb24sYT1PYmplY3QuYXNzaWduKHQse3BhcmFtczpzfSk7dGhpcy5tZXRob2QuY2FsbCh0aGlzLmNvbnRyb2xsZXIsYSksdGhpcy5jb250ZXh0LmxvZ0RlYnVnQWN0aXZpdHkodGhpcy5tZXRob2ROYW1lLHtldmVudDp0LHRhcmdldDplLGN1cnJlbnRUYXJnZXQ6aSxhY3Rpb246dGhpcy5tZXRob2ROYW1lfSl9Y2F0Y2goZSl7Y29uc3R7aWRlbnRpZmllcjppLGNvbnRyb2xsZXI6cyxlbGVtZW50OmEsaW5kZXg6bn09dGhpcyxyPXtpZGVudGlmaWVyOmksY29udHJvbGxlcjpzLGVsZW1lbnQ6YSxpbmRleDpuLGV2ZW50OnR9O3RoaXMuY29udGV4dC5oYW5kbGVFcnJvcihlLGBpbnZva2luZyBhY3Rpb24gIiR7dGhpcy5hY3Rpb259ImAscil9fXdpbGxCZUludm9rZWRCeUV2ZW50KHQpe2NvbnN0IGU9dC50YXJnZXQ7cmV0dXJuIHRoaXMuZWxlbWVudD09PWV8fChlIGluc3RhbmNlb2YgRWxlbWVudCYmdGhpcy5lbGVtZW50LmNvbnRhaW5zKGUpP3RoaXMuc2NvcGUuY29udGFpbnNFbGVtZW50KGUpOnRoaXMuc2NvcGUuY29udGFpbnNFbGVtZW50KHRoaXMuYWN0aW9uLmVsZW1lbnQpKX1nZXQgY29udHJvbGxlcigpe3JldHVybiB0aGlzLmNvbnRleHQuY29udHJvbGxlcn1nZXQgbWV0aG9kTmFtZSgpe3JldHVybiB0aGlzLmFjdGlvbi5tZXRob2ROYW1lfWdldCBlbGVtZW50KCl7cmV0dXJuIHRoaXMuc2NvcGUuZWxlbWVudH1nZXQgc2NvcGUoKXtyZXR1cm4gdGhpcy5jb250ZXh0LnNjb3BlfX1jbGFzcyBwe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5tdXRhdGlvbk9ic2VydmVySW5pdD17YXR0cmlidXRlczohMCxjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0sdGhpcy5lbGVtZW50PXQsdGhpcy5zdGFydGVkPSExLHRoaXMuZGVsZWdhdGU9ZSx0aGlzLmVsZW1lbnRzPW5ldyBTZXQsdGhpcy5tdXRhdGlvbk9ic2VydmVyPW5ldyBNdXRhdGlvbk9ic2VydmVyKCh0PT50aGlzLnByb2Nlc3NNdXRhdGlvbnModCkpKX1zdGFydCgpe3RoaXMuc3RhcnRlZHx8KHRoaXMuc3RhcnRlZD0hMCx0aGlzLm11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsZW1lbnQsdGhpcy5tdXRhdGlvbk9ic2VydmVySW5pdCksdGhpcy5yZWZyZXNoKCkpfXBhdXNlKHQpe3RoaXMuc3RhcnRlZCYmKHRoaXMubXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5zdGFydGVkPSExKSx0KCksdGhpcy5zdGFydGVkfHwodGhpcy5tdXRhdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50LHRoaXMubXV0YXRpb25PYnNlcnZlckluaXQpLHRoaXMuc3RhcnRlZD0hMCl9c3RvcCgpe3RoaXMuc3RhcnRlZCYmKHRoaXMubXV0YXRpb25PYnNlcnZlci50YWtlUmVjb3JkcygpLHRoaXMubXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5zdGFydGVkPSExKX1yZWZyZXNoKCl7aWYodGhpcy5zdGFydGVkKXtjb25zdCB0PW5ldyBTZXQodGhpcy5tYXRjaEVsZW1lbnRzSW5UcmVlKCkpO2Zvcihjb25zdCBlIG9mIEFycmF5LmZyb20odGhpcy5lbGVtZW50cykpdC5oYXMoZSl8fHRoaXMucmVtb3ZlRWxlbWVudChlKTtmb3IoY29uc3QgZSBvZiBBcnJheS5mcm9tKHQpKXRoaXMuYWRkRWxlbWVudChlKX19cHJvY2Vzc011dGF0aW9ucyh0KXtpZih0aGlzLnN0YXJ0ZWQpZm9yKGNvbnN0IGUgb2YgdCl0aGlzLnByb2Nlc3NNdXRhdGlvbihlKX1wcm9jZXNzTXV0YXRpb24odCl7ImF0dHJpYnV0ZXMiPT10LnR5cGU/dGhpcy5wcm9jZXNzQXR0cmlidXRlQ2hhbmdlKHQudGFyZ2V0LHQuYXR0cmlidXRlTmFtZSk6ImNoaWxkTGlzdCI9PXQudHlwZSYmKHRoaXMucHJvY2Vzc1JlbW92ZWROb2Rlcyh0LnJlbW92ZWROb2RlcyksdGhpcy5wcm9jZXNzQWRkZWROb2Rlcyh0LmFkZGVkTm9kZXMpKX1wcm9jZXNzQXR0cmlidXRlQ2hhbmdlKHQsZSl7Y29uc3QgaT10O3RoaXMuZWxlbWVudHMuaGFzKGkpP3RoaXMuZGVsZWdhdGUuZWxlbWVudEF0dHJpYnV0ZUNoYW5nZWQmJnRoaXMubWF0Y2hFbGVtZW50KGkpP3RoaXMuZGVsZWdhdGUuZWxlbWVudEF0dHJpYnV0ZUNoYW5nZWQoaSxlKTp0aGlzLnJlbW92ZUVsZW1lbnQoaSk6dGhpcy5tYXRjaEVsZW1lbnQoaSkmJnRoaXMuYWRkRWxlbWVudChpKX1wcm9jZXNzUmVtb3ZlZE5vZGVzKHQpe2Zvcihjb25zdCBlIG9mIEFycmF5LmZyb20odCkpe2NvbnN0IHQ9dGhpcy5lbGVtZW50RnJvbU5vZGUoZSk7dCYmdGhpcy5wcm9jZXNzVHJlZSh0LHRoaXMucmVtb3ZlRWxlbWVudCl9fXByb2Nlc3NBZGRlZE5vZGVzKHQpe2Zvcihjb25zdCBlIG9mIEFycmF5LmZyb20odCkpe2NvbnN0IHQ9dGhpcy5lbGVtZW50RnJvbU5vZGUoZSk7dCYmdGhpcy5lbGVtZW50SXNBY3RpdmUodCkmJnRoaXMucHJvY2Vzc1RyZWUodCx0aGlzLmFkZEVsZW1lbnQpfX1tYXRjaEVsZW1lbnQodCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUubWF0Y2hFbGVtZW50KHQpfW1hdGNoRWxlbWVudHNJblRyZWUodD10aGlzLmVsZW1lbnQpe3JldHVybiB0aGlzLmRlbGVnYXRlLm1hdGNoRWxlbWVudHNJblRyZWUodCl9cHJvY2Vzc1RyZWUodCxlKXtmb3IoY29uc3QgaSBvZiB0aGlzLm1hdGNoRWxlbWVudHNJblRyZWUodCkpZS5jYWxsKHRoaXMsaSl9ZWxlbWVudEZyb21Ob2RlKHQpe2lmKHQubm9kZVR5cGU9PU5vZGUuRUxFTUVOVF9OT0RFKXJldHVybiB0fWVsZW1lbnRJc0FjdGl2ZSh0KXtyZXR1cm4gdC5pc0Nvbm5lY3RlZD09dGhpcy5lbGVtZW50LmlzQ29ubmVjdGVkJiZ0aGlzLmVsZW1lbnQuY29udGFpbnModCl9YWRkRWxlbWVudCh0KXt0aGlzLmVsZW1lbnRzLmhhcyh0KXx8dGhpcy5lbGVtZW50SXNBY3RpdmUodCkmJih0aGlzLmVsZW1lbnRzLmFkZCh0KSx0aGlzLmRlbGVnYXRlLmVsZW1lbnRNYXRjaGVkJiZ0aGlzLmRlbGVnYXRlLmVsZW1lbnRNYXRjaGVkKHQpKX1yZW1vdmVFbGVtZW50KHQpe3RoaXMuZWxlbWVudHMuaGFzKHQpJiYodGhpcy5lbGVtZW50cy5kZWxldGUodCksdGhpcy5kZWxlZ2F0ZS5lbGVtZW50VW5tYXRjaGVkJiZ0aGlzLmRlbGVnYXRlLmVsZW1lbnRVbm1hdGNoZWQodCkpfX1jbGFzcyBne2NvbnN0cnVjdG9yKHQsZSxpKXt0aGlzLmF0dHJpYnV0ZU5hbWU9ZSx0aGlzLmRlbGVnYXRlPWksdGhpcy5lbGVtZW50T2JzZXJ2ZXI9bmV3IHAodCx0aGlzKX1nZXQgZWxlbWVudCgpe3JldHVybiB0aGlzLmVsZW1lbnRPYnNlcnZlci5lbGVtZW50fWdldCBzZWxlY3Rvcigpe3JldHVybmBbJHt0aGlzLmF0dHJpYnV0ZU5hbWV9XWB9c3RhcnQoKXt0aGlzLmVsZW1lbnRPYnNlcnZlci5zdGFydCgpfXBhdXNlKHQpe3RoaXMuZWxlbWVudE9ic2VydmVyLnBhdXNlKHQpfXN0b3AoKXt0aGlzLmVsZW1lbnRPYnNlcnZlci5zdG9wKCl9cmVmcmVzaCgpe3RoaXMuZWxlbWVudE9ic2VydmVyLnJlZnJlc2goKX1nZXQgc3RhcnRlZCgpe3JldHVybiB0aGlzLmVsZW1lbnRPYnNlcnZlci5zdGFydGVkfW1hdGNoRWxlbWVudCh0KXtyZXR1cm4gdC5oYXNBdHRyaWJ1dGUodGhpcy5hdHRyaWJ1dGVOYW1lKX1tYXRjaEVsZW1lbnRzSW5UcmVlKHQpe2NvbnN0IGU9dGhpcy5tYXRjaEVsZW1lbnQodCk/W3RdOltdLGk9QXJyYXkuZnJvbSh0LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5zZWxlY3RvcikpO3JldHVybiBlLmNvbmNhdChpKX1lbGVtZW50TWF0Y2hlZCh0KXt0aGlzLmRlbGVnYXRlLmVsZW1lbnRNYXRjaGVkQXR0cmlidXRlJiZ0aGlzLmRlbGVnYXRlLmVsZW1lbnRNYXRjaGVkQXR0cmlidXRlKHQsdGhpcy5hdHRyaWJ1dGVOYW1lKX1lbGVtZW50VW5tYXRjaGVkKHQpe3RoaXMuZGVsZWdhdGUuZWxlbWVudFVubWF0Y2hlZEF0dHJpYnV0ZSYmdGhpcy5kZWxlZ2F0ZS5lbGVtZW50VW5tYXRjaGVkQXR0cmlidXRlKHQsdGhpcy5hdHRyaWJ1dGVOYW1lKX1lbGVtZW50QXR0cmlidXRlQ2hhbmdlZCh0LGUpe3RoaXMuZGVsZWdhdGUuZWxlbWVudEF0dHJpYnV0ZVZhbHVlQ2hhbmdlZCYmdGhpcy5hdHRyaWJ1dGVOYW1lPT1lJiZ0aGlzLmRlbGVnYXRlLmVsZW1lbnRBdHRyaWJ1dGVWYWx1ZUNoYW5nZWQodCxlKX19Y2xhc3MgZntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuZWxlbWVudD10LHRoaXMuZGVsZWdhdGU9ZSx0aGlzLnN0YXJ0ZWQ9ITEsdGhpcy5zdHJpbmdNYXA9bmV3IE1hcCx0aGlzLm11dGF0aW9uT2JzZXJ2ZXI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKHQ9PnRoaXMucHJvY2Vzc011dGF0aW9ucyh0KSkpfXN0YXJ0KCl7dGhpcy5zdGFydGVkfHwodGhpcy5zdGFydGVkPSEwLHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudCx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVPbGRWYWx1ZTohMH0pLHRoaXMucmVmcmVzaCgpKX1zdG9wKCl7dGhpcy5zdGFydGVkJiYodGhpcy5tdXRhdGlvbk9ic2VydmVyLnRha2VSZWNvcmRzKCksdGhpcy5tdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnN0YXJ0ZWQ9ITEpfXJlZnJlc2goKXtpZih0aGlzLnN0YXJ0ZWQpZm9yKGNvbnN0IHQgb2YgdGhpcy5rbm93bkF0dHJpYnV0ZU5hbWVzKXRoaXMucmVmcmVzaEF0dHJpYnV0ZSh0LG51bGwpfXByb2Nlc3NNdXRhdGlvbnModCl7aWYodGhpcy5zdGFydGVkKWZvcihjb25zdCBlIG9mIHQpdGhpcy5wcm9jZXNzTXV0YXRpb24oZSl9cHJvY2Vzc011dGF0aW9uKHQpe2NvbnN0IGU9dC5hdHRyaWJ1dGVOYW1lO2UmJnRoaXMucmVmcmVzaEF0dHJpYnV0ZShlLHQub2xkVmFsdWUpfXJlZnJlc2hBdHRyaWJ1dGUodCxlKXtjb25zdCBpPXRoaXMuZGVsZWdhdGUuZ2V0U3RyaW5nTWFwS2V5Rm9yQXR0cmlidXRlKHQpO2lmKG51bGwhPWkpe3RoaXMuc3RyaW5nTWFwLmhhcyh0KXx8dGhpcy5zdHJpbmdNYXBLZXlBZGRlZChpLHQpO2NvbnN0IHM9dGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZSh0KTtpZih0aGlzLnN0cmluZ01hcC5nZXQodCkhPXMmJnRoaXMuc3RyaW5nTWFwVmFsdWVDaGFuZ2VkKHMsaSxlKSxudWxsPT1zKXtjb25zdCBlPXRoaXMuc3RyaW5nTWFwLmdldCh0KTt0aGlzLnN0cmluZ01hcC5kZWxldGUodCksZSYmdGhpcy5zdHJpbmdNYXBLZXlSZW1vdmVkKGksdCxlKX1lbHNlIHRoaXMuc3RyaW5nTWFwLnNldCh0LHMpfX1zdHJpbmdNYXBLZXlBZGRlZCh0LGUpe3RoaXMuZGVsZWdhdGUuc3RyaW5nTWFwS2V5QWRkZWQmJnRoaXMuZGVsZWdhdGUuc3RyaW5nTWFwS2V5QWRkZWQodCxlKX1zdHJpbmdNYXBWYWx1ZUNoYW5nZWQodCxlLGkpe3RoaXMuZGVsZWdhdGUuc3RyaW5nTWFwVmFsdWVDaGFuZ2VkJiZ0aGlzLmRlbGVnYXRlLnN0cmluZ01hcFZhbHVlQ2hhbmdlZCh0LGUsaSl9c3RyaW5nTWFwS2V5UmVtb3ZlZCh0LGUsaSl7dGhpcy5kZWxlZ2F0ZS5zdHJpbmdNYXBLZXlSZW1vdmVkJiZ0aGlzLmRlbGVnYXRlLnN0cmluZ01hcEtleVJlbW92ZWQodCxlLGkpfWdldCBrbm93bkF0dHJpYnV0ZU5hbWVzKCl7cmV0dXJuIEFycmF5LmZyb20obmV3IFNldCh0aGlzLmN1cnJlbnRBdHRyaWJ1dGVOYW1lcy5jb25jYXQodGhpcy5yZWNvcmRlZEF0dHJpYnV0ZU5hbWVzKSkpfWdldCBjdXJyZW50QXR0cmlidXRlTmFtZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnQuYXR0cmlidXRlcykubWFwKCh0PT50Lm5hbWUpKX1nZXQgcmVjb3JkZWRBdHRyaWJ1dGVOYW1lcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuc3RyaW5nTWFwLmtleXMoKSl9fWZ1bmN0aW9uIG0odCxlKXtsZXQgaT10LmdldChlKTtyZXR1cm4gaXx8KGk9bmV3IFNldCx0LnNldChlLGkpKSxpfWNsYXNzIHZ7Y29uc3RydWN0b3IoKXt0aGlzLnZhbHVlc0J5S2V5PW5ldyBNYXB9Z2V0IGtleXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnZhbHVlc0J5S2V5LmtleXMoKSl9Z2V0IHZhbHVlcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudmFsdWVzQnlLZXkudmFsdWVzKCkpLnJlZHVjZSgoKHQsZSk9PnQuY29uY2F0KEFycmF5LmZyb20oZSkpKSxbXSl9Z2V0IHNpemUoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnZhbHVlc0J5S2V5LnZhbHVlcygpKS5yZWR1Y2UoKCh0LGUpPT50K2Uuc2l6ZSksMCl9YWRkKHQsZSl7IWZ1bmN0aW9uKHQsZSxpKXttKHQsZSkuYWRkKGkpfSh0aGlzLnZhbHVlc0J5S2V5LHQsZSl9ZGVsZXRlKHQsZSl7IWZ1bmN0aW9uKHQsZSxpKXttKHQsZSkuZGVsZXRlKGkpLGZ1bmN0aW9uKHQsZSl7Y29uc3QgaT10LmdldChlKTtudWxsIT1pJiYwPT1pLnNpemUmJnQuZGVsZXRlKGUpfSh0LGUpfSh0aGlzLnZhbHVlc0J5S2V5LHQsZSl9aGFzKHQsZSl7Y29uc3QgaT10aGlzLnZhbHVlc0J5S2V5LmdldCh0KTtyZXR1cm4gbnVsbCE9aSYmaS5oYXMoZSl9aGFzS2V5KHQpe3JldHVybiB0aGlzLnZhbHVlc0J5S2V5Lmhhcyh0KX1oYXNWYWx1ZSh0KXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnZhbHVlc0J5S2V5LnZhbHVlcygpKS5zb21lKChlPT5lLmhhcyh0KSkpfWdldFZhbHVlc0ZvcktleSh0KXtjb25zdCBlPXRoaXMudmFsdWVzQnlLZXkuZ2V0KHQpO3JldHVybiBlP0FycmF5LmZyb20oZSk6W119Z2V0S2V5c0ZvclZhbHVlKHQpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudmFsdWVzQnlLZXkpLmZpbHRlcigoKFtlLGldKT0+aS5oYXModCkpKS5tYXAoKChbdCxlXSk9PnQpKX19Y2xhc3MgeHtjb25zdHJ1Y3Rvcih0LGUsaSl7dGhpcy5hdHRyaWJ1dGVPYnNlcnZlcj1uZXcgZyh0LGUsdGhpcyksdGhpcy5kZWxlZ2F0ZT1pLHRoaXMudG9rZW5zQnlFbGVtZW50PW5ldyB2fWdldCBzdGFydGVkKCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlT2JzZXJ2ZXIuc3RhcnRlZH1zdGFydCgpe3RoaXMuYXR0cmlidXRlT2JzZXJ2ZXIuc3RhcnQoKX1wYXVzZSh0KXt0aGlzLmF0dHJpYnV0ZU9ic2VydmVyLnBhdXNlKHQpfXN0b3AoKXt0aGlzLmF0dHJpYnV0ZU9ic2VydmVyLnN0b3AoKX1yZWZyZXNoKCl7dGhpcy5hdHRyaWJ1dGVPYnNlcnZlci5yZWZyZXNoKCl9Z2V0IGVsZW1lbnQoKXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVPYnNlcnZlci5lbGVtZW50fWdldCBhdHRyaWJ1dGVOYW1lKCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlT2JzZXJ2ZXIuYXR0cmlidXRlTmFtZX1lbGVtZW50TWF0Y2hlZEF0dHJpYnV0ZSh0KXt0aGlzLnRva2Vuc01hdGNoZWQodGhpcy5yZWFkVG9rZW5zRm9yRWxlbWVudCh0KSl9ZWxlbWVudEF0dHJpYnV0ZVZhbHVlQ2hhbmdlZCh0KXtjb25zdFtlLGldPXRoaXMucmVmcmVzaFRva2Vuc0ZvckVsZW1lbnQodCk7dGhpcy50b2tlbnNVbm1hdGNoZWQoZSksdGhpcy50b2tlbnNNYXRjaGVkKGkpfWVsZW1lbnRVbm1hdGNoZWRBdHRyaWJ1dGUodCl7dGhpcy50b2tlbnNVbm1hdGNoZWQodGhpcy50b2tlbnNCeUVsZW1lbnQuZ2V0VmFsdWVzRm9yS2V5KHQpKX10b2tlbnNNYXRjaGVkKHQpe3QuZm9yRWFjaCgodD0+dGhpcy50b2tlbk1hdGNoZWQodCkpKX10b2tlbnNVbm1hdGNoZWQodCl7dC5mb3JFYWNoKCh0PT50aGlzLnRva2VuVW5tYXRjaGVkKHQpKSl9dG9rZW5NYXRjaGVkKHQpe3RoaXMuZGVsZWdhdGUudG9rZW5NYXRjaGVkKHQpLHRoaXMudG9rZW5zQnlFbGVtZW50LmFkZCh0LmVsZW1lbnQsdCl9dG9rZW5Vbm1hdGNoZWQodCl7dGhpcy5kZWxlZ2F0ZS50b2tlblVubWF0Y2hlZCh0KSx0aGlzLnRva2Vuc0J5RWxlbWVudC5kZWxldGUodC5lbGVtZW50LHQpfXJlZnJlc2hUb2tlbnNGb3JFbGVtZW50KHQpe2NvbnN0IGU9dGhpcy50b2tlbnNCeUVsZW1lbnQuZ2V0VmFsdWVzRm9yS2V5KHQpLGk9dGhpcy5yZWFkVG9rZW5zRm9yRWxlbWVudCh0KSxzPWZ1bmN0aW9uKHQsZSl7Y29uc3QgaT1NYXRoLm1heCh0Lmxlbmd0aCxlLmxlbmd0aCk7cmV0dXJuIEFycmF5LmZyb20oe2xlbmd0aDppfSwoKGkscyk9Plt0W3NdLGVbc11dKSl9KGUsaSkuZmluZEluZGV4KCgoW3QsZV0pPT57cmV0dXJuIHM9ZSwhKChpPXQpJiZzJiZpLmluZGV4PT1zLmluZGV4JiZpLmNvbnRlbnQ9PXMuY29udGVudCk7dmFyIGksc30pKTtyZXR1cm4tMT09cz9bW10sW11dOltlLnNsaWNlKHMpLGkuc2xpY2UocyldfXJlYWRUb2tlbnNGb3JFbGVtZW50KHQpe2NvbnN0IGU9dGhpcy5hdHRyaWJ1dGVOYW1lO3JldHVybiBmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9ccysvKS5maWx0ZXIoKHQ9PnQubGVuZ3RoKSkubWFwKCgodCxzKT0+KHtlbGVtZW50OmUsYXR0cmlidXRlTmFtZTppLGNvbnRlbnQ6dCxpbmRleDpzfSkpKX0odC5nZXRBdHRyaWJ1dGUoZSl8fCIiLHQsZSl9fWNsYXNzIGJ7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMudG9rZW5MaXN0T2JzZXJ2ZXI9bmV3IHgodCxlLHRoaXMpLHRoaXMuZGVsZWdhdGU9aSx0aGlzLnBhcnNlUmVzdWx0c0J5VG9rZW49bmV3IFdlYWtNYXAsdGhpcy52YWx1ZXNCeVRva2VuQnlFbGVtZW50PW5ldyBXZWFrTWFwfWdldCBzdGFydGVkKCl7cmV0dXJuIHRoaXMudG9rZW5MaXN0T2JzZXJ2ZXIuc3RhcnRlZH1zdGFydCgpe3RoaXMudG9rZW5MaXN0T2JzZXJ2ZXIuc3RhcnQoKX1zdG9wKCl7dGhpcy50b2tlbkxpc3RPYnNlcnZlci5zdG9wKCl9cmVmcmVzaCgpe3RoaXMudG9rZW5MaXN0T2JzZXJ2ZXIucmVmcmVzaCgpfWdldCBlbGVtZW50KCl7cmV0dXJuIHRoaXMudG9rZW5MaXN0T2JzZXJ2ZXIuZWxlbWVudH1nZXQgYXR0cmlidXRlTmFtZSgpe3JldHVybiB0aGlzLnRva2VuTGlzdE9ic2VydmVyLmF0dHJpYnV0ZU5hbWV9dG9rZW5NYXRjaGVkKHQpe2NvbnN0e2VsZW1lbnQ6ZX09dCx7dmFsdWU6aX09dGhpcy5mZXRjaFBhcnNlUmVzdWx0Rm9yVG9rZW4odCk7aSYmKHRoaXMuZmV0Y2hWYWx1ZXNCeVRva2VuRm9yRWxlbWVudChlKS5zZXQodCxpKSx0aGlzLmRlbGVnYXRlLmVsZW1lbnRNYXRjaGVkVmFsdWUoZSxpKSl9dG9rZW5Vbm1hdGNoZWQodCl7Y29uc3R7ZWxlbWVudDplfT10LHt2YWx1ZTppfT10aGlzLmZldGNoUGFyc2VSZXN1bHRGb3JUb2tlbih0KTtpJiYodGhpcy5mZXRjaFZhbHVlc0J5VG9rZW5Gb3JFbGVtZW50KGUpLmRlbGV0ZSh0KSx0aGlzLmRlbGVnYXRlLmVsZW1lbnRVbm1hdGNoZWRWYWx1ZShlLGkpKX1mZXRjaFBhcnNlUmVzdWx0Rm9yVG9rZW4odCl7bGV0IGU9dGhpcy5wYXJzZVJlc3VsdHNCeVRva2VuLmdldCh0KTtyZXR1cm4gZXx8KGU9dGhpcy5wYXJzZVRva2VuKHQpLHRoaXMucGFyc2VSZXN1bHRzQnlUb2tlbi5zZXQodCxlKSksZX1mZXRjaFZhbHVlc0J5VG9rZW5Gb3JFbGVtZW50KHQpe2xldCBlPXRoaXMudmFsdWVzQnlUb2tlbkJ5RWxlbWVudC5nZXQodCk7cmV0dXJuIGV8fChlPW5ldyBNYXAsdGhpcy52YWx1ZXNCeVRva2VuQnlFbGVtZW50LnNldCh0LGUpKSxlfXBhcnNlVG9rZW4odCl7dHJ5e3JldHVybnt2YWx1ZTp0aGlzLmRlbGVnYXRlLnBhcnNlVmFsdWVGb3JUb2tlbih0KX19Y2F0Y2godCl7cmV0dXJue2Vycm9yOnR9fX19Y2xhc3MgeXtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuY29udGV4dD10LHRoaXMuZGVsZWdhdGU9ZSx0aGlzLmJpbmRpbmdzQnlBY3Rpb249bmV3IE1hcH1zdGFydCgpe3RoaXMudmFsdWVMaXN0T2JzZXJ2ZXJ8fCh0aGlzLnZhbHVlTGlzdE9ic2VydmVyPW5ldyBiKHRoaXMuZWxlbWVudCx0aGlzLmFjdGlvbkF0dHJpYnV0ZSx0aGlzKSx0aGlzLnZhbHVlTGlzdE9ic2VydmVyLnN0YXJ0KCkpfXN0b3AoKXt0aGlzLnZhbHVlTGlzdE9ic2VydmVyJiYodGhpcy52YWx1ZUxpc3RPYnNlcnZlci5zdG9wKCksZGVsZXRlIHRoaXMudmFsdWVMaXN0T2JzZXJ2ZXIsdGhpcy5kaXNjb25uZWN0QWxsQWN0aW9ucygpKX1nZXQgZWxlbWVudCgpe3JldHVybiB0aGlzLmNvbnRleHQuZWxlbWVudH1nZXQgaWRlbnRpZmllcigpe3JldHVybiB0aGlzLmNvbnRleHQuaWRlbnRpZmllcn1nZXQgYWN0aW9uQXR0cmlidXRlKCl7cmV0dXJuIHRoaXMuc2NoZW1hLmFjdGlvbkF0dHJpYnV0ZX1nZXQgc2NoZW1hKCl7cmV0dXJuIHRoaXMuY29udGV4dC5zY2hlbWF9Z2V0IGJpbmRpbmdzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5iaW5kaW5nc0J5QWN0aW9uLnZhbHVlcygpKX1jb25uZWN0QWN0aW9uKHQpe2NvbnN0IGU9bmV3IHUodGhpcy5jb250ZXh0LHQpO3RoaXMuYmluZGluZ3NCeUFjdGlvbi5zZXQodCxlKSx0aGlzLmRlbGVnYXRlLmJpbmRpbmdDb25uZWN0ZWQoZSl9ZGlzY29ubmVjdEFjdGlvbih0KXtjb25zdCBlPXRoaXMuYmluZGluZ3NCeUFjdGlvbi5nZXQodCk7ZSYmKHRoaXMuYmluZGluZ3NCeUFjdGlvbi5kZWxldGUodCksdGhpcy5kZWxlZ2F0ZS5iaW5kaW5nRGlzY29ubmVjdGVkKGUpKX1kaXNjb25uZWN0QWxsQWN0aW9ucygpe3RoaXMuYmluZGluZ3MuZm9yRWFjaCgodD0+dGhpcy5kZWxlZ2F0ZS5iaW5kaW5nRGlzY29ubmVjdGVkKHQpKSksdGhpcy5iaW5kaW5nc0J5QWN0aW9uLmNsZWFyKCl9cGFyc2VWYWx1ZUZvclRva2VuKHQpe2NvbnN0IGU9Y2xhc3N7Y29uc3RydWN0b3IodCxlLGkpe3RoaXMuZWxlbWVudD10LHRoaXMuaW5kZXg9ZSx0aGlzLmV2ZW50VGFyZ2V0PWkuZXZlbnRUYXJnZXR8fHQsdGhpcy5ldmVudE5hbWU9aS5ldmVudE5hbWV8fGZ1bmN0aW9uKHQpe2NvbnN0IGU9dC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7aWYoZSBpbiBjKXJldHVybiBjW2VdKHQpfSh0KXx8aCgibWlzc2luZyBldmVudCBuYW1lIiksdGhpcy5ldmVudE9wdGlvbnM9aS5ldmVudE9wdGlvbnN8fHt9LHRoaXMuaWRlbnRpZmllcj1pLmlkZW50aWZpZXJ8fGgoIm1pc3NpbmcgaWRlbnRpZmllciIpLHRoaXMubWV0aG9kTmFtZT1pLm1ldGhvZE5hbWV8fGgoIm1pc3NpbmcgbWV0aG9kIG5hbWUiKX1zdGF0aWMgZm9yVG9rZW4odCl7cmV0dXJuIG5ldyB0aGlzKHQuZWxlbWVudCx0LmluZGV4LGZ1bmN0aW9uKHQpe2NvbnN0IGU9dC50cmltKCkubWF0Y2gobil8fFtdO3JldHVybntldmVudFRhcmdldDooaT1lWzRdLCJ3aW5kb3ciPT1pP3dpbmRvdzoiZG9jdW1lbnQiPT1pP2RvY3VtZW50OnZvaWQgMCksZXZlbnROYW1lOmVbMl0sZXZlbnRPcHRpb25zOmVbOV0/KHM9ZVs5XSxzLnNwbGl0KCI6IikucmVkdWNlKCgodCxlKT0+T2JqZWN0LmFzc2lnbih0LHtbZS5yZXBsYWNlKC9eIS8sIiIpXTohL14hLy50ZXN0KGUpfSkpLHt9KSk6e30saWRlbnRpZmllcjplWzVdLG1ldGhvZE5hbWU6ZVs3XX07dmFyIGksc30odC5jb250ZW50KSl9dG9TdHJpbmcoKXtjb25zdCB0PXRoaXMuZXZlbnRUYXJnZXROYW1lP2BAJHt0aGlzLmV2ZW50VGFyZ2V0TmFtZX1gOiIiO3JldHVybmAke3RoaXMuZXZlbnROYW1lfSR7dH0tPiR7dGhpcy5pZGVudGlmaWVyfSMke3RoaXMubWV0aG9kTmFtZX1gfWdldCBwYXJhbXMoKXtyZXR1cm4gdGhpcy5ldmVudFRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQ/dGhpcy5nZXRQYXJhbXNGcm9tRXZlbnRUYXJnZXRBdHRyaWJ1dGVzKHRoaXMuZXZlbnRUYXJnZXQpOnt9fWdldFBhcmFtc0Zyb21FdmVudFRhcmdldEF0dHJpYnV0ZXModCl7Y29uc3QgZT17fSxpPW5ldyBSZWdFeHAoYF5kYXRhLSR7dGhpcy5pZGVudGlmaWVyfS0oLispLXBhcmFtJGApO3JldHVybiBBcnJheS5mcm9tKHQuYXR0cmlidXRlcykuZm9yRWFjaCgoKHtuYW1lOnQsdmFsdWU6c30pPT57Y29uc3QgYT10Lm1hdGNoKGkpLG49YSYmYVsxXTtuJiZPYmplY3QuYXNzaWduKGUse1tyKG4pXTpkKHMpfSl9KSksZX1nZXQgZXZlbnRUYXJnZXROYW1lKCl7cmV0dXJuKHQ9dGhpcy5ldmVudFRhcmdldCk9PXdpbmRvdz8id2luZG93Ijp0PT1kb2N1bWVudD8iZG9jdW1lbnQiOnZvaWQgMDt2YXIgdH19LmZvclRva2VuKHQpO2lmKGUuaWRlbnRpZmllcj09dGhpcy5pZGVudGlmaWVyKXJldHVybiBlfWVsZW1lbnRNYXRjaGVkVmFsdWUodCxlKXt0aGlzLmNvbm5lY3RBY3Rpb24oZSl9ZWxlbWVudFVubWF0Y2hlZFZhbHVlKHQsZSl7dGhpcy5kaXNjb25uZWN0QWN0aW9uKGUpfX1jbGFzcyB3e2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5jb250ZXh0PXQsdGhpcy5yZWNlaXZlcj1lLHRoaXMuc3RyaW5nTWFwT2JzZXJ2ZXI9bmV3IGYodGhpcy5lbGVtZW50LHRoaXMpLHRoaXMudmFsdWVEZXNjcmlwdG9yTWFwPXRoaXMuY29udHJvbGxlci52YWx1ZURlc2NyaXB0b3JNYXAsdGhpcy5pbnZva2VDaGFuZ2VkQ2FsbGJhY2tzRm9yRGVmYXVsdFZhbHVlcygpfXN0YXJ0KCl7dGhpcy5zdHJpbmdNYXBPYnNlcnZlci5zdGFydCgpfXN0b3AoKXt0aGlzLnN0cmluZ01hcE9ic2VydmVyLnN0b3AoKX1nZXQgZWxlbWVudCgpe3JldHVybiB0aGlzLmNvbnRleHQuZWxlbWVudH1nZXQgY29udHJvbGxlcigpe3JldHVybiB0aGlzLmNvbnRleHQuY29udHJvbGxlcn1nZXRTdHJpbmdNYXBLZXlGb3JBdHRyaWJ1dGUodCl7aWYodCBpbiB0aGlzLnZhbHVlRGVzY3JpcHRvck1hcClyZXR1cm4gdGhpcy52YWx1ZURlc2NyaXB0b3JNYXBbdF0ubmFtZX1zdHJpbmdNYXBLZXlBZGRlZCh0LGUpe2NvbnN0IGk9dGhpcy52YWx1ZURlc2NyaXB0b3JNYXBbZV07dGhpcy5oYXNWYWx1ZSh0KXx8dGhpcy5pbnZva2VDaGFuZ2VkQ2FsbGJhY2sodCxpLndyaXRlcih0aGlzLnJlY2VpdmVyW3RdKSxpLndyaXRlcihpLmRlZmF1bHRWYWx1ZSkpfXN0cmluZ01hcFZhbHVlQ2hhbmdlZCh0LGUsaSl7Y29uc3Qgcz10aGlzLnZhbHVlRGVzY3JpcHRvck5hbWVNYXBbZV07bnVsbCE9PXQmJihudWxsPT09aSYmKGk9cy53cml0ZXIocy5kZWZhdWx0VmFsdWUpKSx0aGlzLmludm9rZUNoYW5nZWRDYWxsYmFjayhlLHQsaSkpfXN0cmluZ01hcEtleVJlbW92ZWQodCxlLGkpe2NvbnN0IHM9dGhpcy52YWx1ZURlc2NyaXB0b3JOYW1lTWFwW3RdO3RoaXMuaGFzVmFsdWUodCk/dGhpcy5pbnZva2VDaGFuZ2VkQ2FsbGJhY2sodCxzLndyaXRlcih0aGlzLnJlY2VpdmVyW3RdKSxpKTp0aGlzLmludm9rZUNoYW5nZWRDYWxsYmFjayh0LHMud3JpdGVyKHMuZGVmYXVsdFZhbHVlKSxpKX1pbnZva2VDaGFuZ2VkQ2FsbGJhY2tzRm9yRGVmYXVsdFZhbHVlcygpe2Zvcihjb25zdHtrZXk6dCxuYW1lOmUsZGVmYXVsdFZhbHVlOmksd3JpdGVyOnN9b2YgdGhpcy52YWx1ZURlc2NyaXB0b3JzKW51bGw9PWl8fHRoaXMuY29udHJvbGxlci5kYXRhLmhhcyh0KXx8dGhpcy5pbnZva2VDaGFuZ2VkQ2FsbGJhY2soZSxzKGkpLHZvaWQgMCl9aW52b2tlQ2hhbmdlZENhbGxiYWNrKHQsZSxpKXtjb25zdCBzPWAke3R9Q2hhbmdlZGAsYT10aGlzLnJlY2VpdmVyW3NdO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhKXtjb25zdCBzPXRoaXMudmFsdWVEZXNjcmlwdG9yTmFtZU1hcFt0XSxuPXMucmVhZGVyKGUpO2xldCByPWk7aSYmKHI9cy5yZWFkZXIoaSkpLGEuY2FsbCh0aGlzLnJlY2VpdmVyLG4scil9fWdldCB2YWx1ZURlc2NyaXB0b3JzKCl7Y29uc3R7dmFsdWVEZXNjcmlwdG9yTWFwOnR9PXRoaXM7cmV0dXJuIE9iamVjdC5rZXlzKHQpLm1hcCgoZT0+dFtlXSkpfWdldCB2YWx1ZURlc2NyaXB0b3JOYW1lTWFwKCl7Y29uc3QgdD17fTtyZXR1cm4gT2JqZWN0LmtleXModGhpcy52YWx1ZURlc2NyaXB0b3JNYXApLmZvckVhY2goKGU9Pntjb25zdCBpPXRoaXMudmFsdWVEZXNjcmlwdG9yTWFwW2VdO3RbaS5uYW1lXT1pfSkpLHR9aGFzVmFsdWUodCl7Y29uc3QgZT1gaGFzJHtvKHRoaXMudmFsdWVEZXNjcmlwdG9yTmFtZU1hcFt0XS5uYW1lKX1gO3JldHVybiB0aGlzLnJlY2VpdmVyW2VdfX1jbGFzcyBre2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5jb250ZXh0PXQsdGhpcy5kZWxlZ2F0ZT1lLHRoaXMudGFyZ2V0c0J5TmFtZT1uZXcgdn1zdGFydCgpe3RoaXMudG9rZW5MaXN0T2JzZXJ2ZXJ8fCh0aGlzLnRva2VuTGlzdE9ic2VydmVyPW5ldyB4KHRoaXMuZWxlbWVudCx0aGlzLmF0dHJpYnV0ZU5hbWUsdGhpcyksdGhpcy50b2tlbkxpc3RPYnNlcnZlci5zdGFydCgpKX1zdG9wKCl7dGhpcy50b2tlbkxpc3RPYnNlcnZlciYmKHRoaXMuZGlzY29ubmVjdEFsbFRhcmdldHMoKSx0aGlzLnRva2VuTGlzdE9ic2VydmVyLnN0b3AoKSxkZWxldGUgdGhpcy50b2tlbkxpc3RPYnNlcnZlcil9dG9rZW5NYXRjaGVkKHtlbGVtZW50OnQsY29udGVudDplfSl7dGhpcy5zY29wZS5jb250YWluc0VsZW1lbnQodCkmJnRoaXMuY29ubmVjdFRhcmdldCh0LGUpfXRva2VuVW5tYXRjaGVkKHtlbGVtZW50OnQsY29udGVudDplfSl7dGhpcy5kaXNjb25uZWN0VGFyZ2V0KHQsZSl9Y29ubmVjdFRhcmdldCh0LGUpe3ZhciBpO3RoaXMudGFyZ2V0c0J5TmFtZS5oYXMoZSx0KXx8KHRoaXMudGFyZ2V0c0J5TmFtZS5hZGQoZSx0KSxudWxsPT09KGk9dGhpcy50b2tlbkxpc3RPYnNlcnZlcil8fHZvaWQgMD09PWl8fGkucGF1c2UoKCgpPT50aGlzLmRlbGVnYXRlLnRhcmdldENvbm5lY3RlZCh0LGUpKSkpfWRpc2Nvbm5lY3RUYXJnZXQodCxlKXt2YXIgaTt0aGlzLnRhcmdldHNCeU5hbWUuaGFzKGUsdCkmJih0aGlzLnRhcmdldHNCeU5hbWUuZGVsZXRlKGUsdCksbnVsbD09PShpPXRoaXMudG9rZW5MaXN0T2JzZXJ2ZXIpfHx2b2lkIDA9PT1pfHxpLnBhdXNlKCgoKT0+dGhpcy5kZWxlZ2F0ZS50YXJnZXREaXNjb25uZWN0ZWQodCxlKSkpKX1kaXNjb25uZWN0QWxsVGFyZ2V0cygpe2Zvcihjb25zdCB0IG9mIHRoaXMudGFyZ2V0c0J5TmFtZS5rZXlzKWZvcihjb25zdCBlIG9mIHRoaXMudGFyZ2V0c0J5TmFtZS5nZXRWYWx1ZXNGb3JLZXkodCkpdGhpcy5kaXNjb25uZWN0VGFyZ2V0KGUsdCl9Z2V0IGF0dHJpYnV0ZU5hbWUoKXtyZXR1cm5gZGF0YS0ke3RoaXMuY29udGV4dC5pZGVudGlmaWVyfS10YXJnZXRgfWdldCBlbGVtZW50KCl7cmV0dXJuIHRoaXMuY29udGV4dC5lbGVtZW50fWdldCBzY29wZSgpe3JldHVybiB0aGlzLmNvbnRleHQuc2NvcGV9fWNsYXNzIFN7Y29uc3RydWN0b3IodCxlKXt0aGlzLmxvZ0RlYnVnQWN0aXZpdHk9KHQsZT17fSk9Pntjb25zdHtpZGVudGlmaWVyOmksY29udHJvbGxlcjpzLGVsZW1lbnQ6YX09dGhpcztlPU9iamVjdC5hc3NpZ24oe2lkZW50aWZpZXI6aSxjb250cm9sbGVyOnMsZWxlbWVudDphfSxlKSx0aGlzLmFwcGxpY2F0aW9uLmxvZ0RlYnVnQWN0aXZpdHkodGhpcy5pZGVudGlmaWVyLHQsZSl9LHRoaXMubW9kdWxlPXQsdGhpcy5zY29wZT1lLHRoaXMuY29udHJvbGxlcj1uZXcgdC5jb250cm9sbGVyQ29uc3RydWN0b3IodGhpcyksdGhpcy5iaW5kaW5nT2JzZXJ2ZXI9bmV3IHkodGhpcyx0aGlzLmRpc3BhdGNoZXIpLHRoaXMudmFsdWVPYnNlcnZlcj1uZXcgdyh0aGlzLHRoaXMuY29udHJvbGxlciksdGhpcy50YXJnZXRPYnNlcnZlcj1uZXcgayh0aGlzLHRoaXMpO3RyeXt0aGlzLmNvbnRyb2xsZXIuaW5pdGlhbGl6ZSgpLHRoaXMubG9nRGVidWdBY3Rpdml0eSgiaW5pdGlhbGl6ZSIpfWNhdGNoKHQpe3RoaXMuaGFuZGxlRXJyb3IodCwiaW5pdGlhbGl6aW5nIGNvbnRyb2xsZXIiKX19Y29ubmVjdCgpe3RoaXMuYmluZGluZ09ic2VydmVyLnN0YXJ0KCksdGhpcy52YWx1ZU9ic2VydmVyLnN0YXJ0KCksdGhpcy50YXJnZXRPYnNlcnZlci5zdGFydCgpO3RyeXt0aGlzLmNvbnRyb2xsZXIuY29ubmVjdCgpLHRoaXMubG9nRGVidWdBY3Rpdml0eSgiY29ubmVjdCIpfWNhdGNoKHQpe3RoaXMuaGFuZGxlRXJyb3IodCwiY29ubmVjdGluZyBjb250cm9sbGVyIil9fWRpc2Nvbm5lY3QoKXt0cnl7dGhpcy5jb250cm9sbGVyLmRpc2Nvbm5lY3QoKSx0aGlzLmxvZ0RlYnVnQWN0aXZpdHkoImRpc2Nvbm5lY3QiKX1jYXRjaCh0KXt0aGlzLmhhbmRsZUVycm9yKHQsImRpc2Nvbm5lY3RpbmcgY29udHJvbGxlciIpfXRoaXMudGFyZ2V0T2JzZXJ2ZXIuc3RvcCgpLHRoaXMudmFsdWVPYnNlcnZlci5zdG9wKCksdGhpcy5iaW5kaW5nT2JzZXJ2ZXIuc3RvcCgpfWdldCBhcHBsaWNhdGlvbigpe3JldHVybiB0aGlzLm1vZHVsZS5hcHBsaWNhdGlvbn1nZXQgaWRlbnRpZmllcigpe3JldHVybiB0aGlzLm1vZHVsZS5pZGVudGlmaWVyfWdldCBzY2hlbWEoKXtyZXR1cm4gdGhpcy5hcHBsaWNhdGlvbi5zY2hlbWF9Z2V0IGRpc3BhdGNoZXIoKXtyZXR1cm4gdGhpcy5hcHBsaWNhdGlvbi5kaXNwYXRjaGVyfWdldCBlbGVtZW50KCl7cmV0dXJuIHRoaXMuc2NvcGUuZWxlbWVudH1nZXQgcGFyZW50RWxlbWVudCgpe3JldHVybiB0aGlzLmVsZW1lbnQucGFyZW50RWxlbWVudH1oYW5kbGVFcnJvcih0LGUsaT17fSl7Y29uc3R7aWRlbnRpZmllcjpzLGNvbnRyb2xsZXI6YSxlbGVtZW50Om59PXRoaXM7aT1PYmplY3QuYXNzaWduKHtpZGVudGlmaWVyOnMsY29udHJvbGxlcjphLGVsZW1lbnQ6bn0saSksdGhpcy5hcHBsaWNhdGlvbi5oYW5kbGVFcnJvcih0LGBFcnJvciAke2V9YCxpKX10YXJnZXRDb25uZWN0ZWQodCxlKXt0aGlzLmludm9rZUNvbnRyb2xsZXJNZXRob2QoYCR7ZX1UYXJnZXRDb25uZWN0ZWRgLHQpfXRhcmdldERpc2Nvbm5lY3RlZCh0LGUpe3RoaXMuaW52b2tlQ29udHJvbGxlck1ldGhvZChgJHtlfVRhcmdldERpc2Nvbm5lY3RlZGAsdCl9aW52b2tlQ29udHJvbGxlck1ldGhvZCh0LC4uLmUpe2NvbnN0IGk9dGhpcy5jb250cm9sbGVyOyJmdW5jdGlvbiI9PXR5cGVvZiBpW3RdJiZpW3RdKC4uLmUpfX1mdW5jdGlvbiBDKHQsZSl7Y29uc3QgaT1BKHQpO3JldHVybiBBcnJheS5mcm9tKGkucmVkdWNlKCgodCxpKT0+KGZ1bmN0aW9uKHQsZSl7Y29uc3QgaT10W2VdO3JldHVybiBBcnJheS5pc0FycmF5KGkpP2k6W119KGksZSkuZm9yRWFjaCgoZT0+dC5hZGQoZSkpKSx0KSksbmV3IFNldCkpfWZ1bmN0aW9uIEEodCl7Y29uc3QgZT1bXTtmb3IoO3Q7KWUucHVzaCh0KSx0PU9iamVjdC5nZXRQcm90b3R5cGVPZih0KTtyZXR1cm4gZS5yZXZlcnNlKCl9Y29uc3QgRT0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz90PT5bLi4uT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCksLi4uT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KV06T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsVD0oKCk9PntmdW5jdGlvbiB0KHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gUmVmbGVjdC5jb25zdHJ1Y3QodCxhcmd1bWVudHMsbmV3LnRhcmdldCl9cmV0dXJuIGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplfX0pLFJlZmxlY3Quc2V0UHJvdG90eXBlT2YoZSx0KSxlfXRyeXtyZXR1cm4gZnVuY3Rpb24oKXtjb25zdCBlPXQoKGZ1bmN0aW9uKCl7dGhpcy5hLmNhbGwodGhpcyl9KSk7ZS5wcm90b3R5cGUuYT1mdW5jdGlvbigpe30sbmV3IGV9KCksdH1jYXRjaCh0KXtyZXR1cm4gdD0+Y2xhc3MgZXh0ZW5kcyB0e319fSkoKTtjbGFzcyBMe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5hcHBsaWNhdGlvbj10LHRoaXMuZGVmaW5pdGlvbj1mdW5jdGlvbih0KXtyZXR1cm57aWRlbnRpZmllcjp0LmlkZW50aWZpZXIsY29udHJvbGxlckNvbnN0cnVjdG9yOihlPXQuY29udHJvbGxlckNvbnN0cnVjdG9yLGZ1bmN0aW9uKHQsZSl7Y29uc3QgaT1UKHQpLHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gRShlKS5yZWR1Y2UoKChpLHMpPT57Y29uc3QgYT1mdW5jdGlvbih0LGUsaSl7Y29uc3Qgcz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsaSk7aWYoIXN8fCEoInZhbHVlImluIHMpKXtjb25zdCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxpKS52YWx1ZTtyZXR1cm4gcyYmKHQuZ2V0PXMuZ2V0fHx0LmdldCx0LnNldD1zLnNldHx8dC5zZXQpLHR9fSh0LGUscyk7cmV0dXJuIGEmJk9iamVjdC5hc3NpZ24oaSx7W3NdOmF9KSxpfSkse30pfSh0LnByb3RvdHlwZSxlKTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoaS5wcm90b3R5cGUscyksaX0oZSxmdW5jdGlvbih0KXtyZXR1cm4gQyh0LCJibGVzc2luZ3MiKS5yZWR1Y2UoKChlLGkpPT57Y29uc3Qgcz1pKHQpO2Zvcihjb25zdCB0IGluIHMpe2NvbnN0IGk9ZVt0XXx8e307ZVt0XT1PYmplY3QuYXNzaWduKGksc1t0XSl9cmV0dXJuIGV9KSx7fSl9KGUpKSl9O3ZhciBlfShlKSx0aGlzLmNvbnRleHRzQnlTY29wZT1uZXcgV2Vha01hcCx0aGlzLmNvbm5lY3RlZENvbnRleHRzPW5ldyBTZXR9Z2V0IGlkZW50aWZpZXIoKXtyZXR1cm4gdGhpcy5kZWZpbml0aW9uLmlkZW50aWZpZXJ9Z2V0IGNvbnRyb2xsZXJDb25zdHJ1Y3Rvcigpe3JldHVybiB0aGlzLmRlZmluaXRpb24uY29udHJvbGxlckNvbnN0cnVjdG9yfWdldCBjb250ZXh0cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuY29ubmVjdGVkQ29udGV4dHMpfWNvbm5lY3RDb250ZXh0Rm9yU2NvcGUodCl7Y29uc3QgZT10aGlzLmZldGNoQ29udGV4dEZvclNjb3BlKHQpO3RoaXMuY29ubmVjdGVkQ29udGV4dHMuYWRkKGUpLGUuY29ubmVjdCgpfWRpc2Nvbm5lY3RDb250ZXh0Rm9yU2NvcGUodCl7Y29uc3QgZT10aGlzLmNvbnRleHRzQnlTY29wZS5nZXQodCk7ZSYmKHRoaXMuY29ubmVjdGVkQ29udGV4dHMuZGVsZXRlKGUpLGUuZGlzY29ubmVjdCgpKX1mZXRjaENvbnRleHRGb3JTY29wZSh0KXtsZXQgZT10aGlzLmNvbnRleHRzQnlTY29wZS5nZXQodCk7cmV0dXJuIGV8fChlPW5ldyBTKHRoaXMsdCksdGhpcy5jb250ZXh0c0J5U2NvcGUuc2V0KHQsZSkpLGV9fWNsYXNzIFB7Y29uc3RydWN0b3IodCl7dGhpcy5zY29wZT10fWhhcyh0KXtyZXR1cm4gdGhpcy5kYXRhLmhhcyh0aGlzLmdldERhdGFLZXkodCkpfWdldCh0KXtyZXR1cm4gdGhpcy5nZXRBbGwodClbMF19Z2V0QWxsKHQpe3JldHVybih0aGlzLmRhdGEuZ2V0KHRoaXMuZ2V0RGF0YUtleSh0KSl8fCIiKS5tYXRjaCgvW15cc10rL2cpfHxbXX1nZXRBdHRyaWJ1dGVOYW1lKHQpe3JldHVybiB0aGlzLmRhdGEuZ2V0QXR0cmlidXRlTmFtZUZvcktleSh0aGlzLmdldERhdGFLZXkodCkpfWdldERhdGFLZXkodCl7cmV0dXJuYCR7dH0tY2xhc3NgfWdldCBkYXRhKCl7cmV0dXJuIHRoaXMuc2NvcGUuZGF0YX19Y2xhc3MgTXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnNjb3BlPXR9Z2V0IGVsZW1lbnQoKXtyZXR1cm4gdGhpcy5zY29wZS5lbGVtZW50fWdldCBpZGVudGlmaWVyKCl7cmV0dXJuIHRoaXMuc2NvcGUuaWRlbnRpZmllcn1nZXQodCl7Y29uc3QgZT10aGlzLmdldEF0dHJpYnV0ZU5hbWVGb3JLZXkodCk7cmV0dXJuIHRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoZSl9c2V0KHQsZSl7Y29uc3QgaT10aGlzLmdldEF0dHJpYnV0ZU5hbWVGb3JLZXkodCk7cmV0dXJuIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoaSxlKSx0aGlzLmdldCh0KX1oYXModCl7Y29uc3QgZT10aGlzLmdldEF0dHJpYnV0ZU5hbWVGb3JLZXkodCk7cmV0dXJuIHRoaXMuZWxlbWVudC5oYXNBdHRyaWJ1dGUoZSl9ZGVsZXRlKHQpe2lmKHRoaXMuaGFzKHQpKXtjb25zdCBlPXRoaXMuZ2V0QXR0cmlidXRlTmFtZUZvcktleSh0KTtyZXR1cm4gdGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShlKSwhMH1yZXR1cm4hMX1nZXRBdHRyaWJ1dGVOYW1lRm9yS2V5KHQpe3JldHVybmBkYXRhLSR7dGhpcy5pZGVudGlmaWVyfS0ke2wodCl9YH19Y2xhc3MgT3tjb25zdHJ1Y3Rvcih0KXt0aGlzLndhcm5lZEtleXNCeU9iamVjdD1uZXcgV2Vha01hcCx0aGlzLmxvZ2dlcj10fXdhcm4odCxlLGkpe2xldCBzPXRoaXMud2FybmVkS2V5c0J5T2JqZWN0LmdldCh0KTtzfHwocz1uZXcgU2V0LHRoaXMud2FybmVkS2V5c0J5T2JqZWN0LnNldCh0LHMpKSxzLmhhcyhlKXx8KHMuYWRkKGUpLHRoaXMubG9nZ2VyLndhcm4oaSx0KSl9fWZ1bmN0aW9uIEkodCxlKXtyZXR1cm5gWyR7dH1+PSIke2V9Il1gfWNsYXNzIEZ7Y29uc3RydWN0b3IodCl7dGhpcy5zY29wZT10fWdldCBlbGVtZW50KCl7cmV0dXJuIHRoaXMuc2NvcGUuZWxlbWVudH1nZXQgaWRlbnRpZmllcigpe3JldHVybiB0aGlzLnNjb3BlLmlkZW50aWZpZXJ9Z2V0IHNjaGVtYSgpe3JldHVybiB0aGlzLnNjb3BlLnNjaGVtYX1oYXModCl7cmV0dXJuIG51bGwhPXRoaXMuZmluZCh0KX1maW5kKC4uLnQpe3JldHVybiB0LnJlZHVjZSgoKHQsZSk9PnR8fHRoaXMuZmluZFRhcmdldChlKXx8dGhpcy5maW5kTGVnYWN5VGFyZ2V0KGUpKSx2b2lkIDApfWZpbmRBbGwoLi4udCl7cmV0dXJuIHQucmVkdWNlKCgodCxlKT0+Wy4uLnQsLi4udGhpcy5maW5kQWxsVGFyZ2V0cyhlKSwuLi50aGlzLmZpbmRBbGxMZWdhY3lUYXJnZXRzKGUpXSksW10pfWZpbmRUYXJnZXQodCl7Y29uc3QgZT10aGlzLmdldFNlbGVjdG9yRm9yVGFyZ2V0TmFtZSh0KTtyZXR1cm4gdGhpcy5zY29wZS5maW5kRWxlbWVudChlKX1maW5kQWxsVGFyZ2V0cyh0KXtjb25zdCBlPXRoaXMuZ2V0U2VsZWN0b3JGb3JUYXJnZXROYW1lKHQpO3JldHVybiB0aGlzLnNjb3BlLmZpbmRBbGxFbGVtZW50cyhlKX1nZXRTZWxlY3RvckZvclRhcmdldE5hbWUodCl7cmV0dXJuIEkodGhpcy5zY2hlbWEudGFyZ2V0QXR0cmlidXRlRm9yU2NvcGUodGhpcy5pZGVudGlmaWVyKSx0KX1maW5kTGVnYWN5VGFyZ2V0KHQpe2NvbnN0IGU9dGhpcy5nZXRMZWdhY3lTZWxlY3RvckZvclRhcmdldE5hbWUodCk7cmV0dXJuIHRoaXMuZGVwcmVjYXRlKHRoaXMuc2NvcGUuZmluZEVsZW1lbnQoZSksdCl9ZmluZEFsbExlZ2FjeVRhcmdldHModCl7Y29uc3QgZT10aGlzLmdldExlZ2FjeVNlbGVjdG9yRm9yVGFyZ2V0TmFtZSh0KTtyZXR1cm4gdGhpcy5zY29wZS5maW5kQWxsRWxlbWVudHMoZSkubWFwKChlPT50aGlzLmRlcHJlY2F0ZShlLHQpKSl9Z2V0TGVnYWN5U2VsZWN0b3JGb3JUYXJnZXROYW1lKHQpe2NvbnN0IGU9YCR7dGhpcy5pZGVudGlmaWVyfS4ke3R9YDtyZXR1cm4gSSh0aGlzLnNjaGVtYS50YXJnZXRBdHRyaWJ1dGUsZSl9ZGVwcmVjYXRlKHQsZSl7aWYodCl7Y29uc3R7aWRlbnRpZmllcjppfT10aGlzLHM9dGhpcy5zY2hlbWEudGFyZ2V0QXR0cmlidXRlLGE9dGhpcy5zY2hlbWEudGFyZ2V0QXR0cmlidXRlRm9yU2NvcGUoaSk7dGhpcy5ndWlkZS53YXJuKHQsYHRhcmdldDoke2V9YCxgUGxlYXNlIHJlcGxhY2UgJHtzfT0iJHtpfS4ke2V9IiB3aXRoICR7YX09IiR7ZX0iLiBUaGUgJHtzfSBhdHRyaWJ1dGUgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgU3RpbXVsdXMuYCl9cmV0dXJuIHR9Z2V0IGd1aWRlKCl7cmV0dXJuIHRoaXMuc2NvcGUuZ3VpZGV9fWNsYXNzIER7Y29uc3RydWN0b3IodCxlLGkscyl7dGhpcy50YXJnZXRzPW5ldyBGKHRoaXMpLHRoaXMuY2xhc3Nlcz1uZXcgUCh0aGlzKSx0aGlzLmRhdGE9bmV3IE0odGhpcyksdGhpcy5jb250YWluc0VsZW1lbnQ9dD0+dC5jbG9zZXN0KHRoaXMuY29udHJvbGxlclNlbGVjdG9yKT09PXRoaXMuZWxlbWVudCx0aGlzLnNjaGVtYT10LHRoaXMuZWxlbWVudD1lLHRoaXMuaWRlbnRpZmllcj1pLHRoaXMuZ3VpZGU9bmV3IE8ocyl9ZmluZEVsZW1lbnQodCl7cmV0dXJuIHRoaXMuZWxlbWVudC5tYXRjaGVzKHQpP3RoaXMuZWxlbWVudDp0aGlzLnF1ZXJ5RWxlbWVudHModCkuZmluZCh0aGlzLmNvbnRhaW5zRWxlbWVudCl9ZmluZEFsbEVsZW1lbnRzKHQpe3JldHVyblsuLi50aGlzLmVsZW1lbnQubWF0Y2hlcyh0KT9bdGhpcy5lbGVtZW50XTpbXSwuLi50aGlzLnF1ZXJ5RWxlbWVudHModCkuZmlsdGVyKHRoaXMuY29udGFpbnNFbGVtZW50KV19cXVlcnlFbGVtZW50cyh0KXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCh0KSl9Z2V0IGNvbnRyb2xsZXJTZWxlY3Rvcigpe3JldHVybiBJKHRoaXMuc2NoZW1hLmNvbnRyb2xsZXJBdHRyaWJ1dGUsdGhpcy5pZGVudGlmaWVyKX19Y2xhc3Mgentjb25zdHJ1Y3Rvcih0LGUsaSl7dGhpcy5lbGVtZW50PXQsdGhpcy5zY2hlbWE9ZSx0aGlzLmRlbGVnYXRlPWksdGhpcy52YWx1ZUxpc3RPYnNlcnZlcj1uZXcgYih0aGlzLmVsZW1lbnQsdGhpcy5jb250cm9sbGVyQXR0cmlidXRlLHRoaXMpLHRoaXMuc2NvcGVzQnlJZGVudGlmaWVyQnlFbGVtZW50PW5ldyBXZWFrTWFwLHRoaXMuc2NvcGVSZWZlcmVuY2VDb3VudHM9bmV3IFdlYWtNYXB9c3RhcnQoKXt0aGlzLnZhbHVlTGlzdE9ic2VydmVyLnN0YXJ0KCl9c3RvcCgpe3RoaXMudmFsdWVMaXN0T2JzZXJ2ZXIuc3RvcCgpfWdldCBjb250cm9sbGVyQXR0cmlidXRlKCl7cmV0dXJuIHRoaXMuc2NoZW1hLmNvbnRyb2xsZXJBdHRyaWJ1dGV9cGFyc2VWYWx1ZUZvclRva2VuKHQpe2NvbnN0e2VsZW1lbnQ6ZSxjb250ZW50Oml9PXQscz10aGlzLmZldGNoU2NvcGVzQnlJZGVudGlmaWVyRm9yRWxlbWVudChlKTtsZXQgYT1zLmdldChpKTtyZXR1cm4gYXx8KGE9dGhpcy5kZWxlZ2F0ZS5jcmVhdGVTY29wZUZvckVsZW1lbnRBbmRJZGVudGlmaWVyKGUsaSkscy5zZXQoaSxhKSksYX1lbGVtZW50TWF0Y2hlZFZhbHVlKHQsZSl7Y29uc3QgaT0odGhpcy5zY29wZVJlZmVyZW5jZUNvdW50cy5nZXQoZSl8fDApKzE7dGhpcy5zY29wZVJlZmVyZW5jZUNvdW50cy5zZXQoZSxpKSwxPT1pJiZ0aGlzLmRlbGVnYXRlLnNjb3BlQ29ubmVjdGVkKGUpfWVsZW1lbnRVbm1hdGNoZWRWYWx1ZSh0LGUpe2NvbnN0IGk9dGhpcy5zY29wZVJlZmVyZW5jZUNvdW50cy5nZXQoZSk7aSYmKHRoaXMuc2NvcGVSZWZlcmVuY2VDb3VudHMuc2V0KGUsaS0xKSwxPT1pJiZ0aGlzLmRlbGVnYXRlLnNjb3BlRGlzY29ubmVjdGVkKGUpKX1mZXRjaFNjb3Blc0J5SWRlbnRpZmllckZvckVsZW1lbnQodCl7bGV0IGU9dGhpcy5zY29wZXNCeUlkZW50aWZpZXJCeUVsZW1lbnQuZ2V0KHQpO3JldHVybiBlfHwoZT1uZXcgTWFwLHRoaXMuc2NvcGVzQnlJZGVudGlmaWVyQnlFbGVtZW50LnNldCh0LGUpKSxlfX1jbGFzcyBOe2NvbnN0cnVjdG9yKHQpe3RoaXMuYXBwbGljYXRpb249dCx0aGlzLnNjb3BlT2JzZXJ2ZXI9bmV3IHoodGhpcy5lbGVtZW50LHRoaXMuc2NoZW1hLHRoaXMpLHRoaXMuc2NvcGVzQnlJZGVudGlmaWVyPW5ldyB2LHRoaXMubW9kdWxlc0J5SWRlbnRpZmllcj1uZXcgTWFwfWdldCBlbGVtZW50KCl7cmV0dXJuIHRoaXMuYXBwbGljYXRpb24uZWxlbWVudH1nZXQgc2NoZW1hKCl7cmV0dXJuIHRoaXMuYXBwbGljYXRpb24uc2NoZW1hfWdldCBsb2dnZXIoKXtyZXR1cm4gdGhpcy5hcHBsaWNhdGlvbi5sb2dnZXJ9Z2V0IGNvbnRyb2xsZXJBdHRyaWJ1dGUoKXtyZXR1cm4gdGhpcy5zY2hlbWEuY29udHJvbGxlckF0dHJpYnV0ZX1nZXQgbW9kdWxlcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMubW9kdWxlc0J5SWRlbnRpZmllci52YWx1ZXMoKSl9Z2V0IGNvbnRleHRzKCl7cmV0dXJuIHRoaXMubW9kdWxlcy5yZWR1Y2UoKCh0LGUpPT50LmNvbmNhdChlLmNvbnRleHRzKSksW10pfXN0YXJ0KCl7dGhpcy5zY29wZU9ic2VydmVyLnN0YXJ0KCl9c3RvcCgpe3RoaXMuc2NvcGVPYnNlcnZlci5zdG9wKCl9bG9hZERlZmluaXRpb24odCl7dGhpcy51bmxvYWRJZGVudGlmaWVyKHQuaWRlbnRpZmllcik7Y29uc3QgZT1uZXcgTCh0aGlzLmFwcGxpY2F0aW9uLHQpO3RoaXMuY29ubmVjdE1vZHVsZShlKX11bmxvYWRJZGVudGlmaWVyKHQpe2NvbnN0IGU9dGhpcy5tb2R1bGVzQnlJZGVudGlmaWVyLmdldCh0KTtlJiZ0aGlzLmRpc2Nvbm5lY3RNb2R1bGUoZSl9Z2V0Q29udGV4dEZvckVsZW1lbnRBbmRJZGVudGlmaWVyKHQsZSl7Y29uc3QgaT10aGlzLm1vZHVsZXNCeUlkZW50aWZpZXIuZ2V0KGUpO2lmKGkpcmV0dXJuIGkuY29udGV4dHMuZmluZCgoZT0+ZS5lbGVtZW50PT10KSl9aGFuZGxlRXJyb3IodCxlLGkpe3RoaXMuYXBwbGljYXRpb24uaGFuZGxlRXJyb3IodCxlLGkpfWNyZWF0ZVNjb3BlRm9yRWxlbWVudEFuZElkZW50aWZpZXIodCxlKXtyZXR1cm4gbmV3IEQodGhpcy5zY2hlbWEsdCxlLHRoaXMubG9nZ2VyKX1zY29wZUNvbm5lY3RlZCh0KXt0aGlzLnNjb3Blc0J5SWRlbnRpZmllci5hZGQodC5pZGVudGlmaWVyLHQpO2NvbnN0IGU9dGhpcy5tb2R1bGVzQnlJZGVudGlmaWVyLmdldCh0LmlkZW50aWZpZXIpO2UmJmUuY29ubmVjdENvbnRleHRGb3JTY29wZSh0KX1zY29wZURpc2Nvbm5lY3RlZCh0KXt0aGlzLnNjb3Blc0J5SWRlbnRpZmllci5kZWxldGUodC5pZGVudGlmaWVyLHQpO2NvbnN0IGU9dGhpcy5tb2R1bGVzQnlJZGVudGlmaWVyLmdldCh0LmlkZW50aWZpZXIpO2UmJmUuZGlzY29ubmVjdENvbnRleHRGb3JTY29wZSh0KX1jb25uZWN0TW9kdWxlKHQpe3RoaXMubW9kdWxlc0J5SWRlbnRpZmllci5zZXQodC5pZGVudGlmaWVyLHQpLHRoaXMuc2NvcGVzQnlJZGVudGlmaWVyLmdldFZhbHVlc0ZvcktleSh0LmlkZW50aWZpZXIpLmZvckVhY2goKGU9PnQuY29ubmVjdENvbnRleHRGb3JTY29wZShlKSkpfWRpc2Nvbm5lY3RNb2R1bGUodCl7dGhpcy5tb2R1bGVzQnlJZGVudGlmaWVyLmRlbGV0ZSh0LmlkZW50aWZpZXIpLHRoaXMuc2NvcGVzQnlJZGVudGlmaWVyLmdldFZhbHVlc0ZvcktleSh0LmlkZW50aWZpZXIpLmZvckVhY2goKGU9PnQuZGlzY29ubmVjdENvbnRleHRGb3JTY29wZShlKSkpfX1jb25zdCBSPXtjb250cm9sbGVyQXR0cmlidXRlOiJkYXRhLWNvbnRyb2xsZXIiLGFjdGlvbkF0dHJpYnV0ZToiZGF0YS1hY3Rpb24iLHRhcmdldEF0dHJpYnV0ZToiZGF0YS10YXJnZXQiLHRhcmdldEF0dHJpYnV0ZUZvclNjb3BlOnQ9PmBkYXRhLSR7dH0tdGFyZ2V0YH07Y2xhc3MgX3tjb25zdHJ1Y3Rvcih0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxlPVIpe3RoaXMubG9nZ2VyPWNvbnNvbGUsdGhpcy5kZWJ1Zz0hMSx0aGlzLmxvZ0RlYnVnQWN0aXZpdHk9KHQsZSxpPXt9KT0+e3RoaXMuZGVidWcmJnRoaXMubG9nRm9ybWF0dGVkTWVzc2FnZSh0LGUsaSl9LHRoaXMuZWxlbWVudD10LHRoaXMuc2NoZW1hPWUsdGhpcy5kaXNwYXRjaGVyPW5ldyBhKHRoaXMpLHRoaXMucm91dGVyPW5ldyBOKHRoaXMpfXN0YXRpYyBzdGFydCh0LGUpe2NvbnN0IGk9bmV3IF8odCxlKTtyZXR1cm4gaS5zdGFydCgpLGl9YXN5bmMgc3RhcnQoKXthd2FpdCBuZXcgUHJvbWlzZSgodD0+eyJsb2FkaW5nIj09ZG9jdW1lbnQucmVhZHlTdGF0ZT9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwoKCk9PnQoKSkpOnQoKX0pKSx0aGlzLmxvZ0RlYnVnQWN0aXZpdHkoImFwcGxpY2F0aW9uIiwic3RhcnRpbmciKSx0aGlzLmRpc3BhdGNoZXIuc3RhcnQoKSx0aGlzLnJvdXRlci5zdGFydCgpLHRoaXMubG9nRGVidWdBY3Rpdml0eSgiYXBwbGljYXRpb24iLCJzdGFydCIpfXN0b3AoKXt0aGlzLmxvZ0RlYnVnQWN0aXZpdHkoImFwcGxpY2F0aW9uIiwic3RvcHBpbmciKSx0aGlzLmRpc3BhdGNoZXIuc3RvcCgpLHRoaXMucm91dGVyLnN0b3AoKSx0aGlzLmxvZ0RlYnVnQWN0aXZpdHkoImFwcGxpY2F0aW9uIiwic3RvcCIpfXJlZ2lzdGVyKHQsZSl7ZS5zaG91bGRMb2FkJiZ0aGlzLmxvYWQoe2lkZW50aWZpZXI6dCxjb250cm9sbGVyQ29uc3RydWN0b3I6ZX0pfWxvYWQodCwuLi5lKXsoQXJyYXkuaXNBcnJheSh0KT90Olt0LC4uLmVdKS5mb3JFYWNoKCh0PT50aGlzLnJvdXRlci5sb2FkRGVmaW5pdGlvbih0KSkpfXVubG9hZCh0LC4uLmUpeyhBcnJheS5pc0FycmF5KHQpP3Q6W3QsLi4uZV0pLmZvckVhY2goKHQ9PnRoaXMucm91dGVyLnVubG9hZElkZW50aWZpZXIodCkpKX1nZXQgY29udHJvbGxlcnMoKXtyZXR1cm4gdGhpcy5yb3V0ZXIuY29udGV4dHMubWFwKCh0PT50LmNvbnRyb2xsZXIpKX1nZXRDb250cm9sbGVyRm9yRWxlbWVudEFuZElkZW50aWZpZXIodCxlKXtjb25zdCBpPXRoaXMucm91dGVyLmdldENvbnRleHRGb3JFbGVtZW50QW5kSWRlbnRpZmllcih0LGUpO3JldHVybiBpP2kuY29udHJvbGxlcjpudWxsfWhhbmRsZUVycm9yKHQsZSxpKXt2YXIgczt0aGlzLmxvZ2dlci5lcnJvcigiJXNcblxuJW9cblxuJW8iLGUsdCxpKSxudWxsPT09KHM9d2luZG93Lm9uZXJyb3IpfHx2b2lkIDA9PT1zfHxzLmNhbGwod2luZG93LGUsIiIsMCwwLHQpfWxvZ0Zvcm1hdHRlZE1lc3NhZ2UodCxlLGk9e30pe2k9T2JqZWN0LmFzc2lnbih7YXBwbGljYXRpb246dGhpc30saSksdGhpcy5sb2dnZXIuZ3JvdXBDb2xsYXBzZWQoYCR7dH0gIyR7ZX1gKSx0aGlzLmxvZ2dlci5sb2coImRldGFpbHM6IixPYmplY3QuYXNzaWduKHt9LGkpKSx0aGlzLmxvZ2dlci5ncm91cEVuZCgpfX1mdW5jdGlvbiBCKFt0LGVdKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtjb25zdCBpPWAke2wodCl9LXZhbHVlYCxzPWZ1bmN0aW9uKHQpe2NvbnN0IGU9ZnVuY3Rpb24odCl7Y29uc3QgZT1YKHQudHlwZSk7aWYoZSl7Y29uc3QgaT1IKHQuZGVmYXVsdCk7aWYoZSE9PWkpdGhyb3cgbmV3IEVycm9yKGBUeXBlICIke2V9IiBtdXN0IG1hdGNoIHRoZSB0eXBlIG9mIHRoZSBkZWZhdWx0IHZhbHVlLiBHaXZlbiBkZWZhdWx0IHZhbHVlOiAiJHt0LmRlZmF1bHR9IiBhcyAiJHtpfSJgKTtyZXR1cm4gZX19KHQpLGk9SCh0KSxzPVgodCksYT1lfHxpfHxzO2lmKGEpcmV0dXJuIGE7dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHZhbHVlIHR5cGUgIiR7dH0iYCl9KGUpO3JldHVybnt0eXBlOnMsa2V5OmksbmFtZTpyKGkpLGdldCBkZWZhdWx0VmFsdWUoKXtyZXR1cm4gZnVuY3Rpb24odCl7Y29uc3QgZT1YKHQpO2lmKGUpcmV0dXJuIFlbZV07Y29uc3QgaT10LmRlZmF1bHQ7cmV0dXJuIHZvaWQgMCE9PWk/aTp0fShlKX0sZ2V0IGhhc0N1c3RvbURlZmF1bHRWYWx1ZSgpe3JldHVybiB2b2lkIDAhPT1IKGUpfSxyZWFkZXI6V1tzXSx3cml0ZXI6JFtzXXx8JC5kZWZhdWx0fX0odCxlKX1mdW5jdGlvbiBYKHQpe3N3aXRjaCh0KXtjYXNlIEFycmF5OnJldHVybiJhcnJheSI7Y2FzZSBCb29sZWFuOnJldHVybiJib29sZWFuIjtjYXNlIE51bWJlcjpyZXR1cm4ibnVtYmVyIjtjYXNlIE9iamVjdDpyZXR1cm4ib2JqZWN0IjtjYXNlIFN0cmluZzpyZXR1cm4ic3RyaW5nIn19ZnVuY3Rpb24gSCh0KXtzd2l0Y2godHlwZW9mIHQpe2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UibnVtYmVyIjpyZXR1cm4ibnVtYmVyIjtjYXNlInN0cmluZyI6cmV0dXJuInN0cmluZyJ9cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/ImFycmF5IjoiW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT8ib2JqZWN0Ijp2b2lkIDB9Y29uc3QgWT17Z2V0IGFycmF5KCl7cmV0dXJuW119LGJvb2xlYW46ITEsbnVtYmVyOjAsZ2V0IG9iamVjdCgpe3JldHVybnt9fSxzdHJpbmc6IiJ9LFc9e2FycmF5KHQpe2NvbnN0IGU9SlNPTi5wYXJzZSh0KTtpZighQXJyYXkuaXNBcnJheShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhcnJheSIpO3JldHVybiBlfSxib29sZWFuOnQ9PiEoIjAiPT10fHwiZmFsc2UiPT10KSxudW1iZXI6dD0+TnVtYmVyKHQpLG9iamVjdCh0KXtjb25zdCBlPUpTT04ucGFyc2UodCk7aWYobnVsbD09PWV8fCJvYmplY3QiIT10eXBlb2YgZXx8QXJyYXkuaXNBcnJheShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBvYmplY3QiKTtyZXR1cm4gZX0sc3RyaW5nOnQ9PnR9LCQ9e2RlZmF1bHQ6ZnVuY3Rpb24odCl7cmV0dXJuYCR7dH1gfSxhcnJheTpWLG9iamVjdDpWfTtmdW5jdGlvbiBWKHQpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1jbGFzcyBqe2NvbnN0cnVjdG9yKHQpe3RoaXMuY29udGV4dD10fXN0YXRpYyBnZXQgc2hvdWxkTG9hZCgpe3JldHVybiEwfWdldCBhcHBsaWNhdGlvbigpe3JldHVybiB0aGlzLmNvbnRleHQuYXBwbGljYXRpb259Z2V0IHNjb3BlKCl7cmV0dXJuIHRoaXMuY29udGV4dC5zY29wZX1nZXQgZWxlbWVudCgpe3JldHVybiB0aGlzLnNjb3BlLmVsZW1lbnR9Z2V0IGlkZW50aWZpZXIoKXtyZXR1cm4gdGhpcy5zY29wZS5pZGVudGlmaWVyfWdldCB0YXJnZXRzKCl7cmV0dXJuIHRoaXMuc2NvcGUudGFyZ2V0c31nZXQgY2xhc3Nlcygpe3JldHVybiB0aGlzLnNjb3BlLmNsYXNzZXN9Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy5zY29wZS5kYXRhfWluaXRpYWxpemUoKXt9Y29ubmVjdCgpe31kaXNjb25uZWN0KCl7fWRpc3BhdGNoKHQse3RhcmdldDplPXRoaXMuZWxlbWVudCxkZXRhaWw6aT17fSxwcmVmaXg6cz10aGlzLmlkZW50aWZpZXIsYnViYmxlczphPSEwLGNhbmNlbGFibGU6bj0hMH09e30pe2NvbnN0IHI9bmV3IEN1c3RvbUV2ZW50KHM/YCR7c306JHt0fWA6dCx7ZGV0YWlsOmksYnViYmxlczphLGNhbmNlbGFibGU6bn0pO3JldHVybiBlLmRpc3BhdGNoRXZlbnQocikscn19ai5ibGVzc2luZ3M9W2Z1bmN0aW9uKHQpe3JldHVybiBDKHQsImNsYXNzZXMiKS5yZWR1Y2UoKCh0LGUpPT57cmV0dXJuIE9iamVjdC5hc3NpZ24odCx7W2Ake2k9ZX1DbGFzc2BdOntnZXQoKXtjb25zdHtjbGFzc2VzOnR9PXRoaXM7aWYodC5oYXMoaSkpcmV0dXJuIHQuZ2V0KGkpO3tjb25zdCBlPXQuZ2V0QXR0cmlidXRlTmFtZShpKTt0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgYXR0cmlidXRlICIke2V9ImApfX19LFtgJHtpfUNsYXNzZXNgXTp7Z2V0KCl7cmV0dXJuIHRoaXMuY2xhc3Nlcy5nZXRBbGwoaSl9fSxbYGhhcyR7byhpKX1DbGFzc2BdOntnZXQoKXtyZXR1cm4gdGhpcy5jbGFzc2VzLmhhcyhpKX19fSk7dmFyIGl9KSx7fSl9LGZ1bmN0aW9uKHQpe3JldHVybiBDKHQsInRhcmdldHMiKS5yZWR1Y2UoKCh0LGUpPT57cmV0dXJuIE9iamVjdC5hc3NpZ24odCx7W2Ake2k9ZX1UYXJnZXRgXTp7Z2V0KCl7Y29uc3QgdD10aGlzLnRhcmdldHMuZmluZChpKTtpZih0KXJldHVybiB0O3Rocm93IG5ldyBFcnJvcihgTWlzc2luZyB0YXJnZXQgZWxlbWVudCAiJHtpfSIgZm9yICIke3RoaXMuaWRlbnRpZmllcn0iIGNvbnRyb2xsZXJgKX19LFtgJHtpfVRhcmdldHNgXTp7Z2V0KCl7cmV0dXJuIHRoaXMudGFyZ2V0cy5maW5kQWxsKGkpfX0sW2BoYXMke28oaSl9VGFyZ2V0YF06e2dldCgpe3JldHVybiB0aGlzLnRhcmdldHMuaGFzKGkpfX19KTt2YXIgaX0pLHt9KX0sZnVuY3Rpb24odCl7Y29uc3QgZT1mdW5jdGlvbih0LGUpe3JldHVybiBBKHQpLnJlZHVjZSgoKHQsaSk9Pih0LnB1c2goLi4uZnVuY3Rpb24odCxlKXtjb25zdCBpPXRbZV07cmV0dXJuIGk/T2JqZWN0LmtleXMoaSkubWFwKCh0PT5bdCxpW3RdXSkpOltdfShpLGUpKSx0KSksW10pfSh0LCJ2YWx1ZXMiKSxpPXt2YWx1ZURlc2NyaXB0b3JNYXA6e2dldCgpe3JldHVybiBlLnJlZHVjZSgoKHQsZSk9Pntjb25zdCBpPUIoZSkscz10aGlzLmRhdGEuZ2V0QXR0cmlidXRlTmFtZUZvcktleShpLmtleSk7cmV0dXJuIE9iamVjdC5hc3NpZ24odCx7W3NdOml9KX0pLHt9KX19fTtyZXR1cm4gZS5yZWR1Y2UoKCh0LGUpPT5PYmplY3QuYXNzaWduKHQsZnVuY3Rpb24odCl7Y29uc3QgZT1CKHQpLHtrZXk6aSxuYW1lOnMscmVhZGVyOmEsd3JpdGVyOm59PWU7cmV0dXJue1tzXTp7Z2V0KCl7Y29uc3QgdD10aGlzLmRhdGEuZ2V0KGkpO3JldHVybiBudWxsIT09dD9hKHQpOmUuZGVmYXVsdFZhbHVlfSxzZXQodCl7dm9pZCAwPT09dD90aGlzLmRhdGEuZGVsZXRlKGkpOnRoaXMuZGF0YS5zZXQoaSxuKHQpKX19LFtgaGFzJHtvKHMpfWBdOntnZXQoKXtyZXR1cm4gdGhpcy5kYXRhLmhhcyhpKXx8ZS5oYXNDdXN0b21EZWZhdWx0VmFsdWV9fX19KGUpKSksaSl9XSxqLnRhcmdldHM9W10sai52YWx1ZXM9e319LDkyNzpmdW5jdGlvbih0LGUsaSl7InVzZSBzdHJpY3QiO3ZhciBzO2Z1bmN0aW9uIGEodCxlKXt2YXIgaT1PYmplY3Qua2V5cyh0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2UmJihzPXMuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLGkucHVzaC5hcHBseShpLHMpfXJldHVybiBpfWZ1bmN0aW9uIG4odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIGk9bnVsbCE9YXJndW1lbnRzW2VdP2FyZ3VtZW50c1tlXTp7fTtlJTI/YShPYmplY3QoaSksITApLmZvckVhY2goKGZ1bmN0aW9uKGUpe2godCxlLGlbZV0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaSkpOmEoT2JqZWN0KGkpKS5mb3JFYWNoKChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSxlKSl9KSl9cmV0dXJuIHR9ZnVuY3Rpb24gcih0KXtyZXR1cm4gcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0scih0KX1mdW5jdGlvbiBvKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbCh0LGUpe2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgcz1lW2ldO3MuZW51bWVyYWJsZT1zLmVudW1lcmFibGV8fCExLHMuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBzJiYocy53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQscy5rZXkscyl9fWZ1bmN0aW9uIGModCxlLGkpe3JldHVybiBlJiZsKHQucHJvdG90eXBlLGUpLGkmJmwodCxpKSx0fWZ1bmN0aW9uIGgodCxlLGkpe3JldHVybiBlIGluIHQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6aSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09aSx0fWZ1bmN0aW9uIGQodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksZSYmcCh0LGUpfWZ1bmN0aW9uIHUodCl7cmV0dXJuIHU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbih0KXtyZXR1cm4gdC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KX0sdSh0KX1mdW5jdGlvbiBwKHQsZSl7cmV0dXJuIHA9T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LHAodCxlKX1mdW5jdGlvbiBnKHQsZSl7aWYoZSYmKCJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpKXJldHVybiBlO2lmKHZvaWQgMCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiB0fSh0KX1mdW5jdGlvbiBmKHQpe3ZhciBlPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKHQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaSxzPXUodCk7aWYoZSl7dmFyIGE9dSh0aGlzKS5jb25zdHJ1Y3RvcjtpPVJlZmxlY3QuY29uc3RydWN0KHMsYXJndW1lbnRzLGEpfWVsc2UgaT1zLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZyh0aGlzLGkpfX1mdW5jdGlvbiBtKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB4KHQpfSh0KXx8ZnVuY3Rpb24odCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPXRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9dFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHQpfSh0KXx8dih0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiB2KHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB4KHQsZSk7dmFyIGk9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09aSYmdC5jb25zdHJ1Y3RvciYmKGk9dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWl8fCJTZXQiPT09aT9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09aXx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaSk/eCh0LGUpOnZvaWQgMH19ZnVuY3Rpb24geCh0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgaT0wLHM9bmV3IEFycmF5KGUpO2k8ZTtpKyspc1tpXT10W2ldO3JldHVybiBzfXZhciBiPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe28odGhpcyx0KX1yZXR1cm4gYyh0LFt7a2V5OiJzaGFkZVJHQkNvbG9yIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPWUuc3BsaXQoIiwiKSxzPXQ8MD8wOjI1NSxhPXQ8MD8tMSp0OnQsbj1wYXJzZUludChpWzBdLnNsaWNlKDQpLDEwKSxyPXBhcnNlSW50KGlbMV0sMTApLG89cGFyc2VJbnQoaVsyXSwxMCk7cmV0dXJuInJnYigiKyhNYXRoLnJvdW5kKChzLW4pKmEpK24pKyIsIisoTWF0aC5yb3VuZCgocy1yKSphKStyKSsiLCIrKE1hdGgucm91bmQoKHMtbykqYSkrbykrIikifX0se2tleToic2hhZGVIZXhDb2xvciIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT1wYXJzZUludChlLnNsaWNlKDEpLDE2KSxzPXQ8MD8wOjI1NSxhPXQ8MD8tMSp0OnQsbj1pPj4xNixyPWk+PjgmMjU1LG89MjU1Jmk7cmV0dXJuIiMiKygxNjc3NzIxNis2NTUzNiooTWF0aC5yb3VuZCgocy1uKSphKStuKSsyNTYqKE1hdGgucm91bmQoKHMtcikqYSkrcikrKE1hdGgucm91bmQoKHMtbykqYSkrbykpLnRvU3RyaW5nKDE2KS5zbGljZSgxKX19LHtrZXk6InNoYWRlQ29sb3IiLHZhbHVlOmZ1bmN0aW9uKGUsaSl7cmV0dXJuIHQuaXNDb2xvckhleChpKT90aGlzLnNoYWRlSGV4Q29sb3IoZSxpKTp0aGlzLnNoYWRlUkdCQ29sb3IoZSxpKX19XSxbe2tleToiYmluZCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLGFyZ3VtZW50cyl9fX0se2tleToiaXNPYmplY3QiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0JiYib2JqZWN0Ij09PXIodCkmJiFBcnJheS5pc0FycmF5KHQpJiZudWxsIT10fX0se2tleToiaXMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKT09PSJbb2JqZWN0ICIrdCsiXSJ9fSx7a2V5OiJsaXN0VG9BcnJheSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsaT1bXTtmb3IoZT0wO2U8dC5sZW5ndGg7ZSsrKWlbZV09dFtlXTtyZXR1cm4gaX19LHtrZXk6ImV4dGVuZCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzOyJmdW5jdGlvbiIhPXR5cGVvZiBPYmplY3QuYXNzaWduJiYoT2JqZWN0LmFzc2lnbj1mdW5jdGlvbih0KXtpZihudWxsPT10KXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdCIpO2Zvcih2YXIgZT1PYmplY3QodCksaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe3ZhciBzPWFyZ3VtZW50c1tpXTtpZihudWxsIT1zKWZvcih2YXIgYSBpbiBzKXMuaGFzT3duUHJvcGVydHkoYSkmJihlW2FdPXNbYV0pfXJldHVybiBlfSk7dmFyIHM9T2JqZWN0LmFzc2lnbih7fSx0KTtyZXR1cm4gdGhpcy5pc09iamVjdCh0KSYmdGhpcy5pc09iamVjdChlKSYmT2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24oYSl7aS5pc09iamVjdChlW2FdKSYmYSBpbiB0P3NbYV09aS5leHRlbmQodFthXSxlW2FdKTpPYmplY3QuYXNzaWduKHMsaCh7fSxhLGVbYV0pKX0pKSxzfX0se2tleToiZXh0ZW5kQXJyYXkiLHZhbHVlOmZ1bmN0aW9uKGUsaSl7dmFyIHM9W107cmV0dXJuIGUubWFwKChmdW5jdGlvbihlKXtzLnB1c2godC5leHRlbmQoaSxlKSl9KSksc319LHtrZXk6Im1vbnRoTW9kIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdCUxMn19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbihlKXtpZih0LmlzKCJBcnJheSIsZSkpe2Zvcih2YXIgaT1bXSxzPTA7czxlLmxlbmd0aDtzKyspaVtzXT10aGlzLmNsb25lKGVbc10pO3JldHVybiBpfWlmKHQuaXMoIk51bGwiLGUpKXJldHVybiBudWxsO2lmKHQuaXMoIkRhdGUiLGUpKXJldHVybiBlO2lmKCJvYmplY3QiPT09cihlKSl7dmFyIGE9e307Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKGFbbl09dGhpcy5jbG9uZShlW25dKSk7cmV0dXJuIGF9cmV0dXJuIGV9fSx7a2V5OiJsb2cxMCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubG9nKHQpL01hdGguTE4xMH19LHtrZXk6InJvdW5kVG9CYXNlMTAiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nMTAodCkpKX19LHtrZXk6InJvdW5kVG9CYXNlIix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLnBvdyhlLE1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5sb2coZSkpKX19LHtrZXk6InBhcnNlTnVtYmVyIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09PXQ/dDpwYXJzZUZsb2F0KHQpfX0se2tleToicmFuZG9tSWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuKE1hdGgucmFuZG9tKCkrMSkudG9TdHJpbmcoMzYpLnN1YnN0cmluZyg0KX19LHtrZXk6Im5vRXhwb25lbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1TdHJpbmcodCkuc3BsaXQoL1tlRV0vKTtpZigxPT09ZS5sZW5ndGgpcmV0dXJuIGVbMF07dmFyIGk9IiIscz10PDA/Ii0iOiIiLGE9ZVswXS5yZXBsYWNlKCIuIiwiIiksbj1OdW1iZXIoZVsxXSkrMTtpZihuPDApe2ZvcihpPXMrIjAuIjtuKys7KWkrPSIwIjtyZXR1cm4gaSthLnJlcGxhY2UoL14tLywiIil9Zm9yKG4tPWEubGVuZ3RoO24tLTspaSs9IjAiO3JldHVybiBhK2l9fSx7a2V5OiJnZXREaW1lbnNpb25zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCksaT10LmNsaWVudEhlaWdodCxzPXQuY2xpZW50V2lkdGg7cmV0dXJuIGktPXBhcnNlRmxvYXQoZS5wYWRkaW5nVG9wKStwYXJzZUZsb2F0KGUucGFkZGluZ0JvdHRvbSksW3MtPXBhcnNlRmxvYXQoZS5wYWRkaW5nTGVmdCkrcGFyc2VGbG9hdChlLnBhZGRpbmdSaWdodCksaV19fSx7a2V5OiJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue3RvcDplLnRvcCxyaWdodDplLnJpZ2h0LGJvdHRvbTplLmJvdHRvbSxsZWZ0OmUubGVmdCx3aWR0aDp0LmNsaWVudFdpZHRoLGhlaWdodDp0LmNsaWVudEhlaWdodCx4OmUubGVmdCx5OmUudG9wfX19LHtrZXk6ImdldExhcmdlc3RTdHJpbmdGcm9tQXJyIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJihlPWUucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0Lmxlbmd0aD5lLmxlbmd0aD90OmV9KSkpLHQubGVuZ3RoPmUubGVuZ3RoP3Q6ZX0pLDApfX0se2tleToiaGV4VG9SZ2JhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIzk5OTk5OSIsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06LjY7IiMiIT09dC5zdWJzdHJpbmcoMCwxKSYmKHQ9IiM5OTk5OTkiKTt2YXIgaT10LnJlcGxhY2UoIiMiLCIiKTtpPWkubWF0Y2gobmV3IFJlZ0V4cCgiKC57IitpLmxlbmd0aC8zKyJ9KSIsImciKSk7Zm9yKHZhciBzPTA7czxpLmxlbmd0aDtzKyspaVtzXT1wYXJzZUludCgxPT09aVtzXS5sZW5ndGg/aVtzXStpW3NdOmlbc10sMTYpO3JldHVybiB2b2lkIDAhPT1lJiZpLnB1c2goZSksInJnYmEoIitpLmpvaW4oIiwiKSsiKSJ9fSx7a2V5OiJnZXRPcGFjaXR5RnJvbVJHQkEiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUZsb2F0KHQucmVwbGFjZSgvXi4qLCguKylcKS8sIiQxIikpfX0se2tleToicmdiMmhleCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuKHQ9dC5tYXRjaCgvXnJnYmE/W1xzK10/XChbXHMrXT8oXGQrKVtccytdPyxbXHMrXT8oXGQrKVtccytdPyxbXHMrXT8oXGQrKVtccytdPy9pKSkmJjQ9PT10Lmxlbmd0aD8iIyIrKCIwIitwYXJzZUludCh0WzFdLDEwKS50b1N0cmluZygxNikpLnNsaWNlKC0yKSsoIjAiK3BhcnNlSW50KHRbMl0sMTApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpKygiMCIrcGFyc2VJbnQodFszXSwxMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMik6IiJ9fSx7a2V5OiJpc0NvbG9ySGV4Iix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4vKF4jWzAtOUEtRl17Nn0kKXwoXiNbMC05QS1GXXszfSQpfCheI1swLTlBLUZdezh9JCkvaS50ZXN0KHQpfX0se2tleToiZ2V0UG9seWdvblBvcyIsdmFsdWU6ZnVuY3Rpb24odCxlKXtmb3IodmFyIGk9W10scz0yKk1hdGguUEkvZSxhPTA7YTxlO2ErKyl7dmFyIG49e307bi54PXQqTWF0aC5zaW4oYSpzKSxuLnk9LXQqTWF0aC5jb3MoYSpzKSxpLnB1c2gobil9cmV0dXJuIGl9fSx7a2V5OiJwb2xhclRvQ2FydGVzaWFuIix2YWx1ZTpmdW5jdGlvbih0LGUsaSxzKXt2YXIgYT0ocy05MCkqTWF0aC5QSS8xODA7cmV0dXJue3g6dCtpKk1hdGguY29zKGEpLHk6ZStpKk1hdGguc2luKGEpfX19LHtrZXk6ImVzY2FwZVN0cmluZyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiJ4IixpPXQudG9TdHJpbmcoKS5zbGljZSgpO3JldHVybiBpLnJlcGxhY2UoL1tgIH4hQCMkJV4mKigpfCtcPT87OiciLC48Pnt9W1xdXFwvXS9naSxlKX19LHtrZXk6Im5lZ1RvWmVybyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQ8MD8wOnR9fSx7a2V5OiJtb3ZlSW5kZXhJbkFycmF5Iix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7aWYoaT49dC5sZW5ndGgpZm9yKHZhciBzPWktdC5sZW5ndGgrMTtzLS07KXQucHVzaCh2b2lkIDApO3JldHVybiB0LnNwbGljZShpLDAsdC5zcGxpY2UoZSwxKVswXSksdH19LHtrZXk6ImV4dHJhY3ROdW1iZXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUZsb2F0KHQucmVwbGFjZSgvW15cZC5dKi9nLCIiKSl9fSx7a2V5OiJmaW5kQW5jZXN0b3IiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7Zm9yKDsodD10LnBhcmVudEVsZW1lbnQpJiYhdC5jbGFzc0xpc3QuY29udGFpbnMoZSk7KTtyZXR1cm4gdH19LHtrZXk6InNldEVMc3R5bGVzIix2YWx1ZTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgaSBpbiBlKWUuaGFzT3duUHJvcGVydHkoaSkmJih0LnN0eWxlLmtleT1lW2ldKX19LHtrZXk6ImlzTnVtYmVyIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4haXNOYU4odCkmJnBhcnNlRmxvYXQoTnVtYmVyKHQpKT09PXQmJiFpc05hTihwYXJzZUludCh0LDEwKSl9fSx7a2V5OiJpc0Zsb2F0Iix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gTnVtYmVyKHQpPT09dCYmdCUxIT0wfX0se2tleToiaXNTYWZhcmkiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuL14oKD8hY2hyb21lfGFuZHJvaWQpLikqc2FmYXJpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KX19LHtrZXk6ImlzRmlyZWZveCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImZpcmVmb3giKT4tMX19LHtrZXk6ImlzSUUxMSIsdmFsdWU6ZnVuY3Rpb24oKXtpZigtMSE9PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1TSUUiKXx8d2luZG93Lm5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoIlRyaWRlbnQvIik+LTEpcmV0dXJuITB9fSx7a2V5OiJpc0lFIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LGU9dC5pbmRleE9mKCJNU0lFICIpO2lmKGU+MClyZXR1cm4gcGFyc2VJbnQodC5zdWJzdHJpbmcoZSs1LHQuaW5kZXhPZigiLiIsZSkpLDEwKTtpZih0LmluZGV4T2YoIlRyaWRlbnQvIik+MCl7dmFyIGk9dC5pbmRleE9mKCJydjoiKTtyZXR1cm4gcGFyc2VJbnQodC5zdWJzdHJpbmcoaSszLHQuaW5kZXhPZigiLiIsaSkpLDEwKX12YXIgcz10LmluZGV4T2YoIkVkZ2UvIik7cmV0dXJuIHM+MCYmcGFyc2VJbnQodC5zdWJzdHJpbmcocys1LHQuaW5kZXhPZigiLiIscykpLDEwKX19XSksdH0oKSx5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLnc9ZS53LHRoaXMuc2V0RWFzaW5nRnVuY3Rpb25zKCl9cmV0dXJuIGModCxbe2tleToic2V0RWFzaW5nRnVuY3Rpb25zIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O2lmKCF0aGlzLncuZ2xvYmFscy5lYXNpbmcpe3N3aXRjaCh0aGlzLncuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuZWFzaW5nKXtjYXNlImxpbmVhciI6dD0iLSI7YnJlYWs7Y2FzZSJlYXNlaW4iOnQ9IjwiO2JyZWFrO2Nhc2UiZWFzZW91dCI6dD0iPiI7YnJlYWs7Y2FzZSJlYXNlaW5vdXQiOmRlZmF1bHQ6dD0iPD4iO2JyZWFrO2Nhc2Uic3dpbmciOnQ9ZnVuY3Rpb24odCl7dmFyIGU9MS43MDE1ODtyZXR1cm4odC09MSkqdCooKGUrMSkqdCtlKSsxfTticmVhaztjYXNlImJvdW5jZSI6dD1mdW5jdGlvbih0KXtyZXR1cm4gdDwxLzIuNzU/Ny41NjI1KnQqdDp0PDIvMi43NT83LjU2MjUqKHQtPTEuNS8yLjc1KSp0Ky43NTp0PDIuNS8yLjc1PzcuNTYyNSoodC09Mi4yNS8yLjc1KSp0Ky45Mzc1OjcuNTYyNSoodC09Mi42MjUvMi43NSkqdCsuOTg0Mzc1fTticmVhaztjYXNlImVsYXN0aWMiOnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT0hIXQ/dDpNYXRoLnBvdygyLC0xMCp0KSpNYXRoLnNpbigodC0uMDc1KSooMipNYXRoLlBJKS8uMykrMX19dGhpcy53Lmdsb2JhbHMuZWFzaW5nPXR9fX0se2tleToiYW5pbWF0ZUxpbmUiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMpe3QuYXR0cihlKS5hbmltYXRlKHMpLmF0dHIoaSl9fSx7a2V5OiJhbmltYXRlTWFya2VyIix2YWx1ZTpmdW5jdGlvbih0LGUsaSxzLGEsbil7ZXx8KGU9MCksdC5hdHRyKHtyOmUsd2lkdGg6ZSxoZWlnaHQ6ZX0pLmFuaW1hdGUocyxhKS5hdHRyKHtyOmksd2lkdGg6aS53aWR0aCxoZWlnaHQ6aS5oZWlnaHR9KS5hZnRlckFsbCgoZnVuY3Rpb24oKXtuKCl9KSl9fSx7a2V5OiJhbmltYXRlQ2lyY2xlIix2YWx1ZTpmdW5jdGlvbih0LGUsaSxzLGEpe3QuYXR0cih7cjplLnIsY3g6ZS5jeCxjeTplLmN5fSkuYW5pbWF0ZShzLGEpLmF0dHIoe3I6aS5yLGN4OmkuY3gsY3k6aS5jeX0pfX0se2tleToiYW5pbWF0ZVJlY3QiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMsYSl7dC5hdHRyKGUpLmFuaW1hdGUocykuYXR0cihpKS5hZnRlckFsbCgoZnVuY3Rpb24oKXtyZXR1cm4gYSgpfSkpfX0se2tleToiYW5pbWF0ZVBhdGhzR3JhZHVhbGx5Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmVsLGk9dC5yZWFsSW5kZXgscz10LmosYT10LmZpbGwsbj10LnBhdGhGcm9tLHI9dC5wYXRoVG8sbz10LnNwZWVkLGw9dC5kZWxheSxjPXRoaXMudyxoPTA7Yy5jb25maWcuY2hhcnQuYW5pbWF0aW9ucy5hbmltYXRlR3JhZHVhbGx5LmVuYWJsZWQmJihoPWMuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuYW5pbWF0ZUdyYWR1YWxseS5kZWxheSksYy5jb25maWcuY2hhcnQuYW5pbWF0aW9ucy5keW5hbWljQW5pbWF0aW9uLmVuYWJsZWQmJmMuZ2xvYmFscy5kYXRhQ2hhbmdlZCYmImJhciIhPT1jLmNvbmZpZy5jaGFydC50eXBlJiYoaD0wKSx0aGlzLm1vcnBoU1ZHKGUsaSxzLCJsaW5lIiE9PWMuY29uZmlnLmNoYXJ0LnR5cGV8fGMuZ2xvYmFscy5jb21ib0NoYXJ0cz9hOiJzdHJva2UiLG4scixvLGwqaCl9fSx7a2V5OiJzaG93RGVsYXllZEVsZW1lbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudy5nbG9iYWxzLmRlbGF5ZWRFbGVtZW50cy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmVsLmNsYXNzTGlzdC5yZW1vdmUoImFwZXhjaGFydHMtZWxlbWVudC1oaWRkZW4iKX0pKX19LHtrZXk6ImFuaW1hdGlvbkNvbXBsZXRlZCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53O2UuZ2xvYmFscy5hbmltYXRpb25FbmRlZHx8KGUuZ2xvYmFscy5hbmltYXRpb25FbmRlZD0hMCx0aGlzLnNob3dEZWxheWVkRWxlbWVudHMoKSwiZnVuY3Rpb24iPT10eXBlb2YgZS5jb25maWcuY2hhcnQuZXZlbnRzLmFuaW1hdGlvbkVuZCYmZS5jb25maWcuY2hhcnQuZXZlbnRzLmFuaW1hdGlvbkVuZCh0aGlzLmN0eCx7ZWw6dCx3OmV9KSl9fSx7a2V5OiJtb3JwaFNWRyIsdmFsdWU6ZnVuY3Rpb24odCxlLGkscyxhLG4scixvKXt2YXIgbD10aGlzLGM9dGhpcy53O2F8fChhPXQuYXR0cigicGF0aEZyb20iKSksbnx8KG49dC5hdHRyKCJwYXRoVG8iKSk7dmFyIGg9ZnVuY3Rpb24odCl7cmV0dXJuInJhZGFyIj09PWMuY29uZmlnLmNoYXJ0LnR5cGUmJihyPTEpLCJNIDAgIi5jb25jYXQoYy5nbG9iYWxzLmdyaWRIZWlnaHQpfTsoIWF8fGEuaW5kZXhPZigidW5kZWZpbmVkIik+LTF8fGEuaW5kZXhPZigiTmFOIik+LTEpJiYoYT1oKCkpLCghbnx8bi5pbmRleE9mKCJ1bmRlZmluZWQiKT4tMXx8bi5pbmRleE9mKCJOYU4iKT4tMSkmJihuPWgoKSksYy5nbG9iYWxzLnNob3VsZEFuaW1hdGV8fChyPTEpLHQucGxvdChhKS5hbmltYXRlKDEsYy5nbG9iYWxzLmVhc2luZyxvKS5wbG90KGEpLmFuaW1hdGUocixjLmdsb2JhbHMuZWFzaW5nLG8pLnBsb3QobikuYWZ0ZXJBbGwoKGZ1bmN0aW9uKCl7Yi5pc051bWJlcihpKT9pPT09Yy5nbG9iYWxzLnNlcmllc1tjLmdsb2JhbHMubWF4VmFsc0luQXJyYXlJbmRleF0ubGVuZ3RoLTImJmMuZ2xvYmFscy5zaG91bGRBbmltYXRlJiZsLmFuaW1hdGlvbkNvbXBsZXRlZCh0KToibm9uZSIhPT1zJiZjLmdsb2JhbHMuc2hvdWxkQW5pbWF0ZSYmKCFjLmdsb2JhbHMuY29tYm9DaGFydHMmJmU9PT1jLmdsb2JhbHMuc2VyaWVzLmxlbmd0aC0xfHxjLmdsb2JhbHMuY29tYm9DaGFydHMpJiZsLmFuaW1hdGlvbkNvbXBsZXRlZCh0KSxsLnNob3dEZWxheWVkRWxlbWVudHMoKX0pKX19XSksdH0oKSx3PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLnc9ZS53fXJldHVybiBjKHQsW3trZXk6ImdldERlZmF1bHRGaWx0ZXIiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy53O3QudW5maWx0ZXIoITApLChuZXcgd2luZG93LlNWRy5GaWx0ZXIpLnNpemUoIjEyMCUiLCIxODAlIiwiLTUlIiwiLTQwJSIpLCJub25lIiE9PWkuY29uZmlnLnN0YXRlcy5ub3JtYWwuZmlsdGVyP3RoaXMuYXBwbHlGaWx0ZXIodCxlLGkuY29uZmlnLnN0YXRlcy5ub3JtYWwuZmlsdGVyLnR5cGUsaS5jb25maWcuc3RhdGVzLm5vcm1hbC5maWx0ZXIudmFsdWUpOmkuY29uZmlnLmNoYXJ0LmRyb3BTaGFkb3cuZW5hYmxlZCYmdGhpcy5kcm9wU2hhZG93KHQsaS5jb25maWcuY2hhcnQuZHJvcFNoYWRvdyxlKX19LHtrZXk6ImFkZE5vcm1hbEZpbHRlciIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnc7aS5jb25maWcuY2hhcnQuZHJvcFNoYWRvdy5lbmFibGVkJiYhdC5ub2RlLmNsYXNzTGlzdC5jb250YWlucygiYXBleGNoYXJ0cy1tYXJrZXIiKSYmdGhpcy5kcm9wU2hhZG93KHQsaS5jb25maWcuY2hhcnQuZHJvcFNoYWRvdyxlKX19LHtrZXk6ImFkZExpZ2h0ZW5GaWx0ZXIiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzLGE9dGhpcy53LG49aS5pbnRlbnNpdHk7dC51bmZpbHRlcighMCksbmV3IHdpbmRvdy5TVkcuRmlsdGVyLHQuZmlsdGVyKChmdW5jdGlvbih0KXt2YXIgaT1hLmNvbmZpZy5jaGFydC5kcm9wU2hhZG93OyhpLmVuYWJsZWQ/cy5hZGRTaGFkb3codCxlLGkpOnQpLmNvbXBvbmVudFRyYW5zZmVyKHtyZ2I6e3R5cGU6ImxpbmVhciIsc2xvcGU6MS41LGludGVyY2VwdDpufX0pfSkpLHQuZmlsdGVyZXIubm9kZS5zZXRBdHRyaWJ1dGUoImZpbHRlclVuaXRzIiwidXNlclNwYWNlT25Vc2UiKSx0aGlzLl9zY2FsZUZpbHRlclNpemUodC5maWx0ZXJlci5ub2RlKX19LHtrZXk6ImFkZERhcmtlbkZpbHRlciIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXMsYT10aGlzLncsbj1pLmludGVuc2l0eTt0LnVuZmlsdGVyKCEwKSxuZXcgd2luZG93LlNWRy5GaWx0ZXIsdC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3ZhciBpPWEuY29uZmlnLmNoYXJ0LmRyb3BTaGFkb3c7KGkuZW5hYmxlZD9zLmFkZFNoYWRvdyh0LGUsaSk6dCkuY29tcG9uZW50VHJhbnNmZXIoe3JnYjp7dHlwZToibGluZWFyIixzbG9wZTpufX0pfSkpLHQuZmlsdGVyZXIubm9kZS5zZXRBdHRyaWJ1dGUoImZpbHRlclVuaXRzIiwidXNlclNwYWNlT25Vc2UiKSx0aGlzLl9zY2FsZUZpbHRlclNpemUodC5maWx0ZXJlci5ub2RlKX19LHtrZXk6ImFwcGx5RmlsdGVyIix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOi41O3N3aXRjaChpKXtjYXNlIm5vbmUiOnRoaXMuYWRkTm9ybWFsRmlsdGVyKHQsZSk7YnJlYWs7Y2FzZSJsaWdodGVuIjp0aGlzLmFkZExpZ2h0ZW5GaWx0ZXIodCxlLHtpbnRlbnNpdHk6c30pO2JyZWFrO2Nhc2UiZGFya2VuIjp0aGlzLmFkZERhcmtlbkZpbHRlcih0LGUse2ludGVuc2l0eTpzfSl9fX0se2tleToiYWRkU2hhZG93Iix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9aS5ibHVyLGE9aS50b3Asbj1pLmxlZnQscj1pLmNvbG9yLG89aS5vcGFjaXR5LGw9dC5mbG9vZChBcnJheS5pc0FycmF5KHIpP3JbZV06cixvKS5jb21wb3NpdGUodC5zb3VyY2VBbHBoYSwiaW4iKS5vZmZzZXQobixhKS5nYXVzc2lhbkJsdXIocykubWVyZ2UodC5zb3VyY2UpO3JldHVybiB0LmJsZW5kKHQuc291cmNlLGwpfX0se2tleToiZHJvcFNoYWRvdyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxzPWUudG9wLGE9ZS5sZWZ0LG49ZS5ibHVyLHI9ZS5jb2xvcixvPWUub3BhY2l0eSxsPWUubm9Vc2VyU3BhY2VPblVzZSxjPXRoaXMudztyZXR1cm4gdC51bmZpbHRlcighMCksYi5pc0lFKCkmJiJyYWRpYWxCYXIiPT09Yy5jb25maWcuY2hhcnQudHlwZXx8KHI9QXJyYXkuaXNBcnJheShyKT9yW2ldOnIsdC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3ZhciBlO2U9Yi5pc1NhZmFyaSgpfHxiLmlzRmlyZWZveCgpfHxiLmlzSUUoKT90LmZsb29kKHIsbykuY29tcG9zaXRlKHQuc291cmNlQWxwaGEsImluIikub2Zmc2V0KGEscykuZ2F1c3NpYW5CbHVyKG4pOnQuZmxvb2QocixvKS5jb21wb3NpdGUodC5zb3VyY2VBbHBoYSwiaW4iKS5vZmZzZXQoYSxzKS5nYXVzc2lhbkJsdXIobikubWVyZ2UodC5zb3VyY2UpLHQuYmxlbmQodC5zb3VyY2UsZSl9KSksbHx8dC5maWx0ZXJlci5ub2RlLnNldEF0dHJpYnV0ZSgiZmlsdGVyVW5pdHMiLCJ1c2VyU3BhY2VPblVzZSIpLHRoaXMuX3NjYWxlRmlsdGVyU2l6ZSh0LmZpbHRlcmVyLm5vZGUpKSx0fX0se2tleToic2V0U2VsZWN0aW9uRmlsdGVyIix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpcy53O2lmKHZvaWQgMCE9PXMuZ2xvYmFscy5zZWxlY3RlZERhdGFQb2ludHNbZV0mJnMuZ2xvYmFscy5zZWxlY3RlZERhdGFQb2ludHNbZV0uaW5kZXhPZihpKT4tMSl7dC5ub2RlLnNldEF0dHJpYnV0ZSgic2VsZWN0ZWQiLCEwKTt2YXIgYT1zLmNvbmZpZy5zdGF0ZXMuYWN0aXZlLmZpbHRlcjsibm9uZSIhPT1hJiZ0aGlzLmFwcGx5RmlsdGVyKHQsZSxhLnR5cGUsYS52YWx1ZSl9fX0se2tleToiX3NjYWxlRmlsdGVyU2l6ZSIsdmFsdWU6ZnVuY3Rpb24odCl7IWZ1bmN0aW9uKGUpe2Zvcih2YXIgaSBpbiBlKWUuaGFzT3duUHJvcGVydHkoaSkmJnQuc2V0QXR0cmlidXRlKGksZVtpXSl9KHt3aWR0aDoiMjAwJSIsaGVpZ2h0OiIyMDAlIix4OiItNTAlIix5OiItNTAlIn0pfX1dKSx0fSgpLGs9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLnd9cmV0dXJuIGModCxbe2tleToicm91bmRQYXRoQ29ybmVycyIsdmFsdWU6ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBpKHQsZSxpKXt2YXIgYT1lLngtdC54LG49ZS55LXQueSxyPU1hdGguc3FydChhKmErbipuKTtyZXR1cm4gcyh0LGUsTWF0aC5taW4oMSxpL3IpKX1mdW5jdGlvbiBzKHQsZSxpKXtyZXR1cm57eDp0LngrKGUueC10LngpKmkseTp0LnkrKGUueS10LnkpKml9fWZ1bmN0aW9uIGEodCxlKXt0Lmxlbmd0aD4yJiYodFt0Lmxlbmd0aC0yXT1lLngsdFt0Lmxlbmd0aC0xXT1lLnkpfWZ1bmN0aW9uIG4odCl7cmV0dXJue3g6cGFyc2VGbG9hdCh0W3QubGVuZ3RoLTJdKSx5OnBhcnNlRmxvYXQodFt0Lmxlbmd0aC0xXSl9fXZhciByPXQuc3BsaXQoL1ssXHNdLykucmVkdWNlKChmdW5jdGlvbih0LGUpe3ZhciBpPWUubWF0Y2goIihbYS16QS1aXSkoLispIik7cmV0dXJuIGk/KHQucHVzaChpWzFdKSx0LnB1c2goaVsyXSkpOnQucHVzaChlKSx0fSksW10pLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gcGFyc2VGbG9hdChlKT09ZSYmdC5sZW5ndGg/dFt0Lmxlbmd0aC0xXS5wdXNoKGUpOnQucHVzaChbZV0pLHR9KSxbXSksbz1bXTtpZihyLmxlbmd0aD4xKXt2YXIgbD1uKHJbMF0pLGM9bnVsbDsiWiI9PXJbci5sZW5ndGgtMV1bMF0mJnJbMF0ubGVuZ3RoPjImJihjPVsiTCIsbC54LGwueV0scltyLmxlbmd0aC0xXT1jKSxvLnB1c2goclswXSk7Zm9yKHZhciBoPTE7aDxyLmxlbmd0aDtoKyspe3ZhciBkPW9bby5sZW5ndGgtMV0sdT1yW2hdLHA9dT09Yz9yWzFdOnJbaCsxXTtpZihwJiZkJiZkLmxlbmd0aD4yJiYiTCI9PXVbMF0mJnAubGVuZ3RoPjImJiJMIj09cFswXSl7dmFyIGcsZixtPW4oZCksdj1uKHUpLHg9bihwKTtnPWkodixtLGUpLGY9aSh2LHgsZSksYSh1LGcpLHUub3JpZ1BvaW50PXYsby5wdXNoKHUpO3ZhciBiPXMoZyx2LC41KSx5PXModixmLC41KSx3PVsiQyIsYi54LGIueSx5LngseS55LGYueCxmLnldO3cub3JpZ1BvaW50PXYsby5wdXNoKHcpfWVsc2Ugby5wdXNoKHUpfWlmKGMpe3ZhciBrPW4ob1tvLmxlbmd0aC0xXSk7by5wdXNoKFsiWiJdKSxhKG9bMF0sayl9fWVsc2Ugbz1yO3JldHVybiBvLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLmpvaW4oIiAiKSsiICJ9KSwiIil9fSx7a2V5OiJkcmF3TGluZSIsdmFsdWU6ZnVuY3Rpb24odCxlLGkscyl7dmFyIGE9YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOiIjYThhOGE4IixuPWFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdP2FyZ3VtZW50c1s1XTowLHI9YXJndW1lbnRzLmxlbmd0aD42JiZ2b2lkIDAhPT1hcmd1bWVudHNbNl0/YXJndW1lbnRzWzZdOm51bGwsbz1hcmd1bWVudHMubGVuZ3RoPjcmJnZvaWQgMCE9PWFyZ3VtZW50c1s3XT9hcmd1bWVudHNbN106ImJ1dHQiLGw9dGhpcy53LGM9bC5nbG9iYWxzLmRvbS5QYXBlci5saW5lKCkuYXR0cih7eDE6dCx5MTplLHgyOmkseTI6cyxzdHJva2U6YSwic3Ryb2tlLWRhc2hhcnJheSI6biwic3Ryb2tlLXdpZHRoIjpyLCJzdHJva2UtbGluZWNhcCI6b30pO3JldHVybiBjfX0se2tleToiZHJhd1JlY3QiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MCxpPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTowLHM9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOjAsYT1hcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XT9hcmd1bWVudHNbNF06MCxuPWFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdP2FyZ3VtZW50c1s1XToiI2ZlZmVmZSIscj1hcmd1bWVudHMubGVuZ3RoPjYmJnZvaWQgMCE9PWFyZ3VtZW50c1s2XT9hcmd1bWVudHNbNl06MSxvPWFyZ3VtZW50cy5sZW5ndGg+NyYmdm9pZCAwIT09YXJndW1lbnRzWzddP2FyZ3VtZW50c1s3XTpudWxsLGw9YXJndW1lbnRzLmxlbmd0aD44JiZ2b2lkIDAhPT1hcmd1bWVudHNbOF0/YXJndW1lbnRzWzhdOm51bGwsYz1hcmd1bWVudHMubGVuZ3RoPjkmJnZvaWQgMCE9PWFyZ3VtZW50c1s5XT9hcmd1bWVudHNbOV06MCxoPXRoaXMudyxkPWguZ2xvYmFscy5kb20uUGFwZXIucmVjdCgpO3JldHVybiBkLmF0dHIoe3g6dCx5OmUsd2lkdGg6aT4wP2k6MCxoZWlnaHQ6cz4wP3M6MCxyeDphLHJ5OmEsb3BhY2l0eTpyLCJzdHJva2Utd2lkdGgiOm51bGwhPT1vP286MCxzdHJva2U6bnVsbCE9PWw/bDoibm9uZSIsInN0cm9rZS1kYXNoYXJyYXkiOmN9KSxkLm5vZGUuc2V0QXR0cmlidXRlKCJmaWxsIixuKSxkfX0se2tleToiZHJhd1BvbHlnb24iLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiI2UxZTFlMSIsaT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MSxzPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXToibm9uZSIsYT10aGlzLncsbj1hLmdsb2JhbHMuZG9tLlBhcGVyLnBvbHlnb24odCkuYXR0cih7ZmlsbDpzLHN0cm9rZTplLCJzdHJva2Utd2lkdGgiOml9KTtyZXR1cm4gbn19LHtrZXk6ImRyYXdDaXJjbGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpudWxsLGk9dGhpcy53O3Q8MCYmKHQ9MCk7dmFyIHM9aS5nbG9iYWxzLmRvbS5QYXBlci5jaXJjbGUoMip0KTtyZXR1cm4gbnVsbCE9PWUmJnMuYXR0cihlKSxzfX0se2tleToiZHJhd1BhdGgiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuZCxpPXZvaWQgMD09PWU/IiI6ZSxzPXQuc3Ryb2tlLGE9dm9pZCAwPT09cz8iI2E4YThhOCI6cyxuPXQuc3Ryb2tlV2lkdGgscj12b2lkIDA9PT1uPzE6bixvPXQuZmlsbCxsPXQuZmlsbE9wYWNpdHksYz12b2lkIDA9PT1sPzE6bCxoPXQuc3Ryb2tlT3BhY2l0eSxkPXZvaWQgMD09PWg/MTpoLHU9dC5jbGFzc2VzLHA9dC5zdHJva2VMaW5lY2FwLGc9dm9pZCAwPT09cD9udWxsOnAsZj10LnN0cm9rZURhc2hBcnJheSxtPXZvaWQgMD09PWY/MDpmLHY9dGhpcy53O3JldHVybiBudWxsPT09ZyYmKGc9di5jb25maWcuc3Ryb2tlLmxpbmVDYXApLChpLmluZGV4T2YoInVuZGVmaW5lZCIpPi0xfHxpLmluZGV4T2YoIk5hTiIpPi0xKSYmKGk9Ik0gMCAiLmNvbmNhdCh2Lmdsb2JhbHMuZ3JpZEhlaWdodCkpLHYuZ2xvYmFscy5kb20uUGFwZXIucGF0aChpKS5hdHRyKHtmaWxsOm8sImZpbGwtb3BhY2l0eSI6YyxzdHJva2U6YSwic3Ryb2tlLW9wYWNpdHkiOmQsInN0cm9rZS1saW5lY2FwIjpnLCJzdHJva2Utd2lkdGgiOnIsInN0cm9rZS1kYXNoYXJyYXkiOm0sY2xhc3M6dX0pfX0se2tleToiZ3JvdXAiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGwsZT10aGlzLncsaT1lLmdsb2JhbHMuZG9tLlBhcGVyLmdyb3VwKCk7cmV0dXJuIG51bGwhPT10JiZpLmF0dHIodCksaX19LHtrZXk6Im1vdmUiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuWyJNIix0LGVdLmpvaW4oIiAiKX19LHtrZXk6ImxpbmUiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGwscz1udWxsO3JldHVybiBudWxsPT09aT9zPVsiIEwiLHQsZV0uam9pbigiICIpOiJIIj09PWk/cz1bIiBIIix0XS5qb2luKCIgIik6IlYiPT09aSYmKHM9WyIgViIsZV0uam9pbigiICIpKSxzfX0se2tleToiY3VydmUiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMsYSxuKXtyZXR1cm5bIkMiLHQsZSxpLHMsYSxuXS5qb2luKCIgIil9fSx7a2V5OiJxdWFkcmF0aWNDdXJ2ZSIsdmFsdWU6ZnVuY3Rpb24odCxlLGkscyl7cmV0dXJuWyJRIix0LGUsaSxzXS5qb2luKCIgIil9fSx7a2V5OiJhcmMiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMsYSxuLHIpe3ZhciBvPWFyZ3VtZW50cy5sZW5ndGg+NyYmdm9pZCAwIT09YXJndW1lbnRzWzddJiZhcmd1bWVudHNbN10sbD0iQSI7byYmKGw9ImEiKTt2YXIgYz1bbCx0LGUsaSxzLGEsbixyXS5qb2luKCIgIik7cmV0dXJuIGN9fSx7a2V5OiJyZW5kZXJQYXRocyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsaT10Lmoscz10LnJlYWxJbmRleCxhPXQucGF0aEZyb20scj10LnBhdGhUbyxvPXQuc3Ryb2tlLGw9dC5zdHJva2VXaWR0aCxjPXQuc3Ryb2tlTGluZWNhcCxoPXQuZmlsbCxkPXQuYW5pbWF0aW9uRGVsYXksdT10LmluaXRpYWxTcGVlZCxwPXQuZGF0YUNoYW5nZVNwZWVkLGc9dC5jbGFzc05hbWUsZj10LnNob3VsZENsaXBUb0dyaWQsbT12b2lkIDA9PT1mfHxmLHY9dC5iaW5kRXZlbnRzT25QYXRocyx4PXZvaWQgMD09PXZ8fHYsYj10LmRyYXdTaGFkb3csaz12b2lkIDA9PT1ifHxiLFM9dGhpcy53LEM9bmV3IHcodGhpcy5jdHgpLEE9bmV3IHkodGhpcy5jdHgpLEU9dGhpcy53LmNvbmZpZy5jaGFydC5hbmltYXRpb25zLmVuYWJsZWQsVD1FJiZ0aGlzLncuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuZHluYW1pY0FuaW1hdGlvbi5lbmFibGVkLEw9ISEoRSYmIVMuZ2xvYmFscy5yZXNpemVkfHxUJiZTLmdsb2JhbHMuZGF0YUNoYW5nZWQmJlMuZ2xvYmFscy5zaG91bGRBbmltYXRlKTtMP2U9YTooZT1yLFMuZ2xvYmFscy5hbmltYXRpb25FbmRlZD0hMCk7dmFyIFAsTT1TLmNvbmZpZy5zdHJva2UuZGFzaEFycmF5O1A9QXJyYXkuaXNBcnJheShNKT9NW3NdOlMuY29uZmlnLnN0cm9rZS5kYXNoQXJyYXk7dmFyIE89dGhpcy5kcmF3UGF0aCh7ZDplLHN0cm9rZTpvLHN0cm9rZVdpZHRoOmwsZmlsbDpoLGZpbGxPcGFjaXR5OjEsY2xhc3NlczpnLHN0cm9rZUxpbmVjYXA6YyxzdHJva2VEYXNoQXJyYXk6UH0pO2lmKE8uYXR0cigiaW5kZXgiLHMpLG0mJk8uYXR0cih7ImNsaXAtcGF0aCI6InVybCgjZ3JpZFJlY3RNYXNrIi5jb25jYXQoUy5nbG9iYWxzLmN1aWQsIikiKX0pLCJub25lIiE9PVMuY29uZmlnLnN0YXRlcy5ub3JtYWwuZmlsdGVyLnR5cGUpQy5nZXREZWZhdWx0RmlsdGVyKE8scyk7ZWxzZSBpZihTLmNvbmZpZy5jaGFydC5kcm9wU2hhZG93LmVuYWJsZWQmJmsmJighUy5jb25maWcuY2hhcnQuZHJvcFNoYWRvdy5lbmFibGVkT25TZXJpZXN8fFMuY29uZmlnLmNoYXJ0LmRyb3BTaGFkb3cuZW5hYmxlZE9uU2VyaWVzJiYtMSE9PVMuY29uZmlnLmNoYXJ0LmRyb3BTaGFkb3cuZW5hYmxlZE9uU2VyaWVzLmluZGV4T2YocykpKXt2YXIgST1TLmNvbmZpZy5jaGFydC5kcm9wU2hhZG93O0MuZHJvcFNoYWRvdyhPLEkscyl9eCYmKE8ubm9kZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzLnBhdGhNb3VzZUVudGVyLmJpbmQodGhpcyxPKSksTy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMucGF0aE1vdXNlTGVhdmUuYmluZCh0aGlzLE8pKSxPLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLnBhdGhNb3VzZURvd24uYmluZCh0aGlzLE8pKSksTy5hdHRyKHtwYXRoVG86cixwYXRoRnJvbTphfSk7dmFyIEY9e2VsOk8sajppLHJlYWxJbmRleDpzLHBhdGhGcm9tOmEscGF0aFRvOnIsZmlsbDpoLHN0cm9rZVdpZHRoOmwsZGVsYXk6ZH07cmV0dXJuIUV8fFMuZ2xvYmFscy5yZXNpemVkfHxTLmdsb2JhbHMuZGF0YUNoYW5nZWQ/IVMuZ2xvYmFscy5yZXNpemVkJiZTLmdsb2JhbHMuZGF0YUNoYW5nZWR8fEEuc2hvd0RlbGF5ZWRFbGVtZW50cygpOkEuYW5pbWF0ZVBhdGhzR3JhZHVhbGx5KG4obih7fSxGKSx7fSx7c3BlZWQ6dX0pKSxTLmdsb2JhbHMuZGF0YUNoYW5nZWQmJlQmJkwmJkEuYW5pbWF0ZVBhdGhzR3JhZHVhbGx5KG4obih7fSxGKSx7fSx7c3BlZWQ6cH0pKSxPfX0se2tleToiZHJhd1BhdHRlcm4iLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106IiNhOGE4YTgiLGE9YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOjAsbj10aGlzLncscj1uLmdsb2JhbHMuZG9tLlBhcGVyLnBhdHRlcm4oZSxpLChmdW5jdGlvbihuKXsiaG9yaXpvbnRhbExpbmVzIj09PXQ/bi5saW5lKDAsMCxpLDApLnN0cm9rZSh7Y29sb3I6cyx3aWR0aDphKzF9KToidmVydGljYWxMaW5lcyI9PT10P24ubGluZSgwLDAsMCxlKS5zdHJva2Uoe2NvbG9yOnMsd2lkdGg6YSsxfSk6InNsYW50ZWRMaW5lcyI9PT10P24ubGluZSgwLDAsZSxpKS5zdHJva2Uoe2NvbG9yOnMsd2lkdGg6YX0pOiJzcXVhcmVzIj09PXQ/bi5yZWN0KGUsaSkuZmlsbCgibm9uZSIpLnN0cm9rZSh7Y29sb3I6cyx3aWR0aDphfSk6ImNpcmNsZXMiPT09dCYmbi5jaXJjbGUoZSkuZmlsbCgibm9uZSIpLnN0cm9rZSh7Y29sb3I6cyx3aWR0aDphfSl9KSk7cmV0dXJuIHJ9fSx7a2V5OiJkcmF3R3JhZGllbnQiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMsYSl7dmFyIG4scj1hcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XT9hcmd1bWVudHNbNV06bnVsbCxvPWFyZ3VtZW50cy5sZW5ndGg+NiYmdm9pZCAwIT09YXJndW1lbnRzWzZdP2FyZ3VtZW50c1s2XTpudWxsLGw9YXJndW1lbnRzLmxlbmd0aD43JiZ2b2lkIDAhPT1hcmd1bWVudHNbN10/YXJndW1lbnRzWzddOm51bGwsYz1hcmd1bWVudHMubGVuZ3RoPjgmJnZvaWQgMCE9PWFyZ3VtZW50c1s4XT9hcmd1bWVudHNbOF06MCxoPXRoaXMudztlLmxlbmd0aDw5JiYwPT09ZS5pbmRleE9mKCIjIikmJihlPWIuaGV4VG9SZ2JhKGUscykpLGkubGVuZ3RoPDkmJjA9PT1pLmluZGV4T2YoIiMiKSYmKGk9Yi5oZXhUb1JnYmEoaSxhKSk7dmFyIGQ9MCx1PTEscD0xLGc9bnVsbDtudWxsIT09byYmKGQ9dm9pZCAwIT09b1swXT9vWzBdLzEwMDowLHU9dm9pZCAwIT09b1sxXT9vWzFdLzEwMDoxLHA9dm9pZCAwIT09b1syXT9vWzJdLzEwMDoxLGc9dm9pZCAwIT09b1szXT9vWzNdLzEwMDpudWxsKTt2YXIgZj0hKCJkb251dCIhPT1oLmNvbmZpZy5jaGFydC50eXBlJiYicGllIiE9PWguY29uZmlnLmNoYXJ0LnR5cGUmJiJwb2xhckFyZWEiIT09aC5jb25maWcuY2hhcnQudHlwZSYmImJ1YmJsZSIhPT1oLmNvbmZpZy5jaGFydC50eXBlKTtpZihuPW51bGw9PT1sfHwwPT09bC5sZW5ndGg/aC5nbG9iYWxzLmRvbS5QYXBlci5ncmFkaWVudChmPyJyYWRpYWwiOiJsaW5lYXIiLChmdW5jdGlvbih0KXt0LmF0KGQsZSxzKSx0LmF0KHUsaSxhKSx0LmF0KHAsaSxhKSxudWxsIT09ZyYmdC5hdChnLGUscyl9KSk6aC5nbG9iYWxzLmRvbS5QYXBlci5ncmFkaWVudChmPyJyYWRpYWwiOiJsaW5lYXIiLChmdW5jdGlvbih0KXsoQXJyYXkuaXNBcnJheShsW2NdKT9sW2NdOmwpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QuYXQoZS5vZmZzZXQvMTAwLGUuY29sb3IsZS5vcGFjaXR5KX0pKX0pKSxmKXt2YXIgbT1oLmdsb2JhbHMuZ3JpZFdpZHRoLzIsdj1oLmdsb2JhbHMuZ3JpZEhlaWdodC8yOyJidWJibGUiIT09aC5jb25maWcuY2hhcnQudHlwZT9uLmF0dHIoe2dyYWRpZW50VW5pdHM6InVzZXJTcGFjZU9uVXNlIixjeDptLGN5OnYscjpyfSk6bi5hdHRyKHtjeDouNSxjeTouNSxyOi44LGZ4Oi4yLGZ5Oi4yfSl9ZWxzZSJ2ZXJ0aWNhbCI9PT10P24uZnJvbSgwLDApLnRvKDAsMSk6ImRpYWdvbmFsIj09PXQ/bi5mcm9tKDAsMCkudG8oMSwxKToiaG9yaXpvbnRhbCI9PT10P24uZnJvbSgwLDEpLnRvKDEsMSk6ImRpYWdvbmFsMiI9PT10JiZuLmZyb20oMSwwKS50bygwLDEpO3JldHVybiBufX0se2tleToiZ2V0VGV4dEJhc2VkT25NYXhXaWR0aCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC50ZXh0LGk9dC5tYXhXaWR0aCxzPXQuZm9udFNpemUsYT10LmZvbnRGYW1pbHksbj10aGlzLmdldFRleHRSZWN0cyhlLHMsYSkscj1uLndpZHRoL2UubGVuZ3RoLG89TWF0aC5mbG9vcihpL3IpO3JldHVybiBpPG4ud2lkdGg/ZS5zbGljZSgwLG8tMykrIi4uLiI6ZX19LHtrZXk6ImRyYXdUZXh0Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dC54LHM9dC55LGE9dC50ZXh0LHI9dC50ZXh0QW5jaG9yLG89dC5mb250U2l6ZSxsPXQuZm9udEZhbWlseSxjPXQuZm9udFdlaWdodCxoPXQuZm9yZUNvbG9yLGQ9dC5vcGFjaXR5LHU9dC5tYXhXaWR0aCxwPXQuY3NzQ2xhc3MsZz12b2lkIDA9PT1wPyIiOnAsZj10LmlzUGxhaW5UZXh0LG09dm9pZCAwPT09Znx8Zix2PXRoaXMudzt2b2lkIDA9PT1hJiYoYT0iIik7dmFyIHg9YTtyfHwocj0ic3RhcnQiKSxoJiZoLmxlbmd0aHx8KGg9di5jb25maWcuY2hhcnQuZm9yZUNvbG9yKSxsPWx8fHYuY29uZmlnLmNoYXJ0LmZvbnRGYW1pbHksYz1jfHwicmVndWxhciI7dmFyIGIseT17bWF4V2lkdGg6dSxmb250U2l6ZTpvPW98fCIxMXB4Iixmb250RmFtaWx5Omx9O3JldHVybiBBcnJheS5pc0FycmF5KGEpP2I9di5nbG9iYWxzLmRvbS5QYXBlci50ZXh0KChmdW5jdGlvbih0KXtmb3IodmFyIGk9MDtpPGEubGVuZ3RoO2krKyl4PWFbaV0sdSYmKHg9ZS5nZXRUZXh0QmFzZWRPbk1heFdpZHRoKG4oe3RleHQ6YVtpXX0seSkpKSwwPT09aT90LnRzcGFuKHgpOnQudHNwYW4oeCkubmV3TGluZSgpfSkpOih1JiYoeD10aGlzLmdldFRleHRCYXNlZE9uTWF4V2lkdGgobih7dGV4dDphfSx5KSkpLGI9bT92Lmdsb2JhbHMuZG9tLlBhcGVyLnBsYWluKGEpOnYuZ2xvYmFscy5kb20uUGFwZXIudGV4dCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudHNwYW4oeCl9KSkpLGIuYXR0cih7eDppLHk6cywidGV4dC1hbmNob3IiOnIsImRvbWluYW50LWJhc2VsaW5lIjoiYXV0byIsImZvbnQtc2l6ZSI6bywiZm9udC1mYW1pbHkiOmwsImZvbnQtd2VpZ2h0IjpjLGZpbGw6aCxjbGFzczoiYXBleGNoYXJ0cy10ZXh0ICIrZ30pLGIubm9kZS5zdHlsZS5mb250RmFtaWx5PWwsYi5ub2RlLnN0eWxlLm9wYWNpdHk9ZCxifX0se2tleToiZHJhd01hcmtlciIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3Q9dHx8MDt2YXIgcz1pLnBTaXplfHwwLGE9bnVsbDtpZigic3F1YXJlIj09PWkuc2hhcGV8fCJyZWN0Ij09PWkuc2hhcGUpe3ZhciBuPXZvaWQgMD09PWkucFJhZGl1cz9zLzI6aS5wUmFkaXVzO251bGwhPT1lJiZzfHwocz0wLG49MCk7dmFyIHI9MS4yKnMrbixvPXRoaXMuZHJhd1JlY3QocixyLHIscixuKTtvLmF0dHIoe3g6dC1yLzIseTplLXIvMixjeDp0LGN5OmUsY2xhc3M6aS5jbGFzcz9pLmNsYXNzOiIiLGZpbGw6aS5wb2ludEZpbGxDb2xvciwiZmlsbC1vcGFjaXR5IjppLnBvaW50RmlsbE9wYWNpdHk/aS5wb2ludEZpbGxPcGFjaXR5OjEsc3Ryb2tlOmkucG9pbnRTdHJva2VDb2xvciwic3Ryb2tlLXdpZHRoIjppLnBvaW50U3Ryb2tlV2lkdGg/aS5wb2ludFN0cm9rZVdpZHRoOjAsInN0cm9rZS1vcGFjaXR5IjppLnBvaW50U3Ryb2tlT3BhY2l0eT9pLnBvaW50U3Ryb2tlT3BhY2l0eToxfSksYT1vfWVsc2UiY2lyY2xlIiE9PWkuc2hhcGUmJmkuc2hhcGV8fChiLmlzTnVtYmVyKGUpfHwocz0wLGU9MCksYT10aGlzLmRyYXdDaXJjbGUocyx7Y3g6dCxjeTplLGNsYXNzOmkuY2xhc3M/aS5jbGFzczoiIixzdHJva2U6aS5wb2ludFN0cm9rZUNvbG9yLGZpbGw6aS5wb2ludEZpbGxDb2xvciwiZmlsbC1vcGFjaXR5IjppLnBvaW50RmlsbE9wYWNpdHk/aS5wb2ludEZpbGxPcGFjaXR5OjEsInN0cm9rZS13aWR0aCI6aS5wb2ludFN0cm9rZVdpZHRoP2kucG9pbnRTdHJva2VXaWR0aDowLCJzdHJva2Utb3BhY2l0eSI6aS5wb2ludFN0cm9rZU9wYWNpdHk/aS5wb2ludFN0cm9rZU9wYWNpdHk6MX0pKTtyZXR1cm4gYX19LHtrZXk6InBhdGhNb3VzZUVudGVyIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudyxzPW5ldyB3KHRoaXMuY3R4KSxhPXBhcnNlSW50KHQubm9kZS5nZXRBdHRyaWJ1dGUoImluZGV4IiksMTApLG49cGFyc2VJbnQodC5ub2RlLmdldEF0dHJpYnV0ZSgiaiIpLDEwKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgaS5jb25maWcuY2hhcnQuZXZlbnRzLmRhdGFQb2ludE1vdXNlRW50ZXImJmkuY29uZmlnLmNoYXJ0LmV2ZW50cy5kYXRhUG9pbnRNb3VzZUVudGVyKGUsdGhpcy5jdHgse3Nlcmllc0luZGV4OmEsZGF0YVBvaW50SW5kZXg6bix3Oml9KSx0aGlzLmN0eC5ldmVudHMuZmlyZUV2ZW50KCJkYXRhUG9pbnRNb3VzZUVudGVyIixbZSx0aGlzLmN0eCx7c2VyaWVzSW5kZXg6YSxkYXRhUG9pbnRJbmRleDpuLHc6aX1dKSwoIm5vbmUiPT09aS5jb25maWcuc3RhdGVzLmFjdGl2ZS5maWx0ZXIudHlwZXx8InRydWUiIT09dC5ub2RlLmdldEF0dHJpYnV0ZSgic2VsZWN0ZWQiKSkmJiJub25lIiE9PWkuY29uZmlnLnN0YXRlcy5ob3Zlci5maWx0ZXIudHlwZSYmIWkuZ2xvYmFscy5pc1RvdWNoRGV2aWNlKXt2YXIgcj1pLmNvbmZpZy5zdGF0ZXMuaG92ZXIuZmlsdGVyO3MuYXBwbHlGaWx0ZXIodCxhLHIudHlwZSxyLnZhbHVlKX19fSx7a2V5OiJwYXRoTW91c2VMZWF2ZSIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLncscz1uZXcgdyh0aGlzLmN0eCksYT1wYXJzZUludCh0Lm5vZGUuZ2V0QXR0cmlidXRlKCJpbmRleCIpLDEwKSxuPXBhcnNlSW50KHQubm9kZS5nZXRBdHRyaWJ1dGUoImoiKSwxMCk7ImZ1bmN0aW9uIj09dHlwZW9mIGkuY29uZmlnLmNoYXJ0LmV2ZW50cy5kYXRhUG9pbnRNb3VzZUxlYXZlJiZpLmNvbmZpZy5jaGFydC5ldmVudHMuZGF0YVBvaW50TW91c2VMZWF2ZShlLHRoaXMuY3R4LHtzZXJpZXNJbmRleDphLGRhdGFQb2ludEluZGV4Om4sdzppfSksdGhpcy5jdHguZXZlbnRzLmZpcmVFdmVudCgiZGF0YVBvaW50TW91c2VMZWF2ZSIsW2UsdGhpcy5jdHgse3Nlcmllc0luZGV4OmEsZGF0YVBvaW50SW5kZXg6bix3Oml9XSksIm5vbmUiIT09aS5jb25maWcuc3RhdGVzLmFjdGl2ZS5maWx0ZXIudHlwZSYmInRydWUiPT09dC5ub2RlLmdldEF0dHJpYnV0ZSgic2VsZWN0ZWQiKXx8Im5vbmUiIT09aS5jb25maWcuc3RhdGVzLmhvdmVyLmZpbHRlci50eXBlJiZzLmdldERlZmF1bHRGaWx0ZXIodCxhKX19LHtrZXk6InBhdGhNb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy53LHM9bmV3IHcodGhpcy5jdHgpLGE9cGFyc2VJbnQodC5ub2RlLmdldEF0dHJpYnV0ZSgiaW5kZXgiKSwxMCksbj1wYXJzZUludCh0Lm5vZGUuZ2V0QXR0cmlidXRlKCJqIiksMTApLHI9ImZhbHNlIjtpZigidHJ1ZSI9PT10Lm5vZGUuZ2V0QXR0cmlidXRlKCJzZWxlY3RlZCIpKXtpZih0Lm5vZGUuc2V0QXR0cmlidXRlKCJzZWxlY3RlZCIsImZhbHNlIiksaS5nbG9iYWxzLnNlbGVjdGVkRGF0YVBvaW50c1thXS5pbmRleE9mKG4pPi0xKXt2YXIgbz1pLmdsb2JhbHMuc2VsZWN0ZWREYXRhUG9pbnRzW2FdLmluZGV4T2Yobik7aS5nbG9iYWxzLnNlbGVjdGVkRGF0YVBvaW50c1thXS5zcGxpY2UobywxKX19ZWxzZXtpZighaS5jb25maWcuc3RhdGVzLmFjdGl2ZS5hbGxvd011bHRpcGxlRGF0YVBvaW50c1NlbGVjdGlvbiYmaS5nbG9iYWxzLnNlbGVjdGVkRGF0YVBvaW50cy5sZW5ndGg+MCl7aS5nbG9iYWxzLnNlbGVjdGVkRGF0YVBvaW50cz1bXTt2YXIgbD1pLmdsb2JhbHMuZG9tLlBhcGVyLnNlbGVjdCgiLmFwZXhjaGFydHMtc2VyaWVzIHBhdGgiKS5tZW1iZXJzLGM9aS5nbG9iYWxzLmRvbS5QYXBlci5zZWxlY3QoIi5hcGV4Y2hhcnRzLXNlcmllcyBjaXJjbGUsIC5hcGV4Y2hhcnRzLXNlcmllcyByZWN0IikubWVtYmVycyxoPWZ1bmN0aW9uKHQpe0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCwoZnVuY3Rpb24odCl7dC5ub2RlLnNldEF0dHJpYnV0ZSgic2VsZWN0ZWQiLCJmYWxzZSIpLHMuZ2V0RGVmYXVsdEZpbHRlcih0LGEpfSkpfTtoKGwpLGgoYyl9dC5ub2RlLnNldEF0dHJpYnV0ZSgic2VsZWN0ZWQiLCJ0cnVlIikscj0idHJ1ZSIsdm9pZCAwPT09aS5nbG9iYWxzLnNlbGVjdGVkRGF0YVBvaW50c1thXSYmKGkuZ2xvYmFscy5zZWxlY3RlZERhdGFQb2ludHNbYV09W10pLGkuZ2xvYmFscy5zZWxlY3RlZERhdGFQb2ludHNbYV0ucHVzaChuKX1pZigidHJ1ZSI9PT1yKXt2YXIgZD1pLmNvbmZpZy5zdGF0ZXMuYWN0aXZlLmZpbHRlcjtpZigibm9uZSIhPT1kKXMuYXBwbHlGaWx0ZXIodCxhLGQudHlwZSxkLnZhbHVlKTtlbHNlIGlmKCJub25lIiE9PWkuY29uZmlnLnN0YXRlcy5ob3Zlci5maWx0ZXImJiFpLmdsb2JhbHMuaXNUb3VjaERldmljZSl7dmFyIHU9aS5jb25maWcuc3RhdGVzLmhvdmVyLmZpbHRlcjtzLmFwcGx5RmlsdGVyKHQsYSx1LnR5cGUsdS52YWx1ZSl9fWVsc2Uibm9uZSIhPT1pLmNvbmZpZy5zdGF0ZXMuYWN0aXZlLmZpbHRlci50eXBlJiYoIm5vbmUiPT09aS5jb25maWcuc3RhdGVzLmhvdmVyLmZpbHRlci50eXBlfHxpLmdsb2JhbHMuaXNUb3VjaERldmljZT9zLmdldERlZmF1bHRGaWx0ZXIodCxhKToodT1pLmNvbmZpZy5zdGF0ZXMuaG92ZXIuZmlsdGVyLHMuYXBwbHlGaWx0ZXIodCxhLHUudHlwZSx1LnZhbHVlKSkpOyJmdW5jdGlvbiI9PXR5cGVvZiBpLmNvbmZpZy5jaGFydC5ldmVudHMuZGF0YVBvaW50U2VsZWN0aW9uJiZpLmNvbmZpZy5jaGFydC5ldmVudHMuZGF0YVBvaW50U2VsZWN0aW9uKGUsdGhpcy5jdHgse3NlbGVjdGVkRGF0YVBvaW50czppLmdsb2JhbHMuc2VsZWN0ZWREYXRhUG9pbnRzLHNlcmllc0luZGV4OmEsZGF0YVBvaW50SW5kZXg6bix3Oml9KSxlJiZ0aGlzLmN0eC5ldmVudHMuZmlyZUV2ZW50KCJkYXRhUG9pbnRTZWxlY3Rpb24iLFtlLHRoaXMuY3R4LHtzZWxlY3RlZERhdGFQb2ludHM6aS5nbG9iYWxzLnNlbGVjdGVkRGF0YVBvaW50cyxzZXJpZXNJbmRleDphLGRhdGFQb2ludEluZGV4Om4sdzppfV0pfX0se2tleToicm90YXRlQXJvdW5kQ2VudGVyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIHQuZ2V0QkJveCYmKGU9dC5nZXRCQm94KCkpLHt4OmUueCtlLndpZHRoLzIseTplLnkrZS5oZWlnaHQvMn19fSx7a2V5OiJnZXRUZXh0UmVjdHMiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMpe3ZhciBhPSEoYXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0pfHxhcmd1bWVudHNbNF0sbj10aGlzLncscj10aGlzLmRyYXdUZXh0KHt4Oi0yMDAseTotMjAwLHRleHQ6dCx0ZXh0QW5jaG9yOiJzdGFydCIsZm9udFNpemU6ZSxmb250RmFtaWx5OmksZm9yZUNvbG9yOiIjZmZmIixvcGFjaXR5OjB9KTtzJiZyLmF0dHIoInRyYW5zZm9ybSIscyksbi5nbG9iYWxzLmRvbS5QYXBlci5hZGQocik7dmFyIG89ci5iYm94KCk7cmV0dXJuIGF8fChvPXIubm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksci5yZW1vdmUoKSx7d2lkdGg6by53aWR0aCxoZWlnaHQ6by5oZWlnaHR9fX0se2tleToicGxhY2VUZXh0V2l0aEVsbGlwc2lzIix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQuZ2V0Q29tcHV0ZWRUZXh0TGVuZ3RoJiYodC50ZXh0Q29udGVudD1lLGUubGVuZ3RoPjAmJnQuZ2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCk+PWkvMS4xKSl7Zm9yKHZhciBzPWUubGVuZ3RoLTM7cz4wO3MtPTMpaWYodC5nZXRTdWJTdHJpbmdMZW5ndGgoMCxzKTw9aS8xLjEpcmV0dXJuIHZvaWQodC50ZXh0Q29udGVudD1lLnN1YnN0cmluZygwLHMpKyIuLi4iKTt0LnRleHRDb250ZW50PSIuIn19fV0sW3trZXk6InNldEF0dHJzIix2YWx1ZTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgaSBpbiBlKWUuaGFzT3duUHJvcGVydHkoaSkmJnQuc2V0QXR0cmlidXRlKGksZVtpXSl9fV0pLHR9KCksUz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMuY3R4PWUsdGhpcy53PWUud31yZXR1cm4gYyh0LFt7a2V5OiJnZXRTdGFja2VkU2VyaWVzVG90YWxzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXSxlPXRoaXMudyxpPVtdO2lmKDA9PT1lLmdsb2JhbHMuc2VyaWVzLmxlbmd0aClyZXR1cm4gaTtmb3IodmFyIHM9MDtzPGUuZ2xvYmFscy5zZXJpZXNbZS5nbG9iYWxzLm1heFZhbHNJbkFycmF5SW5kZXhdLmxlbmd0aDtzKyspe2Zvcih2YXIgYT0wLG49MDtuPGUuZ2xvYmFscy5zZXJpZXMubGVuZ3RoO24rKyl2b2lkIDAhPT1lLmdsb2JhbHMuc2VyaWVzW25dW3NdJiYtMT09PXQuaW5kZXhPZihuKSYmKGErPWUuZ2xvYmFscy5zZXJpZXNbbl1bc10pO2kucHVzaChhKX1yZXR1cm4gaX19LHtrZXk6ImdldFNlcmllc1RvdGFsQnlJbmRleCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbDtyZXR1cm4gbnVsbD09PXQ/dGhpcy53LmNvbmZpZy5zZXJpZXMucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9KSwwKTp0aGlzLncuZ2xvYmFscy5zZXJpZXNbdF0ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9KSwwKX19LHtrZXk6ImlzU2VyaWVzTnVsbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbDtyZXR1cm4gMD09PShudWxsPT09dD90aGlzLncuY29uZmlnLnNlcmllcy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT09dH0pKTp0aGlzLncuY29uZmlnLnNlcmllc1t0XS5kYXRhLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPT10fSkpKS5sZW5ndGh9fSx7a2V5OiJzZXJpZXNIYXZlU2FtZVZhbHVlcyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudy5nbG9iYWxzLnNlcmllc1t0XS5ldmVyeSgoZnVuY3Rpb24odCxlLGkpe3JldHVybiB0PT09aVswXX0pKX19LHtrZXk6ImdldENhdGVnb3J5TGFiZWxzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncsaT10LnNsaWNlKCk7cmV0dXJuIGUuY29uZmlnLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYyYmKGk9dC5tYXAoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIGUuY29uZmlnLnhheGlzLmxhYmVscy5mb3JtYXR0ZXIodC1lLmdsb2JhbHMubWluWCsxKX0pKSksaX19LHtrZXk6ImdldExhcmdlc3RTZXJpZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53O3QuZ2xvYmFscy5tYXhWYWxzSW5BcnJheUluZGV4PXQuZ2xvYmFscy5zZXJpZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGh9KSkuaW5kZXhPZihNYXRoLm1heC5hcHBseShNYXRoLHQuZ2xvYmFscy5zZXJpZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGh9KSkpKX19LHtrZXk6ImdldExhcmdlc3RNYXJrZXJTaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudyxlPTA7cmV0dXJuIHQuZ2xvYmFscy5tYXJrZXJzLnNpemUuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZT1NYXRoLm1heChlLHQpfSkpLHQuY29uZmlnLm1hcmtlcnMuZGlzY3JldGUmJnQuY29uZmlnLm1hcmtlcnMuZGlzY3JldGUubGVuZ3RoJiZ0LmNvbmZpZy5tYXJrZXJzLmRpc2NyZXRlLmZvckVhY2goKGZ1bmN0aW9uKHQpe2U9TWF0aC5tYXgoZSx0LnNpemUpfSkpLGU+MCYmKGUrPXQuY29uZmlnLm1hcmtlcnMuaG92ZXIuc2l6ZU9mZnNldCsxKSx0Lmdsb2JhbHMubWFya2Vycy5sYXJnZXN0U2l6ZT1lLGV9fSx7a2V5OiJnZXRTZXJpZXNUb3RhbHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53O3QuZ2xvYmFscy5zZXJpZXNUb3RhbHM9dC5nbG9iYWxzLnNlcmllcy5tYXAoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9MDtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgcz0wO3M8dC5sZW5ndGg7cysrKWkrPXRbc107ZWxzZSBpKz10O3JldHVybiBpfSkpfX0se2tleToiZ2V0U2VyaWVzVG90YWxzWFJhbmdlIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudztyZXR1cm4gaS5nbG9iYWxzLnNlcmllcy5tYXAoKGZ1bmN0aW9uKHMsYSl7Zm9yKHZhciBuPTAscj0wO3I8cy5sZW5ndGg7cisrKWkuZ2xvYmFscy5zZXJpZXNYW2FdW3JdPnQmJmkuZ2xvYmFscy5zZXJpZXNYW2FdW3JdPGUmJihuKz1zW3JdKTtyZXR1cm4gbn0pKX19LHtrZXk6ImdldFBlcmNlbnRTZXJpZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53O3QuZ2xvYmFscy5zZXJpZXNQZXJjZW50PXQuZ2xvYmFscy5zZXJpZXMubWFwKChmdW5jdGlvbihlLGkpe3ZhciBzPVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciBhPTA7YTxlLmxlbmd0aDthKyspe3ZhciBuPXQuZ2xvYmFscy5zdGFja2VkU2VyaWVzVG90YWxzW2FdLHI9MDtuJiYocj0xMDAqZVthXS9uKSxzLnB1c2gocil9ZWxzZXt2YXIgbz0xMDAqZS90Lmdsb2JhbHMuc2VyaWVzVG90YWxzLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSksMCk7cy5wdXNoKG8pfXJldHVybiBzfSkpfX0se2tleToiZ2V0Q2FsY3VsYXRlZFJhdGlvcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlLGkscyxhPXRoaXMudy5nbG9iYWxzLG49W10scj0wLG89W10sbD0uMSxjPTA7aWYoYS55UmFuZ2U9W10sYS5pc011bHRpcGxlWUF4aXMpZm9yKHZhciBoPTA7aDxhLm1pbllBcnIubGVuZ3RoO2grKylhLnlSYW5nZS5wdXNoKE1hdGguYWJzKGEubWluWUFycltoXS1hLm1heFlBcnJbaF0pKSxvLnB1c2goMCk7ZWxzZSBhLnlSYW5nZS5wdXNoKE1hdGguYWJzKGEubWluWS1hLm1heFkpKTthLnhSYW5nZT1NYXRoLmFicyhhLm1heFgtYS5taW5YKSxhLnpSYW5nZT1NYXRoLmFicyhhLm1heFotYS5taW5aKTtmb3IodmFyIGQ9MDtkPGEueVJhbmdlLmxlbmd0aDtkKyspbi5wdXNoKGEueVJhbmdlW2RdL2EuZ3JpZEhlaWdodCk7aWYoZT1hLnhSYW5nZS9hLmdyaWRXaWR0aCxpPU1hdGguYWJzKGEuaW5pdGlhbE1heFgtYS5pbml0aWFsTWluWCkvYS5ncmlkV2lkdGgsdD1hLnlSYW5nZS9hLmdyaWRXaWR0aCxzPWEueFJhbmdlL2EuZ3JpZEhlaWdodCwocj1hLnpSYW5nZS9hLmdyaWRIZWlnaHQqMTYpfHwocj0xKSxhLm1pblkhPT1OdW1iZXIuTUlOX1ZBTFVFJiYwIT09TWF0aC5hYnMoYS5taW5ZKSYmKGEuaGFzTmVncz0hMCksYS5pc011bHRpcGxlWUF4aXMpe289W107Zm9yKHZhciB1PTA7dTxuLmxlbmd0aDt1Kyspby5wdXNoKC1hLm1pbllBcnJbdV0vblt1XSl9ZWxzZSBvLnB1c2goLWEubWluWS9uWzBdKSxhLm1pblkhPT1OdW1iZXIuTUlOX1ZBTFVFJiYwIT09TWF0aC5hYnMoYS5taW5ZKSYmKGw9LWEubWluWS90LGM9YS5taW5YL2UpO3JldHVybnt5UmF0aW86bixpbnZlcnRlZFlSYXRpbzp0LHpSYXRpbzpyLHhSYXRpbzplLGluaXRpYWxYUmF0aW86aSxpbnZlcnRlZFhSYXRpbzpzLGJhc2VMaW5lSW52ZXJ0ZWRZOmwsYmFzZUxpbmVZOm8sYmFzZUxpbmVYOmN9fX0se2tleToiZ2V0TG9nU2VyaWVzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dGhpcy53O3JldHVybiBpLmdsb2JhbHMuc2VyaWVzTG9nPXQubWFwKChmdW5jdGlvbih0LHMpe3JldHVybiBpLmNvbmZpZy55YXhpc1tzXSYmaS5jb25maWcueWF4aXNbc10ubG9nYXJpdGhtaWM/dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dD9udWxsOmUuZ2V0TG9nVmFsKGkuY29uZmlnLnlheGlzW3NdLmxvZ0Jhc2UsdCxzKX0pKTp0fSkpLGkuZ2xvYmFscy5pbnZhbGlkTG9nU2NhbGU/dDppLmdsb2JhbHMuc2VyaWVzTG9nfX0se2tleToiZ2V0QmFzZUxvZyIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5sb2coZSkvTWF0aC5sb2codCl9fSx7a2V5OiJnZXRMb2dWYWwiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXtpZigwPT09ZSlyZXR1cm4gMDt2YXIgcz10aGlzLncsYT0wPT09cy5nbG9iYWxzLm1pbllBcnJbaV0/LTE6dGhpcy5nZXRCYXNlTG9nKHQscy5nbG9iYWxzLm1pbllBcnJbaV0pLG49KDA9PT1zLmdsb2JhbHMubWF4WUFycltpXT8wOnRoaXMuZ2V0QmFzZUxvZyh0LHMuZ2xvYmFscy5tYXhZQXJyW2ldKSktYTtyZXR1cm4gZTwxP2UvbjoodGhpcy5nZXRCYXNlTG9nKHQsZSktYSkvbn19LHtrZXk6ImdldExvZ1lSYXRpb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLncscz10aGlzLncuZ2xvYmFscztyZXR1cm4gcy55TG9nUmF0aW89dC5zbGljZSgpLHMubG9nWVJhbmdlPXMueVJhbmdlLm1hcCgoZnVuY3Rpb24odCxhKXtpZihpLmNvbmZpZy55YXhpc1thXSYmZS53LmNvbmZpZy55YXhpc1thXS5sb2dhcml0aG1pYyl7dmFyIG4scj0tTnVtYmVyLk1BWF9WQUxVRSxvPU51bWJlci5NSU5fVkFMVUU7cmV0dXJuIHMuc2VyaWVzTG9nLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dC5mb3JFYWNoKChmdW5jdGlvbih0KXtpLmNvbmZpZy55YXhpc1tlXSYmaS5jb25maWcueWF4aXNbZV0ubG9nYXJpdGhtaWMmJihyPU1hdGgubWF4KHQsciksbz1NYXRoLm1pbih0LG8pKX0pKX0pKSxuPU1hdGgucG93KHMueVJhbmdlW2FdLE1hdGguYWJzKG8tcikvcy55UmFuZ2VbYV0pLHMueUxvZ1JhdGlvW2FdPW4vcy5ncmlkSGVpZ2h0LG59fSkpLHMuaW52YWxpZExvZ1NjYWxlP3Quc2xpY2UoKTpzLnlMb2dSYXRpb319XSxbe2tleToiY2hlY2tDb21ib1NlcmllcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9ITEsaT0wLHM9MDtyZXR1cm4gdC5sZW5ndGgmJnZvaWQgMCE9PXRbMF0udHlwZSYmdC5mb3JFYWNoKChmdW5jdGlvbih0KXsiYmFyIiE9PXQudHlwZSYmImNvbHVtbiIhPT10LnR5cGUmJiJjYW5kbGVzdGljayIhPT10LnR5cGUmJiJib3hQbG90IiE9PXQudHlwZXx8aSsrLHZvaWQgMCE9PXQudHlwZSYmcysrfSkpLHM+MCYmKGU9ITApLHtjb21ib0JhckNvdW50OmksY29tYm9DaGFydHM6ZX19fSx7a2V5OiJleHRlbmRBcnJheVByb3BzIix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIGUueWF4aXMmJihlPXQuZXh0ZW5kWUF4aXMoZSxpKSksZS5hbm5vdGF0aW9ucyYmKGUuYW5ub3RhdGlvbnMueWF4aXMmJihlPXQuZXh0ZW5kWUF4aXNBbm5vdGF0aW9ucyhlKSksZS5hbm5vdGF0aW9ucy54YXhpcyYmKGU9dC5leHRlbmRYQXhpc0Fubm90YXRpb25zKGUpKSxlLmFubm90YXRpb25zLnBvaW50cyYmKGU9dC5leHRlbmRQb2ludEFubm90YXRpb25zKGUpKSksZX19XSksdH0oKSxDPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy53PWUudyx0aGlzLmFubm9DdHg9ZX1yZXR1cm4gYyh0LFt7a2V5OiJzZXRPcmllbnRhdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpudWxsLGk9dGhpcy53O2lmKCJ2ZXJ0aWNhbCI9PT10LmxhYmVsLm9yaWVudGF0aW9uKXt2YXIgcz1udWxsIT09ZT9lOjAsYT1pLmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy14YXhpcy1hbm5vdGF0aW9ucyAuYXBleGNoYXJ0cy14YXhpcy1hbm5vdGF0aW9uLWxhYmVsW3JlbD0nIi5jb25jYXQocywiJ10iKSk7aWYobnVsbCE9PWEpe3ZhciBuPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7YS5zZXRBdHRyaWJ1dGUoIngiLHBhcnNlRmxvYXQoYS5nZXRBdHRyaWJ1dGUoIngiKSktbi5oZWlnaHQrNCksInRvcCI9PT10LmxhYmVsLnBvc2l0aW9uP2Euc2V0QXR0cmlidXRlKCJ5IixwYXJzZUZsb2F0KGEuZ2V0QXR0cmlidXRlKCJ5IikpK24ud2lkdGgpOmEuc2V0QXR0cmlidXRlKCJ5IixwYXJzZUZsb2F0KGEuZ2V0QXR0cmlidXRlKCJ5IikpLW4ud2lkdGgpO3ZhciByPXRoaXMuYW5ub0N0eC5ncmFwaGljcy5yb3RhdGVBcm91bmRDZW50ZXIoYSksbz1yLngsbD1yLnk7YS5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsInJvdGF0ZSgtOTAgIi5jb25jYXQobywiICIpLmNvbmNhdChsLCIpIikpfX19fSx7a2V5OiJhZGRCYWNrZ3JvdW5kVG9Bbm5vIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudztpZighdHx8dm9pZCAwPT09ZS5sYWJlbC50ZXh0fHx2b2lkIDAhPT1lLmxhYmVsLnRleHQmJiFTdHJpbmcoZS5sYWJlbC50ZXh0KS50cmltKCkpcmV0dXJuIG51bGw7dmFyIHM9aS5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMtZ3JpZCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPWUubGFiZWwuc3R5bGUucGFkZGluZy5sZWZ0LHI9ZS5sYWJlbC5zdHlsZS5wYWRkaW5nLnJpZ2h0LG89ZS5sYWJlbC5zdHlsZS5wYWRkaW5nLnRvcCxsPWUubGFiZWwuc3R5bGUucGFkZGluZy5ib3R0b207InZlcnRpY2FsIj09PWUubGFiZWwub3JpZW50YXRpb24mJihvPWUubGFiZWwuc3R5bGUucGFkZGluZy5sZWZ0LGw9ZS5sYWJlbC5zdHlsZS5wYWRkaW5nLnJpZ2h0LG49ZS5sYWJlbC5zdHlsZS5wYWRkaW5nLnRvcCxyPWUubGFiZWwuc3R5bGUucGFkZGluZy5ib3R0b20pO3ZhciBjPWEubGVmdC1zLmxlZnQtbixoPWEudG9wLXMudG9wLW8sZD10aGlzLmFubm9DdHguZ3JhcGhpY3MuZHJhd1JlY3QoYy1pLmdsb2JhbHMuYmFyUGFkRm9yTnVtZXJpY0F4aXMsaCxhLndpZHRoK24rcixhLmhlaWdodCtvK2wsZS5sYWJlbC5ib3JkZXJSYWRpdXMsZS5sYWJlbC5zdHlsZS5iYWNrZ3JvdW5kLDEsZS5sYWJlbC5ib3JkZXJXaWR0aCxlLmxhYmVsLmJvcmRlckNvbG9yLDApO3JldHVybiBlLmlkJiZkLm5vZGUuY2xhc3NMaXN0LmFkZChlLmlkKSxkfX0se2tleToiYW5ub3RhdGlvbnNCYWNrZ3JvdW5kIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLncsaT1mdW5jdGlvbihpLHMsYSl7dmFyIG49ZS5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMtIi5jb25jYXQoYSwiLWFubm90YXRpb25zIC5hcGV4Y2hhcnRzLSIpLmNvbmNhdChhLCItYW5ub3RhdGlvbi1sYWJlbFtyZWw9JyIpLmNvbmNhdChzLCInXSIpKTtpZihuKXt2YXIgcj1uLnBhcmVudE5vZGUsbz10LmFkZEJhY2tncm91bmRUb0Fubm8obixpKTtvJiYoci5pbnNlcnRCZWZvcmUoby5ub2RlLG4pLGkubGFiZWwubW91c2VFbnRlciYmby5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGkubGFiZWwubW91c2VFbnRlci5iaW5kKHQsaSkpLGkubGFiZWwubW91c2VMZWF2ZSYmby5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGkubGFiZWwubW91c2VMZWF2ZS5iaW5kKHQsaSkpLGkubGFiZWwuY2xpY2smJm8ubm9kZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsaS5sYWJlbC5jbGljay5iaW5kKHQsaSkpKX19O2UuY29uZmlnLmFubm90YXRpb25zLnhheGlzLm1hcCgoZnVuY3Rpb24odCxlKXtpKHQsZSwieGF4aXMiKX0pKSxlLmNvbmZpZy5hbm5vdGF0aW9ucy55YXhpcy5tYXAoKGZ1bmN0aW9uKHQsZSl7aSh0LGUsInlheGlzIil9KSksZS5jb25maWcuYW5ub3RhdGlvbnMucG9pbnRzLm1hcCgoZnVuY3Rpb24odCxlKXtpKHQsZSwicG9pbnQiKX0pKX19LHtrZXk6ImdldFkxWTIiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGkscz0ieTEiPT09dD9lLnk6ZS55MixhPXRoaXMudztpZih0aGlzLmFubm9DdHguaW52ZXJ0QXhpcyl7dmFyIG49YS5nbG9iYWxzLmxhYmVscy5pbmRleE9mKHMpO2EuY29uZmlnLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYyYmKG49YS5nbG9iYWxzLmNhdGVnb3J5TGFiZWxzLmluZGV4T2YocykpO3ZhciByPWEuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLXlheGlzLXRleHRzLWcgdGV4dDpudGgtY2hpbGQoIisobisxKSsiKSIpO3ImJihpPXBhcnNlRmxvYXQoci5nZXRBdHRyaWJ1dGUoInkiKSkpfWVsc2V7dmFyIG87bz1hLmNvbmZpZy55YXhpc1tlLnlBeGlzSW5kZXhdLmxvZ2FyaXRobWljPyhzPW5ldyBTKHRoaXMuYW5ub0N0eC5jdHgpLmdldExvZ1ZhbChzLGUueUF4aXNJbmRleCkpL2EuZ2xvYmFscy55TG9nUmF0aW9bZS55QXhpc0luZGV4XToocy1hLmdsb2JhbHMubWluWUFycltlLnlBeGlzSW5kZXhdKS8oYS5nbG9iYWxzLnlSYW5nZVtlLnlBeGlzSW5kZXhdL2EuZ2xvYmFscy5ncmlkSGVpZ2h0KSxpPWEuZ2xvYmFscy5ncmlkSGVpZ2h0LW8sIWUubWFya2VyfHx2b2lkIDAhPT1lLnkmJm51bGwhPT1lLnl8fChpPTApLGEuY29uZmlnLnlheGlzW2UueUF4aXNJbmRleF0mJmEuY29uZmlnLnlheGlzW2UueUF4aXNJbmRleF0ucmV2ZXJzZWQmJihpPW8pfXJldHVybiJzdHJpbmciPT10eXBlb2YgcyYmcy5pbmRleE9mKCJweCIpPi0xJiYoaT1wYXJzZUZsb2F0KHMpKSxpfX0se2tleToiZ2V0WDFYMiIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLncscz10aGlzLmFubm9DdHguaW52ZXJ0QXhpcz9pLmdsb2JhbHMubWluWTppLmdsb2JhbHMubWluWCxhPXRoaXMuYW5ub0N0eC5pbnZlcnRBeGlzP2kuZ2xvYmFscy5tYXhZOmkuZ2xvYmFscy5tYXhYLG49dGhpcy5hbm5vQ3R4LmludmVydEF4aXM/aS5nbG9iYWxzLnlSYW5nZVswXTppLmdsb2JhbHMueFJhbmdlLHI9KGUueC1zKS8obi9pLmdsb2JhbHMuZ3JpZFdpZHRoKTt0aGlzLmFubm9DdHguaW52ZXJzZWRSZXZlcnNlZEF4aXMmJihyPShhLWUueCkvKG4vaS5nbG9iYWxzLmdyaWRXaWR0aCkpLCJjYXRlZ29yeSIhPT1pLmNvbmZpZy54YXhpcy50eXBlJiYhaS5jb25maWcueGF4aXMuY29udmVydGVkQ2F0VG9OdW1lcmljfHx0aGlzLmFubm9DdHguaW52ZXJ0QXhpc3x8aS5nbG9iYWxzLmRhdGFGb3JtYXRYTnVtZXJpY3x8KHI9dGhpcy5nZXRTdHJpbmdYKGUueCkpO3ZhciBvPShlLngyLXMpLyhuL2kuZ2xvYmFscy5ncmlkV2lkdGgpO3JldHVybiB0aGlzLmFubm9DdHguaW52ZXJzZWRSZXZlcnNlZEF4aXMmJihvPShhLWUueDIpLyhuL2kuZ2xvYmFscy5ncmlkV2lkdGgpKSwiY2F0ZWdvcnkiIT09aS5jb25maWcueGF4aXMudHlwZSYmIWkuY29uZmlnLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpY3x8dGhpcy5hbm5vQ3R4LmludmVydEF4aXN8fGkuZ2xvYmFscy5kYXRhRm9ybWF0WE51bWVyaWN8fChvPXRoaXMuZ2V0U3RyaW5nWChlLngyKSksdm9pZCAwIT09ZS54JiZudWxsIT09ZS54fHwhZS5tYXJrZXJ8fChyPWkuZ2xvYmFscy5ncmlkV2lkdGgpLCJ4MSI9PT10JiYic3RyaW5nIj09dHlwZW9mIGUueCYmZS54LmluZGV4T2YoInB4Iik+LTEmJihyPXBhcnNlRmxvYXQoZS54KSksIngyIj09PXQmJiJzdHJpbmciPT10eXBlb2YgZS54MiYmZS54Mi5pbmRleE9mKCJweCIpPi0xJiYobz1wYXJzZUZsb2F0KGUueDIpKSwieDEiPT09dD9yOm99fSx7a2V5OiJnZXRTdHJpbmdYIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncsaT10O2UuY29uZmlnLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYyYmZS5nbG9iYWxzLmNhdGVnb3J5TGFiZWxzLmxlbmd0aCYmKHQ9ZS5nbG9iYWxzLmNhdGVnb3J5TGFiZWxzLmluZGV4T2YodCkrMSk7dmFyIHM9ZS5nbG9iYWxzLmxhYmVscy5pbmRleE9mKHQpLGE9ZS5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMteGF4aXMtdGV4dHMtZyB0ZXh0Om50aC1jaGlsZCgiKyhzKzEpKyIpIik7cmV0dXJuIGEmJihpPXBhcnNlRmxvYXQoYS5nZXRBdHRyaWJ1dGUoIngiKSkpLGl9fV0pLHR9KCksQT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMudz1lLncsdGhpcy5hbm5vQ3R4PWUsdGhpcy5pbnZlcnRBeGlzPXRoaXMuYW5ub0N0eC5pbnZlcnRBeGlzLHRoaXMuaGVscGVycz1uZXcgQyh0aGlzLmFubm9DdHgpfXJldHVybiBjKHQsW3trZXk6ImFkZFhheGlzQW5ub3RhdGlvbiIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzLGE9dGhpcy53LG49dGhpcy5oZWxwZXJzLmdldFgxWDIoIngxIix0KSxyPXQubGFiZWwudGV4dCxvPXQuc3Ryb2tlRGFzaEFycmF5O2lmKGIuaXNOdW1iZXIobikpe2lmKG51bGw9PT10LngyfHx2b2lkIDA9PT10LngyKXt2YXIgbD10aGlzLmFubm9DdHguZ3JhcGhpY3MuZHJhd0xpbmUobit0Lm9mZnNldFgsMCt0Lm9mZnNldFksbit0Lm9mZnNldFgsYS5nbG9iYWxzLmdyaWRIZWlnaHQrdC5vZmZzZXRZLHQuYm9yZGVyQ29sb3Isbyx0LmJvcmRlcldpZHRoKTtlLmFwcGVuZENoaWxkKGwubm9kZSksdC5pZCYmbC5ub2RlLmNsYXNzTGlzdC5hZGQodC5pZCl9ZWxzZXtpZigocz10aGlzLmhlbHBlcnMuZ2V0WDFYMigieDIiLHQpKTxuKXt2YXIgYz1uO249cyxzPWN9dmFyIGg9dGhpcy5hbm5vQ3R4LmdyYXBoaWNzLmRyYXdSZWN0KG4rdC5vZmZzZXRYLDArdC5vZmZzZXRZLHMtbixhLmdsb2JhbHMuZ3JpZEhlaWdodCt0Lm9mZnNldFksMCx0LmZpbGxDb2xvcix0Lm9wYWNpdHksMSx0LmJvcmRlckNvbG9yLG8pO2gubm9kZS5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLWFubm90YXRpb24tcmVjdCIpLGguYXR0cigiY2xpcC1wYXRoIiwidXJsKCNncmlkUmVjdE1hc2siLmNvbmNhdChhLmdsb2JhbHMuY3VpZCwiKSIpKSxlLmFwcGVuZENoaWxkKGgubm9kZSksdC5pZCYmaC5ub2RlLmNsYXNzTGlzdC5hZGQodC5pZCl9dmFyIGQ9dGhpcy5hbm5vQ3R4LmdyYXBoaWNzLmdldFRleHRSZWN0cyhyLHBhcnNlRmxvYXQodC5sYWJlbC5zdHlsZS5mb250U2l6ZSkpLHU9InRvcCI9PT10LmxhYmVsLnBvc2l0aW9uPzQ6ImNlbnRlciI9PT10LmxhYmVsLnBvc2l0aW9uP2EuZ2xvYmFscy5ncmlkSGVpZ2h0LzIrKCJ2ZXJ0aWNhbCI9PT10LmxhYmVsLm9yaWVudGF0aW9uP2Qud2lkdGgvMjowKTphLmdsb2JhbHMuZ3JpZEhlaWdodCxwPXRoaXMuYW5ub0N0eC5ncmFwaGljcy5kcmF3VGV4dCh7eDpuK3QubGFiZWwub2Zmc2V0WCx5OnUrdC5sYWJlbC5vZmZzZXRZLSgidmVydGljYWwiPT09dC5sYWJlbC5vcmllbnRhdGlvbj8idG9wIj09PXQubGFiZWwucG9zaXRpb24/ZC53aWR0aC8yLTEyOi1kLndpZHRoLzI6MCksdGV4dDpyLHRleHRBbmNob3I6dC5sYWJlbC50ZXh0QW5jaG9yLGZvbnRTaXplOnQubGFiZWwuc3R5bGUuZm9udFNpemUsZm9udEZhbWlseTp0LmxhYmVsLnN0eWxlLmZvbnRGYW1pbHksZm9udFdlaWdodDp0LmxhYmVsLnN0eWxlLmZvbnRXZWlnaHQsZm9yZUNvbG9yOnQubGFiZWwuc3R5bGUuY29sb3IsY3NzQ2xhc3M6ImFwZXhjaGFydHMteGF4aXMtYW5ub3RhdGlvbi1sYWJlbCAiLmNvbmNhdCh0LmxhYmVsLnN0eWxlLmNzc0NsYXNzLCIgIikuY29uY2F0KHQuaWQ/dC5pZDoiIil9KTtwLmF0dHIoe3JlbDppfSksZS5hcHBlbmRDaGlsZChwLm5vZGUpLHRoaXMuYW5ub0N0eC5oZWxwZXJzLnNldE9yaWVudGF0aW9ucyh0LGkpfX19LHtrZXk6ImRyYXdYQXhpc0Fubm90YXRpb25zIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLncsaT10aGlzLmFubm9DdHguZ3JhcGhpY3MuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLXhheGlzLWFubm90YXRpb25zIn0pO3JldHVybiBlLmNvbmZpZy5hbm5vdGF0aW9ucy54YXhpcy5tYXAoKGZ1bmN0aW9uKGUscyl7dC5hZGRYYXhpc0Fubm90YXRpb24oZSxpLm5vZGUscyl9KSksaX19XSksdH0oKSxFPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy53PWUudyx0aGlzLmFubm9DdHg9ZSx0aGlzLmhlbHBlcnM9bmV3IEModGhpcy5hbm5vQ3R4KX1yZXR1cm4gYyh0LFt7a2V5OiJhZGRZYXhpc0Fubm90YXRpb24iLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcyxhPXRoaXMudyxuPXQuc3Ryb2tlRGFzaEFycmF5LHI9dGhpcy5oZWxwZXJzLmdldFkxWTIoInkxIix0KSxvPXQubGFiZWwudGV4dDtpZihudWxsPT09dC55Mnx8dm9pZCAwPT09dC55Mil7dmFyIGw9dGhpcy5hbm5vQ3R4LmdyYXBoaWNzLmRyYXdMaW5lKDArdC5vZmZzZXRYLHIrdC5vZmZzZXRZLHRoaXMuX2dldFlBeGlzQW5ub3RhdGlvbldpZHRoKHQpLHIrdC5vZmZzZXRZLHQuYm9yZGVyQ29sb3Isbix0LmJvcmRlcldpZHRoKTtlLmFwcGVuZENoaWxkKGwubm9kZSksdC5pZCYmbC5ub2RlLmNsYXNzTGlzdC5hZGQodC5pZCl9ZWxzZXtpZigocz10aGlzLmhlbHBlcnMuZ2V0WTFZMigieTIiLHQpKT5yKXt2YXIgYz1yO3I9cyxzPWN9dmFyIGg9dGhpcy5hbm5vQ3R4LmdyYXBoaWNzLmRyYXdSZWN0KDArdC5vZmZzZXRYLHMrdC5vZmZzZXRZLHRoaXMuX2dldFlBeGlzQW5ub3RhdGlvbldpZHRoKHQpLHItcywwLHQuZmlsbENvbG9yLHQub3BhY2l0eSwxLHQuYm9yZGVyQ29sb3Isbik7aC5ub2RlLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtYW5ub3RhdGlvbi1yZWN0IiksaC5hdHRyKCJjbGlwLXBhdGgiLCJ1cmwoI2dyaWRSZWN0TWFzayIuY29uY2F0KGEuZ2xvYmFscy5jdWlkLCIpIikpLGUuYXBwZW5kQ2hpbGQoaC5ub2RlKSx0LmlkJiZoLm5vZGUuY2xhc3NMaXN0LmFkZCh0LmlkKX12YXIgZD0icmlnaHQiPT09dC5sYWJlbC5wb3NpdGlvbj9hLmdsb2JhbHMuZ3JpZFdpZHRoOiJjZW50ZXIiPT09dC5sYWJlbC5wb3NpdGlvbj9hLmdsb2JhbHMuZ3JpZFdpZHRoLzI6MCx1PXRoaXMuYW5ub0N0eC5ncmFwaGljcy5kcmF3VGV4dCh7eDpkK3QubGFiZWwub2Zmc2V0WCx5OihudWxsIT1zP3M6cikrdC5sYWJlbC5vZmZzZXRZLTMsdGV4dDpvLHRleHRBbmNob3I6dC5sYWJlbC50ZXh0QW5jaG9yLGZvbnRTaXplOnQubGFiZWwuc3R5bGUuZm9udFNpemUsZm9udEZhbWlseTp0LmxhYmVsLnN0eWxlLmZvbnRGYW1pbHksZm9udFdlaWdodDp0LmxhYmVsLnN0eWxlLmZvbnRXZWlnaHQsZm9yZUNvbG9yOnQubGFiZWwuc3R5bGUuY29sb3IsY3NzQ2xhc3M6ImFwZXhjaGFydHMteWF4aXMtYW5ub3RhdGlvbi1sYWJlbCAiLmNvbmNhdCh0LmxhYmVsLnN0eWxlLmNzc0NsYXNzLCIgIikuY29uY2F0KHQuaWQ/dC5pZDoiIil9KTt1LmF0dHIoe3JlbDppfSksZS5hcHBlbmRDaGlsZCh1Lm5vZGUpfX0se2tleToiX2dldFlBeGlzQW5ub3RhdGlvbldpZHRoIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnc7cmV0dXJuIGUuZ2xvYmFscy5ncmlkV2lkdGgsKHQud2lkdGguaW5kZXhPZigiJSIpPi0xP2UuZ2xvYmFscy5ncmlkV2lkdGgqcGFyc2VJbnQodC53aWR0aCwxMCkvMTAwOnBhcnNlSW50KHQud2lkdGgsMTApKSt0Lm9mZnNldFh9fSx7a2V5OiJkcmF3WUF4aXNBbm5vdGF0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy53LGk9dGhpcy5hbm5vQ3R4LmdyYXBoaWNzLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy15YXhpcy1hbm5vdGF0aW9ucyJ9KTtyZXR1cm4gZS5jb25maWcuYW5ub3RhdGlvbnMueWF4aXMubWFwKChmdW5jdGlvbihlLHMpe3QuYWRkWWF4aXNBbm5vdGF0aW9uKGUsaS5ub2RlLHMpfSkpLGl9fV0pLHR9KCksVD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMudz1lLncsdGhpcy5hbm5vQ3R4PWUsdGhpcy5oZWxwZXJzPW5ldyBDKHRoaXMuYW5ub0N0eCl9cmV0dXJuIGModCxbe2tleToiYWRkUG9pbnRBbm5vdGF0aW9uIix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7dGhpcy53O3ZhciBzPXRoaXMuaGVscGVycy5nZXRYMVgyKCJ4MSIsdCksYT10aGlzLmhlbHBlcnMuZ2V0WTFZMigieTEiLHQpO2lmKGIuaXNOdW1iZXIocykpe3ZhciBuPXtwU2l6ZTp0Lm1hcmtlci5zaXplLHBvaW50U3Ryb2tlV2lkdGg6dC5tYXJrZXIuc3Ryb2tlV2lkdGgscG9pbnRGaWxsQ29sb3I6dC5tYXJrZXIuZmlsbENvbG9yLHBvaW50U3Ryb2tlQ29sb3I6dC5tYXJrZXIuc3Ryb2tlQ29sb3Isc2hhcGU6dC5tYXJrZXIuc2hhcGUscFJhZGl1czp0Lm1hcmtlci5yYWRpdXMsY2xhc3M6ImFwZXhjaGFydHMtcG9pbnQtYW5ub3RhdGlvbi1tYXJrZXIgIi5jb25jYXQodC5tYXJrZXIuY3NzQ2xhc3MsIiAiKS5jb25jYXQodC5pZD90LmlkOiIiKX0scj10aGlzLmFubm9DdHguZ3JhcGhpY3MuZHJhd01hcmtlcihzK3QubWFya2VyLm9mZnNldFgsYSt0Lm1hcmtlci5vZmZzZXRZLG4pO2UuYXBwZW5kQ2hpbGQoci5ub2RlKTt2YXIgbz10LmxhYmVsLnRleHQ/dC5sYWJlbC50ZXh0OiIiLGw9dGhpcy5hbm5vQ3R4LmdyYXBoaWNzLmRyYXdUZXh0KHt4OnMrdC5sYWJlbC5vZmZzZXRYLHk6YSt0LmxhYmVsLm9mZnNldFktdC5tYXJrZXIuc2l6ZS1wYXJzZUZsb2F0KHQubGFiZWwuc3R5bGUuZm9udFNpemUpLzEuNix0ZXh0Om8sdGV4dEFuY2hvcjp0LmxhYmVsLnRleHRBbmNob3IsZm9udFNpemU6dC5sYWJlbC5zdHlsZS5mb250U2l6ZSxmb250RmFtaWx5OnQubGFiZWwuc3R5bGUuZm9udEZhbWlseSxmb250V2VpZ2h0OnQubGFiZWwuc3R5bGUuZm9udFdlaWdodCxmb3JlQ29sb3I6dC5sYWJlbC5zdHlsZS5jb2xvcixjc3NDbGFzczoiYXBleGNoYXJ0cy1wb2ludC1hbm5vdGF0aW9uLWxhYmVsICIuY29uY2F0KHQubGFiZWwuc3R5bGUuY3NzQ2xhc3MsIiAiKS5jb25jYXQodC5pZD90LmlkOiIiKX0pO2lmKGwuYXR0cih7cmVsOml9KSxlLmFwcGVuZENoaWxkKGwubm9kZSksdC5jdXN0b21TVkcuU1ZHKXt2YXIgYz10aGlzLmFubm9DdHguZ3JhcGhpY3MuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLXBvaW50LWFubm90YXRpb25zLWN1c3RvbS1zdmcgIit0LmN1c3RvbVNWRy5jc3NDbGFzc30pO2MuYXR0cih7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQocyt0LmN1c3RvbVNWRy5vZmZzZXRYLCIsICIpLmNvbmNhdChhK3QuY3VzdG9tU1ZHLm9mZnNldFksIikiKX0pLGMubm9kZS5pbm5lckhUTUw9dC5jdXN0b21TVkcuU1ZHLGUuYXBwZW5kQ2hpbGQoYy5ub2RlKX1pZih0LmltYWdlLnBhdGgpe3ZhciBoPXQuaW1hZ2Uud2lkdGg/dC5pbWFnZS53aWR0aDoyMCxkPXQuaW1hZ2UuaGVpZ2h0P3QuaW1hZ2UuaGVpZ2h0OjIwO3I9dGhpcy5hbm5vQ3R4LmFkZEltYWdlKHt4OnMrdC5pbWFnZS5vZmZzZXRYLWgvMix5OmErdC5pbWFnZS5vZmZzZXRZLWQvMix3aWR0aDpoLGhlaWdodDpkLHBhdGg6dC5pbWFnZS5wYXRoLGFwcGVuZFRvOiIuYXBleGNoYXJ0cy1wb2ludC1hbm5vdGF0aW9ucyJ9KX10Lm1vdXNlRW50ZXImJnIubm9kZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0Lm1vdXNlRW50ZXIuYmluZCh0aGlzLHQpKSx0Lm1vdXNlTGVhdmUmJnIubm9kZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0Lm1vdXNlTGVhdmUuYmluZCh0aGlzLHQpKSx0LmNsaWNrJiZyLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHQuY2xpY2suYmluZCh0aGlzLHQpKX19fSx7a2V5OiJkcmF3UG9pbnRBbm5vdGF0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy53LGk9dGhpcy5hbm5vQ3R4LmdyYXBoaWNzLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy1wb2ludC1hbm5vdGF0aW9ucyJ9KTtyZXR1cm4gZS5jb25maWcuYW5ub3RhdGlvbnMucG9pbnRzLm1hcCgoZnVuY3Rpb24oZSxzKXt0LmFkZFBvaW50QW5ub3RhdGlvbihlLGkubm9kZSxzKX0pKSxpfX1dKSx0fSgpLEw9e25hbWU6ImVuIixvcHRpb25zOnttb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHNob3J0TW9udGhzOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sZGF5czpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sc2hvcnREYXlzOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sdG9vbGJhcjp7ZXhwb3J0VG9TVkc6IkRvd25sb2FkIFNWRyIsZXhwb3J0VG9QTkc6IkRvd25sb2FkIFBORyIsZXhwb3J0VG9DU1Y6IkRvd25sb2FkIENTViIsbWVudToiTWVudSIsc2VsZWN0aW9uOiJTZWxlY3Rpb24iLHNlbGVjdGlvblpvb206IlNlbGVjdGlvbiBab29tIix6b29tSW46Ilpvb20gSW4iLHpvb21PdXQ6Ilpvb20gT3V0IixwYW46IlBhbm5pbmciLHJlc2V0OiJSZXNldCBab29tIn19fSxQPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe28odGhpcyx0KSx0aGlzLnlBeGlzPXtzaG93OiEwLHNob3dBbHdheXM6ITEsc2hvd0Zvck51bGxTZXJpZXM6ITAsc2VyaWVzTmFtZTp2b2lkIDAsb3Bwb3NpdGU6ITEscmV2ZXJzZWQ6ITEsbG9nYXJpdGhtaWM6ITEsbG9nQmFzZToxMCx0aWNrQW1vdW50OnZvaWQgMCxmb3JjZU5pY2VTY2FsZTohMSxtYXg6dm9pZCAwLG1pbjp2b2lkIDAsZmxvYXRpbmc6ITEsZGVjaW1hbHNJbkZsb2F0OnZvaWQgMCxsYWJlbHM6e3Nob3c6ITAsbWluV2lkdGg6MCxtYXhXaWR0aDoxNjAsb2Zmc2V0WDowLG9mZnNldFk6MCxhbGlnbjp2b2lkIDAscm90YXRlOjAscGFkZGluZzoyMCxzdHlsZTp7Y29sb3JzOltdLGZvbnRTaXplOiIxMXB4Iixmb250V2VpZ2h0OjQwMCxmb250RmFtaWx5OnZvaWQgMCxjc3NDbGFzczoiIn0sZm9ybWF0dGVyOnZvaWQgMH0sYXhpc0JvcmRlcjp7c2hvdzohMSxjb2xvcjoiI2UwZTBlMCIsd2lkdGg6MSxvZmZzZXRYOjAsb2Zmc2V0WTowfSxheGlzVGlja3M6e3Nob3c6ITEsY29sb3I6IiNlMGUwZTAiLHdpZHRoOjYsb2Zmc2V0WDowLG9mZnNldFk6MH0sdGl0bGU6e3RleHQ6dm9pZCAwLHJvdGF0ZTotOTAsb2Zmc2V0WTowLG9mZnNldFg6MCxzdHlsZTp7Y29sb3I6dm9pZCAwLGZvbnRTaXplOiIxMXB4Iixmb250V2VpZ2h0OjkwMCxmb250RmFtaWx5OnZvaWQgMCxjc3NDbGFzczoiIn19LHRvb2x0aXA6e2VuYWJsZWQ6ITEsb2Zmc2V0WDowfSxjcm9zc2hhaXJzOntzaG93OiEwLHBvc2l0aW9uOiJmcm9udCIsc3Ryb2tlOntjb2xvcjoiI2I2YjZiNiIsd2lkdGg6MSxkYXNoQXJyYXk6MH19fSx0aGlzLnBvaW50QW5ub3RhdGlvbj17aWQ6dm9pZCAwLHg6MCx5Om51bGwseUF4aXNJbmRleDowLHNlcmllc0luZGV4OjAsbW91c2VFbnRlcjp2b2lkIDAsbW91c2VMZWF2ZTp2b2lkIDAsY2xpY2s6dm9pZCAwLG1hcmtlcjp7c2l6ZTo0LGZpbGxDb2xvcjoiI2ZmZiIsc3Ryb2tlV2lkdGg6MixzdHJva2VDb2xvcjoiIzMzMyIsc2hhcGU6ImNpcmNsZSIsb2Zmc2V0WDowLG9mZnNldFk6MCxyYWRpdXM6Mixjc3NDbGFzczoiIn0sbGFiZWw6e2JvcmRlckNvbG9yOiIjYzJjMmMyIixib3JkZXJXaWR0aDoxLGJvcmRlclJhZGl1czoyLHRleHQ6dm9pZCAwLHRleHRBbmNob3I6Im1pZGRsZSIsb2Zmc2V0WDowLG9mZnNldFk6MCxtb3VzZUVudGVyOnZvaWQgMCxtb3VzZUxlYXZlOnZvaWQgMCxjbGljazp2b2lkIDAsc3R5bGU6e2JhY2tncm91bmQ6IiNmZmYiLGNvbG9yOnZvaWQgMCxmb250U2l6ZToiMTFweCIsZm9udEZhbWlseTp2b2lkIDAsZm9udFdlaWdodDo0MDAsY3NzQ2xhc3M6IiIscGFkZGluZzp7bGVmdDo1LHJpZ2h0OjUsdG9wOjIsYm90dG9tOjJ9fX0sY3VzdG9tU1ZHOntTVkc6dm9pZCAwLGNzc0NsYXNzOnZvaWQgMCxvZmZzZXRYOjAsb2Zmc2V0WTowfSxpbWFnZTp7cGF0aDp2b2lkIDAsd2lkdGg6MjAsaGVpZ2h0OjIwLG9mZnNldFg6MCxvZmZzZXRZOjB9fSx0aGlzLnlBeGlzQW5ub3RhdGlvbj17aWQ6dm9pZCAwLHk6MCx5MjpudWxsLHN0cm9rZURhc2hBcnJheToxLGZpbGxDb2xvcjoiI2MyYzJjMiIsYm9yZGVyQ29sb3I6IiNjMmMyYzIiLGJvcmRlcldpZHRoOjEsb3BhY2l0eTouMyxvZmZzZXRYOjAsb2Zmc2V0WTowLHdpZHRoOiIxMDAlIix5QXhpc0luZGV4OjAsbGFiZWw6e2JvcmRlckNvbG9yOiIjYzJjMmMyIixib3JkZXJXaWR0aDoxLGJvcmRlclJhZGl1czoyLHRleHQ6dm9pZCAwLHRleHRBbmNob3I6ImVuZCIscG9zaXRpb246InJpZ2h0IixvZmZzZXRYOjAsb2Zmc2V0WTotMyxtb3VzZUVudGVyOnZvaWQgMCxtb3VzZUxlYXZlOnZvaWQgMCxjbGljazp2b2lkIDAsc3R5bGU6e2JhY2tncm91bmQ6IiNmZmYiLGNvbG9yOnZvaWQgMCxmb250U2l6ZToiMTFweCIsZm9udEZhbWlseTp2b2lkIDAsZm9udFdlaWdodDo0MDAsY3NzQ2xhc3M6IiIscGFkZGluZzp7bGVmdDo1LHJpZ2h0OjUsdG9wOjIsYm90dG9tOjJ9fX19LHRoaXMueEF4aXNBbm5vdGF0aW9uPXtpZDp2b2lkIDAseDowLHgyOm51bGwsc3Ryb2tlRGFzaEFycmF5OjEsZmlsbENvbG9yOiIjYzJjMmMyIixib3JkZXJDb2xvcjoiI2MyYzJjMiIsYm9yZGVyV2lkdGg6MSxvcGFjaXR5Oi4zLG9mZnNldFg6MCxvZmZzZXRZOjAsbGFiZWw6e2JvcmRlckNvbG9yOiIjYzJjMmMyIixib3JkZXJXaWR0aDoxLGJvcmRlclJhZGl1czoyLHRleHQ6dm9pZCAwLHRleHRBbmNob3I6Im1pZGRsZSIsb3JpZW50YXRpb246InZlcnRpY2FsIixwb3NpdGlvbjoidG9wIixvZmZzZXRYOjAsb2Zmc2V0WTowLG1vdXNlRW50ZXI6dm9pZCAwLG1vdXNlTGVhdmU6dm9pZCAwLGNsaWNrOnZvaWQgMCxzdHlsZTp7YmFja2dyb3VuZDoiI2ZmZiIsY29sb3I6dm9pZCAwLGZvbnRTaXplOiIxMXB4Iixmb250RmFtaWx5OnZvaWQgMCxmb250V2VpZ2h0OjQwMCxjc3NDbGFzczoiIixwYWRkaW5nOntsZWZ0OjUscmlnaHQ6NSx0b3A6Mixib3R0b206Mn19fX0sdGhpcy50ZXh0PXt4OjAseTowLHRleHQ6IiIsdGV4dEFuY2hvcjoic3RhcnQiLGZvcmVDb2xvcjp2b2lkIDAsZm9udFNpemU6IjEzcHgiLGZvbnRGYW1pbHk6dm9pZCAwLGZvbnRXZWlnaHQ6NDAwLGFwcGVuZFRvOiIuYXBleGNoYXJ0cy1hbm5vdGF0aW9ucyIsYmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyQ29sb3I6IiNjMmMyYzIiLGJvcmRlclJhZGl1czowLGJvcmRlcldpZHRoOjAscGFkZGluZ0xlZnQ6NCxwYWRkaW5nUmlnaHQ6NCxwYWRkaW5nVG9wOjIscGFkZGluZ0JvdHRvbToyfX1yZXR1cm4gYyh0LFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybnthbm5vdGF0aW9uczp7cG9zaXRpb246ImZyb250Iix5YXhpczpbdGhpcy55QXhpc0Fubm90YXRpb25dLHhheGlzOlt0aGlzLnhBeGlzQW5ub3RhdGlvbl0scG9pbnRzOlt0aGlzLnBvaW50QW5ub3RhdGlvbl0sdGV4dHM6W10saW1hZ2VzOltdLHNoYXBlczpbXX0sY2hhcnQ6e2FuaW1hdGlvbnM6e2VuYWJsZWQ6ITAsZWFzaW5nOiJlYXNlaW5vdXQiLHNwZWVkOjgwMCxhbmltYXRlR3JhZHVhbGx5OntkZWxheToxNTAsZW5hYmxlZDohMH0sZHluYW1pY0FuaW1hdGlvbjp7ZW5hYmxlZDohMCxzcGVlZDozNTB9fSxiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsbG9jYWxlczpbTF0sZGVmYXVsdExvY2FsZToiZW4iLGRyb3BTaGFkb3c6e2VuYWJsZWQ6ITEsZW5hYmxlZE9uU2VyaWVzOnZvaWQgMCx0b3A6MixsZWZ0OjIsYmx1cjo0LGNvbG9yOiIjMDAwIixvcGFjaXR5Oi4zNX0sZXZlbnRzOnthbmltYXRpb25FbmQ6dm9pZCAwLGJlZm9yZU1vdW50OnZvaWQgMCxtb3VudGVkOnZvaWQgMCx1cGRhdGVkOnZvaWQgMCxjbGljazp2b2lkIDAsbW91c2VNb3ZlOnZvaWQgMCxtb3VzZUxlYXZlOnZvaWQgMCx4QXhpc0xhYmVsQ2xpY2s6dm9pZCAwLGxlZ2VuZENsaWNrOnZvaWQgMCxtYXJrZXJDbGljazp2b2lkIDAsc2VsZWN0aW9uOnZvaWQgMCxkYXRhUG9pbnRTZWxlY3Rpb246dm9pZCAwLGRhdGFQb2ludE1vdXNlRW50ZXI6dm9pZCAwLGRhdGFQb2ludE1vdXNlTGVhdmU6dm9pZCAwLGJlZm9yZVpvb206dm9pZCAwLGJlZm9yZVJlc2V0Wm9vbTp2b2lkIDAsem9vbWVkOnZvaWQgMCxzY3JvbGxlZDp2b2lkIDAsYnJ1c2hTY3JvbGxlZDp2b2lkIDB9LGZvcmVDb2xvcjoiIzM3M2QzZiIsZm9udEZhbWlseToiSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiIsaGVpZ2h0OiJhdXRvIixwYXJlbnRIZWlnaHRPZmZzZXQ6MTUscmVkcmF3T25QYXJlbnRSZXNpemU6ITAscmVkcmF3T25XaW5kb3dSZXNpemU6ITAsaWQ6dm9pZCAwLGdyb3VwOnZvaWQgMCxvZmZzZXRYOjAsb2Zmc2V0WTowLHNlbGVjdGlvbjp7ZW5hYmxlZDohMSx0eXBlOiJ4IixmaWxsOntjb2xvcjoiIzI0MjkyZSIsb3BhY2l0eTouMX0sc3Ryb2tlOnt3aWR0aDoxLGNvbG9yOiIjMjQyOTJlIixvcGFjaXR5Oi40LGRhc2hBcnJheTozfSx4YXhpczp7bWluOnZvaWQgMCxtYXg6dm9pZCAwfSx5YXhpczp7bWluOnZvaWQgMCxtYXg6dm9pZCAwfX0sc3BhcmtsaW5lOntlbmFibGVkOiExfSxicnVzaDp7ZW5hYmxlZDohMSxhdXRvU2NhbGVZYXhpczohMCx0YXJnZXQ6dm9pZCAwfSxzdGFja2VkOiExLHN0YWNrVHlwZToibm9ybWFsIix0b29sYmFyOntzaG93OiEwLG9mZnNldFg6MCxvZmZzZXRZOjAsdG9vbHM6e2Rvd25sb2FkOiEwLHNlbGVjdGlvbjohMCx6b29tOiEwLHpvb21pbjohMCx6b29tb3V0OiEwLHBhbjohMCxyZXNldDohMCxjdXN0b21JY29uczpbXX0sZXhwb3J0Ontjc3Y6e2ZpbGVuYW1lOnZvaWQgMCxjb2x1bW5EZWxpbWl0ZXI6IiwiLGhlYWRlckNhdGVnb3J5OiJjYXRlZ29yeSIsaGVhZGVyVmFsdWU6InZhbHVlIixkYXRlRm9ybWF0dGVyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRGF0ZSh0KS50b0RhdGVTdHJpbmcoKX19LHBuZzp7ZmlsZW5hbWU6dm9pZCAwfSxzdmc6e2ZpbGVuYW1lOnZvaWQgMH19LGF1dG9TZWxlY3RlZDoiem9vbSJ9LHR5cGU6ImxpbmUiLHdpZHRoOiIxMDAlIix6b29tOntlbmFibGVkOiEwLHR5cGU6IngiLGF1dG9TY2FsZVlheGlzOiExLHpvb21lZEFyZWE6e2ZpbGw6e2NvbG9yOiIjOTBDQUY5IixvcGFjaXR5Oi40fSxzdHJva2U6e2NvbG9yOiIjMEQ0N0ExIixvcGFjaXR5Oi40LHdpZHRoOjF9fX19LHBsb3RPcHRpb25zOnthcmVhOntmaWxsVG86Im9yaWdpbiJ9LGJhcjp7aG9yaXpvbnRhbDohMSxjb2x1bW5XaWR0aDoiNzAlIixiYXJIZWlnaHQ6IjcwJSIsZGlzdHJpYnV0ZWQ6ITEsYm9yZGVyUmFkaXVzOjAsYm9yZGVyUmFkaXVzQXBwbGljYXRpb246ImFyb3VuZCIsYm9yZGVyUmFkaXVzV2hlblN0YWNrZWQ6Imxhc3QiLHJhbmdlQmFyT3ZlcmxhcDohMCxyYW5nZUJhckdyb3VwUm93czohMSxjb2xvcnM6e3JhbmdlczpbXSxiYWNrZ3JvdW5kQmFyQ29sb3JzOltdLGJhY2tncm91bmRCYXJPcGFjaXR5OjEsYmFja2dyb3VuZEJhclJhZGl1czowfSxkYXRhTGFiZWxzOntwb3NpdGlvbjoidG9wIixtYXhJdGVtczoxMDAsaGlkZU92ZXJmbG93aW5nTGFiZWxzOiEwLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIix0b3RhbDp7ZW5hYmxlZDohMSxmb3JtYXR0ZXI6dm9pZCAwLG9mZnNldFg6MCxvZmZzZXRZOjAsc3R5bGU6e2NvbG9yOiIjMzczZDNmIixmb250U2l6ZToiMTJweCIsZm9udEZhbWlseTp2b2lkIDAsZm9udFdlaWdodDo2MDB9fX19LGJ1YmJsZTp7elNjYWxpbmc6ITAsbWluQnViYmxlUmFkaXVzOnZvaWQgMCxtYXhCdWJibGVSYWRpdXM6dm9pZCAwfSxjYW5kbGVzdGljazp7Y29sb3JzOnt1cHdhcmQ6IiMwMEI3NDYiLGRvd253YXJkOiIjRUY0MDNDIn0sd2ljazp7dXNlRmlsbENvbG9yOiEwfX0sYm94UGxvdDp7Y29sb3JzOnt1cHBlcjoiIzAwRTM5NiIsbG93ZXI6IiMwMDhGRkIifX0saGVhdG1hcDp7cmFkaXVzOjIsZW5hYmxlU2hhZGVzOiEwLHNoYWRlSW50ZW5zaXR5Oi41LHJldmVyc2VOZWdhdGl2ZVNoYWRlOiExLGRpc3RyaWJ1dGVkOiExLHVzZUZpbGxDb2xvckFzU3Ryb2tlOiExLGNvbG9yU2NhbGU6e2ludmVyc2U6ITEscmFuZ2VzOltdLG1pbjp2b2lkIDAsbWF4OnZvaWQgMH19LHRyZWVtYXA6e2VuYWJsZVNoYWRlczohMCxzaGFkZUludGVuc2l0eTouNSxkaXN0cmlidXRlZDohMSxyZXZlcnNlTmVnYXRpdmVTaGFkZTohMSx1c2VGaWxsQ29sb3JBc1N0cm9rZTohMSxjb2xvclNjYWxlOntpbnZlcnNlOiExLHJhbmdlczpbXSxtaW46dm9pZCAwLG1heDp2b2lkIDB9fSxyYWRpYWxCYXI6e2ludmVyc2VPcmRlcjohMSxzdGFydEFuZ2xlOjAsZW5kQW5nbGU6MzYwLG9mZnNldFg6MCxvZmZzZXRZOjAsaG9sbG93OnttYXJnaW46NSxzaXplOiI1MCUiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50IixpbWFnZTp2b2lkIDAsaW1hZ2VXaWR0aDoxNTAsaW1hZ2VIZWlnaHQ6MTUwLGltYWdlT2Zmc2V0WDowLGltYWdlT2Zmc2V0WTowLGltYWdlQ2xpcHBlZDohMCxwb3NpdGlvbjoiZnJvbnQiLGRyb3BTaGFkb3c6e2VuYWJsZWQ6ITEsdG9wOjAsbGVmdDowLGJsdXI6Myxjb2xvcjoiIzAwMCIsb3BhY2l0eTouNX19LHRyYWNrOntzaG93OiEwLHN0YXJ0QW5nbGU6dm9pZCAwLGVuZEFuZ2xlOnZvaWQgMCxiYWNrZ3JvdW5kOiIjZjJmMmYyIixzdHJva2VXaWR0aDoiOTclIixvcGFjaXR5OjEsbWFyZ2luOjUsZHJvcFNoYWRvdzp7ZW5hYmxlZDohMSx0b3A6MCxsZWZ0OjAsYmx1cjozLGNvbG9yOiIjMDAwIixvcGFjaXR5Oi41fX0sZGF0YUxhYmVsczp7c2hvdzohMCxuYW1lOntzaG93OiEwLGZvbnRTaXplOiIxNnB4Iixmb250RmFtaWx5OnZvaWQgMCxmb250V2VpZ2h0OjYwMCxjb2xvcjp2b2lkIDAsb2Zmc2V0WTowLGZvcm1hdHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdH19LHZhbHVlOntzaG93OiEwLGZvbnRTaXplOiIxNHB4Iixmb250RmFtaWx5OnZvaWQgMCxmb250V2VpZ2h0OjQwMCxjb2xvcjp2b2lkIDAsb2Zmc2V0WToxNixmb3JtYXR0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQrIiUifX0sdG90YWw6e3Nob3c6ITEsbGFiZWw6IlRvdGFsIixmb250U2l6ZToiMTZweCIsZm9udFdlaWdodDo2MDAsZm9udEZhbWlseTp2b2lkIDAsY29sb3I6dm9pZCAwLGZvcm1hdHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdC5nbG9iYWxzLnNlcmllc1RvdGFscy5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0pLDApL3QuZ2xvYmFscy5zZXJpZXMubGVuZ3RoKyIlIn19fX0scGllOntjdXN0b21TY2FsZToxLG9mZnNldFg6MCxvZmZzZXRZOjAsc3RhcnRBbmdsZTowLGVuZEFuZ2xlOjM2MCxleHBhbmRPbkNsaWNrOiEwLGRhdGFMYWJlbHM6e29mZnNldDowLG1pbkFuZ2xlVG9TaG93TGFiZWw6MTB9LGRvbnV0OntzaXplOiI2NSUiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50IixsYWJlbHM6e3Nob3c6ITEsbmFtZTp7c2hvdzohMCxmb250U2l6ZToiMTZweCIsZm9udEZhbWlseTp2b2lkIDAsZm9udFdlaWdodDo2MDAsY29sb3I6dm9pZCAwLG9mZnNldFk6LTEwLGZvcm1hdHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdH19LHZhbHVlOntzaG93OiEwLGZvbnRTaXplOiIyMHB4Iixmb250RmFtaWx5OnZvaWQgMCxmb250V2VpZ2h0OjQwMCxjb2xvcjp2b2lkIDAsb2Zmc2V0WToxMCxmb3JtYXR0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSx0b3RhbDp7c2hvdzohMSxzaG93QWx3YXlzOiExLGxhYmVsOiJUb3RhbCIsZm9udFNpemU6IjE2cHgiLGZvbnRXZWlnaHQ6NDAwLGZvbnRGYW1pbHk6dm9pZCAwLGNvbG9yOnZvaWQgMCxmb3JtYXR0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2xvYmFscy5zZXJpZXNUb3RhbHMucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9KSwwKX19fX19LHBvbGFyQXJlYTp7cmluZ3M6e3N0cm9rZVdpZHRoOjEsc3Ryb2tlQ29sb3I6IiNlOGU4ZTgifSxzcG9rZXM6e3N0cm9rZVdpZHRoOjEsY29ubmVjdG9yQ29sb3JzOiIjZThlOGU4In19LHJhZGFyOntzaXplOnZvaWQgMCxvZmZzZXRYOjAsb2Zmc2V0WTowLHBvbHlnb25zOntzdHJva2VXaWR0aDoxLHN0cm9rZUNvbG9yczoiI2U4ZThlOCIsY29ubmVjdG9yQ29sb3JzOiIjZThlOGU4IixmaWxsOntjb2xvcnM6dm9pZCAwfX19fSxjb2xvcnM6dm9pZCAwLGRhdGFMYWJlbHM6e2VuYWJsZWQ6ITAsZW5hYmxlZE9uU2VyaWVzOnZvaWQgMCxmb3JtYXR0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPT10P3Q6IiJ9LHRleHRBbmNob3I6Im1pZGRsZSIsZGlzdHJpYnV0ZWQ6ITEsb2Zmc2V0WDowLG9mZnNldFk6MCxzdHlsZTp7Zm9udFNpemU6IjEycHgiLGZvbnRGYW1pbHk6dm9pZCAwLGZvbnRXZWlnaHQ6NjAwLGNvbG9yczp2b2lkIDB9LGJhY2tncm91bmQ6e2VuYWJsZWQ6ITAsZm9yZUNvbG9yOiIjZmZmIixib3JkZXJSYWRpdXM6MixwYWRkaW5nOjQsb3BhY2l0eTouOSxib3JkZXJXaWR0aDoxLGJvcmRlckNvbG9yOiIjZmZmIixkcm9wU2hhZG93OntlbmFibGVkOiExLHRvcDoxLGxlZnQ6MSxibHVyOjEsY29sb3I6IiMwMDAiLG9wYWNpdHk6LjQ1fX0sZHJvcFNoYWRvdzp7ZW5hYmxlZDohMSx0b3A6MSxsZWZ0OjEsYmx1cjoxLGNvbG9yOiIjMDAwIixvcGFjaXR5Oi40NX19LGZpbGw6e3R5cGU6InNvbGlkIixjb2xvcnM6dm9pZCAwLG9wYWNpdHk6Ljg1LGdyYWRpZW50OntzaGFkZToiZGFyayIsdHlwZToiaG9yaXpvbnRhbCIsc2hhZGVJbnRlbnNpdHk6LjUsZ3JhZGllbnRUb0NvbG9yczp2b2lkIDAsaW52ZXJzZUNvbG9yczohMCxvcGFjaXR5RnJvbToxLG9wYWNpdHlUbzoxLHN0b3BzOlswLDUwLDEwMF0sY29sb3JTdG9wczpbXX0saW1hZ2U6e3NyYzpbXSx3aWR0aDp2b2lkIDAsaGVpZ2h0OnZvaWQgMH0scGF0dGVybjp7c3R5bGU6InNxdWFyZXMiLHdpZHRoOjYsaGVpZ2h0OjYsc3Ryb2tlV2lkdGg6Mn19LGZvcmVjYXN0RGF0YVBvaW50czp7Y291bnQ6MCxmaWxsT3BhY2l0eTouNSxzdHJva2VXaWR0aDp2b2lkIDAsZGFzaEFycmF5OjR9LGdyaWQ6e3Nob3c6ITAsYm9yZGVyQ29sb3I6IiNlMGUwZTAiLHN0cm9rZURhc2hBcnJheTowLHBvc2l0aW9uOiJiYWNrIix4YXhpczp7bGluZXM6e3Nob3c6ITF9fSx5YXhpczp7bGluZXM6e3Nob3c6ITB9fSxyb3c6e2NvbG9yczp2b2lkIDAsb3BhY2l0eTouNX0sY29sdW1uOntjb2xvcnM6dm9pZCAwLG9wYWNpdHk6LjV9LHBhZGRpbmc6e3RvcDowLHJpZ2h0OjEwLGJvdHRvbTowLGxlZnQ6MTJ9fSxsYWJlbHM6W10sbGVnZW5kOntzaG93OiEwLHNob3dGb3JTaW5nbGVTZXJpZXM6ITEsc2hvd0Zvck51bGxTZXJpZXM6ITAsc2hvd0Zvclplcm9TZXJpZXM6ITAsZmxvYXRpbmc6ITEscG9zaXRpb246ImJvdHRvbSIsaG9yaXpvbnRhbEFsaWduOiJjZW50ZXIiLGludmVyc2VPcmRlcjohMSxmb250U2l6ZToiMTJweCIsZm9udEZhbWlseTp2b2lkIDAsZm9udFdlaWdodDo0MDAsd2lkdGg6dm9pZCAwLGhlaWdodDp2b2lkIDAsZm9ybWF0dGVyOnZvaWQgMCx0b29sdGlwSG92ZXJGb3JtYXR0ZXI6dm9pZCAwLG9mZnNldFg6LTIwLG9mZnNldFk6NCxjdXN0b21MZWdlbmRJdGVtczpbXSxsYWJlbHM6e2NvbG9yczp2b2lkIDAsdXNlU2VyaWVzQ29sb3JzOiExfSxtYXJrZXJzOnt3aWR0aDoxMixoZWlnaHQ6MTIsc3Ryb2tlV2lkdGg6MCxmaWxsQ29sb3JzOnZvaWQgMCxzdHJva2VDb2xvcjoiI2ZmZiIscmFkaXVzOjEyLGN1c3RvbUhUTUw6dm9pZCAwLG9mZnNldFg6MCxvZmZzZXRZOjAsb25DbGljazp2b2lkIDB9LGl0ZW1NYXJnaW46e2hvcml6b250YWw6NSx2ZXJ0aWNhbDoyfSxvbkl0ZW1DbGljazp7dG9nZ2xlRGF0YVNlcmllczohMH0sb25JdGVtSG92ZXI6e2hpZ2hsaWdodERhdGFTZXJpZXM6ITB9fSxtYXJrZXJzOntkaXNjcmV0ZTpbXSxzaXplOjAsY29sb3JzOnZvaWQgMCxzdHJva2VDb2xvcnM6IiNmZmYiLHN0cm9rZVdpZHRoOjIsc3Ryb2tlT3BhY2l0eTouOSxzdHJva2VEYXNoQXJyYXk6MCxmaWxsT3BhY2l0eToxLHNoYXBlOiJjaXJjbGUiLHdpZHRoOjgsaGVpZ2h0OjgscmFkaXVzOjIsb2Zmc2V0WDowLG9mZnNldFk6MCxvbkNsaWNrOnZvaWQgMCxvbkRibENsaWNrOnZvaWQgMCxzaG93TnVsbERhdGFQb2ludHM6ITAsaG92ZXI6e3NpemU6dm9pZCAwLHNpemVPZmZzZXQ6M319LG5vRGF0YTp7dGV4dDp2b2lkIDAsYWxpZ246ImNlbnRlciIsdmVydGljYWxBbGlnbjoibWlkZGxlIixvZmZzZXRYOjAsb2Zmc2V0WTowLHN0eWxlOntjb2xvcjp2b2lkIDAsZm9udFNpemU6IjE0cHgiLGZvbnRGYW1pbHk6dm9pZCAwfX0scmVzcG9uc2l2ZTpbXSxzZXJpZXM6dm9pZCAwLHN0YXRlczp7bm9ybWFsOntmaWx0ZXI6e3R5cGU6Im5vbmUiLHZhbHVlOjB9fSxob3Zlcjp7ZmlsdGVyOnt0eXBlOiJsaWdodGVuIix2YWx1ZTouMX19LGFjdGl2ZTp7YWxsb3dNdWx0aXBsZURhdGFQb2ludHNTZWxlY3Rpb246ITEsZmlsdGVyOnt0eXBlOiJkYXJrZW4iLHZhbHVlOi41fX19LHRpdGxlOnt0ZXh0OnZvaWQgMCxhbGlnbjoibGVmdCIsbWFyZ2luOjUsb2Zmc2V0WDowLG9mZnNldFk6MCxmbG9hdGluZzohMSxzdHlsZTp7Zm9udFNpemU6IjE0cHgiLGZvbnRXZWlnaHQ6OTAwLGZvbnRGYW1pbHk6dm9pZCAwLGNvbG9yOnZvaWQgMH19LHN1YnRpdGxlOnt0ZXh0OnZvaWQgMCxhbGlnbjoibGVmdCIsbWFyZ2luOjUsb2Zmc2V0WDowLG9mZnNldFk6MzAsZmxvYXRpbmc6ITEsc3R5bGU6e2ZvbnRTaXplOiIxMnB4Iixmb250V2VpZ2h0OjQwMCxmb250RmFtaWx5OnZvaWQgMCxjb2xvcjp2b2lkIDB9fSxzdHJva2U6e3Nob3c6ITAsY3VydmU6InNtb290aCIsbGluZUNhcDoiYnV0dCIsd2lkdGg6Mixjb2xvcnM6dm9pZCAwLGRhc2hBcnJheTowLGZpbGw6e3R5cGU6InNvbGlkIixjb2xvcnM6dm9pZCAwLG9wYWNpdHk6Ljg1LGdyYWRpZW50OntzaGFkZToiZGFyayIsdHlwZToiaG9yaXpvbnRhbCIsc2hhZGVJbnRlbnNpdHk6LjUsZ3JhZGllbnRUb0NvbG9yczp2b2lkIDAsaW52ZXJzZUNvbG9yczohMCxvcGFjaXR5RnJvbToxLG9wYWNpdHlUbzoxLHN0b3BzOlswLDUwLDEwMF0sY29sb3JTdG9wczpbXX19fSx0b29sdGlwOntlbmFibGVkOiEwLGVuYWJsZWRPblNlcmllczp2b2lkIDAsc2hhcmVkOiEwLGZvbGxvd0N1cnNvcjohMSxpbnRlcnNlY3Q6ITEsaW52ZXJzZU9yZGVyOiExLGN1c3RvbTp2b2lkIDAsZmlsbFNlcmllc0NvbG9yOiExLHRoZW1lOiJsaWdodCIsY3NzQ2xhc3M6IiIsc3R5bGU6e2ZvbnRTaXplOiIxMnB4Iixmb250RmFtaWx5OnZvaWQgMH0sb25EYXRhc2V0SG92ZXI6e2hpZ2hsaWdodERhdGFTZXJpZXM6ITF9LHg6e3Nob3c6ITAsZm9ybWF0OiJkZCBNTU0iLGZvcm1hdHRlcjp2b2lkIDB9LHk6e2Zvcm1hdHRlcjp2b2lkIDAsdGl0bGU6e2Zvcm1hdHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD90KyI6ICI6IiJ9fX0sejp7Zm9ybWF0dGVyOnZvaWQgMCx0aXRsZToiU2l6ZTogIn0sbWFya2VyOntzaG93OiEwLGZpbGxDb2xvcnM6dm9pZCAwfSxpdGVtczp7ZGlzcGxheToiZmxleCJ9LGZpeGVkOntlbmFibGVkOiExLHBvc2l0aW9uOiJ0b3BSaWdodCIsb2Zmc2V0WDowLG9mZnNldFk6MH19LHhheGlzOnt0eXBlOiJjYXRlZ29yeSIsY2F0ZWdvcmllczpbXSxjb252ZXJ0ZWRDYXRUb051bWVyaWM6ITEsb2Zmc2V0WDowLG9mZnNldFk6MCxvdmVyd3JpdGVDYXRlZ29yaWVzOnZvaWQgMCxsYWJlbHM6e3Nob3c6ITAscm90YXRlOi00NSxyb3RhdGVBbHdheXM6ITEsaGlkZU92ZXJsYXBwaW5nTGFiZWxzOiEwLHRyaW06ITEsbWluSGVpZ2h0OnZvaWQgMCxtYXhIZWlnaHQ6MTIwLHNob3dEdXBsaWNhdGVzOiEwLHN0eWxlOntjb2xvcnM6W10sZm9udFNpemU6IjEycHgiLGZvbnRXZWlnaHQ6NDAwLGZvbnRGYW1pbHk6dm9pZCAwLGNzc0NsYXNzOiIifSxvZmZzZXRYOjAsb2Zmc2V0WTowLGZvcm1hdDp2b2lkIDAsZm9ybWF0dGVyOnZvaWQgMCxkYXRldGltZVVUQzohMCxkYXRldGltZUZvcm1hdHRlcjp7eWVhcjoieXl5eSIsbW9udGg6Ik1NTSAneXkiLGRheToiZGQgTU1NIixob3VyOiJISDptbSIsbWludXRlOiJISDptbTpzcyIsc2Vjb25kOiJISDptbTpzcyJ9fSxncm91cDp7Z3JvdXBzOltdLHN0eWxlOntjb2xvcnM6W10sZm9udFNpemU6IjEycHgiLGZvbnRXZWlnaHQ6NDAwLGZvbnRGYW1pbHk6dm9pZCAwLGNzc0NsYXNzOiIifX0sYXhpc0JvcmRlcjp7c2hvdzohMCxjb2xvcjoiI2UwZTBlMCIsd2lkdGg6IjEwMCUiLGhlaWdodDoxLG9mZnNldFg6MCxvZmZzZXRZOjB9LGF4aXNUaWNrczp7c2hvdzohMCxjb2xvcjoiI2UwZTBlMCIsaGVpZ2h0OjYsb2Zmc2V0WDowLG9mZnNldFk6MH0sdGlja0Ftb3VudDp2b2lkIDAsdGlja1BsYWNlbWVudDoib24iLG1pbjp2b2lkIDAsbWF4OnZvaWQgMCxyYW5nZTp2b2lkIDAsZmxvYXRpbmc6ITEsZGVjaW1hbHNJbkZsb2F0OnZvaWQgMCxwb3NpdGlvbjoiYm90dG9tIix0aXRsZTp7dGV4dDp2b2lkIDAsb2Zmc2V0WDowLG9mZnNldFk6MCxzdHlsZTp7Y29sb3I6dm9pZCAwLGZvbnRTaXplOiIxMnB4Iixmb250V2VpZ2h0OjkwMCxmb250RmFtaWx5OnZvaWQgMCxjc3NDbGFzczoiIn19LGNyb3NzaGFpcnM6e3Nob3c6ITAsd2lkdGg6MSxwb3NpdGlvbjoiYmFjayIsb3BhY2l0eTouOSxzdHJva2U6e2NvbG9yOiIjYjZiNmI2Iix3aWR0aDoxLGRhc2hBcnJheTozfSxmaWxsOnt0eXBlOiJzb2xpZCIsY29sb3I6IiNCMUI5QzQiLGdyYWRpZW50Ontjb2xvckZyb206IiNEOEUzRjAiLGNvbG9yVG86IiNCRUQxRTYiLHN0b3BzOlswLDEwMF0sb3BhY2l0eUZyb206LjQsb3BhY2l0eVRvOi41fX0sZHJvcFNoYWRvdzp7ZW5hYmxlZDohMSxsZWZ0OjAsdG9wOjAsYmx1cjoxLG9wYWNpdHk6LjR9fSx0b29sdGlwOntlbmFibGVkOiEwLG9mZnNldFk6MCxmb3JtYXR0ZXI6dm9pZCAwLHN0eWxlOntmb250U2l6ZToiMTJweCIsZm9udEZhbWlseTp2b2lkIDB9fX0seWF4aXM6dGhpcy55QXhpcyx0aGVtZTp7bW9kZToibGlnaHQiLHBhbGV0dGU6InBhbGV0dGUxIixtb25vY2hyb21lOntlbmFibGVkOiExLGNvbG9yOiIjMDA4RkZCIixzaGFkZVRvOiJsaWdodCIsc2hhZGVJbnRlbnNpdHk6LjY1fX19fX1dKSx0fSgpLE09ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLncsdGhpcy5ncmFwaGljcz1uZXcgayh0aGlzLmN0eCksdGhpcy53Lmdsb2JhbHMuaXNCYXJIb3Jpem9udGFsJiYodGhpcy5pbnZlcnRBeGlzPSEwKSx0aGlzLmhlbHBlcnM9bmV3IEModGhpcyksdGhpcy54QXhpc0Fubm90YXRpb25zPW5ldyBBKHRoaXMpLHRoaXMueUF4aXNBbm5vdGF0aW9ucz1uZXcgRSh0aGlzKSx0aGlzLnBvaW50c0Fubm90YXRpb25zPW5ldyBUKHRoaXMpLHRoaXMudy5nbG9iYWxzLmlzQmFySG9yaXpvbnRhbCYmdGhpcy53LmNvbmZpZy55YXhpc1swXS5yZXZlcnNlZCYmKHRoaXMuaW52ZXJzZWRSZXZlcnNlZEF4aXM9ITApLHRoaXMueERpdmlzaW9uPXRoaXMudy5nbG9iYWxzLmdyaWRXaWR0aC90aGlzLncuZ2xvYmFscy5kYXRhUG9pbnRzfXJldHVybiBjKHQsW3trZXk6ImRyYXdBeGVzQW5ub3RhdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53O2lmKHQuZ2xvYmFscy5heGlzQ2hhcnRzKXtmb3IodmFyIGU9dGhpcy55QXhpc0Fubm90YXRpb25zLmRyYXdZQXhpc0Fubm90YXRpb25zKCksaT10aGlzLnhBeGlzQW5ub3RhdGlvbnMuZHJhd1hBeGlzQW5ub3RhdGlvbnMoKSxzPXRoaXMucG9pbnRzQW5ub3RhdGlvbnMuZHJhd1BvaW50QW5ub3RhdGlvbnMoKSxhPXQuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuZW5hYmxlZCxuPVtlLGksc10scj1baS5ub2RlLGUubm9kZSxzLm5vZGVdLG89MDtvPDM7bysrKXQuZ2xvYmFscy5kb20uZWxHcmFwaGljYWwuYWRkKG5bb10pLCFhfHx0Lmdsb2JhbHMucmVzaXplZHx8dC5nbG9iYWxzLmRhdGFDaGFuZ2VkfHwic2NhdHRlciIhPT10LmNvbmZpZy5jaGFydC50eXBlJiYiYnViYmxlIiE9PXQuY29uZmlnLmNoYXJ0LnR5cGUmJnQuZ2xvYmFscy5kYXRhUG9pbnRzPjEmJnJbb10uY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy1lbGVtZW50LWhpZGRlbiIpLHQuZ2xvYmFscy5kZWxheWVkRWxlbWVudHMucHVzaCh7ZWw6cltvXSxpbmRleDowfSk7dGhpcy5oZWxwZXJzLmFubm90YXRpb25zQmFja2dyb3VuZCgpfX19LHtrZXk6ImRyYXdJbWFnZUFubm9zIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy53LmNvbmZpZy5hbm5vdGF0aW9ucy5pbWFnZXMubWFwKChmdW5jdGlvbihlLGkpe3QuYWRkSW1hZ2UoZSxpKX0pKX19LHtrZXk6ImRyYXdUZXh0QW5ub3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLncuY29uZmlnLmFubm90YXRpb25zLnRleHRzLm1hcCgoZnVuY3Rpb24oZSxpKXt0LmFkZFRleHQoZSxpKX0pKX19LHtrZXk6ImFkZFhheGlzQW5ub3RhdGlvbiIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3RoaXMueEF4aXNBbm5vdGF0aW9ucy5hZGRYYXhpc0Fubm90YXRpb24odCxlLGkpfX0se2tleToiYWRkWWF4aXNBbm5vdGF0aW9uIix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7dGhpcy55QXhpc0Fubm90YXRpb25zLmFkZFlheGlzQW5ub3RhdGlvbih0LGUsaSl9fSx7a2V5OiJhZGRQb2ludEFubm90YXRpb24iLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXt0aGlzLnBvaW50c0Fubm90YXRpb25zLmFkZFBvaW50QW5ub3RhdGlvbih0LGUsaSl9fSx7a2V5OiJhZGRUZXh0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXQueCxzPXQueSxhPXQudGV4dCxuPXQudGV4dEFuY2hvcixyPXQuZm9yZUNvbG9yLG89dC5mb250U2l6ZSxsPXQuZm9udEZhbWlseSxjPXQuZm9udFdlaWdodCxoPXQuY3NzQ2xhc3MsZD10LmJhY2tncm91bmRDb2xvcix1PXQuYm9yZGVyV2lkdGgscD10LnN0cm9rZURhc2hBcnJheSxnPXQuYm9yZGVyUmFkaXVzLGY9dC5ib3JkZXJDb2xvcixtPXQuYXBwZW5kVG8sdj12b2lkIDA9PT1tPyIuYXBleGNoYXJ0cy1hbm5vdGF0aW9ucyI6bSx4PXQucGFkZGluZ0xlZnQsYj12b2lkIDA9PT14PzQ6eCx5PXQucGFkZGluZ1JpZ2h0LHc9dm9pZCAwPT09eT80Onksaz10LnBhZGRpbmdCb3R0b20sUz12b2lkIDA9PT1rPzI6ayxDPXQucGFkZGluZ1RvcCxBPXZvaWQgMD09PUM/MjpDLEU9dGhpcy53LFQ9dGhpcy5ncmFwaGljcy5kcmF3VGV4dCh7eDppLHk6cyx0ZXh0OmEsdGV4dEFuY2hvcjpufHwic3RhcnQiLGZvbnRTaXplOm98fCIxMnB4Iixmb250V2VpZ2h0OmN8fCJyZWd1bGFyIixmb250RmFtaWx5Omx8fEUuY29uZmlnLmNoYXJ0LmZvbnRGYW1pbHksZm9yZUNvbG9yOnJ8fEUuY29uZmlnLmNoYXJ0LmZvcmVDb2xvcixjc3NDbGFzczpofSksTD1FLmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKHYpO0wmJkwuYXBwZW5kQ2hpbGQoVC5ub2RlKTt2YXIgUD1ULmJib3goKTtpZihhKXt2YXIgTT10aGlzLmdyYXBoaWNzLmRyYXdSZWN0KFAueC1iLFAueS1BLFAud2lkdGgrYit3LFAuaGVpZ2h0K1MrQSxnLGR8fCJ0cmFuc3BhcmVudCIsMSx1LGYscCk7TC5pbnNlcnRCZWZvcmUoTS5ub2RlLFQubm9kZSl9fX0se2tleToiYWRkSW1hZ2UiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy53LHM9dC5wYXRoLGE9dC54LG49dm9pZCAwPT09YT8wOmEscj10Lnksbz12b2lkIDA9PT1yPzA6cixsPXQud2lkdGgsYz12b2lkIDA9PT1sPzIwOmwsaD10LmhlaWdodCxkPXZvaWQgMD09PWg/MjA6aCx1PXQuYXBwZW5kVG8scD12b2lkIDA9PT11PyIuYXBleGNoYXJ0cy1hbm5vdGF0aW9ucyI6dSxnPWkuZ2xvYmFscy5kb20uUGFwZXIuaW1hZ2Uocyk7Zy5zaXplKGMsZCkubW92ZShuLG8pO3ZhciBmPWkuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IocCk7cmV0dXJuIGYmJmYuYXBwZW5kQ2hpbGQoZy5ub2RlKSxnfX0se2tleToiYWRkWGF4aXNBbm5vdGF0aW9uRXh0ZXJuYWwiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gdGhpcy5hZGRBbm5vdGF0aW9uRXh0ZXJuYWwoe3BhcmFtczp0LHB1c2hUb01lbW9yeTplLGNvbnRleHQ6aSx0eXBlOiJ4YXhpcyIsY29udGV4dE1ldGhvZDppLmFkZFhheGlzQW5ub3RhdGlvbn0pLGl9fSx7a2V5OiJhZGRZYXhpc0Fubm90YXRpb25FeHRlcm5hbCIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3JldHVybiB0aGlzLmFkZEFubm90YXRpb25FeHRlcm5hbCh7cGFyYW1zOnQscHVzaFRvTWVtb3J5OmUsY29udGV4dDppLHR5cGU6InlheGlzIixjb250ZXh0TWV0aG9kOmkuYWRkWWF4aXNBbm5vdGF0aW9ufSksaX19LHtrZXk6ImFkZFBvaW50QW5ub3RhdGlvbkV4dGVybmFsIix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHZvaWQgMD09PXRoaXMuaW52ZXJ0QXhpcyYmKHRoaXMuaW52ZXJ0QXhpcz1pLncuZ2xvYmFscy5pc0Jhckhvcml6b250YWwpLHRoaXMuYWRkQW5ub3RhdGlvbkV4dGVybmFsKHtwYXJhbXM6dCxwdXNoVG9NZW1vcnk6ZSxjb250ZXh0OmksdHlwZToicG9pbnQiLGNvbnRleHRNZXRob2Q6aS5hZGRQb2ludEFubm90YXRpb259KSxpfX0se2tleToiYWRkQW5ub3RhdGlvbkV4dGVybmFsIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LnBhcmFtcyxpPXQucHVzaFRvTWVtb3J5LHM9dC5jb250ZXh0LGE9dC50eXBlLG49dC5jb250ZXh0TWV0aG9kLHI9cyxvPXIudyxsPW8uZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLSIuY29uY2F0KGEsIi1hbm5vdGF0aW9ucyIpKSxjPWwuY2hpbGROb2Rlcy5sZW5ndGgrMSxoPW5ldyBQLGQ9T2JqZWN0LmFzc2lnbih7fSwieGF4aXMiPT09YT9oLnhBeGlzQW5ub3RhdGlvbjoieWF4aXMiPT09YT9oLnlBeGlzQW5ub3RhdGlvbjpoLnBvaW50QW5ub3RhdGlvbiksdT1iLmV4dGVuZChkLGUpO3N3aXRjaChhKXtjYXNlInhheGlzIjp0aGlzLmFkZFhheGlzQW5ub3RhdGlvbih1LGwsYyk7YnJlYWs7Y2FzZSJ5YXhpcyI6dGhpcy5hZGRZYXhpc0Fubm90YXRpb24odSxsLGMpO2JyZWFrO2Nhc2UicG9pbnQiOnRoaXMuYWRkUG9pbnRBbm5vdGF0aW9uKHUsbCxjKX12YXIgcD1vLmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy0iLmNvbmNhdChhLCItYW5ub3RhdGlvbnMgLmFwZXhjaGFydHMtIikuY29uY2F0KGEsIi1hbm5vdGF0aW9uLWxhYmVsW3JlbD0nIikuY29uY2F0KGMsIiddIikpLGc9dGhpcy5oZWxwZXJzLmFkZEJhY2tncm91bmRUb0Fubm8ocCx1KTtyZXR1cm4gZyYmbC5pbnNlcnRCZWZvcmUoZy5ub2RlLHApLGkmJm8uZ2xvYmFscy5tZW1vcnkubWV0aG9kc1RvRXhlYy5wdXNoKHtjb250ZXh0OnIsaWQ6dS5pZD91LmlkOmIucmFuZG9tSWQoKSxtZXRob2Q6bixsYWJlbDoiYWRkQW5ub3RhdGlvbiIscGFyYW1zOmV9KSxzfX0se2tleToiY2xlYXJBbm5vdGF0aW9ucyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC53LGk9ZS5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvckFsbCgiLmFwZXhjaGFydHMteWF4aXMtYW5ub3RhdGlvbnMsIC5hcGV4Y2hhcnRzLXhheGlzLWFubm90YXRpb25zLCAuYXBleGNoYXJ0cy1wb2ludC1hbm5vdGF0aW9ucyIpO2UuZ2xvYmFscy5tZW1vcnkubWV0aG9kc1RvRXhlYy5tYXAoKGZ1bmN0aW9uKHQsaSl7ImFkZFRleHQiIT09dC5sYWJlbCYmImFkZEFubm90YXRpb24iIT09dC5sYWJlbHx8ZS5nbG9iYWxzLm1lbW9yeS5tZXRob2RzVG9FeGVjLnNwbGljZShpLDEpfSkpLGk9Yi5saXN0VG9BcnJheShpKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGksKGZ1bmN0aW9uKHQpe2Zvcig7dC5maXJzdENoaWxkOyl0LnJlbW92ZUNoaWxkKHQuZmlyc3RDaGlsZCl9KSl9fSx7a2V5OiJyZW1vdmVBbm5vdGF0aW9uIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXQudyxzPWkuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi4iLmNvbmNhdChlKSk7cyYmKGkuZ2xvYmFscy5tZW1vcnkubWV0aG9kc1RvRXhlYy5tYXAoKGZ1bmN0aW9uKHQscyl7dC5pZD09PWUmJmkuZ2xvYmFscy5tZW1vcnkubWV0aG9kc1RvRXhlYy5zcGxpY2UocywxKX0pKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHMsKGZ1bmN0aW9uKHQpe3QucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0KX0pKSl9fV0pLHR9KCksTz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMuY3R4PWUsdGhpcy53PWUudyx0aGlzLm1vbnRoczMxPVsxLDMsNSw3LDgsMTAsMTJdLHRoaXMubW9udGhzMzA9WzIsNCw2LDksMTFdLHRoaXMuZGF5c0NudE9mWWVhcj1bMCwzMSw1OSw5MCwxMjAsMTUxLDE4MSwyMTIsMjQzLDI3MywzMDQsMzM0XX1yZXR1cm4gYyh0LFt7a2V5OiJpc1ZhbGlkRGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIWlzTmFOKHRoaXMucGFyc2VEYXRlKHQpKX19LHtrZXk6ImdldFRpbWVTdGFtcCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIERhdGUucGFyc2UodCk/dGhpcy53LmNvbmZpZy54YXhpcy5sYWJlbHMuZGF0ZXRpbWVVVEM/bmV3IERhdGUobmV3IERhdGUodCkudG9JU09TdHJpbmcoKS5zdWJzdHIoMCwyNSkpLmdldFRpbWUoKTpuZXcgRGF0ZSh0KS5nZXRUaW1lKCk6dH19LHtrZXk6ImdldERhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLncuY29uZmlnLnhheGlzLmxhYmVscy5kYXRldGltZVVUQz9uZXcgRGF0ZShuZXcgRGF0ZSh0KS50b1VUQ1N0cmluZygpKTpuZXcgRGF0ZSh0KX19LHtrZXk6InBhcnNlRGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9RGF0ZS5wYXJzZSh0KTtpZighaXNOYU4oZSkpcmV0dXJuIHRoaXMuZ2V0VGltZVN0YW1wKHQpO3ZhciBpPURhdGUucGFyc2UodC5yZXBsYWNlKC8tL2csIi8iKS5yZXBsYWNlKC9bYS16XSsvZ2ksIiAiKSk7cmV0dXJuIHRoaXMuZ2V0VGltZVN0YW1wKGkpfX0se2tleToicGFyc2VEYXRlV2l0aFRpbWV6b25lIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gRGF0ZS5wYXJzZSh0LnJlcGxhY2UoLy0vZywiLyIpLnJlcGxhY2UoL1thLXpdKy9naSwiICIpKX19LHtrZXk6ImZvcm1hdERhdGUiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy53Lmdsb2JhbHMubG9jYWxlLHM9dGhpcy53LmNvbmZpZy54YXhpcy5sYWJlbHMuZGF0ZXRpbWVVVEMsYT1bIlwwIl0uY29uY2F0KG0oaS5tb250aHMpKSxuPVsiASJdLmNvbmNhdChtKGkuc2hvcnRNb250aHMpKSxyPVsiAiJdLmNvbmNhdChtKGkuZGF5cykpLG89WyIDIl0uY29uY2F0KG0oaS5zaG9ydERheXMpKTtmdW5jdGlvbiBsKHQsZSl7dmFyIGk9dCsiIjtmb3IoZT1lfHwyO2kubGVuZ3RoPGU7KWk9IjAiK2k7cmV0dXJuIGl9dmFyIGM9cz90LmdldFVUQ0Z1bGxZZWFyKCk6dC5nZXRGdWxsWWVhcigpO2U9KGU9KGU9ZS5yZXBsYWNlKC8oXnxbXlxcXSl5eXl5Ky9nLCIkMSIrYykpLnJlcGxhY2UoLyhefFteXFxdKXl5L2csIiQxIitjLnRvU3RyaW5nKCkuc3Vic3RyKDIsMikpKS5yZXBsYWNlKC8oXnxbXlxcXSl5L2csIiQxIitjKTt2YXIgaD0ocz90LmdldFVUQ01vbnRoKCk6dC5nZXRNb250aCgpKSsxO2U9KGU9KGU9KGU9ZS5yZXBsYWNlKC8oXnxbXlxcXSlNTU1NKy9nLCIkMSIrYVswXSkpLnJlcGxhY2UoLyhefFteXFxdKU1NTS9nLCIkMSIrblswXSkpLnJlcGxhY2UoLyhefFteXFxdKU1NL2csIiQxIitsKGgpKSkucmVwbGFjZSgvKF58W15cXF0pTS9nLCIkMSIraCk7dmFyIGQ9cz90LmdldFVUQ0RhdGUoKTp0LmdldERhdGUoKTtlPShlPShlPShlPWUucmVwbGFjZSgvKF58W15cXF0pZGRkZCsvZywiJDEiK3JbMF0pKS5yZXBsYWNlKC8oXnxbXlxcXSlkZGQvZywiJDEiK29bMF0pKS5yZXBsYWNlKC8oXnxbXlxcXSlkZC9nLCIkMSIrbChkKSkpLnJlcGxhY2UoLyhefFteXFxdKWQvZywiJDEiK2QpO3ZhciB1PXM/dC5nZXRVVENIb3VycygpOnQuZ2V0SG91cnMoKSxwPXU+MTI/dS0xMjowPT09dT8xMjp1O2U9KGU9KGU9KGU9ZS5yZXBsYWNlKC8oXnxbXlxcXSlISCsvZywiJDEiK2wodSkpKS5yZXBsYWNlKC8oXnxbXlxcXSlIL2csIiQxIit1KSkucmVwbGFjZSgvKF58W15cXF0paGgrL2csIiQxIitsKHApKSkucmVwbGFjZSgvKF58W15cXF0paC9nLCIkMSIrcCk7dmFyIGc9cz90LmdldFVUQ01pbnV0ZXMoKTp0LmdldE1pbnV0ZXMoKTtlPShlPWUucmVwbGFjZSgvKF58W15cXF0pbW0rL2csIiQxIitsKGcpKSkucmVwbGFjZSgvKF58W15cXF0pbS9nLCIkMSIrZyk7dmFyIGY9cz90LmdldFVUQ1NlY29uZHMoKTp0LmdldFNlY29uZHMoKTtlPShlPWUucmVwbGFjZSgvKF58W15cXF0pc3MrL2csIiQxIitsKGYpKSkucmVwbGFjZSgvKF58W15cXF0pcy9nLCIkMSIrZik7dmFyIHY9cz90LmdldFVUQ01pbGxpc2Vjb25kcygpOnQuZ2V0TWlsbGlzZWNvbmRzKCk7ZT1lLnJlcGxhY2UoLyhefFteXFxdKWZmZisvZywiJDEiK2wodiwzKSksdj1NYXRoLnJvdW5kKHYvMTApLGU9ZS5yZXBsYWNlKC8oXnxbXlxcXSlmZi9nLCIkMSIrbCh2KSksdj1NYXRoLnJvdW5kKHYvMTApO3ZhciB4PXU8MTI/IkFNIjoiUE0iO2U9KGU9KGU9ZS5yZXBsYWNlKC8oXnxbXlxcXSlmL2csIiQxIit2KSkucmVwbGFjZSgvKF58W15cXF0pVFQrL2csIiQxIit4KSkucmVwbGFjZSgvKF58W15cXF0pVC9nLCIkMSIreC5jaGFyQXQoMCkpO3ZhciBiPXgudG9Mb3dlckNhc2UoKTtlPShlPWUucmVwbGFjZSgvKF58W15cXF0pdHQrL2csIiQxIitiKSkucmVwbGFjZSgvKF58W15cXF0pdC9nLCIkMSIrYi5jaGFyQXQoMCkpO3ZhciB5PS10LmdldFRpbWV6b25lT2Zmc2V0KCksdz1zfHwheT8iWiI6eT4wPyIrIjoiLSI7aWYoIXMpe3ZhciBrPSh5PU1hdGguYWJzKHkpKSU2MDt3Kz1sKE1hdGguZmxvb3IoeS82MCkpKyI6IitsKGspfWU9ZS5yZXBsYWNlKC8oXnxbXlxcXSlLL2csIiQxIit3KTt2YXIgUz0ocz90LmdldFVUQ0RheSgpOnQuZ2V0RGF5KCkpKzE7cmV0dXJuKGU9KGU9KGU9KGU9ZS5yZXBsYWNlKG5ldyBSZWdFeHAoclswXSwiZyIpLHJbU10pKS5yZXBsYWNlKG5ldyBSZWdFeHAob1swXSwiZyIpLG9bU10pKS5yZXBsYWNlKG5ldyBSZWdFeHAoYVswXSwiZyIpLGFbaF0pKS5yZXBsYWNlKG5ldyBSZWdFeHAoblswXSwiZyIpLG5baF0pKS5yZXBsYWNlKC9cXCguKS9nLCIkMSIpfX0se2tleToiZ2V0VGltZVVuaXRzZnJvbVRpbWVzdGFtcCIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXMudzt2b2lkIDAhPT1zLmNvbmZpZy54YXhpcy5taW4mJih0PXMuY29uZmlnLnhheGlzLm1pbiksdm9pZCAwIT09cy5jb25maWcueGF4aXMubWF4JiYoZT1zLmNvbmZpZy54YXhpcy5tYXgpO3ZhciBhPXRoaXMuZ2V0RGF0ZSh0KSxuPXRoaXMuZ2V0RGF0ZShlKSxyPXRoaXMuZm9ybWF0RGF0ZShhLCJ5eXl5IE1NIGRkIEhIIG1tIHNzIGZmZiIpLnNwbGl0KCIgIiksbz10aGlzLmZvcm1hdERhdGUobiwieXl5eSBNTSBkZCBISCBtbSBzcyBmZmYiKS5zcGxpdCgiICIpO3JldHVybnttaW5NaWxsaXNlY29uZDpwYXJzZUludChyWzZdLDEwKSxtYXhNaWxsaXNlY29uZDpwYXJzZUludChvWzZdLDEwKSxtaW5TZWNvbmQ6cGFyc2VJbnQocls1XSwxMCksbWF4U2Vjb25kOnBhcnNlSW50KG9bNV0sMTApLG1pbk1pbnV0ZTpwYXJzZUludChyWzRdLDEwKSxtYXhNaW51dGU6cGFyc2VJbnQob1s0XSwxMCksbWluSG91cjpwYXJzZUludChyWzNdLDEwKSxtYXhIb3VyOnBhcnNlSW50KG9bM10sMTApLG1pbkRhdGU6cGFyc2VJbnQoclsyXSwxMCksbWF4RGF0ZTpwYXJzZUludChvWzJdLDEwKSxtaW5Nb250aDpwYXJzZUludChyWzFdLDEwKS0xLG1heE1vbnRoOnBhcnNlSW50KG9bMV0sMTApLTEsbWluWWVhcjpwYXJzZUludChyWzBdLDEwKSxtYXhZZWFyOnBhcnNlSW50KG9bMF0sMTApfX19LHtrZXk6ImlzTGVhcFllYXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0JTQ9PTAmJnQlMTAwIT0wfHx0JTQwMD09MH19LHtrZXk6ImNhbGN1bGNhdGVMYXN0RGF5c09mTW9udGgiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gdGhpcy5kZXRlcm1pbmVEYXlzT2ZNb250aHModCxlKS1pfX0se2tleToiZGV0ZXJtaW5lRGF5c09mWWVhciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9MzY1O3JldHVybiB0aGlzLmlzTGVhcFllYXIodCkmJihlPTM2NiksZX19LHtrZXk6ImRldGVybWluZVJlbWFpbmluZ0RheXNPZlllYXIiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzLmRheXNDbnRPZlllYXJbZV0raTtyZXR1cm4gZT4xJiZ0aGlzLmlzTGVhcFllYXIoKSYmcysrLHN9fSx7a2V5OiJkZXRlcm1pbmVEYXlzT2ZNb250aHMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9MzA7c3dpdGNoKHQ9Yi5tb250aE1vZCh0KSwhMCl7Y2FzZSB0aGlzLm1vbnRoczMwLmluZGV4T2YodCk+LTE6Mj09PXQmJihpPXRoaXMuaXNMZWFwWWVhcihlKT8yOToyOCk7YnJlYWs7Y2FzZSB0aGlzLm1vbnRoczMxLmluZGV4T2YodCk+LTE6ZGVmYXVsdDppPTMxfXJldHVybiBpfX1dKSx0fSgpLEk9ZnVuY3Rpb24odCl7dmFyIGUsaT10LmN0eCxzPXQuc2VyaWVzSW5kZXgsYT10LmRhdGFQb2ludEluZGV4LG49dC55MSxyPXQueTIsbz10LncsbD1vLmdsb2JhbHMuc2VyaWVzUmFuZ2VTdGFydFtzXVthXSxjPW8uZ2xvYmFscy5zZXJpZXNSYW5nZUVuZFtzXVthXSxoPW8uZ2xvYmFscy5sYWJlbHNbYV0sZD1vLmNvbmZpZy5zZXJpZXNbc10ubmFtZT9vLmNvbmZpZy5zZXJpZXNbc10ubmFtZToiIix1PW8uY29uZmlnLnRvb2x0aXAueS5mb3JtYXR0ZXIscD1vLmNvbmZpZy50b29sdGlwLnkudGl0bGUuZm9ybWF0dGVyLGc9e3c6byxzZXJpZXNJbmRleDpzLGRhdGFQb2ludEluZGV4OmEsc3RhcnQ6bCxlbmQ6Y307ImZ1bmN0aW9uIj09dHlwZW9mIHAmJihkPXAoZCxnKSksbnVsbCE9PShlPW8uY29uZmlnLnNlcmllc1tzXS5kYXRhW2FdKSYmdm9pZCAwIT09ZSYmZS54JiYoaD1vLmNvbmZpZy5zZXJpZXNbc10uZGF0YVthXS54KyI6IiksImZ1bmN0aW9uIj09dHlwZW9mIHUmJihoPXUoaCxnKSksTnVtYmVyLmlzRmluaXRlKG4pJiZOdW1iZXIuaXNGaW5pdGUocikmJihsPW4sYz1yKTt2YXIgZj0iIixtPSIiLHY9by5nbG9iYWxzLmNvbG9yc1tzXTtpZih2b2lkIDA9PT1vLmNvbmZpZy50b29sdGlwLnguZm9ybWF0dGVyKWlmKCJkYXRldGltZSI9PT1vLmNvbmZpZy54YXhpcy50eXBlKXt2YXIgeD1uZXcgTyhpKTtmPXguZm9ybWF0RGF0ZSh4LmdldERhdGUobCksby5jb25maWcudG9vbHRpcC54LmZvcm1hdCksbT14LmZvcm1hdERhdGUoeC5nZXREYXRlKGMpLG8uY29uZmlnLnRvb2x0aXAueC5mb3JtYXQpfWVsc2UgZj1sLG09YztlbHNlIGY9by5jb25maWcudG9vbHRpcC54LmZvcm1hdHRlcihsKSxtPW8uY29uZmlnLnRvb2x0aXAueC5mb3JtYXR0ZXIoYyk7cmV0dXJue3N0YXJ0OmwsZW5kOmMsc3RhcnRWYWw6ZixlbmRWYWw6bSx5bGFiZWw6aCxjb2xvcjp2LHNlcmllc05hbWU6ZH19LEY9ZnVuY3Rpb24odCl7dmFyIGU9dC5jb2xvcixpPXQuc2VyaWVzTmFtZSxzPXQueWxhYmVsLGE9dC5zdGFydCxuPXQuZW5kLHI9dC5zZXJpZXNJbmRleCxvPXQuZGF0YVBvaW50SW5kZXgsbD10LmN0eC50b29sdGlwLnRvb2x0aXBMYWJlbHMuZ2V0Rm9ybWF0dGVycyhyKTthPWwueUxiRm9ybWF0dGVyKGEpLG49bC55TGJGb3JtYXR0ZXIobik7dmFyIGM9bC55TGJGb3JtYXR0ZXIodC53Lmdsb2JhbHMuc2VyaWVzW3JdW29dKSxoPSc8c3BhbiBjbGFzcz0idmFsdWUgc3RhcnQtdmFsdWUiPlxuICAnLmNvbmNhdChhLCdcbiAgPC9zcGFuPiA8c3BhbiBjbGFzcz0ic2VwYXJhdG9yIj4tPC9zcGFuPiA8c3BhbiBjbGFzcz0idmFsdWUgZW5kLXZhbHVlIj5cbiAgJykuY29uY2F0KG4sIlxuICA8L3NwYW4+Iik7cmV0dXJuJzxkaXYgY2xhc3M9ImFwZXhjaGFydHMtdG9vbHRpcC1yYW5nZWJhciI+PGRpdj4gPHNwYW4gY2xhc3M9InNlcmllcy1uYW1lIiBzdHlsZT0iY29sb3I6ICcrZSsnIj4nKyhpfHwiIikrJzwvc3Bhbj48L2Rpdj48ZGl2PiA8c3BhbiBjbGFzcz0iY2F0ZWdvcnkiPicrcysiIDwvc3Bhbj4gIisodC53Lmdsb2JhbHMuY29tYm9DaGFydHM/InJhbmdlQXJlYSI9PT10LncuY29uZmlnLnNlcmllc1tyXS50eXBlfHwicmFuZ2VCYXIiPT09dC53LmNvbmZpZy5zZXJpZXNbcl0udHlwZT9oOiI8c3Bhbj4iLmNvbmNhdChjLCI8L3NwYW4+Iik6aCkrIiA8L2Rpdj48L2Rpdj4ifSxEPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy5vcHRzPWV9cmV0dXJuIGModCxbe2tleToibGluZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57Y2hhcnQ6e2FuaW1hdGlvbnM6e2Vhc2luZzoic3dpbmcifX0sZGF0YUxhYmVsczp7ZW5hYmxlZDohMX0sc3Ryb2tlOnt3aWR0aDo1LGN1cnZlOiJzdHJhaWdodCJ9LG1hcmtlcnM6e3NpemU6MCxob3Zlcjp7c2l6ZU9mZnNldDo2fX0seGF4aXM6e2Nyb3NzaGFpcnM6e3dpZHRoOjF9fX19fSx7a2V5OiJzcGFya2xpbmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm9wdHMueWF4aXNbMF0uc2hvdz0hMSx0aGlzLm9wdHMueWF4aXNbMF0udGl0bGUudGV4dD0iIix0aGlzLm9wdHMueWF4aXNbMF0uYXhpc0JvcmRlci5zaG93PSExLHRoaXMub3B0cy55YXhpc1swXS5heGlzVGlja3Muc2hvdz0hMSx0aGlzLm9wdHMueWF4aXNbMF0uZmxvYXRpbmc9ITAsYi5leHRlbmQodCx7Z3JpZDp7c2hvdzohMSxwYWRkaW5nOntsZWZ0OjAscmlnaHQ6MCx0b3A6MCxib3R0b206MH19LGxlZ2VuZDp7c2hvdzohMX0seGF4aXM6e2xhYmVsczp7c2hvdzohMX0sdG9vbHRpcDp7ZW5hYmxlZDohMX0sYXhpc0JvcmRlcjp7c2hvdzohMX0sYXhpc1RpY2tzOntzaG93OiExfX0sY2hhcnQ6e3Rvb2xiYXI6e3Nob3c6ITF9LHpvb206e2VuYWJsZWQ6ITF9fSxkYXRhTGFiZWxzOntlbmFibGVkOiExfX0pfX0se2tleToiYmFyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybntjaGFydDp7c3RhY2tlZDohMSxhbmltYXRpb25zOntlYXNpbmc6InN3aW5nIn19LHBsb3RPcHRpb25zOntiYXI6e2RhdGFMYWJlbHM6e3Bvc2l0aW9uOiJjZW50ZXIifX19LGRhdGFMYWJlbHM6e3N0eWxlOntjb2xvcnM6WyIjZmZmIl19LGJhY2tncm91bmQ6e2VuYWJsZWQ6ITF9fSxzdHJva2U6e3dpZHRoOjAsbGluZUNhcDoicm91bmQifSxmaWxsOntvcGFjaXR5Oi44NX0sbGVnZW5kOnttYXJrZXJzOntzaGFwZToic3F1YXJlIixyYWRpdXM6MixzaXplOjh9fSx0b29sdGlwOntzaGFyZWQ6ITEsaW50ZXJzZWN0OiEwfSx4YXhpczp7dG9vbHRpcDp7ZW5hYmxlZDohMX0sdGlja1BsYWNlbWVudDoiYmV0d2VlbiIsY3Jvc3NoYWlyczp7d2lkdGg6ImJhcldpZHRoIixwb3NpdGlvbjoiYmFjayIsZmlsbDp7dHlwZToiZ3JhZGllbnQifSxkcm9wU2hhZG93OntlbmFibGVkOiExfSxzdHJva2U6e3dpZHRoOjB9fX19fX0se2tleToiY2FuZGxlc3RpY2siLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm57c3Ryb2tlOnt3aWR0aDoxLGNvbG9yczpbIiMzMzMiXX0sZmlsbDp7b3BhY2l0eToxfSxkYXRhTGFiZWxzOntlbmFibGVkOiExfSx0b29sdGlwOntzaGFyZWQ6ITAsY3VzdG9tOmZ1bmN0aW9uKGUpe3ZhciBpPWUuc2VyaWVzSW5kZXgscz1lLmRhdGFQb2ludEluZGV4LGE9ZS53O3JldHVybiB0Ll9nZXRCb3hUb29sdGlwKGEsaSxzLFsiT3BlbiIsIkhpZ2giLCIiLCJMb3ciLCJDbG9zZSJdLCJjYW5kbGVzdGljayIpfX0sc3RhdGVzOnthY3RpdmU6e2ZpbHRlcjp7dHlwZToibm9uZSJ9fX0seGF4aXM6e2Nyb3NzaGFpcnM6e3dpZHRoOjF9fX19fSx7a2V5OiJib3hQbG90Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJue2NoYXJ0OnthbmltYXRpb25zOntkeW5hbWljQW5pbWF0aW9uOntlbmFibGVkOiExfX19LHN0cm9rZTp7d2lkdGg6MSxjb2xvcnM6WyIjMjQyOTJlIl19LGRhdGFMYWJlbHM6e2VuYWJsZWQ6ITF9LHRvb2x0aXA6e3NoYXJlZDohMCxjdXN0b206ZnVuY3Rpb24oZSl7dmFyIGk9ZS5zZXJpZXNJbmRleCxzPWUuZGF0YVBvaW50SW5kZXgsYT1lLnc7cmV0dXJuIHQuX2dldEJveFRvb2x0aXAoYSxpLHMsWyJNaW5pbXVtIiwiUTEiLCJNZWRpYW4iLCJRMyIsIk1heGltdW0iXSwiYm94UGxvdCIpfX0sbWFya2Vyczp7c2l6ZTo1LHN0cm9rZVdpZHRoOjEsc3Ryb2tlQ29sb3JzOiIjMTExIn0seGF4aXM6e2Nyb3NzaGFpcnM6e3dpZHRoOjF9fX19fSx7a2V5OiJyYW5nZUJhciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57c3Ryb2tlOnt3aWR0aDowLGxpbmVDYXA6InNxdWFyZSJ9LHBsb3RPcHRpb25zOntiYXI6e2JvcmRlclJhZGl1czowLGRhdGFMYWJlbHM6e3Bvc2l0aW9uOiJjZW50ZXIifX19LGRhdGFMYWJlbHM6e2VuYWJsZWQ6ITEsZm9ybWF0dGVyOmZ1bmN0aW9uKHQsZSl7ZS5jdHg7dmFyIGk9ZS5zZXJpZXNJbmRleCxzPWUuZGF0YVBvaW50SW5kZXgsYT1lLncsbj1mdW5jdGlvbigpe3ZhciB0PWEuZ2xvYmFscy5zZXJpZXNSYW5nZVN0YXJ0W2ldW3NdO3JldHVybiBhLmdsb2JhbHMuc2VyaWVzUmFuZ2VFbmRbaV1bc10tdH07cmV0dXJuIGEuZ2xvYmFscy5jb21ib0NoYXJ0cz8icmFuZ2VCYXIiPT09YS5jb25maWcuc2VyaWVzW2ldLnR5cGV8fCJyYW5nZUFyZWEiPT09YS5jb25maWcuc2VyaWVzW2ldLnR5cGU/bigpOnQ6bigpfSxiYWNrZ3JvdW5kOntlbmFibGVkOiExfSxzdHlsZTp7Y29sb3JzOlsiI2ZmZiJdfX0sdG9vbHRpcDp7c2hhcmVkOiExLGZvbGxvd0N1cnNvcjohMCxjdXN0b206ZnVuY3Rpb24odCl7cmV0dXJuIHQudy5jb25maWcucGxvdE9wdGlvbnMmJnQudy5jb25maWcucGxvdE9wdGlvbnMuYmFyJiZ0LncuY29uZmlnLnBsb3RPcHRpb25zLmJhci5ob3Jpem9udGFsP2Z1bmN0aW9uKHQpe3ZhciBlPUkodCksaT1lLmNvbG9yLHM9ZS5zZXJpZXNOYW1lLGE9ZS55bGFiZWwscj1lLnN0YXJ0VmFsLG89ZS5lbmRWYWw7cmV0dXJuIEYobihuKHt9LHQpLHt9LHtjb2xvcjppLHNlcmllc05hbWU6cyx5bGFiZWw6YSxzdGFydDpyLGVuZDpvfSkpfSh0KTpmdW5jdGlvbih0KXt2YXIgZT1JKHQpLGk9ZS5jb2xvcixzPWUuc2VyaWVzTmFtZSxhPWUueWxhYmVsLHI9ZS5zdGFydCxvPWUuZW5kO3JldHVybiBGKG4obih7fSx0KSx7fSx7Y29sb3I6aSxzZXJpZXNOYW1lOnMseWxhYmVsOmEsc3RhcnQ6cixlbmQ6b30pKX0odCl9fSx4YXhpczp7dGlja1BsYWNlbWVudDoiYmV0d2VlbiIsdG9vbHRpcDp7ZW5hYmxlZDohMX0sY3Jvc3NoYWlyczp7c3Ryb2tlOnt3aWR0aDowfX19fX19LHtrZXk6ImFyZWEiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3N0cm9rZTp7d2lkdGg6NCxmaWxsOnt0eXBlOiJzb2xpZCIsZ3JhZGllbnQ6e2ludmVyc2VDb2xvcnM6ITEsc2hhZGU6ImxpZ2h0Iix0eXBlOiJ2ZXJ0aWNhbCIsb3BhY2l0eUZyb206LjY1LG9wYWNpdHlUbzouNSxzdG9wczpbMCwxMDAsMTAwXX19fSxmaWxsOnt0eXBlOiJncmFkaWVudCIsZ3JhZGllbnQ6e2ludmVyc2VDb2xvcnM6ITEsc2hhZGU6ImxpZ2h0Iix0eXBlOiJ2ZXJ0aWNhbCIsb3BhY2l0eUZyb206LjY1LG9wYWNpdHlUbzouNSxzdG9wczpbMCwxMDAsMTAwXX19LG1hcmtlcnM6e3NpemU6MCxob3Zlcjp7c2l6ZU9mZnNldDo2fX0sdG9vbHRpcDp7Zm9sbG93Q3Vyc29yOiExfX19fSx7a2V5OiJyYW5nZUFyZWEiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3N0cm9rZTp7Y3VydmU6InN0cmFpZ2h0Iix3aWR0aDowfSxmaWxsOnt0eXBlOiJzb2xpZCIsb3BhY2l0eTouNn0sbWFya2Vyczp7c2l6ZTowfSxzdGF0ZXM6e2hvdmVyOntmaWx0ZXI6e3R5cGU6Im5vbmUifX0sYWN0aXZlOntmaWx0ZXI6e3R5cGU6Im5vbmUifX19LHRvb2x0aXA6e2ludGVyc2VjdDohMSxzaGFyZWQ6ITAsZm9sbG93Q3Vyc29yOiEwLGN1c3RvbTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9SSh0KSxpPWUuY29sb3Iscz1lLnNlcmllc05hbWUsYT1lLnlsYWJlbCxyPWUuc3RhcnQsbz1lLmVuZDtyZXR1cm4gRihuKG4oe30sdCkse30se2NvbG9yOmksc2VyaWVzTmFtZTpzLHlsYWJlbDphLHN0YXJ0OnIsZW5kOm99KSl9KHQpfX19fX0se2tleToiYnJ1c2giLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBiLmV4dGVuZCh0LHtjaGFydDp7dG9vbGJhcjp7YXV0b1NlbGVjdGVkOiJzZWxlY3Rpb24iLHNob3c6ITF9LHpvb206e2VuYWJsZWQ6ITF9fSxkYXRhTGFiZWxzOntlbmFibGVkOiExfSxzdHJva2U6e3dpZHRoOjF9LHRvb2x0aXA6e2VuYWJsZWQ6ITF9LHhheGlzOnt0b29sdGlwOntlbmFibGVkOiExfX19KX19LHtrZXk6InN0YWNrZWQxMDAiLHZhbHVlOmZ1bmN0aW9uKHQpe3QuZGF0YUxhYmVscz10LmRhdGFMYWJlbHN8fHt9LHQuZGF0YUxhYmVscy5mb3JtYXR0ZXI9dC5kYXRhTGFiZWxzLmZvcm1hdHRlcnx8dm9pZCAwO3ZhciBlPXQuZGF0YUxhYmVscy5mb3JtYXR0ZXI7cmV0dXJuIHQueWF4aXMuZm9yRWFjaCgoZnVuY3Rpb24oZSxpKXt0LnlheGlzW2ldLm1pbj0wLHQueWF4aXNbaV0ubWF4PTEwMH0pKSwiYmFyIj09PXQuY2hhcnQudHlwZSYmKHQuZGF0YUxhYmVscy5mb3JtYXR0ZXI9ZXx8ZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0P3QudG9GaXhlZCgwKSsiJSI6dH0pLHR9fSx7a2V5OiJjb252ZXJ0Q2F0VG9OdW1lcmljIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC54YXhpcy5jb252ZXJ0ZWRDYXRUb051bWVyaWM9ITAsdH19LHtrZXk6ImNvbnZlcnRDYXRUb051bWVyaWNYYXhpcyIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3QueGF4aXMudHlwZT0ibnVtZXJpYyIsdC54YXhpcy5sYWJlbHM9dC54YXhpcy5sYWJlbHN8fHt9LHQueGF4aXMubGFiZWxzLmZvcm1hdHRlcj10LnhheGlzLmxhYmVscy5mb3JtYXR0ZXJ8fGZ1bmN0aW9uKHQpe3JldHVybiBiLmlzTnVtYmVyKHQpP01hdGguZmxvb3IodCk6dH07dmFyIHM9dC54YXhpcy5sYWJlbHMuZm9ybWF0dGVyLGE9dC54YXhpcy5jYXRlZ29yaWVzJiZ0LnhheGlzLmNhdGVnb3JpZXMubGVuZ3RoP3QueGF4aXMuY2F0ZWdvcmllczp0LmxhYmVscztyZXR1cm4gaSYmaS5sZW5ndGgmJihhPWkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90OlN0cmluZyh0KX0pKSksYSYmYS5sZW5ndGgmJih0LnhheGlzLmxhYmVscy5mb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGIuaXNOdW1iZXIodCk/cyhhW01hdGguZmxvb3IodCktMV0pOnModCl9KSx0LnhheGlzLmNhdGVnb3JpZXM9W10sdC5sYWJlbHM9W10sdC54YXhpcy50aWNrQW1vdW50PXQueGF4aXMudGlja0Ftb3VudHx8ImRhdGFQb2ludHMiLHR9fSx7a2V5OiJidWJibGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue2RhdGFMYWJlbHM6e3N0eWxlOntjb2xvcnM6WyIjZmZmIl19fSx0b29sdGlwOntzaGFyZWQ6ITEsaW50ZXJzZWN0OiEwfSx4YXhpczp7Y3Jvc3NoYWlyczp7d2lkdGg6MH19LGZpbGw6e3R5cGU6InNvbGlkIixncmFkaWVudDp7c2hhZGU6ImxpZ2h0IixpbnZlcnNlOiEwLHNoYWRlSW50ZW5zaXR5Oi41NSxvcGFjaXR5RnJvbTouNCxvcGFjaXR5VG86Ljh9fX19fSx7a2V5OiJzY2F0dGVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybntkYXRhTGFiZWxzOntlbmFibGVkOiExfSx0b29sdGlwOntzaGFyZWQ6ITEsaW50ZXJzZWN0OiEwfSxtYXJrZXJzOntzaXplOjYsc3Ryb2tlV2lkdGg6MSxob3Zlcjp7c2l6ZU9mZnNldDoyfX19fX0se2tleToiaGVhdG1hcCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57Y2hhcnQ6e3N0YWNrZWQ6ITF9LGZpbGw6e29wYWNpdHk6MX0sZGF0YUxhYmVsczp7c3R5bGU6e2NvbG9yczpbIiNmZmYiXX19LHN0cm9rZTp7Y29sb3JzOlsiI2ZmZiJdfSx0b29sdGlwOntmb2xsb3dDdXJzb3I6ITAsbWFya2VyOntzaG93OiExfSx4OntzaG93OiExfX0sbGVnZW5kOntwb3NpdGlvbjoidG9wIixtYXJrZXJzOntzaGFwZToic3F1YXJlIixzaXplOjEwLG9mZnNldFk6Mn19LGdyaWQ6e3BhZGRpbmc6e3JpZ2h0OjIwfX19fX0se2tleToidHJlZW1hcCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57Y2hhcnQ6e3pvb206e2VuYWJsZWQ6ITF9fSxkYXRhTGFiZWxzOntzdHlsZTp7Zm9udFNpemU6MTQsZm9udFdlaWdodDo2MDAsY29sb3JzOlsiI2ZmZiJdfX0sc3Ryb2tlOntzaG93OiEwLHdpZHRoOjIsY29sb3JzOlsiI2ZmZiJdfSxsZWdlbmQ6e3Nob3c6ITF9LGZpbGw6e2dyYWRpZW50OntzdG9wczpbMCwxMDBdfX0sdG9vbHRpcDp7Zm9sbG93Q3Vyc29yOiEwLHg6e3Nob3c6ITF9fSxncmlkOntwYWRkaW5nOntsZWZ0OjAscmlnaHQ6MH19LHhheGlzOntjcm9zc2hhaXJzOntzaG93OiExfSx0b29sdGlwOntlbmFibGVkOiExfX19fX0se2tleToicGllIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybntjaGFydDp7dG9vbGJhcjp7c2hvdzohMX19LHBsb3RPcHRpb25zOntwaWU6e2RvbnV0OntsYWJlbHM6e3Nob3c6ITF9fX19LGRhdGFMYWJlbHM6e2Zvcm1hdHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdC50b0ZpeGVkKDEpKyIlIn0sc3R5bGU6e2NvbG9yczpbIiNmZmYiXX0sYmFja2dyb3VuZDp7ZW5hYmxlZDohMX0sZHJvcFNoYWRvdzp7ZW5hYmxlZDohMH19LHN0cm9rZTp7Y29sb3JzOlsiI2ZmZiJdfSxmaWxsOntvcGFjaXR5OjEsZ3JhZGllbnQ6e3NoYWRlOiJsaWdodCIsc3RvcHM6WzAsMTAwXX19LHRvb2x0aXA6e3RoZW1lOiJkYXJrIixmaWxsU2VyaWVzQ29sb3I6ITB9LGxlZ2VuZDp7cG9zaXRpb246InJpZ2h0In19fX0se2tleToiZG9udXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue2NoYXJ0Ont0b29sYmFyOntzaG93OiExfX0sZGF0YUxhYmVsczp7Zm9ybWF0dGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRvRml4ZWQoMSkrIiUifSxzdHlsZTp7Y29sb3JzOlsiI2ZmZiJdfSxiYWNrZ3JvdW5kOntlbmFibGVkOiExfSxkcm9wU2hhZG93OntlbmFibGVkOiEwfX0sc3Ryb2tlOntjb2xvcnM6WyIjZmZmIl19LGZpbGw6e29wYWNpdHk6MSxncmFkaWVudDp7c2hhZGU6ImxpZ2h0IixzaGFkZUludGVuc2l0eTouMzUsc3RvcHM6WzgwLDEwMF0sb3BhY2l0eUZyb206MSxvcGFjaXR5VG86MX19LHRvb2x0aXA6e3RoZW1lOiJkYXJrIixmaWxsU2VyaWVzQ29sb3I6ITB9LGxlZ2VuZDp7cG9zaXRpb246InJpZ2h0In19fX0se2tleToicG9sYXJBcmVhIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdHMueWF4aXNbMF0udGlja0Ftb3VudD10aGlzLm9wdHMueWF4aXNbMF0udGlja0Ftb3VudD90aGlzLm9wdHMueWF4aXNbMF0udGlja0Ftb3VudDo2LHtjaGFydDp7dG9vbGJhcjp7c2hvdzohMX19LGRhdGFMYWJlbHM6e2Zvcm1hdHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdC50b0ZpeGVkKDEpKyIlIn0sZW5hYmxlZDohMX0sc3Ryb2tlOntzaG93OiEwLHdpZHRoOjJ9LGZpbGw6e29wYWNpdHk6Ljd9LHRvb2x0aXA6e3RoZW1lOiJkYXJrIixmaWxsU2VyaWVzQ29sb3I6ITB9LGxlZ2VuZDp7cG9zaXRpb246InJpZ2h0In19fX0se2tleToicmFkYXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0cy55YXhpc1swXS5sYWJlbHMub2Zmc2V0WT10aGlzLm9wdHMueWF4aXNbMF0ubGFiZWxzLm9mZnNldFk/dGhpcy5vcHRzLnlheGlzWzBdLmxhYmVscy5vZmZzZXRZOjYse2RhdGFMYWJlbHM6e2VuYWJsZWQ6ITEsc3R5bGU6e2ZvbnRTaXplOiIxMXB4In19LHN0cm9rZTp7d2lkdGg6Mn0sbWFya2Vyczp7c2l6ZTozLHN0cm9rZVdpZHRoOjEsc3Ryb2tlT3BhY2l0eToxfSxmaWxsOntvcGFjaXR5Oi4yfSx0b29sdGlwOntzaGFyZWQ6ITEsaW50ZXJzZWN0OiEwLGZvbGxvd0N1cnNvcjohMH0sZ3JpZDp7c2hvdzohMX0seGF4aXM6e2xhYmVsczp7Zm9ybWF0dGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0fSxzdHlsZTp7Y29sb3JzOlsiI2E4YThhOCJdLGZvbnRTaXplOiIxMXB4In19LHRvb2x0aXA6e2VuYWJsZWQ6ITF9LGNyb3NzaGFpcnM6e3Nob3c6ITF9fX19fSx7a2V5OiJyYWRpYWxCYXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue2NoYXJ0OnthbmltYXRpb25zOntkeW5hbWljQW5pbWF0aW9uOntlbmFibGVkOiEwLHNwZWVkOjgwMH19LHRvb2xiYXI6e3Nob3c6ITF9fSxmaWxsOntncmFkaWVudDp7c2hhZGU6ImRhcmsiLHNoYWRlSW50ZW5zaXR5Oi40LGludmVyc2VDb2xvcnM6ITEsdHlwZToiZGlhZ29uYWwyIixvcGFjaXR5RnJvbToxLG9wYWNpdHlUbzoxLHN0b3BzOls3MCw5OCwxMDBdfX0sbGVnZW5kOntzaG93OiExLHBvc2l0aW9uOiJyaWdodCJ9LHRvb2x0aXA6e2VuYWJsZWQ6ITEsZmlsbFNlcmllc0NvbG9yOiEwfX19fSx7a2V5OiJfZ2V0Qm94VG9vbHRpcCIsdmFsdWU6ZnVuY3Rpb24odCxlLGkscyxhKXt2YXIgbj10Lmdsb2JhbHMuc2VyaWVzQ2FuZGxlT1tlXVtpXSxyPXQuZ2xvYmFscy5zZXJpZXNDYW5kbGVIW2VdW2ldLG89dC5nbG9iYWxzLnNlcmllc0NhbmRsZU1bZV1baV0sbD10Lmdsb2JhbHMuc2VyaWVzQ2FuZGxlTFtlXVtpXSxjPXQuZ2xvYmFscy5zZXJpZXNDYW5kbGVDW2VdW2ldO3JldHVybiB0LmNvbmZpZy5zZXJpZXNbZV0udHlwZSYmdC5jb25maWcuc2VyaWVzW2VdLnR5cGUhPT1hPyc8ZGl2IGNsYXNzPSJhcGV4Y2hhcnRzLWN1c3RvbS10b29sdGlwIj5cbiAgICAgICAgICAnLmNvbmNhdCh0LmNvbmZpZy5zZXJpZXNbZV0ubmFtZT90LmNvbmZpZy5zZXJpZXNbZV0ubmFtZToic2VyaWVzLSIrKGUrMSksIjogPHN0cm9uZz4iKS5jb25jYXQodC5nbG9iYWxzLnNlcmllc1tlXVtpXSwiPC9zdHJvbmc+XG4gICAgICAgIDwvZGl2PiIpOic8ZGl2IGNsYXNzPSJhcGV4Y2hhcnRzLXRvb2x0aXAtYm94IGFwZXhjaGFydHMtdG9vbHRpcC0nLmNvbmNhdCh0LmNvbmZpZy5jaGFydC50eXBlLCciPicpKyI8ZGl2PiIuY29uY2F0KHNbMF0sJzogPHNwYW4gY2xhc3M9InZhbHVlIj4nKStuKyI8L3NwYW4+PC9kaXY+IisiPGRpdj4iLmNvbmNhdChzWzFdLCc6IDxzcGFuIGNsYXNzPSJ2YWx1ZSI+JykrcisiPC9zcGFuPjwvZGl2PiIrKG8/IjxkaXY+Ii5jb25jYXQoc1syXSwnOiA8c3BhbiBjbGFzcz0idmFsdWUiPicpK28rIjwvc3Bhbj48L2Rpdj4iOiIiKSsiPGRpdj4iLmNvbmNhdChzWzNdLCc6IDxzcGFuIGNsYXNzPSJ2YWx1ZSI+JykrbCsiPC9zcGFuPjwvZGl2PiIrIjxkaXY+Ii5jb25jYXQoc1s0XSwnOiA8c3BhbiBjbGFzcz0idmFsdWUiPicpK2MrIjwvc3Bhbj48L2Rpdj48L2Rpdj4ifX1dKSx0fSgpLHo9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLm9wdHM9ZX1yZXR1cm4gYyh0LFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LnJlc3BvbnNpdmVPdmVycmlkZSxpPXRoaXMub3B0cyxzPW5ldyBQLGE9bmV3IEQoaSk7dGhpcy5jaGFydFR5cGU9aS5jaGFydC50eXBlLCJoaXN0b2dyYW0iPT09dGhpcy5jaGFydFR5cGUmJihpLmNoYXJ0LnR5cGU9ImJhciIsaT1iLmV4dGVuZCh7cGxvdE9wdGlvbnM6e2Jhcjp7Y29sdW1uV2lkdGg6Ijk5Ljk5JSJ9fX0saSkpLGk9dGhpcy5leHRlbmRZQXhpcyhpKSxpPXRoaXMuZXh0ZW5kQW5ub3RhdGlvbnMoaSk7dmFyIG49cy5pbml0KCksbz17fTtpZihpJiYib2JqZWN0Ij09PXIoaSkpe3ZhciBsPXt9O2w9LTEhPT1bImxpbmUiLCJhcmVhIiwiYmFyIiwiY2FuZGxlc3RpY2siLCJib3hQbG90IiwicmFuZ2VCYXIiLCJyYW5nZUFyZWEiLCJoaXN0b2dyYW0iLCJidWJibGUiLCJzY2F0dGVyIiwiaGVhdG1hcCIsInRyZWVtYXAiLCJwaWUiLCJwb2xhckFyZWEiLCJkb251dCIsInJhZGFyIiwicmFkaWFsQmFyIl0uaW5kZXhPZihpLmNoYXJ0LnR5cGUpP2FbaS5jaGFydC50eXBlXSgpOmEubGluZSgpLGkuY2hhcnQuYnJ1c2gmJmkuY2hhcnQuYnJ1c2guZW5hYmxlZCYmKGw9YS5icnVzaChsKSksaS5jaGFydC5zdGFja2VkJiYiMTAwJSI9PT1pLmNoYXJ0LnN0YWNrVHlwZSYmKGk9YS5zdGFja2VkMTAwKGkpKSx0aGlzLmNoZWNrRm9yRGFya1RoZW1lKHdpbmRvdy5BcGV4KSx0aGlzLmNoZWNrRm9yRGFya1RoZW1lKGkpLGkueGF4aXM9aS54YXhpc3x8d2luZG93LkFwZXgueGF4aXN8fHt9LGV8fChpLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYz0hMSksKChpPXRoaXMuY2hlY2tGb3JDYXRUb051bWVyaWNYQXhpcyh0aGlzLmNoYXJ0VHlwZSxsLGkpKS5jaGFydC5zcGFya2xpbmUmJmkuY2hhcnQuc3BhcmtsaW5lLmVuYWJsZWR8fHdpbmRvdy5BcGV4LmNoYXJ0JiZ3aW5kb3cuQXBleC5jaGFydC5zcGFya2xpbmUmJndpbmRvdy5BcGV4LmNoYXJ0LnNwYXJrbGluZS5lbmFibGVkKSYmKGw9YS5zcGFya2xpbmUobCkpLG89Yi5leHRlbmQobixsKX12YXIgYz1iLmV4dGVuZChvLHdpbmRvdy5BcGV4KTtyZXR1cm4gbj1iLmV4dGVuZChjLGkpLHRoaXMuaGFuZGxlVXNlcklucHV0RXJyb3JzKG4pfX0se2tleToiY2hlY2tGb3JDYXRUb051bWVyaWNYQXhpcyIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPW5ldyBEKGkpLGE9KCJiYXIiPT09dHx8ImJveFBsb3QiPT09dCkmJmkucGxvdE9wdGlvbnMmJmkucGxvdE9wdGlvbnMuYmFyJiZpLnBsb3RPcHRpb25zLmJhci5ob3Jpem9udGFsLG49InBpZSI9PT10fHwicG9sYXJBcmVhIj09PXR8fCJkb251dCI9PT10fHwicmFkYXIiPT09dHx8InJhZGlhbEJhciI9PT10fHwiaGVhdG1hcCI9PT10LHI9ImRhdGV0aW1lIiE9PWkueGF4aXMudHlwZSYmIm51bWVyaWMiIT09aS54YXhpcy50eXBlLG89aS54YXhpcy50aWNrUGxhY2VtZW50P2kueGF4aXMudGlja1BsYWNlbWVudDplLnhheGlzJiZlLnhheGlzLnRpY2tQbGFjZW1lbnQ7cmV0dXJuIGF8fG58fCFyfHwiYmV0d2VlbiI9PT1vfHwoaT1zLmNvbnZlcnRDYXRUb051bWVyaWMoaSkpLGl9fSx7a2V5OiJleHRlbmRZQXhpcyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT1uZXcgUDsodm9pZCAwPT09dC55YXhpc3x8IXQueWF4aXN8fEFycmF5LmlzQXJyYXkodC55YXhpcykmJjA9PT10LnlheGlzLmxlbmd0aCkmJih0LnlheGlzPXt9KSx0LnlheGlzLmNvbnN0cnVjdG9yIT09QXJyYXkmJndpbmRvdy5BcGV4LnlheGlzJiZ3aW5kb3cuQXBleC55YXhpcy5jb25zdHJ1Y3RvciE9PUFycmF5JiYodC55YXhpcz1iLmV4dGVuZCh0LnlheGlzLHdpbmRvdy5BcGV4LnlheGlzKSksdC55YXhpcy5jb25zdHJ1Y3RvciE9PUFycmF5P3QueWF4aXM9W2IuZXh0ZW5kKGkueUF4aXMsdC55YXhpcyldOnQueWF4aXM9Yi5leHRlbmRBcnJheSh0LnlheGlzLGkueUF4aXMpO3ZhciBzPSExO3QueWF4aXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5sb2dhcml0aG1pYyYmKHM9ITApfSkpO3ZhciBhPXQuc2VyaWVzO3JldHVybiBlJiYhYSYmKGE9ZS5jb25maWcuc2VyaWVzKSxzJiZhLmxlbmd0aCE9PXQueWF4aXMubGVuZ3RoJiZhLmxlbmd0aCYmKHQueWF4aXM9YS5tYXAoKGZ1bmN0aW9uKGUscyl7aWYoZS5uYW1lfHwoYVtzXS5uYW1lPSJzZXJpZXMtIi5jb25jYXQocysxKSksdC55YXhpc1tzXSlyZXR1cm4gdC55YXhpc1tzXS5zZXJpZXNOYW1lPWFbc10ubmFtZSx0LnlheGlzW3NdO3ZhciBuPWIuZXh0ZW5kKGkueUF4aXMsdC55YXhpc1swXSk7cmV0dXJuIG4uc2hvdz0hMSxufSkpKSxzJiZhLmxlbmd0aD4xJiZhLmxlbmd0aCE9PXQueWF4aXMubGVuZ3RoJiZjb25zb2xlLndhcm4oIkEgbXVsdGktc2VyaWVzIGxvZ2FyaXRobWljIGNoYXJ0IHNob3VsZCBoYXZlIGVxdWFsIG51bWJlciBvZiBzZXJpZXMgYW5kIHktYXhlcy4gUGxlYXNlIG1ha2Ugc3VyZSB0byBlcXVhbGl6ZSBib3RoLiIpLHR9fSx7a2V5OiJleHRlbmRBbm5vdGF0aW9ucyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQuYW5ub3RhdGlvbnMmJih0LmFubm90YXRpb25zPXt9LHQuYW5ub3RhdGlvbnMueWF4aXM9W10sdC5hbm5vdGF0aW9ucy54YXhpcz1bXSx0LmFubm90YXRpb25zLnBvaW50cz1bXSksdD10aGlzLmV4dGVuZFlBeGlzQW5ub3RhdGlvbnModCksdD10aGlzLmV4dGVuZFhBeGlzQW5ub3RhdGlvbnModCksdGhpcy5leHRlbmRQb2ludEFubm90YXRpb25zKHQpfX0se2tleToiZXh0ZW5kWUF4aXNBbm5vdGF0aW9ucyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFA7cmV0dXJuIHQuYW5ub3RhdGlvbnMueWF4aXM9Yi5leHRlbmRBcnJheSh2b2lkIDAhPT10LmFubm90YXRpb25zLnlheGlzP3QuYW5ub3RhdGlvbnMueWF4aXM6W10sZS55QXhpc0Fubm90YXRpb24pLHR9fSx7a2V5OiJleHRlbmRYQXhpc0Fubm90YXRpb25zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1uZXcgUDtyZXR1cm4gdC5hbm5vdGF0aW9ucy54YXhpcz1iLmV4dGVuZEFycmF5KHZvaWQgMCE9PXQuYW5ub3RhdGlvbnMueGF4aXM/dC5hbm5vdGF0aW9ucy54YXhpczpbXSxlLnhBeGlzQW5ub3RhdGlvbiksdH19LHtrZXk6ImV4dGVuZFBvaW50QW5ub3RhdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBQO3JldHVybiB0LmFubm90YXRpb25zLnBvaW50cz1iLmV4dGVuZEFycmF5KHZvaWQgMCE9PXQuYW5ub3RhdGlvbnMucG9pbnRzP3QuYW5ub3RhdGlvbnMucG9pbnRzOltdLGUucG9pbnRBbm5vdGF0aW9uKSx0fX0se2tleToiY2hlY2tGb3JEYXJrVGhlbWUiLHZhbHVlOmZ1bmN0aW9uKHQpe3QudGhlbWUmJiJkYXJrIj09PXQudGhlbWUubW9kZSYmKHQudG9vbHRpcHx8KHQudG9vbHRpcD17fSksImxpZ2h0IiE9PXQudG9vbHRpcC50aGVtZSYmKHQudG9vbHRpcC50aGVtZT0iZGFyayIpLHQuY2hhcnQuZm9yZUNvbG9yfHwodC5jaGFydC5mb3JlQ29sb3I9IiNmNmY3ZjgiKSx0LmNoYXJ0LmJhY2tncm91bmR8fCh0LmNoYXJ0LmJhY2tncm91bmQ9IiM0MjQyNDIiKSx0LnRoZW1lLnBhbGV0dGV8fCh0LnRoZW1lLnBhbGV0dGU9InBhbGV0dGU0IikpfX0se2tleToiaGFuZGxlVXNlcklucHV0RXJyb3JzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10O2lmKGUudG9vbHRpcC5zaGFyZWQmJmUudG9vbHRpcC5pbnRlcnNlY3QpdGhyb3cgbmV3IEVycm9yKCJ0b29sdGlwLnNoYXJlZCBjYW5ub3QgYmUgZW5hYmxlZCB3aGVuIHRvb2x0aXAuaW50ZXJzZWN0IGlzIHRydWUuIFR1cm4gb2ZmIGFueSBvdGhlciBvcHRpb24gYnkgc2V0dGluZyBpdCB0byBmYWxzZS4iKTtpZigiYmFyIj09PWUuY2hhcnQudHlwZSYmZS5wbG90T3B0aW9ucy5iYXIuaG9yaXpvbnRhbCl7aWYoZS55YXhpcy5sZW5ndGg+MSl0aHJvdyBuZXcgRXJyb3IoIk11bHRpcGxlIFkgQXhpcyBmb3IgYmFycyBhcmUgbm90IHN1cHBvcnRlZC4gU3dpdGNoIHRvIGNvbHVtbiBjaGFydCBieSBzZXR0aW5nIHBsb3RPcHRpb25zLmJhci5ob3Jpem9udGFsPWZhbHNlIik7ZS55YXhpc1swXS5yZXZlcnNlZCYmKGUueWF4aXNbMF0ub3Bwb3NpdGU9ITApLGUueGF4aXMudG9vbHRpcC5lbmFibGVkPSExLGUueWF4aXNbMF0udG9vbHRpcC5lbmFibGVkPSExLGUuY2hhcnQuem9vbS5lbmFibGVkPSExfXJldHVybiJiYXIiIT09ZS5jaGFydC50eXBlJiYicmFuZ2VCYXIiIT09ZS5jaGFydC50eXBlfHxlLnRvb2x0aXAuc2hhcmVkJiYiYmFyV2lkdGgiPT09ZS54YXhpcy5jcm9zc2hhaXJzLndpZHRoJiZlLnNlcmllcy5sZW5ndGg+MSYmKGUueGF4aXMuY3Jvc3NoYWlycy53aWR0aD0idGlja1dpZHRoIiksImNhbmRsZXN0aWNrIiE9PWUuY2hhcnQudHlwZSYmImJveFBsb3QiIT09ZS5jaGFydC50eXBlfHxlLnlheGlzWzBdLnJldmVyc2VkJiYoY29uc29sZS53YXJuKCJSZXZlcnNlZCB5LWF4aXMgaW4gIi5jb25jYXQoZS5jaGFydC50eXBlLCIgY2hhcnQgaXMgbm90IHN1cHBvcnRlZC4iKSksZS55YXhpc1swXS5yZXZlcnNlZD0hMSksZX19XSksdH0oKSxOPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe28odGhpcyx0KX1yZXR1cm4gYyh0LFt7a2V5OiJpbml0R2xvYmFsVmFycyIsdmFsdWU6ZnVuY3Rpb24odCl7dC5zZXJpZXM9W10sdC5zZXJpZXNDYW5kbGVPPVtdLHQuc2VyaWVzQ2FuZGxlSD1bXSx0LnNlcmllc0NhbmRsZU09W10sdC5zZXJpZXNDYW5kbGVMPVtdLHQuc2VyaWVzQ2FuZGxlQz1bXSx0LnNlcmllc1JhbmdlU3RhcnQ9W10sdC5zZXJpZXNSYW5nZUVuZD1bXSx0LnNlcmllc1JhbmdlPVtdLHQuc2VyaWVzUGVyY2VudD1bXSx0LnNlcmllc0dvYWxzPVtdLHQuc2VyaWVzWD1bXSx0LnNlcmllc1o9W10sdC5zZXJpZXNOYW1lcz1bXSx0LnNlcmllc1RvdGFscz1bXSx0LnNlcmllc0xvZz1bXSx0LnNlcmllc0NvbG9ycz1bXSx0LnN0YWNrZWRTZXJpZXNUb3RhbHM9W10sdC5zZXJpZXNYdmFsdWVzPVtdLHQuc2VyaWVzWXZhbHVlcz1bXSx0LmxhYmVscz1bXSx0Lmhhc0dyb3Vwcz0hMSx0Lmdyb3Vwcz1bXSx0LmNhdGVnb3J5TGFiZWxzPVtdLHQudGltZXNjYWxlTGFiZWxzPVtdLHQubm9MYWJlbHNQcm92aWRlZD0hMSx0LnJlc2l6ZVRpbWVyPW51bGwsdC5zZWxlY3Rpb25SZXNpemVUaW1lcj1udWxsLHQuZGVsYXllZEVsZW1lbnRzPVtdLHQucG9pbnRzQXJyYXk9W10sdC5kYXRhTGFiZWxzUmVjdHM9W10sdC5pc1hOdW1lcmljPSExLHQueGF4aXNMYWJlbHNDb3VudD0wLHQuc2tpcExhc3RUaW1lbGluZWxhYmVsPSExLHQuc2tpcEZpcnN0VGltZWxpbmVsYWJlbD0hMSx0LmlzRGF0YVhZWj0hMSx0LmlzTXVsdGlMaW5lWD0hMSx0LmlzTXVsdGlwbGVZQXhpcz0hMSx0Lm1heFk9LU51bWJlci5NQVhfVkFMVUUsdC5taW5ZPU51bWJlci5NSU5fVkFMVUUsdC5taW5ZQXJyPVtdLHQubWF4WUFycj1bXSx0Lm1heFg9LU51bWJlci5NQVhfVkFMVUUsdC5taW5YPU51bWJlci5NQVhfVkFMVUUsdC5pbml0aWFsTWF4WD0tTnVtYmVyLk1BWF9WQUxVRSx0LmluaXRpYWxNaW5YPU51bWJlci5NQVhfVkFMVUUsdC5tYXhEYXRlPTAsdC5taW5EYXRlPU51bWJlci5NQVhfVkFMVUUsdC5taW5aPU51bWJlci5NQVhfVkFMVUUsdC5tYXhaPS1OdW1iZXIuTUFYX1ZBTFVFLHQubWluWERpZmY9TnVtYmVyLk1BWF9WQUxVRSx0LnlBeGlzU2NhbGU9W10sdC54QXhpc1NjYWxlPW51bGwsdC54QXhpc1RpY2tzUG9zaXRpb25zPVtdLHQueUxhYmVsc0Nvb3Jkcz1bXSx0LnlUaXRsZUNvb3Jkcz1bXSx0LmJhclBhZEZvck51bWVyaWNBeGlzPTAsdC5wYWRIb3Jpem9udGFsPTAsdC54UmFuZ2U9MCx0LnlSYW5nZT1bXSx0LnpSYW5nZT0wLHQuZGF0YVBvaW50cz0wLHQueFRpY2tBbW91bnQ9MH19LHtrZXk6Imdsb2JhbFZhcnMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybntjaGFydElEOm51bGwsY3VpZDpudWxsLGV2ZW50czp7YmVmb3JlTW91bnQ6W10sbW91bnRlZDpbXSx1cGRhdGVkOltdLGNsaWNrZWQ6W10sc2VsZWN0aW9uOltdLGRhdGFQb2ludFNlbGVjdGlvbjpbXSx6b29tZWQ6W10sc2Nyb2xsZWQ6W119LGNvbG9yczpbXSxjbGllbnRYOm51bGwsY2xpZW50WTpudWxsLGZpbGw6e2NvbG9yczpbXX0sc3Ryb2tlOntjb2xvcnM6W119LGRhdGFMYWJlbHM6e3N0eWxlOntjb2xvcnM6W119fSxyYWRhclBvbHlnb25zOntmaWxsOntjb2xvcnM6W119fSxtYXJrZXJzOntjb2xvcnM6W10sc2l6ZTp0Lm1hcmtlcnMuc2l6ZSxsYXJnZXN0U2l6ZTowfSxhbmltYXRpb25FbmRlZDohMSxpc1RvdWNoRGV2aWNlOiJvbnRvdWNoc3RhcnQiaW4gd2luZG93fHxuYXZpZ2F0b3IubXNNYXhUb3VjaFBvaW50cyxpc0RpcnR5OiExLGlzRXhlY0NhbGxlZDohMSxpbml0aWFsQ29uZmlnOm51bGwsaW5pdGlhbFNlcmllczpbXSxsYXN0WEF4aXM6W10sbGFzdFlBeGlzOltdLGNvbHVtblNlcmllczpudWxsLGxhYmVsczpbXSx0aW1lc2NhbGVMYWJlbHM6W10sbm9MYWJlbHNQcm92aWRlZDohMSxhbGxTZXJpZXNDb2xsYXBzZWQ6ITEsY29sbGFwc2VkU2VyaWVzOltdLGNvbGxhcHNlZFNlcmllc0luZGljZXM6W10sYW5jaWxsYXJ5Q29sbGFwc2VkU2VyaWVzOltdLGFuY2lsbGFyeUNvbGxhcHNlZFNlcmllc0luZGljZXM6W10scmlzaW5nU2VyaWVzOltdLGRhdGFGb3JtYXRYTnVtZXJpYzohMSxjYXB0dXJlZFNlcmllc0luZGV4Oi0xLGNhcHR1cmVkRGF0YVBvaW50SW5kZXg6LTEsc2VsZWN0ZWREYXRhUG9pbnRzOltdLGdvbGRlblBhZGRpbmc6MzUsaW52YWxpZExvZ1NjYWxlOiExLGlnbm9yZVlBeGlzSW5kZXhlczpbXSx5QXhpc1NhbWVTY2FsZUluZGljZXM6W10sbWF4VmFsc0luQXJyYXlJbmRleDowLHJhZGlhbFNpemU6MCxzZWxlY3Rpb246dm9pZCAwLHpvb21FbmFibGVkOiJ6b29tIj09PXQuY2hhcnQudG9vbGJhci5hdXRvU2VsZWN0ZWQmJnQuY2hhcnQudG9vbGJhci50b29scy56b29tJiZ0LmNoYXJ0Lnpvb20uZW5hYmxlZCxwYW5FbmFibGVkOiJwYW4iPT09dC5jaGFydC50b29sYmFyLmF1dG9TZWxlY3RlZCYmdC5jaGFydC50b29sYmFyLnRvb2xzLnBhbixzZWxlY3Rpb25FbmFibGVkOiJzZWxlY3Rpb24iPT09dC5jaGFydC50b29sYmFyLmF1dG9TZWxlY3RlZCYmdC5jaGFydC50b29sYmFyLnRvb2xzLnNlbGVjdGlvbix5YXhpczpudWxsLG1vdXNlZG93bjohMSxsYXN0Q2xpZW50UG9zaXRpb246e30sdmlzaWJsZVhSYW5nZTp2b2lkIDAseVZhbHVlRGVjaW1hbDowLHRvdGFsOjAsU1ZHTlM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixzdmdXaWR0aDowLHN2Z0hlaWdodDowLG5vRGF0YTohMSxsb2NhbGU6e30sZG9tOnt9LG1lbW9yeTp7bWV0aG9kc1RvRXhlYzpbXX0sc2hvdWxkQW5pbWF0ZTohMCxza2lwTGFzdFRpbWVsaW5lbGFiZWw6ITEsc2tpcEZpcnN0VGltZWxpbmVsYWJlbDohMSxkZWxheWVkRWxlbWVudHM6W10sYXhpc0NoYXJ0czohMCxpc0RhdGFYWVo6ITEscmVzaXplZDohMSxyZXNpemVUaW1lcjpudWxsLGNvbWJvQ2hhcnRzOiExLGRhdGFDaGFuZ2VkOiExLHByZXZpb3VzUGF0aHM6W10sYWxsU2VyaWVzSGFzRXF1YWxYOiEwLHBvaW50c0FycmF5OltdLGRhdGFMYWJlbHNSZWN0czpbXSxsYXN0RHJhd25EYXRhTGFiZWxzSW5kZXhlczpbXSxoYXNOdWxsVmFsdWVzOiExLGVhc2luZzpudWxsLHpvb21lZDohMSxncmlkV2lkdGg6MCxncmlkSGVpZ2h0OjAscm90YXRlWExhYmVsczohMSxkZWZhdWx0TGFiZWxzOiExLHhMYWJlbEZvcm1hdHRlcjp2b2lkIDAseUxhYmVsRm9ybWF0dGVyczpbXSx4YXhpc1Rvb2x0aXBGb3JtYXR0ZXI6dm9pZCAwLHR0S2V5Rm9ybWF0dGVyOnZvaWQgMCx0dFZhbDp2b2lkIDAsdHRaRm9ybWF0dGVyOnZvaWQgMCxMSU5FX0hFSUdIVF9SQVRJTzoxLjYxOCx4QXhpc0xhYmVsc0hlaWdodDowLHhBeGlzR3JvdXBMYWJlbHNIZWlnaHQ6MCx4QXhpc0xhYmVsc1dpZHRoOjAseUF4aXNMYWJlbHNXaWR0aDowLHNjYWxlWDoxLHNjYWxlWToxLHRyYW5zbGF0ZVg6MCx0cmFuc2xhdGVZOjAsdHJhbnNsYXRlWUF4aXNYOltdLHlBeGlzV2lkdGhzOltdLHRyYW5zbGF0ZVhBeGlzWTowLHRyYW5zbGF0ZVhBeGlzWDowLHRvb2x0aXA6bnVsbH19fSx7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmdsb2JhbFZhcnModCk7cmV0dXJuIHRoaXMuaW5pdEdsb2JhbFZhcnMoZSksZS5pbml0aWFsQ29uZmlnPWIuZXh0ZW5kKHt9LHQpLGUuaW5pdGlhbFNlcmllcz1iLmNsb25lKHQuc2VyaWVzKSxlLmxhc3RYQXhpcz1iLmNsb25lKGUuaW5pdGlhbENvbmZpZy54YXhpcyksZS5sYXN0WUF4aXM9Yi5jbG9uZShlLmluaXRpYWxDb25maWcueWF4aXMpLGV9fV0pLHR9KCksUj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMub3B0cz1lfXJldHVybiBjKHQsW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IHoodGhpcy5vcHRzKS5pbml0KHtyZXNwb25zaXZlT3ZlcnJpZGU6ITF9KTtyZXR1cm57Y29uZmlnOnQsZ2xvYmFsczoobmV3IE4pLmluaXQodCl9fX1dKSx0fSgpLF89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLncsdGhpcy5vcHRzPW51bGwsdGhpcy5zZXJpZXNJbmRleD0wfXJldHVybiBjKHQsW3trZXk6ImNsaXBwZWRJbWdBcmVhIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncsaT1lLmNvbmZpZyxzPXBhcnNlSW50KGUuZ2xvYmFscy5ncmlkV2lkdGgsMTApLGE9cGFyc2VJbnQoZS5nbG9iYWxzLmdyaWRIZWlnaHQsMTApLG49cz5hP3M6YSxyPXQuaW1hZ2Usbz0wLGw9MDt2b2lkIDA9PT10LndpZHRoJiZ2b2lkIDA9PT10LmhlaWdodD92b2lkIDAhPT1pLmZpbGwuaW1hZ2Uud2lkdGgmJnZvaWQgMCE9PWkuZmlsbC5pbWFnZS5oZWlnaHQ/KG89aS5maWxsLmltYWdlLndpZHRoKzEsbD1pLmZpbGwuaW1hZ2UuaGVpZ2h0KToobz1uKzEsbD1uKToobz10LndpZHRoLGw9dC5oZWlnaHQpO3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhlLmdsb2JhbHMuU1ZHTlMsInBhdHRlcm4iKTtrLnNldEF0dHJzKGMse2lkOnQucGF0dGVybklELHBhdHRlcm5Vbml0czp0LnBhdHRlcm5Vbml0cz90LnBhdHRlcm5Vbml0czoidXNlclNwYWNlT25Vc2UiLHdpZHRoOm8rInB4IixoZWlnaHQ6bCsicHgifSk7dmFyIGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGUuZ2xvYmFscy5TVkdOUywiaW1hZ2UiKTtjLmFwcGVuZENoaWxkKGgpLGguc2V0QXR0cmlidXRlTlMod2luZG93LlNWRy54bGluaywiaHJlZiIsciksay5zZXRBdHRycyhoLHt4OjAseTowLHByZXNlcnZlQXNwZWN0UmF0aW86Im5vbmUiLHdpZHRoOm8rInB4IixoZWlnaHQ6bCsicHgifSksaC5zdHlsZS5vcGFjaXR5PXQub3BhY2l0eSxlLmdsb2JhbHMuZG9tLmVsRGVmcy5ub2RlLmFwcGVuZENoaWxkKGMpfX0se2tleToiZ2V0U2VyaWVzSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudztyZXR1cm4oImJhciI9PT1lLmNvbmZpZy5jaGFydC50eXBlfHwicmFuZ2VCYXIiPT09ZS5jb25maWcuY2hhcnQudHlwZSkmJmUuY29uZmlnLnBsb3RPcHRpb25zLmJhci5kaXN0cmlidXRlZHx8ImhlYXRtYXAiPT09ZS5jb25maWcuY2hhcnQudHlwZXx8InRyZWVtYXAiPT09ZS5jb25maWcuY2hhcnQudHlwZT90aGlzLnNlcmllc0luZGV4PXQuc2VyaWVzTnVtYmVyOnRoaXMuc2VyaWVzSW5kZXg9dC5zZXJpZXNOdW1iZXIlZS5nbG9iYWxzLnNlcmllcy5sZW5ndGgsdGhpcy5zZXJpZXNJbmRleH19LHtrZXk6ImZpbGxQYXRoIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnc7dGhpcy5vcHRzPXQ7dmFyIGkscyxhLG49dGhpcy53LmNvbmZpZzt0aGlzLnNlcmllc0luZGV4PXRoaXMuZ2V0U2VyaWVzSW5kZXgodCk7dmFyIHI9dGhpcy5nZXRGaWxsQ29sb3JzKClbdGhpcy5zZXJpZXNJbmRleF07dm9pZCAwIT09ZS5nbG9iYWxzLnNlcmllc0NvbG9yc1t0aGlzLnNlcmllc0luZGV4XSYmKHI9ZS5nbG9iYWxzLnNlcmllc0NvbG9yc1t0aGlzLnNlcmllc0luZGV4XSksImZ1bmN0aW9uIj09dHlwZW9mIHImJihyPXIoe3Nlcmllc0luZGV4OnRoaXMuc2VyaWVzSW5kZXgsZGF0YVBvaW50SW5kZXg6dC5kYXRhUG9pbnRJbmRleCx2YWx1ZTp0LnZhbHVlLHc6ZX0pKTt2YXIgbz10LmZpbGxUeXBlP3QuZmlsbFR5cGU6dGhpcy5nZXRGaWxsVHlwZSh0aGlzLnNlcmllc0luZGV4KSxsPUFycmF5LmlzQXJyYXkobi5maWxsLm9wYWNpdHkpP24uZmlsbC5vcGFjaXR5W3RoaXMuc2VyaWVzSW5kZXhdOm4uZmlsbC5vcGFjaXR5O3QuY29sb3ImJihyPXQuY29sb3IpO3ZhciBjPXI7aWYoLTE9PT1yLmluZGV4T2YoInJnYiIpP3IubGVuZ3RoPDkmJihjPWIuaGV4VG9SZ2JhKHIsbCkpOnIuaW5kZXhPZigicmdiYSIpPi0xJiYobD1iLmdldE9wYWNpdHlGcm9tUkdCQShyKSksdC5vcGFjaXR5JiYobD10Lm9wYWNpdHkpLCJwYXR0ZXJuIj09PW8mJihzPXRoaXMuaGFuZGxlUGF0dGVybkZpbGwoe2ZpbGxDb25maWc6dC5maWxsQ29uZmlnLHBhdHRlcm5GaWxsOnMsZmlsbENvbG9yOnIsZmlsbE9wYWNpdHk6bCxkZWZhdWx0Q29sb3I6Y30pKSwiZ3JhZGllbnQiPT09byYmKGE9dGhpcy5oYW5kbGVHcmFkaWVudEZpbGwoe2ZpbGxDb25maWc6dC5maWxsQ29uZmlnLGZpbGxDb2xvcjpyLGZpbGxPcGFjaXR5OmwsaTp0aGlzLnNlcmllc0luZGV4fSkpLCJpbWFnZSI9PT1vKXt2YXIgaD1uLmZpbGwuaW1hZ2Uuc3JjLGQ9dC5wYXR0ZXJuSUQ/dC5wYXR0ZXJuSUQ6IiI7dGhpcy5jbGlwcGVkSW1nQXJlYSh7b3BhY2l0eTpsLGltYWdlOkFycmF5LmlzQXJyYXkoaCk/dC5zZXJpZXNOdW1iZXI8aC5sZW5ndGg/aFt0LnNlcmllc051bWJlcl06aFswXTpoLHdpZHRoOnQud2lkdGg/dC53aWR0aDp2b2lkIDAsaGVpZ2h0OnQuaGVpZ2h0P3QuaGVpZ2h0OnZvaWQgMCxwYXR0ZXJuVW5pdHM6dC5wYXR0ZXJuVW5pdHMscGF0dGVybklEOiJwYXR0ZXJuIi5jb25jYXQoZS5nbG9iYWxzLmN1aWQpLmNvbmNhdCh0LnNlcmllc051bWJlcisxKS5jb25jYXQoZCl9KSxpPSJ1cmwoI3BhdHRlcm4iLmNvbmNhdChlLmdsb2JhbHMuY3VpZCkuY29uY2F0KHQuc2VyaWVzTnVtYmVyKzEpLmNvbmNhdChkLCIpIil9ZWxzZSBpPSJncmFkaWVudCI9PT1vP2E6InBhdHRlcm4iPT09bz9zOmM7cmV0dXJuIHQuc29saWQmJihpPWMpLGl9fSx7a2V5OiJnZXRGaWxsVHlwZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53O3JldHVybiBBcnJheS5pc0FycmF5KGUuY29uZmlnLmZpbGwudHlwZSk/ZS5jb25maWcuZmlsbC50eXBlW3RdOmUuY29uZmlnLmZpbGwudHlwZX19LHtrZXk6ImdldEZpbGxDb2xvcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53LGU9dC5jb25maWcsaT10aGlzLm9wdHMscz1bXTtyZXR1cm4gdC5nbG9iYWxzLmNvbWJvQ2hhcnRzPyJsaW5lIj09PXQuY29uZmlnLnNlcmllc1t0aGlzLnNlcmllc0luZGV4XS50eXBlP0FycmF5LmlzQXJyYXkodC5nbG9iYWxzLnN0cm9rZS5jb2xvcnMpP3M9dC5nbG9iYWxzLnN0cm9rZS5jb2xvcnM6cy5wdXNoKHQuZ2xvYmFscy5zdHJva2UuY29sb3JzKTpBcnJheS5pc0FycmF5KHQuZ2xvYmFscy5maWxsLmNvbG9ycyk/cz10Lmdsb2JhbHMuZmlsbC5jb2xvcnM6cy5wdXNoKHQuZ2xvYmFscy5maWxsLmNvbG9ycyk6ImxpbmUiPT09ZS5jaGFydC50eXBlP0FycmF5LmlzQXJyYXkodC5nbG9iYWxzLnN0cm9rZS5jb2xvcnMpP3M9dC5nbG9iYWxzLnN0cm9rZS5jb2xvcnM6cy5wdXNoKHQuZ2xvYmFscy5zdHJva2UuY29sb3JzKTpBcnJheS5pc0FycmF5KHQuZ2xvYmFscy5maWxsLmNvbG9ycyk/cz10Lmdsb2JhbHMuZmlsbC5jb2xvcnM6cy5wdXNoKHQuZ2xvYmFscy5maWxsLmNvbG9ycyksdm9pZCAwIT09aS5maWxsQ29sb3JzJiYocz1bXSxBcnJheS5pc0FycmF5KGkuZmlsbENvbG9ycyk/cz1pLmZpbGxDb2xvcnMuc2xpY2UoKTpzLnB1c2goaS5maWxsQ29sb3JzKSksc319LHtrZXk6ImhhbmRsZVBhdHRlcm5GaWxsIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmZpbGxDb25maWcsaT0odC5wYXR0ZXJuRmlsbCx0LmZpbGxDb2xvcikscz10LmZpbGxPcGFjaXR5LGE9dC5kZWZhdWx0Q29sb3Isbj10aGlzLncuY29uZmlnLmZpbGw7ZSYmKG49ZSk7dmFyIHI9dGhpcy5vcHRzLG89bmV3IGsodGhpcy5jdHgpLGw9QXJyYXkuaXNBcnJheShuLnBhdHRlcm4uc3Ryb2tlV2lkdGgpP24ucGF0dGVybi5zdHJva2VXaWR0aFt0aGlzLnNlcmllc0luZGV4XTpuLnBhdHRlcm4uc3Ryb2tlV2lkdGgsYz1pO3JldHVybiBBcnJheS5pc0FycmF5KG4ucGF0dGVybi5zdHlsZSk/dm9pZCAwIT09bi5wYXR0ZXJuLnN0eWxlW3Iuc2VyaWVzTnVtYmVyXT9vLmRyYXdQYXR0ZXJuKG4ucGF0dGVybi5zdHlsZVtyLnNlcmllc051bWJlcl0sbi5wYXR0ZXJuLndpZHRoLG4ucGF0dGVybi5oZWlnaHQsYyxsLHMpOmE6by5kcmF3UGF0dGVybihuLnBhdHRlcm4uc3R5bGUsbi5wYXR0ZXJuLndpZHRoLG4ucGF0dGVybi5oZWlnaHQsYyxsLHMpfX0se2tleToiaGFuZGxlR3JhZGllbnRGaWxsIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmZpbGxDb2xvcixpPXQuZmlsbE9wYWNpdHkscz10LmZpbGxDb25maWcsYT10Lmkscj10aGlzLncuY29uZmlnLmZpbGw7cyYmKHI9bihuKHt9LHIpLHMpKTt2YXIgbyxsPXRoaXMub3B0cyxjPW5ldyBrKHRoaXMuY3R4KSxoPW5ldyBiLGQ9ci5ncmFkaWVudC50eXBlLHU9ZSxwPXZvaWQgMD09PXIuZ3JhZGllbnQub3BhY2l0eUZyb20/aTpBcnJheS5pc0FycmF5KHIuZ3JhZGllbnQub3BhY2l0eUZyb20pP3IuZ3JhZGllbnQub3BhY2l0eUZyb21bYV06ci5ncmFkaWVudC5vcGFjaXR5RnJvbTt1LmluZGV4T2YoInJnYmEiKT4tMSYmKHA9Yi5nZXRPcGFjaXR5RnJvbVJHQkEodSkpO3ZhciBnPXZvaWQgMD09PXIuZ3JhZGllbnQub3BhY2l0eVRvP2k6QXJyYXkuaXNBcnJheShyLmdyYWRpZW50Lm9wYWNpdHlUbyk/ci5ncmFkaWVudC5vcGFjaXR5VG9bYV06ci5ncmFkaWVudC5vcGFjaXR5VG87aWYodm9pZCAwPT09ci5ncmFkaWVudC5ncmFkaWVudFRvQ29sb3JzfHwwPT09ci5ncmFkaWVudC5ncmFkaWVudFRvQ29sb3JzLmxlbmd0aClvPSJkYXJrIj09PXIuZ3JhZGllbnQuc2hhZGU/aC5zaGFkZUNvbG9yKC0xKnBhcnNlRmxvYXQoci5ncmFkaWVudC5zaGFkZUludGVuc2l0eSksZS5pbmRleE9mKCJyZ2IiKT4tMT9iLnJnYjJoZXgoZSk6ZSk6aC5zaGFkZUNvbG9yKHBhcnNlRmxvYXQoci5ncmFkaWVudC5zaGFkZUludGVuc2l0eSksZS5pbmRleE9mKCJyZ2IiKT4tMT9iLnJnYjJoZXgoZSk6ZSk7ZWxzZSBpZihyLmdyYWRpZW50LmdyYWRpZW50VG9Db2xvcnNbbC5zZXJpZXNOdW1iZXJdKXt2YXIgZj1yLmdyYWRpZW50LmdyYWRpZW50VG9Db2xvcnNbbC5zZXJpZXNOdW1iZXJdO289ZixmLmluZGV4T2YoInJnYmEiKT4tMSYmKGc9Yi5nZXRPcGFjaXR5RnJvbVJHQkEoZikpfWVsc2Ugbz1lO2lmKHIuZ3JhZGllbnQuZ3JhZGllbnRGcm9tJiYodT1yLmdyYWRpZW50LmdyYWRpZW50RnJvbSksci5ncmFkaWVudC5ncmFkaWVudFRvJiYobz1yLmdyYWRpZW50LmdyYWRpZW50VG8pLHIuZ3JhZGllbnQuaW52ZXJzZUNvbG9ycyl7dmFyIG09dTt1PW8sbz1tfXJldHVybiB1LmluZGV4T2YoInJnYiIpPi0xJiYodT1iLnJnYjJoZXgodSkpLG8uaW5kZXhPZigicmdiIik+LTEmJihvPWIucmdiMmhleChvKSksYy5kcmF3R3JhZGllbnQoZCx1LG8scCxnLGwuc2l6ZSxyLmdyYWRpZW50LnN0b3BzLHIuZ3JhZGllbnQuY29sb3JTdG9wcyxhKX19XSksdH0oKSxCPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLGkpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLnd9cmV0dXJuIGModCxbe2tleToic2V0R2xvYmFsTWFya2VyU2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnc7aWYodC5nbG9iYWxzLm1hcmtlcnMuc2l6ZT1BcnJheS5pc0FycmF5KHQuY29uZmlnLm1hcmtlcnMuc2l6ZSk/dC5jb25maWcubWFya2Vycy5zaXplOlt0LmNvbmZpZy5tYXJrZXJzLnNpemVdLHQuZ2xvYmFscy5tYXJrZXJzLnNpemUubGVuZ3RoPjApe2lmKHQuZ2xvYmFscy5tYXJrZXJzLnNpemUubGVuZ3RoPHQuZ2xvYmFscy5zZXJpZXMubGVuZ3RoKzEpZm9yKHZhciBlPTA7ZTw9dC5nbG9iYWxzLnNlcmllcy5sZW5ndGg7ZSsrKXZvaWQgMD09PXQuZ2xvYmFscy5tYXJrZXJzLnNpemVbZV0mJnQuZ2xvYmFscy5tYXJrZXJzLnNpemUucHVzaCh0Lmdsb2JhbHMubWFya2Vycy5zaXplWzBdKX1lbHNlIHQuZ2xvYmFscy5tYXJrZXJzLnNpemU9dC5jb25maWcuc2VyaWVzLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuY29uZmlnLm1hcmtlcnMuc2l6ZX0pKX19LHtrZXk6InBsb3RDaGFydE1hcmtlcnMiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMpe3ZhciBhLG49YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0mJmFyZ3VtZW50c1s0XSxyPXRoaXMudyxvPWUsbD10LGM9bnVsbCxoPW5ldyBrKHRoaXMuY3R4KSxkPXIuY29uZmlnLm1hcmtlcnMuZGlzY3JldGUmJnIuY29uZmlnLm1hcmtlcnMuZGlzY3JldGUubGVuZ3RoO2lmKChyLmdsb2JhbHMubWFya2Vycy5zaXplW2VdPjB8fG58fGQpJiYoYz1oLmdyb3VwKHtjbGFzczpufHxkPyIiOiJhcGV4Y2hhcnRzLXNlcmllcy1tYXJrZXJzIn0pKS5hdHRyKCJjbGlwLXBhdGgiLCJ1cmwoI2dyaWRSZWN0TWFya2VyTWFzayIuY29uY2F0KHIuZ2xvYmFscy5jdWlkLCIpIikpLEFycmF5LmlzQXJyYXkobC54KSlmb3IodmFyIHU9MDt1PGwueC5sZW5ndGg7dSsrKXt2YXIgcD1pOzE9PT1pJiYwPT09dSYmKHA9MCksMT09PWkmJjE9PT11JiYocD0xKTt2YXIgZz0iYXBleGNoYXJ0cy1tYXJrZXIiOyJsaW5lIiE9PXIuY29uZmlnLmNoYXJ0LnR5cGUmJiJhcmVhIiE9PXIuY29uZmlnLmNoYXJ0LnR5cGV8fHIuZ2xvYmFscy5jb21ib0NoYXJ0c3x8ci5jb25maWcudG9vbHRpcC5pbnRlcnNlY3R8fChnKz0iIG5vLXBvaW50ZXItZXZlbnRzIik7dmFyIGY9QXJyYXkuaXNBcnJheShyLmNvbmZpZy5tYXJrZXJzLnNpemUpP3IuZ2xvYmFscy5tYXJrZXJzLnNpemVbZV0+MDpyLmNvbmZpZy5tYXJrZXJzLnNpemU+MDtpZihmfHxufHxkKXtiLmlzTnVtYmVyKGwueVt1XSk/Zys9IiB3Ii5jb25jYXQoYi5yYW5kb21JZCgpKTpnPSJhcGV4Y2hhcnRzLW51bGxwb2ludCI7dmFyIG09dGhpcy5nZXRNYXJrZXJDb25maWcoe2Nzc0NsYXNzOmcsc2VyaWVzSW5kZXg6ZSxkYXRhUG9pbnRJbmRleDpwfSk7ci5jb25maWcuc2VyaWVzW29dLmRhdGFbcF0mJihyLmNvbmZpZy5zZXJpZXNbb10uZGF0YVtwXS5maWxsQ29sb3ImJihtLnBvaW50RmlsbENvbG9yPXIuY29uZmlnLnNlcmllc1tvXS5kYXRhW3BdLmZpbGxDb2xvciksci5jb25maWcuc2VyaWVzW29dLmRhdGFbcF0uc3Ryb2tlQ29sb3ImJihtLnBvaW50U3Ryb2tlQ29sb3I9ci5jb25maWcuc2VyaWVzW29dLmRhdGFbcF0uc3Ryb2tlQ29sb3IpKSxzJiYobS5wU2l6ZT1zKSwoYT1oLmRyYXdNYXJrZXIobC54W3VdLGwueVt1XSxtKSkuYXR0cigicmVsIixwKSxhLmF0dHIoImoiLHApLGEuYXR0cigiaW5kZXgiLGUpLGEubm9kZS5zZXRBdHRyaWJ1dGUoImRlZmF1bHQtbWFya2VyLXNpemUiLG0ucFNpemUpO3ZhciB2PW5ldyB3KHRoaXMuY3R4KTt2LnNldFNlbGVjdGlvbkZpbHRlcihhLGUscCksdGhpcy5hZGRFdmVudHMoYSksYyYmYy5hZGQoYSl9ZWxzZSB2b2lkIDA9PT1yLmdsb2JhbHMucG9pbnRzQXJyYXlbZV0mJihyLmdsb2JhbHMucG9pbnRzQXJyYXlbZV09W10pLHIuZ2xvYmFscy5wb2ludHNBcnJheVtlXS5wdXNoKFtsLnhbdV0sbC55W3VdXSl9cmV0dXJuIGN9fSx7a2V5OiJnZXRNYXJrZXJDb25maWciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuY3NzQ2xhc3MsaT10LnNlcmllc0luZGV4LHM9dC5kYXRhUG9pbnRJbmRleCxhPXZvaWQgMD09PXM/bnVsbDpzLG49dC5maW5pc2hSYWRpdXMscj12b2lkIDA9PT1uP251bGw6bixvPXRoaXMudyxsPXRoaXMuZ2V0TWFya2VyU3R5bGUoaSksYz1vLmdsb2JhbHMubWFya2Vycy5zaXplW2ldLGg9by5jb25maWcubWFya2VycztyZXR1cm4gbnVsbCE9PWEmJmguZGlzY3JldGUubGVuZ3RoJiZoLmRpc2NyZXRlLm1hcCgoZnVuY3Rpb24odCl7dC5zZXJpZXNJbmRleD09PWkmJnQuZGF0YVBvaW50SW5kZXg9PT1hJiYobC5wb2ludFN0cm9rZUNvbG9yPXQuc3Ryb2tlQ29sb3IsbC5wb2ludEZpbGxDb2xvcj10LmZpbGxDb2xvcixjPXQuc2l6ZSxsLnBvaW50U2hhcGU9dC5zaGFwZSl9KSkse3BTaXplOm51bGw9PT1yP2M6cixwUmFkaXVzOmgucmFkaXVzLHdpZHRoOkFycmF5LmlzQXJyYXkoaC53aWR0aCk/aC53aWR0aFtpXTpoLndpZHRoLGhlaWdodDpBcnJheS5pc0FycmF5KGguaGVpZ2h0KT9oLmhlaWdodFtpXTpoLmhlaWdodCxwb2ludFN0cm9rZVdpZHRoOkFycmF5LmlzQXJyYXkoaC5zdHJva2VXaWR0aCk/aC5zdHJva2VXaWR0aFtpXTpoLnN0cm9rZVdpZHRoLHBvaW50U3Ryb2tlQ29sb3I6bC5wb2ludFN0cm9rZUNvbG9yLHBvaW50RmlsbENvbG9yOmwucG9pbnRGaWxsQ29sb3Isc2hhcGU6bC5wb2ludFNoYXBlfHwoQXJyYXkuaXNBcnJheShoLnNoYXBlKT9oLnNoYXBlW2ldOmguc2hhcGUpLGNsYXNzOmUscG9pbnRTdHJva2VPcGFjaXR5OkFycmF5LmlzQXJyYXkoaC5zdHJva2VPcGFjaXR5KT9oLnN0cm9rZU9wYWNpdHlbaV06aC5zdHJva2VPcGFjaXR5LHBvaW50U3Ryb2tlRGFzaEFycmF5OkFycmF5LmlzQXJyYXkoaC5zdHJva2VEYXNoQXJyYXkpP2guc3Ryb2tlRGFzaEFycmF5W2ldOmguc3Ryb2tlRGFzaEFycmF5LHBvaW50RmlsbE9wYWNpdHk6QXJyYXkuaXNBcnJheShoLmZpbGxPcGFjaXR5KT9oLmZpbGxPcGFjaXR5W2ldOmguZmlsbE9wYWNpdHksc2VyaWVzSW5kZXg6aX19fSx7a2V5OiJhZGRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudyxpPW5ldyBrKHRoaXMuY3R4KTt0Lm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsaS5wYXRoTW91c2VFbnRlci5iaW5kKHRoaXMuY3R4LHQpKSx0Lm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsaS5wYXRoTW91c2VMZWF2ZS5iaW5kKHRoaXMuY3R4LHQpKSx0Lm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixpLnBhdGhNb3VzZURvd24uYmluZCh0aGlzLmN0eCx0KSksdC5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixlLmNvbmZpZy5tYXJrZXJzLm9uQ2xpY2spLHQubm9kZS5hZGRFdmVudExpc3RlbmVyKCJkYmxjbGljayIsZS5jb25maWcubWFya2Vycy5vbkRibENsaWNrKSx0Lm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsaS5wYXRoTW91c2VEb3duLmJpbmQodGhpcy5jdHgsdCkse3Bhc3NpdmU6ITB9KX19LHtrZXk6ImdldE1hcmtlclN0eWxlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncsaT1lLmdsb2JhbHMubWFya2Vycy5jb2xvcnMscz1lLmNvbmZpZy5tYXJrZXJzLnN0cm9rZUNvbG9yfHxlLmNvbmZpZy5tYXJrZXJzLnN0cm9rZUNvbG9ycztyZXR1cm57cG9pbnRTdHJva2VDb2xvcjpBcnJheS5pc0FycmF5KHMpP3NbdF06cyxwb2ludEZpbGxDb2xvcjpBcnJheS5pc0FycmF5KGkpP2lbdF06aX19fV0pLHR9KCksWD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMuY3R4PWUsdGhpcy53PWUudyx0aGlzLmluaXRpYWxBbmltPXRoaXMudy5jb25maWcuY2hhcnQuYW5pbWF0aW9ucy5lbmFibGVkLHRoaXMuZHluYW1pY0FuaW09dGhpcy5pbml0aWFsQW5pbSYmdGhpcy53LmNvbmZpZy5jaGFydC5hbmltYXRpb25zLmR5bmFtaWNBbmltYXRpb24uZW5hYmxlZH1yZXR1cm4gYyh0LFt7a2V5OiJkcmF3Iix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpcy53LGE9bmV3IGsodGhpcy5jdHgpLG49aS5yZWFsSW5kZXgscj1pLnBvaW50c1BvcyxvPWkuelJhdGlvLGw9aS5lbFBhcmVudCxjPWEuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLXNlcmllcy1tYXJrZXJzIGFwZXhjaGFydHMtc2VyaWVzLSIuY29uY2F0KHMuY29uZmlnLmNoYXJ0LnR5cGUpfSk7aWYoYy5hdHRyKCJjbGlwLXBhdGgiLCJ1cmwoI2dyaWRSZWN0TWFya2VyTWFzayIuY29uY2F0KHMuZ2xvYmFscy5jdWlkLCIpIikpLEFycmF5LmlzQXJyYXkoci54KSlmb3IodmFyIGg9MDtoPHIueC5sZW5ndGg7aCsrKXt2YXIgZD1lKzEsdT0hMDswPT09ZSYmMD09PWgmJihkPTApLDA9PT1lJiYxPT09aCYmKGQ9MSk7dmFyIHA9MCxnPXMuZ2xvYmFscy5tYXJrZXJzLnNpemVbbl07aWYobyE9PTEvMCl7dmFyIGY9cy5jb25maWcucGxvdE9wdGlvbnMuYnViYmxlO2c9cy5nbG9iYWxzLnNlcmllc1pbbl1bZF0sZi56U2NhbGluZyYmKGcvPW8pLGYubWluQnViYmxlUmFkaXVzJiZnPGYubWluQnViYmxlUmFkaXVzJiYoZz1mLm1pbkJ1YmJsZVJhZGl1cyksZi5tYXhCdWJibGVSYWRpdXMmJmc+Zi5tYXhCdWJibGVSYWRpdXMmJihnPWYubWF4QnViYmxlUmFkaXVzKX1zLmNvbmZpZy5jaGFydC5hbmltYXRpb25zLmVuYWJsZWR8fChwPWcpO3ZhciBtPXIueFtoXSx2PXIueVtoXTtpZihwPXB8fDAsbnVsbCE9PXYmJnZvaWQgMCE9PXMuZ2xvYmFscy5zZXJpZXNbbl1bZF18fCh1PSExKSx1KXt2YXIgeD10aGlzLmRyYXdQb2ludChtLHYscCxnLG4sZCxlKTtjLmFkZCh4KX1sLmFkZChjKX19fSx7a2V5OiJkcmF3UG9pbnQiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMsYSxuLHIpe3ZhciBvPXRoaXMudyxsPWEsYz1uZXcgeSh0aGlzLmN0eCksaD1uZXcgdyh0aGlzLmN0eCksZD1uZXcgXyh0aGlzLmN0eCksdT1uZXcgQih0aGlzLmN0eCkscD1uZXcgayh0aGlzLmN0eCksZz11LmdldE1hcmtlckNvbmZpZyh7Y3NzQ2xhc3M6ImFwZXhjaGFydHMtbWFya2VyIixzZXJpZXNJbmRleDpsLGRhdGFQb2ludEluZGV4Om4sZmluaXNoUmFkaXVzOiJidWJibGUiPT09by5jb25maWcuY2hhcnQudHlwZXx8by5nbG9iYWxzLmNvbWJvQ2hhcnRzJiZvLmNvbmZpZy5zZXJpZXNbYV0mJiJidWJibGUiPT09by5jb25maWcuc2VyaWVzW2FdLnR5cGU/czpudWxsfSk7cz1nLnBTaXplO3ZhciBmLG09ZC5maWxsUGF0aCh7c2VyaWVzTnVtYmVyOmEsZGF0YVBvaW50SW5kZXg6bixjb2xvcjpnLnBvaW50RmlsbENvbG9yLHBhdHRlcm5Vbml0czoib2JqZWN0Qm91bmRpbmdCb3giLHZhbHVlOm8uZ2xvYmFscy5zZXJpZXNbYV1bcl19KTtpZigiY2lyY2xlIj09PWcuc2hhcGU/Zj1wLmRyYXdDaXJjbGUoaSk6InNxdWFyZSIhPT1nLnNoYXBlJiYicmVjdCIhPT1nLnNoYXBlfHwoZj1wLmRyYXdSZWN0KDAsMCxnLndpZHRoLWcucG9pbnRTdHJva2VXaWR0aC8yLGcuaGVpZ2h0LWcucG9pbnRTdHJva2VXaWR0aC8yLGcucFJhZGl1cykpLG8uY29uZmlnLnNlcmllc1tsXS5kYXRhW25dJiZvLmNvbmZpZy5zZXJpZXNbbF0uZGF0YVtuXS5maWxsQ29sb3ImJihtPW8uY29uZmlnLnNlcmllc1tsXS5kYXRhW25dLmZpbGxDb2xvciksZi5hdHRyKHt4OnQtZy53aWR0aC8yLWcucG9pbnRTdHJva2VXaWR0aC8yLHk6ZS1nLmhlaWdodC8yLWcucG9pbnRTdHJva2VXaWR0aC8yLGN4OnQsY3k6ZSxmaWxsOm0sImZpbGwtb3BhY2l0eSI6Zy5wb2ludEZpbGxPcGFjaXR5LHN0cm9rZTpnLnBvaW50U3Ryb2tlQ29sb3IscjpzLCJzdHJva2Utd2lkdGgiOmcucG9pbnRTdHJva2VXaWR0aCwic3Ryb2tlLWRhc2hhcnJheSI6Zy5wb2ludFN0cm9rZURhc2hBcnJheSwic3Ryb2tlLW9wYWNpdHkiOmcucG9pbnRTdHJva2VPcGFjaXR5fSksby5jb25maWcuY2hhcnQuZHJvcFNoYWRvdy5lbmFibGVkKXt2YXIgdj1vLmNvbmZpZy5jaGFydC5kcm9wU2hhZG93O2guZHJvcFNoYWRvdyhmLHYsYSl9aWYoIXRoaXMuaW5pdGlhbEFuaW18fG8uZ2xvYmFscy5kYXRhQ2hhbmdlZHx8by5nbG9iYWxzLnJlc2l6ZWQpby5nbG9iYWxzLmFuaW1hdGlvbkVuZGVkPSEwO2Vsc2V7dmFyIHg9by5jb25maWcuY2hhcnQuYW5pbWF0aW9ucy5zcGVlZDtjLmFuaW1hdGVNYXJrZXIoZiwwLCJjaXJjbGUiPT09Zy5zaGFwZT9zOnt3aWR0aDpnLndpZHRoLGhlaWdodDpnLmhlaWdodH0seCxvLmdsb2JhbHMuZWFzaW5nLChmdW5jdGlvbigpe3dpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpe2MuYW5pbWF0aW9uQ29tcGxldGVkKGYpfSksMTAwKX0pKX1pZihvLmdsb2JhbHMuZGF0YUNoYW5nZWQmJiJjaXJjbGUiPT09Zy5zaGFwZSlpZih0aGlzLmR5bmFtaWNBbmltKXt2YXIgYixTLEMsQSxFPW8uY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuZHluYW1pY0FuaW1hdGlvbi5zcGVlZDtudWxsIT0oQT1vLmdsb2JhbHMucHJldmlvdXNQYXRoc1thXSYmby5nbG9iYWxzLnByZXZpb3VzUGF0aHNbYV1bcl0pJiYoYj1BLngsUz1BLnksQz12b2lkIDAhPT1BLnI/QS5yOnMpO2Zvcih2YXIgVD0wO1Q8by5nbG9iYWxzLmNvbGxhcHNlZFNlcmllcy5sZW5ndGg7VCsrKW8uZ2xvYmFscy5jb2xsYXBzZWRTZXJpZXNbVF0uaW5kZXg9PT1hJiYoRT0xLHM9MCk7MD09PXQmJjA9PT1lJiYocz0wKSxjLmFuaW1hdGVDaXJjbGUoZix7Y3g6YixjeTpTLHI6Q30se2N4OnQsY3k6ZSxyOnN9LEUsby5nbG9iYWxzLmVhc2luZyl9ZWxzZSBmLmF0dHIoe3I6c30pO3JldHVybiBmLmF0dHIoe3JlbDpuLGo6bixpbmRleDphLCJkZWZhdWx0LW1hcmtlci1zaXplIjpzfSksaC5zZXRTZWxlY3Rpb25GaWx0ZXIoZixhLG4pLHUuYWRkRXZlbnRzKGYpLGYubm9kZS5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLW1hcmtlciIpLGZ9fSx7a2V5OiJjZW50ZXJUZXh0SW5CdWJibGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudztyZXR1cm57eTp0Kz1wYXJzZUludChlLmNvbmZpZy5kYXRhTGFiZWxzLnN0eWxlLmZvbnRTaXplLDEwKS80fX19XSksdH0oKSxIPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLnc9ZS53fXJldHVybiBjKHQsW3trZXk6ImRhdGFMYWJlbHNDb3JyZWN0aW9uIix2YWx1ZTpmdW5jdGlvbih0LGUsaSxzLGEsbixyKXt2YXIgbz10aGlzLncsbD0hMSxjPW5ldyBrKHRoaXMuY3R4KS5nZXRUZXh0UmVjdHMoaSxyKSxoPWMud2lkdGgsZD1jLmhlaWdodDtlPDAmJihlPTApLGU+by5nbG9iYWxzLmdyaWRIZWlnaHQrZCYmKGU9by5nbG9iYWxzLmdyaWRIZWlnaHQrZC8yKSx2b2lkIDA9PT1vLmdsb2JhbHMuZGF0YUxhYmVsc1JlY3RzW3NdJiYoby5nbG9iYWxzLmRhdGFMYWJlbHNSZWN0c1tzXT1bXSksby5nbG9iYWxzLmRhdGFMYWJlbHNSZWN0c1tzXS5wdXNoKHt4OnQseTplLHdpZHRoOmgsaGVpZ2h0OmR9KTt2YXIgdT1vLmdsb2JhbHMuZGF0YUxhYmVsc1JlY3RzW3NdLmxlbmd0aC0yLHA9dm9pZCAwIT09by5nbG9iYWxzLmxhc3REcmF3bkRhdGFMYWJlbHNJbmRleGVzW3NdP28uZ2xvYmFscy5sYXN0RHJhd25EYXRhTGFiZWxzSW5kZXhlc1tzXVtvLmdsb2JhbHMubGFzdERyYXduRGF0YUxhYmVsc0luZGV4ZXNbc10ubGVuZ3RoLTFdOjA7aWYodm9pZCAwIT09by5nbG9iYWxzLmRhdGFMYWJlbHNSZWN0c1tzXVt1XSl7dmFyIGc9by5nbG9iYWxzLmRhdGFMYWJlbHNSZWN0c1tzXVtwXTsodD5nLngrZy53aWR0aCsyfHxlPmcueStnLmhlaWdodCsyfHx0K2g8Zy54KSYmKGw9ITApfXJldHVybigwPT09YXx8bikmJihsPSEwKSx7eDp0LHk6ZSx0ZXh0UmVjdHM6YyxkcmF3bmV4dExhYmVsOmx9fX0se2tleToiZHJhd0RhdGFMYWJlbCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXQudHlwZSxzPXQucG9zLGE9dC5pLG49dC5qLHI9dC5pc1JhbmdlU3RhcnQsbz10LnN0cm9rZVdpZHRoLGw9dm9pZCAwPT09bz8yOm8sYz10aGlzLncsaD1uZXcgayh0aGlzLmN0eCksZD1jLmNvbmZpZy5kYXRhTGFiZWxzLHU9MCxwPTAsZz1uLGY9bnVsbDtpZighZC5lbmFibGVkfHwhQXJyYXkuaXNBcnJheShzLngpKXJldHVybiBmO2Y9aC5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtZGF0YS1sYWJlbHMifSk7Zm9yKHZhciBtPTA7bTxzLngubGVuZ3RoO20rKylpZih1PXMueFttXStkLm9mZnNldFgscD1zLnlbbV0rZC5vZmZzZXRZK2wsIWlzTmFOKHUpKXsxPT09biYmMD09PW0mJihnPTApLDE9PT1uJiYxPT09bSYmKGc9MSk7dmFyIHY9Yy5nbG9iYWxzLnNlcmllc1thXVtnXTsicmFuZ2VBcmVhIj09PWkmJih2PXI/Yy5nbG9iYWxzLnNlcmllc1JhbmdlU3RhcnRbYV1bZ106Yy5nbG9iYWxzLnNlcmllc1JhbmdlRW5kW2FdW2ddKTt2YXIgeD0iIixiPWZ1bmN0aW9uKHQpe3JldHVybiBjLmNvbmZpZy5kYXRhTGFiZWxzLmZvcm1hdHRlcih0LHtjdHg6ZS5jdHgsc2VyaWVzSW5kZXg6YSxkYXRhUG9pbnRJbmRleDpnLHc6Y30pfTsiYnViYmxlIj09PWMuY29uZmlnLmNoYXJ0LnR5cGU/KHg9Yih2PWMuZ2xvYmFscy5zZXJpZXNaW2FdW2ddKSxwPXMueVttXSxwPW5ldyBYKHRoaXMuY3R4KS5jZW50ZXJUZXh0SW5CdWJibGUocCxhLGcpLnkpOnZvaWQgMCE9PXYmJih4PWIodikpLHRoaXMucGxvdERhdGFMYWJlbHNUZXh0KHt4OnUseTpwLHRleHQ6eCxpOmEsajpnLHBhcmVudDpmLG9mZnNldENvcnJlY3Rpb246ITAsZGF0YUxhYmVsc0NvbmZpZzpjLmNvbmZpZy5kYXRhTGFiZWxzfSl9cmV0dXJuIGZ9fSx7a2V5OiJwbG90RGF0YUxhYmVsc1RleHQiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudyxpPW5ldyBrKHRoaXMuY3R4KSxzPXQueCxhPXQueSxuPXQuaSxyPXQuaixvPXQudGV4dCxsPXQudGV4dEFuY2hvcixjPXQuZm9udFNpemUsaD10LnBhcmVudCxkPXQuZGF0YUxhYmVsc0NvbmZpZyx1PXQuY29sb3IscD10LmFsd2F5c0RyYXdEYXRhTGFiZWwsZz10Lm9mZnNldENvcnJlY3Rpb247aWYoIShBcnJheS5pc0FycmF5KGUuY29uZmlnLmRhdGFMYWJlbHMuZW5hYmxlZE9uU2VyaWVzKSYmZS5jb25maWcuZGF0YUxhYmVscy5lbmFibGVkT25TZXJpZXMuaW5kZXhPZihuKTwwKSl7dmFyIGY9e3g6cyx5OmEsZHJhd25leHRMYWJlbDohMCx0ZXh0UmVjdHM6bnVsbH07ZyYmKGY9dGhpcy5kYXRhTGFiZWxzQ29ycmVjdGlvbihzLGEsbyxuLHIscCxwYXJzZUludChkLnN0eWxlLmZvbnRTaXplLDEwKSkpLGUuZ2xvYmFscy56b29tZWR8fChzPWYueCxhPWYueSksZi50ZXh0UmVjdHMmJihzPC0xMC1mLnRleHRSZWN0cy53aWR0aHx8cz5lLmdsb2JhbHMuZ3JpZFdpZHRoK2YudGV4dFJlY3RzLndpZHRoKzEwKSYmKG89IiIpO3ZhciBtPWUuZ2xvYmFscy5kYXRhTGFiZWxzLnN0eWxlLmNvbG9yc1tuXTsoKCJiYXIiPT09ZS5jb25maWcuY2hhcnQudHlwZXx8InJhbmdlQmFyIj09PWUuY29uZmlnLmNoYXJ0LnR5cGUpJiZlLmNvbmZpZy5wbG90T3B0aW9ucy5iYXIuZGlzdHJpYnV0ZWR8fGUuY29uZmlnLmRhdGFMYWJlbHMuZGlzdHJpYnV0ZWQpJiYobT1lLmdsb2JhbHMuZGF0YUxhYmVscy5zdHlsZS5jb2xvcnNbcl0pLCJmdW5jdGlvbiI9PXR5cGVvZiBtJiYobT1tKHtzZXJpZXM6ZS5nbG9iYWxzLnNlcmllcyxzZXJpZXNJbmRleDpuLGRhdGFQb2ludEluZGV4OnIsdzplfSkpLHUmJihtPXUpO3ZhciB2PWQub2Zmc2V0WCx4PWQub2Zmc2V0WTtpZigiYmFyIiE9PWUuY29uZmlnLmNoYXJ0LnR5cGUmJiJyYW5nZUJhciIhPT1lLmNvbmZpZy5jaGFydC50eXBlfHwodj0wLHg9MCksZi5kcmF3bmV4dExhYmVsKXt2YXIgYj1pLmRyYXdUZXh0KHt3aWR0aDoxMDAsaGVpZ2h0OnBhcnNlSW50KGQuc3R5bGUuZm9udFNpemUsMTApLHg6cyt2LHk6YSt4LGZvcmVDb2xvcjptLHRleHRBbmNob3I6bHx8ZC50ZXh0QW5jaG9yLHRleHQ6byxmb250U2l6ZTpjfHxkLnN0eWxlLmZvbnRTaXplLGZvbnRGYW1pbHk6ZC5zdHlsZS5mb250RmFtaWx5LGZvbnRXZWlnaHQ6ZC5zdHlsZS5mb250V2VpZ2h0fHwibm9ybWFsIn0pO2lmKGIuYXR0cih7Y2xhc3M6ImFwZXhjaGFydHMtZGF0YWxhYmVsIixjeDpzLGN5OmF9KSxkLmRyb3BTaGFkb3cuZW5hYmxlZCl7dmFyIHk9ZC5kcm9wU2hhZG93O25ldyB3KHRoaXMuY3R4KS5kcm9wU2hhZG93KGIseSl9aC5hZGQoYiksdm9pZCAwPT09ZS5nbG9iYWxzLmxhc3REcmF3bkRhdGFMYWJlbHNJbmRleGVzW25dJiYoZS5nbG9iYWxzLmxhc3REcmF3bkRhdGFMYWJlbHNJbmRleGVzW25dPVtdKSxlLmdsb2JhbHMubGFzdERyYXduRGF0YUxhYmVsc0luZGV4ZXNbbl0ucHVzaChyKX19fX0se2tleToiYWRkQmFja2dyb3VuZFRvRGF0YUxhYmVsIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudyxzPWkuY29uZmlnLmRhdGFMYWJlbHMuYmFja2dyb3VuZCxhPXMucGFkZGluZyxuPXMucGFkZGluZy8yLHI9ZS53aWR0aCxvPWUuaGVpZ2h0LGw9bmV3IGsodGhpcy5jdHgpLmRyYXdSZWN0KGUueC1hLGUueS1uLzIscisyKmEsbytuLHMuYm9yZGVyUmFkaXVzLCJ0cmFuc3BhcmVudCI9PT1pLmNvbmZpZy5jaGFydC5iYWNrZ3JvdW5kPyIjZmZmIjppLmNvbmZpZy5jaGFydC5iYWNrZ3JvdW5kLHMub3BhY2l0eSxzLmJvcmRlcldpZHRoLHMuYm9yZGVyQ29sb3IpO3JldHVybiBzLmRyb3BTaGFkb3cuZW5hYmxlZCYmbmV3IHcodGhpcy5jdHgpLmRyb3BTaGFkb3cobCxzLmRyb3BTaGFkb3cpLGx9fSx7a2V5OiJkYXRhTGFiZWxzQmFja2dyb3VuZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnc7aWYoImJ1YmJsZSIhPT10LmNvbmZpZy5jaGFydC50eXBlKWZvcih2YXIgZT10Lmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yQWxsKCIuYXBleGNoYXJ0cy1kYXRhbGFiZWxzIHRleHQiKSxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBzPWVbaV0sYT1zLmdldEJCb3goKSxuPW51bGw7aWYoYS53aWR0aCYmYS5oZWlnaHQmJihuPXRoaXMuYWRkQmFja2dyb3VuZFRvRGF0YUxhYmVsKHMsYSkpLG4pe3MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobi5ub2RlLHMpO3ZhciByPXMuZ2V0QXR0cmlidXRlKCJmaWxsIik7IXQuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuZW5hYmxlZHx8dC5nbG9iYWxzLnJlc2l6ZWR8fHQuZ2xvYmFscy5kYXRhQ2hhbmdlZD9uLmF0dHIoe2ZpbGw6cn0pOm4uYW5pbWF0ZSgpLmF0dHIoe2ZpbGw6cn0pLHMuc2V0QXR0cmlidXRlKCJmaWxsIix0LmNvbmZpZy5kYXRhTGFiZWxzLmJhY2tncm91bmQuZm9yZUNvbG9yKX19fX0se2tleToiYnJpbmdGb3J3YXJkIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLncsZT10Lmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yQWxsKCIuYXBleGNoYXJ0cy1kYXRhbGFiZWxzIiksaT10Lmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy1wbG90LXNlcmllczpsYXN0LWNoaWxkIikscz0wO3M8ZS5sZW5ndGg7cysrKWkmJmkuaW5zZXJ0QmVmb3JlKGVbc10saS5uZXh0U2libGluZyl9fV0pLHR9KCksWT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMuY3R4PWUsdGhpcy53PWUudyx0aGlzLmxlZ2VuZEluYWN0aXZlQ2xhc3M9ImxlZ2VuZC1tb3VzZW92ZXItaW5hY3RpdmUifXJldHVybiBjKHQsW3trZXk6ImdldEFsbFNlcmllc0VscyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53Lmdsb2JhbHMuZG9tLmJhc2VFbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhcGV4Y2hhcnRzLXNlcmllcyIpfX0se2tleToiZ2V0U2VyaWVzQnlOYW1lIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53Lmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy1pbm5lciAuYXBleGNoYXJ0cy1zZXJpZXNbc2VyaWVzTmFtZT0nIi5jb25jYXQoYi5lc2NhcGVTdHJpbmcodCksIiddIikpfX0se2tleToiaXNTZXJpZXNIaWRkZW4iLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0U2VyaWVzQnlOYW1lKHQpLGk9cGFyc2VJbnQoZS5nZXRBdHRyaWJ1dGUoImRhdGE6cmVhbEluZGV4IiksMTApO3JldHVybntpc0hpZGRlbjplLmNsYXNzTGlzdC5jb250YWlucygiYXBleGNoYXJ0cy1zZXJpZXMtY29sbGFwc2VkIikscmVhbEluZGV4Oml9fX0se2tleToiYWRkQ29sbGFwc2VkQ2xhc3NUb1NlcmllcyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnc7ZnVuY3Rpb24gcyhpKXtmb3IodmFyIHM9MDtzPGkubGVuZ3RoO3MrKylpW3NdLmluZGV4PT09ZSYmdC5ub2RlLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtc2VyaWVzLWNvbGxhcHNlZCIpfXMoaS5nbG9iYWxzLmNvbGxhcHNlZFNlcmllcykscyhpLmdsb2JhbHMuYW5jaWxsYXJ5Q29sbGFwc2VkU2VyaWVzKX19LHtrZXk6InRvZ2dsZVNlcmllcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pc1Nlcmllc0hpZGRlbih0KTtyZXR1cm4gdGhpcy5jdHgubGVnZW5kLmxlZ2VuZEhlbHBlcnMudG9nZ2xlRGF0YVNlcmllcyhlLnJlYWxJbmRleCxlLmlzSGlkZGVuKSxlLmlzSGlkZGVufX0se2tleToic2hvd1NlcmllcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pc1Nlcmllc0hpZGRlbih0KTtlLmlzSGlkZGVuJiZ0aGlzLmN0eC5sZWdlbmQubGVnZW5kSGVscGVycy50b2dnbGVEYXRhU2VyaWVzKGUucmVhbEluZGV4LCEwKX19LHtrZXk6ImhpZGVTZXJpZXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaXNTZXJpZXNIaWRkZW4odCk7ZS5pc0hpZGRlbnx8dGhpcy5jdHgubGVnZW5kLmxlZ2VuZEhlbHBlcnMudG9nZ2xlRGF0YVNlcmllcyhlLnJlYWxJbmRleCwhMSl9fSx7a2V5OiJyZXNldFNlcmllcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdLGU9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxpPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0scz10aGlzLncsYT1iLmNsb25lKHMuZ2xvYmFscy5pbml0aWFsU2VyaWVzKTtzLmdsb2JhbHMucHJldmlvdXNQYXRocz1bXSxpPyhzLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzPVtdLHMuZ2xvYmFscy5hbmNpbGxhcnlDb2xsYXBzZWRTZXJpZXM9W10scy5nbG9iYWxzLmNvbGxhcHNlZFNlcmllc0luZGljZXM9W10scy5nbG9iYWxzLmFuY2lsbGFyeUNvbGxhcHNlZFNlcmllc0luZGljZXM9W10pOmE9dGhpcy5lbXB0eUNvbGxhcHNlZFNlcmllcyhhKSxzLmNvbmZpZy5zZXJpZXM9YSx0JiYoZSYmKHMuZ2xvYmFscy56b29tZWQ9ITEsdGhpcy5jdHgudXBkYXRlSGVscGVycy5yZXZlcnREZWZhdWx0QXhpc01pbk1heCgpKSx0aGlzLmN0eC51cGRhdGVIZWxwZXJzLl91cGRhdGVTZXJpZXMoYSxzLmNvbmZpZy5jaGFydC5hbmltYXRpb25zLmR5bmFtaWNBbmltYXRpb24uZW5hYmxlZCkpfX0se2tleToiZW1wdHlDb2xsYXBzZWRTZXJpZXMiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLncsaT0wO2k8dC5sZW5ndGg7aSsrKWUuZ2xvYmFscy5jb2xsYXBzZWRTZXJpZXNJbmRpY2VzLmluZGV4T2YoaSk+LTEmJih0W2ldLmRhdGE9W10pO3JldHVybiB0fX0se2tleToidG9nZ2xlU2VyaWVzT25Ib3ZlciIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnc7ZXx8KGU9dC50YXJnZXQpO3ZhciBzPWkuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hcGV4Y2hhcnRzLXNlcmllcywgLmFwZXhjaGFydHMtZGF0YWxhYmVscyIpO2lmKCJtb3VzZW1vdmUiPT09dC50eXBlKXt2YXIgYT1wYXJzZUludChlLmdldEF0dHJpYnV0ZSgicmVsIiksMTApLTEsbj1udWxsLHI9bnVsbDtpLmdsb2JhbHMuYXhpc0NoYXJ0c3x8InJhZGlhbEJhciI9PT1pLmNvbmZpZy5jaGFydC50eXBlP2kuZ2xvYmFscy5heGlzQ2hhcnRzPyhuPWkuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLXNlcmllc1tkYXRhXFw6cmVhbEluZGV4PSciLmNvbmNhdChhLCInXSIpKSxyPWkuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLWRhdGFsYWJlbHNbZGF0YVxcOnJlYWxJbmRleD0nIi5jb25jYXQoYSwiJ10iKSkpOm49aS5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMtc2VyaWVzW3JlbD0nIi5jb25jYXQoYSsxLCInXSIpKTpuPWkuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLXNlcmllc1tyZWw9JyIuY29uY2F0KGErMSwiJ10gcGF0aCIpKTtmb3IodmFyIG89MDtvPHMubGVuZ3RoO28rKylzW29dLmNsYXNzTGlzdC5hZGQodGhpcy5sZWdlbmRJbmFjdGl2ZUNsYXNzKTtudWxsIT09biYmKGkuZ2xvYmFscy5heGlzQ2hhcnRzfHxuLnBhcmVudE5vZGUuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmxlZ2VuZEluYWN0aXZlQ2xhc3MpLG4uY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmxlZ2VuZEluYWN0aXZlQ2xhc3MpLG51bGwhPT1yJiZyLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5sZWdlbmRJbmFjdGl2ZUNsYXNzKSl9ZWxzZSBpZigibW91c2VvdXQiPT09dC50eXBlKWZvcih2YXIgbD0wO2w8cy5sZW5ndGg7bCsrKXNbbF0uY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmxlZ2VuZEluYWN0aXZlQ2xhc3MpfX0se2tleToiaGlnaGxpZ2h0UmFuZ2VJblNlcmllcyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLHM9dGhpcy53LGE9cy5nbG9iYWxzLmRvbS5iYXNlRWwuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYXBleGNoYXJ0cy1oZWF0bWFwLXJlY3QiKSxuPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8YS5sZW5ndGg7ZSsrKWFbZV0uY2xhc3NMaXN0W3RdKGkubGVnZW5kSW5hY3RpdmVDbGFzcyl9O2lmKCJtb3VzZW1vdmUiPT09dC50eXBlKXt2YXIgcj1wYXJzZUludChlLmdldEF0dHJpYnV0ZSgicmVsIiksMTApLTE7bigiYWRkIiksZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTxhLmxlbmd0aDtlKyspe3ZhciBzPXBhcnNlSW50KGFbZV0uZ2V0QXR0cmlidXRlKCJ2YWwiKSwxMCk7cz49dC5mcm9tJiZzPD10LnRvJiZhW2VdLmNsYXNzTGlzdC5yZW1vdmUoaS5sZWdlbmRJbmFjdGl2ZUNsYXNzKX19KHMuY29uZmlnLnBsb3RPcHRpb25zLmhlYXRtYXAuY29sb3JTY2FsZS5yYW5nZXNbcl0pfWVsc2UibW91c2VvdXQiPT09dC50eXBlJiZuKCJyZW1vdmUiKX19LHtrZXk6ImdldEFjdGl2ZUNvbmZpZ1Nlcmllc0luZGV4Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiYXNjIixlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpbXSxpPXRoaXMudyxzPTA7aWYoaS5jb25maWcuc2VyaWVzLmxlbmd0aD4xKWZvcih2YXIgYT1pLmNvbmZpZy5zZXJpZXMubWFwKChmdW5jdGlvbih0LHMpe3JldHVybiB0LmRhdGEmJnQuZGF0YS5sZW5ndGg+MCYmLTE9PT1pLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzSW5kaWNlcy5pbmRleE9mKHMpJiYoIWkuZ2xvYmFscy5jb21ib0NoYXJ0c3x8MD09PWUubGVuZ3RofHxlLmxlbmd0aCYmZS5pbmRleE9mKGkuY29uZmlnLnNlcmllc1tzXS50eXBlKT4tMSk/czotMX0pKSxuPSJhc2MiPT09dD8wOmEubGVuZ3RoLTE7ImFzYyI9PT10P248YS5sZW5ndGg6bj49MDsiYXNjIj09PXQ/bisrOm4tLSlpZigtMSE9PWFbbl0pe3M9YVtuXTticmVha31yZXR1cm4gc319LHtrZXk6ImdldEJhclNlcmllc0luZGljZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudy5nbG9iYWxzLmNvbWJvQ2hhcnRzP3RoaXMudy5jb25maWcuc2VyaWVzLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4iYmFyIj09PXQudHlwZXx8ImNvbHVtbiI9PT10LnR5cGU/ZTotMX0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybi0xIT09dH0pKTp0aGlzLncuY29uZmlnLnNlcmllcy5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSl9fSx7a2V5OiJnZXRQcmV2aW91c1BhdGhzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudztmdW5jdGlvbiBlKGUsaSxzKXtmb3IodmFyIGE9ZVtpXS5jaGlsZE5vZGVzLG49e3R5cGU6cyxwYXRoczpbXSxyZWFsSW5kZXg6ZVtpXS5nZXRBdHRyaWJ1dGUoImRhdGE6cmVhbEluZGV4Iil9LHI9MDtyPGEubGVuZ3RoO3IrKylpZihhW3JdLmhhc0F0dHJpYnV0ZSgicGF0aFRvIikpe3ZhciBvPWFbcl0uZ2V0QXR0cmlidXRlKCJwYXRoVG8iKTtuLnBhdGhzLnB1c2goe2Q6b30pfXQuZ2xvYmFscy5wcmV2aW91c1BhdGhzLnB1c2gobil9dC5nbG9iYWxzLnByZXZpb3VzUGF0aHM9W10sWyJsaW5lIiwiYXJlYSIsImJhciIsInJhbmdlYmFyIiwicmFuZ2VBcmVhIiwiY2FuZGxlc3RpY2siLCJyYWRhciJdLmZvckVhY2goKGZ1bmN0aW9uKGkpe2Zvcih2YXIgcyxhPShzPWksdC5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvckFsbCgiLmFwZXhjaGFydHMtIi5jb25jYXQocywiLXNlcmllcyAuYXBleGNoYXJ0cy1zZXJpZXMiKSkpLG49MDtuPGEubGVuZ3RoO24rKyllKGEsbixpKX0pKSx0aGlzLmhhbmRsZVByZXZCdWJibGVTY2F0dGVyUGF0aHMoImJ1YmJsZSIpLHRoaXMuaGFuZGxlUHJldkJ1YmJsZVNjYXR0ZXJQYXRocygic2NhdHRlciIpO3ZhciBpPXQuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hcGV4Y2hhcnRzLSIuY29uY2F0KHQuY29uZmlnLmNoYXJ0LnR5cGUsIiAuYXBleGNoYXJ0cy1zZXJpZXMiKSk7aWYoaS5sZW5ndGg+MClmb3IodmFyIHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciBpPXQuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hcGV4Y2hhcnRzLSIuY29uY2F0KHQuY29uZmlnLmNoYXJ0LnR5cGUsIiAuYXBleGNoYXJ0cy1zZXJpZXNbZGF0YVxcOnJlYWxJbmRleD0nIikuY29uY2F0KGUsIiddIHJlY3QiKSkscz1bXSxhPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKGUpe3JldHVybiBpW3RdLmdldEF0dHJpYnV0ZShlKX0sYT17eDpwYXJzZUZsb2F0KGUoIngiKSkseTpwYXJzZUZsb2F0KGUoInkiKSksd2lkdGg6cGFyc2VGbG9hdChlKCJ3aWR0aCIpKSxoZWlnaHQ6cGFyc2VGbG9hdChlKCJoZWlnaHQiKSl9O3MucHVzaCh7cmVjdDphLGNvbG9yOmlbdF0uZ2V0QXR0cmlidXRlKCJjb2xvciIpfSl9LG49MDtuPGkubGVuZ3RoO24rKylhKG4pO3QuZ2xvYmFscy5wcmV2aW91c1BhdGhzLnB1c2gocyl9LGE9MDthPGkubGVuZ3RoO2ErKylzKGEpO3QuZ2xvYmFscy5heGlzQ2hhcnRzfHwodC5nbG9iYWxzLnByZXZpb3VzUGF0aHM9dC5nbG9iYWxzLnNlcmllcyl9fSx7a2V5OiJoYW5kbGVQcmV2QnViYmxlU2NhdHRlclBhdGhzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncsaT1lLmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yQWxsKCIuYXBleGNoYXJ0cy0iLmNvbmNhdCh0LCItc2VyaWVzIC5hcGV4Y2hhcnRzLXNlcmllcyIpKTtpZihpLmxlbmd0aD4wKWZvcih2YXIgcz0wO3M8aS5sZW5ndGg7cysrKXtmb3IodmFyIGE9ZS5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvckFsbCgiLmFwZXhjaGFydHMtIi5jb25jYXQodCwiLXNlcmllcyAuYXBleGNoYXJ0cy1zZXJpZXNbZGF0YVxcOnJlYWxJbmRleD0nIikuY29uY2F0KHMsIiddIGNpcmNsZSIpKSxuPVtdLHI9MDtyPGEubGVuZ3RoO3IrKyluLnB1c2goe3g6YVtyXS5nZXRBdHRyaWJ1dGUoImN4IikseTphW3JdLmdldEF0dHJpYnV0ZSgiY3kiKSxyOmFbcl0uZ2V0QXR0cmlidXRlKCJyIil9KTtlLmdsb2JhbHMucHJldmlvdXNQYXRocy5wdXNoKG4pfX19LHtrZXk6ImNsZWFyUHJldmlvdXNQYXRocyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnc7dC5nbG9iYWxzLnByZXZpb3VzUGF0aHM9W10sdC5nbG9iYWxzLmFsbFNlcmllc0NvbGxhcHNlZD0hMX19LHtrZXk6ImhhbmRsZU5vRGF0YSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLncsZT10LmNvbmZpZy5ub0RhdGEsaT1uZXcgayh0aGlzLmN0eCkscz10Lmdsb2JhbHMuc3ZnV2lkdGgvMixhPXQuZ2xvYmFscy5zdmdIZWlnaHQvMixuPSJtaWRkbGUiO2lmKHQuZ2xvYmFscy5ub0RhdGE9ITAsdC5nbG9iYWxzLmFuaW1hdGlvbkVuZGVkPSEwLCJsZWZ0Ij09PWUuYWxpZ24/KHM9MTAsbj0ic3RhcnQiKToicmlnaHQiPT09ZS5hbGlnbiYmKHM9dC5nbG9iYWxzLnN2Z1dpZHRoLTEwLG49ImVuZCIpLCJ0b3AiPT09ZS52ZXJ0aWNhbEFsaWduP2E9NTA6ImJvdHRvbSI9PT1lLnZlcnRpY2FsQWxpZ24mJihhPXQuZ2xvYmFscy5zdmdIZWlnaHQtNTApLHMrPWUub2Zmc2V0WCxhPWErcGFyc2VJbnQoZS5zdHlsZS5mb250U2l6ZSwxMCkrMitlLm9mZnNldFksdm9pZCAwIT09ZS50ZXh0JiYiIiE9PWUudGV4dCl7dmFyIHI9aS5kcmF3VGV4dCh7eDpzLHk6YSx0ZXh0OmUudGV4dCx0ZXh0QW5jaG9yOm4sZm9udFNpemU6ZS5zdHlsZS5mb250U2l6ZSxmb250RmFtaWx5OmUuc3R5bGUuZm9udEZhbWlseSxmb3JlQ29sb3I6ZS5zdHlsZS5jb2xvcixvcGFjaXR5OjEsY2xhc3M6ImFwZXhjaGFydHMtdGV4dC1ub2RhdGEifSk7dC5nbG9iYWxzLmRvbS5QYXBlci5hZGQocil9fX0se2tleToic2V0TnVsbFNlcmllc1RvWmVyb1ZhbHVlcyIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudyxpPTA7aTx0Lmxlbmd0aDtpKyspaWYoMD09PXRbaV0ubGVuZ3RoKWZvcih2YXIgcz0wO3M8dFtlLmdsb2JhbHMubWF4VmFsc0luQXJyYXlJbmRleF0ubGVuZ3RoO3MrKyl0W2ldLnB1c2goMCk7cmV0dXJuIHR9fSx7a2V5OiJoYXNBbGxTZXJpZXNFcXVhbFgiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PSEwLGU9dGhpcy53LGk9dGhpcy5maWx0ZXJlZFNlcmllc1goKSxzPTA7czxpLmxlbmd0aC0xO3MrKylpZihpW3NdWzBdIT09aVtzKzFdWzBdKXt0PSExO2JyZWFrfXJldHVybiBlLmdsb2JhbHMuYWxsU2VyaWVzSGFzRXF1YWxYPXQsdH19LHtrZXk6ImZpbHRlcmVkU2VyaWVzWCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53Lmdsb2JhbHMuc2VyaWVzWC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aD4wP3Q6W119KSl9fV0pLHR9KCksVz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMuY3R4PWUsdGhpcy53PWUudyx0aGlzLnR3b0RTZXJpZXM9W10sdGhpcy50aHJlZURTZXJpZXM9W10sdGhpcy50d29EU2VyaWVzWD1bXSx0aGlzLnNlcmllc0dvYWxzPVtdLHRoaXMuY29yZVV0aWxzPW5ldyBTKHRoaXMuY3R4KX1yZXR1cm4gYyh0LFt7a2V5OiJpc011bHRpRm9ybWF0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzRm9ybWF0WFkoKXx8dGhpcy5pc0Zvcm1hdDJEQXJyYXkoKX19LHtrZXk6ImlzRm9ybWF0WFkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53LmNvbmZpZy5zZXJpZXMuc2xpY2UoKSxlPW5ldyBZKHRoaXMuY3R4KTtpZih0aGlzLmFjdGl2ZVNlcmllc0luZGV4PWUuZ2V0QWN0aXZlQ29uZmlnU2VyaWVzSW5kZXgoKSx2b2lkIDAhPT10W3RoaXMuYWN0aXZlU2VyaWVzSW5kZXhdLmRhdGEmJnRbdGhpcy5hY3RpdmVTZXJpZXNJbmRleF0uZGF0YS5sZW5ndGg+MCYmbnVsbCE9PXRbdGhpcy5hY3RpdmVTZXJpZXNJbmRleF0uZGF0YVswXSYmdm9pZCAwIT09dFt0aGlzLmFjdGl2ZVNlcmllc0luZGV4XS5kYXRhWzBdLngmJm51bGwhPT10W3RoaXMuYWN0aXZlU2VyaWVzSW5kZXhdLmRhdGFbMF0pcmV0dXJuITB9fSx7a2V5OiJpc0Zvcm1hdDJEQXJyYXkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53LmNvbmZpZy5zZXJpZXMuc2xpY2UoKSxlPW5ldyBZKHRoaXMuY3R4KTtpZih0aGlzLmFjdGl2ZVNlcmllc0luZGV4PWUuZ2V0QWN0aXZlQ29uZmlnU2VyaWVzSW5kZXgoKSx2b2lkIDAhPT10W3RoaXMuYWN0aXZlU2VyaWVzSW5kZXhdLmRhdGEmJnRbdGhpcy5hY3RpdmVTZXJpZXNJbmRleF0uZGF0YS5sZW5ndGg+MCYmdm9pZCAwIT09dFt0aGlzLmFjdGl2ZVNlcmllc0luZGV4XS5kYXRhWzBdJiZudWxsIT09dFt0aGlzLmFjdGl2ZVNlcmllc0luZGV4XS5kYXRhWzBdJiZ0W3RoaXMuYWN0aXZlU2VyaWVzSW5kZXhdLmRhdGFbMF0uY29uc3RydWN0b3I9PT1BcnJheSlyZXR1cm4hMH19LHtrZXk6ImhhbmRsZUZvcm1hdDJEQXJyYXkiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBpPXRoaXMudy5jb25maWcscz10aGlzLncuZ2xvYmFscyxhPSJib3hQbG90Ij09PWkuY2hhcnQudHlwZXx8ImJveFBsb3QiPT09aS5zZXJpZXNbZV0udHlwZSxuPTA7bjx0W2VdLmRhdGEubGVuZ3RoO24rKylpZih2b2lkIDAhPT10W2VdLmRhdGFbbl1bMV0mJihBcnJheS5pc0FycmF5KHRbZV0uZGF0YVtuXVsxXSkmJjQ9PT10W2VdLmRhdGFbbl1bMV0ubGVuZ3RoJiYhYT90aGlzLnR3b0RTZXJpZXMucHVzaChiLnBhcnNlTnVtYmVyKHRbZV0uZGF0YVtuXVsxXVszXSkpOnRbZV0uZGF0YVtuXS5sZW5ndGg+PTU/dGhpcy50d29EU2VyaWVzLnB1c2goYi5wYXJzZU51bWJlcih0W2VdLmRhdGFbbl1bNF0pKTp0aGlzLnR3b0RTZXJpZXMucHVzaChiLnBhcnNlTnVtYmVyKHRbZV0uZGF0YVtuXVsxXSkpLHMuZGF0YUZvcm1hdFhOdW1lcmljPSEwKSwiZGF0ZXRpbWUiPT09aS54YXhpcy50eXBlKXt2YXIgcj1uZXcgRGF0ZSh0W2VdLmRhdGFbbl1bMF0pO3I9bmV3IERhdGUocikuZ2V0VGltZSgpLHRoaXMudHdvRFNlcmllc1gucHVzaChyKX1lbHNlIHRoaXMudHdvRFNlcmllc1gucHVzaCh0W2VdLmRhdGFbbl1bMF0pO2Zvcih2YXIgbz0wO288dFtlXS5kYXRhLmxlbmd0aDtvKyspdm9pZCAwIT09dFtlXS5kYXRhW29dWzJdJiYodGhpcy50aHJlZURTZXJpZXMucHVzaCh0W2VdLmRhdGFbb11bMl0pLHMuaXNEYXRhWFlaPSEwKX19LHtrZXk6ImhhbmRsZUZvcm1hdFhZIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudy5jb25maWcscz10aGlzLncuZ2xvYmFscyxhPW5ldyBPKHRoaXMuY3R4KSxuPWU7cy5jb2xsYXBzZWRTZXJpZXNJbmRpY2VzLmluZGV4T2YoZSk+LTEmJihuPXRoaXMuYWN0aXZlU2VyaWVzSW5kZXgpO2Zvcih2YXIgcj0wO3I8dFtlXS5kYXRhLmxlbmd0aDtyKyspdm9pZCAwIT09dFtlXS5kYXRhW3JdLnkmJihBcnJheS5pc0FycmF5KHRbZV0uZGF0YVtyXS55KT90aGlzLnR3b0RTZXJpZXMucHVzaChiLnBhcnNlTnVtYmVyKHRbZV0uZGF0YVtyXS55W3RbZV0uZGF0YVtyXS55Lmxlbmd0aC0xXSkpOnRoaXMudHdvRFNlcmllcy5wdXNoKGIucGFyc2VOdW1iZXIodFtlXS5kYXRhW3JdLnkpKSksdm9pZCAwIT09dFtlXS5kYXRhW3JdLmdvYWxzJiZBcnJheS5pc0FycmF5KHRbZV0uZGF0YVtyXS5nb2Fscyk/KHZvaWQgMD09PXRoaXMuc2VyaWVzR29hbHNbZV0mJih0aGlzLnNlcmllc0dvYWxzW2VdPVtdKSx0aGlzLnNlcmllc0dvYWxzW2VdLnB1c2godFtlXS5kYXRhW3JdLmdvYWxzKSk6KHZvaWQgMD09PXRoaXMuc2VyaWVzR29hbHNbZV0mJih0aGlzLnNlcmllc0dvYWxzW2VdPVtdKSx0aGlzLnNlcmllc0dvYWxzW2VdLnB1c2gobnVsbCkpO2Zvcih2YXIgbz0wO288dFtuXS5kYXRhLmxlbmd0aDtvKyspe3ZhciBsPSJzdHJpbmciPT10eXBlb2YgdFtuXS5kYXRhW29dLngsYz1BcnJheS5pc0FycmF5KHRbbl0uZGF0YVtvXS54KSxoPSFjJiYhIWEuaXNWYWxpZERhdGUodFtuXS5kYXRhW29dLngudG9TdHJpbmcoKSk7aWYobHx8aClpZihsfHxpLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYyl7dmFyIGQ9cy5pc0Jhckhvcml6b250YWwmJnMuaXNSYW5nZURhdGE7ImRhdGV0aW1lIiE9PWkueGF4aXMudHlwZXx8ZD8odGhpcy5mYWxsYmFja1RvQ2F0ZWdvcnk9ITAsdGhpcy50d29EU2VyaWVzWC5wdXNoKHRbbl0uZGF0YVtvXS54KSk6dGhpcy50d29EU2VyaWVzWC5wdXNoKGEucGFyc2VEYXRlKHRbbl0uZGF0YVtvXS54KSl9ZWxzZSJkYXRldGltZSI9PT1pLnhheGlzLnR5cGU/dGhpcy50d29EU2VyaWVzWC5wdXNoKGEucGFyc2VEYXRlKHRbbl0uZGF0YVtvXS54LnRvU3RyaW5nKCkpKToocy5kYXRhRm9ybWF0WE51bWVyaWM9ITAscy5pc1hOdW1lcmljPSEwLHRoaXMudHdvRFNlcmllc1gucHVzaChwYXJzZUZsb2F0KHRbbl0uZGF0YVtvXS54KSkpO2Vsc2UgYz8odGhpcy5mYWxsYmFja1RvQ2F0ZWdvcnk9ITAsdGhpcy50d29EU2VyaWVzWC5wdXNoKHRbbl0uZGF0YVtvXS54KSk6KHMuaXNYTnVtZXJpYz0hMCxzLmRhdGFGb3JtYXRYTnVtZXJpYz0hMCx0aGlzLnR3b0RTZXJpZXNYLnB1c2godFtuXS5kYXRhW29dLngpKX1pZih0W2VdLmRhdGFbMF0mJnZvaWQgMCE9PXRbZV0uZGF0YVswXS56KXtmb3IodmFyIHU9MDt1PHRbZV0uZGF0YS5sZW5ndGg7dSsrKXRoaXMudGhyZWVEU2VyaWVzLnB1c2godFtlXS5kYXRhW3VdLnopO3MuaXNEYXRhWFlaPSEwfX19LHtrZXk6ImhhbmRsZVJhbmdlRGF0YSIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLncuZ2xvYmFscyxzPXt9O3JldHVybiB0aGlzLmlzRm9ybWF0MkRBcnJheSgpP3M9dGhpcy5oYW5kbGVSYW5nZURhdGFGb3JtYXQoImFycmF5Iix0LGUpOnRoaXMuaXNGb3JtYXRYWSgpJiYocz10aGlzLmhhbmRsZVJhbmdlRGF0YUZvcm1hdCgieHkiLHQsZSkpLGkuc2VyaWVzUmFuZ2VTdGFydC5wdXNoKHMuc3RhcnQpLGkuc2VyaWVzUmFuZ2VFbmQucHVzaChzLmVuZCksaS5zZXJpZXNSYW5nZS5wdXNoKHMucmFuZ2VVbmlxdWVzKSxpLnNlcmllc1JhbmdlLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dCYmdC5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3QueS5mb3JFYWNoKChmdW5jdGlvbihlLGkpe2Zvcih2YXIgcz0wO3M8dC55Lmxlbmd0aDtzKyspaWYoaSE9PXMpe3ZhciBhPWUueTEsbj1lLnkyLHI9dC55W3NdLnkxO2E8PXQueVtzXS55MiYmcjw9biYmKHQub3ZlcmxhcHMuaW5kZXhPZihlLnJhbmdlTmFtZSk8MCYmdC5vdmVybGFwcy5wdXNoKGUucmFuZ2VOYW1lKSx0Lm92ZXJsYXBzLmluZGV4T2YodC55W3NdLnJhbmdlTmFtZSk8MCYmdC5vdmVybGFwcy5wdXNoKHQueVtzXS5yYW5nZU5hbWUpKX19KSl9KSl9KSksc319LHtrZXk6ImhhbmRsZUNhbmRsZVN0aWNrQm94RGF0YSIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLncuZ2xvYmFscyxzPXt9O3JldHVybiB0aGlzLmlzRm9ybWF0MkRBcnJheSgpP3M9dGhpcy5oYW5kbGVDYW5kbGVTdGlja0JveERhdGFGb3JtYXQoImFycmF5Iix0LGUpOnRoaXMuaXNGb3JtYXRYWSgpJiYocz10aGlzLmhhbmRsZUNhbmRsZVN0aWNrQm94RGF0YUZvcm1hdCgieHkiLHQsZSkpLGkuc2VyaWVzQ2FuZGxlT1tlXT1zLm8saS5zZXJpZXNDYW5kbGVIW2VdPXMuaCxpLnNlcmllc0NhbmRsZU1bZV09cy5tLGkuc2VyaWVzQ2FuZGxlTFtlXT1zLmwsaS5zZXJpZXNDYW5kbGVDW2VdPXMuYyxzfX0se2tleToiaGFuZGxlUmFuZ2VEYXRhRm9ybWF0Iix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9W10sYT1bXSxuPWVbaV0uZGF0YS5maWx0ZXIoKGZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gZT09PWkuZmluZEluZGV4KChmdW5jdGlvbihlKXtyZXR1cm4gZS54PT09dC54fSkpfSkpLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm57eDp0Lngsb3ZlcmxhcHM6W10seTpbXX19KSk7aWYoImFycmF5Ij09PXQpZm9yKHZhciByPTA7cjxlW2ldLmRhdGEubGVuZ3RoO3IrKylBcnJheS5pc0FycmF5KGVbaV0uZGF0YVtyXSk/KHMucHVzaChlW2ldLmRhdGFbcl1bMV1bMF0pLGEucHVzaChlW2ldLmRhdGFbcl1bMV1bMV0pKToocy5wdXNoKGVbaV0uZGF0YVtyXSksYS5wdXNoKGVbaV0uZGF0YVtyXSkpO2Vsc2UgaWYoInh5Ij09PXQpZm9yKHZhciBvPWZ1bmN0aW9uKHQpe3ZhciByPUFycmF5LmlzQXJyYXkoZVtpXS5kYXRhW3RdLnkpLG89Yi5yYW5kb21JZCgpLGw9ZVtpXS5kYXRhW3RdLngsYz17eTE6cj9lW2ldLmRhdGFbdF0ueVswXTplW2ldLmRhdGFbdF0ueSx5MjpyP2VbaV0uZGF0YVt0XS55WzFdOmVbaV0uZGF0YVt0XS55LHJhbmdlTmFtZTpvfTtlW2ldLmRhdGFbdF0ucmFuZ2VOYW1lPW87dmFyIGg9bi5maW5kSW5kZXgoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lng9PT1sfSkpO25baF0ueS5wdXNoKGMpLHMucHVzaChjLnkxKSxhLnB1c2goYy55Mil9LGw9MDtsPGVbaV0uZGF0YS5sZW5ndGg7bCsrKW8obCk7cmV0dXJue3N0YXJ0OnMsZW5kOmEscmFuZ2VVbmlxdWVzOm59fX0se2tleToiaGFuZGxlQ2FuZGxlU3RpY2tCb3hEYXRhRm9ybWF0Iix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpcy53LGE9ImJveFBsb3QiPT09cy5jb25maWcuY2hhcnQudHlwZXx8ImJveFBsb3QiPT09cy5jb25maWcuc2VyaWVzW2ldLnR5cGUsbj1bXSxyPVtdLG89W10sbD1bXSxjPVtdO2lmKCJhcnJheSI9PT10KWlmKGEmJjY9PT1lW2ldLmRhdGFbMF0ubGVuZ3RofHwhYSYmNT09PWVbaV0uZGF0YVswXS5sZW5ndGgpZm9yKHZhciBoPTA7aDxlW2ldLmRhdGEubGVuZ3RoO2grKyluLnB1c2goZVtpXS5kYXRhW2hdWzFdKSxyLnB1c2goZVtpXS5kYXRhW2hdWzJdKSxhPyhvLnB1c2goZVtpXS5kYXRhW2hdWzNdKSxsLnB1c2goZVtpXS5kYXRhW2hdWzRdKSxjLnB1c2goZVtpXS5kYXRhW2hdWzVdKSk6KGwucHVzaChlW2ldLmRhdGFbaF1bM10pLGMucHVzaChlW2ldLmRhdGFbaF1bNF0pKTtlbHNlIGZvcih2YXIgZD0wO2Q8ZVtpXS5kYXRhLmxlbmd0aDtkKyspQXJyYXkuaXNBcnJheShlW2ldLmRhdGFbZF1bMV0pJiYobi5wdXNoKGVbaV0uZGF0YVtkXVsxXVswXSksci5wdXNoKGVbaV0uZGF0YVtkXVsxXVsxXSksYT8oby5wdXNoKGVbaV0uZGF0YVtkXVsxXVsyXSksbC5wdXNoKGVbaV0uZGF0YVtkXVsxXVszXSksYy5wdXNoKGVbaV0uZGF0YVtkXVsxXVs0XSkpOihsLnB1c2goZVtpXS5kYXRhW2RdWzFdWzJdKSxjLnB1c2goZVtpXS5kYXRhW2RdWzFdWzNdKSkpO2Vsc2UgaWYoInh5Ij09PXQpZm9yKHZhciB1PTA7dTxlW2ldLmRhdGEubGVuZ3RoO3UrKylBcnJheS5pc0FycmF5KGVbaV0uZGF0YVt1XS55KSYmKG4ucHVzaChlW2ldLmRhdGFbdV0ueVswXSksci5wdXNoKGVbaV0uZGF0YVt1XS55WzFdKSxhPyhvLnB1c2goZVtpXS5kYXRhW3VdLnlbMl0pLGwucHVzaChlW2ldLmRhdGFbdV0ueVszXSksYy5wdXNoKGVbaV0uZGF0YVt1XS55WzRdKSk6KGwucHVzaChlW2ldLmRhdGFbdV0ueVsyXSksYy5wdXNoKGVbaV0uZGF0YVt1XS55WzNdKSkpO3JldHVybntvOm4saDpyLG06byxsOmwsYzpjfX19LHtrZXk6InBhcnNlRGF0YUF4aXNDaGFydHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5jdHgscz10aGlzLncuY29uZmlnLGE9dGhpcy53Lmdsb2JhbHMsbj1uZXcgTyhpKSxyPXMubGFiZWxzLmxlbmd0aD4wP3MubGFiZWxzLnNsaWNlKCk6cy54YXhpcy5jYXRlZ29yaWVzLnNsaWNlKCk7YS5pc1JhbmdlQmFyPSJyYW5nZUJhciI9PT1zLmNoYXJ0LnR5cGUmJmEuaXNCYXJIb3Jpem9udGFsLGEuaGFzR3JvdXBzPSJjYXRlZ29yeSI9PT1zLnhheGlzLnR5cGUmJnMueGF4aXMuZ3JvdXAuZ3JvdXBzLmxlbmd0aD4wLGEuaGFzR3JvdXBzJiYoYS5ncm91cHM9cy54YXhpcy5ncm91cC5ncm91cHMpO2Zvcih2YXIgbz1mdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8ci5sZW5ndGg7dCsrKWlmKCJzdHJpbmciPT10eXBlb2Ygclt0XSl7aWYoIW4uaXNWYWxpZERhdGUoclt0XSkpdGhyb3cgbmV3IEVycm9yKCJZb3UgaGF2ZSBwcm92aWRlZCBpbnZhbGlkIERhdGUgZm9ybWF0LiBQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIEphdmFTY3JpcHQgRGF0ZSIpO2UudHdvRFNlcmllc1gucHVzaChuLnBhcnNlRGF0ZShyW3RdKSl9ZWxzZSBlLnR3b0RTZXJpZXNYLnB1c2goclt0XSl9LGw9MDtsPHQubGVuZ3RoO2wrKyl7aWYodGhpcy50d29EU2VyaWVzPVtdLHRoaXMudHdvRFNlcmllc1g9W10sdGhpcy50aHJlZURTZXJpZXM9W10sdm9pZCAwPT09dFtsXS5kYXRhKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIkl0IGlzIGEgcG9zc2liaWxpdHkgdGhhdCB5b3UgbWF5IGhhdmUgbm90IGluY2x1ZGVkICdkYXRhJyBwcm9wZXJ0eSBpbiBzZXJpZXMuIik7aWYoInJhbmdlQmFyIiE9PXMuY2hhcnQudHlwZSYmInJhbmdlQXJlYSIhPT1zLmNoYXJ0LnR5cGUmJiJyYW5nZUJhciIhPT10W2xdLnR5cGUmJiJyYW5nZUFyZWEiIT09dFtsXS50eXBlfHwoYS5pc1JhbmdlRGF0YT0hMCxhLmlzQ29tYm9DaGFydHM/InJhbmdlQmFyIiE9PXRbbF0udHlwZSYmInJhbmdlQXJlYSIhPT10W2xdLnR5cGV8fHRoaXMuaGFuZGxlUmFuZ2VEYXRhKHQsbCk6InJhbmdlQmFyIiE9PXMuY2hhcnQudHlwZSYmInJhbmdlQXJlYSIhPT1zLmNoYXJ0LnR5cGV8fHRoaXMuaGFuZGxlUmFuZ2VEYXRhKHQsbCkpLHRoaXMuaXNNdWx0aUZvcm1hdCgpKXRoaXMuaXNGb3JtYXQyREFycmF5KCk/dGhpcy5oYW5kbGVGb3JtYXQyREFycmF5KHQsbCk6dGhpcy5pc0Zvcm1hdFhZKCkmJnRoaXMuaGFuZGxlRm9ybWF0WFkodCxsKSwiY2FuZGxlc3RpY2siIT09cy5jaGFydC50eXBlJiYiY2FuZGxlc3RpY2siIT09dFtsXS50eXBlJiYiYm94UGxvdCIhPT1zLmNoYXJ0LnR5cGUmJiJib3hQbG90IiE9PXRbbF0udHlwZXx8dGhpcy5oYW5kbGVDYW5kbGVTdGlja0JveERhdGEodCxsKSxhLnNlcmllcy5wdXNoKHRoaXMudHdvRFNlcmllcyksYS5sYWJlbHMucHVzaCh0aGlzLnR3b0RTZXJpZXNYKSxhLnNlcmllc1gucHVzaCh0aGlzLnR3b0RTZXJpZXNYKSxhLnNlcmllc0dvYWxzPXRoaXMuc2VyaWVzR29hbHMsbCE9PXRoaXMuYWN0aXZlU2VyaWVzSW5kZXh8fHRoaXMuZmFsbGJhY2tUb0NhdGVnb3J5fHwoYS5pc1hOdW1lcmljPSEwKTtlbHNleyJkYXRldGltZSI9PT1zLnhheGlzLnR5cGU/KGEuaXNYTnVtZXJpYz0hMCxvKCksYS5zZXJpZXNYLnB1c2godGhpcy50d29EU2VyaWVzWCkpOiJudW1lcmljIj09PXMueGF4aXMudHlwZSYmKGEuaXNYTnVtZXJpYz0hMCxyLmxlbmd0aD4wJiYodGhpcy50d29EU2VyaWVzWD1yLGEuc2VyaWVzWC5wdXNoKHRoaXMudHdvRFNlcmllc1gpKSksYS5sYWJlbHMucHVzaCh0aGlzLnR3b0RTZXJpZXNYKTt2YXIgYz10W2xdLmRhdGEubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gYi5wYXJzZU51bWJlcih0KX0pKTthLnNlcmllcy5wdXNoKGMpfWEuc2VyaWVzWi5wdXNoKHRoaXMudGhyZWVEU2VyaWVzKSx2b2lkIDAhPT10W2xdLm5hbWU/YS5zZXJpZXNOYW1lcy5wdXNoKHRbbF0ubmFtZSk6YS5zZXJpZXNOYW1lcy5wdXNoKCJzZXJpZXMtIitwYXJzZUludChsKzEsMTApKSx2b2lkIDAhPT10W2xdLmNvbG9yP2Euc2VyaWVzQ29sb3JzLnB1c2godFtsXS5jb2xvcik6YS5zZXJpZXNDb2xvcnMucHVzaCh2b2lkIDApfXJldHVybiB0aGlzLnd9fSx7a2V5OiJwYXJzZURhdGFOb25BeGlzQ2hhcnRzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncuZ2xvYmFscyxpPXRoaXMudy5jb25maWc7ZS5zZXJpZXM9dC5zbGljZSgpLGUuc2VyaWVzTmFtZXM9aS5sYWJlbHMuc2xpY2UoKTtmb3IodmFyIHM9MDtzPGUuc2VyaWVzLmxlbmd0aDtzKyspdm9pZCAwPT09ZS5zZXJpZXNOYW1lc1tzXSYmZS5zZXJpZXNOYW1lcy5wdXNoKCJzZXJpZXMtIisocysxKSk7cmV0dXJuIHRoaXMud319LHtrZXk6ImhhbmRsZUV4dGVybmFsTGFiZWxzRGF0YSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53LmNvbmZpZyxpPXRoaXMudy5nbG9iYWxzO2UueGF4aXMuY2F0ZWdvcmllcy5sZW5ndGg+MD9pLmxhYmVscz1lLnhheGlzLmNhdGVnb3JpZXM6ZS5sYWJlbHMubGVuZ3RoPjA/aS5sYWJlbHM9ZS5sYWJlbHMuc2xpY2UoKTp0aGlzLmZhbGxiYWNrVG9DYXRlZ29yeT8oaS5sYWJlbHM9aS5sYWJlbHNbMF0saS5zZXJpZXNSYW5nZS5sZW5ndGgmJihpLnNlcmllc1JhbmdlLm1hcCgoZnVuY3Rpb24odCl7dC5mb3JFYWNoKChmdW5jdGlvbih0KXtpLmxhYmVscy5pbmRleE9mKHQueCk8MCYmdC54JiZpLmxhYmVscy5wdXNoKHQueCl9KSl9KSksaS5sYWJlbHM9aS5sYWJlbHMuZmlsdGVyKChmdW5jdGlvbih0LGUsaSl7cmV0dXJuIGkuaW5kZXhPZih0KT09PWV9KSkpLGUueGF4aXMuY29udmVydGVkQ2F0VG9OdW1lcmljJiYobmV3IEQoZSkuY29udmVydENhdFRvTnVtZXJpY1hheGlzKGUsdGhpcy5jdHgsaS5zZXJpZXNYWzBdKSx0aGlzLl9nZW5lcmF0ZUV4dGVybmFsTGFiZWxzKHQpKSk6dGhpcy5fZ2VuZXJhdGVFeHRlcm5hbExhYmVscyh0KX19LHtrZXk6Il9nZW5lcmF0ZUV4dGVybmFsTGFiZWxzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncuZ2xvYmFscyxpPXRoaXMudy5jb25maWcscz1bXTtpZihlLmF4aXNDaGFydHMpe2lmKGUuc2VyaWVzLmxlbmd0aD4wKWlmKHRoaXMuaXNGb3JtYXRYWSgpKWZvcih2YXIgYT1pLnNlcmllcy5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuZGF0YS5maWx0ZXIoKGZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gaS5maW5kSW5kZXgoKGZ1bmN0aW9uKGUpe3JldHVybiBlLng9PT10Lnh9KSk9PT1lfSkpfSkpLG49YS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSxpLHMpe3JldHVybiBzW3RdLmxlbmd0aD5lLmxlbmd0aD90Oml9KSwwKSxyPTA7cjxhW25dLmxlbmd0aDtyKyspcy5wdXNoKHIrMSk7ZWxzZSBmb3IodmFyIG89MDtvPGUuc2VyaWVzW2UubWF4VmFsc0luQXJyYXlJbmRleF0ubGVuZ3RoO28rKylzLnB1c2gobysxKTtlLnNlcmllc1g9W107Zm9yKHZhciBsPTA7bDx0Lmxlbmd0aDtsKyspZS5zZXJpZXNYLnB1c2gocyk7ZS5pc1hOdW1lcmljPSEwfWlmKDA9PT1zLmxlbmd0aCl7cz1lLmF4aXNDaGFydHM/W106ZS5zZXJpZXMubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiBlKzF9KSk7Zm9yKHZhciBjPTA7Yzx0Lmxlbmd0aDtjKyspZS5zZXJpZXNYLnB1c2gocyl9ZS5sYWJlbHM9cyxpLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYyYmKGUuY2F0ZWdvcnlMYWJlbHM9cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBpLnhheGlzLmxhYmVscy5mb3JtYXR0ZXIodCl9KSkpLGUubm9MYWJlbHNQcm92aWRlZD0hMH19LHtrZXk6InBhcnNlRGF0YSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53LGk9ZS5jb25maWcscz1lLmdsb2JhbHM7aWYodGhpcy5leGNsdWRlQ29sbGFwc2VkU2VyaWVzSW5ZQXhpcygpLHRoaXMuZmFsbGJhY2tUb0NhdGVnb3J5PSExLHRoaXMuY3R4LmNvcmUucmVzZXRHbG9iYWxzKCksdGhpcy5jdHguY29yZS5pc011bHRpcGxlWSgpLHMuYXhpc0NoYXJ0cz8odGhpcy5wYXJzZURhdGFBeGlzQ2hhcnRzKHQpLHRoaXMuY29yZVV0aWxzLmdldExhcmdlc3RTZXJpZXMoKSk6dGhpcy5wYXJzZURhdGFOb25BeGlzQ2hhcnRzKHQpLCJiYXIiPT09aS5jaGFydC50eXBlJiZpLmNoYXJ0LnN0YWNrZWQpe3ZhciBhPW5ldyBZKHRoaXMuY3R4KTtzLnNlcmllcz1hLnNldE51bGxTZXJpZXNUb1plcm9WYWx1ZXMocy5zZXJpZXMpfXRoaXMuY29yZVV0aWxzLmdldFNlcmllc1RvdGFscygpLHMuYXhpc0NoYXJ0cyYmKHMuc3RhY2tlZFNlcmllc1RvdGFscz10aGlzLmNvcmVVdGlscy5nZXRTdGFja2VkU2VyaWVzVG90YWxzKCkpLHRoaXMuY29yZVV0aWxzLmdldFBlcmNlbnRTZXJpZXMoKSxzLmRhdGFGb3JtYXRYTnVtZXJpY3x8cy5pc1hOdW1lcmljJiYoIm51bWVyaWMiIT09aS54YXhpcy50eXBlfHwwIT09aS5sYWJlbHMubGVuZ3RofHwwIT09aS54YXhpcy5jYXRlZ29yaWVzLmxlbmd0aCl8fHRoaXMuaGFuZGxlRXh0ZXJuYWxMYWJlbHNEYXRhKHQpO2Zvcih2YXIgbj10aGlzLmNvcmVVdGlscy5nZXRDYXRlZ29yeUxhYmVscyhzLmxhYmVscykscj0wO3I8bi5sZW5ndGg7cisrKWlmKEFycmF5LmlzQXJyYXkobltyXSkpe3MuaXNNdWx0aUxpbmVYPSEwO2JyZWFrfX19LHtrZXk6ImV4Y2x1ZGVDb2xsYXBzZWRTZXJpZXNJbllBeGlzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLnc7ZS5nbG9iYWxzLmlnbm9yZVlBeGlzSW5kZXhlcz1lLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzLm1hcCgoZnVuY3Rpb24oaSxzKXtpZih0LncuZ2xvYmFscy5pc011bHRpcGxlWUF4aXMmJiFlLmNvbmZpZy5jaGFydC5zdGFja2VkKXJldHVybiBpLmluZGV4fSkpfX1dKSx0fSgpLCQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLncsdGhpcy50b29sdGlwS2V5Rm9ybWF0PSJkZCBNTU0ifXJldHVybiBjKHQsW3trZXk6InhMYWJlbEZvcm1hdCIsdmFsdWU6ZnVuY3Rpb24odCxlLGkscyl7dmFyIGE9dGhpcy53O2lmKCJkYXRldGltZSI9PT1hLmNvbmZpZy54YXhpcy50eXBlJiZ2b2lkIDA9PT1hLmNvbmZpZy54YXhpcy5sYWJlbHMuZm9ybWF0dGVyJiZ2b2lkIDA9PT1hLmNvbmZpZy50b29sdGlwLnguZm9ybWF0dGVyKXt2YXIgbj1uZXcgTyh0aGlzLmN0eCk7cmV0dXJuIG4uZm9ybWF0RGF0ZShuLmdldERhdGUoZSksYS5jb25maWcudG9vbHRpcC54LmZvcm1hdCl9cmV0dXJuIHQoZSxpLHMpfX0se2tleToiZGVmYXVsdEdlbmVyYWxGb3JtYXR0ZXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3QubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKTp0fX0se2tleToiZGVmYXVsdFlGb3JtYXR0ZXIiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzLnc7cmV0dXJuIGIuaXNOdW1iZXIodCkmJih0PTAhPT1zLmdsb2JhbHMueVZhbHVlRGVjaW1hbD90LnRvRml4ZWQodm9pZCAwIT09ZS5kZWNpbWFsc0luRmxvYXQ/ZS5kZWNpbWFsc0luRmxvYXQ6cy5nbG9iYWxzLnlWYWx1ZURlY2ltYWwpOnMuZ2xvYmFscy5tYXhZQXJyW2ldLXMuZ2xvYmFscy5taW5ZQXJyW2ldPDU/dC50b0ZpeGVkKDEpOnQudG9GaXhlZCgwKSksdH19LHtrZXk6InNldExhYmVsRm9ybWF0dGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy53O3JldHVybiBlLmdsb2JhbHMueGF4aXNUb29sdGlwRm9ybWF0dGVyPWZ1bmN0aW9uKGUpe3JldHVybiB0LmRlZmF1bHRHZW5lcmFsRm9ybWF0dGVyKGUpfSxlLmdsb2JhbHMudHRLZXlGb3JtYXR0ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZGVmYXVsdEdlbmVyYWxGb3JtYXR0ZXIoZSl9LGUuZ2xvYmFscy50dFpGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LGUuZ2xvYmFscy5sZWdlbmRGb3JtYXR0ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZGVmYXVsdEdlbmVyYWxGb3JtYXR0ZXIoZSl9LHZvaWQgMCE9PWUuY29uZmlnLnhheGlzLmxhYmVscy5mb3JtYXR0ZXI/ZS5nbG9iYWxzLnhMYWJlbEZvcm1hdHRlcj1lLmNvbmZpZy54YXhpcy5sYWJlbHMuZm9ybWF0dGVyOmUuZ2xvYmFscy54TGFiZWxGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7aWYoYi5pc051bWJlcih0KSl7aWYoIWUuY29uZmlnLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYyYmIm51bWVyaWMiPT09ZS5jb25maWcueGF4aXMudHlwZSl7aWYoYi5pc051bWJlcihlLmNvbmZpZy54YXhpcy5kZWNpbWFsc0luRmxvYXQpKXJldHVybiB0LnRvRml4ZWQoZS5jb25maWcueGF4aXMuZGVjaW1hbHNJbkZsb2F0KTt2YXIgaT1lLmdsb2JhbHMubWF4WC1lLmdsb2JhbHMubWluWDtyZXR1cm4gaT4wJiZpPDEwMD90LnRvRml4ZWQoMSk6dC50b0ZpeGVkKDApfXJldHVybiBlLmdsb2JhbHMuaXNCYXJIb3Jpem9udGFsJiZlLmdsb2JhbHMubWF4WS1lLmdsb2JhbHMubWluWUFycjw0P3QudG9GaXhlZCgxKTp0LnRvRml4ZWQoMCl9cmV0dXJuIHR9LCJmdW5jdGlvbiI9PXR5cGVvZiBlLmNvbmZpZy50b29sdGlwLnguZm9ybWF0dGVyP2UuZ2xvYmFscy50dEtleUZvcm1hdHRlcj1lLmNvbmZpZy50b29sdGlwLnguZm9ybWF0dGVyOmUuZ2xvYmFscy50dEtleUZvcm1hdHRlcj1lLmdsb2JhbHMueExhYmVsRm9ybWF0dGVyLCJmdW5jdGlvbiI9PXR5cGVvZiBlLmNvbmZpZy54YXhpcy50b29sdGlwLmZvcm1hdHRlciYmKGUuZ2xvYmFscy54YXhpc1Rvb2x0aXBGb3JtYXR0ZXI9ZS5jb25maWcueGF4aXMudG9vbHRpcC5mb3JtYXR0ZXIpLChBcnJheS5pc0FycmF5KGUuY29uZmlnLnRvb2x0aXAueSl8fHZvaWQgMCE9PWUuY29uZmlnLnRvb2x0aXAueS5mb3JtYXR0ZXIpJiYoZS5nbG9iYWxzLnR0VmFsPWUuY29uZmlnLnRvb2x0aXAueSksdm9pZCAwIT09ZS5jb25maWcudG9vbHRpcC56LmZvcm1hdHRlciYmKGUuZ2xvYmFscy50dFpGb3JtYXR0ZXI9ZS5jb25maWcudG9vbHRpcC56LmZvcm1hdHRlciksdm9pZCAwIT09ZS5jb25maWcubGVnZW5kLmZvcm1hdHRlciYmKGUuZ2xvYmFscy5sZWdlbmRGb3JtYXR0ZXI9ZS5jb25maWcubGVnZW5kLmZvcm1hdHRlciksZS5jb25maWcueWF4aXMuZm9yRWFjaCgoZnVuY3Rpb24oaSxzKXt2b2lkIDAhPT1pLmxhYmVscy5mb3JtYXR0ZXI/ZS5nbG9iYWxzLnlMYWJlbEZvcm1hdHRlcnNbc109aS5sYWJlbHMuZm9ybWF0dGVyOmUuZ2xvYmFscy55TGFiZWxGb3JtYXR0ZXJzW3NdPWZ1bmN0aW9uKGEpe3JldHVybiBlLmdsb2JhbHMueHlDaGFydHM/QXJyYXkuaXNBcnJheShhKT9hLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZGVmYXVsdFlGb3JtYXR0ZXIoZSxpLHMpfSkpOnQuZGVmYXVsdFlGb3JtYXR0ZXIoYSxpLHMpOmF9fSkpLGUuZ2xvYmFsc319LHtrZXk6ImhlYXRtYXBMYWJlbEZvcm1hdHRlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53O2lmKCJoZWF0bWFwIj09PXQuY29uZmlnLmNoYXJ0LnR5cGUpe3QuZ2xvYmFscy55QXhpc1NjYWxlWzBdLnJlc3VsdD10Lmdsb2JhbHMuc2VyaWVzTmFtZXMuc2xpY2UoKTt2YXIgZT10Lmdsb2JhbHMuc2VyaWVzTmFtZXMucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0Lmxlbmd0aD5lLmxlbmd0aD90OmV9KSwwKTt0Lmdsb2JhbHMueUF4aXNTY2FsZVswXS5uaWNlTWF4PWUsdC5nbG9iYWxzLnlBeGlzU2NhbGVbMF0ubmljZU1pbj1lfX19XSksdH0oKSxWPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLnc9ZS53fXJldHVybiBjKHQsW3trZXk6ImdldExhYmVsIix2YWx1ZTpmdW5jdGlvbih0LGUsaSxzKXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XT9hcmd1bWVudHNbNF06W10sbj1hcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XT9hcmd1bWVudHNbNV06IjEycHgiLHI9IShhcmd1bWVudHMubGVuZ3RoPjYmJnZvaWQgMCE9PWFyZ3VtZW50c1s2XSl8fGFyZ3VtZW50c1s2XSxvPXRoaXMudyxsPXZvaWQgMD09PXRbc10/IiI6dFtzXSxjPWwsaD1vLmdsb2JhbHMueExhYmVsRm9ybWF0dGVyLGQ9by5jb25maWcueGF4aXMubGFiZWxzLmZvcm1hdHRlcix1PSExLHA9bmV3ICQodGhpcy5jdHgpLGc9bDtyJiYoYz1wLnhMYWJlbEZvcm1hdChoLGwsZyx7aTpzLGRhdGVGb3JtYXR0ZXI6bmV3IE8odGhpcy5jdHgpLmZvcm1hdERhdGUsdzpvfSksdm9pZCAwIT09ZCYmKGM9ZChsLHRbc10se2k6cyxkYXRlRm9ybWF0dGVyOm5ldyBPKHRoaXMuY3R4KS5mb3JtYXREYXRlLHc6b30pKSk7dmFyIGY9ZnVuY3Rpb24odCl7dmFyIGk9bnVsbDtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbih0KXsibW9udGgiPT09dC51bml0P2k9InllYXIiOiJkYXkiPT09dC51bml0P2k9Im1vbnRoIjoiaG91ciI9PT10LnVuaXQ/aT0iZGF5IjoibWludXRlIj09PXQudW5pdCYmKGk9ImhvdXIiKX0pKSxpPT09dH07ZS5sZW5ndGg+MD8odT1mKGVbc10udW5pdCksaT1lW3NdLnBvc2l0aW9uLGM9ZVtzXS52YWx1ZSk6ImRhdGV0aW1lIj09PW8uY29uZmlnLnhheGlzLnR5cGUmJnZvaWQgMD09PWQmJihjPSIiKSx2b2lkIDA9PT1jJiYoYz0iIiksYz1BcnJheS5pc0FycmF5KGMpP2M6Yy50b1N0cmluZygpO3ZhciBtPW5ldyBrKHRoaXMuY3R4KSx2PXt9O3Y9by5nbG9iYWxzLnJvdGF0ZVhMYWJlbHMmJnI/bS5nZXRUZXh0UmVjdHMoYyxwYXJzZUludChuLDEwKSxudWxsLCJyb3RhdGUoIi5jb25jYXQoby5jb25maWcueGF4aXMubGFiZWxzLnJvdGF0ZSwiIDAgMCkiKSwhMSk6bS5nZXRUZXh0UmVjdHMoYyxwYXJzZUludChuLDEwKSk7dmFyIHg9IW8uY29uZmlnLnhheGlzLmxhYmVscy5zaG93RHVwbGljYXRlcyYmdGhpcy5jdHgudGltZVNjYWxlO3JldHVybiFBcnJheS5pc0FycmF5KGMpJiYoMD09PWMuaW5kZXhPZigiTmFOIil8fDA9PT1jLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiaW52YWxpZCIpfHxjLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiaW5maW5pdHkiKT49MHx8YS5pbmRleE9mKGMpPj0wJiZ4KSYmKGM9IiIpLHt4OmksdGV4dDpjLHRleHRSZWN0OnYsaXNCb2xkOnV9fX0se2tleToiY2hlY2tMYWJlbEJhc2VkT25UaWNrYW1vdW50Iix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpcy53LGE9cy5jb25maWcueGF4aXMudGlja0Ftb3VudDtyZXR1cm4iZGF0YVBvaW50cyI9PT1hJiYoYT1NYXRoLnJvdW5kKHMuZ2xvYmFscy5ncmlkV2lkdGgvMTIwKSksYT5pfHx0JU1hdGgucm91bmQoaS8oYSsxKSk9PTB8fChlLnRleHQ9IiIpLGV9fSx7a2V5OiJjaGVja0Zvck92ZXJmbG93aW5nTGFiZWxzIix2YWx1ZTpmdW5jdGlvbih0LGUsaSxzLGEpe3ZhciBuPXRoaXMudztpZigwPT09dCYmbi5nbG9iYWxzLnNraXBGaXJzdFRpbWVsaW5lbGFiZWwmJihlLnRleHQ9IiIpLHQ9PT1pLTEmJm4uZ2xvYmFscy5za2lwTGFzdFRpbWVsaW5lbGFiZWwmJihlLnRleHQ9IiIpLG4uY29uZmlnLnhheGlzLmxhYmVscy5oaWRlT3ZlcmxhcHBpbmdMYWJlbHMmJnMubGVuZ3RoPjApe3ZhciByPWFbYS5sZW5ndGgtMV07ZS54PHIudGV4dFJlY3Qud2lkdGgvKG4uZ2xvYmFscy5yb3RhdGVYTGFiZWxzP01hdGguYWJzKG4uY29uZmlnLnhheGlzLmxhYmVscy5yb3RhdGUpLzEyOjEuMDEpK3IueCYmKGUudGV4dD0iIil9cmV0dXJuIGV9fSx7a2V5OiJjaGVja0ZvclJldmVyc2VkTGFiZWxzIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudztyZXR1cm4gaS5jb25maWcueWF4aXNbdF0mJmkuY29uZmlnLnlheGlzW3RdLnJldmVyc2VkJiZlLnJldmVyc2UoKSxlfX0se2tleToiaXNZQXhpc0hpZGRlbiIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53LGk9bmV3IFModGhpcy5jdHgpO3JldHVybiFlLmNvbmZpZy55YXhpc1t0XS5zaG93fHwhZS5jb25maWcueWF4aXNbdF0uc2hvd0Zvck51bGxTZXJpZXMmJmkuaXNTZXJpZXNOdWxsKHQpJiYtMT09PWUuZ2xvYmFscy5jb2xsYXBzZWRTZXJpZXNJbmRpY2VzLmluZGV4T2YodCl9fSx7a2V5OiJnZXRZQXhpc0ZvcmVDb2xvciIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnc7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJmkuZ2xvYmFscy55QXhpc1NjYWxlW2VdJiZ0aGlzLmN0eC50aGVtZS5wdXNoRXh0cmFDb2xvcnModCxpLmdsb2JhbHMueUF4aXNTY2FsZVtlXS5yZXN1bHQubGVuZ3RoLCExKSx0fX0se2tleToiZHJhd1lBeGlzVGlja3MiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMsYSxuLHIpe3ZhciBvPXRoaXMudyxsPW5ldyBrKHRoaXMuY3R4KSxjPW8uZ2xvYmFscy50cmFuc2xhdGVZO2lmKHMuc2hvdyYmZT4wKXshMD09PW8uY29uZmlnLnlheGlzW2FdLm9wcG9zaXRlJiYodCs9cy53aWR0aCk7Zm9yKHZhciBoPWU7aD49MDtoLS0pe3ZhciBkPWMrZS8xMCtvLmNvbmZpZy55YXhpc1thXS5sYWJlbHMub2Zmc2V0WS0xO28uZ2xvYmFscy5pc0Jhckhvcml6b250YWwmJihkPW4qaCksImhlYXRtYXAiPT09by5jb25maWcuY2hhcnQudHlwZSYmKGQrPW4vMik7dmFyIHU9bC5kcmF3TGluZSh0K2kub2Zmc2V0WC1zLndpZHRoK3Mub2Zmc2V0WCxkK3Mub2Zmc2V0WSx0K2kub2Zmc2V0WCtzLm9mZnNldFgsZCtzLm9mZnNldFkscy5jb2xvcik7ci5hZGQodSksYys9bn19fX1dKSx0fSgpLGo9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLnd9cmV0dXJuIGModCxbe2tleToic2NhbGVTdmdOb2RlIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXBhcnNlRmxvYXQodC5nZXRBdHRyaWJ1dGVOUyhudWxsLCJ3aWR0aCIpKSxzPXBhcnNlRmxvYXQodC5nZXRBdHRyaWJ1dGVOUyhudWxsLCJoZWlnaHQiKSk7dC5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ3aWR0aCIsaSplKSx0LnNldEF0dHJpYnV0ZU5TKG51bGwsImhlaWdodCIscyplKSx0LnNldEF0dHJpYnV0ZU5TKG51bGwsInZpZXdCb3giLCIwIDAgIitpKyIgIitzKX19LHtrZXk6ImZpeFN2Z1N0cmluZ0ZvckllMTEiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKCFiLmlzSUUxMSgpKXJldHVybiB0LnJlcGxhY2UoLyZuYnNwOy9nLCImIzE2MDsiKTt2YXIgZT0wLGk9dC5yZXBsYWNlKC94bWxucz0iaHR0cDpcL1wvd3d3LnczLm9yZ1wvMjAwMFwvc3ZnIi9nLChmdW5jdGlvbih0KXtyZXR1cm4gMj09KytlPyd4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c3ZnanM9Imh0dHA6Ly9zdmdqcy5kZXYiJzp0fSkpO3JldHVybihpPWkucmVwbGFjZSgveG1sbnM6TlNcZCs9IiIvZywiIikpLnJlcGxhY2UoL05TXGQrOihcdys6XHcrPSIpL2csIiQxIil9fSx7a2V5OiJnZXRTdmdTdHJpbmciLHZhbHVlOmZ1bmN0aW9uKHQpe251bGw9PXQmJih0PTEpO3ZhciBlPXRoaXMudy5nbG9iYWxzLmRvbS5QYXBlci5zdmcoKTtpZigxIT09dCl7dmFyIGk9dGhpcy53Lmdsb2JhbHMuZG9tLlBhcGVyLm5vZGUuY2xvbmVOb2RlKCEwKTt0aGlzLnNjYWxlU3ZnTm9kZShpLHQpLGU9KG5ldyBYTUxTZXJpYWxpemVyKS5zZXJpYWxpemVUb1N0cmluZyhpKX1yZXR1cm4gdGhpcy5maXhTdmdTdHJpbmdGb3JJZTExKGUpfX0se2tleToiY2xlYW51cCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLncsZT10Lmdsb2JhbHMuZG9tLmJhc2VFbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhcGV4Y2hhcnRzLXhjcm9zc2hhaXJzIiksaT10Lmdsb2JhbHMuZG9tLmJhc2VFbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhcGV4Y2hhcnRzLXljcm9zc2hhaXJzIikscz10Lmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yQWxsKCIuYXBleGNoYXJ0cy16b29tLXJlY3QsIC5hcGV4Y2hhcnRzLXNlbGVjdGlvbi1yZWN0Iik7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChzLChmdW5jdGlvbih0KXt0LnNldEF0dHJpYnV0ZSgid2lkdGgiLDApfSkpLGUmJmVbMF0mJihlWzBdLnNldEF0dHJpYnV0ZSgieCIsLTUwMCksZVswXS5zZXRBdHRyaWJ1dGUoIngxIiwtNTAwKSxlWzBdLnNldEF0dHJpYnV0ZSgieDIiLC01MDApKSxpJiZpWzBdJiYoaVswXS5zZXRBdHRyaWJ1dGUoInkiLC0xMDApLGlbMF0uc2V0QXR0cmlidXRlKCJ5MSIsLTEwMCksaVswXS5zZXRBdHRyaWJ1dGUoInkyIiwtMTAwKSl9fSx7a2V5OiJzdmdVcmwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jbGVhbnVwKCk7dmFyIHQ9dGhpcy5nZXRTdmdTdHJpbmcoKSxlPW5ldyBCbG9iKFt0XSx7dHlwZToiaW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04In0pO3JldHVybiBVUkwuY3JlYXRlT2JqZWN0VVJMKGUpfX0se2tleToiZGF0YVVSSSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGkpe3ZhciBzPWUudyxhPXQ/dC5zY2FsZXx8dC53aWR0aC9zLmdsb2JhbHMuc3ZnV2lkdGg6MTtlLmNsZWFudXAoKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtuLndpZHRoPXMuZ2xvYmFscy5zdmdXaWR0aCphLG4uaGVpZ2h0PXBhcnNlSW50KHMuZ2xvYmFscy5kb20uZWxXcmFwLnN0eWxlLmhlaWdodCwxMCkqYTt2YXIgcj0idHJhbnNwYXJlbnQiPT09cy5jb25maWcuY2hhcnQuYmFja2dyb3VuZD8iI2ZmZiI6cy5jb25maWcuY2hhcnQuYmFja2dyb3VuZCxvPW4uZ2V0Q29udGV4dCgiMmQiKTtvLmZpbGxTdHlsZT1yLG8uZmlsbFJlY3QoMCwwLG4ud2lkdGgqYSxuLmhlaWdodCphKTt2YXIgbD1lLmdldFN2Z1N0cmluZyhhKTtpZih3aW5kb3cuY2FudmcmJmIuaXNJRTExKCkpe3ZhciBjPXdpbmRvdy5jYW52Zy5DYW52Zy5mcm9tU3RyaW5nKG8sbCx7aWdub3JlQ2xlYXI6ITAsaWdub3JlRGltZW5zaW9uczohMH0pO2Muc3RhcnQoKTt2YXIgaD1uLm1zVG9CbG9iKCk7Yy5zdG9wKCksaSh7YmxvYjpofSl9ZWxzZXt2YXIgZD0iZGF0YTppbWFnZS9zdmcreG1sLCIrZW5jb2RlVVJJQ29tcG9uZW50KGwpLHU9bmV3IEltYWdlO3UuY3Jvc3NPcmlnaW49ImFub255bW91cyIsdS5vbmxvYWQ9ZnVuY3Rpb24oKXtpZihvLmRyYXdJbWFnZSh1LDAsMCksbi5tc1RvQmxvYil7dmFyIHQ9bi5tc1RvQmxvYigpO2koe2Jsb2I6dH0pfWVsc2V7dmFyIGU9bi50b0RhdGFVUkwoImltYWdlL3BuZyIpO2koe2ltZ1VSSTplfSl9fSx1LnNyYz1kfX0pKX19LHtrZXk6ImV4cG9ydFRvU1ZHIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudHJpZ2dlckRvd25sb2FkKHRoaXMuc3ZnVXJsKCksdGhpcy53LmNvbmZpZy5jaGFydC50b29sYmFyLmV4cG9ydC5zdmcuZmlsZW5hbWUsIi5zdmciKX19LHtrZXk6ImV4cG9ydFRvUG5nIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5kYXRhVVJJKCkudGhlbigoZnVuY3Rpb24oZSl7dmFyIGk9ZS5pbWdVUkkscz1lLmJsb2I7cz9uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihzLHQudy5nbG9iYWxzLmNoYXJ0SUQrIi5wbmciKTp0LnRyaWdnZXJEb3dubG9hZChpLHQudy5jb25maWcuY2hhcnQudG9vbGJhci5leHBvcnQucG5nLmZpbGVuYW1lLCIucG5nIil9KSl9fSx7a2V5OiJleHBvcnRUb0NTViIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXQuc2VyaWVzLHM9dC5maWxlTmFtZSxhPXQuY29sdW1uRGVsaW1pdGVyLG49dm9pZCAwPT09YT8iLCI6YSxyPXQubGluZURlbGltaXRlcixvPXZvaWQgMD09PXI/IlxuIjpyLGw9dGhpcy53O2l8fChpPWwuY29uZmlnLnNlcmllcyk7dmFyIGM9W10saD1bXSxkPSIiLHU9bC5nbG9iYWxzLnNlcmllcy5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuLTE9PT1sLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzSW5kaWNlcy5pbmRleE9mKGUpP3Q6W119KSkscD1NYXRoLm1heC5hcHBseShNYXRoLG0oaS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRhdGE/dC5kYXRhLmxlbmd0aDowfSkpKSksZz1uZXcgVyh0aGlzLmN0eCksZj1uZXcgVih0aGlzLmN0eCksdj1mdW5jdGlvbih0KXt2YXIgaT0iIjtpZihsLmdsb2JhbHMuYXhpc0NoYXJ0cyl7aWYoImNhdGVnb3J5Ij09PWwuY29uZmlnLnhheGlzLnR5cGV8fGwuY29uZmlnLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYylpZihsLmdsb2JhbHMuaXNCYXJIb3Jpem9udGFsKXt2YXIgcz1sLmdsb2JhbHMueUxhYmVsRm9ybWF0dGVyc1swXSxhPW5ldyBZKGUuY3R4KS5nZXRBY3RpdmVDb25maWdTZXJpZXNJbmRleCgpO2k9cyhsLmdsb2JhbHMubGFiZWxzW3RdLHtzZXJpZXNJbmRleDphLGRhdGFQb2ludEluZGV4OnQsdzpsfSl9ZWxzZSBpPWYuZ2V0TGFiZWwobC5nbG9iYWxzLmxhYmVscyxsLmdsb2JhbHMudGltZXNjYWxlTGFiZWxzLDAsdCkudGV4dDsiZGF0ZXRpbWUiPT09bC5jb25maWcueGF4aXMudHlwZSYmKGwuY29uZmlnLnhheGlzLmNhdGVnb3JpZXMubGVuZ3RoP2k9bC5jb25maWcueGF4aXMuY2F0ZWdvcmllc1t0XTpsLmNvbmZpZy5sYWJlbHMubGVuZ3RoJiYoaT1sLmNvbmZpZy5sYWJlbHNbdF0pKX1lbHNlIGk9bC5jb25maWcubGFiZWxzW3RdO3JldHVybiBBcnJheS5pc0FycmF5KGkpJiYoaT1pLmpvaW4oIiAiKSksYi5pc051bWJlcihpKT9pOmkuc3BsaXQobikuam9pbigiIil9O2MucHVzaChsLmNvbmZpZy5jaGFydC50b29sYmFyLmV4cG9ydC5jc3YuaGVhZGVyQ2F0ZWdvcnkpLCJib3hQbG90Ij09PWwuY29uZmlnLmNoYXJ0LnR5cGU/KGMucHVzaCgibWluaW11bSIpLGMucHVzaCgicTEiKSxjLnB1c2goIm1lZGlhbiIpLGMucHVzaCgicTMiKSxjLnB1c2goIm1heGltdW0iKSk6ImNhbmRsZXN0aWNrIj09PWwuY29uZmlnLmNoYXJ0LnR5cGU/KGMucHVzaCgib3BlbiIpLGMucHVzaCgiaGlnaCIpLGMucHVzaCgibG93IiksYy5wdXNoKCJjbG9zZSIpKToicmFuZ2VCYXIiPT09bC5jb25maWcuY2hhcnQudHlwZT8oYy5wdXNoKCJtaW5pbXVtIiksYy5wdXNoKCJtYXhpbXVtIikpOmkubWFwKChmdW5jdGlvbih0LGUpe3ZhciBpPXQubmFtZT90Lm5hbWU6InNlcmllcy0iLmNvbmNhdChlKTtsLmdsb2JhbHMuYXhpc0NoYXJ0cyYmYy5wdXNoKGkuc3BsaXQobikuam9pbigiIik/aS5zcGxpdChuKS5qb2luKCIiKToic2VyaWVzLSIuY29uY2F0KGUpKX0pKSxsLmdsb2JhbHMuYXhpc0NoYXJ0c3x8KGMucHVzaChsLmNvbmZpZy5jaGFydC50b29sYmFyLmV4cG9ydC5jc3YuaGVhZGVyVmFsdWUpLGgucHVzaChjLmpvaW4obikpKSxpLm1hcCgoZnVuY3Rpb24odCxlKXtsLmdsb2JhbHMuYXhpc0NoYXJ0cz9mdW5jdGlvbih0LGUpe2lmKGMubGVuZ3RoJiYwPT09ZSYmaC5wdXNoKGMuam9pbihuKSksdC5kYXRhKXt0LmRhdGE9dC5kYXRhLmxlbmd0aCYmdC5kYXRhfHxtKEFycmF5KHApKS5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuIiJ9KSk7Zm9yKHZhciBzPTA7czx0LmRhdGEubGVuZ3RoO3MrKyl7Yz1bXTt2YXIgYT12KHMpO2lmKGF8fChnLmlzRm9ybWF0WFkoKT9hPWlbZV0uZGF0YVtzXS54OmcuaXNGb3JtYXQyREFycmF5KCkmJihhPWlbZV0uZGF0YVtzXT9pW2VdLmRhdGFbc11bMF06IiIpKSwwPT09ZSl7Yy5wdXNoKChvPWEsImRhdGV0aW1lIj09PWwuY29uZmlnLnhheGlzLnR5cGUmJlN0cmluZyhvKS5sZW5ndGg+PTEwP2wuY29uZmlnLmNoYXJ0LnRvb2xiYXIuZXhwb3J0LmNzdi5kYXRlRm9ybWF0dGVyKGEpOmIuaXNOdW1iZXIoYSk/YTphLnNwbGl0KG4pLmpvaW4oIiIpKSk7Zm9yKHZhciByPTA7cjxsLmdsb2JhbHMuc2VyaWVzLmxlbmd0aDtyKyspZy5pc0Zvcm1hdFhZKCk/Yy5wdXNoKGlbcl0uZGF0YVtzXS55KTpjLnB1c2godVtyXVtzXSl9KCJjYW5kbGVzdGljayI9PT1sLmNvbmZpZy5jaGFydC50eXBlfHx0LnR5cGUmJiJjYW5kbGVzdGljayI9PT10LnR5cGUpJiYoYy5wb3AoKSxjLnB1c2gobC5nbG9iYWxzLnNlcmllc0NhbmRsZU9bZV1bc10pLGMucHVzaChsLmdsb2JhbHMuc2VyaWVzQ2FuZGxlSFtlXVtzXSksYy5wdXNoKGwuZ2xvYmFscy5zZXJpZXNDYW5kbGVMW2VdW3NdKSxjLnB1c2gobC5nbG9iYWxzLnNlcmllc0NhbmRsZUNbZV1bc10pKSwoImJveFBsb3QiPT09bC5jb25maWcuY2hhcnQudHlwZXx8dC50eXBlJiYiYm94UGxvdCI9PT10LnR5cGUpJiYoYy5wb3AoKSxjLnB1c2gobC5nbG9iYWxzLnNlcmllc0NhbmRsZU9bZV1bc10pLGMucHVzaChsLmdsb2JhbHMuc2VyaWVzQ2FuZGxlSFtlXVtzXSksYy5wdXNoKGwuZ2xvYmFscy5zZXJpZXNDYW5kbGVNW2VdW3NdKSxjLnB1c2gobC5nbG9iYWxzLnNlcmllc0NhbmRsZUxbZV1bc10pLGMucHVzaChsLmdsb2JhbHMuc2VyaWVzQ2FuZGxlQ1tlXVtzXSkpLCJyYW5nZUJhciI9PT1sLmNvbmZpZy5jaGFydC50eXBlJiYoYy5wb3AoKSxjLnB1c2gobC5nbG9iYWxzLnNlcmllc1JhbmdlU3RhcnRbZV1bc10pLGMucHVzaChsLmdsb2JhbHMuc2VyaWVzUmFuZ2VFbmRbZV1bc10pKSxjLmxlbmd0aCYmaC5wdXNoKGMuam9pbihuKSl9fXZhciBvfSh0LGUpOigoYz1bXSkucHVzaChsLmdsb2JhbHMubGFiZWxzW2VdLnNwbGl0KG4pLmpvaW4oIiIpKSxjLnB1c2godVtlXSksaC5wdXNoKGMuam9pbihuKSkpfSkpLGQrPWguam9pbihvKSx0aGlzLnRyaWdnZXJEb3dubG9hZCgiZGF0YTp0ZXh0L2NzdjsgY2hhcnNldD11dGYtOCwiK2VuY29kZVVSSUNvbXBvbmVudCgiXHVmZWZmIitkKSxzfHxsLmNvbmZpZy5jaGFydC50b29sYmFyLmV4cG9ydC5jc3YuZmlsZW5hbWUsIi5jc3YiKX19LHtrZXk6InRyaWdnZXJEb3dubG9hZCIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtzLmhyZWY9dCxzLmRvd25sb2FkPShlfHx0aGlzLncuZ2xvYmFscy5jaGFydElEKStpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocykscy5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocyl9fV0pLHR9KCksRz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxpKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLmVsZ3JpZD1pLHRoaXMudz1lLnc7dmFyIHM9dGhpcy53O3RoaXMuYXhlc1V0aWxzPW5ldyBWKGUpLHRoaXMueGF4aXNMYWJlbHM9cy5nbG9iYWxzLmxhYmVscy5zbGljZSgpLHMuZ2xvYmFscy50aW1lc2NhbGVMYWJlbHMubGVuZ3RoPjAmJiFzLmdsb2JhbHMuaXNCYXJIb3Jpem9udGFsJiYodGhpcy54YXhpc0xhYmVscz1zLmdsb2JhbHMudGltZXNjYWxlTGFiZWxzLnNsaWNlKCkpLHMuY29uZmlnLnhheGlzLm92ZXJ3cml0ZUNhdGVnb3JpZXMmJih0aGlzLnhheGlzTGFiZWxzPXMuY29uZmlnLnhheGlzLm92ZXJ3cml0ZUNhdGVnb3JpZXMpLHRoaXMuZHJhd25MYWJlbHM9W10sdGhpcy5kcmF3bkxhYmVsc1JlY3RzPVtdLCJ0b3AiPT09cy5jb25maWcueGF4aXMucG9zaXRpb24/dGhpcy5vZmZZPTA6dGhpcy5vZmZZPXMuZ2xvYmFscy5ncmlkSGVpZ2h0KzEsdGhpcy5vZmZZPXRoaXMub2ZmWStzLmNvbmZpZy54YXhpcy5heGlzQm9yZGVyLm9mZnNldFksdGhpcy5pc0NhdGVnb3J5QmFySG9yaXpvbnRhbD0iYmFyIj09PXMuY29uZmlnLmNoYXJ0LnR5cGUmJnMuY29uZmlnLnBsb3RPcHRpb25zLmJhci5ob3Jpem9udGFsLHRoaXMueGF4aXNGb250U2l6ZT1zLmNvbmZpZy54YXhpcy5sYWJlbHMuc3R5bGUuZm9udFNpemUsdGhpcy54YXhpc0ZvbnRGYW1pbHk9cy5jb25maWcueGF4aXMubGFiZWxzLnN0eWxlLmZvbnRGYW1pbHksdGhpcy54YXhpc0ZvcmVDb2xvcnM9cy5jb25maWcueGF4aXMubGFiZWxzLnN0eWxlLmNvbG9ycyx0aGlzLnhheGlzQm9yZGVyV2lkdGg9cy5jb25maWcueGF4aXMuYXhpc0JvcmRlci53aWR0aCx0aGlzLmlzQ2F0ZWdvcnlCYXJIb3Jpem9udGFsJiYodGhpcy54YXhpc0JvcmRlcldpZHRoPXMuY29uZmlnLnlheGlzWzBdLmF4aXNCb3JkZXIud2lkdGgudG9TdHJpbmcoKSksdGhpcy54YXhpc0JvcmRlcldpZHRoLmluZGV4T2YoIiUiKT4tMT90aGlzLnhheGlzQm9yZGVyV2lkdGg9cy5nbG9iYWxzLmdyaWRXaWR0aCpwYXJzZUludCh0aGlzLnhheGlzQm9yZGVyV2lkdGgsMTApLzEwMDp0aGlzLnhheGlzQm9yZGVyV2lkdGg9cGFyc2VJbnQodGhpcy54YXhpc0JvcmRlcldpZHRoLDEwKSx0aGlzLnhheGlzQm9yZGVySGVpZ2h0PXMuY29uZmlnLnhheGlzLmF4aXNCb3JkZXIuaGVpZ2h0LHRoaXMueWF4aXM9cy5jb25maWcueWF4aXNbMF19cmV0dXJuIGModCxbe2tleToiZHJhd1hheGlzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudyxlPW5ldyBrKHRoaXMuY3R4KSxpPWUuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLXhheGlzIix0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdCh0LmNvbmZpZy54YXhpcy5vZmZzZXRYLCIsICIpLmNvbmNhdCh0LmNvbmZpZy54YXhpcy5vZmZzZXRZLCIpIil9KSxzPWUuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLXhheGlzLXRleHRzLWciLHRyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KHQuZ2xvYmFscy50cmFuc2xhdGVYQXhpc1gsIiwgIikuY29uY2F0KHQuZ2xvYmFscy50cmFuc2xhdGVYQXhpc1ksIikiKX0pO2kuYWRkKHMpO2Zvcih2YXIgYT1bXSxuPTA7bjx0aGlzLnhheGlzTGFiZWxzLmxlbmd0aDtuKyspYS5wdXNoKHRoaXMueGF4aXNMYWJlbHNbbl0pO2lmKHRoaXMuZHJhd1hBeGlzTGFiZWxBbmRHcm91cCghMCxlLHMsYSx0Lmdsb2JhbHMuaXNYTnVtZXJpYywoZnVuY3Rpb24odCxlKXtyZXR1cm4gZX0pKSx0Lmdsb2JhbHMuaGFzR3JvdXBzKXt2YXIgcj10Lmdsb2JhbHMuZ3JvdXBzO2E9W107Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspYS5wdXNoKHJbb10udGl0bGUpO3ZhciBsPXt9O3QuY29uZmlnLnhheGlzLmdyb3VwLnN0eWxlJiYobC54YXhpc0ZvbnRTaXplPXQuY29uZmlnLnhheGlzLmdyb3VwLnN0eWxlLmZvbnRTaXplLGwueGF4aXNGb250RmFtaWx5PXQuY29uZmlnLnhheGlzLmdyb3VwLnN0eWxlLmZvbnRGYW1pbHksbC54YXhpc0ZvcmVDb2xvcnM9dC5jb25maWcueGF4aXMuZ3JvdXAuc3R5bGUuY29sb3JzLGwuZm9udFdlaWdodD10LmNvbmZpZy54YXhpcy5ncm91cC5zdHlsZS5mb250V2VpZ2h0LGwuY3NzQ2xhc3M9dC5jb25maWcueGF4aXMuZ3JvdXAuc3R5bGUuY3NzQ2xhc3MpLHRoaXMuZHJhd1hBeGlzTGFiZWxBbmRHcm91cCghMSxlLHMsYSwhMSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gclt0XS5jb2xzKmV9KSxsKX1pZih2b2lkIDAhPT10LmNvbmZpZy54YXhpcy50aXRsZS50ZXh0KXt2YXIgYz1lLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy14YXhpcy10aXRsZSJ9KSxoPWUuZHJhd1RleHQoe3g6dC5nbG9iYWxzLmdyaWRXaWR0aC8yK3QuY29uZmlnLnhheGlzLnRpdGxlLm9mZnNldFgseTp0aGlzLm9mZlkrcGFyc2VGbG9hdCh0aGlzLnhheGlzRm9udFNpemUpKygiYm90dG9tIj09PXQuY29uZmlnLnhheGlzLnRpdGxlLnBvc2l0aW9uP3QuZ2xvYmFscy54QXhpc0xhYmVsc0hlaWdodDotdC5nbG9iYWxzLnhBeGlzTGFiZWxzSGVpZ2h0LTEwKSt0LmNvbmZpZy54YXhpcy50aXRsZS5vZmZzZXRZLHRleHQ6dC5jb25maWcueGF4aXMudGl0bGUudGV4dCx0ZXh0QW5jaG9yOiJtaWRkbGUiLGZvbnRTaXplOnQuY29uZmlnLnhheGlzLnRpdGxlLnN0eWxlLmZvbnRTaXplLGZvbnRGYW1pbHk6dC5jb25maWcueGF4aXMudGl0bGUuc3R5bGUuZm9udEZhbWlseSxmb250V2VpZ2h0OnQuY29uZmlnLnhheGlzLnRpdGxlLnN0eWxlLmZvbnRXZWlnaHQsZm9yZUNvbG9yOnQuY29uZmlnLnhheGlzLnRpdGxlLnN0eWxlLmNvbG9yLGNzc0NsYXNzOiJhcGV4Y2hhcnRzLXhheGlzLXRpdGxlLXRleHQgIit0LmNvbmZpZy54YXhpcy50aXRsZS5zdHlsZS5jc3NDbGFzc30pO2MuYWRkKGgpLGkuYWRkKGMpfWlmKHQuY29uZmlnLnhheGlzLmF4aXNCb3JkZXIuc2hvdyl7dmFyIGQ9dC5nbG9iYWxzLmJhclBhZEZvck51bWVyaWNBeGlzLHU9ZS5kcmF3TGluZSh0Lmdsb2JhbHMucGFkSG9yaXpvbnRhbCt0LmNvbmZpZy54YXhpcy5heGlzQm9yZGVyLm9mZnNldFgtZCx0aGlzLm9mZlksdGhpcy54YXhpc0JvcmRlcldpZHRoK2QsdGhpcy5vZmZZLHQuY29uZmlnLnhheGlzLmF4aXNCb3JkZXIuY29sb3IsMCx0aGlzLnhheGlzQm9yZGVySGVpZ2h0KTt0aGlzLmVsZ3JpZCYmdGhpcy5lbGdyaWQuZWxHcmlkQm9yZGVycz90aGlzLmVsZ3JpZC5lbEdyaWRCb3JkZXJzLmFkZCh1KTppLmFkZCh1KX1yZXR1cm4gaX19LHtrZXk6ImRyYXdYQXhpc0xhYmVsQW5kR3JvdXAiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMsYSxuKXt2YXIgcixvPXRoaXMsbD1hcmd1bWVudHMubGVuZ3RoPjYmJnZvaWQgMCE9PWFyZ3VtZW50c1s2XT9hcmd1bWVudHNbNl06e30sYz1bXSxoPVtdLGQ9dGhpcy53LHU9bC54YXhpc0ZvbnRTaXplfHx0aGlzLnhheGlzRm9udFNpemUscD1sLnhheGlzRm9udEZhbWlseXx8dGhpcy54YXhpc0ZvbnRGYW1pbHksZz1sLnhheGlzRm9yZUNvbG9yc3x8dGhpcy54YXhpc0ZvcmVDb2xvcnMsZj1sLmZvbnRXZWlnaHR8fGQuY29uZmlnLnhheGlzLmxhYmVscy5zdHlsZS5mb250V2VpZ2h0LG09bC5jc3NDbGFzc3x8ZC5jb25maWcueGF4aXMubGFiZWxzLnN0eWxlLmNzc0NsYXNzLHY9ZC5nbG9iYWxzLnBhZEhvcml6b250YWwseD1zLmxlbmd0aCxiPSJjYXRlZ29yeSI9PT1kLmNvbmZpZy54YXhpcy50eXBlP2QuZ2xvYmFscy5kYXRhUG9pbnRzOng7aWYoMD09PWImJng+YiYmKGI9eCksYSl7dmFyIHk9Yj4xP2ItMTpiO3I9ZC5nbG9iYWxzLmdyaWRXaWR0aC95LHY9dituKDAscikvMitkLmNvbmZpZy54YXhpcy5sYWJlbHMub2Zmc2V0WH1lbHNlIHI9ZC5nbG9iYWxzLmdyaWRXaWR0aC9iLHY9dituKDAscikrZC5jb25maWcueGF4aXMubGFiZWxzLm9mZnNldFg7Zm9yKHZhciB3PWZ1bmN0aW9uKGEpe3ZhciBsPXYtbihhLHIpLzIrZC5jb25maWcueGF4aXMubGFiZWxzLm9mZnNldFg7MD09PWEmJjE9PT14JiZyLzI9PT12JiYxPT09YiYmKGw9ZC5nbG9iYWxzLmdyaWRXaWR0aC8yKTt2YXIgeT1vLmF4ZXNVdGlscy5nZXRMYWJlbChzLGQuZ2xvYmFscy50aW1lc2NhbGVMYWJlbHMsbCxhLGMsdSx0KSx3PTI4O2lmKGQuZ2xvYmFscy5yb3RhdGVYTGFiZWxzJiZ0JiYodz0yMiksZC5jb25maWcueGF4aXMudGl0bGUudGV4dCYmInRvcCI9PT1kLmNvbmZpZy54YXhpcy5wb3NpdGlvbiYmKHcrPXBhcnNlRmxvYXQoZC5jb25maWcueGF4aXMudGl0bGUuc3R5bGUuZm9udFNpemUpKzIpLHR8fCh3PXcrcGFyc2VGbG9hdCh1KSsoZC5nbG9iYWxzLnhBeGlzTGFiZWxzSGVpZ2h0LWQuZ2xvYmFscy54QXhpc0dyb3VwTGFiZWxzSGVpZ2h0KSsoZC5nbG9iYWxzLnJvdGF0ZVhMYWJlbHM/MTA6MCkpLHk9dm9pZCAwIT09ZC5jb25maWcueGF4aXMudGlja0Ftb3VudCYmImRhdGFQb2ludHMiIT09ZC5jb25maWcueGF4aXMudGlja0Ftb3VudCYmImRhdGV0aW1lIiE9PWQuY29uZmlnLnhheGlzLnR5cGU/by5heGVzVXRpbHMuY2hlY2tMYWJlbEJhc2VkT25UaWNrYW1vdW50KGEseSx4KTpvLmF4ZXNVdGlscy5jaGVja0Zvck92ZXJmbG93aW5nTGFiZWxzKGEseSx4LGMsaCksdCYmeS50ZXh0JiZkLmdsb2JhbHMueGF4aXNMYWJlbHNDb3VudCsrLGQuY29uZmlnLnhheGlzLmxhYmVscy5zaG93KXt2YXIgaz1lLmRyYXdUZXh0KHt4OnkueCx5Om8ub2ZmWStkLmNvbmZpZy54YXhpcy5sYWJlbHMub2Zmc2V0WSt3LSgidG9wIj09PWQuY29uZmlnLnhheGlzLnBvc2l0aW9uP2QuZ2xvYmFscy54QXhpc0hlaWdodCtkLmNvbmZpZy54YXhpcy5heGlzVGlja3MuaGVpZ2h0LTI6MCksdGV4dDp5LnRleHQsdGV4dEFuY2hvcjoibWlkZGxlIixmb250V2VpZ2h0OnkuaXNCb2xkPzYwMDpmLGZvbnRTaXplOnUsZm9udEZhbWlseTpwLGZvcmVDb2xvcjpBcnJheS5pc0FycmF5KGcpP3QmJmQuY29uZmlnLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYz9nW2QuZ2xvYmFscy5taW5YK2EtMV06Z1thXTpnLGlzUGxhaW5UZXh0OiExLGNzc0NsYXNzOih0PyJhcGV4Y2hhcnRzLXhheGlzLWxhYmVsICI6ImFwZXhjaGFydHMteGF4aXMtZ3JvdXAtbGFiZWwgIikrbX0pO2lmKGkuYWRkKGspLGsub24oImNsaWNrIiwoZnVuY3Rpb24odCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGQuY29uZmlnLmNoYXJ0LmV2ZW50cy54QXhpc0xhYmVsQ2xpY2spe3ZhciBlPU9iamVjdC5hc3NpZ24oe30sZCx7bGFiZWxJbmRleDphfSk7ZC5jb25maWcuY2hhcnQuZXZlbnRzLnhBeGlzTGFiZWxDbGljayh0LG8uY3R4LGUpfX0pKSx0KXt2YXIgUz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZC5nbG9iYWxzLlNWR05TLCJ0aXRsZSIpO1MudGV4dENvbnRlbnQ9QXJyYXkuaXNBcnJheSh5LnRleHQpP3kudGV4dC5qb2luKCIgIik6eS50ZXh0LGsubm9kZS5hcHBlbmRDaGlsZChTKSwiIiE9PXkudGV4dCYmKGMucHVzaCh5LnRleHQpLGgucHVzaCh5KSl9fWE8eC0xJiYodis9bihhKzEscikpfSxrPTA7azw9eC0xO2srKyl3KGspfX0se2tleToiZHJhd1hheGlzSW52ZXJzZWQiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlLGkscz10aGlzLGE9dGhpcy53LG49bmV3IGsodGhpcy5jdHgpLHI9YS5jb25maWcueWF4aXNbMF0ub3Bwb3NpdGU/YS5nbG9iYWxzLnRyYW5zbGF0ZVlBeGlzWFt0XTowLG89bi5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMteWF4aXMgYXBleGNoYXJ0cy14YXhpcy1pbnZlcnNlZCIscmVsOnR9KSxsPW4uZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLXlheGlzLXRleHRzLWcgYXBleGNoYXJ0cy14YXhpcy1pbnZlcnNlZC10ZXh0cy1nIix0cmFuc2Zvcm06InRyYW5zbGF0ZSgiK3IrIiwgMCkifSk7by5hZGQobCk7dmFyIGM9W107aWYoYS5jb25maWcueWF4aXNbdF0uc2hvdylmb3IodmFyIGg9MDtoPHRoaXMueGF4aXNMYWJlbHMubGVuZ3RoO2grKyljLnB1c2godGhpcy54YXhpc0xhYmVsc1toXSk7ZT1hLmdsb2JhbHMuZ3JpZEhlaWdodC9jLmxlbmd0aCxpPS1lLzIuMjt2YXIgZD1hLmdsb2JhbHMueUxhYmVsRm9ybWF0dGVyc1swXSx1PWEuY29uZmlnLnlheGlzWzBdLmxhYmVscztpZih1LnNob3cpZm9yKHZhciBwPWZ1bmN0aW9uKHIpe3ZhciBvPXZvaWQgMD09PWNbcl0/IiI6Y1tyXTtvPWQobyx7c2VyaWVzSW5kZXg6dCxkYXRhUG9pbnRJbmRleDpyLHc6YX0pO3ZhciBoPXMuYXhlc1V0aWxzLmdldFlBeGlzRm9yZUNvbG9yKHUuc3R5bGUuY29sb3JzLHQpLHA9MDtBcnJheS5pc0FycmF5KG8pJiYocD1vLmxlbmd0aC8yKnBhcnNlSW50KHUuc3R5bGUuZm9udFNpemUsMTApKTt2YXIgZz1uLmRyYXdUZXh0KHt4OnUub2Zmc2V0WC0xNSx5OmkrZSt1Lm9mZnNldFktcCx0ZXh0Om8sdGV4dEFuY2hvcjpzLnlheGlzLm9wcG9zaXRlPyJzdGFydCI6ImVuZCIsZm9yZUNvbG9yOkFycmF5LmlzQXJyYXkoaCk/aFtyXTpoLGZvbnRTaXplOnUuc3R5bGUuZm9udFNpemUsZm9udEZhbWlseTp1LnN0eWxlLmZvbnRGYW1pbHksZm9udFdlaWdodDp1LnN0eWxlLmZvbnRXZWlnaHQsaXNQbGFpblRleHQ6ITEsY3NzQ2xhc3M6ImFwZXhjaGFydHMteWF4aXMtbGFiZWwgIit1LnN0eWxlLmNzc0NsYXNzLG1heFdpZHRoOnUubWF4V2lkdGh9KTtsLmFkZChnKSxnLm9uKCJjbGljayIsKGZ1bmN0aW9uKHQpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLmNvbmZpZy5jaGFydC5ldmVudHMueEF4aXNMYWJlbENsaWNrKXt2YXIgZT1PYmplY3QuYXNzaWduKHt9LGEse2xhYmVsSW5kZXg6cn0pO2EuY29uZmlnLmNoYXJ0LmV2ZW50cy54QXhpc0xhYmVsQ2xpY2sodCxzLmN0eCxlKX19KSk7dmFyIGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGEuZ2xvYmFscy5TVkdOUywidGl0bGUiKTtpZihmLnRleHRDb250ZW50PUFycmF5LmlzQXJyYXkobyk/by5qb2luKCIgIik6byxnLm5vZGUuYXBwZW5kQ2hpbGQoZiksMCE9PWEuY29uZmlnLnlheGlzW3RdLmxhYmVscy5yb3RhdGUpe3ZhciBtPW4ucm90YXRlQXJvdW5kQ2VudGVyKGcubm9kZSk7Zy5ub2RlLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwicm90YXRlKCIuY29uY2F0KGEuY29uZmlnLnlheGlzW3RdLmxhYmVscy5yb3RhdGUsIiAwICIpLmNvbmNhdChtLnksIikiKSl9aSs9ZX0sZz0wO2c8PWMubGVuZ3RoLTE7ZysrKXAoZyk7aWYodm9pZCAwIT09YS5jb25maWcueWF4aXNbMF0udGl0bGUudGV4dCl7dmFyIGY9bi5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMteWF4aXMtdGl0bGUgYXBleGNoYXJ0cy14YXhpcy10aXRsZS1pbnZlcnNlZCIsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoIityKyIsIDApIn0pLG09bi5kcmF3VGV4dCh7eDphLmNvbmZpZy55YXhpc1swXS50aXRsZS5vZmZzZXRYLHk6YS5nbG9iYWxzLmdyaWRIZWlnaHQvMithLmNvbmZpZy55YXhpc1swXS50aXRsZS5vZmZzZXRZLHRleHQ6YS5jb25maWcueWF4aXNbMF0udGl0bGUudGV4dCx0ZXh0QW5jaG9yOiJtaWRkbGUiLGZvcmVDb2xvcjphLmNvbmZpZy55YXhpc1swXS50aXRsZS5zdHlsZS5jb2xvcixmb250U2l6ZTphLmNvbmZpZy55YXhpc1swXS50aXRsZS5zdHlsZS5mb250U2l6ZSxmb250V2VpZ2h0OmEuY29uZmlnLnlheGlzWzBdLnRpdGxlLnN0eWxlLmZvbnRXZWlnaHQsZm9udEZhbWlseTphLmNvbmZpZy55YXhpc1swXS50aXRsZS5zdHlsZS5mb250RmFtaWx5LGNzc0NsYXNzOiJhcGV4Y2hhcnRzLXlheGlzLXRpdGxlLXRleHQgIithLmNvbmZpZy55YXhpc1swXS50aXRsZS5zdHlsZS5jc3NDbGFzc30pO2YuYWRkKG0pLG8uYWRkKGYpfXZhciB2PTA7dGhpcy5pc0NhdGVnb3J5QmFySG9yaXpvbnRhbCYmYS5jb25maWcueWF4aXNbMF0ub3Bwb3NpdGUmJih2PWEuZ2xvYmFscy5ncmlkV2lkdGgpO3ZhciB4PWEuY29uZmlnLnhheGlzLmF4aXNCb3JkZXI7aWYoeC5zaG93KXt2YXIgYj1uLmRyYXdMaW5lKGEuZ2xvYmFscy5wYWRIb3Jpem9udGFsK3gub2Zmc2V0WCt2LDEreC5vZmZzZXRZLGEuZ2xvYmFscy5wYWRIb3Jpem9udGFsK3gub2Zmc2V0WCt2LGEuZ2xvYmFscy5ncmlkSGVpZ2h0K3gub2Zmc2V0WSx4LmNvbG9yLDApO3RoaXMuZWxncmlkJiZ0aGlzLmVsZ3JpZC5lbEdyaWRCb3JkZXJzP3RoaXMuZWxncmlkLmVsR3JpZEJvcmRlcnMuYWRkKGIpOm8uYWRkKGIpfXJldHVybiBhLmNvbmZpZy55YXhpc1swXS5heGlzVGlja3Muc2hvdyYmdGhpcy5heGVzVXRpbHMuZHJhd1lBeGlzVGlja3ModixjLmxlbmd0aCxhLmNvbmZpZy55YXhpc1swXS5heGlzQm9yZGVyLGEuY29uZmlnLnlheGlzWzBdLmF4aXNUaWNrcywwLGUsbyksb319LHtrZXk6ImRyYXdYYXhpc1RpY2tzIix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpcy53LGE9dDtpZighKHQ8MHx8dC0yPnMuZ2xvYmFscy5ncmlkV2lkdGgpKXt2YXIgbj10aGlzLm9mZlkrcy5jb25maWcueGF4aXMuYXhpc1RpY2tzLm9mZnNldFk7aWYoZT1lK24rcy5jb25maWcueGF4aXMuYXhpc1RpY2tzLmhlaWdodCwidG9wIj09PXMuY29uZmlnLnhheGlzLnBvc2l0aW9uJiYoZT1uLXMuY29uZmlnLnhheGlzLmF4aXNUaWNrcy5oZWlnaHQpLHMuY29uZmlnLnhheGlzLmF4aXNUaWNrcy5zaG93KXt2YXIgcj1uZXcgayh0aGlzLmN0eCkuZHJhd0xpbmUodCtzLmNvbmZpZy54YXhpcy5heGlzVGlja3Mub2Zmc2V0WCxuK3MuY29uZmlnLnhheGlzLm9mZnNldFksYStzLmNvbmZpZy54YXhpcy5heGlzVGlja3Mub2Zmc2V0WCxlK3MuY29uZmlnLnhheGlzLm9mZnNldFkscy5jb25maWcueGF4aXMuYXhpc1RpY2tzLmNvbG9yKTtpLmFkZChyKSxyLm5vZGUuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy14YXhpcy10aWNrIil9fX19LHtrZXk6ImdldFhBeGlzVGlja3NQb3NpdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53LGU9W10saT10aGlzLnhheGlzTGFiZWxzLmxlbmd0aCxzPXQuZ2xvYmFscy5wYWRIb3Jpem9udGFsO2lmKHQuZ2xvYmFscy50aW1lc2NhbGVMYWJlbHMubGVuZ3RoPjApZm9yKHZhciBhPTA7YTxpO2ErKylzPXRoaXMueGF4aXNMYWJlbHNbYV0ucG9zaXRpb24sZS5wdXNoKHMpO2Vsc2UgZm9yKHZhciBuPWkscj0wO3I8bjtyKyspe3ZhciBvPW47dC5nbG9iYWxzLmlzWE51bWVyaWMmJiJiYXIiIT09dC5jb25maWcuY2hhcnQudHlwZSYmKG8tPTEpLHMrPXQuZ2xvYmFscy5ncmlkV2lkdGgvbyxlLnB1c2gocyl9cmV0dXJuIGV9fSx7a2V5OiJ4QXhpc0xhYmVsQ29ycmVjdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53LGU9bmV3IGsodGhpcy5jdHgpLGk9dC5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMteGF4aXMtdGV4dHMtZyIpLHM9dC5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvckFsbCgiLmFwZXhjaGFydHMteGF4aXMtdGV4dHMtZyB0ZXh0Om5vdCguYXBleGNoYXJ0cy14YXhpcy1ncm91cC1sYWJlbCkiKSxhPXQuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hcGV4Y2hhcnRzLXlheGlzLWludmVyc2VkIHRleHQiKSxuPXQuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hcGV4Y2hhcnRzLXhheGlzLWludmVyc2VkLXRleHRzLWcgdGV4dCB0c3BhbiIpO2lmKHQuZ2xvYmFscy5yb3RhdGVYTGFiZWxzfHx0LmNvbmZpZy54YXhpcy5sYWJlbHMucm90YXRlQWx3YXlzKWZvcih2YXIgcj0wO3I8cy5sZW5ndGg7cisrKXt2YXIgbz1lLnJvdGF0ZUFyb3VuZENlbnRlcihzW3JdKTtvLnk9by55LTEsby54PW8ueCsxLHNbcl0uc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCJyb3RhdGUoIi5jb25jYXQodC5jb25maWcueGF4aXMubGFiZWxzLnJvdGF0ZSwiICIpLmNvbmNhdChvLngsIiAiKS5jb25jYXQoby55LCIpIikpLHNbcl0uc2V0QXR0cmlidXRlKCJ0ZXh0LWFuY2hvciIsImVuZCIpLGkuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoMCwgIi5jb25jYXQoLTEwLCIpIikpO3ZhciBsPXNbcl0uY2hpbGROb2Rlczt0LmNvbmZpZy54YXhpcy5sYWJlbHMudHJpbSYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChsLChmdW5jdGlvbihpKXtlLnBsYWNlVGV4dFdpdGhFbGxpcHNpcyhpLGkudGV4dENvbnRlbnQsdC5nbG9iYWxzLnhBeGlzTGFiZWxzSGVpZ2h0LSgiYm90dG9tIj09PXQuY29uZmlnLmxlZ2VuZC5wb3NpdGlvbj8yMDoxMCkpfSkpfWVsc2UhZnVuY3Rpb24oKXtmb3IodmFyIGk9dC5nbG9iYWxzLmdyaWRXaWR0aC8odC5nbG9iYWxzLmxhYmVscy5sZW5ndGgrMSksYT0wO2E8cy5sZW5ndGg7YSsrKXt2YXIgbj1zW2FdLmNoaWxkTm9kZXM7dC5jb25maWcueGF4aXMubGFiZWxzLnRyaW0mJiJkYXRldGltZSIhPT10LmNvbmZpZy54YXhpcy50eXBlJiZBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG4sKGZ1bmN0aW9uKHQpe2UucGxhY2VUZXh0V2l0aEVsbGlwc2lzKHQsdC50ZXh0Q29udGVudCxpKX0pKX19KCk7aWYoYS5sZW5ndGg+MCl7dmFyIGM9YVthLmxlbmd0aC0xXS5nZXRCQm94KCksaD1hWzBdLmdldEJCb3goKTtjLng8LTIwJiZhW2EubGVuZ3RoLTFdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYVthLmxlbmd0aC0xXSksaC54K2gud2lkdGg+dC5nbG9iYWxzLmdyaWRXaWR0aCYmIXQuZ2xvYmFscy5pc0Jhckhvcml6b250YWwmJmFbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhWzBdKTtmb3IodmFyIGQ9MDtkPG4ubGVuZ3RoO2QrKyllLnBsYWNlVGV4dFdpdGhFbGxpcHNpcyhuW2RdLG5bZF0udGV4dENvbnRlbnQsdC5jb25maWcueWF4aXNbMF0ubGFiZWxzLm1heFdpZHRoLSh0LmNvbmZpZy55YXhpc1swXS50aXRsZS50ZXh0PzIqcGFyc2VGbG9hdCh0LmNvbmZpZy55YXhpc1swXS50aXRsZS5zdHlsZS5mb250U2l6ZSk6MCktMTUpfX19XSksdH0oKSxVPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLnc9ZS53O3ZhciBpPXRoaXMudzt0aGlzLnhheGlzTGFiZWxzPWkuZ2xvYmFscy5sYWJlbHMuc2xpY2UoKSx0aGlzLmF4ZXNVdGlscz1uZXcgVihlKSx0aGlzLmlzUmFuZ2VCYXI9aS5nbG9iYWxzLnNlcmllc1JhbmdlLmxlbmd0aCxpLmdsb2JhbHMudGltZXNjYWxlTGFiZWxzLmxlbmd0aD4wJiYodGhpcy54YXhpc0xhYmVscz1pLmdsb2JhbHMudGltZXNjYWxlTGFiZWxzLnNsaWNlKCkpfXJldHVybiBjKHQsW3trZXk6ImRyYXdHcmlkQXJlYSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbCxlPXRoaXMudyxpPW5ldyBrKHRoaXMuY3R4KTtudWxsPT09dCYmKHQ9aS5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtZ3JpZCJ9KSk7dmFyIHM9aS5kcmF3TGluZShlLmdsb2JhbHMucGFkSG9yaXpvbnRhbCwxLGUuZ2xvYmFscy5wYWRIb3Jpem9udGFsLGUuZ2xvYmFscy5ncmlkSGVpZ2h0LCJ0cmFuc3BhcmVudCIpLGE9aS5kcmF3TGluZShlLmdsb2JhbHMucGFkSG9yaXpvbnRhbCxlLmdsb2JhbHMuZ3JpZEhlaWdodCxlLmdsb2JhbHMuZ3JpZFdpZHRoLGUuZ2xvYmFscy5ncmlkSGVpZ2h0LCJ0cmFuc3BhcmVudCIpO3JldHVybiB0LmFkZChhKSx0LmFkZChzKSx0fX0se2tleToiZHJhd0dyaWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9bnVsbDtyZXR1cm4gdGhpcy53Lmdsb2JhbHMuYXhpc0NoYXJ0cyYmKHQ9dGhpcy5yZW5kZXJHcmlkKCksdGhpcy5kcmF3R3JpZEFyZWEodC5lbCkpLHR9fSx7a2V5OiJjcmVhdGVHcmlkTWFzayIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLncsZT10Lmdsb2JhbHMsaT1uZXcgayh0aGlzLmN0eCkscz1BcnJheS5pc0FycmF5KHQuY29uZmlnLnN0cm9rZS53aWR0aCk/MDp0LmNvbmZpZy5zdHJva2Uud2lkdGg7aWYoQXJyYXkuaXNBcnJheSh0LmNvbmZpZy5zdHJva2Uud2lkdGgpKXt2YXIgYT0wO3QuY29uZmlnLnN0cm9rZS53aWR0aC5mb3JFYWNoKChmdW5jdGlvbih0KXthPU1hdGgubWF4KGEsdCl9KSkscz1hfWUuZG9tLmVsR3JpZFJlY3RNYXNrPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhlLlNWR05TLCJjbGlwUGF0aCIpLGUuZG9tLmVsR3JpZFJlY3RNYXNrLnNldEF0dHJpYnV0ZSgiaWQiLCJncmlkUmVjdE1hc2siLmNvbmNhdChlLmN1aWQpKSxlLmRvbS5lbEdyaWRSZWN0TWFya2VyTWFzaz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZS5TVkdOUywiY2xpcFBhdGgiKSxlLmRvbS5lbEdyaWRSZWN0TWFya2VyTWFzay5zZXRBdHRyaWJ1dGUoImlkIiwiZ3JpZFJlY3RNYXJrZXJNYXNrIi5jb25jYXQoZS5jdWlkKSksZS5kb20uZWxGb3JlY2FzdE1hc2s9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGUuU1ZHTlMsImNsaXBQYXRoIiksZS5kb20uZWxGb3JlY2FzdE1hc2suc2V0QXR0cmlidXRlKCJpZCIsImZvcmVjYXN0TWFzayIuY29uY2F0KGUuY3VpZCkpLGUuZG9tLmVsTm9uRm9yZWNhc3RNYXNrPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhlLlNWR05TLCJjbGlwUGF0aCIpLGUuZG9tLmVsTm9uRm9yZWNhc3RNYXNrLnNldEF0dHJpYnV0ZSgiaWQiLCJub25Gb3JlY2FzdE1hc2siLmNvbmNhdChlLmN1aWQpKTt2YXIgbj10LmNvbmZpZy5jaGFydC50eXBlLHI9MCxvPTA7KCJiYXIiPT09bnx8InJhbmdlQmFyIj09PW58fCJjYW5kbGVzdGljayI9PT1ufHwiYm94UGxvdCI9PT1ufHx0Lmdsb2JhbHMuY29tYm9CYXJDb3VudD4wKSYmdC5nbG9iYWxzLmlzWE51bWVyaWMmJiF0Lmdsb2JhbHMuaXNCYXJIb3Jpem9udGFsJiYocj10LmNvbmZpZy5ncmlkLnBhZGRpbmcubGVmdCxvPXQuY29uZmlnLmdyaWQucGFkZGluZy5yaWdodCxlLmJhclBhZEZvck51bWVyaWNBeGlzPnImJihyPWUuYmFyUGFkRm9yTnVtZXJpY0F4aXMsbz1lLmJhclBhZEZvck51bWVyaWNBeGlzKSksZS5kb20uZWxHcmlkUmVjdD1pLmRyYXdSZWN0KC1zLzItci0yLC1zLzIsZS5ncmlkV2lkdGgrcytvK3IrNCxlLmdyaWRIZWlnaHQrcywwLCIjZmZmIik7dmFyIGw9dC5nbG9iYWxzLm1hcmtlcnMubGFyZ2VzdFNpemUrMTtlLmRvbS5lbEdyaWRSZWN0TWFya2VyPWkuZHJhd1JlY3QoMiotbCwyKi1sLGUuZ3JpZFdpZHRoKzQqbCxlLmdyaWRIZWlnaHQrNCpsLDAsIiNmZmYiKSxlLmRvbS5lbEdyaWRSZWN0TWFzay5hcHBlbmRDaGlsZChlLmRvbS5lbEdyaWRSZWN0Lm5vZGUpLGUuZG9tLmVsR3JpZFJlY3RNYXJrZXJNYXNrLmFwcGVuZENoaWxkKGUuZG9tLmVsR3JpZFJlY3RNYXJrZXIubm9kZSk7dmFyIGM9ZS5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoImRlZnMiKTtjLmFwcGVuZENoaWxkKGUuZG9tLmVsR3JpZFJlY3RNYXNrKSxjLmFwcGVuZENoaWxkKGUuZG9tLmVsRm9yZWNhc3RNYXNrKSxjLmFwcGVuZENoaWxkKGUuZG9tLmVsTm9uRm9yZWNhc3RNYXNrKSxjLmFwcGVuZENoaWxkKGUuZG9tLmVsR3JpZFJlY3RNYXJrZXJNYXNrKX19LHtrZXk6Il9kcmF3R3JpZExpbmVzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmksaT10LngxLHM9dC55MSxhPXQueDIsbj10LnkyLHI9dC54Q291bnQsbz10LnBhcmVudCxsPXRoaXMudztpZighKDA9PT1lJiZsLmdsb2JhbHMuc2tpcEZpcnN0VGltZWxpbmVsYWJlbHx8ZT09PXItMSYmbC5nbG9iYWxzLnNraXBMYXN0VGltZWxpbmVsYWJlbCYmIWwuY29uZmlnLnhheGlzLmxhYmVscy5mb3JtYXR0ZXJ8fCJyYWRhciI9PT1sLmNvbmZpZy5jaGFydC50eXBlKSl7bC5jb25maWcuZ3JpZC54YXhpcy5saW5lcy5zaG93JiZ0aGlzLl9kcmF3R3JpZExpbmUoe2k6ZSx4MTppLHkxOnMseDI6YSx5MjpuLHhDb3VudDpyLHBhcmVudDpvfSk7dmFyIGM9MDtpZihsLmdsb2JhbHMuaGFzR3JvdXBzJiYiYmV0d2VlbiI9PT1sLmNvbmZpZy54YXhpcy50aWNrUGxhY2VtZW50KXt2YXIgaD1sLmdsb2JhbHMuZ3JvdXBzO2lmKGgpe2Zvcih2YXIgZD0wLHU9MDtkPGUmJnU8aC5sZW5ndGg7dSsrKWQrPWhbdV0uY29scztkPT09ZSYmKGM9LjYqbC5nbG9iYWxzLnhBeGlzTGFiZWxzSGVpZ2h0KX19bmV3IEcodGhpcy5jdHgpLmRyYXdYYXhpc1RpY2tzKGksYyxsLmdsb2JhbHMuZG9tLmVsR3JhcGhpY2FsKX19fSx7a2V5OiJfZHJhd0dyaWRMaW5lIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmksaT10LngxLHM9dC55MSxhPXQueDIsbj10LnkyLHI9dC54Q291bnQsbz10LnBhcmVudCxsPXRoaXMudyxjPSExLGg9by5ub2RlLmNsYXNzTGlzdC5jb250YWlucygiYXBleGNoYXJ0cy1ncmlkbGluZXMtaG9yaXpvbnRhbCIpLGQ9bC5jb25maWcuZ3JpZC5zdHJva2VEYXNoQXJyYXksdT1sLmdsb2JhbHMuYmFyUGFkRm9yTnVtZXJpY0F4aXM7KDA9PT1zJiYwPT09bnx8MD09PWkmJjA9PT1hKSYmKGM9ITApLHM9PT1sLmdsb2JhbHMuZ3JpZEhlaWdodCYmbj09PWwuZ2xvYmFscy5ncmlkSGVpZ2h0JiYoYz0hMCksIWwuZ2xvYmFscy5pc0Jhckhvcml6b250YWx8fDAhPT1lJiZlIT09ci0xfHwoYz0hMCk7dmFyIHA9bmV3IGsodGhpcykuZHJhd0xpbmUoaS0oaD91OjApLHMsYSsoaD91OjApLG4sbC5jb25maWcuZ3JpZC5ib3JkZXJDb2xvcixkKTtwLm5vZGUuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy1ncmlkbGluZSIpLGM/dGhpcy5lbEdyaWRCb3JkZXJzLmFkZChwKTpvLmFkZChwKX19LHtrZXk6Il9kcmF3R3JpZEJhbmRSZWN0Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmMsaT10LngxLHM9dC55MSxhPXQueDIsbj10LnkyLHI9dC50eXBlLG89dGhpcy53LGw9bmV3IGsodGhpcy5jdHgpLGM9by5nbG9iYWxzLmJhclBhZEZvck51bWVyaWNBeGlzO2lmKCJjb2x1bW4iIT09cnx8ImRhdGV0aW1lIiE9PW8uY29uZmlnLnhheGlzLnR5cGUpe3ZhciBoPW8uY29uZmlnLmdyaWRbcl0uY29sb3JzW2VdLGQ9bC5kcmF3UmVjdChpLSgicm93Ij09PXI/YzowKSxzLGErKCJyb3ciPT09cj8yKmM6MCksbiwwLGgsby5jb25maWcuZ3JpZFtyXS5vcGFjaXR5KTt0aGlzLmVsZy5hZGQoZCksZC5hdHRyKCJjbGlwLXBhdGgiLCJ1cmwoI2dyaWRSZWN0TWFzayIuY29uY2F0KG8uZ2xvYmFscy5jdWlkLCIpIikpLGQubm9kZS5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLWdyaWQtIi5jb25jYXQocikpfX19LHtrZXk6Il9kcmF3WFlMaW5lcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXQueENvdW50LHM9dC50aWNrQW1vdW50LGE9dGhpcy53O2lmKGEuY29uZmlnLmdyaWQueGF4aXMubGluZXMuc2hvd3x8YS5jb25maWcueGF4aXMuYXhpc1RpY2tzLnNob3cpe3ZhciBuLHI9YS5nbG9iYWxzLnBhZEhvcml6b250YWwsbz1hLmdsb2JhbHMuZ3JpZEhlaWdodDthLmdsb2JhbHMudGltZXNjYWxlTGFiZWxzLmxlbmd0aD9mdW5jdGlvbih0KXtmb3IodmFyIHM9dC54QyxhPXQueDEsbj10LnkxLHI9dC54MixvPXQueTIsbD0wO2w8cztsKyspYT1lLnhheGlzTGFiZWxzW2xdLnBvc2l0aW9uLHI9ZS54YXhpc0xhYmVsc1tsXS5wb3NpdGlvbixlLl9kcmF3R3JpZExpbmVzKHtpOmwseDE6YSx5MTpuLHgyOnIseTI6byx4Q291bnQ6aSxwYXJlbnQ6ZS5lbGdyaWRMaW5lc1Z9KX0oe3hDOmkseDE6cix5MTowLHgyOm4seTI6b30pOihhLmdsb2JhbHMuaXNYTnVtZXJpYyYmKGk9YS5nbG9iYWxzLnhBeGlzU2NhbGUucmVzdWx0Lmxlbmd0aCksYS5jb25maWcueGF4aXMuY29udmVydGVkQ2F0VG9OdW1lcmljJiYoaT1hLmdsb2JhbHMueGF4aXNMYWJlbHNDb3VudCksZnVuY3Rpb24odCl7dmFyIHM9dC54QyxuPXQueDEscj10LnkxLG89dC54MixsPXQueTI7aWYodm9pZCAwIT09YS5jb25maWcueGF4aXMudGlja0Ftb3VudCYmImRhdGFQb2ludHMiIT09YS5jb25maWcueGF4aXMudGlja0Ftb3VudCYmIm9uIj09PWEuY29uZmlnLnhheGlzLnRpY2tQbGFjZW1lbnQpYS5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvckFsbCgiLmFwZXhjaGFydHMtdGV4dC5hcGV4Y2hhcnRzLXhheGlzLWxhYmVsIHRzcGFuOm5vdCg6ZW1wdHkpIikuZm9yRWFjaCgoZnVuY3Rpb24odCxzKXt2YXIgYT10LmdldEJCb3goKTtlLl9kcmF3R3JpZExpbmVzKHtpOnMseDE6YS54K2Eud2lkdGgvMix5MTpyLHgyOmEueCthLndpZHRoLzIseTI6bCx4Q291bnQ6aSxwYXJlbnQ6ZS5lbGdyaWRMaW5lc1Z9KX0pKTtlbHNlIGZvcih2YXIgYz0wO2M8cysoYS5nbG9iYWxzLmlzWE51bWVyaWM/MDoxKTtjKyspMD09PWMmJjE9PT1zJiYxPT09YS5nbG9iYWxzLmRhdGFQb2ludHMmJihvPW49YS5nbG9iYWxzLmdyaWRXaWR0aC8yKSxlLl9kcmF3R3JpZExpbmVzKHtpOmMseDE6bix5MTpyLHgyOm8seTI6bCx4Q291bnQ6aSxwYXJlbnQ6ZS5lbGdyaWRMaW5lc1Z9KSxvPW4rPWEuZ2xvYmFscy5ncmlkV2lkdGgvKGEuZ2xvYmFscy5pc1hOdW1lcmljP3MtMTpzKX0oe3hDOmkseDE6cix5MTowLHgyOm4seTI6b30pKX1pZihhLmNvbmZpZy5ncmlkLnlheGlzLmxpbmVzLnNob3cpe3ZhciBsPTAsYz0wLGg9YS5nbG9iYWxzLmdyaWRXaWR0aCxkPXMrMTt0aGlzLmlzUmFuZ2VCYXImJihkPWEuZ2xvYmFscy5sYWJlbHMubGVuZ3RoKTtmb3IodmFyIHU9MDt1PGQrKHRoaXMuaXNSYW5nZUJhcj8xOjApO3UrKyl0aGlzLl9kcmF3R3JpZExpbmUoe2k6dSx4Q291bnQ6ZCsodGhpcy5pc1JhbmdlQmFyPzE6MCkseDE6MCx5MTpsLHgyOmgseTI6YyxwYXJlbnQ6dGhpcy5lbGdyaWRMaW5lc0h9KSxjPWwrPWEuZ2xvYmFscy5ncmlkSGVpZ2h0Lyh0aGlzLmlzUmFuZ2VCYXI/ZDpzKX19fSx7a2V5OiJfZHJhd0ludmVydGVkWFlMaW5lcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC54Q291bnQsaT10aGlzLnc7aWYoaS5jb25maWcuZ3JpZC54YXhpcy5saW5lcy5zaG93fHxpLmNvbmZpZy54YXhpcy5heGlzVGlja3Muc2hvdylmb3IodmFyIHMsYT1pLmdsb2JhbHMucGFkSG9yaXpvbnRhbCxuPWkuZ2xvYmFscy5ncmlkSGVpZ2h0LHI9MDtyPGUrMTtyKyspaS5jb25maWcuZ3JpZC54YXhpcy5saW5lcy5zaG93JiZ0aGlzLl9kcmF3R3JpZExpbmUoe2k6cix4Q291bnQ6ZSsxLHgxOmEseTE6MCx4MjpzLHkyOm4scGFyZW50OnRoaXMuZWxncmlkTGluZXNWfSksbmV3IEcodGhpcy5jdHgpLmRyYXdYYXhpc1RpY2tzKGEsMCxpLmdsb2JhbHMuZG9tLmVsR3JhcGhpY2FsKSxzPWE9YStpLmdsb2JhbHMuZ3JpZFdpZHRoL2UrLjM7aWYoaS5jb25maWcuZ3JpZC55YXhpcy5saW5lcy5zaG93KWZvcih2YXIgbz0wLGw9MCxjPWkuZ2xvYmFscy5ncmlkV2lkdGgsaD0wO2g8aS5nbG9iYWxzLmRhdGFQb2ludHMrMTtoKyspdGhpcy5fZHJhd0dyaWRMaW5lKHtpOmgseENvdW50OmkuZ2xvYmFscy5kYXRhUG9pbnRzKzEseDE6MCx5MTpvLHgyOmMseTI6bCxwYXJlbnQ6dGhpcy5lbGdyaWRMaW5lc0h9KSxsPW8rPWkuZ2xvYmFscy5ncmlkSGVpZ2h0L2kuZ2xvYmFscy5kYXRhUG9pbnRzfX0se2tleToicmVuZGVyR3JpZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLncsZT1uZXcgayh0aGlzLmN0eCk7dGhpcy5lbGc9ZS5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtZ3JpZCJ9KSx0aGlzLmVsZ3JpZExpbmVzSD1lLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy1ncmlkbGluZXMtaG9yaXpvbnRhbCJ9KSx0aGlzLmVsZ3JpZExpbmVzVj1lLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy1ncmlkbGluZXMtdmVydGljYWwifSksdGhpcy5lbEdyaWRCb3JkZXJzPWUuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLWdyaWQtYm9yZGVycyJ9KSx0aGlzLmVsZy5hZGQodGhpcy5lbGdyaWRMaW5lc0gpLHRoaXMuZWxnLmFkZCh0aGlzLmVsZ3JpZExpbmVzViksdC5jb25maWcuZ3JpZC5zaG93fHwodGhpcy5lbGdyaWRMaW5lc1YuaGlkZSgpLHRoaXMuZWxncmlkTGluZXNILmhpZGUoKSx0aGlzLmVsR3JpZEJvcmRlcnMuaGlkZSgpKTtmb3IodmFyIGkscz10Lmdsb2JhbHMueUF4aXNTY2FsZS5sZW5ndGg/dC5nbG9iYWxzLnlBeGlzU2NhbGVbMF0ucmVzdWx0Lmxlbmd0aC0xOjUsYT0wO2E8dC5nbG9iYWxzLnNlcmllcy5sZW5ndGgmJih2b2lkIDAhPT10Lmdsb2JhbHMueUF4aXNTY2FsZVthXSYmKHM9dC5nbG9iYWxzLnlBeGlzU2NhbGVbYV0ucmVzdWx0Lmxlbmd0aC0xKSwhKHM+MikpO2ErKyk7cmV0dXJuIXQuZ2xvYmFscy5pc0Jhckhvcml6b250YWx8fHRoaXMuaXNSYW5nZUJhcj8oaT10aGlzLnhheGlzTGFiZWxzLmxlbmd0aCx0aGlzLmlzUmFuZ2VCYXImJihzPXQuZ2xvYmFscy5sYWJlbHMubGVuZ3RoLHQuY29uZmlnLnhheGlzLnRpY2tBbW91bnQmJnQuY29uZmlnLnhheGlzLmxhYmVscy5mb3JtYXR0ZXImJihpPXQuY29uZmlnLnhheGlzLnRpY2tBbW91bnQpKSx0aGlzLl9kcmF3WFlMaW5lcyh7eENvdW50OmksdGlja0Ftb3VudDpzfSkpOihpPXMscz10Lmdsb2JhbHMueFRpY2tBbW91bnQsdGhpcy5fZHJhd0ludmVydGVkWFlMaW5lcyh7eENvdW50OmksdGlja0Ftb3VudDpzfSkpLHRoaXMuZHJhd0dyaWRCYW5kcyhpLHMpLHtlbDp0aGlzLmVsZyxlbEdyaWRCb3JkZXJzOnRoaXMuZWxHcmlkQm9yZGVycyx4QXhpc1RpY2tXaWR0aDp0Lmdsb2JhbHMuZ3JpZFdpZHRoL2l9fX0se2tleToiZHJhd0dyaWRCYW5kcyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnc7aWYodm9pZCAwIT09aS5jb25maWcuZ3JpZC5yb3cuY29sb3JzJiZpLmNvbmZpZy5ncmlkLnJvdy5jb2xvcnMubGVuZ3RoPjApZm9yKHZhciBzPTAsYT1pLmdsb2JhbHMuZ3JpZEhlaWdodC9lLG49aS5nbG9iYWxzLmdyaWRXaWR0aCxyPTAsbz0wO3I8ZTtyKyssbysrKW8+PWkuY29uZmlnLmdyaWQucm93LmNvbG9ycy5sZW5ndGgmJihvPTApLHRoaXMuX2RyYXdHcmlkQmFuZFJlY3Qoe2M6byx4MTowLHkxOnMseDI6bix5MjphLHR5cGU6InJvdyJ9KSxzKz1pLmdsb2JhbHMuZ3JpZEhlaWdodC9lO2lmKHZvaWQgMCE9PWkuY29uZmlnLmdyaWQuY29sdW1uLmNvbG9ycyYmaS5jb25maWcuZ3JpZC5jb2x1bW4uY29sb3JzLmxlbmd0aD4wKWZvcih2YXIgbD1pLmdsb2JhbHMuaXNCYXJIb3Jpem9udGFsfHwiY2F0ZWdvcnkiIT09aS5jb25maWcueGF4aXMudHlwZSYmIWkuY29uZmlnLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYz90OnQtMSxjPWkuZ2xvYmFscy5wYWRIb3Jpem9udGFsLGg9aS5nbG9iYWxzLnBhZEhvcml6b250YWwraS5nbG9iYWxzLmdyaWRXaWR0aC9sLGQ9aS5nbG9iYWxzLmdyaWRIZWlnaHQsdT0wLHA9MDt1PHQ7dSsrLHArKylwPj1pLmNvbmZpZy5ncmlkLmNvbHVtbi5jb2xvcnMubGVuZ3RoJiYocD0wKSx0aGlzLl9kcmF3R3JpZEJhbmRSZWN0KHtjOnAseDE6Yyx5MTowLHgyOmgseTI6ZCx0eXBlOiJjb2x1bW4ifSksYys9aS5nbG9iYWxzLmdyaWRXaWR0aC9sfX1dKSx0fSgpLHE9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLnd9cmV0dXJuIGModCxbe2tleToibmljZVNjYWxlIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToxMCxzPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTowLGE9YXJndW1lbnRzLmxlbmd0aD40P2FyZ3VtZW50c1s0XTp2b2lkIDAsbj10aGlzLncscj1NYXRoLmFicyhlLXQpO2lmKCJkYXRhUG9pbnRzIj09PShpPXRoaXMuX2FkanVzdFRpY2tzRm9yU21hbGxSYW5nZShpLHMscikpJiYoaT1uLmdsb2JhbHMuZGF0YVBvaW50cy0xKSx0PT09TnVtYmVyLk1JTl9WQUxVRSYmMD09PWV8fCFiLmlzTnVtYmVyKHQpJiYhYi5pc051bWJlcihlKXx8dD09PU51bWJlci5NSU5fVkFMVUUmJmU9PT0tTnVtYmVyLk1BWF9WQUxVRSl7dD0wLGU9aTt2YXIgbz10aGlzLmxpbmVhclNjYWxlKHQsZSxpKTtyZXR1cm4gb310PmU/KGNvbnNvbGUud2FybigiYXhpcy5taW4gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBheGlzLm1heCIpLGU9dCsuMSk6dD09PWUmJih0PTA9PT10PzA6dC0uNSxlPTA9PT1lPzI6ZSsuNSk7dmFyIGw9W107cjwxJiZhJiYoImNhbmRsZXN0aWNrIj09PW4uY29uZmlnLmNoYXJ0LnR5cGV8fCJjYW5kbGVzdGljayI9PT1uLmNvbmZpZy5zZXJpZXNbc10udHlwZXx8ImJveFBsb3QiPT09bi5jb25maWcuY2hhcnQudHlwZXx8ImJveFBsb3QiPT09bi5jb25maWcuc2VyaWVzW3NdLnR5cGV8fG4uZ2xvYmFscy5pc1JhbmdlRGF0YSkmJihlKj0xLjAxKTt2YXIgYz1pKzE7YzwyP2M9MjpjPjImJihjLT0yKTt2YXIgaD1yL2MsZD1NYXRoLmZsb29yKGIubG9nMTAoaCkpLHU9TWF0aC5wb3coMTAsZCkscD1NYXRoLnJvdW5kKGgvdSk7cDwxJiYocD0xKTt2YXIgZz1wKnUsZj1nKk1hdGguZmxvb3IodC9nKSxtPWcqTWF0aC5jZWlsKGUvZyksdj1mO2lmKGEmJnI+Mil7Zm9yKDtsLnB1c2godiksISgodis9Zyk+bSk7KTtyZXR1cm57cmVzdWx0OmwsbmljZU1pbjpsWzBdLG5pY2VNYXg6bFtsLmxlbmd0aC0xXX19dmFyIHg9dDsobD1bXSkucHVzaCh4KTtmb3IodmFyIHk9TWF0aC5hYnMoZS10KS9pLHc9MDt3PD1pO3crKyl4Kz15LGwucHVzaCh4KTtyZXR1cm4gbFtsLmxlbmd0aC0yXT49ZSYmbC5wb3AoKSx7cmVzdWx0OmwsbmljZU1pbjpsWzBdLG5pY2VNYXg6bFtsLmxlbmd0aC0xXX19fSx7a2V5OiJsaW5lYXJTY2FsZSIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MTAscz1hcmd1bWVudHMubGVuZ3RoPjM/YXJndW1lbnRzWzNdOnZvaWQgMCxhPU1hdGguYWJzKGUtdCk7ImRhdGFQb2ludHMiPT09KGk9dGhpcy5fYWRqdXN0VGlja3NGb3JTbWFsbFJhbmdlKGkscyxhKSkmJihpPXRoaXMudy5nbG9iYWxzLmRhdGFQb2ludHMtMSk7dmFyIG49YS9pO2k9PT1OdW1iZXIuTUFYX1ZBTFVFJiYoaT0xMCxuPTEpO2Zvcih2YXIgcj1bXSxvPXQ7aT49MDspci5wdXNoKG8pLG8rPW4saS09MTtyZXR1cm57cmVzdWx0OnIsbmljZU1pbjpyWzBdLG5pY2VNYXg6cltyLmxlbmd0aC0xXX19fSx7a2V5OiJsb2dhcml0aG1pY1NjYWxlTmljZSIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe2U8PTAmJihlPU1hdGgubWF4KHQsaSkpLHQ8PTAmJih0PU1hdGgubWluKGUsaSkpO2Zvcih2YXIgcz1bXSxhPU1hdGguY2VpbChNYXRoLmxvZyhlKS9NYXRoLmxvZyhpKSsxKSxuPU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5sb2coaSkpO248YTtuKyspcy5wdXNoKE1hdGgucG93KGksbikpO3JldHVybntyZXN1bHQ6cyxuaWNlTWluOnNbMF0sbmljZU1heDpzW3MubGVuZ3RoLTFdfX19LHtrZXk6ImxvZ2FyaXRobWljU2NhbGUiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXtlPD0wJiYoZT1NYXRoLm1heCh0LGkpKSx0PD0wJiYodD1NYXRoLm1pbihlLGkpKTtmb3IodmFyIHM9W10sYT1NYXRoLmxvZyhlKS9NYXRoLmxvZyhpKSxuPU1hdGgubG9nKHQpL01hdGgubG9nKGkpLHI9YS1uLG89TWF0aC5yb3VuZChyKSxsPXIvbyxjPTAsaD1uO2M8bztjKyssaCs9bClzLnB1c2goTWF0aC5wb3coaSxoKSk7cmV0dXJuIHMucHVzaChNYXRoLnBvdyhpLGEpKSx7cmVzdWx0OnMsbmljZU1pbjp0LG5pY2VNYXg6ZX19fSx7a2V5OiJfYWRqdXN0VGlja3NGb3JTbWFsbFJhbmdlIix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dDtpZih2b2lkIDAhPT1lJiZ0aGlzLncuY29uZmlnLnlheGlzW2VdLmxhYmVscy5mb3JtYXR0ZXImJnZvaWQgMD09PXRoaXMudy5jb25maWcueWF4aXNbZV0udGlja0Ftb3VudCl7dmFyIGE9dGhpcy53LmNvbmZpZy55YXhpc1tlXS5sYWJlbHMuZm9ybWF0dGVyKDEpO2IuaXNOdW1iZXIoTnVtYmVyKGEpKSYmIWIuaXNGbG9hdChhKSYmKHM9TWF0aC5jZWlsKGkpKX1yZXR1cm4gczx0P3M6dH19LHtrZXk6InNldFlTY2FsZUZvckluZGV4Iix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpcy53Lmdsb2JhbHMsYT10aGlzLncuY29uZmlnLG49cy5pc0Jhckhvcml6b250YWw/YS54YXhpczphLnlheGlzW3RdO3ZvaWQgMD09PXMueUF4aXNTY2FsZVt0XSYmKHMueUF4aXNTY2FsZVt0XT1bXSk7dmFyIHI9TWF0aC5hYnMoaS1lKTtpZihuLmxvZ2FyaXRobWljJiZyPD01JiYocy5pbnZhbGlkTG9nU2NhbGU9ITApLG4ubG9nYXJpdGhtaWMmJnI+NSlzLmFsbFNlcmllc0NvbGxhcHNlZD0hMSxzLnlBeGlzU2NhbGVbdF09dGhpcy5sb2dhcml0aG1pY1NjYWxlKGUsaSxuLmxvZ0Jhc2UpLHMueUF4aXNTY2FsZVt0XT1uLmZvcmNlTmljZVNjYWxlP3RoaXMubG9nYXJpdGhtaWNTY2FsZU5pY2UoZSxpLG4ubG9nQmFzZSk6dGhpcy5sb2dhcml0aG1pY1NjYWxlKGUsaSxuLmxvZ0Jhc2UpO2Vsc2UgaWYoaSE9PS1OdW1iZXIuTUFYX1ZBTFVFJiZiLmlzTnVtYmVyKGkpKWlmKHMuYWxsU2VyaWVzQ29sbGFwc2VkPSExLHZvaWQgMD09PW4ubWluJiZ2b2lkIDA9PT1uLm1heHx8bi5mb3JjZU5pY2VTY2FsZSl7dmFyIG89dm9pZCAwPT09YS55YXhpc1t0XS5tYXgmJnZvaWQgMD09PWEueWF4aXNbdF0ubWlufHxhLnlheGlzW3RdLmZvcmNlTmljZVNjYWxlO3MueUF4aXNTY2FsZVt0XT10aGlzLm5pY2VTY2FsZShlLGksbi50aWNrQW1vdW50P24udGlja0Ftb3VudDpyPDUmJnI+MT9yKzE6NSx0LG8pfWVsc2Ugcy55QXhpc1NjYWxlW3RdPXRoaXMubGluZWFyU2NhbGUoZSxpLG4udGlja0Ftb3VudCx0KTtlbHNlIHMueUF4aXNTY2FsZVt0XT10aGlzLmxpbmVhclNjYWxlKDAsNSw1KX19LHtrZXk6InNldFhTY2FsZSIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLncscz1pLmdsb2JhbHMsYT1pLmNvbmZpZy54YXhpcyxuPU1hdGguYWJzKGUtdCk7cmV0dXJuIGUhPT0tTnVtYmVyLk1BWF9WQUxVRSYmYi5pc051bWJlcihlKT9zLnhBeGlzU2NhbGU9dGhpcy5saW5lYXJTY2FsZSh0LGUsYS50aWNrQW1vdW50P2EudGlja0Ftb3VudDpuPDUmJm4+MT9uKzE6NSwwKTpzLnhBeGlzU2NhbGU9dGhpcy5saW5lYXJTY2FsZSgwLDUsNSkscy54QXhpc1NjYWxlfX0se2tleToic2V0TXVsdGlwbGVZU2NhbGVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLncuZ2xvYmFscyxpPXRoaXMudy5jb25maWcscz1lLm1pbllBcnIuY29uY2F0KFtdKSxhPWUubWF4WUFyci5jb25jYXQoW10pLG49W107aS55YXhpcy5mb3JFYWNoKChmdW5jdGlvbihlLHIpe3ZhciBvPXI7aS5zZXJpZXMuZm9yRWFjaCgoZnVuY3Rpb24odCxpKXt0Lm5hbWU9PT1lLnNlcmllc05hbWUmJihvPWksciE9PWk/bi5wdXNoKHtpbmRleDppLHNpbWlsYXJJbmRleDpyLGFscmVhZHlFeGlzdHM6ITB9KTpuLnB1c2goe2luZGV4Oml9KSl9KSk7dmFyIGw9c1tvXSxjPWFbb107dC5zZXRZU2NhbGVGb3JJbmRleChyLGwsYyl9KSksdGhpcy5zYW1lU2NhbGVJbk11bHRpcGxlQXhlcyhzLGEsbil9fSx7a2V5OiJzYW1lU2NhbGVJbk11bHRpcGxlQXhlcyIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXMsYT10aGlzLncuY29uZmlnLG49dGhpcy53Lmdsb2JhbHMscj1bXTtpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuYWxyZWFkeUV4aXN0cyYmKHZvaWQgMD09PXJbdC5pbmRleF0mJihyW3QuaW5kZXhdPVtdKSxyW3QuaW5kZXhdLnB1c2godC5pbmRleCksclt0LmluZGV4XS5wdXNoKHQuc2ltaWxhckluZGV4KSl9KSksbi55QXhpc1NhbWVTY2FsZUluZGljZXM9cixyLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7ci5mb3JFYWNoKChmdW5jdGlvbihpLHMpe3ZhciBhLG47ZSE9PXMmJihhPXQsbj1pLGEuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4tMSE9PW4uaW5kZXhPZih0KX0pKSkubGVuZ3RoPjAmJihyW2VdPXJbZV0uY29uY2F0KHJbc10pKX0pKX0pKTt2YXIgbz1yLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbihlLGkpe3JldHVybiB0LmluZGV4T2YoZSk9PT1pfSkpfSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc29ydCgpfSkpO3I9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiEhdH0pKTt2YXIgbD1vLnNsaWNlKCksYz1sLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpfSkpO2w9bC5maWx0ZXIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGMuaW5kZXhPZihKU09OLnN0cmluZ2lmeSh0KSk9PT1lfSkpO3ZhciBoPVtdLGQ9W107dC5mb3JFYWNoKChmdW5jdGlvbih0LGkpe2wuZm9yRWFjaCgoZnVuY3Rpb24ocyxhKXtzLmluZGV4T2YoaSk+LTEmJih2b2lkIDA9PT1oW2FdJiYoaFthXT1bXSxkW2FdPVtdKSxoW2FdLnB1c2goe2tleTppLHZhbHVlOnR9KSxkW2FdLnB1c2goe2tleTppLHZhbHVlOmVbaV19KSl9KSl9KSk7dmFyIHU9QXJyYXkuYXBwbHkobnVsbCxBcnJheShsLmxlbmd0aCkpLm1hcChOdW1iZXIucHJvdG90eXBlLnZhbHVlT2YsTnVtYmVyLk1JTl9WQUxVRSkscD1BcnJheS5hcHBseShudWxsLEFycmF5KGwubGVuZ3RoKSkubWFwKE51bWJlci5wcm90b3R5cGUudmFsdWVPZiwtTnVtYmVyLk1BWF9WQUxVRSk7aC5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCxpKXt1W2VdPU1hdGgubWluKHQudmFsdWUsdVtlXSl9KSl9KSksZC5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCxpKXtwW2VdPU1hdGgubWF4KHQudmFsdWUscFtlXSl9KSl9KSksdC5mb3JFYWNoKChmdW5jdGlvbih0LGUpe2QuZm9yRWFjaCgoZnVuY3Rpb24odCxpKXt2YXIgcj11W2ldLG89cFtpXTthLmNoYXJ0LnN0YWNrZWQmJihvPTAsdC5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3QudmFsdWUhPT0tTnVtYmVyLk1BWF9WQUxVRSYmKG8rPXQudmFsdWUpLHIhPT1OdW1iZXIuTUlOX1ZBTFVFJiYocis9aFtpXVtlXS52YWx1ZSl9KSkpLHQuZm9yRWFjaCgoZnVuY3Rpb24oaSxsKXt0W2xdLmtleT09PWUmJih2b2lkIDAhPT1hLnlheGlzW2VdLm1pbiYmKHI9ImZ1bmN0aW9uIj09dHlwZW9mIGEueWF4aXNbZV0ubWluP2EueWF4aXNbZV0ubWluKG4ubWluWSk6YS55YXhpc1tlXS5taW4pLHZvaWQgMCE9PWEueWF4aXNbZV0ubWF4JiYobz0iZnVuY3Rpb24iPT10eXBlb2YgYS55YXhpc1tlXS5tYXg/YS55YXhpc1tlXS5tYXgobi5tYXhZKTphLnlheGlzW2VdLm1heCkscy5zZXRZU2NhbGVGb3JJbmRleChlLHIsbykpfSkpfSkpfSkpfX0se2tleToiYXV0b1NjYWxlWSIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3R8fCh0PXRoaXMpO3ZhciBzPXQudztpZihzLmdsb2JhbHMuaXNNdWx0aXBsZVlBeGlzfHxzLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzLmxlbmd0aClyZXR1cm4gY29uc29sZS53YXJuKCJhdXRvU2NhbGVZYXhpcyBpcyBub3Qgc3VwcG9ydGVkIGluIGEgbXVsdGkteWF4aXMgY2hhcnQuIiksZTt2YXIgYT1zLmdsb2JhbHMuc2VyaWVzWFswXSxuPXMuY29uZmlnLmNoYXJ0LnN0YWNrZWQ7cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24odCxyKXtmb3IodmFyIG89MCxsPTA7bDxhLmxlbmd0aDtsKyspaWYoYVtsXT49aS54YXhpcy5taW4pe289bDticmVha312YXIgYyxoLGQ9cy5nbG9iYWxzLm1pbllBcnJbcl0sdT1zLmdsb2JhbHMubWF4WUFycltyXSxwPXMuZ2xvYmFscy5zdGFja2VkU2VyaWVzVG90YWxzO3MuZ2xvYmFscy5zZXJpZXMuZm9yRWFjaCgoZnVuY3Rpb24ocixsKXt2YXIgZz1yW29dO24/KGc9cFtvXSxjPWg9ZyxwLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7YVtlXTw9aS54YXhpcy5tYXgmJmFbZV0+PWkueGF4aXMubWluJiYodD5oJiZudWxsIT09dCYmKGg9dCkscltlXTxjJiZudWxsIT09cltlXSYmKGM9cltlXSkpfSkpKTooYz1oPWcsci5mb3JFYWNoKChmdW5jdGlvbih0LGUpe2lmKGFbZV08PWkueGF4aXMubWF4JiZhW2VdPj1pLnhheGlzLm1pbil7dmFyIG49dCxyPXQ7cy5nbG9iYWxzLnNlcmllcy5mb3JFYWNoKChmdW5jdGlvbihpLHMpe251bGwhPT10JiYobj1NYXRoLm1pbihpW2VdLG4pLHI9TWF0aC5tYXgoaVtlXSxyKSl9KSkscj5oJiZudWxsIT09ciYmKGg9ciksbjxjJiZudWxsIT09biYmKGM9bil9fSkpKSx2b2lkIDA9PT1jJiZ2b2lkIDA9PT1oJiYoYz1kLGg9dSksaCo9aDwwPy45OjEuMSwwPT0oYyo9YzwwPzEuMTouOSkmJjA9PT1oJiYoYz0tMSxoPTEpLGg8MCYmaDx1JiYoaD11KSxjPDAmJmM+ZCYmKGM9ZCksZS5sZW5ndGg+MT8oZVtsXS5taW49dm9pZCAwPT09dC5taW4/Yzp0Lm1pbixlW2xdLm1heD12b2lkIDA9PT10Lm1heD9oOnQubWF4KTooZVswXS5taW49dm9pZCAwPT09dC5taW4/Yzp0Lm1pbixlWzBdLm1heD12b2lkIDA9PT10Lm1heD9oOnQubWF4KX0pKX0pKSxlfX1dKSx0fSgpLFo9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLncsdGhpcy5zY2FsZXM9bmV3IHEoZSl9cmV0dXJuIGModCxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNldFlSYW5nZSgpLHRoaXMuc2V0WFJhbmdlKCksdGhpcy5zZXRaUmFuZ2UoKX19LHtrZXk6ImdldE1pbllNYXhZIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06TnVtYmVyLk1BWF9WQUxVRSxpPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTotTnVtYmVyLk1BWF9WQUxVRSxzPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpudWxsLGE9dGhpcy53LmNvbmZpZyxuPXRoaXMudy5nbG9iYWxzLHI9LU51bWJlci5NQVhfVkFMVUUsbz1OdW1iZXIuTUlOX1ZBTFVFO251bGw9PT1zJiYocz10KzEpO3ZhciBsPW4uc2VyaWVzLGM9bCxoPWw7ImNhbmRsZXN0aWNrIj09PWEuY2hhcnQudHlwZT8oYz1uLnNlcmllc0NhbmRsZUwsaD1uLnNlcmllc0NhbmRsZUgpOiJib3hQbG90Ij09PWEuY2hhcnQudHlwZT8oYz1uLnNlcmllc0NhbmRsZU8saD1uLnNlcmllc0NhbmRsZUMpOm4uaXNSYW5nZURhdGEmJihjPW4uc2VyaWVzUmFuZ2VTdGFydCxoPW4uc2VyaWVzUmFuZ2VFbmQpO2Zvcih2YXIgZD10O2Q8cztkKyspe24uZGF0YVBvaW50cz1NYXRoLm1heChuLmRhdGFQb2ludHMsbFtkXS5sZW5ndGgpLG4uY2F0ZWdvcnlMYWJlbHMubGVuZ3RoJiYobi5kYXRhUG9pbnRzPW4uY2F0ZWdvcnlMYWJlbHMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dH0pKS5sZW5ndGgpO2Zvcih2YXIgdT0wO3U8bi5zZXJpZXNbZF0ubGVuZ3RoO3UrKyl7dmFyIHA9bFtkXVt1XTtudWxsIT09cCYmYi5pc051bWJlcihwKT8odm9pZCAwIT09aFtkXVt1XSYmKHI9TWF0aC5tYXgocixoW2RdW3VdKSxlPU1hdGgubWluKGUsaFtkXVt1XSkpLHZvaWQgMCE9PWNbZF1bdV0mJihlPU1hdGgubWluKGUsY1tkXVt1XSksaT1NYXRoLm1heChpLGNbZF1bdV0pKSwiY2FuZGxlc3RpY2siIT09dGhpcy53LmNvbmZpZy5jaGFydC50eXBlJiYiYm94UGxvdCIhPT10aGlzLncuY29uZmlnLmNoYXJ0LnR5cGUmJiJyYW5nZUFyZWEiPT09dGhpcy53LmNvbmZpZy5jaGFydC50eXBlJiYicmFuZ2VCYXIiPT09dGhpcy53LmNvbmZpZy5jaGFydC50eXBlfHwoImNhbmRsZXN0aWNrIiE9PXRoaXMudy5jb25maWcuY2hhcnQudHlwZSYmImJveFBsb3QiIT09dGhpcy53LmNvbmZpZy5jaGFydC50eXBlfHx2b2lkIDAhPT1uLnNlcmllc0NhbmRsZUNbZF1bdV0mJihyPU1hdGgubWF4KHIsbi5zZXJpZXNDYW5kbGVPW2RdW3VdKSxyPU1hdGgubWF4KHIsbi5zZXJpZXNDYW5kbGVIW2RdW3VdKSxyPU1hdGgubWF4KHIsbi5zZXJpZXNDYW5kbGVMW2RdW3VdKSxyPU1hdGgubWF4KHIsbi5zZXJpZXNDYW5kbGVDW2RdW3VdKSwiYm94UGxvdCI9PT10aGlzLncuY29uZmlnLmNoYXJ0LnR5cGUmJihyPU1hdGgubWF4KHIsbi5zZXJpZXNDYW5kbGVNW2RdW3VdKSkpLCFhLnNlcmllc1tkXS50eXBlfHwiY2FuZGxlc3RpY2siPT09YS5zZXJpZXNbZF0udHlwZSYmImJveFBsb3QiPT09YS5zZXJpZXNbZF0udHlwZSYmInJhbmdlQXJlYSI9PT1hLnNlcmllc1tkXS50eXBlJiYicmFuZ2VCYXIiPT09YS5zZXJpZXNbZF0udHlwZXx8KHI9TWF0aC5tYXgocixuLnNlcmllc1tkXVt1XSksZT1NYXRoLm1pbihlLG4uc2VyaWVzW2RdW3VdKSksaT1yKSxuLnNlcmllc0dvYWxzW2RdJiZuLnNlcmllc0dvYWxzW2RdW3VdJiZBcnJheS5pc0FycmF5KG4uc2VyaWVzR29hbHNbZF1bdV0pJiZuLnNlcmllc0dvYWxzW2RdW3VdLmZvckVhY2goKGZ1bmN0aW9uKHQpe28hPT1OdW1iZXIuTUlOX1ZBTFVFJiYobz1NYXRoLm1pbihvLHQudmFsdWUpLGU9bykscj1NYXRoLm1heChyLHQudmFsdWUpLGk9cn0pKSxiLmlzRmxvYXQocCkmJihwPWIubm9FeHBvbmVudHMocCksbi55VmFsdWVEZWNpbWFsPU1hdGgubWF4KG4ueVZhbHVlRGVjaW1hbCxwLnRvU3RyaW5nKCkuc3BsaXQoIi4iKVsxXS5sZW5ndGgpKSxvPmNbZF1bdV0mJmNbZF1bdV08MCYmKG89Y1tkXVt1XSkpOm4uaGFzTnVsbFZhbHVlcz0hMH19cmV0dXJuInJhbmdlQmFyIj09PWEuY2hhcnQudHlwZSYmbi5zZXJpZXNSYW5nZVN0YXJ0Lmxlbmd0aCYmbi5pc0Jhckhvcml6b250YWwmJihvPWUpLCJiYXIiPT09YS5jaGFydC50eXBlJiYobzwwJiZyPDAmJihyPTApLG89PT1OdW1iZXIuTUlOX1ZBTFVFJiYobz0wKSkse21pblk6byxtYXhZOnIsbG93ZXN0WTplLGhpZ2hlc3RZOml9fX0se2tleToic2V0WVJhbmdlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudy5nbG9iYWxzLGU9dGhpcy53LmNvbmZpZzt0Lm1heFk9LU51bWJlci5NQVhfVkFMVUUsdC5taW5ZPU51bWJlci5NSU5fVkFMVUU7dmFyIGk9TnVtYmVyLk1BWF9WQUxVRTtpZih0LmlzTXVsdGlwbGVZQXhpcylmb3IodmFyIHM9MDtzPHQuc2VyaWVzLmxlbmd0aDtzKyspe3ZhciBhPXRoaXMuZ2V0TWluWU1heFkocyxpLG51bGwscysxKTt0Lm1pbllBcnIucHVzaChhLm1pblkpLHQubWF4WUFyci5wdXNoKGEubWF4WSksaT1hLmxvd2VzdFl9dmFyIG49dGhpcy5nZXRNaW5ZTWF4WSgwLGksbnVsbCx0LnNlcmllcy5sZW5ndGgpO2lmKHQubWluWT1uLm1pblksdC5tYXhZPW4ubWF4WSxpPW4ubG93ZXN0WSxlLmNoYXJ0LnN0YWNrZWQmJnRoaXMuX3NldFN0YWNrZWRNaW5NYXgoKSwoImxpbmUiPT09ZS5jaGFydC50eXBlfHwiYXJlYSI9PT1lLmNoYXJ0LnR5cGV8fCJjYW5kbGVzdGljayI9PT1lLmNoYXJ0LnR5cGV8fCJib3hQbG90Ij09PWUuY2hhcnQudHlwZXx8InJhbmdlQmFyIj09PWUuY2hhcnQudHlwZSYmIXQuaXNCYXJIb3Jpem9udGFsKSYmdC5taW5ZPT09TnVtYmVyLk1JTl9WQUxVRSYmaSE9PS1OdW1iZXIuTUFYX1ZBTFVFJiZpIT09dC5tYXhZKXt2YXIgcj10Lm1heFktaTsoaT49MCYmaTw9MTB8fHZvaWQgMCE9PWUueWF4aXNbMF0ubWlufHx2b2lkIDAhPT1lLnlheGlzWzBdLm1heCkmJihyPTApLHQubWluWT1pLTUqci8xMDAsaT4wJiZ0Lm1pblk8MCYmKHQubWluWT0wKSx0Lm1heFk9dC5tYXhZKzUqci8xMDB9cmV0dXJuIGUueWF4aXMuZm9yRWFjaCgoZnVuY3Rpb24oZSxpKXt2b2lkIDAhPT1lLm1heCYmKCJudW1iZXIiPT10eXBlb2YgZS5tYXg/dC5tYXhZQXJyW2ldPWUubWF4OiJmdW5jdGlvbiI9PXR5cGVvZiBlLm1heCYmKHQubWF4WUFycltpXT1lLm1heCh0LmlzTXVsdGlwbGVZQXhpcz90Lm1heFlBcnJbaV06dC5tYXhZKSksdC5tYXhZPXQubWF4WUFycltpXSksdm9pZCAwIT09ZS5taW4mJigibnVtYmVyIj09dHlwZW9mIGUubWluP3QubWluWUFycltpXT1lLm1pbjoiZnVuY3Rpb24iPT10eXBlb2YgZS5taW4mJih0Lm1pbllBcnJbaV09ZS5taW4odC5pc011bHRpcGxlWUF4aXM/dC5taW5ZQXJyW2ldPT09TnVtYmVyLk1JTl9WQUxVRT8wOnQubWluWUFycltpXTp0Lm1pblkpKSx0Lm1pblk9dC5taW5ZQXJyW2ldKX0pKSx0LmlzQmFySG9yaXpvbnRhbCYmWyJtaW4iLCJtYXgiXS5mb3JFYWNoKChmdW5jdGlvbihpKXt2b2lkIDAhPT1lLnhheGlzW2ldJiYibnVtYmVyIj09dHlwZW9mIGUueGF4aXNbaV0mJigibWluIj09PWk/dC5taW5ZPWUueGF4aXNbaV06dC5tYXhZPWUueGF4aXNbaV0pfSkpLHQuaXNNdWx0aXBsZVlBeGlzPyh0aGlzLnNjYWxlcy5zZXRNdWx0aXBsZVlTY2FsZXMoKSx0Lm1pblk9aSx0LnlBeGlzU2NhbGUuZm9yRWFjaCgoZnVuY3Rpb24oZSxpKXt0Lm1pbllBcnJbaV09ZS5uaWNlTWluLHQubWF4WUFycltpXT1lLm5pY2VNYXh9KSkpOih0aGlzLnNjYWxlcy5zZXRZU2NhbGVGb3JJbmRleCgwLHQubWluWSx0Lm1heFkpLHQubWluWT10LnlBeGlzU2NhbGVbMF0ubmljZU1pbix0Lm1heFk9dC55QXhpc1NjYWxlWzBdLm5pY2VNYXgsdC5taW5ZQXJyWzBdPXQueUF4aXNTY2FsZVswXS5uaWNlTWluLHQubWF4WUFyclswXT10LnlBeGlzU2NhbGVbMF0ubmljZU1heCkse21pblk6dC5taW5ZLG1heFk6dC5tYXhZLG1pbllBcnI6dC5taW5ZQXJyLG1heFlBcnI6dC5tYXhZQXJyLHlBeGlzU2NhbGU6dC55QXhpc1NjYWxlfX19LHtrZXk6InNldFhSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLncuZ2xvYmFscyxlPXRoaXMudy5jb25maWcsaT0ibnVtZXJpYyI9PT1lLnhheGlzLnR5cGV8fCJkYXRldGltZSI9PT1lLnhheGlzLnR5cGV8fCJjYXRlZ29yeSI9PT1lLnhheGlzLnR5cGUmJiF0Lm5vTGFiZWxzUHJvdmlkZWR8fHQubm9MYWJlbHNQcm92aWRlZHx8dC5pc1hOdW1lcmljO2lmKHQuaXNYTnVtZXJpYyYmZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPHQuc2VyaWVzLmxlbmd0aDtlKyspaWYodC5sYWJlbHNbZV0pZm9yKHZhciBpPTA7aTx0LmxhYmVsc1tlXS5sZW5ndGg7aSsrKW51bGwhPT10LmxhYmVsc1tlXVtpXSYmYi5pc051bWJlcih0LmxhYmVsc1tlXVtpXSkmJih0Lm1heFg9TWF0aC5tYXgodC5tYXhYLHQubGFiZWxzW2VdW2ldKSx0LmluaXRpYWxNYXhYPU1hdGgubWF4KHQubWF4WCx0LmxhYmVsc1tlXVtpXSksdC5taW5YPU1hdGgubWluKHQubWluWCx0LmxhYmVsc1tlXVtpXSksdC5pbml0aWFsTWluWD1NYXRoLm1pbih0Lm1pblgsdC5sYWJlbHNbZV1baV0pKX0oKSx0Lm5vTGFiZWxzUHJvdmlkZWQmJjA9PT1lLnhheGlzLmNhdGVnb3JpZXMubGVuZ3RoJiYodC5tYXhYPXQubGFiZWxzW3QubGFiZWxzLmxlbmd0aC0xXSx0LmluaXRpYWxNYXhYPXQubGFiZWxzW3QubGFiZWxzLmxlbmd0aC0xXSx0Lm1pblg9MSx0LmluaXRpYWxNaW5YPTEpLHQuaXNYTnVtZXJpY3x8dC5ub0xhYmVsc1Byb3ZpZGVkfHx0LmRhdGFGb3JtYXRYTnVtZXJpYyl7dmFyIHM7aWYodm9pZCAwPT09ZS54YXhpcy50aWNrQW1vdW50PyhzPU1hdGgucm91bmQodC5zdmdXaWR0aC8xNTApLCJudW1lcmljIj09PWUueGF4aXMudHlwZSYmdC5kYXRhUG9pbnRzPDMwJiYocz10LmRhdGFQb2ludHMtMSkscz50LmRhdGFQb2ludHMmJjAhPT10LmRhdGFQb2ludHMmJihzPXQuZGF0YVBvaW50cy0xKSk6ImRhdGFQb2ludHMiPT09ZS54YXhpcy50aWNrQW1vdW50Pyh0LnNlcmllcy5sZW5ndGg+MSYmKHM9dC5zZXJpZXNbdC5tYXhWYWxzSW5BcnJheUluZGV4XS5sZW5ndGgtMSksdC5pc1hOdW1lcmljJiYocz10Lm1heFgtdC5taW5YLTEpKTpzPWUueGF4aXMudGlja0Ftb3VudCx0LnhUaWNrQW1vdW50PXMsdm9pZCAwIT09ZS54YXhpcy5tYXgmJiJudW1iZXIiPT10eXBlb2YgZS54YXhpcy5tYXgmJih0Lm1heFg9ZS54YXhpcy5tYXgpLHZvaWQgMCE9PWUueGF4aXMubWluJiYibnVtYmVyIj09dHlwZW9mIGUueGF4aXMubWluJiYodC5taW5YPWUueGF4aXMubWluKSx2b2lkIDAhPT1lLnhheGlzLnJhbmdlJiYodC5taW5YPXQubWF4WC1lLnhheGlzLnJhbmdlKSx0Lm1pblghPT1OdW1iZXIuTUFYX1ZBTFVFJiZ0Lm1heFghPT0tTnVtYmVyLk1BWF9WQUxVRSlpZihlLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYyYmIXQuZGF0YUZvcm1hdFhOdW1lcmljKXtmb3IodmFyIGE9W10sbj10Lm1pblgtMTtuPHQubWF4WDtuKyspYS5wdXNoKG4rMSk7dC54QXhpc1NjYWxlPXtyZXN1bHQ6YSxuaWNlTWluOmFbMF0sbmljZU1heDphW2EubGVuZ3RoLTFdfX1lbHNlIHQueEF4aXNTY2FsZT10aGlzLnNjYWxlcy5zZXRYU2NhbGUodC5taW5YLHQubWF4WCk7ZWxzZSB0LnhBeGlzU2NhbGU9dGhpcy5zY2FsZXMubGluZWFyU2NhbGUoMSxzLHMpLHQubm9MYWJlbHNQcm92aWRlZCYmdC5sYWJlbHMubGVuZ3RoPjAmJih0LnhBeGlzU2NhbGU9dGhpcy5zY2FsZXMubGluZWFyU2NhbGUoMSx0LmxhYmVscy5sZW5ndGgscy0xKSx0LnNlcmllc1g9dC5sYWJlbHMuc2xpY2UoKSk7aSYmKHQubGFiZWxzPXQueEF4aXNTY2FsZS5yZXN1bHQuc2xpY2UoKSl9cmV0dXJuIHQuaXNCYXJIb3Jpem9udGFsJiZ0LmxhYmVscy5sZW5ndGgmJih0LnhUaWNrQW1vdW50PXQubGFiZWxzLmxlbmd0aCksdGhpcy5faGFuZGxlU2luZ2xlRGF0YVBvaW50KCksdGhpcy5fZ2V0TWluWERpZmYoKSx7bWluWDp0Lm1pblgsbWF4WDp0Lm1heFh9fX0se2tleToic2V0WlJhbmdlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudy5nbG9iYWxzO2lmKHQuaXNEYXRhWFlaKWZvcih2YXIgZT0wO2U8dC5zZXJpZXMubGVuZ3RoO2UrKylpZih2b2lkIDAhPT10LnNlcmllc1pbZV0pZm9yKHZhciBpPTA7aTx0LnNlcmllc1pbZV0ubGVuZ3RoO2krKyludWxsIT09dC5zZXJpZXNaW2VdW2ldJiZiLmlzTnVtYmVyKHQuc2VyaWVzWltlXVtpXSkmJih0Lm1heFo9TWF0aC5tYXgodC5tYXhaLHQuc2VyaWVzWltlXVtpXSksdC5taW5aPU1hdGgubWluKHQubWluWix0LnNlcmllc1pbZV1baV0pKX19LHtrZXk6Il9oYW5kbGVTaW5nbGVEYXRhUG9pbnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53Lmdsb2JhbHMsZT10aGlzLncuY29uZmlnO2lmKHQubWluWD09PXQubWF4WCl7dmFyIGk9bmV3IE8odGhpcy5jdHgpO2lmKCJkYXRldGltZSI9PT1lLnhheGlzLnR5cGUpe3ZhciBzPWkuZ2V0RGF0ZSh0Lm1pblgpO2UueGF4aXMubGFiZWxzLmRhdGV0aW1lVVRDP3Muc2V0VVRDRGF0ZShzLmdldFVUQ0RhdGUoKS0yKTpzLnNldERhdGUocy5nZXREYXRlKCktMiksdC5taW5YPW5ldyBEYXRlKHMpLmdldFRpbWUoKTt2YXIgYT1pLmdldERhdGUodC5tYXhYKTtlLnhheGlzLmxhYmVscy5kYXRldGltZVVUQz9hLnNldFVUQ0RhdGUoYS5nZXRVVENEYXRlKCkrMik6YS5zZXREYXRlKGEuZ2V0RGF0ZSgpKzIpLHQubWF4WD1uZXcgRGF0ZShhKS5nZXRUaW1lKCl9ZWxzZSgibnVtZXJpYyI9PT1lLnhheGlzLnR5cGV8fCJjYXRlZ29yeSI9PT1lLnhheGlzLnR5cGUmJiF0Lm5vTGFiZWxzUHJvdmlkZWQpJiYodC5taW5YPXQubWluWC0yLHQuaW5pdGlhbE1pblg9dC5taW5YLHQubWF4WD10Lm1heFgrMix0LmluaXRpYWxNYXhYPXQubWF4WCl9fX0se2tleToiX2dldE1pblhEaWZmIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudy5nbG9iYWxzO3QuaXNYTnVtZXJpYyYmdC5zZXJpZXNYLmZvckVhY2goKGZ1bmN0aW9uKGUsaSl7MT09PWUubGVuZ3RoJiZlLnB1c2godC5zZXJpZXNYW3QubWF4VmFsc0luQXJyYXlJbmRleF1bdC5zZXJpZXNYW3QubWF4VmFsc0luQXJyYXlJbmRleF0ubGVuZ3RoLTFdKTt2YXIgcz1lLnNsaWNlKCk7cy5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSkscy5mb3JFYWNoKChmdW5jdGlvbihlLGkpe2lmKGk+MCl7dmFyIGE9ZS1zW2ktMV07YT4wJiYodC5taW5YRGlmZj1NYXRoLm1pbihhLHQubWluWERpZmYpKX19KSksMSE9PXQuZGF0YVBvaW50cyYmdC5taW5YRGlmZiE9PU51bWJlci5NQVhfVkFMVUV8fCh0Lm1pblhEaWZmPS41KX0pKX19LHtrZXk6Il9zZXRTdGFja2VkTWluTWF4Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudy5nbG9iYWxzLGU9W10saT1bXTtpZih0LnNlcmllcy5sZW5ndGgpZm9yKHZhciBzPTA7czx0LnNlcmllc1t0Lm1heFZhbHNJbkFycmF5SW5kZXhdLmxlbmd0aDtzKyspZm9yKHZhciBhPTAsbj0wLHI9MDtyPHQuc2VyaWVzLmxlbmd0aDtyKyspbnVsbCE9PXQuc2VyaWVzW3JdW3NdJiZiLmlzTnVtYmVyKHQuc2VyaWVzW3JdW3NdKSYmKHQuc2VyaWVzW3JdW3NdPjA/YT1hK3BhcnNlRmxvYXQodC5zZXJpZXNbcl1bc10pKzFlLTQ6bis9cGFyc2VGbG9hdCh0LnNlcmllc1tyXVtzXSkpLHI9PT10LnNlcmllcy5sZW5ndGgtMSYmKGUucHVzaChhKSxpLnB1c2gobikpO2Zvcih2YXIgbz0wO288ZS5sZW5ndGg7bysrKXQubWF4WT1NYXRoLm1heCh0Lm1heFksZVtvXSksdC5taW5ZPU1hdGgubWluKHQubWluWSxpW29dKX19XSksdH0oKSxLPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLGkpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMuZWxncmlkPWksdGhpcy53PWUudzt2YXIgcz10aGlzLnc7dGhpcy54YXhpc0ZvbnRTaXplPXMuY29uZmlnLnhheGlzLmxhYmVscy5zdHlsZS5mb250U2l6ZSx0aGlzLmF4aXNGb250RmFtaWx5PXMuY29uZmlnLnhheGlzLmxhYmVscy5zdHlsZS5mb250RmFtaWx5LHRoaXMueGF4aXNGb3JlQ29sb3JzPXMuY29uZmlnLnhheGlzLmxhYmVscy5zdHlsZS5jb2xvcnMsdGhpcy5pc0NhdGVnb3J5QmFySG9yaXpvbnRhbD0iYmFyIj09PXMuY29uZmlnLmNoYXJ0LnR5cGUmJnMuY29uZmlnLnBsb3RPcHRpb25zLmJhci5ob3Jpem9udGFsLHRoaXMueEF4aXNvZmZYPTAsImJvdHRvbSI9PT1zLmNvbmZpZy54YXhpcy5wb3NpdGlvbiYmKHRoaXMueEF4aXNvZmZYPXMuZ2xvYmFscy5ncmlkSGVpZ2h0KSx0aGlzLmRyYXduTGFiZWxzPVtdLHRoaXMuYXhlc1V0aWxzPW5ldyBWKGUpfXJldHVybiBjKHQsW3trZXk6ImRyYXdZYXhpcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXRoaXMudyxzPW5ldyBrKHRoaXMuY3R4KSxhPWkuY29uZmlnLnlheGlzW3RdLmxhYmVscy5zdHlsZSxuPWEuZm9udFNpemUscj1hLmZvbnRGYW1pbHksbz1hLmZvbnRXZWlnaHQsbD1zLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy15YXhpcyIscmVsOnQsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoIitpLmdsb2JhbHMudHJhbnNsYXRlWUF4aXNYW3RdKyIsIDApIn0pO2lmKHRoaXMuYXhlc1V0aWxzLmlzWUF4aXNIaWRkZW4odCkpcmV0dXJuIGw7dmFyIGM9cy5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMteWF4aXMtdGV4dHMtZyJ9KTtsLmFkZChjKTt2YXIgaD1pLmdsb2JhbHMueUF4aXNTY2FsZVt0XS5yZXN1bHQubGVuZ3RoLTEsZD1pLmdsb2JhbHMuZ3JpZEhlaWdodC9oLHU9aS5nbG9iYWxzLnRyYW5zbGF0ZVkscD1pLmdsb2JhbHMueUxhYmVsRm9ybWF0dGVyc1t0XSxnPWkuZ2xvYmFscy55QXhpc1NjYWxlW3RdLnJlc3VsdC5zbGljZSgpO2c9dGhpcy5heGVzVXRpbHMuY2hlY2tGb3JSZXZlcnNlZExhYmVscyh0LGcpO3ZhciBmPSIiO2lmKGkuY29uZmlnLnlheGlzW3RdLmxhYmVscy5zaG93KWZvcih2YXIgbT1mdW5jdGlvbihsKXt2YXIgbT1nW2xdO209cChtLGwsaSk7dmFyIHY9aS5jb25maWcueWF4aXNbdF0ubGFiZWxzLnBhZGRpbmc7aS5jb25maWcueWF4aXNbdF0ub3Bwb3NpdGUmJjAhPT1pLmNvbmZpZy55YXhpcy5sZW5ndGgmJih2Kj0tMSk7dmFyIHg9ZS5heGVzVXRpbHMuZ2V0WUF4aXNGb3JlQ29sb3IoYS5jb2xvcnMsdCksYj1zLmRyYXdUZXh0KHt4OnYseTp1K2gvMTAraS5jb25maWcueWF4aXNbdF0ubGFiZWxzLm9mZnNldFkrMSx0ZXh0Om0sdGV4dEFuY2hvcjppLmNvbmZpZy55YXhpc1t0XS5vcHBvc2l0ZT8ic3RhcnQiOiJlbmQiLGZvbnRTaXplOm4sZm9udEZhbWlseTpyLGZvbnRXZWlnaHQ6byxtYXhXaWR0aDppLmNvbmZpZy55YXhpc1t0XS5sYWJlbHMubWF4V2lkdGgsZm9yZUNvbG9yOkFycmF5LmlzQXJyYXkoeCk/eFtsXTp4LGlzUGxhaW5UZXh0OiExLGNzc0NsYXNzOiJhcGV4Y2hhcnRzLXlheGlzLWxhYmVsICIrYS5jc3NDbGFzc30pO2w9PT1oJiYoZj1iKSxjLmFkZChiKTt2YXIgeT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoaS5nbG9iYWxzLlNWR05TLCJ0aXRsZSIpO2lmKHkudGV4dENvbnRlbnQ9QXJyYXkuaXNBcnJheShtKT9tLmpvaW4oIiAiKTptLGIubm9kZS5hcHBlbmRDaGlsZCh5KSwwIT09aS5jb25maWcueWF4aXNbdF0ubGFiZWxzLnJvdGF0ZSl7dmFyIHc9cy5yb3RhdGVBcm91bmRDZW50ZXIoZi5ub2RlKSxrPXMucm90YXRlQXJvdW5kQ2VudGVyKGIubm9kZSk7Yi5ub2RlLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwicm90YXRlKCIuY29uY2F0KGkuY29uZmlnLnlheGlzW3RdLmxhYmVscy5yb3RhdGUsIiAiKS5jb25jYXQody54LCIgIikuY29uY2F0KGsueSwiKSIpKX11Kz1kfSx2PWg7dj49MDt2LS0pbSh2KTtpZih2b2lkIDAhPT1pLmNvbmZpZy55YXhpc1t0XS50aXRsZS50ZXh0KXt2YXIgeD1zLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy15YXhpcy10aXRsZSJ9KSxiPTA7aS5jb25maWcueWF4aXNbdF0ub3Bwb3NpdGUmJihiPWkuZ2xvYmFscy50cmFuc2xhdGVZQXhpc1hbdF0pO3ZhciB5PXMuZHJhd1RleHQoe3g6Yix5OmkuZ2xvYmFscy5ncmlkSGVpZ2h0LzIraS5nbG9iYWxzLnRyYW5zbGF0ZVkraS5jb25maWcueWF4aXNbdF0udGl0bGUub2Zmc2V0WSx0ZXh0OmkuY29uZmlnLnlheGlzW3RdLnRpdGxlLnRleHQsdGV4dEFuY2hvcjoiZW5kIixmb3JlQ29sb3I6aS5jb25maWcueWF4aXNbdF0udGl0bGUuc3R5bGUuY29sb3IsZm9udFNpemU6aS5jb25maWcueWF4aXNbdF0udGl0bGUuc3R5bGUuZm9udFNpemUsZm9udFdlaWdodDppLmNvbmZpZy55YXhpc1t0XS50aXRsZS5zdHlsZS5mb250V2VpZ2h0LGZvbnRGYW1pbHk6aS5jb25maWcueWF4aXNbdF0udGl0bGUuc3R5bGUuZm9udEZhbWlseSxjc3NDbGFzczoiYXBleGNoYXJ0cy15YXhpcy10aXRsZS10ZXh0ICIraS5jb25maWcueWF4aXNbdF0udGl0bGUuc3R5bGUuY3NzQ2xhc3N9KTt4LmFkZCh5KSxsLmFkZCh4KX12YXIgdz1pLmNvbmZpZy55YXhpc1t0XS5heGlzQm9yZGVyLFM9MzErdy5vZmZzZXRYO2lmKGkuY29uZmlnLnlheGlzW3RdLm9wcG9zaXRlJiYoUz0tMzEtdy5vZmZzZXRYKSx3LnNob3cpe3ZhciBDPXMuZHJhd0xpbmUoUyxpLmdsb2JhbHMudHJhbnNsYXRlWSt3Lm9mZnNldFktMixTLGkuZ2xvYmFscy5ncmlkSGVpZ2h0K2kuZ2xvYmFscy50cmFuc2xhdGVZK3cub2Zmc2V0WSsyLHcuY29sb3IsMCx3LndpZHRoKTtsLmFkZChDKX1yZXR1cm4gaS5jb25maWcueWF4aXNbdF0uYXhpc1RpY2tzLnNob3cmJnRoaXMuYXhlc1V0aWxzLmRyYXdZQXhpc1RpY2tzKFMsaCx3LGkuY29uZmlnLnlheGlzW3RdLmF4aXNUaWNrcyx0LGQsbCksbH19LHtrZXk6ImRyYXdZYXhpc0ludmVyc2VkIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncsaT1uZXcgayh0aGlzLmN0eCkscz1pLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy14YXhpcyBhcGV4Y2hhcnRzLXlheGlzLWludmVyc2VkIn0pLGE9aS5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMteGF4aXMtdGV4dHMtZyIsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoZS5nbG9iYWxzLnRyYW5zbGF0ZVhBeGlzWCwiLCAiKS5jb25jYXQoZS5nbG9iYWxzLnRyYW5zbGF0ZVhBeGlzWSwiKSIpfSk7cy5hZGQoYSk7dmFyIG49ZS5nbG9iYWxzLnlBeGlzU2NhbGVbdF0ucmVzdWx0Lmxlbmd0aC0xLHI9ZS5nbG9iYWxzLmdyaWRXaWR0aC9uKy4xLG89citlLmNvbmZpZy54YXhpcy5sYWJlbHMub2Zmc2V0WCxsPWUuZ2xvYmFscy54TGFiZWxGb3JtYXR0ZXIsYz1lLmdsb2JhbHMueUF4aXNTY2FsZVt0XS5yZXN1bHQuc2xpY2UoKSxoPWUuZ2xvYmFscy50aW1lc2NhbGVMYWJlbHM7aC5sZW5ndGg+MCYmKHRoaXMueGF4aXNMYWJlbHM9aC5zbGljZSgpLG49KGM9aC5zbGljZSgpKS5sZW5ndGgpLGM9dGhpcy5heGVzVXRpbHMuY2hlY2tGb3JSZXZlcnNlZExhYmVscyh0LGMpO3ZhciBkPWgubGVuZ3RoO2lmKGUuY29uZmlnLnhheGlzLmxhYmVscy5zaG93KWZvcih2YXIgdT1kPzA6bjtkP3U8ZDp1Pj0wO2Q/dSsrOnUtLSl7dmFyIHA9Y1t1XTtwPWwocCx1LGUpO3ZhciBnPWUuZ2xvYmFscy5ncmlkV2lkdGgrZS5nbG9iYWxzLnBhZEhvcml6b250YWwtKG8tcitlLmNvbmZpZy54YXhpcy5sYWJlbHMub2Zmc2V0WCk7aWYoaC5sZW5ndGgpe3ZhciBmPXRoaXMuYXhlc1V0aWxzLmdldExhYmVsKGMsaCxnLHUsdGhpcy5kcmF3bkxhYmVscyx0aGlzLnhheGlzRm9udFNpemUpO2c9Zi54LHA9Zi50ZXh0LHRoaXMuZHJhd25MYWJlbHMucHVzaChmLnRleHQpLDA9PT11JiZlLmdsb2JhbHMuc2tpcEZpcnN0VGltZWxpbmVsYWJlbCYmKHA9IiIpLHU9PT1jLmxlbmd0aC0xJiZlLmdsb2JhbHMuc2tpcExhc3RUaW1lbGluZWxhYmVsJiYocD0iIil9dmFyIG09aS5kcmF3VGV4dCh7eDpnLHk6dGhpcy54QXhpc29mZlgrZS5jb25maWcueGF4aXMubGFiZWxzLm9mZnNldFkrMzAtKCJ0b3AiPT09ZS5jb25maWcueGF4aXMucG9zaXRpb24/ZS5nbG9iYWxzLnhBeGlzSGVpZ2h0K2UuY29uZmlnLnhheGlzLmF4aXNUaWNrcy5oZWlnaHQtMjowKSx0ZXh0OnAsdGV4dEFuY2hvcjoibWlkZGxlIixmb3JlQ29sb3I6QXJyYXkuaXNBcnJheSh0aGlzLnhheGlzRm9yZUNvbG9ycyk/dGhpcy54YXhpc0ZvcmVDb2xvcnNbdF06dGhpcy54YXhpc0ZvcmVDb2xvcnMsZm9udFNpemU6dGhpcy54YXhpc0ZvbnRTaXplLGZvbnRGYW1pbHk6dGhpcy54YXhpc0ZvbnRGYW1pbHksZm9udFdlaWdodDplLmNvbmZpZy54YXhpcy5sYWJlbHMuc3R5bGUuZm9udFdlaWdodCxpc1BsYWluVGV4dDohMSxjc3NDbGFzczoiYXBleGNoYXJ0cy14YXhpcy1sYWJlbCAiK2UuY29uZmlnLnhheGlzLmxhYmVscy5zdHlsZS5jc3NDbGFzc30pO2EuYWRkKG0pLG0udHNwYW4ocCk7dmFyIHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGUuZ2xvYmFscy5TVkdOUywidGl0bGUiKTt2LnRleHRDb250ZW50PXAsbS5ub2RlLmFwcGVuZENoaWxkKHYpLG8rPXJ9cmV0dXJuIHRoaXMuaW52ZXJzZWRZQXhpc1RpdGxlVGV4dChzKSx0aGlzLmludmVyc2VkWUF4aXNCb3JkZXIocyksc319LHtrZXk6ImludmVyc2VkWUF4aXNCb3JkZXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudyxpPW5ldyBrKHRoaXMuY3R4KSxzPWUuY29uZmlnLnhheGlzLmF4aXNCb3JkZXI7aWYocy5zaG93KXt2YXIgYT0wOyJiYXIiPT09ZS5jb25maWcuY2hhcnQudHlwZSYmZS5nbG9iYWxzLmlzWE51bWVyaWMmJihhLT0xNSk7dmFyIG49aS5kcmF3TGluZShlLmdsb2JhbHMucGFkSG9yaXpvbnRhbCthK3Mub2Zmc2V0WCx0aGlzLnhBeGlzb2ZmWCxlLmdsb2JhbHMuZ3JpZFdpZHRoLHRoaXMueEF4aXNvZmZYLHMuY29sb3IsMCxzLmhlaWdodCk7dGhpcy5lbGdyaWQmJnRoaXMuZWxncmlkLmVsR3JpZEJvcmRlcnM/dGhpcy5lbGdyaWQuZWxHcmlkQm9yZGVycy5hZGQobik6dC5hZGQobil9fX0se2tleToiaW52ZXJzZWRZQXhpc1RpdGxlVGV4dCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53LGk9bmV3IGsodGhpcy5jdHgpO2lmKHZvaWQgMCE9PWUuY29uZmlnLnhheGlzLnRpdGxlLnRleHQpe3ZhciBzPWkuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLXhheGlzLXRpdGxlIGFwZXhjaGFydHMteWF4aXMtdGl0bGUtaW52ZXJzZWQifSksYT1pLmRyYXdUZXh0KHt4OmUuZ2xvYmFscy5ncmlkV2lkdGgvMitlLmNvbmZpZy54YXhpcy50aXRsZS5vZmZzZXRYLHk6dGhpcy54QXhpc29mZlgrcGFyc2VGbG9hdCh0aGlzLnhheGlzRm9udFNpemUpK3BhcnNlRmxvYXQoZS5jb25maWcueGF4aXMudGl0bGUuc3R5bGUuZm9udFNpemUpK2UuY29uZmlnLnhheGlzLnRpdGxlLm9mZnNldFkrMjAsdGV4dDplLmNvbmZpZy54YXhpcy50aXRsZS50ZXh0LHRleHRBbmNob3I6Im1pZGRsZSIsZm9udFNpemU6ZS5jb25maWcueGF4aXMudGl0bGUuc3R5bGUuZm9udFNpemUsZm9udEZhbWlseTplLmNvbmZpZy54YXhpcy50aXRsZS5zdHlsZS5mb250RmFtaWx5LGZvbnRXZWlnaHQ6ZS5jb25maWcueGF4aXMudGl0bGUuc3R5bGUuZm9udFdlaWdodCxmb3JlQ29sb3I6ZS5jb25maWcueGF4aXMudGl0bGUuc3R5bGUuY29sb3IsY3NzQ2xhc3M6ImFwZXhjaGFydHMteGF4aXMtdGl0bGUtdGV4dCAiK2UuY29uZmlnLnhheGlzLnRpdGxlLnN0eWxlLmNzc0NsYXNzfSk7cy5hZGQoYSksdC5hZGQocyl9fX0se2tleToieUF4aXNUaXRsZVJvdGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLncscz1uZXcgayh0aGlzLmN0eCksYT17d2lkdGg6MCxoZWlnaHQ6MH0sbj17d2lkdGg6MCxoZWlnaHQ6MH0scj1pLmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIgLmFwZXhjaGFydHMteWF4aXNbcmVsPSciLmNvbmNhdCh0LCInXSAuYXBleGNoYXJ0cy15YXhpcy10ZXh0cy1nIikpO251bGwhPT1yJiYoYT1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTt2YXIgbz1pLmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy15YXhpc1tyZWw9JyIuY29uY2F0KHQsIiddIC5hcGV4Y2hhcnRzLXlheGlzLXRpdGxlIHRleHQiKSk7aWYobnVsbCE9PW8mJihuPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLG51bGwhPT1vKXt2YXIgbD10aGlzLnhQYWRkaW5nRm9yWUF4aXNUaXRsZSh0LGEsbixlKTtvLnNldEF0dHJpYnV0ZSgieCIsbC54UG9zLShlPzEwOjApKX1pZihudWxsIT09byl7dmFyIGM9cy5yb3RhdGVBcm91bmRDZW50ZXIobyk7by5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsInJvdGF0ZSgiLmNvbmNhdChlPy0xKmkuY29uZmlnLnlheGlzW3RdLnRpdGxlLnJvdGF0ZTppLmNvbmZpZy55YXhpc1t0XS50aXRsZS5yb3RhdGUsIiAiKS5jb25jYXQoYy54LCIgIikuY29uY2F0KGMueSwiKSIpKX19fSx7a2V5OiJ4UGFkZGluZ0ZvcllBeGlzVGl0bGUiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMpe3ZhciBhPXRoaXMudyxuPTAscj0wLG89MTA7cmV0dXJuIHZvaWQgMD09PWEuY29uZmlnLnlheGlzW3RdLnRpdGxlLnRleHR8fHQ8MD97eFBvczpyLHBhZGQ6MH06KHM/KHI9ZS53aWR0aCthLmNvbmZpZy55YXhpc1t0XS50aXRsZS5vZmZzZXRYK2kud2lkdGgvMitvLzIsMD09PShuKz0xKSYmKHItPW8vMikpOihyPS0xKmUud2lkdGgrYS5jb25maWcueWF4aXNbdF0udGl0bGUub2Zmc2V0WCtvLzIraS53aWR0aC8yLGEuZ2xvYmFscy5pc0Jhckhvcml6b250YWwmJihvPTI1LHI9LTEqZS53aWR0aC1hLmNvbmZpZy55YXhpc1t0XS50aXRsZS5vZmZzZXRYLW8pKSx7eFBvczpyLHBhZGQ6b30pfX0se2tleToic2V0WUF4aXNYUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy53LHM9MCxhPTAsbj0xOCxyPTE7aS5jb25maWcueWF4aXMubGVuZ3RoPjEmJih0aGlzLm11bHRpcGxlWXM9ITApLGkuY29uZmlnLnlheGlzLm1hcCgoZnVuY3Rpb24obyxsKXt2YXIgYz1pLmdsb2JhbHMuaWdub3JlWUF4aXNJbmRleGVzLmluZGV4T2YobCk+LTF8fCFvLnNob3d8fG8uZmxvYXRpbmd8fDA9PT10W2xdLndpZHRoLGg9dFtsXS53aWR0aCtlW2xdLndpZHRoO28ub3Bwb3NpdGU/aS5nbG9iYWxzLmlzQmFySG9yaXpvbnRhbD8oYT1pLmdsb2JhbHMuZ3JpZFdpZHRoK2kuZ2xvYmFscy50cmFuc2xhdGVYLTEsaS5nbG9iYWxzLnRyYW5zbGF0ZVlBeGlzWFtsXT1hLW8ubGFiZWxzLm9mZnNldFgpOihhPWkuZ2xvYmFscy5ncmlkV2lkdGgraS5nbG9iYWxzLnRyYW5zbGF0ZVgrcixjfHwocj1yK2grMjApLGkuZ2xvYmFscy50cmFuc2xhdGVZQXhpc1hbbF09YS1vLmxhYmVscy5vZmZzZXRYKzIwKToocz1pLmdsb2JhbHMudHJhbnNsYXRlWC1uLGN8fChuPW4raCsyMCksaS5nbG9iYWxzLnRyYW5zbGF0ZVlBeGlzWFtsXT1zK28ubGFiZWxzLm9mZnNldFgpfSkpfX0se2tleToic2V0WUF4aXNUZXh0QWxpZ25tZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLncsZT10Lmdsb2JhbHMuZG9tLmJhc2VFbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhcGV4Y2hhcnRzLXlheGlzIik7KGU9Yi5saXN0VG9BcnJheShlKSkuZm9yRWFjaCgoZnVuY3Rpb24oZSxpKXt2YXIgcz10LmNvbmZpZy55YXhpc1tpXTtpZihzJiZ2b2lkIDAhPT1zLmxhYmVscy5hbGlnbil7dmFyIGE9dC5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMteWF4aXNbcmVsPSciLmNvbmNhdChpLCInXSAuYXBleGNoYXJ0cy15YXhpcy10ZXh0cy1nIikpLG49dC5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvckFsbCgiLmFwZXhjaGFydHMteWF4aXNbcmVsPSciLmNvbmNhdChpLCInXSAuYXBleGNoYXJ0cy15YXhpcy1sYWJlbCIpKTtuPWIubGlzdFRvQXJyYXkobik7dmFyIHI9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsibGVmdCI9PT1zLmxhYmVscy5hbGlnbj8obi5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3Quc2V0QXR0cmlidXRlKCJ0ZXh0LWFuY2hvciIsInN0YXJ0Iil9KSkscy5vcHBvc2l0ZXx8YS5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgtIi5jb25jYXQoci53aWR0aCwiLCAwKSIpKSk6ImNlbnRlciI9PT1zLmxhYmVscy5hbGlnbj8obi5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3Quc2V0QXR0cmlidXRlKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpfSkpLGEuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIi5jb25jYXQoci53aWR0aC8yKihzLm9wcG9zaXRlPzE6LTEpLCIsIDApIikpKToicmlnaHQiPT09cy5sYWJlbHMuYWxpZ24mJihuLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dC5zZXRBdHRyaWJ1dGUoInRleHQtYW5jaG9yIiwiZW5kIil9KSkscy5vcHBvc2l0ZSYmYS5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiLmNvbmNhdChyLndpZHRoLCIsIDApIikpKX19KSl9fV0pLHR9KCksSj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMuY3R4PWUsdGhpcy53PWUudyx0aGlzLmRvY3VtZW50RXZlbnQ9Yi5iaW5kKHRoaXMuZG9jdW1lbnRFdmVudCx0aGlzKX1yZXR1cm4gYyh0LFt7a2V5OiJhZGRFdmVudExpc3RlbmVyIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudztpLmdsb2JhbHMuZXZlbnRzLmhhc093blByb3BlcnR5KHQpP2kuZ2xvYmFscy5ldmVudHNbdF0ucHVzaChlKTppLmdsb2JhbHMuZXZlbnRzW3RdPVtlXX19LHtrZXk6InJlbW92ZUV2ZW50TGlzdGVuZXIiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy53O2lmKGkuZ2xvYmFscy5ldmVudHMuaGFzT3duUHJvcGVydHkodCkpe3ZhciBzPWkuZ2xvYmFscy5ldmVudHNbdF0uaW5kZXhPZihlKTstMSE9PXMmJmkuZ2xvYmFscy5ldmVudHNbdF0uc3BsaWNlKHMsMSl9fX0se2tleToiZmlyZUV2ZW50Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudztpZihpLmdsb2JhbHMuZXZlbnRzLmhhc093blByb3BlcnR5KHQpKXtlJiZlLmxlbmd0aHx8KGU9W10pO2Zvcih2YXIgcz1pLmdsb2JhbHMuZXZlbnRzW3RdLGE9cy5sZW5ndGgsbj0wO248YTtuKyspc1tuXS5hcHBseShudWxsLGUpfX19LHtrZXk6InNldHVwRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy53LGk9dGhpcy5jdHgscz1lLmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKGUuZ2xvYmFscy5jaGFydENsYXNzKTt0aGlzLmN0eC5ldmVudExpc3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7cy5hZGRFdmVudExpc3RlbmVyKHQsKGZ1bmN0aW9uKHQpe3ZhciBzPU9iamVjdC5hc3NpZ24oe30sZSx7c2VyaWVzSW5kZXg6ZS5nbG9iYWxzLmNhcHR1cmVkU2VyaWVzSW5kZXgsZGF0YVBvaW50SW5kZXg6ZS5nbG9iYWxzLmNhcHR1cmVkRGF0YVBvaW50SW5kZXh9KTsibW91c2Vtb3ZlIj09PXQudHlwZXx8InRvdWNobW92ZSI9PT10LnR5cGU/ImZ1bmN0aW9uIj09dHlwZW9mIGUuY29uZmlnLmNoYXJ0LmV2ZW50cy5tb3VzZU1vdmUmJmUuY29uZmlnLmNoYXJ0LmV2ZW50cy5tb3VzZU1vdmUodCxpLHMpOiJtb3VzZWxlYXZlIj09PXQudHlwZXx8InRvdWNobGVhdmUiPT09dC50eXBlPyJmdW5jdGlvbiI9PXR5cGVvZiBlLmNvbmZpZy5jaGFydC5ldmVudHMubW91c2VMZWF2ZSYmZS5jb25maWcuY2hhcnQuZXZlbnRzLm1vdXNlTGVhdmUodCxpLHMpOigibW91c2V1cCI9PT10LnR5cGUmJjE9PT10LndoaWNofHwidG91Y2hlbmQiPT09dC50eXBlKSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLmNvbmZpZy5jaGFydC5ldmVudHMuY2xpY2smJmUuY29uZmlnLmNoYXJ0LmV2ZW50cy5jbGljayh0LGkscyksaS5jdHguZXZlbnRzLmZpcmVFdmVudCgiY2xpY2siLFt0LGksc10pKX0pLHtjYXB0dXJlOiExLHBhc3NpdmU6ITB9KX0pKSx0aGlzLmN0eC5ldmVudExpc3QuZm9yRWFjaCgoZnVuY3Rpb24oaSl7ZS5nbG9iYWxzLmRvbS5iYXNlRWwuYWRkRXZlbnRMaXN0ZW5lcihpLHQuZG9jdW1lbnRFdmVudCx7cGFzc2l2ZTohMH0pfSkpLHRoaXMuY3R4LmNvcmUuc2V0dXBCcnVzaEhhbmRsZXIoKX19LHtrZXk6ImRvY3VtZW50RXZlbnQiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudyxpPXQudGFyZ2V0LmNsYXNzTmFtZTtpZigiY2xpY2siPT09dC50eXBlKXt2YXIgcz1lLmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy1tZW51Iik7cyYmcy5jbGFzc0xpc3QuY29udGFpbnMoImFwZXhjaGFydHMtbWVudS1vcGVuIikmJiJhcGV4Y2hhcnRzLW1lbnUtaWNvbiIhPT1pJiZzLmNsYXNzTGlzdC5yZW1vdmUoImFwZXhjaGFydHMtbWVudS1vcGVuIil9ZS5nbG9iYWxzLmNsaWVudFg9InRvdWNobW92ZSI9PT10LnR5cGU/dC50b3VjaGVzWzBdLmNsaWVudFg6dC5jbGllbnRYLGUuZ2xvYmFscy5jbGllbnRZPSJ0b3VjaG1vdmUiPT09dC50eXBlP3QudG91Y2hlc1swXS5jbGllbnRZOnQuY2xpZW50WX19XSksdH0oKSxRPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLnc9ZS53fXJldHVybiBjKHQsW3trZXk6InNldEN1cnJlbnRMb2NhbGVWYWx1ZXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudy5jb25maWcuY2hhcnQubG9jYWxlczt3aW5kb3cuQXBleC5jaGFydCYmd2luZG93LkFwZXguY2hhcnQubG9jYWxlcyYmd2luZG93LkFwZXguY2hhcnQubG9jYWxlcy5sZW5ndGg+MCYmKGU9dGhpcy53LmNvbmZpZy5jaGFydC5sb2NhbGVzLmNvbmNhdCh3aW5kb3cuQXBleC5jaGFydC5sb2NhbGVzKSk7dmFyIGk9ZS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT10fSkpWzBdO2lmKCFpKXRocm93IG5ldyBFcnJvcigiV3JvbmcgbG9jYWxlIG5hbWUgcHJvdmlkZWQuIFBsZWFzZSBtYWtlIHN1cmUgeW91IHNldCB0aGUgY29ycmVjdCBsb2NhbGUgbmFtZSBpbiBvcHRpb25zIik7dmFyIHM9Yi5leHRlbmQoTCxpKTt0aGlzLncuZ2xvYmFscy5sb2NhbGU9cy5vcHRpb25zfX1dKSx0fSgpLHR0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLnc9ZS53fXJldHVybiBjKHQsW3trZXk6ImRyYXdBeGlzIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpLHMsYT10aGlzLncuZ2xvYmFscyxuPXRoaXMudy5jb25maWcscj1uZXcgRyh0aGlzLmN0eCxlKSxvPW5ldyBLKHRoaXMuY3R4LGUpO2EuYXhpc0NoYXJ0cyYmInJhZGFyIiE9PXQmJihhLmlzQmFySG9yaXpvbnRhbD8ocz1vLmRyYXdZYXhpc0ludmVyc2VkKDApLGk9ci5kcmF3WGF4aXNJbnZlcnNlZCgwKSxhLmRvbS5lbEdyYXBoaWNhbC5hZGQoaSksYS5kb20uZWxHcmFwaGljYWwuYWRkKHMpKTooaT1yLmRyYXdYYXhpcygpLGEuZG9tLmVsR3JhcGhpY2FsLmFkZChpKSxuLnlheGlzLm1hcCgoZnVuY3Rpb24odCxlKXstMT09PWEuaWdub3JlWUF4aXNJbmRleGVzLmluZGV4T2YoZSkmJihzPW8uZHJhd1lheGlzKGUpLGEuZG9tLlBhcGVyLmFkZChzKSl9KSkpKX19XSksdH0oKSxldD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMuY3R4PWUsdGhpcy53PWUud31yZXR1cm4gYyh0LFt7a2V5OiJkcmF3WENyb3NzaGFpcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53LGU9bmV3IGsodGhpcy5jdHgpLGk9bmV3IHcodGhpcy5jdHgpLHM9dC5jb25maWcueGF4aXMuY3Jvc3NoYWlycy5maWxsLmdyYWRpZW50LGE9dC5jb25maWcueGF4aXMuY3Jvc3NoYWlycy5kcm9wU2hhZG93LG49dC5jb25maWcueGF4aXMuY3Jvc3NoYWlycy5maWxsLnR5cGUscj1zLmNvbG9yRnJvbSxvPXMuY29sb3JUbyxsPXMub3BhY2l0eUZyb20sYz1zLm9wYWNpdHlUbyxoPXMuc3RvcHMsZD1hLmVuYWJsZWQsdT1hLmxlZnQscD1hLnRvcCxnPWEuYmx1cixmPWEuY29sb3IsbT1hLm9wYWNpdHksdj10LmNvbmZpZy54YXhpcy5jcm9zc2hhaXJzLmZpbGwuY29sb3I7aWYodC5jb25maWcueGF4aXMuY3Jvc3NoYWlycy5zaG93KXsiZ3JhZGllbnQiPT09biYmKHY9ZS5kcmF3R3JhZGllbnQoInZlcnRpY2FsIixyLG8sbCxjLG51bGwsaCxudWxsKSk7dmFyIHg9ZS5kcmF3UmVjdCgpOzE9PT10LmNvbmZpZy54YXhpcy5jcm9zc2hhaXJzLndpZHRoJiYoeD1lLmRyYXdMaW5lKCkpO3ZhciB5PXQuZ2xvYmFscy5ncmlkSGVpZ2h0OyghYi5pc051bWJlcih5KXx8eTwwKSYmKHk9MCk7dmFyIFM9dC5jb25maWcueGF4aXMuY3Jvc3NoYWlycy53aWR0aDsoIWIuaXNOdW1iZXIoUyl8fFM8MCkmJihTPTApLHguYXR0cih7Y2xhc3M6ImFwZXhjaGFydHMteGNyb3NzaGFpcnMiLHg6MCx5OjAseTI6eSx3aWR0aDpTLGhlaWdodDp5LGZpbGw6dixmaWx0ZXI6Im5vbmUiLCJmaWxsLW9wYWNpdHkiOnQuY29uZmlnLnhheGlzLmNyb3NzaGFpcnMub3BhY2l0eSxzdHJva2U6dC5jb25maWcueGF4aXMuY3Jvc3NoYWlycy5zdHJva2UuY29sb3IsInN0cm9rZS13aWR0aCI6dC5jb25maWcueGF4aXMuY3Jvc3NoYWlycy5zdHJva2Uud2lkdGgsInN0cm9rZS1kYXNoYXJyYXkiOnQuY29uZmlnLnhheGlzLmNyb3NzaGFpcnMuc3Ryb2tlLmRhc2hBcnJheX0pLGQmJih4PWkuZHJvcFNoYWRvdyh4LHtsZWZ0OnUsdG9wOnAsYmx1cjpnLGNvbG9yOmYsb3BhY2l0eTptfSkpLHQuZ2xvYmFscy5kb20uZWxHcmFwaGljYWwuYWRkKHgpfX19LHtrZXk6ImRyYXdZQ3Jvc3NoYWlycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLncsZT1uZXcgayh0aGlzLmN0eCksaT10LmNvbmZpZy55YXhpc1swXS5jcm9zc2hhaXJzLHM9dC5nbG9iYWxzLmJhclBhZEZvck51bWVyaWNBeGlzO2lmKHQuY29uZmlnLnlheGlzWzBdLmNyb3NzaGFpcnMuc2hvdyl7dmFyIGE9ZS5kcmF3TGluZSgtcywwLHQuZ2xvYmFscy5ncmlkV2lkdGgrcywwLGkuc3Ryb2tlLmNvbG9yLGkuc3Ryb2tlLmRhc2hBcnJheSxpLnN0cm9rZS53aWR0aCk7YS5hdHRyKHtjbGFzczoiYXBleGNoYXJ0cy15Y3Jvc3NoYWlycyJ9KSx0Lmdsb2JhbHMuZG9tLmVsR3JhcGhpY2FsLmFkZChhKX12YXIgbj1lLmRyYXdMaW5lKC1zLDAsdC5nbG9iYWxzLmdyaWRXaWR0aCtzLDAsaS5zdHJva2UuY29sb3IsMCwwKTtuLmF0dHIoe2NsYXNzOiJhcGV4Y2hhcnRzLXljcm9zc2hhaXJzLWhpZGRlbiJ9KSx0Lmdsb2JhbHMuZG9tLmVsR3JhcGhpY2FsLmFkZChuKX19XSksdH0oKSxpdD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMuY3R4PWUsdGhpcy53PWUud31yZXR1cm4gYyh0LFt7a2V5OiJjaGVja1Jlc3BvbnNpdmVDb25maWciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLncscz1pLmNvbmZpZztpZigwIT09cy5yZXNwb25zaXZlLmxlbmd0aCl7dmFyIGE9cy5yZXNwb25zaXZlLnNsaWNlKCk7YS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LmJyZWFrcG9pbnQ+ZS5icmVha3BvaW50PzE6ZS5icmVha3BvaW50PnQuYnJlYWtwb2ludD8tMTowfSkpLnJldmVyc2UoKTt2YXIgbj1uZXcgeih7fSkscj1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxzPWFbMF0uYnJlYWtwb2ludCxyPXdpbmRvdy5pbm5lcldpZHRoPjA/d2luZG93LmlubmVyV2lkdGg6c2NyZWVuLndpZHRoO2lmKHI+cyl7dmFyIG89Uy5leHRlbmRBcnJheVByb3BzKG4saS5nbG9iYWxzLmluaXRpYWxDb25maWcsaSk7dD1iLmV4dGVuZChvLHQpLHQ9Yi5leHRlbmQoaS5jb25maWcsdCksZS5vdmVycmlkZVJlc3BvbnNpdmVPcHRpb25zKHQpfWVsc2UgZm9yKHZhciBsPTA7bDxhLmxlbmd0aDtsKyspcjxhW2xdLmJyZWFrcG9pbnQmJih0PVMuZXh0ZW5kQXJyYXlQcm9wcyhuLGFbbF0ub3B0aW9ucyxpKSx0PWIuZXh0ZW5kKGkuY29uZmlnLHQpLGUub3ZlcnJpZGVSZXNwb25zaXZlT3B0aW9ucyh0KSl9O2lmKHQpe3ZhciBvPVMuZXh0ZW5kQXJyYXlQcm9wcyhuLHQsaSk7bz1iLmV4dGVuZChpLmNvbmZpZyxvKSxyKG89Yi5leHRlbmQobyx0KSl9ZWxzZSByKHt9KX19fSx7a2V5OiJvdmVycmlkZVJlc3BvbnNpdmVPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1uZXcgeih0KS5pbml0KHtyZXNwb25zaXZlT3ZlcnJpZGU6ITB9KTt0aGlzLncuY29uZmlnPWV9fV0pLHR9KCksc3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMuY29sb3JzPVtdLHRoaXMudz1lLnc7dmFyIGk9dGhpcy53O3RoaXMuaXNDb2xvckZuPSExLHRoaXMuaXNIZWF0bWFwRGlzdHJpYnV0ZWQ9InRyZWVtYXAiPT09aS5jb25maWcuY2hhcnQudHlwZSYmaS5jb25maWcucGxvdE9wdGlvbnMudHJlZW1hcC5kaXN0cmlidXRlZHx8ImhlYXRtYXAiPT09aS5jb25maWcuY2hhcnQudHlwZSYmaS5jb25maWcucGxvdE9wdGlvbnMuaGVhdG1hcC5kaXN0cmlidXRlZCx0aGlzLmlzQmFyRGlzdHJpYnV0ZWQ9aS5jb25maWcucGxvdE9wdGlvbnMuYmFyLmRpc3RyaWJ1dGVkJiYoImJhciI9PT1pLmNvbmZpZy5jaGFydC50eXBlfHwicmFuZ2VCYXIiPT09aS5jb25maWcuY2hhcnQudHlwZSl9cmV0dXJuIGModCxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNldERlZmF1bHRDb2xvcnMoKX19LHtrZXk6InNldERlZmF1bHRDb2xvcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMudyxpPW5ldyBiO2lmKGUuZ2xvYmFscy5kb20uZWxXcmFwLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtdGhlbWUtIi5jb25jYXQoZS5jb25maWcudGhlbWUubW9kZSkpLHZvaWQgMD09PWUuY29uZmlnLmNvbG9ycz9lLmdsb2JhbHMuY29sb3JzPXRoaXMucHJlZGVmaW5lZCgpOihlLmdsb2JhbHMuY29sb3JzPWUuY29uZmlnLmNvbG9ycyxBcnJheS5pc0FycmF5KGUuY29uZmlnLmNvbG9ycykmJmUuY29uZmlnLmNvbG9ycy5sZW5ndGg+MCYmImZ1bmN0aW9uIj09dHlwZW9mIGUuY29uZmlnLmNvbG9yc1swXSYmKGUuZ2xvYmFscy5jb2xvcnM9ZS5jb25maWcuc2VyaWVzLm1hcCgoZnVuY3Rpb24oaSxzKXt2YXIgYT1lLmNvbmZpZy5jb2xvcnNbc107cmV0dXJuIGF8fChhPWUuY29uZmlnLmNvbG9yc1swXSksImZ1bmN0aW9uIj09dHlwZW9mIGE/KHQuaXNDb2xvckZuPSEwLGEoe3ZhbHVlOmUuZ2xvYmFscy5heGlzQ2hhcnRzP2UuZ2xvYmFscy5zZXJpZXNbc11bMF0/ZS5nbG9iYWxzLnNlcmllc1tzXVswXTowOmUuZ2xvYmFscy5zZXJpZXNbc10sc2VyaWVzSW5kZXg6cyxkYXRhUG9pbnRJbmRleDpzLHc6ZX0pKTphfSkpKSksZS5nbG9iYWxzLnNlcmllc0NvbG9ycy5tYXAoKGZ1bmN0aW9uKHQsaSl7dCYmKGUuZ2xvYmFscy5jb2xvcnNbaV09dCl9KSksZS5jb25maWcudGhlbWUubW9ub2Nocm9tZS5lbmFibGVkKXt2YXIgcz1bXSxhPWUuZ2xvYmFscy5zZXJpZXMubGVuZ3RoOyh0aGlzLmlzQmFyRGlzdHJpYnV0ZWR8fHRoaXMuaXNIZWF0bWFwRGlzdHJpYnV0ZWQpJiYoYT1lLmdsb2JhbHMuc2VyaWVzWzBdLmxlbmd0aCplLmdsb2JhbHMuc2VyaWVzLmxlbmd0aCk7Zm9yKHZhciBuPWUuY29uZmlnLnRoZW1lLm1vbm9jaHJvbWUuY29sb3Iscj0xLyhhL2UuY29uZmlnLnRoZW1lLm1vbm9jaHJvbWUuc2hhZGVJbnRlbnNpdHkpLG89ZS5jb25maWcudGhlbWUubW9ub2Nocm9tZS5zaGFkZVRvLGw9MCxjPTA7YzxhO2MrKyl7dmFyIGg9dm9pZCAwOyJkYXJrIj09PW8/KGg9aS5zaGFkZUNvbG9yKC0xKmwsbiksbCs9cik6KGg9aS5zaGFkZUNvbG9yKGwsbiksbCs9cikscy5wdXNoKGgpfWUuZ2xvYmFscy5jb2xvcnM9cy5zbGljZSgpfXZhciBkPWUuZ2xvYmFscy5jb2xvcnMuc2xpY2UoKTt0aGlzLnB1c2hFeHRyYUNvbG9ycyhlLmdsb2JhbHMuY29sb3JzKSxbImZpbGwiLCJzdHJva2UiXS5mb3JFYWNoKChmdW5jdGlvbihpKXt2b2lkIDA9PT1lLmNvbmZpZ1tpXS5jb2xvcnM/ZS5nbG9iYWxzW2ldLmNvbG9ycz10LmlzQ29sb3JGbj9lLmNvbmZpZy5jb2xvcnM6ZDplLmdsb2JhbHNbaV0uY29sb3JzPWUuY29uZmlnW2ldLmNvbG9ycy5zbGljZSgpLHQucHVzaEV4dHJhQ29sb3JzKGUuZ2xvYmFsc1tpXS5jb2xvcnMpfSkpLHZvaWQgMD09PWUuY29uZmlnLmRhdGFMYWJlbHMuc3R5bGUuY29sb3JzP2UuZ2xvYmFscy5kYXRhTGFiZWxzLnN0eWxlLmNvbG9ycz1kOmUuZ2xvYmFscy5kYXRhTGFiZWxzLnN0eWxlLmNvbG9ycz1lLmNvbmZpZy5kYXRhTGFiZWxzLnN0eWxlLmNvbG9ycy5zbGljZSgpLHRoaXMucHVzaEV4dHJhQ29sb3JzKGUuZ2xvYmFscy5kYXRhTGFiZWxzLnN0eWxlLmNvbG9ycyw1MCksdm9pZCAwPT09ZS5jb25maWcucGxvdE9wdGlvbnMucmFkYXIucG9seWdvbnMuZmlsbC5jb2xvcnM/ZS5nbG9iYWxzLnJhZGFyUG9seWdvbnMuZmlsbC5jb2xvcnM9WyJkYXJrIj09PWUuY29uZmlnLnRoZW1lLm1vZGU/IiM0MjQyNDIiOiJub25lIl06ZS5nbG9iYWxzLnJhZGFyUG9seWdvbnMuZmlsbC5jb2xvcnM9ZS5jb25maWcucGxvdE9wdGlvbnMucmFkYXIucG9seWdvbnMuZmlsbC5jb2xvcnMuc2xpY2UoKSx0aGlzLnB1c2hFeHRyYUNvbG9ycyhlLmdsb2JhbHMucmFkYXJQb2x5Z29ucy5maWxsLmNvbG9ycywyMCksdm9pZCAwPT09ZS5jb25maWcubWFya2Vycy5jb2xvcnM/ZS5nbG9iYWxzLm1hcmtlcnMuY29sb3JzPWQ6ZS5nbG9iYWxzLm1hcmtlcnMuY29sb3JzPWUuY29uZmlnLm1hcmtlcnMuY29sb3JzLnNsaWNlKCksdGhpcy5wdXNoRXh0cmFDb2xvcnMoZS5nbG9iYWxzLm1hcmtlcnMuY29sb3JzKX19LHtrZXk6InB1c2hFeHRyYUNvbG9ycyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbCxzPXRoaXMudyxhPWV8fHMuZ2xvYmFscy5zZXJpZXMubGVuZ3RoO2lmKG51bGw9PT1pJiYoaT10aGlzLmlzQmFyRGlzdHJpYnV0ZWR8fHRoaXMuaXNIZWF0bWFwRGlzdHJpYnV0ZWR8fCJoZWF0bWFwIj09PXMuY29uZmlnLmNoYXJ0LnR5cGUmJnMuY29uZmlnLnBsb3RPcHRpb25zLmhlYXRtYXAuY29sb3JTY2FsZS5pbnZlcnNlKSxpJiZzLmdsb2JhbHMuc2VyaWVzLmxlbmd0aCYmKGE9cy5nbG9iYWxzLnNlcmllc1tzLmdsb2JhbHMubWF4VmFsc0luQXJyYXlJbmRleF0ubGVuZ3RoKnMuZ2xvYmFscy5zZXJpZXMubGVuZ3RoKSx0Lmxlbmd0aDxhKWZvcih2YXIgbj1hLXQubGVuZ3RoLHI9MDtyPG47cisrKXQucHVzaCh0W3JdKX19LHtrZXk6InVwZGF0ZVRoZW1lT3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24odCl7dC5jaGFydD10LmNoYXJ0fHx7fSx0LnRvb2x0aXA9dC50b29sdGlwfHx7fTt2YXIgZT10LnRoZW1lLm1vZGV8fCJsaWdodCIsaT10LnRoZW1lLnBhbGV0dGU/dC50aGVtZS5wYWxldHRlOiJkYXJrIj09PWU/InBhbGV0dGU0IjoicGFsZXR0ZTEiLHM9dC5jaGFydC5mb3JlQ29sb3I/dC5jaGFydC5mb3JlQ29sb3I6ImRhcmsiPT09ZT8iI2Y2ZjdmOCI6IiMzNzNkM2YiO3JldHVybiB0LnRvb2x0aXAudGhlbWU9ZSx0LmNoYXJ0LmZvcmVDb2xvcj1zLHQudGhlbWUucGFsZXR0ZT1pLHR9fSx7a2V5OiJwcmVkZWZpbmVkIix2YWx1ZTpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLncuY29uZmlnLnRoZW1lLnBhbGV0dGUpe2Nhc2UicGFsZXR0ZTEiOmRlZmF1bHQ6dGhpcy5jb2xvcnM9WyIjMDA4RkZCIiwiIzAwRTM5NiIsIiNGRUIwMTkiLCIjRkY0NTYwIiwiIzc3NUREMCJdO2JyZWFrO2Nhc2UicGFsZXR0ZTIiOnRoaXMuY29sb3JzPVsiIzNmNTFiNSIsIiMwM2E5ZjQiLCIjNGNhZjUwIiwiI2Y5Y2UxZCIsIiNGRjk4MDAiXTticmVhaztjYXNlInBhbGV0dGUzIjp0aGlzLmNvbG9ycz1bIiMzM2IyZGYiLCIjNTQ2RTdBIiwiI2Q0NTI2ZSIsIiMxM2Q4YWEiLCIjQTU5NzhCIl07YnJlYWs7Y2FzZSJwYWxldHRlNCI6dGhpcy5jb2xvcnM9WyIjNGVjZGM0IiwiI2M3ZjQ2NCIsIiM4MUQ0RkEiLCIjZmQ2YTZhIiwiIzU0NkU3QSJdO2JyZWFrO2Nhc2UicGFsZXR0ZTUiOnRoaXMuY29sb3JzPVsiIzJiOTA4ZiIsIiNmOWEzYTQiLCIjOTBlZTdlIiwiI2ZhNDQ0MyIsIiM2OWQyZTciXTticmVhaztjYXNlInBhbGV0dGU2Ijp0aGlzLmNvbG9ycz1bIiM0NDlERDEiLCIjRjg2NjI0IiwiI0VBMzU0NiIsIiM2NjJFOUIiLCIjQzVEODZEIl07YnJlYWs7Y2FzZSJwYWxldHRlNyI6dGhpcy5jb2xvcnM9WyIjRDcyNjNEIiwiIzFCOTk4QiIsIiMyRTI5NEUiLCIjRjQ2MDM2IiwiI0UyQzA0NCJdO2JyZWFrO2Nhc2UicGFsZXR0ZTgiOnRoaXMuY29sb3JzPVsiIzY2MkU5QiIsIiNGODY2MjQiLCIjRjlDODBFIiwiI0VBMzU0NiIsIiM0M0JDQ0QiXTticmVhaztjYXNlInBhbGV0dGU5Ijp0aGlzLmNvbG9ycz1bIiM1QzQ3NDIiLCIjQTU5NzhCIiwiIzhENUI0QyIsIiM1QTJBMjciLCIjQzRCQkFGIl07YnJlYWs7Y2FzZSJwYWxldHRlMTAiOnRoaXMuY29sb3JzPVsiI0EzMDBENiIsIiM3RDAyRUIiLCIjNTY1M0ZFIiwiIzI5ODNGRiIsIiMwMEIxRjIiXX1yZXR1cm4gdGhpcy5jb2xvcnN9fV0pLHR9KCksYXQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLnd9cmV0dXJuIGModCxbe2tleToiZHJhdyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRyYXdUaXRsZVN1YnRpdGxlKCJ0aXRsZSIpLHRoaXMuZHJhd1RpdGxlU3VidGl0bGUoInN1YnRpdGxlIil9fSx7a2V5OiJkcmF3VGl0bGVTdWJ0aXRsZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53LGk9InRpdGxlIj09PXQ/ZS5jb25maWcudGl0bGU6ZS5jb25maWcuc3VidGl0bGUscz1lLmdsb2JhbHMuc3ZnV2lkdGgvMixhPWkub2Zmc2V0WSxuPSJtaWRkbGUiO2lmKCJsZWZ0Ij09PWkuYWxpZ24/KHM9MTAsbj0ic3RhcnQiKToicmlnaHQiPT09aS5hbGlnbiYmKHM9ZS5nbG9iYWxzLnN2Z1dpZHRoLTEwLG49ImVuZCIpLHMrPWkub2Zmc2V0WCxhPWErcGFyc2VJbnQoaS5zdHlsZS5mb250U2l6ZSwxMCkraS5tYXJnaW4vMix2b2lkIDAhPT1pLnRleHQpe3ZhciByPW5ldyBrKHRoaXMuY3R4KS5kcmF3VGV4dCh7eDpzLHk6YSx0ZXh0OmkudGV4dCx0ZXh0QW5jaG9yOm4sZm9udFNpemU6aS5zdHlsZS5mb250U2l6ZSxmb250RmFtaWx5Omkuc3R5bGUuZm9udEZhbWlseSxmb250V2VpZ2h0Omkuc3R5bGUuZm9udFdlaWdodCxmb3JlQ29sb3I6aS5zdHlsZS5jb2xvcixvcGFjaXR5OjF9KTtyLm5vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsImFwZXhjaGFydHMtIi5jb25jYXQodCwiLXRleHQiKSksZS5nbG9iYWxzLmRvbS5QYXBlci5hZGQocil9fX1dKSx0fSgpLG50PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy53PWUudyx0aGlzLmRDdHg9ZX1yZXR1cm4gYyh0LFt7a2V5OiJnZXRUaXRsZVN1YnRpdGxlQ29vcmRzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncsaT0wLHM9MCxhPSJ0aXRsZSI9PT10P2UuY29uZmlnLnRpdGxlLmZsb2F0aW5nOmUuY29uZmlnLnN1YnRpdGxlLmZsb2F0aW5nLG49ZS5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMtIi5jb25jYXQodCwiLXRleHQiKSk7aWYobnVsbCE9PW4mJiFhKXt2YXIgcj1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2k9ci53aWR0aCxzPWUuZ2xvYmFscy5heGlzQ2hhcnRzP3IuaGVpZ2h0KzU6ci5oZWlnaHR9cmV0dXJue3dpZHRoOmksaGVpZ2h0OnN9fX0se2tleToiZ2V0TGVnZW5kc1JlY3QiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53LGU9dC5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMtbGVnZW5kIik7dC5jb25maWcubGVnZW5kLmhlaWdodHx8InRvcCIhPT10LmNvbmZpZy5sZWdlbmQucG9zaXRpb24mJiJib3R0b20iIT09dC5jb25maWcubGVnZW5kLnBvc2l0aW9ufHwoZS5zdHlsZS5tYXhIZWlnaHQ9dC5nbG9iYWxzLnN2Z0hlaWdodC8yKyJweCIpO3ZhciBpPU9iamVjdC5hc3NpZ24oe30sYi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoZSkpO3JldHVybiBudWxsIT09ZSYmIXQuY29uZmlnLmxlZ2VuZC5mbG9hdGluZyYmdC5jb25maWcubGVnZW5kLnNob3c/dGhpcy5kQ3R4LmxnUmVjdD17eDppLngseTppLnksaGVpZ2h0OmkuaGVpZ2h0LHdpZHRoOjA9PT1pLmhlaWdodD8wOmkud2lkdGh9OnRoaXMuZEN0eC5sZ1JlY3Q9e3g6MCx5OjAsaGVpZ2h0OjAsd2lkdGg6MH0sImxlZnQiIT09dC5jb25maWcubGVnZW5kLnBvc2l0aW9uJiYicmlnaHQiIT09dC5jb25maWcubGVnZW5kLnBvc2l0aW9ufHwxLjUqdGhpcy5kQ3R4LmxnUmVjdC53aWR0aD50Lmdsb2JhbHMuc3ZnV2lkdGgmJih0aGlzLmRDdHgubGdSZWN0LndpZHRoPXQuZ2xvYmFscy5zdmdXaWR0aC8xLjUpLHRoaXMuZEN0eC5sZ1JlY3R9fSx7a2V5OiJnZXRMYXJnZXN0U3RyaW5nRnJvbU11bHRpQXJyIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXQ7aWYodGhpcy53Lmdsb2JhbHMuaXNNdWx0aUxpbmVYKXt2YXIgcz1lLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90Lmxlbmd0aDoxfSkpLGE9TWF0aC5tYXguYXBwbHkoTWF0aCxtKHMpKTtpPWVbcy5pbmRleE9mKGEpXX1yZXR1cm4gaX19XSksdH0oKSxydD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMudz1lLncsdGhpcy5kQ3R4PWV9cmV0dXJuIGModCxbe2tleToiZ2V0eEF4aXNMYWJlbHNDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLncsaT1lLmdsb2JhbHMubGFiZWxzLnNsaWNlKCk7aWYoZS5jb25maWcueGF4aXMuY29udmVydGVkQ2F0VG9OdW1lcmljJiYwPT09aS5sZW5ndGgmJihpPWUuZ2xvYmFscy5jYXRlZ29yeUxhYmVscyksZS5nbG9iYWxzLnRpbWVzY2FsZUxhYmVscy5sZW5ndGg+MCl7dmFyIHM9dGhpcy5nZXR4QXhpc1RpbWVTY2FsZUxhYmVsc0Nvb3JkcygpO3Q9e3dpZHRoOnMud2lkdGgsaGVpZ2h0OnMuaGVpZ2h0fSxlLmdsb2JhbHMucm90YXRlWExhYmVscz0hMX1lbHNle3RoaXMuZEN0eC5sZ1dpZHRoRm9yU2lkZUxlZ2VuZHM9ImxlZnQiIT09ZS5jb25maWcubGVnZW5kLnBvc2l0aW9uJiYicmlnaHQiIT09ZS5jb25maWcubGVnZW5kLnBvc2l0aW9ufHxlLmNvbmZpZy5sZWdlbmQuZmxvYXRpbmc/MDp0aGlzLmRDdHgubGdSZWN0LndpZHRoO3ZhciBhPWUuZ2xvYmFscy54TGFiZWxGb3JtYXR0ZXIsbj1iLmdldExhcmdlc3RTdHJpbmdGcm9tQXJyKGkpLHI9dGhpcy5kQ3R4LmRpbUhlbHBlcnMuZ2V0TGFyZ2VzdFN0cmluZ0Zyb21NdWx0aUFycihuLGkpO2UuZ2xvYmFscy5pc0Jhckhvcml6b250YWwmJihyPW49ZS5nbG9iYWxzLnlBeGlzU2NhbGVbMF0ucmVzdWx0LnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5sZW5ndGg+ZS5sZW5ndGg/dDplfSksMCkpO3ZhciBvPW5ldyAkKHRoaXMuZEN0eC5jdHgpLGw9bjtuPW8ueExhYmVsRm9ybWF0KGEsbixsLHtpOnZvaWQgMCxkYXRlRm9ybWF0dGVyOm5ldyBPKHRoaXMuZEN0eC5jdHgpLmZvcm1hdERhdGUsdzplfSkscj1vLnhMYWJlbEZvcm1hdChhLHIsbCx7aTp2b2lkIDAsZGF0ZUZvcm1hdHRlcjpuZXcgTyh0aGlzLmRDdHguY3R4KS5mb3JtYXREYXRlLHc6ZX0pLChlLmNvbmZpZy54YXhpcy5jb252ZXJ0ZWRDYXRUb051bWVyaWMmJnZvaWQgMD09PW58fCIiPT09U3RyaW5nKG4pLnRyaW0oKSkmJihyPW49IjEiKTt2YXIgYz1uZXcgayh0aGlzLmRDdHguY3R4KSxoPWMuZ2V0VGV4dFJlY3RzKG4sZS5jb25maWcueGF4aXMubGFiZWxzLnN0eWxlLmZvbnRTaXplKSxkPWg7aWYobiE9PXImJihkPWMuZ2V0VGV4dFJlY3RzKHIsZS5jb25maWcueGF4aXMubGFiZWxzLnN0eWxlLmZvbnRTaXplKSksKHQ9e3dpZHRoOmgud2lkdGg+PWQud2lkdGg/aC53aWR0aDpkLndpZHRoLGhlaWdodDpoLmhlaWdodD49ZC5oZWlnaHQ/aC5oZWlnaHQ6ZC5oZWlnaHR9KS53aWR0aCppLmxlbmd0aD5lLmdsb2JhbHMuc3ZnV2lkdGgtdGhpcy5kQ3R4LmxnV2lkdGhGb3JTaWRlTGVnZW5kcy10aGlzLmRDdHgueUF4aXNXaWR0aC10aGlzLmRDdHguZ3JpZFBhZC5sZWZ0LXRoaXMuZEN0eC5ncmlkUGFkLnJpZ2h0JiYwIT09ZS5jb25maWcueGF4aXMubGFiZWxzLnJvdGF0ZXx8ZS5jb25maWcueGF4aXMubGFiZWxzLnJvdGF0ZUFsd2F5cyl7aWYoIWUuZ2xvYmFscy5pc0Jhckhvcml6b250YWwpe2UuZ2xvYmFscy5yb3RhdGVYTGFiZWxzPSEwO3ZhciB1PWZ1bmN0aW9uKHQpe3JldHVybiBjLmdldFRleHRSZWN0cyh0LGUuY29uZmlnLnhheGlzLmxhYmVscy5zdHlsZS5mb250U2l6ZSxlLmNvbmZpZy54YXhpcy5sYWJlbHMuc3R5bGUuZm9udEZhbWlseSwicm90YXRlKCIuY29uY2F0KGUuY29uZmlnLnhheGlzLmxhYmVscy5yb3RhdGUsIiAwIDApIiksITEpfTtoPXUobiksbiE9PXImJihkPXUocikpLHQuaGVpZ2h0PShoLmhlaWdodD5kLmhlaWdodD9oLmhlaWdodDpkLmhlaWdodCkvMS41LHQud2lkdGg9aC53aWR0aD5kLndpZHRoP2gud2lkdGg6ZC53aWR0aH19ZWxzZSBlLmdsb2JhbHMucm90YXRlWExhYmVscz0hMX1yZXR1cm4gZS5jb25maWcueGF4aXMubGFiZWxzLnNob3d8fCh0PXt3aWR0aDowLGhlaWdodDowfSkse3dpZHRoOnQud2lkdGgsaGVpZ2h0OnQuaGVpZ2h0fX19LHtrZXk6ImdldHhBeGlzR3JvdXBMYWJlbHNDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLnc7aWYoIWUuZ2xvYmFscy5oYXNHcm91cHMpcmV0dXJue3dpZHRoOjAsaGVpZ2h0OjB9O3ZhciBpLHM9KG51bGw9PT0odD1lLmNvbmZpZy54YXhpcy5ncm91cC5zdHlsZSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuZm9udFNpemUpfHxlLmNvbmZpZy54YXhpcy5sYWJlbHMuc3R5bGUuZm9udFNpemUsYT1lLmdsb2JhbHMuZ3JvdXBzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudGl0bGV9KSksbj1iLmdldExhcmdlc3RTdHJpbmdGcm9tQXJyKGEpLHI9dGhpcy5kQ3R4LmRpbUhlbHBlcnMuZ2V0TGFyZ2VzdFN0cmluZ0Zyb21NdWx0aUFycihuLGEpLG89bmV3IGsodGhpcy5kQ3R4LmN0eCksbD1vLmdldFRleHRSZWN0cyhuLHMpLGM9bDtyZXR1cm4gbiE9PXImJihjPW8uZ2V0VGV4dFJlY3RzKHIscykpLGk9e3dpZHRoOmwud2lkdGg+PWMud2lkdGg/bC53aWR0aDpjLndpZHRoLGhlaWdodDpsLmhlaWdodD49Yy5oZWlnaHQ/bC5oZWlnaHQ6Yy5oZWlnaHR9LGUuY29uZmlnLnhheGlzLmxhYmVscy5zaG93fHwoaT17d2lkdGg6MCxoZWlnaHQ6MH0pLHt3aWR0aDppLndpZHRoLGhlaWdodDppLmhlaWdodH19fSx7a2V5OiJnZXR4QXhpc1RpdGxlQ29vcmRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudyxlPTAsaT0wO2lmKHZvaWQgMCE9PXQuY29uZmlnLnhheGlzLnRpdGxlLnRleHQpe3ZhciBzPW5ldyBrKHRoaXMuZEN0eC5jdHgpLmdldFRleHRSZWN0cyh0LmNvbmZpZy54YXhpcy50aXRsZS50ZXh0LHQuY29uZmlnLnhheGlzLnRpdGxlLnN0eWxlLmZvbnRTaXplKTtlPXMud2lkdGgsaT1zLmhlaWdodH1yZXR1cm57d2lkdGg6ZSxoZWlnaHQ6aX19fSx7a2V5OiJnZXR4QXhpc1RpbWVTY2FsZUxhYmVsc0Nvb3JkcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMudzt0aGlzLmRDdHgudGltZXNjYWxlTGFiZWxzPWUuZ2xvYmFscy50aW1lc2NhbGVMYWJlbHMuc2xpY2UoKTt2YXIgaT10aGlzLmRDdHgudGltZXNjYWxlTGFiZWxzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWV9KSkscz1pLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09dD8oY29uc29sZS5lcnJvcigiWW91IGhhdmUgcG9zc2libHkgc3VwcGxpZWQgaW52YWxpZCBEYXRlIGZvcm1hdC4gUGxlYXNlIHN1cHBseSBhIHZhbGlkIEphdmFTY3JpcHQgRGF0ZSIpLDApOnQubGVuZ3RoPmUubGVuZ3RoP3Q6ZX0pLDApO3JldHVybiAxLjA1Kih0PW5ldyBrKHRoaXMuZEN0eC5jdHgpLmdldFRleHRSZWN0cyhzLGUuY29uZmlnLnhheGlzLmxhYmVscy5zdHlsZS5mb250U2l6ZSkpLndpZHRoKmkubGVuZ3RoPmUuZ2xvYmFscy5ncmlkV2lkdGgmJjAhPT1lLmNvbmZpZy54YXhpcy5sYWJlbHMucm90YXRlJiYoZS5nbG9iYWxzLm92ZXJsYXBwaW5nWExhYmVscz0hMCksdH19LHtrZXk6ImFkZGl0aW9uYWxQYWRkaW5nWExhYmVscyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXRoaXMudyxzPWkuZ2xvYmFscyxhPWkuY29uZmlnLG49YS54YXhpcy50eXBlLHI9dC53aWR0aDtzLnNraXBMYXN0VGltZWxpbmVsYWJlbD0hMSxzLnNraXBGaXJzdFRpbWVsaW5lbGFiZWw9ITE7dmFyIG89aS5jb25maWcueWF4aXNbMF0ub3Bwb3NpdGUmJmkuZ2xvYmFscy5pc0Jhckhvcml6b250YWwsbD1mdW5jdGlvbih0LG8peyhmdW5jdGlvbih0KXtyZXR1cm4tMSE9PXMuY29sbGFwc2VkU2VyaWVzSW5kaWNlcy5pbmRleE9mKHQpfSkobyl8fGZ1bmN0aW9uKHQpe2lmKGUuZEN0eC50aW1lc2NhbGVMYWJlbHMmJmUuZEN0eC50aW1lc2NhbGVMYWJlbHMubGVuZ3RoKXt2YXIgbz1lLmRDdHgudGltZXNjYWxlTGFiZWxzWzBdLGw9ZS5kQ3R4LnRpbWVzY2FsZUxhYmVsc1tlLmRDdHgudGltZXNjYWxlTGFiZWxzLmxlbmd0aC0xXS5wb3NpdGlvbityLzEuNzUtZS5kQ3R4LnlBeGlzV2lkdGhSaWdodCxjPW8ucG9zaXRpb24tci8xLjc1K2UuZEN0eC55QXhpc1dpZHRoTGVmdCxoPSJyaWdodCI9PT1pLmNvbmZpZy5sZWdlbmQucG9zaXRpb24mJmUuZEN0eC5sZ1JlY3Qud2lkdGg+MD9lLmRDdHgubGdSZWN0LndpZHRoOjA7bD5zLnN2Z1dpZHRoLXMudHJhbnNsYXRlWC1oJiYocy5za2lwTGFzdFRpbWVsaW5lbGFiZWw9ITApLGM8LSh0LnNob3cmJiF0LmZsb2F0aW5nfHwiYmFyIiE9PWEuY2hhcnQudHlwZSYmImNhbmRsZXN0aWNrIiE9PWEuY2hhcnQudHlwZSYmInJhbmdlQmFyIiE9PWEuY2hhcnQudHlwZSYmImJveFBsb3QiIT09YS5jaGFydC50eXBlPzEwOnIvMS43NSkmJihzLnNraXBGaXJzdFRpbWVsaW5lbGFiZWw9ITApfWVsc2UiZGF0ZXRpbWUiPT09bj9lLmRDdHguZ3JpZFBhZC5yaWdodDxyJiYhcy5yb3RhdGVYTGFiZWxzJiYocy5za2lwTGFzdFRpbWVsaW5lbGFiZWw9ITApOiJkYXRldGltZSIhPT1uJiZlLmRDdHguZ3JpZFBhZC5yaWdodDxyLzItZS5kQ3R4LnlBeGlzV2lkdGhSaWdodCYmIXMucm90YXRlWExhYmVscyYmIWkuY29uZmlnLnhheGlzLmxhYmVscy50cmltJiYoImJldHdlZW4iIT09aS5jb25maWcueGF4aXMudGlja1BsYWNlbWVudHx8aS5nbG9iYWxzLmlzQmFySG9yaXpvbnRhbCkmJihlLmRDdHgueFBhZFJpZ2h0PXIvMisxKX0odCl9O2EueWF4aXMuZm9yRWFjaCgoZnVuY3Rpb24odCxpKXtvPyhlLmRDdHguZ3JpZFBhZC5sZWZ0PHImJihlLmRDdHgueFBhZExlZnQ9ci8yKzEpLGUuZEN0eC54UGFkUmlnaHQ9ci8yKzEpOmwodCxpKX0pKX19XSksdH0oKSxvdD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMudz1lLncsdGhpcy5kQ3R4PWV9cmV0dXJuIGModCxbe2tleToiZ2V0eUF4aXNMYWJlbHNDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMudyxpPVtdLHM9MTAsYT1uZXcgVih0aGlzLmRDdHguY3R4KTtyZXR1cm4gZS5jb25maWcueWF4aXMubWFwKChmdW5jdGlvbihuLHIpe3ZhciBvPWUuZ2xvYmFscy55QXhpc1NjYWxlW3JdLGw9MDtpZighYS5pc1lBeGlzSGlkZGVuKHIpJiZuLmxhYmVscy5zaG93JiZ2b2lkIDAhPT1uLmxhYmVscy5taW5XaWR0aCYmKGw9bi5sYWJlbHMubWluV2lkdGgpLCFhLmlzWUF4aXNIaWRkZW4ocikmJm4ubGFiZWxzLnNob3cmJm8ucmVzdWx0Lmxlbmd0aCl7dmFyIGM9ZS5nbG9iYWxzLnlMYWJlbEZvcm1hdHRlcnNbcl0saD1vLm5pY2VNaW49PT1OdW1iZXIuTUlOX1ZBTFVFPzA6by5uaWNlTWluLGQ9U3RyaW5nKGgpLmxlbmd0aD5TdHJpbmcoby5uaWNlTWF4KS5sZW5ndGg/aDpvLm5pY2VNYXgsdT1jKGQse3Nlcmllc0luZGV4OnIsZGF0YVBvaW50SW5kZXg6LTEsdzplfSkscD11O2lmKHZvaWQgMCE9PXUmJjAhPT11Lmxlbmd0aHx8KHU9ZCksZS5nbG9iYWxzLmlzQmFySG9yaXpvbnRhbCl7cz0wO3ZhciBnPWUuZ2xvYmFscy5sYWJlbHMuc2xpY2UoKTt1PWModT1iLmdldExhcmdlc3RTdHJpbmdGcm9tQXJyKGcpLHtzZXJpZXNJbmRleDpyLGRhdGFQb2ludEluZGV4Oi0xLHc6ZX0pLHA9dC5kQ3R4LmRpbUhlbHBlcnMuZ2V0TGFyZ2VzdFN0cmluZ0Zyb21NdWx0aUFycih1LGcpfXZhciBmPW5ldyBrKHQuZEN0eC5jdHgpLG09InJvdGF0ZSgiLmNvbmNhdChuLmxhYmVscy5yb3RhdGUsIiAwIDApIiksdj1mLmdldFRleHRSZWN0cyh1LG4ubGFiZWxzLnN0eWxlLmZvbnRTaXplLG4ubGFiZWxzLnN0eWxlLmZvbnRGYW1pbHksbSwhMSkseD12O3UhPT1wJiYoeD1mLmdldFRleHRSZWN0cyhwLG4ubGFiZWxzLnN0eWxlLmZvbnRTaXplLG4ubGFiZWxzLnN0eWxlLmZvbnRGYW1pbHksbSwhMSkpLGkucHVzaCh7d2lkdGg6KGw+eC53aWR0aHx8bD52LndpZHRoP2w6eC53aWR0aD52LndpZHRoP3gud2lkdGg6di53aWR0aCkrcyxoZWlnaHQ6eC5oZWlnaHQ+di5oZWlnaHQ/eC5oZWlnaHQ6di5oZWlnaHR9KX1lbHNlIGkucHVzaCh7d2lkdGg6MCxoZWlnaHQ6MH0pfSkpLGl9fSx7a2V5OiJnZXR5QXhpc1RpdGxlQ29vcmRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLncsaT1bXTtyZXR1cm4gZS5jb25maWcueWF4aXMubWFwKChmdW5jdGlvbihlLHMpe2lmKGUuc2hvdyYmdm9pZCAwIT09ZS50aXRsZS50ZXh0KXt2YXIgYT1uZXcgayh0LmRDdHguY3R4KSxuPSJyb3RhdGUoIi5jb25jYXQoZS50aXRsZS5yb3RhdGUsIiAwIDApIikscj1hLmdldFRleHRSZWN0cyhlLnRpdGxlLnRleHQsZS50aXRsZS5zdHlsZS5mb250U2l6ZSxlLnRpdGxlLnN0eWxlLmZvbnRGYW1pbHksbiwhMSk7aS5wdXNoKHt3aWR0aDpyLndpZHRoLGhlaWdodDpyLmhlaWdodH0pfWVsc2UgaS5wdXNoKHt3aWR0aDowLGhlaWdodDowfSl9KSksaX19LHtrZXk6ImdldFRvdGFsWUF4aXNXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLncsZT0wLGk9MCxzPTAsYT10Lmdsb2JhbHMueUF4aXNTY2FsZS5sZW5ndGg+MT8xMDowLG49bmV3IFYodGhpcy5kQ3R4LmN0eCkscj1mdW5jdGlvbihyLG8pe3ZhciBsPXQuY29uZmlnLnlheGlzW29dLmZsb2F0aW5nLGM9MDtyLndpZHRoPjAmJiFsPyhjPXIud2lkdGgrYSxmdW5jdGlvbihlKXtyZXR1cm4gdC5nbG9iYWxzLmlnbm9yZVlBeGlzSW5kZXhlcy5pbmRleE9mKGUpPi0xfShvKSYmKGM9Yy1yLndpZHRoLWEpKTpjPWx8fG4uaXNZQXhpc0hpZGRlbihvKT8wOjUsdC5jb25maWcueWF4aXNbb10ub3Bwb3NpdGU/cys9YzppKz1jLGUrPWN9O3JldHVybiB0Lmdsb2JhbHMueUxhYmVsc0Nvb3Jkcy5tYXAoKGZ1bmN0aW9uKHQsZSl7cih0LGUpfSkpLHQuZ2xvYmFscy55VGl0bGVDb29yZHMubWFwKChmdW5jdGlvbih0LGUpe3IodCxlKX0pKSx0Lmdsb2JhbHMuaXNCYXJIb3Jpem9udGFsJiYhdC5jb25maWcueWF4aXNbMF0uZmxvYXRpbmcmJihlPXQuZ2xvYmFscy55TGFiZWxzQ29vcmRzWzBdLndpZHRoK3QuZ2xvYmFscy55VGl0bGVDb29yZHNbMF0ud2lkdGgrMTUpLHRoaXMuZEN0eC55QXhpc1dpZHRoTGVmdD1pLHRoaXMuZEN0eC55QXhpc1dpZHRoUmlnaHQ9cyxlfX1dKSx0fSgpLGx0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy53PWUudyx0aGlzLmRDdHg9ZX1yZXR1cm4gYyh0LFt7a2V5OiJncmlkUGFkRm9yQ29sdW1uc0luTnVtZXJpY0F4aXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudztpZihlLmdsb2JhbHMubm9EYXRhfHxlLmdsb2JhbHMuYWxsU2VyaWVzQ29sbGFwc2VkKXJldHVybiAwO3ZhciBpPWZ1bmN0aW9uKHQpe3JldHVybiJiYXIiPT09dHx8InJhbmdlQmFyIj09PXR8fCJjYW5kbGVzdGljayI9PT10fHwiYm94UGxvdCI9PT10fSxzPWUuY29uZmlnLmNoYXJ0LnR5cGUsYT0wLG49aShzKT9lLmNvbmZpZy5zZXJpZXMubGVuZ3RoOjE7aWYoZS5nbG9iYWxzLmNvbWJvQmFyQ291bnQ+MCYmKG49ZS5nbG9iYWxzLmNvbWJvQmFyQ291bnQpLGUuZ2xvYmFscy5jb2xsYXBzZWRTZXJpZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7aSh0LnR5cGUpJiYobi09MSl9KSksZS5jb25maWcuY2hhcnQuc3RhY2tlZCYmKG49MSksKGkocyl8fGUuZ2xvYmFscy5jb21ib0JhckNvdW50PjApJiZlLmdsb2JhbHMuaXNYTnVtZXJpYyYmIWUuZ2xvYmFscy5pc0Jhckhvcml6b250YWwmJm4+MCl7dmFyIHIsbyxsPU1hdGguYWJzKGUuZ2xvYmFscy5pbml0aWFsTWF4WC1lLmdsb2JhbHMuaW5pdGlhbE1pblgpO2w8PTMmJihsPWUuZ2xvYmFscy5kYXRhUG9pbnRzKSxyPWwvdCxlLmdsb2JhbHMubWluWERpZmYmJmUuZ2xvYmFscy5taW5YRGlmZi9yPjAmJihvPWUuZ2xvYmFscy5taW5YRGlmZi9yKSxvPnQvMiYmKG8vPTIpLChhPW8vbipwYXJzZUludChlLmNvbmZpZy5wbG90T3B0aW9ucy5iYXIuY29sdW1uV2lkdGgsMTApLzEwMCk8MSYmKGE9MSksYT1hLyhuPjE/MToxLjUpKzUsZS5nbG9iYWxzLmJhclBhZEZvck51bWVyaWNBeGlzPWF9cmV0dXJuIGF9fSx7a2V5OiJncmlkUGFkRm9ydGl0bGVTdWJ0aXRsZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy53LGk9ZS5nbG9iYWxzLHM9dGhpcy5kQ3R4LmlzU3BhcmtsaW5lfHwhZS5nbG9iYWxzLmF4aXNDaGFydHM/MDoxMDtbInRpdGxlIiwic3VidGl0bGUiXS5mb3JFYWNoKChmdW5jdGlvbihpKXt2b2lkIDAhPT1lLmNvbmZpZ1tpXS50ZXh0P3MrPWUuY29uZmlnW2ldLm1hcmdpbjpzKz10LmRDdHguaXNTcGFya2xpbmV8fCFlLmdsb2JhbHMuYXhpc0NoYXJ0cz8wOjV9KSksIWUuY29uZmlnLmxlZ2VuZC5zaG93fHwiYm90dG9tIiE9PWUuY29uZmlnLmxlZ2VuZC5wb3NpdGlvbnx8ZS5jb25maWcubGVnZW5kLmZsb2F0aW5nfHxlLmdsb2JhbHMuYXhpc0NoYXJ0c3x8KHMrPTEwKTt2YXIgYT10aGlzLmRDdHguZGltSGVscGVycy5nZXRUaXRsZVN1YnRpdGxlQ29vcmRzKCJ0aXRsZSIpLG49dGhpcy5kQ3R4LmRpbUhlbHBlcnMuZ2V0VGl0bGVTdWJ0aXRsZUNvb3Jkcygic3VidGl0bGUiKTtpLmdyaWRIZWlnaHQ9aS5ncmlkSGVpZ2h0LWEuaGVpZ2h0LW4uaGVpZ2h0LXMsaS50cmFuc2xhdGVZPWkudHJhbnNsYXRlWSthLmhlaWdodCtuLmhlaWdodCtzfX0se2tleToic2V0R3JpZFhQb3NGb3JEdWFsWUF4aXMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy53LHM9bmV3IFYodGhpcy5kQ3R4LmN0eCk7aS5jb25maWcueWF4aXMubWFwKChmdW5jdGlvbihhLG4pey0xIT09aS5nbG9iYWxzLmlnbm9yZVlBeGlzSW5kZXhlcy5pbmRleE9mKG4pfHxhLmZsb2F0aW5nfHxzLmlzWUF4aXNIaWRkZW4obil8fChhLm9wcG9zaXRlJiYoaS5nbG9iYWxzLnRyYW5zbGF0ZVg9aS5nbG9iYWxzLnRyYW5zbGF0ZVgtKGVbbl0ud2lkdGgrdFtuXS53aWR0aCktcGFyc2VJbnQoaS5jb25maWcueWF4aXNbbl0ubGFiZWxzLnN0eWxlLmZvbnRTaXplLDEwKS8xLjItMTIpLGkuZ2xvYmFscy50cmFuc2xhdGVYPDImJihpLmdsb2JhbHMudHJhbnNsYXRlWD0yKSl9KSl9fV0pLHR9KCksY3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLncsdGhpcy5sZ1JlY3Q9e30sdGhpcy55QXhpc1dpZHRoPTAsdGhpcy55QXhpc1dpZHRoTGVmdD0wLHRoaXMueUF4aXNXaWR0aFJpZ2h0PTAsdGhpcy54QXhpc0hlaWdodD0wLHRoaXMuaXNTcGFya2xpbmU9dGhpcy53LmNvbmZpZy5jaGFydC5zcGFya2xpbmUuZW5hYmxlZCx0aGlzLmRpbUhlbHBlcnM9bmV3IG50KHRoaXMpLHRoaXMuZGltWUF4aXM9bmV3IG90KHRoaXMpLHRoaXMuZGltWEF4aXM9bmV3IHJ0KHRoaXMpLHRoaXMuZGltR3JpZD1uZXcgbHQodGhpcyksdGhpcy5sZ1dpZHRoRm9yU2lkZUxlZ2VuZHM9MCx0aGlzLmdyaWRQYWQ9dGhpcy53LmNvbmZpZy5ncmlkLnBhZGRpbmcsdGhpcy54UGFkUmlnaHQ9MCx0aGlzLnhQYWRMZWZ0PTB9cmV0dXJuIGModCxbe2tleToicGxvdENvb3JkcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy53LGk9ZS5nbG9iYWxzO3RoaXMubGdSZWN0PXRoaXMuZGltSGVscGVycy5nZXRMZWdlbmRzUmVjdCgpLHRoaXMuaXNTcGFya2xpbmUmJihlLmNvbmZpZy5tYXJrZXJzLmRpc2NyZXRlLmxlbmd0aD4wfHxlLmNvbmZpZy5tYXJrZXJzLnNpemU+MCkmJk9iamVjdC5lbnRyaWVzKHRoaXMuZ3JpZFBhZCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIGk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdH0odCl8fGZ1bmN0aW9uKHQsZSl7dmFyIGk9bnVsbD09dD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1pKXt2YXIgcyxhLG49W10scj0hMCxvPSExO3RyeXtmb3IoaT1pLmNhbGwodCk7IShyPShzPWkubmV4dCgpKS5kb25lKSYmKG4ucHVzaChzLnZhbHVlKSwyIT09bi5sZW5ndGgpO3I9ITApO31jYXRjaCh0KXtvPSEwLGE9dH1maW5hbGx5e3RyeXtyfHxudWxsPT1pLnJldHVybnx8aS5yZXR1cm4oKX1maW5hbGx5e2lmKG8pdGhyb3cgYX19cmV0dXJuIG59fSh0KXx8dih0LDIpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGUpLHM9aVswXSxhPWlbMV07dC5ncmlkUGFkW3NdPU1hdGgubWF4KGEsdC53Lmdsb2JhbHMubWFya2Vycy5sYXJnZXN0U2l6ZS8xLjUpfSkpLGkuYXhpc0NoYXJ0cz90aGlzLnNldERpbWVuc2lvbnNGb3JBeGlzQ2hhcnRzKCk6dGhpcy5zZXREaW1lbnNpb25zRm9yTm9uQXhpc0NoYXJ0cygpLHRoaXMuZGltR3JpZC5ncmlkUGFkRm9ydGl0bGVTdWJ0aXRsZSgpLGkuZ3JpZEhlaWdodD1pLmdyaWRIZWlnaHQtdGhpcy5ncmlkUGFkLnRvcC10aGlzLmdyaWRQYWQuYm90dG9tLGkuZ3JpZFdpZHRoPWkuZ3JpZFdpZHRoLXRoaXMuZ3JpZFBhZC5sZWZ0LXRoaXMuZ3JpZFBhZC5yaWdodC10aGlzLnhQYWRSaWdodC10aGlzLnhQYWRMZWZ0O3ZhciBzPXRoaXMuZGltR3JpZC5ncmlkUGFkRm9yQ29sdW1uc0luTnVtZXJpY0F4aXMoaS5ncmlkV2lkdGgpO2kuZ3JpZFdpZHRoPWkuZ3JpZFdpZHRoLTIqcyxpLnRyYW5zbGF0ZVg9aS50cmFuc2xhdGVYK3RoaXMuZ3JpZFBhZC5sZWZ0K3RoaXMueFBhZExlZnQrKHM+MD9zKzQ6MCksaS50cmFuc2xhdGVZPWkudHJhbnNsYXRlWSt0aGlzLmdyaWRQYWQudG9wfX0se2tleToic2V0RGltZW5zaW9uc0ZvckF4aXNDaGFydHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMudyxpPWUuZ2xvYmFscyxzPXRoaXMuZGltWUF4aXMuZ2V0eUF4aXNMYWJlbHNDb29yZHMoKSxhPXRoaXMuZGltWUF4aXMuZ2V0eUF4aXNUaXRsZUNvb3JkcygpO2UuZ2xvYmFscy55TGFiZWxzQ29vcmRzPVtdLGUuZ2xvYmFscy55VGl0bGVDb29yZHM9W10sZS5jb25maWcueWF4aXMubWFwKChmdW5jdGlvbih0LGkpe2UuZ2xvYmFscy55TGFiZWxzQ29vcmRzLnB1c2goe3dpZHRoOnNbaV0ud2lkdGgsaW5kZXg6aX0pLGUuZ2xvYmFscy55VGl0bGVDb29yZHMucHVzaCh7d2lkdGg6YVtpXS53aWR0aCxpbmRleDppfSl9KSksdGhpcy55QXhpc1dpZHRoPXRoaXMuZGltWUF4aXMuZ2V0VG90YWxZQXhpc1dpZHRoKCk7dmFyIG49dGhpcy5kaW1YQXhpcy5nZXR4QXhpc0xhYmVsc0Nvb3JkcygpLHI9dGhpcy5kaW1YQXhpcy5nZXR4QXhpc0dyb3VwTGFiZWxzQ29vcmRzKCksbz10aGlzLmRpbVhBeGlzLmdldHhBeGlzVGl0bGVDb29yZHMoKTt0aGlzLmNvbmRpdGlvbmFsQ2hlY2tzRm9yQXhpc0Nvb3JkcyhuLG8sciksaS50cmFuc2xhdGVYQXhpc1k9ZS5nbG9iYWxzLnJvdGF0ZVhMYWJlbHM/dGhpcy54QXhpc0hlaWdodC84Oi00LGkudHJhbnNsYXRlWEF4aXNYPWUuZ2xvYmFscy5yb3RhdGVYTGFiZWxzJiZlLmdsb2JhbHMuaXNYTnVtZXJpYyYmZS5jb25maWcueGF4aXMubGFiZWxzLnJvdGF0ZTw9LTQ1Py10aGlzLnhBeGlzV2lkdGgvNDowLGUuZ2xvYmFscy5pc0Jhckhvcml6b250YWwmJihpLnJvdGF0ZVhMYWJlbHM9ITEsaS50cmFuc2xhdGVYQXhpc1k9cGFyc2VJbnQoZS5jb25maWcueGF4aXMubGFiZWxzLnN0eWxlLmZvbnRTaXplLDEwKS8xLjUqLTEpLGkudHJhbnNsYXRlWEF4aXNZPWkudHJhbnNsYXRlWEF4aXNZK2UuY29uZmlnLnhheGlzLmxhYmVscy5vZmZzZXRZLGkudHJhbnNsYXRlWEF4aXNYPWkudHJhbnNsYXRlWEF4aXNYK2UuY29uZmlnLnhheGlzLmxhYmVscy5vZmZzZXRYO3ZhciBsPXRoaXMueUF4aXNXaWR0aCxjPXRoaXMueEF4aXNIZWlnaHQ7aS54QXhpc0xhYmVsc0hlaWdodD10aGlzLnhBeGlzSGVpZ2h0LW8uaGVpZ2h0LGkueEF4aXNHcm91cExhYmVsc0hlaWdodD1pLnhBeGlzTGFiZWxzSGVpZ2h0LW4uaGVpZ2h0LGkueEF4aXNMYWJlbHNXaWR0aD10aGlzLnhBeGlzV2lkdGgsaS54QXhpc0hlaWdodD10aGlzLnhBeGlzSGVpZ2h0O3ZhciBoPTEwOygicmFkYXIiPT09ZS5jb25maWcuY2hhcnQudHlwZXx8dGhpcy5pc1NwYXJrbGluZSkmJihsPTAsYz1pLmdvbGRlblBhZGRpbmcpLHRoaXMuaXNTcGFya2xpbmUmJih0aGlzLmxnUmVjdD17aGVpZ2h0OjAsd2lkdGg6MH0pLCh0aGlzLmlzU3BhcmtsaW5lfHwidHJlZW1hcCI9PT1lLmNvbmZpZy5jaGFydC50eXBlKSYmKGw9MCxjPTAsaD0wKSx0aGlzLmlzU3BhcmtsaW5lfHx0aGlzLmRpbVhBeGlzLmFkZGl0aW9uYWxQYWRkaW5nWExhYmVscyhuKTt2YXIgZD1mdW5jdGlvbigpe2kudHJhbnNsYXRlWD1sLGkuZ3JpZEhlaWdodD1pLnN2Z0hlaWdodC10LmxnUmVjdC5oZWlnaHQtYy0odC5pc1NwYXJrbGluZXx8InRyZWVtYXAiPT09ZS5jb25maWcuY2hhcnQudHlwZT8wOmUuZ2xvYmFscy5yb3RhdGVYTGFiZWxzPzEwOjE1KSxpLmdyaWRXaWR0aD1pLnN2Z1dpZHRoLWx9O3N3aXRjaCgidG9wIj09PWUuY29uZmlnLnhheGlzLnBvc2l0aW9uJiYoaD1pLnhBeGlzSGVpZ2h0LWUuY29uZmlnLnhheGlzLmF4aXNUaWNrcy5oZWlnaHQtNSksZS5jb25maWcubGVnZW5kLnBvc2l0aW9uKXtjYXNlImJvdHRvbSI6aS50cmFuc2xhdGVZPWgsZCgpO2JyZWFrO2Nhc2UidG9wIjppLnRyYW5zbGF0ZVk9dGhpcy5sZ1JlY3QuaGVpZ2h0K2gsZCgpO2JyZWFrO2Nhc2UibGVmdCI6aS50cmFuc2xhdGVZPWgsaS50cmFuc2xhdGVYPXRoaXMubGdSZWN0LndpZHRoK2wsaS5ncmlkSGVpZ2h0PWkuc3ZnSGVpZ2h0LWMtMTIsaS5ncmlkV2lkdGg9aS5zdmdXaWR0aC10aGlzLmxnUmVjdC53aWR0aC1sO2JyZWFrO2Nhc2UicmlnaHQiOmkudHJhbnNsYXRlWT1oLGkudHJhbnNsYXRlWD1sLGkuZ3JpZEhlaWdodD1pLnN2Z0hlaWdodC1jLTEyLGkuZ3JpZFdpZHRoPWkuc3ZnV2lkdGgtdGhpcy5sZ1JlY3Qud2lkdGgtbC01O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJMZWdlbmQgcG9zaXRpb24gbm90IHN1cHBvcnRlZCIpfXRoaXMuZGltR3JpZC5zZXRHcmlkWFBvc0ZvckR1YWxZQXhpcyhhLHMpLG5ldyBLKHRoaXMuY3R4KS5zZXRZQXhpc1hQb3NpdGlvbihzLGEpfX0se2tleToic2V0RGltZW5zaW9uc0Zvck5vbkF4aXNDaGFydHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53LGU9dC5nbG9iYWxzLGk9dC5jb25maWcscz0wO3QuY29uZmlnLmxlZ2VuZC5zaG93JiYhdC5jb25maWcubGVnZW5kLmZsb2F0aW5nJiYocz0yMCk7dmFyIGE9InBpZSI9PT1pLmNoYXJ0LnR5cGV8fCJwb2xhckFyZWEiPT09aS5jaGFydC50eXBlfHwiZG9udXQiPT09aS5jaGFydC50eXBlPyJwaWUiOiJyYWRpYWxCYXIiLG49aS5wbG90T3B0aW9uc1thXS5vZmZzZXRZLHI9aS5wbG90T3B0aW9uc1thXS5vZmZzZXRYO2lmKCFpLmxlZ2VuZC5zaG93fHxpLmxlZ2VuZC5mbG9hdGluZylyZXR1cm4gZS5ncmlkSGVpZ2h0PWUuc3ZnSGVpZ2h0LWkuZ3JpZC5wYWRkaW5nLmxlZnQraS5ncmlkLnBhZGRpbmcucmlnaHQsZS5ncmlkV2lkdGg9ZS5ncmlkSGVpZ2h0LGUudHJhbnNsYXRlWT1uLHZvaWQoZS50cmFuc2xhdGVYPXIrKGUuc3ZnV2lkdGgtZS5ncmlkV2lkdGgpLzIpO3N3aXRjaChpLmxlZ2VuZC5wb3NpdGlvbil7Y2FzZSJib3R0b20iOmUuZ3JpZEhlaWdodD1lLnN2Z0hlaWdodC10aGlzLmxnUmVjdC5oZWlnaHQtZS5nb2xkZW5QYWRkaW5nLGUuZ3JpZFdpZHRoPWUuc3ZnV2lkdGgsZS50cmFuc2xhdGVZPW4tMTAsZS50cmFuc2xhdGVYPXIrKGUuc3ZnV2lkdGgtZS5ncmlkV2lkdGgpLzI7YnJlYWs7Y2FzZSJ0b3AiOmUuZ3JpZEhlaWdodD1lLnN2Z0hlaWdodC10aGlzLmxnUmVjdC5oZWlnaHQtZS5nb2xkZW5QYWRkaW5nLGUuZ3JpZFdpZHRoPWUuc3ZnV2lkdGgsZS50cmFuc2xhdGVZPXRoaXMubGdSZWN0LmhlaWdodCtuKzEwLGUudHJhbnNsYXRlWD1yKyhlLnN2Z1dpZHRoLWUuZ3JpZFdpZHRoKS8yO2JyZWFrO2Nhc2UibGVmdCI6ZS5ncmlkV2lkdGg9ZS5zdmdXaWR0aC10aGlzLmxnUmVjdC53aWR0aC1zLGUuZ3JpZEhlaWdodD0iYXV0byIhPT1pLmNoYXJ0LmhlaWdodD9lLnN2Z0hlaWdodDplLmdyaWRXaWR0aCxlLnRyYW5zbGF0ZVk9bixlLnRyYW5zbGF0ZVg9cit0aGlzLmxnUmVjdC53aWR0aCtzO2JyZWFrO2Nhc2UicmlnaHQiOmUuZ3JpZFdpZHRoPWUuc3ZnV2lkdGgtdGhpcy5sZ1JlY3Qud2lkdGgtcy01LGUuZ3JpZEhlaWdodD0iYXV0byIhPT1pLmNoYXJ0LmhlaWdodD9lLnN2Z0hlaWdodDplLmdyaWRXaWR0aCxlLnRyYW5zbGF0ZVk9bixlLnRyYW5zbGF0ZVg9cisxMDticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiTGVnZW5kIHBvc2l0aW9uIG5vdCBzdXBwb3J0ZWQiKX19fSx7a2V5OiJjb25kaXRpb25hbENoZWNrc0ZvckF4aXNDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzLncsYT1zLmdsb2JhbHMuaGFzR3JvdXBzPzI6MSxuPWkuaGVpZ2h0K3QuaGVpZ2h0K2UuaGVpZ2h0LHI9cy5nbG9iYWxzLmlzTXVsdGlMaW5lWD8xLjI6cy5nbG9iYWxzLkxJTkVfSEVJR0hUX1JBVElPLG89cy5nbG9iYWxzLnJvdGF0ZVhMYWJlbHM/MjI6MTAsbD1zLmdsb2JhbHMucm90YXRlWExhYmVscyYmImJvdHRvbSI9PT1zLmNvbmZpZy5sZWdlbmQucG9zaXRpb24/MTA6MDt0aGlzLnhBeGlzSGVpZ2h0PW4qcithKm8rbCx0aGlzLnhBeGlzV2lkdGg9dC53aWR0aCx0aGlzLnhBeGlzSGVpZ2h0LWUuaGVpZ2h0PnMuY29uZmlnLnhheGlzLmxhYmVscy5tYXhIZWlnaHQmJih0aGlzLnhBeGlzSGVpZ2h0PXMuY29uZmlnLnhheGlzLmxhYmVscy5tYXhIZWlnaHQpLHMuY29uZmlnLnhheGlzLmxhYmVscy5taW5IZWlnaHQmJnRoaXMueEF4aXNIZWlnaHQ8cy5jb25maWcueGF4aXMubGFiZWxzLm1pbkhlaWdodCYmKHRoaXMueEF4aXNIZWlnaHQ9cy5jb25maWcueGF4aXMubGFiZWxzLm1pbkhlaWdodCkscy5jb25maWcueGF4aXMuZmxvYXRpbmcmJih0aGlzLnhBeGlzSGVpZ2h0PTApO3ZhciBjPTAsaD0wO3MuY29uZmlnLnlheGlzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2MrPXQubGFiZWxzLm1pbldpZHRoLGgrPXQubGFiZWxzLm1heFdpZHRofSkpLHRoaXMueUF4aXNXaWR0aDxjJiYodGhpcy55QXhpc1dpZHRoPWMpLHRoaXMueUF4aXNXaWR0aD5oJiYodGhpcy55QXhpc1dpZHRoPWgpfX1dKSx0fSgpLGh0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy53PWUudyx0aGlzLmxnQ3R4PWV9cmV0dXJuIGModCxbe2tleToiZ2V0TGVnZW5kU3R5bGVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2NzcyIpO3ZhciBlPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcdFxuICAgIFx0XG4gICAgICAuYXBleGNoYXJ0cy1sZWdlbmQge1x0XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHRcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XHRcbiAgICAgICAgcGFkZGluZzogMCAxMHB4O1x0XG4gICAgICB9XHRcbiAgICAgIC5hcGV4Y2hhcnRzLWxlZ2VuZC5hcHgtbGVnZW5kLXBvc2l0aW9uLWJvdHRvbSwgLmFwZXhjaGFydHMtbGVnZW5kLmFweC1sZWdlbmQtcG9zaXRpb24tdG9wIHtcdFxuICAgICAgICBmbGV4LXdyYXA6IHdyYXBcdFxuICAgICAgfVx0XG4gICAgICAuYXBleGNoYXJ0cy1sZWdlbmQuYXB4LWxlZ2VuZC1wb3NpdGlvbi1yaWdodCwgLmFwZXhjaGFydHMtbGVnZW5kLmFweC1sZWdlbmQtcG9zaXRpb24tbGVmdCB7XHRcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcdFxuICAgICAgICBib3R0b206IDA7XHRcbiAgICAgIH1cdFxuICAgICAgLmFwZXhjaGFydHMtbGVnZW5kLmFweC1sZWdlbmQtcG9zaXRpb24tYm90dG9tLmFwZXhjaGFydHMtYWxpZ24tbGVmdCwgLmFwZXhjaGFydHMtbGVnZW5kLmFweC1sZWdlbmQtcG9zaXRpb24tdG9wLmFwZXhjaGFydHMtYWxpZ24tbGVmdCwgLmFwZXhjaGFydHMtbGVnZW5kLmFweC1sZWdlbmQtcG9zaXRpb24tcmlnaHQsIC5hcGV4Y2hhcnRzLWxlZ2VuZC5hcHgtbGVnZW5kLXBvc2l0aW9uLWxlZnQge1x0XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcdFxuICAgICAgfVx0XG4gICAgICAuYXBleGNoYXJ0cy1sZWdlbmQuYXB4LWxlZ2VuZC1wb3NpdGlvbi1ib3R0b20uYXBleGNoYXJ0cy1hbGlnbi1jZW50ZXIsIC5hcGV4Y2hhcnRzLWxlZ2VuZC5hcHgtbGVnZW5kLXBvc2l0aW9uLXRvcC5hcGV4Y2hhcnRzLWFsaWduLWNlbnRlciB7XHRcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7ICBcdFxuICAgICAgfVx0XG4gICAgICAuYXBleGNoYXJ0cy1sZWdlbmQuYXB4LWxlZ2VuZC1wb3NpdGlvbi1ib3R0b20uYXBleGNoYXJ0cy1hbGlnbi1yaWdodCwgLmFwZXhjaGFydHMtbGVnZW5kLmFweC1sZWdlbmQtcG9zaXRpb24tdG9wLmFwZXhjaGFydHMtYWxpZ24tcmlnaHQge1x0XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHRcbiAgICAgIH1cdFxuICAgICAgLmFwZXhjaGFydHMtbGVnZW5kLXNlcmllcyB7XHRcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1x0XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHRcbiAgICAgIH1cdFxuICAgICAgLmFwZXhjaGFydHMtbGVnZW5kLmFweC1sZWdlbmQtcG9zaXRpb24tYm90dG9tIC5hcGV4Y2hhcnRzLWxlZ2VuZC1zZXJpZXMsIC5hcGV4Y2hhcnRzLWxlZ2VuZC5hcHgtbGVnZW5kLXBvc2l0aW9uLXRvcCAuYXBleGNoYXJ0cy1sZWdlbmQtc2VyaWVze1x0XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHRcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcdFxuICAgICAgfVx0XG4gICAgICAuYXBleGNoYXJ0cy1sZWdlbmQtdGV4dCB7XHRcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1x0XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcdFxuICAgICAgfVx0XG4gICAgICAuYXBleGNoYXJ0cy1sZWdlbmQtdGV4dCAqLCAuYXBleGNoYXJ0cy1sZWdlbmQtbWFya2VyICoge1x0XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1x0XG4gICAgICB9XHRcbiAgICAgIC5hcGV4Y2hhcnRzLWxlZ2VuZC1tYXJrZXIge1x0XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcdFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHRcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1x0XG4gICAgICAgIG1hcmdpbi1yaWdodDogM3B4O1x0XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICB9XHRcbiAgICAgIFx0XG4gICAgICAuYXBleGNoYXJ0cy1sZWdlbmQuYXBleGNoYXJ0cy1hbGlnbi1yaWdodCAuYXBleGNoYXJ0cy1sZWdlbmQtc2VyaWVzLCAuYXBleGNoYXJ0cy1sZWdlbmQuYXBleGNoYXJ0cy1hbGlnbi1sZWZ0IC5hcGV4Y2hhcnRzLWxlZ2VuZC1zZXJpZXN7XHRcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1x0XG4gICAgICB9XHRcbiAgICAgIC5hcGV4Y2hhcnRzLWxlZ2VuZC1zZXJpZXMuYXBleGNoYXJ0cy1uby1jbGljayB7XHRcbiAgICAgICAgY3Vyc29yOiBhdXRvO1x0XG4gICAgICB9XHRcbiAgICAgIC5hcGV4Y2hhcnRzLWxlZ2VuZCAuYXBleGNoYXJ0cy1oaWRkZW4temVyby1zZXJpZXMsIC5hcGV4Y2hhcnRzLWxlZ2VuZCAuYXBleGNoYXJ0cy1oaWRkZW4tbnVsbC1zZXJpZXMge1x0XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcdFxuICAgICAgfVx0XG4gICAgICAuYXBleGNoYXJ0cy1pbmFjdGl2ZS1sZWdlbmQge1x0XG4gICAgICAgIG9wYWNpdHk6IDAuNDU7XHRcbiAgICAgIH0iKTtyZXR1cm4gdC5hcHBlbmRDaGlsZChlKSx0fX0se2tleToiZ2V0TGVnZW5kQkJveCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLncuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLWxlZ2VuZCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGU9dC53aWR0aDtyZXR1cm57Y2x3aDp0LmhlaWdodCxjbHd3OmV9fX0se2tleToiYXBwZW5kVG9Gb3JlaWduT2JqZWN0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudy5nbG9iYWxzO3QuZG9tLmVsTGVnZW5kRm9yZWlnbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlModC5TVkdOUywiZm9yZWlnbk9iamVjdCIpO3ZhciBlPXQuZG9tLmVsTGVnZW5kRm9yZWlnbjtlLnNldEF0dHJpYnV0ZSgieCIsMCksZS5zZXRBdHRyaWJ1dGUoInkiLDApLGUuc2V0QXR0cmlidXRlKCJ3aWR0aCIsdC5zdmdXaWR0aCksZS5zZXRBdHRyaWJ1dGUoImhlaWdodCIsdC5zdmdIZWlnaHQpLHQuZG9tLmVsTGVnZW5kV3JhcC5zZXRBdHRyaWJ1dGUoInhtbG5zIiwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIpLGUuYXBwZW5kQ2hpbGQodC5kb20uZWxMZWdlbmRXcmFwKSxlLmFwcGVuZENoaWxkKHRoaXMuZ2V0TGVnZW5kU3R5bGVzKCkpLHQuZG9tLlBhcGVyLm5vZGUuaW5zZXJ0QmVmb3JlKGUsdC5kb20uZWxHcmFwaGljYWwubm9kZSl9fSx7a2V5OiJ0b2dnbGVEYXRhU2VyaWVzIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMscz10aGlzLnc7aWYocy5nbG9iYWxzLmF4aXNDaGFydHN8fCJyYWRpYWxCYXIiPT09cy5jb25maWcuY2hhcnQudHlwZSl7cy5nbG9iYWxzLnJlc2l6ZWQ9ITA7dmFyIGE9bnVsbCxuPW51bGw7cy5nbG9iYWxzLnJpc2luZ1Nlcmllcz1bXSxzLmdsb2JhbHMuYXhpc0NoYXJ0cz8oYT1zLmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy1zZXJpZXNbZGF0YVxcOnJlYWxJbmRleD0nIi5jb25jYXQodCwiJ10iKSksbj1wYXJzZUludChhLmdldEF0dHJpYnV0ZSgiZGF0YTpyZWFsSW5kZXgiKSwxMCkpOihhPXMuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLXNlcmllc1tyZWw9JyIuY29uY2F0KHQrMSwiJ10iKSksbj1wYXJzZUludChhLmdldEF0dHJpYnV0ZSgicmVsIiksMTApLTEpLGU/W3tjczpzLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzLGNzaTpzLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzSW5kaWNlc30se2NzOnMuZ2xvYmFscy5hbmNpbGxhcnlDb2xsYXBzZWRTZXJpZXMsY3NpOnMuZ2xvYmFscy5hbmNpbGxhcnlDb2xsYXBzZWRTZXJpZXNJbmRpY2VzfV0uZm9yRWFjaCgoZnVuY3Rpb24odCl7aS5yaXNlQ29sbGFwc2VkU2VyaWVzKHQuY3MsdC5jc2ksbil9KSk6dGhpcy5oaWRlU2VyaWVzKHtzZXJpZXNFbDphLHJlYWxJbmRleDpufSl9ZWxzZXt2YXIgcj1zLmdsb2JhbHMuZG9tLlBhcGVyLnNlbGVjdCgiIC5hcGV4Y2hhcnRzLXNlcmllc1tyZWw9JyIuY29uY2F0KHQrMSwiJ10gcGF0aCIpKSxvPXMuY29uZmlnLmNoYXJ0LnR5cGU7aWYoInBpZSI9PT1vfHwicG9sYXJBcmVhIj09PW98fCJkb251dCI9PT1vKXt2YXIgbD1zLmNvbmZpZy5wbG90T3B0aW9ucy5waWUuZG9udXQubGFiZWxzO25ldyBrKHRoaXMubGdDdHguY3R4KS5wYXRoTW91c2VEb3duKHIubWVtYmVyc1swXSxudWxsKSx0aGlzLmxnQ3R4LmN0eC5waWUucHJpbnREYXRhTGFiZWxzSW5uZXIoci5tZW1iZXJzWzBdLm5vZGUsbCl9ci5maXJlKCJjbGljayIpfX19LHtrZXk6ImhpZGVTZXJpZXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuc2VyaWVzRWwsaT10LnJlYWxJbmRleCxzPXRoaXMudyxhPWIuY2xvbmUocy5jb25maWcuc2VyaWVzKTtpZihzLmdsb2JhbHMuYXhpc0NoYXJ0cyl7dmFyIG49ITE7aWYocy5jb25maWcueWF4aXNbaV0mJnMuY29uZmlnLnlheGlzW2ldLnNob3cmJnMuY29uZmlnLnlheGlzW2ldLnNob3dBbHdheXMmJihuPSEwLHMuZ2xvYmFscy5hbmNpbGxhcnlDb2xsYXBzZWRTZXJpZXNJbmRpY2VzLmluZGV4T2YoaSk8MCYmKHMuZ2xvYmFscy5hbmNpbGxhcnlDb2xsYXBzZWRTZXJpZXMucHVzaCh7aW5kZXg6aSxkYXRhOmFbaV0uZGF0YS5zbGljZSgpLHR5cGU6ZS5wYXJlbnROb2RlLmNsYXNzTmFtZS5iYXNlVmFsLnNwbGl0KCItIilbMV19KSxzLmdsb2JhbHMuYW5jaWxsYXJ5Q29sbGFwc2VkU2VyaWVzSW5kaWNlcy5wdXNoKGkpKSksIW4pe3MuZ2xvYmFscy5jb2xsYXBzZWRTZXJpZXMucHVzaCh7aW5kZXg6aSxkYXRhOmFbaV0uZGF0YS5zbGljZSgpLHR5cGU6ZS5wYXJlbnROb2RlLmNsYXNzTmFtZS5iYXNlVmFsLnNwbGl0KCItIilbMV19KSxzLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzSW5kaWNlcy5wdXNoKGkpO3ZhciByPXMuZ2xvYmFscy5yaXNpbmdTZXJpZXMuaW5kZXhPZihpKTtzLmdsb2JhbHMucmlzaW5nU2VyaWVzLnNwbGljZShyLDEpfX1lbHNlIHMuZ2xvYmFscy5jb2xsYXBzZWRTZXJpZXMucHVzaCh7aW5kZXg6aSxkYXRhOmFbaV19KSxzLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzSW5kaWNlcy5wdXNoKGkpO2Zvcih2YXIgbz1lLmNoaWxkTm9kZXMsbD0wO2w8by5sZW5ndGg7bCsrKW9bbF0uY2xhc3NMaXN0LmNvbnRhaW5zKCJhcGV4Y2hhcnRzLXNlcmllcy1tYXJrZXJzLXdyYXAiKSYmKG9bbF0uY2xhc3NMaXN0LmNvbnRhaW5zKCJhcGV4Y2hhcnRzLWhpZGUiKT9vW2xdLmNsYXNzTGlzdC5yZW1vdmUoImFwZXhjaGFydHMtaGlkZSIpOm9bbF0uY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy1oaWRlIikpO3MuZ2xvYmFscy5hbGxTZXJpZXNDb2xsYXBzZWQ9cy5nbG9iYWxzLmNvbGxhcHNlZFNlcmllcy5sZW5ndGg9PT1zLmNvbmZpZy5zZXJpZXMubGVuZ3RoLGE9dGhpcy5fZ2V0U2VyaWVzQmFzZWRPbkNvbGxhcHNlZFN0YXRlKGEpLHRoaXMubGdDdHguY3R4LnVwZGF0ZUhlbHBlcnMuX3VwZGF0ZVNlcmllcyhhLHMuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuZHluYW1pY0FuaW1hdGlvbi5lbmFibGVkKX19LHtrZXk6InJpc2VDb2xsYXBzZWRTZXJpZXMiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzLncsYT1iLmNsb25lKHMuY29uZmlnLnNlcmllcyk7aWYodC5sZW5ndGg+MCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdFtuXS5pbmRleD09PWkmJihzLmdsb2JhbHMuYXhpc0NoYXJ0cz8oYVtpXS5kYXRhPXRbbl0uZGF0YS5zbGljZSgpLHQuc3BsaWNlKG4sMSksZS5zcGxpY2UobiwxKSxzLmdsb2JhbHMucmlzaW5nU2VyaWVzLnB1c2goaSkpOihhW2ldPXRbbl0uZGF0YSx0LnNwbGljZShuLDEpLGUuc3BsaWNlKG4sMSkscy5nbG9iYWxzLnJpc2luZ1Nlcmllcy5wdXNoKGkpKSk7YT10aGlzLl9nZXRTZXJpZXNCYXNlZE9uQ29sbGFwc2VkU3RhdGUoYSksdGhpcy5sZ0N0eC5jdHgudXBkYXRlSGVscGVycy5fdXBkYXRlU2VyaWVzKGEscy5jb25maWcuY2hhcnQuYW5pbWF0aW9ucy5keW5hbWljQW5pbWF0aW9uLmVuYWJsZWQpfX19LHtrZXk6Il9nZXRTZXJpZXNCYXNlZE9uQ29sbGFwc2VkU3RhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudztyZXR1cm4gZS5nbG9iYWxzLmF4aXNDaGFydHM/dC5mb3JFYWNoKChmdW5jdGlvbihpLHMpe2UuZ2xvYmFscy5jb2xsYXBzZWRTZXJpZXNJbmRpY2VzLmluZGV4T2Yocyk+LTEmJih0W3NdLmRhdGE9W10pfSkpOnQuZm9yRWFjaCgoZnVuY3Rpb24oaSxzKXtlLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzSW5kaWNlcy5pbmRleE9mKHMpPi0xJiYodFtzXT0wKX0pKSx0fX1dKSx0fSgpLGR0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLGkpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLncsdGhpcy5vbkxlZ2VuZENsaWNrPXRoaXMub25MZWdlbmRDbGljay5iaW5kKHRoaXMpLHRoaXMub25MZWdlbmRIb3ZlcmVkPXRoaXMub25MZWdlbmRIb3ZlcmVkLmJpbmQodGhpcyksdGhpcy5pc0JhcnNEaXN0cmlidXRlZD0iYmFyIj09PXRoaXMudy5jb25maWcuY2hhcnQudHlwZSYmdGhpcy53LmNvbmZpZy5wbG90T3B0aW9ucy5iYXIuZGlzdHJpYnV0ZWQmJjE9PT10aGlzLncuY29uZmlnLnNlcmllcy5sZW5ndGgsdGhpcy5sZWdlbmRIZWxwZXJzPW5ldyBodCh0aGlzKX1yZXR1cm4gYyh0LFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudyxlPXQuZ2xvYmFscyxpPXQuY29uZmlnO2lmKChpLmxlZ2VuZC5zaG93Rm9yU2luZ2xlU2VyaWVzJiYxPT09ZS5zZXJpZXMubGVuZ3RofHx0aGlzLmlzQmFyc0Rpc3RyaWJ1dGVkfHxlLnNlcmllcy5sZW5ndGg+MXx8IWUuYXhpc0NoYXJ0cykmJmkubGVnZW5kLnNob3cpe2Zvcig7ZS5kb20uZWxMZWdlbmRXcmFwLmZpcnN0Q2hpbGQ7KWUuZG9tLmVsTGVnZW5kV3JhcC5yZW1vdmVDaGlsZChlLmRvbS5lbExlZ2VuZFdyYXAuZmlyc3RDaGlsZCk7dGhpcy5kcmF3TGVnZW5kcygpLGIuaXNJRTExKCk/ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZCh0aGlzLmxlZ2VuZEhlbHBlcnMuZ2V0TGVnZW5kU3R5bGVzKCkpOnRoaXMubGVnZW5kSGVscGVycy5hcHBlbmRUb0ZvcmVpZ25PYmplY3QoKSwiYm90dG9tIj09PWkubGVnZW5kLnBvc2l0aW9ufHwidG9wIj09PWkubGVnZW5kLnBvc2l0aW9uP3RoaXMubGVnZW5kQWxpZ25Ib3Jpem9udGFsKCk6InJpZ2h0IiE9PWkubGVnZW5kLnBvc2l0aW9uJiYibGVmdCIhPT1pLmxlZ2VuZC5wb3NpdGlvbnx8dGhpcy5sZWdlbmRBbGlnblZlcnRpY2FsKCl9fX0se2tleToiZHJhd0xlZ2VuZHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMudyxpPWUuY29uZmlnLmxlZ2VuZC5mb250RmFtaWx5LHM9ZS5nbG9iYWxzLnNlcmllc05hbWVzLGE9ZS5nbG9iYWxzLmNvbG9ycy5zbGljZSgpO2lmKCJoZWF0bWFwIj09PWUuY29uZmlnLmNoYXJ0LnR5cGUpe3ZhciBuPWUuY29uZmlnLnBsb3RPcHRpb25zLmhlYXRtYXAuY29sb3JTY2FsZS5yYW5nZXM7cz1uLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZT90Lm5hbWU6dC5mcm9tKyIgLSAiK3QudG99KSksYT1uLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sb3J9KSl9ZWxzZSB0aGlzLmlzQmFyc0Rpc3RyaWJ1dGVkJiYocz1lLmdsb2JhbHMubGFiZWxzLnNsaWNlKCkpO2UuY29uZmlnLmxlZ2VuZC5jdXN0b21MZWdlbmRJdGVtcy5sZW5ndGgmJihzPWUuY29uZmlnLmxlZ2VuZC5jdXN0b21MZWdlbmRJdGVtcyk7Zm9yKHZhciByPWUuZ2xvYmFscy5sZWdlbmRGb3JtYXR0ZXIsbz1lLmNvbmZpZy5sZWdlbmQuaW52ZXJzZU9yZGVyLGw9bz9zLmxlbmd0aC0xOjA7bz9sPj0wOmw8PXMubGVuZ3RoLTE7bz9sLS06bCsrKXt2YXIgYz1yKHNbbF0se3Nlcmllc0luZGV4OmwsdzplfSksaD0hMSxkPSExO2lmKGUuZ2xvYmFscy5jb2xsYXBzZWRTZXJpZXMubGVuZ3RoPjApZm9yKHZhciB1PTA7dTxlLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzLmxlbmd0aDt1KyspZS5nbG9iYWxzLmNvbGxhcHNlZFNlcmllc1t1XS5pbmRleD09PWwmJihoPSEwKTtpZihlLmdsb2JhbHMuYW5jaWxsYXJ5Q29sbGFwc2VkU2VyaWVzSW5kaWNlcy5sZW5ndGg+MClmb3IodmFyIHA9MDtwPGUuZ2xvYmFscy5hbmNpbGxhcnlDb2xsYXBzZWRTZXJpZXNJbmRpY2VzLmxlbmd0aDtwKyspZS5nbG9iYWxzLmFuY2lsbGFyeUNvbGxhcHNlZFNlcmllc0luZGljZXNbcF09PT1sJiYoZD0hMCk7dmFyIGc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2cuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy1sZWdlbmQtbWFya2VyIik7dmFyIGY9ZS5jb25maWcubGVnZW5kLm1hcmtlcnMub2Zmc2V0WCxtPWUuY29uZmlnLmxlZ2VuZC5tYXJrZXJzLm9mZnNldFksdj1lLmNvbmZpZy5sZWdlbmQubWFya2Vycy5oZWlnaHQseD1lLmNvbmZpZy5sZWdlbmQubWFya2Vycy53aWR0aCx5PWUuY29uZmlnLmxlZ2VuZC5tYXJrZXJzLnN0cm9rZVdpZHRoLHc9ZS5jb25maWcubGVnZW5kLm1hcmtlcnMuc3Ryb2tlQ29sb3IsQz1lLmNvbmZpZy5sZWdlbmQubWFya2Vycy5yYWRpdXMsQT1nLnN0eWxlO0EuYmFja2dyb3VuZD1hW2xdLEEuY29sb3I9YVtsXSxBLnNldFByb3BlcnR5KCJiYWNrZ3JvdW5kIixhW2xdLCJpbXBvcnRhbnQiKSxlLmNvbmZpZy5sZWdlbmQubWFya2Vycy5maWxsQ29sb3JzJiZlLmNvbmZpZy5sZWdlbmQubWFya2Vycy5maWxsQ29sb3JzW2xdJiYoQS5iYWNrZ3JvdW5kPWUuY29uZmlnLmxlZ2VuZC5tYXJrZXJzLmZpbGxDb2xvcnNbbF0pLHZvaWQgMCE9PWUuZ2xvYmFscy5zZXJpZXNDb2xvcnNbbF0mJihBLmJhY2tncm91bmQ9ZS5nbG9iYWxzLnNlcmllc0NvbG9yc1tsXSxBLmNvbG9yPWUuZ2xvYmFscy5zZXJpZXNDb2xvcnNbbF0pLEEuaGVpZ2h0PUFycmF5LmlzQXJyYXkodik/cGFyc2VGbG9hdCh2W2xdKSsicHgiOnBhcnNlRmxvYXQodikrInB4IixBLndpZHRoPUFycmF5LmlzQXJyYXkoeCk/cGFyc2VGbG9hdCh4W2xdKSsicHgiOnBhcnNlRmxvYXQoeCkrInB4IixBLmxlZnQ9KEFycmF5LmlzQXJyYXkoZik/cGFyc2VGbG9hdChmW2xdKTpwYXJzZUZsb2F0KGYpKSsicHgiLEEudG9wPShBcnJheS5pc0FycmF5KG0pP3BhcnNlRmxvYXQobVtsXSk6cGFyc2VGbG9hdChtKSkrInB4IixBLmJvcmRlcldpZHRoPUFycmF5LmlzQXJyYXkoeSk/eVtsXTp5LEEuYm9yZGVyQ29sb3I9QXJyYXkuaXNBcnJheSh3KT93W2xdOncsQS5ib3JkZXJSYWRpdXM9QXJyYXkuaXNBcnJheShDKT9wYXJzZUZsb2F0KENbbF0pKyJweCI6cGFyc2VGbG9hdChDKSsicHgiLGUuY29uZmlnLmxlZ2VuZC5tYXJrZXJzLmN1c3RvbUhUTUwmJihBcnJheS5pc0FycmF5KGUuY29uZmlnLmxlZ2VuZC5tYXJrZXJzLmN1c3RvbUhUTUwpP2UuY29uZmlnLmxlZ2VuZC5tYXJrZXJzLmN1c3RvbUhUTUxbbF0mJihnLmlubmVySFRNTD1lLmNvbmZpZy5sZWdlbmQubWFya2Vycy5jdXN0b21IVE1MW2xdKCkpOmcuaW5uZXJIVE1MPWUuY29uZmlnLmxlZ2VuZC5tYXJrZXJzLmN1c3RvbUhUTUwoKSksay5zZXRBdHRycyhnLHtyZWw6bCsxLCJkYXRhOmNvbGxhcHNlZCI6aHx8ZH0pLChofHxkKSYmZy5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLWluYWN0aXZlLWxlZ2VuZCIpO3ZhciBFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO1QuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy1sZWdlbmQtdGV4dCIpLFQuaW5uZXJIVE1MPUFycmF5LmlzQXJyYXkoYyk/Yy5qb2luKCIgIik6Yzt2YXIgTD1lLmNvbmZpZy5sZWdlbmQubGFiZWxzLnVzZVNlcmllc0NvbG9ycz9lLmdsb2JhbHMuY29sb3JzW2xdOmUuY29uZmlnLmxlZ2VuZC5sYWJlbHMuY29sb3JzO0x8fChMPWUuY29uZmlnLmNoYXJ0LmZvcmVDb2xvciksVC5zdHlsZS5jb2xvcj1MLFQuc3R5bGUuZm9udFNpemU9cGFyc2VGbG9hdChlLmNvbmZpZy5sZWdlbmQuZm9udFNpemUpKyJweCIsVC5zdHlsZS5mb250V2VpZ2h0PWUuY29uZmlnLmxlZ2VuZC5mb250V2VpZ2h0LFQuc3R5bGUuZm9udEZhbWlseT1pfHxlLmNvbmZpZy5jaGFydC5mb250RmFtaWx5LGsuc2V0QXR0cnMoVCx7cmVsOmwrMSxpOmwsImRhdGE6ZGVmYXVsdC10ZXh0IjplbmNvZGVVUklDb21wb25lbnQoYyksImRhdGE6Y29sbGFwc2VkIjpofHxkfSksRS5hcHBlbmRDaGlsZChnKSxFLmFwcGVuZENoaWxkKFQpO3ZhciBQPW5ldyBTKHRoaXMuY3R4KTtlLmNvbmZpZy5sZWdlbmQuc2hvd0Zvclplcm9TZXJpZXN8fDA9PT1QLmdldFNlcmllc1RvdGFsQnlJbmRleChsKSYmUC5zZXJpZXNIYXZlU2FtZVZhbHVlcyhsKSYmIVAuaXNTZXJpZXNOdWxsKGwpJiYtMT09PWUuZ2xvYmFscy5jb2xsYXBzZWRTZXJpZXNJbmRpY2VzLmluZGV4T2YobCkmJi0xPT09ZS5nbG9iYWxzLmFuY2lsbGFyeUNvbGxhcHNlZFNlcmllc0luZGljZXMuaW5kZXhPZihsKSYmRS5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLWhpZGRlbi16ZXJvLXNlcmllcyIpLGUuY29uZmlnLmxlZ2VuZC5zaG93Rm9yTnVsbFNlcmllc3x8UC5pc1Nlcmllc051bGwobCkmJi0xPT09ZS5nbG9iYWxzLmNvbGxhcHNlZFNlcmllc0luZGljZXMuaW5kZXhPZihsKSYmLTE9PT1lLmdsb2JhbHMuYW5jaWxsYXJ5Q29sbGFwc2VkU2VyaWVzSW5kaWNlcy5pbmRleE9mKGwpJiZFLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtaGlkZGVuLW51bGwtc2VyaWVzIiksZS5nbG9iYWxzLmRvbS5lbExlZ2VuZFdyYXAuYXBwZW5kQ2hpbGQoRSksZS5nbG9iYWxzLmRvbS5lbExlZ2VuZFdyYXAuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy1hbGlnbi0iLmNvbmNhdChlLmNvbmZpZy5sZWdlbmQuaG9yaXpvbnRhbEFsaWduKSksZS5nbG9iYWxzLmRvbS5lbExlZ2VuZFdyYXAuY2xhc3NMaXN0LmFkZCgiYXB4LWxlZ2VuZC1wb3NpdGlvbi0iK2UuY29uZmlnLmxlZ2VuZC5wb3NpdGlvbiksRS5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLWxlZ2VuZC1zZXJpZXMiKSxFLnN0eWxlLm1hcmdpbj0iIi5jb25jYXQoZS5jb25maWcubGVnZW5kLml0ZW1NYXJnaW4udmVydGljYWwsInB4ICIpLmNvbmNhdChlLmNvbmZpZy5sZWdlbmQuaXRlbU1hcmdpbi5ob3Jpem9udGFsLCJweCIpLGUuZ2xvYmFscy5kb20uZWxMZWdlbmRXcmFwLnN0eWxlLndpZHRoPWUuY29uZmlnLmxlZ2VuZC53aWR0aD9lLmNvbmZpZy5sZWdlbmQud2lkdGgrInB4IjoiIixlLmdsb2JhbHMuZG9tLmVsTGVnZW5kV3JhcC5zdHlsZS5oZWlnaHQ9ZS5jb25maWcubGVnZW5kLmhlaWdodD9lLmNvbmZpZy5sZWdlbmQuaGVpZ2h0KyJweCI6IiIsay5zZXRBdHRycyhFLHtyZWw6bCsxLHNlcmllc05hbWU6Yi5lc2NhcGVTdHJpbmcoc1tsXSksImRhdGE6Y29sbGFwc2VkIjpofHxkfSksKGh8fGQpJiZFLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtaW5hY3RpdmUtbGVnZW5kIiksZS5jb25maWcubGVnZW5kLm9uSXRlbUNsaWNrLnRvZ2dsZURhdGFTZXJpZXN8fEUuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy1uby1jbGljayIpfWUuZ2xvYmFscy5kb20uZWxXcmFwLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0Lm9uTGVnZW5kQ2xpY2ssITApLGUuY29uZmlnLmxlZ2VuZC5vbkl0ZW1Ib3Zlci5oaWdobGlnaHREYXRhU2VyaWVzJiYwPT09ZS5jb25maWcubGVnZW5kLmN1c3RvbUxlZ2VuZEl0ZW1zLmxlbmd0aCYmKGUuZ2xvYmFscy5kb20uZWxXcmFwLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdC5vbkxlZ2VuZEhvdmVyZWQsITApLGUuZ2xvYmFscy5kb20uZWxXcmFwLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0Iix0Lm9uTGVnZW5kSG92ZXJlZCwhMCkpfX0se2tleToic2V0TGVnZW5kV3JhcFhZIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudyxzPWkuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLWxlZ2VuZCIpLGE9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPTAscj0wO2lmKCJib3R0b20iPT09aS5jb25maWcubGVnZW5kLnBvc2l0aW9uKXIrPWkuZ2xvYmFscy5zdmdIZWlnaHQtYS5oZWlnaHQvMjtlbHNlIGlmKCJ0b3AiPT09aS5jb25maWcubGVnZW5kLnBvc2l0aW9uKXt2YXIgbz1uZXcgY3QodGhpcy5jdHgpLGw9by5kaW1IZWxwZXJzLmdldFRpdGxlU3VidGl0bGVDb29yZHMoInRpdGxlIikuaGVpZ2h0LGM9by5kaW1IZWxwZXJzLmdldFRpdGxlU3VidGl0bGVDb29yZHMoInN1YnRpdGxlIikuaGVpZ2h0O3I9cisobD4wP2wtMTA6MCkrKGM+MD9jLTEwOjApfXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixuPW4rdCtpLmNvbmZpZy5sZWdlbmQub2Zmc2V0WCxyPXIrZStpLmNvbmZpZy5sZWdlbmQub2Zmc2V0WSxzLnN0eWxlLmxlZnQ9bisicHgiLHMuc3R5bGUudG9wPXIrInB4IiwiYm90dG9tIj09PWkuY29uZmlnLmxlZ2VuZC5wb3NpdGlvbj8ocy5zdHlsZS50b3A9ImF1dG8iLHMuc3R5bGUuYm90dG9tPTUtaS5jb25maWcubGVnZW5kLm9mZnNldFkrInB4Iik6InJpZ2h0Ij09PWkuY29uZmlnLmxlZ2VuZC5wb3NpdGlvbiYmKHMuc3R5bGUubGVmdD0iYXV0byIscy5zdHlsZS5yaWdodD0yNStpLmNvbmZpZy5sZWdlbmQub2Zmc2V0WCsicHgiKSxbIndpZHRoIiwiaGVpZ2h0Il0uZm9yRWFjaCgoZnVuY3Rpb24odCl7cy5zdHlsZVt0XSYmKHMuc3R5bGVbdF09cGFyc2VJbnQoaS5jb25maWcubGVnZW5kW3RdLDEwKSsicHgiKX0pKX19LHtrZXk6ImxlZ2VuZEFsaWduSG9yaXpvbnRhbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnc7dC5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMtbGVnZW5kIikuc3R5bGUucmlnaHQ9MDt2YXIgZT10aGlzLmxlZ2VuZEhlbHBlcnMuZ2V0TGVnZW5kQkJveCgpLGk9bmV3IGN0KHRoaXMuY3R4KSxzPWkuZGltSGVscGVycy5nZXRUaXRsZVN1YnRpdGxlQ29vcmRzKCJ0aXRsZSIpLGE9aS5kaW1IZWxwZXJzLmdldFRpdGxlU3VidGl0bGVDb29yZHMoInN1YnRpdGxlIiksbj0wOyJib3R0b20iPT09dC5jb25maWcubGVnZW5kLnBvc2l0aW9uP249LWUuY2x3aC8xLjg6InRvcCI9PT10LmNvbmZpZy5sZWdlbmQucG9zaXRpb24mJihuPXMuaGVpZ2h0K2EuaGVpZ2h0K3QuY29uZmlnLnRpdGxlLm1hcmdpbit0LmNvbmZpZy5zdWJ0aXRsZS5tYXJnaW4tMTApLHRoaXMuc2V0TGVnZW5kV3JhcFhZKDIwLG4pfX0se2tleToibGVnZW5kQWxpZ25WZXJ0aWNhbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLncsZT10aGlzLmxlZ2VuZEhlbHBlcnMuZ2V0TGVnZW5kQkJveCgpLGk9MDsibGVmdCI9PT10LmNvbmZpZy5sZWdlbmQucG9zaXRpb24mJihpPTIwKSwicmlnaHQiPT09dC5jb25maWcubGVnZW5kLnBvc2l0aW9uJiYoaT10Lmdsb2JhbHMuc3ZnV2lkdGgtZS5jbHd3LTEwKSx0aGlzLnNldExlZ2VuZFdyYXBYWShpLDIwKX19LHtrZXk6Im9uTGVnZW5kSG92ZXJlZCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53LGk9dC50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhcGV4Y2hhcnRzLWxlZ2VuZC10ZXh0Iil8fHQudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygiYXBleGNoYXJ0cy1sZWdlbmQtbWFya2VyIik7aWYoImhlYXRtYXAiPT09ZS5jb25maWcuY2hhcnQudHlwZXx8dGhpcy5pc0JhcnNEaXN0cmlidXRlZCl7aWYoaSl7dmFyIHM9cGFyc2VJbnQodC50YXJnZXQuZ2V0QXR0cmlidXRlKCJyZWwiKSwxMCktMTt0aGlzLmN0eC5ldmVudHMuZmlyZUV2ZW50KCJsZWdlbmRIb3ZlciIsW3RoaXMuY3R4LHMsdGhpcy53XSksbmV3IFkodGhpcy5jdHgpLmhpZ2hsaWdodFJhbmdlSW5TZXJpZXModCx0LnRhcmdldCl9fWVsc2UhdC50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhcGV4Y2hhcnRzLWluYWN0aXZlLWxlZ2VuZCIpJiZpJiZuZXcgWSh0aGlzLmN0eCkudG9nZ2xlU2VyaWVzT25Ib3Zlcih0LHQudGFyZ2V0KX19LHtrZXk6Im9uTGVnZW5kQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudztpZighZS5jb25maWcubGVnZW5kLmN1c3RvbUxlZ2VuZEl0ZW1zLmxlbmd0aCYmKHQudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygiYXBleGNoYXJ0cy1sZWdlbmQtdGV4dCIpfHx0LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoImFwZXhjaGFydHMtbGVnZW5kLW1hcmtlciIpKSl7dmFyIGk9cGFyc2VJbnQodC50YXJnZXQuZ2V0QXR0cmlidXRlKCJyZWwiKSwxMCktMSxzPSJ0cnVlIj09PXQudGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YTpjb2xsYXBzZWQiKSxhPXRoaXMudy5jb25maWcuY2hhcnQuZXZlbnRzLmxlZ2VuZENsaWNrOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKHRoaXMuY3R4LGksdGhpcy53KSx0aGlzLmN0eC5ldmVudHMuZmlyZUV2ZW50KCJsZWdlbmRDbGljayIsW3RoaXMuY3R4LGksdGhpcy53XSk7dmFyIG49dGhpcy53LmNvbmZpZy5sZWdlbmQubWFya2Vycy5vbkNsaWNrOyJmdW5jdGlvbiI9PXR5cGVvZiBuJiZ0LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoImFwZXhjaGFydHMtbGVnZW5kLW1hcmtlciIpJiYobih0aGlzLmN0eCxpLHRoaXMudyksdGhpcy5jdHguZXZlbnRzLmZpcmVFdmVudCgibGVnZW5kTWFya2VyQ2xpY2siLFt0aGlzLmN0eCxpLHRoaXMud10pKSwidHJlZW1hcCIhPT1lLmNvbmZpZy5jaGFydC50eXBlJiYiaGVhdG1hcCIhPT1lLmNvbmZpZy5jaGFydC50eXBlJiYhdGhpcy5pc0JhcnNEaXN0cmlidXRlZCYmZS5jb25maWcubGVnZW5kLm9uSXRlbUNsaWNrLnRvZ2dsZURhdGFTZXJpZXMmJnRoaXMubGVnZW5kSGVscGVycy50b2dnbGVEYXRhU2VyaWVzKGkscyl9fX1dKSx0fSgpLHV0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLnc9ZS53O3ZhciBpPXRoaXMudzt0aGlzLmV2PXRoaXMudy5jb25maWcuY2hhcnQuZXZlbnRzLHRoaXMuc2VsZWN0ZWRDbGFzcz0iYXBleGNoYXJ0cy1zZWxlY3RlZCIsdGhpcy5sb2NhbGVWYWx1ZXM9dGhpcy53Lmdsb2JhbHMubG9jYWxlLnRvb2xiYXIsdGhpcy5taW5YPWkuZ2xvYmFscy5taW5YLHRoaXMubWF4WD1pLmdsb2JhbHMubWF4WH1yZXR1cm4gYyh0LFt7a2V5OiJjcmVhdGVUb29sYmFyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLncsaT1mdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKX0scz1pKCk7aWYocy5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiYXBleGNoYXJ0cy10b29sYmFyIikscy5zdHlsZS50b3A9ZS5jb25maWcuY2hhcnQudG9vbGJhci5vZmZzZXRZKyJweCIscy5zdHlsZS5yaWdodD0zLWUuY29uZmlnLmNoYXJ0LnRvb2xiYXIub2Zmc2V0WCsicHgiLGUuZ2xvYmFscy5kb20uZWxXcmFwLmFwcGVuZENoaWxkKHMpLHRoaXMuZWxab29tPWkoKSx0aGlzLmVsWm9vbUluPWkoKSx0aGlzLmVsWm9vbU91dD1pKCksdGhpcy5lbFBhbj1pKCksdGhpcy5lbFNlbGVjdGlvbj1pKCksdGhpcy5lbFpvb21SZXNldD1pKCksdGhpcy5lbE1lbnVJY29uPWkoKSx0aGlzLmVsTWVudT1pKCksdGhpcy5lbEN1c3RvbUljb25zPVtdLHRoaXMudD1lLmNvbmZpZy5jaGFydC50b29sYmFyLnRvb2xzLEFycmF5LmlzQXJyYXkodGhpcy50LmN1c3RvbUljb25zKSlmb3IodmFyIGE9MDthPHRoaXMudC5jdXN0b21JY29ucy5sZW5ndGg7YSsrKXRoaXMuZWxDdXN0b21JY29ucy5wdXNoKGkoKSk7dmFyIG49W10scj1mdW5jdGlvbihpLHMsYSl7dmFyIHI9aS50b0xvd2VyQ2FzZSgpO3QudFtyXSYmZS5jb25maWcuY2hhcnQuem9vbS5lbmFibGVkJiZuLnB1c2goe2VsOnMsaWNvbjoic3RyaW5nIj09dHlwZW9mIHQudFtyXT90LnRbcl06YSx0aXRsZTp0LmxvY2FsZVZhbHVlc1tpXSxjbGFzczoiYXBleGNoYXJ0cy0iLmNvbmNhdChyLCItaWNvbiIpfSl9O3IoInpvb21JbiIsdGhpcy5lbFpvb21JbiwnPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij5cbiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+XG4gICAgPHBhdGggZD0iTTEzIDdoLTJ2NEg3djJoNHY0aDJ2LTRoNHYtMmgtNFY3em0tMS01QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiLz5cbjwvc3ZnPlxuJykscigiem9vbU91dCIsdGhpcy5lbFpvb21PdXQsJzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+XG4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPlxuICAgIDxwYXRoIGQ9Ik03IDExdjJoMTB2LTJIN3ptNS05QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiLz5cbjwvc3ZnPlxuJyk7dmFyIG89ZnVuY3Rpb24oaSl7dC50W2ldJiZlLmNvbmZpZy5jaGFydFtpXS5lbmFibGVkJiZuLnB1c2goe2VsOiJ6b29tIj09PWk/dC5lbFpvb206dC5lbFNlbGVjdGlvbixpY29uOiJzdHJpbmciPT10eXBlb2YgdC50W2ldP3QudFtpXToiem9vbSI9PT1pPyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0iIzAwMDAwMCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiPlxuICAgIDxwYXRoIGQ9Ik0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0eiIvPlxuICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPlxuICAgIDxwYXRoIGQ9Ik0xMiAxMGgtMnYySDl2LTJIN1Y5aDJWN2gxdjJoMnYxeiIvPlxuPC9zdmc+JzonPHN2ZyBmaWxsPSIjNkU4MTkyIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj5cbiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+XG4gICAgPHBhdGggZD0iTTMgNWgyVjNjLTEuMSAwLTIgLjktMiAyem0wIDhoMnYtMkgzdjJ6bTQgOGgydi0ySDd2MnpNMyA5aDJWN0gzdjJ6bTEwLTZoLTJ2MmgyVjN6bTYgMHYyaDJjMC0xLjEtLjktMi0yLTJ6TTUgMjF2LTJIM2MwIDEuMS45IDIgMiAyem0tMi00aDJ2LTJIM3Yyek05IDNIN3YyaDJWM3ptMiAxOGgydi0yaC0ydjJ6bTgtOGgydi0yaC0ydjJ6bTAgOGMxLjEgMCAyLS45IDItMmgtMnYyem0wLTEyaDJWN2gtMnYyem0wIDhoMnYtMmgtMnYyem0tNCA0aDJ2LTJoLTJ2MnptMC0xNmgyVjNoLTJ2MnoiLz5cbjwvc3ZnPicsdGl0bGU6dC5sb2NhbGVWYWx1ZXNbInpvb20iPT09aT8ic2VsZWN0aW9uWm9vbSI6InNlbGVjdGlvbiJdLGNsYXNzOmUuZ2xvYmFscy5pc1RvdWNoRGV2aWNlPyJhcGV4Y2hhcnRzLWVsZW1lbnQtaGlkZGVuIjoiYXBleGNoYXJ0cy0iLmNvbmNhdChpLCItaWNvbiIpfSl9O28oInpvb20iKSxvKCJzZWxlY3Rpb24iKSx0aGlzLnQucGFuJiZlLmNvbmZpZy5jaGFydC56b29tLmVuYWJsZWQmJm4ucHVzaCh7ZWw6dGhpcy5lbFBhbixpY29uOiJzdHJpbmciPT10eXBlb2YgdGhpcy50LnBhbj90aGlzLnQucGFuOic8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij5cbiAgICA8ZGVmcz5cbiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgaWQ9ImEiLz5cbiAgICA8L2RlZnM+XG4gICAgPGNsaXBQYXRoIGlkPSJiIj5cbiAgICAgICAgPHVzZSBvdmVyZmxvdz0idmlzaWJsZSIgeGxpbms6aHJlZj0iI2EiLz5cbiAgICA8L2NsaXBQYXRoPlxuICAgIDxwYXRoIGNsaXAtcGF0aD0idXJsKCNiKSIgZD0iTTIzIDUuNVYyMGMwIDIuMi0xLjggNC00IDRoLTcuM2MtMS4wOCAwLTIuMS0uNDMtMi44NS0xLjE5TDEgMTQuODNzMS4yNi0xLjIzIDEuMy0xLjI1Yy4yMi0uMTkuNDktLjI5Ljc5LS4yOS4yMiAwIC40Mi4wNi42LjE2LjA0LjAxIDQuMzEgMi40NiA0LjMxIDIuNDZWNGMwLS44My42Ny0xLjUgMS41LTEuNVMxMSAzLjE3IDExIDR2N2gxVjEuNWMwLS44My42Ny0xLjUgMS41LTEuNVMxNSAuNjcgMTUgMS41VjExaDFWMi41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41VjExaDFWNS41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41eiIvPlxuPC9zdmc+Jyx0aXRsZTp0aGlzLmxvY2FsZVZhbHVlcy5wYW4sY2xhc3M6ZS5nbG9iYWxzLmlzVG91Y2hEZXZpY2U/ImFwZXhjaGFydHMtZWxlbWVudC1oaWRkZW4iOiJhcGV4Y2hhcnRzLXBhbi1pY29uIn0pLHIoInJlc2V0Iix0aGlzLmVsWm9vbVJlc2V0LCc8c3ZnIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPlxuICAgIDxwYXRoIGQ9Ik0xMCAyMHYtNmg0djZoNXYtOGgzTDEyIDMgMiAxMmgzdjh6Ii8+XG4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPlxuPC9zdmc+JyksdGhpcy50LmRvd25sb2FkJiZuLnB1c2goe2VsOnRoaXMuZWxNZW51SWNvbixpY29uOiJzdHJpbmciPT10eXBlb2YgdGhpcy50LmRvd25sb2FkP3RoaXMudC5kb3dubG9hZDonPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDBWMHoiLz48cGF0aCBkPSJNMyAxOGgxOHYtMkgzdjJ6bTAtNWgxOHYtMkgzdjJ6bTAtN3YyaDE4VjZIM3oiLz48L3N2Zz4nLHRpdGxlOnRoaXMubG9jYWxlVmFsdWVzLm1lbnUsY2xhc3M6ImFwZXhjaGFydHMtbWVudS1pY29uIn0pO2Zvcih2YXIgbD0wO2w8dGhpcy5lbEN1c3RvbUljb25zLmxlbmd0aDtsKyspbi5wdXNoKHtlbDp0aGlzLmVsQ3VzdG9tSWNvbnNbbF0saWNvbjp0aGlzLnQuY3VzdG9tSWNvbnNbbF0uaWNvbix0aXRsZTp0aGlzLnQuY3VzdG9tSWNvbnNbbF0udGl0bGUsaW5kZXg6dGhpcy50LmN1c3RvbUljb25zW2xdLmluZGV4LGNsYXNzOiJhcGV4Y2hhcnRzLXRvb2xiYXItY3VzdG9tLWljb24gIit0aGlzLnQuY3VzdG9tSWNvbnNbbF0uY2xhc3N9KTtuLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dC5pbmRleCYmYi5tb3ZlSW5kZXhJbkFycmF5KG4sZSx0LmluZGV4KX0pKTtmb3IodmFyIGM9MDtjPG4ubGVuZ3RoO2MrKylrLnNldEF0dHJzKG5bY10uZWwse2NsYXNzOm5bY10uY2xhc3MsdGl0bGU6bltjXS50aXRsZX0pLG5bY10uZWwuaW5uZXJIVE1MPW5bY10uaWNvbixzLmFwcGVuZENoaWxkKG5bY10uZWwpO3RoaXMuX2NyZWF0ZUhhbWJ1cmdlck1lbnUocyksZS5nbG9iYWxzLnpvb21FbmFibGVkP3RoaXMuZWxab29tLmNsYXNzTGlzdC5hZGQodGhpcy5zZWxlY3RlZENsYXNzKTplLmdsb2JhbHMucGFuRW5hYmxlZD90aGlzLmVsUGFuLmNsYXNzTGlzdC5hZGQodGhpcy5zZWxlY3RlZENsYXNzKTplLmdsb2JhbHMuc2VsZWN0aW9uRW5hYmxlZCYmdGhpcy5lbFNlbGVjdGlvbi5jbGFzc0xpc3QuYWRkKHRoaXMuc2VsZWN0ZWRDbGFzcyksdGhpcy5hZGRUb29sYmFyRXZlbnRMaXN0ZW5lcnMoKX19LHtrZXk6Il9jcmVhdGVIYW1idXJnZXJNZW51Iix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmVsTWVudUl0ZW1zPVtdLHQuYXBwZW5kQ2hpbGQodGhpcy5lbE1lbnUpLGsuc2V0QXR0cnModGhpcy5lbE1lbnUse2NsYXNzOiJhcGV4Y2hhcnRzLW1lbnUifSk7dmFyIGU9W3tuYW1lOiJleHBvcnRTVkciLHRpdGxlOnRoaXMubG9jYWxlVmFsdWVzLmV4cG9ydFRvU1ZHfSx7bmFtZToiZXhwb3J0UE5HIix0aXRsZTp0aGlzLmxvY2FsZVZhbHVlcy5leHBvcnRUb1BOR30se25hbWU6ImV4cG9ydENTViIsdGl0bGU6dGhpcy5sb2NhbGVWYWx1ZXMuZXhwb3J0VG9DU1Z9XTt0aGlzLncuZ2xvYmFscy5hbGxTZXJpZXNIYXNFcXVhbFh8fGUuc3BsaWNlKDIsMSk7Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspdGhpcy5lbE1lbnVJdGVtcy5wdXNoKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKSx0aGlzLmVsTWVudUl0ZW1zW2ldLmlubmVySFRNTD1lW2ldLnRpdGxlLGsuc2V0QXR0cnModGhpcy5lbE1lbnVJdGVtc1tpXSx7Y2xhc3M6ImFwZXhjaGFydHMtbWVudS1pdGVtICIuY29uY2F0KGVbaV0ubmFtZSksdGl0bGU6ZVtpXS50aXRsZX0pLHRoaXMuZWxNZW51LmFwcGVuZENoaWxkKHRoaXMuZWxNZW51SXRlbXNbaV0pfX0se2tleToiYWRkVG9vbGJhckV2ZW50TGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5lbFpvb21SZXNldC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVab29tUmVzZXQuYmluZCh0aGlzKSksdGhpcy5lbFNlbGVjdGlvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy50b2dnbGVab29tU2VsZWN0aW9uLmJpbmQodGhpcywic2VsZWN0aW9uIikpLHRoaXMuZWxab29tLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLnRvZ2dsZVpvb21TZWxlY3Rpb24uYmluZCh0aGlzLCJ6b29tIikpLHRoaXMuZWxab29tSW4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlWm9vbUluLmJpbmQodGhpcykpLHRoaXMuZWxab29tT3V0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZVpvb21PdXQuYmluZCh0aGlzKSksdGhpcy5lbFBhbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy50b2dnbGVQYW5uaW5nLmJpbmQodGhpcykpLHRoaXMuZWxNZW51SWNvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy50b2dnbGVNZW51LmJpbmQodGhpcykpLHRoaXMuZWxNZW51SXRlbXMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS5jbGFzc0xpc3QuY29udGFpbnMoImV4cG9ydFNWRyIpP2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHQuaGFuZGxlRG93bmxvYWQuYmluZCh0LCJzdmciKSk6ZS5jbGFzc0xpc3QuY29udGFpbnMoImV4cG9ydFBORyIpP2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHQuaGFuZGxlRG93bmxvYWQuYmluZCh0LCJwbmciKSk6ZS5jbGFzc0xpc3QuY29udGFpbnMoImV4cG9ydENTViIpJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0LmhhbmRsZURvd25sb2FkLmJpbmQodCwiY3N2IikpfSkpO2Zvcih2YXIgZT0wO2U8dGhpcy50LmN1c3RvbUljb25zLmxlbmd0aDtlKyspdGhpcy5lbEN1c3RvbUljb25zW2VdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLnQuY3VzdG9tSWNvbnNbZV0uY2xpY2suYmluZCh0aGlzLHRoaXMuY3R4LHRoaXMuY3R4LncpKX19LHtrZXk6InRvZ2dsZVpvb21TZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuY3R4LmdldFN5bmNlZENoYXJ0cygpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuY3R4LnRvb2xiYXIudG9nZ2xlT3RoZXJDb250cm9scygpO3ZhciBpPSJzZWxlY3Rpb24iPT09dD9lLmN0eC50b29sYmFyLmVsU2VsZWN0aW9uOmUuY3R4LnRvb2xiYXIuZWxab29tLHM9InNlbGVjdGlvbiI9PT10PyJzZWxlY3Rpb25FbmFibGVkIjoiem9vbUVuYWJsZWQiO2Uudy5nbG9iYWxzW3NdPSFlLncuZ2xvYmFsc1tzXSxpLmNsYXNzTGlzdC5jb250YWlucyhlLmN0eC50b29sYmFyLnNlbGVjdGVkQ2xhc3MpP2kuY2xhc3NMaXN0LnJlbW92ZShlLmN0eC50b29sYmFyLnNlbGVjdGVkQ2xhc3MpOmkuY2xhc3NMaXN0LmFkZChlLmN0eC50b29sYmFyLnNlbGVjdGVkQ2xhc3MpfSkpfX0se2tleToiZ2V0VG9vbGJhckljb25zUmVmZXJlbmNlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudzt0aGlzLmVsWm9vbXx8KHRoaXMuZWxab29tPXQuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLXpvb20taWNvbiIpKSx0aGlzLmVsUGFufHwodGhpcy5lbFBhbj10Lmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy1wYW4taWNvbiIpKSx0aGlzLmVsU2VsZWN0aW9ufHwodGhpcy5lbFNlbGVjdGlvbj10Lmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy1zZWxlY3Rpb24taWNvbiIpKX19LHtrZXk6ImVuYWJsZVpvb21QYW5Gcm9tVG9vbGJhciIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy50b2dnbGVPdGhlckNvbnRyb2xzKCksInBhbiI9PT10P3RoaXMudy5nbG9iYWxzLnBhbkVuYWJsZWQ9ITA6dGhpcy53Lmdsb2JhbHMuem9vbUVuYWJsZWQ9ITA7dmFyIGU9InBhbiI9PT10P3RoaXMuZWxQYW46dGhpcy5lbFpvb20saT0icGFuIj09PXQ/dGhpcy5lbFpvb206dGhpcy5lbFBhbjtlJiZlLmNsYXNzTGlzdC5hZGQodGhpcy5zZWxlY3RlZENsYXNzKSxpJiZpLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5zZWxlY3RlZENsYXNzKX19LHtrZXk6InRvZ2dsZVBhbm5pbmciLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jdHguZ2V0U3luY2VkQ2hhcnRzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jdHgudG9vbGJhci50b2dnbGVPdGhlckNvbnRyb2xzKCksdC53Lmdsb2JhbHMucGFuRW5hYmxlZD0hdC53Lmdsb2JhbHMucGFuRW5hYmxlZCx0LmN0eC50b29sYmFyLmVsUGFuLmNsYXNzTGlzdC5jb250YWlucyh0LmN0eC50b29sYmFyLnNlbGVjdGVkQ2xhc3MpP3QuY3R4LnRvb2xiYXIuZWxQYW4uY2xhc3NMaXN0LnJlbW92ZSh0LmN0eC50b29sYmFyLnNlbGVjdGVkQ2xhc3MpOnQuY3R4LnRvb2xiYXIuZWxQYW4uY2xhc3NMaXN0LmFkZCh0LmN0eC50b29sYmFyLnNlbGVjdGVkQ2xhc3MpfSkpfX0se2tleToidG9nZ2xlT3RoZXJDb250cm9scyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy53O2UuZ2xvYmFscy5wYW5FbmFibGVkPSExLGUuZ2xvYmFscy56b29tRW5hYmxlZD0hMSxlLmdsb2JhbHMuc2VsZWN0aW9uRW5hYmxlZD0hMSx0aGlzLmdldFRvb2xiYXJJY29uc1JlZmVyZW5jZSgpLFt0aGlzLmVsUGFuLHRoaXMuZWxTZWxlY3Rpb24sdGhpcy5lbFpvb21dLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UmJmUuY2xhc3NMaXN0LnJlbW92ZSh0LnNlbGVjdGVkQ2xhc3MpfSkpfX0se2tleToiaGFuZGxlWm9vbUluIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudzt0Lmdsb2JhbHMuaXNSYW5nZUJhciYmKHRoaXMubWluWD10Lmdsb2JhbHMubWluWSx0aGlzLm1heFg9dC5nbG9iYWxzLm1heFkpO3ZhciBlPSh0aGlzLm1pblgrdGhpcy5tYXhYKS8yLGk9KHRoaXMubWluWCtlKS8yLHM9KHRoaXMubWF4WCtlKS8yLGE9dGhpcy5fZ2V0TmV3TWluWE1heFgoaSxzKTt0Lmdsb2JhbHMuZGlzYWJsZVpvb21Jbnx8dGhpcy56b29tVXBkYXRlT3B0aW9ucyhhLm1pblgsYS5tYXhYKX19LHtrZXk6ImhhbmRsZVpvb21PdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53O2lmKHQuZ2xvYmFscy5pc1JhbmdlQmFyJiYodGhpcy5taW5YPXQuZ2xvYmFscy5taW5ZLHRoaXMubWF4WD10Lmdsb2JhbHMubWF4WSksISgiZGF0ZXRpbWUiPT09dC5jb25maWcueGF4aXMudHlwZSYmbmV3IERhdGUodGhpcy5taW5YKS5nZXRVVENGdWxsWWVhcigpPDFlMykpe3ZhciBlPSh0aGlzLm1pblgrdGhpcy5tYXhYKS8yLGk9dGhpcy5taW5YLShlLXRoaXMubWluWCkscz10aGlzLm1heFgtKGUtdGhpcy5tYXhYKSxhPXRoaXMuX2dldE5ld01pblhNYXhYKGkscyk7dC5nbG9iYWxzLmRpc2FibGVab29tT3V0fHx0aGlzLnpvb21VcGRhdGVPcHRpb25zKGEubWluWCxhLm1heFgpfX19LHtrZXk6Il9nZXROZXdNaW5YTWF4WCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLncuY29uZmlnLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYztyZXR1cm57bWluWDppP01hdGguZmxvb3IodCk6dCxtYXhYOmk/TWF0aC5mbG9vcihlKTplfX19LHtrZXk6Inpvb21VcGRhdGVPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudztpZih2b2lkIDAhPT10fHx2b2lkIDAhPT1lKXtpZighKGkuY29uZmlnLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYyYmKHQ8MSYmKHQ9MSxlPWkuZ2xvYmFscy5kYXRhUG9pbnRzKSxlLXQ8MikpKXt2YXIgcz17bWluOnQsbWF4OmV9LGE9dGhpcy5nZXRCZWZvcmVab29tUmFuZ2Uocyk7YSYmKHM9YS54YXhpcyk7dmFyIG49e3hheGlzOnN9LHI9Yi5jbG9uZShpLmdsb2JhbHMuaW5pdGlhbENvbmZpZy55YXhpcyk7aS5jb25maWcuY2hhcnQuem9vbS5hdXRvU2NhbGVZYXhpcyYmKHI9bmV3IHEodGhpcy5jdHgpLmF1dG9TY2FsZVkodGhpcy5jdHgscix7eGF4aXM6c30pKSxpLmNvbmZpZy5jaGFydC5ncm91cHx8KG4ueWF4aXM9ciksdGhpcy53Lmdsb2JhbHMuem9vbWVkPSEwLHRoaXMuY3R4LnVwZGF0ZUhlbHBlcnMuX3VwZGF0ZU9wdGlvbnMobiwhMSx0aGlzLncuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuZHluYW1pY0FuaW1hdGlvbi5lbmFibGVkKSx0aGlzLnpvb21DYWxsYmFjayhzLHIpfX1lbHNlIHRoaXMuaGFuZGxlWm9vbVJlc2V0KCl9fSx7a2V5OiJ6b29tQ2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKHQsZSl7ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuZXYuem9vbWVkJiZ0aGlzLmV2Lnpvb21lZCh0aGlzLmN0eCx7eGF4aXM6dCx5YXhpczplfSl9fSx7a2V5OiJnZXRCZWZvcmVab29tUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9bnVsbDtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5ldi5iZWZvcmVab29tJiYoaT10aGlzLmV2LmJlZm9yZVpvb20odGhpcyx7eGF4aXM6dCx5YXhpczplfSkpLGl9fSx7a2V5OiJ0b2dnbGVNZW51Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7d2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dC5lbE1lbnUuY2xhc3NMaXN0LmNvbnRhaW5zKCJhcGV4Y2hhcnRzLW1lbnUtb3BlbiIpP3QuZWxNZW51LmNsYXNzTGlzdC5yZW1vdmUoImFwZXhjaGFydHMtbWVudS1vcGVuIik6dC5lbE1lbnUuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy1tZW51LW9wZW4iKX0pLDApfX0se2tleToiaGFuZGxlRG93bmxvYWQiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudyxpPW5ldyBqKHRoaXMuY3R4KTtzd2l0Y2godCl7Y2FzZSJzdmciOmkuZXhwb3J0VG9TVkcodGhpcy5jdHgpO2JyZWFrO2Nhc2UicG5nIjppLmV4cG9ydFRvUG5nKHRoaXMuY3R4KTticmVhaztjYXNlImNzdiI6aS5leHBvcnRUb0NTVih7c2VyaWVzOmUuY29uZmlnLnNlcmllcyxjb2x1bW5EZWxpbWl0ZXI6ZS5jb25maWcuY2hhcnQudG9vbGJhci5leHBvcnQuY3N2LmNvbHVtbkRlbGltaXRlcn0pfX19LHtrZXk6ImhhbmRsZVpvb21SZXNldCIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5jdHguZ2V0U3luY2VkQ2hhcnRzKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC53O2lmKGUuZ2xvYmFscy5sYXN0WEF4aXMubWluPXZvaWQgMCxlLmdsb2JhbHMubGFzdFhBeGlzLm1heD12b2lkIDAsdC51cGRhdGVIZWxwZXJzLnJldmVydERlZmF1bHRBeGlzTWluTWF4KCksImZ1bmN0aW9uIj09dHlwZW9mIGUuY29uZmlnLmNoYXJ0LmV2ZW50cy5iZWZvcmVSZXNldFpvb20pe3ZhciBpPWUuY29uZmlnLmNoYXJ0LmV2ZW50cy5iZWZvcmVSZXNldFpvb20odCxlKTtpJiZ0LnVwZGF0ZUhlbHBlcnMucmV2ZXJ0RGVmYXVsdEF4aXNNaW5NYXgoaSl9ImZ1bmN0aW9uIj09dHlwZW9mIGUuY29uZmlnLmNoYXJ0LmV2ZW50cy56b29tZWQmJnQuY3R4LnRvb2xiYXIuem9vbUNhbGxiYWNrKHttaW46ZS5jb25maWcueGF4aXMubWluLG1heDplLmNvbmZpZy54YXhpcy5tYXh9KSxlLmdsb2JhbHMuem9vbWVkPSExO3ZhciBzPXQuY3R4LnNlcmllcy5lbXB0eUNvbGxhcHNlZFNlcmllcyhiLmNsb25lKGUuZ2xvYmFscy5pbml0aWFsU2VyaWVzKSk7dC51cGRhdGVIZWxwZXJzLl91cGRhdGVTZXJpZXMocyxlLmNvbmZpZy5jaGFydC5hbmltYXRpb25zLmR5bmFtaWNBbmltYXRpb24uZW5hYmxlZCl9KSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWxab29tPW51bGwsdGhpcy5lbFpvb21Jbj1udWxsLHRoaXMuZWxab29tT3V0PW51bGwsdGhpcy5lbFBhbj1udWxsLHRoaXMuZWxTZWxlY3Rpb249bnVsbCx0aGlzLmVsWm9vbVJlc2V0PW51bGwsdGhpcy5lbE1lbnVJY29uPW51bGx9fV0pLHR9KCkscHQ9ZnVuY3Rpb24odCl7ZChpLHV0KTt2YXIgZT1mKGkpO2Z1bmN0aW9uIGkodCl7dmFyIHM7cmV0dXJuIG8odGhpcyxpKSwocz1lLmNhbGwodGhpcyx0KSkuY3R4PXQscy53PXQudyxzLmRyYWdnZWQ9ITEscy5ncmFwaGljcz1uZXcgayhzLmN0eCkscy5ldmVudExpc3Q9WyJtb3VzZWRvd24iLCJtb3VzZWxlYXZlIiwibW91c2Vtb3ZlIiwidG91Y2hzdGFydCIsInRvdWNobW92ZSIsIm1vdXNldXAiLCJ0b3VjaGVuZCJdLHMuY2xpZW50WD0wLHMuY2xpZW50WT0wLHMuc3RhcnRYPTAscy5lbmRYPTAscy5kcmFnWD0wLHMuc3RhcnRZPTAscy5lbmRZPTAscy5kcmFnWT0wLHMubW92ZURpcmVjdGlvbj0ibm9uZSIsc31yZXR1cm4gYyhpLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dC54eVJhdGlvcyxzPXRoaXMudyxhPXRoaXM7dGhpcy54eVJhdGlvcz1pLHRoaXMuem9vbVJlY3Q9dGhpcy5ncmFwaGljcy5kcmF3UmVjdCgwLDAsMCwwKSx0aGlzLnNlbGVjdGlvblJlY3Q9dGhpcy5ncmFwaGljcy5kcmF3UmVjdCgwLDAsMCwwKSx0aGlzLmdyaWRSZWN0PXMuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLWdyaWQiKSx0aGlzLnpvb21SZWN0Lm5vZGUuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy16b29tLXJlY3QiKSx0aGlzLnNlbGVjdGlvblJlY3Qubm9kZS5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLXNlbGVjdGlvbi1yZWN0Iikscy5nbG9iYWxzLmRvbS5lbEdyYXBoaWNhbC5hZGQodGhpcy56b29tUmVjdCkscy5nbG9iYWxzLmRvbS5lbEdyYXBoaWNhbC5hZGQodGhpcy5zZWxlY3Rpb25SZWN0KSwieCI9PT1zLmNvbmZpZy5jaGFydC5zZWxlY3Rpb24udHlwZT90aGlzLnNsRHJhZ2dhYmxlUmVjdD10aGlzLnNlbGVjdGlvblJlY3QuZHJhZ2dhYmxlKHttaW5YOjAsbWluWTowLG1heFg6cy5nbG9iYWxzLmdyaWRXaWR0aCxtYXhZOnMuZ2xvYmFscy5ncmlkSGVpZ2h0fSkub24oImRyYWdtb3ZlIix0aGlzLnNlbGVjdGlvbkRyYWdnaW5nLmJpbmQodGhpcywiZHJhZ2dpbmciKSk6InkiPT09cy5jb25maWcuY2hhcnQuc2VsZWN0aW9uLnR5cGU/dGhpcy5zbERyYWdnYWJsZVJlY3Q9dGhpcy5zZWxlY3Rpb25SZWN0LmRyYWdnYWJsZSh7bWluWDowLG1heFg6cy5nbG9iYWxzLmdyaWRXaWR0aH0pLm9uKCJkcmFnbW92ZSIsdGhpcy5zZWxlY3Rpb25EcmFnZ2luZy5iaW5kKHRoaXMsImRyYWdnaW5nIikpOnRoaXMuc2xEcmFnZ2FibGVSZWN0PXRoaXMuc2VsZWN0aW9uUmVjdC5kcmFnZ2FibGUoKS5vbigiZHJhZ21vdmUiLHRoaXMuc2VsZWN0aW9uRHJhZ2dpbmcuYmluZCh0aGlzLCJkcmFnZ2luZyIpKSx0aGlzLnByZXNlbGVjdGVkU2VsZWN0aW9uKCksdGhpcy5ob3ZlckFyZWE9cy5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiIi5jb25jYXQocy5nbG9iYWxzLmNoYXJ0Q2xhc3MsIiAuYXBleGNoYXJ0cy1zdmciKSksdGhpcy5ob3ZlckFyZWEuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy16b29tYWJsZSIpLHRoaXMuZXZlbnRMaXN0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2UuaG92ZXJBcmVhLmFkZEV2ZW50TGlzdGVuZXIodCxhLnN2Z01vdXNlRXZlbnRzLmJpbmQoYSxpKSx7Y2FwdHVyZTohMSxwYXNzaXZlOiEwfSl9KSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2xEcmFnZ2FibGVSZWN0JiYodGhpcy5zbERyYWdnYWJsZVJlY3QuZHJhZ2dhYmxlKCExKSx0aGlzLnNsRHJhZ2dhYmxlUmVjdC5vZmYoKSx0aGlzLnNlbGVjdGlvblJlY3Qub2ZmKCkpLHRoaXMuc2VsZWN0aW9uUmVjdD1udWxsLHRoaXMuem9vbVJlY3Q9bnVsbCx0aGlzLmdyaWRSZWN0PW51bGx9fSx7a2V5OiJzdmdNb3VzZUV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLncscz10aGlzLGE9dGhpcy5jdHgudG9vbGJhcixuPWkuZ2xvYmFscy56b29tRW5hYmxlZD9pLmNvbmZpZy5jaGFydC56b29tLnR5cGU6aS5jb25maWcuY2hhcnQuc2VsZWN0aW9uLnR5cGUscj1pLmNvbmZpZy5jaGFydC50b29sYmFyLmF1dG9TZWxlY3RlZDtpZihlLnNoaWZ0S2V5Pyh0aGlzLnNoaWZ0V2FzUHJlc3NlZD0hMCxhLmVuYWJsZVpvb21QYW5Gcm9tVG9vbGJhcigicGFuIj09PXI/Inpvb20iOiJwYW4iKSk6dGhpcy5zaGlmdFdhc1ByZXNzZWQmJihhLmVuYWJsZVpvb21QYW5Gcm9tVG9vbGJhcihyKSx0aGlzLnNoaWZ0V2FzUHJlc3NlZD0hMSksZS50YXJnZXQpe3ZhciBvLGw9ZS50YXJnZXQuY2xhc3NMaXN0O2lmKGUudGFyZ2V0LnBhcmVudE5vZGUmJm51bGwhPT1lLnRhcmdldC5wYXJlbnROb2RlJiYobz1lLnRhcmdldC5wYXJlbnROb2RlLmNsYXNzTGlzdCksIShsLmNvbnRhaW5zKCJhcGV4Y2hhcnRzLXNlbGVjdGlvbi1yZWN0Iil8fGwuY29udGFpbnMoImFwZXhjaGFydHMtbGVnZW5kLW1hcmtlciIpfHxsLmNvbnRhaW5zKCJhcGV4Y2hhcnRzLWxlZ2VuZC10ZXh0Iil8fG8mJm8uY29udGFpbnMoImFwZXhjaGFydHMtdG9vbGJhciIpKSl7aWYocy5jbGllbnRYPSJ0b3VjaG1vdmUiPT09ZS50eXBlfHwidG91Y2hzdGFydCI9PT1lLnR5cGU/ZS50b3VjaGVzWzBdLmNsaWVudFg6InRvdWNoZW5kIj09PWUudHlwZT9lLmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFg6ZS5jbGllbnRYLHMuY2xpZW50WT0idG91Y2htb3ZlIj09PWUudHlwZXx8InRvdWNoc3RhcnQiPT09ZS50eXBlP2UudG91Y2hlc1swXS5jbGllbnRZOiJ0b3VjaGVuZCI9PT1lLnR5cGU/ZS5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZOmUuY2xpZW50WSwibW91c2Vkb3duIj09PWUudHlwZSYmMT09PWUud2hpY2gpe3ZhciBjPXMuZ3JpZFJlY3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cy5zdGFydFg9cy5jbGllbnRYLWMubGVmdCxzLnN0YXJ0WT1zLmNsaWVudFktYy50b3Ascy5kcmFnZ2VkPSExLHMudy5nbG9iYWxzLm1vdXNlZG93bj0hMH1pZigoIm1vdXNlbW92ZSI9PT1lLnR5cGUmJjE9PT1lLndoaWNofHwidG91Y2htb3ZlIj09PWUudHlwZSkmJihzLmRyYWdnZWQ9ITAsaS5nbG9iYWxzLnBhbkVuYWJsZWQ/KGkuZ2xvYmFscy5zZWxlY3Rpb249bnVsbCxzLncuZ2xvYmFscy5tb3VzZWRvd24mJnMucGFuRHJhZ2dpbmcoe2NvbnRleHQ6cyx6b29tdHlwZTpuLHh5UmF0aW9zOnR9KSk6KHMudy5nbG9iYWxzLm1vdXNlZG93biYmaS5nbG9iYWxzLnpvb21FbmFibGVkfHxzLncuZ2xvYmFscy5tb3VzZWRvd24mJmkuZ2xvYmFscy5zZWxlY3Rpb25FbmFibGVkKSYmKHMuc2VsZWN0aW9uPXMuc2VsZWN0aW9uRHJhd2luZyh7Y29udGV4dDpzLHpvb210eXBlOm59KSkpLCJtb3VzZXVwIj09PWUudHlwZXx8InRvdWNoZW5kIj09PWUudHlwZXx8Im1vdXNlbGVhdmUiPT09ZS50eXBlKXt2YXIgaD1zLmdyaWRSZWN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3Mudy5nbG9iYWxzLm1vdXNlZG93biYmKHMuZW5kWD1zLmNsaWVudFgtaC5sZWZ0LHMuZW5kWT1zLmNsaWVudFktaC50b3Ascy5kcmFnWD1NYXRoLmFicyhzLmVuZFgtcy5zdGFydFgpLHMuZHJhZ1k9TWF0aC5hYnMocy5lbmRZLXMuc3RhcnRZKSwoaS5nbG9iYWxzLnpvb21FbmFibGVkfHxpLmdsb2JhbHMuc2VsZWN0aW9uRW5hYmxlZCkmJnMuc2VsZWN0aW9uRHJhd24oe2NvbnRleHQ6cyx6b29tdHlwZTpufSksaS5nbG9iYWxzLnBhbkVuYWJsZWQmJmkuY29uZmlnLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYyYmcy5kZWxheWVkUGFuU2Nyb2xsZWQoKSksaS5nbG9iYWxzLnpvb21FbmFibGVkJiZzLmhpZGVTZWxlY3Rpb25SZWN0KHRoaXMuc2VsZWN0aW9uUmVjdCkscy5kcmFnZ2VkPSExLHMudy5nbG9iYWxzLm1vdXNlZG93bj0hMX10aGlzLm1ha2VTZWxlY3Rpb25SZWN0RHJhZ2dhYmxlKCl9fX19LHtrZXk6Im1ha2VTZWxlY3Rpb25SZWN0RHJhZ2dhYmxlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudztpZih0aGlzLnNlbGVjdGlvblJlY3Qpe3ZhciBlPXRoaXMuc2VsZWN0aW9uUmVjdC5ub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Uud2lkdGg+MCYmZS5oZWlnaHQ+MCYmdGhpcy5zbERyYWdnYWJsZVJlY3Quc2VsZWN0aXplKHtwb2ludHM6ImwsIHIiLHBvaW50U2l6ZTo4LHBvaW50VHlwZToicmVjdCJ9KS5yZXNpemUoe2NvbnN0cmFpbnQ6e21pblg6MCxtaW5ZOjAsbWF4WDp0Lmdsb2JhbHMuZ3JpZFdpZHRoLG1heFk6dC5nbG9iYWxzLmdyaWRIZWlnaHR9fSkub24oInJlc2l6aW5nIix0aGlzLnNlbGVjdGlvbkRyYWdnaW5nLmJpbmQodGhpcywicmVzaXppbmciKSl9fX0se2tleToicHJlc2VsZWN0ZWRTZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53LGU9dGhpcy54eVJhdGlvcztpZighdC5nbG9iYWxzLnpvb21FbmFibGVkKWlmKHZvaWQgMCE9PXQuZ2xvYmFscy5zZWxlY3Rpb24mJm51bGwhPT10Lmdsb2JhbHMuc2VsZWN0aW9uKXRoaXMuZHJhd1NlbGVjdGlvblJlY3QodC5nbG9iYWxzLnNlbGVjdGlvbik7ZWxzZSBpZih2b2lkIDAhPT10LmNvbmZpZy5jaGFydC5zZWxlY3Rpb24ueGF4aXMubWluJiZ2b2lkIDAhPT10LmNvbmZpZy5jaGFydC5zZWxlY3Rpb24ueGF4aXMubWF4KXt2YXIgaT0odC5jb25maWcuY2hhcnQuc2VsZWN0aW9uLnhheGlzLm1pbi10Lmdsb2JhbHMubWluWCkvZS54UmF0aW8scz17eDppLHk6MCx3aWR0aDp0Lmdsb2JhbHMuZ3JpZFdpZHRoLSh0Lmdsb2JhbHMubWF4WC10LmNvbmZpZy5jaGFydC5zZWxlY3Rpb24ueGF4aXMubWF4KS9lLnhSYXRpby1pLGhlaWdodDp0Lmdsb2JhbHMuZ3JpZEhlaWdodCx0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHNlbGVjdGlvbkVuYWJsZWQ6ITB9O3RoaXMuZHJhd1NlbGVjdGlvblJlY3QocyksdGhpcy5tYWtlU2VsZWN0aW9uUmVjdERyYWdnYWJsZSgpLCJmdW5jdGlvbiI9PXR5cGVvZiB0LmNvbmZpZy5jaGFydC5ldmVudHMuc2VsZWN0aW9uJiZ0LmNvbmZpZy5jaGFydC5ldmVudHMuc2VsZWN0aW9uKHRoaXMuY3R4LHt4YXhpczp7bWluOnQuY29uZmlnLmNoYXJ0LnNlbGVjdGlvbi54YXhpcy5taW4sbWF4OnQuY29uZmlnLmNoYXJ0LnNlbGVjdGlvbi54YXhpcy5tYXh9LHlheGlzOnt9fSl9fX0se2tleToiZHJhd1NlbGVjdGlvblJlY3QiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQueCxpPXQueSxzPXQud2lkdGgsYT10LmhlaWdodCxuPXQudHJhbnNsYXRlWCxyPXZvaWQgMD09PW4/MDpuLG89dC50cmFuc2xhdGVZLGw9dm9pZCAwPT09bz8wOm8sYz10aGlzLncsaD10aGlzLnpvb21SZWN0LGQ9dGhpcy5zZWxlY3Rpb25SZWN0O2lmKHRoaXMuZHJhZ2dlZHx8bnVsbCE9PWMuZ2xvYmFscy5zZWxlY3Rpb24pe3ZhciB1PXt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiK3IrIiwgIitsKyIpIn07Yy5nbG9iYWxzLnpvb21FbmFibGVkJiZ0aGlzLmRyYWdnZWQmJihzPDAmJihzPTEpLGguYXR0cih7eDplLHk6aSx3aWR0aDpzLGhlaWdodDphLGZpbGw6Yy5jb25maWcuY2hhcnQuem9vbS56b29tZWRBcmVhLmZpbGwuY29sb3IsImZpbGwtb3BhY2l0eSI6Yy5jb25maWcuY2hhcnQuem9vbS56b29tZWRBcmVhLmZpbGwub3BhY2l0eSxzdHJva2U6Yy5jb25maWcuY2hhcnQuem9vbS56b29tZWRBcmVhLnN0cm9rZS5jb2xvciwic3Ryb2tlLXdpZHRoIjpjLmNvbmZpZy5jaGFydC56b29tLnpvb21lZEFyZWEuc3Ryb2tlLndpZHRoLCJzdHJva2Utb3BhY2l0eSI6Yy5jb25maWcuY2hhcnQuem9vbS56b29tZWRBcmVhLnN0cm9rZS5vcGFjaXR5fSksay5zZXRBdHRycyhoLm5vZGUsdSkpLGMuZ2xvYmFscy5zZWxlY3Rpb25FbmFibGVkJiYoZC5hdHRyKHt4OmUseTppLHdpZHRoOnM+MD9zOjAsaGVpZ2h0OmE+MD9hOjAsZmlsbDpjLmNvbmZpZy5jaGFydC5zZWxlY3Rpb24uZmlsbC5jb2xvciwiZmlsbC1vcGFjaXR5IjpjLmNvbmZpZy5jaGFydC5zZWxlY3Rpb24uZmlsbC5vcGFjaXR5LHN0cm9rZTpjLmNvbmZpZy5jaGFydC5zZWxlY3Rpb24uc3Ryb2tlLmNvbG9yLCJzdHJva2Utd2lkdGgiOmMuY29uZmlnLmNoYXJ0LnNlbGVjdGlvbi5zdHJva2Uud2lkdGgsInN0cm9rZS1kYXNoYXJyYXkiOmMuY29uZmlnLmNoYXJ0LnNlbGVjdGlvbi5zdHJva2UuZGFzaEFycmF5LCJzdHJva2Utb3BhY2l0eSI6Yy5jb25maWcuY2hhcnQuc2VsZWN0aW9uLnN0cm9rZS5vcGFjaXR5fSksay5zZXRBdHRycyhkLm5vZGUsdSkpfX19LHtrZXk6ImhpZGVTZWxlY3Rpb25SZWN0Iix2YWx1ZTpmdW5jdGlvbih0KXt0JiZ0LmF0dHIoe3g6MCx5OjAsd2lkdGg6MCxoZWlnaHQ6MH0pfX0se2tleToic2VsZWN0aW9uRHJhd2luZyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsaT10LmNvbnRleHQscz10Lnpvb210eXBlLGE9dGhpcy53LG49aSxyPXRoaXMuZ3JpZFJlY3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1uLnN0YXJ0WC0xLGw9bi5zdGFydFksYz0hMSxoPSExLGQ9bi5jbGllbnRYLXIubGVmdC1vLHU9bi5jbGllbnRZLXIudG9wLWw7cmV0dXJuIE1hdGguYWJzKGQrbyk+YS5nbG9iYWxzLmdyaWRXaWR0aD9kPWEuZ2xvYmFscy5ncmlkV2lkdGgtbzpuLmNsaWVudFgtci5sZWZ0PDAmJihkPW8pLG8+bi5jbGllbnRYLXIubGVmdCYmKGM9ITAsZD1NYXRoLmFicyhkKSksbD5uLmNsaWVudFktci50b3AmJihoPSEwLHU9TWF0aC5hYnModSkpLGU9IngiPT09cz97eDpjP28tZDpvLHk6MCx3aWR0aDpkLGhlaWdodDphLmdsb2JhbHMuZ3JpZEhlaWdodH06InkiPT09cz97eDowLHk6aD9sLXU6bCx3aWR0aDphLmdsb2JhbHMuZ3JpZFdpZHRoLGhlaWdodDp1fTp7eDpjP28tZDpvLHk6aD9sLXU6bCx3aWR0aDpkLGhlaWdodDp1fSxuLmRyYXdTZWxlY3Rpb25SZWN0KGUpLG4uc2VsZWN0aW9uRHJhZ2dpbmcoInJlc2l6aW5nIiksZX19LHtrZXk6InNlbGVjdGlvbkRyYWdnaW5nIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMscz10aGlzLncsYT10aGlzLnh5UmF0aW9zLG49dGhpcy5zZWxlY3Rpb25SZWN0LHI9MDsicmVzaXppbmciPT09dCYmKHI9MzApO3ZhciBvPWZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUZsb2F0KG4ubm9kZS5nZXRBdHRyaWJ1dGUodCkpfSxsPXt4Om8oIngiKSx5Om8oInkiKSx3aWR0aDpvKCJ3aWR0aCIpLGhlaWdodDpvKCJoZWlnaHQiKX07cy5nbG9iYWxzLnNlbGVjdGlvbj1sLCJmdW5jdGlvbiI9PXR5cGVvZiBzLmNvbmZpZy5jaGFydC5ldmVudHMuc2VsZWN0aW9uJiZzLmdsb2JhbHMuc2VsZWN0aW9uRW5hYmxlZCYmKGNsZWFyVGltZW91dCh0aGlzLncuZ2xvYmFscy5zZWxlY3Rpb25SZXNpemVUaW1lciksdGhpcy53Lmdsb2JhbHMuc2VsZWN0aW9uUmVzaXplVGltZXI9d2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dmFyIHQ9aS5ncmlkUmVjdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxlPW4ubm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPXt4YXhpczp7bWluOnMuZ2xvYmFscy54QXhpc1NjYWxlLm5pY2VNaW4rKGUubGVmdC10LmxlZnQpKmEueFJhdGlvLG1heDpzLmdsb2JhbHMueEF4aXNTY2FsZS5uaWNlTWluKyhlLnJpZ2h0LXQubGVmdCkqYS54UmF0aW99LHlheGlzOnttaW46cy5nbG9iYWxzLnlBeGlzU2NhbGVbMF0ubmljZU1pbisodC5ib3R0b20tZS5ib3R0b20pKmEueVJhdGlvWzBdLG1heDpzLmdsb2JhbHMueUF4aXNTY2FsZVswXS5uaWNlTWF4LShlLnRvcC10LnRvcCkqYS55UmF0aW9bMF19fTtzLmNvbmZpZy5jaGFydC5ldmVudHMuc2VsZWN0aW9uKGkuY3R4LHIpLHMuY29uZmlnLmNoYXJ0LmJydXNoLmVuYWJsZWQmJnZvaWQgMCE9PXMuY29uZmlnLmNoYXJ0LmV2ZW50cy5icnVzaFNjcm9sbGVkJiZzLmNvbmZpZy5jaGFydC5ldmVudHMuYnJ1c2hTY3JvbGxlZChpLmN0eCxyKX0pLHIpKX19LHtrZXk6InNlbGVjdGlvbkRyYXduIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmNvbnRleHQsaT10Lnpvb210eXBlLHM9dGhpcy53LGE9ZSxuPXRoaXMueHlSYXRpb3Mscj10aGlzLmN0eC50b29sYmFyO2lmKGEuc3RhcnRYPmEuZW5kWCl7dmFyIG89YS5zdGFydFg7YS5zdGFydFg9YS5lbmRYLGEuZW5kWD1vfWlmKGEuc3RhcnRZPmEuZW5kWSl7dmFyIGw9YS5zdGFydFk7YS5zdGFydFk9YS5lbmRZLGEuZW5kWT1sfXZhciBjPXZvaWQgMCxoPXZvaWQgMDtzLmdsb2JhbHMuaXNSYW5nZUJhcj8oYz1zLmdsb2JhbHMueUF4aXNTY2FsZVswXS5uaWNlTWluK2Euc3RhcnRYKm4uaW52ZXJ0ZWRZUmF0aW8saD1zLmdsb2JhbHMueUF4aXNTY2FsZVswXS5uaWNlTWluK2EuZW5kWCpuLmludmVydGVkWVJhdGlvKTooYz1zLmdsb2JhbHMueEF4aXNTY2FsZS5uaWNlTWluK2Euc3RhcnRYKm4ueFJhdGlvLGg9cy5nbG9iYWxzLnhBeGlzU2NhbGUubmljZU1pbithLmVuZFgqbi54UmF0aW8pO3ZhciBkPVtdLHU9W107aWYocy5jb25maWcueWF4aXMuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXtkLnB1c2gocy5nbG9iYWxzLnlBeGlzU2NhbGVbZV0ubmljZU1heC1uLnlSYXRpb1tlXSphLnN0YXJ0WSksdS5wdXNoKHMuZ2xvYmFscy55QXhpc1NjYWxlW2VdLm5pY2VNYXgtbi55UmF0aW9bZV0qYS5lbmRZKX0pKSxhLmRyYWdnZWQmJihhLmRyYWdYPjEwfHxhLmRyYWdZPjEwKSYmYyE9PWgpaWYocy5nbG9iYWxzLnpvb21FbmFibGVkKXt2YXIgcD1iLmNsb25lKHMuZ2xvYmFscy5pbml0aWFsQ29uZmlnLnlheGlzKSxnPWIuY2xvbmUocy5nbG9iYWxzLmluaXRpYWxDb25maWcueGF4aXMpO2lmKHMuZ2xvYmFscy56b29tZWQ9ITAscy5jb25maWcueGF4aXMuY29udmVydGVkQ2F0VG9OdW1lcmljJiYoYz1NYXRoLmZsb29yKGMpLGg9TWF0aC5mbG9vcihoKSxjPDEmJihjPTEsaD1zLmdsb2JhbHMuZGF0YVBvaW50cyksaC1jPDImJihoPWMrMSkpLCJ4eSIhPT1pJiYieCIhPT1pfHwoZz17bWluOmMsbWF4Omh9KSwieHkiIT09aSYmInkiIT09aXx8cC5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3BbZV0ubWluPXVbZV0scFtlXS5tYXg9ZFtlXX0pKSxzLmNvbmZpZy5jaGFydC56b29tLmF1dG9TY2FsZVlheGlzKXt2YXIgZj1uZXcgcShhLmN0eCk7cD1mLmF1dG9TY2FsZVkoYS5jdHgscCx7eGF4aXM6Z30pfWlmKHIpe3ZhciBtPXIuZ2V0QmVmb3JlWm9vbVJhbmdlKGcscCk7bSYmKGc9bS54YXhpcz9tLnhheGlzOmcscD1tLnlheGlzP20ueWF4aXM6cCl9dmFyIHY9e3hheGlzOmd9O3MuY29uZmlnLmNoYXJ0Lmdyb3VwfHwodi55YXhpcz1wKSxhLmN0eC51cGRhdGVIZWxwZXJzLl91cGRhdGVPcHRpb25zKHYsITEsYS53LmNvbmZpZy5jaGFydC5hbmltYXRpb25zLmR5bmFtaWNBbmltYXRpb24uZW5hYmxlZCksImZ1bmN0aW9uIj09dHlwZW9mIHMuY29uZmlnLmNoYXJ0LmV2ZW50cy56b29tZWQmJnIuem9vbUNhbGxiYWNrKGcscCl9ZWxzZSBpZihzLmdsb2JhbHMuc2VsZWN0aW9uRW5hYmxlZCl7dmFyIHgseT1udWxsO3g9e21pbjpjLG1heDpofSwieHkiIT09aSYmInkiIT09aXx8KHk9Yi5jbG9uZShzLmNvbmZpZy55YXhpcykpLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7eVtlXS5taW49dVtlXSx5W2VdLm1heD1kW2VdfSkpLHMuZ2xvYmFscy5zZWxlY3Rpb249YS5zZWxlY3Rpb24sImZ1bmN0aW9uIj09dHlwZW9mIHMuY29uZmlnLmNoYXJ0LmV2ZW50cy5zZWxlY3Rpb24mJnMuY29uZmlnLmNoYXJ0LmV2ZW50cy5zZWxlY3Rpb24oYS5jdHgse3hheGlzOngseWF4aXM6eX0pfX19LHtrZXk6InBhbkRyYWdnaW5nIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmNvbnRleHQsaT10aGlzLncscz1lO2lmKHZvaWQgMCE9PWkuZ2xvYmFscy5sYXN0Q2xpZW50UG9zaXRpb24ueCl7dmFyIGE9aS5nbG9iYWxzLmxhc3RDbGllbnRQb3NpdGlvbi54LXMuY2xpZW50WCxuPWkuZ2xvYmFscy5sYXN0Q2xpZW50UG9zaXRpb24ueS1zLmNsaWVudFk7TWF0aC5hYnMoYSk+TWF0aC5hYnMobikmJmE+MD90aGlzLm1vdmVEaXJlY3Rpb249ImxlZnQiOk1hdGguYWJzKGEpPk1hdGguYWJzKG4pJiZhPDA/dGhpcy5tb3ZlRGlyZWN0aW9uPSJyaWdodCI6TWF0aC5hYnMobik+TWF0aC5hYnMoYSkmJm4+MD90aGlzLm1vdmVEaXJlY3Rpb249InVwIjpNYXRoLmFicyhuKT5NYXRoLmFicyhhKSYmbjwwJiYodGhpcy5tb3ZlRGlyZWN0aW9uPSJkb3duIil9aS5nbG9iYWxzLmxhc3RDbGllbnRQb3NpdGlvbj17eDpzLmNsaWVudFgseTpzLmNsaWVudFl9O3ZhciByPWkuZ2xvYmFscy5pc1JhbmdlQmFyP2kuZ2xvYmFscy5taW5ZOmkuZ2xvYmFscy5taW5YLG89aS5nbG9iYWxzLmlzUmFuZ2VCYXI/aS5nbG9iYWxzLm1heFk6aS5nbG9iYWxzLm1heFg7aS5jb25maWcueGF4aXMuY29udmVydGVkQ2F0VG9OdW1lcmljfHxzLnBhblNjcm9sbGVkKHIsbyl9fSx7a2V5OiJkZWxheWVkUGFuU2Nyb2xsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53LGU9dC5nbG9iYWxzLm1pblgsaT10Lmdsb2JhbHMubWF4WCxzPSh0Lmdsb2JhbHMubWF4WC10Lmdsb2JhbHMubWluWCkvMjsibGVmdCI9PT10aGlzLm1vdmVEaXJlY3Rpb24/KGU9dC5nbG9iYWxzLm1pblgrcyxpPXQuZ2xvYmFscy5tYXhYK3MpOiJyaWdodCI9PT10aGlzLm1vdmVEaXJlY3Rpb24mJihlPXQuZ2xvYmFscy5taW5YLXMsaT10Lmdsb2JhbHMubWF4WC1zKSxlPU1hdGguZmxvb3IoZSksaT1NYXRoLmZsb29yKGkpLHRoaXMudXBkYXRlU2Nyb2xsZWRDaGFydCh7eGF4aXM6e21pbjplLG1heDppfX0sZSxpKX19LHtrZXk6InBhblNjcm9sbGVkIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudyxzPXRoaXMueHlSYXRpb3MsYT1iLmNsb25lKGkuZ2xvYmFscy5pbml0aWFsQ29uZmlnLnlheGlzKSxuPXMueFJhdGlvLHI9aS5nbG9iYWxzLm1pblgsbz1pLmdsb2JhbHMubWF4WDtpLmdsb2JhbHMuaXNSYW5nZUJhciYmKG49cy5pbnZlcnRlZFlSYXRpbyxyPWkuZ2xvYmFscy5taW5ZLG89aS5nbG9iYWxzLm1heFkpLCJsZWZ0Ij09PXRoaXMubW92ZURpcmVjdGlvbj8odD1yK2kuZ2xvYmFscy5ncmlkV2lkdGgvMTUqbixlPW8raS5nbG9iYWxzLmdyaWRXaWR0aC8xNSpuKToicmlnaHQiPT09dGhpcy5tb3ZlRGlyZWN0aW9uJiYodD1yLWkuZ2xvYmFscy5ncmlkV2lkdGgvMTUqbixlPW8taS5nbG9iYWxzLmdyaWRXaWR0aC8xNSpuKSxpLmdsb2JhbHMuaXNSYW5nZUJhcnx8KHQ8aS5nbG9iYWxzLmluaXRpYWxNaW5YfHxlPmkuZ2xvYmFscy5pbml0aWFsTWF4WCkmJih0PXIsZT1vKTt2YXIgbD17bWluOnQsbWF4OmV9O2kuY29uZmlnLmNoYXJ0Lnpvb20uYXV0b1NjYWxlWWF4aXMmJihhPW5ldyBxKHRoaXMuY3R4KS5hdXRvU2NhbGVZKHRoaXMuY3R4LGEse3hheGlzOmx9KSk7dmFyIGM9e3hheGlzOnttaW46dCxtYXg6ZX19O2kuY29uZmlnLmNoYXJ0Lmdyb3VwfHwoYy55YXhpcz1hKSx0aGlzLnVwZGF0ZVNjcm9sbGVkQ2hhcnQoYyx0LGUpfX0se2tleToidXBkYXRlU2Nyb2xsZWRDaGFydCIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXMudzt0aGlzLmN0eC51cGRhdGVIZWxwZXJzLl91cGRhdGVPcHRpb25zKHQsITEsITEpLCJmdW5jdGlvbiI9PXR5cGVvZiBzLmNvbmZpZy5jaGFydC5ldmVudHMuc2Nyb2xsZWQmJnMuY29uZmlnLmNoYXJ0LmV2ZW50cy5zY3JvbGxlZCh0aGlzLmN0eCx7eGF4aXM6e21pbjplLG1heDppfX0pfX1dKSxpfSgpLGd0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy53PWUudyx0aGlzLnR0Q3R4PWUsdGhpcy5jdHg9ZS5jdHh9cmV0dXJuIGModCxbe2tleToiZ2V0TmVhcmVzdFZhbHVlcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5ob3ZlckFyZWEsaT10LmVsR3JpZCxzPXQuY2xpZW50WCxhPXQuY2xpZW50WSxuPXRoaXMudyxyPWkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1yLndpZHRoLGw9ci5oZWlnaHQsYz1vLyhuLmdsb2JhbHMuZGF0YVBvaW50cy0xKSxoPWwvbi5nbG9iYWxzLmRhdGFQb2ludHMsZD10aGlzLmhhc0JhcnMoKTshbi5nbG9iYWxzLmNvbWJvQ2hhcnRzJiYhZHx8bi5jb25maWcueGF4aXMuY29udmVydGVkQ2F0VG9OdW1lcmljfHwoYz1vL24uZ2xvYmFscy5kYXRhUG9pbnRzKTt2YXIgdT1zLXIubGVmdC1uLmdsb2JhbHMuYmFyUGFkRm9yTnVtZXJpY0F4aXMscD1hLXIudG9wO3U8MHx8cDwwfHx1Pm98fHA+bD8oZS5jbGFzc0xpc3QucmVtb3ZlKCJob3ZlcmluZy16b29tIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJob3ZlcmluZy1wYW4iKSk6bi5nbG9iYWxzLnpvb21FbmFibGVkPyhlLmNsYXNzTGlzdC5yZW1vdmUoImhvdmVyaW5nLXBhbiIpLGUuY2xhc3NMaXN0LmFkZCgiaG92ZXJpbmctem9vbSIpKTpuLmdsb2JhbHMucGFuRW5hYmxlZCYmKGUuY2xhc3NMaXN0LnJlbW92ZSgiaG92ZXJpbmctem9vbSIpLGUuY2xhc3NMaXN0LmFkZCgiaG92ZXJpbmctcGFuIikpO3ZhciBnPU1hdGgucm91bmQodS9jKSxmPU1hdGguZmxvb3IocC9oKTtkJiYhbi5jb25maWcueGF4aXMuY29udmVydGVkQ2F0VG9OdW1lcmljJiYoZz1NYXRoLmNlaWwodS9jKSxnLT0xKTt2YXIgbT1udWxsLHY9bnVsbCx4PVtdLHk9W107aWYobi5nbG9iYWxzLnNlcmllc1h2YWx1ZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7eC5wdXNoKFt0WzBdKzFlLTZdLmNvbmNhdCh0KSl9KSksbi5nbG9iYWxzLnNlcmllc1l2YWx1ZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7eS5wdXNoKFt0WzBdKzFlLTZdLmNvbmNhdCh0KSl9KSkseD14Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gYi5pc051bWJlcih0KX0pKX0pKSx5PXkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBiLmlzTnVtYmVyKHQpfSkpfSkpLG4uZ2xvYmFscy5pc1hOdW1lcmljKXt2YXIgdz10aGlzLnR0Q3R4LmdldEVsR3JpZCgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGs9dSoody53aWR0aC9vKSxTPXAqKHcuaGVpZ2h0L2wpO209KHY9dGhpcy5jbG9zZXN0SW5NdWx0aUFycmF5KGssUyx4LHkpKS5pbmRleCxnPXYuaixudWxsIT09bSYmKHg9bi5nbG9iYWxzLnNlcmllc1h2YWx1ZXNbbV0sZz0odj10aGlzLmNsb3Nlc3RJbkFycmF5KGsseCkpLmluZGV4KX1yZXR1cm4gbi5nbG9iYWxzLmNhcHR1cmVkU2VyaWVzSW5kZXg9bnVsbD09PW0/LTE6bSwoIWd8fGc8MSkmJihnPTApLG4uZ2xvYmFscy5pc0Jhckhvcml6b250YWw/bi5nbG9iYWxzLmNhcHR1cmVkRGF0YVBvaW50SW5kZXg9ZjpuLmdsb2JhbHMuY2FwdHVyZWREYXRhUG9pbnRJbmRleD1nLHtjYXB0dXJlZFNlcmllczptLGo6bi5nbG9iYWxzLmlzQmFySG9yaXpvbnRhbD9mOmcsaG92ZXJYOnUsaG92ZXJZOnB9fX0se2tleToiY2xvc2VzdEluTXVsdGlBcnJheSIsdmFsdWU6ZnVuY3Rpb24odCxlLGkscyl7dmFyIGE9dGhpcy53LG49MCxyPW51bGwsbz0tMTthLmdsb2JhbHMuc2VyaWVzLmxlbmd0aD4xP249dGhpcy5nZXRGaXJzdEFjdGl2ZVhBcnJheShpKTpyPTA7dmFyIGw9aVtuXVswXSxjPU1hdGguYWJzKHQtbCk7aWYoaS5mb3JFYWNoKChmdW5jdGlvbihlKXtlLmZvckVhY2goKGZ1bmN0aW9uKGUsaSl7dmFyIHM9TWF0aC5hYnModC1lKTtzPGMmJihjPXMsbz1pKX0pKX0pKSwtMSE9PW8pe3ZhciBoPXNbbl1bb10sZD1NYXRoLmFicyhlLWgpO3I9bixzLmZvckVhY2goKGZ1bmN0aW9uKHQsaSl7dmFyIHM9TWF0aC5hYnMoZS10W29dKTtzPGQmJihkPXMscj1pKX0pKX1yZXR1cm57aW5kZXg6cixqOm99fX0se2tleToiZ2V0Rmlyc3RBY3RpdmVYQXJyYXkiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLncsaT0wLHM9dC5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubGVuZ3RoPjA/ZTotMX0pKSxhPTA7YTxzLmxlbmd0aDthKyspaWYoLTEhPT1zW2FdJiYtMT09PWUuZ2xvYmFscy5jb2xsYXBzZWRTZXJpZXNJbmRpY2VzLmluZGV4T2YoYSkmJi0xPT09ZS5nbG9iYWxzLmFuY2lsbGFyeUNvbGxhcHNlZFNlcmllc0luZGljZXMuaW5kZXhPZihhKSl7aT1zW2FdO2JyZWFrfXJldHVybiBpfX0se2tleToiY2xvc2VzdEluQXJyYXkiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBpPWVbMF0scz1udWxsLGE9TWF0aC5hYnModC1pKSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPU1hdGguYWJzKHQtZVtuXSk7cjxhJiYoYT1yLHM9bil9cmV0dXJue2luZGV4OnN9fX0se2tleToiaXNYb3ZlcmxhcCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9W10saT10aGlzLncuZ2xvYmFscy5zZXJpZXNYLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PXRbMF19KSk7aWYoaS5sZW5ndGg+MClmb3IodmFyIHM9MDtzPGkubGVuZ3RoLTE7cysrKXZvaWQgMCE9PWlbc11bdF0mJnZvaWQgMCE9PWlbcysxXVt0XSYmaVtzXVt0XSE9PWlbcysxXVt0XSYmZS5wdXNoKCJ1bkVxdWFsIik7cmV0dXJuIDA9PT1lLmxlbmd0aH19LHtrZXk6ImlzSW5pdGlhbFNlcmllc1NhbWVMZW4iLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PSEwLGU9dGhpcy53Lmdsb2JhbHMuaW5pdGlhbFNlcmllcyxpPTA7aTxlLmxlbmd0aC0xO2krKylpZihlW2ldLmRhdGEubGVuZ3RoIT09ZVtpKzFdLmRhdGEubGVuZ3RoKXt0PSExO2JyZWFrfXJldHVybiB0fX0se2tleToiZ2V0QmFyc0hlaWdodCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIG0odCkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2UuZ2V0QkJveCgpLmhlaWdodH0pLDApfX0se2tleToiZ2V0RWxNYXJrZXJzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLncuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoIiAuYXBleGNoYXJ0cy1zZXJpZXMtbWFya2VycyIpfX0se2tleToiZ2V0QWxsTWFya2VycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLncuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hcGV4Y2hhcnRzLXNlcmllcy1tYXJrZXJzLXdyYXAiKTsodD1tKHQpKS5zb3J0KChmdW5jdGlvbih0LGUpe3ZhciBpPU51bWJlcih0LmdldEF0dHJpYnV0ZSgiZGF0YTpyZWFsSW5kZXgiKSkscz1OdW1iZXIoZS5nZXRBdHRyaWJ1dGUoImRhdGE6cmVhbEluZGV4IikpO3JldHVybiBzPGk/MTpzPmk/LTE6MH0pKTt2YXIgZT1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtlLnB1c2godC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy1tYXJrZXIiKSl9KSksZX19LHtrZXk6Imhhc01hcmtlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RWxNYXJrZXJzKCkubGVuZ3RoPjB9fSx7a2V5OiJnZXRFbEJhcnMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudy5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvckFsbCgiLmFwZXhjaGFydHMtYmFyLXNlcmllcywgIC5hcGV4Y2hhcnRzLWNhbmRsZXN0aWNrLXNlcmllcywgLmFwZXhjaGFydHMtYm94UGxvdC1zZXJpZXMsIC5hcGV4Y2hhcnRzLXJhbmdlYmFyLXNlcmllcyIpfX0se2tleToiaGFzQmFycyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRFbEJhcnMoKS5sZW5ndGg+MH19LHtrZXk6ImdldEhvdmVyTWFya2VyU2l6ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53LGk9ZS5jb25maWcubWFya2Vycy5ob3Zlci5zaXplO3JldHVybiB2b2lkIDA9PT1pJiYoaT1lLmdsb2JhbHMubWFya2Vycy5zaXplW3RdK2UuY29uZmlnLm1hcmtlcnMuaG92ZXIuc2l6ZU9mZnNldCksaX19LHtrZXk6InRvZ2dsZUFsbFRvb2x0aXBTZXJpZXNHcm91cHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudyxpPXRoaXMudHRDdHg7MD09PWkuYWxsVG9vbHRpcFNlcmllc0dyb3Vwcy5sZW5ndGgmJihpLmFsbFRvb2x0aXBTZXJpZXNHcm91cHM9ZS5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvckFsbCgiLmFwZXhjaGFydHMtdG9vbHRpcC1zZXJpZXMtZ3JvdXAiKSk7Zm9yKHZhciBzPWkuYWxsVG9vbHRpcFNlcmllc0dyb3VwcyxhPTA7YTxzLmxlbmd0aDthKyspImVuYWJsZSI9PT10PyhzW2FdLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtYWN0aXZlIiksc1thXS5zdHlsZS5kaXNwbGF5PWUuY29uZmlnLnRvb2x0aXAuaXRlbXMuZGlzcGxheSk6KHNbYV0uY2xhc3NMaXN0LnJlbW92ZSgiYXBleGNoYXJ0cy1hY3RpdmUiKSxzW2FdLnN0eWxlLmRpc3BsYXk9Im5vbmUiKX19XSksdH0oKSxmdD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMudz1lLncsdGhpcy5jdHg9ZS5jdHgsdGhpcy50dEN0eD1lLHRoaXMudG9vbHRpcFV0aWw9bmV3IGd0KGUpfXJldHVybiBjKHQsW3trZXk6ImRyYXdTZXJpZXNUZXh0cyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5zaGFyZWQsaT12b2lkIDA9PT1lfHxlLHM9dC50dEl0ZW1zLGE9dC5pLG49dm9pZCAwPT09YT8wOmEscj10Lmosbz12b2lkIDA9PT1yP251bGw6cixsPXQueTEsYz10LnkyLGg9dC5lLGQ9dGhpcy53O3ZvaWQgMCE9PWQuY29uZmlnLnRvb2x0aXAuY3VzdG9tP3RoaXMuaGFuZGxlQ3VzdG9tVG9vbHRpcCh7aTpuLGo6byx5MTpsLHkyOmMsdzpkfSk6dGhpcy50b2dnbGVBY3RpdmVJbmFjdGl2ZVNlcmllcyhpKTt2YXIgdT10aGlzLmdldFZhbHVlc1RvUHJpbnQoe2k6bixqOm99KTt0aGlzLnByaW50TGFiZWxzKHtpOm4sajpvLHZhbHVlczp1LHR0SXRlbXM6cyxzaGFyZWQ6aSxlOmh9KTt2YXIgcD10aGlzLnR0Q3R4LmdldEVsVG9vbHRpcCgpO3RoaXMudHRDdHgudG9vbHRpcFJlY3QudHRXaWR0aD1wLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLHRoaXMudHRDdHgudG9vbHRpcFJlY3QudHRIZWlnaHQ9cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHR9fSx7a2V5OiJwcmludExhYmVscyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsaT10aGlzLHM9dC5pLGE9dC5qLHI9dC52YWx1ZXMsbz10LnR0SXRlbXMsbD10LnNoYXJlZCxjPXQuZSxoPXRoaXMudyxkPVtdLHU9ZnVuY3Rpb24odCl7cmV0dXJuIGguZ2xvYmFscy5zZXJpZXNHb2Fsc1t0XSYmaC5nbG9iYWxzLnNlcmllc0dvYWxzW3RdW2FdJiZBcnJheS5pc0FycmF5KGguZ2xvYmFscy5zZXJpZXNHb2Fsc1t0XVthXSl9LHA9ci54VmFsLGc9ci56VmFsLGY9ci54QXhpc1RUVmFsLG09IiIsdj1oLmdsb2JhbHMuY29sb3JzW3NdO251bGwhPT1hJiZoLmNvbmZpZy5wbG90T3B0aW9ucy5iYXIuZGlzdHJpYnV0ZWQmJih2PWguZ2xvYmFscy5jb2xvcnNbYV0pO2Zvcih2YXIgeD1mdW5jdGlvbih0LHIpe3ZhciB4PWkuZ2V0Rm9ybWF0dGVycyhzKTttPWkuZ2V0U2VyaWVzTmFtZSh7Zm46eC55TGJUaXRsZUZvcm1hdHRlcixpbmRleDpzLHNlcmllc0luZGV4OnMsajphfSksInRyZWVtYXAiPT09aC5jb25maWcuY2hhcnQudHlwZSYmKG09eC55TGJUaXRsZUZvcm1hdHRlcihTdHJpbmcoaC5jb25maWcuc2VyaWVzW3NdLmRhdGFbYV0ueCkse3NlcmllczpoLmdsb2JhbHMuc2VyaWVzLHNlcmllc0luZGV4OnMsZGF0YVBvaW50SW5kZXg6YSx3Omh9KSk7dmFyIGI9aC5jb25maWcudG9vbHRpcC5pbnZlcnNlT3JkZXI/cjp0O2lmKGguZ2xvYmFscy5heGlzQ2hhcnRzKXt2YXIgeT1mdW5jdGlvbih0KXtyZXR1cm4geC55TGJGb3JtYXR0ZXIoaC5nbG9iYWxzLnNlcmllc1t0XVthXSx7c2VyaWVzOmguZ2xvYmFscy5zZXJpZXMsc2VyaWVzSW5kZXg6dCxkYXRhUG9pbnRJbmRleDphLHc6aH0pfTtpZihsKXg9aS5nZXRGb3JtYXR0ZXJzKGIpLG09aS5nZXRTZXJpZXNOYW1lKHtmbjp4LnlMYlRpdGxlRm9ybWF0dGVyLGluZGV4OmIsc2VyaWVzSW5kZXg6cyxqOmF9KSx2PWguZ2xvYmFscy5jb2xvcnNbYl0sZT15KGIpLHUoYikmJihkPWguZ2xvYmFscy5zZXJpZXNHb2Fsc1tiXVthXS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybnthdHRyczp0LHZhbDp4LnlMYkZvcm1hdHRlcih0LnZhbHVlLHtzZXJpZXNJbmRleDpiLGRhdGFQb2ludEluZGV4OmEsdzpofSl9fSkpKTtlbHNle3ZhciB3LGs9bnVsbD09Y3x8bnVsbD09PSh3PWMudGFyZ2V0KXx8dm9pZCAwPT09dz92b2lkIDA6dy5nZXRBdHRyaWJ1dGUoImZpbGwiKTtrJiYodj0tMSE9PWsuaW5kZXhPZigidXJsIik/ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihrLnN1YnN0cig0KS5zbGljZSgwLC0xKSkuY2hpbGROb2Rlc1swXS5nZXRBdHRyaWJ1dGUoInN0cm9rZSIpOmspLGU9eShzKSx1KHMpJiZBcnJheS5pc0FycmF5KGguZ2xvYmFscy5zZXJpZXNHb2Fsc1tzXVthXSkmJihkPWguZ2xvYmFscy5zZXJpZXNHb2Fsc1tzXVthXS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybnthdHRyczp0LHZhbDp4LnlMYkZvcm1hdHRlcih0LnZhbHVlLHtzZXJpZXNJbmRleDpzLGRhdGFQb2ludEluZGV4OmEsdzpofSl9fSkpKX19bnVsbD09PWEmJihlPXgueUxiRm9ybWF0dGVyKGguZ2xvYmFscy5zZXJpZXNbc10sbihuKHt9LGgpLHt9LHtzZXJpZXNJbmRleDpzLGRhdGFQb2ludEluZGV4OnN9KSkpLGkuRE9NSGFuZGxpbmcoe2k6cyx0OmIsajphLHR0SXRlbXM6byx2YWx1ZXM6e3ZhbDplLGdvYWxWYWxzOmQseFZhbDpwLHhBeGlzVFRWYWw6Zix6VmFsOmd9LHNlcmllc05hbWU6bSxzaGFyZWQ6bCxwQ29sb3I6dn0pfSxiPTAseT1oLmdsb2JhbHMuc2VyaWVzLmxlbmd0aC0xO2I8aC5nbG9iYWxzLnNlcmllcy5sZW5ndGg7YisrLHktLSl4KGIseSl9fSx7a2V5OiJnZXRGb3JtYXR0ZXJzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpPXRoaXMudyxzPWkuZ2xvYmFscy55TGFiZWxGb3JtYXR0ZXJzW3RdO3JldHVybiB2b2lkIDAhPT1pLmdsb2JhbHMudHRWYWw/QXJyYXkuaXNBcnJheShpLmdsb2JhbHMudHRWYWwpPyhzPWkuZ2xvYmFscy50dFZhbFt0XSYmaS5nbG9iYWxzLnR0VmFsW3RdLmZvcm1hdHRlcixlPWkuZ2xvYmFscy50dFZhbFt0XSYmaS5nbG9iYWxzLnR0VmFsW3RdLnRpdGxlJiZpLmdsb2JhbHMudHRWYWxbdF0udGl0bGUuZm9ybWF0dGVyKToocz1pLmdsb2JhbHMudHRWYWwuZm9ybWF0dGVyLCJmdW5jdGlvbiI9PXR5cGVvZiBpLmdsb2JhbHMudHRWYWwudGl0bGUuZm9ybWF0dGVyJiYoZT1pLmdsb2JhbHMudHRWYWwudGl0bGUuZm9ybWF0dGVyKSk6ZT1pLmNvbmZpZy50b29sdGlwLnkudGl0bGUuZm9ybWF0dGVyLCJmdW5jdGlvbiIhPXR5cGVvZiBzJiYocz1pLmdsb2JhbHMueUxhYmVsRm9ybWF0dGVyc1swXT9pLmdsb2JhbHMueUxhYmVsRm9ybWF0dGVyc1swXTpmdW5jdGlvbih0KXtyZXR1cm4gdH0pLCJmdW5jdGlvbiIhPXR5cGVvZiBlJiYoZT1mdW5jdGlvbih0KXtyZXR1cm4gdH0pLHt5TGJGb3JtYXR0ZXI6cyx5TGJUaXRsZUZvcm1hdHRlcjplfX19LHtrZXk6ImdldFNlcmllc05hbWUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuZm4saT10LmluZGV4LHM9dC5zZXJpZXNJbmRleCxhPXQuaixuPXRoaXMudztyZXR1cm4gZShTdHJpbmcobi5nbG9iYWxzLnNlcmllc05hbWVzW2ldKSx7c2VyaWVzOm4uZ2xvYmFscy5zZXJpZXMsc2VyaWVzSW5kZXg6cyxkYXRhUG9pbnRJbmRleDphLHc6bn0pfX0se2tleToiRE9NSGFuZGxpbmciLHZhbHVlOmZ1bmN0aW9uKHQpe3QuaTt2YXIgZT10LnQsaT10Lmoscz10LnR0SXRlbXMsYT10LnZhbHVlcyxuPXQuc2VyaWVzTmFtZSxyPXQuc2hhcmVkLG89dC5wQ29sb3IsbD10aGlzLncsYz10aGlzLnR0Q3R4LGg9YS52YWwsZD1hLmdvYWxWYWxzLHU9YS54VmFsLHA9YS54QXhpc1RUVmFsLGc9YS56VmFsLGY9bnVsbDtmPXNbZV0uY2hpbGRyZW4sbC5jb25maWcudG9vbHRpcC5maWxsU2VyaWVzQ29sb3ImJihzW2VdLnN0eWxlLmJhY2tncm91bmRDb2xvcj1vLGZbMF0uc3R5bGUuZGlzcGxheT0ibm9uZSIpLGMuc2hvd1Rvb2x0aXBUaXRsZSYmKG51bGw9PT1jLnRvb2x0aXBUaXRsZSYmKGMudG9vbHRpcFRpdGxlPWwuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLXRvb2x0aXAtdGl0bGUiKSksYy50b29sdGlwVGl0bGUuaW5uZXJIVE1MPXUpLGMuaXNYQXhpc1Rvb2x0aXBFbmFibGVkJiYoYy54YXhpc1Rvb2x0aXBUZXh0LmlubmVySFRNTD0iIiE9PXA/cDp1KTt2YXIgbT1zW2VdLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLXRvb2x0aXAtdGV4dC15LWxhYmVsIik7bSYmKG0uaW5uZXJIVE1MPW58fCIiKTt2YXIgdj1zW2VdLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLXRvb2x0aXAtdGV4dC15LXZhbHVlIik7diYmKHYuaW5uZXJIVE1MPXZvaWQgMCE9PWg/aDoiIiksZlswXSYmZlswXS5jbGFzc0xpc3QuY29udGFpbnMoImFwZXhjaGFydHMtdG9vbHRpcC1tYXJrZXIiKSYmKGwuY29uZmlnLnRvb2x0aXAubWFya2VyLmZpbGxDb2xvcnMmJkFycmF5LmlzQXJyYXkobC5jb25maWcudG9vbHRpcC5tYXJrZXIuZmlsbENvbG9ycykmJihvPWwuY29uZmlnLnRvb2x0aXAubWFya2VyLmZpbGxDb2xvcnNbZV0pLGZbMF0uc3R5bGUuYmFja2dyb3VuZENvbG9yPW8pLGwuY29uZmlnLnRvb2x0aXAubWFya2VyLnNob3d8fChmWzBdLnN0eWxlLmRpc3BsYXk9Im5vbmUiKTt2YXIgeD1zW2VdLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLXRvb2x0aXAtdGV4dC1nb2Fscy1sYWJlbCIpLGI9c1tlXS5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy10b29sdGlwLXRleHQtZ29hbHMtdmFsdWUiKTtpZihkLmxlbmd0aCYmbC5nbG9iYWxzLnNlcmllc0dvYWxzW2VdKXt2YXIgeT1mdW5jdGlvbigpe3ZhciB0PSI8ZGl2ID4iLGU9IjxkaXY+IjtkLmZvckVhY2goKGZ1bmN0aW9uKGkscyl7dCs9JyA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4Ij48c3BhbiBjbGFzcz0iYXBleGNoYXJ0cy10b29sdGlwLW1hcmtlciIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICcuY29uY2F0KGkuYXR0cnMuc3Ryb2tlQ29sb3IsJzsgaGVpZ2h0OiAzcHg7IGJvcmRlci1yYWRpdXM6IDA7IHRvcDogNXB4OyI+PC9zcGFuPiAnKS5jb25jYXQoaS5hdHRycy5uYW1lLCI8L2Rpdj4iKSxlKz0iPGRpdj4iLmNvbmNhdChpLnZhbCwiPC9kaXY+Iil9KSkseC5pbm5lckhUTUw9dCsiPC9kaXY+IixiLmlubmVySFRNTD1lKyI8L2Rpdj4ifTtyP2wuZ2xvYmFscy5zZXJpZXNHb2Fsc1tlXVtpXSYmQXJyYXkuaXNBcnJheShsLmdsb2JhbHMuc2VyaWVzR29hbHNbZV1baV0pP3koKTooeC5pbm5lckhUTUw9IiIsYi5pbm5lckhUTUw9IiIpOnkoKX1lbHNlIHguaW5uZXJIVE1MPSIiLGIuaW5uZXJIVE1MPSIiO251bGwhPT1nJiYoc1tlXS5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy10b29sdGlwLXRleHQtei1sYWJlbCIpLmlubmVySFRNTD1sLmNvbmZpZy50b29sdGlwLnoudGl0bGUsc1tlXS5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy10b29sdGlwLXRleHQtei12YWx1ZSIpLmlubmVySFRNTD12b2lkIDAhPT1nP2c6IiIpLHImJmZbMF0mJihudWxsPT1ofHxsLmdsb2JhbHMuYW5jaWxsYXJ5Q29sbGFwc2VkU2VyaWVzSW5kaWNlcy5pbmRleE9mKGUpPi0xfHxsLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzSW5kaWNlcy5pbmRleE9mKGUpPi0xP2ZbMF0ucGFyZW50Tm9kZS5zdHlsZS5kaXNwbGF5PSJub25lIjpmWzBdLnBhcmVudE5vZGUuc3R5bGUuZGlzcGxheT1sLmNvbmZpZy50b29sdGlwLml0ZW1zLmRpc3BsYXkpfX0se2tleToidG9nZ2xlQWN0aXZlSW5hY3RpdmVTZXJpZXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudztpZih0KXRoaXMudG9vbHRpcFV0aWwudG9nZ2xlQWxsVG9vbHRpcFNlcmllc0dyb3VwcygiZW5hYmxlIik7ZWxzZXt0aGlzLnRvb2x0aXBVdGlsLnRvZ2dsZUFsbFRvb2x0aXBTZXJpZXNHcm91cHMoImRpc2FibGUiKTt2YXIgaT1lLmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy10b29sdGlwLXNlcmllcy1ncm91cCIpO2kmJihpLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtYWN0aXZlIiksaS5zdHlsZS5kaXNwbGF5PWUuY29uZmlnLnRvb2x0aXAuaXRlbXMuZGlzcGxheSl9fX0se2tleToiZ2V0VmFsdWVzVG9QcmludCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5pLGk9dC5qLHM9dGhpcy53LGE9dGhpcy5jdHguc2VyaWVzLmZpbHRlcmVkU2VyaWVzWCgpLG49IiIscj0iIixvPW51bGwsbD1udWxsLGM9e3NlcmllczpzLmdsb2JhbHMuc2VyaWVzLHNlcmllc0luZGV4OmUsZGF0YVBvaW50SW5kZXg6aSx3OnN9LGg9cy5nbG9iYWxzLnR0WkZvcm1hdHRlcjtudWxsPT09aT9sPXMuZ2xvYmFscy5zZXJpZXNbZV06cy5nbG9iYWxzLmlzWE51bWVyaWMmJiJ0cmVlbWFwIiE9PXMuY29uZmlnLmNoYXJ0LnR5cGU/KG49YVtlXVtpXSwwPT09YVtlXS5sZW5ndGgmJihuPWFbdGhpcy50b29sdGlwVXRpbC5nZXRGaXJzdEFjdGl2ZVhBcnJheShhKV1baV0pKTpuPXZvaWQgMCE9PXMuZ2xvYmFscy5sYWJlbHNbaV0/cy5nbG9iYWxzLmxhYmVsc1tpXToiIjt2YXIgZD1uO3JldHVybiBuPXMuZ2xvYmFscy5pc1hOdW1lcmljJiYiZGF0ZXRpbWUiPT09cy5jb25maWcueGF4aXMudHlwZT9uZXcgJCh0aGlzLmN0eCkueExhYmVsRm9ybWF0KHMuZ2xvYmFscy50dEtleUZvcm1hdHRlcixkLGQse2k6dm9pZCAwLGRhdGVGb3JtYXR0ZXI6bmV3IE8odGhpcy5jdHgpLmZvcm1hdERhdGUsdzp0aGlzLnd9KTpzLmdsb2JhbHMuaXNCYXJIb3Jpem9udGFsP3MuZ2xvYmFscy55TGFiZWxGb3JtYXR0ZXJzWzBdKGQsYyk6cy5nbG9iYWxzLnhMYWJlbEZvcm1hdHRlcihkLGMpLHZvaWQgMCE9PXMuY29uZmlnLnRvb2x0aXAueC5mb3JtYXR0ZXImJihuPXMuZ2xvYmFscy50dEtleUZvcm1hdHRlcihkLGMpKSxzLmdsb2JhbHMuc2VyaWVzWi5sZW5ndGg+MCYmcy5nbG9iYWxzLnNlcmllc1pbZV0ubGVuZ3RoPjAmJihvPWgocy5nbG9iYWxzLnNlcmllc1pbZV1baV0scykpLHI9ImZ1bmN0aW9uIj09dHlwZW9mIHMuY29uZmlnLnhheGlzLnRvb2x0aXAuZm9ybWF0dGVyP3MuZ2xvYmFscy54YXhpc1Rvb2x0aXBGb3JtYXR0ZXIoZCxjKTpuLHt2YWw6QXJyYXkuaXNBcnJheShsKT9sLmpvaW4oIiAiKTpsLHhWYWw6QXJyYXkuaXNBcnJheShuKT9uLmpvaW4oIiAiKTpuLHhBeGlzVFRWYWw6QXJyYXkuaXNBcnJheShyKT9yLmpvaW4oIiAiKTpyLHpWYWw6b319fSx7a2V5OiJoYW5kbGVDdXN0b21Ub29sdGlwIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmksaT10Lmoscz10LnkxLGE9dC55MixuPXQudyxyPXRoaXMudHRDdHguZ2V0RWxUb29sdGlwKCksbz1uLmNvbmZpZy50b29sdGlwLmN1c3RvbTtBcnJheS5pc0FycmF5KG8pJiZvW2VdJiYobz1vW2VdKSxyLmlubmVySFRNTD1vKHtjdHg6dGhpcy5jdHgsc2VyaWVzOm4uZ2xvYmFscy5zZXJpZXMsc2VyaWVzSW5kZXg6ZSxkYXRhUG9pbnRJbmRleDppLHkxOnMseTI6YSx3Om59KX19XSksdH0oKSxtdD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMudHRDdHg9ZSx0aGlzLmN0eD1lLmN0eCx0aGlzLnc9ZS53fXJldHVybiBjKHQsW3trZXk6Im1vdmVYQ3Jvc3NoYWlycyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGwsaT10aGlzLnR0Q3R4LHM9dGhpcy53LGE9aS5nZXRFbFhDcm9zc2hhaXJzKCksbj10LWkueGNyb3NzaGFpcnNXaWR0aC8yLHI9cy5nbG9iYWxzLmxhYmVscy5zbGljZSgpLmxlbmd0aDtpZihudWxsIT09ZSYmKG49cy5nbG9iYWxzLmdyaWRXaWR0aC9yKmUpLG51bGw9PT1hfHxzLmdsb2JhbHMuaXNCYXJIb3Jpem9udGFsfHwoYS5zZXRBdHRyaWJ1dGUoIngiLG4pLGEuc2V0QXR0cmlidXRlKCJ4MSIsbiksYS5zZXRBdHRyaWJ1dGUoIngyIixuKSxhLnNldEF0dHJpYnV0ZSgieTIiLHMuZ2xvYmFscy5ncmlkSGVpZ2h0KSxhLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtYWN0aXZlIikpLG48MCYmKG49MCksbj5zLmdsb2JhbHMuZ3JpZFdpZHRoJiYobj1zLmdsb2JhbHMuZ3JpZFdpZHRoKSxpLmlzWEF4aXNUb29sdGlwRW5hYmxlZCl7dmFyIG89bjsidGlja1dpZHRoIiE9PXMuY29uZmlnLnhheGlzLmNyb3NzaGFpcnMud2lkdGgmJiJiYXJXaWR0aCIhPT1zLmNvbmZpZy54YXhpcy5jcm9zc2hhaXJzLndpZHRofHwobz1uK2kueGNyb3NzaGFpcnNXaWR0aC8yKSx0aGlzLm1vdmVYQXhpc1Rvb2x0aXAobyl9fX0se2tleToibW92ZVlDcm9zc2hhaXJzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnR0Q3R4O251bGwhPT1lLnljcm9zc2hhaXJzJiZrLnNldEF0dHJzKGUueWNyb3NzaGFpcnMse3kxOnQseTI6dH0pLG51bGwhPT1lLnljcm9zc2hhaXJzSGlkZGVuJiZrLnNldEF0dHJzKGUueWNyb3NzaGFpcnNIaWRkZW4se3kxOnQseTI6dH0pfX0se2tleToibW92ZVhBeGlzVG9vbHRpcCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53LGk9dGhpcy50dEN0eDtpZihudWxsIT09aS54YXhpc1Rvb2x0aXAmJjAhPT1pLnhjcm9zc2hhaXJzV2lkdGgpe2kueGF4aXNUb29sdGlwLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtYWN0aXZlIik7dmFyIHMsYT1pLnhheGlzT2ZmWStlLmNvbmZpZy54YXhpcy50b29sdGlwLm9mZnNldFkrZS5nbG9iYWxzLnRyYW5zbGF0ZVkrMStlLmNvbmZpZy54YXhpcy5vZmZzZXRZO3QtPWkueGF4aXNUb29sdGlwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLzIsaXNOYU4odCl8fCh0Kz1lLmdsb2JhbHMudHJhbnNsYXRlWCxzPW5ldyBrKHRoaXMuY3R4KS5nZXRUZXh0UmVjdHMoaS54YXhpc1Rvb2x0aXBUZXh0LmlubmVySFRNTCksaS54YXhpc1Rvb2x0aXBUZXh0LnN0eWxlLm1pbldpZHRoPXMud2lkdGgrInB4IixpLnhheGlzVG9vbHRpcC5zdHlsZS5sZWZ0PXQrInB4IixpLnhheGlzVG9vbHRpcC5zdHlsZS50b3A9YSsicHgiKX19fSx7a2V5OiJtb3ZlWUF4aXNUb29sdGlwIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncsaT10aGlzLnR0Q3R4O251bGw9PT1pLnlheGlzVFRFbHMmJihpLnlheGlzVFRFbHM9ZS5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvckFsbCgiLmFwZXhjaGFydHMteWF4aXN0b29sdGlwIikpO3ZhciBzPXBhcnNlSW50KGkueWNyb3NzaGFpcnNIaWRkZW4uZ2V0QXR0cmlidXRlKCJ5MSIpLDEwKSxhPWUuZ2xvYmFscy50cmFuc2xhdGVZK3Msbj1pLnlheGlzVFRFbHNbdF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LHI9ZS5nbG9iYWxzLnRyYW5zbGF0ZVlBeGlzWFt0XS0yO2UuY29uZmlnLnlheGlzW3RdLm9wcG9zaXRlJiYoci09MjYpLGEtPW4vMiwtMT09PWUuZ2xvYmFscy5pZ25vcmVZQXhpc0luZGV4ZXMuaW5kZXhPZih0KT8oaS55YXhpc1RURWxzW3RdLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtYWN0aXZlIiksaS55YXhpc1RURWxzW3RdLnN0eWxlLnRvcD1hKyJweCIsaS55YXhpc1RURWxzW3RdLnN0eWxlLmxlZnQ9citlLmNvbmZpZy55YXhpc1t0XS50b29sdGlwLm9mZnNldFgrInB4Iik6aS55YXhpc1RURWxzW3RdLmNsYXNzTGlzdC5yZW1vdmUoImFwZXhjaGFydHMtYWN0aXZlIil9fSx7a2V5OiJtb3ZlVG9vbHRpcCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbCxzPXRoaXMudyxhPXRoaXMudHRDdHgsbj1hLmdldEVsVG9vbHRpcCgpLHI9YS50b29sdGlwUmVjdCxvPW51bGwhPT1pP3BhcnNlRmxvYXQoaSk6MSxsPXBhcnNlRmxvYXQodCkrbys1LGM9cGFyc2VGbG9hdChlKStvLzI7aWYobD5zLmdsb2JhbHMuZ3JpZFdpZHRoLzImJihsPWwtci50dFdpZHRoLW8tMTApLGw+cy5nbG9iYWxzLmdyaWRXaWR0aC1yLnR0V2lkdGgtMTAmJihsPXMuZ2xvYmFscy5ncmlkV2lkdGgtci50dFdpZHRoKSxsPC0yMCYmKGw9LTIwKSxzLmNvbmZpZy50b29sdGlwLmZvbGxvd0N1cnNvcil7dmFyIGg9YS5nZXRFbEdyaWQoKSxkPWguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Yz1hLmUuY2xpZW50WStzLmdsb2JhbHMudHJhbnNsYXRlWS1kLnRvcC1yLnR0SGVpZ2h0LzJ9ZWxzZSBzLmdsb2JhbHMuaXNCYXJIb3Jpem9udGFsfHwoci50dEhlaWdodC8yK2M+cy5nbG9iYWxzLmdyaWRIZWlnaHQmJihjPXMuZ2xvYmFscy5ncmlkSGVpZ2h0LXIudHRIZWlnaHQrcy5nbG9iYWxzLnRyYW5zbGF0ZVkpLGM8MCYmKGM9MCkpO2lzTmFOKGwpfHwobCs9cy5nbG9iYWxzLnRyYW5zbGF0ZVgsbi5zdHlsZS5sZWZ0PWwrInB4IixuLnN0eWxlLnRvcD1jKyJweCIpfX0se2tleToibW92ZU1hcmtlcnMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy53LHM9dGhpcy50dEN0eDtpZihpLmdsb2JhbHMubWFya2Vycy5zaXplW3RdPjApZm9yKHZhciBhPWkuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoIiAuYXBleGNoYXJ0cy1zZXJpZXNbZGF0YVxcOnJlYWxJbmRleD0nIi5jb25jYXQodCwiJ10gLmFwZXhjaGFydHMtbWFya2VyIikpLG49MDtuPGEubGVuZ3RoO24rKylwYXJzZUludChhW25dLmdldEF0dHJpYnV0ZSgicmVsIiksMTApPT09ZSYmKHMubWFya2VyLnJlc2V0UG9pbnRzU2l6ZSgpLHMubWFya2VyLmVubGFyZ2VDdXJyZW50UG9pbnQoZSxhW25dKSk7ZWxzZSBzLm1hcmtlci5yZXNldFBvaW50c1NpemUoKSx0aGlzLm1vdmVEeW5hbWljUG9pbnRPbkhvdmVyKGUsdCl9fSx7a2V5OiJtb3ZlRHluYW1pY1BvaW50T25Ib3ZlciIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaSxzLGE9dGhpcy53LG49dGhpcy50dEN0eCxyPWEuZ2xvYmFscy5wb2ludHNBcnJheSxvPW4udG9vbHRpcFV0aWwuZ2V0SG92ZXJNYXJrZXJTaXplKGUpLGw9YS5jb25maWcuc2VyaWVzW2VdLnR5cGU7aWYoIWx8fCJjb2x1bW4iIT09bCYmImNhbmRsZXN0aWNrIiE9PWwmJiJib3hQbG90IiE9PWwpe2k9cltlXVt0XVswXSxzPXJbZV1bdF1bMV0/cltlXVt0XVsxXTowO3ZhciBjPWEuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLXNlcmllc1tkYXRhXFw6cmVhbEluZGV4PSciLmNvbmNhdChlLCInXSAuYXBleGNoYXJ0cy1zZXJpZXMtbWFya2VycyBjaXJjbGUiKSk7YyYmczxhLmdsb2JhbHMuZ3JpZEhlaWdodCYmcz4wJiYoYy5zZXRBdHRyaWJ1dGUoInIiLG8pLGMuc2V0QXR0cmlidXRlKCJjeCIsaSksYy5zZXRBdHRyaWJ1dGUoImN5IixzKSksdGhpcy5tb3ZlWENyb3NzaGFpcnMoaSksbi5maXhlZFRvb2x0aXB8fHRoaXMubW92ZVRvb2x0aXAoaSxzLG8pfX19LHtrZXk6Im1vdmVEeW5hbWljUG9pbnRzT25Ib3ZlciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsaT10aGlzLnR0Q3R4LHM9aS53LGE9MCxuPTAscj1zLmdsb2JhbHMucG9pbnRzQXJyYXk7ZT1uZXcgWSh0aGlzLmN0eCkuZ2V0QWN0aXZlQ29uZmlnU2VyaWVzSW5kZXgoImFzYyIsWyJsaW5lIiwiYXJlYSIsInNjYXR0ZXIiLCJidWJibGUiXSk7dmFyIG89aS50b29sdGlwVXRpbC5nZXRIb3Zlck1hcmtlclNpemUoZSk7cltlXSYmKGE9cltlXVt0XVswXSxuPXJbZV1bdF1bMV0pO3ZhciBsPWkudG9vbHRpcFV0aWwuZ2V0QWxsTWFya2VycygpO2lmKG51bGwhPT1sKWZvcih2YXIgYz0wO2M8cy5nbG9iYWxzLnNlcmllcy5sZW5ndGg7YysrKXt2YXIgaD1yW2NdO2lmKHMuZ2xvYmFscy5jb21ib0NoYXJ0cyYmdm9pZCAwPT09aCYmbC5zcGxpY2UoYywwLG51bGwpLGgmJmgubGVuZ3RoKXt2YXIgZD1yW2NdW3RdWzFdLHU9dm9pZCAwO2lmKGxbY10uc2V0QXR0cmlidXRlKCJjeCIsYSksInJhbmdlQXJlYSI9PT1zLmNvbmZpZy5jaGFydC50eXBlJiYhcy5nbG9iYWxzLmNvbWJvQ2hhcnRzKXt2YXIgcD10K3MuZ2xvYmFscy5zZXJpZXNbY10ubGVuZ3RoO3U9cltjXVtwXVsxXSxkLT1NYXRoLmFicyhkLXUpLzJ9bnVsbCE9PWQmJiFpc05hTihkKSYmZDxzLmdsb2JhbHMuZ3JpZEhlaWdodCtvJiZkK28+MD8obFtjXSYmbFtjXS5zZXRBdHRyaWJ1dGUoInIiLG8pLGxbY10mJmxbY10uc2V0QXR0cmlidXRlKCJjeSIsZCkpOmxbY10mJmxbY10uc2V0QXR0cmlidXRlKCJyIiwwKX19aWYodGhpcy5tb3ZlWENyb3NzaGFpcnMoYSksIWkuZml4ZWRUb29sdGlwKXt2YXIgZz1ufHxzLmdsb2JhbHMuZ3JpZEhlaWdodDt0aGlzLm1vdmVUb29sdGlwKGEsZyxvKX19fSx7a2V5OiJtb3ZlU3RpY2t5VG9vbHRpcE92ZXJCYXJzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncsaT10aGlzLnR0Q3R4LHM9ZS5nbG9iYWxzLmNvbHVtblNlcmllcz9lLmdsb2JhbHMuY29sdW1uU2VyaWVzLmxlbmd0aDplLmdsb2JhbHMuc2VyaWVzLmxlbmd0aCxhPXM+PTImJnMlMj09MD9NYXRoLmZsb29yKHMvMik6TWF0aC5mbG9vcihzLzIpKzE7ZS5nbG9iYWxzLmlzQmFySG9yaXpvbnRhbCYmKGE9bmV3IFkodGhpcy5jdHgpLmdldEFjdGl2ZUNvbmZpZ1Nlcmllc0luZGV4KCJkZXNjIikrMSk7dmFyIG49ZS5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMtYmFyLXNlcmllcyAuYXBleGNoYXJ0cy1zZXJpZXNbcmVsPSciLmNvbmNhdChhLCInXSBwYXRoW2o9JyIpLmNvbmNhdCh0LCInXSwgLmFwZXhjaGFydHMtY2FuZGxlc3RpY2stc2VyaWVzIC5hcGV4Y2hhcnRzLXNlcmllc1tyZWw9JyIpLmNvbmNhdChhLCInXSBwYXRoW2o9JyIpLmNvbmNhdCh0LCInXSwgLmFwZXhjaGFydHMtYm94UGxvdC1zZXJpZXMgLmFwZXhjaGFydHMtc2VyaWVzW3JlbD0nIikuY29uY2F0KGEsIiddIHBhdGhbaj0nIikuY29uY2F0KHQsIiddLCAuYXBleGNoYXJ0cy1yYW5nZWJhci1zZXJpZXMgLmFwZXhjaGFydHMtc2VyaWVzW3JlbD0nIikuY29uY2F0KGEsIiddIHBhdGhbaj0nIikuY29uY2F0KHQsIiddIikpLHI9bj9wYXJzZUZsb2F0KG4uZ2V0QXR0cmlidXRlKCJjeCIpKTowLG89bj9wYXJzZUZsb2F0KG4uZ2V0QXR0cmlidXRlKCJjeSIpKTowLGw9bj9wYXJzZUZsb2F0KG4uZ2V0QXR0cmlidXRlKCJiYXJXaWR0aCIpKTowLGM9bj9wYXJzZUZsb2F0KG4uZ2V0QXR0cmlidXRlKCJiYXJIZWlnaHQiKSk6MCxoPWkuZ2V0RWxHcmlkKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZD1uLmNsYXNzTGlzdC5jb250YWlucygiYXBleGNoYXJ0cy1jYW5kbGVzdGljay1hcmVhIil8fG4uY2xhc3NMaXN0LmNvbnRhaW5zKCJhcGV4Y2hhcnRzLWJveFBsb3QtYXJlYSIpO2lmKGUuZ2xvYmFscy5pc1hOdW1lcmljPyhuJiYhZCYmKHItPXMlMiE9MD9sLzI6MCksbiYmZCYmZS5nbG9iYWxzLmNvbWJvQ2hhcnRzJiYoci09bC8yKSk6ZS5nbG9iYWxzLmlzQmFySG9yaXpvbnRhbHx8KHI9aS54QXhpc1RpY2tzUG9zaXRpb25zW3QtMV0raS5kYXRhUG9pbnRzRGl2aWRlZFdpZHRoLzIsaXNOYU4ocikmJihyPWkueEF4aXNUaWNrc1Bvc2l0aW9uc1t0XS1pLmRhdGFQb2ludHNEaXZpZGVkV2lkdGgvMikpLGUuZ2xvYmFscy5pc0Jhckhvcml6b250YWw/KG8+ZS5nbG9iYWxzLmdyaWRIZWlnaHQvMiYmKG8tPWkudG9vbHRpcFJlY3QudHRIZWlnaHQpLChvPW8rZS5jb25maWcuZ3JpZC5wYWRkaW5nLnRvcCtjLzMpK2M+ZS5nbG9iYWxzLmdyaWRIZWlnaHQmJihvPWUuZ2xvYmFscy5ncmlkSGVpZ2h0LWMpKTplLmNvbmZpZy50b29sdGlwLmZvbGxvd0N1cnNvcj9vPWkuZS5jbGllbnRZLWgudG9wLWkudG9vbHRpcFJlY3QudHRIZWlnaHQvMjpvK2kudG9vbHRpcFJlY3QudHRIZWlnaHQrMTU+ZS5nbG9iYWxzLmdyaWRIZWlnaHQmJihvPWUuZ2xvYmFscy5ncmlkSGVpZ2h0KSxvPC0xMCYmKG89LTEwKSxlLmdsb2JhbHMuaXNCYXJIb3Jpem9udGFsfHx0aGlzLm1vdmVYQ3Jvc3NoYWlycyhyKSwhaS5maXhlZFRvb2x0aXApe3ZhciB1PW98fGUuZ2xvYmFscy5ncmlkSGVpZ2h0O3RoaXMubW92ZVRvb2x0aXAocix1KX19fV0pLHR9KCksdnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLnc9ZS53LHRoaXMudHRDdHg9ZSx0aGlzLmN0eD1lLmN0eCx0aGlzLnRvb2x0aXBQb3NpdGlvbj1uZXcgbXQoZSl9cmV0dXJuIGModCxbe2tleToiZHJhd0R5bmFtaWNQb2ludHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53LGU9bmV3IGsodGhpcy5jdHgpLGk9bmV3IEIodGhpcy5jdHgpLHM9dC5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvckFsbCgiLmFwZXhjaGFydHMtc2VyaWVzIik7cz1tKHMpLHQuY29uZmlnLmNoYXJ0LnN0YWNrZWQmJnMuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gcGFyc2VGbG9hdCh0LmdldEF0dHJpYnV0ZSgiZGF0YTpyZWFsSW5kZXgiKSktcGFyc2VGbG9hdChlLmdldEF0dHJpYnV0ZSgiZGF0YTpyZWFsSW5kZXgiKSl9KSk7Zm9yKHZhciBhPTA7YTxzLmxlbmd0aDthKyspe3ZhciBuPXNbYV0ucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMtc2VyaWVzLW1hcmtlcnMtd3JhcCIpO2lmKG51bGwhPT1uKXt2YXIgcj12b2lkIDAsbz0iYXBleGNoYXJ0cy1tYXJrZXIgdyIuY29uY2F0KChNYXRoLnJhbmRvbSgpKzEpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoNCkpOyJsaW5lIiE9PXQuY29uZmlnLmNoYXJ0LnR5cGUmJiJhcmVhIiE9PXQuY29uZmlnLmNoYXJ0LnR5cGV8fHQuZ2xvYmFscy5jb21ib0NoYXJ0c3x8dC5jb25maWcudG9vbHRpcC5pbnRlcnNlY3R8fChvKz0iIG5vLXBvaW50ZXItZXZlbnRzIik7dmFyIGw9aS5nZXRNYXJrZXJDb25maWcoe2Nzc0NsYXNzOm8sc2VyaWVzSW5kZXg6TnVtYmVyKG4uZ2V0QXR0cmlidXRlKCJkYXRhOnJlYWxJbmRleCIpKX0pOyhyPWUuZHJhd01hcmtlcigwLDAsbCkpLm5vZGUuc2V0QXR0cmlidXRlKCJkZWZhdWx0LW1hcmtlci1zaXplIiwwKTt2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlModC5nbG9iYWxzLlNWR05TLCJnIik7Yy5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLXNlcmllcy1tYXJrZXJzIiksYy5hcHBlbmRDaGlsZChyLm5vZGUpLG4uYXBwZW5kQ2hpbGQoYyl9fX19LHtrZXk6ImVubGFyZ2VDdXJyZW50UG9pbnQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGwscz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbCxhPXRoaXMudzsiYnViYmxlIiE9PWEuY29uZmlnLmNoYXJ0LnR5cGUmJnRoaXMubmV3UG9pbnRTaXplKHQsZSk7dmFyIG49ZS5nZXRBdHRyaWJ1dGUoImN4Iikscj1lLmdldEF0dHJpYnV0ZSgiY3kiKTtpZihudWxsIT09aSYmbnVsbCE9PXMmJihuPWkscj1zKSx0aGlzLnRvb2x0aXBQb3NpdGlvbi5tb3ZlWENyb3NzaGFpcnMobiksIXRoaXMuZml4ZWRUb29sdGlwKXtpZigicmFkYXIiPT09YS5jb25maWcuY2hhcnQudHlwZSl7dmFyIG89dGhpcy50dEN0eC5nZXRFbEdyaWQoKSxsPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bj10aGlzLnR0Q3R4LmUuY2xpZW50WC1sLmxlZnR9dGhpcy50b29sdGlwUG9zaXRpb24ubW92ZVRvb2x0aXAobixyLGEuY29uZmlnLm1hcmtlcnMuaG92ZXIuc2l6ZSl9fX0se2tleToiZW5sYXJnZVBvaW50cyIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudyxpPXRoaXMscz10aGlzLnR0Q3R4LGE9dCxuPWUuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hcGV4Y2hhcnRzLXNlcmllczpub3QoLmFwZXhjaGFydHMtc2VyaWVzLWNvbGxhcHNlZCkgLmFwZXhjaGFydHMtbWFya2VyIikscj1lLmNvbmZpZy5tYXJrZXJzLmhvdmVyLnNpemUsbz0wO288bi5sZW5ndGg7bysrKXt2YXIgbD1uW29dLmdldEF0dHJpYnV0ZSgicmVsIiksYz1uW29dLmdldEF0dHJpYnV0ZSgiaW5kZXgiKTtpZih2b2lkIDA9PT1yJiYocj1lLmdsb2JhbHMubWFya2Vycy5zaXplW2NdK2UuY29uZmlnLm1hcmtlcnMuaG92ZXIuc2l6ZU9mZnNldCksYT09PXBhcnNlSW50KGwsMTApKXtpLm5ld1BvaW50U2l6ZShhLG5bb10pO3ZhciBoPW5bb10uZ2V0QXR0cmlidXRlKCJjeCIpLGQ9bltvXS5nZXRBdHRyaWJ1dGUoImN5Iik7aS50b29sdGlwUG9zaXRpb24ubW92ZVhDcm9zc2hhaXJzKGgpLHMuZml4ZWRUb29sdGlwfHxpLnRvb2x0aXBQb3NpdGlvbi5tb3ZlVG9vbHRpcChoLGQscil9ZWxzZSBpLm9sZFBvaW50U2l6ZShuW29dKX19fSx7a2V5OiJuZXdQb2ludFNpemUiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy53LHM9aS5jb25maWcubWFya2Vycy5ob3Zlci5zaXplLGE9MD09PXQ/ZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQ6ZS5wYXJlbnROb2RlLmxhc3RDaGlsZDtpZigiMCIhPT1hLmdldEF0dHJpYnV0ZSgiZGVmYXVsdC1tYXJrZXItc2l6ZSIpKXt2YXIgbj1wYXJzZUludChhLmdldEF0dHJpYnV0ZSgiaW5kZXgiKSwxMCk7dm9pZCAwPT09cyYmKHM9aS5nbG9iYWxzLm1hcmtlcnMuc2l6ZVtuXStpLmNvbmZpZy5tYXJrZXJzLmhvdmVyLnNpemVPZmZzZXQpLHM8MCYmKHM9MCksYS5zZXRBdHRyaWJ1dGUoInIiLHMpfX19LHtrZXk6Im9sZFBvaW50U2l6ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9cGFyc2VGbG9hdCh0LmdldEF0dHJpYnV0ZSgiZGVmYXVsdC1tYXJrZXItc2l6ZSIpKTt0LnNldEF0dHJpYnV0ZSgiciIsZSl9fSx7a2V5OiJyZXNldFBvaW50c1NpemUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMudy5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvckFsbCgiLmFwZXhjaGFydHMtc2VyaWVzOm5vdCguYXBleGNoYXJ0cy1zZXJpZXMtY29sbGFwc2VkKSAuYXBleGNoYXJ0cy1tYXJrZXIiKSxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBpPXBhcnNlRmxvYXQodFtlXS5nZXRBdHRyaWJ1dGUoImRlZmF1bHQtbWFya2VyLXNpemUiKSk7Yi5pc051bWJlcihpKSYmaT49MD90W2VdLnNldEF0dHJpYnV0ZSgiciIsaSk6dFtlXS5zZXRBdHRyaWJ1dGUoInIiLDApfX19XSksdH0oKSx4dD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMudz1lLncsdGhpcy50dEN0eD1lfXJldHVybiBjKHQsW3trZXk6ImdldEF0dHIiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHBhcnNlRmxvYXQodC50YXJnZXQuZ2V0QXR0cmlidXRlKGUpKX19LHtrZXk6ImhhbmRsZUhlYXRUcmVlVG9vbHRpcCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5lLGk9dC5vcHQscz10LngsYT10Lnksbj10LnR5cGUscj10aGlzLnR0Q3R4LG89dGhpcy53O2lmKGUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygiYXBleGNoYXJ0cy0iLmNvbmNhdChuLCItcmVjdCIpKSl7dmFyIGw9dGhpcy5nZXRBdHRyKGUsImkiKSxjPXRoaXMuZ2V0QXR0cihlLCJqIiksaD10aGlzLmdldEF0dHIoZSwiY3giKSxkPXRoaXMuZ2V0QXR0cihlLCJjeSIpLHU9dGhpcy5nZXRBdHRyKGUsIndpZHRoIikscD10aGlzLmdldEF0dHIoZSwiaGVpZ2h0Iik7aWYoci50b29sdGlwTGFiZWxzLmRyYXdTZXJpZXNUZXh0cyh7dHRJdGVtczppLnR0SXRlbXMsaTpsLGo6YyxzaGFyZWQ6ITEsZTplfSksby5nbG9iYWxzLmNhcHR1cmVkU2VyaWVzSW5kZXg9bCxvLmdsb2JhbHMuY2FwdHVyZWREYXRhUG9pbnRJbmRleD1jLHM9aCtyLnRvb2x0aXBSZWN0LnR0V2lkdGgvMit1LGE9ZCtyLnRvb2x0aXBSZWN0LnR0SGVpZ2h0LzItcC8yLHIudG9vbHRpcFBvc2l0aW9uLm1vdmVYQ3Jvc3NoYWlycyhoK3UvMikscz5vLmdsb2JhbHMuZ3JpZFdpZHRoLzImJihzPWgtci50b29sdGlwUmVjdC50dFdpZHRoLzIrdSksci53LmNvbmZpZy50b29sdGlwLmZvbGxvd0N1cnNvcil7dmFyIGc9by5nbG9iYWxzLmRvbS5lbFdyYXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cz1vLmdsb2JhbHMuY2xpZW50WC1nLmxlZnQtKHM+by5nbG9iYWxzLmdyaWRXaWR0aC8yP3IudG9vbHRpcFJlY3QudHRXaWR0aDowKSxhPW8uZ2xvYmFscy5jbGllbnRZLWcudG9wLShhPm8uZ2xvYmFscy5ncmlkSGVpZ2h0LzI/ci50b29sdGlwUmVjdC50dEhlaWdodDowKX19cmV0dXJue3g6cyx5OmF9fX0se2tleToiaGFuZGxlTWFya2VyVG9vbHRpcCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsaSxzPXQuZSxhPXQub3B0LG49dC54LHI9dC55LG89dGhpcy53LGw9dGhpcy50dEN0eDtpZihzLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoImFwZXhjaGFydHMtbWFya2VyIikpe3ZhciBjPXBhcnNlSW50KGEucGF0aHMuZ2V0QXR0cmlidXRlKCJjeCIpLDEwKSxoPXBhcnNlSW50KGEucGF0aHMuZ2V0QXR0cmlidXRlKCJjeSIpLDEwKSxkPXBhcnNlRmxvYXQoYS5wYXRocy5nZXRBdHRyaWJ1dGUoInZhbCIpKTtpZihpPXBhcnNlSW50KGEucGF0aHMuZ2V0QXR0cmlidXRlKCJyZWwiKSwxMCksZT1wYXJzZUludChhLnBhdGhzLnBhcmVudE5vZGUucGFyZW50Tm9kZS5wYXJlbnROb2RlLmdldEF0dHJpYnV0ZSgicmVsIiksMTApLTEsbC5pbnRlcnNlY3Qpe3ZhciB1PWIuZmluZEFuY2VzdG9yKGEucGF0aHMsImFwZXhjaGFydHMtc2VyaWVzIik7dSYmKGU9cGFyc2VJbnQodS5nZXRBdHRyaWJ1dGUoImRhdGE6cmVhbEluZGV4IiksMTApKX1pZihsLnRvb2x0aXBMYWJlbHMuZHJhd1Nlcmllc1RleHRzKHt0dEl0ZW1zOmEudHRJdGVtcyxpOmUsajppLHNoYXJlZDohbC5zaG93T25JbnRlcnNlY3QmJm8uY29uZmlnLnRvb2x0aXAuc2hhcmVkLGU6c30pLCJtb3VzZXVwIj09PXMudHlwZSYmbC5tYXJrZXJDbGljayhzLGUsaSksby5nbG9iYWxzLmNhcHR1cmVkU2VyaWVzSW5kZXg9ZSxvLmdsb2JhbHMuY2FwdHVyZWREYXRhUG9pbnRJbmRleD1pLG49YyxyPWgrby5nbG9iYWxzLnRyYW5zbGF0ZVktMS40KmwudG9vbHRpcFJlY3QudHRIZWlnaHQsbC53LmNvbmZpZy50b29sdGlwLmZvbGxvd0N1cnNvcil7dmFyIHA9bC5nZXRFbEdyaWQoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyPWwuZS5jbGllbnRZK28uZ2xvYmFscy50cmFuc2xhdGVZLXAudG9wfWQ8MCYmKHI9aCksbC5tYXJrZXIuZW5sYXJnZUN1cnJlbnRQb2ludChpLGEucGF0aHMsbixyKX1yZXR1cm57eDpuLHk6cn19fSx7a2V5OiJoYW5kbGVCYXJUb29sdGlwIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLHM9dC5lLGE9dC5vcHQsbj10aGlzLncscj10aGlzLnR0Q3R4LG89ci5nZXRFbFRvb2x0aXAoKSxsPTAsYz0wLGg9MCxkPXRoaXMuZ2V0QmFyVG9vbHRpcFhZKHtlOnMsb3B0OmF9KTtlPWQuaTt2YXIgdT1kLmJhckhlaWdodCxwPWQuajtuLmdsb2JhbHMuY2FwdHVyZWRTZXJpZXNJbmRleD1lLG4uZ2xvYmFscy5jYXB0dXJlZERhdGFQb2ludEluZGV4PXAsbi5nbG9iYWxzLmlzQmFySG9yaXpvbnRhbCYmci50b29sdGlwVXRpbC5oYXNCYXJzKCl8fCFuLmNvbmZpZy50b29sdGlwLnNoYXJlZD8oYz1kLngsaD1kLnksaT1BcnJheS5pc0FycmF5KG4uY29uZmlnLnN0cm9rZS53aWR0aCk/bi5jb25maWcuc3Ryb2tlLndpZHRoW2VdOm4uY29uZmlnLnN0cm9rZS53aWR0aCxsPWMpOm4uZ2xvYmFscy5jb21ib0NoYXJ0c3x8bi5jb25maWcudG9vbHRpcC5zaGFyZWR8fChsLz0yKSxpc05hTihoKT9oPW4uZ2xvYmFscy5zdmdIZWlnaHQtci50b29sdGlwUmVjdC50dEhlaWdodDpoPDAmJihoPTApO3ZhciBnPXBhcnNlSW50KGEucGF0aHMucGFyZW50Tm9kZS5nZXRBdHRyaWJ1dGUoImRhdGE6cmVhbEluZGV4IiksMTApLGY9bi5nbG9iYWxzLmlzTXVsdGlwbGVZQXhpcz9uLmNvbmZpZy55YXhpc1tnXSYmbi5jb25maWcueWF4aXNbZ10ucmV2ZXJzZWQ6bi5jb25maWcueWF4aXNbMF0ucmV2ZXJzZWQ7aWYoYytyLnRvb2x0aXBSZWN0LnR0V2lkdGg+bi5nbG9iYWxzLmdyaWRXaWR0aCYmIWY/Yy09ci50b29sdGlwUmVjdC50dFdpZHRoOmM8MCYmKGM9MCksci53LmNvbmZpZy50b29sdGlwLmZvbGxvd0N1cnNvcil7dmFyIG09ci5nZXRFbEdyaWQoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtoPXIuZS5jbGllbnRZLW0udG9wfW51bGw9PT1yLnRvb2x0aXAmJihyLnRvb2x0aXA9bi5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMtdG9vbHRpcCIpKSxuLmNvbmZpZy50b29sdGlwLnNoYXJlZHx8KG4uZ2xvYmFscy5jb21ib0JhckNvdW50PjA/ci50b29sdGlwUG9zaXRpb24ubW92ZVhDcm9zc2hhaXJzKGwraS8yKTpyLnRvb2x0aXBQb3NpdGlvbi5tb3ZlWENyb3NzaGFpcnMobCkpLCFyLmZpeGVkVG9vbHRpcCYmKCFuLmNvbmZpZy50b29sdGlwLnNoYXJlZHx8bi5nbG9iYWxzLmlzQmFySG9yaXpvbnRhbCYmci50b29sdGlwVXRpbC5oYXNCYXJzKCkpJiYoZiYmKGMtPXIudG9vbHRpcFJlY3QudHRXaWR0aCk8MCYmKGM9MCksIWZ8fG4uZ2xvYmFscy5pc0Jhckhvcml6b250YWwmJnIudG9vbHRpcFV0aWwuaGFzQmFycygpfHwoaD1oK3UtMioobi5nbG9iYWxzLnNlcmllc1tlXVtwXTwwP3U6MCkpLHIudG9vbHRpcFJlY3QudHRIZWlnaHQraD5uLmdsb2JhbHMuZ3JpZEhlaWdodD9oPW4uZ2xvYmFscy5ncmlkSGVpZ2h0LXIudG9vbHRpcFJlY3QudHRIZWlnaHQrbi5nbG9iYWxzLnRyYW5zbGF0ZVk6KGg9aCtuLmdsb2JhbHMudHJhbnNsYXRlWS1yLnRvb2x0aXBSZWN0LnR0SGVpZ2h0LzIpPDAmJihoPTApLG8uc3R5bGUubGVmdD1jK24uZ2xvYmFscy50cmFuc2xhdGVYKyJweCIsby5zdHlsZS50b3A9aCsicHgiKX19LHtrZXk6ImdldEJhclRvb2x0aXBYWSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5lLGk9dC5vcHQscz10aGlzLncsYT1udWxsLG49dGhpcy50dEN0eCxyPTAsbz0wLGw9MCxjPTAsaD0wLGQ9ZS50YXJnZXQuY2xhc3NMaXN0O2lmKGQuY29udGFpbnMoImFwZXhjaGFydHMtYmFyLWFyZWEiKXx8ZC5jb250YWlucygiYXBleGNoYXJ0cy1jYW5kbGVzdGljay1hcmVhIil8fGQuY29udGFpbnMoImFwZXhjaGFydHMtYm94UGxvdC1hcmVhIil8fGQuY29udGFpbnMoImFwZXhjaGFydHMtcmFuZ2ViYXItYXJlYSIpKXt2YXIgdT1lLnRhcmdldCxwPXUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZz1pLmVsR3JpZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPXAuaGVpZ2h0O2g9cC5oZWlnaHQ7dmFyIG09cC53aWR0aCx2PXBhcnNlSW50KHUuZ2V0QXR0cmlidXRlKCJjeCIpLDEwKSx4PXBhcnNlSW50KHUuZ2V0QXR0cmlidXRlKCJjeSIpLDEwKTtjPXBhcnNlRmxvYXQodS5nZXRBdHRyaWJ1dGUoImJhcldpZHRoIikpO3ZhciBiPSJ0b3VjaG1vdmUiPT09ZS50eXBlP2UudG91Y2hlc1swXS5jbGllbnRYOmUuY2xpZW50WDthPXBhcnNlSW50KHUuZ2V0QXR0cmlidXRlKCJqIiksMTApLHI9cGFyc2VJbnQodS5wYXJlbnROb2RlLmdldEF0dHJpYnV0ZSgicmVsIiksMTApLTE7dmFyIHk9dS5nZXRBdHRyaWJ1dGUoImRhdGEtcmFuZ2UteTEiKSx3PXUuZ2V0QXR0cmlidXRlKCJkYXRhLXJhbmdlLXkyIik7cy5nbG9iYWxzLmNvbWJvQ2hhcnRzJiYocj1wYXJzZUludCh1LnBhcmVudE5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhOnJlYWxJbmRleCIpLDEwKSksbi50b29sdGlwTGFiZWxzLmRyYXdTZXJpZXNUZXh0cyh7dHRJdGVtczppLnR0SXRlbXMsaTpyLGo6YSx5MTp5P3BhcnNlSW50KHksMTApOm51bGwseTI6dz9wYXJzZUludCh3LDEwKTpudWxsLHNoYXJlZDohbi5zaG93T25JbnRlcnNlY3QmJnMuY29uZmlnLnRvb2x0aXAuc2hhcmVkLGU6ZX0pLHMuY29uZmlnLnRvb2x0aXAuZm9sbG93Q3Vyc29yP3MuZ2xvYmFscy5pc0Jhckhvcml6b250YWw/KG89Yi1nLmxlZnQrMTUsbD14LW4uZGF0YVBvaW50c0RpdmlkZWRIZWlnaHQrZi8yLW4udG9vbHRpcFJlY3QudHRIZWlnaHQvMik6KG89cy5nbG9iYWxzLmlzWE51bWVyaWM/di1tLzI6di1uLmRhdGFQb2ludHNEaXZpZGVkV2lkdGgrbS8yLGw9ZS5jbGllbnRZLWcudG9wLW4udG9vbHRpcFJlY3QudHRIZWlnaHQvMi0xNSk6cy5nbG9iYWxzLmlzQmFySG9yaXpvbnRhbD8oKG89dik8bi54eVJhdGlvcy5iYXNlTGluZUludmVydGVkWSYmKG89di1uLnRvb2x0aXBSZWN0LnR0V2lkdGgpLGw9eC1uLmRhdGFQb2ludHNEaXZpZGVkSGVpZ2h0K2YvMi1uLnRvb2x0aXBSZWN0LnR0SGVpZ2h0LzIpOihvPXMuZ2xvYmFscy5pc1hOdW1lcmljP3YtbS8yOnYtbi5kYXRhUG9pbnRzRGl2aWRlZFdpZHRoK20vMixsPXgpfXJldHVybnt4Om8seTpsLGJhckhlaWdodDpoLGJhcldpZHRoOmMsaTpyLGo6YX19fV0pLHR9KCksYnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLnc9ZS53LHRoaXMudHRDdHg9ZX1yZXR1cm4gYyh0LFt7a2V5OiJkcmF3WGF4aXNUb29sdGlwIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudyxlPXRoaXMudHRDdHgsaT0iYm90dG9tIj09PXQuY29uZmlnLnhheGlzLnBvc2l0aW9uO2UueGF4aXNPZmZZPWk/dC5nbG9iYWxzLmdyaWRIZWlnaHQrMTotdC5nbG9iYWxzLnhBeGlzSGVpZ2h0LXQuY29uZmlnLnhheGlzLmF4aXNUaWNrcy5oZWlnaHQrMzt2YXIgcz1pPyJhcGV4Y2hhcnRzLXhheGlzdG9vbHRpcCBhcGV4Y2hhcnRzLXhheGlzdG9vbHRpcC1ib3R0b20iOiJhcGV4Y2hhcnRzLXhheGlzdG9vbHRpcCBhcGV4Y2hhcnRzLXhheGlzdG9vbHRpcC10b3AiLGE9dC5nbG9iYWxzLmRvbS5lbFdyYXA7ZS5pc1hBeGlzVG9vbHRpcEVuYWJsZWQmJm51bGw9PT10Lmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy14YXhpc3Rvb2x0aXAiKSYmKGUueGF4aXNUb29sdGlwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUueGF4aXNUb29sdGlwLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHMrIiBhcGV4Y2hhcnRzLXRoZW1lLSIrdC5jb25maWcudG9vbHRpcC50aGVtZSksYS5hcHBlbmRDaGlsZChlLnhheGlzVG9vbHRpcCksZS54YXhpc1Rvb2x0aXBUZXh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUueGF4aXNUb29sdGlwVGV4dC5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLXhheGlzdG9vbHRpcC10ZXh0IiksZS54YXhpc1Rvb2x0aXBUZXh0LnN0eWxlLmZvbnRGYW1pbHk9dC5jb25maWcueGF4aXMudG9vbHRpcC5zdHlsZS5mb250RmFtaWx5fHx0LmNvbmZpZy5jaGFydC5mb250RmFtaWx5LGUueGF4aXNUb29sdGlwVGV4dC5zdHlsZS5mb250U2l6ZT10LmNvbmZpZy54YXhpcy50b29sdGlwLnN0eWxlLmZvbnRTaXplLGUueGF4aXNUb29sdGlwLmFwcGVuZENoaWxkKGUueGF4aXNUb29sdGlwVGV4dCkpfX0se2tleToiZHJhd1lheGlzVG9vbHRpcCIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy53LGU9dGhpcy50dEN0eCxpPWZ1bmN0aW9uKGkpe3ZhciBzPXQuY29uZmlnLnlheGlzW2ldLm9wcG9zaXRlfHx0LmNvbmZpZy55YXhpc1tpXS5jcm9zc2hhaXJzLm9wcG9zaXRlO2UueWF4aXNPZmZYPXM/dC5nbG9iYWxzLmdyaWRXaWR0aCsxOjE7dmFyIGE9ImFwZXhjaGFydHMteWF4aXN0b29sdGlwIGFwZXhjaGFydHMteWF4aXN0b29sdGlwLSIuY29uY2F0KGkscz8iIGFwZXhjaGFydHMteWF4aXN0b29sdGlwLXJpZ2h0IjoiIGFwZXhjaGFydHMteWF4aXN0b29sdGlwLWxlZnQiKTt0Lmdsb2JhbHMueUF4aXNTYW1lU2NhbGVJbmRpY2VzLm1hcCgoZnVuY3Rpb24oZSxzKXtlLm1hcCgoZnVuY3Rpb24oZSxzKXtzPT09aSYmKGErPXQuY29uZmlnLnlheGlzW3NdLnNob3c/IiAiOiIgYXBleGNoYXJ0cy15YXhpc3Rvb2x0aXAtaGlkZGVuIil9KSl9KSk7dmFyIG49dC5nbG9iYWxzLmRvbS5lbFdyYXA7bnVsbD09PXQuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLXlheGlzdG9vbHRpcCBhcGV4Y2hhcnRzLXlheGlzdG9vbHRpcC0iLmNvbmNhdChpKSkmJihlLnlheGlzVG9vbHRpcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlLnlheGlzVG9vbHRpcC5zZXRBdHRyaWJ1dGUoImNsYXNzIixhKyIgYXBleGNoYXJ0cy10aGVtZS0iK3QuY29uZmlnLnRvb2x0aXAudGhlbWUpLG4uYXBwZW5kQ2hpbGQoZS55YXhpc1Rvb2x0aXApLDA9PT1pJiYoZS55YXhpc1Rvb2x0aXBUZXh0PVtdKSxlLnlheGlzVG9vbHRpcFRleHRbaV09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZS55YXhpc1Rvb2x0aXBUZXh0W2ldLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMteWF4aXN0b29sdGlwLXRleHQiKSxlLnlheGlzVG9vbHRpcC5hcHBlbmRDaGlsZChlLnlheGlzVG9vbHRpcFRleHRbaV0pKX0scz0wO3M8dC5jb25maWcueWF4aXMubGVuZ3RoO3MrKylpKHMpfX0se2tleToic2V0WENyb3NzaGFpcldpZHRoIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudyxlPXRoaXMudHRDdHgsaT1lLmdldEVsWENyb3NzaGFpcnMoKTtpZihlLnhjcm9zc2hhaXJzV2lkdGg9cGFyc2VJbnQodC5jb25maWcueGF4aXMuY3Jvc3NoYWlycy53aWR0aCwxMCksdC5nbG9iYWxzLmNvbWJvQ2hhcnRzKXt2YXIgcz10Lmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy1iYXItYXJlYSIpO2lmKG51bGwhPT1zJiYiYmFyV2lkdGgiPT09dC5jb25maWcueGF4aXMuY3Jvc3NoYWlycy53aWR0aCl7dmFyIGE9cGFyc2VGbG9hdChzLmdldEF0dHJpYnV0ZSgiYmFyV2lkdGgiKSk7ZS54Y3Jvc3NoYWlyc1dpZHRoPWF9ZWxzZSBpZigidGlja1dpZHRoIj09PXQuY29uZmlnLnhheGlzLmNyb3NzaGFpcnMud2lkdGgpe3ZhciBuPXQuZ2xvYmFscy5sYWJlbHMubGVuZ3RoO2UueGNyb3NzaGFpcnNXaWR0aD10Lmdsb2JhbHMuZ3JpZFdpZHRoL259fWVsc2UgaWYoInRpY2tXaWR0aCI9PT10LmNvbmZpZy54YXhpcy5jcm9zc2hhaXJzLndpZHRoKXt2YXIgcj10Lmdsb2JhbHMubGFiZWxzLmxlbmd0aDtlLnhjcm9zc2hhaXJzV2lkdGg9dC5nbG9iYWxzLmdyaWRXaWR0aC9yfWVsc2UgaWYoImJhcldpZHRoIj09PXQuY29uZmlnLnhheGlzLmNyb3NzaGFpcnMud2lkdGgpe3ZhciBvPXQuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLWJhci1hcmVhIik7aWYobnVsbCE9PW8pe3ZhciBsPXBhcnNlRmxvYXQoby5nZXRBdHRyaWJ1dGUoImJhcldpZHRoIikpO2UueGNyb3NzaGFpcnNXaWR0aD1sfWVsc2UgZS54Y3Jvc3NoYWlyc1dpZHRoPTF9dC5nbG9iYWxzLmlzQmFySG9yaXpvbnRhbCYmKGUueGNyb3NzaGFpcnNXaWR0aD0wKSxudWxsIT09aSYmZS54Y3Jvc3NoYWlyc1dpZHRoPjAmJmkuc2V0QXR0cmlidXRlKCJ3aWR0aCIsZS54Y3Jvc3NoYWlyc1dpZHRoKX19LHtrZXk6ImhhbmRsZVlDcm9zc2hhaXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53LGU9dGhpcy50dEN0eDtlLnljcm9zc2hhaXJzPXQuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLXljcm9zc2hhaXJzIiksZS55Y3Jvc3NoYWlyc0hpZGRlbj10Lmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy15Y3Jvc3NoYWlycy1oaWRkZW4iKX19LHtrZXk6ImRyYXdZYXhpc1Rvb2x0aXBUZXh0Iix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpcy50dEN0eCxhPXRoaXMudyxuPWEuZ2xvYmFscy55TGFiZWxGb3JtYXR0ZXJzW3RdO2lmKHMueWF4aXNUb29sdGlwc1t0XSl7dmFyIHI9cy5nZXRFbEdyaWQoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPShlLXIudG9wKSppLnlSYXRpb1t0XSxsPWEuZ2xvYmFscy5tYXhZQXJyW3RdLWEuZ2xvYmFscy5taW5ZQXJyW3RdLGM9YS5nbG9iYWxzLm1pbllBcnJbdF0rKGwtbyk7cy50b29sdGlwUG9zaXRpb24ubW92ZVlDcm9zc2hhaXJzKGUtci50b3ApLHMueWF4aXNUb29sdGlwVGV4dFt0XS5pbm5lckhUTUw9bihjKSxzLnRvb2x0aXBQb3NpdGlvbi5tb3ZlWUF4aXNUb29sdGlwKHQpfX19XSksdH0oKSx5dD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMuY3R4PWUsdGhpcy53PWUudzt2YXIgaT10aGlzLnc7dGhpcy50Q29uZmlnPWkuY29uZmlnLnRvb2x0aXAsdGhpcy50b29sdGlwVXRpbD1uZXcgZ3QodGhpcyksdGhpcy50b29sdGlwTGFiZWxzPW5ldyBmdCh0aGlzKSx0aGlzLnRvb2x0aXBQb3NpdGlvbj1uZXcgbXQodGhpcyksdGhpcy5tYXJrZXI9bmV3IHZ0KHRoaXMpLHRoaXMuaW50ZXJzZWN0PW5ldyB4dCh0aGlzKSx0aGlzLmF4ZXNUb29sdGlwPW5ldyBidCh0aGlzKSx0aGlzLnNob3dPbkludGVyc2VjdD10aGlzLnRDb25maWcuaW50ZXJzZWN0LHRoaXMuc2hvd1Rvb2x0aXBUaXRsZT10aGlzLnRDb25maWcueC5zaG93LHRoaXMuZml4ZWRUb29sdGlwPXRoaXMudENvbmZpZy5maXhlZC5lbmFibGVkLHRoaXMueGF4aXNUb29sdGlwPW51bGwsdGhpcy55YXhpc1RURWxzPW51bGwsdGhpcy5pc0JhclNoYXJlZD0haS5nbG9iYWxzLmlzQmFySG9yaXpvbnRhbCYmdGhpcy50Q29uZmlnLnNoYXJlZCx0aGlzLmxhc3RIb3ZlclRpbWU9RGF0ZS5ub3coKX1yZXR1cm4gYyh0LFt7a2V5OiJnZXRFbFRvb2x0aXAiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0fHwodD10aGlzKSx0LncuZ2xvYmFscy5kb20uYmFzZUVsP3Qudy5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMtdG9vbHRpcCIpOm51bGx9fSx7a2V5OiJnZXRFbFhDcm9zc2hhaXJzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLncuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLXhjcm9zc2hhaXJzIil9fSx7a2V5OiJnZXRFbEdyaWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudy5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMtZ3JpZCIpfX0se2tleToiZHJhd1Rvb2x0aXAiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudzt0aGlzLnh5UmF0aW9zPXQsdGhpcy5pc1hBeGlzVG9vbHRpcEVuYWJsZWQ9ZS5jb25maWcueGF4aXMudG9vbHRpcC5lbmFibGVkJiZlLmdsb2JhbHMuYXhpc0NoYXJ0cyx0aGlzLnlheGlzVG9vbHRpcHM9ZS5jb25maWcueWF4aXMubWFwKChmdW5jdGlvbih0LGkpe3JldHVybiEhKHQuc2hvdyYmdC50b29sdGlwLmVuYWJsZWQmJmUuZ2xvYmFscy5heGlzQ2hhcnRzKX0pKSx0aGlzLmFsbFRvb2x0aXBTZXJpZXNHcm91cHM9W10sZS5nbG9iYWxzLmF4aXNDaGFydHN8fCh0aGlzLnNob3dUb29sdGlwVGl0bGU9ITEpO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKGkuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy10b29sdGlwIiksZS5jb25maWcudG9vbHRpcC5jc3NDbGFzcyYmaS5jbGFzc0xpc3QuYWRkKGUuY29uZmlnLnRvb2x0aXAuY3NzQ2xhc3MpLGkuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy10aGVtZS0iLmNvbmNhdCh0aGlzLnRDb25maWcudGhlbWUpKSxlLmdsb2JhbHMuZG9tLmVsV3JhcC5hcHBlbmRDaGlsZChpKSxlLmdsb2JhbHMuYXhpc0NoYXJ0cyl7dGhpcy5heGVzVG9vbHRpcC5kcmF3WGF4aXNUb29sdGlwKCksdGhpcy5heGVzVG9vbHRpcC5kcmF3WWF4aXNUb29sdGlwKCksdGhpcy5heGVzVG9vbHRpcC5zZXRYQ3Jvc3NoYWlyV2lkdGgoKSx0aGlzLmF4ZXNUb29sdGlwLmhhbmRsZVlDcm9zc2hhaXIoKTt2YXIgcz1uZXcgRyh0aGlzLmN0eCk7dGhpcy54QXhpc1RpY2tzUG9zaXRpb25zPXMuZ2V0WEF4aXNUaWNrc1Bvc2l0aW9ucygpfWlmKCFlLmdsb2JhbHMuY29tYm9DaGFydHMmJiF0aGlzLnRDb25maWcuaW50ZXJzZWN0JiYicmFuZ2VCYXIiIT09ZS5jb25maWcuY2hhcnQudHlwZXx8dGhpcy50Q29uZmlnLnNoYXJlZHx8KHRoaXMuc2hvd09uSW50ZXJzZWN0PSEwKSwwIT09ZS5jb25maWcubWFya2Vycy5zaXplJiYwIT09ZS5nbG9iYWxzLm1hcmtlcnMubGFyZ2VzdFNpemV8fHRoaXMubWFya2VyLmRyYXdEeW5hbWljUG9pbnRzKHRoaXMpLGUuZ2xvYmFscy5jb2xsYXBzZWRTZXJpZXMubGVuZ3RoIT09ZS5nbG9iYWxzLnNlcmllcy5sZW5ndGgpe3RoaXMuZGF0YVBvaW50c0RpdmlkZWRIZWlnaHQ9ZS5nbG9iYWxzLmdyaWRIZWlnaHQvZS5nbG9iYWxzLmRhdGFQb2ludHMsdGhpcy5kYXRhUG9pbnRzRGl2aWRlZFdpZHRoPWUuZ2xvYmFscy5ncmlkV2lkdGgvZS5nbG9iYWxzLmRhdGFQb2ludHMsdGhpcy5zaG93VG9vbHRpcFRpdGxlJiYodGhpcy50b29sdGlwVGl0bGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy50b29sdGlwVGl0bGUuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy10b29sdGlwLXRpdGxlIiksdGhpcy50b29sdGlwVGl0bGUuc3R5bGUuZm9udEZhbWlseT10aGlzLnRDb25maWcuc3R5bGUuZm9udEZhbWlseXx8ZS5jb25maWcuY2hhcnQuZm9udEZhbWlseSx0aGlzLnRvb2x0aXBUaXRsZS5zdHlsZS5mb250U2l6ZT10aGlzLnRDb25maWcuc3R5bGUuZm9udFNpemUsaS5hcHBlbmRDaGlsZCh0aGlzLnRvb2x0aXBUaXRsZSkpO3ZhciBhPWUuZ2xvYmFscy5zZXJpZXMubGVuZ3RoOyhlLmdsb2JhbHMueHlDaGFydHN8fGUuZ2xvYmFscy5jb21ib0NoYXJ0cykmJnRoaXMudENvbmZpZy5zaGFyZWQmJihhPXRoaXMuc2hvd09uSW50ZXJzZWN0PzE6ZS5nbG9iYWxzLnNlcmllcy5sZW5ndGgpLHRoaXMubGVnZW5kTGFiZWxzPWUuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hcGV4Y2hhcnRzLWxlZ2VuZC10ZXh0IiksdGhpcy50dEl0ZW1zPXRoaXMuY3JlYXRlVFRFbGVtZW50cyhhKSx0aGlzLmFkZFNWR0V2ZW50cygpfX19LHtrZXk6ImNyZWF0ZVRURWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLGk9dGhpcy53LHM9W10sYT10aGlzLmdldEVsVG9vbHRpcCgpLG49ZnVuY3Rpb24obil7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ci5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLXRvb2x0aXAtc2VyaWVzLWdyb3VwIiksci5zdHlsZS5vcmRlcj1pLmNvbmZpZy50b29sdGlwLmludmVyc2VPcmRlcj90LW46bisxLGUudENvbmZpZy5zaGFyZWQmJmUudENvbmZpZy5lbmFibGVkT25TZXJpZXMmJkFycmF5LmlzQXJyYXkoZS50Q29uZmlnLmVuYWJsZWRPblNlcmllcykmJmUudENvbmZpZy5lbmFibGVkT25TZXJpZXMuaW5kZXhPZihuKTwwJiZyLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtdG9vbHRpcC1zZXJpZXMtZ3JvdXAtaGlkZGVuIik7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO28uY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy10b29sdGlwLW1hcmtlciIpLG8uc3R5bGUuYmFja2dyb3VuZENvbG9yPWkuZ2xvYmFscy5jb2xvcnNbbl0sci5hcHBlbmRDaGlsZChvKTt2YXIgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtsLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtdG9vbHRpcC10ZXh0IiksbC5zdHlsZS5mb250RmFtaWx5PWUudENvbmZpZy5zdHlsZS5mb250RmFtaWx5fHxpLmNvbmZpZy5jaGFydC5mb250RmFtaWx5LGwuc3R5bGUuZm9udFNpemU9ZS50Q29uZmlnLnN0eWxlLmZvbnRTaXplLFsieSIsImdvYWxzIiwieiJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy10b29sdGlwLSIuY29uY2F0KHQsIi1ncm91cCIpKTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7aS5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLXRvb2x0aXAtdGV4dC0iLmNvbmNhdCh0LCItbGFiZWwiKSksZS5hcHBlbmRDaGlsZChpKTt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7cy5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLXRvb2x0aXAtdGV4dC0iLmNvbmNhdCh0LCItdmFsdWUiKSksZS5hcHBlbmRDaGlsZChzKSxsLmFwcGVuZENoaWxkKGUpfSkpLHIuYXBwZW5kQ2hpbGQobCksYS5hcHBlbmRDaGlsZChyKSxzLnB1c2gocil9LHI9MDtyPHQ7cisrKW4ocik7cmV0dXJuIHN9fSx7a2V5OiJhZGRTVkdFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53LGU9dC5jb25maWcuY2hhcnQudHlwZSxpPXRoaXMuZ2V0RWxUb29sdGlwKCkscz0hKCJiYXIiIT09ZSYmImNhbmRsZXN0aWNrIiE9PWUmJiJib3hQbG90IiE9PWUmJiJyYW5nZUJhciIhPT1lKSxhPSJhcmVhIj09PWV8fCJsaW5lIj09PWV8fCJzY2F0dGVyIj09PWV8fCJidWJibGUiPT09ZXx8InJhZGFyIj09PWUsbj10Lmdsb2JhbHMuZG9tLlBhcGVyLm5vZGUscj10aGlzLmdldEVsR3JpZCgpO3ImJih0aGlzLnNlcmllc0JvdW5kPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO3ZhciBvLGw9W10sYz1bXSxoPXtob3ZlckFyZWE6bixlbEdyaWQ6cix0b29sdGlwRWw6aSx0b29sdGlwWTpsLHRvb2x0aXBYOmMsdHRJdGVtczp0aGlzLnR0SXRlbXN9O2lmKHQuZ2xvYmFscy5heGlzQ2hhcnRzJiYoYT9vPXQuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hcGV4Y2hhcnRzLXNlcmllc1tkYXRhXFw6bG9uZ2VzdFNlcmllcz0ndHJ1ZSddIC5hcGV4Y2hhcnRzLW1hcmtlciIpOnM/bz10Lmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yQWxsKCIuYXBleGNoYXJ0cy1zZXJpZXMgLmFwZXhjaGFydHMtYmFyLWFyZWEsIC5hcGV4Y2hhcnRzLXNlcmllcyAuYXBleGNoYXJ0cy1jYW5kbGVzdGljay1hcmVhLCAuYXBleGNoYXJ0cy1zZXJpZXMgLmFwZXhjaGFydHMtYm94UGxvdC1hcmVhLCAuYXBleGNoYXJ0cy1zZXJpZXMgLmFwZXhjaGFydHMtcmFuZ2ViYXItYXJlYSIpOiJoZWF0bWFwIiE9PWUmJiJ0cmVlbWFwIiE9PWV8fChvPXQuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hcGV4Y2hhcnRzLXNlcmllcyAuYXBleGNoYXJ0cy1oZWF0bWFwLCAuYXBleGNoYXJ0cy1zZXJpZXMgLmFwZXhjaGFydHMtdHJlZW1hcCIpKSxvJiZvLmxlbmd0aCkpZm9yKHZhciBkPTA7ZDxvLmxlbmd0aDtkKyspbC5wdXNoKG9bZF0uZ2V0QXR0cmlidXRlKCJjeSIpKSxjLnB1c2gob1tkXS5nZXRBdHRyaWJ1dGUoImN4IikpO2lmKHQuZ2xvYmFscy54eUNoYXJ0cyYmIXRoaXMuc2hvd09uSW50ZXJzZWN0fHx0Lmdsb2JhbHMuY29tYm9DaGFydHMmJiF0aGlzLnNob3dPbkludGVyc2VjdHx8cyYmdGhpcy50b29sdGlwVXRpbC5oYXNCYXJzKCkmJnRoaXMudENvbmZpZy5zaGFyZWQpdGhpcy5hZGRQYXRoc0V2ZW50TGlzdGVuZXJzKFtuXSxoKTtlbHNlIGlmKHMmJiF0Lmdsb2JhbHMuY29tYm9DaGFydHN8fGEmJnRoaXMuc2hvd09uSW50ZXJzZWN0KXRoaXMuYWRkRGF0YXBvaW50RXZlbnRzTGlzdGVuZXJzKGgpO2Vsc2UgaWYoIXQuZ2xvYmFscy5heGlzQ2hhcnRzfHwiaGVhdG1hcCI9PT1lfHwidHJlZW1hcCI9PT1lKXt2YXIgdT10Lmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yQWxsKCIuYXBleGNoYXJ0cy1zZXJpZXMiKTt0aGlzLmFkZFBhdGhzRXZlbnRMaXN0ZW5lcnModSxoKX1pZih0aGlzLnNob3dPbkludGVyc2VjdCl7dmFyIHA9dC5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvckFsbCgiLmFwZXhjaGFydHMtbGluZS1zZXJpZXMgLmFwZXhjaGFydHMtbWFya2VyLCAuYXBleGNoYXJ0cy1hcmVhLXNlcmllcyAuYXBleGNoYXJ0cy1tYXJrZXIiKTtwLmxlbmd0aD4wJiZ0aGlzLmFkZFBhdGhzRXZlbnRMaXN0ZW5lcnMocCxoKSx0aGlzLnRvb2x0aXBVdGlsLmhhc0JhcnMoKSYmIXRoaXMudENvbmZpZy5zaGFyZWQmJnRoaXMuYWRkRGF0YXBvaW50RXZlbnRzTGlzdGVuZXJzKGgpfX19LHtrZXk6ImRyYXdGaXhlZFRvb2x0aXBSZWN0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudyxlPXRoaXMuZ2V0RWxUb29sdGlwKCksaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9aS53aWR0aCsxMCxhPWkuaGVpZ2h0KzEwLG49dGhpcy50Q29uZmlnLmZpeGVkLm9mZnNldFgscj10aGlzLnRDb25maWcuZml4ZWQub2Zmc2V0WSxvPXRoaXMudENvbmZpZy5maXhlZC5wb3NpdGlvbi50b0xvd2VyQ2FzZSgpO3JldHVybiBvLmluZGV4T2YoInJpZ2h0Iik+LTEmJihuPW4rdC5nbG9iYWxzLnN2Z1dpZHRoLXMrMTApLG8uaW5kZXhPZigiYm90dG9tIik+LTEmJihyPXIrdC5nbG9iYWxzLnN2Z0hlaWdodC1hLTEwKSxlLnN0eWxlLmxlZnQ9bisicHgiLGUuc3R5bGUudG9wPXIrInB4Iix7eDpuLHk6cix0dFdpZHRoOnMsdHRIZWlnaHQ6YX19fSx7a2V5OiJhZGREYXRhcG9pbnRFdmVudHNMaXN0ZW5lcnMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudy5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvckFsbCgiLmFwZXhjaGFydHMtc2VyaWVzLW1hcmtlcnMgLmFwZXhjaGFydHMtbWFya2VyLCAuYXBleGNoYXJ0cy1iYXItYXJlYSwgLmFwZXhjaGFydHMtY2FuZGxlc3RpY2stYXJlYSwgLmFwZXhjaGFydHMtYm94UGxvdC1hcmVhLCAuYXBleGNoYXJ0cy1yYW5nZWJhci1hcmVhIik7dGhpcy5hZGRQYXRoc0V2ZW50TGlzdGVuZXJzKGUsdCl9fSx7a2V5OiJhZGRQYXRoc0V2ZW50TGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgaT10aGlzLHM9ZnVuY3Rpb24ocyl7dmFyIGE9e3BhdGhzOnRbc10sdG9vbHRpcEVsOmUudG9vbHRpcEVsLHRvb2x0aXBZOmUudG9vbHRpcFksdG9vbHRpcFg6ZS50b29sdGlwWCxlbEdyaWQ6ZS5lbEdyaWQsaG92ZXJBcmVhOmUuaG92ZXJBcmVhLHR0SXRlbXM6ZS50dEl0ZW1zfTtbIm1vdXNlbW92ZSIsIm1vdXNldXAiLCJ0b3VjaG1vdmUiLCJtb3VzZW91dCIsInRvdWNoZW5kIl0ubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdFtzXS5hZGRFdmVudExpc3RlbmVyKGUsaS5vblNlcmllc0hvdmVyLmJpbmQoaSxhKSx7Y2FwdHVyZTohMSxwYXNzaXZlOiEwfSl9KSl9LGE9MDthPHQubGVuZ3RoO2ErKylzKGEpfX0se2tleToib25TZXJpZXNIb3ZlciIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLHM9RGF0ZS5ub3coKS10aGlzLmxhc3RIb3ZlclRpbWU7cz49MTAwP3RoaXMuc2VyaWVzSG92ZXIodCxlKTooY2xlYXJUaW1lb3V0KHRoaXMuc2VyaWVzSG92ZXJUaW1lb3V0KSx0aGlzLnNlcmllc0hvdmVyVGltZW91dD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2kuc2VyaWVzSG92ZXIodCxlKX0pLDEwMC1zKSl9fSx7a2V5OiJzZXJpZXNIb3ZlciIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzO3RoaXMubGFzdEhvdmVyVGltZT1EYXRlLm5vdygpO3ZhciBzPVtdLGE9dGhpcy53O2EuY29uZmlnLmNoYXJ0Lmdyb3VwJiYocz10aGlzLmN0eC5nZXRHcm91cGVkQ2hhcnRzKCkpLGEuZ2xvYmFscy5heGlzQ2hhcnRzJiYoYS5nbG9iYWxzLm1pblg9PT0tMS8wJiZhLmdsb2JhbHMubWF4WD09PTEvMHx8MD09PWEuZ2xvYmFscy5kYXRhUG9pbnRzKXx8KHMubGVuZ3RoP3MuZm9yRWFjaCgoZnVuY3Rpb24ocyl7dmFyIGE9aS5nZXRFbFRvb2x0aXAocyksbj17cGF0aHM6dC5wYXRocyx0b29sdGlwRWw6YSx0b29sdGlwWTp0LnRvb2x0aXBZLHRvb2x0aXBYOnQudG9vbHRpcFgsZWxHcmlkOnQuZWxHcmlkLGhvdmVyQXJlYTp0LmhvdmVyQXJlYSx0dEl0ZW1zOnMudy5nbG9iYWxzLnRvb2x0aXAudHRJdGVtc307cy53Lmdsb2JhbHMubWluWD09PWkudy5nbG9iYWxzLm1pblgmJnMudy5nbG9iYWxzLm1heFg9PT1pLncuZ2xvYmFscy5tYXhYJiZzLncuZ2xvYmFscy50b29sdGlwLnNlcmllc0hvdmVyQnlDb250ZXh0KHtjaGFydEN0eDpzLHR0Q3R4OnMudy5nbG9iYWxzLnRvb2x0aXAsb3B0Om4sZTplfSl9KSk6dGhpcy5zZXJpZXNIb3ZlckJ5Q29udGV4dCh7Y2hhcnRDdHg6dGhpcy5jdHgsdHRDdHg6dGhpcy53Lmdsb2JhbHMudG9vbHRpcCxvcHQ6dCxlOmV9KSl9fSx7a2V5OiJzZXJpZXNIb3ZlckJ5Q29udGV4dCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5jaGFydEN0eCxpPXQudHRDdHgscz10Lm9wdCxhPXQuZSxuPWUudyxyPXRoaXMuZ2V0RWxUb29sdGlwKCk7ciYmKGkudG9vbHRpcFJlY3Q9e3g6MCx5OjAsdHRXaWR0aDpyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLHR0SGVpZ2h0OnIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0fSxpLmU9YSwhaS50b29sdGlwVXRpbC5oYXNCYXJzKCl8fG4uZ2xvYmFscy5jb21ib0NoYXJ0c3x8aS5pc0JhclNoYXJlZHx8dGhpcy50Q29uZmlnLm9uRGF0YXNldEhvdmVyLmhpZ2hsaWdodERhdGFTZXJpZXMmJm5ldyBZKGUpLnRvZ2dsZVNlcmllc09uSG92ZXIoYSxhLnRhcmdldC5wYXJlbnROb2RlKSxpLmZpeGVkVG9vbHRpcCYmaS5kcmF3Rml4ZWRUb29sdGlwUmVjdCgpLG4uZ2xvYmFscy5heGlzQ2hhcnRzP2kuYXhpc0NoYXJ0c1Rvb2x0aXBzKHtlOmEsb3B0OnMsdG9vbHRpcFJlY3Q6aS50b29sdGlwUmVjdH0pOmkubm9uQXhpc0NoYXJ0c1Rvb2x0aXBzKHtlOmEsb3B0OnMsdG9vbHRpcFJlY3Q6aS50b29sdGlwUmVjdH0pKX19LHtrZXk6ImF4aXNDaGFydHNUb29sdGlwcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsaSxzPXQuZSxhPXQub3B0LG49dGhpcy53LHI9YS5lbEdyaWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz0idG91Y2htb3ZlIj09PXMudHlwZT9zLnRvdWNoZXNbMF0uY2xpZW50WDpzLmNsaWVudFgsbD0idG91Y2htb3ZlIj09PXMudHlwZT9zLnRvdWNoZXNbMF0uY2xpZW50WTpzLmNsaWVudFk7aWYodGhpcy5jbGllbnRZPWwsdGhpcy5jbGllbnRYPW8sbi5nbG9iYWxzLmNhcHR1cmVkU2VyaWVzSW5kZXg9LTEsbi5nbG9iYWxzLmNhcHR1cmVkRGF0YVBvaW50SW5kZXg9LTEsbDxyLnRvcHx8bD5yLnRvcCtyLmhlaWdodCl0aGlzLmhhbmRsZU1vdXNlT3V0KGEpO2Vsc2V7aWYoQXJyYXkuaXNBcnJheSh0aGlzLnRDb25maWcuZW5hYmxlZE9uU2VyaWVzKSYmIW4uY29uZmlnLnRvb2x0aXAuc2hhcmVkKXt2YXIgYz1wYXJzZUludChhLnBhdGhzLmdldEF0dHJpYnV0ZSgiaW5kZXgiKSwxMCk7aWYodGhpcy50Q29uZmlnLmVuYWJsZWRPblNlcmllcy5pbmRleE9mKGMpPDApcmV0dXJuIHZvaWQgdGhpcy5oYW5kbGVNb3VzZU91dChhKX12YXIgaD10aGlzLmdldEVsVG9vbHRpcCgpLGQ9dGhpcy5nZXRFbFhDcm9zc2hhaXJzKCksdT1uLmdsb2JhbHMueHlDaGFydHN8fCJiYXIiPT09bi5jb25maWcuY2hhcnQudHlwZSYmIW4uZ2xvYmFscy5pc0Jhckhvcml6b250YWwmJnRoaXMudG9vbHRpcFV0aWwuaGFzQmFycygpJiZ0aGlzLnRDb25maWcuc2hhcmVkfHxuLmdsb2JhbHMuY29tYm9DaGFydHMmJnRoaXMudG9vbHRpcFV0aWwuaGFzQmFycygpO2lmKCJtb3VzZW1vdmUiPT09cy50eXBlfHwidG91Y2htb3ZlIj09PXMudHlwZXx8Im1vdXNldXAiPT09cy50eXBlKXtpZihuLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzLmxlbmd0aCtuLmdsb2JhbHMuYW5jaWxsYXJ5Q29sbGFwc2VkU2VyaWVzLmxlbmd0aD09PW4uZ2xvYmFscy5zZXJpZXMubGVuZ3RoKXJldHVybjtudWxsIT09ZCYmZC5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLWFjdGl2ZSIpO3ZhciBwPXRoaXMueWF4aXNUb29sdGlwcy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiEwPT09dH0pKTtpZihudWxsIT09dGhpcy55Y3Jvc3NoYWlycyYmcC5sZW5ndGgmJnRoaXMueWNyb3NzaGFpcnMuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy1hY3RpdmUiKSx1JiYhdGhpcy5zaG93T25JbnRlcnNlY3QpdGhpcy5oYW5kbGVTdGlja3lUb29sdGlwKHMsbyxsLGEpO2Vsc2UgaWYoImhlYXRtYXAiPT09bi5jb25maWcuY2hhcnQudHlwZXx8InRyZWVtYXAiPT09bi5jb25maWcuY2hhcnQudHlwZSl7dmFyIGc9dGhpcy5pbnRlcnNlY3QuaGFuZGxlSGVhdFRyZWVUb29sdGlwKHtlOnMsb3B0OmEseDplLHk6aSx0eXBlOm4uY29uZmlnLmNoYXJ0LnR5cGV9KTtlPWcueCxpPWcueSxoLnN0eWxlLmxlZnQ9ZSsicHgiLGguc3R5bGUudG9wPWkrInB4In1lbHNlIHRoaXMudG9vbHRpcFV0aWwuaGFzQmFycygpJiZ0aGlzLmludGVyc2VjdC5oYW5kbGVCYXJUb29sdGlwKHtlOnMsb3B0OmF9KSx0aGlzLnRvb2x0aXBVdGlsLmhhc01hcmtlcnMoKSYmdGhpcy5pbnRlcnNlY3QuaGFuZGxlTWFya2VyVG9vbHRpcCh7ZTpzLG9wdDphLHg6ZSx5Oml9KTtpZih0aGlzLnlheGlzVG9vbHRpcHMubGVuZ3RoKWZvcih2YXIgZj0wO2Y8bi5jb25maWcueWF4aXMubGVuZ3RoO2YrKyl0aGlzLmF4ZXNUb29sdGlwLmRyYXdZYXhpc1Rvb2x0aXBUZXh0KGYsbCx0aGlzLnh5UmF0aW9zKTthLnRvb2x0aXBFbC5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLWFjdGl2ZSIpfWVsc2UibW91c2VvdXQiIT09cy50eXBlJiYidG91Y2hlbmQiIT09cy50eXBlfHx0aGlzLmhhbmRsZU1vdXNlT3V0KGEpfX19LHtrZXk6Im5vbkF4aXNDaGFydHNUb29sdGlwcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5lLGk9dC5vcHQscz10LnRvb2x0aXBSZWN0LGE9dGhpcy53LG49aS5wYXRocy5nZXRBdHRyaWJ1dGUoInJlbCIpLHI9dGhpcy5nZXRFbFRvb2x0aXAoKSxvPWEuZ2xvYmFscy5kb20uZWxXcmFwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKCJtb3VzZW1vdmUiPT09ZS50eXBlfHwidG91Y2htb3ZlIj09PWUudHlwZSl7ci5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLWFjdGl2ZSIpLHRoaXMudG9vbHRpcExhYmVscy5kcmF3U2VyaWVzVGV4dHMoe3R0SXRlbXM6aS50dEl0ZW1zLGk6cGFyc2VJbnQobiwxMCktMSxzaGFyZWQ6ITF9KTt2YXIgbD1hLmdsb2JhbHMuY2xpZW50WC1vLmxlZnQtcy50dFdpZHRoLzIsYz1hLmdsb2JhbHMuY2xpZW50WS1vLnRvcC1zLnR0SGVpZ2h0LTEwO2lmKHIuc3R5bGUubGVmdD1sKyJweCIsci5zdHlsZS50b3A9YysicHgiLGEuY29uZmlnLmxlZ2VuZC50b29sdGlwSG92ZXJGb3JtYXR0ZXIpe3ZhciBoPW4tMSxkPSgwLGEuY29uZmlnLmxlZ2VuZC50b29sdGlwSG92ZXJGb3JtYXR0ZXIpKHRoaXMubGVnZW5kTGFiZWxzW2hdLmdldEF0dHJpYnV0ZSgiZGF0YTpkZWZhdWx0LXRleHQiKSx7c2VyaWVzSW5kZXg6aCxkYXRhUG9pbnRJbmRleDpoLHc6YX0pO3RoaXMubGVnZW5kTGFiZWxzW2hdLmlubmVySFRNTD1kfX1lbHNlIm1vdXNlb3V0IiE9PWUudHlwZSYmInRvdWNoZW5kIiE9PWUudHlwZXx8KHIuY2xhc3NMaXN0LnJlbW92ZSgiYXBleGNoYXJ0cy1hY3RpdmUiKSxhLmNvbmZpZy5sZWdlbmQudG9vbHRpcEhvdmVyRm9ybWF0dGVyJiZ0aGlzLmxlZ2VuZExhYmVscy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LmdldEF0dHJpYnV0ZSgiZGF0YTpkZWZhdWx0LXRleHQiKTt0LmlubmVySFRNTD1kZWNvZGVVUklDb21wb25lbnQoZSl9KSkpfX0se2tleToiaGFuZGxlU3RpY2t5VG9vbHRpcCIsdmFsdWU6ZnVuY3Rpb24odCxlLGkscyl7dmFyIGE9dGhpcy53LG49dGhpcy50b29sdGlwVXRpbC5nZXROZWFyZXN0VmFsdWVzKHtjb250ZXh0OnRoaXMsaG92ZXJBcmVhOnMuaG92ZXJBcmVhLGVsR3JpZDpzLmVsR3JpZCxjbGllbnRYOmUsY2xpZW50WTppfSkscj1uLmosbz1uLmNhcHR1cmVkU2VyaWVzLGw9cy5lbEdyaWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bi5ob3Zlclg8MHx8bi5ob3Zlclg+bC53aWR0aD90aGlzLmhhbmRsZU1vdXNlT3V0KHMpOm51bGwhPT1vP3RoaXMuaGFuZGxlU3RpY2t5Q2FwdHVyZWRTZXJpZXModCxvLHMscik6KHRoaXMudG9vbHRpcFV0aWwuaXNYb3ZlcmxhcChyKXx8YS5nbG9iYWxzLmlzQmFySG9yaXpvbnRhbCkmJnRoaXMuY3JlYXRlKHQsdGhpcywwLHIscy50dEl0ZW1zKX19LHtrZXk6ImhhbmRsZVN0aWNreUNhcHR1cmVkU2VyaWVzIix2YWx1ZTpmdW5jdGlvbih0LGUsaSxzKXt2YXIgYT10aGlzLnc7dGhpcy50Q29uZmlnLnNoYXJlZHx8bnVsbCE9PWEuZ2xvYmFscy5zZXJpZXNbZV1bc10/dm9pZCAwIT09YS5nbG9iYWxzLnNlcmllc1tlXVtzXT90aGlzLnRDb25maWcuc2hhcmVkJiZ0aGlzLnRvb2x0aXBVdGlsLmlzWG92ZXJsYXAocykmJnRoaXMudG9vbHRpcFV0aWwuaXNJbml0aWFsU2VyaWVzU2FtZUxlbigpP3RoaXMuY3JlYXRlKHQsdGhpcyxlLHMsaS50dEl0ZW1zKTp0aGlzLmNyZWF0ZSh0LHRoaXMsZSxzLGkudHRJdGVtcywhMSk6dGhpcy50b29sdGlwVXRpbC5pc1hvdmVybGFwKHMpJiZ0aGlzLmNyZWF0ZSh0LHRoaXMsMCxzLGkudHRJdGVtcyk6dGhpcy5oYW5kbGVNb3VzZU91dChpKX19LHtrZXk6ImRlYWN0aXZhdGVIb3ZlckZpbHRlciIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy53LGU9bmV3IGsodGhpcy5jdHgpLGk9dC5nbG9iYWxzLmRvbS5QYXBlci5zZWxlY3QoIi5hcGV4Y2hhcnRzLWJhci1hcmVhIikscz0wO3M8aS5sZW5ndGg7cysrKWUucGF0aE1vdXNlTGVhdmUoaVtzXSl9fSx7a2V5OiJoYW5kbGVNb3VzZU91dCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53LGk9dGhpcy5nZXRFbFhDcm9zc2hhaXJzKCk7aWYodC50b29sdGlwRWwuY2xhc3NMaXN0LnJlbW92ZSgiYXBleGNoYXJ0cy1hY3RpdmUiKSx0aGlzLmRlYWN0aXZhdGVIb3ZlckZpbHRlcigpLCJidWJibGUiIT09ZS5jb25maWcuY2hhcnQudHlwZSYmdGhpcy5tYXJrZXIucmVzZXRQb2ludHNTaXplKCksbnVsbCE9PWkmJmkuY2xhc3NMaXN0LnJlbW92ZSgiYXBleGNoYXJ0cy1hY3RpdmUiKSxudWxsIT09dGhpcy55Y3Jvc3NoYWlycyYmdGhpcy55Y3Jvc3NoYWlycy5jbGFzc0xpc3QucmVtb3ZlKCJhcGV4Y2hhcnRzLWFjdGl2ZSIpLHRoaXMuaXNYQXhpc1Rvb2x0aXBFbmFibGVkJiZ0aGlzLnhheGlzVG9vbHRpcC5jbGFzc0xpc3QucmVtb3ZlKCJhcGV4Y2hhcnRzLWFjdGl2ZSIpLHRoaXMueWF4aXNUb29sdGlwcy5sZW5ndGgpe251bGw9PT10aGlzLnlheGlzVFRFbHMmJih0aGlzLnlheGlzVFRFbHM9ZS5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvckFsbCgiLmFwZXhjaGFydHMteWF4aXN0b29sdGlwIikpO2Zvcih2YXIgcz0wO3M8dGhpcy55YXhpc1RURWxzLmxlbmd0aDtzKyspdGhpcy55YXhpc1RURWxzW3NdLmNsYXNzTGlzdC5yZW1vdmUoImFwZXhjaGFydHMtYWN0aXZlIil9ZS5jb25maWcubGVnZW5kLnRvb2x0aXBIb3ZlckZvcm1hdHRlciYmdGhpcy5sZWdlbmRMYWJlbHMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRBdHRyaWJ1dGUoImRhdGE6ZGVmYXVsdC10ZXh0Iik7dC5pbm5lckhUTUw9ZGVjb2RlVVJJQ29tcG9uZW50KGUpfSkpfX0se2tleToibWFya2VyQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzLnc7ImZ1bmN0aW9uIj09dHlwZW9mIHMuY29uZmlnLmNoYXJ0LmV2ZW50cy5tYXJrZXJDbGljayYmcy5jb25maWcuY2hhcnQuZXZlbnRzLm1hcmtlckNsaWNrKHQsdGhpcy5jdHgse3Nlcmllc0luZGV4OmUsZGF0YVBvaW50SW5kZXg6aSx3OnN9KSx0aGlzLmN0eC5ldmVudHMuZmlyZUV2ZW50KCJtYXJrZXJDbGljayIsW3QsdGhpcy5jdHgse3Nlcmllc0luZGV4OmUsZGF0YVBvaW50SW5kZXg6aSx3OnN9XSl9fSx7a2V5OiJjcmVhdGUiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMsYSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD41JiZ2b2lkIDAhPT1hcmd1bWVudHNbNV0/YXJndW1lbnRzWzVdOm51bGwscj10aGlzLncsbz1lOyJtb3VzZXVwIj09PXQudHlwZSYmdGhpcy5tYXJrZXJDbGljayh0LGkscyksbnVsbD09PW4mJihuPXRoaXMudENvbmZpZy5zaGFyZWQpO3ZhciBsPXRoaXMudG9vbHRpcFV0aWwuaGFzTWFya2VycygpLGM9dGhpcy50b29sdGlwVXRpbC5nZXRFbEJhcnMoKTtpZihyLmNvbmZpZy5sZWdlbmQudG9vbHRpcEhvdmVyRm9ybWF0dGVyKXt2YXIgaD1yLmNvbmZpZy5sZWdlbmQudG9vbHRpcEhvdmVyRm9ybWF0dGVyLGQ9QXJyYXkuZnJvbSh0aGlzLmxlZ2VuZExhYmVscyk7ZC5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LmdldEF0dHJpYnV0ZSgiZGF0YTpkZWZhdWx0LXRleHQiKTt0LmlubmVySFRNTD1kZWNvZGVVUklDb21wb25lbnQoZSl9KSk7Zm9yKHZhciB1PTA7dTxkLmxlbmd0aDt1Kyspe3ZhciBwPWRbdV0sZz1wYXJzZUludChwLmdldEF0dHJpYnV0ZSgiaSIpLDEwKSxmPWRlY29kZVVSSUNvbXBvbmVudChwLmdldEF0dHJpYnV0ZSgiZGF0YTpkZWZhdWx0LXRleHQiKSksbT1oKGYse3Nlcmllc0luZGV4Om4/ZzppLGRhdGFQb2ludEluZGV4OnMsdzpyfSk7aWYobilwLmlubmVySFRNTD1yLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzSW5kaWNlcy5pbmRleE9mKGcpPDA/bTpmO2Vsc2UgaWYocC5pbm5lckhUTUw9Zz09PWk/bTpmLGk9PT1nKWJyZWFrfX1pZihuKXtpZihvLnRvb2x0aXBMYWJlbHMuZHJhd1Nlcmllc1RleHRzKHt0dEl0ZW1zOmEsaTppLGo6cyxzaGFyZWQ6IXRoaXMuc2hvd09uSW50ZXJzZWN0JiZ0aGlzLnRDb25maWcuc2hhcmVkfSksbCYmKHIuZ2xvYmFscy5tYXJrZXJzLmxhcmdlc3RTaXplPjA/by5tYXJrZXIuZW5sYXJnZVBvaW50cyhzKTpvLnRvb2x0aXBQb3NpdGlvbi5tb3ZlRHluYW1pY1BvaW50c09uSG92ZXIocykpLHRoaXMudG9vbHRpcFV0aWwuaGFzQmFycygpJiYodGhpcy5iYXJTZXJpZXNIZWlnaHQ9dGhpcy50b29sdGlwVXRpbC5nZXRCYXJzSGVpZ2h0KGMpLHRoaXMuYmFyU2VyaWVzSGVpZ2h0PjApKXt2YXIgdj1uZXcgayh0aGlzLmN0eCkseD1yLmdsb2JhbHMuZG9tLlBhcGVyLnNlbGVjdCgiLmFwZXhjaGFydHMtYmFyLWFyZWFbaj0nIi5jb25jYXQocywiJ10iKSk7dGhpcy5kZWFjdGl2YXRlSG92ZXJGaWx0ZXIoKSx0aGlzLnRvb2x0aXBQb3NpdGlvbi5tb3ZlU3RpY2t5VG9vbHRpcE92ZXJCYXJzKHMpO2Zvcih2YXIgYj0wO2I8eC5sZW5ndGg7YisrKXYucGF0aE1vdXNlRW50ZXIoeFtiXSl9fWVsc2Ugby50b29sdGlwTGFiZWxzLmRyYXdTZXJpZXNUZXh0cyh7c2hhcmVkOiExLHR0SXRlbXM6YSxpOmksajpzfSksdGhpcy50b29sdGlwVXRpbC5oYXNCYXJzKCkmJm8udG9vbHRpcFBvc2l0aW9uLm1vdmVTdGlja3lUb29sdGlwT3ZlckJhcnMocyksbCYmby50b29sdGlwUG9zaXRpb24ubW92ZU1hcmtlcnMoaSxzKX19XSksdH0oKSx3dD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMudz1lLncsdGhpcy5iYXJDdHg9ZSx0aGlzLnRvdGFsRm9ybWF0dGVyPXRoaXMudy5jb25maWcucGxvdE9wdGlvbnMuYmFyLmRhdGFMYWJlbHMudG90YWwuZm9ybWF0dGVyLHRoaXMudG90YWxGb3JtYXR0ZXJ8fCh0aGlzLnRvdGFsRm9ybWF0dGVyPXRoaXMudy5jb25maWcuZGF0YUxhYmVscy5mb3JtYXR0ZXIpfXJldHVybiBjKHQsW3trZXk6ImhhbmRsZUJhckRhdGFMYWJlbHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQueCxpPXQueSxzPXQueTEsYT10LnkyLG49dC5pLHI9dC5qLG89dC5yZWFsSW5kZXgsbD10LnNlcmllcyxjPXQuYmFySGVpZ2h0LGg9dC5iYXJXaWR0aCxkPXQuYmFyWVBvc2l0aW9uLHU9dC52aXNpYmxlU2VyaWVzLHA9dC5yZW5kZXJlZFBhdGgsZz10aGlzLncsZj1uZXcgayh0aGlzLmJhckN0eC5jdHgpLG09QXJyYXkuaXNBcnJheSh0aGlzLmJhckN0eC5zdHJva2VXaWR0aCk/dGhpcy5iYXJDdHguc3Ryb2tlV2lkdGhbb106dGhpcy5iYXJDdHguc3Ryb2tlV2lkdGgsdj1lK3BhcnNlRmxvYXQoaCp1KSx4PWkrcGFyc2VGbG9hdChjKnUpO2cuZ2xvYmFscy5pc1hOdW1lcmljJiYhZy5nbG9iYWxzLmlzQmFySG9yaXpvbnRhbCYmKHY9ZStwYXJzZUZsb2F0KGgqKHUrMSkpLHg9aStwYXJzZUZsb2F0KGMqKHUrMSkpLW0pO3ZhciBiLHksdz1udWxsLFM9ZSxDPWksQT1nLmNvbmZpZy5kYXRhTGFiZWxzLEU9dGhpcy5iYXJDdHguYmFyT3B0aW9ucy5kYXRhTGFiZWxzLFQ9dGhpcy5iYXJDdHguYmFyT3B0aW9ucy5kYXRhTGFiZWxzLnRvdGFsO3ZvaWQgMCE9PWQmJnRoaXMuYmFyQ3R4LmlzUmFuZ2VCYXImJih4PWQsQz1kKTt2YXIgTD1BLm9mZnNldFgsUD1BLm9mZnNldFksTT17d2lkdGg6MCxoZWlnaHQ6MH07aWYoZy5jb25maWcuZGF0YUxhYmVscy5lbmFibGVkKXt2YXIgTz10aGlzLmJhckN0eC5zZXJpZXNbbl1bcl07TT1mLmdldFRleHRSZWN0cyhnLmdsb2JhbHMueUxhYmVsRm9ybWF0dGVyc1swXShPKSxwYXJzZUZsb2F0KEEuc3R5bGUuZm9udFNpemUpKX12YXIgST17eDplLHk6aSxpOm4sajpyLHJlYWxJbmRleDpvLHJlbmRlcmVkUGF0aDpwLGJjeDp2LGJjeTp4LGJhckhlaWdodDpjLGJhcldpZHRoOmgsdGV4dFJlY3RzOk0sc3Ryb2tlV2lkdGg6bSxkYXRhTGFiZWxzWDpTLGRhdGFMYWJlbHNZOkMsZGF0YUxhYmVsc0NvbmZpZzpBLGJhckRhdGFMYWJlbHNDb25maWc6RSxiYXJUb3RhbERhdGFMYWJlbHNDb25maWc6VCxvZmZYOkwsb2ZmWTpQfTtyZXR1cm4geT10aGlzLmJhckN0eC5pc0hvcml6b250YWw/dGhpcy5jYWxjdWxhdGVCYXJzRGF0YUxhYmVsc1Bvc2l0aW9uKEkpOnRoaXMuY2FsY3VsYXRlQ29sdW1uc0RhdGFMYWJlbHNQb3NpdGlvbihJKSxwLmF0dHIoe2N5OnkuYmN5LGN4OnkuYmN4LGo6cix2YWw6bFtuXVtyXSxiYXJIZWlnaHQ6YyxiYXJXaWR0aDpofSksYj10aGlzLmRyYXdDYWxjdWxhdGVkRGF0YUxhYmVscyh7eDp5LmRhdGFMYWJlbHNYLHk6eS5kYXRhTGFiZWxzWSx2YWw6dGhpcy5iYXJDdHguaXNSYW5nZUJhcj9bcyxhXTpsW25dW3JdLGk6byxqOnIsYmFyV2lkdGg6aCxiYXJIZWlnaHQ6Yyx0ZXh0UmVjdHM6TSxkYXRhTGFiZWxzQ29uZmlnOkF9KSxnLmNvbmZpZy5jaGFydC5zdGFja2VkJiZULmVuYWJsZWQmJih3PXRoaXMuZHJhd1RvdGFsRGF0YUxhYmVscyh7eDp5LnRvdGFsRGF0YUxhYmVsc1gseTp5LnRvdGFsRGF0YUxhYmVsc1kscmVhbEluZGV4Om8sdGV4dEFuY2hvcjp5LnRvdGFsRGF0YUxhYmVsc0FuY2hvcix2YWw6dGhpcy5nZXRTdGFja2VkVG90YWxEYXRhTGFiZWwoe3JlYWxJbmRleDpvLGo6cn0pLGRhdGFMYWJlbHNDb25maWc6QSxiYXJUb3RhbERhdGFMYWJlbHNDb25maWc6VH0pKSx7ZGF0YUxhYmVsczpiLHRvdGFsRGF0YUxhYmVsczp3fX19LHtrZXk6ImdldFN0YWNrZWRUb3RhbERhdGFMYWJlbCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5yZWFsSW5kZXgsaT10Lmoscz10aGlzLncsYT10aGlzLmJhckN0eC5zdGFja2VkU2VyaWVzVG90YWxzW2ldO3JldHVybiB0aGlzLnRvdGFsRm9ybWF0dGVyJiYoYT10aGlzLnRvdGFsRm9ybWF0dGVyKGEsbihuKHt9LHMpLHt9LHtzZXJpZXNJbmRleDplLGRhdGFQb2ludEluZGV4OmksdzpzfSkpKSxhfX0se2tleToiY2FsY3VsYXRlQ29sdW1uc0RhdGFMYWJlbHNQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsaSxzLGE9dGhpcy53LG49dC5pLHI9dC5qLG89dC5yZWFsSW5kZXgsbD10LnksYz10LmJjeCxoPXQuYmFyV2lkdGgsZD10LmJhckhlaWdodCx1PXQudGV4dFJlY3RzLHA9dC5kYXRhTGFiZWxzWSxnPXQuZGF0YUxhYmVsc0NvbmZpZyxmPXQuYmFyRGF0YUxhYmVsc0NvbmZpZyxtPXQuYmFyVG90YWxEYXRhTGFiZWxzQ29uZmlnLHY9dC5zdHJva2VXaWR0aCx4PXQub2ZmWCxiPXQub2ZmWTtkPU1hdGguYWJzKGQpO3ZhciB5PSJ2ZXJ0aWNhbCI9PT1hLmNvbmZpZy5wbG90T3B0aW9ucy5iYXIuZGF0YUxhYmVscy5vcmllbnRhdGlvbjtjLT12LzI7dmFyIHc9YS5nbG9iYWxzLmdyaWRXaWR0aC9hLmdsb2JhbHMuZGF0YVBvaW50cztlPWEuZ2xvYmFscy5pc1hOdW1lcmljP2MtaC8yK3g6Yy13K2gvMit4LHkmJihlPWUrdS5oZWlnaHQvMi12LzItMik7dmFyIFM9dGhpcy5iYXJDdHguc2VyaWVzW25dW3JdPDAsQz1sO3N3aXRjaCh0aGlzLmJhckN0eC5pc1JldmVyc2VkJiYoQz1sLWQrKFM/MipkOjApLGwtPWQpLGYucG9zaXRpb24pe2Nhc2UiY2VudGVyIjpwPXk/Uz9DK2QvMitiOkMrZC8yLWI6Uz9DLWQvMit1LmhlaWdodC8yK2I6QytkLzIrdS5oZWlnaHQvMi1iO2JyZWFrO2Nhc2UiYm90dG9tIjpwPXk/Uz9DK2QrYjpDK2QtYjpTP0MtZCt1LmhlaWdodCt2K2I6QytkLXUuaGVpZ2h0LzIrdi1iO2JyZWFrO2Nhc2UidG9wIjpwPXk/Uz9DK2I6Qy1iOlM/Qy11LmhlaWdodC8yLWI6Qyt1LmhlaWdodCtifWlmKHRoaXMuYmFyQ3R4Lmxhc3RBY3RpdmVCYXJTZXJpZUluZGV4PT09byYmbS5lbmFibGVkKXt2YXIgQT1uZXcgayh0aGlzLmJhckN0eC5jdHgpLmdldFRleHRSZWN0cyh0aGlzLmdldFN0YWNrZWRUb3RhbERhdGFMYWJlbCh7cmVhbEluZGV4Om8sajpyfSksZy5mb250U2l6ZSk7aT1TP0MtQS5oZWlnaHQvMi1iLW0ub2Zmc2V0WSsxODpDK0EuaGVpZ2h0K2IrbS5vZmZzZXRZLTE4LHM9ZSttLm9mZnNldFh9cmV0dXJuIGEuY29uZmlnLmNoYXJ0LnN0YWNrZWR8fChwPDA/cD0wK3Y6cCt1LmhlaWdodC8zPmEuZ2xvYmFscy5ncmlkSGVpZ2h0JiYocD1hLmdsb2JhbHMuZ3JpZEhlaWdodC12KSkse2JjeDpjLGJjeTpsLGRhdGFMYWJlbHNYOmUsZGF0YUxhYmVsc1k6cCx0b3RhbERhdGFMYWJlbHNYOnMsdG90YWxEYXRhTGFiZWxzWTppLHRvdGFsRGF0YUxhYmVsc0FuY2hvcjoibWlkZGxlIn19fSx7a2V5OiJjYWxjdWxhdGVCYXJzRGF0YUxhYmVsc1Bvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncsaT10Lngscz10LmksYT10Lmosbj10LnJlYWxJbmRleCxyPXQuYmN5LG89dC5iYXJIZWlnaHQsbD10LmJhcldpZHRoLGM9dC50ZXh0UmVjdHMsaD10LmRhdGFMYWJlbHNYLGQ9dC5zdHJva2VXaWR0aCx1PXQuZGF0YUxhYmVsc0NvbmZpZyxwPXQuYmFyRGF0YUxhYmVsc0NvbmZpZyxnPXQuYmFyVG90YWxEYXRhTGFiZWxzQ29uZmlnLGY9dC5vZmZYLG09dC5vZmZZLHY9ZS5nbG9iYWxzLmdyaWRIZWlnaHQvZS5nbG9iYWxzLmRhdGFQb2ludHM7bD1NYXRoLmFicyhsKTt2YXIgeCxiLHk9ci0odGhpcy5iYXJDdHguaXNSYW5nZUJhcj8wOnYpK28vMitjLmhlaWdodC8yK20tMyx3PSJzdGFydCIsUz10aGlzLmJhckN0eC5zZXJpZXNbc11bYV08MCxDPWk7c3dpdGNoKHRoaXMuYmFyQ3R4LmlzUmV2ZXJzZWQmJihDPWkrbC0oUz8yKmw6MCksaT1lLmdsb2JhbHMuZ3JpZFdpZHRoLWwpLHAucG9zaXRpb24pe2Nhc2UiY2VudGVyIjpoPVM/QytsLzItZjpNYXRoLm1heChjLndpZHRoLzIsQy1sLzIpK2Y7YnJlYWs7Y2FzZSJib3R0b20iOmg9Uz9DK2wtZC1NYXRoLnJvdW5kKGMud2lkdGgvMiktZjpDLWwrZCtNYXRoLnJvdW5kKGMud2lkdGgvMikrZjticmVhaztjYXNlInRvcCI6aD1TP0MtZCtNYXRoLnJvdW5kKGMud2lkdGgvMiktZjpDLWQtTWF0aC5yb3VuZChjLndpZHRoLzIpK2Z9aWYodGhpcy5iYXJDdHgubGFzdEFjdGl2ZUJhclNlcmllSW5kZXg9PT1uJiZnLmVuYWJsZWQpe3ZhciBBPW5ldyBrKHRoaXMuYmFyQ3R4LmN0eCkuZ2V0VGV4dFJlY3RzKHRoaXMuZ2V0U3RhY2tlZFRvdGFsRGF0YUxhYmVsKHtyZWFsSW5kZXg6bixqOmF9KSx1LmZvbnRTaXplKTtTPyh4PUMtZCtNYXRoLnJvdW5kKEEud2lkdGgvMiktZi1nLm9mZnNldFgtMTUsdz0iZW5kIik6eD1DLWQtTWF0aC5yb3VuZChBLndpZHRoLzIpK2YrZy5vZmZzZXRYKzE1LGI9eStnLm9mZnNldFl9cmV0dXJuIGUuY29uZmlnLmNoYXJ0LnN0YWNrZWR8fChoPDA/aD1oK2Mud2lkdGgrZDpoK2Mud2lkdGgvMj5lLmdsb2JhbHMuZ3JpZFdpZHRoJiYoaD1lLmdsb2JhbHMuZ3JpZFdpZHRoLWMud2lkdGgtZCkpLHtiY3g6aSxiY3k6cixkYXRhTGFiZWxzWDpoLGRhdGFMYWJlbHNZOnksdG90YWxEYXRhTGFiZWxzWDp4LHRvdGFsRGF0YUxhYmVsc1k6Yix0b3RhbERhdGFMYWJlbHNBbmNob3I6d319fSx7a2V5OiJkcmF3Q2FsY3VsYXRlZERhdGFMYWJlbHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQueCxpPXQueSxzPXQudmFsLGE9dC5pLHI9dC5qLG89dC50ZXh0UmVjdHMsbD10LmJhckhlaWdodCxjPXQuYmFyV2lkdGgsaD10LmRhdGFMYWJlbHNDb25maWcsZD10aGlzLncsdT0icm90YXRlKDApIjsidmVydGljYWwiPT09ZC5jb25maWcucGxvdE9wdGlvbnMuYmFyLmRhdGFMYWJlbHMub3JpZW50YXRpb24mJih1PSJyb3RhdGUoLTkwLCAiLmNvbmNhdChlLCIsICIpLmNvbmNhdChpLCIpIikpO3ZhciBwPW5ldyBIKHRoaXMuYmFyQ3R4LmN0eCksZz1uZXcgayh0aGlzLmJhckN0eC5jdHgpLGY9aC5mb3JtYXR0ZXIsbT1udWxsLHY9ZC5nbG9iYWxzLmNvbGxhcHNlZFNlcmllc0luZGljZXMuaW5kZXhPZihhKT4tMTtpZihoLmVuYWJsZWQmJiF2KXttPWcuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLWRhdGEtbGFiZWxzIix0cmFuc2Zvcm06dX0pO3ZhciB4PSIiO3ZvaWQgMCE9PXMmJih4PWYocyxuKG4oe30sZCkse30se3Nlcmllc0luZGV4OmEsZGF0YVBvaW50SW5kZXg6cix3OmR9KSkpO3ZhciBiPWQuZ2xvYmFscy5zZXJpZXNbYV1bcl08MCx5PWQuY29uZmlnLnBsb3RPcHRpb25zLmJhci5kYXRhTGFiZWxzLnBvc2l0aW9uOyJ2ZXJ0aWNhbCI9PT1kLmNvbmZpZy5wbG90T3B0aW9ucy5iYXIuZGF0YUxhYmVscy5vcmllbnRhdGlvbiYmKCJ0b3AiPT09eSYmKGgudGV4dEFuY2hvcj1iPyJlbmQiOiJzdGFydCIpLCJjZW50ZXIiPT09eSYmKGgudGV4dEFuY2hvcj0ibWlkZGxlIiksImJvdHRvbSI9PT15JiYoaC50ZXh0QW5jaG9yPWI/ImVuZCI6InN0YXJ0IikpLHRoaXMuYmFyQ3R4LmlzUmFuZ2VCYXImJnRoaXMuYmFyQ3R4LmJhck9wdGlvbnMuZGF0YUxhYmVscy5oaWRlT3ZlcmZsb3dpbmdMYWJlbHMmJmM8Zy5nZXRUZXh0UmVjdHMoeCxwYXJzZUZsb2F0KGguc3R5bGUuZm9udFNpemUpKS53aWR0aCYmKHg9IiIpLGQuY29uZmlnLmNoYXJ0LnN0YWNrZWQmJnRoaXMuYmFyQ3R4LmJhck9wdGlvbnMuZGF0YUxhYmVscy5oaWRlT3ZlcmZsb3dpbmdMYWJlbHMmJih0aGlzLmJhckN0eC5pc0hvcml6b250YWw/by53aWR0aC8xLjY+TWF0aC5hYnMoYykmJih4PSIiKTpvLmhlaWdodC8xLjY+TWF0aC5hYnMobCkmJih4PSIiKSk7dmFyIHc9bih7fSxoKTt0aGlzLmJhckN0eC5pc0hvcml6b250YWwmJnM8MCYmKCJzdGFydCI9PT1oLnRleHRBbmNob3I/dy50ZXh0QW5jaG9yPSJlbmQiOiJlbmQiPT09aC50ZXh0QW5jaG9yJiYody50ZXh0QW5jaG9yPSJzdGFydCIpKSxwLnBsb3REYXRhTGFiZWxzVGV4dCh7eDplLHk6aSx0ZXh0OngsaTphLGo6cixwYXJlbnQ6bSxkYXRhTGFiZWxzQ29uZmlnOncsYWx3YXlzRHJhd0RhdGFMYWJlbDohMCxvZmZzZXRDb3JyZWN0aW9uOiEwfSl9cmV0dXJuIG19fSx7a2V5OiJkcmF3VG90YWxEYXRhTGFiZWxzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpPXQueCxzPXQueSxhPXQudmFsLG49dC5yZWFsSW5kZXgscj10LnRleHRBbmNob3Isbz10LmJhclRvdGFsRGF0YUxhYmVsc0NvbmZpZyxsPW5ldyBrKHRoaXMuYmFyQ3R4LmN0eCk7cmV0dXJuIG8uZW5hYmxlZCYmdm9pZCAwIT09aSYmdm9pZCAwIT09cyYmdGhpcy5iYXJDdHgubGFzdEFjdGl2ZUJhclNlcmllSW5kZXg9PT1uJiYoZT1sLmRyYXdUZXh0KHt4OmkseTpzLGZvcmVDb2xvcjpvLnN0eWxlLmNvbG9yLHRleHQ6YSx0ZXh0QW5jaG9yOnIsZm9udEZhbWlseTpvLnN0eWxlLmZvbnRGYW1pbHksZm9udFNpemU6by5zdHlsZS5mb250U2l6ZSxmb250V2VpZ2h0Om8uc3R5bGUuZm9udFdlaWdodH0pKSxlfX1dKSx0fSgpLGt0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy53PWUudyx0aGlzLmJhckN0eD1lfXJldHVybiBjKHQsW3trZXk6ImluaXRWYXJpYWJsZXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudzt0aGlzLmJhckN0eC5zZXJpZXM9dCx0aGlzLmJhckN0eC50b3RhbEl0ZW1zPTAsdGhpcy5iYXJDdHguc2VyaWVzTGVuPTAsdGhpcy5iYXJDdHgudmlzaWJsZUk9LTEsdGhpcy5iYXJDdHgudmlzaWJsZUl0ZW1zPTE7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspaWYodFtpXS5sZW5ndGg+MCYmKHRoaXMuYmFyQ3R4LnNlcmllc0xlbj10aGlzLmJhckN0eC5zZXJpZXNMZW4rMSx0aGlzLmJhckN0eC50b3RhbEl0ZW1zKz10W2ldLmxlbmd0aCksZS5nbG9iYWxzLmlzWE51bWVyaWMpZm9yKHZhciBzPTA7czx0W2ldLmxlbmd0aDtzKyspZS5nbG9iYWxzLnNlcmllc1hbaV1bc10+ZS5nbG9iYWxzLm1pblgmJmUuZ2xvYmFscy5zZXJpZXNYW2ldW3NdPGUuZ2xvYmFscy5tYXhYJiZ0aGlzLmJhckN0eC52aXNpYmxlSXRlbXMrKztlbHNlIHRoaXMuYmFyQ3R4LnZpc2libGVJdGVtcz1lLmdsb2JhbHMuZGF0YVBvaW50czswPT09dGhpcy5iYXJDdHguc2VyaWVzTGVuJiYodGhpcy5iYXJDdHguc2VyaWVzTGVuPTEpLHRoaXMuYmFyQ3R4Lnplcm9TZXJpZXNlcz1bXSx0aGlzLmJhckN0eC5yYWRpdXNPblNlcmllc051bWJlcj10Lmxlbmd0aC0xLGUuZ2xvYmFscy5jb21ib0NoYXJ0c3x8dGhpcy5jaGVja1plcm9TZXJpZXMoe3Nlcmllczp0fSl9fSx7a2V5OiJpbml0aWFsUG9zaXRpb25zIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGUsaSxzLGEsbixyLG8sbD10aGlzLncsYz1sLmdsb2JhbHMuZGF0YVBvaW50czt0aGlzLmJhckN0eC5pc1JhbmdlQmFyJiYoYz1sLmdsb2JhbHMubGFiZWxzLmxlbmd0aCk7dmFyIGg9dGhpcy5iYXJDdHguc2VyaWVzTGVuO2lmKGwuY29uZmlnLnBsb3RPcHRpb25zLmJhci5yYW5nZUJhckdyb3VwUm93cyYmKGg9MSksdGhpcy5iYXJDdHguaXNIb3Jpem9udGFsKWE9KGk9bC5nbG9iYWxzLmdyaWRIZWlnaHQvYykvaCxsLmdsb2JhbHMuaXNYTnVtZXJpYyYmKGE9KGk9bC5nbG9iYWxzLmdyaWRIZWlnaHQvdGhpcy5iYXJDdHgudG90YWxJdGVtcykvdGhpcy5iYXJDdHguc2VyaWVzTGVuKSxhPWEqcGFyc2VJbnQodGhpcy5iYXJDdHguYmFyT3B0aW9ucy5iYXJIZWlnaHQsMTApLzEwMCxvPXRoaXMuYmFyQ3R4LmJhc2VMaW5lSW52ZXJ0ZWRZK2wuZ2xvYmFscy5wYWRIb3Jpem9udGFsKyh0aGlzLmJhckN0eC5pc1JldmVyc2VkP2wuZ2xvYmFscy5ncmlkV2lkdGg6MCktKHRoaXMuYmFyQ3R4LmlzUmV2ZXJzZWQ/Mip0aGlzLmJhckN0eC5iYXNlTGluZUludmVydGVkWTowKSxlPShpLWEqdGhpcy5iYXJDdHguc2VyaWVzTGVuKS8yO2Vsc2V7aWYocz1sLmdsb2JhbHMuZ3JpZFdpZHRoL3RoaXMuYmFyQ3R4LnZpc2libGVJdGVtcyxsLmNvbmZpZy54YXhpcy5jb252ZXJ0ZWRDYXRUb051bWVyaWMmJihzPWwuZ2xvYmFscy5ncmlkV2lkdGgvbC5nbG9iYWxzLmRhdGFQb2ludHMpLG49cy90aGlzLmJhckN0eC5zZXJpZXNMZW4qcGFyc2VJbnQodGhpcy5iYXJDdHguYmFyT3B0aW9ucy5jb2x1bW5XaWR0aCwxMCkvMTAwLGwuZ2xvYmFscy5pc1hOdW1lcmljKXt2YXIgZD10aGlzLmJhckN0eC54UmF0aW87bC5jb25maWcueGF4aXMuY29udmVydGVkQ2F0VG9OdW1lcmljJiYoZD10aGlzLmJhckN0eC5pbml0aWFsWFJhdGlvKSxsLmdsb2JhbHMubWluWERpZmYmJi41IT09bC5nbG9iYWxzLm1pblhEaWZmJiZsLmdsb2JhbHMubWluWERpZmYvZD4wJiYocz1sLmdsb2JhbHMubWluWERpZmYvZCksKG49cy90aGlzLmJhckN0eC5zZXJpZXNMZW4qcGFyc2VJbnQodGhpcy5iYXJDdHguYmFyT3B0aW9ucy5jb2x1bW5XaWR0aCwxMCkvMTAwKTwxJiYobj0xKX1yPWwuZ2xvYmFscy5ncmlkSGVpZ2h0LXRoaXMuYmFyQ3R4LmJhc2VMaW5lWVt0aGlzLmJhckN0eC55YXhpc0luZGV4XS0odGhpcy5iYXJDdHguaXNSZXZlcnNlZD9sLmdsb2JhbHMuZ3JpZEhlaWdodDowKSsodGhpcy5iYXJDdHguaXNSZXZlcnNlZD8yKnRoaXMuYmFyQ3R4LmJhc2VMaW5lWVt0aGlzLmJhckN0eC55YXhpc0luZGV4XTowKSx0PWwuZ2xvYmFscy5wYWRIb3Jpem9udGFsKyhzLW4qdGhpcy5iYXJDdHguc2VyaWVzTGVuKS8yfXJldHVybnt4OnQseTplLHlEaXZpc2lvbjppLHhEaXZpc2lvbjpzLGJhckhlaWdodDphLGJhcldpZHRoOm4semVyb0g6cix6ZXJvVzpvfX19LHtrZXk6ImdldFBhdGhGaWxsQ29sb3IiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMpe3ZhciBhLG4scixvLGw9dGhpcy53LGM9bmV3IF8odGhpcy5iYXJDdHguY3R4KSxoPW51bGwsZD10aGlzLmJhckN0eC5iYXJPcHRpb25zLmRpc3RyaWJ1dGVkP2k6ZTtyZXR1cm4gdGhpcy5iYXJDdHguYmFyT3B0aW9ucy5jb2xvcnMucmFuZ2VzLmxlbmd0aD4wJiZ0aGlzLmJhckN0eC5iYXJPcHRpb25zLmNvbG9ycy5yYW5nZXMubWFwKChmdW5jdGlvbihzKXt0W2VdW2ldPj1zLmZyb20mJnRbZV1baV08PXMudG8mJihoPXMuY29sb3IpfSkpLGwuY29uZmlnLnNlcmllc1tlXS5kYXRhW2ldJiZsLmNvbmZpZy5zZXJpZXNbZV0uZGF0YVtpXS5maWxsQ29sb3ImJihoPWwuY29uZmlnLnNlcmllc1tlXS5kYXRhW2ldLmZpbGxDb2xvciksYy5maWxsUGF0aCh7c2VyaWVzTnVtYmVyOnRoaXMuYmFyQ3R4LmJhck9wdGlvbnMuZGlzdHJpYnV0ZWQ/ZDpzLGRhdGFQb2ludEluZGV4OmksY29sb3I6aCx2YWx1ZTp0W2VdW2ldLGZpbGxDb25maWc6bnVsbD09PShhPWwuY29uZmlnLnNlcmllc1tlXS5kYXRhW2ldKXx8dm9pZCAwPT09YT92b2lkIDA6YS5maWxsLGZpbGxUeXBlOm51bGwhPT0obj1sLmNvbmZpZy5zZXJpZXNbZV0uZGF0YVtpXSkmJnZvaWQgMCE9PW4mJm51bGwhPT0ocj1uLmZpbGwpJiZ2b2lkIDAhPT1yJiZyLnR5cGU/bnVsbD09PShvPWwuY29uZmlnLnNlcmllc1tlXS5kYXRhW2ldKXx8dm9pZCAwPT09bz92b2lkIDA6by5maWxsLnR5cGU6bC5jb25maWcuZmlsbC50eXBlfSl9fSx7a2V5OiJnZXRTdHJva2VXaWR0aCIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPTAsYT10aGlzLnc7cmV0dXJuIHZvaWQgMD09PXRoaXMuYmFyQ3R4LnNlcmllc1t0XVtlXXx8bnVsbD09PXRoaXMuYmFyQ3R4LnNlcmllc1t0XVtlXT90aGlzLmJhckN0eC5pc051bGxWYWx1ZT0hMDp0aGlzLmJhckN0eC5pc051bGxWYWx1ZT0hMSxhLmNvbmZpZy5zdHJva2Uuc2hvdyYmKHRoaXMuYmFyQ3R4LmlzTnVsbFZhbHVlfHwocz1BcnJheS5pc0FycmF5KHRoaXMuYmFyQ3R4LnN0cm9rZVdpZHRoKT90aGlzLmJhckN0eC5zdHJva2VXaWR0aFtpXTp0aGlzLmJhckN0eC5zdHJva2VXaWR0aCkpLHN9fSx7a2V5OiJzaG91bGRBcHBseVJhZGl1cyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53LGk9ITE7cmV0dXJuIGUuY29uZmlnLnBsb3RPcHRpb25zLmJhci5ib3JkZXJSYWRpdXM+MCYmKGUuY29uZmlnLmNoYXJ0LnN0YWNrZWQmJiJsYXN0Ij09PWUuY29uZmlnLnBsb3RPcHRpb25zLmJhci5ib3JkZXJSYWRpdXNXaGVuU3RhY2tlZD90aGlzLmJhckN0eC5sYXN0QWN0aXZlQmFyU2VyaWVJbmRleD09PXQmJihpPSEwKTppPSEwKSxpfX0se2tleToiYmFyQmFja2dyb3VuZCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5qLGk9dC5pLHM9dC54MSxhPXQueDIsbj10LnkxLHI9dC55MixvPXQuZWxTZXJpZXMsbD10aGlzLncsYz1uZXcgayh0aGlzLmJhckN0eC5jdHgpLGg9bmV3IFkodGhpcy5iYXJDdHguY3R4KS5nZXRBY3RpdmVDb25maWdTZXJpZXNJbmRleCgpO2lmKHRoaXMuYmFyQ3R4LmJhck9wdGlvbnMuY29sb3JzLmJhY2tncm91bmRCYXJDb2xvcnMubGVuZ3RoPjAmJmg9PT1pKXtlPj10aGlzLmJhckN0eC5iYXJPcHRpb25zLmNvbG9ycy5iYWNrZ3JvdW5kQmFyQ29sb3JzLmxlbmd0aCYmKGUlPXRoaXMuYmFyQ3R4LmJhck9wdGlvbnMuY29sb3JzLmJhY2tncm91bmRCYXJDb2xvcnMubGVuZ3RoKTt2YXIgZD10aGlzLmJhckN0eC5iYXJPcHRpb25zLmNvbG9ycy5iYWNrZ3JvdW5kQmFyQ29sb3JzW2VdLHU9Yy5kcmF3UmVjdCh2b2lkIDAhPT1zP3M6MCx2b2lkIDAhPT1uP246MCx2b2lkIDAhPT1hP2E6bC5nbG9iYWxzLmdyaWRXaWR0aCx2b2lkIDAhPT1yP3I6bC5nbG9iYWxzLmdyaWRIZWlnaHQsdGhpcy5iYXJDdHguYmFyT3B0aW9ucy5jb2xvcnMuYmFja2dyb3VuZEJhclJhZGl1cyxkLHRoaXMuYmFyQ3R4LmJhck9wdGlvbnMuY29sb3JzLmJhY2tncm91bmRCYXJPcGFjaXR5KTtvLmFkZCh1KSx1Lm5vZGUuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy1iYWNrZ3JvdW5kQmFyIil9fX0se2tleToiZ2V0Q29sdW1uUGF0aHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlLGk9dC5iYXJXaWR0aCxzPXQuYmFyWFBvc2l0aW9uLGE9dC55MSxuPXQueTIscj10LnN0cm9rZVdpZHRoLG89dC5yZWFsSW5kZXgsbD10LmksYz10LmosaD10LncsZD1uZXcgayh0aGlzLmJhckN0eC5jdHgpOyhyPUFycmF5LmlzQXJyYXkocik/cltvXTpyKXx8KHI9MCk7dmFyIHU9aSxwPXM7bnVsbCE9PShlPWguY29uZmlnLnNlcmllc1tvXS5kYXRhW2NdKSYmdm9pZCAwIT09ZSYmZS5jb2x1bW5XaWR0aE9mZnNldCYmKHA9cy1oLmNvbmZpZy5zZXJpZXNbb10uZGF0YVtjXS5jb2x1bW5XaWR0aE9mZnNldC8yLHU9aStoLmNvbmZpZy5zZXJpZXNbb10uZGF0YVtjXS5jb2x1bW5XaWR0aE9mZnNldCk7dmFyIGc9cCxmPXArdTthKz0uMDAxLG4rPS4wMDE7dmFyIG09ZC5tb3ZlKGcsYSksdj1kLm1vdmUoZyxhKSx4PWQubGluZShmLXIsYSk7cmV0dXJuIGguZ2xvYmFscy5wcmV2aW91c1BhdGhzLmxlbmd0aD4wJiYodj10aGlzLmJhckN0eC5nZXRQcmV2aW91c1BhdGgobyxjLCExKSksbT1tK2QubGluZShnLG4pK2QubGluZShmLXIsbikrZC5saW5lKGYtcixhKSsoImFyb3VuZCI9PT1oLmNvbmZpZy5wbG90T3B0aW9ucy5iYXIuYm9yZGVyUmFkaXVzQXBwbGljYXRpb24/IiBaIjoiIHoiKSx2PXYrZC5saW5lKGcsYSkreCt4K3greCt4K2QubGluZShnLGEpKygiYXJvdW5kIj09PWguY29uZmlnLnBsb3RPcHRpb25zLmJhci5ib3JkZXJSYWRpdXNBcHBsaWNhdGlvbj8iIFoiOiIgeiIpLHRoaXMuc2hvdWxkQXBwbHlSYWRpdXMobykmJihtPWQucm91bmRQYXRoQ29ybmVycyhtLGguY29uZmlnLnBsb3RPcHRpb25zLmJhci5ib3JkZXJSYWRpdXMpKSxoLmNvbmZpZy5jaGFydC5zdGFja2VkJiYodGhpcy5iYXJDdHgueUFycmoucHVzaChuKSx0aGlzLmJhckN0eC55QXJyakYucHVzaChNYXRoLmFicyhhLW4pKSx0aGlzLmJhckN0eC55QXJyalZhbC5wdXNoKHRoaXMuYmFyQ3R4LnNlcmllc1tsXVtjXSkpLHtwYXRoVG86bSxwYXRoRnJvbTp2fX19LHtrZXk6ImdldEJhcnBhdGhzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpPXQuYmFyWVBvc2l0aW9uLHM9dC5iYXJIZWlnaHQsYT10LngxLG49dC54MixyPXQuc3Ryb2tlV2lkdGgsbz10LnJlYWxJbmRleCxsPXQuaSxjPXQuaixoPXQudyxkPW5ldyBrKHRoaXMuYmFyQ3R4LmN0eCk7KHI9QXJyYXkuaXNBcnJheShyKT9yW29dOnIpfHwocj0wKTt2YXIgdT1pLHA9cztudWxsIT09KGU9aC5jb25maWcuc2VyaWVzW29dLmRhdGFbY10pJiZ2b2lkIDAhPT1lJiZlLmJhckhlaWdodE9mZnNldCYmKHU9aS1oLmNvbmZpZy5zZXJpZXNbb10uZGF0YVtjXS5iYXJIZWlnaHRPZmZzZXQvMixwPXMraC5jb25maWcuc2VyaWVzW29dLmRhdGFbY10uYmFySGVpZ2h0T2Zmc2V0KTt2YXIgZz11LGY9dStwO2ErPS4wMDEsbis9LjAwMTt2YXIgbT1kLm1vdmUoYSxnKSx2PWQubW92ZShhLGcpO2guZ2xvYmFscy5wcmV2aW91c1BhdGhzLmxlbmd0aD4wJiYodj10aGlzLmJhckN0eC5nZXRQcmV2aW91c1BhdGgobyxjLCExKSk7dmFyIHg9ZC5saW5lKGEsZi1yKTtyZXR1cm4gbT1tK2QubGluZShuLGcpK2QubGluZShuLGYtcikreCsoImFyb3VuZCI9PT1oLmNvbmZpZy5wbG90T3B0aW9ucy5iYXIuYm9yZGVyUmFkaXVzQXBwbGljYXRpb24/IiBaIjoiIHoiKSx2PXYrZC5saW5lKGEsZykreCt4K3greCt4K2QubGluZShhLGcpKygiYXJvdW5kIj09PWguY29uZmlnLnBsb3RPcHRpb25zLmJhci5ib3JkZXJSYWRpdXNBcHBsaWNhdGlvbj8iIFoiOiIgeiIpLHRoaXMuc2hvdWxkQXBwbHlSYWRpdXMobykmJihtPWQucm91bmRQYXRoQ29ybmVycyhtLGguY29uZmlnLnBsb3RPcHRpb25zLmJhci5ib3JkZXJSYWRpdXMpKSxoLmNvbmZpZy5jaGFydC5zdGFja2VkJiYodGhpcy5iYXJDdHgueEFycmoucHVzaChuKSx0aGlzLmJhckN0eC54QXJyakYucHVzaChNYXRoLmFicyhhLW4pKSx0aGlzLmJhckN0eC54QXJyalZhbC5wdXNoKHRoaXMuYmFyQ3R4LnNlcmllc1tsXVtjXSkpLHtwYXRoVG86bSxwYXRoRnJvbTp2fX19LHtrZXk6ImNoZWNrWmVyb1NlcmllcyIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuc2VyaWVzLGk9dGhpcy53LHM9MDtzPGUubGVuZ3RoO3MrKyl7Zm9yKHZhciBhPTAsbj0wO248ZVtpLmdsb2JhbHMubWF4VmFsc0luQXJyYXlJbmRleF0ubGVuZ3RoO24rKylhKz1lW3NdW25dOzA9PT1hJiZ0aGlzLmJhckN0eC56ZXJvU2VyaWVzZXMucHVzaChzKX1mb3IodmFyIHI9ZS5sZW5ndGgtMTtyPj0wO3ItLSl0aGlzLmJhckN0eC56ZXJvU2VyaWVzZXMuaW5kZXhPZihyKT4tMSYmcj09PXRoaXMucmFkaXVzT25TZXJpZXNOdW1iZXImJih0aGlzLmJhckN0eC5yYWRpdXNPblNlcmllc051bWJlci09MSk7Zm9yKHZhciBvPWUubGVuZ3RoLTE7bz49MDtvLS0paS5nbG9iYWxzLmNvbGxhcHNlZFNlcmllc0luZGljZXMuaW5kZXhPZih0aGlzLmJhckN0eC5yYWRpdXNPblNlcmllc051bWJlcik+LTEmJih0aGlzLmJhckN0eC5yYWRpdXNPblNlcmllc051bWJlci09MSl9fSx7a2V5OiJnZXRYRm9yVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxzPWk/ZTpudWxsO3JldHVybiBudWxsIT10JiYocz1lK3QvdGhpcy5iYXJDdHguaW52ZXJ0ZWRZUmF0aW8tMioodGhpcy5iYXJDdHguaXNSZXZlcnNlZD90L3RoaXMuYmFyQ3R4LmludmVydGVkWVJhdGlvOjApKSxzfX0se2tleToiZ2V0WUZvclZhbHVlIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0scz1pP2U6bnVsbDtyZXR1cm4gbnVsbCE9dCYmKHM9ZS10L3RoaXMuYmFyQ3R4LnlSYXRpb1t0aGlzLmJhckN0eC55YXhpc0luZGV4XSsyKih0aGlzLmJhckN0eC5pc1JldmVyc2VkP3QvdGhpcy5iYXJDdHgueVJhdGlvW3RoaXMuYmFyQ3R4LnlheGlzSW5kZXhdOjApKSxzfX0se2tleToiZ2V0R29hbFZhbHVlcyIsdmFsdWU6ZnVuY3Rpb24odCxlLGkscyxhKXt2YXIgbj10aGlzLHI9dGhpcy53LG89W107cmV0dXJuIHIuZ2xvYmFscy5zZXJpZXNHb2Fsc1tzXSYmci5nbG9iYWxzLnNlcmllc0dvYWxzW3NdW2FdJiZBcnJheS5pc0FycmF5KHIuZ2xvYmFscy5zZXJpZXNHb2Fsc1tzXVthXSkmJnIuZ2xvYmFscy5zZXJpZXNHb2Fsc1tzXVthXS5mb3JFYWNoKChmdW5jdGlvbihzKXt2YXIgYTtvLnB1c2goKGgoYT17fSx0LCJ4Ij09PXQ/bi5nZXRYRm9yVmFsdWUocy52YWx1ZSxlLCExKTpuLmdldFlGb3JWYWx1ZShzLnZhbHVlLGksITEpKSxoKGEsImF0dHJzIixzKSxhKSl9KSksb319LHtrZXk6ImRyYXdHb2FsTGluZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5iYXJYUG9zaXRpb24saT10LmJhcllQb3NpdGlvbixzPXQuZ29hbFgsYT10LmdvYWxZLG49dC5iYXJXaWR0aCxyPXQuYmFySGVpZ2h0LG89bmV3IGsodGhpcy5iYXJDdHguY3R4KSxsPW8uZ3JvdXAoe2NsYXNzTmFtZToiYXBleGNoYXJ0cy1iYXItZ29hbHMtZ3JvdXBzIn0pLGM9bnVsbDtyZXR1cm4gdGhpcy5iYXJDdHguaXNIb3Jpem9udGFsP0FycmF5LmlzQXJyYXkocykmJnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dm9pZCAwIT09dC5hdHRycy5zdHJva2VIZWlnaHQ/dC5hdHRycy5zdHJva2VIZWlnaHQ6ci8yLHM9aStlK3IvMjtjPW8uZHJhd0xpbmUodC54LHMtMiplLHQueCxzLHQuYXR0cnMuc3Ryb2tlQ29sb3I/dC5hdHRycy5zdHJva2VDb2xvcjp2b2lkIDAsdC5hdHRycy5zdHJva2VEYXNoQXJyYXksdC5hdHRycy5zdHJva2VXaWR0aD90LmF0dHJzLnN0cm9rZVdpZHRoOjIsdC5hdHRycy5zdHJva2VMaW5lQ2FwKSxsLmFkZChjKX0pKTpBcnJheS5pc0FycmF5KGEpJiZhLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBpPXZvaWQgMCE9PXQuYXR0cnMuc3Ryb2tlV2lkdGg/dC5hdHRycy5zdHJva2VXaWR0aDpuLzIscz1lK2krbi8yO2M9by5kcmF3TGluZShzLTIqaSx0Lnkscyx0LnksdC5hdHRycy5zdHJva2VDb2xvcj90LmF0dHJzLnN0cm9rZUNvbG9yOnZvaWQgMCx0LmF0dHJzLnN0cm9rZURhc2hBcnJheSx0LmF0dHJzLnN0cm9rZUhlaWdodD90LmF0dHJzLnN0cm9rZUhlaWdodDoyLHQuYXR0cnMuc3Ryb2tlTGluZUNhcCksbC5hZGQoYyl9KSksbH19XSksdH0oKSxTdD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxpKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLnc9ZS53O3ZhciBzPXRoaXMudzt0aGlzLmJhck9wdGlvbnM9cy5jb25maWcucGxvdE9wdGlvbnMuYmFyLHRoaXMuaXNIb3Jpem9udGFsPXRoaXMuYmFyT3B0aW9ucy5ob3Jpem9udGFsLHRoaXMuc3Ryb2tlV2lkdGg9cy5jb25maWcuc3Ryb2tlLndpZHRoLHRoaXMuaXNOdWxsVmFsdWU9ITEsdGhpcy5pc1JhbmdlQmFyPXMuZ2xvYmFscy5zZXJpZXNSYW5nZS5sZW5ndGgmJnRoaXMuaXNIb3Jpem9udGFsLHRoaXMueHlSYXRpb3M9aSxudWxsIT09dGhpcy54eVJhdGlvcyYmKHRoaXMueFJhdGlvPWkueFJhdGlvLHRoaXMuaW5pdGlhbFhSYXRpbz1pLmluaXRpYWxYUmF0aW8sdGhpcy55UmF0aW89aS55UmF0aW8sdGhpcy5pbnZlcnRlZFhSYXRpbz1pLmludmVydGVkWFJhdGlvLHRoaXMuaW52ZXJ0ZWRZUmF0aW89aS5pbnZlcnRlZFlSYXRpbyx0aGlzLmJhc2VMaW5lWT1pLmJhc2VMaW5lWSx0aGlzLmJhc2VMaW5lSW52ZXJ0ZWRZPWkuYmFzZUxpbmVJbnZlcnRlZFkpLHRoaXMueWF4aXNJbmRleD0wLHRoaXMuc2VyaWVzTGVuPTA7dmFyIGE9bmV3IFkodGhpcy5jdHgpO3RoaXMubGFzdEFjdGl2ZUJhclNlcmllSW5kZXg9YS5nZXRBY3RpdmVDb25maWdTZXJpZXNJbmRleCgiZGVzYyIsWyJiYXIiLCJjb2x1bW4iXSk7dmFyIG49YS5nZXRCYXJTZXJpZXNJbmRpY2VzKCkscj1uZXcgUyh0aGlzLmN0eCk7dGhpcy5zdGFja2VkU2VyaWVzVG90YWxzPXIuZ2V0U3RhY2tlZFNlcmllc1RvdGFscyh0aGlzLncuY29uZmlnLnNlcmllcy5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuLTE9PT1uLmluZGV4T2YoZSk/ZTotMX0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybi0xIT09dH0pKSksdGhpcy5iYXJIZWxwZXJzPW5ldyBrdCh0aGlzKX1yZXR1cm4gYyh0LFt7a2V5OiJkcmF3Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudyxzPW5ldyBrKHRoaXMuY3R4KSxhPW5ldyBTKHRoaXMuY3R4LGkpO3Q9YS5nZXRMb2dTZXJpZXModCksdGhpcy5zZXJpZXM9dCx0aGlzLnlSYXRpbz1hLmdldExvZ1lSYXRpb3ModGhpcy55UmF0aW8pLHRoaXMuYmFySGVscGVycy5pbml0VmFyaWFibGVzKHQpO3ZhciByPXMuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLWJhci1zZXJpZXMgYXBleGNoYXJ0cy1wbG90LXNlcmllcyJ9KTtpLmNvbmZpZy5kYXRhTGFiZWxzLmVuYWJsZWQmJnRoaXMudG90YWxJdGVtcz50aGlzLmJhck9wdGlvbnMuZGF0YUxhYmVscy5tYXhJdGVtcyYmY29uc29sZS53YXJuKCJXQVJOSU5HOiBEYXRhTGFiZWxzIGFyZSBlbmFibGVkIGJ1dCB0aGVyZSBhcmUgdG9vIG1hbnkgdG8gZGlzcGxheS4gVGhpcyBtYXkgY2F1c2UgcGVyZm9ybWFuY2UgaXNzdWUgd2hlbiByZW5kZXJpbmcuIik7Zm9yKHZhciBvPTAsbD0wO288dC5sZW5ndGg7bysrLGwrKyl7dmFyIGMsaCxkLHUscD12b2lkIDAsZz12b2lkIDAsZj1bXSxtPVtdLHY9aS5nbG9iYWxzLmNvbWJvQ2hhcnRzP2Vbb106byx4PXMuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLXNlcmllcyIscmVsOm8rMSxzZXJpZXNOYW1lOmIuZXNjYXBlU3RyaW5nKGkuZ2xvYmFscy5zZXJpZXNOYW1lc1t2XSksImRhdGE6cmVhbEluZGV4Ijp2fSk7dGhpcy5jdHguc2VyaWVzLmFkZENvbGxhcHNlZENsYXNzVG9TZXJpZXMoeCx2KSx0W29dLmxlbmd0aD4wJiYodGhpcy52aXNpYmxlST10aGlzLnZpc2libGVJKzEpO3ZhciB5PTAsdz0wO3RoaXMueVJhdGlvLmxlbmd0aD4xJiYodGhpcy55YXhpc0luZGV4PXYpLHRoaXMuaXNSZXZlcnNlZD1pLmNvbmZpZy55YXhpc1t0aGlzLnlheGlzSW5kZXhdJiZpLmNvbmZpZy55YXhpc1t0aGlzLnlheGlzSW5kZXhdLnJldmVyc2VkO3ZhciBDPXRoaXMuYmFySGVscGVycy5pbml0aWFsUG9zaXRpb25zKCk7Zz1DLnkseT1DLmJhckhlaWdodCxoPUMueURpdmlzaW9uLHU9Qy56ZXJvVyxwPUMueCx3PUMuYmFyV2lkdGgsYz1DLnhEaXZpc2lvbixkPUMuemVyb0gsdGhpcy5ob3Jpem9udGFsfHxtLnB1c2gocCt3LzIpO2Zvcih2YXIgQT1zLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy1kYXRhbGFiZWxzIiwiZGF0YTpyZWFsSW5kZXgiOnZ9KSxFPXMuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLWJhci1nb2Fscy1tYXJrZXJzIixzdHlsZToicG9pbnRlci1ldmVudHM6IG5vbmUifSksVD0wO1Q8aS5nbG9iYWxzLmRhdGFQb2ludHM7VCsrKXt2YXIgTD10aGlzLmJhckhlbHBlcnMuZ2V0U3Ryb2tlV2lkdGgobyxULHYpLFA9bnVsbCxNPXtpbmRleGVzOntpOm8sajpULHJlYWxJbmRleDp2LGJjOmx9LHg6cCx5Omcsc3Ryb2tlV2lkdGg6TCxlbFNlcmllczp4fTt0aGlzLmlzSG9yaXpvbnRhbD8oUD10aGlzLmRyYXdCYXJQYXRocyhuKG4oe30sTSkse30se2JhckhlaWdodDp5LHplcm9XOnUseURpdmlzaW9uOmh9KSksdz10aGlzLnNlcmllc1tvXVtUXS90aGlzLmludmVydGVkWVJhdGlvKTooUD10aGlzLmRyYXdDb2x1bW5QYXRocyhuKG4oe30sTSkse30se3hEaXZpc2lvbjpjLGJhcldpZHRoOncsemVyb0g6ZH0pKSx5PXRoaXMuc2VyaWVzW29dW1RdL3RoaXMueVJhdGlvW3RoaXMueWF4aXNJbmRleF0pO3ZhciBPPXRoaXMuYmFySGVscGVycy5kcmF3R29hbExpbmUoe2JhclhQb3NpdGlvbjpQLmJhclhQb3NpdGlvbixiYXJZUG9zaXRpb246UC5iYXJZUG9zaXRpb24sZ29hbFg6UC5nb2FsWCxnb2FsWTpQLmdvYWxZLGJhckhlaWdodDp5LGJhcldpZHRoOnd9KTtPJiZFLmFkZChPKSxnPVAueSxwPVAueCxUPjAmJm0ucHVzaChwK3cvMiksZi5wdXNoKGcpO3ZhciBJPXRoaXMuYmFySGVscGVycy5nZXRQYXRoRmlsbENvbG9yKHQsbyxULHYpO3RoaXMucmVuZGVyU2VyaWVzKHtyZWFsSW5kZXg6dixwYXRoRmlsbDpJLGo6VCxpOm8scGF0aEZyb206UC5wYXRoRnJvbSxwYXRoVG86UC5wYXRoVG8sc3Ryb2tlV2lkdGg6TCxlbFNlcmllczp4LHg6cCx5Omcsc2VyaWVzOnQsYmFySGVpZ2h0OnksYmFyV2lkdGg6dyxlbERhdGFMYWJlbHNXcmFwOkEsZWxHb2Fsc01hcmtlcnM6RSx2aXNpYmxlU2VyaWVzOnRoaXMudmlzaWJsZUksdHlwZToiYmFyIn0pfWkuZ2xvYmFscy5zZXJpZXNYdmFsdWVzW3ZdPW0saS5nbG9iYWxzLnNlcmllc1l2YWx1ZXNbdl09ZixyLmFkZCh4KX1yZXR1cm4gcn19LHtrZXk6InJlbmRlclNlcmllcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5yZWFsSW5kZXgsaT10LnBhdGhGaWxsLHM9dC5saW5lRmlsbCxhPXQuaixuPXQuaSxyPXQucGF0aEZyb20sbz10LnBhdGhUbyxsPXQuc3Ryb2tlV2lkdGgsYz10LmVsU2VyaWVzLGg9dC54LGQ9dC55LHU9dC55MSxwPXQueTIsZz10LnNlcmllcyxmPXQuYmFySGVpZ2h0LG09dC5iYXJXaWR0aCx2PXQuYmFyWVBvc2l0aW9uLHg9dC5lbERhdGFMYWJlbHNXcmFwLGI9dC5lbEdvYWxzTWFya2Vycyx5PXQudmlzaWJsZVNlcmllcyxTPXQudHlwZSxDPXRoaXMudyxBPW5ldyBrKHRoaXMuY3R4KTtzfHwocz10aGlzLmJhck9wdGlvbnMuZGlzdHJpYnV0ZWQ/Qy5nbG9iYWxzLnN0cm9rZS5jb2xvcnNbYV06Qy5nbG9iYWxzLnN0cm9rZS5jb2xvcnNbZV0pLEMuY29uZmlnLnNlcmllc1tuXS5kYXRhW2FdJiZDLmNvbmZpZy5zZXJpZXNbbl0uZGF0YVthXS5zdHJva2VDb2xvciYmKHM9Qy5jb25maWcuc2VyaWVzW25dLmRhdGFbYV0uc3Ryb2tlQ29sb3IpLHRoaXMuaXNOdWxsVmFsdWUmJihpPSJub25lIik7dmFyIEU9YS9DLmNvbmZpZy5jaGFydC5hbmltYXRpb25zLmFuaW1hdGVHcmFkdWFsbHkuZGVsYXkqKEMuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuc3BlZWQvQy5nbG9iYWxzLmRhdGFQb2ludHMpLzIuNCxUPUEucmVuZGVyUGF0aHMoe2k6bixqOmEscmVhbEluZGV4OmUscGF0aEZyb206cixwYXRoVG86byxzdHJva2U6cyxzdHJva2VXaWR0aDpsLHN0cm9rZUxpbmVDYXA6Qy5jb25maWcuc3Ryb2tlLmxpbmVDYXAsZmlsbDppLGFuaW1hdGlvbkRlbGF5OkUsaW5pdGlhbFNwZWVkOkMuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuc3BlZWQsZGF0YUNoYW5nZVNwZWVkOkMuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuZHluYW1pY0FuaW1hdGlvbi5zcGVlZCxjbGFzc05hbWU6ImFwZXhjaGFydHMtIi5jb25jYXQoUywiLWFyZWEiKX0pO1QuYXR0cigiY2xpcC1wYXRoIiwidXJsKCNncmlkUmVjdE1hc2siLmNvbmNhdChDLmdsb2JhbHMuY3VpZCwiKSIpKTt2YXIgTD1DLmNvbmZpZy5mb3JlY2FzdERhdGFQb2ludHM7TC5jb3VudD4wJiZhPj1DLmdsb2JhbHMuZGF0YVBvaW50cy1MLmNvdW50JiYoVC5ub2RlLnNldEF0dHJpYnV0ZSgic3Ryb2tlLWRhc2hhcnJheSIsTC5kYXNoQXJyYXkpLFQubm9kZS5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsTC5zdHJva2VXaWR0aCksVC5ub2RlLnNldEF0dHJpYnV0ZSgiZmlsbC1vcGFjaXR5IixMLmZpbGxPcGFjaXR5KSksdm9pZCAwIT09dSYmdm9pZCAwIT09cCYmKFQuYXR0cigiZGF0YS1yYW5nZS15MSIsdSksVC5hdHRyKCJkYXRhLXJhbmdlLXkyIixwKSksbmV3IHcodGhpcy5jdHgpLnNldFNlbGVjdGlvbkZpbHRlcihULGUsYSksYy5hZGQoVCk7dmFyIFA9bmV3IHd0KHRoaXMpLmhhbmRsZUJhckRhdGFMYWJlbHMoe3g6aCx5OmQseTE6dSx5MjpwLGk6bixqOmEsc2VyaWVzOmcscmVhbEluZGV4OmUsYmFySGVpZ2h0OmYsYmFyV2lkdGg6bSxiYXJZUG9zaXRpb246dixyZW5kZXJlZFBhdGg6VCx2aXNpYmxlU2VyaWVzOnl9KTtyZXR1cm4gbnVsbCE9PVAuZGF0YUxhYmVscyYmeC5hZGQoUC5kYXRhTGFiZWxzKSxQLnRvdGFsRGF0YUxhYmVscyYmeC5hZGQoUC50b3RhbERhdGFMYWJlbHMpLGMuYWRkKHgpLGImJmMuYWRkKGIpLGN9fSx7a2V5OiJkcmF3QmFyUGF0aHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhlcyxpPXQuYmFySGVpZ2h0LHM9dC5zdHJva2VXaWR0aCxhPXQuemVyb1csbj10Lngscj10Lnksbz10LnlEaXZpc2lvbixsPXQuZWxTZXJpZXMsYz10aGlzLncsaD1lLmksZD1lLmo7Yy5nbG9iYWxzLmlzWE51bWVyaWMmJihyPShjLmdsb2JhbHMuc2VyaWVzWFtoXVtkXS1jLmdsb2JhbHMubWluWCkvdGhpcy5pbnZlcnRlZFhSYXRpby1pKTt2YXIgdT1yK2kqdGhpcy52aXNpYmxlSTtuPXRoaXMuYmFySGVscGVycy5nZXRYRm9yVmFsdWUodGhpcy5zZXJpZXNbaF1bZF0sYSk7dmFyIHA9dGhpcy5iYXJIZWxwZXJzLmdldEJhcnBhdGhzKHtiYXJZUG9zaXRpb246dSxiYXJIZWlnaHQ6aSx4MTphLHgyOm4sc3Ryb2tlV2lkdGg6cyxzZXJpZXM6dGhpcy5zZXJpZXMscmVhbEluZGV4OmUucmVhbEluZGV4LGk6aCxqOmQsdzpjfSk7cmV0dXJuIGMuZ2xvYmFscy5pc1hOdW1lcmljfHwocis9byksdGhpcy5iYXJIZWxwZXJzLmJhckJhY2tncm91bmQoe2o6ZCxpOmgseTE6dS1pKnRoaXMudmlzaWJsZUkseTI6aSp0aGlzLnNlcmllc0xlbixlbFNlcmllczpsfSkse3BhdGhUbzpwLnBhdGhUbyxwYXRoRnJvbTpwLnBhdGhGcm9tLHg6bix5OnIsZ29hbFg6dGhpcy5iYXJIZWxwZXJzLmdldEdvYWxWYWx1ZXMoIngiLGEsbnVsbCxoLGQpLGJhcllQb3NpdGlvbjp1fX19LHtrZXk6ImRyYXdDb2x1bW5QYXRocyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5pbmRleGVzLGk9dC54LHM9dC55LGE9dC54RGl2aXNpb24sbj10LmJhcldpZHRoLHI9dC56ZXJvSCxvPXQuc3Ryb2tlV2lkdGgsbD10LmVsU2VyaWVzLGM9dGhpcy53LGg9ZS5yZWFsSW5kZXgsZD1lLmksdT1lLmoscD1lLmJjO2lmKGMuZ2xvYmFscy5pc1hOdW1lcmljKXt2YXIgZz1oO2MuZ2xvYmFscy5zZXJpZXNYW2hdLmxlbmd0aHx8KGc9Yy5nbG9iYWxzLm1heFZhbHNJbkFycmF5SW5kZXgpLGk9KGMuZ2xvYmFscy5zZXJpZXNYW2ddW3VdLWMuZ2xvYmFscy5taW5YKS90aGlzLnhSYXRpby1uKnRoaXMuc2VyaWVzTGVuLzJ9dmFyIGY9aStuKnRoaXMudmlzaWJsZUk7cz10aGlzLmJhckhlbHBlcnMuZ2V0WUZvclZhbHVlKHRoaXMuc2VyaWVzW2RdW3VdLHIpO3ZhciBtPXRoaXMuYmFySGVscGVycy5nZXRDb2x1bW5QYXRocyh7YmFyWFBvc2l0aW9uOmYsYmFyV2lkdGg6bix5MTpyLHkyOnMsc3Ryb2tlV2lkdGg6byxzZXJpZXM6dGhpcy5zZXJpZXMscmVhbEluZGV4OmUucmVhbEluZGV4LGk6ZCxqOnUsdzpjfSk7cmV0dXJuIGMuZ2xvYmFscy5pc1hOdW1lcmljfHwoaSs9YSksdGhpcy5iYXJIZWxwZXJzLmJhckJhY2tncm91bmQoe2JjOnAsajp1LGk6ZCx4MTpmLW8vMi1uKnRoaXMudmlzaWJsZUkseDI6bip0aGlzLnNlcmllc0xlbitvLzIsZWxTZXJpZXM6bH0pLHtwYXRoVG86bS5wYXRoVG8scGF0aEZyb206bS5wYXRoRnJvbSx4OmkseTpzLGdvYWxZOnRoaXMuYmFySGVscGVycy5nZXRHb2FsVmFsdWVzKCJ5IixudWxsLHIsZCx1KSxiYXJYUG9zaXRpb246Zn19fSx7a2V5OiJnZXRQcmV2aW91c1BhdGgiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBpLHM9dGhpcy53LGE9MDthPHMuZ2xvYmFscy5wcmV2aW91c1BhdGhzLmxlbmd0aDthKyspe3ZhciBuPXMuZ2xvYmFscy5wcmV2aW91c1BhdGhzW2FdO24ucGF0aHMmJm4ucGF0aHMubGVuZ3RoPjAmJnBhcnNlSW50KG4ucmVhbEluZGV4LDEwKT09PXBhcnNlSW50KHQsMTApJiZ2b2lkIDAhPT1zLmdsb2JhbHMucHJldmlvdXNQYXRoc1thXS5wYXRoc1tlXSYmKGk9cy5nbG9iYWxzLnByZXZpb3VzUGF0aHNbYV0ucGF0aHNbZV0uZCl9cmV0dXJuIGl9fV0pLHR9KCksQ3Q9ZnVuY3Rpb24odCl7ZChpLFN0KTt2YXIgZT1mKGkpO2Z1bmN0aW9uIGkoKXtyZXR1cm4gbyh0aGlzLGkpLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBjKGksW3trZXk6ImRyYXciLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcyxzPXRoaXMudzt0aGlzLmdyYXBoaWNzPW5ldyBrKHRoaXMuY3R4KSx0aGlzLmJhcj1uZXcgU3QodGhpcy5jdHgsdGhpcy54eVJhdGlvcyk7dmFyIGE9bmV3IFModGhpcy5jdHgscyk7dD1hLmdldExvZ1Nlcmllcyh0KSx0aGlzLnlSYXRpbz1hLmdldExvZ1lSYXRpb3ModGhpcy55UmF0aW8pLHRoaXMuYmFySGVscGVycy5pbml0VmFyaWFibGVzKHQpLCIxMDAlIj09PXMuY29uZmlnLmNoYXJ0LnN0YWNrVHlwZSYmKHQ9cy5nbG9iYWxzLnNlcmllc1BlcmNlbnQuc2xpY2UoKSksdGhpcy5zZXJpZXM9dCx0aGlzLnRvdGFsSXRlbXM9MCx0aGlzLnByZXZZPVtdLHRoaXMucHJldlg9W10sdGhpcy5wcmV2WUY9W10sdGhpcy5wcmV2WEY9W10sdGhpcy5wcmV2WVZhbD1bXSx0aGlzLnByZXZYVmFsPVtdLHRoaXMueEFycmo9W10sdGhpcy54QXJyakY9W10sdGhpcy54QXJyalZhbD1bXSx0aGlzLnlBcnJqPVtdLHRoaXMueUFycmpGPVtdLHRoaXMueUFycmpWYWw9W107Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdFtyXS5sZW5ndGg+MCYmKHRoaXMudG90YWxJdGVtcys9dFtyXS5sZW5ndGgpO2Zvcih2YXIgbz10aGlzLmdyYXBoaWNzLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy1iYXItc2VyaWVzIGFwZXhjaGFydHMtcGxvdC1zZXJpZXMifSksbD0wLGM9MCxoPWZ1bmN0aW9uKGEscil7dmFyIGg9dm9pZCAwLGQ9dm9pZCAwLHU9dm9pZCAwLHA9dm9pZCAwLGc9W10sZj1bXSxtPXMuZ2xvYmFscy5jb21ib0NoYXJ0cz9lW2FdOmE7aS55UmF0aW8ubGVuZ3RoPjEmJihpLnlheGlzSW5kZXg9bSksaS5pc1JldmVyc2VkPXMuY29uZmlnLnlheGlzW2kueWF4aXNJbmRleF0mJnMuY29uZmlnLnlheGlzW2kueWF4aXNJbmRleF0ucmV2ZXJzZWQ7dmFyIHY9aS5ncmFwaGljcy5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtc2VyaWVzIixzZXJpZXNOYW1lOmIuZXNjYXBlU3RyaW5nKHMuZ2xvYmFscy5zZXJpZXNOYW1lc1ttXSkscmVsOmErMSwiZGF0YTpyZWFsSW5kZXgiOm19KTtpLmN0eC5zZXJpZXMuYWRkQ29sbGFwc2VkQ2xhc3NUb1Nlcmllcyh2LG0pO3ZhciB4PWkuZ3JhcGhpY3MuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLWRhdGFsYWJlbHMiLCJkYXRhOnJlYWxJbmRleCI6bX0pLHk9aS5ncmFwaGljcy5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtYmFyLWdvYWxzLW1hcmtlcnMiLHN0eWxlOiJwb2ludGVyLWV2ZW50czogbm9uZSJ9KSx3PTAsaz0wLFM9aS5pbml0aWFsUG9zaXRpb25zKGwsYyxoLGQsdSxwKTtjPVMueSx3PVMuYmFySGVpZ2h0LGQ9Uy55RGl2aXNpb24scD1TLnplcm9XLGw9Uy54LGs9Uy5iYXJXaWR0aCxoPVMueERpdmlzaW9uLHU9Uy56ZXJvSCxpLnlBcnJqPVtdLGkueUFycmpGPVtdLGkueUFycmpWYWw9W10saS54QXJyaj1bXSxpLnhBcnJqRj1bXSxpLnhBcnJqVmFsPVtdLDE9PT1pLnByZXZZLmxlbmd0aCYmaS5wcmV2WVswXS5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIGlzTmFOKHQpfSkpJiYoaS5wcmV2WVswXT1pLnByZXZZWzBdLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHV9KSksaS5wcmV2WUZbMF09aS5wcmV2WUZbMF0ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gMH0pKSk7Zm9yKHZhciBDPTA7QzxzLmdsb2JhbHMuZGF0YVBvaW50cztDKyspe3ZhciBBPWkuYmFySGVscGVycy5nZXRTdHJva2VXaWR0aChhLEMsbSksRT17aW5kZXhlczp7aTphLGo6QyxyZWFsSW5kZXg6bSxiYzpyfSxzdHJva2VXaWR0aDpBLHg6bCx5OmMsZWxTZXJpZXM6dn0sVD1udWxsO2kuaXNIb3Jpem9udGFsPyhUPWkuZHJhd1N0YWNrZWRCYXJQYXRocyhuKG4oe30sRSkse30se3plcm9XOnAsYmFySGVpZ2h0OncseURpdmlzaW9uOmR9KSksaz1pLnNlcmllc1thXVtDXS9pLmludmVydGVkWVJhdGlvKTooVD1pLmRyYXdTdGFja2VkQ29sdW1uUGF0aHMobihuKHt9LEUpLHt9LHt4RGl2aXNpb246aCxiYXJXaWR0aDprLHplcm9IOnV9KSksdz1pLnNlcmllc1thXVtDXS9pLnlSYXRpb1tpLnlheGlzSW5kZXhdKTt2YXIgTD1pLmJhckhlbHBlcnMuZHJhd0dvYWxMaW5lKHtiYXJYUG9zaXRpb246VC5iYXJYUG9zaXRpb24sYmFyWVBvc2l0aW9uOlQuYmFyWVBvc2l0aW9uLGdvYWxYOlQuZ29hbFgsZ29hbFk6VC5nb2FsWSxiYXJIZWlnaHQ6dyxiYXJXaWR0aDprfSk7TCYmeS5hZGQoTCksYz1ULnksbD1ULngsZy5wdXNoKGwpLGYucHVzaChjKTt2YXIgUD1pLmJhckhlbHBlcnMuZ2V0UGF0aEZpbGxDb2xvcih0LGEsQyxtKTt2PWkucmVuZGVyU2VyaWVzKHtyZWFsSW5kZXg6bSxwYXRoRmlsbDpQLGo6QyxpOmEscGF0aEZyb206VC5wYXRoRnJvbSxwYXRoVG86VC5wYXRoVG8sc3Ryb2tlV2lkdGg6QSxlbFNlcmllczp2LHg6bCx5OmMsc2VyaWVzOnQsYmFySGVpZ2h0OncsYmFyV2lkdGg6ayxlbERhdGFMYWJlbHNXcmFwOngsZWxHb2Fsc01hcmtlcnM6eSx0eXBlOiJiYXIiLHZpc2libGVTZXJpZXM6MH0pfXMuZ2xvYmFscy5zZXJpZXNYdmFsdWVzW21dPWcscy5nbG9iYWxzLnNlcmllc1l2YWx1ZXNbbV09ZixpLnByZXZZLnB1c2goaS55QXJyaiksaS5wcmV2WUYucHVzaChpLnlBcnJqRiksaS5wcmV2WVZhbC5wdXNoKGkueUFycmpWYWwpLGkucHJldlgucHVzaChpLnhBcnJqKSxpLnByZXZYRi5wdXNoKGkueEFycmpGKSxpLnByZXZYVmFsLnB1c2goaS54QXJyalZhbCksby5hZGQodil9LGQ9MCx1PTA7ZDx0Lmxlbmd0aDtkKyssdSsrKWgoZCx1KTtyZXR1cm4gb319LHtrZXk6ImluaXRpYWxQb3NpdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMsYSxuKXt2YXIgcixvLGw9dGhpcy53O3JldHVybiB0aGlzLmlzSG9yaXpvbnRhbD8ocj0ocj1zPWwuZ2xvYmFscy5ncmlkSGVpZ2h0L2wuZ2xvYmFscy5kYXRhUG9pbnRzKSpwYXJzZUludChsLmNvbmZpZy5wbG90T3B0aW9ucy5iYXIuYmFySGVpZ2h0LDEwKS8xMDAsbj10aGlzLmJhc2VMaW5lSW52ZXJ0ZWRZK2wuZ2xvYmFscy5wYWRIb3Jpem9udGFsKyh0aGlzLmlzUmV2ZXJzZWQ/bC5nbG9iYWxzLmdyaWRXaWR0aDowKS0odGhpcy5pc1JldmVyc2VkPzIqdGhpcy5iYXNlTGluZUludmVydGVkWTowKSxlPShzLXIpLzIpOihvPWk9bC5nbG9iYWxzLmdyaWRXaWR0aC9sLmdsb2JhbHMuZGF0YVBvaW50cyxvPWwuZ2xvYmFscy5pc1hOdW1lcmljJiZsLmdsb2JhbHMuZGF0YVBvaW50cz4xPyhpPWwuZ2xvYmFscy5taW5YRGlmZi90aGlzLnhSYXRpbykqcGFyc2VJbnQodGhpcy5iYXJPcHRpb25zLmNvbHVtbldpZHRoLDEwKS8xMDA6bypwYXJzZUludChsLmNvbmZpZy5wbG90T3B0aW9ucy5iYXIuY29sdW1uV2lkdGgsMTApLzEwMCxhPWwuZ2xvYmFscy5ncmlkSGVpZ2h0LXRoaXMuYmFzZUxpbmVZW3RoaXMueWF4aXNJbmRleF0tKHRoaXMuaXNSZXZlcnNlZD9sLmdsb2JhbHMuZ3JpZEhlaWdodDowKSsodGhpcy5pc1JldmVyc2VkPzIqdGhpcy5iYXNlTGluZVlbdGhpcy55YXhpc0luZGV4XTowKSx0PWwuZ2xvYmFscy5wYWRIb3Jpem9udGFsKyhpLW8pLzIpLHt4OnQseTplLHlEaXZpc2lvbjpzLHhEaXZpc2lvbjppLGJhckhlaWdodDpyLGJhcldpZHRoOm8semVyb0g6YSx6ZXJvVzpufX19LHtrZXk6ImRyYXdTdGFja2VkQmFyUGF0aHMiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPXQuaW5kZXhlcyxzPXQuYmFySGVpZ2h0LGE9dC5zdHJva2VXaWR0aCxuPXQuemVyb1cscj10Lngsbz10LnksbD10LnlEaXZpc2lvbixjPXQuZWxTZXJpZXMsaD10aGlzLncsZD1vLHU9aS5pLHA9aS5qLGc9MCxmPTA7Zjx0aGlzLnByZXZYRi5sZW5ndGg7ZisrKWcrPXRoaXMucHJldlhGW2ZdW3BdO2lmKHU+MCl7dmFyIG09bjt0aGlzLnByZXZYVmFsW3UtMV1bcF08MD9tPXRoaXMuc2VyaWVzW3VdW3BdPj0wP3RoaXMucHJldlhbdS0xXVtwXStnLTIqKHRoaXMuaXNSZXZlcnNlZD9nOjApOnRoaXMucHJldlhbdS0xXVtwXTp0aGlzLnByZXZYVmFsW3UtMV1bcF0+PTAmJihtPXRoaXMuc2VyaWVzW3VdW3BdPj0wP3RoaXMucHJldlhbdS0xXVtwXTp0aGlzLnByZXZYW3UtMV1bcF0tZysyKih0aGlzLmlzUmV2ZXJzZWQ/ZzowKSksZT1tfWVsc2UgZT1uO3I9bnVsbD09PXRoaXMuc2VyaWVzW3VdW3BdP2U6ZSt0aGlzLnNlcmllc1t1XVtwXS90aGlzLmludmVydGVkWVJhdGlvLTIqKHRoaXMuaXNSZXZlcnNlZD90aGlzLnNlcmllc1t1XVtwXS90aGlzLmludmVydGVkWVJhdGlvOjApO3ZhciB2PXRoaXMuYmFySGVscGVycy5nZXRCYXJwYXRocyh7YmFyWVBvc2l0aW9uOmQsYmFySGVpZ2h0OnMseDE6ZSx4MjpyLHN0cm9rZVdpZHRoOmEsc2VyaWVzOnRoaXMuc2VyaWVzLHJlYWxJbmRleDppLnJlYWxJbmRleCxpOnUsajpwLHc6aH0pO3JldHVybiB0aGlzLmJhckhlbHBlcnMuYmFyQmFja2dyb3VuZCh7ajpwLGk6dSx5MTpkLHkyOnMsZWxTZXJpZXM6Y30pLG8rPWwse3BhdGhUbzp2LnBhdGhUbyxwYXRoRnJvbTp2LnBhdGhGcm9tLGdvYWxYOnRoaXMuYmFySGVscGVycy5nZXRHb2FsVmFsdWVzKCJ4IixuLG51bGwsdSxwKSxiYXJZUG9zaXRpb246ZCx4OnIseTpvfX19LHtrZXk6ImRyYXdTdGFja2VkQ29sdW1uUGF0aHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhlcyxpPXQueCxzPXQueSxhPXQueERpdmlzaW9uLG49dC5iYXJXaWR0aCxyPXQuemVyb0g7dC5zdHJva2VXaWR0aDt2YXIgbz10LmVsU2VyaWVzLGw9dGhpcy53LGM9ZS5pLGg9ZS5qLGQ9ZS5iYztpZihsLmdsb2JhbHMuaXNYTnVtZXJpYyl7dmFyIHU9bC5nbG9iYWxzLnNlcmllc1hbY11baF07dXx8KHU9MCksaT0odS1sLmdsb2JhbHMubWluWCkvdGhpcy54UmF0aW8tbi8yfWZvcih2YXIgcCxnPWksZj0wLG09MDttPHRoaXMucHJldllGLmxlbmd0aDttKyspZis9aXNOYU4odGhpcy5wcmV2WUZbbV1baF0pPzA6dGhpcy5wcmV2WUZbbV1baF07aWYoYz4wJiYhbC5nbG9iYWxzLmlzWE51bWVyaWN8fGM+MCYmbC5nbG9iYWxzLmlzWE51bWVyaWMmJmwuZ2xvYmFscy5zZXJpZXNYW2MtMV1baF09PT1sLmdsb2JhbHMuc2VyaWVzWFtjXVtoXSl7dmFyIHYseCxiPU1hdGgubWluKHRoaXMueVJhdGlvLmxlbmd0aCsxLGMrMSk7aWYodm9pZCAwIT09dGhpcy5wcmV2WVtjLTFdKWZvcih2YXIgeT0xO3k8Yjt5KyspaWYoIWlzTmFOKHRoaXMucHJldllbYy15XVtoXSkpe3g9dGhpcy5wcmV2WVtjLXldW2hdO2JyZWFrfWZvcih2YXIgdz0xO3c8Yjt3Kyspe2lmKHRoaXMucHJldllWYWxbYy13XVtoXTwwKXt2PXRoaXMuc2VyaWVzW2NdW2hdPj0wP3gtZisyKih0aGlzLmlzUmV2ZXJzZWQ/ZjowKTp4O2JyZWFrfWlmKHRoaXMucHJldllWYWxbYy13XVtoXT49MCl7dj10aGlzLnNlcmllc1tjXVtoXT49MD94OngrZi0yKih0aGlzLmlzUmV2ZXJzZWQ/ZjowKTticmVha319dm9pZCAwPT09diYmKHY9bC5nbG9iYWxzLmdyaWRIZWlnaHQpLHA9dGhpcy5wcmV2WUZbMF0uZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09dH0pKSYmdGhpcy5wcmV2WUYuc2xpY2UoMSxjKS5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiBpc05hTih0KX0pKX0pKT9yOnZ9ZWxzZSBwPXI7cz1wLXRoaXMuc2VyaWVzW2NdW2hdL3RoaXMueVJhdGlvW3RoaXMueWF4aXNJbmRleF0rMioodGhpcy5pc1JldmVyc2VkP3RoaXMuc2VyaWVzW2NdW2hdL3RoaXMueVJhdGlvW3RoaXMueWF4aXNJbmRleF06MCk7dmFyIGs9dGhpcy5iYXJIZWxwZXJzLmdldENvbHVtblBhdGhzKHtiYXJYUG9zaXRpb246ZyxiYXJXaWR0aDpuLHkxOnAseTI6cyx5UmF0aW86dGhpcy55UmF0aW9bdGhpcy55YXhpc0luZGV4XSxzdHJva2VXaWR0aDp0aGlzLnN0cm9rZVdpZHRoLHNlcmllczp0aGlzLnNlcmllcyxyZWFsSW5kZXg6ZS5yZWFsSW5kZXgsaTpjLGo6aCx3Omx9KTtyZXR1cm4gdGhpcy5iYXJIZWxwZXJzLmJhckJhY2tncm91bmQoe2JjOmQsajpoLGk6Yyx4MTpnLHgyOm4sZWxTZXJpZXM6b30pLGkrPWEse3BhdGhUbzprLnBhdGhUbyxwYXRoRnJvbTprLnBhdGhGcm9tLGdvYWxZOnRoaXMuYmFySGVscGVycy5nZXRHb2FsVmFsdWVzKCJ5IixudWxsLHIsYyxoKSxiYXJYUG9zaXRpb246Zyx4OmwuZ2xvYmFscy5pc1hOdW1lcmljP2ktYTppLHk6c319fV0pLGl9KCksQXQ9ZnVuY3Rpb24odCl7ZChpLFN0KTt2YXIgZT1mKGkpO2Z1bmN0aW9uIGkoKXtyZXR1cm4gbyh0aGlzLGkpLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBjKGksW3trZXk6ImRyYXciLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcyxzPXRoaXMudyxhPW5ldyBrKHRoaXMuY3R4KSxyPW5ldyBfKHRoaXMuY3R4KTt0aGlzLmNhbmRsZXN0aWNrT3B0aW9ucz10aGlzLncuY29uZmlnLnBsb3RPcHRpb25zLmNhbmRsZXN0aWNrLHRoaXMuYm94T3B0aW9ucz10aGlzLncuY29uZmlnLnBsb3RPcHRpb25zLmJveFBsb3QsdGhpcy5pc0hvcml6b250YWw9cy5jb25maWcucGxvdE9wdGlvbnMuYmFyLmhvcml6b250YWw7dmFyIG89bmV3IFModGhpcy5jdHgscyk7dD1vLmdldExvZ1Nlcmllcyh0KSx0aGlzLnNlcmllcz10LHRoaXMueVJhdGlvPW8uZ2V0TG9nWVJhdGlvcyh0aGlzLnlSYXRpbyksdGhpcy5iYXJIZWxwZXJzLmluaXRWYXJpYWJsZXModCk7Zm9yKHZhciBsPWEuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLSIuY29uY2F0KHMuY29uZmlnLmNoYXJ0LnR5cGUsIi1zZXJpZXMgYXBleGNoYXJ0cy1wbG90LXNlcmllcyIpfSksYz1mdW5jdGlvbihvKXtpLmlzQm94UGxvdD0iYm94UGxvdCI9PT1zLmNvbmZpZy5jaGFydC50eXBlfHwiYm94UGxvdCI9PT1zLmNvbmZpZy5zZXJpZXNbb10udHlwZTt2YXIgYyxoLGQsdSxwLGcsZj12b2lkIDAsbT12b2lkIDAsdj1bXSx4PVtdLHk9cy5nbG9iYWxzLmNvbWJvQ2hhcnRzP2Vbb106byx3PWEuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLXNlcmllcyIsc2VyaWVzTmFtZTpiLmVzY2FwZVN0cmluZyhzLmdsb2JhbHMuc2VyaWVzTmFtZXNbeV0pLHJlbDpvKzEsImRhdGE6cmVhbEluZGV4Ijp5fSk7aS5jdHguc2VyaWVzLmFkZENvbGxhcHNlZENsYXNzVG9TZXJpZXModyx5KSx0W29dLmxlbmd0aD4wJiYoaS52aXNpYmxlST1pLnZpc2libGVJKzEpLGkueVJhdGlvLmxlbmd0aD4xJiYoaS55YXhpc0luZGV4PXkpO3ZhciBrPWkuYmFySGVscGVycy5pbml0aWFsUG9zaXRpb25zKCk7bT1rLnkscD1rLmJhckhlaWdodCxoPWsueURpdmlzaW9uLHU9ay56ZXJvVyxmPWsueCxnPWsuYmFyV2lkdGgsYz1rLnhEaXZpc2lvbixkPWsuemVyb0gseC5wdXNoKGYrZy8yKTtmb3IodmFyIFM9YS5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtZGF0YWxhYmVscyIsImRhdGE6cmVhbEluZGV4Ijp5fSksQz1mdW5jdGlvbihlKXt2YXIgYT1pLmJhckhlbHBlcnMuZ2V0U3Ryb2tlV2lkdGgobyxlLHkpLGw9bnVsbCxiPXtpbmRleGVzOntpOm8sajplLHJlYWxJbmRleDp5fSx4OmYseTptLHN0cm9rZVdpZHRoOmEsZWxTZXJpZXM6d307bD1pLmlzSG9yaXpvbnRhbD9pLmRyYXdIb3Jpem9udGFsQm94UGF0aHMobihuKHt9LGIpLHt9LHt5RGl2aXNpb246aCxiYXJIZWlnaHQ6cCx6ZXJvVzp1fSkpOmkuZHJhd1ZlcnRpY2FsQm94UGF0aHMobihuKHt9LGIpLHt9LHt4RGl2aXNpb246YyxiYXJXaWR0aDpnLHplcm9IOmR9KSksbT1sLnksZj1sLngsZT4wJiZ4LnB1c2goZitnLzIpLHYucHVzaChtKSxsLnBhdGhUby5mb3JFYWNoKChmdW5jdGlvbihuLGMpe3ZhciBoPSFpLmlzQm94UGxvdCYmaS5jYW5kbGVzdGlja09wdGlvbnMud2ljay51c2VGaWxsQ29sb3I/bC5jb2xvcltjXTpzLmdsb2JhbHMuc3Ryb2tlLmNvbG9yc1tvXSxkPXIuZmlsbFBhdGgoe3Nlcmllc051bWJlcjp5LGRhdGFQb2ludEluZGV4OmUsY29sb3I6bC5jb2xvcltjXSx2YWx1ZTp0W29dW2VdfSk7aS5yZW5kZXJTZXJpZXMoe3JlYWxJbmRleDp5LHBhdGhGaWxsOmQsbGluZUZpbGw6aCxqOmUsaTpvLHBhdGhGcm9tOmwucGF0aEZyb20scGF0aFRvOm4sc3Ryb2tlV2lkdGg6YSxlbFNlcmllczp3LHg6Zix5Om0sc2VyaWVzOnQsYmFySGVpZ2h0OnAsYmFyV2lkdGg6ZyxlbERhdGFMYWJlbHNXcmFwOlMsdmlzaWJsZVNlcmllczppLnZpc2libGVJLHR5cGU6cy5jb25maWcuY2hhcnQudHlwZX0pfSkpfSxBPTA7QTxzLmdsb2JhbHMuZGF0YVBvaW50cztBKyspQyhBKTtzLmdsb2JhbHMuc2VyaWVzWHZhbHVlc1t5XT14LHMuZ2xvYmFscy5zZXJpZXNZdmFsdWVzW3ldPXYsbC5hZGQodyl9LGg9MDtoPHQubGVuZ3RoO2grKyljKGgpO3JldHVybiBsfX0se2tleToiZHJhd1ZlcnRpY2FsQm94UGF0aHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhlcyxpPXQueDt0Lnk7dmFyIHM9dC54RGl2aXNpb24sYT10LmJhcldpZHRoLG49dC56ZXJvSCxyPXQuc3Ryb2tlV2lkdGgsbz10aGlzLncsbD1uZXcgayh0aGlzLmN0eCksYz1lLmksaD1lLmosZD0hMCx1PW8uY29uZmlnLnBsb3RPcHRpb25zLmNhbmRsZXN0aWNrLmNvbG9ycy51cHdhcmQscD1vLmNvbmZpZy5wbG90T3B0aW9ucy5jYW5kbGVzdGljay5jb2xvcnMuZG93bndhcmQsZz0iIjt0aGlzLmlzQm94UGxvdCYmKGc9W3RoaXMuYm94T3B0aW9ucy5jb2xvcnMubG93ZXIsdGhpcy5ib3hPcHRpb25zLmNvbG9ycy51cHBlcl0pO3ZhciBmPXRoaXMueVJhdGlvW3RoaXMueWF4aXNJbmRleF0sbT1lLnJlYWxJbmRleCx2PXRoaXMuZ2V0T0hMQ1ZhbHVlKG0saCkseD1uLGI9bjt2Lm8+di5jJiYoZD0hMSk7dmFyIHk9TWF0aC5taW4odi5vLHYuYyksdz1NYXRoLm1heCh2Lm8sdi5jKSxTPXYubTtvLmdsb2JhbHMuaXNYTnVtZXJpYyYmKGk9KG8uZ2xvYmFscy5zZXJpZXNYW21dW2hdLW8uZ2xvYmFscy5taW5YKS90aGlzLnhSYXRpby1hLzIpO3ZhciBDPWkrYSp0aGlzLnZpc2libGVJO3ZvaWQgMD09PXRoaXMuc2VyaWVzW2NdW2hdfHxudWxsPT09dGhpcy5zZXJpZXNbY11baF0/KHk9bix3PW4pOih5PW4teS9mLHc9bi13L2YseD1uLXYuaC9mLGI9bi12LmwvZixTPW4tdi5tL2YpO3ZhciBBPWwubW92ZShDLG4pLEU9bC5tb3ZlKEMrYS8yLHkpO3JldHVybiBvLmdsb2JhbHMucHJldmlvdXNQYXRocy5sZW5ndGg+MCYmKEU9dGhpcy5nZXRQcmV2aW91c1BhdGgobSxoLCEwKSksQT10aGlzLmlzQm94UGxvdD9bbC5tb3ZlKEMseSkrbC5saW5lKEMrYS8yLHkpK2wubGluZShDK2EvMix4KStsLmxpbmUoQythLzQseCkrbC5saW5lKEMrYS1hLzQseCkrbC5saW5lKEMrYS8yLHgpK2wubGluZShDK2EvMix5KStsLmxpbmUoQythLHkpK2wubGluZShDK2EsUykrbC5saW5lKEMsUykrbC5saW5lKEMseStyLzIpLGwubW92ZShDLFMpK2wubGluZShDK2EsUykrbC5saW5lKEMrYSx3KStsLmxpbmUoQythLzIsdykrbC5saW5lKEMrYS8yLGIpK2wubGluZShDK2EtYS80LGIpK2wubGluZShDK2EvNCxiKStsLmxpbmUoQythLzIsYikrbC5saW5lKEMrYS8yLHcpK2wubGluZShDLHcpK2wubGluZShDLFMpKyJ6Il06W2wubW92ZShDLHcpK2wubGluZShDK2EvMix3KStsLmxpbmUoQythLzIseCkrbC5saW5lKEMrYS8yLHcpK2wubGluZShDK2EsdykrbC5saW5lKEMrYSx5KStsLmxpbmUoQythLzIseSkrbC5saW5lKEMrYS8yLGIpK2wubGluZShDK2EvMix5KStsLmxpbmUoQyx5KStsLmxpbmUoQyx3LXIvMildLEUrPWwubW92ZShDLHkpLG8uZ2xvYmFscy5pc1hOdW1lcmljfHwoaSs9cykse3BhdGhUbzpBLHBhdGhGcm9tOkUseDppLHk6dyxiYXJYUG9zaXRpb246Qyxjb2xvcjp0aGlzLmlzQm94UGxvdD9nOmQ/W3VdOltwXX19fSx7a2V5OiJkcmF3SG9yaXpvbnRhbEJveFBhdGhzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmluZGV4ZXM7dC54O3ZhciBpPXQueSxzPXQueURpdmlzaW9uLGE9dC5iYXJIZWlnaHQsbj10Lnplcm9XLHI9dC5zdHJva2VXaWR0aCxvPXRoaXMudyxsPW5ldyBrKHRoaXMuY3R4KSxjPWUuaSxoPWUuaixkPXRoaXMuYm94T3B0aW9ucy5jb2xvcnMubG93ZXI7dGhpcy5pc0JveFBsb3QmJihkPVt0aGlzLmJveE9wdGlvbnMuY29sb3JzLmxvd2VyLHRoaXMuYm94T3B0aW9ucy5jb2xvcnMudXBwZXJdKTt2YXIgdT10aGlzLmludmVydGVkWVJhdGlvLHA9ZS5yZWFsSW5kZXgsZz10aGlzLmdldE9ITENWYWx1ZShwLGgpLGY9bixtPW4sdj1NYXRoLm1pbihnLm8sZy5jKSx4PU1hdGgubWF4KGcubyxnLmMpLGI9Zy5tO28uZ2xvYmFscy5pc1hOdW1lcmljJiYoaT0oby5nbG9iYWxzLnNlcmllc1hbcF1baF0tby5nbG9iYWxzLm1pblgpL3RoaXMuaW52ZXJ0ZWRYUmF0aW8tYS8yKTt2YXIgeT1pK2EqdGhpcy52aXNpYmxlSTt2b2lkIDA9PT10aGlzLnNlcmllc1tjXVtoXXx8bnVsbD09PXRoaXMuc2VyaWVzW2NdW2hdPyh2PW4seD1uKToodj1uK3YvdSx4PW4reC91LGY9bitnLmgvdSxtPW4rZy5sL3UsYj1uK2cubS91KTt2YXIgdz1sLm1vdmUobix5KSxTPWwubW92ZSh2LHkrYS8yKTtyZXR1cm4gby5nbG9iYWxzLnByZXZpb3VzUGF0aHMubGVuZ3RoPjAmJihTPXRoaXMuZ2V0UHJldmlvdXNQYXRoKHAsaCwhMCkpLHc9W2wubW92ZSh2LHkpK2wubGluZSh2LHkrYS8yKStsLmxpbmUoZix5K2EvMikrbC5saW5lKGYseSthLzItYS80KStsLmxpbmUoZix5K2EvMithLzQpK2wubGluZShmLHkrYS8yKStsLmxpbmUodix5K2EvMikrbC5saW5lKHYseSthKStsLmxpbmUoYix5K2EpK2wubGluZShiLHkpK2wubGluZSh2K3IvMix5KSxsLm1vdmUoYix5KStsLmxpbmUoYix5K2EpK2wubGluZSh4LHkrYSkrbC5saW5lKHgseSthLzIpK2wubGluZShtLHkrYS8yKStsLmxpbmUobSx5K2EtYS80KStsLmxpbmUobSx5K2EvNCkrbC5saW5lKG0seSthLzIpK2wubGluZSh4LHkrYS8yKStsLmxpbmUoeCx5KStsLmxpbmUoYix5KSsieiJdLFMrPWwubW92ZSh2LHkpLG8uZ2xvYmFscy5pc1hOdW1lcmljfHwoaSs9cykse3BhdGhUbzp3LHBhdGhGcm9tOlMseDp4LHk6aSxiYXJZUG9zaXRpb246eSxjb2xvcjpkfX19LHtrZXk6ImdldE9ITENWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnc7cmV0dXJue286dGhpcy5pc0JveFBsb3Q/aS5nbG9iYWxzLnNlcmllc0NhbmRsZUhbdF1bZV06aS5nbG9iYWxzLnNlcmllc0NhbmRsZU9bdF1bZV0saDp0aGlzLmlzQm94UGxvdD9pLmdsb2JhbHMuc2VyaWVzQ2FuZGxlT1t0XVtlXTppLmdsb2JhbHMuc2VyaWVzQ2FuZGxlSFt0XVtlXSxtOmkuZ2xvYmFscy5zZXJpZXNDYW5kbGVNW3RdW2VdLGw6dGhpcy5pc0JveFBsb3Q/aS5nbG9iYWxzLnNlcmllc0NhbmRsZUNbdF1bZV06aS5nbG9iYWxzLnNlcmllc0NhbmRsZUxbdF1bZV0sYzp0aGlzLmlzQm94UGxvdD9pLmdsb2JhbHMuc2VyaWVzQ2FuZGxlTFt0XVtlXTppLmdsb2JhbHMuc2VyaWVzQ2FuZGxlQ1t0XVtlXX19fV0pLGl9KCksRXQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLnd9cmV0dXJuIGModCxbe2tleToiY2hlY2tDb2xvclJhbmdlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMudyxlPSExLGk9dC5jb25maWcucGxvdE9wdGlvbnNbdC5jb25maWcuY2hhcnQudHlwZV07cmV0dXJuIGkuY29sb3JTY2FsZS5yYW5nZXMubGVuZ3RoPjAmJmkuY29sb3JTY2FsZS5yYW5nZXMubWFwKChmdW5jdGlvbih0LGkpe3QuZnJvbTw9MCYmKGU9ITApfSkpLGV9fSx7a2V5OiJnZXRTaGFkZUNvbG9yIix2YWx1ZTpmdW5jdGlvbih0LGUsaSxzKXt2YXIgYT10aGlzLncsbj0xLHI9YS5jb25maWcucGxvdE9wdGlvbnNbdF0uc2hhZGVJbnRlbnNpdHksbz10aGlzLmRldGVybWluZUNvbG9yKHQsZSxpKTthLmdsb2JhbHMuaGFzTmVnc3x8cz9uPWEuY29uZmlnLnBsb3RPcHRpb25zW3RdLnJldmVyc2VOZWdhdGl2ZVNoYWRlP28ucGVyY2VudDwwP28ucGVyY2VudC8xMDAqKDEuMjUqcik6KDEtby5wZXJjZW50LzEwMCkqKDEuMjUqcik6by5wZXJjZW50PD0wPzEtKDErby5wZXJjZW50LzEwMCkqcjooMS1vLnBlcmNlbnQvMTAwKSpyOihuPTEtby5wZXJjZW50LzEwMCwidHJlZW1hcCI9PT10JiYobj0oMS1vLnBlcmNlbnQvMTAwKSooMS4yNSpyKSkpO3ZhciBsPW8uY29sb3IsYz1uZXcgYjtyZXR1cm4gYS5jb25maWcucGxvdE9wdGlvbnNbdF0uZW5hYmxlU2hhZGVzJiYobD0iZGFyayI9PT10aGlzLncuY29uZmlnLnRoZW1lLm1vZGU/Yi5oZXhUb1JnYmEoYy5zaGFkZUNvbG9yKC0xKm4sby5jb2xvciksYS5jb25maWcuZmlsbC5vcGFjaXR5KTpiLmhleFRvUmdiYShjLnNoYWRlQ29sb3IobixvLmNvbG9yKSxhLmNvbmZpZy5maWxsLm9wYWNpdHkpKSx7Y29sb3I6bCxjb2xvclByb3BzOm99fX0se2tleToiZGV0ZXJtaW5lQ29sb3IiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzLncsYT1zLmdsb2JhbHMuc2VyaWVzW2VdW2ldLG49cy5jb25maWcucGxvdE9wdGlvbnNbdF0scj1uLmNvbG9yU2NhbGUuaW52ZXJzZT9pOmU7bi5kaXN0cmlidXRlZCYmInRyZWVtYXAiPT09cy5jb25maWcuY2hhcnQudHlwZSYmKHI9aSk7dmFyIG89cy5nbG9iYWxzLmNvbG9yc1tyXSxsPW51bGwsYz1NYXRoLm1pbi5hcHBseShNYXRoLG0ocy5nbG9iYWxzLnNlcmllc1tlXSkpLGg9TWF0aC5tYXguYXBwbHkoTWF0aCxtKHMuZ2xvYmFscy5zZXJpZXNbZV0pKTtuLmRpc3RyaWJ1dGVkfHwiaGVhdG1hcCIhPT10fHwoYz1zLmdsb2JhbHMubWluWSxoPXMuZ2xvYmFscy5tYXhZKSx2b2lkIDAhPT1uLmNvbG9yU2NhbGUubWluJiYoYz1uLmNvbG9yU2NhbGUubWluPHMuZ2xvYmFscy5taW5ZP24uY29sb3JTY2FsZS5taW46cy5nbG9iYWxzLm1pblksaD1uLmNvbG9yU2NhbGUubWF4PnMuZ2xvYmFscy5tYXhZP24uY29sb3JTY2FsZS5tYXg6cy5nbG9iYWxzLm1heFkpO3ZhciBkPU1hdGguYWJzKGgpK01hdGguYWJzKGMpLHU9MTAwKmEvKDA9PT1kP2QtMWUtNjpkKTtyZXR1cm4gbi5jb2xvclNjYWxlLnJhbmdlcy5sZW5ndGg+MCYmbi5jb2xvclNjYWxlLnJhbmdlcy5tYXAoKGZ1bmN0aW9uKHQsZSl7aWYoYT49dC5mcm9tJiZhPD10LnRvKXtvPXQuY29sb3IsbD10LmZvcmVDb2xvcj90LmZvcmVDb2xvcjpudWxsLGM9dC5mcm9tLGg9dC50bzt2YXIgaT1NYXRoLmFicyhoKStNYXRoLmFicyhjKTt1PTEwMCphLygwPT09aT9pLTFlLTY6aSl9fSkpLHtjb2xvcjpvLGZvcmVDb2xvcjpsLHBlcmNlbnQ6dX19fSx7a2V5OiJjYWxjdWxhdGVEYXRhTGFiZWxzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LnRleHQsaT10Lngscz10LnksYT10Lmksbj10Lmoscj10LmNvbG9yUHJvcHMsbz10LmZvbnRTaXplLGw9dGhpcy53LmNvbmZpZy5kYXRhTGFiZWxzLGM9bmV3IGsodGhpcy5jdHgpLGg9bmV3IEgodGhpcy5jdHgpLGQ9bnVsbDtpZihsLmVuYWJsZWQpe2Q9Yy5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtZGF0YS1sYWJlbHMifSk7dmFyIHU9bC5vZmZzZXRYLHA9bC5vZmZzZXRZLGc9aSt1LGY9cytwYXJzZUZsb2F0KGwuc3R5bGUuZm9udFNpemUpLzMrcDtoLnBsb3REYXRhTGFiZWxzVGV4dCh7eDpnLHk6Zix0ZXh0OmUsaTphLGo6bixjb2xvcjpyLmZvcmVDb2xvcixwYXJlbnQ6ZCxmb250U2l6ZTpvLGRhdGFMYWJlbHNDb25maWc6bH0pfXJldHVybiBkfX0se2tleToiYWRkTGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1uZXcgayh0aGlzLmN0eCk7dC5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGUucGF0aE1vdXNlRW50ZXIuYmluZCh0aGlzLHQpKSx0Lm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsZS5wYXRoTW91c2VMZWF2ZS5iaW5kKHRoaXMsdCkpLHQubm9kZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGUucGF0aE1vdXNlRG93bi5iaW5kKHRoaXMsdCkpfX1dKSx0fSgpLFR0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLGkpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLncsdGhpcy54UmF0aW89aS54UmF0aW8sdGhpcy55UmF0aW89aS55UmF0aW8sdGhpcy5keW5hbWljQW5pbT10aGlzLncuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuZHluYW1pY0FuaW1hdGlvbix0aGlzLmhlbHBlcnM9bmV3IEV0KGUpLHRoaXMucmVjdFJhZGl1cz10aGlzLncuY29uZmlnLnBsb3RPcHRpb25zLmhlYXRtYXAucmFkaXVzLHRoaXMuc3Ryb2tlV2lkdGg9dGhpcy53LmNvbmZpZy5zdHJva2Uuc2hvdz90aGlzLncuY29uZmlnLnN0cm9rZS53aWR0aDowfXJldHVybiBjKHQsW3trZXk6ImRyYXciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudyxpPW5ldyBrKHRoaXMuY3R4KSxzPWkuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLWhlYXRtYXAifSk7cy5hdHRyKCJjbGlwLXBhdGgiLCJ1cmwoI2dyaWRSZWN0TWFzayIuY29uY2F0KGUuZ2xvYmFscy5jdWlkLCIpIikpO3ZhciBhPWUuZ2xvYmFscy5ncmlkV2lkdGgvZS5nbG9iYWxzLmRhdGFQb2ludHMsbj1lLmdsb2JhbHMuZ3JpZEhlaWdodC9lLmdsb2JhbHMuc2VyaWVzLmxlbmd0aCxyPTAsbz0hMTt0aGlzLm5lZ1JhbmdlPXRoaXMuaGVscGVycy5jaGVja0NvbG9yUmFuZ2UoKTt2YXIgbD10LnNsaWNlKCk7ZS5jb25maWcueWF4aXNbMF0ucmV2ZXJzZWQmJihvPSEwLGwucmV2ZXJzZSgpKTtmb3IodmFyIGM9bz8wOmwubGVuZ3RoLTE7bz9jPGwubGVuZ3RoOmM+PTA7bz9jKys6Yy0tKXt2YXIgaD1pLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy1zZXJpZXMgYXBleGNoYXJ0cy1oZWF0bWFwLXNlcmllcyIsc2VyaWVzTmFtZTpiLmVzY2FwZVN0cmluZyhlLmdsb2JhbHMuc2VyaWVzTmFtZXNbY10pLHJlbDpjKzEsImRhdGE6cmVhbEluZGV4IjpjfSk7aWYodGhpcy5jdHguc2VyaWVzLmFkZENvbGxhcHNlZENsYXNzVG9TZXJpZXMoaCxjKSxlLmNvbmZpZy5jaGFydC5kcm9wU2hhZG93LmVuYWJsZWQpe3ZhciBkPWUuY29uZmlnLmNoYXJ0LmRyb3BTaGFkb3c7bmV3IHcodGhpcy5jdHgpLmRyb3BTaGFkb3coaCxkLGMpfWZvcih2YXIgdT0wLHA9ZS5jb25maWcucGxvdE9wdGlvbnMuaGVhdG1hcC5zaGFkZUludGVuc2l0eSxnPTA7ZzxsW2NdLmxlbmd0aDtnKyspe3ZhciBmPXRoaXMuaGVscGVycy5nZXRTaGFkZUNvbG9yKGUuY29uZmlnLmNoYXJ0LnR5cGUsYyxnLHRoaXMubmVnUmFuZ2UpLG09Zi5jb2xvcix2PWYuY29sb3JQcm9wczsiaW1hZ2UiPT09ZS5jb25maWcuZmlsbC50eXBlJiYobT1uZXcgXyh0aGlzLmN0eCkuZmlsbFBhdGgoe3Nlcmllc051bWJlcjpjLGRhdGFQb2ludEluZGV4Omcsb3BhY2l0eTplLmdsb2JhbHMuaGFzTmVncz92LnBlcmNlbnQ8MD8xLSgxK3YucGVyY2VudC8xMDApOnArdi5wZXJjZW50LzEwMDp2LnBlcmNlbnQvMTAwLHBhdHRlcm5JRDpiLnJhbmRvbUlkKCksd2lkdGg6ZS5jb25maWcuZmlsbC5pbWFnZS53aWR0aD9lLmNvbmZpZy5maWxsLmltYWdlLndpZHRoOmEsaGVpZ2h0OmUuY29uZmlnLmZpbGwuaW1hZ2UuaGVpZ2h0P2UuY29uZmlnLmZpbGwuaW1hZ2UuaGVpZ2h0Om59KSk7dmFyIHg9dGhpcy5yZWN0UmFkaXVzLHk9aS5kcmF3UmVjdCh1LHIsYSxuLHgpO2lmKHkuYXR0cih7Y3g6dSxjeTpyfSkseS5ub2RlLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtaGVhdG1hcC1yZWN0IiksaC5hZGQoeSkseS5hdHRyKHtmaWxsOm0saTpjLGluZGV4OmMsajpnLHZhbDpsW2NdW2ddLCJzdHJva2Utd2lkdGgiOnRoaXMuc3Ryb2tlV2lkdGgsc3Ryb2tlOmUuY29uZmlnLnBsb3RPcHRpb25zLmhlYXRtYXAudXNlRmlsbENvbG9yQXNTdHJva2U/bTplLmdsb2JhbHMuc3Ryb2tlLmNvbG9yc1swXSxjb2xvcjptfSksdGhpcy5oZWxwZXJzLmFkZExpc3RlbmVycyh5KSxlLmNvbmZpZy5jaGFydC5hbmltYXRpb25zLmVuYWJsZWQmJiFlLmdsb2JhbHMuZGF0YUNoYW5nZWQpe3ZhciBTPTE7ZS5nbG9iYWxzLnJlc2l6ZWR8fChTPWUuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuc3BlZWQpLHRoaXMuYW5pbWF0ZUhlYXRNYXAoeSx1LHIsYSxuLFMpfWlmKGUuZ2xvYmFscy5kYXRhQ2hhbmdlZCl7dmFyIEM9MTtpZih0aGlzLmR5bmFtaWNBbmltLmVuYWJsZWQmJmUuZ2xvYmFscy5zaG91bGRBbmltYXRlKXtDPXRoaXMuZHluYW1pY0FuaW0uc3BlZWQ7dmFyIEE9ZS5nbG9iYWxzLnByZXZpb3VzUGF0aHNbY10mJmUuZ2xvYmFscy5wcmV2aW91c1BhdGhzW2NdW2ddJiZlLmdsb2JhbHMucHJldmlvdXNQYXRoc1tjXVtnXS5jb2xvcjtBfHwoQT0icmdiYSgyNTUsIDI1NSwgMjU1LCAwKSIpLHRoaXMuYW5pbWF0ZUhlYXRDb2xvcih5LGIuaXNDb2xvckhleChBKT9BOmIucmdiMmhleChBKSxiLmlzQ29sb3JIZXgobSk/bTpiLnJnYjJoZXgobSksQyl9fXZhciBFPSgwLGUuY29uZmlnLmRhdGFMYWJlbHMuZm9ybWF0dGVyKShlLmdsb2JhbHMuc2VyaWVzW2NdW2ddLHt2YWx1ZTplLmdsb2JhbHMuc2VyaWVzW2NdW2ddLHNlcmllc0luZGV4OmMsZGF0YVBvaW50SW5kZXg6Zyx3OmV9KSxUPXRoaXMuaGVscGVycy5jYWxjdWxhdGVEYXRhTGFiZWxzKHt0ZXh0OkUseDp1K2EvMix5OnIrbi8yLGk6YyxqOmcsY29sb3JQcm9wczp2LHNlcmllczpsfSk7bnVsbCE9PVQmJmguYWRkKFQpLHUrPWF9cis9bixzLmFkZChoKX12YXIgTD1lLmdsb2JhbHMueUF4aXNTY2FsZVswXS5yZXN1bHQuc2xpY2UoKTtlLmNvbmZpZy55YXhpc1swXS5yZXZlcnNlZD9MLnVuc2hpZnQoIiIpOkwucHVzaCgiIiksZS5nbG9iYWxzLnlBeGlzU2NhbGVbMF0ucmVzdWx0PUw7dmFyIFA9ZS5nbG9iYWxzLmdyaWRIZWlnaHQvZS5nbG9iYWxzLnNlcmllcy5sZW5ndGg7cmV0dXJuIGUuY29uZmlnLnlheGlzWzBdLmxhYmVscy5vZmZzZXRZPS1QLzIsc319LHtrZXk6ImFuaW1hdGVIZWF0TWFwIix2YWx1ZTpmdW5jdGlvbih0LGUsaSxzLGEsbil7dmFyIHI9bmV3IHkodGhpcy5jdHgpO3IuYW5pbWF0ZVJlY3QodCx7eDplK3MvMix5OmkrYS8yLHdpZHRoOjAsaGVpZ2h0OjB9LHt4OmUseTppLHdpZHRoOnMsaGVpZ2h0OmF9LG4sKGZ1bmN0aW9uKCl7ci5hbmltYXRpb25Db21wbGV0ZWQodCl9KSl9fSx7a2V5OiJhbmltYXRlSGVhdENvbG9yIix2YWx1ZTpmdW5jdGlvbih0LGUsaSxzKXt0LmF0dHIoe2ZpbGw6ZX0pLmFuaW1hdGUocykuYXR0cih7ZmlsbDppfSl9fV0pLHR9KCksTHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLnd9cmV0dXJuIGModCxbe2tleToiZHJhd1lBeGlzVGV4dHMiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMpe3ZhciBhPXRoaXMudyxuPWEuY29uZmlnLnlheGlzWzBdLHI9YS5nbG9iYWxzLnlMYWJlbEZvcm1hdHRlcnNbMF07cmV0dXJuIG5ldyBrKHRoaXMuY3R4KS5kcmF3VGV4dCh7eDp0K24ubGFiZWxzLm9mZnNldFgseTplK24ubGFiZWxzLm9mZnNldFksdGV4dDpyKHMsaSksdGV4dEFuY2hvcjoibWlkZGxlIixmb250U2l6ZTpuLmxhYmVscy5zdHlsZS5mb250U2l6ZSxmb250RmFtaWx5Om4ubGFiZWxzLnN0eWxlLmZvbnRGYW1pbHksZm9yZUNvbG9yOkFycmF5LmlzQXJyYXkobi5sYWJlbHMuc3R5bGUuY29sb3JzKT9uLmxhYmVscy5zdHlsZS5jb2xvcnNbaV06bi5sYWJlbHMuc3R5bGUuY29sb3JzfSl9fV0pLHR9KCksUHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLnc7dmFyIGk9dGhpcy53O3RoaXMuY2hhcnRUeXBlPXRoaXMudy5jb25maWcuY2hhcnQudHlwZSx0aGlzLmluaXRpYWxBbmltPXRoaXMudy5jb25maWcuY2hhcnQuYW5pbWF0aW9ucy5lbmFibGVkLHRoaXMuZHluYW1pY0FuaW09dGhpcy5pbml0aWFsQW5pbSYmdGhpcy53LmNvbmZpZy5jaGFydC5hbmltYXRpb25zLmR5bmFtaWNBbmltYXRpb24uZW5hYmxlZCx0aGlzLmFuaW1CZWdpbkFycj1bMF0sdGhpcy5hbmltRHVyPTAsdGhpcy5kb251dERhdGFMYWJlbHM9dGhpcy53LmNvbmZpZy5wbG90T3B0aW9ucy5waWUuZG9udXQubGFiZWxzLHRoaXMubGluZUNvbG9yQXJyPXZvaWQgMCE9PWkuZ2xvYmFscy5zdHJva2UuY29sb3JzP2kuZ2xvYmFscy5zdHJva2UuY29sb3JzOmkuZ2xvYmFscy5jb2xvcnMsdGhpcy5kZWZhdWx0U2l6ZT1NYXRoLm1pbihpLmdsb2JhbHMuZ3JpZFdpZHRoLGkuZ2xvYmFscy5ncmlkSGVpZ2h0KSx0aGlzLmNlbnRlclk9dGhpcy5kZWZhdWx0U2l6ZS8yLHRoaXMuY2VudGVyWD1pLmdsb2JhbHMuZ3JpZFdpZHRoLzIsInJhZGlhbEJhciI9PT1pLmNvbmZpZy5jaGFydC50eXBlP3RoaXMuZnVsbEFuZ2xlPTM2MDp0aGlzLmZ1bGxBbmdsZT1NYXRoLmFicyhpLmNvbmZpZy5wbG90T3B0aW9ucy5waWUuZW5kQW5nbGUtaS5jb25maWcucGxvdE9wdGlvbnMucGllLnN0YXJ0QW5nbGUpLHRoaXMuaW5pdGlhbEFuZ2xlPWkuY29uZmlnLnBsb3RPcHRpb25zLnBpZS5zdGFydEFuZ2xlJXRoaXMuZnVsbEFuZ2xlLGkuZ2xvYmFscy5yYWRpYWxTaXplPXRoaXMuZGVmYXVsdFNpemUvMi4wNS1pLmNvbmZpZy5zdHJva2Uud2lkdGgtKGkuY29uZmlnLmNoYXJ0LnNwYXJrbGluZS5lbmFibGVkPzA6aS5jb25maWcuY2hhcnQuZHJvcFNoYWRvdy5ibHVyKSx0aGlzLmRvbnV0U2l6ZT1pLmdsb2JhbHMucmFkaWFsU2l6ZSpwYXJzZUludChpLmNvbmZpZy5wbG90T3B0aW9ucy5waWUuZG9udXQuc2l6ZSwxMCkvMTAwLHRoaXMubWF4WT0wLHRoaXMuc2xpY2VMYWJlbHM9W10sdGhpcy5zbGljZVNpemVzPVtdLHRoaXMucHJldlNlY3RvckFuZ2xlQXJyPVtdfXJldHVybiBjKHQsW3trZXk6ImRyYXciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLncscz1uZXcgayh0aGlzLmN0eCk7aWYodGhpcy5yZXQ9cy5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtcGllIn0pLGkuZ2xvYmFscy5ub0RhdGEpcmV0dXJuIHRoaXMucmV0O2Zvcih2YXIgYT0wLG49MDtuPHQubGVuZ3RoO24rKylhKz1iLm5lZ1RvWmVybyh0W25dKTt2YXIgcj1bXSxvPXMuZ3JvdXAoKTswPT09YSYmKGE9MWUtNSksdC5mb3JFYWNoKChmdW5jdGlvbih0KXtlLm1heFk9TWF0aC5tYXgoZS5tYXhZLHQpfSkpLGkuY29uZmlnLnlheGlzWzBdLm1heCYmKHRoaXMubWF4WT1pLmNvbmZpZy55YXhpc1swXS5tYXgpLCJiYWNrIj09PWkuY29uZmlnLmdyaWQucG9zaXRpb24mJiJwb2xhckFyZWEiPT09dGhpcy5jaGFydFR5cGUmJnRoaXMuZHJhd1BvbGFyRWxlbWVudHModGhpcy5yZXQpO2Zvcih2YXIgbD0wO2w8dC5sZW5ndGg7bCsrKXt2YXIgYz10aGlzLmZ1bGxBbmdsZSpiLm5lZ1RvWmVybyh0W2xdKS9hO3IucHVzaChjKSwicG9sYXJBcmVhIj09PXRoaXMuY2hhcnRUeXBlPyhyW2xdPXRoaXMuZnVsbEFuZ2xlL3QubGVuZ3RoLHRoaXMuc2xpY2VTaXplcy5wdXNoKGkuZ2xvYmFscy5yYWRpYWxTaXplKnRbbF0vdGhpcy5tYXhZKSk6dGhpcy5zbGljZVNpemVzLnB1c2goaS5nbG9iYWxzLnJhZGlhbFNpemUpfWlmKGkuZ2xvYmFscy5kYXRhQ2hhbmdlZCl7Zm9yKHZhciBoLGQ9MCx1PTA7dTxpLmdsb2JhbHMucHJldmlvdXNQYXRocy5sZW5ndGg7dSsrKWQrPWIubmVnVG9aZXJvKGkuZ2xvYmFscy5wcmV2aW91c1BhdGhzW3VdKTtmb3IodmFyIHA9MDtwPGkuZ2xvYmFscy5wcmV2aW91c1BhdGhzLmxlbmd0aDtwKyspaD10aGlzLmZ1bGxBbmdsZSpiLm5lZ1RvWmVybyhpLmdsb2JhbHMucHJldmlvdXNQYXRoc1twXSkvZCx0aGlzLnByZXZTZWN0b3JBbmdsZUFyci5wdXNoKGgpfXRoaXMuZG9udXRTaXplPDAmJih0aGlzLmRvbnV0U2l6ZT0wKTt2YXIgZz1pLmNvbmZpZy5wbG90T3B0aW9ucy5waWUuY3VzdG9tU2NhbGUsZj1pLmdsb2JhbHMuZ3JpZFdpZHRoLzIsbT1pLmdsb2JhbHMuZ3JpZEhlaWdodC8yLHY9Zi1pLmdsb2JhbHMuZ3JpZFdpZHRoLzIqZyx4PW0taS5nbG9iYWxzLmdyaWRIZWlnaHQvMipnO2lmKCJkb251dCI9PT10aGlzLmNoYXJ0VHlwZSl7dmFyIHk9cy5kcmF3Q2lyY2xlKHRoaXMuZG9udXRTaXplKTt5LmF0dHIoe2N4OnRoaXMuY2VudGVyWCxjeTp0aGlzLmNlbnRlclksZmlsbDppLmNvbmZpZy5wbG90T3B0aW9ucy5waWUuZG9udXQuYmFja2dyb3VuZD9pLmNvbmZpZy5wbG90T3B0aW9ucy5waWUuZG9udXQuYmFja2dyb3VuZDoidHJhbnNwYXJlbnQifSksby5hZGQoeSl9dmFyIHc9dGhpcy5kcmF3QXJjcyhyLHQpO2lmKHRoaXMuc2xpY2VMYWJlbHMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dy5hZGQodCl9KSksby5hdHRyKHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdCh2LCIsICIpLmNvbmNhdCh4LCIpIHNjYWxlKCIpLmNvbmNhdChnLCIpIil9KSxvLmFkZCh3KSx0aGlzLnJldC5hZGQobyksdGhpcy5kb251dERhdGFMYWJlbHMuc2hvdyl7dmFyIFM9dGhpcy5yZW5kZXJJbm5lckRhdGFMYWJlbHModGhpcy5kb251dERhdGFMYWJlbHMse2hvbGxvd1NpemU6dGhpcy5kb251dFNpemUsY2VudGVyWDp0aGlzLmNlbnRlclgsY2VudGVyWTp0aGlzLmNlbnRlclksb3BhY2l0eTp0aGlzLmRvbnV0RGF0YUxhYmVscy5zaG93LHRyYW5zbGF0ZVg6dix0cmFuc2xhdGVZOnh9KTt0aGlzLnJldC5hZGQoUyl9cmV0dXJuImZyb250Ij09PWkuY29uZmlnLmdyaWQucG9zaXRpb24mJiJwb2xhckFyZWEiPT09dGhpcy5jaGFydFR5cGUmJnRoaXMuZHJhd1BvbGFyRWxlbWVudHModGhpcy5yZXQpLHRoaXMucmV0fX0se2tleToiZHJhd0FyY3MiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy53LHM9bmV3IHcodGhpcy5jdHgpLGE9bmV3IGsodGhpcy5jdHgpLG49bmV3IF8odGhpcy5jdHgpLHI9YS5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtc2xpY2VzIn0pLG89dGhpcy5pbml0aWFsQW5nbGUsbD10aGlzLmluaXRpYWxBbmdsZSxjPXRoaXMuaW5pdGlhbEFuZ2xlLGg9dGhpcy5pbml0aWFsQW5nbGU7dGhpcy5zdHJva2VXaWR0aD1pLmNvbmZpZy5zdHJva2Uuc2hvdz9pLmNvbmZpZy5zdHJva2Uud2lkdGg6MDtmb3IodmFyIGQ9MDtkPHQubGVuZ3RoO2QrKyl7dmFyIHU9YS5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtc2VyaWVzIGFwZXhjaGFydHMtcGllLXNlcmllcyIsc2VyaWVzTmFtZTpiLmVzY2FwZVN0cmluZyhpLmdsb2JhbHMuc2VyaWVzTmFtZXNbZF0pLHJlbDpkKzEsImRhdGE6cmVhbEluZGV4IjpkfSk7ci5hZGQodSksbD1oLGM9KG89YykrdFtkXSxoPWwrdGhpcy5wcmV2U2VjdG9yQW5nbGVBcnJbZF07dmFyIHA9YzxvP3RoaXMuZnVsbEFuZ2xlK2MtbzpjLW8sZz1uLmZpbGxQYXRoKHtzZXJpZXNOdW1iZXI6ZCxzaXplOnRoaXMuc2xpY2VTaXplc1tkXSx2YWx1ZTplW2RdfSksZj10aGlzLmdldENoYW5nZWRQYXRoKGwsaCksbT1hLmRyYXdQYXRoKHtkOmYsc3Ryb2tlOkFycmF5LmlzQXJyYXkodGhpcy5saW5lQ29sb3JBcnIpP3RoaXMubGluZUNvbG9yQXJyW2RdOnRoaXMubGluZUNvbG9yQXJyLHN0cm9rZVdpZHRoOjAsZmlsbDpnLGZpbGxPcGFjaXR5OmkuY29uZmlnLmZpbGwub3BhY2l0eSxjbGFzc2VzOiJhcGV4Y2hhcnRzLXBpZS1hcmVhIGFwZXhjaGFydHMtIi5jb25jYXQodGhpcy5jaGFydFR5cGUudG9Mb3dlckNhc2UoKSwiLXNsaWNlLSIpLmNvbmNhdChkKX0pO2lmKG0uYXR0cih7aW5kZXg6MCxqOmR9KSxzLnNldFNlbGVjdGlvbkZpbHRlcihtLDAsZCksaS5jb25maWcuY2hhcnQuZHJvcFNoYWRvdy5lbmFibGVkKXt2YXIgdj1pLmNvbmZpZy5jaGFydC5kcm9wU2hhZG93O3MuZHJvcFNoYWRvdyhtLHYsZCl9dGhpcy5hZGRMaXN0ZW5lcnMobSx0aGlzLmRvbnV0RGF0YUxhYmVscyksay5zZXRBdHRycyhtLm5vZGUseyJkYXRhOmFuZ2xlIjpwLCJkYXRhOnN0YXJ0QW5nbGUiOm8sImRhdGE6c3Ryb2tlV2lkdGgiOnRoaXMuc3Ryb2tlV2lkdGgsImRhdGE6dmFsdWUiOmVbZF19KTt2YXIgeD17eDowLHk6MH07InBpZSI9PT10aGlzLmNoYXJ0VHlwZXx8InBvbGFyQXJlYSI9PT10aGlzLmNoYXJ0VHlwZT94PWIucG9sYXJUb0NhcnRlc2lhbih0aGlzLmNlbnRlclgsdGhpcy5jZW50ZXJZLGkuZ2xvYmFscy5yYWRpYWxTaXplLzEuMjUraS5jb25maWcucGxvdE9wdGlvbnMucGllLmRhdGFMYWJlbHMub2Zmc2V0LChvK3AvMikldGhpcy5mdWxsQW5nbGUpOiJkb251dCI9PT10aGlzLmNoYXJ0VHlwZSYmKHg9Yi5wb2xhclRvQ2FydGVzaWFuKHRoaXMuY2VudGVyWCx0aGlzLmNlbnRlclksKGkuZ2xvYmFscy5yYWRpYWxTaXplK3RoaXMuZG9udXRTaXplKS8yK2kuY29uZmlnLnBsb3RPcHRpb25zLnBpZS5kYXRhTGFiZWxzLm9mZnNldCwobytwLzIpJXRoaXMuZnVsbEFuZ2xlKSksdS5hZGQobSk7dmFyIHk9MDtpZighdGhpcy5pbml0aWFsQW5pbXx8aS5nbG9iYWxzLnJlc2l6ZWR8fGkuZ2xvYmFscy5kYXRhQ2hhbmdlZD90aGlzLmFuaW1CZWdpbkFyci5wdXNoKDApOigwPT0oeT1wL3RoaXMuZnVsbEFuZ2xlKmkuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuc3BlZWQpJiYoeT0xKSx0aGlzLmFuaW1EdXI9eSt0aGlzLmFuaW1EdXIsdGhpcy5hbmltQmVnaW5BcnIucHVzaCh0aGlzLmFuaW1EdXIpKSx0aGlzLmR5bmFtaWNBbmltJiZpLmdsb2JhbHMuZGF0YUNoYW5nZWQ/dGhpcy5hbmltYXRlUGF0aHMobSx7c2l6ZTp0aGlzLnNsaWNlU2l6ZXNbZF0sZW5kQW5nbGU6YyxzdGFydEFuZ2xlOm8scHJldlN0YXJ0QW5nbGU6bCxwcmV2RW5kQW5nbGU6aCxhbmltYXRlU3RhcnRpbmdQb3M6ITAsaTpkLGFuaW1CZWdpbkFycjp0aGlzLmFuaW1CZWdpbkFycixzaG91bGRTZXRQcmV2UGF0aHM6ITAsZHVyOmkuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuZHluYW1pY0FuaW1hdGlvbi5zcGVlZH0pOnRoaXMuYW5pbWF0ZVBhdGhzKG0se3NpemU6dGhpcy5zbGljZVNpemVzW2RdLGVuZEFuZ2xlOmMsc3RhcnRBbmdsZTpvLGk6ZCx0b3RhbEl0ZW1zOnQubGVuZ3RoLTEsYW5pbUJlZ2luQXJyOnRoaXMuYW5pbUJlZ2luQXJyLGR1cjp5fSksaS5jb25maWcucGxvdE9wdGlvbnMucGllLmV4cGFuZE9uQ2xpY2smJiJwb2xhckFyZWEiIT09dGhpcy5jaGFydFR5cGUmJm0uY2xpY2sodGhpcy5waWVDbGlja2VkLmJpbmQodGhpcyxkKSksdm9pZCAwIT09aS5nbG9iYWxzLnNlbGVjdGVkRGF0YVBvaW50c1swXSYmaS5nbG9iYWxzLnNlbGVjdGVkRGF0YVBvaW50c1swXS5pbmRleE9mKGQpPi0xJiZ0aGlzLnBpZUNsaWNrZWQoZCksaS5jb25maWcuZGF0YUxhYmVscy5lbmFibGVkKXt2YXIgUz14LngsQz14LnksQT0xMDAqcC90aGlzLmZ1bGxBbmdsZSsiJSI7aWYoMCE9PXAmJmkuY29uZmlnLnBsb3RPcHRpb25zLnBpZS5kYXRhTGFiZWxzLm1pbkFuZ2xlVG9TaG93TGFiZWw8dFtkXSl7dmFyIEU9aS5jb25maWcuZGF0YUxhYmVscy5mb3JtYXR0ZXI7dm9pZCAwIT09RSYmKEE9RShpLmdsb2JhbHMuc2VyaWVzUGVyY2VudFtkXVswXSx7c2VyaWVzSW5kZXg6ZCx3Oml9KSk7dmFyIFQ9aS5nbG9iYWxzLmRhdGFMYWJlbHMuc3R5bGUuY29sb3JzW2RdLEw9YS5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtZGF0YWxhYmVscyJ9KSxQPWEuZHJhd1RleHQoe3g6Uyx5OkMsdGV4dDpBLHRleHRBbmNob3I6Im1pZGRsZSIsZm9udFNpemU6aS5jb25maWcuZGF0YUxhYmVscy5zdHlsZS5mb250U2l6ZSxmb250RmFtaWx5OmkuY29uZmlnLmRhdGFMYWJlbHMuc3R5bGUuZm9udEZhbWlseSxmb250V2VpZ2h0OmkuY29uZmlnLmRhdGFMYWJlbHMuc3R5bGUuZm9udFdlaWdodCxmb3JlQ29sb3I6VH0pO2lmKEwuYWRkKFApLGkuY29uZmlnLmRhdGFMYWJlbHMuZHJvcFNoYWRvdy5lbmFibGVkKXt2YXIgTT1pLmNvbmZpZy5kYXRhTGFiZWxzLmRyb3BTaGFkb3c7cy5kcm9wU2hhZG93KFAsTSl9UC5ub2RlLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtcGllLWxhYmVsIiksaS5jb25maWcuY2hhcnQuYW5pbWF0aW9ucy5hbmltYXRlJiYhMT09PWkuZ2xvYmFscy5yZXNpemVkJiYoUC5ub2RlLmNsYXNzTGlzdC5hZGQoImFwZXhjaGFydHMtcGllLWxhYmVsLWRlbGF5IiksUC5ub2RlLnN0eWxlLmFuaW1hdGlvbkRlbGF5PWkuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuc3BlZWQvOTQwKyJzIiksdGhpcy5zbGljZUxhYmVscy5wdXNoKEwpfX19cmV0dXJuIHJ9fSx7a2V5OiJhZGRMaXN0ZW5lcnMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9bmV3IGsodGhpcy5jdHgpO3Qubm9kZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixpLnBhdGhNb3VzZUVudGVyLmJpbmQodGhpcyx0KSksdC5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGkucGF0aE1vdXNlTGVhdmUuYmluZCh0aGlzLHQpKSx0Lm5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5yZXZlcnREYXRhTGFiZWxzSW5uZXIuYmluZCh0aGlzLHQubm9kZSxlKSksdC5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsaS5wYXRoTW91c2VEb3duLmJpbmQodGhpcyx0KSksdGhpcy5kb251dERhdGFMYWJlbHMudG90YWwuc2hvd0Fsd2F5c3x8KHQubm9kZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzLnByaW50RGF0YUxhYmVsc0lubmVyLmJpbmQodGhpcyx0Lm5vZGUsZSkpLHQubm9kZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMucHJpbnREYXRhTGFiZWxzSW5uZXIuYmluZCh0aGlzLHQubm9kZSxlKSkpfX0se2tleToiYW5pbWF0ZVBhdGhzIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudyxzPWUuZW5kQW5nbGU8ZS5zdGFydEFuZ2xlP3RoaXMuZnVsbEFuZ2xlK2UuZW5kQW5nbGUtZS5zdGFydEFuZ2xlOmUuZW5kQW5nbGUtZS5zdGFydEFuZ2xlLGE9cyxuPWUuc3RhcnRBbmdsZSxyPWUuc3RhcnRBbmdsZTt2b2lkIDAhPT1lLnByZXZTdGFydEFuZ2xlJiZ2b2lkIDAhPT1lLnByZXZFbmRBbmdsZSYmKG49ZS5wcmV2RW5kQW5nbGUsYT1lLnByZXZFbmRBbmdsZTxlLnByZXZTdGFydEFuZ2xlP3RoaXMuZnVsbEFuZ2xlK2UucHJldkVuZEFuZ2xlLWUucHJldlN0YXJ0QW5nbGU6ZS5wcmV2RW5kQW5nbGUtZS5wcmV2U3RhcnRBbmdsZSksZS5pPT09aS5jb25maWcuc2VyaWVzLmxlbmd0aC0xJiYocytyPnRoaXMuZnVsbEFuZ2xlP2UuZW5kQW5nbGU9ZS5lbmRBbmdsZS0ocytyKTpzK3I8dGhpcy5mdWxsQW5nbGUmJihlLmVuZEFuZ2xlPWUuZW5kQW5nbGUrKHRoaXMuZnVsbEFuZ2xlLShzK3IpKSkpLHM9PT10aGlzLmZ1bGxBbmdsZSYmKHM9dGhpcy5mdWxsQW5nbGUtLjAxKSx0aGlzLmFuaW1hdGVBcmModCxuLHIscyxhLGUpfX0se2tleToiYW5pbWF0ZUFyYyIsdmFsdWU6ZnVuY3Rpb24odCxlLGkscyxhLG4pe3ZhciByLG89dGhpcyxsPXRoaXMudyxjPW5ldyB5KHRoaXMuY3R4KSxoPW4uc2l6ZTsoaXNOYU4oZSl8fGlzTmFOKGEpKSYmKGU9aSxhPXMsbi5kdXI9MCk7dmFyIGQ9cyx1PWkscD1lPGk/dGhpcy5mdWxsQW5nbGUrZS1pOmUtaTtsLmdsb2JhbHMuZGF0YUNoYW5nZWQmJm4uc2hvdWxkU2V0UHJldlBhdGhzJiZuLnByZXZFbmRBbmdsZSYmKHI9by5nZXRQaWVQYXRoKHttZTpvLHN0YXJ0QW5nbGU6bi5wcmV2U3RhcnRBbmdsZSxhbmdsZTpuLnByZXZFbmRBbmdsZTxuLnByZXZTdGFydEFuZ2xlP3RoaXMuZnVsbEFuZ2xlK24ucHJldkVuZEFuZ2xlLW4ucHJldlN0YXJ0QW5nbGU6bi5wcmV2RW5kQW5nbGUtbi5wcmV2U3RhcnRBbmdsZSxzaXplOmh9KSx0LmF0dHIoe2Q6cn0pKSwwIT09bi5kdXI/dC5hbmltYXRlKG4uZHVyLGwuZ2xvYmFscy5lYXNpbmcsbi5hbmltQmVnaW5BcnJbbi5pXSkuYWZ0ZXJBbGwoKGZ1bmN0aW9uKCl7InBpZSIhPT1vLmNoYXJ0VHlwZSYmImRvbnV0IiE9PW8uY2hhcnRUeXBlJiYicG9sYXJBcmVhIiE9PW8uY2hhcnRUeXBlfHx0aGlzLmFuaW1hdGUobC5jb25maWcuY2hhcnQuYW5pbWF0aW9ucy5keW5hbWljQW5pbWF0aW9uLnNwZWVkKS5hdHRyKHsic3Ryb2tlLXdpZHRoIjpvLnN0cm9rZVdpZHRofSksbi5pPT09bC5jb25maWcuc2VyaWVzLmxlbmd0aC0xJiZjLmFuaW1hdGlvbkNvbXBsZXRlZCh0KX0pKS5kdXJpbmcoKGZ1bmN0aW9uKGwpe2Q9cCsocy1wKSpsLG4uYW5pbWF0ZVN0YXJ0aW5nUG9zJiYoZD1hKyhzLWEpKmwsdT1lLWErKGktKGUtYSkpKmwpLHI9by5nZXRQaWVQYXRoKHttZTpvLHN0YXJ0QW5nbGU6dSxhbmdsZTpkLHNpemU6aH0pLHQubm9kZS5zZXRBdHRyaWJ1dGUoImRhdGE6cGF0aE9yaWciLHIpLHQuYXR0cih7ZDpyfSl9KSk6KHI9by5nZXRQaWVQYXRoKHttZTpvLHN0YXJ0QW5nbGU6dSxhbmdsZTpzLHNpemU6aH0pLG4uaXNUcmFja3x8KGwuZ2xvYmFscy5hbmltYXRpb25FbmRlZD0hMCksdC5ub2RlLnNldEF0dHJpYnV0ZSgiZGF0YTpwYXRoT3JpZyIsciksdC5hdHRyKHtkOnIsInN0cm9rZS13aWR0aCI6by5zdHJva2VXaWR0aH0pKX19LHtrZXk6InBpZUNsaWNrZWQiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlLGk9dGhpcy53LHM9dGhpcyxhPXMuc2xpY2VTaXplc1t0XSsoaS5jb25maWcucGxvdE9wdGlvbnMucGllLmV4cGFuZE9uQ2xpY2s/NDowKSxuPWkuZ2xvYmFscy5kb20uUGFwZXIuc2VsZWN0KCIuYXBleGNoYXJ0cy0iLmNvbmNhdChzLmNoYXJ0VHlwZS50b0xvd2VyQ2FzZSgpLCItc2xpY2UtIikuY29uY2F0KHQpKS5tZW1iZXJzWzBdO2lmKCJ0cnVlIiE9PW4uYXR0cigiZGF0YTpwaWVDbGlja2VkIikpe3ZhciByPWkuZ2xvYmFscy5kb20uYmFzZUVsLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFwZXhjaGFydHMtcGllLWFyZWEiKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHIsKGZ1bmN0aW9uKHQpe3Quc2V0QXR0cmlidXRlKCJkYXRhOnBpZUNsaWNrZWQiLCJmYWxzZSIpO3ZhciBlPXQuZ2V0QXR0cmlidXRlKCJkYXRhOnBhdGhPcmlnIik7dC5zZXRBdHRyaWJ1dGUoImQiLGUpfSkpLG4uYXR0cigiZGF0YTpwaWVDbGlja2VkIiwidHJ1ZSIpO3ZhciBvPXBhcnNlSW50KG4uYXR0cigiZGF0YTpzdGFydEFuZ2xlIiksMTApLGw9cGFyc2VJbnQobi5hdHRyKCJkYXRhOmFuZ2xlIiksMTApO2U9cy5nZXRQaWVQYXRoKHttZTpzLHN0YXJ0QW5nbGU6byxhbmdsZTpsLHNpemU6YX0pLDM2MCE9PWwmJm4ucGxvdChlKX1lbHNle24uYXR0cih7ImRhdGE6cGllQ2xpY2tlZCI6ImZhbHNlIn0pLHRoaXMucmV2ZXJ0RGF0YUxhYmVsc0lubmVyKG4ubm9kZSx0aGlzLmRvbnV0RGF0YUxhYmVscyk7dmFyIGM9bi5hdHRyKCJkYXRhOnBhdGhPcmlnIik7bi5hdHRyKHtkOmN9KX19fSx7a2V5OiJnZXRDaGFuZ2VkUGF0aCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT0iIjtyZXR1cm4gdGhpcy5keW5hbWljQW5pbSYmdGhpcy53Lmdsb2JhbHMuZGF0YUNoYW5nZWQmJihpPXRoaXMuZ2V0UGllUGF0aCh7bWU6dGhpcyxzdGFydEFuZ2xlOnQsYW5nbGU6ZS10LHNpemU6dGhpcy5zaXplfSkpLGl9fSx7a2V5OiJnZXRQaWVQYXRoIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10Lm1lLGk9dC5zdGFydEFuZ2xlLHM9dC5hbmdsZSxhPXQuc2l6ZSxuPWkscj1NYXRoLlBJKihuLTkwKS8xODAsbz1zK2k7TWF0aC5jZWlsKG8pPj10aGlzLmZ1bGxBbmdsZSt0aGlzLncuY29uZmlnLnBsb3RPcHRpb25zLnBpZS5zdGFydEFuZ2xlJXRoaXMuZnVsbEFuZ2xlJiYobz10aGlzLmZ1bGxBbmdsZSt0aGlzLncuY29uZmlnLnBsb3RPcHRpb25zLnBpZS5zdGFydEFuZ2xlJXRoaXMuZnVsbEFuZ2xlLS4wMSksTWF0aC5jZWlsKG8pPnRoaXMuZnVsbEFuZ2xlJiYoby09dGhpcy5mdWxsQW5nbGUpO3ZhciBsPU1hdGguUEkqKG8tOTApLzE4MCxjPWUuY2VudGVyWCthKk1hdGguY29zKHIpLGg9ZS5jZW50ZXJZK2EqTWF0aC5zaW4ociksZD1lLmNlbnRlclgrYSpNYXRoLmNvcyhsKSx1PWUuY2VudGVyWSthKk1hdGguc2luKGwpLHA9Yi5wb2xhclRvQ2FydGVzaWFuKGUuY2VudGVyWCxlLmNlbnRlclksZS5kb251dFNpemUsbyksZz1iLnBvbGFyVG9DYXJ0ZXNpYW4oZS5jZW50ZXJYLGUuY2VudGVyWSxlLmRvbnV0U2l6ZSxuKSxmPXM+MTgwPzE6MCxtPVsiTSIsYyxoLCJBIixhLGEsMCxmLDEsZCx1XTtyZXR1cm4iZG9udXQiPT09ZS5jaGFydFR5cGU/W10uY29uY2F0KG0sWyJMIixwLngscC55LCJBIixlLmRvbnV0U2l6ZSxlLmRvbnV0U2l6ZSwwLGYsMCxnLngsZy55LCJMIixjLGgsInoiXSkuam9pbigiICIpOiJwaWUiPT09ZS5jaGFydFR5cGV8fCJwb2xhckFyZWEiPT09ZS5jaGFydFR5cGU/W10uY29uY2F0KG0sWyJMIixlLmNlbnRlclgsZS5jZW50ZXJZLCJMIixjLGhdKS5qb2luKCIgIik6W10uY29uY2F0KG0pLmpvaW4oIiAiKX19LHtrZXk6ImRyYXdQb2xhckVsZW1lbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncsaT1uZXcgcSh0aGlzLmN0eCkscz1uZXcgayh0aGlzLmN0eCksYT1uZXcgTHQodGhpcy5jdHgpLG49cy5ncm91cCgpLHI9cy5ncm91cCgpLG89aS5uaWNlU2NhbGUoMCxNYXRoLmNlaWwodGhpcy5tYXhZKSxlLmNvbmZpZy55YXhpc1swXS50aWNrQW1vdW50LDAsITApLGw9by5yZXN1bHQucmV2ZXJzZSgpLGM9by5yZXN1bHQubGVuZ3RoO3RoaXMubWF4WT1vLm5pY2VNYXg7Zm9yKHZhciBoPWUuZ2xvYmFscy5yYWRpYWxTaXplLGQ9aC8oYy0xKSx1PTA7dTxjLTE7dSsrKXt2YXIgcD1zLmRyYXdDaXJjbGUoaCk7aWYocC5hdHRyKHtjeDp0aGlzLmNlbnRlclgsY3k6dGhpcy5jZW50ZXJZLGZpbGw6Im5vbmUiLCJzdHJva2Utd2lkdGgiOmUuY29uZmlnLnBsb3RPcHRpb25zLnBvbGFyQXJlYS5yaW5ncy5zdHJva2VXaWR0aCxzdHJva2U6ZS5jb25maWcucGxvdE9wdGlvbnMucG9sYXJBcmVhLnJpbmdzLnN0cm9rZUNvbG9yfSksZS5jb25maWcueWF4aXNbMF0uc2hvdyl7dmFyIGc9YS5kcmF3WUF4aXNUZXh0cyh0aGlzLmNlbnRlclgsdGhpcy5jZW50ZXJZLWgrcGFyc2VJbnQoZS5jb25maWcueWF4aXNbMF0ubGFiZWxzLnN0eWxlLmZvbnRTaXplLDEwKS8yLHUsbFt1XSk7ci5hZGQoZyl9bi5hZGQocCksaC09ZH10aGlzLmRyYXdTcG9rZXModCksdC5hZGQobiksdC5hZGQocil9fSx7a2V5OiJyZW5kZXJJbm5lckRhdGFMYWJlbHMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy53LHM9bmV3IGsodGhpcy5jdHgpLGE9cy5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtZGF0YWxhYmVscy1ncm91cCIsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoZS50cmFuc2xhdGVYP2UudHJhbnNsYXRlWDowLCIsICIpLmNvbmNhdChlLnRyYW5zbGF0ZVk/ZS50cmFuc2xhdGVZOjAsIikgc2NhbGUoIikuY29uY2F0KGkuY29uZmlnLnBsb3RPcHRpb25zLnBpZS5jdXN0b21TY2FsZSwiKSIpfSksbj10LnRvdGFsLnNob3c7YS5ub2RlLnN0eWxlLm9wYWNpdHk9ZS5vcGFjaXR5O3ZhciByLG8sbD1lLmNlbnRlclgsYz1lLmNlbnRlclk7cj12b2lkIDA9PT10Lm5hbWUuY29sb3I/aS5nbG9iYWxzLmNvbG9yc1swXTp0Lm5hbWUuY29sb3I7dmFyIGg9dC5uYW1lLmZvbnRTaXplLGQ9dC5uYW1lLmZvbnRGYW1pbHksdT10Lm5hbWUuZm9udFdlaWdodDtvPXZvaWQgMD09PXQudmFsdWUuY29sb3I/aS5jb25maWcuY2hhcnQuZm9yZUNvbG9yOnQudmFsdWUuY29sb3I7dmFyIHA9dC52YWx1ZS5mb3JtYXR0ZXIsZz0iIixmPSIiO2lmKG4/KHI9dC50b3RhbC5jb2xvcixoPXQudG90YWwuZm9udFNpemUsZD10LnRvdGFsLmZvbnRGYW1pbHksdT10LnRvdGFsLmZvbnRXZWlnaHQsZj10LnRvdGFsLmxhYmVsLGc9dC50b3RhbC5mb3JtYXR0ZXIoaSkpOjE9PT1pLmdsb2JhbHMuc2VyaWVzLmxlbmd0aCYmKGc9cChpLmdsb2JhbHMuc2VyaWVzWzBdLGkpLGY9aS5nbG9iYWxzLnNlcmllc05hbWVzWzBdKSxmJiYoZj10Lm5hbWUuZm9ybWF0dGVyKGYsdC50b3RhbC5zaG93LGkpKSx0Lm5hbWUuc2hvdyl7dmFyIG09cy5kcmF3VGV4dCh7eDpsLHk6YytwYXJzZUZsb2F0KHQubmFtZS5vZmZzZXRZKSx0ZXh0OmYsdGV4dEFuY2hvcjoibWlkZGxlIixmb3JlQ29sb3I6cixmb250U2l6ZTpoLGZvbnRXZWlnaHQ6dSxmb250RmFtaWx5OmR9KTttLm5vZGUuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy1kYXRhbGFiZWwtbGFiZWwiKSxhLmFkZChtKX1pZih0LnZhbHVlLnNob3cpe3ZhciB2PXQubmFtZS5zaG93P3BhcnNlRmxvYXQodC52YWx1ZS5vZmZzZXRZKSsxNjp0LnZhbHVlLm9mZnNldFkseD1zLmRyYXdUZXh0KHt4OmwseTpjK3YsdGV4dDpnLHRleHRBbmNob3I6Im1pZGRsZSIsZm9yZUNvbG9yOm8sZm9udFdlaWdodDp0LnZhbHVlLmZvbnRXZWlnaHQsZm9udFNpemU6dC52YWx1ZS5mb250U2l6ZSxmb250RmFtaWx5OnQudmFsdWUuZm9udEZhbWlseX0pO3gubm9kZS5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLWRhdGFsYWJlbC12YWx1ZSIpLGEuYWRkKHgpfXJldHVybiBhfX0se2tleToicHJpbnRJbm5lckxhYmVscyIsdmFsdWU6ZnVuY3Rpb24odCxlLGkscyl7dmFyIGEsbj10aGlzLnc7cz9hPXZvaWQgMD09PXQubmFtZS5jb2xvcj9uLmdsb2JhbHMuY29sb3JzW3BhcnNlSW50KHMucGFyZW50Tm9kZS5nZXRBdHRyaWJ1dGUoInJlbCIpLDEwKS0xXTp0Lm5hbWUuY29sb3I6bi5nbG9iYWxzLnNlcmllcy5sZW5ndGg+MSYmdC50b3RhbC5zaG93JiYoYT10LnRvdGFsLmNvbG9yKTt2YXIgcj1uLmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy1kYXRhbGFiZWwtbGFiZWwiKSxvPW4uZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLWRhdGFsYWJlbC12YWx1ZSIpO2k9KDAsdC52YWx1ZS5mb3JtYXR0ZXIpKGksbiksc3x8ImZ1bmN0aW9uIiE9dHlwZW9mIHQudG90YWwuZm9ybWF0dGVyfHwoaT10LnRvdGFsLmZvcm1hdHRlcihuKSk7dmFyIGw9ZT09PXQudG90YWwubGFiZWw7ZT10Lm5hbWUuZm9ybWF0dGVyKGUsbCxuKSxudWxsIT09ciYmKHIudGV4dENvbnRlbnQ9ZSksbnVsbCE9PW8mJihvLnRleHRDb250ZW50PWkpLG51bGwhPT1yJiYoci5zdHlsZS5maWxsPWEpfX0se2tleToicHJpbnREYXRhTGFiZWxzSW5uZXIiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy53LHM9dC5nZXRBdHRyaWJ1dGUoImRhdGE6dmFsdWUiKSxhPWkuZ2xvYmFscy5zZXJpZXNOYW1lc1twYXJzZUludCh0LnBhcmVudE5vZGUuZ2V0QXR0cmlidXRlKCJyZWwiKSwxMCktMV07aS5nbG9iYWxzLnNlcmllcy5sZW5ndGg+MSYmdGhpcy5wcmludElubmVyTGFiZWxzKGUsYSxzLHQpO3ZhciBuPWkuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLWRhdGFsYWJlbHMtZ3JvdXAiKTtudWxsIT09biYmKG4uc3R5bGUub3BhY2l0eT0xKX19LHtrZXk6ImRyYXdTcG9rZXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLncscz1uZXcgayh0aGlzLmN0eCksYT1pLmNvbmZpZy5wbG90T3B0aW9ucy5wb2xhckFyZWEuc3Bva2VzO2lmKDAhPT1hLnN0cm9rZVdpZHRoKXtmb3IodmFyIG49W10scj0zNjAvaS5nbG9iYWxzLnNlcmllcy5sZW5ndGgsbz0wO288aS5nbG9iYWxzLnNlcmllcy5sZW5ndGg7bysrKW4ucHVzaChiLnBvbGFyVG9DYXJ0ZXNpYW4odGhpcy5jZW50ZXJYLHRoaXMuY2VudGVyWSxpLmdsb2JhbHMucmFkaWFsU2l6ZSxpLmNvbmZpZy5wbG90T3B0aW9ucy5waWUuc3RhcnRBbmdsZStyKm8pKTtuLmZvckVhY2goKGZ1bmN0aW9uKGksbil7dmFyIHI9cy5kcmF3TGluZShpLngsaS55LGUuY2VudGVyWCxlLmNlbnRlclksQXJyYXkuaXNBcnJheShhLmNvbm5lY3RvckNvbG9ycyk/YS5jb25uZWN0b3JDb2xvcnNbbl06YS5jb25uZWN0b3JDb2xvcnMpO3QuYWRkKHIpfSkpfX19LHtrZXk6InJldmVydERhdGFMYWJlbHNJbm5lciIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXMsYT10aGlzLncsbj1hLmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy1kYXRhbGFiZWxzLWdyb3VwIikscj0hMSxvPWEuZ2xvYmFscy5kb20uYmFzZUVsLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFwZXhjaGFydHMtcGllLWFyZWEiKSxsPWZ1bmN0aW9uKHQpe3ZhciBpPXQubWFrZVNsaWNlT3V0LGE9dC5wcmludExhYmVsO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwobywoZnVuY3Rpb24odCl7InRydWUiPT09dC5nZXRBdHRyaWJ1dGUoImRhdGE6cGllQ2xpY2tlZCIpJiYoaSYmKHI9ITApLGEmJnMucHJpbnREYXRhTGFiZWxzSW5uZXIodCxlKSl9KSl9O2lmKGwoe21ha2VTbGljZU91dDohMCxwcmludExhYmVsOiExfSksZS50b3RhbC5zaG93JiZhLmdsb2JhbHMuc2VyaWVzLmxlbmd0aD4xKXImJiFlLnRvdGFsLnNob3dBbHdheXM/bCh7bWFrZVNsaWNlT3V0OiExLHByaW50TGFiZWw6ITB9KTp0aGlzLnByaW50SW5uZXJMYWJlbHMoZSxlLnRvdGFsLmxhYmVsLGUudG90YWwuZm9ybWF0dGVyKGEpKTtlbHNlIGlmKGwoe21ha2VTbGljZU91dDohMSxwcmludExhYmVsOiEwfSksIXIpaWYoYS5nbG9iYWxzLnNlbGVjdGVkRGF0YVBvaW50cy5sZW5ndGgmJmEuZ2xvYmFscy5zZXJpZXMubGVuZ3RoPjEpaWYoYS5nbG9iYWxzLnNlbGVjdGVkRGF0YVBvaW50c1swXS5sZW5ndGg+MCl7dmFyIGM9YS5nbG9iYWxzLnNlbGVjdGVkRGF0YVBvaW50c1swXSxoPWEuZ2xvYmFscy5kb20uYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoIi5hcGV4Y2hhcnRzLSIuY29uY2F0KHRoaXMuY2hhcnRUeXBlLnRvTG93ZXJDYXNlKCksIi1zbGljZS0iKS5jb25jYXQoYykpO3RoaXMucHJpbnREYXRhTGFiZWxzSW5uZXIoaCxlKX1lbHNlIG4mJmEuZ2xvYmFscy5zZWxlY3RlZERhdGFQb2ludHMubGVuZ3RoJiYwPT09YS5nbG9iYWxzLnNlbGVjdGVkRGF0YVBvaW50c1swXS5sZW5ndGgmJihuLnN0eWxlLm9wYWNpdHk9MCk7ZWxzZSBuJiZhLmdsb2JhbHMuc2VyaWVzLmxlbmd0aD4xJiYobi5zdHlsZS5vcGFjaXR5PTApfX1dKSx0fSgpLE10PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLnc9ZS53LHRoaXMuY2hhcnRUeXBlPXRoaXMudy5jb25maWcuY2hhcnQudHlwZSx0aGlzLmluaXRpYWxBbmltPXRoaXMudy5jb25maWcuY2hhcnQuYW5pbWF0aW9ucy5lbmFibGVkLHRoaXMuZHluYW1pY0FuaW09dGhpcy5pbml0aWFsQW5pbSYmdGhpcy53LmNvbmZpZy5jaGFydC5hbmltYXRpb25zLmR5bmFtaWNBbmltYXRpb24uZW5hYmxlZCx0aGlzLmFuaW1EdXI9MDt2YXIgaT10aGlzLnc7dGhpcy5ncmFwaGljcz1uZXcgayh0aGlzLmN0eCksdGhpcy5saW5lQ29sb3JBcnI9dm9pZCAwIT09aS5nbG9iYWxzLnN0cm9rZS5jb2xvcnM/aS5nbG9iYWxzLnN0cm9rZS5jb2xvcnM6aS5nbG9iYWxzLmNvbG9ycyx0aGlzLmRlZmF1bHRTaXplPWkuZ2xvYmFscy5zdmdIZWlnaHQ8aS5nbG9iYWxzLnN2Z1dpZHRoP2kuZ2xvYmFscy5ncmlkSGVpZ2h0KzEuNSppLmdsb2JhbHMuZ29sZGVuUGFkZGluZzppLmdsb2JhbHMuZ3JpZFdpZHRoLHRoaXMuaXNMb2c9aS5jb25maWcueWF4aXNbMF0ubG9nYXJpdGhtaWMsdGhpcy5jb3JlVXRpbHM9bmV3IFModGhpcy5jdHgpLHRoaXMubWF4VmFsdWU9dGhpcy5pc0xvZz90aGlzLmNvcmVVdGlscy5nZXRMb2dWYWwoaS5nbG9iYWxzLm1heFksMCk6aS5nbG9iYWxzLm1heFksdGhpcy5taW5WYWx1ZT10aGlzLmlzTG9nP3RoaXMuY29yZVV0aWxzLmdldExvZ1ZhbCh0aGlzLncuZ2xvYmFscy5taW5ZLDApOmkuZ2xvYmFscy5taW5ZLHRoaXMucG9seWdvbnM9aS5jb25maWcucGxvdE9wdGlvbnMucmFkYXIucG9seWdvbnMsdGhpcy5zdHJva2VXaWR0aD1pLmNvbmZpZy5zdHJva2Uuc2hvdz9pLmNvbmZpZy5zdHJva2Uud2lkdGg6MCx0aGlzLnNpemU9dGhpcy5kZWZhdWx0U2l6ZS8yLjEtdGhpcy5zdHJva2VXaWR0aC1pLmNvbmZpZy5jaGFydC5kcm9wU2hhZG93LmJsdXIsaS5jb25maWcueGF4aXMubGFiZWxzLnNob3cmJih0aGlzLnNpemU9dGhpcy5zaXplLWkuZ2xvYmFscy54QXhpc0xhYmVsc1dpZHRoLzEuNzUpLHZvaWQgMCE9PWkuY29uZmlnLnBsb3RPcHRpb25zLnJhZGFyLnNpemUmJih0aGlzLnNpemU9aS5jb25maWcucGxvdE9wdGlvbnMucmFkYXIuc2l6ZSksdGhpcy5kYXRhUmFkaXVzT2ZQZXJjZW50PVtdLHRoaXMuZGF0YVJhZGl1cz1bXSx0aGlzLmFuZ2xlQXJyPVtdLHRoaXMueWF4aXNMYWJlbHNUZXh0c1Bvcz1bXX1yZXR1cm4gYyh0LFt7a2V5OiJkcmF3Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dGhpcy53LHM9bmV3IF8odGhpcy5jdHgpLGE9W10scj1uZXcgSCh0aGlzLmN0eCk7dC5sZW5ndGgmJih0aGlzLmRhdGFQb2ludHNMZW49dFtpLmdsb2JhbHMubWF4VmFsc0luQXJyYXlJbmRleF0ubGVuZ3RoKSx0aGlzLmRpc0FuZ2xlPTIqTWF0aC5QSS90aGlzLmRhdGFQb2ludHNMZW47dmFyIG89aS5nbG9iYWxzLmdyaWRXaWR0aC8yLGw9aS5nbG9iYWxzLmdyaWRIZWlnaHQvMixjPW8raS5jb25maWcucGxvdE9wdGlvbnMucmFkYXIub2Zmc2V0WCxoPWwraS5jb25maWcucGxvdE9wdGlvbnMucmFkYXIub2Zmc2V0WSxkPXRoaXMuZ3JhcGhpY3MuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLXJhZGFyLXNlcmllcyBhcGV4Y2hhcnRzLXBsb3Qtc2VyaWVzIix0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdChjfHwwLCIsICIpLmNvbmNhdChofHwwLCIpIil9KSx1PVtdLHA9bnVsbCxnPW51bGw7aWYodGhpcy55YXhpc0xhYmVscz10aGlzLmdyYXBoaWNzLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy15YXhpcyJ9KSx0LmZvckVhY2goKGZ1bmN0aW9uKHQsbyl7dmFyIGw9dC5sZW5ndGg9PT1pLmdsb2JhbHMuZGF0YVBvaW50cyxjPWUuZ3JhcGhpY3MuZ3JvdXAoKS5hdHRyKHtjbGFzczoiYXBleGNoYXJ0cy1zZXJpZXMiLCJkYXRhOmxvbmdlc3RTZXJpZXMiOmwsc2VyaWVzTmFtZTpiLmVzY2FwZVN0cmluZyhpLmdsb2JhbHMuc2VyaWVzTmFtZXNbb10pLHJlbDpvKzEsImRhdGE6cmVhbEluZGV4IjpvfSk7ZS5kYXRhUmFkaXVzT2ZQZXJjZW50W29dPVtdLGUuZGF0YVJhZGl1c1tvXT1bXSxlLmFuZ2xlQXJyW29dPVtdLHQuZm9yRWFjaCgoZnVuY3Rpb24odCxpKXt2YXIgcz1NYXRoLmFicyhlLm1heFZhbHVlLWUubWluVmFsdWUpO3QrPU1hdGguYWJzKGUubWluVmFsdWUpLGUuaXNMb2cmJih0PWUuY29yZVV0aWxzLmdldExvZ1ZhbCh0LDApKSxlLmRhdGFSYWRpdXNPZlBlcmNlbnRbb11baV09dC9zLGUuZGF0YVJhZGl1c1tvXVtpXT1lLmRhdGFSYWRpdXNPZlBlcmNlbnRbb11baV0qZS5zaXplLGUuYW5nbGVBcnJbb11baV09aSplLmRpc0FuZ2xlfSkpLHU9ZS5nZXREYXRhUG9pbnRzUG9zKGUuZGF0YVJhZGl1c1tvXSxlLmFuZ2xlQXJyW29dKTt2YXIgaD1lLmNyZWF0ZVBhdGhzKHUse3g6MCx5OjB9KTtwPWUuZ3JhcGhpY3MuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLXNlcmllcy1tYXJrZXJzLXdyYXAgYXBleGNoYXJ0cy1lbGVtZW50LWhpZGRlbiJ9KSxnPWUuZ3JhcGhpY3MuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLWRhdGFsYWJlbHMiLCJkYXRhOnJlYWxJbmRleCI6b30pLGkuZ2xvYmFscy5kZWxheWVkRWxlbWVudHMucHVzaCh7ZWw6cC5ub2RlLGluZGV4Om99KTt2YXIgZD17aTpvLHJlYWxJbmRleDpvLGFuaW1hdGlvbkRlbGF5Om8saW5pdGlhbFNwZWVkOmkuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuc3BlZWQsZGF0YUNoYW5nZVNwZWVkOmkuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuZHluYW1pY0FuaW1hdGlvbi5zcGVlZCxjbGFzc05hbWU6ImFwZXhjaGFydHMtcmFkYXIiLHNob3VsZENsaXBUb0dyaWQ6ITEsYmluZEV2ZW50c09uUGF0aHM6ITEsc3Ryb2tlOmkuZ2xvYmFscy5zdHJva2UuY29sb3JzW29dLHN0cm9rZUxpbmVDYXA6aS5jb25maWcuc3Ryb2tlLmxpbmVDYXB9LGY9bnVsbDtpLmdsb2JhbHMucHJldmlvdXNQYXRocy5sZW5ndGg+MCYmKGY9ZS5nZXRQcmV2aW91c1BhdGgobykpO2Zvcih2YXIgbT0wO208aC5saW5lUGF0aHNUby5sZW5ndGg7bSsrKXt2YXIgdj1lLmdyYXBoaWNzLnJlbmRlclBhdGhzKG4obih7fSxkKSx7fSx7cGF0aEZyb206bnVsbD09PWY/aC5saW5lUGF0aHNGcm9tW21dOmYscGF0aFRvOmgubGluZVBhdGhzVG9bbV0sc3Ryb2tlV2lkdGg6QXJyYXkuaXNBcnJheShlLnN0cm9rZVdpZHRoKT9lLnN0cm9rZVdpZHRoW29dOmUuc3Ryb2tlV2lkdGgsZmlsbDoibm9uZSIsZHJhd1NoYWRvdzohMX0pKTtjLmFkZCh2KTt2YXIgeD1zLmZpbGxQYXRoKHtzZXJpZXNOdW1iZXI6b30pLHk9ZS5ncmFwaGljcy5yZW5kZXJQYXRocyhuKG4oe30sZCkse30se3BhdGhGcm9tOm51bGw9PT1mP2guYXJlYVBhdGhzRnJvbVttXTpmLHBhdGhUbzpoLmFyZWFQYXRoc1RvW21dLHN0cm9rZVdpZHRoOjAsZmlsbDp4LGRyYXdTaGFkb3c6ITF9KSk7aWYoaS5jb25maWcuY2hhcnQuZHJvcFNoYWRvdy5lbmFibGVkKXt2YXIgaz1uZXcgdyhlLmN0eCksUz1pLmNvbmZpZy5jaGFydC5kcm9wU2hhZG93O2suZHJvcFNoYWRvdyh5LE9iamVjdC5hc3NpZ24oe30sUyx7bm9Vc2VyU3BhY2VPblVzZTohMH0pLG8pfWMuYWRkKHkpfXQuZm9yRWFjaCgoZnVuY3Rpb24odCxzKXt2YXIgYT1uZXcgQihlLmN0eCkuZ2V0TWFya2VyQ29uZmlnKHtjc3NDbGFzczoiYXBleGNoYXJ0cy1tYXJrZXIiLHNlcmllc0luZGV4Om8sZGF0YVBvaW50SW5kZXg6c30pLGw9ZS5ncmFwaGljcy5kcmF3TWFya2VyKHVbc10ueCx1W3NdLnksYSk7bC5hdHRyKCJyZWwiLHMpLGwuYXR0cigiaiIscyksbC5hdHRyKCJpbmRleCIsbyksbC5ub2RlLnNldEF0dHJpYnV0ZSgiZGVmYXVsdC1tYXJrZXItc2l6ZSIsYS5wU2l6ZSk7dmFyIGg9ZS5ncmFwaGljcy5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtc2VyaWVzLW1hcmtlcnMifSk7aCYmaC5hZGQobCkscC5hZGQoaCksYy5hZGQocCk7dmFyIGQ9aS5jb25maWcuZGF0YUxhYmVscztpZihkLmVuYWJsZWQpe3ZhciBmPWQuZm9ybWF0dGVyKGkuZ2xvYmFscy5zZXJpZXNbb11bc10se3Nlcmllc0luZGV4Om8sZGF0YVBvaW50SW5kZXg6cyx3Oml9KTtyLnBsb3REYXRhTGFiZWxzVGV4dCh7eDp1W3NdLngseTp1W3NdLnksdGV4dDpmLHRleHRBbmNob3I6Im1pZGRsZSIsaTpvLGo6byxwYXJlbnQ6ZyxvZmZzZXRDb3JyZWN0aW9uOiExLGRhdGFMYWJlbHNDb25maWc6bih7fSxkKX0pfWMuYWRkKGcpfSkpLGEucHVzaChjKX0pKSx0aGlzLmRyYXdQb2x5Z29ucyh7cGFyZW50OmR9KSxpLmNvbmZpZy54YXhpcy5sYWJlbHMuc2hvdyl7dmFyIGY9dGhpcy5kcmF3WEF4aXNUZXh0cygpO2QuYWRkKGYpfXJldHVybiBhLmZvckVhY2goKGZ1bmN0aW9uKHQpe2QuYWRkKHQpfSkpLGQuYWRkKHRoaXMueWF4aXNMYWJlbHMpLGR9fSx7a2V5OiJkcmF3UG9seWdvbnMiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLGk9dGhpcy53LHM9dC5wYXJlbnQsYT1uZXcgTHQodGhpcy5jdHgpLG49aS5nbG9iYWxzLnlBeGlzU2NhbGVbMF0ucmVzdWx0LnJldmVyc2UoKSxyPW4ubGVuZ3RoLG89W10sbD10aGlzLnNpemUvKHItMSksYz0wO2M8cjtjKyspb1tjXT1sKmM7by5yZXZlcnNlKCk7dmFyIGg9W10sZD1bXTtvLmZvckVhY2goKGZ1bmN0aW9uKHQsaSl7dmFyIHM9Yi5nZXRQb2x5Z29uUG9zKHQsZS5kYXRhUG9pbnRzTGVuKSxhPSIiO3MuZm9yRWFjaCgoZnVuY3Rpb24odCxzKXtpZigwPT09aSl7dmFyIG49ZS5ncmFwaGljcy5kcmF3TGluZSh0LngsdC55LDAsMCxBcnJheS5pc0FycmF5KGUucG9seWdvbnMuY29ubmVjdG9yQ29sb3JzKT9lLnBvbHlnb25zLmNvbm5lY3RvckNvbG9yc1tzXTplLnBvbHlnb25zLmNvbm5lY3RvckNvbG9ycyk7ZC5wdXNoKG4pfTA9PT1zJiZlLnlheGlzTGFiZWxzVGV4dHNQb3MucHVzaCh7eDp0LngseTp0Lnl9KSxhKz10LngrIiwiK3QueSsiICJ9KSksaC5wdXNoKGEpfSkpLGguZm9yRWFjaCgoZnVuY3Rpb24odCxhKXt2YXIgbj1lLnBvbHlnb25zLnN0cm9rZUNvbG9ycyxyPWUucG9seWdvbnMuc3Ryb2tlV2lkdGgsbz1lLmdyYXBoaWNzLmRyYXdQb2x5Z29uKHQsQXJyYXkuaXNBcnJheShuKT9uW2FdOm4sQXJyYXkuaXNBcnJheShyKT9yW2FdOnIsaS5nbG9iYWxzLnJhZGFyUG9seWdvbnMuZmlsbC5jb2xvcnNbYV0pO3MuYWRkKG8pfSkpLGQuZm9yRWFjaCgoZnVuY3Rpb24odCl7cy5hZGQodCl9KSksaS5jb25maWcueWF4aXNbMF0uc2hvdyYmdGhpcy55YXhpc0xhYmVsc1RleHRzUG9zLmZvckVhY2goKGZ1bmN0aW9uKHQsaSl7dmFyIHM9YS5kcmF3WUF4aXNUZXh0cyh0LngsdC55LGksbltpXSk7ZS55YXhpc0xhYmVscy5hZGQocyl9KSl9fSx7a2V5OiJkcmF3WEF4aXNUZXh0cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy53LGk9ZS5jb25maWcueGF4aXMubGFiZWxzLHM9dGhpcy5ncmFwaGljcy5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMteGF4aXMifSksYT1iLmdldFBvbHlnb25Qb3ModGhpcy5zaXplLHRoaXMuZGF0YVBvaW50c0xlbik7cmV0dXJuIGUuZ2xvYmFscy5sYWJlbHMuZm9yRWFjaCgoZnVuY3Rpb24ocixvKXt2YXIgbD1lLmNvbmZpZy54YXhpcy5sYWJlbHMuZm9ybWF0dGVyLGM9bmV3IEgodC5jdHgpO2lmKGFbb10pe3ZhciBoPXQuZ2V0VGV4dFBvcyhhW29dLHQuc2l6ZSksZD1sKHIse3Nlcmllc0luZGV4Oi0xLGRhdGFQb2ludEluZGV4Om8sdzplfSk7Yy5wbG90RGF0YUxhYmVsc1RleHQoe3g6aC5uZXdYLHk6aC5uZXdZLHRleHQ6ZCx0ZXh0QW5jaG9yOmgudGV4dEFuY2hvcixpOm8sajpvLHBhcmVudDpzLGNvbG9yOkFycmF5LmlzQXJyYXkoaS5zdHlsZS5jb2xvcnMpJiZpLnN0eWxlLmNvbG9yc1tvXT9pLnN0eWxlLmNvbG9yc1tvXToiI2E4YThhOCIsZGF0YUxhYmVsc0NvbmZpZzpuKHt0ZXh0QW5jaG9yOmgudGV4dEFuY2hvcixkcm9wU2hhZG93OntlbmFibGVkOiExfX0saSksb2Zmc2V0Q29ycmVjdGlvbjohMX0pfX0pKSxzfX0se2tleToiY3JlYXRlUGF0aHMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcyxzPVtdLGE9W10sbj1bXSxyPVtdO2lmKHQubGVuZ3RoKXthPVt0aGlzLmdyYXBoaWNzLm1vdmUoZS54LGUueSldLHI9W3RoaXMuZ3JhcGhpY3MubW92ZShlLngsZS55KV07dmFyIG89dGhpcy5ncmFwaGljcy5tb3ZlKHRbMF0ueCx0WzBdLnkpLGw9dGhpcy5ncmFwaGljcy5tb3ZlKHRbMF0ueCx0WzBdLnkpO3QuZm9yRWFjaCgoZnVuY3Rpb24oZSxzKXtvKz1pLmdyYXBoaWNzLmxpbmUoZS54LGUueSksbCs9aS5ncmFwaGljcy5saW5lKGUueCxlLnkpLHM9PT10Lmxlbmd0aC0xJiYobys9IloiLGwrPSJaIil9KSkscy5wdXNoKG8pLG4ucHVzaChsKX1yZXR1cm57bGluZVBhdGhzRnJvbTphLGxpbmVQYXRoc1RvOnMsYXJlYVBhdGhzRnJvbTpyLGFyZWFQYXRoc1RvOm59fX0se2tleToiZ2V0VGV4dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT0ibWlkZGxlIixzPXQueCxhPXQueTtyZXR1cm4gTWF0aC5hYnModC54KT49MTA/dC54PjA/KGk9InN0YXJ0IixzKz0xMCk6dC54PDAmJihpPSJlbmQiLHMtPTEwKTppPSJtaWRkbGUiLE1hdGguYWJzKHQueSk+PWUtMTAmJih0Lnk8MD9hLT0xMDp0Lnk+MCYmKGErPTEwKSkse3RleHRBbmNob3I6aSxuZXdYOnMsbmV3WTphfX19LHtrZXk6ImdldFByZXZpb3VzUGF0aCIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudyxpPW51bGwscz0wO3M8ZS5nbG9iYWxzLnByZXZpb3VzUGF0aHMubGVuZ3RoO3MrKyl7dmFyIGE9ZS5nbG9iYWxzLnByZXZpb3VzUGF0aHNbc107YS5wYXRocy5sZW5ndGg+MCYmcGFyc2VJbnQoYS5yZWFsSW5kZXgsMTApPT09cGFyc2VJbnQodCwxMCkmJnZvaWQgMCE9PWUuZ2xvYmFscy5wcmV2aW91c1BhdGhzW3NdLnBhdGhzWzBdJiYoaT1lLmdsb2JhbHMucHJldmlvdXNQYXRoc1tzXS5wYXRoc1swXS5kKX1yZXR1cm4gaX19LHtrZXk6ImdldERhdGFQb2ludHNQb3MiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnRoaXMuZGF0YVBvaW50c0xlbjt0PXR8fFtdLGU9ZXx8W107Zm9yKHZhciBzPVtdLGE9MDthPGk7YSsrKXt2YXIgbj17fTtuLng9dFthXSpNYXRoLnNpbihlW2FdKSxuLnk9LXRbYV0qTWF0aC5jb3MoZVthXSkscy5wdXNoKG4pfXJldHVybiBzfX1dKSx0fSgpLE90PWZ1bmN0aW9uKHQpe2QoaSxQdCk7dmFyIGU9ZihpKTtmdW5jdGlvbiBpKHQpe3ZhciBzO28odGhpcyxpKSwocz1lLmNhbGwodGhpcyx0KSkuY3R4PXQscy53PXQudyxzLmFuaW1CZWdpbkFycj1bMF0scy5hbmltRHVyPTA7dmFyIGE9cy53O3JldHVybiBzLnN0YXJ0QW5nbGU9YS5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLnN0YXJ0QW5nbGUscy5lbmRBbmdsZT1hLmNvbmZpZy5wbG90T3B0aW9ucy5yYWRpYWxCYXIuZW5kQW5nbGUscy50b3RhbEFuZ2xlPU1hdGguYWJzKGEuY29uZmlnLnBsb3RPcHRpb25zLnJhZGlhbEJhci5lbmRBbmdsZS1hLmNvbmZpZy5wbG90T3B0aW9ucy5yYWRpYWxCYXIuc3RhcnRBbmdsZSkscy50cmFja1N0YXJ0QW5nbGU9YS5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLnRyYWNrLnN0YXJ0QW5nbGUscy50cmFja0VuZEFuZ2xlPWEuY29uZmlnLnBsb3RPcHRpb25zLnJhZGlhbEJhci50cmFjay5lbmRBbmdsZSxzLmRvbnV0RGF0YUxhYmVscz1zLncuY29uZmlnLnBsb3RPcHRpb25zLnJhZGlhbEJhci5kYXRhTGFiZWxzLHMucmFkaWFsRGF0YUxhYmVscz1zLmRvbnV0RGF0YUxhYmVscyxzLnRyYWNrU3RhcnRBbmdsZXx8KHMudHJhY2tTdGFydEFuZ2xlPXMuc3RhcnRBbmdsZSkscy50cmFja0VuZEFuZ2xlfHwocy50cmFja0VuZEFuZ2xlPXMuZW5kQW5nbGUpLDM2MD09PXMuZW5kQW5nbGUmJihzLmVuZEFuZ2xlPTM1OS45OSkscy5tYXJnaW49cGFyc2VJbnQoYS5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLnRyYWNrLm1hcmdpbiwxMCksc31yZXR1cm4gYyhpLFt7a2V5OiJkcmF3Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncsaT1uZXcgayh0aGlzLmN0eCkscz1pLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy1yYWRpYWxiYXIifSk7aWYoZS5nbG9iYWxzLm5vRGF0YSlyZXR1cm4gczt2YXIgYT1pLmdyb3VwKCksbj10aGlzLmRlZmF1bHRTaXplLzIscj1lLmdsb2JhbHMuZ3JpZFdpZHRoLzIsbz10aGlzLmRlZmF1bHRTaXplLzIuMDU7ZS5jb25maWcuY2hhcnQuc3BhcmtsaW5lLmVuYWJsZWR8fChvPW8tZS5jb25maWcuc3Ryb2tlLndpZHRoLWUuY29uZmlnLmNoYXJ0LmRyb3BTaGFkb3cuYmx1cik7dmFyIGw9ZS5nbG9iYWxzLmZpbGwuY29sb3JzO2lmKGUuY29uZmlnLnBsb3RPcHRpb25zLnJhZGlhbEJhci50cmFjay5zaG93KXt2YXIgYz10aGlzLmRyYXdUcmFja3Moe3NpemU6byxjZW50ZXJYOnIsY2VudGVyWTpuLGNvbG9yQXJyOmwsc2VyaWVzOnR9KTthLmFkZChjKX12YXIgaD10aGlzLmRyYXdBcmNzKHtzaXplOm8sY2VudGVyWDpyLGNlbnRlclk6bixjb2xvckFycjpsLHNlcmllczp0fSksZD0zNjA7ZS5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLnN0YXJ0QW5nbGU8MCYmKGQ9dGhpcy50b3RhbEFuZ2xlKTt2YXIgdT0oMzYwLWQpLzM2MDtpZihlLmdsb2JhbHMucmFkaWFsU2l6ZT1vLW8qdSx0aGlzLnJhZGlhbERhdGFMYWJlbHMudmFsdWUuc2hvdyl7dmFyIHA9TWF0aC5tYXgodGhpcy5yYWRpYWxEYXRhTGFiZWxzLnZhbHVlLm9mZnNldFksdGhpcy5yYWRpYWxEYXRhTGFiZWxzLm5hbWUub2Zmc2V0WSk7ZS5nbG9iYWxzLnJhZGlhbFNpemUrPXAqdX1yZXR1cm4gYS5hZGQoaC5nKSwiZnJvbnQiPT09ZS5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLmhvbGxvdy5wb3NpdGlvbiYmKGguZy5hZGQoaC5lbEhvbGxvdyksaC5kYXRhTGFiZWxzJiZoLmcuYWRkKGguZGF0YUxhYmVscykpLHMuYWRkKGEpLHN9fSx7a2V5OiJkcmF3VHJhY2tzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLncsaT1uZXcgayh0aGlzLmN0eCkscz1pLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy10cmFja3MifSksYT1uZXcgdyh0aGlzLmN0eCksbj1uZXcgXyh0aGlzLmN0eCkscj10aGlzLmdldFN0cm9rZVdpZHRoKHQpO3Quc2l6ZT10LnNpemUtci8yO2Zvcih2YXIgbz0wO288dC5zZXJpZXMubGVuZ3RoO28rKyl7dmFyIGw9aS5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtcmFkaWFsYmFyLXRyYWNrIGFwZXhjaGFydHMtdHJhY2sifSk7cy5hZGQobCksbC5hdHRyKHtyZWw6bysxfSksdC5zaXplPXQuc2l6ZS1yLXRoaXMubWFyZ2luO3ZhciBjPWUuY29uZmlnLnBsb3RPcHRpb25zLnJhZGlhbEJhci50cmFjayxoPW4uZmlsbFBhdGgoe3Nlcmllc051bWJlcjowLHNpemU6dC5zaXplLGZpbGxDb2xvcnM6QXJyYXkuaXNBcnJheShjLmJhY2tncm91bmQpP2MuYmFja2dyb3VuZFtvXTpjLmJhY2tncm91bmQsc29saWQ6ITB9KSxkPXRoaXMudHJhY2tTdGFydEFuZ2xlLHU9dGhpcy50cmFja0VuZEFuZ2xlO01hdGguYWJzKHUpK01hdGguYWJzKGQpPj0zNjAmJih1PTM2MC1NYXRoLmFicyh0aGlzLnN0YXJ0QW5nbGUpLS4xKTt2YXIgcD1pLmRyYXdQYXRoKHtkOiIiLHN0cm9rZTpoLHN0cm9rZVdpZHRoOnIqcGFyc2VJbnQoYy5zdHJva2VXaWR0aCwxMCkvMTAwLGZpbGw6Im5vbmUiLHN0cm9rZU9wYWNpdHk6Yy5vcGFjaXR5LGNsYXNzZXM6ImFwZXhjaGFydHMtcmFkaWFsYmFyLWFyZWEifSk7aWYoYy5kcm9wU2hhZG93LmVuYWJsZWQpe3ZhciBnPWMuZHJvcFNoYWRvdzthLmRyb3BTaGFkb3cocCxnKX1sLmFkZChwKSxwLmF0dHIoImlkIiwiYXBleGNoYXJ0cy1yYWRpYWxiYXJUcmFjay0iK28pLHRoaXMuYW5pbWF0ZVBhdGhzKHAse2NlbnRlclg6dC5jZW50ZXJYLGNlbnRlclk6dC5jZW50ZXJZLGVuZEFuZ2xlOnUsc3RhcnRBbmdsZTpkLHNpemU6dC5zaXplLGk6byx0b3RhbEl0ZW1zOjIsYW5pbUJlZ2luQXJyOjAsZHVyOjAsaXNUcmFjazohMCxlYXNpbmc6ZS5nbG9iYWxzLmVhc2luZ30pfXJldHVybiBzfX0se2tleToiZHJhd0FyY3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudyxpPW5ldyBrKHRoaXMuY3R4KSxzPW5ldyBfKHRoaXMuY3R4KSxhPW5ldyB3KHRoaXMuY3R4KSxuPWkuZ3JvdXAoKSxyPXRoaXMuZ2V0U3Ryb2tlV2lkdGgodCk7dC5zaXplPXQuc2l6ZS1yLzI7dmFyIG89ZS5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLmhvbGxvdy5iYWNrZ3JvdW5kLGw9dC5zaXplLXIqdC5zZXJpZXMubGVuZ3RoLXRoaXMubWFyZ2luKnQuc2VyaWVzLmxlbmd0aC1yKnBhcnNlSW50KGUuY29uZmlnLnBsb3RPcHRpb25zLnJhZGlhbEJhci50cmFjay5zdHJva2VXaWR0aCwxMCkvMTAwLzIsYz1sLWUuY29uZmlnLnBsb3RPcHRpb25zLnJhZGlhbEJhci5ob2xsb3cubWFyZ2luO3ZvaWQgMCE9PWUuY29uZmlnLnBsb3RPcHRpb25zLnJhZGlhbEJhci5ob2xsb3cuaW1hZ2UmJihvPXRoaXMuZHJhd0hvbGxvd0ltYWdlKHQsbixsLG8pKTt2YXIgaD10aGlzLmRyYXdIb2xsb3coe3NpemU6YyxjZW50ZXJYOnQuY2VudGVyWCxjZW50ZXJZOnQuY2VudGVyWSxmaWxsOm98fCJ0cmFuc3BhcmVudCJ9KTtpZihlLmNvbmZpZy5wbG90T3B0aW9ucy5yYWRpYWxCYXIuaG9sbG93LmRyb3BTaGFkb3cuZW5hYmxlZCl7dmFyIGQ9ZS5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLmhvbGxvdy5kcm9wU2hhZG93O2EuZHJvcFNoYWRvdyhoLGQpfXZhciB1PTE7IXRoaXMucmFkaWFsRGF0YUxhYmVscy50b3RhbC5zaG93JiZlLmdsb2JhbHMuc2VyaWVzLmxlbmd0aD4xJiYodT0wKTt2YXIgcD1udWxsO3RoaXMucmFkaWFsRGF0YUxhYmVscy5zaG93JiYocD10aGlzLnJlbmRlcklubmVyRGF0YUxhYmVscyh0aGlzLnJhZGlhbERhdGFMYWJlbHMse2hvbGxvd1NpemU6bCxjZW50ZXJYOnQuY2VudGVyWCxjZW50ZXJZOnQuY2VudGVyWSxvcGFjaXR5OnV9KSksImJhY2siPT09ZS5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLmhvbGxvdy5wb3NpdGlvbiYmKG4uYWRkKGgpLHAmJm4uYWRkKHApKTt2YXIgZz0hMTtlLmNvbmZpZy5wbG90T3B0aW9ucy5yYWRpYWxCYXIuaW52ZXJzZU9yZGVyJiYoZz0hMCk7Zm9yKHZhciBmPWc/dC5zZXJpZXMubGVuZ3RoLTE6MDtnP2Y+PTA6Zjx0LnNlcmllcy5sZW5ndGg7Zz9mLS06ZisrKXt2YXIgbT1pLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy1zZXJpZXMgYXBleGNoYXJ0cy1yYWRpYWwtc2VyaWVzIixzZXJpZXNOYW1lOmIuZXNjYXBlU3RyaW5nKGUuZ2xvYmFscy5zZXJpZXNOYW1lc1tmXSl9KTtuLmFkZChtKSxtLmF0dHIoe3JlbDpmKzEsImRhdGE6cmVhbEluZGV4IjpmfSksdGhpcy5jdHguc2VyaWVzLmFkZENvbGxhcHNlZENsYXNzVG9TZXJpZXMobSxmKSx0LnNpemU9dC5zaXplLXItdGhpcy5tYXJnaW47dmFyIHY9cy5maWxsUGF0aCh7c2VyaWVzTnVtYmVyOmYsc2l6ZTp0LnNpemUsdmFsdWU6dC5zZXJpZXNbZl19KSx4PXRoaXMuc3RhcnRBbmdsZSx5PXZvaWQgMCxTPWIubmVnVG9aZXJvKHQuc2VyaWVzW2ZdPjEwMD8xMDA6dC5zZXJpZXNbZl0pLzEwMCxDPU1hdGgucm91bmQodGhpcy50b3RhbEFuZ2xlKlMpK3RoaXMuc3RhcnRBbmdsZSxBPXZvaWQgMDtlLmdsb2JhbHMuZGF0YUNoYW5nZWQmJih5PXRoaXMuc3RhcnRBbmdsZSxBPU1hdGgucm91bmQodGhpcy50b3RhbEFuZ2xlKmIubmVnVG9aZXJvKGUuZ2xvYmFscy5wcmV2aW91c1BhdGhzW2ZdKS8xMDApK3kpLE1hdGguYWJzKEMpK01hdGguYWJzKHgpPj0zNjAmJihDLT0uMDEpLE1hdGguYWJzKEEpK01hdGguYWJzKHkpPj0zNjAmJihBLT0uMDEpO3ZhciBFPUMteCxUPUFycmF5LmlzQXJyYXkoZS5jb25maWcuc3Ryb2tlLmRhc2hBcnJheSk/ZS5jb25maWcuc3Ryb2tlLmRhc2hBcnJheVtmXTplLmNvbmZpZy5zdHJva2UuZGFzaEFycmF5LEw9aS5kcmF3UGF0aCh7ZDoiIixzdHJva2U6dixzdHJva2VXaWR0aDpyLGZpbGw6Im5vbmUiLGZpbGxPcGFjaXR5OmUuY29uZmlnLmZpbGwub3BhY2l0eSxjbGFzc2VzOiJhcGV4Y2hhcnRzLXJhZGlhbGJhci1hcmVhIGFwZXhjaGFydHMtcmFkaWFsYmFyLXNsaWNlLSIrZixzdHJva2VEYXNoQXJyYXk6VH0pO2lmKGsuc2V0QXR0cnMoTC5ub2RlLHsiZGF0YTphbmdsZSI6RSwiZGF0YTp2YWx1ZSI6dC5zZXJpZXNbZl19KSxlLmNvbmZpZy5jaGFydC5kcm9wU2hhZG93LmVuYWJsZWQpe3ZhciBQPWUuY29uZmlnLmNoYXJ0LmRyb3BTaGFkb3c7YS5kcm9wU2hhZG93KEwsUCxmKX1hLnNldFNlbGVjdGlvbkZpbHRlcihMLDAsZiksdGhpcy5hZGRMaXN0ZW5lcnMoTCx0aGlzLnJhZGlhbERhdGFMYWJlbHMpLG0uYWRkKEwpLEwuYXR0cih7aW5kZXg6MCxqOmZ9KTt2YXIgTT0wOyF0aGlzLmluaXRpYWxBbmltfHxlLmdsb2JhbHMucmVzaXplZHx8ZS5nbG9iYWxzLmRhdGFDaGFuZ2VkfHwoTT1lLmNvbmZpZy5jaGFydC5hbmltYXRpb25zLnNwZWVkKSxlLmdsb2JhbHMuZGF0YUNoYW5nZWQmJihNPWUuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuZHluYW1pY0FuaW1hdGlvbi5zcGVlZCksdGhpcy5hbmltRHVyPU0vKDEuMip0LnNlcmllcy5sZW5ndGgpK3RoaXMuYW5pbUR1cix0aGlzLmFuaW1CZWdpbkFyci5wdXNoKHRoaXMuYW5pbUR1ciksdGhpcy5hbmltYXRlUGF0aHMoTCx7Y2VudGVyWDp0LmNlbnRlclgsY2VudGVyWTp0LmNlbnRlclksZW5kQW5nbGU6QyxzdGFydEFuZ2xlOngscHJldkVuZEFuZ2xlOkEscHJldlN0YXJ0QW5nbGU6eSxzaXplOnQuc2l6ZSxpOmYsdG90YWxJdGVtczoyLGFuaW1CZWdpbkFycjp0aGlzLmFuaW1CZWdpbkFycixkdXI6TSxzaG91bGRTZXRQcmV2UGF0aHM6ITAsZWFzaW5nOmUuZ2xvYmFscy5lYXNpbmd9KX1yZXR1cm57ZzpuLGVsSG9sbG93OmgsZGF0YUxhYmVsczpwfX19LHtrZXk6ImRyYXdIb2xsb3ciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBrKHRoaXMuY3R4KS5kcmF3Q2lyY2xlKDIqdC5zaXplKTtyZXR1cm4gZS5hdHRyKHtjbGFzczoiYXBleGNoYXJ0cy1yYWRpYWxiYXItaG9sbG93IixjeDp0LmNlbnRlclgsY3k6dC5jZW50ZXJZLHI6dC5zaXplLGZpbGw6dC5maWxsfSksZX19LHtrZXk6ImRyYXdIb2xsb3dJbWFnZSIsdmFsdWU6ZnVuY3Rpb24odCxlLGkscyl7dmFyIGE9dGhpcy53LG49bmV3IF8odGhpcy5jdHgpLHI9Yi5yYW5kb21JZCgpLG89YS5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLmhvbGxvdy5pbWFnZTtpZihhLmNvbmZpZy5wbG90T3B0aW9ucy5yYWRpYWxCYXIuaG9sbG93LmltYWdlQ2xpcHBlZCluLmNsaXBwZWRJbWdBcmVhKHt3aWR0aDppLGhlaWdodDppLGltYWdlOm8scGF0dGVybklEOiJwYXR0ZXJuIi5jb25jYXQoYS5nbG9iYWxzLmN1aWQpLmNvbmNhdChyKX0pLHM9InVybCgjcGF0dGVybiIuY29uY2F0KGEuZ2xvYmFscy5jdWlkKS5jb25jYXQociwiKSIpO2Vsc2V7dmFyIGw9YS5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLmhvbGxvdy5pbWFnZVdpZHRoLGM9YS5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLmhvbGxvdy5pbWFnZUhlaWdodDtpZih2b2lkIDA9PT1sJiZ2b2lkIDA9PT1jKXt2YXIgaD1hLmdsb2JhbHMuZG9tLlBhcGVyLmltYWdlKG8pLmxvYWRlZCgoZnVuY3Rpb24oZSl7dGhpcy5tb3ZlKHQuY2VudGVyWC1lLndpZHRoLzIrYS5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLmhvbGxvdy5pbWFnZU9mZnNldFgsdC5jZW50ZXJZLWUuaGVpZ2h0LzIrYS5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLmhvbGxvdy5pbWFnZU9mZnNldFkpfSkpO2UuYWRkKGgpfWVsc2V7dmFyIGQ9YS5nbG9iYWxzLmRvbS5QYXBlci5pbWFnZShvKS5sb2FkZWQoKGZ1bmN0aW9uKGUpe3RoaXMubW92ZSh0LmNlbnRlclgtbC8yK2EuY29uZmlnLnBsb3RPcHRpb25zLnJhZGlhbEJhci5ob2xsb3cuaW1hZ2VPZmZzZXRYLHQuY2VudGVyWS1jLzIrYS5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLmhvbGxvdy5pbWFnZU9mZnNldFkpLHRoaXMuc2l6ZShsLGMpfSkpO2UuYWRkKGQpfX1yZXR1cm4gc319LHtrZXk6ImdldFN0cm9rZVdpZHRoIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnc7cmV0dXJuIHQuc2l6ZSooMTAwLXBhcnNlSW50KGUuY29uZmlnLnBsb3RPcHRpb25zLnJhZGlhbEJhci5ob2xsb3cuc2l6ZSwxMCkpLzEwMC8odC5zZXJpZXMubGVuZ3RoKzEpLXRoaXMubWFyZ2lufX1dKSxpfSgpLEl0PWZ1bmN0aW9uKHQpe2QoaSxTdCk7dmFyIGU9ZihpKTtmdW5jdGlvbiBpKCl7cmV0dXJuIG8odGhpcyxpKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gYyhpLFt7a2V5OiJkcmF3Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudyxzPW5ldyBrKHRoaXMuY3R4KTt0aGlzLnJhbmdlQmFyT3B0aW9ucz10aGlzLncuY29uZmlnLnBsb3RPcHRpb25zLnJhbmdlQmFyLHRoaXMuc2VyaWVzPXQsdGhpcy5zZXJpZXNSYW5nZVN0YXJ0PWkuZ2xvYmFscy5zZXJpZXNSYW5nZVN0YXJ0LHRoaXMuc2VyaWVzUmFuZ2VFbmQ9aS5nbG9iYWxzLnNlcmllc1JhbmdlRW5kLHRoaXMuYmFySGVscGVycy5pbml0VmFyaWFibGVzKHQpO2Zvcih2YXIgYT1zLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy1yYW5nZWJhci1zZXJpZXMgYXBleGNoYXJ0cy1wbG90LXNlcmllcyJ9KSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvLGwsYyxoPXZvaWQgMCxkPXZvaWQgMCx1PXZvaWQgMCxwPWkuZ2xvYmFscy5jb21ib0NoYXJ0cz9lW3JdOnIsZz1zLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy1zZXJpZXMiLHNlcmllc05hbWU6Yi5lc2NhcGVTdHJpbmcoaS5nbG9iYWxzLnNlcmllc05hbWVzW3BdKSxyZWw6cisxLCJkYXRhOnJlYWxJbmRleCI6cH0pO3RoaXMuY3R4LnNlcmllcy5hZGRDb2xsYXBzZWRDbGFzc1RvU2VyaWVzKGcscCksdFtyXS5sZW5ndGg+MCYmKHRoaXMudmlzaWJsZUk9dGhpcy52aXNpYmxlSSsxKTt2YXIgZj0wLG09MDt0aGlzLnlSYXRpby5sZW5ndGg+MSYmKHRoaXMueWF4aXNJbmRleD1wKTt2YXIgdj10aGlzLmJhckhlbHBlcnMuaW5pdGlhbFBvc2l0aW9ucygpO2Q9di55LGM9di56ZXJvVyxoPXYueCxtPXYuYmFyV2lkdGgsbz12LnhEaXZpc2lvbixsPXYuemVyb0g7Zm9yKHZhciB4PXMuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLWRhdGFsYWJlbHMiLCJkYXRhOnJlYWxJbmRleCI6cH0pLHk9cy5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtcmFuZ2ViYXItZ29hbHMtbWFya2VycyIsc3R5bGU6InBvaW50ZXItZXZlbnRzOiBub25lIn0pLHc9MDt3PGkuZ2xvYmFscy5kYXRhUG9pbnRzO3crKyl7dmFyIFM9dGhpcy5iYXJIZWxwZXJzLmdldFN0cm9rZVdpZHRoKHIsdyxwKSxDPXRoaXMuc2VyaWVzUmFuZ2VTdGFydFtyXVt3XSxBPXRoaXMuc2VyaWVzUmFuZ2VFbmRbcl1bd10sRT1udWxsLFQ9bnVsbCxMPXt4OmgseTpkLHN0cm9rZVdpZHRoOlMsZWxTZXJpZXM6Z307aWYodT12LnlEaXZpc2lvbixmPXYuYmFySGVpZ2h0LHRoaXMuaXNIb3Jpem9udGFsKXtUPWQrZip0aGlzLnZpc2libGVJO3ZhciBQPXRoaXMuc2VyaWVzTGVuO2kuY29uZmlnLnBsb3RPcHRpb25zLmJhci5yYW5nZUJhckdyb3VwUm93cyYmKFA9MSk7dmFyIE09KHUtZipQKS8yO2lmKHZvaWQgMD09PWkuY29uZmlnLnNlcmllc1tyXS5kYXRhW3ddKWJyZWFrO2lmKGkuY29uZmlnLnNlcmllc1tyXS5kYXRhW3ddLngpe3ZhciBPPXRoaXMuZGV0ZWN0T3ZlcmxhcHBpbmdCYXJzKHtpOnIsajp3LGJhcllQb3NpdGlvbjpULHNydHk6TSxiYXJIZWlnaHQ6Zix5RGl2aXNpb246dSxpbml0UG9zaXRpb25zOnZ9KTtmPU8uYmFySGVpZ2h0LFQ9Ty5iYXJZUG9zaXRpb259bT0oRT10aGlzLmRyYXdSYW5nZUJhclBhdGhzKG4oe2luZGV4ZXM6e2k6cixqOncscmVhbEluZGV4OnB9LGJhckhlaWdodDpmLGJhcllQb3NpdGlvbjpULHplcm9XOmMseURpdmlzaW9uOnUseTE6Qyx5MjpBfSxMKSkpLmJhcldpZHRofWVsc2UgZj0oRT10aGlzLmRyYXdSYW5nZUNvbHVtblBhdGhzKG4oe2luZGV4ZXM6e2k6cixqOncscmVhbEluZGV4OnB9LHplcm9IOmwsYmFyV2lkdGg6bSx4RGl2aXNpb246b30sTCkpKS5iYXJIZWlnaHQ7dmFyIEk9dGhpcy5iYXJIZWxwZXJzLmRyYXdHb2FsTGluZSh7YmFyWFBvc2l0aW9uOkUuYmFyWFBvc2l0aW9uLGJhcllQb3NpdGlvbjpULGdvYWxYOkUuZ29hbFgsZ29hbFk6RS5nb2FsWSxiYXJIZWlnaHQ6ZixiYXJXaWR0aDptfSk7SSYmeS5hZGQoSSksZD1FLnksaD1FLng7dmFyIEY9dGhpcy5iYXJIZWxwZXJzLmdldFBhdGhGaWxsQ29sb3IodCxyLHcscCksRD1pLmdsb2JhbHMuc3Ryb2tlLmNvbG9yc1twXTt0aGlzLnJlbmRlclNlcmllcyh7cmVhbEluZGV4OnAscGF0aEZpbGw6RixsaW5lRmlsbDpELGo6dyxpOnIseDpoLHk6ZCx5MTpDLHkyOkEscGF0aEZyb206RS5wYXRoRnJvbSxwYXRoVG86RS5wYXRoVG8sc3Ryb2tlV2lkdGg6UyxlbFNlcmllczpnLHNlcmllczp0LGJhckhlaWdodDpmLGJhcllQb3NpdGlvbjpULGJhcldpZHRoOm0sZWxEYXRhTGFiZWxzV3JhcDp4LGVsR29hbHNNYXJrZXJzOnksdmlzaWJsZVNlcmllczp0aGlzLnZpc2libGVJLHR5cGU6InJhbmdlYmFyIn0pfWEuYWRkKGcpfXJldHVybiBhfX0se2tleToiZGV0ZWN0T3ZlcmxhcHBpbmdCYXJzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmksaT10Lmoscz10LmJhcllQb3NpdGlvbixhPXQuc3J0eSxuPXQuYmFySGVpZ2h0LHI9dC55RGl2aXNpb24sbz10LmluaXRQb3NpdGlvbnMsbD10aGlzLncsYz1bXSxoPWwuY29uZmlnLnNlcmllc1tlXS5kYXRhW2ldLnJhbmdlTmFtZSxkPWwuY29uZmlnLnNlcmllc1tlXS5kYXRhW2ldLngsdT1sLmdsb2JhbHMubGFiZWxzLmluZGV4T2YoZCkscD1sLmdsb2JhbHMuc2VyaWVzUmFuZ2VbZV0uZmluZEluZGV4KChmdW5jdGlvbih0KXtyZXR1cm4gdC54PT09ZCYmdC5vdmVybGFwcy5sZW5ndGg+MH0pKTtyZXR1cm4gcz1sLmNvbmZpZy5wbG90T3B0aW9ucy5iYXIucmFuZ2VCYXJHcm91cFJvd3M/YStyKnU6YStuKnRoaXMudmlzaWJsZUkrcip1LHA+LTEmJiFsLmNvbmZpZy5wbG90T3B0aW9ucy5iYXIucmFuZ2VCYXJPdmVybGFwJiYoYz1sLmdsb2JhbHMuc2VyaWVzUmFuZ2VbZV1bcF0ub3ZlcmxhcHMpLmluZGV4T2YoaCk+LTEmJihzPShuPW8uYmFySGVpZ2h0L2MubGVuZ3RoKSp0aGlzLnZpc2libGVJK3IqKDEwMC1wYXJzZUludCh0aGlzLmJhck9wdGlvbnMuYmFySGVpZ2h0LDEwKSkvMTAwLzIrbioodGhpcy52aXNpYmxlSStjLmluZGV4T2YoaCkpK3IqdSkse2JhcllQb3NpdGlvbjpzLGJhckhlaWdodDpufX19LHtrZXk6ImRyYXdSYW5nZUNvbHVtblBhdGhzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmluZGV4ZXMsaT10Lng7dC5zdHJva2VXaWR0aDt2YXIgcz10LnhEaXZpc2lvbixhPXQuYmFyV2lkdGgsbj10Lnplcm9ILHI9dGhpcy53LG89ZS5pLGw9ZS5qLGM9dGhpcy55UmF0aW9bdGhpcy55YXhpc0luZGV4XSxoPWUucmVhbEluZGV4LGQ9dGhpcy5nZXRSYW5nZVZhbHVlKGgsbCksdT1NYXRoLm1pbihkLnN0YXJ0LGQuZW5kKSxwPU1hdGgubWF4KGQuc3RhcnQsZC5lbmQpO3IuZ2xvYmFscy5pc1hOdW1lcmljJiYoaT0oci5nbG9iYWxzLnNlcmllc1hbb11bbF0tci5nbG9iYWxzLm1pblgpL3RoaXMueFJhdGlvLWEvMik7dmFyIGc9aSthKnRoaXMudmlzaWJsZUk7dm9pZCAwPT09dGhpcy5zZXJpZXNbb11bbF18fG51bGw9PT10aGlzLnNlcmllc1tvXVtsXT91PW46KHU9bi11L2MscD1uLXAvYyk7dmFyIGY9TWF0aC5hYnMocC11KSxtPXRoaXMuYmFySGVscGVycy5nZXRDb2x1bW5QYXRocyh7YmFyWFBvc2l0aW9uOmcsYmFyV2lkdGg6YSx5MTp1LHkyOnAsc3Ryb2tlV2lkdGg6dGhpcy5zdHJva2VXaWR0aCxzZXJpZXM6dGhpcy5zZXJpZXNSYW5nZUVuZCxyZWFsSW5kZXg6ZS5yZWFsSW5kZXgsaTpoLGo6bCx3OnJ9KTtyZXR1cm4gci5nbG9iYWxzLmlzWE51bWVyaWN8fChpKz1zKSx7cGF0aFRvOm0ucGF0aFRvLHBhdGhGcm9tOm0ucGF0aEZyb20sYmFySGVpZ2h0OmYseDppLHk6cCxnb2FsWTp0aGlzLmJhckhlbHBlcnMuZ2V0R29hbFZhbHVlcygieSIsbnVsbCxuLG8sbCksYmFyWFBvc2l0aW9uOmd9fX0se2tleToiZHJhd1JhbmdlQmFyUGF0aHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhlcyxpPXQueSxzPXQueTEsYT10LnkyLG49dC55RGl2aXNpb24scj10LmJhckhlaWdodCxvPXQuYmFyWVBvc2l0aW9uLGw9dC56ZXJvVyxjPXRoaXMudyxoPWwrcy90aGlzLmludmVydGVkWVJhdGlvLGQ9bCthL3RoaXMuaW52ZXJ0ZWRZUmF0aW8sdT1NYXRoLmFicyhkLWgpLHA9dGhpcy5iYXJIZWxwZXJzLmdldEJhcnBhdGhzKHtiYXJZUG9zaXRpb246byxiYXJIZWlnaHQ6cix4MTpoLHgyOmQsc3Ryb2tlV2lkdGg6dGhpcy5zdHJva2VXaWR0aCxzZXJpZXM6dGhpcy5zZXJpZXNSYW5nZUVuZCxpOmUucmVhbEluZGV4LHJlYWxJbmRleDplLnJlYWxJbmRleCxqOmUuaix3OmN9KTtyZXR1cm4gYy5nbG9iYWxzLmlzWE51bWVyaWN8fChpKz1uKSx7cGF0aFRvOnAucGF0aFRvLHBhdGhGcm9tOnAucGF0aEZyb20sYmFyV2lkdGg6dSx4OmQsZ29hbFg6dGhpcy5iYXJIZWxwZXJzLmdldEdvYWxWYWx1ZXMoIngiLGwsbnVsbCxlLnJlYWxJbmRleCxlLmopLHk6aX19fSx7a2V5OiJnZXRSYW5nZVZhbHVlIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudztyZXR1cm57c3RhcnQ6aS5nbG9iYWxzLnNlcmllc1JhbmdlU3RhcnRbdF1bZV0sZW5kOmkuZ2xvYmFscy5zZXJpZXNSYW5nZUVuZFt0XVtlXX19fV0pLGl9KCksRnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLnc9ZS53LHRoaXMubGluZUN0eD1lfXJldHVybiBjKHQsW3trZXk6InNhbWVWYWx1ZVNlcmllc0ZpeCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnc7aWYoKCJncmFkaWVudCI9PT1pLmNvbmZpZy5maWxsLnR5cGV8fCJncmFkaWVudCI9PT1pLmNvbmZpZy5maWxsLnR5cGVbdF0pJiZuZXcgUyh0aGlzLmxpbmVDdHguY3R4LGkpLnNlcmllc0hhdmVTYW1lVmFsdWVzKHQpKXt2YXIgcz1lW3RdLnNsaWNlKCk7c1tzLmxlbmd0aC0xXT1zW3MubGVuZ3RoLTFdKzFlLTYsZVt0XT1zfXJldHVybiBlfX0se2tleToiY2FsY3VsYXRlUG9pbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LnNlcmllcyxpPXQucmVhbEluZGV4LHM9dC54LGE9dC55LG49dC5pLHI9dC5qLG89dC5wcmV2WSxsPXRoaXMudyxjPVtdLGg9W107aWYoMD09PXIpe3ZhciBkPXRoaXMubGluZUN0eC5jYXRlZ29yeUF4aXNDb3JyZWN0aW9uK2wuY29uZmlnLm1hcmtlcnMub2Zmc2V0WDtsLmdsb2JhbHMuaXNYTnVtZXJpYyYmKGQ9KGwuZ2xvYmFscy5zZXJpZXNYW2ldWzBdLWwuZ2xvYmFscy5taW5YKS90aGlzLmxpbmVDdHgueFJhdGlvK2wuY29uZmlnLm1hcmtlcnMub2Zmc2V0WCksYy5wdXNoKGQpLGgucHVzaChiLmlzTnVtYmVyKGVbbl1bMF0pP28rbC5jb25maWcubWFya2Vycy5vZmZzZXRZOm51bGwpLGMucHVzaChzK2wuY29uZmlnLm1hcmtlcnMub2Zmc2V0WCksaC5wdXNoKGIuaXNOdW1iZXIoZVtuXVtyKzFdKT9hK2wuY29uZmlnLm1hcmtlcnMub2Zmc2V0WTpudWxsKX1lbHNlIGMucHVzaChzK2wuY29uZmlnLm1hcmtlcnMub2Zmc2V0WCksaC5wdXNoKGIuaXNOdW1iZXIoZVtuXVtyKzFdKT9hK2wuY29uZmlnLm1hcmtlcnMub2Zmc2V0WTpudWxsKTtyZXR1cm57eDpjLHk6aH19fSx7a2V5OiJjaGVja1ByZXZpb3VzUGF0aHMiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LnBhdGhGcm9tTGluZSxpPXQucGF0aEZyb21BcmVhLHM9dC5yZWFsSW5kZXgsYT10aGlzLncsbj0wO248YS5nbG9iYWxzLnByZXZpb3VzUGF0aHMubGVuZ3RoO24rKyl7dmFyIHI9YS5nbG9iYWxzLnByZXZpb3VzUGF0aHNbbl07KCJsaW5lIj09PXIudHlwZXx8ImFyZWEiPT09ci50eXBlKSYmci5wYXRocy5sZW5ndGg+MCYmcGFyc2VJbnQoci5yZWFsSW5kZXgsMTApPT09cGFyc2VJbnQocywxMCkmJigibGluZSI9PT1yLnR5cGU/KHRoaXMubGluZUN0eC5hcHBlbmRQYXRoRnJvbT0hMSxlPWEuZ2xvYmFscy5wcmV2aW91c1BhdGhzW25dLnBhdGhzWzBdLmQpOiJhcmVhIj09PXIudHlwZSYmKHRoaXMubGluZUN0eC5hcHBlbmRQYXRoRnJvbT0hMSxpPWEuZ2xvYmFscy5wcmV2aW91c1BhdGhzW25dLnBhdGhzWzBdLmQsYS5jb25maWcuc3Ryb2tlLnNob3cmJmEuZ2xvYmFscy5wcmV2aW91c1BhdGhzW25dLnBhdGhzWzFdJiYoZT1hLmdsb2JhbHMucHJldmlvdXNQYXRoc1tuXS5wYXRoc1sxXS5kKSkpfXJldHVybntwYXRoRnJvbUxpbmU6ZSxwYXRoRnJvbUFyZWE6aX19fSx7a2V5OiJkZXRlcm1pbmVGaXJzdFByZXZZIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpPXQuaSxzPXQuc2VyaWVzLGE9dC5wcmV2WSxuPXQubGluZVlQb3NpdGlvbixyPXRoaXMudztpZih2b2lkIDAhPT0obnVsbD09PShlPXNbaV0pfHx2b2lkIDA9PT1lP3ZvaWQgMDplWzBdKSlhPShuPXIuY29uZmlnLmNoYXJ0LnN0YWNrZWQmJmk+MD90aGlzLmxpbmVDdHgucHJldlNlcmllc1lbaS0xXVswXTp0aGlzLmxpbmVDdHguemVyb1kpLXNbaV1bMF0vdGhpcy5saW5lQ3R4LnlSYXRpb1t0aGlzLmxpbmVDdHgueWF4aXNJbmRleF0rMioodGhpcy5saW5lQ3R4LmlzUmV2ZXJzZWQ/c1tpXVswXS90aGlzLmxpbmVDdHgueVJhdGlvW3RoaXMubGluZUN0eC55YXhpc0luZGV4XTowKTtlbHNlIGlmKHIuY29uZmlnLmNoYXJ0LnN0YWNrZWQmJmk+MCYmdm9pZCAwPT09c1tpXVswXSlmb3IodmFyIG89aS0xO28+PTA7by0tKWlmKG51bGwhPT1zW29dWzBdJiZ2b2lkIDAhPT1zW29dWzBdKXthPW49dGhpcy5saW5lQ3R4LnByZXZTZXJpZXNZW29dWzBdO2JyZWFrfXJldHVybntwcmV2WTphLGxpbmVZUG9zaXRpb246bn19fV0pLHR9KCksRHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsaSxzKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLnc9ZS53LHRoaXMueHlSYXRpb3M9aSx0aGlzLnBvaW50c0NoYXJ0PSEoImJ1YmJsZSIhPT10aGlzLncuY29uZmlnLmNoYXJ0LnR5cGUmJiJzY2F0dGVyIiE9PXRoaXMudy5jb25maWcuY2hhcnQudHlwZSl8fHMsdGhpcy5zY2F0dGVyPW5ldyBYKHRoaXMuY3R4KSx0aGlzLm5vTmVnYXRpdmVzPXRoaXMudy5nbG9iYWxzLm1pblg9PT1OdW1iZXIuTUFYX1ZBTFVFLHRoaXMubGluZUhlbHBlcnM9bmV3IEZ0KHRoaXMpLHRoaXMubWFya2Vycz1uZXcgQih0aGlzLmN0eCksdGhpcy5wcmV2U2VyaWVzWT1bXSx0aGlzLmNhdGVnb3J5QXhpc0NvcnJlY3Rpb249MCx0aGlzLnlheGlzSW5kZXg9MH1yZXR1cm4gYyh0LFt7a2V5OiJkcmF3Iix2YWx1ZTpmdW5jdGlvbih0LGUsaSxzKXt2YXIgYT10aGlzLncscj1uZXcgayh0aGlzLmN0eCksbz1hLmdsb2JhbHMuY29tYm9DaGFydHM/ZTphLmNvbmZpZy5jaGFydC50eXBlLGw9ci5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtIi5jb25jYXQobywiLXNlcmllcyBhcGV4Y2hhcnRzLXBsb3Qtc2VyaWVzIil9KSxjPW5ldyBTKHRoaXMuY3R4LGEpO3RoaXMueVJhdGlvPXRoaXMueHlSYXRpb3MueVJhdGlvLHRoaXMuelJhdGlvPXRoaXMueHlSYXRpb3MuelJhdGlvLHRoaXMueFJhdGlvPXRoaXMueHlSYXRpb3MueFJhdGlvLHRoaXMuYmFzZUxpbmVZPXRoaXMueHlSYXRpb3MuYmFzZUxpbmVZLHQ9Yy5nZXRMb2dTZXJpZXModCksdGhpcy55UmF0aW89Yy5nZXRMb2dZUmF0aW9zKHRoaXMueVJhdGlvKTtmb3IodmFyIGg9W10sZD0wO2Q8dC5sZW5ndGg7ZCsrKXt0PXRoaXMubGluZUhlbHBlcnMuc2FtZVZhbHVlU2VyaWVzRml4KGQsdCk7dmFyIHU9YS5nbG9iYWxzLmNvbWJvQ2hhcnRzP2lbZF06ZDt0aGlzLl9pbml0U2VyaWVWYXJpYWJsZXModCxkLHUpO3ZhciBwPVtdLGc9W10sZj1hLmdsb2JhbHMucGFkSG9yaXpvbnRhbCt0aGlzLmNhdGVnb3J5QXhpc0NvcnJlY3Rpb247dGhpcy5jdHguc2VyaWVzLmFkZENvbGxhcHNlZENsYXNzVG9TZXJpZXModGhpcy5lbFNlcmllcyx1KSxhLmdsb2JhbHMuaXNYTnVtZXJpYyYmYS5nbG9iYWxzLnNlcmllc1gubGVuZ3RoPjAmJihmPShhLmdsb2JhbHMuc2VyaWVzWFt1XVswXS1hLmdsb2JhbHMubWluWCkvdGhpcy54UmF0aW8pLGcucHVzaChmKTt2YXIgbSx2PWYseD12b2lkIDAsYj12LHk9dGhpcy56ZXJvWSx3PXRoaXMuemVyb1k7eT10aGlzLmxpbmVIZWxwZXJzLmRldGVybWluZUZpcnN0UHJldlkoe2k6ZCxzZXJpZXM6dCxwcmV2WTp5LGxpbmVZUG9zaXRpb246MH0pLnByZXZZLHAucHVzaCh5KSxtPXksInJhbmdlQXJlYSI9PT1vJiYoeD13PXRoaXMubGluZUhlbHBlcnMuZGV0ZXJtaW5lRmlyc3RQcmV2WSh7aTpkLHNlcmllczpzLHByZXZZOncsbGluZVlQb3NpdGlvbjowfSkucHJldlkpO3ZhciBDPXt0eXBlOm8sc2VyaWVzOnQscmVhbEluZGV4OnUsaTpkLHg6Zix5OjEscFg6dixwWTptLHBhdGhzRnJvbTp0aGlzLl9jYWxjdWxhdGVQYXRoc0Zyb20oe3R5cGU6byxzZXJpZXM6dCxpOmQscmVhbEluZGV4OnUscHJldlg6YixwcmV2WTp5LHByZXZZMjp3fSksbGluZVBhdGhzOltdLGFyZWFQYXRoczpbXSxzZXJpZXNJbmRleDppLGxpbmVZUG9zaXRpb246MCx4QXJyajpnLHlBcnJqOnAsc2VyaWVzUmFuZ2VFbmQ6c30sQT10aGlzLl9pdGVyYXRlT3ZlckRhdGFQb2ludHMobihuKHt9LEMpLHt9LHtpdGVyYXRpb25zOiJyYW5nZUFyZWEiPT09bz90W2RdLmxlbmd0aC0xOnZvaWQgMCxpc1JhbmdlU3RhcnQ6ITB9KSk7aWYoInJhbmdlQXJlYSI9PT1vKXt2YXIgRT10aGlzLl9jYWxjdWxhdGVQYXRoc0Zyb20oe3NlcmllczpzLGk6ZCxyZWFsSW5kZXg6dSxwcmV2WDpiLHByZXZZOnd9KSxUPXRoaXMuX2l0ZXJhdGVPdmVyRGF0YVBvaW50cyhuKG4oe30sQykse30se3NlcmllczpzLHBZOngscGF0aHNGcm9tOkUsaXRlcmF0aW9uczpzW2RdLmxlbmd0aC0xLGlzUmFuZ2VTdGFydDohMX0pKTtBLmxpbmVQYXRoc1swXT1ULmxpbmVQYXRoK0EubGluZVBhdGgsQS5wYXRoRnJvbUxpbmU9VC5wYXRoRnJvbUxpbmUrQS5wYXRoRnJvbUxpbmV9dGhpcy5faGFuZGxlUGF0aHMoe3R5cGU6byxyZWFsSW5kZXg6dSxpOmQscGF0aHM6QX0pLHRoaXMuZWxTZXJpZXMuYWRkKHRoaXMuZWxQb2ludHNNYWluKSx0aGlzLmVsU2VyaWVzLmFkZCh0aGlzLmVsRGF0YUxhYmVsc1dyYXApLGgucHVzaCh0aGlzLmVsU2VyaWVzKX1pZihhLmNvbmZpZy5jaGFydC5zdGFja2VkKWZvcih2YXIgTD1oLmxlbmd0aDtMPjA7TC0tKWwuYWRkKGhbTC0xXSk7ZWxzZSBmb3IodmFyIFA9MDtQPGgubGVuZ3RoO1ArKylsLmFkZChoW1BdKTtyZXR1cm4gbH19LHtrZXk6Il9pbml0U2VyaWVWYXJpYWJsZXMiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzLncsYT1uZXcgayh0aGlzLmN0eCk7dGhpcy54RGl2aXNpb249cy5nbG9iYWxzLmdyaWRXaWR0aC8ocy5nbG9iYWxzLmRhdGFQb2ludHMtKCJvbiI9PT1zLmNvbmZpZy54YXhpcy50aWNrUGxhY2VtZW50PzE6MCkpLHRoaXMuc3Ryb2tlV2lkdGg9QXJyYXkuaXNBcnJheShzLmNvbmZpZy5zdHJva2Uud2lkdGgpP3MuY29uZmlnLnN0cm9rZS53aWR0aFtpXTpzLmNvbmZpZy5zdHJva2Uud2lkdGgsdGhpcy55UmF0aW8ubGVuZ3RoPjEmJih0aGlzLnlheGlzSW5kZXg9aSksdGhpcy5pc1JldmVyc2VkPXMuY29uZmlnLnlheGlzW3RoaXMueWF4aXNJbmRleF0mJnMuY29uZmlnLnlheGlzW3RoaXMueWF4aXNJbmRleF0ucmV2ZXJzZWQsdGhpcy56ZXJvWT1zLmdsb2JhbHMuZ3JpZEhlaWdodC10aGlzLmJhc2VMaW5lWVt0aGlzLnlheGlzSW5kZXhdLSh0aGlzLmlzUmV2ZXJzZWQ/cy5nbG9iYWxzLmdyaWRIZWlnaHQ6MCkrKHRoaXMuaXNSZXZlcnNlZD8yKnRoaXMuYmFzZUxpbmVZW3RoaXMueWF4aXNJbmRleF06MCksdGhpcy5hcmVhQm90dG9tWT10aGlzLnplcm9ZLCh0aGlzLnplcm9ZPnMuZ2xvYmFscy5ncmlkSGVpZ2h0fHwiZW5kIj09PXMuY29uZmlnLnBsb3RPcHRpb25zLmFyZWEuZmlsbFRvKSYmKHRoaXMuYXJlYUJvdHRvbVk9cy5nbG9iYWxzLmdyaWRIZWlnaHQpLHRoaXMuY2F0ZWdvcnlBeGlzQ29ycmVjdGlvbj10aGlzLnhEaXZpc2lvbi8yLHRoaXMuZWxTZXJpZXM9YS5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtc2VyaWVzIixzZXJpZXNOYW1lOmIuZXNjYXBlU3RyaW5nKHMuZ2xvYmFscy5zZXJpZXNOYW1lc1tpXSl9KSx0aGlzLmVsUG9pbnRzTWFpbj1hLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy1zZXJpZXMtbWFya2Vycy13cmFwIiwiZGF0YTpyZWFsSW5kZXgiOml9KSx0aGlzLmVsRGF0YUxhYmVsc1dyYXA9YS5ncm91cCh7Y2xhc3M6ImFwZXhjaGFydHMtZGF0YWxhYmVscyIsImRhdGE6cmVhbEluZGV4IjppfSk7dmFyIG49dFtlXS5sZW5ndGg9PT1zLmdsb2JhbHMuZGF0YVBvaW50czt0aGlzLmVsU2VyaWVzLmF0dHIoeyJkYXRhOmxvbmdlc3RTZXJpZXMiOm4scmVsOmUrMSwiZGF0YTpyZWFsSW5kZXgiOml9KSx0aGlzLmFwcGVuZFBhdGhGcm9tPSEwfX0se2tleToiX2NhbGN1bGF0ZVBhdGhzRnJvbSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsaSxzLGEsbj10LnR5cGUscj10LnNlcmllcyxvPXQuaSxsPXQucmVhbEluZGV4LGM9dC5wcmV2WCxoPXQucHJldlksZD10LnByZXZZMix1PXRoaXMudyxwPW5ldyBrKHRoaXMuY3R4KTtpZihudWxsPT09cltvXVswXSl7Zm9yKHZhciBnPTA7ZzxyW29dLmxlbmd0aDtnKyspaWYobnVsbCE9PXJbb11bZ10pe2M9dGhpcy54RGl2aXNpb24qZyxoPXRoaXMuemVyb1ktcltvXVtnXS90aGlzLnlSYXRpb1t0aGlzLnlheGlzSW5kZXhdLGU9cC5tb3ZlKGMsaCksaT1wLm1vdmUoYyx0aGlzLmFyZWFCb3R0b21ZKTticmVha319ZWxzZSBlPXAubW92ZShjLGgpLCJyYW5nZUFyZWEiPT09biYmKGU9cC5tb3ZlKGMsZCkrcC5saW5lKGMsaCkpLGk9cC5tb3ZlKGMsdGhpcy5hcmVhQm90dG9tWSkrcC5saW5lKGMsaCk7aWYocz1wLm1vdmUoLTEsdGhpcy56ZXJvWSkrcC5saW5lKC0xLHRoaXMuemVyb1kpLGE9cC5tb3ZlKC0xLHRoaXMuemVyb1kpK3AubGluZSgtMSx0aGlzLnplcm9ZKSx1Lmdsb2JhbHMucHJldmlvdXNQYXRocy5sZW5ndGg+MCl7dmFyIGY9dGhpcy5saW5lSGVscGVycy5jaGVja1ByZXZpb3VzUGF0aHMoe3BhdGhGcm9tTGluZTpzLHBhdGhGcm9tQXJlYTphLHJlYWxJbmRleDpsfSk7cz1mLnBhdGhGcm9tTGluZSxhPWYucGF0aEZyb21BcmVhfXJldHVybntwcmV2WDpjLHByZXZZOmgsbGluZVBhdGg6ZSxhcmVhUGF0aDppLHBhdGhGcm9tTGluZTpzLHBhdGhGcm9tQXJlYTphfX19LHtrZXk6Il9oYW5kbGVQYXRocyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC50eXBlLGk9dC5yZWFsSW5kZXgscz10LmksYT10LnBhdGhzLHI9dGhpcy53LG89bmV3IGsodGhpcy5jdHgpLGw9bmV3IF8odGhpcy5jdHgpO3RoaXMucHJldlNlcmllc1kucHVzaChhLnlBcnJqKSxyLmdsb2JhbHMuc2VyaWVzWHZhbHVlc1tpXT1hLnhBcnJqLHIuZ2xvYmFscy5zZXJpZXNZdmFsdWVzW2ldPWEueUFycmo7dmFyIGM9ci5jb25maWcuZm9yZWNhc3REYXRhUG9pbnRzO2lmKGMuY291bnQ+MCYmInJhbmdlQXJlYSIhPT1lKXt2YXIgaD1yLmdsb2JhbHMuc2VyaWVzWHZhbHVlc1tpXVtyLmdsb2JhbHMuc2VyaWVzWHZhbHVlc1tpXS5sZW5ndGgtYy5jb3VudC0xXSxkPW8uZHJhd1JlY3QoaCwwLHIuZ2xvYmFscy5ncmlkV2lkdGgsci5nbG9iYWxzLmdyaWRIZWlnaHQsMCk7ci5nbG9iYWxzLmRvbS5lbEZvcmVjYXN0TWFzay5hcHBlbmRDaGlsZChkLm5vZGUpO3ZhciB1PW8uZHJhd1JlY3QoMCwwLGgsci5nbG9iYWxzLmdyaWRIZWlnaHQsMCk7ci5nbG9iYWxzLmRvbS5lbE5vbkZvcmVjYXN0TWFzay5hcHBlbmRDaGlsZCh1Lm5vZGUpfXRoaXMucG9pbnRzQ2hhcnR8fHIuZ2xvYmFscy5kZWxheWVkRWxlbWVudHMucHVzaCh7ZWw6dGhpcy5lbFBvaW50c01haW4ubm9kZSxpbmRleDppfSk7dmFyIHA9e2k6cyxyZWFsSW5kZXg6aSxhbmltYXRpb25EZWxheTpzLGluaXRpYWxTcGVlZDpyLmNvbmZpZy5jaGFydC5hbmltYXRpb25zLnNwZWVkLGRhdGFDaGFuZ2VTcGVlZDpyLmNvbmZpZy5jaGFydC5hbmltYXRpb25zLmR5bmFtaWNBbmltYXRpb24uc3BlZWQsY2xhc3NOYW1lOiJhcGV4Y2hhcnRzLSIuY29uY2F0KGUpfTtpZigiYXJlYSI9PT1lKWZvcih2YXIgZz1sLmZpbGxQYXRoKHtzZXJpZXNOdW1iZXI6aX0pLGY9MDtmPGEuYXJlYVBhdGhzLmxlbmd0aDtmKyspe3ZhciBtPW8ucmVuZGVyUGF0aHMobihuKHt9LHApLHt9LHtwYXRoRnJvbTphLnBhdGhGcm9tQXJlYSxwYXRoVG86YS5hcmVhUGF0aHNbZl0sc3Ryb2tlOiJub25lIixzdHJva2VXaWR0aDowLHN0cm9rZUxpbmVDYXA6bnVsbCxmaWxsOmd9KSk7dGhpcy5lbFNlcmllcy5hZGQobSl9aWYoci5jb25maWcuc3Ryb2tlLnNob3cmJiF0aGlzLnBvaW50c0NoYXJ0KXt2YXIgdj1udWxsO2lmKCJsaW5lIj09PWUpdj1sLmZpbGxQYXRoKHtzZXJpZXNOdW1iZXI6aSxpOnN9KTtlbHNlIGlmKCJzb2xpZCI9PT1yLmNvbmZpZy5zdHJva2UuZmlsbC50eXBlKXY9ci5nbG9iYWxzLnN0cm9rZS5jb2xvcnNbaV07ZWxzZXt2YXIgeD1yLmNvbmZpZy5maWxsO3IuY29uZmlnLmZpbGw9ci5jb25maWcuc3Ryb2tlLmZpbGwsdj1sLmZpbGxQYXRoKHtzZXJpZXNOdW1iZXI6aSxpOnN9KSxyLmNvbmZpZy5maWxsPXh9Zm9yKHZhciBiPTA7YjxhLmxpbmVQYXRocy5sZW5ndGg7YisrKXt2YXIgeT12OyJyYW5nZUFyZWEiPT09ZSYmKHk9bC5maWxsUGF0aCh7c2VyaWVzTnVtYmVyOml9KSk7dmFyIHc9bihuKHt9LHApLHt9LHtwYXRoRnJvbTphLnBhdGhGcm9tTGluZSxwYXRoVG86YS5saW5lUGF0aHNbYl0sc3Ryb2tlOnYsc3Ryb2tlV2lkdGg6dGhpcy5zdHJva2VXaWR0aCxzdHJva2VMaW5lQ2FwOnIuY29uZmlnLnN0cm9rZS5saW5lQ2FwLGZpbGw6InJhbmdlQXJlYSI9PT1lP3k6Im5vbmUifSksUz1vLnJlbmRlclBhdGhzKHcpO2lmKHRoaXMuZWxTZXJpZXMuYWRkKFMpLFMuYXR0cigiZmlsbC1ydWxlIiwiZXZlbm9kZCIpLGMuY291bnQ+MCYmInJhbmdlQXJlYSIhPT1lKXt2YXIgQz1vLnJlbmRlclBhdGhzKHcpO0Mubm9kZS5zZXRBdHRyaWJ1dGUoInN0cm9rZS1kYXNoYXJyYXkiLGMuZGFzaEFycmF5KSxjLnN0cm9rZVdpZHRoJiZDLm5vZGUuc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLGMuc3Ryb2tlV2lkdGgpLHRoaXMuZWxTZXJpZXMuYWRkKEMpLEMuYXR0cigiY2xpcC1wYXRoIiwidXJsKCNmb3JlY2FzdE1hc2siLmNvbmNhdChyLmdsb2JhbHMuY3VpZCwiKSIpKSxTLmF0dHIoImNsaXAtcGF0aCIsInVybCgjbm9uRm9yZWNhc3RNYXNrIi5jb25jYXQoci5nbG9iYWxzLmN1aWQsIikiKSl9fX19fSx7a2V5OiJfaXRlcmF0ZU92ZXJEYXRhUG9pbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LnR5cGUsaT10LnNlcmllcyxzPXQuaXRlcmF0aW9ucyxhPXQucmVhbEluZGV4LG49dC5pLHI9dC54LG89dC55LGw9dC5wWCxjPXQucFksaD10LnBhdGhzRnJvbSxkPXQubGluZVBhdGhzLHU9dC5hcmVhUGF0aHMscD10LnNlcmllc0luZGV4LGc9dC5saW5lWVBvc2l0aW9uLGY9dC54QXJyaixtPXQueUFycmosdj10LmlzUmFuZ2VTdGFydCx4PXQuc2VyaWVzUmFuZ2VFbmQseT10aGlzLncsdz1uZXcgayh0aGlzLmN0eCksUz10aGlzLnlSYXRpbyxDPWgucHJldlksQT1oLmxpbmVQYXRoLEU9aC5hcmVhUGF0aCxUPWgucGF0aEZyb21MaW5lLEw9aC5wYXRoRnJvbUFyZWEsUD1iLmlzTnVtYmVyKHkuZ2xvYmFscy5taW5ZQXJyW2FdKT95Lmdsb2JhbHMubWluWUFyclthXTp5Lmdsb2JhbHMubWluWTtzfHwocz15Lmdsb2JhbHMuZGF0YVBvaW50cz4xP3kuZ2xvYmFscy5kYXRhUG9pbnRzLTE6eS5nbG9iYWxzLmRhdGFQb2ludHMpO2Zvcih2YXIgTT1vLE89MDtPPHM7TysrKXt2YXIgST12b2lkIDA9PT1pW25dW08rMV18fG51bGw9PT1pW25dW08rMV07aWYoeS5nbG9iYWxzLmlzWE51bWVyaWMpe3ZhciBGPXkuZ2xvYmFscy5zZXJpZXNYW2FdW08rMV07dm9pZCAwPT09eS5nbG9iYWxzLnNlcmllc1hbYV1bTysxXSYmKEY9eS5nbG9iYWxzLnNlcmllc1hbYV1bcy0xXSkscj0oRi15Lmdsb2JhbHMubWluWCkvdGhpcy54UmF0aW99ZWxzZSByKz10aGlzLnhEaXZpc2lvbjtnPXkuY29uZmlnLmNoYXJ0LnN0YWNrZWQmJm4+MCYmeS5nbG9iYWxzLmNvbGxhcHNlZFNlcmllcy5sZW5ndGg8eS5jb25maWcuc2VyaWVzLmxlbmd0aC0xP3RoaXMucHJldlNlcmllc1lbZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQsaT0wO2k8eS5nbG9iYWxzLnNlcmllcy5sZW5ndGg7aSsrKWlmKHkuZ2xvYmFscy5jb2xsYXBzZWRTZXJpZXNJbmRpY2VzLmluZGV4T2YodCk+LTEpe2UtLTticmVha31yZXR1cm4gZT49MD9lOjB9KG4tMSldW08rMV06dGhpcy56ZXJvWSxJP289Zy1QL1NbdGhpcy55YXhpc0luZGV4XSsyKih0aGlzLmlzUmV2ZXJzZWQ/UC9TW3RoaXMueWF4aXNJbmRleF06MCk6KG89Zy1pW25dW08rMV0vU1t0aGlzLnlheGlzSW5kZXhdKzIqKHRoaXMuaXNSZXZlcnNlZD9pW25dW08rMV0vU1t0aGlzLnlheGlzSW5kZXhdOjApLCJyYW5nZUFyZWEiPT09ZSYmKE09Zy14W25dW08rMV0vU1t0aGlzLnlheGlzSW5kZXhdKzIqKHRoaXMuaXNSZXZlcnNlZD94W25dW08rMV0vU1t0aGlzLnlheGlzSW5kZXhdOjApKSksZi5wdXNoKHIpLG0ucHVzaChvKTt2YXIgRD10aGlzLmxpbmVIZWxwZXJzLmNhbGN1bGF0ZVBvaW50cyh7c2VyaWVzOmkseDpyLHk6byxyZWFsSW5kZXg6YSxpOm4sajpPLHByZXZZOkN9KSx6PXRoaXMuX2NyZWF0ZVBhdGhzKHt0eXBlOmUsc2VyaWVzOmksaTpuLHJlYWxJbmRleDphLGo6Tyx4OnIseTpvLHkyOk0scFg6bCxwWTpjLGxpbmVQYXRoOkEsYXJlYVBhdGg6RSxsaW5lUGF0aHM6ZCxhcmVhUGF0aHM6dSxzZXJpZXNJbmRleDpwLGlzUmFuZ2VTdGFydDp2fSk7dT16LmFyZWFQYXRocyxkPXoubGluZVBhdGhzLGw9ei5wWCxjPXoucFksRT16LmFyZWFQYXRoLEE9ei5saW5lUGF0aCx0aGlzLmFwcGVuZFBhdGhGcm9tJiYoVCs9dy5saW5lKHIsdGhpcy56ZXJvWSksTCs9dy5saW5lKHIsdGhpcy56ZXJvWSkpLHRoaXMuaGFuZGxlTnVsbERhdGFQb2ludHMoaSxELG4sTyxhKSx0aGlzLl9oYW5kbGVNYXJrZXJzQW5kTGFiZWxzKHt0eXBlOmUscG9pbnRzUG9zOkQsaTpuLGo6TyxyZWFsSW5kZXg6YSxpc1JhbmdlU3RhcnQ6dn0pfXJldHVybnt5QXJyajptLHhBcnJqOmYscGF0aEZyb21BcmVhOkwsYXJlYVBhdGhzOnUscGF0aEZyb21MaW5lOlQsbGluZVBhdGhzOmQsbGluZVBhdGg6QSxhcmVhUGF0aDpFfX19LHtrZXk6Il9oYW5kbGVNYXJrZXJzQW5kTGFiZWxzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LnR5cGUsaT10LnBvaW50c1BvcyxzPXQuaXNSYW5nZVN0YXJ0LGE9dC5pLG49dC5qLHI9dC5yZWFsSW5kZXgsbz10aGlzLncsbD1uZXcgSCh0aGlzLmN0eCk7aWYodGhpcy5wb2ludHNDaGFydCl0aGlzLnNjYXR0ZXIuZHJhdyh0aGlzLmVsU2VyaWVzLG4se3JlYWxJbmRleDpyLHBvaW50c1BvczppLHpSYXRpbzp0aGlzLnpSYXRpbyxlbFBhcmVudDp0aGlzLmVsUG9pbnRzTWFpbn0pO2Vsc2V7by5nbG9iYWxzLnNlcmllc1thXS5sZW5ndGg+MSYmdGhpcy5lbFBvaW50c01haW4ubm9kZS5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLWVsZW1lbnQtaGlkZGVuIik7dmFyIGM9dGhpcy5tYXJrZXJzLnBsb3RDaGFydE1hcmtlcnMoaSxyLG4rMSk7bnVsbCE9PWMmJnRoaXMuZWxQb2ludHNNYWluLmFkZChjKX12YXIgaD1sLmRyYXdEYXRhTGFiZWwoe3R5cGU6ZSxpc1JhbmdlU3RhcnQ6cyxwb3M6aSxpOnIsajpuKzF9KTtudWxsIT09aCYmdGhpcy5lbERhdGFMYWJlbHNXcmFwLmFkZChoKX19LHtrZXk6Il9jcmVhdGVQYXRocyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC50eXBlLGk9dC5zZXJpZXMscz10LmksYT10LnJlYWxJbmRleCxuPXQuaixyPXQueCxvPXQueSxsPXQueTIsYz10LnBYLGg9dC5wWSxkPXQubGluZVBhdGgsdT10LmFyZWFQYXRoLHA9dC5saW5lUGF0aHMsZz10LmFyZWFQYXRocyxmPXQuc2VyaWVzSW5kZXgsbT10LmlzUmFuZ2VTdGFydCx2PXRoaXMudyx4PW5ldyBrKHRoaXMuY3R4KSxiPXYuY29uZmlnLnN0cm9rZS5jdXJ2ZSx5PXRoaXMuYXJlYUJvdHRvbVk7aWYoQXJyYXkuaXNBcnJheSh2LmNvbmZpZy5zdHJva2UuY3VydmUpJiYoYj1BcnJheS5pc0FycmF5KGYpP3YuY29uZmlnLnN0cm9rZS5jdXJ2ZVtmW3NdXTp2LmNvbmZpZy5zdHJva2UuY3VydmVbc10pLCJzbW9vdGgiPT09Yil7dmFyIHc9LjM1KihyLWMpO3YuZ2xvYmFscy5oYXNOdWxsVmFsdWVzPyhudWxsIT09aVtzXVtuXSYmKG51bGwhPT1pW3NdW24rMV0/KGQ9eC5tb3ZlKGMsaCkreC5jdXJ2ZShjK3csaCxyLXcsbyxyKzEsbyksdT14Lm1vdmUoYysxLGgpK3guY3VydmUoYyt3LGgsci13LG8scisxLG8pK3gubGluZShyLHkpK3gubGluZShjLHkpKyJ6Iik6KGQ9eC5tb3ZlKGMsaCksdT14Lm1vdmUoYyxoKSsieiIpKSxwLnB1c2goZCksZy5wdXNoKHUpKTooZCs9eC5jdXJ2ZShjK3csaCxyLXcsbyxyLG8pLHUrPXguY3VydmUoYyt3LGgsci13LG8scixvKSksYz1yLGg9byxuPT09aVtzXS5sZW5ndGgtMiYmKHU9dSt4LmN1cnZlKGMsaCxyLG8scix5KSt4Lm1vdmUocixvKSsieiIsInJhbmdlQXJlYSI9PT1lJiZtP2Q9ZCt4LmN1cnZlKGMsaCxyLG8scixsKSt4Lm1vdmUocixsKSsieiI6di5nbG9iYWxzLmhhc051bGxWYWx1ZXN8fChwLnB1c2goZCksZy5wdXNoKHUpKSl9ZWxzZXtpZihudWxsPT09aVtzXVtuKzFdKXtkKz14Lm1vdmUocixvKTt2YXIgUz12Lmdsb2JhbHMuaXNYTnVtZXJpYz8odi5nbG9iYWxzLnNlcmllc1hbYV1bbl0tdi5nbG9iYWxzLm1pblgpL3RoaXMueFJhdGlvOnItdGhpcy54RGl2aXNpb247dT11K3gubGluZShTLHkpK3gubW92ZShyLG8pKyJ6In1udWxsPT09aVtzXVtuXSYmKGQrPXgubW92ZShyLG8pLHUrPXgubW92ZShyLHkpKSwic3RlcGxpbmUiPT09Yj8oZD1kK3gubGluZShyLG51bGwsIkgiKSt4LmxpbmUobnVsbCxvLCJWIiksdT11K3gubGluZShyLG51bGwsIkgiKSt4LmxpbmUobnVsbCxvLCJWIikpOiJzdHJhaWdodCI9PT1iJiYoZCs9eC5saW5lKHIsbyksdSs9eC5saW5lKHIsbykpLG49PT1pW3NdLmxlbmd0aC0yJiYodT11K3gubGluZShyLHkpK3gubW92ZShyLG8pKyJ6IiwicmFuZ2VBcmVhIj09PWUmJm0/ZD1kK3gubGluZShyLGwpK3gubW92ZShyLGwpKyJ6IjoocC5wdXNoKGQpLGcucHVzaCh1KSkpfXJldHVybntsaW5lUGF0aHM6cCxhcmVhUGF0aHM6ZyxwWDpjLHBZOmgsbGluZVBhdGg6ZCxhcmVhUGF0aDp1fX19LHtrZXk6ImhhbmRsZU51bGxEYXRhUG9pbnRzIix2YWx1ZTpmdW5jdGlvbih0LGUsaSxzLGEpe3ZhciBuPXRoaXMudztpZihudWxsPT09dFtpXVtzXSYmbi5jb25maWcubWFya2Vycy5zaG93TnVsbERhdGFQb2ludHN8fDE9PT10W2ldLmxlbmd0aCl7dmFyIHI9dGhpcy5tYXJrZXJzLnBsb3RDaGFydE1hcmtlcnMoZSxhLHMrMSx0aGlzLnN0cm9rZVdpZHRoLW4uY29uZmlnLm1hcmtlcnMuc3Ryb2tlV2lkdGgvMiwhMCk7bnVsbCE9PXImJnRoaXMuZWxQb2ludHNNYWluLmFkZChyKX19fV0pLHR9KCk7d2luZG93LlRyZWVtYXBTcXVhcmVkPXt9LHdpbmRvdy5UcmVlbWFwU3F1YXJlZC5nZW5lcmF0ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxpLHMsYSl7dGhpcy54b2Zmc2V0PWUsdGhpcy55b2Zmc2V0PWksdGhpcy5oZWlnaHQ9YSx0aGlzLndpZHRoPXMsdGhpcy5zaG9ydGVzdEVkZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5taW4odGhpcy5oZWlnaHQsdGhpcy53aWR0aCl9LHRoaXMuZ2V0Q29vcmRpbmF0ZXM9ZnVuY3Rpb24odCl7dmFyIGUsaT1bXSxzPXRoaXMueG9mZnNldCxhPXRoaXMueW9mZnNldCxyPW4odCkvdGhpcy5oZWlnaHQsbz1uKHQpL3RoaXMud2lkdGg7aWYodGhpcy53aWR0aD49dGhpcy5oZWlnaHQpZm9yKGU9MDtlPHQubGVuZ3RoO2UrKylpLnB1c2goW3MsYSxzK3IsYSt0W2VdL3JdKSxhKz10W2VdL3I7ZWxzZSBmb3IoZT0wO2U8dC5sZW5ndGg7ZSsrKWkucHVzaChbcyxhLHMrdFtlXS9vLGErb10pLHMrPXRbZV0vbztyZXR1cm4gaX0sdGhpcy5jdXRBcmVhPWZ1bmN0aW9uKGUpe3ZhciBpO2lmKHRoaXMud2lkdGg+PXRoaXMuaGVpZ2h0KXt2YXIgcz1lL3RoaXMuaGVpZ2h0LGE9dGhpcy53aWR0aC1zO2k9bmV3IHQodGhpcy54b2Zmc2V0K3MsdGhpcy55b2Zmc2V0LGEsdGhpcy5oZWlnaHQpfWVsc2V7dmFyIG49ZS90aGlzLndpZHRoLHI9dGhpcy5oZWlnaHQtbjtpPW5ldyB0KHRoaXMueG9mZnNldCx0aGlzLnlvZmZzZXQrbix0aGlzLndpZHRoLHIpfXJldHVybiBpfX1mdW5jdGlvbiBlKGUscyxhLHIsbyl7cj12b2lkIDA9PT1yPzA6cixvPXZvaWQgMD09PW8/MDpvO3ZhciBsPWkoZnVuY3Rpb24odCxlKXt2YXIgaSxzPVtdLGE9ZS9uKHQpO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspc1tpXT10W2ldKmE7cmV0dXJuIHN9KGUscyphKSxbXSxuZXcgdChyLG8scyxhKSxbXSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlLGkscz1bXTtmb3IoZT0wO2U8dC5sZW5ndGg7ZSsrKWZvcihpPTA7aTx0W2VdLmxlbmd0aDtpKyspcy5wdXNoKHRbZV1baV0pO3JldHVybiBzfShsKX1mdW5jdGlvbiBpKHQsZSxhLHIpe3ZhciBvLGwsYztpZigwIT09dC5sZW5ndGgpcmV0dXJuIG89YS5zaG9ydGVzdEVkZ2UoKSxmdW5jdGlvbih0LGUsaSl7dmFyIGE7cmV0dXJuIDA9PT10Lmxlbmd0aHx8KChhPXQuc2xpY2UoKSkucHVzaChlKSxzKHQsaSk+PXMoYSxpKSl9KGUsbD10WzBdLG8pPyhlLnB1c2gobCksaSh0LnNsaWNlKDEpLGUsYSxyKSk6KGM9YS5jdXRBcmVhKG4oZSksciksci5wdXNoKGEuZ2V0Q29vcmRpbmF0ZXMoZSkpLGkodCxbXSxjLHIpKSxyO3IucHVzaChhLmdldENvb3JkaW5hdGVzKGUpKX1mdW5jdGlvbiBzKHQsZSl7dmFyIGk9TWF0aC5taW4uYXBwbHkoTWF0aCx0KSxzPU1hdGgubWF4LmFwcGx5KE1hdGgsdCksYT1uKHQpO3JldHVybiBNYXRoLm1heChNYXRoLnBvdyhlLDIpKnMvTWF0aC5wb3coYSwyKSxNYXRoLnBvdyhhLDIpLyhNYXRoLnBvdyhlLDIpKmkpKX1mdW5jdGlvbiBhKHQpe3JldHVybiB0JiZ0LmNvbnN0cnVjdG9yPT09QXJyYXl9ZnVuY3Rpb24gbih0KXt2YXIgZSxpPTA7Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKylpKz10W2VdO3JldHVybiBpfWZ1bmN0aW9uIHIodCl7dmFyIGUsaT0wO2lmKGEodFswXSkpZm9yKGU9MDtlPHQubGVuZ3RoO2UrKylpKz1yKHRbZV0pO2Vsc2UgaT1uKHQpO3JldHVybiBpfXJldHVybiBmdW5jdGlvbiB0KGkscyxuLG8sbCl7bz12b2lkIDA9PT1vPzA6byxsPXZvaWQgMD09PWw/MDpsO3ZhciBjLGgsZD1bXSx1PVtdO2lmKGEoaVswXSkpe2ZvcihoPTA7aDxpLmxlbmd0aDtoKyspZFtoXT1yKGlbaF0pO2ZvcihjPWUoZCxzLG4sbyxsKSxoPTA7aDxpLmxlbmd0aDtoKyspdS5wdXNoKHQoaVtoXSxjW2hdWzJdLWNbaF1bMF0sY1toXVszXS1jW2hdWzFdLGNbaF1bMF0sY1toXVsxXSkpfWVsc2UgdT1lKGkscyxuLG8sbCk7cmV0dXJuIHV9fSgpO3ZhciB6dCxOdCxSdD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxpKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLnc9ZS53LHRoaXMuc3Ryb2tlV2lkdGg9dGhpcy53LmNvbmZpZy5zdHJva2Uud2lkdGgsdGhpcy5oZWxwZXJzPW5ldyBFdChlKSx0aGlzLmR5bmFtaWNBbmltPXRoaXMudy5jb25maWcuY2hhcnQuYW5pbWF0aW9ucy5keW5hbWljQW5pbWF0aW9uLHRoaXMubGFiZWxzPVtdfXJldHVybiBjKHQsW3trZXk6ImRyYXciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLncscz1uZXcgayh0aGlzLmN0eCksYT1uZXcgXyh0aGlzLmN0eCksbj1zLmdyb3VwKHtjbGFzczoiYXBleGNoYXJ0cy10cmVlbWFwIn0pO2lmKGkuZ2xvYmFscy5ub0RhdGEpcmV0dXJuIG47dmFyIHI9W107cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmFicyh0KX0pKTtyLnB1c2goZSl9KSksdGhpcy5uZWdSYW5nZT10aGlzLmhlbHBlcnMuY2hlY2tDb2xvclJhbmdlKCksaS5jb25maWcuc2VyaWVzLmZvckVhY2goKGZ1bmN0aW9uKHQsaSl7dC5kYXRhLmZvckVhY2goKGZ1bmN0aW9uKHQpe0FycmF5LmlzQXJyYXkoZS5sYWJlbHNbaV0pfHwoZS5sYWJlbHNbaV09W10pLGUubGFiZWxzW2ldLnB1c2godC54KX0pKX0pKSx3aW5kb3cuVHJlZW1hcFNxdWFyZWQuZ2VuZXJhdGUocixpLmdsb2JhbHMuZ3JpZFdpZHRoLGkuZ2xvYmFscy5ncmlkSGVpZ2h0KS5mb3JFYWNoKChmdW5jdGlvbihyLG8pe3ZhciBsPXMuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLXNlcmllcyBhcGV4Y2hhcnRzLXRyZWVtYXAtc2VyaWVzIixzZXJpZXNOYW1lOmIuZXNjYXBlU3RyaW5nKGkuZ2xvYmFscy5zZXJpZXNOYW1lc1tvXSkscmVsOm8rMSwiZGF0YTpyZWFsSW5kZXgiOm99KTtpZihpLmNvbmZpZy5jaGFydC5kcm9wU2hhZG93LmVuYWJsZWQpe3ZhciBjPWkuY29uZmlnLmNoYXJ0LmRyb3BTaGFkb3c7bmV3IHcoZS5jdHgpLmRyb3BTaGFkb3cobixjLG8pfXZhciBoPXMuZ3JvdXAoe2NsYXNzOiJhcGV4Y2hhcnRzLWRhdGEtbGFiZWxzIn0pO3IuZm9yRWFjaCgoZnVuY3Rpb24obixyKXt2YXIgYz1uWzBdLGg9blsxXSxkPW5bMl0sdT1uWzNdLHA9cy5kcmF3UmVjdChjLGgsZC1jLHUtaCwwLCIjZmZmIiwxLGUuc3Ryb2tlV2lkdGgsaS5jb25maWcucGxvdE9wdGlvbnMudHJlZW1hcC51c2VGaWxsQ29sb3JBc1N0cm9rZT9mOmkuZ2xvYmFscy5zdHJva2UuY29sb3JzW29dKTtwLmF0dHIoe2N4OmMsY3k6aCxpbmRleDpvLGk6byxqOnIsd2lkdGg6ZC1jLGhlaWdodDp1LWh9KTt2YXIgZz1lLmhlbHBlcnMuZ2V0U2hhZGVDb2xvcihpLmNvbmZpZy5jaGFydC50eXBlLG8scixlLm5lZ1JhbmdlKSxmPWcuY29sb3I7dm9pZCAwIT09aS5jb25maWcuc2VyaWVzW29dLmRhdGFbcl0mJmkuY29uZmlnLnNlcmllc1tvXS5kYXRhW3JdLmZpbGxDb2xvciYmKGY9aS5jb25maWcuc2VyaWVzW29dLmRhdGFbcl0uZmlsbENvbG9yKTt2YXIgbT1hLmZpbGxQYXRoKHtjb2xvcjpmLHNlcmllc051bWJlcjpvLGRhdGFQb2ludEluZGV4OnJ9KTtwLm5vZGUuY2xhc3NMaXN0LmFkZCgiYXBleGNoYXJ0cy10cmVlbWFwLXJlY3QiKSxwLmF0dHIoe2ZpbGw6bX0pLGUuaGVscGVycy5hZGRMaXN0ZW5lcnMocCk7dmFyIHY9e3g6YysoZC1jKS8yLHk6aCsodS1oKS8yLHdpZHRoOjAsaGVpZ2h0OjB9LHg9e3g6Yyx5Omgsd2lkdGg6ZC1jLGhlaWdodDp1LWh9O2lmKGkuY29uZmlnLmNoYXJ0LmFuaW1hdGlvbnMuZW5hYmxlZCYmIWkuZ2xvYmFscy5kYXRhQ2hhbmdlZCl7dmFyIGI9MTtpLmdsb2JhbHMucmVzaXplZHx8KGI9aS5jb25maWcuY2hhcnQuYW5pbWF0aW9ucy5zcGVlZCksZS5hbmltYXRlVHJlZW1hcChwLHYseCxiKX1pZihpLmdsb2JhbHMuZGF0YUNoYW5nZWQpe3ZhciB5PTE7ZS5keW5hbWljQW5pbS5lbmFibGVkJiZpLmdsb2JhbHMuc2hvdWxkQW5pbWF0ZSYmKHk9ZS5keW5hbWljQW5pbS5zcGVlZCxpLmdsb2JhbHMucHJldmlvdXNQYXRoc1tvXSYmaS5nbG9iYWxzLnByZXZpb3VzUGF0aHNbb11bcl0mJmkuZ2xvYmFscy5wcmV2aW91c1BhdGhzW29dW3JdLnJlY3QmJih2PWkuZ2xvYmFscy5wcmV2aW91c1BhdGhzW29dW3JdLnJlY3QpLGUuYW5pbWF0ZVRyZWVtYXAocCx2LHgseSkpfXZhciB3PWUuZ2V0Rm9udFNpemUobiksaz1pLmNvbmZpZy5kYXRhTGFiZWxzLmZvcm1hdHRlcihlLmxhYmVsc1tvXVtyXSx7dmFsdWU6aS5nbG9iYWxzLnNlcmllc1tvXVtyXSxzZXJpZXNJbmRleDpvLGRhdGFQb2ludEluZGV4OnIsdzppfSksUz1lLmhlbHBlcnMuY2FsY3VsYXRlRGF0YUxhYmVscyh7dGV4dDprLHg6KGMrZCkvMix5OihoK3UpLzIrZS5zdHJva2VXaWR0aC8yK3cvMyxpOm8sajpyLGNvbG9yUHJvcHM6Zyxmb250U2l6ZTp3LHNlcmllczp0fSk7aS5jb25maWcuZGF0YUxhYmVscy5lbmFibGVkJiZTJiZlLnJvdGF0ZVRvRml0TGFiZWwoUyx3LGssYyxoLGQsdSksbC5hZGQocCksbnVsbCE9PVMmJmwuYWRkKFMpfSkpLGwuYWRkKGgpLG4uYWRkKGwpfSkpLG59fSx7a2V5OiJnZXRGb250U2l6ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsaSxzPXRoaXMudyxhPWZ1bmN0aW9uIHQoZSl7dmFyIGkscz0wO2lmKEFycmF5LmlzQXJyYXkoZVswXSkpZm9yKGk9MDtpPGUubGVuZ3RoO2krKylzKz10KGVbaV0pO2Vsc2UgZm9yKGk9MDtpPGUubGVuZ3RoO2krKylzKz1lW2ldLmxlbmd0aDtyZXR1cm4gc30odGhpcy5sYWJlbHMpL2Z1bmN0aW9uIHQoZSl7dmFyIGkscz0wO2lmKEFycmF5LmlzQXJyYXkoZVswXSkpZm9yKGk9MDtpPGUubGVuZ3RoO2krKylzKz10KGVbaV0pO2Vsc2UgZm9yKGk9MDtpPGUubGVuZ3RoO2krKylzKz0xO3JldHVybiBzfSh0aGlzLmxhYmVscyk7cmV0dXJuIGU9KHRbMl0tdFswXSkqKHRbM10tdFsxXSksaT1NYXRoLnBvdyhlLC41KSxNYXRoLm1pbihpL2EscGFyc2VJbnQocy5jb25maWcuZGF0YUxhYmVscy5zdHlsZS5mb250U2l6ZSwxMCkpfX0se2tleToicm90YXRlVG9GaXRMYWJlbCIsdmFsdWU6ZnVuY3Rpb24odCxlLGkscyxhLG4scil7dmFyIG89bmV3IGsodGhpcy5jdHgpLGw9by5nZXRUZXh0UmVjdHMoaSxlKTtpZihsLndpZHRoK3RoaXMudy5jb25maWcuc3Ryb2tlLndpZHRoKzU+bi1zJiZsLndpZHRoPD1yLWEpe3ZhciBjPW8ucm90YXRlQXJvdW5kQ2VudGVyKHQubm9kZSk7dC5ub2RlLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwicm90YXRlKC05MCAiLmNvbmNhdChjLngsIiAiKS5jb25jYXQoYy55LCIpIikpfX19LHtrZXk6ImFuaW1hdGVUcmVlbWFwIix2YWx1ZTpmdW5jdGlvbih0LGUsaSxzKXt2YXIgYT1uZXcgeSh0aGlzLmN0eCk7YS5hbmltYXRlUmVjdCh0LHt4OmUueCx5OmUueSx3aWR0aDplLndpZHRoLGhlaWdodDplLmhlaWdodH0se3g6aS54LHk6aS55LHdpZHRoOmkud2lkdGgsaGVpZ2h0OmkuaGVpZ2h0fSxzLChmdW5jdGlvbigpe2EuYW5pbWF0aW9uQ29tcGxldGVkKHQpfSkpfX1dKSx0fSgpLF90PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLnc9ZS53LHRoaXMudGltZVNjYWxlQXJyYXk9W10sdGhpcy51dGM9dGhpcy53LmNvbmZpZy54YXhpcy5sYWJlbHMuZGF0ZXRpbWVVVEN9cmV0dXJuIGModCxbe2tleToiY2FsY3VsYXRlVGltZVNjYWxlVGlja3MiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcyxzPXRoaXMudztpZihzLmdsb2JhbHMuYWxsU2VyaWVzQ29sbGFwc2VkKXJldHVybiBzLmdsb2JhbHMubGFiZWxzPVtdLHMuZ2xvYmFscy50aW1lc2NhbGVMYWJlbHM9W10sW107dmFyIGE9bmV3IE8odGhpcy5jdHgpLHI9KGUtdCkvODY0ZTU7dGhpcy5kZXRlcm1pbmVJbnRlcnZhbChyKSxzLmdsb2JhbHMuZGlzYWJsZVpvb21Jbj0hMSxzLmdsb2JhbHMuZGlzYWJsZVpvb21PdXQ9ITEscjwuMDAwMTE1NzQwNzQwNzQwNzQwNzU/cy5nbG9iYWxzLmRpc2FibGVab29tSW49ITA6cj41ZTQmJihzLmdsb2JhbHMuZGlzYWJsZVpvb21PdXQ9ITApO3ZhciBvPWEuZ2V0VGltZVVuaXRzZnJvbVRpbWVzdGFtcCh0LGUsdGhpcy51dGMpLGw9cy5nbG9iYWxzLmdyaWRXaWR0aC9yLGM9bC8yNCxoPWMvNjAsZD1oLzYwLHU9TWF0aC5mbG9vcigyNCpyKSxwPU1hdGguZmxvb3IoMTQ0MCpyKSxnPU1hdGguZmxvb3IoODY0MDAqciksZj1NYXRoLmZsb29yKHIpLG09TWF0aC5mbG9vcihyLzMwKSx2PU1hdGguZmxvb3Ioci8zNjUpLHg9e21pbk1pbGxpc2Vjb25kOm8ubWluTWlsbGlzZWNvbmQsbWluU2Vjb25kOm8ubWluU2Vjb25kLG1pbk1pbnV0ZTpvLm1pbk1pbnV0ZSxtaW5Ib3VyOm8ubWluSG91cixtaW5EYXRlOm8ubWluRGF0ZSxtaW5Nb250aDpvLm1pbk1vbnRoLG1pblllYXI6by5taW5ZZWFyfSxiPXtmaXJzdFZhbDp4LGN1cnJlbnRNaWxsaXNlY29uZDp4Lm1pbk1pbGxpc2Vjb25kLGN1cnJlbnRTZWNvbmQ6eC5taW5TZWNvbmQsY3VycmVudE1pbnV0ZTp4Lm1pbk1pbnV0ZSxjdXJyZW50SG91cjp4Lm1pbkhvdXIsY3VycmVudE1vbnRoRGF0ZTp4Lm1pbkRhdGUsY3VycmVudERhdGU6eC5taW5EYXRlLGN1cnJlbnRNb250aDp4Lm1pbk1vbnRoLGN1cnJlbnRZZWFyOngubWluWWVhcixkYXlzV2lkdGhPblhBeGlzOmwsaG91cnNXaWR0aE9uWEF4aXM6YyxtaW51dGVzV2lkdGhPblhBeGlzOmgsc2Vjb25kc1dpZHRoT25YQXhpczpkLG51bWJlck9mU2Vjb25kczpnLG51bWJlck9mTWludXRlczpwLG51bWJlck9mSG91cnM6dSxudW1iZXJPZkRheXM6ZixudW1iZXJPZk1vbnRoczptLG51bWJlck9mWWVhcnM6dn07c3dpdGNoKHRoaXMudGlja0ludGVydmFsKXtjYXNlInllYXJzIjp0aGlzLmdlbmVyYXRlWWVhclNjYWxlKGIpO2JyZWFrO2Nhc2UibW9udGhzIjpjYXNlImhhbGZfeWVhciI6dGhpcy5nZW5lcmF0ZU1vbnRoU2NhbGUoYik7YnJlYWs7Y2FzZSJtb250aHNfZGF5cyI6Y2FzZSJtb250aHNfZm9ydG5pZ2h0IjpjYXNlImRheXMiOmNhc2Uid2Vla19kYXlzIjp0aGlzLmdlbmVyYXRlRGF5U2NhbGUoYik7YnJlYWs7Y2FzZSJob3VycyI6dGhpcy5nZW5lcmF0ZUhvdXJTY2FsZShiKTticmVhaztjYXNlIm1pbnV0ZXNfZml2ZXMiOmNhc2UibWludXRlcyI6dGhpcy5nZW5lcmF0ZU1pbnV0ZVNjYWxlKGIpO2JyZWFrO2Nhc2Uic2Vjb25kc190ZW5zIjpjYXNlInNlY29uZHNfZml2ZXMiOmNhc2Uic2Vjb25kcyI6dGhpcy5nZW5lcmF0ZVNlY29uZFNjYWxlKGIpfXZhciB5PXRoaXMudGltZVNjYWxlQXJyYXkubWFwKChmdW5jdGlvbih0KXt2YXIgZT17cG9zaXRpb246dC5wb3NpdGlvbix1bml0OnQudW5pdCx5ZWFyOnQueWVhcixkYXk6dC5kYXk/dC5kYXk6MSxob3VyOnQuaG91cj90LmhvdXI6MCxtb250aDp0Lm1vbnRoKzF9O3JldHVybiJtb250aCI9PT10LnVuaXQ/bihuKHt9LGUpLHt9LHtkYXk6MSx2YWx1ZTp0LnZhbHVlKzF9KToiZGF5Ij09PXQudW5pdHx8ImhvdXIiPT09dC51bml0P24obih7fSxlKSx7fSx7dmFsdWU6dC52YWx1ZX0pOiJtaW51dGUiPT09dC51bml0P24obih7fSxlKSx7fSx7dmFsdWU6dC52YWx1ZSxtaW51dGU6dC52YWx1ZX0pOiJzZWNvbmQiPT09dC51bml0P24obih7fSxlKSx7fSx7dmFsdWU6dC52YWx1ZSxtaW51dGU6dC5taW51dGUsc2Vjb25kOnQuc2Vjb25kfSk6dH0pKTtyZXR1cm4geS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3ZhciBlPTEsYT1NYXRoLmNlaWwocy5nbG9iYWxzLmdyaWRXaWR0aC8xMjApLG49dC52YWx1ZTt2b2lkIDAhPT1zLmNvbmZpZy54YXhpcy50aWNrQW1vdW50JiYoYT1zLmNvbmZpZy54YXhpcy50aWNrQW1vdW50KSx5Lmxlbmd0aD5hJiYoZT1NYXRoLmZsb29yKHkubGVuZ3RoL2EpKTt2YXIgcj0hMSxvPSExO3N3aXRjaChpLnRpY2tJbnRlcnZhbCl7Y2FzZSJ5ZWFycyI6InllYXIiPT09dC51bml0JiYocj0hMCk7YnJlYWs7Y2FzZSJoYWxmX3llYXIiOmU9NywieWVhciI9PT10LnVuaXQmJihyPSEwKTticmVhaztjYXNlIm1vbnRocyI6ZT0xLCJ5ZWFyIj09PXQudW5pdCYmKHI9ITApO2JyZWFrO2Nhc2UibW9udGhzX2ZvcnRuaWdodCI6ZT0xNSwieWVhciIhPT10LnVuaXQmJiJtb250aCIhPT10LnVuaXR8fChyPSEwKSwzMD09PW4mJihvPSEwKTticmVhaztjYXNlIm1vbnRoc19kYXlzIjplPTEwLCJtb250aCI9PT10LnVuaXQmJihyPSEwKSwzMD09PW4mJihvPSEwKTticmVhaztjYXNlIndlZWtfZGF5cyI6ZT04LCJtb250aCI9PT10LnVuaXQmJihyPSEwKTticmVhaztjYXNlImRheXMiOmU9MSwibW9udGgiPT09dC51bml0JiYocj0hMCk7YnJlYWs7Y2FzZSJob3VycyI6ImRheSI9PT10LnVuaXQmJihyPSEwKTticmVhaztjYXNlIm1pbnV0ZXNfZml2ZXMiOmNhc2Uic2Vjb25kc19maXZlcyI6biU1IT0wJiYobz0hMCk7YnJlYWs7Y2FzZSJzZWNvbmRzX3RlbnMiOm4lMTAhPTAmJihvPSEwKX1pZigiaG91cnMiPT09aS50aWNrSW50ZXJ2YWx8fCJtaW51dGVzX2ZpdmVzIj09PWkudGlja0ludGVydmFsfHwic2Vjb25kc190ZW5zIj09PWkudGlja0ludGVydmFsfHwic2Vjb25kc19maXZlcyI9PT1pLnRpY2tJbnRlcnZhbCl7aWYoIW8pcmV0dXJuITB9ZWxzZSBpZigobiVlPT0wfHxyKSYmIW8pcmV0dXJuITB9KSl9fSx7a2V5OiJyZWNhbGNEaW1lbnNpb25zQmFzZWRPbkZvcm1hdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLncscz10aGlzLmZvcm1hdERhdGVzKHQpLGE9dGhpcy5yZW1vdmVPdmVybGFwcGluZ1RTKHMpO2kuZ2xvYmFscy50aW1lc2NhbGVMYWJlbHM9YS5zbGljZSgpLG5ldyBjdCh0aGlzLmN0eCkucGxvdENvb3JkcygpfX0se2tleToiZGV0ZXJtaW5lSW50ZXJ2YWwiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPTI0KnQsaT02MCplO3N3aXRjaCghMCl7Y2FzZSB0LzM2NT41OnRoaXMudGlja0ludGVydmFsPSJ5ZWFycyI7YnJlYWs7Y2FzZSB0PjgwMDp0aGlzLnRpY2tJbnRlcnZhbD0iaGFsZl95ZWFyIjticmVhaztjYXNlIHQ+MTgwOnRoaXMudGlja0ludGVydmFsPSJtb250aHMiO2JyZWFrO2Nhc2UgdD45MDp0aGlzLnRpY2tJbnRlcnZhbD0ibW9udGhzX2ZvcnRuaWdodCI7YnJlYWs7Y2FzZSB0PjYwOnRoaXMudGlja0ludGVydmFsPSJtb250aHNfZGF5cyI7YnJlYWs7Y2FzZSB0PjMwOnRoaXMudGlja0ludGVydmFsPSJ3ZWVrX2RheXMiO2JyZWFrO2Nhc2UgdD4yOnRoaXMudGlja0ludGVydmFsPSJkYXlzIjticmVhaztjYXNlIGU+Mi40OnRoaXMudGlja0ludGVydmFsPSJob3VycyI7YnJlYWs7Y2FzZSBpPjE1OnRoaXMudGlja0ludGVydmFsPSJtaW51dGVzX2ZpdmVzIjticmVhaztjYXNlIGk+NTp0aGlzLnRpY2tJbnRlcnZhbD0ibWludXRlcyI7YnJlYWs7Y2FzZSBpPjE6dGhpcy50aWNrSW50ZXJ2YWw9InNlY29uZHNfdGVucyI7YnJlYWs7Y2FzZSA2MCppPjIwOnRoaXMudGlja0ludGVydmFsPSJzZWNvbmRzX2ZpdmVzIjticmVhaztkZWZhdWx0OnRoaXMudGlja0ludGVydmFsPSJzZWNvbmRzIn19fSx7a2V5OiJnZW5lcmF0ZVllYXJTY2FsZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5maXJzdFZhbCxpPXQuY3VycmVudE1vbnRoLHM9dC5jdXJyZW50WWVhcixhPXQuZGF5c1dpZHRoT25YQXhpcyxuPXQubnVtYmVyT2ZZZWFycyxyPWUubWluWWVhcixvPTAsbD1uZXcgTyh0aGlzLmN0eCksYz0ieWVhciI7aWYoZS5taW5EYXRlPjF8fGUubWluTW9udGg+MCl7dmFyIGg9bC5kZXRlcm1pbmVSZW1haW5pbmdEYXlzT2ZZZWFyKGUubWluWWVhcixlLm1pbk1vbnRoLGUubWluRGF0ZSk7bz0obC5kZXRlcm1pbmVEYXlzT2ZZZWFyKGUubWluWWVhciktaCsxKSphLHI9ZS5taW5ZZWFyKzEsdGhpcy50aW1lU2NhbGVBcnJheS5wdXNoKHtwb3NpdGlvbjpvLHZhbHVlOnIsdW5pdDpjLHllYXI6cixtb250aDpiLm1vbnRoTW9kKGkrMSl9KX1lbHNlIDE9PT1lLm1pbkRhdGUmJjA9PT1lLm1pbk1vbnRoJiZ0aGlzLnRpbWVTY2FsZUFycmF5LnB1c2goe3Bvc2l0aW9uOm8sdmFsdWU6cix1bml0OmMseWVhcjpzLG1vbnRoOmIubW9udGhNb2QoaSsxKX0pO2Zvcih2YXIgZD1yLHU9byxwPTA7cDxuO3ArKylkKyssdT1sLmRldGVybWluZURheXNPZlllYXIoZC0xKSphK3UsdGhpcy50aW1lU2NhbGVBcnJheS5wdXNoKHtwb3NpdGlvbjp1LHZhbHVlOmQsdW5pdDpjLHllYXI6ZCxtb250aDoxfSl9fSx7a2V5OiJnZW5lcmF0ZU1vbnRoU2NhbGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuZmlyc3RWYWwsaT10LmN1cnJlbnRNb250aERhdGUscz10LmN1cnJlbnRNb250aCxhPXQuY3VycmVudFllYXIsbj10LmRheXNXaWR0aE9uWEF4aXMscj10Lm51bWJlck9mTW9udGhzLG89cyxsPTAsYz1uZXcgTyh0aGlzLmN0eCksaD0ibW9udGgiLGQ9MDtpZihlLm1pbkRhdGU+MSl7bD0oYy5kZXRlcm1pbmVEYXlzT2ZNb250aHMocysxLGUubWluWWVhciktaSsxKSpuLG89Yi5tb250aE1vZChzKzEpO3ZhciB1PWErZCxwPWIubW9udGhNb2QobyksZz1vOzA9PT1vJiYoaD0ieWVhciIsZz11LHA9MSx1Kz1kKz0xKSx0aGlzLnRpbWVTY2FsZUFycmF5LnB1c2goe3Bvc2l0aW9uOmwsdmFsdWU6Zyx1bml0OmgseWVhcjp1LG1vbnRoOnB9KX1lbHNlIHRoaXMudGltZVNjYWxlQXJyYXkucHVzaCh7cG9zaXRpb246bCx2YWx1ZTpvLHVuaXQ6aCx5ZWFyOmEsbW9udGg6Yi5tb250aE1vZChzKX0pO2Zvcih2YXIgZj1vKzEsbT1sLHY9MCx4PTE7djxyO3YrKyx4KyspezA9PT0oZj1iLm1vbnRoTW9kKGYpKT8oaD0ieWVhciIsZCs9MSk6aD0ibW9udGgiO3ZhciB5PXRoaXMuX2dldFllYXIoYSxmLGQpO209Yy5kZXRlcm1pbmVEYXlzT2ZNb250aHMoZix5KSpuK207dmFyIHc9MD09PWY/eTpmO3RoaXMudGltZVNjYWxlQXJyYXkucHVzaCh7cG9zaXRpb246bSx2YWx1ZTp3LHVuaXQ6aCx5ZWFyOnksbW9udGg6MD09PWY/MTpmfSksZisrfX19LHtrZXk6ImdlbmVyYXRlRGF5U2NhbGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuZmlyc3RWYWwsaT10LmN1cnJlbnRNb250aCxzPXQuY3VycmVudFllYXIsYT10LmhvdXJzV2lkdGhPblhBeGlzLG49dC5udW1iZXJPZkRheXMscj1uZXcgTyh0aGlzLmN0eCksbz0iZGF5IixsPWUubWluRGF0ZSsxLGM9bCxoPWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gdD5yLmRldGVybWluZURheXNPZk1vbnRocyhlKzEsaSk/KGM9MSxvPSJtb250aCIsdT1lKz0xLGUpOmV9LGQ9KDI0LWUubWluSG91cikqYSx1PWwscD1oKGMsaSxzKTswPT09ZS5taW5Ib3VyJiYxPT09ZS5taW5EYXRlPyhkPTAsdT1iLm1vbnRoTW9kKGUubWluTW9udGgpLG89Im1vbnRoIixjPWUubWluRGF0ZSxuKyspOjEhPT1lLm1pbkRhdGUmJjA9PT1lLm1pbkhvdXImJjA9PT1lLm1pbk1pbnV0ZSYmKGQ9MCxsPWUubWluRGF0ZSx1PWwscD1oKGM9bCxpLHMpKSx0aGlzLnRpbWVTY2FsZUFycmF5LnB1c2goe3Bvc2l0aW9uOmQsdmFsdWU6dSx1bml0Om8seWVhcjp0aGlzLl9nZXRZZWFyKHMscCwwKSxtb250aDpiLm1vbnRoTW9kKHApLGRheTpjfSk7Zm9yKHZhciBnPWQsZj0wO2Y8bjtmKyspe289ImRheSIscD1oKGMrPTEscCx0aGlzLl9nZXRZZWFyKHMscCwwKSk7dmFyIG09dGhpcy5fZ2V0WWVhcihzLHAsMCk7Zz0yNCphK2c7dmFyIHY9MT09PWM/Yi5tb250aE1vZChwKTpjO3RoaXMudGltZVNjYWxlQXJyYXkucHVzaCh7cG9zaXRpb246Zyx2YWx1ZTp2LHVuaXQ6byx5ZWFyOm0sbW9udGg6Yi5tb250aE1vZChwKSxkYXk6dn0pfX19LHtrZXk6ImdlbmVyYXRlSG91clNjYWxlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmZpcnN0VmFsLGk9dC5jdXJyZW50RGF0ZSxzPXQuY3VycmVudE1vbnRoLGE9dC5jdXJyZW50WWVhcixuPXQubWludXRlc1dpZHRoT25YQXhpcyxyPXQubnVtYmVyT2ZIb3VycyxvPW5ldyBPKHRoaXMuY3R4KSxsPSJob3VyIixjPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+by5kZXRlcm1pbmVEYXlzT2ZNb250aHMoZSsxLGEpJiYoZj0xLGUrPTEpLHttb250aDplLGRhdGU6Zn19LGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD5vLmRldGVybWluZURheXNPZk1vbnRocyhlKzEsYSk/ZSs9MTplfSxkPTYwLShlLm1pbk1pbnV0ZStlLm1pblNlY29uZC82MCksdT1kKm4scD1lLm1pbkhvdXIrMSxnPXArMTs2MD09PWQmJih1PTAsZz0ocD1lLm1pbkhvdXIpKzEpO3ZhciBmPWksbT1oKGYscyk7dGhpcy50aW1lU2NhbGVBcnJheS5wdXNoKHtwb3NpdGlvbjp1LHZhbHVlOnAsdW5pdDpsLGRheTpmLGhvdXI6Zyx5ZWFyOmEsbW9udGg6Yi5tb250aE1vZChtKX0pO2Zvcih2YXIgdj11LHg9MDt4PHI7eCsrKXtsPSJob3VyIixnPj0yNCYmKGc9MCxsPSJkYXkiLG09YyhmKz0xLG0pLm1vbnRoLG09aChmLG0pKTt2YXIgeT10aGlzLl9nZXRZZWFyKGEsbSwwKTt2PTA9PT1nJiYwPT09eD9kKm46NjAqbit2O3ZhciB3PTA9PT1nP2Y6Zzt0aGlzLnRpbWVTY2FsZUFycmF5LnB1c2goe3Bvc2l0aW9uOnYsdmFsdWU6dyx1bml0OmwsaG91cjpnLGRheTpmLHllYXI6eSxtb250aDpiLm1vbnRoTW9kKG0pfSksZysrfX19LHtrZXk6ImdlbmVyYXRlTWludXRlU2NhbGUiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LmN1cnJlbnRNaWxsaXNlY29uZCxpPXQuY3VycmVudFNlY29uZCxzPXQuY3VycmVudE1pbnV0ZSxhPXQuY3VycmVudEhvdXIsbj10LmN1cnJlbnREYXRlLHI9dC5jdXJyZW50TW9udGgsbz10LmN1cnJlbnRZZWFyLGw9dC5taW51dGVzV2lkdGhPblhBeGlzLGM9dC5zZWNvbmRzV2lkdGhPblhBeGlzLGg9dC5udW1iZXJPZk1pbnV0ZXMsZD1zKzEsdT1uLHA9cixnPW8sZj1hLG09KDYwLWktZS8xZTMpKmMsdj0wO3Y8aDt2KyspZD49NjAmJihkPTAsMjQ9PT0oZis9MSkmJihmPTApKSx0aGlzLnRpbWVTY2FsZUFycmF5LnB1c2goe3Bvc2l0aW9uOm0sdmFsdWU6ZCx1bml0OiJtaW51dGUiLGhvdXI6ZixtaW51dGU6ZCxkYXk6dSx5ZWFyOnRoaXMuX2dldFllYXIoZyxwLDApLG1vbnRoOmIubW9udGhNb2QocCl9KSxtKz1sLGQrK319LHtrZXk6ImdlbmVyYXRlU2Vjb25kU2NhbGUiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LmN1cnJlbnRNaWxsaXNlY29uZCxpPXQuY3VycmVudFNlY29uZCxzPXQuY3VycmVudE1pbnV0ZSxhPXQuY3VycmVudEhvdXIsbj10LmN1cnJlbnREYXRlLHI9dC5jdXJyZW50TW9udGgsbz10LmN1cnJlbnRZZWFyLGw9dC5zZWNvbmRzV2lkdGhPblhBeGlzLGM9dC5udW1iZXJPZlNlY29uZHMsaD1pKzEsZD1zLHU9bixwPXIsZz1vLGY9YSxtPSgxZTMtZSkvMWUzKmwsdj0wO3Y8Yzt2KyspaD49NjAmJihoPTAsKytkPj02MCYmKGQ9MCwyND09KytmJiYoZj0wKSkpLHRoaXMudGltZVNjYWxlQXJyYXkucHVzaCh7cG9zaXRpb246bSx2YWx1ZTpoLHVuaXQ6InNlY29uZCIsaG91cjpmLG1pbnV0ZTpkLHNlY29uZDpoLGRheTp1LHllYXI6dGhpcy5fZ2V0WWVhcihnLHAsMCksbW9udGg6Yi5tb250aE1vZChwKX0pLG0rPWwsaCsrfX0se2tleToiY3JlYXRlUmF3RGF0ZVN0cmluZyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10LnllYXI7cmV0dXJuIDA9PT10Lm1vbnRoJiYodC5tb250aD0xKSxpKz0iLSIrKCIwIit0Lm1vbnRoLnRvU3RyaW5nKCkpLnNsaWNlKC0yKSwiZGF5Ij09PXQudW5pdD9pKz0iZGF5Ij09PXQudW5pdD8iLSIrKCIwIitlKS5zbGljZSgtMik6Ii0wMSI6aSs9Ii0iKygiMCIrKHQuZGF5P3QuZGF5OiIxIikpLnNsaWNlKC0yKSwiaG91ciI9PT10LnVuaXQ/aSs9ImhvdXIiPT09dC51bml0PyJUIisoIjAiK2UpLnNsaWNlKC0yKToiVDAwIjppKz0iVCIrKCIwIisodC5ob3VyP3QuaG91cjoiMCIpKS5zbGljZSgtMiksIm1pbnV0ZSI9PT10LnVuaXQ/aSs9IjoiKygiMCIrZSkuc2xpY2UoLTIpOmkrPSI6IisodC5taW51dGU/KCIwIit0Lm1pbnV0ZSkuc2xpY2UoLTIpOiIwMCIpLCJzZWNvbmQiPT09dC51bml0P2krPSI6IisoIjAiK2UpLnNsaWNlKC0yKTppKz0iOjAwIix0aGlzLnV0YyYmKGkrPSIuMDAwWiIpLGl9fSx7a2V5OiJmb3JtYXREYXRlcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXRoaXMudztyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBzPXQudmFsdWUudG9TdHJpbmcoKSxhPW5ldyBPKGUuY3R4KSxuPWUuY3JlYXRlUmF3RGF0ZVN0cmluZyh0LHMpLHI9YS5nZXREYXRlKGEucGFyc2VEYXRlKG4pKTtpZihlLnV0Y3x8KHI9YS5nZXREYXRlKGEucGFyc2VEYXRlV2l0aFRpbWV6b25lKG4pKSksdm9pZCAwPT09aS5jb25maWcueGF4aXMubGFiZWxzLmZvcm1hdCl7dmFyIG89ImRkIE1NTSIsbD1pLmNvbmZpZy54YXhpcy5sYWJlbHMuZGF0ZXRpbWVGb3JtYXR0ZXI7InllYXIiPT09dC51bml0JiYobz1sLnllYXIpLCJtb250aCI9PT10LnVuaXQmJihvPWwubW9udGgpLCJkYXkiPT09dC51bml0JiYobz1sLmRheSksImhvdXIiPT09dC51bml0JiYobz1sLmhvdXIpLCJtaW51dGUiPT09dC51bml0JiYobz1sLm1pbnV0ZSksInNlY29uZCI9PT10LnVuaXQmJihvPWwuc2Vjb25kKSxzPWEuZm9ybWF0RGF0ZShyLG8pfWVsc2Ugcz1hLmZvcm1hdERhdGUocixpLmNvbmZpZy54YXhpcy5sYWJlbHMuZm9ybWF0KTtyZXR1cm57ZGF0ZVN0cmluZzpuLHBvc2l0aW9uOnQucG9zaXRpb24sdmFsdWU6cyx1bml0OnQudW5pdCx5ZWFyOnQueWVhcixtb250aDp0Lm1vbnRofX0pKX19LHtrZXk6InJlbW92ZU92ZXJsYXBwaW5nVFMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlLGk9dGhpcyxzPW5ldyBrKHRoaXMuY3R4KSxhPSExO3QubGVuZ3RoPjAmJnRbMF0udmFsdWUmJnQuZXZlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbHVlLmxlbmd0aD09PXRbMF0udmFsdWUubGVuZ3RofSkpJiYoYT0hMCxlPXMuZ2V0VGV4dFJlY3RzKHRbMF0udmFsdWUpLndpZHRoKTt2YXIgbj0wLHI9dC5tYXAoKGZ1bmN0aW9uKHIsbyl7aWYobz4wJiZpLncuY29uZmlnLnhheGlzLmxhYmVscy5oaWRlT3ZlcmxhcHBpbmdMYWJlbHMpe3ZhciBsPWE/ZTpzLmdldFRleHRSZWN0cyh0W25dLnZhbHVlKS53aWR0aCxjPXRbbl0ucG9zaXRpb247cmV0dXJuIHIucG9zaXRpb24+YytsKzEwPyhuPW8scik6bnVsbH1yZXR1cm4gcn0pKTtyZXR1cm4gci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT09dH0pKX19LHtrZXk6Il9nZXRZZWFyIix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHQrTWF0aC5mbG9vcihlLzEyKStpfX1dKSx0fSgpLEJ0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLGkpe28odGhpcyx0KSx0aGlzLmN0eD1pLHRoaXMudz1pLncsdGhpcy5lbD1lfXJldHVybiBjKHQsW3trZXk6InNldHVwRWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53Lmdsb2JhbHMsZT10aGlzLncuY29uZmlnLGk9ZS5jaGFydC50eXBlO3QuYXhpc0NoYXJ0cz1bImxpbmUiLCJhcmVhIiwiYmFyIiwicmFuZ2VCYXIiLCJyYW5nZUFyZWEiLCJjYW5kbGVzdGljayIsImJveFBsb3QiLCJzY2F0dGVyIiwiYnViYmxlIiwicmFkYXIiLCJoZWF0bWFwIiwidHJlZW1hcCJdLmluZGV4T2YoaSk+LTEsdC54eUNoYXJ0cz1bImxpbmUiLCJhcmVhIiwiYmFyIiwicmFuZ2VCYXIiLCJyYW5nZUFyZWEiLCJjYW5kbGVzdGljayIsImJveFBsb3QiLCJzY2F0dGVyIiwiYnViYmxlIl0uaW5kZXhPZihpKT4tMSx0LmlzQmFySG9yaXpvbnRhbD0oImJhciI9PT1lLmNoYXJ0LnR5cGV8fCJyYW5nZUJhciI9PT1lLmNoYXJ0LnR5cGV8fCJib3hQbG90Ij09PWUuY2hhcnQudHlwZSkmJmUucGxvdE9wdGlvbnMuYmFyLmhvcml6b250YWwsdC5jaGFydENsYXNzPSIuYXBleGNoYXJ0cyIrdC5jaGFydElELHQuZG9tLmJhc2VFbD10aGlzLmVsLHQuZG9tLmVsV3JhcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxrLnNldEF0dHJzKHQuZG9tLmVsV3JhcCx7aWQ6dC5jaGFydENsYXNzLnN1YnN0cmluZygxKSxjbGFzczoiYXBleGNoYXJ0cy1jYW52YXMgIit0LmNoYXJ0Q2xhc3Muc3Vic3RyaW5nKDEpfSksdGhpcy5lbC5hcHBlbmRDaGlsZCh0LmRvbS5lbFdyYXApLHQuZG9tLlBhcGVyPW5ldyB3aW5kb3cuU1ZHLkRvYyh0LmRvbS5lbFdyYXApLHQuZG9tLlBhcGVyLmF0dHIoe2NsYXNzOiJhcGV4Y2hhcnRzLXN2ZyIsInhtbG5zOmRhdGEiOiJBcGV4Q2hhcnRzTlMiLHRyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KGUuY2hhcnQub2Zmc2V0WCwiLCAiKS5jb25jYXQoZS5jaGFydC5vZmZzZXRZLCIpIil9KSx0LmRvbS5QYXBlci5ub2RlLnN0eWxlLmJhY2tncm91bmQ9ZS5jaGFydC5iYWNrZ3JvdW5kLHRoaXMuc2V0U1ZHRGltZW5zaW9ucygpLHQuZG9tLmVsR3JhcGhpY2FsPXQuZG9tLlBhcGVyLmdyb3VwKCkuYXR0cih7Y2xhc3M6ImFwZXhjaGFydHMtaW5uZXIgYXBleGNoYXJ0cy1ncmFwaGljYWwifSksdC5kb20uZWxBbm5vdGF0aW9ucz10LmRvbS5QYXBlci5ncm91cCgpLmF0dHIoe2NsYXNzOiJhcGV4Y2hhcnRzLWFubm90YXRpb25zIn0pLHQuZG9tLmVsRGVmcz10LmRvbS5QYXBlci5kZWZzKCksdC5kb20uZWxMZWdlbmRXcmFwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuZG9tLmVsTGVnZW5kV3JhcC5jbGFzc0xpc3QuYWRkKCJhcGV4Y2hhcnRzLWxlZ2VuZCIpLHQuZG9tLmVsV3JhcC5hcHBlbmRDaGlsZCh0LmRvbS5lbExlZ2VuZFdyYXApLHQuZG9tLlBhcGVyLmFkZCh0LmRvbS5lbEdyYXBoaWNhbCksdC5kb20uZWxHcmFwaGljYWwuYWRkKHQuZG9tLmVsRGVmcyl9fSx7a2V5OiJwbG90Q2hhcnRUeXBlIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudyxzPWkuY29uZmlnLGE9aS5nbG9iYWxzLG49e3NlcmllczpbXSxpOltdfSxyPXtzZXJpZXM6W10saTpbXX0sbz17c2VyaWVzOltdLGk6W119LGw9e3NlcmllczpbXSxpOltdfSxjPXtzZXJpZXM6W10saTpbXX0saD17c2VyaWVzOltdLGk6W119LGQ9e3NlcmllczpbXSxpOltdfSx1PXtzZXJpZXM6W10saTpbXX0scD17c2VyaWVzOltdLHNlcmllc1JhbmdlRW5kOltdLGk6W119O2Euc2VyaWVzLm1hcCgoZnVuY3Rpb24oZSxnKXt2YXIgZj0wO3ZvaWQgMCE9PXRbZ10udHlwZT8oImNvbHVtbiI9PT10W2ddLnR5cGV8fCJiYXIiPT09dFtnXS50eXBlPyhhLnNlcmllcy5sZW5ndGg+MSYmcy5wbG90T3B0aW9ucy5iYXIuaG9yaXpvbnRhbCYmY29uc29sZS53YXJuKCJIb3Jpem9udGFsIGJhcnMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gYSBtaXhlZC9jb21ibyBjaGFydC4gUGxlYXNlIHR1cm4gb2ZmIGBwbG90T3B0aW9ucy5iYXIuaG9yaXpvbnRhbGAiKSxjLnNlcmllcy5wdXNoKGUpLGMuaS5wdXNoKGcpLGYrKyxpLmdsb2JhbHMuY29sdW1uU2VyaWVzPWMuc2VyaWVzKToiYXJlYSI9PT10W2ddLnR5cGU/KHIuc2VyaWVzLnB1c2goZSksci5pLnB1c2goZyksZisrKToibGluZSI9PT10W2ddLnR5cGU/KG4uc2VyaWVzLnB1c2goZSksbi5pLnB1c2goZyksZisrKToic2NhdHRlciI9PT10W2ddLnR5cGU/KG8uc2VyaWVzLnB1c2goZSksby5pLnB1c2goZykpOiJidWJibGUiPT09dFtnXS50eXBlPyhsLnNlcmllcy5wdXNoKGUpLGwuaS5wdXNoKGcpLGYrKyk6ImNhbmRsZXN0aWNrIj09PXRbZ10udHlwZT8oaC5zZXJpZXMucHVzaChlKSxoLmkucHVzaChnKSxmKyspOiJib3hQbG90Ij09PXRbZ10udHlwZT8oZC5zZXJpZXMucHVzaChlKSxkLmkucHVzaChnKSxmKyspOiJyYW5nZUJhciI9PT10W2ddLnR5cGU/KHUuc2VyaWVzLnB1c2goZSksdS5pLnB1c2goZyksZisrKToicmFuZ2VBcmVhIj09PXRbZ10udHlwZT8ocC5zZXJpZXMucHVzaChhLnNlcmllc1JhbmdlU3RhcnRbZ10pLHAuc2VyaWVzUmFuZ2VFbmQucHVzaChhLnNlcmllc1JhbmdlRW5kW2ddKSxwLmkucHVzaChnKSxmKyspOmNvbnNvbGUud2FybigiWW91IGhhdmUgc3BlY2lmaWVkIGFuIHVucmVjb2duaXplZCBjaGFydCB0eXBlLiBBdmFpbGFibGUgdHlwZXMgZm9yIHRoaXMgcHJvcGVydHkgYXJlIGxpbmUvYXJlYS9jb2x1bW4vYmFyL3NjYXR0ZXIvYnViYmxlIiksZj4xJiYoYS5jb21ib0NoYXJ0cz0hMCkpOihuLnNlcmllcy5wdXNoKGUpLG4uaS5wdXNoKGcpKX0pKTt2YXIgZz1uZXcgRHQodGhpcy5jdHgsZSksZj1uZXcgQXQodGhpcy5jdHgsZSk7dGhpcy5jdHgucGllPW5ldyBQdCh0aGlzLmN0eCk7dmFyIG09bmV3IE90KHRoaXMuY3R4KTt0aGlzLmN0eC5yYW5nZUJhcj1uZXcgSXQodGhpcy5jdHgsZSk7dmFyIHY9bmV3IE10KHRoaXMuY3R4KSx4PVtdO2lmKGEuY29tYm9DaGFydHMpe2lmKHIuc2VyaWVzLmxlbmd0aD4wJiZ4LnB1c2goZy5kcmF3KHIuc2VyaWVzLCJhcmVhIixyLmkpKSxjLnNlcmllcy5sZW5ndGg+MClpZihpLmNvbmZpZy5jaGFydC5zdGFja2VkKXt2YXIgYj1uZXcgQ3QodGhpcy5jdHgsZSk7eC5wdXNoKGIuZHJhdyhjLnNlcmllcyxjLmkpKX1lbHNlIHRoaXMuY3R4LmJhcj1uZXcgU3QodGhpcy5jdHgsZSkseC5wdXNoKHRoaXMuY3R4LmJhci5kcmF3KGMuc2VyaWVzLGMuaSkpO2lmKHAuc2VyaWVzLmxlbmd0aD4wJiZ4LnB1c2goZy5kcmF3KHAuc2VyaWVzLCJyYW5nZUFyZWEiLHAuaSxwLnNlcmllc1JhbmdlRW5kKSksbi5zZXJpZXMubGVuZ3RoPjAmJngucHVzaChnLmRyYXcobi5zZXJpZXMsImxpbmUiLG4uaSkpLGguc2VyaWVzLmxlbmd0aD4wJiZ4LnB1c2goZi5kcmF3KGguc2VyaWVzLGguaSkpLGQuc2VyaWVzLmxlbmd0aD4wJiZ4LnB1c2goZi5kcmF3KGQuc2VyaWVzLGQuaSkpLHUuc2VyaWVzLmxlbmd0aD4wJiZ4LnB1c2godGhpcy5jdHgucmFuZ2VCYXIuZHJhdyh1LnNlcmllcyx1LmkpKSxvLnNlcmllcy5sZW5ndGg+MCl7dmFyIHk9bmV3IER0KHRoaXMuY3R4LGUsITApO3gucHVzaCh5LmRyYXcoby5zZXJpZXMsInNjYXR0ZXIiLG8uaSkpfWlmKGwuc2VyaWVzLmxlbmd0aD4wKXt2YXIgdz1uZXcgRHQodGhpcy5jdHgsZSwhMCk7eC5wdXNoKHcuZHJhdyhsLnNlcmllcywiYnViYmxlIixsLmkpKX19ZWxzZSBzd2l0Y2gocy5jaGFydC50eXBlKXtjYXNlImxpbmUiOng9Zy5kcmF3KGEuc2VyaWVzLCJsaW5lIik7YnJlYWs7Y2FzZSJhcmVhIjp4PWcuZHJhdyhhLnNlcmllcywiYXJlYSIpO2JyZWFrO2Nhc2UiYmFyIjpzLmNoYXJ0LnN0YWNrZWQ/eD1uZXcgQ3QodGhpcy5jdHgsZSkuZHJhdyhhLnNlcmllcyk6KHRoaXMuY3R4LmJhcj1uZXcgU3QodGhpcy5jdHgsZSkseD10aGlzLmN0eC5iYXIuZHJhdyhhLnNlcmllcykpO2JyZWFrO2Nhc2UiY2FuZGxlc3RpY2siOmNhc2UiYm94UGxvdCI6eD1uZXcgQXQodGhpcy5jdHgsZSkuZHJhdyhhLnNlcmllcyk7YnJlYWs7Y2FzZSJyYW5nZUJhciI6eD10aGlzLmN0eC5yYW5nZUJhci5kcmF3KGEuc2VyaWVzKTticmVhaztjYXNlInJhbmdlQXJlYSI6eD1nLmRyYXcoYS5zZXJpZXNSYW5nZVN0YXJ0LCJyYW5nZUFyZWEiLHZvaWQgMCxhLnNlcmllc1JhbmdlRW5kKTticmVhaztjYXNlImhlYXRtYXAiOng9bmV3IFR0KHRoaXMuY3R4LGUpLmRyYXcoYS5zZXJpZXMpO2JyZWFrO2Nhc2UidHJlZW1hcCI6eD1uZXcgUnQodGhpcy5jdHgsZSkuZHJhdyhhLnNlcmllcyk7YnJlYWs7Y2FzZSJwaWUiOmNhc2UiZG9udXQiOmNhc2UicG9sYXJBcmVhIjp4PXRoaXMuY3R4LnBpZS5kcmF3KGEuc2VyaWVzKTticmVhaztjYXNlInJhZGlhbEJhciI6eD1tLmRyYXcoYS5zZXJpZXMpO2JyZWFrO2Nhc2UicmFkYXIiOng9di5kcmF3KGEuc2VyaWVzKTticmVhaztkZWZhdWx0Ong9Zy5kcmF3KGEuc2VyaWVzKX1yZXR1cm4geH19LHtrZXk6InNldFNWR0RpbWVuc2lvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53Lmdsb2JhbHMsZT10aGlzLncuY29uZmlnO3Quc3ZnV2lkdGg9ZS5jaGFydC53aWR0aCx0LnN2Z0hlaWdodD1lLmNoYXJ0LmhlaWdodDt2YXIgaT1iLmdldERpbWVuc2lvbnModGhpcy5lbCkscz1lLmNoYXJ0LndpZHRoLnRvU3RyaW5nKCkuc3BsaXQoL1swLTldKy9nKS5wb3AoKTsiJSI9PT1zP2IuaXNOdW1iZXIoaVswXSkmJigwPT09aVswXS53aWR0aCYmKGk9Yi5nZXREaW1lbnNpb25zKHRoaXMuZWwucGFyZW50Tm9kZSkpLHQuc3ZnV2lkdGg9aVswXSpwYXJzZUludChlLmNoYXJ0LndpZHRoLDEwKS8xMDApOiJweCIhPT1zJiYiIiE9PXN8fCh0LnN2Z1dpZHRoPXBhcnNlSW50KGUuY2hhcnQud2lkdGgsMTApKTt2YXIgYT1lLmNoYXJ0LmhlaWdodC50b1N0cmluZygpLnNwbGl0KC9bMC05XSsvZykucG9wKCk7aWYoImF1dG8iIT09dC5zdmdIZWlnaHQmJiIiIT09dC5zdmdIZWlnaHQpaWYoIiUiPT09YSl7dmFyIG49Yi5nZXREaW1lbnNpb25zKHRoaXMuZWwucGFyZW50Tm9kZSk7dC5zdmdIZWlnaHQ9blsxXSpwYXJzZUludChlLmNoYXJ0LmhlaWdodCwxMCkvMTAwfWVsc2UgdC5zdmdIZWlnaHQ9cGFyc2VJbnQoZS5jaGFydC5oZWlnaHQsMTApO2Vsc2UgdC5heGlzQ2hhcnRzP3Quc3ZnSGVpZ2h0PXQuc3ZnV2lkdGgvMS42MTp0LnN2Z0hlaWdodD10LnN2Z1dpZHRoLzEuMjtpZih0LnN2Z1dpZHRoPDAmJih0LnN2Z1dpZHRoPTApLHQuc3ZnSGVpZ2h0PDAmJih0LnN2Z0hlaWdodD0wKSxrLnNldEF0dHJzKHQuZG9tLlBhcGVyLm5vZGUse3dpZHRoOnQuc3ZnV2lkdGgsaGVpZ2h0OnQuc3ZnSGVpZ2h0fSksIiUiIT09YSl7dmFyIHI9ZS5jaGFydC5zcGFya2xpbmUuZW5hYmxlZD8wOnQuYXhpc0NoYXJ0cz9lLmNoYXJ0LnBhcmVudEhlaWdodE9mZnNldDowO3QuZG9tLlBhcGVyLm5vZGUucGFyZW50Tm9kZS5wYXJlbnROb2RlLnN0eWxlLm1pbkhlaWdodD10LnN2Z0hlaWdodCtyKyJweCJ9dC5kb20uZWxXcmFwLnN0eWxlLndpZHRoPXQuc3ZnV2lkdGgrInB4Iix0LmRvbS5lbFdyYXAuc3R5bGUuaGVpZ2h0PXQuc3ZnSGVpZ2h0KyJweCJ9fSx7a2V5OiJzaGlmdEdyYXBoUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53Lmdsb2JhbHMsZT10LnRyYW5zbGF0ZVksaT17dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIit0LnRyYW5zbGF0ZVgrIiwgIitlKyIpIn07ay5zZXRBdHRycyh0LmRvbS5lbEdyYXBoaWNhbC5ub2RlLGkpfX0se2tleToicmVzaXplTm9uQXhpc0NoYXJ0cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLncsZT10Lmdsb2JhbHMsaT0wLHM9dC5jb25maWcuY2hhcnQuc3BhcmtsaW5lLmVuYWJsZWQ/MToxNTtzKz10LmNvbmZpZy5ncmlkLnBhZGRpbmcuYm90dG9tLCJ0b3AiIT09dC5jb25maWcubGVnZW5kLnBvc2l0aW9uJiYiYm90dG9tIiE9PXQuY29uZmlnLmxlZ2VuZC5wb3NpdGlvbnx8IXQuY29uZmlnLmxlZ2VuZC5zaG93fHx0LmNvbmZpZy5sZWdlbmQuZmxvYXRpbmd8fChpPW5ldyBkdCh0aGlzLmN0eCkubGVnZW5kSGVscGVycy5nZXRMZWdlbmRCQm94KCkuY2x3aCsxMCk7dmFyIGE9dC5nbG9iYWxzLmRvbS5iYXNlRWwucXVlcnlTZWxlY3RvcigiLmFwZXhjaGFydHMtcmFkaWFsYmFyLCAuYXBleGNoYXJ0cy1waWUiKSxuPTIuMDUqdC5nbG9iYWxzLnJhZGlhbFNpemU7aWYoYSYmIXQuY29uZmlnLmNoYXJ0LnNwYXJrbGluZS5lbmFibGVkJiYwIT09dC5jb25maWcucGxvdE9wdGlvbnMucmFkaWFsQmFyLnN0YXJ0QW5nbGUpe3ZhciByPWIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGEpO249ci5ib3R0b207dmFyIG89ci5ib3R0b20tci50b3A7bj1NYXRoLm1heCgyLjA1KnQuZ2xvYmFscy5yYWRpYWxTaXplLG8pfXZhciBsPW4rZS50cmFuc2xhdGVZK2krcztlLmRvbS5lbExlZ2VuZEZvcmVpZ24mJmUuZG9tLmVsTGVnZW5kRm9yZWlnbi5zZXRBdHRyaWJ1dGUoImhlaWdodCIsbCksdC5jb25maWcuY2hhcnQuaGVpZ2h0JiZTdHJpbmcodC5jb25maWcuY2hhcnQuaGVpZ2h0KS5pbmRleE9mKCIlIik+MHx8KGUuZG9tLmVsV3JhcC5zdHlsZS5oZWlnaHQ9bCsicHgiLGsuc2V0QXR0cnMoZS5kb20uUGFwZXIubm9kZSx7aGVpZ2h0Omx9KSxlLmRvbS5QYXBlci5ub2RlLnBhcmVudE5vZGUucGFyZW50Tm9kZS5zdHlsZS5taW5IZWlnaHQ9bCsicHgiKX19LHtrZXk6ImNvcmVDYWxjdWxhdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7bmV3IFoodGhpcy5jdHgpLmluaXQoKX19LHtrZXk6InJlc2V0R2xvYmFscyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9ZnVuY3Rpb24oKXtyZXR1cm4gdC53LmNvbmZpZy5zZXJpZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm5bXX0pKX0saT1uZXcgTixzPXRoaXMudy5nbG9iYWxzO2kuaW5pdEdsb2JhbFZhcnMocykscy5zZXJpZXNYdmFsdWVzPWUoKSxzLnNlcmllc1l2YWx1ZXM9ZSgpfX0se2tleToiaXNNdWx0aXBsZVkiLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy53LmNvbmZpZy55YXhpcy5jb25zdHJ1Y3Rvcj09PUFycmF5JiZ0aGlzLncuY29uZmlnLnlheGlzLmxlbmd0aD4xKXJldHVybiB0aGlzLncuZ2xvYmFscy5pc011bHRpcGxlWUF4aXM9ITAsITB9fSx7a2V5OiJ4eVNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PW51bGwsZT10aGlzLnc7aWYoZS5nbG9iYWxzLmF4aXNDaGFydHMpe2lmKCJiYWNrIj09PWUuY29uZmlnLnhheGlzLmNyb3NzaGFpcnMucG9zaXRpb24mJm5ldyBldCh0aGlzLmN0eCkuZHJhd1hDcm9zc2hhaXJzKCksImJhY2siPT09ZS5jb25maWcueWF4aXNbMF0uY3Jvc3NoYWlycy5wb3NpdGlvbiYmbmV3IGV0KHRoaXMuY3R4KS5kcmF3WUNyb3NzaGFpcnMoKSwiZGF0ZXRpbWUiPT09ZS5jb25maWcueGF4aXMudHlwZSYmdm9pZCAwPT09ZS5jb25maWcueGF4aXMubGFiZWxzLmZvcm1hdHRlcil7dGhpcy5jdHgudGltZVNjYWxlPW5ldyBfdCh0aGlzLmN0eCk7dmFyIGk9W107aXNGaW5pdGUoZS5nbG9iYWxzLm1pblgpJiZpc0Zpbml0ZShlLmdsb2JhbHMubWF4WCkmJiFlLmdsb2JhbHMuaXNCYXJIb3Jpem9udGFsP2k9dGhpcy5jdHgudGltZVNjYWxlLmNhbGN1bGF0ZVRpbWVTY2FsZVRpY2tzKGUuZ2xvYmFscy5taW5YLGUuZ2xvYmFscy5tYXhYKTplLmdsb2JhbHMuaXNCYXJIb3Jpem9udGFsJiYoaT10aGlzLmN0eC50aW1lU2NhbGUuY2FsY3VsYXRlVGltZVNjYWxlVGlja3MoZS5nbG9iYWxzLm1pblksZS5nbG9iYWxzLm1heFkpKSx0aGlzLmN0eC50aW1lU2NhbGUucmVjYWxjRGltZW5zaW9uc0Jhc2VkT25Gb3JtYXQoaSl9dD1uZXcgUyh0aGlzLmN0eCkuZ2V0Q2FsY3VsYXRlZFJhdGlvcygpfXJldHVybiB0fX0se2tleToidXBkYXRlU291cmNlQ2hhcnQiLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuY3R4LncuZ2xvYmFscy5zZWxlY3Rpb249dm9pZCAwLHRoaXMuY3R4LnVwZGF0ZUhlbHBlcnMuX3VwZGF0ZU9wdGlvbnMoe2NoYXJ0OntzZWxlY3Rpb246e3hheGlzOnttaW46dC53Lmdsb2JhbHMubWluWCxtYXg6dC53Lmdsb2JhbHMubWF4WH19fX0sITEsITEpfX0se2tleToic2V0dXBCcnVzaEhhbmRsZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMudztpZihlLmNvbmZpZy5jaGFydC5icnVzaC5lbmFibGVkJiYiZnVuY3Rpb24iIT10eXBlb2YgZS5jb25maWcuY2hhcnQuZXZlbnRzLnNlbGVjdGlvbil7dmFyIGk9ZS5jb25maWcuY2hhcnQuYnJ1c2gudGFyZ2V0c3x8W2UuY29uZmlnLmNoYXJ0LmJydXNoLnRhcmdldF07aS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgaT1BcGV4Q2hhcnRzLmdldENoYXJ0QnlJRChlKTtpLncuZ2xvYmFscy5icnVzaFNvdXJjZT10LmN0eCwiZnVuY3Rpb24iIT10eXBlb2YgaS53LmNvbmZpZy5jaGFydC5ldmVudHMuem9vbWVkJiYoaS53LmNvbmZpZy5jaGFydC5ldmVudHMuem9vbWVkPWZ1bmN0aW9uKCl7dC51cGRhdGVTb3VyY2VDaGFydChpKX0pLCJmdW5jdGlvbiIhPXR5cGVvZiBpLncuY29uZmlnLmNoYXJ0LmV2ZW50cy5zY3JvbGxlZCYmKGkudy5jb25maWcuY2hhcnQuZXZlbnRzLnNjcm9sbGVkPWZ1bmN0aW9uKCl7dC51cGRhdGVTb3VyY2VDaGFydChpKX0pfSkpLGUuY29uZmlnLmNoYXJ0LmV2ZW50cy5zZWxlY3Rpb249ZnVuY3Rpb24odCxzKXtpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBpPUFwZXhDaGFydHMuZ2V0Q2hhcnRCeUlEKHQpLGE9Yi5jbG9uZShlLmNvbmZpZy55YXhpcyk7aWYoZS5jb25maWcuY2hhcnQuYnJ1c2guYXV0b1NjYWxlWWF4aXMmJjE9PT1pLncuZ2xvYmFscy5zZXJpZXMubGVuZ3RoKXt2YXIgcj1uZXcgcShpKTthPXIuYXV0b1NjYWxlWShpLGEscyl9dmFyIG89aS53LmNvbmZpZy55YXhpcy5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSxzKXtyZXR1cm5bXS5jb25jYXQobSh0KSxbbihuKHt9LGkudy5jb25maWcueWF4aXNbc10pLHt9LHttaW46YVswXS5taW4sbWF4OmFbMF0ubWF4fSldKX0pLFtdKTtpLmN0eC51cGRhdGVIZWxwZXJzLl91cGRhdGVPcHRpb25zKHt4YXhpczp7bWluOnMueGF4aXMubWluLG1heDpzLnhheGlzLm1heH0seWF4aXM6b30sITEsITEsITEsITEpfSkpfX19fV0pLHR9KCksWHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe28odGhpcyx0KSx0aGlzLmN0eD1lLHRoaXMudz1lLnd9cmV0dXJuIGModCxbe2tleToiX3VwZGF0ZU9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLHM9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxhPSEoYXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10pfHxhcmd1bWVudHNbM10sbj1hcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XSYmYXJndW1lbnRzWzRdO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obyl7dmFyIGw9W2UuY3R4XTthJiYobD1lLmN0eC5nZXRTeW5jZWRDaGFydHMoKSksZS5jdHgudy5nbG9iYWxzLmlzRXhlY0NhbGxlZCYmKGw9W2UuY3R4XSxlLmN0eC53Lmdsb2JhbHMuaXNFeGVjQ2FsbGVkPSExKSxsLmZvckVhY2goKGZ1bmN0aW9uKGEsYyl7dmFyIGg9YS53O2lmKGguZ2xvYmFscy5zaG91bGRBbmltYXRlPXMsaXx8KGguZ2xvYmFscy5yZXNpemVkPSEwLGguZ2xvYmFscy5kYXRhQ2hhbmdlZD0hMCxzJiZhLnNlcmllcy5nZXRQcmV2aW91c1BhdGhzKCkpLHQmJiJvYmplY3QiPT09cih0KSYmKGEuY29uZmlnPW5ldyB6KHQpLHQ9Uy5leHRlbmRBcnJheVByb3BzKGEuY29uZmlnLHQsaCksYS53Lmdsb2JhbHMuY2hhcnRJRCE9PWUuY3R4LncuZ2xvYmFscy5jaGFydElEJiZkZWxldGUgdC5zZXJpZXMsaC5jb25maWc9Yi5leHRlbmQoaC5jb25maWcsdCksbiYmKGguZ2xvYmFscy5sYXN0WEF4aXM9dC54YXhpcz9iLmNsb25lKHQueGF4aXMpOltdLGguZ2xvYmFscy5sYXN0WUF4aXM9dC55YXhpcz9iLmNsb25lKHQueWF4aXMpOltdLGguZ2xvYmFscy5pbml0aWFsQ29uZmlnPWIuZXh0ZW5kKHt9LGguY29uZmlnKSxoLmdsb2JhbHMuaW5pdGlhbFNlcmllcz1iLmNsb25lKGguY29uZmlnLnNlcmllcyksdC5zZXJpZXMpKSl7Zm9yKHZhciBkPTA7ZDxoLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzSW5kaWNlcy5sZW5ndGg7ZCsrKXt2YXIgdT1oLmNvbmZpZy5zZXJpZXNbaC5nbG9iYWxzLmNvbGxhcHNlZFNlcmllc0luZGljZXNbZF1dO2guZ2xvYmFscy5jb2xsYXBzZWRTZXJpZXNbZF0uZGF0YT1oLmdsb2JhbHMuYXhpc0NoYXJ0cz91LmRhdGEuc2xpY2UoKTp1fWZvcih2YXIgcD0wO3A8aC5nbG9iYWxzLmFuY2lsbGFyeUNvbGxhcHNlZFNlcmllc0luZGljZXMubGVuZ3RoO3ArKyl7dmFyIGc9aC5jb25maWcuc2VyaWVzW2guZ2xvYmFscy5hbmNpbGxhcnlDb2xsYXBzZWRTZXJpZXNJbmRpY2VzW3BdXTtoLmdsb2JhbHMuYW5jaWxsYXJ5Q29sbGFwc2VkU2VyaWVzW3BdLmRhdGE9aC5nbG9iYWxzLmF4aXNDaGFydHM/Zy5kYXRhLnNsaWNlKCk6Z31hLnNlcmllcy5lbXB0eUNvbGxhcHNlZFNlcmllcyhoLmNvbmZpZy5zZXJpZXMpfXJldHVybiBhLnVwZGF0ZSh0KS50aGVuKChmdW5jdGlvbigpe2M9PT1sLmxlbmd0aC0xJiZvKGEpfSkpfSkpfSkpfX0se2tleToiX3VwZGF0ZVNlcmllcyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLHM9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXTtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGEpe3ZhciBuLHI9aS53O3JldHVybiByLmdsb2JhbHMuc2hvdWxkQW5pbWF0ZT1lLHIuZ2xvYmFscy5kYXRhQ2hhbmdlZD0hMCxlJiZpLmN0eC5zZXJpZXMuZ2V0UHJldmlvdXNQYXRocygpLHIuZ2xvYmFscy5heGlzQ2hhcnRzPygwPT09KG49dC5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkuX2V4dGVuZFNlcmllcyh0LGUpfSkpKS5sZW5ndGgmJihuPVt7ZGF0YTpbXX1dKSxyLmNvbmZpZy5zZXJpZXM9bik6ci5jb25maWcuc2VyaWVzPXQuc2xpY2UoKSxzJiYoci5nbG9iYWxzLmluaXRpYWxDb25maWcuc2VyaWVzPWIuY2xvbmUoci5jb25maWcuc2VyaWVzKSxyLmdsb2JhbHMuaW5pdGlhbFNlcmllcz1iLmNsb25lKHIuY29uZmlnLnNlcmllcykpLGkuY3R4LnVwZGF0ZSgpLnRoZW4oKGZ1bmN0aW9uKCl7YShpLmN0eCl9KSl9KSl9fSx7a2V5OiJfZXh0ZW5kU2VyaWVzIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudyxzPWkuY29uZmlnLnNlcmllc1tlXTtyZXR1cm4gbihuKHt9LGkuY29uZmlnLnNlcmllc1tlXSkse30se25hbWU6dC5uYW1lP3QubmFtZTpzJiZzLm5hbWUsY29sb3I6dC5jb2xvcj90LmNvbG9yOnMmJnMuY29sb3IsdHlwZTp0LnR5cGU/dC50eXBlOnMmJnMudHlwZSxkYXRhOnQuZGF0YT90LmRhdGE6cyYmcy5kYXRhfSl9fSx7a2V5OiJ0b2dnbGVEYXRhUG9pbnRTZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy53LHM9bnVsbCxhPSIuYXBleGNoYXJ0cy1zZXJpZXNbZGF0YVxcOnJlYWxJbmRleD0nIi5jb25jYXQodCwiJ10iKTtyZXR1cm4gaS5nbG9iYWxzLmF4aXNDaGFydHM/cz1pLmdsb2JhbHMuZG9tLlBhcGVyLnNlbGVjdCgiIi5jb25jYXQoYSwiIHBhdGhbaj0nIikuY29uY2F0KGUsIiddLCAiKS5jb25jYXQoYSwiIGNpcmNsZVtqPSciKS5jb25jYXQoZSwiJ10sICIpLmNvbmNhdChhLCIgcmVjdFtqPSciKS5jb25jYXQoZSwiJ10iKSkubWVtYmVyc1swXTp2b2lkIDA9PT1lJiYocz1pLmdsb2JhbHMuZG9tLlBhcGVyLnNlbGVjdCgiIi5jb25jYXQoYSwiIHBhdGhbaj0nIikuY29uY2F0KHQsIiddIikpLm1lbWJlcnNbMF0sInBpZSIhPT1pLmNvbmZpZy5jaGFydC50eXBlJiYicG9sYXJBcmVhIiE9PWkuY29uZmlnLmNoYXJ0LnR5cGUmJiJkb251dCIhPT1pLmNvbmZpZy5jaGFydC50eXBlfHx0aGlzLmN0eC5waWUucGllQ2xpY2tlZCh0KSkscz8obmV3IGsodGhpcy5jdHgpLnBhdGhNb3VzZURvd24ocyxudWxsKSxzLm5vZGU/cy5ub2RlOm51bGwpOihjb25zb2xlLndhcm4oInRvZ2dsZURhdGFQb2ludFNlbGVjdGlvbjogRWxlbWVudCBub3QgZm91bmQiKSxudWxsKX19LHtrZXk6ImZvcmNlWEF4aXNVcGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudztpZihbIm1pbiIsIm1heCJdLmZvckVhY2goKGZ1bmN0aW9uKGkpe3ZvaWQgMCE9PXQueGF4aXNbaV0mJihlLmNvbmZpZy54YXhpc1tpXT10LnhheGlzW2ldLGUuZ2xvYmFscy5sYXN0WEF4aXNbaV09dC54YXhpc1tpXSl9KSksdC54YXhpcy5jYXRlZ29yaWVzJiZ0LnhheGlzLmNhdGVnb3JpZXMubGVuZ3RoJiYoZS5jb25maWcueGF4aXMuY2F0ZWdvcmllcz10LnhheGlzLmNhdGVnb3JpZXMpLGUuY29uZmlnLnhheGlzLmNvbnZlcnRlZENhdFRvTnVtZXJpYyl7dmFyIGk9bmV3IEQodCk7dD1pLmNvbnZlcnRDYXRUb051bWVyaWNYYXhpcyh0LHRoaXMuY3R4KX1yZXR1cm4gdH19LHtrZXk6ImZvcmNlWUF4aXNVcGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0LmNoYXJ0JiZ0LmNoYXJ0LnN0YWNrZWQmJiIxMDAlIj09PXQuY2hhcnQuc3RhY2tUeXBlJiYoQXJyYXkuaXNBcnJheSh0LnlheGlzKT90LnlheGlzLmZvckVhY2goKGZ1bmN0aW9uKGUsaSl7dC55YXhpc1tpXS5taW49MCx0LnlheGlzW2ldLm1heD0xMDB9KSk6KHQueWF4aXMubWluPTAsdC55YXhpcy5tYXg9MTAwKSksdH19LHtrZXk6InJldmVydERlZmF1bHRBeGlzTWluTWF4Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dGhpcy53LHM9aS5nbG9iYWxzLmxhc3RYQXhpcyxhPWkuZ2xvYmFscy5sYXN0WUF4aXM7dCYmdC54YXhpcyYmKHM9dC54YXhpcyksdCYmdC55YXhpcyYmKGE9dC55YXhpcyksaS5jb25maWcueGF4aXMubWluPXMubWluLGkuY29uZmlnLnhheGlzLm1heD1zLm1heCxpLmNvbmZpZy55YXhpcy5tYXAoKGZ1bmN0aW9uKHQscyl7aS5nbG9iYWxzLnpvb21lZHx8dm9pZCAwIT09YVtzXT9mdW5jdGlvbih0KXt2b2lkIDAhPT1hW3RdJiYoaS5jb25maWcueWF4aXNbdF0ubWluPWFbdF0ubWluLGkuY29uZmlnLnlheGlzW3RdLm1heD1hW3RdLm1heCl9KHMpOnZvaWQgMCE9PWUuY3R4Lm9wdHMueWF4aXNbc10mJih0Lm1pbj1lLmN0eC5vcHRzLnlheGlzW3NdLm1pbix0Lm1heD1lLmN0eC5vcHRzLnlheGlzW3NdLm1heCl9KSl9fV0pLHR9KCk7enQ9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OnZvaWQgMCxOdD1mdW5jdGlvbih0LGUpe3ZhciBpPSh2b2lkIDAhPT10aGlzP3RoaXM6dCkuU1ZHPWZ1bmN0aW9uKHQpe2lmKGkuc3VwcG9ydGVkKXJldHVybiB0PW5ldyBpLkRvYyh0KSxpLnBhcnNlci5kcmF3fHxpLnByZXBhcmUoKSx0fTtpZihpLm5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsaS54bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8iLGkueGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLGkuc3ZnanM9Imh0dHA6Ly9zdmdqcy5kZXYiLGkuc3VwcG9ydGVkPSEwLCFpLnN1cHBvcnRlZClyZXR1cm4hMTtpLmRpZD0xZTMsaS5laWQ9ZnVuY3Rpb24odCl7cmV0dXJuIlN2Z2pzIitkKHQpK2kuZGlkKyt9LGkuY3JlYXRlPWZ1bmN0aW9uKHQpe3ZhciBpPWUuY3JlYXRlRWxlbWVudE5TKHRoaXMubnMsdCk7cmV0dXJuIGkuc2V0QXR0cmlidXRlKCJpZCIsdGhpcy5laWQodCkpLGl9LGkuZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIHQsZTtlPSh0PVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSkucG9wKCk7Zm9yKHZhciBzPXQubGVuZ3RoLTE7cz49MDtzLS0paWYodFtzXSlmb3IodmFyIGEgaW4gZSl0W3NdLnByb3RvdHlwZVthXT1lW2FdO2kuU2V0JiZpLlNldC5pbmhlcml0JiZpLlNldC5pbmhlcml0KCl9LGkuaW52ZW50PWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0LmNyZWF0ZT90LmNyZWF0ZTpmdW5jdGlvbigpe3RoaXMuY29uc3RydWN0b3IuY2FsbCh0aGlzLGkuY3JlYXRlKHQuY3JlYXRlKSl9O3JldHVybiB0LmluaGVyaXQmJihlLnByb3RvdHlwZT1uZXcgdC5pbmhlcml0KSx0LmV4dGVuZCYmaS5leHRlbmQoZSx0LmV4dGVuZCksdC5jb25zdHJ1Y3QmJmkuZXh0ZW5kKHQucGFyZW50fHxpLkNvbnRhaW5lcix0LmNvbnN0cnVjdCksZX0saS5hZG9wdD1mdW5jdGlvbihlKXtyZXR1cm4gZT9lLmluc3RhbmNlP2UuaW5zdGFuY2U6KChzPSJzdmciPT1lLm5vZGVOYW1lP2UucGFyZW50Tm9kZSBpbnN0YW5jZW9mIHQuU1ZHRWxlbWVudD9uZXcgaS5OZXN0ZWQ6bmV3IGkuRG9jOiJsaW5lYXJHcmFkaWVudCI9PWUubm9kZU5hbWU/bmV3IGkuR3JhZGllbnQoImxpbmVhciIpOiJyYWRpYWxHcmFkaWVudCI9PWUubm9kZU5hbWU/bmV3IGkuR3JhZGllbnQoInJhZGlhbCIpOmlbZChlLm5vZGVOYW1lKV0/bmV3KGlbZChlLm5vZGVOYW1lKV0pOm5ldyBpLkVsZW1lbnQoZSkpLnR5cGU9ZS5ub2RlTmFtZSxzLm5vZGU9ZSxlLmluc3RhbmNlPXMscyBpbnN0YW5jZW9mIGkuRG9jJiZzLm5hbWVzcGFjZSgpLmRlZnMoKSxzLnNldERhdGEoSlNPTi5wYXJzZShlLmdldEF0dHJpYnV0ZSgic3ZnanM6ZGF0YSIpKXx8e30pLHMpOm51bGw7dmFyIHN9LGkucHJlcGFyZT1mdW5jdGlvbigpe3ZhciB0PWUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxzPSh0P25ldyBpLkRvYyh0KTppLmFkb3B0KGUuZG9jdW1lbnRFbGVtZW50KS5uZXN0ZWQoKSkuc2l6ZSgyLDApO2kucGFyc2VyPXtib2R5OnR8fGUuZG9jdW1lbnRFbGVtZW50LGRyYXc6cy5zdHlsZSgib3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTEwMCU7dG9wOi0xMDAlO292ZXJmbG93OmhpZGRlbiIpLm5vZGUscG9seTpzLnBvbHlsaW5lKCkubm9kZSxwYXRoOnMucGF0aCgpLm5vZGUsbmF0aXZlOmkuY3JlYXRlKCJzdmciKX19LGkucGFyc2VyPXtuYXRpdmU6aS5jcmVhdGUoInN2ZyIpfSxlLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLChmdW5jdGlvbigpe2kucGFyc2VyLmRyYXd8fGkucHJlcGFyZSgpfSksITEpLGkucmVnZXg9e251bWJlckFuZFVuaXQ6L14oWystXT8oXGQrKFwuXGQqKT98XC5cZCspKGVbKy1dP1xkKyk/KShbYS16JV0qKSQvaSxoZXg6L14jPyhbYS1mXGRdezJ9KShbYS1mXGRdezJ9KShbYS1mXGRdezJ9KSQvaSxyZ2I6L3JnYlwoKFxkKyksKFxkKyksKFxkKylcKS8scmVmZXJlbmNlOi8jKFthLXowLTlcLV9dKykvaSx0cmFuc2Zvcm1zOi9cKVxzKiw/XHMqLyx3aGl0ZXNwYWNlOi9ccy9nLGlzSGV4Oi9eI1thLWYwLTldezMsNn0kL2ksaXNSZ2I6L15yZ2JcKC8saXNDc3M6L1teOl0rOlteO10rOz8vLGlzQmxhbms6L14oXHMrKT8kLyxpc051bWJlcjovXlsrLV0/KFxkKyhcLlxkKik/fFwuXGQrKShlWystXT9cZCspPyQvaSxpc1BlcmNlbnQ6L14tP1tcZFwuXSslJC8saXNJbWFnZTovXC4oanBnfGpwZWd8cG5nfGdpZnxzdmcpKFw/W149XSsuKik/L2ksZGVsaW1pdGVyOi9bXHMsXSsvLGh5cGhlbjovKFteZV0pXC0vZ2kscGF0aExldHRlcnM6L1tNTEhWQ1NRVEFaXS9naSxpc1BhdGhMZXR0ZXI6L1tNTEhWQ1NRVEFaXS9pLG51bWJlcnNXaXRoRG90czovKChcZD9cLlxkKyg/OmVbKy1dP1xkKyk/KSgoPzpcLlxkKyg/OmVbKy1dP1xkKyk/KSspKSsvZ2ksZG90czovXC4vZ30saS51dGlscz17bWFwOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBpPXQubGVuZ3RoLHM9W10sYT0wO2E8aTthKyspcy5wdXNoKGUodFthXSkpO3JldHVybiBzfSxmaWx0ZXI6ZnVuY3Rpb24odCxlKXtmb3IodmFyIGk9dC5sZW5ndGgscz1bXSxhPTA7YTxpO2ErKyllKHRbYV0pJiZzLnB1c2godFthXSk7cmV0dXJuIHN9LGZpbHRlclNWR0VsZW1lbnRzOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmZpbHRlcihlLChmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHQuU1ZHRWxlbWVudH0pKX19LGkuZGVmYXVsdHM9e2F0dHJzOnsiZmlsbC1vcGFjaXR5IjoxLCJzdHJva2Utb3BhY2l0eSI6MSwic3Ryb2tlLXdpZHRoIjowLCJzdHJva2UtbGluZWpvaW4iOiJtaXRlciIsInN0cm9rZS1saW5lY2FwIjoiYnV0dCIsZmlsbDoiIzAwMDAwMCIsc3Ryb2tlOiIjMDAwMDAwIixvcGFjaXR5OjEseDowLHk6MCxjeDowLGN5OjAsd2lkdGg6MCxoZWlnaHQ6MCxyOjAscng6MCxyeTowLG9mZnNldDowLCJzdG9wLW9wYWNpdHkiOjEsInN0b3AtY29sb3IiOiIjMDAwMDAwIiwiZm9udC1zaXplIjoxNiwiZm9udC1mYW1pbHkiOiJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmIiwidGV4dC1hbmNob3IiOiJzdGFydCJ9fSxpLkNvbG9yPWZ1bmN0aW9uKHQpe3ZhciBlLHM7dGhpcy5yPTAsdGhpcy5nPTAsdGhpcy5iPTAsdCYmKCJzdHJpbmciPT10eXBlb2YgdD9pLnJlZ2V4LmlzUmdiLnRlc3QodCk/KGU9aS5yZWdleC5yZ2IuZXhlYyh0LnJlcGxhY2UoaS5yZWdleC53aGl0ZXNwYWNlLCIiKSksdGhpcy5yPXBhcnNlSW50KGVbMV0pLHRoaXMuZz1wYXJzZUludChlWzJdKSx0aGlzLmI9cGFyc2VJbnQoZVszXSkpOmkucmVnZXguaXNIZXgudGVzdCh0KSYmKGU9aS5yZWdleC5oZXguZXhlYyg0PT0ocz10KS5sZW5ndGg/WyIjIixzLnN1YnN0cmluZygxLDIpLHMuc3Vic3RyaW5nKDEsMikscy5zdWJzdHJpbmcoMiwzKSxzLnN1YnN0cmluZygyLDMpLHMuc3Vic3RyaW5nKDMsNCkscy5zdWJzdHJpbmcoMyw0KV0uam9pbigiIik6cyksdGhpcy5yPXBhcnNlSW50KGVbMV0sMTYpLHRoaXMuZz1wYXJzZUludChlWzJdLDE2KSx0aGlzLmI9cGFyc2VJbnQoZVszXSwxNikpOiJvYmplY3QiPT09cih0KSYmKHRoaXMucj10LnIsdGhpcy5nPXQuZyx0aGlzLmI9dC5iKSl9LGkuZXh0ZW5kKGkuQ29sb3Ise3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9IZXgoKX0sdG9IZXg6ZnVuY3Rpb24oKXtyZXR1cm4iIyIrdSh0aGlzLnIpK3UodGhpcy5nKSt1KHRoaXMuYil9LHRvUmdiOmZ1bmN0aW9uKCl7cmV0dXJuInJnYigiK1t0aGlzLnIsdGhpcy5nLHRoaXMuYl0uam9pbigpKyIpIn0sYnJpZ2h0bmVzczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnIvMjU1Ki4zK3RoaXMuZy8yNTUqLjU5K3RoaXMuYi8yNTUqLjExfSxtb3JwaDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kZXN0aW5hdGlvbj1uZXcgaS5Db2xvcih0KSx0aGlzfSxhdDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kZXN0aW5hdGlvbj8odD10PDA/MDp0PjE/MTp0LG5ldyBpLkNvbG9yKHtyOn5+KHRoaXMucisodGhpcy5kZXN0aW5hdGlvbi5yLXRoaXMucikqdCksZzp+fih0aGlzLmcrKHRoaXMuZGVzdGluYXRpb24uZy10aGlzLmcpKnQpLGI6fn4odGhpcy5iKyh0aGlzLmRlc3RpbmF0aW9uLmItdGhpcy5iKSp0KX0pKTp0aGlzfX0pLGkuQ29sb3IudGVzdD1mdW5jdGlvbih0KXtyZXR1cm4gdCs9IiIsaS5yZWdleC5pc0hleC50ZXN0KHQpfHxpLnJlZ2V4LmlzUmdiLnRlc3QodCl9LGkuQ29sb3IuaXNSZ2I9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJudW1iZXIiPT10eXBlb2YgdC5yJiYibnVtYmVyIj09dHlwZW9mIHQuZyYmIm51bWJlciI9PXR5cGVvZiB0LmJ9LGkuQ29sb3IuaXNDb2xvcj1mdW5jdGlvbih0KXtyZXR1cm4gaS5Db2xvci5pc1JnYih0KXx8aS5Db2xvci50ZXN0KHQpfSxpLkFycmF5PWZ1bmN0aW9uKHQsZSl7MD09KHQ9KHR8fFtdKS52YWx1ZU9mKCkpLmxlbmd0aCYmZSYmKHQ9ZS52YWx1ZU9mKCkpLHRoaXMudmFsdWU9dGhpcy5wYXJzZSh0KX0saS5leHRlbmQoaS5BcnJheSx7dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZS5qb2luKCIgIil9LHZhbHVlT2Y6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX0scGFyc2U6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dC52YWx1ZU9mKCksQXJyYXkuaXNBcnJheSh0KT90OnRoaXMuc3BsaXQodCl9fSksaS5Qb2ludEFycmF5PWZ1bmN0aW9uKHQsZSl7aS5BcnJheS5jYWxsKHRoaXMsdCxlfHxbWzAsMF1dKX0saS5Qb2ludEFycmF5LnByb3RvdHlwZT1uZXcgaS5BcnJheSxpLlBvaW50QXJyYXkucHJvdG90eXBlLmNvbnN0cnVjdG9yPWkuUG9pbnRBcnJheTtmb3IodmFyIHM9e006ZnVuY3Rpb24odCxlLGkpe3JldHVybiBlLng9aS54PXRbMF0sZS55PWkueT10WzFdLFsiTSIsZS54LGUueV19LEw6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS54PXRbMF0sZS55PXRbMV0sWyJMIix0WzBdLHRbMV1dfSxIOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUueD10WzBdLFsiSCIsdFswXV19LFY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS55PXRbMF0sWyJWIix0WzBdXX0sQzpmdW5jdGlvbih0LGUpe3JldHVybiBlLng9dFs0XSxlLnk9dFs1XSxbIkMiLHRbMF0sdFsxXSx0WzJdLHRbM10sdFs0XSx0WzVdXX0sUTpmdW5jdGlvbih0LGUpe3JldHVybiBlLng9dFsyXSxlLnk9dFszXSxbIlEiLHRbMF0sdFsxXSx0WzJdLHRbM11dfSxaOmZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gZS54PWkueCxlLnk9aS55LFsiWiJdfX0sYT0ibWxodnF0Y3NheiIuc3BsaXQoIiIpLG49MCxvPWEubGVuZ3RoO248bzsrK24pc1thW25dXT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxpLGEpe2lmKCJIIj09dCllWzBdPWVbMF0raS54O2Vsc2UgaWYoIlYiPT10KWVbMF09ZVswXStpLnk7ZWxzZSBpZigiQSI9PXQpZVs1XT1lWzVdK2kueCxlWzZdPWVbNl0raS55O2Vsc2UgZm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7KytuKWVbbl09ZVtuXSsobiUyP2kueTppLngpO2lmKHMmJiJmdW5jdGlvbiI9PXR5cGVvZiBzW3RdKXJldHVybiBzW3RdKGUsaSxhKX19KGFbbl0udG9VcHBlckNhc2UoKSk7aS5QYXRoQXJyYXk9ZnVuY3Rpb24odCxlKXtpLkFycmF5LmNhbGwodGhpcyx0LGV8fFtbIk0iLDAsMF1dKX0saS5QYXRoQXJyYXkucHJvdG90eXBlPW5ldyBpLkFycmF5LGkuUGF0aEFycmF5LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1pLlBhdGhBcnJheSxpLmV4dGVuZChpLlBhdGhBcnJheSx7dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAsaT10Lmxlbmd0aCxzPSIiO2U8aTtlKyspcys9dFtlXVswXSxudWxsIT10W2VdWzFdJiYocys9dFtlXVsxXSxudWxsIT10W2VdWzJdJiYocys9IiAiLHMrPXRbZV1bMl0sbnVsbCE9dFtlXVszXSYmKHMrPSIgIixzKz10W2VdWzNdLHMrPSIgIixzKz10W2VdWzRdLG51bGwhPXRbZV1bNV0mJihzKz0iICIscys9dFtlXVs1XSxzKz0iICIscys9dFtlXVs2XSxudWxsIT10W2VdWzddJiYocys9IiAiLHMrPXRbZV1bN10pKSkpKTtyZXR1cm4gcysiICJ9KHRoaXMudmFsdWUpfSxtb3ZlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5iYm94KCk7cmV0dXJuIGkueCxpLnksdGhpc30sYXQ6ZnVuY3Rpb24odCl7aWYoIXRoaXMuZGVzdGluYXRpb24pcmV0dXJuIHRoaXM7Zm9yKHZhciBlPXRoaXMudmFsdWUscz10aGlzLmRlc3RpbmF0aW9uLnZhbHVlLGE9W10sbj1uZXcgaS5QYXRoQXJyYXkscj0wLG89ZS5sZW5ndGg7cjxvO3IrKyl7YVtyXT1bZVtyXVswXV07Zm9yKHZhciBsPTEsYz1lW3JdLmxlbmd0aDtsPGM7bCsrKWFbcl1bbF09ZVtyXVtsXSsoc1tyXVtsXS1lW3JdW2xdKSp0OyJBIj09PWFbcl1bMF0mJihhW3JdWzRdPSsoMCE9YVtyXVs0XSksYVtyXVs1XT0rKDAhPWFbcl1bNV0pKX1yZXR1cm4gbi52YWx1ZT1hLG59LHBhcnNlOmZ1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBpLlBhdGhBcnJheSlyZXR1cm4gdC52YWx1ZU9mKCk7dmFyIGUsYT17TToyLEw6MixIOjEsVjoxLEM6NixTOjQsUTo0LFQ6MixBOjcsWjowfTt0PSJzdHJpbmciPT10eXBlb2YgdD90LnJlcGxhY2UoaS5yZWdleC5udW1iZXJzV2l0aERvdHMsYykucmVwbGFjZShpLnJlZ2V4LnBhdGhMZXR0ZXJzLCIgJCYgIikucmVwbGFjZShpLnJlZ2V4Lmh5cGhlbiwiJDEgLSIpLnRyaW0oKS5zcGxpdChpLnJlZ2V4LmRlbGltaXRlcik6dC5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuW10uY29uY2F0LmNhbGwodCxlKX0pLFtdKTt2YXIgbj1bXSxyPW5ldyBpLlBvaW50LG89bmV3IGkuUG9pbnQsbD0wLGg9dC5sZW5ndGg7ZG97aS5yZWdleC5pc1BhdGhMZXR0ZXIudGVzdCh0W2xdKT8oZT10W2xdLCsrbCk6Ik0iPT1lP2U9IkwiOiJtIj09ZSYmKGU9ImwiKSxuLnB1c2goc1tlXS5jYWxsKG51bGwsdC5zbGljZShsLGwrPWFbZS50b1VwcGVyQ2FzZSgpXSkubWFwKHBhcnNlRmxvYXQpLHIsbykpfXdoaWxlKGg+bCk7cmV0dXJuIG59LGJib3g6ZnVuY3Rpb24oKXtyZXR1cm4gaS5wYXJzZXIuZHJhd3x8aS5wcmVwYXJlKCksaS5wYXJzZXIucGF0aC5zZXRBdHRyaWJ1dGUoImQiLHRoaXMudG9TdHJpbmcoKSksaS5wYXJzZXIucGF0aC5nZXRCQm94KCl9fSksaS5OdW1iZXI9aS5pbnZlbnQoe2NyZWF0ZTpmdW5jdGlvbih0LGUpe3RoaXMudmFsdWU9MCx0aGlzLnVuaXQ9ZXx8IiIsIm51bWJlciI9PXR5cGVvZiB0P3RoaXMudmFsdWU9aXNOYU4odCk/MDppc0Zpbml0ZSh0KT90OnQ8MD8tMzRlMzc6MzRlMzc6InN0cmluZyI9PXR5cGVvZiB0PyhlPXQubWF0Y2goaS5yZWdleC5udW1iZXJBbmRVbml0KSkmJih0aGlzLnZhbHVlPXBhcnNlRmxvYXQoZVsxXSksIiUiPT1lWzVdP3RoaXMudmFsdWUvPTEwMDoicyI9PWVbNV0mJih0aGlzLnZhbHVlKj0xZTMpLHRoaXMudW5pdD1lWzVdKTp0IGluc3RhbmNlb2YgaS5OdW1iZXImJih0aGlzLnZhbHVlPXQudmFsdWVPZigpLHRoaXMudW5pdD10LnVuaXQpfSxleHRlbmQ6e3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuKCIlIj09dGhpcy51bml0P35+KDFlOCp0aGlzLnZhbHVlKS8xZTY6InMiPT10aGlzLnVuaXQ/dGhpcy52YWx1ZS8xZTM6dGhpcy52YWx1ZSkrdGhpcy51bml0fSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygpfSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9LHBsdXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bmV3IGkuTnVtYmVyKHQpLG5ldyBpLk51bWJlcih0aGlzK3QsdGhpcy51bml0fHx0LnVuaXQpfSxtaW51czpmdW5jdGlvbih0KXtyZXR1cm4gdD1uZXcgaS5OdW1iZXIodCksbmV3IGkuTnVtYmVyKHRoaXMtdCx0aGlzLnVuaXR8fHQudW5pdCl9LHRpbWVzOmZ1bmN0aW9uKHQpe3JldHVybiB0PW5ldyBpLk51bWJlcih0KSxuZXcgaS5OdW1iZXIodGhpcyp0LHRoaXMudW5pdHx8dC51bml0KX0sZGl2aWRlOmZ1bmN0aW9uKHQpe3JldHVybiB0PW5ldyBpLk51bWJlcih0KSxuZXcgaS5OdW1iZXIodGhpcy90LHRoaXMudW5pdHx8dC51bml0KX0sdG86ZnVuY3Rpb24odCl7dmFyIGU9bmV3IGkuTnVtYmVyKHRoaXMpO3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmKGUudW5pdD10KSxlfSxtb3JwaDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kZXN0aW5hdGlvbj1uZXcgaS5OdW1iZXIodCksdC5yZWxhdGl2ZSYmKHRoaXMuZGVzdGluYXRpb24udmFsdWUrPXRoaXMudmFsdWUpLHRoaXN9LGF0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRlc3RpbmF0aW9uP25ldyBpLk51bWJlcih0aGlzLmRlc3RpbmF0aW9uKS5taW51cyh0aGlzKS50aW1lcyh0KS5wbHVzKHRoaXMpOnRoaXN9fX0pLGkuRWxlbWVudD1pLmludmVudCh7Y3JlYXRlOmZ1bmN0aW9uKHQpe3RoaXMuX3N0cm9rZT1pLmRlZmF1bHRzLmF0dHJzLnN0cm9rZSx0aGlzLl9ldmVudD1udWxsLHRoaXMuZG9tPXt9LCh0aGlzLm5vZGU9dCkmJih0aGlzLnR5cGU9dC5ub2RlTmFtZSx0aGlzLm5vZGUuaW5zdGFuY2U9dGhpcyx0aGlzLl9zdHJva2U9dC5nZXRBdHRyaWJ1dGUoInN0cm9rZSIpfHx0aGlzLl9zdHJva2UpfSxleHRlbmQ6e3g6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYXR0cigieCIsdCl9LHk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYXR0cigieSIsdCl9LGN4OmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMueCgpK3RoaXMud2lkdGgoKS8yOnRoaXMueCh0LXRoaXMud2lkdGgoKS8yKX0sY3k6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy55KCkrdGhpcy5oZWlnaHQoKS8yOnRoaXMueSh0LXRoaXMuaGVpZ2h0KCkvMil9LG1vdmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy54KHQpLnkoZSl9LGNlbnRlcjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmN4KHQpLmN5KGUpfSx3aWR0aDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hdHRyKCJ3aWR0aCIsdCl9LGhlaWdodDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hdHRyKCJoZWlnaHQiLHQpfSxzaXplOmZ1bmN0aW9uKHQsZSl7dmFyIHM9cCh0aGlzLHQsZSk7cmV0dXJuIHRoaXMud2lkdGgobmV3IGkuTnVtYmVyKHMud2lkdGgpKS5oZWlnaHQobmV3IGkuTnVtYmVyKHMuaGVpZ2h0KSl9LGNsb25lOmZ1bmN0aW9uKHQpe3RoaXMud3JpdGVEYXRhVG9Eb20oKTt2YXIgZT1tKHRoaXMubm9kZS5jbG9uZU5vZGUoITApKTtyZXR1cm4gdD90LmFkZChlKTp0aGlzLmFmdGVyKGUpLGV9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudCgpJiZ0aGlzLnBhcmVudCgpLnJlbW92ZUVsZW1lbnQodGhpcyksdGhpc30scmVwbGFjZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hZnRlcih0KS5yZW1vdmUoKSx0fSxhZGRUbzpmdW5jdGlvbih0KXtyZXR1cm4gdC5wdXQodGhpcyl9LHB1dEluOmZ1bmN0aW9uKHQpe3JldHVybiB0LmFkZCh0aGlzKX0saWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYXR0cigiaWQiLHQpfSxzaG93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3R5bGUoImRpc3BsYXkiLCIiKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpfSx2aXNpYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIm5vbmUiIT10aGlzLnN0eWxlKCJkaXNwbGF5Iil9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXR0cigiaWQiKX0sY2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PXRoaXMuYXR0cigiY2xhc3MiKTtyZXR1cm4gbnVsbD09dD9bXTp0LnRyaW0oKS5zcGxpdChpLnJlZ2V4LmRlbGltaXRlcil9LGhhc0NsYXNzOmZ1bmN0aW9uKHQpe3JldHVybi0xIT10aGlzLmNsYXNzZXMoKS5pbmRleE9mKHQpfSxhZGRDbGFzczpmdW5jdGlvbih0KXtpZighdGhpcy5oYXNDbGFzcyh0KSl7dmFyIGU9dGhpcy5jbGFzc2VzKCk7ZS5wdXNoKHQpLHRoaXMuYXR0cigiY2xhc3MiLGUuam9pbigiICIpKX1yZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaGFzQ2xhc3ModCkmJnRoaXMuYXR0cigiY2xhc3MiLHRoaXMuY2xhc3NlcygpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPXR9KSkuam9pbigiICIpKSx0aGlzfSx0b2dnbGVDbGFzczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oYXNDbGFzcyh0KT90aGlzLnJlbW92ZUNsYXNzKHQpOnRoaXMuYWRkQ2xhc3ModCl9LHJlZmVyZW5jZTpmdW5jdGlvbih0KXtyZXR1cm4gaS5nZXQodGhpcy5hdHRyKHQpKX0scGFyZW50OmZ1bmN0aW9uKGUpe3ZhciBzPXRoaXM7aWYoIXMubm9kZS5wYXJlbnROb2RlKXJldHVybiBudWxsO2lmKHM9aS5hZG9wdChzLm5vZGUucGFyZW50Tm9kZSksIWUpcmV0dXJuIHM7Zm9yKDtzJiZzLm5vZGUgaW5zdGFuY2VvZiB0LlNWR0VsZW1lbnQ7KXtpZigic3RyaW5nIj09dHlwZW9mIGU/cy5tYXRjaGVzKGUpOnMgaW5zdGFuY2VvZiBlKXJldHVybiBzO2lmKCFzLm5vZGUucGFyZW50Tm9kZXx8IiNkb2N1bWVudCI9PXMubm9kZS5wYXJlbnROb2RlLm5vZGVOYW1lKXJldHVybiBudWxsO3M9aS5hZG9wdChzLm5vZGUucGFyZW50Tm9kZSl9fSxkb2M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGkuRG9jP3RoaXM6dGhpcy5wYXJlbnQoaS5Eb2MpfSxwYXJlbnRzOmZ1bmN0aW9uKHQpe3ZhciBlPVtdLGk9dGhpcztkb3tpZighKGk9aS5wYXJlbnQodCkpfHwhaS5ub2RlKWJyZWFrO2UucHVzaChpKX13aGlsZShpLnBhcmVudCk7cmV0dXJuIGV9LG1hdGNoZXM6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQubWF0Y2hlc3x8dC5tYXRjaGVzU2VsZWN0b3J8fHQubXNNYXRjaGVzU2VsZWN0b3J8fHQubW96TWF0Y2hlc1NlbGVjdG9yfHx0LndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8dC5vTWF0Y2hlc1NlbGVjdG9yKS5jYWxsKHQsZSl9KHRoaXMubm9kZSx0KX0sbmF0aXZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZX0sc3ZnOmZ1bmN0aW9uKHQpe3ZhciBzPWUuY3JlYXRlRWxlbWVudCgic3ZnIik7aWYoISh0JiZ0aGlzIGluc3RhbmNlb2YgaS5QYXJlbnQpKXJldHVybiBzLmFwcGVuZENoaWxkKHQ9ZS5jcmVhdGVFbGVtZW50KCJzdmciKSksdGhpcy53cml0ZURhdGFUb0RvbSgpLHQuYXBwZW5kQ2hpbGQodGhpcy5ub2RlLmNsb25lTm9kZSghMCkpLHMuaW5uZXJIVE1MLnJlcGxhY2UoL148c3ZnPi8sIiIpLnJlcGxhY2UoLzxcL3N2Zz4kLywiIik7cy5pbm5lckhUTUw9Ijxzdmc+Iit0LnJlcGxhY2UoL1xuLywiIikucmVwbGFjZSgvPChbXHc6LV0rKShbXjxdKz8pXC8+L2csIjwkMSQyPjwvJDE+IikrIjwvc3ZnPiI7Zm9yKHZhciBhPTAsbj1zLmZpcnN0Q2hpbGQuY2hpbGROb2Rlcy5sZW5ndGg7YTxuO2ErKyl0aGlzLm5vZGUuYXBwZW5kQ2hpbGQocy5maXJzdENoaWxkLmZpcnN0Q2hpbGQpO3JldHVybiB0aGlzfSx3cml0ZURhdGFUb0RvbTpmdW5jdGlvbigpe3JldHVybih0aGlzLmVhY2h8fHRoaXMubGluZXMpJiYodGhpcy5lYWNoP3RoaXM6dGhpcy5saW5lcygpKS5lYWNoKChmdW5jdGlvbigpe3RoaXMud3JpdGVEYXRhVG9Eb20oKX0pKSx0aGlzLm5vZGUucmVtb3ZlQXR0cmlidXRlKCJzdmdqczpkYXRhIiksT2JqZWN0LmtleXModGhpcy5kb20pLmxlbmd0aCYmdGhpcy5ub2RlLnNldEF0dHJpYnV0ZSgic3ZnanM6ZGF0YSIsSlNPTi5zdHJpbmdpZnkodGhpcy5kb20pKSx0aGlzfSxzZXREYXRhOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRvbT10LHRoaXN9LGlzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0LGUpe3JldHVybiB0IGluc3RhbmNlb2YgZX0odGhpcyx0KX19fSksaS5lYXNpbmc9eyItIjpmdW5jdGlvbih0KXtyZXR1cm4gdH0sIjw+IjpmdW5jdGlvbih0KXtyZXR1cm4tTWF0aC5jb3ModCpNYXRoLlBJKS8yKy41fSwiPiI6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc2luKHQqTWF0aC5QSS8yKX0sIjwiOmZ1bmN0aW9uKHQpe3JldHVybiAxLU1hdGguY29zKHQqTWF0aC5QSS8yKX19LGkubW9ycGg9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscyl7cmV0dXJuIG5ldyBpLk1vcnBoT2JqKGUscykuYXQodCl9fSxpLlNpdHVhdGlvbj1pLmludmVudCh7Y3JlYXRlOmZ1bmN0aW9uKHQpe3RoaXMuaW5pdD0hMSx0aGlzLnJldmVyc2VkPSExLHRoaXMucmV2ZXJzaW5nPSExLHRoaXMuZHVyYXRpb249bmV3IGkuTnVtYmVyKHQuZHVyYXRpb24pLnZhbHVlT2YoKSx0aGlzLmRlbGF5PW5ldyBpLk51bWJlcih0LmRlbGF5KS52YWx1ZU9mKCksdGhpcy5zdGFydD0rbmV3IERhdGUrdGhpcy5kZWxheSx0aGlzLmZpbmlzaD10aGlzLnN0YXJ0K3RoaXMuZHVyYXRpb24sdGhpcy5lYXNlPXQuZWFzZSx0aGlzLmxvb3A9MCx0aGlzLmxvb3BzPSExLHRoaXMuYW5pbWF0aW9ucz17fSx0aGlzLmF0dHJzPXt9LHRoaXMuc3R5bGVzPXt9LHRoaXMudHJhbnNmb3Jtcz1bXSx0aGlzLm9uY2U9e319fSksaS5GWD1pLmludmVudCh7Y3JlYXRlOmZ1bmN0aW9uKHQpe3RoaXMuX3RhcmdldD10LHRoaXMuc2l0dWF0aW9ucz1bXSx0aGlzLmFjdGl2ZT0hMSx0aGlzLnNpdHVhdGlvbj1udWxsLHRoaXMucGF1c2VkPSExLHRoaXMubGFzdFBvcz0wLHRoaXMucG9zPTAsdGhpcy5hYnNQb3M9MCx0aGlzLl9zcGVlZD0xfSxleHRlbmQ6e2FuaW1hdGU6ZnVuY3Rpb24odCxlLHMpeyJvYmplY3QiPT09cih0KSYmKGU9dC5lYXNlLHM9dC5kZWxheSx0PXQuZHVyYXRpb24pO3ZhciBhPW5ldyBpLlNpdHVhdGlvbih7ZHVyYXRpb246dHx8MWUzLGRlbGF5OnN8fDAsZWFzZTppLmVhc2luZ1tlfHwiLSJdfHxlfSk7cmV0dXJuIHRoaXMucXVldWUoYSksdGhpc30sdGFyZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0IGluc3RhbmNlb2YgaS5FbGVtZW50Pyh0aGlzLl90YXJnZXQ9dCx0aGlzKTp0aGlzLl90YXJnZXR9LHRpbWVUb0Fic1BvczpmdW5jdGlvbih0KXtyZXR1cm4odC10aGlzLnNpdHVhdGlvbi5zdGFydCkvKHRoaXMuc2l0dWF0aW9uLmR1cmF0aW9uL3RoaXMuX3NwZWVkKX0sYWJzUG9zVG9UaW1lOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNpdHVhdGlvbi5kdXJhdGlvbi90aGlzLl9zcGVlZCp0K3RoaXMuc2l0dWF0aW9uLnN0YXJ0fSxzdGFydEFuaW1GcmFtZTpmdW5jdGlvbigpe3RoaXMuc3RvcEFuaW1GcmFtZSgpLHRoaXMuYW5pbWF0aW9uRnJhbWU9dC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXt0aGlzLnN0ZXAoKX0uYmluZCh0aGlzKSl9LHN0b3BBbmltRnJhbWU6ZnVuY3Rpb24oKXt0LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbWF0aW9uRnJhbWUpfSxzdGFydDpmdW5jdGlvbigpe3JldHVybiF0aGlzLmFjdGl2ZSYmdGhpcy5zaXR1YXRpb24mJih0aGlzLmFjdGl2ZT0hMCx0aGlzLnN0YXJ0Q3VycmVudCgpKSx0aGlzfSxzdGFydEN1cnJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXR1YXRpb24uc3RhcnQ9K25ldyBEYXRlK3RoaXMuc2l0dWF0aW9uLmRlbGF5L3RoaXMuX3NwZWVkLHRoaXMuc2l0dWF0aW9uLmZpbmlzaD10aGlzLnNpdHVhdGlvbi5zdGFydCt0aGlzLnNpdHVhdGlvbi5kdXJhdGlvbi90aGlzLl9zcGVlZCx0aGlzLmluaXRBbmltYXRpb25zKCkuc3RlcCgpfSxxdWV1ZTpmdW5jdGlvbih0KXtyZXR1cm4oImZ1bmN0aW9uIj09dHlwZW9mIHR8fHQgaW5zdGFuY2VvZiBpLlNpdHVhdGlvbikmJnRoaXMuc2l0dWF0aW9ucy5wdXNoKHQpLHRoaXMuc2l0dWF0aW9ufHwodGhpcy5zaXR1YXRpb249dGhpcy5zaXR1YXRpb25zLnNoaWZ0KCkpLHRoaXN9LGRlcXVldWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdG9wKCksdGhpcy5zaXR1YXRpb249dGhpcy5zaXR1YXRpb25zLnNoaWZ0KCksdGhpcy5zaXR1YXRpb24mJih0aGlzLnNpdHVhdGlvbiBpbnN0YW5jZW9mIGkuU2l0dWF0aW9uP3RoaXMuc3RhcnQoKTp0aGlzLnNpdHVhdGlvbi5jYWxsKHRoaXMpKSx0aGlzfSxpbml0QW5pbWF0aW9uczpmdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5zaXR1YXRpb247aWYoZS5pbml0KXJldHVybiB0aGlzO2Zvcih2YXIgcyBpbiBlLmFuaW1hdGlvbnMpe3Q9dGhpcy50YXJnZXQoKVtzXSgpLEFycmF5LmlzQXJyYXkodCl8fCh0PVt0XSksQXJyYXkuaXNBcnJheShlLmFuaW1hdGlvbnNbc10pfHwoZS5hbmltYXRpb25zW3NdPVtlLmFuaW1hdGlvbnNbc11dKTtmb3IodmFyIGE9dC5sZW5ndGg7YS0tOyllLmFuaW1hdGlvbnNbc11bYV1pbnN0YW5jZW9mIGkuTnVtYmVyJiYodFthXT1uZXcgaS5OdW1iZXIodFthXSkpLGUuYW5pbWF0aW9uc1tzXVthXT10W2FdLm1vcnBoKGUuYW5pbWF0aW9uc1tzXVthXSl9Zm9yKHZhciBzIGluIGUuYXR0cnMpZS5hdHRyc1tzXT1uZXcgaS5Nb3JwaE9iaih0aGlzLnRhcmdldCgpLmF0dHIocyksZS5hdHRyc1tzXSk7Zm9yKHZhciBzIGluIGUuc3R5bGVzKWUuc3R5bGVzW3NdPW5ldyBpLk1vcnBoT2JqKHRoaXMudGFyZ2V0KCkuc3R5bGUocyksZS5zdHlsZXNbc10pO3JldHVybiBlLmluaXRpYWxUcmFuc2Zvcm1hdGlvbj10aGlzLnRhcmdldCgpLm1hdHJpeGlmeSgpLGUuaW5pdD0hMCx0aGlzfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0dWF0aW9ucz1bXSx0aGlzfSxjbGVhckN1cnJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXR1YXRpb249bnVsbCx0aGlzfSxzdG9wOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5hY3RpdmU7cmV0dXJuIHRoaXMuYWN0aXZlPSExLGUmJnRoaXMuY2xlYXJRdWV1ZSgpLHQmJnRoaXMuc2l0dWF0aW9uJiYoIWkmJnRoaXMuc3RhcnRDdXJyZW50KCksdGhpcy5hdEVuZCgpKSx0aGlzLnN0b3BBbmltRnJhbWUoKSx0aGlzLmNsZWFyQ3VycmVudCgpfSxhZnRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmxhc3QoKTtyZXR1cm4gdGhpcy50YXJnZXQoKS5vbigiZmluaXNoZWQuZngiLChmdW5jdGlvbiBpKHMpe3MuZGV0YWlsLnNpdHVhdGlvbj09ZSYmKHQuY2FsbCh0aGlzLGUpLHRoaXMub2ZmKCJmaW5pc2hlZC5meCIsaSkpfSkpLHRoaXMuX2NhbGxTdGFydCgpfSxkdXJpbmc6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sYXN0KCkscz1mdW5jdGlvbihzKXtzLmRldGFpbC5zaXR1YXRpb249PWUmJnQuY2FsbCh0aGlzLHMuZGV0YWlsLnBvcyxpLm1vcnBoKHMuZGV0YWlsLnBvcykscy5kZXRhaWwuZWFzZWQsZSl9O3JldHVybiB0aGlzLnRhcmdldCgpLm9mZigiZHVyaW5nLmZ4IixzKS5vbigiZHVyaW5nLmZ4IixzKSx0aGlzLmFmdGVyKChmdW5jdGlvbigpe3RoaXMub2ZmKCJkdXJpbmcuZngiLHMpfSkpLHRoaXMuX2NhbGxTdGFydCgpfSxhZnRlckFsbDpmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbiBlKGkpe3QuY2FsbCh0aGlzKSx0aGlzLm9mZigiYWxsZmluaXNoZWQuZngiLGUpfTtyZXR1cm4gdGhpcy50YXJnZXQoKS5vZmYoImFsbGZpbmlzaGVkLmZ4IixlKS5vbigiYWxsZmluaXNoZWQuZngiLGUpLHRoaXMuX2NhbGxTdGFydCgpfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0dWF0aW9ucy5sZW5ndGg/dGhpcy5zaXR1YXRpb25zW3RoaXMuc2l0dWF0aW9ucy5sZW5ndGgtMV06dGhpcy5zaXR1YXRpb259LGFkZDpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHRoaXMubGFzdCgpW2l8fCJhbmltYXRpb25zIl1bdF09ZSx0aGlzLl9jYWxsU3RhcnQoKX0sc3RlcDpmdW5jdGlvbih0KXt2YXIgZSxpLHM7dHx8KHRoaXMuYWJzUG9zPXRoaXMudGltZVRvQWJzUG9zKCtuZXcgRGF0ZSkpLCExIT09dGhpcy5zaXR1YXRpb24ubG9vcHM/KGU9TWF0aC5tYXgodGhpcy5hYnNQb3MsMCksaT1NYXRoLmZsb29yKGUpLCEwPT09dGhpcy5zaXR1YXRpb24ubG9vcHN8fGk8dGhpcy5zaXR1YXRpb24ubG9vcHM/KHRoaXMucG9zPWUtaSxzPXRoaXMuc2l0dWF0aW9uLmxvb3AsdGhpcy5zaXR1YXRpb24ubG9vcD1pKToodGhpcy5hYnNQb3M9dGhpcy5zaXR1YXRpb24ubG9vcHMsdGhpcy5wb3M9MSxzPXRoaXMuc2l0dWF0aW9uLmxvb3AtMSx0aGlzLnNpdHVhdGlvbi5sb29wPXRoaXMuc2l0dWF0aW9uLmxvb3BzKSx0aGlzLnNpdHVhdGlvbi5yZXZlcnNpbmcmJih0aGlzLnNpdHVhdGlvbi5yZXZlcnNlZD10aGlzLnNpdHVhdGlvbi5yZXZlcnNlZCE9Qm9vbGVhbigodGhpcy5zaXR1YXRpb24ubG9vcC1zKSUyKSkpOih0aGlzLmFic1Bvcz1NYXRoLm1pbih0aGlzLmFic1BvcywxKSx0aGlzLnBvcz10aGlzLmFic1BvcyksdGhpcy5wb3M8MCYmKHRoaXMucG9zPTApLHRoaXMuc2l0dWF0aW9uLnJldmVyc2VkJiYodGhpcy5wb3M9MS10aGlzLnBvcyk7dmFyIGE9dGhpcy5zaXR1YXRpb24uZWFzZSh0aGlzLnBvcyk7Zm9yKHZhciBuIGluIHRoaXMuc2l0dWF0aW9uLm9uY2Upbj50aGlzLmxhc3RQb3MmJm48PWEmJih0aGlzLnNpdHVhdGlvbi5vbmNlW25dLmNhbGwodGhpcy50YXJnZXQoKSx0aGlzLnBvcyxhKSxkZWxldGUgdGhpcy5zaXR1YXRpb24ub25jZVtuXSk7cmV0dXJuIHRoaXMuYWN0aXZlJiZ0aGlzLnRhcmdldCgpLmZpcmUoImR1cmluZyIse3Bvczp0aGlzLnBvcyxlYXNlZDphLGZ4OnRoaXMsc2l0dWF0aW9uOnRoaXMuc2l0dWF0aW9ufSksdGhpcy5zaXR1YXRpb24/KHRoaXMuZWFjaEF0KCksMT09dGhpcy5wb3MmJiF0aGlzLnNpdHVhdGlvbi5yZXZlcnNlZHx8dGhpcy5zaXR1YXRpb24ucmV2ZXJzZWQmJjA9PXRoaXMucG9zPyh0aGlzLnN0b3BBbmltRnJhbWUoKSx0aGlzLnRhcmdldCgpLmZpcmUoImZpbmlzaGVkIix7Zng6dGhpcyxzaXR1YXRpb246dGhpcy5zaXR1YXRpb259KSx0aGlzLnNpdHVhdGlvbnMubGVuZ3RofHwodGhpcy50YXJnZXQoKS5maXJlKCJhbGxmaW5pc2hlZCIpLHRoaXMuc2l0dWF0aW9ucy5sZW5ndGh8fCh0aGlzLnRhcmdldCgpLm9mZigiLmZ4IiksdGhpcy5hY3RpdmU9ITEpKSx0aGlzLmFjdGl2ZT90aGlzLmRlcXVldWUoKTp0aGlzLmNsZWFyQ3VycmVudCgpKTohdGhpcy5wYXVzZWQmJnRoaXMuYWN0aXZlJiZ0aGlzLnN0YXJ0QW5pbUZyYW1lKCksdGhpcy5sYXN0UG9zPWEsdGhpcyk6dGhpc30sZWFjaEF0OmZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLHM9dGhpcy50YXJnZXQoKSxhPXRoaXMuc2l0dWF0aW9uO2Zvcih2YXIgbiBpbiBhLmFuaW1hdGlvbnMpdD1bXS5jb25jYXQoYS5hbmltYXRpb25zW25dKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiJzdHJpbmciIT10eXBlb2YgdCYmdC5hdD90LmF0KGEuZWFzZShlLnBvcyksZS5wb3MpOnR9KSksc1tuXS5hcHBseShzLHQpO2Zvcih2YXIgbiBpbiBhLmF0dHJzKXQ9W25dLmNvbmNhdChhLmF0dHJzW25dKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiJzdHJpbmciIT10eXBlb2YgdCYmdC5hdD90LmF0KGEuZWFzZShlLnBvcyksZS5wb3MpOnR9KSkscy5hdHRyLmFwcGx5KHMsdCk7Zm9yKHZhciBuIGluIGEuc3R5bGVzKXQ9W25dLmNvbmNhdChhLnN0eWxlc1tuXSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJnQuYXQ/dC5hdChhLmVhc2UoZS5wb3MpLGUucG9zKTp0fSkpLHMuc3R5bGUuYXBwbHkocyx0KTtpZihhLnRyYW5zZm9ybXMubGVuZ3RoKXt0PWEuaW5pdGlhbFRyYW5zZm9ybWF0aW9uLG49MDtmb3IodmFyIHI9YS50cmFuc2Zvcm1zLmxlbmd0aDtuPHI7bisrKXt2YXIgbz1hLnRyYW5zZm9ybXNbbl07byBpbnN0YW5jZW9mIGkuTWF0cml4P3Q9by5yZWxhdGl2ZT90Lm11bHRpcGx5KChuZXcgaS5NYXRyaXgpLm1vcnBoKG8pLmF0KGEuZWFzZSh0aGlzLnBvcykpKTp0Lm1vcnBoKG8pLmF0KGEuZWFzZSh0aGlzLnBvcykpOihvLnJlbGF0aXZlfHxvLnVuZG8odC5leHRyYWN0KCkpLHQ9dC5tdWx0aXBseShvLmF0KGEuZWFzZSh0aGlzLnBvcykpKSl9cy5tYXRyaXgodCl9cmV0dXJuIHRoaXN9LG9uY2U6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXMubGFzdCgpO3JldHVybiBpfHwodD1zLmVhc2UodCkpLHMub25jZVt0XT1lLHRoaXN9LF9jYWxsU3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3RoaXMuc3RhcnQoKX0uYmluZCh0aGlzKSwwKSx0aGlzfX0scGFyZW50OmkuRWxlbWVudCxjb25zdHJ1Y3Q6e2FuaW1hdGU6ZnVuY3Rpb24odCxlLHMpe3JldHVybih0aGlzLmZ4fHwodGhpcy5meD1uZXcgaS5GWCh0aGlzKSkpLmFuaW1hdGUodCxlLHMpfSxkZWxheTpmdW5jdGlvbih0KXtyZXR1cm4odGhpcy5meHx8KHRoaXMuZng9bmV3IGkuRlgodGhpcykpKS5kZWxheSh0KX0sc3RvcDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmZ4JiZ0aGlzLmZ4LnN0b3AodCxlKSx0aGlzfSxmaW5pc2g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5meCYmdGhpcy5meC5maW5pc2goKSx0aGlzfX19KSxpLk1vcnBoT2JqPWkuaW52ZW50KHtjcmVhdGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5Db2xvci5pc0NvbG9yKGUpP25ldyBpLkNvbG9yKHQpLm1vcnBoKGUpOmkucmVnZXguZGVsaW1pdGVyLnRlc3QodCk/aS5yZWdleC5wYXRoTGV0dGVycy50ZXN0KHQpP25ldyBpLlBhdGhBcnJheSh0KS5tb3JwaChlKTpuZXcgaS5BcnJheSh0KS5tb3JwaChlKTppLnJlZ2V4Lm51bWJlckFuZFVuaXQudGVzdChlKT9uZXcgaS5OdW1iZXIodCkubW9ycGgoZSk6KHRoaXMudmFsdWU9dCx2b2lkKHRoaXMuZGVzdGluYXRpb249ZSkpfSxleHRlbmQ6e2F0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU8MT90aGlzLnZhbHVlOnRoaXMuZGVzdGluYXRpb259LHZhbHVlT2Y6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX19fSksaS5leHRlbmQoaS5GWCx7YXR0cjpmdW5jdGlvbih0LGUsaSl7aWYoIm9iamVjdCI9PT1yKHQpKWZvcih2YXIgcyBpbiB0KXRoaXMuYXR0cihzLHRbc10pO2Vsc2UgdGhpcy5hZGQodCxlLCJhdHRycyIpO3JldHVybiB0aGlzfSxwbG90OmZ1bmN0aW9uKHQsZSxpLHMpe3JldHVybiA0PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMucGxvdChbdCxlLGksc10pOnRoaXMuYWRkKCJwbG90IixuZXcodGhpcy50YXJnZXQoKS5tb3JwaEFycmF5KSh0KSl9fSksaS5Cb3g9aS5pbnZlbnQoe2NyZWF0ZTpmdW5jdGlvbih0LGUscyxhKXtpZighKCJvYmplY3QiIT09cih0KXx8dCBpbnN0YW5jZW9mIGkuRWxlbWVudCkpcmV0dXJuIGkuQm94LmNhbGwodGhpcyxudWxsIT10LmxlZnQ/dC5sZWZ0OnQueCxudWxsIT10LnRvcD90LnRvcDp0LnksdC53aWR0aCx0LmhlaWdodCk7ND09YXJndW1lbnRzLmxlbmd0aCYmKHRoaXMueD10LHRoaXMueT1lLHRoaXMud2lkdGg9cyx0aGlzLmhlaWdodD1hKSx2KHRoaXMpfX0pLGkuQkJveD1pLmludmVudCh7Y3JlYXRlOmZ1bmN0aW9uKHQpe2lmKGkuQm94LmFwcGx5KHRoaXMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKSx0IGluc3RhbmNlb2YgaS5FbGVtZW50KXt2YXIgczt0cnl7aWYoIWUuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5zKXtmb3IodmFyIGE9dC5ub2RlO2EucGFyZW50Tm9kZTspYT1hLnBhcmVudE5vZGU7aWYoYSE9ZSl0aHJvdyBuZXcgRXJyb3IoIkVsZW1lbnQgbm90IGluIHRoZSBkb20iKX1zPXQubm9kZS5nZXRCQm94KCl9Y2F0Y2goZSl7aWYodCBpbnN0YW5jZW9mIGkuU2hhcGUpe2kucGFyc2VyLmRyYXd8fGkucHJlcGFyZSgpO3ZhciBuPXQuY2xvbmUoaS5wYXJzZXIuZHJhdy5pbnN0YW5jZSkuc2hvdygpO24mJm4ubm9kZSYmImZ1bmN0aW9uIj09dHlwZW9mIG4ubm9kZS5nZXRCQm94JiYocz1uLm5vZGUuZ2V0QkJveCgpKSxuJiYiZnVuY3Rpb24iPT10eXBlb2Ygbi5yZW1vdmUmJm4ucmVtb3ZlKCl9ZWxzZSBzPXt4OnQubm9kZS5jbGllbnRMZWZ0LHk6dC5ub2RlLmNsaWVudFRvcCx3aWR0aDp0Lm5vZGUuY2xpZW50V2lkdGgsaGVpZ2h0OnQubm9kZS5jbGllbnRIZWlnaHR9fWkuQm94LmNhbGwodGhpcyxzKX19LGluaGVyaXQ6aS5Cb3gscGFyZW50OmkuRWxlbWVudCxjb25zdHJ1Y3Q6e2Jib3g6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGkuQkJveCh0aGlzKX19fSksaS5CQm94LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1pLkJCb3gsaS5NYXRyaXg9aS5pbnZlbnQoe2NyZWF0ZTpmdW5jdGlvbih0KXt2YXIgZT1mKFsxLDAsMCwxLDAsMF0pO3Q9bnVsbD09PXQ/ZTp0IGluc3RhbmNlb2YgaS5FbGVtZW50P3QubWF0cml4aWZ5KCk6InN0cmluZyI9PXR5cGVvZiB0P2YodC5zcGxpdChpLnJlZ2V4LmRlbGltaXRlcikubWFwKHBhcnNlRmxvYXQpKTo2PT1hcmd1bWVudHMubGVuZ3RoP2YoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTpBcnJheS5pc0FycmF5KHQpP2YodCk6dCYmIm9iamVjdCI9PT1yKHQpP3Q6ZTtmb3IodmFyIHM9Yi5sZW5ndGgtMTtzPj0wOy0tcyl0aGlzW2Jbc11dPW51bGwhPXRbYltzXV0/dFtiW3NdXTplW2Jbc11dfSxleHRlbmQ6e2V4dHJhY3Q6ZnVuY3Rpb24oKXt2YXIgdD1nKHRoaXMsMCwxKTtnKHRoaXMsMSwwKTt2YXIgZT0xODAvTWF0aC5QSSpNYXRoLmF0YW4yKHQueSx0LngpLTkwO3JldHVybnt4OnRoaXMuZSx5OnRoaXMuZix0cmFuc2Zvcm1lZFg6KHRoaXMuZSpNYXRoLmNvcyhlKk1hdGguUEkvMTgwKSt0aGlzLmYqTWF0aC5zaW4oZSpNYXRoLlBJLzE4MCkpL01hdGguc3FydCh0aGlzLmEqdGhpcy5hK3RoaXMuYip0aGlzLmIpLHRyYW5zZm9ybWVkWToodGhpcy5mKk1hdGguY29zKGUqTWF0aC5QSS8xODApK3RoaXMuZSpNYXRoLnNpbigtZSpNYXRoLlBJLzE4MCkpL01hdGguc3FydCh0aGlzLmMqdGhpcy5jK3RoaXMuZCp0aGlzLmQpLHJvdGF0aW9uOmUsYTp0aGlzLmEsYjp0aGlzLmIsYzp0aGlzLmMsZDp0aGlzLmQsZTp0aGlzLmUsZjp0aGlzLmYsbWF0cml4Om5ldyBpLk1hdHJpeCh0aGlzKX19LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpLk1hdHJpeCh0aGlzKX0sbW9ycGg6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGVzdGluYXRpb249bmV3IGkuTWF0cml4KHQpLHRoaXN9LG11bHRpcGx5OmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgaS5NYXRyaXgodGhpcy5uYXRpdmUoKS5tdWx0aXBseShmdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGkuTWF0cml4fHwodD1uZXcgaS5NYXRyaXgodCkpLHR9KHQpLm5hdGl2ZSgpKSl9LGludmVyc2U6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGkuTWF0cml4KHRoaXMubmF0aXZlKCkuaW52ZXJzZSgpKX0sdHJhbnNsYXRlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBpLk1hdHJpeCh0aGlzLm5hdGl2ZSgpLnRyYW5zbGF0ZSh0fHwwLGV8fDApKX0sbmF0aXZlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PWkucGFyc2VyLm5hdGl2ZS5jcmVhdGVTVkdNYXRyaXgoKSxlPWIubGVuZ3RoLTE7ZT49MDtlLS0pdFtiW2VdXT10aGlzW2JbZV1dO3JldHVybiB0fSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiJtYXRyaXgoIit4KHRoaXMuYSkrIiwiK3godGhpcy5iKSsiLCIreCh0aGlzLmMpKyIsIit4KHRoaXMuZCkrIiwiK3godGhpcy5lKSsiLCIreCh0aGlzLmYpKyIpIn19LHBhcmVudDppLkVsZW1lbnQsY29uc3RydWN0OntjdG06ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGkuTWF0cml4KHRoaXMubm9kZS5nZXRDVE0oKSl9LHNjcmVlbkNUTTpmdW5jdGlvbigpe2lmKHRoaXMgaW5zdGFuY2VvZiBpLk5lc3RlZCl7dmFyIHQ9dGhpcy5yZWN0KDEsMSksZT10Lm5vZGUuZ2V0U2NyZWVuQ1RNKCk7cmV0dXJuIHQucmVtb3ZlKCksbmV3IGkuTWF0cml4KGUpfXJldHVybiBuZXcgaS5NYXRyaXgodGhpcy5ub2RlLmdldFNjcmVlbkNUTSgpKX19fSksaS5Qb2ludD1pLmludmVudCh7Y3JlYXRlOmZ1bmN0aW9uKHQsZSl7dmFyIGk7aT1BcnJheS5pc0FycmF5KHQpP3t4OnRbMF0seTp0WzFdfToib2JqZWN0Ij09PXIodCk/e3g6dC54LHk6dC55fTpudWxsIT10P3t4OnQseTpudWxsIT1lP2U6dH06e3g6MCx5OjB9LHRoaXMueD1pLngsdGhpcy55PWkueX0sZXh0ZW5kOntjbG9uZTpmdW5jdGlvbigpe3JldHVybiBuZXcgaS5Qb2ludCh0aGlzKX0sbW9ycGg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5kZXN0aW5hdGlvbj1uZXcgaS5Qb2ludCh0LGUpLHRoaXN9fX0pLGkuZXh0ZW5kKGkuRWxlbWVudCx7cG9pbnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGkuUG9pbnQodCxlKS50cmFuc2Zvcm0odGhpcy5zY3JlZW5DVE0oKS5pbnZlcnNlKCkpfX0pLGkuZXh0ZW5kKGkuRWxlbWVudCx7YXR0cjpmdW5jdGlvbih0LGUscyl7aWYobnVsbD09dCl7Zm9yKHQ9e30scz0oZT10aGlzLm5vZGUuYXR0cmlidXRlcykubGVuZ3RoLTE7cz49MDtzLS0pdFtlW3NdLm5vZGVOYW1lXT1pLnJlZ2V4LmlzTnVtYmVyLnRlc3QoZVtzXS5ub2RlVmFsdWUpP3BhcnNlRmxvYXQoZVtzXS5ub2RlVmFsdWUpOmVbc10ubm9kZVZhbHVlO3JldHVybiB0fWlmKCJvYmplY3QiPT09cih0KSlmb3IodmFyIGEgaW4gdCl0aGlzLmF0dHIoYSx0W2FdKTtlbHNlIGlmKG51bGw9PT1lKXRoaXMubm9kZS5yZW1vdmVBdHRyaWJ1dGUodCk7ZWxzZXtpZihudWxsPT1lKXJldHVybiBudWxsPT0oZT10aGlzLm5vZGUuZ2V0QXR0cmlidXRlKHQpKT9pLmRlZmF1bHRzLmF0dHJzW3RdOmkucmVnZXguaXNOdW1iZXIudGVzdChlKT9wYXJzZUZsb2F0KGUpOmU7InN0cm9rZS13aWR0aCI9PXQ/dGhpcy5hdHRyKCJzdHJva2UiLHBhcnNlRmxvYXQoZSk+MD90aGlzLl9zdHJva2U6bnVsbCk6InN0cm9rZSI9PXQmJih0aGlzLl9zdHJva2U9ZSksImZpbGwiIT10JiYic3Ryb2tlIiE9dHx8KGkucmVnZXguaXNJbWFnZS50ZXN0KGUpJiYoZT10aGlzLmRvYygpLmRlZnMoKS5pbWFnZShlLDAsMCkpLGUgaW5zdGFuY2VvZiBpLkltYWdlJiYoZT10aGlzLmRvYygpLmRlZnMoKS5wYXR0ZXJuKDAsMCwoZnVuY3Rpb24oKXt0aGlzLmFkZChlKX0pKSkpLCJudW1iZXIiPT10eXBlb2YgZT9lPW5ldyBpLk51bWJlcihlKTppLkNvbG9yLmlzQ29sb3IoZSk/ZT1uZXcgaS5Db2xvcihlKTpBcnJheS5pc0FycmF5KGUpJiYoZT1uZXcgaS5BcnJheShlKSksImxlYWRpbmciPT10P3RoaXMubGVhZGluZyYmdGhpcy5sZWFkaW5nKGUpOiJzdHJpbmciPT10eXBlb2Ygcz90aGlzLm5vZGUuc2V0QXR0cmlidXRlTlMocyx0LGUudG9TdHJpbmcoKSk6dGhpcy5ub2RlLnNldEF0dHJpYnV0ZSh0LGUudG9TdHJpbmcoKSksIXRoaXMucmVidWlsZHx8ImZvbnQtc2l6ZSIhPXQmJiJ4IiE9dHx8dGhpcy5yZWJ1aWxkKHQsZSl9cmV0dXJuIHRoaXN9fSksaS5leHRlbmQoaS5FbGVtZW50LHt0cmFuc2Zvcm06ZnVuY3Rpb24odCxlKXt2YXIgcztyZXR1cm4ib2JqZWN0IiE9PXIodCk/KHM9bmV3IGkuTWF0cml4KHRoaXMpLmV4dHJhY3QoKSwic3RyaW5nIj09dHlwZW9mIHQ/c1t0XTpzKToocz1uZXcgaS5NYXRyaXgodGhpcyksZT0hIWV8fCEhdC5yZWxhdGl2ZSxudWxsIT10LmEmJihzPWU/cy5tdWx0aXBseShuZXcgaS5NYXRyaXgodCkpOm5ldyBpLk1hdHJpeCh0KSksdGhpcy5hdHRyKCJ0cmFuc2Zvcm0iLHMpKX19KSxpLmV4dGVuZChpLkVsZW1lbnQse3VudHJhbnNmb3JtOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXR0cigidHJhbnNmb3JtIixudWxsKX0sbWF0cml4aWZ5OmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuYXR0cigidHJhbnNmb3JtIil8fCIiKS5zcGxpdChpLnJlZ2V4LnRyYW5zZm9ybXMpLnNsaWNlKDAsLTEpLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9dC50cmltKCkuc3BsaXQoIigiKTtyZXR1cm5bZVswXSxlWzFdLnNwbGl0KGkucmVnZXguZGVsaW1pdGVyKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUZsb2F0KHQpfSkpXX0pKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIm1hdHJpeCI9PWVbMF0/dC5tdWx0aXBseShmKGVbMV0pKTp0W2VbMF1dLmFwcGx5KHQsZVsxXSl9KSxuZXcgaS5NYXRyaXgpfSx0b1BhcmVudDpmdW5jdGlvbih0KXtpZih0aGlzPT10KXJldHVybiB0aGlzO3ZhciBlPXRoaXMuc2NyZWVuQ1RNKCksaT10LnNjcmVlbkNUTSgpLmludmVyc2UoKTtyZXR1cm4gdGhpcy5hZGRUbyh0KS51bnRyYW5zZm9ybSgpLnRyYW5zZm9ybShpLm11bHRpcGx5KGUpKSx0aGlzfSx0b0RvYzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvUGFyZW50KHRoaXMuZG9jKCkpfX0pLGkuVHJhbnNmb3JtYXRpb249aS5pbnZlbnQoe2NyZWF0ZTpmdW5jdGlvbih0LGUpe2lmKGFyZ3VtZW50cy5sZW5ndGg+MSYmImJvb2xlYW4iIT10eXBlb2YgZSlyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgaT0wLHM9dGhpcy5hcmd1bWVudHMubGVuZ3RoO2k8czsrK2kpdGhpc1t0aGlzLmFyZ3VtZW50c1tpXV09dFtpXTtlbHNlIGlmKHQmJiJvYmplY3QiPT09cih0KSlmb3IoaT0wLHM9dGhpcy5hcmd1bWVudHMubGVuZ3RoO2k8czsrK2kpdGhpc1t0aGlzLmFyZ3VtZW50c1tpXV09dFt0aGlzLmFyZ3VtZW50c1tpXV07dGhpcy5pbnZlcnNlZD0hMSwhMD09PWUmJih0aGlzLmludmVyc2VkPSEwKX19KSxpLlRyYW5zbGF0ZT1pLmludmVudCh7cGFyZW50OmkuTWF0cml4LGluaGVyaXQ6aS5UcmFuc2Zvcm1hdGlvbixjcmVhdGU6ZnVuY3Rpb24odCxlKXt0aGlzLmNvbnN0cnVjdG9yLmFwcGx5KHRoaXMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKX0sZXh0ZW5kOnthcmd1bWVudHM6WyJ0cmFuc2Zvcm1lZFgiLCJ0cmFuc2Zvcm1lZFkiXSxtZXRob2Q6InRyYW5zbGF0ZSJ9fSksaS5leHRlbmQoaS5FbGVtZW50LHtzdHlsZTpmdW5jdGlvbih0LGUpe2lmKDA9PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMubm9kZS5zdHlsZS5jc3NUZXh0fHwiIjtpZihhcmd1bWVudHMubGVuZ3RoPDIpaWYoIm9iamVjdCI9PT1yKHQpKWZvcih2YXIgcyBpbiB0KXRoaXMuc3R5bGUocyx0W3NdKTtlbHNle2lmKCFpLnJlZ2V4LmlzQ3NzLnRlc3QodCkpcmV0dXJuIHRoaXMubm9kZS5zdHlsZVtoKHQpXTtmb3IodD10LnNwbGl0KC9ccyo7XHMqLykuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hIXR9KSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zcGxpdCgvXHMqOlxzKi8pfSkpO2U9dC5wb3AoKTspdGhpcy5zdHlsZShlWzBdLGVbMV0pfWVsc2UgdGhpcy5ub2RlLnN0eWxlW2godCldPW51bGw9PT1lfHxpLnJlZ2V4LmlzQmxhbmsudGVzdChlKT8iIjplO3JldHVybiB0aGlzfX0pLGkuUGFyZW50PWkuaW52ZW50KHtjcmVhdGU6ZnVuY3Rpb24odCl7dGhpcy5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMsdCl9LGluaGVyaXQ6aS5FbGVtZW50LGV4dGVuZDp7Y2hpbGRyZW46ZnVuY3Rpb24oKXtyZXR1cm4gaS51dGlscy5tYXAoaS51dGlscy5maWx0ZXJTVkdFbGVtZW50cyh0aGlzLm5vZGUuY2hpbGROb2RlcyksKGZ1bmN0aW9uKHQpe3JldHVybiBpLmFkb3B0KHQpfSkpfSxhZGQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09ZT90aGlzLm5vZGUuYXBwZW5kQ2hpbGQodC5ub2RlKTp0Lm5vZGUhPXRoaXMubm9kZS5jaGlsZE5vZGVzW2VdJiZ0aGlzLm5vZGUuaW5zZXJ0QmVmb3JlKHQubm9kZSx0aGlzLm5vZGUuY2hpbGROb2Rlc1tlXSksdGhpc30scHV0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWRkKHQsZSksdH0saGFzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmluZGV4KHQpPj0wfSxpbmRleDpmdW5jdGlvbih0KXtyZXR1cm5bXS5zbGljZS5jYWxsKHRoaXMubm9kZS5jaGlsZE5vZGVzKS5pbmRleE9mKHQubm9kZSl9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gaS5hZG9wdCh0aGlzLm5vZGUuY2hpbGROb2Rlc1t0XSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KHRoaXMubm9kZS5jaGlsZE5vZGVzLmxlbmd0aC0xKX0sZWFjaDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcz10aGlzLmNoaWxkcmVuKCksYT0wLG49cy5sZW5ndGg7YTxuO2ErKylzW2FdaW5zdGFuY2VvZiBpLkVsZW1lbnQmJnQuYXBwbHkoc1thXSxbYSxzXSksZSYmc1thXWluc3RhbmNlb2YgaS5Db250YWluZXImJnNbYV0uZWFjaCh0LGUpO3JldHVybiB0aGlzfSxyZW1vdmVFbGVtZW50OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUucmVtb3ZlQ2hpbGQodC5ub2RlKSx0aGlzfSxjbGVhcjpmdW5jdGlvbigpe2Zvcig7dGhpcy5ub2RlLmhhc0NoaWxkTm9kZXMoKTspdGhpcy5ub2RlLnJlbW92ZUNoaWxkKHRoaXMubm9kZS5sYXN0Q2hpbGQpO3JldHVybiBkZWxldGUgdGhpcy5fZGVmcyx0aGlzfSxkZWZzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9jKCkuZGVmcygpfX19KSxpLmV4dGVuZChpLlBhcmVudCx7dW5ncm91cDpmdW5jdGlvbih0LGUpe3JldHVybiAwPT09ZXx8dGhpcyBpbnN0YW5jZW9mIGkuRGVmc3x8dGhpcy5ub2RlPT1pLnBhcnNlci5kcmF3fHwodD10fHwodGhpcyBpbnN0YW5jZW9mIGkuRG9jP3RoaXM6dGhpcy5wYXJlbnQoaS5QYXJlbnQpKSxlPWV8fDEvMCx0aGlzLmVhY2goKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBpLkRlZnM/dGhpczp0aGlzIGluc3RhbmNlb2YgaS5QYXJlbnQ/dGhpcy51bmdyb3VwKHQsZS0xKTp0aGlzLnRvUGFyZW50KHQpfSkpLHRoaXMubm9kZS5maXJzdENoaWxkfHx0aGlzLnJlbW92ZSgpKSx0aGlzfSxmbGF0dGVuOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMudW5ncm91cCh0LGUpfX0pLGkuQ29udGFpbmVyPWkuaW52ZW50KHtjcmVhdGU6ZnVuY3Rpb24odCl7dGhpcy5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMsdCl9LGluaGVyaXQ6aS5QYXJlbnR9KSxpLlZpZXdCb3g9aS5pbnZlbnQoe3BhcmVudDppLkNvbnRhaW5lcixjb25zdHJ1Y3Q6e319KSxbImNsaWNrIiwiZGJsY2xpY2siLCJtb3VzZWRvd24iLCJtb3VzZXVwIiwibW91c2VvdmVyIiwibW91c2VvdXQiLCJtb3VzZW1vdmUiLCJ0b3VjaHN0YXJ0IiwidG91Y2htb3ZlIiwidG91Y2hsZWF2ZSIsInRvdWNoZW5kIiwidG91Y2hjYW5jZWwiXS5mb3JFYWNoKChmdW5jdGlvbih0KXtpLkVsZW1lbnQucHJvdG90eXBlW3RdPWZ1bmN0aW9uKGUpe3JldHVybiBpLm9uKHRoaXMubm9kZSx0LGUpLHRoaXN9fSkpLGkubGlzdGVuZXJzPVtdLGkuaGFuZGxlck1hcD1bXSxpLmxpc3RlbmVySWQ9MCxpLm9uPWZ1bmN0aW9uKHQsZSxzLGEsbil7dmFyIHI9cy5iaW5kKGF8fHQuaW5zdGFuY2V8fHQpLG89KGkuaGFuZGxlck1hcC5pbmRleE9mKHQpKzF8fGkuaGFuZGxlck1hcC5wdXNoKHQpKS0xLGw9ZS5zcGxpdCgiLiIpWzBdLGM9ZS5zcGxpdCgiLiIpWzFdfHwiKiI7aS5saXN0ZW5lcnNbb109aS5saXN0ZW5lcnNbb118fHt9LGkubGlzdGVuZXJzW29dW2xdPWkubGlzdGVuZXJzW29dW2xdfHx7fSxpLmxpc3RlbmVyc1tvXVtsXVtjXT1pLmxpc3RlbmVyc1tvXVtsXVtjXXx8e30scy5fc3ZnanNMaXN0ZW5lcklkfHwocy5fc3ZnanNMaXN0ZW5lcklkPSsraS5saXN0ZW5lcklkKSxpLmxpc3RlbmVyc1tvXVtsXVtjXVtzLl9zdmdqc0xpc3RlbmVySWRdPXIsdC5hZGRFdmVudExpc3RlbmVyKGwscixufHx7cGFzc2l2ZTohMH0pfSxpLm9mZj1mdW5jdGlvbih0LGUscyl7dmFyIGE9aS5oYW5kbGVyTWFwLmluZGV4T2YodCksbj1lJiZlLnNwbGl0KCIuIilbMF0scj1lJiZlLnNwbGl0KCIuIilbMV0sbz0iIjtpZigtMSE9YSlpZihzKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgcyYmKHM9cy5fc3ZnanNMaXN0ZW5lcklkKSwhcylyZXR1cm47aS5saXN0ZW5lcnNbYV1bbl0mJmkubGlzdGVuZXJzW2FdW25dW3J8fCIqIl0mJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIobixpLmxpc3RlbmVyc1thXVtuXVtyfHwiKiJdW3NdLCExKSxkZWxldGUgaS5saXN0ZW5lcnNbYV1bbl1bcnx8IioiXVtzXSl9ZWxzZSBpZihyJiZuKXtpZihpLmxpc3RlbmVyc1thXVtuXSYmaS5saXN0ZW5lcnNbYV1bbl1bcl0pe2Zvcih2YXIgbCBpbiBpLmxpc3RlbmVyc1thXVtuXVtyXSlpLm9mZih0LFtuLHJdLmpvaW4oIi4iKSxsKTtkZWxldGUgaS5saXN0ZW5lcnNbYV1bbl1bcl19fWVsc2UgaWYocilmb3IodmFyIGMgaW4gaS5saXN0ZW5lcnNbYV0pZm9yKHZhciBvIGluIGkubGlzdGVuZXJzW2FdW2NdKXI9PT1vJiZpLm9mZih0LFtjLHJdLmpvaW4oIi4iKSk7ZWxzZSBpZihuKXtpZihpLmxpc3RlbmVyc1thXVtuXSl7Zm9yKHZhciBvIGluIGkubGlzdGVuZXJzW2FdW25dKWkub2ZmKHQsW24sb10uam9pbigiLiIpKTtkZWxldGUgaS5saXN0ZW5lcnNbYV1bbl19fWVsc2V7Zm9yKHZhciBjIGluIGkubGlzdGVuZXJzW2FdKWkub2ZmKHQsYyk7ZGVsZXRlIGkubGlzdGVuZXJzW2FdLGRlbGV0ZSBpLmhhbmRsZXJNYXBbYV19fSxpLmV4dGVuZChpLkVsZW1lbnQse29uOmZ1bmN0aW9uKHQsZSxzLGEpe3JldHVybiBpLm9uKHRoaXMubm9kZSx0LGUscyxhKSx0aGlzfSxvZmY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5vZmYodGhpcy5ub2RlLHQsZSksdGhpc30sZmlyZTpmdW5jdGlvbihlLHMpe3JldHVybiBlIGluc3RhbmNlb2YgdC5FdmVudD90aGlzLm5vZGUuZGlzcGF0Y2hFdmVudChlKTp0aGlzLm5vZGUuZGlzcGF0Y2hFdmVudChlPW5ldyBpLkN1c3RvbUV2ZW50KGUse2RldGFpbDpzLGNhbmNlbGFibGU6ITB9KSksdGhpcy5fZXZlbnQ9ZSx0aGlzfSxldmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ldmVudH19KSxpLkRlZnM9aS5pbnZlbnQoe2NyZWF0ZToiZGVmcyIsaW5oZXJpdDppLkNvbnRhaW5lcn0pLGkuRz1pLmludmVudCh7Y3JlYXRlOiJnIixpbmhlcml0OmkuQ29udGFpbmVyLGV4dGVuZDp7eDpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLnRyYW5zZm9ybSgieCIpOnRoaXMudHJhbnNmb3JtKHt4OnQtdGhpcy54KCl9LCEwKX19LGNvbnN0cnVjdDp7Z3JvdXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXQobmV3IGkuRyl9fX0pLGkuRG9jPWkuaW52ZW50KHtjcmVhdGU6ZnVuY3Rpb24odCl7dCYmKCJzdmciPT0odD0ic3RyaW5nIj09dHlwZW9mIHQ/ZS5nZXRFbGVtZW50QnlJZCh0KTp0KS5ub2RlTmFtZT90aGlzLmNvbnN0cnVjdG9yLmNhbGwodGhpcyx0KToodGhpcy5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMsaS5jcmVhdGUoInN2ZyIpKSx0LmFwcGVuZENoaWxkKHRoaXMubm9kZSksdGhpcy5zaXplKCIxMDAlIiwiMTAwJSIpKSx0aGlzLm5hbWVzcGFjZSgpLmRlZnMoKSl9LGluaGVyaXQ6aS5Db250YWluZXIsZXh0ZW5kOntuYW1lc3BhY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdHRyKHt4bWxuczppLm5zLHZlcnNpb246IjEuMSJ9KS5hdHRyKCJ4bWxuczp4bGluayIsaS54bGluayxpLnhtbG5zKS5hdHRyKCJ4bWxuczpzdmdqcyIsaS5zdmdqcyxpLnhtbG5zKX0sZGVmczpmdW5jdGlvbigpe3ZhciB0O3JldHVybiB0aGlzLl9kZWZzfHwoKHQ9dGhpcy5ub2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkZWZzIilbMF0pP3RoaXMuX2RlZnM9aS5hZG9wdCh0KTp0aGlzLl9kZWZzPW5ldyBpLkRlZnMsdGhpcy5ub2RlLmFwcGVuZENoaWxkKHRoaXMuX2RlZnMubm9kZSkpLHRoaXMuX2RlZnN9LHBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUucGFyZW50Tm9kZSYmIiNkb2N1bWVudCIhPXRoaXMubm9kZS5wYXJlbnROb2RlLm5vZGVOYW1lP3RoaXMubm9kZS5wYXJlbnROb2RlOm51bGx9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudCgpJiZ0aGlzLnBhcmVudCgpLnJlbW92ZUNoaWxkKHRoaXMubm9kZSksdGhpc30sY2xlYXI6ZnVuY3Rpb24oKXtmb3IoO3RoaXMubm9kZS5oYXNDaGlsZE5vZGVzKCk7KXRoaXMubm9kZS5yZW1vdmVDaGlsZCh0aGlzLm5vZGUubGFzdENoaWxkKTtyZXR1cm4gZGVsZXRlIHRoaXMuX2RlZnMsaS5wYXJzZXIuZHJhdyYmIWkucGFyc2VyLmRyYXcucGFyZW50Tm9kZSYmdGhpcy5ub2RlLmFwcGVuZENoaWxkKGkucGFyc2VyLmRyYXcpLHRoaXN9LGNsb25lOmZ1bmN0aW9uKHQpe3RoaXMud3JpdGVEYXRhVG9Eb20oKTt2YXIgZT10aGlzLm5vZGUsaT1tKGUuY2xvbmVOb2RlKCEwKSk7cmV0dXJuIHQ/KHQubm9kZXx8dCkuYXBwZW5kQ2hpbGQoaS5ub2RlKTplLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGkubm9kZSxlLm5leHRTaWJsaW5nKSxpfX19KSxpLmV4dGVuZChpLkVsZW1lbnQse30pLGkuR3JhZGllbnQ9aS5pbnZlbnQoe2NyZWF0ZTpmdW5jdGlvbih0KXt0aGlzLmNvbnN0cnVjdG9yLmNhbGwodGhpcyxpLmNyZWF0ZSh0KyJHcmFkaWVudCIpKSx0aGlzLnR5cGU9dH0saW5oZXJpdDppLkNvbnRhaW5lcixleHRlbmQ6e2F0OmZ1bmN0aW9uKHQsZSxzKXtyZXR1cm4gdGhpcy5wdXQobmV3IGkuU3RvcCkudXBkYXRlKHQsZSxzKX0sdXBkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsZWFyKCksImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY2FsbCh0aGlzLHRoaXMpLHRoaXN9LGZpbGw6ZnVuY3Rpb24oKXtyZXR1cm4idXJsKCMiK3RoaXMuaWQoKSsiKSJ9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsbCgpfSxhdHRyOmZ1bmN0aW9uKHQsZSxzKXtyZXR1cm4idHJhbnNmb3JtIj09dCYmKHQ9ImdyYWRpZW50VHJhbnNmb3JtIiksaS5Db250YWluZXIucHJvdG90eXBlLmF0dHIuY2FsbCh0aGlzLHQsZSxzKX19LGNvbnN0cnVjdDp7Z3JhZGllbnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5kZWZzKCkuZ3JhZGllbnQodCxlKX19fSksaS5leHRlbmQoaS5HcmFkaWVudCxpLkZYLHtmcm9tOmZ1bmN0aW9uKHQsZSl7cmV0dXJuInJhZGlhbCI9PSh0aGlzLl90YXJnZXR8fHRoaXMpLnR5cGU/dGhpcy5hdHRyKHtmeDpuZXcgaS5OdW1iZXIodCksZnk6bmV3IGkuTnVtYmVyKGUpfSk6dGhpcy5hdHRyKHt4MTpuZXcgaS5OdW1iZXIodCkseTE6bmV3IGkuTnVtYmVyKGUpfSl9LHRvOmZ1bmN0aW9uKHQsZSl7cmV0dXJuInJhZGlhbCI9PSh0aGlzLl90YXJnZXR8fHRoaXMpLnR5cGU/dGhpcy5hdHRyKHtjeDpuZXcgaS5OdW1iZXIodCksY3k6bmV3IGkuTnVtYmVyKGUpfSk6dGhpcy5hdHRyKHt4MjpuZXcgaS5OdW1iZXIodCkseTI6bmV3IGkuTnVtYmVyKGUpfSl9fSksaS5leHRlbmQoaS5EZWZzLHtncmFkaWVudDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnB1dChuZXcgaS5HcmFkaWVudCh0KSkudXBkYXRlKGUpfX0pLGkuU3RvcD1pLmludmVudCh7Y3JlYXRlOiJzdG9wIixpbmhlcml0OmkuRWxlbWVudCxleHRlbmQ6e3VwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4oIm51bWJlciI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgaS5OdW1iZXIpJiYodD17b2Zmc2V0OmFyZ3VtZW50c1swXSxjb2xvcjphcmd1bWVudHNbMV0sb3BhY2l0eTphcmd1bWVudHNbMl19KSxudWxsIT10Lm9wYWNpdHkmJnRoaXMuYXR0cigic3RvcC1vcGFjaXR5Iix0Lm9wYWNpdHkpLG51bGwhPXQuY29sb3ImJnRoaXMuYXR0cigic3RvcC1jb2xvciIsdC5jb2xvciksbnVsbCE9dC5vZmZzZXQmJnRoaXMuYXR0cigib2Zmc2V0IixuZXcgaS5OdW1iZXIodC5vZmZzZXQpKSx0aGlzfX19KSxpLlBhdHRlcm49aS5pbnZlbnQoe2NyZWF0ZToicGF0dGVybiIsaW5oZXJpdDppLkNvbnRhaW5lcixleHRlbmQ6e2ZpbGw6ZnVuY3Rpb24oKXtyZXR1cm4idXJsKCMiK3RoaXMuaWQoKSsiKSJ9LHVwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbGVhcigpLCJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNhbGwodGhpcyx0aGlzKSx0aGlzfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGwoKX0sYXR0cjpmdW5jdGlvbih0LGUscyl7cmV0dXJuInRyYW5zZm9ybSI9PXQmJih0PSJwYXR0ZXJuVHJhbnNmb3JtIiksaS5Db250YWluZXIucHJvdG90eXBlLmF0dHIuY2FsbCh0aGlzLHQsZSxzKX19LGNvbnN0cnVjdDp7cGF0dGVybjpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHRoaXMuZGVmcygpLnBhdHRlcm4odCxlLGkpfX19KSxpLmV4dGVuZChpLkRlZnMse3BhdHRlcm46ZnVuY3Rpb24odCxlLHMpe3JldHVybiB0aGlzLnB1dChuZXcgaS5QYXR0ZXJuKS51cGRhdGUocykuYXR0cih7eDowLHk6MCx3aWR0aDp0LGhlaWdodDplLHBhdHRlcm5Vbml0czoidXNlclNwYWNlT25Vc2UifSl9fSksaS5TaGFwZT1pLmludmVudCh7Y3JlYXRlOmZ1bmN0aW9uKHQpe3RoaXMuY29uc3RydWN0b3IuY2FsbCh0aGlzLHQpfSxpbmhlcml0OmkuRWxlbWVudH0pLGkuU3ltYm9sPWkuaW52ZW50KHtjcmVhdGU6InN5bWJvbCIsaW5oZXJpdDppLkNvbnRhaW5lcixjb25zdHJ1Y3Q6e3N5bWJvbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1dChuZXcgaS5TeW1ib2wpfX19KSxpLlVzZT1pLmludmVudCh7Y3JlYXRlOiJ1c2UiLGluaGVyaXQ6aS5TaGFwZSxleHRlbmQ6e2VsZW1lbnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5hdHRyKCJocmVmIiwoZXx8IiIpKyIjIit0LGkueGxpbmspfX0sY29uc3RydWN0Ont1c2U6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5wdXQobmV3IGkuVXNlKS5lbGVtZW50KHQsZSl9fX0pLGkuUmVjdD1pLmludmVudCh7Y3JlYXRlOiJyZWN0Iixpbmhlcml0OmkuU2hhcGUsY29uc3RydWN0OntyZWN0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMucHV0KG5ldyBpLlJlY3QpLnNpemUodCxlKX19fSksaS5DaXJjbGU9aS5pbnZlbnQoe2NyZWF0ZToiY2lyY2xlIixpbmhlcml0OmkuU2hhcGUsY29uc3RydWN0OntjaXJjbGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucHV0KG5ldyBpLkNpcmNsZSkucngobmV3IGkuTnVtYmVyKHQpLmRpdmlkZSgyKSkubW92ZSgwLDApfX19KSxpLmV4dGVuZChpLkNpcmNsZSxpLkZYLHtyeDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hdHRyKCJyIix0KX0scnk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucngodCl9fSksaS5FbGxpcHNlPWkuaW52ZW50KHtjcmVhdGU6ImVsbGlwc2UiLGluaGVyaXQ6aS5TaGFwZSxjb25zdHJ1Y3Q6e2VsbGlwc2U6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5wdXQobmV3IGkuRWxsaXBzZSkuc2l6ZSh0LGUpLm1vdmUoMCwwKX19fSksaS5leHRlbmQoaS5FbGxpcHNlLGkuUmVjdCxpLkZYLHtyeDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hdHRyKCJyeCIsdCl9LHJ5OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmF0dHIoInJ5Iix0KX19KSxpLmV4dGVuZChpLkNpcmNsZSxpLkVsbGlwc2Use3g6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5jeCgpLXRoaXMucngoKTp0aGlzLmN4KHQrdGhpcy5yeCgpKX0seTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLmN5KCktdGhpcy5yeSgpOnRoaXMuY3kodCt0aGlzLnJ5KCkpfSxjeDpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLmF0dHIoImN4Iik6dGhpcy5hdHRyKCJjeCIsdCl9LGN5OmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuYXR0cigiY3kiKTp0aGlzLmF0dHIoImN5Iix0KX0sd2lkdGg6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/Mip0aGlzLnJ4KCk6dGhpcy5yeChuZXcgaS5OdW1iZXIodCkuZGl2aWRlKDIpKX0saGVpZ2h0OmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10PzIqdGhpcy5yeSgpOnRoaXMucnkobmV3IGkuTnVtYmVyKHQpLmRpdmlkZSgyKSl9LHNpemU6ZnVuY3Rpb24odCxlKXt2YXIgcz1wKHRoaXMsdCxlKTtyZXR1cm4gdGhpcy5yeChuZXcgaS5OdW1iZXIocy53aWR0aCkuZGl2aWRlKDIpKS5yeShuZXcgaS5OdW1iZXIocy5oZWlnaHQpLmRpdmlkZSgyKSl9fSksaS5MaW5lPWkuaW52ZW50KHtjcmVhdGU6ImxpbmUiLGluaGVyaXQ6aS5TaGFwZSxleHRlbmQ6e2FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpLlBvaW50QXJyYXkoW1t0aGlzLmF0dHIoIngxIiksdGhpcy5hdHRyKCJ5MSIpXSxbdGhpcy5hdHRyKCJ4MiIpLHRoaXMuYXR0cigieTIiKV1dKX0scGxvdDpmdW5jdGlvbih0LGUscyxhKXtyZXR1cm4gbnVsbD09dD90aGlzLmFycmF5KCk6KHQ9dm9pZCAwIT09ZT97eDE6dCx5MTplLHgyOnMseTI6YX06bmV3IGkuUG9pbnRBcnJheSh0KS50b0xpbmUoKSx0aGlzLmF0dHIodCkpfSxtb3ZlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYXR0cih0aGlzLmFycmF5KCkubW92ZSh0LGUpLnRvTGluZSgpKX0sc2l6ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXAodGhpcyx0LGUpO3JldHVybiB0aGlzLmF0dHIodGhpcy5hcnJheSgpLnNpemUoaS53aWR0aCxpLmhlaWdodCkudG9MaW5lKCkpfX0sY29uc3RydWN0OntsaW5lOmZ1bmN0aW9uKHQsZSxzLGEpe3JldHVybiBpLkxpbmUucHJvdG90eXBlLnBsb3QuYXBwbHkodGhpcy5wdXQobmV3IGkuTGluZSksbnVsbCE9dD9bdCxlLHMsYV06WzAsMCwwLDBdKX19fSksaS5Qb2x5bGluZT1pLmludmVudCh7Y3JlYXRlOiJwb2x5bGluZSIsaW5oZXJpdDppLlNoYXBlLGNvbnN0cnVjdDp7cG9seWxpbmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucHV0KG5ldyBpLlBvbHlsaW5lKS5wbG90KHR8fG5ldyBpLlBvaW50QXJyYXkpfX19KSxpLlBvbHlnb249aS5pbnZlbnQoe2NyZWF0ZToicG9seWdvbiIsaW5oZXJpdDppLlNoYXBlLGNvbnN0cnVjdDp7cG9seWdvbjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wdXQobmV3IGkuUG9seWdvbikucGxvdCh0fHxuZXcgaS5Qb2ludEFycmF5KX19fSksaS5leHRlbmQoaS5Qb2x5bGluZSxpLlBvbHlnb24se2FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FycmF5fHwodGhpcy5fYXJyYXk9bmV3IGkuUG9pbnRBcnJheSh0aGlzLmF0dHIoInBvaW50cyIpKSl9LHBsb3Q6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5hcnJheSgpOnRoaXMuY2xlYXIoKS5hdHRyKCJwb2ludHMiLCJzdHJpbmciPT10eXBlb2YgdD90OnRoaXMuX2FycmF5PW5ldyBpLlBvaW50QXJyYXkodCkpfSxjbGVhcjpmdW5jdGlvbigpe3JldHVybiBkZWxldGUgdGhpcy5fYXJyYXksdGhpc30sbW92ZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmF0dHIoInBvaW50cyIsdGhpcy5hcnJheSgpLm1vdmUodCxlKSl9LHNpemU6ZnVuY3Rpb24odCxlKXt2YXIgaT1wKHRoaXMsdCxlKTtyZXR1cm4gdGhpcy5hdHRyKCJwb2ludHMiLHRoaXMuYXJyYXkoKS5zaXplKGkud2lkdGgsaS5oZWlnaHQpKX19KSxpLmV4dGVuZChpLkxpbmUsaS5Qb2x5bGluZSxpLlBvbHlnb24se21vcnBoQXJyYXk6aS5Qb2ludEFycmF5LHg6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5iYm94KCkueDp0aGlzLm1vdmUodCx0aGlzLmJib3goKS55KX0seTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD90aGlzLmJib3goKS55OnRoaXMubW92ZSh0aGlzLmJib3goKS54LHQpfSx3aWR0aDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmJib3goKTtyZXR1cm4gbnVsbD09dD9lLndpZHRoOnRoaXMuc2l6ZSh0LGUuaGVpZ2h0KX0saGVpZ2h0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuYmJveCgpO3JldHVybiBudWxsPT10P2UuaGVpZ2h0OnRoaXMuc2l6ZShlLndpZHRoLHQpfX0pLGkuUGF0aD1pLmludmVudCh7Y3JlYXRlOiJwYXRoIixpbmhlcml0OmkuU2hhcGUsZXh0ZW5kOnttb3JwaEFycmF5OmkuUGF0aEFycmF5LGFycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FycmF5fHwodGhpcy5fYXJyYXk9bmV3IGkuUGF0aEFycmF5KHRoaXMuYXR0cigiZCIpKSl9LHBsb3Q6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5hcnJheSgpOnRoaXMuY2xlYXIoKS5hdHRyKCJkIiwic3RyaW5nIj09dHlwZW9mIHQ/dDp0aGlzLl9hcnJheT1uZXcgaS5QYXRoQXJyYXkodCkpfSxjbGVhcjpmdW5jdGlvbigpe3JldHVybiBkZWxldGUgdGhpcy5fYXJyYXksdGhpc319LGNvbnN0cnVjdDp7cGF0aDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wdXQobmV3IGkuUGF0aCkucGxvdCh0fHxuZXcgaS5QYXRoQXJyYXkpfX19KSxpLkltYWdlPWkuaW52ZW50KHtjcmVhdGU6ImltYWdlIixpbmhlcml0OmkuU2hhcGUsZXh0ZW5kOntsb2FkOmZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiB0aGlzO3ZhciBzPXRoaXMsYT1uZXcgdC5JbWFnZTtyZXR1cm4gaS5vbihhLCJsb2FkIiwoZnVuY3Rpb24oKXtpLm9mZihhKTt2YXIgdD1zLnBhcmVudChpLlBhdHRlcm4pO251bGwhPT10JiYoMD09cy53aWR0aCgpJiYwPT1zLmhlaWdodCgpJiZzLnNpemUoYS53aWR0aCxhLmhlaWdodCksdCYmMD09dC53aWR0aCgpJiYwPT10LmhlaWdodCgpJiZ0LnNpemUocy53aWR0aCgpLHMuaGVpZ2h0KCkpLCJmdW5jdGlvbiI9PXR5cGVvZiBzLl9sb2FkZWQmJnMuX2xvYWRlZC5jYWxsKHMse3dpZHRoOmEud2lkdGgsaGVpZ2h0OmEuaGVpZ2h0LHJhdGlvOmEud2lkdGgvYS5oZWlnaHQsdXJsOmV9KSl9KSksaS5vbihhLCJlcnJvciIsKGZ1bmN0aW9uKHQpe2kub2ZmKGEpLCJmdW5jdGlvbiI9PXR5cGVvZiBzLl9lcnJvciYmcy5fZXJyb3IuY2FsbChzLHQpfSkpLHRoaXMuYXR0cigiaHJlZiIsYS5zcmM9dGhpcy5zcmM9ZSxpLnhsaW5rKX0sbG9hZGVkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9sb2FkZWQ9dCx0aGlzfSxlcnJvcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZXJyb3I9dCx0aGlzfX0sY29uc3RydWN0OntpbWFnZTpmdW5jdGlvbih0LGUscyl7cmV0dXJuIHRoaXMucHV0KG5ldyBpLkltYWdlKS5sb2FkKHQpLnNpemUoZXx8MCxzfHxlfHwwKX19fSksaS5UZXh0PWkuaW52ZW50KHtjcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLmNvbnN0cnVjdG9yLmNhbGwodGhpcyxpLmNyZWF0ZSgidGV4dCIpKSx0aGlzLmRvbS5sZWFkaW5nPW5ldyBpLk51bWJlcigxLjMpLHRoaXMuX3JlYnVpbGQ9ITAsdGhpcy5fYnVpbGQ9ITEsdGhpcy5hdHRyKCJmb250LWZhbWlseSIsaS5kZWZhdWx0cy5hdHRyc1siZm9udC1mYW1pbHkiXSl9LGluaGVyaXQ6aS5TaGFwZSxleHRlbmQ6e3g6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5hdHRyKCJ4Iik6dGhpcy5hdHRyKCJ4Iix0KX0sdGV4dDpmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXt0PSIiO2Zvcih2YXIgZT10aGlzLm5vZGUuY2hpbGROb2RlcyxzPTAsYT1lLmxlbmd0aDtzPGE7KytzKTAhPXMmJjMhPWVbc10ubm9kZVR5cGUmJjE9PWkuYWRvcHQoZVtzXSkuZG9tLm5ld0xpbmVkJiYodCs9IlxuIiksdCs9ZVtzXS50ZXh0Q29udGVudDtyZXR1cm4gdH1pZih0aGlzLmNsZWFyKCkuYnVpbGQoITApLCJmdW5jdGlvbiI9PXR5cGVvZiB0KXQuY2FsbCh0aGlzLHRoaXMpO2Vsc2V7cz0wO2Zvcih2YXIgbj0odD10LnNwbGl0KCJcbiIpKS5sZW5ndGg7czxuO3MrKyl0aGlzLnRzcGFuKHRbc10pLm5ld0xpbmUoKX1yZXR1cm4gdGhpcy5idWlsZCghMSkucmVidWlsZCgpfSxzaXplOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmF0dHIoImZvbnQtc2l6ZSIsdCkucmVidWlsZCgpfSxsZWFkaW5nOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuZG9tLmxlYWRpbmc6KHRoaXMuZG9tLmxlYWRpbmc9bmV3IGkuTnVtYmVyKHQpLHRoaXMucmVidWlsZCgpKX0sbGluZXM6ZnVuY3Rpb24oKXt2YXIgdD0odGhpcy50ZXh0UGF0aCYmdGhpcy50ZXh0UGF0aCgpfHx0aGlzKS5ub2RlLGU9aS51dGlscy5tYXAoaS51dGlscy5maWx0ZXJTVkdFbGVtZW50cyh0LmNoaWxkTm9kZXMpLChmdW5jdGlvbih0KXtyZXR1cm4gaS5hZG9wdCh0KX0pKTtyZXR1cm4gbmV3IGkuU2V0KGUpfSxyZWJ1aWxkOmZ1bmN0aW9uKHQpe2lmKCJib29sZWFuIj09dHlwZW9mIHQmJih0aGlzLl9yZWJ1aWxkPXQpLHRoaXMuX3JlYnVpbGQpe3ZhciBlPXRoaXMscz0wLGE9dGhpcy5kb20ubGVhZGluZypuZXcgaS5OdW1iZXIodGhpcy5hdHRyKCJmb250LXNpemUiKSk7dGhpcy5saW5lcygpLmVhY2goKGZ1bmN0aW9uKCl7dGhpcy5kb20ubmV3TGluZWQmJihlLnRleHRQYXRoKCl8fHRoaXMuYXR0cigieCIsZS5hdHRyKCJ4IikpLCJcbiI9PXRoaXMudGV4dCgpP3MrPWE6KHRoaXMuYXR0cigiZHkiLGErcykscz0wKSl9KSksdGhpcy5maXJlKCJyZWJ1aWxkIil9cmV0dXJuIHRoaXN9LGJ1aWxkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9idWlsZD0hIXQsdGhpc30sc2V0RGF0YTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kb209dCx0aGlzLmRvbS5sZWFkaW5nPW5ldyBpLk51bWJlcih0LmxlYWRpbmd8fDEuMyksdGhpc319LGNvbnN0cnVjdDp7dGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wdXQobmV3IGkuVGV4dCkudGV4dCh0KX0scGxhaW46ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucHV0KG5ldyBpLlRleHQpLnBsYWluKHQpfX19KSxpLlRzcGFuPWkuaW52ZW50KHtjcmVhdGU6InRzcGFuIixpbmhlcml0OmkuU2hhcGUsZXh0ZW5kOnt0ZXh0OmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMubm9kZS50ZXh0Q29udGVudCsodGhpcy5kb20ubmV3TGluZWQ/IlxuIjoiIik6KCJmdW5jdGlvbiI9PXR5cGVvZiB0P3QuY2FsbCh0aGlzLHRoaXMpOnRoaXMucGxhaW4odCksdGhpcyl9LGR4OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmF0dHIoImR4Iix0KX0sZHk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYXR0cigiZHkiLHQpfSxuZXdMaW5lOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wYXJlbnQoaS5UZXh0KTtyZXR1cm4gdGhpcy5kb20ubmV3TGluZWQ9ITAsdGhpcy5keSh0LmRvbS5sZWFkaW5nKnQuYXR0cigiZm9udC1zaXplIikpLmF0dHIoIngiLHQueCgpKX19fSksaS5leHRlbmQoaS5UZXh0LGkuVHNwYW4se3BsYWluOmZ1bmN0aW9uKHQpe3JldHVybiExPT09dGhpcy5fYnVpbGQmJnRoaXMuY2xlYXIoKSx0aGlzLm5vZGUuYXBwZW5kQ2hpbGQoZS5jcmVhdGVUZXh0Tm9kZSh0KSksdGhpc30sdHNwYW46ZnVuY3Rpb24odCl7dmFyIGU9KHRoaXMudGV4dFBhdGgmJnRoaXMudGV4dFBhdGgoKXx8dGhpcykubm9kZSxzPW5ldyBpLlRzcGFuO3JldHVybiExPT09dGhpcy5fYnVpbGQmJnRoaXMuY2xlYXIoKSxlLmFwcGVuZENoaWxkKHMubm9kZSkscy50ZXh0KHQpfSxjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgdD0odGhpcy50ZXh0UGF0aCYmdGhpcy50ZXh0UGF0aCgpfHx0aGlzKS5ub2RlO3QuaGFzQ2hpbGROb2RlcygpOyl0LnJlbW92ZUNoaWxkKHQubGFzdENoaWxkKTtyZXR1cm4gdGhpc30sbGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRDb21wdXRlZFRleHRMZW5ndGgoKX19KSxpLlRleHRQYXRoPWkuaW52ZW50KHtjcmVhdGU6InRleHRQYXRoIixpbmhlcml0OmkuUGFyZW50LHBhcmVudDppLlRleHQsY29uc3RydWN0Onttb3JwaEFycmF5OmkuUGF0aEFycmF5LGFycmF5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50cmFjaygpO3JldHVybiB0P3QuYXJyYXkoKTpudWxsfSxwbG90OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudHJhY2soKSxpPW51bGw7cmV0dXJuIGUmJihpPWUucGxvdCh0KSksbnVsbD09dD9pOnRoaXN9LHRyYWNrOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50ZXh0UGF0aCgpO2lmKHQpcmV0dXJuIHQucmVmZXJlbmNlKCJocmVmIil9LHRleHRQYXRoOmZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlLmZpcnN0Q2hpbGQmJiJ0ZXh0UGF0aCI9PXRoaXMubm9kZS5maXJzdENoaWxkLm5vZGVOYW1lKXJldHVybiBpLmFkb3B0KHRoaXMubm9kZS5maXJzdENoaWxkKX19fSksaS5OZXN0ZWQ9aS5pbnZlbnQoe2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuY29uc3RydWN0b3IuY2FsbCh0aGlzLGkuY3JlYXRlKCJzdmciKSksdGhpcy5zdHlsZSgib3ZlcmZsb3ciLCJ2aXNpYmxlIil9LGluaGVyaXQ6aS5Db250YWluZXIsY29uc3RydWN0OntuZXN0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXQobmV3IGkuTmVzdGVkKX19fSk7dmFyIGw9e3N0cm9rZTpbImNvbG9yIiwid2lkdGgiLCJvcGFjaXR5IiwibGluZWNhcCIsImxpbmVqb2luIiwibWl0ZXJsaW1pdCIsImRhc2hhcnJheSIsImRhc2hvZmZzZXQiXSxmaWxsOlsiY29sb3IiLCJvcGFjaXR5IiwicnVsZSJdLHByZWZpeDpmdW5jdGlvbih0LGUpe3JldHVybiJjb2xvciI9PWU/dDp0KyItIitlfX07ZnVuY3Rpb24gYyh0LGUscyxhKXtyZXR1cm4gcythLnJlcGxhY2UoaS5yZWdleC5kb3RzLCIgLiIpfWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8tKC4pL2csKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUudG9VcHBlckNhc2UoKX0pKX1mdW5jdGlvbiBkKHQpe3JldHVybiB0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSl9ZnVuY3Rpb24gdSh0KXt2YXIgZT10LnRvU3RyaW5nKDE2KTtyZXR1cm4gMT09ZS5sZW5ndGg/IjAiK2U6ZX1mdW5jdGlvbiBwKHQsZSxpKXtpZihudWxsPT1lfHxudWxsPT1pKXt2YXIgcz10LmJib3goKTtudWxsPT1lP2U9cy53aWR0aC9zLmhlaWdodCppOm51bGw9PWkmJihpPXMuaGVpZ2h0L3Mud2lkdGgqZSl9cmV0dXJue3dpZHRoOmUsaGVpZ2h0Oml9fWZ1bmN0aW9uIGcodCxlLGkpe3JldHVybnt4OmUqdC5hK2kqdC5jKzAseTplKnQuYitpKnQuZCswfX1mdW5jdGlvbiBmKHQpe3JldHVybnthOnRbMF0sYjp0WzFdLGM6dFsyXSxkOnRbM10sZTp0WzRdLGY6dFs1XX19ZnVuY3Rpb24gbShlKXtmb3IodmFyIHM9ZS5jaGlsZE5vZGVzLmxlbmd0aC0xO3M+PTA7cy0tKWUuY2hpbGROb2Rlc1tzXWluc3RhbmNlb2YgdC5TVkdFbGVtZW50JiZtKGUuY2hpbGROb2Rlc1tzXSk7cmV0dXJuIGkuYWRvcHQoZSkuaWQoaS5laWQoZS5ub2RlTmFtZSkpfWZ1bmN0aW9uIHYodCl7cmV0dXJuIG51bGw9PXQueCYmKHQueD0wLHQueT0wLHQud2lkdGg9MCx0LmhlaWdodD0wKSx0Lnc9dC53aWR0aCx0Lmg9dC5oZWlnaHQsdC54Mj10LngrdC53aWR0aCx0LnkyPXQueSt0LmhlaWdodCx0LmN4PXQueCt0LndpZHRoLzIsdC5jeT10LnkrdC5oZWlnaHQvMix0fWZ1bmN0aW9uIHgodCl7cmV0dXJuIE1hdGguYWJzKHQpPjFlLTM3P3Q6MH1bImZpbGwiLCJzdHJva2UiXS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT17fTtlW3RdPWZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWUpcmV0dXJuIHRoaXM7aWYoInN0cmluZyI9PXR5cGVvZiBlfHxpLkNvbG9yLmlzUmdiKGUpfHxlJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5maWxsKXRoaXMuYXR0cih0LGUpO2Vsc2UgZm9yKHZhciBzPWxbdF0ubGVuZ3RoLTE7cz49MDtzLS0pbnVsbCE9ZVtsW3RdW3NdXSYmdGhpcy5hdHRyKGwucHJlZml4KHQsbFt0XVtzXSksZVtsW3RdW3NdXSk7cmV0dXJuIHRoaXN9LGkuZXh0ZW5kKGkuRWxlbWVudCxpLkZYLGUpfSkpLGkuZXh0ZW5kKGkuRWxlbWVudCxpLkZYLHt0cmFuc2xhdGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0oe3g6dCx5OmV9KX0sbWF0cml4OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmF0dHIoInRyYW5zZm9ybSIsbmV3IGkuTWF0cml4KDY9PWFyZ3VtZW50cy5sZW5ndGg/W10uc2xpY2UuY2FsbChhcmd1bWVudHMpOnQpKX0sb3BhY2l0eTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hdHRyKCJvcGFjaXR5Iix0KX0sZHg6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueChuZXcgaS5OdW1iZXIodCkucGx1cyh0aGlzIGluc3RhbmNlb2YgaS5GWD8wOnRoaXMueCgpKSwhMCl9LGR5OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnkobmV3IGkuTnVtYmVyKHQpLnBsdXModGhpcyBpbnN0YW5jZW9mIGkuRlg/MDp0aGlzLnkoKSksITApfX0pLGkuZXh0ZW5kKGkuUGF0aCx7bGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5nZXRUb3RhbExlbmd0aCgpfSxwb2ludEF0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuZ2V0UG9pbnRBdExlbmd0aCh0KX19KSxpLlNldD1pLmludmVudCh7Y3JlYXRlOmZ1bmN0aW9uKHQpe0FycmF5LmlzQXJyYXkodCk/dGhpcy5tZW1iZXJzPXQ6dGhpcy5jbGVhcigpfSxleHRlbmQ6e2FkZDpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyksZT0wLGk9dC5sZW5ndGg7ZTxpO2UrKyl0aGlzLm1lbWJlcnMucHVzaCh0W2VdKTtyZXR1cm4gdGhpc30scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW5kZXgodCk7cmV0dXJuIGU+LTEmJnRoaXMubWVtYmVycy5zcGxpY2UoZSwxKSx0aGlzfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLGk9dGhpcy5tZW1iZXJzLmxlbmd0aDtlPGk7ZSsrKXQuYXBwbHkodGhpcy5tZW1iZXJzW2VdLFtlLHRoaXMubWVtYmVyc10pO3JldHVybiB0aGlzfSxjbGVhcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1lbWJlcnM9W10sdGhpc30sbGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVtYmVycy5sZW5ndGh9LGhhczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbmRleCh0KT49MH0saW5kZXg6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWVtYmVycy5pbmRleE9mKHQpfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWVtYmVyc1t0XX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQodGhpcy5tZW1iZXJzLmxlbmd0aC0xKX0sdmFsdWVPZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1lbWJlcnN9fSxjb25zdHJ1Y3Q6e3NldDpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGkuU2V0KHQpfX19KSxpLkZYLlNldD1pLmludmVudCh7Y3JlYXRlOmZ1bmN0aW9uKHQpe3RoaXMuc2V0PXR9fSksaS5TZXQuaW5oZXJpdD1mdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiBpLlNoYXBlLnByb3RvdHlwZSkiZnVuY3Rpb24iPT10eXBlb2YgaS5TaGFwZS5wcm90b3R5cGVbZV0mJiJmdW5jdGlvbiIhPXR5cGVvZiBpLlNldC5wcm90b3R5cGVbZV0mJnQucHVzaChlKTtmb3IodmFyIGUgaW4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtpLlNldC5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXtmb3IodmFyIGU9MCxzPXRoaXMubWVtYmVycy5sZW5ndGg7ZTxzO2UrKyl0aGlzLm1lbWJlcnNbZV0mJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm1lbWJlcnNbZV1bdF0mJnRoaXMubWVtYmVyc1tlXVt0XS5hcHBseSh0aGlzLm1lbWJlcnNbZV0sYXJndW1lbnRzKTtyZXR1cm4iYW5pbWF0ZSI9PXQ/dGhpcy5meHx8KHRoaXMuZng9bmV3IGkuRlguU2V0KHRoaXMpKTp0aGlzfX0pKSx0PVtdLGkuRlgucHJvdG90eXBlKSJmdW5jdGlvbiI9PXR5cGVvZiBpLkZYLnByb3RvdHlwZVtlXSYmImZ1bmN0aW9uIiE9dHlwZW9mIGkuRlguU2V0LnByb3RvdHlwZVtlXSYmdC5wdXNoKGUpO3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7aS5GWC5TZXQucHJvdG90eXBlW3RdPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAsaT10aGlzLnNldC5tZW1iZXJzLmxlbmd0aDtlPGk7ZSsrKXRoaXMuc2V0Lm1lbWJlcnNbZV0uZnhbdF0uYXBwbHkodGhpcy5zZXQubWVtYmVyc1tlXS5meCxhcmd1bWVudHMpO3JldHVybiB0aGlzfX0pKX0saS5leHRlbmQoaS5FbGVtZW50LHt9KSxpLmV4dGVuZChpLkVsZW1lbnQse3JlbWVtYmVyOmZ1bmN0aW9uKHQsZSl7aWYoIm9iamVjdCI9PT1yKGFyZ3VtZW50c1swXSkpZm9yKHZhciBpIGluIHQpdGhpcy5yZW1lbWJlcihpLHRbaV0pO2Vsc2V7aWYoMT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5tZW1vcnkoKVt0XTt0aGlzLm1lbW9yeSgpW3RdPWV9cmV0dXJuIHRoaXN9LGZvcmdldDpmdW5jdGlvbigpe2lmKDA9PWFyZ3VtZW50cy5sZW5ndGgpdGhpcy5fbWVtb3J5PXt9O2Vsc2UgZm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgtMTt0Pj0wO3QtLSlkZWxldGUgdGhpcy5tZW1vcnkoKVthcmd1bWVudHNbdF1dO3JldHVybiB0aGlzfSxtZW1vcnk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWVtb3J5fHwodGhpcy5fbWVtb3J5PXt9KX19KSxpLmdldD1mdW5jdGlvbih0KXt2YXIgcz1lLmdldEVsZW1lbnRCeUlkKGZ1bmN0aW9uKHQpe3ZhciBlPSh0fHwiIikudG9TdHJpbmcoKS5tYXRjaChpLnJlZ2V4LnJlZmVyZW5jZSk7aWYoZSlyZXR1cm4gZVsxXX0odCl8fHQpO3JldHVybiBpLmFkb3B0KHMpfSxpLnNlbGVjdD1mdW5jdGlvbih0LHMpe3JldHVybiBuZXcgaS5TZXQoaS51dGlscy5tYXAoKHN8fGUpLnF1ZXJ5U2VsZWN0b3JBbGwodCksKGZ1bmN0aW9uKHQpe3JldHVybiBpLmFkb3B0KHQpfSkpKX0saS5leHRlbmQoaS5QYXJlbnQse3NlbGVjdDpmdW5jdGlvbih0KXtyZXR1cm4gaS5zZWxlY3QodCx0aGlzLm5vZGUpfX0pO3ZhciBiPSJhYmNkZWYiLnNwbGl0KCIiKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdC5DdXN0b21FdmVudCl7dmFyIHk9ZnVuY3Rpb24odCxpKXtpPWl8fHtidWJibGVzOiExLGNhbmNlbGFibGU6ITEsZGV0YWlsOnZvaWQgMH07dmFyIHM9ZS5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKTtyZXR1cm4gcy5pbml0Q3VzdG9tRXZlbnQodCxpLmJ1YmJsZXMsaS5jYW5jZWxhYmxlLGkuZGV0YWlsKSxzfTt5LnByb3RvdHlwZT10LkV2ZW50LnByb3RvdHlwZSxpLkN1c3RvbUV2ZW50PXl9ZWxzZSBpLkN1c3RvbUV2ZW50PXQuQ3VzdG9tRXZlbnQ7cmV0dXJuIGl9LHZvaWQgMCE9PShzPWZ1bmN0aW9uKCl7cmV0dXJuIE50KHp0LHp0LmRvY3VtZW50KX0uY2FsbChlLGksZSx0KSkmJih0LmV4cG9ydHM9cyksZnVuY3Rpb24oKXtTVkcuRmlsdGVyPVNWRy5pbnZlbnQoe2NyZWF0ZToiZmlsdGVyIixpbmhlcml0OlNWRy5QYXJlbnQsZXh0ZW5kOntzb3VyY2U6IlNvdXJjZUdyYXBoaWMiLHNvdXJjZUFscGhhOiJTb3VyY2VBbHBoYSIsYmFja2dyb3VuZDoiQmFja2dyb3VuZEltYWdlIixiYWNrZ3JvdW5kQWxwaGE6IkJhY2tncm91bmRBbHBoYSIsZmlsbDoiRmlsbFBhaW50IixzdHJva2U6IlN0cm9rZVBhaW50IixhdXRvU2V0SW46ITAscHV0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWRkKHQsZSksIXQuYXR0cigiaW4iKSYmdGhpcy5hdXRvU2V0SW4mJnQuYXR0cigiaW4iLHRoaXMuc291cmNlKSx0LmF0dHIoInJlc3VsdCIpfHx0LmF0dHIoInJlc3VsdCIsdCksdH0sYmxlbmQ6ZnVuY3Rpb24odCxlLGkpe3JldHVybiB0aGlzLnB1dChuZXcgU1ZHLkJsZW5kRWZmZWN0KHQsZSxpKSl9LGNvbG9yTWF0cml4OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMucHV0KG5ldyBTVkcuQ29sb3JNYXRyaXhFZmZlY3QodCxlKSl9LGNvbnZvbHZlTWF0cml4OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnB1dChuZXcgU1ZHLkNvbnZvbHZlTWF0cml4RWZmZWN0KHQpKX0sY29tcG9uZW50VHJhbnNmZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucHV0KG5ldyBTVkcuQ29tcG9uZW50VHJhbnNmZXJFZmZlY3QodCkpfSxjb21wb3NpdGU6ZnVuY3Rpb24odCxlLGkpe3JldHVybiB0aGlzLnB1dChuZXcgU1ZHLkNvbXBvc2l0ZUVmZmVjdCh0LGUsaSkpfSxmbG9vZDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnB1dChuZXcgU1ZHLkZsb29kRWZmZWN0KHQsZSkpfSxvZmZzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5wdXQobmV3IFNWRy5PZmZzZXRFZmZlY3QodCxlKSl9LGltYWdlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnB1dChuZXcgU1ZHLkltYWdlRWZmZWN0KHQpKX0sbWVyZ2U6ZnVuY3Rpb24oKXt2YXIgdD1bdm9pZCAwXTtmb3IodmFyIGUgaW4gYXJndW1lbnRzKXQucHVzaChhcmd1bWVudHNbZV0pO3JldHVybiB0aGlzLnB1dChuZXcoU1ZHLk1lcmdlRWZmZWN0LmJpbmQuYXBwbHkoU1ZHLk1lcmdlRWZmZWN0LHQpKSl9LGdhdXNzaWFuQmx1cjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnB1dChuZXcgU1ZHLkdhdXNzaWFuQmx1ckVmZmVjdCh0LGUpKX0sbW9ycGhvbG9neTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnB1dChuZXcgU1ZHLk1vcnBob2xvZ3lFZmZlY3QodCxlKSl9LGRpZmZ1c2VMaWdodGluZzpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHRoaXMucHV0KG5ldyBTVkcuRGlmZnVzZUxpZ2h0aW5nRWZmZWN0KHQsZSxpKSl9LGRpc3BsYWNlbWVudE1hcDpmdW5jdGlvbih0LGUsaSxzLGEpe3JldHVybiB0aGlzLnB1dChuZXcgU1ZHLkRpc3BsYWNlbWVudE1hcEVmZmVjdCh0LGUsaSxzLGEpKX0sc3BlY3VsYXJMaWdodGluZzpmdW5jdGlvbih0LGUsaSxzKXtyZXR1cm4gdGhpcy5wdXQobmV3IFNWRy5TcGVjdWxhckxpZ2h0aW5nRWZmZWN0KHQsZSxpLHMpKX0sdGlsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1dChuZXcgU1ZHLlRpbGVFZmZlY3QpfSx0dXJidWxlbmNlOmZ1bmN0aW9uKHQsZSxpLHMsYSl7cmV0dXJuIHRoaXMucHV0KG5ldyBTVkcuVHVyYnVsZW5jZUVmZmVjdCh0LGUsaSxzLGEpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4idXJsKCMiK3RoaXMuYXR0cigiaWQiKSsiKSJ9fX0pLFNWRy5leHRlbmQoU1ZHLkRlZnMse2ZpbHRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnB1dChuZXcgU1ZHLkZpbHRlcik7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuY2FsbChlLGUpLGV9fSksU1ZHLmV4dGVuZChTVkcuQ29udGFpbmVyLHtmaWx0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGVmcygpLmZpbHRlcih0KX19KSxTVkcuZXh0ZW5kKFNWRy5FbGVtZW50LFNWRy5HLFNWRy5OZXN0ZWQse2ZpbHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5maWx0ZXJlcj10IGluc3RhbmNlb2YgU1ZHLkVsZW1lbnQ/dDp0aGlzLmRvYygpLmZpbHRlcih0KSx0aGlzLmRvYygpJiZ0aGlzLmZpbHRlcmVyLmRvYygpIT09dGhpcy5kb2MoKSYmdGhpcy5kb2MoKS5kZWZzKCkuYWRkKHRoaXMuZmlsdGVyZXIpLHRoaXMuYXR0cigiZmlsdGVyIix0aGlzLmZpbHRlcmVyKSx0aGlzLmZpbHRlcmVyfSx1bmZpbHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5maWx0ZXJlciYmITA9PT10JiZ0aGlzLmZpbHRlcmVyLnJlbW92ZSgpLGRlbGV0ZSB0aGlzLmZpbHRlcmVyLHRoaXMuYXR0cigiZmlsdGVyIixudWxsKX19KSxTVkcuRWZmZWN0PVNWRy5pbnZlbnQoe2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuY29uc3RydWN0b3IuY2FsbCh0aGlzKX0saW5oZXJpdDpTVkcuRWxlbWVudCxleHRlbmQ6e2luOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMucGFyZW50KCkmJnRoaXMucGFyZW50KCkuc2VsZWN0KCdbcmVzdWx0PSInK3RoaXMuYXR0cigiaW4iKSsnIl0nKS5nZXQoMCl8fHRoaXMuYXR0cigiaW4iKTp0aGlzLmF0dHIoImluIix0KX0scmVzdWx0OmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMuYXR0cigicmVzdWx0Iik6dGhpcy5hdHRyKCJyZXN1bHQiLHQpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc3VsdCgpfX19KSxTVkcuUGFyZW50RWZmZWN0PVNWRy5pbnZlbnQoe2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuY29uc3RydWN0b3IuY2FsbCh0aGlzKX0saW5oZXJpdDpTVkcuUGFyZW50LGV4dGVuZDp7aW46ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5wYXJlbnQoKSYmdGhpcy5wYXJlbnQoKS5zZWxlY3QoJ1tyZXN1bHQ9IicrdGhpcy5hdHRyKCJpbiIpKyciXScpLmdldCgwKXx8dGhpcy5hdHRyKCJpbiIpOnRoaXMuYXR0cigiaW4iLHQpfSxyZXN1bHQ6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/dGhpcy5hdHRyKCJyZXN1bHQiKTp0aGlzLmF0dHIoInJlc3VsdCIsdCl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzdWx0KCl9fX0pO3ZhciB0PXtibGVuZDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnBhcmVudCgpJiZ0aGlzLnBhcmVudCgpLmJsZW5kKHRoaXMsdCxlKX0sY29sb3JNYXRyaXg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5wYXJlbnQoKSYmdGhpcy5wYXJlbnQoKS5jb2xvck1hdHJpeCh0LGUpLmluKHRoaXMpfSxjb252b2x2ZU1hdHJpeDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wYXJlbnQoKSYmdGhpcy5wYXJlbnQoKS5jb252b2x2ZU1hdHJpeCh0KS5pbih0aGlzKX0sY29tcG9uZW50VHJhbnNmZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucGFyZW50KCkmJnRoaXMucGFyZW50KCkuY29tcG9uZW50VHJhbnNmZXIodCkuaW4odGhpcyl9LGNvbXBvc2l0ZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnBhcmVudCgpJiZ0aGlzLnBhcmVudCgpLmNvbXBvc2l0ZSh0aGlzLHQsZSl9LGZsb29kOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMucGFyZW50KCkmJnRoaXMucGFyZW50KCkuZmxvb2QodCxlKX0sb2Zmc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMucGFyZW50KCkmJnRoaXMucGFyZW50KCkub2Zmc2V0KHQsZSkuaW4odGhpcyl9LGltYWdlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnBhcmVudCgpJiZ0aGlzLnBhcmVudCgpLmltYWdlKHQpfSxtZXJnZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudCgpJiZ0aGlzLnBhcmVudCgpLm1lcmdlLmFwcGx5KHRoaXMucGFyZW50KCksW3RoaXNdLmNvbmNhdChhcmd1bWVudHMpKX0sZ2F1c3NpYW5CbHVyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMucGFyZW50KCkmJnRoaXMucGFyZW50KCkuZ2F1c3NpYW5CbHVyKHQsZSkuaW4odGhpcyl9LG1vcnBob2xvZ3k6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5wYXJlbnQoKSYmdGhpcy5wYXJlbnQoKS5tb3JwaG9sb2d5KHQsZSkuaW4odGhpcyl9LGRpZmZ1c2VMaWdodGluZzpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHRoaXMucGFyZW50KCkmJnRoaXMucGFyZW50KCkuZGlmZnVzZUxpZ2h0aW5nKHQsZSxpKS5pbih0aGlzKX0sZGlzcGxhY2VtZW50TWFwOmZ1bmN0aW9uKHQsZSxpLHMpe3JldHVybiB0aGlzLnBhcmVudCgpJiZ0aGlzLnBhcmVudCgpLmRpc3BsYWNlbWVudE1hcCh0aGlzLHQsZSxpLHMpfSxzcGVjdWxhckxpZ2h0aW5nOmZ1bmN0aW9uKHQsZSxpLHMpe3JldHVybiB0aGlzLnBhcmVudCgpJiZ0aGlzLnBhcmVudCgpLnNwZWN1bGFyTGlnaHRpbmcodCxlLGkscykuaW4odGhpcyl9LHRpbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQoKSYmdGhpcy5wYXJlbnQoKS50aWxlKCkuaW4odGhpcyl9LHR1cmJ1bGVuY2U6ZnVuY3Rpb24odCxlLGkscyxhKXtyZXR1cm4gdGhpcy5wYXJlbnQoKSYmdGhpcy5wYXJlbnQoKS50dXJidWxlbmNlKHQsZSxpLHMsYSkuaW4odGhpcyl9fTtTVkcuZXh0ZW5kKFNWRy5FZmZlY3QsdCksU1ZHLmV4dGVuZChTVkcuUGFyZW50RWZmZWN0LHQpLFNWRy5DaGlsZEVmZmVjdD1TVkcuaW52ZW50KHtjcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLmNvbnN0cnVjdG9yLmNhbGwodGhpcyl9LGluaGVyaXQ6U1ZHLkVsZW1lbnQsZXh0ZW5kOntpbjpmdW5jdGlvbih0KXt0aGlzLmF0dHIoImluIix0KX19fSk7dmFyIGU9e2JsZW5kOmZ1bmN0aW9uKHQsZSxpKXt0aGlzLmF0dHIoe2luOnQsaW4yOmUsbW9kZTppfHwibm9ybWFsIn0pfSxjb2xvck1hdHJpeDpmdW5jdGlvbih0LGUpeyJtYXRyaXgiPT10JiYoZT1hKGUpKSx0aGlzLmF0dHIoe3R5cGU6dCx2YWx1ZXM6dm9pZCAwPT09ZT9udWxsOmV9KX0sY29udm9sdmVNYXRyaXg6ZnVuY3Rpb24odCl7dD1hKHQpLHRoaXMuYXR0cih7b3JkZXI6TWF0aC5zcXJ0KHQuc3BsaXQoIiAiKS5sZW5ndGgpLGtlcm5lbE1hdHJpeDp0fSl9LGNvbXBvc2l0ZTpmdW5jdGlvbih0LGUsaSl7dGhpcy5hdHRyKHtpbjp0LGluMjplLG9wZXJhdG9yOml9KX0sZmxvb2Q6ZnVuY3Rpb24odCxlKXt0aGlzLmF0dHIoImZsb29kLWNvbG9yIix0KSxudWxsIT1lJiZ0aGlzLmF0dHIoImZsb29kLW9wYWNpdHkiLGUpfSxvZmZzZXQ6ZnVuY3Rpb24odCxlKXt0aGlzLmF0dHIoe2R4OnQsZHk6ZX0pfSxpbWFnZTpmdW5jdGlvbih0KXt0aGlzLmF0dHIoImhyZWYiLHQsU1ZHLnhsaW5rKX0sZGlzcGxhY2VtZW50TWFwOmZ1bmN0aW9uKHQsZSxpLHMsYSl7dGhpcy5hdHRyKHtpbjp0LGluMjplLHNjYWxlOmkseENoYW5uZWxTZWxlY3RvcjpzLHlDaGFubmVsU2VsZWN0b3I6YX0pfSxnYXVzc2lhbkJsdXI6ZnVuY3Rpb24odCxlKXtudWxsIT10fHxudWxsIT1lP3RoaXMuYXR0cigic3RkRGV2aWF0aW9uIixuKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpKTp0aGlzLmF0dHIoInN0ZERldmlhdGlvbiIsIjAgMCIpfSxtb3JwaG9sb2d5OmZ1bmN0aW9uKHQsZSl7dGhpcy5hdHRyKHtvcGVyYXRvcjp0LHJhZGl1czplfSl9LHRpbGU6ZnVuY3Rpb24oKXt9LHR1cmJ1bGVuY2U6ZnVuY3Rpb24odCxlLGkscyxhKXt0aGlzLmF0dHIoe251bU9jdGF2ZXM6ZSxzZWVkOmksc3RpdGNoVGlsZXM6cyxiYXNlRnJlcXVlbmN5OnQsdHlwZTphfSl9fSxpPXttZXJnZTpmdW5jdGlvbigpe3ZhciB0O2lmKGFyZ3VtZW50c1swXWluc3RhbmNlb2YgU1ZHLlNldCl7dmFyIGU9dGhpczthcmd1bWVudHNbMF0uZWFjaCgoZnVuY3Rpb24odCl7dGhpcyBpbnN0YW5jZW9mIFNWRy5NZXJnZU5vZGU/ZS5wdXQodGhpcyk6KHRoaXMgaW5zdGFuY2VvZiBTVkcuRWZmZWN0fHx0aGlzIGluc3RhbmNlb2YgU1ZHLlBhcmVudEVmZmVjdCkmJmUucHV0KG5ldyBTVkcuTWVyZ2VOb2RlKHRoaXMpKX0pKX1lbHNle3Q9QXJyYXkuaXNBcnJheShhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspdFtpXWluc3RhbmNlb2YgU1ZHLk1lcmdlTm9kZT90aGlzLnB1dCh0W2ldKTp0aGlzLnB1dChuZXcgU1ZHLk1lcmdlTm9kZSh0W2ldKSl9fSxjb21wb25lbnRUcmFuc2ZlcjpmdW5jdGlvbih0KXtpZih0aGlzLnJnYj1uZXcgU1ZHLlNldCxbInIiLCJnIiwiYiIsImEiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RoaXNbdF09bmV3KFNWR1siRnVuYyIrdC50b1VwcGVyQ2FzZSgpXSkoImlkZW50aXR5IiksdGhpcy5yZ2IuYWRkKHRoaXNbdF0pLHRoaXMubm9kZS5hcHBlbmRDaGlsZCh0aGlzW3RdLm5vZGUpfS5iaW5kKHRoaXMpKSx0KWZvcih2YXIgZSBpbiB0LnJnYiYmKFsiciIsImciLCJiIl0uZm9yRWFjaChmdW5jdGlvbihlKXt0aGlzW2VdLmF0dHIodC5yZ2IpfS5iaW5kKHRoaXMpKSxkZWxldGUgdC5yZ2IpLHQpdGhpc1tlXS5hdHRyKHRbZV0pfSxkaWZmdXNlTGlnaHRpbmc6ZnVuY3Rpb24odCxlLGkpe3RoaXMuYXR0cih7c3VyZmFjZVNjYWxlOnQsZGlmZnVzZUNvbnN0YW50OmUsa2VybmVsVW5pdExlbmd0aDppfSl9LHNwZWN1bGFyTGlnaHRpbmc6ZnVuY3Rpb24odCxlLGkscyl7dGhpcy5hdHRyKHtzdXJmYWNlU2NhbGU6dCxkaWZmdXNlQ29uc3RhbnQ6ZSxzcGVjdWxhckV4cG9uZW50Omksa2VybmVsVW5pdExlbmd0aDpzfSl9fSxzPXtkaXN0YW50TGlnaHQ6ZnVuY3Rpb24odCxlKXt0aGlzLmF0dHIoe2F6aW11dGg6dCxlbGV2YXRpb246ZX0pfSxwb2ludExpZ2h0OmZ1bmN0aW9uKHQsZSxpKXt0aGlzLmF0dHIoe3g6dCx5OmUsejppfSl9LHNwb3RMaWdodDpmdW5jdGlvbih0LGUsaSxzLGEsbil7dGhpcy5hdHRyKHt4OnQseTplLHo6aSxwb2ludHNBdFg6cyxwb2ludHNBdFk6YSxwb2ludHNBdFo6bn0pfSxtZXJnZU5vZGU6ZnVuY3Rpb24odCl7dGhpcy5hdHRyKCJpbiIsdCl9fTtmdW5jdGlvbiBhKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiYodD1uZXcgU1ZHLkFycmF5KHQpKSx0LnRvU3RyaW5nKCkucmVwbGFjZSgvXlxzKy8sIiIpLnJlcGxhY2UoL1xzKyQvLCIiKS5yZXBsYWNlKC9ccysvZywiICIpfWZ1bmN0aW9uIG4odCl7aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHQ7Zm9yKHZhciBlPTAsaT10Lmxlbmd0aCxzPVtdO2U8aTtlKyspcy5wdXNoKHRbZV0pO3JldHVybiBzLmpvaW4oIiAiKX1mdW5jdGlvbiByKCl7dmFyIHQ9ZnVuY3Rpb24oKXt9O2Zvcih2YXIgZSBpbiJmdW5jdGlvbiI9PXR5cGVvZiBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aC0xXSYmKHQ9YXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGgtMV0sQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGFyZ3VtZW50cyxhcmd1bWVudHMubGVuZ3RoLTEsMSkpLGFyZ3VtZW50cylmb3IodmFyIGkgaW4gYXJndW1lbnRzW2VdKXQoYXJndW1lbnRzW2VdW2ldLGksYXJndW1lbnRzW2VdKX1bInIiLCJnIiwiYiIsImEiXS5mb3JFYWNoKChmdW5jdGlvbih0KXtzWyJGdW5jIit0LnRvVXBwZXJDYXNlKCldPWZ1bmN0aW9uKHQpe3N3aXRjaCh0aGlzLmF0dHIoInR5cGUiLHQpLHQpe2Nhc2UidGFibGUiOnRoaXMuYXR0cigidGFibGVWYWx1ZXMiLGFyZ3VtZW50c1sxXSk7YnJlYWs7Y2FzZSJsaW5lYXIiOnRoaXMuYXR0cigic2xvcGUiLGFyZ3VtZW50c1sxXSksdGhpcy5hdHRyKCJpbnRlcmNlcHQiLGFyZ3VtZW50c1syXSk7YnJlYWs7Y2FzZSJnYW1tYSI6dGhpcy5hdHRyKCJhbXBsaXR1ZGUiLGFyZ3VtZW50c1sxXSksdGhpcy5hdHRyKCJleHBvbmVudCIsYXJndW1lbnRzWzJdKSx0aGlzLmF0dHIoIm9mZnNldCIsYXJndW1lbnRzWzJdKX19fSkpLHIoZSwoZnVuY3Rpb24odCxlKXt2YXIgaT1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSk7U1ZHW2krIkVmZmVjdCJdPVNWRy5pbnZlbnQoe2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuY29uc3RydWN0b3IuY2FsbCh0aGlzLFNWRy5jcmVhdGUoImZlIitpKSksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5yZXN1bHQodGhpcy5hdHRyKCJpZCIpKyJPdXQiKX0saW5oZXJpdDpTVkcuRWZmZWN0LGV4dGVuZDp7fX0pfSkpLHIoaSwoZnVuY3Rpb24odCxlKXt2YXIgaT1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSk7U1ZHW2krIkVmZmVjdCJdPVNWRy5pbnZlbnQoe2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuY29uc3RydWN0b3IuY2FsbCh0aGlzLFNWRy5jcmVhdGUoImZlIitpKSksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5yZXN1bHQodGhpcy5hdHRyKCJpZCIpKyJPdXQiKX0saW5oZXJpdDpTVkcuUGFyZW50RWZmZWN0LGV4dGVuZDp7fX0pfSkpLHIocywoZnVuY3Rpb24odCxlKXt2YXIgaT1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSk7U1ZHW2ldPVNWRy5pbnZlbnQoe2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuY29uc3RydWN0b3IuY2FsbCh0aGlzLFNWRy5jcmVhdGUoImZlIitpKSksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGluaGVyaXQ6U1ZHLkNoaWxkRWZmZWN0LGV4dGVuZDp7fX0pfSkpLFNWRy5leHRlbmQoU1ZHLk1lcmdlRWZmZWN0LHtpbjpmdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFNWRy5NZXJnZU5vZGU/dGhpcy5hZGQodCwwKTp0aGlzLmFkZChuZXcgU1ZHLk1lcmdlTm9kZSh0KSwwKSx0aGlzfX0pLFNWRy5leHRlbmQoU1ZHLkNvbXBvc2l0ZUVmZmVjdCxTVkcuQmxlbmRFZmZlY3QsU1ZHLkRpc3BsYWNlbWVudE1hcEVmZmVjdCx7aW4yOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3RoaXMucGFyZW50KCkmJnRoaXMucGFyZW50KCkuc2VsZWN0KCdbcmVzdWx0PSInK3RoaXMuYXR0cigiaW4yIikrJyJdJykuZ2V0KDApfHx0aGlzLmF0dHIoImluMiIpOnRoaXMuYXR0cigiaW4yIix0KX19KSxTVkcuZmlsdGVyPXtzZXBpYXRvbmU6Wy4zNDMsLjY2OSwuMTE5LDAsMCwuMjQ5LC42MjYsLjEzLDAsMCwuMTcyLC4zMzQsLjExMSwwLDAsMCwwLDAsMSwwXX19LmNhbGwodm9pZCAwKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxhLG4scixvLGwsYyl7Zm9yKHZhciBoPXQuc2xpY2UoYSxufHxjKSxkPXIuc2xpY2UobyxsfHxjKSx1PTAscD17cG9zOlswLDBdLHN0YXJ0OlswLDBdfSxnPXtwb3M6WzAsMF0sc3RhcnQ6WzAsMF19O2hbdV09ZS5jYWxsKHAsaFt1XSksZFt1XT1lLmNhbGwoZyxkW3VdKSxoW3VdWzBdIT1kW3VdWzBdfHwiTSI9PWhbdV1bMF18fCJBIj09aFt1XVswXSYmKGhbdV1bNF0hPWRbdV1bNF18fGhbdV1bNV0hPWRbdV1bNV0pPyhBcnJheS5wcm90b3R5cGUuc3BsaWNlLmFwcGx5KGgsW3UsMV0uY29uY2F0KHMuY2FsbChwLGhbdV0pKSksQXJyYXkucHJvdG90eXBlLnNwbGljZS5hcHBseShkLFt1LDFdLmNvbmNhdChzLmNhbGwoZyxkW3VdKSkpKTooaFt1XT1pLmNhbGwocCxoW3VdKSxkW3VdPWkuY2FsbChnLGRbdV0pKSwrK3UhPWgubGVuZ3RofHx1IT1kLmxlbmd0aDspdT09aC5sZW5ndGgmJmgucHVzaChbIkMiLHAucG9zWzBdLHAucG9zWzFdLHAucG9zWzBdLHAucG9zWzFdLHAucG9zWzBdLHAucG9zWzFdXSksdT09ZC5sZW5ndGgmJmQucHVzaChbIkMiLGcucG9zWzBdLGcucG9zWzFdLGcucG9zWzBdLGcucG9zWzFdLGcucG9zWzBdLGcucG9zWzFdXSk7cmV0dXJue3N0YXJ0OmgsZGVzdDpkfX1mdW5jdGlvbiBlKHQpe3N3aXRjaCh0WzBdKXtjYXNlInoiOmNhc2UiWiI6dFswXT0iTCIsdFsxXT10aGlzLnN0YXJ0WzBdLHRbMl09dGhpcy5zdGFydFsxXTticmVhaztjYXNlIkgiOnRbMF09IkwiLHRbMl09dGhpcy5wb3NbMV07YnJlYWs7Y2FzZSJWIjp0WzBdPSJMIix0WzJdPXRbMV0sdFsxXT10aGlzLnBvc1swXTticmVhaztjYXNlIlQiOnRbMF09IlEiLHRbM109dFsxXSx0WzRdPXRbMl0sdFsxXT10aGlzLnJlZmxlY3Rpb25bMV0sdFsyXT10aGlzLnJlZmxlY3Rpb25bMF07YnJlYWs7Y2FzZSJTIjp0WzBdPSJDIix0WzZdPXRbNF0sdFs1XT10WzNdLHRbNF09dFsyXSx0WzNdPXRbMV0sdFsyXT10aGlzLnJlZmxlY3Rpb25bMV0sdFsxXT10aGlzLnJlZmxlY3Rpb25bMF19cmV0dXJuIHR9ZnVuY3Rpb24gaSh0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gdGhpcy5wb3M9W3RbZS0yXSx0W2UtMV1dLC0xIT0iU0NRVCIuaW5kZXhPZih0WzBdKSYmKHRoaXMucmVmbGVjdGlvbj1bMip0aGlzLnBvc1swXS10W2UtNF0sMip0aGlzLnBvc1sxXS10W2UtM11dKSx0fWZ1bmN0aW9uIHModCl7dmFyIGU9W3RdO3N3aXRjaCh0WzBdKXtjYXNlIk0iOnJldHVybiB0aGlzLnBvcz10aGlzLnN0YXJ0PVt0WzFdLHRbMl1dLGU7Y2FzZSJMIjp0WzVdPXRbM109dFsxXSx0WzZdPXRbNF09dFsyXSx0WzFdPXRoaXMucG9zWzBdLHRbMl09dGhpcy5wb3NbMV07YnJlYWs7Y2FzZSJRIjp0WzZdPXRbNF0sdFs1XT10WzNdLHRbNF09MSp0WzRdLzMrMip0WzJdLzMsdFszXT0xKnRbM10vMysyKnRbMV0vMyx0WzJdPTEqdGhpcy5wb3NbMV0vMysyKnRbMl0vMyx0WzFdPTEqdGhpcy5wb3NbMF0vMysyKnRbMV0vMzticmVhaztjYXNlIkEiOmU9ZnVuY3Rpb24odCxlKXt2YXIgaSxzLGEsbixyLG8sbCxjLGgsZCx1LHAsZyxmLG0sdix4LGIseSx3LGssUyxDLEEsRSxULEw9TWF0aC5hYnMoZVsxXSksUD1NYXRoLmFicyhlWzJdKSxNPWVbM10lMzYwLE89ZVs0XSxJPWVbNV0sRj1lWzZdLEQ9ZVs3XSx6PW5ldyBTVkcuUG9pbnQodCksTj1uZXcgU1ZHLlBvaW50KEYsRCksUj1bXTtpZigwPT09THx8MD09PVB8fHoueD09PU4ueCYmei55PT09Ti55KXJldHVybltbIkMiLHoueCx6LnksTi54LE4ueSxOLngsTi55XV07Zm9yKChzPShpPW5ldyBTVkcuUG9pbnQoKHoueC1OLngpLzIsKHoueS1OLnkpLzIpLnRyYW5zZm9ybSgobmV3IFNWRy5NYXRyaXgpLnJvdGF0ZShNKSkpLngqaS54LyhMKkwpK2kueSppLnkvKFAqUCkpPjEmJihMKj1zPU1hdGguc3FydChzKSxQKj1zKSxhPShuZXcgU1ZHLk1hdHJpeCkucm90YXRlKE0pLnNjYWxlKDEvTCwxL1ApLnJvdGF0ZSgtTSksej16LnRyYW5zZm9ybShhKSxvPShuPVsoTj1OLnRyYW5zZm9ybShhKSkueC16LngsTi55LXoueV0pWzBdKm5bMF0rblsxXSpuWzFdLHI9TWF0aC5zcXJ0KG8pLG5bMF0vPXIsblsxXS89cixsPW88ND9NYXRoLnNxcnQoMS1vLzQpOjAsTz09PUkmJihsKj0tMSksYz1uZXcgU1ZHLlBvaW50KChOLngrei54KS8yK2wqLW5bMV0sKE4ueSt6LnkpLzIrbCpuWzBdKSxoPW5ldyBTVkcuUG9pbnQoei54LWMueCx6LnktYy55KSxkPW5ldyBTVkcuUG9pbnQoTi54LWMueCxOLnktYy55KSx1PU1hdGguYWNvcyhoLngvTWF0aC5zcXJ0KGgueCpoLngraC55KmgueSkpLGgueTwwJiYodSo9LTEpLHA9TWF0aC5hY29zKGQueC9NYXRoLnNxcnQoZC54KmQueCtkLnkqZC55KSksZC55PDAmJihwKj0tMSksSSYmdT5wJiYocCs9MipNYXRoLlBJKSwhSSYmdTxwJiYocC09MipNYXRoLlBJKSx2PVtdLHg9dSxnPShwLXUpLyhmPU1hdGguY2VpbCgyKk1hdGguYWJzKHUtcCkvTWF0aC5QSSkpLG09NCpNYXRoLnRhbihnLzQpLzMsaz0wO2s8PWY7aysrKXk9TWF0aC5jb3MoeCksYj1NYXRoLnNpbih4KSx3PW5ldyBTVkcuUG9pbnQoYy54K3ksYy55K2IpLHZba109W25ldyBTVkcuUG9pbnQody54K20qYix3LnktbSp5KSx3LG5ldyBTVkcuUG9pbnQody54LW0qYix3LnkrbSp5KV0seCs9Zztmb3IodlswXVswXT12WzBdWzFdLmNsb25lKCksdlt2Lmxlbmd0aC0xXVsyXT12W3YubGVuZ3RoLTFdWzFdLmNsb25lKCksYT0obmV3IFNWRy5NYXRyaXgpLnJvdGF0ZShNKS5zY2FsZShMLFApLnJvdGF0ZSgtTSksaz0wLFM9di5sZW5ndGg7azxTO2srKyl2W2tdWzBdPXZba11bMF0udHJhbnNmb3JtKGEpLHZba11bMV09dltrXVsxXS50cmFuc2Zvcm0oYSksdltrXVsyXT12W2tdWzJdLnRyYW5zZm9ybShhKTtmb3Ioaz0xLFM9di5sZW5ndGg7azxTO2srKylDPSh3PXZbay0xXVsyXSkueCxBPXcueSxFPSh3PXZba11bMF0pLngsVD13LnksRj0odz12W2tdWzFdKS54LEQ9dy55LFIucHVzaChbIkMiLEMsQSxFLFQsRixEXSk7cmV0dXJuIFJ9KHRoaXMucG9zLHQpLHQ9ZVswXX1yZXR1cm4gdFswXT0iQyIsdGhpcy5wb3M9W3RbNV0sdFs2XV0sdGhpcy5yZWZsZWN0aW9uPVsyKnRbNV0tdFszXSwyKnRbNl0tdFs0XV0sZX1mdW5jdGlvbiBhKHQsZSl7aWYoITE9PT1lKXJldHVybiExO2Zvcih2YXIgaT1lLHM9dC5sZW5ndGg7aTxzOysraSlpZigiTSI9PXRbaV1bMF0pcmV0dXJuIGk7cmV0dXJuITF9U1ZHLmV4dGVuZChTVkcuUGF0aEFycmF5LHttb3JwaDpmdW5jdGlvbihlKXtmb3IodmFyIGk9dGhpcy52YWx1ZSxzPXRoaXMucGFyc2UoZSksbj0wLHI9MCxvPSExLGw9ITE7ITEhPT1ufHwhMSE9PXI7KXt2YXIgYztvPWEoaSwhMSE9PW4mJm4rMSksbD1hKHMsITEhPT1yJiZyKzEpLCExPT09biYmKG49MD09KGM9bmV3IFNWRy5QYXRoQXJyYXkoaC5zdGFydCkuYmJveCgpKS5oZWlnaHR8fDA9PWMud2lkdGg/aS5wdXNoKGlbMF0pLTE6aS5wdXNoKFsiTSIsYy54K2Mud2lkdGgvMixjLnkrYy5oZWlnaHQvMl0pLTEpLCExPT09ciYmKHI9MD09KGM9bmV3IFNWRy5QYXRoQXJyYXkoaC5kZXN0KS5iYm94KCkpLmhlaWdodHx8MD09Yy53aWR0aD9zLnB1c2goc1swXSktMTpzLnB1c2goWyJNIixjLngrYy53aWR0aC8yLGMueStjLmhlaWdodC8yXSktMSk7dmFyIGg9dChpLG4sbyxzLHIsbCk7aT1pLnNsaWNlKDAsbikuY29uY2F0KGguc3RhcnQsITE9PT1vP1tdOmkuc2xpY2UobykpLHM9cy5zbGljZSgwLHIpLmNvbmNhdChoLmRlc3QsITE9PT1sP1tdOnMuc2xpY2UobCkpLG49ITEhPT1vJiZuK2guc3RhcnQubGVuZ3RoLHI9ITEhPT1sJiZyK2guZGVzdC5sZW5ndGh9cmV0dXJuIHRoaXMudmFsdWU9aSx0aGlzLmRlc3RpbmF0aW9uPW5ldyBTVkcuUGF0aEFycmF5LHRoaXMuZGVzdGluYXRpb24udmFsdWU9cyx0aGlzfX0pfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0LnJlbWVtYmVyKCJfZHJhZ2dhYmxlIix0aGlzKSx0aGlzLmVsPXR9dC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbih0LGUpe3ZhciBpPXRoaXM7dGhpcy5jb25zdHJhaW50PXQsdGhpcy52YWx1ZT1lLHRoaXMuZWwub24oIm1vdXNlZG93bi5kcmFnIiwoZnVuY3Rpb24odCl7aS5zdGFydCh0KX0pKSx0aGlzLmVsLm9uKCJ0b3VjaHN0YXJ0LmRyYWciLChmdW5jdGlvbih0KXtpLnN0YXJ0KHQpfSkpfSx0LnByb3RvdHlwZS50cmFuc2Zvcm1Qb2ludD1mdW5jdGlvbih0LGUpe3ZhciBpPSh0PXR8fHdpbmRvdy5ldmVudCkuY2hhbmdlZFRvdWNoZXMmJnQuY2hhbmdlZFRvdWNoZXNbMF18fHQ7cmV0dXJuIHRoaXMucC54PWkuY2xpZW50WC0oZXx8MCksdGhpcy5wLnk9aS5jbGllbnRZLHRoaXMucC5tYXRyaXhUcmFuc2Zvcm0odGhpcy5tKX0sdC5wcm90b3R5cGUuZ2V0QkJveD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZWwuYmJveCgpO3JldHVybiB0aGlzLmVsIGluc3RhbmNlb2YgU1ZHLk5lc3RlZCYmKHQ9dGhpcy5lbC5yYm94KCkpLCh0aGlzLmVsIGluc3RhbmNlb2YgU1ZHLkd8fHRoaXMuZWwgaW5zdGFuY2VvZiBTVkcuVXNlfHx0aGlzLmVsIGluc3RhbmNlb2YgU1ZHLk5lc3RlZCkmJih0Lng9dGhpcy5lbC54KCksdC55PXRoaXMuZWwueSgpKSx0fSx0LnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbih0KXtpZigiY2xpY2siIT10LnR5cGUmJiJtb3VzZWRvd24iIT10LnR5cGUmJiJtb3VzZW1vdmUiIT10LnR5cGV8fDE9PSh0LndoaWNofHx0LmJ1dHRvbnMpKXt2YXIgZT10aGlzO2lmKHRoaXMuZWwuZmlyZSgiYmVmb3JlZHJhZyIse2V2ZW50OnQsaGFuZGxlcjp0aGlzfSksIXRoaXMuZWwuZXZlbnQoKS5kZWZhdWx0UHJldmVudGVkKXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnBhcmVudD10aGlzLnBhcmVudHx8dGhpcy5lbC5wYXJlbnQoU1ZHLk5lc3RlZCl8fHRoaXMuZWwucGFyZW50KFNWRy5Eb2MpLHRoaXMucD10aGlzLnBhcmVudC5ub2RlLmNyZWF0ZVNWR1BvaW50KCksdGhpcy5tPXRoaXMuZWwubm9kZS5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCk7dmFyIGkscz10aGlzLmdldEJCb3goKTtpZih0aGlzLmVsIGluc3RhbmNlb2YgU1ZHLlRleHQpc3dpdGNoKGk9dGhpcy5lbC5ub2RlLmdldENvbXB1dGVkVGV4dExlbmd0aCgpLHRoaXMuZWwuYXR0cigidGV4dC1hbmNob3IiKSl7Y2FzZSJtaWRkbGUiOmkvPTI7YnJlYWs7Y2FzZSJzdGFydCI6aT0wfXRoaXMuc3RhcnRQb2ludHM9e3BvaW50OnRoaXMudHJhbnNmb3JtUG9pbnQodCxpKSxib3g6cyx0cmFuc2Zvcm06dGhpcy5lbC50cmFuc2Zvcm0oKX0sU1ZHLm9uKHdpbmRvdywibW91c2Vtb3ZlLmRyYWciLChmdW5jdGlvbih0KXtlLmRyYWcodCl9KSksU1ZHLm9uKHdpbmRvdywidG91Y2htb3ZlLmRyYWciLChmdW5jdGlvbih0KXtlLmRyYWcodCl9KSksU1ZHLm9uKHdpbmRvdywibW91c2V1cC5kcmFnIiwoZnVuY3Rpb24odCl7ZS5lbmQodCl9KSksU1ZHLm9uKHdpbmRvdywidG91Y2hlbmQuZHJhZyIsKGZ1bmN0aW9uKHQpe2UuZW5kKHQpfSkpLHRoaXMuZWwuZmlyZSgiZHJhZ3N0YXJ0Iix7ZXZlbnQ6dCxwOnRoaXMuc3RhcnRQb2ludHMucG9pbnQsbTp0aGlzLm0saGFuZGxlcjp0aGlzfSl9fX0sdC5wcm90b3R5cGUuZHJhZz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldEJCb3goKSxpPXRoaXMudHJhbnNmb3JtUG9pbnQodCkscz10aGlzLnN0YXJ0UG9pbnRzLmJveC54K2kueC10aGlzLnN0YXJ0UG9pbnRzLnBvaW50LngsYT10aGlzLnN0YXJ0UG9pbnRzLmJveC55K2kueS10aGlzLnN0YXJ0UG9pbnRzLnBvaW50Lnksbj10aGlzLmNvbnN0cmFpbnQscj1pLngtdGhpcy5zdGFydFBvaW50cy5wb2ludC54LG89aS55LXRoaXMuc3RhcnRQb2ludHMucG9pbnQueTtpZih0aGlzLmVsLmZpcmUoImRyYWdtb3ZlIix7ZXZlbnQ6dCxwOmksbTp0aGlzLm0saGFuZGxlcjp0aGlzfSksdGhpcy5lbC5ldmVudCgpLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuIGk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pe3ZhciBsPW4uY2FsbCh0aGlzLmVsLHMsYSx0aGlzLm0pOyJib29sZWFuIj09dHlwZW9mIGwmJihsPXt4OmwseTpsfSksITA9PT1sLng/dGhpcy5lbC54KHMpOiExIT09bC54JiZ0aGlzLmVsLngobC54KSwhMD09PWwueT90aGlzLmVsLnkoYSk6ITEhPT1sLnkmJnRoaXMuZWwueShsLnkpfWVsc2Uib2JqZWN0Ij09dHlwZW9mIG4mJihudWxsIT1uLm1pblgmJnM8bi5taW5YP3I9KHM9bi5taW5YKS10aGlzLnN0YXJ0UG9pbnRzLmJveC54Om51bGwhPW4ubWF4WCYmcz5uLm1heFgtZS53aWR0aCYmKHI9KHM9bi5tYXhYLWUud2lkdGgpLXRoaXMuc3RhcnRQb2ludHMuYm94LngpLG51bGwhPW4ubWluWSYmYTxuLm1pblk/bz0oYT1uLm1pblkpLXRoaXMuc3RhcnRQb2ludHMuYm94Lnk6bnVsbCE9bi5tYXhZJiZhPm4ubWF4WS1lLmhlaWdodCYmKG89KGE9bi5tYXhZLWUuaGVpZ2h0KS10aGlzLnN0YXJ0UG9pbnRzLmJveC55KSxudWxsIT1uLnNuYXBUb0dyaWQmJihzLT1zJW4uc25hcFRvR3JpZCxhLT1hJW4uc25hcFRvR3JpZCxyLT1yJW4uc25hcFRvR3JpZCxvLT1vJW4uc25hcFRvR3JpZCksdGhpcy5lbCBpbnN0YW5jZW9mIFNWRy5HP3RoaXMuZWwubWF0cml4KHRoaXMuc3RhcnRQb2ludHMudHJhbnNmb3JtKS50cmFuc2Zvcm0oe3g6cix5Om99LCEwKTp0aGlzLmVsLm1vdmUocyxhKSk7cmV0dXJuIGl9LHQucHJvdG90eXBlLmVuZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmRyYWcodCk7dGhpcy5lbC5maXJlKCJkcmFnZW5kIix7ZXZlbnQ6dCxwOmUsbTp0aGlzLm0saGFuZGxlcjp0aGlzfSksU1ZHLm9mZih3aW5kb3csIm1vdXNlbW92ZS5kcmFnIiksU1ZHLm9mZih3aW5kb3csInRvdWNobW92ZS5kcmFnIiksU1ZHLm9mZih3aW5kb3csIm1vdXNldXAuZHJhZyIpLFNWRy5vZmYod2luZG93LCJ0b3VjaGVuZC5kcmFnIil9LFNWRy5leHRlbmQoU1ZHLkVsZW1lbnQse2RyYWdnYWJsZTpmdW5jdGlvbihlLGkpeyJmdW5jdGlvbiIhPXR5cGVvZiBlJiYib2JqZWN0IiE9dHlwZW9mIGV8fChpPWUsZT0hMCk7dmFyIHM9dGhpcy5yZW1lbWJlcigiX2RyYWdnYWJsZSIpfHxuZXcgdCh0aGlzKTtyZXR1cm4oZT12b2lkIDA9PT1lfHxlKT9zLmluaXQoaXx8e30sZSk6KHRoaXMub2ZmKCJtb3VzZWRvd24uZHJhZyIpLHRoaXMub2ZmKCJ0b3VjaHN0YXJ0LmRyYWciKSksdGhpc319KX0uY2FsbCh2b2lkIDApLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLmVsPXQsdC5yZW1lbWJlcigiX3NlbGVjdEhhbmRsZXIiLHRoaXMpLHRoaXMucG9pbnRTZWxlY3Rpb249e2lzU2VsZWN0ZWQ6ITF9LHRoaXMucmVjdFNlbGVjdGlvbj17aXNTZWxlY3RlZDohMX0sdGhpcy5wb2ludHNMaXN0PXtsdDpbMCwwXSxydDpbIndpZHRoIiwwXSxyYjpbIndpZHRoIiwiaGVpZ2h0Il0sbGI6WzAsImhlaWdodCJdLHQ6WyJ3aWR0aCIsMF0scjpbIndpZHRoIiwiaGVpZ2h0Il0sYjpbIndpZHRoIiwiaGVpZ2h0Il0sbDpbMCwiaGVpZ2h0Il19LHRoaXMucG9pbnRDb29yZD1mdW5jdGlvbih0LGUsaSl7dmFyIHM9InN0cmluZyIhPXR5cGVvZiB0P3Q6ZVt0XTtyZXR1cm4gaT9zLzI6c30sdGhpcy5wb2ludENvb3Jkcz1mdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMucG9pbnRzTGlzdFt0XTtyZXR1cm57eDp0aGlzLnBvaW50Q29vcmQoaVswXSxlLCJ0Ij09PXR8fCJiIj09PXQpLHk6dGhpcy5wb2ludENvb3JkKGlbMV0sZSwiciI9PT10fHwibCI9PT10KX19fXQucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLmVsLmJib3goKTt0aGlzLm9wdGlvbnM9e307dmFyIHM9dGhpcy5lbC5zZWxlY3RpemUuZGVmYXVsdHMucG9pbnRzO2Zvcih2YXIgYSBpbiB0aGlzLmVsLnNlbGVjdGl6ZS5kZWZhdWx0cyl0aGlzLm9wdGlvbnNbYV09dGhpcy5lbC5zZWxlY3RpemUuZGVmYXVsdHNbYV0sdm9pZCAwIT09ZVthXSYmKHRoaXMub3B0aW9uc1thXT1lW2FdKTt2YXIgbj1bInBvaW50cyIsInBvaW50c0V4Y2x1ZGUiXTtmb3IodmFyIGEgaW4gbil7dmFyIHI9dGhpcy5vcHRpb25zW25bYV1dOyJzdHJpbmciPT10eXBlb2Ygcj9yPXIubGVuZ3RoPjA/ci5zcGxpdCgvXHMqLFxzKi9pKTpbXToiYm9vbGVhbiI9PXR5cGVvZiByJiYicG9pbnRzIj09PW5bYV0mJihyPXI/czpbXSksdGhpcy5vcHRpb25zW25bYV1dPXJ9dGhpcy5vcHRpb25zLnBvaW50cz1bcyx0aGlzLm9wdGlvbnMucG9pbnRzXS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gZS5pbmRleE9mKHQpPi0xfSkpfSkpLHRoaXMub3B0aW9ucy5wb2ludHM9W3RoaXMub3B0aW9ucy5wb2ludHMsdGhpcy5vcHRpb25zLnBvaW50c0V4Y2x1ZGVdLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmluZGV4T2YodCk8MH0pKX0pKSx0aGlzLnBhcmVudD10aGlzLmVsLnBhcmVudCgpLHRoaXMubmVzdGVkPXRoaXMubmVzdGVkfHx0aGlzLnBhcmVudC5ncm91cCgpLHRoaXMubmVzdGVkLm1hdHJpeChuZXcgU1ZHLk1hdHJpeCh0aGlzLmVsKS50cmFuc2xhdGUoaS54LGkueSkpLHRoaXMub3B0aW9ucy5kZWVwU2VsZWN0JiYtMSE9PVsibGluZSIsInBvbHlsaW5lIiwicG9seWdvbiJdLmluZGV4T2YodGhpcy5lbC50eXBlKT90aGlzLnNlbGVjdFBvaW50cyh0KTp0aGlzLnNlbGVjdFJlY3QodCksdGhpcy5vYnNlcnZlKCksdGhpcy5jbGVhbnVwKCl9LHQucHJvdG90eXBlLnNlbGVjdFBvaW50cz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wb2ludFNlbGVjdGlvbi5pc1NlbGVjdGVkPXQsdGhpcy5wb2ludFNlbGVjdGlvbi5zZXR8fCh0aGlzLnBvaW50U2VsZWN0aW9uLnNldD10aGlzLnBhcmVudC5zZXQoKSx0aGlzLmRyYXdQb2ludHMoKSksdGhpc30sdC5wcm90b3R5cGUuZ2V0UG9pbnRBcnJheT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZWwuYmJveCgpO3JldHVybiB0aGlzLmVsLmFycmF5KCkudmFsdWVPZigpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuW2VbMF0tdC54LGVbMV0tdC55XX0pKX0sdC5wcm90b3R5cGUuZHJhd1BvaW50cz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLGU9dGhpcy5nZXRQb2ludEFycmF5KCksaT0wLHM9ZS5sZW5ndGg7aTxzOysraSl7dmFyIGE9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGkpeyhpPWl8fHdpbmRvdy5ldmVudCkucHJldmVudERlZmF1bHQ/aS5wcmV2ZW50RGVmYXVsdCgpOmkucmV0dXJuVmFsdWU9ITEsaS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgcz1pLnBhZ2VYfHxpLnRvdWNoZXNbMF0ucGFnZVgsYT1pLnBhZ2VZfHxpLnRvdWNoZXNbMF0ucGFnZVk7dC5lbC5maXJlKCJwb2ludCIse3g6cyx5OmEsaTplLGV2ZW50Oml9KX19KGkpLG49dGhpcy5kcmF3UG9pbnQoZVtpXVswXSxlW2ldWzFdKS5hZGRDbGFzcyh0aGlzLm9wdGlvbnMuY2xhc3NQb2ludHMpLmFkZENsYXNzKHRoaXMub3B0aW9ucy5jbGFzc1BvaW50cysiX3BvaW50Iikub24oInRvdWNoc3RhcnQiLGEpLm9uKCJtb3VzZWRvd24iLGEpO3RoaXMucG9pbnRTZWxlY3Rpb24uc2V0LmFkZChuKX19LHQucHJvdG90eXBlLmRyYXdQb2ludD1mdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMub3B0aW9ucy5wb2ludFR5cGU7c3dpdGNoKGkpe2Nhc2UiY2lyY2xlIjpyZXR1cm4gdGhpcy5kcmF3Q2lyY2xlKHQsZSk7Y2FzZSJyZWN0IjpyZXR1cm4gdGhpcy5kcmF3UmVjdCh0LGUpO2RlZmF1bHQ6aWYoImZ1bmN0aW9uIj09dHlwZW9mIGkpcmV0dXJuIGkuY2FsbCh0aGlzLHQsZSk7dGhyb3cgbmV3IEVycm9yKCJVbmtub3duICIraSsiIHBvaW50IHR5cGUhIil9fSx0LnByb3RvdHlwZS5kcmF3Q2lyY2xlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMubmVzdGVkLmNpcmNsZSh0aGlzLm9wdGlvbnMucG9pbnRTaXplKS5jZW50ZXIodCxlKX0sdC5wcm90b3R5cGUuZHJhd1JlY3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5uZXN0ZWQucmVjdCh0aGlzLm9wdGlvbnMucG9pbnRTaXplLHRoaXMub3B0aW9ucy5wb2ludFNpemUpLmNlbnRlcih0LGUpfSx0LnByb3RvdHlwZS51cGRhdGVQb2ludFNlbGVjdGlvbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0UG9pbnRBcnJheSgpO3RoaXMucG9pbnRTZWxlY3Rpb24uc2V0LmVhY2goKGZ1bmN0aW9uKGUpe3RoaXMuY3goKT09PXRbZV1bMF0mJnRoaXMuY3koKT09PXRbZV1bMV18fHRoaXMuY2VudGVyKHRbZV1bMF0sdFtlXVsxXSl9KSl9LHQucHJvdG90eXBlLnVwZGF0ZVJlY3RTZWxlY3Rpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5lbC5iYm94KCk7aWYodGhpcy5yZWN0U2VsZWN0aW9uLnNldC5nZXQoMCkuYXR0cih7d2lkdGg6ZS53aWR0aCxoZWlnaHQ6ZS5oZWlnaHR9KSx0aGlzLm9wdGlvbnMucG9pbnRzLmxlbmd0aCYmdGhpcy5vcHRpb25zLnBvaW50cy5tYXAoKGZ1bmN0aW9uKGkscyl7dmFyIGE9dC5wb2ludENvb3JkcyhpLGUpO3QucmVjdFNlbGVjdGlvbi5zZXQuZ2V0KHMrMSkuY2VudGVyKGEueCxhLnkpfSkpLHRoaXMub3B0aW9ucy5yb3RhdGlvblBvaW50KXt2YXIgaT10aGlzLnJlY3RTZWxlY3Rpb24uc2V0Lmxlbmd0aCgpO3RoaXMucmVjdFNlbGVjdGlvbi5zZXQuZ2V0KGktMSkuY2VudGVyKGUud2lkdGgvMiwyMCl9fSx0LnByb3RvdHlwZS5zZWxlY3RSZWN0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLmVsLmJib3goKTtmdW5jdGlvbiBzKHQpe3JldHVybiBmdW5jdGlvbihpKXsoaT1pfHx3aW5kb3cuZXZlbnQpLnByZXZlbnREZWZhdWx0P2kucHJldmVudERlZmF1bHQoKTppLnJldHVyblZhbHVlPSExLGkuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIHM9aS5wYWdlWHx8aS50b3VjaGVzWzBdLnBhZ2VYLGE9aS5wYWdlWXx8aS50b3VjaGVzWzBdLnBhZ2VZO2UuZWwuZmlyZSh0LHt4OnMseTphLGV2ZW50Oml9KX19aWYodGhpcy5yZWN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQ9dCx0aGlzLnJlY3RTZWxlY3Rpb24uc2V0PXRoaXMucmVjdFNlbGVjdGlvbi5zZXR8fHRoaXMucGFyZW50LnNldCgpLHRoaXMucmVjdFNlbGVjdGlvbi5zZXQuZ2V0KDApfHx0aGlzLnJlY3RTZWxlY3Rpb24uc2V0LmFkZCh0aGlzLm5lc3RlZC5yZWN0KGkud2lkdGgsaS5oZWlnaHQpLmFkZENsYXNzKHRoaXMub3B0aW9ucy5jbGFzc1JlY3QpKSx0aGlzLm9wdGlvbnMucG9pbnRzLmxlbmd0aCYmdGhpcy5yZWN0U2VsZWN0aW9uLnNldC5sZW5ndGgoKTwyJiYodGhpcy5vcHRpb25zLnBvaW50cy5tYXAoKGZ1bmN0aW9uKHQsYSl7dmFyIG49ZS5wb2ludENvb3Jkcyh0LGkpLHI9ZS5kcmF3UG9pbnQobi54LG4ueSkuYXR0cigiY2xhc3MiLGUub3B0aW9ucy5jbGFzc1BvaW50cysiXyIrdCkub24oIm1vdXNlZG93biIscyh0KSkub24oInRvdWNoc3RhcnQiLHModCkpO2UucmVjdFNlbGVjdGlvbi5zZXQuYWRkKHIpfSkpLHRoaXMucmVjdFNlbGVjdGlvbi5zZXQuZWFjaCgoZnVuY3Rpb24oKXt0aGlzLmFkZENsYXNzKGUub3B0aW9ucy5jbGFzc1BvaW50cyl9KSkpLHRoaXMub3B0aW9ucy5yb3RhdGlvblBvaW50JiYodGhpcy5vcHRpb25zLnBvaW50cyYmIXRoaXMucmVjdFNlbGVjdGlvbi5zZXQuZ2V0KDkpfHwhdGhpcy5vcHRpb25zLnBvaW50cyYmIXRoaXMucmVjdFNlbGVjdGlvbi5zZXQuZ2V0KDEpKSl7dmFyIGE9ZnVuY3Rpb24odCl7KHQ9dHx8d2luZG93LmV2ZW50KS5wcmV2ZW50RGVmYXVsdD90LnByZXZlbnREZWZhdWx0KCk6dC5yZXR1cm5WYWx1ZT0hMSx0LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBpPXQucGFnZVh8fHQudG91Y2hlc1swXS5wYWdlWCxzPXQucGFnZVl8fHQudG91Y2hlc1swXS5wYWdlWTtlLmVsLmZpcmUoInJvdCIse3g6aSx5OnMsZXZlbnQ6dH0pfSxuPXRoaXMuZHJhd1BvaW50KGkud2lkdGgvMiwyMCkuYXR0cigiY2xhc3MiLHRoaXMub3B0aW9ucy5jbGFzc1BvaW50cysiX3JvdCIpLm9uKCJ0b3VjaHN0YXJ0IixhKS5vbigibW91c2Vkb3duIixhKTt0aGlzLnJlY3RTZWxlY3Rpb24uc2V0LmFkZChuKX19LHQucHJvdG90eXBlLmhhbmRsZXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsLmJib3goKTt0aGlzLm5lc3RlZC5tYXRyaXgobmV3IFNWRy5NYXRyaXgodGhpcy5lbCkudHJhbnNsYXRlKHQueCx0LnkpKSx0aGlzLnJlY3RTZWxlY3Rpb24uaXNTZWxlY3RlZCYmdGhpcy51cGRhdGVSZWN0U2VsZWN0aW9uKCksdGhpcy5wb2ludFNlbGVjdGlvbi5pc1NlbGVjdGVkJiZ0aGlzLnVwZGF0ZVBvaW50U2VsZWN0aW9uKCl9LHQucHJvdG90eXBlLm9ic2VydmU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKE11dGF0aW9uT2JzZXJ2ZXIpaWYodGhpcy5yZWN0U2VsZWN0aW9uLmlzU2VsZWN0ZWR8fHRoaXMucG9pbnRTZWxlY3Rpb24uaXNTZWxlY3RlZCl0aGlzLm9ic2VydmVySW5zdD10aGlzLm9ic2VydmVySW5zdHx8bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGZ1bmN0aW9uKCl7dC5oYW5kbGVyKCl9KSksdGhpcy5vYnNlcnZlckluc3Qub2JzZXJ2ZSh0aGlzLmVsLm5vZGUse2F0dHJpYnV0ZXM6ITB9KTtlbHNlIHRyeXt0aGlzLm9ic2VydmVySW5zdC5kaXNjb25uZWN0KCksZGVsZXRlIHRoaXMub2JzZXJ2ZXJJbnN0fWNhdGNoKHQpe31lbHNlIHRoaXMuZWwub2ZmKCJET01BdHRyTW9kaWZpZWQuc2VsZWN0IiksKHRoaXMucmVjdFNlbGVjdGlvbi5pc1NlbGVjdGVkfHx0aGlzLnBvaW50U2VsZWN0aW9uLmlzU2VsZWN0ZWQpJiZ0aGlzLmVsLm9uKCJET01BdHRyTW9kaWZpZWQuc2VsZWN0IiwoZnVuY3Rpb24oKXt0LmhhbmRsZXIoKX0pKX0sdC5wcm90b3R5cGUuY2xlYW51cD1mdW5jdGlvbigpeyF0aGlzLnJlY3RTZWxlY3Rpb24uaXNTZWxlY3RlZCYmdGhpcy5yZWN0U2VsZWN0aW9uLnNldCYmKHRoaXMucmVjdFNlbGVjdGlvbi5zZXQuZWFjaCgoZnVuY3Rpb24oKXt0aGlzLnJlbW92ZSgpfSkpLHRoaXMucmVjdFNlbGVjdGlvbi5zZXQuY2xlYXIoKSxkZWxldGUgdGhpcy5yZWN0U2VsZWN0aW9uLnNldCksIXRoaXMucG9pbnRTZWxlY3Rpb24uaXNTZWxlY3RlZCYmdGhpcy5wb2ludFNlbGVjdGlvbi5zZXQmJih0aGlzLnBvaW50U2VsZWN0aW9uLnNldC5lYWNoKChmdW5jdGlvbigpe3RoaXMucmVtb3ZlKCl9KSksdGhpcy5wb2ludFNlbGVjdGlvbi5zZXQuY2xlYXIoKSxkZWxldGUgdGhpcy5wb2ludFNlbGVjdGlvbi5zZXQpLHRoaXMucG9pbnRTZWxlY3Rpb24uaXNTZWxlY3RlZHx8dGhpcy5yZWN0U2VsZWN0aW9uLmlzU2VsZWN0ZWR8fCh0aGlzLm5lc3RlZC5yZW1vdmUoKSxkZWxldGUgdGhpcy5uZXN0ZWQpfSxTVkcuZXh0ZW5kKFNWRy5FbGVtZW50LHtzZWxlY3RpemU6ZnVuY3Rpb24oZSxpKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJihpPWUsZT0hMCksKHRoaXMucmVtZW1iZXIoIl9zZWxlY3RIYW5kbGVyIil8fG5ldyB0KHRoaXMpKS5pbml0KHZvaWQgMD09PWV8fGUsaXx8e30pLHRoaXN9fSksU1ZHLkVsZW1lbnQucHJvdG90eXBlLnNlbGVjdGl6ZS5kZWZhdWx0cz17cG9pbnRzOlsibHQiLCJydCIsInJiIiwibGIiLCJ0IiwiciIsImIiLCJsIl0scG9pbnRzRXhjbHVkZTpbXSxjbGFzc1JlY3Q6InN2Z19zZWxlY3RfYm91bmRpbmdSZWN0IixjbGFzc1BvaW50czoic3ZnX3NlbGVjdF9wb2ludHMiLHBvaW50U2l6ZTo3LHJvdGF0aW9uUG9pbnQ6ITAsZGVlcFNlbGVjdDohMSxwb2ludFR5cGU6ImNpcmNsZSJ9fSgpLGZ1bmN0aW9uKCl7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0LnJlbWVtYmVyKCJfcmVzaXplSGFuZGxlciIsdGhpcyksdGhpcy5lbD10LHRoaXMucGFyYW1ldGVycz17fSx0aGlzLmxhc3RVcGRhdGVDYWxsPW51bGwsdGhpcy5wPXQuZG9jKCkubm9kZS5jcmVhdGVTVkdQb2ludCgpfXQucHJvdG90eXBlLnRyYW5zZm9ybVBvaW50PWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gdGhpcy5wLng9dC0odGhpcy5vZmZzZXQueC13aW5kb3cucGFnZVhPZmZzZXQpLHRoaXMucC55PWUtKHRoaXMub2Zmc2V0Lnktd2luZG93LnBhZ2VZT2Zmc2V0KSx0aGlzLnAubWF0cml4VHJhbnNmb3JtKGl8fHRoaXMubSl9LHQucHJvdG90eXBlLl9leHRyYWN0UG9zaXRpb249ZnVuY3Rpb24odCl7cmV0dXJue3g6bnVsbCE9dC5jbGllbnRYP3QuY2xpZW50WDp0LnRvdWNoZXNbMF0uY2xpZW50WCx5Om51bGwhPXQuY2xpZW50WT90LmNsaWVudFk6dC50b3VjaGVzWzBdLmNsaWVudFl9fSx0LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5zdG9wKCksInN0b3AiIT09dCl7Zm9yKHZhciBpIGluIHRoaXMub3B0aW9ucz17fSx0aGlzLmVsLnJlc2l6ZS5kZWZhdWx0cyl0aGlzLm9wdGlvbnNbaV09dGhpcy5lbC5yZXNpemUuZGVmYXVsdHNbaV0sdm9pZCAwIT09dFtpXSYmKHRoaXMub3B0aW9uc1tpXT10W2ldKTt0aGlzLmVsLm9uKCJsdC5yZXNpemUiLChmdW5jdGlvbih0KXtlLnJlc2l6ZSh0fHx3aW5kb3cuZXZlbnQpfSkpLHRoaXMuZWwub24oInJ0LnJlc2l6ZSIsKGZ1bmN0aW9uKHQpe2UucmVzaXplKHR8fHdpbmRvdy5ldmVudCl9KSksdGhpcy5lbC5vbigicmIucmVzaXplIiwoZnVuY3Rpb24odCl7ZS5yZXNpemUodHx8d2luZG93LmV2ZW50KX0pKSx0aGlzLmVsLm9uKCJsYi5yZXNpemUiLChmdW5jdGlvbih0KXtlLnJlc2l6ZSh0fHx3aW5kb3cuZXZlbnQpfSkpLHRoaXMuZWwub24oInQucmVzaXplIiwoZnVuY3Rpb24odCl7ZS5yZXNpemUodHx8d2luZG93LmV2ZW50KX0pKSx0aGlzLmVsLm9uKCJyLnJlc2l6ZSIsKGZ1bmN0aW9uKHQpe2UucmVzaXplKHR8fHdpbmRvdy5ldmVudCl9KSksdGhpcy5lbC5vbigiYi5yZXNpemUiLChmdW5jdGlvbih0KXtlLnJlc2l6ZSh0fHx3aW5kb3cuZXZlbnQpfSkpLHRoaXMuZWwub24oImwucmVzaXplIiwoZnVuY3Rpb24odCl7ZS5yZXNpemUodHx8d2luZG93LmV2ZW50KX0pKSx0aGlzLmVsLm9uKCJyb3QucmVzaXplIiwoZnVuY3Rpb24odCl7ZS5yZXNpemUodHx8d2luZG93LmV2ZW50KX0pKSx0aGlzLmVsLm9uKCJwb2ludC5yZXNpemUiLChmdW5jdGlvbih0KXtlLnJlc2l6ZSh0fHx3aW5kb3cuZXZlbnQpfSkpLHRoaXMudXBkYXRlKCl9fSx0LnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWwub2ZmKCJsdC5yZXNpemUiKSx0aGlzLmVsLm9mZigicnQucmVzaXplIiksdGhpcy5lbC5vZmYoInJiLnJlc2l6ZSIpLHRoaXMuZWwub2ZmKCJsYi5yZXNpemUiKSx0aGlzLmVsLm9mZigidC5yZXNpemUiKSx0aGlzLmVsLm9mZigici5yZXNpemUiKSx0aGlzLmVsLm9mZigiYi5yZXNpemUiKSx0aGlzLmVsLm9mZigibC5yZXNpemUiKSx0aGlzLmVsLm9mZigicm90LnJlc2l6ZSIpLHRoaXMuZWwub2ZmKCJwb2ludC5yZXNpemUiKSx0aGlzfSx0LnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLm09dGhpcy5lbC5ub2RlLmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSx0aGlzLm9mZnNldD17eDp3aW5kb3cucGFnZVhPZmZzZXQseTp3aW5kb3cucGFnZVlPZmZzZXR9O3ZhciBpPXRoaXMuX2V4dHJhY3RQb3NpdGlvbih0LmRldGFpbC5ldmVudCk7aWYodGhpcy5wYXJhbWV0ZXJzPXt0eXBlOnRoaXMuZWwudHlwZSxwOnRoaXMudHJhbnNmb3JtUG9pbnQoaS54LGkueSkseDp0LmRldGFpbC54LHk6dC5kZXRhaWwueSxib3g6dGhpcy5lbC5iYm94KCkscm90YXRpb246dGhpcy5lbC50cmFuc2Zvcm0oKS5yb3RhdGlvbn0sInRleHQiPT09dGhpcy5lbC50eXBlJiYodGhpcy5wYXJhbWV0ZXJzLmZvbnRTaXplPXRoaXMuZWwuYXR0cigpWyJmb250LXNpemUiXSksdm9pZCAwIT09dC5kZXRhaWwuaSl7dmFyIHM9dGhpcy5lbC5hcnJheSgpLnZhbHVlT2YoKTt0aGlzLnBhcmFtZXRlcnMuaT10LmRldGFpbC5pLHRoaXMucGFyYW1ldGVycy5wb2ludENvb3Jkcz1bc1t0LmRldGFpbC5pXVswXSxzW3QuZGV0YWlsLmldWzFdXX1zd2l0Y2godC50eXBlKXtjYXNlImx0Ijp0aGlzLmNhbGM9ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnNuYXBUb0dyaWQodCxlKTtpZih0aGlzLnBhcmFtZXRlcnMuYm94LndpZHRoLWlbMF0+MCYmdGhpcy5wYXJhbWV0ZXJzLmJveC5oZWlnaHQtaVsxXT4wKXtpZigidGV4dCI9PT10aGlzLnBhcmFtZXRlcnMudHlwZSlyZXR1cm4gdGhpcy5lbC5tb3ZlKHRoaXMucGFyYW1ldGVycy5ib3gueCtpWzBdLHRoaXMucGFyYW1ldGVycy5ib3gueSksdm9pZCB0aGlzLmVsLmF0dHIoImZvbnQtc2l6ZSIsdGhpcy5wYXJhbWV0ZXJzLmZvbnRTaXplLWlbMF0pO2k9dGhpcy5jaGVja0FzcGVjdFJhdGlvKGkpLHRoaXMuZWwubW92ZSh0aGlzLnBhcmFtZXRlcnMuYm94LngraVswXSx0aGlzLnBhcmFtZXRlcnMuYm94LnkraVsxXSkuc2l6ZSh0aGlzLnBhcmFtZXRlcnMuYm94LndpZHRoLWlbMF0sdGhpcy5wYXJhbWV0ZXJzLmJveC5oZWlnaHQtaVsxXSl9fTticmVhaztjYXNlInJ0Ijp0aGlzLmNhbGM9ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnNuYXBUb0dyaWQodCxlLDIpO2lmKHRoaXMucGFyYW1ldGVycy5ib3gud2lkdGgraVswXT4wJiZ0aGlzLnBhcmFtZXRlcnMuYm94LmhlaWdodC1pWzFdPjApe2lmKCJ0ZXh0Ij09PXRoaXMucGFyYW1ldGVycy50eXBlKXJldHVybiB0aGlzLmVsLm1vdmUodGhpcy5wYXJhbWV0ZXJzLmJveC54LWlbMF0sdGhpcy5wYXJhbWV0ZXJzLmJveC55KSx2b2lkIHRoaXMuZWwuYXR0cigiZm9udC1zaXplIix0aGlzLnBhcmFtZXRlcnMuZm9udFNpemUraVswXSk7aT10aGlzLmNoZWNrQXNwZWN0UmF0aW8oaSwhMCksdGhpcy5lbC5tb3ZlKHRoaXMucGFyYW1ldGVycy5ib3gueCx0aGlzLnBhcmFtZXRlcnMuYm94LnkraVsxXSkuc2l6ZSh0aGlzLnBhcmFtZXRlcnMuYm94LndpZHRoK2lbMF0sdGhpcy5wYXJhbWV0ZXJzLmJveC5oZWlnaHQtaVsxXSl9fTticmVhaztjYXNlInJiIjp0aGlzLmNhbGM9ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnNuYXBUb0dyaWQodCxlLDApO2lmKHRoaXMucGFyYW1ldGVycy5ib3gud2lkdGgraVswXT4wJiZ0aGlzLnBhcmFtZXRlcnMuYm94LmhlaWdodCtpWzFdPjApe2lmKCJ0ZXh0Ij09PXRoaXMucGFyYW1ldGVycy50eXBlKXJldHVybiB0aGlzLmVsLm1vdmUodGhpcy5wYXJhbWV0ZXJzLmJveC54LWlbMF0sdGhpcy5wYXJhbWV0ZXJzLmJveC55KSx2b2lkIHRoaXMuZWwuYXR0cigiZm9udC1zaXplIix0aGlzLnBhcmFtZXRlcnMuZm9udFNpemUraVswXSk7aT10aGlzLmNoZWNrQXNwZWN0UmF0aW8oaSksdGhpcy5lbC5tb3ZlKHRoaXMucGFyYW1ldGVycy5ib3gueCx0aGlzLnBhcmFtZXRlcnMuYm94LnkpLnNpemUodGhpcy5wYXJhbWV0ZXJzLmJveC53aWR0aCtpWzBdLHRoaXMucGFyYW1ldGVycy5ib3guaGVpZ2h0K2lbMV0pfX07YnJlYWs7Y2FzZSJsYiI6dGhpcy5jYWxjPWZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5zbmFwVG9HcmlkKHQsZSwxKTtpZih0aGlzLnBhcmFtZXRlcnMuYm94LndpZHRoLWlbMF0+MCYmdGhpcy5wYXJhbWV0ZXJzLmJveC5oZWlnaHQraVsxXT4wKXtpZigidGV4dCI9PT10aGlzLnBhcmFtZXRlcnMudHlwZSlyZXR1cm4gdGhpcy5lbC5tb3ZlKHRoaXMucGFyYW1ldGVycy5ib3gueCtpWzBdLHRoaXMucGFyYW1ldGVycy5ib3gueSksdm9pZCB0aGlzLmVsLmF0dHIoImZvbnQtc2l6ZSIsdGhpcy5wYXJhbWV0ZXJzLmZvbnRTaXplLWlbMF0pO2k9dGhpcy5jaGVja0FzcGVjdFJhdGlvKGksITApLHRoaXMuZWwubW92ZSh0aGlzLnBhcmFtZXRlcnMuYm94LngraVswXSx0aGlzLnBhcmFtZXRlcnMuYm94LnkpLnNpemUodGhpcy5wYXJhbWV0ZXJzLmJveC53aWR0aC1pWzBdLHRoaXMucGFyYW1ldGVycy5ib3guaGVpZ2h0K2lbMV0pfX07YnJlYWs7Y2FzZSJ0Ijp0aGlzLmNhbGM9ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnNuYXBUb0dyaWQodCxlLDIpO2lmKHRoaXMucGFyYW1ldGVycy5ib3guaGVpZ2h0LWlbMV0+MCl7aWYoInRleHQiPT09dGhpcy5wYXJhbWV0ZXJzLnR5cGUpcmV0dXJuO3RoaXMuZWwubW92ZSh0aGlzLnBhcmFtZXRlcnMuYm94LngsdGhpcy5wYXJhbWV0ZXJzLmJveC55K2lbMV0pLmhlaWdodCh0aGlzLnBhcmFtZXRlcnMuYm94LmhlaWdodC1pWzFdKX19O2JyZWFrO2Nhc2UiciI6dGhpcy5jYWxjPWZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5zbmFwVG9HcmlkKHQsZSwwKTtpZih0aGlzLnBhcmFtZXRlcnMuYm94LndpZHRoK2lbMF0+MCl7aWYoInRleHQiPT09dGhpcy5wYXJhbWV0ZXJzLnR5cGUpcmV0dXJuO3RoaXMuZWwubW92ZSh0aGlzLnBhcmFtZXRlcnMuYm94LngsdGhpcy5wYXJhbWV0ZXJzLmJveC55KS53aWR0aCh0aGlzLnBhcmFtZXRlcnMuYm94LndpZHRoK2lbMF0pfX07YnJlYWs7Y2FzZSJiIjp0aGlzLmNhbGM9ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnNuYXBUb0dyaWQodCxlLDApO2lmKHRoaXMucGFyYW1ldGVycy5ib3guaGVpZ2h0K2lbMV0+MCl7aWYoInRleHQiPT09dGhpcy5wYXJhbWV0ZXJzLnR5cGUpcmV0dXJuO3RoaXMuZWwubW92ZSh0aGlzLnBhcmFtZXRlcnMuYm94LngsdGhpcy5wYXJhbWV0ZXJzLmJveC55KS5oZWlnaHQodGhpcy5wYXJhbWV0ZXJzLmJveC5oZWlnaHQraVsxXSl9fTticmVhaztjYXNlImwiOnRoaXMuY2FsYz1mdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuc25hcFRvR3JpZCh0LGUsMSk7aWYodGhpcy5wYXJhbWV0ZXJzLmJveC53aWR0aC1pWzBdPjApe2lmKCJ0ZXh0Ij09PXRoaXMucGFyYW1ldGVycy50eXBlKXJldHVybjt0aGlzLmVsLm1vdmUodGhpcy5wYXJhbWV0ZXJzLmJveC54K2lbMF0sdGhpcy5wYXJhbWV0ZXJzLmJveC55KS53aWR0aCh0aGlzLnBhcmFtZXRlcnMuYm94LndpZHRoLWlbMF0pfX07YnJlYWs7Y2FzZSJyb3QiOnRoaXMuY2FsYz1mdW5jdGlvbih0LGUpe3ZhciBpPXQrdGhpcy5wYXJhbWV0ZXJzLnAueCxzPWUrdGhpcy5wYXJhbWV0ZXJzLnAueSxhPU1hdGguYXRhbjIodGhpcy5wYXJhbWV0ZXJzLnAueS10aGlzLnBhcmFtZXRlcnMuYm94LnktdGhpcy5wYXJhbWV0ZXJzLmJveC5oZWlnaHQvMix0aGlzLnBhcmFtZXRlcnMucC54LXRoaXMucGFyYW1ldGVycy5ib3gueC10aGlzLnBhcmFtZXRlcnMuYm94LndpZHRoLzIpLG49TWF0aC5hdGFuMihzLXRoaXMucGFyYW1ldGVycy5ib3gueS10aGlzLnBhcmFtZXRlcnMuYm94LmhlaWdodC8yLGktdGhpcy5wYXJhbWV0ZXJzLmJveC54LXRoaXMucGFyYW1ldGVycy5ib3gud2lkdGgvMikscj10aGlzLnBhcmFtZXRlcnMucm90YXRpb24rMTgwKihuLWEpL01hdGguUEkrdGhpcy5vcHRpb25zLnNuYXBUb0FuZ2xlLzI7dGhpcy5lbC5jZW50ZXIodGhpcy5wYXJhbWV0ZXJzLmJveC5jeCx0aGlzLnBhcmFtZXRlcnMuYm94LmN5KS5yb3RhdGUoci1yJXRoaXMub3B0aW9ucy5zbmFwVG9BbmdsZSx0aGlzLnBhcmFtZXRlcnMuYm94LmN4LHRoaXMucGFyYW1ldGVycy5ib3guY3kpfTticmVhaztjYXNlInBvaW50Ijp0aGlzLmNhbGM9ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnNuYXBUb0dyaWQodCxlLHRoaXMucGFyYW1ldGVycy5wb2ludENvb3Jkc1swXSx0aGlzLnBhcmFtZXRlcnMucG9pbnRDb29yZHNbMV0pLHM9dGhpcy5lbC5hcnJheSgpLnZhbHVlT2YoKTtzW3RoaXMucGFyYW1ldGVycy5pXVswXT10aGlzLnBhcmFtZXRlcnMucG9pbnRDb29yZHNbMF0raVswXSxzW3RoaXMucGFyYW1ldGVycy5pXVsxXT10aGlzLnBhcmFtZXRlcnMucG9pbnRDb29yZHNbMV0raVsxXSx0aGlzLmVsLnBsb3Qocyl9fXRoaXMuZWwuZmlyZSgicmVzaXplc3RhcnQiLHtkeDp0aGlzLnBhcmFtZXRlcnMueCxkeTp0aGlzLnBhcmFtZXRlcnMueSxldmVudDp0fSksU1ZHLm9uKHdpbmRvdywidG91Y2htb3ZlLnJlc2l6ZSIsKGZ1bmN0aW9uKHQpe2UudXBkYXRlKHR8fHdpbmRvdy5ldmVudCl9KSksU1ZHLm9uKHdpbmRvdywidG91Y2hlbmQucmVzaXplIiwoZnVuY3Rpb24oKXtlLmRvbmUoKX0pKSxTVkcub24od2luZG93LCJtb3VzZW1vdmUucmVzaXplIiwoZnVuY3Rpb24odCl7ZS51cGRhdGUodHx8d2luZG93LmV2ZW50KX0pKSxTVkcub24od2luZG93LCJtb3VzZXVwLnJlc2l6ZSIsKGZ1bmN0aW9uKCl7ZS5kb25lKCl9KSl9LHQucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0KXtpZih0KXt2YXIgZT10aGlzLl9leHRyYWN0UG9zaXRpb24odCksaT10aGlzLnRyYW5zZm9ybVBvaW50KGUueCxlLnkpLHM9aS54LXRoaXMucGFyYW1ldGVycy5wLngsYT1pLnktdGhpcy5wYXJhbWV0ZXJzLnAueTt0aGlzLmxhc3RVcGRhdGVDYWxsPVtzLGFdLHRoaXMuY2FsYyhzLGEpLHRoaXMuZWwuZmlyZSgicmVzaXppbmciLHtkeDpzLGR5OmEsZXZlbnQ6dH0pfWVsc2UgdGhpcy5sYXN0VXBkYXRlQ2FsbCYmdGhpcy5jYWxjKHRoaXMubGFzdFVwZGF0ZUNhbGxbMF0sdGhpcy5sYXN0VXBkYXRlQ2FsbFsxXSl9LHQucHJvdG90eXBlLmRvbmU9ZnVuY3Rpb24oKXt0aGlzLmxhc3RVcGRhdGVDYWxsPW51bGwsU1ZHLm9mZih3aW5kb3csIm1vdXNlbW92ZS5yZXNpemUiKSxTVkcub2ZmKHdpbmRvdywibW91c2V1cC5yZXNpemUiKSxTVkcub2ZmKHdpbmRvdywidG91Y2htb3ZlLnJlc2l6ZSIpLFNWRy5vZmYod2luZG93LCJ0b3VjaGVuZC5yZXNpemUiKSx0aGlzLmVsLmZpcmUoInJlc2l6ZWRvbmUiKX0sdC5wcm90b3R5cGUuc25hcFRvR3JpZD1mdW5jdGlvbih0LGUsaSxzKXt2YXIgYTtyZXR1cm4gdm9pZCAwIT09cz9hPVsoaSt0KSV0aGlzLm9wdGlvbnMuc25hcFRvR3JpZCwocytlKSV0aGlzLm9wdGlvbnMuc25hcFRvR3JpZF06KGk9bnVsbD09aT8zOmksYT1bKHRoaXMucGFyYW1ldGVycy5ib3gueCt0KygxJmk/MDp0aGlzLnBhcmFtZXRlcnMuYm94LndpZHRoKSkldGhpcy5vcHRpb25zLnNuYXBUb0dyaWQsKHRoaXMucGFyYW1ldGVycy5ib3gueStlKygyJmk/MDp0aGlzLnBhcmFtZXRlcnMuYm94LmhlaWdodCkpJXRoaXMub3B0aW9ucy5zbmFwVG9HcmlkXSksdDwwJiYoYVswXS09dGhpcy5vcHRpb25zLnNuYXBUb0dyaWQpLGU8MCYmKGFbMV0tPXRoaXMub3B0aW9ucy5zbmFwVG9HcmlkKSx0LT1NYXRoLmFicyhhWzBdKTx0aGlzLm9wdGlvbnMuc25hcFRvR3JpZC8yP2FbMF06YVswXS0odDwwPy10aGlzLm9wdGlvbnMuc25hcFRvR3JpZDp0aGlzLm9wdGlvbnMuc25hcFRvR3JpZCksZS09TWF0aC5hYnMoYVsxXSk8dGhpcy5vcHRpb25zLnNuYXBUb0dyaWQvMj9hWzFdOmFbMV0tKGU8MD8tdGhpcy5vcHRpb25zLnNuYXBUb0dyaWQ6dGhpcy5vcHRpb25zLnNuYXBUb0dyaWQpLHRoaXMuY29uc3RyYWludFRvQm94KHQsZSxpLHMpfSx0LnByb3RvdHlwZS5jb25zdHJhaW50VG9Cb3g9ZnVuY3Rpb24odCxlLGkscyl7dmFyIGEsbixyPXRoaXMub3B0aW9ucy5jb25zdHJhaW50fHx7fTtyZXR1cm4gdm9pZCAwIT09cz8oYT1pLG49cyk6KGE9dGhpcy5wYXJhbWV0ZXJzLmJveC54KygxJmk/MDp0aGlzLnBhcmFtZXRlcnMuYm94LndpZHRoKSxuPXRoaXMucGFyYW1ldGVycy5ib3gueSsoMiZpPzA6dGhpcy5wYXJhbWV0ZXJzLmJveC5oZWlnaHQpKSx2b2lkIDAhPT1yLm1pblgmJmErdDxyLm1pblgmJih0PXIubWluWC1hKSx2b2lkIDAhPT1yLm1heFgmJmErdD5yLm1heFgmJih0PXIubWF4WC1hKSx2b2lkIDAhPT1yLm1pblkmJm4rZTxyLm1pblkmJihlPXIubWluWS1uKSx2b2lkIDAhPT1yLm1heFkmJm4rZT5yLm1heFkmJihlPXIubWF4WS1uKSxbdCxlXX0sdC5wcm90b3R5cGUuY2hlY2tBc3BlY3RSYXRpbz1mdW5jdGlvbih0LGUpe2lmKCF0aGlzLm9wdGlvbnMuc2F2ZUFzcGVjdFJhdGlvKXJldHVybiB0O3ZhciBpPXQuc2xpY2UoKSxzPXRoaXMucGFyYW1ldGVycy5ib3gud2lkdGgvdGhpcy5wYXJhbWV0ZXJzLmJveC5oZWlnaHQsYT10aGlzLnBhcmFtZXRlcnMuYm94LndpZHRoK3RbMF0sbj10aGlzLnBhcmFtZXRlcnMuYm94LmhlaWdodC10WzFdLHI9YS9uO3JldHVybiByPHM/KGlbMV09YS9zLXRoaXMucGFyYW1ldGVycy5ib3guaGVpZ2h0LGUmJihpWzFdPS1pWzFdKSk6cj5zJiYoaVswXT10aGlzLnBhcmFtZXRlcnMuYm94LndpZHRoLW4qcyxlJiYoaVswXT0taVswXSkpLGl9LFNWRy5leHRlbmQoU1ZHLkVsZW1lbnQse3Jlc2l6ZTpmdW5jdGlvbihlKXtyZXR1cm4odGhpcy5yZW1lbWJlcigiX3Jlc2l6ZUhhbmRsZXIiKXx8bmV3IHQodGhpcykpLmluaXQoZXx8e30pLHRoaXN9fSksU1ZHLkVsZW1lbnQucHJvdG90eXBlLnJlc2l6ZS5kZWZhdWx0cz17c25hcFRvQW5nbGU6LjEsc25hcFRvR3JpZDoxLGNvbnN0cmFpbnQ6e30sc2F2ZUFzcGVjdFJhdGlvOiExfX0pLmNhbGwodGhpcyl9KCksdm9pZCAwPT09d2luZG93LkFwZXgmJih3aW5kb3cuQXBleD17fSk7dmFyIEh0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvKHRoaXMsdCksdGhpcy5jdHg9ZSx0aGlzLnc9ZS53fXJldHVybiBjKHQsW3trZXk6ImluaXRNb2R1bGVzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY3R4LnB1YmxpY01ldGhvZHM9WyJ1cGRhdGVPcHRpb25zIiwidXBkYXRlU2VyaWVzIiwiYXBwZW5kRGF0YSIsImFwcGVuZFNlcmllcyIsInRvZ2dsZVNlcmllcyIsInNob3dTZXJpZXMiLCJoaWRlU2VyaWVzIiwic2V0TG9jYWxlIiwicmVzZXRTZXJpZXMiLCJ6b29tWCIsInRvZ2dsZURhdGFQb2ludFNlbGVjdGlvbiIsImRhdGFVUkkiLCJleHBvcnRUb0NTViIsImFkZFhheGlzQW5ub3RhdGlvbiIsImFkZFlheGlzQW5ub3RhdGlvbiIsImFkZFBvaW50QW5ub3RhdGlvbiIsImNsZWFyQW5ub3RhdGlvbnMiLCJyZW1vdmVBbm5vdGF0aW9uIiwicGFwZXIiLCJkZXN0cm95Il0sdGhpcy5jdHguZXZlbnRMaXN0PVsiY2xpY2siLCJtb3VzZWRvd24iLCJtb3VzZW1vdmUiLCJtb3VzZWxlYXZlIiwidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNobGVhdmUiLCJtb3VzZXVwIiwidG91Y2hlbmQiXSx0aGlzLmN0eC5hbmltYXRpb25zPW5ldyB5KHRoaXMuY3R4KSx0aGlzLmN0eC5heGVzPW5ldyB0dCh0aGlzLmN0eCksdGhpcy5jdHguY29yZT1uZXcgQnQodGhpcy5jdHguZWwsdGhpcy5jdHgpLHRoaXMuY3R4LmNvbmZpZz1uZXcgeih7fSksdGhpcy5jdHguZGF0YT1uZXcgVyh0aGlzLmN0eCksdGhpcy5jdHguZ3JpZD1uZXcgVSh0aGlzLmN0eCksdGhpcy5jdHguZ3JhcGhpY3M9bmV3IGsodGhpcy5jdHgpLHRoaXMuY3R4LmNvcmVVdGlscz1uZXcgUyh0aGlzLmN0eCksdGhpcy5jdHguY3Jvc3NoYWlycz1uZXcgZXQodGhpcy5jdHgpLHRoaXMuY3R4LmV2ZW50cz1uZXcgSih0aGlzLmN0eCksdGhpcy5jdHguZXhwb3J0cz1uZXcgaih0aGlzLmN0eCksdGhpcy5jdHgubG9jYWxpemF0aW9uPW5ldyBRKHRoaXMuY3R4KSx0aGlzLmN0eC5vcHRpb25zPW5ldyBQLHRoaXMuY3R4LnJlc3BvbnNpdmU9bmV3IGl0KHRoaXMuY3R4KSx0aGlzLmN0eC5zZXJpZXM9bmV3IFkodGhpcy5jdHgpLHRoaXMuY3R4LnRoZW1lPW5ldyBzdCh0aGlzLmN0eCksdGhpcy5jdHguZm9ybWF0dGVycz1uZXcgJCh0aGlzLmN0eCksdGhpcy5jdHgudGl0bGVTdWJ0aXRsZT1uZXcgYXQodGhpcy5jdHgpLHRoaXMuY3R4LmxlZ2VuZD1uZXcgZHQodGhpcy5jdHgpLHRoaXMuY3R4LnRvb2xiYXI9bmV3IHV0KHRoaXMuY3R4KSx0aGlzLmN0eC50b29sdGlwPW5ldyB5dCh0aGlzLmN0eCksdGhpcy5jdHguZGltZW5zaW9ucz1uZXcgY3QodGhpcy5jdHgpLHRoaXMuY3R4LnVwZGF0ZUhlbHBlcnM9bmV3IFh0KHRoaXMuY3R4KSx0aGlzLmN0eC56b29tUGFuU2VsZWN0aW9uPW5ldyBwdCh0aGlzLmN0eCksdGhpcy5jdHgudy5nbG9iYWxzLnRvb2x0aXA9bmV3IHl0KHRoaXMuY3R4KX19XSksdH0oKSxZdD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7byh0aGlzLHQpLHRoaXMuY3R4PWUsdGhpcy53PWUud31yZXR1cm4gYyh0LFt7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5pc1VwZGF0aW5nO3RoaXMuY3R4Lnpvb21QYW5TZWxlY3Rpb24mJnRoaXMuY3R4Lnpvb21QYW5TZWxlY3Rpb24uZGVzdHJveSgpLHRoaXMuY3R4LnRvb2xiYXImJnRoaXMuY3R4LnRvb2xiYXIuZGVzdHJveSgpLHRoaXMuY3R4LmFuaW1hdGlvbnM9bnVsbCx0aGlzLmN0eC5heGVzPW51bGwsdGhpcy5jdHguYW5ub3RhdGlvbnM9bnVsbCx0aGlzLmN0eC5jb3JlPW51bGwsdGhpcy5jdHguZGF0YT1udWxsLHRoaXMuY3R4LmdyaWQ9bnVsbCx0aGlzLmN0eC5zZXJpZXM9bnVsbCx0aGlzLmN0eC5yZXNwb25zaXZlPW51bGwsdGhpcy5jdHgudGhlbWU9bnVsbCx0aGlzLmN0eC5mb3JtYXR0ZXJzPW51bGwsdGhpcy5jdHgudGl0bGVTdWJ0aXRsZT1udWxsLHRoaXMuY3R4LmxlZ2VuZD1udWxsLHRoaXMuY3R4LmRpbWVuc2lvbnM9bnVsbCx0aGlzLmN0eC5vcHRpb25zPW51bGwsdGhpcy5jdHguY3Jvc3NoYWlycz1udWxsLHRoaXMuY3R4Lnpvb21QYW5TZWxlY3Rpb249bnVsbCx0aGlzLmN0eC51cGRhdGVIZWxwZXJzPW51bGwsdGhpcy5jdHgudG9vbGJhcj1udWxsLHRoaXMuY3R4LmxvY2FsaXphdGlvbj1udWxsLHRoaXMuY3R4LncuZ2xvYmFscy50b29sdGlwPW51bGwsdGhpcy5jbGVhckRvbUVsZW1lbnRzKHtpc1VwZGF0aW5nOmV9KX19LHtrZXk6ImtpbGxTVkciLHZhbHVlOmZ1bmN0aW9uKHQpe3QuZWFjaCgoZnVuY3Rpb24odCxlKXt0aGlzLnJlbW92ZUNsYXNzKCIqIiksdGhpcy5vZmYoKSx0aGlzLnN0b3AoKX0pLCEwKSx0LnVuZ3JvdXAoKSx0LmNsZWFyKCl9fSx7a2V5OiJjbGVhckRvbUVsZW1lbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dC5pc1VwZGF0aW5nLHM9dGhpcy53Lmdsb2JhbHMuZG9tLlBhcGVyLm5vZGU7cy5wYXJlbnROb2RlJiZzLnBhcmVudE5vZGUucGFyZW50Tm9kZSYmIWkmJihzLnBhcmVudE5vZGUucGFyZW50Tm9kZS5zdHlsZS5taW5IZWlnaHQ9InVuc2V0Iik7dmFyIGE9dGhpcy53Lmdsb2JhbHMuZG9tLmJhc2VFbDthJiZ0aGlzLmN0eC5ldmVudExpc3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7YS5yZW1vdmVFdmVudExpc3RlbmVyKHQsZS5jdHguZXZlbnRzLmRvY3VtZW50RXZlbnQpfSkpO3ZhciBuPXRoaXMudy5nbG9iYWxzLmRvbTtpZihudWxsIT09dGhpcy5jdHguZWwpZm9yKDt0aGlzLmN0eC5lbC5maXJzdENoaWxkOyl0aGlzLmN0eC5lbC5yZW1vdmVDaGlsZCh0aGlzLmN0eC5lbC5maXJzdENoaWxkKTt0aGlzLmtpbGxTVkcobi5QYXBlciksbi5QYXBlci5yZW1vdmUoKSxuLmVsV3JhcD1udWxsLG4uZWxHcmFwaGljYWw9bnVsbCxuLmVsQW5ub3RhdGlvbnM9bnVsbCxuLmVsTGVnZW5kV3JhcD1udWxsLG4uYmFzZUVsPW51bGwsbi5lbEdyaWRSZWN0PW51bGwsbi5lbEdyaWRSZWN0TWFzaz1udWxsLG4uZWxHcmlkUmVjdE1hcmtlck1hc2s9bnVsbCxuLmVsRm9yZWNhc3RNYXNrPW51bGwsbi5lbE5vbkZvcmVjYXN0TWFzaz1udWxsLG4uZWxEZWZzPW51bGx9fV0pLHR9KCksV3Q9bmV3IFdlYWtNYXAsJHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsaSl7byh0aGlzLHQpLHRoaXMub3B0cz1pLHRoaXMuY3R4PXRoaXMsdGhpcy53PW5ldyBSKGkpLmluaXQoKSx0aGlzLmVsPWUsdGhpcy53Lmdsb2JhbHMuY3VpZD1iLnJhbmRvbUlkKCksdGhpcy53Lmdsb2JhbHMuY2hhcnRJRD10aGlzLncuY29uZmlnLmNoYXJ0LmlkP2IuZXNjYXBlU3RyaW5nKHRoaXMudy5jb25maWcuY2hhcnQuaWQpOnRoaXMudy5nbG9iYWxzLmN1aWQsbmV3IEh0KHRoaXMpLmluaXRNb2R1bGVzKCksdGhpcy5jcmVhdGU9Yi5iaW5kKHRoaXMuY3JlYXRlLHRoaXMpLHRoaXMud2luZG93UmVzaXplSGFuZGxlcj10aGlzLl93aW5kb3dSZXNpemVIYW5kbGVyLmJpbmQodGhpcyksdGhpcy5wYXJlbnRSZXNpemVIYW5kbGVyPXRoaXMuX3BhcmVudFJlc2l6ZUNhbGxiYWNrLmJpbmQodGhpcyl9cmV0dXJuIGModCxbe2tleToicmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihlLGkpe2lmKG51bGwhPT10LmVsKXt2b2lkIDA9PT1BcGV4Ll9jaGFydEluc3RhbmNlcyYmKEFwZXguX2NoYXJ0SW5zdGFuY2VzPVtdKSx0LncuY29uZmlnLmNoYXJ0LmlkJiZBcGV4Ll9jaGFydEluc3RhbmNlcy5wdXNoKHtpZDp0LncuZ2xvYmFscy5jaGFydElELGdyb3VwOnQudy5jb25maWcuY2hhcnQuZ3JvdXAsY2hhcnQ6dH0pLHQuc2V0TG9jYWxlKHQudy5jb25maWcuY2hhcnQuZGVmYXVsdExvY2FsZSk7dmFyIHM9dC53LmNvbmZpZy5jaGFydC5ldmVudHMuYmVmb3JlTW91bnQ7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHMmJnModCx0LncpLHQuZXZlbnRzLmZpcmVFdmVudCgiYmVmb3JlTW91bnQiLFt0LHQud10pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHQud2luZG93UmVzaXplSGFuZGxlciksZnVuY3Rpb24odCxlKXt2YXIgaT0hMTtpZih0Lm5vZGVUeXBlIT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFKXt2YXIgcz10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOyJub25lIiE9PXQuc3R5bGUuZGlzcGxheSYmMCE9PXMud2lkdGh8fChpPSEwKX12YXIgYT1uZXcgUmVzaXplT2JzZXJ2ZXIoKGZ1bmN0aW9uKHMpe2kmJmUuY2FsbCh0LHMpLGk9ITB9KSk7dC5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERT9BcnJheS5mcm9tKHQuY2hpbGRyZW4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBhLm9ic2VydmUodCl9KSk6YS5vYnNlcnZlKHQpLFd0LnNldChlLGEpfSh0LmVsLnBhcmVudE5vZGUsdC5wYXJlbnRSZXNpemVIYW5kbGVyKSwhdC5jc3Mpe3ZhciBhPXQuZWwuZ2V0Um9vdE5vZGUmJnQuZWwuZ2V0Um9vdE5vZGUoKSxuPWIuaXMoIlNoYWRvd1Jvb3QiLGEpLHI9dC5lbC5vd25lckRvY3VtZW50LG89ci5nZXRFbGVtZW50QnlJZCgiYXBleGNoYXJ0cy1jc3MiKTshbiYmb3x8KHQuY3NzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksdC5jc3MuaWQ9ImFwZXhjaGFydHMtY3NzIix0LmNzcy50ZXh0Q29udGVudD0nQGtleWZyYW1lcyBvcGFxdWUge1xuICAwJSB7XG4gICAgICBvcGFjaXR5OiAwXG4gIH1cblxuICB0byB7XG4gICAgICBvcGFjaXR5OiAxXG4gIH1cbn1cblxuQGtleWZyYW1lcyByZXNpemVhbmltIHtcbiAgMCUsdG8ge1xuICAgICAgb3BhY2l0eTogMFxuICB9XG59XG5cbi5hcGV4Y2hhcnRzLWNhbnZhcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmVcbn1cblxuLmFwZXhjaGFydHMtY2FudmFzIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiA2cHhcbn1cblxuLmFwZXhjaGFydHMtY2FudmFzIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsLjUpO1xuICBib3gtc2hhZG93OiAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjUpO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuNSlcbn1cblxuLmFwZXhjaGFydHMtaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmVcbn1cblxuLmFwZXhjaGFydHMtdGV4dCB0c3BhbiB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0XG59XG5cbi5sZWdlbmQtbW91c2VvdmVyLWluYWN0aXZlIHtcbiAgdHJhbnNpdGlvbjogLjE1cyBlYXNlIGFsbDtcbiAgb3BhY2l0eTogLjJcbn1cblxuLmFwZXhjaGFydHMtbGVnZW5kLXRleHQge1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbn1cblxuLmFwZXhjaGFydHMtc2VyaWVzLWNvbGxhcHNlZCB7XG4gIG9wYWNpdHk6IDBcbn1cblxuLmFwZXhjaGFydHMtdG9vbHRpcCB7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogMnB4IDJweCA2cHggLTRweCAjOTk5O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGVmdDogNjJweDtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB6LWluZGV4OiAxMjtcbiAgdHJhbnNpdGlvbjogLjE1cyBlYXNlIGFsbFxufVxuXG4uYXBleGNoYXJ0cy10b29sdGlwLmFwZXhjaGFydHMtYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogLjE1cyBlYXNlIGFsbFxufVxuXG4uYXBleGNoYXJ0cy10b29sdGlwLmFwZXhjaGFydHMtdGhlbWUtbGlnaHQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTNlM2UzO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC45Nilcbn1cblxuLmFwZXhjaGFydHMtdG9vbHRpcC5hcGV4Y2hhcnRzLXRoZW1lLWRhcmsge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogcmdiYSgzMCwzMCwzMCwuOClcbn1cblxuLmFwZXhjaGFydHMtdG9vbHRpcCAqIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXRcbn1cblxuLmFwZXhjaGFydHMtdG9vbHRpcC10aXRsZSB7XG4gIHBhZGRpbmc6IDZweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiA0cHhcbn1cblxuLmFwZXhjaGFydHMtdG9vbHRpcC5hcGV4Y2hhcnRzLXRoZW1lLWxpZ2h0IC5hcGV4Y2hhcnRzLXRvb2x0aXAtdGl0bGUge1xuICBiYWNrZ3JvdW5kOiAjZWNlZmYxO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZFxufVxuXG4uYXBleGNoYXJ0cy10b29sdGlwLmFwZXhjaGFydHMtdGhlbWUtZGFyayAuYXBleGNoYXJ0cy10b29sdGlwLXRpdGxlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuNyk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMzMzXG59XG5cbi5hcGV4Y2hhcnRzLXRvb2x0aXAtdGV4dC1nb2Fscy12YWx1ZSwuYXBleGNoYXJ0cy10b29sdGlwLXRleHQteS12YWx1ZSwuYXBleGNoYXJ0cy10b29sdGlwLXRleHQtei12YWx1ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMFxufVxuXG4uYXBleGNoYXJ0cy10b29sdGlwLXRleHQtZ29hbHMtbGFiZWw6ZW1wdHksLmFwZXhjaGFydHMtdG9vbHRpcC10ZXh0LWdvYWxzLXZhbHVlOmVtcHR5LC5hcGV4Y2hhcnRzLXRvb2x0aXAtdGV4dC15LWxhYmVsOmVtcHR5LC5hcGV4Y2hhcnRzLXRvb2x0aXAtdGV4dC15LXZhbHVlOmVtcHR5LC5hcGV4Y2hhcnRzLXRvb2x0aXAtdGV4dC16LXZhbHVlOmVtcHR5LC5hcGV4Y2hhcnRzLXRvb2x0aXAtdGl0bGU6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lXG59XG5cbi5hcGV4Y2hhcnRzLXRvb2x0aXAtdGV4dC1nb2Fscy1sYWJlbCwuYXBleGNoYXJ0cy10b29sdGlwLXRleHQtZ29hbHMtdmFsdWUge1xuICBwYWRkaW5nOiA2cHggMCA1cHhcbn1cblxuLmFwZXhjaGFydHMtdG9vbHRpcC1nb2Fscy1ncm91cCwuYXBleGNoYXJ0cy10b29sdGlwLXRleHQtZ29hbHMtbGFiZWwsLmFwZXhjaGFydHMtdG9vbHRpcC10ZXh0LWdvYWxzLXZhbHVlIHtcbiAgZGlzcGxheTogZmxleFxufVxuXG4uYXBleGNoYXJ0cy10b29sdGlwLXRleHQtZ29hbHMtbGFiZWw6bm90KDplbXB0eSksLmFwZXhjaGFydHMtdG9vbHRpcC10ZXh0LWdvYWxzLXZhbHVlOm5vdCg6ZW1wdHkpIHtcbiAgbWFyZ2luLXRvcDogLTZweFxufVxuXG4uYXBleGNoYXJ0cy10b29sdGlwLW1hcmtlciB7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJVxufVxuXG4uYXBleGNoYXJ0cy10b29sdGlwLXNlcmllcy1ncm91cCB7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyXG59XG5cbi5hcGV4Y2hhcnRzLXRvb2x0aXAtc2VyaWVzLWdyb3VwLmFwZXhjaGFydHMtYWN0aXZlIC5hcGV4Y2hhcnRzLXRvb2x0aXAtbWFya2VyIHtcbiAgb3BhY2l0eTogMVxufVxuXG4uYXBleGNoYXJ0cy10b29sdGlwLXNlcmllcy1ncm91cC5hcGV4Y2hhcnRzLWFjdGl2ZSwuYXBleGNoYXJ0cy10b29sdGlwLXNlcmllcy1ncm91cDpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1ib3R0b206IDRweFxufVxuXG4uYXBleGNoYXJ0cy10b29sdGlwLXNlcmllcy1ncm91cC1oaWRkZW4ge1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IDA7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwYWRkaW5nOiAwIWltcG9ydGFudFxufVxuXG4uYXBleGNoYXJ0cy10b29sdGlwLXktZ3JvdXAge1xuICBwYWRkaW5nOiA2cHggMCA1cHhcbn1cblxuLmFwZXhjaGFydHMtY3VzdG9tLXRvb2x0aXAsLmFwZXhjaGFydHMtdG9vbHRpcC1ib3gge1xuICBwYWRkaW5nOiA0cHggOHB4XG59XG5cbi5hcGV4Y2hhcnRzLXRvb2x0aXAtYm94UGxvdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZVxufVxuXG4uYXBleGNoYXJ0cy10b29sdGlwLWJveD5kaXYge1xuICBtYXJnaW46IDRweCAwXG59XG5cbi5hcGV4Y2hhcnRzLXRvb2x0aXAtYm94IHNwYW4udmFsdWUge1xuICBmb250LXdlaWdodDogNzAwXG59XG5cbi5hcGV4Y2hhcnRzLXRvb2x0aXAtcmFuZ2ViYXIge1xuICBwYWRkaW5nOiA1cHggOHB4XG59XG5cbi5hcGV4Y2hhcnRzLXRvb2x0aXAtcmFuZ2ViYXIgLmNhdGVnb3J5IHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICM3Nzdcbn1cblxuLmFwZXhjaGFydHMtdG9vbHRpcC1yYW5nZWJhciAuc2VyaWVzLW5hbWUge1xuICBmb250LXdlaWdodDogNzAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogNXB4XG59XG5cbi5hcGV4Y2hhcnRzLXhheGlzdG9vbHRpcCwuYXBleGNoYXJ0cy15YXhpc3Rvb2x0aXAge1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6ICMzNzNkM2Y7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG4gIGJhY2tncm91bmQ6ICNlY2VmZjE7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5MGE0YWVcbn1cblxuLmFwZXhjaGFydHMteGF4aXN0b29sdGlwIHtcbiAgcGFkZGluZzogOXB4IDEwcHg7XG4gIHRyYW5zaXRpb246IC4xNXMgZWFzZSBhbGxcbn1cblxuLmFwZXhjaGFydHMteGF4aXN0b29sdGlwLmFwZXhjaGFydHMtdGhlbWUtZGFyayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjcpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLC41KTtcbiAgY29sb3I6ICNmZmZcbn1cblxuLmFwZXhjaGFydHMteGF4aXN0b29sdGlwOmFmdGVyLC5hcGV4Y2hhcnRzLXhheGlzdG9vbHRpcDpiZWZvcmUge1xuICBsZWZ0OiA1MCU7XG4gIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gIGNvbnRlbnQ6ICIgIjtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZVxufVxuXG4uYXBleGNoYXJ0cy14YXhpc3Rvb2x0aXA6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItd2lkdGg6IDZweDtcbiAgbWFyZ2luLWxlZnQ6IC02cHhcbn1cblxuLmFwZXhjaGFydHMteGF4aXN0b29sdGlwOmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci13aWR0aDogN3B4O1xuICBtYXJnaW4tbGVmdDogLTdweFxufVxuXG4uYXBleGNoYXJ0cy14YXhpc3Rvb2x0aXAtYm90dG9tOmFmdGVyLC5hcGV4Y2hhcnRzLXhheGlzdG9vbHRpcC1ib3R0b206YmVmb3JlIHtcbiAgYm90dG9tOiAxMDAlXG59XG5cbi5hcGV4Y2hhcnRzLXhheGlzdG9vbHRpcC10b3A6YWZ0ZXIsLmFwZXhjaGFydHMteGF4aXN0b29sdGlwLXRvcDpiZWZvcmUge1xuICB0b3A6IDEwMCVcbn1cblxuLmFwZXhjaGFydHMteGF4aXN0b29sdGlwLWJvdHRvbTphZnRlciB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNlY2VmZjFcbn1cblxuLmFwZXhjaGFydHMteGF4aXN0b29sdGlwLWJvdHRvbTpiZWZvcmUge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjOTBhNGFlXG59XG5cbi5hcGV4Y2hhcnRzLXhheGlzdG9vbHRpcC1ib3R0b20uYXBleGNoYXJ0cy10aGVtZS1kYXJrOmFmdGVyLC5hcGV4Y2hhcnRzLXhheGlzdG9vbHRpcC1ib3R0b20uYXBleGNoYXJ0cy10aGVtZS1kYXJrOmJlZm9yZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwwLDAsLjUpXG59XG5cbi5hcGV4Y2hhcnRzLXhheGlzdG9vbHRpcC10b3A6YWZ0ZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZWNlZmYxXG59XG5cbi5hcGV4Y2hhcnRzLXhheGlzdG9vbHRpcC10b3A6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzkwYTRhZVxufVxuXG4uYXBleGNoYXJ0cy14YXhpc3Rvb2x0aXAtdG9wLmFwZXhjaGFydHMtdGhlbWUtZGFyazphZnRlciwuYXBleGNoYXJ0cy14YXhpc3Rvb2x0aXAtdG9wLmFwZXhjaGFydHMtdGhlbWUtZGFyazpiZWZvcmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsMCwwLC41KVxufVxuXG4uYXBleGNoYXJ0cy14YXhpc3Rvb2x0aXAuYXBleGNoYXJ0cy1hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiAuMTVzIGVhc2UgYWxsXG59XG5cbi5hcGV4Y2hhcnRzLXlheGlzdG9vbHRpcCB7XG4gIHBhZGRpbmc6IDRweCAxMHB4XG59XG5cbi5hcGV4Y2hhcnRzLXlheGlzdG9vbHRpcC5hcGV4Y2hhcnRzLXRoZW1lLWRhcmsge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC43KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwuNSk7XG4gIGNvbG9yOiAjZmZmXG59XG5cbi5hcGV4Y2hhcnRzLXlheGlzdG9vbHRpcDphZnRlciwuYXBleGNoYXJ0cy15YXhpc3Rvb2x0aXA6YmVmb3JlIHtcbiAgdG9wOiA1MCU7XG4gIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gIGNvbnRlbnQ6ICIgIjtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZVxufVxuXG4uYXBleGNoYXJ0cy15YXhpc3Rvb2x0aXA6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItd2lkdGg6IDZweDtcbiAgbWFyZ2luLXRvcDogLTZweFxufVxuXG4uYXBleGNoYXJ0cy15YXhpc3Rvb2x0aXA6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXdpZHRoOiA3cHg7XG4gIG1hcmdpbi10b3A6IC03cHhcbn1cblxuLmFwZXhjaGFydHMteWF4aXN0b29sdGlwLWxlZnQ6YWZ0ZXIsLmFwZXhjaGFydHMteWF4aXN0b29sdGlwLWxlZnQ6YmVmb3JlIHtcbiAgbGVmdDogMTAwJVxufVxuXG4uYXBleGNoYXJ0cy15YXhpc3Rvb2x0aXAtcmlnaHQ6YWZ0ZXIsLmFwZXhjaGFydHMteWF4aXN0b29sdGlwLXJpZ2h0OmJlZm9yZSB7XG4gIHJpZ2h0OiAxMDAlXG59XG5cbi5hcGV4Y2hhcnRzLXlheGlzdG9vbHRpcC1sZWZ0OmFmdGVyIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNlY2VmZjFcbn1cblxuLmFwZXhjaGFydHMteWF4aXN0b29sdGlwLWxlZnQ6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM5MGE0YWVcbn1cblxuLmFwZXhjaGFydHMteWF4aXN0b29sdGlwLWxlZnQuYXBleGNoYXJ0cy10aGVtZS1kYXJrOmFmdGVyLC5hcGV4Y2hhcnRzLXlheGlzdG9vbHRpcC1sZWZ0LmFwZXhjaGFydHMtdGhlbWUtZGFyazpiZWZvcmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgwLDAsMCwuNSlcbn1cblxuLmFwZXhjaGFydHMteWF4aXN0b29sdGlwLXJpZ2h0OmFmdGVyIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjZWNlZmYxXG59XG5cbi5hcGV4Y2hhcnRzLXlheGlzdG9vbHRpcC1yaWdodDpiZWZvcmUge1xuICBib3JkZXItcmlnaHQtY29sb3I6ICM5MGE0YWVcbn1cblxuLmFwZXhjaGFydHMteWF4aXN0b29sdGlwLXJpZ2h0LmFwZXhjaGFydHMtdGhlbWUtZGFyazphZnRlciwuYXBleGNoYXJ0cy15YXhpc3Rvb2x0aXAtcmlnaHQuYXBleGNoYXJ0cy10aGVtZS1kYXJrOmJlZm9yZSB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgwLDAsMCwuNSlcbn1cblxuLmFwZXhjaGFydHMteWF4aXN0b29sdGlwLmFwZXhjaGFydHMtYWN0aXZlIHtcbiAgb3BhY2l0eTogMVxufVxuXG4uYXBleGNoYXJ0cy15YXhpc3Rvb2x0aXAtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZVxufVxuXG4uYXBleGNoYXJ0cy14Y3Jvc3NoYWlycywuYXBleGNoYXJ0cy15Y3Jvc3NoYWlycyB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiAuMTVzIGVhc2UgYWxsXG59XG5cbi5hcGV4Y2hhcnRzLXhjcm9zc2hhaXJzLmFwZXhjaGFydHMtYWN0aXZlLC5hcGV4Y2hhcnRzLXljcm9zc2hhaXJzLmFwZXhjaGFydHMtYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogLjE1cyBlYXNlIGFsbFxufVxuXG4uYXBleGNoYXJ0cy15Y3Jvc3NoYWlycy1oaWRkZW4ge1xuICBvcGFjaXR5OiAwXG59XG5cbi5hcGV4Y2hhcnRzLXNlbGVjdGlvbi1yZWN0IHtcbiAgY3Vyc29yOiBtb3ZlXG59XG5cbi5zdmdfc2VsZWN0X2JvdW5kaW5nUmVjdCwuc3ZnX3NlbGVjdF9wb2ludHNfcm90IHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlblxufVxuXG4uYXBleGNoYXJ0cy1zZWxlY3Rpb24tcmVjdCtnIC5zdmdfc2VsZWN0X2JvdW5kaW5nUmVjdCwuYXBleGNoYXJ0cy1zZWxlY3Rpb24tcmVjdCtnIC5zdmdfc2VsZWN0X3BvaW50c19yb3Qge1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW5cbn1cblxuLmFwZXhjaGFydHMtc2VsZWN0aW9uLXJlY3QrZyAuc3ZnX3NlbGVjdF9wb2ludHNfbCwuYXBleGNoYXJ0cy1zZWxlY3Rpb24tcmVjdCtnIC5zdmdfc2VsZWN0X3BvaW50c19yIHtcbiAgY3Vyc29yOiBldy1yZXNpemU7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGVcbn1cblxuLnN2Z19zZWxlY3RfcG9pbnRzIHtcbiAgZmlsbDogI2VmZWZlZjtcbiAgc3Ryb2tlOiAjMzMzO1xuICByeDogMlxufVxuXG4uYXBleGNoYXJ0cy1zdmcuYXBleGNoYXJ0cy16b29tYWJsZS5ob3ZlcmluZy16b29tIHtcbiAgY3Vyc29yOiBjcm9zc2hhaXJcbn1cblxuLmFwZXhjaGFydHMtc3ZnLmFwZXhjaGFydHMtem9vbWFibGUuaG92ZXJpbmctcGFuIHtcbiAgY3Vyc29yOiBtb3ZlXG59XG5cbi5hcGV4Y2hhcnRzLW1lbnUtaWNvbiwuYXBleGNoYXJ0cy1wYW4taWNvbiwuYXBleGNoYXJ0cy1yZXNldC1pY29uLC5hcGV4Y2hhcnRzLXNlbGVjdGlvbi1pY29uLC5hcGV4Y2hhcnRzLXRvb2xiYXItY3VzdG9tLWljb24sLmFwZXhjaGFydHMtem9vbS1pY29uLC5hcGV4Y2hhcnRzLXpvb21pbi1pY29uLC5hcGV4Y2hhcnRzLXpvb21vdXQtaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGNvbG9yOiAjNmU4MTkyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXJcbn1cblxuLmFwZXhjaGFydHMtbWVudS1pY29uIHN2ZywuYXBleGNoYXJ0cy1yZXNldC1pY29uIHN2ZywuYXBleGNoYXJ0cy16b29tLWljb24gc3ZnLC5hcGV4Y2hhcnRzLXpvb21pbi1pY29uIHN2ZywuYXBleGNoYXJ0cy16b29tb3V0LWljb24gc3ZnIHtcbiAgZmlsbDogIzZlODE5MlxufVxuXG4uYXBleGNoYXJ0cy1zZWxlY3Rpb24taWNvbiBzdmcge1xuICBmaWxsOiAjNDQ0O1xuICB0cmFuc2Zvcm06IHNjYWxlKC43Nilcbn1cblxuLmFwZXhjaGFydHMtdGhlbWUtZGFyayAuYXBleGNoYXJ0cy1tZW51LWljb24gc3ZnLC5hcGV4Y2hhcnRzLXRoZW1lLWRhcmsgLmFwZXhjaGFydHMtcGFuLWljb24gc3ZnLC5hcGV4Y2hhcnRzLXRoZW1lLWRhcmsgLmFwZXhjaGFydHMtcmVzZXQtaWNvbiBzdmcsLmFwZXhjaGFydHMtdGhlbWUtZGFyayAuYXBleGNoYXJ0cy1zZWxlY3Rpb24taWNvbiBzdmcsLmFwZXhjaGFydHMtdGhlbWUtZGFyayAuYXBleGNoYXJ0cy10b29sYmFyLWN1c3RvbS1pY29uIHN2ZywuYXBleGNoYXJ0cy10aGVtZS1kYXJrIC5hcGV4Y2hhcnRzLXpvb20taWNvbiBzdmcsLmFwZXhjaGFydHMtdGhlbWUtZGFyayAuYXBleGNoYXJ0cy16b29taW4taWNvbiBzdmcsLmFwZXhjaGFydHMtdGhlbWUtZGFyayAuYXBleGNoYXJ0cy16b29tb3V0LWljb24gc3ZnIHtcbiAgZmlsbDogI2YzZjRmNVxufVxuXG4uYXBleGNoYXJ0cy1jYW52YXMgLmFwZXhjaGFydHMtcmVzZXQtem9vbS1pY29uLmFwZXhjaGFydHMtc2VsZWN0ZWQgc3ZnLC5hcGV4Y2hhcnRzLWNhbnZhcyAuYXBleGNoYXJ0cy1zZWxlY3Rpb24taWNvbi5hcGV4Y2hhcnRzLXNlbGVjdGVkIHN2ZywuYXBleGNoYXJ0cy1jYW52YXMgLmFwZXhjaGFydHMtem9vbS1pY29uLmFwZXhjaGFydHMtc2VsZWN0ZWQgc3ZnIHtcbiAgZmlsbDogIzAwOGZmYlxufVxuXG4uYXBleGNoYXJ0cy10aGVtZS1saWdodCAuYXBleGNoYXJ0cy1tZW51LWljb246aG92ZXIgc3ZnLC5hcGV4Y2hhcnRzLXRoZW1lLWxpZ2h0IC5hcGV4Y2hhcnRzLXJlc2V0LWljb246aG92ZXIgc3ZnLC5hcGV4Y2hhcnRzLXRoZW1lLWxpZ2h0IC5hcGV4Y2hhcnRzLXNlbGVjdGlvbi1pY29uOm5vdCguYXBleGNoYXJ0cy1zZWxlY3RlZCk6aG92ZXIgc3ZnLC5hcGV4Y2hhcnRzLXRoZW1lLWxpZ2h0IC5hcGV4Y2hhcnRzLXpvb20taWNvbjpub3QoLmFwZXhjaGFydHMtc2VsZWN0ZWQpOmhvdmVyIHN2ZywuYXBleGNoYXJ0cy10aGVtZS1saWdodCAuYXBleGNoYXJ0cy16b29taW4taWNvbjpob3ZlciBzdmcsLmFwZXhjaGFydHMtdGhlbWUtbGlnaHQgLmFwZXhjaGFydHMtem9vbW91dC1pY29uOmhvdmVyIHN2ZyB7XG4gIGZpbGw6ICMzMzNcbn1cblxuLmFwZXhjaGFydHMtbWVudS1pY29uLC5hcGV4Y2hhcnRzLXNlbGVjdGlvbi1pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlXG59XG5cbi5hcGV4Y2hhcnRzLXJlc2V0LWljb24ge1xuICBtYXJnaW4tbGVmdDogNXB4XG59XG5cbi5hcGV4Y2hhcnRzLW1lbnUtaWNvbiwuYXBleGNoYXJ0cy1yZXNldC1pY29uLC5hcGV4Y2hhcnRzLXpvb20taWNvbiB7XG4gIHRyYW5zZm9ybTogc2NhbGUoLjg1KVxufVxuXG4uYXBleGNoYXJ0cy16b29taW4taWNvbiwuYXBleGNoYXJ0cy16b29tb3V0LWljb24ge1xuICB0cmFuc2Zvcm06IHNjYWxlKC43KVxufVxuXG4uYXBleGNoYXJ0cy16b29tb3V0LWljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDNweFxufVxuXG4uYXBleGNoYXJ0cy1wYW4taWNvbiB7XG4gIHRyYW5zZm9ybTogc2NhbGUoLjYyKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAxcHg7XG4gIHRvcDogMFxufVxuXG4uYXBleGNoYXJ0cy1wYW4taWNvbiBzdmcge1xuICBmaWxsOiAjZmZmO1xuICBzdHJva2U6ICM2ZTgxOTI7XG4gIHN0cm9rZS13aWR0aDogMlxufVxuXG4uYXBleGNoYXJ0cy1wYW4taWNvbi5hcGV4Y2hhcnRzLXNlbGVjdGVkIHN2ZyB7XG4gIHN0cm9rZTogIzAwOGZmYlxufVxuXG4uYXBleGNoYXJ0cy1wYW4taWNvbjpub3QoLmFwZXhjaGFydHMtc2VsZWN0ZWQpOmhvdmVyIHN2ZyB7XG4gIHN0cm9rZTogIzMzM1xufVxuXG4uYXBleGNoYXJ0cy10b29sYmFyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMTtcbiAgbWF4LXdpZHRoOiAxNzZweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgcGFkZGluZzogMCA2cHggMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXJcbn1cblxuLmFwZXhjaGFydHMtbWVudSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHBhZGRpbmc6IDNweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIG9wYWNpdHk6IDA7XG4gIG1pbi13aWR0aDogMTEwcHg7XG4gIHRyYW5zaXRpb246IC4xNXMgZWFzZSBhbGw7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lXG59XG5cbi5hcGV4Y2hhcnRzLW1lbnUuYXBleGNoYXJ0cy1tZW51LW9wZW4ge1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xuICB0cmFuc2l0aW9uOiAuMTVzIGVhc2UgYWxsXG59XG5cbi5hcGV4Y2hhcnRzLW1lbnUtaXRlbSB7XG4gIHBhZGRpbmc6IDZweCA3cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY3Vyc29yOiBwb2ludGVyXG59XG5cbi5hcGV4Y2hhcnRzLXRoZW1lLWxpZ2h0IC5hcGV4Y2hhcnRzLW1lbnUtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNlZWVcbn1cblxuLmFwZXhjaGFydHMtdGhlbWUtZGFyayAuYXBleGNoYXJ0cy1tZW51IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuNyk7XG4gIGNvbG9yOiAjZmZmXG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NzY4cHgpIHtcbiAgLmFwZXhjaGFydHMtY2FudmFzOmhvdmVyIC5hcGV4Y2hhcnRzLXRvb2xiYXIge1xuICAgICAgb3BhY2l0eTogMVxuICB9XG59XG5cbi5hcGV4Y2hhcnRzLWNhbnZhcyAuYXBleGNoYXJ0cy1lbGVtZW50LWhpZGRlbiwuYXBleGNoYXJ0cy1kYXRhbGFiZWwuYXBleGNoYXJ0cy1lbGVtZW50LWhpZGRlbiwuYXBleGNoYXJ0cy1oaWRlIC5hcGV4Y2hhcnRzLXNlcmllcy1wb2ludHMge1xuICBvcGFjaXR5OiAwXG59XG5cbi5hcGV4Y2hhcnRzLWRhdGFsYWJlbCwuYXBleGNoYXJ0cy1kYXRhbGFiZWwtbGFiZWwsLmFwZXhjaGFydHMtZGF0YWxhYmVsLXZhbHVlLC5hcGV4Y2hhcnRzLWRhdGFsYWJlbHMsLmFwZXhjaGFydHMtcGllLWxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZVxufVxuXG4uYXBleGNoYXJ0cy1waWUtbGFiZWwtZGVsYXkge1xuICBvcGFjaXR5OiAwO1xuICBhbmltYXRpb24tbmFtZTogb3BhcXVlO1xuICBhbmltYXRpb24tZHVyYXRpb246IC4zcztcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Vcbn1cblxuLmFwZXhjaGFydHMtYW5ub3RhdGlvbi1yZWN0LC5hcGV4Y2hhcnRzLWFyZWEtc2VyaWVzIC5hcGV4Y2hhcnRzLWFyZWEsLmFwZXhjaGFydHMtYXJlYS1zZXJpZXMgLmFwZXhjaGFydHMtc2VyaWVzLW1hcmtlcnMgLmFwZXhjaGFydHMtbWFya2VyLm5vLXBvaW50ZXItZXZlbnRzLC5hcGV4Y2hhcnRzLWdyaWRsaW5lLC5hcGV4Y2hhcnRzLWxpbmUsLmFwZXhjaGFydHMtbGluZS1zZXJpZXMgLmFwZXhjaGFydHMtc2VyaWVzLW1hcmtlcnMgLmFwZXhjaGFydHMtbWFya2VyLm5vLXBvaW50ZXItZXZlbnRzLC5hcGV4Y2hhcnRzLXBvaW50LWFubm90YXRpb24tbGFiZWwsLmFwZXhjaGFydHMtcmFkYXItc2VyaWVzIHBhdGgsLmFwZXhjaGFydHMtcmFkYXItc2VyaWVzIHBvbHlnb24sLmFwZXhjaGFydHMtdG9vbGJhciBzdmcsLmFwZXhjaGFydHMtdG9vbHRpcCAuYXBleGNoYXJ0cy1tYXJrZXIsLmFwZXhjaGFydHMteGF4aXMtYW5ub3RhdGlvbi1sYWJlbCwuYXBleGNoYXJ0cy15YXhpcy1hbm5vdGF0aW9uLWxhYmVsLC5hcGV4Y2hhcnRzLXpvb20tcmVjdCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lXG59XG5cbi5hcGV4Y2hhcnRzLW1hcmtlciB7XG4gIHRyYW5zaXRpb246IC4xNXMgZWFzZSBhbGxcbn1cblxuLnJlc2l6ZS10cmlnZ2VycyB7XG4gIGFuaW1hdGlvbjogMW1zIHJlc2l6ZWFuaW07XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlblxufVxuXG4uY29udHJhY3QtdHJpZ2dlcjpiZWZvcmUsLnJlc2l6ZS10cmlnZ2VycywucmVzaXplLXRyaWdnZXJzPmRpdiB7XG4gIGNvbnRlbnQ6ICIgIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwXG59XG5cbi5yZXNpemUtdHJpZ2dlcnM+ZGl2IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2VlZTtcbiAgb3ZlcmZsb3c6IGF1dG9cbn1cblxuLmNvbnRyYWN0LXRyaWdnZXI6YmVmb3JlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDIwMCU7XG4gIGhlaWdodDogMjAwJVxufVxuJyxuP2EucHJlcGVuZCh0LmNzcyk6ci5oZWFkLmFwcGVuZENoaWxkKHQuY3NzKSl9dmFyIGw9dC5jcmVhdGUodC53LmNvbmZpZy5zZXJpZXMse30pO2lmKCFsKXJldHVybiBlKHQpO3QubW91bnQobCkudGhlbigoZnVuY3Rpb24oKXsiZnVuY3Rpb24iPT10eXBlb2YgdC53LmNvbmZpZy5jaGFydC5ldmVudHMubW91bnRlZCYmdC53LmNvbmZpZy5jaGFydC5ldmVudHMubW91bnRlZCh0LHQudyksdC5ldmVudHMuZmlyZUV2ZW50KCJtb3VudGVkIixbdCx0LnddKSxlKGwpfSkpLmNhdGNoKChmdW5jdGlvbih0KXtpKHQpfSkpfWVsc2UgaShuZXcgRXJyb3IoIkVsZW1lbnQgbm90IGZvdW5kIikpfSkpfX0se2tleToiY3JlYXRlIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudztuZXcgSHQodGhpcykuaW5pdE1vZHVsZXMoKTt2YXIgcz10aGlzLncuZ2xvYmFscztpZihzLm5vRGF0YT0hMSxzLmFuaW1hdGlvbkVuZGVkPSExLHRoaXMucmVzcG9uc2l2ZS5jaGVja1Jlc3BvbnNpdmVDb25maWcoZSksaS5jb25maWcueGF4aXMuY29udmVydGVkQ2F0VG9OdW1lcmljJiZuZXcgRChpLmNvbmZpZykuY29udmVydENhdFRvTnVtZXJpY1hheGlzKGkuY29uZmlnLHRoaXMuY3R4KSxudWxsPT09dGhpcy5lbClyZXR1cm4gcy5hbmltYXRpb25FbmRlZD0hMCxudWxsO2lmKHRoaXMuY29yZS5zZXR1cEVsZW1lbnRzKCksInRyZWVtYXAiPT09aS5jb25maWcuY2hhcnQudHlwZSYmKGkuY29uZmlnLmdyaWQuc2hvdz0hMSxpLmNvbmZpZy55YXhpc1swXS5zaG93PSExKSwwPT09cy5zdmdXaWR0aClyZXR1cm4gcy5hbmltYXRpb25FbmRlZD0hMCxudWxsO3ZhciBhPVMuY2hlY2tDb21ib1Nlcmllcyh0KTtzLmNvbWJvQ2hhcnRzPWEuY29tYm9DaGFydHMscy5jb21ib0JhckNvdW50PWEuY29tYm9CYXJDb3VudDt2YXIgbj10LmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5kYXRhJiYwPT09dC5kYXRhLmxlbmd0aH0pKTsoMD09PXQubGVuZ3RofHxuKSYmdGhpcy5zZXJpZXMuaGFuZGxlTm9EYXRhKCksdGhpcy5ldmVudHMuc2V0dXBFdmVudEhhbmRsZXJzKCksdGhpcy5kYXRhLnBhcnNlRGF0YSh0KSx0aGlzLnRoZW1lLmluaXQoKSxuZXcgQih0aGlzKS5zZXRHbG9iYWxNYXJrZXJTaXplKCksdGhpcy5mb3JtYXR0ZXJzLnNldExhYmVsRm9ybWF0dGVycygpLHRoaXMudGl0bGVTdWJ0aXRsZS5kcmF3KCkscy5ub0RhdGEmJnMuY29sbGFwc2VkU2VyaWVzLmxlbmd0aCE9PXMuc2VyaWVzLmxlbmd0aCYmIWkuY29uZmlnLmxlZ2VuZC5zaG93Rm9yU2luZ2xlU2VyaWVzfHx0aGlzLmxlZ2VuZC5pbml0KCksdGhpcy5zZXJpZXMuaGFzQWxsU2VyaWVzRXF1YWxYKCkscy5heGlzQ2hhcnRzJiYodGhpcy5jb3JlLmNvcmVDYWxjdWxhdGlvbnMoKSwiY2F0ZWdvcnkiIT09aS5jb25maWcueGF4aXMudHlwZSYmdGhpcy5mb3JtYXR0ZXJzLnNldExhYmVsRm9ybWF0dGVycygpLHRoaXMuY3R4LnRvb2xiYXIubWluWD1pLmdsb2JhbHMubWluWCx0aGlzLmN0eC50b29sYmFyLm1heFg9aS5nbG9iYWxzLm1heFgpLHRoaXMuZm9ybWF0dGVycy5oZWF0bWFwTGFiZWxGb3JtYXR0ZXJzKCksbmV3IFModGhpcykuZ2V0TGFyZ2VzdE1hcmtlclNpemUoKSx0aGlzLmRpbWVuc2lvbnMucGxvdENvb3JkcygpO3ZhciByPXRoaXMuY29yZS54eVNldHRpbmdzKCk7dGhpcy5ncmlkLmNyZWF0ZUdyaWRNYXNrKCk7dmFyIG89dGhpcy5jb3JlLnBsb3RDaGFydFR5cGUodCxyKSxsPW5ldyBIKHRoaXMpO2wuYnJpbmdGb3J3YXJkKCksaS5jb25maWcuZGF0YUxhYmVscy5iYWNrZ3JvdW5kLmVuYWJsZWQmJmwuZGF0YUxhYmVsc0JhY2tncm91bmQoKSx0aGlzLmNvcmUuc2hpZnRHcmFwaFBvc2l0aW9uKCk7dmFyIGM9e3Bsb3Q6e2xlZnQ6aS5nbG9iYWxzLnRyYW5zbGF0ZVgsdG9wOmkuZ2xvYmFscy50cmFuc2xhdGVZLHdpZHRoOmkuZ2xvYmFscy5ncmlkV2lkdGgsaGVpZ2h0OmkuZ2xvYmFscy5ncmlkSGVpZ2h0fX07cmV0dXJue2VsR3JhcGg6byx4eVJhdGlvczpyLGVsSW5uZXI6aS5nbG9iYWxzLmRvbS5lbEdyYXBoaWNhbCxkaW1lbnNpb25zOmN9fX0se2tleToibW91bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsLGk9dGhpcyxzPWkudztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGEsbil7aWYobnVsbD09PWkuZWwpcmV0dXJuIG4obmV3IEVycm9yKCJOb3QgZW5vdWdoIGRhdGEgdG8gZGlzcGxheSBvciB0YXJnZXQgZWxlbWVudCBub3QgZm91bmQiKSk7KG51bGw9PT1lfHxzLmdsb2JhbHMuYWxsU2VyaWVzQ29sbGFwc2VkKSYmaS5zZXJpZXMuaGFuZGxlTm9EYXRhKCksaS5ncmlkPW5ldyBVKGkpO3ZhciByPWkuZ3JpZC5kcmF3R3JpZCgpOyJ0cmVlbWFwIiE9PXMuY29uZmlnLmNoYXJ0LnR5cGUmJmkuYXhlcy5kcmF3QXhpcyhzLmNvbmZpZy5jaGFydC50eXBlLHIpLGkuYW5ub3RhdGlvbnM9bmV3IE0oaSksaS5hbm5vdGF0aW9ucy5kcmF3SW1hZ2VBbm5vcygpLGkuYW5ub3RhdGlvbnMuZHJhd1RleHRBbm5vcygpLCJiYWNrIj09PXMuY29uZmlnLmdyaWQucG9zaXRpb24mJnImJnMuZ2xvYmFscy5kb20uZWxHcmFwaGljYWwuYWRkKHIuZWwpO3ZhciBvPW5ldyBHKHQuY3R4LHIpLGw9bmV3IEsodC5jdHgscik7aWYobnVsbCE9PXImJihvLnhBeGlzTGFiZWxDb3JyZWN0aW9ucyhyLnhBeGlzVGlja1dpZHRoKSxsLnNldFlBeGlzVGV4dEFsaWdubWVudHMoKSxzLmNvbmZpZy55YXhpcy5tYXAoKGZ1bmN0aW9uKHQsZSl7LTE9PT1zLmdsb2JhbHMuaWdub3JlWUF4aXNJbmRleGVzLmluZGV4T2YoZSkmJmwueUF4aXNUaXRsZVJvdGF0ZShlLHQub3Bwb3NpdGUpfSkpKSwiYmFjayI9PT1zLmNvbmZpZy5hbm5vdGF0aW9ucy5wb3NpdGlvbiYmKHMuZ2xvYmFscy5kb20uUGFwZXIuYWRkKHMuZ2xvYmFscy5kb20uZWxBbm5vdGF0aW9ucyksaS5hbm5vdGF0aW9ucy5kcmF3QXhlc0Fubm90YXRpb25zKCkpLEFycmF5LmlzQXJyYXkoZS5lbEdyYXBoKSlmb3IodmFyIGM9MDtjPGUuZWxHcmFwaC5sZW5ndGg7YysrKXMuZ2xvYmFscy5kb20uZWxHcmFwaGljYWwuYWRkKGUuZWxHcmFwaFtjXSk7ZWxzZSBzLmdsb2JhbHMuZG9tLmVsR3JhcGhpY2FsLmFkZChlLmVsR3JhcGgpO2lmKCJmcm9udCI9PT1zLmNvbmZpZy5ncmlkLnBvc2l0aW9uJiZyJiZzLmdsb2JhbHMuZG9tLmVsR3JhcGhpY2FsLmFkZChyLmVsKSxyJiZyLmVsR3JpZEJvcmRlcnMmJnIuZWxHcmlkQm9yZGVycy5ub2RlJiZzLmdsb2JhbHMuZG9tLmVsR3JhcGhpY2FsLmFkZChyLmVsR3JpZEJvcmRlcnMpLCJmcm9udCI9PT1zLmNvbmZpZy54YXhpcy5jcm9zc2hhaXJzLnBvc2l0aW9uJiZpLmNyb3NzaGFpcnMuZHJhd1hDcm9zc2hhaXJzKCksImZyb250Ij09PXMuY29uZmlnLnlheGlzWzBdLmNyb3NzaGFpcnMucG9zaXRpb24mJmkuY3Jvc3NoYWlycy5kcmF3WUNyb3NzaGFpcnMoKSwiZnJvbnQiPT09cy5jb25maWcuYW5ub3RhdGlvbnMucG9zaXRpb24mJihzLmdsb2JhbHMuZG9tLlBhcGVyLmFkZChzLmdsb2JhbHMuZG9tLmVsQW5ub3RhdGlvbnMpLGkuYW5ub3RhdGlvbnMuZHJhd0F4ZXNBbm5vdGF0aW9ucygpKSwhcy5nbG9iYWxzLm5vRGF0YSl7aWYocy5jb25maWcudG9vbHRpcC5lbmFibGVkJiYhcy5nbG9iYWxzLm5vRGF0YSYmaS53Lmdsb2JhbHMudG9vbHRpcC5kcmF3VG9vbHRpcChlLnh5UmF0aW9zKSxzLmdsb2JhbHMuYXhpc0NoYXJ0cyYmKHMuZ2xvYmFscy5pc1hOdW1lcmljfHxzLmNvbmZpZy54YXhpcy5jb252ZXJ0ZWRDYXRUb051bWVyaWN8fHMuZ2xvYmFscy5pc1JhbmdlQmFyKSkocy5jb25maWcuY2hhcnQuem9vbS5lbmFibGVkfHxzLmNvbmZpZy5jaGFydC5zZWxlY3Rpb24mJnMuY29uZmlnLmNoYXJ0LnNlbGVjdGlvbi5lbmFibGVkfHxzLmNvbmZpZy5jaGFydC5wYW4mJnMuY29uZmlnLmNoYXJ0LnBhbi5lbmFibGVkKSYmaS56b29tUGFuU2VsZWN0aW9uLmluaXQoe3h5UmF0aW9zOmUueHlSYXRpb3N9KTtlbHNle3ZhciBoPXMuY29uZmlnLmNoYXJ0LnRvb2xiYXIudG9vbHM7WyJ6b29tIiwiem9vbWluIiwiem9vbW91dCIsInNlbGVjdGlvbiIsInBhbiIsInJlc2V0Il0uZm9yRWFjaCgoZnVuY3Rpb24odCl7aFt0XT0hMX0pKX1zLmNvbmZpZy5jaGFydC50b29sYmFyLnNob3cmJiFzLmdsb2JhbHMuYWxsU2VyaWVzQ29sbGFwc2VkJiZpLnRvb2xiYXIuY3JlYXRlVG9vbGJhcigpfXMuZ2xvYmFscy5tZW1vcnkubWV0aG9kc1RvRXhlYy5sZW5ndGg+MCYmcy5nbG9iYWxzLm1lbW9yeS5tZXRob2RzVG9FeGVjLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QubWV0aG9kKHQucGFyYW1zLCExLHQuY29udGV4dCl9KSkscy5nbG9iYWxzLmF4aXNDaGFydHN8fHMuZ2xvYmFscy5ub0RhdGF8fGkuY29yZS5yZXNpemVOb25BeGlzQ2hhcnRzKCksYShpKX0pKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLndpbmRvd1Jlc2l6ZUhhbmRsZXIpLHRoaXMuZWwucGFyZW50Tm9kZSx0PXRoaXMucGFyZW50UmVzaXplSGFuZGxlciwoZT1XdC5nZXQodCkpJiYoZS5kaXNjb25uZWN0KCksV3QuZGVsZXRlKHQpKTt2YXIgaT10aGlzLncuY29uZmlnLmNoYXJ0LmlkO2kmJkFwZXguX2NoYXJ0SW5zdGFuY2VzLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dC5pZD09PWIuZXNjYXBlU3RyaW5nKGkpJiZBcGV4Ll9jaGFydEluc3RhbmNlcy5zcGxpY2UoZSwxKX0pKSxuZXcgWXQodGhpcy5jdHgpLmNsZWFyKHtpc1VwZGF0aW5nOiExfSl9fSx7a2V5OiJ1cGRhdGVPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxzPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sYT0hKGFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdKXx8YXJndW1lbnRzWzNdLG49IShhcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XSl8fGFyZ3VtZW50c1s0XSxyPXRoaXMudztyZXR1cm4gci5nbG9iYWxzLnNlbGVjdGlvbj12b2lkIDAsdC5zZXJpZXMmJih0aGlzLnNlcmllcy5yZXNldFNlcmllcyghMSwhMCwhMSksdC5zZXJpZXMubGVuZ3RoJiZ0LnNlcmllc1swXS5kYXRhJiYodC5zZXJpZXM9dC5zZXJpZXMubWFwKChmdW5jdGlvbih0LGkpe3JldHVybiBlLnVwZGF0ZUhlbHBlcnMuX2V4dGVuZFNlcmllcyh0LGkpfSkpKSx0aGlzLnVwZGF0ZUhlbHBlcnMucmV2ZXJ0RGVmYXVsdEF4aXNNaW5NYXgoKSksdC54YXhpcyYmKHQ9dGhpcy51cGRhdGVIZWxwZXJzLmZvcmNlWEF4aXNVcGRhdGUodCkpLHQueWF4aXMmJih0PXRoaXMudXBkYXRlSGVscGVycy5mb3JjZVlBeGlzVXBkYXRlKHQpKSxyLmdsb2JhbHMuY29sbGFwc2VkU2VyaWVzSW5kaWNlcy5sZW5ndGg+MCYmdGhpcy5zZXJpZXMuY2xlYXJQcmV2aW91c1BhdGhzKCksdC50aGVtZSYmKHQ9dGhpcy50aGVtZS51cGRhdGVUaGVtZU9wdGlvbnModCkpLHRoaXMudXBkYXRlSGVscGVycy5fdXBkYXRlT3B0aW9ucyh0LGkscyxhLG4pfX0se2tleToidXBkYXRlU2VyaWVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXSxlPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0saT0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO3JldHVybiB0aGlzLnNlcmllcy5yZXNldFNlcmllcyghMSksdGhpcy51cGRhdGVIZWxwZXJzLnJldmVydERlZmF1bHRBeGlzTWluTWF4KCksdGhpcy51cGRhdGVIZWxwZXJzLl91cGRhdGVTZXJpZXModCxlLGkpfX0se2tleToiYXBwZW5kU2VyaWVzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdLGk9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxzPXRoaXMudy5jb25maWcuc2VyaWVzLnNsaWNlKCk7cmV0dXJuIHMucHVzaCh0KSx0aGlzLnNlcmllcy5yZXNldFNlcmllcyghMSksdGhpcy51cGRhdGVIZWxwZXJzLnJldmVydERlZmF1bHRBeGlzTWluTWF4KCksdGhpcy51cGRhdGVIZWxwZXJzLl91cGRhdGVTZXJpZXMocyxlLGkpfX0se2tleToiYXBwZW5kRGF0YSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxpPXRoaXM7aS53Lmdsb2JhbHMuZGF0YUNoYW5nZWQ9ITAsaS5zZXJpZXMuZ2V0UHJldmlvdXNQYXRocygpO2Zvcih2YXIgcz1pLncuY29uZmlnLnNlcmllcy5zbGljZSgpLGE9MDthPHMubGVuZ3RoO2ErKylpZihudWxsIT09dFthXSYmdm9pZCAwIT09dFthXSlmb3IodmFyIG49MDtuPHRbYV0uZGF0YS5sZW5ndGg7bisrKXNbYV0uZGF0YS5wdXNoKHRbYV0uZGF0YVtuXSk7cmV0dXJuIGkudy5jb25maWcuc2VyaWVzPXMsZSYmKGkudy5nbG9iYWxzLmluaXRpYWxTZXJpZXM9Yi5jbG9uZShpLncuY29uZmlnLnNlcmllcykpLHRoaXMudXBkYXRlKCl9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihpLHMpe25ldyBZdChlLmN0eCkuY2xlYXIoe2lzVXBkYXRpbmc6ITB9KTt2YXIgYT1lLmNyZWF0ZShlLncuY29uZmlnLnNlcmllcyx0KTtpZighYSlyZXR1cm4gaShlKTtlLm1vdW50KGEpLnRoZW4oKGZ1bmN0aW9uKCl7ImZ1bmN0aW9uIj09dHlwZW9mIGUudy5jb25maWcuY2hhcnQuZXZlbnRzLnVwZGF0ZWQmJmUudy5jb25maWcuY2hhcnQuZXZlbnRzLnVwZGF0ZWQoZSxlLncpLGUuZXZlbnRzLmZpcmVFdmVudCgidXBkYXRlZCIsW2UsZS53XSksZS53Lmdsb2JhbHMuaXNEaXJ0eT0hMCxpKGUpfSkpLmNhdGNoKChmdW5jdGlvbih0KXtzKHQpfSkpfSkpfX0se2tleToiZ2V0U3luY2VkQ2hhcnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0R3JvdXBlZENoYXJ0cygpLGU9W3RoaXNdO3JldHVybiB0Lmxlbmd0aCYmKGU9W10sdC5mb3JFYWNoKChmdW5jdGlvbih0KXtlLnB1c2godCl9KSkpLGV9fSx7a2V5OiJnZXRHcm91cGVkQ2hhcnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIEFwZXguX2NoYXJ0SW5zdGFuY2VzLmZpbHRlcigoZnVuY3Rpb24odCl7aWYodC5ncm91cClyZXR1cm4hMH0pKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0LncuY29uZmlnLmNoYXJ0Lmdyb3VwPT09ZS5ncm91cD9lLmNoYXJ0OnR9KSl9fSx7a2V5OiJ0b2dnbGVTZXJpZXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlcmllcy50b2dnbGVTZXJpZXModCl9fSx7a2V5OiJoaWdobGlnaHRTZXJpZXNPbkxlZ2VuZEhvdmVyIix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnNlcmllcy50b2dnbGVTZXJpZXNPbkhvdmVyKHQsZSl9fSx7a2V5OiJzaG93U2VyaWVzIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLnNlcmllcy5zaG93U2VyaWVzKHQpfX0se2tleToiaGlkZVNlcmllcyIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5zZXJpZXMuaGlkZVNlcmllcyh0KX19LHtrZXk6InJlc2V0U2VyaWVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF0sZT0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO3RoaXMuc2VyaWVzLnJlc2V0U2VyaWVzKHQsZSl9fSx7a2V5OiJhZGRFdmVudExpc3RlbmVyIix2YWx1ZTpmdW5jdGlvbih0LGUpe3RoaXMuZXZlbnRzLmFkZEV2ZW50TGlzdGVuZXIodCxlKX19LHtrZXk6InJlbW92ZUV2ZW50TGlzdGVuZXIiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dGhpcy5ldmVudHMucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGUpfX0se2tleToiYWRkWGF4aXNBbm5vdGF0aW9uIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdLGk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnZvaWQgMCxzPXRoaXM7aSYmKHM9aSkscy5hbm5vdGF0aW9ucy5hZGRYYXhpc0Fubm90YXRpb25FeHRlcm5hbCh0LGUscyl9fSx7a2V5OiJhZGRZYXhpc0Fubm90YXRpb24iLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0saT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dm9pZCAwLHM9dGhpcztpJiYocz1pKSxzLmFubm90YXRpb25zLmFkZFlheGlzQW5ub3RhdGlvbkV4dGVybmFsKHQsZSxzKX19LHtrZXk6ImFkZFBvaW50QW5ub3RhdGlvbiIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxpPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp2b2lkIDAscz10aGlzO2kmJihzPWkpLHMuYW5ub3RhdGlvbnMuYWRkUG9pbnRBbm5vdGF0aW9uRXh0ZXJuYWwodCxlLHMpfX0se2tleToiY2xlYXJBbm5vdGF0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dm9pZCAwLGU9dGhpczt0JiYoZT10KSxlLmFubm90YXRpb25zLmNsZWFyQW5ub3RhdGlvbnMoZSl9fSx7a2V5OiJyZW1vdmVBbm5vdGF0aW9uIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dm9pZCAwLGk9dGhpcztlJiYoaT1lKSxpLmFubm90YXRpb25zLnJlbW92ZUFubm90YXRpb24oaSx0KX19LHtrZXk6ImdldENoYXJ0QXJlYSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53Lmdsb2JhbHMuZG9tLmJhc2VFbC5xdWVyeVNlbGVjdG9yKCIuYXBleGNoYXJ0cy1pbm5lciIpfX0se2tleToiZ2V0U2VyaWVzVG90YWxYUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuY29yZVV0aWxzLmdldFNlcmllc1RvdGFsc1hSYW5nZSh0LGUpfX0se2tleToiZ2V0SGlnaGVzdFZhbHVlSW5TZXJpZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjAsZT1uZXcgWih0aGlzLmN0eCk7cmV0dXJuIGUuZ2V0TWluWU1heFkodCkuaGlnaGVzdFl9fSx7a2V5OiJnZXRMb3dlc3RWYWx1ZUluU2VyaWVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9bmV3IFoodGhpcy5jdHgpO3JldHVybiBlLmdldE1pbllNYXhZKHQpLmxvd2VzdFl9fSx7a2V5OiJnZXRTZXJpZXNUb3RhbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53Lmdsb2JhbHMuc2VyaWVzVG90YWxzfX0se2tleToidG9nZ2xlRGF0YVBvaW50U2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnVwZGF0ZUhlbHBlcnMudG9nZ2xlRGF0YVBvaW50U2VsZWN0aW9uKHQsZSl9fSx7a2V5OiJ6b29tWCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLmN0eC50b29sYmFyLnpvb21VcGRhdGVPcHRpb25zKHQsZSl9fSx7a2V5OiJzZXRMb2NhbGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMubG9jYWxpemF0aW9uLnNldEN1cnJlbnRMb2NhbGVWYWx1ZXModCl9fSx7a2V5OiJkYXRhVVJJIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGoodGhpcy5jdHgpLmRhdGFVUkkodCl9fSx7a2V5OiJleHBvcnRUb0NTViIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sZT1uZXcgaih0aGlzLmN0eCk7cmV0dXJuIGUuZXhwb3J0VG9DU1YodCl9fSx7a2V5OiJwYXBlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53Lmdsb2JhbHMuZG9tLlBhcGVyfX0se2tleToiX3BhcmVudFJlc2l6ZUNhbGxiYWNrIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudy5nbG9iYWxzLmFuaW1hdGlvbkVuZGVkJiZ0aGlzLncuY29uZmlnLmNoYXJ0LnJlZHJhd09uUGFyZW50UmVzaXplJiZ0aGlzLl93aW5kb3dSZXNpemUoKX19LHtrZXk6Il93aW5kb3dSZXNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztjbGVhclRpbWVvdXQodGhpcy53Lmdsb2JhbHMucmVzaXplVGltZXIpLHRoaXMudy5nbG9iYWxzLnJlc2l6ZVRpbWVyPXdpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3Qudy5nbG9iYWxzLnJlc2l6ZWQ9ITAsdC53Lmdsb2JhbHMuZGF0YUNoYW5nZWQ9ITEsdC5jdHgudXBkYXRlKCl9KSwxNTApfX0se2tleToiX3dpbmRvd1Jlc2l6ZUhhbmRsZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53LmNvbmZpZy5jaGFydC5yZWRyYXdPbldpbmRvd1Jlc2l6ZTsiZnVuY3Rpb24iPT10eXBlb2YgdCYmKHQ9dCgpKSx0JiZ0aGlzLl93aW5kb3dSZXNpemUoKX19XSxbe2tleToiZ2V0Q2hhcnRCeUlEIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1iLmVzY2FwZVN0cmluZyh0KSxpPUFwZXguX2NoYXJ0SW5zdGFuY2VzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1lfSkpWzBdO3JldHVybiBpJiZpLmNoYXJ0fX0se2tleToiaW5pdE9uTG9hZCIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtYXBleGNoYXJ0c10iKSxpPTA7aTxlLmxlbmd0aDtpKyspbmV3IHQoZVtpXSxKU09OLnBhcnNlKGVbaV0uZ2V0QXR0cmlidXRlKCJkYXRhLW9wdGlvbnMiKSkpLnJlbmRlcigpfX0se2tleToiZXhlYyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLmdldENoYXJ0QnlJRCh0KTtpZihpKXtpLncuZ2xvYmFscy5pc0V4ZWNDYWxsZWQ9ITA7dmFyIHM9bnVsbDtpZigtMSE9PWkucHVibGljTWV0aG9kcy5pbmRleE9mKGUpKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheShhPjI/YS0yOjApLHI9MjtyPGE7cisrKW5bci0yXT1hcmd1bWVudHNbcl07cz1pW2VdLmFwcGx5KGksbil9cmV0dXJuIHN9fX0se2tleToibWVyZ2UiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGIuZXh0ZW5kKHQsZSl9fV0pLHR9KCk7dC5leHBvcnRzPSR0fSw5MzU6ZnVuY3Rpb24odCxlLGkpeyJ1c2Ugc3RyaWN0Ijthc3luYyBmdW5jdGlvbiBzKHQsZT1udWxsKXt0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGF3YWl0IG4oImVudGVyIix0LGUpfWFzeW5jIGZ1bmN0aW9uIGEodCxlPW51bGwpe2F3YWl0IG4oImxlYXZlIix0LGUpLHQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9YXN5bmMgZnVuY3Rpb24gbih0LGUsaSl7Y29uc3Qgcz1lLmRhdGFzZXQsYT1pP2Ake2l9LSR7dH1gOnQ7bGV0IG49YHRyYW5zaXRpb24ke3QuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKX1gO2NvbnN0IGw9c1tuXT9zW25dLnNwbGl0KCIgIik6W2FdLGM9c1tgJHtufVN0YXJ0YF0/c1tgJHtufVN0YXJ0YF0uc3BsaXQoIiAiKTpbYCR7YX0tc3RhcnRgXSxoPXNbYCR7bn1FbmRgXT9zW2Ake259RW5kYF0uc3BsaXQoIiAiKTpbYCR7YX0tZW5kYF07cihlLGwpLHIoZSxjKSxhd2FpdCBuZXcgUHJvbWlzZSgodD0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9KSl9KSksbyhlLGMpLHIoZSxoKSxhd2FpdCBmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFByb21pc2UoKGU9Pntjb25zdCBpPWdldENvbXB1dGVkU3R5bGUodCkudHJhbnNpdGlvbkR1cmF0aW9uLnNwbGl0KCIsIilbMF0scz0xZTMqTnVtYmVyKGkucmVwbGFjZSgicyIsIiIpKTtzZXRUaW1lb3V0KCgoKT0+e2UoKX0pLHMpfSkpfShlKSxvKGUsaCksbyhlLGwpfWZ1bmN0aW9uIHIodCxlKXt0LmNsYXNzTGlzdC5hZGQoLi4uZSl9ZnVuY3Rpb24gbyh0LGUpe3QuY2xhc3NMaXN0LnJlbW92ZSguLi5lKX1pLmQoZSx7SU86ZnVuY3Rpb24oKXtyZXR1cm4gc30sWnU6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KX0sMjMwOmZ1bmN0aW9uKHQpe3QuZXhwb3J0cz0ib2JqZWN0Ij09dHlwZW9mIHNlbGY/c2VsZi5Gb3JtRGF0YTp3aW5kb3cuRm9ybURhdGF9LDEzMTpmdW5jdGlvbih0LGUsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHModCl7cmV0dXJuIHM9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHModCl9ZnVuY3Rpb24gYSh0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIG4odCxlKXtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIHM9ZVtpXTtzLmVudW1lcmFibGU9cy5lbnVtZXJhYmxlfHwhMSxzLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gcyYmKHMud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHMua2V5LHMpfX1mdW5jdGlvbiByKHQsZSxpKXtyZXR1cm4gZSYmbih0LnByb3RvdHlwZSxlKSxpJiZuKHQsaSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksdH1mdW5jdGlvbiBvKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUmJmModCxlKX1mdW5jdGlvbiBsKHQpe3JldHVybiBsPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxsKHQpfWZ1bmN0aW9uIGModCxlKXtyZXR1cm4gYz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LGModCxlKX1mdW5jdGlvbiBoKHQsZSl7aWYobnVsbD09dClyZXR1cm57fTt2YXIgaSxzLGE9ZnVuY3Rpb24odCxlKXtpZihudWxsPT10KXJldHVybnt9O3ZhciBpLHMsYT17fSxuPU9iamVjdC5rZXlzKHQpO2ZvcihzPTA7czxuLmxlbmd0aDtzKyspaT1uW3NdLGUuaW5kZXhPZihpKT49MHx8KGFbaV09dFtpXSk7cmV0dXJuIGF9KHQsZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIG49T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtmb3Iocz0wO3M8bi5sZW5ndGg7cysrKWk9bltzXSxlLmluZGV4T2YoaSk+PTB8fE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LGkpJiYoYVtpXT10W2ldKX1yZXR1cm4gYX1mdW5jdGlvbiBkKHQsZSl7aWYoZSYmKCJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpKXJldHVybiBlO2lmKHZvaWQgMCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiB0fSh0KX1mdW5jdGlvbiB1KHQpe3ZhciBlPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKHQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaSxzPWwodCk7aWYoZSl7dmFyIGE9bCh0aGlzKS5jb25zdHJ1Y3RvcjtpPVJlZmxlY3QuY29uc3RydWN0KHMsYXJndW1lbnRzLGEpfWVsc2UgaT1zLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZCh0aGlzLGkpfX1mdW5jdGlvbiBwKHQsZSl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkmJm51bGwhPT0odD1sKHQpKTspO3JldHVybiB0fWZ1bmN0aW9uIGcoKXtyZXR1cm4gZz0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9cCh0LGUpO2lmKHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocyxlKTtyZXR1cm4gYS5nZXQ/YS5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/dDppKTphLnZhbHVlfX0sZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZih0LGUsaSxzKXtyZXR1cm4gZj0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3Quc2V0P1JlZmxlY3Quc2V0OmZ1bmN0aW9uKHQsZSxpLHMpe3ZhciBhLG49cCh0LGUpO2lmKG4pe2lmKChhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSkuc2V0KXJldHVybiBhLnNldC5jYWxsKHMsaSksITA7aWYoIWEud3JpdGFibGUpcmV0dXJuITF9aWYoYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsZSkpe2lmKCFhLndyaXRhYmxlKXJldHVybiExO2EudmFsdWU9aSxPYmplY3QuZGVmaW5lUHJvcGVydHkocyxlLGEpfWVsc2UhZnVuY3Rpb24odCxlLGkpe2UgaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTppLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1pfShzLGUsaSk7cmV0dXJuITB9LGYodCxlLGkscyl9ZnVuY3Rpb24gbSh0LGUsaSxzLGEpe2lmKCFmKHQsZSxpLHN8fHQpJiZhKXRocm93IG5ldyBFcnJvcigiZmFpbGVkIHRvIHNldCBwcm9wZXJ0eSIpO3JldHVybiBpfWZ1bmN0aW9uIHYodCxlKXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdH0odCl8fGZ1bmN0aW9uKHQsZSl7dmFyIGk9bnVsbD09dD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1pKXt2YXIgcyxhLG49W10scj0hMCxvPSExO3RyeXtmb3IoaT1pLmNhbGwodCk7IShyPShzPWkubmV4dCgpKS5kb25lKSYmKG4ucHVzaChzLnZhbHVlKSwhZXx8bi5sZW5ndGghPT1lKTtyPSEwKTt9Y2F0Y2godCl7bz0hMCxhPXR9ZmluYWxseXt0cnl7cnx8bnVsbD09aS5yZXR1cm58fGkucmV0dXJuKCl9ZmluYWxseXtpZihvKXRocm93IGF9fXJldHVybiBufX0odCxlKXx8eCh0LGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24geCh0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gYih0LGUpO3ZhciBpPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PWkmJnQuY29uc3RydWN0b3ImJihpPXQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1pfHwiU2V0Ij09PWk/QXJyYXkuZnJvbSh0KToiQXJndW1lbnRzIj09PWl8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGkpP2IodCxlKTp2b2lkIDB9fWZ1bmN0aW9uIGIodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIGk9MCxzPW5ldyBBcnJheShlKTtpPGU7aSsrKXNbaV09dFtpXTtyZXR1cm4gc31pLmQoZSx7WlA6ZnVuY3Rpb24oKXtyZXR1cm4gRn19KTt2YXIgeT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7YSh0aGlzLHQpLE9iamVjdC5hc3NpZ24odGhpcyx7aW5zZXJ0ZWQ6IiIscmF3SW5zZXJ0ZWQ6IiIsc2tpcDohMSx0YWlsU2hpZnQ6MH0sZSl9cmV0dXJuIHIodCxbe2tleToiYWdncmVnYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yYXdJbnNlcnRlZCs9dC5yYXdJbnNlcnRlZCx0aGlzLnNraXA9dGhpcy5za2lwfHx0LnNraXAsdGhpcy5pbnNlcnRlZCs9dC5pbnNlcnRlZCx0aGlzLnRhaWxTaGlmdCs9dC50YWlsU2hpZnQsdGhpc319LHtrZXk6Im9mZnNldCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFpbFNoaWZ0K3RoaXMuaW5zZXJ0ZWQubGVuZ3RofX1dKSx0fSgpO2Z1bmN0aW9uIHcodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgU3RyaW5nfXZhciBrPSJOT05FIixTPSJMRUZUIixDPSJGT1JDRV9MRUZUIixBPSJSSUdIVCIsRT0iRk9SQ0VfUklHSFQiO2Z1bmN0aW9uIFQodCl7c3dpdGNoKHQpe2Nhc2UgUzpyZXR1cm4gQztjYXNlIEE6cmV0dXJuIEU7ZGVmYXVsdDpyZXR1cm4gdH19ZnVuY3Rpb24gTCh0KXtyZXR1cm4gdC5yZXBsYWNlKC8oWy4qKz9ePSE6JHt9KCl8W1xdXC9cXF0pL2csIlxcJDEiKX1mdW5jdGlvbiBQKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3Q6W3QsbmV3IHldfWZ1bmN0aW9uIE0odCxlKXtpZihlPT09dClyZXR1cm4hMDt2YXIgaSxhPUFycmF5LmlzQXJyYXkoZSksbj1BcnJheS5pc0FycmF5KHQpO2lmKGEmJm4pe2lmKGUubGVuZ3RoIT10Lmxlbmd0aClyZXR1cm4hMTtmb3IoaT0wO2k8ZS5sZW5ndGg7aSsrKWlmKCFNKGVbaV0sdFtpXSkpcmV0dXJuITE7cmV0dXJuITB9aWYoYSE9bilyZXR1cm4hMTtpZihlJiZ0JiYib2JqZWN0Ij09PXMoZSkmJiJvYmplY3QiPT09cyh0KSl7dmFyIHI9ZSBpbnN0YW5jZW9mIERhdGUsbz10IGluc3RhbmNlb2YgRGF0ZTtpZihyJiZvKXJldHVybiBlLmdldFRpbWUoKT09dC5nZXRUaW1lKCk7aWYociE9bylyZXR1cm4hMTt2YXIgbD1lIGluc3RhbmNlb2YgUmVnRXhwLGM9dCBpbnN0YW5jZW9mIFJlZ0V4cDtpZihsJiZjKXJldHVybiBlLnRvU3RyaW5nKCk9PXQudG9TdHJpbmcoKTtpZihsIT1jKXJldHVybiExO3ZhciBoPU9iamVjdC5rZXlzKGUpO2ZvcihpPTA7aTxoLmxlbmd0aDtpKyspaWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGhbaV0pKXJldHVybiExO2ZvcihpPTA7aTxoLmxlbmd0aDtpKyspaWYoIU0odFtoW2ldXSxlW2hbaV1dKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4hKCFlfHwhdHx8ImZ1bmN0aW9uIiE9dHlwZW9mIGV8fCJmdW5jdGlvbiIhPXR5cGVvZiB0KSYmZS50b1N0cmluZygpPT09dC50b1N0cmluZygpfXZhciBPPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLGkscyxuKXtmb3IoYSh0aGlzLHQpLHRoaXMudmFsdWU9ZSx0aGlzLmN1cnNvclBvcz1pLHRoaXMub2xkVmFsdWU9cyx0aGlzLm9sZFNlbGVjdGlvbj1uO3RoaXMudmFsdWUuc2xpY2UoMCx0aGlzLnN0YXJ0Q2hhbmdlUG9zKSE9PXRoaXMub2xkVmFsdWUuc2xpY2UoMCx0aGlzLnN0YXJ0Q2hhbmdlUG9zKTspLS10aGlzLm9sZFNlbGVjdGlvbi5zdGFydH1yZXR1cm4gcih0LFt7a2V5OiJzdGFydENoYW5nZVBvcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgubWluKHRoaXMuY3Vyc29yUG9zLHRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0KX19LHtrZXk6Imluc2VydGVkQ291bnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnNvclBvcy10aGlzLnN0YXJ0Q2hhbmdlUG9zfX0se2tleToiaW5zZXJ0ZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlLnN1YnN0cih0aGlzLnN0YXJ0Q2hhbmdlUG9zLHRoaXMuaW5zZXJ0ZWRDb3VudCl9fSx7a2V5OiJyZW1vdmVkQ291bnQiLGdldDpmdW5jdGlvbigpe3JldHVybiBNYXRoLm1heCh0aGlzLm9sZFNlbGVjdGlvbi5lbmQtdGhpcy5zdGFydENoYW5nZVBvc3x8dGhpcy5vbGRWYWx1ZS5sZW5ndGgtdGhpcy52YWx1ZS5sZW5ndGgsMCl9fSx7a2V5OiJyZW1vdmVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vbGRWYWx1ZS5zdWJzdHIodGhpcy5zdGFydENoYW5nZVBvcyx0aGlzLnJlbW92ZWRDb3VudCl9fSx7a2V5OiJoZWFkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZS5zdWJzdHJpbmcoMCx0aGlzLnN0YXJ0Q2hhbmdlUG9zKX19LHtrZXk6InRhaWwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlLnN1YnN0cmluZyh0aGlzLnN0YXJ0Q2hhbmdlUG9zK3RoaXMuaW5zZXJ0ZWRDb3VudCl9fSx7a2V5OiJyZW1vdmVEaXJlY3Rpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiF0aGlzLnJlbW92ZWRDb3VudHx8dGhpcy5pbnNlcnRlZENvdW50P2s6dGhpcy5vbGRTZWxlY3Rpb24uZW5kIT09dGhpcy5jdXJzb3JQb3MmJnRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0IT09dGhpcy5jdXJzb3JQb3N8fHRoaXMub2xkU2VsZWN0aW9uLmVuZCE9PXRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0P1M6QX19XSksdH0oKSxJPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIixpPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLHM9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7YSh0aGlzLHQpLHRoaXMudmFsdWU9ZSx0aGlzLmZyb209aSx0aGlzLnN0b3A9c31yZXR1cm4gcih0LFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX19LHtrZXk6ImV4dGVuZCIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy52YWx1ZSs9U3RyaW5nKHQpfX0se2tleToiYXBwZW5kVG8iLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0LmFwcGVuZCh0aGlzLnRvU3RyaW5nKCkse3RhaWw6ITB9KS5hZ2dyZWdhdGUodC5fYXBwZW5kUGxhY2Vob2xkZXIoKSl9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue3ZhbHVlOnRoaXMudmFsdWUsZnJvbTp0aGlzLmZyb20sc3RvcDp0aGlzLnN0b3B9fSxzZXQ6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLHQpfX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoIXRoaXMudmFsdWUubGVuZ3RofHxudWxsIT10JiZ0aGlzLmZyb20+PXQpcmV0dXJuIiI7dmFyIGU9dGhpcy52YWx1ZVswXTtyZXR1cm4gdGhpcy52YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDEpLGV9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy52YWx1ZS5sZW5ndGgpcmV0dXJuIiI7dmFyIHQ9dGhpcy52YWx1ZVt0aGlzLnZhbHVlLmxlbmd0aC0xXTtyZXR1cm4gdGhpcy52YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDAsLTEpLHR9fV0pLHR9KCk7ZnVuY3Rpb24gRih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIG5ldyBGLklucHV0TWFzayh0LGUpfXZhciBEPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXthKHRoaXMsdCksdGhpcy5fdmFsdWU9IiIsdGhpcy5fdXBkYXRlKE9iamVjdC5hc3NpZ24oe30sdC5ERUZBVUxUUyxlKSksdGhpcy5pc0luaXRpYWxpemVkPSEwfXJldHVybiByKHQsW3trZXk6InVwZGF0ZU9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHQpe09iamVjdC5rZXlzKHQpLmxlbmd0aCYmdGhpcy53aXRoVmFsdWVSZWZyZXNoKHRoaXMuX3VwZGF0ZS5iaW5kKHRoaXMsdCkpfX0se2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLHQpfX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybntfdmFsdWU6dGhpcy52YWx1ZX19LHNldDpmdW5jdGlvbih0KXt0aGlzLl92YWx1ZT10Ll92YWx1ZX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3ZhbHVlPSIifX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMucmVzb2x2ZSh0KX19LHtrZXk6InJlc29sdmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJlc2V0KCksdGhpcy5hcHBlbmQodCx7aW5wdXQ6ITB9LCIiKSx0aGlzLmRvQ29tbWl0KCksdGhpcy52YWx1ZX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5yZXNldCgpLHRoaXMuYXBwZW5kKHQse30sIiIpLHRoaXMuZG9Db21taXQoKX19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvUGFyc2UodGhpcy52YWx1ZSl9LHNldDpmdW5jdGlvbih0KXt0aGlzLnZhbHVlPXRoaXMuZG9Gb3JtYXQodCl9fSx7a2V5OiJyYXdJbnB1dFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5leHRyYWN0SW5wdXQoMCx0aGlzLnZhbHVlLmxlbmd0aCx7cmF3OiEwfSl9LHNldDpmdW5jdGlvbih0KXt0aGlzLnJlc2V0KCksdGhpcy5hcHBlbmQodCx7cmF3OiEwfSwiIiksdGhpcy5kb0NvbW1pdCgpfX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSx7a2V5OiJpc0ZpbGxlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNDb21wbGV0ZX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdH19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aDtyZXR1cm4gdGhpcy52YWx1ZS5zbGljZSh0LGUpfX0se2tleToiZXh0cmFjdFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGg7cmV0dXJuIG5ldyBJKHRoaXMuZXh0cmFjdElucHV0KHQsZSksdCl9fSx7a2V5OiJhcHBlbmRUYWlsIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdyh0KSYmKHQ9bmV3IEkoU3RyaW5nKHQpKSksdC5hcHBlbmRUbyh0aGlzKX19LHtrZXk6Il9hcHBlbmRDaGFyUmF3Iix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdD8odGhpcy5fdmFsdWUrPXQsbmV3IHkoe2luc2VydGVkOnQscmF3SW5zZXJ0ZWQ6dH0pKTpuZXcgeX19LHtrZXk6Il9hcHBlbmRDaGFyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxzPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLGE9dGhpcy5zdGF0ZSxuPVAodGhpcy5kb1ByZXBhcmUodCxpKSkscj12KG4sMik7aWYodD1yWzBdLChlPShlPXJbMV0pLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRDaGFyUmF3KHQsaSkpKS5pbnNlcnRlZCl7dmFyIG8sbD0hMSE9PXRoaXMuZG9WYWxpZGF0ZShpKTtpZihsJiZudWxsIT1zKXt2YXIgYz10aGlzLnN0YXRlOyEwPT09dGhpcy5vdmVyd3JpdGUmJihvPXMuc3RhdGUscy51bnNoaWZ0KHRoaXMudmFsdWUubGVuZ3RoKSk7dmFyIGg9dGhpcy5hcHBlbmRUYWlsKHMpOyhsPWgucmF3SW5zZXJ0ZWQ9PT1zLnRvU3RyaW5nKCkpJiZoLmluc2VydGVkfHwic2hpZnQiIT09dGhpcy5vdmVyd3JpdGV8fCh0aGlzLnN0YXRlPWMsbz1zLnN0YXRlLHMuc2hpZnQoKSxsPShoPXRoaXMuYXBwZW5kVGFpbChzKSkucmF3SW5zZXJ0ZWQ9PT1zLnRvU3RyaW5nKCkpLGwmJmguaW5zZXJ0ZWQmJih0aGlzLnN0YXRlPWMpfWx8fChlPW5ldyB5LHRoaXMuc3RhdGU9YSxzJiZvJiYocy5zdGF0ZT1vKSl9cmV0dXJuIGV9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB5fX0se2tleToiX2FwcGVuZEVhZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgeX19LHtrZXk6ImFwcGVuZCIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe2lmKCF3KHQpKXRocm93IG5ldyBFcnJvcigidmFsdWUgc2hvdWxkIGJlIHN0cmluZyIpO3ZhciBzPW5ldyB5LGE9dyhpKT9uZXcgSShTdHJpbmcoaSkpOmk7bnVsbCE9ZSYmZS50YWlsJiYoZS5fYmVmb3JlVGFpbFN0YXRlPXRoaXMuc3RhdGUpO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7KytuKXMuYWdncmVnYXRlKHRoaXMuX2FwcGVuZENoYXIodFtuXSxlLGEpKTtyZXR1cm4gbnVsbCE9YSYmKHMudGFpbFNoaWZ0Kz10aGlzLmFwcGVuZFRhaWwoYSkudGFpbFNoaWZ0KSx0aGlzLmVhZ2VyJiZudWxsIT1lJiZlLmlucHV0JiZ0JiZzLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRFYWdlcigpKSxzfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoO3JldHVybiB0aGlzLl92YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDAsdCkrdGhpcy52YWx1ZS5zbGljZShlKSxuZXcgeX19LHtrZXk6IndpdGhWYWx1ZVJlZnJlc2giLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHRoaXMuX3JlZnJlc2hpbmd8fCF0aGlzLmlzSW5pdGlhbGl6ZWQpcmV0dXJuIHQoKTt0aGlzLl9yZWZyZXNoaW5nPSEwO3ZhciBlPXRoaXMucmF3SW5wdXRWYWx1ZSxpPXRoaXMudmFsdWUscz10KCk7cmV0dXJuIHRoaXMucmF3SW5wdXRWYWx1ZT1lLHRoaXMudmFsdWUmJnRoaXMudmFsdWUhPT1pJiYwPT09aS5pbmRleE9mKHRoaXMudmFsdWUpJiZ0aGlzLmFwcGVuZChpLnNsaWNlKHRoaXMudmFsdWUubGVuZ3RoKSx7fSwiIiksZGVsZXRlIHRoaXMuX3JlZnJlc2hpbmcsc319LHtrZXk6InJ1bklzb2xhdGVkIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLl9pc29sYXRlZHx8IXRoaXMuaXNJbml0aWFsaXplZClyZXR1cm4gdCh0aGlzKTt0aGlzLl9pc29sYXRlZD0hMDt2YXIgZT10aGlzLnN0YXRlLGk9dCh0aGlzKTtyZXR1cm4gdGhpcy5zdGF0ZT1lLGRlbGV0ZSB0aGlzLl9pc29sYXRlZCxpfX0se2tleToiZG9QcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIHRoaXMucHJlcGFyZT90aGlzLnByZXBhcmUodCx0aGlzLGUpOnR9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4oIXRoaXMudmFsaWRhdGV8fHRoaXMudmFsaWRhdGUodGhpcy52YWx1ZSx0aGlzLHQpKSYmKCF0aGlzLnBhcmVudHx8dGhpcy5wYXJlbnQuZG9WYWxpZGF0ZSh0KSl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNvbW1pdCYmdGhpcy5jb21taXQodGhpcy52YWx1ZSx0aGlzKX19LHtrZXk6ImRvRm9ybWF0Iix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mb3JtYXQ/dGhpcy5mb3JtYXQodCx0aGlzKTp0fX0se2tleToiZG9QYXJzZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucGFyc2U/dGhpcy5wYXJzZSh0LHRoaXMpOnR9fSx7a2V5OiJzcGxpY2UiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLHMpe3ZhciBhLG49YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOntpbnB1dDohMH0scj10K2Usbz10aGlzLmV4dHJhY3RUYWlsKHIpO3RoaXMuZWFnZXImJihzPVQocyksYT10aGlzLmV4dHJhY3RJbnB1dCgwLHIse3JhdzohMH0pKTt2YXIgbD10aGlzLm5lYXJlc3RJbnB1dFBvcyh0LGU+MSYmMCE9PXQmJiF0aGlzLmVhZ2VyP2s6cyksYz1uZXcgeSh7dGFpbFNoaWZ0OmwtdH0pLmFnZ3JlZ2F0ZSh0aGlzLnJlbW92ZShsKSk7aWYodGhpcy5lYWdlciYmcyE9PWsmJmE9PT10aGlzLnJhd0lucHV0VmFsdWUpaWYocz09PUMpZm9yKHZhciBoO2E9PT10aGlzLnJhd0lucHV0VmFsdWUmJihoPXRoaXMudmFsdWUubGVuZ3RoKTspYy5hZ2dyZWdhdGUobmV3IHkoe3RhaWxTaGlmdDotMX0pKS5hZ2dyZWdhdGUodGhpcy5yZW1vdmUoaC0xKSk7ZWxzZSBzPT09RSYmby51bnNoaWZ0KCk7cmV0dXJuIGMuYWdncmVnYXRlKHRoaXMuYXBwZW5kKGksbixvKSl9fSx7a2V5OiJtYXNrRXF1YWxzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXNrPT09dH19LHtrZXk6InR5cGVkVmFsdWVFcXVhbHMiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciBpPXRoaXMudHlwZWRWYWx1ZTtyZXR1cm4gZT09PWl8fHQuRU1QVFlfVkFMVUVTLmluY2x1ZGVzKGUpJiZ0LkVNUFRZX1ZBTFVFUy5pbmNsdWRlcyhpKXx8dGhpcy5kb0Zvcm1hdChlKT09PXRoaXMuZG9Gb3JtYXQodGhpcy50eXBlZFZhbHVlKX19XSksdH0oKTtmdW5jdGlvbiB6KHQpe2lmKG51bGw9PXQpdGhyb3cgbmV3IEVycm9yKCJtYXNrIHByb3BlcnR5IHNob3VsZCBiZSBkZWZpbmVkIik7cmV0dXJuIHQgaW5zdGFuY2VvZiBSZWdFeHA/Ri5NYXNrZWRSZWdFeHA6dyh0KT9GLk1hc2tlZFBhdHRlcm46dCBpbnN0YW5jZW9mIERhdGV8fHQ9PT1EYXRlP0YuTWFza2VkRGF0ZTp0IGluc3RhbmNlb2YgTnVtYmVyfHwibnVtYmVyIj09dHlwZW9mIHR8fHQ9PT1OdW1iZXI/Ri5NYXNrZWROdW1iZXI6QXJyYXkuaXNBcnJheSh0KXx8dD09PUFycmF5P0YuTWFza2VkRHluYW1pYzpGLk1hc2tlZCYmdC5wcm90b3R5cGUgaW5zdGFuY2VvZiBGLk1hc2tlZD90OnQgaW5zdGFuY2VvZiBGLk1hc2tlZD90LmNvbnN0cnVjdG9yOnQgaW5zdGFuY2VvZiBGdW5jdGlvbj9GLk1hc2tlZEZ1bmN0aW9uOihjb25zb2xlLndhcm4oIk1hc2sgbm90IGZvdW5kIGZvciBtYXNrIix0KSxGLk1hc2tlZCl9ZnVuY3Rpb24gTih0KXtpZihGLk1hc2tlZCYmdCBpbnN0YW5jZW9mIEYuTWFza2VkKXJldHVybiB0O3ZhciBlPSh0PU9iamVjdC5hc3NpZ24oe30sdCkpLm1hc2s7aWYoRi5NYXNrZWQmJmUgaW5zdGFuY2VvZiBGLk1hc2tlZClyZXR1cm4gZTt2YXIgaT16KGUpO2lmKCFpKXRocm93IG5ldyBFcnJvcigiTWFza2VkIGNsYXNzIGlzIG5vdCBmb3VuZCBmb3IgcHJvdmlkZWQgbWFzaywgYXBwcm9wcmlhdGUgbW9kdWxlIG5lZWRzIHRvIGJlIGltcG9ydCBtYW51YWxseSBiZWZvcmUgY3JlYXRpbmcgbWFzay4iKTtyZXR1cm4gbmV3IGkodCl9RC5ERUZBVUxUUz17Zm9ybWF0OmZ1bmN0aW9uKHQpe3JldHVybiB0fSxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm4gdH19LEQuRU1QVFlfVkFMVUVTPVt2b2lkIDAsbnVsbCwiIl0sRi5NYXNrZWQ9RCxGLmNyZWF0ZU1hc2s9Tjt2YXIgUj1bIm1hc2siXSxfPXswOi9cZC8sYTovW1x1MDA0MS1cdTAwNUFcdTAwNjEtXHUwMDdBXHUwMEFBXHUwMEI1XHUwMEJBXHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwRjZcdTAwRjgtXHUwMkMxXHUwMkM2LVx1MDJEMVx1MDJFMC1cdTAyRTRcdTAyRUNcdTAyRUVcdTAzNzAtXHUwMzc0XHUwMzc2XHUwMzc3XHUwMzdBLVx1MDM3RFx1MDM4Nlx1MDM4OC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwM0ExXHUwM0EzLVx1MDNGNVx1MDNGNy1cdTA0ODFcdTA0OEEtXHUwNTI3XHUwNTMxLVx1MDU1Nlx1MDU1OVx1MDU2MS1cdTA1ODdcdTA1RDAtXHUwNUVBXHUwNUYwLVx1MDVGMlx1MDYyMC1cdTA2NEFcdTA2NkVcdTA2NkZcdTA2NzEtXHUwNkQzXHUwNkQ1XHUwNkU1XHUwNkU2XHUwNkVFXHUwNkVGXHUwNkZBLVx1MDZGQ1x1MDZGRlx1MDcxMFx1MDcxMi1cdTA3MkZcdTA3NEQtXHUwN0E1XHUwN0IxXHUwN0NBLVx1MDdFQVx1MDdGNFx1MDdGNVx1MDdGQVx1MDgwMC1cdTA4MTVcdTA4MUFcdTA4MjRcdTA4MjhcdTA4NDAtXHUwODU4XHUwOEEwXHUwOEEyLVx1MDhBQ1x1MDkwNC1cdTA5MzlcdTA5M0RcdTA5NTBcdTA5NTgtXHUwOTYxXHUwOTcxLVx1MDk3N1x1MDk3OS1cdTA5N0ZcdTA5ODUtXHUwOThDXHUwOThGXHUwOTkwXHUwOTkzLVx1MDlBOFx1MDlBQS1cdTA5QjBcdTA5QjJcdTA5QjYtXHUwOUI5XHUwOUJEXHUwOUNFXHUwOURDXHUwOUREXHUwOURGLVx1MDlFMVx1MDlGMFx1MDlGMVx1MEEwNS1cdTBBMEFcdTBBMEZcdTBBMTBcdTBBMTMtXHUwQTI4XHUwQTJBLVx1MEEzMFx1MEEzMlx1MEEzM1x1MEEzNVx1MEEzNlx1MEEzOFx1MEEzOVx1MEE1OS1cdTBBNUNcdTBBNUVcdTBBNzItXHUwQTc0XHUwQTg1LVx1MEE4RFx1MEE4Ri1cdTBBOTFcdTBBOTMtXHUwQUE4XHUwQUFBLVx1MEFCMFx1MEFCMlx1MEFCM1x1MEFCNS1cdTBBQjlcdTBBQkRcdTBBRDBcdTBBRTBcdTBBRTFcdTBCMDUtXHUwQjBDXHUwQjBGXHUwQjEwXHUwQjEzLVx1MEIyOFx1MEIyQS1cdTBCMzBcdTBCMzJcdTBCMzNcdTBCMzUtXHUwQjM5XHUwQjNEXHUwQjVDXHUwQjVEXHUwQjVGLVx1MEI2MVx1MEI3MVx1MEI4M1x1MEI4NS1cdTBCOEFcdTBCOEUtXHUwQjkwXHUwQjkyLVx1MEI5NVx1MEI5OVx1MEI5QVx1MEI5Q1x1MEI5RVx1MEI5Rlx1MEJBM1x1MEJBNFx1MEJBOC1cdTBCQUFcdTBCQUUtXHUwQkI5XHUwQkQwXHUwQzA1LVx1MEMwQ1x1MEMwRS1cdTBDMTBcdTBDMTItXHUwQzI4XHUwQzJBLVx1MEMzM1x1MEMzNS1cdTBDMzlcdTBDM0RcdTBDNThcdTBDNTlcdTBDNjBcdTBDNjFcdTBDODUtXHUwQzhDXHUwQzhFLVx1MEM5MFx1MEM5Mi1cdTBDQThcdTBDQUEtXHUwQ0IzXHUwQ0I1LVx1MENCOVx1MENCRFx1MENERVx1MENFMFx1MENFMVx1MENGMVx1MENGMlx1MEQwNS1cdTBEMENcdTBEMEUtXHUwRDEwXHUwRDEyLVx1MEQzQVx1MEQzRFx1MEQ0RVx1MEQ2MFx1MEQ2MVx1MEQ3QS1cdTBEN0ZcdTBEODUtXHUwRDk2XHUwRDlBLVx1MERCMVx1MERCMy1cdTBEQkJcdTBEQkRcdTBEQzAtXHUwREM2XHUwRTAxLVx1MEUzMFx1MEUzMlx1MEUzM1x1MEU0MC1cdTBFNDZcdTBFODFcdTBFODJcdTBFODRcdTBFODdcdTBFODhcdTBFOEFcdTBFOERcdTBFOTQtXHUwRTk3XHUwRTk5LVx1MEU5Rlx1MEVBMS1cdTBFQTNcdTBFQTVcdTBFQTdcdTBFQUFcdTBFQUJcdTBFQUQtXHUwRUIwXHUwRUIyXHUwRUIzXHUwRUJEXHUwRUMwLVx1MEVDNFx1MEVDNlx1MEVEQy1cdTBFREZcdTBGMDBcdTBGNDAtXHUwRjQ3XHUwRjQ5LVx1MEY2Q1x1MEY4OC1cdTBGOENcdTEwMDAtXHUxMDJBXHUxMDNGXHUxMDUwLVx1MTA1NVx1MTA1QS1cdTEwNURcdTEwNjFcdTEwNjVcdTEwNjZcdTEwNkUtXHUxMDcwXHUxMDc1LVx1MTA4MVx1MTA4RVx1MTBBMC1cdTEwQzVcdTEwQzdcdTEwQ0RcdTEwRDAtXHUxMEZBXHUxMEZDLVx1MTI0OFx1MTI0QS1cdTEyNERcdTEyNTAtXHUxMjU2XHUxMjU4XHUxMjVBLVx1MTI1RFx1MTI2MC1cdTEyODhcdTEyOEEtXHUxMjhEXHUxMjkwLVx1MTJCMFx1MTJCMi1cdTEyQjVcdTEyQjgtXHUxMkJFXHUxMkMwXHUxMkMyLVx1MTJDNVx1MTJDOC1cdTEyRDZcdTEyRDgtXHUxMzEwXHUxMzEyLVx1MTMxNVx1MTMxOC1cdTEzNUFcdTEzODAtXHUxMzhGXHUxM0EwLVx1MTNGNFx1MTQwMS1cdTE2NkNcdTE2NkYtXHUxNjdGXHUxNjgxLVx1MTY5QVx1MTZBMC1cdTE2RUFcdTE3MDAtXHUxNzBDXHUxNzBFLVx1MTcxMVx1MTcyMC1cdTE3MzFcdTE3NDAtXHUxNzUxXHUxNzYwLVx1MTc2Q1x1MTc2RS1cdTE3NzBcdTE3ODAtXHUxN0IzXHUxN0Q3XHUxN0RDXHUxODIwLVx1MTg3N1x1MTg4MC1cdTE4QThcdTE4QUFcdTE4QjAtXHUxOEY1XHUxOTAwLVx1MTkxQ1x1MTk1MC1cdTE5NkRcdTE5NzAtXHUxOTc0XHUxOTgwLVx1MTlBQlx1MTlDMS1cdTE5QzdcdTFBMDAtXHUxQTE2XHUxQTIwLVx1MUE1NFx1MUFBN1x1MUIwNS1cdTFCMzNcdTFCNDUtXHUxQjRCXHUxQjgzLVx1MUJBMFx1MUJBRVx1MUJBRlx1MUJCQS1cdTFCRTVcdTFDMDAtXHUxQzIzXHUxQzRELVx1MUM0Rlx1MUM1QS1cdTFDN0RcdTFDRTktXHUxQ0VDXHUxQ0VFLVx1MUNGMVx1MUNGNVx1MUNGNlx1MUQwMC1cdTFEQkZcdTFFMDAtXHUxRjE1XHUxRjE4LVx1MUYxRFx1MUYyMC1cdTFGNDVcdTFGNDgtXHUxRjREXHUxRjUwLVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Ri1cdTFGN0RcdTFGODAtXHUxRkI0XHUxRkI2LVx1MUZCQ1x1MUZCRVx1MUZDMi1cdTFGQzRcdTFGQzYtXHUxRkNDXHUxRkQwLVx1MUZEM1x1MUZENi1cdTFGREJcdTFGRTAtXHUxRkVDXHUxRkYyLVx1MUZGNFx1MUZGNi1cdTFGRkNcdTIwNzFcdTIwN0ZcdTIwOTAtXHUyMDlDXHUyMTAyXHUyMTA3XHUyMTBBLVx1MjExM1x1MjExNVx1MjExOS1cdTIxMURcdTIxMjRcdTIxMjZcdTIxMjhcdTIxMkEtXHUyMTJEXHUyMTJGLVx1MjEzOVx1MjEzQy1cdTIxM0ZcdTIxNDUtXHUyMTQ5XHUyMTRFXHUyMTgzXHUyMTg0XHUyQzAwLVx1MkMyRVx1MkMzMC1cdTJDNUVcdTJDNjAtXHUyQ0U0XHUyQ0VCLVx1MkNFRVx1MkNGMlx1MkNGM1x1MkQwMC1cdTJEMjVcdTJEMjdcdTJEMkRcdTJEMzAtXHUyRDY3XHUyRDZGXHUyRDgwLVx1MkQ5Nlx1MkRBMC1cdTJEQTZcdTJEQTgtXHUyREFFXHUyREIwLVx1MkRCNlx1MkRCOC1cdTJEQkVcdTJEQzAtXHUyREM2XHUyREM4LVx1MkRDRVx1MkREMC1cdTJERDZcdTJERDgtXHUyRERFXHUyRTJGXHUzMDA1XHUzMDA2XHUzMDMxLVx1MzAzNVx1MzAzQlx1MzAzQ1x1MzA0MS1cdTMwOTZcdTMwOUQtXHUzMDlGXHUzMEExLVx1MzBGQVx1MzBGQy1cdTMwRkZcdTMxMDUtXHUzMTJEXHUzMTMxLVx1MzE4RVx1MzFBMC1cdTMxQkFcdTMxRjAtXHUzMUZGXHUzNDAwLVx1NERCNVx1NEUwMC1cdTlGQ0NcdUEwMDAtXHVBNDhDXHVBNEQwLVx1QTRGRFx1QTUwMC1cdUE2MENcdUE2MTAtXHVBNjFGXHVBNjJBXHVBNjJCXHVBNjQwLVx1QTY2RVx1QTY3Ri1cdUE2OTdcdUE2QTAtXHVBNkU1XHVBNzE3LVx1QTcxRlx1QTcyMi1cdUE3ODhcdUE3OEItXHVBNzhFXHVBNzkwLVx1QTc5M1x1QTdBMC1cdUE3QUFcdUE3RjgtXHVBODAxXHVBODAzLVx1QTgwNVx1QTgwNy1cdUE4MEFcdUE4MEMtXHVBODIyXHVBODQwLVx1QTg3M1x1QTg4Mi1cdUE4QjNcdUE4RjItXHVBOEY3XHVBOEZCXHVBOTBBLVx1QTkyNVx1QTkzMC1cdUE5NDZcdUE5NjAtXHVBOTdDXHVBOTg0LVx1QTlCMlx1QTlDRlx1QUEwMC1cdUFBMjhcdUFBNDAtXHVBQTQyXHVBQTQ0LVx1QUE0Qlx1QUE2MC1cdUFBNzZcdUFBN0FcdUFBODAtXHVBQUFGXHVBQUIxXHVBQUI1XHVBQUI2XHVBQUI5LVx1QUFCRFx1QUFDMFx1QUFDMlx1QUFEQi1cdUFBRERcdUFBRTAtXHVBQUVBXHVBQUYyLVx1QUFGNFx1QUIwMS1cdUFCMDZcdUFCMDktXHVBQjBFXHVBQjExLVx1QUIxNlx1QUIyMC1cdUFCMjZcdUFCMjgtXHVBQjJFXHVBQkMwLVx1QUJFMlx1QUMwMC1cdUQ3QTNcdUQ3QjAtXHVEN0M2XHVEN0NCLVx1RDdGQlx1RjkwMC1cdUZBNkRcdUZBNzAtXHVGQUQ5XHVGQjAwLVx1RkIwNlx1RkIxMy1cdUZCMTdcdUZCMURcdUZCMUYtXHVGQjI4XHVGQjJBLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDBcdUZCNDFcdUZCNDNcdUZCNDRcdUZCNDYtXHVGQkIxXHVGQkQzLVx1RkQzRFx1RkQ1MC1cdUZEOEZcdUZEOTItXHVGREM3XHVGREYwLVx1RkRGQlx1RkU3MC1cdUZFNzRcdUZFNzYtXHVGRUZDXHVGRjIxLVx1RkYzQVx1RkY0MS1cdUZGNUFcdUZGNjYtXHVGRkJFXHVGRkMyLVx1RkZDN1x1RkZDQS1cdUZGQ0ZcdUZGRDItXHVGRkQ3XHVGRkRBLVx1RkZEQ10vLCIqIjovLi99LEI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe2EodGhpcyx0KTt2YXIgaT1lLm1hc2sscz1oKGUsUik7dGhpcy5tYXNrZWQ9Tih7bWFzazppfSksT2JqZWN0LmFzc2lnbih0aGlzLHMpfXJldHVybiByKHQsW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaXNGaWxsZWQ9ITEsdGhpcy5tYXNrZWQucmVzZXQoKX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aDtyZXR1cm4gMD09PXQmJmU+PTE/KHRoaXMuaXNGaWxsZWQ9ITEsdGhpcy5tYXNrZWQucmVtb3ZlKHQsZSkpOm5ldyB5fX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC52YWx1ZXx8KHRoaXMuaXNGaWxsZWQmJiF0aGlzLmlzT3B0aW9uYWw/dGhpcy5wbGFjZWhvbGRlckNoYXI6IiIpfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLnVubWFza2VkVmFsdWV9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLm1hc2tlZC52YWx1ZSl8fHRoaXMuaXNPcHRpb25hbH19LHtrZXk6Il9hcHBlbmRDaGFyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307aWYodGhpcy5pc0ZpbGxlZClyZXR1cm4gbmV3IHk7dmFyIGk9dGhpcy5tYXNrZWQuc3RhdGUscz10aGlzLm1hc2tlZC5fYXBwZW5kQ2hhcih0LGUpO3JldHVybiBzLmluc2VydGVkJiYhMT09PXRoaXMuZG9WYWxpZGF0ZShlKSYmKHMuaW5zZXJ0ZWQ9cy5yYXdJbnNlcnRlZD0iIix0aGlzLm1hc2tlZC5zdGF0ZT1pKSxzLmluc2VydGVkfHx0aGlzLmlzT3B0aW9uYWx8fHRoaXMubGF6eXx8ZS5pbnB1dHx8KHMuaW5zZXJ0ZWQ9dGhpcy5wbGFjZWhvbGRlckNoYXIpLHMuc2tpcD0hcy5pbnNlcnRlZCYmIXRoaXMuaXNPcHRpb25hbCx0aGlzLmlzRmlsbGVkPUJvb2xlYW4ocy5pbnNlcnRlZCksc319LHtrZXk6ImFwcGVuZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4odD10aGlzLm1hc2tlZCkuYXBwZW5kLmFwcGx5KHQsYXJndW1lbnRzKX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgeTtyZXR1cm4gdGhpcy5pc0ZpbGxlZHx8dGhpcy5pc09wdGlvbmFsfHwodGhpcy5pc0ZpbGxlZD0hMCx0Lmluc2VydGVkPXRoaXMucGxhY2Vob2xkZXJDaGFyKSx0fX0se2tleToiX2FwcGVuZEVhZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgeX19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybih0PXRoaXMubWFza2VkKS5leHRyYWN0VGFpbC5hcHBseSh0LGFyZ3VtZW50cyl9fSx7a2V5OiJhcHBlbmRUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybih0PXRoaXMubWFza2VkKS5hcHBlbmRUYWlsLmFwcGx5KHQsYXJndW1lbnRzKX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxpPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwO3JldHVybiB0aGlzLm1hc2tlZC5leHRyYWN0SW5wdXQodCxlLGkpfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ayxpPTAscz10aGlzLnZhbHVlLmxlbmd0aCxhPU1hdGgubWluKE1hdGgubWF4KHQsaSkscyk7c3dpdGNoKGUpe2Nhc2UgUzpjYXNlIEM6cmV0dXJuIHRoaXMuaXNDb21wbGV0ZT9hOmk7Y2FzZSBBOmNhc2UgRTpyZXR1cm4gdGhpcy5pc0NvbXBsZXRlP2E6cztkZWZhdWx0OnJldHVybiBhfX19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZTtyZXR1cm4odD10aGlzLm1hc2tlZCkuZG9WYWxpZGF0ZS5hcHBseSh0LGFyZ3VtZW50cykmJighdGhpcy5wYXJlbnR8fChlPXRoaXMucGFyZW50KS5kb1ZhbGlkYXRlLmFwcGx5KGUsYXJndW1lbnRzKSl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1hc2tlZC5kb0NvbW1pdCgpfX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybnttYXNrZWQ6dGhpcy5tYXNrZWQuc3RhdGUsaXNGaWxsZWQ6dGhpcy5pc0ZpbGxlZH19LHNldDpmdW5jdGlvbih0KXt0aGlzLm1hc2tlZC5zdGF0ZT10Lm1hc2tlZCx0aGlzLmlzRmlsbGVkPXQuaXNGaWxsZWR9fV0pLHR9KCksWD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7YSh0aGlzLHQpLE9iamVjdC5hc3NpZ24odGhpcyxlKSx0aGlzLl92YWx1ZT0iIix0aGlzLmlzRml4ZWQ9ITB9cmV0dXJuIHIodCxbe2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVW5tYXNraW5nP3RoaXMudmFsdWU6IiJ9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9pc1Jhd0lucHV0PSExLHRoaXMuX3ZhbHVlPSIifX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMuX3ZhbHVlLmxlbmd0aDtyZXR1cm4gdGhpcy5fdmFsdWU9dGhpcy5fdmFsdWUuc2xpY2UoMCx0KSt0aGlzLl92YWx1ZS5zbGljZShlKSx0aGlzLl92YWx1ZXx8KHRoaXMuX2lzUmF3SW5wdXQ9ITEpLG5ldyB5fX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ayxpPTAscz10aGlzLl92YWx1ZS5sZW5ndGg7c3dpdGNoKGUpe2Nhc2UgUzpjYXNlIEM6cmV0dXJuIGk7ZGVmYXVsdDpyZXR1cm4gc319fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5fdmFsdWUubGVuZ3RoLGk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9O3JldHVybiBpLnJhdyYmdGhpcy5faXNSYXdJbnB1dCYmdGhpcy5fdmFsdWUuc2xpY2UodCxlKXx8IiJ9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LHtrZXk6ImlzRmlsbGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLl92YWx1ZSl9fSx7a2V5OiJfYXBwZW5kQ2hhciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGk9bmV3IHk7aWYodGhpcy5fdmFsdWUpcmV0dXJuIGk7dmFyIHM9dGhpcy5jaGFyPT09dCxhPXMmJih0aGlzLmlzVW5tYXNraW5nfHxlLmlucHV0fHxlLnJhdykmJighZS5yYXd8fCF0aGlzLmVhZ2VyKSYmIWUudGFpbDtyZXR1cm4gYSYmKGkucmF3SW5zZXJ0ZWQ9dGhpcy5jaGFyKSx0aGlzLl92YWx1ZT1pLmluc2VydGVkPXRoaXMuY2hhcix0aGlzLl9pc1Jhd0lucHV0PWEmJihlLnJhd3x8ZS5pbnB1dCksaX19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwZW5kQ2hhcih0aGlzLmNoYXIse3RhaWw6ITB9KX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgeTtyZXR1cm4gdGhpcy5fdmFsdWV8fCh0aGlzLl92YWx1ZT10Lmluc2VydGVkPXRoaXMuY2hhciksdH19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXXx8dGhpcy52YWx1ZS5sZW5ndGgsbmV3IEkoIiIpfX0se2tleToiYXBwZW5kVGFpbCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHcodCkmJih0PW5ldyBJKFN0cmluZyh0KSkpLHQuYXBwZW5kVG8odGhpcyl9fSx7a2V5OiJhcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzLl9hcHBlbmRDaGFyKHRbMF0sZSk7cmV0dXJuIG51bGwhPWkmJihzLnRhaWxTaGlmdCs9dGhpcy5hcHBlbmRUYWlsKGkpLnRhaWxTaGlmdCksc319LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57X3ZhbHVlOnRoaXMuX3ZhbHVlLF9pc1Jhd0lucHV0OnRoaXMuX2lzUmF3SW5wdXR9fSxzZXQ6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLHQpfX1dKSx0fSgpLEg9WyJjaHVua3MiXSxZPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXSxpPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO2EodGhpcyx0KSx0aGlzLmNodW5rcz1lLHRoaXMuZnJvbT1pfXJldHVybiByKHQsW3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNodW5rcy5tYXAoU3RyaW5nKS5qb2luKCIiKX19LHtrZXk6ImV4dGVuZCIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYoU3RyaW5nKGUpKXt3KGUpJiYoZT1uZXcgSShTdHJpbmcoZSkpKTt2YXIgaT10aGlzLmNodW5rc1t0aGlzLmNodW5rcy5sZW5ndGgtMV0scz1pJiYoaS5zdG9wPT09ZS5zdG9wfHxudWxsPT1lLnN0b3ApJiZlLmZyb209PT1pLmZyb20raS50b1N0cmluZygpLmxlbmd0aDtpZihlIGluc3RhbmNlb2YgSSlzP2kuZXh0ZW5kKGUudG9TdHJpbmcoKSk6dGhpcy5jaHVua3MucHVzaChlKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiB0KXtpZihudWxsPT1lLnN0b3ApZm9yKHZhciBhO2UuY2h1bmtzLmxlbmd0aCYmbnVsbD09ZS5jaHVua3NbMF0uc3RvcDspKGE9ZS5jaHVua3Muc2hpZnQoKSkuZnJvbSs9ZS5mcm9tLHRoaXMuZXh0ZW5kKGEpO2UudG9TdHJpbmcoKSYmKGUuc3RvcD1lLmJsb2NrSW5kZXgsdGhpcy5jaHVua3MucHVzaChlKSl9fX19LHtrZXk6ImFwcGVuZFRvIix2YWx1ZTpmdW5jdGlvbihlKXtpZighKGUgaW5zdGFuY2VvZiBGLk1hc2tlZFBhdHRlcm4pKXJldHVybiBuZXcgSSh0aGlzLnRvU3RyaW5nKCkpLmFwcGVuZFRvKGUpO2Zvcih2YXIgaT1uZXcgeSxzPTA7czx0aGlzLmNodW5rcy5sZW5ndGgmJiFpLnNraXA7KytzKXt2YXIgYT10aGlzLmNodW5rc1tzXSxuPWUuX21hcFBvc1RvQmxvY2soZS52YWx1ZS5sZW5ndGgpLHI9YS5zdG9wLG89dm9pZCAwO2lmKG51bGwhPXImJighbnx8bi5pbmRleDw9cikmJigoYSBpbnN0YW5jZW9mIHR8fGUuX3N0b3BzLmluZGV4T2Yocik+PTApJiZpLmFnZ3JlZ2F0ZShlLl9hcHBlbmRQbGFjZWhvbGRlcihyKSksbz1hIGluc3RhbmNlb2YgdCYmZS5fYmxvY2tzW3JdKSxvKXt2YXIgbD1vLmFwcGVuZFRhaWwoYSk7bC5za2lwPSExLGkuYWdncmVnYXRlKGwpLGUuX3ZhbHVlKz1sLmluc2VydGVkO3ZhciBjPWEudG9TdHJpbmcoKS5zbGljZShsLnJhd0luc2VydGVkLmxlbmd0aCk7YyYmaS5hZ2dyZWdhdGUoZS5hcHBlbmQoYyx7dGFpbDohMH0pKX1lbHNlIGkuYWdncmVnYXRlKGUuYXBwZW5kKGEudG9TdHJpbmcoKSx7dGFpbDohMH0pKX1yZXR1cm4gaX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57Y2h1bmtzOnRoaXMuY2h1bmtzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3RhdGV9KSksZnJvbTp0aGlzLmZyb20sc3RvcDp0aGlzLnN0b3AsYmxvY2tJbmRleDp0aGlzLmJsb2NrSW5kZXh9fSxzZXQ6ZnVuY3Rpb24oZSl7dmFyIGk9ZS5jaHVua3Mscz1oKGUsSCk7T2JqZWN0LmFzc2lnbih0aGlzLHMpLHRoaXMuY2h1bmtzPWkubWFwKChmdW5jdGlvbihlKXt2YXIgaT0iY2h1bmtzImluIGU/bmV3IHQ6bmV3IEk7cmV0dXJuIGkuc3RhdGU9ZSxpfSkpfX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoIXRoaXMuY2h1bmtzLmxlbmd0aHx8bnVsbCE9dCYmdGhpcy5mcm9tPj10KXJldHVybiIiO2Zvcih2YXIgZT1udWxsIT10P3QtdGhpcy5mcm9tOnQsaT0wO2k8dGhpcy5jaHVua3MubGVuZ3RoOyl7dmFyIHM9dGhpcy5jaHVua3NbaV0sYT1zLnVuc2hpZnQoZSk7aWYocy50b1N0cmluZygpKXtpZighYSlicmVhazsrK2l9ZWxzZSB0aGlzLmNodW5rcy5zcGxpY2UoaSwxKTtpZihhKXJldHVybiBhfXJldHVybiIifX0se2tleToic2hpZnQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMuY2h1bmtzLmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIHQ9dGhpcy5jaHVua3MubGVuZ3RoLTE7MDw9dDspe3ZhciBlPXRoaXMuY2h1bmtzW3RdLGk9ZS5zaGlmdCgpO2lmKGUudG9TdHJpbmcoKSl7aWYoIWkpYnJlYWs7LS10fWVsc2UgdGhpcy5jaHVua3Muc3BsaWNlKHQsMSk7aWYoaSlyZXR1cm4gaX1yZXR1cm4iIn19XSksdH0oKSxXPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLGkpe2EodGhpcyx0KSx0aGlzLm1hc2tlZD1lLHRoaXMuX2xvZz1bXTt2YXIgcz1lLl9tYXBQb3NUb0Jsb2NrKGkpfHwoaTwwP3tpbmRleDowLG9mZnNldDowfTp7aW5kZXg6dGhpcy5tYXNrZWQuX2Jsb2Nrcy5sZW5ndGgsb2Zmc2V0OjB9KSxuPXMub2Zmc2V0LHI9cy5pbmRleDt0aGlzLm9mZnNldD1uLHRoaXMuaW5kZXg9cix0aGlzLm9rPSExfXJldHVybiByKHQsW3trZXk6ImJsb2NrIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQuX2Jsb2Nrc1t0aGlzLmluZGV4XX19LHtrZXk6InBvcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLl9ibG9ja1N0YXJ0UG9zKHRoaXMuaW5kZXgpK3RoaXMub2Zmc2V0fX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybntpbmRleDp0aGlzLmluZGV4LG9mZnNldDp0aGlzLm9mZnNldCxvazp0aGlzLm9rfX0sc2V0OmZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24odGhpcyx0KX19LHtrZXk6InB1c2hTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9sb2cucHVzaCh0aGlzLnN0YXRlKX19LHtrZXk6InBvcFN0YXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2xvZy5wb3AoKTtyZXR1cm4gdGhpcy5zdGF0ZT10LHR9fSx7a2V5OiJiaW5kQmxvY2siLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ibG9ja3x8KHRoaXMuaW5kZXg8MCYmKHRoaXMuaW5kZXg9MCx0aGlzLm9mZnNldD0wKSx0aGlzLmluZGV4Pj10aGlzLm1hc2tlZC5fYmxvY2tzLmxlbmd0aCYmKHRoaXMuaW5kZXg9dGhpcy5tYXNrZWQuX2Jsb2Nrcy5sZW5ndGgtMSx0aGlzLm9mZnNldD10aGlzLmJsb2NrLnZhbHVlLmxlbmd0aCkpfX0se2tleToiX3B1c2hMZWZ0Iix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodGhpcy5wdXNoU3RhdGUoKSx0aGlzLmJpbmRCbG9jaygpOzA8PXRoaXMuaW5kZXg7LS10aGlzLmluZGV4LHRoaXMub2Zmc2V0PShudWxsPT09KGU9dGhpcy5ibG9jayl8fHZvaWQgMD09PWU/dm9pZCAwOmUudmFsdWUubGVuZ3RoKXx8MCl7dmFyIGU7aWYodCgpKXJldHVybiB0aGlzLm9rPSEwfXJldHVybiB0aGlzLm9rPSExfX0se2tleToiX3B1c2hSaWdodCIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHRoaXMucHVzaFN0YXRlKCksdGhpcy5iaW5kQmxvY2soKTt0aGlzLmluZGV4PHRoaXMubWFza2VkLl9ibG9ja3MubGVuZ3RoOysrdGhpcy5pbmRleCx0aGlzLm9mZnNldD0wKWlmKHQoKSlyZXR1cm4gdGhpcy5vaz0hMDtyZXR1cm4gdGhpcy5vaz0hMX19LHtrZXk6InB1c2hMZWZ0QmVmb3JlRmlsbGVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hMZWZ0KChmdW5jdGlvbigpe2lmKCF0LmJsb2NrLmlzRml4ZWQmJnQuYmxvY2sudmFsdWUpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LEMpLDAhPT10Lm9mZnNldHx8dm9pZCAwfSkpfX0se2tleToicHVzaExlZnRCZWZvcmVJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoTGVmdCgoZnVuY3Rpb24oKXtpZighdC5ibG9jay5pc0ZpeGVkKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxTKSwhMH0pKX19LHtrZXk6InB1c2hMZWZ0QmVmb3JlUmVxdWlyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaExlZnQoKGZ1bmN0aW9uKCl7aWYoISh0LmJsb2NrLmlzRml4ZWR8fHQuYmxvY2suaXNPcHRpb25hbCYmIXQuYmxvY2sudmFsdWUpKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxTKSwhMH0pKX19LHtrZXk6InB1c2hSaWdodEJlZm9yZUZpbGxlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoUmlnaHQoKGZ1bmN0aW9uKCl7aWYoIXQuYmxvY2suaXNGaXhlZCYmdC5ibG9jay52YWx1ZSlyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsRSksdC5vZmZzZXQhPT10LmJsb2NrLnZhbHVlLmxlbmd0aHx8dm9pZCAwfSkpfX0se2tleToicHVzaFJpZ2h0QmVmb3JlSW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaFJpZ2h0KChmdW5jdGlvbigpe2lmKCF0LmJsb2NrLmlzRml4ZWQpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LGspLCEwfSkpfX0se2tleToicHVzaFJpZ2h0QmVmb3JlUmVxdWlyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaFJpZ2h0KChmdW5jdGlvbigpe2lmKCEodC5ibG9jay5pc0ZpeGVkfHx0LmJsb2NrLmlzT3B0aW9uYWwmJiF0LmJsb2NrLnZhbHVlKSlyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsayksITB9KSl9fV0pLHR9KCksJD1mdW5jdGlvbih0KXtvKGksdCk7dmFyIGU9dShpKTtmdW5jdGlvbiBpKCl7cmV0dXJuIGEodGhpcyxpKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gcihpLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt0Lm1hc2smJih0LnZhbGlkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBlLnNlYXJjaCh0Lm1hc2spPj0wfSksZyhsKGkucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX1dKSxpfShEKTtGLk1hc2tlZFJlZ0V4cD0kO3ZhciBWPVsiX2Jsb2NrcyJdLGo9ZnVuY3Rpb24odCl7byhpLHQpO3ZhciBlPXUoaSk7ZnVuY3Rpb24gaSgpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4gYSh0aGlzLGkpLHQuZGVmaW5pdGlvbnM9T2JqZWN0LmFzc2lnbih7fSxfLHQuZGVmaW5pdGlvbnMpLGUuY2FsbCh0aGlzLE9iamVjdC5hc3NpZ24oe30saS5ERUZBVUxUUyx0KSl9cmV0dXJuIHIoaSxbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307dC5kZWZpbml0aW9ucz1PYmplY3QuYXNzaWduKHt9LHRoaXMuZGVmaW5pdGlvbnMsdC5kZWZpbml0aW9ucyksZyhsKGkucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpLHRoaXMuX3JlYnVpbGRNYXNrKCl9fSx7a2V5OiJfcmVidWlsZE1hc2siLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuZGVmaW5pdGlvbnM7dGhpcy5fYmxvY2tzPVtdLHRoaXMuX3N0b3BzPVtdLHRoaXMuX21hc2tlZEJsb2Nrcz17fTt2YXIgcz10aGlzLm1hc2s7aWYocyYmZSlmb3IodmFyIGE9ITEsbj0hMSxyPTA7cjxzLmxlbmd0aDsrK3IpaWYoIXRoaXMuYmxvY2tzfHwiY29udGludWUiIT09ZnVuY3Rpb24oKXt2YXIgZT1zLnNsaWNlKHIpLGk9T2JqZWN0LmtleXModC5ibG9ja3MpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1lLmluZGV4T2YodCl9KSk7aS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLmxlbmd0aC10Lmxlbmd0aH0pKTt2YXIgYT1pWzBdO2lmKGEpe3ZhciBuPU4oT2JqZWN0LmFzc2lnbih7cGFyZW50OnQsbGF6eTp0LmxhenksZWFnZXI6dC5lYWdlcixwbGFjZWhvbGRlckNoYXI6dC5wbGFjZWhvbGRlckNoYXIsb3ZlcndyaXRlOnQub3ZlcndyaXRlfSx0LmJsb2Nrc1thXSkpO3JldHVybiBuJiYodC5fYmxvY2tzLnB1c2gobiksdC5fbWFza2VkQmxvY2tzW2FdfHwodC5fbWFza2VkQmxvY2tzW2FdPVtdKSx0Ll9tYXNrZWRCbG9ja3NbYV0ucHVzaCh0Ll9ibG9ja3MubGVuZ3RoLTEpKSxyKz1hLmxlbmd0aC0xLCJjb250aW51ZSJ9fSgpKXt2YXIgbz1zW3JdLGw9byBpbiBlO2lmKG8hPT1pLlNUT1BfQ0hBUilpZigieyIhPT1vJiYifSIhPT1vKWlmKCJbIiE9PW8mJiJdIiE9PW8pe2lmKG89PT1pLkVTQ0FQRV9DSEFSKXtpZigrK3IsIShvPXNbcl0pKWJyZWFrO2w9ITF9dmFyIGM9bD9uZXcgQih7cGFyZW50OnRoaXMsbGF6eTp0aGlzLmxhenksZWFnZXI6dGhpcy5lYWdlcixwbGFjZWhvbGRlckNoYXI6dGhpcy5wbGFjZWhvbGRlckNoYXIsbWFzazplW29dLGlzT3B0aW9uYWw6bn0pOm5ldyBYKHtjaGFyOm8sZWFnZXI6dGhpcy5lYWdlcixpc1VubWFza2luZzphfSk7dGhpcy5fYmxvY2tzLnB1c2goYyl9ZWxzZSBuPSFuO2Vsc2UgYT0hYTtlbHNlIHRoaXMuX3N0b3BzLnB1c2godGhpcy5fYmxvY2tzLmxlbmd0aCl9fX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LGcobChpLnByb3RvdHlwZSksInN0YXRlIix0aGlzKSx7X2Jsb2Nrczp0aGlzLl9ibG9ja3MubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdGF0ZX0pKX0pfSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5fYmxvY2tzLHM9aCh0LFYpO3RoaXMuX2Jsb2Nrcy5mb3JFYWNoKChmdW5jdGlvbih0LGkpe3JldHVybiB0LnN0YXRlPWVbaV19KSksbShsKGkucHJvdG90eXBlKSwic3RhdGUiLHMsdGhpcywhMCl9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXtnKGwoaS5wcm90b3R5cGUpLCJyZXNldCIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLl9ibG9ja3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVzZXQoKX0pKX19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzQ29tcGxldGV9KSl9fSx7a2V5OiJpc0ZpbGxlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNGaWxsZWR9KSl9fSx7a2V5OiJpc0ZpeGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5pc0ZpeGVkfSkpfX0se2tleToiaXNPcHRpb25hbCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNPcHRpb25hbH0pKX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2Jsb2Nrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb0NvbW1pdCgpfSkpLGcobChpLnByb3RvdHlwZSksImRvQ29tbWl0Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS51bm1hc2tlZFZhbHVlfSksIiIpfSxzZXQ6ZnVuY3Rpb24odCl7bShsKGkucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLnZhbHVlfSksIiIpfSxzZXQ6ZnVuY3Rpb24odCl7bShsKGkucHJvdG90eXBlKSwidmFsdWUiLHQsdGhpcywhMCl9fSx7a2V5OiJhcHBlbmRUYWlsIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gZyhsKGkucHJvdG90eXBlKSwiYXBwZW5kVGFpbCIsdGhpcykuY2FsbCh0aGlzLHQpLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRQbGFjZWhvbGRlcigpKX19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPW5ldyB5LGk9bnVsbD09PSh0PXRoaXMuX21hcFBvc1RvQmxvY2sodGhpcy52YWx1ZS5sZW5ndGgpKXx8dm9pZCAwPT09dD92b2lkIDA6dC5pbmRleDtpZihudWxsPT1pKXJldHVybiBlO3RoaXMuX2Jsb2Nrc1tpXS5pc0ZpbGxlZCYmKytpO2Zvcih2YXIgcz1pO3M8dGhpcy5fYmxvY2tzLmxlbmd0aDsrK3Mpe3ZhciBhPXRoaXMuX2Jsb2Nrc1tzXS5fYXBwZW5kRWFnZXIoKTtpZighYS5pbnNlcnRlZClicmVhaztlLmFnZ3JlZ2F0ZShhKX1yZXR1cm4gZX19LHtrZXk6Il9hcHBlbmRDaGFyUmF3Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30saT10aGlzLl9tYXBQb3NUb0Jsb2NrKHRoaXMudmFsdWUubGVuZ3RoKSxzPW5ldyB5O2lmKCFpKXJldHVybiBzO2Zvcih2YXIgYT1pLmluZGV4OzsrK2Epe3ZhciBuLHIsbz10aGlzLl9ibG9ja3NbYV07aWYoIW8pYnJlYWs7dmFyIGw9by5fYXBwZW5kQ2hhcih0LE9iamVjdC5hc3NpZ24oe30sZSx7X2JlZm9yZVRhaWxTdGF0ZTpudWxsPT09KG49ZS5fYmVmb3JlVGFpbFN0YXRlKXx8dm9pZCAwPT09bnx8bnVsbD09PShyPW4uX2Jsb2Nrcyl8fHZvaWQgMD09PXI/dm9pZCAwOnJbYV19KSksYz1sLnNraXA7aWYocy5hZ2dyZWdhdGUobCksY3x8bC5yYXdJbnNlcnRlZClicmVha31yZXR1cm4gc319LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxpPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxzPW5ldyBZO3JldHVybiBlPT09aXx8dGhpcy5fZm9yRWFjaEJsb2Nrc0luUmFuZ2UoZSxpLChmdW5jdGlvbihlLGksYSxuKXt2YXIgcj1lLmV4dHJhY3RUYWlsKGEsbik7ci5zdG9wPXQuX2ZpbmRTdG9wQmVmb3JlKGkpLHIuZnJvbT10Ll9ibG9ja1N0YXJ0UG9zKGkpLHIgaW5zdGFuY2VvZiBZJiYoci5ibG9ja0luZGV4PWkpLHMuZXh0ZW5kKHIpfSkpLHN9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsaT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307aWYodD09PWUpcmV0dXJuIiI7dmFyIHM9IiI7cmV0dXJuIHRoaXMuX2ZvckVhY2hCbG9ja3NJblJhbmdlKHQsZSwoZnVuY3Rpb24odCxlLGEsbil7cys9dC5leHRyYWN0SW5wdXQoYSxuLGkpfSkpLHN9fSx7a2V5OiJfZmluZFN0b3BCZWZvcmUiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPTA7aTx0aGlzLl9zdG9wcy5sZW5ndGg7KytpKXt2YXIgcz10aGlzLl9zdG9wc1tpXTtpZighKHM8PXQpKWJyZWFrO2U9c31yZXR1cm4gZX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPW5ldyB5O2lmKHRoaXMubGF6eSYmbnVsbD09dClyZXR1cm4gaTt2YXIgcz10aGlzLl9tYXBQb3NUb0Jsb2NrKHRoaXMudmFsdWUubGVuZ3RoKTtpZighcylyZXR1cm4gaTt2YXIgYT1zLmluZGV4LG49bnVsbCE9dD90OnRoaXMuX2Jsb2Nrcy5sZW5ndGg7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5zbGljZShhLG4pLmZvckVhY2goKGZ1bmN0aW9uKHMpe2lmKCFzLmxhenl8fG51bGwhPXQpe3ZhciBhPW51bGwhPXMuX2Jsb2Nrcz9bcy5fYmxvY2tzLmxlbmd0aF06W10sbj1zLl9hcHBlbmRQbGFjZWhvbGRlci5hcHBseShzLGEpO2UuX3ZhbHVlKz1uLmluc2VydGVkLGkuYWdncmVnYXRlKG4pfX0pKSxpfX0se2tleToiX21hcFBvc1RvQmxvY2siLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0iIixpPTA7aTx0aGlzLl9ibG9ja3MubGVuZ3RoOysraSl7dmFyIHM9dGhpcy5fYmxvY2tzW2ldLGE9ZS5sZW5ndGg7aWYodDw9KGUrPXMudmFsdWUpLmxlbmd0aClyZXR1cm57aW5kZXg6aSxvZmZzZXQ6dC1hfX19fSx7a2V5OiJfYmxvY2tTdGFydFBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5zbGljZSgwLHQpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLnZhbHVlLmxlbmd0aH0pLDApfX0se2tleToiX2ZvckVhY2hCbG9ja3NJblJhbmdlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsaT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxzPXRoaXMuX21hcFBvc1RvQmxvY2sodCk7aWYocyl7dmFyIGE9dGhpcy5fbWFwUG9zVG9CbG9jayhlKSxuPWEmJnMuaW5kZXg9PT1hLmluZGV4LHI9cy5vZmZzZXQsbz1hJiZuP2Eub2Zmc2V0OnRoaXMuX2Jsb2Nrc1tzLmluZGV4XS52YWx1ZS5sZW5ndGg7aWYoaSh0aGlzLl9ibG9ja3Nbcy5pbmRleF0scy5pbmRleCxyLG8pLGEmJiFuKXtmb3IodmFyIGw9cy5pbmRleCsxO2w8YS5pbmRleDsrK2wpaSh0aGlzLl9ibG9ja3NbbF0sbCwwLHRoaXMuX2Jsb2Nrc1tsXS52YWx1ZS5sZW5ndGgpO2kodGhpcy5fYmxvY2tzW2EuaW5kZXhdLGEuaW5kZXgsMCxhLm9mZnNldCl9fX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxzPWcobChpLnByb3RvdHlwZSksInJlbW92ZSIsdGhpcykuY2FsbCh0aGlzLHQsZSk7cmV0dXJuIHRoaXMuX2ZvckVhY2hCbG9ja3NJblJhbmdlKHQsZSwoZnVuY3Rpb24odCxlLGksYSl7cy5hZ2dyZWdhdGUodC5yZW1vdmUoaSxhKSl9KSksc319LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOms7aWYoIXRoaXMuX2Jsb2Nrcy5sZW5ndGgpcmV0dXJuIDA7dmFyIGk9bmV3IFcodGhpcyx0KTtpZihlPT09aylyZXR1cm4gaS5wdXNoUmlnaHRCZWZvcmVJbnB1dCgpP2kucG9zOihpLnBvcFN0YXRlKCksaS5wdXNoTGVmdEJlZm9yZUlucHV0KCk/aS5wb3M6dGhpcy52YWx1ZS5sZW5ndGgpO2lmKGU9PT1TfHxlPT09Qyl7aWYoZT09PVMpe2lmKGkucHVzaFJpZ2h0QmVmb3JlRmlsbGVkKCksaS5vayYmaS5wb3M9PT10KXJldHVybiB0O2kucG9wU3RhdGUoKX1pZihpLnB1c2hMZWZ0QmVmb3JlSW5wdXQoKSxpLnB1c2hMZWZ0QmVmb3JlUmVxdWlyZWQoKSxpLnB1c2hMZWZ0QmVmb3JlRmlsbGVkKCksZT09PVMpe2lmKGkucHVzaFJpZ2h0QmVmb3JlSW5wdXQoKSxpLnB1c2hSaWdodEJlZm9yZVJlcXVpcmVkKCksaS5vayYmaS5wb3M8PXQpcmV0dXJuIGkucG9zO2lmKGkucG9wU3RhdGUoKSxpLm9rJiZpLnBvczw9dClyZXR1cm4gaS5wb3M7aS5wb3BTdGF0ZSgpfXJldHVybiBpLm9rP2kucG9zOmU9PT1DPzA6KGkucG9wU3RhdGUoKSxpLm9rP2kucG9zOihpLnBvcFN0YXRlKCksaS5vaz9pLnBvczowKSl9cmV0dXJuIGU9PT1BfHxlPT09RT8oaS5wdXNoUmlnaHRCZWZvcmVJbnB1dCgpLGkucHVzaFJpZ2h0QmVmb3JlUmVxdWlyZWQoKSxpLnB1c2hSaWdodEJlZm9yZUZpbGxlZCgpP2kucG9zOmU9PT1FP3RoaXMudmFsdWUubGVuZ3RoOihpLnBvcFN0YXRlKCksaS5vaz9pLnBvczooaS5wb3BTdGF0ZSgpLGkub2s/aS5wb3M6dGhpcy5uZWFyZXN0SW5wdXRQb3ModCxTKSkpKTp0fX0se2tleToibWFza2VkQmxvY2siLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hc2tlZEJsb2Nrcyh0KVswXX19LHtrZXk6Im1hc2tlZEJsb2NrcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXRoaXMuX21hc2tlZEJsb2Nrc1t0XTtyZXR1cm4gaT9pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2Jsb2Nrc1t0XX0pKTpbXX19XSksaX0oRCk7ai5ERUZBVUxUUz17bGF6eTohMCxwbGFjZWhvbGRlckNoYXI6Il8ifSxqLlNUT1BfQ0hBUj0iYCIsai5FU0NBUEVfQ0hBUj0iXFwiLGouSW5wdXREZWZpbml0aW9uPUIsai5GaXhlZERlZmluaXRpb249WCxGLk1hc2tlZFBhdHRlcm49ajt2YXIgRz1mdW5jdGlvbih0KXtvKGksdCk7dmFyIGU9dShpKTtmdW5jdGlvbiBpKCl7cmV0dXJuIGEodGhpcyxpKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gcihpLFt7a2V5OiJfbWF0Y2hGcm9tIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXhMZW5ndGgtU3RyaW5nKHRoaXMuZnJvbSkubGVuZ3RofX0se2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dD1PYmplY3QuYXNzaWduKHt0bzp0aGlzLnRvfHwwLGZyb206dGhpcy5mcm9tfHwwLG1heExlbmd0aDp0aGlzLm1heExlbmd0aHx8MH0sdCk7dmFyIGU9U3RyaW5nKHQudG8pLmxlbmd0aDtudWxsIT10Lm1heExlbmd0aCYmKGU9TWF0aC5tYXgoZSx0Lm1heExlbmd0aCkpLHQubWF4TGVuZ3RoPWU7Zm9yKHZhciBzPVN0cmluZyh0LmZyb20pLnBhZFN0YXJ0KGUsIjAiKSxhPVN0cmluZyh0LnRvKS5wYWRTdGFydChlLCIwIiksbj0wO248YS5sZW5ndGgmJmFbbl09PT1zW25dOykrK247dC5tYXNrPWEuc2xpY2UoMCxuKS5yZXBsYWNlKC8wL2csIlxcMCIpKyIwIi5yZXBlYXQoZS1uKSxnKGwoaS5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZyhsKGkucHJvdG90eXBlKSwiaXNDb21wbGV0ZSIsdGhpcykmJkJvb2xlYW4odGhpcy52YWx1ZSl9fSx7a2V5OiJib3VuZGFyaWVzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT0iIixpPSIiLHM9dih0Lm1hdGNoKC9eKFxEKikoXGQqKShcRCopLyl8fFtdLDMpLGE9c1sxXSxuPXNbMl07cmV0dXJuIG4mJihlPSIwIi5yZXBlYXQoYS5sZW5ndGgpK24saT0iOSIucmVwZWF0KGEubGVuZ3RoKStuKSxbZT1lLnBhZEVuZCh0aGlzLm1heExlbmd0aCwiMCIpLGk9aS5wYWRFbmQodGhpcy5tYXhMZW5ndGgsIjkiKV19fSx7a2V5OiJkb1ByZXBhcmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlLHM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGE9UChnKGwoaS5wcm90b3R5cGUpLCJkb1ByZXBhcmUiLHRoaXMpLmNhbGwodGhpcyx0LnJlcGxhY2UoL1xEL2csIiIpLHMpKSxuPXYoYSwyKTtpZih0PW5bMF0sZT1uWzFdLCF0aGlzLmF1dG9maXh8fCF0KXJldHVybiB0O3ZhciByPVN0cmluZyh0aGlzLmZyb20pLnBhZFN0YXJ0KHRoaXMubWF4TGVuZ3RoLCIwIiksbz1TdHJpbmcodGhpcy50bykucGFkU3RhcnQodGhpcy5tYXhMZW5ndGgsIjAiKSxjPXRoaXMudmFsdWUrdDtpZihjLmxlbmd0aD50aGlzLm1heExlbmd0aClyZXR1cm4iIjt2YXIgaD10aGlzLmJvdW5kYXJpZXMoYyksZD12KGgsMiksdT1kWzBdLHA9ZFsxXTtyZXR1cm4gTnVtYmVyKHApPHRoaXMuZnJvbT9yW2MubGVuZ3RoLTFdOk51bWJlcih1KT50aGlzLnRvPyJwYWQiPT09dGhpcy5hdXRvZml4JiZjLmxlbmd0aDx0aGlzLm1heExlbmd0aD9bIiIsZS5hZ2dyZWdhdGUodGhpcy5hcHBlbmQocltjLmxlbmd0aC0xXSt0LHMpKV06b1tjLmxlbmd0aC0xXTp0fX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMudmFsdWUscz1lLnNlYXJjaCgvW14wXS8pO2lmKC0xPT09cyYmZS5sZW5ndGg8PXRoaXMuX21hdGNoRnJvbSlyZXR1cm4hMDtmb3IodmFyIGE9dGhpcy5ib3VuZGFyaWVzKGUpLG49dihhLDIpLHI9blswXSxvPW5bMV0sYz1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGMpLGQ9MDtkPGM7ZCsrKWhbZF09YXJndW1lbnRzW2RdO3JldHVybiB0aGlzLmZyb208PU51bWJlcihvKSYmTnVtYmVyKHIpPD10aGlzLnRvJiYodD1nKGwoaS5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKSkuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQoaCkpfX1dKSxpfShqKTtGLk1hc2tlZFJhbmdlPUc7dmFyIFU9ZnVuY3Rpb24odCl7byhpLHQpO3ZhciBlPXUoaSk7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gYSh0aGlzLGkpLGUuY2FsbCh0aGlzLE9iamVjdC5hc3NpZ24oe30saS5ERUZBVUxUUyx0KSl9cmV0dXJuIHIoaSxbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dC5tYXNrPT09RGF0ZSYmZGVsZXRlIHQubWFzayx0LnBhdHRlcm4mJih0Lm1hc2s9dC5wYXR0ZXJuKTt2YXIgZT10LmJsb2Nrczt0LmJsb2Nrcz1PYmplY3QuYXNzaWduKHt9LGkuR0VUX0RFRkFVTFRfQkxPQ0tTKCkpLHQubWluJiYodC5ibG9ja3MuWS5mcm9tPXQubWluLmdldEZ1bGxZZWFyKCkpLHQubWF4JiYodC5ibG9ja3MuWS50bz10Lm1heC5nZXRGdWxsWWVhcigpKSx0Lm1pbiYmdC5tYXgmJnQuYmxvY2tzLlkuZnJvbT09PXQuYmxvY2tzLlkudG8mJih0LmJsb2Nrcy5tLmZyb209dC5taW4uZ2V0TW9udGgoKSsxLHQuYmxvY2tzLm0udG89dC5tYXguZ2V0TW9udGgoKSsxLHQuYmxvY2tzLm0uZnJvbT09PXQuYmxvY2tzLm0udG8mJih0LmJsb2Nrcy5kLmZyb209dC5taW4uZ2V0RGF0ZSgpLHQuYmxvY2tzLmQudG89dC5tYXguZ2V0RGF0ZSgpKSksT2JqZWN0LmFzc2lnbih0LmJsb2Nrcyx0aGlzLmJsb2NrcyxlKSxPYmplY3Qua2V5cyh0LmJsb2NrcykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIGk9dC5ibG9ja3NbZV07ISgiYXV0b2ZpeCJpbiBpKSYmImF1dG9maXgiaW4gdCYmKGkuYXV0b2ZpeD10LmF1dG9maXgpfSkpLGcobChpLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9dGhpcy5kYXRlLHM9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShzKSxuPTA7bjxzO24rKylhW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4odD1nKGwoaS5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKSkuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQoYSkpJiYoIXRoaXMuaXNDb21wbGV0ZXx8dGhpcy5pc0RhdGVFeGlzdCh0aGlzLnZhbHVlKSYmbnVsbCE9ZSYmKG51bGw9PXRoaXMubWlufHx0aGlzLm1pbjw9ZSkmJihudWxsPT10aGlzLm1heHx8ZTw9dGhpcy5tYXgpKX19LHtrZXk6ImlzRGF0ZUV4aXN0Iix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mb3JtYXQodGhpcy5wYXJzZSh0LHRoaXMpLHRoaXMpLmluZGV4T2YodCk+PTB9fSx7a2V5OiJkYXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlZFZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy50eXBlZFZhbHVlPXR9fSx7a2V5OiJ0eXBlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0NvbXBsZXRlP2cobChpLnByb3RvdHlwZSksInR5cGVkVmFsdWUiLHRoaXMpOm51bGx9LHNldDpmdW5jdGlvbih0KXttKGwoaS5wcm90b3R5cGUpLCJ0eXBlZFZhbHVlIix0LHRoaXMsITApfX0se2tleToibWFza0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1EYXRlfHxnKGwoaS5wcm90b3R5cGUpLCJtYXNrRXF1YWxzIix0aGlzKS5jYWxsKHRoaXMsdCl9fV0pLGl9KGopO1UuREVGQVVMVFM9e3BhdHRlcm46ImR7Ln1gbXsufWBZIixmb3JtYXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ/W1N0cmluZyh0LmdldERhdGUoKSkucGFkU3RhcnQoMiwiMCIpLFN0cmluZyh0LmdldE1vbnRoKCkrMSkucGFkU3RhcnQoMiwiMCIpLHQuZ2V0RnVsbFllYXIoKV0uam9pbigiLiIpOiIifSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT12KHQuc3BsaXQoIi4iKSwzKSxpPWVbMF0scz1lWzFdLGE9ZVsyXTtyZXR1cm4gbmV3IERhdGUoYSxzLTEsaSl9fSxVLkdFVF9ERUZBVUxUX0JMT0NLUz1mdW5jdGlvbigpe3JldHVybntkOnttYXNrOkcsZnJvbToxLHRvOjMxLG1heExlbmd0aDoyfSxtOnttYXNrOkcsZnJvbToxLHRvOjEyLG1heExlbmd0aDoyfSxZOnttYXNrOkcsZnJvbToxOTAwLHRvOjk5OTl9fX0sRi5NYXNrZWREYXRlPVU7dmFyIHE9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7YSh0aGlzLHQpfXJldHVybiByKHQsW3trZXk6InNlbGVjdGlvblN0YXJ0IixnZXQ6ZnVuY3Rpb24oKXt2YXIgdDt0cnl7dD10aGlzLl91bnNhZmVTZWxlY3Rpb25TdGFydH1jYXRjaCh0KXt9cmV0dXJuIG51bGwhPXQ/dDp0aGlzLnZhbHVlLmxlbmd0aH19LHtrZXk6InNlbGVjdGlvbkVuZCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9dGhpcy5fdW5zYWZlU2VsZWN0aW9uRW5kfWNhdGNoKHQpe31yZXR1cm4gbnVsbCE9dD90OnRoaXMudmFsdWUubGVuZ3RofX0se2tleToic2VsZWN0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe2lmKG51bGwhPXQmJm51bGwhPWUmJih0IT09dGhpcy5zZWxlY3Rpb25TdGFydHx8ZSE9PXRoaXMuc2VsZWN0aW9uRW5kKSl0cnl7dGhpcy5fdW5zYWZlU2VsZWN0KHQsZSl9Y2F0Y2godCl7fX19LHtrZXk6Il91bnNhZmVTZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7fX0se2tleToiaXNBY3RpdmUiLGdldDpmdW5jdGlvbigpe3JldHVybiExfX0se2tleToiYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24odCl7fX0se2tleToidW5iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe319XSksdH0oKTtGLk1hc2tFbGVtZW50PXE7dmFyIFo9ZnVuY3Rpb24odCl7byhpLHQpO3ZhciBlPXUoaSk7ZnVuY3Rpb24gaSh0KXt2YXIgcztyZXR1cm4gYSh0aGlzLGkpLChzPWUuY2FsbCh0aGlzKSkuaW5wdXQ9dCxzLl9oYW5kbGVycz17fSxzfXJldHVybiByKGksW3trZXk6InJvb3RFbGVtZW50IixnZXQ6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7cmV0dXJuIG51bGwhPT0odD1udWxsPT09KGU9KGk9dGhpcy5pbnB1dCkuZ2V0Um9vdE5vZGUpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNhbGwoaSkpJiZ2b2lkIDAhPT10P3Q6ZG9jdW1lbnR9fSx7a2V5OiJpc0FjdGl2ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQ9PT10aGlzLnJvb3RFbGVtZW50LmFjdGl2ZUVsZW1lbnR9fSx7a2V5OiJfdW5zYWZlU2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LnNlbGVjdGlvblN0YXJ0fX0se2tleToiX3Vuc2FmZVNlbGVjdGlvbkVuZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQuc2VsZWN0aW9uRW5kfX0se2tleToiX3Vuc2FmZVNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLmlucHV0LnNldFNlbGVjdGlvblJhbmdlKHQsZSl9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQudmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLmlucHV0LnZhbHVlPXR9fSx7a2V5OiJiaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO09iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKHMpe3JldHVybiBlLl90b2dnbGVFdmVudEhhbmRsZXIoaS5FVkVOVFNfTUFQW3NdLHRbc10pfSkpfX0se2tleToidW5iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7T2JqZWN0LmtleXModGhpcy5faGFuZGxlcnMpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiB0Ll90b2dnbGVFdmVudEhhbmRsZXIoZSl9KSl9fSx7a2V5OiJfdG9nZ2xlRXZlbnRIYW5kbGVyIix2YWx1ZTpmdW5jdGlvbih0LGUpe3RoaXMuX2hhbmRsZXJzW3RdJiYodGhpcy5pbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKHQsdGhpcy5faGFuZGxlcnNbdF0pLGRlbGV0ZSB0aGlzLl9oYW5kbGVyc1t0XSksZSYmKHRoaXMuaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcih0LGUpLHRoaXMuX2hhbmRsZXJzW3RdPWUpfX1dKSxpfShxKTtaLkVWRU5UU19NQVA9e3NlbGVjdGlvbkNoYW5nZToia2V5ZG93biIsaW5wdXQ6ImlucHV0Iixkcm9wOiJkcm9wIixjbGljazoiY2xpY2siLGZvY3VzOiJmb2N1cyIsY29tbWl0OiJibHVyIn0sRi5IVE1MTWFza0VsZW1lbnQ9Wjt2YXIgSz1mdW5jdGlvbih0KXtvKGksdCk7dmFyIGU9dShpKTtmdW5jdGlvbiBpKCl7cmV0dXJuIGEodGhpcyxpKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gcihpLFt7a2V5OiJfdW5zYWZlU2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMucm9vdEVsZW1lbnQsZT10LmdldFNlbGVjdGlvbiYmdC5nZXRTZWxlY3Rpb24oKSxpPWUmJmUuYW5jaG9yT2Zmc2V0LHM9ZSYmZS5mb2N1c09mZnNldDtyZXR1cm4gbnVsbD09c3x8bnVsbD09aXx8aTxzP2k6c319LHtrZXk6Il91bnNhZmVTZWxlY3Rpb25FbmQiLGdldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMucm9vdEVsZW1lbnQsZT10LmdldFNlbGVjdGlvbiYmdC5nZXRTZWxlY3Rpb24oKSxpPWUmJmUuYW5jaG9yT2Zmc2V0LHM9ZSYmZS5mb2N1c09mZnNldDtyZXR1cm4gbnVsbD09c3x8bnVsbD09aXx8aT5zP2k6c319LHtrZXk6Il91bnNhZmVTZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYodGhpcy5yb290RWxlbWVudC5jcmVhdGVSYW5nZSl7dmFyIGk9dGhpcy5yb290RWxlbWVudC5jcmVhdGVSYW5nZSgpO2kuc2V0U3RhcnQodGhpcy5pbnB1dC5maXJzdENoaWxkfHx0aGlzLmlucHV0LHQpLGkuc2V0RW5kKHRoaXMuaW5wdXQubGFzdENoaWxkfHx0aGlzLmlucHV0LGUpO3ZhciBzPXRoaXMucm9vdEVsZW1lbnQsYT1zLmdldFNlbGVjdGlvbiYmcy5nZXRTZWxlY3Rpb24oKTthJiYoYS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKGkpKX19fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQudGV4dENvbnRlbnR9LHNldDpmdW5jdGlvbih0KXt0aGlzLmlucHV0LnRleHRDb250ZW50PXR9fV0pLGl9KFopO0YuSFRNTENvbnRlbnRlZGl0YWJsZU1hc2tFbGVtZW50PUs7dmFyIEo9WyJtYXNrIl0sUT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxpKXthKHRoaXMsdCksdGhpcy5lbD1lIGluc3RhbmNlb2YgcT9lOmUuaXNDb250ZW50RWRpdGFibGUmJiJJTlBVVCIhPT1lLnRhZ05hbWUmJiJURVhUQVJFQSIhPT1lLnRhZ05hbWU/bmV3IEsoZSk6bmV3IFooZSksdGhpcy5tYXNrZWQ9TihpKSx0aGlzLl9saXN0ZW5lcnM9e30sdGhpcy5fdmFsdWU9IiIsdGhpcy5fdW5tYXNrZWRWYWx1ZT0iIix0aGlzLl9zYXZlU2VsZWN0aW9uPXRoaXMuX3NhdmVTZWxlY3Rpb24uYmluZCh0aGlzKSx0aGlzLl9vbklucHV0PXRoaXMuX29uSW5wdXQuYmluZCh0aGlzKSx0aGlzLl9vbkNoYW5nZT10aGlzLl9vbkNoYW5nZS5iaW5kKHRoaXMpLHRoaXMuX29uRHJvcD10aGlzLl9vbkRyb3AuYmluZCh0aGlzKSx0aGlzLl9vbkZvY3VzPXRoaXMuX29uRm9jdXMuYmluZCh0aGlzKSx0aGlzLl9vbkNsaWNrPXRoaXMuX29uQ2xpY2suYmluZCh0aGlzKSx0aGlzLmFsaWduQ3Vyc29yPXRoaXMuYWxpZ25DdXJzb3IuYmluZCh0aGlzKSx0aGlzLmFsaWduQ3Vyc29yRnJpZW5kbHk9dGhpcy5hbGlnbkN1cnNvckZyaWVuZGx5LmJpbmQodGhpcyksdGhpcy5fYmluZEV2ZW50cygpLHRoaXMudXBkYXRlVmFsdWUoKSx0aGlzLl9vbkNoYW5nZSgpfXJldHVybiByKHQsW3trZXk6Im1hc2siLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC5tYXNrfSxzZXQ6ZnVuY3Rpb24odCl7aWYoIXRoaXMubWFza0VxdWFscyh0KSlpZih0IGluc3RhbmNlb2YgRi5NYXNrZWR8fHRoaXMubWFza2VkLmNvbnN0cnVjdG9yIT09eih0KSl7dmFyIGU9Tih7bWFzazp0fSk7ZS51bm1hc2tlZFZhbHVlPXRoaXMubWFza2VkLnVubWFza2VkVmFsdWUsdGhpcy5tYXNrZWQ9ZX1lbHNlIHRoaXMubWFza2VkLnVwZGF0ZU9wdGlvbnMoe21hc2s6dH0pfX0se2tleToibWFza0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIG51bGw9PXR8fChudWxsPT09KGU9dGhpcy5tYXNrZWQpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLm1hc2tFcXVhbHModCkpfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudmFsdWUhPT10JiYodGhpcy5tYXNrZWQudmFsdWU9dCx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLmFsaWduQ3Vyc29yKCkpfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3VubWFza2VkVmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLnVubWFza2VkVmFsdWUhPT10JiYodGhpcy5tYXNrZWQudW5tYXNrZWRWYWx1ZT10LHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMuYWxpZ25DdXJzb3IoKSl9fSx7a2V5OiJ0eXBlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQudHlwZWRWYWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubWFza2VkLnR5cGVkVmFsdWVFcXVhbHModCl8fCh0aGlzLm1hc2tlZC50eXBlZFZhbHVlPXQsdGhpcy51cGRhdGVDb250cm9sKCksdGhpcy5hbGlnbkN1cnNvcigpKX19LHtrZXk6Il9iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWwuYmluZEV2ZW50cyh7c2VsZWN0aW9uQ2hhbmdlOnRoaXMuX3NhdmVTZWxlY3Rpb24saW5wdXQ6dGhpcy5fb25JbnB1dCxkcm9wOnRoaXMuX29uRHJvcCxjbGljazp0aGlzLl9vbkNsaWNrLGZvY3VzOnRoaXMuX29uRm9jdXMsY29tbWl0OnRoaXMuX29uQ2hhbmdlfSl9fSx7a2V5OiJfdW5iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWwmJnRoaXMuZWwudW5iaW5kRXZlbnRzKCl9fSx7a2V5OiJfZmlyZUV2ZW50Iix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShlPjE/ZS0xOjApLHM9MTtzPGU7cysrKWlbcy0xXT1hcmd1bWVudHNbc107dmFyIGE9dGhpcy5fbGlzdGVuZXJzW3RdO2EmJmEuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYXBwbHkodm9pZCAwLGkpfSkpfX0se2tleToic2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJzb3JDaGFuZ2luZz90aGlzLl9jaGFuZ2luZ0N1cnNvclBvczp0aGlzLmVsLnNlbGVjdGlvblN0YXJ0fX0se2tleToiY3Vyc29yUG9zIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3Vyc29yQ2hhbmdpbmc/dGhpcy5fY2hhbmdpbmdDdXJzb3JQb3M6dGhpcy5lbC5zZWxlY3Rpb25FbmR9LHNldDpmdW5jdGlvbih0KXt0aGlzLmVsJiZ0aGlzLmVsLmlzQWN0aXZlJiYodGhpcy5lbC5zZWxlY3QodCx0KSx0aGlzLl9zYXZlU2VsZWN0aW9uKCkpfX0se2tleToiX3NhdmVTZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZSE9PXRoaXMuZWwudmFsdWUmJmNvbnNvbGUud2FybigiRWxlbWVudCB2YWx1ZSB3YXMgY2hhbmdlZCBvdXRzaWRlIG9mIG1hc2suIFN5bmNyb25pemUgbWFzayB1c2luZyBgbWFzay51cGRhdGVWYWx1ZSgpYCB0byB3b3JrIHByb3Blcmx5LiIpLHRoaXMuX3NlbGVjdGlvbj17c3RhcnQ6dGhpcy5zZWxlY3Rpb25TdGFydCxlbmQ6dGhpcy5jdXJzb3JQb3N9fX0se2tleToidXBkYXRlVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tYXNrZWQudmFsdWU9dGhpcy5lbC52YWx1ZSx0aGlzLl92YWx1ZT10aGlzLm1hc2tlZC52YWx1ZX19LHtrZXk6InVwZGF0ZUNvbnRyb2wiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tYXNrZWQudW5tYXNrZWRWYWx1ZSxlPXRoaXMubWFza2VkLnZhbHVlLGk9dGhpcy51bm1hc2tlZFZhbHVlIT09dHx8dGhpcy52YWx1ZSE9PWU7dGhpcy5fdW5tYXNrZWRWYWx1ZT10LHRoaXMuX3ZhbHVlPWUsdGhpcy5lbC52YWx1ZSE9PWUmJih0aGlzLmVsLnZhbHVlPWUpLGkmJnRoaXMuX2ZpcmVDaGFuZ2VFdmVudHMoKX19LHtrZXk6InVwZGF0ZU9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubWFzayxpPWgodCxKKSxzPSF0aGlzLm1hc2tFcXVhbHMoZSksYT0hTSh0aGlzLm1hc2tlZCxpKTtzJiYodGhpcy5tYXNrPWUpLGEmJnRoaXMubWFza2VkLnVwZGF0ZU9wdGlvbnMoaSksKHN8fGEpJiZ0aGlzLnVwZGF0ZUNvbnRyb2woKX19LHtrZXk6InVwZGF0ZUN1cnNvciIsdmFsdWU6ZnVuY3Rpb24odCl7bnVsbCE9dCYmKHRoaXMuY3Vyc29yUG9zPXQsdGhpcy5fZGVsYXlVcGRhdGVDdXJzb3IodCkpfX0se2tleToiX2RlbGF5VXBkYXRlQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX2Fib3J0VXBkYXRlQ3Vyc29yKCksdGhpcy5fY2hhbmdpbmdDdXJzb3JQb3M9dCx0aGlzLl9jdXJzb3JDaGFuZ2luZz1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2UuZWwmJihlLmN1cnNvclBvcz1lLl9jaGFuZ2luZ0N1cnNvclBvcyxlLl9hYm9ydFVwZGF0ZUN1cnNvcigpKX0pLDEwKX19LHtrZXk6Il9maXJlQ2hhbmdlRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2ZpcmVFdmVudCgiYWNjZXB0Iix0aGlzLl9pbnB1dEV2ZW50KSx0aGlzLm1hc2tlZC5pc0NvbXBsZXRlJiZ0aGlzLl9maXJlRXZlbnQoImNvbXBsZXRlIix0aGlzLl9pbnB1dEV2ZW50KX19LHtrZXk6Il9hYm9ydFVwZGF0ZUN1cnNvciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9jdXJzb3JDaGFuZ2luZyYmKGNsZWFyVGltZW91dCh0aGlzLl9jdXJzb3JDaGFuZ2luZyksZGVsZXRlIHRoaXMuX2N1cnNvckNoYW5naW5nKX19LHtrZXk6ImFsaWduQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY3Vyc29yUG9zPXRoaXMubWFza2VkLm5lYXJlc3RJbnB1dFBvcyh0aGlzLm1hc2tlZC5uZWFyZXN0SW5wdXRQb3ModGhpcy5jdXJzb3JQb3MsUykpfX0se2tleToiYWxpZ25DdXJzb3JGcmllbmRseSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGlvblN0YXJ0PT09dGhpcy5jdXJzb3JQb3MmJnRoaXMuYWxpZ25DdXJzb3IoKX19LHtrZXk6Im9uIix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9saXN0ZW5lcnNbdF18fCh0aGlzLl9saXN0ZW5lcnNbdF09W10pLHRoaXMuX2xpc3RlbmVyc1t0XS5wdXNoKGUpLHRoaXN9fSx7a2V5OiJvZmYiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMuX2xpc3RlbmVyc1t0XSlyZXR1cm4gdGhpcztpZighZSlyZXR1cm4gZGVsZXRlIHRoaXMuX2xpc3RlbmVyc1t0XSx0aGlzO3ZhciBpPXRoaXMuX2xpc3RlbmVyc1t0XS5pbmRleE9mKGUpO3JldHVybiBpPj0wJiZ0aGlzLl9saXN0ZW5lcnNbdF0uc3BsaWNlKGksMSksdGhpc319LHtrZXk6Il9vbklucHV0Iix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLl9pbnB1dEV2ZW50PXQsdGhpcy5fYWJvcnRVcGRhdGVDdXJzb3IoKSwhdGhpcy5fc2VsZWN0aW9uKXJldHVybiB0aGlzLnVwZGF0ZVZhbHVlKCk7dmFyIGU9bmV3IE8odGhpcy5lbC52YWx1ZSx0aGlzLmN1cnNvclBvcyx0aGlzLnZhbHVlLHRoaXMuX3NlbGVjdGlvbiksaT10aGlzLm1hc2tlZC5yYXdJbnB1dFZhbHVlLHM9dGhpcy5tYXNrZWQuc3BsaWNlKGUuc3RhcnRDaGFuZ2VQb3MsZS5yZW1vdmVkLmxlbmd0aCxlLmluc2VydGVkLGUucmVtb3ZlRGlyZWN0aW9uLHtpbnB1dDohMCxyYXc6ITB9KS5vZmZzZXQsYT1pPT09dGhpcy5tYXNrZWQucmF3SW5wdXRWYWx1ZT9lLnJlbW92ZURpcmVjdGlvbjprLG49dGhpcy5tYXNrZWQubmVhcmVzdElucHV0UG9zKGUuc3RhcnRDaGFuZ2VQb3MrcyxhKTthIT09ayYmKG49dGhpcy5tYXNrZWQubmVhcmVzdElucHV0UG9zKG4saykpLHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMudXBkYXRlQ3Vyc29yKG4pLGRlbGV0ZSB0aGlzLl9pbnB1dEV2ZW50fX0se2tleToiX29uQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmFsdWUhPT10aGlzLmVsLnZhbHVlJiZ0aGlzLnVwZGF0ZVZhbHVlKCksdGhpcy5tYXNrZWQuZG9Db21taXQoKSx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLl9zYXZlU2VsZWN0aW9uKCl9fSx7a2V5OiJfb25Ecm9wIix2YWx1ZTpmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKX19LHtrZXk6Il9vbkZvY3VzIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmFsaWduQ3Vyc29yRnJpZW5kbHkoKX19LHtrZXk6Il9vbkNsaWNrIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmFsaWduQ3Vyc29yRnJpZW5kbHkoKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fdW5iaW5kRXZlbnRzKCksdGhpcy5fbGlzdGVuZXJzLmxlbmd0aD0wLGRlbGV0ZSB0aGlzLmVsfX1dKSx0fSgpO0YuSW5wdXRNYXNrPVE7dmFyIHR0PWZ1bmN0aW9uKHQpe28oaSx0KTt2YXIgZT11KGkpO2Z1bmN0aW9uIGkoKXtyZXR1cm4gYSh0aGlzLGkpLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiByKGksW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3QuZW51bSYmKHQubWFzaz0iKiIucmVwZWF0KHQuZW51bVswXS5sZW5ndGgpKSxnKGwoaS5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXRoaXMscz1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KHMpLG49MDtuPHM7bisrKWFbbl09YXJndW1lbnRzW25dO3JldHVybiB0aGlzLmVudW0uc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaW5kZXhPZihlLnVubWFza2VkVmFsdWUpPj0wfSkpJiYodD1nKGwoaS5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKSkuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQoYSkpfX1dKSxpfShqKTtGLk1hc2tlZEVudW09dHQ7dmFyIGV0LGl0PWZ1bmN0aW9uKHQpe28oaSx0KTt2YXIgZT11KGkpO2Z1bmN0aW9uIGkodCl7cmV0dXJuIGEodGhpcyxpKSxlLmNhbGwodGhpcyxPYmplY3QuYXNzaWduKHt9LGkuREVGQVVMVFMsdCkpfXJldHVybiByKGksW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe2cobChpLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KSx0aGlzLl91cGRhdGVSZWdFeHBzKCl9fSx7a2V5OiJfdXBkYXRlUmVnRXhwcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD0iXiIrKHRoaXMuYWxsb3dOZWdhdGl2ZT8iWyt8XFwtXT8iOiIiKSxlPSh0aGlzLnNjYWxlPyIoIitMKHRoaXMucmFkaXgpKyJcXGR7MCwiK3RoaXMuc2NhbGUrIn0pPyI6IiIpKyIkIjt0aGlzLl9udW1iZXJSZWdFeHBJbnB1dD1uZXcgUmVnRXhwKHQrIigwfChbMS05XStcXGQqKSk/IitlKSx0aGlzLl9udW1iZXJSZWdFeHA9bmV3IFJlZ0V4cCh0KyJcXGQqIitlKSx0aGlzLl9tYXBUb1JhZGl4UmVnRXhwPW5ldyBSZWdFeHAoIlsiK3RoaXMubWFwVG9SYWRpeC5tYXAoTCkuam9pbigiIikrIl0iLCJnIiksdGhpcy5fdGhvdXNhbmRzU2VwYXJhdG9yUmVnRXhwPW5ldyBSZWdFeHAoTCh0aGlzLnRob3VzYW5kc1NlcGFyYXRvciksImciKX19LHtrZXk6Il9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKHRoaXMuX3Rob3VzYW5kc1NlcGFyYXRvclJlZ0V4cCwiIil9fSx7a2V5OiJfaW5zZXJ0VGhvdXNhbmRzU2VwYXJhdG9ycyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCh0aGlzLnJhZGl4KTtyZXR1cm4gZVswXT1lWzBdLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csdGhpcy50aG91c2FuZHNTZXBhcmF0b3IpLGUuam9pbih0aGlzLnJhZGl4KX19LHtrZXk6ImRvUHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU7dD10LnJlcGxhY2UodGhpcy5fbWFwVG9SYWRpeFJlZ0V4cCx0aGlzLnJhZGl4KTtmb3IodmFyIHM9dGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0KSxhPWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcgQXJyYXkoYT4xP2EtMTowKSxyPTE7cjxhO3IrKyluW3ItMV09YXJndW1lbnRzW3JdO3ZhciBvPVAoKGU9ZyhsKGkucHJvdG90eXBlKSwiZG9QcmVwYXJlIix0aGlzKSkuY2FsbC5hcHBseShlLFt0aGlzLHNdLmNvbmNhdChuKSkpLGM9dihvLDIpLGg9Y1swXSxkPWNbMV07cmV0dXJuIHQmJiFzJiYoZC5za2lwPSEwKSxbaCxkXX19LHtrZXk6Il9zZXBhcmF0b3JzQ291bnQiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLGk9MCxzPTA7czx0Oysrcyl0aGlzLl92YWx1ZS5pbmRleE9mKHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLHMpPT09cyYmKCsraSxlJiYodCs9dGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoKSk7cmV0dXJuIGl9fSx7a2V5OiJfc2VwYXJhdG9yc0NvdW50RnJvbVNsaWNlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLl92YWx1ZTtyZXR1cm4gdGhpcy5fc2VwYXJhdG9yc0NvdW50KHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModCkubGVuZ3RoLCEwKX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxzPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLGE9dGhpcy5fYWRqdXN0UmFuZ2VXaXRoU2VwYXJhdG9ycyh0LGUpLG49dihhLDIpO3JldHVybiB0PW5bMF0sZT1uWzFdLHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnMoZyhsKGkucHJvdG90eXBlKSwiZXh0cmFjdElucHV0Iix0aGlzKS5jYWxsKHRoaXMsdCxlLHMpKX19LHtrZXk6Il9hcHBlbmRDaGFyUmF3Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307aWYoIXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKXJldHVybiBnKGwoaS5wcm90b3R5cGUpLCJfYXBwZW5kQ2hhclJhdyIsdGhpcykuY2FsbCh0aGlzLHQsZSk7dmFyIHM9ZS50YWlsJiZlLl9iZWZvcmVUYWlsU3RhdGU/ZS5fYmVmb3JlVGFpbFN0YXRlLl92YWx1ZTp0aGlzLl92YWx1ZSxhPXRoaXMuX3NlcGFyYXRvcnNDb3VudEZyb21TbGljZShzKTt0aGlzLl92YWx1ZT10aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMudmFsdWUpO3ZhciBuPWcobChpLnByb3RvdHlwZSksIl9hcHBlbmRDaGFyUmF3Iix0aGlzKS5jYWxsKHRoaXMsdCxlKTt0aGlzLl92YWx1ZT10aGlzLl9pbnNlcnRUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMuX3ZhbHVlKTt2YXIgcj1lLnRhaWwmJmUuX2JlZm9yZVRhaWxTdGF0ZT9lLl9iZWZvcmVUYWlsU3RhdGUuX3ZhbHVlOnRoaXMuX3ZhbHVlLG89dGhpcy5fc2VwYXJhdG9yc0NvdW50RnJvbVNsaWNlKHIpO3JldHVybiBuLnRhaWxTaGlmdCs9KG8tYSkqdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoLG4uc2tpcD0hbi5yYXdJbnNlcnRlZCYmdD09PXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLG59fSx7a2V5OiJfZmluZFNlcGFyYXRvckFyb3VuZCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy50aG91c2FuZHNTZXBhcmF0b3Ipe3ZhciBlPXQtdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoKzEsaT10aGlzLnZhbHVlLmluZGV4T2YodGhpcy50aG91c2FuZHNTZXBhcmF0b3IsZSk7aWYoaTw9dClyZXR1cm4gaX1yZXR1cm4tMX19LHtrZXk6Il9hZGp1c3RSYW5nZVdpdGhTZXBhcmF0b3JzIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuX2ZpbmRTZXBhcmF0b3JBcm91bmQodCk7aT49MCYmKHQ9aSk7dmFyIHM9dGhpcy5fZmluZFNlcGFyYXRvckFyb3VuZChlKTtyZXR1cm4gcz49MCYmKGU9cyt0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGgpLFt0LGVdfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLGk9dGhpcy5fYWRqdXN0UmFuZ2VXaXRoU2VwYXJhdG9ycyh0LGUpLHM9dihpLDIpO3Q9c1swXSxlPXNbMV07dmFyIGE9dGhpcy52YWx1ZS5zbGljZSgwLHQpLG49dGhpcy52YWx1ZS5zbGljZShlKSxyPXRoaXMuX3NlcGFyYXRvcnNDb3VudChhLmxlbmd0aCk7dGhpcy5fdmFsdWU9dGhpcy5faW5zZXJ0VGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKGErbikpO3ZhciBvPXRoaXMuX3NlcGFyYXRvcnNDb3VudEZyb21TbGljZShhKTtyZXR1cm4gbmV3IHkoe3RhaWxTaGlmdDooby1yKSp0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGh9KX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZighdGhpcy50aG91c2FuZHNTZXBhcmF0b3IpcmV0dXJuIHQ7c3dpdGNoKGUpe2Nhc2UgazpjYXNlIFM6Y2FzZSBDOnZhciBpPXRoaXMuX2ZpbmRTZXBhcmF0b3JBcm91bmQodC0xKTtpZihpPj0wKXt2YXIgcz1pK3RoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aDtpZih0PHN8fHRoaXMudmFsdWUubGVuZ3RoPD1zfHxlPT09QylyZXR1cm4gaX1icmVhaztjYXNlIEE6Y2FzZSBFOnZhciBhPXRoaXMuX2ZpbmRTZXBhcmF0b3JBcm91bmQodCk7aWYoYT49MClyZXR1cm4gYSt0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGh9cmV0dXJuIHR9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT0odC5pbnB1dD90aGlzLl9udW1iZXJSZWdFeHBJbnB1dDp0aGlzLl9udW1iZXJSZWdFeHApLnRlc3QodGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLnZhbHVlKSk7aWYoZSl7dmFyIHM9dGhpcy5udW1iZXI7ZT1lJiYhaXNOYU4ocykmJihudWxsPT10aGlzLm1pbnx8dGhpcy5taW4+PTB8fHRoaXMubWluPD10aGlzLm51bWJlcikmJihudWxsPT10aGlzLm1heHx8dGhpcy5tYXg8PTB8fHRoaXMubnVtYmVyPD10aGlzLm1heCl9cmV0dXJuIGUmJmcobChpLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMudmFsdWUpe3ZhciB0PXRoaXMubnVtYmVyLGU9dDtudWxsIT10aGlzLm1pbiYmKGU9TWF0aC5tYXgoZSx0aGlzLm1pbikpLG51bGwhPXRoaXMubWF4JiYoZT1NYXRoLm1pbihlLHRoaXMubWF4KSksZSE9PXQmJih0aGlzLnVubWFza2VkVmFsdWU9U3RyaW5nKGUpKTt2YXIgcz10aGlzLnZhbHVlO3RoaXMubm9ybWFsaXplWmVyb3MmJihzPXRoaXMuX25vcm1hbGl6ZVplcm9zKHMpKSx0aGlzLnBhZEZyYWN0aW9uYWxaZXJvcyYmdGhpcy5zY2FsZT4wJiYocz10aGlzLl9wYWRGcmFjdGlvbmFsWmVyb3MocykpLHRoaXMuX3ZhbHVlPXN9ZyhsKGkucHJvdG90eXBlKSwiZG9Db21taXQiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJfbm9ybWFsaXplWmVyb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModCkuc3BsaXQodGhpcy5yYWRpeCk7cmV0dXJuIGVbMF09ZVswXS5yZXBsYWNlKC9eKFxEKikoMCopKFxkKikvLChmdW5jdGlvbih0LGUsaSxzKXtyZXR1cm4gZStzfSkpLHQubGVuZ3RoJiYhL1xkJC8udGVzdChlWzBdKSYmKGVbMF09ZVswXSsiMCIpLGUubGVuZ3RoPjEmJihlWzFdPWVbMV0ucmVwbGFjZSgvMCokLywiIiksZVsxXS5sZW5ndGh8fChlLmxlbmd0aD0xKSksdGhpcy5faW5zZXJ0VGhvdXNhbmRzU2VwYXJhdG9ycyhlLmpvaW4odGhpcy5yYWRpeCkpfX0se2tleToiX3BhZEZyYWN0aW9uYWxaZXJvcyIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIHQ7dmFyIGU9dC5zcGxpdCh0aGlzLnJhZGl4KTtyZXR1cm4gZS5sZW5ndGg8MiYmZS5wdXNoKCIiKSxlWzFdPWVbMV0ucGFkRW5kKHRoaXMuc2NhbGUsIjAiKSxlLmpvaW4odGhpcy5yYWRpeCl9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLl9ub3JtYWxpemVaZXJvcyh0aGlzLnZhbHVlKSkucmVwbGFjZSh0aGlzLnJhZGl4LCIuIil9LHNldDpmdW5jdGlvbih0KXttKGwoaS5wcm90b3R5cGUpLCJ1bm1hc2tlZFZhbHVlIix0LnJlcGxhY2UoIi4iLHRoaXMucmFkaXgpLHRoaXMsITApfX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE51bWJlcih0aGlzLnVubWFza2VkVmFsdWUpfSxzZXQ6ZnVuY3Rpb24odCl7bShsKGkucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsU3RyaW5nKHQpLHRoaXMsITApfX0se2tleToibnVtYmVyIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlZFZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy50eXBlZFZhbHVlPXR9fSx7a2V5OiJhbGxvd05lZ2F0aXZlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaWduZWR8fG51bGwhPXRoaXMubWluJiZ0aGlzLm1pbjwwfHxudWxsIT10aGlzLm1heCYmdGhpcy5tYXg8MH19LHtrZXk6InR5cGVkVmFsdWVFcXVhbHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybihnKGwoaS5wcm90b3R5cGUpLCJ0eXBlZFZhbHVlRXF1YWxzIix0aGlzKS5jYWxsKHRoaXMsdCl8fGkuRU1QVFlfVkFMVUVTLmluY2x1ZGVzKHQpJiZpLkVNUFRZX1ZBTFVFUy5pbmNsdWRlcyh0aGlzLnR5cGVkVmFsdWUpKSYmISgwPT09dCYmIiI9PT10aGlzLnZhbHVlKX19XSksaX0oRCk7aXQuREVGQVVMVFM9e3JhZGl4OiIsIix0aG91c2FuZHNTZXBhcmF0b3I6IiIsbWFwVG9SYWRpeDpbIi4iXSxzY2FsZToyLHNpZ25lZDohMSxub3JtYWxpemVaZXJvczohMCxwYWRGcmFjdGlvbmFsWmVyb3M6ITF9LGl0LkVNUFRZX1ZBTFVFUz1bXS5jb25jYXQoZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gYih0KX0oZXQ9RC5FTVBUWV9WQUxVRVMpfHxmdW5jdGlvbih0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9dFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT10WyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20odCl9KGV0KXx8eChldCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCksWzBdKSxGLk1hc2tlZE51bWJlcj1pdDt2YXIgc3Q9ZnVuY3Rpb24odCl7byhpLHQpO3ZhciBlPXUoaSk7ZnVuY3Rpb24gaSgpe3JldHVybiBhKHRoaXMsaSksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHIoaSxbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dC5tYXNrJiYodC52YWxpZGF0ZT10Lm1hc2spLGcobChpLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19XSksaX0oRCk7Ri5NYXNrZWRGdW5jdGlvbj1zdDt2YXIgYXQ9WyJjb21waWxlZE1hc2tzIiwiY3VycmVudE1hc2tSZWYiLCJjdXJyZW50TWFzayJdLG50PWZ1bmN0aW9uKHQpe28oaSx0KTt2YXIgZT11KGkpO2Z1bmN0aW9uIGkodCl7dmFyIHM7cmV0dXJuIGEodGhpcyxpKSwocz1lLmNhbGwodGhpcyxPYmplY3QuYXNzaWduKHt9LGkuREVGQVVMVFMsdCkpKS5jdXJyZW50TWFzaz1udWxsLHN9cmV0dXJuIHIoaSxbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7ZyhsKGkucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpLCJtYXNrImluIHQmJih0aGlzLmNvbXBpbGVkTWFza3M9QXJyYXkuaXNBcnJheSh0Lm1hc2spP3QubWFzay5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBOKHQpfSkpOltdKX19LHtrZXk6Il9hcHBlbmRDaGFyUmF3Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30saT10aGlzLl9hcHBseURpc3BhdGNoKHQsZSk7cmV0dXJuIHRoaXMuY3VycmVudE1hc2smJmkuYWdncmVnYXRlKHRoaXMuY3VycmVudE1hc2suX2FwcGVuZENoYXIodCx0aGlzLmN1cnJlbnRNYXNrRmxhZ3MoZSkpKSxpfX0se2tleToiX2FwcGx5RGlzcGF0Y2giLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGk9ZS50YWlsJiZudWxsIT1lLl9iZWZvcmVUYWlsU3RhdGU/ZS5fYmVmb3JlVGFpbFN0YXRlLl92YWx1ZTp0aGlzLnZhbHVlLHM9dGhpcy5yYXdJbnB1dFZhbHVlLGE9ZS50YWlsJiZudWxsIT1lLl9iZWZvcmVUYWlsU3RhdGU/ZS5fYmVmb3JlVGFpbFN0YXRlLl9yYXdJbnB1dFZhbHVlOnMsbj1zLnNsaWNlKGEubGVuZ3RoKSxyPXRoaXMuY3VycmVudE1hc2ssbz1uZXcgeSxsPW51bGw9PXI/dm9pZCAwOnIuc3RhdGU7aWYodGhpcy5jdXJyZW50TWFzaz10aGlzLmRvRGlzcGF0Y2godCxPYmplY3QuYXNzaWduKHt9LGUpKSx0aGlzLmN1cnJlbnRNYXNrKWlmKHRoaXMuY3VycmVudE1hc2shPT1yKXtpZih0aGlzLmN1cnJlbnRNYXNrLnJlc2V0KCksYSl7dmFyIGM9dGhpcy5jdXJyZW50TWFzay5hcHBlbmQoYSx7cmF3OiEwfSk7by50YWlsU2hpZnQ9Yy5pbnNlcnRlZC5sZW5ndGgtaS5sZW5ndGh9biYmKG8udGFpbFNoaWZ0Kz10aGlzLmN1cnJlbnRNYXNrLmFwcGVuZChuLHtyYXc6ITAsdGFpbDohMH0pLnRhaWxTaGlmdCl9ZWxzZSB0aGlzLmN1cnJlbnRNYXNrLnN0YXRlPWw7cmV0dXJuIG99fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fYXBwbHlEaXNwYXRjaC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuY3VycmVudE1hc2smJnQuYWdncmVnYXRlKHRoaXMuY3VycmVudE1hc2suX2FwcGVuZFBsYWNlaG9sZGVyKCkpLHR9fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fYXBwbHlEaXNwYXRjaC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuY3VycmVudE1hc2smJnQuYWdncmVnYXRlKHRoaXMuY3VycmVudE1hc2suX2FwcGVuZEVhZ2VyKCkpLHR9fSx7a2V5OiJjdXJyZW50TWFza0ZsYWdzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpO3JldHVybiBPYmplY3QuYXNzaWduKHt9LHQse19iZWZvcmVUYWlsU3RhdGU6KG51bGw9PT0oZT10Ll9iZWZvcmVUYWlsU3RhdGUpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmN1cnJlbnRNYXNrUmVmKT09PXRoaXMuY3VycmVudE1hc2smJihudWxsPT09KGk9dC5fYmVmb3JlVGFpbFN0YXRlKXx8dm9pZCAwPT09aT92b2lkIDA6aS5jdXJyZW50TWFzayl8fHQuX2JlZm9yZVRhaWxTdGF0ZX0pfX0se2tleToiZG9EaXNwYXRjaCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O3JldHVybiB0aGlzLmRpc3BhdGNoKHQsdGhpcyxlKX19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBnKGwoaS5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCkmJighdGhpcy5jdXJyZW50TWFza3x8dGhpcy5jdXJyZW50TWFzay5kb1ZhbGlkYXRlKHRoaXMuY3VycmVudE1hc2tGbGFncyh0KSkpfX0se2tleToiZG9QcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30scz1QKGcobChpLnByb3RvdHlwZSksImRvUHJlcGFyZSIsdGhpcykuY2FsbCh0aGlzLHQsZSkpLGE9dihzLDIpLG49YVswXSxyPWFbMV07aWYodGhpcy5jdXJyZW50TWFzayl7dmFyIG8sYz1QKGcobChpLnByb3RvdHlwZSksImRvUHJlcGFyZSIsdGhpcykuY2FsbCh0aGlzLG4sdGhpcy5jdXJyZW50TWFza0ZsYWdzKGUpKSksaD12KGMsMik7bj1oWzBdLG89aFsxXSxyPXIuYWdncmVnYXRlKG8pfXJldHVybltuLHJdfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7bnVsbD09PSh0PXRoaXMuY3VycmVudE1hc2spfHx2b2lkIDA9PT10fHx0LnJlc2V0KCksdGhpcy5jb21waWxlZE1hc2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlc2V0KCl9KSl9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s/dGhpcy5jdXJyZW50TWFzay52YWx1ZToiIn0sc2V0OmZ1bmN0aW9uKHQpe20obChpLnByb3RvdHlwZSksInZhbHVlIix0LHRoaXMsITApfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s/dGhpcy5jdXJyZW50TWFzay51bm1hc2tlZFZhbHVlOiIifSxzZXQ6ZnVuY3Rpb24odCl7bShsKGkucHJvdG90eXBlKSwidW5tYXNrZWRWYWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2sudHlwZWRWYWx1ZToiIn0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyh0KTt0aGlzLmN1cnJlbnRNYXNrJiYodGhpcy5jdXJyZW50TWFzay50eXBlZFZhbHVlPXQsZT10aGlzLmN1cnJlbnRNYXNrLnVubWFza2VkVmFsdWUpLHRoaXMudW5tYXNrZWRWYWx1ZT1lfX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIEJvb2xlYW4obnVsbD09PSh0PXRoaXMuY3VycmVudE1hc2spfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmlzQ29tcGxldGUpfX0se2tleToiaXNGaWxsZWQiLGdldDpmdW5jdGlvbigpe3ZhciB0O3JldHVybiBCb29sZWFuKG51bGw9PT0odD10aGlzLmN1cnJlbnRNYXNrKXx8dm9pZCAwPT09dD92b2lkIDA6dC5pc0ZpbGxlZCl9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZT1uZXcgeTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzayYmZS5hZ2dyZWdhdGUoKHQ9dGhpcy5jdXJyZW50TWFzaykucmVtb3ZlLmFwcGx5KHQsYXJndW1lbnRzKSkuYWdncmVnYXRlKHRoaXMuX2FwcGx5RGlzcGF0Y2goKSksZX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxnKGwoaS5wcm90b3R5cGUpLCJzdGF0ZSIsdGhpcykse19yYXdJbnB1dFZhbHVlOnRoaXMucmF3SW5wdXRWYWx1ZSxjb21waWxlZE1hc2tzOnRoaXMuY29tcGlsZWRNYXNrcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN0YXRlfSkpLGN1cnJlbnRNYXNrUmVmOnRoaXMuY3VycmVudE1hc2ssY3VycmVudE1hc2s6bnVsbD09PSh0PXRoaXMuY3VycmVudE1hc2spfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnN0YXRlfSl9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10LmNvbXBpbGVkTWFza3Mscz10LmN1cnJlbnRNYXNrUmVmLGE9dC5jdXJyZW50TWFzayxuPWgodCxhdCk7dGhpcy5jb21waWxlZE1hc2tzLmZvckVhY2goKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIHQuc3RhdGU9ZVtpXX0pKSxudWxsIT1zJiYodGhpcy5jdXJyZW50TWFzaz1zLHRoaXMuY3VycmVudE1hc2suc3RhdGU9YSksbShsKGkucHJvdG90eXBlKSwic3RhdGUiLG4sdGhpcywhMCl9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s/KHQ9dGhpcy5jdXJyZW50TWFzaykuZXh0cmFjdElucHV0LmFwcGx5KHQsYXJndW1lbnRzKToiIn19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlLHM9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShzKSxuPTA7bjxzO24rKylhW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz8odD10aGlzLmN1cnJlbnRNYXNrKS5leHRyYWN0VGFpbC5hcHBseSh0LGEpOihlPWcobChpLnByb3RvdHlwZSksImV4dHJhY3RUYWlsIix0aGlzKSkuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQoYSkpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50TWFzayYmdGhpcy5jdXJyZW50TWFzay5kb0NvbW1pdCgpLGcobChpLnByb3RvdHlwZSksImRvQ29tbWl0Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlLHM9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShzKSxuPTA7bjxzO24rKylhW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz8odD10aGlzLmN1cnJlbnRNYXNrKS5uZWFyZXN0SW5wdXRQb3MuYXBwbHkodCxhKTooZT1nKGwoaS5wcm90b3R5cGUpLCJuZWFyZXN0SW5wdXRQb3MiLHRoaXMpKS5jYWxsLmFwcGx5KGUsW3RoaXNdLmNvbmNhdChhKSl9fSx7a2V5OiJvdmVyd3JpdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2sub3ZlcndyaXRlOmcobChpLnByb3RvdHlwZSksIm92ZXJ3cml0ZSIsdGhpcyl9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oJyJvdmVyd3JpdGUiIG9wdGlvbiBpcyBub3QgYXZhaWxhYmxlIGluIGR5bmFtaWMgbWFzaywgdXNlIHRoaXMgb3B0aW9uIGluIHNpYmxpbmdzJyl9fSx7a2V5OiJlYWdlciIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s/dGhpcy5jdXJyZW50TWFzay5lYWdlcjpnKGwoaS5wcm90b3R5cGUpLCJlYWdlciIsdGhpcyl9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oJyJlYWdlciIgb3B0aW9uIGlzIG5vdCBhdmFpbGFibGUgaW4gZHluYW1pYyBtYXNrLCB1c2UgdGhpcyBvcHRpb24gaW4gc2libGluZ3MnKX19LHtrZXk6Im1hc2tFcXVhbHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZ0aGlzLmNvbXBpbGVkTWFza3MuZXZlcnkoKGZ1bmN0aW9uKGUsaSl7dmFyIHM7cmV0dXJuIGUubWFza0VxdWFscyhudWxsPT09KHM9dFtpXSl8fHZvaWQgMD09PXM/dm9pZCAwOnMubWFzayl9KSl9fSx7a2V5OiJ0eXBlZFZhbHVlRXF1YWxzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gQm9vbGVhbihudWxsPT09KGU9dGhpcy5jdXJyZW50TWFzayl8fHZvaWQgMD09PWU/dm9pZCAwOmUudHlwZWRWYWx1ZUVxdWFscyh0KSl9fV0pLGl9KEQpO250LkRFRkFVTFRTPXtkaXNwYXRjaDpmdW5jdGlvbih0LGUsaSl7aWYoZS5jb21waWxlZE1hc2tzLmxlbmd0aCl7dmFyIHM9ZS5yYXdJbnB1dFZhbHVlLGE9ZS5jb21waWxlZE1hc2tzLm1hcCgoZnVuY3Rpb24oYSxuKXtyZXR1cm4gYS5yZXNldCgpLGEuYXBwZW5kKHMse3JhdzohMH0pLGEuYXBwZW5kKHQsZS5jdXJyZW50TWFza0ZsYWdzKGkpKSx7d2VpZ2h0OmEucmF3SW5wdXRWYWx1ZS5sZW5ndGgsaW5kZXg6bn19KSk7cmV0dXJuIGEuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS53ZWlnaHQtdC53ZWlnaHR9KSksZS5jb21waWxlZE1hc2tzW2FbMF0uaW5kZXhdfX19LEYuTWFza2VkRHluYW1pYz1udDt2YXIgcnQ9e01BU0tFRDoidmFsdWUiLFVOTUFTS0VEOiJ1bm1hc2tlZFZhbHVlIixUWVBFRDoidHlwZWRWYWx1ZSJ9O2Z1bmN0aW9uIG90KHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpydC5NQVNLRUQsaT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06cnQuTUFTS0VELHM9Tih0KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHMucnVuSXNvbGF0ZWQoKGZ1bmN0aW9uKHMpe3JldHVybiBzW2VdPXQsc1tpXX0pKX19Ri5QSVBFX1RZUEU9cnQsRi5jcmVhdGVQaXBlPW90LEYucGlwZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShlPjE/ZS0xOjApLHM9MTtzPGU7cysrKWlbcy0xXT1hcmd1bWVudHNbc107cmV0dXJuIG90LmFwcGx5KHZvaWQgMCxpKSh0KX07dHJ5e2dsb2JhbFRoaXMuSU1hc2s9Rn1jYXRjaCh0KXt9fSw2ODU6ZnVuY3Rpb24odCxlLGkpeyJ1c2Ugc3RyaWN0IjtpLmQoZSx7SXE6ZnVuY3Rpb24oKXtyZXR1cm4gaH19KTt2YXIgcyxhPWZ1bmN0aW9uKCl7cmV0dXJuIGE9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9MSxzPWFyZ3VtZW50cy5sZW5ndGg7aTxzO2krKylmb3IodmFyIGEgaW4gZT1hcmd1bWVudHNbaV0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsYSkmJih0W2FdPWVbYV0pO3JldHVybiB0fSxhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5vcHRpb25zPXQsdGhpcy5saXN0ZW5lcnM9e319cmV0dXJuIHQucHJvdG90eXBlLm9uPWZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5saXN0ZW5lcnNbdF18fFtdO3RoaXMubGlzdGVuZXJzW3RdPWkuY29uY2F0KFtlXSl9LHQucHJvdG90eXBlLnRyaWdnZXJFdmVudD1mdW5jdGlvbih0LGUpe3ZhciBpPXRoaXM7KHRoaXMubGlzdGVuZXJzW3RdfHxbXSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQoe3RhcmdldDppLGV2ZW50OmV9KX0pKX0sdH0oKTshZnVuY3Rpb24odCl7dFt0LkFkZD0wXT0iQWRkIix0W3QuUmVtb3ZlPTFdPSJSZW1vdmUifShzfHwocz17fSkpO3ZhciByLG89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dGhpcy5ub3RpZmljYXRpb25zPVtdfXJldHVybiB0LnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHQpe3RoaXMubm90aWZpY2F0aW9ucy5wdXNoKHQpLHRoaXMudXBkYXRlRm4odCxzLkFkZCx0aGlzLm5vdGlmaWNhdGlvbnMpfSx0LnByb3RvdHlwZS5zcGxpY2U9ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLm5vdGlmaWNhdGlvbnMuc3BsaWNlKHQsZSlbMF07cmV0dXJuIHRoaXMudXBkYXRlRm4oaSxzLlJlbW92ZSx0aGlzLm5vdGlmaWNhdGlvbnMpLGl9LHQucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubm90aWZpY2F0aW9ucy5pbmRleE9mKHQpfSx0LnByb3RvdHlwZS5vblVwZGF0ZT1mdW5jdGlvbih0KXt0aGlzLnVwZGF0ZUZuPXR9LHR9KCk7IWZ1bmN0aW9uKHQpe3QuRGlzbWlzcz0iZGlzbWlzcyIsdC5DbGljaz0iY2xpY2sifShyfHwocj17fSkpO3ZhciBsPXt0eXBlczpbe3R5cGU6InN1Y2Nlc3MiLGNsYXNzTmFtZToibm90eWZfX3RvYXN0LS1zdWNjZXNzIixiYWNrZ3JvdW5kQ29sb3I6IiMzZGM3NjMiLGljb246e2NsYXNzTmFtZToibm90eWZfX2ljb24tLXN1Y2Nlc3MiLHRhZ05hbWU6ImkifX0se3R5cGU6ImVycm9yIixjbGFzc05hbWU6Im5vdHlmX190b2FzdC0tZXJyb3IiLGJhY2tncm91bmRDb2xvcjoiI2VkM2QzZCIsaWNvbjp7Y2xhc3NOYW1lOiJub3R5Zl9faWNvbi0tZXJyb3IiLHRhZ05hbWU6ImkifX1dLGR1cmF0aW9uOjJlMyxyaXBwbGU6ITAscG9zaXRpb246e3g6InJpZ2h0Iix5OiJib3R0b20ifSxkaXNtaXNzaWJsZTohMX0sYz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLm5vdGlmaWNhdGlvbnM9W10sdGhpcy5ldmVudHM9e30sdGhpcy5YX1BPU0lUSU9OX0ZMRVhfTUFQPXtsZWZ0OiJmbGV4LXN0YXJ0IixjZW50ZXI6ImNlbnRlciIscmlnaHQ6ImZsZXgtZW5kIn0sdGhpcy5ZX1BPU0lUSU9OX0ZMRVhfTUFQPXt0b3A6ImZsZXgtc3RhcnQiLGNlbnRlcjoiY2VudGVyIixib3R0b206ImZsZXgtZW5kIn07dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGU9dGhpcy5fY3JlYXRlSFRNTEVsZW1lbnQoe3RhZ05hbWU6ImRpdiIsY2xhc3NOYW1lOiJub3R5ZiJ9KTt0LmFwcGVuZENoaWxkKGUpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksdGhpcy5jb250YWluZXI9ZSx0aGlzLmFuaW1hdGlvbkVuZEV2ZW50TmFtZT10aGlzLl9nZXRBbmltYXRpb25FbmRFdmVudE5hbWUoKSx0aGlzLl9jcmVhdGVBMTF5Q29udGFpbmVyKCl9cmV0dXJuIHQucHJvdG90eXBlLm9uPWZ1bmN0aW9uKHQsZSl7dmFyIGk7dGhpcy5ldmVudHM9YShhKHt9LHRoaXMuZXZlbnRzKSwoKGk9e30pW3RdPWUsaSkpfSx0LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXtlPT09cy5BZGQ/dGhpcy5hZGROb3RpZmljYXRpb24odCk6ZT09PXMuUmVtb3ZlJiZ0aGlzLnJlbW92ZU5vdGlmaWNhdGlvbih0KX0sdC5wcm90b3R5cGUucmVtb3ZlTm90aWZpY2F0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlLGkscz10aGlzLGE9dGhpcy5fcG9wUmVuZGVyZWROb3RpZmljYXRpb24odCk7YSYmKChlPWEubm9kZSkuY2xhc3NMaXN0LmFkZCgibm90eWZfX3RvYXN0LS1kaXNhcHBlYXIiKSxlLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5hbmltYXRpb25FbmRFdmVudE5hbWUsaT1mdW5jdGlvbih0KXt0LnRhcmdldD09PWUmJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIocy5hbmltYXRpb25FbmRFdmVudE5hbWUsaSkscy5jb250YWluZXIucmVtb3ZlQ2hpbGQoZSkpfSkpfSx0LnByb3RvdHlwZS5hZGROb3RpZmljYXRpb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVuZGVyTm90aWZpY2F0aW9uKHQpO3RoaXMubm90aWZpY2F0aW9ucy5wdXNoKHtub3RpZmljYXRpb246dCxub2RlOmV9KSx0aGlzLl9hbm5vdW5jZSh0Lm9wdGlvbnMubWVzc2FnZXx8Ik5vdGlmaWNhdGlvbiIpfSx0LnByb3RvdHlwZS5fcmVuZGVyTm90aWZpY2F0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlLGk9dGhpcy5fYnVpbGROb3RpZmljYXRpb25DYXJkKHQpLHM9dC5vcHRpb25zLmNsYXNzTmFtZTtyZXR1cm4gcyYmKGU9aS5jbGFzc0xpc3QpLmFkZC5hcHBseShlLHMuc3BsaXQoIiAiKSksdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQoaSksaX0sdC5wcm90b3R5cGUuX3BvcFJlbmRlcmVkTm90aWZpY2F0aW9uPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0tMSxpPTA7aTx0aGlzLm5vdGlmaWNhdGlvbnMubGVuZ3RoJiZlPDA7aSsrKXRoaXMubm90aWZpY2F0aW9uc1tpXS5ub3RpZmljYXRpb249PT10JiYoZT1pKTtpZigtMSE9PWUpcmV0dXJuIHRoaXMubm90aWZpY2F0aW9ucy5zcGxpY2UoZSwxKVswXX0sdC5wcm90b3R5cGUuZ2V0WFBvc2l0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybihudWxsPT09KGU9bnVsbD09dD92b2lkIDA6dC5wb3NpdGlvbil8fHZvaWQgMD09PWU/dm9pZCAwOmUueCl8fCJyaWdodCJ9LHQucHJvdG90eXBlLmdldFlQb3NpdGlvbj1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4obnVsbD09PShlPW51bGw9PXQ/dm9pZCAwOnQucG9zaXRpb24pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnkpfHwiYm90dG9tIn0sdC5wcm90b3R5cGUuYWRqdXN0Q29udGFpbmVyQWxpZ25tZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuWF9QT1NJVElPTl9GTEVYX01BUFt0aGlzLmdldFhQb3NpdGlvbih0KV0saT10aGlzLllfUE9TSVRJT05fRkxFWF9NQVBbdGhpcy5nZXRZUG9zaXRpb24odCldLHM9dGhpcy5jb250YWluZXIuc3R5bGU7cy5zZXRQcm9wZXJ0eSgianVzdGlmeS1jb250ZW50IixpKSxzLnNldFByb3BlcnR5KCJhbGlnbi1pdGVtcyIsZSl9LHQucHJvdG90eXBlLl9idWlsZE5vdGlmaWNhdGlvbkNhcmQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXQub3B0aW9ucyxzPWkuaWNvbjt0aGlzLmFkanVzdENvbnRhaW5lckFsaWdubWVudChpKTt2YXIgYT10aGlzLl9jcmVhdGVIVE1MRWxlbWVudCh7dGFnTmFtZToiZGl2IixjbGFzc05hbWU6Im5vdHlmX190b2FzdCJ9KSxuPXRoaXMuX2NyZWF0ZUhUTUxFbGVtZW50KHt0YWdOYW1lOiJkaXYiLGNsYXNzTmFtZToibm90eWZfX3JpcHBsZSJ9KSxvPXRoaXMuX2NyZWF0ZUhUTUxFbGVtZW50KHt0YWdOYW1lOiJkaXYiLGNsYXNzTmFtZToibm90eWZfX3dyYXBwZXIifSksbD10aGlzLl9jcmVhdGVIVE1MRWxlbWVudCh7dGFnTmFtZToiZGl2IixjbGFzc05hbWU6Im5vdHlmX19tZXNzYWdlIn0pO2wuaW5uZXJIVE1MPWkubWVzc2FnZXx8IiI7dmFyIGM9aS5iYWNrZ3JvdW5kfHxpLmJhY2tncm91bmRDb2xvcjtpZihzKXt2YXIgaD10aGlzLl9jcmVhdGVIVE1MRWxlbWVudCh7dGFnTmFtZToiZGl2IixjbGFzc05hbWU6Im5vdHlmX19pY29uIn0pO2lmKCgic3RyaW5nIj09dHlwZW9mIHN8fHMgaW5zdGFuY2VvZiBTdHJpbmcpJiYoaC5pbm5lckhUTUw9bmV3IFN0cmluZyhzKS52YWx1ZU9mKCkpLCJvYmplY3QiPT10eXBlb2Ygcyl7dmFyIGQ9cy50YWdOYW1lLHU9dm9pZCAwPT09ZD8iaSI6ZCxwPXMuY2xhc3NOYW1lLGc9cy50ZXh0LGY9cy5jb2xvcixtPXZvaWQgMD09PWY/YzpmLHY9dGhpcy5fY3JlYXRlSFRNTEVsZW1lbnQoe3RhZ05hbWU6dSxjbGFzc05hbWU6cCx0ZXh0Omd9KTttJiYodi5zdHlsZS5jb2xvcj1tKSxoLmFwcGVuZENoaWxkKHYpfW8uYXBwZW5kQ2hpbGQoaCl9aWYoby5hcHBlbmRDaGlsZChsKSxhLmFwcGVuZENoaWxkKG8pLGMmJihpLnJpcHBsZT8obi5zdHlsZS5iYWNrZ3JvdW5kPWMsYS5hcHBlbmRDaGlsZChuKSk6YS5zdHlsZS5iYWNrZ3JvdW5kPWMpLGkuZGlzbWlzc2libGUpe3ZhciB4PXRoaXMuX2NyZWF0ZUhUTUxFbGVtZW50KHt0YWdOYW1lOiJkaXYiLGNsYXNzTmFtZToibm90eWZfX2Rpc21pc3MifSksYj10aGlzLl9jcmVhdGVIVE1MRWxlbWVudCh7dGFnTmFtZToiYnV0dG9uIixjbGFzc05hbWU6Im5vdHlmX19kaXNtaXNzLWJ0biJ9KTt4LmFwcGVuZENoaWxkKGIpLG8uYXBwZW5kQ2hpbGQoeCksYS5jbGFzc0xpc3QuYWRkKCJub3R5Zl9fdG9hc3QtLWRpc21pc3NpYmxlIiksYi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKGZ1bmN0aW9uKGkpe3ZhciBzLGE7bnVsbD09PShhPShzPWUuZXZlbnRzKVtyLkRpc21pc3NdKXx8dm9pZCAwPT09YXx8YS5jYWxsKHMse3RhcmdldDp0LGV2ZW50Oml9KSxpLnN0b3BQcm9wYWdhdGlvbigpfSkpfWEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLChmdW5jdGlvbihpKXt2YXIgcyxhO3JldHVybiBudWxsPT09KGE9KHM9ZS5ldmVudHMpW3IuQ2xpY2tdKXx8dm9pZCAwPT09YT92b2lkIDA6YS5jYWxsKHMse3RhcmdldDp0LGV2ZW50Oml9KX0pKTt2YXIgeT0idG9wIj09PXRoaXMuZ2V0WVBvc2l0aW9uKGkpPyJ1cHBlciI6Imxvd2VyIjtyZXR1cm4gYS5jbGFzc0xpc3QuYWRkKCJub3R5Zl9fdG9hc3QtLSIreSksYX0sdC5wcm90b3R5cGUuX2NyZWF0ZUhUTUxFbGVtZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXQudGFnTmFtZSxpPXQuY2xhc3NOYW1lLHM9dC50ZXh0LGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTtyZXR1cm4gaSYmKGEuY2xhc3NOYW1lPWkpLGEudGV4dENvbnRlbnQ9c3x8bnVsbCxhfSx0LnByb3RvdHlwZS5fY3JlYXRlQTExeUNvbnRhaW5lcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NyZWF0ZUhUTUxFbGVtZW50KHt0YWdOYW1lOiJkaXYiLGNsYXNzTmFtZToibm90eWYtYW5ub3VuY2VyIn0pO3Quc2V0QXR0cmlidXRlKCJhcmlhLWF0b21pYyIsInRydWUiKSx0LnNldEF0dHJpYnV0ZSgiYXJpYS1saXZlIiwicG9saXRlIiksdC5zdHlsZS5ib3JkZXI9IjAiLHQuc3R5bGUuY2xpcD0icmVjdCgwIDAgMCAwKSIsdC5zdHlsZS5oZWlnaHQ9IjFweCIsdC5zdHlsZS5tYXJnaW49Ii0xcHgiLHQuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsdC5zdHlsZS5wYWRkaW5nPSIwIix0LnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdC5zdHlsZS53aWR0aD0iMXB4Iix0LnN0eWxlLm91dGxpbmU9IjAiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksdGhpcy5hMTF5Q29udGFpbmVyPXR9LHQucHJvdG90eXBlLl9hbm5vdW5jZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuYTExeUNvbnRhaW5lci50ZXh0Q29udGVudD0iIixzZXRUaW1lb3V0KChmdW5jdGlvbigpe2UuYTExeUNvbnRhaW5lci50ZXh0Q29udGVudD10fSksMTAwKX0sdC5wcm90b3R5cGUuX2dldEFuaW1hdGlvbkVuZEV2ZW50TmFtZT1mdW5jdGlvbigpe3ZhciB0LGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiX2Zha2UiKSxpPXtNb3pUcmFuc2l0aW9uOiJhbmltYXRpb25lbmQiLE9UcmFuc2l0aW9uOiJvQW5pbWF0aW9uRW5kIixXZWJraXRUcmFuc2l0aW9uOiJ3ZWJraXRBbmltYXRpb25FbmQiLHRyYW5zaXRpb246ImFuaW1hdGlvbmVuZCJ9O2Zvcih0IGluIGkpaWYodm9pZCAwIT09ZS5zdHlsZVt0XSlyZXR1cm4gaVt0XTtyZXR1cm4iYW5pbWF0aW9uZW5kIn0sdH0oKSxoPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZT10aGlzO3RoaXMuZGlzbWlzcz10aGlzLl9yZW1vdmVOb3RpZmljYXRpb24sdGhpcy5ub3RpZmljYXRpb25zPW5ldyBvLHRoaXMudmlldz1uZXcgYzt2YXIgaT10aGlzLnJlZ2lzdGVyVHlwZXModCk7dGhpcy5vcHRpb25zPWEoYSh7fSxsKSx0KSx0aGlzLm9wdGlvbnMudHlwZXM9aSx0aGlzLm5vdGlmaWNhdGlvbnMub25VcGRhdGUoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIGUudmlldy51cGRhdGUodCxpKX0pKSx0aGlzLnZpZXcub24oci5EaXNtaXNzLChmdW5jdGlvbih0KXt2YXIgaT10LnRhcmdldCxzPXQuZXZlbnQ7ZS5fcmVtb3ZlTm90aWZpY2F0aW9uKGkpLGkudHJpZ2dlckV2ZW50KHIuRGlzbWlzcyxzKX0pKSx0aGlzLnZpZXcub24oci5DbGljaywoZnVuY3Rpb24odCl7dmFyIGU9dC50YXJnZXQsaT10LmV2ZW50O3JldHVybiBlLnRyaWdnZXJFdmVudChyLkNsaWNrLGkpfSkpfXJldHVybiB0LnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm5vcm1hbGl6ZU9wdGlvbnMoImVycm9yIix0KTtyZXR1cm4gdGhpcy5vcGVuKGUpfSx0LnByb3RvdHlwZS5zdWNjZXNzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubm9ybWFsaXplT3B0aW9ucygic3VjY2VzcyIsdCk7cmV0dXJuIHRoaXMub3BlbihlKX0sdC5wcm90b3R5cGUub3Blbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm9wdGlvbnMudHlwZXMuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PXQudHlwZX0pKXx8e30saT1hKGEoe30sZSksdCk7dGhpcy5hc3NpZ25Qcm9wcyhbInJpcHBsZSIsInBvc2l0aW9uIiwiZGlzbWlzc2libGUiXSxpKTt2YXIgcz1uZXcgbihpKTtyZXR1cm4gdGhpcy5fcHVzaE5vdGlmaWNhdGlvbihzKSxzfSx0LnByb3RvdHlwZS5kaXNtaXNzQWxsPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLm5vdGlmaWNhdGlvbnMuc3BsaWNlKDAsMSk7KTt9LHQucHJvdG90eXBlLmFzc2lnblByb3BzPWZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpczt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2VbdF09bnVsbD09ZVt0XT9pLm9wdGlvbnNbdF06ZVt0XX0pKX0sdC5wcm90b3R5cGUuX3B1c2hOb3RpZmljYXRpb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLm5vdGlmaWNhdGlvbnMucHVzaCh0KTt2YXIgaT12b2lkIDAhPT10Lm9wdGlvbnMuZHVyYXRpb24/dC5vcHRpb25zLmR1cmF0aW9uOnRoaXMub3B0aW9ucy5kdXJhdGlvbjtpJiZzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBlLl9yZW1vdmVOb3RpZmljYXRpb24odCl9KSxpKX0sdC5wcm90b3R5cGUuX3JlbW92ZU5vdGlmaWNhdGlvbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm5vdGlmaWNhdGlvbnMuaW5kZXhPZih0KTstMSE9PWUmJnRoaXMubm90aWZpY2F0aW9ucy5zcGxpY2UoZSwxKX0sdC5wcm90b3R5cGUubm9ybWFsaXplT3B0aW9ucz1mdW5jdGlvbih0LGUpe3ZhciBpPXt0eXBlOnR9O3JldHVybiJzdHJpbmciPT10eXBlb2YgZT9pLm1lc3NhZ2U9ZToib2JqZWN0Ij09dHlwZW9mIGUmJihpPWEoYSh7fSxpKSxlKSksaX0sdC5wcm90b3R5cGUucmVnaXN0ZXJUeXBlcz1mdW5jdGlvbih0KXt2YXIgZT0odCYmdC50eXBlc3x8W10pLnNsaWNlKCk7cmV0dXJuIGwudHlwZXMubWFwKChmdW5jdGlvbih0KXt2YXIgaT0tMTtlLmZvckVhY2goKGZ1bmN0aW9uKGUscyl7ZS50eXBlPT09dC50eXBlJiYoaT1zKX0pKTt2YXIgcz0tMSE9PWk/ZS5zcGxpY2UoaSwxKVswXTp7fTtyZXR1cm4gYShhKHt9LHQpLHMpfSkpLmNvbmNhdChlKX0sdH0oKX0sNDE4OmZ1bmN0aW9uKHQsZSxpKXsidXNlIHN0cmljdCI7aS5kKGUse1o6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KTtsZXQgcz17ZWFzaW5nOiJlYXNlIixkdXJhdGlvbjoyNTAsZmlsbDoiYmFja3dhcmRzIixkaXNwbGF5OiJibG9jayIsb3ZlcmZsb3c6ImhpZGRlbiJ9LGE9WyJvdmVyZmxvdyIsImRpc3BsYXkiXSxuPSh0LGUpPT57bGV0IGk9T2JqZWN0LmFzc2lnbih7fSxzLGUpLG49aS5kaXNwbGF5LHI9ZT0+dC5zdHlsZS5kaXNwbGF5PWUsbz0oKT0+dC5jbGllbnRIZWlnaHQrInB4IixsPWU9PnQuc3R5bGUub3ZlcmZsb3c9ZT9pLm92ZXJmbG93OiIiLGM9KCk9PnQuZ2V0QW5pbWF0aW9ucygpLGg9YXN5bmMgZT0+e2xldCBzPWMoKS5tYXAoKHQ9PnQuZmluaXNoKCkpKTt2YXIgaDtyZXR1cm4gYXdhaXQoaD1hc3luYyBzPT57bGV0IGM9ZT9vKCk6IjBweCI7ZSYmcihuKSxsKCEwKSxhd2FpdCgoZSxzKT0+e3ZhciBuO2EuZm9yRWFjaCgodD0+ZGVsZXRlIGlbdF0pKTtsZXQgcj1vKCksbD1bcixzXS5tYXAoKHQ9Pih7aGVpZ2h0OnQscGFkZGluZ1RvcDoiMHB4IixwYWRkaW5nQm90dG9tOiIwcHgifSkpKSx7cGFkZGluZ1RvcDpjLHBhZGRpbmdCb3R0b206aH09d2luZG93LmdldENvbXB1dGVkU3R5bGUodCk7bFswXS5wYWRkaW5nVG9wPWMsbFswXS5wYWRkaW5nQm90dG9tPWgsZSYmKGxbMF0uaGVpZ2h0PXIsbC5yZXZlcnNlKCkpLChudWxsPT0obj13aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKSk/dm9pZCAwOm4ubWF0Y2hlcykmJihpLmR1cmF0aW9uPTApO2xldCBkPXQuYW5pbWF0ZShsLGkpO3JldHVybiBkLmlkPSgrZSkudG9TdHJpbmcoKSxkfSkoZSxjKS5maW5pc2hlZCxsKCExKSxlfHxyKCJub25lIikscygpfSxuZXcgUHJvbWlzZSgodD0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57aCh0KX0pKX0pKX0pKSkscy5sZW5ndGg/bnVsbDplfSxkPWFzeW5jKCk9PmgoITEpLHU9YXN5bmMoKT0+aCghMCk7cmV0dXJue3VwOmQsZG93bjp1LHRvZ2dsZTphc3luYygpPT57dmFyIGU7bGV0IGk9bnVsbD09KGU9YygpWzBdKT92b2lkIDA6ZS5pZDtyZXR1cm4oKGk/IjEiPT09aTp0Lm9mZnNldEhlaWdodCk/ZDp1KSgpfX19LHI9KHQsZT17fSk9Pm4odCxlKS50b2dnbGUoKX0sMTkyOmZ1bmN0aW9uKHQpe3ZhciBlOyJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZixlPSgpPT4oKCk9Pnt2YXIgdD17NzU6ZnVuY3Rpb24odCl7KGZ1bmN0aW9uKCl7dmFyIGUsaSxzLGEsbixyOyJ1bmRlZmluZWQiIT10eXBlb2YgcGVyZm9ybWFuY2UmJm51bGwhPT1wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3QuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX06InVuZGVmaW5lZCIhPXR5cGVvZiBwcm9jZXNzJiZudWxsIT09cHJvY2VzcyYmcHJvY2Vzcy5ocnRpbWU/KHQuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybihlKCktbikvMWU2fSxpPXByb2Nlc3MuaHJ0aW1lLGE9KGU9ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gMWU5Kih0PWkoKSlbMF0rdFsxXX0pKCkscj0xZTkqcHJvY2Vzcy51cHRpbWUoKSxuPWEtcik6RGF0ZS5ub3c/KHQuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpLXN9LHM9RGF0ZS5ub3coKSk6KHQuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpLXN9LHM9KG5ldyBEYXRlKS5nZXRUaW1lKCkpfSkuY2FsbCh0aGlzKX0sNDA4NzoodCxlLGkpPT57Zm9yKHZhciBzPWkoNzUpLGE9InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3c/aS5nOndpbmRvdyxuPVsibW96Iiwid2Via2l0Il0scj0iQW5pbWF0aW9uRnJhbWUiLG89YVsicmVxdWVzdCIrcl0sbD1hWyJjYW5jZWwiK3JdfHxhWyJjYW5jZWxSZXF1ZXN0IityXSxjPTA7IW8mJmM8bi5sZW5ndGg7YysrKW89YVtuW2NdKyJSZXF1ZXN0IityXSxsPWFbbltjXSsiQ2FuY2VsIityXXx8YVtuW2NdKyJDYW5jZWxSZXF1ZXN0IityXTtpZighb3x8IWwpe3ZhciBoPTAsZD0wLHU9W107bz1mdW5jdGlvbih0KXtpZigwPT09dS5sZW5ndGgpe3ZhciBlPXMoKSxpPU1hdGgubWF4KDAsMTYuNjY2NjY2NjY2NjY2NjY4LShlLWgpKTtoPWkrZSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3ZhciB0PXUuc2xpY2UoMCk7dS5sZW5ndGg9MDtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpZighdFtlXS5jYW5jZWxsZWQpdHJ5e3RbZV0uY2FsbGJhY2soaCl9Y2F0Y2godCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0aHJvdyB0fSksMCl9fSksTWF0aC5yb3VuZChpKSl9cmV0dXJuIHUucHVzaCh7aGFuZGxlOisrZCxjYWxsYmFjazp0LGNhbmNlbGxlZDohMX0pLGR9LGw9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx1Lmxlbmd0aDtlKyspdVtlXS5oYW5kbGU9PT10JiYodVtlXS5jYW5jZWxsZWQ9ITApfX10LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG8uY2FsbChhLHQpfSx0LmV4cG9ydHMuY2FuY2VsPWZ1bmN0aW9uKCl7bC5hcHBseShhLGFyZ3VtZW50cyl9LHQuZXhwb3J0cy5wb2x5ZmlsbD1mdW5jdGlvbih0KXt0fHwodD1hKSx0LnJlcXVlc3RBbmltYXRpb25GcmFtZT1vLHQuY2FuY2VsQW5pbWF0aW9uRnJhbWU9bH19fSxlPXt9O2Z1bmN0aW9uIGkocyl7dmFyIGE9ZVtzXTtpZih2b2lkIDAhPT1hKXJldHVybiBhLmV4cG9ydHM7dmFyIG49ZVtzXT17ZXhwb3J0czp7fX07cmV0dXJuIHRbc10uY2FsbChuLmV4cG9ydHMsbixuLmV4cG9ydHMsaSksbi5leHBvcnRzfWkubj10PT57dmFyIGU9dCYmdC5fX2VzTW9kdWxlPygpPT50LmRlZmF1bHQ6KCk9PnQ7cmV0dXJuIGkuZChlLHthOmV9KSxlfSxpLmQ9KHQsZSk9Pntmb3IodmFyIHMgaW4gZSlpLm8oZSxzKSYmIWkubyh0LHMpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxzLHtlbnVtZXJhYmxlOiEwLGdldDplW3NdfSl9LGkuZz1mdW5jdGlvbigpe2lmKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcylyZXR1cm4gZ2xvYmFsVGhpczt0cnl7cmV0dXJuIHRoaXN8fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKHQpe2lmKCJvYmplY3QiPT10eXBlb2Ygd2luZG93KXJldHVybiB3aW5kb3d9fSgpLGkubz0odCxlKT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSk7dmFyIHM9e307cmV0dXJuKCgpPT57InVzZSBzdHJpY3QiO2kuZChzLHtkZWZhdWx0OigpPT5DfSk7dmFyIHQ9aSg0MDg3KSxlPWkubih0KTtjb25zdCBhPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgUmVnRXhwKC88W2Etel1bXHNcU10qPi9pKS50ZXN0KHQpfSxuPWZ1bmN0aW9uKHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLmlubmVySFRNTD10LGUuY2hpbGROb2Rlc30scj1mdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtdCsxKSkrdH07dmFyIG89IlRZUEVfQ0hBUkFDVEVSIixsPSJSRU1PVkVfQ0hBUkFDVEVSIixjPSJSRU1PVkVfQUxMIixoPSJSRU1PVkVfTEFTVF9WSVNJQkxFX05PREUiLGQ9IlBBVVNFX0ZPUiIsdT0iQ0FMTF9GVU5DVElPTiIscD0iQUREX0hUTUxfVEFHX0VMRU1FTlQiLGc9IkNIQU5HRV9ERUxFVEVfU1BFRUQiLGY9IkNIQU5HRV9ERUxBWSIsbT0iQ0hBTkdFX0NVUlNPUiIsdj0iUEFTVEVfU1RSSU5HIix4PSJIVE1MX1RBRyI7ZnVuY3Rpb24gYih0LGUpe3ZhciBpPU9iamVjdC5rZXlzKHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBzPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7ZSYmKHM9cy5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksaS5wdXNoLmFwcGx5KGkscyl9cmV0dXJuIGl9ZnVuY3Rpb24geSh0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgaT1udWxsIT1hcmd1bWVudHNbZV0/YXJndW1lbnRzW2VdOnt9O2UlMj9iKE9iamVjdChpKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7Uyh0LGUsaVtlXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhpKSk6YihPYmplY3QoaSkpLmZvckVhY2goKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLGUpKX0pKX1yZXR1cm4gdH1mdW5jdGlvbiB3KHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBrKHQpfSh0KXx8ZnVuY3Rpb24odCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPXRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9dFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHQpfSh0KXx8ZnVuY3Rpb24odCxlKXtpZih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIGsodCxlKTt2YXIgaT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1pJiZ0LmNvbnN0cnVjdG9yJiYoaT10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aXx8IlNldCI9PT1pP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1pfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChpKT9rKHQsZSk6dm9pZCAwfX0odCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gayh0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgaT0wLHM9bmV3IEFycmF5KGUpO2k8ZTtpKyspc1tpXT10W2ldO3JldHVybiBzfWZ1bmN0aW9uIFModCxlLGkpe3JldHVybiBlIGluIHQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6aSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09aSx0fWNvbnN0IEM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHMsYil7dmFyIGs9dGhpcztpZihmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGkpLFModGhpcywic3RhdGUiLHtjdXJzb3JBbmltYXRpb246bnVsbCxsYXN0RnJhbWVUaW1lOm51bGwscGF1c2VVbnRpbDpudWxsLGV2ZW50UXVldWU6W10sZXZlbnRMb29wOm51bGwsZXZlbnRMb29wUGF1c2VkOiExLHJldmVyc2VDYWxsZWRFdmVudHM6W10sY2FsbGVkRXZlbnRzOltdLHZpc2libGVOb2RlczpbXSxpbml0aWFsT3B0aW9uczpudWxsLGVsZW1lbnRzOntjb250YWluZXI6bnVsbCx3cmFwcGVyOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSxjdXJzb3I6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpfX0pLFModGhpcywib3B0aW9ucyIse3N0cmluZ3M6bnVsbCxjdXJzb3I6InwiLGRlbGF5OiJuYXR1cmFsIixwYXVzZUZvcjoxNTAwLGRlbGV0ZVNwZWVkOiJuYXR1cmFsIixsb29wOiExLGF1dG9TdGFydDohMSxkZXZNb2RlOiExLHNraXBBZGRTdHlsZXM6ITEsd3JhcHBlckNsYXNzTmFtZToiVHlwZXdyaXRlcl9fd3JhcHBlciIsY3Vyc29yQ2xhc3NOYW1lOiJUeXBld3JpdGVyX19jdXJzb3IiLHN0cmluZ1NwbGl0dGVyOm51bGwsb25DcmVhdGVUZXh0Tm9kZTpudWxsLG9uUmVtb3ZlTm9kZTpudWxsfSksUyh0aGlzLCJzZXR1cFdyYXBwZXJFbGVtZW50IiwoZnVuY3Rpb24oKXtrLnN0YXRlLmVsZW1lbnRzLmNvbnRhaW5lciYmKGsuc3RhdGUuZWxlbWVudHMud3JhcHBlci5jbGFzc05hbWU9ay5vcHRpb25zLndyYXBwZXJDbGFzc05hbWUsay5zdGF0ZS5lbGVtZW50cy5jdXJzb3IuY2xhc3NOYW1lPWsub3B0aW9ucy5jdXJzb3JDbGFzc05hbWUsay5zdGF0ZS5lbGVtZW50cy5jdXJzb3IuaW5uZXJIVE1MPWsub3B0aW9ucy5jdXJzb3Isay5zdGF0ZS5lbGVtZW50cy5jb250YWluZXIuaW5uZXJIVE1MPSIiLGsuc3RhdGUuZWxlbWVudHMuY29udGFpbmVyLmFwcGVuZENoaWxkKGsuc3RhdGUuZWxlbWVudHMud3JhcHBlciksay5zdGF0ZS5lbGVtZW50cy5jb250YWluZXIuYXBwZW5kQ2hpbGQoay5zdGF0ZS5lbGVtZW50cy5jdXJzb3IpKX0pKSxTKHRoaXMsInN0YXJ0IiwoZnVuY3Rpb24oKXtyZXR1cm4gay5zdGF0ZS5ldmVudExvb3BQYXVzZWQ9ITEsay5ydW5FdmVudExvb3AoKSxrfSkpLFModGhpcywicGF1c2UiLChmdW5jdGlvbigpe3JldHVybiBrLnN0YXRlLmV2ZW50TG9vcFBhdXNlZD0hMCxrfSkpLFModGhpcywic3RvcCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGsuc3RhdGUuZXZlbnRMb29wJiYoKDAsdC5jYW5jZWwpKGsuc3RhdGUuZXZlbnRMb29wKSxrLnN0YXRlLmV2ZW50TG9vcD1udWxsKSxrfSkpLFModGhpcywicGF1c2VGb3IiLChmdW5jdGlvbih0KXtyZXR1cm4gay5hZGRFdmVudFRvUXVldWUoZCx7bXM6dH0pLGt9KSksUyh0aGlzLCJ0eXBlT3V0QWxsU3RyaW5ncyIsKGZ1bmN0aW9uKCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBrLm9wdGlvbnMuc3RyaW5ncz8oay50eXBlU3RyaW5nKGsub3B0aW9ucy5zdHJpbmdzKS5wYXVzZUZvcihrLm9wdGlvbnMucGF1c2VGb3IpLGspOihrLm9wdGlvbnMuc3RyaW5ncy5mb3JFYWNoKChmdW5jdGlvbih0KXtrLnR5cGVTdHJpbmcodCkucGF1c2VGb3Ioay5vcHRpb25zLnBhdXNlRm9yKS5kZWxldGVBbGwoay5vcHRpb25zLmRlbGV0ZVNwZWVkKX0pKSxrKX0pKSxTKHRoaXMsInR5cGVTdHJpbmciLChmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bnVsbDtpZihhKHQpKXJldHVybiBrLnR5cGVPdXRIVE1MU3RyaW5nKHQsZSk7aWYodCl7dmFyIGk9ay5vcHRpb25zfHx7fSxzPWkuc3RyaW5nU3BsaXR0ZXIsbj0iZnVuY3Rpb24iPT10eXBlb2Ygcz9zKHQpOnQuc3BsaXQoIiIpO2sudHlwZUNoYXJhY3RlcnMobixlKX1yZXR1cm4ga30pKSxTKHRoaXMsInBhc3RlU3RyaW5nIiwoZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGw7cmV0dXJuIGEodCk/ay50eXBlT3V0SFRNTFN0cmluZyh0LGUsITApOih0JiZrLmFkZEV2ZW50VG9RdWV1ZSh2LHtjaGFyYWN0ZXI6dCxub2RlOmV9KSxrKX0pKSxTKHRoaXMsInR5cGVPdXRIVE1MU3RyaW5nIiwoZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGwsaT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxzPW4odCk7aWYocy5sZW5ndGg+MClmb3IodmFyIGE9MDthPHMubGVuZ3RoO2ErKyl7dmFyIHI9c1thXSxvPXIuaW5uZXJIVE1MO3ImJjMhPT1yLm5vZGVUeXBlPyhyLmlubmVySFRNTD0iIixrLmFkZEV2ZW50VG9RdWV1ZShwLHtub2RlOnIscGFyZW50Tm9kZTplfSksaT9rLnBhc3RlU3RyaW5nKG8scik6ay50eXBlU3RyaW5nKG8scikpOnIudGV4dENvbnRlbnQmJihpP2sucGFzdGVTdHJpbmcoci50ZXh0Q29udGVudCxlKTprLnR5cGVTdHJpbmcoci50ZXh0Q29udGVudCxlKSl9cmV0dXJuIGt9KSksUyh0aGlzLCJkZWxldGVBbGwiLChmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToibmF0dXJhbCI7cmV0dXJuIGsuYWRkRXZlbnRUb1F1ZXVlKGMse3NwZWVkOnR9KSxrfSkpLFModGhpcywiY2hhbmdlRGVsZXRlU3BlZWQiLChmdW5jdGlvbih0KXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIk11c3QgcHJvdmlkZSBuZXcgZGVsZXRlIHNwZWVkIik7cmV0dXJuIGsuYWRkRXZlbnRUb1F1ZXVlKGcse3NwZWVkOnR9KSxrfSkpLFModGhpcywiY2hhbmdlRGVsYXkiLChmdW5jdGlvbih0KXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIk11c3QgcHJvdmlkZSBuZXcgZGVsYXkiKTtyZXR1cm4gay5hZGRFdmVudFRvUXVldWUoZix7ZGVsYXk6dH0pLGt9KSksUyh0aGlzLCJjaGFuZ2VDdXJzb3IiLChmdW5jdGlvbih0KXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIk11c3QgcHJvdmlkZSBuZXcgY3Vyc29yIik7cmV0dXJuIGsuYWRkRXZlbnRUb1F1ZXVlKG0se2N1cnNvcjp0fSksa30pKSxTKHRoaXMsImRlbGV0ZUNoYXJzIiwoZnVuY3Rpb24odCl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJNdXN0IHByb3ZpZGUgYW1vdW50IG9mIGNoYXJhY3RlcnMgdG8gZGVsZXRlIik7Zm9yKHZhciBlPTA7ZTx0O2UrKylrLmFkZEV2ZW50VG9RdWV1ZShsKTtyZXR1cm4ga30pKSxTKHRoaXMsImNhbGxGdW5jdGlvbiIsKGZ1bmN0aW9uKHQsZSl7aWYoIXR8fCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiQ2FsbGJhayBtdXN0IGJlIGEgZnVuY3Rpb24iKTtyZXR1cm4gay5hZGRFdmVudFRvUXVldWUodSx7Y2I6dCx0aGlzQXJnOmV9KSxrfSkpLFModGhpcywidHlwZUNoYXJhY3RlcnMiLChmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bnVsbDtpZighdHx8IUFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IEVycm9yKCJDaGFyYWN0ZXJzIG11c3QgYmUgYW4gYXJyYXkiKTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtrLmFkZEV2ZW50VG9RdWV1ZShvLHtjaGFyYWN0ZXI6dCxub2RlOmV9KX0pKSxrfSkpLFModGhpcywicmVtb3ZlQ2hhcmFjdGVycyIsKGZ1bmN0aW9uKHQpe2lmKCF0fHwhQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgRXJyb3IoIkNoYXJhY3RlcnMgbXVzdCBiZSBhbiBhcnJheSIpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKCl7ay5hZGRFdmVudFRvUXVldWUobCl9KSksa30pKSxTKHRoaXMsImFkZEV2ZW50VG9RdWV1ZSIsKGZ1bmN0aW9uKHQsZSl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXTtyZXR1cm4gay5hZGRFdmVudFRvU3RhdGVQcm9wZXJ0eSh0LGUsaSwiZXZlbnRRdWV1ZSIpfSkpLFModGhpcywiYWRkUmV2ZXJzZUNhbGxlZEV2ZW50IiwoZnVuY3Rpb24odCxlKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHM9ay5vcHRpb25zLmxvb3A7cmV0dXJuIHM/ay5hZGRFdmVudFRvU3RhdGVQcm9wZXJ0eSh0LGUsaSwicmV2ZXJzZUNhbGxlZEV2ZW50cyIpOmt9KSksUyh0aGlzLCJhZGRFdmVudFRvU3RhdGVQcm9wZXJ0eSIsKGZ1bmN0aW9uKHQsZSl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxzPWFyZ3VtZW50cy5sZW5ndGg+Mz9hcmd1bWVudHNbM106dm9pZCAwLGE9e2V2ZW50TmFtZTp0LGV2ZW50QXJnczplfHx7fX07cmV0dXJuIGsuc3RhdGVbc109aT9bYV0uY29uY2F0KHcoay5zdGF0ZVtzXSkpOltdLmNvbmNhdCh3KGsuc3RhdGVbc10pLFthXSksa30pKSxTKHRoaXMsInJ1bkV2ZW50TG9vcCIsKGZ1bmN0aW9uKCl7ay5zdGF0ZS5sYXN0RnJhbWVUaW1lfHwoay5zdGF0ZS5sYXN0RnJhbWVUaW1lPURhdGUubm93KCkpO3ZhciB0PURhdGUubm93KCksaT10LWsuc3RhdGUubGFzdEZyYW1lVGltZTtpZighay5zdGF0ZS5ldmVudFF1ZXVlLmxlbmd0aCl7aWYoIWsub3B0aW9ucy5sb29wKXJldHVybjtrLnN0YXRlLmV2ZW50UXVldWU9dyhrLnN0YXRlLmNhbGxlZEV2ZW50cyksay5zdGF0ZS5jYWxsZWRFdmVudHM9W10say5vcHRpb25zPXkoe30say5zdGF0ZS5pbml0aWFsT3B0aW9ucyl9aWYoay5zdGF0ZS5ldmVudExvb3A9ZSgpKGsucnVuRXZlbnRMb29wKSwhay5zdGF0ZS5ldmVudExvb3BQYXVzZWQpe2lmKGsuc3RhdGUucGF1c2VVbnRpbCl7aWYodDxrLnN0YXRlLnBhdXNlVW50aWwpcmV0dXJuO2suc3RhdGUucGF1c2VVbnRpbD1udWxsfXZhciBzLGE9dyhrLnN0YXRlLmV2ZW50UXVldWUpLG49YS5zaGlmdCgpO2lmKCEoaTw9KHM9bi5ldmVudE5hbWU9PT1ofHxuLmV2ZW50TmFtZT09PWw/Im5hdHVyYWwiPT09ay5vcHRpb25zLmRlbGV0ZVNwZWVkP3IoNDAsODApOmsub3B0aW9ucy5kZWxldGVTcGVlZDoibmF0dXJhbCI9PT1rLm9wdGlvbnMuZGVsYXk/cigxMjAsMTYwKTprLm9wdGlvbnMuZGVsYXkpKSl7dmFyIGI9bi5ldmVudE5hbWUsUz1uLmV2ZW50QXJncztzd2l0Y2goay5sb2dJbkRldk1vZGUoe2N1cnJlbnRFdmVudDpuLHN0YXRlOmsuc3RhdGUsZGVsYXk6c30pLGIpe2Nhc2UgdjpjYXNlIG86dmFyIEM9Uy5jaGFyYWN0ZXIsQT1TLm5vZGUsRT1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShDKSxUPUU7ay5vcHRpb25zLm9uQ3JlYXRlVGV4dE5vZGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBrLm9wdGlvbnMub25DcmVhdGVUZXh0Tm9kZSYmKFQ9ay5vcHRpb25zLm9uQ3JlYXRlVGV4dE5vZGUoQyxFKSksVCYmKEE/QS5hcHBlbmRDaGlsZChUKTprLnN0YXRlLmVsZW1lbnRzLndyYXBwZXIuYXBwZW5kQ2hpbGQoVCkpLGsuc3RhdGUudmlzaWJsZU5vZGVzPVtdLmNvbmNhdCh3KGsuc3RhdGUudmlzaWJsZU5vZGVzKSxbe3R5cGU6IlRFWFRfTk9ERSIsY2hhcmFjdGVyOkMsbm9kZTpUfV0pO2JyZWFrO2Nhc2UgbDphLnVuc2hpZnQoe2V2ZW50TmFtZTpoLGV2ZW50QXJnczp7cmVtb3ZpbmdDaGFyYWN0ZXJOb2RlOiEwfX0pO2JyZWFrO2Nhc2UgZDp2YXIgTD1uLmV2ZW50QXJncy5tcztrLnN0YXRlLnBhdXNlVW50aWw9RGF0ZS5ub3coKStwYXJzZUludChMKTticmVhaztjYXNlIHU6dmFyIFA9bi5ldmVudEFyZ3MsTT1QLmNiLE89UC50aGlzQXJnO00uY2FsbChPLHtlbGVtZW50czprLnN0YXRlLmVsZW1lbnRzfSk7YnJlYWs7Y2FzZSBwOnZhciBJPW4uZXZlbnRBcmdzLEY9SS5ub2RlLEQ9SS5wYXJlbnROb2RlO0Q/RC5hcHBlbmRDaGlsZChGKTprLnN0YXRlLmVsZW1lbnRzLndyYXBwZXIuYXBwZW5kQ2hpbGQoRiksay5zdGF0ZS52aXNpYmxlTm9kZXM9W10uY29uY2F0KHcoay5zdGF0ZS52aXNpYmxlTm9kZXMpLFt7dHlwZTp4LG5vZGU6RixwYXJlbnROb2RlOkR8fGsuc3RhdGUuZWxlbWVudHMud3JhcHBlcn1dKTticmVhaztjYXNlIGM6dmFyIHo9ay5zdGF0ZS52aXNpYmxlTm9kZXMsTj1TLnNwZWVkLFI9W107TiYmUi5wdXNoKHtldmVudE5hbWU6ZyxldmVudEFyZ3M6e3NwZWVkOk4sdGVtcDohMH19KTtmb3IodmFyIF89MCxCPXoubGVuZ3RoO188QjtfKyspUi5wdXNoKHtldmVudE5hbWU6aCxldmVudEFyZ3M6e3JlbW92aW5nQ2hhcmFjdGVyTm9kZTohMX19KTtOJiZSLnB1c2goe2V2ZW50TmFtZTpnLGV2ZW50QXJnczp7c3BlZWQ6ay5vcHRpb25zLmRlbGV0ZVNwZWVkLHRlbXA6ITB9fSksYS51bnNoaWZ0LmFwcGx5KGEsUik7YnJlYWs7Y2FzZSBoOnZhciBYPW4uZXZlbnRBcmdzLnJlbW92aW5nQ2hhcmFjdGVyTm9kZTtpZihrLnN0YXRlLnZpc2libGVOb2Rlcy5sZW5ndGgpe3ZhciBIPWsuc3RhdGUudmlzaWJsZU5vZGVzLnBvcCgpLFk9SC50eXBlLFc9SC5ub2RlLCQ9SC5jaGFyYWN0ZXI7ay5vcHRpb25zLm9uUmVtb3ZlTm9kZSYmImZ1bmN0aW9uIj09dHlwZW9mIGsub3B0aW9ucy5vblJlbW92ZU5vZGUmJmsub3B0aW9ucy5vblJlbW92ZU5vZGUoe25vZGU6VyxjaGFyYWN0ZXI6JH0pLFcmJlcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChXKSxZPT09eCYmWCYmYS51bnNoaWZ0KHtldmVudE5hbWU6aCxldmVudEFyZ3M6e319KX1icmVhaztjYXNlIGc6ay5vcHRpb25zLmRlbGV0ZVNwZWVkPW4uZXZlbnRBcmdzLnNwZWVkO2JyZWFrO2Nhc2UgZjprLm9wdGlvbnMuZGVsYXk9bi5ldmVudEFyZ3MuZGVsYXk7YnJlYWs7Y2FzZSBtOmsub3B0aW9ucy5jdXJzb3I9bi5ldmVudEFyZ3MuY3Vyc29yLGsuc3RhdGUuZWxlbWVudHMuY3Vyc29yLmlubmVySFRNTD1uLmV2ZW50QXJncy5jdXJzb3J9ay5vcHRpb25zLmxvb3AmJihuLmV2ZW50TmFtZT09PWh8fG4uZXZlbnRBcmdzJiZuLmV2ZW50QXJncy50ZW1wfHwoay5zdGF0ZS5jYWxsZWRFdmVudHM9W10uY29uY2F0KHcoay5zdGF0ZS5jYWxsZWRFdmVudHMpLFtuXSkpKSxrLnN0YXRlLmV2ZW50UXVldWU9YSxrLnN0YXRlLmxhc3RGcmFtZVRpbWU9dH19fSkpLHMpaWYoInN0cmluZyI9PXR5cGVvZiBzKXt2YXIgQz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHMpO2lmKCFDKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgY29udGFpbmVyIGVsZW1lbnQiKTt0aGlzLnN0YXRlLmVsZW1lbnRzLmNvbnRhaW5lcj1DfWVsc2UgdGhpcy5zdGF0ZS5lbGVtZW50cy5jb250YWluZXI9cztiJiYodGhpcy5vcHRpb25zPXkoeSh7fSx0aGlzLm9wdGlvbnMpLGIpKSx0aGlzLnN0YXRlLmluaXRpYWxPcHRpb25zPXkoe30sdGhpcy5vcHRpb25zKSx0aGlzLmluaXQoKX12YXIgcyxiO3JldHVybiBzPWksKGI9W3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7dGhpcy5zZXR1cFdyYXBwZXJFbGVtZW50KCksdGhpcy5hZGRFdmVudFRvUXVldWUobSx7Y3Vyc29yOnRoaXMub3B0aW9ucy5jdXJzb3J9LCEwKSx0aGlzLmFkZEV2ZW50VG9RdWV1ZShjLG51bGwsITApLCF3aW5kb3d8fHdpbmRvdy5fX19UWVBFV1JJVEVSX0pTX1NUWUxFU19BRERFRF9fX3x8dGhpcy5vcHRpb25zLnNraXBBZGRTdHlsZXN8fCgodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiLlR5cGV3cml0ZXJfX2N1cnNvcnstd2Via2l0LWFuaW1hdGlvbjpUeXBld3JpdGVyLWN1cnNvciAxcyBpbmZpbml0ZTthbmltYXRpb246VHlwZXdyaXRlci1jdXJzb3IgMXMgaW5maW5pdGU7bWFyZ2luLWxlZnQ6MXB4fUAtd2Via2l0LWtleWZyYW1lcyBUeXBld3JpdGVyLWN1cnNvcnswJXtvcGFjaXR5OjB9NTAle29wYWNpdHk6MX0xMDAle29wYWNpdHk6MH19QGtleWZyYW1lcyBUeXBld3JpdGVyLWN1cnNvcnswJXtvcGFjaXR5OjB9NTAle29wYWNpdHk6MX0xMDAle29wYWNpdHk6MH19IikpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodCksd2luZG93Ll9fX1RZUEVXUklURVJfSlNfU1RZTEVTX0FEREVEX19fPSEwKSwhMD09PXRoaXMub3B0aW9ucy5hdXRvU3RhcnQmJnRoaXMub3B0aW9ucy5zdHJpbmdzJiZ0aGlzLnR5cGVPdXRBbGxTdHJpbmdzKCkuc3RhcnQoKX19LHtrZXk6ImxvZ0luRGV2TW9kZSIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5vcHRpb25zLmRldk1vZGUmJmNvbnNvbGUubG9nKHQpfX1dKSYmZnVuY3Rpb24odCxlKXtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIHM9ZVtpXTtzLmVudW1lcmFibGU9cy5lbnVtZXJhYmxlfHwhMSxzLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gcyYmKHMud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHMua2V5LHMpfX0ocy5wcm90b3R5cGUsYiksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksaX0oKX0pKCkscy5kZWZhdWx0fSkoKSx0LmV4cG9ydHM9ZSgpfSw3MjE6ZnVuY3Rpb24odCxlLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkoZSxhcmd1bWVudHMpfX1pLmQoZSx7WlA6ZnVuY3Rpb24oKXtyZXR1cm4gR3R9fSk7Y29uc3R7dG9TdHJpbmc6YX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6bn09T2JqZWN0LHI9KG89T2JqZWN0LmNyZWF0ZShudWxsKSx0PT57Y29uc3QgZT1hLmNhbGwodCk7cmV0dXJuIG9bZV18fChvW2VdPWUuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KTt2YXIgbztjb25zdCBsPXQ9Pih0PXQudG9Mb3dlckNhc2UoKSxlPT5yKGUpPT09dCksYz10PT5lPT50eXBlb2YgZT09PXQse2lzQXJyYXk6aH09QXJyYXksZD1jKCJ1bmRlZmluZWQiKSx1PWwoIkFycmF5QnVmZmVyIikscD1jKCJzdHJpbmciKSxnPWMoImZ1bmN0aW9uIiksZj1jKCJudW1iZXIiKSxtPXQ9Pm51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHQsdj10PT57aWYoIm9iamVjdCIhPT1yKHQpKXJldHVybiExO2NvbnN0IGU9bih0KTtyZXR1cm4hKG51bGwhPT1lJiZlIT09T2JqZWN0LnByb3RvdHlwZSYmbnVsbCE9PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKXx8U3ltYm9sLnRvU3RyaW5nVGFnIGluIHR8fFN5bWJvbC5pdGVyYXRvciBpbiB0KX0seD1sKCJEYXRlIiksYj1sKCJGaWxlIikseT1sKCJCbG9iIiksdz1sKCJGaWxlTGlzdCIpLGs9bCgiVVJMU2VhcmNoUGFyYW1zIik7ZnVuY3Rpb24gUyh0LGUse2FsbE93bktleXM6aT0hMX09e30pe2lmKG51bGw9PXQpcmV0dXJuO2xldCBzLGE7aWYoIm9iamVjdCIhPXR5cGVvZiB0JiYodD1bdF0pLGgodCkpZm9yKHM9MCxhPXQubGVuZ3RoO3M8YTtzKyspZS5jYWxsKG51bGwsdFtzXSxzLHQpO2Vsc2V7Y29uc3QgYT1pP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpOk9iamVjdC5rZXlzKHQpLG49YS5sZW5ndGg7bGV0IHI7Zm9yKHM9MDtzPG47cysrKXI9YVtzXSxlLmNhbGwobnVsbCx0W3JdLHIsdCl9fWNvbnN0IEM9KEE9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiZuKFVpbnQ4QXJyYXkpLHQ9PkEmJnQgaW5zdGFuY2VvZiBBKTt2YXIgQTtjb25zdCBFPWwoIkhUTUxGb3JtRWxlbWVudCIpLFQ9KCh7aGFzT3duUHJvcGVydHk6dH0pPT4oZSxpKT0+dC5jYWxsKGUsaSkpKE9iamVjdC5wcm90b3R5cGUpLEw9bCgiUmVnRXhwIiksUD0odCxlKT0+e2NvbnN0IGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkscz17fTtTKGksKChpLGEpPT57ITEhPT1lKGksYSx0KSYmKHNbYV09aSl9KSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxzKX07dmFyIE09e2lzQXJyYXk6aCxpc0FycmF5QnVmZmVyOnUsaXNCdWZmZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPT10JiYhZCh0KSYmbnVsbCE9PXQuY29uc3RydWN0b3ImJiFkKHQuY29uc3RydWN0b3IpJiZnKHQuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZ0LmNvbnN0cnVjdG9yLmlzQnVmZmVyKHQpfSxpc0Zvcm1EYXRhOnQ9Pntjb25zdCBlPSJbb2JqZWN0IEZvcm1EYXRhXSI7cmV0dXJuIHQmJigiZnVuY3Rpb24iPT10eXBlb2YgRm9ybURhdGEmJnQgaW5zdGFuY2VvZiBGb3JtRGF0YXx8YS5jYWxsKHQpPT09ZXx8Zyh0LnRvU3RyaW5nKSYmdC50b1N0cmluZygpPT09ZSl9LGlzQXJyYXlCdWZmZXJWaWV3OmZ1bmN0aW9uKHQpe2xldCBlO3JldHVybiBlPSJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJkFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlci5pc1ZpZXcodCk6dCYmdC5idWZmZXImJnUodC5idWZmZXIpLGV9LGlzU3RyaW5nOnAsaXNOdW1iZXI6Zixpc0Jvb2xlYW46dD0+ITA9PT10fHwhMT09PXQsaXNPYmplY3Q6bSxpc1BsYWluT2JqZWN0OnYsaXNVbmRlZmluZWQ6ZCxpc0RhdGU6eCxpc0ZpbGU6Yixpc0Jsb2I6eSxpc1JlZ0V4cDpMLGlzRnVuY3Rpb246Zyxpc1N0cmVhbTp0PT5tKHQpJiZnKHQucGlwZSksaXNVUkxTZWFyY2hQYXJhbXM6ayxpc1R5cGVkQXJyYXk6Qyxpc0ZpbGVMaXN0OncsZm9yRWFjaDpTLG1lcmdlOmZ1bmN0aW9uIHQoKXtjb25zdCBlPXt9LGk9KGkscyk9Pnt2KGVbc10pJiZ2KGkpP2Vbc109dChlW3NdLGkpOnYoaSk/ZVtzXT10KHt9LGkpOmgoaSk/ZVtzXT1pLnNsaWNlKCk6ZVtzXT1pfTtmb3IobGV0IHQ9MCxlPWFyZ3VtZW50cy5sZW5ndGg7dDxlO3QrKylhcmd1bWVudHNbdF0mJlMoYXJndW1lbnRzW3RdLGkpO3JldHVybiBlfSxleHRlbmQ6KHQsZSxpLHthbGxPd25LZXlzOmF9PXt9KT0+KFMoZSwoKGUsYSk9PntpJiZnKGUpP3RbYV09cyhlLGkpOnRbYV09ZX0pLHthbGxPd25LZXlzOmF9KSx0KSx0cmltOnQ9PnQudHJpbT90LnRyaW0oKTp0LnJlcGxhY2UoL15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLCIiKSxzdHJpcEJPTTp0PT4oNjUyNzk9PT10LmNoYXJDb2RlQXQoMCkmJih0PXQuc2xpY2UoMSkpLHQpLGluaGVyaXRzOih0LGUsaSxzKT0+e3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUscyksdC5wcm90b3R5cGUuY29uc3RydWN0b3I9dCxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLGkmJk9iamVjdC5hc3NpZ24odC5wcm90b3R5cGUsaSl9LHRvRmxhdE9iamVjdDoodCxlLGkscyk9PntsZXQgYSxyLG87Y29uc3QgbD17fTtpZihlPWV8fHt9LG51bGw9PXQpcmV0dXJuIGU7ZG97Zm9yKGE9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCkscj1hLmxlbmd0aDtyLS0gPjA7KW89YVtyXSxzJiYhcyhvLHQsZSl8fGxbb118fChlW29dPXRbb10sbFtvXT0hMCk7dD0hMSE9PWkmJm4odCl9d2hpbGUodCYmKCFpfHxpKHQsZSkpJiZ0IT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LGtpbmRPZjpyLGtpbmRPZlRlc3Q6bCxlbmRzV2l0aDoodCxlLGkpPT57dD1TdHJpbmcodCksKHZvaWQgMD09PWl8fGk+dC5sZW5ndGgpJiYoaT10Lmxlbmd0aCksaS09ZS5sZW5ndGg7Y29uc3Qgcz10LmluZGV4T2YoZSxpKTtyZXR1cm4tMSE9PXMmJnM9PT1pfSx0b0FycmF5OnQ9PntpZighdClyZXR1cm4gbnVsbDtpZihoKHQpKXJldHVybiB0O2xldCBlPXQubGVuZ3RoO2lmKCFmKGUpKXJldHVybiBudWxsO2NvbnN0IGk9bmV3IEFycmF5KGUpO2Zvcig7ZS0tID4wOylpW2VdPXRbZV07cmV0dXJuIGl9LGZvckVhY2hFbnRyeToodCxlKT0+e2NvbnN0IGk9KHQmJnRbU3ltYm9sLml0ZXJhdG9yXSkuY2FsbCh0KTtsZXQgcztmb3IoOyhzPWkubmV4dCgpKSYmIXMuZG9uZTspe2NvbnN0IGk9cy52YWx1ZTtlLmNhbGwodCxpWzBdLGlbMV0pfX0sbWF0Y2hBbGw6KHQsZSk9PntsZXQgaTtjb25zdCBzPVtdO2Zvcig7bnVsbCE9PShpPXQuZXhlYyhlKSk7KXMucHVzaChpKTtyZXR1cm4gc30saXNIVE1MRm9ybTpFLGhhc093blByb3BlcnR5OlQsaGFzT3duUHJvcDpULHJlZHVjZURlc2NyaXB0b3JzOlAsZnJlZXplTWV0aG9kczp0PT57UCh0LCgoZSxpKT0+e2NvbnN0IHM9dFtpXTtnKHMpJiYoZS5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiBlP2Uud3JpdGFibGU9ITE6ZS5zZXR8fChlLnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJlYWQtb25seSBtZXRob2QgJyIraSsiJyIpfSkpfSkpfSx0b09iamVjdFNldDoodCxlKT0+e2NvbnN0IGk9e30scz10PT57dC5mb3JFYWNoKCh0PT57aVt0XT0hMH0pKX07cmV0dXJuIGgodCk/cyh0KTpzKFN0cmluZyh0KS5zcGxpdChlKSksaX0sdG9DYW1lbENhc2U6dD0+dC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1tfLVxzXShbYS16XGRdKShcdyopL2csKGZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gZS50b1VwcGVyQ2FzZSgpK2l9KSksbm9vcDooKT0+e30sdG9GaW5pdGVOdW1iZXI6KHQsZSk9Pih0PSt0LE51bWJlci5pc0Zpbml0ZSh0KT90OmUpfTtmdW5jdGlvbiBPKHQsZSxpLHMsYSl7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9KG5ldyBFcnJvcikuc3RhY2ssdGhpcy5tZXNzYWdlPXQsdGhpcy5uYW1lPSJBeGlvc0Vycm9yIixlJiYodGhpcy5jb2RlPWUpLGkmJih0aGlzLmNvbmZpZz1pKSxzJiYodGhpcy5yZXF1ZXN0PXMpLGEmJih0aGlzLnJlc3BvbnNlPWEpfU0uaW5oZXJpdHMoTyxFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOnRoaXMuY29uZmlnLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnJlc3BvbnNlJiZ0aGlzLnJlc3BvbnNlLnN0YXR1cz90aGlzLnJlc3BvbnNlLnN0YXR1czpudWxsfX19KTtjb25zdCBJPU8ucHJvdG90eXBlLEY9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaCgodD0+e0ZbdF09e3ZhbHVlOnR9fSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKE8sRiksT2JqZWN0LmRlZmluZVByb3BlcnR5KEksImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSksTy5mcm9tPSh0LGUsaSxzLGEsbik9Pntjb25zdCByPU9iamVjdC5jcmVhdGUoSSk7cmV0dXJuIE0udG9GbGF0T2JqZWN0KHQsciwoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1FcnJvci5wcm90b3R5cGV9KSwodD0+ImlzQXhpb3NFcnJvciIhPT10KSksTy5jYWxsKHIsdC5tZXNzYWdlLGUsaSxzLGEpLHIuY2F1c2U9dCxyLm5hbWU9dC5uYW1lLG4mJk9iamVjdC5hc3NpZ24ocixuKSxyfTt2YXIgRD1PLHo9aSgyMzApO2Z1bmN0aW9uIE4odCl7cmV0dXJuIE0uaXNQbGFpbk9iamVjdCh0KXx8TS5pc0FycmF5KHQpfWZ1bmN0aW9uIFIodCl7cmV0dXJuIE0uZW5kc1dpdGgodCwiW10iKT90LnNsaWNlKDAsLTIpOnR9ZnVuY3Rpb24gXyh0LGUsaSl7cmV0dXJuIHQ/dC5jb25jYXQoZSkubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiB0PVIodCksIWkmJmU/IlsiK3QrIl0iOnR9KSkuam9pbihpPyIuIjoiIik6ZX1jb25zdCBCPU0udG9GbGF0T2JqZWN0KE0se30sbnVsbCwoZnVuY3Rpb24odCl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KHQpfSkpO3ZhciBYPWZ1bmN0aW9uKHQsZSxpKXtpZighTS5pc09iamVjdCh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTtlPWV8fG5ldyh6fHxGb3JtRGF0YSk7Y29uc3Qgcz0oaT1NLnRvRmxhdE9iamVjdChpLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIU0uaXNVbmRlZmluZWQoZVt0XSl9KSkpLm1ldGFUb2tlbnMsYT1pLnZpc2l0b3J8fGgsbj1pLmRvdHMscj1pLmluZGV4ZXMsbz0oaS5CbG9ifHwidW5kZWZpbmVkIiE9dHlwZW9mIEJsb2ImJkJsb2IpJiYobD1lKSYmTS5pc0Z1bmN0aW9uKGwuYXBwZW5kKSYmIkZvcm1EYXRhIj09PWxbU3ltYm9sLnRvU3RyaW5nVGFnXSYmbFtTeW1ib2wuaXRlcmF0b3JdO3ZhciBsO2lmKCFNLmlzRnVuY3Rpb24oYSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBjKHQpe2lmKG51bGw9PT10KXJldHVybiIiO2lmKE0uaXNEYXRlKHQpKXJldHVybiB0LnRvSVNPU3RyaW5nKCk7aWYoIW8mJk0uaXNCbG9iKHQpKXRocm93IG5ldyBEKCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBNLmlzQXJyYXlCdWZmZXIodCl8fE0uaXNUeXBlZEFycmF5KHQpP28mJiJmdW5jdGlvbiI9PXR5cGVvZiBCbG9iP25ldyBCbG9iKFt0XSk6QnVmZmVyLmZyb20odCk6dH1mdW5jdGlvbiBoKHQsaSxhKXtsZXQgbz10O2lmKHQmJiFhJiYib2JqZWN0Ij09dHlwZW9mIHQpaWYoTS5lbmRzV2l0aChpLCJ7fSIpKWk9cz9pOmkuc2xpY2UoMCwtMiksdD1KU09OLnN0cmluZ2lmeSh0KTtlbHNlIGlmKE0uaXNBcnJheSh0KSYmZnVuY3Rpb24odCl7cmV0dXJuIE0uaXNBcnJheSh0KSYmIXQuc29tZShOKX0odCl8fE0uaXNGaWxlTGlzdCh0KXx8TS5lbmRzV2l0aChpLCJbXSIpJiYobz1NLnRvQXJyYXkodCkpKXJldHVybiBpPVIoaSksby5mb3JFYWNoKChmdW5jdGlvbih0LHMpeyFNLmlzVW5kZWZpbmVkKHQpJiZudWxsIT09dCYmZS5hcHBlbmQoITA9PT1yP18oW2ldLHMsbik6bnVsbD09PXI/aTppKyJbXSIsYyh0KSl9KSksITE7cmV0dXJuISFOKHQpfHwoZS5hcHBlbmQoXyhhLGksbiksYyh0KSksITEpfWNvbnN0IGQ9W10sdT1PYmplY3QuYXNzaWduKEIse2RlZmF1bHRWaXNpdG9yOmgsY29udmVydFZhbHVlOmMsaXNWaXNpdGFibGU6Tn0pO2lmKCFNLmlzT2JqZWN0KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gZnVuY3Rpb24gdChpLHMpe2lmKCFNLmlzVW5kZWZpbmVkKGkpKXtpZigtMSE9PWQuaW5kZXhPZihpKSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrcy5qb2luKCIuIikpO2QucHVzaChpKSxNLmZvckVhY2goaSwoZnVuY3Rpb24oaSxuKXshMD09PSghKE0uaXNVbmRlZmluZWQoaSl8fG51bGw9PT1pKSYmYS5jYWxsKGUsaSxNLmlzU3RyaW5nKG4pP24udHJpbSgpOm4scyx1KSkmJnQoaSxzP3MuY29uY2F0KG4pOltuXSl9KSksZC5wb3AoKX19KHQpLGV9O2Z1bmN0aW9uIEgodCl7Y29uc3QgZT17IiEiOiIlMjEiLCInIjoiJTI3IiwiKCI6IiUyOCIsIikiOiIlMjkiLCJ+IjoiJTdFIiwiJTIwIjoiKyIsIiUwMCI6IlwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh0KS5yZXBsYWNlKC9bIScoKX5dfCUyMHwlMDAvZywoZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19KSl9ZnVuY3Rpb24gWSh0LGUpe3RoaXMuX3BhaXJzPVtdLHQmJlgodCx0aGlzLGUpfWNvbnN0IFc9WS5wcm90b3R5cGU7Vy5hcHBlbmQ9ZnVuY3Rpb24odCxlKXt0aGlzLl9wYWlycy5wdXNoKFt0LGVdKX0sVy50b1N0cmluZz1mdW5jdGlvbih0KXtjb25zdCBlPXQ/ZnVuY3Rpb24oZSl7cmV0dXJuIHQuY2FsbCh0aGlzLGUsSCl9Okg7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUodFswXSkrIj0iK2UodFsxXSl9KSwiIikuam9pbigiJiIpfTt2YXIgJD1ZO2Z1bmN0aW9uIFYodCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh0KS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIikucmVwbGFjZSgvJTVCL2dpLCJbIikucmVwbGFjZSgvJTVEL2dpLCJdIil9ZnVuY3Rpb24gaih0LGUsaSl7aWYoIWUpcmV0dXJuIHQ7Y29uc3Qgcz1pJiZpLmVuY29kZXx8VixhPWkmJmkuc2VyaWFsaXplO2xldCBuO2lmKG49YT9hKGUsaSk6TS5pc1VSTFNlYXJjaFBhcmFtcyhlKT9lLnRvU3RyaW5nKCk6bmV3ICQoZSxpKS50b1N0cmluZyhzKSxuKXtjb25zdCBlPXQuaW5kZXhPZigiIyIpOy0xIT09ZSYmKHQ9dC5zbGljZSgwLGUpKSx0Kz0oLTE9PT10LmluZGV4T2YoIj8iKT8iPyI6IiYiKStufXJldHVybiB0fXZhciBHPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UodCxlLGkpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDp0LHJlamVjdGVkOmUsc3luY2hyb25vdXM6ISFpJiZpLnN5bmNocm9ub3VzLHJ1bldoZW46aT9pLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QodCl7dGhpcy5oYW5kbGVyc1t0XSYmKHRoaXMuaGFuZGxlcnNbdF09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaCh0KXtNLmZvckVhY2godGhpcy5oYW5kbGVycywoZnVuY3Rpb24oZSl7bnVsbCE9PWUmJnQoZSl9KSl9fSxVPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfSxxPSJ1bmRlZmluZWQiIT10eXBlb2YgVVJMU2VhcmNoUGFyYW1zP1VSTFNlYXJjaFBhcmFtczokLFo9Rm9ybURhdGE7Y29uc3QgSz0oKCk9PntsZXQgdDtyZXR1cm4oInVuZGVmaW5lZCI9PXR5cGVvZiBuYXZpZ2F0b3J8fCJSZWFjdE5hdGl2ZSIhPT0odD1uYXZpZ2F0b3IucHJvZHVjdCkmJiJOYXRpdmVTY3JpcHQiIT09dCYmIk5TIiE9PXQpJiYidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudH0pKCk7dmFyIEo9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6cSxGb3JtRGF0YTpaLEJsb2I6QmxvYn0saXNTdGFuZGFyZEJyb3dzZXJFbnY6Syxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX0sUT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsaSxzLGEpe2xldCBuPXRbYSsrXTtjb25zdCByPU51bWJlci5pc0Zpbml0ZSgrbiksbz1hPj10Lmxlbmd0aDtyZXR1cm4gbj0hbiYmTS5pc0FycmF5KHMpP3MubGVuZ3RoOm4sbz8oTS5oYXNPd25Qcm9wKHMsbik/c1tuXT1bc1tuXSxpXTpzW25dPWksIXIpOihzW25dJiZNLmlzT2JqZWN0KHNbbl0pfHwoc1tuXT1bXSksZSh0LGksc1tuXSxhKSYmTS5pc0FycmF5KHNbbl0pJiYoc1tuXT1mdW5jdGlvbih0KXtjb25zdCBlPXt9LGk9T2JqZWN0LmtleXModCk7bGV0IHM7Y29uc3QgYT1pLmxlbmd0aDtsZXQgbjtmb3Iocz0wO3M8YTtzKyspbj1pW3NdLGVbbl09dFtuXTtyZXR1cm4gZX0oc1tuXSkpLCFyKX1pZihNLmlzRm9ybURhdGEodCkmJk0uaXNGdW5jdGlvbih0LmVudHJpZXMpKXtjb25zdCBpPXt9O3JldHVybiBNLmZvckVhY2hFbnRyeSh0LCgodCxzKT0+e2UoZnVuY3Rpb24odCl7cmV0dXJuIE0ubWF0Y2hBbGwoL1x3K3xcWyhcdyopXS9nLHQpLm1hcCgodD0+IltdIj09PXRbMF0/IiI6dFsxXXx8dFswXSkpfSh0KSxzLGksMCl9KSksaX1yZXR1cm4gbnVsbH0sdHQ9Si5pc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGU6ZnVuY3Rpb24odCxlLGkscyxhLG4pe2NvbnN0IHI9W107ci5wdXNoKHQrIj0iK2VuY29kZVVSSUNvbXBvbmVudChlKSksTS5pc051bWJlcihpKSYmci5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUoaSkudG9HTVRTdHJpbmcoKSksTS5pc1N0cmluZyhzKSYmci5wdXNoKCJwYXRoPSIrcyksTS5pc1N0cmluZyhhKSYmci5wdXNoKCJkb21haW49IithKSwhMD09PW4mJnIucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPXIuam9pbigiOyAiKX0scmVhZDpmdW5jdGlvbih0KXtjb25zdCBlPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIit0KyIpPShbXjtdKikiKSk7cmV0dXJuIGU/ZGVjb2RlVVJJQ29tcG9uZW50KGVbM10pOm51bGx9LHJlbW92ZTpmdW5jdGlvbih0KXt0aGlzLndyaXRlKHQsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGU6ZnVuY3Rpb24oKXt9LHJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0scmVtb3ZlOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gZXQodCxlKXtyZXR1cm4gdCYmIS9eKFthLXpdW2EtelxkK1wtLl0qOik/XC9cLy9pLnRlc3QoZSk/ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT90LnJlcGxhY2UoL1wvKyQvLCIiKSsiLyIrZS5yZXBsYWNlKC9eXC8rLywiIik6dH0odCxlKTplfXZhciBpdD1KLmlzU3RhbmRhcmRCcm93c2VyRW52P2Z1bmN0aW9uKCl7Y29uc3QgdD0vKG1zaWV8dHJpZGVudCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2xldCBpO2Z1bmN0aW9uIHMoaSl7bGV0IHM9aTtyZXR1cm4gdCYmKGUuc2V0QXR0cmlidXRlKCJocmVmIixzKSxzPWUuaHJlZiksZS5zZXRBdHRyaWJ1dGUoImhyZWYiLHMpLHtocmVmOmUuaHJlZixwcm90b2NvbDplLnByb3RvY29sP2UucHJvdG9jb2wucmVwbGFjZSgvOiQvLCIiKToiIixob3N0OmUuaG9zdCxzZWFyY2g6ZS5zZWFyY2g/ZS5zZWFyY2gucmVwbGFjZSgvXlw/LywiIik6IiIsaGFzaDplLmhhc2g/ZS5oYXNoLnJlcGxhY2UoL14jLywiIik6IiIsaG9zdG5hbWU6ZS5ob3N0bmFtZSxwb3J0OmUucG9ydCxwYXRobmFtZToiLyI9PT1lLnBhdGhuYW1lLmNoYXJBdCgwKT9lLnBhdGhuYW1lOiIvIitlLnBhdGhuYW1lfX1yZXR1cm4gaT1zKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxmdW5jdGlvbih0KXtjb25zdCBlPU0uaXNTdHJpbmcodCk/cyh0KTp0O3JldHVybiBlLnByb3RvY29sPT09aS5wcm90b2NvbCYmZS5ob3N0PT09aS5ob3N0fX0oKTpmdW5jdGlvbigpe3JldHVybiEwfTtmdW5jdGlvbiBzdCh0LGUsaSl7RC5jYWxsKHRoaXMsbnVsbD09dD8iY2FuY2VsZWQiOnQsRC5FUlJfQ0FOQ0VMRUQsZSxpKSx0aGlzLm5hbWU9IkNhbmNlbGVkRXJyb3IifU0uaW5oZXJpdHMoc3QsRCx7X19DQU5DRUxfXzohMH0pO3ZhciBhdD1zdDtjb25zdCBudD1NLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLHJ0PVN5bWJvbCgiaW50ZXJuYWxzIiksb3Q9U3ltYm9sKCJkZWZhdWx0cyIpO2Z1bmN0aW9uIGx0KHQpe3JldHVybiB0JiZTdHJpbmcodCkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gY3QodCl7cmV0dXJuITE9PT10fHxudWxsPT10P3Q6TS5pc0FycmF5KHQpP3QubWFwKGN0KTpTdHJpbmcodCl9ZnVuY3Rpb24gaHQodCxlLGkscyl7cmV0dXJuIE0uaXNGdW5jdGlvbihzKT9zLmNhbGwodGhpcyxlLGkpOk0uaXNTdHJpbmcoZSk/TS5pc1N0cmluZyhzKT8tMSE9PWUuaW5kZXhPZihzKTpNLmlzUmVnRXhwKHMpP3MudGVzdChlKTp2b2lkIDA6dm9pZCAwfWZ1bmN0aW9uIGR0KHQsZSl7ZT1lLnRvTG93ZXJDYXNlKCk7Y29uc3QgaT1PYmplY3Qua2V5cyh0KTtsZXQgcyxhPWkubGVuZ3RoO2Zvcig7YS0tID4wOylpZihzPWlbYV0sZT09PXMudG9Mb3dlckNhc2UoKSlyZXR1cm4gcztyZXR1cm4gbnVsbH1mdW5jdGlvbiB1dCh0LGUpe3QmJnRoaXMuc2V0KHQpLHRoaXNbb3RdPWV8fG51bGx9T2JqZWN0LmFzc2lnbih1dC5wcm90b3R5cGUse3NldDpmdW5jdGlvbih0LGUsaSl7Y29uc3Qgcz10aGlzO2Z1bmN0aW9uIGEodCxlLGkpe2NvbnN0IGE9bHQoZSk7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2NvbnN0IG49ZHQocyxhKTsoIW58fCEwPT09aXx8ITEhPT1zW25dJiYhMSE9PWkpJiYoc1tufHxlXT1jdCh0KSl9cmV0dXJuIE0uaXNQbGFpbk9iamVjdCh0KT9NLmZvckVhY2godCwoKHQsaSk9PnthKHQsaSxlKX0pKTphKGUsdCxpKSx0aGlzfSxnZXQ6ZnVuY3Rpb24odCxlKXtpZighKHQ9bHQodCkpKXJldHVybjtjb25zdCBpPWR0KHRoaXMsdCk7aWYoaSl7Y29uc3QgdD10aGlzW2ldO2lmKCFlKXJldHVybiB0O2lmKCEwPT09ZSlyZXR1cm4gZnVuY3Rpb24odCl7Y29uc3QgZT1PYmplY3QuY3JlYXRlKG51bGwpLGk9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZztsZXQgcztmb3IoO3M9aS5leGVjKHQpOyllW3NbMV1dPXNbMl07cmV0dXJuIGV9KHQpO2lmKE0uaXNGdW5jdGlvbihlKSlyZXR1cm4gZS5jYWxsKHRoaXMsdCxpKTtpZihNLmlzUmVnRXhwKGUpKXJldHVybiBlLmV4ZWModCk7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19LGhhczpmdW5jdGlvbih0LGUpe2lmKHQ9bHQodCkpe2NvbnN0IGk9ZHQodGhpcyx0KTtyZXR1cm4hKCFpfHxlJiYhaHQoMCx0aGlzW2ldLGksZSkpfXJldHVybiExfSxkZWxldGU6ZnVuY3Rpb24odCxlKXtjb25zdCBpPXRoaXM7bGV0IHM9ITE7ZnVuY3Rpb24gYSh0KXtpZih0PWx0KHQpKXtjb25zdCBhPWR0KGksdCk7IWF8fGUmJiFodCgwLGlbYV0sYSxlKXx8KGRlbGV0ZSBpW2FdLHM9ITApfX1yZXR1cm4gTS5pc0FycmF5KHQpP3QuZm9yRWFjaChhKTphKHQpLHN9LGNsZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMpLmZvckVhY2godGhpcy5kZWxldGUuYmluZCh0aGlzKSl9LG5vcm1hbGl6ZTpmdW5jdGlvbih0KXtjb25zdCBlPXRoaXMsaT17fTtyZXR1cm4gTS5mb3JFYWNoKHRoaXMsKChzLGEpPT57Y29uc3Qgbj1kdChpLGEpO2lmKG4pcmV0dXJuIGVbbl09Y3Qocyksdm9pZCBkZWxldGUgZVthXTtjb25zdCByPXQ/ZnVuY3Rpb24odCl7cmV0dXJuIHQudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcZF0pKFx3KikvZywoKHQsZSxpKT0+ZS50b1VwcGVyQ2FzZSgpK2kpKX0oYSk6U3RyaW5nKGEpLnRyaW0oKTtyIT09YSYmZGVsZXRlIGVbYV0sZVtyXT1jdChzKSxpW3JdPSEwfSkpLHRoaXN9LHRvSlNPTjpmdW5jdGlvbih0KXtjb25zdCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIE0uZm9yRWFjaChPYmplY3QuYXNzaWduKHt9LHRoaXNbb3RdfHxudWxsLHRoaXMpLCgoaSxzKT0+e251bGwhPWkmJiExIT09aSYmKGVbc109dCYmTS5pc0FycmF5KGkpP2kuam9pbigiLCAiKTppKX0pKSxlfX0pLE9iamVjdC5hc3NpZ24odXQse2Zyb206ZnVuY3Rpb24odCl7cmV0dXJuIE0uaXNTdHJpbmcodCk/bmV3IHRoaXMoKHQ9Pntjb25zdCBlPXt9O2xldCBpLHMsYTtyZXR1cm4gdCYmdC5zcGxpdCgiXG4iKS5mb3JFYWNoKChmdW5jdGlvbih0KXthPXQuaW5kZXhPZigiOiIpLGk9dC5zdWJzdHJpbmcoMCxhKS50cmltKCkudG9Mb3dlckNhc2UoKSxzPXQuc3Vic3RyaW5nKGErMSkudHJpbSgpLCFpfHxlW2ldJiZudFtpXXx8KCJzZXQtY29va2llIj09PWk/ZVtpXT9lW2ldLnB1c2gocyk6ZVtpXT1bc106ZVtpXT1lW2ldP2VbaV0rIiwgIitzOnMpfSkpLGV9KSh0KSk6dCBpbnN0YW5jZW9mIHRoaXM/dDpuZXcgdGhpcyh0KX0sYWNjZXNzb3I6ZnVuY3Rpb24odCl7Y29uc3QgZT0odGhpc1tydF09dGhpc1tydF09e2FjY2Vzc29yczp7fX0pLmFjY2Vzc29ycyxpPXRoaXMucHJvdG90eXBlO2Z1bmN0aW9uIHModCl7Y29uc3Qgcz1sdCh0KTtlW3NdfHwoZnVuY3Rpb24odCxlKXtjb25zdCBpPU0udG9DYW1lbENhc2UoIiAiK2UpO1siZ2V0Iiwic2V0IiwiaGFzIl0uZm9yRWFjaCgocz0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHMraSx7dmFsdWU6ZnVuY3Rpb24odCxpLGEpe3JldHVybiB0aGlzW3NdLmNhbGwodGhpcyxlLHQsaSxhKX0sY29uZmlndXJhYmxlOiEwfSl9KSl9KGksdCksZVtzXT0hMCl9cmV0dXJuIE0uaXNBcnJheSh0KT90LmZvckVhY2gocyk6cyh0KSx0aGlzfX0pLHV0LmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50Il0pLE0uZnJlZXplTWV0aG9kcyh1dC5wcm90b3R5cGUpLE0uZnJlZXplTWV0aG9kcyh1dCk7dmFyIHB0PXV0O2Z1bmN0aW9uIGd0KHQsZSl7bGV0IGk9MDtjb25zdCBzPWZ1bmN0aW9uKHQsZSl7dD10fHwxMDtjb25zdCBpPW5ldyBBcnJheSh0KSxzPW5ldyBBcnJheSh0KTtsZXQgYSxuPTAscj0wO3JldHVybiBlPXZvaWQgMCE9PWU/ZToxZTMsZnVuY3Rpb24obyl7Y29uc3QgbD1EYXRlLm5vdygpLGM9c1tyXTthfHwoYT1sKSxpW25dPW8sc1tuXT1sO2xldCBoPXIsZD0wO2Zvcig7aCE9PW47KWQrPWlbaCsrXSxoJT10O2lmKG49KG4rMSkldCxuPT09ciYmKHI9KHIrMSkldCksbC1hPGUpcmV0dXJuO2NvbnN0IHU9YyYmbC1jO3JldHVybiB1P01hdGgucm91bmQoMWUzKmQvdSk6dm9pZCAwfX0oNTAsMjUwKTtyZXR1cm4gYT0+e2NvbnN0IG49YS5sb2FkZWQscj1hLmxlbmd0aENvbXB1dGFibGU/YS50b3RhbDp2b2lkIDAsbz1uLWksbD1zKG8pO2k9bjtjb25zdCBjPXtsb2FkZWQ6bix0b3RhbDpyLHByb2dyZXNzOnI/bi9yOnZvaWQgMCxieXRlczpvLHJhdGU6bHx8dm9pZCAwLGVzdGltYXRlZDpsJiZyJiZuPD1yPyhyLW4pL2w6dm9pZCAwfTtjW2U/ImRvd25sb2FkIjoidXBsb2FkIl09ITAsdChjKX19ZnVuY3Rpb24gZnQodCl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihlLGkpe2xldCBzPXQuZGF0YTtjb25zdCBhPXB0LmZyb20odC5oZWFkZXJzKS5ub3JtYWxpemUoKSxuPXQucmVzcG9uc2VUeXBlO2xldCByO2Z1bmN0aW9uIG8oKXt0LmNhbmNlbFRva2VuJiZ0LmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKHIpLHQuc2lnbmFsJiZ0LnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscil9TS5pc0Zvcm1EYXRhKHMpJiZKLmlzU3RhbmRhcmRCcm93c2VyRW52JiZhLnNldENvbnRlbnRUeXBlKCExKTtsZXQgbD1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYodC5hdXRoKXtjb25zdCBlPXQuYXV0aC51c2VybmFtZXx8IiIsaT10LmF1dGgucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHQuYXV0aC5wYXNzd29yZCkpOiIiO2Euc2V0KCJBdXRob3JpemF0aW9uIiwiQmFzaWMgIitidG9hKGUrIjoiK2kpKX1jb25zdCBjPWV0KHQuYmFzZVVSTCx0LnVybCk7ZnVuY3Rpb24gaCgpe2lmKCFsKXJldHVybjtjb25zdCBzPXB0LmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBsJiZsLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKTshZnVuY3Rpb24odCxlLGkpe2NvbnN0IHM9aS5jb25maWcudmFsaWRhdGVTdGF0dXM7aS5zdGF0dXMmJnMmJiFzKGkuc3RhdHVzKT9lKG5ldyBEKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIraS5zdGF0dXMsW0QuRVJSX0JBRF9SRVFVRVNULEQuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihpLnN0YXR1cy8xMDApLTRdLGkuY29uZmlnLGkucmVxdWVzdCxpKSk6dChpKX0oKGZ1bmN0aW9uKHQpe2UodCksbygpfSksKGZ1bmN0aW9uKHQpe2kodCksbygpfSkse2RhdGE6biYmInRleHQiIT09biYmImpzb24iIT09bj9sLnJlc3BvbnNlOmwucmVzcG9uc2VUZXh0LHN0YXR1czpsLnN0YXR1cyxzdGF0dXNUZXh0Omwuc3RhdHVzVGV4dCxoZWFkZXJzOnMsY29uZmlnOnQscmVxdWVzdDpsfSksbD1udWxsfWlmKGwub3Blbih0Lm1ldGhvZC50b1VwcGVyQ2FzZSgpLGooYyx0LnBhcmFtcyx0LnBhcmFtc1NlcmlhbGl6ZXIpLCEwKSxsLnRpbWVvdXQ9dC50aW1lb3V0LCJvbmxvYWRlbmQiaW4gbD9sLm9ubG9hZGVuZD1oOmwub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7bCYmND09PWwucmVhZHlTdGF0ZSYmKDAhPT1sLnN0YXR1c3x8bC5yZXNwb25zZVVSTCYmMD09PWwucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKSkmJnNldFRpbWVvdXQoaCl9LGwub25hYm9ydD1mdW5jdGlvbigpe2wmJihpKG5ldyBEKCJSZXF1ZXN0IGFib3J0ZWQiLEQuRUNPTk5BQk9SVEVELHQsbCkpLGw9bnVsbCl9LGwub25lcnJvcj1mdW5jdGlvbigpe2kobmV3IEQoIk5ldHdvcmsgRXJyb3IiLEQuRVJSX05FVFdPUkssdCxsKSksbD1udWxsfSxsLm9udGltZW91dD1mdW5jdGlvbigpe2xldCBlPXQudGltZW91dD8idGltZW91dCBvZiAiK3QudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIjtjb25zdCBzPXQudHJhbnNpdGlvbmFsfHxVO3QudGltZW91dEVycm9yTWVzc2FnZSYmKGU9dC50aW1lb3V0RXJyb3JNZXNzYWdlKSxpKG5ldyBEKGUscy5jbGFyaWZ5VGltZW91dEVycm9yP0QuRVRJTUVET1VUOkQuRUNPTk5BQk9SVEVELHQsbCkpLGw9bnVsbH0sSi5pc1N0YW5kYXJkQnJvd3NlckVudil7Y29uc3QgZT0odC53aXRoQ3JlZGVudGlhbHN8fGl0KGMpKSYmdC54c3JmQ29va2llTmFtZSYmdHQucmVhZCh0LnhzcmZDb29raWVOYW1lKTtlJiZhLnNldCh0LnhzcmZIZWFkZXJOYW1lLGUpfXZvaWQgMD09PXMmJmEuc2V0Q29udGVudFR5cGUobnVsbCksInNldFJlcXVlc3RIZWFkZXIiaW4gbCYmTS5mb3JFYWNoKGEudG9KU09OKCksKGZ1bmN0aW9uKHQsZSl7bC5zZXRSZXF1ZXN0SGVhZGVyKGUsdCl9KSksTS5pc1VuZGVmaW5lZCh0LndpdGhDcmVkZW50aWFscyl8fChsLndpdGhDcmVkZW50aWFscz0hIXQud2l0aENyZWRlbnRpYWxzKSxuJiYianNvbiIhPT1uJiYobC5yZXNwb25zZVR5cGU9dC5yZXNwb25zZVR5cGUpLCJmdW5jdGlvbiI9PXR5cGVvZiB0Lm9uRG93bmxvYWRQcm9ncmVzcyYmbC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZ3QodC5vbkRvd25sb2FkUHJvZ3Jlc3MsITApKSwiZnVuY3Rpb24iPT10eXBlb2YgdC5vblVwbG9hZFByb2dyZXNzJiZsLnVwbG9hZCYmbC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGd0KHQub25VcGxvYWRQcm9ncmVzcykpLCh0LmNhbmNlbFRva2VufHx0LnNpZ25hbCkmJihyPWU9PntsJiYoaSghZXx8ZS50eXBlP25ldyBhdChudWxsLHQsbCk6ZSksbC5hYm9ydCgpLGw9bnVsbCl9LHQuY2FuY2VsVG9rZW4mJnQuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKHIpLHQuc2lnbmFsJiYodC5zaWduYWwuYWJvcnRlZD9yKCk6dC5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHIpKSk7Y29uc3QgZD1mdW5jdGlvbih0KXtjb25zdCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKHQpO3JldHVybiBlJiZlWzFdfHwiIn0oYyk7ZCYmLTE9PT1KLnByb3RvY29scy5pbmRleE9mKGQpP2kobmV3IEQoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrZCsiOiIsRC5FUlJfQkFEX1JFUVVFU1QsdCkpOmwuc2VuZChzfHxudWxsKX0pKX1jb25zdCBtdD17aHR0cDpmdCx4aHI6ZnR9O3ZhciB2dD10PT57aWYoTS5pc1N0cmluZyh0KSl7Y29uc3QgZT1tdFt0XTtpZighdCl0aHJvdyBFcnJvcihNLmhhc093blByb3AodCk/YEFkYXB0ZXIgJyR7dH0nIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkYDpgQ2FuIG5vdCByZXNvbHZlIGFkYXB0ZXIgJyR7dH0nYCk7cmV0dXJuIGV9aWYoIU0uaXNGdW5jdGlvbih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhZGFwdGVyIGlzIG5vdCBhIGZ1bmN0aW9uIik7cmV0dXJuIHR9O2NvbnN0IHh0PXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYnQ9e3RyYW5zaXRpb25hbDpVLGFkYXB0ZXI6ZnVuY3Rpb24oKXtsZXQgdDtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0P3Q9dnQoInhociIpOiJ1bmRlZmluZWQiIT10eXBlb2YgcHJvY2VzcyYmInByb2Nlc3MiPT09TS5raW5kT2YocHJvY2VzcykmJih0PXZ0KCJodHRwIikpLHR9KCksdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24odCxlKXtjb25zdCBpPWUuZ2V0Q29udGVudFR5cGUoKXx8IiIscz1pLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxhPU0uaXNPYmplY3QodCk7aWYoYSYmTS5pc0hUTUxGb3JtKHQpJiYodD1uZXcgRm9ybURhdGEodCkpLE0uaXNGb3JtRGF0YSh0KSlyZXR1cm4gcyYmcz9KU09OLnN0cmluZ2lmeShRKHQpKTp0O2lmKE0uaXNBcnJheUJ1ZmZlcih0KXx8TS5pc0J1ZmZlcih0KXx8TS5pc1N0cmVhbSh0KXx8TS5pc0ZpbGUodCl8fE0uaXNCbG9iKHQpKXJldHVybiB0O2lmKE0uaXNBcnJheUJ1ZmZlclZpZXcodCkpcmV0dXJuIHQuYnVmZmVyO2lmKE0uaXNVUkxTZWFyY2hQYXJhbXModCkpcmV0dXJuIGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksdC50b1N0cmluZygpO2xldCBuO2lmKGEpe2lmKGkuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik+LTEpcmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIFgodCxuZXcgSi5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyxPYmplY3QuYXNzaWduKHt2aXNpdG9yOmZ1bmN0aW9uKHQsZSxpLHMpe3JldHVybiBKLmlzTm9kZSYmTS5pc0J1ZmZlcih0KT8odGhpcy5hcHBlbmQoZSx0LnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOnMuZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sZSkpfSh0LHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKG49TS5pc0ZpbGVMaXN0KHQpKXx8aS5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2NvbnN0IGU9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBYKG4/eyJmaWxlc1tdIjp0fTp0LGUmJm5ldyBlLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gYXx8cz8oZS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLGZ1bmN0aW9uKHQsZSxpKXtpZihNLmlzU3RyaW5nKHQpKXRyeXtyZXR1cm4oMCxKU09OLnBhcnNlKSh0KSxNLnRyaW0odCl9Y2F0Y2godCl7aWYoIlN5bnRheEVycm9yIiE9PXQubmFtZSl0aHJvdyB0fXJldHVybigwLEpTT04uc3RyaW5naWZ5KSh0KX0odCkpOnR9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24odCl7Y29uc3QgZT10aGlzLnRyYW5zaXRpb25hbHx8YnQudHJhbnNpdGlvbmFsLGk9ZSYmZS5mb3JjZWRKU09OUGFyc2luZyxzPSJqc29uIj09PXRoaXMucmVzcG9uc2VUeXBlO2lmKHQmJk0uaXNTdHJpbmcodCkmJihpJiYhdGhpcy5yZXNwb25zZVR5cGV8fHMpKXtjb25zdCBpPSEoZSYmZS5zaWxlbnRKU09OUGFyc2luZykmJnM7dHJ5e3JldHVybiBKU09OLnBhcnNlKHQpfWNhdGNoKHQpe2lmKGkpe2lmKCJTeW50YXhFcnJvciI9PT10Lm5hbWUpdGhyb3cgRC5mcm9tKHQsRC5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTt0aHJvdyB0fX19cmV0dXJuIHR9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOkouY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOkouY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbih0KXtyZXR1cm4gdD49MjAwJiZ0PDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiJ9fX07TS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCJdLChmdW5jdGlvbih0KXtidC5oZWFkZXJzW3RdPXt9fSkpLE0uZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLChmdW5jdGlvbih0KXtidC5oZWFkZXJzW3RdPU0ubWVyZ2UoeHQpfSkpO3ZhciB5dD1idDtmdW5jdGlvbiB3dCh0LGUpe2NvbnN0IGk9dGhpc3x8eXQscz1lfHxpLGE9cHQuZnJvbShzLmhlYWRlcnMpO2xldCBuPXMuZGF0YTtyZXR1cm4gTS5mb3JFYWNoKHQsKGZ1bmN0aW9uKHQpe249dC5jYWxsKGksbixhLm5vcm1hbGl6ZSgpLGU/ZS5zdGF0dXM6dm9pZCAwKX0pKSxhLm5vcm1hbGl6ZSgpLG59ZnVuY3Rpb24ga3QodCl7cmV0dXJuISghdHx8IXQuX19DQU5DRUxfXyl9ZnVuY3Rpb24gU3QodCl7aWYodC5jYW5jZWxUb2tlbiYmdC5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksdC5zaWduYWwmJnQuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IGF0fWZ1bmN0aW9uIEN0KHQpe3JldHVybiBTdCh0KSx0LmhlYWRlcnM9cHQuZnJvbSh0LmhlYWRlcnMpLHQuZGF0YT13dC5jYWxsKHQsdC50cmFuc2Zvcm1SZXF1ZXN0KSwodC5hZGFwdGVyfHx5dC5hZGFwdGVyKSh0KS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gU3QodCksZS5kYXRhPXd0LmNhbGwodCx0LnRyYW5zZm9ybVJlc3BvbnNlLGUpLGUuaGVhZGVycz1wdC5mcm9tKGUuaGVhZGVycyksZX0pLChmdW5jdGlvbihlKXtyZXR1cm4ga3QoZSl8fChTdCh0KSxlJiZlLnJlc3BvbnNlJiYoZS5yZXNwb25zZS5kYXRhPXd0LmNhbGwodCx0LnRyYW5zZm9ybVJlc3BvbnNlLGUucmVzcG9uc2UpLGUucmVzcG9uc2UuaGVhZGVycz1wdC5mcm9tKGUucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChlKX0pKX1mdW5jdGlvbiBBdCh0LGUpe2U9ZXx8e307Y29uc3QgaT17fTtmdW5jdGlvbiBzKHQsZSl7cmV0dXJuIE0uaXNQbGFpbk9iamVjdCh0KSYmTS5pc1BsYWluT2JqZWN0KGUpP00ubWVyZ2UodCxlKTpNLmlzUGxhaW5PYmplY3QoZSk/TS5tZXJnZSh7fSxlKTpNLmlzQXJyYXkoZSk/ZS5zbGljZSgpOmV9ZnVuY3Rpb24gYShpKXtyZXR1cm4gTS5pc1VuZGVmaW5lZChlW2ldKT9NLmlzVW5kZWZpbmVkKHRbaV0pP3ZvaWQgMDpzKHZvaWQgMCx0W2ldKTpzKHRbaV0sZVtpXSl9ZnVuY3Rpb24gbih0KXtpZighTS5pc1VuZGVmaW5lZChlW3RdKSlyZXR1cm4gcyh2b2lkIDAsZVt0XSl9ZnVuY3Rpb24gcihpKXtyZXR1cm4gTS5pc1VuZGVmaW5lZChlW2ldKT9NLmlzVW5kZWZpbmVkKHRbaV0pP3ZvaWQgMDpzKHZvaWQgMCx0W2ldKTpzKHZvaWQgMCxlW2ldKX1mdW5jdGlvbiBvKGkpe3JldHVybiBpIGluIGU/cyh0W2ldLGVbaV0pOmkgaW4gdD9zKHZvaWQgMCx0W2ldKTp2b2lkIDB9Y29uc3QgbD17dXJsOm4sbWV0aG9kOm4sZGF0YTpuLGJhc2VVUkw6cix0cmFuc2Zvcm1SZXF1ZXN0OnIsdHJhbnNmb3JtUmVzcG9uc2U6cixwYXJhbXNTZXJpYWxpemVyOnIsdGltZW91dDpyLHRpbWVvdXRNZXNzYWdlOnIsd2l0aENyZWRlbnRpYWxzOnIsYWRhcHRlcjpyLHJlc3BvbnNlVHlwZTpyLHhzcmZDb29raWVOYW1lOnIseHNyZkhlYWRlck5hbWU6cixvblVwbG9hZFByb2dyZXNzOnIsb25Eb3dubG9hZFByb2dyZXNzOnIsZGVjb21wcmVzczpyLG1heENvbnRlbnRMZW5ndGg6cixtYXhCb2R5TGVuZ3RoOnIsYmVmb3JlUmVkaXJlY3Q6cix0cmFuc3BvcnQ6cixodHRwQWdlbnQ6cixodHRwc0FnZW50OnIsY2FuY2VsVG9rZW46cixzb2NrZXRQYXRoOnIscmVzcG9uc2VFbmNvZGluZzpyLHZhbGlkYXRlU3RhdHVzOm99O3JldHVybiBNLmZvckVhY2goT2JqZWN0LmtleXModCkuY29uY2F0KE9iamVjdC5rZXlzKGUpKSwoZnVuY3Rpb24odCl7Y29uc3QgZT1sW3RdfHxhLHM9ZSh0KTtNLmlzVW5kZWZpbmVkKHMpJiZlIT09b3x8KGlbdF09cyl9KSksaX1jb25zdCBFdD17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKCh0LGUpPT57RXRbdF09ZnVuY3Rpb24oaSl7cmV0dXJuIHR5cGVvZiBpPT09dHx8ImEiKyhlPDE/Im4gIjoiICIpK3R9fSkpO2NvbnN0IFR0PXt9O0V0LnRyYW5zaXRpb25hbD1mdW5jdGlvbih0LGUsaSl7ZnVuY3Rpb24gcyh0LGUpe3JldHVybiJbQXhpb3MgdjEuMS4zXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK3QrIiciK2UrKGk/Ii4gIitpOiIiKX1yZXR1cm4oaSxhLG4pPT57aWYoITE9PT10KXRocm93IG5ldyBEKHMoYSwiIGhhcyBiZWVuIHJlbW92ZWQiKyhlPyIgaW4gIitlOiIiKSksRC5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIGUmJiFUdFthXSYmKFR0W2FdPSEwLGNvbnNvbGUud2FybihzKGEsIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK2UrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksIXR8fHQoaSxhLG4pfX07dmFyIEx0PXthc3NlcnRPcHRpb25zOmZ1bmN0aW9uKHQsZSxpKXtpZigib2JqZWN0IiE9dHlwZW9mIHQpdGhyb3cgbmV3IEQoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLEQuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnN0IHM9T2JqZWN0LmtleXModCk7bGV0IGE9cy5sZW5ndGg7Zm9yKDthLS0gPjA7KXtjb25zdCBuPXNbYV0scj1lW25dO2lmKHIpe2NvbnN0IGU9dFtuXSxpPXZvaWQgMD09PWV8fHIoZSxuLHQpO2lmKCEwIT09aSl0aHJvdyBuZXcgRCgib3B0aW9uICIrbisiIG11c3QgYmUgIitpLEQuRVJSX0JBRF9PUFRJT05fVkFMVUUpfWVsc2UgaWYoITAhPT1pKXRocm93IG5ldyBEKCJVbmtub3duIG9wdGlvbiAiK24sRC5FUlJfQkFEX09QVElPTil9fSx2YWxpZGF0b3JzOkV0fTtjb25zdCBQdD1MdC52YWxpZGF0b3JzO2NsYXNzIE10e2NvbnN0cnVjdG9yKHQpe3RoaXMuZGVmYXVsdHM9dCx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgRyxyZXNwb25zZTpuZXcgR319cmVxdWVzdCh0LGUpeyJzdHJpbmciPT10eXBlb2YgdD8oZT1lfHx7fSkudXJsPXQ6ZT10fHx7fSxlPUF0KHRoaXMuZGVmYXVsdHMsZSk7Y29uc3R7dHJhbnNpdGlvbmFsOmkscGFyYW1zU2VyaWFsaXplcjpzfT1lO3ZvaWQgMCE9PWkmJkx0LmFzc2VydE9wdGlvbnMoaSx7c2lsZW50SlNPTlBhcnNpbmc6UHQudHJhbnNpdGlvbmFsKFB0LmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOlB0LnRyYW5zaXRpb25hbChQdC5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOlB0LnRyYW5zaXRpb25hbChQdC5ib29sZWFuKX0sITEpLHZvaWQgMCE9PXMmJkx0LmFzc2VydE9wdGlvbnMocyx7ZW5jb2RlOlB0LmZ1bmN0aW9uLHNlcmlhbGl6ZTpQdC5mdW5jdGlvbn0sITApLGUubWV0aG9kPShlLm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2NvbnN0IGE9ZS5oZWFkZXJzJiZNLm1lcmdlKGUuaGVhZGVycy5jb21tb24sZS5oZWFkZXJzW2UubWV0aG9kXSk7YSYmTS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLChmdW5jdGlvbih0KXtkZWxldGUgZS5oZWFkZXJzW3RdfSkpLGUuaGVhZGVycz1uZXcgcHQoZS5oZWFkZXJzLGEpO2NvbnN0IG49W107bGV0IHI9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKChmdW5jdGlvbih0KXsiZnVuY3Rpb24iPT10eXBlb2YgdC5ydW5XaGVuJiYhMT09PXQucnVuV2hlbihlKXx8KHI9ciYmdC5zeW5jaHJvbm91cyxuLnVuc2hpZnQodC5mdWxmaWxsZWQsdC5yZWplY3RlZCkpfSkpO2NvbnN0IG89W107bGV0IGw7dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaCgoZnVuY3Rpb24odCl7by5wdXNoKHQuZnVsZmlsbGVkLHQucmVqZWN0ZWQpfSkpO2xldCBjLGg9MDtpZighcil7Y29uc3QgdD1bQ3QuYmluZCh0aGlzKSx2b2lkIDBdO2Zvcih0LnVuc2hpZnQuYXBwbHkodCxuKSx0LnB1c2guYXBwbHkodCxvKSxjPXQubGVuZ3RoLGw9UHJvbWlzZS5yZXNvbHZlKGUpO2g8YzspbD1sLnRoZW4odFtoKytdLHRbaCsrXSk7cmV0dXJuIGx9Yz1uLmxlbmd0aDtsZXQgZD1lO2ZvcihoPTA7aDxjOyl7Y29uc3QgdD1uW2grK10sZT1uW2grK107dHJ5e2Q9dChkKX1jYXRjaCh0KXtlLmNhbGwodGhpcyx0KTticmVha319dHJ5e2w9Q3QuY2FsbCh0aGlzLGQpfWNhdGNoKHQpe3JldHVybiBQcm9taXNlLnJlamVjdCh0KX1mb3IoaD0wLGM9by5sZW5ndGg7aDxjOylsPWwudGhlbihvW2grK10sb1toKytdKTtyZXR1cm4gbH1nZXRVcmkodCl7cmV0dXJuIGooZXQoKHQ9QXQodGhpcy5kZWZhdWx0cyx0KSkuYmFzZVVSTCx0LnVybCksdC5wYXJhbXMsdC5wYXJhbXNTZXJpYWxpemVyKX19TS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSwoZnVuY3Rpb24odCl7TXQucHJvdG90eXBlW3RdPWZ1bmN0aW9uKGUsaSl7cmV0dXJuIHRoaXMucmVxdWVzdChBdChpfHx7fSx7bWV0aG9kOnQsdXJsOmUsZGF0YTooaXx8e30pLmRhdGF9KSl9fSkpLE0uZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLChmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3JldHVybiBmdW5jdGlvbihpLHMsYSl7cmV0dXJuIHRoaXMucmVxdWVzdChBdChhfHx7fSx7bWV0aG9kOnQsaGVhZGVyczplP3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDppLGRhdGE6c30pKX19TXQucHJvdG90eXBlW3RdPWUoKSxNdC5wcm90b3R5cGVbdCsiRm9ybSJdPWUoITApfSkpO3ZhciBPdD1NdDtjbGFzcyBJdHtjb25zdHJ1Y3Rvcih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IGU7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKChmdW5jdGlvbih0KXtlPXR9KSk7Y29uc3QgaT10aGlzO3RoaXMucHJvbWlzZS50aGVuKCh0PT57aWYoIWkuX2xpc3RlbmVycylyZXR1cm47bGV0IGU9aS5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO2UtLSA+MDspaS5fbGlzdGVuZXJzW2VdKHQpO2kuX2xpc3RlbmVycz1udWxsfSkpLHRoaXMucHJvbWlzZS50aGVuPXQ9PntsZXQgZTtjb25zdCBzPW5ldyBQcm9taXNlKCh0PT57aS5zdWJzY3JpYmUodCksZT10fSkpLnRoZW4odCk7cmV0dXJuIHMuY2FuY2VsPWZ1bmN0aW9uKCl7aS51bnN1YnNjcmliZShlKX0sc30sdCgoZnVuY3Rpb24odCxzLGEpe2kucmVhc29ufHwoaS5yZWFzb249bmV3IGF0KHQscyxhKSxlKGkucmVhc29uKSl9KSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZSh0KXt0aGlzLnJlYXNvbj90KHRoaXMucmVhc29uKTp0aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2godCk6dGhpcy5fbGlzdGVuZXJzPVt0XX11bnN1YnNjcmliZSh0KXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtjb25zdCBlPXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKHQpOy0xIT09ZSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZShlLDEpfXN0YXRpYyBzb3VyY2UoKXtsZXQgdDtyZXR1cm57dG9rZW46bmV3IEl0KChmdW5jdGlvbihlKXt0PWV9KSksY2FuY2VsOnR9fX12YXIgRnQ9SXQ7Y29uc3QgRHQ9ZnVuY3Rpb24gdChlKXtjb25zdCBpPW5ldyBPdChlKSxhPXMoT3QucHJvdG90eXBlLnJlcXVlc3QsaSk7cmV0dXJuIE0uZXh0ZW5kKGEsT3QucHJvdG90eXBlLGkse2FsbE93bktleXM6ITB9KSxNLmV4dGVuZChhLGksbnVsbCx7YWxsT3duS2V5czohMH0pLGEuY3JlYXRlPWZ1bmN0aW9uKGkpe3JldHVybiB0KEF0KGUsaSkpfSxhfSh5dCk7RHQuQXhpb3M9T3QsRHQuQ2FuY2VsZWRFcnJvcj1hdCxEdC5DYW5jZWxUb2tlbj1GdCxEdC5pc0NhbmNlbD1rdCxEdC5WRVJTSU9OPSIxLjEuMyIsRHQudG9Gb3JtRGF0YT1YLER0LkF4aW9zRXJyb3I9RCxEdC5DYW5jZWw9RHQuQ2FuY2VsZWRFcnJvcixEdC5hbGw9ZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UuYWxsKHQpfSxEdC5zcHJlYWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcGx5KG51bGwsZSl9fSxEdC5pc0F4aW9zRXJyb3I9ZnVuY3Rpb24odCl7cmV0dXJuIE0uaXNPYmplY3QodCkmJiEwPT09dC5pc0F4aW9zRXJyb3J9LER0LmZvcm1Ub0pTT049dD0+UShNLmlzSFRNTEZvcm0odCk/bmV3IEZvcm1EYXRhKHQpOnQpO3ZhciB6dD1EdDtjb25zdHtBeGlvczpOdCxBeGlvc0Vycm9yOlJ0LENhbmNlbGVkRXJyb3I6X3QsaXNDYW5jZWw6QnQsQ2FuY2VsVG9rZW46WHQsVkVSU0lPTjpIdCxhbGw6WXQsQ2FuY2VsOld0LGlzQXhpb3NFcnJvcjokdCxzcHJlYWQ6VnQsdG9Gb3JtRGF0YTpqdH09enQ7dmFyIEd0PXp0fSw5NTU6ZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgaT1hcmd1bWVudHNbZV07Zm9yKHZhciBzIGluIGkpdFtzXT1pW3NdfXJldHVybiB0fXZhciBzPWZ1bmN0aW9uIHQoZSxzKXtmdW5jdGlvbiBhKHQsYSxuKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50KXsibnVtYmVyIj09dHlwZW9mKG49aSh7fSxzLG4pKS5leHBpcmVzJiYobi5leHBpcmVzPW5ldyBEYXRlKERhdGUubm93KCkrODY0ZTUqbi5leHBpcmVzKSksbi5leHBpcmVzJiYobi5leHBpcmVzPW4uZXhwaXJlcy50b1VUQ1N0cmluZygpKSx0PWVuY29kZVVSSUNvbXBvbmVudCh0KS5yZXBsYWNlKC8lKDJbMzQ2Ql18NUV8NjB8N0MpL2csZGVjb2RlVVJJQ29tcG9uZW50KS5yZXBsYWNlKC9bKCldL2csZXNjYXBlKTt2YXIgcj0iIjtmb3IodmFyIG8gaW4gbiluW29dJiYocis9IjsgIitvLCEwIT09bltvXSYmKHIrPSI9IituW29dLnNwbGl0KCI7IilbMF0pKTtyZXR1cm4gZG9jdW1lbnQuY29va2llPXQrIj0iK2Uud3JpdGUoYSx0KStyfX1yZXR1cm4gT2JqZWN0LmNyZWF0ZSh7c2V0OmEsZ2V0OmZ1bmN0aW9uKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJighYXJndW1lbnRzLmxlbmd0aHx8dCkpe2Zvcih2YXIgaT1kb2N1bWVudC5jb29raWU/ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7ICIpOltdLHM9e30sYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgbj1pW2FdLnNwbGl0KCI9Iikscj1uLnNsaWNlKDEpLmpvaW4oIj0iKTt0cnl7dmFyIG89ZGVjb2RlVVJJQ29tcG9uZW50KG5bMF0pO2lmKHNbb109ZS5yZWFkKHIsbyksdD09PW8pYnJlYWt9Y2F0Y2godCl7fX1yZXR1cm4gdD9zW3RdOnN9fSxyZW1vdmU6ZnVuY3Rpb24odCxlKXthKHQsIiIsaSh7fSxlLHtleHBpcmVzOi0xfSkpfSx3aXRoQXR0cmlidXRlczpmdW5jdGlvbihlKXtyZXR1cm4gdCh0aGlzLmNvbnZlcnRlcixpKHt9LHRoaXMuYXR0cmlidXRlcyxlKSl9LHdpdGhDb252ZXJ0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHQoaSh7fSx0aGlzLmNvbnZlcnRlcixlKSx0aGlzLmF0dHJpYnV0ZXMpfX0se2F0dHJpYnV0ZXM6e3ZhbHVlOk9iamVjdC5mcmVlemUocyl9LGNvbnZlcnRlcjp7dmFsdWU6T2JqZWN0LmZyZWV6ZShlKX19KX0oe3JlYWQ6ZnVuY3Rpb24odCl7cmV0dXJuJyInPT09dFswXSYmKHQ9dC5zbGljZSgxLC0xKSksdC5yZXBsYWNlKC8oJVtcZEEtRl17Mn0pKy9naSxkZWNvZGVVUklDb21wb25lbnQpfSx3cml0ZTpmdW5jdGlvbih0KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHQpLnJlcGxhY2UoLyUoMlszNDZCRl18M1tBQy1GXXw0MHw1W0JERV18NjB8N1tCQ0RdKS9nLGRlY29kZVVSSUNvbXBvbmVudCl9fSx7cGF0aDoiLyJ9KTtlLlo9c30sNDY2OmZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3ZhciBpLHMsYT17fTtpPXdpbmRvdyxzPWZ1bmN0aW9uKCl7cmV0dXJuIGk9e30sdC5tPWU9W2Z1bmN0aW9uKHQsZSxpKXtmdW5jdGlvbiBzKHQsZSl7ZT1lfHx7YnViYmxlczohMSxjYW5jZWxhYmxlOiExLGRldGFpbDp2b2lkIDB9O3ZhciBpPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJDdXN0b21FdmVudCIpO3JldHVybiBpLmluaXRDdXN0b21FdmVudCh0LGUuYnViYmxlcyxlLmNhbmNlbGFibGUsZS5kZXRhaWwpLGl9ZS5fX2VzTW9kdWxlPSEwLGUua2ViYWJDYXNlPWUuaGlnaGxpZ2h0PWUuaXNWYWx1ZUluQXJyYXlPZk9iamVjdHM9ZS5kZWJvdW5jZT1lLnB1dENvbnRlbnQ9ZS5lbnN1cmVFbGVtZW50SW5WaWV3PWUuaGFzQ2xhc3NJblRyZWU9dm9pZCAwLGUuaGFzQ2xhc3NJblRyZWU9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIGUmJnQmJnQuY2xhc3NMaXN0JiZ0LmNsYXNzTGlzdC5jb250YWlucyhlKT90Om51bGx9cmV0dXJuIGkodCxlKXx8ZnVuY3Rpb24gdChlLHMpe3JldHVybiBlJiZlIT09ZG9jdW1lbnQ/aShlLHMpP2U6dChlLnBhcmVudE5vZGUscyk6bnVsbH0odCxlKX0sZS5lbnN1cmVFbGVtZW50SW5WaWV3PWZ1bmN0aW9uKHQsZSl7dmFyIGk9dC5zY3JvbGxUb3ArdC5vZmZzZXRUb3Ascz1pK3QuY2xpZW50SGVpZ2h0LGE9ZS5vZmZzZXRUb3A7ZT1hK2UuY2xpZW50SGVpZ2h0LGE8aT90LnNjcm9sbFRvcC09aS1hOnM8ZSYmKHQuc2Nyb2xsVG9wKz1lLXMpfSxlLnB1dENvbnRlbnQ9ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXQub2Zmc2V0SGVpZ2h0LGE9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gdD1pP2EudG9wOmEudG9wLXMscz1pP2EuYm90dG9tOmEuYm90dG9tK3MsdDw9MD8iYmVsb3ciOnM+PXdpbmRvdy5pbm5lckhlaWdodD8iYWJvdmUiOmk/ZToiYmVsb3cifSxlLmRlYm91bmNlPWZ1bmN0aW9uKHQsZSxpKXt2YXIgcztyZXR1cm4gdm9pZCAwPT09ZSYmKGU9MTAwKSx2b2lkIDA9PT1pJiYoaT0hMSksZnVuY3Rpb24oKXtmb3IodmFyIGE9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspYVtuXT1hcmd1bWVudHNbbl07dmFyIHI9c2VsZixvPWkmJiFzO2NsZWFyVGltZW91dChzKSxzPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cz1udWxsLGl8fHQuYXBwbHkocixhKX0pLGUpLG8mJnQuYXBwbHkocixhKX19LGUuaXNWYWx1ZUluQXJyYXlPZk9iamVjdHM9ZnVuY3Rpb24odCxlLGkpe2lmKCFBcnJheS5pc0FycmF5KHQpKXJldHVybiB0W2VdPT09aTtmb3IodmFyIHM9MCxhPXQ7czxhLmxlbmd0aDtzKyspe3ZhciBuPWFbc107aWYobiYmbltlXSYmbltlXT09PWkpcmV0dXJuITB9cmV0dXJuITF9LGUuaGlnaGxpZ2h0PWZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10LGE9bmV3IFJlZ0V4cCgiKCIrZS50cmltKCkrIikoPyFbXjxdKj5bXjw+XSo8LykiLCJpIik7aWYoIXQubWF0Y2goYSkpcmV0dXJuIHQ7dmFyIG49dC5tYXRjaChhKS5pbmRleDtyZXR1cm4gZT1uK3QubWF0Y2goYSlbMF0udG9TdHJpbmcoKS5sZW5ndGgsZT10LnN1YnN0cmluZyhuLGUpLHMucmVwbGFjZShhLCc8bWFyayBjbGFzcz0iJy5jb25jYXQoaSwnIj4nKS5jb25jYXQoZSwiPC9tYXJrPiIpKX0sZS5rZWJhYkNhc2U9ZnVuY3Rpb24odCl7dmFyIGU9dC5yZXBsYWNlKC9bQS1aXHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwREVdL2csKGZ1bmN0aW9uKHQpe3JldHVybiItIit0LnRvTG93ZXJDYXNlKCl9KSk7cmV0dXJuIHRbMF09PT10WzBdLnRvVXBwZXJDYXNlKCk/ZS5zdWJzdHJpbmcoMSk6ZX0sImZ1bmN0aW9uIiE9dHlwZW9mKGU9d2luZG93KS5DdXN0b21FdmVudCYmKHMucHJvdG90eXBlPWUuRXZlbnQucHJvdG90eXBlLGUuQ3VzdG9tRXZlbnQ9cyl9LGZ1bmN0aW9uKHQsZSxpKXtlLl9fZXNNb2R1bGU9ITAsZS52YWxpZGF0ZU9wdGlvbj1lLnZhbGlkYXRlRGF0YT1lLkRhdGE9dm9pZCAwO3ZhciBzPShhLnByb3RvdHlwZS5uZXdPcHRpb249ZnVuY3Rpb24odCl7cmV0dXJue2lkOnQuaWR8fFN0cmluZyhNYXRoLmZsb29yKDFlOCpNYXRoLnJhbmRvbSgpKSksdmFsdWU6dC52YWx1ZXx8IiIsdGV4dDp0LnRleHR8fCIiLGlubmVySFRNTDp0LmlubmVySFRNTHx8IiIsc2VsZWN0ZWQ6dC5zZWxlY3RlZHx8ITEsZGlzcGxheTp2b2lkIDA9PT10LmRpc3BsYXl8fHQuZGlzcGxheSxkaXNhYmxlZDp0LmRpc2FibGVkfHwhMSxwbGFjZWhvbGRlcjp0LnBsYWNlaG9sZGVyfHwhMSxjbGFzczp0LmNsYXNzfHx2b2lkIDAsZGF0YTp0LmRhdGF8fHt9LG1hbmRhdG9yeTp0Lm1hbmRhdG9yeXx8ITF9fSxhLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dGhpcy5kYXRhLnB1c2goe2lkOlN0cmluZyhNYXRoLmZsb29yKDFlOCpNYXRoLnJhbmRvbSgpKSksdmFsdWU6dC52YWx1ZSx0ZXh0OnQudGV4dCxpbm5lckhUTUw6IiIsc2VsZWN0ZWQ6ITEsZGlzcGxheTohMCxkaXNhYmxlZDohMSxwbGFjZWhvbGRlcjohMSxjbGFzczp2b2lkIDAsbWFuZGF0b3J5OnQubWFuZGF0b3J5LGRhdGE6e319KX0sYS5wcm90b3R5cGUucGFyc2VTZWxlY3REYXRhPWZ1bmN0aW9uKCl7dGhpcy5kYXRhPVtdO2Zvcih2YXIgdD0wLGU9dGhpcy5tYWluLnNlbGVjdC5lbGVtZW50LmNoaWxkTm9kZXM7dDxlLmxlbmd0aDt0Kyspe3ZhciBpPWVbdF07aWYoIk9QVEdST1VQIj09PWkubm9kZU5hbWUpe2Zvcih2YXIgcz17bGFiZWw6aS5sYWJlbCxvcHRpb25zOltdfSxhPTAsbj1pLmNoaWxkTm9kZXM7YTxuLmxlbmd0aDthKyspe3ZhciByLG89blthXTsiT1BUSU9OIj09PW8ubm9kZU5hbWUmJihyPXRoaXMucHVsbE9wdGlvbkRhdGEobykscy5vcHRpb25zLnB1c2gociksci5wbGFjZWhvbGRlciYmIiIhPT1yLnRleHQudHJpbSgpJiYodGhpcy5tYWluLmNvbmZpZy5wbGFjZWhvbGRlclRleHQ9ci50ZXh0KSl9dGhpcy5kYXRhLnB1c2gocyl9ZWxzZSJPUFRJT04iPT09aS5ub2RlTmFtZSYmKHI9dGhpcy5wdWxsT3B0aW9uRGF0YShpKSx0aGlzLmRhdGEucHVzaChyKSxyLnBsYWNlaG9sZGVyJiYiIiE9PXIudGV4dC50cmltKCkmJih0aGlzLm1haW4uY29uZmlnLnBsYWNlaG9sZGVyVGV4dD1yLnRleHQpKX19LGEucHJvdG90eXBlLnB1bGxPcHRpb25EYXRhPWZ1bmN0aW9uKHQpe3JldHVybntpZDohIXQuZGF0YXNldCYmdC5kYXRhc2V0LmlkfHxTdHJpbmcoTWF0aC5mbG9vcigxZTgqTWF0aC5yYW5kb20oKSkpLHZhbHVlOnQudmFsdWUsdGV4dDp0LnRleHQsaW5uZXJIVE1MOnQuaW5uZXJIVE1MLHNlbGVjdGVkOnQuc2VsZWN0ZWQsZGlzYWJsZWQ6dC5kaXNhYmxlZCxwbGFjZWhvbGRlcjoidHJ1ZSI9PT10LmRhdGFzZXQucGxhY2Vob2xkZXIsY2xhc3M6dC5jbGFzc05hbWUsc3R5bGU6dC5zdHlsZS5jc3NUZXh0LGRhdGE6dC5kYXRhc2V0LG1hbmRhdG9yeTohIXQuZGF0YXNldCYmInRydWUiPT09dC5kYXRhc2V0Lm1hbmRhdG9yeX19LGEucHJvdG90eXBlLnNldFNlbGVjdGVkRnJvbVNlbGVjdD1mdW5jdGlvbigpe2lmKHRoaXMubWFpbi5jb25maWcuaXNNdWx0aXBsZSl7Zm9yKHZhciB0PVtdLGU9MCxpPXRoaXMubWFpbi5zZWxlY3QuZWxlbWVudC5vcHRpb25zO2U8aS5sZW5ndGg7ZSsrKXt2YXIgcz1pW2VdOyFzLnNlbGVjdGVkfHwocz10aGlzLmdldE9iamVjdEZyb21EYXRhKHMudmFsdWUsInZhbHVlIikpJiZzLmlkJiZ0LnB1c2gocy5pZCl9dGhpcy5zZXRTZWxlY3RlZCh0LCJpZCIpfWVsc2V7dmFyIGE9dGhpcy5tYWluLnNlbGVjdC5lbGVtZW50Oy0xIT09YS5zZWxlY3RlZEluZGV4JiYoYT1hLm9wdGlvbnNbYS5zZWxlY3RlZEluZGV4XS52YWx1ZSx0aGlzLnNldFNlbGVjdGVkKGEsInZhbHVlIikpfX0sYS5wcm90b3R5cGUuc2V0U2VsZWN0ZWQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT0iaWQiKTtmb3IodmFyIGk9MCxzPXRoaXMuZGF0YTtpPHMubGVuZ3RoO2krKyl7dmFyIGE9c1tpXTtpZihhLmhhc093blByb3BlcnR5KCJsYWJlbCIpKXtpZihhLmhhc093blByb3BlcnR5KCJvcHRpb25zIikpe3ZhciBuPWEub3B0aW9ucztpZihuKWZvcih2YXIgcj0wLG89bjtyPG8ubGVuZ3RoO3IrKyl7dmFyIGw9b1tyXTtsLnBsYWNlaG9sZGVyfHwobC5zZWxlY3RlZD10aGlzLnNob3VsZEJlU2VsZWN0ZWQobCx0LGUpKX19fWVsc2UgYS5zZWxlY3RlZD10aGlzLnNob3VsZEJlU2VsZWN0ZWQoYSx0LGUpfX0sYS5wcm90b3R5cGUuc2hvdWxkQmVTZWxlY3RlZD1mdW5jdGlvbih0LGUsaSl7aWYodm9pZCAwPT09aSYmKGk9ImlkIiksQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIHM9MCxhPWU7czxhLmxlbmd0aDtzKyspe3ZhciBuPWFbc107aWYoaSBpbiB0JiZTdHJpbmcodFtpXSk9PT1TdHJpbmcobikpcmV0dXJuITB9ZWxzZSBpZihpIGluIHQmJlN0cmluZyh0W2ldKT09PVN0cmluZyhlKSlyZXR1cm4hMDtyZXR1cm4hMX0sYS5wcm90b3R5cGUuZ2V0U2VsZWN0ZWQ9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9e3RleHQ6IiIscGxhY2Vob2xkZXI6dGhpcy5tYWluLmNvbmZpZy5wbGFjZWhvbGRlclRleHR9LGU9W10saT0wLHM9dGhpcy5kYXRhO2k8cy5sZW5ndGg7aSsrKXt2YXIgYT1zW2ldO2lmKGEuaGFzT3duUHJvcGVydHkoImxhYmVsIikpe2lmKGEuaGFzT3duUHJvcGVydHkoIm9wdGlvbnMiKSl7dmFyIG49YS5vcHRpb25zO2lmKG4pZm9yKHZhciByPTAsbz1uO3I8by5sZW5ndGg7cisrKXt2YXIgbD1vW3JdO2wuc2VsZWN0ZWQmJih0aGlzLm1haW4uY29uZmlnLmlzTXVsdGlwbGU/ZS5wdXNoKGwpOnQ9bCl9fX1lbHNlIGEuc2VsZWN0ZWQmJih0aGlzLm1haW4uY29uZmlnLmlzTXVsdGlwbGU/ZS5wdXNoKGEpOnQ9YSl9cmV0dXJuIHRoaXMubWFpbi5jb25maWcuaXNNdWx0aXBsZT9lOnR9LGEucHJvdG90eXBlLmFkZFRvU2VsZWN0ZWQ9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDA9PT1lJiYoZT0iaWQiKSx0aGlzLm1haW4uY29uZmlnLmlzTXVsdGlwbGUpe3ZhciBpPVtdLHM9dGhpcy5nZXRTZWxlY3RlZCgpO2lmKEFycmF5LmlzQXJyYXkocykpZm9yKHZhciBhPTAsbj1zO2E8bi5sZW5ndGg7YSsrKXt2YXIgcj1uW2FdO2kucHVzaChyW2VdKX1pLnB1c2godCksdGhpcy5zZXRTZWxlY3RlZChpLGUpfX0sYS5wcm90b3R5cGUucmVtb3ZlRnJvbVNlbGVjdGVkPWZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwPT09ZSYmKGU9ImlkIiksdGhpcy5tYWluLmNvbmZpZy5pc011bHRpcGxlKXtmb3IodmFyIGk9W10scz0wLGE9dGhpcy5nZXRTZWxlY3RlZCgpO3M8YS5sZW5ndGg7cysrKXt2YXIgbj1hW3NdO1N0cmluZyhuW2VdKSE9PVN0cmluZyh0KSYmaS5wdXNoKG5bZV0pfXRoaXMuc2V0U2VsZWN0ZWQoaSxlKX19LGEucHJvdG90eXBlLm9uRGF0YUNoYW5nZT1mdW5jdGlvbigpe3RoaXMubWFpbi5vbkNoYW5nZSYmdGhpcy5pc09uQ2hhbmdlRW5hYmxlZCYmdGhpcy5tYWluLm9uQ2hhbmdlKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5nZXRTZWxlY3RlZCgpKSkpfSxhLnByb3RvdHlwZS5nZXRPYmplY3RGcm9tRGF0YT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPSJpZCIpO2Zvcih2YXIgaT0wLHM9dGhpcy5kYXRhO2k8cy5sZW5ndGg7aSsrKXt2YXIgYT1zW2ldO2lmKGUgaW4gYSYmU3RyaW5nKGFbZV0pPT09U3RyaW5nKHQpKXJldHVybiBhO2lmKGEuaGFzT3duUHJvcGVydHkoIm9wdGlvbnMiKSYmYS5vcHRpb25zKWZvcih2YXIgbj0wLHI9YS5vcHRpb25zO248ci5sZW5ndGg7bisrKXt2YXIgbz1yW25dO2lmKFN0cmluZyhvW2VdKT09PVN0cmluZyh0KSlyZXR1cm4gb319cmV0dXJuIG51bGx9LGEucHJvdG90eXBlLnNlYXJjaD1mdW5jdGlvbih0KXt2YXIgZSxpOyIiIT09KHRoaXMuc2VhcmNoVmFsdWU9dCkudHJpbSgpPyhlPXRoaXMubWFpbi5jb25maWcuc2VhcmNoRmlsdGVyLGk9dGhpcy5kYXRhLnNsaWNlKDApLHQ9dC50cmltKCksaT1pLm1hcCgoZnVuY3Rpb24oaSl7aWYoaS5oYXNPd25Qcm9wZXJ0eSgib3B0aW9ucyIpKXt2YXIgcz1pLGE9W107aWYoMCE9PShhPXMub3B0aW9ucz9zLm9wdGlvbnMuZmlsdGVyKChmdW5jdGlvbihpKXtyZXR1cm4gZShpLHQpfSkpOmEpLmxlbmd0aClyZXR1cm4ocz1PYmplY3QuYXNzaWduKHt9LHMpKS5vcHRpb25zPWEsc31yZXR1cm4gaS5oYXNPd25Qcm9wZXJ0eSgidGV4dCIpJiZlKGksdCk/aTpudWxsfSkpLHRoaXMuZmlsdGVyZWQ9aS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpKTp0aGlzLmZpbHRlcmVkPW51bGx9LGEpO2Z1bmN0aW9uIGEodCl7dGhpcy5jb250ZW50T3Blbj0hMSx0aGlzLmNvbnRlbnRQb3NpdGlvbj0iYmVsb3ciLHRoaXMuaXNPbkNoYW5nZUVuYWJsZWQ9ITAsdGhpcy5tYWluPXQubWFpbix0aGlzLnNlYXJjaFZhbHVlPSIiLHRoaXMuZGF0YT1bXSx0aGlzLmZpbHRlcmVkPW51bGwsdGhpcy5wYXJzZVNlbGVjdERhdGEoKSx0aGlzLnNldFNlbGVjdGVkRnJvbVNlbGVjdCgpfWZ1bmN0aW9uIG4odCl7cmV0dXJuIHZvaWQgMCE9PXQudGV4dHx8KGNvbnNvbGUuZXJyb3IoIkRhdGEgb2JqZWN0IG9wdGlvbiBtdXN0IGhhdmUgYXQgbGVhc3QgaGF2ZSBhIHRleHQgdmFsdWUuIENoZWNrIG9iamVjdDogIitKU09OLnN0cmluZ2lmeSh0KSksITEpfWUuRGF0YT1zLGUudmFsaWRhdGVEYXRhPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiBjb25zb2xlLmVycm9yKCJEYXRhIG11c3QgYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cyIpLCExO2Zvcih2YXIgZT0wLGk9MCxzPXQ7aTxzLmxlbmd0aDtpKyspe3ZhciBhPXNbaV07aWYoYS5oYXNPd25Qcm9wZXJ0eSgibGFiZWwiKSl7aWYoYS5oYXNPd25Qcm9wZXJ0eSgib3B0aW9ucyIpKXt2YXIgcj1hLm9wdGlvbnM7aWYocilmb3IodmFyIG89MCxsPXI7bzxsLmxlbmd0aDtvKyspbihsW29dKXx8ZSsrfX1lbHNlIG4oYSl8fGUrK31yZXR1cm4gMD09PWV9LGUudmFsaWRhdGVPcHRpb249bn0sZnVuY3Rpb24odCxlLGkpe2UuX19lc01vZHVsZT0hMDt2YXIgcz1pKDMpLGE9aSg0KSxuPWkoNSkscj1pKDEpLG89aSgwKTtmdW5jdGlvbiBsKHQpe3ZhciBlPXRoaXM7dGhpcy5hamF4PW51bGwsdGhpcy5hZGRhYmxlPW51bGwsdGhpcy5iZWZvcmVPbkNoYW5nZT1udWxsLHRoaXMub25DaGFuZ2U9bnVsbCx0aGlzLmJlZm9yZU9wZW49bnVsbCx0aGlzLmFmdGVyT3Blbj1udWxsLHRoaXMuYmVmb3JlQ2xvc2U9bnVsbCx0aGlzLmFmdGVyQ2xvc2U9bnVsbCx0aGlzLndpbmRvd1Njcm9sbD0oMCxvLmRlYm91bmNlKSgoZnVuY3Rpb24odCl7ZS5kYXRhLmNvbnRlbnRPcGVuJiYoImFib3ZlIj09PSgwLG8ucHV0Q29udGVudCkoZS5zbGltLmNvbnRlbnQsZS5kYXRhLmNvbnRlbnRQb3NpdGlvbixlLmRhdGEuY29udGVudE9wZW4pP2UubW92ZUNvbnRlbnRBYm92ZSgpOmUubW92ZUNvbnRlbnRCZWxvdygpKX0pKSx0aGlzLmRvY3VtZW50Q2xpY2s9ZnVuY3Rpb24odCl7dC50YXJnZXQmJiEoMCxvLmhhc0NsYXNzSW5UcmVlKSh0LnRhcmdldCxlLmNvbmZpZy5pZCkmJmUuY2xvc2UoKX07dmFyIGk9dGhpcy52YWxpZGF0ZSh0KTtpLmRhdGFzZXQuc3NpZCYmdGhpcy5kZXN0cm95KGkuZGF0YXNldC5zc2lkKSx0LmFqYXgmJih0aGlzLmFqYXg9dC5hamF4KSx0LmFkZGFibGUmJih0aGlzLmFkZGFibGU9dC5hZGRhYmxlKSx0aGlzLmNvbmZpZz1uZXcgcy5Db25maWcoe3NlbGVjdDppLGlzQWpheDohIXQuYWpheCxzaG93U2VhcmNoOnQuc2hvd1NlYXJjaCxzZWFyY2hQbGFjZWhvbGRlcjp0LnNlYXJjaFBsYWNlaG9sZGVyLHNlYXJjaFRleHQ6dC5zZWFyY2hUZXh0LHNlYXJjaGluZ1RleHQ6dC5zZWFyY2hpbmdUZXh0LHNlYXJjaEZvY3VzOnQuc2VhcmNoRm9jdXMsc2VhcmNoSGlnaGxpZ2h0OnQuc2VhcmNoSGlnaGxpZ2h0LHNlYXJjaEZpbHRlcjp0LnNlYXJjaEZpbHRlcixjbG9zZU9uU2VsZWN0OnQuY2xvc2VPblNlbGVjdCxzaG93Q29udGVudDp0LnNob3dDb250ZW50LHBsYWNlaG9sZGVyVGV4dDp0LnBsYWNlaG9sZGVyLGFsbG93RGVzZWxlY3Q6dC5hbGxvd0Rlc2VsZWN0LGFsbG93RGVzZWxlY3RPcHRpb246dC5hbGxvd0Rlc2VsZWN0T3B0aW9uLGhpZGVTZWxlY3RlZE9wdGlvbjp0LmhpZGVTZWxlY3RlZE9wdGlvbixkZXNlbGVjdExhYmVsOnQuZGVzZWxlY3RMYWJlbCxpc0VuYWJsZWQ6dC5pc0VuYWJsZWQsdmFsdWVzVXNlVGV4dDp0LnZhbHVlc1VzZVRleHQsc2hvd09wdGlvblRvb2x0aXBzOnQuc2hvd09wdGlvblRvb2x0aXBzLHNlbGVjdEJ5R3JvdXA6dC5zZWxlY3RCeUdyb3VwLGxpbWl0OnQubGltaXQsdGltZW91dERlbGF5OnQudGltZW91dERlbGF5LGFkZFRvQm9keTp0LmFkZFRvQm9keX0pLHRoaXMuc2VsZWN0PW5ldyBhLlNlbGVjdCh7c2VsZWN0OmksbWFpbjp0aGlzfSksdGhpcy5kYXRhPW5ldyByLkRhdGEoe21haW46dGhpc30pLHRoaXMuc2xpbT1uZXcgbi5TbGltKHttYWluOnRoaXN9KSx0aGlzLnNlbGVjdC5lbGVtZW50LnBhcmVudE5vZGUmJnRoaXMuc2VsZWN0LmVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5zbGltLmNvbnRhaW5lcix0aGlzLnNlbGVjdC5lbGVtZW50Lm5leHRTaWJsaW5nKSx0LmRhdGE/dGhpcy5zZXREYXRhKHQuZGF0YSk6dGhpcy5yZW5kZXIoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5kb2N1bWVudENsaWNrKSwiYXV0byI9PT10aGlzLmNvbmZpZy5zaG93Q29udGVudCYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy53aW5kb3dTY3JvbGwsITEpLHQuYmVmb3JlT25DaGFuZ2UmJih0aGlzLmJlZm9yZU9uQ2hhbmdlPXQuYmVmb3JlT25DaGFuZ2UpLHQub25DaGFuZ2UmJih0aGlzLm9uQ2hhbmdlPXQub25DaGFuZ2UpLHQuYmVmb3JlT3BlbiYmKHRoaXMuYmVmb3JlT3Blbj10LmJlZm9yZU9wZW4pLHQuYWZ0ZXJPcGVuJiYodGhpcy5hZnRlck9wZW49dC5hZnRlck9wZW4pLHQuYmVmb3JlQ2xvc2UmJih0aGlzLmJlZm9yZUNsb3NlPXQuYmVmb3JlQ2xvc2UpLHQuYWZ0ZXJDbG9zZSYmKHRoaXMuYWZ0ZXJDbG9zZT10LmFmdGVyQ2xvc2UpLHRoaXMuY29uZmlnLmlzRW5hYmxlZHx8dGhpcy5kaXNhYmxlKCl9bC5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24odCl7aWYoISh0PSJzdHJpbmciPT10eXBlb2YgdC5zZWxlY3Q/ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0LnNlbGVjdCk6dC5zZWxlY3QpKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgc2VsZWN0IGVsZW1lbnQiKTtpZigiU0VMRUNUIiE9PXQudGFnTmFtZSl0aHJvdyBuZXcgRXJyb3IoIkVsZW1lbnQgaXNudCBvZiB0eXBlIHNlbGVjdCIpO3JldHVybiB0fSxsLnByb3RvdHlwZS5zZWxlY3RlZD1mdW5jdGlvbigpe2lmKHRoaXMuY29uZmlnLmlzTXVsdGlwbGUpe2Zvcih2YXIgdD1bXSxlPTAsaT1hPXRoaXMuZGF0YS5nZXRTZWxlY3RlZCgpO2U8aS5sZW5ndGg7ZSsrKXt2YXIgcz1pW2VdO3QucHVzaChzLnZhbHVlKX1yZXR1cm4gdH12YXIgYTtyZXR1cm4oYT10aGlzLmRhdGEuZ2V0U2VsZWN0ZWQoKSk/YS52YWx1ZToiIn0sbC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSxpLHMpe3ZvaWQgMD09PWUmJihlPSJ2YWx1ZSIpLHZvaWQgMD09PWkmJihpPSEwKSx2b2lkIDA9PT1zJiYocz0hMCksdGhpcy5jb25maWcuaXNNdWx0aXBsZSYmIUFycmF5LmlzQXJyYXkodCk/dGhpcy5kYXRhLmFkZFRvU2VsZWN0ZWQodCxlKTp0aGlzLmRhdGEuc2V0U2VsZWN0ZWQodCxlKSx0aGlzLnNlbGVjdC5zZXRWYWx1ZSgpLHRoaXMuZGF0YS5vbkRhdGFDaGFuZ2UoKSx0aGlzLnJlbmRlcigpLChpPSEoIXRoaXMuY29uZmlnLmhpZGVTZWxlY3RlZE9wdGlvbnx8IXRoaXMuY29uZmlnLmlzTXVsdGlwbGV8fHRoaXMuZGF0YS5nZXRTZWxlY3RlZCgpLmxlbmd0aCE9PXRoaXMuZGF0YS5kYXRhLmxlbmd0aCl8fGkpJiZ0aGlzLmNsb3NlKCl9LGwucHJvdG90eXBlLnNldFNlbGVjdGVkPWZ1bmN0aW9uKHQsZSxpLHMpe3RoaXMuc2V0KHQsZT12b2lkIDA9PT1lPyJ2YWx1ZSI6ZSxpPXZvaWQgMD09PWl8fGkscz12b2lkIDA9PT1zfHxzKX0sbC5wcm90b3R5cGUuc2V0RGF0YT1mdW5jdGlvbih0KXtpZigoMCxyLnZhbGlkYXRlRGF0YSkodCkpe2Zvcih2YXIgZT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQpKSxpPXRoaXMuZGF0YS5nZXRTZWxlY3RlZCgpLHM9MDtzPGUubGVuZ3RoO3MrKyllW3NdLnZhbHVlfHxlW3NdLnBsYWNlaG9sZGVyfHwoZVtzXS52YWx1ZT1lW3NdLnRleHQpO2lmKHRoaXMuY29uZmlnLmlzQWpheCYmaSlpZih0aGlzLmNvbmZpZy5pc011bHRpcGxlKWZvcih2YXIgYT0wLG49aS5yZXZlcnNlKCk7YTxuLmxlbmd0aDthKyspe3ZhciBvPW5bYV07ZS51bnNoaWZ0KG8pfWVsc2V7Zm9yKGUudW5zaGlmdChpKSxzPTA7czxlLmxlbmd0aDtzKyspZVtzXS5wbGFjZWhvbGRlcnx8ZVtzXS52YWx1ZSE9PWkudmFsdWV8fGVbc10udGV4dCE9PWkudGV4dHx8ZS5zcGxpY2UocywxKTt2YXIgbD0hMTtmb3Iocz0wO3M8ZS5sZW5ndGg7cysrKWVbc10ucGxhY2Vob2xkZXImJihsPSEwKTtsfHxlLnVuc2hpZnQoe3RleHQ6IiIscGxhY2Vob2xkZXI6ITB9KX10aGlzLnNlbGVjdC5jcmVhdGUoZSksdGhpcy5kYXRhLnBhcnNlU2VsZWN0RGF0YSgpLHRoaXMuZGF0YS5zZXRTZWxlY3RlZEZyb21TZWxlY3QoKX1lbHNlIGNvbnNvbGUuZXJyb3IoIlZhbGlkYXRpb24gcHJvYmxlbSBvbjogIyIrdGhpcy5zZWxlY3QuZWxlbWVudC5pZCl9LGwucHJvdG90eXBlLmFkZERhdGE9ZnVuY3Rpb24odCl7KDAsci52YWxpZGF0ZURhdGEpKFt0XSk/KHRoaXMuZGF0YS5hZGQodGhpcy5kYXRhLm5ld09wdGlvbih0KSksdGhpcy5zZWxlY3QuY3JlYXRlKHRoaXMuZGF0YS5kYXRhKSx0aGlzLmRhdGEucGFyc2VTZWxlY3REYXRhKCksdGhpcy5kYXRhLnNldFNlbGVjdGVkRnJvbVNlbGVjdCgpLHRoaXMucmVuZGVyKCkpOmNvbnNvbGUuZXJyb3IoIlZhbGlkYXRpb24gcHJvYmxlbSBvbjogIyIrdGhpcy5zZWxlY3QuZWxlbWVudC5pZCl9LGwucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXM7dGhpcy5jb25maWcuaXNFbmFibGVkJiYodGhpcy5kYXRhLmNvbnRlbnRPcGVufHx0aGlzLmNvbmZpZy5oaWRlU2VsZWN0ZWRPcHRpb24mJnRoaXMuY29uZmlnLmlzTXVsdGlwbGUmJnRoaXMuZGF0YS5nZXRTZWxlY3RlZCgpLmxlbmd0aD09PXRoaXMuZGF0YS5kYXRhLmxlbmd0aHx8KHRoaXMuYmVmb3JlT3BlbiYmdGhpcy5iZWZvcmVPcGVuKCksdGhpcy5jb25maWcuaXNNdWx0aXBsZSYmdGhpcy5zbGltLm11bHRpU2VsZWN0ZWQ/dGhpcy5zbGltLm11bHRpU2VsZWN0ZWQucGx1cy5jbGFzc0xpc3QuYWRkKCJzcy1jcm9zcyIpOnRoaXMuc2xpbS5zaW5nbGVTZWxlY3RlZCYmKHRoaXMuc2xpbS5zaW5nbGVTZWxlY3RlZC5hcnJvd0ljb24uYXJyb3cuY2xhc3NMaXN0LnJlbW92ZSgiYXJyb3ctZG93biIpLHRoaXMuc2xpbS5zaW5nbGVTZWxlY3RlZC5hcnJvd0ljb24uYXJyb3cuY2xhc3NMaXN0LmFkZCgiYXJyb3ctdXAiKSksdGhpcy5zbGltW3RoaXMuY29uZmlnLmlzTXVsdGlwbGU/Im11bHRpU2VsZWN0ZWQiOiJzaW5nbGVTZWxlY3RlZCJdLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJhYm92ZSI9PT10aGlzLmRhdGEuY29udGVudFBvc2l0aW9uP3RoaXMuY29uZmlnLm9wZW5BYm92ZTp0aGlzLmNvbmZpZy5vcGVuQmVsb3cpLHRoaXMuY29uZmlnLmFkZFRvQm9keSYmKHQ9dGhpcy5zbGltLmNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLnNsaW0uY29udGVudC5zdHlsZS50b3A9dC50b3ArdC5oZWlnaHQrd2luZG93LnNjcm9sbFkrInB4Iix0aGlzLnNsaW0uY29udGVudC5zdHlsZS5sZWZ0PXQubGVmdCt3aW5kb3cuc2Nyb2xsWCsicHgiLHRoaXMuc2xpbS5jb250ZW50LnN0eWxlLndpZHRoPXQud2lkdGgrInB4IiksdGhpcy5zbGltLmNvbnRlbnQuY2xhc3NMaXN0LmFkZCh0aGlzLmNvbmZpZy5vcGVuKSwidXAiPT09dGhpcy5jb25maWcuc2hvd0NvbnRlbnQudG9Mb3dlckNhc2UoKXx8ImRvd24iIT09dGhpcy5jb25maWcuc2hvd0NvbnRlbnQudG9Mb3dlckNhc2UoKSYmImFib3ZlIj09PSgwLG8ucHV0Q29udGVudCkodGhpcy5zbGltLmNvbnRlbnQsdGhpcy5kYXRhLmNvbnRlbnRQb3NpdGlvbix0aGlzLmRhdGEuY29udGVudE9wZW4pP3RoaXMubW92ZUNvbnRlbnRBYm92ZSgpOnRoaXMubW92ZUNvbnRlbnRCZWxvdygpLHRoaXMuY29uZmlnLmlzTXVsdGlwbGV8fCh0PXRoaXMuZGF0YS5nZXRTZWxlY3RlZCgpKSYmKHQ9dC5pZCwodD10aGlzLnNsaW0ubGlzdC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1pZD0iJyt0KyciXScpKSYmKDAsby5lbnN1cmVFbGVtZW50SW5WaWV3KSh0aGlzLnNsaW0ubGlzdCx0KSksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLmRhdGEuY29udGVudE9wZW49ITAsZS5jb25maWcuc2VhcmNoRm9jdXMmJmUuc2xpbS5zZWFyY2guaW5wdXQuZm9jdXMoKSxlLmFmdGVyT3BlbiYmZS5hZnRlck9wZW4oKX0pLHRoaXMuY29uZmlnLnRpbWVvdXREZWxheSkpKX0sbC5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuZGF0YS5jb250ZW50T3BlbiYmKHRoaXMuYmVmb3JlQ2xvc2UmJnRoaXMuYmVmb3JlQ2xvc2UoKSx0aGlzLmNvbmZpZy5pc011bHRpcGxlJiZ0aGlzLnNsaW0ubXVsdGlTZWxlY3RlZD8odGhpcy5zbGltLm11bHRpU2VsZWN0ZWQuY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5jb25maWcub3BlbkFib3ZlKSx0aGlzLnNsaW0ubXVsdGlTZWxlY3RlZC5jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmNvbmZpZy5vcGVuQmVsb3cpLHRoaXMuc2xpbS5tdWx0aVNlbGVjdGVkLnBsdXMuY2xhc3NMaXN0LnJlbW92ZSgic3MtY3Jvc3MiKSk6dGhpcy5zbGltLnNpbmdsZVNlbGVjdGVkJiYodGhpcy5zbGltLnNpbmdsZVNlbGVjdGVkLmNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuY29uZmlnLm9wZW5BYm92ZSksdGhpcy5zbGltLnNpbmdsZVNlbGVjdGVkLmNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuY29uZmlnLm9wZW5CZWxvdyksdGhpcy5zbGltLnNpbmdsZVNlbGVjdGVkLmFycm93SWNvbi5hcnJvdy5jbGFzc0xpc3QuYWRkKCJhcnJvdy1kb3duIiksdGhpcy5zbGltLnNpbmdsZVNlbGVjdGVkLmFycm93SWNvbi5hcnJvdy5jbGFzc0xpc3QucmVtb3ZlKCJhcnJvdy11cCIpKSx0aGlzLnNsaW0uY29udGVudC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuY29uZmlnLm9wZW4pLHRoaXMuZGF0YS5jb250ZW50T3Blbj0hMSx0aGlzLnNlYXJjaCgiIiksc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0LnNsaW0uY29udGVudC5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIiksdC5kYXRhLmNvbnRlbnRQb3NpdGlvbj0iYmVsb3ciLHQuY29uZmlnLmlzTXVsdGlwbGUmJnQuc2xpbS5tdWx0aVNlbGVjdGVkPyh0LnNsaW0ubXVsdGlTZWxlY3RlZC5jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSh0LmNvbmZpZy5vcGVuQWJvdmUpLHQuc2xpbS5tdWx0aVNlbGVjdGVkLmNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKHQuY29uZmlnLm9wZW5CZWxvdykpOnQuc2xpbS5zaW5nbGVTZWxlY3RlZCYmKHQuc2xpbS5zaW5nbGVTZWxlY3RlZC5jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSh0LmNvbmZpZy5vcGVuQWJvdmUpLHQuc2xpbS5zaW5nbGVTZWxlY3RlZC5jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSh0LmNvbmZpZy5vcGVuQmVsb3cpKSx0LnNsaW0uc2VhcmNoLmlucHV0LmJsdXIoKSx0LmFmdGVyQ2xvc2UmJnQuYWZ0ZXJDbG9zZSgpfSksdGhpcy5jb25maWcudGltZW91dERlbGF5KSl9LGwucHJvdG90eXBlLm1vdmVDb250ZW50QWJvdmU9ZnVuY3Rpb24oKXt2YXIgdD0wO3RoaXMuY29uZmlnLmlzTXVsdGlwbGUmJnRoaXMuc2xpbS5tdWx0aVNlbGVjdGVkP3Q9dGhpcy5zbGltLm11bHRpU2VsZWN0ZWQuY29udGFpbmVyLm9mZnNldEhlaWdodDp0aGlzLnNsaW0uc2luZ2xlU2VsZWN0ZWQmJih0PXRoaXMuc2xpbS5zaW5nbGVTZWxlY3RlZC5jb250YWluZXIub2Zmc2V0SGVpZ2h0KTt2YXIgZT10K3RoaXMuc2xpbS5jb250ZW50Lm9mZnNldEhlaWdodC0xO3RoaXMuc2xpbS5jb250ZW50LnN0eWxlLm1hcmdpbj0iLSIrZSsicHggMCAwIDAiLHRoaXMuc2xpbS5jb250ZW50LnN0eWxlLmhlaWdodD1lLXQrMSsicHgiLHRoaXMuc2xpbS5jb250ZW50LnN0eWxlLnRyYW5zZm9ybU9yaWdpbj0iY2VudGVyIGJvdHRvbSIsdGhpcy5kYXRhLmNvbnRlbnRQb3NpdGlvbj0iYWJvdmUiLHRoaXMuY29uZmlnLmlzTXVsdGlwbGUmJnRoaXMuc2xpbS5tdWx0aVNlbGVjdGVkPyh0aGlzLnNsaW0ubXVsdGlTZWxlY3RlZC5jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmNvbmZpZy5vcGVuQmVsb3cpLHRoaXMuc2xpbS5tdWx0aVNlbGVjdGVkLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKHRoaXMuY29uZmlnLm9wZW5BYm92ZSkpOnRoaXMuc2xpbS5zaW5nbGVTZWxlY3RlZCYmKHRoaXMuc2xpbS5zaW5nbGVTZWxlY3RlZC5jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmNvbmZpZy5vcGVuQmVsb3cpLHRoaXMuc2xpbS5zaW5nbGVTZWxlY3RlZC5jb250YWluZXIuY2xhc3NMaXN0LmFkZCh0aGlzLmNvbmZpZy5vcGVuQWJvdmUpKX0sbC5wcm90b3R5cGUubW92ZUNvbnRlbnRCZWxvdz1mdW5jdGlvbigpe3RoaXMuZGF0YS5jb250ZW50UG9zaXRpb249ImJlbG93Iix0aGlzLmNvbmZpZy5pc011bHRpcGxlJiZ0aGlzLnNsaW0ubXVsdGlTZWxlY3RlZD8odGhpcy5zbGltLm11bHRpU2VsZWN0ZWQuY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5jb25maWcub3BlbkFib3ZlKSx0aGlzLnNsaW0ubXVsdGlTZWxlY3RlZC5jb250YWluZXIuY2xhc3NMaXN0LmFkZCh0aGlzLmNvbmZpZy5vcGVuQmVsb3cpKTp0aGlzLnNsaW0uc2luZ2xlU2VsZWN0ZWQmJih0aGlzLnNsaW0uc2luZ2xlU2VsZWN0ZWQuY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5jb25maWcub3BlbkFib3ZlKSx0aGlzLnNsaW0uc2luZ2xlU2VsZWN0ZWQuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQodGhpcy5jb25maWcub3BlbkJlbG93KSl9LGwucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuY29uZmlnLmlzRW5hYmxlZD0hMCx0aGlzLmNvbmZpZy5pc011bHRpcGxlJiZ0aGlzLnNsaW0ubXVsdGlTZWxlY3RlZD90aGlzLnNsaW0ubXVsdGlTZWxlY3RlZC5jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmNvbmZpZy5kaXNhYmxlZCk6dGhpcy5zbGltLnNpbmdsZVNlbGVjdGVkJiZ0aGlzLnNsaW0uc2luZ2xlU2VsZWN0ZWQuY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5jb25maWcuZGlzYWJsZWQpLHRoaXMuc2VsZWN0LnRyaWdnZXJNdXRhdGlvbk9ic2VydmVyPSExLHRoaXMuc2VsZWN0LmVsZW1lbnQuZGlzYWJsZWQ9ITEsdGhpcy5zbGltLnNlYXJjaC5pbnB1dC5kaXNhYmxlZD0hMSx0aGlzLnNlbGVjdC50cmlnZ2VyTXV0YXRpb25PYnNlcnZlcj0hMH0sbC5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuY29uZmlnLmlzRW5hYmxlZD0hMSx0aGlzLmNvbmZpZy5pc011bHRpcGxlJiZ0aGlzLnNsaW0ubXVsdGlTZWxlY3RlZD90aGlzLnNsaW0ubXVsdGlTZWxlY3RlZC5jb250YWluZXIuY2xhc3NMaXN0LmFkZCh0aGlzLmNvbmZpZy5kaXNhYmxlZCk6dGhpcy5zbGltLnNpbmdsZVNlbGVjdGVkJiZ0aGlzLnNsaW0uc2luZ2xlU2VsZWN0ZWQuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQodGhpcy5jb25maWcuZGlzYWJsZWQpLHRoaXMuc2VsZWN0LnRyaWdnZXJNdXRhdGlvbk9ic2VydmVyPSExLHRoaXMuc2VsZWN0LmVsZW1lbnQuZGlzYWJsZWQ9ITAsdGhpcy5zbGltLnNlYXJjaC5pbnB1dC5kaXNhYmxlZD0hMCx0aGlzLnNlbGVjdC50cmlnZ2VyTXV0YXRpb25PYnNlcnZlcj0hMH0sbC5wcm90b3R5cGUuc2VhcmNoPWZ1bmN0aW9uKHQpe3ZhciBlO3RoaXMuZGF0YS5zZWFyY2hWYWx1ZSE9PXQmJih0aGlzLnNsaW0uc2VhcmNoLmlucHV0LnZhbHVlPXQsdGhpcy5jb25maWcuaXNBamF4PygoZT10aGlzKS5jb25maWcuaXNTZWFyY2hpbmc9ITAsdGhpcy5yZW5kZXIoKSx0aGlzLmFqYXgmJnRoaXMuYWpheCh0LChmdW5jdGlvbihpKXtlLmNvbmZpZy5pc1NlYXJjaGluZz0hMSxBcnJheS5pc0FycmF5KGkpPyhpLnVuc2hpZnQoe3RleHQ6IiIscGxhY2Vob2xkZXI6ITB9KSxlLnNldERhdGEoaSksZS5kYXRhLnNlYXJjaCh0KSxlLnJlbmRlcigpKToic3RyaW5nIj09dHlwZW9mIGk/ZS5zbGltLm9wdGlvbnMoaSk6ZS5yZW5kZXIoKX0pKSk6KHRoaXMuZGF0YS5zZWFyY2godCksdGhpcy5yZW5kZXIoKSkpfSxsLnByb3RvdHlwZS5zZXRTZWFyY2hUZXh0PWZ1bmN0aW9uKHQpe3RoaXMuY29uZmlnLnNlYXJjaFRleHQ9dH0sbC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dGhpcy5jb25maWcuaXNNdWx0aXBsZT90aGlzLnNsaW0udmFsdWVzKCk6KHRoaXMuc2xpbS5wbGFjZWhvbGRlcigpLHRoaXMuc2xpbS5kZXNlbGVjdCgpKSx0aGlzLnNsaW0ub3B0aW9ucygpfSxsLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKHQpe3ZhciBlPSh0PXZvaWQgMD09PXQ/bnVsbDp0KT9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuIit0KyIuc3MtbWFpbiIpOnRoaXMuc2xpbS5jb250YWluZXIsaT10P2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIltkYXRhLXNzaWQ9Ii5jb25jYXQodCwiXSIpKTp0aGlzLnNlbGVjdC5lbGVtZW50O2UmJmkmJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5kb2N1bWVudENsaWNrKSwiYXV0byI9PT10aGlzLmNvbmZpZy5zaG93Q29udGVudCYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy53aW5kb3dTY3JvbGwsITEpLGkuc3R5bGUuZGlzcGxheT0iIixkZWxldGUgaS5kYXRhc2V0LnNzaWQsaS5zbGltPW51bGwsZS5wYXJlbnRFbGVtZW50JiZlLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoZSksIXRoaXMuY29uZmlnLmFkZFRvQm9keXx8KHQ9dD9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuIit0KyIuc3MtY29udGVudCIpOnRoaXMuc2xpbS5jb250ZW50KSYmZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KSl9LGk9bCxlLmRlZmF1bHQ9aX0sZnVuY3Rpb24odCxlLGkpe2UuX19lc01vZHVsZT0hMCxlLkNvbmZpZz12b2lkIDA7dmFyIHM9KGEucHJvdG90eXBlLnNlYXJjaEZpbHRlcj1mdW5jdGlvbih0LGUpe3JldHVybi0xIT09dC50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihlLnRvTG93ZXJDYXNlKCkpfSxhKTtmdW5jdGlvbiBhKHQpe3RoaXMuaWQ9IiIsdGhpcy5pc011bHRpcGxlPSExLHRoaXMuaXNBamF4PSExLHRoaXMuaXNTZWFyY2hpbmc9ITEsdGhpcy5zaG93U2VhcmNoPSEwLHRoaXMuc2VhcmNoRm9jdXM9ITAsdGhpcy5zZWFyY2hIaWdobGlnaHQ9ITEsdGhpcy5jbG9zZU9uU2VsZWN0PSEwLHRoaXMuc2hvd0NvbnRlbnQ9ImF1dG8iLHRoaXMuc2VhcmNoUGxhY2Vob2xkZXI9IlNlYXJjaCIsdGhpcy5zZWFyY2hUZXh0PSJObyBSZXN1bHRzIix0aGlzLnNlYXJjaGluZ1RleHQ9IlNlYXJjaGluZy4uLiIsdGhpcy5wbGFjZWhvbGRlclRleHQ9IlNlbGVjdCBWYWx1ZSIsdGhpcy5hbGxvd0Rlc2VsZWN0PSExLHRoaXMuYWxsb3dEZXNlbGVjdE9wdGlvbj0hMSx0aGlzLmhpZGVTZWxlY3RlZE9wdGlvbj0hMSx0aGlzLmRlc2VsZWN0TGFiZWw9IngiLHRoaXMuaXNFbmFibGVkPSEwLHRoaXMudmFsdWVzVXNlVGV4dD0hMSx0aGlzLnNob3dPcHRpb25Ub29sdGlwcz0hMSx0aGlzLnNlbGVjdEJ5R3JvdXA9ITEsdGhpcy5saW1pdD0wLHRoaXMudGltZW91dERlbGF5PTIwMCx0aGlzLmFkZFRvQm9keT0hMSx0aGlzLm1haW49InNzLW1haW4iLHRoaXMuc2luZ2xlU2VsZWN0ZWQ9InNzLXNpbmdsZS1zZWxlY3RlZCIsdGhpcy5hcnJvdz0ic3MtYXJyb3ciLHRoaXMubXVsdGlTZWxlY3RlZD0ic3MtbXVsdGktc2VsZWN0ZWQiLHRoaXMuYWRkPSJzcy1hZGQiLHRoaXMucGx1cz0ic3MtcGx1cyIsdGhpcy52YWx1ZXM9InNzLXZhbHVlcyIsdGhpcy52YWx1ZT0ic3MtdmFsdWUiLHRoaXMudmFsdWVUZXh0PSJzcy12YWx1ZS10ZXh0Iix0aGlzLnZhbHVlRGVsZXRlPSJzcy12YWx1ZS1kZWxldGUiLHRoaXMuY29udGVudD0ic3MtY29udGVudCIsdGhpcy5vcGVuPSJzcy1vcGVuIix0aGlzLm9wZW5BYm92ZT0ic3Mtb3Blbi1hYm92ZSIsdGhpcy5vcGVuQmVsb3c9InNzLW9wZW4tYmVsb3ciLHRoaXMuc2VhcmNoPSJzcy1zZWFyY2giLHRoaXMuc2VhcmNoSGlnaGxpZ2h0ZXI9InNzLXNlYXJjaC1oaWdobGlnaHQiLHRoaXMuYWRkYWJsZT0ic3MtYWRkYWJsZSIsdGhpcy5saXN0PSJzcy1saXN0Iix0aGlzLm9wdGdyb3VwPSJzcy1vcHRncm91cCIsdGhpcy5vcHRncm91cExhYmVsPSJzcy1vcHRncm91cC1sYWJlbCIsdGhpcy5vcHRncm91cExhYmVsU2VsZWN0YWJsZT0ic3Mtb3B0Z3JvdXAtbGFiZWwtc2VsZWN0YWJsZSIsdGhpcy5vcHRpb249InNzLW9wdGlvbiIsdGhpcy5vcHRpb25TZWxlY3RlZD0ic3Mtb3B0aW9uLXNlbGVjdGVkIix0aGlzLmhpZ2hsaWdodGVkPSJzcy1oaWdobGlnaHRlZCIsdGhpcy5kaXNhYmxlZD0ic3MtZGlzYWJsZWQiLHRoaXMuaGlkZT0ic3MtaGlkZSIsdGhpcy5pZD0ic3MtIitNYXRoLmZsb29yKDFlNSpNYXRoLnJhbmRvbSgpKSx0aGlzLnN0eWxlPXQuc2VsZWN0LnN0eWxlLmNzc1RleHQsdGhpcy5jbGFzcz10LnNlbGVjdC5jbGFzc05hbWUuc3BsaXQoIiAiKSx0aGlzLmlzTXVsdGlwbGU9dC5zZWxlY3QubXVsdGlwbGUsdGhpcy5pc0FqYXg9dC5pc0FqYXgsdGhpcy5zaG93U2VhcmNoPSExIT09dC5zaG93U2VhcmNoLHRoaXMuc2VhcmNoRm9jdXM9ITEhPT10LnNlYXJjaEZvY3VzLHRoaXMuc2VhcmNoSGlnaGxpZ2h0PSEwPT09dC5zZWFyY2hIaWdobGlnaHQsdGhpcy5jbG9zZU9uU2VsZWN0PSExIT09dC5jbG9zZU9uU2VsZWN0LHQuc2hvd0NvbnRlbnQmJih0aGlzLnNob3dDb250ZW50PXQuc2hvd0NvbnRlbnQpLHRoaXMuaXNFbmFibGVkPSExIT09dC5pc0VuYWJsZWQsdC5zZWFyY2hQbGFjZWhvbGRlciYmKHRoaXMuc2VhcmNoUGxhY2Vob2xkZXI9dC5zZWFyY2hQbGFjZWhvbGRlciksdC5zZWFyY2hUZXh0JiYodGhpcy5zZWFyY2hUZXh0PXQuc2VhcmNoVGV4dCksdC5zZWFyY2hpbmdUZXh0JiYodGhpcy5zZWFyY2hpbmdUZXh0PXQuc2VhcmNoaW5nVGV4dCksdC5wbGFjZWhvbGRlclRleHQmJih0aGlzLnBsYWNlaG9sZGVyVGV4dD10LnBsYWNlaG9sZGVyVGV4dCksdGhpcy5hbGxvd0Rlc2VsZWN0PSEwPT09dC5hbGxvd0Rlc2VsZWN0LHRoaXMuYWxsb3dEZXNlbGVjdE9wdGlvbj0hMD09PXQuYWxsb3dEZXNlbGVjdE9wdGlvbix0aGlzLmhpZGVTZWxlY3RlZE9wdGlvbj0hMD09PXQuaGlkZVNlbGVjdGVkT3B0aW9uLHQuZGVzZWxlY3RMYWJlbCYmKHRoaXMuZGVzZWxlY3RMYWJlbD10LmRlc2VsZWN0TGFiZWwpLHQudmFsdWVzVXNlVGV4dCYmKHRoaXMudmFsdWVzVXNlVGV4dD10LnZhbHVlc1VzZVRleHQpLHQuc2hvd09wdGlvblRvb2x0aXBzJiYodGhpcy5zaG93T3B0aW9uVG9vbHRpcHM9dC5zaG93T3B0aW9uVG9vbHRpcHMpLHQuc2VsZWN0QnlHcm91cCYmKHRoaXMuc2VsZWN0QnlHcm91cD10LnNlbGVjdEJ5R3JvdXApLHQubGltaXQmJih0aGlzLmxpbWl0PXQubGltaXQpLHQuc2VhcmNoRmlsdGVyJiYodGhpcy5zZWFyY2hGaWx0ZXI9dC5zZWFyY2hGaWx0ZXIpLG51bGwhPXQudGltZW91dERlbGF5JiYodGhpcy50aW1lb3V0RGVsYXk9dC50aW1lb3V0RGVsYXkpLHRoaXMuYWRkVG9Cb2R5PSEwPT09dC5hZGRUb0JvZHl9ZS5Db25maWc9c30sZnVuY3Rpb24odCxlLGkpe2UuX19lc01vZHVsZT0hMCxlLlNlbGVjdD12b2lkIDA7dmFyIHM9aSgwKTtmdW5jdGlvbiBhKHQpe3RoaXMudHJpZ2dlck11dGF0aW9uT2JzZXJ2ZXI9ITAsdGhpcy5lbGVtZW50PXQuc2VsZWN0LHRoaXMubWFpbj10Lm1haW4sdGhpcy5lbGVtZW50LmRpc2FibGVkJiYodGhpcy5tYWluLmNvbmZpZy5pc0VuYWJsZWQ9ITEpLHRoaXMuYWRkQXR0cmlidXRlcygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMoKSx0aGlzLm11dGF0aW9uT2JzZXJ2ZXI9bnVsbCx0aGlzLmFkZE11dGF0aW9uT2JzZXJ2ZXIoKSx0aGlzLmVsZW1lbnQuc2xpbT10Lm1haW59YS5wcm90b3R5cGUuc2V0VmFsdWU9ZnVuY3Rpb24oKXtpZih0aGlzLm1haW4uZGF0YS5nZXRTZWxlY3RlZCgpKXtpZih0aGlzLm1haW4uY29uZmlnLmlzTXVsdGlwbGUpZm9yKHZhciB0PXRoaXMubWFpbi5kYXRhLmdldFNlbGVjdGVkKCksZT0wLGk9dGhpcy5lbGVtZW50Lm9wdGlvbnM7ZTxpLmxlbmd0aDtlKyspe3ZhciBzPWlbZV07cy5zZWxlY3RlZD0hMTtmb3IodmFyIGE9MCxuPXQ7YTxuLmxlbmd0aDthKyspblthXS52YWx1ZT09PXMudmFsdWUmJihzLnNlbGVjdGVkPSEwKX1lbHNlIHQ9dGhpcy5tYWluLmRhdGEuZ2V0U2VsZWN0ZWQoKSx0aGlzLmVsZW1lbnQudmFsdWU9dD90LnZhbHVlOiIiO3RoaXMubWFpbi5kYXRhLmlzT25DaGFuZ2VFbmFibGVkPSExLHRoaXMuZWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7YnViYmxlczohMH0pKSx0aGlzLm1haW4uZGF0YS5pc09uQ2hhbmdlRW5hYmxlZD0hMH19LGEucHJvdG90eXBlLmFkZEF0dHJpYnV0ZXM9ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQudGFiSW5kZXg9LTEsdGhpcy5lbGVtZW50LnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuZWxlbWVudC5kYXRhc2V0LnNzaWQ9dGhpcy5tYWluLmNvbmZpZy5pZCx0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKX0sYS5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcnM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLChmdW5jdGlvbihlKXt0Lm1haW4uZGF0YS5zZXRTZWxlY3RlZEZyb21TZWxlY3QoKSx0Lm1haW4ucmVuZGVyKCl9KSl9LGEucHJvdG90eXBlLmFkZE11dGF0aW9uT2JzZXJ2ZXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMubWFpbi5jb25maWcuaXNBamF4fHwodGhpcy5tdXRhdGlvbk9ic2VydmVyPW5ldyBNdXRhdGlvbk9ic2VydmVyKChmdW5jdGlvbihlKXt0LnRyaWdnZXJNdXRhdGlvbk9ic2VydmVyJiYodC5tYWluLmRhdGEucGFyc2VTZWxlY3REYXRhKCksdC5tYWluLmRhdGEuc2V0U2VsZWN0ZWRGcm9tU2VsZWN0KCksdC5tYWluLnJlbmRlcigpLGUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ImNsYXNzIj09PWUuYXR0cmlidXRlTmFtZSYmdC5tYWluLnNsaW0udXBkYXRlQ29udGFpbmVyRGl2Q2xhc3ModC5tYWluLnNsaW0uY29udGFpbmVyKX0pKSl9KSksdGhpcy5vYnNlcnZlTXV0YXRpb25PYnNlcnZlcigpKX0sYS5wcm90b3R5cGUub2JzZXJ2ZU11dGF0aW9uT2JzZXJ2ZXI9ZnVuY3Rpb24oKXt0aGlzLm11dGF0aW9uT2JzZXJ2ZXImJnRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudCx7YXR0cmlidXRlczohMCxjaGlsZExpc3Q6ITAsY2hhcmFjdGVyRGF0YTohMH0pfSxhLnByb3RvdHlwZS5kaXNjb25uZWN0TXV0YXRpb25PYnNlcnZlcj1mdW5jdGlvbigpe3RoaXMubXV0YXRpb25PYnNlcnZlciYmdGhpcy5tdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKX0sYS5wcm90b3R5cGUuY3JlYXRlPWZ1bmN0aW9uKHQpe3RoaXMuZWxlbWVudC5pbm5lckhUTUw9IiI7Zm9yKHZhciBlPTAsaT10O2U8aS5sZW5ndGg7ZSsrKXt2YXIgcz1pW2VdO2lmKHMuaGFzT3duUHJvcGVydHkoIm9wdGlvbnMiKSl7dmFyIGE9cyxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGdyb3VwIik7aWYobi5sYWJlbD1hLmxhYmVsLGEub3B0aW9ucylmb3IodmFyIHI9MCxvPWEub3B0aW9ucztyPG8ubGVuZ3RoO3IrKyl7dmFyIGw9b1tyXTtuLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlT3B0aW9uKGwpKX10aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQobil9ZWxzZSB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVPcHRpb24ocykpfX0sYS5wcm90b3R5cGUuY3JlYXRlT3B0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpO3JldHVybiBlLnZhbHVlPSIiIT09dC52YWx1ZT90LnZhbHVlOnQudGV4dCxlLmlubmVySFRNTD10LmlubmVySFRNTHx8dC50ZXh0LHQuc2VsZWN0ZWQmJihlLnNlbGVjdGVkPXQuc2VsZWN0ZWQpLCExPT09dC5kaXNwbGF5JiYoZS5zdHlsZS5kaXNwbGF5PSJub25lIiksdC5kaXNhYmxlZCYmKGUuZGlzYWJsZWQ9ITApLHQucGxhY2Vob2xkZXImJmUuc2V0QXR0cmlidXRlKCJkYXRhLXBsYWNlaG9sZGVyIiwidHJ1ZSIpLHQubWFuZGF0b3J5JiZlLnNldEF0dHJpYnV0ZSgiZGF0YS1tYW5kYXRvcnkiLCJ0cnVlIiksdC5jbGFzcyYmdC5jbGFzcy5zcGxpdCgiICIpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2UuY2xhc3NMaXN0LmFkZCh0KX0pKSx0LmRhdGEmJiJvYmplY3QiPT10eXBlb2YgdC5kYXRhJiZPYmplY3Qua2V5cyh0LmRhdGEpLmZvckVhY2goKGZ1bmN0aW9uKGkpe2Uuc2V0QXR0cmlidXRlKCJkYXRhLSIrKDAscy5rZWJhYkNhc2UpKGkpLHQuZGF0YVtpXSl9KSksZX0saT1hLGUuU2VsZWN0PWl9LGZ1bmN0aW9uKHQsZSxpKXtlLl9fZXNNb2R1bGU9ITAsZS5TbGltPXZvaWQgMDt2YXIgcz1pKDApLGE9aSgxKTtmdW5jdGlvbiBuKHQpe3RoaXMubWFpbj10Lm1haW4sdGhpcy5jb250YWluZXI9dGhpcy5jb250YWluZXJEaXYoKSx0aGlzLmNvbnRlbnQ9dGhpcy5jb250ZW50RGl2KCksdGhpcy5zZWFyY2g9dGhpcy5zZWFyY2hEaXYoKSx0aGlzLmxpc3Q9dGhpcy5saXN0RGl2KCksdGhpcy5vcHRpb25zKCksdGhpcy5zaW5nbGVTZWxlY3RlZD1udWxsLHRoaXMubXVsdGlTZWxlY3RlZD1udWxsLHRoaXMubWFpbi5jb25maWcuaXNNdWx0aXBsZT8odGhpcy5tdWx0aVNlbGVjdGVkPXRoaXMubXVsdGlTZWxlY3RlZERpdigpLHRoaXMubXVsdGlTZWxlY3RlZCYmdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5tdWx0aVNlbGVjdGVkLmNvbnRhaW5lcikpOih0aGlzLnNpbmdsZVNlbGVjdGVkPXRoaXMuc2luZ2xlU2VsZWN0ZWREaXYoKSx0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnNpbmdsZVNlbGVjdGVkLmNvbnRhaW5lcikpLHRoaXMubWFpbi5jb25maWcuYWRkVG9Cb2R5Pyh0aGlzLmNvbnRlbnQuY2xhc3NMaXN0LmFkZCh0aGlzLm1haW4uY29uZmlnLmlkKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuY29udGVudCkpOnRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuY29udGVudCksdGhpcy5jb250ZW50LmFwcGVuZENoaWxkKHRoaXMuc2VhcmNoLmNvbnRhaW5lciksdGhpcy5jb250ZW50LmFwcGVuZENoaWxkKHRoaXMubGlzdCl9bi5wcm90b3R5cGUuY29udGFpbmVyRGl2PWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQuc3R5bGUuY3NzVGV4dD10aGlzLm1haW4uY29uZmlnLnN0eWxlLHRoaXMudXBkYXRlQ29udGFpbmVyRGl2Q2xhc3ModCksdH0sbi5wcm90b3R5cGUudXBkYXRlQ29udGFpbmVyRGl2Q2xhc3M9ZnVuY3Rpb24odCl7dGhpcy5tYWluLmNvbmZpZy5jbGFzcz10aGlzLm1haW4uc2VsZWN0LmVsZW1lbnQuY2xhc3NOYW1lLnNwbGl0KCIgIiksdC5jbGFzc05hbWU9IiIsdC5jbGFzc0xpc3QuYWRkKHRoaXMubWFpbi5jb25maWcuaWQpLHQuY2xhc3NMaXN0LmFkZCh0aGlzLm1haW4uY29uZmlnLm1haW4pO2Zvcih2YXIgZT0wLGk9dGhpcy5tYWluLmNvbmZpZy5jbGFzcztlPGkubGVuZ3RoO2UrKyl7dmFyIHM9aVtlXTsiIiE9PXMudHJpbSgpJiZ0LmNsYXNzTGlzdC5hZGQocyl9fSxuLnByb3RvdHlwZS5zaW5nbGVTZWxlY3RlZERpdj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmNsYXNzTGlzdC5hZGQodGhpcy5tYWluLmNvbmZpZy5zaW5nbGVTZWxlY3RlZCk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2kuY2xhc3NMaXN0LmFkZCgicGxhY2Vob2xkZXIiKSxlLmFwcGVuZENoaWxkKGkpO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmlubmVySFRNTD10aGlzLm1haW4uY29uZmlnLmRlc2VsZWN0TGFiZWwscy5jbGFzc0xpc3QuYWRkKCJzcy1kZXNlbGVjdCIpLHMub25jbGljaz1mdW5jdGlvbihlKXtlLnN0b3BQcm9wYWdhdGlvbigpLHQubWFpbi5jb25maWcuaXNFbmFibGVkJiZ0Lm1haW4uc2V0KCIiKX0sZS5hcHBlbmRDaGlsZChzKTt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7YS5jbGFzc0xpc3QuYWRkKHRoaXMubWFpbi5jb25maWcuYXJyb3cpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtyZXR1cm4gbi5jbGFzc0xpc3QuYWRkKCJhcnJvdy1kb3duIiksYS5hcHBlbmRDaGlsZChuKSxlLmFwcGVuZENoaWxkKGEpLGUub25jbGljaz1mdW5jdGlvbigpe3QubWFpbi5jb25maWcuaXNFbmFibGVkJiYodC5tYWluLmRhdGEuY29udGVudE9wZW4/dC5tYWluLmNsb3NlKCk6dC5tYWluLm9wZW4oKSl9LHtjb250YWluZXI6ZSxwbGFjZWhvbGRlcjppLGRlc2VsZWN0OnMsYXJyb3dJY29uOntjb250YWluZXI6YSxhcnJvdzpufX19LG4ucHJvdG90eXBlLnBsYWNlaG9sZGVyPWZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLm1haW4uZGF0YS5nZXRTZWxlY3RlZCgpO251bGw9PT1lfHxlJiZlLnBsYWNlaG9sZGVyPygodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpLmNsYXNzTGlzdC5hZGQodGhpcy5tYWluLmNvbmZpZy5kaXNhYmxlZCksdC5pbm5lckhUTUw9dGhpcy5tYWluLmNvbmZpZy5wbGFjZWhvbGRlclRleHQsdGhpcy5zaW5nbGVTZWxlY3RlZCYmKHRoaXMuc2luZ2xlU2VsZWN0ZWQucGxhY2Vob2xkZXIuaW5uZXJIVE1MPXQub3V0ZXJIVE1MKSk6KHQ9IiIsZSYmKHQ9ZS5pbm5lckhUTUwmJiEwIT09dGhpcy5tYWluLmNvbmZpZy52YWx1ZXNVc2VUZXh0P2UuaW5uZXJIVE1MOmUudGV4dCksdGhpcy5zaW5nbGVTZWxlY3RlZCYmKHRoaXMuc2luZ2xlU2VsZWN0ZWQucGxhY2Vob2xkZXIuaW5uZXJIVE1MPWU/dDoiIikpfSxuLnByb3RvdHlwZS5kZXNlbGVjdD1mdW5jdGlvbigpe3RoaXMuc2luZ2xlU2VsZWN0ZWQmJih0aGlzLm1haW4uY29uZmlnLmFsbG93RGVzZWxlY3QmJiIiIT09dGhpcy5tYWluLnNlbGVjdGVkKCk/dGhpcy5zaW5nbGVTZWxlY3RlZC5kZXNlbGVjdC5jbGFzc0xpc3QucmVtb3ZlKCJzcy1oaWRlIik6dGhpcy5zaW5nbGVTZWxlY3RlZC5kZXNlbGVjdC5jbGFzc0xpc3QuYWRkKCJzcy1oaWRlIikpfSxuLnByb3RvdHlwZS5tdWx0aVNlbGVjdGVkRGl2PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NMaXN0LmFkZCh0aGlzLm1haW4uY29uZmlnLm11bHRpU2VsZWN0ZWQpO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NMaXN0LmFkZCh0aGlzLm1haW4uY29uZmlnLnZhbHVlcyksZS5hcHBlbmRDaGlsZChpKTt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzLmNsYXNzTGlzdC5hZGQodGhpcy5tYWluLmNvbmZpZy5hZGQpO3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtyZXR1cm4gYS5jbGFzc0xpc3QuYWRkKHRoaXMubWFpbi5jb25maWcucGx1cyksYS5vbmNsaWNrPWZ1bmN0aW9uKGUpe3QubWFpbi5kYXRhLmNvbnRlbnRPcGVuJiYodC5tYWluLmNsb3NlKCksZS5zdG9wUHJvcGFnYXRpb24oKSl9LHMuYXBwZW5kQ2hpbGQoYSksZS5hcHBlbmRDaGlsZChzKSxlLm9uY2xpY2s9ZnVuY3Rpb24oZSl7dC5tYWluLmNvbmZpZy5pc0VuYWJsZWQmJihlLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnModC5tYWluLmNvbmZpZy52YWx1ZURlbGV0ZSl8fCh0Lm1haW4uZGF0YS5jb250ZW50T3Blbj90Lm1haW4uY2xvc2UoKTp0Lm1haW4ub3BlbigpKSl9LHtjb250YWluZXI6ZSx2YWx1ZXM6aSxhZGQ6cyxwbHVzOmF9fSxuLnByb3RvdHlwZS52YWx1ZXM9ZnVuY3Rpb24oKXtpZih0aGlzLm11bHRpU2VsZWN0ZWQpe2Zvcih2YXIgdD10aGlzLm11bHRpU2VsZWN0ZWQudmFsdWVzLmNoaWxkTm9kZXMsZT10aGlzLm1haW4uZGF0YS5nZXRTZWxlY3RlZCgpLGk9W10scz0wLGE9dDtzPGEubGVuZ3RoO3MrKyl7Zm9yKHZhciBuPWFbc10scj0hMCxvPTAsbD1lO288bC5sZW5ndGg7bysrKXt2YXIgYz1sW29dO1N0cmluZyhjLmlkKT09PVN0cmluZyhuLmRhdGFzZXQuaWQpJiYocj0hMSl9ciYmaS5wdXNoKG4pfWZvcih2YXIgaD0wLGQ9aTtoPGQubGVuZ3RoO2grKyl7dmFyIHU9ZFtoXTt1LmNsYXNzTGlzdC5hZGQoInNzLW91dCIpLHRoaXMubXVsdGlTZWxlY3RlZC52YWx1ZXMucmVtb3ZlQ2hpbGQodSl9dmFyIHA7Zm9yKHQ9dGhpcy5tdWx0aVNlbGVjdGVkLnZhbHVlcy5jaGlsZE5vZGVzLGM9MDtjPGUubGVuZ3RoO2MrKyl7cj0hMTtmb3IodmFyIGc9MCxmPXQ7ZzxmLmxlbmd0aDtnKyspbj1mW2ddLFN0cmluZyhlW2NdLmlkKT09PVN0cmluZyhuLmRhdGFzZXQuaWQpJiYocj0hMCk7cnx8KDAhPT10Lmxlbmd0aCYmSFRNTEVsZW1lbnQucHJvdG90eXBlLmluc2VydEFkamFjZW50RWxlbWVudD8wPT09Yz90aGlzLm11bHRpU2VsZWN0ZWQudmFsdWVzLmluc2VydEJlZm9yZSh0aGlzLnZhbHVlRGl2KGVbY10pLHRbY10pOnRbYy0xXS5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIix0aGlzLnZhbHVlRGl2KGVbY10pKTp0aGlzLm11bHRpU2VsZWN0ZWQudmFsdWVzLmFwcGVuZENoaWxkKHRoaXMudmFsdWVEaXYoZVtjXSkpKX0wPT09ZS5sZW5ndGgmJigocD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpLmNsYXNzTGlzdC5hZGQodGhpcy5tYWluLmNvbmZpZy5kaXNhYmxlZCkscC5pbm5lckhUTUw9dGhpcy5tYWluLmNvbmZpZy5wbGFjZWhvbGRlclRleHQsdGhpcy5tdWx0aVNlbGVjdGVkLnZhbHVlcy5pbm5lckhUTUw9cC5vdXRlckhUTUwpfX0sbi5wcm90b3R5cGUudmFsdWVEaXY9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NMaXN0LmFkZCh0aGlzLm1haW4uY29uZmlnLnZhbHVlKSxpLmRhdGFzZXQuaWQ9dC5pZDt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7cmV0dXJuIHMuY2xhc3NMaXN0LmFkZCh0aGlzLm1haW4uY29uZmlnLnZhbHVlVGV4dCkscy5pbm5lckhUTUw9dC5pbm5lckhUTUwmJiEwIT09dGhpcy5tYWluLmNvbmZpZy52YWx1ZXNVc2VUZXh0P3QuaW5uZXJIVE1MOnQudGV4dCxpLmFwcGVuZENoaWxkKHMpLHQubWFuZGF0b3J5fHwoKHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKS5jbGFzc0xpc3QuYWRkKHRoaXMubWFpbi5jb25maWcudmFsdWVEZWxldGUpLHMuaW5uZXJIVE1MPXRoaXMubWFpbi5jb25maWcuZGVzZWxlY3RMYWJlbCxzLm9uY2xpY2s9ZnVuY3Rpb24oaSl7aS5wcmV2ZW50RGVmYXVsdCgpLGkuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIHM9ITE7aWYoZS5tYWluLmJlZm9yZU9uQ2hhbmdlfHwocz0hMCksZS5tYWluLmJlZm9yZU9uQ2hhbmdlKXtpPWUubWFpbi5kYXRhLmdldFNlbGVjdGVkKCk7Zm9yKHZhciBhPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaSkpLG49MDtuPGEubGVuZ3RoO24rKylhW25dLmlkPT09dC5pZCYmYS5zcGxpY2UobiwxKTshMSE9PWUubWFpbi5iZWZvcmVPbkNoYW5nZShhKSYmKHM9ITApfXMmJihlLm1haW4uZGF0YS5yZW1vdmVGcm9tU2VsZWN0ZWQodC5pZCwiaWQiKSxlLm1haW4ucmVuZGVyKCksZS5tYWluLnNlbGVjdC5zZXRWYWx1ZSgpLGUubWFpbi5kYXRhLm9uRGF0YUNoYW5nZSgpKX0saS5hcHBlbmRDaGlsZChzKSksaX0sbi5wcm90b3R5cGUuY29udGVudERpdj1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LmNsYXNzTGlzdC5hZGQodGhpcy5tYWluLmNvbmZpZy5jb250ZW50KSx0fSxuLnByb3RvdHlwZS5zZWFyY2hEaXY9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc0xpc3QuYWRkKHRoaXMubWFpbi5jb25maWcuc2VhcmNoKTt2YXIgbj17Y29udGFpbmVyOmUsaW5wdXQ6aX07cmV0dXJuIHRoaXMubWFpbi5jb25maWcuc2hvd1NlYXJjaHx8KGUuY2xhc3NMaXN0LmFkZCh0aGlzLm1haW4uY29uZmlnLmhpZGUpLGkucmVhZE9ubHk9ITApLGkudHlwZT0ic2VhcmNoIixpLnBsYWNlaG9sZGVyPXRoaXMubWFpbi5jb25maWcuc2VhcmNoUGxhY2Vob2xkZXIsaS50YWJJbmRleD0wLGkuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix0aGlzLm1haW4uY29uZmlnLnNlYXJjaFBsYWNlaG9sZGVyKSxpLnNldEF0dHJpYnV0ZSgiYXV0b2NhcGl0YWxpemUiLCJvZmYiKSxpLnNldEF0dHJpYnV0ZSgiYXV0b2NvbXBsZXRlIiwib2ZmIiksaS5zZXRBdHRyaWJ1dGUoImF1dG9jb3JyZWN0Iiwib2ZmIiksaS5vbmNsaWNrPWZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7IiI9PT1lLnRhcmdldC52YWx1ZSYmdC5tYWluLnNlYXJjaCgiIil9KSwxMCl9LGkub25rZXlkb3duPWZ1bmN0aW9uKGUpeyJBcnJvd1VwIj09PWUua2V5Pyh0Lm1haW4ub3BlbigpLHQuaGlnaGxpZ2h0VXAoKSxlLnByZXZlbnREZWZhdWx0KCkpOiJBcnJvd0Rvd24iPT09ZS5rZXk/KHQubWFpbi5vcGVuKCksdC5oaWdobGlnaHREb3duKCksZS5wcmV2ZW50RGVmYXVsdCgpKToiVGFiIj09PWUua2V5P3QubWFpbi5kYXRhLmNvbnRlbnRPcGVuP3QubWFpbi5jbG9zZSgpOnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dC5tYWluLmNsb3NlKCl9KSx0Lm1haW4uY29uZmlnLnRpbWVvdXREZWxheSk6IkVudGVyIj09PWUua2V5JiZlLnByZXZlbnREZWZhdWx0KCl9LGkub25rZXl1cD1mdW5jdGlvbihlKXt2YXIgYT1lLnRhcmdldDtpZigiRW50ZXIiPT09ZS5rZXkpe2lmKHQubWFpbi5hZGRhYmxlJiZlLmN0cmxLZXkpcmV0dXJuIHMuY2xpY2soKSxlLnByZXZlbnREZWZhdWx0KCksdm9pZCBlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBuPXQubGlzdC5xdWVyeVNlbGVjdG9yKCIuIit0Lm1haW4uY29uZmlnLmhpZ2hsaWdodGVkKTtuJiZuLmNsaWNrKCl9ZWxzZSJBcnJvd1VwIj09PWUua2V5fHwiQXJyb3dEb3duIj09PWUua2V5fHwoIkVzY2FwZSI9PT1lLmtleT90Lm1haW4uY2xvc2UoKTp0Lm1haW4uY29uZmlnLnNob3dTZWFyY2gmJnQubWFpbi5kYXRhLmNvbnRlbnRPcGVuP3QubWFpbi5zZWFyY2goYS52YWx1ZSk6aS52YWx1ZT0iIik7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCl9LGkub25mb2N1cz1mdW5jdGlvbigpe3QubWFpbi5vcGVuKCl9LGUuYXBwZW5kQ2hpbGQoaSksdGhpcy5tYWluLmFkZGFibGUmJihzLmNsYXNzTGlzdC5hZGQodGhpcy5tYWluLmNvbmZpZy5hZGRhYmxlKSxzLmlubmVySFRNTD0iKyIscy5vbmNsaWNrPWZ1bmN0aW9uKGUpe3ZhciBpO3QubWFpbi5hZGRhYmxlJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksIiIhPT0oZT10LnNlYXJjaC5pbnB1dC52YWx1ZSkudHJpbSgpPyhlPXQubWFpbi5hZGRhYmxlKGUpLGk9IiIsZSYmKCJvYmplY3QiPT10eXBlb2YgZT8oMCxhLnZhbGlkYXRlT3B0aW9uKShlKSYmKHQubWFpbi5hZGREYXRhKGUpLGk9ZS52YWx1ZXx8ZS50ZXh0KToodC5tYWluLmFkZERhdGEodC5tYWluLmRhdGEubmV3T3B0aW9uKHt0ZXh0OmUsdmFsdWU6ZX0pKSxpPWUpLHQubWFpbi5zZWFyY2goIiIpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dC5tYWluLnNldChpLCJ2YWx1ZSIsITEsITEpfSksMTAwKSx0Lm1haW4uY29uZmlnLmNsb3NlT25TZWxlY3QmJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dC5tYWluLmNsb3NlKCl9KSwxMDApKSk6dC5zZWFyY2guaW5wdXQuZm9jdXMoKSl9LGUuYXBwZW5kQ2hpbGQocyksbi5hZGRhYmxlPXMpLG59LG4ucHJvdG90eXBlLmhpZ2hsaWdodFVwPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5saXN0LnF1ZXJ5U2VsZWN0b3IoIi4iK3RoaXMubWFpbi5jb25maWcuaGlnaGxpZ2h0ZWQpLGU9bnVsbDtpZih0KWZvcihlPXQucHJldmlvdXNTaWJsaW5nO251bGwhPT1lJiZlLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLm1haW4uY29uZmlnLmRpc2FibGVkKTspZT1lLnByZXZpb3VzU2libGluZztlbHNle3ZhciBpPXRoaXMubGlzdC5xdWVyeVNlbGVjdG9yQWxsKCIuIit0aGlzLm1haW4uY29uZmlnLm9wdGlvbisiOm5vdCguIit0aGlzLm1haW4uY29uZmlnLmRpc2FibGVkKyIpIik7ZT1pW2kubGVuZ3RoLTFdfW51bGwhPT0oZT1lJiZlLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLm1haW4uY29uZmlnLm9wdGdyb3VwTGFiZWwpP251bGw6ZSl8fChpPXQucGFyZW50Tm9kZSkuY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMubWFpbi5jb25maWcub3B0Z3JvdXApJiYoIWkucHJldmlvdXNTaWJsaW5nfHwoaT1pLnByZXZpb3VzU2libGluZy5xdWVyeVNlbGVjdG9yQWxsKCIuIit0aGlzLm1haW4uY29uZmlnLm9wdGlvbisiOm5vdCguIit0aGlzLm1haW4uY29uZmlnLmRpc2FibGVkKyIpIikpLmxlbmd0aCYmKGU9aVtpLmxlbmd0aC0xXSkpLGUmJih0JiZ0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5tYWluLmNvbmZpZy5oaWdobGlnaHRlZCksZS5jbGFzc0xpc3QuYWRkKHRoaXMubWFpbi5jb25maWcuaGlnaGxpZ2h0ZWQpLCgwLHMuZW5zdXJlRWxlbWVudEluVmlldykodGhpcy5saXN0LGUpKX0sbi5wcm90b3R5cGUuaGlnaGxpZ2h0RG93bj1mdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5saXN0LnF1ZXJ5U2VsZWN0b3IoIi4iK3RoaXMubWFpbi5jb25maWcuaGlnaGxpZ2h0ZWQpLGk9bnVsbDtpZihlKWZvcihpPWUubmV4dFNpYmxpbmc7bnVsbCE9PWkmJmkuY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMubWFpbi5jb25maWcuZGlzYWJsZWQpOylpPWkubmV4dFNpYmxpbmc7ZWxzZSBpPXRoaXMubGlzdC5xdWVyeVNlbGVjdG9yKCIuIit0aGlzLm1haW4uY29uZmlnLm9wdGlvbisiOm5vdCguIit0aGlzLm1haW4uY29uZmlnLmRpc2FibGVkKyIpIik7bnVsbCE9PWl8fG51bGw9PT1lfHwodD1lLnBhcmVudE5vZGUpLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLm1haW4uY29uZmlnLm9wdGdyb3VwKSYmdC5uZXh0U2libGluZyYmKGk9dC5uZXh0U2libGluZy5xdWVyeVNlbGVjdG9yKCIuIit0aGlzLm1haW4uY29uZmlnLm9wdGlvbisiOm5vdCguIit0aGlzLm1haW4uY29uZmlnLmRpc2FibGVkKyIpIikpLGkmJihlJiZlLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5tYWluLmNvbmZpZy5oaWdobGlnaHRlZCksaS5jbGFzc0xpc3QuYWRkKHRoaXMubWFpbi5jb25maWcuaGlnaGxpZ2h0ZWQpLCgwLHMuZW5zdXJlRWxlbWVudEluVmlldykodGhpcy5saXN0LGkpKX0sbi5wcm90b3R5cGUubGlzdERpdj1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LmNsYXNzTGlzdC5hZGQodGhpcy5tYWluLmNvbmZpZy5saXN0KSx0LnNldEF0dHJpYnV0ZSgicm9sZSIsImxpc3Rib3giKSx0fSxuLnByb3RvdHlwZS5vcHRpb25zPWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PSIiKTt2YXIgZT10aGlzLm1haW4uZGF0YS5maWx0ZXJlZHx8dGhpcy5tYWluLmRhdGEuZGF0YTtpZigodGhpcy5saXN0LmlubmVySFRNTD0iIikhPT10KXJldHVybihpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5jbGFzc0xpc3QuYWRkKHRoaXMubWFpbi5jb25maWcub3B0aW9uKSxpLmNsYXNzTGlzdC5hZGQodGhpcy5tYWluLmNvbmZpZy5kaXNhYmxlZCksaS5pbm5lckhUTUw9dCx2b2lkIHRoaXMubGlzdC5hcHBlbmRDaGlsZChpKTtpZih0aGlzLm1haW4uY29uZmlnLmlzQWpheCYmdGhpcy5tYWluLmNvbmZpZy5pc1NlYXJjaGluZylyZXR1cm4oaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuY2xhc3NMaXN0LmFkZCh0aGlzLm1haW4uY29uZmlnLm9wdGlvbiksaS5jbGFzc0xpc3QuYWRkKHRoaXMubWFpbi5jb25maWcuZGlzYWJsZWQpLGkuaW5uZXJIVE1MPXRoaXMubWFpbi5jb25maWcuc2VhcmNoaW5nVGV4dCx2b2lkIHRoaXMubGlzdC5hcHBlbmRDaGlsZChpKTtpZigwPT09ZS5sZW5ndGgpe3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBpLmNsYXNzTGlzdC5hZGQodGhpcy5tYWluLmNvbmZpZy5vcHRpb24pLGkuY2xhc3NMaXN0LmFkZCh0aGlzLm1haW4uY29uZmlnLmRpc2FibGVkKSxpLmlubmVySFRNTD10aGlzLm1haW4uY29uZmlnLnNlYXJjaFRleHQsdm9pZCB0aGlzLmxpc3QuYXBwZW5kQ2hpbGQoaSl9Zm9yKHZhciBzPXRoaXMsYT0wLG49ZTthPG4ubGVuZ3RoO2ErKykhZnVuY3Rpb24odCl7aWYodC5oYXNPd25Qcm9wZXJ0eSgibGFiZWwiKSl7dmFyIGU9dCxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NMaXN0LmFkZChzLm1haW4uY29uZmlnLm9wdGdyb3VwKTt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZihhLmNsYXNzTGlzdC5hZGQocy5tYWluLmNvbmZpZy5vcHRncm91cExhYmVsKSxzLm1haW4uY29uZmlnLnNlbGVjdEJ5R3JvdXAmJnMubWFpbi5jb25maWcuaXNNdWx0aXBsZSYmYS5jbGFzc0xpc3QuYWRkKHMubWFpbi5jb25maWcub3B0Z3JvdXBMYWJlbFNlbGVjdGFibGUpLGEuaW5uZXJIVE1MPWUubGFiZWwsaS5hcHBlbmRDaGlsZChhKSxlPWUub3B0aW9ucyl7Zm9yKHZhciBuLHI9MCxvPWU7cjxvLmxlbmd0aDtyKyspe3ZhciBsPW9bcl07aS5hcHBlbmRDaGlsZChzLm9wdGlvbihsKSl9cy5tYWluLmNvbmZpZy5zZWxlY3RCeUdyb3VwJiZzLm1haW4uY29uZmlnLmlzTXVsdGlwbGUmJihuPXMsYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpO2Zvcih2YXIgZT0wLHM9aS5jaGlsZHJlbjtlPHMubGVuZ3RoO2UrKyl7dmFyIGE9c1tlXTstMSE9PWEuY2xhc3NOYW1lLmluZGV4T2Yobi5tYWluLmNvbmZpZy5vcHRpb24pJiZhLmNsaWNrKCl9fSkpKX1zLmxpc3QuYXBwZW5kQ2hpbGQoaSl9ZWxzZSBzLmxpc3QuYXBwZW5kQ2hpbGQocy5vcHRpb24odCkpfShuW2FdKX0sbi5wcm90b3R5cGUub3B0aW9uPWZ1bmN0aW9uKHQpe2lmKHQucGxhY2Vob2xkZXIpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLmNsYXNzTGlzdC5hZGQodGhpcy5tYWluLmNvbmZpZy5vcHRpb24pLGUuY2xhc3NMaXN0LmFkZCh0aGlzLm1haW4uY29uZmlnLmhpZGUpLGV9dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5jbGFzc0xpc3QuYWRkKHRoaXMubWFpbi5jb25maWcub3B0aW9uKSxpLnNldEF0dHJpYnV0ZSgicm9sZSIsIm9wdGlvbiIpLHQuY2xhc3MmJnQuY2xhc3Muc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbih0KXtpLmNsYXNzTGlzdC5hZGQodCl9KSksdC5zdHlsZSYmKGkuc3R5bGUuY3NzVGV4dD10LnN0eWxlKTt2YXIgYT10aGlzLm1haW4uZGF0YS5nZXRTZWxlY3RlZCgpO2kuZGF0YXNldC5pZD10LmlkLHRoaXMubWFpbi5jb25maWcuc2VhcmNoSGlnaGxpZ2h0JiZ0aGlzLm1haW4uc2xpbSYmdC5pbm5lckhUTUwmJiIiIT09dGhpcy5tYWluLnNsaW0uc2VhcmNoLmlucHV0LnZhbHVlLnRyaW0oKT9pLmlubmVySFRNTD0oMCxzLmhpZ2hsaWdodCkodC5pbm5lckhUTUwsdGhpcy5tYWluLnNsaW0uc2VhcmNoLmlucHV0LnZhbHVlLHRoaXMubWFpbi5jb25maWcuc2VhcmNoSGlnaGxpZ2h0ZXIpOnQuaW5uZXJIVE1MJiYoaS5pbm5lckhUTUw9dC5pbm5lckhUTUwpLHRoaXMubWFpbi5jb25maWcuc2hvd09wdGlvblRvb2x0aXBzJiZpLnRleHRDb250ZW50JiZpLnNldEF0dHJpYnV0ZSgidGl0bGUiLGkudGV4dENvbnRlbnQpO3ZhciBuPXRoaXM7cmV0dXJuIGkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLChmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgaT10aGlzLmRhdGFzZXQuaWQ7aWYoITA9PT10LnNlbGVjdGVkJiZuLm1haW4uY29uZmlnLmFsbG93RGVzZWxlY3RPcHRpb24pe3ZhciBzPSExO2lmKG4ubWFpbi5iZWZvcmVPbkNoYW5nZSYmbi5tYWluLmNvbmZpZy5pc011bHRpcGxlfHwocz0hMCksbi5tYWluLmJlZm9yZU9uQ2hhbmdlJiZuLm1haW4uY29uZmlnLmlzTXVsdGlwbGUpe2Zvcih2YXIgcj1uLm1haW4uZGF0YS5nZXRTZWxlY3RlZCgpLG89SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyKSksbD0wO2w8by5sZW5ndGg7bCsrKW9bbF0uaWQ9PT1pJiZvLnNwbGljZShsLDEpOyExIT09bi5tYWluLmJlZm9yZU9uQ2hhbmdlKG8pJiYocz0hMCl9cyYmKG4ubWFpbi5jb25maWcuaXNNdWx0aXBsZT8obi5tYWluLmRhdGEucmVtb3ZlRnJvbVNlbGVjdGVkKGksImlkIiksbi5tYWluLnJlbmRlcigpLG4ubWFpbi5zZWxlY3Quc2V0VmFsdWUoKSxuLm1haW4uZGF0YS5vbkRhdGFDaGFuZ2UoKSk6bi5tYWluLnNldCgiIikpfWVsc2UgdC5kaXNhYmxlZHx8dC5zZWxlY3RlZHx8bi5tYWluLmNvbmZpZy5saW1pdCYmQXJyYXkuaXNBcnJheShhKSYmbi5tYWluLmNvbmZpZy5saW1pdDw9YS5sZW5ndGh8fChuLm1haW4uYmVmb3JlT25DaGFuZ2U/KHI9dm9pZCAwLChzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobi5tYWluLmRhdGEuZ2V0T2JqZWN0RnJvbURhdGEoaSkpKSkuc2VsZWN0ZWQ9ITAsbi5tYWluLmNvbmZpZy5pc011bHRpcGxlPyhyPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYSkpKS5wdXNoKHMpOnI9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzKSksITEhPT1uLm1haW4uYmVmb3JlT25DaGFuZ2UocikmJm4ubWFpbi5zZXQoaSwiaWQiLG4ubWFpbi5jb25maWcuY2xvc2VPblNlbGVjdCkpOm4ubWFpbi5zZXQoaSwiaWQiLG4ubWFpbi5jb25maWcuY2xvc2VPblNlbGVjdCkpfSkpLGU9YSYmKDAscy5pc1ZhbHVlSW5BcnJheU9mT2JqZWN0cykoYSwiaWQiLHQuaWQpLCh0LmRpc2FibGVkfHxlKSYmKGkub25jbGljaz1udWxsLG4ubWFpbi5jb25maWcuYWxsb3dEZXNlbGVjdE9wdGlvbnx8aS5jbGFzc0xpc3QuYWRkKHRoaXMubWFpbi5jb25maWcuZGlzYWJsZWQpLG4ubWFpbi5jb25maWcuaGlkZVNlbGVjdGVkT3B0aW9uJiZpLmNsYXNzTGlzdC5hZGQodGhpcy5tYWluLmNvbmZpZy5oaWRlKSksZT9pLmNsYXNzTGlzdC5hZGQodGhpcy5tYWluLmNvbmZpZy5vcHRpb25TZWxlY3RlZCk6aS5jbGFzc0xpc3QucmVtb3ZlKHRoaXMubWFpbi5jb25maWcub3B0aW9uU2VsZWN0ZWQpLGl9LGk9bixlLlNsaW09aX1dLHQuYz1pLHQuZD1mdW5jdGlvbihlLGkscyl7dC5vKGUsaSl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkse2VudW1lcmFibGU6ITAsZ2V0OnN9KX0sdC5yPWZ1bmN0aW9uKHQpeyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LHQudD1mdW5jdGlvbihlLGkpe2lmKDEmaSYmKGU9dChlKSksOCZpKXJldHVybiBlO2lmKDQmaSYmIm9iamVjdCI9PXR5cGVvZiBlJiZlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHM9T2JqZWN0LmNyZWF0ZShudWxsKTtpZih0LnIocyksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOmV9KSwyJmkmJiJzdHJpbmciIT10eXBlb2YgZSlmb3IodmFyIGEgaW4gZSl0LmQocyxhLGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfS5iaW5kKG51bGwsYSkpO3JldHVybiBzfSx0Lm49ZnVuY3Rpb24oZSl7dmFyIGk9ZSYmZS5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGUuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIHQuZChpLCJhIixpKSxpfSx0Lm89ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9LHQucD0iIix0KHQucz0yKS5kZWZhdWx0O2Z1bmN0aW9uIHQocyl7aWYoaVtzXSlyZXR1cm4gaVtzXS5leHBvcnRzO3ZhciBhPWlbc109e2k6cyxsOiExLGV4cG9ydHM6e319O3JldHVybiBlW3NdLmNhbGwoYS5leHBvcnRzLGEsYS5leHBvcnRzLHQpLGEubD0hMCxhLmV4cG9ydHN9dmFyIGUsaX0sIm9iamVjdCI9PXR5cGVvZiBhJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1zKCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10scyk6Im9iamVjdCI9PXR5cGVvZiBhP2EuU2xpbVNlbGVjdD1zKCk6aS5TbGltU2VsZWN0PXMoKSxlLlo9YS5TbGltU2VsZWN0fSw1MTpmdW5jdGlvbih0LGUsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHModCl7cmV0dXJuIG51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHQmJiJjb25zdHJ1Y3RvciJpbiB0JiZ0LmNvbnN0cnVjdG9yPT09T2JqZWN0fWZ1bmN0aW9uIGEodD17fSxlPXt9KXtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChpPT57dm9pZCAwPT09dFtpXT90W2ldPWVbaV06cyhlW2ldKSYmcyh0W2ldKSYmT2JqZWN0LmtleXMoZVtpXSkubGVuZ3RoPjAmJmEodFtpXSxlW2ldKX0pKX1pLmQoZSx7cHQ6ZnVuY3Rpb24oKXtyZXR1cm4gS30sb006ZnVuY3Rpb24oKXtyZXR1cm4gWn0sTFc6ZnVuY3Rpb24oKXtyZXR1cm4gcX0sWlA6ZnVuY3Rpb24oKXtyZXR1cm4gVX19KTtjb25zdCBuPXtib2R5Ont9LGFkZEV2ZW50TGlzdGVuZXIoKXt9LHJlbW92ZUV2ZW50TGlzdGVuZXIoKXt9LGFjdGl2ZUVsZW1lbnQ6e2JsdXIoKXt9LG5vZGVOYW1lOiIifSxxdWVyeVNlbGVjdG9yOigpPT5udWxsLHF1ZXJ5U2VsZWN0b3JBbGw6KCk9PltdLGdldEVsZW1lbnRCeUlkOigpPT5udWxsLGNyZWF0ZUV2ZW50OigpPT4oe2luaXRFdmVudCgpe319KSxjcmVhdGVFbGVtZW50OigpPT4oe2NoaWxkcmVuOltdLGNoaWxkTm9kZXM6W10sc3R5bGU6e30sc2V0QXR0cmlidXRlKCl7fSxnZXRFbGVtZW50c0J5VGFnTmFtZTooKT0+W119KSxjcmVhdGVFbGVtZW50TlM6KCk9Pih7fSksaW1wb3J0Tm9kZTooKT0+bnVsbCxsb2NhdGlvbjp7aGFzaDoiIixob3N0OiIiLGhvc3RuYW1lOiIiLGhyZWY6IiIsb3JpZ2luOiIiLHBhdGhuYW1lOiIiLHByb3RvY29sOiIiLHNlYXJjaDoiIn19O2Z1bmN0aW9uIHIoKXtjb25zdCB0PSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6e307cmV0dXJuIGEodCxuKSx0fWNvbnN0IG89e2RvY3VtZW50Om4sbmF2aWdhdG9yOnt1c2VyQWdlbnQ6IiJ9LGxvY2F0aW9uOntoYXNoOiIiLGhvc3Q6IiIsaG9zdG5hbWU6IiIsaHJlZjoiIixvcmlnaW46IiIscGF0aG5hbWU6IiIscHJvdG9jb2w6IiIsc2VhcmNoOiIifSxoaXN0b3J5OntyZXBsYWNlU3RhdGUoKXt9LHB1c2hTdGF0ZSgpe30sZ28oKXt9LGJhY2soKXt9fSxDdXN0b21FdmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxhZGRFdmVudExpc3RlbmVyKCl7fSxyZW1vdmVFdmVudExpc3RlbmVyKCl7fSxnZXRDb21wdXRlZFN0eWxlOigpPT4oe2dldFByb3BlcnR5VmFsdWU6KCk9PiIifSksSW1hZ2UoKXt9LERhdGUoKXt9LHNjcmVlbjp7fSxzZXRUaW1lb3V0KCl7fSxjbGVhclRpbWVvdXQoKXt9LG1hdGNoTWVkaWE6KCk9Pih7fSkscmVxdWVzdEFuaW1hdGlvbkZyYW1lOnQ9PiJ1bmRlZmluZWQiPT10eXBlb2Ygc2V0VGltZW91dD8odCgpLG51bGwpOnNldFRpbWVvdXQodCwwKSxjYW5jZWxBbmltYXRpb25GcmFtZSh0KXsidW5kZWZpbmVkIiE9dHlwZW9mIHNldFRpbWVvdXQmJmNsZWFyVGltZW91dCh0KX19O2Z1bmN0aW9uIGwoKXtjb25zdCB0PSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fTtyZXR1cm4gYSh0LG8pLHR9Y2xhc3MgYyBleHRlbmRzIEFycmF5e2NvbnN0cnVjdG9yKHQpeyJudW1iZXIiPT10eXBlb2YgdD9zdXBlcih0KTooc3VwZXIoLi4udHx8W10pLGZ1bmN0aW9uKHQpe2NvbnN0IGU9dC5fX3Byb3RvX187T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fcHJvdG9fXyIse2dldDooKT0+ZSxzZXQodCl7ZS5fX3Byb3RvX189dH19KX0odGhpcykpfX1mdW5jdGlvbiBoKHQ9W10pe2NvbnN0IGU9W107cmV0dXJuIHQuZm9yRWFjaCgodD0+e0FycmF5LmlzQXJyYXkodCk/ZS5wdXNoKC4uLmgodCkpOmUucHVzaCh0KX0pKSxlfWZ1bmN0aW9uIGQodCxlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHQsZSl9ZnVuY3Rpb24gdSh0LGUpe2NvbnN0IGk9bCgpLHM9cigpO2xldCBhPVtdO2lmKCFlJiZ0IGluc3RhbmNlb2YgYylyZXR1cm4gdDtpZighdClyZXR1cm4gbmV3IGMoYSk7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtjb25zdCBpPXQudHJpbSgpO2lmKGkuaW5kZXhPZigiPCIpPj0wJiZpLmluZGV4T2YoIj4iKT49MCl7bGV0IHQ9ImRpdiI7MD09PWkuaW5kZXhPZigiPGxpIikmJih0PSJ1bCIpLDA9PT1pLmluZGV4T2YoIjx0ciIpJiYodD0idGJvZHkiKSwwIT09aS5pbmRleE9mKCI8dGQiKSYmMCE9PWkuaW5kZXhPZigiPHRoIil8fCh0PSJ0ciIpLDA9PT1pLmluZGV4T2YoIjx0Ym9keSIpJiYodD0idGFibGUiKSwwPT09aS5pbmRleE9mKCI8b3B0aW9uIikmJih0PSJzZWxlY3QiKTtjb25zdCBlPXMuY3JlYXRlRWxlbWVudCh0KTtlLmlubmVySFRNTD1pO2ZvcihsZXQgdD0wO3Q8ZS5jaGlsZE5vZGVzLmxlbmd0aDt0Kz0xKWEucHVzaChlLmNoaWxkTm9kZXNbdF0pfWVsc2UgYT1mdW5jdGlvbih0LGUpe2lmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm5bdF07Y29uc3QgaT1bXSxzPWUucXVlcnlTZWxlY3RvckFsbCh0KTtmb3IobGV0IHQ9MDt0PHMubGVuZ3RoO3QrPTEpaS5wdXNoKHNbdF0pO3JldHVybiBpfSh0LnRyaW0oKSxlfHxzKX1lbHNlIGlmKHQubm9kZVR5cGV8fHQ9PT1pfHx0PT09cylhLnB1c2godCk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXtpZih0IGluc3RhbmNlb2YgYylyZXR1cm4gdDthPXR9cmV0dXJuIG5ldyBjKGZ1bmN0aW9uKHQpe2NvbnN0IGU9W107Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKz0xKS0xPT09ZS5pbmRleE9mKHRbaV0pJiZlLnB1c2godFtpXSk7cmV0dXJuIGV9KGEpKX11LmZuPWMucHJvdG90eXBlO2NvbnN0IHA9InJlc2l6ZSBzY3JvbGwiLnNwbGl0KCIgIik7ZnVuY3Rpb24gZyh0KXtyZXR1cm4gZnVuY3Rpb24oLi4uZSl7aWYodm9pZCAwPT09ZVswXSl7Zm9yKGxldCBlPTA7ZTx0aGlzLmxlbmd0aDtlKz0xKXAuaW5kZXhPZih0KTwwJiYodCBpbiB0aGlzW2VdP3RoaXNbZV1bdF0oKTp1KHRoaXNbZV0pLnRyaWdnZXIodCkpO3JldHVybiB0aGlzfXJldHVybiB0aGlzLm9uKHQsLi4uZSl9fWcoImNsaWNrIiksZygiYmx1ciIpLGcoImZvY3VzIiksZygiZm9jdXNpbiIpLGcoImZvY3Vzb3V0IiksZygia2V5dXAiKSxnKCJrZXlkb3duIiksZygia2V5cHJlc3MiKSxnKCJzdWJtaXQiKSxnKCJjaGFuZ2UiKSxnKCJtb3VzZWRvd24iKSxnKCJtb3VzZW1vdmUiKSxnKCJtb3VzZXVwIiksZygibW91c2VlbnRlciIpLGcoIm1vdXNlbGVhdmUiKSxnKCJtb3VzZW91dCIpLGcoIm1vdXNlb3ZlciIpLGcoInRvdWNoc3RhcnQiKSxnKCJ0b3VjaGVuZCIpLGcoInRvdWNobW92ZSIpLGcoInJlc2l6ZSIpLGcoInNjcm9sbCIpO2NvbnN0IGY9e2FkZENsYXNzOmZ1bmN0aW9uKC4uLnQpe2NvbnN0IGU9aCh0Lm1hcCgodD0+dC5zcGxpdCgiICIpKSkpO3JldHVybiB0aGlzLmZvckVhY2goKHQ9Pnt0LmNsYXNzTGlzdC5hZGQoLi4uZSl9KSksdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oLi4udCl7Y29uc3QgZT1oKHQubWFwKCh0PT50LnNwbGl0KCIgIikpKSk7cmV0dXJuIHRoaXMuZm9yRWFjaCgodD0+e3QuY2xhc3NMaXN0LnJlbW92ZSguLi5lKX0pKSx0aGlzfSxoYXNDbGFzczpmdW5jdGlvbiguLi50KXtjb25zdCBlPWgodC5tYXAoKHQ9PnQuc3BsaXQoIiAiKSkpKTtyZXR1cm4gZCh0aGlzLCh0PT5lLmZpbHRlcigoZT0+dC5jbGFzc0xpc3QuY29udGFpbnMoZSkpKS5sZW5ndGg+MCkpLmxlbmd0aD4wfSx0b2dnbGVDbGFzczpmdW5jdGlvbiguLi50KXtjb25zdCBlPWgodC5tYXAoKHQ9PnQuc3BsaXQoIiAiKSkpKTt0aGlzLmZvckVhY2goKHQ9PntlLmZvckVhY2goKGU9Pnt0LmNsYXNzTGlzdC50b2dnbGUoZSl9KSl9KSl9LGF0dHI6ZnVuY3Rpb24odCxlKXtpZigxPT09YXJndW1lbnRzLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0aGlzWzBdP3RoaXNbMF0uZ2V0QXR0cmlidXRlKHQpOnZvaWQgMDtmb3IobGV0IGk9MDtpPHRoaXMubGVuZ3RoO2krPTEpaWYoMj09PWFyZ3VtZW50cy5sZW5ndGgpdGhpc1tpXS5zZXRBdHRyaWJ1dGUodCxlKTtlbHNlIGZvcihjb25zdCBlIGluIHQpdGhpc1tpXVtlXT10W2VdLHRoaXNbaV0uc2V0QXR0cmlidXRlKGUsdFtlXSk7cmV0dXJuIHRoaXN9LHJlbW92ZUF0dHI6ZnVuY3Rpb24odCl7Zm9yKGxldCBlPTA7ZTx0aGlzLmxlbmd0aDtlKz0xKXRoaXNbZV0ucmVtb3ZlQXR0cmlidXRlKHQpO3JldHVybiB0aGlzfSx0cmFuc2Zvcm06ZnVuY3Rpb24odCl7Zm9yKGxldCBlPTA7ZTx0aGlzLmxlbmd0aDtlKz0xKXRoaXNbZV0uc3R5bGUudHJhbnNmb3JtPXQ7cmV0dXJuIHRoaXN9LHRyYW5zaXRpb246ZnVuY3Rpb24odCl7Zm9yKGxldCBlPTA7ZTx0aGlzLmxlbmd0aDtlKz0xKXRoaXNbZV0uc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uPSJzdHJpbmciIT10eXBlb2YgdD9gJHt0fW1zYDp0O3JldHVybiB0aGlzfSxvbjpmdW5jdGlvbiguLi50KXtsZXRbZSxpLHMsYV09dDtmdW5jdGlvbiBuKHQpe2NvbnN0IGU9dC50YXJnZXQ7aWYoIWUpcmV0dXJuO2NvbnN0IGE9dC50YXJnZXQuZG9tN0V2ZW50RGF0YXx8W107aWYoYS5pbmRleE9mKHQpPDAmJmEudW5zaGlmdCh0KSx1KGUpLmlzKGkpKXMuYXBwbHkoZSxhKTtlbHNle2NvbnN0IHQ9dShlKS5wYXJlbnRzKCk7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKz0xKXUodFtlXSkuaXMoaSkmJnMuYXBwbHkodFtlXSxhKX19ZnVuY3Rpb24gcih0KXtjb25zdCBlPXQmJnQudGFyZ2V0JiZ0LnRhcmdldC5kb203RXZlbnREYXRhfHxbXTtlLmluZGV4T2YodCk8MCYmZS51bnNoaWZ0KHQpLHMuYXBwbHkodGhpcyxlKX0iZnVuY3Rpb24iPT10eXBlb2YgdFsxXSYmKFtlLHMsYV09dCxpPXZvaWQgMCksYXx8KGE9ITEpO2NvbnN0IG89ZS5zcGxpdCgiICIpO2xldCBsO2ZvcihsZXQgdD0wO3Q8dGhpcy5sZW5ndGg7dCs9MSl7Y29uc3QgZT10aGlzW3RdO2lmKGkpZm9yKGw9MDtsPG8ubGVuZ3RoO2wrPTEpe2NvbnN0IHQ9b1tsXTtlLmRvbTdMaXZlTGlzdGVuZXJzfHwoZS5kb203TGl2ZUxpc3RlbmVycz17fSksZS5kb203TGl2ZUxpc3RlbmVyc1t0XXx8KGUuZG9tN0xpdmVMaXN0ZW5lcnNbdF09W10pLGUuZG9tN0xpdmVMaXN0ZW5lcnNbdF0ucHVzaCh7bGlzdGVuZXI6cyxwcm94eUxpc3RlbmVyOm59KSxlLmFkZEV2ZW50TGlzdGVuZXIodCxuLGEpfWVsc2UgZm9yKGw9MDtsPG8ubGVuZ3RoO2wrPTEpe2NvbnN0IHQ9b1tsXTtlLmRvbTdMaXN0ZW5lcnN8fChlLmRvbTdMaXN0ZW5lcnM9e30pLGUuZG9tN0xpc3RlbmVyc1t0XXx8KGUuZG9tN0xpc3RlbmVyc1t0XT1bXSksZS5kb203TGlzdGVuZXJzW3RdLnB1c2goe2xpc3RlbmVyOnMscHJveHlMaXN0ZW5lcjpyfSksZS5hZGRFdmVudExpc3RlbmVyKHQscixhKX19cmV0dXJuIHRoaXN9LG9mZjpmdW5jdGlvbiguLi50KXtsZXRbZSxpLHMsYV09dDsiZnVuY3Rpb24iPT10eXBlb2YgdFsxXSYmKFtlLHMsYV09dCxpPXZvaWQgMCksYXx8KGE9ITEpO2NvbnN0IG49ZS5zcGxpdCgiICIpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCs9MSl7Y29uc3QgZT1uW3RdO2ZvcihsZXQgdD0wO3Q8dGhpcy5sZW5ndGg7dCs9MSl7Y29uc3Qgbj10aGlzW3RdO2xldCByO2lmKCFpJiZuLmRvbTdMaXN0ZW5lcnM/cj1uLmRvbTdMaXN0ZW5lcnNbZV06aSYmbi5kb203TGl2ZUxpc3RlbmVycyYmKHI9bi5kb203TGl2ZUxpc3RlbmVyc1tlXSksciYmci5sZW5ndGgpZm9yKGxldCB0PXIubGVuZ3RoLTE7dD49MDt0LT0xKXtjb25zdCBpPXJbdF07cyYmaS5saXN0ZW5lcj09PXN8fHMmJmkubGlzdGVuZXImJmkubGlzdGVuZXIuZG9tN3Byb3h5JiZpLmxpc3RlbmVyLmRvbTdwcm94eT09PXM/KG4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLGkucHJveHlMaXN0ZW5lcixhKSxyLnNwbGljZSh0LDEpKTpzfHwobi5yZW1vdmVFdmVudExpc3RlbmVyKGUsaS5wcm94eUxpc3RlbmVyLGEpLHIuc3BsaWNlKHQsMSkpfX19cmV0dXJuIHRoaXN9LHRyaWdnZXI6ZnVuY3Rpb24oLi4udCl7Y29uc3QgZT1sKCksaT10WzBdLnNwbGl0KCIgIikscz10WzFdO2ZvcihsZXQgYT0wO2E8aS5sZW5ndGg7YSs9MSl7Y29uc3Qgbj1pW2FdO2ZvcihsZXQgaT0wO2k8dGhpcy5sZW5ndGg7aSs9MSl7Y29uc3QgYT10aGlzW2ldO2lmKGUuQ3VzdG9tRXZlbnQpe2NvbnN0IGk9bmV3IGUuQ3VzdG9tRXZlbnQobix7ZGV0YWlsOnMsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSk7YS5kb203RXZlbnREYXRhPXQuZmlsdGVyKCgodCxlKT0+ZT4wKSksYS5kaXNwYXRjaEV2ZW50KGkpLGEuZG9tN0V2ZW50RGF0YT1bXSxkZWxldGUgYS5kb203RXZlbnREYXRhfX19cmV0dXJuIHRoaXN9LHRyYW5zaXRpb25FbmQ6ZnVuY3Rpb24odCl7Y29uc3QgZT10aGlzO3JldHVybiB0JiZlLm9uKCJ0cmFuc2l0aW9uZW5kIiwoZnVuY3Rpb24gaShzKXtzLnRhcmdldD09PXRoaXMmJih0LmNhbGwodGhpcyxzKSxlLm9mZigidHJhbnNpdGlvbmVuZCIsaSkpfSkpLHRoaXN9LG91dGVyV2lkdGg6ZnVuY3Rpb24odCl7aWYodGhpcy5sZW5ndGg+MCl7aWYodCl7Y29uc3QgdD10aGlzLnN0eWxlcygpO3JldHVybiB0aGlzWzBdLm9mZnNldFdpZHRoK3BhcnNlRmxvYXQodC5nZXRQcm9wZXJ0eVZhbHVlKCJtYXJnaW4tcmlnaHQiKSkrcGFyc2VGbG9hdCh0LmdldFByb3BlcnR5VmFsdWUoIm1hcmdpbi1sZWZ0IikpfXJldHVybiB0aGlzWzBdLm9mZnNldFdpZHRofXJldHVybiBudWxsfSxvdXRlckhlaWdodDpmdW5jdGlvbih0KXtpZih0aGlzLmxlbmd0aD4wKXtpZih0KXtjb25zdCB0PXRoaXMuc3R5bGVzKCk7cmV0dXJuIHRoaXNbMF0ub2Zmc2V0SGVpZ2h0K3BhcnNlRmxvYXQodC5nZXRQcm9wZXJ0eVZhbHVlKCJtYXJnaW4tdG9wIikpK3BhcnNlRmxvYXQodC5nZXRQcm9wZXJ0eVZhbHVlKCJtYXJnaW4tYm90dG9tIikpfXJldHVybiB0aGlzWzBdLm9mZnNldEhlaWdodH1yZXR1cm4gbnVsbH0sc3R5bGVzOmZ1bmN0aW9uKCl7Y29uc3QgdD1sKCk7cmV0dXJuIHRoaXNbMF0/dC5nZXRDb21wdXRlZFN0eWxlKHRoaXNbMF0sbnVsbCk6e319LG9mZnNldDpmdW5jdGlvbigpe2lmKHRoaXMubGVuZ3RoPjApe2NvbnN0IHQ9bCgpLGU9cigpLGk9dGhpc1swXSxzPWkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT1lLmJvZHksbj1pLmNsaWVudFRvcHx8YS5jbGllbnRUb3B8fDAsbz1pLmNsaWVudExlZnR8fGEuY2xpZW50TGVmdHx8MCxjPWk9PT10P3Quc2Nyb2xsWTppLnNjcm9sbFRvcCxoPWk9PT10P3Quc2Nyb2xsWDppLnNjcm9sbExlZnQ7cmV0dXJue3RvcDpzLnRvcCtjLW4sbGVmdDpzLmxlZnQraC1vfX1yZXR1cm4gbnVsbH0sY3NzOmZ1bmN0aW9uKHQsZSl7Y29uc3QgaT1sKCk7bGV0IHM7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpe2lmKCJzdHJpbmciIT10eXBlb2YgdCl7Zm9yKHM9MDtzPHRoaXMubGVuZ3RoO3MrPTEpZm9yKGNvbnN0IGUgaW4gdCl0aGlzW3NdLnN0eWxlW2VdPXRbZV07cmV0dXJuIHRoaXN9aWYodGhpc1swXSlyZXR1cm4gaS5nZXRDb21wdXRlZFN0eWxlKHRoaXNbMF0sbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSh0KX1pZigyPT09YXJndW1lbnRzLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiB0KXtmb3Iocz0wO3M8dGhpcy5sZW5ndGg7cys9MSl0aGlzW3NdLnN0eWxlW3RdPWU7cmV0dXJuIHRoaXN9cmV0dXJuIHRoaXN9LGVhY2g6ZnVuY3Rpb24odCl7cmV0dXJuIHQ/KHRoaXMuZm9yRWFjaCgoKGUsaSk9Pnt0LmFwcGx5KGUsW2UsaV0pfSkpLHRoaXMpOnRoaXN9LGh0bWw6ZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dClyZXR1cm4gdGhpc1swXT90aGlzWzBdLmlubmVySFRNTDpudWxsO2ZvcihsZXQgZT0wO2U8dGhpcy5sZW5ndGg7ZSs9MSl0aGlzW2VdLmlubmVySFRNTD10O3JldHVybiB0aGlzfSx0ZXh0OmZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpcmV0dXJuIHRoaXNbMF0/dGhpc1swXS50ZXh0Q29udGVudC50cmltKCk6bnVsbDtmb3IobGV0IGU9MDtlPHRoaXMubGVuZ3RoO2UrPTEpdGhpc1tlXS50ZXh0Q29udGVudD10O3JldHVybiB0aGlzfSxpczpmdW5jdGlvbih0KXtjb25zdCBlPWwoKSxpPXIoKSxzPXRoaXNbMF07bGV0IGEsbjtpZighc3x8dm9pZCAwPT09dClyZXR1cm4hMTtpZigic3RyaW5nIj09dHlwZW9mIHQpe2lmKHMubWF0Y2hlcylyZXR1cm4gcy5tYXRjaGVzKHQpO2lmKHMud2Via2l0TWF0Y2hlc1NlbGVjdG9yKXJldHVybiBzLndlYmtpdE1hdGNoZXNTZWxlY3Rvcih0KTtpZihzLm1zTWF0Y2hlc1NlbGVjdG9yKXJldHVybiBzLm1zTWF0Y2hlc1NlbGVjdG9yKHQpO2ZvcihhPXUodCksbj0wO248YS5sZW5ndGg7bis9MSlpZihhW25dPT09cylyZXR1cm4hMDtyZXR1cm4hMX1pZih0PT09aSlyZXR1cm4gcz09PWk7aWYodD09PWUpcmV0dXJuIHM9PT1lO2lmKHQubm9kZVR5cGV8fHQgaW5zdGFuY2VvZiBjKXtmb3IoYT10Lm5vZGVUeXBlP1t0XTp0LG49MDtuPGEubGVuZ3RoO24rPTEpaWYoYVtuXT09PXMpcmV0dXJuITA7cmV0dXJuITF9cmV0dXJuITF9LGluZGV4OmZ1bmN0aW9uKCl7bGV0IHQsZT10aGlzWzBdO2lmKGUpe2Zvcih0PTA7bnVsbCE9PShlPWUucHJldmlvdXNTaWJsaW5nKTspMT09PWUubm9kZVR5cGUmJih0Kz0xKTtyZXR1cm4gdH19LGVxOmZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpcmV0dXJuIHRoaXM7Y29uc3QgZT10aGlzLmxlbmd0aDtpZih0PmUtMSlyZXR1cm4gdShbXSk7aWYodDwwKXtjb25zdCBpPWUrdDtyZXR1cm4gdShpPDA/W106W3RoaXNbaV1dKX1yZXR1cm4gdShbdGhpc1t0XV0pfSxhcHBlbmQ6ZnVuY3Rpb24oLi4udCl7bGV0IGU7Y29uc3QgaT1yKCk7Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKz0xKXtlPXRbc107Zm9yKGxldCB0PTA7dDx0aGlzLmxlbmd0aDt0Kz0xKWlmKCJzdHJpbmciPT10eXBlb2YgZSl7Y29uc3Qgcz1pLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2ZvcihzLmlubmVySFRNTD1lO3MuZmlyc3RDaGlsZDspdGhpc1t0XS5hcHBlbmRDaGlsZChzLmZpcnN0Q2hpbGQpfWVsc2UgaWYoZSBpbnN0YW5jZW9mIGMpZm9yKGxldCBpPTA7aTxlLmxlbmd0aDtpKz0xKXRoaXNbdF0uYXBwZW5kQ2hpbGQoZVtpXSk7ZWxzZSB0aGlzW3RdLmFwcGVuZENoaWxkKGUpfXJldHVybiB0aGlzfSxwcmVwZW5kOmZ1bmN0aW9uKHQpe2NvbnN0IGU9cigpO2xldCBpLHM7Zm9yKGk9MDtpPHRoaXMubGVuZ3RoO2krPTEpaWYoInN0cmluZyI9PXR5cGVvZiB0KXtjb25zdCBhPWUuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zm9yKGEuaW5uZXJIVE1MPXQscz1hLmNoaWxkTm9kZXMubGVuZ3RoLTE7cz49MDtzLT0xKXRoaXNbaV0uaW5zZXJ0QmVmb3JlKGEuY2hpbGROb2Rlc1tzXSx0aGlzW2ldLmNoaWxkTm9kZXNbMF0pfWVsc2UgaWYodCBpbnN0YW5jZW9mIGMpZm9yKHM9MDtzPHQubGVuZ3RoO3MrPTEpdGhpc1tpXS5pbnNlcnRCZWZvcmUodFtzXSx0aGlzW2ldLmNoaWxkTm9kZXNbMF0pO2Vsc2UgdGhpc1tpXS5pbnNlcnRCZWZvcmUodCx0aGlzW2ldLmNoaWxkTm9kZXNbMF0pO3JldHVybiB0aGlzfSxuZXh0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD4wP3Q/dGhpc1swXS5uZXh0RWxlbWVudFNpYmxpbmcmJnUodGhpc1swXS5uZXh0RWxlbWVudFNpYmxpbmcpLmlzKHQpP3UoW3RoaXNbMF0ubmV4dEVsZW1lbnRTaWJsaW5nXSk6dShbXSk6dGhpc1swXS5uZXh0RWxlbWVudFNpYmxpbmc/dShbdGhpc1swXS5uZXh0RWxlbWVudFNpYmxpbmddKTp1KFtdKTp1KFtdKX0sbmV4dEFsbDpmdW5jdGlvbih0KXtjb25zdCBlPVtdO2xldCBpPXRoaXNbMF07aWYoIWkpcmV0dXJuIHUoW10pO2Zvcig7aS5uZXh0RWxlbWVudFNpYmxpbmc7KXtjb25zdCBzPWkubmV4dEVsZW1lbnRTaWJsaW5nO3Q/dShzKS5pcyh0KSYmZS5wdXNoKHMpOmUucHVzaChzKSxpPXN9cmV0dXJuIHUoZSl9LHByZXY6ZnVuY3Rpb24odCl7aWYodGhpcy5sZW5ndGg+MCl7Y29uc3QgZT10aGlzWzBdO3JldHVybiB0P2UucHJldmlvdXNFbGVtZW50U2libGluZyYmdShlLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpLmlzKHQpP3UoW2UucHJldmlvdXNFbGVtZW50U2libGluZ10pOnUoW10pOmUucHJldmlvdXNFbGVtZW50U2libGluZz91KFtlLnByZXZpb3VzRWxlbWVudFNpYmxpbmddKTp1KFtdKX1yZXR1cm4gdShbXSl9LHByZXZBbGw6ZnVuY3Rpb24odCl7Y29uc3QgZT1bXTtsZXQgaT10aGlzWzBdO2lmKCFpKXJldHVybiB1KFtdKTtmb3IoO2kucHJldmlvdXNFbGVtZW50U2libGluZzspe2NvbnN0IHM9aS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO3Q/dShzKS5pcyh0KSYmZS5wdXNoKHMpOmUucHVzaChzKSxpPXN9cmV0dXJuIHUoZSl9LHBhcmVudDpmdW5jdGlvbih0KXtjb25zdCBlPVtdO2ZvcihsZXQgaT0wO2k8dGhpcy5sZW5ndGg7aSs9MSludWxsIT09dGhpc1tpXS5wYXJlbnROb2RlJiYodD91KHRoaXNbaV0ucGFyZW50Tm9kZSkuaXModCkmJmUucHVzaCh0aGlzW2ldLnBhcmVudE5vZGUpOmUucHVzaCh0aGlzW2ldLnBhcmVudE5vZGUpKTtyZXR1cm4gdShlKX0scGFyZW50czpmdW5jdGlvbih0KXtjb25zdCBlPVtdO2ZvcihsZXQgaT0wO2k8dGhpcy5sZW5ndGg7aSs9MSl7bGV0IHM9dGhpc1tpXS5wYXJlbnROb2RlO2Zvcig7czspdD91KHMpLmlzKHQpJiZlLnB1c2gocyk6ZS5wdXNoKHMpLHM9cy5wYXJlbnROb2RlfXJldHVybiB1KGUpfSxjbG9zZXN0OmZ1bmN0aW9uKHQpe2xldCBlPXRoaXM7cmV0dXJuIHZvaWQgMD09PXQ/dShbXSk6KGUuaXModCl8fChlPWUucGFyZW50cyh0KS5lcSgwKSksZSl9LGZpbmQ6ZnVuY3Rpb24odCl7Y29uc3QgZT1bXTtmb3IobGV0IGk9MDtpPHRoaXMubGVuZ3RoO2krPTEpe2NvbnN0IHM9dGhpc1tpXS5xdWVyeVNlbGVjdG9yQWxsKHQpO2ZvcihsZXQgdD0wO3Q8cy5sZW5ndGg7dCs9MSllLnB1c2goc1t0XSl9cmV0dXJuIHUoZSl9LGNoaWxkcmVuOmZ1bmN0aW9uKHQpe2NvbnN0IGU9W107Zm9yKGxldCBpPTA7aTx0aGlzLmxlbmd0aDtpKz0xKXtjb25zdCBzPXRoaXNbaV0uY2hpbGRyZW47Zm9yKGxldCBpPTA7aTxzLmxlbmd0aDtpKz0xKXQmJiF1KHNbaV0pLmlzKHQpfHxlLnB1c2goc1tpXSl9cmV0dXJuIHUoZSl9LGZpbHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdShkKHRoaXMsdCkpfSxyZW1vdmU6ZnVuY3Rpb24oKXtmb3IobGV0IHQ9MDt0PHRoaXMubGVuZ3RoO3QrPTEpdGhpc1t0XS5wYXJlbnROb2RlJiZ0aGlzW3RdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpc1t0XSk7cmV0dXJuIHRoaXN9fTtPYmplY3Qua2V5cyhmKS5mb3JFYWNoKCh0PT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHUuZm4sdCx7dmFsdWU6Zlt0XSx3cml0YWJsZTohMH0pfSkpO3ZhciBtPXU7ZnVuY3Rpb24gdih0LGU9MCl7cmV0dXJuIHNldFRpbWVvdXQodCxlKX1mdW5jdGlvbiB4KCl7cmV0dXJuIERhdGUubm93KCl9ZnVuY3Rpb24gYih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10JiZ0LmNvbnN0cnVjdG9yJiYiT2JqZWN0Ij09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKX1mdW5jdGlvbiB5KC4uLnQpe2NvbnN0IGU9T2JqZWN0KHRbMF0pLGk9WyJfX3Byb3RvX18iLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSJdO2ZvcihsZXQgYT0xO2E8dC5sZW5ndGg7YSs9MSl7Y29uc3Qgbj10W2FdO2lmKG51bGwhPW4mJihzPW4sISgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkhUTUxFbGVtZW50P3MgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDpzJiYoMT09PXMubm9kZVR5cGV8fDExPT09cy5ub2RlVHlwZSkpKSl7Y29uc3QgdD1PYmplY3Qua2V5cyhPYmplY3QobikpLmZpbHRlcigodD0+aS5pbmRleE9mKHQpPDApKTtmb3IobGV0IGk9MCxzPXQubGVuZ3RoO2k8cztpKz0xKXtjb25zdCBzPXRbaV0sYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4scyk7dm9pZCAwIT09YSYmYS5lbnVtZXJhYmxlJiYoYihlW3NdKSYmYihuW3NdKT9uW3NdLl9fc3dpcGVyX18/ZVtzXT1uW3NdOnkoZVtzXSxuW3NdKTohYihlW3NdKSYmYihuW3NdKT8oZVtzXT17fSxuW3NdLl9fc3dpcGVyX18/ZVtzXT1uW3NdOnkoZVtzXSxuW3NdKSk6ZVtzXT1uW3NdKX19fXZhciBzO3JldHVybiBlfWZ1bmN0aW9uIHcodCxlLGkpe3Quc3R5bGUuc2V0UHJvcGVydHkoZSxpKX1mdW5jdGlvbiBrKHtzd2lwZXI6dCx0YXJnZXRQb3NpdGlvbjplLHNpZGU6aX0pe2NvbnN0IHM9bCgpLGE9LXQudHJhbnNsYXRlO2xldCBuLHI9bnVsbDtjb25zdCBvPXQucGFyYW1zLnNwZWVkO3Qud3JhcHBlckVsLnN0eWxlLnNjcm9sbFNuYXBUeXBlPSJub25lIixzLmNhbmNlbEFuaW1hdGlvbkZyYW1lKHQuY3NzTW9kZUZyYW1lSUQpO2NvbnN0IGM9ZT5hPyJuZXh0IjoicHJldiIsaD0odCxlKT0+Im5leHQiPT09YyYmdD49ZXx8InByZXYiPT09YyYmdDw9ZSxkPSgpPT57bj0obmV3IERhdGUpLmdldFRpbWUoKSxudWxsPT09ciYmKHI9bik7Y29uc3QgbD1NYXRoLm1heChNYXRoLm1pbigobi1yKS9vLDEpLDApLGM9LjUtTWF0aC5jb3MobCpNYXRoLlBJKS8yO2xldCB1PWErYyooZS1hKTtpZihoKHUsZSkmJih1PWUpLHQud3JhcHBlckVsLnNjcm9sbFRvKHtbaV06dX0pLGgodSxlKSlyZXR1cm4gdC53cmFwcGVyRWwuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsdC53cmFwcGVyRWwuc3R5bGUuc2Nyb2xsU25hcFR5cGU9IiIsc2V0VGltZW91dCgoKCk9Pnt0LndyYXBwZXJFbC5zdHlsZS5vdmVyZmxvdz0iIix0LndyYXBwZXJFbC5zY3JvbGxUbyh7W2ldOnV9KX0pKSx2b2lkIHMuY2FuY2VsQW5pbWF0aW9uRnJhbWUodC5jc3NNb2RlRnJhbWVJRCk7dC5jc3NNb2RlRnJhbWVJRD1zLnJlcXVlc3RBbmltYXRpb25GcmFtZShkKX07ZCgpfWxldCBTLEMsQTtmdW5jdGlvbiBFKCl7cmV0dXJuIFN8fChTPWZ1bmN0aW9uKCl7Y29uc3QgdD1sKCksZT1yKCk7cmV0dXJue3Ntb290aFNjcm9sbDplLmRvY3VtZW50RWxlbWVudCYmInNjcm9sbEJlaGF2aW9yImluIGUuZG9jdW1lbnRFbGVtZW50LnN0eWxlLHRvdWNoOiEhKCJvbnRvdWNoc3RhcnQiaW4gdHx8dC5Eb2N1bWVudFRvdWNoJiZlIGluc3RhbmNlb2YgdC5Eb2N1bWVudFRvdWNoKSxwYXNzaXZlTGlzdGVuZXI6ZnVuY3Rpb24oKXtsZXQgZT0hMTt0cnl7Y29uc3QgaT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQoKXtlPSEwfX0pO3QuYWRkRXZlbnRMaXN0ZW5lcigidGVzdFBhc3NpdmVMaXN0ZW5lciIsbnVsbCxpKX1jYXRjaCh0KXt9cmV0dXJuIGV9KCksZ2VzdHVyZXM6Im9uZ2VzdHVyZXN0YXJ0ImluIHR9fSgpKSxTfXZhciBUPXtvbih0LGUsaSl7Y29uc3Qgcz10aGlzO2lmKCFzLmV2ZW50c0xpc3RlbmVyc3x8cy5kZXN0cm95ZWQpcmV0dXJuIHM7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpcmV0dXJuIHM7Y29uc3QgYT1pPyJ1bnNoaWZ0IjoicHVzaCI7cmV0dXJuIHQuc3BsaXQoIiAiKS5mb3JFYWNoKCh0PT57cy5ldmVudHNMaXN0ZW5lcnNbdF18fChzLmV2ZW50c0xpc3RlbmVyc1t0XT1bXSkscy5ldmVudHNMaXN0ZW5lcnNbdF1bYV0oZSl9KSksc30sb25jZSh0LGUsaSl7Y29uc3Qgcz10aGlzO2lmKCFzLmV2ZW50c0xpc3RlbmVyc3x8cy5kZXN0cm95ZWQpcmV0dXJuIHM7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpcmV0dXJuIHM7ZnVuY3Rpb24gYSguLi5pKXtzLm9mZih0LGEpLGEuX19lbWl0dGVyUHJveHkmJmRlbGV0ZSBhLl9fZW1pdHRlclByb3h5LGUuYXBwbHkocyxpKX1yZXR1cm4gYS5fX2VtaXR0ZXJQcm94eT1lLHMub24odCxhLGkpfSxvbkFueSh0LGUpe2NvbnN0IGk9dGhpcztpZighaS5ldmVudHNMaXN0ZW5lcnN8fGkuZGVzdHJveWVkKXJldHVybiBpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXJldHVybiBpO2NvbnN0IHM9ZT8idW5zaGlmdCI6InB1c2giO3JldHVybiBpLmV2ZW50c0FueUxpc3RlbmVycy5pbmRleE9mKHQpPDAmJmkuZXZlbnRzQW55TGlzdGVuZXJzW3NdKHQpLGl9LG9mZkFueSh0KXtjb25zdCBlPXRoaXM7aWYoIWUuZXZlbnRzTGlzdGVuZXJzfHxlLmRlc3Ryb3llZClyZXR1cm4gZTtpZighZS5ldmVudHNBbnlMaXN0ZW5lcnMpcmV0dXJuIGU7Y29uc3QgaT1lLmV2ZW50c0FueUxpc3RlbmVycy5pbmRleE9mKHQpO3JldHVybiBpPj0wJiZlLmV2ZW50c0FueUxpc3RlbmVycy5zcGxpY2UoaSwxKSxlfSxvZmYodCxlKXtjb25zdCBpPXRoaXM7cmV0dXJuIWkuZXZlbnRzTGlzdGVuZXJzfHxpLmRlc3Ryb3llZD9pOmkuZXZlbnRzTGlzdGVuZXJzPyh0LnNwbGl0KCIgIikuZm9yRWFjaCgodD0+e3ZvaWQgMD09PWU/aS5ldmVudHNMaXN0ZW5lcnNbdF09W106aS5ldmVudHNMaXN0ZW5lcnNbdF0mJmkuZXZlbnRzTGlzdGVuZXJzW3RdLmZvckVhY2goKChzLGEpPT57KHM9PT1lfHxzLl9fZW1pdHRlclByb3h5JiZzLl9fZW1pdHRlclByb3h5PT09ZSkmJmkuZXZlbnRzTGlzdGVuZXJzW3RdLnNwbGljZShhLDEpfSkpfSkpLGkpOml9LGVtaXQoLi4udCl7Y29uc3QgZT10aGlzO2lmKCFlLmV2ZW50c0xpc3RlbmVyc3x8ZS5kZXN0cm95ZWQpcmV0dXJuIGU7aWYoIWUuZXZlbnRzTGlzdGVuZXJzKXJldHVybiBlO2xldCBpLHMsYTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHRbMF18fEFycmF5LmlzQXJyYXkodFswXSk/KGk9dFswXSxzPXQuc2xpY2UoMSx0Lmxlbmd0aCksYT1lKTooaT10WzBdLmV2ZW50cyxzPXRbMF0uZGF0YSxhPXRbMF0uY29udGV4dHx8ZSkscy51bnNoaWZ0KGEpLChBcnJheS5pc0FycmF5KGkpP2k6aS5zcGxpdCgiICIpKS5mb3JFYWNoKCh0PT57ZS5ldmVudHNBbnlMaXN0ZW5lcnMmJmUuZXZlbnRzQW55TGlzdGVuZXJzLmxlbmd0aCYmZS5ldmVudHNBbnlMaXN0ZW5lcnMuZm9yRWFjaCgoZT0+e2UuYXBwbHkoYSxbdCwuLi5zXSl9KSksZS5ldmVudHNMaXN0ZW5lcnMmJmUuZXZlbnRzTGlzdGVuZXJzW3RdJiZlLmV2ZW50c0xpc3RlbmVyc1t0XS5mb3JFYWNoKCh0PT57dC5hcHBseShhLHMpfSkpfSkpLGV9fSxMPXt1cGRhdGVTaXplOmZ1bmN0aW9uKCl7Y29uc3QgdD10aGlzO2xldCBlLGk7Y29uc3Qgcz10LiRlbDtlPXZvaWQgMCE9PXQucGFyYW1zLndpZHRoJiZudWxsIT09dC5wYXJhbXMud2lkdGg/dC5wYXJhbXMud2lkdGg6c1swXS5jbGllbnRXaWR0aCxpPXZvaWQgMCE9PXQucGFyYW1zLmhlaWdodCYmbnVsbCE9PXQucGFyYW1zLmhlaWdodD90LnBhcmFtcy5oZWlnaHQ6c1swXS5jbGllbnRIZWlnaHQsMD09PWUmJnQuaXNIb3Jpem9udGFsKCl8fDA9PT1pJiZ0LmlzVmVydGljYWwoKXx8KGU9ZS1wYXJzZUludChzLmNzcygicGFkZGluZy1sZWZ0Iil8fDAsMTApLXBhcnNlSW50KHMuY3NzKCJwYWRkaW5nLXJpZ2h0Iil8fDAsMTApLGk9aS1wYXJzZUludChzLmNzcygicGFkZGluZy10b3AiKXx8MCwxMCktcGFyc2VJbnQocy5jc3MoInBhZGRpbmctYm90dG9tIil8fDAsMTApLE51bWJlci5pc05hTihlKSYmKGU9MCksTnVtYmVyLmlzTmFOKGkpJiYoaT0wKSxPYmplY3QuYXNzaWduKHQse3dpZHRoOmUsaGVpZ2h0Omksc2l6ZTp0LmlzSG9yaXpvbnRhbCgpP2U6aX0pKX0sdXBkYXRlU2xpZGVzOmZ1bmN0aW9uKCl7Y29uc3QgdD10aGlzO2Z1bmN0aW9uIGUoZSl7cmV0dXJuIHQuaXNIb3Jpem9udGFsKCk/ZTp7d2lkdGg6ImhlaWdodCIsIm1hcmdpbi10b3AiOiJtYXJnaW4tbGVmdCIsIm1hcmdpbi1ib3R0b20gIjoibWFyZ2luLXJpZ2h0IiwibWFyZ2luLWxlZnQiOiJtYXJnaW4tdG9wIiwibWFyZ2luLXJpZ2h0IjoibWFyZ2luLWJvdHRvbSIsInBhZGRpbmctbGVmdCI6InBhZGRpbmctdG9wIiwicGFkZGluZy1yaWdodCI6InBhZGRpbmctYm90dG9tIixtYXJnaW5SaWdodDoibWFyZ2luQm90dG9tIn1bZV19ZnVuY3Rpb24gaSh0LGkpe3JldHVybiBwYXJzZUZsb2F0KHQuZ2V0UHJvcGVydHlWYWx1ZShlKGkpKXx8MCl9Y29uc3Qgcz10LnBhcmFtcyx7JHdyYXBwZXJFbDphLHNpemU6bixydGxUcmFuc2xhdGU6cix3cm9uZ1JUTDpvfT10LGw9dC52aXJ0dWFsJiZzLnZpcnR1YWwuZW5hYmxlZCxjPWw/dC52aXJ0dWFsLnNsaWRlcy5sZW5ndGg6dC5zbGlkZXMubGVuZ3RoLGg9YS5jaGlsZHJlbihgLiR7dC5wYXJhbXMuc2xpZGVDbGFzc31gKSxkPWw/dC52aXJ0dWFsLnNsaWRlcy5sZW5ndGg6aC5sZW5ndGg7bGV0IHU9W107Y29uc3QgcD1bXSxnPVtdO2xldCBmPXMuc2xpZGVzT2Zmc2V0QmVmb3JlOyJmdW5jdGlvbiI9PXR5cGVvZiBmJiYoZj1zLnNsaWRlc09mZnNldEJlZm9yZS5jYWxsKHQpKTtsZXQgbT1zLnNsaWRlc09mZnNldEFmdGVyOyJmdW5jdGlvbiI9PXR5cGVvZiBtJiYobT1zLnNsaWRlc09mZnNldEFmdGVyLmNhbGwodCkpO2NvbnN0IHY9dC5zbmFwR3JpZC5sZW5ndGgseD10LnNsaWRlc0dyaWQubGVuZ3RoO2xldCBiPXMuc3BhY2VCZXR3ZWVuLHk9LWYsaz0wLFM9MDtpZih2b2lkIDA9PT1uKXJldHVybjsic3RyaW5nIj09dHlwZW9mIGImJmIuaW5kZXhPZigiJSIpPj0wJiYoYj1wYXJzZUZsb2F0KGIucmVwbGFjZSgiJSIsIiIpKS8xMDAqbiksdC52aXJ0dWFsU2l6ZT0tYixyP2guY3NzKHttYXJnaW5MZWZ0OiIiLG1hcmdpbkJvdHRvbToiIixtYXJnaW5Ub3A6IiJ9KTpoLmNzcyh7bWFyZ2luUmlnaHQ6IiIsbWFyZ2luQm90dG9tOiIiLG1hcmdpblRvcDoiIn0pLHMuY2VudGVyZWRTbGlkZXMmJnMuY3NzTW9kZSYmKHcodC53cmFwcGVyRWwsIi0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1iZWZvcmUiLCIiKSx3KHQud3JhcHBlckVsLCItLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIiLCIiKSk7Y29uc3QgQz1zLmdyaWQmJnMuZ3JpZC5yb3dzPjEmJnQuZ3JpZDtsZXQgQTtDJiZ0LmdyaWQuaW5pdFNsaWRlcyhkKTtjb25zdCBFPSJhdXRvIj09PXMuc2xpZGVzUGVyVmlldyYmcy5icmVha3BvaW50cyYmT2JqZWN0LmtleXMocy5icmVha3BvaW50cykuZmlsdGVyKCh0PT52b2lkIDAhPT1zLmJyZWFrcG9pbnRzW3RdLnNsaWRlc1BlclZpZXcpKS5sZW5ndGg+MDtmb3IobGV0IGE9MDthPGQ7YSs9MSl7QT0wO2NvbnN0IHI9aC5lcShhKTtpZihDJiZ0LmdyaWQudXBkYXRlU2xpZGUoYSxyLGQsZSksIm5vbmUiIT09ci5jc3MoImRpc3BsYXkiKSl7aWYoImF1dG8iPT09cy5zbGlkZXNQZXJWaWV3KXtFJiYoaFthXS5zdHlsZVtlKCJ3aWR0aCIpXT0iIik7Y29uc3Qgbj1nZXRDb21wdXRlZFN0eWxlKHJbMF0pLG89clswXS5zdHlsZS50cmFuc2Zvcm0sbD1yWzBdLnN0eWxlLndlYmtpdFRyYW5zZm9ybTtpZihvJiYoclswXS5zdHlsZS50cmFuc2Zvcm09Im5vbmUiKSxsJiYoclswXS5zdHlsZS53ZWJraXRUcmFuc2Zvcm09Im5vbmUiKSxzLnJvdW5kTGVuZ3RocylBPXQuaXNIb3Jpem9udGFsKCk/ci5vdXRlcldpZHRoKCEwKTpyLm91dGVySGVpZ2h0KCEwKTtlbHNle2NvbnN0IHQ9aShuLCJ3aWR0aCIpLGU9aShuLCJwYWRkaW5nLWxlZnQiKSxzPWkobiwicGFkZGluZy1yaWdodCIpLGE9aShuLCJtYXJnaW4tbGVmdCIpLG89aShuLCJtYXJnaW4tcmlnaHQiKSxsPW4uZ2V0UHJvcGVydHlWYWx1ZSgiYm94LXNpemluZyIpO2lmKGwmJiJib3JkZXItYm94Ij09PWwpQT10K2ErbztlbHNle2NvbnN0e2NsaWVudFdpZHRoOmksb2Zmc2V0V2lkdGg6bn09clswXTtBPXQrZStzK2Erbysobi1pKX19byYmKHJbMF0uc3R5bGUudHJhbnNmb3JtPW8pLGwmJihyWzBdLnN0eWxlLndlYmtpdFRyYW5zZm9ybT1sKSxzLnJvdW5kTGVuZ3RocyYmKEE9TWF0aC5mbG9vcihBKSl9ZWxzZSBBPShuLShzLnNsaWRlc1BlclZpZXctMSkqYikvcy5zbGlkZXNQZXJWaWV3LHMucm91bmRMZW5ndGhzJiYoQT1NYXRoLmZsb29yKEEpKSxoW2FdJiYoaFthXS5zdHlsZVtlKCJ3aWR0aCIpXT1gJHtBfXB4YCk7aFthXSYmKGhbYV0uc3dpcGVyU2xpZGVTaXplPUEpLGcucHVzaChBKSxzLmNlbnRlcmVkU2xpZGVzPyh5PXkrQS8yK2svMitiLDA9PT1rJiYwIT09YSYmKHk9eS1uLzItYiksMD09PWEmJih5PXktbi8yLWIpLE1hdGguYWJzKHkpPC4wMDEmJih5PTApLHMucm91bmRMZW5ndGhzJiYoeT1NYXRoLmZsb29yKHkpKSxTJXMuc2xpZGVzUGVyR3JvdXA9PTAmJnUucHVzaCh5KSxwLnB1c2goeSkpOihzLnJvdW5kTGVuZ3RocyYmKHk9TWF0aC5mbG9vcih5KSksKFMtTWF0aC5taW4odC5wYXJhbXMuc2xpZGVzUGVyR3JvdXBTa2lwLFMpKSV0LnBhcmFtcy5zbGlkZXNQZXJHcm91cD09MCYmdS5wdXNoKHkpLHAucHVzaCh5KSx5PXkrQStiKSx0LnZpcnR1YWxTaXplKz1BK2Isaz1BLFMrPTF9fWlmKHQudmlydHVhbFNpemU9TWF0aC5tYXgodC52aXJ0dWFsU2l6ZSxuKSttLHImJm8mJigic2xpZGUiPT09cy5lZmZlY3R8fCJjb3ZlcmZsb3ciPT09cy5lZmZlY3QpJiZhLmNzcyh7d2lkdGg6YCR7dC52aXJ0dWFsU2l6ZStzLnNwYWNlQmV0d2Vlbn1weGB9KSxzLnNldFdyYXBwZXJTaXplJiZhLmNzcyh7W2UoIndpZHRoIildOmAke3QudmlydHVhbFNpemUrcy5zcGFjZUJldHdlZW59cHhgfSksQyYmdC5ncmlkLnVwZGF0ZVdyYXBwZXJTaXplKEEsdSxlKSwhcy5jZW50ZXJlZFNsaWRlcyl7Y29uc3QgZT1bXTtmb3IobGV0IGk9MDtpPHUubGVuZ3RoO2krPTEpe2xldCBhPXVbaV07cy5yb3VuZExlbmd0aHMmJihhPU1hdGguZmxvb3IoYSkpLHVbaV08PXQudmlydHVhbFNpemUtbiYmZS5wdXNoKGEpfXU9ZSxNYXRoLmZsb29yKHQudmlydHVhbFNpemUtbiktTWF0aC5mbG9vcih1W3UubGVuZ3RoLTFdKT4xJiZ1LnB1c2godC52aXJ0dWFsU2l6ZS1uKX1pZigwPT09dS5sZW5ndGgmJih1PVswXSksMCE9PXMuc3BhY2VCZXR3ZWVuKXtjb25zdCBpPXQuaXNIb3Jpem9udGFsKCkmJnI/Im1hcmdpbkxlZnQiOmUoIm1hcmdpblJpZ2h0Iik7aC5maWx0ZXIoKCh0LGUpPT4hcy5jc3NNb2RlfHxlIT09aC5sZW5ndGgtMSkpLmNzcyh7W2ldOmAke2J9cHhgfSl9aWYocy5jZW50ZXJlZFNsaWRlcyYmcy5jZW50ZXJlZFNsaWRlc0JvdW5kcyl7bGV0IHQ9MDtnLmZvckVhY2goKGU9Pnt0Kz1lKyhzLnNwYWNlQmV0d2Vlbj9zLnNwYWNlQmV0d2VlbjowKX0pKSx0LT1zLnNwYWNlQmV0d2Vlbjtjb25zdCBlPXQtbjt1PXUubWFwKCh0PT50PDA/LWY6dD5lP2UrbTp0KSl9aWYocy5jZW50ZXJJbnN1ZmZpY2llbnRTbGlkZXMpe2xldCB0PTA7aWYoZy5mb3JFYWNoKChlPT57dCs9ZSsocy5zcGFjZUJldHdlZW4/cy5zcGFjZUJldHdlZW46MCl9KSksdC09cy5zcGFjZUJldHdlZW4sdDxuKXtjb25zdCBlPShuLXQpLzI7dS5mb3JFYWNoKCgodCxpKT0+e3VbaV09dC1lfSkpLHAuZm9yRWFjaCgoKHQsaSk9PntwW2ldPXQrZX0pKX19aWYoT2JqZWN0LmFzc2lnbih0LHtzbGlkZXM6aCxzbmFwR3JpZDp1LHNsaWRlc0dyaWQ6cCxzbGlkZXNTaXplc0dyaWQ6Z30pLHMuY2VudGVyZWRTbGlkZXMmJnMuY3NzTW9kZSYmIXMuY2VudGVyZWRTbGlkZXNCb3VuZHMpe3codC53cmFwcGVyRWwsIi0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1iZWZvcmUiLC11WzBdKyJweCIpLHcodC53cmFwcGVyRWwsIi0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1hZnRlciIsdC5zaXplLzItZ1tnLmxlbmd0aC0xXS8yKyJweCIpO2NvbnN0IGU9LXQuc25hcEdyaWRbMF0saT0tdC5zbGlkZXNHcmlkWzBdO3Quc25hcEdyaWQ9dC5zbmFwR3JpZC5tYXAoKHQ9PnQrZSkpLHQuc2xpZGVzR3JpZD10LnNsaWRlc0dyaWQubWFwKCh0PT50K2kpKX1pZihkIT09YyYmdC5lbWl0KCJzbGlkZXNMZW5ndGhDaGFuZ2UiKSx1Lmxlbmd0aCE9PXYmJih0LnBhcmFtcy53YXRjaE92ZXJmbG93JiZ0LmNoZWNrT3ZlcmZsb3coKSx0LmVtaXQoInNuYXBHcmlkTGVuZ3RoQ2hhbmdlIikpLHAubGVuZ3RoIT09eCYmdC5lbWl0KCJzbGlkZXNHcmlkTGVuZ3RoQ2hhbmdlIikscy53YXRjaFNsaWRlc1Byb2dyZXNzJiZ0LnVwZGF0ZVNsaWRlc09mZnNldCgpLCEobHx8cy5jc3NNb2RlfHwic2xpZGUiIT09cy5lZmZlY3QmJiJmYWRlIiE9PXMuZWZmZWN0KSl7Y29uc3QgZT1gJHtzLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9YmFja2ZhY2UtaGlkZGVuYCxpPXQuJGVsLmhhc0NsYXNzKGUpO2Q8PXMubWF4QmFja2ZhY2VIaWRkZW5TbGlkZXM/aXx8dC4kZWwuYWRkQ2xhc3MoZSk6aSYmdC4kZWwucmVtb3ZlQ2xhc3MoZSl9fSx1cGRhdGVBdXRvSGVpZ2h0OmZ1bmN0aW9uKHQpe2NvbnN0IGU9dGhpcyxpPVtdLHM9ZS52aXJ0dWFsJiZlLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQ7bGV0IGEsbj0wOyJudW1iZXIiPT10eXBlb2YgdD9lLnNldFRyYW5zaXRpb24odCk6ITA9PT10JiZlLnNldFRyYW5zaXRpb24oZS5wYXJhbXMuc3BlZWQpO2NvbnN0IHI9dD0+cz9lLnNsaWRlcy5maWx0ZXIoKGU9PnBhcnNlSW50KGUuZ2V0QXR0cmlidXRlKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpLDEwKT09PXQpKVswXTplLnNsaWRlcy5lcSh0KVswXTtpZigiYXV0byIhPT1lLnBhcmFtcy5zbGlkZXNQZXJWaWV3JiZlLnBhcmFtcy5zbGlkZXNQZXJWaWV3PjEpaWYoZS5wYXJhbXMuY2VudGVyZWRTbGlkZXMpKGUudmlzaWJsZVNsaWRlc3x8bShbXSkpLmVhY2goKHQ9PntpLnB1c2godCl9KSk7ZWxzZSBmb3IoYT0wO2E8TWF0aC5jZWlsKGUucGFyYW1zLnNsaWRlc1BlclZpZXcpO2ErPTEpe2NvbnN0IHQ9ZS5hY3RpdmVJbmRleCthO2lmKHQ+ZS5zbGlkZXMubGVuZ3RoJiYhcylicmVhaztpLnB1c2gocih0KSl9ZWxzZSBpLnB1c2gocihlLmFjdGl2ZUluZGV4KSk7Zm9yKGE9MDthPGkubGVuZ3RoO2ErPTEpaWYodm9pZCAwIT09aVthXSl7Y29uc3QgdD1pW2FdLm9mZnNldEhlaWdodDtuPXQ+bj90Om59KG58fDA9PT1uKSYmZS4kd3JhcHBlckVsLmNzcygiaGVpZ2h0IixgJHtufXB4YCl9LHVwZGF0ZVNsaWRlc09mZnNldDpmdW5jdGlvbigpe2NvbnN0IHQ9dGhpcyxlPXQuc2xpZGVzO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSs9MSllW2ldLnN3aXBlclNsaWRlT2Zmc2V0PXQuaXNIb3Jpem9udGFsKCk/ZVtpXS5vZmZzZXRMZWZ0OmVbaV0ub2Zmc2V0VG9wfSx1cGRhdGVTbGlkZXNQcm9ncmVzczpmdW5jdGlvbih0PXRoaXMmJnRoaXMudHJhbnNsYXRlfHwwKXtjb25zdCBlPXRoaXMsaT1lLnBhcmFtcyx7c2xpZGVzOnMscnRsVHJhbnNsYXRlOmEsc25hcEdyaWQ6bn09ZTtpZigwPT09cy5sZW5ndGgpcmV0dXJuO3ZvaWQgMD09PXNbMF0uc3dpcGVyU2xpZGVPZmZzZXQmJmUudXBkYXRlU2xpZGVzT2Zmc2V0KCk7bGV0IHI9LXQ7YSYmKHI9dCkscy5yZW1vdmVDbGFzcyhpLnNsaWRlVmlzaWJsZUNsYXNzKSxlLnZpc2libGVTbGlkZXNJbmRleGVzPVtdLGUudmlzaWJsZVNsaWRlcz1bXTtmb3IobGV0IHQ9MDt0PHMubGVuZ3RoO3QrPTEpe2NvbnN0IG89c1t0XTtsZXQgbD1vLnN3aXBlclNsaWRlT2Zmc2V0O2kuY3NzTW9kZSYmaS5jZW50ZXJlZFNsaWRlcyYmKGwtPXNbMF0uc3dpcGVyU2xpZGVPZmZzZXQpO2NvbnN0IGM9KHIrKGkuY2VudGVyZWRTbGlkZXM/ZS5taW5UcmFuc2xhdGUoKTowKS1sKS8oby5zd2lwZXJTbGlkZVNpemUraS5zcGFjZUJldHdlZW4pLGg9KHItblswXSsoaS5jZW50ZXJlZFNsaWRlcz9lLm1pblRyYW5zbGF0ZSgpOjApLWwpLyhvLnN3aXBlclNsaWRlU2l6ZStpLnNwYWNlQmV0d2VlbiksZD0tKHItbCksdT1kK2Uuc2xpZGVzU2l6ZXNHcmlkW3RdOyhkPj0wJiZkPGUuc2l6ZS0xfHx1PjEmJnU8PWUuc2l6ZXx8ZDw9MCYmdT49ZS5zaXplKSYmKGUudmlzaWJsZVNsaWRlcy5wdXNoKG8pLGUudmlzaWJsZVNsaWRlc0luZGV4ZXMucHVzaCh0KSxzLmVxKHQpLmFkZENsYXNzKGkuc2xpZGVWaXNpYmxlQ2xhc3MpKSxvLnByb2dyZXNzPWE/LWM6YyxvLm9yaWdpbmFsUHJvZ3Jlc3M9YT8taDpofWUudmlzaWJsZVNsaWRlcz1tKGUudmlzaWJsZVNsaWRlcyl9LHVwZGF0ZVByb2dyZXNzOmZ1bmN0aW9uKHQpe2NvbnN0IGU9dGhpcztpZih2b2lkIDA9PT10KXtjb25zdCBpPWUucnRsVHJhbnNsYXRlPy0xOjE7dD1lJiZlLnRyYW5zbGF0ZSYmZS50cmFuc2xhdGUqaXx8MH1jb25zdCBpPWUucGFyYW1zLHM9ZS5tYXhUcmFuc2xhdGUoKS1lLm1pblRyYW5zbGF0ZSgpO2xldHtwcm9ncmVzczphLGlzQmVnaW5uaW5nOm4saXNFbmQ6cn09ZTtjb25zdCBvPW4sbD1yOzA9PT1zPyhhPTAsbj0hMCxyPSEwKTooYT0odC1lLm1pblRyYW5zbGF0ZSgpKS9zLG49YTw9MCxyPWE+PTEpLE9iamVjdC5hc3NpZ24oZSx7cHJvZ3Jlc3M6YSxpc0JlZ2lubmluZzpuLGlzRW5kOnJ9KSwoaS53YXRjaFNsaWRlc1Byb2dyZXNzfHxpLmNlbnRlcmVkU2xpZGVzJiZpLmF1dG9IZWlnaHQpJiZlLnVwZGF0ZVNsaWRlc1Byb2dyZXNzKHQpLG4mJiFvJiZlLmVtaXQoInJlYWNoQmVnaW5uaW5nIHRvRWRnZSIpLHImJiFsJiZlLmVtaXQoInJlYWNoRW5kIHRvRWRnZSIpLChvJiYhbnx8bCYmIXIpJiZlLmVtaXQoImZyb21FZGdlIiksZS5lbWl0KCJwcm9ncmVzcyIsYSl9LHVwZGF0ZVNsaWRlc0NsYXNzZXM6ZnVuY3Rpb24oKXtjb25zdCB0PXRoaXMse3NsaWRlczplLHBhcmFtczppLCR3cmFwcGVyRWw6cyxhY3RpdmVJbmRleDphLHJlYWxJbmRleDpufT10LHI9dC52aXJ0dWFsJiZpLnZpcnR1YWwuZW5hYmxlZDtsZXQgbztlLnJlbW92ZUNsYXNzKGAke2kuc2xpZGVBY3RpdmVDbGFzc30gJHtpLnNsaWRlTmV4dENsYXNzfSAke2kuc2xpZGVQcmV2Q2xhc3N9ICR7aS5zbGlkZUR1cGxpY2F0ZUFjdGl2ZUNsYXNzfSAke2kuc2xpZGVEdXBsaWNhdGVOZXh0Q2xhc3N9ICR7aS5zbGlkZUR1cGxpY2F0ZVByZXZDbGFzc31gKSxvPXI/dC4kd3JhcHBlckVsLmZpbmQoYC4ke2kuc2xpZGVDbGFzc31bZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IiR7YX0iXWApOmUuZXEoYSksby5hZGRDbGFzcyhpLnNsaWRlQWN0aXZlQ2xhc3MpLGkubG9vcCYmKG8uaGFzQ2xhc3MoaS5zbGlkZUR1cGxpY2F0ZUNsYXNzKT9zLmNoaWxkcmVuKGAuJHtpLnNsaWRlQ2xhc3N9Om5vdCguJHtpLnNsaWRlRHVwbGljYXRlQ2xhc3N9KVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtufSJdYCkuYWRkQ2xhc3MoaS5zbGlkZUR1cGxpY2F0ZUFjdGl2ZUNsYXNzKTpzLmNoaWxkcmVuKGAuJHtpLnNsaWRlQ2xhc3N9LiR7aS5zbGlkZUR1cGxpY2F0ZUNsYXNzfVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtufSJdYCkuYWRkQ2xhc3MoaS5zbGlkZUR1cGxpY2F0ZUFjdGl2ZUNsYXNzKSk7bGV0IGw9by5uZXh0QWxsKGAuJHtpLnNsaWRlQ2xhc3N9YCkuZXEoMCkuYWRkQ2xhc3MoaS5zbGlkZU5leHRDbGFzcyk7aS5sb29wJiYwPT09bC5sZW5ndGgmJihsPWUuZXEoMCksbC5hZGRDbGFzcyhpLnNsaWRlTmV4dENsYXNzKSk7bGV0IGM9by5wcmV2QWxsKGAuJHtpLnNsaWRlQ2xhc3N9YCkuZXEoMCkuYWRkQ2xhc3MoaS5zbGlkZVByZXZDbGFzcyk7aS5sb29wJiYwPT09Yy5sZW5ndGgmJihjPWUuZXEoLTEpLGMuYWRkQ2xhc3MoaS5zbGlkZVByZXZDbGFzcykpLGkubG9vcCYmKGwuaGFzQ2xhc3MoaS5zbGlkZUR1cGxpY2F0ZUNsYXNzKT9zLmNoaWxkcmVuKGAuJHtpLnNsaWRlQ2xhc3N9Om5vdCguJHtpLnNsaWRlRHVwbGljYXRlQ2xhc3N9KVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtsLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4Iil9Il1gKS5hZGRDbGFzcyhpLnNsaWRlRHVwbGljYXRlTmV4dENsYXNzKTpzLmNoaWxkcmVuKGAuJHtpLnNsaWRlQ2xhc3N9LiR7aS5zbGlkZUR1cGxpY2F0ZUNsYXNzfVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtsLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4Iil9Il1gKS5hZGRDbGFzcyhpLnNsaWRlRHVwbGljYXRlTmV4dENsYXNzKSxjLmhhc0NsYXNzKGkuc2xpZGVEdXBsaWNhdGVDbGFzcyk/cy5jaGlsZHJlbihgLiR7aS5zbGlkZUNsYXNzfTpub3QoLiR7aS5zbGlkZUR1cGxpY2F0ZUNsYXNzfSlbZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IiR7Yy5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpfSJdYCkuYWRkQ2xhc3MoaS5zbGlkZUR1cGxpY2F0ZVByZXZDbGFzcyk6cy5jaGlsZHJlbihgLiR7aS5zbGlkZUNsYXNzfS4ke2kuc2xpZGVEdXBsaWNhdGVDbGFzc31bZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IiR7Yy5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpfSJdYCkuYWRkQ2xhc3MoaS5zbGlkZUR1cGxpY2F0ZVByZXZDbGFzcykpLHQuZW1pdFNsaWRlc0NsYXNzZXMoKX0sdXBkYXRlQWN0aXZlSW5kZXg6ZnVuY3Rpb24odCl7Y29uc3QgZT10aGlzLGk9ZS5ydGxUcmFuc2xhdGU/ZS50cmFuc2xhdGU6LWUudHJhbnNsYXRlLHtzbGlkZXNHcmlkOnMsc25hcEdyaWQ6YSxwYXJhbXM6bixhY3RpdmVJbmRleDpyLHJlYWxJbmRleDpvLHNuYXBJbmRleDpsfT1lO2xldCBjLGg9dDtpZih2b2lkIDA9PT1oKXtmb3IobGV0IHQ9MDt0PHMubGVuZ3RoO3QrPTEpdm9pZCAwIT09c1t0KzFdP2k+PXNbdF0mJmk8c1t0KzFdLShzW3QrMV0tc1t0XSkvMj9oPXQ6aT49c1t0XSYmaTxzW3QrMV0mJihoPXQrMSk6aT49c1t0XSYmKGg9dCk7bi5ub3JtYWxpemVTbGlkZUluZGV4JiYoaDwwfHx2b2lkIDA9PT1oKSYmKGg9MCl9aWYoYS5pbmRleE9mKGkpPj0wKWM9YS5pbmRleE9mKGkpO2Vsc2V7Y29uc3QgdD1NYXRoLm1pbihuLnNsaWRlc1Blckdyb3VwU2tpcCxoKTtjPXQrTWF0aC5mbG9vcigoaC10KS9uLnNsaWRlc1Blckdyb3VwKX1pZihjPj1hLmxlbmd0aCYmKGM9YS5sZW5ndGgtMSksaD09PXIpcmV0dXJuIHZvaWQoYyE9PWwmJihlLnNuYXBJbmRleD1jLGUuZW1pdCgic25hcEluZGV4Q2hhbmdlIikpKTtjb25zdCBkPXBhcnNlSW50KGUuc2xpZGVzLmVxKGgpLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4Iil8fGgsMTApO09iamVjdC5hc3NpZ24oZSx7c25hcEluZGV4OmMscmVhbEluZGV4OmQscHJldmlvdXNJbmRleDpyLGFjdGl2ZUluZGV4Omh9KSxlLmVtaXQoImFjdGl2ZUluZGV4Q2hhbmdlIiksZS5lbWl0KCJzbmFwSW5kZXhDaGFuZ2UiKSxvIT09ZCYmZS5lbWl0KCJyZWFsSW5kZXhDaGFuZ2UiKSwoZS5pbml0aWFsaXplZHx8ZS5wYXJhbXMucnVuQ2FsbGJhY2tzT25Jbml0KSYmZS5lbWl0KCJzbGlkZUNoYW5nZSIpfSx1cGRhdGVDbGlja2VkU2xpZGU6ZnVuY3Rpb24odCl7Y29uc3QgZT10aGlzLGk9ZS5wYXJhbXMscz1tKHQpLmNsb3Nlc3QoYC4ke2kuc2xpZGVDbGFzc31gKVswXTtsZXQgYSxuPSExO2lmKHMpZm9yKGxldCB0PTA7dDxlLnNsaWRlcy5sZW5ndGg7dCs9MSlpZihlLnNsaWRlc1t0XT09PXMpe249ITAsYT10O2JyZWFrfWlmKCFzfHwhbilyZXR1cm4gZS5jbGlja2VkU2xpZGU9dm9pZCAwLHZvaWQoZS5jbGlja2VkSW5kZXg9dm9pZCAwKTtlLmNsaWNrZWRTbGlkZT1zLGUudmlydHVhbCYmZS5wYXJhbXMudmlydHVhbC5lbmFibGVkP2UuY2xpY2tlZEluZGV4PXBhcnNlSW50KG0ocykuYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKSwxMCk6ZS5jbGlja2VkSW5kZXg9YSxpLnNsaWRlVG9DbGlja2VkU2xpZGUmJnZvaWQgMCE9PWUuY2xpY2tlZEluZGV4JiZlLmNsaWNrZWRJbmRleCE9PWUuYWN0aXZlSW5kZXgmJmUuc2xpZGVUb0NsaWNrZWRTbGlkZSgpfX07ZnVuY3Rpb24gUCh7c3dpcGVyOnQscnVuQ2FsbGJhY2tzOmUsZGlyZWN0aW9uOmksc3RlcDpzfSl7Y29uc3R7YWN0aXZlSW5kZXg6YSxwcmV2aW91c0luZGV4Om59PXQ7bGV0IHI9aTtpZihyfHwocj1hPm4/Im5leHQiOmE8bj8icHJldiI6InJlc2V0IiksdC5lbWl0KGB0cmFuc2l0aW9uJHtzfWApLGUmJmEhPT1uKXtpZigicmVzZXQiPT09cilyZXR1cm4gdm9pZCB0LmVtaXQoYHNsaWRlUmVzZXRUcmFuc2l0aW9uJHtzfWApO3QuZW1pdChgc2xpZGVDaGFuZ2VUcmFuc2l0aW9uJHtzfWApLCJuZXh0Ij09PXI/dC5lbWl0KGBzbGlkZU5leHRUcmFuc2l0aW9uJHtzfWApOnQuZW1pdChgc2xpZGVQcmV2VHJhbnNpdGlvbiR7c31gKX19dmFyIE09e3NsaWRlVG86ZnVuY3Rpb24odD0wLGU9dGhpcy5wYXJhbXMuc3BlZWQsaT0hMCxzLGEpe2lmKCJudW1iZXIiIT10eXBlb2YgdCYmInN0cmluZyIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcihgVGhlICdpbmRleCcgYXJndW1lbnQgY2Fubm90IGhhdmUgdHlwZSBvdGhlciB0aGFuICdudW1iZXInIG9yICdzdHJpbmcnLiBbJHt0eXBlb2YgdH1dIGdpdmVuLmApO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7Y29uc3QgZT1wYXJzZUludCh0LDEwKTtpZighaXNGaW5pdGUoZSkpdGhyb3cgbmV3IEVycm9yKGBUaGUgcGFzc2VkLWluICdpbmRleCcgKHN0cmluZykgY291bGRuJ3QgYmUgY29udmVydGVkIHRvICdudW1iZXInLiBbJHt0fV0gZ2l2ZW4uYCk7dD1lfWNvbnN0IG49dGhpcztsZXQgcj10O3I8MCYmKHI9MCk7Y29uc3R7cGFyYW1zOm8sc25hcEdyaWQ6bCxzbGlkZXNHcmlkOmMscHJldmlvdXNJbmRleDpoLGFjdGl2ZUluZGV4OmQscnRsVHJhbnNsYXRlOnUsd3JhcHBlckVsOnAsZW5hYmxlZDpnfT1uO2lmKG4uYW5pbWF0aW5nJiZvLnByZXZlbnRJbnRlcmFjdGlvbk9uVHJhbnNpdGlvbnx8IWcmJiFzJiYhYSlyZXR1cm4hMTtjb25zdCBmPU1hdGgubWluKG4ucGFyYW1zLnNsaWRlc1Blckdyb3VwU2tpcCxyKTtsZXQgbT1mK01hdGguZmxvb3IoKHItZikvbi5wYXJhbXMuc2xpZGVzUGVyR3JvdXApO20+PWwubGVuZ3RoJiYobT1sLmxlbmd0aC0xKTtjb25zdCB2PS1sW21dO2lmKG8ubm9ybWFsaXplU2xpZGVJbmRleClmb3IobGV0IHQ9MDt0PGMubGVuZ3RoO3QrPTEpe2NvbnN0IGU9LU1hdGguZmxvb3IoMTAwKnYpLGk9TWF0aC5mbG9vcigxMDAqY1t0XSkscz1NYXRoLmZsb29yKDEwMCpjW3QrMV0pO3ZvaWQgMCE9PWNbdCsxXT9lPj1pJiZlPHMtKHMtaSkvMj9yPXQ6ZT49aSYmZTxzJiYocj10KzEpOmU+PWkmJihyPXQpfWlmKG4uaW5pdGlhbGl6ZWQmJnIhPT1kKXtpZighbi5hbGxvd1NsaWRlTmV4dCYmdjxuLnRyYW5zbGF0ZSYmdjxuLm1pblRyYW5zbGF0ZSgpKXJldHVybiExO2lmKCFuLmFsbG93U2xpZGVQcmV2JiZ2Pm4udHJhbnNsYXRlJiZ2Pm4ubWF4VHJhbnNsYXRlKCkmJihkfHwwKSE9PXIpcmV0dXJuITF9bGV0IHg7aWYociE9PShofHwwKSYmaSYmbi5lbWl0KCJiZWZvcmVTbGlkZUNoYW5nZVN0YXJ0Iiksbi51cGRhdGVQcm9ncmVzcyh2KSx4PXI+ZD8ibmV4dCI6cjxkPyJwcmV2IjoicmVzZXQiLHUmJi12PT09bi50cmFuc2xhdGV8fCF1JiZ2PT09bi50cmFuc2xhdGUpcmV0dXJuIG4udXBkYXRlQWN0aXZlSW5kZXgociksby5hdXRvSGVpZ2h0JiZuLnVwZGF0ZUF1dG9IZWlnaHQoKSxuLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKSwic2xpZGUiIT09by5lZmZlY3QmJm4uc2V0VHJhbnNsYXRlKHYpLCJyZXNldCIhPT14JiYobi50cmFuc2l0aW9uU3RhcnQoaSx4KSxuLnRyYW5zaXRpb25FbmQoaSx4KSksITE7aWYoby5jc3NNb2RlKXtjb25zdCB0PW4uaXNIb3Jpem9udGFsKCksaT11P3Y6LXY7aWYoMD09PWUpe2NvbnN0IGU9bi52aXJ0dWFsJiZuLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQ7ZSYmKG4ud3JhcHBlckVsLnN0eWxlLnNjcm9sbFNuYXBUeXBlPSJub25lIixuLl9pbW1lZGlhdGVWaXJ0dWFsPSEwKSxwW3Q/InNjcm9sbExlZnQiOiJzY3JvbGxUb3AiXT1pLGUmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PntuLndyYXBwZXJFbC5zdHlsZS5zY3JvbGxTbmFwVHlwZT0iIixuLl9zd2lwZXJJbW1lZGlhdGVWaXJ0dWFsPSExfSkpfWVsc2V7aWYoIW4uc3VwcG9ydC5zbW9vdGhTY3JvbGwpcmV0dXJuIGsoe3N3aXBlcjpuLHRhcmdldFBvc2l0aW9uOmksc2lkZTp0PyJsZWZ0IjoidG9wIn0pLCEwO3Auc2Nyb2xsVG8oe1t0PyJsZWZ0IjoidG9wIl06aSxiZWhhdmlvcjoic21vb3RoIn0pfXJldHVybiEwfXJldHVybiBuLnNldFRyYW5zaXRpb24oZSksbi5zZXRUcmFuc2xhdGUodiksbi51cGRhdGVBY3RpdmVJbmRleChyKSxuLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKSxuLmVtaXQoImJlZm9yZVRyYW5zaXRpb25TdGFydCIsZSxzKSxuLnRyYW5zaXRpb25TdGFydChpLHgpLDA9PT1lP24udHJhbnNpdGlvbkVuZChpLHgpOm4uYW5pbWF0aW5nfHwobi5hbmltYXRpbmc9ITAsbi5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZHx8KG4ub25TbGlkZVRvV3JhcHBlclRyYW5zaXRpb25FbmQ9ZnVuY3Rpb24odCl7biYmIW4uZGVzdHJveWVkJiZ0LnRhcmdldD09PXRoaXMmJihuLiR3cmFwcGVyRWxbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsbi5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCksbi4kd3JhcHBlckVsWzBdLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLG4ub25TbGlkZVRvV3JhcHBlclRyYW5zaXRpb25FbmQpLG4ub25TbGlkZVRvV3JhcHBlclRyYW5zaXRpb25FbmQ9bnVsbCxkZWxldGUgbi5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCxuLnRyYW5zaXRpb25FbmQoaSx4KSl9KSxuLiR3cmFwcGVyRWxbMF0uYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsbi5vblNsaWRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCksbi4kd3JhcHBlckVsWzBdLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLG4ub25TbGlkZVRvV3JhcHBlclRyYW5zaXRpb25FbmQpKSwhMH0sc2xpZGVUb0xvb3A6ZnVuY3Rpb24odD0wLGU9dGhpcy5wYXJhbXMuc3BlZWQsaT0hMCxzKXtpZigic3RyaW5nIj09dHlwZW9mIHQpe2NvbnN0IGU9cGFyc2VJbnQodCwxMCk7aWYoIWlzRmluaXRlKGUpKXRocm93IG5ldyBFcnJvcihgVGhlIHBhc3NlZC1pbiAnaW5kZXgnIChzdHJpbmcpIGNvdWxkbid0IGJlIGNvbnZlcnRlZCB0byAnbnVtYmVyJy4gWyR7dH1dIGdpdmVuLmApO3Q9ZX1jb25zdCBhPXRoaXM7bGV0IG49dDtyZXR1cm4gYS5wYXJhbXMubG9vcCYmKG4rPWEubG9vcGVkU2xpZGVzKSxhLnNsaWRlVG8obixlLGkscyl9LHNsaWRlTmV4dDpmdW5jdGlvbih0PXRoaXMucGFyYW1zLnNwZWVkLGU9ITAsaSl7Y29uc3Qgcz10aGlzLHthbmltYXRpbmc6YSxlbmFibGVkOm4scGFyYW1zOnJ9PXM7aWYoIW4pcmV0dXJuIHM7bGV0IG89ci5zbGlkZXNQZXJHcm91cDsiYXV0byI9PT1yLnNsaWRlc1BlclZpZXcmJjE9PT1yLnNsaWRlc1Blckdyb3VwJiZyLnNsaWRlc1Blckdyb3VwQXV0byYmKG89TWF0aC5tYXgocy5zbGlkZXNQZXJWaWV3RHluYW1pYygiY3VycmVudCIsITApLDEpKTtjb25zdCBsPXMuYWN0aXZlSW5kZXg8ci5zbGlkZXNQZXJHcm91cFNraXA/MTpvO2lmKHIubG9vcCl7aWYoYSYmci5sb29wUHJldmVudHNTbGlkZSlyZXR1cm4hMTtzLmxvb3BGaXgoKSxzLl9jbGllbnRMZWZ0PXMuJHdyYXBwZXJFbFswXS5jbGllbnRMZWZ0fXJldHVybiByLnJld2luZCYmcy5pc0VuZD9zLnNsaWRlVG8oMCx0LGUsaSk6cy5zbGlkZVRvKHMuYWN0aXZlSW5kZXgrbCx0LGUsaSl9LHNsaWRlUHJldjpmdW5jdGlvbih0PXRoaXMucGFyYW1zLnNwZWVkLGU9ITAsaSl7Y29uc3Qgcz10aGlzLHtwYXJhbXM6YSxhbmltYXRpbmc6bixzbmFwR3JpZDpyLHNsaWRlc0dyaWQ6byxydGxUcmFuc2xhdGU6bCxlbmFibGVkOmN9PXM7aWYoIWMpcmV0dXJuIHM7aWYoYS5sb29wKXtpZihuJiZhLmxvb3BQcmV2ZW50c1NsaWRlKXJldHVybiExO3MubG9vcEZpeCgpLHMuX2NsaWVudExlZnQ9cy4kd3JhcHBlckVsWzBdLmNsaWVudExlZnR9ZnVuY3Rpb24gaCh0KXtyZXR1cm4gdDwwPy1NYXRoLmZsb29yKE1hdGguYWJzKHQpKTpNYXRoLmZsb29yKHQpfWNvbnN0IGQ9aChsP3MudHJhbnNsYXRlOi1zLnRyYW5zbGF0ZSksdT1yLm1hcCgodD0+aCh0KSkpO2xldCBwPXJbdS5pbmRleE9mKGQpLTFdO2lmKHZvaWQgMD09PXAmJmEuY3NzTW9kZSl7bGV0IHQ7ci5mb3JFYWNoKCgoZSxpKT0+e2Q+PWUmJih0PWkpfSkpLHZvaWQgMCE9PXQmJihwPXJbdD4wP3QtMTp0XSl9bGV0IGc9MDtpZih2b2lkIDAhPT1wJiYoZz1vLmluZGV4T2YocCksZzwwJiYoZz1zLmFjdGl2ZUluZGV4LTEpLCJhdXRvIj09PWEuc2xpZGVzUGVyVmlldyYmMT09PWEuc2xpZGVzUGVyR3JvdXAmJmEuc2xpZGVzUGVyR3JvdXBBdXRvJiYoZz1nLXMuc2xpZGVzUGVyVmlld0R5bmFtaWMoInByZXZpb3VzIiwhMCkrMSxnPU1hdGgubWF4KGcsMCkpKSxhLnJld2luZCYmcy5pc0JlZ2lubmluZyl7Y29uc3QgYT1zLnBhcmFtcy52aXJ0dWFsJiZzLnBhcmFtcy52aXJ0dWFsLmVuYWJsZWQmJnMudmlydHVhbD9zLnZpcnR1YWwuc2xpZGVzLmxlbmd0aC0xOnMuc2xpZGVzLmxlbmd0aC0xO3JldHVybiBzLnNsaWRlVG8oYSx0LGUsaSl9cmV0dXJuIHMuc2xpZGVUbyhnLHQsZSxpKX0sc2xpZGVSZXNldDpmdW5jdGlvbih0PXRoaXMucGFyYW1zLnNwZWVkLGU9ITAsaSl7cmV0dXJuIHRoaXMuc2xpZGVUbyh0aGlzLmFjdGl2ZUluZGV4LHQsZSxpKX0sc2xpZGVUb0Nsb3Nlc3Q6ZnVuY3Rpb24odD10aGlzLnBhcmFtcy5zcGVlZCxlPSEwLGkscz0uNSl7Y29uc3QgYT10aGlzO2xldCBuPWEuYWN0aXZlSW5kZXg7Y29uc3Qgcj1NYXRoLm1pbihhLnBhcmFtcy5zbGlkZXNQZXJHcm91cFNraXAsbiksbz1yK01hdGguZmxvb3IoKG4tcikvYS5wYXJhbXMuc2xpZGVzUGVyR3JvdXApLGw9YS5ydGxUcmFuc2xhdGU/YS50cmFuc2xhdGU6LWEudHJhbnNsYXRlO2lmKGw+PWEuc25hcEdyaWRbb10pe2NvbnN0IHQ9YS5zbmFwR3JpZFtvXTtsLXQ+KGEuc25hcEdyaWRbbysxXS10KSpzJiYobis9YS5wYXJhbXMuc2xpZGVzUGVyR3JvdXApfWVsc2V7Y29uc3QgdD1hLnNuYXBHcmlkW28tMV07bC10PD0oYS5zbmFwR3JpZFtvXS10KSpzJiYobi09YS5wYXJhbXMuc2xpZGVzUGVyR3JvdXApfXJldHVybiBuPU1hdGgubWF4KG4sMCksbj1NYXRoLm1pbihuLGEuc2xpZGVzR3JpZC5sZW5ndGgtMSksYS5zbGlkZVRvKG4sdCxlLGkpfSxzbGlkZVRvQ2xpY2tlZFNsaWRlOmZ1bmN0aW9uKCl7Y29uc3QgdD10aGlzLHtwYXJhbXM6ZSwkd3JhcHBlckVsOml9PXQscz0iYXV0byI9PT1lLnNsaWRlc1BlclZpZXc/dC5zbGlkZXNQZXJWaWV3RHluYW1pYygpOmUuc2xpZGVzUGVyVmlldztsZXQgYSxuPXQuY2xpY2tlZEluZGV4O2lmKGUubG9vcCl7aWYodC5hbmltYXRpbmcpcmV0dXJuO2E9cGFyc2VJbnQobSh0LmNsaWNrZWRTbGlkZSkuYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKSwxMCksZS5jZW50ZXJlZFNsaWRlcz9uPHQubG9vcGVkU2xpZGVzLXMvMnx8bj50LnNsaWRlcy5sZW5ndGgtdC5sb29wZWRTbGlkZXMrcy8yPyh0Lmxvb3BGaXgoKSxuPWkuY2hpbGRyZW4oYC4ke2Uuc2xpZGVDbGFzc31bZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IiR7YX0iXTpub3QoLiR7ZS5zbGlkZUR1cGxpY2F0ZUNsYXNzfSlgKS5lcSgwKS5pbmRleCgpLHYoKCgpPT57dC5zbGlkZVRvKG4pfSkpKTp0LnNsaWRlVG8obik6bj50LnNsaWRlcy5sZW5ndGgtcz8odC5sb29wRml4KCksbj1pLmNoaWxkcmVuKGAuJHtlLnNsaWRlQ2xhc3N9W2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSIke2F9Il06bm90KC4ke2Uuc2xpZGVEdXBsaWNhdGVDbGFzc30pYCkuZXEoMCkuaW5kZXgoKSx2KCgoKT0+e3Quc2xpZGVUbyhuKX0pKSk6dC5zbGlkZVRvKG4pfWVsc2UgdC5zbGlkZVRvKG4pfX07ZnVuY3Rpb24gTyh0KXtjb25zdCBlPXRoaXMsaT1yKCkscz1sKCksYT1lLnRvdWNoRXZlbnRzRGF0YSx7cGFyYW1zOm4sdG91Y2hlczpvLGVuYWJsZWQ6Y309ZTtpZighYylyZXR1cm47aWYoZS5hbmltYXRpbmcmJm4ucHJldmVudEludGVyYWN0aW9uT25UcmFuc2l0aW9uKXJldHVybjshZS5hbmltYXRpbmcmJm4uY3NzTW9kZSYmbi5sb29wJiZlLmxvb3BGaXgoKTtsZXQgaD10O2gub3JpZ2luYWxFdmVudCYmKGg9aC5vcmlnaW5hbEV2ZW50KTtsZXQgZD1tKGgudGFyZ2V0KTtpZigid3JhcHBlciI9PT1uLnRvdWNoRXZlbnRzVGFyZ2V0JiYhZC5jbG9zZXN0KGUud3JhcHBlckVsKS5sZW5ndGgpcmV0dXJuO2lmKGEuaXNUb3VjaEV2ZW50PSJ0b3VjaHN0YXJ0Ij09PWgudHlwZSwhYS5pc1RvdWNoRXZlbnQmJiJ3aGljaCJpbiBoJiYzPT09aC53aGljaClyZXR1cm47aWYoIWEuaXNUb3VjaEV2ZW50JiYiYnV0dG9uImluIGgmJmguYnV0dG9uPjApcmV0dXJuO2lmKGEuaXNUb3VjaGVkJiZhLmlzTW92ZWQpcmV0dXJuO2NvbnN0IHU9ISFuLm5vU3dpcGluZ0NsYXNzJiYiIiE9PW4ubm9Td2lwaW5nQ2xhc3MscD10LmNvbXBvc2VkUGF0aD90LmNvbXBvc2VkUGF0aCgpOnQucGF0aDt1JiZoLnRhcmdldCYmaC50YXJnZXQuc2hhZG93Um9vdCYmcCYmKGQ9bShwWzBdKSk7Y29uc3QgZz1uLm5vU3dpcGluZ1NlbGVjdG9yP24ubm9Td2lwaW5nU2VsZWN0b3I6YC4ke24ubm9Td2lwaW5nQ2xhc3N9YCxmPSEoIWgudGFyZ2V0fHwhaC50YXJnZXQuc2hhZG93Um9vdCk7aWYobi5ub1N3aXBpbmcmJihmP2Z1bmN0aW9uKHQsZT10aGlzKXtyZXR1cm4gZnVuY3Rpb24gZShpKXtpZighaXx8aT09PXIoKXx8aT09PWwoKSlyZXR1cm4gbnVsbDtpLmFzc2lnbmVkU2xvdCYmKGk9aS5hc3NpZ25lZFNsb3QpO2NvbnN0IHM9aS5jbG9zZXN0KHQpO3JldHVybiBzfHxpLmdldFJvb3ROb2RlP3N8fGUoaS5nZXRSb290Tm9kZSgpLmhvc3QpOm51bGx9KGUpfShnLGRbMF0pOmQuY2xvc2VzdChnKVswXSkpcmV0dXJuIHZvaWQoZS5hbGxvd0NsaWNrPSEwKTtpZihuLnN3aXBlSGFuZGxlciYmIWQuY2xvc2VzdChuLnN3aXBlSGFuZGxlcilbMF0pcmV0dXJuO28uY3VycmVudFg9InRvdWNoc3RhcnQiPT09aC50eXBlP2gudGFyZ2V0VG91Y2hlc1swXS5wYWdlWDpoLnBhZ2VYLG8uY3VycmVudFk9InRvdWNoc3RhcnQiPT09aC50eXBlP2gudGFyZ2V0VG91Y2hlc1swXS5wYWdlWTpoLnBhZ2VZO2NvbnN0IHY9by5jdXJyZW50WCxiPW8uY3VycmVudFkseT1uLmVkZ2VTd2lwZURldGVjdGlvbnx8bi5pT1NFZGdlU3dpcGVEZXRlY3Rpb24sdz1uLmVkZ2VTd2lwZVRocmVzaG9sZHx8bi5pT1NFZGdlU3dpcGVUaHJlc2hvbGQ7aWYoeSYmKHY8PXd8fHY+PXMuaW5uZXJXaWR0aC13KSl7aWYoInByZXZlbnQiIT09eSlyZXR1cm47dC5wcmV2ZW50RGVmYXVsdCgpfWlmKE9iamVjdC5hc3NpZ24oYSx7aXNUb3VjaGVkOiEwLGlzTW92ZWQ6ITEsYWxsb3dUb3VjaENhbGxiYWNrczohMCxpc1Njcm9sbGluZzp2b2lkIDAsc3RhcnRNb3Zpbmc6dm9pZCAwfSksby5zdGFydFg9dixvLnN0YXJ0WT1iLGEudG91Y2hTdGFydFRpbWU9eCgpLGUuYWxsb3dDbGljaz0hMCxlLnVwZGF0ZVNpemUoKSxlLnN3aXBlRGlyZWN0aW9uPXZvaWQgMCxuLnRocmVzaG9sZD4wJiYoYS5hbGxvd1RocmVzaG9sZE1vdmU9ITEpLCJ0b3VjaHN0YXJ0IiE9PWgudHlwZSl7bGV0IHQ9ITA7ZC5pcyhhLmZvY3VzYWJsZUVsZW1lbnRzKSYmKHQ9ITEsIlNFTEVDVCI9PT1kWzBdLm5vZGVOYW1lJiYoYS5pc1RvdWNoZWQ9ITEpKSxpLmFjdGl2ZUVsZW1lbnQmJm0oaS5hY3RpdmVFbGVtZW50KS5pcyhhLmZvY3VzYWJsZUVsZW1lbnRzKSYmaS5hY3RpdmVFbGVtZW50IT09ZFswXSYmaS5hY3RpdmVFbGVtZW50LmJsdXIoKTtjb25zdCBzPXQmJmUuYWxsb3dUb3VjaE1vdmUmJm4udG91Y2hTdGFydFByZXZlbnREZWZhdWx0OyFuLnRvdWNoU3RhcnRGb3JjZVByZXZlbnREZWZhdWx0JiYhc3x8ZFswXS5pc0NvbnRlbnRFZGl0YWJsZXx8aC5wcmV2ZW50RGVmYXVsdCgpfWUucGFyYW1zLmZyZWVNb2RlJiZlLnBhcmFtcy5mcmVlTW9kZS5lbmFibGVkJiZlLmZyZWVNb2RlJiZlLmFuaW1hdGluZyYmIW4uY3NzTW9kZSYmZS5mcmVlTW9kZS5vblRvdWNoU3RhcnQoKSxlLmVtaXQoInRvdWNoU3RhcnQiLGgpfWZ1bmN0aW9uIEkodCl7Y29uc3QgZT1yKCksaT10aGlzLHM9aS50b3VjaEV2ZW50c0RhdGEse3BhcmFtczphLHRvdWNoZXM6bixydGxUcmFuc2xhdGU6byxlbmFibGVkOmx9PWk7aWYoIWwpcmV0dXJuO2xldCBjPXQ7aWYoYy5vcmlnaW5hbEV2ZW50JiYoYz1jLm9yaWdpbmFsRXZlbnQpLCFzLmlzVG91Y2hlZClyZXR1cm4gdm9pZChzLnN0YXJ0TW92aW5nJiZzLmlzU2Nyb2xsaW5nJiZpLmVtaXQoInRvdWNoTW92ZU9wcG9zaXRlIixjKSk7aWYocy5pc1RvdWNoRXZlbnQmJiJ0b3VjaG1vdmUiIT09Yy50eXBlKXJldHVybjtjb25zdCBoPSJ0b3VjaG1vdmUiPT09Yy50eXBlJiZjLnRhcmdldFRvdWNoZXMmJihjLnRhcmdldFRvdWNoZXNbMF18fGMuY2hhbmdlZFRvdWNoZXNbMF0pLGQ9InRvdWNobW92ZSI9PT1jLnR5cGU/aC5wYWdlWDpjLnBhZ2VYLHU9InRvdWNobW92ZSI9PT1jLnR5cGU/aC5wYWdlWTpjLnBhZ2VZO2lmKGMucHJldmVudGVkQnlOZXN0ZWRTd2lwZXIpcmV0dXJuIG4uc3RhcnRYPWQsdm9pZChuLnN0YXJ0WT11KTtpZighaS5hbGxvd1RvdWNoTW92ZSlyZXR1cm4gbShjLnRhcmdldCkuaXMocy5mb2N1c2FibGVFbGVtZW50cyl8fChpLmFsbG93Q2xpY2s9ITEpLHZvaWQocy5pc1RvdWNoZWQmJihPYmplY3QuYXNzaWduKG4se3N0YXJ0WDpkLHN0YXJ0WTp1LGN1cnJlbnRYOmQsY3VycmVudFk6dX0pLHMudG91Y2hTdGFydFRpbWU9eCgpKSk7aWYocy5pc1RvdWNoRXZlbnQmJmEudG91Y2hSZWxlYXNlT25FZGdlcyYmIWEubG9vcClpZihpLmlzVmVydGljYWwoKSl7aWYodTxuLnN0YXJ0WSYmaS50cmFuc2xhdGU8PWkubWF4VHJhbnNsYXRlKCl8fHU+bi5zdGFydFkmJmkudHJhbnNsYXRlPj1pLm1pblRyYW5zbGF0ZSgpKXJldHVybiBzLmlzVG91Y2hlZD0hMSx2b2lkKHMuaXNNb3ZlZD0hMSl9ZWxzZSBpZihkPG4uc3RhcnRYJiZpLnRyYW5zbGF0ZTw9aS5tYXhUcmFuc2xhdGUoKXx8ZD5uLnN0YXJ0WCYmaS50cmFuc2xhdGU+PWkubWluVHJhbnNsYXRlKCkpcmV0dXJuO2lmKHMuaXNUb3VjaEV2ZW50JiZlLmFjdGl2ZUVsZW1lbnQmJmMudGFyZ2V0PT09ZS5hY3RpdmVFbGVtZW50JiZtKGMudGFyZ2V0KS5pcyhzLmZvY3VzYWJsZUVsZW1lbnRzKSlyZXR1cm4gcy5pc01vdmVkPSEwLHZvaWQoaS5hbGxvd0NsaWNrPSExKTtpZihzLmFsbG93VG91Y2hDYWxsYmFja3MmJmkuZW1pdCgidG91Y2hNb3ZlIixjKSxjLnRhcmdldFRvdWNoZXMmJmMudGFyZ2V0VG91Y2hlcy5sZW5ndGg+MSlyZXR1cm47bi5jdXJyZW50WD1kLG4uY3VycmVudFk9dTtjb25zdCBwPW4uY3VycmVudFgtbi5zdGFydFgsZz1uLmN1cnJlbnRZLW4uc3RhcnRZO2lmKGkucGFyYW1zLnRocmVzaG9sZCYmTWF0aC5zcXJ0KHAqKjIrZyoqMik8aS5wYXJhbXMudGhyZXNob2xkKXJldHVybjtpZih2b2lkIDA9PT1zLmlzU2Nyb2xsaW5nKXtsZXQgdDtpLmlzSG9yaXpvbnRhbCgpJiZuLmN1cnJlbnRZPT09bi5zdGFydFl8fGkuaXNWZXJ0aWNhbCgpJiZuLmN1cnJlbnRYPT09bi5zdGFydFg/cy5pc1Njcm9sbGluZz0hMTpwKnArZypnPj0yNSYmKHQ9MTgwKk1hdGguYXRhbjIoTWF0aC5hYnMoZyksTWF0aC5hYnMocCkpL01hdGguUEkscy5pc1Njcm9sbGluZz1pLmlzSG9yaXpvbnRhbCgpP3Q+YS50b3VjaEFuZ2xlOjkwLXQ+YS50b3VjaEFuZ2xlKX1pZihzLmlzU2Nyb2xsaW5nJiZpLmVtaXQoInRvdWNoTW92ZU9wcG9zaXRlIixjKSx2b2lkIDA9PT1zLnN0YXJ0TW92aW5nJiYobi5jdXJyZW50WD09PW4uc3RhcnRYJiZuLmN1cnJlbnRZPT09bi5zdGFydFl8fChzLnN0YXJ0TW92aW5nPSEwKSkscy5pc1Njcm9sbGluZylyZXR1cm4gdm9pZChzLmlzVG91Y2hlZD0hMSk7aWYoIXMuc3RhcnRNb3ZpbmcpcmV0dXJuO2kuYWxsb3dDbGljaz0hMSwhYS5jc3NNb2RlJiZjLmNhbmNlbGFibGUmJmMucHJldmVudERlZmF1bHQoKSxhLnRvdWNoTW92ZVN0b3BQcm9wYWdhdGlvbiYmIWEubmVzdGVkJiZjLnN0b3BQcm9wYWdhdGlvbigpLHMuaXNNb3ZlZHx8KGEubG9vcCYmIWEuY3NzTW9kZSYmaS5sb29wRml4KCkscy5zdGFydFRyYW5zbGF0ZT1pLmdldFRyYW5zbGF0ZSgpLGkuc2V0VHJhbnNpdGlvbigwKSxpLmFuaW1hdGluZyYmaS4kd3JhcHBlckVsLnRyaWdnZXIoIndlYmtpdFRyYW5zaXRpb25FbmQgdHJhbnNpdGlvbmVuZCIpLHMuYWxsb3dNb21lbnR1bUJvdW5jZT0hMSwhYS5ncmFiQ3Vyc29yfHwhMCE9PWkuYWxsb3dTbGlkZU5leHQmJiEwIT09aS5hbGxvd1NsaWRlUHJldnx8aS5zZXRHcmFiQ3Vyc29yKCEwKSxpLmVtaXQoInNsaWRlckZpcnN0TW92ZSIsYykpLGkuZW1pdCgic2xpZGVyTW92ZSIsYykscy5pc01vdmVkPSEwO2xldCBmPWkuaXNIb3Jpem9udGFsKCk/cDpnO24uZGlmZj1mLGYqPWEudG91Y2hSYXRpbyxvJiYoZj0tZiksaS5zd2lwZURpcmVjdGlvbj1mPjA/InByZXYiOiJuZXh0IixzLmN1cnJlbnRUcmFuc2xhdGU9ZitzLnN0YXJ0VHJhbnNsYXRlO2xldCB2PSEwLGI9YS5yZXNpc3RhbmNlUmF0aW87aWYoYS50b3VjaFJlbGVhc2VPbkVkZ2VzJiYoYj0wKSxmPjAmJnMuY3VycmVudFRyYW5zbGF0ZT5pLm1pblRyYW5zbGF0ZSgpPyh2PSExLGEucmVzaXN0YW5jZSYmKHMuY3VycmVudFRyYW5zbGF0ZT1pLm1pblRyYW5zbGF0ZSgpLTErKC1pLm1pblRyYW5zbGF0ZSgpK3Muc3RhcnRUcmFuc2xhdGUrZikqKmIpKTpmPDAmJnMuY3VycmVudFRyYW5zbGF0ZTxpLm1heFRyYW5zbGF0ZSgpJiYodj0hMSxhLnJlc2lzdGFuY2UmJihzLmN1cnJlbnRUcmFuc2xhdGU9aS5tYXhUcmFuc2xhdGUoKSsxLShpLm1heFRyYW5zbGF0ZSgpLXMuc3RhcnRUcmFuc2xhdGUtZikqKmIpKSx2JiYoYy5wcmV2ZW50ZWRCeU5lc3RlZFN3aXBlcj0hMCksIWkuYWxsb3dTbGlkZU5leHQmJiJuZXh0Ij09PWkuc3dpcGVEaXJlY3Rpb24mJnMuY3VycmVudFRyYW5zbGF0ZTxzLnN0YXJ0VHJhbnNsYXRlJiYocy5jdXJyZW50VHJhbnNsYXRlPXMuc3RhcnRUcmFuc2xhdGUpLCFpLmFsbG93U2xpZGVQcmV2JiYicHJldiI9PT1pLnN3aXBlRGlyZWN0aW9uJiZzLmN1cnJlbnRUcmFuc2xhdGU+cy5zdGFydFRyYW5zbGF0ZSYmKHMuY3VycmVudFRyYW5zbGF0ZT1zLnN0YXJ0VHJhbnNsYXRlKSxpLmFsbG93U2xpZGVQcmV2fHxpLmFsbG93U2xpZGVOZXh0fHwocy5jdXJyZW50VHJhbnNsYXRlPXMuc3RhcnRUcmFuc2xhdGUpLGEudGhyZXNob2xkPjApe2lmKCEoTWF0aC5hYnMoZik+YS50aHJlc2hvbGR8fHMuYWxsb3dUaHJlc2hvbGRNb3ZlKSlyZXR1cm4gdm9pZChzLmN1cnJlbnRUcmFuc2xhdGU9cy5zdGFydFRyYW5zbGF0ZSk7aWYoIXMuYWxsb3dUaHJlc2hvbGRNb3ZlKXJldHVybiBzLmFsbG93VGhyZXNob2xkTW92ZT0hMCxuLnN0YXJ0WD1uLmN1cnJlbnRYLG4uc3RhcnRZPW4uY3VycmVudFkscy5jdXJyZW50VHJhbnNsYXRlPXMuc3RhcnRUcmFuc2xhdGUsdm9pZChuLmRpZmY9aS5pc0hvcml6b250YWwoKT9uLmN1cnJlbnRYLW4uc3RhcnRYOm4uY3VycmVudFktbi5zdGFydFkpfWEuZm9sbG93RmluZ2VyJiYhYS5jc3NNb2RlJiYoKGEuZnJlZU1vZGUmJmEuZnJlZU1vZGUuZW5hYmxlZCYmaS5mcmVlTW9kZXx8YS53YXRjaFNsaWRlc1Byb2dyZXNzKSYmKGkudXBkYXRlQWN0aXZlSW5kZXgoKSxpLnVwZGF0ZVNsaWRlc0NsYXNzZXMoKSksaS5wYXJhbXMuZnJlZU1vZGUmJmEuZnJlZU1vZGUuZW5hYmxlZCYmaS5mcmVlTW9kZSYmaS5mcmVlTW9kZS5vblRvdWNoTW92ZSgpLGkudXBkYXRlUHJvZ3Jlc3Mocy5jdXJyZW50VHJhbnNsYXRlKSxpLnNldFRyYW5zbGF0ZShzLmN1cnJlbnRUcmFuc2xhdGUpKX1mdW5jdGlvbiBGKHQpe2NvbnN0IGU9dGhpcyxpPWUudG91Y2hFdmVudHNEYXRhLHtwYXJhbXM6cyx0b3VjaGVzOmEscnRsVHJhbnNsYXRlOm4sc2xpZGVzR3JpZDpyLGVuYWJsZWQ6b309ZTtpZighbylyZXR1cm47bGV0IGw9dDtpZihsLm9yaWdpbmFsRXZlbnQmJihsPWwub3JpZ2luYWxFdmVudCksaS5hbGxvd1RvdWNoQ2FsbGJhY2tzJiZlLmVtaXQoInRvdWNoRW5kIixsKSxpLmFsbG93VG91Y2hDYWxsYmFja3M9ITEsIWkuaXNUb3VjaGVkKXJldHVybiBpLmlzTW92ZWQmJnMuZ3JhYkN1cnNvciYmZS5zZXRHcmFiQ3Vyc29yKCExKSxpLmlzTW92ZWQ9ITEsdm9pZChpLnN0YXJ0TW92aW5nPSExKTtzLmdyYWJDdXJzb3ImJmkuaXNNb3ZlZCYmaS5pc1RvdWNoZWQmJighMD09PWUuYWxsb3dTbGlkZU5leHR8fCEwPT09ZS5hbGxvd1NsaWRlUHJldikmJmUuc2V0R3JhYkN1cnNvcighMSk7Y29uc3QgYz14KCksaD1jLWkudG91Y2hTdGFydFRpbWU7aWYoZS5hbGxvd0NsaWNrKXtjb25zdCB0PWwucGF0aHx8bC5jb21wb3NlZFBhdGgmJmwuY29tcG9zZWRQYXRoKCk7ZS51cGRhdGVDbGlja2VkU2xpZGUodCYmdFswXXx8bC50YXJnZXQpLGUuZW1pdCgidGFwIGNsaWNrIixsKSxoPDMwMCYmYy1pLmxhc3RDbGlja1RpbWU8MzAwJiZlLmVtaXQoImRvdWJsZVRhcCBkb3VibGVDbGljayIsbCl9aWYoaS5sYXN0Q2xpY2tUaW1lPXgoKSx2KCgoKT0+e2UuZGVzdHJveWVkfHwoZS5hbGxvd0NsaWNrPSEwKX0pKSwhaS5pc1RvdWNoZWR8fCFpLmlzTW92ZWR8fCFlLnN3aXBlRGlyZWN0aW9ufHwwPT09YS5kaWZmfHxpLmN1cnJlbnRUcmFuc2xhdGU9PT1pLnN0YXJ0VHJhbnNsYXRlKXJldHVybiBpLmlzVG91Y2hlZD0hMSxpLmlzTW92ZWQ9ITEsdm9pZChpLnN0YXJ0TW92aW5nPSExKTtsZXQgZDtpZihpLmlzVG91Y2hlZD0hMSxpLmlzTW92ZWQ9ITEsaS5zdGFydE1vdmluZz0hMSxkPXMuZm9sbG93RmluZ2VyP24/ZS50cmFuc2xhdGU6LWUudHJhbnNsYXRlOi1pLmN1cnJlbnRUcmFuc2xhdGUscy5jc3NNb2RlKXJldHVybjtpZihlLnBhcmFtcy5mcmVlTW9kZSYmcy5mcmVlTW9kZS5lbmFibGVkKXJldHVybiB2b2lkIGUuZnJlZU1vZGUub25Ub3VjaEVuZCh7Y3VycmVudFBvczpkfSk7bGV0IHU9MCxwPWUuc2xpZGVzU2l6ZXNHcmlkWzBdO2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCs9dDxzLnNsaWRlc1Blckdyb3VwU2tpcD8xOnMuc2xpZGVzUGVyR3JvdXApe2NvbnN0IGU9dDxzLnNsaWRlc1Blckdyb3VwU2tpcC0xPzE6cy5zbGlkZXNQZXJHcm91cDt2b2lkIDAhPT1yW3QrZV0/ZD49clt0XSYmZDxyW3QrZV0mJih1PXQscD1yW3QrZV0tclt0XSk6ZD49clt0XSYmKHU9dCxwPXJbci5sZW5ndGgtMV0tcltyLmxlbmd0aC0yXSl9bGV0IGc9bnVsbCxmPW51bGw7cy5yZXdpbmQmJihlLmlzQmVnaW5uaW5nP2Y9ZS5wYXJhbXMudmlydHVhbCYmZS5wYXJhbXMudmlydHVhbC5lbmFibGVkJiZlLnZpcnR1YWw/ZS52aXJ0dWFsLnNsaWRlcy5sZW5ndGgtMTplLnNsaWRlcy5sZW5ndGgtMTplLmlzRW5kJiYoZz0wKSk7Y29uc3QgbT0oZC1yW3VdKS9wLGI9dTxzLnNsaWRlc1Blckdyb3VwU2tpcC0xPzE6cy5zbGlkZXNQZXJHcm91cDtpZihoPnMubG9uZ1N3aXBlc01zKXtpZighcy5sb25nU3dpcGVzKXJldHVybiB2b2lkIGUuc2xpZGVUbyhlLmFjdGl2ZUluZGV4KTsibmV4dCI9PT1lLnN3aXBlRGlyZWN0aW9uJiYobT49cy5sb25nU3dpcGVzUmF0aW8/ZS5zbGlkZVRvKHMucmV3aW5kJiZlLmlzRW5kP2c6dStiKTplLnNsaWRlVG8odSkpLCJwcmV2Ij09PWUuc3dpcGVEaXJlY3Rpb24mJihtPjEtcy5sb25nU3dpcGVzUmF0aW8/ZS5zbGlkZVRvKHUrYik6bnVsbCE9PWYmJm08MCYmTWF0aC5hYnMobSk+cy5sb25nU3dpcGVzUmF0aW8/ZS5zbGlkZVRvKGYpOmUuc2xpZGVUbyh1KSl9ZWxzZXtpZighcy5zaG9ydFN3aXBlcylyZXR1cm4gdm9pZCBlLnNsaWRlVG8oZS5hY3RpdmVJbmRleCk7IWUubmF2aWdhdGlvbnx8bC50YXJnZXQhPT1lLm5hdmlnYXRpb24ubmV4dEVsJiZsLnRhcmdldCE9PWUubmF2aWdhdGlvbi5wcmV2RWw/KCJuZXh0Ij09PWUuc3dpcGVEaXJlY3Rpb24mJmUuc2xpZGVUbyhudWxsIT09Zz9nOnUrYiksInByZXYiPT09ZS5zd2lwZURpcmVjdGlvbiYmZS5zbGlkZVRvKG51bGwhPT1mP2Y6dSkpOmwudGFyZ2V0PT09ZS5uYXZpZ2F0aW9uLm5leHRFbD9lLnNsaWRlVG8odStiKTplLnNsaWRlVG8odSl9fWZ1bmN0aW9uIEQoKXtjb25zdCB0PXRoaXMse3BhcmFtczplLGVsOml9PXQ7aWYoaSYmMD09PWkub2Zmc2V0V2lkdGgpcmV0dXJuO2UuYnJlYWtwb2ludHMmJnQuc2V0QnJlYWtwb2ludCgpO2NvbnN0e2FsbG93U2xpZGVOZXh0OnMsYWxsb3dTbGlkZVByZXY6YSxzbmFwR3JpZDpufT10O3QuYWxsb3dTbGlkZU5leHQ9ITAsdC5hbGxvd1NsaWRlUHJldj0hMCx0LnVwZGF0ZVNpemUoKSx0LnVwZGF0ZVNsaWRlcygpLHQudXBkYXRlU2xpZGVzQ2xhc3NlcygpLCgiYXV0byI9PT1lLnNsaWRlc1BlclZpZXd8fGUuc2xpZGVzUGVyVmlldz4xKSYmdC5pc0VuZCYmIXQuaXNCZWdpbm5pbmcmJiF0LnBhcmFtcy5jZW50ZXJlZFNsaWRlcz90LnNsaWRlVG8odC5zbGlkZXMubGVuZ3RoLTEsMCwhMSwhMCk6dC5zbGlkZVRvKHQuYWN0aXZlSW5kZXgsMCwhMSwhMCksdC5hdXRvcGxheSYmdC5hdXRvcGxheS5ydW5uaW5nJiZ0LmF1dG9wbGF5LnBhdXNlZCYmdC5hdXRvcGxheS5ydW4oKSx0LmFsbG93U2xpZGVQcmV2PWEsdC5hbGxvd1NsaWRlTmV4dD1zLHQucGFyYW1zLndhdGNoT3ZlcmZsb3cmJm4hPT10LnNuYXBHcmlkJiZ0LmNoZWNrT3ZlcmZsb3coKX1mdW5jdGlvbiB6KHQpe2NvbnN0IGU9dGhpcztlLmVuYWJsZWQmJihlLmFsbG93Q2xpY2t8fChlLnBhcmFtcy5wcmV2ZW50Q2xpY2tzJiZ0LnByZXZlbnREZWZhdWx0KCksZS5wYXJhbXMucHJldmVudENsaWNrc1Byb3BhZ2F0aW9uJiZlLmFuaW1hdGluZyYmKHQuc3RvcFByb3BhZ2F0aW9uKCksdC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSkpKX1mdW5jdGlvbiBOKCl7Y29uc3QgdD10aGlzLHt3cmFwcGVyRWw6ZSxydGxUcmFuc2xhdGU6aSxlbmFibGVkOnN9PXQ7aWYoIXMpcmV0dXJuO2xldCBhO3QucHJldmlvdXNUcmFuc2xhdGU9dC50cmFuc2xhdGUsdC5pc0hvcml6b250YWwoKT90LnRyYW5zbGF0ZT0tZS5zY3JvbGxMZWZ0OnQudHJhbnNsYXRlPS1lLnNjcm9sbFRvcCwwPT09dC50cmFuc2xhdGUmJih0LnRyYW5zbGF0ZT0wKSx0LnVwZGF0ZUFjdGl2ZUluZGV4KCksdC51cGRhdGVTbGlkZXNDbGFzc2VzKCk7Y29uc3Qgbj10Lm1heFRyYW5zbGF0ZSgpLXQubWluVHJhbnNsYXRlKCk7YT0wPT09bj8wOih0LnRyYW5zbGF0ZS10Lm1pblRyYW5zbGF0ZSgpKS9uLGEhPT10LnByb2dyZXNzJiZ0LnVwZGF0ZVByb2dyZXNzKGk/LXQudHJhbnNsYXRlOnQudHJhbnNsYXRlKSx0LmVtaXQoInNldFRyYW5zbGF0ZSIsdC50cmFuc2xhdGUsITEpfWxldCBSPSExO2Z1bmN0aW9uIF8oKXt9Y29uc3QgQj0odCxlKT0+e2NvbnN0IGk9cigpLHtwYXJhbXM6cyx0b3VjaEV2ZW50czphLGVsOm4sd3JhcHBlckVsOm8sZGV2aWNlOmwsc3VwcG9ydDpjfT10LGg9ISFzLm5lc3RlZCxkPSJvbiI9PT1lPyJhZGRFdmVudExpc3RlbmVyIjoicmVtb3ZlRXZlbnRMaXN0ZW5lciIsdT1lO2lmKGMudG91Y2gpe2NvbnN0IGU9ISgidG91Y2hzdGFydCIhPT1hLnN0YXJ0fHwhYy5wYXNzaXZlTGlzdGVuZXJ8fCFzLnBhc3NpdmVMaXN0ZW5lcnMpJiZ7cGFzc2l2ZTohMCxjYXB0dXJlOiExfTtuW2RdKGEuc3RhcnQsdC5vblRvdWNoU3RhcnQsZSksbltkXShhLm1vdmUsdC5vblRvdWNoTW92ZSxjLnBhc3NpdmVMaXN0ZW5lcj97cGFzc2l2ZTohMSxjYXB0dXJlOmh9OmgpLG5bZF0oYS5lbmQsdC5vblRvdWNoRW5kLGUpLGEuY2FuY2VsJiZuW2RdKGEuY2FuY2VsLHQub25Ub3VjaEVuZCxlKX1lbHNlIG5bZF0oYS5zdGFydCx0Lm9uVG91Y2hTdGFydCwhMSksaVtkXShhLm1vdmUsdC5vblRvdWNoTW92ZSxoKSxpW2RdKGEuZW5kLHQub25Ub3VjaEVuZCwhMSk7KHMucHJldmVudENsaWNrc3x8cy5wcmV2ZW50Q2xpY2tzUHJvcGFnYXRpb24pJiZuW2RdKCJjbGljayIsdC5vbkNsaWNrLCEwKSxzLmNzc01vZGUmJm9bZF0oInNjcm9sbCIsdC5vblNjcm9sbCkscy51cGRhdGVPbldpbmRvd1Jlc2l6ZT90W3VdKGwuaW9zfHxsLmFuZHJvaWQ/InJlc2l6ZSBvcmllbnRhdGlvbmNoYW5nZSBvYnNlcnZlclVwZGF0ZSI6InJlc2l6ZSBvYnNlcnZlclVwZGF0ZSIsRCwhMCk6dFt1XSgib2JzZXJ2ZXJVcGRhdGUiLEQsITApfTt2YXIgWD17YXR0YWNoRXZlbnRzOmZ1bmN0aW9uKCl7Y29uc3QgdD10aGlzLGU9cigpLHtwYXJhbXM6aSxzdXBwb3J0OnN9PXQ7dC5vblRvdWNoU3RhcnQ9Ty5iaW5kKHQpLHQub25Ub3VjaE1vdmU9SS5iaW5kKHQpLHQub25Ub3VjaEVuZD1GLmJpbmQodCksaS5jc3NNb2RlJiYodC5vblNjcm9sbD1OLmJpbmQodCkpLHQub25DbGljaz16LmJpbmQodCkscy50b3VjaCYmIVImJihlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLF8pLFI9ITApLEIodCwib24iKX0sZGV0YWNoRXZlbnRzOmZ1bmN0aW9uKCl7Qih0aGlzLCJvZmYiKX19O2NvbnN0IEg9KHQsZSk9PnQuZ3JpZCYmZS5ncmlkJiZlLmdyaWQucm93cz4xO3ZhciBZPXthZGRDbGFzc2VzOmZ1bmN0aW9uKCl7Y29uc3QgdD10aGlzLHtjbGFzc05hbWVzOmUscGFyYW1zOmkscnRsOnMsJGVsOmEsZGV2aWNlOm4sc3VwcG9ydDpyfT10LG89ZnVuY3Rpb24odCxlKXtjb25zdCBpPVtdO3JldHVybiB0LmZvckVhY2goKHQ9Pnsib2JqZWN0Ij09dHlwZW9mIHQ/T2JqZWN0LmtleXModCkuZm9yRWFjaCgocz0+e3Rbc10mJmkucHVzaChlK3MpfSkpOiJzdHJpbmciPT10eXBlb2YgdCYmaS5wdXNoKGUrdCl9KSksaX0oWyJpbml0aWFsaXplZCIsaS5kaXJlY3Rpb24seyJwb2ludGVyLWV2ZW50cyI6IXIudG91Y2h9LHsiZnJlZS1tb2RlIjp0LnBhcmFtcy5mcmVlTW9kZSYmaS5mcmVlTW9kZS5lbmFibGVkfSx7YXV0b2hlaWdodDppLmF1dG9IZWlnaHR9LHtydGw6c30se2dyaWQ6aS5ncmlkJiZpLmdyaWQucm93cz4xfSx7ImdyaWQtY29sdW1uIjppLmdyaWQmJmkuZ3JpZC5yb3dzPjEmJiJjb2x1bW4iPT09aS5ncmlkLmZpbGx9LHthbmRyb2lkOm4uYW5kcm9pZH0se2lvczpuLmlvc30seyJjc3MtbW9kZSI6aS5jc3NNb2RlfSx7Y2VudGVyZWQ6aS5jc3NNb2RlJiZpLmNlbnRlcmVkU2xpZGVzfSx7IndhdGNoLXByb2dyZXNzIjppLndhdGNoU2xpZGVzUHJvZ3Jlc3N9XSxpLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3MpO2UucHVzaCguLi5vKSxhLmFkZENsYXNzKFsuLi5lXS5qb2luKCIgIikpLHQuZW1pdENvbnRhaW5lckNsYXNzZXMoKX0scmVtb3ZlQ2xhc3NlczpmdW5jdGlvbigpe2NvbnN0eyRlbDp0LGNsYXNzTmFtZXM6ZX09dGhpczt0LnJlbW92ZUNsYXNzKGUuam9pbigiICIpKSx0aGlzLmVtaXRDb250YWluZXJDbGFzc2VzKCl9fSxXPXtpbml0OiEwLGRpcmVjdGlvbjoiaG9yaXpvbnRhbCIsdG91Y2hFdmVudHNUYXJnZXQ6IndyYXBwZXIiLGluaXRpYWxTbGlkZTowLHNwZWVkOjMwMCxjc3NNb2RlOiExLHVwZGF0ZU9uV2luZG93UmVzaXplOiEwLHJlc2l6ZU9ic2VydmVyOiEwLG5lc3RlZDohMSxjcmVhdGVFbGVtZW50czohMSxlbmFibGVkOiEwLGZvY3VzYWJsZUVsZW1lbnRzOiJpbnB1dCwgc2VsZWN0LCBvcHRpb24sIHRleHRhcmVhLCBidXR0b24sIHZpZGVvLCBsYWJlbCIsd2lkdGg6bnVsbCxoZWlnaHQ6bnVsbCxwcmV2ZW50SW50ZXJhY3Rpb25PblRyYW5zaXRpb246ITEsdXNlckFnZW50Om51bGwsdXJsOm51bGwsZWRnZVN3aXBlRGV0ZWN0aW9uOiExLGVkZ2VTd2lwZVRocmVzaG9sZDoyMCxhdXRvSGVpZ2h0OiExLHNldFdyYXBwZXJTaXplOiExLHZpcnR1YWxUcmFuc2xhdGU6ITEsZWZmZWN0OiJzbGlkZSIsYnJlYWtwb2ludHM6dm9pZCAwLGJyZWFrcG9pbnRzQmFzZToid2luZG93IixzcGFjZUJldHdlZW46MCxzbGlkZXNQZXJWaWV3OjEsc2xpZGVzUGVyR3JvdXA6MSxzbGlkZXNQZXJHcm91cFNraXA6MCxzbGlkZXNQZXJHcm91cEF1dG86ITEsY2VudGVyZWRTbGlkZXM6ITEsY2VudGVyZWRTbGlkZXNCb3VuZHM6ITEsc2xpZGVzT2Zmc2V0QmVmb3JlOjAsc2xpZGVzT2Zmc2V0QWZ0ZXI6MCxub3JtYWxpemVTbGlkZUluZGV4OiEwLGNlbnRlckluc3VmZmljaWVudFNsaWRlczohMSx3YXRjaE92ZXJmbG93OiEwLHJvdW5kTGVuZ3RoczohMSx0b3VjaFJhdGlvOjEsdG91Y2hBbmdsZTo0NSxzaW11bGF0ZVRvdWNoOiEwLHNob3J0U3dpcGVzOiEwLGxvbmdTd2lwZXM6ITAsbG9uZ1N3aXBlc1JhdGlvOi41LGxvbmdTd2lwZXNNczozMDAsZm9sbG93RmluZ2VyOiEwLGFsbG93VG91Y2hNb3ZlOiEwLHRocmVzaG9sZDowLHRvdWNoTW92ZVN0b3BQcm9wYWdhdGlvbjohMSx0b3VjaFN0YXJ0UHJldmVudERlZmF1bHQ6ITAsdG91Y2hTdGFydEZvcmNlUHJldmVudERlZmF1bHQ6ITEsdG91Y2hSZWxlYXNlT25FZGdlczohMSx1bmlxdWVOYXZFbGVtZW50czohMCxyZXNpc3RhbmNlOiEwLHJlc2lzdGFuY2VSYXRpbzouODUsd2F0Y2hTbGlkZXNQcm9ncmVzczohMSxncmFiQ3Vyc29yOiExLHByZXZlbnRDbGlja3M6ITAscHJldmVudENsaWNrc1Byb3BhZ2F0aW9uOiEwLHNsaWRlVG9DbGlja2VkU2xpZGU6ITEscHJlbG9hZEltYWdlczohMCx1cGRhdGVPbkltYWdlc1JlYWR5OiEwLGxvb3A6ITEsbG9vcEFkZGl0aW9uYWxTbGlkZXM6MCxsb29wZWRTbGlkZXM6bnVsbCxsb29wZWRTbGlkZXNMaW1pdDohMCxsb29wRmlsbEdyb3VwV2l0aEJsYW5rOiExLGxvb3BQcmV2ZW50c1NsaWRlOiEwLHJld2luZDohMSxhbGxvd1NsaWRlUHJldjohMCxhbGxvd1NsaWRlTmV4dDohMCxzd2lwZUhhbmRsZXI6bnVsbCxub1N3aXBpbmc6ITAsbm9Td2lwaW5nQ2xhc3M6InN3aXBlci1uby1zd2lwaW5nIixub1N3aXBpbmdTZWxlY3RvcjpudWxsLHBhc3NpdmVMaXN0ZW5lcnM6ITAsbWF4QmFja2ZhY2VIaWRkZW5TbGlkZXM6MTAsY29udGFpbmVyTW9kaWZpZXJDbGFzczoic3dpcGVyLSIsc2xpZGVDbGFzczoic3dpcGVyLXNsaWRlIixzbGlkZUJsYW5rQ2xhc3M6InN3aXBlci1zbGlkZS1pbnZpc2libGUtYmxhbmsiLHNsaWRlQWN0aXZlQ2xhc3M6InN3aXBlci1zbGlkZS1hY3RpdmUiLHNsaWRlRHVwbGljYXRlQWN0aXZlQ2xhc3M6InN3aXBlci1zbGlkZS1kdXBsaWNhdGUtYWN0aXZlIixzbGlkZVZpc2libGVDbGFzczoic3dpcGVyLXNsaWRlLXZpc2libGUiLHNsaWRlRHVwbGljYXRlQ2xhc3M6InN3aXBlci1zbGlkZS1kdXBsaWNhdGUiLHNsaWRlTmV4dENsYXNzOiJzd2lwZXItc2xpZGUtbmV4dCIsc2xpZGVEdXBsaWNhdGVOZXh0Q2xhc3M6InN3aXBlci1zbGlkZS1kdXBsaWNhdGUtbmV4dCIsc2xpZGVQcmV2Q2xhc3M6InN3aXBlci1zbGlkZS1wcmV2IixzbGlkZUR1cGxpY2F0ZVByZXZDbGFzczoic3dpcGVyLXNsaWRlLWR1cGxpY2F0ZS1wcmV2Iix3cmFwcGVyQ2xhc3M6InN3aXBlci13cmFwcGVyIixydW5DYWxsYmFja3NPbkluaXQ6ITAsX2VtaXRDbGFzc2VzOiExfTtmdW5jdGlvbiAkKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKGk9e30pe2NvbnN0IHM9T2JqZWN0LmtleXMoaSlbMF0sYT1pW3NdOyJvYmplY3QiPT10eXBlb2YgYSYmbnVsbCE9PWE/KFsibmF2aWdhdGlvbiIsInBhZ2luYXRpb24iLCJzY3JvbGxiYXIiXS5pbmRleE9mKHMpPj0wJiYhMD09PXRbc10mJih0W3NdPXthdXRvOiEwfSkscyBpbiB0JiYiZW5hYmxlZCJpbiBhPyghMD09PXRbc10mJih0W3NdPXtlbmFibGVkOiEwfSksIm9iamVjdCIhPXR5cGVvZiB0W3NdfHwiZW5hYmxlZCJpbiB0W3NdfHwodFtzXS5lbmFibGVkPSEwKSx0W3NdfHwodFtzXT17ZW5hYmxlZDohMX0pLHkoZSxpKSk6eShlLGkpKTp5KGUsaSl9fWNvbnN0IFY9e2V2ZW50c0VtaXR0ZXI6VCx1cGRhdGU6TCx0cmFuc2xhdGU6e2dldFRyYW5zbGF0ZTpmdW5jdGlvbih0PSh0aGlzLmlzSG9yaXpvbnRhbCgpPyJ4IjoieSIpKXtjb25zdHtwYXJhbXM6ZSxydGxUcmFuc2xhdGU6aSx0cmFuc2xhdGU6cywkd3JhcHBlckVsOmF9PXRoaXM7aWYoZS52aXJ0dWFsVHJhbnNsYXRlKXJldHVybiBpPy1zOnM7aWYoZS5jc3NNb2RlKXJldHVybiBzO2xldCBuPWZ1bmN0aW9uKHQsZT0ieCIpe2NvbnN0IGk9bCgpO2xldCBzLGEsbjtjb25zdCByPWZ1bmN0aW9uKHQpe2NvbnN0IGU9bCgpO2xldCBpO3JldHVybiBlLmdldENvbXB1dGVkU3R5bGUmJihpPWUuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpKSwhaSYmdC5jdXJyZW50U3R5bGUmJihpPXQuY3VycmVudFN0eWxlKSxpfHwoaT10LnN0eWxlKSxpfSh0KTtyZXR1cm4gaS5XZWJLaXRDU1NNYXRyaXg/KGE9ci50cmFuc2Zvcm18fHIud2Via2l0VHJhbnNmb3JtLGEuc3BsaXQoIiwiKS5sZW5ndGg+NiYmKGE9YS5zcGxpdCgiLCAiKS5tYXAoKHQ9PnQucmVwbGFjZSgiLCIsIi4iKSkpLmpvaW4oIiwgIikpLG49bmV3IGkuV2ViS2l0Q1NTTWF0cml4KCJub25lIj09PWE/IiI6YSkpOihuPXIuTW96VHJhbnNmb3JtfHxyLk9UcmFuc2Zvcm18fHIuTXNUcmFuc2Zvcm18fHIubXNUcmFuc2Zvcm18fHIudHJhbnNmb3JtfHxyLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpLnJlcGxhY2UoInRyYW5zbGF0ZSgiLCJtYXRyaXgoMSwgMCwgMCwgMSwiKSxzPW4udG9TdHJpbmcoKS5zcGxpdCgiLCIpKSwieCI9PT1lJiYoYT1pLldlYktpdENTU01hdHJpeD9uLm00MToxNj09PXMubGVuZ3RoP3BhcnNlRmxvYXQoc1sxMl0pOnBhcnNlRmxvYXQoc1s0XSkpLCJ5Ij09PWUmJihhPWkuV2ViS2l0Q1NTTWF0cml4P24ubTQyOjE2PT09cy5sZW5ndGg/cGFyc2VGbG9hdChzWzEzXSk6cGFyc2VGbG9hdChzWzVdKSksYXx8MH0oYVswXSx0KTtyZXR1cm4gaSYmKG49LW4pLG58fDB9LHNldFRyYW5zbGF0ZTpmdW5jdGlvbih0LGUpe2NvbnN0IGk9dGhpcyx7cnRsVHJhbnNsYXRlOnMscGFyYW1zOmEsJHdyYXBwZXJFbDpuLHdyYXBwZXJFbDpyLHByb2dyZXNzOm99PWk7bGV0IGwsYz0wLGg9MDtpLmlzSG9yaXpvbnRhbCgpP2M9cz8tdDp0Omg9dCxhLnJvdW5kTGVuZ3RocyYmKGM9TWF0aC5mbG9vcihjKSxoPU1hdGguZmxvb3IoaCkpLGEuY3NzTW9kZT9yW2kuaXNIb3Jpem9udGFsKCk/InNjcm9sbExlZnQiOiJzY3JvbGxUb3AiXT1pLmlzSG9yaXpvbnRhbCgpPy1jOi1oOmEudmlydHVhbFRyYW5zbGF0ZXx8bi50cmFuc2Zvcm0oYHRyYW5zbGF0ZTNkKCR7Y31weCwgJHtofXB4LCAwcHgpYCksaS5wcmV2aW91c1RyYW5zbGF0ZT1pLnRyYW5zbGF0ZSxpLnRyYW5zbGF0ZT1pLmlzSG9yaXpvbnRhbCgpP2M6aDtjb25zdCBkPWkubWF4VHJhbnNsYXRlKCktaS5taW5UcmFuc2xhdGUoKTtsPTA9PT1kPzA6KHQtaS5taW5UcmFuc2xhdGUoKSkvZCxsIT09byYmaS51cGRhdGVQcm9ncmVzcyh0KSxpLmVtaXQoInNldFRyYW5zbGF0ZSIsaS50cmFuc2xhdGUsZSl9LG1pblRyYW5zbGF0ZTpmdW5jdGlvbigpe3JldHVybi10aGlzLnNuYXBHcmlkWzBdfSxtYXhUcmFuc2xhdGU6ZnVuY3Rpb24oKXtyZXR1cm4tdGhpcy5zbmFwR3JpZFt0aGlzLnNuYXBHcmlkLmxlbmd0aC0xXX0sdHJhbnNsYXRlVG86ZnVuY3Rpb24odD0wLGU9dGhpcy5wYXJhbXMuc3BlZWQsaT0hMCxzPSEwLGEpe2NvbnN0IG49dGhpcyx7cGFyYW1zOnIsd3JhcHBlckVsOm99PW47aWYobi5hbmltYXRpbmcmJnIucHJldmVudEludGVyYWN0aW9uT25UcmFuc2l0aW9uKXJldHVybiExO2NvbnN0IGw9bi5taW5UcmFuc2xhdGUoKSxjPW4ubWF4VHJhbnNsYXRlKCk7bGV0IGg7aWYoaD1zJiZ0Pmw/bDpzJiZ0PGM/Yzp0LG4udXBkYXRlUHJvZ3Jlc3MoaCksci5jc3NNb2RlKXtjb25zdCB0PW4uaXNIb3Jpem9udGFsKCk7aWYoMD09PWUpb1t0PyJzY3JvbGxMZWZ0Ijoic2Nyb2xsVG9wIl09LWg7ZWxzZXtpZighbi5zdXBwb3J0LnNtb290aFNjcm9sbClyZXR1cm4gayh7c3dpcGVyOm4sdGFyZ2V0UG9zaXRpb246LWgsc2lkZTp0PyJsZWZ0IjoidG9wIn0pLCEwO28uc2Nyb2xsVG8oe1t0PyJsZWZ0IjoidG9wIl06LWgsYmVoYXZpb3I6InNtb290aCJ9KX1yZXR1cm4hMH1yZXR1cm4gMD09PWU/KG4uc2V0VHJhbnNpdGlvbigwKSxuLnNldFRyYW5zbGF0ZShoKSxpJiYobi5lbWl0KCJiZWZvcmVUcmFuc2l0aW9uU3RhcnQiLGUsYSksbi5lbWl0KCJ0cmFuc2l0aW9uRW5kIikpKToobi5zZXRUcmFuc2l0aW9uKGUpLG4uc2V0VHJhbnNsYXRlKGgpLGkmJihuLmVtaXQoImJlZm9yZVRyYW5zaXRpb25TdGFydCIsZSxhKSxuLmVtaXQoInRyYW5zaXRpb25TdGFydCIpKSxuLmFuaW1hdGluZ3x8KG4uYW5pbWF0aW5nPSEwLG4ub25UcmFuc2xhdGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kfHwobi5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQ9ZnVuY3Rpb24odCl7biYmIW4uZGVzdHJveWVkJiZ0LnRhcmdldD09PXRoaXMmJihuLiR3cmFwcGVyRWxbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsbi5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQpLG4uJHdyYXBwZXJFbFswXS5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRUcmFuc2l0aW9uRW5kIixuLm9uVHJhbnNsYXRlVG9XcmFwcGVyVHJhbnNpdGlvbkVuZCksbi5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQ9bnVsbCxkZWxldGUgbi5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQsaSYmbi5lbWl0KCJ0cmFuc2l0aW9uRW5kIikpfSksbi4kd3JhcHBlckVsWzBdLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLG4ub25UcmFuc2xhdGVUb1dyYXBwZXJUcmFuc2l0aW9uRW5kKSxuLiR3cmFwcGVyRWxbMF0uYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIsbi5vblRyYW5zbGF0ZVRvV3JhcHBlclRyYW5zaXRpb25FbmQpKSksITB9fSx0cmFuc2l0aW9uOntzZXRUcmFuc2l0aW9uOmZ1bmN0aW9uKHQsZSl7Y29uc3QgaT10aGlzO2kucGFyYW1zLmNzc01vZGV8fGkuJHdyYXBwZXJFbC50cmFuc2l0aW9uKHQpLGkuZW1pdCgic2V0VHJhbnNpdGlvbiIsdCxlKX0sdHJhbnNpdGlvblN0YXJ0OmZ1bmN0aW9uKHQ9ITAsZSl7Y29uc3QgaT10aGlzLHtwYXJhbXM6c309aTtzLmNzc01vZGV8fChzLmF1dG9IZWlnaHQmJmkudXBkYXRlQXV0b0hlaWdodCgpLFAoe3N3aXBlcjppLHJ1bkNhbGxiYWNrczp0LGRpcmVjdGlvbjplLHN0ZXA6IlN0YXJ0In0pKX0sdHJhbnNpdGlvbkVuZDpmdW5jdGlvbih0PSEwLGUpe2NvbnN0IGk9dGhpcyx7cGFyYW1zOnN9PWk7aS5hbmltYXRpbmc9ITEscy5jc3NNb2RlfHwoaS5zZXRUcmFuc2l0aW9uKDApLFAoe3N3aXBlcjppLHJ1bkNhbGxiYWNrczp0LGRpcmVjdGlvbjplLHN0ZXA6IkVuZCJ9KSl9fSxzbGlkZTpNLGxvb3A6e2xvb3BDcmVhdGU6ZnVuY3Rpb24oKXtjb25zdCB0PXRoaXMsZT1yKCkse3BhcmFtczppLCR3cmFwcGVyRWw6c309dCxhPXMuY2hpbGRyZW4oKS5sZW5ndGg+MD9tKHMuY2hpbGRyZW4oKVswXS5wYXJlbnROb2RlKTpzO2EuY2hpbGRyZW4oYC4ke2kuc2xpZGVDbGFzc30uJHtpLnNsaWRlRHVwbGljYXRlQ2xhc3N9YCkucmVtb3ZlKCk7bGV0IG49YS5jaGlsZHJlbihgLiR7aS5zbGlkZUNsYXNzfWApO2lmKGkubG9vcEZpbGxHcm91cFdpdGhCbGFuayl7Y29uc3QgdD1pLnNsaWRlc1Blckdyb3VwLW4ubGVuZ3RoJWkuc2xpZGVzUGVyR3JvdXA7aWYodCE9PWkuc2xpZGVzUGVyR3JvdXApe2ZvcihsZXQgcz0wO3M8dDtzKz0xKXtjb25zdCB0PW0oZS5jcmVhdGVFbGVtZW50KCJkaXYiKSkuYWRkQ2xhc3MoYCR7aS5zbGlkZUNsYXNzfSAke2kuc2xpZGVCbGFua0NsYXNzfWApO2EuYXBwZW5kKHQpfW49YS5jaGlsZHJlbihgLiR7aS5zbGlkZUNsYXNzfWApfX0iYXV0byIhPT1pLnNsaWRlc1BlclZpZXd8fGkubG9vcGVkU2xpZGVzfHwoaS5sb29wZWRTbGlkZXM9bi5sZW5ndGgpLHQubG9vcGVkU2xpZGVzPU1hdGguY2VpbChwYXJzZUZsb2F0KGkubG9vcGVkU2xpZGVzfHxpLnNsaWRlc1BlclZpZXcsMTApKSx0Lmxvb3BlZFNsaWRlcys9aS5sb29wQWRkaXRpb25hbFNsaWRlcyx0Lmxvb3BlZFNsaWRlcz5uLmxlbmd0aCYmdC5wYXJhbXMubG9vcGVkU2xpZGVzTGltaXQmJih0Lmxvb3BlZFNsaWRlcz1uLmxlbmd0aCk7Y29uc3Qgbz1bXSxsPVtdO24uZWFjaCgoKHQsZSk9PnttKHQpLmF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IixlKX0pKTtmb3IobGV0IGU9MDtlPHQubG9vcGVkU2xpZGVzO2UrPTEpe2NvbnN0IHQ9ZS1NYXRoLmZsb29yKGUvbi5sZW5ndGgpKm4ubGVuZ3RoO2wucHVzaChuLmVxKHQpWzBdKSxvLnVuc2hpZnQobi5lcShuLmxlbmd0aC10LTEpWzBdKX1mb3IobGV0IHQ9MDt0PGwubGVuZ3RoO3QrPTEpYS5hcHBlbmQobShsW3RdLmNsb25lTm9kZSghMCkpLmFkZENsYXNzKGkuc2xpZGVEdXBsaWNhdGVDbGFzcykpO2ZvcihsZXQgdD1vLmxlbmd0aC0xO3Q+PTA7dC09MSlhLnByZXBlbmQobShvW3RdLmNsb25lTm9kZSghMCkpLmFkZENsYXNzKGkuc2xpZGVEdXBsaWNhdGVDbGFzcykpfSxsb29wRml4OmZ1bmN0aW9uKCl7Y29uc3QgdD10aGlzO3QuZW1pdCgiYmVmb3JlTG9vcEZpeCIpO2NvbnN0e2FjdGl2ZUluZGV4OmUsc2xpZGVzOmksbG9vcGVkU2xpZGVzOnMsYWxsb3dTbGlkZVByZXY6YSxhbGxvd1NsaWRlTmV4dDpuLHNuYXBHcmlkOnIscnRsVHJhbnNsYXRlOm99PXQ7bGV0IGw7dC5hbGxvd1NsaWRlUHJldj0hMCx0LmFsbG93U2xpZGVOZXh0PSEwO2NvbnN0IGM9LXJbZV0tdC5nZXRUcmFuc2xhdGUoKTtlPHM/KGw9aS5sZW5ndGgtMypzK2UsbCs9cyx0LnNsaWRlVG8obCwwLCExLCEwKSYmMCE9PWMmJnQuc2V0VHJhbnNsYXRlKChvPy10LnRyYW5zbGF0ZTp0LnRyYW5zbGF0ZSktYykpOmU+PWkubGVuZ3RoLXMmJihsPS1pLmxlbmd0aCtlK3MsbCs9cyx0LnNsaWRlVG8obCwwLCExLCEwKSYmMCE9PWMmJnQuc2V0VHJhbnNsYXRlKChvPy10LnRyYW5zbGF0ZTp0LnRyYW5zbGF0ZSktYykpLHQuYWxsb3dTbGlkZVByZXY9YSx0LmFsbG93U2xpZGVOZXh0PW4sdC5lbWl0KCJsb29wRml4Iil9LGxvb3BEZXN0cm95OmZ1bmN0aW9uKCl7Y29uc3R7JHdyYXBwZXJFbDp0LHBhcmFtczplLHNsaWRlczppfT10aGlzO3QuY2hpbGRyZW4oYC4ke2Uuc2xpZGVDbGFzc30uJHtlLnNsaWRlRHVwbGljYXRlQ2xhc3N9LC4ke2Uuc2xpZGVDbGFzc30uJHtlLnNsaWRlQmxhbmtDbGFzc31gKS5yZW1vdmUoKSxpLnJlbW92ZUF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4Iil9fSxncmFiQ3Vyc29yOntzZXRHcmFiQ3Vyc29yOmZ1bmN0aW9uKHQpe2NvbnN0IGU9dGhpcztpZihlLnN1cHBvcnQudG91Y2h8fCFlLnBhcmFtcy5zaW11bGF0ZVRvdWNofHxlLnBhcmFtcy53YXRjaE92ZXJmbG93JiZlLmlzTG9ja2VkfHxlLnBhcmFtcy5jc3NNb2RlKXJldHVybjtjb25zdCBpPSJjb250YWluZXIiPT09ZS5wYXJhbXMudG91Y2hFdmVudHNUYXJnZXQ/ZS5lbDplLndyYXBwZXJFbDtpLnN0eWxlLmN1cnNvcj0ibW92ZSIsaS5zdHlsZS5jdXJzb3I9dD8iZ3JhYmJpbmciOiJncmFiIn0sdW5zZXRHcmFiQ3Vyc29yOmZ1bmN0aW9uKCl7Y29uc3QgdD10aGlzO3Quc3VwcG9ydC50b3VjaHx8dC5wYXJhbXMud2F0Y2hPdmVyZmxvdyYmdC5pc0xvY2tlZHx8dC5wYXJhbXMuY3NzTW9kZXx8KHRbImNvbnRhaW5lciI9PT10LnBhcmFtcy50b3VjaEV2ZW50c1RhcmdldD8iZWwiOiJ3cmFwcGVyRWwiXS5zdHlsZS5jdXJzb3I9IiIpfX0sZXZlbnRzOlgsYnJlYWtwb2ludHM6e3NldEJyZWFrcG9pbnQ6ZnVuY3Rpb24oKXtjb25zdCB0PXRoaXMse2FjdGl2ZUluZGV4OmUsaW5pdGlhbGl6ZWQ6aSxsb29wZWRTbGlkZXM6cz0wLHBhcmFtczphLCRlbDpufT10LHI9YS5icmVha3BvaW50cztpZighcnx8ciYmMD09PU9iamVjdC5rZXlzKHIpLmxlbmd0aClyZXR1cm47Y29uc3Qgbz10LmdldEJyZWFrcG9pbnQocix0LnBhcmFtcy5icmVha3BvaW50c0Jhc2UsdC5lbCk7aWYoIW98fHQuY3VycmVudEJyZWFrcG9pbnQ9PT1vKXJldHVybjtjb25zdCBsPShvIGluIHI/cltvXTp2b2lkIDApfHx0Lm9yaWdpbmFsUGFyYW1zLGM9SCh0LGEpLGg9SCh0LGwpLGQ9YS5lbmFibGVkO2MmJiFoPyhuLnJlbW92ZUNsYXNzKGAke2EuY29udGFpbmVyTW9kaWZpZXJDbGFzc31ncmlkICR7YS5jb250YWluZXJNb2RpZmllckNsYXNzfWdyaWQtY29sdW1uYCksdC5lbWl0Q29udGFpbmVyQ2xhc3NlcygpKTohYyYmaCYmKG4uYWRkQ2xhc3MoYCR7YS5jb250YWluZXJNb2RpZmllckNsYXNzfWdyaWRgKSwobC5ncmlkLmZpbGwmJiJjb2x1bW4iPT09bC5ncmlkLmZpbGx8fCFsLmdyaWQuZmlsbCYmImNvbHVtbiI9PT1hLmdyaWQuZmlsbCkmJm4uYWRkQ2xhc3MoYCR7YS5jb250YWluZXJNb2RpZmllckNsYXNzfWdyaWQtY29sdW1uYCksdC5lbWl0Q29udGFpbmVyQ2xhc3NlcygpKSxbIm5hdmlnYXRpb24iLCJwYWdpbmF0aW9uIiwic2Nyb2xsYmFyIl0uZm9yRWFjaCgoZT0+e2NvbnN0IGk9YVtlXSYmYVtlXS5lbmFibGVkLHM9bFtlXSYmbFtlXS5lbmFibGVkO2kmJiFzJiZ0W2VdLmRpc2FibGUoKSwhaSYmcyYmdFtlXS5lbmFibGUoKX0pKTtjb25zdCB1PWwuZGlyZWN0aW9uJiZsLmRpcmVjdGlvbiE9PWEuZGlyZWN0aW9uLHA9YS5sb29wJiYobC5zbGlkZXNQZXJWaWV3IT09YS5zbGlkZXNQZXJWaWV3fHx1KTt1JiZpJiZ0LmNoYW5nZURpcmVjdGlvbigpLHkodC5wYXJhbXMsbCk7Y29uc3QgZz10LnBhcmFtcy5lbmFibGVkO09iamVjdC5hc3NpZ24odCx7YWxsb3dUb3VjaE1vdmU6dC5wYXJhbXMuYWxsb3dUb3VjaE1vdmUsYWxsb3dTbGlkZU5leHQ6dC5wYXJhbXMuYWxsb3dTbGlkZU5leHQsYWxsb3dTbGlkZVByZXY6dC5wYXJhbXMuYWxsb3dTbGlkZVByZXZ9KSxkJiYhZz90LmRpc2FibGUoKTohZCYmZyYmdC5lbmFibGUoKSx0LmN1cnJlbnRCcmVha3BvaW50PW8sdC5lbWl0KCJfYmVmb3JlQnJlYWtwb2ludCIsbCkscCYmaSYmKHQubG9vcERlc3Ryb3koKSx0Lmxvb3BDcmVhdGUoKSx0LnVwZGF0ZVNsaWRlcygpLHQuc2xpZGVUbyhlLXMrdC5sb29wZWRTbGlkZXMsMCwhMSkpLHQuZW1pdCgiYnJlYWtwb2ludCIsbCl9LGdldEJyZWFrcG9pbnQ6ZnVuY3Rpb24odCxlPSJ3aW5kb3ciLGkpe2lmKCF0fHwiY29udGFpbmVyIj09PWUmJiFpKXJldHVybjtsZXQgcz0hMTtjb25zdCBhPWwoKSxuPSJ3aW5kb3ciPT09ZT9hLmlubmVySGVpZ2h0OmkuY2xpZW50SGVpZ2h0LHI9T2JqZWN0LmtleXModCkubWFwKCh0PT57aWYoInN0cmluZyI9PXR5cGVvZiB0JiYwPT09dC5pbmRleE9mKCJAIikpe2NvbnN0IGU9cGFyc2VGbG9hdCh0LnN1YnN0cigxKSk7cmV0dXJue3ZhbHVlOm4qZSxwb2ludDp0fX1yZXR1cm57dmFsdWU6dCxwb2ludDp0fX0pKTtyLnNvcnQoKCh0LGUpPT5wYXJzZUludCh0LnZhbHVlLDEwKS1wYXJzZUludChlLnZhbHVlLDEwKSkpO2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCs9MSl7Y29uc3R7cG9pbnQ6bix2YWx1ZTpvfT1yW3RdOyJ3aW5kb3ciPT09ZT9hLm1hdGNoTWVkaWEoYChtaW4td2lkdGg6ICR7b31weClgKS5tYXRjaGVzJiYocz1uKTpvPD1pLmNsaWVudFdpZHRoJiYocz1uKX1yZXR1cm4gc3x8Im1heCJ9fSxjaGVja092ZXJmbG93OntjaGVja092ZXJmbG93OmZ1bmN0aW9uKCl7Y29uc3QgdD10aGlzLHtpc0xvY2tlZDplLHBhcmFtczppfT10LHtzbGlkZXNPZmZzZXRCZWZvcmU6c309aTtpZihzKXtjb25zdCBlPXQuc2xpZGVzLmxlbmd0aC0xLGk9dC5zbGlkZXNHcmlkW2VdK3Quc2xpZGVzU2l6ZXNHcmlkW2VdKzIqczt0LmlzTG9ja2VkPXQuc2l6ZT5pfWVsc2UgdC5pc0xvY2tlZD0xPT09dC5zbmFwR3JpZC5sZW5ndGg7ITA9PT1pLmFsbG93U2xpZGVOZXh0JiYodC5hbGxvd1NsaWRlTmV4dD0hdC5pc0xvY2tlZCksITA9PT1pLmFsbG93U2xpZGVQcmV2JiYodC5hbGxvd1NsaWRlUHJldj0hdC5pc0xvY2tlZCksZSYmZSE9PXQuaXNMb2NrZWQmJih0LmlzRW5kPSExKSxlIT09dC5pc0xvY2tlZCYmdC5lbWl0KHQuaXNMb2NrZWQ/ImxvY2siOiJ1bmxvY2siKX19LGNsYXNzZXM6WSxpbWFnZXM6e2xvYWRJbWFnZTpmdW5jdGlvbih0LGUsaSxzLGEsbil7Y29uc3Qgcj1sKCk7bGV0IG87ZnVuY3Rpb24gYygpe24mJm4oKX1tKHQpLnBhcmVudCgicGljdHVyZSIpWzBdfHx0LmNvbXBsZXRlJiZhP2MoKTplPyhvPW5ldyByLkltYWdlLG8ub25sb2FkPWMsby5vbmVycm9yPWMscyYmKG8uc2l6ZXM9cyksaSYmKG8uc3Jjc2V0PWkpLGUmJihvLnNyYz1lKSk6YygpfSxwcmVsb2FkSW1hZ2VzOmZ1bmN0aW9uKCl7Y29uc3QgdD10aGlzO2Z1bmN0aW9uIGUoKXtudWxsIT10JiZ0JiYhdC5kZXN0cm95ZWQmJih2b2lkIDAhPT10LmltYWdlc0xvYWRlZCYmKHQuaW1hZ2VzTG9hZGVkKz0xKSx0LmltYWdlc0xvYWRlZD09PXQuaW1hZ2VzVG9Mb2FkLmxlbmd0aCYmKHQucGFyYW1zLnVwZGF0ZU9uSW1hZ2VzUmVhZHkmJnQudXBkYXRlKCksdC5lbWl0KCJpbWFnZXNSZWFkeSIpKSl9dC5pbWFnZXNUb0xvYWQ9dC4kZWwuZmluZCgiaW1nIik7Zm9yKGxldCBpPTA7aTx0LmltYWdlc1RvTG9hZC5sZW5ndGg7aSs9MSl7Y29uc3Qgcz10LmltYWdlc1RvTG9hZFtpXTt0LmxvYWRJbWFnZShzLHMuY3VycmVudFNyY3x8cy5nZXRBdHRyaWJ1dGUoInNyYyIpLHMuc3Jjc2V0fHxzLmdldEF0dHJpYnV0ZSgic3Jjc2V0Iikscy5zaXplc3x8cy5nZXRBdHRyaWJ1dGUoInNpemVzIiksITAsZSl9fX19LGo9e307Y2xhc3MgR3tjb25zdHJ1Y3RvciguLi50KXtsZXQgZSxpO2lmKDE9PT10Lmxlbmd0aCYmdFswXS5jb25zdHJ1Y3RvciYmIk9iamVjdCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodFswXSkuc2xpY2UoOCwtMSk/aT10WzBdOltlLGldPXQsaXx8KGk9e30pLGk9eSh7fSxpKSxlJiYhaS5lbCYmKGkuZWw9ZSksaS5lbCYmbShpLmVsKS5sZW5ndGg+MSl7Y29uc3QgdD1bXTtyZXR1cm4gbShpLmVsKS5lYWNoKChlPT57Y29uc3Qgcz15KHt9LGkse2VsOmV9KTt0LnB1c2gobmV3IEcocykpfSkpLHR9Y29uc3Qgcz10aGlzO3MuX19zd2lwZXJfXz0hMCxzLnN1cHBvcnQ9RSgpLHMuZGV2aWNlPWZ1bmN0aW9uKHQ9e30pe3JldHVybiBDfHwoQz1mdW5jdGlvbih7dXNlckFnZW50OnR9PXt9KXtjb25zdCBlPUUoKSxpPWwoKSxzPWkubmF2aWdhdG9yLnBsYXRmb3JtLGE9dHx8aS5uYXZpZ2F0b3IudXNlckFnZW50LG49e2lvczohMSxhbmRyb2lkOiExfSxyPWkuc2NyZWVuLndpZHRoLG89aS5zY3JlZW4uaGVpZ2h0LGM9YS5tYXRjaCgvKEFuZHJvaWQpOz9bXHNcL10rKFtcZC5dKyk/Lyk7bGV0IGg9YS5tYXRjaCgvKGlQYWQpLipPU1xzKFtcZF9dKykvKTtjb25zdCBkPWEubWF0Y2goLyhpUG9kKSguKk9TXHMoW1xkX10rKSk/LyksdT0haCYmYS5tYXRjaCgvKGlQaG9uZVxzT1N8aU9TKVxzKFtcZF9dKykvKSxwPSJXaW4zMiI9PT1zO2xldCBnPSJNYWNJbnRlbCI9PT1zO3JldHVybiFoJiZnJiZlLnRvdWNoJiZbIjEwMjR4MTM2NiIsIjEzNjZ4MTAyNCIsIjgzNHgxMTk0IiwiMTE5NHg4MzQiLCI4MzR4MTExMiIsIjExMTJ4ODM0IiwiNzY4eDEwMjQiLCIxMDI0eDc2OCIsIjgyMHgxMTgwIiwiMTE4MHg4MjAiLCI4MTB4MTA4MCIsIjEwODB4ODEwIl0uaW5kZXhPZihgJHtyfXgke299YCk+PTAmJihoPWEubWF0Y2goLyhWZXJzaW9uKVwvKFtcZC5dKykvKSxofHwoaD1bMCwxLCIxM18wXzAiXSksZz0hMSksYyYmIXAmJihuLm9zPSJhbmRyb2lkIixuLmFuZHJvaWQ9ITApLChofHx1fHxkKSYmKG4ub3M9ImlvcyIsbi5pb3M9ITApLG59KHQpKSxDfSh7dXNlckFnZW50OmkudXNlckFnZW50fSkscy5icm93c2VyPShBfHwoQT1mdW5jdGlvbigpe2NvbnN0IHQ9bCgpO3JldHVybntpc1NhZmFyaTpmdW5jdGlvbigpe2NvbnN0IGU9dC5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7cmV0dXJuIGUuaW5kZXhPZigic2FmYXJpIik+PTAmJmUuaW5kZXhPZigiY2hyb21lIik8MCYmZS5pbmRleE9mKCJhbmRyb2lkIik8MH0oKSxpc1dlYlZpZXc6LyhpUGhvbmV8aVBvZHxpUGFkKS4qQXBwbGVXZWJLaXQoPyEuKlNhZmFyaSkvaS50ZXN0KHQubmF2aWdhdG9yLnVzZXJBZ2VudCl9fSgpKSxBKSxzLmV2ZW50c0xpc3RlbmVycz17fSxzLmV2ZW50c0FueUxpc3RlbmVycz1bXSxzLm1vZHVsZXM9Wy4uLnMuX19tb2R1bGVzX19dLGkubW9kdWxlcyYmQXJyYXkuaXNBcnJheShpLm1vZHVsZXMpJiZzLm1vZHVsZXMucHVzaCguLi5pLm1vZHVsZXMpO2NvbnN0IGE9e307cy5tb2R1bGVzLmZvckVhY2goKHQ9Pnt0KHtzd2lwZXI6cyxleHRlbmRQYXJhbXM6JChpLGEpLG9uOnMub24uYmluZChzKSxvbmNlOnMub25jZS5iaW5kKHMpLG9mZjpzLm9mZi5iaW5kKHMpLGVtaXQ6cy5lbWl0LmJpbmQocyl9KX0pKTtjb25zdCBuPXkoe30sVyxhKTtyZXR1cm4gcy5wYXJhbXM9eSh7fSxuLGosaSkscy5vcmlnaW5hbFBhcmFtcz15KHt9LHMucGFyYW1zKSxzLnBhc3NlZFBhcmFtcz15KHt9LGkpLHMucGFyYW1zJiZzLnBhcmFtcy5vbiYmT2JqZWN0LmtleXMocy5wYXJhbXMub24pLmZvckVhY2goKHQ9PntzLm9uKHQscy5wYXJhbXMub25bdF0pfSkpLHMucGFyYW1zJiZzLnBhcmFtcy5vbkFueSYmcy5vbkFueShzLnBhcmFtcy5vbkFueSkscy4kPW0sT2JqZWN0LmFzc2lnbihzLHtlbmFibGVkOnMucGFyYW1zLmVuYWJsZWQsZWw6ZSxjbGFzc05hbWVzOltdLHNsaWRlczptKCksc2xpZGVzR3JpZDpbXSxzbmFwR3JpZDpbXSxzbGlkZXNTaXplc0dyaWQ6W10saXNIb3Jpem9udGFsOigpPT4iaG9yaXpvbnRhbCI9PT1zLnBhcmFtcy5kaXJlY3Rpb24saXNWZXJ0aWNhbDooKT0+InZlcnRpY2FsIj09PXMucGFyYW1zLmRpcmVjdGlvbixhY3RpdmVJbmRleDowLHJlYWxJbmRleDowLGlzQmVnaW5uaW5nOiEwLGlzRW5kOiExLHRyYW5zbGF0ZTowLHByZXZpb3VzVHJhbnNsYXRlOjAscHJvZ3Jlc3M6MCx2ZWxvY2l0eTowLGFuaW1hdGluZzohMSxhbGxvd1NsaWRlTmV4dDpzLnBhcmFtcy5hbGxvd1NsaWRlTmV4dCxhbGxvd1NsaWRlUHJldjpzLnBhcmFtcy5hbGxvd1NsaWRlUHJldix0b3VjaEV2ZW50czpmdW5jdGlvbigpe2NvbnN0IHQ9WyJ0b3VjaHN0YXJ0IiwidG91Y2htb3ZlIiwidG91Y2hlbmQiLCJ0b3VjaGNhbmNlbCJdLGU9WyJwb2ludGVyZG93biIsInBvaW50ZXJtb3ZlIiwicG9pbnRlcnVwIl07cmV0dXJuIHMudG91Y2hFdmVudHNUb3VjaD17c3RhcnQ6dFswXSxtb3ZlOnRbMV0sZW5kOnRbMl0sY2FuY2VsOnRbM119LHMudG91Y2hFdmVudHNEZXNrdG9wPXtzdGFydDplWzBdLG1vdmU6ZVsxXSxlbmQ6ZVsyXX0scy5zdXBwb3J0LnRvdWNofHwhcy5wYXJhbXMuc2ltdWxhdGVUb3VjaD9zLnRvdWNoRXZlbnRzVG91Y2g6cy50b3VjaEV2ZW50c0Rlc2t0b3B9KCksdG91Y2hFdmVudHNEYXRhOntpc1RvdWNoZWQ6dm9pZCAwLGlzTW92ZWQ6dm9pZCAwLGFsbG93VG91Y2hDYWxsYmFja3M6dm9pZCAwLHRvdWNoU3RhcnRUaW1lOnZvaWQgMCxpc1Njcm9sbGluZzp2b2lkIDAsY3VycmVudFRyYW5zbGF0ZTp2b2lkIDAsc3RhcnRUcmFuc2xhdGU6dm9pZCAwLGFsbG93VGhyZXNob2xkTW92ZTp2b2lkIDAsZm9jdXNhYmxlRWxlbWVudHM6cy5wYXJhbXMuZm9jdXNhYmxlRWxlbWVudHMsbGFzdENsaWNrVGltZTp4KCksY2xpY2tUaW1lb3V0OnZvaWQgMCx2ZWxvY2l0aWVzOltdLGFsbG93TW9tZW50dW1Cb3VuY2U6dm9pZCAwLGlzVG91Y2hFdmVudDp2b2lkIDAsc3RhcnRNb3Zpbmc6dm9pZCAwfSxhbGxvd0NsaWNrOiEwLGFsbG93VG91Y2hNb3ZlOnMucGFyYW1zLmFsbG93VG91Y2hNb3ZlLHRvdWNoZXM6e3N0YXJ0WDowLHN0YXJ0WTowLGN1cnJlbnRYOjAsY3VycmVudFk6MCxkaWZmOjB9LGltYWdlc1RvTG9hZDpbXSxpbWFnZXNMb2FkZWQ6MH0pLHMuZW1pdCgiX3N3aXBlciIpLHMucGFyYW1zLmluaXQmJnMuaW5pdCgpLHN9ZW5hYmxlKCl7Y29uc3QgdD10aGlzO3QuZW5hYmxlZHx8KHQuZW5hYmxlZD0hMCx0LnBhcmFtcy5ncmFiQ3Vyc29yJiZ0LnNldEdyYWJDdXJzb3IoKSx0LmVtaXQoImVuYWJsZSIpKX1kaXNhYmxlKCl7Y29uc3QgdD10aGlzO3QuZW5hYmxlZCYmKHQuZW5hYmxlZD0hMSx0LnBhcmFtcy5ncmFiQ3Vyc29yJiZ0LnVuc2V0R3JhYkN1cnNvcigpLHQuZW1pdCgiZGlzYWJsZSIpKX1zZXRQcm9ncmVzcyh0LGUpe2NvbnN0IGk9dGhpczt0PU1hdGgubWluKE1hdGgubWF4KHQsMCksMSk7Y29uc3Qgcz1pLm1pblRyYW5zbGF0ZSgpLGE9KGkubWF4VHJhbnNsYXRlKCktcykqdCtzO2kudHJhbnNsYXRlVG8oYSx2b2lkIDA9PT1lPzA6ZSksaS51cGRhdGVBY3RpdmVJbmRleCgpLGkudXBkYXRlU2xpZGVzQ2xhc3NlcygpfWVtaXRDb250YWluZXJDbGFzc2VzKCl7Y29uc3QgdD10aGlzO2lmKCF0LnBhcmFtcy5fZW1pdENsYXNzZXN8fCF0LmVsKXJldHVybjtjb25zdCBlPXQuZWwuY2xhc3NOYW1lLnNwbGl0KCIgIikuZmlsdGVyKChlPT4wPT09ZS5pbmRleE9mKCJzd2lwZXIiKXx8MD09PWUuaW5kZXhPZih0LnBhcmFtcy5jb250YWluZXJNb2RpZmllckNsYXNzKSkpO3QuZW1pdCgiX2NvbnRhaW5lckNsYXNzZXMiLGUuam9pbigiICIpKX1nZXRTbGlkZUNsYXNzZXModCl7Y29uc3QgZT10aGlzO3JldHVybiBlLmRlc3Ryb3llZD8iIjp0LmNsYXNzTmFtZS5zcGxpdCgiICIpLmZpbHRlcigodD0+MD09PXQuaW5kZXhPZigic3dpcGVyLXNsaWRlIil8fDA9PT10LmluZGV4T2YoZS5wYXJhbXMuc2xpZGVDbGFzcykpKS5qb2luKCIgIil9ZW1pdFNsaWRlc0NsYXNzZXMoKXtjb25zdCB0PXRoaXM7aWYoIXQucGFyYW1zLl9lbWl0Q2xhc3Nlc3x8IXQuZWwpcmV0dXJuO2NvbnN0IGU9W107dC5zbGlkZXMuZWFjaCgoaT0+e2NvbnN0IHM9dC5nZXRTbGlkZUNsYXNzZXMoaSk7ZS5wdXNoKHtzbGlkZUVsOmksY2xhc3NOYW1lczpzfSksdC5lbWl0KCJfc2xpZGVDbGFzcyIsaSxzKX0pKSx0LmVtaXQoIl9zbGlkZUNsYXNzZXMiLGUpfXNsaWRlc1BlclZpZXdEeW5hbWljKHQ9ImN1cnJlbnQiLGU9ITEpe2NvbnN0e3BhcmFtczppLHNsaWRlczpzLHNsaWRlc0dyaWQ6YSxzbGlkZXNTaXplc0dyaWQ6bixzaXplOnIsYWN0aXZlSW5kZXg6b309dGhpcztsZXQgbD0xO2lmKGkuY2VudGVyZWRTbGlkZXMpe2xldCB0LGU9c1tvXS5zd2lwZXJTbGlkZVNpemU7Zm9yKGxldCBpPW8rMTtpPHMubGVuZ3RoO2krPTEpc1tpXSYmIXQmJihlKz1zW2ldLnN3aXBlclNsaWRlU2l6ZSxsKz0xLGU+ciYmKHQ9ITApKTtmb3IobGV0IGk9by0xO2k+PTA7aS09MSlzW2ldJiYhdCYmKGUrPXNbaV0uc3dpcGVyU2xpZGVTaXplLGwrPTEsZT5yJiYodD0hMCkpfWVsc2UgaWYoImN1cnJlbnQiPT09dClmb3IobGV0IHQ9bysxO3Q8cy5sZW5ndGg7dCs9MSkoZT9hW3RdK25bdF0tYVtvXTxyOmFbdF0tYVtvXTxyKSYmKGwrPTEpO2Vsc2UgZm9yKGxldCB0PW8tMTt0Pj0wO3QtPTEpYVtvXS1hW3RdPHImJihsKz0xKTtyZXR1cm4gbH11cGRhdGUoKXtjb25zdCB0PXRoaXM7aWYoIXR8fHQuZGVzdHJveWVkKXJldHVybjtjb25zdHtzbmFwR3JpZDplLHBhcmFtczppfT10O2Z1bmN0aW9uIHMoKXtjb25zdCBlPXQucnRsVHJhbnNsYXRlPy0xKnQudHJhbnNsYXRlOnQudHJhbnNsYXRlLGk9TWF0aC5taW4oTWF0aC5tYXgoZSx0Lm1heFRyYW5zbGF0ZSgpKSx0Lm1pblRyYW5zbGF0ZSgpKTt0LnNldFRyYW5zbGF0ZShpKSx0LnVwZGF0ZUFjdGl2ZUluZGV4KCksdC51cGRhdGVTbGlkZXNDbGFzc2VzKCl9bGV0IGE7aS5icmVha3BvaW50cyYmdC5zZXRCcmVha3BvaW50KCksdC51cGRhdGVTaXplKCksdC51cGRhdGVTbGlkZXMoKSx0LnVwZGF0ZVByb2dyZXNzKCksdC51cGRhdGVTbGlkZXNDbGFzc2VzKCksdC5wYXJhbXMuZnJlZU1vZGUmJnQucGFyYW1zLmZyZWVNb2RlLmVuYWJsZWQ/KHMoKSx0LnBhcmFtcy5hdXRvSGVpZ2h0JiZ0LnVwZGF0ZUF1dG9IZWlnaHQoKSk6KGE9KCJhdXRvIj09PXQucGFyYW1zLnNsaWRlc1BlclZpZXd8fHQucGFyYW1zLnNsaWRlc1BlclZpZXc+MSkmJnQuaXNFbmQmJiF0LnBhcmFtcy5jZW50ZXJlZFNsaWRlcz90LnNsaWRlVG8odC5zbGlkZXMubGVuZ3RoLTEsMCwhMSwhMCk6dC5zbGlkZVRvKHQuYWN0aXZlSW5kZXgsMCwhMSwhMCksYXx8cygpKSxpLndhdGNoT3ZlcmZsb3cmJmUhPT10LnNuYXBHcmlkJiZ0LmNoZWNrT3ZlcmZsb3coKSx0LmVtaXQoInVwZGF0ZSIpfWNoYW5nZURpcmVjdGlvbih0LGU9ITApe2NvbnN0IGk9dGhpcyxzPWkucGFyYW1zLmRpcmVjdGlvbjtyZXR1cm4gdHx8KHQ9Imhvcml6b250YWwiPT09cz8idmVydGljYWwiOiJob3Jpem9udGFsIiksdD09PXN8fCJob3Jpem9udGFsIiE9PXQmJiJ2ZXJ0aWNhbCIhPT10fHwoaS4kZWwucmVtb3ZlQ2xhc3MoYCR7aS5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzc30ke3N9YCkuYWRkQ2xhc3MoYCR7aS5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzc30ke3R9YCksaS5lbWl0Q29udGFpbmVyQ2xhc3NlcygpLGkucGFyYW1zLmRpcmVjdGlvbj10LGkuc2xpZGVzLmVhY2goKGU9PnsidmVydGljYWwiPT09dD9lLnN0eWxlLndpZHRoPSIiOmUuc3R5bGUuaGVpZ2h0PSIifSkpLGkuZW1pdCgiY2hhbmdlRGlyZWN0aW9uIiksZSYmaS51cGRhdGUoKSksaX1jaGFuZ2VMYW5ndWFnZURpcmVjdGlvbih0KXtjb25zdCBlPXRoaXM7ZS5ydGwmJiJydGwiPT09dHx8IWUucnRsJiYibHRyIj09PXR8fChlLnJ0bD0icnRsIj09PXQsZS5ydGxUcmFuc2xhdGU9Imhvcml6b250YWwiPT09ZS5wYXJhbXMuZGlyZWN0aW9uJiZlLnJ0bCxlLnJ0bD8oZS4kZWwuYWRkQ2xhc3MoYCR7ZS5wYXJhbXMuY29udGFpbmVyTW9kaWZpZXJDbGFzc31ydGxgKSxlLmVsLmRpcj0icnRsIik6KGUuJGVsLnJlbW92ZUNsYXNzKGAke2UucGFyYW1zLmNvbnRhaW5lck1vZGlmaWVyQ2xhc3N9cnRsYCksZS5lbC5kaXI9Imx0ciIpLGUudXBkYXRlKCkpfW1vdW50KHQpe2NvbnN0IGU9dGhpcztpZihlLm1vdW50ZWQpcmV0dXJuITA7Y29uc3QgaT1tKHR8fGUucGFyYW1zLmVsKTtpZighKHQ9aVswXSkpcmV0dXJuITE7dC5zd2lwZXI9ZTtjb25zdCBzPSgpPT5gLiR7KGUucGFyYW1zLndyYXBwZXJDbGFzc3x8IiIpLnRyaW0oKS5zcGxpdCgiICIpLmpvaW4oIi4iKX1gO2xldCBhPSgoKT0+e2lmKHQmJnQuc2hhZG93Um9vdCYmdC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Ipe2NvbnN0IGU9bSh0LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihzKCkpKTtyZXR1cm4gZS5jaGlsZHJlbj10PT5pLmNoaWxkcmVuKHQpLGV9cmV0dXJuIGkuY2hpbGRyZW4/aS5jaGlsZHJlbihzKCkpOm0oaSkuY2hpbGRyZW4ocygpKX0pKCk7aWYoMD09PWEubGVuZ3RoJiZlLnBhcmFtcy5jcmVhdGVFbGVtZW50cyl7Y29uc3QgdD1yKCkuY3JlYXRlRWxlbWVudCgiZGl2Iik7YT1tKHQpLHQuY2xhc3NOYW1lPWUucGFyYW1zLndyYXBwZXJDbGFzcyxpLmFwcGVuZCh0KSxpLmNoaWxkcmVuKGAuJHtlLnBhcmFtcy5zbGlkZUNsYXNzfWApLmVhY2goKHQ9PnthLmFwcGVuZCh0KX0pKX1yZXR1cm4gT2JqZWN0LmFzc2lnbihlLHskZWw6aSxlbDp0LCR3cmFwcGVyRWw6YSx3cmFwcGVyRWw6YVswXSxtb3VudGVkOiEwLHJ0bDoicnRsIj09PXQuZGlyLnRvTG93ZXJDYXNlKCl8fCJydGwiPT09aS5jc3MoImRpcmVjdGlvbiIpLHJ0bFRyYW5zbGF0ZToiaG9yaXpvbnRhbCI9PT1lLnBhcmFtcy5kaXJlY3Rpb24mJigicnRsIj09PXQuZGlyLnRvTG93ZXJDYXNlKCl8fCJydGwiPT09aS5jc3MoImRpcmVjdGlvbiIpKSx3cm9uZ1JUTDoiLXdlYmtpdC1ib3giPT09YS5jc3MoImRpc3BsYXkiKX0pLCEwfWluaXQodCl7Y29uc3QgZT10aGlzO3JldHVybiBlLmluaXRpYWxpemVkfHwhMT09PWUubW91bnQodCl8fChlLmVtaXQoImJlZm9yZUluaXQiKSxlLnBhcmFtcy5icmVha3BvaW50cyYmZS5zZXRCcmVha3BvaW50KCksZS5hZGRDbGFzc2VzKCksZS5wYXJhbXMubG9vcCYmZS5sb29wQ3JlYXRlKCksZS51cGRhdGVTaXplKCksZS51cGRhdGVTbGlkZXMoKSxlLnBhcmFtcy53YXRjaE92ZXJmbG93JiZlLmNoZWNrT3ZlcmZsb3coKSxlLnBhcmFtcy5ncmFiQ3Vyc29yJiZlLmVuYWJsZWQmJmUuc2V0R3JhYkN1cnNvcigpLGUucGFyYW1zLnByZWxvYWRJbWFnZXMmJmUucHJlbG9hZEltYWdlcygpLGUucGFyYW1zLmxvb3A/ZS5zbGlkZVRvKGUucGFyYW1zLmluaXRpYWxTbGlkZStlLmxvb3BlZFNsaWRlcywwLGUucGFyYW1zLnJ1bkNhbGxiYWNrc09uSW5pdCwhMSwhMCk6ZS5zbGlkZVRvKGUucGFyYW1zLmluaXRpYWxTbGlkZSwwLGUucGFyYW1zLnJ1bkNhbGxiYWNrc09uSW5pdCwhMSwhMCksZS5hdHRhY2hFdmVudHMoKSxlLmluaXRpYWxpemVkPSEwLGUuZW1pdCgiaW5pdCIpLGUuZW1pdCgiYWZ0ZXJJbml0IikpLGV9ZGVzdHJveSh0PSEwLGU9ITApe2NvbnN0IGk9dGhpcyx7cGFyYW1zOnMsJGVsOmEsJHdyYXBwZXJFbDpuLHNsaWRlczpyfT1pO3JldHVybiB2b2lkIDA9PT1pLnBhcmFtc3x8aS5kZXN0cm95ZWR8fChpLmVtaXQoImJlZm9yZURlc3Ryb3kiKSxpLmluaXRpYWxpemVkPSExLGkuZGV0YWNoRXZlbnRzKCkscy5sb29wJiZpLmxvb3BEZXN0cm95KCksZSYmKGkucmVtb3ZlQ2xhc3NlcygpLGEucmVtb3ZlQXR0cigic3R5bGUiKSxuLnJlbW92ZUF0dHIoInN0eWxlIiksciYmci5sZW5ndGgmJnIucmVtb3ZlQ2xhc3MoW3Muc2xpZGVWaXNpYmxlQ2xhc3Mscy5zbGlkZUFjdGl2ZUNsYXNzLHMuc2xpZGVOZXh0Q2xhc3Mscy5zbGlkZVByZXZDbGFzc10uam9pbigiICIpKS5yZW1vdmVBdHRyKCJzdHlsZSIpLnJlbW92ZUF0dHIoImRhdGEtc3dpcGVyLXNsaWRlLWluZGV4IikpLGkuZW1pdCgiZGVzdHJveSIpLE9iamVjdC5rZXlzKGkuZXZlbnRzTGlzdGVuZXJzKS5mb3JFYWNoKCh0PT57aS5vZmYodCl9KSksITEhPT10JiYoaS4kZWxbMF0uc3dpcGVyPW51bGwsZnVuY3Rpb24odCl7Y29uc3QgZT10O09iamVjdC5rZXlzKGUpLmZvckVhY2goKHQ9Pnt0cnl7ZVt0XT1udWxsfWNhdGNoKHQpe310cnl7ZGVsZXRlIGVbdF19Y2F0Y2godCl7fX0pKX0oaSkpLGkuZGVzdHJveWVkPSEwKSxudWxsfXN0YXRpYyBleHRlbmREZWZhdWx0cyh0KXt5KGosdCl9c3RhdGljIGdldCBleHRlbmRlZERlZmF1bHRzKCl7cmV0dXJuIGp9c3RhdGljIGdldCBkZWZhdWx0cygpe3JldHVybiBXfXN0YXRpYyBpbnN0YWxsTW9kdWxlKHQpe0cucHJvdG90eXBlLl9fbW9kdWxlc19ffHwoRy5wcm90b3R5cGUuX19tb2R1bGVzX189W10pO2NvbnN0IGU9Ry5wcm90b3R5cGUuX19tb2R1bGVzX187ImZ1bmN0aW9uIj09dHlwZW9mIHQmJmUuaW5kZXhPZih0KTwwJiZlLnB1c2godCl9c3RhdGljIHVzZSh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT8odC5mb3JFYWNoKCh0PT5HLmluc3RhbGxNb2R1bGUodCkpKSxHKTooRy5pbnN0YWxsTW9kdWxlKHQpLEcpfX1PYmplY3Qua2V5cyhWKS5mb3JFYWNoKCh0PT57T2JqZWN0LmtleXMoVlt0XSkuZm9yRWFjaCgoZT0+e0cucHJvdG90eXBlW2VdPVZbdF1bZV19KSl9KSksRy51c2UoW2Z1bmN0aW9uKHtzd2lwZXI6dCxvbjplLGVtaXQ6aX0pe2NvbnN0IHM9bCgpO2xldCBhPW51bGwsbj1udWxsO2NvbnN0IHI9KCk9Pnt0JiYhdC5kZXN0cm95ZWQmJnQuaW5pdGlhbGl6ZWQmJihpKCJiZWZvcmVSZXNpemUiKSxpKCJyZXNpemUiKSl9LG89KCk9Pnt0JiYhdC5kZXN0cm95ZWQmJnQuaW5pdGlhbGl6ZWQmJmkoIm9yaWVudGF0aW9uY2hhbmdlIil9O2UoImluaXQiLCgoKT0+e3QucGFyYW1zLnJlc2l6ZU9ic2VydmVyJiZ2b2lkIDAhPT1zLlJlc2l6ZU9ic2VydmVyP3QmJiF0LmRlc3Ryb3llZCYmdC5pbml0aWFsaXplZCYmKGE9bmV3IFJlc2l6ZU9ic2VydmVyKChlPT57bj1zLnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pntjb25zdHt3aWR0aDppLGhlaWdodDpzfT10O2xldCBhPWksbj1zO2UuZm9yRWFjaCgoKHtjb250ZW50Qm94U2l6ZTplLGNvbnRlbnRSZWN0OmksdGFyZ2V0OnN9KT0+e3MmJnMhPT10LmVsfHwoYT1pP2kud2lkdGg6KGVbMF18fGUpLmlubGluZVNpemUsbj1pP2kuaGVpZ2h0OihlWzBdfHxlKS5ibG9ja1NpemUpfSkpLGE9PT1pJiZuPT09c3x8cigpfSkpfSkpLGEub2JzZXJ2ZSh0LmVsKSk6KHMuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixyKSxzLmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixvKSl9KSksZSgiZGVzdHJveSIsKCgpPT57biYmcy5jYW5jZWxBbmltYXRpb25GcmFtZShuKSxhJiZhLnVub2JzZXJ2ZSYmdC5lbCYmKGEudW5vYnNlcnZlKHQuZWwpLGE9bnVsbCkscy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHIpLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLG8pfSkpfSxmdW5jdGlvbih7c3dpcGVyOnQsZXh0ZW5kUGFyYW1zOmUsb246aSxlbWl0OnN9KXtjb25zdCBhPVtdLG49bCgpLHI9KHQsZT17fSk9Pntjb25zdCBpPW5ldyhuLk11dGF0aW9uT2JzZXJ2ZXJ8fG4uV2Via2l0TXV0YXRpb25PYnNlcnZlcikoKHQ9PntpZigxPT09dC5sZW5ndGgpcmV0dXJuIHZvaWQgcygib2JzZXJ2ZXJVcGRhdGUiLHRbMF0pO2NvbnN0IGU9ZnVuY3Rpb24oKXtzKCJvYnNlcnZlclVwZGF0ZSIsdFswXSl9O24ucmVxdWVzdEFuaW1hdGlvbkZyYW1lP24ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpOm4uc2V0VGltZW91dChlLDApfSkpO2kub2JzZXJ2ZSh0LHthdHRyaWJ1dGVzOnZvaWQgMD09PWUuYXR0cmlidXRlc3x8ZS5hdHRyaWJ1dGVzLGNoaWxkTGlzdDp2b2lkIDA9PT1lLmNoaWxkTGlzdHx8ZS5jaGlsZExpc3QsY2hhcmFjdGVyRGF0YTp2b2lkIDA9PT1lLmNoYXJhY3RlckRhdGF8fGUuY2hhcmFjdGVyRGF0YX0pLGEucHVzaChpKX07ZSh7b2JzZXJ2ZXI6ITEsb2JzZXJ2ZVBhcmVudHM6ITEsb2JzZXJ2ZVNsaWRlQ2hpbGRyZW46ITF9KSxpKCJpbml0IiwoKCk9PntpZih0LnBhcmFtcy5vYnNlcnZlcil7aWYodC5wYXJhbXMub2JzZXJ2ZVBhcmVudHMpe2NvbnN0IGU9dC4kZWwucGFyZW50cygpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9MSlyKGVbdF0pfXIodC4kZWxbMF0se2NoaWxkTGlzdDp0LnBhcmFtcy5vYnNlcnZlU2xpZGVDaGlsZHJlbn0pLHIodC4kd3JhcHBlckVsWzBdLHthdHRyaWJ1dGVzOiExfSl9fSkpLGkoImRlc3Ryb3kiLCgoKT0+e2EuZm9yRWFjaCgodD0+e3QuZGlzY29ubmVjdCgpfSkpLGEuc3BsaWNlKDAsYS5sZW5ndGgpfSkpfV0pO3ZhciBVPUc7ZnVuY3Rpb24gcSh7c3dpcGVyOnQsZXh0ZW5kUGFyYW1zOmUsb246aSxlbWl0OnN9KXtjb25zdCBhPXIoKTtsZXQgbixvLGwsYyxoPSExLGQ9bnVsbCx1PW51bGw7ZnVuY3Rpb24gcCgpe2lmKCF0LnBhcmFtcy5zY3JvbGxiYXIuZWx8fCF0LnNjcm9sbGJhci5lbClyZXR1cm47Y29uc3R7c2Nyb2xsYmFyOmUscnRsVHJhbnNsYXRlOmkscHJvZ3Jlc3M6c309dCx7JGRyYWdFbDphLCRlbDpufT1lLHI9dC5wYXJhbXMuc2Nyb2xsYmFyO2xldCBjPW8saD0obC1vKSpzO2k/KGg9LWgsaD4wPyhjPW8taCxoPTApOi1oK28+bCYmKGM9bCtoKSk6aDwwPyhjPW8raCxoPTApOmgrbz5sJiYoYz1sLWgpLHQuaXNIb3Jpem9udGFsKCk/KGEudHJhbnNmb3JtKGB0cmFuc2xhdGUzZCgke2h9cHgsIDAsIDApYCksYVswXS5zdHlsZS53aWR0aD1gJHtjfXB4YCk6KGEudHJhbnNmb3JtKGB0cmFuc2xhdGUzZCgwcHgsICR7aH1weCwgMClgKSxhWzBdLnN0eWxlLmhlaWdodD1gJHtjfXB4YCksci5oaWRlJiYoY2xlYXJUaW1lb3V0KGQpLG5bMF0uc3R5bGUub3BhY2l0eT0xLGQ9c2V0VGltZW91dCgoKCk9PntuWzBdLnN0eWxlLm9wYWNpdHk9MCxuLnRyYW5zaXRpb24oNDAwKX0pLDFlMykpfWZ1bmN0aW9uIGcoKXtpZighdC5wYXJhbXMuc2Nyb2xsYmFyLmVsfHwhdC5zY3JvbGxiYXIuZWwpcmV0dXJuO2NvbnN0e3Njcm9sbGJhcjplfT10LHskZHJhZ0VsOmksJGVsOnN9PWU7aVswXS5zdHlsZS53aWR0aD0iIixpWzBdLnN0eWxlLmhlaWdodD0iIixsPXQuaXNIb3Jpem9udGFsKCk/c1swXS5vZmZzZXRXaWR0aDpzWzBdLm9mZnNldEhlaWdodCxjPXQuc2l6ZS8odC52aXJ0dWFsU2l6ZSt0LnBhcmFtcy5zbGlkZXNPZmZzZXRCZWZvcmUtKHQucGFyYW1zLmNlbnRlcmVkU2xpZGVzP3Quc25hcEdyaWRbMF06MCkpLG89ImF1dG8iPT09dC5wYXJhbXMuc2Nyb2xsYmFyLmRyYWdTaXplP2wqYzpwYXJzZUludCh0LnBhcmFtcy5zY3JvbGxiYXIuZHJhZ1NpemUsMTApLHQuaXNIb3Jpem9udGFsKCk/aVswXS5zdHlsZS53aWR0aD1gJHtvfXB4YDppWzBdLnN0eWxlLmhlaWdodD1gJHtvfXB4YCxzWzBdLnN0eWxlLmRpc3BsYXk9Yz49MT8ibm9uZSI6IiIsdC5wYXJhbXMuc2Nyb2xsYmFyLmhpZGUmJihzWzBdLnN0eWxlLm9wYWNpdHk9MCksdC5wYXJhbXMud2F0Y2hPdmVyZmxvdyYmdC5lbmFibGVkJiZlLiRlbFt0LmlzTG9ja2VkPyJhZGRDbGFzcyI6InJlbW92ZUNsYXNzIl0odC5wYXJhbXMuc2Nyb2xsYmFyLmxvY2tDbGFzcyl9ZnVuY3Rpb24gZihlKXtyZXR1cm4gdC5pc0hvcml6b250YWwoKT8idG91Y2hzdGFydCI9PT1lLnR5cGV8fCJ0b3VjaG1vdmUiPT09ZS50eXBlP2UudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRYOmUuY2xpZW50WDoidG91Y2hzdGFydCI9PT1lLnR5cGV8fCJ0b3VjaG1vdmUiPT09ZS50eXBlP2UudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRZOmUuY2xpZW50WX1mdW5jdGlvbiB4KGUpe2NvbnN0e3Njcm9sbGJhcjppLHJ0bFRyYW5zbGF0ZTpzfT10LHskZWw6YX09aTtsZXQgcjtyPShmKGUpLWEub2Zmc2V0KClbdC5pc0hvcml6b250YWwoKT8ibGVmdCI6InRvcCJdLShudWxsIT09bj9uOm8vMikpLyhsLW8pLHI9TWF0aC5tYXgoTWF0aC5taW4ociwxKSwwKSxzJiYocj0xLXIpO2NvbnN0IGM9dC5taW5UcmFuc2xhdGUoKSsodC5tYXhUcmFuc2xhdGUoKS10Lm1pblRyYW5zbGF0ZSgpKSpyO3QudXBkYXRlUHJvZ3Jlc3MoYyksdC5zZXRUcmFuc2xhdGUoYyksdC51cGRhdGVBY3RpdmVJbmRleCgpLHQudXBkYXRlU2xpZGVzQ2xhc3NlcygpfWZ1bmN0aW9uIGIoZSl7Y29uc3QgaT10LnBhcmFtcy5zY3JvbGxiYXIse3Njcm9sbGJhcjphLCR3cmFwcGVyRWw6cn09dCx7JGVsOm8sJGRyYWdFbDpsfT1hO2g9ITAsbj1lLnRhcmdldD09PWxbMF18fGUudGFyZ2V0PT09bD9mKGUpLWUudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW3QuaXNIb3Jpem9udGFsKCk/ImxlZnQiOiJ0b3AiXTpudWxsLGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHIudHJhbnNpdGlvbigxMDApLGwudHJhbnNpdGlvbigxMDApLHgoZSksY2xlYXJUaW1lb3V0KHUpLG8udHJhbnNpdGlvbigwKSxpLmhpZGUmJm8uY3NzKCJvcGFjaXR5IiwxKSx0LnBhcmFtcy5jc3NNb2RlJiZ0LiR3cmFwcGVyRWwuY3NzKCJzY3JvbGwtc25hcC10eXBlIiwibm9uZSIpLHMoInNjcm9sbGJhckRyYWdTdGFydCIsZSl9ZnVuY3Rpb24geShlKXtjb25zdHtzY3JvbGxiYXI6aSwkd3JhcHBlckVsOmF9PXQseyRlbDpuLCRkcmFnRWw6cn09aTtoJiYoZS5wcmV2ZW50RGVmYXVsdD9lLnByZXZlbnREZWZhdWx0KCk6ZS5yZXR1cm5WYWx1ZT0hMSx4KGUpLGEudHJhbnNpdGlvbigwKSxuLnRyYW5zaXRpb24oMCksci50cmFuc2l0aW9uKDApLHMoInNjcm9sbGJhckRyYWdNb3ZlIixlKSl9ZnVuY3Rpb24gdyhlKXtjb25zdCBpPXQucGFyYW1zLnNjcm9sbGJhcix7c2Nyb2xsYmFyOmEsJHdyYXBwZXJFbDpufT10LHskZWw6cn09YTtoJiYoaD0hMSx0LnBhcmFtcy5jc3NNb2RlJiYodC4kd3JhcHBlckVsLmNzcygic2Nyb2xsLXNuYXAtdHlwZSIsIiIpLG4udHJhbnNpdGlvbigiIikpLGkuaGlkZSYmKGNsZWFyVGltZW91dCh1KSx1PXYoKCgpPT57ci5jc3MoIm9wYWNpdHkiLDApLHIudHJhbnNpdGlvbig0MDApfSksMWUzKSkscygic2Nyb2xsYmFyRHJhZ0VuZCIsZSksaS5zbmFwT25SZWxlYXNlJiZ0LnNsaWRlVG9DbG9zZXN0KCkpfWZ1bmN0aW9uIGsoZSl7Y29uc3R7c2Nyb2xsYmFyOmksdG91Y2hFdmVudHNUb3VjaDpzLHRvdWNoRXZlbnRzRGVza3RvcDpuLHBhcmFtczpyLHN1cHBvcnQ6b309dCxsPWkuJGVsO2lmKCFsKXJldHVybjtjb25zdCBjPWxbMF0saD0hKCFvLnBhc3NpdmVMaXN0ZW5lcnx8IXIucGFzc2l2ZUxpc3RlbmVycykmJntwYXNzaXZlOiExLGNhcHR1cmU6ITF9LGQ9ISghby5wYXNzaXZlTGlzdGVuZXJ8fCFyLnBhc3NpdmVMaXN0ZW5lcnMpJiZ7cGFzc2l2ZTohMCxjYXB0dXJlOiExfTtpZighYylyZXR1cm47Y29uc3QgdT0ib24iPT09ZT8iYWRkRXZlbnRMaXN0ZW5lciI6InJlbW92ZUV2ZW50TGlzdGVuZXIiO28udG91Y2g/KGNbdV0ocy5zdGFydCxiLGgpLGNbdV0ocy5tb3ZlLHksaCksY1t1XShzLmVuZCx3LGQpKTooY1t1XShuLnN0YXJ0LGIsaCksYVt1XShuLm1vdmUseSxoKSxhW3VdKG4uZW5kLHcsZCkpfWZ1bmN0aW9uIFMoKXtjb25zdHtzY3JvbGxiYXI6ZSwkZWw6aX09dDt0LnBhcmFtcy5zY3JvbGxiYXI9ZnVuY3Rpb24odCxlLGkscyl7Y29uc3QgYT1yKCk7cmV0dXJuIHQucGFyYW1zLmNyZWF0ZUVsZW1lbnRzJiZPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChuPT57aWYoIWlbbl0mJiEwPT09aS5hdXRvKXtsZXQgcj10LiRlbC5jaGlsZHJlbihgLiR7c1tuXX1gKVswXTtyfHwocj1hLmNyZWF0ZUVsZW1lbnQoImRpdiIpLHIuY2xhc3NOYW1lPXNbbl0sdC4kZWwuYXBwZW5kKHIpKSxpW25dPXIsZVtuXT1yfX0pKSxpfSh0LHQub3JpZ2luYWxQYXJhbXMuc2Nyb2xsYmFyLHQucGFyYW1zLnNjcm9sbGJhcix7ZWw6InN3aXBlci1zY3JvbGxiYXIifSk7Y29uc3Qgcz10LnBhcmFtcy5zY3JvbGxiYXI7aWYoIXMuZWwpcmV0dXJuO2xldCBhPW0ocy5lbCk7dC5wYXJhbXMudW5pcXVlTmF2RWxlbWVudHMmJiJzdHJpbmciPT10eXBlb2Ygcy5lbCYmYS5sZW5ndGg+MSYmMT09PWkuZmluZChzLmVsKS5sZW5ndGgmJihhPWkuZmluZChzLmVsKSksYS5hZGRDbGFzcyh0LmlzSG9yaXpvbnRhbCgpP3MuaG9yaXpvbnRhbENsYXNzOnMudmVydGljYWxDbGFzcyk7bGV0IG49YS5maW5kKGAuJHt0LnBhcmFtcy5zY3JvbGxiYXIuZHJhZ0NsYXNzfWApOzA9PT1uLmxlbmd0aCYmKG49bShgPGRpdiBjbGFzcz0iJHt0LnBhcmFtcy5zY3JvbGxiYXIuZHJhZ0NsYXNzfSI+PC9kaXY+YCksYS5hcHBlbmQobikpLE9iamVjdC5hc3NpZ24oZSx7JGVsOmEsZWw6YVswXSwkZHJhZ0VsOm4sZHJhZ0VsOm5bMF19KSxzLmRyYWdnYWJsZSYmdC5wYXJhbXMuc2Nyb2xsYmFyLmVsJiZ0LnNjcm9sbGJhci5lbCYmaygib24iKSxhJiZhW3QuZW5hYmxlZD8icmVtb3ZlQ2xhc3MiOiJhZGRDbGFzcyJdKHQucGFyYW1zLnNjcm9sbGJhci5sb2NrQ2xhc3MpfWZ1bmN0aW9uIEMoKXtjb25zdCBlPXQucGFyYW1zLnNjcm9sbGJhcixpPXQuc2Nyb2xsYmFyLiRlbDtpJiZpLnJlbW92ZUNsYXNzKHQuaXNIb3Jpem9udGFsKCk/ZS5ob3Jpem9udGFsQ2xhc3M6ZS52ZXJ0aWNhbENsYXNzKSx0LnBhcmFtcy5zY3JvbGxiYXIuZWwmJnQuc2Nyb2xsYmFyLmVsJiZrKCJvZmYiKX1lKHtzY3JvbGxiYXI6e2VsOm51bGwsZHJhZ1NpemU6ImF1dG8iLGhpZGU6ITEsZHJhZ2dhYmxlOiExLHNuYXBPblJlbGVhc2U6ITAsbG9ja0NsYXNzOiJzd2lwZXItc2Nyb2xsYmFyLWxvY2siLGRyYWdDbGFzczoic3dpcGVyLXNjcm9sbGJhci1kcmFnIixzY3JvbGxiYXJEaXNhYmxlZENsYXNzOiJzd2lwZXItc2Nyb2xsYmFyLWRpc2FibGVkIixob3Jpem9udGFsQ2xhc3M6InN3aXBlci1zY3JvbGxiYXItaG9yaXpvbnRhbCIsdmVydGljYWxDbGFzczoic3dpcGVyLXNjcm9sbGJhci12ZXJ0aWNhbCJ9fSksdC5zY3JvbGxiYXI9e2VsOm51bGwsZHJhZ0VsOm51bGwsJGVsOm51bGwsJGRyYWdFbDpudWxsfSxpKCJpbml0IiwoKCk9PnshMT09PXQucGFyYW1zLnNjcm9sbGJhci5lbmFibGVkP0EoKTooUygpLGcoKSxwKCkpfSkpLGkoInVwZGF0ZSByZXNpemUgb2JzZXJ2ZXJVcGRhdGUgbG9jayB1bmxvY2siLCgoKT0+e2coKX0pKSxpKCJzZXRUcmFuc2xhdGUiLCgoKT0+e3AoKX0pKSxpKCJzZXRUcmFuc2l0aW9uIiwoKGUsaSk9PnshZnVuY3Rpb24oZSl7dC5wYXJhbXMuc2Nyb2xsYmFyLmVsJiZ0LnNjcm9sbGJhci5lbCYmdC5zY3JvbGxiYXIuJGRyYWdFbC50cmFuc2l0aW9uKGUpfShpKX0pKSxpKCJlbmFibGUgZGlzYWJsZSIsKCgpPT57Y29uc3R7JGVsOmV9PXQuc2Nyb2xsYmFyO2UmJmVbdC5lbmFibGVkPyJyZW1vdmVDbGFzcyI6ImFkZENsYXNzIl0odC5wYXJhbXMuc2Nyb2xsYmFyLmxvY2tDbGFzcyl9KSksaSgiZGVzdHJveSIsKCgpPT57QygpfSkpO2NvbnN0IEE9KCk9Pnt0LiRlbC5hZGRDbGFzcyh0LnBhcmFtcy5zY3JvbGxiYXIuc2Nyb2xsYmFyRGlzYWJsZWRDbGFzcyksdC5zY3JvbGxiYXIuJGVsJiZ0LnNjcm9sbGJhci4kZWwuYWRkQ2xhc3ModC5wYXJhbXMuc2Nyb2xsYmFyLnNjcm9sbGJhckRpc2FibGVkQ2xhc3MpLEMoKX07T2JqZWN0LmFzc2lnbih0LnNjcm9sbGJhcix7ZW5hYmxlOigpPT57dC4kZWwucmVtb3ZlQ2xhc3ModC5wYXJhbXMuc2Nyb2xsYmFyLnNjcm9sbGJhckRpc2FibGVkQ2xhc3MpLHQuc2Nyb2xsYmFyLiRlbCYmdC5zY3JvbGxiYXIuJGVsLnJlbW92ZUNsYXNzKHQucGFyYW1zLnNjcm9sbGJhci5zY3JvbGxiYXJEaXNhYmxlZENsYXNzKSxTKCksZygpLHAoKX0sZGlzYWJsZTpBLHVwZGF0ZVNpemU6ZyxzZXRUcmFuc2xhdGU6cCxpbml0OlMsZGVzdHJveTpDfSl9ZnVuY3Rpb24gWih7c3dpcGVyOnQsZXh0ZW5kUGFyYW1zOmUsb246aSxlbWl0OnN9KXtlKHtsYXp5OntjaGVja0luVmlldzohMSxlbmFibGVkOiExLGxvYWRQcmV2TmV4dDohMSxsb2FkUHJldk5leHRBbW91bnQ6MSxsb2FkT25UcmFuc2l0aW9uU3RhcnQ6ITEsc2Nyb2xsaW5nRWxlbWVudDoiIixlbGVtZW50Q2xhc3M6InN3aXBlci1sYXp5Iixsb2FkaW5nQ2xhc3M6InN3aXBlci1sYXp5LWxvYWRpbmciLGxvYWRlZENsYXNzOiJzd2lwZXItbGF6eS1sb2FkZWQiLHByZWxvYWRlckNsYXNzOiJzd2lwZXItbGF6eS1wcmVsb2FkZXIifX0pLHQubGF6eT17fTtsZXQgYT0hMSxuPSExO2Z1bmN0aW9uIHIoZSxpPSEwKXtjb25zdCBhPXQucGFyYW1zLmxhenk7aWYodm9pZCAwPT09ZSlyZXR1cm47aWYoMD09PXQuc2xpZGVzLmxlbmd0aClyZXR1cm47Y29uc3Qgbj10LnZpcnR1YWwmJnQucGFyYW1zLnZpcnR1YWwuZW5hYmxlZD90LiR3cmFwcGVyRWwuY2hpbGRyZW4oYC4ke3QucGFyYW1zLnNsaWRlQ2xhc3N9W2RhdGEtc3dpcGVyLXNsaWRlLWluZGV4PSIke2V9Il1gKTp0LnNsaWRlcy5lcShlKSxvPW4uZmluZChgLiR7YS5lbGVtZW50Q2xhc3N9Om5vdCguJHthLmxvYWRlZENsYXNzfSk6bm90KC4ke2EubG9hZGluZ0NsYXNzfSlgKTshbi5oYXNDbGFzcyhhLmVsZW1lbnRDbGFzcyl8fG4uaGFzQ2xhc3MoYS5sb2FkZWRDbGFzcyl8fG4uaGFzQ2xhc3MoYS5sb2FkaW5nQ2xhc3MpfHxvLnB1c2goblswXSksMCE9PW8ubGVuZ3RoJiZvLmVhY2goKGU9Pntjb25zdCBvPW0oZSk7by5hZGRDbGFzcyhhLmxvYWRpbmdDbGFzcyk7Y29uc3QgbD1vLmF0dHIoImRhdGEtYmFja2dyb3VuZCIpLGM9by5hdHRyKCJkYXRhLXNyYyIpLGg9by5hdHRyKCJkYXRhLXNyY3NldCIpLGQ9by5hdHRyKCJkYXRhLXNpemVzIiksdT1vLnBhcmVudCgicGljdHVyZSIpO3QubG9hZEltYWdlKG9bMF0sY3x8bCxoLGQsITEsKCgpPT57aWYobnVsbCE9dCYmdCYmKCF0fHx0LnBhcmFtcykmJiF0LmRlc3Ryb3llZCl7aWYobD8oby5jc3MoImJhY2tncm91bmQtaW1hZ2UiLGB1cmwoIiR7bH0iKWApLG8ucmVtb3ZlQXR0cigiZGF0YS1iYWNrZ3JvdW5kIikpOihoJiYoby5hdHRyKCJzcmNzZXQiLGgpLG8ucmVtb3ZlQXR0cigiZGF0YS1zcmNzZXQiKSksZCYmKG8uYXR0cigic2l6ZXMiLGQpLG8ucmVtb3ZlQXR0cigiZGF0YS1zaXplcyIpKSx1Lmxlbmd0aCYmdS5jaGlsZHJlbigic291cmNlIikuZWFjaCgodD0+e2NvbnN0IGU9bSh0KTtlLmF0dHIoImRhdGEtc3Jjc2V0IikmJihlLmF0dHIoInNyY3NldCIsZS5hdHRyKCJkYXRhLXNyY3NldCIpKSxlLnJlbW92ZUF0dHIoImRhdGEtc3Jjc2V0IikpfSkpLGMmJihvLmF0dHIoInNyYyIsYyksby5yZW1vdmVBdHRyKCJkYXRhLXNyYyIpKSksby5hZGRDbGFzcyhhLmxvYWRlZENsYXNzKS5yZW1vdmVDbGFzcyhhLmxvYWRpbmdDbGFzcyksbi5maW5kKGAuJHthLnByZWxvYWRlckNsYXNzfWApLnJlbW92ZSgpLHQucGFyYW1zLmxvb3AmJmkpe2NvbnN0IGU9bi5hdHRyKCJkYXRhLXN3aXBlci1zbGlkZS1pbmRleCIpO24uaGFzQ2xhc3ModC5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzcyk/cih0LiR3cmFwcGVyRWwuY2hpbGRyZW4oYFtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHtlfSJdOm5vdCguJHt0LnBhcmFtcy5zbGlkZUR1cGxpY2F0ZUNsYXNzfSlgKS5pbmRleCgpLCExKTpyKHQuJHdyYXBwZXJFbC5jaGlsZHJlbihgLiR7dC5wYXJhbXMuc2xpZGVEdXBsaWNhdGVDbGFzc31bZGF0YS1zd2lwZXItc2xpZGUtaW5kZXg9IiR7ZX0iXWApLmluZGV4KCksITEpfXMoImxhenlJbWFnZVJlYWR5IixuWzBdLG9bMF0pLHQucGFyYW1zLmF1dG9IZWlnaHQmJnQudXBkYXRlQXV0b0hlaWdodCgpfX0pKSxzKCJsYXp5SW1hZ2VMb2FkIixuWzBdLG9bMF0pfSkpfWZ1bmN0aW9uIG8oKXtjb25zdHskd3JhcHBlckVsOmUscGFyYW1zOmksc2xpZGVzOnMsYWN0aXZlSW5kZXg6YX09dCxvPXQudmlydHVhbCYmaS52aXJ0dWFsLmVuYWJsZWQsbD1pLmxhenk7bGV0IGM9aS5zbGlkZXNQZXJWaWV3O2Z1bmN0aW9uIGgodCl7aWYobyl7aWYoZS5jaGlsZHJlbihgLiR7aS5zbGlkZUNsYXNzfVtkYXRhLXN3aXBlci1zbGlkZS1pbmRleD0iJHt0fSJdYCkubGVuZ3RoKXJldHVybiEwfWVsc2UgaWYoc1t0XSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBkKHQpe3JldHVybiBvP20odCkuYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKTptKHQpLmluZGV4KCl9aWYoImF1dG8iPT09YyYmKGM9MCksbnx8KG49ITApLHQucGFyYW1zLndhdGNoU2xpZGVzUHJvZ3Jlc3MpZS5jaGlsZHJlbihgLiR7aS5zbGlkZVZpc2libGVDbGFzc31gKS5lYWNoKCh0PT57cihvP20odCkuYXR0cigiZGF0YS1zd2lwZXItc2xpZGUtaW5kZXgiKTptKHQpLmluZGV4KCkpfSkpO2Vsc2UgaWYoYz4xKWZvcihsZXQgdD1hO3Q8YStjO3QrPTEpaCh0KSYmcih0KTtlbHNlIHIoYSk7aWYobC5sb2FkUHJldk5leHQpaWYoYz4xfHxsLmxvYWRQcmV2TmV4dEFtb3VudCYmbC5sb2FkUHJldk5leHRBbW91bnQ+MSl7Y29uc3QgdD1sLmxvYWRQcmV2TmV4dEFtb3VudCxlPU1hdGguY2VpbChjKSxpPU1hdGgubWluKGErZStNYXRoLm1heCh0LGUpLHMubGVuZ3RoKSxuPU1hdGgubWF4KGEtTWF0aC5tYXgoZSx0KSwwKTtmb3IobGV0IHQ9YStlO3Q8aTt0Kz0xKWgodCkmJnIodCk7Zm9yKGxldCB0PW47dDxhO3QrPTEpaCh0KSYmcih0KX1lbHNle2NvbnN0IHQ9ZS5jaGlsZHJlbihgLiR7aS5zbGlkZU5leHRDbGFzc31gKTt0Lmxlbmd0aD4wJiZyKGQodCkpO2NvbnN0IHM9ZS5jaGlsZHJlbihgLiR7aS5zbGlkZVByZXZDbGFzc31gKTtzLmxlbmd0aD4wJiZyKGQocykpfX1mdW5jdGlvbiBjKCl7Y29uc3QgZT1sKCk7aWYoIXR8fHQuZGVzdHJveWVkKXJldHVybjtjb25zdCBpPXQucGFyYW1zLmxhenkuc2Nyb2xsaW5nRWxlbWVudD9tKHQucGFyYW1zLmxhenkuc2Nyb2xsaW5nRWxlbWVudCk6bShlKSxzPWlbMF09PT1lLG49cz9lLmlubmVyV2lkdGg6aVswXS5vZmZzZXRXaWR0aCxyPXM/ZS5pbm5lckhlaWdodDppWzBdLm9mZnNldEhlaWdodCxoPXQuJGVsLm9mZnNldCgpLHtydGxUcmFuc2xhdGU6ZH09dDtsZXQgdT0hMTtkJiYoaC5sZWZ0LT10LiRlbFswXS5zY3JvbGxMZWZ0KTtjb25zdCBwPVtbaC5sZWZ0LGgudG9wXSxbaC5sZWZ0K3Qud2lkdGgsaC50b3BdLFtoLmxlZnQsaC50b3ArdC5oZWlnaHRdLFtoLmxlZnQrdC53aWR0aCxoLnRvcCt0LmhlaWdodF1dO2ZvcihsZXQgdD0wO3Q8cC5sZW5ndGg7dCs9MSl7Y29uc3QgZT1wW3RdO2lmKGVbMF0+PTAmJmVbMF08PW4mJmVbMV0+PTAmJmVbMV08PXIpe2lmKDA9PT1lWzBdJiYwPT09ZVsxXSljb250aW51ZTt1PSEwfX1jb25zdCBnPSEoInRvdWNoc3RhcnQiIT09dC50b3VjaEV2ZW50cy5zdGFydHx8IXQuc3VwcG9ydC5wYXNzaXZlTGlzdGVuZXJ8fCF0LnBhcmFtcy5wYXNzaXZlTGlzdGVuZXJzKSYme3Bhc3NpdmU6ITAsY2FwdHVyZTohMX07dT8obygpLGkub2ZmKCJzY3JvbGwiLGMsZykpOmF8fChhPSEwLGkub24oInNjcm9sbCIsYyxnKSl9aSgiYmVmb3JlSW5pdCIsKCgpPT57dC5wYXJhbXMubGF6eS5lbmFibGVkJiZ0LnBhcmFtcy5wcmVsb2FkSW1hZ2VzJiYodC5wYXJhbXMucHJlbG9hZEltYWdlcz0hMSl9KSksaSgiaW5pdCIsKCgpPT57dC5wYXJhbXMubGF6eS5lbmFibGVkJiYodC5wYXJhbXMubGF6eS5jaGVja0luVmlldz9jKCk6bygpKX0pKSxpKCJzY3JvbGwiLCgoKT0+e3QucGFyYW1zLmZyZWVNb2RlJiZ0LnBhcmFtcy5mcmVlTW9kZS5lbmFibGVkJiYhdC5wYXJhbXMuZnJlZU1vZGUuc3RpY2t5JiZvKCl9KSksaSgic2Nyb2xsYmFyRHJhZ01vdmUgcmVzaXplIF9mcmVlTW9kZU5vTW9tZW50dW1SZWxlYXNlIiwoKCk9Pnt0LnBhcmFtcy5sYXp5LmVuYWJsZWQmJih0LnBhcmFtcy5sYXp5LmNoZWNrSW5WaWV3P2MoKTpvKCkpfSkpLGkoInRyYW5zaXRpb25TdGFydCIsKCgpPT57dC5wYXJhbXMubGF6eS5lbmFibGVkJiYodC5wYXJhbXMubGF6eS5sb2FkT25UcmFuc2l0aW9uU3RhcnR8fCF0LnBhcmFtcy5sYXp5LmxvYWRPblRyYW5zaXRpb25TdGFydCYmIW4pJiYodC5wYXJhbXMubGF6eS5jaGVja0luVmlldz9jKCk6bygpKX0pKSxpKCJ0cmFuc2l0aW9uRW5kIiwoKCk9Pnt0LnBhcmFtcy5sYXp5LmVuYWJsZWQmJiF0LnBhcmFtcy5sYXp5LmxvYWRPblRyYW5zaXRpb25TdGFydCYmKHQucGFyYW1zLmxhenkuY2hlY2tJblZpZXc/YygpOm8oKSl9KSksaSgic2xpZGVDaGFuZ2UiLCgoKT0+e2NvbnN0e2xhenk6ZSxjc3NNb2RlOmksd2F0Y2hTbGlkZXNQcm9ncmVzczpzLHRvdWNoUmVsZWFzZU9uRWRnZXM6YSxyZXNpc3RhbmNlUmF0aW86bn09dC5wYXJhbXM7ZS5lbmFibGVkJiYoaXx8cyYmKGF8fDA9PT1uKSkmJm8oKX0pKSxpKCJkZXN0cm95IiwoKCk9Pnt0LiRlbCYmdC4kZWwuZmluZChgLiR7dC5wYXJhbXMubGF6eS5sb2FkaW5nQ2xhc3N9YCkucmVtb3ZlQ2xhc3ModC5wYXJhbXMubGF6eS5sb2FkaW5nQ2xhc3MpfSkpLE9iamVjdC5hc3NpZ24odC5sYXp5LHtsb2FkOm8sbG9hZEluU2xpZGU6cn0pfWZ1bmN0aW9uIEsoe3N3aXBlcjp0LGV4dGVuZFBhcmFtczplLG9uOmksZW1pdDpzfSl7bGV0IGE7ZnVuY3Rpb24gbigpe2lmKCF0LnNpemUpcmV0dXJuIHQuYXV0b3BsYXkucnVubmluZz0hMSx2b2lkKHQuYXV0b3BsYXkucGF1c2VkPSExKTtjb25zdCBlPXQuc2xpZGVzLmVxKHQuYWN0aXZlSW5kZXgpO2xldCBpPXQucGFyYW1zLmF1dG9wbGF5LmRlbGF5O2UuYXR0cigiZGF0YS1zd2lwZXItYXV0b3BsYXkiKSYmKGk9ZS5hdHRyKCJkYXRhLXN3aXBlci1hdXRvcGxheSIpfHx0LnBhcmFtcy5hdXRvcGxheS5kZWxheSksY2xlYXJUaW1lb3V0KGEpLGE9digoKCk9PntsZXQgZTt0LnBhcmFtcy5hdXRvcGxheS5yZXZlcnNlRGlyZWN0aW9uP3QucGFyYW1zLmxvb3A/KHQubG9vcEZpeCgpLGU9dC5zbGlkZVByZXYodC5wYXJhbXMuc3BlZWQsITAsITApLHMoImF1dG9wbGF5IikpOnQuaXNCZWdpbm5pbmc/dC5wYXJhbXMuYXV0b3BsYXkuc3RvcE9uTGFzdFNsaWRlP2woKTooZT10LnNsaWRlVG8odC5zbGlkZXMubGVuZ3RoLTEsdC5wYXJhbXMuc3BlZWQsITAsITApLHMoImF1dG9wbGF5IikpOihlPXQuc2xpZGVQcmV2KHQucGFyYW1zLnNwZWVkLCEwLCEwKSxzKCJhdXRvcGxheSIpKTp0LnBhcmFtcy5sb29wPyh0Lmxvb3BGaXgoKSxlPXQuc2xpZGVOZXh0KHQucGFyYW1zLnNwZWVkLCEwLCEwKSxzKCJhdXRvcGxheSIpKTp0LmlzRW5kP3QucGFyYW1zLmF1dG9wbGF5LnN0b3BPbkxhc3RTbGlkZT9sKCk6KGU9dC5zbGlkZVRvKDAsdC5wYXJhbXMuc3BlZWQsITAsITApLHMoImF1dG9wbGF5IikpOihlPXQuc2xpZGVOZXh0KHQucGFyYW1zLnNwZWVkLCEwLCEwKSxzKCJhdXRvcGxheSIpKSwodC5wYXJhbXMuY3NzTW9kZSYmdC5hdXRvcGxheS5ydW5uaW5nfHwhMT09PWUpJiZuKCl9KSxpKX1mdW5jdGlvbiBvKCl7cmV0dXJuIHZvaWQgMD09PWEmJiF0LmF1dG9wbGF5LnJ1bm5pbmcmJih0LmF1dG9wbGF5LnJ1bm5pbmc9ITAscygiYXV0b3BsYXlTdGFydCIpLG4oKSwhMCl9ZnVuY3Rpb24gbCgpe3JldHVybiEhdC5hdXRvcGxheS5ydW5uaW5nJiZ2b2lkIDAhPT1hJiYoYSYmKGNsZWFyVGltZW91dChhKSxhPXZvaWQgMCksdC5hdXRvcGxheS5ydW5uaW5nPSExLHMoImF1dG9wbGF5U3RvcCIpLCEwKX1mdW5jdGlvbiBjKGUpe3QuYXV0b3BsYXkucnVubmluZyYmKHQuYXV0b3BsYXkucGF1c2VkfHwoYSYmY2xlYXJUaW1lb3V0KGEpLHQuYXV0b3BsYXkucGF1c2VkPSEwLDAhPT1lJiZ0LnBhcmFtcy5hdXRvcGxheS53YWl0Rm9yVHJhbnNpdGlvbj9bInRyYW5zaXRpb25lbmQiLCJ3ZWJraXRUcmFuc2l0aW9uRW5kIl0uZm9yRWFjaCgoZT0+e3QuJHdyYXBwZXJFbFswXS5hZGRFdmVudExpc3RlbmVyKGUsZCl9KSk6KHQuYXV0b3BsYXkucGF1c2VkPSExLG4oKSkpKX1mdW5jdGlvbiBoKCl7Y29uc3QgZT1yKCk7ImhpZGRlbiI9PT1lLnZpc2liaWxpdHlTdGF0ZSYmdC5hdXRvcGxheS5ydW5uaW5nJiZjKCksInZpc2libGUiPT09ZS52aXNpYmlsaXR5U3RhdGUmJnQuYXV0b3BsYXkucGF1c2VkJiYobigpLHQuYXV0b3BsYXkucGF1c2VkPSExKX1mdW5jdGlvbiBkKGUpe3QmJiF0LmRlc3Ryb3llZCYmdC4kd3JhcHBlckVsJiZlLnRhcmdldD09PXQuJHdyYXBwZXJFbFswXSYmKFsidHJhbnNpdGlvbmVuZCIsIndlYmtpdFRyYW5zaXRpb25FbmQiXS5mb3JFYWNoKChlPT57dC4kd3JhcHBlckVsWzBdLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxkKX0pKSx0LmF1dG9wbGF5LnBhdXNlZD0hMSx0LmF1dG9wbGF5LnJ1bm5pbmc/bigpOmwoKSl9ZnVuY3Rpb24gdSgpe3QucGFyYW1zLmF1dG9wbGF5LmRpc2FibGVPbkludGVyYWN0aW9uP2woKToocygiYXV0b3BsYXlQYXVzZSIpLGMoKSksWyJ0cmFuc2l0aW9uZW5kIiwid2Via2l0VHJhbnNpdGlvbkVuZCJdLmZvckVhY2goKGU9Pnt0LiR3cmFwcGVyRWxbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLGQpfSkpfWZ1bmN0aW9uIHAoKXt0LnBhcmFtcy5hdXRvcGxheS5kaXNhYmxlT25JbnRlcmFjdGlvbnx8KHQuYXV0b3BsYXkucGF1c2VkPSExLHMoImF1dG9wbGF5UmVzdW1lIiksbigpKX10LmF1dG9wbGF5PXtydW5uaW5nOiExLHBhdXNlZDohMX0sZSh7YXV0b3BsYXk6e2VuYWJsZWQ6ITEsZGVsYXk6M2UzLHdhaXRGb3JUcmFuc2l0aW9uOiEwLGRpc2FibGVPbkludGVyYWN0aW9uOiEwLHN0b3BPbkxhc3RTbGlkZTohMSxyZXZlcnNlRGlyZWN0aW9uOiExLHBhdXNlT25Nb3VzZUVudGVyOiExfX0pLGkoImluaXQiLCgoKT0+e3QucGFyYW1zLmF1dG9wbGF5LmVuYWJsZWQmJihvKCkscigpLmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGgpLHQucGFyYW1zLmF1dG9wbGF5LnBhdXNlT25Nb3VzZUVudGVyJiYodC4kZWwub24oIm1vdXNlZW50ZXIiLHUpLHQuJGVsLm9uKCJtb3VzZWxlYXZlIixwKSkpfSkpLGkoImJlZm9yZVRyYW5zaXRpb25TdGFydCIsKChlLGkscyk9Pnt0LmF1dG9wbGF5LnJ1bm5pbmcmJihzfHwhdC5wYXJhbXMuYXV0b3BsYXkuZGlzYWJsZU9uSW50ZXJhY3Rpb24/dC5hdXRvcGxheS5wYXVzZShpKTpsKCkpfSkpLGkoInNsaWRlckZpcnN0TW92ZSIsKCgpPT57dC5hdXRvcGxheS5ydW5uaW5nJiYodC5wYXJhbXMuYXV0b3BsYXkuZGlzYWJsZU9uSW50ZXJhY3Rpb24/bCgpOmMoKSl9KSksaSgidG91Y2hFbmQiLCgoKT0+e3QucGFyYW1zLmNzc01vZGUmJnQuYXV0b3BsYXkucGF1c2VkJiYhdC5wYXJhbXMuYXV0b3BsYXkuZGlzYWJsZU9uSW50ZXJhY3Rpb24mJm4oKX0pKSxpKCJkZXN0cm95IiwoKCk9Pnt0LiRlbC5vZmYoIm1vdXNlZW50ZXIiLHUpLHQuJGVsLm9mZigibW91c2VsZWF2ZSIscCksdC5hdXRvcGxheS5ydW5uaW5nJiZsKCkscigpLnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGgpfSkpLE9iamVjdC5hc3NpZ24odC5hdXRvcGxheSx7cGF1c2U6YyxydW46bixzdGFydDpvLHN0b3A6bH0pfX0sNDc4OmZ1bmN0aW9uKHQsZSxpKXsidXNlIHN0cmljdCI7aS5kKGUse1pQOmZ1bmN0aW9uKCl7cmV0dXJuIEx9fSk7Y29uc3Qgcz1uZXcgU2V0LGE9bmV3IFdlYWtNYXAsbj1uZXcgV2Vha01hcCxyPW5ldyBXZWFrTWFwLG89bmV3IFdlYWtNYXAsbD1uZXcgV2Vha01hcCxjPW5ldyBXZWFrTWFwLGg9bmV3IFdlYWtNYXAsZD1uZXcgV2Vha1NldDtsZXQgdTtjb25zdCBwPSJfX2FhX3RndCIsZz0iX19hYV9kZWwiO2Z1bmN0aW9uIGYodCl7Y2xlYXJUaW1lb3V0KGguZ2V0KHQpKTtjb25zdCBlPUModCksaT0iZnVuY3Rpb24iPT10eXBlb2YgZT81MDA6ZS5kdXJhdGlvbjtoLnNldCh0LHNldFRpbWVvdXQoKGFzeW5jKCk9Pntjb25zdCBlPXIuZ2V0KHQpO2UmJiFhd2FpdCBlLmZpbmlzaGVkfHwoYS5zZXQodCxrKHQpKSxmdW5jdGlvbih0KXtjb25zdCBlPW8uZ2V0KHQpO251bGw9PWV8fGUuZGlzY29ubmVjdCgpO2xldCBpPWEuZ2V0KHQpLHM9MDtpfHwoaT1rKHQpLGEuc2V0KHQsaSkpO2NvbnN0e29mZnNldFdpZHRoOm4sb2Zmc2V0SGVpZ2h0OnJ9PXUsbD1baS50b3AtNSxuLShpLmxlZnQrNStpLndpZHRoKSxyLShpLnRvcCs1K2kuaGVpZ2h0KSxpLmxlZnQtNV0ubWFwKCh0PT4tMSpNYXRoLmZsb29yKHQpKyJweCIpKS5qb2luKCIgIiksYz1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKCgpPT57KytzPjEmJmYodCl9KSx7cm9vdDp1LHRocmVzaG9sZDoxLHJvb3RNYXJnaW46bH0pO2Mub2JzZXJ2ZSh0KSxvLnNldCh0LGMpfSh0KSl9KSxpKSl9ZnVuY3Rpb24gbSh0KXtzZXRUaW1lb3V0KCgoKT0+e2wuc2V0KHQsc2V0SW50ZXJ2YWwoKCgpPT52KGYuYmluZChudWxsLHQpKSksMmUzKSl9KSxNYXRoLnJvdW5kKDJlMypNYXRoLnJhbmRvbSgpKSl9ZnVuY3Rpb24gdih0KXsiZnVuY3Rpb24iPT10eXBlb2YgcmVxdWVzdElkbGVDYWxsYmFjaz9yZXF1ZXN0SWRsZUNhbGxiYWNrKCgoKT0+dCgpKSk6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+dCgpKSl9bGV0IHgsYjtmdW5jdGlvbiB5KHQsZSl7ZXx8cCBpbiB0P2UmJiEocCBpbiBlKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscCx7dmFsdWU6dH0pOk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHAse3ZhbHVlOnR9KX1mdW5jdGlvbiB3KHQpe3JldHVybiBOdW1iZXIodC5yZXBsYWNlKC9bXjAtOS5cLV0vZywiIikpfWZ1bmN0aW9uIGsodCl7Y29uc3QgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt0b3A6ZS50b3Ard2luZG93LnNjcm9sbFksbGVmdDplLmxlZnQrd2luZG93LnNjcm9sbFgsd2lkdGg6ZS53aWR0aCxoZWlnaHQ6ZS5oZWlnaHR9fWZ1bmN0aW9uIFModCxlLGkpe2xldCBzPWUud2lkdGgsYT1lLmhlaWdodCxuPWkud2lkdGgscj1pLmhlaWdodDtjb25zdCBvPWdldENvbXB1dGVkU3R5bGUodCk7aWYoImNvbnRlbnQtYm94Ij09PW8uZ2V0UHJvcGVydHlWYWx1ZSgiYm94LXNpemluZyIpKXtjb25zdCB0PXcoby5wYWRkaW5nVG9wKSt3KG8ucGFkZGluZ0JvdHRvbSkrdyhvLmJvcmRlclRvcFdpZHRoKSt3KG8uYm9yZGVyQm90dG9tV2lkdGgpLGU9dyhvLnBhZGRpbmdMZWZ0KSt3KG8ucGFkZGluZ1JpZ2h0KSt3KG8uYm9yZGVyUmlnaHRXaWR0aCkrdyhvLmJvcmRlckxlZnRXaWR0aCk7cy09ZSxuLT1lLGEtPXQsci09dH1yZXR1cm5bcyxuLGEscl0ubWFwKE1hdGgucm91bmQpfWZ1bmN0aW9uIEModCl7cmV0dXJuIHAgaW4gdCYmYy5oYXModFtwXSk/Yy5nZXQodFtwXSk6e2R1cmF0aW9uOjI1MCxlYXNpbmc6ImVhc2UtaW4tb3V0In19ZnVuY3Rpb24gQSh0KXtpZihwIGluIHQpcmV0dXJuIHRbcF19ZnVuY3Rpb24gRSh0KXtjb25zdCBlPUEodCk7cmV0dXJuISFlJiZkLmhhcyhlKX1mdW5jdGlvbiBUKHQsLi4uZSl7ZS5mb3JFYWNoKChlPT5lKHQsYy5oYXModCkpKSk7Zm9yKGxldCBpPTA7aTx0LmNoaWxkcmVuLmxlbmd0aDtpKyspe2NvbnN0IHM9dC5jaGlsZHJlbi5pdGVtKGkpO3MmJmUuZm9yRWFjaCgodD0+dChzLGMuaGFzKHMpKSkpfX1mdW5jdGlvbiBMKHQsZT17fSl7cmV0dXJuIHgmJmImJih3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKS5tYXRjaGVzJiYiZnVuY3Rpb24iIT10eXBlb2YgZSYmIWUuZGlzcmVzcGVjdFVzZXJNb3Rpb25QcmVmZXJlbmNlfHwoZC5hZGQodCksInN0YXRpYyI9PT1nZXRDb21wdXRlZFN0eWxlKHQpLnBvc2l0aW9uJiZPYmplY3QuYXNzaWduKHQuc3R5bGUse3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9KSxUKHQsZixtLCh0PT5udWxsPT1iP3ZvaWQgMDpiLm9ic2VydmUodCkpKSwiZnVuY3Rpb24iPT10eXBlb2YgZT9jLnNldCh0LGUpOmMuc2V0KHQse2R1cmF0aW9uOjI1MCxlYXNpbmc6ImVhc2UtaW4tb3V0IiwuLi5lfSkseC5vYnNlcnZlKHQse2NoaWxkTGlzdDohMH0pLHMuYWRkKHQpKSksT2JqZWN0LmZyZWV6ZSh7cGFyZW50OnQsZW5hYmxlOigpPT57ZC5hZGQodCl9LGRpc2FibGU6KCk9PntkLmRlbGV0ZSh0KX0saXNFbmFibGVkOigpPT5kLmhhcyh0KX0pfSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYodT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQseD1uZXcgTXV0YXRpb25PYnNlcnZlcigodD0+e2NvbnN0IGU9ZnVuY3Rpb24odCl7cmV0dXJuIXQucmVkdWNlKCgodCxlKT0+Wy4uLnQsLi4uQXJyYXkuZnJvbShlLmFkZGVkTm9kZXMpLC4uLkFycmF5LmZyb20oZS5yZW1vdmVkTm9kZXMpXSksW10pLmV2ZXJ5KCh0PT4iI2NvbW1lbnQiPT09dC5ub2RlTmFtZSkpJiZ0LnJlZHVjZSgoKHQsZSk9PntpZighMT09PXQpcmV0dXJuITE7aWYoZS50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50KXtpZih5KGUudGFyZ2V0KSwhdC5oYXMoZS50YXJnZXQpKXt0LmFkZChlLnRhcmdldCk7Zm9yKGxldCBpPTA7aTxlLnRhcmdldC5jaGlsZHJlbi5sZW5ndGg7aSsrKXtjb25zdCBzPWUudGFyZ2V0LmNoaWxkcmVuLml0ZW0oaSk7aWYocyl7aWYoZyBpbiBzKXJldHVybiExO3koZS50YXJnZXQscyksdC5hZGQocyl9fX1pZihlLnJlbW92ZWROb2Rlcy5sZW5ndGgpZm9yKGxldCBpPTA7aTxlLnJlbW92ZWROb2Rlcy5sZW5ndGg7aSsrKXtjb25zdCBzPWUucmVtb3ZlZE5vZGVzW2ldO2lmKGcgaW4gcylyZXR1cm4hMTtzIGluc3RhbmNlb2YgRWxlbWVudCYmKHQuYWRkKHMpLHkoZS50YXJnZXQscyksbi5zZXQocyxbZS5wcmV2aW91c1NpYmxpbmcsZS5uZXh0U2libGluZ10pKX19cmV0dXJuIHR9KSxuZXcgU2V0KX0odCk7ZSYmZS5mb3JFYWNoKCh0PT5mdW5jdGlvbih0KXt2YXIgZTtjb25zdCBpPXUuY29udGFpbnModCkscz1hLmhhcyh0KTtpJiZuLmhhcyh0KSYmbi5kZWxldGUodCksci5oYXModCkmJihudWxsPT09KGU9ci5nZXQodCkpfHx2b2lkIDA9PT1lfHxlLmNhbmNlbCgpKSxzJiZpP2Z1bmN0aW9uKHQpe2NvbnN0IGU9YS5nZXQodCksaT1rKHQpO2lmKCFFKHQpKXJldHVybiBhLnNldCh0LGkpO2xldCBzO2lmKCFlKXJldHVybjtjb25zdCBuPUModCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4pe2NvbnN0IGE9ZS5sZWZ0LWkubGVmdCxyPWUudG9wLWkudG9wLFtvLGwsYyxoXT1TKHQsZSxpKSxkPXt0cmFuc2Zvcm06YHRyYW5zbGF0ZSgke2F9cHgsICR7cn1weClgfSx1PXt0cmFuc2Zvcm06InRyYW5zbGF0ZSgwLCAwKSJ9O28hPT1sJiYoZC53aWR0aD1gJHtvfXB4YCx1LndpZHRoPWAke2x9cHhgKSxjIT09aCYmKGQuaGVpZ2h0PWAke2N9cHhgLHUuaGVpZ2h0PWAke2h9cHhgKSxzPXQuYW5pbWF0ZShbZCx1XSx7ZHVyYXRpb246bi5kdXJhdGlvbixlYXNpbmc6bi5lYXNpbmd9KX1lbHNlIHM9bmV3IEFuaW1hdGlvbihuKHQsInJlbWFpbiIsZSxpKSkscy5wbGF5KCk7ci5zZXQodCxzKSxhLnNldCh0LGkpLHMuYWRkRXZlbnRMaXN0ZW5lcigiZmluaXNoIixmLmJpbmQobnVsbCx0KSl9KHQpOnMmJiFpP2Z1bmN0aW9uKHQpe3ZhciBlO2lmKCFuLmhhcyh0KXx8IWEuaGFzKHQpKXJldHVybjtjb25zdFtpLHNdPW4uZ2V0KHQpO2Z1bmN0aW9uIGwoKXt2YXIgZTt0LnJlbW92ZSgpLGEuZGVsZXRlKHQpLG4uZGVsZXRlKHQpLHIuZGVsZXRlKHQpLG51bGw9PT0oZT1vLmdldCh0KSl8fHZvaWQgMD09PWV8fGUuZGlzY29ubmVjdCgpfWlmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGcse3ZhbHVlOiEwfSkscyYmcy5wYXJlbnROb2RlJiZzLnBhcmVudE5vZGUgaW5zdGFuY2VvZiBFbGVtZW50P3MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCxzKTppJiZpLnBhcmVudE5vZGU/aS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHQpOm51bGw9PT0oZT1BKHQpKXx8dm9pZCAwPT09ZXx8ZS5hcHBlbmRDaGlsZCh0KSwhRSh0KSlyZXR1cm4gbCgpO2NvbnN0W2MsaCxkLHVdPWZ1bmN0aW9uKHQpe2NvbnN0IGU9YS5nZXQodCksW2ksLHNdPVModCxlLGsodCkpO2xldCBuPXQucGFyZW50RWxlbWVudDtmb3IoO24mJigic3RhdGljIj09PWdldENvbXB1dGVkU3R5bGUobikucG9zaXRpb258fG4gaW5zdGFuY2VvZiBIVE1MQm9keUVsZW1lbnQpOyluPW4ucGFyZW50RWxlbWVudDtufHwobj1kb2N1bWVudC5ib2R5KTtjb25zdCByPWdldENvbXB1dGVkU3R5bGUobiksbz1hLmdldChuKXx8ayhuKTtyZXR1cm5bTWF0aC5yb3VuZChlLnRvcC1vLnRvcCktdyhyLmJvcmRlclRvcFdpZHRoKSxNYXRoLnJvdW5kKGUubGVmdC1vLmxlZnQpLXcoci5ib3JkZXJMZWZ0V2lkdGgpLGksc119KHQpLHA9Qyh0KSxmPWEuZ2V0KHQpO2xldCBtO09iamVjdC5hc3NpZ24odC5zdHlsZSx7cG9zaXRpb246ImFic29sdXRlIix0b3A6YCR7Y31weGAsbGVmdDpgJHtofXB4YCx3aWR0aDpgJHtkfXB4YCxoZWlnaHQ6YCR7dX1weGAsbWFyZ2luOjAscG9pbnRlckV2ZW50czoibm9uZSIsdHJhbnNmb3JtT3JpZ2luOiJjZW50ZXIiLHpJbmRleDoxMDB9KSwiZnVuY3Rpb24iIT10eXBlb2YgcD9tPXQuYW5pbWF0ZShbe3RyYW5zZm9ybToic2NhbGUoMSkiLG9wYWNpdHk6MX0se3RyYW5zZm9ybToic2NhbGUoLjk4KSIsb3BhY2l0eTowfV0se2R1cmF0aW9uOnAuZHVyYXRpb24sZWFzaW5nOiJlYXNlLW91dCJ9KToobT1uZXcgQW5pbWF0aW9uKHAodCwicmVtb3ZlIixmKSksbS5wbGF5KCkpLHIuc2V0KHQsbSksbS5hZGRFdmVudExpc3RlbmVyKCJmaW5pc2giLGwpfSh0KTpmdW5jdGlvbih0KXtjb25zdCBlPWsodCk7YS5zZXQodCxlKTtjb25zdCBpPUModCk7aWYoIUUodCkpcmV0dXJuO2xldCBzOyJmdW5jdGlvbiIhPXR5cGVvZiBpP3M9dC5hbmltYXRlKFt7dHJhbnNmb3JtOiJzY2FsZSguOTgpIixvcGFjaXR5OjB9LHt0cmFuc2Zvcm06InNjYWxlKDAuOTgpIixvcGFjaXR5OjAsb2Zmc2V0Oi41fSx7dHJhbnNmb3JtOiJzY2FsZSgxKSIsb3BhY2l0eToxfV0se2R1cmF0aW9uOjEuNSppLmR1cmF0aW9uLGVhc2luZzoiZWFzZS1pbiJ9KToocz1uZXcgQW5pbWF0aW9uKGkodCwiYWRkIixlKSkscy5wbGF5KCkpLHIuc2V0KHQscykscy5hZGRFdmVudExpc3RlbmVyKCJmaW5pc2giLGYuYmluZChudWxsLHQpKX0odCl9KHQpKSl9KSksYj1uZXcgUmVzaXplT2JzZXJ2ZXIoKHQ9Pnt0LmZvckVhY2goKHQ9Pnt0LnRhcmdldD09PXUmJihjbGVhclRpbWVvdXQoaC5nZXQodSkpLGguc2V0KHUsc2V0VGltZW91dCgoKCk9PntzLmZvckVhY2goKHQ9PlQodCwodD0+digoKCk9PmYodCkpKSkpKSl9KSwxMDApKSksYS5oYXModC50YXJnZXQpJiZmKHQudGFyZ2V0KX0pKX0pKSxiLm9ic2VydmUodSkpfX1dKTs="}},"time_used":350,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":117,"receive":233,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/mass-media/marketwatch.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.065Z","timestamp":1785121660065,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/mass-media/marketwatch.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:39 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 2638\r\ndate: Mon, 27 Jul 2026 03:07:39 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":2638,"size_decoded":2903,"mime_type":"image/png","magic":"PNG image data, 332 x 48, 8-bit colormap, non-interlaced","md5":"45ee7a298689af6a84c65947bd7f6886","sha1":"698536790aa1effde0d7779a3b1fadabf8723f06","sha256":"e4378d287cedd31ab0a0daa24bfbf20d61363e81375f58201e834beffe4ccdce","sha512":"f530df5c809aae7555ec5afcefca656b5f30b164c9684abc9ce3e5beda4840d74b9c68f9635028ff511255b5019af1715855d9e0f4c53315d1205e82281dbe61","ssdeep":"","tlshash":"ed51199dde71fc3e8c34ca0640f20050b40438cb9868e7ae954595a968de3de79c66d2","first_seen":"2026-07-27T02:49:41.017026Z","last_seen":"2026-07-27T03:09:30.413473Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":388,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":386,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/calendar-12-days.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"lazy-img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.245Z","timestamp":1785121660245,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/calendar-12-days.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:40 GMT\r\ncontent-type: image/png\r\nlast-modified: Sat, 29 Mar 2025 01:02:54 GMT\r\naccept-ranges: bytes\r\ncontent-length: 37666\r\ndate: Mon, 27 Jul 2026 03:07:40 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":37666,"size_decoded":37932,"mime_type":"image/png","magic":"PNG image data, 361 x 384, 8-bit/color RGBA, non-interlaced","md5":"57736683e55888503bdcc8aa361b876e","sha1":"28a4f8e65e2e4a31ba6fc04198e28b05a3edd14b","sha256":"551378621c1c29b35be2372605f823987b8f02de64f776e08a335268a0c8d7b6","sha512":"f64bb0a6278f6c3eb661e54079e72ab7c8329abf0de3fdb436bc0c928749bd3774bab38fd3b8d9b0d4be1fa8dd4db3bae08fa89a1adfbb5bb33716160b1d9b6b","ssdeep":"768:cM6hl2abSXxSz6pt7pC8Q1u58cDI30w4xfgCWGJPsA+d/UMtN:shl/07w31QCEw4x1DN+l","tlshash":"ed03f11c722263892543c950485ad2c78e7777aa3c3ed704e075fdec1859cea2d8af9a","first_seen":"2026-07-27T02:49:41.023643Z","last_seen":"2026-07-27T03:09:30.367464Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":432,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":425,"receive":7,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.google.no/ads/ga-audiences?v=1\u0026t=sr\u0026slf_rd=1\u0026_r=4\u0026ngs=1\u0026ibt=1\u0026tid=G-CT6TVKY4QK\u0026cid=1511987334.1785121661\u0026gtm=45je67m0v893334684za200zd893334684\u0026rcb=5\u0026aip=1\u0026dma=1\u0026dma_cps=a\u0026gcd=13l3l3l2l1l1\u0026npa=1\u0026frm=0\u0026tag_exp=115616986~115938466~115938468~118897920~118897930~119896803\u0026z=1890601545","fqdn":"www.google.no","domain":"google.no","tld":"no"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.744Z","timestamp":1785121660744,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.no","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:41:27 GMT","end":"Mon, 21 Sep 2026 08:41:26 GMT"},"fingerprint":{"sha1":"FE:B5:BE:35:CB:DF:57:B9:38:CA:36:5B:8F:BC:13:7C:DE:64:44:66","sha256":"17:D6:B8:5F:85:3E:90:82:55:F6:FF:8B:5F:2E:49:BC:4F:09:E5:AA:B2:2E:E6:F2:31:A1:1E:7E:FC:A0:C4:EC"}}},"request":{"raw":"GET /ads/ga-audiences?v=1\u0026t=sr\u0026slf_rd=1\u0026_r=4\u0026ngs=1\u0026ibt=1\u0026tid=G-CT6TVKY4QK\u0026cid=1511987334.1785121661\u0026gtm=45je67m0v893334684za200zd893334684\u0026rcb=5\u0026aip=1\u0026dma=1\u0026dma_cps=a\u0026gcd=13l3l3l2l1l1\u0026npa=1\u0026frm=0\u0026tag_exp=115616986~115938466~115938468~118897920~118897930~119896803\u0026z=1890601545 HTTP/1.1\r\nHost: www.google.no\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://7bridgecapital.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\np3p: policyref=\"https://www.googleadservices.com/pagead/p3p.xml\", CP=\"NOI DEV PSA PSD IVA IVD OTP OUR OTR IND OTC\"\r\ntiming-allow-origin: *\r\ncross-origin-resource-policy: cross-origin\r\ndate: Mon, 27 Jul 2026 03:07:40 GMT\r\npragma: no-cache\r\nexpires: Fri, 01 Jan 1990 00:00:00 GMT\r\ncache-control: no-cache, no-store, must-revalidate\r\ncontent-type: image/gif\r\nx-content-type-options: nosniff\r\nserver: cafe\r\ncontent-length: 42\r\nx-xss-protection: 0\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":42,"size_decoded":578,"mime_type":"image/gif","magic":"GIF image data, version 89a, 1 x 1","md5":"d89746888da2d9510b64a9f031eaecd5","sha1":"d5fceb6532643d0d84ffe09c40c481ecdf59e15a","sha256":"ef1955ae757c8b966c83248350331bd3a30f658ced11f387f8ebf05ab3368629","sha512":"d5da26b5d496edb0221df1a4057a8b0285d15592a8f8dc7016a294df37ed335f3fde6a2252962e0df38b62847f8b771463a0124ef3f84299f262ed9d9d3cee4c","ssdeep":"","tlshash":"c4900023fa808000c3a8c2300a0b238a2b8c80200a28030b80ae208cec3a3a22c03020","first_seen":"2023-04-05T02:54:03Z","last_seen":"2026-07-27T05:14:27.315785Z","times_seen":1010173,"resource_available":true,"data":"R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"}},"time_used":82,"timings":{"blocked":0,"dns":2,"connect":15,"send":0,"wait":34,"receive":0,"ssl":31},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/levels-star-3.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.075Z","timestamp":1785121660075,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/levels-star-3.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:39 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 15309\r\ndate: Mon, 27 Jul 2026 03:07:39 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":15309,"size_decoded":15575,"mime_type":"image/png","magic":"PNG image data, 338 x 226, 8-bit colormap, non-interlaced","md5":"283de661f19c3109e40df1485fc22249","sha1":"f708820ab08979274bb7d29b76b4e358dd946928","sha256":"000cefc36f6136f0b96263e6bc76308341c9ff77e371e7a3a5b7a887de7223d6","sha512":"16fd01c6a5814403c4cc4529243c407a7f1515a36c84e266a8d118e97298717b6ea3cbc5aaf1bc921f1cb8f7c66cc51abb8f9a9083089a1893be448ec49953c9","ssdeep":"384:7WXnjvlpYX9hIYOtM5UoynEpxQ2l7BrKsbkrcV+sMp:Gjv4X9uYwbVnsxQIrKIMcU","tlshash":"a962d0d3cc8889cbe77aa65f04523b3f8b3a63f59f4942913c7706a65784b05838247e","first_seen":"2026-07-27T02:49:41.003606Z","last_seen":"2026-07-27T03:09:30.384818Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":392,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":388,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/vip-oval.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.207Z","timestamp":1785121660207,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/vip-oval.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/css/main.css?v=1684946825\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:40 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 426089\r\ndate: Mon, 27 Jul 2026 03:07:40 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":426089,"size_decoded":426356,"mime_type":"image/png","magic":"PNG image data, 1149 x 1149, 8-bit/color RGBA, non-interlaced","md5":"02248a635ec3ff8c8763f9ab1a232a30","sha1":"63348fd5fa1d8d7a32f08d67701b2295f42e61fa","sha256":"3f385739ec6ccf0974143a0fe022a641ec30f358a74985f322e9fa6d34408d66","sha512":"54fd6278e88234d54755309ddc1238565c117bbecfb69cae56388c250a57abbe9c4a61226d30c9bffc3091b0162958dd54f2e38929c9c381f0e3b53bda1e2829","ssdeep":"12288:e5sZiFXy6m1++4QggT1meKBy0Sg8fcVQ5oBA+T71dQSvr4eCz:eCZMY1++XfTM9UcRzT71dQR3","tlshash":"6c942328aac4143fde603d5c28668ee4e0984d26db14faf47c67128a2dd5ea0cdf4fd5","first_seen":"2026-07-27T02:49:41.043155Z","last_seen":"2026-07-27T03:09:30.389613Z","times_seen":3,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAABH0AAAR9CAYAAADLFju0AAAABGdBTUEAALGPC/xhBQAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAEfaADAAQAAAABAAAEfQAAAACHXYE4AABAAElEQVR4Aey93Y4ku3EtPLbsY21b/pFlwdaGLhqCMBf6Lv0Ao5fw8zT6efQSmgfw5dkXA0PoC0E+gixt29Lxlo9k+8uYqjUdFc0gg3/5VyuBbibJiGBwZVYmGVzF+oM3PIgAESACRIAIEAEi0InA/7x58wedJqhuEFgAXWDlQQSIABEgAkSACBCBdgT+sF2VmkSACBABIkAEiAARIAJEgAgQASJABIgAESACe0WAq3J7vTL0iwgQASJABIjABATIyJkA6sFMkkF0sAtGd4kAESACRIAIdCBApk8HeFQlAkSACBABIkAEiAARIAJEgAgQASJABIjAXhEg02evV4Z+EQEiQASIABHIIEDGTgYcVk1FgEyhqfDSOBEgAkSACBCBoQiQ6TMUThojAkSACBABIkAEiAARIAJEgAgQASJABIjAPhAg02cf14FeEAEiQASIwB0iQLZO8KLv8TesOIIKXryLGNlBVXBRmAgQASJABIjAMATI9BkGJQ0RASJABIgAESACRIAIEAEiQASIABEgAkRgPwhwnWo/14KeEAEiQASIwMEROCVzZ48sm4PfJ8PcP/EojsygYXcJDREBIkAEiMCdI0Cmz53fAOw+ESACRIAIEAEiQASIABEgAkSACBABInBOBE68RnTOC8ZeEQEiQASIwPoIHJLBQ4bO+jfK0Vs84KiQjKCj33T0nwgQASJABGYjQKbPbIRpnwgQASJABIgAESACRIAIEAEiQASIABEgAhsgcMA1nQ1QYpNEgAgQASJwagR2y+QhW+fU992pOrfTESWZQKe6y9gZIkAEiAARaECATJ8G0KhCBIgAESACRIAIEAEiQASIABEgAkSACBCBvSOw03WZvcNG/4gAESACRGDvCOySvUPmzt5vG/q3FgI7HIGSFbTWxWc7RIAIEAEisCYCZPqsiTbbIgJEgAgQASJABIgAESACRIAIEAEiQASIwEoI7HCdZaWesxkiQASIABE4NAK7YvKQwXPoe4nO7xiBHY1UyQTa8X1C14gAESACRMBFgEwfFxpW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"}},"time_used":468,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":415,"receive":53,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/trustpilot/trustpilot-black.svg","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"lazy-img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.242Z","timestamp":1785121660242,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/trustpilot/trustpilot-black.svg HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:40 GMT\r\ncontent-type: image/svg+xml\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 2125\r\ndate: Mon, 27 Jul 2026 03:07:40 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":4941,"size_decoded":2439,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"aa84370bac47efb2868ad3b3cfe71ea3","sha1":"fd7922d64fb111142f3051bbc669526a45ec11a1","sha256":"53f723a780d9163545109eb32dbae04f5d27ef30024368c29fece23bd48f5dc6","sha512":"8f78a4fcd8d1c76c1f3e9f63763d47a1c3e52934df38aea474497e5dbc639d023a0738580437495831b763322e6a688684d0cfc599d02838d80cf4a3463a4048","ssdeep":"96:iO2mu/SQL7dzUh3ShvLvoIALEcWKgXn/TSy5YP1TN98hUdsBk8:iOnu/VZzUNStLtRegX7SZN98hUF8","tlshash":"b2a130ee12a4536c89c7e19f9f26dad4b70ea0ae7979c0c245decb58504f844f747c50","first_seen":"2026-07-27T02:49:41.040599Z","last_seen":"2026-07-27T03:09:30.392561Z","times_seen":3,"resource_available":false,"data":"PHN2ZyB3aWR0aD0iMTA2IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMTA2IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj4KICAgICAgICA8cGF0aCBkPSJNMjcuODUyIDUuOTM3aDEwLjczdjEuOTloLTQuMjE5VjE5LjEyaC0yLjMyVjcuOTI4aC00LjJ2LTEuOTloLjAwOXptMTAuMjcyIDMuNjM3aDEuOTg0djEuODQyaC4wMzdhMi4xNiAyLjE2IDAgMCAxIC4zNjUtLjc1M2MuMTc4LS4yNDIuMzkzLS40NzUuNjQ2LS42Ny4yNTItLjIwNS41MzMtLjM2My44NDItLjQ5My4zMDgtLjEyLjYyNy0uMTg2Ljk0NS0uMTg2LjI0MyAwIC40Mi4wMS41MTQuMDE5LjA5NC4wMDkuMTg3LjAyNy4yOS4wMzd2Mi4wMjhhNi43OSA2Ljc5IDAgMCAwLS40NTgtLjA2NSAzLjkwOCAzLjkwOCAwIDAgMC0uNDU5LS4wMjhjLS4zNTUgMC0uNjkyLjA3NC0xLjAxLjIxNC0uMzE4LjE0LS41OS4zNTMtLjgyMy42MjNhMy4xNiAzLjE2IDAgMCAwLS41NjIgMS4wMjNjLS4xNC40MS0uMjA2Ljg3NS0uMjA2IDEuNDA1djQuNTRoLTIuMTE0VjkuNTczaC4wMXptMTUuMzQ0IDkuNTQ1SDUxLjM5di0xLjMzaC0uMDM4YTIuODc2IDIuODc2IDAgMCAxLTEuMTYgMS4xNTNjLS41MTQuMjg4LTEuMDM4LjQzNy0xLjU3MS40MzctMS4yNjMgMC0yLjE4LS4zMDctMi43NDItLjkzLS41NjEtLjYyMy0uODQyLTEuNTYzLS44NDItMi44MTlWOS41NzRoMi4xMTV2NS44NTJjMCAuODM3LjE1OSAxLjQzMi40ODYgMS43NzYuMzE4LjM0NS43NzcuNTIxIDEuMzU3LjUyMS40NDkgMCAuODE0LS4wNjUgMS4xMTMtLjIwNC4zLS4xNC41NDMtLjMxNy43Mi0uNTUuMTg4LS4yMjIuMzE5LS41MDIuNDAzLS44MThhNC4wMSA0LjAxIDAgMCAwIC4xMjEtMS4wMzJWOS41ODRoMi4xMTV2OS41MzV6bTMuNjAyLTMuMDZjLjA2NS42MTMuMyAxLjA0MS43MDEgMS4yOTIuNDEyLjI0Mi44OTkuMzcyIDEuNDcuMzcyLjE5NiAwIC40Mi0uMDE4LjY3My0uMDQ2LjI1Mi0uMDI4LjQ5Ni0uMDkzLjcxLS4xNzcuMjI1LS4wODQuNDAzLS4yMTQuNTUzLS4zODEuMTQtLjE2OC4yMDYtLjM4Mi4xOTYtLjY1MmEuODk3Ljg5NyAwIDAgMC0uMjk5LS42NmMtLjE4Ny0uMTc3LS40MjEtLjMwNy0uNzExLS40MTlhNy4xNyA3LjE3IDAgMCAwLS45OTItLjI3Yy0uMzc0LS4wNzQtLjc0OC0uMTU4LTEuMTMyLS4yNDFhMTAuNzkzIDEwLjc5MyAwIDAgMS0xLjE0MS0uMzE3IDMuNDkyIDMuNDkyIDAgMCAxLS45ODMtLjUwMiAyLjIxMyAyLjIxMyAwIDAgMS0uNjkyLS44Yy0uMTc4LS4zMjUtLjI2Mi0uNzI1LS4yNjItMS4yMSAwLS41Mi4xMzEtLjk0OC4zODQtMS4zMDEuMjUyLS4zNTQuNTgtLjYzMy45NjMtLjg0N2E0LjQ4MyA0LjQ4MyAwIDAgMSAxLjMtLjQ1NmMuNDc4LS4wODQuOTM2LS4xMyAxLjM2Ny0uMTMuNDk2IDAgLjk3My4wNTYgMS40MjIuMTU4LjQ0OS4xMDIuODYuMjcgMS4yMjUuNTEyLjM2NS4yMzIuNjY1LjU0LjkwOC45MTEuMjQzLjM3Mi4zOTMuODI4LjQ1OCAxLjM1OEg2MC45OGMtLjEwMy0uNTAyLS4zMjctLjg0Ni0uNjkyLTEuMDEzLS4zNjUtLjE3Ny0uNzg2LS4yNi0xLjI1NC0uMjYtLjE1IDAtLjMyNy4wMDgtLjUzMy4wMzZhMi45MzMgMi45MzMgMCAwIDAtLjU4LjE0IDEuMjU4IDEuMjU4IDAgMCAwLS40NTguMjk3LjcxNy43MTcgMCAwIDAtLjE4Ny41MTJjMCAuMjYuMDkzLjQ2NS4yNy42MjMuMTc5LjE1OS40MTMuMjg5LjcwMy40LjI5LjEwMy42MTcuMTk2Ljk5MS4yNy4zNzQuMDc1Ljc1OC4xNTggMS4xNTEuMjQyLjM4NC4wODQuNzU4LjE5NSAxLjEzMi4zMTYuMzc0LjEyMS43MDIuMjg5Ljk5Mi41MDMuMjkuMjE0LjUyNC40NzQuNzAxLjc5LjE3OC4zMTcuMjcyLjcxNy4yNzIgMS4xODIgMCAuNTY3LS4xMzEgMS4wNDItLjM5MyAxLjQ0Mi0uMjYyLjM5LS41OTkuNzE2LTEuMDEuOTU4LS40MTIuMjQyLS44OC40MjgtMS4zODUuNTRhNi45ODYgNi45ODYgMCAwIDEtMS41MDcuMTY3Yy0uNjA4IDAtMS4xNjktLjA2NS0xLjY4NC0uMjA1YTQuMTEgNC4xMSAwIDAgMS0xLjMzNy0uNjE0IDMuMDUgMy4wNSAwIDAgMS0uODktMS4wMzJjLS4yMTQtLjQxLS4zMjctLjkwMy0uMzQ1LTEuNDdoMi4xMzN2LS4wMTl6bTYuOTgtNi40ODVoMS41OTlWNi43MWgyLjExNHYyLjg2NWgxLjkwOXYxLjU3M2gtMS45MDl2NS4wOTdjMCAuMjIzLjAxLjQxLjAyOC41NzcuMDIuMTU4LjA2Ni4yOTguMTMxLjQxYS42LjYgMCAwIDAgLjMxLjI1Yy4xNC4wNTYuMzE3LjA4NC41Ni4wODQuMTUgMCAuMyAwIC40NS0uMDEuMTUtLjAwOC4yOTktLjAyNy40NDktLjA2NHYxLjYyOGMtLjIzNC4wMjgtLjQ2OC4wNDYtLjY4My4wNzRhNS41IDUuNSAwIDAgMS0uNjgzLjAzN2MtLjU2MiAwLTEuMDEtLjA1Ni0xLjM0OC0uMTU4LS4zMzYtLjEwMi0uNjA4LS4yNi0uNzk1LS40NjUtLjE5Ni0uMjA1LS4zMTgtLjQ1Ni0uMzkzLS43NjNhNS43MDQgNS43MDQgMCAwIDEtLjEyMS0xLjA1MXYtNS42MjhoLTEuNnYtMS41OWgtLjAxOXptNy4xMTkgMGgyLjAwMnYxLjI5M2guMDM3Yy4zLS41NTguNzExLS45NDggMS4yNDUtMS4xOWE0LjEyIDQuMTIgMCAwIDEgMS43My0uMzYzYy43NTggMCAxLjQxMy4xMyAxLjk3NC40LjU2Mi4yNiAxLjAzLjYyMyAxLjQwNCAxLjA4OC4zNzQuNDY1LjY0NSAxLjAwNS44MzIgMS42MTkuMTg4LjYxNC4yODEgMS4yNzQuMjgxIDEuOTcyIDAgLjY0Mi0uMDg0IDEuMjY1LS4yNTIgMS44NmE0Ljk2NyA0Ljk2NyAwIDAgMS0uNzU4IDEuNiAzLjcxNCAzLjcxNCAwIDAgMS0xLjI5MSAxLjEwN2MtLjUyNC4yOC0xLjEzMi40Mi0xLjg0My40Mi0uMzEgMC0uNjE4LS4wMjktLjkyNy0uMDg1YTQuMDk0IDQuMDk0IDAgMCAxLS44ODgtLjI3Yy0uMjgxLS4xMi0uNTUyLS4yNzgtLjc4Ni0uNDc0YTIuOTUzIDIuOTUzIDAgMCAxLS42MDgtLjY3aC0uMDM4djQuNzYzSDcxLjE3VjkuNTc0em03LjM5IDQuNzgyYzAtLjQyOC0uMDU1LS44NDctLjE2OC0xLjI1NmEzLjM3OCAzLjM3OCAwIDAgMC0uNTA1LTEuMDggMi41NjkgMi41NjkgMCAwIDAtLjgzMy0uNzUzIDIuMzQ1IDIuMzQ1IDAgMCAwLTEuMTUtLjI4OGMtLjg5IDAtMS41NjMuMzA3LTIuMDEyLjkyMS0uNDQ5LjYxNC0uNjczIDEuNDMzLS42NzMgMi40NTYgMCAuNDg0LjA1Ni45My4xNzcgMS4zNC4xMjIuNDA5LjI5Ljc2Mi41MzQgMS4wNi4yMzQuMjk3LjUxNC41My44NDIuNjk3LjMyNy4xNzcuNzEuMjYxIDEuMTQxLjI2MS40ODcgMCAuODg5LS4xMDIgMS4yMjYtLjI5OC4zMzYtLjE5NS42MDgtLjQ1Ni44MjMtLjc2M2EzLjE2IDMuMTYgMCAwIDAgLjQ2OC0xLjA3Yy4wODQtLjQuMTMtLjgwOS4xMy0xLjIyN3ptMy43MzQtOC40MTloMi4xMTR2MS45OWgtMi4xMTR2LTEuOTl6bTAgMy42MzdoMi4xMTR2OS41NDVoLTIuMTE0VjkuNTc0em00LjAwNC0zLjYzN2gyLjExNFYxOS4xMmgtMi4xMTRWNS45Mzd6bTguNTk4IDEzLjQ0MmMtLjc2NyAwLTEuNDUtLjEzLTIuMDUtLjM4MWE0LjUyNSA0LjUyNSAwIDAgMS0xLjUyNC0xLjA0MiA0LjUzMSA0LjUzMSAwIDAgMS0uOTQ1LTEuNTkgNi4xMDggNi4xMDggMCAwIDEtLjMyNy0yLjAyOWMwLS43MjUuMTEyLTEuMzk1LjMyNy0yLjAxYTQuNTMxIDQuNTMxIDAgMCAxIC45NDUtMS41OSA0LjMxIDQuMzEgMCAwIDEgMS41MjUtMS4wNDJjLjU5OS0uMjUgMS4yODItLjM4MSAyLjA0OS0uMzgxLjc2NyAwIDEuNDUuMTMgMi4wNDkuMzgxYTQuNTI1IDQuNTI1IDAgMCAxIDEuNTI1IDEuMDQyYy40MTEuNDQ3LjczLjk3Ny45NDUgMS41OS4yMTUuNjE1LjMyNyAxLjI4NS4zMjcgMi4wMSAwIC43MzUtLjExMiAxLjQxNC0uMzI3IDIuMDI4YTQuNTMxIDQuNTMxIDAgMCAxLS45NDUgMS41OSA0LjMxIDQuMzEgMCAwIDEtMS41MjUgMS4wNDNjLS42LjI1LTEuMjgyLjM4MS0yLjA1LjM4MXptMC0xLjY2NWMuNDY4IDAgLjg4LS4xMDIgMS4yMjUtLjI5OC4zNDctLjE5NS42MjctLjQ1Ni44NTItLjc3Mi4yMjQtLjMxNi4zODMtLjY3OS40OTYtMS4wNzkuMTAzLS40LjE1OS0uODEuMTU5LTEuMjI4IDAtLjQxLS4wNTYtLjgxLS4xNi0xLjIxOGEzLjE3NCAzLjE3NCAwIDAgMC0uNDk1LTEuMDggMi41NzYgMi41NzYgMCAwIDAtLjg1Mi0uNzYyIDIuNDYzIDIuNDYzIDAgMCAwLTEuMjI1LS4yOThjLS40NjggMC0uODguMTAyLTEuMjI2LjI5OGEyLjY4MiAyLjY4MiAwIDAgMC0uODUxLjc2M2MtLjIyNS4zMTYtLjM4NC42Ny0uNDk2IDEuMDc5LS4xMDMuNDA5LS4xNi44MDktLjE2IDEuMjE4IDAgLjQxOS4wNTcuODI4LjE2IDEuMjI4LjEwMy40LjI3MS43NjMuNDk2IDEuMDguMjI0LjMxNS41MDUuNTc2Ljg1MS43NzEuMzQ2LjIwNS43NTguMjk4IDEuMjI2LjI5OHptNS40NjQtOC4xNGgxLjZWNi43MWgyLjExNHYyLjg2NWgxLjkwOHYxLjU3M2gtMS45MDh2NS4wOTdjMCAuMjIzLjAxLjQxLjAyOC41NzcuMDE5LjE1OC4wNjUuMjk4LjEzLjQxYS42LjYgMCAwIDAgLjMxLjI1Yy4xNC4wNTYuMzE4LjA4NC41Ni4wODQuMTUgMCAuMyAwIC40NS0uMDEuMTUtLjAwOC4zLS4wMjcuNDQ5LS4wNjR2MS42MjhjLS4yMzQuMDI4LS40NjguMDQ2LS42ODMuMDc0YTUuNSA1LjUgMCAwIDEtLjY4My4wMzdjLS41NjEgMC0xLjAxLS4wNTYtMS4zNDctLjE1OC0uMzM3LS4xMDItLjYwOC0uMjYtLjc5NS0uNDY1LS4xOTctLjIwNS0uMzE4LS40NTYtLjM5My0uNzYzYTUuNzA0IDUuNzA0IDAgMCAxLS4xMjItMS4wNTF2LTUuNjI4aC0xLjZ2LTEuNTloLS4wMTh6IiBmaWxsPSIjMUExQjI2Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iIzAwQjY3QSIgZD0iTTI1LjM4MiA5LjE3MmgtOS42OTNMMTIuNjk2IDAgOS42OTIgOS4xNzIgMCA5LjE2Mmw3Ljg1IDUuNjc1TDQuODQ1IDI0bDcuODUtNS42NjVMMjAuNTM2IDI0bC0yLjk5NC05LjE2M3oiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjMDA1MTI4IiBkPSJtMTguMjE2IDE2LjkxMi0uNjc0LTIuMDc1LTQuODQ2IDMuNDk4eiIvPgogICAgPC9nPgo8L3N2Zz4K"}},"time_used":99,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":99,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/calendar-60-days.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"lazy-img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.243Z","timestamp":1785121660243,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/calendar-60-days.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:40 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 25 Mar 2025 18:35:52 GMT\r\naccept-ranges: bytes\r\ncontent-length: 37259\r\ndate: Mon, 27 Jul 2026 03:07:40 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":37259,"size_decoded":37525,"mime_type":"image/png","magic":"PNG image data, 361 x 384, 8-bit/color RGBA, non-interlaced","md5":"662d78965ecb7ddc15b35b59c82d2c7c","sha1":"397391dc137275300e7efd11d089f67565a0f942","sha256":"0020806bca43c67849c782f497f73007afa185dc4954888574ab12d1575f0bc2","sha512":"3e48f2eb9580d602ec228437367cdd2c8615fbe087529913b7c8ad4e1c83d74e4bc298f57727c71a64cfd37b561d6161c7307719728b82594873ed7f3b91732d","ssdeep":"768:SdFQuCf7DYUpJYjZDnZ1bJVxsBUsPvPCHb7cjox9X:nXDv4jdyBiHb7d9X","tlshash":"c8f2e11b3b8dd4f0980c7c418741ca5cbcbd4b3a97728bf17914bb8b16a52e29b2d917","first_seen":"2026-07-27T02:49:41.005973Z","last_seen":"2026-07-27T03:09:30.401337Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":415,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":99,"receive":316,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/logo-full.svg","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.061Z","timestamp":1785121660061,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/logo-full.svg HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:39 GMT\r\ncontent-type: image/svg+xml\r\nlast-modified: Tue, 25 Mar 2025 15:03:20 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 5617\r\ndate: Mon, 27 Jul 2026 03:07:39 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":7428,"size_decoded":5931,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"00ae17809599a5ab069725a267e16877","sha1":"38710dfd1995b779ab8a5824eafa2363022fe4df","sha256":"9a128b83ee9d02837f7c33b97bc42f3c2b885c924339a14a2fbf0c939652268d","sha512":"3ecf78cd31b736c4813a34451e93e008d9790ac07af829200987fc6ffb0db12d1b69703d97d3ea5307574cb5c4e91f5997056037ddb208a308b689ee4b51a6bd","ssdeep":"192:GUgo723JBM7g2Y4U6hpPQvhp+MyC7IUp3owcNGNffAWJI:GhJC7gj4pPS+ZyIU3Q9v","tlshash":"0ae19f150f58d22e207d01de3a259f4a00ce2d62e2e498dacd036c76a528f59ee24f7e","first_seen":"2026-07-27T02:49:40.99651Z","last_seen":"2026-07-27T03:09:30.381151Z","times_seen":3,"resource_available":false,"data":"PHN2ZyB2ZXJzaW9uPSIxLjIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM0NCA5OCIgd2lkdGg9IjM0NCIgaGVpZ2h0PSI5OCI+Cgk8dGl0bGU+bG9nbzwvdGl0bGU+Cgk8ZGVmcz4KCQk8aW1hZ2UgIHdpZHRoPSIzNDQiIGhlaWdodD0iOTgiIGlkPSJpbWcxIiBocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVZnQUFBQmlDQVlBQUFBVitzcy9BQUFBQVhOU1IwSUIyY2tzZndBQUZLTkpSRUZVZUp6dFhXdU1KVVVWM2xwZUVaUWdnbUFrYUJTSitDSUdveWdoV1kxUk1ZQ0VBQ0ZrWW96QlJFWDRvWURKUnBNeFlBaFpDSW94bXJDWUNFR0NZNVlJRWNMNkdsbGttWjNwRmx5SDNabDdVUWl3N0s2N0xzUHNhNWk1MDU3cTdwbTl0NmVyNnRTcnEyL2ZjNUp2SHZkMlYxZWRxdnI2MUttcVU2dVNKRmxWTlJZV0ZqNjN1TGk0Q2ZBQ1lBWXdCNWpQMFlGckV2NDcvNTkvZHdBd20xKzdGN0FUOEpwRHZBcDRXWUtYQVA4UmdKZWhKY0VVWUpzalBILzQ4T0d6UXRRWmdVRFFSK1VQN0hRNlYzSGlURWkwQmZSMmYxS0RSa01nRUhDbzlHSHo4L01YY0lzMElkRVcwTnUrL2Z2M241YlVvTkVRQ0FRY0tudlE3T3pzS1h3b25wQVlDVmorMzBwcTBHQUlCQUllbFQwSXlQWGhoTVJJUUhlYmg0ZUhWeWMxYURBRUFnR1BTaDRDMXRmWEVoSWo0ZjdxTjk5ODg5eWtCbzJGUUNEb3dmc0Q5dS9mLzA0Z2lUMEppWkdBN3RZbE5XZ29CQUpCSDk0ZkFBVHhRRUppSktDN2YrL2N1Zk9FcEFZTmhVQWc2TU5yNGdzTEM1OU5TSXdGOUhkUlVvTkdRaUFRek9BdDRkSFIwYVBCQXR1YWtCZ0o2TzdCcEFZTmhFQWdtTU5id3AxTzU0YUV4RWlBWFA5MzRNQ0IwNU1hTkJBQ2dXQU9MNG5PenM2ZXloZkdKeVJHQWkrbmJ5UTFhQndFQXNFT1hoSUZjcjBuSVRFUzBOMlREQ1NwUWVNZ0VBaDJjSjdnL1B6OEo1Y0N0cERvQ2VqdDhOemMzRGxKRFJvR2dVQ3doOVBFUmtaR2pnS1NtRWhJakFSME41elVvRkVRQ0FRM2NKcFlwOVA1VGtKaUpEd2NZYXZWT2k2cFFhTWdFQWh1NEN3aFB1c05KUEY2UXFJdGkzdy83UHo4aFVrTkdnU0JRSEFIWndrQlJ6eVVrQmdKNkc1OVVvUEdRQ0FRM01KSklwMU81K3FFeEVpQVhIZk56TXljbk5TZ01SQUlCTGV3VGlCM0RleE5TSXdFWGs1RFNRMGFBb0ZBY0EvckJJQmNmNWVRR0FubzdpKzA1cFZBYUM2c2JsNVlXTGdpSVRFU2ZuUU95SWVTR2pRQ0FvSGdCOFkzN3RtejUyMUFFcThrSkVZQ3Vyc3RxVUVESUJBSS9tQjhZMDRRSkFZQ3VtdnYyTEhqK0tRR0RZQkFJUGlEMFUwSER4NDhBMGppVUVLaUxYek42OExDd3Bxa0JwVlBJQkQ4d3VnbTRJaTdFaElqQWQzZGtkU2c0Z2tFZ244WTNRUVcyQ1Y4ZVpFbXJ1SHJaU3ZBVlh6eXJRSmNEcmhNRTVmd2VBMmhLNTBRRG14eTlLMnNQWDRwYThmWEFZYll0dWhkb2ZNVVJBL2J0cHpOdHNmbnBUcklkTkVML2gxY0V6cWZ0Z2llQVlJYnBBMzJTTWQxaUlrMW5CU1V6ODg2aSszemhseDJyRXduZ2c0Y0lGLzgvdFh0T0NtQzE1dFdPbmE2ZHFwanpicmd6OTlRcGdNWldEdGFuN1p0UkR0VTVxUDNCZWNCdmZrMHorajJMWjlnMCtPZmh3NzRGVFlkWDg1YUUxZWt2NmVpeTlLSHRLS0xNOFNYcEorM282dmcvMnZnK3EvQzM5Y0N2ZzMvM3dDWitpNWNjelBnQi9EM2orQ3pXK0R2SDhQM3Q4UGZkOEpuZCtYNEtmei9zeHgzcDUrbDM2ZlgzWnJkSDkyWUZwSS9weFY5SVcxSXo0NmVWR1ZEQ2dGZVp0MUdxOTNJQlIweWE3RHhKaS9QYk1YcmVCMGE2UVR1OWFZTHczekp5QVZqeWFZazFZcW1uWllGOHBTU3JnUHlLaTl6U21iTzJrZXFlME9ybitmRmR6OHA5aGR6eGJXaU82cktyQ1VXZ1hpZjVvUWJtZ2g5d1JmQkZUdGkxVVIyNU5sZ3dXZ1FRRlVkS1NVbmpYekowMUpic1NiV24yWjUxcm9pMnRTNGNmd3lLT1JWYXdja0orVXEyc1J5L3FCZjhPZGFFT3pqeDBFaVQxV1phVXNBMGNZL1laTWp4NFltUkE4RTY3WGo1UTE2a3k1cE9NOERjbGpMQ2JsdStWSjFjRDRLVWFWUlNWbUFGSzFkSVVEVTFlUTFJekZjbnFxelhydnpadGV4cDZKVFFKbmJxOHk0Z3diMGR6YTkrZDJoU2RFdHdVNnM4YTQzQVFGVVhIZlRLSDl3QlMrY0ZYbFQ1SXRiZENiNnhSSzArL3JXOHdzdjUxTmpSTU5mMnVtUXY5ZVB1VmFuL3JBa1c0VWJyU2RmdGk2Q0l3b2RPd015MzY2NlFkczFubmduSjZYUXhPaVVaRk5mNk1RYWMrZTgyT29UdVFkVUJKdjc5MVRQVGpzVWRqaUpzZlNrdms1TzBuaTk0UE9sNk9qV0JLdStYNkZyUGxHazkrTFJ0V1N4NUlyeCtlYStmUlFwWXZ6aHFyUktpRDdzSkZkUDVzRWloTVQvR1pvNHRScFBPNTRIcGQ1RXdWYnl4aXdna3RUS2tIUUdXekxzeVFkWWFaamhQYUl6aVFsVzhySVFwcGZOMml2OTNMTEpsd29JRnEzcmJMSU1TWVpJbnl3blRXVmFuTVEwZmJ4Wm01RHJYdVMrS3VSUFRyQ0drNmtxdU91a1c1OTZPeFJpTERSeEdoRHRBMnp6NXJmNFVHNC9RTFVLUURWajY1SmdqM1FHT2NtcTh1U2FZREY2eXRJV0Q2dnJSTERMYVFxV2pSVkpFYU1iZFQ4emN6bWcwMWUzaWY0bTJMUVFyYkVUb1NCUGhpWk5mWktOeHB2bWw4WFhtZGlTd1F3UnZSQ3Npa3dVbmNFSHdXYnB5bjNkc3ZMV2tXRFRkREVrcXlJdmhUV3NNeGxsbXMrQklOaTBJTTl0UEFFS3N6RTBhZXFUYlB3cURKTS81VVBKZFlWc1dJZHRjRUVJVnVXLzgwV3dDa3VxSHdsVzFRN3l0TmVhNmdSVFg3YjV4TlJwWXdnMkxReGZ3dFdPSHdsTm1nWWtlNGhwcnEvclY4Z3NBaDBkZUNGWXlaSWE3aXRXMzA4RXExMDJ5V1NlVE9lcTVVK3UrMU9SWkxGKzNVWVJiRnFnS0RvR0NqVVNtalROaURhNm5RMFByL2FsbTlDUVQycEZXZ2N3dXU3MHNyeGxhZG90eVBmcUlwQjAwdG9UckdMdHFtZ0lydlNYZTlvaFpsQytaaEZzV3FpTVpKOElUWmlHSlB1N3BrNSt5VHFUYm9kdzJlbFZzL1VhYXg2RFRIS3B5bFpyZ2xXbVgvNWlrNzhNMWJQN0ZiYjU1aEhzY3NOc3hST2hDZE9RWko5bXJVMm5obTRjVHV0RDBwRk0xZ1lyT2oxbUhTeHF2YW5NRDFqU21kd3UwOHBpYXlqeUo3ZXNhMCt3aGp2TnBQYzRtTnh5MXU2cldBZGJNaWxjVGVHMlBuTWE2N1BOQ0YwTnE4Mm14OThYdW9FNHF3dEhyZ0ZNQjNPay93MjYxb1dVWU5FYkRmQUw4MUZMbVdwT3NLcTZMSHZCdWRqK1cxbTdSMjVhc0c2dmhiWlFYUUdCcEtDUXI0UWtTNHRPdm9OTnhSOEwzVWg4TmpMVENFVVY2SDZ0OW82aUNyZktZaWR4R2tDd0t5eC8xM2t5Q3lXSURLZFpFY0VXKzFLMUhYd3EraUFVZEZkVkJYWGNrZlpCNVgrbVNuMDUxYjFrQnR4bUtGZWgvamZnZzcxVUV2eG1yYzVMaVFoV29SL0VlbHo1c3hRdW1rRWcyTFNnWUFsQ2gzNnBxc0k2N2xSdnNLbUpDNnJXbVJPOWU3QmVNWjBTYVltZ0EzeUVDdXZISjJ5eWZKckZzR2drd1RwMEViaUlnQ2F6WkJ2dkl1Z3BMTjlXeXdObnQrTkRWUlRhY1VkN25XMmIrRWdJdlJuclcyYTlXaXhiUW5SSy9XVmFXY0FhS1VFaXJCVk5IMnkwSGhQVUJlc09LTTFUL3hOczZTU2pEdG5JNjh3QndjcVd5VFY1a2t0WTZHMWIzcEdkY0JEL0hCcjRZL0I3TXlDQ3dtNkYzMU9BRjdpMXkvZ3VxM2I4R25jdkFQWUNaZ0N6Z0FPQU9jWUR0N1RqRHFLRGRQSnI1L1A3RHVWcHpPVHA3azZmbFQzemhUd1AvMHJ6bE9YdHIvRGQ0OUFZYmd1cE4yMDl5NnhYaXozaWlFNXBzYnZJZkgybGxHQWxMeFJNVUJlbUdXUzdPKzA2RTZ4eUs2b2dmVmZMdEd4ZEJOWUUyNi9MdEFoaG9kcDlaSnUrTjRLMTJUVmxzVXdyWCsrcXNLRGxFY1pLMDYwN3dTcDNaSW5Xd1NyaUVPajRxVEVoTjJXRVRnUkxxQnJ5YmFmMjZ4VDlkbnBEUzlSeUhTd3VjcFlleWRhZVlBMkpNc0JXV1hIZE5wRmcwNVVCcmVpK2ZGajkzM3lvdlRmN1A1cUV2OGV5Q1lMb2Ira1Fld210K00vdzJSOVRwSDh2ZlpkZXR5a0ZQMzBndlQ4YXo0ZnB6K1ZwYml1NEVGN08zUWk3dXZLd3IrQktPTlRsRXBqdHdreCs3ZDdVRGRIakhraWY5WThzSDJsZWY4OTRlTU5XZkEvamh6RDJ3ZnBZR1ZIWXVnYzRRaEVzaDFFblJQcWNWVnQyZFVtMnpnU3JIQzNJWWhGVUdPeEZXYmROSTFnZ25DOXl3bElwdUlsSWliZm04UXBzUTd4aDRLdlRxem9UaDFFbjFKalVjeFV2TlUycnpnU3JJaC9GTGpybC9RNTNkQTBNd2VZYkIyWkNFMTBJcEpObHJmaDhIeFhpRWt3UndNUEZNN3gxZXZVU0lPRUVpaXVDeFhUTVBFM2xNTGl1Qk9za0hxem5nTnZvdW0wS3dmSmpWaUREZndwTmRLRUFsdnN2ZkZTR2E4amRBM2JMczViZ285T3JPbEthdHNRcWNrbXdLajJpU2FpR0JPdlVRa2VjMm1weVpFeFJCd014eVFXSytucG9rZ3NGeHJmTlBqdDZrby9LY0FuRUxEdzZlSW9Nemp0OU5vdXNKalI1WjNKTHNJZ1RYWldyRTJwRXNQazVWN2dEQlhVbTh2Q0hIbDZIZFUvbFMrZldvdFlwTjRGZzg4QXRlME1UWFNpQTlYcWxqNHB3RGRQd2M3cFFrWTUweVUwdjhFYzFxOGpNUjdoQ2pJVVdOaDZzV3RmWllucmx5MnM1VGMwWUVHaytkWS90em9McTJKK0FxMWh6aS9FVGE3UlY5SVlEL1liV2loOEtUWEtoQU1wN05EUng0Z2xCRVJ6YW9QUG9FcXkzZWdodzZHR1dybUx6ZzJ6cG1JTnRwZFcyZFl0RENpdmFsdHF0ZDhReFF0WG1LWGV0YUpKcmRIR1ZtYXdUR0k5RE1CbWRHWm80MFhVbGkvdUtPSGFscmdTTGVUSElpTkNLWURGTHR5VGtMMjlmYWtLclJMOThLN0dEbDYvS1grcW9UNkpEV1dKR0lEN2FxbWJqNnM4Z0xVNlVOVDF4ZldqUzFHcmdFb3ZKZHZsVXozTTBob1JXK3RlWUlKRnVyckJjK0c2ejlFMXFXU044a2pyRGV5TWQ4K0d0NHlOZU1NSEtqZHFDYmdoTGhCL2R1VDYxQ0xZVjNWbDFCdXNDeHVNUTFIek5xNkJEcmppRkV6T2Mwbm9HWXRlVGhkNnpDRllHNjNYTHlNeFYyVVh1RjJVUUd1aHdaV1NESFk2TDdyZlVNZmZkRHZrK095dk5leFkxVGJ1dE1NdElaa2ZxclRvclZzdEZ3Rm9USDRjQ3pvY211aEJnYVZDWUxSLzIyZmdxYU5qTHdZbTlQU2ViN2JXZElCaEswM0Uwbzl1N3I5MXQyUXZCb1lmUXMrS0c5em5VZGFaalJ6NTRxL1lpTG9lM1BKb0Y5Zlk0eWNWR1I0K0dtNkxRUkJlUVlJZEROa1FDZ2RDL1VGN0EydEdOb1VrdUhMbEdrMnh5NU5qUWxVUWdFUG9UMGk5Wkszby9HOXhZQXp4MjdLZERWeENCUU9oZlNMOEVndGtZbXVpQ0VXd3J1anQwNVJBSWhQNkc4SXV5R2VoQkFaVDlSZCt6cWdRQ29ma28vVEE3eWlYZUhacm9BaExzbDBKWERJRkE2SCtVZmdnRTg2dlFKQmVNWEZ2UmZhRXJoVUFnTkFNclBzZ1hVUytHSnJwQWx1c3VicjJIcmhRQ2dkQU05UHpEb3VnWXZqUXBOTkVGSTlqcCtPclFGVUlnRUpxRG5uOVlLNzQ1Tk1rRnRGNGZDVjBaQkFLaFdWaitJdy9DT3h1YTZBS1I2d3hyalowUnVqSUlCRUt6c1B3SGEwZjNoaWE2WUFUYm12aG02SW9nRUFqTlEvcURiWTgrQ2xiY1FtaWlDMlM5UHNtUEdBdGRFVlZnYm03dTdFNm5jOTNpNHVJR0FJOEoyeVA1NStzV0ZoWXUzYjE3dDlOMXdQelprUGI2cm1kTjg3ellQaWN2ejRxeXFLUzdyQnJQR2xwNkZ2OE45NjVSbGRPbFFMcWJ5cDVaQm40ZHY3NXdyOVVwRm5uWk5peWxDZnB3Y3V4UWs1SCtBSkw1YldpaUMwU3U4L3psRXJvU2ZJTjNMRU1TV25mZ3dBSHJvNzE1eDVROFEzclVod3ljWEhYTEpCSk9uckpuemMvUG4xZDJYMUUvM1FUa1VaVDFMYnJSaGhUTDJwQktiNE9PVld4Yi9CNis3ejQwMlFVaDJGYjB3OUFWNEJPY0ZFeUl0U2k4VTlwWW1pclN5WW5TZWJxNndsOG9vbWVKeUR3blhtOTVFb2hRSjNrOVNhV1lad3hFTDhtOHZNSGJlbDJ4aWszSDUvQ0lXUU9INllucjJjaklVYUVyd0Jka1ZveUpjRXZUaEdSRmxsOVJUTkwyUVdZaXNoY1JiUEg2NGpEYXBXQmNCQmlyM29RVVJmVklCQ3RIOEF3UTNFTkZydHhTNHgybW05VDRVRGQzSlFqSndhUXpZY25HeElvVnBTMnkwSGdaK1hmNU1Ga29aV1NQSlZnTVhLYlZEWXoxdWlTNlZpd1JyQm5TSDJuc2djbngweXZIVkhSS2FBVTBEU3AvSjhhbm12dlZTa1Zub2tUVUtVVUVwMnZGNmhKc04yUjZLck1TKzRGZ3k5TGxkVjZtSjExaUpJSTFRL29EaHN6ZkN6UEpGUDBtdEFLYUJoSHA2RTRtaWF4Z25RNGw2TmpyUkphVzdvU0pEY0Z5aUlpK2pPanFUckFpbmZKNnpGOFlLeVIveWFEU0o0STFRL3FEK3lKWk8vNUQ5Wk5NOGZtaEZkQWt5UHlkSmo3T01nTENFclVvTDB1ZE9wOVFLcWF0ZFp5NEE0SkZFMTNkQ1ZiaWUxM1NWZG15UE9Ha1hoRkVzR1pZL29PMXhrNEV3dHRhNFF6K1k2RUwzelNVa1JZWDA2VTVuSlM3MTFKeXdib0lCQVM2M0JselY4VUswWEZCa0FYYm80dXlKVlRMNllsR0pOaGxlRVN3WnVqNWgwMUdaNElsKzRwLzEwRGNZZE5qNTRZdWZOTWdXcEtsTXhRc2dwTXM3NXk4czJLSlMwS2Vhd3I1TFhNaG9LMVk4c0ZtRUpGbjk2aEY1RUxBV3JGRXNHWlk4VUcrcTJ1Zlo5L3J2YUVMM2xDSXBOSjhZSWYvb2s2cllTVnJyeUxJZHppVld2b3lmZFdaWUxIRGY5RnpNVllzRWF3WlNqOWswL0dGUUxJSFBWbXZiNWljQlUrUVE5SUJqSGRLbVVCa3ZZb21zQVRrZ0xKaWZhdzNGWkY3WFFsV1pMMldqVnBFZFlPeFlvbGd6U0Q4Z2syTlh3UmtPT2RoWXV1bTBJVnVJdXJTQVVUV29XaVNUVVFRR0N2V05jSEtmTlYxSlZoUlRBbko5YVgxbzdKaTY5SysrZzNTTDNrQWFwZmJhQ0d0S1RZNWNtem9RamNSZGRqS2FHSWhTWHlEU2l2V0ZjSHlkRlIrMnpvU3JNbkxTVUtVVWl1V0NOWU15Z3RZTzdwMnRhTWpaTmoweEpkREY3amhFSWxWdWtzN29GVFhtZnI0UlBlcHJGaFRnczBYMzYvbno4Vk9BTmFSWUUwbkNVVjZrOVVURWF3WlVCZXhWblNEQSt2MTBkQ0ZiVHBFcXdoc0ltSVZ5VUJFZWpyYk5MR2lJZ3ZiWlZvNnFCdkJZbU04NklqTWlpV0NOUVA2UXRhS3YyOUJyb2NCWjRVdWJOTWg4cStaeGdFVkRmbkxyblVaT2hDYjkwRW1XRjhCWlVRdll5SllNMmhkREpic0xXWVRXOUd0b1FzNkNKQjBBcTBkVWt1UUJJN3V1YzZIOVlySis2QVNyQS9yZFVsRVZpd1JyQm0wYndDeXZGUFRlbjJSUmRIeG9RczZLQkNSanU1dUxra3NBdlQ2U2xjaXNtSUhsV0I5eDV3dHMyS0pZTTJnZlFNL1hvVzFvMS9TeEZZOW9ZaW1oZHExSTR1bVZTUXZtZldxNi9zVkVZL0lpaDFFZ25VNVNwRUVCbHJSVG9oZ3pXQjBFeHNlWGcyVzZmMEkxOENEb1FzNGlKREZnMTA2QzZ0SVFweVlWZkZneTZ4Z0hVdFhCUmxabDFteGcwaXdMdjNzTWxkRDhlVklCR3NHNHh2WjZPalJyQlUvTEhFTjdHRmJuemt0ZEFFSEZSNU9OQ2dsVE5IS0JWT1NrMWl4S3pyeW9CR3NaTkxSS0ZxYVRJZkZ2TGoyKzNML3Z1dUROZXNJcTV0WjYvSGpnRWlmS0NmWTZNclFoUnQwaU9LQTZvcklmK3RqYzROaXdxem5Xb20xN1Z5WDJETzVNSkFFSXBjU3JNaDFZeE9GQzJ1WnlseFBwcEpQb2didkp6NWhuUUI3YnVNSllNaytWWEFOL0RwMHdRZ1o4cENEcXVBbXBjSTdnSXhBUkdSb0U3MkxvNHhJeW55TW9naitOczhXQVh1cUxBWWlTMVJGMW1WNTRIcXh0UVRMVm91VWpWaEVveFZUSVlKRmdrMXVQaGtzMmUxNXJJR3RiSEswOGFaL3Z5RVBPN2lHVzZQY09oSHNZVi9hNFRTRUpZN2lJWCttYTI2TDZJN1Z5dk1reWsvaHVnMHVqaGtYb2Z2NGMvNWJkUUNoSXEwMWhiUlFlaXZlWi9zeVM1TGxsL0F5eVlwT0VjN3JXclIwVDB0NE9pN3lYbmM0UzRnOVAvWUIxbzdHMmZabjNodTZVQVFDZ1ZBSC9COGh3ZmZDSkJrZHdBQUFBQUJKUlU1RXJrSmdnZz09Ii8+Cgk8L2RlZnM+Cgk8c3R5bGU+Cgk8L3N0eWxlPgoJPHVzZSBpZD0iQmFja2dyb3VuZCIgaHJlZj0iI2ltZzEiIHg9IjAiIHk9IjAiLz4KPC9zdmc+"}},"time_used":329,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":326,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/bg-liquidity.jpg","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.205Z","timestamp":1785121660205,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/bg-liquidity.jpg HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/css/main.css?v=1684946825\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:40 GMT\r\ncontent-type: image/jpeg\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 204035\r\ndate: Mon, 27 Jul 2026 03:07:40 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":204035,"size_decoded":204303,"mime_type":"image/jpeg","magic":"JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, Exif Standard: [TIFF image data, big-endian, direntries=1], baseline, precision 8, 3840x1760, components 3","md5":"6df51245cd1f024710aa88d7df917bf3","sha1":"b5e315eea10f7d80d18a91b167beda6e9de5df78","sha256":"4fb4dbef2b4ad51c3523e94b141807e8ef6d9543e631bf5e9157977a765102ad","sha512":"868b04fd68c51153f235577be3a1d3ab6e6ddda80a1a007b5d2c8f45736d71292469878bc18a07a0f3e2c715ba20d1ec4bc67ecd392846b82c5327cbb25d506b","ssdeep":"3072:T5rAhuVUF7ljjSBtHxOi1QaX8IyKEKkNHtc0KkMQREOXAYda1R7VX:1c7ljOBKi198ICKAxbEwcJVX","tlshash":"111412e39fb59017ccc64bf448ab43587f2040a5eb57100d8bc9045aaae7baebdcd56c","first_seen":"2026-07-27T02:49:41.020572Z","last_seen":"2026-07-27T03:09:30.385582Z","times_seen":3,"resource_available":false,"data":"/9j/4AAQSkZJRgABAQAAAQABAAD/4QBMRXhpZgAATU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAPAKADAAQAAAABAAAG4AAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/9sAhAAFBQUFBQUFBgYFCAgHCAgLCgkJCgsRDA0MDQwRGhATEBATEBoXGxYVFhsXKSAcHCApLyclJy85MzM5R0RHXV19AQUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX3/wAARCAbgDwADASEAAhEBAxEB/8QAxAABAQEAAwEBAQEAAAAAAAAAAAECAwQFBgcICRABAAICAQIDAwoEAwUFBgENAAECAxEEBSEGEjETQVQUFSJRYXGRobPRBzI2dSMzUjRCYnKBJkR0krEWJFOTorIIJYLiNVVjo8EXRWRzwgEBAQEBAQEBAQAAAAAAAAAAAAECAwQFBgcRAQEAAgECBAMFBwMCBgECBwABAgMRBDEFEiFBMlFxEyIzYXIUI0JSYoGxBjSRJKEVQ2NzssGCFjVTkkSiwlSD/9oADAMBAAIRAxEAPwD+Qfkc/wCpfkf/ABO01PL+0xfkVP8AXJ8ir/rlfsk/af6U+R1/1yvySv8Ark+yP2i/JY4tPrlfk2P6l+zS78rT5Pi+o+T4/qPLifbZnyfH9Sewx/UeTE+2yPk+L6j2GP6jyL9tmzPHonsKHkX7bJmeNX60+TV/1Sx5GpuJ48f6k+T/AGpcFm5n2Ep7CU8jX2iThunsrp5WvtMU9nb6jyW+o4Xz4p5LfVJ5bf6ZOKvmieS3+mTyW/0ycU5i+S3+mTy3/wBM/gnBzieS31Hkt9S8U80PJY8knCeZfLK+SRPNDySvksvCeY8kr5JODzHkXyLwnmPJDUVgZuRqDSgHKCgACiVEFDSgACAAGkEFaAAZSAAqwBSAKsKwpCgrbXso0Rmqqr7KoezSwIqAAIAMjQmgogzDSDSJKUQZRJZFVnQIgCAgIyL7qioiqqNQ5IWDSqy00CSbUUBEAXQGlBQKKMKAiSCMSNRlkVmEZGST5r8kZRQIVBFA9lQkVAAAAAAAAAABABBYAAAAAIMgAAAACwBRAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAFSqKgsBVBGgZBQAahRAAIagoVkWAUGVhWvYABYEAABYbhWa5quest4uGbsUl2ay74vHnHYrLfrDby1mYcNqlbxrrXq6l6uOT2ar2da1XFMONe3GsDLaCLEQATgNINIKIM1UlEVAUAAAANANCKAAgsNQ9lhRmgIsKoACiLAqKKigAIsKCq0yoAAKsRRUAEUAQAAAAHdvb2vGpO+9O0umHbOf0sZ98L+bpjm0aNAaFgqqlbhy1hpzyc9XPVuPLk5IfT+DP6u8L/3bh/rVava/SuU+KfWPz5XB9JE0nFa5FD+6Igm5BUDiL6iIvNQ7B6pKCoMtIkgINeiCegIeiiIc0BQ0pyggBwAAJRFOAAAEAUEAAAQaAF0mlgIgAAAAaNC8iIQEOVGkF0CgommeFahThWoVViw0RmqqjSiKoAAAIKILKgFRBBJGoiJRkZREXgQQRAEkGQGQ9wUo1CxDXCNRDkggulVlpoBFAATQCgoAol91NDKgIzMCyIxIsYQqsoyJKCoyigQqSFUE9liEioAAAAAAAAAAMgKgoAAAAAgyAAAAALAFEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUAVKoqCwFUIjQMgoEA0ogAK1EARQFUZFaAAUQAFAVUclZc8S1HHNz0l2ay7YvLsjs1lzw6x482tbYmq1iV171dO9XLN6tVdW9XXtDhlHvwrjlliuyAoCohReyMhpkaAERlpECAKAABDQlAFAAQVqHssKM0UiCtAIigLCtIKIAiqAqpVFRQABVaiAICAAALo0BpAUEHNhtrzVn0tGmse6ZTnFxT2kSgIoLAahUrkhy1hqOOTsVhzRDpHmybh9P4N/q3wv/deH+tVq9nOfFPq/PR530gBkGgZEBQUZGasQFRGViILAkVEkVBFABEAFAENCmjQGjQGjQGjQGjRwIpYgIACCgJVADQCihpNAJpOxDRoVAAAANGkBFo0oALBRVUJfRpYBpQVQaUZVRQFAENAICAJKAiCzugNMiVECeyTvUQq1EZREBEkEQFFqNw3poWIbgStKIsCwUBAA0AaBV0AowoAkgMyNRmWJFZkQZZBJQGRlpBIqSKAioSKgAAAAAAAAAgIAAoAAAAAgyAAAAALAFEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAEqjSCwFUIjQsZABYBoEBQhWkoIiwoiwqxAX3ABYBABYVUARqHLErGMnPWXYpLrHmzjtUs7FZdo8Wcc0Ew6OHu4bVda9XPJ311071dW8OGT36q4JhhyeqII0IAiKaCqiaQiAqSJVQRUNBEBRYAURQAAFBVSrCjILEaACAqgjQ0yoACKoLCtJRRAO4ppeE5UVAQNGgNKAKgABwAcAsKLadyh7ogKqiUarAlckOasNRxydisOWHWPNk5IfT+DKzbxb4Y/uvD/Whb2v0c5eMp9Y/Ox530wBEGgQQRQUGUqxJEVEThYiIsAVAVBDkANLo4DSTBwGmZRQFAAAAAAXkAAQAAAFognACCiwAEQAQGRQFAAAE57CqA0oAqqKrUArQitAqiKCxdAIAABrckS1fKzMaasYxy9WUZdUQIILyiJURCL2tGQtSRmjKAhIIi9uAURuHJDScrDUBWlEWBQAQBUA0oKonIoyACAm0GozLEisolEZBJQEZZaBIqSLQEVCRUAAAAAAAAAEBAAFAAAAAEGQAAAABYAogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAijSCwJVFGgZAF0oigAsgorIoKCKqzsgAAVRUAFhVQBFhuJWJXLEuxSW5XDOOzSzs0s7414s47FZcrrHkrEw4LwzY3h3dTJV071cMo92qutaHC417cRGW0BUBeQBkZEQaEKsBFEQRBRYBoEAAAFgNKlUGRVRQBRBViKsKgAKIul0sQVUFAUiVRtAZFBAAXahsBUAFDSgIJBQQFUGRyQsSuSIc0NRwydirlh0efJt9Z4G/qvw5/dOF+rDXtfo5X2+sfmo8z6oAMigKGmRAURfYRGWhARGWkBUANLoDQvACAAJoGZhGWgFAAAA5AOQDkAAAAABQGQBKCwAVkQAVJQUAFAEBogooKKqiq0CtCVYaBVEVQVADQCALX1J3iXtXLEJartx6PJMuMnBaumXF7cbziiCoAiAiAiAzKM0iIioSCC3tEGoWJW4hqFRrTUA00CCgAgCmgGgAYUAAEBkGoyxIrKJRGQSUQRlGgRSUABUJFQAAAAAAAAAQEAAUAAAAAQZAAAAAFgCiAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAADKjQLAiijQMgDSiAArUSgVFUBRlRr2AAWAoCACwqoAhDUBXJEuastxxzjnrZ2qWdca8myOzSznrLtHjzjbitDVnozjXXvV0slXHOPXqrqXq4Jh58nvwrjGXVkRoQARUNFVJhlCAqmkSqDKiaAAFAAAAUIahUqgwoooBCqg0RKKqAAojSjINCgLpWkARdKiAoCoGgNGg5UENAoCAAAmjQpCgsOSFjFctYc1Ybjhm7FYckOjz5NPrPA/9V+HP7pw/1YX2v0cr7fWPzZHmfWABNCoCgyCAIqiJ7tIIMoy0gAoci6A0aENGg5JhBRBUllKsQFA4FDgAAQAAARQU4EEWiiAoihUUvoURBERV0aVU0iAgoA1AIKcKpAKoKosVQaaEWGgUBpQAAAAZWPVZ3iXtXYo5fJt6J2fNzvGTr5KS60xpxznFezRnziiMPSiCIgiSg0iAiJexGZRIvuIvB8xD5INwRluG4UVoGohdkEFAAQFUCGgNKM2AIIBKAjI2zLKe4jMgjAEpKCMo0BBBFAVEFAAAAAAAAAEQAFgAAAAAAIMgAAAACwBRFEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVQABVZBRVEUPZFFQAahRAUUVkUBRBVkRRQAFEABSCisigANRLlrLUYyc1ZdilnTGvNnHZpZ2q2dsXi2RzRJPd17x53DeHUvVyyenXXTvV1bQ8+T6GvJwyy5vREO4qCKIVREEEVEFEWrAZAQAUAAT3BQVQWBFBkaUAFFRVIlFVAEqqDQrIqgsLErt/JcnySeTr6Hn8m/tdVvPC4eX85yxjn5/N/TeBWGqKIK0lAQAAAAAAAAAAABqHJCxmuarmq3Hnzc8OSHWPNkr6zwP8A1Z4c/unD/Vg9r9Gb7fWPznJGnG817vqY9gFAEBRBRdJRERYiFURFQQQFXQcCroQF4QCwRNMrGUGhBYyI0AACmjgNGjhDRo4DSHCgAKIICgAAoCUDSQQFgAIgmgUAAAUVpkiqqqoKovs00IrQKQDSgIosCAgDPvB2Mfud2tdvVrfK3+mVS+PcPPyU1Mpsxa6bP7zgR5n0+eySgIgIyKgKjHvlKRJSE9lJRovuEoyQ5CI1DajSg1CLBUAAABQVQVQEAUKwDE7spI2xKJe6e7MsyKjIEpKDKI0BBBFAVEFBQEAAAAAAARAAWAAAAAAAgyAAEAABYAqIvsAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAKsZBRVEWFEBUFCtAiwNTsyKAoihO6CtAAAEKIACwCisiwAArcSsSuSJc1ZbjhlHZpZ2qWdsXj2R2a2cjrHkynFYtDr3hLG8HTyVdS8OGUe/VXXtDjlxr2YoIokioiKAqSaSqiIRBYoAgwsAAAABoUVBpABkaUBRQRVIlWBUASrCg0NMigoqV9Jn/w/DnEr78nIvb8IfOvT1PfXPlrw/wAPL0t5x2357c0V5npoLEaFZAAAAAAAAAAAAF0DcNw0xk56uesN4vNm5obh0jhR9X4H/qzw5/dOH+rBe1+jN9vrHwXIpMOm4Zd30td5wgMtgAAAIDQiCCKyCiaRRQUXhF0ulTk0aThOTSFnoqInCsszDLQyLERGwBVEBUAABDScKaDgQFBRFZAAFAUBgBRAqgCCCLACAoqxVhFVQVYBpYBqGoF5WFgRoBYFF0aA0gClGRBy45ejienVXy+qnFrteTcOnmwS65Y8x49Wzy5PLyVms+jjePKcV93Xl5sZURltEBGZFSUFSUlKRmUSFBovuzKIy1DkINQ1CjTQLJCwVANgKyQaADYLAAAACAyzIIwl7p7pLMipLIISgyiNACCKA0koQAAAAAAAAEBAAFgAAAAAAIMgABAAAWAKiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAlFWIKooIKIoqDQlVViVRUUEUWIaF7CgAC6DhAAAU0cIoqCwAALEiVuJctZbjnlHPWzs1s6yvLnHapZzxZ1jx5xqXDZazi614dS8OWT2ar2dW8OCYcMnuxqIy2JoURFNIKMoAisgoLARFgJBTTQIAoUBFhUQFiKoCqgoCqyoACVYaWJVFRQgqtMvoesTGPh9H4/vpgm0/wD50vn3fqr++s+Uxn/EeXpJxpl+eWV/5tBwj0iqiggAAAAAAKgQAAAAbgStOSsNMVzQ56ukebNyw224UfS+DLzHi3wxr39V4X61Uva/RcZzZ9Y+U5tNTZ47ntnGT2dNedcoObuAAAAAIiVoRFBeQNAaXQLpRnldLpeE5NGkOWUmBYmmUaZSWG2AWICgAAAAAAAACIlUBVmEAXQAAigMAKCAACIqNAICiqLCWKsNAqwDSg0oNNAQoCwo0gACAIAtZ09HDPo7aq8HWR6+Gvm05cnH81e0PdMecXwbs8ux4XK4819zypiYl4N04r7/AEezz4RGXF7kQEQWIyKkolIzKEKClZk0nHdluIbgGmlGmgFiFABF0Cs6IKAAADSAACAzLMgjCXunuksyKksgiSlERGgkPdBFAaSUIAUAAAAAAAQEAAUAAAAAAEGQAAgAALAFRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAASiqgqiggqpVBGoURYGvZlVEFVFAAAVBQABQUVkAFAAAABYckSsYrlrZz1t9rpHDOOzSztUs7Y149kcvmYltxndw2h1rw55PRhezq3h1rQ4ZPdhWEYdkAGUqwQUEVAoiIsQFBQgSdgFAAAAFVEFhYiilUEGiJRVQAUEVpYgKihBpvHHmvSPrmIbnfH+zN9JXqdZy+05nlie2OlKR/wBIeS3vvO7P6uHTzjRqn9IOcdhpUoCAAugNKIAJo0CgJoA0aFNADcLErUOaFjlk5aw54dI8+Tlhptwo+h8Hf1b4X/u3C/WqmXat4fFj9Y8Ln03O3z141Mpv+N26K865GRwewAAAAADQvKCBo0KKAuhm1rS6Vm1dGjhOTyoEqaZStsyyy1GJRK3GURqICgBo0CgAAAAIAAJoFUBFTgqEnsoipAYUGqKiAAggAoACwFGmoNg1DUIKoNrANCite4BqFSiBARQBkAh2sN+8Omu8V5upx5wr6Lhz5tPfx8fz19H1dM5j8h1mfkzeVzuDqJ7PkeTgmtph5up18Pq+F9R55HS9EfOfo52RARkEZGklARAoglSVJ7o3ENwCtQDUNAKAiwTTRQQgAAAAoASCIDKSDMspe6e6SzIqSzAIiVURFEkPcEUBpJQgBQAAAAAABAQABQAAAAASUAQAAIAACwBUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGloCAL7JRRAUqwog0qUBGlGVVpFVYyKoACiAAoGgQVQBAAWABQEAEVqJWI3EuWJajnlHPWztUs6415dkc1bNbdHms9XHZw2TJ0wda8OtaHHJ7NdcMwy5PRAkVEAlBpBFggCMgmhRBQAAAABQFFZVQFVBdAKqVYBACtAiq0gsCCkFdjiRE8jFv628Pjw+rnn8Gf0OTf2mfLf67S4DK85ZX+pMJxjjPykFSNCqlAQaEoAAAAAAAAAAENrErVXNDUcsnNWHNDpHnyckNw041LPoPB39XeFv7twv1qpn2rev4sfq8nkf4mCJfOZo1aV6j2v5NdFeJlPzcI8z6AAAAAA7NadnDeNS1e0YxvOTAy2LoF0vlE5XTUQrNq6a0M8hpTlEmAYlmWfaukZZlitxiUSxuMyg1ENIoAAAAAAAAAaQAAAAkEEXlRUTSMtAopKIgKgcAJVAAUqqLFXRfdVhqE9hpQaagFFGgGohVS1BEgC0NBKIKktUnUw1j3jnsnOFfQcDJ3h970+kZKw+x0l54fh/GPuc13eTwK5KTqO74HqnTrY5mdOvWavu2x5vB+s42TG33fJZaeWZcD4OU9a/oOrPzYQZZdEQEZkElkVAVEEqNxBO6NNwCtArQKAbNEoBwKkggoaAAGgBkEQEZBJZS9090lmRUZBElFREUJD3QT3UBpkWAIAAAAAAAICAAKAAAAACJQEAAAAAFgCogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAulAAARRpBQpCiDSpQEbVYzVVWa0NIKHICCgaBFFAEAAAAXQvACAAAigNRLcS1KzY5ay7NbOkefOOesuXbrHlyiTLjkpi69ocFocsnqwrr2hhyr04oI0gAylWBoVBFEBBAQWICqohoDk0ByANDSChRRBVZFABKoDQvCKKgoCwQVz4LeS/m+qJbxvGUYz9ccnEMgLBRWRQFEAgoohpBRRBA0KAgGgVpUrkrDmhqOOTmq5qusefJyxCtONYl9D4O/q7wt/duH+tVnLtXXX8U+sePx7Rk48xLxeTXVpa2+uGN/I6b03bJ+bpDyvogAAACx6wD18GPzY5l0ORXUu2U+5Hk1Zc7co6+l05R6uV0ojWjQjWmohpi1qKr5Thnk8qaDlJZRpiYYmGXSMyzLNbjEpKVuOTHx8ub+Sky4LVmtpiY7wXGyY1cdmOWWWMvrGRlsAAAEAAABQAQBYBAFRYAyA1QZYqxYGhUZBBQAQoCAAQ0pFhS+7atQTsRWyitQewKDUKEaJVm90EQBeVgX2ISg0iRuJPkl9eXpcLN5bREv0bomWLPrdDl6x+O8e18a86+vpTzQ8rqfTozY7ar3fUzx82Nlfi+l33Tvwv5vyzqXCnFe30dPnbVms6fnOo1+TKv6n4bv8AtNWDCPM+miAxKSCSyKgAzMERYhuAa0sA1CwDUNQAAjUJEjKtK0xKQBRUIADbJAQElARAZn0ZZ9090SVVlAZJQZRGgkPdBPdRBUFUEAAAAAAARAAAFAAAAABEoCAAAAACwBUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAGVGgUKQog0qUUStK1GasNDNUhrulUEUVKoIAAC6NAaNAAAAAAgAAKAQ1ErEckS5qy3HLOOetnNFnSV5c4u0mWqzI4ZcNoc674uC0OKYc69OLIy2IAmhUEVBFAE0CmkQARQA0AAiqKAQojQ0yAKAoIoDQ0yAKAo1EVUQBBpUoKgoVQQIBRQAADRoAA0aAAWIbiBmuSIctYbjjk56w5YdI8+TlgbcmLPpvBNIv4t8Nb93VeF+tDN925eOPrHzXT77iauvzKamey311RrH7vU5R5A8r6IAAACrHqJX0HCrvFf7IeZyY7vTn+Hj9Hg03/AKjY6ivO9ta0aEaiGtKxa15WohWbWtGlY5GZRYzLEnybjMsSy64sSxLNbjCSy6R954ax0ni5bTWJmZq+O6pERz+TEf8AxLPdvnHSdO+R0WVviXXT6PPHz32gAAFAAEABYAACKAAIoGksAWgiKjSUoiISg0ABoAKAgLCxY0DTSg01AK1ALCgrUe9WVJERYBdQyAAqSNc+iEoN4rTFo7vt+hcqK5Kbl7uiy4zn1fA8b1ebRn9H6r0/y5L0j3S93ldLmcXmiu50+1nnMcsefd/NsNVz+147x+a9f6TF6Xt5PpQ/KubxpxXncafN67X6y/OP2v8Ap3qrlrmGV9Y8udo+RX7OIgrLMgiAiBRPesGobhBYUGoaBVBpk9g0pBBRpmUEVQCCEA2hBEBJQEQGZ9GWfdPdEVUZBmSU+axlEvZRJD3BPdoQ9xBVBAAAAAAAEQAFgAAAAAACJQEAAAAAFgCogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAlBUUUFCqCKqpRoZqq1EqtLPdlVVmjREoKgoAAAAAAAAnIByAAAoCgANOSJajFjlrZzRZ0jz5xyxZJlpy4YlxWZdMXDZxWYyenFxjDcAVAERGgQQFBRA4AOAVAAAAUUEWIBGhUABRFVUFEDSigCrEoqoCCioqqlAQaEoAKsFAEAAF0Ii7BAUUFbhWK5YctYdJ7OOTmhyw3Hnycg05uOX1Hgf8Aqzw5/dOF+rDPzbnt9Y+M4V/LeHe5tdxsw9ddb2+nU414V41LDzV9CdoAAAAsNRBEr6Lp3+Xd5vLj6UvVn+Fj9HzdXp1Ox0tLEPO99rcQ1pYxa1pqIWMWtRDUVVi1dJpU5RlK1GXHLLcYlhl1jH1sM10jEoy6R9/4Zn/3LJ/zQ+P6xXXUOT/zy+h1H+y6d8XofTxTrnmD5r7oAACrA0IIgAEAUARQABJAVaIFDUiKmlSlBEAERWgQVCgIKQsJ7NKNq0Cw0Cte4FhoBa+9Wb3aJERYBpJBlYASQSCUajPeJe307kTTJWd++HfRfLnPq8HiGvz6cvpX7J0TlRkpin7of0F4e6bi6rwpiKxN4rES+n1+dx1a84/AeGdPM+v36bO74Dxd4bvwMuWPL6f+j8A8Q9L9nN7xWGrf2jpZn7yO3RzLoPE89OXpLX5/mxzW0us+LnOK/omnLzYY1PejDqksSCICICLEEo1DQNQoNNAsANMnseywiwAAlBnbWwAEIUbEGBRlJAQozPoyz7p7oiqjIMySnzWMol7KJIe4J7tCHuIKoIAAAAAAAiAAsAAAAAAARKAgAAAAAsAVEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAEosKgKChVBFVWRqBKqtRK0qz3ZVRloaZXQAAAnIAAACgAAAaAAFAAABViWmXJEuWtmo5ZRyxK7aceEYkajilxSxk74saRh0QFEAATQKaANJpFQFBAAAADkURReBRWVAU0ooqNAyKAABwKrXZARABRYiqqUBBoSgAqwAGk0JygDQImkFAGtAhDlhYzk5Ic1Ybns4ZOaHJDpHDJtJaYjjl9R4H/AKt8Of3Thfqwz8/o3O0+sfB4bavD3Mn+Jh2mr4c46dT6Z67+bws1dS4HC969uF5xgI0AADcNLGa97pvpf7nS5kd7PVl+Fi+dh6dVm6UQ1EPM9lrcLEKxW4huIbkYta0ummBAZmGJYrcZccsVuMSxJXXH2ccssOsZliUbj7rwxaPk2ePtq+a67Wa9Qz/e+hu9eh0/V8bpPTxbq/zjxx8x90AABy1ruGozlS1HEthjeYIw0gACgALQEABBYDscfHGS8QuM5yk/NnO+XDK/KP2DF/CzmZvC1/EEZcUcak6ndo82969H4/ycXsctq/VMvV1OnDVx5b78X6vm+H9Xt35547MeOcZlj9K648b6iKLRUqIyLARWhYiQFARVagX5NKNK0DSg1CgStVZrRo+aICNQorMoIsAqSzoFc2C/kvDWN4sY3Y+bXZ+T9M8Nc6JmKTZ/VX8LepUvm9hee817Pq9TPtOh5/lfhOl/6b/UOrntneH6x4h6Lh6tw8lfJE5KxM1l/JHi/wAO34mXPivimInenm8N2+uWq+8fQ/1P0t07+n6zCe8lfgXV+n34+W8TV81eupcOpwuOdnyr7vhm+btGFl9owzLzPqJLMgjMgiSCw0CqDTQLBCwFBtkg0yQJgD0GUPQAaAQhRtJQZRaIgJJJRiUBEQRkGZJT5rGUS9lElPY9wGoJIqCgIAAAAAAgIAAoAAAAAACJQEAAAAAGgBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAEoqxAUFCqCNCsjQlagVlpWoysNLEVVZATkUDS6A0AAAAAAAAAAACixkDhVBFhustRK5YlvbbhYbYkpGJccsX3dcXGyw6gEBVQQFBTQGkBJhiUrUAFFAAE5BRFFRQFBFAVVZUUAFNNcIoICAoAANfJFUQBBoSgCigsCKLEBAABQAAo1DkhYxk5auWHSOGTmhyQ04ZNItZcUvqPA/9W+HP7pwv1YZvv8AR09v7x8BG4mHuYLefFpNV9XbqpzjjfzeXyIdNyz+KvRq+CAy6AA0FahVYr3eme9w8yv0rPVfwo+bPTqs3Q01EOD2WtRDcQ1GLW4hqIac7WtAwJIsccsSzXSMSxLDpHHLjlK7RxyjFdIxLKNx9n4Wt2zx9jy/Ef8A+sL/APLD6Gfr0Gv9b4un08Z3/ng+eHzn3Q0nABwEerv4cfmdMJzXHdlxi578edS8/LjmreeHDnp2c1wI871iAAoAAACinKIQHd4X+fT74bw+PH6ue78LZ9H9acLm2t/Cvq2GYrFMXMw0p/1iby/kvn9+Vk++Xt67tl6/+Zf8R8PwbK5bOb//AAZP+9dIfOfoAAVKEAM6QVQgQpQEBqBfk2o2qg0oNQonIsKlacsYbTXzNYznlz2bPLMfzycMjDSwqxSYZ0IoRRJgEPfEnyOPSz8n0XR+XODNS2/e/orwH1j5PzuLljJNYmY3qX1+nv2nTbsP6X4bxjD9n8Q6XfPbOP7D4+anI4+HLXvFqRL848e+F8fUOHm5WLHHnrX6ofH0bPst2vL5V+s8W6add4Zsk7+SZR/Hnifo8xF5mur19X5HzOPNLT2fV67D1mXzj89/p3qLdU13vjeHnMy+S/YT1iSzIqIDKgsLANLEA0A0LAUGkIKREyRLfKRS8zrTkjBefSG5hy45b8cG68bJP+618jyT3mOzc1uOXV4uO2C0bcM0mPexljw6693mZhXN6EWPVRpJQZRaIgISlGJQEQEZBmSU+axlEvZRE9lAWCSRUFoCAAAAAAICAAKAAAAAAAiUBAAAAABoARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAABKKsQFBQqgjQrI0JWoGp2ZaVYysNQsZVVRQQUBVDRoQ0aA0aA0aQNGgNCgHuGjQCgBEAAAWJUrcS3EtOdjW0VllxyzfdvFiWWHQBUBRAVQrUQ1ppimk0cErEwzLLcZ0I0AAgALCtRKAiqJVAVVZFUAguhpFBAQXQIqAAAo0KgCDQlAFFBYEUVAQAAUAAKNR7nLCxjJyw5oh0jhk5YckNuGSsyVI4pfTeCLxXxb4aiff1XhfrQxff6OsnPH1j4J6XDv7mNd4yj0b5zrrPKr3l5sps9K1ovOCDDsALENwsSrENwMV7HTp1ZebH0rPV/wCVPq+bf91fo86IaiHGPXa5IhuIbcrViG4gYtXRpUZ0zKLGJccs11jjliZYdY45YSuscSMOsYlEbj1+k8yeHm39cTEuLqmf5Ryb3273Zz08w/qeKaeOuu354PMHne4AEBukd30HT8PtLRDv0+Pmyn1ePrcvLrtfTT0qLUiJfL8/hWxT3iXv6nR5cJXx+g6vz7bjXhZKalxPk5R+kxvMgjLSAAACiqgAghyO3wp1nr98N6/jx+sY3fhZ/Sv648P1w8n+EPX65K+bJj52LLH32rWr+S+o18vKyR9svb1fwZc/z/5kfF8L8v20mP8A/Bn/AMrHnj577ysgoCiAzoWAAoAiKsDTUNCxVCtQovsNDK+4Ctw+oy8OsdGx5/fbfd6unx802/pfM8R2fZ3pfz2yPl5R5q+kLCDQKzJAgNKzInuOxx8k0tH3v1Pwt1OYtWk21Md4fS6DL73l+b8v/qPRcunyznfH1f21/D7rtepdIx4L3j2uJ99elctL0tETW0al8zqMPs92zH833/Cd06vw3psr765jX8xfxH8Kz0/mZMtKzOLNE2q/mHr3TPY3tMRqJfYl+36PDP8Aik4fjdEvh/jPU6Pa5cx8JlpNZ1LgfIynFr91qy82GNRGXRlAAFUGlgF00AEFlQXUy5a4rS3MbXLPbjg7OPiTM+ju04O/V6MNT5m/q67+PhY4h2a4MFO/aNPRMMY+Xnv2ZWyMWtx6++Hn5uRiiJiJTO4yOunDZnZzHmZc9Z9HSvfzPHsy5fa0abOKzA4vaiwo0zKQRFEEoz70KIgMoCMyCSkoMoNCIQEagyoCKAAAAAACIAAAoAAAAAAIMgAAAAAA0ICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAoACVYFQFBYEUUaD2ZWGhFgaZaaVlYWFjLUCoqiLoVOQVFAAAAAABAAFARQAAAAAFiW4lYzY0LyzwksJWoxKMNmmRQFgANQJW4aiG4xWtM6OGZWJhiYZrpGJhGa2LoU0aOEAOVVUAFURRU5UVFAVWmQQNGgUVAOAVQQBoSgIKC6a0rJo0cHKaAXQCi1AQAAAACFG4ctWnPJzVctW44ZOSHI04VZccrSOOz6Hwb/V/hX+78L9arF7V3w7z6x8Q7HGv5buWPxR6s5zhXdzxuNvJvGpb2OXT30ZHJ6RYBtVYrUQ5IhpivT6f/O7HMru0vTPXVPq+dn6dT/Z5sQ1EOUem1uIbiFc7WohpWKaJhUYYlK3GJcMsV1xYlxzLDtixMuOUdYwyxXWMyiK1WdSWmZk9qcc3lkRoAQBunq+t6LWJy0evpPxMPq+b4l/t8/o+zedz+HXk451H0ofc24efDKPyXT7Lq245fm+H5nEnHM9njWpqZfnt2Hlyr9t0u37TCM6Rwr1CIqAAKAigIAOzxe2arWHxT6xjZ8Gf0f134Fm/K/hr4y4tMXmvTHxs/wC/4RV/KXWqWpzc8WjUxaX0esx8uGf/ALk/74x8Lwuy78L/AOllP+M68gfN4foREABRAAQBFAVBVFWFFVoVpYAURqF0or7qkRfwzj3/ALtpezo++79FfH8X9Mejvy3Yvhtd5R46+tO0FgVoFSYIAAZmBQidS+k6NzLYc9Z279Nl5duNfN8U1fa9Nn+l/UH8N/EscHm4fNfVLTG39W471yUres7raImGvEsON2OX80eH/Su7npd3T3vqzr5/xN0PD1vp2bHev+JWkzjnUer+L/FPRJx2z4bV1ekz+Tt4bn5sduv8vR4P9S6v2br+j6vHtl6V+JdQ4k472iYeFaNS8u/Hy51+j6Db59WNZZl53vRJAWAVQVQaFF2QCxG3LWkNSOWzLiOevkhz1yUr7nbHh8/ZMsuXPHKrVqefFXSbOHnvT5ZMW6lPul1cnULz72ct04dtXRestjq35OS3vlwTe0+svPc7k+hhowx49E7/AFqw7ziLACNRC0E9ZIDAAlGUkESQZQEZBJSUGUGhEICNDKgIoAAAAAAIgAACgAAAAAbQQQAAAAAAGhAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQAEUVAUGhBdKigiw0IsK0yrSsqqxlqBUWGhmqKgKAAAAAAAAAAAAAAAAAAsSDW120ykyzLKxk0jRplBWRQFGoErcOSG455KNMMTDjmGK6SsMsusFCgIAKAAjSrwKDKiwWFajIAoIoAKigAIAICqCLENxCxLWtLpWF0eVU5TSaThZSY0iKAAAAAAA1CjUOWGo5ZOWrmq3HDJyQ2040lxyEcUvovBn9X+Fv7twv1qs3tXow7z6x8StJ1aHL3j13tXp78+N52WNS3n2jhp9MrHCOT0tRDSxFaiBitxDcNOdejwf54d7lx6vVh+E+ds/3E+jyohuIcnotbiGohWK0KwqSpHG45Zrpi45lxSxXbFxzLjmXOu0YYlHWMsMukAqgCaBUE4ARW6z3fR9IyeXNV6emvGzH6vB1+POjZ9H3g/Qx+JeT1HgRnrN6R9KHw3K400tPZ8nrdPFuXzfo/Cep5xmNvrHmWrMM6fKr9FKgjSIAAACgAI5sH+bT72sPijOfwZfR/W38LckZPDfjLU9o6RL+YvEf/6y5H/PL6nWZc6suJ74f/F+f8LknUYT+nZ/83gD5T9GCAAggoCCgJ7A0AqCqLFagVWoBZIBqPVpfYH3HTt5fDuautzWz2dF8ef6K+P4z+B09+W7F8TbW7fekvHe9fWnwz6RFhFaBQAQERoR2uNkml4awvGUcd+Hn15R+peF+qzFscTPpMaf2z4B8QU6r0rFgtkicuKvb03p7+tn2nS685/DeK/K+D5/sfjW7Tfh2x+gPwf+J/hiKz8v4+OfJln6f2S8PQ7Ps+owvzvD7f8AqTpv2jw3PKT72uzKP5L8R9N8l73ivaX5vycU47vX12FmdeDwHqLs0a5a6ko+e/T+0ZEFAXSwCqC6FgLAL3Nz9Zylx5XcpN7fWvmZ+zxZ80/WbS1ZhjPZJlEbAKqiLACNrRJZBZYIHvEoygMpIJKSCMgkpKDKDQiUgI2MkAKAAAAAAgIAAAKAAAAACJQEAAAAAFAUQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAABlRoABoRYUQFRYaEWFaZqtKyrTTNWAStKM1RpAAAAAAAAAAAAABUAAAAAAUAQAAZZWCCiANQFackNxitENOaSxMM1vFxSyxXSAKKAAAVQRrQqcqqoosSqLyigiiiggCAAAAAA1EA3ENxDUc7WohqIa4Y5Xyml4Z5PKeUXlmYYmqWNSs6RhsAAAAAG1Stw5IacsnLVzQ6Rxy924bVxqS45Fjil9F4M/q/wt/d+F+tVi9v7V3w7z6x8UkOXyex38VuzgzQ6X1xjz4+myutppyehVVFhuIViuSG4hpyrvcL+eHpcqOz1Yfhvnbvx48rXeViHJ6K3ENLGKorIxMosccuOZZtdsXFMuOZYrti45lxyxXaMywldIyyy3ARQAFBAQSxViXqcPN5MlZddV4yn1cOox82vL6V+h8TNGXDX7Idp+i15c44vwu3Hy7M5+Y8HqnT63iclKufUYefC/k79Fu+y3432r4rk8eaTPZ58xp+e2Y8ZP2ujPz4REc3eAioAoCAKKI5cPbJWVx+KM5fDfo/pz+FnV+NwOmdX42fFOavN4V6TSJ8kzFYtNtS/CPFVMdeoZfJHrO31ep1+XR5+fimPD8x4duuXiF1cfBdnP8Ae8vlYHyX6kBQBBkABFFE4ACqqEWFFVoFhqAWQKqxINPtug283R+dTfp3ezor+9v6a+T41P8ApMb8tuL47L2yXj7XG8uXxV9TXedeH0iLDLTQKAACSiiETqYX5D6HpPMnDlpO/e/pX+G/iK/D6hxZi/a81rMPq6f3vS7cPyfi/E5el8R6TfP54/r2tovWtontaImHldb6fXqfS+XxppFrWpPl+98TG+XOX5V+334Tf02zD+bCv4x8UdGthzcjBkpq25fhvVeF5L27e997qZ9pp15/PF/P/AtmWjfu0Zfw518zaupYfFyfvcLzjENI2aUF0uhaqiEGlABWdoBIejIHNRdigFVRFRQhsozKAShBCUGZZkESQSWZBGQGUWIiKIUgI2iKAgAAAAACAgACgAAAAAAIlAQAAAAAUBRAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGloCADKjQKC6BBRFFRYaEWFaZVpWVVYy1AqVpRmqNIAAAAAAAAAAAAAGwAA0AAAAAAAAJRlEaEAWAaiW4axZrcK250YlKsccsSxXWIqKAAACNANENMqAsKqCiKaVlRUAAAXQGjQCAALDkiFiVuIckQ3HK1qIbiG45WtxU0vDHmPKeU4XzMTVias2NyuOYccwxY641BloAAAAbWJW4csNOWTlhy1dI4ZNw2rlWJliUrUcUvpfBVLX8X+F9e7q3C/Wql7O+N44v5x8QjjXrc+GXLk7w3PhccvTOOppWHVWohYzWohuBitxDkiG5HOu3xu2SHq8iPoxL04fBXz9/42Dyp9ZaiHN2+TQrASDO2JlluOOZcUyy7YuOZccyxXbFxTLLLrGJlll0gwjUBFAAAAEUHYw31MLPSs5znF9V03nRjmsTZ9XjyVyVi0PudJs82Exfj/EtNw2eb5uRJiJiYl63zY+b6p07fmyVr9F8dnwzWZfF6zV5cr+b9Z4X1E2a56+sdKY0j51falNGiqiwggKAGgQap/NDU7l7V+i+H+oVpjtS1qxEQ+U63m9vy8t/rl9PqNvm6TVH57oun+z8U6jPjvHhj5cfogAAZEASqBAABUqqyRYUVVgWK1ANSgVWo9QafXeG5mePz6e6aPV0n48+lfM8X/2Wd+Vx/wAvmOR2z5I+2XC4Z/Hl9X0NPrq1fphJDDbQKAACSgINDnwZPLaO79M8LdTnFkx180dpiYe/oc+M+H5r/UOjz9Pcp3xnL+4vAPiKvWOl48OXJE58Nfxq++/6vndRh9nuzx/N97wnqP2rw/ptnv5JL9Y/Bv4n+H9Zbcylfo3j838s+Ienz9K8Q+x0t+26OT+X0fiOrx/YvHtk7TO8vzHlYfJazz5fL2Ti1+36XPza59DQ5PUKAoLABCqCbQRAQBNmwAWKBVURUWBDZRmUAZSAgJLMgiAygJLIIiLERFJQUEVkVQQAAAAABAQABQAAAAAAESgIAAAAAKAogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADS0BABlRoFCqCCwIoqLDQiwNMtNLGVhYWMtQKlaUZqjSAAAAAAAAAAAAAAAKAgAAAAAAACUZSUaAEAahuFiVdtbaYsNsyEZlhmtxBGgAAVRFFiKqoKQVdNMqqsi6EATkA5AFAAElBYANVcsLGK5IhyxV1jjlXJFXJFW5HHKtxVryN8OdqeQmpwcsTRxzVlvHJxTVxTDnXfGuKYRzdgQAAAhtUrkhyw1HKuSHLDpHDJtdq5sy45lGo45l9V4F/q3w3/dOF+tDNv8Ah19v7x8HKuT2NUnUuzPeGsXLPvHXt6onDbUQ1EDNbiG4hY51uIckQ3HPJ2cH88PVzfyQ9Gv4a8G/8TB5kx9KVYdfaAIMpVjMy45lK6RxTLjmWK7YuOZYmWK6xxSksusYlEbZEaBAAEkIAoAAO7gzeWYfW9M53pW1u0vf0mzy5R8bxLR59eXo+kraLRuJafal5flbOLwzesXrNZjs+U6p0/yTNq17PL1Wvz4XL5PoeG7vst0x59K+TzYZrPo6r4Oc4r9lry82MEZbNCVVEQQUNAaWPWFg9Pi8mcUT3dTk389pnfvdss+cJHlw1ybss/m62hyeo0aT3EBRJKIIQEAPdQVKNMkX6lFGgVqBWlFFgRX0/hvJ5M2ev10l6elv77B8/wATx56LdHicyNcjJ98uq5bfjy+r1dN+Bq/TAlzdlhQAUIASQRFCJ1L3el8qcOWkxbWph30ZeXZK8PiGqbOnzl94/pb+HniaeFzOJeb/AEJmIl/XXH5GLk4ceXFaLUvETEx3dfE8OM8Nn80fL/0tv419T02V9defo8HxT0yvUulZqe+kTMP4/wDEHTbY8ufDemu8uvhefP2ut83/AFXq+y6zpeonvH4v1jhTiyW7PlMlJiZcOqw4zr7vhe77TTh9HFoeN9pQBQRZWhAgSzsE2gsAEBFBYKFGhFRYNQSDJJQZQEBlARkEQGZQERFjIipIlUQaQUBAAAAAARAAWAAAAAAAAIMgAAAAAAoCjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AACrGQUFCqCCwqKCLDQiwNMtKsRYahYw1AqVWhkVpAAAAAAAAAAAAAAAAAAAAAAAE80b0LIolRkK0ioMgKsSDW1aZNpsGUStICggAiwoKrTJCgqtIoRloVkUFURNGl4FAESgAIAoLDlhqMZOarmiHWOGTmiHLWrrI82VckVb8rcjlaRQ8i8J5mLUcU1ZsdMcnDargtVxyj0YZOCYYmHKvTKyMtAAAOSFSuSHJDcccnLHq5Ybjhk0KwzLjlluOKX1fgT+rvDf8AdOF+tCV19v7x8Irk9auxWdw1j3c82LwylJ2biG4hWa01ELHOuSIbbjnXYxfzw9W/fHDvr7V4d/x4PNt/NKMOs7QARiZZrcccyxMo6YxxTLjmWK7RxzLEsusZYmWXSMiNIiNAgAACAqgIAVmYl6XH5ExPq6a8uLHHfh5sa+w6bz63iKWn7nvPv9Pn58J+T8Z1mn7LdZ7UceTHXJSazDrlOY82OXlylj4/qXT7YpmddnzGbH5Zl8Hqddwzr9j4fvm3Xj6uuPG+mAAgAAAL8xYskztbeYSABoQQFGZFBBBAFUUBWRVgVQGm6grUChAjT2Oh38nMiN+tZdtF426/rHk66c9Jvn9LrdQjXKyOim348vq30l56bV+mA5PQQu4AUUARAElRHPhvNbQsvFY2Y+bHKP0Pw51WcWSlJt23Gn9i/wAN/FOG/EnhcjLEe+kz+Gn1N+P2/RSzvhX47pc//D/HZz6YbZY/Y71jJjvX3WrMP5e8d9P9lzc1or75h4/DcvL1H1j6X+rdXn6LXnP4a/Buv8LzT54h+aczDNbT2evrsfvWvH4Bv82nXOe0eZMakfKr9hO0BFAEVRF2gm2QTaCxDYooyjQoog0Coo1BKDJJREAQGJQBkGZQEZAllFQRUEagkioKAgAAAAAIgAKAAAAAAAAgyAAAAAADQAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoAAKsZBQUKoIKqKCLDQiwNTsy0qxFhqFjCqqDQiwqpQVAAAAAAAAAAAAAAAAAAAAAAAESiBWkVBkAAirsBFEEAVVEQIgFVUUhUVViVV0IqqyCo0CKqoACAAoaA0gAg1Dlq1GMnNV2Kw7YvNnXPWHPWHbGPLnXNWrl8rrI82WS+RPI0z5mLUcNqsWOuGTgtV17VcMo9WFda0OKYcbHrxriGHUAc001jrb65cK5TixMbzKQ5IQrkhyQ3HHJzVbhtwybRWWJlxyjcccvrPAn9W+G/wC68L9aGa6XtPrHwquT1K5KSs7s5dmphNLe7EbiGtDNaiG4huOdbhuGnOuWn80PWn/Lh21+7x7++Dzr/wAzG2L3rrO0GUajMyxMstyMTLjmUdcXHMuOWK6xiZYYdYksSVuIIqSgoIoIAAAAJIKLW2pa54LOZXq8XkTSdxL7Tgc6uWnltbvERp9Lo9vFk+b894p0/mx80nrHqq+s/OOHNhpmrNbQ+K6jwJxXmNPD1mvzYzJ9fwvqLhn5LXzt8fllxPh2cV+twvmiKjQAAAImlJ7nKCKKAAgCJIoCsjADQKkAKNR6NQjXyUgKrVQ+TSwKqwCu70+/k5WOXTXeM8frHDqZz0+2f0uXqX+0TLzl3fHkx0f+31/pByeolBFhoAFZkgT3BVZkjse5w9bg8mcV6y/bvCPXJx5MN4yamsvr9DlM8c9d7WPxn+odN1569+PfDKV/XPhbxNi6lxsWPLeJvFY7vjfHfFjPfLekR3fO143T1snyr6HXb513guOXvw/nfqvD37Slofk/VeJNb37PsdZj5sJX5zwDd5c8sPlXyuSmpns4nwsp6v6Jpy82EEYdSUA0AiAjOxYm02ENgEKFGgFgRQFIUbZlBAoiAkoDMoDPvQEQGZQERlpCSHugjUGRQAAAAAAEBAAFAAAAAAARKAgAAAAAANAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAJRViAoqiAAqpVBFhRFVqdkrSrGVhpWVVWRRGoUSg0gAAAAAAAAAAAAAAAAAIAADIAvCADIoAAALAUUDhAAAERYaWIKqCgqteyCiVYVWRRKqrEFgRQQQWICgAgCgsOWqxjJz1dijti82bs1dqkej0YvFm7FauaId5HjyrU0PI1wx5mJo4L0Yyjphk61qOrerhlHt15OtargtDz2PZhXDMMOVeiAK9DPXy8Pj/bMvPdNvplP0xz03nG/qqw3DnGsnJDlq3PZyrlhyQ24VUKy45liR0xccvq/An9XeGv7rwv1oYrpfh/vHxI5vQN1VL2cgrm3DUNMVuG4hqOdbhpWK3XtMPUid43XD3eXf8Aw/V0Mnq4mL3rrj8MNsTLNbkZmXFMjpixMsTLFdYxLEyzXSMSjLoxKSjSAogsQRQQAAAAQFBRul/LL1+LyppMal205cV5ep1efGvtODza56xE+r0n3tWfnwlfjOo1XVtyxHV5XGryMcxMRtrPHzY5RjVndezHJ8VzuBbDM7h4WTH5Zl8Dfr8mVj9n0e+bMMbK4R5o93yAUCsgAAGhTQRTYnICiICCNIjNgACgKCx6LArRANaWBWlRVWAVy4J8ubHP2tY/FHPb6685/TXb587vWXRb2/HXHo/wMDQ5PUiCUaiVFEVJhABRJQHNit5Z2+z6F1GcGam57PZ0ezybI+N4z0/2/S7Jx7P6C8KdfnBamsk9u9f2fofN6jXn8aZ3udPZ1Wnjdjsnu/I9D1WU6TZ0+XfG2PyXrODV7Wfl3XeHETNojtL17J5tH9ng8Pz+y62z51+ecvF5bS8y0Pg7ZxlX9L6PPnDFnY4PcSgIkgiAiCogsoAKCtAKMqoBCjbPrJBBBkBGQZlARmQGQRlKsGUUSQBGklBQAAAAAAQBAAFAAAAAAARAEAAAAAFgCgCIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAJRViAoqiAC6FSqCLCiVVaiVqFWMqqstKqAM1qJUSqKgKAAAAAAAAAAAAAgByDJysXaHIu0FBAAGQAAAABYsBQABAABEWGliKKigNDTKhEWFVFhRlYWFRQQFAQSUFAUAAFhyVWM5OesuzR2xeXN2qO3R6MHh2u3WHPWHpxeDOuXyr5HTyuPmZmjr2ozlHTDN1clXTvV5s492q9nUvV17Q82T34VwWhxS416sUEaelze3H4Uf8MvNdd34n/44uWj8P8Avl/lYbhyjeTlq5atxxyckOSG3GiSJHHLjsjpHHL6XwVMx4w8Lf3fhfrVYy7V2k7fWPkRmurWmoGa20rnW4hqIajFbiG4bc601AxSPV6eOfoOmDz7u2P1dLLPdwbZy711w+GJtmZZdZHHMsTLLpGJliZR0jMyxMsV0jKI3GZEVkFEkVBFBAAABJCAKAI5aX0S8UynMr2+Fy5paO77Ticquevr3fY6Pb2xfl/FNHFmcjuj6T4bqcri15FLR73xnO4Nsdp7PndZp9Lk+14X1PlvkteDkpNZcL49nD9TjecYCNUCoCAAACipo0nByAVJD3VkGkkKCICgog17iD3X2VRPZtRtYaQFgBqs6tWfthqd4mXrK7vKncVdOG9nevP0v4U+tVJcnpRBBYBoFGZAAUaCHo8XLNLw3heMpXHfh59eU/J+m+HuqeWKUmz9Z6b1PdfLaz78n22jG/J/Merl6TrtmPtlXT6lq+5fD9UwRlxWh1xx512fk8WvPydXMvzfmHUOPNZt2fOZKeV8LqMPWv6T4bt5xxdeR4q+2jMgiTIIyKiCoApACgrQCjLSgSii7Q9gRBAGZZBEBlASWZBGUqwRFEFBFSUFAAAAAABEABYAAAAAAAAgyAAAAAACwBQBkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgFAASkKqAoLAigNB7sgoNCVVaiVYaGVVpKqwrKgg3AiisgoAAAAAAAAAAAACUQ2ioCm0AAAAAQADgAoqnCCqAAlAQBQVEWIaVCFaZ9xSFUVFCIsKqLCjKrCooqAoCCSiKqCgAArdVZrmq7NJdcXmzdqku5jenB4dvu7lHcpD1YPnbXPENeV3eS1Jr2de1Gco3hk6uSrpZKvNnHv1V071dW0PLlH0ddda0OG0OFezFgYdHo9Qntxa/Vjh5zpu/Ey/s5afw8VhyQxG8nJVy1ajjk5IckNuNGZkSOOXHKOsYl9H4L/rDwr/AHfhfrVYy7V2x7z6x8m1EMN1qG9LGK01CsVuIbiHRzrTUKxWlGB3sU/RdMHLbPR1s3q68yxl3ddfwxiZYmWXWRiZYmWa6xmZY2ze7cRhK3BEaiIVUlEUSRUEUEEUWibA2AAAogDnxZNS+g4HNtjtD09Ps8mUeDrdE2YZR9lx88ZqRLnfdwvmxlfjdmHkzyxcuPHfLbVYmffLp8zh1zUtHl+kmcmWNxNW37LbhXwvO4VsUz2eHempfA34XDKx+16TdNmvGsaRwe0BAQAGkBFBQoyCiIpMMikoKqICgKnuKqqNBGlT2X3WFA21AnKhGnZy281KuCG8+8+jhonGN+psc3cNQCSgjUKAkwqsrALCqDlx21JO6Xs+g6dy74b1mJ979S6T1L2tKx5vpQ+34fslxuD8H/qTpLLNsj6S/I89PV4/IrFol9HjiWPyEy/eSvgOr8XU21D4flY/LMvi9XjxlX9C8H2868HmWjvKPl1+sxvpEZRWUkVGRWZkSCbUgEKKA00IKI0ACgpREQRAZQEZkEZBJQElmWa1EBUkCCI0gAAAAAAIAgAKAAAAAAAbQQQAAAAAUBQAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAABlRoAFUQCDQMgoNQJVWGoiqM1pVQaWM1RUFgRpVjIKAAAAAAAAAAICEWGzYIIogIAAAAAAoLAUEAA5AQRQAABVEVVZIVZ7oNLCgI0LEUVkaEqiiggqoIggNAAAqA0sL8ma5qy56y6YuGbtY5d3HL04PDtnd3Mcu7SXrwfN2zu7VXJD0R4qs11G3BaDKGFdTJV08kPNm9+q9nSvDqXh5M30dVdW8OvZ5snuw9nFKx6x97M9nb2d7qU/41I+qlXQb3fi5/Vz0/ha/osOSHONZOSHLVuOOTkhttxpMsSEYlxyza6xiZfSeC/wCsPCv934X61WK7Y959Y+VaiEi1vTSsVpqIaYrcNw051YaVigIO1it2axvqxs+FxZpdXaZd29fwsTLEyw7yMzLLNbjEyzMs10jIjTINBIMyiKJIoIqCCAoACgIAoIA7OLL5ZXG+sZ2Y+aPo+n86aTXu+ww5a5axMTD7fSbPNjMX5LxPR9nn5pO79B8Dda4fQuo5L8zB7bicnFODlY9b82K3uh7njnwfwuBhxda6PyqZ+mcq+qxFotbHed2mk+WNRENZXLV1OH8uycf3jw4eTf0m322ab5p+eFfjvO4VeRSe30ofDc3hzjtManbh1mrvlH1fCep/gt7PGvSauF8mziv0+N5gMqAAg0AmiAUKJKCiQlIrI0JoUJKgIKoEKL7RWoCd2lRsUSjUKzFEjbl3ukOOGsvZzwnHP1Bh0WFBmUEahQBYqTCA3CgLAO3ivMTGpfWdJ51sd693s6TZcNkfF8X6ebunzlns/Q+Ly65oju7F52/RzKXGV/L9mq69txfN9Vwxaszp+e87DqbPmdZj61+u8E2fdkfPZa6mXA+Jn6P3Wm84RGWHVlkVnYKxPqqQZaggKooDTQlFEaIAFAkoiIDMgygIkgwAygJtlitQBUBYgKgAAAAAAJIIAAoAAAAAACJQEAAAAAFAUAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAZUaABYUQFg0IyCg1AlVYaiDQzVVUVVRRWVBK0qxKoqAAAAAAAAAAJQZIsBFEBAAAAgCgALwAAbA2bQQAAUAAAKqiKqsrCte1SqHsgA0QqKKyKCwqoALCiCSEQFAAAURRb2iOSsuereLlm7NJdzHZ6MHi2R3ccu7Sz14Pm7Z613KT6O1jr75erF87ZeOW8npDq2XJnX2da8Onkh583u1V0skOleHkzj6Wq9nUs69oebJ78HFK4o82THH2w5z4o78/dydnqE75WT7IiHTa2/iZ/VnV+Fr/TFhyR6MRcnLDlhuOGTcNNudSWQjjmWJYrrGH0ngv+sPCv934X61Wa64959Y+YhuBKrQw1DcNRitwrbFVrYyICOfFPZYmfw1nNLqTKZta56MTLEsO8RiZZbjMyyjYiNRAUJBlEWACINAyEoKAAoCAKACEJR28OWazHd9R0/nzTyR9r29Ls8uUfK8Q0faYV9fx+RF6xas936T4R8UY+Fk+RdRx+36bnicefFM+kX7TeuomYmH2Nk+11cTve1+Vfj+f2bqMcspzJeM588a4/Eng7NwMWLqHDicvT+Rirmx39NRf0rO532fmPP6fTNFp8v0iz7XRPnxxZ+cdcMs+k6jGXteLPzlfC87hzimY08S9Jq+DvwuOV/J+16TbNmvGuIcHrAAQVQAgBQZABRkUBYIgKgqiCi8q0KoLWxGhYVn3FRo2pWZ2oDSgBoRVVOUUUJhlViF0CgOSs6ejx8vkne3XDLi4uG7Dz4WPr+nc6azG59767FyYy1idv0PS7ZcJH848X6T7PflZHW5kRej4bqGHvPZz6qcyu3hOXlsj5PkY9TLz59ZfC2z1fv+ky5wxZYlxexGJFSUFZAFhmd6UhWgUGlgSqoiqBCgIDIDKAiSDMoDKAkspViIy1AX2EEWJIKgAAAAAkggACwAAAAAAABBkAAAAAAFgCgDIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAADKjQALCiAQaBkFBoSqLBVhWWlVkVfZGlhWQCqoiq0yAAAAAAAAAIiLAFBBEAAAUAAAAFgABtBAAAF4BUBQVFQVBVGVhYbiVRpAZGgRRUBUWFEaNqhs2CAoAAACwolBUahy1lrFjJ2aS7dLO+Dx7I7mO3o7uOz1YXs+dtj0cETe0Q9KI09mHbn5vkb797hxZba061mqa+0cFnUye9wze3U6V4dO8eryZvo6vZ07w61nmyfQ1uGzfGjfIxfe54/Hj9Y75fBl+leVO+Tmn/ilwGXx5/VcPgw+kWHLDMTJyQ5Ibjhk5IVtzSWZSrHFMsSw6xl9X4GpF/F/hnfu6rwv1oRvtOfzj5SFWJW2ogYqw3DcZrYrCgibNio5MckTKelMs9nUTJvX2YmWZlzdowyjcQRoZFgChIMoiwAGRYDKiCgAKAgCgAiJYNROndw55jTeGXHDntx8+L6bp3UJxzEebs+y42attWiz7vRbPNJK/HeKdPcM7lx3f0N4G8YcDk8KvS+q4qZMNr0p7O8RNIpG921Mvlf4g+C/mjlW5fTsWW/Tcla2jN613fvqJiIhjLK6etz83pht9f7pt8vWeG69mOP77p/TL9L8U6j0+uWtpiv0nwnL4c0tMeVx6zVxbnO1e/wjqucfLb2ePenllxPk30r9NjeYCKCCqAEAKDIAqiIoAioC6QFBQFUaaArQjakCe6qKilSdqAqmhm1dL5WpGLk1ENabkY8yaSWMo6YUXTDoKAAOzSzUSzmPT42fyT3l9RxOZrUTZ9LpNlnEflvGOl833uHrRyIyV7y8XnU825e7ZfNjXwOlx+y2x8hzMfeXiZI1L42+er9v0GXMxcTDyvqsyyNMgtnoyCCwzPdRWkFBWoEqqIKBCgICAMJIIgMpIIgMolWMjLQi+ygipKAAAAAACAgACwAAAAAAABBkAAAAAAGgAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAZUaABYUQCDQMgoNCVQFVplpVjIq+wqqzVBBYEahWkoCAAAAAAAAIiLAFEQQAAgCgAAG1AIAUQQAUBQVBThBUFFRFhBoGVVuJVGkBkUjuI9bNwb4+LTLMTEW9HlOuzHyXH6OGjb9rjlf6rFGHUWAUVDagAAAAAKolBUHJWVjOTnrLtUs7YvNsjt47O7itNpiHp13s+ftnpX0fHx+Sjn2+jjPTGPz+y+bO10cuTdp1PaHFNmLe70448SOOZdW8uWb0a3Vu6d/e82fu9+r2dS7q3h5sn0Nbgs5uHH/vFHPD8TD6u+X4ef6XVvbzXvP1zIx7109o1DlgjGTcOWrcccm1ac2WJkrWLjliWHWMS+u8B/wBX+Gv7rwv1oT3XL4XyqiVpYaZbhWoxWlGRNqJMonZU2tLd5PeLZ6VrJPZ1Zkya19mZlhydoztEbABBUBQkERBAUQWIMqAJIKAAALAAAAidSkO7u4c0xMd31PTuoTSaxNu0y93SbfLlHyPEOnmevL0fb8PmWpat8WTWu8TD9/8AA3jPj8vFHS+rXjLxr0tGSt++u2omH0er1/a6fNPinrH5jot37J1kmf4ed8uc/KvjfHngfk9D5F+Thwb4OS9oxXrO3411LgRlpMxX6S4Z49T08y49bOP7xZjl4f12eq9pl6fpvZ8Jy+HbHM7h49qTWXxd2Hly4fs+l2zZhOKwjhXqABoAACiIewAALAFDQCspFBVUBRpVAahK1BYBSQqKUimlkLV01pqRyyybircVbkefLNry/Yaac5mkwxpix6deTKuT0qAujQC1nusHapZ6WDPMT6u+nPy5R4Os0/aa69jBypnW5dnJeL19X08cucX5LZq8mx89y8fq+dzU1MvBvj9D0GfwulLDwvvztGUGpGUkWoiUqiewNLEFhUVRKu1EUAXYG0BEBGRYiBUZBGQJZZ91QkqpAe0UEVJQBIBQAASQQAAAUAAAAAABEoCAAAAAAA0ADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADS0BABlRoAFUQCDQMgoKFaBFG6y00RkIUqtDNFVBYEVYVFFQAAAAAAABEZWAKiAAAKAAAAgCi0QQAUBQAVWQAEFVUFg4RREUbRQBVByY482SkfaTvPqzl8NffdSxVjpFY1/LWunwEvb1s4zw/RHyfCcrlq23/1KkK8b6oogogAooAAAALAiioLEkSuasuetnXFwzjt0s9/puHzzEzD2aJ5so+X1uXk1ZV78zEQ83kcrfasvfnl5Y+Jo1+fLn2jqxkXzOEr2+RmbuC0s2t4R1ry6t3nz93t1+zq2da7hk92t17Obi9r3t9VZc8Pjjvl8FdJyVpa0WtEdo9XOS28T5OtsxnqsOSFjGTkhyQ1HHJoa92EmXHMpWoxMsSzXWMPrvAf9X+Gv7rwv1oT3XLt/ePl1VhqGohWasK1GVBDYoykyjUYWs909417Vu87h1plMlw7MMy5u0RBUUVTQiJsUBRkogigKgioIICmgAAFAQBQAWJ07uDPNZju3heLHLbh5sa+r6b1HyTEWns+04fLtSa5Md5ifdMPudNnNmHFfi/E+n8mzzfN/Qfhbxfwuu8G3R+s3maZazWbe+LWvub99++74Xxr4F5fQ9c7D5cvBzatTLj/AJa+b0hy0y9P1N1Wfc2X7v1Xdz1vRYdRj67dEk2fpfjfUunxmra1YiJh8LyuLOPbn12ny3l9PwjqfNhMLezybV043yK/S43mAgNAAADKgCgiLAUBBVQiqiqAuga9lAVUrUVRQAaVn5rpdNyOWWTcVckUbkebPY5YxuSKOkjy5Zk0YmDgmTGmLQ55PZqrEjhXtnZoFAncEByVs56303L6xjZj5pXdw55jT08efb36c/R+a6vT5c8nByI3Ey8Dk09WN3u7dFeLHk3jUy4pfPvd+k13nCMssyusQBJZSjSF7QVSe6EKqKqpVWAaA4DYggIgIzIqICMgkspaCa3IvsTE1nUol7rEQvssDaKSgACAABsBAAF4AAAAAAAAESgIAAAAAKAoAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqrQEAGVGgAVRAINAyCg0JRQWFbrKqRlSFKqjNVVQBGlgRRpAAAAAAAAEEqxBFRAAAFAAANgi6ANrRBABYAoACpwoiAvA5q13jyTr0mrjX2jM70VORREUbhQSkFUV2uHXz8nDX67Q3hPvY/Vy23jXn+mvt+v29lwIpHpMxH4PgHr66/vsfpHzPB5/0tvzyorxvqUBBQFEAAAWABQWBFFQAbrLmrLcc8o9Hi45ver7TjY64MMTL6XSTvX5/xPL1xwjzuVzt7rWXnxkmZXPPzZJp0+TX+db87UWSVq4pN4cVrJa1jHDazr2lxy93qwjrXcFnDJ68HXlvHPlw57fZpjHv/au97T6x1HsYprj6TyJ/38uWtf8ApHc0+lzt/lpvls1yfz4/9vV5kOSGI1k3DlhqOOSwNsMywxW4xLEpXWMvrvAf9X+Gv7rwv1oRcvh/vHzCrHOrDSxlRWVFEJlFY2iNSMzJE905aatPZ15kyXBiZGHURViLAN1hyTCyMW+rhmGUbiiCIVWRFAElBRUqoICSEAUAAAUAAidSHd38GeazGpfW9O6l5dRMvd0u3y5R8XxLpvtMK+x4fNmlqZcV9TExMTHumH7t4U8b9K5/Gp0LrOLz8blXpS25mIpPeInca+qH2t0mfS5XD02Y2Z4X84/OdFtx6TqcsduPOrPG4Zz8sn5T4k8O83o3I1miL4b/AOXnp9LHkj/htHadPzzqXT4yVm9Y9ImZhx237fV5vn6nR55dL1EwvteHwvJweSZjTz5jT4GzHiv3GjPz4S/kyOTtRoQAEAUAUElIEKoGkBdHsrQyrWgDUgvIooosVWWlAG4huOWWTcQ5Io6yPLs2OatJc9cbrMXjz2OauNr2bcjzXP1YmunBaGa6YVxTDjlyye7TezEwjhX0MeyrpGkAGSBEuWLeipW4vp28WZ6NWXZ87rNXMtd32m6vO5Fdu+frK+bonlzeLmr3l1ZeDOcV+h0Zc4RhHKPVGUJ3BERRapCoiqsBWmau1FXagAlVBGUBEGmUBEBmUZoj3+D02bca/KvH0IddGHnyv5R5ur3fY6p/VlMY8bkW82Wzgc78T0YfBikolbGUVQBJBAAAAAAFAAAAAAAAQZAAAAAABYAoAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsKAAAyo0ACqIANAyNaVKuheAAWFX2ZqgirDXulVYIysKqAI0sCKKgKAAAAAAACUZEVJQUAAUAABAFAQAAkFgCgALwLAe7KwsqhEzqYAFRFBFFAKACvV6NSMnUOPE+m3XT67cP1R5+qvl6fdf6K+i8TXmMWGm/WZl8U79bed+X0ePwmcdFr/O1R5Y+ibVUAQUDYIoAsACgolUEAB2MUTa0NY+tjGfpK+p6dirjiL3a5/Utz5KT2fTmf2enj5vgXXeo6q29o8iMm53LlrdwmT25YOTztedvlyuKeZmblpMXFazhmXO12xjhtLgs416cI4bLbtx9fXZifxfR3/l+rqvQ5O8ePj4Jn+Ss2n77Jj6YbL+UjWfrnrn52urDkhIzk5IckNRyqo17MssSlbjDEsV0iS+r8DXini/wx9vVuF+tCNWcvnBtxWFEUETZtVTaIqJsVmU2y1FmXDPqVrFERsQWCwg56Q55p2dZPRwyvFdW8acbnXbHsSiKIKiIoAIKAoIIgCooCIoCKAVQBazqXfwciazHdvXlxY47sPNjX1PTupTXVZ9H13H5GvLekvudNs8+Mj8b4l03kztk9K/UOgdd4vVODToPWO/E8154+ae9sGS8RH/y/fMQ+G690z5u5/K424tSsxOO0el8d4i1Lf8AWsxLeE+zzzw/hy5yjwfaebDVlcvv4cYZfST0r8y6vxopktMQ+Uy01L4/VYcZ5P2nhuzz6cPo648b6goigCAKAKBKQFUUEVUaahThRUoCBMJoWCxsWKQjarELIlrUQ5Yq6Yx5Nmfq5Yo7NcbvI8OzN2KY3ZridccXjzzcsY4YtRvhxmTgvDrXhyr0a64LOOXLN9DT7OOUee+76WPZRloQBmSDMtROlX5r5lrk1OmsbxY4bsOcK7uPL21tu8+aHql5lfHuPlzeVnrrbzrQ8u19bpcvSONmXne5EFGQVVoCIqgo2iqCgKAblBlEBEGkljaAijKMDm4+Kc+bHjj/AHpffdY107pfH4sai3l81nu6b7urdn8pI+P4lfP1fQaP6vPX53M7mZlHifZnpIiIoyKABIIAAAACgAAAAAAAAgggAAAAAANAAiwQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAGVGgAVRABdipW4bWMXuJpU5NIlUhpqFFRmqqoqqiisqCVVBVaZAABUAAAAAEoyIqIKAAKAAAAACAKoIiwAAUFZVSIooALCssmjSgqggKAPovDdPNz6zPurMu/Tfj6v1R5OvvHSdRf6K7fief8XDXf8AuPlG+r/H2fVy8N9Oi0/RVeZ7QVFFQAAFUQVQUQAqioCCxG3qcTF6TLrqnOUcOoy4113eTzIrXyVl5XtJtO5ddmzzXj5PN0+ny42+9ctbuaLkq54txZfO3y53FfMz5y0kYmzjmzFrcjimXFaXOu+LhsuWfo44++WL2yd5/CzhpFr1j8Wst/aZL3+uU/g4+dW/Hz8ozDlgjGTcOSGo5VWZVIxtmUbjEsMukR9L4K/rHwp/d+F+tVn2bnefWPDHR5wBdoAAM7FibROViTLG0bhMsJWoJKNRU0AsA7mGu5d62L6L04TnF4dufGceblrqXXcMu71YXnGCMtoDTIhEBQAAZBpRKACCAAEqIFURFRqJ0SlnMd7Bnmsx3fV9P6lNYiLS9/SbvLlHxfEem+0wr63j8jUResu1n5U5axE2fcx4yxlj8bnp/eS/Kvnuq4oyYdw/P+TTUy+R1+PGfL9V4Nn+74+VefPqj5VfovkKIoQGQGgFUAiEQ0Ae8SKqNLCiqJVUQAWBECxRGyIckVbxcM8nLWrsVo7Yx4NubsUxu3TG74x4dmbtUxOxGN2keHPNZrpwXgsTC+rrXh07uWT3anBZw2efP3fT0ezjRwr6GKwMNCKDAIg2zMs7GeOXNTI7MZNvRhXy9+vjJw5vpRt5mSGNjv01cEsy8r6SSyX3UQncVVoCIQoKraCgpsVTYhtNjKICINMyygrJ7L7ojJ7vqvCvCjkc2Mto+hjjzfg6/iLnTyuXk1btvt9z3fB0c/ry5fGn77xjL5a9cn/L5xJeP2faBlUlkEAAUBAABQAAAAAAAABBkAAAAAAABoAGVgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAyo0ACqIACqlbhuFjFbNNcMMpMHCxAjSwqM1VVCFX2RoVlQBRGoVUBUFgBJAAAAAEoyIqIKAAACgALAEAAAEB2+Ni9o58vDmsbiHqx03LXzHmy3eXb5XQtS1PVh57LLw9MvM5A9VVUjKigAsKiKKgAIBBID67wvSJyZrz7qvT0c56jX9Xg8TvHRb/AKOn4jv5udMfVEQ8BOovO/Z+pvoJx0nTz+iCuD1AqKqpQEABoKsCoNCUBAWAA7mDD5piZdvNmjFTy1dsfuY15Nn7zbMfaPLtebTuWos5S+r02ejlizli7pK45YtxZfM3y5XE855hPKzNmJszW5GJlxzLNdY45ZyTuWL2rrj3ap9Gsz757QwnyX5uSHJCxzybhtqOWSzLCkZlmUbjEsstxn3vpvBX9Y+FP7vwv1qs10nePDRt5lAE2qmwVNs7QRJk5ajLMyy3EEUQIooLHqD0eLXcw96+CfZROnu0Y8418jqs/LswfPcmupl0Hk2fE+lpvOEBzdUZkaBBJQUAAEBoABACiCASogVRlmqArVZ1Lv4M8197rry4scN2Hnxr6jgdStWIpNvWX0dORjvXe32+n3ebGS1+S67pfJstk710+dlj2c0iXxHLjvLzdbeXv8Knln1ryLerL5FfpPaAIKAgCqKsAKIoCwuhkUaaEUUVdLpGogiigi6JFt9G4hy1q64x5NubsUo7laO+MfO25O3TG7dMf2O+MfP2Z93YrRzRV2jx5ZMWh1MjOTprdG8uneXDL3fS1RwS4bS82V7vqaJ2Y2OFe+AigQZmWZlRmZYmWW02gM+bXo5KZG8LxXm34c+rm82406mWPVvL1jz6vTJ05Yeavp43mJKSnzVBYsGkQiJtKektEy+9wpLIo2kaBaLsQAABAZSQZGFZSQSQH6JwKx0voN82tXzbiH59myWy3taz29T9zDRh8seXx/DJ9pv67f8APZxP7OIeJ9lAVmSAJQAFAQBQAAAAAAAAARAEAAAAAABYAoAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAADKjQAKQIoQaBkckNRK5FalcqaNAxMMlblVUQVUVV9iqqs1YBBRFURRUBRYAQAAAAAZZUQVAAAA5AUFgCALAEAB3eJljHZ9BW2HNWI7PqdJlPL5a+X1mOeOfnjrZuFvcxG3Sp0vPyLzTBXzW79txCbumueUmPemnq8cMLlnfSd3RzcXPgtNb0mJdea2r6w8GevLC2V9HDZhsmNxvcVloAaFZBBUkBUEFAAfd+GKRHGzX16zEPZ0E/6jH6V8vxi8dFn+dxfNdYv5+fnn/ieU4brzt2X+qvb0s46fTP6IqsezqoiCgK0gCLAJWoFFhRKAgAOfFj80tYzms53iO5OSMVezz73m87bzvaOWnHvkwObu3FnJFmpWLG/M15m+XOw8x5hOE2xMpWpGdszLNbjG2JYvu6RdrCo5YbhY5VyQ1DbnUZCJLEs1uMSiNwfTeCv6w8Kf3fhfrVS+7c7z6vnxquIFA2ogHCIyrO0GkllK1ARQAFBY9QezwK+a1X2k4Y9hFde59Xo5zhl9H5vxLPjbh9XxnPpq1ni29Xg3TjO/V9rpbzqx+iDg9SMyKCKiCgAAAogALSQB2MmGaYcWT/XMrjLZnZ7TljLLi4T511iWY2gVREsEEaFi0wSpXewZ5rMd3tYedaKxHml7NO3h8zqunmXs1l5c3jvLyM9977tbs+Yx02ryWPNt6svFe7607QE+QG0AVAINKoNDNAK2qoaBpoZaaiINQiiiwRCgENbckQuMMrxHJWjsUo9GMfN25d3bx0d2lI+p3xj523J3KUdmtXfGPn55OWIV0eflw3l0MtnPJ6tM9Y6GSzp3s8uVfV049nBNnHMvNk+tpx9IyOVeoBDabIqMScjO0RtmUQYmWYtMLO6ZTmOWLraduvd4+OMnTvHdxOGT26/XFElltBYsRpEelxeNM0m8w82Z+lLrnOMcHn05+fbt/IhHKPQ0NEVdnJfVRUAAAZAZlKMpLPusED2Zd7p3GnlczBiiPWzWGPmzwnzsct2c16dufyxtfV+KOVGGuHh0/lx1iHwr0dXlzuv5SR4vCcLj0eGXvnzl/wAg8tfTSSRWQBAAUAAAAAAAAAAAARKAgAAAAAAKAogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAADKjQAKogEGgZG4lqJW4ckNOeTRppjlnTMwnDUrOhloVUVVKqqzVgEARWoEUVAUFAAQAAABEWIiKgAAKCAAACqqogioAQ7GPkWpLphncLKxnhM5w9bB1D0iXpYuTrc4r+WZ+p9XTvmUxvu+Rv6e42/y11uRbkZfXLMw8bPhvM7mZl5+pxzzvNejpcsMOJJw6k0mEeCzi8PoS8gDQqACoyEKCCgAP0XoNIx9Mi2/Xcvd0H42V+WNfI8av/S4T57I+E5lvPyck/XZ1YePP4s/q+pr9NeE/pirCRqqsCAqLCqgCNViZmIgmNTqTioLBAVUUEAG6V3Ls+aKQ6Y+kcs/vXh1r3m0sMWuknEAUWJBqJa8zXLFi+Y2JIm0mTlYztmZZrUiMo01DUCOWrcNRyybhYbc0QvsRmWWa3GJRG4Pp/BMTPjDwrqPTq/C/Wql9/o1Lx/y+dNq5BtrlU2Mgi8gwijMyjcQRQAABYC19YPcfQ9JrvLSH2uvSH2uj/DflfFL+/j5PrGKKZJfL39Xz+qnGzL6vt+H5ebRh9GB5HvRJFQRRJBAUAAAAAE0K1Wu5iPrl9V13jYuL0zpNNf4l6zaXs6fCXpusyvtjj/3rw9TnZ1XQ4T+LPK/2kfJDxPegoJKVqIMqCCxOnYplmPe3jeHPPDlz+1cN7bdLlzHHHDix1p9UcXpET5KCAqxAaRpUKNKgojUKqKDSjKrCi8glUEBQaiHJWHTFy2ZcR2KVdylHpwj5e3J26Ud2lHfGPn7cnapXTmiHeR4M6047W0ZJjOXSy3dDLkcM69+nHs6GS/q6s2eXOvr6cOzimWXmyvq+phPSBtl0NmwZmU2CSyNcJKJVYmWUGZlgVYs35m8a8+zD1cV3Aze7rp7Iy5uoLO1X2Zc2Kk5LxSI9TGc1nLLyYZX5PscvF+S9M9pMd5nT4udberqsfL5J/S+Z4Zn9rN+fzzqQjyR9RoOKKoq7NthsEoCIAyjNWIiCIA+w8LYK0nPzLx2x17fe9HSzndh+VteDxTLy9Htn83GP/L5/qvJnlcvJeZ9Zea5bMvNsyvzr09Nh9no1Y/LGQZYd4AogIAAoAAAAAAAAAAACDIAAAAAALAFABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAGVGgAWFEAg0DIsKNxLlhqOeTkhptxppmYCViYY0zw6SgKpAVWljNWBUASqoLCiA0gsAACSAAAAgyI0GgNGgNGgNICAKdlFFABkShoPkqxuPe56Z70ne28M7heWM8JlHfx8363NOSl4e7HbM56vBnpuGUsde+OsurfHpw2Ye7vrz9nBNUeavRyosBUAQSCQBQAWPWr9L40ew6RX3axTL6HQd91+WL4vjPrj0uPz2PzbLPmvaftYh4L3v1fZxnGOKiK0NMkNBRVZoCOzxbVrmpN/Tbuc/i+SfPTvWXpxxmejP543l5s87h1GHyynDzFeePQANAyLWNqWueJisOG1ptLVvsxjPXlkYbAAAFF2vmOU4Z3JsUZRYANLAjlhyQ3Ozjk1A0wIX2WMJLN7NsSiNwfXeA/6u8Nf3XhfrQJl2fKmhkNAibFNoKiSnKxNojQAAAAALHqvvCvpejRvLT732T7fR/hPyfin+4/s+e61T/e+uHxuT1eDrJ+9yfX8Ly50YuIeN9USUVkhFJQEBQAAAAAAdriY5y8nDSI3u0Q+h8W5t87Fxon6PHxUpH4d3u1fd6DqP688MXg2/e8R6Wfy688v8R8mPnvooiwEKqDLQAixINxcmWuWOPVgZbESgIAorSxBRKLCp7Kq1lYaIKIqiVqLEqAJWgQFWFclauelXXGPHtydvHV3cdXpwfM23u7lKO1WHoxfP2Vzw1t0eVi19OrkyM5V114esdDLk+15+TI82eT6mnDs6lruG1nlyr6+jBiZTbj7vbPQ2nmRTzGwNwwAbRtNszKDEyzMgzLI1GZWJlZWc4ky4pKzr9KjLm6gs7Kj3+icOc/Ix9o7zDrox823D6vH1237Lpdt/pr6bxVnrhwYePE/y1h+dO/W3nfZ8pHi8Dxs6LHK/wAVtB4n2FAXagLteVBeUoghKbBBmqjIDILETMxEesvuM9o6b0XHiidWyRuXr6b0m3L5Y/5fM8R+/l0mr+bZL/w+GvM2mZll5K+p2kggBsUSQQCAKAAAAAAAAAAAbQQQAAAAAAGgAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAZUaABVEAGtgyCjUS5IlqMVyxLlhuOOTeiYac2Jq45qy6SsTDKOkVQooiqrIALAjQJVGkAFAAE0aAABBAXlBFBeADgAGRBQFIjbQAMiUUIAorcXtHpK43ipZK5ozNTkiXXz8uP2fFcNmHPJ0nYGYqgAggQABDkcuGPNlpX7Yfo/UZjD0m2vdjrD6PRfhdRf6XxPFfXqOhx+eb81mdo+e+2uwFVqJRoShCsqCK9nh8muXH7DL6e536fPjO43tlOHn6nDza+Z3xvLocnDOK9o92+zrueePkzsdcMvPhjQZVVEHJExELErM22yVZAQAAAAAAXgSURRdCq1AxXLDcNzs5VqBpgYlK1EZlGozKI2j6/wH/V3hr+68L9aBMvh/vHymzYgm4DhNygoAjLLUAUAAAAAFj1X3hX0vRv86n3vsn2+j/C/u/J+Kf7j+zyurU82Df1PhM1dTLx9dPv8vpeEZfuuPzdceB9pJRFAVJEENAEggKAAAA+i8L4PbdX402ifJTd5n6vK6HWOT8q6lzM0z/Nkl78/Tw7XPfPbb/xHgx+/wCJ7L/Joxn/ADXmI+e+iiEBJL2VBloQAAXZAAElAEBVBpYgCKqooIrSxKqnsqtM1oIFikioMiw1WG8WM76OesO1SrvjHztuXd26Ud2lXfGPnba7VYc0O8eHNrbM3XliYuvfI6WXK5ZV7NWHZ52TI6d7vLnk+rpw7OC1mPNt5sq+nrx4Z2u0d0mRF4RSCSBESUaREGWZkWMJIrKbGr2NsSViTis7RhoQ9lWK+e2o979J8N8SvG4+TlZO3ljtt7+gx523P2xj4fjuzy9L9nO+eUj43rXOtzOZlmZ7beM8u3O57c8vnX0+i1TT0unD5YwHJ6FNgoC7UBAACWVqKiKiAiEHpdK4/wAo5mKPdE7l6HX+ZGXNGOv8tY1D043y9Pn/AFZPn7Z9p4jp+WvC3/l84PM+iyCoAAICgAAAAAAAAAAAIMgAAAAAAANAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwoAADKjQAKogANFSgRByRLUSuWJctZbjhk5ons1EOkcL6E1YmosrjmrjmrFjrKxMCNqFGlhWQABGlgRRpABYAAABAAAAQ0iqKgAIgJpGjQsB3ODjjLnrSf97tH3tYznKMbb5ded+UZ5fFvxs00tWYdUyxuFyhrzmzXjlPeIMNqNAAAKHZO6qICoAoMiAAAiDvdNp7Xm4K6/3ofbeI7xXg+X67PpdN6dJ1FfE6/wC94j0GPy9X54PnvtgCqsSqq1KLBGVFRVrOp3EnPb6nd6EZY5GPy2/mdK1fLMw7bL5pM3DXPJcsGYHJ2VRkFAQAAAAAAAGhJRlRoKNwM1yQ3Dfs5VuEaYRmWWmZSUbjANI+v8B/1f4a/uvC/WgTL4f7x8ltE5AAFUSZRURFAAAAAAAWvrClfTdF/wA6r7F9vo/wv7vyfif+4/s6HUY3xrPguRH0pebru8+j3eEX7l+rpj5j7wi+ywRARKoAICAoAAAD7Tw5PyTgdU5s6+jimsffZ8bafNNp+uXv6r06bosf6csv+a+f0n3ur6/P+vHH/iMD59fSJSUESRpBFEAAABQQZEAVWgFQaRDaqKog1AyrS+yqqNRRGl2IIINRDkrDri8+3L0dmkO5jq74vnba7dIdqrvHg2VzxKzd15eXhJu4L5GbXTDF1b5HQyZHDLJ79ODpXu69rPNlX1NOHZxTZlwr3Y+hs2N8L6iLIbTYG02CTKbkVNptBNsjTKAzKDUZSUOGRkRAel0zj2z8mkRG9y/Qes56dN6XTjx2tavd9PpPudPu2flw/N+KX7bxDo9E/m8z8uveb3taffLD5z9JJxMYKkIAKqIAGwAAC0RARJBAWd30vRqRg4+fk298dnz/ACMk5ct7T75ejP01a58/V4NH3+r6rP5WY/8ADhR53vQFQBAUAAAAAAAAAAAAEEEAAAAAABYAoAJsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAZUUBRVEABoSgILEqOWJctZbjjk56y5odY82Ua0TDTErjmrimrFdca45qx5WXaVBKqqqKCAIqgqrGQUFAAABAAAAEAUAAQBBkFHNx8s4ctMkdtTtvG8ZYpnPNhlPnH1/VuPTn8THzsPeJj6cfVL4uY1Opd+qn38cvbOcvB4bn+5y15fFryuLO1eaPogoAimgWBYgoCjKAAioIoAID3PD2Ob9RxTH+7uXt+KckRTj0j17y+lq9Oh23518TqPveMdPPlg+JHzn2wBVWJVWFQUiKKyLAN1tqdt2t5mpfSxiz1cYiqogAAAAAAAAADQJpA0pQckKlckNrHGqNIyzLNWMsyjcRBofX+A/6u8Nf3XhfrQJn2fIjKgDO0GgAAAAAAAAAWPVUr6TpE6y0fZvt9H+E/KeKf7h1+VG8GSPsfn/ACq6vaHDrp8L1eD345+bzx8p+iBfYElFRCqCAgICgAApAPsORMcTwzjx+luRl3P3VfHy9vW3jLTj/Lqxn/Pq8PQeuPUZ/wA27O/8eiDw174koioCppCqIigAAKCIyALFGkUAWBkVRWhBRlpYaVYVlVVGgRRYgiVy1hy1q7YvHtydqkO3SHaPn7K7NXNEu0ePNrzMzdrliYuK13Xvkc8q74Y9nTyX+1073cM6+hqx7OtazimXnyr6WrHjhhXN6Yh/1Dy02bGjabA2mwTZsDbKKks7FTaTIsjKC/JlGfaiIlKIRH33hbhRFpz3jVa13MvE8R86eXzLan6MPpbP3fRYY/zV+d6afb+Nbdl9Zrx4fNkvnP0jK7IkGoFpsRkUDZs4Xg2bOAQQQEQAiJtMRHvkg+h5l443BxYI9Zh867br64z5YvL0c/d55/z52jLi9cEkVAAFAAAAAAAAAAAAESgIAAAAAACwBQAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAZIVQFFUQAGhKAgKNxLliWoxk5olz1l1xebOOeG9Ojz1mauOapVxrimrimrFd8axMMsV1lFIVYFQBBoFhVjIKCwAAACAAAAAoAAIgCDINCrKPpOg8+mG+Ti5v8rN2l0+r9PvxORfUf4c/wAs/XD1WfadNPnhXy8P3HiOyX4duMyn1jxleZ9Q0aEFEFXhOQICiACCACkolUFAB9H4amI50bnW6yeI+RGXlRSPSvZ7pnx0VnzyfIuFy8XmXy1vnB4X1xYAVYlVYEFWIorIsAqnzQFFUZAAAAAAAAAAWgABRYbgjOTkhtqOVBqozLDFagwNxBKo+p8E3tXxh4W17+rcL9aovHPH1fLbSZORBFAAAAAAAAAAAWPVR9B0q2stH2z7XRfhvyvis/fz6MZaxbHeJ+p8BzY1ezn13bF18Iv3848qR8l+lAAQGRSEk9lBBEFABQG8VfNekfasnNkS3jG19F4hyRSODxY9MOKN/fZ81L09Zeeoz/Lif8R5ehnHTa78+cv+byiPK9kERREURRE0y0aAAAASWQgVTawAHKKKgEK0sKlaBmtKIsNI3BoAGoNxCxjOuasOzWHbGPn7K7NIc8OseLNyxZrzQ6ONiTdxWyFq44OC2R1rZHK16sMHWvd1rWcMq9+rHs4pliXGvfhjwiMugbD2NpsUmTYJMgCIM7NixEFZRJ3rSShRElkZQhCXb4eKc2asa3G28J5spHPdn5NWd/Kv0fPenSujxEdr5Ifl+bJOXJa8z6y9nXXj7LD+XH/L4vgeNy/at9/jzriHhr7wCi7Bdgi7Dk5Nm0AA2AiCIFEdzg4/acin1R3lrCc5RjbfLqzv5OTqOb2mbW+0POXZec6nT4+XVhPyQYdhAFiNkh7NTjmIca2cEvIIoAAAAAAAAAIgCAAAAAAAANAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAMkKoCgoVQQUgoMgoQ5YlYlctZc9ZdI8+cdisuertHkzjWkmq1iVxTVxWqzY7Y1wzVxzDnXfGs6EbFEASigqiKNIAKAAAAmgNGgNKAAAACDIyotFWFWszWYmJ1MPsMOWvWOmzinvyMMdvth6eny5ueF/ij53iGNmOndO+vOW/SvkcuO2K9qWjvEsOFll4fQxsuOOU7VFQBYKDIoGlAAET3BF91EZUhQJRR3uFnnBki0TqXDyss5ss2l1uX7uYuE1/v7n+Trjk7gCtLEoCKKiwqoLAihEUUVRAWoCAAAAAAAAtAAAahqFZrkhqGvaOdVJEjEoy1GZlErcNGlEfT+Cv6w8Kf3fhfrVZqzvHywKAAAAAAAAAAAALHqo93pc/4tH3Uej7PQ/h1+W8W/Gx+iWjdZh8H1Gust0634MV8Jv73N4s+qPjv1AAAADKSjQEBlFgANBR3+mY/a83BWfTzbn/o66pzt1z+qOW68adl/pqdSzzyObyMm97tMRP2Q6CbcvNs2X55VdOPk1asfljIg5uie8lGkRCCKqDNagAgAAIyIqqigoiKKAoNKy2DNVRFhqEbiqCgqxDliG8XDZXPSHZrDtHhzc0OSJbebKL5vtSbiTFjzuK10tdMcfV17XcFrsWvThi4LWcM2cMq9+rHiRiZSZc3qlREaEBABAQ2UTYi8JtNhAGr2ZlEneqglGUQSUIQfX+HOFGXNW1o7V7zL1dJj5t2L53iu37Po9l/JjxRz/b8j2VJ+jHbT5FOpy8+/OteF6vsui04+9nNZHnr30NiqAKApwBtE4BRADYggIj1OJrFgyZPfLevv/Zy3/hyfPKR5t581plmWK7T0kZQUQoO1xqeezeuc54s7Lxhk7XIxzWrzG984yc+ny82CDi7gAAAAAAAAAiUBAAAAAAAAGgAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAGVFAUFCqCAQaBkFBqJCuWJc1ZdI45xz1l2Ky64vJnHPDenR5qzNXFaqVvGuGauKasWO+NcU1YmGHeVFhFAKAitCKNIACgAAAAAAAAKQqAIMjKi0VYUdrhcq/E5FMtJ9Jbwy8uUynteXPZhNmvPC+8sez1bDj5VKc3F3i8d4+qXzjpvn37lO2Xq8/RZX7GYXvh93/gVxj1gqUBBoAUABE9wRaAy0ACAsSHyEAUBVWdkoCKqoKqCwIqwRAUFEUWoCAAAAAAAAtAPmADUNwrNbhppzptmUoykyjUZErTWhUZl9L4K/rDwp/d+F+tVmtY94+XFUEAAAAABYBBAgCgAsKlez06dZavvK961l9jofhyfmfFp+9wafEdUjWXI11n4c+rHhX49+jwLMvi1+pnYBQAAREaAEkQQBQFej063svlGb31xzr75ddN42S/WuW711ZT58R5k95lHJ2gAIKgioDQyUgMqSgAlAQSPWIen1XiRw+RTHEdpx0t+MbdscOdOzL+XLGf8ueWdm7Vh/Njlf8Ajh5Y5V2VSIAgA0rSNQoyKMrDehpYaiEUkCuSHLWHSPNsrnq5qy7R4smtm1Y4PMz5xZixN3FazNrrji4LWcU2crXq14OKZcUuOVezGcMm2XQQbRAABEEkUQQRBUBvvIkox71BJBEVWREcuCk5MtYfomGK9L6Xe89rWh7+jnE2Z/Kcvh+MZXO9Ppn8Wcj86z5pzZbXtPrLgeK3nLKvuYYzDDCT2iCKApsIG12BsORdGkZNIAEqmwBBD6nfz29nhpjhvHtXPP1y1z83QRh1RJVUAHp9Op5ruuic7cPq49ReNOf0d7qFYpWXz7p1nptc+i9dXKDyvWAAAAAAAAAIMgAAAAAAALAFABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAASqNIAAAsCKANFSgqADcS5qy1HPJz1l2K2dcXmzjsVlzw6x4843piatcMSuOaOG1GLHbDJwWq4pqxY9ONcUwMOoAAiqCwq+7IKCwAAAAAAKsSqi0A+QgyqKgkhRIUgCj1+m8uKb4+Tvjv+Tqczj+wyzEenul2v3tUvvHkwn2XVZz2znLpq5PUAjQCKANAAAcgCSjNWAgCiCKoACVVaBRKLBGVFQUKoIooqjILQEAAAAAAAAAaAZGobhYzW4VqOYyUSWEbiNxCQrehtlxS+m8Ff1h4U/u/C/Wqxfd0nefWPlgUEAAAaisykxMLwnJoBUOAAEQigIsKV6nCnV6vvsM7xU+59bob6ZPzni8+9g5Xx/V4/xbuvWfhT6vN4Z/uP7PmrsPiV+snYEUAAEQaAEEAAAHd35OFMb/AMy8fhDph/Ff6WM/XyT+qOjKOboAAAgqIy1AUZGa0IAJRBFH0vVojk9L6RzI/mik4r/fSXq6f109Vj/RMv8AivL1F43dHl/Xcb/ePmZHmeshSIKqAe8FVUaiWhkURpqJVVahFVYhUy7OSIctW53eTNyw1t1eenmTaHCeZibJy1I45sxNmLXbHFxWttxzLnlXr14sM6c3ok9GZhNIvAg0iSAFEEXlEEQAQVAb9ogzfdDaIMsqoh7j3+hcX22eLTHaJd3xHztzXj1t2iHtxvk6W/1V8POfb+K657a5y+QHi7PusgLs2CgACoccC7NpwgggAAADlwxu8Lnv57y12xZ/8z6RwDLoiKICj2ukxu7v0v42H1ebq/TRn9HY6pP8z51rrfxmei/AgPK9YAAAAAAAAbQQQAAAAAAABoAAE2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAlUaQAABRFAGipQWIALEtxKxmuesuekusefOOzWXZrLrHjzjnq1p1jzVmauK1UsbxrgtVwWq516cMnDNXFMacrHoxqA2CJRQaFSqKgAoAAAKrTIAIVVZS+wCKioJItEUAAerXJ8r4/kt3vSOzph7z2rjvnwZ++NeZMTE6Rh0VAVQBQFQUCUAAE0jQIIACKACrEqrCoKIKqAIKFVdKgoKDIKAgAAAAAAAADQCDUN1IzWlbjCIlGZZZ5bjUQ5YhqM5NaZlWI4ZfV+BaRfxf4Ymfd1bhfrVYdbeJy+RCtAA0Qbpivf+Wu3pcbpXIzT/ACS6a9VzvEjzb+p16cbbk+jwdBila2y6jT5Lm4/Z57Vj0h336Zqwx+bw9B1l6ndtntI6avG+qI0AlARYABCzuPQ4s6tD73h282Cj6nQ+/wBH5/xeemN/N2nyfV4/xbvR1f4TxeG/j/2fL5PVxvh3vX63HtARQAAQFJAZ0IoAADsZrbjHSPdDc+HJm/Fi6ow2ALo0CJIqEoqBFZEqwRFBKAgky+j4N/lHReocaf5sc1y1/wDSXq6S/fyx/mwzn/Z5urn7vDL+XZhf+75seZ6xUCFVkChDREahW2arQCoNwqNK5Woxl7ttRLceXNvzHma5cuCbM+Y5WRmbMTLNdMcWJliZYd8MWJllivTjOGWZlh0QGkQEQCBBEBkAQBBUBuAxfdGQoksq0jVa+aawd7Il9Jb+T7bgVrweFfLbtMw+M5Wac+e9598vV1F8uvVh8py+T4fj9p1HVbvz4jrsvK+uAvABwL3EA5DYCgAjKoAgCHssc+OfLW0uKfVefSMz4shlGokoqgij3+kR3enpPx8Hl638DJjqdv5nhwdX+NV6P8DEHmekAAAAAAABJGQAAAAAAAABoAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAUABKKqAoACiKAsKJQIgKLDQjkiXPWzpHHOOxWXYrZ1jyZx2ay54d8XjzjemZqt9XOVw2o4LUYsejDJ17UcM1crHqwycUwww7wEUURVgRRpABQAAAX3q1GQAQVWUARUVIILQCgAOTHecdtwst5MpzLHYzRW8Rkr/ANXVayc9dvl9e8BlpQAVAUXS6BAEAAVJGb3AAQUU4ORQFEFWIKqUBBoSrAoKIoICgIAAAAAAAAA0AUahqEjNbFYRmZFjJCN+zmrDliG8XHKrMOKxUxcM+r67wH/V3hr+68L9aGXXL4f7x8cI25KeX3y7lOL5/SW8Zy47M7h6u3i6ZN5h7PG6DSJrN5jT069EyfL6nxC65ZJ6vUxcLpnFv5vNG490s5ut8Hj1tGOI8z13PVox4nd8r7Lq+v2TzSyPnuZ4hz551SNQ+fyZL5LbtL5+3bdtvyfoej6PDpcPzsYVxewQDQKggACwo7vGn6UPuOm23h0+j0Xf+z4Xi0+49F8p1b/Mu9XVfhPneHfjvmMsd3FD4eXev1uPwwRGgAAAEkFCQZEUAI9YamdztfYYRFWIbiFkZtXSTAjjEbRJRpEIqCVYCKgAMjL1OlZvZ8qaTry5a2paPvddF8u3C/nw578fNp2T+l52Ws0vasz6SwxfS5R1x9ccaDIqqgKKpEqtKzVUGoiFBppGp7DkhYxn7uSFdHnsE2M8Es7g5amLMyxMsV1xxSZZZd8YwMV0iSwKIjUpKCsSAbQEZQAEAEFQG4gxfcRBElJVTb0OnYPbZ69u229c5zxcepz8mjO/k9brfJ8lMeCk+7cvlmupvOz6Rw8O1+TpsL75W2jLhy9ygvIBygIBIINAAocAIggqkQDnyY746xuNOBbOzONmU5gg0iACVUfR9JjtaXq6L8aPJ134GTpdStu2vteS59Ted2bp0s40YLscHoBUAAAAAA2gggAAAAAAADQAACbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVYKIAIKANIAChVBBQUIyCiwsCVqJcsS1GMo56y7FZdsXlzjtUs7NZdsa8WyOeG9Osea+jE1cNqM1vHJ17Ude1HKvXhk4Jq4rQ5WPTjWER1BEVdgqrGQUUAAFWCisgAgCIAjSKQRDuKALogaCI5KW8szHuly14+TJXLkpG60jdm5OWMspheb2rrjLSiwBUUBdKIiCgCCcqAAQBQABBREVVSgqCgihWoFRVEBUBAAAAAAAAAFgByADUKRmtisMyylbiN1ghfSOzWrk06x58qkuGyZLi68vrvAX9XeGv7rwv1oY967ZfD/ePjxlsbre1fSdLO6WcueOVnr6ZG/l3K7/4s925sycb0+m34HXtlyX3M2lj/qzy6zGY9oAKAJ7w+agMgAkFFHZwTqYfY9Mye57ujv3o+T4njzrr3JntL5Pqc7vZ7eq/DfJ8On7581l9ZcL4l7v1eHwxBlsAAABJUUSQZEUARQGoqJXJFW/K3I53ImHHMJTGuGUZdkJStMpKKgVYCKgAMjMt0tNL1tHrE7XG8Us5jn5cxOabx/vRt1Ybz+PJMPgxFc2glYCwqKEStKJVhtWasKtVYbZag5IWM5LtdtOfCbNieVPMzLNrcxGEdJGdiNojDaJK+wwiAkjYaQYlF9gZRfYBGQBBQG4iMX3QZAlJWe6wiNy+n6fSONgnJZ30T1t+TweIX93MPfLJ8/y805817zLqOWV5uVe3VhMNeGPyxiSjLYAAAAAAAC6A4QAAWO8vf6R0i/NtF5+jSP5rW7RqHTTh9pskeXrN86fp88739nL4h5PEyXxYONG64Y8s3/1Pml3XG7M7j2TocM8Ol1TP4u9/uJLj7vWIVYIgsPpum9sU/c9nQ/i/2eLr/wAH+8eT1Cd3ec47/wAXL6vR0/4WH0BwdVgUBQAABJSgIAAAAAAAAANAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBoRKAgAo0AAoVQQFGgjIANQJVaiWolc0S562dMXnzjs1l2q2dca8eyO1SznrMO8eLNrW2JqtjGNcNqOvajGUejDJ17Uda1XGvZrrhmGHOvRigi0WAahVjIKLAAAKsSqKgFBAEQBGiCQRCCgEKRKKQo9vot5tlz8ef5c2K1Z+/W4ddX4mM+dcOq/A2X5Tn/h41o1a1ffEox7/AN3adpQVABsGQBJQUBUkRQAFATkBAUKujSoQqoAgoAI1AosKMgvsAgAAAAAAAACwBAAG1StbNqwzMsI3CHZpVZ3Zzvo7MVb06vJaxaHWszXXB159X1/gP+r/AA1/deF+tDHvXfP4Xx4y0ALCrzUFICaUUE9wAAEkEAVQc2L1fS9Py+XT19NeMo+d1+POFfR+0i2OZfL8+dzL3dTecI+P0GPG2/V89l9XC+Pl3fqMfhiDLQiEAUAAAUREUQUEG6127FaNyOWdckUJq3w5eZiYcN2K6YOCWWHeBKVpkIrIlWCIoAgyqSCuS1vNSse+HG1bz/wknArIosRFhVqhGa0p7pVhpWaQ1ArcLCK0EWtbNtM8G0KsiJLDSA0ksoEKjbKEGZZGkSUVFBGZhBEFQkKygAL7JsFgksX3EAZQ+ax2uHinLlj6tvU6jyPZ4oxV9ZejC+XVb83g3T7XqtWHy9Xz+0cH0GQDZsDZsDYBsAAAAAACAenweLGW8Wv2pE95elzer+TB8k4k+WkfzWjtMu+GX2Wu3+K+j523Xep6nDG/Br9a+bmZlHB9L5cICIIpKILHrD6ngxrj2e3ofjy+jw9f+Hj9Xh86d5HRebd+Ll9Xq0/hYfQHJ0AAAF5AQAAAAAAAAAAFgCgAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0ACUBAAVQFABVEAGgjIKDUCVVWI3EuastyuWUditnZpZ2xryZx2qWdqsu2Lw7I7ENadI81cc1cFqJY6YV1r0da1HLKPZryde1HBNXGx68KwjDqKCqIKsQVQAAiVVbQEoAIjKwRFVJUZUi1QQhSJRYaFdrhZ543JxZIn0tC4emWN+VY2Y+bXnj85U5tfLy88e7zTP4usX4qYXnXhf6YAosA0DIgoAIKSgACiAIAAoKNIAAIqiUCCiiwoyCwBAAAAAAAAAAQFgqlGxmhMnLLMoNRyVh28dWsZ6uO2uzFVmHV5eXBZ1bsZPRrcD67wJatfF/hnc+vVeF+tDm75TmPkBGgBQRVaQAAQAAWACACg5Mc93s8W+tO+m+rydVjzjXvUy/4bx+ZO9vbtv3I+T02Pl214WT1cL5l7v0GHaIM1UEUQUAAABJQUAG612pbxK7VMbsRR1xjyZ5+q+VmYGJXDZ1rsV6MHBKOb0ISlaZCKyIsERQAGREiBQUVSoBBFUVVSqolVoZIbhK1GoWAbBoAAX3RJhFREGZgkAlG0lEGZQaiSzIqEl7Akp8hmYZFogjIKJIvsA1GRiggibQV7PDiMWOby8rkZZzZLWl2z+DHF5NE82/Zn8pw4JRw5e2ohyiDQKloCcgHIByAsoooACxrcA7V+Vaa+SvaHVLeWdeHklRE+TSAsBBBBY9YfWcKk3wRWPW3Z7+g9csvo8HX3jDG/m+d5sTHIvE+6dOo8e38TP617NX4ev6QGGwAAAAAAAAAAAAAAAWAKAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAIAgAKoCgAqiAQaCMgoNQJVFGnJWWoxXNWzsVs6x5s47VLO3Szti8OyO1SzsQ74vDnGtOK1VsZxrr3o616OOUerXk6t6OvarlY92vJwTDjcq9MQRVUBYWIqqgABBVaQBABkZWCIqsyoikWqCKKlFVFIIOxyLee1be+axt11vdnD0xkAVWgAZAAWgiKiwKSiAAocAACigyAACwogsEBVSqKgEAQAAAAAAAAAElBVVSjUIzVQGVgV2cdXdpX0dsXk21zRDNm3ml9XVu6l3PJ7NbifT+Cv6w8Kf3fhfrVcq9E7x8uAQ0JSFWIiqAIALCAAsAABIUG6PT49taddTzdRPu161cnZ0eRbe3rzvOMfO1Y8ZvHyerheC932MO0QlGkEBEWAKAACMlUISd1cta7drHj26Yxw2ZcR3aY2/K7cPFcvVmYcNksawrr3dW8uOT2a44Bh3RErSBFZGWhABKAgzCi1BRVKgEAUUVK01BEqqMkNpWo1DUAoNKAiMgbVUZRQBIRGozKIICxArcREGZSC+wiDSIIyCo7ebh5MPF4ue/aubzTX7YrK467lM7/ACzljLZMMtc/mvEdRGI6iLREQiOXBTzXiDH1yZzvGGTvcvL7PHGOO23ktbL95z6bHjXz86jLk9AgAcVQADmIBzADmAoKNTsgKAAgBKXvBBPdREABun80PsulajLxIn09rR9Hw/4/+Hz/ABH4I+V5875eef8Ajs6jxbfxM/rXu1fh4fpgObQAAAAAAAAAAAAAAANAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsKAAAyAACjQAKogEGgZBRVEUVFWJaRy1lz1s1K45R2K2dulnbGvHsjt0s7dLejvjXz9kc8LNXZ5uzitR17UYsdsMnWvR1L0cMo9uvN1rUcFquNj24Vxow6igqwsRRUUAAFIKNMooMjKwBRASFUBgUbZGlAPcXe0VFAGj3SrAtRBBUUEkqgigAIKKygKoIACgAgoCqDQlBfZAAEAAABYAQBAAGRYqALAKsCCCQclIUy7O9io7tKO+MfP25erflcN265Y93TvLp3cMnv1ON9P4J/rDwp/d+F+tVzr0TvPrHzAIsKIK0iaUAEFAQAABQAQGqu/hn0dNfdx3fC79bS4Ms+r0ZX0eLCffedkdd5cn0cOxpWW2RAQARQAAGCrByUrshfSO7jxO/TF9jvhHz92bsRQmrq8nm9XBaHWuxk9Gt1Ly6lpefJ79ccYy7oiVUQVBloQASgm0A2KEqCoUIWIKoCxK00M1VEIbhK1FaiQa2DSiCSiAAyDSICKjUZliUKhIqKNRJNTrekVie6AiAkoDMg0tKzkyUpWNzaYiHt9d5EW5OPj017LjYq46f9PV3wy8vT7v6rji82c8/U9P/Tjlk8AeaenL1UQtVWZVUd/j1ilZtK4T1rhv+Hj5ulmyTkvMy4mcu7thOMcYzIw2wuwNoAAujQGjQAAogLKijUBEtAZUF9xCSiCAA5McbvV9bxLeS/E+zJT/ANX0Oh9PNXg67+CPmObHl5WeP+OXVeLZ+Jn+p7df4eH6YDDQAAAAAAAAAAAAAAoCgAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBVQAAEAQAUaABQSqA0DIKKoiioo0VqHLErHPKOetnZpZ1xry5x26Xd2l3fCvBtxdqlnYjvDvHhz9KTVxWotTGuvejqXo45R69efZ1L0da1dOFj368uzr2hxuVeqIIDcAoqAooAAo1ygqDIioIGwEVoBgUbZGlgAAIoo0KiwKiDIooICSIooUAAQAABRKLoFRQUABVEoKgAAAAAAAQBAQWG0ABRYEVz042W8bik6akuV9GMs8cJza471mk6lhO14/NcbLJViHaxV2s9axsvEenhxu7FOz1YT0fJ25+rFodTImTWq88PPyy6cz3efJ9PV2R9R4K/rDwp/d+F+tVh2nefV8uCLCiCtIAAIKAgAACgAyDcO3jlvBz2dnbrZjJLt7PJJ950ruBwyezDsDLaACSKisqgAKCIRqtdu5ixbmG8I5bcuJXp48Xp2dyuN6sY+Ttz9WvI4rQtjGOXNdW7pZJcsnt1Ts6WSXWmXmr6GE9EZR1htGWoIvsqDKiACUEQDSgSUIVCgsFFAGWmlSqe4RW4K1BpBYaFgJVEQAGUGkQFNwjUZSUVlkAFiPc4/BjJ0vNyJn+WdffMuunDzZZfpry9ZturDXZ754x4fvn75ZcXsnrGUBEBlBY7fA1HJpefSm7fh6OvlyTly3vadzaZmZb541Sf1MSc7rfykcQ4uqICCtNUjdnPmyeWsUhqXiOOU82zGOkbZdmJGFQAAAXgA4ARQABVCiNRAS9xDaKu02KgqAgAObD/m1fRRfyRit9Vol7+lvGGd/N4ernOet4HMnfKzz9d5dZ49n4mf6ntw+DD9MBhQAAAAAAAAAAAAABoAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAASgIAKNAAKFUEaBkFBRK0KEK0lVqJGa5ay7FbNxwzjtUu7dLu+N9Xh24u5Szt0s9GNfP2RzxJNXR5u1cVqOtfGxlHfXm6mTG6d6OGUe/Vl2dS9XBarhY92FcYw6jUAosSqKgoAAqxKQHsIIqDIAJCtgQgorKwqwAAVFUDawqCrUESinvAQECqoiAAAAACqIaaVDRpTlBBTQKCAAL7AHsAAACAAm1FoyEAUAFgR2uJSMmatX6Ni4mDFirSMdfTvuH0uh1zKZ2x8Hxjdlhlrxxr4bq+KuLl3rEdol5Lx7Zxsz+r63S5ebp9WX9MclI29PBTek1z1Z6jLjGvWxY+zs+TUPZjPR8XPP7zrZI083LPq5ZvVo9eHm5Jdf63lyfWw7I+q8ExM+MPCv934X61U+bb5UQWFEFaQAWAQAABAAUAEAh2cctY92M+ztVlLS6vNx6urdwS5ZPVh2BloAGRUGVAAAWI2o7mLFuXq4MP2O+uPn9Rs4j0MeJzeR6cY+TnnzWLRp1ciZe7pr7x0csuhkt6vNk+npnZ0by4nCvoY9hlGyUZagh7LEEUQASiCAKBKLCFCqNIAArLUNCUWJAbgqxWoQahRoQAQBBlJgahCC+yIys7CAk92JFEFh7n28aweGKTP8Av229XS/+df6K+X4r6/sePz3Yx8OjyPrRlJFRAZZBql5rFte+GC+shJ3ZGG4AREVXLj7RMuK9vNMyt7RjH4rWEY5dEZQAaDYAAAAKCAIpsBFlDZvYCIAKAAIAObBG8tXtZ5/w6/c9vT/h7Hj6j1263j8qYnPeYdd5c/jy+r14fBh9IDCgAAAAAAAAAAAAKAoAACAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu1gogAAMgC7FAUFCqsDKggKCiVVAVuAoy3EuWtmpXPKOzSztUu64149kdzHd3Md3owvZ8/bi7lLOaHeV4M5xUmHFNSwxrrZMbpZKOOce3Vl2dK9HUtV58o+lrycFoYcq9UFQqqqVRUFAAAAATaAiBs2KQrSCk9wFZaFAIUVUF0QUX5MrAtEGRT3qCACFAABTQGjQKCLAoulEoCICkKIAAoBQEAAFAQTQKigbQAFTZs5DbQO5wZ1ycf3w/TYntD63h/w7Pq/N+N/iafo+C67/tuT73iw+fv/ABs/q+z0f+10/pjuYqbl7XHxN6p2ebq8+I9fHi7ejd6ah7JPR8S585PNzx6vIzT3l59j6nS+vDzby4Xjr6+PYfY+A/6v8Nf3XhfrQQz7f3j44RpYUQVpABYBCFAT3gIEAAFEAc9JWd2cuzsRJMurhx6uCzgcq74gjUAEASUZaAABYjbt48TeM5rlsy4j1cGF62LD2h7NeL4vU7PV3Ix6hLV078PnzLmurd0Ms+rjn7vbp9bHm5bPPyWeTOvsaJ6R1JnaOL2og0SjKwZKsE2igAMiKAgABCgo0AJBVRYVEqiitFWNKg0o0qACASKyiEQFGJZaRAIJX2VhEWHrqH2vVZjD0DgYvfNd/jL09PeMOo/Q+X4jOd/h0+e7n/iPimXlfWRBYkoFZlkVEPke1RNsVTYqxkFamdRpkt7JjGEYaRBQFAAAAAFQRQQAAEAVAAX3AUBAEdjjf5kPT5NtY3s0+mnN5N3ru1vHyT5tT9jDyXu9cBAAAAAAAAAAAAABYAoAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBoQAAGQAVYAoAVpYGVBAUFEqqAQ1BRWWmokiWOetnZpZ0xrzZx2qXdzHd3wvZ4NuLu0u7VLPTjXztkc8dyYb45ebtXBarq5MbGUenXk6OTG6V8bz5R9LTn2dW9XBMOFe7CsDDaw0FUaQUAAAABEoMosBRYVfkgpPdKCo0ACxKKoQ0sSgnyRYGqIMinvUEBYjbcQqUmGEpEEVoVABUBrRoTlQQVeE5QRQAABYAUBAAAAAZFhAKAACCA1BEdriTrPj+9+m070rP1xD63h/bZ9X57xv4tP0r4fr0f+93eNjrt4t/4+f1fU6S/9Jp/THqcbFMzHZ9JxcHp2ejRj2fN67Zxy9WuHt6Ovmrrb1ZTiPjYZ85vE5MvDz27y8O1+g6SekefZh5H1p2H2HgL+rvDX914X60ETPt/ePjxGmhYyooAVYBCFAQBAAACAKmnLSViZOaJWZbcbPVxS42a6RkZaAVBPYSURoAFiNqO3jx7epx8E9nbXi8HUbOJXtYMH2PRri1EPfhj6Pz+/ZzlW5o6+Ts1XLXea8/LLzM1nmzvd9Xp8ezyst3RvZ48u77WnH0jiHN6EEaSUFSUSrEEUEAQRQBRFKtAiKKAIqqiglFBppKqw1ArQNewCAgMyijIQQUZRrvBkBJFnaoHss7pWN2r98PrOvX/APdODTf8uOr0afwt/wBHzusnPWdBPlla+QgeV9MlkWMgrMolIyhFrMifMQlBEmRU2bVWRhpkFAAAAAAABKALsAQQAAUBQAAAR2eL/mO9yZ+g9mv8HJ5Nv4+LyB43qAAAAAAAAAAAAAWAKAAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0tAQASgIAKNAolUBVKlBUFAURRYCqlWFGa3WXPWzccs47NLO1S7tjXj2Yu7ju7tLvThXztuLt1s5od5XgyS1XBaiVcMnVyUdDJjcM49+nN0clHVtV5rH09eThmrDk9CqC7AqioChsBQERkEFBYLCiCrAFRVEBYlBRYaEoKgICrBQEQHLWHNFW45ZVx2jUuGWb7t4kLLLSioLAioCggqpWhUTTKVYBFAAQAAAASQUAEFAAAAQQUUdjB/nU+9+n4/wDLx/8ALD6vh/8A5j8943/5P93xvX6/+8vJw03MPJun7/P6vf0uX/Rav0voeFg3p9TxuPqsbh7Onx7PgeI7fWu7NI08vlRrb0bOz53T3nOPmuVPq8HNPd8vbX6zo56R05R5X0x9h4C/q/w1/deF+tCxM/h/vHx4jTQsZUUAKoIQoCAIAoIBAFG4WJXJCx3mIbc6l48suJnLu1j2ZGWhJFBPYQRYgKsRt2seNrHu57MuI9TBgmdPd4/Hnt2e7Vi+J1e3u9bDg17nZ8j244+j4OzZzlXDeNPPzTqJc83fR62PJzX9Xk58jxbK+702PZ5WS29utLyZPs65xIDLaCVpJQVJRKsQRVRKCAKoAAlABRRUEiqqLCiIA2qVWtKK0CqADIiCogREFBGoMSghIs7VIF9lndrF3yY4+2Ht9dv5rYY+qsO2Hpp2/WPFvnPW9L+UyfPDzvekoLGQVlEpGWSey3uiMqMgJIRBVElhWQaAAAAAAABKAAEAUAAQBQAAAHZ438ztcqfovXj+Dk8uf42LzB5HoAAAABeADgAoCAAAALAFAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaWgIAJQEAFGgUSqANFSgsQAVYEUUFaSiojUN1lYxXPWzs0u641588Xbpd3Md3oxr5+3B36Xdqtnoxr5uzFzQk1h0eeXiuvejpZMbllHr1Z9nRyY3SvjebKPp6s+zqWq4Zhwye7GoMtjUCVRUBQAVAEZEBQhRVAVUBUWFEBYlBRYaEoKgIDSwAEQHbx027kY+zvhHk25+rpZY1LruWXeu+HwwVhtRUFCgIAK1EKlVVZRJgWMCRoABAAAABEGgAAAAAAQQUhR2MH+dT736fj/AMvH/wAsPq+H/wDmPz3jf/kf3fJ9ejfIr90OjxMW5h59s/f5/V30ZcdDq/S+v4HFntL3611p9HVjxjH5jrdnn2VZeLzp1Mmz4WOk9dkfJ8u3q8LJO5fJ3d37PpJ92OAcHvH1/gP+r/DX914X60EZy7f3j5ARppVjIKCwFAQAAAAAQAAG4C9mnY41fPlpDpj3x+rln6YZX8nJzcXks6MmycZZGnLza8azKObqgKoDKIsGogK7GPHt6eDDuXbDH1jx79nEr3uNx3ucfj6j0fR1YvzPV7u7vVxxEJauoenh8qZc10c0+rx+Rd5tt7vqdLjzY8XPk9XkZsm9vBsr9H02HZ0Lzth5X052E2NCJVQFSUS91iKioMiIK0NIAAyCqAqVUUGhFUQFosNxLNaaUUUFASUSrREIAqBWoiIrLMggiwQacvH/AM/D/wA0O71O/tMsfc64+mrP6vHsnPV6r/RXlsuL2DIIgqSz7masZRFRkBJBJRWgT2GRlpAVkWgIADQAAAAAAIAAoAAAAAA7PG9Zc3Jns9WP4VebL8aOgPK9ACAAAAAAAAAAAA0AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAADILBRQUKoIsKICxAAhqBFABqCgy3ETO17wqNxLmrZuVyzjs0u7mO7tjXi24u7ju71LvThXzNuLuUs5HePBl6Vm1duvejNbwrpZMbo5cbz5x9HTm6GSjq2q82UfU13s4phlzdxYBpViUFQABKBEbBkIoKNAgoAqNAgLCgqLDSpQgp7KggpAARusdydy9q9Xi4ptMPRzYZpR7sMPucvk7tn72R4WaO7re94830dfwwGW1VSgIACwQVqFZqtKzSYZ0DMwwzW4CKAACAqgiIKAoAAAAAggqqjmw9slPvfpnFt5uPin/hh9Pw/vn9HwfG593TfzfPdZjzciPuhvp3Gm0x2Ljz1Gf1crs8nQ4fR9lgxRSsQ7Xle7tH5bZnzla47Pneo27y57fgevoZztj5DlX3MvIvO5fI2d6/bdNOMIwOL1D6jwTMx4w8K6n16vwv1ql7VXy4I0rTIAKFAQAAFAAGQFQBoGnpdMrvkVddXrnj9Xn33jTsv5O91nD5LPnWuonGzJjocvN0+FSUcHrAVAERFixDs46bakYzvEejgwzMxOnucbjb1L2asfWPjdZt4lfRcfja09Csah9DCcR+X3Z+bKq48s6hu1yx+KPIz39Xh8nJHd4t1fc6PD1jws2Te3mZL7fOzr9L0+HpHXSXJ7YIKEpRERUEaQ2gIgEC+yjSAAQgoCKqUVQIEaUQAWGoSq00NCgACMiILDaCglaiJIrO09QQRYkoK5uP8A52OW+XfzZZb/APLv1eez/qMb8sHVSXN6WEAQanqkspRGJZUZASRWRVElL2GRlqJJsVBaAgALsBQAAAEWAhyAgLsBQAAAAdjjest8mXftqcL+NHUHB3ATgBAAAAAAAAAF4AUAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXYKAAAIAijQKFUEFEUIgKCxIKCKKgqju8fH5nLl486enHDnXy8mW3jbw6PeszEtxZwd76xzUu7VLumNebZi7mPI7uO70YV87bi7+O7t1s9OL5mzHiuRiYbcZeHBejo5cblnHs05esedlxujery5R9XTl2da0OJwr249gRVVYUFQUAZEc2KNxeVx7mfw1wAoKLsBVEBUXagCxKCorREoFAPkgqwEAc+Ku5ax+JnO8Y19b0viTk1OnZ6nh9lXT6+Ovjp+X5rPd5utmL4/P6y6vvfJz7v0Wv4YKw2utCoAAAolaaVlpWmQBmYccwlaxZGGwAAZUUAEABQAAAABNCCtKlarOrQ+66VyojjatPePR7eiy8uy/R8nxbX59OP5V0+RvPyZnt6vpOncfy0iXr1TnZnfzfG63PydPhh+Ue7Sjkmunot9X5zLL1dXJ73yXUsn0rOW6/cfV8NnOyPkuTfvLz5fIz71+20zjCIObsPpvBX9YeFP7vwv1ql7VZ3n1j5kgRpWmQAaCgIAAAAAIAIA0DTv9Nt5eRWfth11/iYfVw3znTt+j3+uV3WJj3w+Pder/Fry+GXnpsUlHlfRAUSQDSe456U3p6ODDvXZ2wxeXfnxK9vjcfcxuH0XF40RETp9DTg/Nddu7x6cRpp63xLUdTkZNQzleJXTVOco8Dk5fV8/ycu5l4N2T9L0Wvs8bLf1dSZ2+flX6HVOIyjLtEBQlkRJW9mkGVRGQBQVFAAoKQBQAFVFCoqiAQWGoRY0sDSgAlBEBBUQUgStRGZBkiJnYQkRud6koDeKdXrKZZ3eZXnjH+7nx+95/pcZLLqwgfNEGsUlkW90ZYokotVEIRAUSfRKIjLUSUFAAAABYNJtA2oAAyvsAgAACgCgAADsYDPLvPw3H/zXXHB2AAABkAAAAAAWAKAAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAlARRoAFUQWBFBAUCAVRBRAag9LiXiJjb3LYa5KRMPp9NJnhY+V1VuG2V4nJwa3qHQ9JePdh5Mq9unPz4RuJc9bucXOO1S7uY8jvjXh24O/jyO9jyPVhl2fL3YO3W223WPDlOGbQ6t6JlHTXk6GXE8/JjebZH1NOfZ0b0de1Xnyj6WvJxjm7Cgqx6rEAqIIqO9xq7x5Z+xvDu57bxh/eOjIjoADQUBFCJRVRQBYaQAVRKAgqwQBXocXH5rQ6avXKfVx33jCv0Xp+D2XHr21Mw8/rWorV9/bPL00+kfj9Ofn6/n+p8Lnn6UuvL8/n3r9jr+GI1DLdex1PFh9hweRhrr2lbVvH211+7x3bfj5dt+XEs/vHDpssstOPm7y2X+14BxdgAagSq3DUYrTUQ1GaujQjMwxMJWpXFMIw6QCqIgINKgAAAAAAAABoFhRFr6w9rh5rRGnfTeMnl6rHzYPf4OGcl96fYYMeorD6mmcY2vx3iWz73lelTH2ZyRpuXu+FMuc3mZ7eWtpfEdRyd7OXUXjCP0XhOPOb5jNbu6z5F71+y1zjGCI2Pp/BX9YeFP7vwv1qpezU7x8ysDKwrTIANCUAAAAAAEUBAVViGnY41vLmrLWPefVjZOcMp+T67qUe04mG//AAviZ7TMPR1fxz9LweF/hZT5ZVlHkfTFBAVNOalNysnqzleI9DDiezxuPvXZ6tWL5PV7OJX0nF40RqdPWrXT6WGPEflep2ebOt6GnlcVp08flZdb7sbLxK9nS485x83yc3r3eFmyb2+Xty9X6zo9fEjzrztxvJX2Me0EGogKDIyF7NIIqMsrBQBpFABkFUQUUAFZVYQUVFCCtQjUaVFFOQEEBYgKiAiJWoMzII7XHvFcHOj/AFYoiP8Azw1r9Mv7VjPt6fOOpIw7RAVNzAJx68pLMI1ysVtae0PQpxfoTOno06vP5nm37fJxHn5o8uSYcMuGU4yyenXeZjURlr3RlmiSyAyRYCqIlElGWoMigAAAACoAAuzYCAAAAAAC7AUABzYuyZZdefuOf8biHJ0AAAAAAEAADgBQAAAAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF2oAACAIooCiqILAiggKCxEyACLCgLCxG6Xmkvf4XKiYiJl7el2eXPh4us1ebDl3M+Kt43DweRgms7iHfq9fMuTzdHs9ZjXSckWfNfSrmrZ2aXdcXm2Yu7jyO9iyPThez5u7Du7+O7txaJemXmPmbMeK2VpFpnt/uz+UNSc2OXPHLpZKPPy4/Vxzj3aM+zz8uP1dG9Hlzj62nPs69q6Yca9cVUFIAFogij1eFXfHzz9jpr+Jw6i8a/7x5c+soy7AA0FARRUosBVBBWkFAUQBBVggUbpHd9B0rD58tI+uXo6ac7Mfq8fW5eXTnfyfo1MflxdvSHy3XbekPv9b93RPpH5Hw6+bq5XxOX1cMvzWXd+2w7YkDLT3OLPynpXNwzreHy5a/X27S8R6N3rjov9H+K8+jmZb8faZ8z+8B53cAGoVK1DUNRitw23GK1ELpeGGZhxzCVrGuK0OOXKu2IDQiKgKAAAAAAAAIAoNAy3SNy9fiYpmYdtU9Xl6nLy4V9507j+SkTMPo8GLeuz7E+7hI/Adfs52Z383pxi1X0edn97GN5r5eq85vC514rjl8Dzsm7T3ceqr9j4Ph7vCyTuWHy73r9Xj2ibRGh9P4J/rDwp/d+F+tUvZZ3n1j5pYGVhWmQAaEAAAgAAAAASQaFZGq/zQs7ntX2kf43S4+ur4zLXy5LQ9XVdtd/J83w70y6jH+uuNHjfUAAButdu9hxd4dMI4bsuJXtYOP3h9FxON2js+hpxfnOt3elezSuojs5Ih6+z8/lea1LEkSOlycvkrMbfM8vP693n3ZcSvsdBr5sfPcjLvbysl9vl53l+s6fDiR15Rxe1AVBlUBUQWAioyysFCitACAyLA0BAAAKyNQgoqDUIsGoFVUqqqAFESRYiCiACVqdklkVJSJmNxHvE49Te0RtNgokyDMt1pa8xEQYy5WfVLlMJa9ji8Oe3Z3eTbFhxeWJjen2NeE06bb8nxNueW7fjjj83zGa0WvNnC+Plecsq+7rnGOMZZlmte6DJWUFQkioKIqUYkZbGQAAAAAAAAAAAAAAAAAFgAActEvO5b/hY/iYGGwAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgASgIACqAoqiADQMgoO3wsftcs0+ustYznKRjbl5ded+UcefHOPJNZcSWcWwwvmxxpCooqwo5cWSaS3jeMmcpMseH0HE5UTGplzZ8MXjcPr42bdT4ucund9Xk8zg5sEUyeSfLaNxLzYfM3arq2XHL6x9TRsx265lLy3EuetmZVyjs0u7uPI7Y3s8W3B38eR3qZd6enG9nytuDt1tty0trf3TH4u+Pd4co4bRt08lGMo7asuK6GXG8/LR5c4+roydK9XBMPPk+lheWBltpPeDW0EBVHtcD/Y+TLpq+L+1ebqvw5+vF4sjD0AAoCiKKg0QoCLA0goKDIAKsEEHNjjvD7boOCJtFtekPf0GPO7B8nxbPy9Nm+1yx5MNI+uHwvXb/AOJMPs+J+mvh+b8H+91Er5C/q435qv2+PZRker0bJFOdSlp1XJE0t91o087LjnFkvSfWtph6MvXRr/LLKOGPp1Gz88Ma4x53cAGoVK1DUNRiuSrkhuOeTcQ1ptyqTDFqpWsa4LQ4phyrviwMOggsQFAAAAAAAAXRoTlAGgR28NNzD6npfGm169ns6fHnLF8nxHZ5dWf0fc8bD6RD6fgcScsxqHv3ZeXGvwHUW7Nkx+delzsMYsfo+S5Mx3c+nvmkv5sYY8buHyvVcvlprb4PlX3MuPV31ftvB8P3crzJZfPfo4CA+u8CUrbxf4Y3Hp1bhfrVEyvE5/N8mQDUK0yACiKACwAAIAAICA2ish71ivs+lW9rwstJ+p8tzK6zWevf66dN/J8vo/Tq+pn5uoPH7vqkEiDVY2Qrt4sfeHscfB6du70a8Xzuq2cSvouLxvTs9zHjisREQ+lqnEflOr2ebKueIbbr59Ylw3tERMrG8J6x4PM5Hae75jlZdzPd4d+XrX6bw/VxI8TLd1LS+blX6TVOJGBl2REaDaCCxWRlpBBlEVoBRURQoAoqUBQVKqpUAFVYgIrTUCwVKqiAAiCxAVNkhGdm0qwYGiWQTYiz5ANIA7vF4HJ5UxFMUz2mXs04FcOW9YtForPq+j03TWSbMvm+X1fV48/Z4fy+reflUw08tPV83yM85LT3XrN3bCfI6DRebsydRHzH14yjNq+6IhURSMgoADFGfeg2yAAAAAAAAAAAAAAAAAAAAoNRJK+ye6CKAAAAAAAAAAAAAAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0ACUBAAAUaFUQAVRKCoPU6Tatedh83pMt6/jw/U5dR+Bt/TXf8AEHB+S8q2o1D51vfh5duc/Nw6HZ9r0urL8hXF61BFG4cObFltSY7vf43Ji9YiZezpdnF8rwdZq5nmk7PStyrzinFlj2mLWo83eab99XhZ+FivaZw3iN+kW9Xq6rGbcZz8U7PJ0mV028fDe8eZelsdpraO8ES+X8Nr6vxTlzVs7NLty9nn2Yu5jyend38eV6ML2fO3YO/jyO1Wz043l8zZh61pxXq1XPH0rp5aPPyUcM4+joy7Ohko6d6vLnH1NWThmEcnpAABRRHvcKsTwOTr6nXT8V+jy9X6a8f14vCkc3pAUAVRkUBViVQRRpBQUGQBRQIB2uPXdo7P0romCK4qz9cvr+F487o/PeOZ8aOH1HU8MYa4K77zSJt98vyzrF/Nmu9/i/pzHyfApzttfNz6o/NV+0gA3jtNL1mJ1MS7vUY3yPax6Zaxb/q6T8HOfLKVys43YX542PPHJ1WASgo03DUYrkq5Ybjnk5IckQ6OGS6YmokrgvV17Q5ZPThXFKObuiIoCgAgKAKBoE5NAcqCAsBqsbkiV6vFxbl930vjeXHW2n0ekx9eX5vxfZxrsfXcLB5rRH1y/UekdImuGLTTu4+IbvJjJ835bpNX2/U5/lHg+IIjHOo+uX5/yLd5ejovwsb+TFn/AFWyPiOsZYm1u743PbvLh1V+/X7nwvDjTg6co8VfZBBX1/gL+r/DP914X60Kmfw/3j5IgGoVpkAGhAAFgAAQAAQCAbRWUFV9R0C+5yU+uryup4/Jnl68/XpsL+b5er7viG6fOPMR4/d9UgkT3aiHZx42sXPZlxHrcfBvXZ7/ABeP6Tp7dOL4XW7eJXv4cUUiO3d2oh752fmtmXNtcmiUcHFaXm8rNqJgyvEevp8PNni+V5ef17vAz5NzL5e3L1r9f0WviYvNvZxPHX2MZxARpEStIIoKMks1pBKMkIqigCClABRUoCiqgqVBQFlYiKnuqtwLBUqqIIAgKiCokhGRPdqG2BVYAVFhtBpNuxhw2tO29ePmyc9uUxxvL6DHa81rOS3asaj3OvyebFYmIl9XLZ9lrfGw1fa7vyjwcuW2Sd7cD4+eVzy5fcwxmGPEGUdYjMsCerkyY5xxSZ98Ss9Zaly4yxnzcMoKgKICjAwSNxkAAAAAAAAAAAAAAAAAAAAAAWFAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAEoCAAAo0KogAAKqsjlw39nkpb6piVl4sTKc45R971mPnDpPE5de8xXy2+zT8/ns9fWfHjl/NjK+V4ReNGeu98NmURYeN9VQAhYK5sWSaS3jfLlK55zzY2PbwciLxqZM2Lcbh9Pn7TB8vj7LY8jLjmsuB83KcWyvpYWZYxyRLlrYjOcdql3cpk9HfGvFtxd7Fld6mR6cK+Ztwdqtmpns7PFxxXBeHSyVc849Oqujko6GSjzZR9TTl2dW0OGXnr3YgjQAo0D3uH26dmdNXxX6V5er+DD9eLwbesjm9KKKAAI0QIqrEqiooqCgoMgCigR6nyHq8Gk2yU+9+tdC4k58/D48dpyWiv4vu+E4/f5r8r47efJh83f8TX8nUeZj3GsVpp/wCTs/HuoW3ks34rnzk5+CYcZ5PGkfAr9WLEbWC6l2ckzk42KZ9aTMfi1jzJlL7xjLjnC/KuoMerawCAI03DUStw5atxyyc8OWIdY8+VbiqTVqxzlcNqureHLKPRrrr2hxuFeuIiNgAAAKgjQIAAAACwHYxV3K492M7xjX03TcHnyVjT73i4teWH1un+7hfo/G+MbecuH6P4X6XPK5FN17P22em/I+Bua6nUw/PeK7LlumM9uF8D6a3p926z5vwnxNmi3KyPz7l31W87ff6OcaMP0vi4fe6rb+t+edRy7vbu+dyTu0vDvv36/oHQ48asfo4R5n0ABX1/gL+r/DP914X60Kzn8L5IgGiGmVAWAQUAAgAFgKIgiiqjSCCKPa6LkinKq5ut01ktL1z16bj5V8zL08Rx/PF8+PI+mLEbFdjHj29LBh7w7YR4t+fEr3uLx967PocGKKxEy+hpxfmOt282x3YhyRDvXyMq047Sk7pHVzZYpXb5rmcje+7lty9H1ug185cvnc1pv55+p4+S29vl7PZ+u6bHiOrKPO96SCiIqIKqCojKgyIgosKG0KKpUJUAUAgNKgIihUABoWNQo0CD2emdE53Vq5J4mG2SaxMzEPLzYb4L2x5KzW9ZmJiXTLDy4zP5uOG/DLZnh/FHHvaOTsgKiCoe+RYxKMrRkIbQUBsIjZ7ldrDh3MTMPSp5MUPdowmE81fO6jO5WSOryOZ7qy8u1ptPeXHft8+X5PR02n7PHm96yxLy160EndqMpKDt8Hj25PIx0iPe9Dr+GvG5WPDHrSkbd5h/0+eX9UeLPbz1+nX8sLa8CfejjHuAEVKCSyRlJG0AAAAAAAAAAAAAAAAAAAAAAAAWAUAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUAAAAZABVAUFBQQAaFZAV954bzfK+Fy+DbUzMbpE/W+O5uGcHJyY5jUxL2bvvdPoy+uL5HR/u+v67V87M3UIeN9ZVgRQFga7RHLjyzSXsYc8XrG3r6fP2ePqdfP3kzY4tG3l5KeWTfj7xOnz9JHE3EvNHpsc1bOxS7pjXDPF3MeR3seV6Ma+dtwd6mR2K2enGvm548UlwXgyMO7p5Kulko4ZPfqvZ0b0da0PNlH0tdcYw7CgCg93iT/+T80Omr4r9K8vV/Bh+vF4U+qbc3pNiVVFBQUgZUIlaGkUVBQUGQBRRG6+p7wvavouk4vNmq/oD+HHTvlvXcU+yrkjBX2k1tG4mH3+g+7p2ZW8cY1+U8S/edbow/OPz/r3Im+Tm5Z7TbJafxl+Xcu/mvLj4nl9/h18Fx+7lfzdAfIfoxyYpiL12Y/FEvavo6cPFmxxNbVjbjnplvJeI97616eZyWfJ8idVcLZl83nW4GTfo69uNevul4M+nzxe/X1GGTinFaPcz5Zhx8ld5lKggQ3BCtw5qy3HLJz1c9XbF5c3PELNHV5+XDarqZKuWUejXfV1bw4LQ8+Ue3CuMYdgAAAFUQFQEAAFoCC1jcvT42Pc1ddc9XDqMvLjX3HSePqIvMPtencecuWlYjvMvq8zDT/Z+B8Sz8+3Kfnw/pTwF4eiOPHIy07TPv8Aqh9X4vmnH6dM/wAsal+V2/f2Z533yj9p0fTTpfAssrPW6+X8ndYz+05GWfdNpfD9TzRTFMfW/U6vuaJ+l+G6DHz75fnna/PeZk3aXk2nu+VtvNr+h9NONeP0ZHJ6QgFfX+Av6u8Nf3XhfrQ0zl8L5IhBpWmQBYBBQAAAFgKIgiix6rErQvsiAO3wreTkUl7/AFivnpW8e+Hq1eunZHzeonl6zp8nyyPK+kmnPjpuViZXiV6OHFt7XG4+5js9erH1j43V7eJX0fFwRWImYehEPoYziPzG/PzZVzRDRXkrMz2cF7ajY3hHiczkdpjb5flZ97ePfk/S+H6uJHW4kRmvmp/wTLwsk/TtDybZ+615fO2Pv9P6bNk/KVxI8r2pIlVJEaRlRUSqgigyMixoAAFUZFBFUAFVWRYQAqAAsDTW12KKg/Wf4TeNsfg7rk5c2CmTDyKxiyxb3VmX714v/hJ0LxvhjrHhLk4IzZtXvh8/+r3zMy9Es8mNs5x48uX5PBlMruyxnxy+bD85e8fxtz+Lfhc7lcW8xN8OW+O2vrrOnVee97HuxvMl+cZEbRAQ2EYmU2y0myRfmiCw2DREbl2cdIh01481x2ZcR2ZyVpV1MvIm/aHbZs8s4jlq1+bLzV1ZnaS8lvL2IyyqIdqsqInzH2XhvBXBTPz80f4eGsz98vlebyLcvlZs1vW9pl6tt8nT6cPnzk+b0v7zr+s2+2MmE/y6g8z6ibGeVRS1BnaLEQaQAAAAAAAAAAAAAAAAAAAAAAABYBQ47BsAAAAAAAAAAQ2CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6A0aBQAAAAQBBVgCgoKCACiooI9bo3Mnh8/Dkie2+71/E/DinInPjj6N9WifvevD73S5z+XKV8nb+58U0Ze2zXcb9Y+SIeR9ZVEAFFFcuPJNJhrHLixjKcyx6WPN5o9UyViz3c+fF4eLhm6F6alh48pxXsl5nLUWctbErOUdil3bx5PR2xrx7cXfx5HcpkerGvmbcHPFmZbeeTiuC7qXhzyerXXTyVdO9XnyfQ1V1rQjj2euGwVAVNy9zizrhZXXV8V+lebqvgx/VHhz6yOVej2FQUaAIirAigNCsqNIqiUBAAVRHLjjcws7pl2r7HoeKfaRL9m8M9UnpHA61lx6jNl40Y6W3qYi06nT9L4dr+005S+8fivE9/2fV+f5T0+tfmXW8usU7nvMzL89z23aXzPEMudtfX8Fx408uuPnV9wEg7NOTkpGos56dQy0l6MOpzw4efPpsM+XPHU7+8nn1t61dv2rmOH7J5b6OG3Jpb3OC2SsuOeeNdsNeWLhmWHCu8VqArcOWJbjlk56u1R2weXY7NYc0Ud48eV4rE0dTJRnOOmvP1dHJV1Lw8mb6Wu9nCjm9AIoAANAyAAAAAADmxV3L6HgYJtNez06ZzlHz+tz8uvJ+gcPD5a1rEej9O8HdMtyudx6xj802tERD19bl5OnzfhsZd/W6MP5tkf1pweJThcXFgpGorWIfnH8Suo/J+HTBHvrMvz2vHnPXj/VH9G8Xs6bwjdPlhMX8sc7L572mZ974PrOfvMRL9Nn6aX4HwjDnbg+K5FtzLpS+Pn3r9/qnGMRWXQIBX1vgW8U8X+F/t6twv1qr80s5j5QEVpYyQKDQgAAAALAURBFFhpK0DICt45mt6y+q5GsvArP1Q9Oj4dk/J87rfTZ0+X9T5O0amYR5q+hGq127+HHuYbwnq47suJXtcfBvT6Di8f03D6GnDs/N9bt9K9esQ5Yh6q+FlXIkzpHNxTLzuXn8sTBleMXq6fDzZ4vluXyN7eBny7mXy92Xq/XdFq4kb6Tk11DBE+lpmJ/6vO5lPZ8rNT6rMZevS4/lsv+H0Nfp1WU+euf5dWUeV7ElEqiI1EQBJRoEoibRQVQAEFUZCWgIBRUqwqVBYAABEGiLBYBoRpYmazuPWH6H4T/iN1/wrl8/F5d5p5LVmk2t5J3Ex6bdtedx82N7ZOO/V9pMbL9/G8x+f581+Rny5r2mb3vNrTPeZmzicr3rtJxJ+UZRGhATbMoqIioT7hpkCCDTkppucsQ6S+WOOU5ritebMOdy5rtJxOEROVSUT3VJZSkHJix2y3rWDGc2QyymGOVr7DreavTumcXp2Lte8RfJL4h6Oqv7yY/yYyPB4Zj/092++3PLNJR530mRhRoKjIDI0AAAAAAAAAAAAAAAAAAAAAAAANVB61OXxKdPz8b5NvNea/wCLMR21O+zyZddmWGXk8s7Y8Vx04Z4fa+fLnzZ8z8oysOTsoAAAAAAAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAJQEFWAKACqIADQlBUWszExMT3h95e0dT6Fjt63w9p+6Xr6W/i4fPG18vxKeW9Lt/k2zn+74S9fLaY+qWXlvd9SXmQ2qIsKAKLA18kbpeay7tMvmh11ZuG3Dn1LxEupaNLsia77MtRLk6Vy1tp2aXbxcM47VMjvUyPRjXg24O3W7fmdufR4bizLgtCVvB1rw6d6uGXd7dVdW1XBMOVe7G+jIw6AA9fj21w8jpr736Vw6ic4Y/qjxxl3XYCqJQIlWFgRQGhWVGkVRKAgACg7WCu5hrH4mNl4xr7zouPVZs+s9pNcGol+n6G+TVz+T8H4l9/qb+VfFdcy99fU+Lyzuz4vW3nbk/T+FY8dPh9HGPE+qCAAsKIovoAIANRLkrLUYrsUl28cu2Dy7I7mN3K1evD1fN2tzi7OnlxLnj6M6s/V52Snq6OSrxZx9bTl2dSYYed7YCKKAogAAAAAACxGwd/j03Z9r0jj7nzTHo9/S485R8LxXZ5dWT7bg4JyXrER6y/pL+G/RdXjk3pGscdvvly8U2cYY4fOvg+Baf2jxbVfbH1ftM+9/Of8AE7qcZuTelZ3EdnzOmnm6nTPztfrv9U7PJ4Zlj/PlH4Dy8n80vzvqebzZLP0HUXjDGPzHgmv7/wDZ81ktuZcD5F71+0x7RGkboCNPpvBP9YeFP7vwv1qre1J3/vHzQMqqxkhVBoQQAAUAWAACCrVpPZQZgAQ+n41va8G0fU9HT98v0vF1s+5rvyzj5zNGslmIjbhe9+r2Y37kv5O5ixvY4+B31x8/qtnEr3uJg9Oz3MdPLD6WqcR+X6vZzlY54hyQ0+dVcdpIR1cuWKRL5vmcjvLluy4j6vQ6+cuXznIyzO3k5LPl7K/XdNhxInGyez5GK/1Wh2+s08nUM/1Wnzfis9emznyzldr6dVh+eu/9rHkyjzPUkolURGkRKsEFESrERFVFFAAFUjISoEAoqVVhBdAncCoAKqKKVYCKLsWIbFRkEAZllKoyipskajIE7ibStHmDlJ3JQaTaCjt5uHmwYcOW9dVyRuq44WzPKfwsZ544ZYY2/FeI6bLFroj6jw5xcftL8rL/ACYY80u3T4y7cP8AmvH4jn5Ok2XHvlJJ/d4vU+bbnczNlme027POYzy82eWXzr06MPstOrX8sZGUYdQYU2bFNoCIKAAAAAAAAAAAAAAAAAAAAAAAAALsBFA2AoAAAAAAhsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgqgAAAAAAIAgu1gCgAoJVAF2AqoPqPDnJiMmXi3n6GWunbp8vLtxvz9Hi8Qw8/SbfnJMp/Z5PVONPG5WSnu281nbPLnlPzdunz+00asvnjAhzdlUQUBYaiDUTpeUdiuTaW7uvPOLjJxk4hy93RqJclbNsWOel3bpkdca8mzF3KZHZi7vjXgzx4a2xKsRw2da8OeT0a66t4da0OOT3a64pRh3QAejhtri3hrDvfpXPd8OP6o84R0FgBQUEGoX5MqQQaFZUWosKJV0aXhA0CALDv8aO8NYfFHLd6YV990msVw/fp7NrfRfpen9NM+j8L1f3uoz/U+F6xl82W/f0mXzNvV8Pqr+9v1r9d0GPGjD6MjyvcAACrCooIACA01ErGa56y7eOXbB5tsd/FL08Ubh7dT5W/0dyMe4cGXC75Y+jxYbOMnlZsM9+zy8tHg24vsdPnzw6F6uCXjr6uF9IyrLaoIovsAgAAAAADkx13KxMu1e7wcPmtD7/gYIpjrGn1OlnEtfk/Gdvs+/wDDfT7cvl44iJ7TD+u+gdPr07p2DFFdW1uz5PiOfm6iY/yx6f8ASOjzbN++z8noc/P8l4fIz9o8lJmN9n8eeLefflc3NNrf78z+J4fh5up5/ljt/q/bxj0mr51+YdTz+TFZ+eczL5rS+p1defwXX93l5NnG+XX6idhRaoI0+m8E/wBYeFP7vwv1qrexO8+sfNAyqrGSFUGgoggAKALAAFRBqGkvZZRUBKD3ul33jvSXbR8by9ZOdGX5V5fKrrNaDFRmz79+rpMv3WP0j08GL7Hv8XDrXZ69OL43W7PSvew44rEdnbiHu7Th+b25c5WuSIaTl56xMuG9oiJlY6YR4fL5E942+a5WeZ28e/N+j6DVxMXi5rulaXzs6/SaseJGInUxL2usx544eaP9/FG/+jpr9dHUT5eWps9N/T39UeFKPM9SSiVUCNIiVYiIojKwQVUWigAChGVSVFIBRUo5KRuSJezntXUOv71yYwvMoM1oUWKAKlWCIoCoCogCbCxmWUWLFZn0iWZFlYEaxQGkRm909wVTZsVk2K7PEwzyeTgwxHe94h9Z4uyYcU8XhY6xHsKRWX0Onkw6Hq8773HGPmdT5svEeh1ztjMs7/h8Sj5j6q0ibWrEesy+r6jkp07pmPiY51kzam706fua9uf9PEfP6v8Aeb+k1Ttc/Nfpi+PR5pfZ9FBRkYUUVAVkAAAAAAAAAAAABQEAAAAAAAAAAAAAABYBQAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYNCAAAAACAIAACjQACiVQAAVRXPx81sGbHkr61mFxvGUvyYzxmeGUvayx9J1qkcjDi5VfS1dy+Uduo/E5+c5ePw+/9PMf5LYDg9o1AVQQFgo1yysS35iVLED3Q23EqVutnYrduVxzjs47u3TI7Y14dmDni5t055ebhmXDKV0xde0OtaHLJ69dde0ONyr1Y+qbVGx3Mc6492sO/wDauWztj+qOmI6CwqCgKINqyEEGhWFGhqIbiozaujSs8mkmAZlBpYepxI+lVvV8UcOo+CvvemxrBDtcrLGPFaX6HC+XRPo/E7J5+qs/qfAc7J5r27vHl8Hdec79a/ZdLjxqx+gOD0AoKA0rIAACQCrEhXLWXapPo64V59kehis9fBL3ae75HVT0r2MdY1C2xxL38ej4ty4yefycEfU8DPi1Lxb8H1+j288PKy0dO0Pm5x97VlzIwOTsCgIKaEAEBQAAHcwU3MN4d3PbeMa+t6XxtzXs+64uLzTERD6+qeXU/D+L7ec6/fv4b9B9rlx5r4+1dWs/oOIiIfm9+Xn37cvz4fsf9MaPsfDscvfOvivHfUp4HRr1rMbyxMP5A6nnnLlyWmfWZfR8Kw+9ty/s/O/6p2/aeJatX8mL4DrOfvNXxGe+7S7dVfvV9PwjDjTi6VmXhfdgsAoI0+m8E/1h4U/u/C/Wqt7E7z6x80DKqMkK0AFUEFAQFABYBJEG4WFWUVkAHpdNv5c2vrb1emcceonOnP6OXm4v8Xa4cW3Sz79+ryzZ+5x+j2+Nx/R9DxsOoiZe7Ti+B1u136w5Yh3vZ8bKtJMoxHFaXncvP5Y1EmV4mT19Ph5s4+Y5Wfe+7ws2Xe3zNtfrOj18SPOvO3C8mT7GM4iPa5P+L0jh39+O01l10fDvnzwc9/x9Pfln/mPCR53pGUqxAaZGWkQWCSyRFFQKKLQAUEBRSBFFQcuLvYneM5fDXdy01SHQaz7xy03mUGK6jQsAFEaQQGRYIKJtKrO0Cogsfv8A/C3wj0rxD4b8acnlcacmfhcOuTBMesTO34LyoiM14j0iZejZx9njJPWPF0/n+22XK+lnp+XFsdY28z3xJQaJZlBNm2Wk2bOQDkj6jwpii3PnPbXlw1mzyur8u3L5+fJad/SfQzvl8O1z+fZb/wAPnYTz+K7sv5NWMn968s2+c+m9fpHHjJnnLf8Akxx5pdPqHKnl8rJkme3uj7Idr6acZ87y8eE8/WZ5e2GEn966O2XJ7UEqxBlQFAGQAAAAAAAAAAAAGo9Xs9X4VOHHD8vpfDW/4umM5wzvy4efZn5d/T4fzeb/ALR4g5vQAAAAAAAAAAAAAACgCgAACAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAoAAAAADIAACrAFAAAUCqCAoqoy+m6dkjlcDLxpnvX0fOZKTS0w9Gz72Gq/lw8XTTybupw/q83/LA4PasKIoAAKqKKgolUVGolyVltnKOal3apdvG9nm2YuzW7li7rHiyxJliVI4berr2hivRg4LQ4Jca9eDAy6DtVtrBZrFjOcyfWOsJ8mxqFiUVUUPkg1CsqpEqq0yqxCo5Yq3FWnK1rSaEZmGJS+7UcYjbVfV6/EjvDrq+KPN1PwV9xwLf4WnX6nniKTV9zLLjp5Pyfk8MOes/u+I5NtzLpPhbPifrtU4wgjm6KLQU9ko0qAAAAJKxKDcS7NJdMa5Zx3cVtS9jjW7w9um+sfK6rH0r6DDO6Q5H1J2j89l8WTN6xeNS8XmcZx348416el2eXOR89yMcxt5mSunx9s9a/T9PlzI4JRwe0AehHHieLOSI7xLoaayx48t+cctefm88+WXCicOgkpRBFAABukbetxMXmmHbVObHm6nLjCvu+mYNV3L7jo3EnkcnDSPfaN/c+nnfs9Nvyj8D1+X2m/wAvzykf174R6bj4HS8c1rq131cvy8vPr87y/qXh+qaei6fCfyR+C/xV6rW168as/wAkafzly8sfTs+54ZjxouXzr+deL5/b+M9R+VmL866pyPPks+ayW3Ln1GXOVfq/D8PLqw+jglHlfSFgFBFfU+CKWt4w8K6iZ11fhfrVX2pzw+YBlQRYVpACrAIKAkgoALAJIhDawqoqCiEO3xZ8uWstY94xt9cMp+T3ORi89a2b4+F6+Pv/ANnxrs/dcPf4uH07PXpXWntw9MX5/qc+cq5YhyQteGky4plVxjq58sViXzfL5Hee7juy4j63Q6ubK+f5GXcy8rJZ8zZX6vp8OJHWmUcHtg9fi6y9M5mL30mLw7dP8eU+eGUcuo+DG/LPG/8Ad4ssvO9MGUqxEGkSWWkEqiShEVVSRBRaAQVFABogZUVBz4f51x7xnP4cnqZq/wCHV5E+st59483T3mVBzelVRYLAAjSCCMiwQVESrOyM7QQFj+o/4Dze/RvHVI//AGTlif8Ayy/mPmduTmj/AIpd90nklvf0ePpfxds+Vy/y6iOD3xJRPdRJS9hBloAQOFj6zpl/kXSOVl9L5t1j7nyl5m1pmXt6m8aemw+WPP8Ay8PS487+sz/mzkn9oyRuZiIePh7nt5rxw+DXDX+fJ6vDb2X1xnyjh0s+7nnf487WUYekRKsQZaAABkAAAAAAAAAAAABqPWH0/iC0ZOL0fLHv48R/5ezvr/C3/wBnj3/7nor/AFZz/s+WHB7AAAAAAAAAAAAAAAAFgAUABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAAAGQAAAFFAUAAAUKoILAKDLv8AT8/sOTWd9p7S5OpYopmm0elu7vPXV+mvLfudXjf58P8ADzBxeoagSqAAAqe6ioNACsqu2huJc9bLL2cs47NLuet3WV5M8XJFkmzTlwxLhsOmLgs68w416sHGMcOw5q/5cx9rUZyPZ9tuKY0WdjG8ikWiqjcRuXctwsnk89dzDWOPm54cdm2a7jz7um0jY0RKNRDTDkirlijcc8q5Iq1pXK1JhJBxWYlm+7rHGI25KvW4kd4dtXxR5ep+CvqOPlmtHm83P5t930tmX7qfR8HRr532/m+bzTuXA+Tl3fo8PhgkMVpRqhCr7JRoQAAABJZRW4lz1lqMZx28dnrca/eHs1X1j5nU4+lfScad1dl9bD4Y/N7Pjo48mOMlVs55iY3y5SvneZxvLM9nz+empfI6jDi1+k6LZ5scXStVxPFX1saKkaevwre0wZsU++s6dDDhtmz0wx62tqHazzzVPz4eXC+TLqP+WMtJxZL0n1rMw49OVnFseiXmSqkggyIDQA7OGu5fSdPwbtHZ6tE9Y+Z1+fGGT73iYtVpV+t+BOkTzuZiiKTO7w9PiGXk6fP85w/GaMP2nxHRh884/qnBhrx8OPFT0pERBys9eNx8ua3pSNy/O9sfpH9atx1af04/4fyB456vPUuq8nJE9vPL8n6pn8mKY2/R9Lh5Olxn5P5Try/afEN2f8221+d8vJu1u7yrS+fs71+86bHjDH6MDk9IsAoIr7DwF/V/hr+68L9aGvmzn8P93yIgNCUhWkAAEaAEBQAAhWkIaWACADdau5hpqYlvHu4bb6V9NTH58MO3x8HeH0McefK/ObdnGOc/OvdxUisOxD09o+JsvNtckLMp83BxzLgyX1Cu2GPNjw+Vn9XznIy7mXi3Xu/RdDq4keRlu6NpfPzfotU4jEjm7j0+mW3kzYt/5mK0O+j8XD865b/ws/ynP/DyrRqZj6pZcL3sd56zlGWa1EBpJZZaZWEqoiKQqiKQBAFgCgsCKog0qDmw/wA8GPeMZ/Dfo9rkRrDSfseDPrLtt7z6PN0nw5fVBw93qWFFVRREVBBlBYkoKJKVqdmWUREFj+l/4AZv6v403mK36RlmYfzr1Onk53Jr9V7Q9Oyfutd4+TwdNf8Aqt+PPvXnyjze76URGaohVgaOABQD5vc52X2fDwcePq7w8J36m85Yz5YyOHSzjDK/PK007nDxxOTzz/LTvLjh3jrtvGvL6OHk5ZzZbXn7oh1ky78tYY+XDGfKII2yiVRGWlZAAAAAAAAAAABdqGw5EAWPWH0vUp8/Rujz/ppeP/ql11/Bu/T/APcePqfxejv/AKn/ANV8yOL2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAAAZAAAAABVAUAAAAVRABYUqVfft6+S0crh1n/eq66+2U+ceffOLqz/lyeQjm7iiKAoACCtQosCKDKtNlN92okZsc1bOet25XDPFyxZvzbbeewmXHZb2XFxWdeznXowcUssO8HLT3QTuZdnoUx7o6GWNWdc5xjHn1XnPJxNOcd6NQqLD7Lw/kxciLcfL3i0fg9PS8fayXtXzvE5f2XPOd8eK8Pq3BtwuXkpMdt9nmOO3HybMsfla79Ntm7Rq2T3wg1DMdq3FXNWjpI5ZVzRVyxVuR58q1pNKxyxMMJW44rS47MV2xYGfdty44etxvc76fieTqfhr2K5NVeXyb7mXr2X7r52jD948nJO5cb597vsY9oCKAEKJVhWkAAAAZlEVYctZXFMnZpZ6WC/eHp1X1jwb8fSvpOHk3qHpvsarzg/M9RONmQOjg6vJwxetp975XlYJiZ7PD1OHevreH7fZ42SupdeYfKynrX6PC+kZVlt3+Bfy5oh3um4tdawV90ZN/h3enROctP5bI8e6+X9pvz1WvJzz5s2WfrvZwvPn8WT1Y/DiJKNIIEoNC1jche1elxqbl9n0rj+k6e7pcfvR8DxXZ5deT7XhYZvasaf1F/DXpUcfjWz2pqYjUffLj4pn93Xj86+P/pzX9t4vjl7YR+svivHXUa8DoPJ3PfJHlfIk5yxnzsj+geJ7Psug6vP5YV/HnU885ct7TPrL896xn3Mw/TZ/c0SP5v4Rh5t2NfF577mXTl8nPvX77VOMYgw6CwCgivr/AAF/V/hn+68L9aF92cvh/vHyQAuwWFaZAAEUAAUAAFaRVVAAWIB2cde8PTwYtw7a48PUZcR9Lw8e8etPUw4te59LDH0xfl+pz+9nPzd2IckOlfMrTEyk92ZHHa2nlcrP6xCZ3iPb02Hmzj53k5t77vEzZNzPd87bl3fqek18SPOtbcuKXjr6+PpGRlsdjiZPZcjFf6rN4XjPC/Ks5znDOfOWHNp5OTliPrdNNk4zy+ta1XnDC/0xGXOukRBpEZaZWEqoiKKoikAQBYKioKCqIKqLDmw/zwY94xn8N+j3uT/s+P7nz1o7y7b+8+jydH8OX1QcI9igqgoiKIgiCxJQVElKs7MyyipKCx/QP8AOp8Tg+KM+DmTSONzOHlwZZveKRHvfjPiPHGLrXUaRMTEZ7xGp3Hq9OWOX2GN59PR8/Rnj+27cOPvetv09HhSy8z6UQZqgAHAgcqOTFG8lCfEXtXNy8vtcrqrsvOWVTXOMJDXudu9oxYIxx/NbvJj2qZzm68fz5dNGHVlBRNFGRlqCCiAAAAAAAAAAAAAALD381/P0Pix/py2ddd9Nn6Hm6ievT35bZ/h4COT0qAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqAAAAIAgAAAAAKsAUAAAAVRAAaKlHe4WXy2tSfSzWF4sc9s515f8utnp5LzDiL6XJrG844giqsCKAAgrUKKtRQQaWVATkaiXLWzUrGUc1bOWLOkrz5Rdo1yxwxLhtDFdcXDZhh6MRvH3tWFneF7V72Gm8VnjciPpu234MXh6e87c3A04x7aNKiu5wuTbj562idNY245Y8ezjuwmzXnjffF9x1LDTq/Tacin+ZSv0n5/MTWZifdL09Xj97HP+eR8zwnOzVt0XvrzsHLWrzSPp5VzVo7NaO2MeXPJzRRqKtuFqaYlKRxy4pZrti4ZccsV6Igx7q58frD08M6ejV3eXf6yu3OTVXn5rb27bL6PLpx+86Fp7o8lfRnsCAAsAiwrSAAAIDIjQ3WSJXNWXdw3dsL6x5d2Po97h5e8PoqzuIl9fp7zi/M9bjxm0PS8RPd5HP4+43Djunmwr09Ln5NuL5XPj1MuhePV8bZPWv1WnLnGOLQ4vS5cNvLkiX0XT9R1Gc3urgyW/+l6em/Ew/LKV4+rn3c/zwsfM2ndrSjz3u9ftBJRRECUGhy447k7s5dq9zg4d2h97wMPkpH2vq9LPS1+U8Y2ez7/w3wbcvm4KRHvf190HgxwOm8fFrvrcvk+I5c78cflHp/0hp82fU7v7Pb2/n3+K/WYy5Y4lLbinq8/TY+fqNU/Pl9r/AFPu+y8L2Yy/HZi/nPm5tReX511HN5rWnb73U3jCR+Y8E1evL53JO5lwvk3u/Z49oCKLAKCK+v8AAX9X+Gv7rwv1oX3Zy+F8kAQugXStIQCAIALCgAAsBYUaFZAFhyUrtZ3Zyrv4cb2uPi9Oz06p6vk9VsfQ8OnliXpVjT6OHwx+Y6i851yQ0ry0mXHM6iRcY6HIzajtLwOTn9e7hty9H1+j19nh58m993l5LPnZ3u/TdPjxI60suFe6JIjTt8rhZuJXj3yR9HNji9J+uJdP3xLeeGWvPy35S/8APqzrzm3DzT847nN1f2WWP9+kPPlNvx2/Smn4MZ8vRGXKuyMjQjLSDKogpCqAAILAIGmg0ohCkFCsrDlxfzwuPeJl8OX0fQ8j/Zsc/Y8ynE3gvkt7nsy1+fL6Ycvm6Nnkw+ufDz0h4n0lUUAQQERpEFjIKiSi+zKSisyiEfQdB6nPTeT7SPfGpeXz8k5uTkyTMzMzO5l6MtnOjXh8rXkw6fyddu3fzYSOiy4PegzRAFASRK0qxOp2s9gt3naCz2jkrXy2+lGtM3mbWmZX8qzOMs7lO0jCMNJMICIrUSWWGgFGQAAAAAAAAAAAAAFerS/m6Xem/wCXI3h/F9HHdPTD8s48pGHYF5AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAABkAAAAAAAAVYAoAACqIACwCrWZrMTBGa7fI1krW8Om3l61jX8PHy9AZbFEWFAABYKNMtCfNBRFAFiWoVyRZzRZqOOUb2u23PhmWLI1HFLilmu2I3j/ngneLe1fR8b/Kv9zw+R/O77fgxfP6b8bY6zThHvoqo0CPsPDnUIpecGWd0v2mJdDrnTp4nLvMR9C3eHuy/edLhffG8Pia/wDp/FNmP8O3HmfWPHirsUo80j6OeXDtUxuxFHbGPHnk15UmGuHPlmXFLFbxcNpcNpYr0YOCZZc69EBKOxj9XepOno1vLuc1rdnRyWbzrnqnq6s+qvPXsAiAgoIqtIAIASgIMtCxINxLtUs64d3HZHrcbJqYfUcTLF6afU6Wvz3X4e7uD3PkDjyUi9JhLOWsbxlK+X5vHmsy8PLR8bfjxlY/T9Hs82GLqTDLyvpLHrt9FxMnk4fNy/8A7nyf+aXfpvTO/S15eqn3cP1Sf8184PO9QkiiIqCKQ9Di4pyXiI+qdt4TmuW7Ly4WvqOm8fdoh9xxcXesPraZ5ddfifFtvOdfuX8NOj1z82uW+tQ/pKIiIiI9z8/1WXm6ndfpH6z/AEpp8nh0y/my5dXncinE4mfPadRSky/jjxd1Sef1DkXm8z9KXfw7DzdRb8o8P+r93p0mn53l+XdWz+XHMbfn3LyeaZ7vpdZl2jj4Lr4wleZaWHzH6aAAsAoIr7DwH/V/hr+68L9aGvmzn8L5EQGhKo0gAAgAsAKACwGoVFXSoaBFiHbxUaxnq5bMvR63Hxb097Bi7Q92rF8HrNnd7WKnlh2Yh7O3D8/nebWiZOHJiZdXNkisTBfSO2rHnKPC5Of17vDzZd7eHbk/RdHr4keVkvvbp2l4sr3fd1TiRxjm7sSI09rPmnmdG4td/S4mS1Zj/gyd4n/pMPFdt+Vzywyvvjj/ANpw46MZhjnhPbPK/wDN5dmZ8/EiPfSzpS57PXy3+mOuHp5p/UjMuVdYiI2iIoiUSURohVAAEFUZBoUkAIlaFRW8X89VneJl8N+j6icU5cOGse+Hn9Qy1xY68anundnvy+5qzz/mkxj5HT/f24YfK3KvGhdPnvrpDSKICCKIiogrIKjMoIyiog1Gq20zadypJ62ssyjUESzupoQEFgujgF0fIVvHXzZMdfrtELO8Mr93KvV65FKdQzUxxqKxET98PFlrb6Z5yfNx6W29Np573GWmjTk9CMgMixJTRY0yMqIKgAAAAAAAAAAAACu7gvvjZ6fdLWPdz2/DP1R0kZdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAABkAAAAAAAAVYAoAACgigCwCgy7GO262pLgntMw1b6Ys4z72UQRoIBoEUAAFbRQ+aKIyoAEF3LkiWpWbHJFmvM252G2ZkJHHLEpXTFGqfzQTvFvavpOJ/l3+54fJ/nejb+Hi+f0342x1leZ71VpGiIGa7fHvOLJW0Pvb1r1jpkf/Fxw93S/ew2a/5o+J4n+72dP1E/gynP0r4z2M0tNZ9Yl2aY3KR6s9nMdmtHJp1jx5UmGLCzu4Jlw2lztd8HBaXBaXOvVhHEMOosA56O1WXbF5tjdrdnUvK51NccPvVyr0UCICCwCCqiiiSICCoIoAsS56y3ixnHfw31p9Dwc8Rar39PlxcXx+tw5wyfQD6r84APP52Hz03EPlORi1M9nzuqx9eX2/Dtn3ZHm3q4ZfNsfexvMg9WMnl6Xanvvkj8Kt6rxc/01z3Tma/1x5A5OwgqbRGgBukbl9Z0DixmvltPuq79Pjzswj5/iWz7PptlfS9P4/lta32y+s4GC2S9YiNzMvp37mqvw3X5+fO/2j+rv4e9Jjh9PnNNIibP0jT8tb5ss8vnlX9N8G0/YeHdNj/TK/P/AOIXUvkPRrV3H+I/kHqGecmS9pn1mX1vCsfxMvz4fjf9TbPtPFNeHthhH571fk+a9oiXx+a25lvqbznX2fDNfl04OrKPG+wAADQIr6rwPe1PGHhaIn16vwv1qqcc8R8uDI0JVGkAAEAFg94KACitLGRqFSkkRsRy0ruXp4MbrhHl35cR7fGxej3sGLUQ+hqj811mzu70Q5Ieh8nJWZkSOC94rEy8bk5/Xu57LxHv6XDnKPCz5u8vJzZNzL52yv0vTYccOjeduKXmr6eMZlGW2URp3+BmrTLbHef8PNXyW36R74n/AKS6eTHbHkvS0amJ1MN2868P6crGJ6bc/wA5K3hncXp/qh1pjW4Zy9cY6Y/FkykuddIiDSMstAlElhFWFVQPYFhEUEFWAKnIqwVRKreL+eFnfFnL4cvo+2xeXj8KM1vq7Pi815vkvee8zMy93V3jDTh+Ur5fh082fUZ/1cRxwrwx9UhWVGQBGhEEQGQaRARiWSCDUZBRBpNIVQhn3FFBNCigO3waxbmcWJ9Pa1XH4p9Wdnprzv5VvqWSMvN5N4ne7y6CbPXLL6micadc/pho0w6IgJpBWQrUZRkQGklAAAAAAAAAAAAAHPjtqLx9cLO6ZTmOFEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYNCAAAlAQAAAAAAAAAUaAAAFCqCCwvsKIysTqdvUr0+cvAz8yJ7UtES6YY+fn6WuO7Z9l5L/NlMf+XlDDsEAqwIKAALDSewKjQiLCiAogo3Fm9tM2L5kmUZ4ZmWJG4LX+ap7xb2r6ThzvHb7ni8r/Ml6Nn4eL53T/7jY6o876DSw0y1EOWtVjGVc9aPpuicy3HyxWf5Z7PTovkzxr5fX4fbdPtx/J2eq8GMWf2tI+hfu8+mN2zw8uzOfm8Ojd5+n133k4rm8hMHC8uOXBeWa64OvaXBaXKvXhHBaXBMuderCMKw2qwsRz1c0S6xwyLS4LSWmDEKw60CICBCiUBFhVElACUVAUAHJWVjOUdrHZ63Gy6mHr1X1jwdTjzjX1fFyxekRvvDsvs4XnGV+V2Ty55QGmGbVi0TEvA5fEmbWjTz78PNi9nR7PJlXhZuNau+zzb1msvkbcbjX6bRsmccbtTf/DpT6oYx93bOc8fV1JGGxBWRloAdjFXcw+78NU1Tk/dD2dLP3mL4vjGXHSbP7PpcGPyzMR9b7jw3xfbc3DGve9fV5eXRnfli/F5/vOo04/PKP6+6Jx68XpnExxEx9CLT/wBXrzOn5jH4Y/r/AE+Pk6fVjPbCP5t/ij4hjm8iOLivPs8e4l+Ac7N5KXs/QeHYeTpvN8+a/mXXbf2rxfqM5/PI/OOoZvNa23hXnu8u7LnKv2XR4eXXj9HEOD2gAA0CD6jwT/WPhT+78L9ap7LO8fNCsCgorKigCACgKAANQrcZGhKqxCxm13cVHscfF6S9GuPm9Tn6V73Gxej16RqH0NfZ+Z6nLnKuaFbrxVJlxXtpW8JzXl8jN693h8jNvby7a+z0evs8bLk3t597PBnX6HRjxI4WXF60ZRpJZlGorsZ5jJSmWPX0t97U+HKJfixrrVnyzFjJHfcM+zfvy4klluIiNRkZaQSiMyixYFBV9gUBUiAvCciwICiw0JR2ONTzZatYTnLFjZeMMvo+m5mWb8TFWPSHyk+svR1d82eP0jw+Hzy4Z/WoPK+gSpVgztFBGhlAQEAZBr2ZSYQZRGoiCiCwNDSSM+4ChoAUUdniT5eTit9U7XHvPqxn8Gc/KuDLPmyXn65lhL3bx9MZPyQZXkEVEFYRVRGbFREVJQUAAAAAAAAAAABTYIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCKooiAAAAgAqLRUKAgAAAqgKAABRRFAAgqlQfR9OmZ6N1in1RSfzdtHxX9OX+Hk6z8LD/wB3Xf8A+6PnJHJ6gBQQUFAFWMg0KpUqiICgoAC+Y20nBMoKLX1g+Re1fR8P/Lt9zxuX/mS9Gz8LF8/p/wDcbHVHne+tQ3ENMVyxV2KUmW5HDPJ26Y9u/hpNZiYejCPBuz9LH1mKY5vD9nP81Y7PEnFNJmJjUw9eySzDL5x8Tp8vJlu1fLLmJMOOzm9eLr2l1r2csnq1x1r2de1nGvbhHBaWJYr0wEFaqJezlhyRLpHGky4bSVcWVYbUaQGQUSgIooIAiNAAALCjmpLv4b6dtd4seXdOY+i4HI1Ne7397fZ0XnCR+X63Dy7OVHd4xmaxO9wlWWyuhyuFW9d1ju+X5XF8sz2fO6nX7vtdB1HPpa8q+OayxEzt86+lr70vmjEoy3BJBkZaFiNyD0OPTcw++8P4tY88/ZD3dLPvR+e8az/6fOfR9Jx6btD9f8A9OnPzMM/XK+J5cdPl+b8x0WH2viPTY/1R/UNaxWta67RDzOs82OD07l5pyRSa0mYmXwb2f1nfn9l023K/w4V/GHXuZbl8zkXmdzN5fnvW8k48WvrfqdWHk6SX5Yx/Keg/edXzf4s7X57yr7tLz7er4+fxV/QtE4wx+jIw7AAA0CEPqPBP9Y+FP7vwv1qnss7x80KwEAqjKjQAgApAKAEA2NsjQlahz46blqOWd4lenhx+j3OPi9Hs1Ts+L1eb3MGPUO5D3ycR+d23nKtQTI4uO1tQ87Pm1Es5XiPTpw82UeLyMzx82Xcy8OzJ+h6XX6R5uS8y6sy8dr7OucSIyy6okpWmZZllqDVba3HrEkVxyTOxpgZVGUbjIy0ggMyiwFBV9iiiCoA0i6VBQjI0oOxit5dNYel5c85zK93J/sdHz1v5p+923d8fo8nR9tn6qwunne5JBYIiglWDKKIAAjIqIlVNJMIqILEQagC8oiXue6goAKA1S3ltv7JIl9ZWDQ0iaRQZqwQGUVplEqxGWQZGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAGQAAAF0LwAoACIAgACrAFAAAFEUAAWFKlHv8AS7x8h6lj364v/R203jOfpry9VOdU/Xj/AJeAOT0gBCiCgoAqxkGgUFERRUAAA0KCqC1/mgL7vouH/Jb7nk8z+eXp2fhYvn6P9xm6avM97krDnrVuezjnXYrR28eN2xjx7c3ex4ndpj7PRjHzdub0uJknDeO/Zy87FEWjJHpZ6e+F/J8y/d6iX+acPLs695ca92uOpezq3s4ZV79cdW1nBM7ccntwjEoy6ip7irCs3s5G4bc6bcUlWAitAgICiUBAUACURoAAABusu3h3MuuHeOO2elexx5mr6fiZvaU0+p02T871+PM5dse58kctMdrRufRnK8SVnKyRi3rMPO5XDrlrMxHdjPHzYcO/T7Lryxr5jlcSab3DzL4tPkbcPLX6np90yxjqzWYZeZ7Z68CSlVkGhyY43KxMu1e1xMe5js/Q+jY/Liy9vdD6PTz0t/J+U8az/d2Pd4mPd4f0P/DjgTXPTJMRqsPJ4rl9zCfPKPmeBYfaeK6vysfuL8S/id1++G1eFjtqPJO3zdOPn3a8fnk/c/6i6i9P4Zu4vrlxjH835Mk3y2mZfIeJfo44l+yyw58Pzr8D4XOOs0R+c5bbmXWfmMr61/Rdc4xgMtAAA0CK+n8E/wBY+FP7vwv1qntVnePmhWABQZBYNCgCKAoCN1WJWkaSDYlbpG3o4aOmEeXflxK9bBi9HucfG9+qdn5/q8+71qR2hyPU+Ll3oxMiSOjmzPIz5vXu4bK+p02vs8bNl3t5uS+9vDnX6DRhxI6lpcTz19DHtBlGkSUrTMsyy1ARWUkaZEVJZRqIiVpBFElkQFWFWdihCooAqsqoLMECKCK3T+aFndm9q+hv/sVXz1v5pd938P0jx9H/AOZ+pB53uRIFiCKCLBlFEkBAQFRBURKJpEVAaiIBpBtBm90osEIoqgADQylAZUQGUVplkBlhUSRpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFX2FEAABKAgAAACjQAAAAAGhOFBUAAAAVRAAWAUGR6nTrRFeVWffjmG9fxRy3/hX6x5cjLqEAoILAKACxFFQFBqAAQQFhoBkRoAWvrCl930PD/leXzf8yXpz/CxfO0/7jN04clauEe7KuelXapR1xjy7Mncx4vsd7Hi+t6MY+duzd2mN2Yo74x87PPmta071ZjNgmk+sOuN9LPm82z+HL+WvEyzqZh0cl3nzr6Wmc8Ope7qXu8+T6OvF15sxMuT1xEFVUgNQqVtW3MYn1SrFEGhpAZFgkT3AQAACUGgAAAG6RuXqcbFPZ21T1jzdRlxjXtVwzWkS5uJm8l9bfRw+7cXw9n73DY9+totG4ae/vHxrOK9fofROf4g6hi4XCxTbJb1nUzFY+udPY8S9Jnw/mjhXjWWK1mYn3TPq8me7/qcdP5csbdOy4atkn3PP5Xx1p1G9vPvzJrOpl3zy8j1adfndXLfHlh5WbBHueLbJl6vq9PbrsleblxTDp3o8OWL7GrPmRw60zLk9EQRodvDXa493PZeMX0vT8W7VfoPTseqWj/hh9XTP3dv5PxfjOfePd6di8+avb3v6Z8C4sWPFX3T5dvkeK5fe0z81/wBMTnr/ADPt+sdUwdL4eXLlvqdTp/JHi3qd+ZzstpyeaImWfD8PP1Fv8sfW/wBW9RL9h08vvzX57m5EYrea0vG6/aMvDpaPSX6zHLnpN+H9L4fRa7j1HTZ/1PzLJ6zDiflb3r+gY9oogAADQIPrfA1Iv4v8LzM+nVuF+tVUt49fzj5UEAFBkVoUAA4UEUAhuFiVUaSLHq3Azk7WKm9PVwY/R31x8/qM/SvawY/R7OCmtPoao/OdVm7cLt2fOZmXTzZde9L6R21Y82PJz5Xk5svrDx7L3fb6bX2eZlu6VpePKvtap6OGWXN6oMoqJLLSMSlagIqMjTIioko0iF7KiMtAyCCwVqdkCAUBVWMrCiKRAjRCxBuvrCyesZvavo/XhQ+bt/PZ33/wfR4+j77f1IPM9yINIIoCwRlUAEBEFAVEBGWWkAQFGdDZplmoLBCKKoAiiiIojNigDMorSMSCJLHHdWUkWICgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoCqAgAAJQEAAAAUaAAAAAAAAAAAAFUQAAGgZHa4tvLN/trLWHeMbJzhY6siNgC7BBYBQAUUVkFBQFEARVAQFAOyx6wvyK9/hz2efzI/xJenP8OPnav9xk61auelHKR6s8nax0+x3seN3wjwbc3ex43dx43pxj5e7N2K0cjtw8eV5rjtLjpm8lvVjnitzDzY11udqJ88ekvHvdx2X1r6PSznDF0r3de1nmyr6mGPpGJlGXUEFAPe0qVuGlYGC0iqCjSAyLBIgCAACoCgAANVruVnslvo72LFv3Pf4mCK6mz26MOby+V1m37v51zcnk0rHkrLz6Zo8+4l2zz5ykebTqs1219FwsvmjUy9GO7367zhi+Nvnl2V/Tf8J+l8HoHQ+o9f5k0i16RNZn3Viu5h+G+Mutx1/wAQ9R51I1ivln2cf8MPldJ5t3W7tt/hnD29Tnhh4d0OmcefK3Zl/f0j5S1dxMPnOZFqWl9DqJ91y6K/f4eXOeazqJbryYl8/wA77V08yVbTW7q5MUM5eq67cbw6d8br2q4ZR78MuXFoc3Zqsbl6XGpuYb1z70effeMa+w6Xi7xOn3HTa7tkj/gfWx9NL8L4rl5rm+j6Tiic0P37w9yq8bDXv/uvzvi2XGev8q9H+nMvJtyzr5Hxv1+2WlsVcu4fhHOzze0zMvoeEarNXnve15/E996rxLK95i+I6tye/liXBGf5V0+9N7mr62vZ+824fPCx9jTp8ujRn8s5Xw3Ijy5bQ4Hws/TLKfm/Wa7zhjfyi7GVAABoEH2HgL+r/DX914X60LGcvh/vHyQAAoMqrQQAALBAgA3CtM0FFhz0qsYzr0cNHscfH6PVqj4/VZ93tYKPTpXUPfrfnuoy5rbE203e7zSOrky/a8zNl9e7lnk9/T6/WPKzZXm5bvFne77mjDjh0L2cEvNk+phPRGGXWDKKkpLLSMjSCKkspVZEaRlluCHsII0gyACKpQKCqlaBFWFRWhFGmRqvrB7xL7voa/7HD5+/rZ23dsPo8fSfFt/UwOFe6DCLEVK1yAAlaTSICAAqAqAIyy0kwgICog1ESWaIsEIoqgCAsNmxUGb2ARWZRWkZUZJY96rKTCLGQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUBQAAAAAQBAAAFWAKAAAACgTGkCAAAAAJRoAAAWFEo1W012sSzlkAACAUEWFAAUaZBYKAKIoIKAAACrPYr3eH6Q6vKru8/e9V/Dj52F435OKtHax49sYxrZm72LE7+PE9OEfN3bHcpjdqtXoxfN2Zct60xadNOU9a6uS/q6GTI4517tOHZJyxlxWp74eLktqZhx2do+h02HluWLrWs43nr6OM9IAoM+4ovzQaVK1C7VkmWS9xpYUUVkGQAUGQAJF90BQAAclazMu7iw7mOzrhObHDdn5ZXt4MFaRu0McjlxSNVe3n7PB8mS79v5R49882ncy3jv3eaZW2V9C4SYSPa4meYmO77Hp9fbzS0+kPpac/uZPzfic8kyyfV9W8Qcmen4umYc1owV9abnUvjW+n1TXMrJ8V5fN03PPXhc+/Ek+kHkdQxdtt7pzhXt6XLjdi+Wz11MujN5iXxs/Sv1Wn72MclORMe9zxm2TMz1evLNrRLgmIlKuHo4LQ45hyr041y44e3w8e5q66p6x5Ory4wr7fp+Ly02+t6Rjm2a1Y/+HL6mf3dN+j8H1t82ex9V0ikUy7mPe+/+cIwcftaImKvzvW4/a7cJ866eG7PstOdflnXOoTyM1+/aHxPLy+Wlpl9/pcJr1Y8e0ebRzt35Z++WT886jn89rMdKzz5rY5ntMTDz69n/U/Wv3E1f9Hfykry+o4/LmmXnPHvnG3ZPzfV6e86df0grk60BABoEH2HgL+r/DP914X60LGcvh/vHyQAAqqyaVQAAFIEUhYNisiqNUjcu9iptvCOG68R6mGj2cFPR7NcfC6rN62Kunc9z3Yvhbbzkxa8Q6eXL9rOXo1qw5seflyvMy5Xmzr6/T6+zzsuR0b3eTKvsacOzrTLLi9k7MymkaiIisyjLaMipIy0jMlaZEVGUbgiXsqIigyACKAqiisqsANKzVaWICoqx/NAj6GnfhvAv/NLvt7YfR4ul+Pd+quMeevcM6Ro0goI0qIoiCACCgKgHKSicKkslIyIqSgoSNMiKoAAiCwBREpBNpFEGmUBElKrPvhvJXUVn64Se5b64uERoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVAAAAAAAZAAAAXQoCgAAAA3SPNaCd4XtVyxqzjL3THtAFAABQQUAAAGhKAgKAAAoIoCgCtRAWIqnulARVAAAAENNxHdqFe/w47Q4uRTd3q/8uPlS8b8maY3ex41xjG3N3seN3qUejCPl7s3YrVyO0ePK8sWl1Ml0yrrrx5sdDLkdDJkebOvq6cOzrVzTW/q4eT/ADeaPSXG30r24Y8Zy/OOnMjk9SgIrIsDSKKjUAgQo0sKyoqAyACgyACDQAADkrTbU7s28R38OLcw9bDiikbl69WPu+Z1Oz2cXJ5MRGoeNfJMyxtz5rr02ricuKJ7uelnLHu9Wc9HqcTeTJWsP0PBMcfDH3PpdN642vy3jHrdeE72ura83mbbZe+TiR8+TiSDq8unnxSmfrjXXVeNmF/N8lyqal5OSO8vibp61+r6a84xwSRaY97z9q9rcZFm7XmYuLMywlajs4a94fScDHuY7PRon3o+b1+XGvJ9rxqeWlYfVdC7crX10tD3b/wsvo/D78uc+f6n0fFnyZLblrqfUPLjmtZ92nypr8+7Bxmzyacp87w+D5WXe3yvVeRFMU1ie8vsfDrv0e7w3Xzs1T83wHKybtLh4mb2WesvlTLjdjf6n73HDnRlj/S9bn8a2bDkzV7xXU2fNN9Zjxtxy/mnJ0Wfm1XH+W8CvI9lAQAaBB9h4C/q/wANf3XhfrQsZz+F8kAAKqsqKAFARSAG4WJVFQhqFRz46vTw0dsI8W/J62DH6PXxU9Ht1x8Hqc3ep2hZyael8zjzV1cmV0cuVxzyezTr7POy5Xn5cky8udfX0a3Rvd17S8+T6WvFxyksO0REajIlaZRFjLKNEoy0yklaZEVJZStQRL2aREVFZAANAo1wiroQhRBsSqrUZFhUU98CPosf+xvn8n89nfb2w+jx9L8e79TjHB7gRUSYFiCNAiiMqAIgoCpKAICMpVSUQRJGiEkbnZAoCAgALBNimxKREZVEVpEBESqjt5q7wY7Lj2rGd4y1/V0Rh1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFAAAAAAAZAAAAUaAAAAAAdvi03MyuM9YxtvGFcGWd3lxpe7WPbEBQAAqggoAAAKJVBAUAAAhRBYBQBViAsQaJ3SiwqKAAAAsQqNRDlpX0bjGVe/w69oM1N2erj7kfHuX77JvHj9Hfpj+x0wjhuzdylHZrV3kfNzy5bYtZeznJy6uTJp0MuVyzr3acOzzsuV0r3282WT62rDs61rNefz005c93q8vw35V11ZdBREaQWBpFIVFBBqCFVYaZUVAZABQZACUGgAAclabd3Fi3p1wnNcNufEenjrWkbcOflajUS9Fvlx4fPxw+12PKvkmzieW3l9PGeWcK5KysK+h6RXy29rb0h6XJ6nOW/kpOofQ1Z+TXI+B1Gn7fqrl7YR3+Lni9NTLuvoYXnGV8jdj5c8oMXjdJavasT0sfLc2mpl4WWveXx989a/UdHlzhi6tmHjr6cZEaXbde8iV6PHpuYfW9MxbmHu6fH1j4PiWfGGT6vFHo+j6N9HmYf/zv/SXq3/Bl9H4zb8eP6npXzeS+Tv73kcvkTfe5ebThxlK8fNyz8vyr53kZO0zL4XqvJm97PT1F8uvh+p8I1c7JXymW25mXBE6tEvj2+r9rhPuvqOPm8/GmJtqt6+S2nzOans8t6eupevq75sNOXyjydHPLs3Y/m4leJ76AgA0CD6/wJaseL/DO51vqvC/WhYzlOY+TAAFVYyqKKCACoDTSxKKqDlrVqM5V3sNO8PVw0ejXHzOoyerho9GnaIe3B8Lfea5Jvr3uC+Ru30ccMPV0smV5+TJ6vPlX0dODpXu6V7vPnX1NWLq2lxuNe3FJSWWkJRWAbZSWVjLKNIMtMsyVpBFSWUrURErUQRUVKAgELBVVlVKCkRVhb7MrCiK00yAPoME74kvCyR9Ozvt+HX9Hj6b02bvq4pRwe4EBEVJZgaiiKDKwQVEFgCogCAyiKzKIqAsRBsRLUAUQAFiIigloIiom1VNoKMSlWD1vL5un+b6mtf8AF9HHf6fZfrjxxzegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQAAAAAABkAAABRoAAAAAB7HEprBNm9frl/auHU3jXPzseVfvazDDvO0AAABFUAAAABYEUEBQAAABQQUBqFiAqCgsKsRQQUKgINxDUSuatXZpR0xnZ59mT3OJTtDlyU3Z65Pux8fLL97XLjxu7Sno64R5NuTs1ht29njt9WLW06uTIxlfSuuvHmx5+XK8/LlefOvqaMOzo3u61rPNlX09eLjmUiWHfj0CEFFZGlkABr3CooMjUESqKKqpQRABQQF9hBFAFbrVZGbeHcx43crMUh6MJxHi23zXhwZeR7ol0LXmzGzLl206/LOWYHN2acmKvnvCydozleJa9a/I9lj8lXWpkmZ3L0c+uMeHHXxjll869ji5/Lru+jxZa5Ih9Lp8vTh8XrdfF5cw9T5z53n1jzS+dzR3l8nqPir9J0N+5i6NocTwZPsYoI0OfHHos7xnPtXs8Wno+y6bj1Xen0emj8z4pl93J9Bij0e7023k5WCd++XXd645fR+S2370+q8nJrLl++Xi58m9mmekctGPOdr53qPIimOY2+B5uXcy5dZl7P2vg+viSvIvLifLtfqMez2eBk3jtSZdLlV1aXrz+90+F+UeTXPL1Of53l01eR7KAgA0CH1PqPBP9YeFP7vwv1qnsTvPrHzQrIAqrGVFAEAFAWGliUVUWPV2sdfRvFy2V6eGkdnq4aPVrj4/UZd3pY405ptqHqnZ8jL1ycNsmnWvklnKu2vB0cmR0r5PV58q+lpwdK95daZ24Wvoa8eI45Rh3iIjSJKCQg0ykstRllGkGWmWStIko1ERK1ERKsQRUVKAgELBWlZFKENESqq32ZGhlVWICj3uL/stnjZf8yzvt+DD6PHo/F3fVwT6o4PcACJViJCNQEUEqxERRBYJIqAIgIyioyioDUQGklGfcEmVAAQUGKogqAMiqaQVlEqwe9w6+16dmj6m9Pxf2rz9X6YYX+vF4COT1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAKAAAAAAlAQAAAgFGgAAAAAV9DWnsunzLrq/i+jydXfwp884+en1lHJ652gAAUBFUAAAABYVFEQFAAAAFgEFBSFiKNIKgqwRlRRQRCAbiHNSrcYyrs0o7ePG74zs8WzLu9vi07Oe9O72SfdfFzy/eVy0o7MRpuPNneW96cdr6X2c5Oa6uTJp0cmVxzvd7tOHZ5+TK6N7vNlX1dWHZ1rWlxTLja92MZVGhYEUVBpUAFj0FRYUSrCwRmqKLCiUBAgFBAX2EEUActYc9IdJHHOuaL+VxXzS3cuI5Y4c5cutMzKOT0LCgrtYtY6+b3tY/Nz2duPnXDa83lyVssvN5S48Th3sOSYmHtcXkTXXd7dGXFfK6vV5sa93Hki8OSe0S+nLzHwMseMuHg8187njvL5nU96/QdD8OLoWcEvBk+zigy2sd5dzDXvDWPeOW28SvoOFj9H2XDp5ccPqdPPR+T8Uyetjh6PHv5cuOf+KGs5zP7PzO1xcnJ9O/3vIzX9W9U4kdOmw7Pjeq8jzWmN9nx+e/mtLwdVecq/e+F6/Lqw+jp2lh4K+1OzucTJ7PLH2uxzY1Pmh6sPXRlPlXmznHUY35x5ivM9NAQAaBD6n1Hgn+sPCn934X61T2J3n1j5oVkIBqFWMgosAggKA0qsqKOalXfxUdcHl3ZPTw09HqYq6evB8XqMnZidMWu7W+jxSc11b5HUvkcsq9uvDs6WTI6d7+rhlX0dWLrzZx7ca9eMRJZbRlGkSRqIIIzKNRlEaZGWmWStIiNRERqJKM1YgKhCVfY0IKKiq0g0JWgZVYWJRqCM1oEBUe5w53x7Q8nN/PZ32fh4PJo/G3fVwSy4PaAoiKMyixNiNCMrAFEBEFCRWZ9EBlGViJsaRBqIks33VAA2KkoVQQiG0VNgCCoKozLCxAWD6Ho/wBPj8qn2O2n43l638C/qxeDePLe8fbLjcr7vVj2n0QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYBQAAAAAABAEAAAVYAoAAAAKDeOPNesfa+l6h/hcHHH1w7a/g2X8nh6q87+lx/qfLo4vcAAIAKoAAAACwCgyCgAAAAsSDQICiisjQlARoVFARqsKjnrV2aVdMZ6uGyu3jo7uOj0YR87bk9jj11DmtXu9knGMfIzv7yt1hvel9nG+tYtd1MmRnKu2vDmx0cuV5+TI82dfT04One+3WtZ58q+jrxcMym2HokAFAU2T3RVX5IovujUSCEKqCiVVVFVWQQCAWSBPYJBFgBqFRyw35odHOzlx2vMuNm1vGcAg0A1WNy1e++zTPfJxt1ki12KXehhy6d9d4eLdhzK9bDyPTu7/wAo3D6GvZ6Pi7tP3nncm3m28TN6vNvr6HSTiR0LuCzw5Pr4MDDo3SHpYK+jph3jzb7xjX03Bx7mr63DXVYh9TTOMH4/xHLnN3qOettTX74W+tfCz9a63Ivu9nh83PFKT3bnphy93R6/NlhHwvPzza0vCvZ8nfecq/fdHh5deLglIeavfOzVJ1MS9XL/AImGJejT647MfnHn3zjLXfzeVPaSHD5u/sAgAsKIR7n1Hgn+sPCn934X61T5k7z6x80KyANQqxkFFgEUAAVVZVqsblqJb6O/XDNNbh3cVXfCPn7c+Y9PFV3q9nrwno+Rt9aTZ1b3+0tZwxdS93Uvdwyr368ezqXv9rrWs42vfhjw49jDuiJVREUZkWIiNIiLGUlGoyMtMslaREaiIjSSjNWICoIoIitRWZ9y8I3GO8x6Nxgvr0bmLF2Yxr2FmZx2j3LcbGZslZ1oRpSBKrUEZqqqAD2eDP8Ag2eZn/nl2z/DweTV+PtdccXsET2VNoKiSixBGoAsEZUAEFRBUllCozKNRkFRNjaJLN9xBFTYdlQDgQpARUBeE2CoAiMtQBR9B0O3fPX66u2j8TF5Otn/AE2bxeRGs2SPtl13PLvXpw+DD6QGWgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUAAAAAAAQBAAAFWAKAAAAADvcCnn5OONPX65bUYafVD0Yfg5/WPnbfXrtE+WNfNDzvogIAACqAAAAewCiqjIKAAAAACxLQgqgKyqiUURRRQRYhzUq3GMrw7VKejt46OuMeLbk7mPH9jvY6PThHztub08MREN2ju9U+GPl5X79TenHN2auM5da+X7XRy5HLPJ7dOHrHQyZPtdO93myr6mrB1bWcMy417cYgy2KAKKp82VVfkii+6LAIsKqCiKqxFVWQQFgCUEAUUBqFZa2zMtJIKiiiEGlFidIUCJByVl2qX06Y1w2Y8x3cWXWu7u1zT9b1YZPnbdfqxkvv3vOys7PVvROHRu69nkyfUwYGHR2McPX41O8O2qdni6m/dr6vp+P07PoqRp9TCcYPxnXXnZXZrJNz3fM49a6efJ3tO3yHUeTMzaNptvl1vs+G6vNnHyXIyTMy6FpfIz7v2+nHjGOKSHF6PZXf4990mHbTeMv7OW6c4fSuplrq8sMZd63LzjiCAAsKIQ+p8E/1j4V/u/C/WqD5kVkAahVjIKUURQABVaZah6fTMMZeXhrPvlvXOcsfrHDqMvLp235Y17vVeLXDkp5Y7S6uOno9eWPl2ZR8fVsufT4X8q79Ozkm7pL6PNlOa4L5HVvkYyrvrwdS93Vvdxyr3a8XWtZxuVezGcII0IisiKJIsZSUrSSylVERpkZaSWJK1EZRqJKI1EGWkASZWImfcSK5a4rW9zt4+J5tbiW8cLXn2bpjHdx8Gbe536dPpGu3Z6MdcfN3dXx6R2K8PFWss3xYaw6+SYx5Zuzzro5rY49NPOyZKvPnY+hoxyvDp2mJlmHHvXvk4g1DJVahqMVRUNm05HrcCfoWdDkfzy7Zfh4vLr/AB9jrm3J60RlYIKiCxE2jQqU9wRpEBUBGRUllGvdGZSrEQaREndYhtL3VnZtGkCqbRABeAFZlAEAEVBGgAe10S2uTaPrh00/iY/V5urnPT7f0ul1CsU5WSIdFM/iy+rppvOnX+mIMOoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwoAAAAAAAAyAAAAKsAUAAAAAHs9Gp5uS31u/m5Hl+p6O2j6186+viM/LB4Y876NAQAAABVAABYACwqVKAgKAAAADYlFhYgKiqVKNKgKCxAjnrV2aUdI8+yu3SjuUo74x8/bm7uOjt0q9GMfP25O7jjUF5d/4Xh75uva7rXyOWVenXj6ulkyujkyvPlX0dWDp3u61rOGVfR14uGZYc3pigCwIoqCwg0KjQ0ysKIQogKitLEWFVkEBQpKAAACqrKigCVoBYFRBFAFiXLWzUZyjsUu7VMj0Y149mKzkde8mVTDHiundwWefJ7cPZhY9WHV3cNXt8WneHp1ez5nV5fdr67hU1V61H08fgfjepvOzJy7cV7Enq8uM9Xn9SvGLBjnfe23wXMzea1p283UZej9J4Phzj5nh5bbl1pfMyfq9c4kYHN2Vz4balvXeM4xnOca3mj3uuufxVnD4YDLSt2pNfL9sbOO9OWIUQfYeAv6v8Nf3XhfrQRnL4XyQoLoFhVjIKVVEAABpWmWqw9vpP0ebx5/4nXV8eP1jydXf3O39NfS9Zpu2N5VI09uf4mT4fTXnpsHNti12eW5HWvf7XVvdztevXi6t7uvazha92vFwzIy7LACCLGRFEkWMpKVpmUSqjMs1uIIqMSVqIyzWokpKNxBFQisyL2jnrih2qY6Q3I82zOu1ScdXYrnx1dsbI8OeGeVcnyytWbdRiPe39pjHKdLcq6t+pXntt078zJb3uWW22Pbq6XHB17Zb297G5n3uVtr1zGYycQWCFXTUQcJaNDIHKGxB6fAntaHU5P88u9/CxeXD/AHGbrDk9Ym04E2iKILBEqoIoDQhRUQZQVllGkZZaRBpk2iokioiLALWkEUQABAEBREA0KCKPR6Xby8qjpr+PH6uPUTnRt/TTqka5V3mps+PL606f8DV+mIMOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoAAAAAAAAMgAAAKKAoAAAAAPo+iU72v9Tzeo5Pacm8vRl+Bh9XztXr1+6/LGR5w876AAAACroAAABQAVUrILAAAAAAGokBVZUVFValVRABYhy1hYxlXZpV3MdHbCPHtru0o7lKPTjHzdmTtUr6OeI07x4c656zqHDlu3l2csJzk6d8kOlkyPPlk9+rB0r5HTvd5sq+lqwda1nFMuT24zswI2KAQewu1EBUbNogrXKK0tZIUQFRVWI1CqyCAAAAAAqqiioKJVAAAAAFiViVy1s563dMa45RrzsWlq1iY8V17OGzjk9OPsw3SNyzG8uz0sFd6fQcOm5q9mmesfG63L7tfV8auqQ7tX0faPyG71yyJlwWnvELGcI8Dr3J/xPZxP8lYh8NnvuZfO6jL1sfrvCNXl0a/zkrz7y4pl4K/QYxBltpYnUrO8R2LT5qOu3l62MYAyqxOphvJknJebT7z2sPdiFEH2HgL+r/DX914X60EZz+F8npFBRKqrEBUaABaAQahYVl2KVet0+PLycP/ADQ7a/in1eLqb+72T8q+s6xXdaz9rwonUPZt+O/SPhdH69Pgk3cFruVr24Yute7rXu5WvZrxda1nFMuVevGAkaqwKhKIIiNDMixEkrSSzLCozKVuIIqMSVqIyzWoiSfNtBlUXcwCxllfayvLNwixln6z2tvrLknkiee0+9NzJzysxkRSKoRGlEG1ZEKi7EAB6HBnVrQ4uV/mS7X8PH6vNP8AcZ/R1BzekZlFiCACwZSqgKAsBKqSiDKDTKJVZRlplBqJKI1ERFQFERpAABkAAAURKAgA0Ozw7eXkUlrD4p9WNvrrz+ldzqvfNWfrq8lrb8dc+m/A1/RBzdwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgFAAAAAAAABkAAABRoAAAAAAB9T0uPZ8bJf7Hz3Jt5s15d9npq1x8/pvXquprrjg94AAACqAABAWFARlQAUAAAAAAgGlVFFZWFVGgqCxBCuSsOzSrccM67dKO7SjvjHg25O3SjtVq9GL52yueGtujzEXdTNczy9G9WH3nRvldPJkebKvpasOzp3u69rOFvq+hrxcMyxth6JEaItBUFSiqJQ2CwolVpqM0VayqqlARVIjUK0yCAAAAAAsLCxFFQURQAAAAABqJbiW4xY1smVZ4ccuGWMnXFl2cUJj3M+1epx6+j6PhU7w9umesfB67L7tfS441WHM978tn65M2s6tctYyzM/wAtImZW+k5ddWHL4Pn57ZL3tM7mZnu8HJbb5G681+46PDya8HWtLjeWvpY9gRVURyVt20xLd7RmT1oIAA0JR9h4C/q/w1/deF+tBGcvh/vHyQoKJVhViDSoKogAoVYclarGK7eOr0uN9HLjn/ih6MO8+rwdReZl9H13U43xos+Z80PVu9Mp9I+N0M/c38sq4bXcFrvPa+nhi697uvaznXrwjhmdo5u8UQpCqhKAkojSSg1ESUqpLMsqjMpW4gipLElaiMs1qIg0gy0gDKoqwqoAUaGQIKqoqqyoICT1KLso7nCn/ETl/wA7t/5f93n/AP6j+zqbTbly9IgCIsAUSQZEUABK0jKLGUkVJZlK0yjLTMoNIiKiI0IKIigAkggKAAAiUBABRyYp1kpKzvPqZfDfpXf6lO5xT9jymtnxVy6f004Aw7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoCgAAAAAAACAIAAAAo0AAAAAAsA+owz7Pgz9sPmrzu9pd93w4T8ng6T499/qcY4PcAAAoKAAAAoiggAAAoAAAAKCwsKiistQqxFBCHLWqyM5OxSjtUo7YR5NmTuUo7tKu+L522uzWrmh2jxZU8zFrrykjHn7ero5sndzzvo9GrD7zo3yOpfI8uVfT14OvazhmznXsxjAzXQaVKC2iiIKACLDSpVVqM1RaitEZoKiqRGlVkAAAAAAFWFiKKgCNACAAAAAqxKxK1s2qMy4pZreK1h28VfRcGNt9K9jjV9H0vDr6PoaY/O9ffSver6LMvY/Od66mfLFIfPcrmeXDnj331Dluy4nD6nQ6fPZ9Y+Sz5N7efaXyc6/Y6MeMY4ZllxeudgQVRFhGvknuoIADQlH2HgL+r/DX914X60EZy+H+8fJoqQUKsKsQaVBVggoKJWodikLHPOu3jh3MfaYl6MHg2+76znTN+n1t/ww+Tmzvv74/SPmeHz93nP664bXcF7vNa+rhi4Js4ZlzterGJsZbUEoAAqIDJI0iSipLMsqiSNsjKssylaRlK0INIjNWICggKoADQyAKERpYVFTaobUhQKOzxZ1lhvl9rOn8Fee/jz6Ols25PQIsAFgIoAyiKACM1pGZFkRkVEllpmWZRqMko2yh7NIiKglUAEAAQFAAAJQQQABa9piVi+zvcufNjxT9jz2s+7np+CfWoMOoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAKAAAAAAAADIAAAAAo0AAAAAA3SN2qT2L2v0fQ8m/k4lIj6nzrrt74/SPH0c4xzvzyrI5PWAAAoKAAACwolAQAAAIAoAAAq+wsNDIKjSiKKjkiHYpVuOWddqlXbx0d8Xg2ZO3Sjt1h3xjwbK5oSbadPZ5+9cVruC12LXbDFxTkdPNk7uWV9Hr1YfedK93Wvd58u76GvFxTLDHL0QEqiqGnPx8U8jNjxV9bzFYXHHzWfmzllxjcvlOWclJx3tSfdMwwllxtnvySyyWe4olVFosKRK0rUZoqorREBWVhSI0qsgAAAAAsALCxlRQBGgBJAUAAAAA2qcJLCVuOSkO/hr6N4d44br6V7fFpvT6Ti19H0NMfmeuy7vTYvfyw9T42M5seHzM/q+W5WXcy8W/N+k8P18SPHyW7y60y+dk/RYT0jiHN3AFUQGhQZABoSj6nwRMx4w8K/3fhfrVB84y1XMAVVBoQVYlEUigjlrDs0huOOyu3Ts5ol1jxZ+vL6rJeMnSaT/wPj7Wd9//AJf0jw+Hz8efLZXBazgtZ5bX2MI45llh2FhBSV9kBCJKCiSCTKDQiKyjLSJIrIy0zLMpWkSRpElFjIzWoIKACgACjKgKERVVKCoCUXYQc2CdZauxyvV1nrg45fjY/R0BxrsBAFaAEJBERYACMtR3qcSZ4GblzP0YvFK/XuY2850zw8s1/njyzhn57s/LLhlJcnWIxKVYMyjcZZStMyI0MiwEUASUAAAUAAAlBBAAAiu3knzYKOk3l3Y19r9aDDoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCgAAAAAAABQGQAAABVgCgAAAAAObDG8lVneM5/Dfo9TqF9UrX7Hjt7b97+0cOmnGqMjm9AAKCgAAAAAosKlSgIAAAKAAAoIqgqw0yoIrkrDUZrnrV2qUdcXl2ZO3Sjt0q74vBsrtRDlduzxZHm047XLSY+rr2u69ruVr1YYuGbunkv3csuz16sfV1rWcEy417sIwMOijSADTVb2paLROpiYmGu1l+SccyvV5mbHz8dM+ojNEavEe/7Xky6bbMsvP/NOXDRLhh5L/DbJ9BXJ1qgDQlFVBpUWFWMqKyqwRGxWQAAAAAWAUaZUEWAABAGgAWAaEXSSCCKiaFc+OHp4Kejrg8nUX0r3eLX0e/x41D6Gl+Y6282u3NoiHncnP2mHbO+lePRh5s4+b5ebbwM99y+duy7v1fRYcSOheXDLx19fD2ZEdAZFIEBoaBkAGhKPqPBP9YeE/wC78L9ap7VZ3n1fOstOQoCqVVEFVKCoNQFc9YdmsNx5s654WbOrzvpuLeL9JtG/R8hedWl13X7uq/0vL0OPGzqp/wCo4bWcW3kfWxiJ3RtVEUX2QRCICokjUQFElBlGWmUkaiDKsyhWmRGkTSKiDSDKpoAAUAFZaECFCqqoCsiJfVRSDeOdXrLucn0dcfhrjn+Jg6A5WOoJFBVAEAREUEERGo93m2nD0TpeHWpy2y5bfbEz5Y/9Hz8vR1PxYT5a8f8ADj03wZ357M/88Mo83s9KTLLLSSyNRllltAVERQFAEAABBQAAAEGQAAVz73h19UustTH3+oI0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAoAAAAAAAAlAQAAAAVYAoAAAAAK7PFjeaq494xsv3Mvo5+dbd3QXP4qxo9NWKDLqgCgKAAAAACg0iAIAAAEAUDQKCKq0VVZUEaiHYrVrFzzrs0q7dKu+Lxba7dKuzWHfF4M65YJs24ccuO13Ba7Frtji618jr3u55V68Mezhm7rXtuXG16teLhmWJlivTEEaUOUBRoaZWJmPTsSgAVdqqDUSIAitLEGljKisqsCNisgAAAACgjQ0gCKoDILCgAAoorL1eF0/wCXYc3s8ke3r6Y57bj75dTkcXLxr2rkrqY1v/q75aLNOO3H1lcMOoxu7PVlOMp2/OOojzPSiwHs7eKHq8evo74ezwdTfSvd41fR7GOdQ9+vs/N9V61x5cutvF5Ob1NmXo30mv1j5/kZd7eTez5uyv1HTYcYx17S4nCvfiA0DIpAgNDQMgA0JR9b4Iw3nxd4VvMaiOr8L9aq8Jcpj5fzr5hNNMhBEVYCqCKNMgA5awRLXPWHPDpHmza8zM2aYke903Jvhciky+ayTq9m9l516nHpZxv6qf1RwzKOD6AIACqACRJQVGRqAiiIMso0ksyNQGVSWCtDkritb0gk5LlJHarxZ1G4Yy44pDpcOI882+bLiOjKOL2REZqwBQAAUVlSCiqXuiAKolBYMjKt1n6UO9m70h0x7Vx2fHg6Ay6gzAFBBREokpsURASO8kaj2uuW1l4mDe4w8bHX7pmNz+cvCdeo/Gzny9HPpvwcL8/X/lJZl569DKI1GUlGoyyjUAUSUVAUSQCAUBJQWAAAACJQEABuJ+hMOJas9wRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAhQAAAAAAAAAQBAAAABVgCgAAAAoiu3xO19rj3c9vwZfRxci3myS4jLvVwnGGP0QRtkBVAAAAAFAAWAURkFAQAgCiggsKClFFZVqBK561dmlXSPPnXapR26Vd8Xg2V2axDkh2jx5E2cVrlq4xw2u4LXcq9GGLr2u69rOVvL14RxTdw2tuWMnpxjjkYdFNqBsBSCjbIoAlSqpBFgRpSIK1EqqsStCsKsCNisgAAAACistCiqIACAKAKCiVRUaiZpO4nUw7l+fmy1muefaekRNvc6Ybc8Jce+N7xzz1Y52ZWcZTtXRtqZnTDlXWDVY7kK72Gvo9fBX0ejD2fN6m+le3gjTuzfUPbh2fn9vrm8/Nl7S8Pk5fXu5bMvR9Ho8PWPFy3dO0vBm/Qa8eJHDLDjXqxBVBkUgQVoUGQAaErt8HjW5XIx4oje5fofRKYuL4u8I4Ke7q3B3/APOq9GGPGjbnfnw+fu2XLren0z2nmr83HJ7EUBYCqLEUVkAaiHLCxnJ2K+jW23nvdNsTYqyPS6bl1XNV5Wftkt97WXwYOerHjqN39nErk9QgACqACJKCjA1ASqMgiMtIyNIIqN0xWv7iS28QuUxnL0cHBtb1h6lOLiwxu8xD1a9fE5r5e/qLlfLj3dXkcnFSJimni5c3n257c52j09LqsnmrqyjyvowRQ0iLyCKLoQVSgtRRKgAqgIJARSHft3xR9zpj7uW3vj9XR94y6fIRkUUQkVAoJKLGRFRz8bH7bkYMf+q9Y/GVwnOUhleMcr8nN1TNGbncm8ek3nTz13Xnbsv51NOPl1a5/TGWZcq7RlJRuMolaiMosEFCUWICiAKAHA3GO0+5xzGp0txskpMpeYgigCkoqAIIgAJoaQAXQIAACggAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgKAAAAAAAnIAAgAKKaQAEUUBQAAKAgoK7fHnVbtY92Nnw36x1bTu0yjLc7QANGgAAAAAgCgAuhOU5UEAgAAAKKCKKCgorLUQ5q1WMZX0rs0q7VKu2MePZXbpVz1h2jw51yb0k2b9nLhibOG12bXXHFwWu4LXcsq9OGLgtZxWs52vVjHDMssWu0BFQAUBTsKNsigByCiBCDarGVVqIKsStCsNKRGhpkEAAAAGoVYyCigigAAAKqUURWqxu9fvghe1drmYZxzS2tRarpS1lOK56svPhKiM11iOakETLs9HDX0evx6+j1a+8fJ6q+letj7QmTJqHq7R8iTnN5WfL2nu8XPkeXZX2Okw7PNtLgtLyZV9nBxSy5u8A5AQVRAaFBkAFB9h4bwVx1z8u8dqVnTv+GMs8vxx4avM+nV+F+tD15+nTa5/NbXyNX3/Eep2e2Exxj4ced9IAFgKosRRWRQbhywsc8nLEpMtuXHqxtiZZrpI7nCvq94+uHW5H+bLd+COeM435fnjHErm7ACgIogAykixNoNggMgiSy0jIsWKz9Tnrx72/3VmFqZZzGO/h6fafWHo1wYMHe0w9WvXMZzXzd3UXZfLg4c3UKUjVIeNn5l8sz9KXPbt9o7dN03H3su7pTa0+9h5fzr6c4nY0yiwBQBDQCgioKFQFAQaAGUqQBR3o74odMXLb2x+rqT6yjLftAZVIVYIgoAm0lFREaHc4E+TlUv/oi1vwjbWv8AEw+rGz4M5846N53aZ+2WJZveu07RmZRitMyiNMolbZEUEoJIsQFEAWIkg5a4rW9zvYuJM63V6NWm5V59u6Yzu9KvC+h6PF5eKMd3fqdUwwjz9Luueyx0h4H0RQe1x+BMYLZ707a7PHvO72dM8PJjj+bzaNv2uzbZfTG8MDm9KDIAANMiwGiiaQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAASgIAAAAKsABBBRoAAAAAKKIrsUnWKVxYz7T6x1xK38gAAAAAAAgCgsAojIAAAAAALAqKoA0KsDNc1auetW44Z3u7VKu3WrvjHh2VzxDe9Nx5qkyxNymMcM2cNrs2vRhi4bXcE2cq9OEcUy45liu8jIw2CiAKABQaaSgqKIAIsKorRGVVqMqLEaFZahVRoVkEAAAAGoVpkWBCUBoAAABVSqog5MX89Pvhqd2cu1fSdbwxTicO0R/uvlnXfONn/AA8nh+Xn6aX+qojg90IdnFC4sZ9q9LDHo9jBD16/Z8fqb3d3eodPNldcr6PDqx5yeRyMnq8nLZ5Nlfd6bH0jq2lxTLzV9HFxyjLqAAgqiA0KDIAOTHWbWrWPWSTmpleJy+45kx07pODBHa943Z1vAkzbxj4an6+rcL9aHq6i8XDD+XCPleHzza922989l/y+UXTg+ggKLAVVWMgqDQNw5Yajnku2JlWZGZlmWW45+NbWQz97tc/cY4428/k4VZbUAABUVAZZlGoiwNIJURBpP+i6mU49TmNxhtb3Ozj4d59zeOFrlnumL0MXDrX+Z2PPx8Ou8S9OMmEfOzzz3ZcYunm6lrcVl5WXk3yTPdx27fN6Pb0/TTCc11JmZYeV74AqIjQiKAAoAIqCggABRVAQEEB28U/4beDGz4Z9XXt6oiztAQESKIqgCIjTMoKO1xptWueY/wBGvxmFw9MsUz+G8mLh5Mn+7Li5WKMUxX3umWm4auWMN0y2zHF00eWvVGUStIiNMgoJREFAUaikysnPCc8OevHtLvYeLPvh6tOm2vLu3SR6ePjREd9O1E4cUd5h9PDGYT1fJzzy2WyOrn59IiYiXz/Jze1mXi6rdM5w9/R6LrvNdMfOfTHd4HHtyuTixRG9yuE82eOPzrnuzmvVsz+WNr7DxHkpxOPh4mPUezpEW+98G9PWfi8T2kj5/hGN/ZZsvfPK5f8AKDyvqCIAgAvKAooACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKoAAAAgAAgAAAAAo0AAaThQVAAAAAEGgHLM/QiFiX2cQigAAAAAACwABpKlAQAAAAABRQRVUAqK5aw1Gcq7FKuzSrpi8uddmkOxV2jxZ1vemZs05yMTZxWsza6YxxTZwzZivRhHFazhmWK9GMYGG2RloFgAAAoiNNFARRQERVWDUKcM0VqeyVpVZUVlqGliKDIAAAAKNisgIoAoAAq8IsKqAIOTF2yU/wCaFneJl8OX0fW9f/2Hhfc+Ndup/Fv0jw+Gf7WfqyRHB9GNVh3MUNYuW2+j1MFXqYo1D1YPi9RWr31Dzc+Rc6zow5seTmyb33dC8vJnX3NOPEjhlxS4168WBh0AABQQVoUGQBXu9B4nyjmUmY+jTvLppx823Cf1PN1mz7Ppd2X9NcnX+XGflWrWfo11EPQ8Bf1f4a/uvC/Whrdl5tudc+kw+z6TVj+UfLDDuaQBYCqqxKKqCg5IXaudGZkWREGo3jnVoly3ib2ajnl6Zcr7Jw+kliY5cqI2CAQqKhRlmUaiLA0NRUQ8jUYlkZubljDDnrjpHq3MXDPO1y+fDRi3OpX+VvzzFzmnLZXTyc3Lb3upbJe0/wA0uGWy17denDCdnGnZyd4zKIsQFEFgMqkoKaABQVQEqAAJQXYKiiDIOzh9Jax7sZ/C4ressiztAPYJZZUFVAVERUSImRXbxcS+SYe1h4WPHjmbzEb093TaP4s3g6rqO2OKZebgwUmtIjf1vm8+W2bJN5ljrNsykww9nTotNwuWeXeuBmXz6+lGUStRmZRGgAEokoNCxBBz0o7dMcPTrxebZm7VJrDk+U1r6PXjnMI8eWFzrgyc/wCqXSycu9ve4beot9I9GnppjxbHUte0sPHbbXtxkkBFH2vhLiV9pk5eSPoY6zL0dJj5t+H5Xl87xXZ9n0O755cYz+7wus8ueVzMt99pmXjue23LZnb83p6TX9l0+nGe2MQc3oAA0gggA0AADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiwqAAAAIAgAAAAAAKNAAAAAAAAACDQCzPoIgKAAAAAAALAAWFSpQEAAAAAAhRQRVWAQMuWIc1YbjnnXZpDtVh1xePZXNEN7dY819WZsxNk9lkcU2cU2Ytd8YxNnDMsV2xjEywzXWIMqyooASgCyKjQlRWihAiigpEFINQozRVZaaaQFZahqO8rGa7OXBOKtJ+uHXbzx8uXDGGXnx5BhoAABYUaFZARYJAhQAFGmVhQAQcmL/Mp98L7xMu2X0fWeIv8AY+C+Pl26n8W/SPD4Z/tcP1Zf5ZRwfRjlpDv4obwefdXp4Yd6s6h6cXx9vrXXy5Hl5r+rOdejp8OzzMlnWtLyZPsYT0jEuKXOu2LIy6BoABQQVoUGQBY9X23S614HSsvJntbJ/K9PTTjO5fLHl87xO86cNf8APsxj4/NecmW9pne5l9X4C/q/w1/deF+tDhfW2vbx5dcny4fLppWTSAKCwqpRYEUIVuDbTCTLI1AFclImZehiwzb3OmEtvDzbs5jHZy4JrTcw8m380tbZ5eHPpsvNKwri9NAAhRWQRmUaiLA0LFpgRfazC+2seZnyMzmuxN7pcm5hjGJllluIiLBEaiJJVZEUQWAKggGkEBQWCn/UQVIAAAKAyVIOfDPeVx7xM/hrOT1YgpOwIoAyCogpJFZn3HHsvPu56cebervUw4MUbtMPTq14z1yebbsyvpg1bqGPFGqQ83NzcuWe8ru6n08mPZNPS8Xz593TmZlmXhvd74yyy3EZlK1GRGiQoInsBIqLAOWLxDft3WZ8Od181ic8uKb2lm53JrHCRlGGwABW6RNrVrHvl+iZ5r0noFMMTrJljcvZ0n3Zvz+WH+Xx/FP3mfR6f59st+mL87vbzWmfrlh473fYk4kAAAAESgIsAUTQGgEFgoDnnHNccWmPVwLZ5ePozjfNz9Rz4sVst61rG5kxlyyk+a5WYy29pHp9V4UcCvHxT2vNfNaHiuvUa5r25YT24cem2Xdpwz/m5sQcHcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhQAAEAQAAAAAABVgCgAAAAAAAACNAAAAAAAAAAAKLCpUoCAAAAAALAAUErQo15ZiN6WsLIzy5q1dilXSPPnXZrDmh1jyZ1raTZpzkYmzjmzFdZHHNnFNmXXGMTZiZYdpGBloATSigIJKqgKoICgoVQZGlAUWGoRmjTXyZVpUBWWocmP+erWHefVnLtXtdRrHybj2j6niPR1U42f/jHm6X8H+9B5noAABYFRoVKKIgCwAqiUGitAgKK5sH+bj++FneMZ/Dl9K+p8RduHwYfHuvUfi14vDP8AaY/qy/ykkOD6Dnxw7+KHXH2eXde70sfaHLM6h3lfLy9cnRzX9Xl5b7lxzr6HT49nTs4peevo4uKWJYrtAZUANAAArQoMgDtcTDbPyMWOsd5tD6XxByK46YeLT0xxES9Or7ujdl8+I+d1P7zrekw/llzfIvrvAl4p4v8ADG/f1bhfrQ83Pd78pzHzQ25gAAKqCiKQsAVAFGq1mZEt4j0cGHcx2e9x+PWkea0Pbow93yOr23s6XOz1ncQ8G07mXLdlzlXp6PC4a4g8710ABYKyCMyjUQT3UCqiIqIKiIsREWAispJWmRFEFioACglEEWILBAqoMqu2ok5ZsUVFAGSpByY51aDG+sL2rWRwre6Y9o0IogqByIkikOSMla+5rG8JcbkTybekOC1729bSznnlWsNcx9XHKbc3WIiLGJRG2JRlsABL3AAQVAUAQBAAAUV7nQOF8s5+KJjdazuXf8T86M/K9lSfoY+0Q9eP3Okz/qzfH2fvvFtU9tWvn+9fKI8j7HyAAAAESgIsAUABQAGqRu0QuPdL2exyscU49e3ueK7dTj5c5Pyjz9LfNhb+dWImZiIfb9G4eDpnFv1PnV7RExjp/qs7+H65dt25/Dqnmrz+J7LNE04fHtymE/u+V6jzsnUOVl5GT1vLoPJtz+12Z5/zZWvbp1zTq1652xxkQc3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUAABkAAAAAAAAVYAoAAAAAAAAKIoAAAAAAAAAACiqiAIAAAAAAoAKCCwD174d8Ot3QrDvnjxcf0vLqy5mX6q56Q7MQRzzrlhrbpHnqbZmxa1I45sxNmHWRxTZxzLNdZGdoy3ARVJENJpQUECAmlVU0kFQgoqLAVKoDsTx8tcMZfL9CZ1twN5YXC48/LlnHKZS8fPhpWQaa+TLYrIKjUOTH/PVce8+rOXavc5s74OCfveE9PVfiY/pjy9J+Fl+ug8z0gAANKiioAAIsAKolFhpFFQUBzYP87F/zQs7xnP4MvpX03iSf8Lhx9j5J16j8SvH4Z/tNf1yRYcI97tY4ehih1w9ni313azqGMl/V359HhxnOTzsuR5t7bebN9TRj6Rwy45cXrjEsyy6xBlQBZQAUFUUGQB9J4fxRXLl5NvTHDyuoZ55HJy3md7mXfL00YT55V8/XPP1+7P+XCYui+p8E/1j4U/u/C/Wq4fN9Cd59Xz+jTo4gAAorI0AAKsRFgG6VmXew4dz6OmGPNcN2flle7gwRSPPZw8rmREeWr2W+TDh8jHG7t35R4WXLNplwPDlea+zhj5cQZaoCCqCCspKNRkRoARBURlUBYyiLARWUK0MoQBQAAEFiDKoCiF9ViCKIDcTtrSs9g2IIlBY7TBBzX9HA1e7OPZVRpESgAksr7KSyjcZRlpJZZWJtmZG4yJVjEoy2AAgAACSitAgAIgACqK+76JT5u6ZyOXeIi94mKPjOTmnNmveffL17/u6dGH5cvkdFPtes63d/V5Z/Z1R5H14AAAAIgLpFNGmjlFEEAAHLg/zafeuPxY/Uy+DL6V9B1CIji1/5Hzb09ZP3k+keTofwr+qvoui9Ppmtbk8j6ODH3mZ7ODrXVr9RzeWseXBj+jjq65X7DopjPi3Xm/SOWOP7R19zvw6ZxP1V4SPnPpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAIAgAAAAAAAAqwBQAAAAAAAAaEAAAAAAAAc+CsWyaly8ji2wd/c3MeceXG7fLtmN/ijpjLsANCMgAAAAAACgQDUKIjUQqPd4v8Ai8TJj+x50V1MvRn2138nh1+me6f1OasOaCJku02dmJGZsxNhuRibOOZZrrIzMsMV0kBFVdByaNDKCxQDkCBogABAFgX5Aq0qpCI+16Z8m6r0y3AtquelvNSf9Xb0fJ8jBk42W2O9ZiY9Yl9HqZNnT9Nunfy+XL6x83pM7r6jqtGX83nx+lcKvC99UINwqsUFRpqn80ffCzvGb7vb5PfgYv8Aml4r09T8eH6Y83S/Bl+ug8z0AAAQ2qUFQAARYUBRKNNICigg5+NG82P71nfH6s7PTDP6V9H4m/7rH/C+UdOo/FyeTw3/AGer+/8AllyVhxe29ncxx6PQxu2Lwbq5ZtqHVy3brjqx9XnZbupMvPlfV9TVOIxLjlzrvGBltkRoDgVFAAUFBkBX1GS0cLplKROr37y+Z3MzLtuvwY/LF4ujnM3bP5s6PqPBP9YeFP7vwv1quPzeyd59Y8AdXnSRFFCi6VDSgKCKsByVrMqza72HDvT2MOKtI3L16sXy+p2W8xw8rl6+jWXi5MkzLG7Pm8OvS6vLjz71wK8z3AJQEUUEFZSUVkStiAiSKDKsgsRlFgIqINIyhAFAAAQWAioIGkVU0iWKCKjdZIlaFZVkAQc096uJqs4gjSIgAqSg0yiLGUStoyysZmWRsSWasYkRoABAATZs4XhFVUEABAA0A5+NinPmx44/3rRC4znLGJnl5cM8vlOX1vXc0cbjYOLSe1axv73xjv1V52cfyyR8/wAMw46bz++WVy/5RHnfRgCgAAAAAAaBU2AAg5MP+ZRcfix+pl8OX0r6HqU/+64/+SHlcDh25WaI9Kx3tL29Rh5+pwn5R4Ony+z6XO/nXe6n1GtqRw+N9HBTtOu3meE8/UbPtNl47Y+k+kejpdX2Wqc/FlfNfrWUcOHpBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUAEAQAAAAAAABRoAAAAAAAUKAGlEAAAAAAAFHLht5clZfaTwo5nTfbRG7U9Xq6fHzzZj+T5XiOz7HLRn/VI+JvWa2tH1Sw8tfUl5kq6EFBAAAAAAFAAWIBoEHJENM5PX6bOr2r9cOHLTyZbQ799eNeDt1Gz6SpDe0WptmZFkYmWZslbkYmWJlmukWKzb0RGhdIfMURdIvCCBQBBVgJQNkEAWBoUKUVEc/H5GXjZaZcdpi1Z3Ew93mZsfVePOetYrmifp/bp7NGzza9uq9r6z6x4eo1+Xdp34/w/dy/OV876SrzPW1AI1CqzQVG/ctfVZ7M/N7eXv0+v2S8V6eo74fpjzdN8Oz9dB5noAABqIVUBUAABVEFWJVVUFhRdGhnk07PE/wBpxfe1j3x+rGz8PP6V73iX+fiR/wAD5Zvf+Lm8/h3+00/3/wAo56Q5R68uzuY4dyrtjHg2pe3q6GS/qZtacXRvZxS89fRxjMuOzFdIyI0gNGlEAGQUUFBkdniYvbZ8dfdvuuM5yxjOy+XDK/k7vVM/tMvlj0r2eU1svOdrl0+Pk0YT8lfUeCf6w8Kf3fhfrVY+bvO8+seAOrzgAC0aEASirBAHJWszLvYsfp2dMJzXDblxHqY61pG5cHI5PrES9NvlxfOwxuzZy8m95tMuN5LX1MZxAZAAXSgKCIrIisCVpAVCRUGVSUCIyjUAVJRFSURYgKAKgAAkiiMqILBFBGa0ANxIrFUACjcT2YlazBaxNrREMrb6PWy8L5Lx4tePpWeO67MPJcZ+Tj0+z7WZZe3NkEcq9DKCxGUrUZSWa2jKNRlBoZZqxmRGjUt+WdLxUtYGaokioKoIAAAAACe99F0DBHtr8i0fRx1mXXROduH5V5euy8vS7fznH/LodT5M8nlXtvs81nbec8r+br0+H2ejXj/TBGHUAEFAIAAAAAGkAAG8f89fvXH4sfqXtk+l5uO2XDhrHviHm5+TGLFPGwz29Lz9cvf1N8mWWXvcZI+d0s8+OOPtMra8rco+c+lUQUCgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwolAQAAAAAAAAVYAoAAAAAAACDWgAAAAAAAABYK/RPC3Irkx3wX7+0iYevorxvk+cfI8bxuXRZWfw2V8j1rizxebkrMe95Lhtnl2Zz5V7+k2fadNoz+eEUcnYAAAAAAAUAF0sCVQRuIclYbjGTu8W3kyQ7PNjWWJj3u89df8Ad4cvx8b/AEurtNsOnCbYmRqRmbMbZtdJEGWo9TpEUvz+PS8bra0Vl1+dx/kvM5OD/wCHeavTcOemxy+WdjzzOzqs8fa65f8AiuqaeZ3VQUaREQokqCACUohFFiJkimpVZynIKUVEHLiy3xW3ErjbjeWbjMpZS9otaZZa59anHEiqvsjUKM0FRtYWI9e1t8LTyXo398P0x5tHbP8AVQed3ABYAFZUUUAAVRBVSqqoLCl7NB7MDs8P/asMf8ULh8WP1jOz8PZ+mvc8T/7Rxo//AHb5dvf+Ln9Xn8O/2ej9JDs44YxerPs7mNzbdp2eDP1rgyXdDJZzyr06cXWmWHCvZEcco3ESUbIUKKIaQE0gooqgyPW4ERjrkzT9Wob1/HL+Tj1H4Vnz4jzclvPaZYYvrXWTjFX1HgiJnxj4V/u/C/WqLLxx9Xgjq85KAKAoIolFWCOStdkS3iO5jxu/WK0h6MJxOXg25W1w5uR7ol5t7zZnZly66NcxnPDI5cvQCIACqAoglVkRWBK0iCiSKIyqARlEagCpKIoCoiAAoDIKAqSiVQQQFRCqCKNkSqqsgBCSIPc6DwvlnMpuPo17y6aMfPtwn9Tz9Zs+y6Xdn/TXa8R8ml+ROOnpERD5dvqLzuz+rHh2Fw6TTL3s5GXB7RmUaiIlaRmWa0yko1GAaQ0ir5G64pkmKXOSOzj4t7+lZd35tzTgyZPJMRT1d8NOVleTb1WGGUnM7x4lo1Mwy8te6esEkVBVBAAAAAANPqazHB6VqO17u+n08+Xyjxdb9+aNf82yf9ny87mZlHB7Z2ADQogggAAAoAAAAAN4v56/fC4/Fj9TLtk+m6hfycSla+s07y+Wl6+uvOzGf0x4ugnGq3+qoPE9wgoIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoCglAQAAAAAAFFAUAAAAAAAAARdKAAAAAAAAQBRp73QuVPH5VJ32i0OujLy7cL8q8nW4fadLux/pr3PGHGib4eRX0vV8K6dZON+f52V5vB8/P0GmfKWA8r6QAAAAAChIAsANCCwsSuWHLENxxyclZ1MO/yZi1MdnXH4cnmz/E110PMkyw68MbSZRuRERQQdvh5PY8nBk+q8PV8S44r1nlzHpk8mT/zxEvXPXo858tuP+K8uXM67Vfa6cp/xY8JqIeR6xdADTKIFEAQEBQlEg9PpGDDyOZSma8UrLeqebZjHLqcrho25Y+uUxr2OpdAy458+L6VJmdTD5jJivjtNbRMadt+nLVk83Q9Zh1GuT+Kd2FcHuoAoIqwJfdWm52YrQJVRUbVYj0t74mnnO+3tr/S4av4/wBVBwdQAAFAVUA90UUqqIqqyo0KsQJVBkdng/7Vh/5oax+OfWMbfwtn6a9jxLbfMxR9VHzbW/8AFz+rl0Pp0mj9LVXZozi7bHbr2hbWdPZ5OOcnTyWdK87lxyezVGGJc69ESXGlbgIooKulRWEIhoaNGg5ARdPRzW9lx644bw7Z38uHLbOctc/q5eaMOrT6/wABf1f4Z/uvC/WqRnL4XzY6uAJVAAVOQAUg3Wu3apR0xjjsrtRMVhw5c/udblxi8+GHmydKbTMjh3evtARAAABRRRBKsZSUWMiVtEASRYJLKoBGURqAiiCwQIglUAABAQFEFiDKoCiKGkStCxOkG1aYBAQB950bHHA6Xn5Vu1rxqr09HP3ly/lxtfL8Wv8A0+Gv32bJi+L5mac2a1pl1NuGV5yyr6WrGY68J+QjLoiSy1GZQ92mZlJZqoyjTKSNxqIdjFim8x22uM5s+rGeXlnL1sXS8t/Jqk94e7xvDuSYib6q+jo6S531no+F1fiWGqel5r3sPSONh8s6+lDu5cOKcOWs441NZ3Gn1cdGOGvOR+cz6vZu24XntlOH4zmjWS33uJ+Vy+Kv6Jh644/QSUaQPZQAAAAAAdji4vbZ8dfdt6XVc8TauKPSrtj6as/zsjybJ5+q0z+XG14o4vWAAoiIAAAAoAAAAANU7XqTvC9q+g5/+y0/5Xzr19X+Jj+mPJ0X4V/VUHkesEqiIqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCgAAMgAAAAAAo0AAAAAAAAChVBAAAAAAAAAWAsCK5+PknHlrO/eY3jKMZzzYZR+kZ616j0CJ9bY4fmMxNbTE+6Xt631urP54R8fwa+XHq9V/g21B4X2gAAAAAFAAUSqAsNxCxmuWHJDccaO5NvPgbxvdyznwfV09s7R1ZmU3MsVoUBYEclJ1ak/a+h8Rx58/Cz//ABeLSf8Ay9nq1/7Xf+rGvNs9Oq6a/wBOcfO+9uHleoF4TnugqKyFEEQFZABAWJmsxMTqSXhbOY+g6f4g5XGitMk+fHHul2eTk4XPi16drz3mHtm6bNXly/s+Pn0d6bqLu0/De8eBnwezmdOs8tnq+phl58eRdI0oIKCtNzszWg92aqKjaqy70T/gTDpOuy/D9HLX/F9QcnQAABYAFQD3RoUo3CxBpWQUWGhmgIS7XBjfKw/80Lj8WP1Z2/hbP016PiGd9Qt9lKvBa2/iZ/Vy6P8A2uj9EclYdqkJG9jm3qHFe3Zu9nHGc1072dee8uFe3CcRGWa6RmWGa3AFWGliKqoMSlIyI0AADmwV3kj7GuRfz3a7Y1z77fpHXGXRp9f4C/q/w1/deF+tBGMvh/vHzg7OKCKAAoCINxCxK56Rpy+bTpK4ZetcV8jhmds28t4Y8EKy0KsQFBABkIJUERYjMjUQSqyCiIoyigEZRGoCKADIsAVNBwKa94DMlEEUAREaNIigAml7qgyrUS21PWMX0oiAhR2eJinPyMWOI3M2h9h1/PXi8bj8Sk/y1jb1aPu6N2X0j5PWz7Trui1fLnOvhd+9NvI+vwgLGURqIyezSJLPzVlmWW0FrUbp3l9L0bjUy8jHFta29HTY+bZhPzeDr87ho2Wfy1+iVx0pWIrWIiGpmKxMzOoh+lnlwnp2fgbc88vnXSz9Q4uCdWyRv7HzfO69N6TSkRX7d7eHqeqmM8uL63QeH57c8M85xI+Ezzu8y4X57LvX7jD0xn0QllpAUAAAAAAHrdOiKVyZpebnvOTJa31zLpl6a8J8682uc9Rty+kcY5vSCgAIUQQAAItDSUAAKIqCNU/mj71neF7V7vMmZ4eP7ngPV1Xx4/pjy9J+Hl+qqPM9SCKCKiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsKAAAyAAAAACqAoAAAAAAHICNAAAACgIAAKCiUQIsKlKB8kfofhbkVzcbPxrT/NWYh8Z1PBPH5mWkx73v3/e6XRl8vR8Tov3finXa/wCaTKPPHgfbAAAAACBQAUVFCjUOSFYrkGnIc+O30bQ1O6ZT0deZZmWG4jWhRRFURqHv9VtbPwOj5Z92O9Pwl6dV/ddTj/TL/wB3n3fjdJf6sp//AGvCHB6aKM/M0AgAgiSgICoIIKo3EzHpJCyVuct7RqZ2wvdmST0igeygiw0INNxKorNVYGWoVUrsRP8AhS67ef8AD9HPH+L6gw2AAAAALAsRYVUWFWI1Ae7KrDSDQlAQdzgf7Vh++GsPin1Y2/h7P012Ot383PyfdDyDZ+Jl9anSzjp9P6I5quzUiZrMuvexka46tpcTlXqnZBltmWEagoVuIVUU0MozJVjMojYAAOzinyUtZ159Zlb2jOPxZVBGmn1/gL+sPDX914X60EYz+H+8fOjs4Mg0qAAACw5qrGMmt6Ymy1iRhWWxRBViAoJIAyAvsokoqMyLEErTIggNDKACxGUWAigAAyuhQBaxu2nby4vJhiZak9K555cZYT510mZZrqCKgCINAyICgCIKNxJC+qgyiIr6jwzxotybci8fQxxMvO6zzJ5XMy232idPXlfJ0mM/my5fL1z7XxTbl7a9cjxtjxvq8DIqJI0ksns1ESWfmqSyy1GQ5bclJ1L2uDy549otHq76MvLnjXj6rX9pryxfU/8AtBEVrEREzrvt4/K63mvNvpzET7t9n0NvV+bF8LpvDMcc+bHiZeZe/ebS6Vsszt83PZbX39WmYR17zuWXCvXBJRUBQAAAAAX1B6mSfYcatI9ZeU3n7T8nDR2yy/myBh3U0ogAiUEAAVCAJVAAKAgaI9YB7vJmJ4mN4T1dV8eH6Y83SfBn+qg870oIoIogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqAAAyAAAAACrAFAAAAAAURAGgAAABQEAAFFVKlGSEGilAR7/QOV8n5lJ3qNw9PxbxYpnpnrEeW8RL3T73R5/wBNlfF2fuvGdN/nwsfGjwvtAAAAAAKACioqlGobVzqrtfdE23Syy+qWelcc+oiq0ILAiqDUPaz3nJ0bi/8ABnmP+loejTfubp88XHdPv9Pflk8hHB3vqaVWQBAEBlEFiAoylAVUUFWFRoIysAENCDUNxmqqpRYVlpRly7+g4mr7JAZUAAAAAFUWFVlVEahVZFaBoZoCDudP/wBrxffDWHxT6sbfwtn6avVLebm5nQgz9c79aafTRqn9Mc9YcxGc2LWda9kreuOCZZcq9CCNMIjStaWI1ENaVmroOGWJYlG4zKI2AADltP0YhxFSAK0+v8Bf1f4Z/uvC/WgjGXwvnh2edNGheTRoOTSaFQFbhrasX1pvYdxdGhOTRMKgoCBABBKAijIowNQEGRK0giogsAElJRUBQAABAAd/gce+fNWIej1vDHH9njj3RG3pxx/cZ5fm8Gzbz12rX8pa+elNPM+iggyChoGRGgATSAyqgitxOwRAH3PHiOm9Etee180Ph8lvNa0/XL09RfLhpw/plfM8Onn2dXt/m2Wf8OMeSPqogsREUlmRqIjPzaZZRYIlaWJ05YyaWVnKctzmlxWyTLVzZx1yOObSx3YtdpOAZBJFQFAAAAABzYK+bJX6vWVndnO8Y5N8nJN76dYy9ck1zjDGCjVUEZUVBFRAAAFgAAAWAMgA9rNP/udHivT1HxYfpjz9N8Of6qDg9AiKCKICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAoAAAyAAAAACrAFAAAAAEABoAAABYAAFAAAaEZAEUqgI7HGyeyzVs++6jWOo9Ex5I73xx+T3dL97Xvw/ptfG8Sn2fUdDu+Wcj85keGvsgAAAAoABAKsKih7jTW1Yps2IKp8wgRpRKNQIrXlnShH3vUx3m3TORT3Rko7ab8f6a5bp6Yflni8xpxdVFQ0AgIQkr7IjKCGhoZAEhBVVRUaD3ZBRWhFhpqM0VWarSsqKi77aQ+QCAAC+wCAAKJWlhYzVVUqwrSC6UXSjNAQdrg/7Tjaw+KfVjb+Fs/TWObO+Vmn7XXql736ta/TXh+mOerkmVc73cF7OtaWK764xKSw6okorJpGm1iFZbiGtNMWqzoRiWJR0jCMtwAAFmdoAAsej6nwRMx4w8K/3fhfrVDjn/l4w7PIgAAACaFahVZXS6VF0ul4Tk0aE5TSIoCoASiVREUQEZGoCDKSjUQRRAAVJZRYAoAAAgEQD7Tw/w+/tLe54/XeRGfl31PaJe7ZPL0uE+dfE0ZXd4pty9sMeHhDwvuIhVREWAAmhYKioiCIKgVYNIVHd4HHnk8vDjiN7tDWE82WM+dct2fk1bMv5cbX0HiLlRWa8Wn8uOIh8g69Vlzts+Xo83hmHk6XC/wA33v8AlDbzPoIKrIiozKVYiI0MosRCxqCbZVNoKAAUBBkGgAAAAAdnD9GlrLj3Yz+H+7gtO5mU0NexoBQGV2ioAAAQGVAAAAAZ4UDgevknzcOv2PId9/fD9McNHbP9VBxdxABK0CCIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoCgAADIAAAAAKsAUAAAUKgIAKoAAALogaNKhpEF0aUNGgURAAAACJ0++6DmjkcTPxpne6PZ0d/eWfOPl+L489NMv5cpXxXMwzh5OXH9VnWeXOcZWfnX0deXm168vnjKDLYABAFAAUFVYgCKsKi7D0I0KlFGWgZWGgHf4mOMu6+910zzbJPm57r5deV+UcmfhzWZ1DOCZ9hysc/6Yt+DtlruvOyz2rjhsm3XL+cdJXlj1KqoaQQNBUBEZBJBUZFABYCqKNAyCiw0RFaanuxRVStKrNFEAAAABQAABRK0qs1VVK0KitKzQEAB2uF2z1ax+KMbPw8/o4eR3z5J+u0sVS961Pgx+kc0dkmV9mPd17y4Zc69GM9GUZbgzKNQaCrENxCsWtw1ppzViSkcdnHLLtGU0y0gKAAAAsPqPBP9YeFP7vwv1qntSd59Y8gd3jE0imjQGkAWIBqIa00wul0qLpdNMmk0BpNIvLMwjLSApKJVQRRASWU9mp2EFRJRWRFAUAZRFgIoAAAA7HFxzlzUiI97WM5uLOy+XDO/k/Qr+Xp/Tbd9WmH51mv7TLe/wBcy9fV3j7LD5R8fwiea9Ruv8WTiHifaRBURFEFAABEStIIoml7qgyo+n8P44xRn5d47UrMQ7dP+Lj+V5eLr7x0uyfzcY/8vE5/Ink8nJkn3y6LlsvmzyvzenRh5NWvD+XGRkYdkBRAREqoiNIkosRC9moIyrIKAAUBBJQaAAAAAFctp1SKws7M5Tm4uJRaAgI0IAAgAAMgCgAAAAIr0974kPM+t13fwfpjjp/j/VQcnYAQSrARUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYUAAAAZAAAAABVgCgAAgC0BABoAAAF0ogCCaBQ5AAAAAAAH0HQOV7DlUiZ7S7dPl5duDyddh5+l3Y/0r4h4/s+X7SI7XfPG+cbs/qdBl5+k0X+ngHF6wAFAPcABRKqqAjKwqg9LjV4mXj+yt9HP59xee1fK3h5e2Tnt88xlx9r6ulevltMMo13gojSwMq0A7PHy+xyVs6asvLnL8mNmPnwynzj6fHkw8qmp7S61+DNYyxX30mH2NmE34TOfJ8XVsvT7Lhl25eBfFbH6ww+Nlj5bw+3jlM8eRUFQIgCAiSgMgpLAsABYBRRVRkhWhYUiK01PditEQrLY0yAAgAAAACgAKJWlVmrCqlaFZWGlSgIoCOzxO2Zce8Z2fBl9HXyTvLf75WD3a/hn0je2LSM4z1de0ssV3jKMtwEBYgHJEN6bcrWohrSsJMMSVY4bMSw7xkZaZBQAAAFh9R4J/rHwp/d+F+tU9qTvPrHkmnoeNNCAIoAjULErcQ1ptzq6aiFZXRoTkmE0BpNC8sTDMwy3KhKKhoU0vlTg5TTMlWMSjLaSgojKpKCgKJIIiLARQAAAB9L0Lh+1zUvMdqzt36fHzbcZ+bx9fs+z6XZl+TteI+XM3jDWe1XyC9TlztyY8Mw+z6TX+c5Bwe9DaKgKyaQUiszEzEehO/EGQUZFERQGmRkWI3MQ+nzWjh9Mpijta/eXbT6faZfLF4us+9l0+Hzzl/wCHy9p3LDg987CIqAogIifNUBpGZSrERL2agjIzINAAFAQQF5EABQAAUEBQEBRQERGlBKAgGgNMnICwAFAQFj0KTvjTDz29nbD6OWrvn+oHN1AEEqwEVEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFAAAABAEAAAAFWAKAFU2ILoDSAAKAACiKCAAAAAAgKAAAA5+NlnFmpaPdLWN4sTPGZYZT8n1XV6xy+n4s0d5rEPjnbqZ+8l+cleDwy8dPcP5crAed9AQFFAAAFgK0L7IBEUX2RWoWewoMq0M0URpQVVV2MWe+OY1Mvf4fUItMUyPf0nUeXKY5dnzet6bz43Od2s3Fx5a+and4ebj2xzPZrqtP8WLHR7/AODLu6y6fPfTASIgUQRJQSoixUlBUEVSAUVGhEUhfeDQ0y0qxmtLCstIvyZUUVy0w2vW1ojtBJz6RnLKYzmuELGhJRQ2CioACg0sKxVhqFRRYjUKrPuKIEgjn486uuPeJn8GTrzO7S3CLe0WZcVpKYz1cUow6xgRsEFhyRCxnJuIbiG5HKtxC6VhJcNkreLhsxLDtiiM1tAEBQAAV9R4J/rHwp/d+D+tVPak7/3eVo09LxIJRBFAFhqIaiVuIb025VqIaiFYtXRpeDkmE0cCaTScKzMMzCNSsTCaZbXytRUS1rynlVnlJhxTDNbxrilliu0RBqIjKomxVAEARARFAUAAHJip57xD9B6fSvB6dfLManU6l7Oknrll8pXx/F8ucNWr+bOR8Jy81s+a95nfeXVeXK+a2vq6sZhrwxk7SQEbE0ioCiaAex03FXNxuqRrvTDGSJ/5Z1LrokuyS/KuO+2arZ88f8vFHF3AEErSILBCq7fBxe15OOJ9Il2+rcj2mWKRParpPTVn+deTOebq9f8ATja8dHB7URFQAQVA+apKI1BlKIiezSIyrMg0AAUBAASUFBVABRABQQEaAAVA0omjSUNIigAyAEAUABQdvHP+BMOm1n2w+jGHfP8AUDDoAIJVgIqIAACgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwCgAAAAgCAAAACrAFACgI0AIAoAAKDSVKAgAAAAACgIAAALE6mJWew+u6fkjk8HLimd/RfJ5K+S9q/VL0bvXDVfy4fP6OeTd1WH9UrA8z6AACgAAK0IC+wKRkJW9hYahZ7CgwrQlVRGoUFgUaWszE9pPkd+ZXfwc2+Ptt6UZcWev2vpad8zw+zr5nUaPJn9pi6Wbia3MOjak1nUw827V5a9Wjb58eHGPO7xECkoIiCVEWKkgqaBQgFWBFERSF94NK0zVVazWlVlRfeMqKK+l6DGDPHI499e0tWZq66OPtJK8fXeadNsyn8PF/4eJzcE4M96TGtTMOo55S45ZR6dWfn1YZfOJKMugA0KgALANLCsVqFhUUaiNQp7s+4oggDkxTrc/Ys7wvZw+9tFqTLikq4syjDbKI1BYgVuIckQ1HO1yRDcQ25VuKrMK58+rjs4bMV1xcN3HLDvj2iIlbEQEFAABYfW+BaRfxh4X+zq3C/Wg78pbx/y8Yel4k0iKGhRAaiG4WMZOSIbiG3KtRDcQ1GLV0aVOTRpTlnTOmVTSeVOGpUmieVlZksVbigWteVJqrHLjtDgtDFdsHDZxyxXox7IjLQiKiSKQoAAkggioIoAKo9rpHDnkZ6dnvdf5UYcNePTtqHt1/c6bPL5+j4fUX7fxLRr/k9Xww8L7gACiIihoU093w/ePl04Z9M+HJj/wDNHZ26X036f1OHVf7bdx7Y2vDvWa3vE+sS43HL0tjvjeZ9YCKmgVJGVRBp7HTojHTLln6nl5r+e9pdMvgwjzavvb9uX0jhHJ6mUStAgREykxpeO1JfZElGmZEagks0ZQaQStMpKACgAIAAkiwhQAQAAAUAAAAABFWChRkhAZVkAFAAUHZxT/h2h1pavw4s4/Fkgw2ACJVBFRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgFAAAABkAAAAAUaAAAoCKoIAoAANFSgIAAAAAAAKAAJQAAHt9Gz+TLNZn1dXqeL2XKv9Vu70ZeujH8snhwnk67ZP5sHnI873CgBQFBQWBUUEFWdkAorULBSBitKIsNgqtJfcURWglG6WtWdxKy8XlLjMpZXdpy51EWat5Lxt65nNk4rx5arry5jqXxzDgl5s8eK9OGXMEYbSQREERFirLIsEFVIL7DQJFERSGvcaWFZrSrWFVqIqqyADtcTkW4vJx5az/LK45eXLGs7MPtNeeHzxsfS9bwY+Xx8XNwx2tG7afH93XqJ+883znLx+G5c9PMMu+u3G/wBkHB9AUBRKAg1CxKqqy0rTKixGlEo0IICJE62KnvXYtjMywjURGVRlGosQ1EESuWIctatxyyrkiG4hpxtb0zK8MuGzhszezvi4LMS5vRE0I0AIiCAoAsPsPAf9X+Gf7rwv1oGc+zwx6XjE0gaQUAahyRDUYyckNxDccq5IhuIbjlaul0rPJo0HLPlPKiyp5V8n2HB5l8iez+w4POvs2vInCXImritCGNcUw69oc69ODr2cTlXqx7JIlaERUQUUAAQASiIiigjdKza0QsLeI+96RgrxeNfPePSHyPUeVbk8m9pn3vbv+7p1YfP1fF6Gfa9b1O35ekecjwvtAKACAADs8LPPF5fHzR/uXrLeF8ueF+VlTPHzYZ4/OWOfquKMPP5Na68s33WY+qXmrunG3ZPzqaMvNp1X54xkcnUBWZVFTSa3Ir1M1vY8amOPfDyms/aOOjtll88qiOb0IkpVQRXocfF5q9odfkU8s+j05Yca5Xnwz522OqjzPUiMtRAoyiNIJWmUlABQAEAPYEkWCgAgAAAoAAAAACqGjQMoRQThRAEQBQUHNjntZwyt7YpPiyQZaABEqgiogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoAAAgCAAAALA0AAAAVQQhQAAAAGipQEAAAAAoAAoAAlAAAc/HvOPNWz1eqV9pjxZYd8Pws5/d5Ns46rTl+VjwxwesFASgKDQlBYKFQVZ2QWAWVUVYGK0CNw1AKrSX3FEUBViAh6LFphZbOyWenq5Yy/W47anvDeWXmjGOPlrjkc20kERBERYqpIIhWlSC+w0gjQiKrSVohfklaVawqtRGhWQKAK+m6Fy65KZeFmt9G/8AK8bqPFnici9PdEy9Gf39GvL+W+V87TPsuv36/bOTKPPHm930lAFEUEGoWJVaVlWmmRVK0DAoACMyLEEaRlFgyipLKNRuIbhYzXLWHNENxwyrliG/K3I4WtacdoWmLr2cFnK9npw9nDZhh6IaRFAVBBkFAFh9h4D/AKv8M/3XhfrQM59niI9LxAKJpAQVuHJDUYyckQ5Yh0jjk5IhyRDo41vR5Vc+TynlODlfIsUXyp5ljHLkriPKzc2/Y/YvsvsPK5/aHsWLY0s4JscNocFoc7HowvZwWdazlk9et1rOKXKvXigy2JIICgAAACSlEEABXo9P41uRmrEQ6a8fNnjPzcuozmvTnlfaPqus8mOHw6cek95h8JPeZd+ry52TH5Th4fCsOOnuy988rUHlfUQRQAABRNAr0+feM+LiZ/fOOKW++rym995zt+clc9E41zH5Wwkisy5OvPCTGkFEFHNgp5slSd4mV4xt/JeVfz3dUyvNXXOMMURh0EBmSGWn0fT8W8VvueXzo1fT6O3HjpsL+T52nLnqs485JfOfTiJKLElEVJRGiURUZlFAUABAAQBQAURUAIAoAAAAACwsAUQGhNgbQBGaIICrBuk+rBfYneoIoAgyALBJFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhQAAEAQAAAAVeAFAAAAKoIKAAAAQGipQEAAACAKAQAAAABAAWJ1MS9zze34Ux74h11ds483Uz11ZfLKPCHN6QAEAUVYEJVQBFgEFa+QrQg1B7stQDLcKsL2UVGgFAWGtbhZx7nofceWYjep0evbgtxnpakblZiRjzRhEaAREEQWKgKIhBIW+w0gKoiipWwZaVtGhfZlYUjIL7UGUWN48lsV63rPeJfR8yadR4lc1f56x3dtXrhnh/d4uqx8u3p93yy4r5ifo9kcPm9ygCqDQlWGlZWFhqMtQqs0aVKoMt0ra8+WtZmfdEIvF45OfZEQSUGoiSioiVYkojUQhBuIcsQ1GMq5q1c1YdI8+VckQ3ENRxtJhxWKYutdwWcsnrwcEow9AyigKIUEQQFWH2HgP8Aq/wz/duF+tBGc+zxB6XhDQqBwoINQ5IajGTlhyw6xwyctXJEOkccnLWF8rbjaeVqKKza5YxuSMTUxcss24wuaMP2LMHLLY5Iw79zXsfsa8rjdrNsWnVvRjLF0158ulkh1LvNm+jr9nWu613HLs92DrWcUuVevERloAQFgAAAAkpQAQOBqH2nQsFcWK+e8ekPV0s/ec/KWvneKZcdNZP4rI+e6py7crlXt7ol5bjsvmzyy+devptf2ejVj8sYGmHZBARFAUFAB2Md/NgyY5+vzVdWYXL1mKY+ly+q1pMy7tMMyuGPLG3ORw5sU1dRnKcV015ebETTLY7WCfLS9libPhdW07mWWe9rpO0QRWRFSUiO8Ivs+v6fERxrz9j57nz/AIkPqdV6dLq+j5fSevV7fq85JfKfXiJKLEEqsyiNCIsZRFgCglAAAAAUAAQAgCgAAAoaNHAKQBRNJsVdICKKglEGaLoAjsgRAUAQZAFggogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqgAAIAgAAC6XgBQAAAAUKoIAAAABBdKVKAgAAAoAAAAAAAJwAA9Tg37WpLev4o49ROdd/J5+WvkyWj6pcaOuPrMQRQAAVRBVAEUVBTnsK0rNGoGWlgRqGlhQVGlBQFez0Xi4eXyvZZZ1WXXTjjlsxxry9bndfTbc8O+OPL6+/hrp/lt5Lan3bdO/ROJjiYvyK9o1ERD6mXS6sfXzPy+rxXqdnpcLa8vPxeFi3q0TLy888eJnWni2zDH0fZ6bPfs8tyebeazPZxPJe762M4xnKG0VEAFgIKIEEgvsNACiKKlbVeGVVplVWI0KyBO1BAjMu9weVOG00n+Wy4ZeXLlndh9pqyxY5eKKX3X0l0kynFq6r5teK7GW1AVpUqw1CxlYVqM1pVZGlQUR6fRomep8KPXd9OjlrNcmSJjvFpdrJ9hjf68v8AEcZf+oyn9GP+a40cXVJZGp2EQiIlaiSiNRFiEg5YhzVh0kcc3PWHNWHSPNlXLELppxtZs690rpg61/e4LOOT2YOGUYdxJRUBRCgIMgqw+t8C3ivjDwvv39W4X61T5plOXjwPS8ICJoGgKNQ5YWMZOWrmh2xefJy1hzVh0xefOuWIb06RwtbjHtz1xNyOWebnrh+x2K4d+50mLy7Nrmpg793N7CG5i82W31bjFC+yXhy87hvj+x5+ajlnPR6dOXrHmZYefd4c32dN5kdW7qWcMn0dbr2Ycq9cBFSUAAAUAABJACgA7XFwzly1rD6vqGeOFwa4q/z2h6tH3dezP8uHy+tn2vU9Nq9vNzXxc95mU08r6igIiUCUVAUAACJmsxMLWs2le/EL6c16GHB3exjwRSm7PXqw93y+p2+sk715PMmszOnkz6vPt+J7+m5muMjk9A5rTrHECX14+rryiV0gAyjLQU/mqTvPqe1fX8X6PCl8vzLbyy+l1l/cap+UfM6L137r+bppL5b68RJRRGarMoNCF7LGUZWAKCe4BQABQAAFRfYNKhyB3IIoCAqwDaiKkAUEFipoImjQppABmgIDIAKAIMqAAKkooCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAoAAAyAAAAo0AAAAAA0IAAAAAAo0IyAAAEAUAAAAAAAABAc/HvNMkNY+zOc5wyn5OXmV1ki31w6a5d8k1euvH6Ay2AChVglUFABPdRUGk90qwqpRtYzRqBGoaUFVFUBoBumW+OYms6WXipcZnLjezsTzuVrvmlxTyc9u85LN3Znfd58el0Y30wcU2md7lhzvq9ExknBKBRlfdBEAaBJAQWCQl9hsENKAKjbSsjUNM1VhYyoqLKKAyMSh68tu57WMuPU+sOnK5XnhjCeXzRFZbqgjYrKwrSN6130QrPdsVkFBsSu50/L7Hm8a/wDpyQ4+RMTyM2vTz2def3Mx/rcfL++uX9EjgSXJ0ZBpJZRREqoyjUWHJEKlctYc9Ybjz512K1c8VdI8udb0kwrk47urdMuzvrdazr2ca9uDjlGHYEGQaESgAyCj6nwT/WPhT+78L9aqDy4V6ngoCCCwBW4ckLHPJzVc0O0cM3NVz1h1xeXNz1jblim5dY8+V4djHjdumJ3xjx7M3arjiPc5oq6PFlly3prQ5WrpU5Z5cd43EvNzR6sZ9np0X1jx8/veXll4Nj73TuneXUtLy5Pqa44LSjnXpgm0VAAFABANqKmxAFRQH0fR8ERvLaPR5/VOVPI5FtT9Gr0Zfd0Y4/zPm6p9p1+zP2xnEeYPO+kAIAMpVgqKgAA5K0272DBuXXDHmx592fEr2cWCuON2dTl8r3RL1ZXyYPm659tul9o8TJebTLr6eHK8vtYTy4xNDLaxG5Lb3J7U92WUqxEGkGWkaxRHtKrj8U+pfhy+j6+v0ODD5HkzvLZ9Drvg1T8o+b0Hx7r+dcEsy+Y+tESUUZRREVEL2aiMsrAFAAKAAAAAoKJQQG60m8xWsbmZ1DUnPY7TlJrMTMT6wyWHIByABpKGgXkABQAQZ5URpREsAZBkAAUVyRimaebThLCZS8gysAURYIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwCgAJQEABVgaABQAAAABBoAAAAAICqiiIAAUAgCgAAAAAAAAICxOrQs9i+7u558+KtnRay7uer4ePzBl0ACFEqqoACjIKKolWFEqtLGarcAqtM1VBQFUBAUOanLICSCIgCADQILBAgiX2GlEVAVVRpVjKtNMVWliUBBVEbxYrZbRWvrKyc0uUxxyte7/AOz3JjD57Q8DNjnFeay67tGWmY3J5Ol6zDqss5j/AAuKJmJJef5PciwCqRGhWVhppHrczDXFwenzEd8kWmXmOmc4v9o8+jK5a7f6sv8AKqy6Ao1CjNWJmJiY9YWZm0zafevKcJLMosZBpEQEZVlBpqIc1YajGTnrDsVq6SPLnXYrVzRV1jyZVvTFhmd3Bd1cjGT06nVu69nHJ7cO0cYw7AggKiCmhBEFH1Pgn+sfCn934X61T5ny+seWr0vBQEEFgCtw5Yajnk5quarrHnyc9XYrDti8ubsUh26U29GEeLbXex49OxEad4+fnlzW4hyRA4VuIXSOdoSiMS87kajaZ9np0fE8TPPq8nLL5+zu/Q9NPSOjkl1LS8mT62vtHHI5u6IAAAoAJIBIIJRRRXLhp7S8QSc2JleMcr8n0ebLHD4flj+a0Pl5nc93bdfXGfKPH0WP3dmf82QOL2qaBABEoggILCHLXHtqJleI7+HDvT1sdK4o3L16sePV8zqM/NfK6fJ5XuiXj3yTaXHbnzXp6XV5cZXAjg9ySkRMp3V9R0npcankcnUYYrL57kzjnPknH/JudPRswmGrXPe+rw9Nuu7qd9nwYyY/3ddJeZ70lCNIzKVRyYI3koYfHh9YZfBn9H1mXtxKPkM07y2e/r+2v6Pn+Hf+b9a4mZfN9n1USUUZPaqJLKoiNRGUWAKAAAAAAAoCiIAr2+kVw8ecnNzxuMMbpE++/ud+n4+1xt7T73/Dh1Nv2NmPxZcYz+7x8l7ZL3vb1taZn75cblbzeXaekgCgAADICwBVABEvsArQgIMAgACAr2cVIrwLT9bxXTZ2w/S4aLzlu/WDi9EAUSQQWgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAKAAgCAAqgKAAAAAACDQAAAAAQGipQEAAUNAGgAAAAAAAAAKAQduk7xWq6jVYw9LmDLYolAFVQBBRAUWFEaCpWmoWMrDSsrCqKsA0AoAgKCVkBARJQBBIDSiCwQIqANJ7FBEVYVK2sNRgaaZqqsRQRYVYiPR6TEW5eKJj/ehvX+Jh9Y5dRf3G39Nf0p1Dg8KP4adK5dONWORPUsmO+T3zHlmX8x86NZ7/AHy93W5XPVhz7Z5T+0r5HhMwx25TH0514W/Wx0UfMfoBYBWoWMqCNK0y9nqVt8XplPqwzP4y8mHTP1y/tHn0TjVP1Zf5VWXUFFhRBRBJCMg0jKLBGVZkgVy1h2Kw3HLOuxWrs0q6YvHsrsVq5Yq7R5MslmrislMXWu6d3PJ7NTrXdezjk9uDAw6gAIMg0IUREUfVeCP6w8Kf3fhfrVPmfL6x5MNPTHgogRUCAK1DmhqOeTmq5qusefJ2KOzWHfB5M3cxVejix9nq1x83fk7UQ3EOrwVyRDcQjnk3Alc0SUi+7jl5XJt6pn2evp5954maXl5ZfO2P0XTz0joXl15eXL3fV19owjm6oAAAKgCpIIAAKAPX6fijfnmG9frnHHqb5dV/Nwc/kTly+XfaHQTO85ZLox8mrCfkDLq0ulZSYQqoaRYICAOSlNu/iw79zprjhuz4lelSK4426fI5M+kS9GV8uLxasPtNnLyr5JtLieO3l9XGcSQZllqK9vpvCxf52ftWsxLrqxmWcefqtlw1Xy/FfSJ1Pq+TkzOLD9DBHpFezwWd2d2Z35Rek0TRpxx9765X8wc3qZRPdqIiVUc/FjeWFw+PH6xNnwZ/R9Ryu3HpH2Pj8ne9nt6/vr+jw+HfDnfzYR859NklGkQ9qojKxEkWMsstQBQAAAAAAFCgIHvBXYyZrWx0xROqR+cty8S8JZLcfyrryiKqgAEQ35SJazNWSwiNCsgoCCaS+yxUVRBUGaAgyAKK9nPPs+Dij63iOm7vP0x5+m+HO/POg4vSAoAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqgAAMgAALAA0AAAAACgigAAAACqiiIAAoAAAAAAAAAAAAAADlxTqWL9rSvtGZ8VZEaIUSgDQoACjIKNLAyqwFahpqM1YaVlogFaAUABAA2IgIgCSgCCQGlNAMqLVURNLoAIg0VGoVWarTTKqrIoAIj0uldubi++HTV+Jh9Y5dR+Bt/TX9Q8ukT/AAn4U73rrU/pS/lzqtfJy8lfql7Oq/Cz/LblHyPDP9xj+fT4V5Y+c++iiq1CxlVhUVqPcrNel1LtkwY/9GGkf/zee3n8WX1cdX4eH0aEjYKKsCVQZGZFiCL7oylagkoqLEBXNWHZpDpHDOu1SHapV2xeHZXYrVyRDrHkyqTDrXZyb1urd08jlk9+r2dWzhs4V7cGBh0BQFEGVQFRlCD6zwREz4w8K/3fhfrVFt44+seOr0x4aqCKgAK1DmhqOeTlq56usefL3dijt44ejB49j0sFdzD0qx2ezDs+Rvvq5IbiFry1uG4hlyrSjLDEysaxcOS2oeNyLerGzs9/Sz1ePmn1ebkfO2e79BonpHTu68vNk+lgyyxXVBFAAABQABElV9gEGq181oh7Frxx8Go9Zh0w9JlXm3/ey14fm8eZ33Zc3pgsBW4VqMCaDlmYZZagCjkrTayc1MrxHdxY/sdyJikPRhOI8G2+bLh1M3I90S8695tO3LZnzXq0a/LIwji9AijlxeWJ3ZyZuTfLqu9Vj0hZlxixcJlslv8AC6kssV2AGUT3biSjNWI7XDj/AB6umr8TD6xnb+Hn9H0XP37H7Ih8jPrL1eIfHj9Hk8O4+zy+rKPnvosiNIiKIipKCpLDLUAUAAAAUAAURAABRRFUUAQG6w5ohqOeVJq4LQuUMayrDogCAAAg1BQZRmqCDIKNVjc1+8neF7PV586w4qfVEPHb3fG4dN+F/eg5O4DQAkoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqAAAyAAAsADQAAAAANAgAAAAANFSgIAAoAAAAAAAAAAAAAACx2lbTuQZAIUSgDQoBQUZVVSikRVEbhW2K2sAqgoCwoACACCAIgAgICIrSgCAKAAARFURsVmtK0yqqyKCoIS73TZ1y8X3w6avxMfrHPf66Nv6a/rD2XtP4TRaI/k6v5p/8j+VOsx/75l/5pe3qfw9n/u5Pi+GenU6/wA+mweSafOfoTSxC1EWEFWFRpyY481qRHvmGp7MX0ldvnZPacvNb7Yj8I06i5d8vq565xrwnyxihFBVXSwM2nvUKksiwRFiSiVYiIqOWqwydikO1Srri8my93bpV2qVdsXg2Vz1q35XTh5bXHZ1MjOTtq7upkdO7hk+jqdW3vcMuNe3FkYbBQFBJZWICoiER9t4A/q7w1/dOF+tDWHdjb8P94+cadnmoKgAALDlq1GMnPVzVdY8+bs43oYq7mHoweDd6cvWwVduIe3HtHxtt+9XJDkiB563ENsuVGZCMTLjmVdMXWzT2eNnnu5bez6PSx5WV593gz933tPaOtaHXs4ZPdg4kcndBFAAAax0tlvWlY3a0xEQs9bjDniWrkpbFe1LRq0TqYYLOLYc+aSpJB7CiAgO7xafS8ycrJ57eWPSHTtg8/xbuflHUHN3gsC1qGoajFU0qJpmYZqxk0jTkrV2aViHTGOOdc3nisOtlzT9bVy4jnhhzly6kzMo4vX2kRGVgChpVZlmWasQFZRK1ElErUR3+n13lh00/i4fWOe/005/R9TybUjpnUZn+eIxeX8XwsvX4l8en9H/AN14/C5Zhu/X/wDUZSXzX1ElEaJZFIJZGZQaRmYStCSh7gKAACgigGgBQSUAFBVFAEBzUc9YdcXDOrNXFaq5RMb6uvMaHF6ABkAAAIA0iJVQZEAHJijeSkfaTvC/Dk7vULbmsPMa2/G56PwsQc3UBqACSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAKAAlAQAABYAGgAAAAArQIAAAKAgoIoIAAoAAAAAAAAAAAAAAAAACiUUFFAKLCjKwKiqIqwRlpqG2WlBpROVA5UDkBUUEQQBEAAGRagKUXRBNAci6OBdGjhOU8q6U5NNIVVhWFVYlWFaZAFBB2+D/tOL728Pjw+sY2/hbP01/ZPRqxP8GevTPu5ldf+bG/kDrMf++Zv+eXs33nXv8A/fv+I+R0Pp1HTfn0mH/yryNK8D7aKtAUFQadni/52P7J21j8Uc8/hy+jF7ee97/XMywqNu3zcNMOWsY/5bY6WifvjusnON/sxbxnhPnK6awNtJIyAJPqgoiKyjLSAqxDmrDUYydukO3Srti8Wy93cpX0dilXeR8/O93YiqzDbzc+rr3dPI55PVqdLJLp3l58n0tXs61nFLlXsxRJYagCj0uRxIxdO4PI19LLfJH/AErrTrrw82G2/wAsl/7uWzPy56Z/Nlx/2teakuddkEUZKEPt/AH9XeG/7pwv1Yaw7ue34f7x8zDUOrzqKgAADlqsZyc1XPV1xefN3MUPUwVerU+Z1F9K9bHGoc8PZ7PjZ965IhuBxybEczbMyLI45lxzKuuMdLPZ5Obfdx2vp9NOzzcjp3h4c32NXaOvaHWtDhk92uuGYYca9MQRQAATb2Oh1j5Z8omN149LZP8ArHo7aJzu1flZXLqPTRt/PHj/AJedyM0582TJPra0y4XPO855X510wx8uGM+USSEVRAIjcwvyHob9lin63Q3trL5OWqfFfnUGHQUFbhqJW4VWEmGdBKzpYhI1y5o7LNtNudnNcFr7cTnby6448QEaRE4VAUAZZlK0gioko0yFjUZl6fTf83bp08/e4fVy6j8HP6Pa5U74fPr9VaT+FofIS79ffv4fp/8Atw8Pn7vZ+r/6jKS8L6CIypKHusZVFREVkS92mRFiAooAIoCgCtIgyGk0BoVRVAAActHarDtg8+xyacdqt2OWN9XVvVxPPl3evG8wTaNABo0AgAKmhKqIyqADm4/+dRce8+qZ/Bl9HJzLebI6Zn8VTV6a8foDDYCwBUAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQAEAQAABYWAKAAAAAIqgAAC6NKgJycqCAAKABoAAAAAAAAAAAAAAAAAUBYEBYKAqqysAiqJWliFkZaaaZaURpRFAAABAUQAEAEAQWso0oLogCnJoEFANAaAUGWlWJVhW2VFQEVHb4UxHJxfe1h8eP1jG38LZ9K/sXoHK49v4Pdfw2vEX+VVjX3zSYfyX12vl5mTX+qXu342ad1vpftrZ/wAR8Tos5ep6WS9ulk/4yrwx8594F9wFCGj2Sq58U+WL2+yVjOXZxqMq58mW2WuGJ/3K+WGp6Rmzmy/JwkikKAgIJVSUFRGVQBusOzSG45513KV9HcpX0d8Y+ftruUq7VKu+L52d7uXTFm3GX1dW7o5Jccnu0ulkl07y82T6Wr2dezDk9cTSSjSCKPoOsT7PidH43vpg9pP35J29Oq8aep/OYz/vy8+2c7um/LLK/wDbh8+OD0JpGVEKqw+4/h9/Vvhz+6cL9aG9feOW74P7x8srccWhqMgAAOSqxmuarsU9zri8+bv4oetgh7NT5PU30r1aR2hyQ9T4+Xu20jnW0VlmZZmRqRxzLEyrpi6WZ5mVw2PpdP7PPyQ6l4ePN9bVezr2hwxXzXrH1zEOGXd7MbxHZ6nwJ4lo3P8ANG3jy5bcPJnY69Nt+1045ojD0ACpJBHpcfJGDg8mY/myzFf+kOmq+XO35Y5Rz3TzYTH55Y/9ry83auTqCoqSQHPhr32vvGc7xjTNfzTr3Q4UvreVxnGMBAAWG4lYlbhuG3OtaTyqzynlNIvKTOnDMylbxjAw2AsTSCoIoEE0wlaQRRlFiINsy9Xpn88uvTfi4fVx6n8HP6PT5GSIwdQr75xR+Vol8rLr1t5zw+n/ANufQzjXl9Z/hkl4XuRlFgiKiCiSioiVqJpEVQA0CgAAqxAVAARKsE96Ko0AAqxK5KO5T3Outw2ueIZtV3seaX1dfJR07Rp5849eqsjk7AAAMgAokpRESrEkRRz8b/MiVx7xnP4MvoznneSzhTLvWsPhx+iDKgKAokggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsKUAAGQAAABYWAKAAAAgAqgAADQMgAAAAoAAAAAAAAAAAAAAAAAAAQCrAhI0KAoMtQCK0M1pWoyraorQlaUQAAABAEBaAgAgsTlDSi6URRUNKCGgFUBEBYVQqKpEqq1Gao0hKJQc3HnWakrj8U+sTP4MvpX7b03xByMPhzkcGmeK8fLat749RO7Uj635L1e8X5E6fX624/s+vjvZzX5rwmbP2zf5/4fuz6PGHx6/TrAqe6Aqw0eyDcT2mFZo0Mq93p3Taczh8jL5tWxz+WnbVh58uPyeXq932Grz/1Yx4do1MwzLm9M9hqAqT6oKIlERFiIiwaiArlrDt0r6OuLhsru46u7jq9GMfM213cdXYrV3xj5+dbmrgutYw9a6eSXQyS8+fd9HS6N5dO7z5Pp6nDLLk9UGZSqiyiubjY5y58WOI3NrRD0uvXi/U+RWJ3XF5cVfuxx5Xpnp0uy/PPGPPl69Vr/LXl/wB7HjDg9AnvZWIiVWofc/w+j/tb4d/unC/Vh11/FPo47vg/vHycLDTk1CtRkAABuqpXNV28brg8ux6GGHsYI9Hs1Pj9TXpVaeqvk1qJXYzwu02CTLGxYxMsyrpHTy+svPyR6uOx9DR7OjeHVvDx5+76Wu9nWvC8HH7Tm8ev13hx4+/PrHruXGrZf6K9TxLavtaUiO8RD5KYZ6n8XL6teGzjpNX0YlHn9n0QQXYCOS190pT3Qc9yzs4l2imzYnC7TZyK7ET5KNxjL2jg9RloAABqFiVyQ5KtOeTatOVNJMBK47Q45hmu2NYlGG0BQBgZaABiRYMosEGozKM+zSS9Xpsd5l26b8bFy6n8HNzcm0zbJXf81Z/d4Mr1Xxp0nprZHleuIylWCIqAoylWICojLSgAAKAvsKDIABAJQQRoF5AUUGW6O9j9ztrcdrs1hqavTI8Vvq4L1dLJVw2R6dWTro89esBRAEABQBE0ysRlFHYwTq0rj3jOXwVxX72lhL7tztEGQAAaAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQFAAAZAAAAFWAKAAAAgAqgigKCgyAAoABsDYAAAC6A0ByGhImgUAAAAAAAAACAUEUUVVAGVhRGmoGVVtitNwIrQjSgaAEAAEAUVARAZEUFUXRprhFERdCw5QVBdJQAQBVVKKcAsSQXZtrlngmRAapOrQs9Kl7PpOPz7VweTfb6nh8i/nyTL1bc/NrxjwdNp+z3bcuO7rpp5nvgAgKQ2TslWFVlpVZV9V4YyxNuXxp/36b/B30Xjbh+d4eHxHHzdHu/KS/wDFeBzsU4eXnxz7ry6jll6ZWfm9Wq+bXrvzxgbRsQBEVGUqxlUaXTcLGa56R6O7jq7YvLtrv4qO9jo9OMfK3ZO5SrniNO0jwZ0s6mRMl1946OWXQyS8+b6el0cjqWefL3fT19o4ZRyemDIGna5GCcUUt7pjazDzY535RMs+MsJ83d6HWPnHDe0fRx7yT91Y283Nktmy5Mlp3NrTM/8AWXXK8dPrnzyyc8fXqdl+WGM/5tcI4O4gsQQah9j4Gtavi7wvqfXqvC/WhvFjOc/8x81CtOKtNxigAANQqVz0dvG64PLtenhevge3U+N1Pu78S09T5dVdoybNnAzLEyrUZllY6Rw5KvPyVctkevTXSyQ6t4ePOd30td7OpePV2ukY/Pz8LjjP3mH1j07rx0+6/wBFPENvNzNfVEPm5hy3+u3P6vT0Hp0mj9Ecco4ez3AgAJIjQACAA3QtbctTszx6oAoAAsKsRtuJajFckOSGo45N6SYa4Y5YmrimrNdMa45hxzDFjtKmjTLSIKzIy0ADEiwZRYINRmWWW4PX6f2iXbpvxcXDqvwa4uVfWWJeWm+8536tdPOMMfpGZR53oiJI1EEVAijEpVgiKglUEAAGvY5UWICAABAJBBloAFaSgI1X1d/F7nbW47uzuUhy+V7JPR8/K+rF6Ojko57MXbVk6V6uN473e/G8wNMtICiAgACojIiI0OTHOtk7wvauOfWUL7rO0ESgIANACSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwCgAIAgAAACjQAAACAAAqgALoEUEEIqioaAAAAAABRKAAAgsAAAAAAAAAAgFBFhQWCV9k9wVFhRGoagZahYbYrcNDKtAqgoAgIAAAAAiDANKsQKNGmkF0jIBUNAjRQAqSig2JVlFQBVACBFFRyRknWmZncteZnji0EBBUBSGoJ2StQqstKrI9HpWeePz+Nfeo88RP3S3heM8L8rK478fPp24fPGx6fiTDNOZGT3WrD5tvdONuf15cegy83SaP0yA5PYAIIMMs1uI0irDlq1HPJ28dXfx17vRg8O7J6GKj0MdHqwj5G7J2oo3p2k9HhtcV3TyS55O+r2efll0MkvNm+rpnZ0sjqWl58vd9PX2cco5u8EBX0mXFXP03Hlj1iNS9XS4+ab8fng8nV5XDLRl/W8zhXnDg52T3+z8kffedPMcM/g1R6Nfx7b+ciDm6iFWICuSr6/wP/V3hb+7cL9aqztXLLvPrHzLTbkQ1CxlVaZQFGqql7OxR28brg8ux6WCXp4pezX7Pj9RO70KW3Dk29cr5mU4tNrs7sps8wMTKbGmZGmmbRuHSyV9XPPs76r6ujeHSyQ8ec7vp6r2dO8PR6FTfNmf9NZlywn73D6vR1F46Xdf6HQ61bz83I8OXm3fiZfWvd0fp0+n9McUww4V7oCcqAAQAAQAFidIAqxK0KgBVaiFkZrSw0jkiXNDUccnJDWm3GpNXHNU4alcU1cUwxXfGsTDEsV0iIjUGUWAijMixERUZRqJLKN/Ietwe1HfpvxHDqfwv7ury5+k6Pvc934mTpp/Dx+iI4u0ZkFREaGUIaQqiSioCmjRF5BUA5AAABPegKACKyohSEKQBUWvq72GXbV3jlu7PRxuxEPfj2j5efdLUdPJRnOela1ZeroZKupMPDnPWvp67zIg510ERYAqSgIqRSWSiDLSLEgiCiIAgAsAUQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVKAADIAAACwKAoAAIAACwAKQFVKoiAAACgAAAAAALoDkQFBAAQUAAAAAAAAAUEooNQKyCjcKIQ1Aw1DUNs1uGhlYaABLQGQABYCxoAAoCsoEiNjQAiggKiAEQgoJAJURQb2ioAAgCgqigyqwqCAgVVhYJ2RqFWMtKrKkTqYnao+r6naOb0rh8ne7RGrPlHbf65y/PGPF0H3dOeH8mzKIOL3CIDMosRhK1BoVqHPSGsXLJ3cUPRw1enXHzd9epio79KPZhHxd2bsxVLQ7cejyc+rq5HRyy4Ze726fZ52WXn5JeTN9fROzp3l1rPPk+jrYlGHUBYPoOjZYyRm4157Xr2eno8uOowl7ZSx5etxt6fOzvjZf+HR5mKeNitj1/Pk3/AOV5Tlvx8my4/wAsduny8+uZ/wAwOLsJIIordX2Pgf8Aq7wv/duF+tVvH3+jln3n1fLrDTmsNQsZWFaZQFGoVK56u3SXTF5tjv4pd/Fd69d7Pl7sXfxXdqJiXsxvo+XnOLV2bVzkRNijKxYCqOvlqzl2bwvFdDJV0MlXk2e76Wm9nTvHq9XoUazci31Vcdf4mL0dTf8ApNv0jwOoT5uVln7XmWeTb8WX1fU6acatc/pjilxuFeyAigAEAAD2AQABVgsKrIBWockQ1GKswyqRqJc0SsYyjlrLlh0jz5NaSaqxK4pq4pqxY741wzViYYsd5WJhlh0gyKgyokgyiNIyjUSUGkepxJ1R16f43LqPgdLkzu7re9y2/Hk6a/gx+iI5usZkFGUqwRFggqIioCgAoAAAIoCe4AAoCAiEUUAFj1d3DLrq7ue34XpYndrD6Ot8jb3Wauvko1nPSs4ZerzstPV0L1eDbO76mnL0jhHnr0gggNIgAkWEslEGWmQAFctsV60reazFZnUS4iwl8yDIAoCiAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKpQAAZAAAAUUBQAAQAUAhQAgKqVREAAXgAAAAAFBBQBeBA4AQABBYAAAAAAAAALAqUVBqBWQUbhRmrCkZabhtmtQ0MtAKDAAAAKCxoAAoCskrEKiii6BAEBUQQqoUiEkUJVEBWlVEEFGgTaAArQlFhYlEVIBVWFJ2RqFWMtKrKoqPb4Ofz8PPxben80PGntMw6Z3nDC/L0efTj5dvUT55TJkcXpQkGURqRmUhGlVUbh2aQ3HHY9DFD1MFXr1zs+V1F9K9fDR3qU9Huwj4e7L1rm8rivDdefG+roZXnZZeXN9PR7POyy8/JLyZ19fROzqXcEuFfRwZRhsAg5uPlthzY7xPpLWOXlzws+cM5MsMsfye91qkZseHPT0msfi+YejrZxvt/mkrzdDedGOP8ALbAeN7BANKDkrD7LwP8A1b4X/uvC/Wq64/8A045959XysgyqrGWlaZogQagK5aO1SXXF59kdulncx3d8K8G2d3ex3d7Hd7Nd7PmbcHMOzyoAgNAoMXjaVce7oZaujeHlznd9DTezoZIen0m3kx8q32OGHx4vVv8AXp8p+cfNcifNlvLp2h4s/W19fV6Y4fSOGYcUuNerECNAAAAAAADIALDTSAI5aw5YhuOWVJhxSUxVupDJz1lzVl0lefNyw1ptwrM1cVqpY3jXDNHDNXOvRjk4phxzDFd8aiSy2yIoklGEZbgyLEEjTL0uP2o66Pirlv8AgjpZ/wCdwe9x2fFXXX8M+iIw6IgogqJKKCLEQoCKaQABQEUBFAFbtS9Yra1ZiLR2mWJLLO/dJZe3ZBFAAAAAFdnDPeHTDuxn8Nethnenfxvpau0fH3d65pq4r0d8pzHnxvq6GajzMtXz90fT6fL0jp2jTLyPoTtAZBJFEFQFgiCIzViAo3jis2jzTqAvauxyeTbN5KxHlx03FK/VEunJb5ramGPkwkQZaAAGgBJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVAAAAGQAAFgAaAAAAQAWFAABYCiVREBQAAAAAFEoAAAAAAAAAAACAoAAAAAKoKIqkSgqNQ0M1YaajNaahWa1DcDKgwoAAAAAsNNIBQA2gi+ras1ARQAUQQNpCjUygIACgJO4qtIiIC7A2gGwBqJUVViAICjUKIsKs7MtQqsge45+PlnFff4uK8xN5lbecWJjxnb+TAy2iDUSWUWIJFrSqlclIdzFDph3efbXo4avXwU9Ht1Ts+N1OXpXr4aO/Sunvwj4W7L1rcw6uSDL3Y193m5fe83NPq8mz3fW6f2eZll0MkvFm+zpnZ1bS4ZccnvxBlpkFgA+g4OSOXxMvGtP0ojdXg5aezvas+sPX1H7zVoz/LyvJ0/wC73b9f5+b/AJcQ8T2gAQo5qvvv4fYIzeK/D0z/ALvU+HP/APFh30zzZ8flXk6jPyY8/nHxAw1BVhWlaYoaCGlgK3Euetm445x2K2dql3fF5Nkd3Hd3sd3q13s+buwd2ltw3L1T1jwZT1QUAAASQdPJHq6OSHnznd7tPs6GSPV2OJbyYM/2vLPTN7s/XVx+ceBl73s6tnjy931dfafRwWhxS4168UEaAABNgqggJQEABYlppKLAldisOTTrHnyqTDgsmTWCNRKRquasuestxwzjmrLlh0jzZNaZmq8MyuKauC1WLHfDJw2q4Zq516cK45hiYYrtGRloQqxmWWWoMixBI0y9HF/I6ae9c93aOjl72lxOWXxV1x+GIMNsgqAIiNAgiCmiI3ILMa9YTRx6iBQEAA0AOxxONflZ8eKkbm0w3rx8+eGM97wmzOa9eed7THl9B4lrh49uHw8cxNsOKPaT9Vp9z5aXfrOJ1O2TtjxHn6Dm9Lqt75c5f8oPM9YoAggAArlxy3j3Zy7PV49vR6uJ9LT2j4/Uzi124hLVev2eDn1dHNj9Xl5qPFux7vpdNl2ebkhwvnXu+rj2BGgQQGk0gQBWUYqxJQUUWEygqDKAACwBUAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVAAAAGQAAFWAKAABQEUAhQAAWAolURAUAAAAABdgAgAAAAAAAAAAN0pbJelKxubTERDl5fFvw+TmwZNealtTpuYW68s/zkZ+0nnmv3stdYYbAAAAXQJRQVViUVUWGhmrDTUZrTUKzWobGKAyuzYGzYGzYAsDYvCqAbQAINLtpkUQECUUA4TkFB9Ny/DPL4nhnpPiC16ew5mfPgrTc+feHUzP3d2sceefoxsz8nk/PKR8yjDoDQCCgiIKAAAANRILEktRk2oKKiw0IsKrKtKyAICoBwj3I6Paehx1SJ+j7SaS7dPou+7f6ddz/wCHDqN32H2P9ezHD/l4G0eZ6uywEFbhWa5aQ72KHbDu826+lergq9nBT0e/VHwuqvd62KnZ2Xtx7Ph7LzaOrlMvc1d3mZnlZpeHY+z03s8vLPq6GSXjzfb09o69nG4V7ICNIgsAHY4eecGelvxdrqWKIyRlj0u9GP3+mzx/lvLz5TydVhl/NjY8oeV6gAWFK56P0b+HEf8Aarof9w4n6kPX0852T6V4Os/Dy+sfn8o412gpBYWGozVBkAaiXLWWozlHPWzsVs7Y15s47NLu7ju9GFeHbi7uO7uVncPZhXzNuPFaG3IAAAB1ssOjkhxznd69N7OhkhKT5cF4eS96+hPXGfWPGu61oePJ9XW4bQ4ZcK9WLAjoJsDYKgg0KgJQEAAahYlVyUhqM5dnZrDk06x5rfVi0OtZK3gy1DLo5IlzRLccco56y5qy3HmzjmhrW23C+jM0cNqJY3jk4LU+xwWq52PThk4LVcUw5V6sa45RiuoiiMyxWogNMso0jv0nVHTVe7G3tHTv/NLjcsu9dJ2jIw2yCwlAAERGiUCDlwRvLSPrlcfin1hl8OX0d7qGD2NoeW6b8fJtyjl0+Xn1Y0RxdgQFggEqI+q6NXH0/Bl5+WYi9az7GJ99nq6KSbvPe2EteTrubouvHvssxfN5s18+W+S87tadzLgebLLz5ZW+72YyY44yeyCKoDtcXjX5OSKViZ+vUO11Tp1+n5aVt281d6+p0+zt1XZ8rI816nGdThp97LXlo5PSALDdWoXs9Ljz6PawvpdP7Pj9W9CkNzR75j6Pk28V1MtHlZ8by7se73dNn2eVlo6cxp8vZH29V9IiObqAJoRRlFCVVlGKoyKAAKSjIAAKAokggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoAAAlAQAAFgUBQAFEQBYUAAABYNCMgAKAALAEAAAFEAAAAAAAAAABqszExMPoerzHO43E59O97Vmuf7LViIj8Xq0/e09Rh+Uyn9q8u77u/ptn53G/3j5xHlesAABQqghoBqBWVFK0oysNNTszWoagZrcK17MXsojIoIACqoREFi1QogCtQ1IgolUX5MgkUQQFFAcmDFfPlx4sdZta0xEREbmZfr/8AFKa9I6d4P8MVy7v07ptb8mmteTPyJnLarthzNedefb679GPL8ZHF6VFgIUBABU0bRQ2Bs2QUVFiVWMig0LWVhpUUGVaaQJETYLwiIqbffca05fAXJpSNzTl9/ul9Dw2/f6mfPptkeHxCfc6W3tOo1vz9XzH0FGkaahWa7FI9HoYau+Dx7q9fBV7XHo9+mdnwOry7vUrGobe2R8bLujq5Wc/dvV8Tyc8+ryc893h2vt9NOzzMs+roXl4sn29PZwyw4164iooyAgqQ9bFkjk8Wcc/zVdtF9c8fnjY5b56YZfy5SvJtE1mYRwrvOwANwRK56Q/SP4b/ANU9E/8AH8T9WHs6b8SfSvn9Zf3d+uP+X57LLjXeIqQWFhqJVBkAFiVL2c9ZdisumNcM47FJdykvRg8W2O7jl38dns118zdHOOzygAAAOLJDo5Ic83o03s6OWHTtbVZh4s+9fU1esn1efePV1bQ8mUfT1uCzhlwyerFxoy6iIoIoAu1aQBAZAAahYlVz0hvFjPs7dYa06x47fVx3h1bs5O+tlWHRYlyxLUYyc1Zc9bOkefOOesueHSPLnF0zNWmJeHFajr2oxY74ZOtejr2q4ZPZhk4pq45jTFj0SoI0yyzWkRGkRGojtx/K3h3rOfs6tvVhyvetztENJWmURYAqACCiJSI5uN2z0+9rD48frDP4M/pXtdZj+Wfsh8+9HWfj5PN0X+3wEeV60UEWEgAOXDTz5Kw7vO5UZYx4afyY3bHLyac5O+V4ccsfPu1/LH1eaji7oCjt8Xi5OReIrHvaxxudxjG3Oa8Mssn2+HHwug8f2ubV88x9GutvjOoc7Lz+TfNe0zv0j6nr6jKYa8NOPtea+R4dhnu37esz7X7uH0dBdPE+0aQFWPVR3sFu8Pc49t6e/p72fK6uPWxejseV9XHs+FsvFcOTG8vPjcd2Pd6enz9Y8bNT1edeHyNs9X39F5kcTLzvUACIsGUUFVE0zViIioAAoiUBABQFEkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFAAAEAQAAFGgAAAABFUAAAFEUEAAUAAAAAAANgoIaAAAAAFAQABXf4nI1izce0/QyR+FodNWXlyc9uPmw+lldC0amWWK6zsaNIcgAolUBVWIKqKsCKDKxDUNTslahqFZrajK6Bmw2bEQABRRAaigqAgrTXKGlBRWQAAQAGVel0fl04HU+FyrxuMOWt5j/lnbseIusZuu9W5fPzZsuS2W2/NlmbWejzz7GYfxXLl5vss71c28/dmvjj8+XhrDi9IigJQATaioiKIigo0KigyraxKotZWGlQWBlVaRNgoAjMyysZfedDy78K9exRrzeesw9/hl46jZPnp2f/F4PE/9vrt7Tdr/APlHwmmnzn0BWmardYWJXcxx6PSw19Hp1vn776V7PHo9rBV9HTOz871eXd3ohXrj5jEy6eWXPP3ddU+88nPLyM0+rwbH3elnZ5uWXRu8Wb7WlxSy5PTARRkBBRy4Ms477XG8ZSmU82FjfJpq3mj0l1TZOMqmu84Ygw2OSFiVz0fpn8No34o6P/47i/qQ93Sz95/a/wCHzeuvGq/XH/L86liYcK9EQRVhYWJVBkAAWOWsuesukcc3YrLt0s74PHsju47O9is9euvm7p3dyJ2r0vCAAAAlo7OjlhjPs7au7z8kOjeHj2Pq6b2dK8OpaHjzfS13s4LQ4JcK9eDjlhzrvARQAAGliUFQGQAGoWJWoh28cejeLlsrtVhqYduHjt9XBd1LessZPRrQYdRqsrErmrLmrLpHDOd3YrLnrLpHkzjnhrTo89YtVw2ozY6Y5Ovajr3xzHaYcrj3r14ZutarhtVyr14VxSjDsyjNaZEVElGkc2+zU90y9nBPqy533bgiVUZRoBQBAAiNyDVsdojetx9a4Y/xab+tcZfNj9YWy4ZcfJ7fWI3TFP2Q+ed+s5+3vr7R5+h/Ax+tB5XrQaAYgootbTXemS3sKAmkBy4sU5LQ97Fy8XTsc+TU5HfVZh994+qxu7jVO17vF5PKzcrJN8ltus43LzXK168MMdeGOGM9ICKAsDYrs4Z7vb41nt6a+sfO6uele7gnbv1ruH2tXaPzm70tS+N52fGm3HuujP1jxM+P1nTyctXxt84tfoemy9I6cwy8dfRiCKJJVgiKgLEkZqsoioAAoSCDIAoCiSCAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUAAAAZAAAWFgCgAAAAoigAAAKJVBAAFAAAAAAAAFBAAANgAA0CICgABPcAQABV0BoXgUVkUFWBlSBGmoaRYaVhpdjPuoFAQAAAAVoF0qGgFgVK0CKKgAACShARQaE0ECQogACsiKAIFWIoKCNCsrDSxK0LWVhpUFGVFAAQozMss1qD6rw/l/9y61gmdRfDWY++Jezobx1OP54ZT/ALPH4hPN0uX5ZYX/AIyj5mfWUeR6xRGoc1IbjGTu46vVwU9Hp1Ts+Z1OXpXtcevo9nFGofS1R+c6q+tc8EvRHhcdp1Dz81nLP3enRPWPIz2eVml4Nj7vTT0jz8kunZ48n2NXZxSjm7xBloZASRYJ70WOzFvaYte+HVlvO8zGs4TjzQGG1hyQsZydnH7n6P8Aw6z48PijokX39PqHEiP/AJkPZ018ufP5X/D5vWY+fCz85/l+fTDEw5V3iIy0osFBkAEFjVZc9ZaxYzjs1l2aS74vHsjuY7O9js9Wuvn7o7uOzmerHs+dnOKDTIAAE+jp5YZzb1d3QyQ6GR49j6ul0rw6l4ePN9PW61nDZ569mDhllzrvERGlAABpYlBUBkAFaaRyUh3sdfR0xefbXYiEl2eP3de/vdOzlk9mtkYjq0COSsuastxyyjnrLsVl1jy5x2Ky5odcXkya8rE0+xqzlmZO/wAPgY7RbPyLeTDX3/XP1PM6hfFyORkvix+Sk6isfc6bcMMOnxx/jt5TRszz6jK/wYTj+9eXejrWo8GUfWwycFquKY042PVjWURtmUZaSUlFRra/NaxKMX3bRAGZSqgjQgAAA5sea+P3RaPql38OXhXvHtKTWfydMMpzj5vnHDdhnxctd9eOz6bqHB4PJxYopza1+jHrEvPp4f4/x+Of+kvo9Ro157efP7R8XR12/Tp8t6e88315dbqvSsPDwRbFki8+/T5p87fhMM+H2Oh3Xfp8+csy5oOb2AwMqApPc+YKADdMk0jUMTM2nczuV59EmMluSCNICAACuTHOpezxrej09PfWPH1U+7X0PGnb2Mddw+/o7R+X6r0yrlmnZ0c2Lt6O2zH0rhpz4seJyMXq8PPR8XqMe79F0mfZ594cEvm19fG+gjLYSLESUVBFJZFiIyqAAKAIMgCgKAJKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoAAAAMgAsADQAAAAAKogAAAQFKlUEBQAAAAAAAAAFEoAgKoIACwCoAAaAVAVAFBRU5BUFAAVoQIGWmmkWGoVhQRTYKCKCACCikKNioCopoQaXuUURAAARCCCitQEQEAAAVEFQQVFARVBGhWVhqFiNDTKw0IKJQEJFBjaLIiJW4r0+m55w5M0b7Xx2h00ZeXbjfk478fPqznzdC3rIw17Cg3DsUhvFyz7PQxV9Hr8evaHs1Ts+T1OXpXtYKPTpHaH0tfZ+c6i/eciS6x53BknUPMz29XHZ7vX085seRms8zLL5+yvvdPPSOld1bPLk+prYllzruyjLQgCSLEEVazqS3qex7siK3DdW4xXbxw+88Cx/wBqfDn9z4n6sPVqnf6V4N99Z+qPiJhmYc24wiVuAKoMqCogEOasrEydisuxSXbF5M47dJdzHZ6cK8G2d3dxy7lZ3D2YdnzdsaG3IAAFdTImfZvV3dHI8/I8ex9PS6WSHUvDx5vp6/Z17Q69oefJ7cHDLDm7xEZbUAAGliUFQE9wAVYVHZxQ79K+jtg8e6uxEdnHZ0eWd3VyOlZyze7UgxHWtAjUS5IlqMZOasuetnSPNnHZrZ2ay7YvJnHPVy08sTuXXF5cvc5GS+bW/SI1EfVDo2ozs5zytdNXGEkda9HVvjcMo92vN1b0de1XCx7cMnCy516Ikss1YkolbiCgyxWogKMylWMiNACAAAtZ+lBO6+z3OfbzcbFMf6Xhbn65ejqr+8n6Y8vSSfZ39VXz21rzMS899XqkkEkagMCACgCgLBEQABdAgACrWe71ONb0dtF4yjh1E5wr6TiW9Hv4O8Q/RdL2j8n1s4yru+TcOtmx9nszx5j52GfGTxeTi+x4HIxvj9Tj3foOiz54eRlrqXVl8fOcWvv6rzIyy5uwAiI0giwlmRYgyrIACwAQZAABoARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUAAAAGQAVQFAAAABQUEAAACAqooiAoAAAAAAAAqAKJQBAVQQAAFAFAAAAAVYlBQBBYBQZVQFWI1CtMrDQgCKCKCUUDYArSADUKqUWBlRQVYgAAAAaBNACAAIoqBwAgJIsZFVfcgKsAkwoKDKwsKjStMkNiAIAADLI1AFVyROkjNBWVVUbq7eOO8OmE7OO3tXpYa+j2uPT0e7VOz4vVX0r2cNXdh78Oz8/tv3qu0ltyjpZrxG3l5ruGy930enx7PJzWefkl8/N9zRPSOpdwS8+T6OHZmYYYdIkss1uDKKAqaEGQaAG4c0Q3HPJ28cd4ffeBY/7UeHf7lxP1YerT/8AVfO6i+uP1j4bTEwxXSMMsV0iA0oMtR3nTnvx8laRbyzqWpjbKzc5hcZb3daUZbRyVkhezmrLs0l1xebOOzSXbpZ6MHi2R3Mdndpd7MK+dtxdiJ2rs8gAADr5Ey7Na/idHI6GSPV5Nj6el0bupeHjzfT1OtaHBaHnye3CuGXG5PRERGwQABpYlBUBAAG6wTuld7DV36VenB8/dfVzacN268+Pd0srpWcM30dXZGmXSqCDUSsSuWsuestxwzjsUl2aWdsXjzjs0s54dpXkzjWmLVX2Yxrr3xurejlli9WvN1L0dS9HDKPfqzde1XDMOFj2Y1mWGa6RJRmtEoNCIqIijKVYiIoCxAAAT3ivZ5M+biY/ueM79T3w/THn6b4cv1VB549IKDKXsqjIADKgqwEQGgAEQBCrFh3MFtTDpq+KOe2c419Fw7+j6fjTvT9B0d7PyvXzi169K7hMmPcPr8c4vgzLjN5HJxer53k4p3PZ8jqsO77vQ59nhZ6d3n3h8PbPWv02i+kcTLzvUAJIjSILBEqojNIiCgLAARKAgA0ADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqAAAAJQEAFgUBQAAAAWAUEAAIAooIoIe4AAAAAAAABTQkAAATQAKbXYcAIALpQAAAAUaZAFAIURdCigg0RFhWmVNiKAKJVBBRAWAqiqJVVWaNQsRUaRVBBAFgCAKCiIzKVUBQAVQ0gACTCJVVBRYBQQBGlVBViVVgRoVlJBTbKUgyVqENEKQ2RmqKysKqOakO7ir3dcfZ5tt9K9TBXvD2sEej36Z2fD6qvXxQ7D34vh596MXtqFvZnH1rzM9/V5WXI8uy931umw9I83LZ0rS8Gb7Oqekdazj0417MezMwzMM10jEwjNbZSUaEQAVmURYNEK3DmrDcc8ncxR3foHgSP8AtP4e/uXE/Vh7NP8A9V8zqb8P1j4SYccw511jEsSxXWIiNqDLdJ1aJfZ4LYuRx6V7THliJh6+kstyl93zfEfNMdec/hrxef0yMVL5aT9GHhOO/D7POz+71dJu+31c3vPRJWJcY9Xs5ay7FZdcXDOd3YrZ26S74V49kdulnbpZ6sK+ftjt0s5noxeHOeqjTICEuvf3pl2b193RyOlkh5M/d9LT7OjeHUu8mb6Wt1rQ4LQ8+T24OGXFMOVenFERo0iKKAqlAQEABdOSkLO8Zy7V6WGr0K0erCej5e6+rcw62Rquevu8/K6kvPl3fS1fCisulaBBSFaiXNWW45ZRz1s7NbOmLy5x2qS7VJejF4dkc8LNdurzdq47Uda9HOx215OpejqXxuGce/Vn2dS9HWvV58o9+vJwTDEuVemIjLUQFQFREa+SIysREUQUAEAAepktviVeU7b/AFuH6Y46PSZ/qoOL0IAJLKwEEFkAAhVBEIKAAAJpBVhzY57tYelZz7V7vEv6PquHf0fd6K/C/M+I4930ODvDs2p2foMJzi/K53jN5nJxer53lYvV87qsO76/Q59nzvJx628nJWYfnt+PrX6zpsvSOtLGnie9AVJEVJQaiCCIzViIKAsABEAQAaABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVAAAAEAQAUaAAAAABVEAAACAulFEjIKAAAAAAACwFQAQNgbAABBYAKCCgoAgCgICwqpQVFhRAWiqIQohpune8LO8S9q5s+P2do7dphwrfS1nC+bGUAFBdrAKDIAKsFFRVKzRpUo2sSgqKKgICqIaSQEUVBUCCAqCDQoCiIgCAgsAVQZWAK0qoaVpBRGlGWZQVBKrO0RppVSrDSsVoEWFhUrsUh6GGrvrePdfSvVwVevg9z6Gr2fC6m93p43Ye3F8bPukzp08147plfRvVjzlHl5r728rJf1eLZe77XT4+kdHJLq2ePJ9TXPSOKWNOb0QmGGa3GZhiYZbiTDLNbgyigKyIsGoIVuHNR0xcs3ewx3fongPHe3iXoE1rMxHUuL+pD29PjcuZPlXyery48t/qxfATDimHKvRixLEsOsYNMt8gIrt8bl5ONeJif+jWGVxy5nsxs1zbhljfk9XmdQx5uFatf57TETD51137Jszl/pcej0/Y68sb381RHnexyVlz1lvFyzjnrZ2aWd8a8uyO1Wzt47vRhXg2Y+jtUs7MXenGvDni5Ys06OFgqxmsTLr3lMq6646d3TyPLm+hq9nSu6l4eTN9HU69ocFoefJ7MHBaHFMOVenFgZdBANAChQAEBSJVdjFG5hud4xn6Y16+Gjv1pOnswno+Nuy9al6ujlM1093m5ZdWXky7vq6/hFRuqogpEo5IlqJXNWXYrZ0xrzZx2aWdqlnbGvFsx7u3SzsR3d8XhznFJhw2otiY5OtfG6t8bjli9mvN0smN0743myj6OrPs6tquCYcLHuwrAw6oiVRCCIjTlxY63tHmtqvvn6od/qkdOiePHB3MRjj2lp33v/1dpNU07Lfj5nDjldt365j8Hr53kDz16RlAAgaFQB34nfG06Drs/g/S56v4/wBQkuTqgKCCCVUIWAFCFAEIACAotBNAN1nUrC9q9Xi3nb6nhZPR9fo8vXF8DxHH0yfVcW24h6sV3V+n0euD8X1Hpm6efFvb5/l4vV5uqw9K9vRZ+sfNcrF6vDzY532q/OdThxX6/pM/SOlfFeI3MTpwPm5Th9bDKWMjLYiKkolVCRURmrBkUAAURAEAGgASQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUAAAAGQAIBRoAAAAARYUAAABRYVEAiAoAAAAAAAAKJQANAaUA0AgGoQOVAFBQAAAWUVFFQFgqgCINCCqg1E6mJWexXuThjlcPzR/PSHiOuyfBfnHl6fL8TH+XIHN3AKNQIosQ2FVVIiqrI0Qqis0bWJRYVkQGgQQUVUAElnStGhAAQFUEABBUVBBPcTRpVFCqCVuFa92aiqAlRYldkQZUgztK0hCe6tistQqs1oEVuIaZrtY4ejhh6Nfs8G+vVww9TD6w9+p8PqPd6FJc3mh65Xysp6uK99PPzZHPOvRox9Y8rNkedezw7L619vRj6R07WcUy81fQxnZhNI6JMM6ZajMwzMJW4xMMSxXSIkstIgoiKQ2RK3DsUh1xcc3ew17w/Xv4Y0iev8DcenK40/8A1vqdBJdl/wDbz/8AjXxPELbjj+vD/MfksuKYeOvbixLjlzdozKI2ggKAyLBlK1FiXLWVjOTnrLsVs7YvLnHZpZ2aWejGvFsjt0s562ejGvFnHPFnLFnaV5so1tdtyufDEy4LsZdnXB1bupd58nt1Opd1LvLm+hrdazFMVst4pX1lw4tyknd7JZjLb2jgyY7UtNbRqYdeYcs5ZeL3enDKZSX24YZlzdYgigoAAyACjUiVYd/BXem8O7juvGL2sFPR6MU7PdhPR8Lfl95wZK6eXmY2O3T+tjy8suu8l7vsYfCaVGqqiCqlFBusuektxxzjs0s7NLO2Ps8ezF3MdnbpZ3weDbHPHcmHV5ueK4bUda+NzyjvrzdPJjdHJjebOPo6c+zp3o6lqPNlH0teTgmGXJ6YkolUQjUQQEKrIzWojKKAQBSUB2sc/wCDMOq3n2w+jGPfP6gw2yJWgAQWIEAKCqAygCgALQAAHe49tTD6Xh5PR9PpL6x8jr8eZX13CvuIfQYp3D9V0t5xj8N1s4zplx7jtDx+TxZt6Q11GHMY6XbMMo8y/R8mb3H/ALP0xxFsl4iPtfG2dNzbbfR9eeJ3GTDGW14XXcHT+PxojBki15fCS+H1cwm2zDs/VeE57c+m82yetqI8j6giKkolVFIrKM1YMigACiJQEAFgCiSCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgAAAAyACrAFAAAAAEWFAAAFNCKCAQBQAAAAAAAAUSgCigAbNoCAACgAKAAijRAEAFhVSoQikgiw0AbWMqoj2ek8iKZJx29JZ6lw/YX89P5LPTx5tP54vBz9l1lntnHlDh83uATkUFhQNCoqiKKitKlUGasLCxFaWM1AQUEQWNCoCiSg0CBKAJoFAoKLEEwDKpwIiKACgKsRYaVKCoAAgu0BiZRK0rUKiio1DUDFVViDlqsZvZ3McPRww9Ot8/fXp4no4p9Hu1vjb3drZvzPTHzrPV1sl3nZr+rlsyevRj2eXlvt0r2eDOvs6Z2daZYcXsgCkwzpFZZmErcYmHHMMV0jMwjNbZRGgAhuArlrDnpDri4ZvQwR3h+w/wwr/8Al7g/+K4//wB763h/x5f+3n/8a+H19+D9eH+X5DMOKYeGvdi4phiXOusYZZdUEAAJFRkrUGqyk7lc9Zc9ZdY8+cc9ZdqlnfGvJsjsVu7Fbu+NeLPFz1u5Is7SvNcXJFm5s6SuVjMy4bSmTWMcFnWu4ZPXrdO8OraHmye/XXXtD6LwxxK5eXkz3jdcNJl06LXNnWaJe3Mt/snXbLr6LfZ3uPE/v6PB6tNLc/keT083Z5EvH1PH222zt5q+h0vM0aZe/kn+HHMI871xnRpleUD3UCgIACjcRukbl63Fp6Omv1ry9TeMH0HHx9od7ydn0cJ6Pzm7P77pZqvE5Djte7pPWx5WRwvFe77eHwxRBQFVUoAsS5olqMZRzVs7NLuseXZi7dLO5Szvg8G3F26S54do8GfpSaOG1FsMcnVyY3RyY3DOPdpz7Olkxuhko8ucfU05uparhmHnr341iUYroIRqADIiozLLUERUAgCiA5KW+jMONb2hJ60EERK0AACaFVBBRQGUAUABaCoCA7GGdS97h5PR7umv3o+d1mPONfXcHJ6PqeNbcP1fRXmR+G8Rx4yr0Po6dLPeKR2h7t09HytMtykeDzOdmrExR8py+Zyb7+nL8/1mWUtkvo/U+HdNr9MrOa+a5HntM+aZl51n57bPWv2GjiY4yT0caOL0CCxJRmqBFZRmrBkUCgCiJQEAFgCiSCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqgAAACAIAEKoCgAAAACLCgAAQWFKgCAQBQAAAA0aDkAACFEoAqgAho0BpBUAFgFAAAEUaQAAFhSokkAoA0IAiqqVul5paLRPd7uHlU5OCcOTUTp215eW2Xtk8nU6vN5M53xrx82KcV5iXC53u9GOXmxxosJFJFFAUGVGhVgGoWFYUVKsNQrKkqnuoiCFAFUVAUABAAi8oiKaAAGxplNIKkmmFZBVhRKGlg0bVFFQABASQYkhltpYajKrC+6NLAwqrEquakNRjLs7uKHo4np1+z52938Tv45ezD2fI3OzWy2u78+jx+X1dTJkeblyerhsye/Rh2edks6lpeLOvra52cUyQw7jUQRKJoEmGZhK1KxMOOYZrpKxMMTDFdYjLLSArUNQsSuasOxSHXF59lenx694fsf8L6f/l7hf8AiMH/AN763QfFn/7ef/xr4fW3nLVP/Uw/y/G5hxWeGvdi4rQ45c674uOWZYrpEEUAAESStIIrkiXNWW45ZR2K2ditnbF5M4562ditnfGvLnHPFnLFnaPLlHJFm/M6RysTzMWkJHDLgu5Zdnow7urZ17Q8+T2a3WtD7Hp8fIPD/J5Exq+Xeperw6cbtuz+TVlXHxG86dOv+fdhHweWZva1vrl17Q+Tn62vt6/SSOKYZcnaIko2miYAA5RUUFiKojmxV3L3uHj3p6NM9Y8PWZcY19Jx8XaHatj1Ho+phj6R+W2bP3n93lcmNbfPcn1l493u+v0Xrw8nJPdh4a+7O0FBUBVVAAbiV5SuWs6c9LN4uGcdqlncpZ3xrw7Z3dyl3apZ6Ma+dsxc8JNdujz88VxXo6d8Xv05ZTl6Nebo5cbz8uN5s4+poz7Ohko6tqvJlH1NeXZwzDDlXpghFAWJKIox70ahpJSqghAFDUyfJT0ZCCgMylICKAEo0onvBQAZQkFFWAhUFRQEbpOpevxb6l6tF9Y8vVY84V9Vwcvo+v4l9xHd+q6HL0j8R4nhxa9iveHV5FNw+tnOcXwdd42PneXijv2fL8vHqZfA6zHu/VeH59ng8ijy8ldS/Pbp6v1fT5ekdaUeV7RCrESWaoCoiLGZRFAAFCUEEAFAUSQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQAAAAZAAAhVAUAAABKLAKAAKCKCAoAAAAACgAggsAABoVFUAVkAE0imhRCEVRAVYlEKKKgAKUUEEBQFUQVUFhUVYmYncKjntl9pXVvX3S4FrOM4nAsItAFAFVFFRVEaVWVBGoVpkAVRkRaCkKCwAoAACoURBVAZWEGhpABCYSrESYSqCBDTURQQFAAARlFRYZVVhqIrUHuiqrCjQ056LHPPs72P3PQxvVh2fN3O5jl3ay9WHaPmbZ6uWLM2u62+jzzH1dPJf17vOy3efZe76GjHs6N7OCZeSvpYT0YahG1bgZoKiMzCNMTDEwzXTFxzDEwxXWMaRmtxkRpqIbiGozXPSHax1dcI8uyvV41e8P2j+GGPfXuJER6ZsE/8A1vsdFJPtL/6Wf/xfC6q+bdpn/qY/5fiMw4rQ+fX0MXFLic67xiWJYdoyMqAAAgqIjSxLlrKxnKOesuesu2LzZxz1s54s7Y15M4562ckWdsa8+UcsWb8zpK4WEym1GJcFpc8nXB17OC0erhk9eDh8s2tFY9Zl9P1/LXj8LicKnpFY29PT3ydN1mXzxmP/ADXLqJ5+p6HH5ZZZ/wDD4izhmHyr7vs4+ziZc3aIylbgICSCaWIFVFiKIO7x6bmH03Cxb09nTz1j5HX58Y19RhwxWsOTJSPLL60npH5TLPnZ/d4HL7bfM8mfV87qO9foug9ZHlW9WXgr7s7QaAQFVYlABRGolzVluMZR2aWdqlnXGvHsjt0u7lLvRjXztuLuUs5ojbvHhyhNXDehYYZerpZMW3nZcXq82yPpaM+zzsuN0MlNPJnO762nLs6tquGXnyj340Rn3bQFiIiiIozIsRGVgAsRMy9XFbBwcE5Znz58lLUinuito13bx72+0c93NmOGP8V45+UeRIw6gAiVYgigAktEEFUQoIgCirCiSVCFQACHoce/eHfVeMo5b5zjX03Cyej7HhZNxD9L0GXZ+M8Tw7voMVtw1kruH6CeuL8tfTN4nKxvmOZj9ez43WY936HoM/hfOcjG8bNV+b6icWv1/S5cyOlaO7DwvpwRK1BmWaoCoIMIjQAAoSgggAoCiSCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKAAAADIAAKKAoAAACCwCgACqMgAKAAAAAAolABAgCquhFWFQFQAAAABUJQRUFGkAAAAUKKDIAAo0IoqKLEVVQAFEqgAA0qVGlQURYaVmqCNK0yoqCoCLSKCA0AAIACkqiKKgAmu6KoqAAJREkaBAWFRQQFABJEqsyjKqqgsLEVqFRVhYwoo1Ds0axcs+zu43dpL04Pnbfd3KS7NZerHtHz9kb8zjvf1at9HPHH1dHJd0Ml3lzr6OnHs61pcTg9s7DcAsNwsZoKyJMIsZmHHMI3KxMOOYYrrjWJhnTDrE0aOFaiHJELGMnYpDt4qu+EeTbe72+Hi3MP0jwTy+Tw/EXRowZPLGTm8al+0Tus5IfV0fdwz/TlP8AmPg78/8AqNX5Zx+UTDhtDwV9TCuGXFLlXoxYliWHWdkRlqACgiIKjKVuDUSFc1Zc1ZdcXnyjnrLmi7rL2ebKOWtnPFnbGvPlHJFnJFnSVwsXzHma59GeGZlxTLFbxjhs4LOWT04Oz07F7Tm4dx2idydazzyeXefdHZ2+Ho8v6s/8RmevW4X+XX/l4dqS4bVfOyj6mGTgmGXKvRKwjLaCACiQoKgNVjck7wr1eJTcw+x6fh3p9LpcfV+e8Uz4xr3q10zeO0vpPzEv3o+c5sa2+V5M+r5nU96/U+HesjzJ9UeB9xoAAFIUFQXQLDUSrNc1bO1SzrjXm2YuzSzuUu7414duLvY7O3Sz0YV83bO7njuzam3Sx5peK696OjlxOOeL2ac+K87Lh9Xm5cWnkzxfX0bOzo5KOraunkyj6uu8uKUc67oCstIMiVolkGRloAInRaZtuZnch7sgoAMpVgiKsAAvuCKAgKQEKQUhQlRIVkEBXZw2dcPijGyc419Bw8mvK+v4OTtHd+g6HL4X5XxPD0r6fj37Q70xuH6XXecX43bOM3mcim9vnOZj9Xg6vH0r6nQ5+sfM8unq8HPR+Z6nH1r9n0WXpi8y8ON8u96+1jeZElGa0MooKsRGRERpAAFBBBABQFEkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVFEAABkAAAgFGgAAAEABYBQABoGUVYoCAAAAACggAAGgXlVEFhUBUAAAARUUARSAKgAAACwolAQD2BdALClUEWFaRQqAAJSrCqgAe9VgqqzRo4ZFUWFWM1VhUaFZAgCCjSAUABdEDSrwJpRDQBpkAFBAAAAQTQqoQDQqAAiCSylanYWIQFUGliUaVmtLCzuySLRqPV2qNYuWfZ26ert0l6MHz9jtVl2It2ejGvFnFi0uC+RblOEwx9XSvf1dO1nmzr36sXBMm3J6iG4VmtQ1CxitQul7s00kwpykwxMM1qViYcVoZrrjWJhiYc66ypoiBpuKuWKtRzyrs0q9DDT0ejXOzw7svSvf4dNRt9l4S/qPoX9w4v6kPq659y/pv+Hwdl56jH9cfmVocFofOyfYwcNnDLlk9OLEsS5usZErSHZFUEggqIlajIK5Ky5YlvFyyjnrLkiXWezhlHLFnNFnSV58o5Ys5Ys6yuFjW120xwymhYxNWJx7PLy3MuHe4NfZe1vrv5ezzctJte0zHq7Z4/udeP8AdNWX77bl+UjrWxuremnjzw4j3683WtVw2h5M49mFcaOTsgKIggnzUAHNjjcrO8Zy7V73BxbmH2/Ex+THD63S4+nL8p4rn68O/EMX9Je18LG+sfM9RnW3yPJnvL5fU96/WeG/Bi6EmnhfbFAAAFFRrRpeEARuJc1bNRzzjs0u7dLu2NePZi7lL+jvY7vTjXzd2LuUs547vRi+fnOKxasS618cSmUb15cOjlxR9TzMuL17PHsj6nT59nm5cWvc6N6PHnH2dOXZ1bV04pcK9uN5iA2CCSiWLEEVnQnu0SiAgqAAAiVYMyKsAAoIEBKUUgIUgpCiAoAAOSk6lrHvEy7V7PFv6Pq+Dk9H2+iy9cX5zxHH0yfWcW/o9ik7h+o0X7r8R1U4zrgz03DwOXj9XLqcfSu/RZesfMcvHrb5zkU9X5nqp61+06HP0xeTlrp1ZfHz719/XeZETTm6iCoiLBEETSVpAgAoIIIAKAogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoAAAyAAAqwBQAAAEAFUAACDQMgoAAAAABoFBAAAGgNCiggKgAAAAAAIqRaCoACgAEKIAiiigABtQXaxLTPC7gEAABVRAiVFFiNCoNLGRQqtLGaaVYiggpEUWdkBQAAF0umoi6NHKcroBAEASRFBacpoRQQAAUQPkoogICSCMJWosNxBCmlVAEWGhK0NTuyCjcOxRcXLN2qO3WXoweHY7FbOxiib2rWPfLvh63GfnHjz9JlX0WXp2OnFmZ90PkcltTMPZ1+nHTdf54vL0G27vtOfbJ1MlnVtO3ysq+3rjCsOjUNw0zWmoWMVqIaajFNGlQmGJhKsrEw4phiuuNYmGJhiusTSxCNc+jcQ5qw3HLKu3iq9TBj3p69UfO6jPiV7uKnkpD6rwhG/EfRP/H8b9SH08O2X6L/h8Pnnbjf64/MrQ4LQ+Zk+3g4LOKYccnqxccsMV1iIjSCKAACJKNMoVqLDliSM5RyRLmiXWOGUckS5Ys6RwyjlrZzRLpL6R58o5Nr3dZ6ubkiu3JXG7Y4cuVy4b9j9jcYNxL0Y6XO7W4xzSlo+t1b4fsbz1+mMNefra6mTHp0clHi24d30NOfZ071dW8PnZzu+jrvZwSmnmr0xJhNC8gKgyIAsO1hruYbw7xjZeMa+s6Zg3NX2GKuqxD7PTTjB+L8Tz522Oz5dOvf0l3fKwvq+U6lPez5LPPeXy+p+Kv2Xhs+5i6g8T7CKAAAKqo2NMppEFbrKypY5q2dml3TGvNni7dMju47vRhXg24O/TI7dLPThXy9uPDmjUsWq6WejhLxXVyY3n5cTz54vdoz7PNy4nm5cetvFnj3fZ0Z9nn5KOtaHlyj6uu+kcYw7ACShVQZVJEqsyiKAppAAAFiSzKKQoAoAIJVopEEKQUi1ARQAIDUS1PZHpca+ph9Lwsnp3fV6TL1j4vX4/dyfXcPJuIfQYrbfqulv3Y/C9bj96uS8bh43JpvbpvnMrl0t4yfNczH6vmuTj9X5vq8fWv2HQZ+mLxM1dbdCz4ezvX6bTfSMDg7oDTKJSAioklWMiKAoSgggAoCpKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAMgAAQqgKAAAAgAsKAACiwp7oAgAAAAAoIACgaUABRpkAAAAAAoAAAAamY3AKAgsKKSiDltivStbWrqJ9FmNvr7Sc1LlJZPm4lIqggAaNByEASAETINxbatM0VGaoUBqCh7osKpRVYXahViWlZptUQNrCqKikteye6oIooKSJWoVUUENGlDSAMylWCICwoEwioiKAAUBRFSqIIqHsIyjSw2sSgILBBpWoyq6VAEbhzUajnm7NJdmsu2Lx5uasvd6Pxvb5Yvb0iXu6LX9r1OrH85Xzutz+y0bMvyet1zlxgwxiie8vhclnfxbZMuouM/hkjl4Rq8vTy3+K2urazhl8evuYwhsarUNQrnWmoaZrUNNMK0rNGdBGJq45qxY3KxNWJqxXaVnSxU4W1yxV2K0bxjjnk7uGj2uNi9Ht04+sfK6vP0r0ofU+DY34i6N/47jfqQ+jr482X6Mv8AD5PP3sP14/5fmNnXtD5WT7uDgs4pca9WLilmXOus9mRGmUGhQEARFiMpWojUSkWuSsuWJdI45RyxLliXSOGTmq7FXbGdnmzc9Y3MOxXG9mvDl5c8uHYx4narh3rs9urVy8ezZxy7FcG/dLljjfW92Gh5MtzF8TqZcSbNckdNWfNjzs2P1ebkq+VvxfW6fLs6F4dS8PlbJ3fV1V1bMvHl3eydkEVEFgIqGgaiHpcWm5h01944b7xhX3HS8Oq7fRY6vt65xhi/Cddnztzc017Oll9LOjx6u747qVu9nyuady+R1PxV+38On7vF1leR9VFANKADQI1tVZEBNLANxLmrZqd3LKO1S7t47u+NeLZi72LI7+O/o9OFfM3Yu5Szkejn0eDKcVi1dupkx79zGUddeXZ5+XF69nl5sXq8mzHu+t0+fZ5eXH6ujejw5x9rTl6R15hhyeyAnyVJQoIy0iJVERUAgCoAAqIigAKAAgoIGwBSFQEUACAsL8h28M930HDy60+h0t9Y+Z1uPONfW8HJ6PpOPf0fquky+7H4br8fWu/6w6HIr2l7Nnri+bpvGb53l09XzHLpqZfn+snd+r8Py7PB5FfV5eSO8vgbp61+r6e+kcKPK9aINIiUgIoklWMoigKEoIIAKAqSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqgAAJQEAABRoAAAAoCACwoAAqiiMgoAAAAAKCABtQqgC6WICgCCgugQNAgKgAAAPq+l9JrzODnyRMTatd6jvL53k4LcfLasw9G3V5dWvL5x8/pup8/VdTqvfGuuPO+gEAoIPuuRxcXUfD3G5GD+fFM1u+h0OM2TqcPe67x/Z83xDO6suj2fwzbxl/wDlHw8xMTO4HgfRAFBAAAEAQVG4spXIK5qAaUlAVFVUFEWIFRWljNBEVVhVVUJk20goAqNwKyuliFSro0JyuhUQ0lVEkVlWVQhQ2qKJMAyCggCgoC2paIiZjtKcVOfWMoNIaBdKILpRSIGfm2NI1CjIAsOarUYzc9XYiXWPLm5abmYiPe+/6djrxOHF57fRfb8Ik+0z2X+HF8Pxe37PXh/Nm+L6ly55PIvbfbfZ5N7bfL6nZdm7PP519bpdU16tWPykcEyy8te2dmoaGa21DcYqtwrFWG4ajNWIaaYXRoRJhxzVK1K45hmYYsdYmliEW1y1q7OOjrhHDZk9LBj7vaw18tXv0zs+N1WXLlfrn8JPD3F611Ll8nPlyUtwM3EyY4prUzNrT3/8rpt23RrzzxnrJZ/y34X0uHWdbp0ZXiW2/wD8s5fgN4dazxZPXrdezilxr14uOWHOusRllqEoNAKAIiCJKKwI21EuWJalYyjmq7FYdsHmz9HZpV3KU9Hs1YvFsyd3Hi3rs7dMEw+pq1dnzdux3ceH6oeji4/umH1en0vm7trtV40z7mpwajen0Zo4jwXbzXUyY/Xs83NX1eLfhxK92jPmx5Warys0Ph9RH3OmvZ52R0sj4+19nV7Orb1YeGvbAZVGZFgCgg3SNzD3eDj3aHfTOco8XWZca8n3vDx+SlYezio+1O0fgerz5zyreSvZ5mftEtOfT+tj4fqVt2s+Zyz3fG6j4q/d+Hz93j9HCrzPpAsBRKAADQMqSoEqES3EkTKOelnZpd1xry7I7mO7v4skPRhXzt2Hd3sd3cpbb04+r5mzFuIcdq7as5ccbxXVyY3mZsTz54930On2eseVmxPMy4/V4c4+50+fZ0r1deYebJ9TCoMuggJKM1WRGhlAAgCgCSAkojSwSogAAJIAigApBBEUAFgLC+45sc6l7PFv6PX09+9Hh6qc419Vw8v8r6fi5NxD9P0efpH4vxDDi17FJ3VxZq7h9W+uL4WPpm8HlU9XzXLx+r4nV4936PoM+z57kUePlr3l+e3z1r9d0uXpHUmNMvFX0SURUZlFBFElKsZlBQFgkoAgAoCpKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAlAQACAUaAAAAQAAFhQABVRREBQAAAAAUEABoABRWQUABYCqDIAILBEUFBQe10bqdum8iJ9aWnVofT9Y4GDqGCnM40RqdTMR7pe/RZu6fPXe+PrHwesxvSeIaepnw5/dyfA5MdsdprMMvDZxz84+5MplJYCAAr6zwxzYrlzcHL/lcisx90/W9nQbPsuq1fK3i/39Hi8R1/a9HunvJ5p9cfV4vVeLbic3Nin0i3Z5zlvw8m/bj8sq79PnNmjVn/NjKo4uoAAAAAILGQG6y2sYyVVRYbpXz3ipO8Zt4lvyjvfNueaeeKuGeFyI9aS63Vnj68PNh1eq8/enpUnh56zEWxzC/Jc3upJ9nn8mv2jVZ6ZThyV4OWfWunLPFrjjd5a8nHdzvUY2yY+rp3mJ9PRxsV6J6RoQUEoqoNbaiIoKq/NkWFiVpWkrTUQRmrpz1wWtrs3MeXPPOY+tJ42SPSHDNLR/uyZY2Jjsxy9019gljfLGk0x6tSoh7tegAgKogkwgIJVFUVBI/T/BXg3g9b42fndR51ONwuPas5ss6talZ3ETWkTE33Lp/wAQcXhzj5+m8boWX22LDh1kz6mvtbT335bej33Xjh0t4xltxluX59+Hyte3PZ1uPOfw55SYflx3fnaTD5768RonuUCosNKiisq0qVQQ0KK5YWMZOerldXmyez0jizyM9Z12iXt9e5kYMVOPSdfW+1o/ceHbtn83pHw+on2/iWjX7YTmvirWcFpfEr72EYIYdWobaYrTUNRiq3CsVqGoajFahqPVpit6F4YXyszU4WViasTVmx0mSeRYonC3J2KUdzHjd8Mezy7c3qcfE9B7tc4j4+7LnIfvf8C/9o8Rffw//W7l1f8At9n0fU/0/wD/ALr030z/AMV/MtodW7hkmDr2cMuFevFxSy53u7xlErSIjQaBQBmQRlK1E0mkaHLVZ3TLs7FId3HV6tWLx7a7lKPQxYt6fT0a3zN2b08OHt6PQxYNvuaNPZ8bfs7vQxcfv6PUxcSfL6e99nRp4fK2Z3Ku7HGiKutlxRWHpuPEcpPV5eemnjZ3y+p7V9Dp+8ePm97yc3vfnep936HpvZ5uR0cj4u59nV7Orb1YeG17oDKjMioCgDsYq7l9V0vD5r1erpsec4+V4ln5dWX0fcYKej2cWLt6PrvwHVZ+riz11t4vJnVb/dJ7OnSetj4HqFt3s+fv6vjb/ir+gdDONWP0YHne4CCioACgoMtDQJIMtQkWtxOnPW7crjlHZpd3Md9ad8K8W3Hu9DHk9O7vY8n2vThXyt2Dt1ttyO0rw2cVxWq6eTHtjOd3bVlxY8vNi9XlZsX2PFtj7fTbOzzMlHSvV4s4+zpy5jhmEc3qEQJRKoyKMpQEUA5AUAZBVBUAEAATQVQAEARFAFaBQapPd6fGtqYejT6ZR5uonONfR8PJ6Pq+Jf0fo+iy7Px/iOHd72G24ct43D7uPrg/M5TjN5PJp2fN8unq+V1c9K+30Gfwvm+RT1eLmq/OdRH6/pMvSPPvDifOr6+PYRn3aggqIiiJVhLKKIECUVBABYAqSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAJQEABVAUAAABAAUFAAFhRAEAAIAoKACAAoI0ACVRpAAaIgAAgAAomggCmgB9D0bq9uHPsr98dnXTsuvZjl7PJ1uidT0+eH947PVOHjy7zYe8T3fMTWaz3a348Z8ztXPodly0zG/Fj6Mjg9oqit4slsWSmSs6ms7hcb5bLO8plJlLL2s4fSdTvXqHExcuI+lrV/r7PmXq6yzPZM5/FjK8XQy4abrv8GVgjyPY1pYheE5JhNEAhBQEQVkFG6ysStqrA5+NeuPLW0+5qd5Wc5zhlPnH2/E67wKY8VL4Ynt3nT0I6v0a0/5MfhD6uvqdPlxmUfkt/h3WY55ZYZ3i2s5uq9HnU2p+UPKz9X6d3nHTuZ9Tp9fLG9HQdZeJcrw8XkdWm/+XjiHlZM2TLO7S+fs2ee8R9/p+mmnGc+uTA5vSrQgAhsFhpuMiiVoVlVaRqGtKxWtNLGa1WO8Pd4laW1Ey9GiS14+rt8no9uOJhmrjt03FPpEPfdOOUfEnVZ4V08nSYdO/SLe6suGfTPbq6/5ull6blrPaJdeeDmeXLTlK+hr6zXlI454t49zinj3j3OdwrvjvwvuzGG/1L7G/wBTHkrd2Yp7C57GV8i/aRr2TM1iFs4iTLlxSmnN0SUFFBUCO9j6jysWD2FMtq0+qJdK1rWndp3LWeeWWMlvpj6RjXpw15ZZTH1yvrWRh0ACGyJRVRVhpGjRwyoqACw3CxmuWJc1O8xDrj68OGT7Xpda8HiWzXfKc3l25XIvkmfWez63WZfZ9L02j8vNXyOiw+06rqd35+WOhMuOXxq+1ijSNVpqIajnWm1Yqtw1GarTUYrUN1aYrbUQ3HKtxCTVU5YmqeROGpkeRqKHBcnapjd/BiejXj6x4t2fpXp1rFYaeuTiPmW80fvf8C/9p8Rffw//AFu8/V/7fZ9H2f8AT/8A+69N9M/8V/M9odW7jmzrdezglwyezBxy45c67REZrSSiNIIoqoEgwiVqCIqxDlrVvGJlXbx1mXo4aPoaMPWPn78vSvRxYtvVw4PTs+502vs+N1Gx63HwTPpD1+PxZnUzD7/T6vSPh7svNa9jFxe+5h364dR6PdzJI54YFqREOhyKxqVl5lXLH1eByPfDw88+r5XVdq9PTz70eLnn1eRmn1fm+qvd+h6adnnZJdHJL4u6vtap2dafVl4q9kBFEBkGlI9Qd7jV3aH3PSMWq709/ST7z4Hi2fGqvrOLSZmH1XH4szi3p7s7xJ9X4jZPPteJzI1NofN8y2sd/ulv+G/R36L4sf1Pz/nW+lZ4lvV8Xd8Vf0LpJxriDi9YqlAQUAEUEaGgATQBtuskqWOatnZpd1lebPF3MeT7XoYsvo9GF7Pnbtbv48jt1u9ONfK2Yetacdq7WxzxvFdLNjeVmw+rzbMX0+mz44eTlxPNyY9PDnH3enz9I6lq6cTzV9DG8siNiIohATSXusNJpFUXj0ERABTSCgohCKqAgASAAIAQyKAqtACEO5hs7a/ijltnOL3uLk7w+p4WX0fd6LL1j8v4hh6V9Jx7u9vcP0Ou/dj8lux4yrp56vnuXT1ePqp6V7+iy9Y+b5VPV4XIp6vzvU4937Do8vheVkq68vk5d33MO0RGPd0gkioiKIzVJYFAAFQZAFgCpKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAgCACjQAAAAAgALAKABBVEAQAAAUFABABVBFABKo0gAqkQBAAAABdCoApoEPQg9Xic6aV9lefouPlY6zPmrPq7W+bD6PHMPst9s7ZOgji9YqgA9PhciK1vgtP0b+jo5aeTJaPdt2zvm14fl6OGGPk27P6vVxq5R2aEZAAUEBEGmopaY3EMa0WEvcEG4tttuM0UZF3P1hSZn60EGlhV2qoGxFBFAVWmaNws7pVWF92GohYbRuGtKxVa00xV056ZrUaxvFYzxmcduvPyV1qZ7O5Tq+SPWXpw32PBs6LDN26dXidbiHZr1LBPrMPRj1Evd4M+hzx+Fy/LONPvT23Gv74bueFcZp3YJPyWY/mr+Lgtj4c++rFmqumN343tXUvXi94iYdS88ev8AvQ8+V1x7tf2145jrWy4I97rX5GP3Q4ZZydntw153u6ts02cO9uFtr2Y4cRBloNAgKqBEEUFAQWGyM0VtFUZaXSoKIqtIaBG4l6XAxe0yRM+jvox82zCfm82++TVnfyen1Tnax1wUl85Mu3WbfPtv5SRx6HV5NM/qvNYmUeJ7lahWa03DTCxDSs1qGmoxVaVmtw3DTFbhyQ3HGtxDXlbc7TyHkOE8yxjclcbUxS5u7jxu/jrqHp1x8/dm5R2eYfvf8DP9o8Rffw//AFu83V+vT7H2v9P/AP7t030z/wAP5rvDqXhyzctbq2cEuFe7BxyxLlXaMCNoyysAUUBAiIKixWZWReXNWjsUo768HDPJ3ceLenpYcT6nT6+z5vUZvUw4vR7GDBM6ff6XX2fD6jPm17/E4z2MGGK+59zXPLjHz7i9KuP7HLNY053LmvRjj6Otl1DyOTkiNus+Bwyn3nznKvrbwuReO75HV5+lerp8fWPFz39XlZbPzXU5d36Lpsezz8lnTu+PtvrX19U9HDMJLzPTEEUQElBRqsBXr8PHu1X6B0/F5cdYfU6SPzHjGfpw+v6bx5yXpD735H7Hi7mPcdRlxljPzfmen1+e7svlHwHUu2S75HqFtYrvX2136N9DP3mP6n5/y7bmXlT6vi7fir+g9NP3cByegWFAEABoShoRoaEUAQZmDYNxbTmrdqVzzjsUvp3seV2wvZ4tuD0MWX0d7HlevDJ8rdg7dbbbdZXhs4rgvXbo5ce3PKPTpy4eZmxevZ5GbE8WyPt9Ns7PNy006loePKPs6suZGFc3ZEQTQKAJJApMIoIzVERQkEFUBREEAAABUBBBQgooosQc+K2pax7xjP1xr2OPeez6bhZPTu+z0mXrH57r8PSvp+NftD1qW3D9Jpv3Y/HdTjxkxmjs8LlU9WOpnpXXpL6x87yqer5/k0fnepx7v13RZfC8fNXvLpTD42yer9Dqv3WZRx93YRVQBBloZlFZAAUlEoCADTIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAADIAAKNAAAAJQAAWFAAWFEoCAAACgAAAA1AigCSCqqUFQFg0IyAC6AFEUAQAFFgADlrlmI8s+hLx/dMsfNHF6yAACgsbiYmG8l/PMS1L6JZzlK42oQqiMgAAJKqysesDT2sfHj5PNtPGt/NL09Rh5Mdf54vL0+fny2/lWJHlesjs5YnaxnJVbYAKAKCKqpVkEFgBYEWGmvas000qK1DUYrTUNM1qG1YqxCtMVRUAJwGzk7nnvHpaT2uT/XY82XzXyYfKJ7bLH+/Ke3y/wCuU81+a/Z4X+GMTkyf65Ym1p97Nt+bcxxnswM+raCgqUBAQElBoAABSd0qtCVWoaZqgjUNNRmhCoqiAvCNR6w9nBeOPhmffL0dNfLbl8o83UzzSY/OvLy5Jy3m0uFxuXmyt+dd8Z5cZPyQYaahqGma1DUKw3CqxVhuIbjNXTUKxVhywrFckNw6Rxyc0NxDcca15W4o3Ixcm4o5a4pbxxcss+HexY4iHM9GPpHhzy5tBpkfs38G+s8DpfUuo8fl5ox25luLTD9totaNOO/DLbp2YY9/K+n4Pv19N4h0+zZlxjzZz9Zw/A7w6d3HNdTqXcFoeavdg45hhyrvGJRG4kpLKoCgCgiBFWI25q0dMYzlXZpidzHhmXv1Ydni25vQxYXo48M9uz6+jX2fJ3bHrcbBO4e9gwal93psOz52fr6vdwY9aehSj6GV4kcePV2Y7Qza7jJzW7eI87PliN93zvLz683dvZl5cHGT1r57kZvNvu8TPk7y+F1efd9HpcHj58jzcl35zqM/Wvv6MPSOneXXl8zO+r6WtGJcq7RkZaSQGZBRy443KzvEy7V9H03F5r17P0Di09IfW6afcr8d4zn95+meFun+3vHZ9/1rh/JuF3r7nz+p2/8AVYYPP0Oj/oN21+HdStE5Mkx9cvjOqX1jmNvrZemq/R4/Dpztx/U+C5Vu8ug+Lsv3q/f6PTXAYjsLCgoi6BlNKLV0KiigJ3ABGZKQbixCxy0u7NMjrjXn2Yu7jy+nd38OZ3wyfO3a+70MeR263erG8yPlbMPWtergvUrGF4rz8uP1eTmxery7I+t02fZ5mbH9jzslHiznrX29GfMjrTDLg90Ekogzw0JIDkrivO9VmVkuSZZTEtS1fWHEesvFJZeyCVpBFNAICiAIKaNHAgiqAIAaQBRoAGkGqTqSM3s9Pj21p9Dw8utPp9Ll6x8brceZk+p42SOz3MNtw/TdPlzI/GdXj61zX7w8nk19XXfOcXHprxk8DlU9XzvJp6vz/VY936rocvheJnr6vOvD4e2P02i+kcSacOHpEFQBBlRmUaRAAUAQZAFZBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVAAAAGQAAUaAAAAQAFAUABYUQBAADgBQAAABqNAigDVK+a0Qs9bEt4lv5O3k4WWsb06k1tX1jTeWFjnr247J6UGWxRAEAFhVAAABAABYAIBwoohoiAF0Aq8JyEKKIyAAAiqNUjd6k7z6l7X6PqJ1XgzOvV8rb1l7es7ap/S8XQ/8AnX+plHge8WJCuRdtSsGxRQQBFVRVVkUBqCJRW2WlgZaaiG4y03EKxVhtqMVdNaVhdK0iJpBAVmWWa3EllLGomkZaZBUAFKGlQXSTAiTDMwWNRBIosKCwJVaEo1Cs1VaZaiGlZqisi6IVrQrK17S5Ml5tGobl4mUZs5ylcWk0w0aNByrUKlaahWa1CtMNRDbUYptVlRqHJDTFckS5IluOOTnq5Yh1jz5uWsOWsOkjz51z1q7NaREO2MebPJyDo4gA+n8If1D0X/x/F/Uhcf4v0Zf4XH48P1Y/5fC3js6WSHjzfR0upaHBaHlye/BxSxMMV3xYllhuEsylaQRQBoWIaaiq4xLXLWjtUxvTrwefZk7mPF6O/ixfY+po19nzt2b0sOL07PWw8btD7fT6+z5O3PnJ62DBp6+LFrT62nDjhyeljjWncrMQ75s8E5IdLNyNe9McWMni8vlR37vm+VytzPd5Op2rhhzY8PPneTlzbfm+q3d32em1ekeZlyOhez4W7P1r7enD0jhmduN5K9cRmWK2xIzW2VBmQVYdrBXctYz1jGy8Y19h0jF9KJfccKm7VfY0+mqPw3i+fOzN/QPgTpFskVvNe2tvf8aY4wcXJFo0/O7Mrn18/U+30+j7LwLLP54v5n59t3s+K6xeIjT9Lt9NV+j894VOduD4bkTuZdR8TPu/e6vgijLoLCgsDLSLUXQooAAKREEUYkoIjTUWc1btSsZ4uxS7uY8rtjk8W3B6GLM7+PLt6sMuz5W7Xxy7cXLd4dXi44rrZK728/LT1cc49mjLjh5mbG8vLj+x4s8e77fT59nSvTTrTDzZPp4VBmugkioIN1jvG37D4B8O8LrXJ4nFzzFfb5KxEzG/e+n4Xhhnvy885xmNr5XiuWc16cccuLnsxnL5DxdwMHD5d64oiIiZjtGonU6fE6cPENc1dXtwnaZO3hmeWzo9WWV5qSjxe76MABJRUQiqKACCiDCiijKUIaUAAWJQVBYB3MNtae5xcneHu6a+sfM6vHnGvpuLl9H0WDJt+j6XP0j8d1uHFrvxO4dPPV7s/XF83V6ZvA5NPV89yaer4fVYv03Q5dng56+rysker4W6etfqOnvpHBKPK9qIjSAIMqJKLEZKoCwAJRAEVkFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAAZABYWAKAAAAgALAKAALCiAIAAoAAAAAKCNADmwTFctJn0XH4ozn64ZT8q/SeBXpvUONWk6jJERDoc/w3M+acfevruH2ctM36sbj8n5DX1u7ouqz17e3m9HynJ6bnwb3SXnTS0Pl7NdwvFfqNG/DdhLKyrm7UBBQFUUERQNIAICqCF7gAoAqwU0rK6ABKVQRRRBAQByYo/xaNYfFPqZfDl9H0fJnycCsPl3r6348J/S8fQ/Bsv9VRHhe8CjVZbWM0G0BPcARpVQVWVXYENNRmqqorUKzWoabYrcNKxW9NRDUjnVaiGmV0ulZTSaFTSaTgSWGa3GUYrcREVlBsNIABEqJW4WIWMkwzaqkri0jLqKRFURVVDTas1VhWW4VpkaiFQ0oyKIAGheA0EFWFRppYzVhtqM1RWFUhWobiWmK5YckOkccnPVzQ64vNm56e52a6d8XlzdmkQ5dO0no8eXcFQAH0nhH+o+h/3Di/qQs7ZfprWHx4frxfGZIdDI8mx7tLqWhw2h5a9+DhliYYr0RiWJYrpEZllpBFFBVhYy5Ihy1q64xzyrsUo7uPG92nDs8e3N6GPE7+LE+x0+HrHyt+x6mDC9rDh7Q+3ow7PnW816eLFr3PQpSIh9DDHiK5Y7M2y6b45HUy8mPreNyeX2nu4bdkkSx4Gfl7337PGzZ/Xu+H1W7u9WjVzY8nNm3vu87Jkfnuo2c19zRr4kdS99utM7fMzvL6OE4ZZlydozLEs1uJLLNbQAQVYejxabmG9fxRx33jCvu+lYorSJfedF405uRjrr37fX+HT9I/A+IX7TfZ88o/rrwj02vD6Zgya1e9ImXxn8S7TSkx5/qfm9P3uqwvzzfuev1/YeAcfLXH8yc6272fCdYv8ASl+l3fhV+N8Hn7zB8bmncy4Hxsr61+6w+GKrLQsKCiLtNiNK0gAioAAIDEr7CIzWxYkhXJW7s0yOmNcM8Xcx5PR6GLLp6MK+duwd/HldmLvVK+XnhxWbTt1bwzkuv0roZaPOy43lzj6ujLs87LR0b0eTOPr6svSOGYRzeqAlAQI9Y+9+/wD8Kom3XOh1rEzMZ31PC+Js23+jJ8rxT/8Ao/y3YvzrxpbfK++Zn83wbl4neet3383Twj/YaUlHz4+mCrEEVAUANAIigM0RTheREUUE2oA0guhEUHPinUvW413q0XivF1M9K+j4mT0fSca/o/Q9Jl6R+S67D1r1sduzOWNw+p3xfDnpm8Xk19Xz3Kp69nyOqnd9/osuzwORX1ePmjW3wN89a/VdLfSOlPqjxfN9IZZqoKqDKiSixGSqAsACUQBFTQKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoAAAAMgAqwBQAAKAgAqgACwIoIAAAKAAAAACgiqAA7GDkZcExNLPp+B4m5GLVcltx9UvV0/UXVY+X1/Qa+qxt4+893504HPr9OIraYeRyenYL7tSYl7Nlw3zzTu+P0839Fn5MpeHz+fhTSZ06FqTV8/LDyv0WnbNmMYHN2WBYDQlABAUBFAADQACixF0ugFVAAUQAAAAQEc/HrvNVdfx4fWM5+mGf0e71GYji44fNPV1v4s/THm6H8L/wDKiPE9sAqo3WSeiVVbjIAAKqsqCKqo1CtT3Zo0JVhtqMVqG4hpitNRDbFbhppzrStM1VVlAqoiKjEpWoykww3GWWfm2iSyqACLFRspW4ckLHPJrTM1aZlYmrjmrDpjWdaU9mkVBuIVpkURWoaZrcLCsVdKrKggqoCgAul0IRDQlUVGzbTJtoSm2oWIrUNRmuWHJEtxxyc1Zdirti82bnr7nZo7YvJm7dJcr04vFn3BWRCxR9F4S/qPoX9w4v6kJ7ZfpreHx4fqj5PLDzskerzbHr0Xs6locFoeXJ9DD2cMw4pcnpjMsSxXSMojbIyqwqxFhy1hvFm1y1q7VKO+E9Xm2ZO3jxu/jx+j6WjDs+fuzd/HielhxRuOz7XT4dnyN+b1sGJ62GkQ+xqw7PNK71IiHL5oh7J2acdskQ6GXkRX3uWzLiNPH5PK1t4WfkzO4fL6jZZHXCeavIzZ9vNyZdvz/UbeeX1tGrjh0Ml3UtZ8jbm+tqx9I4Jlh5K9MRmWW4zLEs1uJKM1uMgCSLG6Q9rhU3aHbTPvR5OrvGvJ+gcLH5aUjT9d8CdK+W9QwUmdRNoe/q8vJ0+f0fisMPt/Eenw+eyP6v4+GvHwYsUelKxV+JfxS5E1zeyn/Rt8Ho5z1Or6v3X+o/3fhGeP0j+cOZbvZ+f9VybvZ+h6i8a4/H+DY/fj5fJPeXE+Pe9ftcfhixLQCwoKIAhtrYAqCgAAURmSiEo0zLO0aWJctbaWVnLF2aXdvHldca8e3B6GLN6O9TI9WGT5e3W5vNtJrNtzEOnd5p92upeHQyVcM3u03s6GWjz8lHkzj6unLs6lquJwse/G+iA3yCCx/ND+gf4O3mviToUx8Tp7uh+Lb/7eT5finw9Nf/Vw/wAviP4h8a/H6rzcd6xE4+TmpMR9dbvzNnr/AF6nZfnw34V6dJhPlbER4Y+mCjIjQAAAAzMAgXsoADKgsEEFGkFEqKFbrOpejgt3h21X1cN85xr3+Lf0fScXJ6Pu9Jl2fluuw7vbxXc9u8Ps43mPzuc4yeXyK9peBya+vZ8/qZ3fW6K9nz/Ip6vFz1fA6ietfq+kvpHn3ju43z/evrTsMs1qIIqCKIkEZK0AsXSASiAIokioAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAADIAQqgKAABQEAFhQABoSgIAAQBQAAAAUKAgoKAsDU9kbra1e8Wl3cXPz4/W24bwzyx7Vw26MNs4s9XY+X1v/M4clqXh0ucycMNN1ZT5Ojb1RweuCqCwIKBoEBYcgewgiqCGgOVXTSAAsCKmgaBBzYaeZce7Od4xtdi3Fl1bY7V23cHPXtmTCObsgKjtcPU5qt6vxMPrGNn4ef0en1b+THH2PBdus/Grj0f4GKDyPUJIsQRWzbcY4GlABRUVSM1VhpGlWM1pVZahqIaYrcNQ1GK1DkhuOeTUNxDbnVWIWMtGlZNM6FRGWmWZStIyy1GZZYvu6IyixBFElYQUqrEuapGMnLDfl3DpHG3hmasWp2SxZXDNWJYrtLyiwjVbhWmBSCtxDUZqtrHOirGVGkGgTSxAKDIugVdLIgsKioVBtYAqLDcLGa3DlhuOWTmrLnrLri82bsUl2ay7415M47dJc704vDn3BtgUFfQ+E6zPiToeomddQ4v6kFn3cv01vX+Jr/VHy2WNw87JDzbI9OiuleHXs8mT6OFcFocUw5V6sWZYY93WMyjNaZGWlhViNxDmrV0x9nLOu1SjuUo9mrH1eHbk72Kj0MVH1tGPZ8zdk7+PH6PSw1fa6fF8rZlzXp4o07tJ0+nr9GJXLOTTitm+1u5Nx1MvI1G9vH5HJ9dS8m7PiVuerr0r7eNz6ODk8OIp6TuYfO2y5a8slw2ZY7Zj+b5LkWml7Vme8POvd+Y35+uX1fp9GPOM+jq3vuXC+fnea9+M4jDLlXRGZRqI47MukRGa3GUFgA58cd4fTdLxxOSj09PPvR87xDLjVl9H33Epuaw/pb+FvTKx5uRbHEzWvaXbxPLjp5PnZH5rwTX9t4xo/p9X7dL+b/4oZ5v1Hkf9I/B8roPXqdb9X/qu8eGcfPOPwbmW1F5+yX531G+72fc6u/cj834Lj68/lHz9p7svkv187CwDQIoqACmxFhdrEUUAAAZlKMko0zLLLURYkVyVs7FLtyuOeLu0yu9jy/a9GF7PnbsHcpkelwreeM9PrxzP4PThfWPm78eMMq823vdW8OWT0a/Z08lXQyVefN9LTezpXo61qvPlH0ddYSWHYhAWH7T/DHlRxOsdH5EzbVObhmdesx5o3D3eH4+fdlj88LHyvF75dGvL5bMXV/inw8vF631bFeazNOZm3MfbO348z19me+5fOSunhXp0tnyzygjwvpiBBEaAEBQAAZRKoKCIsUVAAXQAIALDt4pbw7xz2fC9vjX9H0XFu+10uXZ+c67Hu9/BfbvxO4fc1X7sfmN04yrqZ49Xg8ms93l6ns9vR31jwOTX1eJnq+D1E7v1XSX0jy8salwPmZd328PhiDFaYE+TQhVBBJZGhYjzTEQg7fJxxjrSHSXKcVnVecJRGWwRQFSUX2AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpaAgAAADIAKsAUAAEoAKCgACwogCAAKAAAACgAgAALCiUWFiCqKLGRoBQARVVKCoKCAAAAAKAAlFgFaEogg73FrtvD4nPd8Fe5ix+aPRvLwotETp6/JzHxru8mby8/BmPd73m5MFq+55s8OH09G+ZyergTTk9aO9wI/xnXT+Jh9XPd+Fn9HZ6pb6VYeO11PruzZ6WfuMPog870B37HqqAoE71FXbUQaCgqK0sZqw0rKxDYzWohW2G4WIajFbhpphuIbbjlk3EK2w1prSsqKyIUiM6YajEwg2wksNxmWWa3GUZaiMjUNqggqq5ayRnKOesuZ0nZ5s+66SaNMcuKaOKaMWO2OTimEYdmoVWVVUVqFjNaaac6qqjUKrKaUKACiKqsiqVpGkQZCTYLtdtci7aiSM1vbcS3HOxzVlz1l0xefKOesuzSXoxryZx2qS7VbPRhXh2RsdXEAV9/wDw4t5ev8b7c2D/AO+HTX32f+3n/it67xt1frx/y/PbRuHn5YebZHXRfV0bw6tnizfT13s4LOKYcK9WLEszDNdYzpnTNblSURVbrBErmrDs0q7YTs8+ddqlHfx0e/Ti+fuyd7HR38dH19E7Pl7snepDu432NMfMzvq7lb6hqcr188ErE5412l08nJ+3sxnm6R0MnJ3vu8zLmnvO3zd+70r1adfNdng5YnHrb7PxFmjL0nw3fVd/J8tdxWI3FMkxG9OHnl0S89spP+1bmNmfVT28vP8A/dH41zr/AOPl+95trPy2/P72X1fptGP7vD6RxSw8b1RlErbLMo1EZn0SukYRitxkFiEep7q7mCu5fZ9Ixe/T29LjzlHxPFcuNWT7vpmGcuWlY98w/sLwLwo4nQ8NvJqcjl4rl93XPzeD/S2vz+Jbs/5cH2N7eWlp+qJfyV475ds/UM0zaZmZl5fDZz1HPyj6v+r8+Ol0Y/PN+RdQv5cWSX53zbzMy+r1d9I+Z4Lj6cvIkfLfqBYVGgQCCioAKolE2Ea2KgbASSiJKNRGGWokojRtyRZZUsdil3cx5XbG9nj24O9jyPU4ObXIx9+1t1/F6cL6x8vfr5xz+jgyTq9o+2XBYqYTs69odTJVxyezVXTyVdO9XDKPo6q61oZca9cCBVfqvgHJE8/p+P6uTimf/M9/ht46rB8nxic9J9Mo93+MHfxJ17/xl34Yx1s/ea//AG8XTwy/utv/ALuSJLxV9OIICI0AIgooICohQFEGaoaUABQAQAHNSe7U7xMp6PX41/R7/Gyej6vS5dnwetw7voOPk9Hq47bh93RecY/LdTj61Msbh4vJr6s7+1b6W8WPA5Fe0vD5FfV8HqI/U9Hezycsd3Tn1fKz7vvavhQc66MonyaEKoIJLMij0em4PbciNx2rG5awnOUc9+Xk1bL/AEsdQvFs8xHpDoJn8WTWicasPoIxXQEUBURfYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVVoCAAAAMgAqwBQAASgAsAoAA0DIAAAoAAAAKFAQAAFUQVYg0qUFiLCgKIANDTK6AAAA0AigIlFVUFANCKogAPS4cOmHxOPUfh19Nw8UXmIe1833itZ1uJfT16/Pi/K9VvmvbxXWy8PvqaPF5HB9foue3W7dL1XFnq8TNwpiNxDzbUtWdS8GePD9Ho3TZi45eh0+Ppy30/4uH1b3/g5/RnqFvNmeexuvOzP6ro9NWH0JRzdiPWNvZ5HGpk4uPLijeo7u+nCZ47p78ejhuzuGem/w88V43eEcOz0RFT3ooqK0pRVZqw0rLUKrNahqIaYrSwsYckQ1DcYqtxDTNbhuG45VuIaiG3OtLpWV0DKCqyjNjUYZmGW4zMMyzW4yyjcRmYYaREaZRFBYo3EiVz1l2ay3i82cc8Q35XWPNaxNN+5xWoljeOTgtRxTXTnY9OOXLIjaqI2rTDUQqsVpdNMtAyAKLBVGV0umimlVKBEjIypKAAqwsKlbbiWoxXLWXPWzpi8+cc9LOxWzvjXmzjtVu7Nbxp6Ma8OeLnrbcQ27SvLZwDSK+5/h9by9f4X28nj/AP3w66viy/8Abz/+NWemWv8AXj/l8K6maHmz7Omr4nnXh07w8Wb6mquGYcUw42PVjWJhmYYdYzMM6ZbjMwmka5airmrVYxlXPWrtUq74T1jy7K7uOjvY6vpaJ6x83dk71Kw7dIfX0x8zbXZrLmi+n0cLxHjyixk0xOb7XTzmOLgtm06mTN7tvNs2+lejXr9Y6GXM6GXNt8nftfU0auzv9OvvHeftfY9Yvl+avD8WrqkYMvkn695JmV1WZdPnz7escNnM3b585Jf+Y/I+b25GT73S2/N7Pjy+r9Lp/Dw/TGEca7RmWUbZZllqIzKNxhGK6MSQRolanuPT4tdzD7vpmKIxw+j0kfnPF8+MLH6Z4T4c8nn8ekVid2h/ZnCwV43EwYaxERSkRqHzvE8ud2M+Ud/9H4f7zZ/VI63WM9uN0/l5a+taS/jvxPnnLzMszba+FT99n+ln/WGf3+kwfmnVcmscw+A5VtzL39ZfWMeDY/u486R81+hXYsFhVZUIKKibAVdgbAU2IJIIChIIzKKyiVqJKRKXvGnLFnPS7eLjni7lMrvYs01tWY90xLvhezwbdfd6HM1Ge019LREx/wBXVmdu2XevHrn3MPo4rS4Lub0YOpeHUvVwye/Vezq2q4Zhxr241Blsff8AhDkTgv7Ss6vSa2iftq93h146rXfzfK8ZnPQ7H0nj3m4eo+05MeebZIpN7ZJibTfX0pfjs+su3i8x/aZ5fbGOPgVt6TK33ztYR8p9sEUlABK0ksiwUKIAiqqIIJVBSkoQWBQ0IgEBusqntXoYL6l7nHv9r6HT5dnyurxfQcbJ6PZxXfe6e+kfleqw9a7Nu8PL5Fd7dd3Z5+nvGTwuRX1eFyK+r4nUR+m6O/C8bNV0bw+Ps71+h030jjHF3REaRJCAzVRFWD6fiYo4nBvlmNWvDrpnrcvlHj63L7mGH8+cj5m9pve0yw43u909JISjIAoCgCSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAJQEAFgaAAAASgAA0AKJVBAAFAAAAABQQAABoABRqMjSpQEaUAEWBUVSICoALACAoJQUiCwqLKAqiCqAVCXpcJvX8Uceo/CyfX9MiJyRD7SkRqI9z7vS/A/C+KX97G5w0vE7rG5eZm6bMxOu7ezX5ni0dTcLxa8Hk8CJ92ng8vps9/ovmbdT9N0XWcXH1fP5uNfHM9nY4Ma3Lz6cfLtxffz2TPRbK6fKnzZbOs47PXPL616NfphjPyiDDoj0eBzJw28l/8u3aXXTn5NmNct2v7TVlDncfyXnJTvSXnJvx8mzL5X1NGfn1Y/OelRXN1CEo1Cr8kGmolaVphqFVmtQ2rFHJENRmtwrUc24hpuRitxDcQ251uIb03HKqq1ldAcohBEllqMSzLLcYmGUbiOOWcm8e6Iw2MixGdMqGlUVBzVl2KS3HDOO1SXYq7x4s2vKzOPa8MTJwWx6l17UYsejDNwWo49ac3qxrUKDSwsYrTTUYqw0rNXSqyBwCgNaXhKRDSs0BBBRJL2VElFQ2A1Egu24lqM2OWJctZbjjlHLWXYrZ1xebOOxWzniz0Y15M47EXcsZHaV5csHJF24mJdJXGzhX2ngWddf6d/wCL4/6kO2r4sv0Z/wDxYvfD9eP+XxbiyU245dm8LxXn5Kunerx5x9LVXBNXFNXCx68axNWZqxY6yuOasTDNjpKkwmmWm4hz1q1HPOuxSrt0q9Oudnj2V3sdYdzHGn0tM9Y+btrtV7Oasvp67w8OTkiyzf7Xombl5WJyuG2VMtnDphg698v2upkzfa8e3a9mrX2dLJkdK93yt2x9LVh2ep0u+65IfedYy0ydC8O1iZ82PHmi3/XJMvZ03OfT7Pylrwb7MN26fPGSf8x+S9RjXKy6+t58vz+z48vq/QaPwtf6YjMuVd2ZZRtGJZaiMyy6RhGa2xIKN0J3L2e3wabtV+gcKnlpSNPq9LPR+U8Zz7R+7fwu6Z8q6lS8x2p3f07Goh8Pr8vN1Oz8uI+//pTV5fDrn/PnXynjLmfJej5/rydn8d9Yze15GW31zL3eE4/i5Pi/6r2S9d0+Hyxfn3Wckeke6HxHItuXbq796vZ4TjxpwdMeB9xVWIQqpRVRpAABRAAAAAkAkEZlFRJStMspfZpYlyRYSxz0u7mPJ6O2N7PLtxenfL7TDhvvvEeWf+jiizvzzf7PnzHicfnSZcco3i614de8OWT1a66t4da0OFe7CsDDoPd6PyfYZqdve79Nl5NuF/N5usw+06fZj+T1uvc+M9KUiez4yfV163ObN1sefwvV9j00xZR4n0zQKggILBnRVgqAkixAVZrNZmJiYlARAABCCigFAAIkHaxW09nj3erRl6x4OqnpXvcbJ6PdwX3p93psuz8t1mHrXoRO4dTPD2Z9nzdfpm8TkV9Xhcmvq+P1M7v0XR5dni56vNyQ+Ntnd+j0X0jhR53rNJpFZBqIJREFjt8PBOfNWP8Adj1el1PmVtFcVPc7Y3y67+d4ePbj9r1Wqe2EtrwUcHu+QiAIoCgCSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoAAAAJQEAFGgAAAEABQUAaEoCAAKAAAABoFBAAAVQAFVpKorIoiwogqiqVkUiGlUABdCMyhe6qiUFIKrUQEIqiAqUCg9DiTpvDvHHd+HX1HBy+W9ZfcYMkXpWX2ukvONj8V4rh96V2qy5omJ09b4WTizcbHmjvHf3S8Xk9Pmu9xuPrcduuZS16+l6m42Y2vnuX02Lb1DyLdPtii0xGng+y4y5fqel6znCY2vmeRExltuPe4Xzcviy+r9Lh64Y38mRloBXdw5/NScWSdx7nVvTyWdc8vPhjfeOWE8meU9r6uNXJ1AsGiFRpqIajFVYVK0qsNQ0rFaiHJDcYyaaiGmK3DWm453u1EOWGnPJuIVuOda0rTNUEREajKSlWMMMNxGJRuMss1uIkp7NIjLSERuThVtXysHBDQnDTVZc9JXFyzdqsu3SXfF4tkdisRLfkdpHkt4rF8e4da2P7EyxdcM3Xvjde1XDKPXhm49EMuzTULGaqtMVqGhlV00yALoUVoZppVQAQQGZFiMo1E2bRQRViW4lqM1yQ5Il0jlk5ay5os6SvPlHPWzniztjXmzxckXckZOzrK4XBy1yOal28a4Z493Yrbb7LwROuv9L/8AGcb9SHq031y/Rn/8XlznFx/Xj/l8eMUdPJjdS9Hnzj26snXtRxTjcLi9eOTjmjFqOdjvjk4pqxNXOx1lZ8qxVmxvlutXYrVvGOOddmlXZpD0648ey93ao7NZe/X7PDs9XNFm4u9uOXZ5rivnYnI6+cmDitkde2Vxz2O+GDr3yupbI8W3Y9uvB1r3da1ng2ZPbrxep0m87vV+icnFTJ4W4fJnfnpzcmGPq8vliz6HQ5/udmPzxr5nV4S79n5SV+V9UjXKu82Xxdv4mf1r7fT/AIOr9MYlmXJ6IjDLSSzKVuMSjDbCMtxmUGhzY47rj3TP4a+m6Zj816Pv+FTdqw+v08411+M8Zz+9X9T/AMKunUw8DNyZr9OdQ/X4fmuoy82/bf6q/beAa/s/Culnzx5fl/8AEvnew4FcX2TL+UOdk81rTP1y+x4VP3Wy/Ovxv+o8vP4vx/LjH5/1fJvJZ8lmncp1V5zr7vhmPGnH6OAeN9UahYijQAy2CAAhVgAALsEABAGUVEllpGZGkamLRETMeveBWos7FLtyuWcehiyebFevv7Whqt3aXs8OWPrlG/Mky05yOKzgtDnfd3wda8OtaHHJ7NdcMwMcO45cV5pMSuPpWcpzjY5s2abx3l0lzvNTVj5MRNOfu6iBARRJaEGasQRQBHodJpxr9T4FeVOsE56Rkn7NtYeuWM/OJnbNeVx7yV9t/FToGPoXjPqscbyfIuXeOZxJpGq+xzx56xEPzhdmNmdl/Ks6cvPrws+nP0EYjqIoLpA0KIAAKyEc1Jengv6O2q8V5uonMr3ONf0e/wAe/o+302fZ+Z6zDu9Sl0yxuH0b8L43bN5HIj1eHyK+r5nUTu+30d7PDzw8vJD4u2d36Xp76R1Z9UeWvcCDKI0IiwCDvUzfJcOq/wA9nQtabWm0+stZX04Y14euefvWBh2CQQZAFAVJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAAEoCACjQSAAAIADQACwogCAAKAAAAKCAAAANACwsQVUUVlVBQRVWJVCoqqimhDQCKCGhU0AaUBYWIoIoICooCu1gnUrh3Y2euFe5xsmpju+s4HM1EVmX0+m2cV+Y8S1ebGvoKXi0RMejmiz6fPL8tnj35csWanVo1MJ+Th2rpZ+HS8TNYebm4VZx2rarF182/R9Dp+ps8s59ZXx/O6RvzTFfrfKZ+LkwzPZ8TfquFtfuPDusm3CY2upJDzR9YZRVhubzKypZzYwEVVVKKI1DSsrpVZrUK0xW1hYzXJENtxzrUQ1ENRi1uIa03HKtxDkiGo51tptirpVZARERpGZgqxhiXN0jLMo3GWUrcREVEZsbRvHrzQY90vau5nwfQi2nnabznDGnPzY0HPh2IctZIzk7NJdqku2Lx7I7lJ9HbrG3fHs+fsbmm3DbG3Y545+rrWxOrfE42PZr2OvbHpxeRysevHL0IhrRFIa0qK1ELGa0ulYEUaNHsKulZVVRESqglBmRYjEs1qII0ALDUSsRuJckS3HOtxZzRZ0lcco5Ys5Iu6Y1wscsXbizpK43FyRZz1s6Y1wzjs0u+s8JZbV8R9Cis/wA3UOLE/wDzId5lxjnf6a83k52YT+qPn0dXnSaxLrWxbc8o64ZcOCcTinH69nG4vVjm4rY3DejllHfDJwTRiauVj0SseVfKxW+XJWunNWGsY5Z12aw5YenB5c3PE6csWevC9nmyjcWPO9Ey7OfCTf7XHN/tW5tTBw2yOC13DPN6MMHXtfbrXu8ezN7NeLhtZxTLyZ16ccXq9I/zMm/qfo98uKfCWDDF49pHUcl5pvvFZpWNvp9B64Zfljk+V1dmO7b+eE4fmPV6RXkb+uHkS+Vu9Nuf1fV6W86NX6Yyy4vVGWZRuIzKWNRhNMNsMsukZlEaHbwRuYaw7sbPhr7LpGLvEvvel4PaZsddd5mH1sPTRa/C+K5ebblPzkf2b4O4FOD0LiREd7x57S+pflsrzla/pvQa/sui6bD5a8X4D/FLqMXy3w/6NUfzrzLxHml+g8NnHTS/Pmv5v4tl9r4z1H1kfnfUb7vMvncnq8/UfFX6voZxqx+jiV5696tEQGgBldgEGwVJAVAAAgbNqAUEQZlEaRJRUdzmVis4axbcRir/ANJnus7VL8eE+rpt1kndquziyTWXPFu7rjl2eXPH1csWa21a4WMzO3HKfNrFwWde8OWT04OGYZ05vRDTIsEGkEBBUE4UJhfYZGRBGgAP5Z3B27d+VfqPVevcDxF4G4ODlx/+Vel2jDgye+/Htu2p+6X5Y9PU2Z3XZ/Fhzfq8XQzPCbtd/h2WY/QHmj3AoigAJo0Bo0nIGgKz3d3FbvDph3c9s5le1xrve49/R9fpsuz871mHd7OK/o7E94fVxvo+BnOMnm56+rxeRX1eLqI+n0l7PCz1eTmh8XdO79L019I6VoYeK9304CDAy0IqixOpAtebTuZYZak4TQKgCDIAoByiCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKoAAAAAJQEAFGgAAAEFAUBQFEAQFAAAAABQQAAFQGgFGkARoVlVgFBGlaZARpdCKKgIACIKAKCCg0L7ACAIoA5KTondMuz0sOXUw9rjZ9TV7NWXq+P1evmV9BxubNNQ93FnpljcS+rqz5j8r1eji3KOxFnJF3f83zcsXLFmr0reuphrH1l+jlzccpXlZ+Hrfvh89zemY80WnXd4t2qWV9roeruGWOUr43ndJyYpmaxOniTS1J1aHxtmFwr9z0nU479crCOT2ACmlBRKqkZaahplVVmrDUNM1uGohpiuSIahqOdbhqG451uGm451yabiG451tYhqOdaBkFR3em4MfJ5mHFlvFa2me8ynP4ObhZr0vSYjc6nTvNPm6a7p/DnxXH7eY9TNN/iw5xdBJeZ6mJhhmukZ0zLLUZmGGW4kwhW0RFQjtO2Wu76Hj1jkcaYeJyMfkyWh6Ns+5jXh6bLjbtw/NwI873DUJ7lc9ZdqlnXF5tkduku9jt2d8Hz9sdqvdqaO8eK3iuK2J1bYmbHbXm618TrWxuFxe7Xm4Zozpizh3lWIVBVhYjlpXzTEPfnpXm4+4mfPrenq06vtfM8PVdR9hdf514FomszEsvPZ7PXLzFNCNKqCKCJVEQGCrBiWa1EZ2jcNkCrtoZrUS3Fm4xY3EuSJbjnXLEtxLccbG4s5IluVysctbOaLOsrhlHZpPo+t8IzvxJ0D+48X9SHafBl+mvLZ+81/qjx2XpeIAZmkMWxwxY3M3BanZ1r0ccsXq15OvOOHFNHCx6sc2PIeRzsdPM3FXJENSMZVyw27YuOTkiW4s741ysaizM3dJkz5WJu4rXTLN0xxcM3cNruGeb04YuC1nFMvLnk9OMcUo411j0Om21yNbfVRknyTXb6XRZ+XDL+8fG8Qx53T6SvlerzvP90PIfP3fi5fV9fpfwNX0YZcXqjKSjcZSWa1HGMtxiWWG4zKDcWI7vQ4td2hvD4o477xhfo+96VjiuOJfqXg3gRy+p8akxuJvD6m6+Tps78sH4bfLt67Vj/Nskf2TxsNOPx8WGkarSsRDktOomfsflX9Xxnk1yfLF/Kv8QebOfn3iZ3O5l+M9QyeXHeX6jo8fL0mH6X8o237XxTqMvnsfnfOvu8vEvPd87d8Vft+knGvH6MNw416qSpEUaAEoCLCAADSUAAAAABAZlEVBGkW1ptMTP1RCqyIrUS563alc8o5q3csWdOXmyxXbMiRxWcNoc77u2LgtDjYr0QRGkRFSVFRBSUSkVJX2ElGVERoACQbreaxMRPaXEW9iTi1QURQAXSJyAKBQASHNjs1j3Zz9ZXrce/o93jZH0+mvZ8PrMO728F/R3oncPsa76R+c3TjKuvlh4vIr6uG+elerpb6x4fIq8fNX1fF3R+m6W+kedeHG8GXevrTtAZVgZaBVGSiDLQkggKIlAQAVkFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAQBABRoAABUEFgFAFgRQQABQAAAAUAEAFAVAUBRpkAaWFiKolFVFVWVURVGVFgCAgAAAALoBoUAZFBABYJ3RzUyTDv4uRrXd2wy4ebdr5j2cHK9HsYOTMa1P/V79WfZ8DqtHxPYwc30i0vSpki8dpfQwylj8/v03C2+zlrZzefs3Hiyi7iY1MOvl41cm5jtKWcw153Xly8bkcSttxar5TqXRqWi1qPn9Rp5j9J4b1uWvZj6/dr5LkcXJx57w6r5OWPktj9nrzmzCZRBltoaBQVVkZaVWFUSt6Vpitw3DcjFbhuGnOtw1ENxyrcQ3puMVuG4bjnkrULGKq6VldLoZSJmsxNe0w+qw8rF1rjRx+R25NP5Lf6nt6PZJdmrP4dk4/u8nW675de/D49V5/t7vl8+C2DJalo1MS68vFnjccsp7x7teUzwxy9rGZYc66xmWZStRlGY3GU0jcZE9lZNFjT1+mZ/LfyTPZydT48RM3iHo482i/lXzrfs+tn9UeJpNPK+jyaUG4lz1lqOWfZ28cu7js74ezwbY9DHZ2q93qwfM2+lrfk24b4Ybsc8M+K6t8Tq3xfY45Yvbr2OrbHr3OC2Nxyxe3DNxaNMO3KrAlev0vjxlzRa3pV+tdM6Pj/9nOr9U5Max7pgwTP/AMTfmmX2fDpMMbll/FeP+XxOsl378sfbDDLK/wBn5R1fBFM3niPWHkPm78fLt2T830ely8/T67+Qri7rCtIAIiVUECWBqEsSzWozLKNAKNQI01tYy3EtxLbnW4lyRLccso3Fm4ltysckS56y6YuOcdikvr/CE78S+Hv7jxP1Id58OX0ry2fvMP1R5iPZXzhEABmY3DgtRzsdcK4LUcNsf2OGUerDNxTRmaOVjtMjQKre24xViWvM6Y1mw87M2auRIxNnFazGWTrjHDazimzhlk9GMcUyjk6spLDbm495x5YtD6mmWt6Rbcej2dLlxMnzevw82WFfMc6/tM0y6EvJsv38vq+lonGrCfkxLEuT0RkRphmWa3GCWW4xLKNxJZZbjdYexwsfmvV20+uUeTqrxry+j9C4WLy0pD98/hZ0ymfqGPLb/d7vb198vS5fnJH5HosftvF+lx/9Tl/S8ekQ83q+f5N0/l5Zn0o/Mv6fuy8mnZl/Lha/jnxPypz87kTPunT846pk1R+swnl6fGf0x/J+m/edZnl89lfn/Mtu1nl2fI2d6/e9PONc+iLDnXdREVW4AADIAAsAQ3C9kUNiGzYKAIDMojSNeUXllAQFJWJT3K5os5Ys3K45RvzG2nPhmXFLN928XFMOKWL2d8USWWxEEVYqIiiaFEQERTSCgBoFE0nyABDRyoqoInAaQaAoBQWk6lZ3S9q9DBd7fHv6Pf097PldVj3e3gu9THbs+xpvZ+b6ietMneHlcivqm46bvHh8irxs8er4++er9J0l9I8zJDgfOy719nDtEGG2UZaBVEkoiJVElFQFCUEABFQFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUAAAAAABkAUaAAAARVAAVRKAgACgAAAAogAKCgAAAo0yNCDRBRWVVUUVmrCg01oZIXQIAgCABoBqABUqgBpUNKACAAtbzBCzmO1j5FqzD1cPNj63o158WPB1PT+ac8PVw8vfveth5kxHaz369j4PU9P3lj2MHMreIifV34s92GfMfB3avs8nJFnJFleWxL0rkjUvNz8XW9xuGc8eZXfRtuNkfP83puPNSYmHw/O6bfjWmYiZh8nqdPfJ+x8J63/AMvK93kq8HD9ECiqMjcNRKsNKwQsCVuGmmK1DcNxittw1HKuSIahuOdbiGm3OtxDbcc8liGljNbBgAErNqzFqzqYXmyy/KrxLK72flRy8cTk/wAyI/m+t5rW3OZ5S+97s6cLrx8vtL6MMy416IxKI3GZZYrUZlEaZ0DSJplpyYrTS9ZiX1GSI5PFi3viHq0eszx+cfP637uenP8AN8xlp5LzDi082U4r343nHGgitOSisZdnZpLuY59HXH2ePbHoY7O/jn0evB8rdHbrG2vJ9jv7PFbxXDfE61sDFxdtex074XUvicMsXv1bOzq2xuGY042PdjlyjdK+aYgkat4j77oPSsnKz8Ph4oj2ufJSkTPpE3nT9C8cc/j8e3D6DwL74fTsfs5mP9/LP8933NON169fPtjb/fs+FlnLp6vPn72zPHCfTvX4r1TP7TL5d9oeS+Puy82zK/m+p02Pk0a5+Qrk7rCtIgCDKoAksjURmWa1EYlGhEWKKNQ0M1qJbhqMVuJbiW452NRLkiWpXPKOSJdisuuLhnHYpL6/wd/U3h7+48T9SHefDl9K8l+PD9UdBHvr5cEZVABJjbKxxWo4Zo5ZR2xycMw4phxr041iWWXSIuxTZtuVOEmWZsWtSOOZccy55V1xjjmWJcq6xiRhtGZRqETp2o5VorrbWOfkZ2a5nw6eS/mlxSxfWu2M4kZliWXSMDLbDLNbjCSy3Elxyy3BlGnLSN6fSdLxebJV6ennOceDr8vLpz+j9B4dO9Yf1R/CvpsYen5OVMd7Rp18UvGjGfOx+e8A1/a+M67/ACS1+vVfF+OuX8n6NkiLam9nwNfrnhP6o/feJ5/Z9B1WX9FfyB1PNOXNltM95tL4Tq+WPR+r2eml/MvC55t0v52vh+Rbcy6UvjZ/FX77VOMIiww6NCIK3AAAZAAkaAQE4VAF2ogERUkGURpqsbmIe/l6Z5OBXLHrLtp13OZ35R5Op3zVlplvxZPnvQcfm9jAAIq703EryzY5Ys3tuOVgxIRxS4pYd8WUllsRBFSKShRAVBFQRQa4BGQAQStQQAA0ulORkFQEEqgKJB7jtYbamHr8e/p3ezRXg6nHmV7nHu9bFZ9fTez831OPrXYtO4dHPHq67ezz6fTJ4nIr3l4uevq+Tvj9D0l7PKyw6kvmZ96+5r+FBzdGRlpDa8qIUSUZUSRQBAVBkAUBUlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYUAAAAAABkAUaAAAARYUABYUQBAAFAAAAFgEABQUAAAFGmVUSjSxFBFaaZWF0ILAjSiNaRaAggAAgAoKKlVAUVFAQKgABwCxMx6Sdl7u3i5Vq6jb1cPN9Ny9GrY+f1PT8+vD1sPM9O72OPz5r6zt9DVtfn+q6XmWcPZw8mmSPV24s90svrHwduu4ZWVuLNxMS1+Tz2Otm41bxukd3h8rhVvE1vV59uvmV9HpOouNnr6x8R1PpFsczfHD561ZpOpjT4m7XcM6/edD1M6jTjefWRNDi9iyCNQ1DcZo0qENQsZrbUK51uG4dIxW4bajlk5GobjnW4jbbUc6003HOtNqxVRWVmEASUWIxKNxGZZbjCaGpWZhlmtxmUZ4aZEaZNIqvf6Vn80TitLtovGyPL1mPm05fl6un1LB7PJt5kwztx4zyb6bPz6cL+SGnN6FWBlzUnu7lLOmLzbY72Kz0MVnqwr5m6d3fx2dyvd68fV8rb6Vr2bivi21cXPHN1MmF0r4XDLF79Wzs6V8Lp3xvPlH0dWfLgmunrdL4ntMkZLR2g1YebZjPzlb6nb9nozv5cP2fw1hx9H6dyuu8iI80RbFxYn33ntNo+5+d9U51p9vnvbd7zM/8AWX3upy+z6f8AtP8As+Jjhcr0+v53z3+74jJeb2m0svzl9a/RScTGMtIKrSMzIinvRBBVGUqjLNVlmUbjKMtADTbTNWGolYzW4ltuOdaiXJEtxzyctXPWXSOGbnrL7jwRijL4j6JO/wCTqHFn/wDiQ9OuebzT+mvFtvkuF/qx/wAvMR9CvkxBitsiAJRNOOWK3i69ocEw4V6cHHMOJzr0YszInu3GdnmF4TbMyWtSMSxLDcYGG2UGkGarDEsukZlJRuMSzLLcYZlmtsolbjjSWa3EliWW4SzCNR2MUbs+v6Nj+nEvZ0s+/HyfFMuNOf0foPSsM5c+Ov1y/svwZxo4vQeJEe/u5eL5fhT+7wf6Vw83iHUZ/LB9W/Gf4pc+tMePDF43FdTD5nSzzdRpn9T9N/qLZ9l4V1H58R/M3Mvu1pfA9Vybtbu/S77xrfhvB8fvx8lmncus+Nl3r9xh8MCGW2xEZahYKNAEZAAGgAAEkAQWDYioIIK3i7ZKfe/W/myc/hzkc2NeWmXFgmvv3kpa0T/9L6fh0lx6nn+V8XxaW7Ok4va2/wDD8ky18t7xPrEuJ8u96+1jeZjTSDSBVBBuJbiyxixdkyqMS45St4sDLoggge6wAQQREaAggKCAAJpVEQgQo3kx2xXtW8amPVgs8v3TmWSwEBATSJWgFAHJjl6eG/o76r6vLvno9nj39Hs4b+j62i9n57qsfWu9Wdw4MsPXl6x87D0zeNyI9Xjcivq+Zvj7vSX4XkZaujb3vlZ+772nswOTugy0yAJKqgioIqEggAiVQRQFAElAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAAAABkAUaAAAARYUABYUQBAAFAAAWASgAAqgAAAKKKysKINCEKqNK0yqiDUCNqIqLQEDSKAgIAoCw0yKQAEFQEoBAFBEUai81JeCzzR3MXLmr1cHO9O7069j53UdNzLXsYOZPadvd43UNxqz6Onbx6V+c6zpuZeI9emSLxuJcsWe3v6vh548WxyRZMmOmWJ3Hc455cpbhlzHj8riaiYmImJfG9T6R5vpY693z+p0+aV+k8L6y688bz6V8llxWxW8to1LHufIs4r9nMpljjYRChWoVWarTUZqtQrNVuGmK1DkhuOdbiHJENRyrbUNudckNtxzqw0251qIaGaumoXhnklFREZaZlEaYZStxEGmZYZrcQZa5Z0mk4VkRodjjZJxZayuN4yxrOyebDKfOPoeZjryMHnh8vMamYd+on3sb848fQ5fcyx/lqaNPNY9w1oha1Ds0lvFxz9Xcx2d/HZ6MHzt0d/DZ6OKz2YV8nfHdpqVmm3o7x8+3iuG2LbqZMG9sZYvRr2cWOjkw/Y6GTE8ueL6enY6dsW50+t6RxoiePjmYiL2jcz9suvRa+d+P1Ov2fuZPzfb+K+s8Xl/N/B4FPJw+HgjHSPfa3rMzp+R9T5Xtcnkie0O/iGVxkwuXPeX+/rU6Xjf1WW2fDJOPpJxHlD5D7KKFU9wiCAgvuCqIgksylVJYlluMyI03Wu3PXj7amHLnnn5ScE19duKa6LjwmOfmRYRqtxLe24xWockNxyycsS5qt4uGTsUfe+Av6i6R/47i/qQ9envf0V4d/afqx/y8zTMvpWPkRlHKtxkRQQTbFma1i69nBZxyenD2cUuGZcq9OMYmU2w6yMym0aTaIsjIy0wDSIisCVpmWJhluMyxLNdIjEstxiUStsSjLUYlmWXSMyyzW4SkC+zuceszMPuukY9VmZh7+jnq+H4vl+6sfpnhbh25PUeNSsf70P7Q4PHji8Tj4Yj+SkQ8PiuXO3Cf0t/wCkNfN6zb+cjtTOo3Mv5k/iXz6Z+pZKVnerS83h+PPVYfl6vb/q3Z5fDscffLOPxHmZNVvL8+6hfdrPu9VfuSPzng2Pq+cyTuZcL5F7v2WPaCwK2MoiwsFGgBKAgg0oAAACACACCgVnUxMP2jwvTF1LpPVcGpnLHCnNh3Ooi2CYvb/6Il9LwzK47NvH8l5+nu+T4thjnjo5/m4/vez8m6ph9lzc8RHbe4edp8/bjxsznyysfT0XzadV/pgaYdE0ujleSWGao1tpF8xtETbMjUZRGgFEkEEUQBNJeywNAgig0IjNVQBAV3ul4flHUuFi/wBWakfm3qx82zCfOxjZl5dey/KWs9SyTl5/Kvr1yWdI23nZs+tXVONWuf0w7DDQgoylWB2RpAFh3sVtadNd9XHbPR6vHu9rBfs+poy7PhdVj3enjsX9Hvnwvkds3mZ49Xi56+r5+99fpL2eRmj1ebkju+VsfoNF9I4hwekRFZEURVBkRBRJFEABREqgigCIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAMgCjQAAAogoAQVRAEAAUAABQQAVQAAAAUaQURQRVEIbajNWFhUVRkbgRpQBaAgIoioIAACtMqsLEoIc+kQUBKAoAiCKgKLW01mNHPFLOY9DDy5iYexg5sdvpPVr2Pl9V03evd43Pmmu76HByseWI7xt9XRt80kflut6a425SO3Fm4s9PavlWN9rRqXn8nhxMTNI++GM8fNK3o2XXnx7PkeqdKjNFpiurPis/HyYLTW9ZfF6rV5cuX7rwrq5t1zDK+scCvK+sqjNaVqI1CtsVpyQsYybhuG451uG4bjlWnJDUc65IadI5WrDasVpVjNa0qsmgRlBpJZlmtRmWddkbiTDI0jGma3E0mkaZGFIptJrNfcvlWZevCaIhlX0nTc3tcU45eTzsHss0/VL1bPvaML8nztH7vq9uHz9XS0PM+iRCnCVXJWdLGK7dJd3HZ6MHh3R3sVtS9HFd6cHyt8ejis7T149nytk4ppx2pte7ONdTJhdDLh+xxzxe7Ts7On7L6Ubh7uKZpWv16a6b7mdrr1WXnxxdDqHI9njnv3l8heZmZmXk6vPz7I+j4bh5dXPzY2ryyvpJtUCZVU9mJVFRQNqJQURmWfm1GWZZajCI27/HxzedPpePwY8sTZ7um1+fivk9du8no3m4UTWdW/J83ycU0mY1ML1Ovyzlnod9zvFjz/AHtPC+s1DcNRitw3Dcc65Yc1ZdMXDN2aS+88Bf1H0f8A8fxf1IerT3v6a8G/tP1Y/wCXTmvZxTD7GycPi41xsy81dYgxVcdrxDHtXO11xw5hF4lJts5a8ritLhlzydcY4bOKXGvTg45Rh0ZSUrbIKIlEllPdqIaRU0wlaiSwzW4wzKV0jLDDpGZZT5tsIzWoxKMukYllhuBVV9q9Th03aH3/AE7HrHR9PpI/NeMZfd4fsn8POLObq3F+jMx54idP61j0iHyPE7z1P9n1f9IY8dHvy+ex5vV+RHF6fycu9ar2fyD4p5s8rm5bNeF487878sXk/wBYbf8Aa6vz5fm/UsmscvgOZfcz3fU6uvJ4Nh93l415cb5b9VO0FBrYiKEDatACUBAOVCRQAAAA0ggDUJIiP07wNzKUzYK5L5fZzaceWMc6vOPJHltEb+uH0PDL/wBXhJ7vm+L489L5vlljXzvi3g5uF1G9MtPJkpa2LJX6rY51MPlHDq5J1G388uf+Xo6G39k0y95OL9Yko8tesECWBYAAKIKIAiKqHtRBGhCggAAaRRNKIjNaho0gCg9Xok+XqnEv/ptNv/LEy66PxtX6o5b/AMDd+jJ5uW3nyZLT6zaZcemMvW2umM4xgrKiaFRJSkGUagCjnx2ax7sZzmPTwX9Hs4Lvo6cuz43VYvVxXdiZ3D6OF5xfEznGTo5o9Xj56vJvj6HS3s8fNV5uSHytvd+g6e+kdaUed7QlkRiUagCggkoKAoyACiJQEUBRJWCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsGhAAAAAAAZAFGgAASiwCgAvsNCMgAKAAALAAIAKoAAAAKNMigqkZUWCtLGarSsiiVqIbgQaWAFAAZAEAkBFSqqoLHosQGb3L7INBBKU9gVFAZEaQBEBXLjzTSfVZlwmeMzlj1ePzfrl7fG5sxr6T26dvavi9X03f0fR8XqNbR5bvXreJjcTuH1tWfnj8r1Wi68nLEt7dOzw2Ovn41M3eNRZ8p1LpUZPNE0iLPJ1OrzY19Xw3qrq2Y+vrHwvK4t+NeYn0dV8XLHyZcP3evZNmvHOK1CNVWmmWoVphqHJCxitw3Dcc63DcNxyrcQ560dMY5Z3iOTySkxpvhy8xDcCVqGohr2c60KyAMCNxElFYGa2xKaGoxpGa2gnCsDLTtcfF53NycHl9ztMPucvNls43SPNlHB6nd4WacOaJ90vY6hgjNijJV6tX3tWePyfP3/u+q1Z/P0fO612R55Hv55F0DWl0vDNrmrLt47ejpj3efbHex2ehju9OD5e6PQxXehSdvVhXyN2Pq5UmHR5mJrEw698UTCWcu2GfFdDJi1KzmmtNOcvke38SYvD5lrZZ7y8q9dPBt+9la+3033cMcXFMDhHrQiRQ2qCIoog0pRWhhJY+axmUZaYRK1HtdOrE3q+xxU3MVh9joMfNJH53xO/veHo9R6XyunThjkY/J7XHGSneJ3Wz4rq2PU77O3X65jK59Dcsd8mU9ez5qfVYfCfpfZqG4lYxWm4luMVyxLmq6YuGbs0l934Dn/tJ0b/AMfxf1IerV3v6b/h4d/afqx/yxNZ8kOtaH392PpPpHwcK4pYl4MneJvTgyZYiHLPLiOuGPmrozm9WYyPP5nsmHo3GRuLLKzceCbOOSkcUsS5u0ccssV1jMsstxAURKCaRpJhBUYlFjLDFdIzLEpXSMyww6RiURtmU1KNOOUYvu6T2YllmtwboTuZdnudPx7tD9A4dNRSPsfX6XH7j8n4zn68P6B/hVw/PzqX/wBG5f0Y+B1956nZ/Z+m/wBK4eXwvG/zZ18P4559eL02ce43bu/kjqWab5ckz77S9nhM/Evzr85/qrZ5/EdWH8sfE9Wy6jT4TlW3MvV1eXrXt8Hw414vMn1R85+iFAagQNiKqwBUoCAcADQAAAAJUCDgaZEH1XhfNFOVNJn1mJeno7x1Or9Tx9fPN0m38py+4/ipxK26nn5mOl4x8mMfKpMxrcZ6RaZfjrr1+Mx3z5XDGnQZfu9k+W3ITTw2PcmhAlk4UDgQARFAVCBVERJZFVCqJpPdYACF7AAMpWoogyCj0ul2inJtef8AdxXn8nTTeNuu/Kue6c6dk+cebI510BAQERK0ILEAG6zohXew2evgu92m9ny+px7vWw37Q71bdn09d9I+Hux9XBleTnq47nfpr6x5GePV5eWHyts9X6Dp72dSYYeWvfARRmUqxkRoD3BNCmhBEFEFAEGQBoQDQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKAAAAAAAMgCjQAChQgRQAUaEZAAUAAA0ocgILAKAAAAqxKCoNANLGQgRWlStKrKtQMtQoK1Cw+SoAAgX2EJQEAFiVQRRpAT3KsUlfK0zyzMaNI1z6AIJK+xEGWjSASyCgpEzEu5i5U1mGscuK5bNfnj2sHL9O76DidQmmu76WjbxY/Pdb0vml9H0OHk0yx2l24l9THLzTl+Y267hlZW4lM2OmasxJZzLHGW4ZY2PleqdL9pW8THfU6l8FyeHl49p81JfH6vVccuX7Xwjq5nr8lv0dSGnhfco3DUYqw1ppmtOSFjFbbhuOWTcNxDo51y0h38VJl2wnLy7rxK7XsJ16OK+GYdrg8mO2cuCaTDLlY9EvLcNNRiroVEAGdMrGUGkSUrcZlllpGErcQRWUYaez0/HuIlz9RiIq9sn7l8zLLnrJ9Xzo8L6ix6w+l4WWM/H9nM94h6env37PnHi66c65l/LY8XlYvZZZjTqac85xlY9WrLza8MvnDSww3Woahr5MVp2KS3i5Z9ncx2d7FZ3wfP3Y93oYrvSxXevB8jfHbhXV4BiYCVw3p5odDLinu55x7NOfFkeVmw+rzMmPW3h2R9vRn2dO9JhxPPxw+jjeU2I0GwRQUg5BpYiG15EZZVEZaSWCtR7PTp1esvtePP+JT74fZ8O74/WPzvif4kfe+NsVLYOgcmmbz1zdPxbj/AEzT6Ew/Jerf5cPR1vP2fNnFk4/4vDOuTHrZxeZeLz+qSvkbeso/Pe9fpPk2sKxWockNxiuSHNX3Ok7uGTsVfb+BslKeJehxM+vUOL+pD0arx5vpk8m2ebif1T/LvRjmePFte952TtL9P1eHlw1X54R+Z03nLL6uvLL5OT1x1814iHm3yvLtye3Rh6OrOTvKRkebzPd5PRyVu5q3bxrnli35kmW3LhmWJZbjEsMV1iMzCNSmiYRWQUNIIxKNQYlK1GWJYrcYllK6xiWGHSM6mWox2n3ExtXzSO1j4s2n0c+bhzWnm09mPT/cyry5dR9/GPFvGrTDD5+U4tfSx7RxyjFbSHPjjuuPdM+1fT9LxbvR93w67tD7HTzjW/GeL5855fR/Sv8ACnj6nJkmPSj9ufmurvPUbr+b9p/pueXwnR/evwX+InV5z5MuPeopHkh/PvLvu0vseF48aJfneX4bxjb9v4rtr4bq2Xdrd3x3ItuZZ6nLnKv0vheHGrB0h4eX2wWJRqBFREVqGoAMgoAANAAAAAAsDLUsBFep0jL7HnYZ90zpvTfLt135ZSuPUzzaN0+eFftPizFXqnhDw/za2vfLTFm4eabTvU4reekfhZ+BTGpmHu8Rn39d+cv+Xl8Py/En5a7/AM4xB859EZhmqgKgAAggAqAoAJoWIiKCAAhEJ7q0ikQ0ggDJpGjTs8e/k9rP147Q1h6ZM5esrraRK2DIJIIJVRBRFBYRXZx2engu9OqvF1GPpXr4b+j0qWfT1X0j4O/H1q5HmZo9TbDR6WPIzR6vLyx6vl7Y+9097Ojf1ccvHk+nEGVEKsZ0iNAAAIioCpKCwAJRkAUBRJBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAUAAAAAAAZAFGgAFChAigKKKIyAAoACwACAAoKAAAAqxKCoqiVVhUFEWFgStQrTLTUDLSiVYaWAIq6RRJQvsCSFNEIAsZFD2BpKsQ5q41kYzy4csUZtVr2cZlzXXsjL0TsSgCSeyoMqAJKAIACuWma1fe9Tj8yY97rrz4seXqNMzlr3+LzZiY1Z9LxudXJqJl9bp9vs/K9f0veyPUrbbkiXv7vhWJelctfLaHzXUum1tFomvafSXDfrmeL29B1F07cfV8By+Hk415iY7Oo+Dlj5Mso/e6tk268coOSEjVVvTcYqw5FjNbhyQ3i45NQ5Ibc65aR3etxa7mHp0z1eLqb92vfw8aLQZOFvfZ9KaucXwvt7jnXl5uLNfc8+2KYmXi26+K+no2+aMaXTm78qSIAMicKzMIjTMwzJWmSWW2U0jUZ/6JMMtJMIyr6LgV1WHD1Oz2Zemh8rC89X/d4KaeJ9hXe4OecOaN+kumu+XKX83Ldj59WeP5PR6jhjJSMlYeC3vnGTh0mfOqT5UHB6mohqG/eIrcTpYxXZx2d3Hd2xrx7cXexXeliyPXhXyt+Pd6OO+3PD0R8rOcUNDDEw4r0iYOHTDLiyvNzYXlZsOtvLswfW6bZ2eblx6dO9Jh488X2dWfLhlHJ6AAAXaA0EBA4QRU0iKMCx6nA/mq+3486tjfX8P9Lh9Y/P8Ainxf2r7XxFO+i+Gp93sMv6kvzHqtf8Or2+I9s7+eX+XDp+Z1Onmfw4f/ABj4+/aZZfm/ev1E7RuFgZrcNw3GK5Ic1ZdMXHN2KvrPB39UeG/7nxP1YdZ2v0ebjnPD9UfoHG4/H/8AZTmci9YnLTlYa0tv0i1LTMfk+Gyz3fqusztwst+GyT6eWV+cmGGP2Vn8WHN+vNcEsWnUTL5Fvd2x9o8jPldC13g2ZetfW0YcSOvNu5FnHl6+HLFnNW7crlni5os3t1leewZkRmWJZ+bpGRlsRKGoZkVAUZmGasZZK3GGJYrcZliWa64p5ZluuGZ9y44XKlzmMdzFxJn0q9PFwI3ufR9HR03M5r5+/qeOzt+z42CNzaNw87mc/Fak1rp33Z46sLi8+jDZu2Y518tlndpcUvz+V5uT9Jh2xYlGHQh28Nd2hrDvGNnw19l0rH32+y4NN2q+zqnGp+G8Vy5zzf1H/DWkY8NvSN0h+jdY5kcPgZ8vm1MR2flN/ru3fqfvPCM5p8Fwy+WFr+VvF3P+U8me8esvzXk3/mfpOiw8mjH6P5znl9r127L55PgOpZN2s+ZzS8PUX71fufD8eNeP0dYeV9QVYlFiRG9oiDTUAKlBUbYABRBVAAABYaGKJMARDmw39nkpb6phZ6WVM/XHKP6F6Lg+dvAvXqRk3fiZuPy6Y47zMTE0vP3REv595mGcHJzU+q0vqeIfew15cdrJ/wAyPmeH/cyxn82r/wCOdjqD5T60JZZqoCgoAIIIIAKIKAMiNAUBAEDUmlOTSAgKiIsRqJ0dqVEXuqKwppkEABK0mmSAEWuWku9hv6Ouvu8+6elevgu9PFd9PVXw+ox7uxM7h080Omz1jz6vTJ5OaPV5eWPV83a+3017POyQ4Xiy7vq49oiI2CKyksqgKAAgkoKgKgKIlAQAaAEAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAUAAAAAAAZAFGgAASqoAA0VKAgACgAKJQAAWFAAAAAVYlBUaBGhUGhFVUWGlYaagRVgS+zUNKoEABEKIAhBBSRlIUgqxG5WJlXZx4nbjHqHXGPFsz9Umuode65T0MLzXVsy5vZO0ABJQ92RGgBGQUPYQIC1mYF9newcryzHd7nH5np3evTs4sj5fV9PzLX03D5+tRaXu48lckbrL7OnZ5pH5DrNF1528ObZelctJraOzv5eZY8Mvlsr5jqXTovWazH3S+D5XEvxrzEx2fE6vVZeX7HwjqpnhMLXVhp457vt1qG4bjFa01CxiuWG3TFxyahyxDccsnJX1etxJjcPRq+KPH1PwV9dw6xakPU+Sebvp9/Th5tc+j8h1G3ybK6HI4e97h4PI4k132eTqNN9Xu6PqPbl5WTFpw6fNyx4r7mGXMgiNAogioiWesWMsSlbiJLLTOkK1EZllpCsbtEfaz7xfa/R9Pw66pDy+pX3eYevZ6aY+Xo9eqteSPHw+sCj6Hi5I5HGmkz3h4uek0yTDvt9cMMni6f7m7bh+fLhWIcHsrUKqVVVmuSs6dqlnSOGyO5ju9DFkenC9nzd2D0cWR6FLxMPXhXyN2PFrkGq8xpJgJXDem3nZsPr2c853ezRnxXk5sP2PNyY9T6PFnj3fc0bOzpXo4J7PNX0sbyCNIoAINbBldoIHCogoaThXocKfp1fa4ImYo+r0E5sfA8U9Mo/T+v0vbwN4an2dvoZ+TWdw/HeqR/gvZ1k/d5/rz/wDlWb6dX03/ALOn/wCEfGZP55Zfnvev0U+GNRLSJVbhqMVyw5aukccnYo+s8Hf1T4b/ALnxP1Ydp2v0eb+PD9UfRYuXaOm5sHmnyzaltb7bjcf/AM3h3ncv0/W5zLDTZ74y1+X0z72UvtXE6nIvqHyNl4le3VOc48TLfe3Std87O+tfc1Y+kcU2Is5cvRw5Is562blcssXNWzliXaV5so3EjTmjMstRkRpBFGZFRBREozLCVtmWJYrcZ1tyRjXHHlq5cOemKHdpWkR309uvGR5Nudrm+U48P1Onl6pMbivo6bOpmGPEc9fS3ZlzXl5ube/vl0LZJs+Xt3ZZ2+r6+nTMJOI42Xnr1RiWWW43V3+NXdodNfeOG68Y19x0ymse313TqbyUj7YfZnpqfhPEbznn9X9LeCcscfj0cvi7q82wWrFpiu35HL7/AFmWP9Ur9Zh1H2Xgsx+eD+d+r8icubJP2zD47nZIrju/V65xq/s/GdJPPu5+eT4Dn33aXhZJfI3X1r+g9HONeP0cI4PcKJQVBsCWiIC1KCo2wEAqgKAAAAsQ0MUAAH9Bfwi5NeXyc3Tcs/4PN4WfBmj36is2fjfiLB7Ln3n/AFf/AMn1upnm6TCy/wAOFv19Y+X033d2E/r3Y/2nFfPo+S+tERmqnvBQUAAARkCQEkWICoaReQPcBADgUWokoiiCsgoJViGhUmBkAVnRoURKDJFEILDt4rN4d2Nk9K9PDf0eriu+hqr43UYu9Wdw4csPRezwY+mTy81fV5WaHg2vr9PezzsserrS8OXd9jDtEGG0QqojLSaQIAoAkoVQRWQUJQQQAaABJBAAUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgFAAAAAAAGQBRoAAEqwoAA0JQEACRQAWAQAAFUAAAAFFiUFRpYEUVlVEqqqLDcKzWobgQhRK3C6aU0JBABEEQEVYKSqIJEjdazMu/h4+47w64TmvNv2eWO9XBpZo9HHD59z5rr5HSyS5ZPVp9nVn1HJ7YEh7oiHuyI1BAGQaQ9hAgAsHYxZ7UmO643ixnPGZ42Pc43L1ru+i4nOmsx9J9PRt44fnOu6bmX0fRYeRXJEO3Evq43zSV+X2a7hlYmSlctfLaHy3UOn1yxatq9/c4dRhM8Xs8P33Vsnr2fD8rjW42Say60Ph2eW2P3OvObNeOXzjkhuGolabqrFcsNOkca3DlhuOeTUO/x7addfpY8u6c419h07J9Gr9B6JxKc60Un6n6Xo7zhPo/G9Zq83UY4/PJ2+qeHc+CNximYl8Ty+FNZndXTbhNmNsc8cdnSbphnz+T53lcT1mIeLlxafE36+K/Q9Lu80jro8r3rpAZD5KMynyaRllYkwylbRlGkllmtRJbxRvJVJ3i5fDfo+pwR5cb5/nTvLZ69/4eL5nSeu/Oukjxx9VJQ91dzh55w5Y+qXd52KLRGSHfH72qz5PHs+51OGX80eQ04PW1ENaVi00KiuStmozlHapd3aXdsL2eHbj3d/FlelhyPXrr5W/B3qztt2fNrSaVlJhw2pFvWC+7phlxXnZsH2PKy4PseXZi+t023s8vLj1t0L008Wcfa05cuKWXJ6hQA5FFQDlAATQsERXe4n80PuOLO60+59Xw74p/Z8LxWdn7d13FHI/h703NSY1TNufutt+B9Tj/As9/VXnTu/Lbn/AJ5OpnHV9HlO2XT6r/24fD5f55Yfmr3r70+GLDQVpqFYckOWvubjlk7NH1fg7+qPDf8Ac+J+rDt7X6PNfjw+sd6Lz5Jh1rPu7svNMfo/N4Ti1xzOomXjcjJ3nu8G68R7ulx5yeVku61rPnZ31r7euekcUyeZyejhyRLmrLccco5q2c0WdpXmzjliWm442BIMCNIiVT3IAgqArMsMtRmWJZrpGazpv2kQuOXDVnJOfXo4bci07M9vE4i46ua4LZLT73FMvPcrk9OOMjDEsV1jLLNbjCMtuSkPW4dN2h31fFHk6m8YZPu+DTy4qxp9d0nHvNjfYyn7q/R+D6287P8A8n7h0jkRh49e+vovmfEfUJv548z85p1c9Xa+t1W/y9Bjjz/C/KeXkm02mfe+T6pk8tdPv5emt83w3HnZg+E5VtzLybesvjbO9f0DppxhGRyekAUWJRqBFlYIijQ1WvmtEQ1enktpZPu2/mxb97j8kRPkPQ6bwMnPzxSsdnW5WOuLkZaV9Kzp3y03Hp8Nt/iz4jjjumXUZ6p/DhLXWHB3AaBIkFhStAyAICvv/AvUbcDqHGzVn6WHPTJH/SXq/wAUOnU4nWuZfHWfZXy+2xT9ePNHnh9f4/Dvzk/xXxufL12U+W2Wf/li/KpR8evtJKMqSmlU0KABoAAXTKBBKCBWkARWQABYAlECKgqoiVRABmAyNQ0aRTRpeDlgRU0aFNJpII5qTpcamXZ6GG3o9TDf0e3Vez5fUTu9HHZq/o9ns+X2yefmj1eVmj1ePa+l097POyw6doeDN9jVfSMDDqIKyM3u2iSggKAAgkoKiDQASjIAsAUASUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAAAEARRoAAEWFAAGlqUEQFABYBAAAFgFAAAAAUaZFBVWMqog0JVhVSq1Cs1uGhFahYKpQIhE9yYRQJIqICKiUkiGlNd3LSk2XGOeeXklepx+HNpjs9zFw9R6Pbq1vh9V1E545W+HUPPyRrbec4ctGXmefll597d3jy7vr6IwjD1E+iQe6ogjIy0SgCSBACBAFUEVy0yTSXr8blTDvry4ePqdXmxfQ8Tmend9Dg5cWiI2+v0+z0flOt6bjK+j0q5IlxZ6Vy1+2Hqvri+RjzhnK+a6hwK5qTEx9KHxObBbBeaS+P1WvjLzP1/hfUTPXddv5xiG4eePqVpuIViuSG4h0jjXJEOR0jlW3NjnUtxxz9ZX0XTs+piH6P4e5vsOVgtM9tvvdDnz6fk/LeIYeTdjl8spX9X9I4XA6z0nDaYibzjjf2TL8n8YeAs3EvbJxcM2pO5jUe54Oh626+s39NuvEuV4fpvGPDMOr8N0dTpx5zmGNfiPM4NqWtE1fNcrie+Hv6rV3r8r0W/iyX2eJlxTWXXfIynFr9Dhl5pDRKezaaQaZlGaqMstIwNRNIy1GU0ze9bRz8au8i4/FEz9MMvo+lj6OKfufMZ53kl6Op+GPB0Xx7K4EeR9JA9mke3xssZ8M0n1h01X1s+cefqcecMcv5a8rLSaXmEhizi2OsvOONbgGK0jQEToPZzVs7Nb+jpHDZi7uO70cWT0ejXXzN+D08eXbtxL1z1j5GzHitxKtRwppmYCOK1Nujnw7iezOWPMerTnxY8XPg9Xk5ceng2Yvv9Ns5kdK1dOF5LOK+njeQGgAAWFVKAiokE0g07nF/mh9xxP5KPqeHfHP7PieK9o/Zpmb/w5zes6z4n4j1Gu8Vn0ur+Df8A+7l/iOO22bPD7f8A/Xw/zXw2aNXlwvzF71+iwv3cRqAVuFjNckOejpHHN2KvrPBsTPinw3/c+J+rDtO1+jzX48frHbrX6MuvPq+1tnEx+j85j3rrZ7+Wrwc1t7fN319To8XnXt3de0vBk+zhPSOPa7c3VuJcsS3HPKOesuWtnXGvPlHNEuSJdY8+UaiSVZZSUVJRKq+5AVJFZBUYZajMuOWa6RxyxLFdcWJccubrGEnSOkZYlmtxlmWa3GBG3PSO73eBTdqvTon3o8HWXjXk+540aij63pMf4tH1dnwX6PwfVX95P1P0inJjHh9fSHxPV+VN7W7vldPh+9tdut2c6teL47kWfH9Vy7mz6G701vV4Xh+9wfF8i3eXQmXxc+9fu9M+5EGHYAXYsKNQMqohsaHo9Nw+15FYOoU8meYeryf9Lcv6nk8/PV+T+h0ttY8d8torWJmXnxnmykd7ZjMsq+/iMfhzpNptr5Xm7Vj1mIfn17Te1rTPeZ3L6finGv8AZuln/lYS3618vwvnbeq6q/8Am58Y/SMD5T6wICCxVUrQMgAA9voOX2fOpG9ebs/W/HnGjndD6F1GsTPtuD7K3v1fBbUvsdJ97otuP1/xy+N1M8vWXL+nDL/jLh+ESy+O+1OySjDQASiqoIAICqAiSgIVYCUiBVBAAA4AATSqiIoycqDKgoiMqCiIKgy0JII1EkK7mKz0sNnq13s8G/Hu9LFZ2NvbOz5Gc4ydXLG3l5ocNr2dPXm5YdK0PBn3fY030jEssPQiSwqIVqDLKiBAFBAQVkFQFE0gCKAoAgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAACAIo0AAogoAA0VKAgKACggAAKAoAAAACjTIoKqxlVEVRFWFiVqGlYahqIBW1gqoAp7gHzRJIJKAAE+iwo5sWKbS97h8C2Sa/RejTh5q+Z1vUfZ4X1fXcTpMxG5q7t+HGOvo+vhp4xfjt3WfabfSvD5URXb53PfvLx7vR9vofWPJy326zwXu/Q6seMYoy6Ih7qjMlREZaJZAJAAQIqigIDkreaNT0ZynM4ejx+VMTHd7/ABuZ6d3u0bOHx+s6fnl7/H5Xmj1ejXLt9LXnzH5jfq8uVYyVi8b9753qXT4zVmYjVoc9+vzY5R6eh3XTtwr5C2OcdpiYIfJ44freeZK1DkhuOeTcOSG45Vyw1DblW2objnfd3+Nl8tqy+06dyteSdvpdFn5cp9XwvFNXmx5f0P8Aw28V04mWOJycu8V5f0Fkx4eTTVqxasx2fM8b1ZaOrw3Y+kzkvP5x+n/011OPU+GzXnebrvlsfhXjnwL7OM3K4mHdJmbTr3P5+53Bvivas00/QdLvnW9Hhn/F2y+sfkPGOjvh3iOfH4ed5j5nk8b11DxcuKa77PDvw4tezpdvmxkddHle8QWMSjDTKSy0ILEYmGWoyJ822Zh3eFTd2tfxRz3XjVl9HuZp8uGXy1+9p+916j2eboZ6Z1geV9BNJJ7NI58GX2V4kxvGUvyrOePmxyjvcmkXjz1h50N595XHTecOPk3DcMe7VaSYbZRBqLEuWLeiztWco7WO7u48jthXh24PSxZXp4sm/e9mFfH6jB2YlyQ7PBlG00rDE1cV67HTG+sednwb32eJnw+vZ5duL7HSbezystPXs6N41L5+c9X3tOXLA5uwACg0QUgZVJBEVXa40/Tfa8Kf8Kj6PQfHHxvFJ92P3PofIpl8DdaweSJjHhid/a/DOof5WR9bqp5cN/8A7l/+MefblM54Xf8A0JP+Mq+E5H80uu/L3vk/Q6/gxFgbaagjFcsOWrccsnYq+28Df1P0L+48T9WHpw9/pXj2/wAP1n+WpnVXXl9fbefL9H57B53Ms8PNZ8vffV9no592OjeXBLw5Pr4RkYbaiW4lqVmxzVlzVl1xefOOaJckS6x58o5IlWnOiSCMo1F2sAEgwCozLKxiXGzXXFiXHLDrGJccuddYwwy6RJYlG4jEs1vFlYT3a9nZxR3h9L02m7Vezppzli+Z1941ZfR9ngh9R02fLer6Wz4L9H4Xqb9+fV9Nl5Exinu+R5uWbWtLyaMeLkxuy82WEeByLai0vh+pZN2lvqbxhH3/AAnDnOV8tmnvLqPj5d37TX8MBl0ABQBUahZGaoo9/oMRPKh1eqf7Vd9HL/YYfrfNx/8A3HP9EedEb0+46Rw8XSOLPUedEbtXWOk++V8Nwn213Z/h6p5qz4nss046cPxNt8kfK9R5+bqPJyZ8s+s9o+qHn6l49227tuezLvleXt06sdOrXrx7Y4yIOTqAAKAjYICpRVOXPxsk4s+O8TPaYfveOadS8Dcqmsk34fJrkj/RFc/0X1fDbzjvw/L0fI8Rn7zC3315f9vV+A8nHOLPlpPutLrvk30ys+T7GvLzYYX5yMyObZKAoooAHuIAACTCKiKoIAlAACCKoqJQFioyyqMs1YCqAAKnZEUQ7CaRGgSqgQc9LO/is74V5d0eniu7kWe3C+kfI2z1rGT0eblj1c9jporzcsOheHizj7Om+kcKOL1RBL3GURpEStCIICglBJFRJFQFACUZAFgCgCIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAyAKNAALAigAQWFEAQFBQAQAAFhQAAAAFWJQVBYBYaWIKMtLAyNLEWG1ZWG4BYaUVUFGgQBkKkoIALrfZ2cOCbTDWOPPDltzmONfT9O6VfNav0X3vD6VTFFd17xD7HSaZJ5q/EeMdf63GV684fLDz+XquO0vde1fntGXn2Y/V8Pz8sbs+X5GXvL43UZetfvPD9f3cXnzO5R4n3ZOIugBiRRmRU0jKsoAgLBIIqwIUAT3AUbrOpd/Bn1ru7YZccOG7Dz4vb43K9Hv8fkb976OjY/N9Zp4td6L7LREw9fd8ri41851Tp/m3kpHd8xMTWdS+Z1GHlzt+b9P0G77XTJ7xqsOWHPF68m4huG3LJyQ5IbjjWob0051yUnT2+FyJrMd3o0ZcZR4urw8+FfddK6jbBkpal39SeAPFkc/B8j5ObzX3/h2mfqiOz3+Jaf2vw+5T4tfrHi/0/wBVek8S+xyvGG30fqGXFjz47Y8lYtW0d4fzl/EDwhbg5rcmmox3vbUQ+R4D1Hk6i6L22P0f+p+j/aOhu2T72q8vw3l8aaTPZ87ysHvh97qtfFr8X0W34Xi5aan0cEvk5Tiv0GF5xiIzW2ZRitIIrINJLMwzViaTRy0zp6fArO4b1/HHLqL+6yd7mzrDL5ye8y31HxOfRfh1B53tZZllqIIrv8fL5qzSXBlr5bOl9cY4SeXZlPmkOSGFyb0um52c2JhmYG5UIkafV+E+kR17qvE4HnrW2fNTHWbem7zp2vEvSp6F1Tl8G1om/HzXxWmvpM1nW4evCa/se33+OXzNnn/aP6OfL/2eTiy613elhy+jeu9nl6jDu9XHfzRDniXqns+PnOLY5YVpwqTDEwVrFw3ruHl8jAxnOY9nT7PLZHiZ8Pr2eVlp6vm7cX6LptnMjpzGmHmr6M9U2iK2NIqkSrCwqVUmAgyQc+D+Z9pwZ/w4e/oPjfJ8U+CP27wvh9t4N65GO0Re3a0T/ofjPOpquWJfa6n72rd+uf8AxjxbZ5cPDLO11f8A+dfA8v8Ann73Vflsviyfo9XwY/QEdG1gZc0OWrcccnPWX23gX+p+g/3Hifqw9GHv9K8e32+sSZ7ON9XPu+BHj8ue8vFyvl7u9fb6SfdxdSzhl46+pigy0rSo5Ily1l0jllHNWXLEusrz5RyRLkiW441UVlGUagoKAzMIKiSysYlxs10jjlxyw7RiXHLnXWMMMukSWJRuIxLLcZaqk7tXs7mKPpQ+s6XTvD39LPvR8bxK/usvo+rwR6PouHPlmJe/Ptfo/EdTfvT6u7yM8+TTwORfvPdzwnEcsPvbHh8zJ5cdnwfOvuZcOrvpH6zwjB8/llwvk1+uw+GAjQAAKKir6iNOSlPMsZyvEfQdErrl0dDqv+02++X0s/ToMP1vma7z4hl/7b0Oi8DH35nL1XBj79/977IdXq/VcvU8/mntjpuKV+qDLL9n6LHV/Fuvmy+kMMf2jrstv8OmeXH63u8hXzn0WUFRQRYA0A0CAqKBw174fuPgHm8fNweq8XkXmI5PAyYo1G93r9Kr6XhkuW7LCd7PT6x83xG44zTnl2mVl+lj8j67gnDzb/8AF9J4jw9RPLu2z+qvb0eXn6bTf6YyPO9JKA0aaDQAAAIAEsiJoWKgAgKAhBRQRKIhysERUllK1EBRQNCjAy0rJVgIJpEqgRWqz3dvFZ0w7uOyelejit6PRx2ezXfSPk741bvDo5YXNnT3jzssPPyQ8eb62m9nWmEcHtRGaqIixELGoJpFREUAElOFQFRBQARKAigKAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAADIAo0AAsCKAAKogCAoEAoIACgoAAAAAqxKCoKCtLEFgZaWBlWmmVhoRqGoBpVGhBRQQBFCWdALEEZruYOPOS0ah9h0vo2TNO/L2e7ptX2mUfD8U6zHTry9X6T0vo1vo1pimZ986l9lToN8eOL3rp9LPbjr8uEfhPs9nV557L8L57nUritNYfG9W5MY6TXcOmV41WnQ6/N1En5vzzm8jcz3eHe8y+Huy5tf0bo9flwxcbUOMfQUESUBJZkVlJZVmUAAABdSsDUrpeDlBPcF94K01z2ZdvBnmsx3e5xuTrXd6dOfZ8zq9PMr3cGeLa7u9Fn08MvR+c3YeXJq0ResxL5fqfAmszekOfUYebC35PR4fu+z3Se1eHEa23DwYv0OTkhyQ3HKtw5IdI45NxDSuTUOxhvNZju3h3jnnOca+j4PK1Md36D0DrN+ByseWkzuH3Oky8+Nwva935nq5lo34bcf4MpX9U+FfF/G6riphyTWkxj80WmY7y9vr/BwdQ4N8d6xaY71fmd2jPoPEseO0zllf0Xpeo1+J+G29/NhxlH8l+I+nfJuZnp5Zj6UvhORh1uNP2HUSZY45fOP5jh+56ndr/lzrweRg1udPJyU1t8PdjxX6HptnOMcEjg9rMoxVERUlBWRnu1BJgkGXs8Kuoh10/FHHqr+6Oo2+hEPDN3xr0k41REcK9cZSWGoyIq1tNZiXdnWSm3TH1ljlsnFxyddyVZL2c0N6dI4VmYccwNY1iYliY0ldI+8/hzycfF8UdIy5J1SnLwXt91bxL1P4m7r4r63v43P/8AdL14S/YTL542f8V4Nn+54/rl/wCY+Cx3ehiyMYXsxvwetgzej0q2292F5kfE34cZWuaJckS6vFkrMwJGJq4b0i0eiXs64ZcWV5PIwfY8LPhnc9nh3Y933ej29nl5cbqzDw5x9vXlzGNLpnh1UEVYX2StxArIAkykiuXD2s+x6dP+FD3dF8b5fif4cfuHgnJ5/D3XsVdzeuONw/Huf39t/wBX3Oo/D3fXH/4x8/Z+D4Z8phl/86+A5cfTl035XL4sn6TV+Hj9AR0bWBHJDmq3HHL3c9X2vgb+qOgf3Hifqw9GHv8ASvJs9vrEliX1Mn5+ezw+VP0peRkl8vd3r7vTT7sdWzil5Mn0cUVGlFZahyRKxmuWsuaJdY4ZRyRLkiW44ZRqJVplNoEWI36Q7GPj3u3jjcuGM85hFzcecUOtKZTi015eecojLoiSixiXGxXTFxy45YdsXHLEuddYwwy6RGJZrcZlmUrpGXJVIZdnewR9KH2PS66jb6PST7z4fid/d19NgjvD2cU6e7N+J6nuZbvJzWYxidPHzvU8uq6fEcu+5l4uqr9p4Tj9zF4953LjfNr9NOwIoAAKLEosCNxG5iHp8fB6Omuc15+oz8uL3elY/Jy6w6XJ40ZebebzrHSZm0/ZD6tw56TXL2+0fK158dXsyne646vP6hPIiuDF9HBTtFY9/wBsvKfO37Ptdlvy9J9I+po1fY65Pfvl9aDi6gCAqaWAqgiNBVBlAUl9r4Y59sETSLzWYncTE93v8P2fZ9Vrr53imu7Ojzk9rK83xL35MT9kPl3HrfXqNv55O/h3+z0flig8b3IsAsK1E9xJW9lBkIFQBREEEURKGlPYAAIApyCUREVElGhARBRVUQEASU0zWoaRFGSgCkOektS+rOfZ38VvR6GK71YXs+Zujtb26uSHTLs82vu8/LDz8keryZ+76mm9nVmGHB74iMNRJRBkGkErSMoQBRkWAipKAAokoAgA0ACAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqgAAAAAAADIAo0AAsCKAANAyAAoEAoIACwCgAAAACrEoKg0JRpYiqIqjKw00zWoaEahQbVaKINaRSiAgoSgLrbuYOPN59HTHHmyPPv2Y4Y19t0bo1stovanaH674e8NZObkx4sdPV9jVJ0+nLOvwXiG7Prurw6fXeea/oDw/4CxYMPnz1iJl5/i/icTpWK1KaidPiTdnu6nD5Wv0G7wzDofC8s734fzx1Xlx5st9vy7q3Om97933Ooy8mrGPzvgmj7Tbc/wA3yObJN7S4Hxbea/f6sfLjiKOoAiJ7oiTArKMqyhwLEbl2Y4/bepdNeHm547xjPOYceqxxmvkjp9i5XfwscfXuX2GmvsuIz9rzWZxxDhtEQzlJG8crXBJDh7u41ClUVgj1d3Dmmsw1heHPbj5sXt8fk+nd7uHN5oju+loz5j871mri13ayZMdctJh6/imT5ktwzlfI87hzgv5o9Jl0IfMzx8mdj9Np2TbqwybhyQLk5IckOjlWolpXKt+5YajNd3BmmsvpeFy5iKzt7+l2cXF8jr9Pmxr77onX83Cy0mMlvLqYmNv3PgeO55WKa5Zj+WPK9/VdHj1s15fx4seC+KZdBlnpyv3a+A8S+y5dr5Y/mflvMxd5e7LDjRjPk+R1WcvXZ5z+L1eByMcTDw8+PUy+NvxfW6TPtHn3q43g9318fWREZyaEQE0jSAqCKz74e5xO1HbT8Vebqvgjp9Qtu0Q8pjZ8ddum9NWKSjjXoRmWa3GRlRzYcmp17lxvFTKc41yXr3SstVy74xzVc0NYuOS6ZmrbErE1cM1LHbGvovC0zj6rgtHuvX/1fYfxYp7LxZ1mP/8ALvP4vVP9rPy8/wDmPFlzesv1w/xX5lSzt4r/AGvNjXfbi9PBl+17GHLvT3asnxuq1u9W23LWXoj5WUbaVyZmHHMJWsa6+TH5oePyeP3ly2Y8x9Dptnlsjxc+DTy8uPT52zHiv0fT7OZHWmNI8/zle3nkAVuGmaoIADMit4/5n2HTZ/w3s6L44+Z4l+G/bf4d3vODrOKNayca+/8ApD8r6lj8mbk0n3TaH398+5t/PHXf+z5ud56Xw/8AK7J/3fnnNj6cug/K5/HX6TR+Hh9AZdWoaSJXJDkq3HLJz1fa+Bv6o6B/ceJ+rD0Ye/0eTZO31n+Rx3nVZfTyfn8e8eByZ7y8q75e2+r7/T/DHWsy8te6ACig3CxK3EuWJbjllHLEuSJbjhY3Etw3HOuauC9/SHZx8G0xEz2dcddrz7N8xd6nFx0+12IrER2erDCTh8/Pbcry4uTj82G0fZuHz8uG+cZR7OjvOGX1ZHB7EZllqMuOWa3i45ccsO2LjliXOusYYYdIywjpEYlGxy1giW+j0eLH0ofa9PrrHD6fSPz/AIrfuvfwQ9Ok6h68n4/f61xZberzMs+qYt9PHyfU8vee74/k23MvmdTfvV+48Mw4wxedMsvA+7AFBAFBVgpAjtcfH5rPqOHx4ik2n0iHr6bHmvldfs4jk6fffUI1Pbby+tZ5nkXxU7U29uzPjofz89jzdPr562c9pqleHCvkvsgCAqoJFABQWCJWxUSWEWK7XD5NuNli0TpvDLy545RjZhNmvPH5xy9R5c8m/mmXmG3Lz53I6fD7PVjiiONdwQVVgJLV7AMiiogKIgCCCVQUBEosEAUQFckYrSs4phePRjzzlwSyxe7qGkVkVQBAU0AglVDQcsyJWoMoDdZC9ncxWd/Hb0enD2eHdHdrZm7vfheGTjJ0MsPPyQ82fu+jovZ07uKXmr6GKIy0MoqCNILwqMsqSiKCURBRJFQFAEGQBQFAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAAAGRQBoAQUFABRoRkFAAUQAAFUAAAAAAVYlBUGhKqrEGoGVVUWG4VmrDQjUNQCw2sBYQWUUqACKtSViNzondm13uPxpvb02+46P0a2TU2o+h0unzWV+d8X6uadeXq/bfCfhDkdTz4sdcU+ziY806l/TnQfDXE6Rir9GLZfr+pjxDqOeNMvZw/0z4d9pc+s2497zi+iyZKYsdr2tFa1j1l/MPjzxDbm8rLXz9omYh5vD8PP1E+UnL3f6s6jydHhpnfOvwDrvVIibUrL885XInJaXu6zZzlw8PgnS/Z6cK6Hqr579MqgiKqACJUrCSy0yNeyPV6Pwp5vMxYq++0Q/aub/DTm8PpdebfiZfZTETvyWfb8L0aM9WV2WTLK+XH86/PeK9Tvx3+XVjz5MPNn+UflfNw4uNe0fVMvOnPicd1w155R6en8+3Xhm4LcmrhtyIeTLb7Pbjprr2zbcM3mXnyyterHCRlpzaosNIorLTUKzXbwZdTD3eNyPR69OXD5vWauZXuYssWh3K2fSxvMfnduPltcHKwRnxzGnx+bDbBktWYebqce2T6Xhu30y11xw5avPH0sm4ckNxxyWG1c61DcNMVqO3d3sGaay7a8vLk4bsfNjX0PE5evLO31nC6hakxMWfc6TbfR+X63Tlhl5o9e/Ur5a6tLxuTq8S9+dlxfO8+WWyWvAz1ePnpuJfH3x93pcuzyctHUtD5mcfc1X0jAw7CJQGVTSaFRCrGqRu0PcwxqjtpeXqr6SPI5lvNll05hxz+OvVq9NeP0ZllzrtESWWmJRluBsPm7NL+aNSa1LbjxxbHLWXYo1i45uaI2eV1keflmaOK1GrG8a9jw99DqOKZ+t91/GPPg5XizqebBlpkx3timt6zuJ/wqu/F/Z5faY5z/m4uXnn7RlPe567/AMTJ+RRLnpd4Y9ucd3Fk+16uDN6PVqy4r5fUa+XrYcu4dysvdjeY+Jtx4tcsS5dw28uUGZgSOOautkx7ZvZ315cWV4nKwevZ5ccSc2WtIj1l4dmHOT73T7uMLfk4+q2wf4eDFG4xRrzPEeTb8fo+r0vn+xx819e//KKw9CtqzRViCFBJT2IuP+Z9b0yd1evo/TZHz/Efwn7T/DfLj+V8jj235s2Oaw/O+tV8vO5sfVkvD9Dul+z2fnhrs/7vlZWXpOj/AC2bJ/h+bc7/ADLPOl+U2fHk/SaPwsPoDLs1DUJErcOSG45ZOevufW+DL2r4q8N6n16pw/1YdZeJfo4Wc5Y/qjsuDPOqPq5dq/O4fFi+e5E95ebd8rZ3r7+ifdjgsy89ew0EFUBpqe6LDcSsYrkrLliXSOWUcte8vW4/H88bmHfVj5q8XU5eTF6dcdY1ERDkir6GOD5GWVvrXNTBe/pV9T0jwd1nq8Vvx+LvFuIm82rGvxmHrmma8Lt2XjGe66NW3qts1apzlXW8V9D43QuXXh4eoV5V4pMZtUmnkvE/y935jaPLNofO634sMvL5ecZeH0enwmrZv1Y7PPMcuPMyPF7PUjMo1GXHKVvFxy45c67YuOWJYrrGGGHSMywy6RGJRtYc1FndnLs9Thx9KH23CjWOH1OlfnPFK9rC7sTqHpyfldvxODLb1eXyL6paU7Su/T4+s+r4rn5NzPd81mtuZfI3371fuugx4wxdOUeR9YABAAFUGqxuV94zXtcLBMzWNPd5WWONg8kesw+hp+5qyyfD6m/adRhh+byul5Ztz6xt1urf7Tb75XLLnof/APpXowx8vXSf+nHlwrwPoU9yCgAoAsSiqyuj3orQqJLCe4Mo3CZmUFJRmqIgbWFgqS0AgqSIAoADIyAAKAKAeoOSmGbPQw8Kbe51w13J5926YR254tMUbl5uea99OmeMx9HDTnlsy5edPqjy19IEGUGgBFFBERBQBJRmtRBFTQsVz47O9js7YV5d0d/HZyWemesfOs4ydPJDoZYcM3s03s6V4cEvLX0ceyIzXRERREEQaRErSSiKCUSUFEkVAUASRkAWAKAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAMirAFAEAGgAUaEZBQAIUQAAFUAAAAAAVUoKiqJVVYhDUDKqvsjTUKzWoagRYagFhtYCwgsooICoq0iHcwYJyW9G8Mecnn37JhhlX3nReie0mlr17P3fwd4NzdSz0/wAGIpHpHbu+vbOm6a5Xu/C7rn4n4jr6fD1kvq/pvo3ROF0bj1x4MVYtr6VojvL2n53LK55XK97X9J6bp8Ol0a9WHbGR+XeO/FVeBwsmHDfVpmav5P8AEHVsk+e9rfStvb7Ph+v7PRntvevwHje+9d4rr1T4Nfo/Jedy7Zb2nbyJnfeXk25XLKv1HR6phrwCHN7K0EBFDRoE0iIwzKKiKPtfBOGM3V+FTevPkiu/qmX98eMbZOB4BmL4qTljDhx23EdtvfrvGPQz3+25fG22zPxjP2nSyf5f549dy2nlZv8Aml8/5pn3vN1OeWW7P6vd0OEnS6v0xN/ajg9gCkNIlFhplVhYjUQ0rNaq7uDLMOuF4scNuPmxr3ONnnt3eziyxaIfS1Z8yPz3VauLXbidvK6jxIyVm0R3dduPmwrzdNn9luxr5zy+WZiWofPnu/QX1nLcOSG45ZK2rnW4bhuOdGomY97TLv8AHzzWX0PF5PaJ29/S7OLHyet093r4+VPvly3zeaH1Zs5j4OWnjN5+aYl5mWPV49r6Gj04eXmq6F6vnbJ3fa030jgmGXB6xEqgyA0Ig03i/nh7MfRxumqd3k6n4sY8PLO7y4Zee31r3YTiYsssukZllmtJLLLUAVYmYlzxbcNSsZRqsuzSWsXDOO1Tu54q9WEeLO8Umjjmjpwkydvp0xi5VJmdQ5ev5rZslfNebS63LjpM8f6nHy29fqz/AKXzMxoidPm3u+v3jsUvLv4srrhfV5d2HMephzekvVw5vNEPfryfD6nX3dusuaJd3zso3AOSTDitCN411MuGLxrTzuRWvGrMY4+naO8/U4bPm+j0+fNxw9vd81mxPPvTT52yd36XTnzI4lco9BDapRViEoUElPZYU9X1PS57aerpL+8jweIfg1+w/wAOp31rG+P69jmnUeZE+/JM/i/SbPvabflhh/mvi8WdJo/9/Z/iPzPqMayXeU/J7vTZl9X6bpbzpw+gQ5u9dzmYIwZ/JHpNKWifvrEuu1lPLnlPzYwvnwxvzjUOSFjOTnq+q8Hf1X4Z/unD/Vq6e1+jj/Hj9Y7bq8mdVfV2fDX5zV8cfO5p9XQtL5Wfev0OmfdjhkcXpFBQQhtZ2qCnujcS5IluOdjnxT9KH0+Cusdfue3pu+T5fX+kxj0uJx55GWmOPW0xD9I6b4H4m89+odW4+HHS1q1n2sRN5paYnW4fa144a9M2fZ5ZZc+kjw9NpnUbrjlsmGE9bSereHejXzR0/g/KImsRGTkTPnrb368loh8/1Lxb1HnYI4s3j5PW03pSI1qZevOzTNee3KZZ+lmM7Y2ThnPqMZjnp6bHya/WZZe+U5fKZ8982pvbb5PP2y5PvfC67PLblMr62vT0EmPnjhHz30RiRqMsJXSOP62Jc3WOOXHLFdYxLjlh0jMssukSWGW41Vz0j0bxZzezwq7mH2nGjWOr6vS/C/L+KX1eridjfZ3yfm8+7rZLPH52Ty0lnK/cr2dJjznh9XxHNvuZeFll8bdfWv3XR48YR1x530AAGQABoV2ePTzS1hObGNl4wr6zhY4x4vPaHj8/kze9nv23y6sY+L0+P2nU55fKsdHnXMovV/8AabHP/Qf/AJvXx/18v/pvKhp4XsoLEAAVDQCqiqqoqCRiURolhGgFgB7gzVBYCSoKylEUWAABBFTQgICqAsRMiW8OamC1p9Jehh4Np90uuvXzXm3b5hHoUwYcMbtLizc6uONUh6rxrjwYY578+b2eTl5V7zt0rWmXjyyuT6urXMIwjDsDKoyLAFAoCAkqIIoyixAaAg1WXbxW9Gsa5bJ6V38dnZ9z1YPm5z1cF4dDLDnm76XSvDrS8uT6WHZEYdIiCoiVRlFghWojMsqAqEoqAqSgAKJKAIANAAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAKAAAAAAAMirAFAEAGgAUaEZBQAIUQAFgFAAAAAAFFZBRVEqwohDUKyqr7I01Cs1poRpQbhVgKgCggI15ZlYXs7eHDa9oh9x0Po3trVtMTqJe/o9XmzxfnvGer+w0ZP6E8HeCc3U82H6E1x6iZtO4iIf0z0rpXE6Tgrh49NREatM+s6cvEuo8+c1ztD/S/h/k15dXnPv530epOtS+R8VeIsHROBkvGWvtpidRuJl87Xh9pnjhO9r9J4h1M6TpN+231mNsfyV4m8Q5eXkvmy33O50/Ger9Stnved9t9n399+y0464/n/g+rLqeo2dTn3yyfL2t5pYfK59a/cYTiK0NCwBKAaARE9092WJgUZkR+l/w54l+X1ni4qRE3tevl+9/aX8W5ti8H1nXeZjFb/rD34316Ce/myr4m3zeTxvL2+zwj/PTq1vNyckz9bynj22/aZ/V9bpZx0+r9MRHN3F9xQaCjSpRVjLUNKwsOaOzcZydzDlmHs8fP6PXpy7Pl9Vr5le1iybiHPbVq6l9DH1j4OU8uT57n8by2m0PMjs8OzHy519zp8/PqxrcOWEjeSw3ENRyrcQrcYrSKi1t5ZenxuR5XXVlxlHDfh5sa9nFn7RMS7cZd6fT15+j4e3XxWbXdW8s501zh0M0OheHi2Pqab6R1rQ45h569uNQRo0IciCoyLHPgjdnpZreXHP3OuHphXl2+u3GPDn1mWHmvevfGZZRqJLDFbSUlK1GU2jStxIlctZdikumLhnHdxy7lIezW+dtcvlScb0zFw8zj1NZdbPu892M56WO2uy5zL8nRvRwTGnhzj6GF9CtnZpdnFM5zHfxZftenhzPXryfK6jXzK9bDliztxZ7Mb6Pi7cOLXLEttvNYMzG0GJjTz8+GJiZYynMsenTn5co8Hk4NbeRlxa9zwbcfWv0fS7OZHRtWYYeW+j6c9YrRCirEJQoMpVhHrD6bpU7s9HS/ix4uv/Ar9a8A8mnG61g88TPn+jGnn+Nf6i6p/wD77P0eyfcxvz0//b40yl6CT3x6m/8AfF+QdS/zbvHl+W3/AImX1fo+l/Bw+hCuT0PT5E+24XFyz/NTeOfujvDoOu31yl+eONcdXw2fLKxqHJCQrmr6PqfB39VeGf7pw/1YdPa/Ry/jw/VHeefzZ7RD6m2/cr87o/ExfPZpdKz5Ofd+i1do4xydhpQBCG1nZBRFiWolpmxzUtq0PrOPbeKj2dLfvZPmeIT7uDvYstscxNZ1Lu5+qcvNWtb57zEb1G5977mrqcteq4x8S4fe5ledbJa095YmXkz2XO210mMjF7xWJmZfOZrRbJaXh6jLmYx9Ho8bLlXEbeZ7kQWMsMt4uP62JYdo45ccsV1jEuOWHSIwy6RJYZb9nJEOekN4ued7vd4Ne8PssEarWH1um+F+W8Tv3noUcsy718DLu6uSXzvUcnq5bfTCvpdDjztxfHcq+5l5F57vjbe9ft+lnGMcQ4vWAAgAADVa7mHt8HB5rV7O+mc5PL1efl1163MzxhxeSr5XLeb29XbqbzZHk8Pw+7cvnXd6XOuVjcvVp3yJlqf7K/rdb/vsf0PLaeR6kVYUFZVQXR5Tg5NLo4TkUCUCMSiNJLKNAKACIopE5EKpCoiChCgAgJFRTgQRRyVpaVk9mcrJHZx8S13fxcGI9Yd8NfPrXi3dRx6R2orgwxt183PiNxXs65ZTCcR58NWW7LmvMycq9/e602mfe8uWVr6WvVMIxIxXVlBUEaEKsQRREoACKIukVERYiEUQ7KQ7GOxj3Zzno72OzuVt2enB87bPVm7p5IM+y6nRvDq2eXN9LXWUYdURGkRFGUVA9lRmWWkBRE91QFSUABQQQQAaABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAUAAAAABKAgqwBQBABoAFGhGQWAAoIAKAoAAAAAAo0yAKolWFEIahWVahUqtQrNbURpoGoVT5AgKsED5CxDt4cM3n0bwnq47s/Jja+w6N0mc96bp2fvXgnwj85ZqY/JqkTD7GHHT9Nnsvd+H6zLPxDxHT0uN5ly9X9V9L6VxulcamHBjiNRETOtTOnqe9+dzy82Vy+b+kdPpx0acNWPbGSPG651jjdH4GbPlvG4rMUr/qs/lDxd4pz9Tz575bz5PN6bfT8M0y5Zbb2kfjv9Vdbblp6LC/F65Pw3rHVbZrWjfaHxmbLN7T3a6rZ5869PhXTfY6sPo4dDyPtqp7iihIjIIJKAjEwCIsH7b/BriTyfFPSqx21nrZ/T38ceV7Hw1x8MRP+JkmZnetTR7sPXf0U+Uyr42zLjpPF8vns14P8/uoTvPb73QePZ8eT6/T+mnCflAhh1JIAUKLCsq0sStQqsVuHJDcYrdezvYMunXC8WPNux80r2ePmnt3erjyxMPo6svSPg9Tr4tYz0i9ZfOZ8c47yxvnu79Dn3xYq3DhOz3ZNw01HKtwrdrCqsRJareYle1SzmPRw55iNbehjz71G3r159nzd+r1rs+fcOOZd7eY8kxdTLLpXeXY92r2dezimHCvbizo0zw0AKyUiSyjbtceO8OflX+hp1nwV5spzuxeSy81e6Myyy2zLLLSSiNIzKNCxIOSsuzRvHvHHN3McvQxy92p87dHcpG25q9+E9Hgt9XFbG618fu0zng6683TvjdS9Hg24Pfqz7OvMaWLPL2r1d47NL6d7HldsK8e7Dl6WHP6d3rYc3m1D268uz43U6u9dytnLEvQ+ZlGxlhiYcVq/YWN431ebyMES8HPh08u7Hu+10e3tHlZcTqTXTwZx93VlzIisuqioIUGUWEesPo+lT9OId+m/FxeTrvwMn6n4KxZM3W+JWld6nc/dDn8e8LLx+vcu9/TNM5K/dL9LeMsccff7Ln/u+JMMv/D88/L6ftE/w/Guq1iMtngS/L9R+Jl9X6HovXRh9A24R6ncw33gz4p9+rR/0ddu3nHH6cOeM4uf1bhuFjNc1X1Pg3+qvDP904f6sN+1+jl/Hj9Y9DTyOfPefufU3emFfn+m/Fj5/LPq6tpfJz7v0WvtGdjnHVqFajKCCtNeyAiLDTSVuJ1MPoODyI8sVmXp0ZcZPD1mHm1vVi0T6SeaH0Oe3FfF8tcF+Tjpvcujl5/r5XDZuk5kerT01y4tdHJyL5O+3BuXkuXmr6OGEwnEQRsQEYZ9m44/rYlh1jjlxyxXWMS45YdIjDLpGZZhG3LDs447w3g47O1fQcGNzV9di9IfW6f4X5XxK/fd2rVpdq+J/E6mW2omXyPPy7mzz77xjH2fDcOc3y3ItuZedZ8fPvX7PROMYyObuAAgAAe47XHpuYfTcakYsc2l7Onnry+X1+X8PzrxebyJvezzNuOzLnOvZ0+Hk1SO/wBOnXKxux1Xvnd8f9nn+txy/wB5j+h5bbzPSSsLGaLpUWIXSxKoeqAIAqSiLGZRluMygoCiSl7KQpAFQRKEKCAqggCCpA0sVmV4OW64ply148y1MXPLZw7NOK7NceKnq6Y4zH1eTPZcrxFty8eOOzqZOdae0Lls47GvprlecnTvmvf3uGdy89yuVe7HGYT0ERpEFGRSUStAgmkGg0CaVARRNAqCCInDQgqaclZO1S9nbx2d6ku+Dw7Y3LrZIay7Oevu6N4dW8PNm+jrcQ5u6IKyMqglVlBpElKrIjQAkoipKCgKAJIyAKAoAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAKAAAAAAlAQVYAoqCADQAsKKIyCwCAUEAFhQAAAAAABRpkAWAGoUZVYVlYWBK01DTNbURuFBqFVfkCIACxCjs48czp9N0np1s14+i9nTa/Nni+R4n1H2OjOv2fw30WcmTDjpTfeIf1v4X6Fh6LwMdIpHtbRE3l28U2+THDVHyP8AS3T/AG/Vb+qznbs+nn0eJ1vrPH6RxLZ8l43O4pG/fD4uOPmymM937bqt+PT6Nm3K8TGWv5g8XeK+R1TkXvfL2r6R7oh+G9c6tOS96xb6L9H5cen6aYTvY/mnTXPxHxLZvz9Zz6Pg+Rmm9pdN8rLLm1+50YeXGT8lXTDt7tKqglSoCKAzKHsDCCSkd5WFf0z/AAA4Vc3iXBlmJ/wsdrv07+PvMrXicDBE94pa0vfhL+1aPy02vh7bx4d139fV4z/D+HeXO81nVeHP4sn29Xphh9Igy6KgLCiCwsRVhYy21DTFbhttitQ5InTU9nPL3d7DlmPe9bDm9O716s+z5fU6+eXo0v5o06HLxRaHfP72Lw6b5NseRqay28sfVtbj0abjlW1VhVbiJKHI3W8w7dMs++W8cuLHLZhzHepm7OScm4eqZejwXXxXDadureXLPs7a44JccuL1RFGmZgQEkqxlllt3MHZxcm2278FccfxXTZeevXGEStxmWWWmRK0MorIjTcS7FJbxcs47eOz0MU+j2ab6vn7o9DF3duKvq6vWPlbPS1Zo4L4vsdcsOYzhnxXUvidHJjeLbre/Vn2dG9HXns+ZsnFfSwvMaiXZpdMWc8Xcx5Xo4c8xru9WvPs+bv18yvYw54tDu1s9mN5fE24cZVyxLbUeWjjmAjhvWJjUvM5OCPqc88eZXu6fPy5R4WfF9jysmN8/Zi/RdPnzI68wjg9xACoUSWU91T3voel2/wAWjt034mP1eXrZ+4y+j9L8M86en9RwZ/dHafuep455M8rrGe/n80doh+tx1S6Ptff7Oz/vH5z9ov7Ln0/P/n45f9q/Gerf5t3gPyHU/i5fV+o6L8DD6QHmepqtvLO2olqdp9Us92ockNudctX13gqkX8VeHJ+rqnD/AFYdJOY45Xi43847jwufb6dn0+o+CPg9HP3rwsk95daZfJyfosJ6IMxutwqsgA0sQD3RpVSjsY8s101jeK554+aO7HOvEaZnl5Z33d/tb2eWdNhK4LXtb1k9WO7rxxFBABDSUZliUrcY+tiWHWOOXHLFdYxLEsOkZlhl0jMpEI37OWrt4onbph7OGztX0fT694fU4/SH1tHwPyniF52O3WUvLq+RPiedy7+XHL47mX7y8nU30ff8MxfPZp7y6Uvk5v1ur4Ygw6gAJQAFrE2lZ3LeJa9rh4tzHZ3OXnjHTyw9uH3dVfI2fvOoxj5y9vPMsPHbzX1ZOI7vCnXJx/e7fU++eZevD/a5/qjyZ/7vD9DzGoeZ6FWFjNUVGxWRRBdKJKJe6wZlFjCSjcZEUBRBVAAQNJQQBYABABWomCFcsTRuJpEerccrMl9rSCeT9UHmZ+y83dieTdx2y3t62Zudsbx1Yxx7kY7ugigiLBJFRBUBpBAQ4WIEUEBAAVAETSVYyaRQgHZpLu47OuHs8u2Oxtw5HS9nnx7uneHUvDz5PfqrglHJ6IIKjKKCNMoixEStRlEagAiIsEFQFABEoCKAoAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAKAAAAAAAMirAFFQQAaAUEqggKACggAsKAAAAAAAKNMgCqIqiKqsrDUKlahqFYaaBqFgGo7KqgiAsFiHPSm5ak7MZZcR7PB4dst66h+qdC6Z5YxR5d2s+z0OviXP5R+K/1B1PPGvG+tr+k/APh2kZcee+tU7x2ftj43W7Lt6jP8q/U/6d6adP4fhffL1rw+t9d4nRcMXzWjz2i00r9en8w+I/FXK518s5M8zu02n6o29PhvT+fLz3s+N/qrxCy4dJrvr/F/d+M9a6x5ptWt+z8+5XJnJeZ29PV7ebZ8mfBek+y142x5/rMmnzn6adlUAVTYlQVEBRlAGZBmVp/PUk9Yl7X6P7J//Drw6RbqWa9O9cdZpLg//EFyY+XYMUfDw+hhz+12e2PTvi7JjfDMPnn1nP8AxX8e5p3ks4Hgy719vD0xx+gMtACqJRWoirC+6NNQsYrcNw1PZitQ1DTnXLWdO/hyO2FebdjzK9TFldi30oe3G+j5GePlzeVnpqduFwvex7sLzhi1DcLCtNLGBVRJQBuJWdyuxTI7EX7ertjXlzxXzOG0rl2TGerilxS416IKKmwEZlKsRlG47mPtV1M07lcr92OeE+/XXSXF6ozLLLUZlmUbQRUZRpkZVYc9JbjOXZ2scu/is9ervHg3R6WGz0sb7HT3s+Nv9K54olse3u8no8kz9XWvidDLi7PJuw9K9unZ6x5uTH6ujer4+7B9bTk4Wqy8j031jnpd3KZXbCvLtwenhzej18OeJ9Xu15dnxep1O7WzmiXd8zKd29po7ubjmHBkpFolK7YXix4/Jwerxc2H1eLdi+50mzmR5t6ODTx5T1fZwy5gjLUXaKrMsyjQ9np1tZKumj8SPP1c505PuOJea3rMO71PkW5OW2S3rMv2GrP/AKHPF+Nyn76Pz7q8/wCJZ85t+P6r8XL6v2fQ/gYfQHmexWoalZrcOSG451yw+w8Dz/2q8Pf3Ph/qw6Y3/Djn7fWO1M/Rl81zr7vZ9DqbxjHxehnOx415cO3y6/QYz0FRpqGlZAQaWIe4PdFVSqQMtw3EtxitNLGFiV2rIKgm0XhGUajDjlmukYn3uKWK7Rhhh0jMsMOkZlYRpy1dvDHd2w7x59vavp+BXvV9JR9bT8D8n1152V2IYtLT5s7vF6hk1GtvkOVfcy8PU1+l8Mw+7i8TLPeXWfMyfp9fwwGWwAEgAI7XHpuYaw+JjbeMK9/HEYse3icvNN7z3enbeMJHg6XHzbcsq6SvK+k7HHnWbH97vdRnd6y9WH+3z+seXOf9Rr+lec1Dg61WlYWF0sRVVKq6aZNGjg5ZlGfdoliUWMpKNxkRqAHukkCqASh7hCiIIoolAQVKEoKoJ6gCoh6IqQBRAEQVAaiIKIKAIDSDIGgRAgCoM1U0FVBByUl28dnTH2cdsdqslnbvHk93UvDqXhwyevVezryy5V6kEaRBYyI0iM1WST2ajMoyqAoyiwSRUBQASUAQAWAKiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAKAAAAAAAMirAFFQQAaAWFEAQFAAhRABYUAAAAAAVYlBUAGgRoEVpWasLCpWoahWG9LANQsArSwBAVYOWtXocbB55iNO2uc5SPL1Gfkwzr9B6J03Uxa8P1noPDj2tLzWH3MZ9l0/1j+ddXt/aPEMflK/d+h9RpwKUpuPpTEP0bPycXGwXz5rxTHSvmm0/U/Nbccruv51/R/DN+E6XL5a5zX8seNvFc9X5/IvS8xiiPJjj6qw/Eur9Wjd6Ut2j836DHH9n6fHGd+H4DnPxLxTduvrPNeH59zOVOS0zt5czMvlbMvNbfm/b9Lr8mGMNGnN7FghAkVQSoCIADIDKxKkt4Y/xKtTvGc/THL6P7r//AA/cXHHQufn7+eMsUfmH8e+dizdfz0paJilYh78Lf2rq77TRJ/h8nOSeHdBPfLqbZ/zX8u3/AJ7MPnXvX2p2x+goJoQVdBVabjAKLDZGXNTFe1bWiu4j1lG/k5+aXmLDcKzY3DlpaYl0x9HLKPQxZHoUybh6sK+ZvwYyxuHQmNSZ+9XVfThYckMulVYajCtaVKksgKQbhzVs1jWM5zG9szLfLnIxLiliumIpFBPcZlkrUSUj1Z92nZidVdO87mVz7RnXPWuNiXF6IjMo3EllGogKyzLLSIjUIctZWJk7NJdzHZ6dV7PHtj0sNu8PXwz6PsdNez4vUx6FI25fJt9jDHmPlZXiuK+Pbo5cTnt1+ld9OfrHm5sLzMmPXufF6nVw+x0+fLo3rpxPl5TivpY3mLE6c9LpEzx7u7jyvRw5/Tu9WvLs+dv188vYwciJ7O/W23twvMfC36/La5Ylvbby1JjttxzAsdXNji0T2eJyMPeezhtxfT6TPix4+XH6uheungzj7+nLmOKUcHpEkVlEaiPR4d9Xq3qvGeLnvnOvJ9txr7pWXYyW3EP02vP9zZ+T8hnj+9fFdUtvJd4E+svzXU/iZfV+t6L004fSA4PWrULGa3DcNRiuSH2Hgb+qvD39z4f6sOmPv9HHL2+s/wAu1knVLz9kvkuXbdpe/qu0fI8Pn3snmWlxPmPvTs1CpBYahUaFZVVFEZRqFFFRYlqJaYrTcSrFUaZUAQBlKsYlxyzXXFiWJYrrHGww6RmWGHSIQiuarvYI7w76+8efd8NfUcCO9X0FIfW1fBH5Lrb+8rlceSdRMtcd3ix7vmOfk3t8vyLd5fM6jvX6vw7DjHF5V5cL59ffx7AjQACQEmQWkbl6/Fx+kuuqerz9TlxjXJy88Vr5Yl4drTMruvN4TpcOMOVIcnpc2Kf8Srvc6d2pP2PRhf3Of1jzZ/ja/pXRahyda1DSuawrSCiVpWmFAYlllpJYRuIzMstxAaACUAEoAAAAKIAiqgMkFglAhV9gRAVYIiCgMg0iCwQgIKgKIlWIIoAGjgTSCoIAKgikOzSfRY559narLkdp2eOz1cF4dS8OeT0anWsw417IiIsJQVmYRK0IisojSMstICiSnuqBVRBYAACDIAsAUQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFAAAAAASgIKsAUAQAaAWFEoCAoAEKIACgKAAAAAsKgKgA0CNAitKzVhYWM1qG4VlpoFhoBpYCINabrG2p7JXbxY9zEPq+kcLz3ruHu6XDzZyvh+K7/s9OU/J+k8HBGOtKvuun5q4KRL626c4SPwGrZz1Oeb16dfji5+NebRMUvFtfc7/AI5/iHXqnBwcThWnHWYn28vFj0nO7VsvbH1fbw8Y+z6Pq+nx+LbxI/nfq/VonzVrft3fAczlzktPdOr2819DwbpPJhjbPV5UztNPmP1eE4gaSqqICKoFKCIAIkqIiozMufjR/jUXHvGNnwZ/Sv7M/gv4h4/Sujc+M94iNTfW/wDRD8G/iP1aOp9W5maL7i+W1vxfWy13DHfsvbPDCT+0fnNW+bsug6ef+Vs2ZV+RW9ZR8h+nnYABkGgWFhuXsz81FRpVR79a+w6Le8/zZckVj7oeK7bPTyT+h4+n9ftr89mX/ZqGoYjrW4bhuMVz47ad7Hd3weTdi7W9w6l4dcvWPPr9Ky3DEdKorDTTUZrMgoQg0sS17pXJEm2mOGZliUrUERSJJkGRGmCPVGnLM6h1Zkz9jXGWJcnaIDTMsMtQRGoksyysSWEbiw3BErnpLuUt6PRrvq8u2PQxW9HrYL+j7HTXs+R1OL18Uu9WNvv6PXGPg7vS1Zx7dW+J02Yeia8+K8/NheTnw6mY0+R1Wp9bptnZ5mTHp0r11L4W7Dh9rVlzw4liXm93o9nNXJp26Zde91wy7PNtw5ejhzx27vYwcj07vbqyfH6nU9Kl4lyxL1SvkZY8WxvfZiRiMTDz+Ri+xjOcx6dOXGUeNnxerycuPXueHZO77/TbOzo3rph5K+nLzBmUqxmURtJdrjzqYaw+KMbPgr7HgZPNjirv2nVZff1Zc6Z9H5Xfjxus/N8b1GYm9niT6y+F1H4lfp+j9NWP0QcHpGlhW24ac63Evr/A39VeHf7nw/1YbjlnO31jsZ51htL5DkW7y9vV3s+X4bPi+rz7Szt8219ydlbVFhV9ma1tVZWFUURlFhYNCoKsStwrTFbFYFAQBmUVmXGldMWZccsV1jjYYdIzLDDpEagi1y1ehg9Yd9fePLu+Gvp+D7nvVfV1fBH5PrPxK5HU5F/LSW8u1eXVOc8XyfMv6vns9tzL5G++tfr+hx4xxedZxvFX2oCKCCbUVJlAdrBTcvV80Y6PRr7PDv8AvZyPGz5fPZwOGV5tr24Y8Y4xYaSFbp2tV3+VO4pLvh+Hn9XDZ+JrdNqGG61DbTmorKxDempGaoRmqijMsMNxJYRuIwy3AGgBAASgAAABCiAI0iAAqSewioKADQIlTlUQZBtJJBAiomxYgKIioICgosRNMylUDhU0aRUAHJWSGXZ2aWc8S64vJnPVizq3j1Zyb1uraHG417ceyIy0gKjKVYiI0SyixEStRgRoSU91QKqSgsAABJGQBYAogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAlAQVYAoAgA0AsKJQECFAAhRAAAVVAAEAAWFQFQUFWBlQFaVmrCwsZrcNQrLUNA0oDSwEj1ErliHNSrc9nPO8R7PB403tV+g9K4sUiLafW6PDtX47xvfzjlH1OLUO98rmtYiJfTs5sfjJlccq87kcufpTMvj+p9W/miLTpw3Z+TGx9Pw7pbu2y32fCcvlTaZ7vImZtL4e3LnJ/Q+j0+THFBxe8EQAQUEKtBEEARYJLCojnwTq8Lj3jOfw5fR+odG63PD4N6xMxMzqfLOtxMPiOscuc2S0zaZfV6nd5un14z5PzfQdLcOv3Z3tb6PnB8l+nAFE+YqoUWGozVWIaZWG4jvCxK9zqlvZ8bp/G/0089vvs8V123nPj8pHl6acaZfncr/wA1pqEjrW4bWOdclXYx2dca4Zzu7lbF3aeseTjjJxQ1CRutCsNQsLEXSTCpEIRVVpKSRILMsFDYKgBtmZRpkj1Z5Vb27OFMu8bxjMoxW2UStMyyjYzKVYjLDSSyNQaiSFctZdqlnbDu4bI72K3o9XBd9Tpr2fK6jF7PHvt62Gd6fo+lvMj891E4ruxTemMmGPdD6FnMeeTh5+XD69nlZsL5/U6uZXt6fZxY8fPi9Xk5aPznVa+LX3+mz5kdS0MPl3u+jOxEuWtyXsmUd3HkejizTGu71YZcPnbtfMr1sHI9I29THk8z3YXmPhdRq4trlidq6PHUlwZI3DNbw7x5ebH6vKzY3k2R9nps+zy8tHTmNS8Wcfa1XmMyyw7MiNMy5sVtTBO8Mp6V9Hwc/levmzRGOX19Of7q/R+c6nX+/l/N8lzLbmzyp9ZfK3fFX3+mnGvH6IOLuNLBuFhtitxL63wPeK+K/De/f1Th/qw1L/hiznifnG+VfXHl8nnt9KXq6u+s+kfN8On3b9XTmR4Pd9hViWkaWFjLTQzRppBSsiQQbFQVqMquwaXasVdmxOFAGEX2SXGVuMSxLFdY42GHSMywy6QaiEhXNV3+P6w76+8eXd8NfUcL3Pcq+rq+F+T6v8StTLyebl7SbLxKx02POyPleVfcy8PNL5G6+r9h0k9I6U+qPK+nEGb7qICIqjdI3MJO5bxK9PDXyxuXDyc3bTvbxg8eM8+3l544PaNQRK3WdTDu553Wjth8Gbjn8eDqw3DM9itNw3GKoMNw00zRpURAZlhluMywxXSJLKNANCAAAAIIoACwCDSogyIoKkoI0CKAKAiCBGZBtEWggpKSioCgkERFXSgCoIVUBSYRLAmGUUWAdikueJbjz5xZde65Jg61ocMuN7vZiiMVtEGhkERPZuIjNVlC9mklllYShVQPZoZQAUAElAEAGhAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYUAAAAAEoCCrAFAEosAoCwolBYgAACiAAAAACqAAQKKKyNCUWBFFqVWhKrSxmtw0rLUNAqrQWCCh7pXNWHdwY/NaOzthObHl6jLy4Wvr+m8fc1fccesY6ViH3Olx+7y/AeLbPPnw7kX1Dqcjl1xV3NnqyykxfG1abszkkfKdQ6nNonVnyHL5c3me75PU7eX7TwzpPJjj6PIvabMvm281+o1zy4xdGmWjRoEAZBRFElkZEUAEQEbpOphZ3S9q9SnJ1T1dDPk89pl2zz5xjy6dXlztdUlweuEKBoiA5UQFhcfZG4VqsDs8XFObPipHrNoaxnNkZ2Xy4ZX5R2OpZYzczNMTusT5Y+6vZ0ttZ3nO/Vz1Y+XVrx+WMWG4FrcNw1HOuSrkq6xxydilnLM7h1nZ58p6swqDSqw1Cqyo1yiICqoIyQRFEbikym0qoyzyqIjTMywlbiMsNREStMolaRkaGWasNMoqgrUS56S6YuecdzHZ6eC76HT31j5vUY+lexgv6Pb49t6fpOky7Pz3VYvawxuIdmcW32cZ6PHw6uTj728fk4XHfh6V0wvFxeHyMMvFz4pjc6fm+s1+tfb6XPs8zJTTrS+DsnFfa13mMLEubo5637+rt48mnXGvNswehhza971cHJ1ru9mvLs+R1Ornl6mPLE6djb1z1j4+ePlptie8DMdLLV5majz7H0envZ5eWnq83JV4s4+3oy7OvZhw+b2xElltlunYncvZ6nHya09K2bddbe7Xl918rfhznHi8mdzLz5ePb3r6Wj4Yg5Oqq1BYaVmq+o8Gf1Z4X/uvD/Vqvtfok+LH6xrmX/93j73y+We8vT1V9Z9Hg6Cfdv1dWV28T6jStRmtisNLDTLTSxBSsgQVVQBAVGolppKoIAcAEZmWErcccsyxXSONhh0jMsMukHJBCuSr0eNHd31948m/wCGvpuH209uvo+pq+F+V6v8Spktqr57mZN7Y330b6LDnN83yberx8s+r5O3u/XdLPSOsPPXuiDN91EFiIoO3iquE9WNnauze/lrLzL280tbKzox92O6uT0UahWa07WSd0q6Y9s3LPvg4oagnslbbhuOdaa0rDUDU7MVYaEowLGZYYbjEss10jAjQDQicgEAUREWKogAoIsKqCMgAQIAAoAoCIICINQSSqgqpKSiiCgkEVFoCAoCgAIncNJplWAactZdistRxzjbjvDVYx7utaHBLlk9WDKMV0REaRBURlpEKrMons0jMstICogoiKgKAAgggA0ICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCgAAAAAlAQVYAoAlUBQBRKoRAUAABQRFAAAFAAFgX5CisjQlFEUVFaEqtLGa3DSsrDkEgq1RSCtQrFdikb09zh4d6enTjzY+Z12zjGx9lwMcV09+Mta1fc0+mHD8J1suza6XJ50UrOpfL83n2tP8AM479nE4ezw/pPWWx83yeVNpmNvMtbb4+zK21+y6TV5Ziwrl7Pf8ANRERF9kBFZFEQQlkEFEQBAAGvPLMzs554SRElFhCgovsAlFWFx9krStVgen06YxznzzH+XSZj759HTX3l+Tlv9dWU+fE/wCXQ3M95RPzbaahYzXJDbccq5IckNxyrdZc0S6RxyWJVpitOStJmJn3Qsnqxl6RIaGRWolGTgUVREEEqobJREK0iIsRmWeGozLMs1uIyjURlGkErSMipKMqCKaNBykOWstRMnZxy9DDfT26b6x4d09K9XDk9Ht8bI/Q9Hl6x8HqsH0XFvuIevSOz9FpvMfNsbti3DzORx+09m9mHMo8HkcbW50+f5WLUy+F1ur0r3dJn96PEzU9Xm3r3fluox4yfo9GXMcSPI9SxLmrdZWcpy7WPK7+LN9r0a8vWPBu188vVw8h6ePPuIe7DN8TqNTsxeJSbOzx+V1sjo5Ycc3r0+zzctXnZaPFnH2NGXZ0bw4Hmy9308OyMyy3EWs9z3X2rt4radr2nZ3wvo8mzDmullne3Ulwz716dXpiDDY0sBqJaStPpvBn9W+F/wC68P8AWqe1+iT4sfrHFzb6xVfN5Z7y79TfvPH0M+5/dwq8z6DakZWGm2aqqy1EtDKqtSgiLCtIAAqDUSIeZdqG12IJMgyxKVuMy45litxmWGa6xlhhqLDcLCuWr0uNHd6Nfd5d/wANfR8Sdae1Wez6Wvs/LdX8ddXkZO0vnOVkcd99Hq6HD1jwM9vV5l5fL2d36rp5xI4Uca9UBhURppBKOSldu3Gqw6YuOz1dbLffZ1nPK+rrrnGK7EbVVjNbc0z9CG8b3YynwpEtQsYrkhtpyrTUNsVYVWWgQYCMSyw6RxyzLNdIyI0hJGhGQUgDQglWCiAAolGlQZQaD2BE9gEFAEWoogIERIPZoSRRBUlASRK0BAAAF0ulOTRoQ0AmgEBWdJpmtRYc1ZIxk5YlLNuU7uvZwTDnXpwYRh1REqoiNIylWIiVpGUaiIjTIiiSKgiogsAABJGQBoQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAAASgIKsAUAKsKIACwoojIKAAAALAIAAAAAKQDQ0nsNDNGhBViDSxK01BGa3CqxVcikURRqFgrVY7tfJi3iWvS4+Leuz6Xh44jT3aJ2fnuv2ele9jyRjrDhzc3Uer3+fy4vz+On7TN4nI5kzvu8PPyJmZ7vDu2P0HR6OOPR5177liO7w28197Xjxi2Fa+aoIbZkRICrElkSoKMkgiAIAAIiwCAkhCAg0KgJRVIjUK2wO/afZcOtPfktufuh0w9Jk57PW65/V/h0lZaqtw1Ga23EtOdjkhyQ6RxybhyRLc/Jzv5tw3WJn0iZbkt7d3K+nd3qcXyxF8s+WHFmy1v9GkapDpZMZxe7hjftM+Z8McLUSy2oqAQQUQT3BEUSRSWUETactxlGa0yyjcZRlpJllFgSisyg0gioAAIsSRXPSzuYrPTqvrHm2z0r0sGR7PHy+j7nSZ+uL4vVYelfRcTNvT6TjX2/T9NnzI+PY9GsRMOHJh83ue6zmVl4/L4067Pl+Xg1Mxp8zq9fpXTXlcco+d5GH17PHzUfkes18Wv0XS58yOjaNSy+Te76c7QUHJW7s0ya97pjXHZjy7+LN6PTxZ9+969eXZ8vfqd/HmdiMj0y+j5WeHqxazrXZya1+ljo5IdDLV5c309N7PPyVdS0PNm+pqvowww7wIT3Vy1tpy+dvGuWUcN524mMnTHsgw0KCjcStbfT+DP6t8L/AN24f61S9r9CfFPrHU50/wCHR89ee7p1HxPN0U/dsjg9rUNKwrUS2liqMq2rNVVQUZIaVBfLbW9LEqCAAALs2obQBiUajEsSxXSMTLLN7NyMzLKNrDkIlclPWHqcZ6NTydR8NfQcb3PWi2qvo4dn5nqJzm83k3fPcm/q82+vo9Dj2eJmtuZdC093zc+79JpnowjlXeJs2nDXCCqhHqDs0jRe2oa9nHvk6kzuZZcq9EFFahWozWocnuajFWG4ajnXJDbccq3ENN8OdaiFVkBEliUrUYliZc66RhJR0ZEU0SNIjNAIBtoCEX2UEAABVGVRIKKCSlEWEFABagIDIsEPZRJFEFQBmVRpAgAAQbFZADQAgICoaZVIhuoVywstOV7uGzgtDNdsHGjnXaIkpVZRGiWZGokso1ERlYyJW2ZhEWCCoIqIACgCSMgDQgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqgAAAAAlAQVYAoAVYUQAFhRRGQUAAAADYcKCAAAAKQDQ0nsKIqjKqsRVVK1DUKw3DUQMq1CjQiirBqHZxU3LeM54efdl5ca9vjY/R7WO0Vh9HV6SPznVXzZGTk6ie7ys/J3712Zs9Np9ezy8uaZ97pzaZeLPLm193p9fEjCw5e72NKVPmMyQqJKom02BtkEmU2BtARAAABNiKIAgLAqNAAgNLEqwrTLdK+a0R9cubPbzX1E/RrGoa/hYvrnPylcDQVW4WM1uG4bc65Ktw3HKuR3sHCz5orNazqXXDC55cYvPu246sPNk9PD0mY1fLeK19+3Llz8PiRFMMRkvHveqYzXjze75l259XnMcPTCd68nLnyZ7bvLjcbfN37vdjjMZMYLAKqsgQJQVBORNiKJsEQaZ2kyw3GWZRqJtmUtaiJKNMiVREWJKKoIokggyJINNVl2cdnbC+scs56V38V3q4Mj63S5+uL5XU4ele9xM2pju+p4mben6jpM/SPh5zi5Pfw23WHa8nvfX59I4ujnxebfZ85zOLuZ7OG/DzY1OfWPluXg1vs+d5GPW+z8p1+ri19notnMjycldTLgfnM5xa+7h6yBtlsbi0rGbHZpfTu48vo7YXs8e3Dl6WLN9ruVyvXjfR8nbr9a5POxedt1yk4sda7pZI9XDN7NTpZIdHJDzZvp6a4JYcnqBKsWJXYMzLKVQZABYVoH1Hgz+rfC/914f60F7X6UnxT6vO59u1fueJLpv+KuHST93ig4vUsNQM1pYbjNaFZVqBK0NMq0qUhoZrlwY/a5K1+uXv83iRXizNaxusbmXp06/Nr25e8jw9Tt8m/Rj86+bHme4ARQAABmWZRqMSwy3GGZZrpGBG4sNwRmuWnrD1eP7no1d3k6j4Xu8efR37X+i92PZ+d3TnN5XIyPB5Ft7eXdX1Ojx7PIyy6c+rwZPv6+yI512ZBoFgN1gSuXeode9tyWs4T1caObsCixLRGa3DbcYrUOSG451yxDcNxxrcNtudaGmORmUWMyxMsVuMMyxXTFhmUbiDKhKtIM0AgkotUWAUEAAT3FBlYQFUEQoCCqsAKgm0EBRBYJIogsRAA+aooUNAsKAozRQAE0gAKygsCEVyxLSud7sWhwWhmumDjZYdoiI0ykstIgrMojUTTLN7tRJRK17IyiwBURFEFQFAEGQBoASUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSAUAAAAABkVYAoAlWFAAFhRRPdkFAAAAAAUAEAABSAaIVAVGlgZVViNDTLUNwM1qGoEVuFSKIoLBzY429HDTvDvrjwdTl3evimKw3bNp65eI+NcPNk6WXP9rzsmXbjnk9/T6uzq2ttIea19TDHiKsHuqhUEmQTaTKoySgyiiSgACAJs2nsoiAASgAsFhVQhQQZUaajNVYaZrmxz5Ym3v12YhWfmNLEahzTitSMc2jUXjcNSMZXjifNa1csQ6SOWVckQ1puRy5V9Di6z8m41MOKkeaK+rtqz+ytv5PH1Wj9oxwxt9Jea83PzeRyZmcmSdT7t9nXLlc7zy3hrw1YzHCLtdoqtKwovPonABwJtF4NpsVABAQlGmE2jbMym2GmUlK0wDQSlEEaSUUAWCSggyEsyKbctZbxvqmXZ28dno4cno+h0+XFjwb8fSva42XUw+m4efvHd+l6PZ2fB348ZPqeJlidd3s1ncPv43nCPLYl6beZyONExaWvijFfIc7jzE27PleVh7z2fn/EdXpXs6TPjOR4OamtujMPyW7HjKv0uq84xg087ugDcWdil9N41zzjuYsv2u/jyvRhk+du1u1GRfO7c+jxXFxzLr3c8nXB08kOneHDJ9DVezq2hxONe3EEURFESgIABtpVH13gb+rPDf8AdOH+rDXz+jF9vrHhc+e9fueSu34qz034WIObuNCNQrUZG4aZo0RmtRKqyrS+yUUiO70/XyvD98P0TndOpHQuFzYtv2982K9fqnHqY/Hb6vQznTunvZ6flxOXyOvxt34ZebjyYy/X14fmNomszE+6WXy6+rLzBJFiAq7NgbSQRlFjEssukYYljJ0jINLDYzXLj9Yetx/c9Gru8fUdntYZ1EOe9+z2ez4ec5zeRnv6vFzy8m6vrdJOzy8kuB4q+1h2RGK6JpBoFgOSOwzWb2cLNvq3jElGWgBW4Il7NQ26RzrkrG3PFW5HHOuWKLp1jjysNw1Ga0KwSyysZliUrcYYlzrpGWEdICLBEUEoCAirAhRVrGyJezfk7OOVs4Zl5FZ91ARQFASQFQCRBRUREUAEFQRRJVYgCCKAUFRYaABFAa0KiAIiKiCoiNNw2rFJcEwlXFxJLFd4yjNbRlFiJKNRmWUrUREqoyjcGZRUEUSUVAVkFACUZAGgBJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhQAAAAAAGRVgCgAsKIACwoojIKAAAAAAAKACUAUBVWICo0sDKqsRWlRqG4VitKJVhuFSKIosRuVndMrxHcxVeljiIerCPlb7zXNOSIda+b7W7Xnww5rpXybcG3nyr6enDhlqGY9A0iAqDEyJU2m1EJlBlNqIAAIiKbRAAAAUFUAFgQEQahWozVVUXaw18kVuIajFctavTzxvBwe+5jFP/wB0uuHbJ5tuX3tf1cNaOWKNyOOWTXlTS8McsTCQN+zbSyRijUNJWhphqJNiBsgIBtBYADMyzViINIkpVjAy2wiVpERpUQAVJRQAAqojISzKKjUE7q5qWd7Fd69OXrHm2493qYMutPe4mbVo7v0HR7Oz4fVYPrOFyN67vpuPk3EP1HT5ebGvnZR6Ed4cOXHuPR0xvFc8nzvN42/NMPjedx9TaNPD12vnGrqy8uyV8xysOnj5Ka2/F9Xr4zr9N0ufOMdaR857gFRqJCuel/R26ZNe91wry7cHdrlc8Xd8a8GeBNnFeS1MY613Vu5ZPXrda8OvMOFe3CoDYIAlgIKiIouwV9d4G/q3w3/dOH+rCxnL2+sfO82f8R57Wz46mj8PH6A5+7qNLEWGlQahplVgjKtQrKtLEUVlzca80zY7RPpaH7DwonmeFuq4YjHviZsXIjcfT1efZzES+n4dfxZb6X0fM6/HnZr/AE5f9py/JOdTycrNHumzqvnZzjPKfnXu1XnXhf6YzMow6goAACMylajEsSw3GWGHWIHuo3CsufH6vUwO+t4+p7V6+KexkvqHq59Hx+PvvKz3eNmt6vJtvd9jpZ2dC0uN5K+rERK1BGVQWKsLIOOWZZrcRCqCCtQRG4bhuOdc1Id7HTbvrjzbbw7MYpn3MWxzDv5Hkmfq45qQx7unPKioksylWMSzMsV0jEsMOkZZZbAUQVBmwUQEWEFUo7vH49ranTprx82UjluzmGLu34s1rO4eXkr5ZdNuHlcen2TNxQPO9QCNInuCqJJCUUACgCIiKACCsiKIqkoAJFqh7ouhQaEBQVErQqACJoERGozpJGlbgZrUuGUpi4pZZd4yyy2MoqMstRGJStRERpElGkEaYEUEGQaZBYAEolARoASUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYUAAAAAABkVYAoALCiAAsKKIyCwAAAAAG612s00vszcvVxiNChQEUBVWAqsqsDKqsStKM1uG4aYahQIbjsqRRFXTkpDWLnsvEd7FGnYm+oerH0xfNznmycF8rrXvMsZV11a3Dvcjja92M4g0sBoQ2bESZYmSJRnaiJsEATZtOVTZtBAUAoCAALAVQkBRkACFaiKqpVaiGozXLFXNWrpHHPJzUpMy7sRNq44+qNOuMeTZk5K42/Jp14ea5MzViYFlcVocbDtj2biVWFVWmGlgRRpnhQgAggogCMtJLOytJMsM1qEso0zKI1GZkStCoAAkggoAJKMqSzKKgK3EuzS7trvFjnnHoYskx73r8fLqYfZ6XZ64vk9Th6V9Hw+REeWNvruHyPTu/U9Hs54fHyxfRYbxaHPMb29uXpXGvP5GLdZ7PkuocWe/ZN2Pn1OXPFfH8zBrcvnORj1Mvx/iGvjKvu9Ds5kebaGHwMp619qdoCKgK1E6c1btSsZzl2aZHZrkdca8ezByRdmbNWuMx9WJl17MV2wcF3Xs5ZPXgxo0y6mgEAAqxiRloFB9f4G/qzw3/dOF+tAzl7fWPA5sx7P7Zt+UPNXZ8VZ0fh4gw6VVWCw0qCwsZaVWVVWVUK1CqwsesP17wTnvmvn4mOlbX53Cy8esWtqIm0PoeG3Gbcpb6Wd3g63zS6MsZzfNxx9X531rFNM9Z+uHivN1GPG7Z9a7dLfN0+u/kTKOFekQWCKAnIjMyjUYYlluMSxLDpAhGlWGkrsYnq4Pc763h6js9Sk6hw5bvRez5mM++8nPf1eXll49lfZ6ednTll56+hEEWCJYomhRJBnSSy3GRFRVBYSI25IbjFc+J6/Hr5nq0zmvD1N4le1i4s3j0YzcOY9z6N0/cfFnUcbOHm5cEw6tqaePOcV9HXn5oyMOrEyzLLcYmWJliukjEszLDcZEaAUBWRKKJQSQhCqOzxsFst41D7vgdMitKWmPd6Pp9Bo895fE8W6n7LGYyubm8OsYrTEej4jl4vLMt9dq8tcfCt1zjzZR8mv0CrBEVC9xSABEBYoFSglEUisSe4rQIMiQBVEFRSFNKAsDKigaKK0jIKgoBoEZmEWMspW0aCtMSVI4pZZdoyiNxlJZrSSyyqSzI3GUZaZRGkEaSWUIAqSiKkoNQAQSgI0IsEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAABkVYAoALChQEFhRRGQUAAAAG6xuVK7mPFvTlnDt1k9Hjy2erqZcU1ddizivThl5ogw2ANKIKsSgqLDUCKqxmtQ0M1qG4aYahpYLDQAg1EbdikOuLz7a7EW0xe7pb6PLMea69ruOZ25ZV69ePBCwy6q00gbEDYiM7QSZTapwiKIm2VNoACwBQEoCAsAUABUoogkoDUK1EGoaiVyRVy1q3I5ZV2K457OzTG64x5M83apidmuJ3xjxbM+7l8jM1b4cJk4phw2ZrvjXBZwy516cOyw0Ra000wqrGaECN7RUDYBtQTYJtGOWkZlLW2dojUZTZVSWWWkBQBYVAgkRJRVAElGWmURQFg5K2axvrEy7O3ju9HDl9H0enz4sfP34cyva4+aNw+r4HJ9PpP03Rbez4e7DjJ9ZxOR5o9XtUvEw+78WGOTx5Tis5I3DxeZh3W3ZrH1wsccnxXP48xNnynLwzG35vxLV3fS6HZxZHh5aal1Zh+U2zi1+k13nGIOTYCwAclbOxS7eLjni5ouvm2289x9SZYlGpHDZwWYrvg45NMupoARFQKRiUllsNnIr67wN/Vnhv+6cP9aBnL2+sfL8q0zknv23Lrrl8VXXOMMfoDKjSwWGlSgsZrSqlVVZqtbVKqqyr7vwhzvknM4Obv/g56TP3berorJ1GMeLrvTVjl/LnK5/HfB+S9U6jEUisRnm9Yj3UyfSh+enWzy78muj/AA8px2zyiDyPUMlaBAAZmWZRqMywjcYlmWK3EGW2lhqM12MT1cEu+t4uo7V34nUOrms7ZX0eDXPvvLzWebkl5M32NE7OvKOL2IAAojKjIsRGVjKI2KDWlhWa1ENxDcYrnx+r2eH7nq0fFHg6r4K+04dI9nDs2w1tHeH6PDXzrn0fjtmdm3L6vL5PAiYmYfP58E0mez5vU6fL6vr9F1Hn9HnXrqXG+fe9fYxvMjEsMV1jEyxMsVuRmZZYdIA0AggoABQRkIarG5WexfSV9n0PgxesWmH7P0rwb1Hm9JjqOPDvD9PX/wCZ6v1Hh01atWOezLyy3ifV+N6/Df1vVbNeqc3CXK/SPjeXg8tr0mHwnVeJ7O9o12Z8R1el/JjwnbxskfL5aTWXE/N5Ti1+yxvOMFSKogCgIgEUCpQSiBFZUqoEURBAVYQAUFKUERRQ0bKNKMqLwho0pyozwiIvDTMwyyqTCI0pIkcUss2OsRmUrcRlK0mpllmxqVllG2ZRlpERYiFaGZZVAVERUlBqAAiUBGhAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAZFWAKACwolAgLCiiMgoAAAAO7x8Xmbw9a57cuMbXrY8Gojs7HsO3o9cxfIz2/edPPi7T2ePlpqXn2R7umz5jgHF7QBqARVVAVFhqBKqrErUNKxW4bhWGoVYlWGghAcK5aw5YnTrHkz9azN3HNktawxY3tWHeCg0rSABLKMpMoCIqJMpsqoIoBwAoKlBUAAQBQAWBKAgC8CrsiVXLSHSMZdq5q127NKOmMebPJ26Y516O3TE9GE7PBszdqmNzRR3keLLP1WauK0KmNcNnVu5ZPTrcF5cEy5V7MJ6LDQq7a21GFVWaoouzZynBtDkUJQRSIkyysRlPRqMzKTKNsjKsyg0AACwqASIiKoFERlplEUBQgHNWzuYsj1acvWPPtx9K9TBl9O73uJyPLMd33+j2dnxOpwfWcHlx2nb6rj8iJiO79R0+Xmw4fKzd/zbh081dxL0Yelccny3PwRqXyHMw+uofK8Q184116XPjOPm8+L1eXeupfi+pw4yr9T0+fOMcekeN6gAAG4vpexxy5K3ckWalccsWt/am1Y4Zlwyzk64uMZdAAQVkSrGJRltAGn1Hgu0x4u8L/3bh/rVPa/Q72fWPms8/4tvvlxF70x+HH6AgLCitqlAZqtQ0g0RBpWWhpFe30XJ5c96/XDr0+Xl3ar/U8vV489Pt+j9F8bYcXJ4fS+bhxTWvI4GOLz9eTFPll+QPT4jjxulvvHLo7LNvE/il/5gjwR7RkWAlVNptFRkqxmZYlmtxhJYrrGFiUaahWmXZxPTw+53weHqO1dubah0stvV0zvo8uqerzctnRvLyZvr6Y4hzehNGkU0AgBpEVmYRGkNIqaUVViGoy23DUc65KvV4ttTD0arxlHk6ic4V9x0+/mxQ9mmPzw/WdFj58cZ+T8R1f3dmX1cWXDMe55HL4lbxMxHdz6vRxzLG+l3eXLF8zycE1mezyrxp+d3Y+W1+q6fPzYxwsTLz17I45ljbnXWM7TaNw2u0Xg2bVAAAEAVKDu8XF5rN65zlHLdl5cK/Sej8eKY8UT/wBX9xeFum8WvhHg8XBatq3wb80Tvc37y+p4jldXRdLxPSbMbf7R8jwGTd4j12XPr9lxP71/Lfizo+XpXVuZx7ROovM0mY9YfnPU+P7Ss2iH1+pv22iZ/wA8lfntEvTdbt13+DOx8Ly8Wpl5j8rtnGVftdGXm1wXbm7KAAgAqEF0AShRNCKnvCqgKJJRBFUENGlU0IiigaKKIy0q+yC6aFBkAZmEG4jLNWIjNagIMTDHlk4blIpMtximVmPJc+GowS5I47pNTGW1bYdVnbzb+ssbcZjw6acvNy40ed6WZRG4yMqjI1BEVkRRJRUZGoACSgCNCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAyKsAUAFhRKBAWFFEZBQAAAUcmOnntqH0HEwejvpx5rxdZs8uPD3OPxZtPo7WTh2rXen0Jr+6/OZ9R+84eJyMWnicmkd5eLdH2ejz58ry5HkfXAFBFUFGmVhqBKqrEqw2rFbhyQrCw1pYLCqEAlctZ0k2bcOOcmJkYrtJxEUBqAU2qELMrBJlEZSWQTabBAVJNimwABRUoKgAAAAAsEpRAgKCrCyJXJWrs0o64xxzvpXbpR26Y3fGPBtzdymOXbpR3xx7PnbM+7nijU1dnmuTjtDhsldMPZ1ry6t5cM3s1x1ry4duVezGeirEqrkIlqMrs2vuzwq7EXabBYUQNrATZSRlGa1EZZWIzsaiTLO2W4mwUhQBUWFQEkEFBJSqgyrKCgAI0sS56WdMLxY55x3seTvD1sGZ9fpdnFj5fU4cx9FwuT3ju+t4XL3ru/V9Ft+F8LbOLY+gxZomNN3ncPrSevLy5V43LpExL5TmYY7vH1mHONTXeM4+a5OGI32eFmx6mX4zrtfrX6To9nMjpSmnyH0zSaOF5FaGWZlitQ8zlrclTKNeZrzNcsXE8zEhHGMtgAkgkolaZRlpERVfTeDP6v8AC3924X61S/DfpVx7z6x8zed2lIPek7QBBpYENbEUVBWkaBloVGtrErEV3OBk9ny8M+7cbbwvGeF/qct082rZP6a/XssTzfBsTaJm3D50Uid71TNT94fjeavky3r9Vpe/xD711X8nh6H/ADhi4h859BBIqTKFaiIgMosYZlmukYYliukQFVY9QdrE9PE74PDvctpdLLZrJx1T1efkl07PLk+rq7MjLqAACACJViSwjUBF5AFiG4VmtOSIbjGTcQ7mG2ph1w+KPPt9ZX1fTM/pG313Fv3iJfqvCtvGWD8Z4nr4zzfS06Xbm8ecuCm9dpfM8ni3w2tFqzGpfb6/Vjs5uHed3zdM2a8cLZ93LtXgc3iReLWh8rycM1mX47rNXFfqPDt3Mkvs8u8acMy+TX3sPXhxyzMsO0ZmURoXYAAAoqAAqcCxD2unUiclXfROc8Xk6u8ac/o/RuJaMc1nT+rP4UdZryej24Vsu78a/as+6ln2vENf2nhufE+CzJ8H/T+2a/GcZb6bcMsT+JPhevO4mbnYaR7Wkbfyzy8Pltasw69BunUeGa+fi1/crHj/AE37L4rc58O2eb+74TqfG8lrdnzOWs1l8TqceM6+14fs8+rBxDyPoKoKCIoAQACUABURBAaEkEVAFFAAA0CgyujQNCoQ0qVRURdJYIyKkso0jLDUCO5wrWm4pDrIza5IpVyarEOskjlbaeakMznrC+eRJha62TPvbz7TuXk25eavbpw8sYSXB6IzMMpWoiJVREaQSqzKI0IixGRYAokoAjQgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgAAAAAIKsQFABVEABVqVREAAUAAX5D1uFg8070+q4vG3Nez3dPh6R8HxHdJb+T67i8OlKVmY7uTlYKzinVfR9qa+MOPyfj7vyy3y/m+J5kRE2jT5bmX7zD4fUej9n4dOfK8weJ9sAUEFBoVlYVUaVYlahpWK3DkVhqFWCm1EWJGauxbUkNjLQKgoKq9+ATaoT6JtGU2yAgqMp7qB7qQqlARVVAVAAAAFEoeiIAsFAHLSGozl2rs0q7WOjth3eTZl3d6lI7O5TG9OMfM25u5SjsVq9EnZ4c8u7lirMw24S+rgu615c69WHs6t5dS9nHJ7tcdW1nHtxeyT0biVVK1tYajLQMqrSKgKois7CCAiMrGdpKVtlGbWozMonLTJsqtGwUajNWCQQAAESqgyrAKAAijUSspXYx3d/Hkl7tGfHDx7sHscfPMa7vpOFyZiYnb9J0W34XwOq18W19XxeVvW3pVyxZ+m0584x8vP3dXPPmh89yqb9zn1E5lcpfV89ycfq+f5GPu/J9fh3fe6LPs8q9e7j0/P5T1r7mN9ImhlpGUVmZYmWbXSIsSnK2NbbiVYsa2kyvLLIKukAJBmUStJomGeGmJQVX03gz+r/Cv934X60Je1+i4/FPrHy9vWSD3X2igyNLAhRK0KgsNIqiVVIlGlZaarM1tEw1PZLOZY/bPCU/OPS+u9Nie/I4Xtsf8AzYJ878j6ri9ly79u1u76XWfe067+Ur5fR+meH0zx/wCLy83Y+Y+oBEjMoNIIIiNMMyzW4w45YrrEAVqAdvG9Cno74+keHct7dnSyWMk1R0Ly68vNX0tfY0I2BwGkAAGQGWWk0g0ulBYahYxW4hyxDcc8nJWHLXtLrjOzhl7vU4uaaWju+24ueL0pO+77Ph+zjJ+d8U19sn6L4Q6th4fOxxniLYp7TWfR+m+LPB/E6tw7dU6bqbzHnmK963h9rqeoy0dT0e7n91tx8mbr4V0mHiXhHXdNJ+/037TB+Ac3iZOPlvjvSazHaYl8tz+JM7tFXj8Q0cXL8ny+h23DZJfb0r5TPi8svNvGpfmNs4tfsNGXmkcUyxtwr1xDaNAIKqCgAKqoANV9Ye3wLxW1Zd9F4zxeTq5zry+j7vi5PPSsv0Hwb17N0TqvG5NbfQifLlj66T6w/Ta8Zu1Z672zw4fi/tb0nV6d0769kr+v6WwdU4FZiYvjy0iY98TFn8k+Oeg26R1fk4oprHa02xvj+C53DPq+my+s/s/V/wCq9c2dL0nU4/w5T/jJ+VdT48XxzbXeHw3Lw+WZTrtfGVrw+EbecJHmj5T9AoCghoUXQAiQEABWZRlYiiiAKsAAhRKGgA5QUFFFBFhVSrtV5QAZQEllm9m0ZllYyROhprzHtNNebg8rM5JZnLKXOrMIx57MTM/W522ukxkYlliukYlGW4jCVqDKNiIRkG2UllYILEZRYAokoAjQAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAKAAAAAAgqxAUABYEUBYUqUBAAFAAc2Gnnss7xnO8Y5V9fwONqK9n2HT+JEVi1on3afa6XDs/F+Kb/j9XuRV1OfljDhn7X0M7xhnfyfntMue7Cfm/PuoZvJFpfH5rze8y/O9Rlzk/ofhmHGvlxDzPqACkiCgsKqVoVlWliVqGlYrcNqw2LEoKBsFIFFSICooCqT2PmrLVRJlnaIgAgqbQUD3ABQRoVAVAAAAGkQJRAFFUG6w7FKukcc76V26Ud3HR6MY8G3Lu71KQ7dKvTjHzdmTs0q5oh2ns8WdacV7LWce7q3s6mS0OOVe7VHTvZ073cMnv1R17SQ5+71ezcNqxVahqM1RU4VVjJtVBQGUDaIvCbZmRYjO2K3E2zsWRGZlloBRoFhWoyCoAACSjKhKKwCgKAAg3WdO1ju768uLHLZjzK9HDl9O72uNn1MPt9Hu4uL43V6/SvpOJyrR2mz6DDyN/fp+r6XbzjHwNk4tctsm4eZn77enZ6yvN7vE5FI1LweTj3t+d6/D0r63R5/C8TLi8sREe51Zh+Y248Wv0WGXmjOoNOTozLEs1uOKWWK6wEVraqzWolWmRRFZKQAZlErQkorCI0r6XwZ/V3hb+7cL9aqXtfouPefWPmJ9ZISLVFRYVUFEVVQFRoVFBGlVldrsOH6z/DTnY8XWem1zW1jyTfj5P+XNWaPmPGPT78DqPIwXr5Zw5r45j7pfTz+90kv9OP8A2r5mueXbj/Tuzn/80j40fNfSUIMygoiDIjTDFma3GJYliusQFG6+pCu3jdysu2LxbUvZ0skpn2XVHTtLicK9+PZQUAF0AyBpEVkRYyaRoagKrUNRiuSIckQ6Rytc0Q5Ih0jhlXPjnyy+i6dyorMVmXt6bLy5x83rtfn119Thza7xL9u8B+NPZ+w6Vy++K1vLS0z/ACbfoNmudX0Wer+KTz4fXF8zwbrcvDvFNOd+DP8Ad5z8q9Px/wCE+Jm4t+qcWNXjUXpWNxb7X8+cnDqbVtDGjPLqugwzz+LC3DJ28f6THofFs/s/g2ybMf7vkeo8SazMw+az49TL871WHlzyfT6Db58MXQsw+fX2J7JuBitCqlBQVUFAXYGwGnf42TUw66rxlHDfOcK+x6byPSNvquNk1aO79N0OfMxj8R4jr4zyf1Z/DTrtOd0nHw5t/jcbtP2090p/Evw5HU+n35eKm8uOHyMpei8dyxvbPKz+2T9hlx4l/prCz1ymmf8AOD+T+Xgmtr1tH1xL4bqfG8l7dnt6/X921+Y8J28bJHzGSmpYfn73r9jjeZARWgQVfknIohLIsREUBUZRQFAFBOUNHsNKRABJNEBVKAiwEGgZFWAASgMyhw0yksNRlkbQRWWUrSIjUZliWK3GZZZbiMzCVqIiNIiLEQrUSWZZWCSnu0jIsAUSUARoQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUAAAAAEoqxAUAFUQAWFKlAQAAgChEbe707jbmOztqx5zjy9Xn5NOT7ngcXc0h9TjpFYiI9H3+nx4w5fz/xDb5s+HPEPmer8mJtaIntVd+Xl1/Vw6DDz9RPyj856nyJvaY8zxpl+d23nKv6R0mHl04RBzekAFEooO1Xj2nj2z/7sTpwN2ceX6OeOczuf9N4FRVWBK3DTTFbhtWGja8shs5Q2gsUFaCFUUaQBpYzRGhnaMoiBBmZFiAooAgNLCqCA0gCAAqAIIgsUUWGohYzXPSrtY6uuPs82yu9jo7uOj1Yez5u7J3KVdqsO8fP2Vz1ht1eW92LWda92bXTDF08l3Tvdwyr6GrB1L3dW0uNe/Xjww1DMda2sKxWmmmaKrLQqC7AF5Q2jKptJlKrMymxqM7ZmWK0iTKNxnYeygAsSI2qxkGkAURARkEmRWQUD3X2AAQHLWW5eKzlPR2sd9S9XBlmNPo9NnxY+f1GHMr3ONm+17/H5PaO79T0W30j831WvjKvSjNtx5LbfWt5j52V9Xl54ePnr6vj9ZO76PS3s8bPT1eZeNS/MdTjxlX6Hp8ucXHMMvI9MYlxWliuuLjmWHOuyqCw0sZqwsLWVVUEAAZRGhJRWURofUeCqebxd4X/uvC/Wql7X6LLxZ9Xys+skJFqgiwraCoiqRAaRVVFURRUGhH0/hnlW4vMreuvNS9bxv66y/Q/4qYKZ+o25+KkRi5nHw8mkxHa02jvL6eqebpP0zN87ZfLs2z/1tWX9uLH4uPm930AlRmURSWZRUSUVliWa3GZcbFdYgjRtqnqQvZ3MbtRLvi8Wxx3l0ryxk3qjrSy5PZBRQEAOQAlkVERU0aZaNLCxK1pqGmK5Yhy1h0nq45OWsOWIdY4ZVqIdnDfyy6Y3ixx2TmWPpeDy4mIrM95fQ8bkWxXi1bzEx6TD7/Q77PJX5jrNWWGy2P17o3jzJfpl+Dz9X+jeImdz+O5fm3VKY5zXvT0mX2NPR46dHV5Y/DnZlx8qeI+J5ddj0OOfx6sfJa+W5uD2lLdu74nl4vLNn5br8OLy+p4Vs9OHj5K6260vh5d36fXfSMqy6KCKADSAIoCkA05MVtSuN4sYynONfQ8HkamO77biZYvSs7fe8P2esfk/FdXFtfqfgXrl+l9V4uTzT5Yny3+2kv6xtGHn8Oa782PNT/197j/qPC47uk6me+PF+uL7H+ld32vR9V01/gy/7ZP498a9Dv0nrPLxT3rNptWX5j1PjxekzrvD6O/970+Gz+fGV+Z1y9N1+3V/JssfCcvF5bS85+Z2TjKv2mjLzYQWGHZRGVBF0qgyUZSUaAEBWRGgBoGRQAADkCAKgoKQRFBBpYA0JLKVYiM+6ozKVYyI2yiNDMpVjLKNRJYZrpGZZYbiMyNMjLUREqsoVqJLLKwSU92kZFgCiSgCNCEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAAEosLEBQAWFEAFhSpQEAAAFHZ4uKcl47PtuncXtHZ7elw5sr43iu3y4cPteHg9njjcd5ejWH3sfSYx+A6jPzZ5Vx8rNGDFM++e0Pz3qvJiIt37vH1ufE4fV8F0+bOX518NmyTkvMuF8G+tr+hYzy4yAigAolFB9NxdW8P9RjX8lqTH4vnHfb21foePpfj6qf+tf8QIcnqaWBmtQ20xWocisUXYwbQAWLFBWtkSQo0o2yAsLGasstDAyCAxMoNCwIoAIDUEKoqAqAqACiBBKCILFFFhzVhvFjL3dqlXcx1dsfZ4tuXd3sdHcpV6cJ2fM212qVdirvHhzre2Zs1XKT1cF7t0il+FzMk/zUtSYn7DD71yn9N/7R348sxv8AVjP+a8TJkdK+R48q+rqwdebOPbk9cnCw3ClVYX3ZrSqzVVeWaoqKbA2bDg2m05GUGk2zMs2tRGZllqM7TaNSDIqw0oAla2ozVNqhs2AgAgSzIqAoHuvsAAgNwqVy1l3cN3q05cWPNtx5j1OPm1MPc4+f07v0HRbez4XV6u718eVzed9/DPnF8PLDiuvk9JeZmj1eLqe1erp/Th5Gevq8nLHeX5vqp619/pr6RwMS8Fe6OG0uGXKu+LCOddRYVFbVKNQtYUVAAE9xmW612RbeG5x6cFo0uU4iY3lllh0H1fgf+rvDP914X60J8/ovy+r5H3rCRqqL7oqrEAorRGQaRpYVAEFgFFZel0vL7PmYp+vs/b+u4p6p4I6FztVm3FnJw8kxPfXrWNPp9JZdGU/q/wAx87qZftd3p30y/wD8uUr8EvWaXtHpMSw+b2e+eslA5VJRFRJFRmUaiOOWK3GZYZraEo2jdD5Je1dyjn27R48+7gvLq3YydtbgHN6QFAQBAABYmmZRpABqCFaiGohqMVy1hzxDpi451yxDliHePNlWtHorDsYc00mO76Phc2LT5bS9nS7fLlHzut0efC2PbxZ9T2l2rZpvHeX6PT1P7u48935vZq4y5dPJG9vkuo4fpWfI6/HmV9Xw3Ly7HzOamtujar85snrX7DTfSONHJ6FVEABVAVAVBuAUgR6HGy6mH2PTOT6Rt9Toc+M5HwvFNXOFfZcHkzhy0vE+k939Zfw969j6n0qnGm8e1wR+NX0fGcLu8OuU/wDLyleH/TW/7HxLLVf/ADcLP7x538SvDkdQ4M83DTeSne7+VeXgmLWrLHh277fw7TPfC3Gsf6g0fs3it2TttxmX93wPVON5Mluz5vJXy2fI6nHjZk+50Gzz6sPzjiWHlfQVUZaG0NCe9QSSqiaZXlJRWgZElAFUAFBKAAgCnKoAoAcDSqyCgHIggySNMsyjURGViMylagkisSjLbLMpW4yzMMNxlEaSWUaREqskpezSMMtQSU92kZFgCiJQEaEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYNCAAAlFhYgKACwogEFhSpQEAAAIWD6LpvH9J0++6bxvSZj0fX6LD4X5Lxnd8T6OkOeIiIfWfjc7zXy3V+bH0tT6PzfqXI89pjb43W7ObX7TwLR5ZhXjD5b9WAAAolUgH0fBn/8hdWj7cf/AKvnnfZ8Or9Dx9N6Z9X/AO7/AP4wWHJ6moWBmtQ1DTFbhtWFBgTaxRBa0Il9lhYDvwotK3AqgrNElRgQRBYyIosKAlQhQFCqKgoAqAAIgADQAOSsO1SrpjHHZXapV3sdHfF4N2Tu0q7NIenF83ZXYhvbpK8tSbuG1y1rDB1cmRvDliOF1CPrin/qmvL71/Tl/h6bh93H9eP+XhXyOvazxV9bXjw4t7WGI61tqG6xVagZWGttRkXapwGxOGtm4BJlAQFGZlKsZTbNbZ2IrG0Gk2I0KI0pEFVldruBODZsODcJsODaTIqAAACgcgAKRK3EualnXG8WOecd7Fl09fj5n1ek2SWPl9Tr9K9rDl3p3632/RaNn3Y/P7sOKlpdLKm+8ymnu8rNHq8rPD4HVR9vpr2dK3q4pfLr6WLgtLimXHJ6cWRnhsD3GlVmtLDXsy0DIKABEeaXqcfi2v7nTVh5so479k14uxl4tqV3MPGy11Mt7sPK59Lt8/NdeWXl+b3D6rwP/V3hn+68L9aEva/Rfb+75JYRpRfdBpYgFFaIyDSNCooIoAqo5cNvJlpb6ph+6dBzfLvCXiHhWruMXseXj16xMT5J2+l4d97LPH9P+Xz+ssxzxvz17Mf+z8X6lj9ny8sfXLoPBsnGzOf1V6tF82nVf6YDDqICJIqMyjURxyxW4kuOUrcRGWxyUX5Je1dqjk26R5cu7gvLrXliu+uOMYdgUUOEDSBpAABJgaREUahUrcNxDUc65qw56w7YxwzrlrDmiHWPNlfVdMWWpO7i3pz4s81mO7Mtllazw88e9w+fqYi0+sPdx5q39JfZ6bfzjJ8n53rOnuGfLc2eH1CImZmGupvm11jo/TbHy3Ir6vLvV+e296/XdPfuxwTDDzPdABVQARRQGkGoEVRHJjtqX0HAz+WY7vV02XlyleDrcPNrr7jh5/PSJ98P1XwH17L0rqeG8bmnpaPriX6bXjOo6fbqv8eux+P17L0nX9Ptn8OyP6umMPM48ResWx5Kd4mNxMS/kvxz4bv0TqvKrWN4L23Sfv8Ac+D4Hncd3UaL8uZ9Y/Vf6q0fadL0/U499eX/AGyfkfVOL7Svm16PhOVimJns312EmVrw+D7ecJPk86Vh8t+g9laEqjTCmpZ96IgqAqMyNQGfdRCwFUAQUAAE4AUAAAkUaBkF5AQAGSRplEVEStIks1WQaZlhmtRJYlK3EllhuMojcZZlFiIlaRJS9mkYZagkjSMosAVBKAjQgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBVQAAEosLEBQAWFEAgsKVKAgAADt8TF7S8N4Tm4sbcvLryr7fp3E/ljT7fjYfZ44h9/pcOMX4Dxbd5s+HfpDrc7kRhxTET3mHpzvlwyfF1Y/absMfzfm/VedH0nxmS85LTMvz3UZ85V/SPC9P2emVxjzPqAAAKJVIB7vCtEdH6rX6/Z/+rxXbP4dX6Hl0/idT/wC5/wD4wIc3oahRmtQ00zWm1Yqmxk2iwAFVC+ywosUWsVqF3Cr8hCFIlJ97SMjIzKKqCNCiUQqLCgKQoKiqAAAlAiAoCg1EEHYpV2qVdcXm2Xu7mOruUh6MXztuTt1hzw9EeHNvaedXKRxzd175GbXbDF0r5Upm1g5cfXWP/Vyxy9b9K9s1+k+seXazEztwr34xIbgi1pqGmKoVhWiJRWgU5RQRE2im02KkyzsWRnabTltNs7RUJllpEKqqJViWlRRWQEAAAAA91AAAAAE33UVqG4lqMV2Mdno4cmns0ZcWPFvx5lexgzend6mPLt+g6fZ6R8HqNfq5vM6+SXp2XmV58JxXQyx6vJzw+P1L6vTd48+7gtL5GXu+rh7OvaXG4V6oCNAiNLDVZaGolb2DAKG4Ad/h8act4iIfZ4OHXHWNR7n1fD9Pn5r4nie/izGVxczDFqW7d3yHJxatLPXa+KvhuzmcPNlh8r5vvQfVeCP6t8M/3XhfrQze1+i+393yKwy20NMiwqKKKqJVGoysKooMgApBX3XReXPySKxbvqa2j64e/wAP2fZ7+Z8ny/FcPN00/LJ4HW4j5RE676h4jz7/AMbZ9Xq6P16bT9AcXoXaCiSCMyjUZllj3ajLDNdIjKNRHNRZ3MuzsUamW3mvdwWl17M5PRgyMtqqoAAigCIAIqaNHCmmoWJW4hyVhqOWTmpDnrDti8+dc0Q5Yh2jz5VryuK62Jjea61nD5tS4ZPVjOY58Weay9jj83Tvp2+WvJ1OjzR6Nedv3utyM8XezPb5sHzdejyZvEz93mZIfM3d6+70/aOtaHFMPJXvxZVG1AURkFFAFhYlVYVFehxsuph01XjKOG/HzYV9j0zkR27vs+ByZwZcd490v1HQ7OfI/EeI4eXbX9d+BOs4updJx4vNHnw1iNb9auLx50COsdLyXrXeXHD4Fv7D43Zfh+0v/GT9xlJ4j4FJPW5af+8j+ROfxJx3y4re6Zh+edS401yX7e99Tr9dmP8Ad+P8H28Z2PmsldTLMPgWcP2E+GEe9pBRYyrSlSWUBNFaiJplU0iqCAAAKugAiBpQ0iCoKEkAUU2JwKIAADINMoiiIqIixlEbGJRYyyy3GZZZdGZZZaiMzCVqIyjSJKe1aRiWWoJI0iIsQFQZAGhAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFAASgIo0ACwogAsKVKAgAALETM6h9L03jfyvR0+Pmyn5PF12zy6bH6B0zi+WkXmHvUh+h1Ty4R/Out2efbnflXNNox1m1vSIfG9W5m5tPvlz6nLy4WN+F6vtN8r855/I9reYj0281+ezvOVf0np8PJqwgMOwAAChVUR6vGtrp3Pj6/K8x1y7YfR59Xx7/ANf/ANQGHZpRlqGoaZqw1tWF2bENmw4VBFUK1CgotSrAobRUNpJyIbRWWRYAqgAqUaEIUSgCmwNgCiUBAWAKLDlrCxnJ2aVdulXbF49l7u5SHaq7x8/ZXNWW/M7SvNYk3Ym5asxcN8jq5Mrlcu706sOzp3yOGcuotH1w4XJ78MPSOCbbIZduOG4VuMNrtWGoFQURReUNqgbNgJMgm0mRplJlnlpERYyg0JtFQBVIVV2rKxK7ENqAKnAAAAgAAoAJKJWkbgiVW4ajFclZdrHd315cWOGycx6WHI9bDkfY6bZ2fH6nB3a3YvZ9K5ej58x+86eWfV5WeXy+pvo+j0/ePMvPd17S+Pne77GE7OCZY2416IgjSw0TslVqGow0Kgu5aQ3JuQRyUr5pJ3iW8S19h0ji9t67+5+zcDwf7bpWLP7T/HvjmfJMTEbn0h+p8NmGnVM8seZbw/N7NGXXdTvxmXFxxuUfnXM418V74711MTMTH1TD5DncfVpefxLT5bk5+HbOM+HzuWvlmXBL87lPWv1WF5xiPqPBNojxd4Y/uvC/Whi9r9G562fWPlNCK0KiqqAoLCI0KyK0KolAQUFep07lzx76n0dNWXk2Y5T5uHUa/tdWeLi5/I9vmmdugbMvNnlfzXTh5NWGP5Aw6ACbEa4RmRYjMstRhmWK3GZZkbhDlqTumXZz1LS24+7gtLhliu+IotUAAXQIiI0AIgAiqsNM1yQ5atxzyc1I7uzEO2Ly51yxDmiHaPPlWph17wuSYX1dS7r2eXN7sGPNpy482td2JlxW8sOY7tM+ve3ObfvemZ+jx3V6utktt07uGdenVOJHXs4ZeevbixKMuigDRUoIgLz6ApBVaZVy4ralce8ZznMe/wAHkTWY7vueFn89azL73QZ+sj8l4tq71+1/w567fgc+lbZPoT2tHf8All/TtoplpqY3W0fjEvF/qHX5Oq07p/FjP+Y+9/pbd9r0GzVe+GVfyz/EXw7i6Pz7zjpMUzzN49NRt+FdY48REzEPq7spv6LTt/mwj8z9l+x+LdRp9ps9P7vhuRTUy6kPzmfd+u1XnCLDTDYLGWhQREQG4yIJsRTQKgCKA0JQVEkSqrIQ2ChJAgUAFUSgIgNIgIIogqMsqjKNQZlGoyyy3GJRmtxlmUrURmUvZtlGWmZRPm0jEstQSRpERYgKgyANCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuzYG1EoogNAAsKIACiVQQAAHf4XHnJfb7jp3D3NKxD6HSYes/N8HxbfxjZ8n2+HHGOlaw7dIfdns/A7cubb868zqXKilZpE/e/N+r83+bU9/R83rtneP0fgPT85YV8lMzM7lHxfm/c+wAAAAoKojvYZ1xOTH16dJ0vbH6OWE9dv6hWW1aEVpWK0u1jIKNAyACgNRILtrcKyoosVmUmsw1x6Meb1ZRltGRSURRFF2AKqVVEF2AAAgAqiAICgKNxDnrDcc83apDt0h2xeHbe7tVcsS7R48o15l87Urn5WLXcM5GbXTHBwXyOre7ncnr14OtazjmXG168Z2GoItbhW2K1Eq0xYu1UXZsZXcGw4Q2Bs2HCbNpyvCbRFRC1Ym2dstSIJy0iAAK1CwoKyq7EDYKoAAAKsZAA2KzJEopKALCdqNNw2xW4c1Z03O8csncxW09TDd9Hp8+OHzeoxejS/aFtb1fVmXo+Z5fV1MtnlZ7Pn9Tl6V7+nnrHm3l1rS+Tne76+E7OKZTbk7mwFhYIlVpqMtRKqyAAvJR3eNXct4TnKOW28YV9/02kUpi0/ojonLx83pvFyY41qsUtX6rVjUv1mvDjo8LL6Sx8Twvbj+378L3yx9P7Pzjxh0r5Py7cisfQyzMz9kvzLm4PPW31wvXY/aadefzx/w8OWN6brt2Hyz/y+O5WLUy82X5LbOM6/U6MvNhEfR+DP6v8ACv8Ad+F+tVwva/SvTj3n1j5nYQrQqLCqgqgJwiwqoCoqqKDIANROiFSe5oDRo4DQCADMixElmtRhmWa3GZZZbiOapEzc0MTLdcp3cNnGy7zsqwAAKIqBENIqaAEFQBppUckOarpHHJz1q7NYd8Xl2VzVhy1q7Yx5s63aHVyQZdk131dO7q2eXN9DW4LMeZwvo9Mno5IyOaMjUyYywJu4rStqYxwWcTlXoxZllj2dBQFgFEQAFhQWBlohor0eNl1NX2HTORqY7vp9FnxnI+F4pq5wyfd9L5tuLnxZIn0l/YvhPq+PqfSuNPtK2y0pqY37nr8c13b0WvZO+GX/AGrzf6W3TX1fU6rfTPGWPjv4qcHFk6XTlWmfNWYo/lHqmKLUvDfQ37XwrVz/AA2xw8ck1eN8/wA2GOT875mLy2l5No0+LunGVff6bLnDFGnGPQK0y0koiCCCtQZmCqaJQBBNAoSHuaUKJKgJQQVFACAKAAAKCIACggiAMpVRJRplJRpllluMss1uMss1uMojUYlJZbZlEaiMSjUElGkZRYAqDIA0ICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCkCKNIALCiAAsHzFBkAG8dJvaIJPWJbxLX1XTuL3js/QOncaMeOLTHeX3ei18Tn5PxXjO/vPm9ikLmyRhxzPvfQt4lr8vx5s8Z83wvV+b5a23L875Gac15mXwOs2c58P6D4Lo8mqZOuPE+6AAAAoIqg5qW1hyw4vc1e0YnfL6iiqsCNNKxVBFXbSAC7BkhoKQAqLEXa7lR28UxLszh3Ho7YzzR5M8vLk6mTDNfc607hzynFd9eUyjKSy6wlATabRTbUAptUVpUAQAUEUBQBFQUOBppHJWHYpDc9nHY7VHYrLtHizcsWa87UrhZzT2jM5PtUmDjtkcFrs3J2wwcNruC1tuVenDFxzKMO3Cw3DU7Vmq01GaNbandmqRK8ouzaA3StslorWNyT1s+qW+WW3tCfNWZie0wzsvKelksQKobReE2m0qpKIqINQZQBVABoQXaoAAcpwoC7DhAAXawNmzlOEE71QOAFBQahqGozXLEOasOmLhk7FHexTMS9Wq8PHt9Xfpfs1N+z6GOz0fOuP3nUy5Hl5r7ePfk93T4+sdC0uC0vnZV9TCOPYw6ihwrRGVWFiVV2qGzYnBtdgu3o8SdTDtp+OOG/8ADr7jh5InHSYfqfgnqVKcm/EyW1GePo/80P1/S3z9Ltxnfy8/8Py/TZfY+I6Mr28/l/59H3fW+m16jwcuOY3eI3V+Bc7jWw5clLR3iZiYMf3vSZT3wv8Al7fGtV1dXq2/z4+v1j4rqPG1aXzeWupfleqw4zr6fQ7PNrxcL6TwZ/V/hX+78L9arxXtfpX08e8+sfMKIu1VKNKgKKDKqsKCIqtAolAQUEUAOQQAAZkVBKsYllhtmWUbiOapDJtiy1zndw2RHb2VdALoQBAA0gqAppNATBAK1BErlhzUdY45OzSHZpD0YvHsrnrDmrV3xjyZ1Zh1MkGfZdd9XSvDqWh4830dVcFnFLz5PZixtqLfazy3Zy35kmWmOGJlxyxXSMyyz7NikUFFVlkAFggLCsqqlcuO2pe/wc81tXu9fT5cZyvB1uHmwr7zg8jz0rL9h8FeKbdHvW17zMVmI8u59Jfp8MJ1PS79d7Z48Pxunfeg8Q1bZ2xy9X3XjTr+DqXStVncRETX6rxL+cudWJi+3Lp+nvT9Djqv81enxjq8eq8Tx24/yyPzvn01azwckPz3UfHX6TorzrxcTTyx7hqGmVSURBFQVYIVQA0IIIAAAJKhKpVrJIoACgAByAAgAKqACUEBEFiIy1GZRK0zMMM1qIzMJW4zLLLbLLLcYlGW4zKSjURiUagko0jKLAFQZAGkRQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVQABVjIKKCKALB8xQZAB6vA482tE6dNWPOUcOpz8mq1970vh+aazMdofXUpFYiIfounw4w+r+e+JbfPts+Ts1h4XUuXqLd+0NbsvLhXi6LX9pvj8x6tzJy2tWLe94L85ty82eVf0zo9f2ejCA5vUAAAAoIoDW+0wKgKiw1AlVVZWFEUaZqqACKohCiKBygDkx31MPX4+etu0vRqry9TrtnMdy/Greu4eXn48x7nTZh6cvL0+7jLh51qTVxvLfR9XG8xDaeyoQiiwsFFZWGiBs2qG1EAFBFNgCgArcNRiuasOxV0ns4ZuesuTbpHmyi+ZfM1yxwzN2JunLUwYm7htdi11xxcU2ce2HokZagVYbWe7NVpYyLtUDYimwNvsPB3R8vVuq8XFSk3816xr69u/Szz7sJ8rzXk63O4dNs472cT+73v4peFMXhTxFl4mC28U0pav2bh+ZJus89s7ZcWf3jfT8/ZyXvhbj/AMA48u4bBERRBUQUZRYAqigCCrEU2IogCxKKqACgAAAAAAvcFhyQ1GK5auesOuLhm7VIdmr04PFsrniZLX07zLiPPJzXTy3efkvvby7cnu0Y9nUtLgmXjy7voYxBG12A0DLatMUAFUAB3uPfUt67xlHLbOca+q6dm/3d/c+r4HJvgy470tMWrMTEv1Xhmfrhz27V+Q67G4bLZ3llf0D0jn06nwMXJr6zGrx9VofmnjbpMcflzyMddUyRuXp6fHy79+n2ss/4fd8V/wCp8L6fqZ7eXL/l+U87B56T2fF8rFq0vz3iGvjKuPhezmcPNn1fSeDP6v8ACv8Ad+F+tV8e9r9H6HHvj9Y+Z2sCG1VBRKqrEUVkWFgqlQAGlSgIsRMgIIKgoKgbFZQUGSMIns2kuOWa1CHLUMuzTFlrOPdxDLqqqyLoAEDQCCgLyIEQUa0sQSJXNDlpDri45O3R2qQ9GDw7Pd2K1c8VenGPHnWpr2dTLUznourL1dDJDpXh4s309V7OvZwy81ezFxTDO3K93edliWtqjMykpVjCJ7NikAUFRFEQWAFhWVVSq9DjZdTDrqvGUcN2POFfY9M5P8sbfY8bkWxzExOn6bodv3X4bxPVxsr2b9Ry5MVa2yTMRv8ACXhcmYmLfc92/OZYYvmavNdktfAdQj6Vnz+WO78p1M+/X7zob+7xdZp5I+iQ1CsqkpeyMiKDTQACAiiDAAAAirBUKySKIQUW+wAIpBAAABVQQEpRBUARErTMss1qDEpWmWZRuMyzLFdGEllqMSyjcRmWW4jEo1BJRqIyiwBUGQBpEX2AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVAAFgZBoUgRQBYBQZEBz4cU5Lxp9l0zifyxp7elw82UfK8T3TDXY++4mCMOKI079Yffk8uMkfzzfn5888vzcPMzRip5YnvL8+631CKUtEWeHrc+MeH1vBOnuzdh6d7y+DtabTMyy+G/oUnEBAAABQoCCgLCiisrDUCVVWM1VEorSAI0ApAysKJQAQWI3TLNVmXFLj5pw9Xi86aTETL194uRX7Xt1ZzPHh8fqdV15+fF53J4mvSHj5MM1lx24eV7Ol3TKOvPZHnvu9woEqsBpUoCGwoNKlNgikAoIKAKNOSsNRiuarlh0efJuJa8zUrnweaU8wTFmbuObpy1MWJu45sy7TFjzJtluRpViNLCs1pVjJs2VOF2bDg2qo1Ss3tFY97+wv4MeGuP0PpXK8UdSiKY8OOfZTZ6NUs17bj8WXGE+uXo8m+y7+nxvw427MvphOX4F/Efrsdc65yuTERHtMlrTEPzo6rj7bKTtjJP+Geh5vT45Xvncsv8A+a8g871gCAqAqMioI0ICiignAAKqKALtAGkAFhRkAAAAAG4Eqtw3GMnPSHYrDri8+ddzHV2aw9WEeDZWph1snZcmdfd0clnSvLx519LVOzrWlxvPXtxDYvCkKjSiVo2rJtdqGwRdmxBy47alZ6VMp6V7XEzzW1ZfY8XNFq1tEvu+HbeMo/NeJ6/d+reBeqUxcq/EyW1TkRHl/wCeH6D13pteo9PzUmu7VrM1fY6jL7LrNO32z8t/+q+l4XJ1ngu/R74ebH/7j+dObxpxZMlJ90zD4nqXH8lrfU+f4rq4uf1fH8M2cbOK+ay11L6DwX/V/hX+7cL9ar8xnO/0fr9d+G/nHzDSKKIqqyLCooooIqqzQAaUUGViZiXZpfFbteNfasrOcvfF28fE42Wu65o39vZv5ozTafJesx7p3DtNfPl8ryXq7ruU2YN16LyZ90fi8vlYL8bLOOzOzV5MeW9HV4b9lxx+Trjk9aAqDIJIrKSns0jCVqLDkgTJXHYpiwI0qgppUNGhOTQAgqAohwCiq3Vpi9nLDmpDri45+7uUh2qQ9OEeHZXapV2Iq9OMeHO+rc07Onlouc9DXl6vOyw6OSHg2R9TTezq2j1cNoeXJ78HFMOKXKvRibVlbBAjEiVoCCjQCCwCe4qIqqyqwFVyY7alvHvGcpzjXu8PPNJh9nw+bFqViZfa6Lbx6Py/imjzer165dx6utyM0VpZ9TPL7j8/hrt2SPjOdMTM6fP5X53qb9+v2fRT7mLgHlfRVRkRKIEAVQFAABJRmgIACCtAggQEUXaF9hUFVABEAAKUABVBEQlPdUQWMszCNRElluMSzKNRlmWXSMSyw3GZZRuMsstRGJRuCSjURlFgCpIlUEUQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFAAZIVRSFRQABQQWImZ1Cw9nv9P43pL9B6VxPLEXmH1+i1+sfkvGt/EyfRVhzTaKVm0vq9ua/HZfesnzr5TqvNilb2m3fT8v5nJtyMszvs+J12zm8P3HgHTzHC58dnSHzn6UAAAAAUEAFAaGmVUStAlVVZVWkARoAUSiiKCIg1GUGoRaYd7By5p728MrjXLdqmeL2sPLpeNXXLx6ZI3V7PxMXyeLo2fk8fNxZjeodCazWfR488OLX1NO2Z4sjm7qLEVWgBOBRCFAFRoEUEAFGhqHLDTnk5IlrzNOVi+ZfMJwedmbhMWJsxNkbkYmyTKOkiKRWxWFWJVlrZsAVFUSrtRH6J/DvwzPiTrvB4k78mTLFbTreof0N/FzxLw+g9J4fhnpuSIxYKR7byvoasfLdE4+7jLtv+I+R1GXmnV2X72eWOjGfX1r+PuRntyM18lp3NpcLxZW5W297X08MZhhhjPaAyogqAoyLEEEQaEFiqsSqAAgqoKAAKiAoorISBCgAADYrLUOSIajFc9IdukO+Dy7K7uOrs1q9eEfO2UvGnn5ZZ2N6e7z8k+rp3l4c31tU7OCZYca9UAguwFaVFBk2uzk4TaqhtdgbInUhY7+DJqYfWdNzxM+Xfq+n0WfGUfF8R184ZPrOByL4cuO9batExMTHumH9G9D6hTq3TsPI3Hn15ckfVaH6LrJ5+k07P5MuP7Vy/01t8vWdT097bMPN/fF+UeOei14fNnLirql+78o5/H89LTpjq8ftem1bf58I8G3D9l8S3657bP8viOVi8sy9nwR/V/hn+68L9aH5HbOLX6nRlzrxr5NXJ3UEVVRQZXaqAorSsgVABrYooMjlrny0/lySS2VLhM596OavP5dPTPf8AFw5c2TNMTktMzHvlfPlfSs4aNeGXmxxkrgNsuqAAiiAyko0iSns1CIchGciXFJVxRrSKuhUAKppUADSaFE0KmgU0AsNw1GcnNVz0h1xefN3aO5Sr2a4+ftruUo7EUerHF8/PL1csU7Oplx/YZ4+jOvP7zy81Hn5K+rwbJ6vsaL6R1L1de0PHlO76GFcMw4phxr04saGHTuqIMyFUCd4KNAILAiAo1AMqoinvhUd7Bk1L3eLyfJqdvd0+fFfL6zV5pY9zFzpiveXFn5c2jW30bu5wfEx6bjY8Lk5Ny8jJO5fL3Xmvu9LjxI4Ved7KpIgiALADlYCqIgAIJQEBBUFUEAUQFAFQIAAiAAAAAqglQEVEkVlEVmYRK1EmGJZbjEsSzfd1jMsMNxmWUbjLLLcRiUagkpWojKLAFSRKoIogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKAAyAKrSKAALCqlR3uJgm9onTWuc2OW3Lya7X23S+FN5rGn3WKkUrFYjtD9B0uPlw5fgPFt3n2+Xns7VYeZzuTEbjfaIdtt4xfK6fD7TdH5l1zqHny3x1l8w/Ob8vNstf0vw/T9l02ufOSg5PaAAAAAKCACgNDTKqJWgSjSoKsRRUUEVRKGwARE2NIgqIjUcuPNNfe9Xj82a63Ltrz8teTqNHmj04vjzQ6ebie+IenKTZjK+frzunPivLyYJr7nWmJh48seK+rhnMogy2qqAoLAjQIAKqsrACLAKy0jkhyQ1PZitbNrywbNnJwk2ZmycrIk2Y2lrcjO12ctENkSrErtphV2IbXYiio0qxBqBmv17+H3iCfDOfHz8U1jNjmdeb0ncafHeK+uZer9Rz5rZJmb3teZ+ubTuX1duWvHpMePjyxmP8AaXl8DpsNufiGyZfh455Zz62SPkx8rh94FAAASWRUJSdmkkBAVVVKAKCAIKobDk4UBQQFSrAIoAIK0siUVqMtQ5atYsZOzSHdxVejD2ePbXoY6dnZir24T0fL2ZetcGbs8nNb1cdz1dP7PPyS6dnz8+76+vtHFKMPQAACqIuzYGzYBsF2AbNiOWl9S93g5/LNXq6fPjOPD1mHmwr7XjZvPFLQ/XPAHVKY+bfi5LzEZ66p9Xnh+u1X7Xoepwnfy8z+3q/NdBn+zeLdJnbxPP5b9MvR+geKOkR1PpmWa13kx1m1frl/N/MwTS96zGu+phz6bL7boMsL315Wf2r6P+pNP2PiOG2T024z/mPheo8fy2tOnN4Krrxf4a/uvC/Wh+X6vDy55Po9Ds82rH+z42PSGtvG+lRoQURVVkVUUUGhFFZABdguzaggGzYIIAipKIIK0IlESUWLDaxKkszCUhALVNKgujgBRdGl4Tk0aBNGkXk0mgTRoXlYhuGolrmrDsY4dsHmz7V3aR6O/jh7NcfO3V38dHcrTcPdhjy+Xty9XLGNwZcLeWHo44bPvPHz49b7PLyUfL3Y+tfb6fL0jo3h1bw8Ob6uu9nBMOKYcK9WLjZmHN1gqKyaVUIPcUUBBYVKlSUUahRmrCiAI5aW1L0MWXTvrvDz7seY79M/p3atn7T3evz+j511fedHLd0rTuXlzr3aceIiww6giJIgDSoMqJMgbAABAUQEFRFWKICSpAFFAQIqCQAoIACoUVFIKFQQEkVlErSMaRqDEstRxyzLF93WMMMtxlll0jLMstxGEagks1qMygsAVJEqgiogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoADIAQ0sKoqAAKOXFSby+o6dxZny9np6fDzZR87xDb5NdfonA40YcNY13l6lav0OGPlwxj+c9TsuezPL82OVljHTyx6y+H6z1CuLHeN93k6vZxjk9/hHT/AGu7D86/Osl5yZLWn3yw+BfW2v6NJxjjPlAQAAUAAAAFCqoiwNMqolVViCiLCiLA0gqe6KKAAAiASzI0ztJllqMuWLLKZR2sXItSY7vXw8yLREWnb0atnaPn9Tol+9I57Ux5Y7Ohm43r2dc8JlPR59O24XivPvimvucLyZY8V9LHLzQ2DQbOQUFVWTagCsrtQFWJRFG4ldrz6Rmr5jzBweZPMhwzMpsakNoKCCtqzVGmViVWIpAjSjKq1EUEd7HyrUx+WJdW1ptMzLpln5scZXLDXMMs8uO6DDYAACBEZlK1EEioKoAKCkKiisggAADQoKAEQVWVAGoJ3FFZqtRCstRDmrDeLGVdrHD0MVXq1z1jwbq9LFTtDtRje/DH0fJ2Z+tdHkVeJmeXfHv6T1kedkl1LS+dn3fa19o4xzd0VBFAWFiAqGxF4AThdm1DZsFidS7/AB8uph01ZcZRx3Y84V9j0zPFo8u32HTuRfDmpaszuJiY++H7DwnZzcJe19H4rr8br23Kelllj+n+kc2vU+n8fk61N6x54+qY9X4z456BPC52TPjprFlnzQ5eHz7PrOp6bK95lP74v1v+oMP2vwfo+sxnrh5cr9Mo/IupcXz0tMV7w6fg/Brxd4d/uvC/Wh8rxPV5c8nyvCt3OuT84/PY9IV8X2j9JRRFUSjQzRVSiqiqqDSoAgAAAAABViIAiNACIyAKrSpUlkIqgLoRdKvCcgoppTk0mjgTRoOV0gIaF5aiGohWbXLWHapDth7OGbu449HoYqvbq9nzN9eliq7taxEPo656R8jbfWtpMbda4PN5OLe+zxM+KYmXzuow7vr9Js7PNyUl0r1fLzxfb1Zekde0OKYeavZjXFMMuddomkZ4aRCVRD3VRQEFCpSUBqFGasKIANQ5qWdMWM5zHarducnZ183o8tw9XXvdxud7uuM4g0KaERJABVZRlqKAiIopyAooiDICKsVEAVQEVAF0KbNCGgEEABUUAUUBEqCSiogsRlGoyxLNbjEsSxXSMywzXSMywldIyzLDcRhGoMpWoiIsAVBlYAqIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKAAgCCqNCoACxG1LXs8HjbmNw+/wCkcGO2S0dofV6HXzlH5bxnqPLhlH1NYcszGOs2l9d+Kv3rJ83zvUeZFa3vL8t6jy7cnNbv2iZfF67Z2j9p4B0/HOfHZ5u1fMr9SCoCAKAAAAChVBFhVSqqs1VVBRBoSirUFEoqgLwG02ghtFSWSrGZZZbgROhXI3Fpr3iWpeK52O3i5dqe96ePlVyRqXp1bOfSvBv0evMW+Ot47Ojlwa9y54+8Z1bLjeK6lsUw4piYeeyx7ccpUEaFUWFVFBFFSqJEaglpKgoLs5Xg2bOThNptOV4ETlRQNisq1tWV8x5lODaxZTytRLRGLFaVkhpplRUqiI0KgAAIhbwqMs2tREFgbFFVBYUqgiggAAgA0AbFFDlAVFUQagSqqxGoaaZrcQ5aw3i5ZO3jh6mCr2ap6x87qL6V62HH6O55Oz6eGPo+Jty+88vlUncvAzx3l4eonHL6vRX0jy8kOpaHy8+77uvtHGjnXcEUAUVkCCbUWhsE2bBQBzYralrH0yZynONe/wADkTW1X3fDz+aKWiX6Twrbxli/JeL6vXl+9+AOsxlpbg5J7z3o+08R9Hr1bpuXHqPaViZpLt1tvSeLY7vbLLHP+1fqvCuPE/8ATeWnvljhlh/eP5h6lw78fJkx5K6tEzEw8vwvxvJ4s6F29Op8P9WF8Z1z1s95a/HeGZ3DO4X0sykv9q/Ia+kNPyc7R+2veqCKpUUGVVUUGWhoFEFVBQATgDgAEQURFAVEZAFBBWmp2SohRVEqqsiLpdNIaNCLELpYlqaDgDQppNByaNKctabirUZtc1auekOuPs8+dd3FD0sMPbqnZ83fe71cNezsQ+lhPSPjZ3nKqro5uK9ItDyuThebdhzK9nTbOMo8bNjedkp6vkbcX39GfpHTvV17VeLOPo4VxWhjTjXeVJhnSNommeGjSCoKoICwISgNQolWFGQBYbhqM1yxZrzOnLlcXHM7WGfdppVZVESIEBCtRGZZ91hCiobBF2gDQsG0qCEEFaBmgiigAsCFEAAAQASEUURSCAqyiVABEFRllpmWJZbjDEs11jEsMV0jMsJXSMsyw3GWUagylaiIiiSigiwBUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUABAEFAaaKAg7nGwze0dmsJzk57cvLhk+z6ZwZyWrGn3uHFGOlaxHo/QdHhxja/A+L7vPsmPPb1dusPO53IiN1j0h32ZeXCvkaMPPtn5PzbrnU5tvFV8nL87vz8+yv6T4Zo+w6bD80WHF7wQUEBQAAAAUKKIqqgqo1CqyEERVBVgZBYAcouw5EAiArKI1GZZRsRKsbrPubaYvdpYtNfRe3rGbOZ6u3i5VqO5Xk0yer0YZ+1eLbo4vMW1aW7uvfDC3is4Z2cR1bYtOOazDjZxXrxy5QThpV2qCgoIoqKNMgLENpyqTKCqMgAAAqLsaRQQUBusrKlckNNOVVYWIqtICJVhSICi7QIjLNVERRBUQahtrcNHCqMqKgAAKCAIADQACjTKqI1pVZqqsRpuIajFckQ5aQ6SOWVdzFD1+PV7dE9Y+Z1N9K9nHXWnM+phPR8PO811OTTdZfN8mkxMvF1WL6fQ5dnk5auleHyc4/Q6r6RwTDLg9UBFQBQQNgi7FNgAoACxOtER6HHy6mH2vS+REx5dvr+H58Zx8HxXXzrtff8AQuo5eDy8ObHPetomH9Q9M5lOocLByael4iZh9nxrX5+m6Tf7/BXp/wBF9Rxt6zpb+Wcfg38QODfD1nlZZpMRktuHwPQotj8UeHrV/wB7qfDif/mw11s83QdPsn/8Cf8AaPh5YTX411eu+k+3v+eX4dHpDb8bH7KqQrKqqKogojUAyKqKKC7EBUBRTYCAG0qoIqIyAACgIoooCqIqxDTLRpUta0aVlV0qGjSnJo0IagmBTR5V4OW/K3FWpGLXLWrsUh2xjz53u7mKr0sNfR7dM7Pm769WkaiHI+jh2fIy7taXTrIwkw62bHF6y5bMeZXTXlxlK8XPh+x5WXHqXyd2PHL7vTbOZHQyU7urar5+eL62vL0jgtVxTDz5R6sazpmYZblZmEZraEo1E0icqgKAADUKM020IAg0qNRLUNMDUHulVppk2AgAzKVUSWWogKgCgVYFRUQAEkPmoIIkKNAAQUVAAAQFFIggAgCqqCAgMixJRFZliWHSOOWJR1jEsS510jMsMukZZZ+bcZZZaiIlaiINCSgCLAFRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQAEoCCwAsNFUEcmKk3mH0nB40zNez0aMOco+f12zyYV+i9N4kYMUTMfSmHrVh+j14+XDGP511Wz7Tbnl+bPIy+yx9vWXxPWeo+wpbVu8vL1ecwx+j3eE9P9ttw9O9fnObLbNebWnvLifAt5r+jY4zHHGQEVTQiiICgAAAAolFBVWJRpWaNLygCCkFURRUAqAhwIKM7FiIctRlEaQRRyxO1iZKqsBFpj0lZU4c1c96+9z15O/V0xycc9MvrG/PWzM0iWrxXOc4uOaMTRmukyZmERtVEDYDS4pVGkREAZrTMiiwqBsAABYgNCmwUGVF4G62cisZRqFhWGhplRQ20iCJygEoztBpBFiIKgKMtLFXzBY3E7UjFiioAKAAyAKqgIKqs1WohUVdKxWohpqM1qIbiG5GLXLEOWsOkccq7eKPR6/HjvD26O8fN6ntXtUjtDkfUxno+Hl3rNqxaO7w+Zg1M9nDqMOca9XSZ8ZyPAzUefko+Ltx7v02jL0jrTVxzDzWPbjeWZhmWW0GWlA4EAAVFoByAIAOfFfUvoOn8maTWdvZ0uflzxeDrdfn15P0Dh8jcUtEv2zwP4pjj483G5E7xzHmp9kw/Y5a/wBt8O26p8U4yx/s/M+E9Z/4b4tq2ZfDeccnl+POpYepZsV8dJiIpG+/vfnXQ6b8SeHZ+rqnE/Vhz6vTdXhmnDLvjrpv6jHqPG9+7GcTLbH4JE9oV+Gj9vfdqJVphdqIqwrKhEXaxIiioKIGwUUABdiJsARKqCCAqGxTYDQMqqi6XSoorLUQ0sSrpVZXS6VmrpViWr5TytJ5jRoA0oeVqKqlrem61bkc7XNEOelXXGPPnXex19Hp4aej3aZ6x8zqL6V3obe7F82trp2kYpNWJgzxJXVzYovDxeTg17nzt+D6XS7eLI8nLj1Lo3o+Rsx9a+9py9I69quGavPlHtwyY8rEw52OsrM1Z0w3KzpNMtojNioie6oK0AKqMjSpVBBRG1ajI1C+7NbGmaCe4IVURFRGViCqigoFFVAQJQICfNRIKMkKrUKIBBRUFATQICiiCACAKqkiIIAEZRGoxLEsukccsSy6xiWJc66RmWGXSMsyzW4yyy1ERK1EQaElAEWAKiEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUABKAgQCjQ0sRuYgndHr8Pj+nZ950jhRMxa0dofU6PXzlH5nxjqPLhk+trX0cszFKzafSH2bX4jLnKyfOvmup86Ire8zrUPy/qHMnlZ7Tvs+J12y28P2vgPTeWXP5R58o+c/UACwqVAEBQAAABQQAVpYlGlZooKLWRSCwohCrUAoGwQKMzKJWkllGogjSCAsToHINsKCAobn3OWMlo96y1m4yr7Wx7RrlnycJ5gBQUSoK1ilNptSRUQNpMioAAACqAACgolWFVAEVyVlUsciw05VdrtpFBALBdicJwIhEQUQVAaQXgGVWAB6OSJ3CTuljQ0woAAoIAgAqgrUQrLWlaYrWmohplYhuIWRi1uIckQ6yOdrkrDmrV0xjjlXaxw9fjR3h7NHePm9TfSvYr6Nw+rhHxK1FduDNhi9Za2Yc41deflzlfOcnjTE2jTxsuKYn0fC34etfpel284x0rUlwTR4Mo+phk45qxMOddpWJhGK3AFAAACgABAFFidS9LjZdTDrqy+84b8ecK+36XyYnVX1nF5NqTGra1MT/1h+z8L3cTGvwniGq47b/zHd5HMvyK9/RnoH9Q9A/uXE/Vh6/Fc5npys7eSuHReb9p13K+tzxfz3E9qtP537R/S77qsS0xWhWWlWFVRgAGtiVRUVCgCKCgcnBs2coggbZFEGgQFBVVmq01GasK0zV01oRdLAy1ENabZq6XSs8rpdKjWjUtMnlNC8mjShpqIIzXJEOStXTGOWVc0Vc9Ku2E9Xnzvo7+Kr0sMah7tM7Pl9Re7tQ3D24vDW4hvT0YxytXys2q1ljzKkvq4Zh1M+KLx6PFtw5lerVn5cpXi8jjaeZlwzHufI3a7LX3en28yOnfF3de2N4ssX0sM3FNGJq5WO8ycc1YmrlY6yszVnTNdJWdMzDLcqIjTOkRRSqKIKIosRWhlYVEVqGoxWxtBAEZEllGoIKggAqqrNAgoCAAKiJQjTc0mGuJS3i8MiKqwSoCo0DKotESUaiAoAAAAQAJUEFiSyixiUYdI4mZZvs6RxyxLFdYzLDN7ukZZZvu3GJRluIiVYyDQkoAjQAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKoAJQEABVFd7jYZtMdm8Meco5bcvLhX2HTOD7W9I0+9wYaYqxSsP0HR6/Lj5n4Lxff5tnk/u7cQ83qHKrWvkie0b277b5cK+T02H2m7GfJ+Zda6lbJktipadPmpfnN+fmzr+ldBp+x6bXPezmoOT2gAoiiIAAoAAAAoICigBsG4s2rFFIyNKlBpDYigCIioiKjIsERtFQAFrLbcYqggAKANI1DSoKrICDSoByGzYJM7QAAEqgpQEVQAA2oqwqKDNUUctZ20rnVahpgXYKKhsA2kyghsaREBBQWCIKAoeiDkidtNxzsARQBQAQBFaUqw1EKxW2ohqMVuIa03I52tRVuKtyMWtRDkiG5HPKuWKuatXTGOGddzHT0etxqPbonrHzepy9K9SsOatdvraseeHxs654o4743qz1c4OOOf3nn5+PF/SHgcjiWiZ+i+L1Op9no9/FkteTkwTHudS2J8nPDh97Vs5kcFsbimjz5R68cq4pqxNXOx2mTGkZbERoUAEADabFABzYramGsO8Zz9ZX0XB5E0mNTO32nE5db1rG++n6Pw7b5eI/JeKaObbw9L2nb1d/oGT/tJ4fj6+pcT9WH1Os2c6M/0vk9Hh/1Gr9cfgFf5a/c2/DTtH9GveoqstRKtM1TYjQqKqJwCoovAbNoLs2IrdKTktFY9ZXhLeJa7XJpiwUpiiYtlid2tXvGp9zo7XLiXhjXbceb7mxlsAREaEFNmwNqFaWFYrUNNxmq1EKzWliGoxWohdKza3ELpWLWtLpWV8rWmpGeV0umuENSeVU5PKeU4OSKrELC1yVq5q1dMY5Z1zRV2sdHfCery7L6O9iq9Gsae7VHy999XJDcPXi8tckQ5Yh69cccnJFVmj0zXzK5eb1cF6OvarwbsOLXowy5dbJji8S8jkcbXufM34SyvpdNt4sjzMmGYn0l1L4p+p8zPB9rVs7OvONxTT7HC4vVjm45o47Ucri7Y5OOaOOauVjtMmdMTVh0lZ0zpl0TSI0zpEUWAVYEBYVpRlqFRlWoajNUaZXabBNojSCDMyiVoEUAWGmmaAKCIAIKiIo5KZJp29Y+pYWcx2qZOLf8AzKTH3O3HE4ebXs89a/8ANLrjMcnkzy3a7zJ5sXZjo9J9OTjn/q63N6fPGpWYtEx9cOmWrjC3u4a+sue3HC42PKah53vVWkE0CDImkGogKAAAACUEkElmUajEsyw3HHLEs32dYxLEsV0jMsM3u6Rllm+7cYlGW4iJVjINCIAjQAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKoAJQEAABz4cfmmH03B4vmmvZ6+nw5yj53X7fLhX6F07iewxxMx3mHr1h+i14+XDGP531W37Tbnk4+VyK4MUzuPNMdn591vqXsqWpW0eaXi6zZ5cbH0vBOm+13Y2zvXwdrTe02n1lHwb7v6DJxJEFUAFgRREAAUAAAAUEAAAAG4sFjbTccqANCxkRFggqKQZRGmQVJRGkhUA2A3EtRKptWQDgXYjQ0itKiqMiKLAICgCAnK8AACgIKpRBBQFAWFgqqyAjUdnLtYzkq7aYXZsRdm1Q2bFRFARREAARYIDQICAROnNE7WM5QVpgD3FDkFEAFhtWa1ENQ0xXJENxDccq3EOSIdJHO1qKtxVuRztbircVbkc7XNWkuzTHLthHmzzd3Fjetgx6jb36J6x8vqc/Su7WHZpG31tGPrHys67mPHt2rcO1qeaKS+1r0TLVeXjudmbzc3FvWe9Zh5+XBFo+lD4vVdP5bY9unbxxXmZen1nvDy8vAv3+hL4m/p+H2un6rtzXQvw7x645dS/GmPWNPBlp7vra98vHq61sP2OC2KfqefLB7MNjhtRxTVxsejHJxzCOfDtAAQIAoACoqxOpg7WD0OPl1730PF5Xl976XS7eLHx+t1eaV7OPnzFP5u8vofCMxyvE3Qt215eo8SY/8Amw+lt3ebVZ/S+Lho+z2TLj+KPxKvpX7oafm52j9le9BUGtqigyqgoqKuxAE4A5AOQclbzXep1KpZzGZnaJQRFAOBkUBQAUGmoVitNw3GKrcNMVpdKw1puIajFaiG4huOdWKtxVeGbV0sQvDPLXlIq1wzy15TyrwnJ5Tyrwcp5Viq8HLcQ5oq6YxyzrsVq7mOvo9GE9Y8e2u/io7MQ9uucR83ZebW4ckQ9WM7OFc1Yc9avfqx54efOuxWm3PXF5vc+nq02/8ADy55uO/Gnv2dC+GY32eTqum49eHbVsdW1HBakW9YfF2a+8e7DLtXRzcSJ7w86/FmJjs+dt1Pp6N/pxXTvg7/AMrr2wPFlhw+jhujr2wz9Thtin6nDLB68NkcM49OOafY43F3xycU0YmjlcXeZOOaMTVix1xyY0zMMcNys6SYZbiECqLEUPcVRmtKjNaWGoyoqCCiAJKKyMtAAA1CqyCikiIFVkBBGgUahY7EZbjJkj/flyTmy2jU3mY+pqXLjjli4Yc8+WOKGiFUAASUAZlFiA0AAAJQQBnaKjKNRlmWWowxLNdYxLDFdIxLEsukRhm9q3GJGW0lEqsg0IlARoQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUAEoCAA3Ss2lZOS3iV7XD40zMdn3vSODGotaO0PrdFq5ylflvGOo8uGU5fU1jTktauOs2tOoh9i3jm/J+Mv3spJ7vjesdSikXvM/XqH5tyuRbk5LXmfe+D1u3zZ8P3fgfTfZ6vPZ+UdYeB+gAAAFBYEURAIAoAAAAoIAAAA5Ky2rFIVqMi7AQEEBBUZGoCKzKIoAAKoKNMgou1EVYWI0qsqq+yICKoAoAgCgCAcG1ANguzZyiKpQEUBVaZUCjdbLGbOY5Ra5hsgbNqcG12vJwAAoyChsBEUEBE5AIQWs6UrlGnMAAFURRUrcNQsYrcQ3ENxzrliHJEOsjjWockQ3HO1vTkiHSOWVctauWKOkxcMsnYpjd3Fh3p6deDx7c+I7+LBqXfrXUREPo6cJHyt2dyrnrDt46d31emw5seHbeJX0HT+FbkWiKxud+j9X8P+FZ5URky1jHEfXG9vR4r1k6LpvT4n1/9OeGf+IdVPN6YfN6fVPAPT+R7S9KxHnnUzuYjHH1+vd+I9V6Lbp970vNfNF5iNTE7h4PDOt/8Rx2YbZ97DGcV7v9S+C4+F5YbdN+5nbzHzeTD3cE4o97O3ROa/P4bPSOvbjY7esOtbgYZeLZ0+NezX1OeLpZunU9zzcnTq9+7wbemj6ejrL6Ojk6fMekxLp5ODePc8Geh9PV1UvDp341o9zr3w2r7nmy12PoYbZePViMVrTqGNTDjxXeZS+iCLEAFUSUFAHNjtqXo4s0x73fVlw8u/DmO/XkdvV9l4E5G/FHQ4mfXqPD/Vh7Lt+7fo+Zlp/zH5RX+Wv3Q0+ZO0fcveiCKLBdtKzRRFAFVBQDZwhs2cHBsANgbEAFQ2CACgAK1EkZrkhuHTFzrcNNxzrUQ1CsVuGohqOdcjUQ3HOtxDcVbkc7W9Hla4Y5b8ppeGeWvKeVuRPMeVPKHJ5TRwcuSKOWKumMcsq7NKu5ij0enXOzx7b6V6FY1Db24vnZNw5Kw9OE7OVc9YdvHXb6fTY82PLsr0ePii8xEvc4nT/PbWn09mc1a/7M9Lo+32T6vobeGs+bi3z4sO4rrzPluX0HlU88+y+jv1fP0ddo3+fXll6y8Pr9b4Pv0Y69mOF4s5fMZuLatrRMTEx2mJdK+KYebqOn8vrHztez2rhtjcM4qz61h8zPX7V6sc+Ozr34tJdW3Ch5M9Hd69fUWOpfg3jbqX4d4/3Xkz0voaupxvDqX40x7nXtg+x5Mtb3YbuXBbDLitilwywerHZ2cM45cc43C4u+ObimjjmrFjvMnHNWZhiukrEwjDcoCtCoqiK0jCqsQVpBBQSgzMixk2yooKCLCqgqoIACoSDINBANgyqr6IsNL7MhonqGheEEZVEFgyLAFABEENipMptlWWUaiMylajEsSzXWMSwxXSMSjLcYlmWb2rcYkZbSURWQaESgI0iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQACUBABYjcvT42Dcx2ddc5rjvz8uFfX9M4XntXs+5wYoxUiIh9/o8PLha/BeLb/Ps8rt1eB1fqFKVmsW+jV235+XC/m+f0Om7uoxkfl3Uudfk5Zjf0YeW/NZ5ebPKv6X02qatOGE9oDDuAAAKCgbVKgCAoAAAAKACAAAjmrO4WJk0K5qbUNgIiKmzYrKJWoEis7EEBVBCGgAAUVYaZVYGWlhplVWILCiggAAJs2KggCiAKAbNgu2tiCKnCqIbWF5QaUAZckT2a3LTFim1Q2bA2bANgbTYAKC8gIACCCCqEg5Ky2rF9KDTIICg0sKzW24huOdckNQ3HKuWG4dI5VuHLDccsnJDljTri45OaunPTTti82bs0mu3oYr44evVY8O7G2O7XLjn3w562iX0MM8Xzs8Mo5q2h2ceWIl9DRtmNjybMLZXtcDq8cPJF4nvD6PB486nx4iMPInyR6ReZl6epw6PrOPteL6PV0HiHV+HT9zeLy7nK/iZ1bNxL4Jx8ed9pmKz+7895XUL8rJa+S0zMzLx6NXTdBjsw1W3z3m16fEvFOr8Wum7v4Jw86+ZwzmjW9vPs3c5V48NV4jitnpH+861+XSPSXkz2x6cNFrpZOZv3w6V+T9sPFnt5fR1dPxw6054n3uC+Xfvee58vbhrssde2RwWtFnnysr14Y2OGYp9UOO1aS42R6MbXFOKjjtij3OdwdpsrE4vthn2bHldZmzNGfKzw1KmkRoQosS7NLtYVjOOxXI+y8CZP+1nh7+58L9aHbzeleTLD/M/y/PKfy1+5t552j3Zd6IMqEBYloaBlQRQABdm1A2CbNpyGzZyG12vIbNpyIAhAKsCEgLDUEZrcNxLcYy5ckNtzs41qG4bjFabhtiuSIbiG45VyxDcQ3I41uIb8rbla1pfK3xWeV8rXlWRm5JNWfIcEyPKeUXlyVhzxV1x4csq56Vd7HX0erXI8e2uy3D1Yx4q3EOasPVrkccq7NId/Bj3MPs9Jj64vHtr6bh9PnJNdP0voXQqZpp5667d5eDxjrLq1Zcd4/Wf6c8Nm7fjL2vD9IxYMWHHGOlIisOrk6dwbY7Vvhjy95l+Ew37sc7ljnebeX9W2dJ0+euYZ4y4zHh+OeKuidOwZ75cOSLRO4n7Jh+ZcnHiiZ8vul/Q+h2ZdT0OGW3Hi8cP4l450+vpPEtuGq843Ll51617uvasQ8e7HHmvHha4piGJh4ssXfGs6hxWx1lwyxxdccrK69+PWXVvx6vNnrxezXuydS/Gj6nVtxo90PJnqj3a97rW40utfjT9TzZant17nXtxpiPRwThn6nmy117MNrgnFP1OK2OYcbi9OOccc0cc1c7HaVNM6ZblFPQFEVosqLDROWAUNpsAFRBYgllBYJyKp68skKCgiCwGRVRKqCqNQJVBFWFRqFX2ZFWJeQUQYWMkisbBQTkDZ6qjKeqibPVWUmU9WoiSnq0zMszLNajDMs10jEsstxhGK6RiWZZajAjaSzKNICiJQEaRFAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQAEoCADu4MMzMPpeBxJtMah7Onw5sfK6/dMcMn3vA40YqROnrRD9Frx8uEfz/qtnn25V5vUudTj45pW0ebXeX5f1bqU5rWpS3bb5XX7rPux+i/0/wBJzZss/N8+PkP2QAAAAKAAsBVEZAgCgAABsFBAAARqJ0FcsK050FqCIqbBUQVGWWl2gICgCgiqAACzuNDTKtQRlVaT0UGVVo9FBOKm0mRfQA9EADaLwAcAQ9AXgAFhdjKgKKgqnoNQvqzVD1RYlybWcs0F9WQPU4BfU4XabPU4BOKcC7X1APVDaJ6hsPVRDiqC+ognqLvTlidrOWcl2u1YQUVYkGml4rFaiYbizcYsXzQ1F4alYuNbjJH1tRkhuZMXCt+0hYzQ152LrrUZ4+xv5TEe9qZsXTascuG45mmptYvT1yRz4j3uavUoj3uuPU8OOXR2t/Odd7lzR1WsOk6rj3ccuhtPnvLT/ehzV67eY3uHTHrs56cueXheN9eHLXxBET3iHPPXsX1fm74+I+jz5eE2WcOG3XqWrPl7OGet2nyz53LPr7fd0w8L47xwZer3t/vuD5ztNY3Zwy6u293qw6DGYz0cNuo3n/ecU8+8/wC9Djeot93ox6PGezM8z/icU8qZ97F2uuPT8ezjnlSxPJ+1i7XWaY455G2fbsXY6zUntftScsfWlzWa2Jys+1+1m51ua09onnZ8zcxZ8x5ktq8J5k2nq1wiHFBuJIVyxZ9h4Et/2u8N/wB04X60N8+lcMsf8x8THT+txER8j/OP3X5B1v4P84/d4Pt8/R9f9m10+Qdb+D/OD5B1v4L84/c+3zP2bWfIOt/B/nB8g638H+cH2+Z+zaz5B1v4P84/dfkHW/gvzj9z7fMvS6z5D1v4P84/c+Rdc+D/ADj9z7fNP2XUfIuufB/nH7nyLrnwf5x+59vmfsuo+Rdc+D/OP3X5F1z4L84/c/aMz9l1HyLrnwX5wfIuufBfnC/tGZ+y6z5F1z4L84PkXXPgvzhPt8z9l1nyLrnwX5wfIuufBfnB9vmfsus+Rdc+C/OD5F1z4L84P2jM/ZdZ8i658F+cHyLrnwX5wftGZ+y6z5F1z4L84PkXXPgvzg/aMz9l1nyLrnwX5wfIuufBfnC/tGZ+y6z5F1z4L84PkXXPgvzhP2jM/ZdZ8i658H+cfufIuufB/nH7n2+Z+y6j5F1v4L84/dfkfXPgvzj9z7fNP2XWfI+ufBfnH7nyPrnwX5x+59vmfsus+R9c+D/OP3X5J1z4KPxj9z7fM/ZNV9qvyXrvwUfjH7nybrvwUfjH7rOo2J+x6vlWvYde+Cj8v3a9j174KPxj91/ac2f2HQey6/8ABR+Mfu17Pr/wUfl+6/teaf8Ah+i+1PJ4g+Cr+X7rrxB8FH5fuv7XsZ/8N6f82v8AtD8DX8v3ai3iH4Gv5fuv7bsT/wAL6e/NfP4i+Cr+X7r7XxF8DX8v3X9v3fNm+E9N8q1GbxH8DT8v3Pb+JPgafl+7X/iG6e7P/hHSX2rXynxJ8DT8v3PlXiT4Cn5fuv8A4juT/wAH6T5VflXiT4Cn5fufK/EvwFPy/c/8S3fNP/Buk+VPlXiT4Cn5fufKvEnwNPy/df8AxLef+DdJ8qnynxJ8BT8v3PlPiT4Cn5fuf+Jbl/8AB+k+VWOX4lj/ALjT8v3bjm+Jo/7jT8v3WeJ70vgvSX2rdeo+J4/7hj/L93JHVfFMenAx/l+7c8X3xyvgHQ5fNv548VfAYvwj91+efFXwGL8I/d0njXUsf/pzoPlkvz34r+AxfhH7tx17xZ8Bi/CP3bx8e6uM3/Tfh99sm48Q+LY//t+H8I/dz08U+MKTuOn4Pwj93pw/1P1utzv+lvDb7ZPSxePfHeCYmnT+N/5f/wBJ7PG/i5/Ezif5XB4f/k//AE3l6nxzqeplmyd31Oj8N0dDZdXPo9T/APrl/FL/APZnTv8A5X/6bq8n+M/8UOTuJ4PBrExrVKTH/wD28GHWZ45S8Prbdue3C4c93znJ8fePeXXWXhYJ/wCn/wCk8m3iTxfb14GH8I/d9jD/AFL12Gua8ZJH5rd/pzoN+y7M/Ncq4p6/4sn/ALhi/CP3Ynrniv4DF+Efu45eP9ZlUn+mvD57ZJ89eKvgMX4R+6fPPir4DF+Efu5Xxvqqv/6c6D5ZJ88eKvgMX4R+6fPHir4DF+X7p/4z1DX/AOneg+WST1bxT8Bj/L93HPUvFE/9xx/l+7F8W6itTwDoZ7ZMTzvE0/8Acafl+7jnl+Jfgafl+7F8T6iuk8F6Oe1T5T4k+Bp+X7sTm8R/A0/L92f/ABDc3PCOlntWZv4in/uNfy/dj/tB8DX8v3YvW7q3PC+nnzYmnX/ga/l+7E4OvT/3GPy/di9VnXSdBpntWJ4vXJ/7lH4wxPC63P8A3KPxj92P2jOuk6TXE+Q9b+C/OP3T5B1v4L84/dPts2v2bWfN/W/g/wA4/c+Qdb+D/OD7bJf2bWfN/W/g/wA4/c+Qdb+C/OP3Pts0/Zta/IOt/BfnH7nyHrfwf5x+59tkn7NrX5F1z4P84/c+Rdc+D/OP3T7bI/ZdSfIuufB/nH7nyLrnwf5x+6/b5n7LqPkXXPg/zj9z5F1z4P8AOP3LvzP2XUfIuufB/nH7nyLrnwf5x+5d+Z+y6j5D1v4P84/c+Q9b+D/OP3Ptsz9l1HyHrfwf5x+58h638F+cfun22R+zaz5D1v4L84X5F1v4L84/c+2yL0us+Rdc+C/OP3PkXXPgvzj9z7bI/ZdR8i658H+cfuvyPrnwX5x+6/bZn7LqPkfXPgvzj9z5H1z4KPxj9z7fNP2TWnyLrfwX5x+58i658F+cfufbZr+y6z5F1z4P84/c+Rdc+D/OP3Ptsz9l1HyLrfwf5x+6fIet/B/nH7n22dP2XUfIeufB/nH7nyHrfwf5x+59vmv7NrPkPW/g/wA4/dfkXXPg/wA4/c+2zT9l1HyLrnwf5x+58j658H+cfuv2+Z+yal+R9c+C/OP3PkfXPgvzj9z7fNP2TWvyTrnwf5x+58k678FH4x+59vmfsmr5HyTrnwUfjH7nyXrvwUfjH7n7RsT9j1fKr8l658F+cHyXrnwX5wftGZ+x6k+Sdc+Cj8Y/c+Sdc+Cj8Y/c+3zP2PV8qnyTrnwX5x+58j658H+cfufb5r+yavlU+Rdb+C/OP3PkXW/gvzj9z7fM/ZdZ8i638F+cfufIuufBfnH7p9tmv7LrT5F1z4P84/c+Rdc+D/OP3T7bI/ZdR8i658H+cfufIet/B/nH7n22R+y6j5D1v4P84/dPkHW/gvzj9z7XI/ZtZ8g638H+cfunzf1r4L84Ptcl/ZtZ839b+D/OP3T5u618H+cH2uS/s+tPm3rXwf5x+5829a+D/OD7VfsNafNnWfg/zj9z5r6z8H+cJ51+xwT5q6x8H+cJ809Y+D/OE86/ZYp80dY+Dn8Y/dPmfq/wc/jH7p5l+zh8z9X+En8YZ+Zur/Bz+MJyvkh8y9W+Dn8YPmTq3wc/jH7nK8J8ydW+En8YT5k6t8JP4wcnEPmPq3wc/jB8x9W+Dn8YOVPmPq3wc/jB8xdV+En8YQPmLqvwk/jB8xdV+En8YBPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wfMXVfhJ/GAX5i6r8JP4wfMXVfhJ/GAPmLqvwk/jB8xdV+En8YA+Yuq/CT+MHzF1X4SfxgD5i6r8JP4wsdE6tE7+Rz+MA7NOm9ZprXC/OP3ejgnxBx/wCXgU/66/d2w354WPHu6LVvlmfL069W8U1iIjgYvwj92/nnxX8Bi/CP3er/AMR3+nq+bf8AT3QX14yeRyZ8RcrzefiR3+2P3ePPROrWmZniW/GHk2bctl5r6vTdLq6bHy68U+ZOrfCT+MHzJ1b4Sfxhz5ejg+ZOrfCT+MHzJ1b4Sfxg5OD5k6t8JP4wfMnVvhJ/GDk4PmTq3wk/jB8ydW+En8YOTg+ZOrfCT+MHzJ1b4Sfxg5OD5k6t8JP4wfMnVvhJ/GDk4PmTq3wk/jB8ydW+En8YOTg+ZOrfCT+MHzJ1b4Sfxg5OIfMnVvhJ/GD5k6t8HP4x+5ycQ+ZerfBz+MfufMvVvg5/GP3OTiHzL1b4Ofxj9z5l6t8HP4x+5ycQ+ZerfBz+MfufMvVvg5/GP3OTiHzL1b4Ofxj9z5l6t8HP4x+5ycL8y9W+En8YPmXq3wk/jBynlh8y9W+En8YPmXq3wk/jByeWHzL1b4Sfxg+ZerfCT+MHJ5YnzL1b4Ofxj91+ZerfBz+MHJwsdG6vH/c5/GF+Z+r/AAc/jH7nJcIfM/V/g5/GP3Pmfq/wc/jH7r5k8h8z9X+Dn8Y/c+Zur/CT+MJyeSJ8zdX+Dn8YPmbq/wAHP4wcr5YfM3V/hJ/GD5m6v8JP4wcnkifMvVvg5/GD5l6t8HP4wcnlPmXq3wk/jCfMvVvg5/GP3OV4h8y9W+Dn8Y/c+ZerfBz+MfucnEPmXq3wc/jH7r8y9W+Dn8YOTg+ZerfBz+MHzL1b4Ofxg5PKfMvVvg5/GD5l6v8ACT+MHKeWHzL1f4Sfxg+Zer/CT+MHJ5YvzN1f4Ofxg+Zer/Bz+MHJ5YfM3V/hJ/GD5m6v8HP4wvmPJF+Z+r/Bz+MfufM/V/g5/GP3PMnkX5o6x8HP4x+580dY+Dn8YXzp9nifNPWPg/zg+aesfB/nB5z7LFfmnrHwc/jH7nzT1j4Ofxj9zzn2eJ809Y+Dn8Y/c+aesfB/nH7nnPssT5p6x8H+cHzT1j4P84POfZ4nzT1j4P8AOD5p6x8H+cHnPssU+aesfCT+MHzT1j4Sfxg86/Zw+aesfCT+MHzT1j4Sfxg859nD5p6x8JP4wfNPWPhJ/GDzn2cPmnrHwn5wfNPWPhJ/GDzp9nifNPWPg5/GD5p6x8HP4wfaH2WJ809Y+D/OD5p6x8H+cHnPssV+aesfBz+MfufNPWPg5/GP3POfZYHzV1j4SfxhfmrrHwf5wec+ywPmrrPwf5wfNfWfg/zhftD7LA+ausfB/nB81dY+D/OD7Q+yxPmvrPwf5x+6/NfWfg/zj9z7TJPscD5s618H+cfufNnWvg/zj9z7XI+xwPmzrPwf5w1HTetfB/nC/aZJ9hgfN3Wvg/zg+butfB/nB9rkfYYHzd1r4P8AOD5u618H+cH2mSfYaz5u618H+cHzd1r4P84Ptcj7DWfN3Wvg/wA4Pm3rXwf5x+59rkfYaz5u618H+cHzd1r4P84Ptcj7DWfN3Wvgvzj9z5u618F+cfufa5H7PrPm7rXwX5x+583da+C/OP3Ptcj9n1nzd1r4L84/c+butfBfnH7n2mR+z6z5u618F+cfufN3Wvg/zg+1yP2fWfN3Wvg/zg+betfB/nH7n2uR9hrPm3rXwf5x+583da+D/OD7XI+w1nzb1r4P84/c+betfB/nH7n2mR9hrPm3rXwf5x+6x07rcf8Ac/zg+1yh+z61+Qdb+C/OP3PkHW/gvzj91+2zT9m1nyDrfwX5x+58g638F+cfufbZn7NrPkHW/g/zj91+Qdb+C/OP3Ptsz9m1nyHrnwf5wfIeufB/nC/b5J+y6j5D1z4P84/dfkXXPg/zj9z7fM/ZdR8i658H+cfufIuufB/nB9vmfsuo+Rdc+D/OF+R9c+D/ADj9z7fNP2TUfI+ufB/nH7nyPrnwf5x+6/tGw/ZNR8j678H+cfuk8Prnwn5x+6fb5n7JqPkXXPhPzg+R9d+D/OD7fM/ZNR8i678H+cfufIuufCfnC/tGxf2TUnyLrvwn5wfIuu/C/nH7p9vn8z9l0rPC67PrxJ/GP3I4fXYj/ZPzj9z9o2d+T9k1duD5F1z4T84/cnh9d+E/OP3P2jYn7Jq9D5H134T84PkfXfhPzj9z7fP5n7JqJ4fXfhPzj9z5F1z4T84/c+3yX9l1fI+Rdc+E/OP3T5D1z4T84/c+3yP2XV8j5F1z4T84/c+Q9c+E/OP3Pt8z9l1/JPkHW/hPzj9z5B1v4P8AOP3Pt81/ZsPkfIOt/B/nH7nyDrfwf5wfb5n7NrPm/rfwf5x+6fN/Wvg/zj90+3zX9nwPm/rfwf5x+5839b+D/OP3Ptsj9m1nzf1v4P8AOP3Pm/rfwf5x+59vmfs+s+b+t/B/nH7nzf1r4L84/c+2yP2fWfN/Wvgvzj9z5v618F+cfuv22R+z60+b+t/B/nH7r839b+D/ADj90+2yT9n1nzf1r4P84/dY4HW/g/zj9z7fM/Z9a/Iet/B/nH7v3/8AgB4GweI+u9R5PWaZ8U9Lnicni+ytERN4vM91+3zS9Lrr/9k="}},"time_used":418,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":360,"receive":58,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"jnn-pa.googleapis.com/$rpc/google.internal.waa.v1.Waa/GenerateIT","fqdn":"jnn-pa.googleapis.com","domain":"jnn-pa.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"172.217.116.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.youtube.com/embed/Ymge-qh3m4E","date":"2026-07-27T03:07:41.771Z","timestamp":1785121661771,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:20 GMT","end":"Mon, 21 Sep 2026 08:39:19 GMT"},"fingerprint":{"sha1":"2A:E6:04:0E:76:A4:02:27:67:28:31:4D:E5:61:19:26:CA:0E:32:84","sha256":"D4:ED:C4:F8:DB:31:8A:2D:35:15:01:14:C0:49:CB:47:FF:5B:CC:17:14:82:63:9B:A8:6F:61:4D:AA:E5:96:94"}}},"request":{"raw":"POST /$rpc/google.internal.waa.v1.Waa/GenerateIT HTTP/1.1\r\nHost: jnn-pa.googleapis.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\nX-Goog-Api-Key: AIzaSyDyT5W0Jh49F30Pqqtyfdf7pDLFKLJoAnw\r\nContent-Type: application/json+protobuf\r\nContent-Length: 1810\r\nOrigin: https://www.youtube.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://www.youtube.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":"POST","post_data":{"size":1810,"data":"[\"O43z0dpjhgX20SCx4KAo\",\"$vSI5IkZRAAYuiqQtDoreYoLA_Xcd6RenAEABEArZ1MRYh93gM0D4UPvC5hFxfbVL-vHY-IM1nLatS0aTPrRy5i74VcH25-sP4ktS6q86BUTkP9JDKP9dMw3TngAAARrOAAAAEfQBB-IAUpHgCuIEjLNAWNKv-irWGOjwsmHQPw_Saf51mc1iaE_oUkRIuLzE7fE6g1THwaJP4elxbspYbWDib2nXBDr8wxDVQUeiBpgiVT-xFdIMRGPgNl8FBHlTFU9pV9raU0u0eJf20JgcnO0q2T3UQzuUAs5YSov7j-_yLd87d5pqx9vcZHvoOlJwOBnhA6686cl0O3pscg62K7SVATh-E7CCDPRl8qrskVor1XH2_FyW0jNDs90q-qCa74em2bOy55dj86MtJXv1kZrLGzdcSuPQ1Xz4SAQ0DD0Ky5n7nwiW0BIz9IFVi0MqM3aCInkBOK7cbBL-D4c-0EiEI9GMHfnn3Jfc0u84Z-VuNS2uIw8yyHMOb61EBHOIynmrgSIbbx3N6WywwlYF3pJpNPJhBq2SgNJ4adkoieLAlRL2oA3vul-AzGCGY_1z1XtNLD4Z87YvVsUHP9mgcnPc1tVLMmyZAxLpC6Cy1WafJjTUr30CntBuoIblVx8kaa8WY1r6iXG-Q59NuwrJIW7yLKbNgXfc96SR71rKBCN_fav2UQolx58DX-lCTMIjgWdYbAT04ewHcw8-2t1o0UkbS5oXRMqr0NRi0jihQ6_1LnWo5PYuiupZmI1QbFZjqqJJ1HuFoqlPBk8OTH_RYqq4uwe0IvJobmixXkl909riQs11Pa4S_LqKYRu-v7wrgVFocWzFTSn5lBygZJOCI_rLp97VC65uJ67lkzLVpvaqUB823L31OaJmc1ixhatzPfq4hO4xV78paHkHkzRgJjWVXNPqp9EMDFy9BvRk4RUzV6jXi1Rwoke2u8grOcFP2KVbC3JW75TGCZXcYOdl5zFeOFsSI5eUKPWSoKAXWn2f8143w2nZXBlIicWOyMyJWVbzXHzN4utYrG-y8XJUjNQhI6tihH2i1cLFFuchIxU8IaRyyOYNtx3rZMq88fSC2ja6PgAEvU3nowwwoMa6K8zvuT_I77s3HQhyCNKvcc2w-8_EONQlb9IH0YPOoa4buqs0GtC4LGK1USwXbJtctpO2_P9rSX-HCgWShr4IWxVxg-M5Jb8VFvhOiVy_wl0JeLyKiGo9DNPNVtnpk9mObEtQKO5E5EZJ8MZfQULcf5fhQ9nd8q6_mQ15tIx2c_5yCS4m2O8fgpToHUXhSiWIL3PCS-Q5wSMgyjK9RPWTx-C9BH_oJO6vE0eNFmlxWlneW13NsHIdq_2ZUeRXJVPxOv5khG8FJxjHooVjaYt4SqqkYHTKOdWWY3-GYHTsMJ4pIGTsACMI6igM7uT4XfQGqXKor9bgfl1mlls8eKZVEZ8evooUanqi-UZgomGjf08aspbs_M7opdmtEE5WzXNWLVtj1thggQb677qzAOlKuxz-15Ka0oj1CYsFTR7Az-e6YiJnIJCWvmJQwFdzjwhb2wd7cwJeS62GBC9YDuHilstoVGfRhPgvb73t7V8jiB0L1rEmoNB7XfyRf6VqyizYpkVxGZnIQlKGl62o6cSyeALNVdmHgOdMJEcuufxdHtVrtMlwj86YT9106jvX3GofYpzC9GdJZKPxO-oIb8AeekmvqZP2IncwXYfGLxXYw5ZIqr4b_eX6PdCnY8rR-Sr1PaQsEVNFPfWKqsPDdIm1XPcywqByRp10kg\"]"}},"response":{"raw":"HTTP/2 200 \r\ncontent-type: application/json+protobuf; charset=UTF-8\r\nvary: Origin, X-Origin, Referer\r\ncontent-encoding: gzip\r\ndate: Mon, 27 Jul 2026 03:07:41 GMT\r\nserver: ESF\r\ncontent-length: 118\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\naccess-control-allow-origin: https://www.youtube.com\r\naccess-control-allow-credentials: true\r\naccess-control-expose-headers: vary,vary,vary,content-encoding,date,server,content-length\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":98,"size_decoded":662,"mime_type":"application/json+protobuf; charset=UTF-8","magic":"JSON text data","md5":"9046a6914396e9979542a96920cd3ed8","sha1":"7d29c9805c7c5d164c77a90c71bcc07100b7fca1","sha256":"1bad9e9f151efb48c2c74cc7538922677f0c93f630168c388c6774f25a96796b","sha512":"3a90a40b24f40519e2e4acb286682461bfa48611d8992d267e5b9fd27893277ebfdccc5d162e2bdba165d3b6e91b8d2ff9f46f2e638bc45d7c8347a196c9db2a","ssdeep":"","tlshash":"26b0123029d80401741c9d04c387da9f00c204f9dc8556e006f623d10544b2e51841ed","first_seen":"2026-07-27T03:08:23.022562Z","last_seen":"2026-07-27T03:08:23.022562Z","times_seen":1,"resource_available":false,"data":"WyJ3M2FKYkJRNnhSRHg2elI4bFgvdUZZWERlUlFKWGVoaW45K3VRZytURU04YXB0R2hwRWl1OHo0cFRPT0tHcVNLaWVIcDZrTXg0ZEFrYWRnOTJXaEQiLDQzMjAwLDEwMF0="}},"time_used":20,"timings":{"blocked":-1,"dns":0,"connect":0,"send":1,"wait":19,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/blue-oval.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.199Z","timestamp":1785121660199,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/blue-oval.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/css/main.css?v=1684946825\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:40 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 350111\r\ndate: Mon, 27 Jul 2026 03:07:40 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":350111,"size_decoded":350378,"mime_type":"image/png","magic":"PNG image data, 1150 x 1150, 8-bit/color RGBA, non-interlaced","md5":"3c7d6678c0edbd42315b371dbdce2c68","sha1":"71d90ac7870ebab09be21fd3410dc0b790676a1a","sha256":"ec19128c6af96f19b5f93392e20b8ce596ca6cb8c4953a18eb65cc86d1d78603","sha512":"61aa469168cbe03e85c35d31738e264a9ad60c21dfe9a8ad1dc9db678010bf1b7ebede23c92deb4e656d484ed72b77ad8118481f48e5dab6c869a937fd1a50f8","ssdeep":"6144:Dza/JAl/f2rF5ogMQb5FrVaTboXD8S0V4DrrkTS9HkjuRd2Pydskc:Dz0ql/yH5F9SmPYSc4Sync","tlshash":"f374239ef5e2e47b7f5448bf899e048272d8392f1590957ecac4c4cb8e45cb893901bb","first_seen":"2025-05-27T13:16:54.717604Z","last_seen":"2026-07-27T03:09:30.365173Z","times_seen":4,"resource_available":false,"data":"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"}},"time_used":358,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":104,"receive":254,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/trustpilot/trustpilot-stars.svg","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"lazy-img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.241Z","timestamp":1785121660241,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/trustpilot/trustpilot-stars.svg HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:40 GMT\r\ncontent-type: image/svg+xml\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 364\r\ndate: Mon, 27 Jul 2026 03:07:40 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":1280,"size_decoded":677,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"b95d32e32cbfcacf1bd7c9d04ee09be8","sha1":"559b79a9a76fcce93b18ab7bc4c4dc143c2a635f","sha256":"ada3ea807576dd5ed0ec0dba9c5848bf7ddef126f0aa55efb89dce7d92ee14d8","sha512":"2dd0fc9eaa7471015c74686f5b754109f3199b715b8bb9fdca176379b82bf66f8f61c206ca4eadadb8de71266a5b5c87efb3bb38537e2e8c190c2083b2cda830","ssdeep":"","tlshash":"5321ddb047e0940a78a21e07cb3bb3e03c2720dd5b5545e93a4d799c9b42b474b1ab9d","first_seen":"2026-07-27T02:49:41.025411Z","last_seen":"2026-07-27T03:09:30.377976Z","times_seen":3,"resource_available":false,"data":"PHN2ZyB3aWR0aD0iMTI3IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMTI3IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj4KICAgICAgICA8cmVjdCBmaWxsPSIjMDBCNjdBIiB3aWR0aD0iMjMuODEzIiBoZWlnaHQ9IjI0IiByeD0iNCIvPgogICAgICAgIDxyZWN0IGZpbGw9IiMwMEI2N0EiIHg9IjI1Ljc5NyIgd2lkdGg9IjIzLjgxMyIgaGVpZ2h0PSIyNCIgcng9IjQiLz4KICAgICAgICA8cmVjdCBmaWxsPSIjMDBCNjdBIiB4PSI1MS41OTQiIHdpZHRoPSIyMy44MTMiIGhlaWdodD0iMjQiIHJ4PSI0Ii8+CiAgICAgICAgPHJlY3QgZmlsbD0iIzAwQjY3QSIgeD0iNzcuMzkxIiB3aWR0aD0iMjMuODEzIiBoZWlnaHQ9IjI0IiByeD0iNCIvPgogICAgICAgIDxyZWN0IGZpbGw9IiMwMEI2N0EiIHg9IjEwMy4xODgiIHdpZHRoPSIyMy44MTMiIGhlaWdodD0iMjQiIHJ4PSI0Ii8+CiAgICAgICAgPHBhdGggZD0ibTExLjkwNiAxNi4xNzUgMy42MjItLjkyNSAxLjUxMyA0LjctNS4xMzUtMy43NzV6bTguMzM1LTYuMDc1aC02LjM3NWwtMS45Ni02LjA1LTEuOTYgNi4wNUgzLjU3M2w1LjE2IDMuNzUtMS45NiA2LjA1IDUuMTYtMy43NSAzLjE3NC0yLjMgNS4xMzUtMy43NXpNMzcuNzAzIDE2LjE3NWwzLjYyMi0uOTI1IDEuNTEzIDQuNy01LjEzNS0zLjc3NXptOC4zMzQtNi4wNzVoLTYuMzc0bC0xLjk2LTYuMDUtMS45NiA2LjA1SDI5LjM3bDUuMTYgMy43NS0xLjk2IDYuMDUgNS4xNTktMy43NSAzLjE3NS0yLjMgNS4xMzUtMy43NXpNNjMuNSAxNi4xNzVsMy42MjEtLjkyNSAxLjUxNCA0LjctNS4xMzUtMy43NzV6bTguMzM0LTYuMDc1SDY1LjQ2TDYzLjUgNC4wNWwtMS45NiA2LjA1aC02LjM3NGw1LjE1OSAzLjc1LTEuOTYgNi4wNSA1LjE2LTMuNzUgMy4xNzUtMi4zIDUuMTM0LTMuNzV6TTg5LjI5NyAxNi4xNzVsMy42MjEtLjkyNSAxLjUxMyA0LjctNS4xMzQtMy43NzV6TTk3LjYzIDEwLjFoLTYuMzc1bC0xLjk2LTYuMDUtMS45NTkgNi4wNWgtNi4zNzRsNS4xNTkgMy43NS0xLjk2IDYuMDUgNS4xNi0zLjc1IDMuMTc1LTIuMyA1LjEzNC0zLjc1ek0xMTUuMDk0IDE2LjE3NWwzLjYyMS0uOTI1IDEuNTEzIDQuNy01LjEzNC0zLjc3NXptOC4zMzQtNi4wNzVoLTYuMzc1bC0xLjk2LTYuMDUtMS45NTkgNi4wNWgtNi4zNzVsNS4xNiAzLjc1LTEuOTYgNi4wNSA1LjE2LTMuNzUgMy4xNzUtMi4zIDUuMTM0LTMuNzV6IiBmaWxsPSIjRkZGIi8+CiAgICA8L2c+Cjwvc3ZnPgo="}},"time_used":100,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":100,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"www.youtube.com/s/player/7a7969c2/player_embed_es6.vflset/en_US/base.js","fqdn":"www.youtube.com","domain":"youtube.com","tld":"com"},"ip":{"addr":"142.251.156.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://www.youtube.com/embed/Ymge-qh3m4E","date":"2026-07-27T03:07:40.428Z","timestamp":1785121660428,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:25 GMT","end":"Mon, 21 Sep 2026 08:37:24 GMT"},"fingerprint":{"sha1":"D9:DA:81:30:78:3E:9C:6B:5F:9D:18:52:0E:BE:6D:52:2F:FB:33:E0","sha256":"EA:E2:2D:87:EC:9C:D6:51:9D:59:E4:13:35:3B:97:14:E3:DA:58:2D:1C:69:19:41:54:94:25:C3:94:17:F3:0C"}}},"request":{"raw":"GET /s/player/7a7969c2/player_embed_es6.vflset/en_US/base.js HTTP/1.1\r\nHost: www.youtube.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://www.youtube.com/embed/Ymge-qh3m4E\r\nCookie: __Secure-YNID=20.YT=OD2AqDJJ5KCd2FQHST0PP6nm_PUnOmOKKW_5n2sU3Uto7bgqmGZVezTy0eT5Ch1tu0JzTUorYggNVLrq4iBbxMgjKYV2etvlvytuKk4TF9mvut1pghwMJgUbuW8p4XdgsmD-iSy6zHQlRAhB-JrbMaRe5h5KsRdBUFWbvsxsNeH89V6KOOjVPuXhJsEWmIkl-LvE1HpLYRq5EZFVQYIOUs-Z8R5-lI8AE0vJVBeC2LGwT5UqkcaMp_COMwshp2EEUXAKmfxi2oM6g3JxUmkhMTmLxZ6-dd5IROcdvW6cdIjiQ0GqdQz5GxuAM3oOINnB4Vt5On4L4U_Gl5n7h1P_CQ; YSC=IgHKWvjgj0E; __Secure-ROLLOUT_TOKEN=CNnI7u31yczMShCAqsGz8PGVAxiAqsGz8PGVAw%3D%3D; VISITOR_INFO1_LIVE=mzxiTe7ERp4; VISITOR_PRIVACY_METADATA=CgJOTxIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgIw%3D%3D\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\naccept-ranges: bytes\r\ncontent-encoding: br\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"youtube\"\r\nreport-to: {\"group\":\"youtube\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube\"}]}\r\ncontent-length: 475313\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 00:08:44 GMT\r\nexpires: Fri, 23 Jul 2027 00:08:44 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Wed, 22 Jul 2026 04:34:15 GMT\r\ncontent-type: text/javascript\r\nvary: Accept-Encoding, Origin\r\nage: 356336\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":1597230,"size_decoded":476001,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (787)","md5":"ef473a4d0528fc7651d726fa43900068","sha1":"3b0d807a63c3244fc3fedeac020c2e81106185e1","sha256":"360a9b05bfc89caf69f220ef2473c20d1657318e21c4e0ffdab81e238b42dc61","sha512":"590afd923ebf8ce8da8def22bdf6149595740d96360cbf541954f52366a31fd5e3d3e6d8dd973044383f2cbad84c18f9f67ff69bf04c3dc6891b35b3eb29bb90","ssdeep":"24576:JddEUuuYnFCL4xFUnYNmJYqJNI5Dt/yV2hD4kf:fdhuuYnFCL4MVJBJO5DtKV2hdf","tlshash":"7e255b9977f2b46343a3f0e0286f018ab17f591454ccd46cb9a9e5f42da090e917bfac","first_seen":"2026-07-22T15:37:53.752532Z","last_seen":"2026-07-27T05:15:36.976554Z","times_seen":1370,"resource_available":false,"data":"dmFyIF95dF9wbGF5ZXI9e307KGZ1bmN0aW9uKGcpe3ZhciB3aW5kb3c9dGhpczsvKgoKIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwovKgoKIENvcHlyaWdodCBHb29nbGUgTExDCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwovKgoKIChUaGUgTUlUIExpY2Vuc2UpCgogQ29weXJpZ2h0IChDKSAyMDE0IGJ5IFZpdGFseSBQdXpyaW4KCiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KCiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCiBUSEUgU09GVFdBUkUuCgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFBvcnRlZCBmcm9tIHpsaWIsIHdoaWNoIGlzIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZQogaHR0cHM6Ly9naXRodWIuY29tL21hZGxlci96bGliL2Jsb2IvbWFzdGVyL3psaWIuaAoKIHpsaWIuaCAtLSBpbnRlcmZhY2Ugb2YgdGhlICd6bGliJyBnZW5lcmFsIHB1cnBvc2UgY29tcHJlc3Npb24gbGlicmFyeQogICB2ZXJzaW9uIDEuMi44LCBBcHJpbCAyOHRoLCAyMDEzCiAgIENvcHlyaWdodCAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKICAgVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKICAgd2FycmFudHkuICBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwogICBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgogICBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKICAgaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAogICBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6CiAgIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90CiAgICAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCiAgICAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQogICAgICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgogICAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdCBiZQogICAgICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCiAgIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uCiAgIEplYW4tbG91cCBHYWlsbHkgICAgICAgIE1hcmsgQWRsZXIKICAgamxvdXBAZ3ppcC5vcmcgICAgICAgICAgbWFkbGVyQGFsdW1uaS5jYWx0ZWNoLmVkdQogICBUaGUgZGF0YSBmb3JtYXQgdXNlZCBieSB0aGUgemxpYiBsaWJyYXJ5IGlzIGRlc2NyaWJlZCBieSBSRkNzIChSZXF1ZXN0IGZvcgogICBDb21tZW50cykgMTk1MCB0byAxOTUyIGluIHRoZSBmaWxlcyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMxOTUwCiAgICh6bGliIGZvcm1hdCksIHJmYzE5NTEgKGRlZmxhdGUgZm9ybWF0KSBhbmQgcmZjMTk1MiAoZ3ppcCBmb3JtYXQpLgoqLwovKgoKIENvcHlyaWdodCAyMDE1LXByZXNlbnQgRGFuIEFicmFtb3YKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKi8KJ3VzZSBzdHJpY3QnO3ZhciBJPSd0b1N0cmluZztOO2Ntbz10ZDtzcGxpY2U7MTk3MC0wMS0wMVQxMTo0NTo0MS4wMDArMTE6NDU7bGVuZ3RoO21hdGNoOy87Y2xvbmU7WDtjYWxsO3Rocm93O2Ntbztqb2luO2Fzc2lnbjsvdmlkZW9wbGF5YmFjaztodHRwOi8vbG9jYWw7SjtpbmRleE9mO3d3dy55b3V0dWJlLmNvbTtzcDs7cHVzaDtzbGljZTtHRztyZXZlcnNlO3NjaGVtZTtcXC5nb29nbGV2aWRlb1xcLmNvbSQ7cGF0aDt1cmw7L2luaXRwbGF5YmFjaztuO3BsYXllcmZhbGxiYWNrO2dldDtzZXQ7c3RhcnRzV2l0aDtzcGxpdDs9O2ZhbGxiYWNrX2NvdW50O1c7MTtWO3k3O3Vuc2hpZnQ7cnI7dW5kZWZpbmVkO3BvcDssO2luZGV4Lm0zdTg7Jjtmcm9tQ2hhckNvZGU7V3NsWmtDWm96bFlyNkVCME43LV93OF87cnI/WzEtOV0uKlxcLmNcXC55b3V0dWJlXFwuY29tJDsxOTcwLTAxLTAxVDAyOjMwOjMxLjAwMCswMjozMDslM0Q7RWw7XFwuYTFcXC5nb29nbGV2aWRlb1xcLmNvbSQ7bGV0O0VJO3M7Zm9yRWFjaDt5SXkxUGEyOzE5NjktMTItMzFUMTc6MDA6MzcuMDAwLTA3OjAwO2xvY2FsO2Zvcjt5b3V0dWJlLnBsYXllci53ZWJfMjAyNjA3MjFfMDhfUkMwMDsvZmlsZS9pbmRleC5tM3U4OywiIns7Oi8vO1VudHJ1c3RlZCBVUkw7ZnZpcDthMS5nb29nbGV2aWRlby5jb207V0Q7aHR0cHM6Ly9sb2NhbDttbjsvLztmaWxlO3NpZ25hdHVyZUNpcGhlcjsvYXBpL21hbmlmZXN0O2Ntbz1wZjtyO3JlcGxhY2U7cmVkaXJlY3Rvci5nb29nbGV2aWRlby5jb207LCx9L1wnO3hpJy5zcGxpdCgiOyIpLApXWixuMncsaGksazIsdjJDLGVVLE5pLHB0LEFpLGhNaSxFdyx1eCxkcix4aU0semIsbHgsTFMxLFZqLGVNcixENCxrMyx4MyxneixxVSxKRixTaixtYyxLYixPTSxxd3QsR2JpLFYyLERlLGFNLHRVaCx2NCxucCwkaXgsaEEscmliLHhsLGUxLFhNLHFoLEc1LHNULHBwLEkxaSxTd2gsSkEsUzEsQUEsbVcsS3AsUDQsWmUseUcsVDUsS1MxLFJQLE90aSxadFosbjAsVWl3LFcyLERYLGJwLGtLLGg0LHlpdCx4SyxMMCwkSyxzQSxOeCxwMCxZSyxTdSx1aGgsemgsbHAsbzIsVUEsek0yLEMwLE14LFFsLFZsLFIyLGMyLG41LFc5LHY5LGtVLGhfLEw1LFhELHEzLE4zLHA1LEg5LGY1LFlVLEkwLFNYLG0wLEs1LE9fLFpCLFVfLEVfLHU0LEM1LEI5LG8wLHo5LEZELGpDaCxDeE0sYTAsbkcsRlMyLFdILGJXLGh2LHh2LGVXLGdnLHdaQyxHeix0dixWVVMscmcsTkUsWXYscEcsbjMyLFNXLEp2LFdjcixiYlosT0ssbV8sUEgsWlIsVUsseWcsS0csaVcsRUssb3osdVcsQ0csZGcsbFcsRkYsTUUsUnosClFnLGNILEQyLGJhLHZXLGF6LFdXLG5uLGhTLHg5LGVFLGdlLHFILFhfLFZHLHRTLCQ5LHJlLHNWLGpXLE5ILGFQLHBuLFk5LEhXLEpTLElZLEFTLEtuLFBXLHkxLHVhLG9ZLGs0MixaMixpYSx6JCxsYSxDbixqRSxGXyx3ZSxNSCxRMSxhWSxEOSxiRyxrbSx4bSxMaCx4VWosWHQsWW0sSHksSjMsSXgsU0MsQTMsbTQsS2gsT3MseW0sRXMsaUcsUHksdUcsb3gsZEcsVFMsQ2gsd0csTWYsUngsakMsVm0sYXgsbjgsWE1pLGczVSxiNixrbixoOSxMOCxxTU0sZTYsWGYsc2YsTlkscDgsSjksSV8sSzgsdGpVLHU2LG9fLHNNMixkUSxOenIsenYsbDYsVHYsajYsQzgsQk8sd1EsUl8sY08sV3gsdngsa3ksaEsscWMsWFp4LEFLLG9oLHVrLE1jLHdtLGZULHBNeCxZTXgsbkssdkwsREQsSGJTLEpGWixMSyxJNFMsZWcsZ0QsQUZaLG1VdyxTTVMsS2NoLFBfaSxaYmgsVVViLHJGdCxQTywkVU0sRzcseUZaLGVYLFhULEUzdCxpYlUsJEUsckQsTjUsbzNiLEhMLGZLLEpILElXLEFILEtLLGRVcixTZywKeTcsRTIsWkQsekJ0LE8yLG1oLGRELGw0aixUenIsak1oLHE4LCRHLHBxLFlHLFNPLGdwLEJ6aSxKJCxISixmcSxLcSxDXzEsRXUsdWUsbzUsRmNiLGRwLHozLHdNUyxsZSxUMyxqTyxSQmIsQkosRjEsd3AsUU1VLFY4LFI1LG5WLFE4LGE1LFczLERvLFZqdCx2MyxubDEsV1dyLGJwTSxibixMVix2bHIsZyQsazVaLHRxLFg2LGhIUyx4aGIsTFcyLGVIaCxnbGgsc2wsSDMsRzVoLHJBYixzUDIsTlR0LHA0aSwkaGgsdDFVLEpxLG1JLElpLFlUVSxPbCxQMyxabyx5aSxFbCxmZWIsSkF3LElldyxtaHcsU1RyLG9pLGQkLGxuLHpILEtXVSxCMyxQZjIsam0sT3BpLE12LHckLHlBMSxFbGksaXByLHVNWixSaSxuVyx6SGksVFRyLHZZLGtxLHhxLFhtLHF0LHQxLE50LHNqLENmMSxGV1osdzRyLFlxLEoxLElzLEhZLGZXLFYxVSxBMSxTUyxtRyxLVyxPaixaYSxQWSxjQVUsYWVoLG5LaSx5TixFaixpcix1cixscixvcyx6TixiMHgsZGgsVE4sQ1csalMsV3hoLHZLYixCWSxGbSx3aCxNdCxScyxRTiwKVk4sY1ksYXMsbl8sV0ssaEN4LERpLGJILHZLLGt0LHh4aixMeGksZUNVLGdLdCxYZCxZWSxoYSx4dCxMXyxxdyxzMncsclgsTldoLFl0LEhLLElGLFNBLEFhLG1hLHlLLHAyaix1SCxZQTEsbEgsVEssSDBpLGpBLENfLEJLLEo0cix3WCxNdyxSRixRSyxWSyxJWDEsY0ssYUYsbmUsV1MsRFEsYkMsa2oseGosTGUsZXYsdGsscjcscyQsTjYscGUsWWosSFMsZmUsSmssSVMsU3YsVSQsRSQsaUMsdUMsQTR4LG9TLGQ3LGxDLFRCLGp2LHc3LE02LFJTLFF0LGFTLG53LFdWLG14aixLeFUsREUsTzBpLFBwMSx2VixYJCxxTixVeGoseTQyLCRmLE5OLHB3LGZ3LFlmLEpyLG15LGkwYixQVixPdCxaRSx5Rix1dyxkMixDdyxVdCxUVzIsYUUsY1YsVzAsRHIsdjAsa1QsYmIsaHkseFQsQ3BNLGc4LEJXaixYbixxWCx3MjIsdHksTXVDLFJDVSxRMmksajJaLGFYQyxuVXcsSUssQXksSyQsZ1osWnIsVXoseUgsRXosaWIsb0sselEsbGIsVFEsQyQsQjAsRm4sUkssVkgsYzAsbnksV0IsREksYk8sdkIsCmtSLEx5LGhPLGI1dCxnSixlXyxHMSx0TywkUixOMCx2VTEsc1AscHksazlpLEFPLG1ZLEt5LFVQLHl4LGlPLGhxaCxkSix6MSxUMSxqXyxCQix3SixSOSxNMCxhOSxiUSxrdSxMRixlRixnMCxYcSwkdSxlcTEsZ1VyLHBGLFl1LE5MLEhOLFg5VSxKYyxJZyxTRixBYyxPUixaeSxVUixLRix5YyxFUix1USx0WFUsJDN4LHMwcixkMCxyX2osRzl3LHpuLE5aaSxpUSxvZyxINXgsbFEsVG4sakYsQ0YsRnEsdzAsZkJVLEpfMixJQmksY04sYWcsV3osRG0sU19aLEFfcixtM3csSzByLGI5LHZ6LFA0TSxrTyxoNyx4TyxMUCxlOSxnMyxVM3QscUIsaTVoLHVEeCwkTyxyMyx0Nyx5X3Isc0osTkIscFAsWU8sR28sRVVTLEh6LGZQLEo3LEk3LEE3LG1ULEtQLE9KLFB6LFRaaixabSxvNyxkMyxsOSxqMHgsRjBNLEJaaCx6byxGMyxWZCxNWFMsdzMsY3osbm0sYTcsRDUsYk0sV1UsUnEyLFEwUyxWWDIsY19aLGtRLGFCUyxudjIsV19DLERFeCxiR0MsdnZpLGt6aSxoSSx4USx4RXcsTF9pLGd2dyxldywKTG0sJFEscUt3LHNjLHBtLFlRLHRXdywkRXQsZm0sT2MsUFUsWjUseUosRWMsU3csVWMsaU0scnZoLHN6Uyx1TSx6VCxqdyxUVCxCVSxsTSxDbSxNYixhSSxuWCxOZ3csY1UsVkosZ0UsZVosdHAsJG8sckUsWUtqLGZSMixTS0MsSnZaLHM5LElSMSxOaixISSxwWCxJYixBcCxLWCxaQSxQSSxPOSxVOSxpeSx1eSxkRSxLXzIsT0d4LFBXMSxRUixNaixjSSxDWCxuVSxxMSxiUix2cyxrQSxUcCxzeSxwVSxpR2osS1UsRXZDLGpaLG1yLER2LGc0LE4xLGFiLEY0LEJJLHdFLFZSLHI0LHVSLG92LEV5LFRVLGp5LENVLENXaSxCcyxGUix3NCxNMSxCZ3Isd0hDLE1XdyxRNCxjcyxuNCxhdixXYSxRejEsVld4LGhQLGtCLG45dyx4QixnSyxMNCxlaSxXTlUsREh0LGhUUyxLNCxPYSxnOWksdWcsaWcsWFdqLFRxLHFWWixqaSxHJGosenEsQzR3LG9VLGxnLGRLLFBhLEZqLHRFeCwkSHQsd0ssTWcsUTUsTmUyLGFVLG5CLGtWLGhtLHBXTSxMQixnYixYQSxxUSxHdyx0bSwkVixZVlMscmIsZUwsc0gsCnBCLEhiLGZCLFlWLElMLEhucixmMmosT0gsWk0sRUgseXYsaSQsSlNyLHp3LGRiLEkyWix1JCxTVjEsakwsQ0IsQVN4LG1IMSxLTnQsQmIsRkEsb0wsVHcsUGF4LGNiLFdQLFZ2LGtELHhELGVrLHlTaCxFOWIsaW53LGRIaix1X3QsR1cscGwsSFAsZmwsSmUselRqLElqLEFlLG1FLFNrLEtsLFRlYixPbyxQUCxqWTEsWlksRk54LEJlUyxDYVUsTUV3LFVvLFZFMixsMmoseXEsRW8sY1MyLHFyLHRlLER3LHZHLGtNLGhSLHhNLExSLGU1LGdkLFhhLHFELEc2LHRSLCRNLHJkLHN4LGEyMixwUixKUixJdyxtayxLUixPeCxQRyxadyxVeCx5QSxFeCxpaCx1aCxvdyxkZCxUNixqNSxDUixCRyx3ZCxNRCxRQSxjRyxuZixXZSxERyxiQixubWgsVzRVLERmUyxrJCxYOCx0RSxiaDEsJCQsc2UsTmEscGYsa1NqLHhmUyxIZSxMNFosZWFVLGdtMixKRSxJOCxxc1UsQUUsR1N3LCRmaSxLZixyM1osT2UsbUwsc3hyLHRDaCxTWSxQZSxaRyxweXQsWXNNLEhodyxVZSxJOTIseVcsRWUsdUIsU3NaLGROLApuYyxXUSx5M3IsYjAsRW14LHg1LExjLGV0LG9tTSx0aixYeSxkZjIsRzAsJDUsemFpLGw5aSxUR2gscWUsdXQyLHJhLHNoLEhRLEJHTSxGNGIsZmMsSmosUmFTLGE5cixxNCxubjEsdFgsck0scGksWXosZmksSWYsbVUsUzIsaGp0LEFYLHhZYixLaSxPMyxlancsWnEsZ25aLFAkLExEWixpWixYT2IscWZTLHQ2QyxyOVMsR3ZVLHNfMixOUWksajIsQiQsSDhyLFFyLEo5YixmOEMsTTQsVnIsUmYsYyQsSThqLEE5UyxTZmosRkcsbVl3LFA2Uyx3TSx1Zk0sb25yLGRZTSxpOFUsRW4yLHk5dCx6ajEsYWYscE9pLGw4dCxZZmksVFFNLGpfVSxuNyxGRGIsQzZVLFduLEJRdyx3T1osUmpVLFFfMSxNNlUsbnl3LFdCaixhODIsa0Z3LGhzdyxWNnIsYzlNLExCVSx4Y2Isa2QsZXNqLGhzLGd5MSxHRkMsWHh0LHRwYixxMGIsJGN4LHhkLEw3LGVJLHJLcixzaFosZ1AsTm10LFhOLHB4aSxZMFUscUcsR0UsSFRaLGZsaixKS2osSWxqLHRzLFMwdyxBS3IsbWNyLEtCTSxPVGIsUGtDLFpUVSxVY2kseUtDLApFeTIsaVR4LHVMMixveWgsZGN0LHpzMSxsbHIsVG1yLGpoTSxDa3gsQm1qLHd4WixNcEMsclAsc24scDcsWWQsUnN4LEhuLGY3LFFodyxKcyxWcEMsSU8sQXMsbTUsSzcsWlUsVW4seXcsaUosYWx4LG9PLHpFLFRFLGdYLEM3LGhBaSxCbixlQSxGTixlQVosTUcsUk8sVncsZ0V3LERjLHZBLGtKLFhMUyx4SixlSixnRixYcCxxZCxOZCxJRGgsUzJiLFlKLEhLaSwkNXIsSlQsc1diLElyLHJGLCRKLHRnaCxHN1UscTJDLHRULGZnLHNELEhBLFBBLFpjLFVELHlMLEVELGkzLHUzLG9yLGRGLHpfLFRfLGpKLENnLEJBLEZwLHdGLFFMLFd3LFZMLGNBLHZ3LGt4LGFyLEtoMixMcyxnQSxHaixQSUMsWktaLFl4LHBzLFU1WiwkeCxyQSxzWSxOayxIdyxmcyxKWSxJQixTUCxtdCxBWSx5SHIsS3MsUHcsRUVaLE9ZLFpfLGlLVSxVWSx5ZixvRWksemosbEwsalAsVGosQncsRjUsd0EsTWssUWYsY3csbnosV18sREosZDV3LGJULHZfLGtOLHpBMixoSix4TixMeixleCxnayxYeCxsRHgsVEQxLEdQLHRKLAokTixPdixQXyxaSixVdix5cyxkayx6UCx3TFUsbFQsVFAsangsQ3osTWdNLFJBUyxRV00sVmdpLGNIaixhRFUsRngsTUksbkdTLERPLHZSLGhNLHhYLExNLGVHLFhaLHEkLEdpLHRNLCRYLHJ5LHNOLE4kLFlYLGZNLEpNLElkLFNHLFFQLE9OLG1GLEtnLE0zLFpPLFVOLHZHVSx5VCxrM3IsaTgsdTgsZHksaGdTLHppLGw4LFRpLGpHLHJrLENNLEJSLHg4aixGWixNJCxSZCxRVCxWVCxjUixhZCxuNixXRix2RixMS1UsTDYsZWcxLGU0LFhKaSxxeixxdWosRzNDLHRPWix0WixzNVUsTnBqLHBKYixJbyxZdWgsSHFoLGZ0WixHXyxmRHcsJGcsUzQsSzYsT2ssUEYsSiRVLEl0aSxaSCx5QyxBWixFayxBJGksaUEsdUEsb28sbTh0LHp4LFR4LGo0LEM2LEJGLEtLdCxGdixwNixWQyxPcXgsVThaLERLLHJIaSxKSHIsdlgsaHoseGgsTE4sZVQsZzEsRUdDLCRoLG9HdyxkOGksaXF0LHR6LHUxcixsdGIsTlYsemcyLHBOLFRwYixIWCxORFMsWTJTLE9ELFNKLENlVSxmTixKeix3SngsajVpLFNULG1WLApLTixBeixPZCxQWCxSZ1UsRWQsVk9yLGF0dCxpbyxuWUMsb24sekwsWHYsVEwsalQsQlgsRlYsUU0sY1gsbG8sYzksV0UsYmksdkUsaHUsTEUsdHUsWnFTLHZZaixmRSxKdSxTTSxBdSxWUCxLRSxMSUMsZUVpLE9tLFBFLGdZWix0bU0sWmYsWDNTLEdIdCxxbGgscnFaLHNpcixpaSx1aSxvQSxUbCxDRSx3YyxGQyxNRixSQSxZbHcsUW4sSFZ4LGZvaSxKcVosQXExLG12aixhQSxuTCxQbjEsWlZpLHlxMSxFWTEsaVYyLHU2UyxvWU0sekViLGxvaixrTCx4TCxMTCxlJCxnNix0eCxCJHgsdzNpLEdmLFJFaSwkTCxyNixRaTIsVm10LHNVLFZuLFdqLEhqLGZMLG1mLEVVLGlqLHVqLGQ2LHpmLG9RLGdxWixsaixYWWgscWpoLEdOaCxDTCxCaixGZSxKeCx3NixQMCxNcyxBSixSUSxReixOSSxWeixVdE0sY2oseTFoLEk0LGFRLG5BLGJGLFRmLGokLFN4LGhELEVxaCx4cCxLeixpV1MsdW10LG9xMSx6a1UsTEEsZTcsZ2wsWDIsZHQxLEdlLHRELCRwLHJsLEF4LE51LFlwLElULEFELGlULHB6LEtBLApPUyxQVCxUaGksY3F4LHBMLFpQLFVTLHlVLEVTLGlGLHVGLGxGLHplLGo3LGRsLE1TTSxDQSxCVCxGMix3bCxNdSxhVCxjVCxRc1MsbjIsVzcsVlNoLGtGLGhmLGMxQyx4RixMMixlQixiX0MsZ3YsWHoscXAsdGYsdnRDLGh4dyxmMixKZixJeSx4dzIsU0IsQWYsbVAsWiQsVUYseUUsRUYsaTUsenUsVHUsakIsQzIsQjcsTGF4LEZ6LHd2LE1wLFJ5LFFFLFZFLGM3LGF5LG52LGJZLFd1LERiLEdLdCxxSXcsdEFDLCR3aixyYVUsc0ZNLHZ1LGtzLE5YaCxlbixnVixZSTEsSF9VLHFXLFhyLHRCLGZpeCxyVixzYixOVyxwdixmdixZcyxKQixJNixKYWksSHUsWmIsVWIsRWIsbzYsU0laLHVZLEFhMixURCxsWSxtd3Isam4sQ3YsRnIsd1YsTVcsUWssVmssY3UsQ25pLEZJMSxhNixXcCxEeCxidSx2cCxrWixoVSx4WixMMyxlVixnQyxVd2IseWFqLGlfYixYdSx6eFMsakZNLFNWLENIaCxGYU0sd0tqLE1BTSxSeGosUUZ3LFZBUyxjYXQsYWlNLG5qMSxtZSxXJGosRDZ4LEszLE9HLGJlcixQcCwKdmp3LGg3Mix4NncsVUcsWngsTCQyLHlCLGl1LGU3YixnajEsWFNoLG9xLEdCYixya2osekkscSQyLCQ2aCxsdSxqVixzU3csTjdTLHBTUyxGdSxIZVUsd0MsUnEsSVExLFMkaCxtNncsSyRqLFZCLGNwLFBDMixhcSxaZXcsTXEsVTZDLGZRaCxPZWksQWtNLFc2LHlrcixFalosaWVpLHU5VSxvancsRGQsVDdiLGQ2cix6N1UsalNaLGJTLENDTSxsUWgsdjYseEMsTHIsZXEsa0MsQjdiLHdTVSxndSxGJHgsTXZTLFI3VSxWdnQsY2tqLFgwLGFRUyxuZngsRE4xLGJ3QyxxMixHWix0MCwkQyxRRXcsVkh4LGNyaCxEWDIsdmZ0LGtkVSxuVHcsV2paLGFFdyx2VFosSDYsSjQsZnIseWssbWksS3YsUHUsaVksS3IsSSQsaFpyLE80LHhYQyxMalUsUDYsQTAsbWQsWmQsZ1RDLFU0LEowLGc3LHlvLEU0LGlTLFNxLGtRdyxlWnQsdVMsWDB0LHF6aCxHUWIsdGRqLCRYMSxyeUMsTjhaLGR1LEprQyx6WixsUyxSNixLYTIscDBiLGpxLFZvLElyYixZemksZnJDLENyLEYwLG1YYixLamksTyRpLFokaSxQYlUsClVYWixhJCx5eXgsbkQsV2wsaSRTLEVUaixvVGosRGssdW5VLHZsLHpaaixscjIsVDhoLENidCxCOGksdzBiLGhnLGt3LEZqaixSWmgsTEQsVmR0LGVSLFFLeCx4dyxnaixYQixXWWgsblJ0LCR3LHFQLFl3LHZSdyxlU2osaFMxLExZMix4MEMsZkQsWEJ3LHFQaSxHMVMsdF9oLCQwYixyT2gsczlDLE5KaSxJayxwQngsWVBNLEh5VSxKT3csZkl0LElJYixKZyxBT00sU1IsY3laLFBsLFp5UyxpeWksdWtoLG9SdCxQT3QsRXEsdTEseXUsZDBiLFVxLGxJYixvayxaayxVMFosaTEseU9aLG0wTSxtdixqOUMsT3laLENPaixCSnQsVEpiLEZZQyx3QngsemMsTV93LFE5YixWXzIsUlNDLGNPdyxhSVosV1hoLERMYixrbnIsYkZqLHZ1TSxUYyxoUXgseEx0LExYcixndUMsalIsQ0QsWE5pLEJsLHFScixHbncsdEZ4LCRMQyxyYzIsc2d3LE4wUyxwTnQsWVJ3LEhGWixmeVUsSmNiLEl5dyxTUnQsQWNaLG1MMixLWFosT0ZDLFBRcixaRnQsVUwyLHljMixFdXQsaUZVLHVxdCxvdTIsZExpLHpRUyxseTIsClQwVSxqZ2gsQ1FDLEIwaixGWDIsTUZ4LFJRVSxWRlMsTVAsUXUsVnUsY2wsbk9NLG5DLFdUaCxEQmksYlBTLGFrLHZPMixheVosYm0saEQxLHhCaCxMVGIsdnIsa29yLE9iLGRWLFlDLFN6TSxjNixIJGgsUW8sQjYsd3UsUiQsZGoselMyLEVSUyxYemgscUoyLHQ5aCxrYywkQmkscjdoLGgyLGVEYixYYixIUGIsZm14LEo3aSxJbWkscW0sZ09DLEE3eCxzN3IsTjNDLHhjLExDLHB6aCxaUGosS1RpLE9QMixyUyxOMiwkYyxTSloseTdpLEVPaCxpUFMsbUJiLHUzeCxvT3gsZEJoLFQzaCxqN2osQzl4LHBDLEIzeCx3enIsRlR0LFJEaixRNzIsYzdyLFdnMixoOE0seGJqLEhyLG5RdyxKMixmQyxMZ3csZTh3LGJtaCxWOWksTTliLGdRdyxYVVMscWNVLEdUUyx0d00sckkxLFMwLCRiWixOb0Msc0lNLFljMSxwVWosbW4sQTIsSG1TLGY1eCxKSWIsSTUyLEtDLEFJTSxtYk0sS2d4LE9YLE9tMixQTWosUHIsWm1oLHlJcixpbXIsWlYsVVgseTMsaW0sdW0sRVgsRVFNLHVpaixvUTIsZGJTLHo4MiwKbDVVLGJBLG91LFRvaSxqSWosQ014LEJvdCxkUyxGZ2IselgsTXdoLGwxLFRYLGowLENDLEJyLEZiLHdTLFFJUyxWd00sY0lqLGE1cixSdSxXM1osRGoyLGJYdCxrcGksaHlpLGJKLHZ5TSx4amosTDN4LGV5aixYSVosYXUsV2QscTkxLG51LEQ3LGJWLHRaTSwkalosdmQscnB0LGNjWixNbSxWMyxoQyxIWDIsZkF0LEpwVSxJQWgsUzliLEFwaixtanQsSzNVLE9YMixlaCxncyxYSixQeUMscTksUjhDLFVqdyx0QyxHWSwkMCxFb2ksaVhTLHJzLHNCLHlwYixwdSx1NGIsWTAsb294LGZ1LFRFMixqYjIsSkMsRjNiLFNoLG1vLGRqcixNWjEsSGQsUnlpLFFidyxsQXQsVlppLHp5MSxhQXcsbkF4LGNwdCxQZCxaNyxMcjEsdkFqLHlhLGVwWixrVWksRDF0LGdBaSxXcmgsR1UxLFhzaSxVQix0eTIsYlVVLHI2dyx4MVUscHNyLEVCLEhVaSxmdmksWXlpLEl2aCxTeXIsU1BNLEdYLG9jLFA5VSxtMVUsSWMsbFYselksamgsQmQsRkosS3JiLHdzLFUxaSx5NlosRUFDLE05LFBSYixSYyxpVXQsQ3UsCmNkLG9BdCxRYSxWYSx1VixUWSx3c2ksTXl4LE9VaCxkcyxScFUsYnYsQTZqLGQxMixhdlosbkJDLFcxaSxiNHQsRGdDLHZCMixCNFUsUXZpLGhMWixMMWIseGdaLGVMaCxnQnIsWGFTLGtQLGg1LHFhVSxHcU0senBpLHRpUywkZ0MsTGEsclBoLHNVUyxlbCx4UCxwYU0sZzksWFksSDR0LGZwaSxKUE0sSXBDLFNhTSxZYVUsQVAyLG1naCxPNEMscVQsSzFVLEdHLFBneCxaNHgseVBqLEVCQyxVZzIsb0JyLGRndyxpNFUsdWp4LHpMWixscDIsalVVLFRLdyxSTHQsUVVaLENndCxCS0MsRjF3LHdhUyxNaWksVmliLHI5LHNyLCRQLE5ULGFweCxuVnIsV3F4LEpKLHBhLGJCeCx2VjIsa3d3LFlQLGZhLEg4LHhRdyxoYmosZ1ZoLEo1LFIwLFhiaCxJRyxxSDEsR3dVLHRMeCwkUXgscm1NLHNMYixOYmIsSEJ3LFlIaSxBNSxtQSxKbXgsS2EsU2wsZk0xLE9yLEtxcixQJEMsWkJqLFVRaSx5bWksRVZiLGlCUyxaVCxpdix1QXQsdXYsemJyLG9WMixEJCxURyxqbCxDYSxHdSxCOCxGWSxqTGosQyR3LAp3OSxSRyxRWSxGcU0sTVQsQmJoLFJieCxjbWIsVlksYU1VLG5EaixhRyxEclosVkxNLFdjLGJsWixuTyx2RDEsa1cxLGJzLHZjLHhydCxrSSxlMEMsZ0R4LExFcixYUGkscW8yLGhoLEdXYix0azEsTE8sZXMsZ2YsJHJNLHJlUyxzalMsTl9oLFlvQyx0aCxIbEMsJEksQWV0LHJmLG1yaixLRWgsUGRaLE9sTSxOSyxwTyxabGksRURqLEhjLFlJLHU3dCxkck0samp4LENkaixKaCxJZSxCX0Msc0YsZk8sRkVaLFNzLHdQMSxNa00sbVIsY2ViLHlSMSxHRCwkcyxlMCx6RCx5UyxCdSxFZyxpcyxUWixVZyxpUlosdXMsdWFVLG9NaCxkRGIselVoLHR2aSxNMixqd2osRncsQ2gxLE1LLGlwLGpzLEZraixjYyxDTyxuSixjUmIsVjVoLGx3WixXZixkZixUZGosbHMsbiRNLFdMcixEYXIsTTVpLHYkaCxodnIsZXZ0LGckUyxrcix2ZixYZWosYmwsREwseHIsTEwyLHFlaSwkYXIsdVJyLHJFUyxzOHIsWWVpLFhTLHBlVSx0YixOTncscTcsZkdTLEpFYixJR3csU2UxLEFFaSxyNSxaZncsc1osT2Z0LHlFMiwKRSRNLGlmQyxLTFosdThiLFlyLG8kVSx2NyxmSixKYixBYixQZixWUyx6djIsVVosbEd3LGo4MixDQlMseVosaWwsVWFoLHdlVSxNWU0sUnZaLFE4eCxWWXgsYUcxLFcydyxEZWIsb1gsY0VyLFZaLGswaix6QSxFWixoZDEsbngsTDJNLHhlcixXcSxERixiVSx2cSxlZFMsYVgsT1osQ0osbGwsVEEsQmYsbjVqLEZTLEtKLHVsLGRhdCxYUXgsRzBqLFNhLFFaLHR0dywkZVUseGkscmpqLHNhaSxoVixOYWIsa2ksZW8sWWhpLEhjdCxmNmg7V1o9ZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG50W25dLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19OwpnLkQxPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG50W25dPVd9OwpuMnc9ZnVuY3Rpb24obixXKXtpZihXKWZvcih2YXIgRD0wO0Q8dloubGVuZ3RoO0QrKylrMih2WltEXSsiQXJyYXkucHJvdG90eXBlLiIrbixXKX07CmhpPWZ1bmN0aW9uKG4sVyl7VyYmazIobixXKX07CmsyPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9eDI7bj1uLnNwbGl0KCIuIik7Zm9yKHZhciBiPTA7YjxuLmxlbmd0aC0xO2IrKyl7dmFyIHY9bltiXTtpZighKHYgaW4gRCkpcmV0dXJuO0Q9RFt2XX1uPW5bbi5sZW5ndGgtMV07Yj1EW25dO1c9VyhiKTtXIT1iJiZXIT1udWxsJiZXU0MoRCxuLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6V30pfTsKdjJDPWZ1bmN0aW9uKG4sVyl7bi5wcm90b3R5cGU9RGl4KFcucHJvdG90eXBlKTtuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1uO2J0UyhuLFcpO24uVEI9Vy5wcm90b3R5cGV9OwplVT1mdW5jdGlvbihuKXtuPU1hdGgudHJ1bmMobil8fDA7bjwwJiYobis9dGhpcy5sZW5ndGgpO2lmKCEobjwwfHxuPj10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXNbbl19OwpnLkdiPWZ1bmN0aW9uKG4sVyxEKXtuPW4uc3BsaXQoIi4iKTtEPUR8fGcucWk7Zm9yKHZhciBiO24ubGVuZ3RoJiYoYj1uLnNoaWZ0KCkpOyluLmxlbmd0aHx8Vz09PXZvaWQgMD9EW2JdJiZEW2JdIT09T2JqZWN0LnByb3RvdHlwZVtiXT9EPURbYl06RD1EW2JdPXt9OkRbYl09V307Ck5pPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Zy5ycigiQ0xPU1VSRV9GTEFHUyIpO249RCYmRFtuXTtyZXR1cm4gbiE9bnVsbD9uOld9OwpnLnJyPWZ1bmN0aW9uKG4sVyl7bj1uLnNwbGl0KCIuIik7Vz1XfHxnLnFpO2Zvcih2YXIgRD0wO0Q8bi5sZW5ndGg7RCsrKWlmKFc9V1tuW0RdXSxXPT1udWxsKXJldHVybiBudWxsO3JldHVybiBXfTsKcHQ9ZnVuY3Rpb24obil7dmFyIFc9dHlwZW9mIG47cmV0dXJuIFchPSJvYmplY3QiP1c6bj9BcnJheS5pc0FycmF5KG4pPyJhcnJheSI6VzoibnVsbCJ9OwpnLlkyPWZ1bmN0aW9uKG4pe3ZhciBXPXB0KG4pO3JldHVybiBXPT0iYXJyYXkifHxXPT0ib2JqZWN0IiYmdHlwZW9mIG4ubGVuZ3RoPT0ibnVtYmVyIn07CmcuZnQ9ZnVuY3Rpb24obil7dmFyIFc9dHlwZW9mIG47cmV0dXJuIFc9PSJvYmplY3QiJiZuIT1udWxsfHxXPT0iZnVuY3Rpb24ifTsKQWk9ZnVuY3Rpb24obil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLFNVKSYmbltTVV18fChuW1NVXT0rK2tidCl9OwpoTWk9ZnVuY3Rpb24obixXLEQpe3JldHVybiBuLmNhbGwuYXBwbHkobi5iaW5kLGFyZ3VtZW50cyl9OwpnLkt0PWZ1bmN0aW9uKG4sVyxEKXtnLkt0PWhNaTtyZXR1cm4gZy5LdC5hcHBseShudWxsLGFyZ3VtZW50cyl9OwpnLlBaPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBmdW5jdGlvbigpe3ZhciBiPUQuc2xpY2UoKTtiLnB1c2guYXBwbHkoYixhcmd1bWVudHMpO3JldHVybiBuLmFwcGx5KHRoaXMsYil9fTsKZy5Vdz1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpfTsKZy55aj1mdW5jdGlvbihuKXtnLkdiKCJ5dC5hYnVzZS5wbGF5ZXJBdHRMb2FkZXJSdW4iLG4pfTsKRXc9ZnVuY3Rpb24obil7cmV0dXJuIG59OwpnLml4PWZ1bmN0aW9uKG4sVyl7ZnVuY3Rpb24gRCgpe30KRC5wcm90b3R5cGU9Vy5wcm90b3R5cGU7bi5UQj1XLnByb3RvdHlwZTtuLnByb3RvdHlwZT1uZXcgRDtuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1uO24uQU89ZnVuY3Rpb24oYix2LGspe2Zvcih2YXIgaD1BcnJheShhcmd1bWVudHMubGVuZ3RoLTIpLHg9Mjt4PGFyZ3VtZW50cy5sZW5ndGg7eCsrKWhbeC0yXT1hcmd1bWVudHNbeF07cmV0dXJuIFcucHJvdG90eXBlW3ZdLmFwcGx5KGIsaCl9fTsKdXg9ZnVuY3Rpb24obiwuLi5XKXtXPVcuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiYiKTtpZighVylyZXR1cm4gbjt2YXIgRD1uLm1hdGNoKC9bPyZdYWR1cmw9Lyk7cmV0dXJuIEQ/bi5zbGljZSgwLEQuaW5kZXgrMSkrVysiJiIrbi5zbGljZShELmluZGV4KzEpOm4rKG4uaW5kZXhPZigiPyIpPDA/Ij8iOiImIikrV307CmRyPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFc/IiYiK24rIj0iK2VuY29kZVVSSUNvbXBvbmVudChXKToiIn07CnhpTT1mdW5jdGlvbihuKXtuPW4uWDtpZighbilyZXR1cm4iIjt2YXIgVz1kcigidWFwIixuLnBsYXRmb3JtKStkcigidWFwdiIsbi5wbGF0Zm9ybVZlcnNpb24pK2RyKCJ1YWZ2IixuLnVhRnVsbFZlcnNpb24pK2RyKCJ1YWEiLG4uYXJjaGl0ZWN0dXJlKStkcigidWFtIixuLm1vZGVsKStkcigidWFiIixuLmJpdG5lc3MpO24uZnVsbFZlcnNpb25MaXN0JiYoVys9IiZ1YWZ2bD0iK2VuY29kZVVSSUNvbXBvbmVudChuLmZ1bGxWZXJzaW9uTGlzdC5tYXAoRD0+ZW5jb2RlVVJJQ29tcG9uZW50KEQuYnJhbmQpKyI7IitlbmNvZGVVUklDb21wb25lbnQoRC52ZXJzaW9uKSkuam9pbigifCIpKSk7Cm4ud293NjQhPW51bGwmJihXKz0iJnVhdz0iK051bWJlcihuLndvdzY0KSk7cmV0dXJuIFcuc2xpY2UoMSl9Owp6Yj1mdW5jdGlvbihuLFcpe2lmKFchPT1udWxsJiZXIT09dm9pZCAwKXtpZih0eXBlb2YgVyE9PSJvYmplY3QiJiZ0eXBlb2YgVyE9PSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkLiIpO2lmKEQ9PT12b2lkIDApe2lmKCFTeW1ib2wuZGlzcG9zZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuZGlzcG9zZSBpcyBub3QgZGVmaW5lZC4iKTt2YXIgRD1XW1N5bWJvbC5kaXNwb3NlXX1pZih0eXBlb2YgRCE9PSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IG5vdCBkaXNwb3NhYmxlLiIpO24uc3RhY2sucHVzaCh7dmFsdWU6VyxkaXNwb3NlOkQsYXN5bmM6ITF9KX1yZXR1cm4gV307Cmx4PWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIFcoayl7bi5lcnJvcj1uLmhhc0Vycm9yP25ldyBTdXBwcmVzc2VkRXJyb3IoayxuLmVycm9yLCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuIik6aztuLmhhc0Vycm9yPSEwfQpmdW5jdGlvbiBEKCl7Zm9yKDtiPW4uc3RhY2sucG9wKCk7KXRyeXtpZighYi5hc3luYyYmdj09PTEpcmV0dXJuIHY9MCxuLnN0YWNrLnB1c2goYiksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihEKTtpZihiLmRpc3Bvc2Upe3ZhciBrPWIuZGlzcG9zZS5jYWxsKGIudmFsdWUpO2lmKGIuYXN5bmMpcmV0dXJuIHZ8PTIsUHJvbWlzZS5yZXNvbHZlKGspLnRoZW4oRCxmdW5jdGlvbihoKXtXKGgpO3JldHVybiBEKCl9KX1lbHNlIHZ8PTF9Y2F0Y2goaCl7VyhoKX1pZih2PT09MSlyZXR1cm4gbi5oYXNFcnJvcj9Qcm9taXNlLnJlamVjdChuLmVycm9yKTpQcm9taXNlLnJlc29sdmUoKTsKaWYobi5oYXNFcnJvcil0aHJvdyBuLmVycm9yO30KdmFyIGIsdj0wO0QoKX07CmcuVGI9ZnVuY3Rpb24obixXKXtpZihFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSlFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLGcuVGIpO2Vsc2V7bGV0IEQ9RXJyb3IoKS5zdGFjaztEJiYodGhpcy5zdGFjaz1EKX1uJiYodGhpcy5tZXNzYWdlPVN0cmluZyhuKSk7VyE9PXZvaWQgMCYmKHRoaXMuY2F1c2U9Vyl9OwpMUzE9ZnVuY3Rpb24oKXt9OwpnLmpVPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4ubGFzdEluZGV4T2YoVywwKT09MH07CmcuQlo9ZnVuY3Rpb24obixXKXt2YXIgRD1uLmxlbmd0aC1XLmxlbmd0aDtyZXR1cm4gRD49MCYmbi5pbmRleE9mKFcsRCk9PUR9OwpnLkZoPWZ1bmN0aW9uKG4pe3JldHVybi9eW1xzXHhhMF0qJC8udGVzdChuKX07Cmcud3I9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi50b0xvd2VyQ2FzZSgpLmluZGV4T2YoVy50b0xvd2VyQ2FzZSgpKSE9LTF9OwpnLmNaPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9MDtuPVN0cmluZyhuKS50cmltKCkuc3BsaXQoIi4iKTtXPVN0cmluZyhXKS50cmltKCkuc3BsaXQoIi4iKTt2YXIgYj1NYXRoLm1heChuLmxlbmd0aCxXLmxlbmd0aCk7Zm9yKGxldCBoPTA7RD09MCYmaDxiO2grKyl7dmFyIHY9bltoXXx8IiIsaz1XW2hdfHwiIjtkb3t2PS8oXGQqKShcRCopKC4qKS8uZXhlYyh2KXx8WyIiLCIiLCIiLCIiXTtrPS8oXGQqKShcRCopKC4qKS8uZXhlYyhrKXx8WyIiLCIiLCIiLCIiXTtpZih2WzBdLmxlbmd0aD09MCYma1swXS5sZW5ndGg9PTApYnJlYWs7RD1Waih2WzFdLmxlbmd0aD09MD8wOnBhcnNlSW50KHZbMV0sMTApLGtbMV0ubGVuZ3RoPT0wPzA6cGFyc2VJbnQoa1sxXSwxMCkpfHxWaih2WzJdLmxlbmd0aD09MCxrWzJdLmxlbmd0aD09MCl8fFZqKHZbMl0sa1syXSk7dj12WzNdO2s9a1szXX13aGlsZShEPT0wKX1yZXR1cm4gRH07ClZqPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG48Vz8tMTpuPlc/MTowfTsKZU1yPWZ1bmN0aW9uKCl7dmFyIG49bnVsbDtpZighbmIpcmV0dXJuIG47dHJ5e2xldCBXPUQ9PkQ7Cm49bmIuY3JlYXRlUG9saWN5KCJnb29nI2h0bWwiLHtjcmVhdGVIVE1MOlcsY3JlYXRlU2NyaXB0OlcsY3JlYXRlU2NyaXB0VVJMOld9KX1jYXRjaChXKXt9cmV0dXJuIG59OwpEND1mdW5jdGlvbigpe1dNPT09dm9pZCAwJiYoV009ZU1yKCkpO3JldHVybiBXTX07CmszPWZ1bmN0aW9uKG4pe3ZhciBXPUQ0KCk7bj1XP1cuY3JlYXRlU2NyaXB0VVJMKG4pOm47cmV0dXJuIG5ldyBiXyhuKX07CngzPWZ1bmN0aW9uKG4pe2lmKG4gaW5zdGFuY2VvZiBiXylyZXR1cm4gbi5OO3Rocm93IEVycm9yKCIiKTt9Owpnej1mdW5jdGlvbihuKXtpZihuIGluc3RhbmNlb2YgZy5lailyZXR1cm4gbi5OO3Rocm93IEVycm9yKCIiKTt9OwpxVT1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IFhJKFc9Plcuc3Vic3RyKDAsbi5sZW5ndGgrMSkudG9Mb3dlckNhc2UoKT09PW4rIjoiKX07CmcudEY9ZnVuY3Rpb24obixXPWcuRzQpe2lmKG4gaW5zdGFuY2VvZiBnLmVqKXJldHVybiBuO2ZvcihsZXQgRD0wO0Q8Vy5sZW5ndGg7KytEKXtsZXQgYj1XW0RdO2lmKGIgaW5zdGFuY2VvZiBYSSYmYi5PVihuKSlyZXR1cm4gbmV3IGcuZWoobil9fTsKZy5yej1mdW5jdGlvbihuKXtpZihnMmoudGVzdChuKSlyZXR1cm4gbn07Cmcuc009ZnVuY3Rpb24obil7cmV0dXJuIG4gaW5zdGFuY2VvZiBnLmVqP2d6KG4pOmcucnoobil9OwpnLk5VPWZ1bmN0aW9uKG4sVyl7Vz1nLnNNKFcpO1chPT12b2lkIDAmJihuLmhyZWY9Vyl9OwpnLnBiPWZ1bmN0aW9uKG4sVz1gdW5leHBlY3RlZCB2YWx1ZSAke259IWApe3Rocm93IEVycm9yKFcpO307CmcuSE09ZnVuY3Rpb24obil7dmFyIFc9RDQoKTtuPVc/Vy5jcmVhdGVIVE1MKG4pOm47cmV0dXJuIG5ldyBnLlkzKG4pfTsKZy5mYj1mdW5jdGlvbihuKXtpZihuIGluc3RhbmNlb2YgZy5ZMylyZXR1cm4gbi5OO3Rocm93IEVycm9yKCIiKTt9OwpKRj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9d2luZG93O249Zy5zTShuKTtyZXR1cm4gbiE9PXZvaWQgMD9iLm9wZW4obixXLEQpOm51bGx9OwpTaj1mdW5jdGlvbihuPWRvY3VtZW50KXtuPW4ucXVlcnlTZWxlY3Rvcj8uKCJzY3JpcHRbbm9uY2VdIik7cmV0dXJuIG49PW51bGw/IiI6bi5ub25jZXx8bi5nZXRBdHRyaWJ1dGUoIm5vbmNlIil8fCIifTsKbWM9ZnVuY3Rpb24obil7dmFyIFc9RDQoKTtuPVc/Vy5jcmVhdGVTY3JpcHQobik6bjtyZXR1cm4gbmV3IEFGKG4pfTsKS2I9ZnVuY3Rpb24obil7aWYobiBpbnN0YW5jZW9mIEFGKXJldHVybiBuLk47dGhyb3cgRXJyb3IoIiIpO307Ck9NPWZ1bmN0aW9uKG4pe3ZhciBXPVNqKG4ub3duZXJEb2N1bWVudCk7VyYmbi5zZXRBdHRyaWJ1dGUoIm5vbmNlIixXKX07CmcuUE09ZnVuY3Rpb24obixXKXtuLnNyYz14MyhXKTtPTShuKX07CnF3dD1mdW5jdGlvbihuKXt2YXIgVz0idHJ1ZSIudG9TdHJpbmcoKSxEPVtYWnhgZGF0YS1gXTtpZihELmxlbmd0aD09PTApdGhyb3cgRXJyb3IoIiIpO2lmKEQubWFwKGI9PntpZihiIGluc3RhbmNlb2YgWjQpYj1iLk47ZWxzZSB0aHJvdyBFcnJvcigiIik7cmV0dXJuIGJ9KS5ldmVyeShiPT4iZGF0YS1sb2FkZWQiLmluZGV4T2YoYikhPT0wKSl0aHJvdyBFcnJvcignQXR0cmlidXRlICJkYXRhLWxvYWRlZCIgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBhbGxvd2VkIHByZWZpeGVzLicpOwpuLnNldEF0dHJpYnV0ZSgiZGF0YS1sb2FkZWQiLFcpfTsKZy5VTT1mdW5jdGlvbihuKXtyZXR1cm4gbltuLmxlbmd0aC0xXX07CmcueTI9ZnVuY3Rpb24obixXKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG4sVyx2b2lkIDApfTsKZy5FTT1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChuLFcsRCl9OwpnLmlfPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChuLFcsdm9pZCAwKX07CmcudV89ZnVuY3Rpb24obixXLEQpe3JldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwobixXLEQpfTsKZy5vTT1mdW5jdGlvbihuLFcpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKG4sVyx2b2lkIDApfTsKZy5kej1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKG4sVyxEKX07CmcubF89ZnVuY3Rpb24obixXKXtXPWcuejQobixXKTtyZXR1cm4gVzwwP251bGw6dHlwZW9mIG49PT0ic3RyaW5nIj9uLmNoYXJBdChXKTpuW1ddfTsKZy56ND1mdW5jdGlvbihuLFcsRCl7dmFyIGI9bi5sZW5ndGgsdj10eXBlb2Ygbj09PSJzdHJpbmciP24uc3BsaXQoIiIpOm47Zm9yKGxldCBrPTA7azxiO2srKylpZihrIGluIHYmJlcuY2FsbChELHZba10sayxuKSlyZXR1cm4gaztyZXR1cm4tMX07CmcuVDQ9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4ubGVuZ3RoLHY9dHlwZW9mIG49PT0ic3RyaW5nIj9uLnNwbGl0KCIiKTpuO2ZvcigtLWI7Yj49MDtiLS0paWYoYiBpbiB2JiZXLmNhbGwoRCx2W2JdLGIsbikpcmV0dXJuIGI7cmV0dXJuLTF9OwpnLmpqPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwobixXLHZvaWQgMCk+PTB9OwpnLkNiPWZ1bmN0aW9uKG4pe2lmKCFBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgVz1uLmxlbmd0aC0xO1c+PTA7Vy0tKWRlbGV0ZSBuW1ddO24ubGVuZ3RoPTB9OwpnLkZJPWZ1bmN0aW9uKG4sVyl7Vz1BcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKG4sVyx2b2lkIDApO3ZhciBEOyhEPVc+PTApJiZnLkJNKG4sVyk7cmV0dXJuIER9OwpnLkJNPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChuLFcsMSkubGVuZ3RoPT0xfTsKR2JpPWZ1bmN0aW9uKG4sVyl7Vz1nLno0KG4sVyk7Vz49MCYmZy5CTShuLFcpfTsKZy53ej1mdW5jdGlvbihuKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxhcmd1bWVudHMpfTsKZy5STT1mdW5jdGlvbihuKXt2YXIgVz1uLmxlbmd0aDtpZihXPjApe2xldCBEPUFycmF5KFcpO2ZvcihsZXQgYj0wO2I8VztiKyspRFtiXT1uW2JdO3JldHVybiBEfXJldHVybltdfTsKZy5RMj1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRD0xO0Q8YXJndW1lbnRzLmxlbmd0aDtEKyspe2xldCBiPWFyZ3VtZW50c1tEXTtpZihnLlkyKGIpKXtsZXQgdj1uLmxlbmd0aHx8MCxrPWIubGVuZ3RofHwwO24ubGVuZ3RoPXYraztmb3IobGV0IGg9MDtoPGs7aCsrKW5bditoXT1iW2hdfWVsc2Ugbi5wdXNoKGIpfX07CmcuY009ZnVuY3Rpb24obixXLEQsYil7QXJyYXkucHJvdG90eXBlLnNwbGljZS5hcHBseShuLFYyKGFyZ3VtZW50cywxKSl9OwpWMj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8PTI/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobixXKTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuLFcsRCl9OwpnLlc0PWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gYU0obixEfHxucCwhMSxXKX07CkRlPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGFNKG4sVywhMCl9OwphTT1mdW5jdGlvbihuLFcsRCxiKXtmb3IodmFyIHY9MCxrPW4ubGVuZ3RoLGg7djxrOyl7bGV0IHg9disoay12Pj4+MSksTDtEP0w9Vy5jYWxsKHZvaWQgMCxuW3hdLHgsbik6TD1XKGIsblt4XSk7TD4wP3Y9eCsxOihrPXgsaD0hTCl9cmV0dXJuIGg/djotdi0xfTsKZy5iZj1mdW5jdGlvbihuLFcpe24uc29ydChXfHxucCl9Owp0VWg9ZnVuY3Rpb24obixXKXt2YXIgRD1ucDtnLmJmKG4sZnVuY3Rpb24oYix2KXtyZXR1cm4gRChXKGIpLFcodikpfSl9Owp2ND1mdW5jdGlvbihuLFcsRCl7aWYoIWcuWTIobil8fCFnLlkyKFcpfHxuLmxlbmd0aCE9Vy5sZW5ndGgpcmV0dXJuITE7dmFyIGI9bi5sZW5ndGg7RD1EfHwkaXg7Zm9yKGxldCB2PTA7djxiO3YrKylpZighRChuW3ZdLFdbdl0pKXJldHVybiExO3JldHVybiEwfTsKbnA9ZnVuY3Rpb24obixXKXtyZXR1cm4gbj5XPzE6bjxXPy0xOjB9OwokaXg9ZnVuY3Rpb24obixXKXtyZXR1cm4gbj09PVd9OwpnLmtsPWZ1bmN0aW9uKG4sVyxEKXtEPWcuVzQobixXLEQpO0Q8MCYmZy5jTShuLC0oRCsxKSwwLFcpfTsKaEE9ZnVuY3Rpb24obixXKXtuLl9fY2xvc3VyZV9fZXJyb3JfX2NvbnRleHRfXzk4NDM4Mnx8KG4uX19jbG9zdXJlX19lcnJvcl9fY29udGV4dF9fOTg0MzgyPXt9KTtuLl9fY2xvc3VyZV9fZXJyb3JfX2NvbnRleHRfXzk4NDM4Mi5zZXZlcml0eT1XfTsKcmliPWZ1bmN0aW9uKG4pe3ZhciBXPWcucnIoIndpbmRvdy5sb2NhdGlvbi5ocmVmIik7bj09bnVsbCYmKG49J1Vua25vd24gRXJyb3Igb2YgdHlwZSAibnVsbC91bmRlZmluZWQiJyk7aWYodHlwZW9mIG49PT0ic3RyaW5nIilyZXR1cm57bWVzc2FnZTpuLG5hbWU6IlVua25vd24gZXJyb3IiLGxpbmVOdW1iZXI6Ik5vdCBhdmFpbGFibGUiLGZpbGVOYW1lOlcsc3RhY2s6Ik5vdCBhdmFpbGFibGUifTt2YXIgRD0hMTt0cnl7dmFyIGI9bi5saW5lTnVtYmVyfHxuLmxpbmV8fCJOb3QgYXZhaWxhYmxlIn1jYXRjaChrKXtiPSJOb3QgYXZhaWxhYmxlIixEPSEwfXRyeXt2YXIgdj1uLmZpbGVOYW1lfHxuLmZpbGVuYW1lfHxuLnNvdXJjZVVSTHx8Zy5xaS4kZ29vZ0RlYnVnRm5hbWV8fFd9Y2F0Y2goayl7dj0iTm90IGF2YWlsYWJsZSIsRD0hMH1XPXhsKG4pO2lmKCEoIUQmJm4ubGluZU51bWJlciYmbi5maWxlTmFtZSYmbi5zdGFjayYmbi5tZXNzYWdlJiZuLm5hbWUpKXtEPW4ubWVzc2FnZTsKaWYoRD09bnVsbCl7aWYobi5jb25zdHJ1Y3RvciYmbi5jb25zdHJ1Y3RvciBpbnN0YW5jZW9mIEZ1bmN0aW9uKXtpZihuLmNvbnN0cnVjdG9yLm5hbWUpRD1uLmNvbnN0cnVjdG9yLm5hbWU7ZWxzZSBpZihEPW4uY29uc3RydWN0b3IsTHBbRF0pRD1McFtEXTtlbHNle0Q9U3RyaW5nKEQpO2lmKCFMcFtEXSl7bGV0IGs9L2Z1bmN0aW9uXHMrKFteXChdKykvbS5leGVjKEQpO0xwW0RdPWs/a1sxXToiW0Fub255bW91c10ifUQ9THBbRF19RD0nVW5rbm93biBFcnJvciBvZiB0eXBlICInK0QrJyInfWVsc2UgRD0iVW5rbm93biBFcnJvciBvZiB1bmtub3duIHR5cGUiO3R5cGVvZiBuLnRvU3RyaW5nPT09ImZ1bmN0aW9uIiYmT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyE9PW4udG9TdHJpbmcmJihEKz0iOiAiK24udG9TdHJpbmcoKSl9cmV0dXJue21lc3NhZ2U6RCxuYW1lOm4ubmFtZXx8IlVua25vd25FcnJvciIsbGluZU51bWJlcjpiLGZpbGVOYW1lOnYsc3RhY2s6V3x8Ik5vdCBhdmFpbGFibGUifX1yZXR1cm57bWVzc2FnZTpuLm1lc3NhZ2UsCm5hbWU6bi5uYW1lLGxpbmVOdW1iZXI6bi5saW5lTnVtYmVyLGZpbGVOYW1lOm4uZmlsZU5hbWUsc3RhY2s6V319Owp4bD1mdW5jdGlvbihuLFcpe1d8fChXPXt9KTtXW2UxKG4pXT0hMDt2YXIgRD1uLnN0YWNrfHwiIixiPW4uY2F1c2U7YiYmIVdbZTEoYildJiYoRCs9IlxuQ2F1c2VkIGJ5OiAiLGIuc3RhY2smJmIuc3RhY2suaW5kZXhPZihiLnRvU3RyaW5nKCkpPT0wfHwoRCs9dHlwZW9mIGI9PT0ic3RyaW5nIj9iOmIubWVzc2FnZSsiXG4iKSxEKz14bChiLFcpKTtuPW4uZXJyb3JzO2lmKEFycmF5LmlzQXJyYXkobikpe2I9MTtsZXQgdjtmb3Iodj0wO3Y8bi5sZW5ndGgmJiEoYj40KTt2KyspV1tlMShuW3ZdKV18fChEKz0iXG5Jbm5lciBlcnJvciAiK2IrKyArIjogIixuW3ZdLnN0YWNrJiZuW3ZdLnN0YWNrLmluZGV4T2Yoblt2XS50b1N0cmluZygpKT09MHx8KEQrPXR5cGVvZiBuW3ZdPT09InN0cmluZyI/blt2XTpuW3ZdLm1lc3NhZ2UrIlxuIiksRCs9eGwoblt2XSxXKSk7djxuLmxlbmd0aCYmKEQrPSJcbi4uLiAiKyhuLmxlbmd0aC12KSsiIG1vcmUgaW5uZXIgZXJyb3JzIil9cmV0dXJuIER9OwplMT1mdW5jdGlvbihuKXt2YXIgVz0iIjt0eXBlb2Ygbi50b1N0cmluZz09PSJmdW5jdGlvbiImJihXPSIiK24pO3JldHVybiBXK24uc3RhY2t9OwpnLmdUPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gbi5wYXJzZUZyb21TdHJpbmcoZy5mYihXKSxEKX07ClhNPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG5ldyBXb3JrZXIoeDMobiksVyl9OwpxaD1mdW5jdGlvbihuKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhuKSl9OwpHNT1mdW5jdGlvbihuKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KG4ucmVwbGFjZSgvXCsvZywiICIpKX07CmcudEE9ZnVuY3Rpb24obil7c0NoLnRlc3QobikmJihuLmluZGV4T2YoIiYiKSE9LTEmJihuPW4ucmVwbGFjZShOcmgsIiZhbXA7IikpLG4uaW5kZXhPZigiPCIpIT0tMSYmKG49bi5yZXBsYWNlKHBadywiJmx0OyIpKSxuLmluZGV4T2YoIj4iKSE9LTEmJihuPW4ucmVwbGFjZShZd2ksIiZndDsiKSksbi5pbmRleE9mKCciJykhPS0xJiYobj1uLnJlcGxhY2UoSHRVLCImcXVvdDsiKSksbi5pbmRleE9mKCInIikhPS0xJiYobj1uLnJlcGxhY2UoZjFTLCImIzM5OyIpKSxuLmluZGV4T2YoIlx4MDAiKSE9LTEmJihuPW4ucmVwbGFjZShKaVosIiYjMDsiKSkpO3JldHVybiBufTsKZy5yVD1mdW5jdGlvbihuKXtyZXR1cm4gbj09bnVsbD8iIjpTdHJpbmcobil9OwpzVD1mdW5jdGlvbihuKXt2YXIgVz0wO2ZvcihsZXQgRD0wO0Q8bi5sZW5ndGg7KytEKVc9MzEqVytuLmNoYXJDb2RlQXQoRCk+Pj4wO3JldHVybiBXfTsKZy5OaD1mdW5jdGlvbihuKXt2YXIgVz1OdW1iZXIobik7cmV0dXJuIFc9PTAmJmcuRmgobik/TmFOOld9OwpwcD1mdW5jdGlvbihuKXtyZXR1cm4gU3RyaW5nKG4pLnJlcGxhY2UoL1wtKFthLXpdKS9nLGZ1bmN0aW9uKFcsRCl7cmV0dXJuIEQudG9VcHBlckNhc2UoKX0pfTsKSTFpPWZ1bmN0aW9uKG4pe3JldHVybiBuLnJlcGxhY2UoUmVnRXhwKCIoXnxbXFxzXSspKFthLXpdKSIsImciKSxmdW5jdGlvbihXLEQsYil7cmV0dXJuIEQrYi50b1VwcGVyQ2FzZSgpfSl9OwpTd2g9ZnVuY3Rpb24obil7dmFyIFc9MTtuPW4uc3BsaXQoIjoiKTtmb3IodmFyIEQ9W107Vz4wJiZuLmxlbmd0aDspRC5wdXNoKG4uc2hpZnQoKSksVy0tO24ubGVuZ3RoJiZELnB1c2gobi5qb2luKCI6IikpO3JldHVybiBEfTsKZy5IND1mdW5jdGlvbihuLFcsRCxiLHYsayxoKXt2YXIgeD0iIjtuJiYoeCs9bisiOiIpO0QmJih4Kz0iLy8iLFcmJih4Kz1XKyJAIikseCs9RCxiJiYoeCs9IjoiK2IpKTt2JiYoeCs9dik7ayYmKHgrPSI/IitrKTtoJiYoeCs9IiMiK2gpO3JldHVybiB4fTsKZy5mcD1mdW5jdGlvbihuKXtyZXR1cm4gbi5tYXRjaChBaXIpfTsKSkE9ZnVuY3Rpb24obil7cmV0dXJuIG4/ZGVjb2RlVVJJKG4pOm59OwpnLklQPWZ1bmN0aW9uKG4pe3JldHVybiBKQShnLmZwKG4pWzNdfHxudWxsKX07ClMxPWZ1bmN0aW9uKG4pe3JldHVybiBKQShnLmZwKG4pWzVdfHxudWxsKX07CkFBPWZ1bmN0aW9uKG4pe249Zy5mcChuKTtyZXR1cm4gZy5INChuWzFdLG5bMl0sblszXSxuWzRdKX07Cm1XPWZ1bmN0aW9uKG4pe249Zy5mcChuKTtyZXR1cm4gZy5INChudWxsLG51bGwsbnVsbCxudWxsLG5bNV0sbls2XSxuWzddKX07CktwPWZ1bmN0aW9uKG4pe3ZhciBXPW4uaW5kZXhPZigiIyIpO3JldHVybiBXPDA/bjpuLnNsaWNlKDAsVyl9OwpnLk9UPWZ1bmN0aW9uKG4sVyl7aWYobil7bj1uLnNwbGl0KCImIik7Zm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKyspe2xldCBiPW5bRF0uaW5kZXhPZigiPSIpLHYsaz1udWxsO2I+PTA/KHY9bltEXS5zdWJzdHJpbmcoMCxiKSxrPW5bRF0uc3Vic3RyaW5nKGIrMSkpOnY9bltEXTtXKHYsaz9HNShrKToiIil9fX07ClA0PWZ1bmN0aW9uKG4sVyl7aWYoIVcpcmV0dXJuIG47dmFyIEQ9bi5pbmRleE9mKCIjIik7RDwwJiYoRD1uLmxlbmd0aCk7dmFyIGI9bi5pbmRleE9mKCI/Iik7aWYoYjwwfHxiPkQpe2I9RDt2YXIgdj0iIn1lbHNlIHY9bi5zdWJzdHJpbmcoYisxLEQpO249W24uc2xpY2UoMCxiKSx2LG4uc2xpY2UoRCldO0Q9blsxXTtuWzFdPVc/RD9EKyImIitXOlc6RDtyZXR1cm4gblswXSsoblsxXT8iPyIrblsxXToiIikrblsyXX07ClplPWZ1bmN0aW9uKG4sVyxEKXtpZihBcnJheS5pc0FycmF5KFcpKWZvcihsZXQgYj0wO2I8Vy5sZW5ndGg7YisrKVplKG4sU3RyaW5nKFdbYl0pLEQpO2Vsc2UgVyE9bnVsbCYmRC5wdXNoKG4rKFc9PT0iIj8iIjoiPSIrcWgoVykpKX07CnlHPWZ1bmN0aW9uKG4pe3ZhciBXPVtdO2ZvcihsZXQgRCBpbiBuKVplKEQsbltEXSxXKTtyZXR1cm4gVy5qb2luKCImIil9OwpnLkVUPWZ1bmN0aW9uKG4sVyl7Vz15RyhXKTtyZXR1cm4gUDQobixXKX07CmcudWY9ZnVuY3Rpb24obixXLEQpe0Q9RCE9bnVsbD8iPSIrcWgoRCk6IiI7cmV0dXJuIFA0KG4sVytEKX07CmcuZFQ9ZnVuY3Rpb24obixXLEQsYil7Zm9yKHZhciB2PUQubGVuZ3RoOyhXPW4uaW5kZXhPZihELFcpKT49MCYmVzxiOyl7dmFyIGs9bi5jaGFyQ29kZUF0KFctMSk7aWYoaz09Mzh8fGs9PTYzKWlmKGs9bi5jaGFyQ29kZUF0KFcrdiksIWt8fGs9PTYxfHxrPT0zOHx8az09MzUpcmV0dXJuIFc7Vys9disxfXJldHVybi0xfTsKZy5sZj1mdW5jdGlvbihuLFcpe3ZhciBEPW4uc2VhcmNoKGcuejUpLGI9Zy5kVChuLDAsVyxEKTtpZihiPDApcmV0dXJuIG51bGw7dmFyIHY9bi5pbmRleE9mKCImIixiKTtpZih2PDB8fHY+RCl2PUQ7Yis9Vy5sZW5ndGgrMTtyZXR1cm4gRzUobi5zbGljZShiLHYhPT0tMT92OjApKX07ClQ1PWZ1bmN0aW9uKG4sVyl7Zm9yKHZhciBEPW4uc2VhcmNoKGcuejUpLGI9MCx2LGs9W107KHY9Zy5kVChuLGIsVyxEKSk+PTA7KWsucHVzaChuLnN1YnN0cmluZyhiLHYpKSxiPU1hdGgubWluKG4uaW5kZXhPZigiJiIsdikrMXx8RCxEKTtrLnB1c2gobi5zbGljZShiKSk7cmV0dXJuIGsuam9pbigiIikucmVwbGFjZShtaTEsIiQxIil9OwpLUzE9ZnVuY3Rpb24obixXLEQpe3JldHVybiBnLnVmKFQ1KG4sVyksVyxEKX07CmcuQ3A9ZnVuY3Rpb24obil7biYmdHlwZW9mIG4uZGlzcG9zZT09ImZ1bmN0aW9uIiYmbi5kaXNwb3NlKCl9OwpnLkI0PWZ1bmN0aW9uKG4pe2ZvcihsZXQgVz0wLEQ9YXJndW1lbnRzLmxlbmd0aDtXPEQ7KytXKXtsZXQgYj1hcmd1bWVudHNbV107Zy5ZMihiKT9nLkI0LmFwcGx5KG51bGwsYik6Zy5DcChiKX19OwpnLkZNPWZ1bmN0aW9uKCl7dGhpcy5IRD10aGlzLkhEO3RoaXMuQlY9dGhpcy5CVn07CmcudT1mdW5jdGlvbihuLFcpe24uYWRkT25EaXNwb3NlQ2FsbGJhY2soZy5QWihnLkNwLFcpKX07CmcuTWg9ZnVuY3Rpb24obj0iYmV2YXNyc2ciKXtyZXR1cm4gbmV3IFByb21pc2UoVz0+e2lmKHdpbmRvdz09PXdpbmRvdy50b3ApdmFyIEQ9d2luZG93O2Vsc2V7dHJ5e0Q9ISF3aW5kb3c/LnRvcD8ubG9jYXRpb24uaHJlZiYmITF9Y2F0Y2godil7RD0hMH1EPUQ/d2luZG93OndpbmRvdy50b3B9dmFyIGI9RFtuXTtiPy5iZXZhc3JzP1cobmV3IHdUKGIuYmV2YXNycykpOihifHwoYj17bnFmYmVsOltdfSxEW25dPWIpLGIubnFmYmVsLnB1c2godj0+e1cobmV3IHdUKHYpKX0pKX0pfTsKUlA9ZnVuY3Rpb24obil7dmFyIFc9e2M6bi53XyxlOm4ueEMsbWM6bi5HcixtZTpuLkVSfTtuLmhHJiYoVy5jbz17YzpuLmhHLmFtLGE6bi5oRy5BQixzOm4uaEcucjN9KTtyZXR1cm4gV307Ck90aT1mdW5jdGlvbihuKXtuLkohPT12b2lkIDAmJihuLlcuZm9yRWFjaChXPT57bi5KPy5yZW1vdmVFdmVudExpc3RlbmVyKFcsbi5YKX0pLG4uSj12b2lkIDApfTsKWnRaPWFzeW5jIGZ1bmN0aW9uKG4pe2lmKCFuLk8xLndwYyl0aHJvdyBuZXcgUUcoMzAsIk5XQSIpO2lmKG4uTilyZXR1cm4gbi5OO3ZhciBXPWF3YWl0IG4uTzEud3BjKCk7bi5OPW5ldyBQeFMoVyk7cmV0dXJuIG4uTn07Cm4wPWZ1bmN0aW9uKG4pe3ZhciBXPVtdO1ZHKG4sYzQsNikuZm9yRWFjaChEPT57YVAoRCwyKTw9NTMmJlcucHVzaChhUChELDEpKX0pOwpyZXR1cm4gV307ClVpdz1mdW5jdGlvbihuKXt2YXIgVz1bXTtWRyhuLGM0LDYpLmZvckVhY2goRD0+e2FQKEQsMik+NTMmJlcucHVzaChhUChELDEpKX0pOwpyZXR1cm4gV307ClcyPWZ1bmN0aW9uKG4pe24udGhlbigoKT0+e30sKCk9Pnt9KX07CkRYPWZ1bmN0aW9uKG4pe3JldHVybntmaWVsZFR5cGU6MixmaWVsZE5hbWU6bn19OwpicD1mdW5jdGlvbihuKXtyZXR1cm57ZmllbGRUeXBlOjMsZmllbGROYW1lOm59fTsKa0s9ZnVuY3Rpb24obil7cmV0dXJuKHYyfHwodjI9bmV3IFRleHRFbmNvZGVyKSkuZW5jb2RlKG4pfTsKaDQ9ZnVuY3Rpb24obil7Zy5xaS5zZXRUaW1lb3V0KCgpPT57dGhyb3cgbjt9LDApfTsKeWl0PWZ1bmN0aW9uKG4pe3JldHVybiBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwobixmdW5jdGlvbihXKXtXPVcudG9TdHJpbmcoMTYpO3JldHVybiBXLmxlbmd0aD4xP1c6IjAiK1d9KS5qb2luKCIiKX07CnhLPWZ1bmN0aW9uKG4pe3ZhciBXPVtdO2ZvcihsZXQgRD0wO0Q8bi5sZW5ndGg7RCs9MilXLnB1c2gocGFyc2VJbnQobi5zdWJzdHJpbmcoRCxEKzIpLDE2KSk7cmV0dXJuIFd9OwpMMD1mdW5jdGlvbihuKXt2YXIgVz1bXSxEPTA7Zm9yKGxldCBiPTA7YjxuLmxlbmd0aDtiKyspe2xldCB2PW4uY2hhckNvZGVBdChiKTt2PDEyOD9XW0QrK109djoodjwyMDQ4P1dbRCsrXT12Pj42fDE5MjooKHYmNjQ1MTIpPT01NTI5NiYmYisxPG4ubGVuZ3RoJiYobi5jaGFyQ29kZUF0KGIrMSkmNjQ1MTIpPT01NjMyMD8odj02NTUzNisoKHYmMTAyMyk8PDEwKSsobi5jaGFyQ29kZUF0KCsrYikmMTAyMyksV1tEKytdPXY+PjE4fDI0MCxXW0QrK109dj4+MTImNjN8MTI4KTpXW0QrK109dj4+MTJ8MjI0LFdbRCsrXT12Pj42JjYzfDEyOCksV1tEKytdPXYmNjN8MTI4KX1yZXR1cm4gV307CmcuWFE9ZnVuY3Rpb24oKXt2YXIgbj1nLnFpLm5hdmlnYXRvcjtyZXR1cm4gbiYmKG49bi51c2VyQWdlbnQpP246IiJ9OwokSz1mdW5jdGlvbihuKXtpZighZy5xeCYmIWcuR2h8fCFnLnQ0KXJldHVybiExO2ZvcihsZXQgVz0wO1c8Zy50NC5icmFuZHMubGVuZ3RoO1crKyl7bGV0IHticmFuZDpEfT1nLnQ0LmJyYW5kc1tXXTtpZihEJiZELmluZGV4T2YobikhPS0xKXJldHVybiEwfXJldHVybiExfTsKZy5yVz1mdW5jdGlvbihuKXtyZXR1cm4gZy5YUSgpLmluZGV4T2YobikhPS0xfTsKc0E9ZnVuY3Rpb24oKXtyZXR1cm4gZy5xeHx8Zy5HaD8hIWcudDQmJmcudDQuYnJhbmRzLmxlbmd0aD4wOiExfTsKTng9ZnVuY3Rpb24oKXtyZXR1cm4gc0EoKT8hMTpnLnJXKCJPcGVyYSIpfTsKcDA9ZnVuY3Rpb24oKXtyZXR1cm4gZy5yVygiRmlyZWZveCIpfHxnLnJXKCJGeGlPUyIpfTsKZy5IMj1mdW5jdGlvbigpe3JldHVybiBnLnJXKCJTYWZhcmkiKSYmIShZSygpfHwoc0EoKT8wOmcuclcoIkNvYXN0IikpfHxOeCgpfHwoc0EoKT8wOmcuclcoIkVkZ2UiKSl8fChzQSgpPyRLKCJNaWNyb3NvZnQgRWRnZSIpOmcuclcoIkVkZy8iKSl8fChzQSgpPyRLKCJPcGVyYSIpOmcuclcoIk9QUiIpKXx8cDAoKXx8Zy5yVygiU2lsayIpfHxnLnJXKCJBbmRyb2lkIikpfTsKWUs9ZnVuY3Rpb24oKXtyZXR1cm4gc0EoKT8kSygiQ2hyb21pdW0iKTooZy5yVygiQ2hyb21lIil8fGcuclcoIkNyaU9TIikpJiYhKHNBKCk/MDpnLnJXKCJFZGdlIikpfHxnLnJXKCJTaWxrIil9OwpnLmYwPWZ1bmN0aW9uKCl7cmV0dXJuIGcucXh8fGcuR2g/ISFnLnQ0JiYhIWcudDQucGxhdGZvcm06ITF9Owp2YXIgRTJVPWZ1bmN0aW9uKG4sVyxELGIsdil7cmV0dXJuIEo0W0lbMTBdXSh0aGlzLDI1LDE4NjYsbixXLEQsYix2KX07CmcuSTI9ZnVuY3Rpb24oKXtyZXR1cm4gZy5mMCgpP2cudDQucGxhdGZvcm09PT0iQW5kcm9pZCI6Zy5yVygiQW5kcm9pZCIpfTsKU3U9ZnVuY3Rpb24oKXtyZXR1cm4gZy5yVygiaVBob25lIikmJiFnLnJXKCJpUG9kIikmJiFnLnJXKCJpUGFkIil9OwpnLkE0PWZ1bmN0aW9uKCl7cmV0dXJuIFN1KCl8fGcuclcoImlQYWQiKXx8Zy5yVygiaVBvZCIpfTsKZy5teD1mdW5jdGlvbigpe3JldHVybiBnLmYwKCk/Zy50NC5wbGF0Zm9ybT09PSJtYWNPUyI6Zy5yVygiTWFjaW50b3NoIil9OwpnLkswPWZ1bmN0aW9uKCl7cmV0dXJuIGcuZjAoKT9nLnQ0LnBsYXRmb3JtPT09IldpbmRvd3MiOmcuclcoIldpbmRvd3MiKX07CmcuT0E9ZnVuY3Rpb24obil7Zy5PQVsiICJdKG4pO3JldHVybiBufTsKdWhoPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9aXR4O3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRCxuKT9EW25dOkRbbl09VyhuKX07CmcuWlg9ZnVuY3Rpb24obil7cmV0dXJuIHVoaChuLGZ1bmN0aW9uKCl7cmV0dXJuIGcuY1ooUDIsbik+PTB9KX07CmcuRUE9ZnVuY3Rpb24obixXKXtXPT09dm9pZCAwJiYoVz0wKTtVQSgpO1c9eWxbV107Zm9yKHZhciBEPUFycmF5KE1hdGguZmxvb3Iobi5sZW5ndGgvMykpLGI9V1s2NF18fCIiLHY9MCxrPTA7djxuLmxlbmd0aC0yO3YrPTMpe3ZhciBoPW5bdl0seD1uW3YrMV0sTD1uW3YrMl0sZT1XW2g+PjJdO2g9V1soaCYzKTw8NHx4Pj40XTt4PVdbKHgmMTUpPDwyfEw+PjZdO0w9V1tMJjYzXTtEW2srK109IiIrZStoK3grTH1lPTA7TD1iO3N3aXRjaChuLmxlbmd0aC12KXtjYXNlIDI6ZT1uW3YrMV0sTD1XWyhlJjE1KTw8Ml18fGI7Y2FzZSAxOm49blt2XSxEW2tdPSIiK1dbbj4+Ml0rV1sobiYzKTw8NHxlPj40XStMK2J9cmV0dXJuIEQuam9pbigiIil9Owp2YXIgbzJqPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGlwW0lbMTBdXSh0aGlzLDEsMTcwOCxuLFcpfTsKZy51cD1mdW5jdGlvbihuLFcsRCl7aWYoVyl7bGV0IGI9W10sdj0wO2ZvcihsZXQgaz0wO2s8bi5sZW5ndGg7aysrKXtsZXQgaD1uLmNoYXJDb2RlQXQoayk7aWYoaD4yNTUpe2xldCB4PUVycm9yKCJnby91bmljb2RlLXRvLWJ5dGUtZXJyb3IiKTtpZihEKXRocm93IHg7Ylt2KytdPWgmMjU1O2g+Pj04fWJbdisrXT1ofW49Zy5FQShiLFcpfWVsc2Ugbj1nLnFpLmJ0b2Eobik7cmV0dXJuIG59Owp6aD1mdW5jdGlvbihuKXt2YXIgVz1bXTtvMihuLGZ1bmN0aW9uKEQpe1cucHVzaChEKX0pOwpyZXR1cm4gV307CmxwPWZ1bmN0aW9uKG4pe3ZhciBXPW4ubGVuZ3RoLEQ9VyozLzQ7RCUzP0Q9TWF0aC5mbG9vcihEKToiPS4iLmluZGV4T2YobltXLTFdKSE9LTEmJihEPSI9LiIuaW5kZXhPZihuW1ctMl0pIT0tMT9ELTI6RC0xKTt2YXIgYj1uZXcgVWludDhBcnJheShEKSx2PTA7bzIobixmdW5jdGlvbihrKXtiW3YrK109a30pOwpyZXR1cm4gdiE9PUQ/Yi5zdWJhcnJheSgwLHYpOmJ9OwpvMj1mdW5jdGlvbihuLFcpe2Z1bmN0aW9uIEQodil7Zm9yKDtiPG4ubGVuZ3RoOyl7bGV0IGs9bi5jaGFyQXQoYisrKSxoPVRoW2tdO2lmKGghPW51bGwpcmV0dXJuIGg7aWYoIWcuRmgoaykpdGhyb3cgRXJyb3IoIlVua25vd24gYmFzZTY0IGVuY29kaW5nIGF0IGNoYXI6ICIrayk7fXJldHVybiB2fQpVQSgpO2Zvcih2YXIgYj0wOzspe2xldCB2PUQoLTEpLGs9RCgwKSxoPUQoNjQpLHg9RCg2NCk7aWYoeD09PTY0JiZ2PT09LTEpYnJlYWs7Vyh2PDwyfGs+PjQpO2ghPTY0JiYoVyhrPDw0JjI0MHxoPj4yKSx4IT02NCYmVyhoPDw2JjE5Mnx4KSl9fTsKVUE9ZnVuY3Rpb24oKXtpZighVGgpe1RoPXt9O3ZhciBuPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIuc3BsaXQoIiIpLFc9WyIrLz0iLCIrLyIsIi1fPSIsIi1fLiIsIi1fIl07Zm9yKGxldCBEPTA7RDw1O0QrKyl7bGV0IGI9bi5jb25jYXQoV1tEXS5zcGxpdCgiIikpO3lsW0RdPWI7Zm9yKGxldCB2PTA7djxiLmxlbmd0aDt2Kyspe2xldCBrPWJbdl07VGhba109PT12b2lkIDAmJihUaFtrXT12KX19fX07CnpNMj1mdW5jdGlvbihuKXtyZXR1cm4gZGlVW25dfHwiIn07CkMwPWZ1bmN0aW9uKG4pe249anUudGVzdChuKT9uLnJlcGxhY2UoanUsek0yKTpuO249YXRvYihuKTt2YXIgVz1uZXcgVWludDhBcnJheShuLmxlbmd0aCk7Zm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKyspV1tEXT1uLmNoYXJDb2RlQXQoRCk7cmV0dXJuIFd9OwpNeD1mdW5jdGlvbigpe3JldHVybiBCMnx8KEIyPW5ldyBGUShudWxsLHdXKSl9OwpRbD1mdW5jdGlvbihuKXtSMih3Vyk7dmFyIFc9bi5OO1c9Vz09bnVsbHx8VyE9bnVsbCYmVyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/Vzp0eXBlb2YgVz09PSJzdHJpbmciP0MwKFcpOm51bGw7cmV0dXJuIFc9PW51bGw/VzpuLk49V307ClZsPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgVWludDhBcnJheShRbChuKXx8MCl9OwpSMj1mdW5jdGlvbihuKXtpZihuIT09d1cpdGhyb3cgRXJyb3IoImlsbGVnYWwgZXh0ZXJuYWwgY2FsbGVyIik7fTsKYzI9ZnVuY3Rpb24obil7bj1FcnJvcihuKTtoQShuLCJ3YXJuaW5nIik7cmV0dXJuIG59OwpuNT1mdW5jdGlvbihuLFcpe2lmKG4hPW51bGwpe3ZhciBEPWEyPz8oYTI9e30pO3ZhciBiPURbbl18fDA7Yj49V3x8KERbbl09YisxLG49RXJyb3IoKSxoQShuLCJpbmNpZGVudCIpLGg0KG4pKX19OwpXOT1mdW5jdGlvbihuLFc9ITEpe3JldHVybiBXJiZTeW1ib2wuZm9yJiZuP1N5bWJvbC5mb3Iobik6biE9bnVsbD9TeW1ib2wobik6U3ltYm9sKCl9Owp2OT1mdW5jdGlvbihuLFcpe3JldHVybiBXPT09dm9pZCAwP24uTiE9PURCJiYhISgyJihuLmw5W2I0XXwwKSk6ISEoMiZXKSYmbi5OIT09REJ9OwprVT1mdW5jdGlvbihuLFcpe2lmKG4hPW51bGwpaWYodHlwZW9mIG49PT0ic3RyaW5nIiluPW4/bmV3IEZRKG4sd1cpOk14KCk7ZWxzZSBpZihuLmNvbnN0cnVjdG9yIT09RlEpaWYobiE9bnVsbCYmbiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpbj1uLmxlbmd0aD9uZXcgRlEobmV3IFVpbnQ4QXJyYXkobiksd1cpOk14KCk7ZWxzZXtpZighVyl0aHJvdyBFcnJvcigpO249dm9pZCAwfXJldHVybiBufTsKaF89ZnVuY3Rpb24obixXLEQpe3ZhciBiPVcmMTI4PzA6LTEsdj1uLmxlbmd0aCxrO2lmKGs9ISF2KWs9blt2LTFdLGs9ayE9bnVsbCYmdHlwZW9mIGs9PT0ib2JqZWN0IiYmay5jb25zdHJ1Y3Rvcj09PU9iamVjdDt2YXIgaD12KyhrPy0xOjApO2ZvcihXPVcmMTI4PzE6MDtXPGg7VysrKUQoVy1iLG5bV10pO2lmKGspe249blt2LTFdO2ZvcihsZXQgeCBpbiBuKSFpc05hTih4KSYmRCgreCxuW3hdKX19OwpMNT1mdW5jdGlvbihuKXtyZXR1cm4gbiYxMjg/eFU6dm9pZCAwfTsKWEQ9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVdebjtpZihuLTY+PjM9PTIpeyhEW2JeNTE4XT49LShiXjU1MSl8fCgoMCxEW2JeNTE1XSkoRFtiXjUyMV0sRFtiXjYwOV0pLDApKSYmKDAsRFtiXjU2M10pKERbYl42MDldKTsoMCxEWzZdKSgpOygoMCxEW2JeNTMzXSkoRFtiXjU3NF0sRFtiXjU3Ml0pLERbYl41MzNdKShEW2JeNTM4XSxEW2JeNTcyXSk7dmFyIHY9W119aWYoKG4mMTIwKT09bil0aHJvdyBEO2lmKG4tNzw8MjxuJiYobi00fDMxKT49bil7Zm9yKHZhciBrPWJeMzE1NCxoPVtdOysray1oW0lbNV1dLShiXjMxMjIpOylzd2l0Y2goayl7Y2FzZSBiXjMxMzI6az1iXjMxNDk7ZGVmYXVsdDpoW0lbYl4zMDc2XV0oU3RyaW5nW0lbYl4zMTA0XV0oaykpO2Nhc2UgYl4zMTQ4OmNhc2UgYl4zMTQ5OmNhc2UgYl4zMTg2OmJyZWFrO2Nhc2UgYl4zMTc3OmstPWJeMzE2NjtjYXNlIGJeMzE1MDpjYXNlIGJeMzE1MTpjb250aW51ZTtjYXNlIGJeMzExMjprPWJeMzEzNDtjYXNlIGJeMzE0NTp9dj0KaH0obnw1Nik9PW4mJihlWChiXjQ1MDksYl4zNTE4LEQpLChrPURbSVsxXV1bSVtiXjQ0OTRdXXx8bnVsbCkmJihrPWdaKDIsYl4yMjE3LGssRCkpLHY9W10pO3JldHVybiB2fTsKcTM9ZnVuY3Rpb24obil7bi5URj0hMDtyZXR1cm4gbn07CmcuJFU9ZnVuY3Rpb24obil7aWYoKDAsZy5HOSkobikpe2lmKCEvXlxzKig/Oi0/WzEtOV1cZCp8MCk/XHMqJC8udGVzdChuKSl0aHJvdyBFcnJvcihTdHJpbmcobikpO31lbHNlIGlmKCgwLGcudF8pKG4pJiYhTnVtYmVyLmlzU2FmZUludGVnZXIobikpdGhyb3cgRXJyb3IoU3RyaW5nKG4pKTtyZXR1cm4gQmlnSW50KG4pfTsKTjM9ZnVuY3Rpb24obil7dmFyIFc9bj4+PjA7clo9VztzXz0obi1XKS80Mjk0OTY3Mjk2Pj4+MH07CnA1PWZ1bmN0aW9uKG4pe2lmKG48MCl7TjMoMC1uKTtuPXJaO3ZhciBXPXNfO1c9flc7bj9uPX5uKzE6Vys9MTtsZXQgW0QsYl09W24sV107clo9RD4+PjA7c189Yj4+PjB9ZWxzZSBOMyhuKX07Ckg5PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Vyo0Mjk0OTY3Mjk2KyhuPj4+MCk7cmV0dXJuIE51bWJlci5pc1NhZmVJbnRlZ2VyKEQpP0Q6WVUobixXKX07CmY1PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGcuJFUoQmlnSW50LmFzVWludE4oNjQsKEJpZ0ludChXPj4+MCk8PEJpZ0ludCgzMikpK0JpZ0ludChuPj4+MCkpKX07CmcuSl89ZnVuY3Rpb24obixXKXtyZXR1cm4gZy4kVShCaWdJbnQuYXNJbnROKDY0LChCaWdJbnQuYXNVaW50TigzMixCaWdJbnQoVykpPDxCaWdJbnQoMzIpKStCaWdJbnQuYXNVaW50TigzMixCaWdJbnQobikpKSl9OwpZVT1mdW5jdGlvbihuLFcpe1c+Pj49MDtuPj4+PTA7dmFyIEQ7Vzw9MjA5NzE1MT9EPSIiKyg0Mjk0OTY3Mjk2Klcrbik6RD0iIisoQmlnSW50KFcpPDxCaWdJbnQoMzIpfEJpZ0ludChuKSk7cmV0dXJuIER9OwpJMD1mdW5jdGlvbigpe3ZhciBuPXJaLFc9c18sRDtXJjIxNDc0ODM2NDg/RD0iIisoQmlnSW50KFd8MCk8PEJpZ0ludCgzMil8QmlnSW50KG4+Pj4wKSk6RD1ZVShuLFcpO3JldHVybiBEfTsKU1g9ZnVuY3Rpb24obil7bi5sZW5ndGg8MTY/cDUoTnVtYmVyKG4pKToobj1CaWdJbnQobiksclo9TnVtYmVyKG4mQmlnSW50KDQyOTQ5NjcyOTUpKT4+PjAsc189TnVtYmVyKG4+PkJpZ0ludCgzMikmQmlnSW50KDQyOTQ5NjcyOTUpKSl9OwpnLkFfPWZ1bmN0aW9uKG4pe2lmKG4hPW51bGwmJnR5cGVvZiBuIT09Im51bWJlciIpdGhyb3cgRXJyb3IoYFZhbHVlIG9mIGZsb2F0L2RvdWJsZSBmaWVsZCBtdXN0IGJlIGEgbnVtYmVyLCBmb3VuZCAke3R5cGVvZiBufTogJHtufWApO3JldHVybiBufTsKbTA9ZnVuY3Rpb24obil7aWYobj09bnVsbHx8dHlwZW9mIG49PT0ibnVtYmVyIilyZXR1cm4gbjtpZihuPT09Ik5hTiJ8fG49PT0iSW5maW5pdHkifHxuPT09Ii1JbmZpbml0eSIpcmV0dXJuIE51bWJlcihuKX07Cks1PWZ1bmN0aW9uKG4pe3JldHVybiBuLmRpc3BsYXlOYW1lfHxuLm5hbWV8fCJ1bmtub3duIHR5cGUgbmFtZSJ9OwpPXz1mdW5jdGlvbihuKXtpZihuIT1udWxsJiZ0eXBlb2YgbiE9PSJib29sZWFuIil0aHJvdyBFcnJvcihgRXhwZWN0ZWQgYm9vbGVhbiBidXQgZ290ICR7cHQobil9OiAke259YCk7cmV0dXJuIG59OwpaQj1mdW5jdGlvbihuKXtzd2l0Y2godHlwZW9mIG4pe2Nhc2UgImJpZ2ludCI6cmV0dXJuITA7Y2FzZSAibnVtYmVyIjpyZXR1cm4gUDkobik7Y2FzZSAic3RyaW5nIjpyZXR1cm4gbDEyLnRlc3Qobik7ZGVmYXVsdDpyZXR1cm4hMX19OwpVXz1mdW5jdGlvbihuKXtpZih0eXBlb2YgbiE9PSJudW1iZXIiKXRocm93IGMyKCJpbnQzMiIpO2lmKCFQOShuKSl0aHJvdyBjMigiaW50MzIiKTtyZXR1cm4gbnwwfTsKZy55UD1mdW5jdGlvbihuKXtyZXR1cm4gbj09bnVsbD9uOlVfKG4pfTsKRV89ZnVuY3Rpb24obil7aWYobj09bnVsbClyZXR1cm4gbjtpZih0eXBlb2Ygbj09PSJzdHJpbmciJiZuKW49K247ZWxzZSBpZih0eXBlb2YgbiE9PSJudW1iZXIiKXJldHVybjtyZXR1cm4gUDkobik/bnwwOnZvaWQgMH07CnU0PWZ1bmN0aW9uKG4pe2lmKG49PW51bGwpcmV0dXJuIG47aWYodHlwZW9mIG49PT0ic3RyaW5nIiYmbiluPStuO2Vsc2UgaWYodHlwZW9mIG4hPT0ibnVtYmVyIilyZXR1cm47cmV0dXJuIFA5KG4pP24+Pj4wOnZvaWQgMH07CmcubDQ9ZnVuY3Rpb24obil7aWYobiE9bnVsbClhOntpZighWkIobikpdGhyb3cgYzIoImludDY0Iik7c3dpdGNoKHR5cGVvZiBuKXtjYXNlICJzdHJpbmciOm49bzAobik7YnJlYWsgYTtjYXNlICJiaWdpbnQiOm49Zy4kVShkWig2NCxuKSk7YnJlYWsgYTtkZWZhdWx0Om49ejkobil9fXJldHVybiBufTsKQzU9ZnVuY3Rpb24obil7WkIobik7bj1UOShuKTtpZighalgobikpe3A1KG4pO3ZhciBXPXJaLEQ9c187aWYobj1EJjIxNDc0ODM2NDgpVz1+VysxPj4+MCxEPX5EPj4+MCxXPT0wJiYoRD1EKzE+Pj4wKTtXPUg5KFcsRCk7bj10eXBlb2YgVz09PSJudW1iZXIiP24/LVc6VzpuPyItIitXOld9cmV0dXJuIG59OwpCOT1mdW5jdGlvbihuKXtaQihuKTt2YXIgVz1UOShOdW1iZXIobikpO2lmKGpYKFcpKXJldHVybiBTdHJpbmcoVyk7Vz1uLmluZGV4T2YoIi4iKTtXIT09LTEmJihuPW4uc3Vic3RyaW5nKDAsVykpO1c9bi5sZW5ndGg7KG5bMF09PT0iLSI/VzwyMHx8Vz09PTIwJiZuPD0iLTkyMjMzNzIwMzY4NTQ3NzU4MDgiOlc8MTl8fFc9PT0xOSYmbjw9IjkyMjMzNzIwMzY4NTQ3NzU4MDciKXx8KFNYKG4pLG49STAoKSk7cmV0dXJuIG59OwpvMD1mdW5jdGlvbihuKXt2YXIgVz1UOShOdW1iZXIobikpO2lmKGpYKFcpKXJldHVybiBnLiRVKFcpO1c9bi5pbmRleE9mKCIuIik7VyE9PS0xJiYobj1uLnN1YnN0cmluZygwLFcpKTtyZXR1cm4gZy4kVShkWig2NCxCaWdJbnQobikpKX07Cno5PWZ1bmN0aW9uKG4pe2pYKG4pP249Zy4kVShDNShuKSk6KFpCKG4pLG49VDkobiksalgobik/bj1TdHJpbmcobik6KHA1KG4pLG49STAoKSksbj1nLiRVKG4pKTtyZXR1cm4gbn07CkZEPWZ1bmN0aW9uKG4pe3ZhciBXPXR5cGVvZiBuO2lmKG49PW51bGwpcmV0dXJuIG47aWYoVz09PSJiaWdpbnQiKXJldHVybiBnLiRVKGRaKDY0LG4pKTtpZihaQihuKSlyZXR1cm4gVz09PSJzdHJpbmciP28wKG4pOno5KG4pfTsKakNoPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PVtdO2ZvcihsZXQgeCBvZiBEKXtpZigheC51cmwpY29udGludWU7RD1uZXcgZy53Wih4LnVybCwhMCk7aWYoeC5zKXt2YXIgaz1ELGg9eC5zcDtsZXQgTD1lWCg4Myw2NTU4LE0zKDE3LDQyNjMseC5zKSk7a1tJWzM0XV0oaCxSMCgyOSw4NzMyLEwpKX1mb3IobGV0IEwgb2YgT2JqZWN0LmtleXMoYikpRC5zZXQoTCxiW0xdKTtrPVFQKHgudHlwZSx4LnF1YWxpdHkseC5pdGFnLHgud2lkdGgseC5oZWlnaHQpO3YucHVzaChuZXcgVHJ3KGssRCkpfXJldHVybiBWUChuLlcsdixjOShuLFcpLCExKX07CkN4TT1mdW5jdGlvbihuKXtpZihuPT1udWxsKXJldHVybiBuO3ZhciBXPXR5cGVvZiBuO2lmKFc9PT0iYmlnaW50IilyZXR1cm4gU3RyaW5nKGRaKDY0LG4pKTtpZihaQihuKSl7aWYoVz09PSJzdHJpbmciKXJldHVybiBCOShuKTtpZihXPT09Im51bWJlciIpcmV0dXJuIEM1KG4pfX07CmEwPWZ1bmN0aW9uKG4pe2lmKG49PW51bGwpcmV0dXJuIG47dmFyIFc9dHlwZW9mIG47aWYoVz09PSJiaWdpbnQiKXJldHVybiBTdHJpbmcoQnJoKDY0LG4pKTtpZihaQihuKSl7aWYoVz09PSJzdHJpbmciKXJldHVybiBaQihuKSxXPVQ5KE51bWJlcihuKSksalgoVykmJlc+PTA/bj1TdHJpbmcoVyk6KFc9bi5pbmRleE9mKCIuIiksVyE9PS0xJiYobj1uLnN1YnN0cmluZygwLFcpKSxuWzBdPT09Ii0iP1c9ITE6KFc9bi5sZW5ndGgsVz1XPDIwPyEwOlc9PT0yMCYmbjw9IjE4NDQ2NzQ0MDczNzA5NTUxNjE1IiksV3x8KFNYKG4pLG49WVUoclosc18pKSksbjtpZihXPT09Im51bWJlciIpcmV0dXJuIFpCKG4pLG49VDkobiksbj49MCYmalgobil8fChwNShuKSxuPUg5KHJaLHNfKSksbn19OwpuRz1mdW5jdGlvbihuKXtpZihuPT1udWxsfHx0eXBlb2Ygbj09InN0cmluZyJ8fG4gaW5zdGFuY2VvZiBGUSlyZXR1cm4gbn07CkZTMj1mdW5jdGlvbihuKXtpZih0eXBlb2YgbiE9PSJzdHJpbmciKXRocm93IEVycm9yKCk7cmV0dXJuIG59OwpXSD1mdW5jdGlvbihuKXtpZihuIT1udWxsJiZ0eXBlb2YgbiE9PSJzdHJpbmciKXRocm93IEVycm9yKCk7cmV0dXJuIG59OwpnLkRSPWZ1bmN0aW9uKG4pe3JldHVybiBuPT1udWxsfHx0eXBlb2Ygbj09PSJzdHJpbmciP246dm9pZCAwfTsKYlc9ZnVuY3Rpb24obixXKXtpZighKG4gaW5zdGFuY2VvZiBXKSl0aHJvdyBFcnJvcihgRXhwZWN0ZWQgaW5zdGFuY2VvZiAke0s1KFcpfSBidXQgZ290ICR7biYmSzUobi5jb25zdHJ1Y3Rvcil9YCk7cmV0dXJuIG59Owpodj1mdW5jdGlvbihuLFcsRCl7aWYobiE9bnVsbCYmblt2SF09PT1rdilyZXR1cm4gbjtpZihBcnJheS5pc0FycmF5KG4pKXt2YXIgYj1uW2I0XXwwO0Q9YnxEJjMyfEQmMjtEIT09YiYmKG5bYjRdPUQpO3JldHVybiBuZXcgVyhuKX19Owp4dj1mdW5jdGlvbihuKXtyZXR1cm4gbn07CmVXPWZ1bmN0aW9uKG4pe3ZhciBXPUV3KExHKTtyZXR1cm4gVz9uW1ddOnZvaWQgMH07CmdnPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIGluIG4pIWlzTmFOKEQpJiZXKG4sK0QsbltEXSl9Owp3WkM9ZnVuY3Rpb24obil7dmFyIFc9bmV3IFhGO2dnKG4sKEQsYix2KT0+e1dbYl09Wy4uLnZdfSk7Clcuajc9bi5qNztyZXR1cm4gV307Ckd6PWZ1bmN0aW9uKG4sVyl7aWYoRXcocUUpJiZFdyhMRykmJnZvaWQgMD09PXFFKXtuPW4ubDk7dmFyIEQ9bltMR107aWYoRCYmKEQ9RC5qNykpdHJ5e0QobixXLE1VaSl9Y2F0Y2goYil7aDQoYil9fX07CnR2PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9RXcoTEcpO0QmJm5bRF0/LltXXSE9bnVsbCYmbjUoUk1iLDMpfTsKVlVTPWZ1bmN0aW9uKG4sVyl7VzwxMDB8fG41KFFDaSwxKX07CnJnPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PWIhPT12b2lkIDA7Yj0hIWI7dmFyIGs9RXcoTEcpLGg7IXYmJmsmJihoPW5ba10pJiZnZyhoLFZVUyk7az1bXTt2YXIgeD1uLmxlbmd0aDtoPTQyOTQ5NjcyOTU7dmFyIEw9ITEsZT0hIShXJjY0KSxHPWU/VyYxMjg/MDotMTp2b2lkIDA7aWYoIShXJjEpKXt2YXIgcj14JiZuW3gtMV07ciE9bnVsbCYmdHlwZW9mIHI9PT0ib2JqZWN0IiYmci5jb25zdHJ1Y3Rvcj09PU9iamVjdD8oeC0tLGg9eCk6cj12b2lkIDA7IWV8fFcmMTI4fHx2fHwoTD0hMCxoPSgkdj8/eHYpKGgtRyxHLG4scix2b2lkIDApK0cpfVc9dm9pZCAwO2Zvcih2YXIgTj0wO048eDtOKyspe2xldCBIPW5bTl07aWYoSCE9bnVsbCYmKEg9RChILGIpKSE9bnVsbClpZihlJiZOPj1oKXtsZXQgQT1OLUc7KFc/PyhXPXt9KSlbQV09SH1lbHNlIGtbTl09SH1pZihyKWZvcihsZXQgSCBpbiByKXt4PXJbSF07aWYoeD09bnVsbHx8KHg9RCh4LGIpKT09bnVsbCljb250aW51ZTtOPQorSDtsZXQgQTtlJiYhTnVtYmVyLmlzTmFOKE4pJiYoQT1OK0cpPGg/a1tBXT14OihXPz8oVz17fSkpW0hdPXh9VyYmKEw/ay5wdXNoKFcpOmtbaF09Vyk7diYmRXcoTEcpJiYobj1lVyhuKSkmJm4gaW5zdGFuY2VvZiBYRiYmKGtbTEddPXdaQyhuKSk7cmV0dXJuIGt9OwpORT1mdW5jdGlvbihuKXtzd2l0Y2godHlwZW9mIG4pe2Nhc2UgIm51bWJlciI6cmV0dXJuIE51bWJlci5pc0Zpbml0ZShuKT9uOiIiK247Y2FzZSAiYmlnaW50IjpyZXR1cm4gc0sobik/TnVtYmVyKG4pOiIiK247Y2FzZSAiYm9vbGVhbiI6cmV0dXJuIG4/MTowO2Nhc2UgIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShuKSl7dmFyIFc9bltiNF18MDtyZXR1cm4gbi5sZW5ndGg9PT0wJiZXJjE/dm9pZCAwOnJnKG4sVyxORSl9aWYobiE9bnVsbCYmblt2SF09PT1rdilyZXR1cm4gcEcobik7aWYobiBpbnN0YW5jZW9mIEZRKXtXPW4uTjtpZihXPT1udWxsKW49IiI7ZWxzZSBpZih0eXBlb2YgVz09PSJzdHJpbmciKW49VztlbHNle2xldCBEPSIiLGI9MCx2PVcubGVuZ3RoLTEwMjQwO2Zvcig7Yjx2OylEKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsVy5zdWJhcnJheShiLGIrPTEwMjQwKSk7RCs9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGI/Vy5zdWJhcnJheShiKToKVyk7Vz1idG9hKEQpO249bi5OPVd9cmV0dXJuIG59cmV0dXJufXJldHVybiBufTsKWXY9ZnVuY3Rpb24obixXKXtpZihXKXskdj1XPT1udWxsfHxXPT09eHZ8fFdbY2lVXSE9PWExVT94djpXO3RyeXtyZXR1cm4gcEcobil9ZmluYWxseXskdj12b2lkIDB9fXJldHVybiBwRyhuKX07CnBHPWZ1bmN0aW9uKG4pe249bi5sOTtyZXR1cm4gcmcobixuW2I0XXwwLE5FKX07Cm4zMj1mdW5jdGlvbihuKXtzd2l0Y2godHlwZW9mIG4pe2Nhc2UgImJvb2xlYW4iOnJldHVybiBISHx8KEhIPVswLHZvaWQgMCwhMF0pO2Nhc2UgIm51bWJlciI6cmV0dXJuIG4+MD92b2lkIDA6bj09PTA/Zkd8fChmRz1bMCx2b2lkIDBdKTpbLW4sdm9pZCAwXTtjYXNlICJzdHJpbmciOnJldHVyblswLG5dO2Nhc2UgIm9iamVjdCI6cmV0dXJuIG59fTsKU1c9ZnVuY3Rpb24obixXKXtyZXR1cm4gSnYobixXWzBdLFdbMV0pfTsKSnY9ZnVuY3Rpb24obixXLEQsYj0wKXtpZihuPT1udWxsKXt2YXIgdj0zMjtEPyhuPVtEXSx2fD0xMjgpOm49W107VyYmKHY9diYtMTY3NjA4MzN8KFcmMTAyMyk8PDE0KX1lbHNle2lmKCFBcnJheS5pc0FycmF5KG4pKXRocm93IEVycm9yKCJuYXJyIik7dj1uW2I0XXwwO2lmKEF2JiYxJnYpdGhyb3cgRXJyb3IoInJmYXJyIik7MjA0OCZ2JiYhKDImdikmJldjcigpO2lmKHYmMjU2KXRocm93IEVycm9yKCJmYXJyIik7aWYodiY2NClyZXR1cm4odnxiKSE9PXYmJihuW2I0XT12fGIpLG47aWYoRCYmKHZ8PTEyOCxEIT09blswXSkpdGhyb3cgRXJyb3IoIm1pZCIpO2E6e0Q9bjt2fD02NDt2YXIgaz1ELmxlbmd0aDtpZihrKXt2YXIgaD1rLTE7bGV0IEw9RFtoXTtpZihMIT1udWxsJiZ0eXBlb2YgTD09PSJvYmplY3QiJiZMLmNvbnN0cnVjdG9yPT09T2JqZWN0KXtXPXYmMTI4PzA6LTE7aC09VztpZihoPj0xMDI0KXRocm93IEVycm9yKCJwdnRsbXQiKTtmb3IodmFyIHggaW4gTClpZihrPQoreCxrPGgpRFtrK1ddPUxbeF0sZGVsZXRlIExbeF07ZWxzZSBicmVhazt2PXYmLTE2NzYwODMzfChoJjEwMjMpPDwxNDticmVhayBhfX1pZihXKXt4PU1hdGgubWF4KFcsay0odiYxMjg/MDotMSkpO2lmKHg+MTAyNCl0aHJvdyBFcnJvcigic3B2dCIpO3Y9diYtMTY3NjA4MzN8KHgmMTAyMyk8PDE0fX19bltiNF09dnw2NHxiO3JldHVybiBufTsKV2NyPWZ1bmN0aW9uKCl7aWYoQXYpdGhyb3cgRXJyb3IoImNhcnIiKTtuNShEVWksNSl9OwpiYlo9ZnVuY3Rpb24obixXKXtpZih0eXBlb2YgbiE9PSJvYmplY3QiKXJldHVybiBuO2lmKEFycmF5LmlzQXJyYXkobikpe3ZhciBEPW5bYjRdfDA7bi5sZW5ndGg9PT0wJiZEJjE/bj12b2lkIDA6RCYyfHwoIVd8fDQwOTYmRHx8MTYmRD9uPW1fKG4sRCwhMSxXJiYhKEQmMTYpKToobltiNF18PTM0LEQmNCYmT2JqZWN0LmZyZWV6ZShuKSkpO3JldHVybiBufWlmKG4hPW51bGwmJm5bdkhdPT09a3YpcmV0dXJuIFc9bi5sOSxEPVdbYjRdfDAsdjkobixEKT9uOktHKG4sVyxEKT9PSyhuLFcpOm1fKFcsRCk7aWYobiBpbnN0YW5jZW9mIEZRKXJldHVybiBufTsKT0s9ZnVuY3Rpb24obixXLEQpe249bmV3IG4uY29uc3RydWN0b3IoVyk7RCYmKG4uTj1EQik7bi5YPURCO3JldHVybiBufTsKbV89ZnVuY3Rpb24obixXLEQsYil7Yj8/KGI9ISEoMzQmVykpO249cmcobixXLGJiWixiKTtiPTMyO0QmJihifD0yKTtXPVcmMTY3NjkyMTd8YjtuW2I0XT1XO3JldHVybiBufTsKUEg9ZnVuY3Rpb24obil7dmFyIFc9bi5sOSxEPVdbYjRdfDA7cmV0dXJuIHY5KG4sRCk/S0cobixXLEQpP09LKG4sVywhMCk6bmV3IG4uY29uc3RydWN0b3IobV8oVyxELCExKSk6bn07ClpSPWZ1bmN0aW9uKG4pe2lmKG4uTiE9PURCKXJldHVybiExO3ZhciBXPW4ubDk7Vz1tXyhXLFdbYjRdfDApO1dbYjRdfD0yMDQ4O24ubDk9VztuLk49dm9pZCAwO24uWD12b2lkIDA7cmV0dXJuITB9OwpVSz1mdW5jdGlvbihuKXtpZighWlIobikmJnY5KG4sbi5sOVtiNF18MCkpdGhyb3cgRXJyb3IoKTt9Owp5Zz1mdW5jdGlvbihuLFcpe1c9PT12b2lkIDAmJihXPW5bYjRdfDApO1cmMzImJiEoVyY0MDk2KSYmKG5bYjRdPVd8NDA5Nil9OwpLRz1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIEQmMj8hMDpEJjMyJiYhKEQmNDA5Nik/KFdbYjRdPUR8MixuLk49REIsITApOiExfTsKaVc9ZnVuY3Rpb24obixXLEQsYix2KXtPYmplY3QuaXNFeHRlbnNpYmxlKG4pO1c9RUsobi5sOSxXLEQsdik7aWYoVyE9PW51bGx8fGImJm4uWCE9PURCKXJldHVybiBXfTsKRUs9ZnVuY3Rpb24obixXLEQsYil7aWYoVz09PS0xKXJldHVybiBudWxsO3ZhciB2PVcrKEQ/MDotMSksaz1uLmxlbmd0aC0xO2lmKCEoazwxKyhEPzA6LTEpKSl7aWYodj49ayl7dmFyIGg9bltrXTtpZihoIT1udWxsJiZ0eXBlb2YgaD09PSJvYmplY3QiJiZoLmNvbnN0cnVjdG9yPT09T2JqZWN0KXtEPWhbV107dmFyIHg9ITB9ZWxzZSBpZih2PT09aylEPWg7ZWxzZSByZXR1cm59ZWxzZSBEPW5bdl07aWYoYiYmRCE9bnVsbCl7Yj1iKEQpO2lmKGI9PW51bGwpcmV0dXJuIGI7aWYoIU9iamVjdC5pcyhiLEQpKXJldHVybiB4P2hbV109YjpuW3ZdPWIsYn1yZXR1cm4gRH19Owpvej1mdW5jdGlvbihuLFcsRCxiKXtVSyhuKTt2YXIgdj1uLmw5O3VXKHYsdltiNF18MCxXLEQsYik7cmV0dXJuIG59Owp1Vz1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPUQrKHY/MDotMSksaD1uLmxlbmd0aC0xO2lmKGg+PTErKHY/MDotMSkmJms+PWgpe2xldCB4PW5baF07aWYoeCE9bnVsbCYmdHlwZW9mIHg9PT0ib2JqZWN0IiYmeC5jb25zdHJ1Y3Rvcj09PU9iamVjdClyZXR1cm4geFtEXT1iLFd9aWYoazw9aClyZXR1cm4gbltrXT1iLFc7YiE9PXZvaWQgMCYmKGg9KFc/PyhXPW5bYjRdfDApKT4+MTQmMTAyM3x8NTM2ODcwOTEyLEQ+PWg/YiE9bnVsbCYmKG5baCsodj8wOi0xKV09e1tEXTpifSk6bltrXT1iKTtyZXR1cm4gV307CmcuQkg9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz1uLmw5LGg9a1tiNF18MDtiPXY5KG4saCk/MTpiO3Y9ISF2fHxiPT09MztiPT09MiYmWlIobikmJihrPW4ubDksaD1rW2I0XXwwKTtuPWRnKGssVyk7dmFyIHg9bj09PXp6Pzc6bltiNF18MCxMPWxXKHgsaCk7dmFyIGU9NCZMPyExOiEwO2lmKGUpezQmTCYmKG49Wy4uLm5dLHg9MCxMPWpXKEwsaCksaD11VyhrLGgsVyxuKSk7bGV0IEc9MCxyPTA7Zm9yKDtHPG4ubGVuZ3RoO0crKyl7bGV0IE49RChuW0ddKTtOIT1udWxsJiYobltyKytdPU4pfXI8RyYmKG4ubGVuZ3RoPXIpO0Q9KEx8NCkmLTUxMztMPUQmPS0xMDI1O0wmPS00MDk3fUwhPT14JiYobltiNF09TCwyJkwmJk9iamVjdC5mcmVlemUobikpO3JldHVybiBuPUNHKG4sTCxrLGgsVyx2b2lkIDAsYixlLHYpfTsKQ0c9ZnVuY3Rpb24obixXLEQsYix2LGssaCx4LEwpe3ZhciBlPVc7aD09PTF8fChoIT09ND8wOjImV3x8ISgxNiZXKSYmMzImYik/RkYoVyl8fChXfD0hbi5sZW5ndGh8fHgmJiEoNDA5NiZXKXx8MzImYiYmISg0MDk2Jld8fDE2JlcpPzI6MjU2LFchPT1lJiYobltiNF09VyksT2JqZWN0LmZyZWV6ZShuKSk6KGg9PT0yJiZGRihXKSYmKG49Wy4uLm5dLGU9MCxXPWpXKFcsYiksYj11VyhELGIsdixuLGspKSxGRihXKXx8KEx8fChXfD0xNiksVyE9PWUmJihuW2I0XT1XKSkpOzImV3x8ISg0MDk2Jld8fDE2JlcpfHx5ZyhELGIpO3JldHVybiBufTsKZGc9ZnVuY3Rpb24obixXLEQpe249RUsobixXLEQpO3JldHVybiBBcnJheS5pc0FycmF5KG4pP246enp9OwpsVz1mdW5jdGlvbihuLFcpezImVyYmKG58PTIpO3JldHVybiBufDF9OwpGRj1mdW5jdGlvbihuKXtyZXR1cm4hISgyJm4pJiYhISg0Jm4pfHwhISgyNTYmbil9OwpNRT1mdW5jdGlvbihuKXtyZXR1cm4ga1UobiwhMCl9OwpSej1mdW5jdGlvbihuLFcpe249aVcobixXLHZvaWQgMCx2b2lkIDAsTUUpO3JldHVybiBuPT1udWxsP014KCk6bn07ClFnPWZ1bmN0aW9uKG4sVyxEKXtVSyhuKTt2YXIgYj1uLmw5LHY9YltiNF18MDtpZihXPT1udWxsKXJldHVybiB1VyhiLHYsMyksbjtpZighQXJyYXkuaXNBcnJheShXKSl0aHJvdyBjMigpO3ZhciBrPVc9PT16ej83OldbYjRdfDAsaD1rLHg9RkYoayksTD14fHxPYmplY3QuaXNGcm96ZW4oVyk7eHx8KGs9MCk7THx8KFc9Wy4uLlddLGg9MCxrPWpXKGssdiksTD0hMSk7a3w9NTt4PSg0Jms/NTEyJms/NTEyOjEwMjQmaz8xMDI0OjA6dm9pZCAwKT8/MTAyNDtrfD14O2ZvcihsZXQgZT0wO2U8Vy5sZW5ndGg7ZSsrKXtsZXQgRz1XW2VdLHI9RChHLHgpO09iamVjdC5pcyhHLHIpfHwoTCYmKFc9Wy4uLlddLGg9MCxrPWpXKGssdiksTD0hMSksV1tlXT1yKX1rIT09aCYmKEwmJihXPVsuLi5XXSxrPWpXKGssdikpLFdbYjRdPWspO3VXKGIsdiwzLFcpO3JldHVybiBufTsKZy5WZz1mdW5jdGlvbihuLFcsRCxiLHYpe1VLKG4pO3ZhciBrPW4ubDk7dVcoayxrW2I0XXwwLFcsKGI9PT0iMCI/TnVtYmVyKEQpPT09MDpEPT09Yik/dm9pZCAwOkQsdik7cmV0dXJuIG59OwpjSD1mdW5jdGlvbihuLFcsRCl7aWYoVyYyKXRocm93IEVycm9yKCk7dmFyIGI9TDUoVyksdj1kZyhuLEQsYiksaz12PT09eno/Nzp2W2I0XXwwLGg9bFcoayxXKTtpZigyJmh8fEZGKGgpfHwxNiZoKWg9PT1rfHxGRihoKXx8KHZbYjRdPWgpLHY9Wy4uLnZdLGs9MCxoPWpXKGgsVyksdVcobixXLEQsdixiKTtoJj0tMTM7aCE9PWsmJih2W2I0XT1oKTtyZXR1cm4gdn07CkQyPWZ1bmN0aW9uKG4sVyxELGIpe1VLKG4pO3ZhciB2PW4ubDksaz12W2I0XXwwO2lmKGI9PW51bGwpe2xldCBoPWF6KHYpO2lmKG5uKGgsdixrLEQpPT09VyloLnNldChELDApO2Vsc2UgcmV0dXJuIG59ZWxzZSBrPVdXKHYsayxELFcpO3VXKHYsayxXLGIpO3JldHVybiBufTsKYmE9ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9bltiNF18MCxrPUw1KHYpO3Y9V1cobix2LEQsVyxrKTt1VyhuLHYsVyxiLGspfTsKdlc9ZnVuY3Rpb24obixXLEQpe249bi5sOTtyZXR1cm4gbm4oYXoobiksbix2b2lkIDAsVyk9PT1EP0Q6LTF9Owphej1mdW5jdGlvbihuKXtyZXR1cm4gbltrOV0/PyhuW2s5XT1uZXcgTWFwKX07CldXPWZ1bmN0aW9uKG4sVyxELGIsdil7Yj09PTB8fEQuaW5jbHVkZXMoYik7dmFyIGs9YXoobiksaD1ubihrLG4sVyxELHYpO2ghPT1iJiYoaCYmKFc9dVcobixXLGgsdm9pZCAwLHYpKSxrLnNldChELGIpKTtyZXR1cm4gV307Cm5uPWZ1bmN0aW9uKG4sVyxELGIsdil7dmFyIGs9bi5nZXQoYik7aWYoayE9bnVsbClyZXR1cm4gaztrPTA7Zm9yKGxldCBoPTA7aDxiLmxlbmd0aDtoKyspe2xldCB4PWJbaF07RUsoVyx4LHYpIT1udWxsJiYoayE9PTAmJihEPXVXKFcsRCxrLHZvaWQgMCx2KSksaz14KX1uLnNldChiLGspO3JldHVybiBrfTsKaFM9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW5bYjRdfDAsdj1MNShiKSxrPUVLKG4sRCx2KTtpZihrIT1udWxsJiZrW3ZIXT09PWt2KXtpZighdjkoaykpcmV0dXJuIFpSKGspLGsubDk7dmFyIGg9ay5sOX1lbHNlIEFycmF5LmlzQXJyYXkoaykmJihoPWspO2lmKGgpe2xldCB4PWhbYjRdfDA7eCYyJiYoaD1tXyhoLHgpKX1oPVNXKGgsVyk7aCE9PWsmJnVXKG4sYixELGgsdik7cmV0dXJuIGh9Owp4OT1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPSExO2I9RUsobixiLHYsaD0+e3ZhciB4PWh2KGgsRCxXKTtrPXghPT1oJiZ4IT1udWxsO3JldHVybiB4fSk7CmlmKGIhPW51bGwpcmV0dXJuIGsmJiF2OShiKSYmeWcobixXKSxifTsKZUU9ZnVuY3Rpb24obixXLEQsYil7bj1uLmw5OyhEPXg5KG4sbltiNF18MCxXLEQsYikpfHwoRD1XW0xuXSl8fChiPW5ldyBXLEQ9Yi5sOSxEW2I0XXw9MzQsRD1XW0xuXT1iKTtyZXR1cm4gRH07CmdlPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PW4ubDksaz12W2I0XXwwO1c9eDkodixrLFcsRCxiKTtpZihXPT1udWxsKXJldHVybiBXO2s9dltiNF18MDtpZighdjkobixrKSl7bGV0IGg9UEgoVyk7aCE9PVcmJihaUihuKSYmKHY9bi5sOSxrPXZbYjRdfDApLFc9aCxrPXVXKHYsayxELFcsYikseWcodixrKSl9cmV0dXJuIFd9OwpxSD1mdW5jdGlvbihuLFcsRCxiKXt2YXIgdj1uLmw5O3JldHVybiBYXyhuLHYsdltiNF18MCxXLEQsMSxiKX07ClhfPWZ1bmN0aW9uKG4sVyxELGIsdixrLGgseCxMKXt2YXIgZT12OShuLEQpO2s9ZT8xOms7eD0hIXh8fGs9PT0zO2U9TCYmIWU7KGs9PT0yfHxlKSYmWlIobikmJihXPW4ubDksRD1XW2I0XXwwKTtuPWRnKFcsdixoKTt2YXIgRz1uPT09eno/NzpuW2I0XXwwLHI9bFcoRyxEKTtpZihMPSEoNCZyKSl7dmFyIE49bixIPUQ7bGV0IEE9ISEoMiZyKTtBJiYoSHw9Mik7bGV0IHk9IUEsVD0hMCx6PTAsQz0wO2Zvcig7ejxOLmxlbmd0aDt6Kyspe2xldCBRPWh2KE5bel0sYixIKTtpZihRIGluc3RhbmNlb2YgYil7aWYoIUEpe2xldCBWPXY5KFEpO3kmJih5PSFWKTtUJiYoVD1WKX1OW0MrK109UX19Qzx6JiYoTi5sZW5ndGg9Qyk7cnw9NDtyPVQ/ciYtNDA5NzpyfDQwOTY7cj15P3J8ODpyJi05fXIhPT1HJiYobltiNF09ciwyJnImJk9iamVjdC5mcmVlemUobikpO2lmKGUmJiEoOCZyfHwhbi5sZW5ndGgmJihrPT09MXx8KGshPT00PzA6MiZyfHwhKDE2JnIpJiYzMiZEKSkpKXtGRihyKSYmKG49ClsuLi5uXSxyPWpXKHIsRCksRD11VyhXLEQsdixuLGgpKTtiPW47ZT1yO2ZvcihHPTA7RzxiLmxlbmd0aDtHKyspTj1iW0ddLHI9UEgoTiksTiE9PXImJihiW0ddPXIpO2V8PTg7cj1lPWIubGVuZ3RoP2V8NDA5NjplJi00MDk3O25bYjRdPXJ9cmV0dXJuIG49Q0cobixyLFcsRCx2LGgsayxMLHgpfTsKVkc9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4ubDk7cmV0dXJuIFhfKG4sYixiW2I0XXwwLFcsRCx2b2lkIDA9PT1HJD8yOjQsdm9pZCAwLCExLCEwKX07CnRTPWZ1bmN0aW9uKG4sVyl7biE9bnVsbD9iVyhuLFcpOm49dm9pZCAwO3JldHVybiBufTsKJDk9ZnVuY3Rpb24obixXLEQsYix2KXtiPXRTKGIsVyk7b3oobixELGIsdik7YiYmIXY5KGIpJiZ5ZyhuLmw5KTtyZXR1cm4gbn07CnJlPWZ1bmN0aW9uKG4sVyxELGIsdil7dj10Uyh2LFcpO0QyKG4sRCxiLHYpO3YmJiF2OSh2KSYmeWcobi5sOSk7cmV0dXJuIG59OwpzVj1mdW5jdGlvbihuLFcsRCxiKXtVSyhuKTt2YXIgdj1uLmw5LGs9dltiNF18MDtpZihiPT1udWxsKXJldHVybiB1Vyh2LGssRCksbjtpZighQXJyYXkuaXNBcnJheShiKSl0aHJvdyBjMigpO3ZhciBoPWI9PT16ej83OmJbYjRdfDAseD1oLEw9RkYoaCksZT1MfHxPYmplY3QuaXNGcm96ZW4oYiksRz0hMCxyPSEwO2ZvcihsZXQgSD0wO0g8Yi5sZW5ndGg7SCsrKXt2YXIgTj1iW0hdO2JXKE4sVyk7THx8KE49djkoTiksRyYmKEc9IU4pLHImJihyPU4pKX1MfHwoaD1HPzEzOjUsaD1yP2gmLTQwOTc6aHw0MDk2KTtlJiZoPT09eHx8KGI9Wy4uLmJdLHg9MCxoPWpXKGgsaykpO2ghPT14JiYoYltiNF09aCk7az11Vyh2LGssRCxiKTsyJmh8fCEoNDA5NiZofHwxNiZoKXx8eWcodixrKTtyZXR1cm4gbn07CmpXPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG49KDImVz9ufDI6biYtMykmLTI3M307Ck5IPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PWI7VUsobik7Yj1uLmw5O249WF8obixiLGJbYjRdfDAsRCxXLDIsdm9pZCAwLCEwKTt2PXYhPW51bGw/YlcodixEKTpuZXcgRDtuLnB1c2godik7Vz1EPW49PT16ej83Om5bYjRdfDA7KHY9djkodikpPyhEJj0tOSxuLmxlbmd0aD09PTEmJihEJj0tNDA5NykpOkR8PTQwOTY7RCE9PVcmJihuW2I0XT1EKTt2fHx5ZyhiKX07CmFQPWZ1bmN0aW9uKG4sVyxEPTApe3JldHVybiBFXyhpVyhuLFcpKT8/RH07CnBuPWZ1bmN0aW9uKG4sVyxEPXYzaSl7cmV0dXJuIGlXKG4sVyx2b2lkIDAsdm9pZCAwLEZEKT8/RH07Clk5PWZ1bmN0aW9uKG4sVyxEPSIiLGIpe3JldHVybiBnLkRSKGlXKG4sVyxiKSk/P0R9OwpIVz1mdW5jdGlvbihuLFcpe249aVcobixXKTtyZXR1cm4obj09bnVsbD9uOlA5KG4pP258MDp2b2lkIDApPz8wfTsKSlM9ZnVuY3Rpb24obixXKXtyZXR1cm4gZy5EUihpVyhuLFcsdm9pZCAwLGZuKSl9OwpJWT1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIG96KG4sVyxnLmw0KEQpKX07CmcuU0U9ZnVuY3Rpb24obixXLEQpe3JldHVybiBveihuLFcsV0goRCkpfTsKQVM9ZnVuY3Rpb24obixXLEQsYil7cmV0dXJuIGcuVmcobixXLFdIKEQpLCIiLGIpfTsKS249ZnVuY3Rpb24obixXLEQpe2lmKEQhPW51bGwpe2lmKCFQOShEKSl0aHJvdyBjMigiZW51bSIpO0R8PTB9cmV0dXJuIG96KG4sVyxEKX07ClBXPWZ1bmN0aW9uKG4sVyl7aWYodHlwZW9mIG49PT0ic3RyaW5nIilyZXR1cm4gbmV3IE9WKEMwKG4pLFcpO2lmKEFycmF5LmlzQXJyYXkobikpcmV0dXJuIG5ldyBPVihuZXcgVWludDhBcnJheShuKSxXKTtpZihuLmNvbnN0cnVjdG9yPT09VWludDhBcnJheSlyZXR1cm4gbmV3IE9WKG4sITEpO2lmKG4uY29uc3RydWN0b3I9PT1BcnJheUJ1ZmZlcilyZXR1cm4gbj1uZXcgVWludDhBcnJheShuKSxuZXcgT1YobiwhMSk7aWYobi5jb25zdHJ1Y3Rvcj09PUZRKXJldHVybiBXPVFsKG4pfHxuZXcgVWludDhBcnJheSgwKSxuZXcgT1YoVywhMCxuKTtpZihuIGluc3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gbj1uLmNvbnN0cnVjdG9yPT09VWludDhBcnJheT9uOm5ldyBVaW50OEFycmF5KG4uYnVmZmVyLG4uYnl0ZU9mZnNldCxuLmJ5dGVMZW5ndGgpLG5ldyBPVihuLCExKTt0aHJvdyBFcnJvcigpO307CmcuVVY9ZnVuY3Rpb24obixXKXt2YXIgRD0wLGI9MCx2PTAsaz1uLkosaD1uLk47ZG97dmFyIHg9a1toKytdO0R8PSh4JjEyNyk8PHY7dis9N313aGlsZSh2PDMyJiZ4JjEyOCk7aWYodj4zMilmb3IoYnw9KHgmMTI3KT4+NCx2PTM7djwzMiYmeCYxMjg7dis9Nyl4PWtbaCsrXSxifD0oeCYxMjcpPDx2O1oyKG4saCk7aWYoISh4JjEyOCkpcmV0dXJuIFcoRD4+PjAsYj4+PjApO3Rocm93IEVycm9yKCk7fTsKeTE9ZnVuY3Rpb24obil7Zm9yKHZhciBXPTAsRD1uLk4sYj1EKzEwLHY9bi5KO0Q8Yjspe2xldCBrPXZbRCsrXTtXfD1rO2lmKChrJjEyOCk9PT0wKXJldHVybiBaMihuLEQpLCEhKFcmMTI3KX10aHJvdyBFcnJvcigpO307CmcuRVY9ZnVuY3Rpb24obil7dmFyIFc9bi5KLEQ9bi5OLGI9V1tEKytdLHY9YiYxMjc7aWYoYiYxMjgmJihiPVdbRCsrXSx2fD0oYiYxMjcpPDw3LGImMTI4JiYoYj1XW0QrK10sdnw9KGImMTI3KTw8MTQsYiYxMjgmJihiPVdbRCsrXSx2fD0oYiYxMjcpPDwyMSxiJjEyOCYmKGI9V1tEKytdLHZ8PWI8PDI4LGImMTI4JiZXW0QrK10mMTI4JiZXW0QrK10mMTI4JiZXW0QrK10mMTI4JiZXW0QrK10mMTI4JiZXW0QrK10mMTI4KSkpKSl0aHJvdyBFcnJvcigpO1oyKG4sRCk7cmV0dXJuIHZ9Owp1YT1mdW5jdGlvbihuKXt2YXIgVz1uLkosRD1uLk4sYj1XW0QrMF0sdj1XW0QrMV0saz1XW0QrMl07Vz1XW0QrM107aWEobiw0KTtyZXR1cm4oYjw8MHx2PDw4fGs8PDE2fFc8PDI0KT4+PjB9OwpvWT1mdW5jdGlvbihuKXt2YXIgVz11YShuKTtuPXVhKG4pO3JldHVybiBmNShXLG4pfTsKZy5kZT1mdW5jdGlvbihuKXt2YXIgVz1uLmo7V3x8KFc9bi5KLFc9bi5qPW5ldyBEYXRhVmlldyhXLmJ1ZmZlcixXLmJ5dGVPZmZzZXQsVy5ieXRlTGVuZ3RoKSk7Vz1XLmdldEZsb2F0NjQobi5OLCEwKTtpYShuLDgpO3JldHVybiBXfTsKazQyPWZ1bmN0aW9uKG4pe3JldHVybiBnLkVWKG4pfTsKWjI9ZnVuY3Rpb24obixXKXtuLk49VztpZihXPm4uVyl0aHJvdyBFcnJvcigpO307CmlhPWZ1bmN0aW9uKG4sVyl7WjIobixuLk4rVyl9Owp6JD1mdW5jdGlvbihuLFcpe2lmKFc8MCl0aHJvdyBFcnJvcigpO3ZhciBEPW4uTjtXPUQrVztpZihXPm4uVyl0aHJvdyBFcnJvcigpO24uTj1XO3JldHVybiBEfTsKbGE9ZnVuY3Rpb24obixXKXtpZihXPT0wKXJldHVybiBNeCgpO3ZhciBEPXokKG4sVyk7bi5uXyYmbi5WP0Q9bi5KLnN1YmFycmF5KEQsRCtXKToobj1uLkosVz1EK1csRD1EPT09Vz9uZXcgVWludDhBcnJheSgwKTpuLnNsaWNlKEQsVykpO3JldHVybiBELmxlbmd0aD09MD9NeCgpOm5ldyBGUShELHdXKX07CkNuPWZ1bmN0aW9uKG4sVyxELGIpe2lmKFQkLmxlbmd0aCl7bGV0IHY9VCQucG9wKCk7akUodixiKTt2Lk4uaW5pdChuLFcsRCxiKTtyZXR1cm4gdn1yZXR1cm4gbmV3IGhCUyhuLFcsRCxiKX07CmpFPWZ1bmN0aW9uKG4se0diOlc9ITF9PXt9KXtuLkdiPVd9OwpGXz1mdW5jdGlvbihuKXt2YXIgVz1uLk47aWYoVy5OPT1XLlcpcmV0dXJuITE7bi5YPW4uTi5OO3ZhciBEPWcuRVYobi5OKT4+PjA7Vz1EPj4+MztEJj03O2lmKCEoRD49MCYmRDw9NSkpdGhyb3cgRXJyb3IoKTtpZihXPDEpdGhyb3cgRXJyb3IoKTtuLlc9VztuLko9RDtyZXR1cm4hMH07CndlPWZ1bmN0aW9uKG4pe3RyeXtzd2l0Y2gobi5KKXtjYXNlIDA6bi5KIT0wP3dlKG4pOnkxKG4uTik7YnJlYWs7Y2FzZSAxOmlhKG4uTiw4KTticmVhaztjYXNlIDI6aWYobi5KIT0yKXdlKG4pO2Vsc2V7dmFyIFc9Zy5FVihuLk4pPj4+MDtpYShuLk4sVyl9YnJlYWs7Y2FzZSA1OmlhKG4uTiw0KTticmVhaztjYXNlIDM6TUgoKTtsZXQgRD1uLlc7dHJ5e2Rve2lmKCFGXyhuKSl0aHJvdyBFcnJvcigpO2lmKG4uSj09NCl7aWYobi5XIT1EKXRocm93IEVycm9yKCk7YnJlYWt9d2Uobil9d2hpbGUoMSl9Y2F0Y2goYil7aWYoYiBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhyb3cgbmV3IFN5bnRheEVycm9yO3Rocm93IGI7fWZpbmFsbHl7Ulk+MCYmUlktLX1icmVhaztkZWZhdWx0OnRocm93IEVycm9yKCk7fX1jYXRjaChEKXtpZihEIGluc3RhbmNlb2YgUmFuZ2VFcnJvcil0aHJvdyBuZXcgU3ludGF4RXJyb3I7dGhyb3cgRDt9fTsKTUg9ZnVuY3Rpb24oKXtpZihSWT49MTAwKXRocm93IG5ldyBTeW50YXhFcnJvcjtSWSsrfTsKUTE9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uTi5XLHY9Zy5FVihuLk4pPj4+MDt2PW4uTi5OK3Y7dmFyIGs9di1iO2s8PTAmJihuLk4uVz12LEQoVyxuLHZvaWQgMCx2b2lkIDAsdm9pZCAwKSxrPXYtbi5OLk4pO2lmKGspdGhyb3cgRXJyb3IoKTtuLk4uTj12O24uTi5XPWJ9OwphWT1mdW5jdGlvbihuKXt2YXIgVz1nLkVWKG4uTik+Pj4wLEQ9bi5OO249eiQoRCxXKTt2YXIgYj1ELko7KEQ9VjEpfHwoRD1WMT1uZXcgVGV4dERlY29kZXIoInV0Zi04Iix7ZmF0YWw6ITB9KSk7Vz1uK1c7Yj1uPT09MCYmVz09PWIubGVuZ3RoP2I6Yi5zdWJhcnJheShuLFcpO3RyeXt2YXIgdj1ELmRlY29kZShiKX1jYXRjaChrKXtpZihjVz09PXZvaWQgMCl7dHJ5e0QuZGVjb2RlKG5ldyBVaW50OEFycmF5KFsxMjhdKSl9Y2F0Y2goaCl7fXRyeXtELmRlY29kZShuZXcgVWludDhBcnJheShbOTddKSksY1c9ITB9Y2F0Y2goaCl7Y1c9ITF9fSFjVyYmKFYxPXZvaWQgMCk7dGhyb3cgazt9cmV0dXJuIHZ9OwpEOT1mdW5jdGlvbihuKXt2YXIgVz1nLkVWKG4uTik+Pj4wO3JldHVybiBsYShuLk4sVyl9OwpiRz1mdW5jdGlvbihuLFcsRCl7dmFyIGI9Zy5FVihuLk4pPj4+MDtmb3IoYj1uLk4uTitiO24uTi5OPGI7KUQucHVzaChXKG4uTikpfTsKa209ZnVuY3Rpb24obil7cmV0dXJuIG5ldyB2eShuJjQyOTQ5NjcyOTUsTWF0aC5mbG9vcihuLzQyOTQ5NjcyOTYpKX07CnhtPWZ1bmN0aW9uKG4pe2lmKCFuKXJldHVybiBoM3x8KGgzPW5ldyB2eSgwLDApKTtpZighL15cZCskLy50ZXN0KG4pKXJldHVybiBudWxsO1NYKG4pO3JldHVybiBuZXcgdnkoclosc18pfTsKTGg9ZnVuY3Rpb24obil7cmV0dXJuIG4uSj09PTA/bmV3IHZ5KDAsMSt+bi5OKTpuZXcgdnkofm4uSisxLH5uLk4pfTsKeFVqPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgZUMobiY0Mjk0OTY3Mjk1LE1hdGguZmxvb3Iobi80Mjk0OTY3Mjk2KSl9OwpYdD1mdW5jdGlvbihuKXtpZighbilyZXR1cm4gZ0d8fChnRz1uZXcgZUMoMCwwKSk7aWYoIS9eLT9cZCskLy50ZXN0KG4pKXJldHVybiBudWxsO1NYKG4pO3JldHVybiBuZXcgZUMoclosc18pfTsKWW09ZnVuY3Rpb24obixXLEQpe2lmKHR5cGVvZiBCaWdJbnQ2NEFycmF5IT09InVuZGVmaW5lZCIpcmV0dXJuIHFmfHwocWY9bmV3IEJpZ0ludDY0QXJyYXkoMSksR1M9bmV3IFVpbnQzMkFycmF5KHFmLmJ1ZmZlcikscWZbMF09QmlnSW50KDEpLHQzPUdTWzBdPT09MSkscWZbMF09bixuPXQzPzA6MSxuZXcgVyhHU1tuXSxHU1sxLW5dKTskbXx8KHJHPUJpZ0ludChOdW1iZXIuTUlOX1NBRkVfSU5URUdFUiksTmY9QmlnSW50KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSxwaD1CaWdJbnQoNDI5NDk2NzI5NSksJG09QmlnSW50KDMyKSk7aWYobj49ckcmJm48PU5mKXJldHVybiBEKE51bWJlcihuKSk7bj1CaWdJbnQuYXNVaW50Tig2NCxuKTtyZXR1cm4gbmV3IFcoTnVtYmVyKG4mcGgpLE51bWJlcihuPj4kbSkpfTsKSHk9ZnVuY3Rpb24obixXLEQpe2Zvcig7RD4wfHxXPjEyNzspbi5OLnB1c2goVyYxMjd8MTI4KSxXPShXPj4+N3xEPDwyNSk+Pj4wLEQ+Pj49NztuLk4ucHVzaChXKX07CkozPWZ1bmN0aW9uKG4sVyl7bi5OLnB1c2goVz4+PjAmMjU1KTtuLk4ucHVzaChXPj4+OCYyNTUpO24uTi5wdXNoKFc+Pj4xNiYyNTUpO24uTi5wdXNoKFc+Pj4yNCYyNTUpfTsKSXg9ZnVuY3Rpb24obixXKXtmb3IoO1c+MTI3OyluLk4ucHVzaChXJjEyN3wxMjgpLFc+Pj49NztuLk4ucHVzaChXKX07ClNDPWZ1bmN0aW9uKG4sVyl7aWYoVz49MClJeChuLFcpO2Vsc2V7Zm9yKGxldCBEPTA7RDw5O0QrKyluLk4ucHVzaChXJjEyN3wxMjgpLFc+Pj03O24uTi5wdXNoKDEpfX07CkEzPWZ1bmN0aW9uKG4sVyl7Vy5sZW5ndGghPT0wJiYobi5XLnB1c2goVyksbi5KKz1XLmxlbmd0aCl9OwptND1mdW5jdGlvbihuLFcsRCl7SXgobi5OLFcqOCtEKX07CktoPWZ1bmN0aW9uKG4sVyl7bTQobixXLDIpO1c9bi5OLmVuZCgpO0EzKG4sVyk7Vy5wdXNoKG4uSik7cmV0dXJuIFd9OwpPcz1mdW5jdGlvbihuLFcpe3ZhciBEPVcucG9wKCk7Zm9yKEQ9bi5KK24uTi5sZW5ndGgoKS1EO0Q+MTI3OylXLnB1c2goRCYxMjd8MTI4KSxEPj4+PTcsbi5KKys7Vy5wdXNoKEQpO24uSisrfTsKeW09ZnVuY3Rpb24obixXLEQpe2lmKEQhPW51bGwpc3dpdGNoKFB5KEQpLG00KG4sVywxKSx0eXBlb2YgRCl7Y2FzZSAibnVtYmVyIjpuPW4uTjtOMyhEKTtKMyhuLHJaKTtKMyhuLHNfKTticmVhaztjYXNlICJiaWdpbnQiOkQ9WW0oRCx2eSxrbSk7bj1uLk47Vz1ELk47SjMobixELkopO0ozKG4sVyk7YnJlYWs7ZGVmYXVsdDpEPXhtKEQpLG49bi5OLFc9RC5OLEozKG4sRC5KKSxKMyhuLFcpfX07CkVzPWZ1bmN0aW9uKG4sVyxEKXtEIT1udWxsJiYoRD1wYXJzZUludChELDEwKSxtNChuLFcsMCksU0Mobi5OLEQpKX07CmlHPWZ1bmN0aW9uKG4sVyxEKXttNChuLFcsMik7SXgobi5OLEQubGVuZ3RoKTtBMyhuLG4uTi5lbmQoKSk7QTMobixEKX07ClB5PWZ1bmN0aW9uKG4pe3N3aXRjaCh0eXBlb2Ygbil7Y2FzZSAic3RyaW5nIjp4bShuKX19Owp1Rz1mdW5jdGlvbihuKXtzd2l0Y2godHlwZW9mIG4pe2Nhc2UgInN0cmluZyI6bi5sZW5ndGgmJm5bMF09PT0iLSI/eG0obi5zdWJzdHJpbmcoMSkpOnhtKG4pfX07Cm94PWZ1bmN0aW9uKCl7dmFyIG49Y2xhc3N7Y29uc3RydWN0b3IoKXt0aHJvdyBFcnJvcigpO319O09iamVjdC5zZXRQcm90b3R5cGVPZihuLG4ucHJvdG90eXBlKTtyZXR1cm4gbn07CmRHPWZ1bmN0aW9uKG4sVyl7aWYoVz09bnVsbHx8Vz09IiIpcmV0dXJuIG5ldyBuO1c9SlNPTi5wYXJzZShXKTtpZighQXJyYXkuaXNBcnJheShXKSl0aHJvdyBFcnJvcigiZG5hcnIiKTtXW2I0XXw9MzI7cmV0dXJuIG5ldyBuKFcpfTsKVFM9ZnVuY3Rpb24obixXKXtyZXR1cm4gbmV3IHpTKG4sVyxsRyl9OwpDaD1mdW5jdGlvbihuLFcsRCxiLHYpe1c9akMoVyxiKTtXIT1udWxsJiYoRD1LaChuLEQpLHYoVyxuKSxPcyhuLEQpKX07CndHPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PWJbbl07aWYodilyZXR1cm4gdjt2PXt9O3Yud2s9Yjt2LlJyPW4zMihiWzBdKTt2YXIgaz1iWzFdLGg9MTtrJiZrLmNvbnN0cnVjdG9yPT09T2JqZWN0JiYodi5leHRlbnNpb25zPWssaz1iWysraF0sdHlwZW9mIGs9PT0iZnVuY3Rpb24iJiYodi5kJD0hMCxCeT8/KEJ5PWspLEZ0Pz8oRnQ9YltoKzFdKSxrPWJbaCs9Ml0pKTtmb3IodmFyIHg9e307ayYmQXJyYXkuaXNBcnJheShrKSYmay5sZW5ndGgmJnR5cGVvZiBrWzBdPT09Im51bWJlciImJmtbMF0+MDspe2Zvcih2YXIgTD0wO0w8ay5sZW5ndGg7TCsrKXhba1tMXV09aztrPWJbKytoXX1mb3IoTD0xO2shPT12b2lkIDA7KXt0eXBlb2Ygaz09PSJudW1iZXIiJiYoTCs9ayxrPWJbKytoXSk7bGV0IHI7dmFyIGU9dm9pZCAwO2sgaW5zdGFuY2VvZiB6Uz9yPWs6KHI9TGN0LGgtLSk7aWYocj8uTil7az1iWysraF07ZT1iO3ZhciBHPWg7dHlwZW9mIGs9PT0iZnVuY3Rpb24iJiYoaz1rKCksCmVbR109ayk7ZT1rfWs9YlsrK2hdO0c9TCsxO3R5cGVvZiBrPT09Im51bWJlciImJms8MCYmKEctPWssaz1iWysraF0pO2Zvcig7TDxHO0wrKyl7bGV0IE49eFtMXTtlP0QodixMLHIsZSxOKTpXKHYsTCxyLE4pfX1yZXR1cm4gYltuXT12fTsKTWY9ZnVuY3Rpb24obil7cmV0dXJuIEFycmF5LmlzQXJyYXkobik/blswXWluc3RhbmNlb2YgelM/bjpbZUJ0LG5dOltuLHZvaWQgMF19OwpSeD1mdW5jdGlvbihuLFc9IiIsRD0iIil7bj1uZXcgZy53WihuLCEwKTtuLnNldCgiYWxyIiwieWVzIik7RCYmKEQ9ZVgoODQsNjU1MyxNMygxOCw0MjYwLEQpKSxuW0lbMzRdXShXLFIwKDEzLDg3MTYsRCkpKTtyZXR1cm4gbn07CmpDPWZ1bmN0aW9uKG4sVyl7aWYobiBpbnN0YW5jZW9mIGcuUW0pcmV0dXJuIG4ubDk7aWYoQXJyYXkuaXNBcnJheShuKSlyZXR1cm4gU1cobixXKX07ClZtPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PUQuY2o7bltXXT1iPyhrLGgseCk9PnYoayxoLHgsYik6dn07CmF4PWZ1bmN0aW9uKG4sVyxELGIsdil7dmFyIGs9RC5jaixoLHg7bltXXT0oTCxlLEcpPT5rKEwsZSxHLHh8fCh4PXdHKGN5LFZtLGF4LGIpLlJyKSxofHwoaD1uOChiKSksdil9OwpuOD1mdW5jdGlvbihuKXt2YXIgVz1uW1dPXTtpZihXIT1udWxsKXJldHVybiBXO3ZhciBEPXdHKGN5LFZtLGF4LG4pO1c9RC5kJD8oYix2KT0+QnkoYix2LEQpOihiLHYpPT57YTp7TUgoKTsKdHJ5e2Zvcig7Rl8odikmJnYuSiE9NDspe2xldCBOPXYuVyxIPURbTl07aWYoSD09bnVsbCl7bGV0IEE9RC5leHRlbnNpb25zO2lmKEEpe2xldCB5PUFbTl07aWYoeSl7bGV0IFQ9ZzNVKHkpO1QhPW51bGwmJihIPURbTl09VCl9fX1pZihIPT1udWxsfHwhSCh2LGIsTikpe3ZhciBrPXY7bGV0IEE9ay5YO3dlKGspO2lmKGsuR2IpdmFyIGg9dm9pZCAwO2Vsc2V7bGV0IHk9ay5OLk4tQTtrLk4uTj1BO2g9bGEoay5OLHkpfWs9dm9pZCAwO3ZhciB4PWIsTD1OLGU9aDtlJiYoKGs9eFtMR10/Pyh4W0xHXT1uZXcgWEYpKVtMXT8/KGtbTF09W10pKS5wdXNoKGUpfX1sZXQgcj1lVyhiKTtyJiYoci5qNz1ELndrW0Q4XSk7dmFyIEc9ITA7YnJlYWsgYX1jYXRjaChyKXtpZihyIGluc3RhbmNlb2YgUmFuZ2VFcnJvcil0aHJvdyBuZXcgU3ludGF4RXJyb3I7dGhyb3cgcjt9ZmluYWxseXtSWT4wJiZSWS0tfUc9dm9pZCAwfXJldHVybiBHfTsKbltXT109VztuW0Q4XT1YTWkuYmluZChuKTtyZXR1cm4gV307ClhNaT1mdW5jdGlvbihuLFcsRCxiKXt2YXIgdj10aGlzW2N5XSxrPXRoaXNbV09dLGg9U1codm9pZCAwLHYuUnIpLHg9ZVcobik7aWYoeCl7dmFyIEw9ITEsZT12LmV4dGVuc2lvbnM7aWYoZSl7dj0oRyxyLE4pPT57aWYoTi5sZW5ndGghPT0wKWlmKGVbcl0pZm9yKGxldCBIIG9mIE4pe0c9Q24oSCk7dHJ5e0w9ITAsayhoLEcpfWZpbmFsbHl7Ry5mcmVlKCl9fWVsc2UgYj8uKG4scixOKX07CmlmKFc9PW51bGwpZ2coeCx2KTtlbHNlIGlmKHghPW51bGwpe2xldCBHPXhbV107RyYmdih4LFcsRyl9aWYoTCl7bGV0IEc9bltiNF18MDtpZihHJjImJkcmMjA0OCYmIUQ/LkpTKXRocm93IEVycm9yKCk7bGV0IHI9TDUoRyksTj0oSCxBKT0+e2lmKEVLKG4sSCxyKSE9bnVsbClzd2l0Y2goRD8uaDQpe2Nhc2UgMTpyZXR1cm47ZGVmYXVsdDp0aHJvdyBFcnJvcigpO31BIT1udWxsJiYoRz11VyhuLEcsSCxBLHIpKTtkZWxldGUgeFtIXX07Clc9PW51bGw/aF8oaCxoW2I0XXwwLChILEEpPT57TihILEEpfSk6TihXLEVLKGgsVyxyKSl9fX19OwpnM1U9ZnVuY3Rpb24obil7bj1NZihuKTt2YXIgVz1uWzBdLmNqO2lmKG49blsxXSl7bGV0IEQ9bjgobiksYj13RyhjeSxWbSxheCxuKS5ScjtyZXR1cm4odixrLGgpPT5XKHYsayxoLGIsRCl9cmV0dXJuIFd9OwpiNj1mdW5jdGlvbihuLFcsRCl7bltXXT1ELlBqfTsKa249ZnVuY3Rpb24obixXLEQsYil7dmFyIHYsayxoPUQuUGo7bltXXT0oeCxMLGUpPT5oKHgsTCxlLGt8fChrPXdHKHZPLGI2LGtuLGIpLlJyKSx2fHwodj1oOShiKSkpfTsKaDk9ZnVuY3Rpb24obil7dmFyIFc9blt4bl07aWYoIVcpe2xldCBEPXdHKHZPLGI2LGtuLG4pO1c9KGIsdik9Pkw4KGIsdixEKTsKblt4bl09V31yZXR1cm4gV307Ckw4PWZ1bmN0aW9uKG4sVyxEKXtoXyhuLG5bYjRdfDAsKGIsdik9PntpZih2IT1udWxsKXt2YXIgaz1xTU0oRCxiKTtrP2soVyx2LGIpOmI8NTAwfHxuNShHNFMsMyl9fSk7CihuPWVXKG4pKSYmZ2cobiwoYix2LGspPT57QTMoVyxXLk4uZW5kKCkpO2ZvcihiPTA7YjxrLmxlbmd0aDtiKyspQTMoVyxRbChrW2JdKXx8bmV3IFVpbnQ4QXJyYXkoMCkpfSl9OwpxTU09ZnVuY3Rpb24obixXKXt2YXIgRD1uW1ddO2lmKEQpcmV0dXJuIEQ7aWYoRD1uLmV4dGVuc2lvbnMpaWYoRD1EW1ddKXtEPU1mKEQpO3ZhciBiPURbMF0uUGo7aWYoRD1EWzFdKXtsZXQgdj1oOShEKSxrPXdHKHZPLGI2LGtuLEQpLlJyO0Q9bi5kJD9GdChrLHYpOihoLHgsTCk9PmIoaCx4LEwsayx2KX1lbHNlIEQ9YjsKcmV0dXJuIG5bV109RH19OwplNj1mdW5jdGlvbihuLFcsRCl7aWYoQXJyYXkuaXNBcnJheShXKSl7dmFyIGI9V1tiNF18MDtpZihiJjQpcmV0dXJuIFc7Zm9yKHZhciB2PTAsaz0wO3Y8Vy5sZW5ndGg7disrKXtsZXQgaD1uKFdbdl0pO2ghPW51bGwmJihXW2srK109aCl9azx2JiYoVy5sZW5ndGg9ayk7bj1ifDE7RCYmKG49KG58NCkmLTE1MzcpO24hPT1iJiYoV1tiNF09bik7RCYmbiYyJiZPYmplY3QuZnJlZXplKFcpO3JldHVybiBXfX07CmcuZ1E9ZnVuY3Rpb24obixXLEQpe3JldHVybiBuZXcgelMobixXLEQpfTsKWGY9ZnVuY3Rpb24obixXLEQpe3JldHVybiBuZXcgelMobixXLEQpfTsKZy5xWT1mdW5jdGlvbihuLFcsRCl7dVcobixuW2I0XXwwLFcsRCxMNShuW2I0XXwwKSl9OwpnLnQ5PWZ1bmN0aW9uKG4sVyxEKXtXPW0wKFcpO1chPW51bGwmJihtNChuLEQsMSksbj1uLk4sRD1Hdnx8KEd2PW5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoOCkpKSxELnNldEZsb2F0NjQoMCwrVywhMCksclo9RC5nZXRVaW50MzIoMCwhMCksc189RC5nZXRVaW50MzIoNCwhMCksSjMobixyWiksSjMobixzXykpfTsKZy4kbj1mdW5jdGlvbihuLFcsRCl7Vz1DeE0oVyk7aWYoVyE9bnVsbCl7c3dpdGNoKHR5cGVvZiBXKXtjYXNlICJzdHJpbmciOlh0KFcpfWlmKFchPW51bGwpc3dpdGNoKG00KG4sRCwwKSx0eXBlb2YgVyl7Y2FzZSAibnVtYmVyIjpuPW4uTjtwNShXKTtIeShuLHJaLHNfKTticmVhaztjYXNlICJiaWdpbnQiOkQ9WW0oVyxlQyx4VWopO0h5KG4uTixELkosRC5OKTticmVhaztkZWZhdWx0OkQ9WHQoVyksSHkobi5OLEQuSixELk4pfX19OwpnLnJRPWZ1bmN0aW9uKG4sVyxEKXtXPUVfKFcpO1chPW51bGwmJlchPW51bGwmJihtNChuLEQsMCksU0Mobi5OLFcpKX07CnNmPWZ1bmN0aW9uKG4sVyxEKXtXPVc9PW51bGx8fHR5cGVvZiBXPT09ImJvb2xlYW4iP1c6dHlwZW9mIFc9PT0ibnVtYmVyIj8hIVc6dm9pZCAwO1chPW51bGwmJihtNChuLEQsMCksbi5OLk4ucHVzaChXPzE6MCkpfTsKTlk9ZnVuY3Rpb24obixXLEQpe1c9Zy5EUihXKTtXIT1udWxsJiZpRyhuLEQsa0soVykpfTsKcDg9ZnVuY3Rpb24obixXLEQsYix2KXtXPWpDKFcsYik7VyE9bnVsbCYmKEQ9S2gobixEKSx2KFcsbiksT3MobixEKSl9OwpKOT1mdW5jdGlvbihuLFcsRCl7aWYobi5KIT09MSlyZXR1cm4hMTtnLnFZKFcsRCxvWShuLk4pKTtyZXR1cm4hMH07CklfPWZ1bmN0aW9uKG4sVyl7cmV0dXJuKEQsYik9PnthOntsZXQgaz17aEI6ITB9O2ImJk9iamVjdC5hc3NpZ24oayxiKTtEPUNuKEQsdm9pZCAwLHZvaWQgMCxrKTt0cnl7bGV0IGg9bmV3IG4seD1oLmw5O244KFcpKHgsRCk7dmFyIHY9aDticmVhayBhfWNhdGNoKGgpe2lmKGggaW5zdGFuY2VvZiBSYW5nZUVycm9yKXRocm93IG5ldyBTeW50YXhFcnJvcjt0aHJvdyBoO31maW5hbGx5e0QuZnJlZSgpfXY9dm9pZCAwfXJldHVybiB2fX07CmcuQTk9ZnVuY3Rpb24obil7cmV0dXJuIFc9PlM2KFcsbil9OwpnLm1EPWZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBTNih0aGlzLG4pfX07Cks4PWZ1bmN0aW9uKG4pe3JldHVybiBXPT5kRyhuLFcpfTsKdGpVPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFFnKG4sVyxVXyl9Owp1Nj1mdW5jdGlvbihuKXt2YXIgVz1uZXcgZy5PZjtXPWcuU0UoVywxLG4uSik7dmFyIEQ9JFVNKG4pO1c9UWcoVyxELEZTMik7RD1bXTt2YXIgYj1bXTtmb3IodmFyIHYgb2Ygbi5OLmtleXMoKSliLnB1c2godi5zcGxpdCgiLCIpKTtmb3Iodj0wO3Y8Yi5sZW5ndGg7disrKXtsZXQgcj1iW3ZdO3ZhciBrPW4uVyxoPVBPKG4sLi4ucil8fFtdO2xldCBOPVtdO2Zvcih2YXIgeD0wO3g8aC5sZW5ndGg7eCsrKXt2YXIgTD1oW3hdLGU9TCYmTC5OO0w9bmV3IFo4O3N3aXRjaChrKXtjYXNlIDM6ZT1OdW1iZXIoZSk7TnVtYmVyLmlzRmluaXRlKGUpJiZEMihMLDEsVWYsZy5sNChlKSk7YnJlYWs7Y2FzZSAyOkQyKEwsMixVZixnLkFfKE51bWJlcihlKSkpfU4ucHVzaChMKX1mb3Ioaz0wO2s8Ti5sZW5ndGg7aysrKXt4PU5ba107aD1uZXcgeWU7aD0kOShoLFo4LDIseCk7eD1bXTtMPXJGdChuKTtmb3IoZT0wO2U8TC5sZW5ndGg7ZSsrKXt2YXIgRz1MW2VdO2xldCBIPXJbZV0sQT1uZXcgRWY7CnN3aXRjaChHKXtjYXNlIDM6RDIoQSwxLGk2LFdIKFN0cmluZyhIKSkpO2JyZWFrO2Nhc2UgMjpHPU51bWJlcihIKTtOdW1iZXIuaXNGaW5pdGUoRykmJkQyKEEsMixpNixnLnlQKEcpKTticmVhaztjYXNlIDE6RDIoQSwzLGk2LE9fKEg9PT0idHJ1ZSIpKX14LnB1c2goQSl9c1YoaCxFZiwxLHgpO0QucHVzaChoKX19c1YoVyx5ZSw0LEQpO3JldHVybiBXfTsKb189ZnVuY3Rpb24obil7aWYoIW4pcmV0dXJuIiI7aWYoL15hYm91dDooPzpibGFua3xzcmNkb2MpJC8udGVzdChuKSlyZXR1cm4gd2luZG93Lm9yaWdpbnx8IiI7bi5pbmRleE9mKCJibG9iOiIpPT09MCYmKG49bi5zdWJzdHJpbmcoNSkpO249bi5zcGxpdCgiIyIpWzBdLnNwbGl0KCI/IilbMF07bj1uLnRvTG93ZXJDYXNlKCk7bi5pbmRleE9mKCIvLyIpPT0wJiYobj13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrbik7L15bXHdcLV0qOlwvXC8vLnRlc3Qobil8fChuPXdpbmRvdy5sb2NhdGlvbi5ocmVmKTt2YXIgVz1uLnN1YnN0cmluZyhuLmluZGV4T2YoIjovLyIpKzMpLEQ9Vy5pbmRleE9mKCIvIik7RCE9LTEmJihXPVcuc3Vic3RyaW5nKDAsRCkpO0Q9bi5zdWJzdHJpbmcoMCxuLmluZGV4T2YoIjovLyIpKTtpZighRCl0aHJvdyBFcnJvcigiVVJJIGlzIG1pc3NpbmcgcHJvdG9jb2w6ICIrbik7aWYoRCE9PSJodHRwIiYmRCE9PSJodHRwcyImJkQhPT0iY2hyb21lLWV4dGVuc2lvbiImJgpEIT09Im1vei1leHRlbnNpb24iJiZEIT09ImZpbGUiJiZEIT09ImFuZHJvaWQtYXBwIiYmRCE9PSJjaHJvbWUtc2VhcmNoIiYmRCE9PSJjaHJvbWUtdW50cnVzdGVkIiYmRCE9PSJjaHJvbWUiJiZEIT09ImFwcCImJkQhPT0iZGV2dG9vbHMiKXRocm93IEVycm9yKCJJbnZhbGlkIFVSSSBzY2hlbWUgaW4gb3JpZ2luOiAiK0QpO249IiI7dmFyIGI9Vy5pbmRleE9mKCI6Iik7aWYoYiE9LTEpe3ZhciB2PVcuc3Vic3RyaW5nKGIrMSk7Vz1XLnN1YnN0cmluZygwLGIpO2lmKEQ9PT0iaHR0cCImJnYhPT0iODAifHxEPT09Imh0dHBzIiYmdiE9PSI0NDMiKW49IjoiK3Z9cmV0dXJuIEQrIjovLyIrVytufTsKc00yPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbigpe3ZbMF09MTczMjU4NDE5Mzt2WzFdPTQwMjMyMzM0MTc7dlsyXT0yNTYyMzgzMTAyO3ZbM109MjcxNzMzODc4O3ZbNF09MzI4NTM3NzUyMDtHPWU9MH0KZnVuY3Rpb24gVyhyKXtmb3IodmFyIE49aCxIPTA7SDw2NDtIKz00KU5bSC80XT1yW0hdPDwyNHxyW0grMV08PDE2fHJbSCsyXTw8OHxyW0grM107Zm9yKEg9MTY7SDw4MDtIKyspcj1OW0gtM11eTltILThdXk5bSC0xNF1eTltILTE2XSxOW0hdPShyPDwxfHI+Pj4zMSkmNDI5NDk2NzI5NTtyPXZbMF07dmFyIEE9dlsxXSx5PXZbMl0sVD12WzNdLHo9dls0XTtmb3IoSD0wO0g8ODA7SCsrKXtpZihIPDQwKWlmKEg8MjApe3ZhciBDPVReQSYoeV5UKTt2YXIgUT0xNTE4NTAwMjQ5fWVsc2UgQz1BXnleVCxRPTE4NTk3NzUzOTM7ZWxzZSBIPDYwPyhDPUEmeXxUJihBfHkpLFE9MjQwMDk1OTcwOCk6KEM9QV55XlQsUT0zMzk1NDY5NzgyKTtDPSgocjw8NXxyPj4+MjcpJjQyOTQ5NjcyOTUpK0MreitRK05bSF0mNDI5NDk2NzI5NTt6PVQ7VD15O3k9KEE8PDMwfEE+Pj4yKSY0Mjk0OTY3Mjk1O0E9cjtyPUN9dlswXT12WzBdK3ImNDI5NDk2NzI5NTt2WzFdPXZbMV0rQSY0Mjk0OTY3Mjk1O3ZbMl09CnZbMl0reSY0Mjk0OTY3Mjk1O3ZbM109dlszXStUJjQyOTQ5NjcyOTU7dls0XT12WzRdK3omNDI5NDk2NzI5NX0KZnVuY3Rpb24gRChyLE4pe2lmKHR5cGVvZiByPT09InN0cmluZyIpe3I9dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHIpKTtmb3IodmFyIEg9W10sQT0wLHk9ci5sZW5ndGg7QTx5OysrQSlILnB1c2goci5jaGFyQ29kZUF0KEEpKTtyPUh9Tnx8KE49ci5sZW5ndGgpO0g9MDtpZihlPT0wKWZvcig7SCs2NDxOOylXKHIuc2xpY2UoSCxIKzY0KSksSCs9NjQsRys9NjQ7Zm9yKDtIPE47KWlmKGtbZSsrXT1yW0grK10sRysrLGU9PTY0KWZvcihlPTAsVyhrKTtIKzY0PE47KVcoci5zbGljZShILEgrNjQpKSxIKz02NCxHKz02NH0KZnVuY3Rpb24gYigpe3ZhciByPVtdLE49Ryo4O2U8NTY/RCh4LDU2LWUpOkQoeCw2NC0oZS01NikpO2Zvcih2YXIgSD02MztIPj01NjtILS0pa1tIXT1OJjI1NSxOPj4+PTg7VyhrKTtmb3IoSD1OPTA7SDw1O0grKylmb3IodmFyIEE9MjQ7QT49MDtBLT04KXJbTisrXT12W0hdPj5BJjI1NTtyZXR1cm4gcn0KZm9yKHZhciB2PVtdLGs9W10saD1bXSx4PVsxMjhdLEw9MTtMPDY0OysrTCl4W0xdPTA7dmFyIGUsRztuKCk7cmV0dXJue3Jlc2V0Om4sdXBkYXRlOkQsZGlnZXN0OmIsSFU6ZnVuY3Rpb24oKXtmb3IodmFyIHI9YigpLE49IiIsSD0wO0g8ci5sZW5ndGg7SCsrKU4rPSIwMTIzNDU2Nzg5QUJDREVGIi5jaGFyQXQoTWF0aC5mbG9vcihyW0hdLzE2KSkrIjAxMjM0NTY3ODlBQkNERUYiLmNoYXJBdChyW0hdJTE2KTtyZXR1cm4gTn19fTsKZFE9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVN0cmluZyhnLnFpLmxvY2F0aW9uLmhyZWYpO3JldHVybiBiJiZuJiZXP1tXLE56cihvXyhiKSxuLER8fG51bGwpXS5qb2luKCIgIik6bnVsbH07Ck56cj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9W10sdj1bXTtpZigoQXJyYXkuaXNBcnJheShEKT8yOjEpPT0xKXJldHVybiB2PVtXLG5dLGcueTIoYixmdW5jdGlvbih4KXt2LnB1c2goeCl9KSx6dih2LmpvaW4oIiAiKSk7CnZhciBrPVtdLGg9W107Zy55MihELGZ1bmN0aW9uKHgpe2gucHVzaCh4LmtleSk7ay5wdXNoKHgudmFsdWUpfSk7CkQ9TWF0aC5mbG9vcigobmV3IERhdGUpLmdldFRpbWUoKS8xRTMpO3Y9ay5sZW5ndGg9PTA/W0QsVyxuXTpbay5qb2luKCI6IiksRCxXLG5dO2cueTIoYixmdW5jdGlvbih4KXt2LnB1c2goeCl9KTsKbj16dih2LmpvaW4oIiAiKSk7bj1bRCxuXTtoLmxlbmd0aD09MHx8bi5wdXNoKGguam9pbigiIikpO3JldHVybiBuLmpvaW4oIl8iKX07Cnp2PWZ1bmN0aW9uKG4pe3ZhciBXPXNNMigpO1cudXBkYXRlKG4pO3JldHVybiBXLkhVKCkudG9Mb3dlckNhc2UoKX07Cmw2PWZ1bmN0aW9uKG4pe3RoaXMuTj1ufHx7Y29va2llOiIifX07ClR2PWZ1bmN0aW9uKG4pe249KG4uTi5jb29raWV8fCIiKS5zcGxpdCgiOyIpO3ZhciBXPVtdLEQ9W107Zm9yKGxldCBrPTA7azxuLmxlbmd0aDtrKyspe3ZhciBiPW5ba10udHJpbSgpO3ZhciB2PWIuaW5kZXhPZigiPSIpO3Y9PS0xPyhXLnB1c2goIiIpLEQucHVzaChiKSk6KFcucHVzaChiLnN1YnN0cmluZygwLHYpKSxELnB1c2goYi5zdWJzdHJpbmcodisxKSkpfXJldHVybntrZXlzOlcsdmFsdWVzOkR9fTsKajY9ZnVuY3Rpb24oKXt2YXIgbj1nLnFpLl9fU0FQSVNJRHx8Zy5xaS5fX0FQSVNJRHx8Zy5xaS5fXzNQU0FQSVNJRHx8Zy5xaS5fXzFQU0FQSVNJRHx8Zy5xaS5fX09WRVJSSURFX1NJRDtpZihuKXJldHVybiEwO3R5cGVvZiBkb2N1bWVudCE9PSJ1bmRlZmluZWQiJiYobj1uZXcgbDYoZG9jdW1lbnQpLG49bi5nZXQoIlNBUElTSUQiKXx8bi5nZXQoIkFQSVNJRCIpfHxuLmdldCgiX19TZWN1cmUtM1BBUElTSUQiKXx8bi5nZXQoIl9fU2VjdXJlLTFQQVBJU0lEIikpO3JldHVybiEhbn07CkM4PWZ1bmN0aW9uKG4sVyxELGIpeyhuPWcucWlbbl0pfHx0eXBlb2YgZG9jdW1lbnQ9PT0idW5kZWZpbmVkInx8KG49KG5ldyBsNihkb2N1bWVudCkpLmdldChXKSk7cmV0dXJuIG4/ZFEobixELGIpOm51bGx9OwpCTz1mdW5jdGlvbihuKXt2YXIgVz1vXyhnLnFpPy5sb2NhdGlvbi5ocmVmKSxEPVtdO2lmKGo2KCkpe1c9Vy5pbmRleE9mKCJodHRwczoiKT09MHx8Vy5pbmRleE9mKCJjaHJvbWUtZXh0ZW5zaW9uOiIpPT0wfHxXLmluZGV4T2YoImNocm9tZS11bnRydXN0ZWQ6Ly9uZXctdGFiLXBhZ2UiKT09MHx8Vy5pbmRleE9mKCJtb3otZXh0ZW5zaW9uOiIpPT0wO3ZhciBiLHY9KGI9Vyk/Zy5xaS5fX1NBUElTSUQ6Zy5xaS5fX0FQSVNJRDt2fHx0eXBlb2YgZG9jdW1lbnQ9PT0idW5kZWZpbmVkInx8KHY9bmV3IGw2KGRvY3VtZW50KSx2PXYuZ2V0KGI/IlNBUElTSUQiOiJBUElTSUQiKXx8di5nZXQoIl9fU2VjdXJlLTNQQVBJU0lEIikpOyhiPXY/ZFEodixiPyJTQVBJU0lESEFTSCI6IkFQSVNJREhBU0giLG4pOm51bGwpJiZELnB1c2goYik7VyYmKChXPUM4KCJfXzFQU0FQSVNJRCIsIl9fU2VjdXJlLTFQQVBJU0lEIiwiU0FQSVNJRDFQSEFTSCIsbikpJiZELnB1c2goVyksKG49QzgoIl9fM1BTQVBJU0lEIiwKIl9fU2VjdXJlLTNQQVBJU0lEIiwiU0FQSVNJRDNQSEFTSCIsbikpJiZELnB1c2gobikpfXJldHVybiBELmxlbmd0aD09MD9udWxsOkQuam9pbigiICIpfTsKZy5GZj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KG4sVyksRCl9Owp3UT1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIG4rRCooVy1uKX07CmcuTVk9ZnVuY3Rpb24obixXKXt0aGlzLng9biE9PXZvaWQgMD9uOjA7dGhpcy55PVchPT12b2lkIDA/VzowfTsKUl89ZnVuY3Rpb24obixXKXtyZXR1cm4gbj09Vz8hMDpuJiZXP24ueD09Vy54JiZuLnk9PVcueTohMX07CmcuUWU9ZnVuY3Rpb24obixXKXt0aGlzLndpZHRoPW47dGhpcy5oZWlnaHQ9V307CmcuVmU9ZnVuY3Rpb24obixXKXtyZXR1cm4gbj09Vz8hMDpuJiZXP24ud2lkdGg9PVcud2lkdGgmJm4uaGVpZ2h0PT1XLmhlaWdodDohMX07CmNPPWZ1bmN0aW9uKG4pe3JldHVybiBuLndpZHRoKm4uaGVpZ2h0fTsKZy5hXz1mdW5jdGlvbihuLFcsRCl7Zm9yKGxldCBiIGluIG4pVy5jYWxsKEQsbltiXSxiLG4pfTsKZy5uVD1mdW5jdGlvbihuLFcpe3ZhciBEPXt9O2ZvcihsZXQgYiBpbiBuKVcuY2FsbCh2b2lkIDAsbltiXSxiLG4pJiYoRFtiXT1uW2JdKTtyZXR1cm4gRH07Cld4PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9e307Zm9yKGxldCBiIGluIG4pRFtiXT1XLmNhbGwodm9pZCAwLG5bYl0sYixuKTtyZXR1cm4gRH07CmcuRGw9ZnVuY3Rpb24obixXLEQpe2ZvcihsZXQgYiBpbiBuKWlmKFcuY2FsbChELG5bYl0sYixuKSlyZXR1cm4hMDtyZXR1cm4hMX07CmcuYms9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgaW4gbilpZighVy5jYWxsKHZvaWQgMCxuW0RdLEQsbikpcmV0dXJuITE7cmV0dXJuITB9Owp2eD1mdW5jdGlvbihuKXtmb3IobGV0IFcgaW4gbilyZXR1cm4gV307Cmt5PWZ1bmN0aW9uKG4pe2ZvcihsZXQgVyBpbiBuKXJldHVybiBuW1ddfTsKaEs9ZnVuY3Rpb24obil7dmFyIFc9W10sRD0wO2ZvcihsZXQgYiBpbiBuKVdbRCsrXT1uW2JdO3JldHVybiBXfTsKZy5MVD1mdW5jdGlvbihuKXt2YXIgVz1bXSxEPTA7Zm9yKGxldCBiIGluIG4pV1tEKytdPWI7cmV0dXJuIFd9OwpnLmVwPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4hPT1udWxsJiZXIGluIG59OwpnLmdtPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIGluIG4paWYobltEXT09VylyZXR1cm4hMDtyZXR1cm4hMX07CmcuWEw9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgaW4gbilpZihXLmNhbGwodm9pZCAwLG5bRF0sRCxuKSlyZXR1cm4gRH07CnFjPWZ1bmN0aW9uKG4sVyl7cmV0dXJuKFc9Zy5YTChuLFcpKSYmbltXXX07CmcuR0Y9ZnVuY3Rpb24obil7Zm9yKGxldCBXIGluIG4pcmV0dXJuITE7cmV0dXJuITB9OwpnLnRLPWZ1bmN0aW9uKG4pe2ZvcihsZXQgVyBpbiBuKWRlbGV0ZSBuW1ddfTsKZy4keT1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIG4hPT1udWxsJiZXIGluIG4/bltXXTpEfTsKZy5ybT1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRCBpbiBuKWlmKCEoRCBpbiBXKXx8bltEXSE9PVdbRF0pcmV0dXJuITE7Zm9yKGxldCBEIGluIFcpaWYoIShEIGluIG4pKXJldHVybiExO3JldHVybiEwfTsKZy5zMD1mdW5jdGlvbihuKXt2YXIgVz17fTtmb3IobGV0IEQgaW4gbilXW0RdPW5bRF07cmV0dXJuIFd9OwpnLk5jPWZ1bmN0aW9uKG4pe2lmKCFufHx0eXBlb2YgbiE9PSJvYmplY3QiKXJldHVybiBuO2lmKHR5cGVvZiBuLmNsb25lPT09ImZ1bmN0aW9uIilyZXR1cm4gbi5jbG9uZSgpO2lmKHR5cGVvZiBNYXAhPT0idW5kZWZpbmVkIiYmbiBpbnN0YW5jZW9mIE1hcClyZXR1cm4gbmV3IE1hcChuKTtpZih0eXBlb2YgU2V0IT09InVuZGVmaW5lZCImJm4gaW5zdGFuY2VvZiBTZXQpcmV0dXJuIG5ldyBTZXQobik7aWYobiBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKG4uZ2V0VGltZSgpKTt2YXIgVz1BcnJheS5pc0FycmF5KG4pP1tdOnR5cGVvZiBBcnJheUJ1ZmZlciE9PSJmdW5jdGlvbiJ8fHR5cGVvZiBBcnJheUJ1ZmZlci5pc1ZpZXchPT0iZnVuY3Rpb24ifHwhQXJyYXlCdWZmZXIuaXNWaWV3KG4pfHxuIGluc3RhbmNlb2YgRGF0YVZpZXc/e306bmV3IG4uY29uc3RydWN0b3Iobi5sZW5ndGgpO2ZvcihsZXQgRCBpbiBuKVdbRF09Zy5OYyhuW0RdKTtyZXR1cm4gV307CmcuWXk9ZnVuY3Rpb24obixXKXtmb3IobGV0IHY9MTt2PGFyZ3VtZW50cy5sZW5ndGg7disrKXt2YXIgRD1hcmd1bWVudHNbdl07Zm9yKGIgaW4gRCluW2JdPURbYl07Zm9yKGxldCBrPTA7azxwVC5sZW5ndGg7aysrKXt2YXIgYj1wVFtrXTtPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRCxiKSYmKG5bYl09RFtiXSl9fX07ClhaeD1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IFo0KG5bMF0udG9Mb3dlckNhc2UoKSl9OwpnLkh4PWZ1bmN0aW9uKG4sLi4uVyl7aWYoVy5sZW5ndGg9PT0wKXJldHVybiBrMyhuWzBdKTt2YXIgRD1uWzBdO2ZvcihsZXQgYj0wO2I8Vy5sZW5ndGg7YisrKUQrPWVuY29kZVVSSUNvbXBvbmVudChXW2JdKStuW2IrMV07cmV0dXJuIGszKEQpfTsKZy5TcD1mdW5jdGlvbihuKXtyZXR1cm4gbj9uZXcgZlQoZy5KSyhuKSk6SWh8fChJaD1uZXcgZlQpfTsKQUs9ZnVuY3Rpb24obixXKXtyZXR1cm4gdHlwZW9mIFc9PT0ic3RyaW5nIj9uLmdldEVsZW1lbnRCeUlkKFcpOld9OwpnLktUPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9V3x8ZG9jdW1lbnQ7RC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lP249RC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKG4pWzBdOihEPWRvY3VtZW50LG49bj8oV3x8RCkucXVlcnlTZWxlY3RvcihuPyIuIituOiIiKTpnLm1CKEQsIioiLG4sVylbMF18fG51bGwpO3JldHVybiBufHxudWxsfTsKZy5tQj1mdW5jdGlvbihuLFcsRCxiKXtuPWJ8fG47cmV0dXJuKFc9VyYmVyE9IioiP1N0cmluZyhXKS50b1VwcGVyQ2FzZSgpOiIiKXx8RD9uLnF1ZXJ5U2VsZWN0b3JBbGwoVysoRD8iLiIrRDoiIikpOm4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKX07CmcuUHg9ZnVuY3Rpb24obixXKXtnLmFfKFcsZnVuY3Rpb24oRCxiKXtiPT0ic3R5bGUiP24uc3R5bGUuY3NzVGV4dD1EOmI9PSJjbGFzcyI/bi5jbGFzc05hbWU9RDpiPT0iZm9yIj9uLmh0bWxGb3I9RDpPMC5oYXNPd25Qcm9wZXJ0eShiKT9uLnNldEF0dHJpYnV0ZShPMFtiXSxEKTpnLmpVKGIsImFyaWEtIil8fGcualUoYiwiZGF0YS0iKT9uLnNldEF0dHJpYnV0ZShiLEQpOm5bYl09RH0pfTsKZy5FMD1mdW5jdGlvbihuKXt2YXIgVz1uLnNjcm9sbGluZ0VsZW1lbnQ/bi5zY3JvbGxpbmdFbGVtZW50OmcuWmx8fG4uY29tcGF0TW9kZSE9IkNTUzFDb21wYXQiP24uYm9keXx8bi5kb2N1bWVudEVsZW1lbnQ6bi5kb2N1bWVudEVsZW1lbnQ7bj1uLmRlZmF1bHRWaWV3O3JldHVybiBuZXcgZy5NWShuPy5wYWdlWE9mZnNldHx8Vy5zY3JvbGxMZWZ0LG4/LnBhZ2VZT2Zmc2V0fHxXLnNjcm9sbFRvcCl9OwpnLmlrPWZ1bmN0aW9uKG4pe3JldHVybiBuP24uZGVmYXVsdFZpZXc6d2luZG93fTsKZy5kbT1mdW5jdGlvbihuLFcsRCl7dmFyIGI9YXJndW1lbnRzLHY9ZG9jdW1lbnQsaz1iWzFdLGg9dWsodixTdHJpbmcoYlswXSkpO2smJih0eXBlb2Ygaz09PSJzdHJpbmciP2guY2xhc3NOYW1lPWs6QXJyYXkuaXNBcnJheShrKT9oLmNsYXNzTmFtZT1rLmpvaW4oIiAiKTpnLlB4KGgsaykpO2IubGVuZ3RoPjImJm9oKHYsaCxiLDIpO3JldHVybiBofTsKb2g9ZnVuY3Rpb24obixXLEQsYil7ZnVuY3Rpb24gdihrKXtrJiZXLmFwcGVuZENoaWxkKHR5cGVvZiBrPT09InN0cmluZyI/bi5jcmVhdGVUZXh0Tm9kZShrKTprKX0KZm9yKDtiPEQubGVuZ3RoO2IrKyl7bGV0IGs9RFtiXTshZy5ZMihrKXx8Zy5mdChrKSYmay5ub2RlVHlwZT4wP3Yoayk6Zy55MihrJiZ0eXBlb2Ygay5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2Ygay5pdGVtPT0iZnVuY3Rpb24iP2cuUk0oayk6ayx2KX19OwpnLnpGPWZ1bmN0aW9uKG4pe3JldHVybiB1ayhkb2N1bWVudCxuKX07CnVrPWZ1bmN0aW9uKG4sVyl7Vz1TdHJpbmcoVyk7bi5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiJiYoVz1XLnRvTG93ZXJDYXNlKCkpO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoVyl9OwpnLmxrPWZ1bmN0aW9uKG4pe3JldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShTdHJpbmcobikpfTsKZy5URj1mdW5jdGlvbihuKXtmb3IodmFyIFc7Vz1uLmZpcnN0Q2hpbGQ7KW4ucmVtb3ZlQ2hpbGQoVyl9OwpnLmpwPWZ1bmN0aW9uKG4sVyxEKXtuLmluc2VydEJlZm9yZShXLG4uY2hpbGROb2Rlc1tEXXx8bnVsbCl9OwpnLkNUPWZ1bmN0aW9uKG4pe3JldHVybiBuJiZuLnBhcmVudE5vZGU/bi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pOm51bGx9OwpnLkJ4PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4mJlc/bj09V3x8bi5jb250YWlucyhXKTohMX07CmcuSks9ZnVuY3Rpb24obil7cmV0dXJuIG4ubm9kZVR5cGU9PTk/bjpuLm93bmVyRG9jdW1lbnR8fG4uZG9jdW1lbnR9OwpnLkZMPWZ1bmN0aW9uKG4sVyl7aWYoInRleHRDb250ZW50ImluIG4pbi50ZXh0Q29udGVudD1XO2Vsc2UgaWYobi5ub2RlVHlwZT09MyluLmRhdGE9U3RyaW5nKFcpO2Vsc2UgaWYobi5maXJzdENoaWxkJiZuLmZpcnN0Q2hpbGQubm9kZVR5cGU9PTMpe2Zvcig7bi5sYXN0Q2hpbGQhPW4uZmlyc3RDaGlsZDspbi5yZW1vdmVDaGlsZChuLmxhc3RDaGlsZCk7bi5maXJzdENoaWxkLmRhdGE9U3RyaW5nKFcpfWVsc2UgZy5URihuKSxuLmFwcGVuZENoaWxkKGcuSksobikuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKFcpKSl9OwpNYz1mdW5jdGlvbihuKXtyZXR1cm4gbi50YWdOYW1lPT0iQSImJm4uaGFzQXR0cmlidXRlKCJocmVmIil8fG4udGFnTmFtZT09IklOUFVUInx8bi50YWdOYW1lPT0iVEVYVEFSRUEifHxuLnRhZ05hbWU9PSJTRUxFQ1QifHxuLnRhZ05hbWU9PSJCVVRUT04iPyFuLmRpc2FibGVkJiYoIW4uaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHx3bShuKSk6bi5oYXNBdHRyaWJ1dGUoInRhYmluZGV4IikmJndtKG4pfTsKd209ZnVuY3Rpb24obil7bj1uLnRhYkluZGV4O3JldHVybiB0eXBlb2Ygbj09PSJudW1iZXIiJiZuPj0wJiZuPDMyNzY4fTsKZy5SaD1mdW5jdGlvbihuLFcsRCl7biYmIUQmJihuPW4ucGFyZW50Tm9kZSk7Zm9yKEQ9MDtuOyl7aWYoVyhuKSlyZXR1cm4gbjtuPW4ucGFyZW50Tm9kZTtEKyt9cmV0dXJuIG51bGx9OwpmVD1mdW5jdGlvbihuKXt0aGlzLk49bnx8Zy5xaS5kb2N1bWVudHx8ZG9jdW1lbnR9OwpwTXg9ZnVuY3Rpb24obil7c1YoUVEsVlEsMSxuKX07CllNeD1mdW5jdGlvbihuLFc9Y3gpe2lmKCFhaCl7bj1uLm5hdmlnYXRvcj8udXNlckFnZW50RGF0YTtpZighbnx8dHlwZW9mIG4uZ2V0SGlnaEVudHJvcHlWYWx1ZXMhPT0iZnVuY3Rpb24ifHxuLmJyYW5kcyYmdHlwZW9mIG4uYnJhbmRzLm1hcCE9PSJmdW5jdGlvbiIpcmV0dXJuIFByb21pc2UucmVqZWN0KEVycm9yKCJVQUNIIHVuYXZhaWxhYmxlIikpO3BNeCgobi5icmFuZHN8fFtdKS5tYXAoYj0+e3ZhciB2PW5ldyBWUTt2PWcuU0UodiwxLGIuYnJhbmQpO3JldHVybiBnLlNFKHYsMixiLnZlcnNpb24pfSkpOwp0eXBlb2Ygbi5tb2JpbGU9PT0iYm9vbGVhbiImJm96KFFRLDIsT18obi5tb2JpbGUpKTthaD1uLmdldEhpZ2hFbnRyb3B5VmFsdWVzKFcpfXZhciBEPW5ldyBTZXQoVyk7cmV0dXJuIGFoLnRoZW4oYj0+e3ZhciB2PVFRLmNsb25lKCk7RC5oYXMoInBsYXRmb3JtIikmJmcuU0UodiwzLGIucGxhdGZvcm0pO0QuaGFzKCJwbGF0Zm9ybVZlcnNpb24iKSYmZy5TRSh2LDQsYi5wbGF0Zm9ybVZlcnNpb24pO0QuaGFzKCJhcmNoaXRlY3R1cmUiKSYmZy5TRSh2LDUsYi5hcmNoaXRlY3R1cmUpO0QuaGFzKCJtb2RlbCIpJiZnLlNFKHYsNixiLm1vZGVsKTtELmhhcygidWFGdWxsVmVyc2lvbiIpJiZnLlNFKHYsNyxiLnVhRnVsbFZlcnNpb24pO3JldHVybiB2LmJZKCl9KS5jYXRjaCgoKT0+UVEuYlkoKSl9OwpuSz1mdW5jdGlvbihuKXtyZXR1cm4gS24obiwxLDEpfTsKdkw9ZnVuY3Rpb24obixXKXskOShuLk4sV0wsMSxXKTtIVyhXLDEpfHxuSyhXKTtuLmdSfHwoVz1ERChuKSxZOShXLDUpfHxnLlNFKFcsNSxuLmxvY2FsZSkpO24udWFjaCYmKFc9REQobiksZ2UoVyxiSSw5KXx8JDkoVyxiSSw5LG4udWFjaCkpfTsKREQ9ZnVuY3Rpb24obil7dmFyIFc9Z2Uobi5OLFdMLDEpO1d8fChXPW5ldyBXTCx2TChuLFcpKTtuPVc7Vz1nZShuLGtFLDExKTtXfHwoVz1uZXcga0UsJDkobixrRSwxMSxXKSk7cmV0dXJuIFd9OwpIYlM9ZnVuY3Rpb24obixXKXtuLko9V307CkpGWj1mdW5jdGlvbihuKXt2YXIgVz1uLmdSP3ZvaWQgMDpnLmlrKCk7Vz9ZTXgoVyxjeCkudGhlbihEPT57bi51YWNoPWY0MihEPz8iW10iKTtEPUREKG4pOyQ5KEQsYkksOSxuLnVhY2gpO3JldHVybiEwfSkuY2F0Y2goKCk9PiExKTpQcm9taXNlLnJlc29sdmUoITEpfTsKZy5oSD1mdW5jdGlvbihuLFcsRCxiKXt0aGlzLlg9bjt0aGlzLmo9Vzt0aGlzLk49dGhpcy5XPW47dGhpcy5WPUR8fDA7dGhpcy5LPWJ8fDJ9OwpnLnhFPWZ1bmN0aW9uKG4pe24uTj1NYXRoLm1pbihuLmosbi5OKm4uSyk7bi5XPU1hdGgubWluKG4uaixuLk4rKG4uVj9NYXRoLnJvdW5kKG4uViooTWF0aC5yYW5kb20oKS0uNSkqMipuLk4pOjApKTtuLkorK307CkxLPWZ1bmN0aW9uKCl7cmV0dXJuImh0dHBzOi8vcGxheS5nb29nbGUuY29tL2xvZz9mb3JtYXQ9anNvbiZoYXNmYXN0PXRydWUifTsKSTRTPWZ1bmN0aW9uKG4sVyl7aWYoIW4uUyQpcmV0dXJuKCk9Pnt9Owp2YXIgRD0oKT0+e24uZmx1c2goKX07CnJldHVybiBXPygpPT57VygpLnRoZW4oRCl9OkR9OwplZz1mdW5jdGlvbihuKXtuLlcuaXNGaW5hbD0hMDtuLmZsdXNoKCk7bi5XLmlzRmluYWw9ITF9OwpnRD1mdW5jdGlvbihuKXtuLll8fChuLlk9TEsoKSk7dHJ5e3JldHVybihuZXcgVVJMKG4uWSkpLnRvU3RyaW5nKCl9Y2F0Y2goVyl7cmV0dXJuKG5ldyBVUkwobi5ZLGcuaWsoKS5sb2NhdGlvbi5vcmlnaW4pKS50b1N0cmluZygpfX07CkFGWj1mdW5jdGlvbihuKXtTTVMobiwoVyxEKT0+e1c9bmV3IFVSTChXKTtXLnNlYXJjaFBhcmFtcy5zZXQoImZvcm1hdCIsImpzb24iKTt2YXIgYj0hMTt0cnl7Yj1nLmlrKCkubmF2aWdhdG9yLnNlbmRCZWFjb24oVy50b1N0cmluZygpLEQuYlkoKSl9Y2F0Y2h7fWJ8fChuLkQ9ITEpO3JldHVybiBifSl9OwptVXc9ZnVuY3Rpb24obixXLEQ9bnVsbCxiPW4ud2l0aENyZWRlbnRpYWxzKXt2YXIgdj17fSxrPW5ldyBVUkwoZ0QobikpO0QmJih2LkF1dGhvcml6YXRpb249RCk7bi5zZXNzaW9uSW5kZXgmJih2WyJYLUdvb2ctQXV0aFVzZXIiXT1uLnNlc3Npb25JbmRleCxrLnNlYXJjaFBhcmFtcy5zZXQoImF1dGh1c2VyIixuLnNlc3Npb25JbmRleCkpO24ucGFnZUlkJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHYsIlgtR29vZy1QYWdlSWQiLHt2YWx1ZTpuLnBhZ2VJZH0pLGsuc2VhcmNoUGFyYW1zLnNldCgicGFnZUlkIixuLnBhZ2VJZCkpO3JldHVybnt1cmw6ay50b1N0cmluZygpLGJvZHk6VyxvJDoxLFpKOnYscmVxdWVzdFR5cGU6IlBPU1QiLHdpdGhDcmVkZW50aWFsczpiLHRpbWVvdXRNaWxsaXM6bi50aW1lb3V0TWlsbGlzfX07ClNNUz1mdW5jdGlvbihuLFcpe2lmKG4uTi5sZW5ndGghPT0wKXt2YXIgRD1uZXcgVVJMKGdEKG4pKTtELnNlYXJjaFBhcmFtcy5kZWxldGUoImZvcm1hdCIpO3ZhciBiPW4ubjEoKTtiJiZELnNlYXJjaFBhcmFtcy5zZXQoImF1dGgiLGIpO0Quc2VhcmNoUGFyYW1zLnNldCgiYXV0aHVzZXIiLG4uc2Vzc2lvbkluZGV4fHwiMCIpO2ZvcihiPTA7YjwxMCYmbi5OLmxlbmd0aDsrK2Ipe2xldCB2PW4uTi5zbGljZSgwLDMyKSxrPW4uVy5idWlsZCh2LG4uWCxuLlYsbi5QZyxuLmNKLG4uTyk7aWYoIVcoRC50b1N0cmluZygpLGspKXsrK24uVjticmVha31uLlg9MDtuLlY9MDtuLmNKPTA7bi5PPTA7bi5OPW4uTi5zbGljZSh2Lmxlbmd0aCl9bi5KLmVuYWJsZWQmJm4uSi5zdG9wKCl9fTsKS2NoPWZ1bmN0aW9uKG4sVyl7bi5idWlsZExhYmVsPVc7cmV0dXJuIG59OwpQX2k9ZnVuY3Rpb24obil7bi5uZXR3b3JrPW5ldyBPYjE7cmV0dXJuIG59OwpaYmg9ZnVuY3Rpb24obixXKXtuLk49V307ClVVYj1mdW5jdGlvbihuKXtuLko9ITA7cmV0dXJuIG59OwpyRnQ9ZnVuY3Rpb24obil7cmV0dXJuIG4uZmllbGRzLm1hcChXPT5XLmZpZWxkVHlwZSl9OwpQTz1mdW5jdGlvbihuLC4uLlcpe1c9WFQoLi4uVyk7cmV0dXJuIG4uTi5oYXMoVyk/bi5OLmdldChXKTp2b2lkIDB9OwokVU09ZnVuY3Rpb24obil7cmV0dXJuIG4uZmllbGRzLm1hcChXPT5XLmZpZWxkTmFtZSl9OwpHNz1mdW5jdGlvbihuLFcsLi4uRCl7RD1YVCguLi5EKTtuLk4uc2V0KEQsW25ldyBxNShXKV0pfTsKeUZaPWZ1bmN0aW9uKG4sVywuLi5EKXt2YXIgYj1QTyhuLC4uLkQpO2I/Yi5wdXNoKG5ldyBxNShXKSk6RzcobixXLC4uLkQpfTsKZVg9ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9V15uO2lmKChuPj4xJjE2KTw1JiYobi0zJjExKT49OSYmRFtJWzE3XV0pdmFyIGs9UjAoOCw3NTQxLEQpO2lmKG4tMj4+ND09NCl7az12XjQ4NTA7Zm9yKHZhciBoPVtdOysray1oW0lbNV1dLSh2XjQ3NTQpOylzd2l0Y2goayl7Y2FzZSB2XjQ3NDQ6az12XjQ4MTg7Y29udGludWU7Y2FzZSB2XjQ4NDE6az12XjQ3NjY7YnJlYWs7Y2FzZSB2XjQ4NTE6az12XjQ3NjU7Y29udGludWU7Y2FzZSB2XjQ3NjQ6az12XjQ2NTE7Y2FzZSB2XjQ4MDk6ay09dl40NzQ0O2RlZmF1bHQ6aFtJW3ZeNDc3Ml1dKFN0cmluZ1tJW3ZeNDczNl1dKGspKX12YXIgeD1ofShuXjcwKT4+Mz09MiYmKGs9RFtJW3ZeNjYzM11dKElbdl42NjE2XSksdEhbSVt2XjY2NDddXShrLHZeNjYyMSksdEhbSVt2XjY2NDddXShrLDIpLHRIW0lbdl42NjEzXV0oayx2XjY2MzEpLHg9a1tJW3ZeNjU5Ml1dKElbdl42NjE2XSkpO248PDImMjd8fChlWCh2XjEzMzYsdl42NDI3LEQpLAprPU0zKHZeMTM4Nix2XjU1OTYsRFtJW3ZeMTM0OF1dKElbdl4xMzI3XSl8fElbdl4xMzkyXSlbSVt2XjEzNDVdXShJW3ZeMTM1NF0pLHg9RFtJW3ZeMTQwMV1dPT09SVt2XjEzODZdJiZrW0lbNV1dPjEmJiEha1sxXSk7KG48PDEmMTUpPT00JiZiW0lbNV1dIT0wJiYoRD0oRCViW0lbNV1dK2JbSVs1XV0pJWJbSVs1XV0sYltJWzNdXSgwLDEsYltJWzNdXShELDEsYlswXSlbMF0pKTtuLTM+PjM9PTImJih4PUQhPT1udWxsKTtyZXR1cm4geH07ClhUPWZ1bmN0aW9uKC4uLm4pe3JldHVybiBuP24uam9pbigiLCIpOiJrZXkifTsKRTN0PWZ1bmN0aW9uKG4sLi4uVyl7cmV0dXJuKG49UE8obiwuLi5XKSkmJm4ubGVuZ3RoP25bMF06dm9pZCAwfTsKaWJVPWZ1bmN0aW9uKG4sLi4uVyl7dmFyIEQ9MCxiPUUzdChuLC4uLlcpO2ImJihEPWIuTik7RzcobixEKzEsLi4uVyl9OwokRT1mdW5jdGlvbihuLFcpe3RoaXMudHlwZT1uO3RoaXMuY3VycmVudFRhcmdldD10aGlzLnRhcmdldD1XO3RoaXMuZGVmYXVsdFByZXZlbnRlZD10aGlzLko9ITF9OwpyRD1mdW5jdGlvbihuLFcpeyRFLmNhbGwodGhpcyxuP24udHlwZToiIik7dGhpcy5yZWxhdGVkVGFyZ2V0PXRoaXMuY3VycmVudFRhcmdldD10aGlzLnRhcmdldD1udWxsO3RoaXMuYnV0dG9uPXRoaXMuc2NyZWVuWT10aGlzLnNjcmVlblg9dGhpcy5jbGllbnRZPXRoaXMuY2xpZW50WD0wO3RoaXMua2V5PSIiO3RoaXMuY2hhckNvZGU9dGhpcy5rZXlDb2RlPTA7dGhpcy5tZXRhS2V5PXRoaXMuc2hpZnRLZXk9dGhpcy5hbHRLZXk9dGhpcy5jdHJsS2V5PSExO3RoaXMuc3RhdGU9bnVsbDt0aGlzLnBvaW50ZXJJZD0wO3RoaXMucG9pbnRlclR5cGU9IiI7dGhpcy5OPW51bGw7biYmdGhpcy5pbml0KG4sVyl9OwpONT1mdW5jdGlvbihuKXtyZXR1cm4hKCFufHwhbltzMl0pfTsKbzNiPWZ1bmN0aW9uKG4sVyxELGIsdil7dGhpcy5saXN0ZW5lcj1uO3RoaXMucHJveHk9bnVsbDt0aGlzLnNyYz1XO3RoaXMudHlwZT1EO3RoaXMuY2FwdHVyZT0hIWI7dGhpcy5oYW5kbGVyPXY7dGhpcy5rZXk9Kyt1SWg7dGhpcy51Nz10aGlzLnFfPSExfTsKSEw9ZnVuY3Rpb24obil7bi51Nz0hMDtuLmxpc3RlbmVyPW51bGw7bi5wcm94eT1udWxsO24uc3JjPW51bGw7bi5oYW5kbGVyPW51bGx9OwpmSz1mdW5jdGlvbihuKXt0aGlzLnNyYz1uO3RoaXMubGlzdGVuZXJzPXt9O3RoaXMuTj0wfTsKSkg9ZnVuY3Rpb24obixXKXt2YXIgRD1XLnR5cGU7RCBpbiBuLmxpc3RlbmVycyYmZy5GSShuLmxpc3RlbmVyc1tEXSxXKSYmKEhMKFcpLG4ubGlzdGVuZXJzW0RdLmxlbmd0aD09MCYmKGRlbGV0ZSBuLmxpc3RlbmVyc1tEXSxuLk4tLSkpfTsKSVc9ZnVuY3Rpb24obixXLEQsYil7Zm9yKGxldCB2PTA7djxuLmxlbmd0aDsrK3Ype2xldCBrPW5bdl07aWYoIWsudTcmJmsubGlzdGVuZXI9PVcmJmsuY2FwdHVyZT09ISFEJiZrLmhhbmRsZXI9PWIpcmV0dXJuIHZ9cmV0dXJuLTF9OwpBSD1mdW5jdGlvbihuLFcsRCxiLHYpe2lmKGImJmIub25jZSlyZXR1cm4gU2cobixXLEQsYix2KTtpZihBcnJheS5pc0FycmF5KFcpKXtmb3IobGV0IGs9MDtrPFcubGVuZ3RoO2srKylBSChuLFdba10sRCxiLHYpO3JldHVybiBudWxsfUQ9bWgoRCk7cmV0dXJuIE41KG4pP24uU18oVyxELGcuZnQoYik/ISFiLmNhcHR1cmU6ISFiLHYpOktLKG4sVyxELCExLGIsdil9OwpLSz1mdW5jdGlvbihuLFcsRCxiLHYsayl7aWYoIVcpdGhyb3cgRXJyb3IoIkludmFsaWQgZXZlbnQgdHlwZSIpO3ZhciBoPWcuZnQodik/ISF2LmNhcHR1cmU6ISF2LHg9TzIobik7eHx8KG5bUExdPXg9bmV3IGZLKG4pKTtEPXguYWRkKFcsRCxiLGgsayk7aWYoRC5wcm94eSlyZXR1cm4gRDtiPWRVcigpO0QucHJveHk9YjtiLnNyYz1uO2IubGlzdGVuZXI9RDtpZihuLmFkZEV2ZW50TGlzdGVuZXIpdj09PXZvaWQgMCYmKHY9ITEpLG4uYWRkRXZlbnRMaXN0ZW5lcihXLnRvU3RyaW5nKCksYix2KTtlbHNlIGlmKG4uYXR0YWNoRXZlbnQpbi5hdHRhY2hFdmVudChaRChXLnRvU3RyaW5nKCkpLGIpO2Vsc2UgaWYobi5hZGRMaXN0ZW5lciYmbi5yZW1vdmVMaXN0ZW5lciluLmFkZExpc3RlbmVyKGIpO2Vsc2UgdGhyb3cgRXJyb3IoImFkZEV2ZW50TGlzdGVuZXIgYW5kIGF0dGFjaEV2ZW50IGFyZSB1bmF2YWlsYWJsZS4iKTtVMisrO3JldHVybiBEfTsKZFVyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihEKXtyZXR1cm4gVy5jYWxsKG4uc3JjLG4ubGlzdGVuZXIsRCl9CnZhciBXPXpCdDtyZXR1cm4gbn07ClNnPWZ1bmN0aW9uKG4sVyxELGIsdil7aWYoQXJyYXkuaXNBcnJheShXKSl7Zm9yKGxldCBrPTA7azxXLmxlbmd0aDtrKyspU2cobixXW2tdLEQsYix2KTtyZXR1cm4gbnVsbH1EPW1oKEQpO3JldHVybiBONShuKT9uLmVGKFcsRCxnLmZ0KGIpPyEhYi5jYXB0dXJlOiEhYix2KTpLSyhuLFcsRCwhMCxiLHYpfTsKeTc9ZnVuY3Rpb24obixXLEQsYix2KXtpZihBcnJheS5pc0FycmF5KFcpKWZvcihsZXQgaz0wO2s8Vy5sZW5ndGg7aysrKXk3KG4sV1trXSxELGIsdik7ZWxzZSBiPWcuZnQoYik/ISFiLmNhcHR1cmU6ISFiLEQ9bWgoRCksTjUobik/bi53SChXLEQsYix2KTpuJiYobj1PMihuKSkmJihXPW4uc2MoVyxELGIsdikpJiZFMihXKX07CkUyPWZ1bmN0aW9uKG4pe2lmKHR5cGVvZiBuIT09Im51bWJlciImJm4mJiFuLnU3KXt2YXIgVz1uLnNyYztpZihONShXKSlKSChXLmRfLG4pO2Vsc2V7dmFyIEQ9bi50eXBlLGI9bi5wcm94eTtXLnJlbW92ZUV2ZW50TGlzdGVuZXI/Vy5yZW1vdmVFdmVudExpc3RlbmVyKEQsYixuLmNhcHR1cmUpOlcuZGV0YWNoRXZlbnQ/Vy5kZXRhY2hFdmVudChaRChEKSxiKTpXLmFkZExpc3RlbmVyJiZXLnJlbW92ZUxpc3RlbmVyJiZXLnJlbW92ZUxpc3RlbmVyKGIpO1UyLS07KEQ9TzIoVykpPyhKSChELG4pLEQuTj09MCYmKEQuc3JjPW51bGwsV1tQTF09bnVsbCkpOkhMKG4pfX19OwpaRD1mdW5jdGlvbihuKXtyZXR1cm4gbiBpbiBpST9pSVtuXTppSVtuXT0ib24iK259Owp6QnQ9ZnVuY3Rpb24obixXKXtpZihuLnU3KW49ITA7ZWxzZXtXPW5ldyByRChXLHRoaXMpO2xldCBEPW4ubGlzdGVuZXIsYj1uLmhhbmRsZXJ8fG4uc3JjO24ucV8mJkUyKG4pO249RC5jYWxsKGIsVyl9cmV0dXJuIG59OwpPMj1mdW5jdGlvbihuKXtuPW5bUExdO3JldHVybiBuIGluc3RhbmNlb2YgZks/bjpudWxsfTsKbWg9ZnVuY3Rpb24obil7aWYodHlwZW9mIG49PT0iZnVuY3Rpb24iKXJldHVybiBuO25bdUldfHwoblt1SV09ZnVuY3Rpb24oVyl7cmV0dXJuIG4uaGFuZGxlRXZlbnQoVyl9KTsKcmV0dXJuIG5bdUldfTsKZy5vVz1mdW5jdGlvbigpe2cuRk0uY2FsbCh0aGlzKTt0aGlzLmRfPW5ldyBmSyh0aGlzKTt0aGlzLkhkPXRoaXM7dGhpcy5sWj1udWxsfTsKZEQ9ZnVuY3Rpb24obixXLEQsYil7Vz1uLmRfLmxpc3RlbmVyc1tTdHJpbmcoVyldO2lmKCFXKXJldHVybiEwO1c9Vy5jb25jYXQoKTt2YXIgdj0hMDtmb3IobGV0IGs9MDtrPFcubGVuZ3RoOysrayl7bGV0IGg9V1trXTtpZihoJiYhaC51NyYmaC5jYXB0dXJlPT1EKXtsZXQgeD1oLmxpc3RlbmVyLEw9aC5oYW5kbGVyfHxoLnNyYztoLnFfJiZKSChuLmRfLGgpO3Y9eC5jYWxsKEwsYikhPT0hMSYmdn19cmV0dXJuIHYmJiFiLmRlZmF1bHRQcmV2ZW50ZWR9OwpnLlQ3PWZ1bmN0aW9uKG4pe249KDAsZy56Nykobik7bEl8fChsST1sNGooKSk7bEkobil9OwpsNGo9ZnVuY3Rpb24oKXtpZih0eXBlb2YgTWVzc2FnZUNoYW5uZWwhPT0idW5kZWZpbmVkIil7bGV0IG49bmV3IE1lc3NhZ2VDaGFubmVsLFc9e30sRD1XO24ucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKCl7aWYoVy5uZXh0IT09dm9pZCAwKXtXPVcubmV4dDtsZXQgYj1XLmtBO1cua0E9bnVsbDtiKCl9fTsKcmV0dXJuIGZ1bmN0aW9uKGIpe0QubmV4dD17a0E6Yn07RD1ELm5leHQ7bi5wb3J0Mi5wb3N0TWVzc2FnZSgwKX19cmV0dXJuIGZ1bmN0aW9uKG4pe2cucWkuc2V0VGltZW91dChuLDApfX07ClR6cj1mdW5jdGlvbigpe2Zvcih2YXIgbjtuPWpnLnJlbW92ZSgpOyl7dHJ5e24uTi5jYWxsKG4uc2NvcGUpfWNhdGNoKFcpe2g0KFcpfUNLLnB1dChuKX1CTD0hMX07CmcuRlQ9ZnVuY3Rpb24oKXt9OwpqTWg9ZnVuY3Rpb24obil7dmFyIFc9V3x8MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbi5hcHBseSh0aGlzLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwLFcpKX19OwpnLndEPWZ1bmN0aW9uKG4pe3ZhciBXPSExLEQ7cmV0dXJuIGZ1bmN0aW9uKCl7V3x8KEQ9bigpLFc9ITApO3JldHVybiBEfX07CmcuWDE9ZnVuY3Rpb24obixXKXt0aGlzLk49MDt0aGlzLks9dm9pZCAwO3RoaXMuWD10aGlzLko9dGhpcy5XPW51bGw7dGhpcy5qPXRoaXMuVj0hMTtpZihuIT1nLkZUKXRyeXtsZXQgRD10aGlzO24uY2FsbChXLGZ1bmN0aW9uKGIpe2dwKEQsMixiKX0sZnVuY3Rpb24oYil7Z3AoRCwzLGIpfSl9Y2F0Y2goRCl7Z3AodGhpcywzLEQpfX07CnE4PWZ1bmN0aW9uKCl7dGhpcy5uZXh0PXRoaXMuY29udGV4dD10aGlzLko9dGhpcy5XPXRoaXMuTj1udWxsO3RoaXMuWD0hMX07CmcudCQ9ZnVuY3Rpb24obixXLEQpe3ZhciBiPUczLmdldCgpO2IuVz1uO2IuSj1XO2IuY29udGV4dD1EO3JldHVybiBifTsKJEc9ZnVuY3Rpb24obil7aWYobiBpbnN0YW5jZW9mIGcuWDEpcmV0dXJuIG47dmFyIFc9bmV3IGcuWDEoZy5GVCk7Z3AoVywyLG4pO3JldHVybiBXfTsKZy5ycD1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IGcuWDEoZnVuY3Rpb24oVyxEKXtEKG4pfSl9OwpwcT1mdW5jdGlvbihuLFcsRCxiKXtnLk44KG4sZy50JChXfHxnLkZULER8fG51bGwsYikpfTsKWUc9ZnVuY3Rpb24obixXKXtpZihuLk49PTApaWYobi5XKXt2YXIgRD1uLlc7aWYoRC5KKXt2YXIgYj0wLHY9bnVsbCxrPW51bGw7Zm9yKGxldCBoPUQuSjtoJiYoaC5YfHwoYisrLGguTj09biYmKHY9aCksISh2JiZiPjEpKSk7aD1oLm5leHQpdnx8KGs9aCk7diYmKEQuTj09MCYmYj09MT9ZRyhELFcpOihrPyhiPWssYi5uZXh0PT1ELlgmJihELlg9YiksYi5uZXh0PWIubmV4dC5uZXh0KTpISihEKSxmcShELHYsMyxXKSkpfW4uVz1udWxsfWVsc2UgZ3AobiwzLFcpfTsKZy5OOD1mdW5jdGlvbihuLFcpe24uSnx8bi5OIT0yJiZuLk4hPTN8fEokKG4pO24uWD9uLlgubmV4dD1XOm4uSj1XO24uWD1XfTsKU089ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9Zy50JChudWxsLG51bGwsbnVsbCk7di5OPW5ldyBnLlgxKGZ1bmN0aW9uKGssaCl7di5XPVc/ZnVuY3Rpb24oeCl7dHJ5e2xldCBMPVcuY2FsbChiLHgpO2soTCl9Y2F0Y2goTCl7aChMKX19Oms7CnYuSj1EP2Z1bmN0aW9uKHgpe3RyeXtsZXQgTD1ELmNhbGwoYix4KTtMPT09dm9pZCAwJiZ4IGluc3RhbmNlb2YgZy5JNT9oKHgpOmsoTCl9Y2F0Y2goTCl7aChMKX19Omh9KTsKdi5OLlc9bjtnLk44KG4sdik7cmV0dXJuIHYuTn07CmdwPWZ1bmN0aW9uKG4sVyxEKXtuLk49PTAmJihuPT09RCYmKFc9MyxEPW5ldyBUeXBlRXJyb3IoIlByb21pc2UgY2Fubm90IHJlc29sdmUgdG8gaXRzZWxmIikpLG4uTj0xLGcuQSQoRCxuLklRLG4uQVMsbil8fChuLks9RCxuLk49VyxuLlc9bnVsbCxKJChuKSxXIT0zfHxEIGluc3RhbmNlb2YgZy5JNXx8Q18xKG4sRCkpKX07CmcuQSQ9ZnVuY3Rpb24obixXLEQsYil7aWYobiBpbnN0YW5jZW9mIGcuWDEpcmV0dXJuIHBxKG4sVyxELGIpLCEwO2lmKG4pdHJ5e3ZhciB2PSEhbi4kZ29vZ19UaGVuYWJsZX1jYXRjaChrKXt2PSExfWVsc2Ugdj0hMTtpZih2KXJldHVybiBuLnRoZW4oVyxELGIpLCEwO2lmKGcuZnQobikpdHJ5e2xldCBrPW4udGhlbjtpZih0eXBlb2Ygaz09PSJmdW5jdGlvbiIpcmV0dXJuIEJ6aShuLGssVyxELGIpLCEwfWNhdGNoKGspe3JldHVybiBELmNhbGwoYixrKSwhMH1yZXR1cm4hMX07CkJ6aT1mdW5jdGlvbihuLFcsRCxiLHYpe2Z1bmN0aW9uIGsoTCl7eHx8KHg9ITAsYi5jYWxsKHYsTCkpfQpmdW5jdGlvbiBoKEwpe3h8fCh4PSEwLEQuY2FsbCh2LEwpKX0KdmFyIHg9ITE7dHJ5e1cuY2FsbChuLGgsayl9Y2F0Y2goTCl7ayhMKX19OwpKJD1mdW5jdGlvbihuKXtuLlZ8fChuLlY9ITAsZy5tSyhuLnlzLG4pKX07CkhKPWZ1bmN0aW9uKG4pe3ZhciBXPW51bGw7bi5KJiYoVz1uLkosbi5KPVcubmV4dCxXLm5leHQ9bnVsbCk7bi5KfHwobi5YPW51bGwpO3JldHVybiBXfTsKZnE9ZnVuY3Rpb24obixXLEQsYil7aWYoRD09MyYmVy5KJiYhVy5YKWZvcig7biYmbi5qO249bi5XKW4uaj0hMTtpZihXLk4pVy5OLlc9bnVsbCxLcShXLEQsYik7ZWxzZSB0cnl7Vy5YP1cuVy5jYWxsKFcuY29udGV4dCk6S3EoVyxELGIpfWNhdGNoKHYpe091LmNhbGwobnVsbCx2KX1HMy5wdXQoVyl9OwpLcT1mdW5jdGlvbihuLFcsRCl7Vz09Mj9uLlcuY2FsbChuLmNvbnRleHQsRCk6bi5KJiZuLkouY2FsbChuLmNvbnRleHQsRCl9OwpDXzE9ZnVuY3Rpb24obixXKXtuLmo9ITA7Zy5tSyhmdW5jdGlvbigpe24uaiYmT3UuY2FsbChudWxsLFcpfSl9OwpnLkk1PWZ1bmN0aW9uKG4pe2cuVGIuY2FsbCh0aGlzLG4pfTsKZy5QSj1mdW5jdGlvbihuLFcpe2cub1cuY2FsbCh0aGlzKTt0aGlzLmd0PW58fDE7dGhpcy5WNz1XfHxnLnFpO3RoaXMuaEU9KDAsZy5LdCkodGhpcy5SUSx0aGlzKTt0aGlzLmpiPWcuVXcoKX07CmcuWnQ9ZnVuY3Rpb24obixXLEQpe2lmKHR5cGVvZiBuPT09ImZ1bmN0aW9uIilEJiYobj0oMCxnLkt0KShuLEQpKTtlbHNlIGlmKG4mJnR5cGVvZiBuLmhhbmRsZUV2ZW50PT0iZnVuY3Rpb24iKW49KDAsZy5LdCkobi5oYW5kbGVFdmVudCxuKTtlbHNlIHRocm93IEVycm9yKCJJbnZhbGlkIGxpc3RlbmVyIGFyZ3VtZW50Iik7cmV0dXJuIE51bWJlcihXKT4yMTQ3NDgzNjQ3Py0xOmcucWkuc2V0VGltZW91dChuLFd8fDApfTsKZy5VdT1mdW5jdGlvbihuLFcpe3ZhciBEPW51bGw7cmV0dXJuKG5ldyBnLlgxKGZ1bmN0aW9uKGIsdil7RD1nLlp0KGZ1bmN0aW9uKCl7YihXKX0sbik7CkQ9PS0xJiZ2KEVycm9yKCJGYWlsZWQgdG8gc2NoZWR1bGUgdGltZXIuIikpfSkpLnNQKGZ1bmN0aW9uKGIpe2cucWkuY2xlYXJUaW1lb3V0KEQpOwp0aHJvdyBiO30pfTsKRXU9ZnVuY3Rpb24obixXLC4uLkQpe24uVy5oYXMoVyl8fG4uVy5zZXQoVyxuZXcgeTgoVyxEKSl9Owp1ZT1mdW5jdGlvbihuLFcsLi4uRCl7bi5XLmhhcyhXKXx8bi5XLnNldChXLG5ldyBpZShXLEQpKX07Cm81PWZ1bmN0aW9uKG4pe24uSi5lbmFibGVkfHxuLkouc3RhcnQoKTtuLlYrKztuLlY+PW4uWCYmbi5qKCl9OwpGY2I9ZnVuY3Rpb24obil7Zm9yKGxldCBXPTA7VzxuLmxlbmd0aDtXKyspbltXXS5jbGVhcigpfTsKZHA9ZnVuY3Rpb24obixXLC4uLkQpeyhXPW4uTihXKSkmJlcgaW5zdGFuY2VvZiBpZSYmKGliVShXLC4uLkQpLG81KG4pKX07CnozPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIDIwMDpyZXR1cm4gMDtjYXNlIDQwMDpyZXR1cm4gMztjYXNlIDQwMTpyZXR1cm4gMTY7Y2FzZSA0MDM6cmV0dXJuIDc7Y2FzZSA0MDQ6cmV0dXJuIDU7Y2FzZSA0MDk6cmV0dXJuIDEwO2Nhc2UgNDEyOnJldHVybiA5O2Nhc2UgNDI5OnJldHVybiA4O2Nhc2UgNDk5OnJldHVybiAxO2Nhc2UgNTAwOnJldHVybiAyO2Nhc2UgNTAxOnJldHVybiAxMjtjYXNlIDUwMzpyZXR1cm4gMTQ7Y2FzZSA1MDQ6cmV0dXJuIDQ7ZGVmYXVsdDpyZXR1cm4gMn19Owp3TVM9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgMDpyZXR1cm4iT0siO2Nhc2UgMTpyZXR1cm4iQ0FOQ0VMTEVEIjtjYXNlIDI6cmV0dXJuIlVOS05PV04iO2Nhc2UgMzpyZXR1cm4iSU5WQUxJRF9BUkdVTUVOVCI7Y2FzZSA0OnJldHVybiJERUFETElORV9FWENFRURFRCI7Y2FzZSA1OnJldHVybiJOT1RfRk9VTkQiO2Nhc2UgNjpyZXR1cm4iQUxSRUFEWV9FWElTVFMiO2Nhc2UgNzpyZXR1cm4iUEVSTUlTU0lPTl9ERU5JRUQiO2Nhc2UgMTY6cmV0dXJuIlVOQVVUSEVOVElDQVRFRCI7Y2FzZSA4OnJldHVybiJSRVNPVVJDRV9FWEhBVVNURUQiO2Nhc2UgOTpyZXR1cm4iRkFJTEVEX1BSRUNPTkRJVElPTiI7Y2FzZSAxMDpyZXR1cm4iQUJPUlRFRCI7Y2FzZSAxMTpyZXR1cm4iT1VUX09GX1JBTkdFIjtjYXNlIDEyOnJldHVybiJVTklNUExFTUVOVEVEIjtjYXNlIDEzOnJldHVybiJJTlRFUk5BTCI7Y2FzZSAxNDpyZXR1cm4iVU5BVkFJTEFCTEUiO2Nhc2UgMTU6cmV0dXJuIkRBVEFfTE9TUyI7CmRlZmF1bHQ6cmV0dXJuIiJ9fTsKbGU9ZnVuY3Rpb24oKXt9OwpUMz1mdW5jdGlvbihuLFcsRCl7aWYoVz09bnVsbClELnB1c2goIm51bGwiKTtlbHNle2lmKHR5cGVvZiBXPT0ib2JqZWN0Iil7aWYoQXJyYXkuaXNBcnJheShXKSl7dmFyIGI9VztXPWIubGVuZ3RoO0QucHVzaCgiWyIpO3ZhciB2PSIiO2Zvcih2YXIgaz0wO2s8VztrKyspRC5wdXNoKHYpLFQzKG4sYltrXSxEKSx2PSIsIjtELnB1c2goIl0iKTtyZXR1cm59aWYoVyBpbnN0YW5jZW9mIFN0cmluZ3x8VyBpbnN0YW5jZW9mIE51bWJlcnx8VyBpbnN0YW5jZW9mIEJvb2xlYW4pVz1XLnZhbHVlT2YoKTtlbHNle0QucHVzaCgieyIpO3Y9IiI7Zm9yKGIgaW4gVylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoVyxiKSYmKGs9V1tiXSx0eXBlb2YgayE9ImZ1bmN0aW9uIiYmKEQucHVzaCh2KSxqTyhiLEQpLEQucHVzaCgiOiIpLFQzKG4sayxEKSx2PSIsIikpO0QucHVzaCgifSIpO3JldHVybn19c3dpdGNoKHR5cGVvZiBXKXtjYXNlICJzdHJpbmciOmpPKFcsRCk7YnJlYWs7CmNhc2UgIm51bWJlciI6RC5wdXNoKGlzRmluaXRlKFcpJiYhaXNOYU4oVyk/U3RyaW5nKFcpOiJudWxsIik7YnJlYWs7Y2FzZSAiYm9vbGVhbiI6RC5wdXNoKFN0cmluZyhXKSk7YnJlYWs7Y2FzZSAiZnVuY3Rpb24iOkQucHVzaCgibnVsbCIpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVua25vd24gdHlwZTogIit0eXBlb2YgVyk7fX19OwpqTz1mdW5jdGlvbihuLFcpe1cucHVzaCgnIicsbi5yZXBsYWNlKE1qWixmdW5jdGlvbihEKXt2YXIgYj1DcVtEXTtifHwoYj0iXFx1IisoRC5jaGFyQ29kZUF0KDApfDY1NTM2KS50b1N0cmluZygxNikuc2xpY2UoMSksQ3FbRF09Yik7cmV0dXJuIGJ9KSwnIicpfTsKUkJiPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIDA6cmV0dXJuIk5vIEVycm9yIjtjYXNlIDE6cmV0dXJuIkFjY2VzcyBkZW5pZWQgdG8gY29udGVudCBkb2N1bWVudCI7Y2FzZSAyOnJldHVybiJGaWxlIG5vdCBmb3VuZCI7Y2FzZSAzOnJldHVybiJGaXJlZm94IHNpbGVudGx5IGVycm9yZWQiO2Nhc2UgNDpyZXR1cm4iQXBwbGljYXRpb24gY3VzdG9tIGVycm9yIjtjYXNlIDU6cmV0dXJuIkFuIGV4Y2VwdGlvbiBvY2N1cnJlZCI7Y2FzZSA2OnJldHVybiJIdHRwIHJlc3BvbnNlIGF0IDQwMCBvciA1MDAgbGV2ZWwiO2Nhc2UgNzpyZXR1cm4iUmVxdWVzdCB3YXMgYWJvcnRlZCI7Y2FzZSA4OnJldHVybiJSZXF1ZXN0IHRpbWVkIG91dCI7Y2FzZSA5OnJldHVybiJUaGUgcmVzb3VyY2UgaXMgbm90IGF2YWlsYWJsZSBvZmZsaW5lIjtkZWZhdWx0OnJldHVybiJVbnJlY29nbml6ZWQgZXJyb3IgY29kZSJ9fTsKQko9ZnVuY3Rpb24oKXt9OwpGMT1mdW5jdGlvbigpe307CndwPWZ1bmN0aW9uKG4pe2cub1cuY2FsbCh0aGlzKTt0aGlzLmhlYWRlcnM9bmV3IE1hcDt0aGlzLlRDPW58fG51bGw7dGhpcy5KPSExO3RoaXMuTj1udWxsO3RoaXMuSz0iIjt0aGlzLlc9MDt0aGlzLmo9IiI7dGhpcy5YPXRoaXMudHc9dGhpcy5ZPXRoaXMuY0o9ITE7dGhpcy5EPTA7dGhpcy5WPW51bGw7dGhpcy5iZD0iIjt0aGlzLk89ITF9OwpRTVU9ZnVuY3Rpb24obixXLEQsYix2LGssaCl7dmFyIHg9bmV3IHdwO004LnB1c2goeCk7VyYmeC5TXygiY29tcGxldGUiLFcpO3guZUYoInJlYWR5Iix4LldVKTtrJiYoeC5EPU1hdGgubWF4KDAsaykpO2gmJih4Lk89aCk7eC5zZW5kKG4sRCxiLHYpfTsKVjg9ZnVuY3Rpb24obixXKXtuLko9ITE7bi5OJiYobi5YPSEwLG4uTi5hYm9ydCgpLG4uWD0hMSk7bi5qPVc7bi5XPTU7UjUobik7UTgobil9OwpSNT1mdW5jdGlvbihuKXtuLmNKfHwobi5jSj0hMCxuLmRpc3BhdGNoRXZlbnQoImNvbXBsZXRlIiksbi5kaXNwYXRjaEV2ZW50KCJlcnJvciIpKX07Cm5WPWZ1bmN0aW9uKG4pe2lmKG4uSiYmdHlwZW9mIGNKIT0idW5kZWZpbmVkIilpZihuLlkmJmE1KG4pPT00KXNldFRpbWVvdXQobi5OOC5iaW5kKG4pLDApO2Vsc2UgaWYobi5kaXNwYXRjaEV2ZW50KCJyZWFkeXN0YXRlY2hhbmdlIiksbi5pc0NvbXBsZXRlKCkpe24uZ2V0U3RhdHVzKCk7bi5KPSExO3RyeXtpZihuLmlzU3VjY2VzcygpKW4uZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSxuLmRpc3BhdGNoRXZlbnQoInN1Y2Nlc3MiKTtlbHNle24uVz02O3RyeXt2YXIgVz1hNShuKT4yP24uTi5zdGF0dXNUZXh0OiIifWNhdGNoKEQpe1c9IiJ9bi5qPVcrIiBbIituLmdldFN0YXR1cygpKyJdIjtSNShuKX19ZmluYWxseXtROChuKX19fTsKUTg9ZnVuY3Rpb24obixXKXtpZihuLk4pe24uViYmKGNsZWFyVGltZW91dChuLlYpLG4uVj1udWxsKTtsZXQgRD1uLk47bi5OPW51bGw7V3x8bi5kaXNwYXRjaEV2ZW50KCJyZWFkeSIpO3RyeXtELm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsfWNhdGNoKGIpe319fTsKYTU9ZnVuY3Rpb24obil7cmV0dXJuIG4uTj9uLk4ucmVhZHlTdGF0ZTowfTsKVzM9ZnVuY3Rpb24obil7dHJ5e3JldHVybiBuLk4/bi5OLnJlc3BvbnNlVGV4dDoiIn1jYXRjaChXKXtyZXR1cm4iIn19OwpEbz1mdW5jdGlvbihuKXt0cnl7aWYoIW4uTilyZXR1cm4gbnVsbDtpZigicmVzcG9uc2UiaW4gbi5OKXJldHVybiBuLk4ucmVzcG9uc2U7c3dpdGNoKG4uYmQpe2Nhc2UgIiI6Y2FzZSAidGV4dCI6cmV0dXJuIG4uTi5yZXNwb25zZVRleHQ7Y2FzZSAiYXJyYXlidWZmZXIiOmlmKCJtb3pSZXNwb25zZUFycmF5QnVmZmVyImluIG4uTilyZXR1cm4gbi5OLm1velJlc3BvbnNlQXJyYXlCdWZmZXJ9cmV0dXJuIG51bGx9Y2F0Y2goVyl7cmV0dXJuIG51bGx9fTsKVmp0PWZ1bmN0aW9uKG4pe3ZhciBXPXt9O249KG4uTiYmYTUobik+PTI/bi5OLmdldEFsbFJlc3BvbnNlSGVhZGVycygpfHwiIjoiIikuc3BsaXQoIlxyXG4iKTtmb3IobGV0IGI9MDtiPG4ubGVuZ3RoO2IrKyl7aWYoZy5GaChuW2JdKSljb250aW51ZTt2YXIgRD1Td2gobltiXSk7bGV0IHY9RFswXTtEPURbMV07aWYodHlwZW9mIEQhPT0ic3RyaW5nIiljb250aW51ZTtEPUQudHJpbSgpO2xldCBrPVdbdl18fFtdO1dbdl09aztrLnB1c2goRCl9cmV0dXJuIFd4KFcsZnVuY3Rpb24oYil7cmV0dXJuIGIuam9pbigiLCAiKX0pfTsKdjM9ZnVuY3Rpb24obixXLEQpe3ZhciBiPWJuKCk7Vz1XKCk7bi5YKEQsYm4oKS1iKTtyZXR1cm4gV307Cm5sMT1mdW5jdGlvbihuLFcsRCxiKXtuPVVVYihQX2koS2NoKG5ldyBrWSxuKSkpLmtDKCk7Vy5sZW5ndGgmJlpiaChuLHRqVShuZXcgY0ZaLFcpKTtiIT09dm9pZCAwJiYobi5Saj1iKTt2YXIgdj1uZXcgYTRqKG4uYnVpbGQoKSk7Zy51KHYsbik7dmFyIGs9bmV3IGhxKHtmbHVzaChoKXt0cnl7di5mbHVzaChoKX1jYXRjaCh4KXtEKHgpfX19KTtrLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57c2V0VGltZW91dCgoKT0+e3RyeXtrLmooKX1maW5hbGx5e3YuZGlzcG9zZSgpfX0pfSk7CmsuWD0xRTU7ay5mbHVzaEludGVydmFsPTNFNDtrLkouc2V0SW50ZXJ2YWwoM0U0KTtyZXR1cm4ga307CldXcj1mdW5jdGlvbihuKXtpZihuLnRpbWVyPT09dm9pZCAwKXtsZXQgVz1NYXRoLm1heCgwLG4uTituLkotYm4oKSk7bi50aW1lcj1zZXRUaW1lb3V0KCgpPT57dHJ5e24uY2FsbGJhY2soKX1maW5hbGx5e24uTj1ibigpLG4udGltZXI9dm9pZCAwfX0sVyl9fTsKYnBNPWZ1bmN0aW9uKG4sVz1bXSl7cmV0dXJuIG5ldyBEaHgobixXKX07CmJuPWZ1bmN0aW9uKCl7cmV0dXJuIGdsb2JhbFRoaXMucGVyZm9ybWFuY2U/Lm5vdz8uKCk/P0RhdGUubm93KCl9OwpMVj1mdW5jdGlvbihuLFcpe2lmKG4uZGlzYWJsZSlyZXR1cm4gbmV3IHhZO1c9Vz9uMChXKTpbXTtyZXR1cm4gYnBNKHtWajpuLlZqLFJoOm4uSnAsTFQ6bi5SaSxSajpuLlJqLHREOm4udEQscm86bi5yb30sVyl9Owp2bHI9ZnVuY3Rpb24obil7aWYoIW4pcmV0dXJuIG51bGw7bj1KUyhuLDQpO3JldHVybiBuPT09bnVsbHx8bj09PXZvaWQgMD9udWxsOmszKG4pfTsKZyQ9ZnVuY3Rpb24oKXtlbS5pbnN0YW5jZXx8KGVtLmluc3RhbmNlPW5ldyBlbSk7cmV0dXJuIGVtLmluc3RhbmNlfTsKazVaPWZ1bmN0aW9uKG4sVyxELGIpe2lmKCFXJiYhRClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7aWYoIWIpcmV0dXJuIFg2KFcsRCk7dmFyIHY7KHY9bi5KKVtiXXx8KHZbYl09bmV3IFByb21pc2UoKGssaCk9PntYNihXLEQpLnRoZW4oKCk9PntuLk49YjtrKCl9LHg9PntkZWxldGUgbi5KW2JdOwpoKHgpfSl9KSk7CnJldHVybiBuLkpbYl19Owp0cT1mdW5jdGlvbihuLFcpe3JldHVybiBrNVoobixnZShXLHF2LDEseFUpLGdlKFcsR0gsMix4VSksWTkoVywzLHZvaWQgMCx4VSkpfTsKWDY9ZnVuY3Rpb24obixXKXtyZXR1cm4gVz9oSFMoVyk6bj94aGIobik6UHJvbWlzZS5yZXNvbHZlKCl9OwpoSFM9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBQcm9taXNlKChXLEQpPT57dmFyIGI9Zy56RigiU0NSSVBUIiksdj12bHIobik7Zy5QTShiLHYpO2Iub25sb2FkPSgpPT57Zy5DVChiKTtXKCl9OwpiLm9uZXJyb3I9KCk9PntnLkNUKGIpO0QoRXJyb3IoIkVXTFMiKSl9OwooZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkhFQUQiKVswXXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5hcHBlbmRDaGlsZChiKX0pfTsKeGhiPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgUHJvbWlzZShXPT57dmFyIEQ9Zy56RigiU0NSSVBUIik7aWYobil7dmFyIGI9SlMobiw2KTtiPWI9PT1udWxsfHxiPT09dm9pZCAwP251bGw6bWMoYil9ZWxzZSBiPW51bGw7RC50ZXh0Q29udGVudD1LYihiKTtPTShEKTsoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkhFQUQiKVswXXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5hcHBlbmRDaGlsZChEKTtnLkNUKEQpO1coKX0pfTsKTFcyPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIEFTKG4sMSxXKX07CmVIaD1mdW5jdGlvbihuLFcpe3JldHVybiBBUyhuLDIsVyl9OwpnbGg9ZnVuY3Rpb24obixXKXtyZXR1cm4gQVMobiwzLFcpfTsKc2w9YXN5bmMgZnVuY3Rpb24obixXLEQsYix2KXtXPWdsaChlSGgoTFcyKG5ldyAkWSxuLnJlcXVlc3RLZXkpLFcpLEQpO0Q9bi5OKCk7bj1hd2FpdCBiLlYoImMiLG4ucmVxdWVzdEtleSx2LG4uY2xpZW50LmNyZWF0ZShXLEQpKTt2YXIgaz1WbChSeihuLDIpKTtpZihrLmxlbmd0aClyZXR1cm4gdjMoYiwoKT0+e3ZhciBoPW5ldyBVaW50OEFycmF5KGsubGVuZ3RoKTtmb3IodmFyIHg9MDt4PGsubGVuZ3RoO3grKyloW3hdPWtbeF0rOTc7aWYoZy5xaS5UZXh0RGVjb2RlciloPShuZXcgVGV4dERlY29kZXIpLmRlY29kZShoKTtlbHNlIGlmKGgubGVuZ3RoPD04MTkyKWg9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGgpO2Vsc2V7eD0iIjtmb3IobGV0IEw9MDtMPGgubGVuZ3RoO0wrPTgxOTIpe2xldCBlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGgsTCxMKzgxOTIpO3grPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxlKX1oPXh9cmV0dXJuIFg0WihoKX0sCiJVIik7CmI9Z2UobixyJCwxKTtpZighYil0aHJvdyBFcnJvcigiTWlzc2luZyBmaWVsZCIpO3JldHVybiBifTsKSDM9YXN5bmMgZnVuY3Rpb24obixXLEQsYil7dmFyIHY9bi5OKCk7dmFyIGs9bmV3IE52O2s9QVMoaywxLG4ucmVxdWVzdEtleSk7dmFyIGg9QVMoaywyLFcpO1c9RC5WO2s9bi5yZXF1ZXN0S2V5O249bi5jbGllbnQ7dj1ZWShuLk4sbi5KKyIvJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9HZW5lcmF0ZUlUIixoLHZ8fHt9LHFUUyk7cmV0dXJuIFcuY2FsbChELCJnIixrLGIsdil9OwpHNWg9ZnVuY3Rpb24obixXLEQsYix2KXtyZXR1cm4gbiBpbnN0YW5jZW9mIGZWP3NsKG4sYix2LFcsRCk6c2wobixiLHYsbmV3IHhZLDApfTsKckFiPWFzeW5jIGZ1bmN0aW9uKG4sVyxELGI9ZyQoKSx2PVByb21pc2UucmVzb2x2ZSh2b2lkIDApLGspe2F3YWl0IDA7Zm9yKHZhciBoOzspe2xldCB4PW51bGw7aWYoaCl7SnEobiw3KTt0cnl7eD1hd2FpdCBJaShoLnNuYXBzaG90KHt9KSxrLmpkLCgpPT5Qcm9taXNlLnJlc29sdmUoIkU6Q1RPIikpfWNhdGNoKEcpe3g9IkU6VUNFIn19bGV0IEwsZT1uZXcgZy5oSChoP2sudzg6ay5DcSxrLm96LGsuZDgsay5BaSk7CmZvcihsZXQgRz0xO0c8PWsubWF4QXR0ZW1wdHM7RysrKXtpZihHIT09MSl7SnEobiwwKTtuLk49bmV3IFNtKGUuZ2V0VmFsdWUoKSxrLnVtLGsubmIpO2xldCByPWF3YWl0IG4uTi5wcm9taXNlO24uTj12b2lkIDA7cj09PTE/KEc9MSxlLnJlc2V0KCkpOmcueEUoZSl9dHJ5e2xldCByO0Q/cj1EOihKcShuLDUpLHI9YXdhaXQgSWkoRzVoKFcsbi5sb2dnZXIsRyxiLk4seCksay5ocCwoKT0+UHJvbWlzZS5yZWplY3QoRXJyb3IoIlJHRjpGZXRjaCB0aW1lZCBvdXQiKSkpKTsKSnEobiwzKTthd2FpdCBJaSh0cShiLHIpLGsuUVgsKCk9PlByb21pc2UucmVqZWN0KEVycm9yKCJEVFo6U2NyaXB0IHRpbWVkIG91dCIpKSk7CkpxKG4sOCk7YXdhaXQgdjtsZXQgTj1uZXcgQXEoe2NoYWxsZW5nZTpyLHgzOm4ub3B0aW9ucy54Myx3MzpuLm9wdGlvbnMudzN9KTthd2FpdCBJaShOLk92LGsucUssKCk9PlByb21pc2UucmVqZWN0KEVycm9yKCJRRUc6U2V0dXAgdGltZWQgb3V0IikpKTsKTD1OO2JyZWFrfWNhdGNoKHIpe24uaGFuZGxlRXJyb3IociksbUkobil9fWlmKG4ucU4oKSlicmVhaztMJiYoRD12b2lkIDAsdDFVKG4saCksaD1MLCRoaChuLEwpLG1JKG4pKTtKcShuLDIpO24uTj1uZXcgU20oay5GWixrLnVtLGsubmIpO24uaXNQYXVzZWQmJm4uTi5wYXVzZSgpO2F3YWl0IG4uTi5wcm9taXNlO24uTj12b2lkIDA7aWYobi5xTigpKWJyZWFrfWg/LmRpc3Bvc2UoKX07CnNQMj1mdW5jdGlvbihuKXtuLks9RXJyb3IoIkNhbmNlbGxlZCBieSBkaXNwb3NlIik7bi5qLnJlc29sdmUoKTtXMihuLlYucHJvbWlzZSk7bi5WLnJlamVjdChFcnJvcigiQ2FuY2VsbGVkIGJ5IGRpc3Bvc2UiKSk7bi5sb2dnZXIuZGlzcG9zZSgpO1Byb21pc2UuYWxsKG4uWCkudGhlbihhc3luYygpPT57bi5XPy5kaXNwb3NlKCk7bi5XPXZvaWQgMH0pOwpuLlg9W107bi5OPy5KKCk7VzIobi5KLnByb21pc2UpO24uSi5yZWplY3QoRXJyb3IoIkNhbmNlbGxlZCBieSBkaXNwb3NlIikpfTsKTlR0PWFzeW5jIGZ1bmN0aW9uKG4pe2lmKG4ucU4oKSl0aHJvdyBFcnJvcigiQWxyZWFkeSBkaXNwb3NlZCIpO24uTj8uSigpO2F3YWl0IG4uSi5wcm9taXNlfTsKcDRpPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5xSjtuLnFKPSgpPT57RCgpO1coKX19OwokaGg9ZnVuY3Rpb24obixXKXtuLnFOKCl8fChuLlc9VyxuLmxvZ2dlci51cGRhdGUoVy5RRCgpKSxuLmoucmVzb2x2ZSgpLG4uVi5yZXNvbHZlKHZvaWQgMCksbi5xSigpKX07CnQxVT1mdW5jdGlvbihuLFcpe1cmJihQcm9taXNlLmFsbChuLlgpLnRoZW4oKCk9PnZvaWQgVy5kaXNwb3NlKCkpLG4uWD1bXSl9OwpKcT1mdW5jdGlvbihuLFcpe24uWT1XO24ub3B0aW9ucy5mUD8uKFcpfTsKbUk9ZnVuY3Rpb24obil7bi5xTigpfHwobi5KLnJlc29sdmUoKSxuLko9bmV3IGcuS1YpfTsKSWk9ZnVuY3Rpb24obixXLEQpe3ZhciBiO0Q9KG5ldyBQcm9taXNlKHY9PntiPXNldFRpbWVvdXQodixXKX0pKS50aGVuKEQpOwpXMihEKTtyZXR1cm4gUHJvbWlzZS5yYWNlKFtuLmZpbmFsbHkoKCk9PnZvaWQgY2xlYXJUaW1lb3V0KGIpKSwKRF0pfTsKWVRVPWZ1bmN0aW9uKG4sVyl7bi5lbmRUaW1lTXM9RGF0ZS5ub3coKStXO24udGljaygpfTsKT2w9ZnVuY3Rpb24obil7bi5OJiYoY2xlYXJUaW1lb3V0KG4uTiksbi5OPW51bGwpfTsKUDM9ZnVuY3Rpb24obixXKXt0cnl7cmV0dXJuIGdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShuLFcpLCEwfWNhdGNoKEQpe3JldHVybiExfX07ClpvPWZ1bmN0aW9uKG4sVz0wLEQ9bi5sZW5ndGgsYil7dmFyIHY9MDtmb3IoYiYmKHY9Wm8oYikpO1c8RDtXKyspdj1IcGkoMzEsdikrKHR5cGVvZiBuPT09InN0cmluZyI/bi5jaGFyQ29kZUF0KFcpOm5bV10pfDA7cmV0dXJuIHZ9Owp5aT1mdW5jdGlvbihuKXt2YXIgW1csRF09W1pvKG4sMCxuLmxlbmd0aD4+MSxVbCksWm8obixuLmxlbmd0aD4+MSldO3JldHVybiBXLnRvU3RyaW5nKDE2KStELnRvU3RyaW5nKDE2KX07CkVsPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9W1pvKFcsMCxXLmxlbmd0aD4+MSx2b2lkIDApLFpvKFcsVy5sZW5ndGg+PjEpXTtuPW5ldyBVaW50MzJBcnJheShuLmJ1ZmZlcik7Vz1uWzBdO3ZhciBbYix2XT1EO2ZvcihEPTE7RDxuLmxlbmd0aDtEKz0yKXt2YXIgaz1XLGg9RCx4PWIsTD12O2ZvcihsZXQgZT0wO2U8MjI7ZSsrKWg9aD4+Pjh8aDw8MjQsaCs9a3wwLGhePXgrMzgyOTMsaz1rPDwzfGs+Pj4yOSxrXj1oLEw9TD4+Pjh8TDw8MjQsTCs9eHwwLExePWUrMzgyOTMseD14PDwzfHg+Pj4yOSx4Xj1MO2s9W2ssaF07bltEXV49a1swXTtEKzE8bi5sZW5ndGgmJihuW0QrMV1ePWtbMV0pfX07CmZlYj1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPSg0LShVbC5sZW5ndGgrRC5sZW5ndGgpJTQpJTQsaD1uZXcgVWludDhBcnJheSg0K2srVWwubGVuZ3RoKzQrRC5sZW5ndGgpLHg9bmV3IERhdGFWaWV3KGguYnVmZmVyKSxMPTA7eC5zZXRVaW50MzIoTCxNYXRoLnJhbmRvbSgpKjQyOTQ5NjcyOTUpO0w9TCs0K2s7aC5zZXQoVWwsTCk7TCs9VWwubGVuZ3RoO3guc2V0VWludDMyKEwsdik7aC5zZXQoRCxMKzQpO0VsKGgsYik7cmV0dXJuIG4ucXAoVyxlPT52b2lkIGdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShlKSk/UDMoVyxnLkVBKGgpKT8icyI6InQiOiJpIn07CkpBdz1mdW5jdGlvbihuLFcpe3ZhciBEPWdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShuKTtpZighRClyZXR1cm5bIm0iXTt0cnl7dmFyIGI9bHAoRCk7RWwoYixXKX1jYXRjaCh2KXtyZXR1cm4gZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKG4pLFsiYyJdfWZvcihXPTQ7Vzw3JiZiW1ddPT09MDspVysrO2ZvcihEPTA7RDxVbC5sZW5ndGg7RCsrKWlmKGJbVysrXSE9PVVsW0RdKXJldHVybiBnbG9iYWxUaGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0obiksWyJkIl07RD0obmV3IERhdGFWaWV3KGIuYnVmZmVyKSkuZ2V0VWludDMyKFcpO3JldHVybiBNYXRoLmZsb29yKERhdGUubm93KCkvMUUzKT49RD8oZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKG4pLFsiZSJdKTpbImEiLG5ldyBVaW50OEFycmF5KGIuYnVmZmVyLFcrNCldfTsKSWV3PWZ1bmN0aW9uKG4pe3ZhciBXPWdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiaVU1cS0hTzlAJCIpO2lmKCFXKXJldHVybiBuZXcgdW4obik7dmFyIEQ9Vy5zcGxpdCgiLCIpO2lmKEQubGVuZ3RoPDIpcmV0dXJuIGdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgiaVU1cS0hTzlAJCIpLG5ldyB1bihuKTtXPUQuc2xpY2UoMSk7Vy5sZW5ndGg9PT0xJiZXWzBdPT09IiImJihXPVtdKTtEPU51bWJlcihEWzBdKTtyZXR1cm4gaXNOYU4oRCl8fEQ8MHx8RD5XLmxlbmd0aD8oZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJpVTVxLSFPOUAkIiksbmV3IHVuKG4pKTpuZXcgdW4obixELFcpfTsKbWh3PWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIFcoKXtELT1iO0QtPXY7RF49dj4+PjEzO2ItPXY7Yi09RDtiXj1EPDw4O3YtPUQ7di09Yjt2Xj1iPj4+MTM7RC09YjtELT12O0RePXY+Pj4xMjtiLT12O2ItPUQ7Yl49RDw8MTY7di09RDt2LT1iO3ZePWI+Pj41O0QtPWI7RC09djtEXj12Pj4+MztiLT12O2ItPUQ7Yl49RDw8MTA7di09RDt2LT1iO3ZePWI+Pj4xNX0Kbj1TVHIobik7Zm9yKHZhciBEPTI2NTQ0MzU3NjksYj0yNjU0NDM1NzY5LHY9MzE0MTU5MjY1LGs9bi5sZW5ndGgsaD1rLHg9MDtoPj0xMjtoLT0xMix4Kz0xMilEKz1vaShuLHgpLGIrPW9pKG4seCs0KSx2Kz1vaShuLHgrOCksVygpO3YrPWs7c3dpdGNoKGgpe2Nhc2UgMTE6dis9blt4KzEwXTw8MjQ7Y2FzZSAxMDp2Kz1uW3grOV08PDE2O2Nhc2UgOTp2Kz1uW3grOF08PDg7Y2FzZSA4OmIrPW5beCs3XTw8MjQ7Y2FzZSA3OmIrPW5beCs2XTw8MTY7Y2FzZSA2OmIrPW5beCs1XTw8ODtjYXNlIDU6Yis9blt4KzRdO2Nhc2UgNDpEKz1uW3grM108PDI0O2Nhc2UgMzpEKz1uW3grMl08PDE2O2Nhc2UgMjpEKz1uW3grMV08PDg7Y2FzZSAxOkQrPW5beCswXX1XKCk7cmV0dXJuIEFBUy50b1N0cmluZyh2KX07ClNUcj1mdW5jdGlvbihuKXt2YXIgVz1bXTtmb3IobGV0IEQ9MDtEPG4ubGVuZ3RoO0QrKylXLnB1c2gobi5jaGFyQ29kZUF0KEQpKTtyZXR1cm4gV307Cm9pPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG5bVyswXSsobltXKzFdPDw4KSsobltXKzJdPDwxNikrKG5bVyszXTw8MjQpfTsKZCQ9ZnVuY3Rpb24obixXKXt2YXIgRD1zZXRUaW1lb3V0KCgpPT57bi5YLnJlc29sdmUoKX0sVyk7Cm4uYWRkT25EaXNwb3NlQ2FsbGJhY2soKCk9PnZvaWQgY2xlYXJUaW1lb3V0KEQpKX07CmxuPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9YCR7VyhuLmVycm9yLm1lc3NhZ2UpfToke1cobi5lcnJvci5zdGFjayl9YC5zdWJzdHJpbmcoMCwyMDQ4KTtXPUQubGVuZ3RoKzE7RD16SChEKTt2YXIgYj1uZXcgVWludDhBcnJheSg0K0QubGVuZ3RoKTtiLnNldChbNDIsVyYxMjd8MTI4LFc+Pjcsbi5lcnJvci5jb2RlXSk7Yi5zZXQoRCw0KTtyZXR1cm4gYn07CnpIPWZ1bmN0aW9uKG4pe3JldHVybiBnbG9iYWxUaGlzLlRleHRFbmNvZGVyPyhuZXcgVGV4dEVuY29kZXIpLmVuY29kZShuKTpMMChuKX07CktXVT1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIG4gaW5zdGFuY2VvZiBmVj9IMyhuLEQsVywxKTpuLlpqKEQpfTsKQjM9YXN5bmMgZnVuY3Rpb24obil7dmFyIFc9dm9pZCAwO24uaisrO3ZhciBEPW5ldyBnLktWO24uTzEgaW5zdGFuY2VvZiBUSCYmbi5PMS5YLnB1c2goRC5wcm9taXNlKTtpZihuLlhsKXtsZXQgaz1uZXcgZy5LVjtzZXRUaW1lb3V0KCgpPT52b2lkIGsucmVzb2x2ZSgpKTsKYXdhaXQgay5wcm9taXNlfXZhciBiPW4ubG9nZ2VyLnNoYXJlKCk7dHJ5e24uc3RhdGU9NTtsZXQgaz1bXSxoPWF3YWl0IElpKG4uTzEuc25hcHNob3Qoe3dfOnt9LHRMOmt9KSxuLmtkLnJTLCgpPT5Qcm9taXNlLnJlamVjdChuZXcgUUcoMTUsIk1EQTpUaW1lb3V0IikpKTsKam0obiwiTURBOkRpc3Bvc2VkIik7bGV0IHg9a1swXTtuLnN0YXRlPTY7bGV0IEw9YXdhaXQgSWkoS1dVKG4uVWcsYixoKSxuLmtkLlhVLCgpPT5Qcm9taXNlLnJlamVjdChuZXcgUUcoMTAsIkJXQjpUaW1lb3V0IikpKTsKam0obiwiQldCOkRpc3Bvc2VkIik7bi5zdGF0ZT03O1c9djMoYiwoKT0+e3ZhciBlPU9waShuLEwsRCx4KTtlLlgucHJvbWlzZS50aGVuKCgpPT52b2lkIG4uVigpKTsKcmV0dXJuIGV9LCJpIil9Y2F0Y2goayl7Vz8uZGlzcG9zZSgpOwppZighbi5KKXtsZXQgaD1QZjIobixrKTtELnJlc29sdmUoKTt2YXIgdjtpZih2PW4uTzEgaW5zdGFuY2VvZiBUSCYmbi5qPDIpYTppZihrIGluc3RhbmNlb2YgUUcpdj1rLmNvZGUhPT0zMiYmay5jb2RlIT09MjAmJmsuY29kZSE9PTEwO2Vsc2V7aWYoayBpbnN0YW5jZW9mIENWKXN3aXRjaChrLmNvZGUpe2Nhc2UgMjpjYXNlIDEzOmNhc2UgMTQ6Y2FzZSA0OmJyZWFrO2RlZmF1bHQ6dj0hMTticmVhayBhfXY9ITB9aWYodil7bGV0IHg9c2V0VGltZW91dCgoKT0+dm9pZCBuLlYoKSwoMStNYXRoLnJhbmRvbSgpKi4yNSkqKG4uTj82RTQ6MUUzKSk7Cm4uYWRkT25EaXNwb3NlQ2FsbGJhY2soKCk9PnZvaWQgY2xlYXJUaW1lb3V0KHgpKTsKcmV0dXJufW4uSj1ofWIuSihuLk4/MTM6MTQpO24uWC5yZWplY3Qobi5KKTtyZXR1cm59ZmluYWxseXtiLmRpc3Bvc2UoKX1uLnN0YXRlPTg7bi5qPTA7bi5OPy5kaXNwb3NlKCk7bi5OPVc7bi5YLnJlc29sdmUoKX07ClBmMj1mdW5jdGlvbihuLFcpe2lmKCEoVyBpbnN0YW5jZW9mIFFHKSlpZihXIGluc3RhbmNlb2YgQ1Ype2xldCBEPUVycm9yKFcudG9TdHJpbmcoKSk7RC5zdGFjaz1XLnN0YWNrO1c9bmV3IFFHKDExLCJFQkg6RXJyb3IiLEQpfWVsc2UgVz1uZXcgUUcoMTIsIkJTTzpVbmtub3duIixXKTtyZXR1cm4gbi5yZXBvcnRFcnJvcihXKX07CmptPWZ1bmN0aW9uKG4sVyl7aWYobi5xTigpKXRocm93IG5ldyBRRyhuLk4/MjA6MzIsVyk7fTsKT3BpPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PSh1NChpVyhXLDIpKT8/MCkqMUUzO2lmKHY8PTApdGhyb3cgbmV3IFFHKDMxLCJUVE06SW52YWxpZCIpO2lmKFk5KFcsNCkpcmV0dXJuIG5ldyBacHQobi5sb2dnZXIsWTkoVyw0KSx2KTtpZighKHU0KGlXKFcsMykpPz8wKSlyZXR1cm4gbmV3IFVoaihuLmxvZ2dlcixWbChSeihXLDEpKSx2KTtpZighYil0aHJvdyBuZXcgUUcoNCwiUE1EOlVuZGVmaW5lZCIpO2I9YihWbChSeihXLDEpKSk7aWYodHlwZW9mIGIhPT0iZnVuY3Rpb24iKXRocm93IG5ldyBRRygxNiwiQVBGOkZhaWxlZCIpO24uSz1NYXRoLmZsb29yKChEYXRlLm5vdygpK3YpLzFFMyk7bj1uZXcgRjYobi5sb2dnZXIsYix1NChpVyhXLDMpKT8/MCx2KTtuLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT52b2lkIEQucmVzb2x2ZSgpKTsKcmV0dXJuIG59OwpNdj1mdW5jdGlvbihuLFcsRCl7dHJ5e2lmKG4ucU4oKSl0aHJvdyBuZXcgUUcoMjEsIkJOVDpkaXNwb3NlZCIpO2lmKCFuLk4mJm4uSil0aHJvdyBuLko7cmV0dXJuIHlBMShuLFcsRCk/P0VsaShuLFcsRCk/P2lwcihuLFcsRCl9Y2F0Y2goYil7aWYoIVcuRVIpdGhyb3cgdyQobixiKTtyZXR1cm4gdU1aKG4sRCxiKX19Owp3JD1mdW5jdGlvbihuLFcpe1c9VyBpbnN0YW5jZW9mIFFHP1c6bmV3IFFHKDUsIlRWRDplcnJvciIsVyk7cmV0dXJuIG4ucmVwb3J0RXJyb3IoVyl9Owp5QTE9ZnVuY3Rpb24obixXLEQpe3JldHVybiBuLk4/LkZwKCgpPT5SaShuLFcpLEQsYj0+e2lmKG4uTiBpbnN0YW5jZW9mIEY2JiZXLmhHPy5yMyl0cnl7bi5jYWNoZT8uTihSaShuLFcpLGIsVy5oRy5hbSxuLkstMTIwKX1jYXRjaCh2KXtuLnJlcG9ydEVycm9yKG5ldyBRRygyNCwiRUxYOndyaXRlIix2KSl9fSl9OwpFbGk9ZnVuY3Rpb24obixXLEQpe2lmKFcuaEc/LkFCKXRyeXtsZXQgYj1uLmNhY2hlPy5KKFJpKG4sVyksVy5oRy5hbSk7cmV0dXJuIGI/RD92MyhuLmxvZ2dlciwoKT0+Zy5FQShiLDIpLCJhIik6Yjp2b2lkIDB9Y2F0Y2goYil7bi5yZXBvcnRFcnJvcihuZXcgUUcoMjMsIlJYTzpyZWFkIixiKSl9fTsKaXByPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj17c3RhY2s6W10sZXJyb3I6dm9pZCAwLGhhc0Vycm9yOiExfTt0cnl7aWYoIVcuR3IpdGhyb3cgbmV3IFFHKDI5LCJTREY6bm90cmVhZHkiKTtyZXR1cm4gemIoYixuZXcgUWkobi5sb2dnZXIsMCxuLnN0YXRlKSkuRnAoKCk9PlJpKG4sVyksRCl9Y2F0Y2godil7Yi5lcnJvcj12LGIuaGFzRXJyb3I9ITB9ZmluYWxseXtseChiKX19Owp1TVo9ZnVuY3Rpb24obixXLEQpe3ZhciBiPXtzdGFjazpbXSxlcnJvcjp2b2lkIDAsaGFzRXJyb3I6ITF9O3RyeXtsZXQgdj13JChuLEQpO3JldHVybiB6YihiLG5ldyBvbHcobi5sb2dnZXIsdikpLkZwKCgpPT5bXSxXKX1jYXRjaCh2KXtiLmVycm9yPXYsYi5oYXNFcnJvcj0hMH1maW5hbGx5e2x4KGIpfX07ClJpPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFcueEM/Vy54QzpXLndfP3YzKG4ubG9nZ2VyLCgpPT5XLnhDPXpIKFcud18pLCJjIik6W119OwpuVz1mdW5jdGlvbigpe3ZhciBuPTAsVztyZXR1cm4gRD0+e1d8fChXPW5ldyB4WSk7dmFyIGI9bmV3IFFpKFcsbiwxKSx2PWIuRnAoKCk9PnpIKEQpLCEwKTsKYi5kaXNwb3NlKCk7bisrO3JldHVybiB2fX07CmcuV1k9ZnVuY3Rpb24obixXKXtpZihuKWZvcihsZXQgRCBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLEQpJiZXKG5bRF0sRCxuKX07CnpIaT1mdW5jdGlvbigpe3ZhciBuPVtdO2cuV1koZGhaLFc9PntuLnB1c2goVyl9KTsKcmV0dXJuIG59OwpUVHI9ZnVuY3Rpb24oKXt2YXIgbj1nLkRhKCJJRlJBTUUiKSxXPXt9O2cueTIobGVTKCksRD0+e24uc2FuZGJveCYmbi5zYW5kYm94LnN1cHBvcnRzJiZuLnNhbmRib3guc3VwcG9ydHMoRCkmJihXW0RdPSEwKX0pOwpyZXR1cm4gV307CmcuRGE9ZnVuY3Rpb24obixXPWRvY3VtZW50KXtyZXR1cm4gVy5jcmVhdGVFbGVtZW50KFN0cmluZyhuKS50b0xvd2VyQ2FzZSgpKX07CmcuYnI9ZnVuY3Rpb24obixXLEQsYil7dGhpcy5sZWZ0PW47dGhpcy50b3A9Vzt0aGlzLndpZHRoPUQ7dGhpcy5oZWlnaHQ9Yn07CnZZPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG49PVc/ITA6biYmVz9uLmxlZnQ9PVcubGVmdCYmbi53aWR0aD09Vy53aWR0aCYmbi50b3A9PVcudG9wJiZuLmhlaWdodD09Vy5oZWlnaHQ6ITF9OwpnLmgxPWZ1bmN0aW9uKG4sVyxEKXtpZih0eXBlb2YgVz09PSJzdHJpbmciKWtxKG4sRCxXKTtlbHNlIGZvcihsZXQgYiBpbiBXKWtxKG4sV1tiXSxiKX07CmtxPWZ1bmN0aW9uKG4sVyxEKXsoRD14cShuLEQpKSYmKGpQQy50ZXN0KEQpP24uc3R5bGUuc2V0UHJvcGVydHkoRCxXKTpuLnN0eWxlW0RdPVcpfTsKeHE9ZnVuY3Rpb24obixXKXt2YXIgRD1MV1tXXTtpZighRCl7dmFyIGI9cHAoVyk7RD1iO24uc3R5bGVbYl09PT12b2lkIDAmJihiPShnLlpsPyJXZWJraXQiOmcuZVM/Ik1veiI6bnVsbCkrSTFpKGIpLG4uc3R5bGVbYl0hPT12b2lkIDAmJihEPWIpKTtMV1tXXT1EfXJldHVybiBEfTsKZy5naD1mdW5jdGlvbihuLFcpe3ZhciBEPW4uc3R5bGVbcHAoVyldO3JldHVybiB0eXBlb2YgRCE9PSJ1bmRlZmluZWQiP0Q6bi5zdHlsZVt4cShuLFcpXXx8IiJ9OwpYbT1mdW5jdGlvbihuLFcpe3ZhciBEPWcuSksobik7cmV0dXJuIEQuZGVmYXVsdFZpZXcmJkQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSYmKG49RC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKG4sbnVsbCkpP25bV118fG4uZ2V0UHJvcGVydHlWYWx1ZShXKXx8IiI6IiJ9OwpxdD1mdW5jdGlvbihuKXt0cnl7cmV0dXJuIG4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9Y2F0Y2goVyl7cmV0dXJue2xlZnQ6MCx0b3A6MCxyaWdodDowLGJvdHRvbTowfX19OwpnLkdOPWZ1bmN0aW9uKG4pe3ZhciBXPWcuSksobiksRD1uZXcgZy5NWSgwLDApO2lmKG49PShXP2cuSksoVyk6ZG9jdW1lbnQpLmRvY3VtZW50RWxlbWVudClyZXR1cm4gRDtuPXF0KG4pO1c9Zy5TcChXKTtXPWcuRTAoVy5OKTtELng9bi5sZWZ0K1cueDtELnk9bi50b3ArVy55O3JldHVybiBEfTsKZy4kcT1mdW5jdGlvbihuLFcpe249dDEobik7Vz10MShXKTtyZXR1cm4gbmV3IGcuTVkobi54LVcueCxuLnktVy55KX07Cmcucmg9ZnVuY3Rpb24obil7bj1xdChuKTtyZXR1cm4gbmV3IGcuTVkobi5sZWZ0LG4udG9wKX07CnQxPWZ1bmN0aW9uKG4pe2lmKG4ubm9kZVR5cGU9PTEpcmV0dXJuIGcucmgobik7bj1uLmNoYW5nZWRUb3VjaGVzP24uY2hhbmdlZFRvdWNoZXNbMF06bjtyZXR1cm4gbmV3IGcuTVkobi5jbGllbnRYLG4uY2xpZW50WSl9OwpOdD1mdW5jdGlvbihuLFcpe2lmKFcgaW5zdGFuY2VvZiBnLlFlKXt2YXIgRD1XLmhlaWdodDtXPVcud2lkdGh9ZWxzZSB0aHJvdyBFcnJvcigibWlzc2luZyBoZWlnaHQgYXJndW1lbnQiKTtuLnN0eWxlLndpZHRoPXNqKFcsITApO24uc3R5bGUuaGVpZ2h0PXNqKEQsITApfTsKc2o9ZnVuY3Rpb24obixXKXt0eXBlb2Ygbj09Im51bWJlciImJihuPShXP01hdGgucm91bmQobik6bikrInB4Iik7cmV0dXJuIG59OwpnLnBXPWZ1bmN0aW9uKG4pe3ZhciBXPUNmMSxEOyhEPVhtKG4sImRpc3BsYXkiKSl8fChEPW4uY3VycmVudFN0eWxlP24uY3VycmVudFN0eWxlLmRpc3BsYXk6bnVsbCk7aWYoKER8fG4uc3R5bGUmJm4uc3R5bGUuZGlzcGxheSkhPSJub25lIilyZXR1cm4gVyhuKTtEPW4uc3R5bGU7dmFyIGI9RC5kaXNwbGF5LHY9RC52aXNpYmlsaXR5LGs9RC5wb3NpdGlvbjtELnZpc2liaWxpdHk9ImhpZGRlbiI7RC5wb3NpdGlvbj0iYWJzb2x1dGUiO0QuZGlzcGxheT0iaW5saW5lIjtuPVcobik7RC5kaXNwbGF5PWI7RC5wb3NpdGlvbj1rO0QudmlzaWJpbGl0eT12O3JldHVybiBufTsKQ2YxPWZ1bmN0aW9uKG4pe3ZhciBXPW4ub2Zmc2V0V2lkdGgsRD1uLm9mZnNldEhlaWdodCxiPWcuWmwmJiFXJiYhRDtyZXR1cm4oVz09PXZvaWQgMHx8YikmJm4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0PyhuPXF0KG4pLG5ldyBnLlFlKG4ucmlnaHQtbi5sZWZ0LG4uYm90dG9tLW4udG9wKSk6bmV3IGcuUWUoVyxEKX07CkZXWj1mdW5jdGlvbihuLFc9e30pe3JldHVybiBuZXcgQlR0KG4sVyl9Owp3NHI9ZnVuY3Rpb24obil7bi5WLnhWKCJkYXRhIixXPT57aWYoIjEiaW4gVyl7dmFyIEQ9V1siMSJdO2xldCBiO3RyeXtiPW4uSyhEKX1jYXRjaCh2KXtZcShuLG5ldyBDVigxMyxgRXJyb3Igd2hlbiBkZXNlcmlhbGl6aW5nIHJlc3BvbnNlIGRhdGE7IGVycm9yOiAke3Z9LCByZXNwb25zZTogJHtEfWApKX1iJiZIWShuLGIpfWlmKCIyImluIFcpZm9yKFc9ZlcobixXWyIyIl0pLEQ9MDtEPG4uai5sZW5ndGg7RCsrKW4ualtEXShXKX0pOwpuLlYueFYoImVuZCIsKCk9PntKMShuLElzKG4pKTtmb3IobGV0IFc9MDtXPG4uVy5sZW5ndGg7VysrKW4uV1tXXSgpfSk7Cm4uVi54VigiZXJyb3IiLCgpPT57aWYobi5OLmxlbmd0aCE9PTApe3ZhciBXPW4ueGhyLlc7VyE9PTB8fG4ueGhyLmlzU3VjY2VzcygpfHwoVz02KTt2YXIgRD0tMTtzd2l0Y2goVyl7Y2FzZSAwOnZhciBiPTI7YnJlYWs7Y2FzZSA3OmI9MTA7YnJlYWs7Y2FzZSA4OmI9NDticmVhaztjYXNlIDY6RD1uLnhoci5nZXRTdGF0dXMoKTtiPXozKEQpO2JyZWFrO2RlZmF1bHQ6Yj0xNH1KMShuLElzKG4pKTtXPVJCYihXKSsiLCBlcnJvcjogIituLnhoci5nZXRMYXN0RXJyb3IoKTtEIT09LTEmJihXKz1gLCBodHRwIHN0YXR1cyBjb2RlOiAke0R9YCk7WXEobixuZXcgQ1YoYixXKSl9fSl9OwpZcT1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRD0wO0Q8bi5OLmxlbmd0aDtEKyspbi5OW0RdKFcpfTsKSjE9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQ9MDtEPG4uWC5sZW5ndGg7RCsrKW4uWFtEXShXKX07CklzPWZ1bmN0aW9uKG4pe3ZhciBXPXt9LEQ9Vmp0KG4ueGhyKTtPYmplY3Qua2V5cyhEKS5mb3JFYWNoKGI9PntXW2JdPURbYl19KTsKcmV0dXJuIFd9OwpIWT1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRD0wO0Q8bi5KLmxlbmd0aDtEKyspbi5KW0RdKFcpfTsKZlc9ZnVuY3Rpb24obixXKXt2YXIgRD0yLGI9e307dHJ5e2xldCBrO2s9TTFiKFcpO0Q9YVAoaywxKTt2YXIgdj1rLmdldE1lc3NhZ2UoKTtWRyhrLFJIaSwzKS5sZW5ndGgmJihiWyJncnBjLXdlYi1zdGF0dXMtZGV0YWlscy1iaW4iXT1XKX1jYXRjaChrKXtuLnhociYmbi54aHIuZ2V0U3RhdHVzKCk9PT00MDQ/KEQ9NSx2PSJOb3QgRm91bmQ6ICIrU3RyaW5nKG4ueGhyLkspKTooRD0xNCx2PWBVbmFibGUgdG8gcGFyc2UgUnBjU3RhdHVzOiAke2t9YCl9cmV0dXJue2NvZGU6RCxkZXRhaWxzOnYsbWV0YWRhdGE6Yn19OwpWMVU9ZnVuY3Rpb24obixXKXt2YXIgRD1uZXcgUVBTO0FIKG4ueGhyLCJjb21wbGV0ZSIsKCk9PntpZihuLnhoci5pc1N1Y2Nlc3MoKSl7dmFyIGI9VzMobi54aHIpO2lmKFcmJm4ueGhyLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKT09PSJ0ZXh0L3BsYWluIil7aWYoIWF0b2IpdGhyb3cgRXJyb3IoIkNhbm5vdCBkZWNvZGUgQmFzZTY0IHJlc3BvbnNlIik7Yj1hdG9iKGIpfXRyeXt2YXIgdj1uLksoYil9Y2F0Y2goaCl7WXEobixTUyhuZXcgQ1YoMTMsYEVycm9yIHdoZW4gZGVzZXJpYWxpemluZyByZXNwb25zZSBkYXRhOyBlcnJvcjogJHtofSwgcmVzcG9uc2U6ICR7Yn1gKSxEKSk7cmV0dXJufWI9ejMobi54aHIuZ2V0U3RhdHVzKCkpO0oxKG4sSXMobikpO2I9PT0wP0hZKG4sdik6WXEobixTUyhuZXcgQ1YoYiwiWGhyIHN1Y2NlZWRlZCBidXQgdGhlIHN0YXR1cyBjb2RlIGlzIG5vdCAyMDAiKSxEKSl9ZWxzZXtiPVczKG4ueGhyKTtsZXQgaDt2PUlzKG4pO2lmKGIpe3ZhciBrPQpmVyhuLGIpO2I9ay5jb2RlO2g9ay5kZXRhaWxzO2s9ay5tZXRhZGF0YX1lbHNlIGI9MixoPWBScGMgZmFpbGVkIGR1ZSB0byB4aHIgZXJyb3IuIHVyaTogJHtTdHJpbmcobi54aHIuSyl9LCBlcnJvciBjb2RlOiAke24ueGhyLld9LCBlcnJvcjogJHtuLnhoci5nZXRMYXN0RXJyb3IoKX1gLGs9djtKMShuLHYpO1lxKG4sU1MobmV3IENWKGIsaCxrKSxEKSl9fSl9OwpBMT1mdW5jdGlvbihuLFcpe1c9bi5pbmRleE9mKFcpO1c+LTEmJm4uc3BsaWNlKFcsMSl9OwpTUz1mdW5jdGlvbihuLFcpe1cuc3RhY2smJihuLnN0YWNrKz0iXG4iK1cuc3RhY2spO3JldHVybiBufTsKbUc9ZnVuY3Rpb24obil7dGhpcy5YPW4uWTZ8fG51bGw7dGhpcy5XPW4uWUJ8fCExO3RoaXMuSj12b2lkIDB9OwpLVz1mdW5jdGlvbihuLFcpe2cub1cuY2FsbCh0aGlzKTt0aGlzLnR3PW47dGhpcy5WPVc7dGhpcy5qPXZvaWQgMDt0aGlzLnN0YXR1cz10aGlzLnJlYWR5U3RhdGU9MDt0aGlzLnJlc3BvbnNlVHlwZT10aGlzLnJlc3BvbnNlVGV4dD10aGlzLnJlc3BvbnNlPXRoaXMuc3RhdHVzVGV4dD0iIjt0aGlzLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsO3RoaXMuRD1uZXcgSGVhZGVyczt0aGlzLko9bnVsbDt0aGlzLmNKPSJHRVQiO3RoaXMuTz0iIjt0aGlzLk49ITE7dGhpcy5LPXRoaXMuVz10aGlzLlg9bnVsbDt0aGlzLlk9bmV3IEFib3J0Q29udHJvbGxlcn07Ck9qPWZ1bmN0aW9uKG4pe24uVy5yZWFkKCkudGhlbihuLmxFLmJpbmQobikpLmNhdGNoKG4uRFAuYmluZChuKSl9OwpaYT1mdW5jdGlvbihuKXtuLnJlYWR5U3RhdGU9NDtuLlg9bnVsbDtuLlc9bnVsbDtuLks9bnVsbDtQWShuKX07ClBZPWZ1bmN0aW9uKG4pe24ub25yZWFkeXN0YXRlY2hhbmdlJiZuLm9ucmVhZHlzdGF0ZWNoYW5nZS5jYWxsKG4pfTsKY0FVPWZ1bmN0aW9uKG4pe2lmKG4uejcmJnR5cGVvZiBuLno3PT0iZnVuY3Rpb24iKXJldHVybiBuLno3KCk7aWYodHlwZW9mIE1hcCE9PSJ1bmRlZmluZWQiJiZuIGluc3RhbmNlb2YgTWFwfHx0eXBlb2YgU2V0IT09InVuZGVmaW5lZCImJm4gaW5zdGFuY2VvZiBTZXQpcmV0dXJuIEFycmF5LmZyb20obi52YWx1ZXMoKSk7aWYodHlwZW9mIG49PT0ic3RyaW5nIilyZXR1cm4gbi5zcGxpdCgiIik7aWYoZy5ZMihuKSl7bGV0IFc9W10sRD1uLmxlbmd0aDtmb3IobGV0IGI9MDtiPEQ7YisrKVcucHVzaChuW2JdKTtyZXR1cm4gV31yZXR1cm4gaEsobil9OwphZWg9ZnVuY3Rpb24obil7aWYobi51QiYmdHlwZW9mIG4udUI9PSJmdW5jdGlvbiIpcmV0dXJuIG4udUIoKTtpZighbi56N3x8dHlwZW9mIG4uejchPSJmdW5jdGlvbiIpe2lmKHR5cGVvZiBNYXAhPT0idW5kZWZpbmVkIiYmbiBpbnN0YW5jZW9mIE1hcClyZXR1cm4gQXJyYXkuZnJvbShuLmtleXMoKSk7aWYoISh0eXBlb2YgU2V0IT09InVuZGVmaW5lZCImJm4gaW5zdGFuY2VvZiBTZXQpKXtpZihnLlkyKG4pfHx0eXBlb2Ygbj09PSJzdHJpbmciKXtsZXQgVz1bXTtuPW4ubGVuZ3RoO2ZvcihsZXQgRD0wO0Q8bjtEKyspVy5wdXNoKEQpO3JldHVybiBXfXJldHVybiBnLkxUKG4pfX19OwpuS2k9ZnVuY3Rpb24obixXLEQpe2lmKG4uZm9yRWFjaCYmdHlwZW9mIG4uZm9yRWFjaD09ImZ1bmN0aW9uIiluLmZvckVhY2goVyxEKTtlbHNlIGlmKGcuWTIobil8fHR5cGVvZiBuPT09InN0cmluZyIpQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChuLFcsRCk7ZWxzZXtsZXQgYj1hZWgobiksdj1jQVUobiksaz12Lmxlbmd0aDtmb3IobGV0IGg9MDtoPGs7aCsrKVcuY2FsbChELHZbaF0sYiYmYltoXSxuKX19OwpnLlVqPWZ1bmN0aW9uKG4pe3RoaXMuTj10aGlzLlk9dGhpcy5YPSIiO3RoaXMuVj1udWxsO3RoaXMuaj10aGlzLko9IiI7dGhpcy5LPSExO3ZhciBXO24gaW5zdGFuY2VvZiBnLlVqPyh0aGlzLks9bi5LLHlOKHRoaXMsbi5YKSx0aGlzLlk9bi5ZLEVqKHRoaXMsbi5OKSxpcih0aGlzLG4uViksdGhpcy5KPW4uSix1cih0aGlzLG4uVy5jbG9uZSgpKSx0aGlzLmo9bi5qKTpuJiYoVz1nLmZwKFN0cmluZyhuKSkpPyh0aGlzLks9ITEseU4odGhpcyxXWzFdfHwiIiwhMCksdGhpcy5ZPW9zKFdbMl18fCIiKSxFaih0aGlzLFdbM118fCIiLCEwKSxpcih0aGlzLFdbNF0pLHRoaXMuSj1vcyhXWzVdfHwiIiwhMCksdXIodGhpcyxXWzZdfHwiIiwhMCksdGhpcy5qPW9zKFdbN118fCIiKSk6KHRoaXMuSz0hMSx0aGlzLlc9bmV3IGRoKG51bGwsdGhpcy5LKSl9Owp5Tj1mdW5jdGlvbihuLFcsRCl7bi5YPUQ/b3MoVywhMCk6VztuLlgmJihuLlg9bi5YLnJlcGxhY2UoLzokLywiIikpfTsKRWo9ZnVuY3Rpb24obixXLEQpe24uTj1EP29zKFcsITApOld9Owppcj1mdW5jdGlvbihuLFcpe2lmKFcpe1c9TnVtYmVyKFcpO2lmKGlzTmFOKFcpfHxXPDApdGhyb3cgRXJyb3IoIkJhZCBwb3J0IG51bWJlciAiK1cpO24uVj1XfWVsc2Ugbi5WPW51bGx9Owp1cj1mdW5jdGlvbihuLFcsRCl7VyBpbnN0YW5jZW9mIGRoPyhuLlc9VyxXeGgobi5XLG4uSykpOihEfHwoVz16TihXLER4UykpLG4uVz1uZXcgZGgoVyxuLkspKX07CmxyPWZ1bmN0aW9uKG4pe3JldHVybiBuIGluc3RhbmNlb2YgZy5Vaj9uLmNsb25lKCk6bmV3IGcuVWoobil9Owpvcz1mdW5jdGlvbihuLFcpe3JldHVybiBuP1c/ZGVjb2RlVVJJKG4ucmVwbGFjZSgvJTI1L2csIiUyNTI1IikpOmRlY29kZVVSSUNvbXBvbmVudChuKToiIn07CnpOPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gdHlwZW9mIG49PT0ic3RyaW5nIj8obj1lbmNvZGVVUkkobikucmVwbGFjZShXLGIweCksRCYmKG49bi5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIiUkMSIpKSxuKTpudWxsfTsKYjB4PWZ1bmN0aW9uKG4pe249bi5jaGFyQ29kZUF0KDApO3JldHVybiIlIisobj4+NCYxNSkudG9TdHJpbmcoMTYpKyhuJjE1KS50b1N0cmluZygxNil9OwpkaD1mdW5jdGlvbihuLFcpe3RoaXMuSj10aGlzLk49bnVsbDt0aGlzLlc9bnx8bnVsbDt0aGlzLlg9ISFXfTsKVE49ZnVuY3Rpb24obil7bi5OfHwobi5OPW5ldyBNYXAsbi5KPTAsbi5XJiZnLk9UKG4uVyxmdW5jdGlvbihXLEQpe24uYWRkKEc1KFcpLEQpfSkpfTsKQ1c9ZnVuY3Rpb24obixXKXtUTihuKTtXPWpTKG4sVyk7cmV0dXJuIG4uTi5oYXMoVyl9OwpqUz1mdW5jdGlvbihuLFcpe1c9U3RyaW5nKFcpO24uWCYmKFc9Vy50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gV307Cld4aD1mdW5jdGlvbihuLFcpe1cmJiFuLlgmJihUTihuKSxuLlc9bnVsbCxuLk4uZm9yRWFjaChmdW5jdGlvbihELGIpe3ZhciB2PWIudG9Mb3dlckNhc2UoKTtiIT12JiYodGhpcy5yZW1vdmUoYiksdGhpcy5yZW1vdmUodiksRC5sZW5ndGg+MCYmKHRoaXMuVz1udWxsLHRoaXMuTi5zZXQoalModGhpcyx2KSxnLlJNKEQpKSx0aGlzLko9dGhpcy5KK0QubGVuZ3RoKSl9LG4pKTsKbi5YPVd9Owp2S2I9ZnVuY3Rpb24obil7dmFyIFc9IiI7Zy5hXyhuLGZ1bmN0aW9uKEQsYil7Vys9YjtXKz0iOiI7Vys9RDtXKz0iXHJcbiJ9KTsKcmV0dXJuIFd9OwpCWT1mdW5jdGlvbihuKXtnLkZNLmNhbGwodGhpcyk7dGhpcy5KPW47dGhpcy5OPXt9fTsKRm09ZnVuY3Rpb24obixXLEQsYix2LGspe2lmKEFycmF5LmlzQXJyYXkoRCkpZm9yKGxldCBoPTA7aDxELmxlbmd0aDtoKyspRm0obixXLERbaF0sYix2LGspO2Vsc2V7Vz1TZyhXLEQsYnx8bi5oYW5kbGVFdmVudCx2LGt8fG4uSnx8bik7aWYoIVcpcmV0dXJuIG47bi5OW1cua2V5XT1XfXJldHVybiBufTsKd2g9ZnVuY3Rpb24obixXLEQpe24uVz0hMTt0aHJvdyBFcnJvcigiVGhlIHN0cmVhbSBpcyBicm9rZW4gQCIrbi5KKyIuIEVycm9yOiAiK0QrIi4gV2l0aCBpbnB1dDpcbiIrVyk7fTsKTXQ9ZnVuY3Rpb24oKXt0aGlzLlY9bnVsbDt0aGlzLks9W107dGhpcy5YPXRoaXMuSj10aGlzLlc9dGhpcy5OPXRoaXMuRD0wO3RoaXMuaj1udWxsO3RoaXMuWT0wfTsKUnM9ZnVuY3Rpb24obixXLEQsYil7bi5OPTM7bi5WPSJUaGUgc3RyZWFtIGlzIGJyb2tlbiBAIituLkQrIi8iK0QrIi4gRXJyb3I6ICIrYisiLiBXaXRoIGlucHV0OlxuIitXO3Rocm93IEVycm9yKG4uVik7fTsKUU49ZnVuY3Rpb24oKXt0aGlzLk49bnVsbDt0aGlzLko9MDt0aGlzLlc9bmV3IGtoUzt0aGlzLlg9bmV3IE10fTsKVk49ZnVuY3Rpb24obixXLEQpe24uTj0iVGhlIHN0cmVhbSBpcyBicm9rZW4gQCIrbi5KKyIuIEVycm9yOiAiK0QrIi4gV2l0aCBpbnB1dDpcbiIrVzt0aHJvdyBFcnJvcihuLk4pO307CmNZPWZ1bmN0aW9uKG4pe3JldHVybiBuPT0iXHIifHxuPT0iXG4ifHxuPT0iICJ8fG49PSJcdCJ9Owphcz1mdW5jdGlvbihuKXt0aGlzLkQ9bnVsbDt0aGlzLlY9W107dGhpcy5YPSIiO3RoaXMuY0o9W107dGhpcy5XPXRoaXMuSj0wO3RoaXMuSz0hMTt0aGlzLlk9MDt0aGlzLnR3PS9bXFwiXS9nO3RoaXMuTj10aGlzLmo9MDt0aGlzLk89ISghbnx8IW4uWkgpfTsKbl89ZnVuY3Rpb24obixXLEQpe24uaj0zO24uRD0iVGhlIHN0cmVhbSBpcyBicm9rZW4gQCIrbi5XKyIvIitEKyIuIFdpdGggaW5wdXQ6XG4iK1c7dGhyb3cgRXJyb3Iobi5EKTt9OwpXSz1mdW5jdGlvbigpe3RoaXMuaj10aGlzLlc9bnVsbDt0aGlzLko9dGhpcy5OPTA7dGhpcy5YPVtdO3RoaXMuVj0hMX07CmhDeD1mdW5jdGlvbihuKXt2YXIgVz1uLk4/bi5OLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKTpudWxsO2lmKCFXKXJldHVybiBudWxsO1c9Vy50b0xvd2VyQ2FzZSgpO3JldHVybiBXLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL2pzb24iKT9XLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL2pzb24rcHJvdG9idWYiKT9uZXcgV0s6bmV3IGFzOlcuc3RhcnRzV2l0aCgiYXBwbGljYXRpb24veC1wcm90b2J1ZiIpPyhuPW4uTj9uLk4uZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmciKTpudWxsKT9uLnRvTG93ZXJDYXNlKCk9PSJiYXNlNjQiP25ldyBRTjpudWxsOm5ldyBNdDpudWxsfTsKRGk9ZnVuY3Rpb24obixXKXtuLmohPVcmJihuLmo9VyxuLksmJm4uSygpKX07CmJIPWZ1bmN0aW9uKG4pe24uWS5UaSgpO2lmKG4uTil7bGV0IFc9bi5OO24uTj1udWxsO1cuYWJvcnQoKTtXLmRpc3Bvc2UoKX19Owp2Sz1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRD0wO0Q8bi5sZW5ndGg7RCsrKXtsZXQgYj1uW0RdO1cuZm9yRWFjaChmdW5jdGlvbih2KXt0cnl7dihiKX1jYXRjaChrKXt9fSl9fTsKa3Q9ZnVuY3Rpb24obixXKXt2YXIgRD1uLkpbV107RCYmRC5mb3JFYWNoKGZ1bmN0aW9uKGIpe3RyeXtiKCl9Y2F0Y2godil7fX0pOwooRD1uLk5bV10pJiZELmZvckVhY2goZnVuY3Rpb24oYil7YigpfSk7Cm4uTltXXT1bXX07Cnh4aj1mdW5jdGlvbihuLFcpe3JldHVybiBXLnJlZHVjZSgoRCxiKT0+dj0+Yi5pbnRlcmNlcHQodixEKSxuKX07Ckx4aT1mdW5jdGlvbihuLFcpe3JldHVybiBXLnJlZHVjZSgoRCxiKT0+dj0+Yi5pbnRlcmNlcHQodixEKSxuKX07CmVDVT1mdW5jdGlvbihuLFcsRCl7dmFyIGI9Vy5sMCx2PVcuZ2V0TWV0YWRhdGEoKSxrPWhhKG4sITApO249eHQobix2LGssRCtiLmdldE5hbWUoKSk7RD1MXyhrLGIuVywhMSk7VjFVKEQsdlsiWC1Hb29nLUVuY29kZS1SZXNwb25zZS1JZi1FeGVjdXRhYmxlIl09PT0iYmFzZTY0Iik7Vz1iLk4oVy5mdik7ay5zZW5kKG4sIlBPU1QiLFcpO3JldHVybiBEfTsKZ0t0PWZ1bmN0aW9uKG4sVyxELGIsdixrPXt9KXt2YXIgaD1XLnN1YnN0cmluZygwLFcubGVuZ3RoLXYubmFtZS5sZW5ndGgpLHg9az8uc2lnbmFsO3JldHVybiBMeGkoTD0+bmV3IFByb21pc2UoKGUsRyk9PntpZih4Py5hYm9ydGVkKXtsZXQgSD1uZXcgQ1YoMSwiQWJvcnRlZCIpO0guY2F1c2U9eC5yZWFzb247RyhIKX1lbHNle3ZhciByPXt9LE49ZUNVKG4sTCxoKTtOLnhWKCJlcnJvciIsSD0+dm9pZCBHKEgpKTsKTi54VigibWV0YWRhdGEiLEg9PntyPUh9KTsKTi54VigiZGF0YSIsSD0+e2UoRldaKEgscikpfSk7CngmJnguYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLCgpPT57Ti5jYW5jZWwoKTt2YXIgSD1uZXcgQ1YoMSwiQWJvcnRlZCIpO0guY2F1c2U9eC5yZWFzb247RyhIKX0pfX0pLG4uRk4pLmNhbGwobix2LkooRCxiKSkudGhlbihMPT5MLlB6KX07ClhkPWZ1bmN0aW9uKG4sVz0hMSl7ZVgoMjgsNzIzMSxuKTtpZihuW0lbMjhdXSE9PUlbMTVdKXt2YXIgRD1uW0lbOF1dKCk7RFtJWzM0XV0oSVszMl0sSVs0MF0pO3JldHVybiBEfXZhciBiPW5bSVs3Ml1dKCk7RD1uZXcgZy5VaihiKTt2YXIgdj1uW0lbMzNdXShJWzcwXSksaz1NMygxNiw0MjYyLG5bSVszM11dKElbNzRdKXx8SVsyMV0pW0lbMzZdXShJWzQ3XSk7aWYodiYmayYma1tJWzVdXT4xJiZrWzFdKXJldHVybiBiPUQuTixuPWJbSVs4MV1dKC9eW14uXSovLElbMjFdKSxFaihELGAke2JbSVsxOF1dKElbNDRdKT09PTA/SVs0NF06SVs4MF19JHt2fS0tLSR7a1sxXX0ke259YCksRD1uZXcgZy53WihEW0lbMF1dKCkpLERbSVszNF1dKElbMzhdLElbNDBdKSxEO2lmKFcpcmV0dXJuIEQ9bltJWzhdXSgpLERbSVszNF1dKElbMzhdLElbNDBdKSxEO3Y9RC5OW0lbNl1dKElbNTZdKTtELk5bSVs2XV0oSVsyN10pPyhFaihELElbODJdKSxiPURbSVswXV0oKSk6RC5OW0lbNl1dKElbNTJdKT8KKEVqKEQsSVsxOV0pLGI9RFtJWzBdXSgpKTooRD1lQShiKSxnWChEKSYmKGI9RCkpO0Q9bmV3IGcud1ooYik7RFtJWzM0XV0oSVs3OV0sSVs0MF0pO3YmJkRbSVszNF1dKElbMl0sSVs3MV0pO3JldHVybiBEfTsKWVk9ZnVuY3Rpb24obixXLEQsYix2LGs9e30pe3JldHVybiBnS3QobixXLEQsYix2LGspfTsKaGE9ZnVuY3Rpb24obixXKXtXPW4uTiYmIVc7cmV0dXJuIG4uU258fFc/bmV3IHdwKG5ldyBtRyh7WTY6bi5TbixZQjpXfSkpOm5ldyB3cH07Cnh0PWZ1bmN0aW9uKG4sVyxELGIpe1dbIkNvbnRlbnQtVHlwZSJdPSJhcHBsaWNhdGlvbi9qc29uK3Byb3RvYnVmIjtXWyJYLVVzZXItQWdlbnQiXT0iZ3JwYy13ZWItamF2YXNjcmlwdC8wLjEiO3ZhciB2PVcuQXV0aG9yaXphdGlvbjtpZih2JiZYMnIuaGFzKHYuc3BsaXQoIiAiKVswXSl8fG4ud2l0aENyZWRlbnRpYWxzKUQuTz0hMDtpZihuLllPKW49YixnLkdGKFcpP2I9bjooVz12S2IoVyksdHlwZW9mIG49PT0ic3RyaW5nIj9iPWcudWYobixxaCgiJGh0dHBIZWFkZXJzIiksVyk6KG4uVy5zZXQoIiRodHRwSGVhZGVycyIsVyksYj1uKSk7ZWxzZSBmb3IobGV0IGsgb2YgT2JqZWN0LmtleXMoVykpRC5oZWFkZXJzLnNldChrLFdba10pO3JldHVybiBifTsKTF89ZnVuY3Rpb24obixXLEQpe2lmKEQpe24uaXNBY3RpdmUoKTtEPW5ldyBxQXQobik7dmFyIGI9bmV3IEdoaShEKX1yZXR1cm4gbmV3IHR1MSh7eGhyOm4sTUU6Yn0sVyl9Owpxdz1mdW5jdGlvbigpe3RoaXMuTj1uZXcgJHhoO3RoaXMuSj0iaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20iLnJlcGxhY2UoL1wvKyQvLCIiKX07CmcuR0s9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5yZXBsYWNlKHI0MixmdW5jdGlvbihELGIpe3RyeXtsZXQgdj1nLiR5KFcsYik7aWYodj09bnVsbHx8di50b1N0cmluZygpPT1udWxsKXJldHVybiBEO3Y9di50b1N0cmluZygpO2lmKHY9PSIifHwhZy5GaChnLnJUKHYpKSlyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHYpLnJlcGxhY2UoLyUyQy9nLCIsIil9Y2F0Y2godil7fXJldHVybiBEfSl9OwpzMnc9ZnVuY3Rpb24oKXt2YXIgbj10YTskdC5pbnN0YW5jZXx8KCR0Lmluc3RhbmNlPW5ldyAkdChuKSk7cmV0dXJuICR0Lmluc3RhbmNlfTsKclg9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5XP24uVzpuLlc9bmV3IFByb21pc2UoYXN5bmMgRD0+e3ZhciBiPXdpbmRvdy5BYm9ydENvbnRyb2xsZXI/bmV3IHdpbmRvdy5BYm9ydENvbnRyb2xsZXI6dm9pZCAwLHY9Yj8uc2lnbmFsLGs9ITE7dHJ5e2ImJihuLk49bi5BJC5MUygoKT0+e2IuYWJvcnQoKX0sV3x8MkU0KSksYXdhaXQgZmV0Y2goIi9nZW5lcmF0ZV8yMDQiLHttZXRob2Q6IkhFQUQiLApzaWduYWw6dn0pLGs9ITB9Y2F0Y2h7az0hMX1maW5hbGx5e24uVz12b2lkIDAsbi5OJiYobi5BJC5zTyhuLk4pLG4uTj0wKSxrIT09bi5pc09ubGluZSYmKG4uaXNPbmxpbmU9ayxuLmlzT25saW5lP24uZGlzcGF0Y2hFdmVudCgibmV0d29ya3N0YXR1cy1vbmxpbmUiKTpuLmRpc3BhdGNoRXZlbnQoIm5ldHdvcmtzdGF0dXMtb2ZmbGluZSIpKSxEKGspfX0pfTsKTldoPWZ1bmN0aW9uKG4pe24uTj09PS0xJiYobi5OPW4uZGF0YS5yZWR1Y2UoKFcsRCxiKT0+VysoRD8yKipiOjApLDApKTsKcmV0dXJuIG4uTn07Cmcuc0k9ZnVuY3Rpb24obixXLEQ9ITEpe2lmKG4mJlchPT1udWxsJiZXIT1XLnRvcCl7aWYoIVcudG9wKXJldHVybiBuZXcgZy5RZSgtMTIyNDU5MzMsLTEyMjQ1OTMzKTtXPVcudG9wfXRyeXtpZihEKXZhciBiPShuZXcgZy5RZShXLmlubmVyV2lkdGgsVy5pbm5lckhlaWdodCkpLnJvdW5kKCk7ZWxzZXtsZXQgdj0oV3x8d2luZG93KS5kb2N1bWVudCxrPXYuY29tcGF0TW9kZT09IkNTUzFDb21wYXQiP3YuZG9jdW1lbnRFbGVtZW50OnYuYm9keTtiPShuZXcgZy5RZShrLmNsaWVudFdpZHRoLGsuY2xpZW50SGVpZ2h0KSkucm91bmQoKX1yZXR1cm4gYn1jYXRjaCh2KXtyZXR1cm4gbmV3IGcuUWUoLTEyMjQ1OTMzLC0xMjI0NTkzMyl9fTsKZy5Odz1mdW5jdGlvbihuKXtyZXR1cm4gbi5wcmVyZW5kZXJpbmc/Mzp7dmlzaWJsZToxLGhpZGRlbjoyLHByZXJlbmRlcjozLHByZXZpZXc6NCx1bmxvYWRlZDo1LCIiOjB9W24udmlzaWJpbGl0eVN0YXRlfHxuLndlYmtpdFZpc2liaWxpdHlTdGF0ZXx8bi5tb3pWaXNpYmlsaXR5U3RhdGV8fCIiXT8/MH07CmcucF89ZnVuY3Rpb24obixXLEQpe2cuRk0uY2FsbCh0aGlzKTt0aGlzLk49bnVsbDt0aGlzLlg9ITE7dGhpcy5WPW47dGhpcy5qPUQ7dGhpcy5KPVd8fHdpbmRvdzt0aGlzLlc9KDAsZy5LdCkodGhpcy5PdCx0aGlzKX07Cll0PWZ1bmN0aW9uKG4pe249bi5KO3JldHVybiBuLnJlcXVlc3RBbmltYXRpb25GcmFtZXx8bi53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fG4ubW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxuLm9SZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fG4ubXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fG51bGx9OwpISz1mdW5jdGlvbihuKXtuPW4uSjtyZXR1cm4gbi5jYW5jZWxBbmltYXRpb25GcmFtZXx8bi5jYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fG4ud2Via2l0Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxuLm1vekNhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZXx8bi5vQ2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxuLm1zQ2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxudWxsfTsKZy5mXz1mdW5jdGlvbihuLFcsRCl7Zy5GTS5jYWxsKHRoaXMpO3RoaXMuTj1uO3RoaXMuZ3Q9V3x8MDt0aGlzLko9RDt0aGlzLlc9KDAsZy5LdCkodGhpcy5pJCx0aGlzKX07CmcuSmE9ZnVuY3Rpb24obixXKXtuLmlzQWN0aXZlKCl8fG4uc3RhcnQoVyl9OwpJRj1mdW5jdGlvbihuKXtuLlo2PWcuWnQoKCk9PntuLlo2PW51bGw7bi5OJiYhbi5KJiYobi5OPSExLElGKG4pKX0sbi5ndCk7CnZhciBXPW4uVztuLlc9bnVsbDtuLlguYXBwbHkobnVsbCxXKX07ClNBPWZ1bmN0aW9uKG4pe3JldHVybiB0eXBlb2Ygbi5jbGFzc05hbWU9PSJzdHJpbmciP24uY2xhc3NOYW1lOm4uZ2V0QXR0cmlidXRlJiZuLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiJ9OwpBYT1mdW5jdGlvbihuKXtyZXR1cm4gbi5jbGFzc0xpc3Q/bi5jbGFzc0xpc3Q6U0EobikubWF0Y2goL1xTKy9nKXx8W119OwptYT1mdW5jdGlvbihuLFcpe3R5cGVvZiBuLmNsYXNzTmFtZT09InN0cmluZyI/bi5jbGFzc05hbWU9VzpuLnNldEF0dHJpYnV0ZSYmbi5zZXRBdHRyaWJ1dGUoImNsYXNzIixXKX07CmcuS189ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5jbGFzc0xpc3Q/bi5jbGFzc0xpc3QuY29udGFpbnMoVyk6Zy5qaihBYShuKSxXKX07CmcuVUk9ZnVuY3Rpb24obixXKXtpZihuLmNsYXNzTGlzdCluLmNsYXNzTGlzdC5hZGQoVyk7ZWxzZSBpZighZy5LXyhuLFcpKXtsZXQgRD1TQShuKTttYShuLEQrKEQubGVuZ3RoPjA/IiAiK1c6VykpfX07CnlLPWZ1bmN0aW9uKG4sVyl7aWYobi5jbGFzc0xpc3QpQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChXLGZ1bmN0aW9uKGIpe2cuVUkobixiKX0pOwplbHNle3ZhciBEPXt9O0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoQWEobiksZnVuY3Rpb24oYil7RFtiXT0hMH0pOwpBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKFcsZnVuY3Rpb24oYil7RFtiXT0hMH0pOwpXPSIiO2ZvcihsZXQgYiBpbiBEKVcrPVcubGVuZ3RoPjA/IiAiK2I6YjttYShuLFcpfX07CmcuRUk9ZnVuY3Rpb24obixXKXtuLmNsYXNzTGlzdD9uLmNsYXNzTGlzdC5yZW1vdmUoVyk6Zy5LXyhuLFcpJiZtYShuLEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChBYShuKSxmdW5jdGlvbihEKXtyZXR1cm4gRCE9V30pLmpvaW4oIiAiKSl9OwpwMmo9ZnVuY3Rpb24obixXKXtuLmNsYXNzTGlzdD9BcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKFcsZnVuY3Rpb24oRCl7Zy5FSShuLEQpfSk6bWEobixBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoQWEobiksZnVuY3Rpb24oRCl7cmV0dXJuIWcuamooVyxEKX0pLmpvaW4oIiAiKSl9OwpnLmlIPWZ1bmN0aW9uKG4sVyxEKXtEP2cuVUkobixXKTpnLkVJKG4sVyl9Owp1SD1mdW5jdGlvbigpe307CllBMT1mdW5jdGlvbihuKXtpZihuIGluc3RhbmNlb2Ygb0Z8fG4gaW5zdGFuY2VvZiBkWHx8biBpbnN0YW5jZW9mIHpLKXJldHVybiBuO2lmKHR5cGVvZiBuLm5leHQ9PSJmdW5jdGlvbiIpcmV0dXJuIG5ldyBvRigoKT0+bik7CmlmKHR5cGVvZiBuW1N5bWJvbC5pdGVyYXRvcl09PSJmdW5jdGlvbiIpcmV0dXJuIG5ldyBvRigoKT0+bltTeW1ib2wuaXRlcmF0b3JdKCkpOwppZih0eXBlb2Ygbi5ncT09ImZ1bmN0aW9uIilyZXR1cm4gbmV3IG9GKCgpPT5uLmdxKCkpOwp0aHJvdyBFcnJvcigiTm90IGFuIGl0ZXJhdG9yIG9yIGl0ZXJhYmxlLiIpO307CmxIPWZ1bmN0aW9uKG4sVyxELGIsdixrLGgseCl7dGhpcy5OPW47dGhpcy5LPVc7dGhpcy5XPUQ7dGhpcy5qPWI7dGhpcy5YPXY7dGhpcy5WPWs7dGhpcy5KPWg7dGhpcy5ZPXh9OwpUSz1mdW5jdGlvbihuLFcpe2lmKFc9PTApcmV0dXJuIG4uTjtpZihXPT0xKXJldHVybiBuLko7dmFyIEQ9d1Eobi5OLG4uVyxXKSxiPXdRKG4uVyxuLlgsVyk7bj13UShuLlgsbi5KLFcpO0Q9d1EoRCxiLFcpO2I9d1EoYixuLFcpO3JldHVybiB3UShELGIsVyl9OwpIMGk9ZnVuY3Rpb24obixXKXt2YXIgRD0oVy1uLk4pLyhuLkotbi5OKTtpZihEPD0wKXJldHVybiAwO2lmKEQ+PTEpcmV0dXJuIDE7dmFyIGI9MCx2PTEsaz0wO2Zvcih2YXIgaD0wO2g8ODtoKyspe2s9VEsobixEKTtsZXQgeD0oVEsobixEKzFFLTYpLWspLzFFLTY7aWYoTWF0aC5hYnMoay1XKTwxRS02KXJldHVybiBEO2lmKE1hdGguYWJzKHgpPDFFLTYpYnJlYWs7ZWxzZSBrPFc/Yj1EOnY9RCxELT0oay1XKS94fWZvcihoPTA7TWF0aC5hYnMoay1XKT4xRS02JiZoPDg7aCsrKWs8Vz8oYj1ELEQ9KEQrdikvMik6KHY9RCxEPShEK2IpLzIpLGs9VEsobixEKTtyZXR1cm4gRH07CmpBPWZ1bmN0aW9uKG4pe3JldHVybihuPW4uZXhlYyhnLlhRKCkpKT9uWzFdOiIifTsKQ189ZnVuY3Rpb24obil7cmV0dXJuIGcuY1ooZlgyLG4pPj0wfTsKQks9ZnVuY3Rpb24obil7Zy5GTS5jYWxsKHRoaXMpO3RoaXMuVj0xO3RoaXMuVz1bXTt0aGlzLlg9MDt0aGlzLk49W107dGhpcy5KPXt9O3RoaXMuSz0hIW59OwpKNHI9ZnVuY3Rpb24obixXLEQpe2cubUsoZnVuY3Rpb24oKXtuLmFwcGx5KFcsRCl9KX07CmcuRmQ9ZnVuY3Rpb24obil7dGhpcy5OPW59Owp3WD1mdW5jdGlvbihuKXt0aGlzLk49bn07Ck13PWZ1bmN0aW9uKG4pe3RoaXMuZGF0YT1ufTsKUkY9ZnVuY3Rpb24obil7cmV0dXJuIG49PT12b2lkIDB8fG4gaW5zdGFuY2VvZiBNdz9uOm5ldyBNdyhuKX07ClFLPWZ1bmN0aW9uKG4pe3RoaXMuTj1ufTsKVks9ZnVuY3Rpb24obil7dGhpcy5OPW59OwpJWDE9ZnVuY3Rpb24oKXt9OwpjSz1mdW5jdGlvbigpe307CmFGPWZ1bmN0aW9uKG4pe3RoaXMuTj1uO3RoaXMuSj1udWxsfTsKbmU9ZnVuY3Rpb24obil7aWYobi5OPT1udWxsKXRocm93IEVycm9yKCJTdG9yYWdlIG1lY2hhbmlzbTogU3RvcmFnZSB1bmF2YWlsYWJsZSIpO24uaXNBdmFpbGFibGUoKXx8aDQoRXJyb3IoIlN0b3JhZ2UgbWVjaGFuaXNtOiBTdG9yYWdlIHVuYXZhaWxhYmxlIikpfTsKV1M9ZnVuY3Rpb24oKXt2YXIgbj1udWxsO3RyeXtuPWcucWkubG9jYWxTdG9yYWdlfHxudWxsfWNhdGNoKFcpe31hRi5jYWxsKHRoaXMsbil9OwpEUT1mdW5jdGlvbigpe3ZhciBuPW51bGw7dHJ5e249Zy5xaS5zZXNzaW9uU3RvcmFnZXx8bnVsbH1jYXRjaChXKXt9YUYuY2FsbCh0aGlzLG4pfTsKYkM9ZnVuY3Rpb24obixXKXt0aGlzLko9bjt0aGlzLk49VysiOjoifTsKZy52Uz1mdW5jdGlvbihuKXt2YXIgVz1uZXcgV1M7cmV0dXJuIFcuaXNBdmFpbGFibGUoKT9uP25ldyBiQyhXLG4pOlc6bnVsbH07CmtqPWZ1bmN0aW9uKG4sVyl7dGhpcy5OPW47dGhpcy5KPVd9Owp4aj1mdW5jdGlvbihuKXt2YXIgVyxELGI9bi5sZW5ndGgsdj0wO2ZvcihXPTA7VzxiO1crKyl7dmFyIGs9bi5jaGFyQ29kZUF0KFcpO2lmKChrJjY0NTEyKT09PTU1Mjk2JiZXKzE8Yil7dmFyIGg9bi5jaGFyQ29kZUF0KFcrMSk7KGgmNjQ1MTIpPT09NTYzMjAmJihrPTY1NTM2KyhrLTU1Mjk2PDwxMCkrKGgtNTYzMjApLFcrKyl9dis9azwxMjg/MTprPDIwNDg/MjprPDY1NTM2PzM6NH12YXIgeD1uZXcgaGsuT20odik7Zm9yKFc9RD0wO0Q8djtXKyspaz1uLmNoYXJDb2RlQXQoVyksKGsmNjQ1MTIpPT09NTUyOTYmJlcrMTxiJiYoaD1uLmNoYXJDb2RlQXQoVysxKSwoaCY2NDUxMik9PT01NjMyMCYmKGs9NjU1MzYrKGstNTUyOTY8PDEwKSsoaC01NjMyMCksVysrKSksazwxMjg/eFtEKytdPWs6KGs8MjA0OD94W0QrK109MTkyfGs+Pj42OihrPDY1NTM2P3hbRCsrXT0yMjR8az4+PjEyOih4W0QrK109MjQwfGs+Pj4xOCx4W0QrK109MTI4fGs+Pj4xMiY2MykseFtEKytdPTEyOHxrPj4+CjYmNjMpLHhbRCsrXT0xMjh8ayY2Myk7cmV0dXJuIHh9OwpMZT1mdW5jdGlvbihuKXtmb3IodmFyIFc9bi5sZW5ndGg7LS1XPj0wOyluW1ddPTB9Owpldj1mdW5jdGlvbihuLFcsRCxiLHYpe3RoaXMua089bjt0aGlzLmJFPVc7dGhpcy50cD1EO3RoaXMuYXo9Yjt0aGlzLnVIPXY7dGhpcy5aZD1uJiZuLmxlbmd0aH07CnZhciBTQTE9ZnVuY3Rpb24obil7cmV0dXJuIGc3W0lbMTBdXSh0aGlzLDI1LDYzMjIsbil9Owp0az1mdW5jdGlvbihuLFcpe3RoaXMuTTA9bjt0aGlzLnJPPTA7dGhpcy5BWj1XfTsKcjc9ZnVuY3Rpb24obixXKXtuLkZCW24ucGVuZGluZysrXT1XJjI1NTtuLkZCW24ucGVuZGluZysrXT1XPj4+OCYyNTV9OwpzJD1mdW5jdGlvbihuLFcsRCl7bi5ZSD4xNi1EPyhuLlJKfD1XPDxuLllIJjY1NTM1LHI3KG4sbi5SSiksbi5SSj1XPj4xNi1uLllILG4uWUgrPUQtMTYpOihuLlJKfD1XPDxuLllIJjY1NTM1LG4uWUgrPUQpfTsKTjY9ZnVuY3Rpb24obixXLEQpe3MkKG4sRFtXKjJdLERbVyoyKzFdKX07CnBlPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9MDtkbyBEfD1uJjEsbj4+Pj0xLEQ8PD0xO3doaWxlKC0tVz4wKTtyZXR1cm4gRD4+PjF9OwpZaj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9QXJyYXkoMTYpLHY9MCxrO2ZvcihrPTE7azw9MTU7aysrKWJba109dj12K0Rbay0xXTw8MTtmb3IoRD0wO0Q8PVc7RCsrKXY9bltEKjIrMV0sdiE9PTAmJihuW0QqMl09cGUoYlt2XSsrLHYpKX07CkhTPWZ1bmN0aW9uKG4pe3ZhciBXO2ZvcihXPTA7VzwyODY7VysrKW4ua0dbVyoyXT0wO2ZvcihXPTA7VzwzMDtXKyspbi5sZltXKjJdPTA7Zm9yKFc9MDtXPDE5O1crKyluLndoW1cqMl09MDtuLmtHWzUxMl09MTtuLlhSPW4uVHY9MDtuLndYPW4ubWF0Y2hlcz0wfTsKZmU9ZnVuY3Rpb24obil7bi5ZSD44P3I3KG4sbi5SSik6bi5ZSD4wJiYobi5GQltuLnBlbmRpbmcrK109bi5SSik7bi5SSj0wO24uWUg9MH07CkprPWZ1bmN0aW9uKG4sVyxEKXtmZShuKTtyNyhuLEQpO3I3KG4sfkQpO2hrLlA3KG4uRkIsbi53aW5kb3csVyxELG4ucGVuZGluZyk7bi5wZW5kaW5nKz1EfTsKSVM9ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9VyoyLGs9RCoyO3JldHVybiBuW3ZdPG5ba118fG5bdl09PT1uW2tdJiZiW1ddPD1iW0RdfTsKU3Y9ZnVuY3Rpb24obixXLEQpe2Zvcih2YXIgYj1uLmhlYXBbRF0sdj1EPDwxO3Y8PW4uVW47KXt2PG4uVW4mJklTKFcsbi5oZWFwW3YrMV0sbi5oZWFwW3ZdLG4uZGVwdGgpJiZ2Kys7aWYoSVMoVyxiLG4uaGVhcFt2XSxuLmRlcHRoKSlicmVhaztuLmhlYXBbRF09bi5oZWFwW3ZdO0Q9djt2PDw9MX1uLmhlYXBbRF09Yn07ClUkPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj0wO2lmKG4ud1ghPT0wKXtkb3t2YXIgdj1uLkZCW24uQTgrYioyXTw8OHxuLkZCW24uQTgrYioyKzFdO3ZhciBrPW4uRkJbbi50YStiXTtiKys7aWYodj09PTApTjYobixrLFcpO2Vsc2V7dmFyIGg9QWtba107TjYobixoKzI1NisxLFcpO3ZhciB4PW0kW2hdO3ghPT0wJiYoay09S2VbaF0scyQobixrLHgpKTt2LS07aD12PDI1Nj9PJFt2XTpPJFsyNTYrKHY+Pj43KV07TjYobixoLEQpO3g9UFNbaF07eCE9PTAmJih2LT1aUVtoXSxzJChuLHYseCkpfX13aGlsZShiPG4ud1gpfU42KG4sMjU2LFcpfTsKRSQ9ZnVuY3Rpb24obixXKXt2YXIgRD1XLk0wLGI9Vy5BWi5rTyx2PVcuQVouWmQsaz1XLkFaLmF6LGgseD0tMTtuLlVuPTA7bi5PND01NzM7Zm9yKGg9MDtoPGs7aCsrKURbaCoyXSE9PTA/KG4uaGVhcFsrK24uVW5dPXg9aCxuLmRlcHRoW2hdPTApOkRbaCoyKzFdPTA7Zm9yKDtuLlVuPDI7KXt2YXIgTD1uLmhlYXBbKytuLlVuXT14PDI/Kyt4OjA7RFtMKjJdPTE7bi5kZXB0aFtMXT0wO24uWFItLTt2JiYobi5Udi09YltMKjIrMV0pfVcuck89eDtmb3IoaD1uLlVuPj4xO2g+PTE7aC0tKVN2KG4sRCxoKTtMPWs7ZG8gaD1uLmhlYXBbMV0sbi5oZWFwWzFdPW4uaGVhcFtuLlVuLS1dLFN2KG4sRCwxKSxiPW4uaGVhcFsxXSxuLmhlYXBbLS1uLk80XT1oLG4uaGVhcFstLW4uTzRdPWIsRFtMKjJdPURbaCoyXStEW2IqMl0sbi5kZXB0aFtMXT0obi5kZXB0aFtoXT49bi5kZXB0aFtiXT9uLmRlcHRoW2hdOm4uZGVwdGhbYl0pKzEsRFtoKjIrMV09RFtiKjIrMV09TCxuLmhlYXBbMV09TCsrLApTdihuLEQsMSk7d2hpbGUobi5Vbj49Mik7bi5oZWFwWy0tbi5PNF09bi5oZWFwWzFdO2g9Vy5NMDtMPVcuck87Yj1XLkFaLmtPO3Y9Vy5BWi5aZDtrPVcuQVouYkU7dmFyIGU9Vy5BWi50cCxHPVcuQVoudUgscixOPTA7Zm9yKHI9MDtyPD0xNTtyKyspbi5WbltyXT0wO2hbbi5oZWFwW24uTzRdKjIrMV09MDtmb3IoVz1uLk80KzE7Vzw1NzM7VysrKXt2YXIgSD1uLmhlYXBbV107cj1oW2hbSCoyKzFdKjIrMV0rMTtyPkcmJihyPUcsTisrKTtoW0gqMisxXT1yO2lmKCEoSD5MKSl7bi5WbltyXSsrO3ZhciBBPTA7SD49ZSYmKEE9a1tILWVdKTt2YXIgeT1oW0gqMl07bi5YUis9eSoocitBKTt2JiYobi5Udis9eSooYltIKjIrMV0rQSkpfX1pZihOIT09MCl7ZG97Zm9yKHI9Ry0xO24uVm5bcl09PT0wOylyLS07bi5WbltyXS0tO24uVm5bcisxXSs9MjtuLlZuW0ddLS07Ti09Mn13aGlsZShOPjApO2ZvcihyPUc7ciE9PTA7ci0tKWZvcihIPW4uVm5bcl07SCE9PTA7KWI9bi5oZWFwWy0tV10sCmI+THx8KGhbYioyKzFdIT09ciYmKG4uWFIrPShyLWhbYioyKzFdKSpoW2IqMl0saFtiKjIrMV09ciksSC0tKX1ZaihELHgsbi5Wbil9OwppQz1mdW5jdGlvbihuLFcsRCl7dmFyIGIsdj0tMSxrPVdbMV0saD0wLHg9NyxMPTQ7az09PTAmJih4PTEzOCxMPTMpO1dbKEQrMSkqMisxXT02NTUzNTtmb3IoYj0wO2I8PUQ7YisrKXt2YXIgZT1rO2s9V1soYisxKSoyKzFdOysraDx4JiZlPT09a3x8KGg8TD9uLndoW2UqMl0rPWg6ZSE9PTA/KGUhPT12JiZuLndoW2UqMl0rKyxuLndoWzMyXSsrKTpoPD0xMD9uLndoWzM0XSsrOm4ud2hbMzZdKyssaD0wLHY9ZSxrPT09MD8oeD0xMzgsTD0zKTplPT09az8oeD02LEw9Myk6KHg9NyxMPTQpKX19Owp1Qz1mdW5jdGlvbihuLFcsRCl7dmFyIGIsdj0tMSxrPVdbMV0saD0wLHg9NyxMPTQ7az09PTAmJih4PTEzOCxMPTMpO2ZvcihiPTA7Yjw9RDtiKyspe3ZhciBlPWs7az1XWyhiKzEpKjIrMV07aWYoISgrK2g8eCYmZT09PWspKXtpZihoPEwpe2RvIE42KG4sZSxuLndoKTt3aGlsZSgtLWghPT0wKX1lbHNlIGUhPT0wPyhlIT09diYmKE42KG4sZSxuLndoKSxoLS0pLE42KG4sMTYsbi53aCkscyQobixoLTMsMikpOmg8PTEwPyhONihuLDE3LG4ud2gpLHMkKG4saC0zLDMpKTooTjYobiwxOCxuLndoKSxzJChuLGgtMTEsNykpO2g9MDt2PWU7az09PTA/KHg9MTM4LEw9Myk6ZT09PWs/KHg9NixMPTMpOih4PTcsTD00KX19fTsKQTR4PWZ1bmN0aW9uKG4pe3ZhciBXPTQwOTM2MjQ0NDcsRDtmb3IoRD0wO0Q8PTMxO0QrKyxXPj4+PTEpaWYoVyYxJiZuLmtHW0QqMl0hPT0wKXJldHVybiAwO2lmKG4ua0dbMThdIT09MHx8bi5rR1syMF0hPT0wfHxuLmtHWzI2XSE9PTApcmV0dXJuIDE7Zm9yKEQ9MzI7RDwyNTY7RCsrKWlmKG4ua0dbRCoyXSE9PTApcmV0dXJuIDE7cmV0dXJuIDB9OwpvUz1mdW5jdGlvbihuLFcsRCxiKXt2YXIgdj1XXm47aWYoIShuKzQmNykpe0Q9KEQlYltJWzVdXStiW0lbNV1dKSViW0lbNV1dO3ZhciBrPWJbMF07YlswXT1iW0RdO2JbRF09azt2YXIgaD1bRF19KG4rOSY1KT09MSYmYltJWzNdXShiW0lbNV1dLDAsRCk7cmV0dXJuIGh9OwpkNz1mdW5jdGlvbihuLFcsRCl7bi5GQltuLkE4K24ud1gqMl09Vz4+PjgmMjU1O24uRkJbbi5BOCtuLndYKjIrMV09VyYyNTU7bi5GQltuLnRhK24ud1hdPUQmMjU1O24ud1grKztXPT09MD9uLmtHW0QqMl0rKzoobi5tYXRjaGVzKyssVy0tLG4ua0dbKEFrW0RdKzI1NisxKSoyXSsrLG4ubGZbKFc8MjU2P08kW1ddOk8kWzI1NisoVz4+PjcpXSkqMl0rKyk7cmV0dXJuIG4ud1g9PT1uLktYLTF9OwpsQz1mdW5jdGlvbihuLFcpe24ubXNnPXpCW1ddO3JldHVybiBXfTsKVEI9ZnVuY3Rpb24obil7Zm9yKHZhciBXPW4ubGVuZ3RoOy0tVz49MDspbltXXT0wfTsKanY9ZnVuY3Rpb24obil7dmFyIFc9bi5zdGF0ZSxEPVcucGVuZGluZztEPm4udVImJihEPW4udVIpO0QhPT0wJiYoaGsuUDcobi5vdXRwdXQsVy5GQixXLmhSLEQsbi51Zyksbi51Zys9RCxXLmhSKz1ELG4udEIrPUQsbi51Ui09RCxXLnBlbmRpbmctPUQsVy5wZW5kaW5nPT09MCYmKFcuaFI9MCkpfTsKdzc9ZnVuY3Rpb24obixXKXt2YXIgRD1uLk9LPj0wP24uT0s6LTEsYj1uLnFzLW4uT0ssdj0wO2lmKG4ubGV2ZWw+MCl7bi5UUi5xUz09PTImJihuLlRSLnFTPUE0eChuKSk7RSQobixuLlFmKTtFJChuLG4uYVMpO2lDKG4sbi5rRyxuLlFmLnJPKTtpQyhuLG4ubGYsbi5hUy5yTyk7RSQobixuLm1NKTtmb3Iodj0xODt2Pj0zJiZuLndoW0NlW3ZdKjIrMV09PT0wO3YtLSk7bi5YUis9MyoodisxKSs1KzUrNDt2YXIgaz1uLlhSKzMrNz4+PjM7dmFyIGg9bi5UdiszKzc+Pj4zO2g8PWsmJihrPWgpfWVsc2Ugaz1oPWIrNTtpZihiKzQ8PWsmJkQhPT0tMSlzJChuLFc/MTowLDMpLEprKG4sRCxiKTtlbHNlIGlmKG4uc3RyYXRlZ3k9PT00fHxoPT09aylzJChuLDIrKFc/MTowKSwzKSxVJChuLEJTLEY5KTtlbHNle3MkKG4sNCsoVz8xOjApLDMpO0Q9bi5RZi5yTysxO2I9bi5hUy5yTysxO3YrPTE7cyQobixELTI1Nyw1KTtzJChuLGItMSw1KTtzJChuLHYtNCw0KTtmb3Ioaz0wO2s8djtrKyspcyQobiwKbi53aFtDZVtrXSoyKzFdLDMpO3VDKG4sbi5rRyxELTEpO3VDKG4sbi5sZixiLTEpO1UkKG4sbi5rRyxuLmxmKX1IUyhuKTtXJiZmZShuKTtuLk9LPW4ucXM7anYobi5UUil9OwpNNj1mdW5jdGlvbihuLFcpe24uRkJbbi5wZW5kaW5nKytdPVd9OwpSUz1mdW5jdGlvbihuLFcpe24uRkJbbi5wZW5kaW5nKytdPVc+Pj44JjI1NTtuLkZCW24ucGVuZGluZysrXT1XJjI1NX07ClF0PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5lYixiPW4ucXMsdj1uLlRhLGs9bi5PUixoPW4ucXM+bi54ci0yNjI/bi5xcy0obi54ci0yNjIpOjAseD1uLndpbmRvdyxMPW4ueWUsZT1uLlJULEc9bi5xcysyNTgscj14W2Irdi0xXSxOPXhbYit2XTtuLlRhPj1uLnIkJiYoRD4+PTIpO2s+bi5HVyYmKGs9bi5HVyk7ZG97dmFyIEg9VztpZih4W0grdl09PT1OJiZ4W0grdi0xXT09PXImJnhbSF09PT14W2JdJiZ4WysrSF09PT14W2IrMV0pe2IrPTI7Zm9yKEgrKzt4WysrYl09PT14WysrSF0mJnhbKytiXT09PXhbKytIXSYmeFsrK2JdPT09eFsrK0hdJiZ4WysrYl09PT14WysrSF0mJnhbKytiXT09PXhbKytIXSYmeFsrK2JdPT09eFsrK0hdJiZ4WysrYl09PT14WysrSF0mJnhbKytiXT09PXhbKytIXSYmYjxHOyk7SD0yNTgtKEctYik7Yj1HLTI1ODtpZihIPnYpe24uUVo9Vzt2PUg7aWYoSD49aylicmVhaztyPXhbYit2LTFdO049eFtiK3ZdfX19d2hpbGUoKFc9ZVtXJkxdKT5oJiYtLUQhPT0KMCk7cmV0dXJuIHY8PW4uR1c/djpuLkdXfTsKYVM9ZnVuY3Rpb24obil7dmFyIFc9bi54cixEO2Rve3ZhciBiPW4uYlgtbi5HVy1uLnFzO2lmKG4ucXM+PVcrKFctMjYyKSl7aGsuUDcobi53aW5kb3csbi53aW5kb3csVyxXLDApO24uUVotPVc7bi5xcy09VztuLk9LLT1XO3ZhciB2PUQ9bi5BeTtkb3t2YXIgaz1uLmhlYWRbLS12XTtuLmhlYWRbdl09az49Vz9rLVc6MH13aGlsZSgtLUQpO3Y9RD1XO2RvIGs9bi5SVFstLXZdLG4uUlRbdl09az49Vz9rLVc6MDt3aGlsZSgtLUQpO2IrPVd9aWYobi5UUi5CQT09PTApYnJlYWs7dj1uLlRSO0Q9bi53aW5kb3c7az1uLnFzK24uR1c7dmFyIGg9di5CQTtoPmImJihoPWIpO2g9PT0wP0Q9MDoodi5CQS09aCxoay5QNyhELHYuaW5wdXQsdi5VWixoLGspLHYuc3RhdGUud3JhcD09PTE/di5nST1WdCh2LmdJLEQsaCxrKTp2LnN0YXRlLndyYXA9PT0yJiYodi5nST1jUyh2LmdJLEQsaCxrKSksdi5VWis9aCx2LkVtKz1oLEQ9aCk7bi5HVys9RDtpZihuLkdXK24ucXA+PTMpZm9yKGI9bi5xcy1uLnFwLApuLnBBPW4ud2luZG93W2JdLG4ucEE9KG4ucEE8PG4uSGNebi53aW5kb3dbYisxXSkmbi5sQjtuLnFwJiYhKG4ucEE9KG4ucEE8PG4uSGNebi53aW5kb3dbYiszLTFdKSZuLmxCLG4uUlRbYiZuLnllXT1uLmhlYWRbbi5wQV0sbi5oZWFkW24ucEFdPWIsYisrLG4ucXAtLSxuLkdXK24ucXA8Myk7KTt9d2hpbGUobi5HVzwyNjImJm4uVFIuQkEhPT0wKX07Cm53PWZ1bmN0aW9uKG4sVyl7Zm9yKHZhciBEOzspe2lmKG4uR1c8MjYyKXthUyhuKTtpZihuLkdXPDI2MiYmVz09PTApcmV0dXJuIDE7aWYobi5HVz09PTApYnJlYWt9RD0wO24uR1c+PTMmJihuLnBBPShuLnBBPDxuLkhjXm4ud2luZG93W24ucXMrMy0xXSkmbi5sQixEPW4uUlRbbi5xcyZuLnllXT1uLmhlYWRbbi5wQV0sbi5oZWFkW24ucEFdPW4ucXMpO0QhPT0wJiZuLnFzLUQ8PW4ueHItMjYyJiYobi5mQT1RdChuLEQpKTtpZihuLmZBPj0zKWlmKEQ9ZDcobixuLnFzLW4uUVosbi5mQS0zKSxuLkdXLT1uLmZBLG4uZkE8PW4uUmImJm4uR1c+PTMpe24uZkEtLTtkbyBuLnFzKyssbi5wQT0obi5wQTw8bi5IY15uLndpbmRvd1tuLnFzKzMtMV0pJm4ubEIsbi5SVFtuLnFzJm4ueWVdPW4uaGVhZFtuLnBBXSxuLmhlYWRbbi5wQV09bi5xczt3aGlsZSgtLW4uZkEhPT0wKTtuLnFzKyt9ZWxzZSBuLnFzKz1uLmZBLG4uZkE9MCxuLnBBPW4ud2luZG93W24ucXNdLG4ucEE9KG4ucEE8PG4uSGNeCm4ud2luZG93W24ucXMrMV0pJm4ubEI7ZWxzZSBEPWQ3KG4sMCxuLndpbmRvd1tuLnFzXSksbi5HVy0tLG4ucXMrKztpZihEJiYodzcobiwhMSksbi5UUi51Uj09PTApKXJldHVybiAxfW4ucXA9bi5xczwyP24ucXM6MjtyZXR1cm4gVz09PTQ/KHc3KG4sITApLG4uVFIudVI9PT0wPzM6NCk6bi53WCYmKHc3KG4sITEpLG4uVFIudVI9PT0wKT8xOjJ9OwpXVj1mdW5jdGlvbihuLFcpe2Zvcih2YXIgRCxiOzspe2lmKG4uR1c8MjYyKXthUyhuKTtpZihuLkdXPDI2MiYmVz09PTApcmV0dXJuIDE7aWYobi5HVz09PTApYnJlYWt9RD0wO24uR1c+PTMmJihuLnBBPShuLnBBPDxuLkhjXm4ud2luZG93W24ucXMrMy0xXSkmbi5sQixEPW4uUlRbbi5xcyZuLnllXT1uLmhlYWRbbi5wQV0sbi5oZWFkW24ucEFdPW4ucXMpO24uVGE9bi5mQTtuLkx2PW4uUVo7bi5mQT0yO0QhPT0wJiZuLlRhPG4uUmImJm4ucXMtRDw9bi54ci0yNjImJihuLmZBPVF0KG4sRCksbi5mQTw9NSYmKG4uc3RyYXRlZ3k9PT0xfHxuLmZBPT09MyYmbi5xcy1uLlFaPjQwOTYpJiYobi5mQT0yKSk7aWYobi5UYT49MyYmbi5mQTw9bi5UYSl7Yj1uLnFzK24uR1ctMztEPWQ3KG4sbi5xcy0xLW4uTHYsbi5UYS0zKTtuLkdXLT1uLlRhLTE7bi5UYS09Mjtkbysrbi5xczw9YiYmKG4ucEE9KG4ucEE8PG4uSGNebi53aW5kb3dbbi5xcyszLTFdKSZuLmxCLG4uUlRbbi5xcyZuLnllXT0Kbi5oZWFkW24ucEFdLG4uaGVhZFtuLnBBXT1uLnFzKTt3aGlsZSgtLW4uVGEhPT0wKTtuLlJGPTA7bi5mQT0yO24ucXMrKztpZihEJiYodzcobiwhMSksbi5UUi51Uj09PTApKXJldHVybiAxfWVsc2UgaWYobi5SRil7aWYoKEQ9ZDcobiwwLG4ud2luZG93W24ucXMtMV0pKSYmdzcobiwhMSksbi5xcysrLG4uR1ctLSxuLlRSLnVSPT09MClyZXR1cm4gMX1lbHNlIG4uUkY9MSxuLnFzKyssbi5HVy0tfW4uUkYmJihkNyhuLDAsbi53aW5kb3dbbi5xcy0xXSksbi5SRj0wKTtuLnFwPW4ucXM8Mj9uLnFzOjI7cmV0dXJuIFc9PT00Pyh3NyhuLCEwKSxuLlRSLnVSPT09MD8zOjQpOm4ud1gmJih3NyhuLCExKSxuLlRSLnVSPT09MCk/MToyfTsKbXhqPWZ1bmN0aW9uKG4sVyl7Zm9yKHZhciBELGIsdixrPW4ud2luZG93Ozspe2lmKG4uR1c8PTI1OCl7YVMobik7aWYobi5HVzw9MjU4JiZXPT09MClyZXR1cm4gMTtpZihuLkdXPT09MClicmVha31uLmZBPTA7aWYobi5HVz49MyYmbi5xcz4wJiYoYj1uLnFzLTEsRD1rW2JdLEQ9PT1rWysrYl0mJkQ9PT1rWysrYl0mJkQ9PT1rWysrYl0pKXtmb3Iodj1uLnFzKzI1ODtEPT09a1srK2JdJiZEPT09a1srK2JdJiZEPT09a1srK2JdJiZEPT09a1srK2JdJiZEPT09a1srK2JdJiZEPT09a1srK2JdJiZEPT09a1srK2JdJiZEPT09a1srK2JdJiZiPHY7KTtuLmZBPTI1OC0odi1iKTtuLmZBPm4uR1cmJihuLmZBPW4uR1cpfW4uZkE+PTM/KEQ9ZDcobiwxLG4uZkEtMyksbi5HVy09bi5mQSxuLnFzKz1uLmZBLG4uZkE9MCk6KEQ9ZDcobiwwLG4ud2luZG93W24ucXNdKSxuLkdXLS0sbi5xcysrKTtpZihEJiYodzcobiwhMSksbi5UUi51Uj09PTApKXJldHVybiAxfW4ucXA9MDtyZXR1cm4gVz09PQo0Pyh3NyhuLCEwKSxuLlRSLnVSPT09MD8zOjQpOm4ud1gmJih3NyhuLCExKSxuLlRSLnVSPT09MCk/MToyfTsKS3hVPWZ1bmN0aW9uKG4sVyl7Zm9yKHZhciBEOzspe2lmKG4uR1c9PT0wJiYoYVMobiksbi5HVz09PTApKXtpZihXPT09MClyZXR1cm4gMTticmVha31uLmZBPTA7RD1kNyhuLDAsbi53aW5kb3dbbi5xc10pO24uR1ctLTtuLnFzKys7aWYoRCYmKHc3KG4sITEpLG4uVFIudVI9PT0wKSlyZXR1cm4gMX1uLnFwPTA7cmV0dXJuIFc9PT00Pyh3NyhuLCEwKSxuLlRSLnVSPT09MD8zOjQpOm4ud1gmJih3NyhuLCExKSxuLlRSLnVSPT09MCk/MToyfTsKREU9ZnVuY3Rpb24obixXLEQsYix2KXt0aGlzLm5rPW47dGhpcy5ZOD1XO3RoaXMuRWs9RDt0aGlzLlNSPWI7dGhpcy5mdW5jPXZ9OwpPMGk9ZnVuY3Rpb24oKXt0aGlzLlRSPW51bGw7dGhpcy5zdGF0dXM9MDt0aGlzLkZCPW51bGw7dGhpcy53cmFwPXRoaXMucGVuZGluZz10aGlzLmhSPXRoaXMueXY9MDt0aGlzLkZRPW51bGw7dGhpcy5HST0wO3RoaXMubWV0aG9kPTg7dGhpcy5obz0tMTt0aGlzLnllPXRoaXMuclo9dGhpcy54cj0wO3RoaXMud2luZG93PW51bGw7dGhpcy5iWD0wO3RoaXMuaGVhZD10aGlzLlJUPW51bGw7dGhpcy5PUj10aGlzLnIkPXRoaXMuc3RyYXRlZ3k9dGhpcy5sZXZlbD10aGlzLlJiPXRoaXMuZWI9dGhpcy5UYT10aGlzLkdXPXRoaXMuUVo9dGhpcy5xcz10aGlzLlJGPXRoaXMuTHY9dGhpcy5mQT10aGlzLk9LPXRoaXMuSGM9dGhpcy5sQj10aGlzLll2PXRoaXMuQXk9dGhpcy5wQT0wO3RoaXMua0c9bmV3IGhrLm1LKDExNDYpO3RoaXMubGY9bmV3IGhrLm1LKDEyMik7dGhpcy53aD1uZXcgaGsubUsoNzgpO1RCKHRoaXMua0cpO1RCKHRoaXMubGYpO1RCKHRoaXMud2gpO3RoaXMubU09dGhpcy5hUz0KdGhpcy5RZj1udWxsO3RoaXMuVm49bmV3IGhrLm1LKDE2KTt0aGlzLmhlYXA9bmV3IGhrLm1LKDU3Myk7VEIodGhpcy5oZWFwKTt0aGlzLk80PXRoaXMuVW49MDt0aGlzLmRlcHRoPW5ldyBoay5tSyg1NzMpO1RCKHRoaXMuZGVwdGgpO3RoaXMuWUg9dGhpcy5SSj10aGlzLnFwPXRoaXMubWF0Y2hlcz10aGlzLlR2PXRoaXMuWFI9dGhpcy5BOD10aGlzLndYPXRoaXMuS1g9dGhpcy50YT0wfTsKUHAxPWZ1bmN0aW9uKG4sVyl7aWYoIW58fCFuLnN0YXRlfHxXPjV8fFc8MClyZXR1cm4gbj9sQyhuLC0yKTotMjt2YXIgRD1uLnN0YXRlO2lmKCFuLm91dHB1dHx8IW4uaW5wdXQmJm4uQkEhPT0wfHxELnN0YXR1cz09PTY2NiYmVyE9PTQpcmV0dXJuIGxDKG4sbi51Uj09PTA/LTU6LTIpO0QuVFI9bjt2YXIgYj1ELmhvO0QuaG89VztpZihELnN0YXR1cz09PTQyKWlmKEQud3JhcD09PTIpbi5nST0wLE02KEQsMzEpLE02KEQsMTM5KSxNNihELDgpLEQuRlE/KE02KEQsKEQuRlEudGV4dD8xOjApKyhELkZRLnZMPzI6MCkrKEQuRlEuZXh0cmE/NDowKSsoRC5GUS5uYW1lPzg6MCkrKEQuRlEuY29tbWVudD8xNjowKSksTTYoRCxELkZRLnRpbWUmMjU1KSxNNihELEQuRlEudGltZT4+OCYyNTUpLE02KEQsRC5GUS50aW1lPj4xNiYyNTUpLE02KEQsRC5GUS50aW1lPj4yNCYyNTUpLE02KEQsRC5sZXZlbD09PTk/MjpELnN0cmF0ZWd5Pj0yfHxELmxldmVsPDI/NDowKSxNNihELEQuRlEub3MmCjI1NSksRC5GUS5leHRyYSYmRC5GUS5leHRyYS5sZW5ndGgmJihNNihELEQuRlEuZXh0cmEubGVuZ3RoJjI1NSksTTYoRCxELkZRLmV4dHJhLmxlbmd0aD4+OCYyNTUpKSxELkZRLnZMJiYobi5nST1jUyhuLmdJLEQuRkIsRC5wZW5kaW5nLDApKSxELkdJPTAsRC5zdGF0dXM9NjkpOihNNihELDApLE02KEQsMCksTTYoRCwwKSxNNihELDApLE02KEQsMCksTTYoRCxELmxldmVsPT09OT8yOkQuc3RyYXRlZ3k+PTJ8fEQubGV2ZWw8Mj80OjApLE02KEQsMyksRC5zdGF0dXM9MTEzKTtlbHNle3ZhciB2PTgrKEQuclotODw8NCk8PDg7dnw9KEQuc3RyYXRlZ3k+PTJ8fEQubGV2ZWw8Mj8wOkQubGV2ZWw8Nj8xOkQubGV2ZWw9PT02PzI6Myk8PDY7RC5xcyE9PTAmJih2fD0zMik7RC5zdGF0dXM9MTEzO1JTKEQsdisoMzEtdiUzMSkpO0QucXMhPT0wJiYoUlMoRCxuLmdJPj4+MTYpLFJTKEQsbi5nSSY2NTUzNSkpO24uZ0k9MX1pZihELnN0YXR1cz09PTY5KWlmKEQuRlEuZXh0cmEpe2Zvcih2PQpELnBlbmRpbmc7RC5HSTwoRC5GUS5leHRyYS5sZW5ndGgmNjU1MzUpJiYoRC5wZW5kaW5nIT09RC55dnx8KEQuRlEudkwmJkQucGVuZGluZz52JiYobi5nST1jUyhuLmdJLEQuRkIsRC5wZW5kaW5nLXYsdikpLGp2KG4pLHY9RC5wZW5kaW5nLEQucGVuZGluZyE9PUQueXYpKTspTTYoRCxELkZRLmV4dHJhW0QuR0ldJjI1NSksRC5HSSsrO0QuRlEudkwmJkQucGVuZGluZz52JiYobi5nST1jUyhuLmdJLEQuRkIsRC5wZW5kaW5nLXYsdikpO0QuR0k9PT1ELkZRLmV4dHJhLmxlbmd0aCYmKEQuR0k9MCxELnN0YXR1cz03Myl9ZWxzZSBELnN0YXR1cz03MztpZihELnN0YXR1cz09PTczKWlmKEQuRlEubmFtZSl7dj1ELnBlbmRpbmc7ZG97aWYoRC5wZW5kaW5nPT09RC55diYmKEQuRlEudkwmJkQucGVuZGluZz52JiYobi5nST1jUyhuLmdJLEQuRkIsRC5wZW5kaW5nLXYsdikpLGp2KG4pLHY9RC5wZW5kaW5nLEQucGVuZGluZz09PUQueXYpKXt2YXIgaz0xO2JyZWFrfWs9RC5HSTxELkZRLm5hbWUubGVuZ3RoPwpELkZRLm5hbWUuY2hhckNvZGVBdChELkdJKyspJjI1NTowO002KEQsayl9d2hpbGUoayE9PTApO0QuRlEudkwmJkQucGVuZGluZz52JiYobi5nST1jUyhuLmdJLEQuRkIsRC5wZW5kaW5nLXYsdikpO2s9PT0wJiYoRC5HST0wLEQuc3RhdHVzPTkxKX1lbHNlIEQuc3RhdHVzPTkxO2lmKEQuc3RhdHVzPT09OTEpaWYoRC5GUS5jb21tZW50KXt2PUQucGVuZGluZztkb3tpZihELnBlbmRpbmc9PT1ELnl2JiYoRC5GUS52TCYmRC5wZW5kaW5nPnYmJihuLmdJPWNTKG4uZ0ksRC5GQixELnBlbmRpbmctdix2KSksanYobiksdj1ELnBlbmRpbmcsRC5wZW5kaW5nPT09RC55dikpe2s9MTticmVha31rPUQuR0k8RC5GUS5jb21tZW50Lmxlbmd0aD9ELkZRLmNvbW1lbnQuY2hhckNvZGVBdChELkdJKyspJjI1NTowO002KEQsayl9d2hpbGUoayE9PTApO0QuRlEudkwmJkQucGVuZGluZz52JiYobi5nST1jUyhuLmdJLEQuRkIsRC5wZW5kaW5nLXYsdikpO2s9PT0wJiYoRC5zdGF0dXM9MTAzKX1lbHNlIEQuc3RhdHVzPQoxMDM7RC5zdGF0dXM9PT0xMDMmJihELkZRLnZMPyhELnBlbmRpbmcrMj5ELnl2JiZqdihuKSxELnBlbmRpbmcrMjw9RC55diYmKE02KEQsbi5nSSYyNTUpLE02KEQsbi5nST4+OCYyNTUpLG4uZ0k9MCxELnN0YXR1cz0xMTMpKTpELnN0YXR1cz0xMTMpO2lmKEQucGVuZGluZyE9PTApe2lmKGp2KG4pLG4udVI9PT0wKXJldHVybiBELmhvPS0xLDB9ZWxzZSBpZihuLkJBPT09MCYmKFc8PDEpLShXPjQ/OTowKTw9KGI8PDEpLShiPjQ/OTowKSYmVyE9PTQpcmV0dXJuIGxDKG4sLTUpO2lmKEQuc3RhdHVzPT09NjY2JiZuLkJBIT09MClyZXR1cm4gbEMobiwtNSk7aWYobi5CQSE9PTB8fEQuR1chPT0wfHxXIT09MCYmRC5zdGF0dXMhPT02NjYpe2I9RC5zdHJhdGVneT09PTI/S3hVKEQsVyk6RC5zdHJhdGVneT09PTM/bXhqKEQsVyk6YndbRC5sZXZlbF0uZnVuYyhELFcpO2lmKGI9PT0zfHxiPT09NClELnN0YXR1cz02NjY7aWYoYj09PTF8fGI9PT0zKXJldHVybiBuLnVSPT09MCYmKEQuaG89Ci0xKSwwO2lmKGI9PT0yJiYoVz09PTE/KHMkKEQsMiwzKSxONihELDI1NixCUyksRC5ZSD09PTE2PyhyNyhELEQuUkopLEQuUko9MCxELllIPTApOkQuWUg+PTgmJihELkZCW0QucGVuZGluZysrXT1ELlJKJjI1NSxELlJKPj49OCxELllILT04KSk6VyE9PTUmJihzJChELDAsMyksSmsoRCwwLDApLFc9PT0zJiYoVEIoRC5oZWFkKSxELkdXPT09MCYmKEQucXM9MCxELk9LPTAsRC5xcD0wKSkpLGp2KG4pLG4udVI9PT0wKSlyZXR1cm4gRC5obz0tMSwwfWlmKFchPT00KXJldHVybiAwO2lmKEQud3JhcDw9MClyZXR1cm4gMTtELndyYXA9PT0yPyhNNihELG4uZ0kmMjU1KSxNNihELG4uZ0k+PjgmMjU1KSxNNihELG4uZ0k+PjE2JjI1NSksTTYoRCxuLmdJPj4yNCYyNTUpLE02KEQsbi5FbSYyNTUpLE02KEQsbi5FbT4+OCYyNTUpLE02KEQsbi5FbT4+MTYmMjU1KSxNNihELG4uRW0+PjI0JjI1NSkpOihSUyhELG4uZ0k+Pj4xNiksUlMoRCxuLmdJJjY1NTM1KSk7anYobik7RC53cmFwPjAmJgooRC53cmFwPS1ELndyYXApO3JldHVybiBELnBlbmRpbmchPT0wPzA6MX07CnZWPWZ1bmN0aW9uKG4pe2lmKCEodGhpcyBpbnN0YW5jZW9mIHZWKSlyZXR1cm4gbmV3IHZWKG4pO249dGhpcy5vcHRpb25zPWhrLmFzc2lnbih7bGV2ZWw6LTEsbWV0aG9kOjgsY2h1bmtTaXplOjE2Mzg0LHRnOjE1LEJrOjgsc3RyYXRlZ3k6MCx0bzoiIn0sbnx8e30pO24ucmF3JiZuLnRnPjA/bi50Zz0tbi50ZzpuLkJUJiZuLnRnPjAmJm4udGc8MTYmJihuLnRnKz0xNik7dGhpcy5lcnI9MDt0aGlzLm1zZz0iIjt0aGlzLmVuZGVkPSExO3RoaXMuY2h1bmtzPVtdO3RoaXMuVFI9bmV3IGtmO3RoaXMuVFIudVI9MDt2YXIgVz10aGlzLlRSO3ZhciBEPW4ubGV2ZWwsYj1uLm1ldGhvZCx2PW4udGcsaz1uLkJrLGg9bi5zdHJhdGVneTtpZihXKXt2YXIgeD0xO0Q9PT0tMSYmKEQ9Nik7djwwPyh4PTAsdj0tdik6dj4xNSYmKHg9Mix2LT0xNik7aWYoazwxfHxrPjl8fGIhPT04fHx2PDh8fHY+MTV8fEQ8MHx8RD45fHxoPDB8fGg+NClXPWxDKFcsLTIpO2Vsc2V7dj09PTgmJih2PTkpO3ZhciBMPQpuZXcgTzBpO1cuc3RhdGU9TDtMLlRSPVc7TC53cmFwPXg7TC5GUT1udWxsO0wuclo9djtMLnhyPTE8PEwuclo7TC55ZT1MLnhyLTE7TC5Zdj1rKzc7TC5BeT0xPDxMLll2O0wubEI9TC5BeS0xO0wuSGM9fn4oKEwuWXYrMy0xKS8zKTtMLndpbmRvdz1uZXcgaGsuT20oTC54cioyKTtMLmhlYWQ9bmV3IGhrLm1LKEwuQXkpO0wuUlQ9bmV3IGhrLm1LKEwueHIpO0wuS1g9MTw8ays2O0wueXY9TC5LWCo0O0wuRkI9bmV3IGhrLk9tKEwueXYpO0wuQTg9MSpMLktYO0wudGE9MypMLktYO0wubGV2ZWw9RDtMLnN0cmF0ZWd5PWg7TC5tZXRob2Q9YjtpZihXJiZXLnN0YXRlKXtXLkVtPVcudEI9MDtXLnFTPTI7RD1XLnN0YXRlO0QucGVuZGluZz0wO0QuaFI9MDtELndyYXA8MCYmKEQud3JhcD0tRC53cmFwKTtELnN0YXR1cz1ELndyYXA/NDI6MTEzO1cuZ0k9RC53cmFwPT09Mj8wOjE7RC5obz0wO2lmKCFocil7Yj1BcnJheSgxNik7Zm9yKGs9aD0wO2s8Mjg7aysrKWZvcihLZVtrXT1oLHY9MDt2PAoxPDxtJFtrXTt2KyspQWtbaCsrXT1rO0FrW2gtMV09aztmb3Ioaz1oPTA7azwxNjtrKyspZm9yKFpRW2tdPWgsdj0wO3Y8MTw8UFNba107disrKU8kW2grK109aztmb3IoaD4+PTc7azwzMDtrKyspZm9yKFpRW2tdPWg8PDcsdj0wO3Y8MTw8UFNba10tNzt2KyspTyRbMjU2K2grK109aztmb3Iodj0wO3Y8PTE1O3YrKyliW3ZdPTA7Zm9yKHY9MDt2PD0xNDM7KUJTW3YqMisxXT04LHYrKyxiWzhdKys7Zm9yKDt2PD0yNTU7KUJTW3YqMisxXT05LHYrKyxiWzldKys7Zm9yKDt2PD0yNzk7KUJTW3YqMisxXT03LHYrKyxiWzddKys7Zm9yKDt2PD0yODc7KUJTW3YqMisxXT04LHYrKyxiWzhdKys7WWooQlMsMjg3LGIpO2Zvcih2PTA7djwzMDt2KyspRjlbdioyKzFdPTUsRjlbdioyXT1wZSh2LDUpO3hmPW5ldyBldihCUyxtJCwyNTcsMjg2LDE1KTtMdz1uZXcgZXYoRjksUFMsMCwzMCwxNSk7ZUg9bmV3IGV2KFtdLFowdywwLDE5LDcpO2hyPSEwfUQuUWY9bmV3IHRrKEQua0cseGYpO0QuYVM9Cm5ldyB0ayhELmxmLEx3KTtELm1NPW5ldyB0ayhELndoLGVIKTtELlJKPTA7RC5ZSD0wO0hTKEQpO0Q9MH1lbHNlIEQ9bEMoVywtMik7RD09PTAmJihXPVcuc3RhdGUsVy5iWD0yKlcueHIsVEIoVy5oZWFkKSxXLlJiPWJ3W1cubGV2ZWxdLlk4LFcuciQ9YndbVy5sZXZlbF0ubmssVy5PUj1id1tXLmxldmVsXS5FayxXLmViPWJ3W1cubGV2ZWxdLlNSLFcucXM9MCxXLk9LPTAsVy5HVz0wLFcucXA9MCxXLmZBPVcuVGE9MixXLlJGPTAsVy5wQT0wKTtXPUR9fWVsc2UgVz0tMjtpZihXIT09MCl0aHJvdyBFcnJvcih6QltXXSk7bi5oZWFkZXImJihXPXRoaXMuVFIpJiZXLnN0YXRlJiZXLnN0YXRlLndyYXA9PT0yJiYoVy5zdGF0ZS5GUT1uLmhlYWRlcik7aWYobi5Dbyl7dmFyIGU7dHlwZW9mIG4uQ289PT0ic3RyaW5nIj9lPXhqKG4uQ28pOmcyLmNhbGwobi5Dbyk9PT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iP2U9bmV3IFVpbnQ4QXJyYXkobi5Dbyk6ZT1uLkNvO249dGhpcy5UUjtrPWU7aD0Kay5sZW5ndGg7aWYobiYmbi5zdGF0ZSlpZihlPW4uc3RhdGUsVz1lLndyYXAsVz09PTJ8fFc9PT0xJiZlLnN0YXR1cyE9PTQyfHxlLkdXKVc9LTI7ZWxzZXtXPT09MSYmKG4uZ0k9VnQobi5nSSxrLGgsMCkpO2Uud3JhcD0wO2g+PWUueHImJihXPT09MCYmKFRCKGUuaGVhZCksZS5xcz0wLGUuT0s9MCxlLnFwPTApLEQ9bmV3IGhrLk9tKGUueHIpLGhrLlA3KEQsayxoLWUueHIsZS54ciwwKSxrPUQsaD1lLnhyKTtEPW4uQkE7Yj1uLlVaO3Y9bi5pbnB1dDtuLkJBPWg7bi5VWj0wO24uaW5wdXQ9aztmb3IoYVMoZSk7ZS5HVz49Mzspe2s9ZS5xcztoPWUuR1ctMjtkbyBlLnBBPShlLnBBPDxlLkhjXmUud2luZG93W2srMy0xXSkmZS5sQixlLlJUW2smZS55ZV09ZS5oZWFkW2UucEFdLGUuaGVhZFtlLnBBXT1rLGsrKzt3aGlsZSgtLWgpO2UucXM9aztlLkdXPTI7YVMoZSl9ZS5xcys9ZS5HVztlLk9LPWUucXM7ZS5xcD1lLkdXO2UuR1c9MDtlLmZBPWUuVGE9MjtlLlJGPTA7bi5VWj1iO24uaW5wdXQ9CnY7bi5CQT1EO2Uud3JhcD1XO1c9MH1lbHNlIFc9LTI7aWYoVyE9PTApdGhyb3cgRXJyb3IoekJbV10pO3RoaXMuWGg9ITB9fTsKWCQ9ZnVuY3Rpb24obil7dmFyIFc9V3x8e307Vy5CVD0hMDtXPW5ldyB2VihXKTtXLnB1c2gobiwhMCk7aWYoVy5lcnIpdGhyb3cgVy5tc2d8fHpCW1cuZXJyXTtyZXR1cm4gVy5yZXN1bHR9OwpxTj1mdW5jdGlvbiguLi5uKXtyZXR1cm4gbi5sZW5ndGg9PT0wP1c9Plc6bi5sZW5ndGg9PT0xP25bMF06bi5yZWR1Y2UoKFcsRCk9PiguLi5iKT0+VyhEKC4uLmIpKSl9OwpVeGo9ZnVuY3Rpb24oKXt2YXIgbj1bXTtyZXR1cm4gVz0+KEQsYik9PntEPVcoRCxiKTt2YXIgdj0oKT0+e3Rocm93IEVycm9yKCJEaXNwYXRjaGluZyB3aGlsZSBjb25zdHJ1Y3RpbmcgeW91ciBtaWRkbGV3YXJlIGlzIG5vdCBhbGxvd2VkLiBPdGhlciBtaWRkbGV3YXJlIHdvdWxkIG5vdCBiZSBhcHBsaWVkIHRvIHRoaXMgZGlzcGF0Y2guIik7fSxrPXtnZXRTdGF0ZTpELmdldFN0YXRlLApkaXNwYXRjaDooaCwuLi54KT0+dihoLC4uLngpfTsKYj1uLm1hcChoPT5oKGspKTsKdj1xTiguLi5iKShELmRpc3BhdGNoKTtyZXR1cm57Li4uRCxkaXNwYXRjaDp2fX19Owp5NDI9ZnVuY3Rpb24obil7T2JqZWN0LmtleXMobikuZm9yRWFjaChXPT57dmFyIEQ9bltXXTtpZih0eXBlb2YgRCh2b2lkIDAse3R5cGU6R2R9KT09PSJ1bmRlZmluZWQiKXRocm93IEVycm9yKGBUaGUgc2xpY2UgcmVkdWNlciBmb3Iga2V5ICIke1d9IiByZXR1cm5lZCB1bmRlZmluZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uLiBJZiB0aGUgc3RhdGUgcGFzc2VkIHRvIHRoZSByZWR1Y2VyIGlzIHVuZGVmaW5lZCwgeW91IG11c3QgZXhwbGljaXRseSByZXR1cm4gdGhlIGluaXRpYWwgc3RhdGUuIFRoZSBpbml0aWFsIHN0YXRlIG1heSBub3QgYmUgdW5kZWZpbmVkLiBJZiB5b3UgZG9uJ3Qgd2FudCB0byBzZXQgYSB2YWx1ZSBmb3IgdGhpcyByZWR1Y2VyLCB5b3UgY2FuIHVzZSBudWxsIGluc3RlYWQgb2YgdW5kZWZpbmVkLmApO2lmKHR5cGVvZiBEKHZvaWQgMCx7dHlwZTpgQEByZWR1eC9QUk9CRV9VTktOT1dOX0FDVElPTiR7dHIoKX1gfSk9PT0idW5kZWZpbmVkIil0aHJvdyBFcnJvcihgVGhlIHNsaWNlIHJlZHVjZXIgZm9yIGtleSAiJHtXfSIgcmV0dXJuZWQgdW5kZWZpbmVkIHdoZW4gcHJvYmVkIHdpdGggYSByYW5kb20gdHlwZS4gRG9uJ3QgdHJ5IHRvIGhhbmRsZSAnJHtHZH0nIG9yIG90aGVyIGFjdGlvbnMgaW4gInJlZHV4LyoiIG5hbWVzcGFjZS4gVGhleSBhcmUgY29uc2lkZXJlZCBwcml2YXRlLiBJbnN0ZWFkLCB5b3UgbXVzdCByZXR1cm4gdGhlIGN1cnJlbnQgc3RhdGUgZm9yIGFueSB1bmtub3duIGFjdGlvbnMsIHVubGVzcyBpdCBpcyB1bmRlZmluZWQsIGluIHdoaWNoIGNhc2UgeW91IG11c3QgcmV0dXJuIHRoZSBpbml0aWFsIHN0YXRlLCByZWdhcmRsZXNzIG9mIHRoZSBhY3Rpb24gdHlwZS4gVGhlIGluaXRpYWwgc3RhdGUgbWF5IG5vdCBiZSB1bmRlZmluZWQsIGJ1dCBjYW4gYmUgbnVsbC5gKTsKfSl9OwokZj1mdW5jdGlvbihuLFcsRCl7ZnVuY3Rpb24gYigpe2lmKEcpdGhyb3cgRXJyb3IoIllvdSBtYXkgbm90IGNhbGwgc3RvcmUuZ2V0U3RhdGUoKSB3aGlsZSB0aGUgcmVkdWNlciBpcyBleGVjdXRpbmcuIFRoZSByZWR1Y2VyIGhhcyBhbHJlYWR5IHJlY2VpdmVkIHRoZSBzdGF0ZSBhcyBhbiBhcmd1bWVudC4gUGFzcyBpdCBkb3duIGZyb20gdGhlIHRvcCByZWR1Y2VyIGluc3RlYWQgb2YgcmVhZGluZyBpdCBmcm9tIHRoZSBzdG9yZS4iKTtyZXR1cm4geH0KZnVuY3Rpb24gdihOKXtpZih0eXBlb2YgTiE9PSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IoYEV4cGVjdGVkIHRoZSBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLiBJbnN0ZWFkLCByZWNlaXZlZDogJyR7dHlwZW9mIE59J2ApO2lmKEcpdGhyb3cgRXJyb3IoIllvdSBtYXkgbm90IGNhbGwgc3RvcmUuc3Vic2NyaWJlKCkgd2hpbGUgdGhlIHJlZHVjZXIgaXMgZXhlY3V0aW5nLiBJZiB5b3Ugd291bGQgbGlrZSB0byBiZSBub3RpZmllZCBhZnRlciB0aGUgc3RvcmUgaGFzIGJlZW4gdXBkYXRlZCwgc3Vic2NyaWJlIGZyb20gYSBjb21wb25lbnQgYW5kIGludm9rZSBzdG9yZS5nZXRTdGF0ZSgpIGluIHRoZSBjYWxsYmFjayB0byBhY2Nlc3MgdGhlIGxhdGVzdCBzdGF0ZS4gU2VlIGh0dHBzOi8vcmVkdXguanMub3JnL2FwaS9zdG9yZSNzdWJzY3JpYmVsaXN0ZW5lciBmb3IgbW9yZSBkZXRhaWxzLiIpO3ZhciBIPSEwO2U9PT1MJiYoZT1MLnNsaWNlKCkpO2UucHVzaChOKTtyZXR1cm4gZnVuY3Rpb24oKXtpZihIKXtpZihHKXRocm93IEVycm9yKCJZb3UgbWF5IG5vdCB1bnN1YnNjcmliZSBmcm9tIGEgc3RvcmUgbGlzdGVuZXIgd2hpbGUgdGhlIHJlZHVjZXIgaXMgZXhlY3V0aW5nLiBTZWUgaHR0cHM6Ly9yZWR1eC5qcy5vcmcvYXBpL3N0b3JlI3N1YnNjcmliZWxpc3RlbmVyIGZvciBtb3JlIGRldGFpbHMuIik7Ckg9ITE7ZT09PUwmJihlPUwuc2xpY2UoKSk7ZS5zcGxpY2UoZS5pbmRleE9mKE4pLDEpO0w9bnVsbH19fQpmdW5jdGlvbiBrKE4pe2lmKHR5cGVvZiBOIT09Im9iamVjdCJ8fE49PT1udWxsKXZhciBIPSExO2Vsc2V7Zm9yKEg9TjtPYmplY3QuZ2V0UHJvdG90eXBlT2YoSCkhPT1udWxsOylIPU9iamVjdC5nZXRQcm90b3R5cGVPZihIKTtIPU9iamVjdC5nZXRQcm90b3R5cGVPZihOKT09PUh9aWYoIUgpdGhyb3cgRXJyb3IoYEFjdGlvbnMgbXVzdCBiZSBwbGFpbiBvYmplY3RzLiBJbnN0ZWFkLCB0aGUgYWN0dWFsIHR5cGUgd2FzOiAnJHt0eXBlb2YgTn0nLiBZb3UgbWF5IG5lZWQgdG8gYWRkIG1pZGRsZXdhcmUgdG8geW91ciBzdG9yZSBzZXR1cCB0byBoYW5kbGUgZGlzcGF0Y2hpbmcgb3RoZXIgdmFsdWVzLCBzdWNoIGFzICdyZWR1eC10aHVuaycgdG8gaGFuZGxlIGRpc3BhdGNoaW5nIGZ1bmN0aW9ucy4gU2VlIGh0dHBzOi8vcmVkdXguanMub3JnL3R1dG9yaWFscy9mdW5kYW1lbnRhbHMvcGFydC00LXN0b3JlI21pZGRsZXdhcmUgYW5kIGh0dHBzOi8vcmVkdXguanMub3JnL3R1dG9yaWFscy9mdW5kYW1lbnRhbHMvcGFydC02LWFzeW5jLWxvZ2ljI3VzaW5nLXRoZS1yZWR1eC10aHVuay1taWRkbGV3YXJlIGZvciBleGFtcGxlcy5gKTsKaWYodHlwZW9mIE4udHlwZT09PSJ1bmRlZmluZWQiKXRocm93IEVycm9yKCdBY3Rpb25zIG1heSBub3QgaGF2ZSBhbiB1bmRlZmluZWQgInR5cGUiIHByb3BlcnR5LiBZb3UgbWF5IGhhdmUgbWlzc3BlbGxlZCBhbiBhY3Rpb24gdHlwZSBzdHJpbmcgY29uc3RhbnQuJyk7aWYoRyl0aHJvdyBFcnJvcigiUmVkdWNlcnMgbWF5IG5vdCBkaXNwYXRjaCBhY3Rpb25zLiIpO3RyeXtHPSEwLHg9aCh4LE4pfWZpbmFsbHl7Rz0hMX1IPUw9ZTtmb3IobGV0IEE9MDtBPEgubGVuZ3RoO0ErKykoMCxIW0FdKSgpO3JldHVybiBOfQppZih0eXBlb2YgVz09PSJmdW5jdGlvbiImJnR5cGVvZiBEPT09ImZ1bmN0aW9uInx8dHlwZW9mIEQ9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgYXJndW1lbnRzWzNdPT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiSXQgbG9va3MgbGlrZSB5b3UgYXJlIHBhc3Npbmcgc2V2ZXJhbCBzdG9yZSBlbmhhbmNlcnMgdG8gY3JlYXRlU3RvcmUoKS4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLiBJbnN0ZWFkLCBjb21wb3NlIHRoZW0gdG9nZXRoZXIgdG8gYSBzaW5nbGUgZnVuY3Rpb24uIFNlZSBodHRwczovL3JlZHV4LmpzLm9yZy90dXRvcmlhbHMvZnVuZGFtZW50YWxzL3BhcnQtNC1zdG9yZSNjcmVhdGluZy1hLXN0b3JlLXdpdGgtZW5oYW5jZXJzIGZvciBhbiBleGFtcGxlLiIpO3R5cGVvZiBXPT09ImZ1bmN0aW9uIiYmdHlwZW9mIEQ9PT0idW5kZWZpbmVkIiYmKEQ9VyxXPXZvaWQgMCk7aWYodHlwZW9mIEQhPT0idW5kZWZpbmVkIil7aWYodHlwZW9mIEQhPT0iZnVuY3Rpb24iKXRocm93IEVycm9yKGBFeHBlY3RlZCB0aGUgZW5oYW5jZXIgdG8gYmUgYSBmdW5jdGlvbi4gSW5zdGVhZCwgcmVjZWl2ZWQ6ICcke3R5cGVvZiBEfSdgKTsKcmV0dXJuIEQoJGYpKG4sVyl9aWYodHlwZW9mIG4hPT0iZnVuY3Rpb24iKXRocm93IEVycm9yKGBFeHBlY3RlZCB0aGUgcm9vdCByZWR1Y2VyIHRvIGJlIGEgZnVuY3Rpb24uIEluc3RlYWQsIHJlY2VpdmVkOiAnJHt0eXBlb2Ygbn0nYCk7dmFyIGg9bix4PVcsTD1bXSxlPUwsRz0hMTtrKHt0eXBlOkdkfSk7dmFyIHI9e2Rpc3BhdGNoOmssc3Vic2NyaWJlOnYsZ2V0U3RhdGU6YixyZXBsYWNlUmVkdWNlcjpmdW5jdGlvbihOKXtpZih0eXBlb2YgTiE9PSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IoYEV4cGVjdGVkIHRoZSBuZXh0UmVkdWNlciB0byBiZSBhIGZ1bmN0aW9uLiBJbnN0ZWFkLCByZWNlaXZlZDogJyR7dHlwZW9mIE59YCk7aD1OO2soe3R5cGU6RUtDfSk7cmV0dXJuIHJ9LApbcjJdOmZ1bmN0aW9uKCl7cmV0dXJue3N1YnNjcmliZShOKXtmdW5jdGlvbiBIKCl7Ti5uZXh0JiZOLm5leHQoYigpKX0KaWYodHlwZW9mIE4hPT0ib2JqZWN0Inx8Tj09PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgdGhlIG9ic2VydmVyIHRvIGJlIGFuIG9iamVjdC4gSW5zdGVhZCwgcmVjZWl2ZWQ6ICcke3R5cGVvZiBOfSdgKTtIKCk7cmV0dXJue3Vuc3Vic2NyaWJlOnYoSCl9fSxbcjJdKCl7cmV0dXJuIHRoaXN9fX19OwpyZXR1cm4gcn07Ck5OPWZ1bmN0aW9uKG4pe3JldHVybiBuPyhuPW4ucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZVNjcmlwdFdyYXBwZWRWYWx1ZSk/bWMobik6bnVsbDpudWxsfTsKcHc9ZnVuY3Rpb24obil7cmV0dXJuIG4/KG49bi5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VUcnVzdGVkUmVzb3VyY2VVcmxXcmFwcGVkVmFsdWUpP2szKG4pOm51bGw6bnVsbH07CmcuSFY9ZnVuY3Rpb24obil7bj1ZZihuKTtyZXR1cm4gZy5ITShuKX07CmZ3PWZ1bmN0aW9uKG4pe249WWYobik7cmV0dXJuIGszKG4pfTsKWWY9ZnVuY3Rpb24obil7cmV0dXJuIG49PT1udWxsPyJudWxsIjpuPT09dm9pZCAwPyJ1bmRlZmluZWQiOm59OwpKcj1mdW5jdGlvbigpe3JldHVybiBnLnJyKCJ5dC5hZHMuYmlzY290dGkubGFzdElkXyIpfHwiIn07CmcuU0g9ZnVuY3Rpb24oLi4ubil7bj1hcmd1bWVudHM7dmFyIFc9SUU7bi5sZW5ndGg+MT9XW25bMF1dPW5bMV06bi5sZW5ndGg9PT0xJiZPYmplY3QuYXNzaWduKFcsblswXSl9OwpnLkFyPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4gaW4gSUU/SUVbbl06V307Cm15PWZ1bmN0aW9uKG4pe3ZhciBXPUlFLkVYUEVSSU1FTlRfRkxBR1M7cmV0dXJuIFc/V1tuXTp2b2lkIDB9OwppMGI9ZnVuY3Rpb24obil7S3cuZm9yRWFjaChXPT5XKG4pKX07ClBWPWZ1bmN0aW9uKG4pe3JldHVybiBuJiZ3aW5kb3cueXRlcnI/ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfWNhdGNoKFcpe090KFcpfX06bn07Ck90PWZ1bmN0aW9uKG4pe3ZhciBXPWcucnIoInl0LmxvZ2dpbmcuZXJyb3JzLmxvZyIpO1c/VyhuLCJFUlJPUiIsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCk6KFc9Zy5BcigiRVJST1JTIixbXSksVy5wdXNoKFtuLCJFUlJPUiIsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMF0pLGcuU0goIkVSUk9SUyIsVykpO2kwYihuKX07ClpFPWZ1bmN0aW9uKG4sVyxELGIsdil7dmFyIGs9Zy5ycigieXQubG9nZ2luZy5lcnJvcnMubG9nIik7az9rKG4sIldBUk5JTkciLFcsRCxiLHZvaWQgMCx2KTooaz1nLkFyKCJFUlJPUlMiLFtdKSxrLnB1c2goW24sIldBUk5JTkciLFcsRCxiLHZvaWQgMCx2XSksZy5TSCgiRVJST1JTIixrKSl9Owp5Rj1mdW5jdGlvbihuLFcpe1c9bi5zcGxpdChXKTt2YXIgRD17fTtmb3IobGV0IGs9MCxoPVcubGVuZ3RoO2s8aDtrKyspe2xldCB4PVdba10uc3BsaXQoIj0iKTtpZih4Lmxlbmd0aD09PTEmJnhbMF18fHgubGVuZ3RoPT09Mil0cnl7bGV0IEw9VXQoeFswXXx8IiIpLGU9VXQoeFsxXXx8IiIpO2lmKEwgaW4gRCl7bGV0IEc9RFtMXTtBcnJheS5pc0FycmF5KEcpP2cuUTIoRyxlKTpEW0xdPVtHLGVdfWVsc2UgRFtMXT1lfWNhdGNoKEwpe3ZhciBiPUwsdj14WzBdO2xldCBlPVN0cmluZyh5Rik7Yi5hcmdzPVt7a2V5OnYsdmFsdWU6eFsxXSxxdWVyeTpuLG1ldGhvZDp1UWg9PT1lPyJ1bmNoYW5nZWQiOmV9XTtvS2kuaGFzT3duUHJvcGVydHkodil8fFpFKGIpfX1yZXR1cm4gRH07CmcuRXQ9ZnVuY3Rpb24obil7dmFyIFc9W107Zy5hXyhuLChELGIpPT57dmFyIHY9cWgoYik7Zy55MihBcnJheS5pc0FycmF5KEQpP0Q6W0RdLGs9PntrPT0iIj9XLnB1c2godik6Vy5wdXNoKGAke3Z9PSR7cWgoayl9YCl9KX0pOwpyZXR1cm4gVy5qb2luKCImIil9OwpnLml3PWZ1bmN0aW9uKG4pe24uY2hhckF0KDApPT09Ij8iJiYobj1uLnN1YnN0cmluZygxKSk7cmV0dXJuIHlGKG4sIiYiKX07CnV3PWZ1bmN0aW9uKG4pe3JldHVybiBuLnNwbGl0KCIsIikubWFwKFc9PmcuaXcoVykpfTsKZy5vRT1mdW5jdGlvbihuKXtyZXR1cm4gbi5pbmRleE9mKCI/IikhPT0tMT8obj0obnx8IiIpLnNwbGl0KCIjIilbMF0sbj1uLnNwbGl0KCI/IiwyKSxnLml3KG4ubGVuZ3RoPjE/blsxXTpuWzBdKSk6e319OwpnLnpkPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGQyKG4sV3x8e30sITApfTsKZy5sdz1mdW5jdGlvbihuLFcpe3JldHVybiBkMihuLFd8fHt9LCExKX07CmQyPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uLnNwbGl0KCIjIiwyKTtuPWJbMF07Yj1iLmxlbmd0aD4xPyIjIitiWzFdOiIiO3ZhciB2PW4uc3BsaXQoIj8iLDIpO249dlswXTt2PWcuaXcodlsxXXx8IiIpO2ZvcihsZXQgayBpbiBXKWlmKER8fCFnLmVwKHYsaykpdltrXT1XW2tdO3JldHVybiBnLkVUKG4sdikrYn07CmcuVGQ9ZnVuY3Rpb24obil7aWYoIVcpdmFyIFc9d2luZG93LmxvY2F0aW9uLmhyZWY7dmFyIEQ9Zy5mcChuKVsxXXx8bnVsbCxiPWcuSVAobik7RCYmYj8obj1nLmZwKG4pLFc9Zy5mcChXKSxuPW5bM109PVdbM10mJm5bMV09PVdbMV0mJm5bNF09PVdbNF0pOm49Yj9nLklQKFcpPT09YiYmKE51bWJlcihnLmZwKFcpWzRdfHxudWxsKXx8bnVsbCk9PT0oTnVtYmVyKGcuZnAobilbNF18fG51bGwpfHxudWxsKTohMDtyZXR1cm4gbn07Cmcuakg9ZnVuY3Rpb24obil7bnx8KG49ZG9jdW1lbnQubG9jYXRpb24uaHJlZik7bj1nLmZwKG4pWzFdfHxudWxsO3JldHVybiBuIT09bnVsbCYmbj09PSJodHRwcyJ9OwpnLkJWPWZ1bmN0aW9uKG4pe249Q3cobik7cmV0dXJuIG49PT1udWxsPyExOm5bMF09PT0iY29tIiYmblsxXS5tYXRjaCgvXnlvdXR1YmUoPzpraWRzfC1ub2Nvb2tpZSk/JC8pPyEwOiExfTsKZy5GJD1mdW5jdGlvbihuKXtuPUN3KG4pO3JldHVybiBuPT09bnVsbD8hMTpuWzFdPT09Imdvb2dsZSI/ITA6blsyXT09PSJnb29nbGUiP25bMF09PT0iYXUiJiZuWzFdPT09ImNvbSI/ITA6blswXT09PSJ1ayImJm5bMV09PT0iY28iPyEwOiExOiExfTsKQ3c9ZnVuY3Rpb24obil7bj1nLklQKG4pO3JldHVybiBuIT09bnVsbD9uLnNwbGl0KCIuIikucmV2ZXJzZSgpOm51bGx9OwpVdD1mdW5jdGlvbihuKXtyZXR1cm4gbiYmbi5tYXRjaChkeGkpP246RzUobil9OwpnLk1OPWZ1bmN0aW9uKG4pe2E6e2xldCBEO3RyeXtEPW4uTi50b3AubG9jYXRpb24uaHJlZn1jYXRjaChiKXtuPTI7YnJlYWsgYX1uPUQ/RD09PW4uSi5sb2NhdGlvbi5ocmVmPzA6MToyfW49e2R0OnpDdyxmbGFzaDoiMCIsZnJtOm59O3RyeXtuLnVfdHo9LShuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKTt0cnl7dmFyIFc9Zy53Mi5oaXN0b3J5Lmxlbmd0aH1jYXRjaChEKXtXPTB9bi51X2hpcz1XO24udV9oPWcudzIuc2NyZWVuPy5oZWlnaHQ7bi51X3c9Zy53Mi5zY3JlZW4/LndpZHRoO24udV9haD1nLncyLnNjcmVlbj8uYXZhaWxIZWlnaHQ7bi51X2F3PWcudzIuc2NyZWVuPy5hdmFpbFdpZHRoO24udV9jZD1nLncyLnNjcmVlbj8uY29sb3JEZXB0aH1jYXRjaChEKXt9cmV0dXJuIG59OwpnLlFGPWZ1bmN0aW9uKG49SnIoKSl7dmFyIFc9Zy5SRSxEPU9iamVjdCxiPUQuYXNzaWduLHY9Zy5NTihXKTt2YXIgaz1XLk47dHJ5e3ZhciBoPWsuc2NyZWVuWDt2YXIgeD1rLnNjcmVlbll9Y2F0Y2goVCl7fXRyeXt2YXIgTD1rLm91dGVyV2lkdGg7dmFyIGU9ay5vdXRlckhlaWdodH1jYXRjaChUKXt9dHJ5e3ZhciBHPWsuaW5uZXJXaWR0aDt2YXIgcj1rLmlubmVySGVpZ2h0fWNhdGNoKFQpe310cnl7dmFyIE49ay5zY3JlZW5MZWZ0O3ZhciBIPWsuc2NyZWVuVG9wfWNhdGNoKFQpe310cnl7Rz1rLmlubmVyV2lkdGgscj1rLmlubmVySGVpZ2h0fWNhdGNoKFQpe310cnl7dmFyIEE9ay5zY3JlZW4uYXZhaWxXaWR0aDt2YXIgeT1rLnNjcmVlbi5hdmFpbFRvcH1jYXRjaChUKXt9az1bTixILGgseCxBLHksTCxlLEcscl07aD1nLnNJKCExLFcuTi50b3ApO3g9bmV3IGxYcjsiU1ZHRWxlbWVudCJpbiBnLnFpJiYiY3JlYXRlRWxlbWVudE5TImluIGcucWkuZG9jdW1lbnQmJnguc2V0KDApOwpMPVRUcigpO0xbImFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbiJdJiZ4LnNldCgxKTtMWyJhbGxvdy1wb3B1cHMtdG8tZXNjYXBlLXNhbmRib3giXSYmeC5zZXQoMik7Zy5xaS5jcnlwdG8mJmcucWkuY3J5cHRvLnN1YnRsZSYmeC5zZXQoMyk7IlRleHREZWNvZGVyImluIGcucWkmJiJUZXh0RW5jb2RlciJpbiBnLnFpJiZ4LnNldCg0KTtXPXtiYzpOV2goeCksYmloOmguaGVpZ2h0LGJpdzpoLndpZHRoLGJyZGltOmsuam9pbigpLHZpczpnLk53KFcuSiksd2dsOiEhZy53Mi5XZWJHTFJlbmRlcmluZ0NvbnRleHR9O0Q9Yi5jYWxsKEQsdixXKTtELmNhX3R5cGU9ImltYWdlIjtuJiYoRC5iaWQ9bik7cmV0dXJuIER9OwpUVzI9ZnVuY3Rpb24oKXtpZighVkYpcmV0dXJuIG51bGw7dmFyIG49VkYoKTtyZXR1cm4ib3BlbiJpbiBuP246bnVsbH07CmFFPWZ1bmN0aW9uKG4pe3N3aXRjaChjVihuKSl7Y2FzZSAyMDA6Y2FzZSAyMDE6Y2FzZSAyMDI6Y2FzZSAyMDM6Y2FzZSAyMDQ6Y2FzZSAyMDU6Y2FzZSAyMDY6Y2FzZSAzMDQ6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19OwpjVj1mdW5jdGlvbihuKXtyZXR1cm4gbiYmInN0YXR1cyJpbiBuP24uc3RhdHVzOi0xfTsKZy5uJD1mdW5jdGlvbihuLFcpe3R5cGVvZiBuPT09ImZ1bmN0aW9uIiYmKG49UFYobikpO3JldHVybiB3aW5kb3cuc2V0VGltZW91dChuLFcpfTsKVzA9ZnVuY3Rpb24obixXKXt0eXBlb2Ygbj09PSJmdW5jdGlvbiImJihuPVBWKG4pKTtyZXR1cm4gd2luZG93LnNldEludGVydmFsKG4sVyl9OwpEcj1mdW5jdGlvbihuKXt3aW5kb3cuY2xlYXJJbnRlcnZhbChuKX07CmcubD1mdW5jdGlvbihuLFcpe249YmIobixXKTtyZXR1cm4gdHlwZW9mIG49PT0ic3RyaW5nIiYmbj09PSJmYWxzZSI/ITE6ISFufTsKdjA9ZnVuY3Rpb24obixXKXtyZXR1cm4gTnVtYmVyKGJiKG4sVyl8fDApfTsKa1Q9ZnVuY3Rpb24oKXtyZXR1cm4gZy5BcigiRVhQRVJJTUVOVFNfVE9LRU4iLCIiKX07CmJiPWZ1bmN0aW9uKG4sVyl7bj1nLkFyKCJFWFBFUklNRU5UX0ZMQUdTIix7fSlbbl07cmV0dXJuIG4hPT12b2lkIDA/bjpXfTsKaHk9ZnVuY3Rpb24oKXt2YXIgbj1bXSxXPWcuQXIoIkVYUEVSSU1FTlRTX0ZPUkNFRF9GTEFHUyIse30pO2Zvcih2YXIgRCBvZiBPYmplY3Qua2V5cyhXKSluLnB1c2goe2tleTpELHZhbHVlOlN0cmluZyhXW0RdKX0pO0Q9Zy5BcigiRVhQRVJJTUVOVF9GTEFHUyIse30pO2ZvcihsZXQgYiBvZiBPYmplY3Qua2V5cyhEKSliLnN0YXJ0c1dpdGgoImZvcmNlXyIpJiZXW2JdPT09dm9pZCAwJiZuLnB1c2goe2tleTpiLHZhbHVlOlN0cmluZyhEW2JdKX0pO3JldHVybiBufTsKeFQ9ZnVuY3Rpb24obixXLEQ9IkdFVCIsYj0iIix2LGssaCx4PSExLEwpe3ZhciBlPVRXMigpO2lmKCFlKXJldHVybiBudWxsO3ZhciBHPSgpPT57KGUmJiJyZWFkeVN0YXRlImluIGU/ZS5yZWFkeVN0YXRlOjApPT09NCYmVyYmUFYoVykoZSl9Owoib25sb2FkZW5kImluIGU/ZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixHLCExKTplLm9ucmVhZHlzdGF0ZWNoYW5nZT1HO2cubCgiZGVidWdfZm9yd2FyZF93ZWJfcXVlcnlfcGFyYW1ldGVycyIpJiYobj1qMloobikpO2Uub3BlbihELG4sITApO2smJihlLnJlc3BvbnNlVHlwZT1rKTtoJiYoZS53aXRoQ3JlZGVudGlhbHM9ITApO0Q9RD09PSJQT1NUIiYmKHdpbmRvdy5Gb3JtRGF0YT09PXZvaWQgMHx8IShiIGluc3RhbmNlb2YgRm9ybURhdGEpKTtpZih2PUNwTShuLHYpKWZvcihsZXQgciBpbiB2KWUuc2V0UmVxdWVzdEhlYWRlcihyLHZbcl0pLCJjb250ZW50LXR5cGUiPT09ci50b0xvd2VyQ2FzZSgpJiYoRD0hMSk7RCYmZS5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKTtMJiYib25wcm9ncmVzcyJpbiBlJiYoZS5vbnByb2dyZXNzPSgpPT57TChlLnJlc3BvbnNlVGV4dCl9KTsKaWYoeCYmInNldEF0dHJpYnV0aW9uUmVwb3J0aW5nImluIFhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZSl7bj17ZXZlbnRTb3VyY2VFbGlnaWJsZTohMCx0cmlnZ2VyRWxpZ2libGU6ITF9O3RyeXtlLnNldEF0dHJpYnV0aW9uUmVwb3J0aW5nKG4pfWNhdGNoKHIpe1pFKHIpfX1lLnNlbmQoYik7cmV0dXJuIGV9OwpDcE09ZnVuY3Rpb24obixXPXt9KXt2YXIgRD1nLlRkKG4pLGI9Zy5BcigiSU5ORVJUVUJFX0NMSUVOVF9OQU1FIiksdj1nLmwoIndlYl9hamF4X2lnbm9yZV9nbG9iYWxfaGVhZGVyc19pZl9zZXQiKTtmb3IobGV0IHggaW4gTCQpe2xldCBMPWcuQXIoTCRbeF0pLGU9eD09PSJYLUdvb2ctQXV0aFVzZXIifHx4PT09IlgtR29vZy1QYWdlSWQiO3ghPT0iWC1Hb29nLVZpc2l0b3ItSWQifHxMfHwoTD1nLkFyKCJWSVNJVE9SX0RBVEEiKSk7dmFyIGs7aWYoIShrPSFMKSl7aWYoIShrPUR8fChnLklQKG4pPyExOiEwKSkpe2s9bjt2YXIgaDtpZihoPWcubCgiYWRkX2F1dGhfaGVhZGVyc190b19yZW1hcmtldGluZ19nb29nbGVfZG90X2NvbV9waW5nIikmJng9PT0iQXV0aG9yaXphdGlvbiImJihiPT09IlRWSFRNTDUifHxiPT09IlRWSFRNTDVfVU5QTFVHR0VEInx8Yj09PSJUVkhUTUw1X1NJTVBMWSIpJiZnLkYkKGspKWs9UzEoayl8fCIiLGs9ay5zcGxpdCgiLyIpLGs9Ii8iKyhrLmxlbmd0aD4KMT9rWzFdOiIiKSxoPWs9PT0iL3BhZ2VhZCI7az1oPyEwOiExfWs9IWt9a3x8diYmV1t4XSE9PXZvaWQgMHx8Yj09PSJUVkhUTUw1X1VOUExVR0dFRCImJmV8fChXW3hdPUwpfSJYLUdvb2ctRU9NLVZpc2l0b3ItSWQiaW4gVyYmIlgtR29vZy1WaXNpdG9yLUlkImluIFcmJmRlbGV0ZSBXWyJYLUdvb2ctVmlzaXRvci1JZCJdO2lmKER8fCFnLklQKG4pKVdbIlgtWW91VHViZS1VdGMtT2Zmc2V0Il09U3RyaW5nKC0obmV3IERhdGUpLmdldFRpbWV6b25lT2Zmc2V0KCkpO2lmKER8fCFnLklQKG4pKXtsZXQgeDt0cnl7eD0obmV3IEludGwuRGF0ZVRpbWVGb3JtYXQpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lfWNhdGNoe314JiYoV1siWC1Zb3VUdWJlLVRpbWUtWm9uZSJdPXgpfWRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lLmVuZHNXaXRoKCJ5b3V0dWJlZWR1Y2F0aW9uLmNvbSIpfHwhRCYmZy5JUChuKXx8KFdbIlgtWW91VHViZS1BZC1TaWduYWxzIl09Zy5FdChnLlFGKCkpKTtyZXR1cm4gV307Cmc4PWZ1bmN0aW9uKG4sVyl7Vy5tZXRob2Q9IlBPU1QiO1cucG9zdFBhcmFtc3x8KFcucG9zdFBhcmFtcz17fSk7cmV0dXJuIGcuZWQobixXKX07CkJXaj1mdW5jdGlvbihuLFcpe2lmKHdpbmRvdy5mZXRjaCYmVy5mb3JtYXQhPT0iWE1MIil7dmFyIEQ9e21ldGhvZDpXLm1ldGhvZHx8IkdFVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn07Vy5oZWFkZXJzJiYoRC5oZWFkZXJzPVcuaGVhZGVycyk7Vy5wcmlvcml0eSYmKEQucHJpb3JpdHk9Vy5wcmlvcml0eSk7bj1YbihuLFcpO3ZhciBiPXFYKG4sVyk7YiYmKEQuYm9keT1iKTtXLndpdGhDcmVkZW50aWFscyYmKEQuY3JlZGVudGlhbHM9ImluY2x1ZGUiKTt2YXIgdj1XLmNvbnRleHR8fGcucWksaz0hMSxoO2ZldGNoKG4sRCkudGhlbih4PT57aWYoIWspe2s9ITA7aCYmd2luZG93LmNsZWFyVGltZW91dChoKTt2YXIgTD14Lm9rLGU9Rz0+e0c9R3x8e307TD9XLm9uU3VjY2VzcyYmVy5vblN1Y2Nlc3MuY2FsbCh2LEcseCk6Vy5vbkVycm9yJiZXLm9uRXJyb3IuY2FsbCh2LEcseCk7Vy5vbkZpbmlzaCYmVy5vbkZpbmlzaC5jYWxsKHYsRyx4KX07CihXLmZvcm1hdHx8IkpTT04iKT09PSJKU09OIiYmKEx8fHguc3RhdHVzPj00MDAmJnguc3RhdHVzPDUwMCk/eC5qc29uKCkudGhlbihlLCgpPT57ZShudWxsKX0pOmUobnVsbCl9fSkuY2F0Y2goKCk9PntXLm9uRXJyb3ImJlcub25FcnJvci5jYWxsKHYse30se30pfSk7Cm49Vy50aW1lb3V0fHwwO1cub25GZXRjaFRpbWVvdXQmJm4+MCYmKGg9Zy5uJCgoKT0+e2t8fChrPSEwLHdpbmRvdy5jbGVhclRpbWVvdXQoaCksVy5vbkZldGNoVGltZW91dC5jYWxsKFcuY29udGV4dHx8Zy5xaSkpfSxuKSl9ZWxzZSBnLmVkKG4sVyl9OwpnLmVkPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Vy5mb3JtYXR8fCJKU09OIjtuPVhuKG4sVyk7dmFyIGI9cVgobixXKSx2PSExLGs9RngxKG4seD0+e2lmKCF2KXt2PSEwO2gmJndpbmRvdy5jbGVhclRpbWVvdXQoaCk7dmFyIEw9YUUoeCksZT1udWxsLEc9NDAwPD14LnN0YXR1cyYmeC5zdGF0dXM8NTAwLHI9NTAwPD14LnN0YXR1cyYmeC5zdGF0dXM8NjAwO2lmKEx8fEd8fHIpZT13MjIobixELHgsVy5jb252ZXJ0VG9TYWZlSHRtbCk7TCYmKEw9TXVDKEQseCxlKSk7ZT1lfHx7fTtHPVcuY29udGV4dHx8Zy5xaTtMP1cub25TdWNjZXNzJiZXLm9uU3VjY2Vzcy5jYWxsKEcseCxlKTpXLm9uRXJyb3ImJlcub25FcnJvci5jYWxsKEcseCxlKTtXLm9uRmluaXNoJiZXLm9uRmluaXNoLmNhbGwoRyx4LGUpfX0sVy5tZXRob2QsYixXLmhlYWRlcnMsVy5yZXNwb25zZVR5cGUsVy53aXRoQ3JlZGVudGlhbHMsITEsVy5vblByb2dyZXNzKTsKYj1XLnRpbWVvdXR8fDA7aWYoVy5vblRpbWVvdXQmJmI+MCl7bGV0IHg9Vy5vblRpbWVvdXQ7dmFyIGg9Zy5uJCgoKT0+e3Z8fCh2PSEwLGsuYWJvcnQoKSx3aW5kb3cuY2xlYXJUaW1lb3V0KGgpLHguY2FsbChXLmNvbnRleHR8fGcucWksaykpfSxiKX1yZXR1cm4ga307ClhuPWZ1bmN0aW9uKG4sVyl7Vy5pbmNsdWRlRG9tYWluJiYobj1kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK2RvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKyhkb2N1bWVudC5sb2NhdGlvbi5wb3J0PyI6Iitkb2N1bWVudC5sb2NhdGlvbi5wb3J0OiIiKStuKTt2YXIgRD1nLkFyKCJYU1JGX0ZJRUxEX05BTUUiKTtpZihXPVcudXJsUGFyYW1zKVdbRF0mJmRlbGV0ZSBXW0RdLG49Zy56ZChuLFcpO3JldHVybiBufTsKcVg9ZnVuY3Rpb24obixXKXt2YXIgRD1nLkFyKCJYU1JGX0ZJRUxEX05BTUUiKSxiPWcuQXIoIlhTUkZfVE9LRU4iKSx2PVcucG9zdEJvZHl8fCIiLGs9Vy5wb3N0UGFyYW1zLGg9Zy5BcigiWFNSRl9GSUVMRF9OQU1FIikseDtXLmhlYWRlcnMmJih4PVcuaGVhZGVyc1siQ29udGVudC1UeXBlIl0pO1cuZXhjbHVkZVhzcmZ8fGcuSVAobikmJiFXLndpdGhDcmVkZW50aWFscyYmZy5JUChuKSE9PWRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lfHxXLm1ldGhvZCE9PSJQT1NUInx8eCYmeCE9PSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifHxXLnBvc3RQYXJhbXMmJlcucG9zdFBhcmFtc1toXXx8KGt8fChrPXt9KSxrW0RdPWIpO2smJnR5cGVvZiB2PT09InN0cmluZyImJih2PWcuaXcodiksZy5ZeSh2LGspLHY9Vy5wb3N0Qm9keUZvcm1hdCYmVy5wb3N0Qm9keUZvcm1hdD09PSJKU09OIj9KU09OLnN0cmluZ2lmeSh2KTp5Ryh2KSk7az12fHxrJiYhZy5HRihrKTshR1EmJgprJiZXLm1ldGhvZCE9PSJQT1NUIiYmKEdRPSEwLE90KEVycm9yKCJBSkFYIHJlcXVlc3Qgd2l0aCBwb3N0RGF0YSBzaG91bGQgdXNlIFBPU1QiKSkpO3JldHVybiB2fTsKdzIyPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PW51bGw7c3dpdGNoKFcpe2Nhc2UgIkpTT04iOmxldCBrO3RyeXtrPUQucmVzcG9uc2VUZXh0fWNhdGNoKGgpe3Rocm93IGI9RXJyb3IoIkVycm9yIHJlYWRpbmcgcmVzcG9uc2VUZXh0IiksYi5wYXJhbXM9bixaRShiKSxoO31uPUQuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpfHwiIjtpZihrJiZuLmluZGV4T2YoImpzb24iKT49MCl7ay5zdWJzdHJpbmcoMCw1KT09PSIpXX0nXG4iJiYoaz1rLnN1YnN0cmluZyg1KSk7dHJ5e3Y9SlNPTi5wYXJzZShrKX1jYXRjaChoKXt9fWJyZWFrO2Nhc2UgIlhNTCI6aWYobj0obj1ELnJlc3BvbnNlWE1MKT9SQ1Uobik6bnVsbCl2PXt9LGcueTIobi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLGg9Pnt2W2gudGFnTmFtZV09UTJpKGgpfSl9YiYmdHkodik7CnJldHVybiB2fTsKdHk9ZnVuY3Rpb24obil7aWYoZy5mdChuKSlmb3IobGV0IFcgaW4gbilXPT09Imh0bWxfY29udGVudCJ8fGcuQlooVywiX2h0bWwiKT9uW1ddPWcuSE0obltXXSk6dHkobltXXSl9OwpNdUM9ZnVuY3Rpb24obixXLEQpe2lmKFcmJlcuc3RhdHVzPT09MjA0KXJldHVybiEwO3N3aXRjaChuKXtjYXNlICJKU09OIjpyZXR1cm4hIUQ7Y2FzZSAiWE1MIjpyZXR1cm4gTnVtYmVyKEQmJkQucmV0dXJuX2NvZGUpPT09MDtjYXNlICJSQVciOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuISFEfX07ClJDVT1mdW5jdGlvbihuKXtyZXR1cm4gbj8obj0oInJlc3BvbnNlWE1MImluIG4/bi5yZXNwb25zZVhNTDpuKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgicm9vdCIpKSYmbi5sZW5ndGg+MD9uWzBdOm51bGw6bnVsbH07ClEyaT1mdW5jdGlvbihuKXt2YXIgVz0iIjtnLnkyKG4uY2hpbGROb2RlcyxEPT57Vys9RC5ub2RlVmFsdWV9KTsKcmV0dXJuIFd9OwpqMlo9ZnVuY3Rpb24obil7dmFyIFc9d2luZG93LmxvY2F0aW9uLnNlYXJjaCxEPWcuSVAobik7Zy5sKCJkZWJ1Z19oYW5kbGVfcmVsYXRpdmVfdXJsX2Zvcl9xdWVyeV9mb3J3YXJkX2tpbGxzd2l0Y2giKXx8IUQmJmcuVGQobikmJihEPWRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lKTt2YXIgYj1TMShuKTtiPShEPUQmJihELmVuZHNXaXRoKCJ5b3V0dWJlLmNvbSIpfHxELmVuZHNXaXRoKCJ5b3V0dWJlLW5vY29va2llLmNvbSIpKSkmJmImJmIuc3RhcnRzV2l0aCgiL2FwaS8iKTtpZighRHx8YilyZXR1cm4gbjt2YXIgdj1nLml3KFcpLGs9e307Zy55MihWdWIsaD0+e3ZbaF0mJihrW2hdPXZbaF0pfSk7CnJldHVybiBnLmx3KG4sayl9OwpnLnI4PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Zy5zMChXKSxiO3JldHVybihuZXcgZy5YMSgodixrKT0+e0Qub25TdWNjZXNzPWg9PnthRShoKT92KG5ldyBjNFUoaCkpOmsobmV3IGcuJFQoYFJlcXVlc3QgZmFpbGVkLCBzdGF0dXM9JHtjVihoKX1gLCJuZXQuYmFkc3RhdHVzIixoKSl9OwpELm9uRXJyb3I9aD0+e2sobmV3IGcuJFQoIlVua25vd24gcmVxdWVzdCBlcnJvciIsIm5ldC51bmtub3duIixoKSl9OwpELm9uVGltZW91dD1oPT57ayhuZXcgZy4kVCgiUmVxdWVzdCB0aW1lZCBvdXQiLCJuZXQudGltZW91dCIsaCkpfTsKYj1nLmVkKG4sRCl9KSkuc1Aodj0+e3YgaW5zdGFuY2VvZiBnLkk1JiZiPy5hYm9ydCgpOwpyZXR1cm4gZy5ycCh2KX0pfTsKZy5zej1mdW5jdGlvbihuLFcsRCxiLHY9LTEsayl7dmFyIGg9TD0+bmV3IGcuWDEoZT0+e3NldFRpbWVvdXQoZSxMKX0pLHg9KEwsZSxHKT0+TC5zUChyPT57aWYoZTw9MHx8Y1Yoci54aHIpPT09NDAzKXJldHVybiBnLnJwKG5ldyBnLiRUKCJSZXF1ZXN0IHJldHJpZWQgdG9vIG1hbnkgdGltZXMiLCJuZXQucmV0cnlleGhhdXN0ZWQiLHIueGhyKSk7CnZhciBOPU1hdGgucG93KDIsRC1lKzEpKkcsSD12PjA/TWF0aC5taW4odixOKTpOO3JldHVybiBoKEcpLnRoZW4oKCk9PntrJiZrKHIsZS0xKTtyZXR1cm4geChnLnI4KG4sVyksZS0xLEgpfSl9KTsKcmV0dXJuIHgoZy5yOChuLFcpLEQtMSxiKX07CmFYQz1mdW5jdGlvbihuLFc9bnVsbCl7bi5XPTI7bi5KPVd9OwpuVXc9ZnVuY3Rpb24obixXPW51bGwpe24uVz0xO24uSj1XfTsKZy5wJD1mdW5jdGlvbihuPW51bGwpe3ZhciBXPW5ldyBOWDthWEMoVyxuKTtyZXR1cm4gV307CmcuSDA9ZnVuY3Rpb24obj1udWxsKXt2YXIgVz1uZXcgTlg7blV3KFcsbik7cmV0dXJuIFd9OwpJSz1mdW5jdGlvbihuLFcsRCxiPSJ5b3V0dWJlLmNvbSIsdj0hMSl7ZiR8fEp5LnNldCgiIituLFcse256OkQscGF0aDoiLyIsZG9tYWluOmIsc2VjdXJlOnZ9KX07CmcuU2Q9ZnVuY3Rpb24obil7aWYoIWYkKXJldHVybiBKeS5nZXQoIiIrbix2b2lkIDApfTsKQXk9ZnVuY3Rpb24obixXPSIvIixEPSJ5b3V0dWJlLmNvbSIpe2YkfHxKeS5yZW1vdmUoIiIrbixXLEQpfTsKZy5taj1mdW5jdGlvbigpe2lmKCFKeS5pc0VuYWJsZWQoKSlyZXR1cm4hMTtpZighSnkuaXNFbXB0eSgpKXJldHVybiEwO0p5LnNldCgiVEVTVENPT0tJRVNFTkFCTEVEIiwiMSIse256OjYwfSk7aWYoSnkuZ2V0KCJURVNUQ09PS0lFU0VOQUJMRUQiKSE9PSIxIilyZXR1cm4hMTtKeS5yZW1vdmUoIlRFU1RDT09LSUVTRU5BQkxFRCIpO3JldHVybiEwfTsKZy53PWZ1bmN0aW9uKG4sVyl7aWYobilyZXR1cm4gbltXLm5hbWVdfTsKSyQ9ZnVuY3Rpb24obil7dmFyIFc9Zy5BcigiSU5ORVJUVUJFX0hPU1RfT1ZFUlJJREUiKTtXJiYobj1TdHJpbmcoVykrU3RyaW5nKG1XKG4pKSk7cmV0dXJuIG59OwpnWj1mdW5jdGlvbihuLFcsRCxiKXt2YXIgdj1XXm47dmFyIGs7KG4tNSYxMyk9PTEmJihrPURbSVsxN11dP0RbSVsxN11dW0lbMzVdXShJWzYzXSk6RFtJWzI2XV09PT1JWzYzXSk7aWYoKG4+PjEmNyk9PTEpe3ZhciBoPVAwKHZeNjQ0MCx2XjEzODcsRCk7YltJW3ZeNjQyNF1dKElbdl42NDM3XSxoKTtrPVtdfShuJjEzKT09biYmYltJWzVdXSE9MCYmKGg9b1MoNCw3NjI0LEQsYiksRD1oWzBdKTtyZXR1cm4ga307ClpyPWZ1bmN0aW9uKG4pe3ZhciBXPXt9O2cubCgianNvbl9jb25kZW5zZWRfcmVzcG9uc2UiKSYmKFcucHJldHR5UHJpbnQ9ImZhbHNlIik7cmV0dXJuIG49Zy5sdyhuLFcpfTsKVXo9ZnVuY3Rpb24obixXPSJQT1NUIil7bj17bWV0aG9kOlcsbW9kZTpnLlRkKG4pPyJzYW1lLW9yaWdpbiI6ImNvcnMiLGNyZWRlbnRpYWxzOmcuVGQobik/InNhbWUtb3JpZ2luIjoiaW5jbHVkZSJ9O1c9e307dmFyIEQ9e307Zm9yKGxldCBiIG9mIE9iamVjdC5rZXlzKFcpKVdbYl0mJihEW2JdPVdbYl0pO09iamVjdC5rZXlzKEQpLmxlbmd0aD4wJiYobi5oZWFkZXJzPUQpO3JldHVybiBufTsKeUg9ZnVuY3Rpb24obixXPXt9KXtyZXR1cm5gc2VydmljZToke259LyR7T2JqZWN0LmtleXMoVykuc29ydCgpLm1hcChEPT5EKyI6IitXW0RdKS5qb2luKCIvIil9YH07CkV6PWZ1bmN0aW9uKCl7dmFyIG49L0Nocm9tZVwvKFxkKykvLmV4ZWMoZy5YUSgpKTtyZXR1cm4gbj9wYXJzZUZsb2F0KG5bMV0pOk5hTn07CmliPWZ1bmN0aW9uKCl7dmFyIG49L1xzQ29iYWx0XC8oXFMrKVxzLy5leGVjKGcuWFEoKSk7aWYoIW4pcmV0dXJuIE5hTjt2YXIgVz1bXTtmb3IobGV0IEQgb2YgblsxXS5zcGxpdCgiLiIpKW49cGFyc2VJbnQoRCwxMCksbj49MCYmVy5wdXNoKG4pO3JldHVybiBwYXJzZUZsb2F0KFcuam9pbigiLiIpKX07Cm9LPWZ1bmN0aW9uKCl7cmV0dXJuIGcudWIoImFuZHJvaWQiKSYmZy51YigiY2hyb21lIikmJiEoZy51YigidHJpZGVudC8iKXx8Zy51YigiZWRnZS8iKSkmJiFnLnViKCJjb2JhbHQiKX07CmcuZDg9ZnVuY3Rpb24oKXtyZXR1cm4gZy51YigiY29iYWx0Iil9Owp6UT1mdW5jdGlvbigpe3JldHVybiBnLnViKCJjb2JhbHQiKSYmZy51YigiYXBwbGV0diIpfTsKbGI9ZnVuY3Rpb24oKXtyZXR1cm4gZy51YigiKHBzMzsgbGVhbmJhY2sgc2hlbGwpIil8fGcudWIoInBzMyIpJiZnLmQ4KCl9OwpUUT1mdW5jdGlvbigpe3JldHVybiBnLnViKCIocHM0OyBsZWFuYmFjayBzaGVsbCkiKXx8Zy51YigicHM0IikmJmcuZDgoKX07CmcuamQ9ZnVuY3Rpb24oKXtyZXR1cm4gZy5kOCgpJiYoZy51YigicHM0IHZyIil8fGcudWIoInBzNCBwcm8gdnIiKSl9OwpDJD1mdW5jdGlvbigpe3ZhciBuPS9XZWJLaXRcLyhbMC05XSspLy5leGVjKGcuWFEoKSk7cmV0dXJuISEobiYmcGFyc2VJbnQoblsxXSwxMCk+PTYwMCl9OwpCMD1mdW5jdGlvbigpe3ZhciBuPS9XZWJLaXRcLyhbMC05XSspLy5leGVjKGcuWFEoKSk7cmV0dXJuISEobiYmcGFyc2VJbnQoblsxXSwxMCk+PTYwMil9OwpGbj1mdW5jdGlvbigpe3JldHVybiBnLnViKCJpZW1vYmlsZSIpfHxnLnViKCJ3aW5kb3dzIHBob25lIikmJmcudWIoImVkZ2UiKX07ClJLPWZ1bmN0aW9uKCl7cmV0dXJuKHc4fHxNWCkmJmcudWIoImFwcGxld2Via2l0IikmJiFnLnViKCJ2ZXJzaW9uIikmJighZy51Yigic2FmYXJpIil8fGcudWIoImdzYS8iKSl9OwpWSD1mdW5jdGlvbigpe3JldHVybiBnLlFIJiZnLnViKCJ2ZXJzaW9uLyIpfTsKYzA9ZnVuY3Rpb24oKXtyZXR1cm4gZy51Yigic21hcnQtdHYiKSYmZy51Yigic2Ftc3VuZyIpfTsKZy51Yj1mdW5jdGlvbihuKXt2YXIgVz1nLlhRKCk7cmV0dXJuIFc/Vy50b0xvd2VyQ2FzZSgpLmluZGV4T2Yobik+PTA6ITF9OwpnLmFLPWZ1bmN0aW9uKCl7cmV0dXJuIGo2KCl8fFJLKCl8fFZIKCk/ITA6Zy5BcigiRU9NX1ZJU0lUT1JfREFUQSIpPyExOiEwfTsKbnk9ZnVuY3Rpb24obixXKXtyZXR1cm4gVz09PXZvaWQgMHx8Vz09PW51bGw/bjpXPT09IjEifHxXPT09ITB8fFc9PT0xfHxXPT09IlRydWUiPyEwOiExfTsKV0I9ZnVuY3Rpb24obixXLEQpe2ZvcihsZXQgYiBpbiBEKWlmKERbYl09PVcpcmV0dXJuIERbYl07cmV0dXJuIG59OwpEST1mdW5jdGlvbihuLFcpe3JldHVybiBXPT09dm9pZCAwfHxXPT09bnVsbD9uOk51bWJlcihXKX07CmJPPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFc9PT12b2lkIDB8fFc9PT1udWxsP246Vy50b1N0cmluZygpfTsKdkI9ZnVuY3Rpb24obixXKXtpZihXKXtpZihuPT09ImZ1bGx3aWR0aCIpcmV0dXJuIEluZmluaXR5O2lmKG49PT0iZnVsbGhlaWdodCIpcmV0dXJuIDB9cmV0dXJuIG4mJihXPW4ubWF0Y2goVzAxKSkmJihuPU51bWJlcihXWzJdKSxXPU51bWJlcihXWzFdKSwhaXNOYU4obikmJiFpc05hTihXKSYmbj4wKT9XL246TmFOfTsKa1I9ZnVuY3Rpb24obil7dmFyIFc9bi5kb2NpZHx8bi52aWRlb19pZHx8bi52aWRlb0lkfHxuLmlkO2lmKFcpcmV0dXJuIFc7Vz1uLnJhd19wbGF5ZXJfcmVzcG9uc2U7V3x8KG49bi5wbGF5ZXJfcmVzcG9uc2UpJiYoVz1KU09OLnBhcnNlKG4pKTtyZXR1cm4gVyYmVy52aWRlb0RldGFpbHMmJlcudmlkZW9EZXRhaWxzLnZpZGVvSWR8fG51bGx9OwpnLnhSPWZ1bmN0aW9uKG4pe3JldHVybiBoTyhuLCExKT09PSJFTUJFRERFRF9QTEFZRVJfTU9ERV9QRkwifTsKTHk9ZnVuY3Rpb24obil7cmV0dXJuIG49PT0iRU1CRURERURfUExBWUVSX0xJVEVfTU9ERV9GSVhFRF9QTEFZQkFDS19MSU1JVCJ8fG49PT0iRU1CRURERURfUExBWUVSX0xJVEVfTU9ERV9EWU5BTUlDX1BMQVlCQUNLX0xJTUlUIj8hMDohMX07CmhPPWZ1bmN0aW9uKG4sVz0hMSl7Vz1XPyJFTUJFRERFRF9QTEFZRVJfTU9ERV9ERUZBVUxUIjoiRU1CRURERURfUExBWUVSX01PREVfVU5LTk9XTiI7d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLmluY2x1ZGVzKCJ5b3V0dWJlZWR1Y2F0aW9uLmNvbSIpJiYoVz0iRU1CRURERURfUExBWUVSX01PREVfUEZMIik7dmFyIEQ9bi5yYXdfZW1iZWRkZWRfcGxheWVyX3Jlc3BvbnNlO2lmKCFEJiYobj1uLmVtYmVkZGVkX3BsYXllcl9yZXNwb25zZSkpdHJ5e0Q9SlNPTi5wYXJzZShuKX1jYXRjaChiKXtyZXR1cm4gV31yZXR1cm4gRD9XQihXLEQuZW1iZWRkZWRQbGF5ZXJNb2RlLEQzMSk6V307CmI1dD1mdW5jdGlvbihuKXtuJiYobi5kYXRhc2V0P24uZGF0YXNldFtlXygpXT0idHJ1ZSI6cXd0KG4pKX07CmdKPWZ1bmN0aW9uKG4pe3JldHVybiBuP24uZGF0YXNldD9uLmRhdGFzZXRbZV8oKV06bi5nZXRBdHRyaWJ1dGUoImRhdGEtbG9hZGVkIik6bnVsbH07CmVfPWZ1bmN0aW9uKCl7cmV0dXJuIFhrLmxvYWRlZHx8KFhrLmxvYWRlZD0ibG9hZGVkIi5yZXBsYWNlKC9cLShbYS16XSkvZywobixXKT0+Vy50b1VwcGVyQ2FzZSgpKSl9OwpHMT1mdW5jdGlvbigpe3ZhciBuPWRvY3VtZW50O2lmKCJ2aXNpYmlsaXR5U3RhdGUiaW4gbilyZXR1cm4gbi52aXNpYmlsaXR5U3RhdGU7dmFyIFc9cTArIlZpc2liaWxpdHlTdGF0ZSI7aWYoVyBpbiBuKXJldHVybiBuW1ddfTsKdE89ZnVuY3Rpb24obixXKXt2YXIgRDtnLm9NKG4sYj0+e0Q9V1tiXTtyZXR1cm4hIUR9KTsKcmV0dXJuIER9OwokUj1mdW5jdGlvbihuKXtpZihuLnJlcXVlc3RGdWxsc2NyZWVuKW49bi5yZXF1ZXN0RnVsbHNjcmVlbih2b2lkIDApO2Vsc2UgaWYobi53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbiluPW4ud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKTtlbHNlIGlmKG4ubW96UmVxdWVzdEZ1bGxTY3JlZW4pbj1uLm1velJlcXVlc3RGdWxsU2NyZWVuKCk7ZWxzZSBpZihuLm1zUmVxdWVzdEZ1bGxzY3JlZW4pbj1uLm1zUmVxdWVzdEZ1bGxzY3JlZW4oKTtlbHNlIGlmKG4ud2Via2l0RW50ZXJGdWxsc2NyZWVuKW49bi53ZWJraXRFbnRlckZ1bGxzY3JlZW4oKTtlbHNlIHJldHVybiBQcm9taXNlLnJlamVjdChFcnJvcigiRnVsbHNjcmVlbiBBUEkgdW5hdmFpbGFibGUiKSk7cmV0dXJuIG4gaW5zdGFuY2VvZiBQcm9taXNlP246UHJvbWlzZS5yZXNvbHZlKCl9OwpOMD1mdW5jdGlvbihuKXt2YXIgVztnLnJKKCk/c1AoKT09biYmKFc9ZG9jdW1lbnQpOlc9bjtyZXR1cm4gVyYmKG49dE8oWyJleGl0RnVsbHNjcmVlbiIsIndlYmtpdEV4aXRGdWxsc2NyZWVuIiwibW96Q2FuY2VsRnVsbFNjcmVlbiIsIm1zRXhpdEZ1bGxzY3JlZW4iXSxXKSk/KFc9bi5jYWxsKFcpLFcgaW5zdGFuY2VvZiBQcm9taXNlP1c6UHJvbWlzZS5yZXNvbHZlKCkpOlByb21pc2UucmVzb2x2ZSgpfTsKdlUxPWZ1bmN0aW9uKG4pe3JldHVybiBnLmxfKFsiZnVsbHNjcmVlbmNoYW5nZSIsIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCJtb3pmdWxsc2NyZWVuY2hhbmdlIiwiTVNGdWxsc2NyZWVuQ2hhbmdlIl0sVz0+YG9uJHtXLnRvTG93ZXJDYXNlKCl9YGluIG4pfTsKZy5ySj1mdW5jdGlvbigpe3JldHVybiEhdE8oWyJmdWxsc2NyZWVuRW5hYmxlZCIsIndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkIiwibW96RnVsbFNjcmVlbkVuYWJsZWQiLCJtc0Z1bGxzY3JlZW5FbmFibGVkIl0sZG9jdW1lbnQpfTsKc1A9ZnVuY3Rpb24obj0hMSl7dmFyIFc9dE8oWyJmdWxsc2NyZWVuRWxlbWVudCIsIndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50IiwibW96RnVsbFNjcmVlbkVsZW1lbnQiLCJtc0Z1bGxzY3JlZW5FbGVtZW50Il0sZG9jdW1lbnQpO2lmKG4pZm9yKDtXJiZXLnNoYWRvd1Jvb3Q7KVc9Vy5zaGFkb3dSb290LmZ1bGxzY3JlZW5FbGVtZW50O3JldHVybiBXP1c6bnVsbH07CnB5PWZ1bmN0aW9uKG4pe2lmKGRvY3VtZW50LmJvZHkmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCl7bGV0IFc9ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ArZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtuLk49bi5jbGllbnRYKyhkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQrZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQpO24uSj1uLmNsaWVudFkrV319OwprOWk9ZnVuY3Rpb24obixXLEQsYj17fSl7bi5hZGRFdmVudExpc3RlbmVyJiYoVyE9Im1vdXNlZW50ZXIifHwib25tb3VzZWVudGVyImluIGRvY3VtZW50P1chPSJtb3VzZWxlYXZlInx8Im9ubW91c2VlbnRlciJpbiBkb2N1bWVudD9XPT0ibW91c2V3aGVlbCImJiJNb3pCb3hTaXppbmciaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiYoVz0iTW96TW91c2VQaXhlbFNjcm9sbCIpOlc9Im1vdXNlb3V0IjpXPSJtb3VzZW92ZXIiKTtyZXR1cm4gZy5YTChnLllSLHY9Pnt2YXIgaz10eXBlb2Ygdls0XT09PSJib29sZWFuIiYmdls0XT09ISFiLGg9Zy5mdCh2WzRdKSYmZy5mdChiKSYmZy5ybSh2WzRdLGIpO3JldHVybiEhdi5sZW5ndGgmJnZbMF09PW4mJnZbMV09PVcmJnZbMl09PUQmJihrfHxoKX0pfTsKZy5JOT1mdW5jdGlvbihuLFcsRCxiPXt9KXtpZighbnx8IW4uYWRkRXZlbnRMaXN0ZW5lciYmIW4uYXR0YWNoRXZlbnQpcmV0dXJuIiI7dmFyIHY9azlpKG4sVyxELGIpO2lmKHYpcmV0dXJuIHY7dj0rK0hCLmNvdW50KyIiO3ZhciBrPSEoVyE9Im1vdXNlZW50ZXIiJiZXIT0ibW91c2VsZWF2ZSJ8fCFuLmFkZEV2ZW50TGlzdGVuZXJ8fCJvbm1vdXNlZW50ZXIiaW4gZG9jdW1lbnQpO3ZhciBoPWs/eD0+e3g9bmV3IGZ5KHgpO2lmKCFnLlJoKHgucmVsYXRlZFRhcmdldCxMPT5MPT1uLCEwKSlyZXR1cm4geC5jdXJyZW50VGFyZ2V0PW4seC50eXBlPVcsRC5jYWxsKG4seCl9Ong9Pnt4PW5ldyBmeSh4KTsKeC5jdXJyZW50VGFyZ2V0PW47cmV0dXJuIEQuY2FsbChuLHgpfTsKaD1QVihoKTtuLmFkZEV2ZW50TGlzdGVuZXI/KFc9PSJtb3VzZWVudGVyIiYmaz9XPSJtb3VzZW92ZXIiOlc9PSJtb3VzZWxlYXZlIiYmaz9XPSJtb3VzZW91dCI6Vz09Im1vdXNld2hlZWwiJiYiTW96Qm94U2l6aW5nImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSYmKFc9Ik1vek1vdXNlUGl4ZWxTY3JvbGwiKSxKTygpfHx0eXBlb2YgYj09PSJib29sZWFuIj9uLmFkZEV2ZW50TGlzdGVuZXIoVyxoLGIpOm4uYWRkRXZlbnRMaXN0ZW5lcihXLGgsISFiLmNhcHR1cmUpKTpuLmF0dGFjaEV2ZW50KGBvbiR7V31gLGgpO2cuWVJbdl09W24sVyxELGgsYl07cmV0dXJuIHZ9OwpnLlNfPWZ1bmN0aW9uKG4pe24mJih0eXBlb2Ygbj09InN0cmluZyImJihuPVtuXSksZy55MihuLFc9PntpZihXIGluIGcuWVIpe3ZhciBEPWcuWVJbV107bGV0IGI9RFswXSx2PURbMV0saz1EWzNdO0Q9RFs0XTtiLnJlbW92ZUV2ZW50TGlzdGVuZXI/Sk8oKXx8dHlwZW9mIEQ9PT0iYm9vbGVhbiI/Yi5yZW1vdmVFdmVudExpc3RlbmVyKHYsayxEKTpiLnJlbW92ZUV2ZW50TGlzdGVuZXIodixrLCEhRC5jYXB0dXJlKTpiLmRldGFjaEV2ZW50JiZiLmRldGFjaEV2ZW50KGBvbiR7dn1gLGspO2RlbGV0ZSBnLllSW1ddfX0pKX07CkFPPWZ1bmN0aW9uKG4pe249bnx8d2luZG93LmV2ZW50O3ZhciBXO24uY29tcG9zZWRQYXRoJiZ0eXBlb2Ygbi5jb21wb3NlZFBhdGg9PT0iZnVuY3Rpb24iP1c9bi5jb21wb3NlZFBhdGgoKTpXPW4ucGF0aDtXJiZXLmxlbmd0aD9uPVdbMF06KG49bnx8d2luZG93LmV2ZW50LG49bi50YXJnZXR8fG4uc3JjRWxlbWVudCxuLm5vZGVUeXBlPT0zJiYobj1uLnBhcmVudE5vZGUpKTtyZXR1cm4gbn07Cm1ZPWZ1bmN0aW9uKG4pe3RoaXMuSz1uO3RoaXMuTj1udWxsO3RoaXMuWD0wO3RoaXMuVj1udWxsO3RoaXMuaj0wO3RoaXMuSj1bXTtmb3Iobj0wO248NDtuKyspdGhpcy5KLnB1c2goMCk7dGhpcy5XPTA7dGhpcy5jSj1nLkk5KHdpbmRvdywibW91c2Vtb3ZlIiwoMCxnLkt0KSh0aGlzLkQsdGhpcykpO3RoaXMuWT1XMCgoMCxnLkt0KSh0aGlzLk8sdGhpcyksMjUpfTsKS3k9ZnVuY3Rpb24obixXLEQsYil7Zm9yKGxldCB2PTA7djxELmxlbmd0aDt2Kyspbi5OTihXLERbdl0sYil9OwpnLlBCPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1EJiZEPjA/RDowO0Q9Yj9EYXRlLm5vdygpK2IqMUUzOjA7aWYoKGI9Yj9PUC5CcCgpOk9QLnFiKCkpJiZ3aW5kb3cuSlNPTil7dHlwZW9mIFchPT0ic3RyaW5nIiYmKFc9SlNPTi5zdHJpbmdpZnkoVyx2b2lkIDApKTt0cnl7Yi5zZXQobixXLEQpfWNhdGNoKHYpe2IucmVtb3ZlKG4pfX19OwpnLlpJPWZ1bmN0aW9uKG4pe3ZhciBXPU9QLnFiKCksRD1PUC5CcCgpO2lmKCFXJiYhRHx8IXdpbmRvdy5KU09OKXJldHVybiBudWxsO3RyeXt2YXIgYj1XLmdldChuKX1jYXRjaCh2KXt9aWYodHlwZW9mIGIhPT0ic3RyaW5nIil0cnl7Yj1ELmdldChuKX1jYXRjaCh2KXt9aWYodHlwZW9mIGIhPT0ic3RyaW5nIilyZXR1cm4gbnVsbDt0cnl7Yj1KU09OLnBhcnNlKGIsdm9pZCAwKX1jYXRjaCh2KXt9cmV0dXJuIGJ9OwpVUD1mdW5jdGlvbigpe3ZhciBuPU9QLkJwKCk7aWYobiYmKG49bi5NRCgieXQtcGxheWVyLXF1YWxpdHkiKSkpcmV0dXJuIG4uY3JlYXRpb259Owp5eD1mdW5jdGlvbigpe2lmKCFnLnFpLm1hdGNoTWVkaWEpcmV0dXJuIldFQl9ESVNQTEFZX01PREVfVU5LTk9XTiI7dHJ5e3JldHVybiBnLnFpLm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IHN0YW5kYWxvbmUpIikubWF0Y2hlcz8iV0VCX0RJU1BMQVlfTU9ERV9TVEFOREFMT05FIjpnLnFpLm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IG1pbmltYWwtdWkpIikubWF0Y2hlcz8iV0VCX0RJU1BMQVlfTU9ERV9NSU5JTUFMX1VJIjpnLnFpLm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IGZ1bGxzY3JlZW4pIikubWF0Y2hlcz8iV0VCX0RJU1BMQVlfTU9ERV9GVUxMU0NSRUVOIjpnLnFpLm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IGJyb3dzZXIpIikubWF0Y2hlcz8iV0VCX0RJU1BMQVlfTU9ERV9CUk9XU0VSIjoiV0VCX0RJU1BMQVlfTU9ERV9VTktOT1dOIn1jYXRjaChuKXtyZXR1cm4iV0VCX0RJU1BMQVlfTU9ERV9VTktOT1dOIn19OwppTz1mdW5jdGlvbigpe0VQLmluc3RhbmNlfHwoRVAuaW5zdGFuY2U9bmV3IEVQKTtyZXR1cm4gRVAuaW5zdGFuY2V9OwpocWg9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgIkRFU0tUT1AiOnJldHVybiAxO2Nhc2UgIlVOS05PV05fUExBVEZPUk0iOnJldHVybiAwO2Nhc2UgIlRWIjpyZXR1cm4gMjtjYXNlICJHQU1FX0NPTlNPTEUiOnJldHVybiAzO2Nhc2UgIk1PQklMRSI6cmV0dXJuIDQ7Y2FzZSAiVEFCTEVUIjpyZXR1cm4gNX19OwpnLm85PWZ1bmN0aW9uKCl7dU98fCh1Tz1uZXcgeDNiKTtyZXR1cm4gdU99OwpkSj1mdW5jdGlvbihuKXtpZigvXmYoWzEtOV1bMC05XSopJC8udGVzdChuKSl0aHJvdyBFcnJvcihgRXhwZWN0ZWRSZWdleE1hdGNoOiAke259YCk7fTsKejE9ZnVuY3Rpb24obil7aWYoIS9eXHcrJC8udGVzdChuKSl0aHJvdyBFcnJvcihgRXhwZWN0ZWRSZWdleE1pc21hdGNoOiAke259YCk7fTsKVDE9ZnVuY3Rpb24obil7bj1sT1tuXSE9PXZvaWQgMD9sT1tuXS50b1N0cmluZygpOm51bGw7cmV0dXJuIG4hPW51bGwmJi9eW0EtRmEtZjAtOV0rJC8udGVzdChuKT9wYXJzZUludChuLDE2KTpudWxsfTsKal89ZnVuY3Rpb24oKXt2YXIgbj1nLnFpLm5hdmlnYXRvcjtyZXR1cm4gbj9uLmNvbm5lY3Rpb246dm9pZCAwfTsKQkI9ZnVuY3Rpb24oKXt2YXIgbj1qXygpO2lmKG4pe3ZhciBXPUN5W24udHlwZXx8InVua25vd24iXXx8IkNPTk5fVU5LTk9XTiI7bj1DeVtuLmVmZmVjdGl2ZVR5cGV8fCJ1bmtub3duIl18fCJDT05OX1VOS05PV04iO1c9PT0iQ09OTl9DRUxMVUxBUl9VTktOT1dOIiYmbiE9PSJDT05OX1VOS05PV04iJiYoVz1uKTtpZihXIT09IkNPTk5fVU5LTk9XTiIpcmV0dXJuIFc7aWYobiE9PSJDT05OX1VOS05PV04iKXJldHVybiBufX07CndKPWZ1bmN0aW9uKCl7dmFyIG49al8oKTtpZihuPy5lZmZlY3RpdmVUeXBlKXJldHVybiBGay5oYXNPd25Qcm9wZXJ0eShuLmVmZmVjdGl2ZVR5cGUpP0ZrW24uZWZmZWN0aXZlVHlwZV06IkVGRkVDVElWRV9DT05ORUNUSU9OX1RZUEVfVU5LTk9XTiJ9OwpSOT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTTAoKSwhMH1jYXRjaChuKXtyZXR1cm4hMX19OwpNMD1mdW5jdGlvbigpe2lmKGcuQXIoIkRBVEFTWU5DX0lEIikhPT12b2lkIDApcmV0dXJuIGcuQXIoIkRBVEFTWU5DX0lEIik7dGhyb3cgbmV3IGcuUXgoIkRhdGFzeW5jIElEIG5vdCBzZXQiLCJ1bmtub3duIik7fTsKZy5jQj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIGcuVngoMCxXLDAsRCl9OwphOT1mdW5jdGlvbihuKXt2YXIgVz1nLnJyKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UuYWRkSW1tZWRpYXRlSm9iIik7Vz9XKG4pOm4oKX07CmcuRHk9ZnVuY3Rpb24oKXtXTi5pbnN0YW5jZXx8KFdOLmluc3RhbmNlPW5ldyBXTik7cmV0dXJuIFdOLmluc3RhbmNlfTsKZy5WeD1mdW5jdGlvbihuLFcsRCxiKXtiIT09dm9pZCAwJiZOdW1iZXIuaXNOYU4oTnVtYmVyKGIpKSYmKGI9dm9pZCAwKTtyZXR1cm4obj1nLnJyKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UuYWRkSm9iIikpP24oVyxELGIpOmI9PT12b2lkIDA/KFcoKSxOYU4pOmcubiQoVyxifHwwKX07CmJRPWZ1bmN0aW9uKG4pe3ZhciBXPWcucnIoInl0LnNjaGVkdWxlci5pbnN0YW5jZS5zZXRQcmlvcml0eVRocmVzaG9sZCIpO1cmJlcobil9OwprdT1mdW5jdGlvbigpe3JldHVybiB2TigpPy5nZXQoIkxBU1RfUkVTVUxUX0VOVFJZX0tFWSIsITApfTsKTEY9ZnVuY3Rpb24obil7aGN8fCh4dS5wdXNoKHt0eXBlOiJFUlJPUiIscGF5bG9hZDpufSkseHUubGVuZ3RoPjEwJiZ4dS5zaGlmdCgpKX07CmVGPWZ1bmN0aW9uKG4sVyl7aGN8fCh4dS5wdXNoKHt0eXBlOiJFVkVOVCIsZXZlbnRUeXBlOm4scGF5bG9hZDpXfSkseHUubGVuZ3RoPjEwJiZ4dS5zaGlmdCgpKX07CmcwPWZ1bmN0aW9uKG4pe2lmKG4uaW5kZXhPZigiOiIpPj0wKXRocm93IEVycm9yKCJEYXRhYmFzZSBuYW1lIGNhbm5vdCBjb250YWluICc6JyIpO307ClhxPWZ1bmN0aW9uKG4pe3JldHVybiBuLnN1YnN0cigwLG4uaW5kZXhPZigiOiIpKXx8bn07CiR1PWZ1bmN0aW9uKG4sVyxELGIpe1c9WHEoVyk7dmFyIHY9biBpbnN0YW5jZW9mIEVycm9yP246RXJyb3IoYFVuZXhwZWN0ZWQgZXJyb3I6ICR7bn1gKTtpZih2IGluc3RhbmNlb2YgcUwpcmV0dXJuIHY7bj17b2JqZWN0U3RvcmVOYW1lczpELGRiTmFtZTpXLGRiVmVyc2lvbjpifTtpZih2Lm5hbWU9PT0iUXVvdGFFeGNlZWRlZEVycm9yIilyZXR1cm4gbmV3IHFMKCJRVU9UQV9FWENFRURFRCIsbik7aWYoZy5HbiYmdi5uYW1lPT09IlVua25vd25FcnJvciIpcmV0dXJuIG5ldyBxTCgiUVVPVEFfTUFZQkVfRVhDRUVERUQiLG4pO2lmKHYgaW5zdGFuY2VvZiB0YylyZXR1cm4gbmV3IHFMKCJNSVNTSU5HX0lOREVYIix7Li4ubixvYmplY3RTdG9yZTp2Lm9iamVjdFN0b3JlLGluZGV4OnYuaW5kZXh9KTtpZih2Lm5hbWU9PT0iSW52YWxpZFN0YXRlRXJyb3IiJiZMMGkuc29tZShrPT52Lm1lc3NhZ2UuaW5jbHVkZXMoaykpKXJldHVybiBuZXcgcUwoIkVYRUNVVEVfVFJBTlNBQ1RJT05fT05fQ0xPU0VEX0RCIiwKbik7CmlmKHYubmFtZT09PSJBYm9ydEVycm9yIilyZXR1cm4gbmV3IHFMKCJVTktOT1dOX0FCT1JUIixuLHYubWVzc2FnZSk7di5hcmdzPVt7Li4ubixuYW1lOiJJZGJFcnJvciIsYTc6di5uYW1lfV07di5sZXZlbD0iV0FSTklORyI7cmV0dXJuIHZ9OwpnLnIwPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1rdSgpO3JldHVybiBuZXcgcUwoIklEQl9OT1RfU1VQUE9SVEVEIix7Y29udGV4dDp7Y2FsbGVyOm4scHVibGljTmFtZTpXLHZlcnNpb246RCxoYXNTdWNjZWVkZWRPbmNlOmI/Lmhhc1N1Y2NlZWRlZE9uY2V9fSl9OwplcTE9ZnVuY3Rpb24obil7aWYoIW4pdGhyb3cgRXJyb3IoKTt0aHJvdyBuO307CmdVcj1mdW5jdGlvbihuKXtyZXR1cm4gbn07CnBGPWZ1bmN0aW9uKG4sVyxELGIsdil7dHJ5e2lmKG4uc3RhdGUuc3RhdHVzIT09IkZVTEZJTExFRCIpdGhyb3cgRXJyb3IoImNhbGxpbmcgaGFuZGxlUmVzb2x2ZSBiZWZvcmUgdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkLiIpO2xldCBrPUQobi5zdGF0ZS52YWx1ZSk7ayBpbnN0YW5jZW9mIHNSP05MKG4sVyxrLGIsdik6YihrKX1jYXRjaChrKXt2KGspfX07Cll1PWZ1bmN0aW9uKG4sVyxELGIsdil7dHJ5e2lmKG4uc3RhdGUuc3RhdHVzIT09IlJFSkVDVEVEIil0aHJvdyBFcnJvcigiY2FsbGluZyBoYW5kbGVSZWplY3QgYmVmb3JlIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLiIpO2xldCBrPUQobi5zdGF0ZS5yZWFzb24pO2sgaW5zdGFuY2VvZiBzUj9OTChuLFcsayxiLHYpOmIoayl9Y2F0Y2goayl7dihrKX19OwpOTD1mdW5jdGlvbihuLFcsRCxiLHYpe1c9PT1EP3YobmV3IFR5cGVFcnJvcigiQ2lyY3VsYXIgcHJvbWlzZSBjaGFpbiBkZXRlY3RlZC4iKSk6RC50aGVuKGs9PntrIGluc3RhbmNlb2Ygc1I/TkwobixXLGssYix2KTpiKGspfSxrPT57dihrKX0pfTsKSE49ZnVuY3Rpb24obixXLEQpe3ZhciBiPSgpPT57dHJ5e24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsdiksbi5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsayl9Y2F0Y2h7fX0sdj0oKT0+e1cobi5yZXN1bHQpOwpiKCl9LGs9KCk9PntEKG4uZXJyb3IpOwpiKCl9OwpuLmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLHYpO24uYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGspfTsKWDlVPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgUHJvbWlzZSgoVyxEKT0+e0hOKG4sVyxEKX0pfTsKSmM9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBzUihuZXcgZkYoKFcsRCk9PntITihuLFcsRCl9KSl9OwpJZz1mdW5jdGlvbihuLFcpe3JldHVybiBuZXcgc1IobmV3IGZGKChELGIpPT57dmFyIHY9KCk9Pnt2YXIgaz1uP1cobik6bnVsbDtrP2sudGhlbihoPT57bj1oO3YoKX0sYik6RCgpfTsKdigpfSkpfTsKU0Y9ZnVuY3Rpb24obil7cmV0dXJuIEpjKG4pLnRoZW4oVz0+Vz9uZXcgcV8yKG4sVyk6bnVsbCl9OwpBYz1mdW5jdGlvbigpe3JldHVybiBnLmwoImlkYl9pbW1lZGlhdGVfY29tbWl0Iil9OwpPUj1hc3luYyBmdW5jdGlvbihuLFcsRCxiKXt2YXIgdj17bW9kZToicmVhZG9ubHkiLEdROiExLHRhZzoiSURCX1RSQU5TQUNUSU9OX1RBR19VTktOT1dOIn07dHlwZW9mIEQ9PT0ic3RyaW5nIj92Lm1vZGU9RDpPYmplY3QuYXNzaWduKHYsRCk7bi50cmFuc2FjdGlvbkNvdW50Kys7RD12LkdRPzM6MTtmb3IodmFyIGs9MCxoOyFoOyl7aysrO2xldCBHPU1hdGgucm91bmQoKDAsZy5SKSgpKTt0cnl7dmFyIHg9bi5OLnRyYW5zYWN0aW9uKFcsdi5tb2RlKSxMPWIsZT0hIXYuY29tbWl0O2xldCByPW5ldyBtWCh4KSxOPWF3YWl0IEc5dyhyLEwsZSksSD1NYXRoLnJvdW5kKCgwLGcuUikoKSk7S0YobixHLEgsayx2b2lkIDAsVy5qb2luKCksdik7cmV0dXJuIE59Y2F0Y2gocil7TD1NYXRoLnJvdW5kKCgwLGcuUikoKSk7bGV0IE49JHUocixuLk4ubmFtZSxXLmpvaW4oKSxuLk4udmVyc2lvbik7aWYoTiBpbnN0YW5jZW9mIHFMJiYhTi5OfHxrPj1EKUtGKG4sRyxMLGssTixXLmpvaW4oKSwKdiksaD1OfX1yZXR1cm4gUHJvbWlzZS5yZWplY3QoaCl9OwpaeT1mdW5jdGlvbihuLFcsRCl7bj1uLk4uY3JlYXRlT2JqZWN0U3RvcmUoVyxEKTtyZXR1cm4gbmV3IFBOKG4pfTsKVVI9ZnVuY3Rpb24obixXKXtuLk4ub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyhXKSYmbi5OLmRlbGV0ZU9iamVjdFN0b3JlKFcpfTsKS0Y9ZnVuY3Rpb24obixXLEQsYix2LGssaCl7Vz1ELVc7dj8odiBpbnN0YW5jZW9mIHFMJiYodi50eXBlPT09IlFVT1RBX0VYQ0VFREVEInx8di50eXBlPT09IlFVT1RBX01BWUJFX0VYQ0VFREVEIikmJmVGKCJRVU9UQV9FWENFRURFRCIse2RiTmFtZTpYcShuLk4ubmFtZSksb2JqZWN0U3RvcmVOYW1lczprLHRyYW5zYWN0aW9uQ291bnQ6bi50cmFuc2FjdGlvbkNvdW50LHRyYW5zYWN0aW9uTW9kZTpoLm1vZGV9KSx2IGluc3RhbmNlb2YgcUwmJnYudHlwZT09PSJVTktOT1dOX0FCT1JUIiYmKEQtPW4uVyxEPDAmJkQ+PTIxNDc0ODM2NDgmJihEPTApLGVGKCJUUkFOU0FDVElPTl9VTkVYUEVDVEVETFlfQUJPUlRFRCIse29iamVjdFN0b3JlTmFtZXM6ayx0cmFuc2FjdGlvbkR1cmF0aW9uOlcsdHJhbnNhY3Rpb25Db3VudDpuLnRyYW5zYWN0aW9uQ291bnQsZGJEdXJhdGlvbjpEfSksbi5KPSEwKSx5YyhuLCExLGIsayxXLGgudGFnKSxMRih2KSk6eWMobiwhMCxiLGssVyxoLnRhZyl9Owp5Yz1mdW5jdGlvbihuLFcsRCxiLHYsaz0iSURCX1RSQU5TQUNUSU9OX1RBR19VTktOT1dOIil7ZUYoIlRSQU5TQUNUSU9OX0VOREVEIix7b2JqZWN0U3RvcmVOYW1lczpiLGNvbm5lY3Rpb25IYXNVbmtub3duQWJvcnRlZFRyYW5zYWN0aW9uOm4uSixkdXJhdGlvbjp2LGlzU3VjY2Vzc2Z1bDpXLHRyeUNvdW50OkQsdGFnOmt9KX07CkVSPWZ1bmN0aW9uKG4sVyxEKXtuLk4uY3JlYXRlSW5kZXgoVyxELHt1bmlxdWU6ITF9KX07CnVRPWZ1bmN0aW9uKG4sVyxEKXtuPW4uTi5vcGVuQ3Vyc29yKFcucXVlcnksVy5kaXJlY3Rpb24pO3JldHVybiBpUShuKS50aGVuKGI9PklnKGIsRCkpfTsKdFhVPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIHVRKG4se3F1ZXJ5Old9LEQ9PkQuZGVsZXRlKCkudGhlbigoKT0+b2coRCkpKS50aGVuKCgpPT57fSl9OwokM3g9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVtdO3JldHVybiB1UShuLHtxdWVyeTpXfSx2PT57aWYoIShEIT09dm9pZCAwJiZiLmxlbmd0aD49RCkpcmV0dXJuIGIucHVzaCh2LmdldFZhbHVlKCkpLG9nKHYpfSkudGhlbigoKT0+Yil9OwpzMHI9ZnVuY3Rpb24obil7dmFyIFc9W107cmV0dXJuIHJfaihuLEQ9PntXLnB1c2goRC5jdXJzb3IucHJpbWFyeUtleSk7RC5jdXJzb3IuY29udGludWUodm9pZCAwKTtyZXR1cm4gU0YoRC5yZXF1ZXN0KX0pLnRoZW4oKCk9PlcpfTsKZDA9ZnVuY3Rpb24obil7cmV0dXJuImdldEFsbEtleXMiaW4gSURCT2JqZWN0U3RvcmUucHJvdG90eXBlP0pjKG4uTi5nZXRBbGxLZXlzKHZvaWQgMCx2b2lkIDApKTpzMHIobil9OwpyX2o9ZnVuY3Rpb24obixXKXt2YXIgRD17cXVlcnk6dm9pZCAwfSxiPUQucXVlcnk7RD1ELmRpcmVjdGlvbjtuPSJvcGVuS2V5Q3Vyc29yImluIElEQk9iamVjdFN0b3JlLnByb3RvdHlwZT9uLk4ub3BlbktleUN1cnNvcihiLEQpOm4uTi5vcGVuQ3Vyc29yKGIsRCk7cmV0dXJuIFNGKG4pLnRoZW4odj0+SWcodixXKSl9OwpHOXc9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW5ldyBQcm9taXNlKCh2LGspPT57dHJ5e2xldCBoPVcobik7RCYmbi5jb21taXQoKTtoLnRoZW4oeD0+e3YoeCl9KS5jYXRjaChrKX1jYXRjaChoKXtrKGgpLG4uYWJvcnQoKX19KTsKcmV0dXJuIFByb21pc2UuYWxsKFtiLG4uZG9uZV0pLnRoZW4oKFt2XSk9PnYpfTsKem49ZnVuY3Rpb24obixXLEQpe3ZhciB7cXVlcnk6Yj1udWxsLGRpcmVjdGlvbjp2PSJuZXh0In09VztuPW4uTi5vcGVuQ3Vyc29yKGIsdik7cmV0dXJuIGlRKG4pLnRoZW4oaz0+SWcoayxEKSl9OwpOWmk9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVtdO3JldHVybiB6bihuLHtxdWVyeTpXfSx2PT57aWYoIShEIT09dm9pZCAwJiZiLmxlbmd0aD49RCkpcmV0dXJuIGIucHVzaCh2LmdldFZhbHVlKCkpLG9nKHYpfSkudGhlbigoKT0+Yil9OwppUT1mdW5jdGlvbihuKXtyZXR1cm4gSmMobikudGhlbihXPT5XP25ldyBwOXgobixXKTpudWxsKX07Cm9nPWZ1bmN0aW9uKG4pe24uY3Vyc29yLmNvbnRpbnVlKHZvaWQgMCk7cmV0dXJuIGlRKG4ucmVxdWVzdCl9OwpINXg9ZnVuY3Rpb24obixXLEQpe3JldHVybiBuZXcgUHJvbWlzZSgoYix2KT0+e3ZhciBrPVchPT12b2lkIDA/c2VsZi5pbmRleGVkREIub3BlbihuLFcpOnNlbGYuaW5kZXhlZERCLm9wZW4obik7dmFyIGg9RC5ibG9ja2VkLHg9RC5ibG9ja2luZyxMPUQuQnosZT1ELnVwZ3JhZGUsRz1ELmNsb3NlZCxyLE49KCk9PntyfHwocj1uZXcgWV9yKGsucmVzdWx0LHtjbG9zZWQ6R30pKTtyZXR1cm4gcn07CmsuYWRkRXZlbnRMaXN0ZW5lcigidXBncmFkZW5lZWRlZCIsSD0+e3RyeXtpZihILm5ld1ZlcnNpb249PT1udWxsKXRocm93IEVycm9yKCJJbnZhcmlhbnQ6IG5ld1ZlcnNpb24gb24gSURiVmVyc2lvbkNoYW5nZUV2ZW50IGlzIG51bGwiKTtpZihrLnRyYW5zYWN0aW9uPT09bnVsbCl0aHJvdyBFcnJvcigiSW52YXJpYW50OiB0cmFuc2FjdGlvbiBvbiBJRGJPcGVuRGJSZXF1ZXN0IGlzIG51bGwiKTtILmRhdGFMb3NzJiZILmRhdGFMb3NzIT09Im5vbmUiJiZlRigiSURCX0RBVEFfQ09SUlVQVEVEIix7cmVhc29uOkguZGF0YUxvc3NNZXNzYWdlfHwidW5rbm93biByZWFzb24iLGRiTmFtZTpYcShuKX0pO2xldCBBPU4oKSx5PW5ldyBtWChrLnRyYW5zYWN0aW9uKTtlJiZlKEEsVD0+SC5vbGRWZXJzaW9uPFQmJkgubmV3VmVyc2lvbj49VCx5KTsKeS5kb25lLmNhdGNoKFQ9Pnt2KFQpfSl9Y2F0Y2goQSl7dihBKX19KTsKay5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIiwoKT0+e3ZhciBIPWsucmVzdWx0O3gmJkguYWRkRXZlbnRMaXN0ZW5lcigidmVyc2lvbmNoYW5nZSIsKCk9Pnt4KE4oKSl9KTsKSC5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsKCk9PntlRigiSURCX1VORVhQRUNURURMWV9DTE9TRUQiLHtkYk5hbWU6WHEobiksZGJWZXJzaW9uOkgudmVyc2lvbn0pO0wmJkwoKX0pOwpiKE4oKSl9KTsKay5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9Pnt2KGsuZXJyb3IpfSk7CmgmJmsuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIsKCk9PntoKCl9KX0pfTsKbFE9ZnVuY3Rpb24obixXLEQ9e30pe3JldHVybiBINXgobixXLEQpfTsKVG49YXN5bmMgZnVuY3Rpb24obixXPXt9KXt0cnl7bGV0IEQ9c2VsZi5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UobiksYj1XLmJsb2NrZWQ7YiYmRC5hZGRFdmVudExpc3RlbmVyKCJibG9ja2VkIiwoKT0+e2IoKX0pOwphd2FpdCBYOVUoRCl9Y2F0Y2goRCl7dGhyb3cgJHUoRCxuLCIiLC0xKTt9fTsKakY9ZnVuY3Rpb24obixXKXtyZXR1cm4gbmV3IHFMKCJJTkNPTVBBVElCTEVfREJfVkVSU0lPTiIse2RiTmFtZTpuLm5hbWUsb2xkVmVyc2lvbjpuLm9wdGlvbnMudmVyc2lvbixuZXdWZXJzaW9uOld9KX07CkNGPWZ1bmN0aW9uKG4sVyl7aWYoIVcpdGhyb3cgZy5yMCgib3BlbldpdGhUb2tlbiIsWHEobi5uYW1lKSk7cmV0dXJuIG4ub3BlbigpfTsKRnE9YXN5bmMgZnVuY3Rpb24obixXKXtyZXR1cm4gT1IoYXdhaXQgQ0YoQk4sVyksWyJkYXRhYmFzZXMiXSx7R1E6ITAsbW9kZToicmVhZHdyaXRlIn0sRD0+e3ZhciBiPUQub2JqZWN0U3RvcmUoImRhdGFiYXNlcyIpO3JldHVybiBiLmdldChuLmFjdHVhbE5hbWUpLnRoZW4odj0+e2lmKHY/bi5hY3R1YWxOYW1lIT09di5hY3R1YWxOYW1lfHxuLnB1YmxpY05hbWUhPT12LnB1YmxpY05hbWV8fG4udXNlcklkZW50aWZpZXIhPT12LnVzZXJJZGVudGlmaWVyOjEpcmV0dXJuIGIucHV0KG4pLnRoZW4oKCk9Pnt9KX0pfSl9Owp3MD1hc3luYyBmdW5jdGlvbihuLFcpe3JldHVybiBuPyhhd2FpdCBDRihCTixXKSkuZGVsZXRlKCJkYXRhYmFzZXMiLG4pOnZvaWQgMH07CmZCVT1hc3luYyBmdW5jdGlvbihuLFcpe3ZhciBEPVtdO1c9YXdhaXQgQ0YoQk4sVyk7YXdhaXQgT1IoVyxbImRhdGFiYXNlcyJdLHtHUTohMCxtb2RlOiJyZWFkb25seSJ9LGI9PntELmxlbmd0aD0wO3JldHVybiB1UShiLm9iamVjdFN0b3JlKCJkYXRhYmFzZXMiKSx7fSx2PT57bih2LmdldFZhbHVlKCkpJiZELnB1c2godi5nZXRWYWx1ZSgpKTtyZXR1cm4gb2codil9KX0pOwpyZXR1cm4gRH07CkpfMj1mdW5jdGlvbihuLFcpe3JldHVybiBmQlUoRD0+RC5wdWJsaWNOYW1lPT09biYmRC51c2VySWRlbnRpZmllciE9PXZvaWQgMCxXKX07CklCaT1hc3luYyBmdW5jdGlvbigpe2lmKGt1KCk/Lmhhc1N1Y2NlZWRlZE9uY2UpcmV0dXJuITA7dmFyIG47aWYoIShuPWcuTUwmJkMkKCkmJiFCMCgpfHxnLlJnKSl7dHJ5e249c2VsZjt2YXIgVz0hIShuLmluZGV4ZWREQiYmbi5JREJJbmRleCYmbi5JREJLZXlSYW5nZSYmbi5JREJPYmplY3RTdG9yZSl9Y2F0Y2goRCl7Vz0hMX1uPSFXfWlmKG58fCEoIklEQlRyYW5zYWN0aW9uImluIHNlbGYmJiJvYmplY3RTdG9yZU5hbWVzImluIElEQlRyYW5zYWN0aW9uLnByb3RvdHlwZSkpcmV0dXJuITE7dHJ5e3JldHVybiBhd2FpdCBGcSh7YWN0dWFsTmFtZToieXQtaWRiLXRlc3QtZG8tbm90LXVzZSIscHVibGljTmFtZToieXQtaWRiLXRlc3QtZG8tbm90LXVzZSIsdXNlcklkZW50aWZpZXI6dm9pZCAwfSxRYyksYXdhaXQgdzAoInl0LWlkYi10ZXN0LWRvLW5vdC11c2UiLFFjKSwhMH1jYXRjaChEKXtyZXR1cm4hMX19OwpjTj1mdW5jdGlvbigpe2lmKFZjIT09dm9pZCAwKXJldHVybiBWYztoYz0hMDtyZXR1cm4gVmM9SUJpKCkudGhlbihuPT57aGM9ITE7aWYodk4oKT8uSigpKXt2YXIgVz17aGFzU3VjY2VlZGVkT25jZTprdSgpPy5oYXNTdWNjZWVkZWRPbmNlfHxufTt2TigpPy5zZXQoIkxBU1RfUkVTVUxUX0VOVFJZX0tFWSIsVywyNTkyRTMsITApfXJldHVybiBufSl9OwphZz1mdW5jdGlvbigpe3JldHVybiBnLnJyKCJ5dGdsb2JhbC5pZGJUb2tlbl8iKXx8dm9pZCAwfTsKZy5uUD1mdW5jdGlvbigpe3ZhciBuPWFnKCk7cmV0dXJuIG4/UHJvbWlzZS5yZXNvbHZlKG4pOmNOKCkudGhlbihXPT57Vz8oZy5HYigieXRnbG9iYWwuaWRiVG9rZW5fIixRYyksVz1RYyk6Vz12b2lkIDA7cmV0dXJuIFd9KX07Cld6PWZ1bmN0aW9uKG4pe2lmKCFSOSgpKXRocm93IG49bmV3IHFMKCJBVVRIX0lOVkFMSUQiLHtkYk5hbWU6bn0pLExGKG4pLG47dmFyIFc9TTAoKTtyZXR1cm57YWN0dWFsTmFtZTpgJHtufToke1d9YCxwdWJsaWNOYW1lOm4sdXNlcklkZW50aWZpZXI6V319OwpEbT1hc3luYyBmdW5jdGlvbihuLFcsRCxiKXt2YXIgdj1FcnJvcigpLnN0YWNrPz8iIixrPWF3YWl0IGcublAoKTtpZighayl0aHJvdyBXPWcucjAoIm9wZW5EYkltcGwiLG4sVyksZy5sKCJ5dGlkYl9hc3luY19zdGFja19raWxsc3dpdGNoIil8fChXLnN0YWNrPWAke1cuc3RhY2t9XG4ke3Yuc3Vic3RyaW5nKHYuaW5kZXhPZigiXG4iKSsxKX1gKSxMRihXKSxXO2cwKG4pO3Y9RD97YWN0dWFsTmFtZTpuLHB1YmxpY05hbWU6bix1c2VySWRlbnRpZmllcjp2b2lkIDB9Old6KG4pO3RyeXtyZXR1cm4gYXdhaXQgRnEodixrKSxhd2FpdCBsUSh2LmFjdHVhbE5hbWUsVyxiKX1jYXRjaChoKXt0cnl7YXdhaXQgdzAodi5hY3R1YWxOYW1lLGspfWNhdGNoe310aHJvdyBoO319OwpTX1o9ZnVuY3Rpb24obixXLEQ9e30pe3JldHVybiBEbShuLFcsITEsRCl9OwpBX3I9ZnVuY3Rpb24obixXLEQ9e30pe3JldHVybiBEbShuLFcsITAsRCl9OwptM3c9YXN5bmMgZnVuY3Rpb24obixXPXt9KXt2YXIgRD1hd2FpdCBnLm5QKCk7RCYmKGcwKG4pLG49V3oobiksYXdhaXQgVG4obi5hY3R1YWxOYW1lLFcpLGF3YWl0IHcwKG4uYWN0dWFsTmFtZSxEKSl9OwpLMHI9ZnVuY3Rpb24obixXLEQpe249bi5tYXAoYXN5bmMgYj0+e2F3YWl0IFRuKGIuYWN0dWFsTmFtZSxXKTthd2FpdCB3MChiLmFjdHVhbE5hbWUsRCl9KTsKcmV0dXJuIFByb21pc2UuYWxsKG4pLnRoZW4oKCk9Pnt9KX07CmI5PWFzeW5jIGZ1bmN0aW9uKG4pe3ZhciBXPXt9LEQ9YXdhaXQgZy5uUCgpO0QmJihnMChuKSxuPWF3YWl0IEpfMihuLEQpLGF3YWl0IEswcihuLFcsRCkpfTsKdno9YXN5bmMgZnVuY3Rpb24obixXPXt9KXt2YXIgRD1hd2FpdCBnLm5QKCk7RCYmKGcwKG4pLGF3YWl0IFRuKG4sVyksYXdhaXQgdzAobixEKSl9OwpQNE09ZnVuY3Rpb24obixXKXt2YXIgRDtyZXR1cm4oKT0+e0R8fChEPW5ldyBPNXQobixXKSk7cmV0dXJuIER9fTsKa089ZnVuY3Rpb24obixXKXtyZXR1cm4gUDRNKG4sVyl9OwpoNz1mdW5jdGlvbihuKXtyZXR1cm4gQ0YoWjVDKCksbil9Owp4Tz1hc3luYyBmdW5jdGlvbihuLFcsRCxiKXtuPXtjb25maWc6bixoYXNoRGF0YTpXLHRpbWVzdGFtcDpiIT09dm9pZCAwP2I6KDAsZy5SKSgpfTtEPWF3YWl0IGg3KEQpO2F3YWl0IEQuY2xlYXIoImhvdENvbmZpZ1N0b3JlIik7cmV0dXJuIGF3YWl0IEQucHV0KCJob3RDb25maWdTdG9yZSIsbil9OwpMUD1hc3luYyBmdW5jdGlvbihuLFcsRCxiLHYpe249e2NvbmZpZzpuLGhhc2hEYXRhOlcsY29uZmlnRGF0YTpELHRpbWVzdGFtcDp2IT09dm9pZCAwP3Y6KDAsZy5SKSgpfTtiPWF3YWl0IGg3KGIpO2F3YWl0IGIuY2xlYXIoImNvbGRDb25maWdTdG9yZSIpO3JldHVybiBhd2FpdCBiLnB1dCgiY29sZENvbmZpZ1N0b3JlIixuKX07CmU5PWFzeW5jIGZ1bmN0aW9uKG4pe249YXdhaXQgaDcobik7dmFyIFc9dm9pZCAwO2F3YWl0IE9SKG4sWyJjb2xkQ29uZmlnU3RvcmUiXSx7bW9kZToicmVhZHdyaXRlIixHUTohMH0sRD0+em4oRC5vYmplY3RTdG9yZSgiY29sZENvbmZpZ1N0b3JlIikuaW5kZXgoImNvbGRUaW1lc3RhbXBJbmRleCIpLHtkaXJlY3Rpb246InByZXYifSxiPT57Vz1iLmdldFZhbHVlKCl9KSk7CnJldHVybiBXfTsKZzM9YXN5bmMgZnVuY3Rpb24obil7bj1hd2FpdCBoNyhuKTt2YXIgVz12b2lkIDA7YXdhaXQgT1IobixbImhvdENvbmZpZ1N0b3JlIl0se21vZGU6InJlYWR3cml0ZSIsR1E6ITB9LEQ9PnpuKEQub2JqZWN0U3RvcmUoImhvdENvbmZpZ1N0b3JlIikuaW5kZXgoImhvdFRpbWVzdGFtcEluZGV4Iikse2RpcmVjdGlvbjoicHJldiJ9LGI9PntXPWIuZ2V0VmFsdWUoKX0pKTsKcmV0dXJuIFd9OwpVM3Q9YXN5bmMgZnVuY3Rpb24oKXthd2FpdCBiOSgieXRHY2ZDb25maWciKX07CnFCPWZ1bmN0aW9uKCl7aWYoIWcuWDMuaW5zdGFuY2Upe2xldCBuPW5ldyBnLlgzO2cuWDMuaW5zdGFuY2U9bn1yZXR1cm4gZy5YMy5pbnN0YW5jZX07Cmk1aD1mdW5jdGlvbihuKXtpZighbi5KfHwhbi5OKXtpZighYWcoKSl7bGV0IFc9Zy5yMCgic2NoZWR1bGVHZXRDb25maWdzIik7WkUoVyl9bi5YfHwobi5YPXRhLkxTKGFzeW5jKCk9Pnt0cnl7YXdhaXQgeV9yKG4pfWNhdGNoe310cnl7YXdhaXQgRVVTKG4pfWNhdGNoe31uLlgmJihuLlg9MCl9LDEwMCkpfX07CnVEeD1hc3luYyBmdW5jdGlvbihuKXtpZihnLmwoInN0YXJ0X2NsaWVudF9nY2YiKXx8Zy5sKCJkZWxldGVfZ2NmX2NvbmZpZ19kYiIpKWcubCgic3RhcnRfY2xpZW50X2djZiIpJiYoYXdhaXQgZy5uUCgpJiZSOSgpJiYhZy5sKCJkZWxldGVfZ2NmX2NvbmZpZ19kYiIpPyhuLlY9ITAsaTVoKG4pKTooR28obiksdDcobikpKSxnLmwoImRlbGV0ZV9nY2ZfY29uZmlnX2RiIikmJmF3YWl0IFUzdCgpfTsKJE89ZnVuY3Rpb24oKXtyZXR1cm4gZy5ycigieXQuZ2NmLmNvbmZpZy5ob3RDb25maWdHcm91cCIpfTsKdmFyIG9Vaj1mdW5jdGlvbihuLFcpe3JldHVybiBlWFtJWzEwXV0odGhpcywxMCw3MTI2LG4sVyl9OwpyMz1mdW5jdGlvbihuLFcpe24uSj1XO2cuR2IoInl0LmdjZi5jb25maWcuaG90Q29uZmlnR3JvdXAiLG4uSnx8bnVsbCl9Owp0Nz1mdW5jdGlvbihuKXtyMyhuLGcuQXIoIlJBV19IT1RfQ09ORklHX0dST1VQIikpO24uVyhnLkFyKCJTRVJJQUxJWkVEX0hPVF9IQVNIX0RBVEEiKSl9Owp5X3I9YXN5bmMgZnVuY3Rpb24obil7aWYobi5KKXJldHVybiAkTygpO2lmKCFuLlYpcmV0dXJuIG49Zy5yMCgiZ2V0SG90Q29uZmlnIElEQiBub3QgaW5pdGlhbGl6ZWQiKSxaRShuKSxQcm9taXNlLnJlamVjdChuKTt2YXIgVz1hZygpLEQ9Zy5BcigiVElNRV9DUkVBVEVEX01TIik7aWYoVyl7dmFyIGI9YXdhaXQgZzMoVyk7aWYoYiYmYi50aW1lc3RhbXA+RClyZXR1cm4gcjMobixiLmNvbmZpZyksbi5XKGIuaGFzaERhdGEpLCRPKCl9ZWxzZSBiPWcucjAoImdldEhvdENvbmZpZyB0b2tlbiBlcnJvciIpLFpFKGIpO3Q3KG4pO1cmJm4uSiYmbi5ob3RIYXNoRGF0YSYmYXdhaXQgeE8obi5KLG4uaG90SGFzaERhdGEsVyxEKTtyZXR1cm4gbi5KPyRPKCk6KG49bmV3IGcuUXgoIkNvbmZpZyBub3QgYXZhaWxhYmxlIGluIHl0Q29uZmlnIiksWkUobiksUHJvbWlzZS5yZWplY3QobikpfTsKc0o9ZnVuY3Rpb24oKXtyZXR1cm4gZy5ycigieXQuZ2NmLmNvbmZpZy5jb2xkQ29uZmlnR3JvdXAiKX07Ck5CPWZ1bmN0aW9uKG4sVyl7bi5OPVc7Zy5HYigieXQuZ2NmLmNvbmZpZy5jb2xkQ29uZmlnR3JvdXAiLG4uTnx8bnVsbCl9OwpwUD1mdW5jdGlvbihuLFcpe24uY29uZmlnRGF0YT1XO2cuR2IoInl0LmdjZi5jb25maWcuY29sZENvbmZpZ0RhdGEiLG4uY29uZmlnRGF0YXx8bnVsbCl9OwpZTz1mdW5jdGlvbihuLFcpe24uY29sZEhhc2hEYXRhPVc7Zy5HYigieXQuZ2NmLmNvbmZpZy5jb2xkSGFzaERhdGEiLG4uY29sZEhhc2hEYXRhfHxudWxsKX07CkdvPWZ1bmN0aW9uKG4pe05CKG4sZy5BcigiUkFXX0NPTERfQ09ORklHX0dST1VQIikpO1lPKG4sZy5BcigiU0VSSUFMSVpFRF9DT0xEX0hBU0hfREFUQSIpKTtwUChuLG4uTj8uY29uZmlnRGF0YSl9OwpFVVM9YXN5bmMgZnVuY3Rpb24obil7aWYobi5OKXJldHVybiBzSigpO2lmKCFuLlYpcmV0dXJuIG49Zy5yMCgiZ2V0Q29sZENvbmZpZyBJREIgbm90IGluaXRpYWxpemVkIiksWkUobiksUHJvbWlzZS5yZWplY3Qobik7dmFyIFc9YWcoKSxEPWcuQXIoIlRJTUVfQ1JFQVRFRF9NUyIpO2lmKFcpe3ZhciBiPWF3YWl0IGU5KFcpO2lmKGImJmIudGltZXN0YW1wPkQpcmV0dXJuIE5CKG4sYi5jb25maWcpLHBQKG4sYi5jb25maWdEYXRhKSxZTyhuLGIuaGFzaERhdGEpLHNKKCl9ZWxzZSBiPWcucjAoImdldENvbGRDb25maWciKSxaRShiKTtHbyhuKTtXJiZuLk4mJm4uY29sZEhhc2hEYXRhJiZuLmNvbmZpZ0RhdGEmJmF3YWl0IExQKG4uTixuLmNvbGRIYXNoRGF0YSxuLmNvbmZpZ0RhdGEsVyxEKTtyZXR1cm4gbi5OP3NKKCk6KG49bmV3IGcuUXgoIkNvbmZpZyBub3QgYXZhaWxhYmxlIGluIHl0Q29uZmlnIiksWkUobiksUHJvbWlzZS5yZWplY3QobikpfTsKSHo9YXN5bmMgZnVuY3Rpb24obixXLEQpe2lmKGcubCgic3RhcnRfY2xpZW50X2djZiIpKXtEJiZyMyhuLEQpO24uVyhXKTtsZXQgYj1hZygpO2ImJihEfHwoRD0oYXdhaXQgZzMoYikpPy5jb25maWcpLGF3YWl0IHhPKEQsVyxiKSk7aWYoRCl7bj1uLks7Zm9yKGxldCB2IG9mIG4uTil2KEQpfX19OwpmUD1hc3luYyBmdW5jdGlvbihuLFcsRCl7Zy5sKCJzdGFydF9jbGllbnRfZ2NmIikmJihZTyhuLFcpLG49YWcoKSkmJihEfHwoRD0oYXdhaXQgZTkobikpPy5jb25maWcpLEQmJmF3YWl0IExQKEQsVyxELmNvbmZpZ0RhdGEsbikpfTsKSjc9ZnVuY3Rpb24oKXt2YXIgbj1xQigpLFc9KDAsZy5SKSgpLW4uajtpZighKG4uaiE9PTAmJlc8djAoInNlbmRfY29uZmlnX2hhc2hfdGltZXIiKSkpe1c9Zy5ycigieXQuZ2NmLmNvbmZpZy5jb2xkQ29uZmlnRGF0YSIpO3ZhciBEPWcucnIoInl0LmdjZi5jb25maWcuaG90SGFzaERhdGEiKSxiPWcucnIoInl0LmdjZi5jb25maWcuY29sZEhhc2hEYXRhIik7VyYmRCYmYiYmKG4uaj0oMCxnLlIpKCkpO3JldHVybntjb2xkQ29uZmlnRGF0YTpXLGhvdEhhc2hEYXRhOkQsY29sZEhhc2hEYXRhOmJ9fX07Ckk3PWZ1bmN0aW9uKCl7cmV0dXJuIklOTkVSVFVCRV9BUElfS0VZImluIElFJiYiSU5ORVJUVUJFX0FQSV9WRVJTSU9OImluIElFfTsKZy5TOT1mdW5jdGlvbigpe3JldHVybntpbm5lcnR1YmVBcGlLZXk6Zy5BcigiSU5ORVJUVUJFX0FQSV9LRVkiKSxpbm5lcnR1YmVBcGlWZXJzaW9uOmcuQXIoIklOTkVSVFVCRV9BUElfVkVSU0lPTiIpLGNSOmcuQXIoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9DT05GSUdfSU5GTyIpLEcwOmcuQXIoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9OQU1FIiwiV0VCIiksRmQ6Zy5BcigiSU5ORVJUVUJFX0NPTlRFWFRfQ0xJRU5UX05BTUUiLDEpLGlubmVydHViZUNvbnRleHRDbGllbnRWZXJzaW9uOmcuQXIoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9WRVJTSU9OIiksTWI6Zy5BcigiSU5ORVJUVUJFX0NPTlRFWFRfSEwiKSxFRTpnLkFyKCJJTk5FUlRVQkVfQ09OVEVYVF9HTCIpLHY2OmcuQXIoIklOTkVSVFVCRV9IT1NUX09WRVJSSURFIil8fCIiLE9zOiEhZy5BcigiSU5ORVJUVUJFX1VTRV9USElSRF9QQVJUWV9BVVRIIiwhMSksT0Q6ISFnLkFyKCJJTk5FUlRVQkVfT01JVF9BUElfS0VZX1dIRU5fQVVUSF9IRUFERVJfSVNfUFJFU0VOVCIsCiExKSxhcHBJbnN0YWxsRGF0YTpnLkFyKCJTRVJJQUxJWkVEX0NMSUVOVF9DT05GSUdfREFUQSIpfX07CmcuVUo9ZnVuY3Rpb24obil7dmFyIFc9e2NsaWVudDp7aGw6bi5NYixnbDpuLkVFLGNsaWVudE5hbWU6bi5HMCxjbGllbnRWZXJzaW9uOm4uaW5uZXJ0dWJlQ29udGV4dENsaWVudFZlcnNpb24sY29uZmlnSW5mbzpuLmNSfX07bmF2aWdhdG9yLnVzZXJBZ2VudCYmKFcuY2xpZW50LnVzZXJBZ2VudD1TdHJpbmcobmF2aWdhdG9yLnVzZXJBZ2VudCkpO3ZhciBEPWcucWkuZGV2aWNlUGl4ZWxSYXRpbztEJiZEIT0xJiYoVy5jbGllbnQuc2NyZWVuRGVuc2l0eUZsb2F0PVN0cmluZyhEKSk7RD1rVCgpO0QhPT0iIiYmKFcuY2xpZW50LmV4cGVyaW1lbnRzVG9rZW49RCk7RD1oeSgpO0QubGVuZ3RoPjAmJihXLnJlcXVlc3Q9e2ludGVybmFsRXhwZXJpbWVudEZsYWdzOkR9KTtBNyhuLHZvaWQgMCxXKTttVCh2b2lkIDAsVyk7S1Aodm9pZCAwLFcpO09KKG4sdm9pZCAwLFcpO1B6KHZvaWQgMCxXKTtnLmwoInN0YXJ0X2NsaWVudF9nY2YiKSYmWm0odm9pZCAwLFcpO2cuQXIoIkRFTEVHQVRFRF9TRVNTSU9OX0lEIikmJgohZy5sKCJwYWdlaWRfYXNfaGVhZGVyX3dlYiIpJiYoVy51c2VyPXtvbkJlaGFsZk9mVXNlcjpnLkFyKCJERUxFR0FURURfU0VTU0lPTl9JRCIpfSk7IWcubCgiZmlsbF9kZWxlZ2F0ZV9jb250ZXh0X2luX2dlbF9raWxsc3dpdGNoIikmJihuPWcuQXIoIklOTkVSVFVCRV9DT05URVhUX1NFUklBTElaRURfREVMRUdBVElPTl9DT05URVhUIikpJiYoVy51c2VyPXsuLi5XLnVzZXIsc2VyaWFsaXplZERlbGVnYXRpb25Db250ZXh0Om59KTtuPWcuQXIoIklOTkVSVFVCRV9DT05URVhUIik7Zy5sKCJlbmFibGVfcGVyc2lzdGVudF9kZXZpY2VfdG9rZW4iKSYmbj8uY2xpZW50Py5yb2xsb3V0VG9rZW4mJihXLmNsaWVudC5yb2xsb3V0VG9rZW49bj8uY2xpZW50Py5yb2xsb3V0VG9rZW4pO249T2JqZWN0O0Q9bi5hc3NpZ247dmFyIGI9Vy5jbGllbnQsdj1nLkFyKCJERVZJQ0UiLCIiKSxrPXt9O2ZvcihsZXQgW2gseF1vZiBPYmplY3QuZW50cmllcyhnLml3KHYpKSl2PWgsdj09PSJjYnJhbmQiPwprLmRldmljZU1ha2U9eDp2PT09ImNtb2RlbCI/ay5kZXZpY2VNb2RlbD14OnY9PT0iY2JyIj9rLmJyb3dzZXJOYW1lPXg6dj09PSJjYnJ2ZXIiP2suYnJvd3NlclZlcnNpb249eDp2PT09ImNvcyI/ay5vc05hbWU9eDp2PT09ImNvc3ZlciI/ay5vc1ZlcnNpb249eDp2PT09ImNwbGF0Zm9ybSImJihrLnBsYXRmb3JtPXgpO1cuY2xpZW50PUQuY2FsbChuLGIsayk7Zy5sKCJ3ZWJfYXR0ZW50aW9uX2xvZ2dpbmdfZW5hYmxlZCIpJiYoVy5jbGllbnQud2luZG93V2lkdGhQb2ludHM9d2luZG93LmlubmVyV2lkdGgsVy5jbGllbnQud2luZG93SGVpZ2h0UG9pbnRzPXdpbmRvdy5pbm5lckhlaWdodCk7cmV0dXJuIFd9OwpBNz1mdW5jdGlvbihuLFcsRCl7bj1uLkcwO2lmKG49PT0iV0VCInx8bj09PSJNV0VCInx8bj09PTF8fG49PT0yKVc/KEQ9Z2UoVyx5ZCw5Nil8fG5ldyB5ZCxuPXl4KCksbj1PYmplY3Qua2V5cyhkM2opLmluZGV4T2Yobiksbj1uPT09LTE/bnVsbDpuLG4hPT1udWxsJiZLbihELDMsbiksJDkoVyx5ZCw5NixEKSk6RCYmKEQuY2xpZW50Lm1haW5BcHBXZWJJbmZvPUQuY2xpZW50Lm1haW5BcHBXZWJJbmZvPz97fSxELmNsaWVudC5tYWluQXBwV2ViSW5mby53ZWJEaXNwbGF5TW9kZT15eCgpKX07Cm1UPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Zy5ycigieXQuZW1iZWRkZWRfcGxheWVyLmVtYmVkX3VybCIpO0QmJihuPyhXPWdlKG4sRUosNyl8fG5ldyBFSixnLlNFKFcsNCxEKSwkOShuLEVKLDcsVykpOlcmJihXLnRoaXJkUGFydHk9e2VtYmVkVXJsOkR9KSl9OwpLUD1mdW5jdGlvbihuLFcpe2lmKGcubCgid2ViX2xvZ19tZW1vcnlfdG90YWxfa2J5dGVzIikmJmcucWkubmF2aWdhdG9yPy5kZXZpY2VNZW1vcnkpe2xldCBEPWcucWkubmF2aWdhdG9yPy5kZXZpY2VNZW1vcnk7bj9veihuLDk1LGcubDQoRCoxRTYpKTpXJiYoVy5jbGllbnQubWVtb3J5VG90YWxLYnl0ZXM9YCR7RCoxRTZ9YCl9fTsKT0o9ZnVuY3Rpb24obixXLEQpe24uYXBwSW5zdGFsbERhdGEmJihXPyhEPWdlKFcsaTksNjIpPz9uZXcgaTksZy5TRShELDYsbi5hcHBJbnN0YWxsRGF0YSksJDkoVyxpOSw2MixEKSk6RCYmKEQuY2xpZW50LmNvbmZpZ0luZm89RC5jbGllbnQuY29uZmlnSW5mb3x8e30sRC5jbGllbnQuY29uZmlnSW5mby5hcHBJbnN0YWxsRGF0YT1uLmFwcEluc3RhbGxEYXRhKSl9OwpQej1mdW5jdGlvbihuLFcpe3ZhciBEPUJCKCk7RCYmKG4/S24obiw2MSx6cXdbRF0pOlcmJihXLmNsaWVudC5jb25uZWN0aW9uVHlwZT1EKSk7Zy5sKCJ3ZWJfbG9nX2VmZmVjdGl2ZV9jb25uZWN0aW9uX3R5cGUiKSYmKEQ9d0ooKSkmJihuP0tuKG4sOTQsbEJyW0RdKTpXJiYoVy5jbGllbnQuZWZmZWN0aXZlQ29ubmVjdGlvblR5cGU9RCkpfTsKVFpqPWZ1bmN0aW9uKG4sVyxEPXt9KXt2YXIgYj17fTtnLkFyKCJFT01fVklTSVRPUl9EQVRBIik/Yj17IlgtR29vZy1FT00tVmlzaXRvci1JZCI6Zy5BcigiRU9NX1ZJU0lUT1JfREFUQSIpfTpiPXsiWC1Hb29nLVZpc2l0b3ItSWQiOkQudmlzaXRvckRhdGF8fGcuQXIoIlZJU0lUT1JfREFUQSIsIiIpfTtpZihXJiZXLmluY2x1ZGVzKCJ3d3cueW91dHViZS1ub2Nvb2tpZS5jb20iKSlyZXR1cm4gYjtXPUQuUDF8fGcuQXIoIkFVVEhPUklaQVRJT04iKTtXfHwobj9XPWBCZWFyZXIgJHtnLnJyKCJnYXBpLmF1dGguZ2V0VG9rZW4iKSgpLmFjY2Vzc190b2tlbn1gOihuPWlPKCkuYWoodTkpLGcubCgicGFnZWlkX2FzX2hlYWRlcl93ZWIiKXx8ZGVsZXRlIG5bIlgtR29vZy1QYWdlSWQiXSxiPXsuLi5iLC4uLm59KSk7VyYmKGIuQXV0aG9yaXphdGlvbj1XKTtyZXR1cm4gYn07ClptPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9SjcoKTtpZihEKXt2YXIgYj1ELmNvbGRDb25maWdEYXRhLHY9RC5jb2xkSGFzaERhdGE7RD1ELmhvdEhhc2hEYXRhO24/KFc9Z2UobixpOSw2Mik/P25ldyBpOSxiPWcuU0UoVywxLGIpLGcuU0UoYiwzLHYpLlcoRCksJDkobixpOSw2MixXKSk6VyYmKFcuY2xpZW50LmNvbmZpZ0luZm89Vy5jbGllbnQuY29uZmlnSW5mb3x8e30sYiYmKFcuY2xpZW50LmNvbmZpZ0luZm8uY29sZENvbmZpZ0RhdGE9YiksdiYmKFcuY2xpZW50LmNvbmZpZ0luZm8uY29sZEhhc2hEYXRhPXYpLEQmJihXLmNsaWVudC5jb25maWdJbmZvLmhvdEhhc2hEYXRhPUQpKX19OwpvNz1mdW5jdGlvbihuKXt0aGlzLnZlcnNpb249MTt0aGlzLmFyZ3M9bn07CmQzPWZ1bmN0aW9uKG4sVyl7dGhpcy50b3BpYz1uO3RoaXMuTj1XfTsKbDk9ZnVuY3Rpb24obixXKXt2YXIgRD16bygpO0QmJkQucHVibGlzaC5jYWxsKEQsbi50b1N0cmluZygpLG4sVyl9OwpqMHg9ZnVuY3Rpb24obil7dmFyIFc9VG8sRD16bygpO2lmKCFEKXJldHVybiAwO3ZhciBiPUQuc3Vic2NyaWJlKFcudG9TdHJpbmcoKSwodixrKT0+e3ZhciBoPWcucnIoInl0UHVic3ViMlB1YnN1YjJTa2lwU3ViS2V5Iik7aCYmaD09Ynx8KGg9KCk9PntpZihqOVtiXSl0cnl7aWYoayYmVyBpbnN0YW5jZW9mIGQzJiZXIT12KXRyeXt7dmFyIHg9Vy5OLEw9aztpZighTC5hcmdzfHwhTC52ZXJzaW9uKXRocm93IEVycm9yKCJ5dC5wdWJzdWIyLkRhdGEuZGVzZXJpYWxpemUoKTogc2VyaWFsaXplZERhdGEgaXMgaW5jb21wbGV0ZS4iKTtsZXQgZTt0cnl7aWYoIXguQ2Ipe2xldCBHPW5ldyB4O3guQ2I9Ry52ZXJzaW9ufWU9eC5DYn1jYXRjaChHKXt9aWYoIWV8fEwudmVyc2lvbiE9ZSl0aHJvdyBFcnJvcigieXQucHVic3ViMi5EYXRhLmRlc2VyaWFsaXplKCk6IHNlcmlhbGl6ZWREYXRhIHZlcnNpb24gaXMgaW5jb21wYXRpYmxlLiIpO3RyeXtrPVJlZmxlY3QuY29uc3RydWN0KHgsZy5STShMLmFyZ3MpKX1jYXRjaChHKXt0aHJvdyBHLm1lc3NhZ2U9CiJ5dC5wdWJzdWIyLkRhdGEuZGVzZXJpYWxpemUoKTogIitHLm1lc3NhZ2UsRzt9fX1jYXRjaChlKXt0aHJvdyBlLm1lc3NhZ2U9Inl0LnB1YnN1YjIucHVic3ViMiBjcm9zcy1iaW5hcnkgY29udmVyc2lvbiBlcnJvciBmb3IgIitXLnRvU3RyaW5nKCkrIjogIitlLm1lc3NhZ2UsZTt9bi5jYWxsKHdpbmRvdyxrKX1jYXRjaChlKXtPdChlKX19LENQW1cudG9TdHJpbmcoKV0/Zy5ycigieXQuc2NoZWR1bGVyLmluc3RhbmNlIik/dGEuTFMoaCk6Zy5uJChoLDApOmgoKSl9KTsKajlbYl09ITA7QnpbVy50b1N0cmluZygpXXx8KEJ6W1cudG9TdHJpbmcoKV09W10pO0J6W1cudG9TdHJpbmcoKV0ucHVzaChiKTtyZXR1cm4gYn07CkYwTT1mdW5jdGlvbigpe3ZhciBuPUM0dyxXPWoweChmdW5jdGlvbihEKXtuLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpO0JaaChXKX0pOwpyZXR1cm4gV307CkJaaD1mdW5jdGlvbihuKXt2YXIgVz16bygpO1cmJih0eXBlb2Ygbj09PSJudW1iZXIiJiYobj1bbl0pLGcueTIobixEPT57Vy51bnN1YnNjcmliZUJ5S2V5KEQpO2RlbGV0ZSBqOVtEXX0pKX07CnpvPWZ1bmN0aW9uKCl7cmV0dXJuIGcucnIoInl0UHVic3ViMlB1YnN1YjJJbnN0YW5jZSIpfTsKRjM9ZnVuY3Rpb24obixXLEQ9e3NhbXBsZVJhdGU6LjF9KXtNYXRoLnJhbmRvbSgpPE1hdGgubWluKC4wMixELnNhbXBsZVJhdGUvMTAwKSYmbDkoIm1ldGFfbG9nZ2luZ19jc2lfZXZlbnQiLHt0aW1lck5hbWU6bix0aW1lbGluZURhdGE6V30pfTsKVmQ9ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9e3N0YXJ0VGltZTooMCxnLlIpKCksdGlja3M6e30saW5mb3M6e319O3RyeXtsZXQgaD13MyhXKTtpZihoPT1udWxsfHwhKGg+TUJ8fGg8UjcpKXt2YXIgaz1YJChRZChXKSk7bGV0IHg9KDAsZy5SKSgpO3YudGlja3MuZ2VsYz14O3c5aisrO2cubCgiZ2VsX2NvbXByZXNzaW9uX2NzaV9raWxsc3dpdGNoIil8fCFnLmwoImxvZ19nZWxfY29tcHJlc3Npb25fbGF0ZW5jeSIpJiYhZy5sKCJsb2dfZ2VsX2NvbXByZXNzaW9uX2xhdGVuY3lfbHIiKXx8RjMoImdlbF9jb21wcmVzc2lvbiIsdix7c2FtcGxlUmF0ZTouMX0pO0QuaGVhZGVyc3x8KEQuaGVhZGVycz17fSk7RC5oZWFkZXJzWyJDb250ZW50LUVuY29kaW5nIl09Imd6aXAiO0QucG9zdEJvZHk9aztELnBvc3RQYXJhbXM9dm9pZCAwfWIobixEKX1jYXRjaChoKXtaRShoKSxiKG4sRCl9fTsKTVhTPWZ1bmN0aW9uKG4peygwLGcuUikoKTtpZighbi5ib2R5KXJldHVybiBuO3RyeXtsZXQgVz10eXBlb2Ygbi5ib2R5PT09InN0cmluZyI/bi5ib2R5OkpTT04uc3RyaW5naWZ5KG4uYm9keSksRD1XO2lmKHR5cGVvZiBXPT09InN0cmluZyIpe2xldCBiPXczKFcpO2lmKGIhPW51bGwmJihiPk1CfHxiPFI3KSlyZXR1cm4gbjtEPVgkKFFkKFcpKTsoMCxnLlIpKCl9bi5oZWFkZXJzPXsiQ29udGVudC1FbmNvZGluZyI6Imd6aXAiLC4uLihuLmhlYWRlcnN8fHt9KX07bi5ib2R5PUQ7cmV0dXJuIG59Y2F0Y2goVyl7cmV0dXJuIFpFKFcpLG59fTsKdzM9ZnVuY3Rpb24obil7dHJ5e3JldHVybihuZXcgQmxvYihuLnNwbGl0KCIiKSkpLnNpemV9Y2F0Y2goVyl7cmV0dXJuIFpFKFcpLG51bGx9fTsKY3o9ZnVuY3Rpb24obil7cmV0dXJuISFuLllXfHxuLld2fTsKbm09ZnVuY3Rpb24obil7Y3oobikmJiFuLk5oJiYobi5OPSEwLG4uQ3ImJk1hdGgucmFuZG9tKCk8PW4uS3ImJm4uZ0UudGkobi5ZVyksYTcobiksbi55Ry5XRygpJiZuLlcoKSxuLnlHLlNfKG4udVosbi5XLmJpbmQobikpLG4ueUcuU18obi5OQSxuLlguYmluZChuKSkpfTsKYTc9ZnVuY3Rpb24obil7aWYoIWN6KG4pKXRocm93IEVycm9yKCJJbmRleGVkREIgaXMgbm90IHN1cHBvcnRlZDogcmV0cnlRdWV1ZWRSZXF1ZXN0cyIpO24uZ0UuaTQoIlFVRVVFRCIsbi5ZVykudGhlbihXPT57VyYmIVdVKG4sVyxuLlo0KT9uLkEkLkxTKGFzeW5jKCk9PntXLmlkIT09dm9pZCAwJiZhd2FpdCBuLmdFLmhZKFcuaWQsbi5ZVyk7YTcobil9KTpuLnlHLldHKCkmJm4uVygpfSl9OwpENT1hc3luYyBmdW5jdGlvbihuLFcpe2lmKCFjeihuKSl0aHJvdyBFcnJvcigiSW5kZXhlZERCIGlzIG5vdCBzdXBwb3J0ZWQ6IGltbWVkaWF0ZVNlbmQiKTtXLmlkIT09dm9pZCAwJiYoYXdhaXQgbi5nRS5LNihXLmlkLG4uWVcpfHxuLkYyKEVycm9yKCJUaGUgcmVxdWVzdCBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIGRhdGFiYXNlLiIpKSk7V1UobixXLG4uR3kpPyhXLnNraXBSZXRyeXx8KFc9UnEyKG4sVykpLFcmJihXLnNraXBSZXRyeSYmVy5pZCE9PXZvaWQgMCYmYXdhaXQgbi5nRS5UTShXLmlkLG4uWVcpLG4uTG0oVy51cmwsVy5vcHRpb25zLCEhVy5za2lwUmV0cnkpKSk6KG4uRjIoRXJyb3IoIk5ldHdvcmtsZXNzIExvZ2dpbmc6IFN0b3JlZCBsb2dzIHJlcXVlc3QgZXhwaXJlZCBhZ2UgbGltaXQiKSksVy5pZCE9PXZvaWQgMCYmYXdhaXQgbi5nRS5UTShXLmlkLG4uWVcpKX07CmJNPWZ1bmN0aW9uKG4sVyl7bi5oTCYmIW4ueUcuV0coKT9uLmhMKFcpOm4uaGFuZGxlRXJyb3IoVyl9OwpXVT1mdW5jdGlvbihuLFcsRCl7Vz1XLnRpbWVzdGFtcDtyZXR1cm4gbi5ub3coKS1XPj1EPyExOiEwfTsKUnEyPWZ1bmN0aW9uKG4sVyl7aWYoIWN6KG4pKXRocm93IEVycm9yKCJJbmRleGVkREIgaXMgbm90IHN1cHBvcnRlZDogdXBkYXRlUmVxdWVzdEhhbmRsZXJzIik7dmFyIEQ9Vy5vcHRpb25zLm9uRXJyb3I/Vy5vcHRpb25zLm9uRXJyb3I6KCk9Pnt9OwpXLm9wdGlvbnMub25FcnJvcj1hc3luYyh2LGspPT57dmFyIGg9UTBTKGspLHg9VlgyKGspO3gmJm4uRXEmJm4uRXEoIndlYl9lbmFibGVfZXJyb3JfMjA0IikmJm4uaGFuZGxlRXJyb3IoRXJyb3IoIlJlcXVlc3QgZmFpbGVkIGR1ZSB0byBjb21wcmVzc2lvbiIpLFcudXJsLGspO2lmKG4uRXEmJm4uRXEoIm53bF9jb25zaWRlcl9lcnJvcl9jb2RlIikmJmh8fG4uRXEmJiFuLkVxKCJud2xfY29uc2lkZXJfZXJyb3JfY29kZSIpJiZuLnBvdGVudGlhbEVzZkVycm9yQ291bnRlcjw9bi5IRilpZihuLnlHLmhKJiZhd2FpdCBuLnlHLmhKKCksIW4ueUcuV0coKSl7RCh2LGspO24uRXEmJm4uRXEoIm53bF9jb25zaWRlcl9lcnJvcl9jb2RlIikmJlc/LmlkIT09dm9pZCAwJiZhd2FpdCBuLmdFLmhZKFcuaWQsbi5ZVywhMSk7cmV0dXJufW4uRXEmJm4uRXEoIm53bF9jb25zaWRlcl9lcnJvcl9jb2RlIikmJiFoJiZuLnBvdGVudGlhbEVzZkVycm9yQ291bnRlcj5uLkhGfHwobi5wb3RlbnRpYWxFc2ZFcnJvckNvdW50ZXIrKywKVz8uaWQhPT12b2lkIDAmJihXLnNlbmRDb3VudDxuLkExPyhhd2FpdCBuLmdFLmhZKFcuaWQsbi5ZVywhMCx4PyExOnZvaWQgMCksbi5BJC5MUygoKT0+e24ueUcuV0coKSYmbi5XKCl9LG4uSVApKTphd2FpdCBuLmdFLlRNKFcuaWQsbi5ZVykpLEQodixrKSl9Owp2YXIgYj1XLm9wdGlvbnMub25TdWNjZXNzP1cub3B0aW9ucy5vblN1Y2Nlc3M6KCk9Pnt9OwpXLm9wdGlvbnMub25TdWNjZXNzPWFzeW5jKHYsayk9PntXPy5pZCE9PXZvaWQgMCYmYXdhaXQgbi5nRS5UTShXLmlkLG4uWVcpO24ueUcubGMmJm4uRXEmJm4uRXEoInZzc19uZXR3b3JrX2hpbnQiKSYmbi55Ry5sYyghMCk7Yih2LGspfTsKcmV0dXJuIFd9OwpRMFM9ZnVuY3Rpb24obil7cmV0dXJuKG49bj8uZXJyb3I/LmNvZGUpJiZuPj00MDAmJm48PTU5OT8hMTohMH07ClZYMj1mdW5jdGlvbihuKXtuPW4/LmVycm9yPy5jb2RlO3JldHVybiEobiE9PTQwMCYmbiE9PTQxNSl9OwpjX1o9ZnVuY3Rpb24oKXtpZih2VSlyZXR1cm4gdlUoKTt2VT1rTygiTG9nc0RhdGFiYXNlVjIiLHtLYzp7TG9nc1JlcXVlc3RzU3RvcmU6e3Z4OjJ9fSxzaGFyZWQ6ITEsdXBncmFkZShuLFcsRCl7VygyKSYmWnkobiwiTG9nc1JlcXVlc3RzU3RvcmUiLHtrZXlQYXRoOiJpZCIsYXV0b0luY3JlbWVudDohMH0pO1coMyk7Vyg1KSYmKEQ9RC5vYmplY3RTdG9yZSgiTG9nc1JlcXVlc3RzU3RvcmUiKSxELk4uaW5kZXhOYW1lcy5jb250YWlucygibmV3UmVxdWVzdCIpJiZELk4uZGVsZXRlSW5kZXgoIm5ld1JlcXVlc3QiKSxFUihELCJuZXdSZXF1ZXN0VjIiLFsic3RhdHVzIiwiaW50ZXJmYWNlIiwidGltZXN0YW1wIl0pKTtXKDcpJiZVUihuLCJzYXBpc2lkIik7Vyg5KSYmVVIobiwiU1dIZWFsdGhMb2ciKX0sdmVyc2lvbjo5fSk7cmV0dXJuIHZVKCl9OwprUT1mdW5jdGlvbihuKXtyZXR1cm4gQ0YoY19aKCksbil9OwphQlM9YXN5bmMgZnVuY3Rpb24obixXKXt2YXIgRD17c3RhcnRUaW1lOigwLGcuUikoKSxpbmZvczp7dHJhbnNhY3Rpb25UeXBlOiJZVF9JREJfVFJBTlNBQ1RJT05fVFlQRV9XUklURSJ9LHRpY2tzOnt9fTtXPWF3YWl0IGtRKFcpO249ey4uLm4sb3B0aW9uczpKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG4ub3B0aW9ucykpLGludGVyZmFjZTpnLkFyKCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsMCl9O249YXdhaXQgVy5wdXQoIkxvZ3NSZXF1ZXN0c1N0b3JlIixuKTtELnRpY2tzLnRjPSgwLGcuUikoKTtoSShEKTtyZXR1cm4gbn07Cm52Mj1hc3luYyBmdW5jdGlvbihuLFcpe3ZhciBEPXtzdGFydFRpbWU6KDAsZy5SKSgpLGluZm9zOnt0cmFuc2FjdGlvblR5cGU6IllUX0lEQl9UUkFOU0FDVElPTl9UWVBFX1JFQUQifSx0aWNrczp7fX07Vz1hd2FpdCBrUShXKTt2YXIgYj1nLkFyKCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsMCksdj1bbixiLDBdO2I9W24sYiwoMCxnLlIpKCldO3ZhciBrPUlEQktleVJhbmdlLmJvdW5kKHYsYiksaD0icHJldiI7Zy5sKCJ1c2VfZmlmb19mb3JfbmV0d29ya2xlc3MiKSYmKGg9Im5leHQiKTt2YXIgeD12b2lkIDA7dj1uPT09Ik5FVyI/InJlYWR3cml0ZSI6InJlYWRvbmx5IjtnLmwoInVzZV9yZWFkb25seV9mb3JfZ2V0X21vc3RfcmVjZW50X2J5X3N0YXR1c19raWxsc3dpdGNoIikmJih2PSJyZWFkd3JpdGUiKTthd2FpdCBPUihXLFsiTG9nc1JlcXVlc3RzU3RvcmUiXSx7bW9kZTp2LEdROiEwfSxMPT56bihMLm9iamVjdFN0b3JlKCJMb2dzUmVxdWVzdHNTdG9yZSIpLmluZGV4KCJuZXdSZXF1ZXN0VjIiKSwKe3F1ZXJ5OmssZGlyZWN0aW9uOmh9LGU9PntlLmdldFZhbHVlKCkmJih4PWUuZ2V0VmFsdWUoKSxuPT09Ik5FVyImJih4LnN0YXR1cz0iUVVFVUVEIixlLnVwZGF0ZSh4KSkpfSkpOwpELnRpY2tzLnRjPSgwLGcuUikoKTtoSShEKTtyZXR1cm4geH07CldfQz1hc3luYyBmdW5jdGlvbihuLFcpe3JldHVybiBPUihhd2FpdCBrUShXKSxbIkxvZ3NSZXF1ZXN0c1N0b3JlIl0se21vZGU6InJlYWR3cml0ZSIsR1E6ITB9LEQ9Pnt2YXIgYj1ELm9iamVjdFN0b3JlKCJMb2dzUmVxdWVzdHNTdG9yZSIpO3JldHVybiBiLmdldChuKS50aGVuKHY9PntpZih2KXJldHVybiB2LnN0YXR1cz0iUVVFVUVEIixiLnB1dCh2KS50aGVuKCgpPT52KX0pfSl9OwpERXg9YXN5bmMgZnVuY3Rpb24obixXLEQ9ITAsYil7cmV0dXJuIE9SKGF3YWl0IGtRKFcpLFsiTG9nc1JlcXVlc3RzU3RvcmUiXSx7bW9kZToicmVhZHdyaXRlIixHUTohMH0sdj0+e3ZhciBrPXYub2JqZWN0U3RvcmUoIkxvZ3NSZXF1ZXN0c1N0b3JlIik7cmV0dXJuIGsuZ2V0KG4pLnRoZW4oaD0+aD8oaC5zdGF0dXM9Ik5FVyIsRCYmKGguc2VuZENvdW50Kz0xKSxiIT09dm9pZCAwJiYoaC5vcHRpb25zLmNvbXByZXNzPWIpLGsucHV0KGgpLnRoZW4oKCk9PmgpKTpzUi5yZXNvbHZlKHZvaWQgMCkpfSl9OwpiR0M9YXN5bmMgZnVuY3Rpb24obixXKXtyZXR1cm4oYXdhaXQga1EoVykpLmRlbGV0ZSgiTG9nc1JlcXVlc3RzU3RvcmUiLG4pfTsKdnZpPWFzeW5jIGZ1bmN0aW9uKG4pe249YXdhaXQga1Eobik7dmFyIFc9KDAsZy5SKSgpLTI1OTJFNjthd2FpdCBPUihuLFsiTG9nc1JlcXVlc3RzU3RvcmUiXSx7bW9kZToicmVhZHdyaXRlIixHUTohMH0sRD0+dVEoRC5vYmplY3RTdG9yZSgiTG9nc1JlcXVlc3RzU3RvcmUiKSx7fSxiPT57aWYoYi5nZXRWYWx1ZSgpLnRpbWVzdGFtcDw9VylyZXR1cm4gYi5kZWxldGUoKS50aGVuKCgpPT5vZyhiKSl9KSl9Owpremk9YXN5bmMgZnVuY3Rpb24oKXthd2FpdCBiOSgiTG9nc0RhdGFiYXNlVjIiKX07CmhJPWZ1bmN0aW9uKG4pe2cubCgibndsX2NzaV9raWxsc3dpdGNoIil8fEYzKCJuZXR3b3JrbGVzc19wZXJmb3JtYW5jZSIsbix7c2FtcGxlUmF0ZToxfSl9Owp4UT1mdW5jdGlvbihuKXtyZXR1cm4gQ0YoaF94KCksbil9Owp4RXc9YXN5bmMgZnVuY3Rpb24obil7bj1hd2FpdCB4UShuKTt2YXIgVz0oMCxnLlIpKCktMjU5MkU2O2F3YWl0IE9SKG4sWyJTV0hlYWx0aExvZyJdLHttb2RlOiJyZWFkd3JpdGUiLEdROiEwfSxEPT51UShELm9iamVjdFN0b3JlKCJTV0hlYWx0aExvZyIpLHt9LGI9PntpZihiLmdldFZhbHVlKCkudGltZXN0YW1wPD1XKXJldHVybiBiLmRlbGV0ZSgpLnRoZW4oKCk9Pm9nKGIpKX0pKX07CkxfaT1hc3luYyBmdW5jdGlvbihuKXthd2FpdCAoYXdhaXQgeFEobikpLmNsZWFyKCJTV0hlYWx0aExvZyIpfTsKZy5nbz1mdW5jdGlvbihuLFcsRCxiLHY9IiIsaz0hMSxoPSExKXtpZihuKWlmKEQmJiFnLmQ4KCkpWkUobmV3IGcuUXgoIkxlZ2FjeSByZWZlcnJlci1zY3J1YmJlZCBwaW5nIGRldGVjdGVkIikpLG4mJkxtKG4sdm9pZCAwLHtzY3J1YlJlZmVycmVyOiEwfSk7ZWxzZSBpZih2KXhUKG4sVywiUE9TVCIsdixiKTtlbHNlIGlmKGcuQXIoIlVTRV9ORVRfQUpBWF9GT1JfUElOR19UUkFOU1BPUlQiLCExKXx8Ynx8aCl4VChuLFcsIkdFVCIsIiIsYix2b2lkIDAsayxoKTtlbHNle2I6e3RyeXtjOnt2YXIgeD1uZXcgZV93KHt1cmw6bn0pO2lmKHguTi5kc2g9PT0iMSIpdmFyIEw9bnVsbDtlbHNle3ZhciBlPXguTi5hZTtpZihlPT09IjEiKXtsZXQgcj14Lk4uYWR1cmw7aWYocil0cnl7TD17dmVyc2lvbjozLFViOmRlY29kZVVSSUNvbXBvbmVudChyKSxERzp1eCh4LkosImFjdD0xIiwicmk9MSIseGlNKHgpKX07YnJlYWsgY31jYXRjaChOKXt9fUw9ZT09PSIyIj97dmVyc2lvbjo0LFViOnV4KHguSiwKImRjdD0xIiwic3VpZD0iK3guVywicmk9MSIpLERHOnV4KHguSiwiYWN0PTEiLCJyaT0xIiwic3VpZD0iK3guVyl9Om51bGx9fWlmKEwpe2xldCByPVMxKG4pO3ZhciBHPSEoIXJ8fCFyLmVuZHNXaXRoKCIvYWNsayIpfHxnLmxmKG4sInJpIikhPT0iMSIpO2JyZWFrIGJ9fWNhdGNoKHIpe31HPSExfUc/ZXcobik/KFcmJlcoKSxEPSEwKTpEPSExOkQ9ITE7RHx8TG0obixXKX19Owpndnc9ZnVuY3Rpb24obixXPSIiKXtldyhuLFcpfHxnLmdvKG4sdm9pZCAwLHZvaWQgMCx2b2lkIDAsVyl9Owpldz1mdW5jdGlvbihuLFc9IiIpe3RyeXtpZih3aW5kb3cubmF2aWdhdG9yJiZ3aW5kb3cubmF2aWdhdG9yLnNlbmRCZWFjb24mJndpbmRvdy5uYXZpZ2F0b3Iuc2VuZEJlYWNvbihuLFcpKXJldHVybiEwfWNhdGNoKEQpe31yZXR1cm4hMX07CkxtPWZ1bmN0aW9uKG4sVyxEPXt9KXt2YXIgYj1uZXcgSW1hZ2Usdj0iIitYSHcrKztYaVt2XT1iO2Iub25sb2FkPWIub25lcnJvcj0oKT0+e1cmJlhpW3ZdJiZXKCk7ZGVsZXRlIFhpW3ZdfTsKRC5zY3J1YlJlZmVycmVyJiYoYi5yZWZlcnJlclBvbGljeT0ibm8tcmVmZXJyZXIiKTtiLnNyYz1ufTsKZy5xYj1mdW5jdGlvbihuKXtyZXR1cm4gZG9jdW1lbnQuZmVhdHVyZVBvbGljeT8uYWxsb3dlZEZlYXR1cmVzKCkuaW5jbHVkZXMoImF0dHJpYnV0aW9uLXJlcG9ydGluZyIpP24rIiZuaXM9NiI6bisiJm5pcz01In07CiRRPWZ1bmN0aW9uKCl7R1R8fChHVD1uZXcgdEkoInl0Lm9mZmxpbmUiKSk7cmV0dXJuIEdUfTsKcUt3PWZ1bmN0aW9uKG4pe2lmKGcubCgib2ZmbGluZV9lcnJvcl9oYW5kbGluZyIpKXt2YXIgVz0kUSgpLmdldCgiZXJyb3JzIiwhMCl8fHt9O1dbbi5tZXNzYWdlXT17bmFtZTpuLm5hbWUsc3RhY2s6bi5zdGFja307bi5sZXZlbCYmKFdbbi5tZXNzYWdlXS5sZXZlbD1uLmxldmVsKTskUSgpLnNldCgiZXJyb3JzIixXLDI1OTJFMywhMCl9fTsKc2M9ZnVuY3Rpb24oKXtpZighcm8uaW5zdGFuY2Upe2xldCBuPWcucnIoInl0Lm5ldHdvcmtSZXF1ZXN0TW9uaXRvci5pbnN0YW5jZSIpfHxuZXcgcm87Zy5HYigieXQubmV0d29ya1JlcXVlc3RNb25pdG9yLmluc3RhbmNlIixuKTtyby5pbnN0YW5jZT1ufXJldHVybiByby5pbnN0YW5jZX07CnBtPWZ1bmN0aW9uKCl7aWYoIU5iLmluc3RhbmNlKXtsZXQgbj1nLnJyKCJ5dC5uZXR3b3JrU3RhdHVzTWFuYWdlci5pbnN0YW5jZSIpfHxuZXcgTmI7Zy5HYigieXQubmV0d29ya1N0YXR1c01hbmFnZXIuaW5zdGFuY2UiLG4pO05iLmluc3RhbmNlPW59cmV0dXJuIE5iLmluc3RhbmNlfTsKWVE9ZnVuY3Rpb24obixXKXtuLnJhdGVMaW1pdD9uLk4/KHRhLnNPKG4uWCksbi5YPXRhLkxTKCgpPT57bi5XIT09VyYmKG4uZGlzcGF0Y2hFdmVudChXKSxuLlc9VyxuLk49KDAsZy5SKSgpKX0sbi5yYXRlTGltaXQtKCgwLGcuUikoKS1uLk4pKSk6KG4uZGlzcGF0Y2hFdmVudChXKSxuLlc9VyxuLk49KDAsZy5SKSgpKTpuLmRpc3BhdGNoRXZlbnQoVyl9OwpnLkhVPWZ1bmN0aW9uKCl7dmFyIG49Zy5ycigieXQubmV0d29ya2xlc3NSZXF1ZXN0Q29udHJvbGxlci5pbnN0YW5jZSIpO258fChuPW5ldyBHemgsZy5HYigieXQubmV0d29ya2xlc3NSZXF1ZXN0Q29udHJvbGxlci5pbnN0YW5jZSIsbiksZy5sKCJuZXR3b3JrbGVzc19sb2dnaW5nIikmJmcublAoKS50aGVuKFc9PntuLllXPVc7bm0obik7bi5qLnJlc29sdmUoKTtuLkNyJiZNYXRoLnJhbmRvbSgpPD1uLktyJiZuLllXJiZ4RXcobi5ZVyk7Zy5sKCJuZXR3b3JrbGVzc19pbW1lZGlhdGVseV9kcm9wX3N3X2hlYWx0aF9zdG9yZSIpJiZ0V3cobil9KSk7CnJldHVybiBufTsKdFd3PWFzeW5jIGZ1bmN0aW9uKG4pe2lmKCFuLllXKXRocm93IGcucjAoImNsZWFyU1dIZWFsdGhMb2dzRGIiKTtMX2kobi5ZVykuY2F0Y2goVz0+e24uaGFuZGxlRXJyb3IoVyl9KX07CiRFdD1mdW5jdGlvbihuLFcsRCl7Vz1nLmwoIndlYl9mcF92aWFfanNwYiIpP09iamVjdC5hc3NpZ24oe30sVyk6VztnLmwoInVzZV9yZXF1ZXN0X3RpbWVfbXNfaGVhZGVyIik/Vy5oZWFkZXJzJiZnLlRkKG4pJiYoVy5oZWFkZXJzWyJYLUdvb2ctUmVxdWVzdC1UaW1lIl09SlNPTi5zdHJpbmdpZnkoTWF0aC5yb3VuZCgoMCxnLlIpKCkpKSk6Vy5wb3N0UGFyYW1zPy5yZXF1ZXN0VGltZU1zJiYoVy5wb3N0UGFyYW1zLnJlcXVlc3RUaW1lTXM9TWF0aC5yb3VuZCgoMCxnLlIpKCkpKTtEJiZPYmplY3Qua2V5cyhXKS5sZW5ndGg9PT0wP2cuZ28obik6Vy5jb21wcmVzcz9XLnBvc3RCb2R5Pyh0eXBlb2YgVy5wb3N0Qm9keSE9PSJzdHJpbmciJiYoVy5wb3N0Qm9keT1KU09OLnN0cmluZ2lmeShXLnBvc3RCb2R5KSksVmQobixXLnBvc3RCb2R5LFcsZy5lZCkpOlZkKG4sSlNPTi5zdHJpbmdpZnkoVy5wb3N0UGFyYW1zKSxXLGc4KTpnLmVkKG4sVyl9OwpmbT1mdW5jdGlvbihuLFcpe2cubCgidXNlX2V2ZW50X3RpbWVfbXNfaGVhZGVyIikmJmcuVGQobikmJihXLmhlYWRlcnN8fChXLmhlYWRlcnM9e30pLFcuaGVhZGVyc1siWC1Hb29nLUV2ZW50LVRpbWUiXT1KU09OLnN0cmluZ2lmeShNYXRoLnJvdW5kKCgwLGcuUikoKSkpKTtyZXR1cm4gV307CmcuSUk9ZnVuY3Rpb24obixXLEQsYil7IWcuQXIoIlZJU0lUT1JfREFUQSIpJiZXIT09InZpc2l0b3JfaWQiJiZNYXRoLnJhbmRvbSgpPC4wMSYmWkUobmV3IGcuUXgoIk1pc3NpbmcgVklTSVRPUl9EQVRBIHdoZW4gc2VuZGluZyBpbm5lcnR1YmUgcmVxdWVzdC4iLFcsRCxiKSk7aWYoIW4uaXNSZWFkeSgpKXRocm93IG49bmV3IGcuUXgoImlubmVydHViZSB4aHJjbGllbnQgbm90IHJlYWR5IixXLEQsYiksT3Qobiksbjt2YXIgdj17aGVhZGVyczpiLmhlYWRlcnN8fHt9LG1ldGhvZDoiUE9TVCIscG9zdFBhcmFtczpELHBvc3RCb2R5OmIucG9zdEJvZHkscG9zdEJvZHlGb3JtYXQ6Yi5wb3N0Qm9keUZvcm1hdHx8IkpTT04iLG9uVGltZW91dDooKT0+e2Iub25UaW1lb3V0KCl9LApvbkZldGNoVGltZW91dDpiLm9uVGltZW91dCxvblN1Y2Nlc3M6KGUsRyk9PntpZihiLm9uU3VjY2VzcyliLm9uU3VjY2VzcyhHKX0sCm9uRmV0Y2hTdWNjZXNzOmU9PntpZihiLm9uU3VjY2VzcyliLm9uU3VjY2VzcyhlKX0sCm9uUHJvZ3Jlc3M6ZT0+e2lmKGIub25Qcm9ncmVzcyliLm9uUHJvZ3Jlc3MoZSl9LApvbkVycm9yOihlLEcpPT57aWYoYi5vbkVycm9yKWIub25FcnJvcihHKX0sCm9uRmV0Y2hFcnJvcjplPT57aWYoYi5vbkVycm9yKWIub25FcnJvcihlKX0sCnRpbWVvdXQ6Yi50aW1lb3V0LHdpdGhDcmVkZW50aWFsczohMCxjb21wcmVzczpiLmNvbXByZXNzfTt2LmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdfHwodi5oZWFkZXJzWyJDb250ZW50LVR5cGUiXT0iYXBwbGljYXRpb24vanNvbiIpO0Q9IiI7dmFyIGs9bi5jb25maWdfLnY2O2smJihEPWspO2s9bi5jb25maWdfLk9zfHwhMTt2YXIgaD1UWmooayxELGIpO09iamVjdC5hc3NpZ24odi5oZWFkZXJzLGgpO3YuaGVhZGVycy5BdXRob3JpemF0aW9uJiYhRCYmayYmKHYuaGVhZGVyc1sieC1vcmlnaW4iXT13aW5kb3cubG9jYXRpb24ub3JpZ2luKTt2YXIgeD1nLnpkKGAke0R9JHtgL3lvdXR1YmVpLyR7bi5jb25maWdfLmlubmVydHViZUFwaVZlcnNpb259LyR7V31gfWAse2FsdDoianNvbiJ9KSxMPShlPSExKT0+e3RyeXtpZihlJiZiLnJldHJ5JiYhYi5uZXR3b3JrbGVzc09wdGlvbnMuYnlwYXNzTmV0d29ya2xlc3Mpdi5tZXRob2Q9IlBPU1QiLGIubmV0d29ya2xlc3NPcHRpb25zLndyaXRlVGhlblNlbmQ/CmcuSFUoKS53cml0ZVRoZW5TZW5kKHgsdik6Zy5IVSgpLnNlbmRBbmRXcml0ZSh4LHYpO2Vsc2UgaWYoYi5jb21wcmVzcylpZih2LnBvc3RCb2R5KXtsZXQgRz12LnBvc3RCb2R5O3R5cGVvZiBHIT09InN0cmluZyImJihHPUpTT04uc3RyaW5naWZ5KHYucG9zdEJvZHkpKTtWZCh4LEcsdixnLmVkKX1lbHNlIFZkKHgsSlNPTi5zdHJpbmdpZnkodi5wb3N0UGFyYW1zKSx2LGc4KTtlbHNlIGc4KHgsdil9Y2F0Y2goRyl7aWYoRy5uYW1lPT09IkludmFsaWRBY2Nlc3NFcnJvciIpWkUoRXJyb3IoIkFuIGV4dGVuc2lvbiBpcyBibG9ja2luZyBuZXR3b3JrIHJlcXVlc3QuIikpO2Vsc2UgdGhyb3cgRzt9fTsKZy5ycigieXROZXR3b3JrbGVzc0xvZ2dpbmdJbml0aWFsaXphdGlvbk9wdGlvbnMiKSYmSkkuaXNOd2xJbml0aWFsaXplZD9jTigpLnRoZW4oZT0+e0woZSl9KTpMKCExKX07Ck9jPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1TdygpO2lmKGImJlcpe2xldCB2PWIuc3Vic2NyaWJlKG4sZnVuY3Rpb24oKXt2YXIgaz1hcmd1bWVudHMsaD0oKT0+e0FJW3ZdJiZXLmFwcGx5JiZ0eXBlb2YgVy5hcHBseT09ImZ1bmN0aW9uIiYmVy5hcHBseShEfHx3aW5kb3csayl9Owp0cnl7bWdbbl0/aCgpOmcubiQoaCwwKX1jYXRjaCh4KXtPdCh4KX19LEQpOwpBSVt2XT0hMDtLbVtuXXx8KEttW25dPVtdKTtLbVtuXS5wdXNoKHYpO3JldHVybiB2fXJldHVybiAwfTsKUFU9ZnVuY3Rpb24obil7dmFyIFc9U3coKTtXJiYodHlwZW9mIG49PT0ibnVtYmVyIj9uPVtuXTp0eXBlb2Ygbj09PSJzdHJpbmciJiYobj1bcGFyc2VJbnQobiwxMCldKSxnLnkyKG4sRD0+e1cudW5zdWJzY3JpYmVCeUtleShEKTtkZWxldGUgQUlbRF19KSl9OwpaNT1mdW5jdGlvbihuLFcpe3ZhciBEPVN3KCk7cmV0dXJuIEQ/RC5wdWJsaXNoLmFwcGx5KEQsYXJndW1lbnRzKTohMX07CnlKPWZ1bmN0aW9uKG4pe3ZhciBXPVN3KCk7aWYoVylpZihXLmNsZWFyKG4pLG4pVWMobik7ZWxzZSBmb3IobGV0IEQgaW4gS20pVWMoRCl9OwpFYz1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPVdebjtpZighKG4tNj4+Mykpe2VYKGteMjk5MCxrXjYwMjksRCk7dmFyIGg9RFtJW2teMjk4Nl1dKyhEW0lba14yOTg2XV0/SVtrXjMwNjBdOklba14zMDY3XSkrRFtJW2teMjk2N11dK0RbSVtrXjI5ODhdXTtpZihQMChrXjMwNDUsa140NjE4LEQpKXtsZXQgTD1bXTtnLmFfKERbSVsxXV0sKEcscik9PntHIT09bnVsbCYmTFtJW2teMjk4Ml1dKGAke3J9PSR7R31gKX0pOwpsZXQgZT1MW0lba14zMDA1XV0oSVtrXjI5NDVdKTtoKz1gPyR7ZX1gfXZhciB4PWh9KG4rMl43KTxuJiYobi01fDIzKT49biYmKGI9PT1JW2teNjU4OV0mJigoaD12W0lba142NTYzXV0oSVtrXjY1NDhdKSk+PTA/KGI9YGNtbz0ke3ZbSVtrXjY1NjZdXSgwLGgpfWAsdj12W0lba142NTY2XV0oaCsxKSk6KGg9dltJW2teNjU2M11dKElba142NTM1XSkpPj0wJiYoYj1gY21vPSR7dltJW2teNjU2Nl1dKDAsaCl9YCx2PXZbSVtrXjY1NjZdXShoKzMpKSksRFtiXT12KTtyZXR1cm4geH07ClN3PWZ1bmN0aW9uKCl7cmV0dXJuIGcucWkueXRQdWJzdWJQdWJzdWJJbnN0YW5jZX07ClVjPWZ1bmN0aW9uKG4pe0ttW25dJiYobj1LbVtuXSxnLnkyKG4sVz0+e0FJW1ddJiZkZWxldGUgQUlbV119KSxuLmxlbmd0aD0wKX07CmlNPWZ1bmN0aW9uKG4sVyxEPW51bGwpe3J2aChuLFcsRCl9Owpydmg9ZnVuY3Rpb24obixXLEQ9bnVsbCl7dmFyIGI9dU0odHlwZW9mIG49PT0ic3RyaW5nIj9uOm4udG9TdHJpbmcoKSksdj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiKSxrPXYmJmdKKHYpLGg9diYmIWs7az9XJiZXKCk6KFcmJihrPU9jKGIsVyksVz1gJHtBaShXKX1gLG9JW1ddPWspLGh8fCh2PXN6UyhuLGIsKCk9PntnSih2KXx8KGI1dCh2KSxaNShiKSxnLm4kKCgpPT57eUooYil9LDApKX0sRCkpKX07CnN6Uz1mdW5jdGlvbihuLFcsRCxiPW51bGwpe3ZhciB2PWcuekYoIlNDUklQVCIpO3YuaWQ9Vzt2Lm9ubG9hZD0oKT0+e0QmJnNldFRpbWVvdXQoRCwwKX07CnYub25yZWFkeXN0YXRlY2hhbmdlPSgpPT57c3dpdGNoKHYucmVhZHlTdGF0ZSl7Y2FzZSAibG9hZGVkIjpjYXNlICJjb21wbGV0ZSI6di5vbmxvYWQoKX19OwpiJiZ2LnNldEF0dHJpYnV0ZSgibm9uY2UiLGIpO2cuUE0odix0eXBlb2Ygbj09PSJzdHJpbmciP2Z3KG4pOm4pO249ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8ZG9jdW1lbnQuYm9keTtuLmluc2VydEJlZm9yZSh2LG4uZmlyc3RDaGlsZCk7cmV0dXJuIHZ9Owp1TT1mdW5jdGlvbihuKXt2YXIgVz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Zy5OVShXLG4pO249Vy5ocmVmLnJlcGxhY2UoL15bYS16QS1aXSs6XC9cLy8sIi8vIik7cmV0dXJuYGpzLSR7c1Qobil9YH07CnpUPWZ1bmN0aW9uKG4sVyl7aWYobj09PVcpbj0hMDtlbHNlIGlmKEFycmF5LmlzQXJyYXkobikmJkFycmF5LmlzQXJyYXkoVykpbj12NChuLFcselQpO2Vsc2UgaWYoZy5mdChuKSYmZy5mdChXKSlhOmlmKGcuTFQobikubGVuZ3RoIT1nLkxUKFcpLmxlbmd0aCluPSExO2Vsc2V7Zm9yKGxldCBEIGluIG4paWYoIXpUKG5bRF0sV1tEXSkpe249ITE7YnJlYWsgYX1uPSEwfWVsc2Ugbj0hMTtyZXR1cm4gbn07Cmp3PWZ1bmN0aW9uKG4sLi4uVyl7aWYoIWxNKG4pfHxXLnNvbWUoRD0+IWxNKEQpKSl0aHJvdyBFcnJvcigiT25seSBvYmplY3RzIG1heSBiZSBtZXJnZWQuIik7CmZvcihsZXQgRCBvZiBXKVRUKG4sRCl9OwpUVD1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRCBpbiBXKWlmKGxNKFdbRF0pKXtpZihEIGluIG4mJiFsTShuW0RdKSl0aHJvdyBFcnJvcigiQ2Fubm90IG1lcmdlIGFuIG9iamVjdCBpbnRvIGEgbm9uLW9iamVjdC4iKTtEIGluIG58fChuW0RdPXt9KTtUVChuW0RdLFdbRF0pfWVsc2UgaWYoQ20oV1tEXSkpe2lmKEQgaW4gbiYmIUNtKG5bRF0pKXRocm93IEVycm9yKCJDYW5ub3QgbWVyZ2UgYW4gYXJyYXkgaW50byBhIG5vbi1hcnJheS4iKTtEIGluIG58fChuW0RdPVtdKTtCVShuW0RdLFdbRF0pfWVsc2UgbltEXT1XW0RdO3JldHVybiBufTsKQlU9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgb2YgVylsTShEKT9uLnB1c2goVFQoe30sRCkpOkNtKEQpP24ucHVzaChCVShbXSxEKSk6bi5wdXNoKEQpO3JldHVybiBufTsKbE09ZnVuY3Rpb24obil7cmV0dXJuIHR5cGVvZiBuPT09Im9iamVjdCImJiFBcnJheS5pc0FycmF5KG4pfTsKQ209ZnVuY3Rpb24obil7cmV0dXJuIHR5cGVvZiBuPT09Im9iamVjdCImJkFycmF5LmlzQXJyYXkobil9OwpnLkZpPWZ1bmN0aW9uKG49ITEpe2cuRk0uY2FsbCh0aGlzKTt0aGlzLlkkPW5ldyBCSyhuKTtnLnUodGhpcyx0aGlzLlkkKX07Ck1iPWZ1bmN0aW9uKG4pe2lmKHdpbmRvdy5jcnlwdG8mJndpbmRvdy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKXRyeXt2YXIgVz1BcnJheShuKSxEPW5ldyBVaW50OEFycmF5KG4pO3dpbmRvdy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKEQpO2Zvcih2YXIgYj0wO2I8Vy5sZW5ndGg7YisrKVdbYl09RFtiXTtyZXR1cm4gV31jYXRjaCh2KXt9Vz1BcnJheShuKTtmb3IoRD0wO0Q8bjtEKyspe2I9RGF0ZS5ub3coKTtmb3IobGV0IHY9MDt2PGIlMjM7disrKVdbRF09TWF0aC5yYW5kb20oKTtXW0RdPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyNTYpfWlmKHdvKWZvcihEPTEsYj0wO2I8d28ubGVuZ3RoO2IrKylXW0Qlbl1ePVdbKEQtMSklbl0vNF53by5jaGFyQ29kZUF0KGIpLEQrKztyZXR1cm4gV307CmcuUkk9ZnVuY3Rpb24obil7bj1NYihuKTt2YXIgVz1bXTtmb3IobGV0IEQ9MDtEPG4ubGVuZ3RoO0QrKylXLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV8iLmNoYXJBdChuW0RdJjYzKSk7cmV0dXJuIFcuam9pbigiIil9OwpnLlFKPWZ1bmN0aW9uKCl7cmV0dXJuIGcuaV8oTWIoMTYpLG49PihuJjE1KS50b1N0cmluZygxNikpLmpvaW4oIiIpfTsKYUk9ZnVuY3Rpb24oKXsoe0NQOlc9ITEsTTY6bj0hMH09e30pO3ZhciBuLFc7aWYoZy5ycigiX2xhY3QiLHdpbmRvdyk9PW51bGwpe3ZhciBEPXBhcnNlSW50KGcuQXIoIkxBQ1QiKSwxMCk7RD1pc0Zpbml0ZShEKT9EYXRlLm5vdygpLU1hdGgubWF4KEQsMCk6LTE7Zy5HYigiX2xhY3QiLEQsd2luZG93KTtnLkdiKCJfZmFjdCIsRCx3aW5kb3cpO0Q9PS0xJiZWSigpO05ndyhXLG4pO25ldyBtWSgoKT0+e2NVKCJtb3VzZSIsMTAwKX0pfX07Cm5YPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bmV3IGcud1ooVyk7KFc9RC5nZXQoInJlcV9pZCIpKSYmbi5zZXQoInJlcV9pZCIsVyk7Zy5hXyhuLk4sKGIsdik9PntEWyJzZXQiXSh2LG51bGwpfSk7CnJldHVybiBEfTsKTmd3PWZ1bmN0aW9uKG49ITEsVz0hMCl7dmFyIEQ9d2luZG93O2cuSTkoRC5kb2N1bWVudCwia2V5ZG93biIsVkopO2cuSTkoRC5kb2N1bWVudCwia2V5dXAiLFZKKTtnLkk5KEQuZG9jdW1lbnQsIm1vdXNlZG93biIsVkopO2cuSTkoRC5kb2N1bWVudCwibW91c2V1cCIsVkopO24/Zy5JOShELCJ0b3VjaG1vdmUiLCgpPT57Y1UoInRvdWNobW92ZSIsMjAwKX0se3Bhc3NpdmU6ITB9KTooZy5JOShELCJyZXNpemUiLCgpPT57Y1UoInJlc2l6ZSIsMjAwKX0pLFcmJmcuSTkoRCwic2Nyb2xsIiwoKT0+e2NVKCJzY3JvbGwiLDIwMCl9KSk7CmcuSTkoRC5kb2N1bWVudCwidG91Y2hzdGFydCIsVkose3Bhc3NpdmU6ITB9KTtnLkk5KEQuZG9jdW1lbnQsInRvdWNoZW5kIixWSix7cGFzc2l2ZTohMH0pfTsKY1U9ZnVuY3Rpb24obixXKXtieVtuXXx8KGJ5W25dPSEwLHRhLkxTKCgpPT57VkooKTtieVtuXT0hMX0sVykpfTsKVko9ZnVuY3Rpb24oKXtnLnJyKCJfbGFjdCIsd2luZG93KT09bnVsbCYmKGFJKCksZy5ycigiX2xhY3QiLHdpbmRvdykpO3ZhciBuPURhdGUubm93KCk7Zy5HYigiX2xhY3QiLG4sd2luZG93KTtnLnJyKCJfZmFjdCIsd2luZG93KT09LTEmJmcuR2IoIl9mYWN0IixuLHdpbmRvdyk7KG49Zy5ycigieXRnbG9iYWwueXRVdGlsQWN0aXZpdHlDYWxsYmFja18iKSkmJm4oKX07Cmcudkk9ZnVuY3Rpb24oKXt2YXIgbj1nLnJyKCJfbGFjdCIsd2luZG93KTtyZXR1cm4gbj09bnVsbD8tMTpNYXRoLm1heChEYXRlLm5vdygpLW4sMCl9OwpnLmhwPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcga28obil9OwpnLnhvPWZ1bmN0aW9uKG4sVyl7bi5KLnNldChXLk5ILFcpO3ZhciBEPW4uVy5nZXQoVy5OSCk7aWYoRCl0cnl7RC5RNChuLnJlc29sdmUoVy5OSCkpfWNhdGNoKGIpe0QuSlkoYil9fTsKZ0U9ZnVuY3Rpb24obixXLEQsYj0hMSl7aWYoRC5pbmRleE9mKFcpPi0xKXRocm93IEVycm9yKGBEZXBzIGN5Y2xlIGZvcjogJHtXfWApO2lmKG4uTi5oYXMoVykpcmV0dXJuIG4uTi5nZXQoVyk7aWYoIW4uSi5oYXMoVykpe2lmKGIpcmV0dXJuO3Rocm93IEVycm9yKGBObyBwcm92aWRlciBmb3I6ICR7V31gKTt9Yj1uLkouZ2V0KFcpO0QucHVzaChXKTtpZihiLlBmIT09dm9pZCAwKXZhciB2PWIuUGY7ZWxzZSBpZihiLlJjKXY9YltnLkxYXT9lWihuLGJbZy5MWF0sRCk6W10sdj1iLlJjKC4uLnYpO2Vsc2UgaWYoYi5ZTCl7dj1iLllMO2xldCBrPXZbZy5MWF0/ZVoobix2W2cuTFhdLEQpOltdO3Y9bmV3IHYoLi4uayl9ZWxzZSB0aHJvdyBFcnJvcihgQ291bGQgbm90IHJlc29sdmUgcHJvdmlkZXJzIGZvcjogJHtXfWApO0QucG9wKCk7Yi5wbnx8bi5OLnNldChXLHYpO3JldHVybiB2fTsKZVo9ZnVuY3Rpb24obixXLEQpe3JldHVybiBXP1cubWFwKGI9PmIgaW5zdGFuY2VvZiBrbz9nRShuLGIua2V5LEQsITApOmdFKG4sYixEKSk6W119OwpnLnFqPWZ1bmN0aW9uKCl7WDR8fChYND1uZXcgcEhyKTtyZXR1cm4gWDR9Owp0cD1mdW5jdGlvbigpe3JldHVybiJoNXZjYyJpbiBHcCYmR3AuaDV2Y2MudHJhY2VFdmVudD8udHJhY2VCZWdpbiYmR3AuaDV2Y2MudHJhY2VFdmVudD8udHJhY2VFbmQ/MToicGVyZm9ybWFuY2UiaW4gR3AmJkdwLnBlcmZvcm1hbmNlLm1hcmsmJkdwLnBlcmZvcm1hbmNlLm1lYXN1cmU/MjowfTsKJG89ZnVuY3Rpb24obil7dmFyIFc9dHAoKTtzd2l0Y2goVyl7Y2FzZSAxOkdwLmg1dmNjLnRyYWNlRXZlbnQudHJhY2VCZWdpbigiWVRMUiIsbik7YnJlYWs7Y2FzZSAyOkdwLnBlcmZvcm1hbmNlLm1hcmsoYCR7bn0tc3RhcnRgKTticmVhaztjYXNlIDA6YnJlYWs7ZGVmYXVsdDpnLnBiKFcsInVua25vd24gdHJhY2UgdHlwZSIpfX07CnJFPWZ1bmN0aW9uKG4pe3ZhciBXPXRwKCk7c3dpdGNoKFcpe2Nhc2UgMTpHcC5oNXZjYy50cmFjZUV2ZW50LnRyYWNlRW5kKCJZVExSIixuKTticmVhaztjYXNlIDI6Vz1gJHtufS1zdGFydGA7bGV0IEQ9YCR7bn0tZW5kYDtHcC5wZXJmb3JtYW5jZS5tYXJrKEQpO0dwLnBlcmZvcm1hbmNlLm1lYXN1cmUobixXLEQpO2JyZWFrO2Nhc2UgMDpicmVhaztkZWZhdWx0OmcucGIoVywidW5rbm93biB0cmFjZSB0eXBlIil9fTsKWUtqPWZ1bmN0aW9uKG4pe3ZhciBXPUFycmF5LmZyb20obi5OLmtleXMoKSkuc29ydCgoRCxiKT0+KG4uTltiXS5wcmlvcml0eT8/MCktKG4uTltEXS5wcmlvcml0eT8/MCkpOwpmb3IobGV0IEQgb2YgVylXPW4uTltEXSxXLmpvYklkPT09dm9pZCAwfHxXLk1KfHwobi5zY2hlZHVsZXIuc08oVy5qb2JJZCksZy5WeCgwLFcuSmEsMTApKX07CmZSMj1mdW5jdGlvbihuLFcsRCl7SEd0JiZjb25zb2xlLmdyb3VwQ29sbGFwc2VkJiZjb25zb2xlLmdyb3VwRW5kJiYoY29uc29sZS5ncm91cENvbGxhcHNlZChgWyR7bi5jb25zdHJ1Y3Rvci5uYW1lfV0gJyR7bi5zdGF0ZX0nIHRvICcke1d9J2ApLGNvbnNvbGUubG9nKCJ3aXRoIG1lc3NhZ2U6ICIsRCksY29uc29sZS5ncm91cEVuZCgpKX07ClNLQz1mdW5jdGlvbihuLFcpe3ZhciBEPVcuZmlsdGVyKHY9PihuLko/P3YucHJpb3JpdHk/PzApPT09MTApLGI9Vy5maWx0ZXIodj0+KG4uSj8/di5wcmlvcml0eT8/MCkhPT0xMCk7CnJldHVybiBuLlguS0c/YXN5bmMoLi4udik9Pnthd2FpdCBKdlooRCwuLi52KTtzOShuLGIsLi4udil9OiguLi52KT0+e0lSMShELC4uLnYpOwpzOShuLGIsLi4udil9fTsKSnZaPWFzeW5jIGZ1bmN0aW9uKG4sLi4uVyl7Zy5EeSgpO2ZvcihsZXQgRCBvZiBuKXtsZXQgYjthOSgoKT0+e05qKEQubmFtZSk7dmFyIHY9cFgoKCk9PkQuY2FsbGJhY2soLi4uVykpOwpZbyh2KT9iPWcubCgid2ViX2xpZmVjeWNsZV9lcnJvcl9oYW5kbGluZ19raWxsc3dpdGNoIik/di50aGVuKCgpPT57SEkoRC5uYW1lKX0pOnYudGhlbigoKT0+e0hJKEQubmFtZSl9LGs9Pnt3aW5kb3cub25lcnJvcj8uKGsubWVzc2FnZSwiIiwwLDAsayk7CkhJKEQubmFtZSl9KTpISShELm5hbWUpfSk7CmImJmF3YWl0IGJ9fTsKczk9ZnVuY3Rpb24obixXLC4uLkQpe1c9Vy5tYXAoYj0+KHtKYTooKT0+e05qKGIubmFtZSk7cFgoKCk9PmIuY2FsbGJhY2soLi4uRCkpOwpISShiLm5hbWUpfSwKcHJpb3JpdHk6bi5KPz9iLnByaW9yaXR5Pz8wfSkpOwpXLmxlbmd0aCYmKG4uVz1uZXcgQXZqKFcpKX07CklSMT1mdW5jdGlvbihuLC4uLlcpe2cuRHkoKTtmb3IobGV0IEQgb2YgbilhOSgoKT0+e05qKEQubmFtZSk7cFgoKCk9PkQuY2FsbGJhY2soLi4uVykpOwpISShELm5hbWUpfSl9OwpOaj1mdW5jdGlvbihuKXtmWCYmbiYmJG8obil9OwpIST1mdW5jdGlvbihuKXtmWCYmbiYmckUobil9OwpwWD1mdW5jdGlvbihuKXtpZihnLmwoIndlYl9saWZlY3ljbGVfZXJyb3JfaGFuZGxpbmdfa2lsbHN3aXRjaCIpKXJldHVybiBuKCk7dHJ5e3JldHVybiBuKCl9Y2F0Y2goVyl7d2luZG93Lm9uZXJyb3I/LihXLm1lc3NhZ2UsIiIsMCwwLFcpfX07CkliPWZ1bmN0aW9uKCl7SnB8fChKcD1uZXcgbUV3KTtyZXR1cm4gSnB9OwpBcD1mdW5jdGlvbigpe1NafHwoU1o9cHcoZy5BcigiV09SS0VSX1NFUklBTElaQVRJT05fVVJMIikpKTtyZXR1cm4gU1p8fHZvaWQgMH07CktYPWZ1bmN0aW9uKCl7dmFyIG49QXAoKTttM3x8bj09PXZvaWQgMHx8KG0zPVhNKG4pKTtyZXR1cm4gbTN9OwpaQT1mdW5jdGlvbihuLFcpe3ZhciBEPU85KFcpO2lmKG4uTltEXSlyZXR1cm4gbi5OW0RdO3ZhciBiPU9iamVjdC5rZXlzKG4uc3RvcmUpfHxbXTtpZihiLmxlbmd0aDw9MSYmTzkoVyk9PT1iWzBdKXJldHVybiBiO3ZhciB2PVtdO2ZvcihsZXQgaD0wO2g8Yi5sZW5ndGg7aCsrKXtsZXQgeD1iW2hdLnNwbGl0KCIvIik7aWYoUEkoVy5hdXRoLHhbMF0pKXt2YXIgaz1XLmlzSnNwYjtQSShrPT09dm9pZCAwPyJ1bmRlZmluZWQiOms/InRydWUiOiJmYWxzZSIseFsxXSkmJlBJKFcuY3R0QXV0aEluZm8seFsyXSkmJihrPVcudGllcixrPWs9PT12b2lkIDA/InVuZGVmaW5lZCI6SlNPTi5zdHJpbmdpZnkoayksUEkoayx4WzNdKSYmdi5wdXNoKGJbaF0pKX19cmV0dXJuIG4uTltEXT12fTsKUEk9ZnVuY3Rpb24obixXKXtyZXR1cm4gbj09PXZvaWQgMHx8bj09PSJ1bmRlZmluZWQiPyEwOm49PT1XfTsKTzk9ZnVuY3Rpb24obil7cmV0dXJuW24uYXV0aD09PXZvaWQgMD8idW5kZWZpbmVkIjpuLmF1dGgsbi5pc0pzcGI9PT12b2lkIDA/InVuZGVmaW5lZCI6bi5pc0pzcGIsbi5jdHRBdXRoSW5mbz09PXZvaWQgMD8idW5kZWZpbmVkIjpuLmN0dEF1dGhJbmZvLG4udGllcj09PXZvaWQgMD8idW5kZWZpbmVkIjpuLnRpZXJdLmpvaW4oIi8iKX07ClU5PWZ1bmN0aW9uKCl7cmV0dXJuIGcubCgiaHRtbDVfc2VuZF9xb2Vfb25fZ2VsIil8fGcubCgid2ViX3NlbmRfdnNzM19pc29sYXRlZF9wYXlsb2FkIil9OwppeT1mdW5jdGlvbihuKXt5Uj1uO1U5KCkmJihnLnFpLnl0TG9nZ2luZ1RyYW5zcG9ydFJlZ2lzdGVyZWRDbGllbnRDdG9yXz1uKTtFOT1uZXcgbn07CnV5PWZ1bmN0aW9uKG4pe3JldHVybiBuP246VTkoKT95Unx8Zy5xaS55dExvZ2dpbmdUcmFuc3BvcnRSZWdpc3RlcmVkQ2xpZW50Q3Rvcl98fG51bGw6bnVsbH07CmRFPWZ1bmN0aW9uKCl7dmFyIG49Zy5ycigieXQubG9nZ2luZy5pbXMiKTtufHwobj1uZXcgb2IsZy5HYigieXQubG9nZ2luZy5pbXMiLG4pKTtyZXR1cm4gbn07CktfMj1mdW5jdGlvbigpe2lmKHR5cGVvZiBXb3JrZXI9PT0iZnVuY3Rpb24iJiZBcCgpJiYhenApe3ZhciBuPUQ9PntEPUQuZGF0YTtpZihELm9wPT09InNlcmlhbGl6ZWRHZWxCYXRjaCIpe3ZhciBiPWx5LmdldChELmtleSk7YiYmKFRwKEQuc2VyaWFsaXplZEJhdGNoLGIuY2xpZW50LGIucmVzb2x2ZSxiLm5ldHdvcmtsZXNzT3B0aW9ucyxiLmlzSXNvbGF0ZWQsYi51c2VWU1NFbmRwb2ludCxiLmRhbmdlcm91c0xvZ1RvVmlzaXRvclNlc3Npb24sYi5yZXF1ZXN0c091dHN0YW5kaW5nKSxseS5kZWxldGUoRC5rZXkpKX19LFc9S1goKTsKVyYmKFcuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsbiksVy5vbmVycm9yPSgpPT57bHkuY2xlYXIoKX0pOwp6cD0hMH19OwpPR3g9ZnVuY3Rpb24obixXKXtpZihuLmVuZHBvaW50PT09ImxvZ19ldmVudCIpe2paKG4pO3ZhciBEPUNYKG4pLGI9Qkkobi5wYXlsb2FkKXx8IiIsdj1GNChiKSxrPTIwMDtpZih2KXtpZih2LmVuYWJsZWQ9PT0hMSYmIWcubCgid2ViX3BheWxvYWRfcG9saWN5X2Rpc2FibGVkX2tpbGxzd2l0Y2giKSlyZXR1cm47az13RSh2LnRpZXIpO2lmKGs9PT00MDApe01qKG4sVyk7cmV0dXJufX1SYltEXT0hMDtEPXtjdHRBdXRoSW5mbzpELGlzSnNwYjohMSx0aWVyOmt9O2RFKCkuc3RvcmVQYXlsb2FkKEQsbi5wYXlsb2FkKTtRUihXLCExLEQsVlIoYikpfX07ClBXMT1mdW5jdGlvbihuLFcsRCl7aWYoVy5lbmRwb2ludD09PSJsb2dfZXZlbnQiKXtqWih2b2lkIDAsVyk7dmFyIGI9Q1goVywhMCksdj1GNChuKSxrPTIwMDtpZih2KXtpZih2LmVuYWJsZWQ9PT0hMSYmIWcubCgid2ViX3BheWxvYWRfcG9saWN5X2Rpc2FibGVkX2tpbGxzd2l0Y2giKSlyZXR1cm47az13RSh2LnRpZXIpO2lmKGs9PT00MDApe2NJKG4sVyxEKTtyZXR1cm59fVJiW2JdPSEwO2I9e2N0dEF1dGhJbmZvOmIsaXNKc3BiOiEwLHRpZXI6a307ZEUoKS5zdG9yZVBheWxvYWQoYixZdihXLnBheWxvYWQpKTtRUihELCEwLGIsVlIobikpfX07ClFSPWZ1bmN0aW9uKG4sVz0hMSxELGI9ITEpe24mJml5KG4pO249djAoInR2aHRtbDVfbG9nZ2luZ19tYXhfYmF0Y2hfYWRzX2ZvcmsiKXx8djAoInR2aHRtbDVfbG9nZ2luZ19tYXhfYmF0Y2giKXx8djAoIndlYl9sb2dnaW5nX21heF9iYXRjaCIpfHwxMDA7dmFyIHY9KDAsZy5SKSgpLGs9YWIoVyxELnRpZXIpLGg9ay5YO2ImJihrLk49ITApO2I9MDtEJiYoYj1kRSgpLmdldFNlcXVlbmNlQ291bnQoRCkpO2I+PTFFMz9uVSh7d3JpdGVUaGVuU2VuZDohMH0sVyxELnRpZXIpOmI+PW4/V3N8fChXcz1EdigoKT0+e25VKHt3cml0ZVRoZW5TZW5kOiEwfSxXLEQudGllcik7V3M9dm9pZCAwfSwwKSk6di1oPj0xMCYmKGJSKFcsRC50aWVyKSxrLlg9dil9OwpNaj1mdW5jdGlvbihuLFcpe2lmKG4uZW5kcG9pbnQ9PT0ibG9nX2V2ZW50Iil7Zy5sKCJtb3JlX2FjY3VyYXRlX2dlbF9wYXJzZXIiKSYmZEUoKS5zdG9yZVBheWxvYWQoe2lzSnNwYjohMX0sbi5wYXlsb2FkKTtqWihuKTt2YXIgRD1DWChuKSxiPW5ldyBNYXA7Yi5zZXQoRCxbbi5wYXlsb2FkXSk7dmFyIHY9Qkkobi5wYXlsb2FkKXx8IiI7KG49dXkoVykpJiZpeShuKTtyZXR1cm4gbmV3IGcuWDEoKGssaCk9PntFOSYmRTkuaXNSZWFkeSgpP3ZzKGIsRTksayxoLHtieXBhc3NOZXR3b3JrbGVzczohMH0sITAsVlIodikpOmsoKX0pfX07CmNJPWZ1bmN0aW9uKG4sVyxEKXtpZihXLmVuZHBvaW50PT09ImxvZ19ldmVudCIpe2paKHZvaWQgMCxXKTt2YXIgYj1DWChXLCEwKSx2PW5ldyBNYXA7di5zZXQoYixbWXYoVy5wYXlsb2FkKV0pOyhXPXV5KEQpKSYmaXkoVyk7cmV0dXJuIG5ldyBnLlgxKGs9PntFOSYmRTkuaXNSZWFkeSgpP2tBKHYsRTksayx7YnlwYXNzTmV0d29ya2xlc3M6ITB9LCEwLFZSKG4pKTprKCl9KX19OwpDWD1mdW5jdGlvbihuLFc9ITEpe3ZhciBEPSIiO2lmKG4uZGFuZ2Vyb3VzTG9nVG9WaXNpdG9yU2Vzc2lvbilEPSJ2aXNpdG9yT25seUFwcHJvdmVkS2V5IjtlbHNlIGlmKG4uY3R0QXV0aEluZm8pe2lmKFcpe1c9bi5jdHRBdXRoSW5mby50b2tlbjtEPW4uY3R0QXV0aEluZm87bGV0IGI9bmV3IGg2O0QudmlkZW9JZD9iLnNldFZpZGVvSWQoRC52aWRlb0lkKTpELnBsYXlsaXN0SWQmJkQyKGIsMix4QSxXSChELnBsYXlsaXN0SWQpKTtMVVtXXT1ifWVsc2UgVz1uLmN0dEF1dGhJbmZvLEQ9e30sVy52aWRlb0lkP0QudmlkZW9JZD1XLnZpZGVvSWQ6Vy5wbGF5bGlzdElkJiYoRC5wbGF5bGlzdElkPVcucGxheWxpc3RJZCksZXlbbi5jdHRBdXRoSW5mby50b2tlbl09RDtEPW4uY3R0QXV0aEluZm8udG9rZW59cmV0dXJuIER9OwpuVT1mdW5jdGlvbihuPXt9LFc9ITEsRCl7bmV3IGcuWDEoKGIsdik9Pnt2YXIgaz1hYihXLEQpLGg9ay5OO2suTj0hMTtpZihnLmwoImVuYWJsZV93ZWJfdGllcmVkX2dlbCIpJiZnLmwoIndlYl92c3Nfcm91dGluZ19jaGVja19hbGxfdGllcl9wb2xpY2llcyIpKXtsZXQgeD1hYihXLDMwMCksTD1hYihXLDIwMCk7aD1ofHx4Lk58fEwuTjt4Lk49ITE7TC5OPSExfWc0KGsuVyk7ZzQoay5KKTtrLko9MDtFOSYmRTkuaXNSZWFkeSgpP0Q9PT12b2lkIDAmJmcubCgiZW5hYmxlX3dlYl90aWVyZWRfZ2VsIik/cTEoYix2LG4sVywzMDAsaCk6cTEoYix2LG4sVyxELGgpOihiUihXLEQpLGIoKSl9KX07CnExPWZ1bmN0aW9uKG4sVyxEPXt9LGI9ITEsdj0yMDAsaz0hMSl7dmFyIGg9RTkseD1uZXcgTWFwLEw9bmV3IE1hcCxlPXtpc0pzcGI6YixjdHRBdXRoSW5mbzp2b2lkIDAsdGllcjp2fSxHPXtpc0pzcGI6YixjdHRBdXRoSW5mbzp2b2lkIDB9O2lmKGIpe2ZvcihsZXQgciBvZiBPYmplY3Qua2V5cyhSYikpVz1nLmwoImVuYWJsZV93ZWJfdGllcmVkX2dlbCIpP2RFKCkuc21hcnRFeHRyYWN0TWF0Y2hpbmdFbnRyaWVzKHtrZXlzOltlLEddLHNpemVMaW1pdDoxRTN9KTpkRSgpLmV4dHJhY3RNYXRjaGluZ0VudHJpZXMoe2lzSnNwYjohMCxjdHRBdXRoSW5mbzpyfSksVy5sZW5ndGg+MCYmeC5zZXQocixXKSwoZy5sKCJ3ZWJfZnBfdmlhX2pzcGJfYW5kX2pzb24iKSYmRC53cml0ZVRoZW5TZW5kfHwhZy5sKCJ3ZWJfZnBfdmlhX2pzcGJfYW5kX2pzb24iKSkmJmRlbGV0ZSBSYltyXTtrQSh4LGgsbixELCExLGspfWVsc2V7Zm9yKGxldCByIG9mIE9iamVjdC5rZXlzKFJiKSl4PWcubCgiZW5hYmxlX3dlYl90aWVyZWRfZ2VsIik/CmRFKCkuc21hcnRFeHRyYWN0TWF0Y2hpbmdFbnRyaWVzKHtrZXlzOlt7aXNKc3BiOiExLGN0dEF1dGhJbmZvOnIsdGllcjp2fSx7aXNKc3BiOiExLGN0dEF1dGhJbmZvOnJ9XSxzaXplTGltaXQ6MUUzfSk6ZEUoKS5leHRyYWN0TWF0Y2hpbmdFbnRyaWVzKHtpc0pzcGI6ITEsY3R0QXV0aEluZm86cn0pLHgubGVuZ3RoPjAmJkwuc2V0KHIseCksKGcubCgid2ViX2ZwX3ZpYV9qc3BiX2FuZF9qc29uIikmJkQud3JpdGVUaGVuU2VuZHx8IWcubCgid2ViX2ZwX3ZpYV9qc3BiX2FuZF9qc29uIikpJiZkZWxldGUgUmJbcl07dnMoTCxoLG4sVyxELCExLGspfX07CmJSPWZ1bmN0aW9uKG49ITEsVz0yMDApe3ZhciBEPSgpPT57blUoe3dyaXRlVGhlblNlbmQ6ITB9LG4sVyl9LGI9YWIobixXKSx2PWI9PT1HVXx8Yj09PXQ2PzVFMzpaR1o7CmcubCgid2ViX2dlbF90aW1lb3V0X2NhcCIpJiYhYi5KJiYodj1EdigoKT0+e0QoKX0sdiksYi5KPXYpOwpnNChiLlcpO3Y9Zy5BcigiTE9HR0lOR19CQVRDSF9USU1FT1VUIix2MCgid2ViX2dlbF9kZWJvdW5jZV9tcyIsMUU0KSk7Zy5sKCJzaG9ydGVuX2luaXRpYWxfZ2VsX2JhdGNoX3RpbWVvdXQiKSYmJEEmJih2PVVFdyk7dj1EdigoKT0+e3YwKCJnZWxfbWluX2JhdGNoX3NpemUiKT4wP2RFKCkuZ2V0U2VxdWVuY2VDb3VudCh7Y3R0QXV0aEluZm86dm9pZCAwLGlzSnNwYjpuLHRpZXI6V30pPj15dlMmJkQoKTpEKCl9LHYpOwpiLlc9dn07CnZzPWZ1bmN0aW9uKG4sVyxELGIsdj17fSxrLGgpe3ZhciB4PU1hdGgucm91bmQoKDAsZy5SKSgpKSxMPW4uc2l6ZSxlPXI0KGgpO2ZvcihsZXQgW0cscl1vZiBuKXtuPUc7aD1yO2xldCBOPWcuTmMoe2NvbnRleHQ6Zy5VSihXLmNvbmZpZ198fGcuUzkoKSl9KTtpZighZy5ZMihoKSYmIWcubCgidGhyb3dfZXJyX3doZW5fbG9nZXZlbnRfbWFsZm9ybWVkX2tpbGxzd2l0Y2giKSl7YigpO2JyZWFrfU4uZXZlbnRzPWg7KGg9ZXlbbl0pJiZFdkMoTixuLGgpO2RlbGV0ZSBleVtuXTtsZXQgSD1uPT09InZpc2l0b3JPbmx5QXBwcm92ZWRLZXkiO2lHaihOLHgsSCk7c3kodik7bGV0IEE9ej0+e2cubCgic3RhcnRfY2xpZW50X2djZiIpJiZ0YS5MUyhhc3luYygpPT57YXdhaXQgTjEoeil9KTsKTC0tO0x8fEQoKX0seT0wLFQ9KCk9Pnt5Kys7CmlmKHYuYnlwYXNzTmV0d29ya2xlc3MmJnk9PT0xKXRyeXtnLklJKFcsZSxOLHBVKHt3cml0ZVRoZW5TZW5kOiEwfSxILEEsVCxrKSksJEE9ITF9Y2F0Y2goeil7T3QoeiksYigpfUwtLTtMfHxEKCl9Owp0cnl7Zy5JSShXLGUsTixwVSh2LEgsQSxULGspKSwkQT0hMX1jYXRjaCh6KXtPdCh6KSxiKCl9fX07CmtBPWZ1bmN0aW9uKG4sVyxELGI9e30sdixrKXt2YXIgaD1NYXRoLnJvdW5kKCgwLGcuUikoKSkseD17dmFsdWU6bi5zaXplfSxMPW5ldyBNYXAoWy4uLm5dKTtmb3IobGV0IFtUXW9mIEwpe3ZhciBlPVQsRz1uLmdldChlKTtMPW5ldyB1RjI7dmFyIHI9Vy5jb25maWdffHxnLlM5KCksTj1uZXcgWUEsSD1uZXcgSHM7Zy5TRShILDEsci5NYik7Zy5TRShILDIsci5FRSk7S24oSCwxNixyLkZkKTtnLlNFKEgsMTcsci5pbm5lcnR1YmVDb250ZXh0Q2xpZW50VmVyc2lvbik7aWYoci5jUil7dmFyIEE9ci5jUix5PW5ldyBpOTtBLmNvbGRDb25maWdEYXRhJiZnLlNFKHksMSxBLmNvbGRDb25maWdEYXRhKTtBLmFwcEluc3RhbGxEYXRhJiZnLlNFKHksNixBLmFwcEluc3RhbGxEYXRhKTtBLmNvbGRIYXNoRGF0YSYmZy5TRSh5LDMsQS5jb2xkSGFzaERhdGEpO0EuaG90SGFzaERhdGEmJnkuVyhBLmhvdEhhc2hEYXRhKTskOShILGk5LDYyLHkpfShBPWcucWkuZGV2aWNlUGl4ZWxSYXRpbykmJgpBIT0xJiZveihILDY1LGcuQV8oQSkpO0E9a1QoKTtBIT09IiImJmcuU0UoSCw1NCxBKTtBPWh5KCk7aWYoQS5sZW5ndGg+MCl7eT1uZXcgZlU7Zm9yKGxldCB6PTA7ejxBLmxlbmd0aDt6Kyspe2xldCBDPW5ldyBKNjtnLlNFKEMsMSxBW3pdLmtleSk7RDIoQywyLEl2LFdIKEFbel0udmFsdWUpKTtOSCh5LDE1LEo2LEMpfSQ5KE4sZlUsNSx5KX1BNyhyLEgpO21UKE4pO0tQKEgpO09KKHIsSCk7UHooSCk7Zy5sKCJzdGFydF9jbGllbnRfZ2NmIikmJlptKEgpO2cuQXIoIkRFTEVHQVRFRF9TRVNTSU9OX0lEIikmJiFnLmwoInBhZ2VpZF9hc19oZWFkZXJfd2ViIikmJihyPW5ldyBTeSxnLlNFKHIsMyxnLkFyKCJERUxFR0FURURfU0VTU0lPTl9JRCIpKSk7IWcubCgiZmlsbF9kZWxlZ2F0ZV9jb250ZXh0X2luX2dlbF9raWxsc3dpdGNoIikmJihBPWcuQXIoIklOTkVSVFVCRV9DT05URVhUX1NFUklBTElaRURfREVMRUdBVElPTl9DT05URVhUIikpJiYoeT1nZShOLFN5LDMpfHxuZXcgU3ksCnI9TixBPWcuU0UoeSwxOCxBKSwkOShyLFN5LDMsQSkpO3I9SDtBPWcuQXIoIkRFVklDRSIsIiIpO2ZvcihsZXQgW3osQ11vZiBPYmplY3QuZW50cmllcyhnLml3KEEpKSlBPXosQT09PSJjYnJhbmQiP2cuU0UociwxMixDKTpBPT09ImNtb2RlbCI/Zy5TRShyLDEzLEMpOkE9PT0iY2JyIj9nLlNFKHIsODcsQyk6QT09PSJjYnJ2ZXIiP2cuU0Uociw4OCxDKTpBPT09ImNvcyI/Zy5TRShyLDE4LEMpOkE9PT0iY29zdmVyIj9nLlNFKHIsMTksQyk6QT09PSJjcGxhdGZvcm0iJiZLbihyLDQyLGhxaChDKSk7Zy5sKCJ3ZWJfYXR0ZW50aW9uX2xvZ2dpbmdfZW5hYmxlZCIpJiYob3ooSCw1NSxnLnlQKHdpbmRvdy5pbm5lcldpZHRoKSksb3ooSCw1NixnLnlQKHdpbmRvdy5pbm5lckhlaWdodCkpKTtOLlcoSCk7JDkoTCxZQSwxLE4pO2lmKEg9TFVbZV0pYTp7aWYoSC5FMSgpKU49MTtlbHNlIGlmKEguZ2V0UGxheWxpc3RJZCgpKU49MjtlbHNlIGJyZWFrIGE7JDkoTCxoNiw0LEgpO0g9Z2UoTCwKWUEsMSl8fG5ldyBZQTtyPWdlKEgsU3ksMyl8fG5ldyBTeTtBPW5ldyBBNjtBLnNldFRva2VuKGUpO0tuKEEsMSxOKTtOSChyLDEyLEE2LEEpOyQ5KEgsU3ksMyxyKX1kZWxldGUgTFVbZV07ZT1lPT09InZpc2l0b3JPbmx5QXBwcm92ZWRLZXkiO21yKCl8fElZKEwsMixoKTshZSYmKE49Zy5BcigiRVZFTlRfSUQiKSkmJihIPUtVKCkscj1uZXcgT3ksZy5TRShyLDEsTiksSVkociwyLEgpLCQ5KEwsT3ksNSxyKSk7c3koYik7aWYoZy5sKCJqc3BiX3NlcmlhbGl6ZV93aXRoX3dvcmtlciIpJiYoTj1LWCgpKSYmYi53cml0ZVRoZW5TZW5kKXtseS5zZXQoUHMse2NsaWVudDpXLHJlc29sdmU6RCxuZXR3b3JrbGVzc09wdGlvbnM6Yixpc0lzb2xhdGVkOnYsdXNlVlNTRW5kcG9pbnQ6ayxkYW5nZXJvdXNMb2dUb1Zpc2l0b3JTZXNzaW9uOmUscmVxdWVzdHNPdXRzdGFuZGluZzp4fSk7Ti5wb3N0TWVzc2FnZSh7b3A6ImdlbEJhdGNoVG9TZXJpYWxpemUiLGJhdGNoUmVxdWVzdDpZdihMKSxjbGllbnRFdmVudHM6RywKa2V5OlBzfSk7UHMrKzticmVha31pZihHKXtOPVtdO2ZvcihIPTA7SDxHLmxlbmd0aDtIKyspdHJ5e04ucHVzaChuZXcgWnYoR1tIXSkpfWNhdGNoe090KG5ldyBnLlF4KCJUcmFuc3BvcnQgZmFpbGVkIHRvIGRlc2VyaWFsaXplICIrU3RyaW5nKEdbSF0pKSl9Rz1OfWVsc2UgRz1bXTtmb3IobGV0IHogb2YgRylOSChMLDMsWnYseik7Rz17c3RhcnRUaW1lOigwLGcuUikoKSx0aWNrczp7fSxpbmZvczp7fX07TD1MLmJZKCk7Ry50aWNrcy5nZWxqc3BjPSgwLGcuUikoKTtnLmwoImxvZ19qc3BiX3NlcmlhbGl6ZV9sYXRlbmN5IikmJkYzKCJnZWxfanNwYl9zZXJpYWxpemUiLEcse3NhbXBsZVJhdGU6LjF9KTtUcChMLFcsRCxiLHYsayxlLHgpfX07ClRwPWZ1bmN0aW9uKG4sVyxELGI9e30sdixrLGgseD17dmFsdWU6MH0pe2s9cjQoayk7Yj1wVShiLGgsTD0+e2cubCgic3RhcnRfY2xpZW50X2djZiIpJiZ0YS5MUyhhc3luYygpPT57YXdhaXQgTjEoTCl9KTsKeC52YWx1ZS0tO3gudmFsdWV8fEQoKX0sKCk9Pnt4LnZhbHVlLS07CngudmFsdWV8fEQoKX0sdik7CmIuaGVhZGVyc1siQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2pzb24rcHJvdG9idWYiO2IucG9zdEJvZHlGb3JtYXQ9IkpTUEIiO2IucG9zdEJvZHk9bjtnLklJKFcsaywiIixiKTskQT0hMX07CnN5PWZ1bmN0aW9uKG4pe2cubCgiYWx3YXlzX3NlbmRfYW5kX3dyaXRlIikmJihuLndyaXRlVGhlblNlbmQ9ITEpfTsKcFU9ZnVuY3Rpb24obixXLEQsYix2KXtuPXtyZXRyeTohMCxvblN1Y2Nlc3M6RCxvbkVycm9yOmIsbmV0d29ya2xlc3NPcHRpb25zOm4sZGFuZ2Vyb3VzTG9nVG9WaXNpdG9yU2Vzc2lvbjpXLFRVOiEhdixoZWFkZXJzOnt9LHBvc3RCb2R5Rm9ybWF0OiIiLHBvc3RCb2R5OiIiLGNvbXByZXNzOmcubCgiY29tcHJlc3NfZ2VsIil8fGcubCgiY29tcHJlc3NfZ2VsX2xyIil9O21yKCkmJihuLmhlYWRlcnNbIlgtR29vZy1SZXF1ZXN0LVRpbWUiXT1KU09OLnN0cmluZ2lmeShNYXRoLnJvdW5kKCgwLGcuUikoKSkpKTtyZXR1cm4gbn07CmlHaj1mdW5jdGlvbihuLFcsRCl7bXIoKXx8KG4ucmVxdWVzdFRpbWVNcz1TdHJpbmcoVykpO2cubCgidW5zcGxpdF9nZWxfcGF5bG9hZHNfaW5fbG9ncyIpJiYobi51bnNwbGl0R2VsUGF5bG9hZHNJbkxvZ3M9ITApOyFEJiYoVz1nLkFyKCJFVkVOVF9JRCIpKSYmKEQ9S1UoKSxuLnNlcmlhbGl6ZWRDbGllbnRFdmVudElkPXtzZXJpYWxpemVkRXZlbnRJZDpXLGNsaWVudENvdW50ZXI6U3RyaW5nKEQpfSl9OwpLVT1mdW5jdGlvbigpe3ZhciBuPWcuQXIoIkJBVENIX0NMSUVOVF9DT1VOVEVSIil8fDA7bnx8KG49TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjY1NTM1LzIpKTtuKys7bj42NTUzNSYmKG49MSk7Zy5TSCgiQkFUQ0hfQ0xJRU5UX0NPVU5URVIiLG4pO3JldHVybiBufTsKRXZDPWZ1bmN0aW9uKG4sVyxEKXtpZihELnZpZGVvSWQpdmFyIGI9IlZJREVPIjtlbHNlIGlmKEQucGxheWxpc3RJZCliPSJQTEFZTElTVCI7ZWxzZSByZXR1cm47bi5jcmVkZW50aWFsVHJhbnNmZXJUb2tlblRhcmdldElkPUQ7bi5jb250ZXh0PW4uY29udGV4dHx8e307bi5jb250ZXh0LnVzZXI9bi5jb250ZXh0LnVzZXJ8fHt9O24uY29udGV4dC51c2VyLmNyZWRlbnRpYWxUcmFuc2ZlclRva2Vucz1be3Rva2VuOlcsc2NvcGU6Yn1dfTsKalo9ZnVuY3Rpb24obixXKXt2YXIgRD1nLnJyKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5lbmFibGVTY3JhcGluZ0ZvclRlc3QiKSxiPWJiKCJpbF9wYXlsb2FkX3NjcmFwaW5nIik7Yj0oYiE9PXZvaWQgMD9TdHJpbmcoYik6IiIpPT09ImVuYWJsZV9pbF9wYXlsb2FkX3NjcmFwaW5nIjtpZighRClpZihiKVV5PVtdLGcuR2IoInl0LmxvZ2dpbmcudHJhbnNwb3J0LmVuYWJsZVNjcmFwaW5nRm9yVGVzdCIsITApLGcuR2IoInl0LmxvZ2dpbmcudHJhbnNwb3J0LnNjcmFwZWRQYXlsb2Fkc0ZvclRlc3RpbmciLFV5KSxnLkdiKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5wYXlsb2FkVG9TY3JhcGUiLCJ2aXN1YWxFbGVtZW50U2hvd24gdmlzdWFsRWxlbWVudEhpZGRlbiB2aXN1YWxFbGVtZW50QXR0YWNoZWQgc2NyZWVuQ3JlYXRlZCB2aXN1YWxFbGVtZW50R2VzdHVyZWQgdmlzdWFsRWxlbWVudFN0YXRlQ2hhbmdlZCIuc3BsaXQoIiAiKSksZy5HYigieXQubG9nZ2luZy50cmFuc3BvcnQuZ2V0U2NyYXBlZFBheWxvYWRGcm9tQ2xpZW50RXZlbnRzRnVuY3Rpb24iKSwKZy5HYigieXQubG9nZ2luZy50cmFuc3BvcnQuc2NyYXBlQ2xpZW50RXZlbnQiLCEwKTtlbHNlIHJldHVybjtEPWcucnIoInl0LmxvZ2dpbmcudHJhbnNwb3J0LnNjcmFwZWRQYXlsb2Fkc0ZvclRlc3RpbmciKTtiPWcucnIoInl0LmxvZ2dpbmcudHJhbnNwb3J0LnBheWxvYWRUb1NjcmFwZSIpO1cmJihXPVcucGF5bG9hZCwoVz1nLnJyKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5nZXRTY3JhcGVkUGF5bG9hZEZyb21DbGllbnRFdmVudHNGdW5jdGlvbiIpLmJpbmQoVykoKSkmJkQucHVzaChXKSk7Vz1nLnJyKCJ5dC5sb2dnaW5nLnRyYW5zcG9ydC5zY3JhcGVDbGllbnRFdmVudCIpO2lmKGImJmIubGVuZ3RoPj0xKWZvcihsZXQgdj0wO3Y8Yi5sZW5ndGg7disrKW4mJm4ucGF5bG9hZFtiW3ZdXSYmKFc/RC5wdXNoKG4ucGF5bG9hZCk6RC5wdXNoKChuPy5wYXlsb2FkKVtiW3ZdXSkpO2cuR2IoInl0LmxvZ2dpbmcudHJhbnNwb3J0LnNjcmFwZWRQYXlsb2Fkc0ZvclRlc3RpbmciLEQpfTsKbXI9ZnVuY3Rpb24oKXtyZXR1cm4gZy5sKCJ1c2VfcmVxdWVzdF90aW1lX21zX2hlYWRlciIpfHxnLmwoImxyX3VzZV9yZXF1ZXN0X3RpbWVfbXNfaGVhZGVyIil9OwpEdj1mdW5jdGlvbihuLFcpe3JldHVybiBnLmwoInRyYW5zcG9ydF91c2Vfc2NoZWR1bGVyIik9PT0hMT9nLm4kKG4sVyk6Zy5sKCJsb2dnaW5nX2F2b2lkX2Jsb2NraW5nX2R1cmluZ19uYXZpZ2F0aW9uIil8fGcubCgibHJfbG9nZ2luZ19hdm9pZF9ibG9ja2luZ19kdXJpbmdfbmF2aWdhdGlvbiIpP2cuY0IoMCwoKT0+e0liKCkuY3VycmVudFN0YXRlPT09Im5vbmUiP24oKTpJYigpLmluc3RhbGwoe25vbmU6e2NhbGxiYWNrOm59fSl9LFcpOmcuY0IoMCxuLFcpfTsKZzQ9ZnVuY3Rpb24obil7Zy5sKCJ0cmFuc3BvcnRfdXNlX3NjaGVkdWxlciIpP3RhLnNPKG4pOndpbmRvdy5jbGVhclRpbWVvdXQobil9OwpOMT1hc3luYyBmdW5jdGlvbihuKXtuPW4/LnJlc3BvbnNlQ29udGV4dD8uZ2xvYmFsQ29uZmlnR3JvdXA7dmFyIFc9Zy53KG4sb3Z0KSxEPW4/LmhvdEhhc2hEYXRhLGI9Zy53KG4sZEUyKSx2PW4/LmNvbGRIYXNoRGF0YSxrPWcucWooKS5yZXNvbHZlKGcuaHAoZy5YMykpO2smJihEJiYoVz9hd2FpdCBIeihrLEQsVyk6YXdhaXQgSHooayxEKSksdiYmKGI/YXdhaXQgZlAoayx2LGIpOmF3YWl0IGZQKGssdikpKTtXPW4/LnJhd0ZpbmNoU3RhdGljQ29uZmlnR3JvdXA7KG49bj8uZmluY2hTdGF0aWNIYXNoRGF0YSk/KEQ9Zy5xaigpLnJlc29sdmUoZy5ocCh6X3QpKSk/YXdhaXQgRC5OVSh7Y29uZmlnOld8fHt9LFlVOm58fCIifSk6KFd8fG4pJiZaRShuZXcgZy5ReCgiRmluY2hDb25maWdNYW5hZ2VyU2VydmljZSBpcyBub3QgcHJlc2VudCwgYnV0IEZpbmNoIGNvbmZpZyBkYXRhIGlzIHByZXNlbnQuIikpOlcmJlpFKG5ldyBnLlF4KCJGaW5jaCBjb25maWcgZGF0YSBpcyBwcmVzZW50LCBidXQgaGFzaCBpcyBtaXNzaW5nLiIpKX07CmFiPWZ1bmN0aW9uKG4sVz0yMDApe3JldHVybiBuP1c9PT0zMDA/R1U6bFJDOlc9PT0zMDA/dDY6VGdpfTsKRjQ9ZnVuY3Rpb24obil7aWYoZy5sKCJlbmFibGVfd2ViX3RpZXJlZF9nZWwiKSl7bj15NFtufHwiIl07dmFyIFc9Zy5xaigpLnJlc29sdmUoZy5ocChnLlgzKSk/LkxYKCk/LmxvZ2dpbmdIb3RDb25maWc/LmV2ZW50TG9nZ2luZ0NvbmZpZz8ucGF5bG9hZFBvbGljaWVzO2lmKFcpZm9yKGxldCBEPTA7RDxXLmxlbmd0aDtEKyspaWYoV1tEXS5wYXlsb2FkTnVtYmVyPT09bilyZXR1cm4gV1tEXX19OwpCST1mdW5jdGlvbihuKXtuPU9iamVjdC5rZXlzKG4pO2ZvcihsZXQgVyBvZiBuKWlmKHk0W1ddKXJldHVybiBXfTsKd0U9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgIkRFTEFZRURfRVZFTlRfVElFUl9VTlNQRUNJRklFRCI6cmV0dXJuIDA7Y2FzZSAiREVMQVlFRF9FVkVOVF9USUVSX0RFRkFVTFQiOnJldHVybiAxMDA7Y2FzZSAiREVMQVlFRF9FVkVOVF9USUVSX0RJU1BBVENIX1RPX0VNUFRZIjpyZXR1cm4gMjAwO2Nhc2UgIkRFTEFZRURfRVZFTlRfVElFUl9GQVNUIjpyZXR1cm4gMzAwO2Nhc2UgIkRFTEFZRURfRVZFTlRfVElFUl9JTU1FRElBVEUiOnJldHVybiA0MDA7ZGVmYXVsdDpyZXR1cm4gMjAwfX07ClZSPWZ1bmN0aW9uKG4pe3JldHVybiBuPT09ImdlbERlYnVnZ2luZ0V2ZW50Inx8bj09PSJ3YXRjaFRpbWVTZWdtZW50In07CnI0PWZ1bmN0aW9uKG49ITEpe3JldHVybiBuJiZnLmwoInZzc190aHJvdWdoX2dlbF92aWRlb19zdGF0cyIpPyJ2aWRlb19zdGF0cyI6ImxvZ19ldmVudCJ9Owp1Uj1mdW5jdGlvbihuLFcsRCxiPXt9KXt2YXIgdj17fSxrPU1hdGgucm91bmQoYi50aW1lc3RhbXB8fCgwLGcuUikoKSk7di5ldmVudFRpbWVNcz1rPE51bWJlci5NQVhfU0FGRV9JTlRFR0VSP2s6MDt2W25dPVc7bj1nLnZJKCk7di5jb250ZXh0PXtsYXN0QWN0aXZpdHlNczpTdHJpbmcoYi50aW1lc3RhbXB8fCFpc0Zpbml0ZShuKT8tMTpuKX07Yi5zZXF1ZW5jZUdyb3VwJiYhZy5sKCJ3ZWJfZ2VsX3NlcXVlbmNlX2luZm9fa2lsbHN3aXRjaCIpJiYobj12LmNvbnRleHQsVz1iLnNlcXVlbmNlR3JvdXAsVz17aW5kZXg6RXkoVyksZ3JvdXBLZXk6V30sbi5zZXF1ZW5jZT1XLGIuZW5kT2ZTZXF1ZW5jZSYmZGVsZXRlIGlSW2Iuc2VxdWVuY2VHcm91cF0pO2cubCgid2ViX3RhZ19hdXRvbWF0ZWRfbG9nX2V2ZW50cyIpJiYodi5jb250ZXh0LmF1dG9tYXRlZExvZ0V2ZW50U291cmNlPWIuYXV0b21hdGVkTG9nRXZlbnRTb3VyY2UpOyhiLnNlbmRJc29sYXRlZFBheWxvYWQ/TWo6T0d4KSh7ZW5kcG9pbnQ6ImxvZ19ldmVudCIsCnBheWxvYWQ6dixjdHRBdXRoSW5mbzpiLmN0dEF1dGhJbmZvLGRhbmdlcm91c0xvZ1RvVmlzaXRvclNlc3Npb246Yi5kYW5nZXJvdXNMb2dUb1Zpc2l0b3JTZXNzaW9ufSxEKX07Cm92PWZ1bmN0aW9uKG49ITEpe25VKHZvaWQgMCxuKX07CkV5PWZ1bmN0aW9uKG4pe2lSW25dPW4gaW4gaVI/aVJbbl0rMTowO3JldHVybiBpUltuXX07CmcuelU9ZnVuY3Rpb24obixXLEQ9e30pe3ZhciBiPWcuZDQ7Zy5BcigieXRMb2dnaW5nRXZlbnRzRGVmYXVsdERpc2FibGVkIiwhMSkmJmcuZDQ9PT1nLmQ0JiYoYj1udWxsKTt1UihuLFcsYixEKX07ClRVPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgbFIoe3RyYWNraW5nUGFyYW1zOm59KX07Cmp5PWZ1bmN0aW9uKG4sVyxELGIsdixrKXt2YXIgaD1qelorKztyZXR1cm4gbmV3IGxSKHt2ZVR5cGU6bix2ZUNvdW50ZXI6aCxlbGVtZW50SW5kZXg6RCxkYXRhRWxlbWVudDpXLHlvdXR1YmVEYXRhOmIsanNwYllvdXR1YmVEYXRhOnYsbG9nZ2luZ0RpcmVjdGl2ZXM6a30pfTsKQ1U9ZnVuY3Rpb24obj0wKXtyZXR1cm4gZy5BcigiY2xpZW50LXNjcmVlbi1ub25jZS1zdG9yZSIse30pW25dfTsKQ1dpPWZ1bmN0aW9uKG4sVz0wKXt2YXIgRD1nLkFyKCJjbGllbnQtc2NyZWVuLW5vbmNlLXN0b3JlIik7RHx8KEQ9e30sZy5TSCgiY2xpZW50LXNjcmVlbi1ub25jZS1zdG9yZSIsRCkpO0RbV109bn07CkJzPWZ1bmN0aW9uKG49MCl7cmV0dXJuIG49PT0wPyJST09UX1ZFX1RZUEUiOmBST09UX1ZFX1RZUEUuJHtufWB9OwpGUj1mdW5jdGlvbihuPTApe3JldHVybiBnLkFyKEJzKG4pKX07Cnc0PWZ1bmN0aW9uKG49MCl7cmV0dXJuKG49RlIobikpP25ldyBsUih7dmVUeXBlOm4seW91dHViZURhdGE6dm9pZCAwLGpzcGJZb3V0dWJlRGF0YTp2b2lkIDB9KTpudWxsfTsKTTE9ZnVuY3Rpb24oKXt2YXIgbj1nLkFyKCJjc24tdG8tY3R0LWF1dGgtaW5mbyIpO258fChuPXt9LGcuU0goImNzbi10by1jdHQtYXV0aC1pbmZvIixuKSk7cmV0dXJuIG59OwpCZ3I9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LnZhbHVlcyhnLkFyKCJjbGllbnQtc2NyZWVuLW5vbmNlLXN0b3JlIix7fSkpLmZpbHRlcihuPT5uIT09dm9pZCAwKX07CmcuUnY9ZnVuY3Rpb24obj0wKXtuPUNVKG4pO2lmKCFuJiYhZy5BcigiVVNFX0NTTl9GQUxMQkFDSyIsITApKXJldHVybiBudWxsO258fChuPSJVTkRFRklORURfQ1NOIik7cmV0dXJuIG4/bjpudWxsfTsKd0hDPWZ1bmN0aW9uKG4pe2ZvcihsZXQgVyBvZiBPYmplY3QudmFsdWVzKEZfVSkpaWYoZy5SdihXKT09PW4pcmV0dXJuITA7cmV0dXJuITF9OwpNV3c9ZnVuY3Rpb24obixXLEQpe3ZhciBiPU0xKCk7KEQ9Zy5SdihEKSkmJmRlbGV0ZSBiW0RdO1cmJihiW25dPVcpfTsKUTQ9ZnVuY3Rpb24obil7cmV0dXJuIE0xKClbbl19Owpjcz1mdW5jdGlvbihuLFcsRD0wLGIpe2lmKG4hPT1DVShEKXx8VyE9PWcuQXIoQnMoRCkpKWlmKE1XdyhuLGIsRCksQ1dpKG4sRCksZy5TSChCcyhEKSxXKSxXPSgpPT57c2V0VGltZW91dCgoKT0+e24mJmcuelUoImZvcmVncm91bmRIZWFydGJlYXRTY3JlZW5Bc3NvY2lhdGVkIix7Y2xpZW50RG9jdW1lbnROb25jZTpWNCxjbGllbnRTY3JlZW5Ob25jZTpufSl9LDApfSwicmVxdWVzdEFuaW1hdGlvbkZyYW1lImluIHdpbmRvdyl0cnl7d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShXKX1jYXRjaCh2KXtXKCl9ZWxzZSBXKCl9OwpuND1mdW5jdGlvbihuLFcpe3ZhciBEPWcuQXIoIlZBTElEX1NFU1NJT05fVEVNUERBVEFfRE9NQUlOUyIsW10pLGI9Zy5JUCh3aW5kb3cubG9jYXRpb24uaHJlZik7YiYmRC5wdXNoKGIpO2I9Zy5JUChuKTtpZihnLmpqKEQsYil8fCFiJiZnLmpVKG4sIi8iKSlpZihEPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxnLk5VKEQsbiksbj1ELmhyZWYpaWYobj1tVyhuKSxuPUtwKG4pKWlmKCFXLmNzbiYmKFcuaXRjdHx8Vy52ZWQpJiYoVz1PYmplY3QuYXNzaWduKHtjc246Zy5SdigpfSxXKSksdil7dmFyIHY9cGFyc2VJbnQodiwxMCk7aXNGaW5pdGUodikmJnY+MCYmYXYobixXLHYpfWVsc2UgYXYobixXKX07CmF2PWZ1bmN0aW9uKG4sVyxEKXtuPVdhKG4pO1c9Vz95RyhXKToiIjtEPUR8fDU7Zy5hSygpJiZJSyhuLFcsRCl9OwpXYT1mdW5jdGlvbihuKXtmb3IobGV0IFcgb2YgUl9NKW49VDUobixXKTtyZXR1cm4iU1QtIitzVChuKS50b1N0cmluZygzNil9OwpnLkRwPWZ1bmN0aW9uKG4pe2lmKG4uc2ltcGxlVGV4dClyZXR1cm4gbi5zaW1wbGVUZXh0O2lmKG4ucnVucyl7bGV0IFc9W107Zm9yKGxldCBEIG9mIG4ucnVucylELnRleHQmJlcucHVzaChELnRleHQpO3JldHVybiBXLmpvaW4oIiIpfXJldHVybiIifTsKZy5iZz1mdW5jdGlvbihuKXtpZihuLnNpbXBsZVRleHQpcmV0dXJuIG49ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobi5zaW1wbGVUZXh0KSxuO3ZhciBXPVtdO2lmKG4ucnVucylmb3IobGV0IHg9MDt4PG4ucnVucy5sZW5ndGg7eCsrKXt2YXIgRD1uLnJ1bnNbeF07aWYoRC50ZXh0KXt2YXIgYj1XLHY9Yi5wdXNoLGs9bnVsbDt2YXIgaD1ELnRleHQ7RC5ib2xkJiYoaz1nLmRtKCJCIixudWxsLGt8fGgpKTtELml0YWxpY3MmJihrPWcuZG0oIkkiLG51bGwsa3x8aCkpO0Quc3RyaWtldGhyb3VnaCYmKGs9Zy5kbSgiU1RSSUtFIixudWxsLGt8fGgpKTtELm5hdmlnYXRpb25FbmRwb2ludCYmRC5uYXZpZ2F0aW9uRW5kcG9pbnQudXJsRW5kcG9pbnQmJihEPUQubmF2aWdhdGlvbkVuZHBvaW50LnVybEVuZHBvaW50LGs9Zy5kbSgiQSIsbnVsbCxrfHxoKSxnLk5VKGssRC51cmwpLEQudGFyZ2V0PT0iVEFSR0VUX05FV19XSU5ET1ciJiYoay50YXJnZXQ9Il9ibGFuayIpKTtoPWt8fGcuZG0oIlNQQU4iLApudWxsLGgpO3YuY2FsbChiLGgpfX1yZXR1cm4gVy5sZW5ndGg9PTE/V1swXTpnLmRtKCJTUEFOIixudWxsLFcpfTsKUXoxPWZ1bmN0aW9uKG4pe2lmKG4ubmFtZT09PSJKYXZhRXhjZXB0aW9uIilyZXR1cm4hMDtuPW4uc3RhY2s7cmV0dXJuIG4uaW5jbHVkZXMoImNocm9tZTovLyIpfHxuLmluY2x1ZGVzKCItZXh0ZW5zaW9uOi8vIil8fG4uaW5jbHVkZXMoIndlYmtpdC1tYXNrZWQtdXJsOi8vIil9OwpWV3g9ZnVuY3Rpb24obil7aWYoIW4uc3RhY2spcmV0dXJuITA7dmFyIFc9IW4uc3RhY2suaW5jbHVkZXMoIlxuIik7cmV0dXJuIFcmJm4uc3RhY2suaW5jbHVkZXMoIkVycm9yVHlwZTogIil8fFcmJm4uc3RhY2suaW5jbHVkZXMoIkFub255bW91cyBmdW5jdGlvbiAoVW5rbm93biBzY3JpcHQiKXx8bi5zdGFjay50b0xvd2VyQ2FzZSgpPT09Im5vdCBhdmFpbGFibGUifHxuLmZpbGVOYW1lPT09InVzZXItc2NyaXB0Inx8bi5maWxlTmFtZS5zdGFydHNXaXRoKCJ1c2VyLXNjcmlwdDoiKT8hMDohMX07CmhQPWZ1bmN0aW9uKCl7aWYoIXZhKXt2YXIgbj12YT1uZXcgY3ZoO24uTjkubGVuZ3RoPTA7bi5rby5sZW5ndGg9MDtrQihuLGFSUyl9cmV0dXJuIHZhfTsKa0I9ZnVuY3Rpb24obixXKXtXLk45JiZuLk45LnVuc2hpZnQuYXBwbHkobi5OOSxXLk45KTtXLmtvJiZuLmtvLnVuc2hpZnQuYXBwbHkobi5rbyxXLmtvKX07Cm45dz1mdW5jdGlvbihuKXt2YXIgVz1uLmxlbmd0aCxEPTAsYj0oKT0+bi5jaGFyQ29kZUF0KEQrKyk7CmRve3ZhciB2PXhCKGIpO2lmKHY9PT1JbmZpbml0eSlicmVhaztsZXQgaz12Pj4zO3N3aXRjaCh2Jjcpe2Nhc2UgMDp2PXhCKGIpO2lmKGs9PT0yKXJldHVybiB2O2JyZWFrO2Nhc2UgMTppZihrPT09MilyZXR1cm47RCs9ODticmVhaztjYXNlIDI6dj14QihiKTtpZihrPT09MilyZXR1cm4gbi5zdWJzdHIoRCx2KTtEKz12O2JyZWFrO2Nhc2UgNTppZihrPT09MilyZXR1cm47RCs9NDticmVhaztkZWZhdWx0OnJldHVybn19d2hpbGUoRDxXKX07CnhCPWZ1bmN0aW9uKG4pe3ZhciBXPW4oKSxEPVcmMTI3O2lmKFc8MTI4KXJldHVybiBEO1c9bigpO0R8PShXJjEyNyk8PDc7aWYoVzwxMjgpcmV0dXJuIEQ7Vz1uKCk7RHw9KFcmMTI3KTw8MTQ7aWYoVzwxMjgpcmV0dXJuIEQ7Vz1uKCk7cmV0dXJuIFc8MTI4P0R8KFcmMTI3KTw8MjE6SW5maW5pdHl9OwpnSz1mdW5jdGlvbihuLFcsRCxiKXtpZihuKWlmKEFycmF5LmlzQXJyYXkobikpe3ZhciB2PWI7Zm9yKGI9MDtiPG4ubGVuZ3RoJiYhKG5bYl0mJih2Kz1MNChiLG5bYl0sVyxEKSx2PjUwMCkpO2IrKyk7Yj12fWVsc2UgaWYodHlwZW9mIG49PT0ib2JqZWN0Iilmb3IodiBpbiBuKXtpZihuW3ZdKXthOnt2YXIgaz12O3ZhciBoPW5bdl0seD1XLEw9RDtpZih0eXBlb2YgaCE9PSJzdHJpbmcifHxrIT09ImNsaWNrVHJhY2tpbmdQYXJhbXMiJiZrIT09InRyYWNraW5nUGFyYW1zIil7az0wO2JyZWFrIGF9az0oaD1uOXcoYXRvYihoLnJlcGxhY2UoLy0vZywiKyIpLnJlcGxhY2UoL18vZywiLyIpKSkpP0w0KGAke2t9LnZlYCxoLHgsTCk6MH1iKz1rO2IrPUw0KHYsblt2XSxXLEQpO2lmKGI+NTAwKWJyZWFrfX1lbHNlIERbV109ZWkobiksYis9RFtXXS5sZW5ndGg7ZWxzZSBEW1ddPWVpKG4pLGIrPURbV10ubGVuZ3RoO3JldHVybiBifTsKTDQ9ZnVuY3Rpb24obixXLEQsYil7RCs9YC4ke259YDtuPWVpKFcpO2JbRF09bjtyZXR1cm4gRC5sZW5ndGgrbi5sZW5ndGh9OwplaT1mdW5jdGlvbihuKXt0cnl7cmV0dXJuKHR5cGVvZiBuPT09InN0cmluZyI/bjpTdHJpbmcoSlNPTi5zdHJpbmdpZnkobikpKS5zdWJzdHIoMCw1MDApfWNhdGNoKFcpe3JldHVybmB1bmFibGUgdG8gc2VyaWFsaXplICR7dHlwZW9mIG59ICgke1cubWVzc2FnZX0pYH19OwpXTlU9ZnVuY3Rpb24obixXPXt9KXtpZihuPW4uelope2xldCBEPW4uSngsYj1uLmQ2O249W1siY29tcG9uZW50U3RhY2siLG4ubUldLFsid2l6VGFnTmFtZSIsbi50YWdOYW1lXSxbIndpek93bmVyVHJhY2UiLG4uRHU/LmpvaW4oIiA+ICIpXSxbImVycm9yU2V2ZXJpdHkiLEQ/LnRvU3RyaW5nKCldLFsid2l6RmVhdHVyZUZsYWdzIixiP09iamVjdC5lbnRyaWVzKGIpLmpvaW4oIlxuIik6dm9pZCAwXV07Zm9yKGxldCBbdixrXW9mIG4pbj1rLG4hPT12b2lkIDAmJihXW3ZdPW4pfXJldHVybiBXfTsKZy5xZz1mdW5jdGlvbihuKXtnLlhqKG4pfTsKZy5HcT1mdW5jdGlvbihuKXtnLlhqKG4sIldBUk5JTkciKX07CmcuWGo9ZnVuY3Rpb24obixXPSJFUlJPUiIpe3ZhciBEPXt9O0QubmFtZT1nLkFyKCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsMSk7RC52ZXJzaW9uPWcuQXIoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9WRVJTSU9OIik7REh0KG4sRCxXKX07CkRIdD1mdW5jdGlvbihuLFcsRD0iRVJST1IiKXtpZihuKXtuLmhhc093blByb3BlcnR5KCJsZXZlbCIpJiZuLmxldmVsJiYoRD1uLmxldmVsKTtpZihnLmwoIndpel9lbmFibGVfbWV0YWRhdGFfZXh0cmFjdGlvbl9raWxsc3dpdGNoIikpe3ZhciBiPVc7aWYoIWI/LmNvbXBvbmVudFN0YWNrKXt2YXIgdj1uLnpaPy5tSTt2JiYoYnx8KGI9e30pLGIuY29tcG9uZW50U3RhY2s9dil9Vz1ifHxXfWVsc2UgVz1XTlUobixXKSxiPW4uelo/Lkp4LGIhPT12b2lkIDAmJkQhPT0iSUdOT1JFRCImJihEPWI+PTM/IkVSUk9SIjoiV0FSTklORyIpO2lmKGcubCgiY29uc29sZV9sb2dfanNfZXhjZXB0aW9ucyIpfHxbInRlc3QiLCJkZXYiLCJhdXRvcHVzaCIsInN0YWdpbmciXS5pbmNsdWRlcyhnLkFyKCJTRVJWRVJfVkVSU0lPTiIpKSliPVtdLGIucHVzaChgTmFtZTogJHtuLm5hbWV9YCksYi5wdXNoKGBNZXNzYWdlOiAke24ubWVzc2FnZX1gKSxuLmhhc093blByb3BlcnR5KCJwYXJhbXMiKSYmYi5wdXNoKGBFcnJvciBQYXJhbXM6ICR7SlNPTi5zdHJpbmdpZnkobi5wYXJhbXMpfWApLApuLmhhc093blByb3BlcnR5KCJhcmdzIikmJmIucHVzaChgRXJyb3IgYXJnczogJHtKU09OLnN0cmluZ2lmeShuLmFyZ3MpfWApLGIucHVzaChgRmlsZSBuYW1lOiAke24uZmlsZU5hbWV9YCksYi5wdXNoKGBTdGFja3RyYWNlOiAke24uc3RhY2t9YCksYj1iLmpvaW4oIlxuIiksd2luZG93LmNvbnNvbGUubG9nKGIsbik7aWYoISh0UD49NSkpe2I9W107Zm9yKGsgb2YgYm4yKXRyeXtrKCkmJmIucHVzaChrKCkpfWNhdGNoKEEpe312YXIgaz1iO2s9Wy4uLnY5MiwuLi5rXTt2YXIgaD1yaWIobik7Yj1oLm1lc3NhZ2V8fCJVbmtub3duIEVycm9yIjt2PWgubmFtZXx8IlVua25vd25FcnJvciI7dmFyIHg9aC5zdGFja3x8bi5TdHx8Ik5vdCBhdmFpbGFibGUiO2lmKHguc3RhcnRzV2l0aChgJHt2fTogJHtifWApKXt2YXIgTD14LnNwbGl0KCJcbiIpO0wuc2hpZnQoKTt4PUwuam9pbigiXG4iKX1MPWgubGluZU51bWJlcnx8Ik5vdCBhdmFpbGFibGUiO2g9aC5maWxlTmFtZXx8Ik5vdCBhdmFpbGFibGUiOwpsZXQgSD0wO2lmKG4uaGFzT3duUHJvcGVydHkoImFyZ3MiKSYmbi5hcmdzJiZuLmFyZ3MubGVuZ3RoKWZvcih2YXIgZT0wO2U8bi5hcmdzLmxlbmd0aCYmIShIPWdLKG4uYXJnc1tlXSxgcGFyYW1zLiR7ZX1gLFcsSCksSD49NTAwKTtlKyspO2Vsc2UgaWYobi5oYXNPd25Qcm9wZXJ0eSgicGFyYW1zIikmJm4ucGFyYW1zKXtsZXQgQT1uLnBhcmFtcztpZih0eXBlb2Ygbi5wYXJhbXM9PT0ib2JqZWN0Iilmb3IoZSBpbiBBKXtpZighQVtlXSljb250aW51ZTtsZXQgeT1gcGFyYW1zLiR7ZX1gLFQ9ZWkoQVtlXSk7V1t5XT1UO0grPXkubGVuZ3RoK1QubGVuZ3RoO2lmKEg+NTAwKWJyZWFrfWVsc2UgVy5wYXJhbXM9ZWkoQSl9aWYoay5sZW5ndGgpZm9yKGU9MDtlPGsubGVuZ3RoJiYhKEg9Z0soa1tlXSxgcGFyYW1zLmNvbnRleHQuJHtlfWAsVyxIKSxIPj01MDApO2UrKyk7bmF2aWdhdG9yLnZlbmRvciYmIVcuaGFzT3duUHJvcGVydHkoInZlbmRvciIpJiYoV1siZGV2aWNlLnZlbmRvciJdPQpuYXZpZ2F0b3IudmVuZG9yKTtlPXttZXNzYWdlOmIsbmFtZTp2LGxpbmVOdW1iZXI6TCxmaWxlTmFtZTpoLHN0YWNrOngscGFyYW1zOlcsc2FtcGxlV2VpZ2h0OjF9O1c9TnVtYmVyKG4uY29sdW1uTnVtYmVyKTtpc05hTihXKXx8KGUubGluZU51bWJlcj1gJHtlLmxpbmVOdW1iZXJ9OiR7V31gKTtpZihuLmxldmVsPT09IklHTk9SRUQiKXZhciBHPTA7ZWxzZSBhOntuPWhQKCk7Zm9yKEcgb2Ygbi5OOSlpZihlLm1lc3NhZ2UmJmUubWVzc2FnZS5tYXRjaChHLktSKSl7Rz1HLndlaWdodDticmVhayBhfWZvcih2YXIgciBvZiBuLmtvKWlmKHIuY2FsbGJhY2soZSkpe0c9ci53ZWlnaHQ7YnJlYWsgYX1HPTF9ZS5zYW1wbGVXZWlnaHQ9RztHPWU7Zm9yKHZhciBOIG9mIGskYil7aWYoIU4uWXpbRy5uYW1lXSljb250aW51ZTtyPU4uWXpbRy5uYW1lXTtmb3IobGV0IEEgb2Ygcil7cj1HLm1lc3NhZ2UubWF0Y2goQS53Yik7aWYoIXIpY29udGludWU7Ry5wYXJhbXNbInBhcmFtcy5lcnJvci5vcmlnaW5hbCJdPQpyWzBdO249QS5ncm91cHM7ZT17fTtmb3IoVz0wO1c8bi5sZW5ndGg7VysrKWVbbltXXV09cltXKzFdLEcucGFyYW1zW2BwYXJhbXMuZXJyb3IuJHtuW1ddfWBdPXJbVysxXTtHLm1lc3NhZ2U9Ti5HMShlKTticmVha319Ry5wYXJhbXN8fChHLnBhcmFtcz17fSk7Tj1oUCgpO0cucGFyYW1zWyJwYXJhbXMuZXJyb3JTZXJ2aWNlU2lnbmF0dXJlIl09YG1zZz0ke04uTjkubGVuZ3RofSZjYj0ke04ua28ubGVuZ3RofWA7Ry5wYXJhbXNbInBhcmFtcy5zZXJ2aWNlV29ya2VyIl09ImZhbHNlIjtnLnFpLmRvY3VtZW50JiZnLnFpLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwmJihHLnBhcmFtc1sicGFyYW1zLmZzY3JpcHRzIl09U3RyaW5nKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdDpub3QoW25vbmNlXSkiKS5sZW5ndGgpKTsobmV3ICRCKHJLLCJzYW1wbGUiKSkuY29uc3RydWN0b3IhPT0kQiYmKEcucGFyYW1zWyJwYXJhbXMuZmNvbnN0Il09InRydWUiKTt3aW5kb3cueXRlcnImJgp0eXBlb2Ygd2luZG93Lnl0ZXJyPT09ImZ1bmN0aW9uIiYmd2luZG93Lnl0ZXJyKEcpO0cuc2FtcGxlV2VpZ2h0PT09MHx8SVUuaGFzKEcubWVzc2FnZSl8fGhUUyhHLEQpfX19OwpoVFM9ZnVuY3Rpb24obixXPSJFUlJPUiIpe2lmKFc9PT0iRVJST1IiKXtTaS5XSigiaGFuZGxlRXJyb3IiLG4pO2lmKGcubCgicmVjb3JkX2FwcF9jcmFzaGVkX3dlYiIpJiZBUD09PTAmJm4uc2FtcGxlV2VpZ2h0PT09MSl7QVArKzt2YXIgRD17YXBwQ3Jhc2hUeXBlOiJBUFBfQ1JBU0hfVFlQRV9CUkVBS1BBRCJ9O2cubCgicmVwb3J0X2NsaWVudF9lcnJvcl93aXRoX2FwcF9jcmFzaF9rcyIpfHwoRC5zeXN0ZW1IZWFsdGg9e2NyYXNoRGF0YTp7Y2xpZW50RXJyb3I6e2xvZ01lc3NhZ2U6e21lc3NhZ2U6bi5tZXNzYWdlfX19fSk7Zy56VSgiYXBwQ3Jhc2hlZCIsRCl9eEhNKyt9ZWxzZSBXPT09IldBUk5JTkciJiZTaS5XSigiaGFuZGxlV2FybmluZyIsbik7aWYoZy5sKCJrZXZsYXJfZ2VsX2Vycm9yX3JvdXRpbmciKSl7RD17fTtiOntmb3IoYiBvZiBMTkMpaWYoZy51YihiLnRvTG93ZXJDYXNlKCkpKXt2YXIgYj0hMDticmVhayBifWI9ITF9aWYoYilEPXZvaWQgMDtlbHNle3ZhciB2PQp7c3RhY2tUcmFjZTpuLnN0YWNrfTtuLmZpbGVOYW1lJiYodi5maWxlbmFtZT1uLmZpbGVOYW1lKTtiPW4ubGluZU51bWJlciYmbi5saW5lTnVtYmVyLnNwbGl0P24ubGluZU51bWJlci5zcGxpdCgiOiIpOltdO2IubGVuZ3RoIT09MCYmKGIubGVuZ3RoIT09MXx8aXNOYU4oTnVtYmVyKGJbMF0pKT9iLmxlbmd0aCE9PTJ8fGlzTmFOKE51bWJlcihiWzBdKSl8fGlzTmFOKE51bWJlcihiWzFdKSl8fCh2LmxpbmVOdW1iZXI9TnVtYmVyKGJbMF0pLHYuY29sdW1uTnVtYmVyPU51bWJlcihiWzFdKSk6di5saW5lTnVtYmVyPU51bWJlcihiWzBdKSk7Yj17bGV2ZWw6IkVSUk9SX0xFVkVMX1VOS05PV04iLG1lc3NhZ2U6bi5tZXNzYWdlLGVycm9yQ2xhc3NOYW1lOm4ubmFtZSxzYW1wbGVXZWlnaHQ6bi5zYW1wbGVXZWlnaHR9O1c9PT0iRVJST1IiP2IubGV2ZWw9IkVSUk9SX0xFVkVMX0VSUk9SIjpXPT09IldBUk5JTkciJiYoYi5sZXZlbD0iRVJST1JfTEVWRUxfV0FSTk5JTkciKTt2PXtpc09iZnVzY2F0ZWQ6ITAsCmJyb3dzZXJTdGFja0luZm86dn07RC5wYWdlVXJsPXdpbmRvdy5sb2NhdGlvbi5ocmVmO0Qua3ZQYWlycz1bXTtnLkFyKCJGRVhQX0VYUEVSSU1FTlRTIikmJihELmV4cGVyaW1lbnRJZHM9Zy5BcigiRkVYUF9FWFBFUklNRU5UUyIpKTt2YXIgaz1nLkFyKCJMQVRFU1RfRUNBVENIRVJfU0VSVklDRV9UUkFDS0lOR19QQVJBTVMiKTtpZighbXkoIndlYl9kaXNhYmxlX2dlbF9zdHBfZWNhdGNoZXJfa2lsbHN3aXRjaCIpJiZrKWZvcih2YXIgaCBvZiBPYmplY3Qua2V5cyhrKSlELmt2UGFpcnMucHVzaCh7a2V5OmgsdmFsdWU6U3RyaW5nKGtbaF0pfSk7aWYoaD1uLnBhcmFtcylmb3IodmFyIHggb2YgT2JqZWN0LmtleXMoaCkpRC5rdlBhaXJzLnB1c2goe2tleTpgY2xpZW50LiR7eH1gLHZhbHVlOlN0cmluZyhoW3hdKX0pO2lmKHg9bi5wYXJhbXM/LnNlc3Npb25SZXBsYXlJZClELnNlc3Npb25SZXBsYXlJZD1TdHJpbmcoeCk7eD1nLkFyKCJTRVJWRVJfTkFNRSIpO2g9Zy5BcigiU0VSVkVSX1ZFUlNJT04iKTsKeCYmaCYmKEQua3ZQYWlycy5wdXNoKHtrZXk6InNlcnZlci5uYW1lIix2YWx1ZTp4fSksRC5rdlBhaXJzLnB1c2goe2tleToic2VydmVyLnZlcnNpb24iLHZhbHVlOmh9KSk7KHg9Zy5BcigiUExBWUVSX0NMSUVOVF9WRVJTSU9OIikpJiZELmt2UGFpcnMucHVzaCh7a2V5OiJjbGllbnQucGxheWVyLnZlcnNpb24iLHZhbHVlOnh9KTtEPXtlcnJvck1ldGFkYXRhOkQsc3RhY2tUcmFjZTp2LGxvZ01lc3NhZ2U6Yn19aWYoRCYmKGcuelUoImNsaWVudEVycm9yIixEKSxXPT09IkVSUk9SInx8Zy5sKCJlcnJvcnNfZmx1c2hfZ2VsX2Fsd2F5c19raWxsc3dpdGNoIikpKWE6e2lmKGcubCgid2ViX2ZwX3ZpYV9qc3BiIikpe0Q9bTE7bTE9W107aWYoRClmb3IodmFyIEwgb2YgRCl1UihMLnBheWxvYWROYW1lLEwucGF5bG9hZCxnLmQ0LEwub3B0aW9ucyk7b3YoITApO2lmKCFnLmwoIndlYl9mcF92aWFfanNwYl9hbmRfanNvbiIpKWJyZWFrIGF9b3YoKX19aWYoIWcubCgic3VwcHJlc3NfZXJyb3JfMjA0X2xvZ2dpbmciKSl7TD0Kbi5wYXJhbXN8fHt9O1c9e3VybFBhcmFtczp7YToibG9nZXJyb3IiLHQ6ImpzZXJyb3IiLHR5cGU6bi5uYW1lLG1zZzpuLm1lc3NhZ2Uuc3Vic3RyKDAsMjUwKSxsaW5lOm4ubGluZU51bWJlcixsZXZlbDpXLCJjbGllbnQubmFtZSI6TC5uYW1lfSxwb3N0UGFyYW1zOnt1cmw6Zy5BcigiUEFHRV9OQU1FIix3aW5kb3cubG9jYXRpb24uaHJlZiksZmlsZTpuLmZpbGVOYW1lfSxtZXRob2Q6IlBPU1QifTtMLnZlcnNpb24mJihXWyJjbGllbnQudmVyc2lvbiJdPUwudmVyc2lvbik7aWYoVy5wb3N0UGFyYW1zKXtuLnN0YWNrJiYoVy5wb3N0UGFyYW1zLnN0YWNrPW4uc3RhY2spO2Zvcih2YXIgZSBvZiBPYmplY3Qua2V5cyhMKSlXLnBvc3RQYXJhbXNbYGNsaWVudC4ke2V9YF09TFtlXTtpZihlPWcuQXIoIkxBVEVTVF9FQ0FUQ0hFUl9TRVJWSUNFX1RSQUNLSU5HX1BBUkFNUyIpKWZvcih2YXIgRyBvZiBPYmplY3Qua2V5cyhlKSlXLnBvc3RQYXJhbXNbR109ZVtHXTsoRz1nLkFyKCJMQVZBX1ZFUlNJT04iKSkmJgooVy5wb3N0UGFyYW1zWyJsYXZhLnZlcnNpb24iXT1HKTtHPWcuQXIoIlNFUlZFUl9OQU1FIik7ZT1nLkFyKCJTRVJWRVJfVkVSU0lPTiIpO0cmJmUmJihXLnBvc3RQYXJhbXNbInNlcnZlci5uYW1lIl09RyxXLnBvc3RQYXJhbXNbInNlcnZlci52ZXJzaW9uIl09ZSk7KEc9Zy5BcigiUExBWUVSX0NMSUVOVF9WRVJTSU9OIikpJiYoVy5wb3N0UGFyYW1zWyJjbGllbnQucGxheWVyLnZlcnNpb24iXT1HKX1nLmVkKGAke2cuQXIoIkVDQVRDSEVSX1JFUE9SVF9IT1NUIiwiIil9L2Vycm9yXzIwNGAsVyl9dHJ5e0lVLmFkZChuLm1lc3NhZ2UpfWNhdGNoKHIpe310UCsrfTsKSzQ9ZnVuY3Rpb24obiwuLi5XKXtuLmFyZ3N8fChuLmFyZ3M9W10pO0FycmF5LmlzQXJyYXkobi5hcmdzKSYmbi5hcmdzLnB1c2goLi4uVyl9OwpPYT1mdW5jdGlvbihuKXt2YXIgVz0wO2ZvcihsZXQgRD0wO0Q8bi5sZW5ndGg7RCsrKVc9VyozMStuLmNoYXJDb2RlQXQoRCksRDxuLmxlbmd0aC0xJiYoVyU9MHg4MDAwMDAwMDAwMDApO3JldHVybiBXJTFFNX07Cmc5aT1mdW5jdGlvbihuLFcsRCxiLHYsayxoLHgsTCl7dmFyIGU9ZVRoKCk7az1uZXcgbFIoe3ZlVHlwZTpXLHlvdXR1YmVEYXRhOmssanNwYllvdXR1YmVEYXRhOnZvaWQgMH0pO0w9UGEoe2F1dG9tYXRlZExvZ0V2ZW50U291cmNlOkx9LGUpO3YmJihMLmN0dEF1dGhJbmZvPXYpO3Y9e2NzbjplLHBhZ2VWZTprLmdldEFzSnNvbigpfTtnLmwoImV4cGVjdGF0aW9uX2xvZ2dpbmciKSYmeCYmeC5zY3JlZW5DcmVhdGVkTG9nZ2luZ0V4cGVjdGF0aW9ucyYmKHYuc2NyZWVuQ3JlYXRlZExvZ2dpbmdFeHBlY3RhdGlvbnM9eC5zY3JlZW5DcmVhdGVkTG9nZ2luZ0V4cGVjdGF0aW9ucyk7RCYmRC52aXN1YWxFbGVtZW50Pyh2LmltcGxpY2l0R2VzdHVyZT17cGFyZW50Q3NuOkQuY2xpZW50U2NyZWVuTm9uY2UsZ2VzdHVyZWRWZTpELnZpc3VhbEVsZW1lbnQuZ2V0QXNKc29uKCl9LGgmJih2LmltcGxpY2l0R2VzdHVyZS5nZXN0dXJlVHlwZT1oKSk6RCYmZy5HcShuZXcgZy5ReCgibmV3U2NyZWVuKCkgcGFyZW50IGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhIFZFIC0gcm9vdFZlIiwKVykpO2ImJih2LmNsb25lQ3NuPWIpO24/dVIoInNjcmVlbkNyZWF0ZWQiLHYsbixMKTpnLnpVKCJzY3JlZW5DcmVhdGVkIix2LEwpO2w5KFRvLG5ldyBacChlKSk7VWEuY2xlYXIoKTt5NS5jbGVhcigpO0VhLmNsZWFyKCk7cmV0dXJuIGV9Owp1Zz1mdW5jdGlvbihuLFcsRCxiLHY9ITEsaz17fSl7aWcobixXLEQsW2JdLHYsayl9OwppZz1mdW5jdGlvbihuLFcsRCxiLHY9ITEsaz17fSl7T2JqZWN0LmFzc2lnbihrLFBhKHtjdHRBdXRoSW5mbzpRNChXKXx8dm9pZCAwfSxXKSk7Zm9yKGxldCB4IG9mIGIpe3ZhciBoPXguZ2V0QXNKc29uKCk7KGcuR0YoaCl8fCFoLnRyYWNraW5nUGFyYW1zJiYhaC52ZVR5cGUpJiZnLkdxKEVycm9yKCJDaGlsZCBWRSBsb2dnZWQgd2l0aCBubyBkYXRhIikpO2lmKGcubCgibm9fY2xpZW50X3ZlX2F0dGFjaF91bmxlc3Nfc2hvd24iKSl7bGV0IEw9b1UoeCxXKTtpZihoLnZlVHlwZSYmIXk1LmhhcyhMKSYmIUVhLmhhcyhMKSYmIXYpe2lmKCFnLmwoImlsX2F0dGFjaF9jYWNoZV9saW1pdCIpfHxVYS5zaXplPDFFMyl7VWEuc2V0KEwsW24sVyxELHhdKTtyZXR1cm59Zy5sKCJpbF9hdHRhY2hfY2FjaGVfbGltaXQiKSYmVWEuc2l6ZT4xRTMmJmcuR3EobmV3IGcuUXgoIklMIEF0dGFjaCBjYWNoZSBleGNlZWRlZCBsaW1pdCIpKX1oPW9VKEQsVyk7VWEuaGFzKGgpP2RLKEQsVyk6RWEuc2V0KGgsCiEwKX19Yj1iLmZpbHRlcih4PT57eC5jc24hPT1XPyh4LmNzbj1XLHg9ITApOng9ITE7cmV0dXJuIHh9KTsKRD17Y3NuOlcscGFyZW50VmU6RC5nZXRBc0pzb24oKSxjaGlsZFZlczpnLmlfKGIseD0+eC5nZXRBc0pzb24oKSl9OwpXPT09IlVOREVGSU5FRF9DU04iP3pxKCJ2aXN1YWxFbGVtZW50QXR0YWNoZWQiLGssRCk6bj91UigidmlzdWFsRWxlbWVudEF0dGFjaGVkIixELG4sayk6Zy56VSgidmlzdWFsRWxlbWVudEF0dGFjaGVkIixELGspfTsKWFdqPWZ1bmN0aW9uKG4sVyxELGIsdixrLGgpe2xnKEQsVyk7Yj1QYSh7Y3R0QXV0aEluZm86UTQoVyl8fHZvaWQgMCxhdXRvbWF0ZWRMb2dFdmVudFNvdXJjZTpofSxXKTtEPXtjc246Vyx2ZTpELmdldEFzSnNvbigpLGV2ZW50VHlwZToxfTt2JiYoRC5jbGllbnREYXRhPXYpO1c9PT0iVU5ERUZJTkVEX0NTTiI/enEoInZpc3VhbEVsZW1lbnRTaG93biIsYixEKTpuP3VSKCJ2aXN1YWxFbGVtZW50U2hvd24iLEQsbixiKTpnLnpVKCJ2aXN1YWxFbGVtZW50U2hvd24iLEQsYil9OwpUcT1mdW5jdGlvbihuLFcsRCxiPSExKXt2YXIgdj1iPzE2Ojg7Yj1QYSh7Y3R0QXV0aEluZm86UTQoVyl8fHZvaWQgMCxlbmRPZlNlcXVlbmNlOmIsYXV0b21hdGVkTG9nRXZlbnRTb3VyY2U6dm9pZCAwfSxXKTtEPXtjc246Vyx2ZTpELmdldEFzSnNvbigpLGV2ZW50VHlwZTp2fTtXPT09IlVOREVGSU5FRF9DU04iP3pxKCJ2aXN1YWxFbGVtZW50SGlkZGVuIixiLEQpOm4/dVIoInZpc3VhbEVsZW1lbnRIaWRkZW4iLEQsbixiKTpnLnpVKCJ2aXN1YWxFbGVtZW50SGlkZGVuIixELGIpfTsKcVZaPWZ1bmN0aW9uKG4sVyxELGIsdixrKXtqaShuLFcsRCxiLGspfTsKamk9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz12b2lkIDA7bGcoRCxXKTtrPWt8fCJJTlRFUkFDVElPTl9MT0dHSU5HX0dFU1RVUkVfVFlQRV9HRU5FUklDX0NMSUNLIjt2PVBhKHtjdHRBdXRoSW5mbzpRNChXKXx8dm9pZCAwLGF1dG9tYXRlZExvZ0V2ZW50U291cmNlOnZ9LFcpO0Q9e2NzbjpXLHZlOkQuZ2V0QXNKc29uKCksZ2VzdHVyZVR5cGU6a307YiYmKEQuY2xpZW50RGF0YT1iKTtXPT09IlVOREVGSU5FRF9DU04iP3pxKCJ2aXN1YWxFbGVtZW50R2VzdHVyZWQiLHYsRCk6bj91UigidmlzdWFsRWxlbWVudEdlc3R1cmVkIixELG4sdik6Zy56VSgidmlzdWFsRWxlbWVudEdlc3R1cmVkIixELHYpfTsKRyRqPWZ1bmN0aW9uKCl7dmFyIG49TWIoMTYpO3ZhciBXPVtdO2ZvcihsZXQgRD0wO0Q8bi5sZW5ndGg7RCsrKVcucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXyIuY2hhckF0KG5bRF0mNjMpKTtyZXR1cm4gVy5qb2luKCIiKX07CnpxPWZ1bmN0aW9uKG4sVyxEKXtDNC5wdXNoKHtwYXlsb2FkTmFtZTpuLHBheWxvYWQ6RCxwUDp2b2lkIDAsb3B0aW9uczpXfSk7QmF8fChCYT1GME0oKSl9OwpDNHc9ZnVuY3Rpb24obil7aWYoQzQpe2ZvcihsZXQgVyBvZiBDNClXLnBheWxvYWQmJihXLnBheWxvYWQuY3NuPW4uY3NuLGcuelUoVy5wYXlsb2FkTmFtZSxXLnBheWxvYWQsVy5vcHRpb25zKSk7QzQubGVuZ3RoPTB9QmE9MH07Cm9VPWZ1bmN0aW9uKG4sVyl7cmV0dXJuYCR7bi5nZXRBc0pzb24oKS52ZVR5cGV9JHtuLmdldEFzSnNvbigpLnZlQ291bnRlcn0ke1d9YH07CmxnPWZ1bmN0aW9uKG4sVyl7aWYoZy5sKCJub19jbGllbnRfdmVfYXR0YWNoX3VubGVzc19zaG93biIpKXt2YXIgRD1vVShuLFcpO3k1LnNldChELCEwKTtkSyhuLFcpfX07CmRLPWZ1bmN0aW9uKG4sVyl7bj1vVShuLFcpO1VhLmhhcyhuKSYmKFc9VWEuZ2V0KG4pfHxbXSx1ZyhXWzBdLFdbMV0sV1syXSxXWzNdLCEwKSxVYS5kZWxldGUobikpfTsKUGE9ZnVuY3Rpb24obixXKXtnLmwoImxvZ19zZXF1ZW5jZV9pbmZvX29uX2dlbF93ZWIiKSYmKG4uc2VxdWVuY2VHcm91cD1XKTtyZXR1cm4gbn07CkZqPWZ1bmN0aW9uKG4sVyxELGIpe1BWKFhXaikodm9pZCAwLG4sVyxELGIsdm9pZCAwKX07CnRFeD1mdW5jdGlvbihuLFcpe1BWKCgpPT57Zy55MihXLEQ9PntsZyhELG4pO3ZhciBiPVBhKHtjdHRBdXRoSW5mbzpRNChuKXx8dm9pZCAwLGF1dG9tYXRlZExvZ0V2ZW50U291cmNlOnZvaWQgMH0sbik7RD17Y3NuOm4sdmU6RC5nZXRBc0pzb24oKSxldmVudFR5cGU6NH07bj09PSJVTkRFRklORURfQ1NOIj96cSgidmlzdWFsRWxlbWVudFNob3duIixiLEQpOmcuelUoInZpc3VhbEVsZW1lbnRTaG93biIsRCxiKX0pfSkoKX07CiRIdD1mdW5jdGlvbihuLFcpe1BWKCgpPT57Zy55MihXLEQ9PntUcSh2b2lkIDAsbixEKX0pfSkoKX07CndLPWZ1bmN0aW9uKCl7dmFyIG49ITE7dHJ5e249ISF3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgic2Vzc2lvbl9sb2dpbmluZm8iKX1jYXRjaHtuPSEwfXJldHVybihnLkFyKCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJXRUIifHxnLkFyKCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJXRUJfQ1JFQVRPUiIpJiZufTsKTWc9ZnVuY3Rpb24oKXt0cnl7d2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oInN0aWNraW5lc3NfcmVsb2FkIik7d2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oInNlc3Npb25fbG9naW5pbmZvIik7Zy5TSCgiTE9HSU5fSU5GTyIsIiIpO3dpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJmcm9tX3N3aXRjaF9hY2NvdW50IiwiMSIpO3ZhciBuO2xldCBEPXJTaDtEfHwoRD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGVyc2lzdF9pZGVudGl0eSIpKTtpZihuPUQpe3ZhciBXPW4uc3JjPyhuZXcgVVJMKG4uc3JjKSkub3JpZ2luOiIqIjtuLmNvbnRlbnRXaW5kb3c/LnBvc3RNZXNzYWdlKHthY3Rpb246ImNsZWFyIn0sVyl9fWNhdGNoe319OwpnLlJVPWZ1bmN0aW9uKG4pe24mJihuLnN0YXJ0c1dpdGgoImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9BZGRTZXNzaW9uIik/TWcoKTpuLnN0YXJ0c1dpdGgoImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9TZXJ2aWNlTG9naW4iKT9NZygpOm4uc3RhcnRzV2l0aCgiaHR0cHM6Ly9teWFjY291bnQuZ29vZ2xlLmNvbSIpJiZscihuKS5KLmVuZHNXaXRoKCIveW91dHViZW9wdGlvbnMiKSYmTWcoKSk7aWYoZy5BcigiTE9HR0VEX0lOIiwhMCkmJndLKCkpe3ZhciBXPWcuQXIoIlZBTElEX1NFU1NJT05fVEVNUERBVEFfRE9NQUlOUyIsW10pO3ZhciBEPWcuSVAod2luZG93LmxvY2F0aW9uLmhyZWYpO0QmJlcucHVzaChEKTtEPWcuSVAobik7Zy5qaihXLEQpfHwhRCYmZy5qVShuLCIvIik/KFc9bVcobiksKFc9S3AoVykpPyhXPVdhKFcpLFc9KFc9Zy5TZChXKXx8bnVsbCk/Zy5pdyhXKTp7fSk6Vz1udWxsKTpXPW51bGw7Vz09bnVsbCYmKFc9e30pO0Q9Vzt2YXIgYj12b2lkIDA7CndLKCk/KGJ8fChiPWcuQXIoIkxPR0lOX0lORk8iKSksYj8oRC5zZXNzaW9uX2xvZ2luaW5mbz1iLEQ9ITApOkQ9ITEpOkQ9ITE7RCYmbjQobixXKX19OwpRNT1mdW5jdGlvbihuLFc9e30pe3ZhciBEPWcuQXIoIkVWRU5UX0lEIik7RCYmKFcuZWl8fChXLmVpPUQpKTtXJiZuNChuLFcpfTsKZy5jYT1mdW5jdGlvbihuLFcsRCxiLHY9ITEpe0QmJm40KG4sRCk7RD1nLnRGKG4sZy5HNCl8fGcuVjU7dmFyIGs9Z3ooRCk7biE9ayYmWkUoRXJyb3IoYFVuc2FmZSB3aW5kb3cub3BlbiBVUkw6ICR7bn1gKSk7bj1rO1c9V3x8c1QobikudG9TdHJpbmcoMzYpO3RyeXtpZih2KXJldHVybiB2PW4sdj1nLnFiKHYpLGcuUlUodiksSkYodixXLCJhdHRyaWJ1dGlvbnNyYyIpfWNhdGNoKGgpe090KGgpfWcuUlUobik7cmV0dXJuIEpGKEQsVyxiKX07Ck5lMj1mdW5jdGlvbigpe3ZhciBuPXdpbmRvdy5sb2NhdGlvbi5ocmVmO2lmKGcubCgia2V2bGFyX2Rpc2FibGVfdGhlbWVfcGFyYW0iKSlyZXR1cm4gbnVsbDtTMShuKTt0cnl7bGV0IFc9Zy5vRShuKS50aGVtZTtyZXR1cm4gc1lVLmdldChXKXx8bnVsbH1jYXRjaChXKXt9cmV0dXJuIG51bGx9OwphVT1mdW5jdGlvbihuLFcpe2lmKFcuZW5jcnlwdGVkVG9rZW5KYXJDb250ZW50cyYmKG4uTltXLmVuY3J5cHRlZFRva2VuSmFyQ29udGVudHNdPVcsdHlwZW9mIFcuZXhwaXJhdGlvblNlY29uZHM9PT0ic3RyaW5nIikpe2xldCBEPU51bWJlcihXLmV4cGlyYXRpb25TZWNvbmRzKTtzZXRUaW1lb3V0KCgpPT57ZGVsZXRlIG4uTltXLmVuY3J5cHRlZFRva2VuSmFyQ29udGVudHNdfSxEKjFFMyk7Cm4uSiYmSUsoIkNPTlNJU1RFTkNZIixXLmVuY3J5cHRlZFRva2VuSmFyQ29udGVudHMsRCx2b2lkIDAsITApfX07Cm5CPWZ1bmN0aW9uKG4pe3JldHVybiBuLmxvY2FsU3RvcmFnZT09PXZvaWQgMD9uZXcgdEkoInl0LWNsaWVudC1sb2NhdGlvbiIpOm4ubG9jYWxTdG9yYWdlfTsKZy52Yj1mdW5jdGlvbihuLFc9ITEsRD0hMSxiLHYpe3ZhciBrPWcuQXIoIklOTkVSVFVCRV9DT05URVhUIik7aWYoIWspcmV0dXJuIGcuWGooRXJyb3IoIkVycm9yOiBObyBJbm5lclR1YmVDb250ZXh0IHNoZWxsIHByb3ZpZGVkIGluIHl0Y29uZmlnLiIpKSx7fTtrPWcuTmMoayk7Zy5sKCJ3ZWJfbm9fdHJhY2tpbmdfcGFyYW1zX2luX3NoZWxsX2tpbGxzd2l0Y2giKXx8ZGVsZXRlIGsuY2xpY2tUcmFja2luZztrLmNsaWVudHx8KGsuY2xpZW50PXt9KTt2YXIgaD1rLmNsaWVudDtoLmNsaWVudE5hbWU9PT0iTVdFQiImJmguY2xpZW50Rm9ybUZhY3RvciE9PSJBVVRPTU9USVZFX0ZPUk1fRkFDVE9SIiYmKGguY2xpZW50Rm9ybUZhY3Rvcj1nLkFyKCJJU19UQUJMRVQiKT8iTEFSR0VfRk9STV9GQUNUT1IiOiJTTUFMTF9GT1JNX0ZBQ1RPUiIpO2guc2NyZWVuV2lkdGhQb2ludHM9d2luZG93LmlubmVyV2lkdGg7aC5zY3JlZW5IZWlnaHRQb2ludHM9d2luZG93LmlubmVySGVpZ2h0O2guc2NyZWVuUGl4ZWxEZW5zaXR5PQpNYXRoLnJvdW5kKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxKTtoLnNjcmVlbkRlbnNpdHlGbG9hdD13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTtoLnV0Y09mZnNldE1pbnV0ZXM9LU1hdGguZmxvb3IoKG5ldyBEYXRlKS5nZXRUaW1lem9uZU9mZnNldCgpKTt2YXIgeD1nLm85KCk7dmFyIEw9IlVTRVJfSU5URVJGQUNFX1RIRU1FX0xJR0hUIjt4LlFRKDE2NSk/TD0iVVNFUl9JTlRFUkZBQ0VfVEhFTUVfREFSSyI6eC5RUSgxNzQpP0w9IlVTRVJfSU5URVJGQUNFX1RIRU1FX0xJR0hUIjohZy5sKCJrZXZsYXJfbGVnYWN5X2Jyb3dzZXJzIikmJndpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lKSIpLm1hdGNoZXMmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcyYmKEw9IlVTRVJfSU5URVJGQUNFX1RIRU1FX0RBUksiKTt4PU5lMigpfHxMO2gudXNlckludGVyZmFjZVRoZW1lPQp4O2cubCgid2ViX3Byb3BhZ2F0ZV92aXNpYmlsaXR5X3RvX2FwcGxpY2F0aW9uX3N0YXRlIikmJmcucWkuZG9jdW1lbnQmJihoLmFwcGxpY2F0aW9uU3RhdGU9Zy5xaS5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT0iaGlkZGVuIj8iQkFDS0dST1VORCI6IkFDVElWRSIpO2lmKCFXKXtpZih4PUJCKCkpaC5jb25uZWN0aW9uVHlwZT14O2cubCgid2ViX2xvZ19lZmZlY3RpdmVfY29ubmVjdGlvbl90eXBlIikmJih4PXdKKCkpJiYoay5jbGllbnQuZWZmZWN0aXZlQ29ubmVjdGlvblR5cGU9eCl9Zy5sKCJ3ZWJfbG9nX21lbW9yeV90b3RhbF9rYnl0ZXMiKSYmZy5xaS5uYXZpZ2F0b3I/LmRldmljZU1lbW9yeSYmKGsuY2xpZW50Lm1lbW9yeVRvdGFsS2J5dGVzPWAke2cucWkubmF2aWdhdG9yPy5kZXZpY2VNZW1vcnkqMUU2fWApO1cmJmImJiFnLmwoIndlYl9pdF9jb250ZXh0X3NldF9vcmlnaW5hbF91cmxfa3MiKSYmKHg9YixMPWcucWkubG9jYXRpb24uaHJlZixMIGluc3RhbmNlb2YKZy5Vanx8KEw9bHIoTCkpLHggaW5zdGFuY2VvZiBnLlVqfHwoeD1scih4KSkseD1MLnJlc29sdmUoeCksaC5vcmlnaW5hbFVybD14LnRvU3RyaW5nKCkpO2lmKGcubCgid2ViX2djZl9oYXNoZXNfaW5uZXJ0dWJlIikpe3ZhciBlPUo3KCk7ZSYmKHg9ZS5jb2xkQ29uZmlnRGF0YSxMPWUuY29sZEhhc2hEYXRhLGU9ZS5ob3RIYXNoRGF0YSxrLmNsaWVudC5jb25maWdJbmZvPWsuY2xpZW50LmNvbmZpZ0luZm98fHt9LHgmJihrLmNsaWVudC5jb25maWdJbmZvLmNvbGRDb25maWdEYXRhPXgpLEwmJihrLmNsaWVudC5jb25maWdJbmZvLmNvbGRIYXNoRGF0YT1MKSxlJiYoay5jbGllbnQuY29uZmlnSW5mby5ob3RIYXNoRGF0YT1lKSl9eD1nLm9FKGcucWkubG9jYXRpb24uaHJlZik7IWcubCgid2ViX3BvcHVsYXRlX2ludGVybmFsX2dlb19raWxsc3dpdGNoIikmJnguaW50ZXJuYWxjb3VudHJ5Y29kZSYmKGguaW50ZXJuYWxHZW89eC5pbnRlcm5hbGNvdW50cnljb2RlKTshZy5sKCJ3ZWJfcG9wdWxhdGVfY2xpZW50X3NjcmVlbl9raWxsc3dpdGNoIikmJgp2JiYoaC5jbGllbnRTY3JlZW49dik7aC5jbGllbnROYW1lPT09Ik1XRUIifHxoLmNsaWVudE5hbWU9PT0iV0VCIj8oaC5tYWluQXBwV2ViSW5mb3x8KGgubWFpbkFwcFdlYkluZm89e30pLGgubWFpbkFwcFdlYkluZm8uZ3JhZnRVcmw9Ynx8Zy5xaS5sb2NhdGlvbi5ocmVmLGcubCgia2V2bGFyX3dvZmZsZSIpJiZXYi5pbnN0YW5jZSYmKGI9V2IuaW5zdGFuY2UsaC5tYWluQXBwV2ViSW5mby5wd2FJbnN0YWxsYWJpbGl0eVN0YXR1cz0hYi5OJiZiLko/IlBXQV9JTlNUQUxMQUJJTElUWV9TVEFUVVNfQ0FOX0JFX0lOU1RBTExFRCI6IlBXQV9JTlNUQUxMQUJJTElUWV9TVEFUVVNfVU5LTk9XTiIpLGgubWFpbkFwcFdlYkluZm8ud2ViRGlzcGxheU1vZGU9eXgoKSxoLm1haW5BcHBXZWJJbmZvLmlzV2ViTmF0aXZlU2hhcmVBdmFpbGFibGU9bmF2aWdhdG9yJiZuYXZpZ2F0b3Iuc2hhcmUhPT12b2lkIDApOmguY2xpZW50TmFtZT09PSJUVkhUTUw1IiYmKCFnLmwoIndlYl9scl9hcHBfcXVhbGl0eV9raWxsc3dpdGNoIikmJgooYj1nLkFyKCJMSVZJTkdfUk9PTV9BUFBfUVVBTElUWSIpKSYmKGgudHZBcHBJbmZvPU9iamVjdC5hc3NpZ24oaC50dkFwcEluZm98fHt9LHthcHBRdWFsaXR5OmJ9KSksYj1nLkFyKCJMSVZJTkdfUk9PTV9DRVJUSUZJQ0FUSU9OX1NDT1BFIikpJiYoaC50dkFwcEluZm89T2JqZWN0LmFzc2lnbihoLnR2QXBwSW5mb3x8e30se2NlcnRpZmljYXRpb25TY29wZTpifSkpO2lmKCFnLmwoIndlYl9wb3B1bGF0ZV90aW1lX3pvbmVfaXRjX2tpbGxzd2l0Y2giKSl7YTp7aWYodHlwZW9mIEludGwhPT0idW5kZWZpbmVkIil0cnl7dmFyIEc9KG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZTticmVhayBhfWNhdGNoe31HPXZvaWQgMH1HJiYoaC50aW1lWm9uZT1HKX0oRz1rVCgpKT9oLmV4cGVyaW1lbnRzVG9rZW49RzpkZWxldGUgaC5leHBlcmltZW50c1Rva2VuO2g9aHkoKTtETS5pbnN0YW5jZXx8KERNLmluc3RhbmNlPW5ldyBETSk7Rz1oSyhETS5pbnN0YW5jZS5OKTsKay5yZXF1ZXN0PXsuLi5rLnJlcXVlc3QsaW50ZXJuYWxFeHBlcmltZW50RmxhZ3M6aCxjb25zaXN0ZW5jeVRva2VuSmFyczpHfTshZy5sKCJ3ZWJfcHJlcXVlc3RfY29udGV4dF9raWxsc3dpdGNoIikmJihoPWcuQXIoIklOTkVSVFVCRV9DT05URVhUX1BSRVFVRVNUX0NPTlRFWFQiKSkmJihrLnJlcXVlc3QuZXh0ZXJuYWxQcmVxdWVzdENvbnRleHQ9aCk7Rz1nLm85KCk7aD1HLlFRKDU4KTtHPUcuZ2V0KCJnc21sIiwiIik7ay51c2VyPXsuLi5rLnVzZXJ9O2gmJihrLnVzZXIuZW5hYmxlU2FmZXR5TW9kZT1oKTtHJiYoay51c2VyLmxvY2tlZFNhZmV0eU1vZGU9ITApO2cubCgid2FybV9vcF9jc25fY2xlYW51cCIpP0QmJihXPWcuUnYoKSkmJihrLmNsaWVudFNjcmVlbk5vbmNlPVcpOiFXJiYoVz1nLlJ2KCkpJiYoay5jbGllbnRTY3JlZW5Ob25jZT1XKTtuJiYoay5jbGlja1RyYWNraW5nPXtjbGlja1RyYWNraW5nUGFyYW1zOm59KTtpZihuPWcucnIoInl0Lm1keC5yZW1vdGUucmVtb3RlQ2xpZW50XyIpKWsucmVtb3RlQ2xpZW50PQpuO2IkLmdldEluc3RhbmNlKCkuc2V0TG9jYXRpb25PbklubmVyVHViZUNvbnRleHQoayk7dHJ5e3ZhciByPWcuUUYoKSxOPXIuYmlkO2RlbGV0ZSByLmJpZDtrLmFkU2lnbmFsc0luZm89e3BhcmFtczpbXSxiaWQ6Tn07Zm9yKGxldCBbSCxBXW9mIE9iamVjdC5lbnRyaWVzKHIpKXI9SCxOPUEsay5hZFNpZ25hbHNJbmZvLnBhcmFtcz8ucHVzaCh7a2V5OnIsdmFsdWU6YCR7Tn1gfSk7aWYoay5jbGllbnQ/LmNsaWVudE5hbWU9PT0iVFZIVE1MNSJ8fGsuY2xpZW50Py5jbGllbnROYW1lPT09IlRWSFRNTDVfVU5QTFVHR0VEIil7bGV0IEg9Zy5BcigiSU5ORVJUVUJFX0NPTlRFWFQiKTtILmFkU2lnbmFsc0luZm8mJihrLmFkU2lnbmFsc0luZm8uYWR2ZXJ0aXNpbmdJZD1ILmFkU2lnbmFsc0luZm8uYWR2ZXJ0aXNpbmdJZCxrLmFkU2lnbmFsc0luZm8uYWR2ZXJ0aXNpbmdJZFNpZ25hbFR5cGU9IkRFVklDRV9JRF9UWVBFX0NPTk5FQ1RFRF9UVl9JRkEiLGsuYWRTaWduYWxzSW5mby5saW1pdEFkVHJhY2tpbmc9CkguYWRTaWduYWxzSW5mby5saW1pdEFkVHJhY2tpbmcsSC5hZFNpZ25hbHNJbmZvLmF0VHJhY2tpbmdNYW5hZ2VyQXV0aG9yaXphdGlvblN0YXR1cyE9PXZvaWQgMCYmKGsuYWRTaWduYWxzSW5mby5hdFRyYWNraW5nTWFuYWdlckF1dGhvcml6YXRpb25TdGF0dXM9SC5hZFNpZ25hbHNJbmZvLmF0VHJhY2tpbmdNYW5hZ2VyQXV0aG9yaXphdGlvblN0YXR1cykpfX1jYXRjaChIKXtnLlhqKEgpfXJldHVybiBrfTsKa1Y9ZnVuY3Rpb24obil7dmFyIFc9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn07Zy5BcigiRU9NX1ZJU0lUT1JfREFUQSIpP1dbIlgtR29vZy1FT00tVmlzaXRvci1JZCJdPWcuQXIoIkVPTV9WSVNJVE9SX0RBVEEiKTpnLkFyKCJWSVNJVE9SX0RBVEEiKSYmKFdbIlgtR29vZy1WaXNpdG9yLUlkIl09Zy5BcigiVklTSVRPUl9EQVRBIikpO1dbIlgtWW91dHViZS1Cb290c3RyYXAtTG9nZ2VkLUluIl09Zy5BcigiTE9HR0VEX0lOIiwhMSk7Zy5BcigiREVCVUdfU0VUVElOR1NfTUVUQURBVEEiKSYmKFdbIlgtRGVidWctU2V0dGluZ3MtTWV0YWRhdGEiXT1nLkFyKCJERUJVR19TRVRUSU5HU19NRVRBREFUQSIpKTtuIT09ImNvcnMiJiYoKG49Zy5BcigiSU5ORVJUVUJFX0NPTlRFWFRfQ0xJRU5UX05BTUUiKSkmJihXWyJYLVlvdXR1YmUtQ2xpZW50LU5hbWUiXT1uKSwobj1nLkFyKCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfVkVSU0lPTiIpKSYmKFdbIlgtWW91dHViZS1DbGllbnQtVmVyc2lvbiJdPQpuKSwobj1nLkFyKCJDSFJPTUVfQ09OTkVDVEVEX0hFQURFUiIpKSYmKFdbIlgtWW91dHViZS1DaHJvbWUtQ29ubmVjdGVkIl09biksKG49Zy5BcigiRE9NQUlOX0FETUlOX1NUQVRFIikpJiYoV1siWC1Zb3V0dWJlLURvbWFpbi1BZG1pbi1TdGF0ZSJdPW4pLChuPWIkLmdldEluc3RhbmNlKCkuZ2V0WEdlb0hlYWRlcj8uKCkpJiYoV1siWC1HZW8iXT1uKSk7KG49Zy5BcigiU0VSSUFMSVpFRF9MQVZBX0RFVklDRV9DT05URVhUIikpJiYoV1siWC1Zb3VUdWJlLUxhdmEtRGV2aWNlLUNvbnRleHQiXT1uKTtyZXR1cm4gV307CmhtPWZ1bmN0aW9uKG4pe3JldHVybigpPT5uZXcgbn07CnBXTT1mdW5jdGlvbihuKXtpZihuLmxlbmd0aD09PTEpcmV0dXJuIG5bMF07dmFyIFc9eFYuVU5LTk9XTl9JTlRFUkZBQ0U7aWYoVyl7Vz1uZXcgUmVnRXhwKFcpO2Zvcih2YXIgRCBvZiBuKWlmKFcuZXhlYyhEKSlyZXR1cm4gRH12YXIgYj1bXTtPYmplY3QuZW50cmllcyh4VikuZm9yRWFjaCgoW3Ysa10pPT57IlVOS05PV05fSU5URVJGQUNFIiE9PXYmJmIucHVzaChrKX0pOwpEPW5ldyBSZWdFeHAoYi5qb2luKCJ8IikpO24uc29ydCgodixrKT0+di5sZW5ndGgtay5sZW5ndGgpOwpmb3IobGV0IHYgb2YgbilpZighRC5leGVjKHYpKXJldHVybiB2O3JldHVybiBuWzBdfTsKTEI9ZnVuY3Rpb24obil7cmV0dXJuYC95b3V0dWJlaS92MS8ke3BXTShuKX1gfTsKZ2I9ZnVuY3Rpb24obil7cmV0dXJuIGcucnIoInl0Y3NpLiIrKG58fCIiKSsiZGF0YV8iKXx8ZUwobil9OwpYQT1mdW5jdGlvbigpe3ZhciBuPWdiKCk7bi5pbmZvfHwobi5pbmZvPXt9KTtyZXR1cm4gbi5pbmZvfTsKcVE9ZnVuY3Rpb24obil7bj1nYihuKTtuLm1ldGFkYXRhfHwobi5tZXRhZGF0YT17fSk7cmV0dXJuIG4ubWV0YWRhdGF9OwpHdz1mdW5jdGlvbihuKXtuPWdiKG4pO24udGlja3x8KG4udGljaz17fSk7cmV0dXJuIG4udGlja307CnRtPWZ1bmN0aW9uKG4pe249Z2Iobik7aWYobi5nZWwpe2xldCBXPW4uZ2VsO1cuZ2VsSW5mb3N8fChXLmdlbEluZm9zPXt9KTtXLmdlbFRpY2tzfHwoVy5nZWxUaWNrcz17fSl9ZWxzZSBuLmdlbD17Z2VsVGlja3M6e30sZ2VsSW5mb3M6e319O3JldHVybiBuLmdlbH07CiRWPWZ1bmN0aW9uKG4pe249dG0obik7bi5nZWxJbmZvc3x8KG4uZ2VsSW5mb3M9e30pO3JldHVybiBuLmdlbEluZm9zfTsKWVZTPWZ1bmN0aW9uKCl7dmFyIG49dG0oKTtuLnByZUxvZ2dlZEdlbEluZm9zfHwobi5wcmVMb2dnZWRHZWxJbmZvcz1bXSk7cmV0dXJuIG4ucHJlTG9nZ2VkR2VsSW5mb3N9OwpyYj1mdW5jdGlvbihuKXt2YXIgVz1nYihuKS5ub25jZTtXfHwoVz1nLlJJKDE2KSxnYihuKS5ub25jZT1XKTtyZXR1cm4gV307CmVMPWZ1bmN0aW9uKG4pe3ZhciBXPXt0aWNrOnt9LGluZm86e319O2cuR2IoInl0Y3NpLiIrKG58fCIiKSsiZGF0YV8iLFcpO3JldHVybiBXfTsKc0g9ZnVuY3Rpb24oKXt2YXIgbj1nLnJyKCJ5dGNzaS5kZWJ1ZyIpO258fChuPVtdLGcuR2IoInl0Y3NpLmRlYnVnIixuKSxnLkdiKCJ5dGNzaS5yZWZlcmVuY2UiLHt9KSk7cmV0dXJuIG59OwpwQj1mdW5jdGlvbihuKXt2YXIgVz1zSCgpO1cucHVzaChuKTtnLmwoImxpbWl0X3l0Y3NpX2RlYnVnX2FycmF5X3NpemUiKSYmVy5sZW5ndGg+TlEmJlcuc3BsaWNlKDAsVy5sZW5ndGgtTlEpfTsKSGI9ZnVuY3Rpb24obil7bj1ufHwiIjt2YXIgVz1ZVigpO2lmKFdbbl0pcmV0dXJuIFdbbl07dmFyIEQ9e3RpbWVyTmFtZTpuLGluZm86e30sdGljazp7fSxzcGFuOnt9LGpzcGJJbmZvOltdfTtwQihEKTtyZXR1cm4gV1tuXT1EfTsKZkI9ZnVuY3Rpb24obil7bj1ufHwiIjt2YXIgVz1ZVigpO1dbbl0mJmRlbGV0ZSBXW25dO3ZhciBEPXt0aW1lck5hbWU6bixpbmZvOnt9LHRpY2s6e30sc3Bhbjp7fSxqc3BiSW5mbzpbXX07cEIoRCk7V1tuXT1EfTsKWVY9ZnVuY3Rpb24oKXt2YXIgbj1nLnJyKCJ5dGNzaS5yZWZlcmVuY2UiKTtpZihuKXJldHVybiBuO3NIKCk7cmV0dXJuIGcucnIoInl0Y3NpLnJlZmVyZW5jZSIpfTsKSUw9ZnVuY3Rpb24obil7cmV0dXJuIEptW25dfHwiTEFURU5DWV9BQ1RJT05fVU5LTk9XTiJ9OwpIbnI9ZnVuY3Rpb24obixXLEQ9e30pe3ZhciBiPU1hdGgucm91bmQoRC50aW1lc3RhbXB8fCgwLGcuUikoKSk7SVkobiwxLGI8TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI/YjowKTtiPW5ldyBTTDtpZihELmxhY3QpSVkoYiwxLGlzRmluaXRlKEQubGFjdCk/RC5sYWN0Oi0xKTtlbHNlIGlmKEQudGltZXN0YW1wKUlZKGIsMSwtMSk7ZWxzZXt2YXIgdj1nLnZJKCk7SVkoYiwxLGlzRmluaXRlKHYpP3Y6LTEpfWlmKEQuc2VxdWVuY2VHcm91cCYmIWcubCgid2ViX2dlbF9zZXF1ZW5jZV9pbmZvX2tpbGxzd2l0Y2giKSl7dj1ELnNlcXVlbmNlR3JvdXA7bGV0IGs9RXkodiksaD1uZXcgQW07SVkoaCwyLGspO2cuU0UoaCwxLHYpOyQ5KGIsQW0sMyxoKTtELmVuZE9mU2VxdWVuY2UmJmRlbGV0ZSBtcVtELnNlcXVlbmNlR3JvdXBdfSQ5KG4sU0wsMzMsYik7KEQuc2VuZElzb2xhdGVkUGF5bG9hZD9jSTpQVzEpKCJsYXRlbmN5QWN0aW9uSW5mbyIse2VuZHBvaW50OiJsb2dfZXZlbnQiLHBheWxvYWQ6biwKY3R0QXV0aEluZm86RC5jdHRBdXRoSW5mbyxkYW5nZXJvdXNMb2dUb1Zpc2l0b3JTZXNzaW9uOkQuZGFuZ2Vyb3VzTG9nVG9WaXNpdG9yU2Vzc2lvbn0sVyl9OwpmMmo9ZnVuY3Rpb24obixXPXt9KXt2YXIgRD0hMTtnLkFyKCJ5dExvZ2dpbmdFdmVudHNEZWZhdWx0RGlzYWJsZWQiLCExKSYmKEQ9ITApO0hucihuLEQ/bnVsbDpnLmQ0LFcpfTsKT0g9ZnVuY3Rpb24oKXtLQi5pbnN0YW5jZXx8KEtCLmluc3RhbmNlPW5ldyBLQik7cmV0dXJuIEtCLmluc3RhbmNlfTsKWk09ZnVuY3Rpb24obixXKXtQYltXXT1QYltXXXx8e2NvdW50OjB9O3ZhciBEPVBiW1ddO0QuY291bnQrKztELnRpbWU9KDAsZy5SKSgpO24uTnx8KG4uTj1nLmNCKDAsKCk9Pnt2YXIgYj0oMCxnLlIpKCk7Zm9yKGxldCB2IGluIFBiKVBiW3ZdJiZiLVBiW3ZdLnRpbWU+NkU0JiZkZWxldGUgUGJbdl07biYmKG4uTj0wKX0sNUUzKSk7CnJldHVybiBELmNvdW50PjU/KEQuY291bnQ9PT02JiZNYXRoLnJhbmRvbSgpKjFFNTwxJiYoRD1uZXcgZy5ReCgiQ1NJIGRhdGEgZXhjZWVkZWQgbG9nZ2luZyBsaW1pdCB3aXRoIGtleSIsVy5zcGxpdCgiXyIpKSxXLmluZGV4T2YoInBsZXYiKT49MHx8Zy5HcShEKSksITApOiExfTsKRUg9ZnVuY3Rpb24oKXt2YXIgbjtnLmwoImNzaV91c2VfcGVyZm9ybWFuY2VfbmF2aWdhdGlvbl90aW1pbmciKT8obj1VSD8uZ2V0RW50cmllc0J5VHlwZT8uKCJuYXZpZ2F0aW9uIik/LlswXT8udG9KU09OPy4oKSk/KG4ucmVxdWVzdFN0YXJ0PXl2KG4ucmVxdWVzdFN0YXJ0KSxuLnJlc3BvbnNlRW5kPXl2KG4ucmVzcG9uc2VFbmQpLG4ucmVkaXJlY3RTdGFydD15dihuLnJlZGlyZWN0U3RhcnQpLG4ucmVkaXJlY3RFbmQ9eXYobi5yZWRpcmVjdEVuZCksbi5kb21haW5Mb29rdXBFbmQ9eXYobi5kb21haW5Mb29rdXBFbmQpLG4uY29ubmVjdFN0YXJ0PXl2KG4uY29ubmVjdFN0YXJ0KSxuLmNvbm5lY3RFbmQ9eXYobi5jb25uZWN0RW5kKSxuLnJlc3BvbnNlU3RhcnQ9eXYobi5yZXNwb25zZVN0YXJ0KSxuLnNlY3VyZUNvbm5lY3Rpb25TdGFydD15dihuLnNlY3VyZUNvbm5lY3Rpb25TdGFydCksbi5kb21haW5Mb29rdXBTdGFydD15dihuLmRvbWFpbkxvb2t1cFN0YXJ0KSxuLmlzUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nPQohMCk6bj1VSC50aW1pbmc6bj1nLmwoImNzaV9wZXJmb3JtYW5jZV90aW1pbmdfdG9fb2JqZWN0Iik/SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVSC50aW1pbmcpKTpVSC50aW1pbmc7cmV0dXJuIG59Owp5dj1mdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5yb3VuZChpJCgpK24pfTsKaSQ9ZnVuY3Rpb24oKXtyZXR1cm4oZy5sKCJjc2lfdXNlX3RpbWVfb3JpZ2luIil8fGcubCgiY3NpX3VzZV90aW1lX29yaWdpbl90dmh0bWw1IikpJiZVSC50aW1lT3JpZ2luP01hdGguZmxvb3IoVUgudGltZU9yaWdpbik6VUgudGltaW5nLm5hdmlnYXRpb25TdGFydH07CkpTcj1mdW5jdGlvbigpe3ZhciBuPVlWUygpLFc9JFYoKSxEPXZvaWQgMDtmb3IodmFyIGI9MDtiPG4ubGVuZ3RoO2IrKyl7bGV0IHg9bltiXTtpZih4LmxvYWRUeXBlKXtEPXgubG9hZFR5cGU7YnJlYWt9fWlmKHFRKCkubG9hZFR5cGU9PT0iY29sZCImJihXLmxvYWRUeXBlPT09ImNvbGQifHxEPT09ImNvbGQiKSl7RD1HdygpO2I9dG0oKTtiPWIuZ2VsVGlja3M/Yi5nZWxUaWNrczpiLmdlbFRpY2tzPXt9O2Zvcih2YXIgdiBpbiBEKXYgaW4gYnx8dHlwZW9mIERbdl09PT0ibnVtYmVyIiYmdSQodixvTCh2KSk7dmFyIGs9e30saD0hMTt2PXg9PntqdyhXLHgpO2p3KGsseCk7aD0hMH07CmZvcihsZXQgeCBvZiBuKXYoeCk7aCYmZGIoayl9fTsKenc9ZnVuY3Rpb24obixXKXt1JCgiX3N0YXJ0IixuLFcpfTsKZGI9ZnVuY3Rpb24obixXKXtpZighZy5sKCJ3ZWJfY3NpX2FjdGlvbl9zYW1wbGluZ19lbmFibGVkIil8fCFnYihXKS5hY3Rpb25EaXNhYmxlZCl7dmFyIEQ9SGIoV3x8IiIpO2p3KEQuaW5mbyxuKTtuLmxvYWRUeXBlJiYoRD1uLmxvYWRUeXBlLHFRKFcpLmxvYWRUeXBlPUQpO2p3KCRWKFcpLG4pO0Q9cmIoVyk7Vz1nYihXKS5jdHRBdXRoSW5mbztPSCgpLmluZm8obixELFcpfX07CkkyWj1mdW5jdGlvbigpe3JldHVybihnLnFqKCkucmVzb2x2ZShnLmhwKGcuWDMpKT8uTFgoKT8ubG9nZ2luZ0hvdENvbmZpZz8uY3NpQ29uZmlnPy5kZWJ1Z1RpY2tzPz9bXSkubWFwKG49Pk9iamVjdC52YWx1ZXMobilbMF0pfTsKdSQ9ZnVuY3Rpb24obixXLEQpe2lmKCFnLmwoIndlYl9jc2lfYWN0aW9uX3NhbXBsaW5nX2VuYWJsZWQiKXx8IWdiKEQpLmFjdGlvbkRpc2FibGVkKXt2YXIgYj1yYihEKSx2O2lmKHY9Zy5sKCJ3ZWJfY3NpX2RlYnVnX3NhbXBsZV9lbmFibGVkIikmJmIpe2cucWooKS5yZXNvbHZlKGcuaHAoZy5YMykpPy5MWCgpJiYhbCQmJihsJD0hMCx1JCgiZ2NmbCIsKDAsZy5SKSgpLEQpKTt2PWcucWooKS5yZXNvbHZlKGcuaHAoZy5YMykpPy5MWCgpPy5sb2dnaW5nSG90Q29uZmlnPy5jc2lDb25maWc/LmRlYnVnU2FtcGxlV2VpZ2h0fHwwO3ZhciBrO2lmKGs9diE9PTApYjp7az1JMlooKTtpZihrLmxlbmd0aD4wKWZvcih2YXIgaD0wO2g8ay5sZW5ndGg7aCsrKWlmKG49PT1rW2hdKXtrPSEwO2JyZWFrIGJ9az0hMX1rPyh2PU9hKGIpJXYhPT0wLGdiKEQpLmRlYnVnVGlja3NFeGNsdWRlZExvZ2dlZHx8KGs9e30say5kZWJ1Z1RpY2tzRXhjbHVkZWQ9dixkYihrLEQpKSxnYihEKS5kZWJ1Z1RpY2tzRXhjbHVkZWRMb2dnZWQ9CiEwKTp2PSExfWlmKCF2KXtpZihuWzBdIT09Il8iJiYodj1uLFVILm1hcmspKXt2LnN0YXJ0c1dpdGgoIm1hcmtfIil8fCh2PSJtYXJrXyIrdik7RCYmKHYrPWAgKCR7RH0pYCk7az12O2g9e307aWYoVyE9PXZvaWQgMCYmIWcubCgid2ViX2NzaV9kaXNhYmxlX2FsdF90aW1lX3BlcmZvcm1hbmNlX21hcmsiKSl7bGV0IEw9VztMPWcubCgiY3NpX3VzZV9wZXJmb3JtYW5jZV9uYXZpZ2F0aW9uX3RpbWluZyIpP0wtVUgudGltZU9yaWdpbjpMLShVSC50aW1lT3JpZ2lufHxVSC50aW1pbmcubmF2aWdhdGlvblN0YXJ0KTtoLnN0YXJ0VGltZT1MfWcubCgiY3NpX2VuYWJsZV9jaHJvbWVfZGV2dG9vbHNfcGVyZm9ybWFuY2VfdGltZWxpbmVfaW50ZWdyYXRpb24iKSYmKGguZGV0YWlsPXtHVTp7ZGF0YVR5cGU6Im1hcmtlciIsY29sb3I6InByaW1hcnkiLHRvb2x0aXBUZXh0Omt9fSk7az1PYmplY3Qua2V5cyhoKS5sZW5ndGg+MD9oOnZvaWQgMDt0cnl7VUgubWFyayh2LGspfWNhdGNoKEwpe1VILm1hcmsodil9fXY9CkhiKER8fCIiKTt2LnRpY2tbbl09V3x8KDAsZy5SKSgpO2lmKHYuY2FsbGJhY2smJnYuY2FsbGJhY2tbbl0pZm9yKHZhciB4IG9mIHYuY2FsbGJhY2tbbl0peCgpO3g9dG0oRCk7eC5nZWxUaWNrcyYmKHguZ2VsVGlja3Nbbl09ITApO3Y9R3coRCk7eD1XfHwoMCxnLlIpKCk7dltuXT14O3Y9Z2IoRCkuY3R0QXV0aEluZm87bj09PSJfc3RhcnQiPyhuPU9IKCksWk0obixgYmFzZWxpbmVfJHtifWApfHxnLnpVKCJsYXRlbmN5QWN0aW9uQmFzZWxpbmVkIix7Y2xpZW50QWN0aW9uTm9uY2U6Yn0se3RpbWVzdGFtcDpXLGN0dEF1dGhJbmZvOnZ9KSk6T0goKS50aWNrKG4sYixXLHYpO1R3KEQpO3JldHVybiB4fX19OwpTVjE9ZnVuY3Rpb24oKXt2YXIgbj1VSC5nZXRFbnRyaWVzQnlUeXBlPy4oIm1hcmsiKTtuJiZuLmZvckVhY2goVz0+e1cubmFtZS5zdGFydHNXaXRoKCJtYXJrXyIpJiZVSC5jbGVhck1hcmtzPy4oVy5uYW1lKX0pfTsKakw9ZnVuY3Rpb24oKXtzd2l0Y2goRzEoKSl7Y2FzZSAiaGlkZGVuIjpyZXR1cm4gMDtjYXNlICJ2aXNpYmxlIjpyZXR1cm4gMTtjYXNlICJwcmVyZW5kZXIiOnJldHVybiAyO2Nhc2UgInVubG9hZGVkIjpyZXR1cm4gMztkZWZhdWx0OnJldHVybi0xfX07CkNCPWZ1bmN0aW9uKG4pe3ZhciBXPXt9LEQ9KGIsdixrKT0+e3Y9di5tYXRjaCgiX3JpZCIpP3Yuc3BsaXQoIl9yaWQiKVswXTp2O3R5cGVvZiBrPT09Im51bWJlciImJihrPUpTT04uc3RyaW5naWZ5KGspKTtiLnJlcXVlc3RJZHM/Yi5yZXF1ZXN0SWRzLnB1c2goe2VuZHBvaW50OnYsaWQ6a30pOmIucmVxdWVzdElkcz1be2VuZHBvaW50OnYsaWQ6a31dfTsKZm9yKGxldCBbYix2XW9mIE9iamVjdC5lbnRyaWVzKG4pKXtuPWI7bGV0IGs9djtzd2l0Y2gobil7Y2FzZSAiR2V0QnJvd3NlX3JpZCI6RChXLG4sayk7YnJlYWs7Y2FzZSAiR2V0R3VpZGVfcmlkIjpEKFcsbixrKTticmVhaztjYXNlICJHZXRIb21lX3JpZCI6RChXLG4sayk7YnJlYWs7Y2FzZSAiR2V0UGxheWVyX3JpZCI6RChXLG4sayk7YnJlYWs7Y2FzZSAiR2V0U2VhcmNoX3JpZCI6RChXLG4sayk7YnJlYWs7Y2FzZSAiR2V0U2V0dGluZ3NfcmlkIjpEKFcsbixrKTticmVhaztjYXNlICJHZXRUcmVuZGluZ19yaWQiOkQoVyxuLGspO2JyZWFrO2Nhc2UgIkdldFdhdGNoTmV4dF9yaWQiOkQoVyxuLGspO2JyZWFrO2Nhc2UgInl0X3JlZCI6Vy5pc1JlZFN1YnNjcmliZXI9ISFrO2JyZWFrO2Nhc2UgInl0X2FkIjpXLmlzTW9uZXRpemVkPSEha319cmV0dXJuIFd9OwpBU3g9ZnVuY3Rpb24obixXKXtuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iobik7aWYoIW4pcmV0dXJuITE7dmFyIEQ9IiIsYj1uLm5vZGVOYW1lO2I9PT0iU0NSSVBUIj8oRD1uLnNyYyxEfHwoRD1uLmdldEF0dHJpYnV0ZSgiZGF0YS10aW1pbmctaHJlZiIpKSYmKEQ9d2luZG93LmxvY2F0aW9uLnByb3RvY29sK0QpKTpiPT09IkxJTksiJiYoRD1uLmhyZWYpO1NqKGRvY3VtZW50KSYmbi5zZXRBdHRyaWJ1dGUoIm5vbmNlIixTaihkb2N1bWVudCkpO3JldHVybiBEPyhuPVVILmdldEVudHJpZXNCeU5hbWUoRCkpJiZuWzBdJiYobj1uWzBdLEQ9aSQoKSx1JCgicnNmXyIrVyxEK01hdGgucm91bmQobi5mZXRjaFN0YXJ0KSksdSQoInJzZV8iK1csRCtNYXRoLnJvdW5kKG4ucmVzcG9uc2VFbmQpKSxuLnRyYW5zZmVyU2l6ZSE9PXZvaWQgMCYmbi50cmFuc2ZlclNpemU9PT0wKT8hMDohMTohMX07Cm1IMT1mdW5jdGlvbigpe3ZhciBuPXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCxXPVVILmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIik7Vz1nLkVNKFcsRD0+RC5uYW1lLmluZGV4T2YoYCR7bn0vL2ZvbnRzLmdzdGF0aWMuY29tL3MvYCk9PT0wKTsKKFc9Zy51XyhXLChELGIpPT5iLmR1cmF0aW9uPkQuZHVyYXRpb24/YjpELHtkdXJhdGlvbjowfSkpJiZXLnN0YXJ0VGltZT4wJiZXLnJlc3BvbnNlRW5kPjAmJih1JCgid2ZmcyIseXYoVy5zdGFydFRpbWUpKSx1JCgid2ZmZSIseXYoVy5yZXNwb25zZUVuZCkpKX07CktOdD1mdW5jdGlvbihuLFcsRCl7VUgmJlVILm1lYXN1cmUmJihuLnN0YXJ0c1dpdGgoIm1lYXN1cmVfIil8fChuPSJtZWFzdXJlXyIrbiksRD9VSC5tZWFzdXJlKG4sVyxEKTpXP1VILm1lYXN1cmUobixXKTpVSC5tZWFzdXJlKG4pKX07CkJiPWZ1bmN0aW9uKG4pe3ZhciBXPW9MKCJhZnQiLG4pO2lmKFcpcmV0dXJuIFc7Vz1nLkFyKChufHwiIikrIlRJTUlOR19BRlRfS0VZUyIsWyJvbCJdKTt2YXIgRD1XLmxlbmd0aDtmb3IobGV0IGI9MDtiPEQ7YisrKXtsZXQgdj1vTChXW2JdLG4pO2lmKHYpcmV0dXJuIHZ9cmV0dXJuIE5hTn07CkZBPWZ1bmN0aW9uKG4sVyl7Zy5HYigieXRnbG9iYWwudGltaW5nIisoV3x8IiIpKyJyZWFkeV8iLG4pfTsKb0w9ZnVuY3Rpb24obixXKXtpZihuPUd3KFcpW25dKXJldHVybiB0eXBlb2Ygbj09PSJudW1iZXIiP246bltuLmxlbmd0aC0xXX07ClR3PWZ1bmN0aW9uKG4pe3ZhciBXPW9MKCJfc3RhcnQiLG4pLEQ9QmIobiksYj0hd2I7VyYmRCYmYiYmKGw5KE9udCxuZXcgTVEoTWF0aC5yb3VuZChELVcpLG4pKSx3Yj0hMCl9OwpQYXg9ZnVuY3Rpb24oKXtpZihVSC5nZXRFbnRyaWVzQnlUeXBlKXt2YXIgbj1VSC5nZXRFbnRyaWVzQnlUeXBlKCJwYWludCIpO2lmKG49Zy5sXyhuLEQ9PkQubmFtZT09PSJmaXJzdC1wYWludCIpKXJldHVybiB5dihuLnN0YXJ0VGltZSl9dmFyIFc7CmcubCgiY3NpX3VzZV9wZXJmb3JtYW5jZV9uYXZpZ2F0aW9uX3RpbWluZyIpP1c9VUguZ2V0RW50cmllc0J5VHlwZSgiZmlyc3QtcGFpbnQiKVswXS5zdGFydFRpbWU6Vz1VSC50aW1pbmcubDI7cmV0dXJuIFc/TWF0aC5tYXgoMCxXKTowfTsKZy5STD1mdW5jdGlvbihuKXtlTChuKTtabmkoKTtTVjEoKTtufHwoZy5BcigiVElNSU5HX0FDVElPTiIpJiZnLlNIKCJQUkVWSU9VU19BQ1RJT04iLGcuQXIoIlRJTUlOR19BQ1RJT04iKSksZy5TSCgiVElNSU5HX0FDVElPTiIsIiIpKX07CmNiPWZ1bmN0aW9uKG4sVyl7UFYoKCk9PntIYigiIikuaW5mby5hY3Rpb25UeXBlPW47VyYmZy5TSCgiVElNSU5HX0FGVF9LRVlTIixXKTtnLlNIKCJUSU1JTkdfQUNUSU9OIixuKTt2YXIgRD1DQihnLkFyKCJUSU1JTkdfSU5GTyIse30pKTtPYmplY3Qua2V5cyhEKS5sZW5ndGg+MCYmZGIoRCk7RD17aXNOYXZpZ2F0aW9uOiEwLGFjdGlvblR5cGU6SUwoZy5BcigiVElNSU5HX0FDVElPTiIpKX07dmFyIGI9Zy5BcigiUFJFVklPVVNfQUNUSU9OIik7YiYmKEQucHJldmlvdXNBY3Rpb249SUwoYikpO2lmKGI9Zy5BcigiQ0xJRU5UX1BST1RPQ09MIikpRC5odHRwUHJvdG9jb2w9YjtpZihiPWcuQXIoIkNMSUVOVF9UUkFOU1BPUlQiKSlELnRyYW5zcG9ydFByb3RvY29sPWI7KGI9Zy5SdigpKSYmYiE9PSJVTkRFRklORURfQ1NOIiYmKEQuY2xpZW50U2NyZWVuTm9uY2U9Yik7Yj1qTCgpO2lmKGI9PT0xfHxiPT09LTEpRC5pc1Zpc2libGU9ITA7Yj1xUSgpLmxvYWRUeXBlPT09ImNvbGQiOwp2YXIgdj1YQSgpO2J8fChiPXYueXRfbHQ9PT0iY29sZCIpO2lmKGIpe0QubG9hZFR5cGU9ImNvbGQiO2I9WEEoKTt2PUVIKCk7bGV0IHg9aSQoKSxMPWcuQXIoIkNTSV9TVEFSVF9USU1FU1RBTVBfTUlMTElTIiwwKTtMPjAmJiFnLmwoImVtYmVkc193ZWJfZW5hYmxlX2NzaV9zdGFydF9vdmVycmlkZV9raWxsc3dpdGNoIikmJih4PUwpO3gmJih1JCgic3J0Iix2LnJlc3BvbnNlU3RhcnQpLGIucHJlcmVuZGVyIT09MSYmencoeCkpO2I9UGF4KCk7Yj4wJiZ1JCgiZnB0IixiKTtiPUVIKCk7Yi5pc1BlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZyYmZGIoe3BlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZzohMH0sdm9pZCAwKTt1JCgibnJlcXMiLGIucmVxdWVzdFN0YXJ0LHZvaWQgMCk7dSQoIm5yZXNzIixiLnJlc3BvbnNlU3RhcnQsdm9pZCAwKTt1JCgibnJlc2UiLGIucmVzcG9uc2VFbmQsdm9pZCAwKTtiLnJlZGlyZWN0RW5kLWIucmVkaXJlY3RTdGFydD4wJiYodSQoIm5ycyIsYi5yZWRpcmVjdFN0YXJ0LAp2b2lkIDApLHUkKCJucmUiLGIucmVkaXJlY3RFbmQsdm9pZCAwKSk7Yi5kb21haW5Mb29rdXBFbmQtYi5kb21haW5Mb29rdXBTdGFydD4wJiYodSQoIm5kbnNzIixiLmRvbWFpbkxvb2t1cFN0YXJ0LHZvaWQgMCksdSQoIm5kbnNlIixiLmRvbWFpbkxvb2t1cEVuZCx2b2lkIDApKTtiLmNvbm5lY3RFbmQtYi5jb25uZWN0U3RhcnQ+MCYmKHUkKCJudGNwcyIsYi5jb25uZWN0U3RhcnQsdm9pZCAwKSx1JCgibnRjcGUiLGIuY29ubmVjdEVuZCx2b2lkIDApKTtiLnNlY3VyZUNvbm5lY3Rpb25TdGFydD49aSQoKSYmYi5jb25uZWN0RW5kLWIuc2VjdXJlQ29ubmVjdGlvblN0YXJ0PjAmJih1JCgibnN0Y3BzIixiLnNlY3VyZUNvbm5lY3Rpb25TdGFydCx2b2lkIDApLHUkKCJudGNwZSIsYi5jb25uZWN0RW5kLHZvaWQgMCkpO1VIJiYiZ2V0RW50cmllc0J5VHlwZSJpbiBVSCYmbUgxKCk7Yj1bXTtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yJiZVSCYmVUguZ2V0RW50cmllc0J5TmFtZSlmb3IoayBpbiBRdilRdi5oYXNPd25Qcm9wZXJ0eShrKSYmCih2PVF2W2tdLEFTeChrLHYpJiZiLnB1c2godikpO3ZhciBrPWI7aWYoay5sZW5ndGg+MCl7RC5yZXNvdXJjZUluZm89W107Zm9yKHZhciBoIG9mIGspRC5yZXNvdXJjZUluZm8ucHVzaCh7cmVzb3VyY2VDYWNoZTpofSl9fWRiKEQpO0pTcigpO0ZBKCEwKTtoPWcuQXIoIlRJTUlOR19BQ1RJT04iKTtnLnJyKCJ5dGdsb2JhbC50aW1pbmdyZWFkeV8iKSYmaCYmVnYoKSYmQmIoKSYmVHcoKX0pKCl9OwpXUD1mdW5jdGlvbigpe3ZhciBuPXt9O1BWKCgpPT57VnYoKSYmZy5hTCgiYWEiLHZvaWQgMCx2b2lkIDApO2ZCKCk7Zy5STCgpO0ZBKCExKTtuLmN0dEF1dGhJbmZvJiYoZ2IoKS5jdHRBdXRoSW5mbz1uLmN0dEF1dGhJbmZvKTtnLlNIKCJUSU1JTkdfQUZUX0tFWVMiLFtdKTtuLnJQP2cubmwoe2xvYWRUeXBlOiJob3QifSk6Zy5ubCh7bG9hZFR5cGU6Indhcm0ifSk7Zy5TSCgiVElNSU5HX0FDVElPTiIsIiIpO2RlbGV0ZSBnLkFyKCJUSU1JTkdfSU5GTyIse30pLnl0X2x0O1BWKHp3KShuLnN0YXJ0VGltZSx2b2lkIDApfSkoKX07CmcuYmQ9ZnVuY3Rpb24obixXPXt9KXtQVigoKT0+e2cuRFkobik7dmFyIEQ9Vy5zYW1wbGVSYXRlO2lmKCFnLmwoIndlYl9jc2lfYWN0aW9uX3NhbXBsaW5nX2VuYWJsZWQiKXx8RD09PXZvaWQgMHx8RDw9MSlEPSExO2Vsc2V7dmFyIGI9cmIobik7RD1PYShiKSVEIT09MH1EJiYoZ2IobikuYWN0aW9uRGlzYWJsZWQ9ITApO0hiKG58fCIiKS5pbmZvLmFjdGlvblR5cGU9bjtXLmN0dEF1dGhJbmZvJiYoZ2IobikuY3R0QXV0aEluZm89Vy5jdHRBdXRoSW5mbyk7Zy5TSChuKyJUSU1JTkdfQUNUSU9OIixuKTtQVih6dykoVy5zdGFydFRpbWUsbik7RD17YWN0aW9uVHlwZTpJTChuKX07Vy5leiYmKEQucHJldmlvdXNBY3Rpb249SUwoZy5BcigiVElNSU5HX0FDVElPTiIpKSk7KGI9Zy5SdigpKSYmYiE9PSJVTkRFRklORURfQ1NOIiYmKEQuY2xpZW50U2NyZWVuTm9uY2U9Yik7Zy5ubChELG4pO0ZBKCEwLG4pfSkoKX07CmcuRFk9ZnVuY3Rpb24obil7UFYoKCk9PntWdihuKSYmZy5hTCgiYWEiLHZvaWQgMCxuKTtmQihuKTtnLlJMKG4pfSkoKX07ClZ2PWZ1bmN0aW9uKG4pe3JldHVybiBQVigoKT0+Zy52UCgiX3N0YXJ0IixuKSkoKX07Cmcubmw9ZnVuY3Rpb24obixXLEQ9ITEpe1BWKGRiKShuLFcsRCl9OwpnLmFMPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gUFYodSQpKG4sVyxEKX07CmtEPWZ1bmN0aW9uKG4pe1BWKEtOdCkoImFjdGlvbl9maW5pc2hlZCIsbix2b2lkIDApfTsKZy52UD1mdW5jdGlvbihuLFcpe3JldHVybiBQVigoKT0+e3ZhciBEPUd3KFcpO3JldHVybiBuIGluIER9KSgpfTsKeEQ9ZnVuY3Rpb24obil7aWYoIWcubCgidW5pdmVyc2FsX2NzaV9uZXR3b3JrX3RpY2tzIikpcmV0dXJuIiI7bj1TMShuKXx8IiI7dmFyIFc9T2JqZWN0LmtleXMoaGUpO2ZvcihsZXQgRD0wO0Q8Vy5sZW5ndGg7RCsrKXtsZXQgYj1XW0RdO2lmKG4uaW5jbHVkZXMoYikpcmV0dXJuIGJ9cmV0dXJuIiJ9Owplaz1mdW5jdGlvbihuKXtpZighZy5sKCJ1bml2ZXJzYWxfY3NpX25ldHdvcmtfdGlja3MiKSlyZXR1cm4oKT0+e307CnZhciBXPWhlW25dO3JldHVybiBXPyhnLkxsKFcpLCgpPT57dmFyIEQ9Zy5sKCJ1bml2ZXJzYWxfY3NpX25ldHdvcmtfdGlja3MiKT8oRD1VSE1bbl0pP2cuTGwoRCk6ITE6ITE7cmV0dXJuIER9KTooKT0+e319OwpnLkxsPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gUFYoKCk9PntpZihnLnZQKG4sRCkpcmV0dXJuITE7Zy5hTChuLFcsRCk7cmV0dXJuITB9KSgpfTsKZy5nXz1mdW5jdGlvbihuLFcsRCl7UFYoKCk9PntpZighVnYoRCl8fGcudlAobixEKSlyZXR1cm4hMTtnLmFMKG4sVyxEKTtyZXR1cm4hMH0pKCl9Owp5U2g9ZnVuY3Rpb24oKXtQVigoKT0+e3ZhciBuPXJiKCk7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57c2V0VGltZW91dCgoKT0+e249PT1yYigpJiZnLmFMKCJmdGwiLHZvaWQgMCx2b2lkIDApfSwwKX0pfSkoKX07CkU5Yj1mdW5jdGlvbihuLFcsRCxiLHYpe2lmKFg3Lmluc3RhbmNlIT09dm9pZCAwKXtpZihiPVg3Lmluc3RhbmNlLG49W24hPT1iLmosVyE9PWIueUcsRCE9PWIuVyx2IT09Yi5KLCExLCExLCExXSxuLnNvbWUoaz0+aykpdGhyb3cgbmV3IGcuUXgoIklubmVyVHViZVRyYW5zcG9ydFNlcnZpY2UgaXMgYWxyZWFkeSBpbml0aWFsaXplZCIsbik7Cn1lbHNlIFg3Lmluc3RhbmNlPW5ldyBYNyhuLFcsRCxiLHYpfTsKaW53PWFzeW5jIGZ1bmN0aW9uKG4sVyxEKXtuPWF3YWl0ICRHKG4uVy5haihXPy5CRz8uaWRlbnRpdHl8fHU5LHtzZXNzaW9uSW5kZXg6Vz8uQkc/LnNlc3Npb25JbmRleH0pKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsuLi5rVihEKSwuLi5ufSl9OwpkSGo9YXN5bmMgZnVuY3Rpb24obixXLEQsYj0oKT0+e30pe3ZhciB2PVcuY29uZmlnPy5Ibj8uUkw7CmlmKHYmJm4uSiYmbi5KLmhhcyh2KSYmIVcuY29uZmlnPy5Ibj8uZGlzYWJsZUNhY2hlKXt2YXIgaz1hd2FpdCBuLkouZ2V0KHYpO2lmKGsmJiFrLmlzRXhwaXJlZCgpKXJldHVybiBiPXFyKGspLGsuaXNQcm9jZXNzZWQoKXx8KEdXKG4sYixXKSxhd2FpdCB0ZShuLkosdikpLFByb21pc2UucmVzb2x2ZShiKX1hd2FpdCB1X3QoVyk7KHY9Vy5jb25maWc/LnJlcXVlc3RLZXkpJiZuLk4uaGFzKHYpP0Q9bi5OLmdldCh2KTooaz1KU09OLnN0cmluZ2lmeShXLmlubmVyVHViZVJlcXVlc3QpLFcuUGk9ey4uLlcuUGksaGVhZGVyczp7Li4uKFcuUGk/LmhlYWRlcnM/P3t9KSwuLi5EfX0sRD17Li4uVy5QaX0sVy5QaS5tZXRob2Q9PT0iUE9TVCImJihEPXsuLi5ELGJvZHk6a30pLFcuY29uZmlnPy5MYSYmZy5hTChXLmNvbmZpZy5MYSksRD1uLnlHLmZldGNoKFcuaW5wdXQsRCxXLmNvbmZpZyksdiYmbi5OLnNldCh2LEQpKTtpZigoRD1hd2FpdCBEKSYmImVycm9yImluIEQmJkQ/LmVycm9yPy5kZXRhaWxzKXtrPQpELmVycm9yLmRldGFpbHM7Zm9yKGxldCBoIG9mIGspKGs9aFsiQHR5cGUiXSkmJm85ai5pbmRleE9mKGspPi0xJiYoZGVsZXRlIGhbIkB0eXBlIl0sRD1oKX12JiZuLk4uaGFzKHYpJiZuLk4uZGVsZXRlKHYpO1cuY29uZmlnPy5SViYmZy5hTChXLmNvbmZpZy5SVik7R1cobixELFcpO1cuY29uZmlnPy5HdCYmZy5hTChXLmNvbmZpZy5HdCk7YigpO3JldHVybiBEfHx2b2lkIDB9OwpnLnJfPWZ1bmN0aW9uKG4sVyxELGIsdj17Qkc6e2lkZW50aXR5OnU5fX0pe3ZhciBrPWcucWooKS5yZXNvbHZlKGcuaHAoJEQpKT8uKCk7aWYoKGcubCgibWF3X25ldHdvcmtfbWFjaGluZV9yYXdfcmVxdWVzdCIpfHxnLmwoImFsbF93ZWJfbmV0d29ya19tYWNoaW5lX3Jhd19yZXF1ZXN0IikpJiZrKXJldHVybiB6VGoobDJqKGsse2lubmVyVHViZVJlcXVlc3Q6VyxhcGlQYXRoOkQsY2xpY2tUcmFja2luZ1BhcmFtczpiLGNvbmZpZzp2LGluY2x1ZGVDdXJyZW50U2NyZWVuTm9uY2U6ITB9KSkudGhlbih4PT54LCgpPT57fSk7CnZhciBoPSgpPT57fTsKaD1layh4RChEKSk7Vy5jb250ZXh0fHwoVy5jb250ZXh0PWcudmIoYiwhMCkpO3JldHVybiBuZXcgZy5YMShhc3luYyB4PT57dmFyIEw9SyQoRCk7TD1nLlRkKEwpPyJzYW1lLW9yaWdpbiI6ImNvcnMiO2lmKG4uVy5zQil7dmFyIGU9bi5XLmFqKHY/LkJHPy5pZGVudGl0eXx8dTkse3Nlc3Npb25JbmRleDp2Py5CRz8uc2Vzc2lvbkluZGV4fSk7TD17Li4ua1YoTCksLi4uZX19ZWxzZSBMPWF3YWl0IGludyhuLHYsTCk7ZT1acihLJChEKSk7ZT17aW5wdXQ6ZSxQaTpVeihlKSxpbm5lclR1YmVSZXF1ZXN0OlcsY29uZmlnOnZ9O3goZEhqKG4sZSxMLGgpKX0pfTsKdV90PWFzeW5jIGZ1bmN0aW9uKG4pe2lmKG4/LmlubmVyVHViZVJlcXVlc3Q/LmNvbnRleHQpe249bi5pbm5lclR1YmVSZXF1ZXN0LmNvbnRleHQ7Zm9yKGxldCBXIG9mW10pYXdhaXQgVy5CcyhuKX19OwpHVz1mdW5jdGlvbihuLFcsRCl7aWYoVyYmIVc/LnNlcXVlbmNlTWV0YURhdGE/LnNraXBQcm9jZXNzaW5nJiZuLlgpZm9yKGxldCBiIG9mIHNvKW4uWFtiXSYmbi5YW2JdLmhhbmRsZVJlc3BvbnNlKFcsRCl9OwpwbD1mdW5jdGlvbigpe3ZhciBuLFc7cmV0dXJue3JGOm5ldyBOcigoRCxiKT0+e249RDtXPWJ9KSwKcmVzb2x2ZTpuLHJlamVjdDpXfX07CkhQPWZ1bmN0aW9uKG4pe3JldHVybiBZRChuKT9uOllvKG4pP25ldyBOcigoVyxEKT0+e24udGhlbihXLEQpfSk6bmV3IE5yKFc9PntXKG4pfSl9OwpmbD1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IE5yKChXLEQpPT57RChuKX0pfTsKSmU9ZnVuY3Rpb24obil7dHJ5e3JldHVybiBIUChuKCkpfWNhdGNoKFcpe3JldHVybiBmbChXKX19Owp6VGo9ZnVuY3Rpb24obil7cmV0dXJuIElqKG4sZy5YMSl9OwpJaj1mdW5jdGlvbihuLFcpe3JldHVybiBuZXcgVygoRCxiKT0+e1NrKG4sRCxiKX0pfTsKQWU9YXN5bmMgZnVuY3Rpb24obil7cmV0dXJuIElqKG4sUHJvbWlzZSl9OwptRT1mdW5jdGlvbihuKXtpZihuLk49PT0iZnVsZmlsbGVkIil7dmFyIFc9bi5KO24uSj1bXTtuLlc9W107Zm9yKHZhciBEIG9mIFcpRChuLnJlc3VsdCl9ZWxzZSBpZihuLk49PT0icmVqZWN0ZWQiKXtEPW4uVztuLko9W107bi5XPVtdO2ZvcihXIG9mIEQpVyhuLmVycm9yKX19OwpTaz1mdW5jdGlvbihuLFcsRCl7dmFyIHtyRjpiLHJlc29sdmU6dixyZWplY3Q6a309cGwoKTtuLkoucHVzaChoPT57aWYoVyl0cnl7bGV0IHg9VyhoKTt2KHgpfWNhdGNoKHgpe2soeCl9ZWxzZSB2KGgpfSk7Cm4uVy5wdXNoKGg9PntpZihEKXRyeXtsZXQgeD1EKGgpO3YoeCl9Y2F0Y2goeCl7ayh4KX1lbHNlIGsoaCl9KTsKbUUobik7cmV0dXJuIGJ9OwpLbD1mdW5jdGlvbihuLFcpe3JldHVybiBTayhuLHZvaWQgMCxXKX07ClRlYj1mdW5jdGlvbihuLFcpe1NrKG4sRD0+U2soSFAoVygpKSwoKT0+RCksRD0+U2soSFAoVygpKSwoKT0+ZmwoRCkpKX07Ck9vPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGpZMShXLmNhbGwobikpfTsKUFA9ZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZHtyRjpIUChuKX19KCl9OwpqWTE9ZnVuY3Rpb24obil7cmV0dXJuIEplKCgpPT5aWShuLG4ubmV4dCgpKSl9OwpaWT1mdW5jdGlvbihuLFcpe3JldHVybiBXLmRvbmU/SFAoVy52YWx1ZSk6S2woU2soVy52YWx1ZS5yRixEPT5aWShuLG4ubmV4dChEKSkpLEQ9PlpZKG4sbi50aHJvdyhEKSkpfTsKRk54PWZ1bmN0aW9uKG4pe3ZhciBXPUNhVShuKTtyZXR1cm4gU2soQmVTKFcpLCgpPT5XLm1hcChEPT5ELnN0YXRlKCkpKX07CkJlUz1mdW5jdGlvbihuKXtpZihuLmxlbmd0aD09PTApcmV0dXJuIEhQKE5hTik7dmFyIHtyRjpXLHJlc29sdmU6RH09cGwoKSxiPW4ubGVuZ3RoO2ZvcihsZXQgdj0wO3Y8bi5sZW5ndGg7disrKVRlYihuW3ZdLCgpPT57Vy5OPT09InBlbmRpbmciJiYod1dqKHZvaWQgMCkmJih2b2lkIDApKHYpJiZXLk49PT0icGVuZGluZyI/RCh2KTooLS1iLGI9PT0wJiZEKE5hTikpKX0pOwpyZXR1cm4gV307CkNhVT1mdW5jdGlvbihuKXtyZXR1cm4gbi5tYXAoVz0+SFAoVykpfTsKTUV3PWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gT28obixmdW5jdGlvbigpe3ZhciBiPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciB2PSRHKGIuTi5haihXPy5CRz8uaWRlbnRpdHl8fHU5LHtzZXNzaW9uSW5kZXg6Vz8uQkc/LnNlc3Npb25JbmRleH0pKTt2PXlpZWxkKlBQKEhQKHYpKTtyZXR1cm57Li4ua1YoRCksLi4udn19KCl9KX07ClVvPWZ1bmN0aW9uKG4pe3JldHVybiBuPT09MXx8bj09PTJ9OwpWRTI9ZnVuY3Rpb24obixXLEQ9ITEpe3ZhciBiLHY9Zy53KFcsUlRoKT8ucmVxdWVzdDt2JiZuLk4uaVQmJihiPW4uTi5pVFt2XSk7Ynx8RHx8KHY9Zy53KFcsUVlNKT8uc2lnbmFsKSYmbi5OLndkJiYoYj1uLk4ud2Rbdl0pO2lmKCFiJiYobj1EP24uTi51STpuLk4uemcpKWZvcihsZXQgayBpbiBXKWlmKG5ba10pe2I9bltrXTticmVha31pZighYil7aWYoRCl0aHJvdyBFcnJvcigiRXJyb3I6IE5vIHN0cmVhbWluZyByZXF1ZXN0IGJ1aWxkZXIgZm91bmQgZm9yIGNvbW1hbmQiKTt0aHJvdyBFcnJvcigiRXJyb3I6IE5vIHJlcXVlc3QgYnVpbGRlciBmb3VuZCBmb3IgY29tbWFuZC4iKTt9Vz1iKCk7cmV0dXJuIEhQKFcpfTsKbDJqPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4ucnVuKCJSRVFVRVNUX0lOSVQiLFcpfTsKeXE9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5ydW4oIlBST0NFU1NfUkVTUE9OU0UiLFcsIlJlc3BvbnNlTWFjaGluZSAoQ2FjaGUpIil9OwpFbz1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIG4ucnVuKCJJTklUIixXLEQhPT12b2lkIDA/YFJlc3BvbnNlTWFjaGluZSAoQ2h1bmsgJHtEfSlgOiJSZXNwb25zZU1hY2hpbmUiKX07CmNTMj1mdW5jdGlvbigpe3ZhciBuPWcucWooKTtnLnhvKG4se05IOmlkLFJjOigpPT5uZXcgTWFwfSk7CmcueG8obix7Tkg6dWQsWUw6dWQscG46ITB9KTtnLnhvKG4se05IOm9qLFlMOm9qLHBuOiEwfSk7Zy54byhuLHtOSDpkXyxZTDpkXyxwbjohMH0pO2cueG8obix7Tkg6elcsWUw6elcscG46ITB9KTtnLnhvKG4se05IOmxkLFlMOmxkLHBuOiEwfSk7Zy54byhuLHtOSDpUVyxZTDpUVyxwbjohMH0pO2cueG8obix7Tkg6amssWUw6amsscG46ITB9KTtnLnhvKG4se05IOkNsLFlMOkNsLHBuOiEwfSk7Zy54byhuLHtOSDpCUCxZTDpCUCxwbjohMH0pO2cueG8obix7Tkg6RjcsWUw6RjcscG46ITB9KTtnLnhvKG4se05IOndfLFJjOihXLEQsYix2LGssaCx4LEwsZSxHKT0+KHtDT01NQU5EX0lOSVQ6TCxSRVFVRVNUX0lOSVQ6ZSxDQUNIRTpELExPQ0FMX1JPVVRFUjp4LENPTlRFWFQ6YixBVVRIOlcsREVEVVBFOnYsRkVUQ0g6aCxSRVRSWTpHLEZBTExCQUNLOmt9KSwKW2cuTFhdOlt1ZCxvaixkXyx6VyxsZCxUVyxqayxDbCxCUCxGN10scG46ITB9KTtnLnhvKG4se05IOiRELFJjOlc9PigpPT5uZXcgZy5NcihXKSwKW2cuTFhdOlt3X10scG46ITB9KTtnLnhvKG4se05IOlJqLFlMOlJqLHBuOiEwfSk7Zy54byhuLHtOSDpRcSxZTDpRcSxwbjohMH0pO2cueG8obix7Tkg6VnEsWUw6VnEscG46ITB9KTtnLnhvKG4se05IOmNQLFlMOmNQLHBuOiEwfSk7Zy54byhuLHtOSDphaixSYzooVyxELGIsdik9Pih7SU5JVDp2LEVSUk9SX1VOUEFDS0VSOkQsUFJPQ0VTU19SRVNQT05TRTpiLENBTExCQUNLX0RJU1BBVENIRVI6V30pLApbZy5MWF06W1JqLFFxLFZxLGNQXSxwbjohMH0pO2cueG8obix7Tkg6blIsUmM6Vz0+KCk9Pm5ldyBXRyhXKSwKW2cuTFhdOlthal0scG46ITB9KX07CnFyPWZ1bmN0aW9uKG4pe3JldHVybnsuLi5uLmRhdGEuaW5uZXJ0dWJlUmVzcG9uc2UsY2FjaGVNZXRhZGF0YTp7aXNDYWNoZUhpdDohMH19fTsKdGU9YXN5bmMgZnVuY3Rpb24obixXKXt2YXIgRD1uLk4uZ2V0KFcpO0QmJihELmVudHJ5RGF0YS5pc1Byb2Nlc3NlZD0hMCxhd2FpdCBEdyhuLFcsRC5lbnRyeURhdGEpKX07CkR3PWFzeW5jIGZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uLko7aWYoRC5leHBpcmVUaW1lc3RhbXBNcyl7Yj1OdW1iZXIoRC5leHBpcmVUaW1lc3RhbXBNcyktTWF0aC5yb3VuZCgoMCxnLlIpKCkpO2xldCB2PXYwKCJtd2ViX292ZXJyaWRlX3Jlc3BvbnNlX3N0b3JlX2V4cGlyYXRpb25fbXMiKTt2PjAmJnY8YiYmKGI9dil9Yj1zZXRUaW1lb3V0KCgpPT57bi5yZW1vdmUoVyl9LGIpOwpuLk4uc2V0KFcse2VudHJ5RGF0YTpELHRpbWVyOmJ9KX07CnZHPWZ1bmN0aW9uKG4sVyl7aWYobj1uLk4uZ2V0KFcpKXJldHVybiBuZXcgYmgobi5lbnRyeURhdGEpfTsKa009ZnVuY3Rpb24obixXKXt2YXIgRD1uLk4uZ2V0KFcpO0QmJihjbGVhclRpbWVvdXQoRC50aW1lciksbi5OLmRlbGV0ZShXKSl9OwpoUj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9ey4uLm59O2ZvcihsZXQgdiBvZiBPYmplY3Qua2V5cyhXKSl7bGV0IGs9blt2XSxoPVdbdl07aWYoaD09PXZvaWQgMClkZWxldGUgYlt2XTtlbHNlIGlmKGs9PT12b2lkIDApYlt2XT1oO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShoKSYmQXJyYXkuaXNBcnJheShrKSliW3ZdPUQ/Wy4uLmssLi4uaF06aDtlbHNlIGlmKCFBcnJheS5pc0FycmF5KGgpJiZnLmZ0KGgpJiYhQXJyYXkuaXNBcnJheShrKSYmZy5mdChrKSliW3ZdPWhSKGssaCxEKTtlbHNlIGlmKHR5cGVvZiBoPT09dHlwZW9mIGspYlt2XT1oO2Vsc2UgcmV0dXJuIFc9bmV3IGcuUXgoIkF0dGVtcHRlZCB0byBtZXJnZSBmaWVsZHMgb2YgZGlmZmVyaW5nIHR5cGVzLiIse25hbWU6IkRlZXBNZXJnZUVycm9yIixrZXk6dixGVzprLHVwZGF0ZVZhbHVlOmh9KSxnLlhqKFcpLG59cmV0dXJuIGJ9Owp4TT1mdW5jdGlvbihuLFcpe3JldHVybiBuLk4ubGVuZ3RoPT09MD8hMToobj1uLk5bbi5OLmxlbmd0aC0xXSkmJm4uYnVmZmVyPT09Vy5idWZmZXImJm4uYnl0ZU9mZnNldCtuLmxlbmd0aD09PVcuYnl0ZU9mZnNldH07CkxSPWZ1bmN0aW9uKG4pe24uWD12b2lkIDA7bi5KPTA7bi5XPTB9OwplNT1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRCBvZiBXLk4pbi5hcHBlbmQoRCl9OwpnZD1mdW5jdGlvbihuLFcsRCl7dmFyIHtDczpiLFk5OnZ9PW4uc3BsaXQoVyk7KHtDczpifT12LnNwbGl0KEQpKTtyZXR1cm4gYn07ClhhPWZ1bmN0aW9uKG4sVyxEKXtuLmlzRm9jdXNlZChXKTtyZXR1cm4gVy1uLlcrRDw9bi5OW24uSl0ubGVuZ3RofTsKcUQ9ZnVuY3Rpb24obil7aWYoIW4uWCl7bGV0IFc9bi5OW24uSl07bi5YPW5ldyBEYXRhVmlldyhXLmJ1ZmZlcixXLmJ5dGVPZmZzZXQsVy5sZW5ndGgpfXJldHVybiBuLlh9OwpHNj1mdW5jdGlvbihuLFc9MCxEPS0xKXtpZighbi50b3RhbExlbmd0aHx8IUQpcmV0dXJuIG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMCkpO0Q8MCYmKEQ9bi50b3RhbExlbmd0aC1XKTtuLmZvY3VzKFcpO2lmKCFYYShuLFcsRCkpe3ZhciBiPW4uSix2PW4uVztuLmZvY3VzKFcrRC0xKTt2PW5ldyBVaW50OEFycmF5KG4uVytuLk5bbi5KXS5sZW5ndGgtdik7bGV0IGs9MDtmb3IobGV0IGg9YjtoPD1uLko7aCsrKXYuc2V0KG4uTltoXSxrKSxrKz1uLk5baF0ubGVuZ3RoO24uTi5zcGxpY2UoYixuLkotYisxLHYpO0xSKG4pO24uZm9jdXMoVyl9Yj1uLk5bbi5KXTtyZXR1cm4gbmV3IERhdGFWaWV3KGIuYnVmZmVyLGIuYnl0ZU9mZnNldCtXLW4uVyxEKX07CnRSPWZ1bmN0aW9uKG4sVz0wLEQ9LTEpe249RzYobixXLEQpO3JldHVybiBuZXcgVWludDhBcnJheShuLmJ1ZmZlcixuLmJ5dGVPZmZzZXQsbi5ieXRlTGVuZ3RoKX07CiRNPWZ1bmN0aW9uKG4sVz0wLEQ9LTEpe249dFIobixXLEQpO1c9bmV3IFVpbnQ4QXJyYXkobi5sZW5ndGgpO3RyeXtXLnNldChuKX1jYXRjaChiKXtmb3IoRD0wO0Q8bi5sZW5ndGg7RCsrKVdbRF09bltEXX1yZXR1cm4gV307CnJkPWZ1bmN0aW9uKG4sVyl7bi5mb2N1cyhXKTtyZXR1cm4gbi5OW24uSl1bVy1uLlddfTsKc3g9ZnVuY3Rpb24obixXKXtuLmZvY3VzKFcpO3JldHVybiBYYShuLFcsNCk/cUQobikuZ2V0VWludDMyKFctbi5XKToyNTYqKDI1NiooMjU2KnJkKG4sVykrcmQobixXKzEpKStyZChuLFcrMikpK3JkKG4sVyszKX07CmEyMj1mdW5jdGlvbihuKXt2YXIgVz1uZXcgVWludDhBcnJheShuLmxlbmd0aCk7Zm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKyspV1tEXT1uLmNoYXJDb2RlQXQoRCk7cmV0dXJuIFd9OwpwUj1mdW5jdGlvbihuKXtyZXR1cm4gbi5sZW5ndGg/TkQ/TkQuZGVjb2RlKG4pOlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxuKToiIn07CmcuSEc9ZnVuY3Rpb24obil7aWYoIW4ubGVuZ3RoKXJldHVybiIiO3RyeXtpZihORClyZXR1cm4gTkQuZGVjb2RlKG4pO2lmKHR5cGVvZiBGZXRjaEludGVybmFsIT09InVuZGVmaW5lZCIpcmV0dXJuIEZldGNoSW50ZXJuYWwuZGVjb2RlRnJvbVVURjgobil9Y2F0Y2h7fWZvcih2YXIgVz0wLEQ9W10sYj1uLmxlbmd0aDtXPGI7KXtsZXQgaz0wO2Zvcig7azwxMDI0JiZXPGI7KXt2YXIgdj1uW1crK107aWYodjwxMjgpe1lNW2srK109djtjb250aW51ZX1pZih2PDIyNCl2PSh2JjMxKTw8NnxuW1crK10mNjM7ZWxzZSBpZih2PDI0MCl2PSh2JjE1KTw8MTJ8KG5bVysrXSY2Myk8PDZ8bltXKytdJjYzO2Vsc2V7aWYoaysxPT09MTAyNCl7LS1XO2JyZWFrfXY9KHYmNyk8PDE4fChuW1crK10mNjMpPDwxMnwobltXKytdJjYzKTw8NnxuW1crK10mNjM7di09NjU1MzY7WU1baysrXT01NTI5Nnx2Pj4xMDt2PTU2MzIwfHYmMTAyM31ZTVtrKytdPXZ9dj1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywKWU0pO2s8MTAyNCYmKHY9di5zdWJzdHJpbmcoMCxrKSk7RC5wdXNoKHYpfXJldHVybiBELmpvaW4oIiIpfTsKSlI9ZnVuY3Rpb24obixXKXtpZihmUj8uZW5jb2RlSW50byl7bGV0IHtyZWFkOmIsd3JpdHRlbjp2fT1mUi5lbmNvZGVJbnRvKG4sVyk7cmV0dXJuIGI8bi5sZW5ndGg/bi5sZW5ndGgqNDp2fXZhciBEPTA7Zm9yKGxldCBiPTA7YjxuLmxlbmd0aDtiKyspe2xldCB2PW4uY2hhckNvZGVBdChiKTt2PDEyOD9XW0QrK109djoodjwyMDQ4P1dbRCsrXT12Pj42fDE5MjooKHYmNjQ1MTIpPT09NTUyOTYmJmIrMTxuLmxlbmd0aCYmKG4uY2hhckNvZGVBdChiKzEpJjY0NTEyKT09PTU2MzIwPyh2PTY1NTM2KygodiYxMDIzKTw8MTApKyhuLmNoYXJDb2RlQXQoKytiKSYxMDIzKSxXW0QrK109dj4+MTh8MjQwLFdbRCsrXT12Pj4xMiY2M3wxMjgpOldbRCsrXT12Pj4xMnwyMjQsV1tEKytdPXY+PjYmNjN8MTI4KSxXW0QrK109diY2M3wxMjgpfXJldHVybiBEfTsKSXc9ZnVuY3Rpb24obil7aWYoZlIpcmV0dXJuIGZSLmVuY29kZShuKTt2YXIgVz1uZXcgVWludDhBcnJheShNYXRoLmNlaWwobi5sZW5ndGgqMS4yKSksRD1KUihuLFcpO1cubGVuZ3RoPEQmJihXPW5ldyBVaW50OEFycmF5KEQpLEQ9SlIobixXKSk7Vy5sZW5ndGg+RCYmKFc9Vy5zdWJhcnJheSgwLEQpKTtyZXR1cm4gV307Cm1rPWZ1bmN0aW9uKG4sVyl7bj1uIGluc3RhbmNlb2YgVWludDhBcnJheT9uZXcgUzUoW25dKTpuO3JldHVybiBXKG5ldyBBUihuKSl9OwpLUj1mdW5jdGlvbihuKXt2YXIgVz1yZChuLk4sbi5wb3MpOysrbi5wb3M7aWYoVzwxMjgpcmV0dXJuIFc7Zm9yKHZhciBEPVcmMTI3LGI9MTtXPj0xMjg7KVc9cmQobi5OLG4ucG9zKSwrK24ucG9zLGIqPTEyOCxEKz0oVyYxMjcpKmI7cmV0dXJuIER9OwpPeD1mdW5jdGlvbihuLFcpe3ZhciBEPW4uSjtmb3Iobi5KPS0xO24ucG9zKzE8PW4uTi50b3RhbExlbmd0aDspe0Q8MCYmKEQ9S1IobikpO3ZhciBiPUQ+PjM7bGV0IHY9RCY3O2lmKGI9PT1XKXJldHVybiEwO2lmKGI+Vyl7bi5KPUQ7YnJlYWt9RD0tMTtzd2l0Y2godil7Y2FzZSAwOktSKG4pO2JyZWFrO2Nhc2UgMTpuLnBvcys9ODticmVhaztjYXNlIDI6Yj1LUihuKTtuLnBvcys9YjticmVhaztjYXNlIDU6bi5wb3MrPTR9fXJldHVybiExfTsKUEc9ZnVuY3Rpb24obixXKXtpZihPeChuLFcpKXJldHVybiBLUihuKX07Clp3PWZ1bmN0aW9uKG4sVyl7aWYoT3gobixXKSlyZXR1cm4gVz10UihuLk4sbi5wb3MsOCksbi5wb3MrPTgsKG5ldyBEYXRhVmlldyhXLmJ1ZmZlcixXLmJ5dGVPZmZzZXQsVy5ieXRlTGVuZ3RoKSkuZ2V0RmxvYXQ2NCgwLCEwKX07ClV4PWZ1bmN0aW9uKG4sVyl7aWYoT3gobixXKSlyZXR1cm4hIUtSKG4pfTsKeUE9ZnVuY3Rpb24obixXKXtpZihPeChuLFcpKXtXPUtSKG4pO3ZhciBEPXRSKG4uTixuLnBvcyxXKTtuLnBvcys9VztyZXR1cm4gRH19OwpFeD1mdW5jdGlvbihuLFcpe2lmKG49eUEobixXKSlyZXR1cm4gZy5IRyhuKX07CmloPWZ1bmN0aW9uKG4sVyxEKXtpZihuPXlBKG4sVykpcmV0dXJuIEQobmV3IEFSKG5ldyBTNShbbl0pKSl9Owp1aD1mdW5jdGlvbihuLFcpe2Zvcih2YXIgRD1bXTtPeChuLFcpOylELnB1c2goS1IobikpO3JldHVybiBELmxlbmd0aD9EOnZvaWQgMH07Cm93PWZ1bmN0aW9uKG4sVyxEKXtmb3IodmFyIGI9W10sdjt2PXlBKG4sVyk7KWIucHVzaChEKG5ldyBBUihuZXcgUzUoW3ZdKSkpKTtyZXR1cm4gYi5sZW5ndGg/Yjp2b2lkIDB9OwpkZD1mdW5jdGlvbihuLFcsRCl7aWYoVyYmRCYmRC5idWZmZXI9PT1XLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil7bGV0IGI9Vy5tZW1vcnkucmVhbGxvYyhELmJ5dGVPZmZzZXQsbik7aWYoYilyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoVy5leHBvcnRzLm1lbW9yeS5idWZmZXIsYixuKX1uPVc/bmV3IFVpbnQ4QXJyYXkoVy5leHBvcnRzLm1lbW9yeS5idWZmZXIsVy5tZW1vcnkubWFsbG9jKG4pLG4pOm5ldyBVaW50OEFycmF5KG4pO0QmJm4uc2V0KEQpO3JldHVybiBufTsKZy5saD1mdW5jdGlvbihuLFcpe3ZhciBEPW5ldyB6Nig0MDk2KTtXKEQsbik7cmV0dXJuIG5ldyBVaW50OEFycmF5KEQuTi5idWZmZXIsRC5OLmJ5dGVPZmZzZXQsRC5wb3MpfTsKVDY9ZnVuY3Rpb24obixXKXtXPW4ucG9zK1c7aWYoIShuLk4ubGVuZ3RoPj1XKSl7Zm9yKHZhciBEPW4uTi5sZW5ndGgqMjtEPFc7KUQqPTI7bi5OPWRkKEQsbi5XVixuLk4uc3ViYXJyYXkoMCxuLnBvcykpO24udmlldz1uZXcgRGF0YVZpZXcobi5OLmJ1ZmZlcixuLk4uYnl0ZU9mZnNldCxuLk4uYnl0ZUxlbmd0aCl9fTsKajU9ZnVuY3Rpb24obixXKXtpZihXPjI2ODQzNTQ1NSl7VDYobiw0KTtsZXQgRD1XJjEwNzM3NDE4MjM7Zm9yKGxldCBiPTA7Yjw0O2IrKyluLnZpZXcuc2V0VWludDgobi5wb3MsRCYxMjd8MTI4KSxEPj4+PTcsbi5wb3MrPTE7Vz1NYXRoLmZsb29yKFcvMjY4NDM1NDU2KX1mb3IoVDYobiw0KTtXPjEyNzspbi52aWV3LnNldFVpbnQ4KG4ucG9zLFcmMTI3fDEyOCksVz4+Pj03LG4ucG9zKz0xO24udmlldy5zZXRVaW50OChuLnBvcyxXKTtuLnBvcys9MX07CkNSPWZ1bmN0aW9uKG4sVyxEKXtEIT09dm9pZCAwJiYoajUobixXKjgpLGo1KG4sRCkpfTsKQkc9ZnVuY3Rpb24obixXLEQpe0QhPT12b2lkIDAmJkNSKG4sVyxEPzE6MCl9OwpnLkZhPWZ1bmN0aW9uKG4sVyxEKXtEIT09dm9pZCAwJiYoajUobixXKjgrMiksVz1ELmxlbmd0aCxqNShuLFcpLFQ2KG4sVyksbi5OLnNldChELG4ucG9zKSxuLnBvcys9Vyl9Owp3ZD1mdW5jdGlvbihuLFcsRD0yKXtqNShuLFcqOCsyKTtuLkoucHVzaChuLnBvcyk7bi5KLnB1c2goRCk7bi5wb3MrPUR9OwpNRD1mdW5jdGlvbihuKXtmb3IodmFyIFc9bi5KLnBvcCgpLEQ9bi5KLnBvcCgpLGI9bi5wb3MtRC1XO1ctLTspe2xldCB2PVc/MTI4OjA7bi52aWV3LnNldFVpbnQ4KEQrKyxiJjEyN3x2KTtiPj49N319OwpnLlJ3PWZ1bmN0aW9uKG4sVyxEKXtEIT09dm9pZCAwJiYod2QobixXLE1hdGguY2VpbChNYXRoLmxvZzIoRC5sZW5ndGgqNCsyKS83KSksVDYobixELmxlbmd0aCoxLjIpLFc9SlIoRCxuLk4uc3ViYXJyYXkobi5wb3MpKSxuLnBvcytXPm4uTi5sZW5ndGgmJihUNihuLFcpLFc9SlIoRCxuLk4uc3ViYXJyYXkobi5wb3MpKSksbi5wb3MrPVcsTUQobikpfTsKUUE9ZnVuY3Rpb24obixXLEQsYix2PTMpe0QmJih3ZChuLFcsdiksYihuLEQpLE1EKG4pKX07CmNHPWZ1bmN0aW9uKG4pe3ZhciBXPW5ldyBBUihuZXcgUzUoW2xwKGRlY29kZVVSSUNvbXBvbmVudChuKSldKSk7bj1FeChXLDIpO1c9UEcoVyw0KTt2YXIgRD1WQVtXXTtpZih0eXBlb2YgRD09PSJ1bmRlZmluZWQiKXRocm93IG49bmV3IGcuUXgoIkZhaWxlZCB0byByZWNvZ25pemUgZmllbGQgbnVtYmVyIix7bmFtZToiRW50aXR5S2V5SGVscGVyRXJyb3IiLGZpZWxkTnVtYmVyOld9KSxnLlhqKG4pLG47cmV0dXJue0RYOlcsZW50aXR5VHlwZTpELGVudGl0eUlkOm59fTsKbmY9ZnVuY3Rpb24obixXKXt2YXIgRD1uZXcgejY7Zy5GYShELDIsSXcobikpO249YXdbV107aWYodHlwZW9mIG49PT0idW5kZWZpbmVkIil0aHJvdyBXPW5ldyBnLlF4KCJGYWlsZWQgdG8gcmVjb2duaXplIGVudGl0eSB0eXBlIix7bmFtZToiRW50aXR5S2V5SGVscGVyRXJyb3IiLGVudGl0eVR5cGU6V30pLGcuWGooVyksVztDUihELDQsbik7Q1IoRCw1LDEpO1c9bmV3IFVpbnQ4QXJyYXkoRC5OLmJ1ZmZlcixELk4uYnl0ZU9mZnNldCxELnBvcyk7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChnLkVBKFcsMCkpfTsKV2U9ZnVuY3Rpb24obil7bj1uLmtleXx8bi5pZDtpZighbil0aHJvdyBFcnJvcigiRW50aXR5IGtleSBpcyBtaXNzaW5nIik7cmV0dXJuIG59OwpERz1mdW5jdGlvbihuLFcsRCxiKXtpZihiPT09dm9pZCAwKXtsZXQge1tEXTp2LC4uLmt9PW5bV118fHt9O3JldHVybnsuLi5uLFtXXTprfX1yZXR1cm57Li4ubixbV106ey4uLm5bV10sW0RdOmJ9fX07CmJCPWZ1bmN0aW9uKG4sVyxELGIsdil7dmFyIGs9bltXXXx8e30saD1rW0RdO2lmKCFoJiYhZy5sKCJ3ZWJfZW5hYmxlX2VudGl0eV91cHNlcnRfb25fdXBkYXRlIikpcmV0dXJuIG47Yj1oUihofHx7fSxiLHY9PT0iUkVQRUFURURfRklFTERTX01FUkdFX09QVElPTl9BUFBFTkQiKTtyZXR1cm57Li4ubixbV106ey4uLmssW0RdOmJ9fX07Cm5taD1mdW5jdGlvbihuPXt9LFcpe3N3aXRjaChXLnR5cGUpe2Nhc2UgIkVOVElUWV9MT0FERUQiOnJldHVybiBXLnBheWxvYWQucmVkdWNlKChELGIpPT57dmFyIHY9Yi5vcHRpb25zPy5wZXJzaXN0ZW5jZU9wdGlvbjtpZih2JiZ2IT09IkVOVElUWV9QRVJTSVNURU5DRV9PUFRJT05fVU5LTk9XTiImJnYhPT0iRU5USVRZX1BFUlNJU1RFTkNFX09QVElPTl9JTk1FTU9SWV9BTkRfUEVSU0lTVCIpcmV0dXJuIEQ7aWYoIWIuZW50aXR5S2V5KXJldHVybiBnLlhqKEVycm9yKCJNaXNzaW5nIGVudGl0eSBrZXkiKSksRDtpZihiLnR5cGU9PT0iRU5USVRZX01VVEFUSU9OX1RZUEVfUkVQTEFDRSIpe2lmKCFiLnBheWxvYWQpcmV0dXJuIGI9bmV3IGcuUXgoIlJFUExBQ0UgZW50aXR5IG11dGF0aW9uIGlzIG1pc3NpbmcgYSBwYXlsb2FkIix7ZW50aXR5S2V5OmIuZW50aXR5S2V5fSksZy5YaihiKSxEO3ZhciBrPXZ4KGIucGF5bG9hZCk7cmV0dXJuIERHKEQsayxiLmVudGl0eUtleSxiLnBheWxvYWRba10pfWlmKGIudHlwZT09PQoiRU5USVRZX01VVEFUSU9OX1RZUEVfREVMRVRFIil7YTp7Yj1iLmVudGl0eUtleTt0cnl7bGV0IGg9Y0coYikuZW50aXR5VHlwZTtrPURHKEQsaCxiKTticmVhayBhfWNhdGNoKGgpe2lmKGggaW5zdGFuY2VvZiBFcnJvcil7Yj1uZXcgZy5ReCgiRmFpbGVkIHRvIGRlc2VyaWFsaXplIGVudGl0eSBrZXkiLHtlbnRpdHlLZXk6YixvcmlnaW5hbE1lc3NhZ2U6aC5tZXNzYWdlfSk7Zy5YaihiKTtrPUQ7YnJlYWsgYX10aHJvdyBoO31rPXZvaWQgMH1yZXR1cm4ga31pZihiLnR5cGU9PT0iRU5USVRZX01VVEFUSU9OX1RZUEVfVVBEQVRFIil7aWYoIWIucGF5bG9hZClyZXR1cm4gYj1uZXcgZy5ReCgiVVBEQVRFIGVudGl0eSBtdXRhdGlvbiBpcyBtaXNzaW5nIGEgcGF5bG9hZCIse2VudGl0eUtleTpiLmVudGl0eUtleX0pLGcuWGooYiksRDtrPXZ4KGIucGF5bG9hZCk7cmV0dXJuIGJCKEQsayxiLmVudGl0eUtleSxiLnBheWxvYWRba10sYi5maWVsZE1hc2s/Lm1lcmdlT3B0aW9ucz8ucmVwZWF0ZWRGaWVsZHNNZXJnZU9wdGlvbil9cmV0dXJuIER9LApuKTsKY2FzZSAiUkVQTEFDRV9FTlRJVFkiOnJldHVybiBERyhuLFcucGF5bG9hZC5lbnRpdHlUeXBlLFcucGF5bG9hZC5rZXksVy5wYXlsb2FkLmc4KTtjYXNlICJSRVBMQUNFX0VOVElUSUVTIjpyZXR1cm4gT2JqZWN0LmtleXMoVy5wYXlsb2FkKS5yZWR1Y2UoKEQsYik9Pnt2YXIgdj1XLnBheWxvYWRbYl07cmV0dXJuIE9iamVjdC5rZXlzKHYpLnJlZHVjZSgoayxoKT0+REcoayxiLGgsdltoXSksRCl9LG4pOwpjYXNlICJVUERBVEVfRU5USVRZIjpyZXR1cm4gYkIobixXLnBheWxvYWQuZW50aXR5VHlwZSxXLnBheWxvYWQua2V5LFcucGF5bG9hZC5nOCxXLnBheWxvYWQublApO2RlZmF1bHQ6cmV0dXJuIG59fTsKVzRVPWZ1bmN0aW9uKCl7aWYodmUpcmV0dXJuIHZlKCk7dmU9a08oIlBlcnNpc3RlbnRFbnRpdHlTdG9yZURiIix7S2M6e0VudGl0eVN0b3JlOnt2eDoxfSxFbnRpdHlBc3NvY2lhdGlvblN0b3JlOnt2eDoyfX0sc2hhcmVkOiExLHVwZ3JhZGUobixXKXtXKDEpJiZFUihaeShuLCJFbnRpdHlTdG9yZSIse2tleVBhdGg6ImtleSJ9KSwiZW50aXR5VHlwZSIsImVudGl0eVR5cGUiKTtXKDIpJiYobj1aeShuLCJFbnRpdHlBc3NvY2lhdGlvblN0b3JlIix7a2V5UGF0aDpbInBhcmVudEVudGl0eUtleSIsImNoaWxkRW50aXR5S2V5Il19KSxFUihuLCJieVBhcmVudEVudGl0eUtleSIsInBhcmVudEVudGl0eUtleSIpLEVSKG4sImJ5Q2hpbGRFbnRpdHlLZXkiLCJjaGlsZEVudGl0eUtleSIpKX0sdmVyc2lvbjozfSk7cmV0dXJuIHZlKCl9OwpEZlM9ZnVuY3Rpb24obil7cmV0dXJuIENGKFc0VSgpLG4pfTsKayQ9ZnVuY3Rpb24obil7cmV0dXJuIHdpbmRvdy5JbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KG4pOkFycmF5KG4pfTsKWDg9ZnVuY3Rpb24obil7dmFyIFc9bi5rZXksRD1uLmNvdW50ZXJbMF1eV1swXSxiPW4uY291bnRlclsxXV5XWzFdLHY9bi5jb3VudGVyWzJdXldbMl0saz1uLmNvdW50ZXJbM11eV1szXTtmb3IodmFyIGg9MztoPj0wJiYhKG4uY291bnRlcltoXT0tfm4uY291bnRlcltoXSk7aC0tKTtmb3IodmFyIHgsTCxlPTQ7ZTw0MDspaD1oRVtEPj4+MjRdXngkW2I+PjE2JjI1NV1eTGZbdj4+OCYyNTVdXmVZW2smMjU1XV5XW2UrK10seD1oRVtiPj4+MjRdXngkW3Y+PjE2JjI1NV1eTGZbaz4+OCYyNTVdXmVZW0QmMjU1XV5XW2UrK10sTD1oRVt2Pj4+MjRdXngkW2s+PjE2JjI1NV1eTGZbRD4+OCYyNTVdXmVZW2ImMjU1XV5XW2UrK10saz1oRVtrPj4+MjRdXngkW0Q+PjE2JjI1NV1eTGZbYj4+OCYyNTVdXmVZW3YmMjU1XV5XW2UrK10sRD1oLGI9eCx2PUw7bj1uLko7aD1XWzQwXTtuWzBdPWdOW0Q+Pj4yNF1eaD4+PjI0O25bMV09Z05bYj4+MTYmMjU1XV5oPj4xNiYyNTU7blsyXT1nTlt2Pj44JgoyNTVdXmg+PjgmMjU1O25bM109Z05bayYyNTVdXmgmMjU1O2g9V1s0MV07bls0XT1nTltiPj4+MjRdXmg+Pj4yNDtuWzVdPWdOW3Y+PjE2JjI1NV1eaD4+MTYmMjU1O25bNl09Z05baz4+OCYyNTVdXmg+PjgmMjU1O25bN109Z05bRCYyNTVdXmgmMjU1O2g9V1s0Ml07bls4XT1nTlt2Pj4+MjRdXmg+Pj4yNDtuWzldPWdOW2s+PjE2JjI1NV1eaD4+MTYmMjU1O25bMTBdPWdOW0Q+PjgmMjU1XV5oPj44JjI1NTtuWzExXT1nTltiJjI1NV1eaCYyNTU7aD1XWzQzXTtuWzEyXT1nTltrPj4+MjRdXmg+Pj4yNDtuWzEzXT1nTltEPj4xNiYyNTVdXmg+PjE2JjI1NTtuWzE0XT1nTltiPj44JjI1NV1eaD4+OCYyNTU7blsxNV09Z05bdiYyNTVdXmgmMjU1fTsKdEU9ZnVuY3Rpb24oKXtpZighcWEmJiFnLlJnKXtpZihHcilyZXR1cm4gR3I7R3I9d2luZG93LmNyeXB0bz8uc3VidGxlO2lmKEdyPy5pbXBvcnRLZXkmJkdyPy5zaWduJiZHcj8uZW5jcnlwdClyZXR1cm4gR3I7R3I9dm9pZCAwfX07CmJoMT1hc3luYyBmdW5jdGlvbihuLFcsRCl7bi5OfHwobi5OPWF3YWl0IG4uSi5pbXBvcnRLZXkoInJhdyIsbi5XLHtuYW1lOiJBRVMtQ1RSIn0sITEsWyJlbmNyeXB0Il0pKTtuPWF3YWl0IG4uSi5lbmNyeXB0KHtuYW1lOiJBRVMtQ1RSIixjb3VudGVyOkQsbGVuZ3RoOjEyOH0sbi5OLFcpO3JldHVybiBuZXcgVWludDhBcnJheShuKX07CiQkPWZ1bmN0aW9uKG4pe24uTj1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdO24uSz1bXTtuLksubGVuZ3RoPTY0O24uWD0wO24uSj0wfTsKc2U9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uSyx2PW4uTlswXSxrPW4uTlsxXSxoPW4uTlsyXSx4PW4uTlszXSxMPW4uTls0XSxlPW4uTls1XSxHPW4uTls2XSxyPW4uTls3XSxOO2ZvcihsZXQgeT0wO3k8NjQ7KXtpZih5PDE2KWJbeV09Tj1XW0RdPDwyNHxXW0QrMV08PDE2fFdbRCsyXTw8OHxXW0QrM10sRCs9NDtlbHNle3ZhciBIPWJbeS0yXTt2YXIgQT1iW3ktMTVdO049Ylt5LTddK2JbeS0xNl0rKChIPj4+MTd8SDw8MTUpXihIPj4+MTl8SDw8MTMpXkg+Pj4xMCkrKChBPj4+N3xBPDwyNSleKEE+Pj4xOHxBPDwxNCleQT4+PjMpO2JbeV09Tn1IPXIrck5beV0rTisoKEw+Pj42fEw8PDI2KV4oTD4+PjExfEw8PDIxKV4oTD4+PjI1fEw8PDcpKSsoTCZlXn5MJkcpO0E9KCh2Pj4+Mnx2PDwzMCleKHY+Pj4xM3x2PDwxOSleKHY+Pj4yMnx2PDwxMCkpKyh2JmtediZoXmsmaCk7cj1IK0E7eCs9SDt5Kys7eTwxNj8oYlt5XT1OPVdbRF08PDI0fFdbRCsxXTw8MTZ8V1tEKzJdPDw4fFdbRCsKM10sRCs9NCk6KEg9Ylt5LTJdLEE9Ylt5LTE1XSxOPWJbeS03XStiW3ktMTZdKygoSD4+PjE3fEg8PDE1KV4oSD4+PjE5fEg8PDEzKV5IPj4+MTApKygoQT4+Pjd8QTw8MjUpXihBPj4+MTh8QTw8MTQpXkE+Pj4zKSxiW3ldPU4pO0g9RytyTlt5XStOKygoeD4+PjZ8eDw8MjYpXih4Pj4+MTF8eDw8MjEpXih4Pj4+MjV8eDw8NykpKyh4JkxefngmZSk7QT0oKHI+Pj4yfHI8PDMwKV4ocj4+PjEzfHI8PDE5KV4ocj4+PjIyfHI8PDEwKSkrKHImdl5yJmtediZrKTtHPUgrQTtoKz1IO3krKzt5PDE2PyhiW3ldPU49V1tEXTw8MjR8V1tEKzFdPDwxNnxXW0QrMl08PDh8V1tEKzNdLEQrPTQpOihIPWJbeS0yXSxBPWJbeS0xNV0sTj1iW3ktN10rYlt5LTE2XSsoKEg+Pj4xN3xIPDwxNSleKEg+Pj4xOXxIPDwxMyleSD4+PjEwKSsoKEE+Pj43fEE8PDI1KV4oQT4+PjE4fEE8PDE0KV5BPj4+MyksYlt5XT1OKTtIPWUrck5beV0rTisoKGg+Pj42fGg8PDI2KV4oaD4+PjExfGg8PDIxKV4oaD4+PjI1fApoPDw3KSkrKGgmeF5+aCZMKTtBPSgoRz4+PjJ8Rzw8MzApXihHPj4+MTN8Rzw8MTkpXihHPj4+MjJ8Rzw8MTApKSsoRyZyXkcmdl5yJnYpO2U9SCtBO2srPUg7eSsrO3k8MTY/KGJbeV09Tj1XW0RdPDwyNHxXW0QrMV08PDE2fFdbRCsyXTw8OHxXW0QrM10sRCs9NCk6KEg9Ylt5LTJdLEE9Ylt5LTE1XSxOPWJbeS03XStiW3ktMTZdKygoSD4+PjE3fEg8PDE1KV4oSD4+PjE5fEg8PDEzKV5IPj4+MTApKygoQT4+Pjd8QTw8MjUpXihBPj4+MTh8QTw8MTQpXkE+Pj4zKSxiW3ldPU4pO0g9TCtyTlt5XStOKygoaz4+PjZ8azw8MjYpXihrPj4+MTF8azw8MjEpXihrPj4+MjV8azw8NykpKyhrJmhefmsmeCk7QT0oKGU+Pj4yfGU8PDMwKV4oZT4+PjEzfGU8PDE5KV4oZT4+PjIyfGU8PDEwKSkrKGUmR15lJnJeRyZyKTtOPXI7cj14O3g9TjtOPUc7Rz1oO2g9TjtOPWU7ZT1rO2s9TjtMPXYrSDt2PUgrQTt5Kyt9bi5OWzBdPXYrbi5OWzBdfDA7bi5OWzFdPWsrbi5OWzFdfDA7bi5OWzJdPWgrbi5OWzJdfAowO24uTlszXT14K24uTlszXXwwO24uTls0XT1MK24uTls0XXwwO24uTls1XT1lK24uTls1XXwwO24uTls2XT1HK24uTls2XXwwO24uTls3XT1yK24uTls3XXwwfTsKTmE9ZnVuY3Rpb24obil7dmFyIFc9bmV3IFVpbnQ4QXJyYXkoMzIpLEQ9NjQtbi5KO24uSj41NSYmKEQrPTY0KTt2YXIgYj1uZXcgVWludDhBcnJheShEKTtiWzBdPTEyODt2YXIgdj1uLlgqODtmb3IobGV0IGs9MTtrPDk7aysrKXtsZXQgaD12JTI1NjtiW0Qta109aDt2PSh2LWgpLzI1Nn1uLnVwZGF0ZShiKTtmb3IoRD0wO0Q8ODtEKyspV1tEKjRdPW4uTltEXT4+PjI0LFdbRCo0KzFdPW4uTltEXT4+PjE2JjI1NSxXW0QqNCsyXT1uLk5bRF0+Pj44JjI1NSxXW0QqNCszXT1uLk5bRF0mMjU1OyQkKG4pO3JldHVybiBXfTsKcGY9ZnVuY3Rpb24obixXLEQpe249bmV3IHZtaShuLk4pO24udXBkYXRlKFcpO24udXBkYXRlKEQpO1c9TmEobik7bi51cGRhdGUobi5qKTtuLnVwZGF0ZShXKTtXPU5hKG4pO24ucmVzZXQoKTtyZXR1cm4gV307CmtTaj1hc3luYyBmdW5jdGlvbihuLFcsRCl7bi5OfHwobi5OPWF3YWl0IG4uSi5pbXBvcnRLZXkoInJhdyIsbi5XLHtuYW1lOiJITUFDIixoYXNoOiJTSEEtMjU2In0sITEsWyJzaWduIl0pKTt2YXIgYj1uZXcgVWludDhBcnJheShXLmxlbmd0aCtELmxlbmd0aCk7Yi5zZXQoVyk7Yi5zZXQoRCxXLmxlbmd0aCk7bj1hd2FpdCBuLkouc2lnbih7bmFtZToiSE1BQyIsaGFzaDoiU0hBLTI1NiJ9LG4uTixiKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkobil9Owp4ZlM9YXN5bmMgZnVuY3Rpb24obixXLEQsYil7bi5KfHwobi5KPW5ldyBoYXcobi5OLGIpKTtyZXR1cm4ga1NqKG4uSixXLEQpfTsKSGU9ZnVuY3Rpb24obixXLEQpe24uV3x8KG4uVz1uZXcgWSQobi5OKSk7cmV0dXJuIHBmKG4uVyxXLEQpfTsKTDRaPWFzeW5jIGZ1bmN0aW9uKG4sVyxEKXt2YXIgYj10RSgpO2lmKGIpdHJ5e3JldHVybiBhd2FpdCB4ZlMobixXLEQsYil9Y2F0Y2godil7cmV0dXJuIGcuR3EodikscWE9ITAsSGUobixXLEQpfWVsc2UgcmV0dXJuIEhlKG4sVyxEKX07CmVhVT1mdW5jdGlvbihuKXtyZXR1cm4gbiBpbnN0YW5jZW9mIEVycm9yP25ldyBmZigiVU5LTk9XTl9FTkNPREVfRVJST1IiLHtvcmlnaW5hbE1lc3NhZ2U6bi5tZXNzYWdlfSk6bmV3IGZmKCJVTktOT1dOX0VOQ09ERV9FUlJPUiIpfTsKZ20yPWZ1bmN0aW9uKG4pe3JldHVybiBuIGluc3RhbmNlb2YgRXJyb3I/bmV3IGZmKCJVTktOT1dOX0RFQ09ERV9FUlJPUiIse29yaWdpbmFsTWVzc2FnZTpuLm1lc3NhZ2V9KTpuZXcgZmYoIlVOS05PV05fREVDT0RFX0VSUk9SIil9OwpKRT1mdW5jdGlvbihuLFcpe249biBpbnN0YW5jZW9mIGZmP246VyhuKTtnLlhqKG4pO3Rocm93IG47fTsKSTg9ZnVuY3Rpb24obil7bj0obmV3IFRleHRFbmNvZGVyKS5lbmNvZGUobikuc3ViYXJyYXkoMCwxNik7dmFyIFc9bmV3IFVpbnQ4QXJyYXkoMTYpO1cuc2V0KG4pO3JldHVybiBXfTsKcXNVPWZ1bmN0aW9uKCl7dmFyIG49WHlVLnZpZGVvUGxheWJhY2tQb3NpdGlvbkVudGl0eTtpZihuKXJldHVybiBuO2cuR3EobmV3IGcuUXgoIkVudGl0eSBtb2RlbCBub3QgZm91bmQuIix7ZW50aXR5VHlwZToidmlkZW9QbGF5YmFja1Bvc2l0aW9uRW50aXR5In0pKX07CkFFPWZ1bmN0aW9uKG4sVyl7YTp7bj1TWShuLlcsVy52ZXJzaW9uKTt0cnl7dmFyIEQ9bi5KKFcuZGF0YSxXLmtleSk7YnJlYWsgYX1jYXRjaChiKXtKRShiLGdtMil9RD12b2lkIDB9cmV0dXJuIER9OwpHU3c9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5OLm9iamVjdFN0b3JlKCJFbnRpdHlTdG9yZSIpLmluZGV4KCJlbnRpdHlUeXBlIikuZ2V0QWxsKElEQktleVJhbmdlLm9ubHkoVykpLnRoZW4oRD0+RC5tYXAoYj0+QUUobixiKSkpfTsKJGZpPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9V2UoVyk7cmV0dXJuIG1MKG4sRCkudGhlbigoKT0+dENoKG4sVykpfTsKS2Y9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uSltEXTtifHwoYj1uZXcgU2V0LG4uSltEXT1iKTtiLmFkZChXKX07CnIzWj1mdW5jdGlvbihuLFcpe3ZhciBEPVdlKFcpLGI9U1kobi5XLDEpLHY9ey4uLld9O3JldHVybiBuLk4ub2JqZWN0U3RvcmUoIkVudGl0eVN0b3JlIikuZ2V0KEQpLnRoZW4oaz0+e2lmKGspe2lmKGsuZW50aXR5VHlwZSE9PSJ2aWRlb1BsYXliYWNrUG9zaXRpb25FbnRpdHkiKXRocm93IEVycm9yKCJJbmNvcnJlY3QgZW50aXR5IHR5cGUiKTt2LmVudGl0eU1ldGFkYXRhfHwoaz1BRShuLGspLHYuZW50aXR5TWV0YWRhdGE9ay5lbnRpdHlNZXRhZGF0YSl9fSkudGhlbigoKT0+e2E6e3RyeXt2YXIgaz1iLlcodixEKTsKYnJlYWsgYX1jYXRjaChoKXtKRShoLGVhVSl9az12b2lkIDB9az17a2V5OkQsZW50aXR5VHlwZToidmlkZW9QbGF5YmFja1Bvc2l0aW9uRW50aXR5IixkYXRhOmssdmVyc2lvbjoxfTtyZXR1cm4gc1IuYWxsKFtuLk4ub2JqZWN0U3RvcmUoIkVudGl0eVN0b3JlIikucHV0KGspLCRmaShuLHYpXSl9KS50aGVuKCgpPT57S2YobixELCJ2aWRlb1BsYXliYWNrUG9zaXRpb25FbnRpdHkiKTsKcmV0dXJuIER9KX07Ck9lPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Y0coVykuZW50aXR5VHlwZTtyZXR1cm4gc1IuYWxsKFtuLk4ub2JqZWN0U3RvcmUoIkVudGl0eVN0b3JlIikuZGVsZXRlKFcpLG1MKG4sVyldKS50aGVuKCgpPT57S2YobixXLEQpfSl9OwptTD1mdW5jdGlvbihuLFcpe3JldHVybiBuLk4ub2JqZWN0U3RvcmUoIkVudGl0eUFzc29jaWF0aW9uU3RvcmUiKS5pbmRleCgiYnlQYXJlbnRFbnRpdHlLZXkiKS5kZWxldGUoSURCS2V5UmFuZ2Uub25seShXKSl9OwpzeHI9ZnVuY3Rpb24obixXKXtXPVcubWFwKEQ9Pk9lKG4sRCkpOwpyZXR1cm4gc1IuYWxsKFcpLnRoZW4oKCk9Pnt9KX07CnRDaD1mdW5jdGlvbihuLFcpe3ZhciBEPVdlKFcpLGI9cXNVKCk7aWYoIWIpcmV0dXJuIHNSLnJlc29sdmUoW10pO1c9bmV3IGIoVyk7bj1uLk4ub2JqZWN0U3RvcmUoIkVudGl0eUFzc29jaWF0aW9uU3RvcmUiKTtiPVtdO2ZvcihsZXQgdiBvZiBXLkooKSliLnB1c2gobi5wdXQoe3BhcmVudEVudGl0eUtleTpELGNoaWxkRW50aXR5S2V5OnZ9KSk7cmV0dXJuIHNSLmFsbChiKS50aGVuKHY9PnYubWFwKGs9PmtbMV0pKX07ClNZPWZ1bmN0aW9uKG4sVz0wKXtuPW4uTltXXTtpZighbil0aHJvdyBXPW5ldyBmZigiSU5WQUxJRF9FTkNPREVSX1ZFUlNJT04iLHtPQTpXfSksZy5YaihXKSxXO3JldHVybiBufTsKUGU9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgb2Ygbi5vYnNlcnZlcnMpRChXKX07ClpHPWFzeW5jIGZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1hd2FpdCBEZlMobi50b2tlbiksdjtXPWF3YWl0IE9SKGIsWyJFbnRpdHlTdG9yZSIsIkVudGl0eUFzc29jaWF0aW9uU3RvcmUiXSxXLGs9Pnt2PW5ldyBOR3coayxuLk4pO3JldHVybiBEKHYpfSk7CnYmJihiPXYuSixPYmplY3Qua2V5cyhiKS5sZW5ndGg+MCYmKG4uY2hhbm5lbC5wb3N0TWVzc2FnZShiKSxQZShuLGIpKSk7cmV0dXJuIFd9OwpweXQ9ZnVuY3Rpb24obixXKXtyZXR1cm4gWkcobix7bW9kZToicmVhZHdyaXRlIixHUTohMH0sRD0+cjNaKEQsVykpfTsKWXNNPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFpHKG4se21vZGU6InJlYWR3cml0ZSIsR1E6ITB9LEQ9Pk9lKEQsVykpfTsKSGh3PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFpHKG4se21vZGU6InJlYWR3cml0ZSIsR1E6ITB9LEQ9PnN4cihELFcpKX07ClVlPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFpHKG4se21vZGU6InJlYWRvbmx5IixHUTohMH0sRD0+R1N3KEQsVykpfTsKSTkyPWFzeW5jIGZ1bmN0aW9uKCl7dHJ5e2xldCBXPWF3YWl0IGcublAoKTtpZihXJiZSOSgpJiZ0eXBlb2YgZy5xaS5Ccm9hZGNhc3RDaGFubmVsIT09InVuZGVmaW5lZCIpe3ZhciBuPW5ldyBmOWk7cmV0dXJuIG5ldyBKM2koVyxuKX19Y2F0Y2goVyl7VyBpbnN0YW5jZW9mIEVycm9yJiZnLlhqKFcpfX07CnlXPWZ1bmN0aW9uKCl7dmFyIG49WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLmZldGNoO3JldHVybiEhbiYmbi5sZW5ndGg9PT0zfTsKRWU9ZnVuY3Rpb24obixXKXtXPU51bWJlcihXKSoxRTM7dmFyIEQ9TWF0aC5yb3VuZCgoMCxnLlIpKCkpLGI9RC50b1N0cmluZygpO249e2lubmVydHViZVJlc3BvbnNlOm4sc2VydmVyRGF0ZVRpbWVzdGFtcE1zOmIsbGFzdE1vZGlmaWVkVGltZXN0YW1wTXM6YixleHBpcmVUaW1lc3RhbXBNczooRCtXKS50b1N0cmluZygpLGlzUHJvY2Vzc2VkOiEwfTtpZihXPWcuQXIoIklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9OQU1FIikpbi5jbGllbnROYW1lPVc7cmV0dXJuIG59Owp1Qj1mdW5jdGlvbihuLFcsRCl7aWYoIWcubCgic3RhdGVfdGFnc19raWxsc3dpdGNoIikpe3ZhciBiPW5ldyBpQihXKTtpZigoYi5OPy5zdGF0ZVRhZ3NNb2RpZmllZHx8W10pLmxlbmd0aD4wKXt2YXIgdj1uLk4udUIoKTtmb3IobGV0IGggb2Ygdil7dmFyIGs9dkcobi5OLGgpO2lmKGspe2E6e3Y9Yi5OPy5zdGF0ZVRhZ3NNb2RpZmllZHx8W107az0obmV3IGlCKHFyKGspKSkuTj8ucmVsZXZhbnRTdGF0ZVRhZ3N8fFtdO2ZvcihsZXQgeCBvZiBrKWlmKHguc3RhdGVUYWchPW51bGwmJnYuaW5jbHVkZXMoeC5zdGF0ZVRhZykmJngub25TdGF0ZVRhZ01vZGlmaWVkPT09IlNUQVRFX1RBR19DQUNIRV9JTlNUUlVDVElPTl9FVklDVF9SRVNQT05TRSIpe3Y9ITA7YnJlYWsgYX12PSExfXYmJmtNKG4uTixoKX19fX1iPVcucmVzcG9uc2VDb250ZXh0Py5tYXhBZ2VTZWNvbmRzO0QmJmImJk51bWJlcihiKT4wJiYoVz1FZShXLGIpLG4uTi5wdXQoRCxuZXcgYmgoVykpKX07ClNzWj1mdW5jdGlvbihuLFcsRCl7aWYobi5OKXtsZXQgYj1TMShUNShXLCJrZXkiKSl8fCIvVU5LTk9XTl9QQVRIIjtuLk4uc3RhcnQoYil9bj1EO2cubCgid3VnX25ldHdvcmtpbmdfZ3ppcF9yZXF1ZXN0IikmJihuPU1YUyhEKSk7cmV0dXJuIG5ldyB3aW5kb3cuUmVxdWVzdChXLG4pfTsKZE49YXN5bmMgZnVuY3Rpb24obixXLEQsYix2LGspe2lmKGs/LmFib3J0ZWQpcmV0dXJuIFcuY2FuY2VsKCksYjt2YXIge3ZhbHVlOmgsZG9uZTp4fT1hd2FpdCBXLnJlYWQoKTtpZih4KXJldHVybiBuLk4/LnN1Y2Nlc3MoKSxiO3RyeXt2YXIgTD1ELnBhcnNlKGgpfWNhdGNoKGUpe3Rocm93IG5ldyBvOCgiRmFpbGVkIHRvIHBhcnNlIHN0cmVhbWluZyByZXNwb25zZSIsaCk7fWlmKEwhPW51bGwpZm9yKGxldCBlIG9mIEwpYi5wdXNoKGUpLHY/LihlKTtyZXR1cm4gZE4obixXLEQsYix2LGspfTsKbmM9ZnVuY3Rpb24obixXLEQpe2lmKCF6cil7bGV0IGs9Zy5xaigpO2cueG8oayx7Tkg6bEIsWUw6VHJ9KTtpZihEPy5vUyl7Zy54byhrLHtOSDpqWSxQZjpnLkFyKCJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsRC5jbGllbnRJbnRlcmZhY2UpfSk7Zy54byhrLHtOSDpDZixQZjo1MTg0RTZ9KTtnLnhvKGsse05IOkJlLFlMOkEzaixbZy5MWF06W2pZLENmXX0pO2cueG8oayx7Tkg6RjgsWUw6d059KTt2YXIgYj1rLnJlc29sdmUoRjgpO2xldCBoPXdpbmRvdztpZihoLnl0SW5pdGlhbFZpZGVvSWQpe3ZhciB2PWgueXRJbml0aWFsVmlkZW9JZDtoLnl0SW5pdGlhbFBsYXllclJlc3BvbnNlJiZ1QihiLGgueXRJbml0aWFsUGxheWVyUmVzcG9uc2UseUgoInBsYXllciIse3ZpZGVvSWQ6dn0pKTtoLnl0SW5pdGlhbFdhdGNoTmV4dFJlc3BvbnNlJiZ1QihiLGgueXRJbml0aWFsV2F0Y2hOZXh0UmVzcG9uc2UseUgoIm5leHQiLHt2aWRlb0lkOnZ9KSk7aC55dEluaXRpYWxSZWVsSXRlbVdhdGNoUmVzcG9uc2UmJgp1QihiLGgueXRJbml0aWFsUmVlbEl0ZW1XYXRjaFJlc3BvbnNlLHlIKCJyZWVsX2l0ZW1fd2F0Y2giLHt2aWRlb0lkOnZ9KSl9fWcueG8oayx7Tkg6TWEsUGY6e3pnOntmZWVkYmFja0VuZHBvaW50OmhtKG1mUyksbW9kaWZ5Q2hhbm5lbE5vdGlmaWNhdGlvblByZWZlcmVuY2VFbmRwb2ludDpobShLNGkpLHBsYXlsaXN0RWRpdEVuZHBvaW50OmhtKE9ociksc2hhcmVFbnRpdHlFbmRwb2ludDpobShSOCksc3Vic2NyaWJlRW5kcG9pbnQ6aG0oUEd4KSx1bnN1YnNjcmliZUVuZHBvaW50OmhtKFpodCksd2ViUGxheWVyU2hhcmVFbnRpdHlTZXJ2aWNlRW5kcG9pbnQ6aG0oVWZaKX19fSk7dj1iJC5nZXRJbnN0YW5jZSgpO2I9e307diYmKGIuY2xpZW50X2xvY2F0aW9uPXYpO0Q/Lm9TJiYodj1rLnJlc29sdmUoRjgpLGIuc3RvcmU9dixiLnJlc29sdmVfdXJsX3ByZWZldGNoPWsucmVzb2x2ZShRVykpO2cueG8oayx7Tkg6VlcsUGY6Yn0pO2cueG8oayx7Tkg6Y2UsUGY6biE9PXZvaWQgMD8KbjppTygpfSk7Vz09PXZvaWQgMCYmKFc9ay5yZXNvbHZlKGxCKSk7Zy5sKCJhbGxfd2ViX2VuYWJsZV9uZXR3b3JrX21hY2hpbmUiKSYmY1MyKCk7RTliKGsucmVzb2x2ZShNYSksVyxrLnJlc29sdmUoY2UpLGsucmVzb2x2ZShWVyksRD8ub1M/ay5yZXNvbHZlKEJlKTp2b2lkIDApO2cueG8oayx7Tkg6YTgsUGY6WDcuaW5zdGFuY2V9KTt6cj1rLnJlc29sdmUoYTgpfXJldHVybiB6cn07CldRPWZ1bmN0aW9uKG4pe3ZhciBXPXt9O249bi5zcGxpdCgiJiIpO2ZvcihsZXQgRCBvZiBuKW49RC5zcGxpdCgiPSIpLG4ubGVuZ3RoPT09MiYmKFdbblswXV09blsxXSk7cmV0dXJuIFd9Owp5M3I9YXN5bmMgZnVuY3Rpb24oKXt2YXIgbj13aW5kb3c7YXdhaXQgZy5NaChnLkQ2KCkpO3ZhciBXPW4uYmdldm1jO2lmKCFXKXRocm93IEVycm9yKCJCR0UgQ29udHJvbHMgbm90IGV4cG9zZWQiKTtyZXR1cm57cGF1c2U6KCk9PntXLnAoKX0sCnJlc3VtZTooKT0+e1cucigpfSwKY2hlY2tGb3JSZWZyZXNoOigpPT5XLmNyKCl9fTsKZy5ENj1mdW5jdGlvbigpe3JldHVybiBnLmwoImJnX3N0X2hyIik/ImhhdnVva21oaHMtMCI6YGhhdnVva21oaHMtJHtNYXRoLmZsb29yKGdsb2JhbFRoaXMucGVyZm9ybWFuY2U/LnRpbWVPcmlnaW58fDApfWB9OwpiMD1mdW5jdGlvbihuKXt3aW5kb3cuYmdlbnM9bn07CkVteD1mdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZShuPT57dmFyIFc9d2luZG93O1cubnRwZXZhc3JzIT09dm9pZCAwP24obmV3IHZRKFcubnRwZXZhc3JzKSk6KFcubnRwcWZiZWw9PT12b2lkIDAmJihXLm50cHFmYmVsPVtdKSxXLm50cHFmYmVsLnB1c2goRD0+e24obmV3IHZRKEQpKX0pKX0pfTsKeDU9ZnVuY3Rpb24oKXtpZihnLmFLKCkpe3ZhciBuPWcuQXIoIlBMQVlFUl9WQVJTIix7fSk7aWYoZy4keShuLCJwcml2ZW1iZWQiLCExKSE9IjEiJiYhZy54UihuKSl7dmFyIFc9KCk9PntrNT0hMDsiZ29vZ2xlX2FkX3N0YXR1cyJpbiB3aW5kb3c/Zy5TSCgiRENMS1NUQVQiLDEpOmcuU0goIkRDTEtTVEFUIiwyKX07CnRyeXtsZXQgRD1Taihkb2N1bWVudCk7aU0oaGosVyxEKX1jYXRjaChEKXt9aWhDLnB1c2godGEuTFMoKCk9PntpZighKGs1fHwiZ29vZ2xlX2FkX3N0YXR1cyJpbiB3aW5kb3cpKXt0cnl7aWYoaGoudG9TdHJpbmcoKSYmVyl7dmFyIEQ9YCR7QWkoVyl9YCxiPW9JW0RdO2ImJlBVKGIpfX1jYXRjaCh2KXt9azU9ITA7Zy5TSCgiRENMS1NUQVQiLDMpfX0sNUUzKSl9fX07CkxjPWZ1bmN0aW9uKCl7dmFyIG49TnVtYmVyKGcuQXIoIkRDTEtTVEFUIiwwKSk7cmV0dXJuIGlzTmFOKG4pPzA6bn07CmV0PWZ1bmN0aW9uKG4sVyl7bi5OPVd9OwpvbU09YXN5bmMgZnVuY3Rpb24obil7aWYoZy5xaS55dEF0UCYmIWcubCgieXRhdHBfa3MiKSl7dmFyIFc9YXdhaXQgZy5xaS55dEF0UDtkZWxldGUgZy5xaS55dEF0UDt2YXIgRD1XPy5SO3ZhciBiPVc/LlQ7Vz11dDIoRCk7bGV0IGs9ISFiO24uSi5KKEQ/Vz9rPzc6MTA6az8xOjg6az8yOjksbi5XKyspO2lmKCFEfHxXKUQ9YXdhaXQgWHkobixxZShiLG51bGwpKSxEPUpTT04uc3RyaW5naWZ5KEQpO2cucWkueXRBdFJDP2cucWkueXRBdFJDKEQpOmcuR3EoRXJyb3IoInl0QXRSQyBub3QgZGVmaW5lZCBmb3IgeXRBdFAuIikpfWVsc2UgZy5xaS55dEF0UkM/Zy5WeCgwLGFzeW5jKCk9PntiPWcucWkueXRBdFQ7ZGVsZXRlIGcucWkueXRBdFQ7aWYoZy5xaS55dEF0UkMpe24uSi5KKDIsbi5XKyspO3ZhciBrPWF3YWl0IFh5KG4scWUoYixudWxsKSk7Zy5xaS55dEF0UkMmJmcucWkueXRBdFJDKEpTT04uc3RyaW5naWZ5KGspKX1lbHNlIG4uSi5KKDYsbi5XKyspfSwyLHYwKCJhdHRfaW5pdF9kZWxheSIsCjApKTooYj1nLnFpLnl0QXRULGRlbGV0ZSBnLnFpLnl0QXRULG4uSi5KKDEsbi5XKyspKTsKRD1hd2FpdCBFbXgoKTtELmJpbmRJbm5lcnR1YmVDaGFsbGVuZ2VGZXRjaGVyKGs9PntuLkouSigzLG4uVysrKTtyZXR1cm4gWHkobixxZShiLGspKX0pOwpELnJlZ2lzdGVyQ2hhbGxlbmdlRmV0Y2hlZENhbGxiYWNrKGs9PntrPWsuY2hhbGxlbmdlO2lmKCFrKXRocm93IEVycm9yKCJCR0VfTUFDUiIpO2s9e2NoYWxsZW5nZTprLFJSOldRKGspLE8xOnYsYmdDaGFsbGVuZ2U6bmV3IHIkfTtrPVByb21pc2UucmVzb2x2ZShrKTtuLk49a30pOwp2YXIgdj1hd2FpdCBnLk1oKGcuRDYoKSk7RD1ELmdldExhdGVzdENoYWxsZW5nZVJlc3BvbnNlKCkuY2hhbGxlbmdlO2lmKCFEKXRocm93IEVycm9yKCJCR0VfTUFDSUwiKTtyZXR1cm57Y2hhbGxlbmdlOkQsUlI6V1EoRCksTzE6dixiZ0NoYWxsZW5nZTpuZXcgciR9fTsKdGo9YXN5bmMgZnVuY3Rpb24obil7dmFyIFc9cWUodm9pZCAwLGckKCkuTik7dHJ5e3ZhciBEPWF3YWl0IGRmMihuLFcpfWNhdGNoKHgpe3JldHVybiBnLkdxKEVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggYXR0ZXN0YXRpb24gY2hhbGxlbmdlIGFmdGVyIDUgYXR0ZW1wdHM7IG5vdCByZXRyeWluZyBmb3IgMjRoLiIpKSxHMChuLDg2NEU1KSx7Y2hhbGxlbmdlOiIiLFJSOnt9LE8xOnZvaWQgMCxiZ0NoYWxsZW5nZTp2b2lkIDB9fVc9RC5RRjt2YXIgYj1ELlR0O0cwKG4sKE51bWJlcihiLnQpfHw3MjAwKSoxRTMpO249dm9pZCAwO2lmKCJjMWEiaW4gYiYmRC5iZ0NoYWxsZW5nZSl7RD1ELmJnQ2hhbGxlbmdlO3ZhciB2PW5ldyByJDtpZihELmludGVycHJldGVySmF2YXNjcmlwdCl7dmFyIGs9Tk4oRC5pbnRlcnByZXRlckphdmFzY3JpcHQpO2s9S2IoaykudG9TdHJpbmcoKTt2YXIgaD1uZXcgcXY7Zy5TRShoLDYsayk7JDkodixxdiwxLGgseFUpfWVsc2UgRC5pbnRlcnByZXRlclVybCYmCihrPXB3KEQuaW50ZXJwcmV0ZXJVcmwpLGs9eDMoaykudG9TdHJpbmcoKSxoPW5ldyBHSCxnLlNFKGgsNCxrKSwkOSh2LEdILDIsaCx4VSkpO0QuaW50ZXJwcmV0ZXJIYXNoJiZBUyh2LDMsRC5pbnRlcnByZXRlckhhc2gseFUpO0QucHJvZ3JhbSYmQVModiw0LEQucHJvZ3JhbSx4VSk7RC5nbG9iYWxOYW1lJiZBUyh2LDUsRC5nbG9iYWxOYW1lLHhVKTtELmNsaWVudEV4cGVyaW1lbnRzU3RhdGVCbG9iJiZBUyh2LDcsRC5jbGllbnRFeHBlcmltZW50c1N0YXRlQmxvYix4VSk7dHJ5e2F3YWl0IHRxKGckKCksdil9Y2F0Y2goeCl7cmV0dXJuIGcuR3EoeCkse2NoYWxsZW5nZTpXLFJSOmIsTzE6bixiZ0NoYWxsZW5nZTp2fX10cnl7bj1uZXcgQXEoe2NoYWxsZW5nZTp2LHgzOntWajoiYUdJZiJ9fSksYXdhaXQgbi5Pdn1jYXRjaCh4KXtnLkdxKHgpLG49dm9pZCAwfX1yZXR1cm57Y2hhbGxlbmdlOlcsUlI6YixPMTpuLGJnQ2hhbGxlbmdlOnZ9fTsKWHk9YXN5bmMgZnVuY3Rpb24obixXKXt2YXIgRD1uLlg7aWYoIUR8fEQuV0coKSlyZXR1cm4gJDUobixXKTtnLmdfKCJhdHRfcG5hIix2b2lkIDAsImF0dGVzdGF0aW9uX2NoYWxsZW5nZV9mZXRjaCIpO3JldHVybiBuZXcgUHJvbWlzZShiPT57RC5lRigicHVibGljeXRuZXR3b3Jrc3RhdHVzLW9ubGluZSIsKCk9PnskNShuLFcpLnRoZW4oYil9KX0pfTsKZGYyPWFzeW5jIGZ1bmN0aW9uKG4sVyl7Zm9yKHZhciBEPXZvaWQgMCxiPTA7Yjw1Oyl7aWYoYj4wKXtsZXQgdj0xRTMqTWF0aC5wb3coMixiLTEpK01hdGgucmFuZG9tKCkqMUUzO2F3YWl0IG5ldyBQcm9taXNlKGs9PntnLmNCKDAsKCk9PntrKHZvaWQgMCl9LHYpfSl9dHJ5e24uSi5KKDQsbi5XKyspOwpsZXQgdj1hd2FpdCBYeShuLFcpO3JldHVybiB6YWkodil9Y2F0Y2godil7RD12LHYgaW5zdGFuY2VvZiBFcnJvciYmZy5HcSh2KX1iKyt9dGhyb3cgRDt9OwpHMD1mdW5jdGlvbihuLFcpe3ZhciBEPURhdGUubm93KCkrVyxiPWFzeW5jKCk9Pnt2YXIgdj1ELURhdGUubm93KCk7djwxRTM/YXdhaXQgbDlpKG4pOmcuY0IoMCxiLE1hdGgubWluKHYsNkU0KSl9OwpiKCl9OwokNT1hc3luYyBmdW5jdGlvbihuLFcpe2IwKDIpO3RyeXtsZXQgRD1hd2FpdCBYeShuLm5ldHdvcmssVyk7RD9ELmNoYWxsZW5nZSYmIUQuYmdDaGFsbGVuZ2U/YjAoMSk6YjAoNCk6YjAoMyk7cmV0dXJuIER9Y2F0Y2goRCl7YjAoMyl9fTsKemFpPWZ1bmN0aW9uKG4pe2lmKCFuKXRocm93IEVycm9yKCJGZXRjaGluZyBBdHRlc3RhdGlvbiBjaGFsbGVuZ2UgcmV0dXJuZWQgZmFsc3kiKTtpZighbi5jaGFsbGVuZ2UpdGhyb3cgRXJyb3IoIk1pc3NpbmcgQXR0ZXN0YXRpb24gY2hhbGxlbmdlIik7dmFyIFc9bi5jaGFsbGVuZ2UsRD1XUShXKTtpZigiYzFhImluIEQmJighbi5iZ0NoYWxsZW5nZXx8IW4uYmdDaGFsbGVuZ2UucHJvZ3JhbSkpdGhyb3cgRXJyb3IoIkV4cGVjdGVkIGJnIGNoYWxsZW5nZSBidXQgbWlzc2luZy4iKTtyZXR1cm57Li4ubixRRjpXLFR0OkR9fTsKbDlpPWFzeW5jIGZ1bmN0aW9uKG4pe3ZhciBXPWF3YWl0IFByb21pc2UucmFjZShbbi5OLG51bGxdKSxEPXRqKG4pO24uTj1EO1c/Lk8xPy5kaXNwb3NlKCl9OwpUR2g9ZnVuY3Rpb24obixXKXtyZXR1cm4gbmV3IFByb21pc2UoRD0+e2cuY0IoMCwoKT0+e0QoVygpKX0sbil9KX07CnFlPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9e2VuZ2FnZW1lbnRUeXBlOiJFTkdBR0VNRU5UX1RZUEVfVU5CT1VORCJ9O24mJihELmVhY3JUb2tlbj1uKTtXJiYoRC5pbnRlcnByZXRlckhhc2g9Vyk7cmV0dXJuIER9Owp1dDI9ZnVuY3Rpb24obil7aWYoIW58fCFnLmwoInJvc2NhcyIpKXJldHVybiExO3RyeXt2YXIgVz1KU09OLnBhcnNlKG4pfWNhdGNoKEQpe3JldHVybiExfW49Vy5jaGFsbGVuZ2U7aWYoIW4pcmV0dXJuITE7Vz1XUShuKTtuPU51bWJlcihXLmMpfHx2b2lkIDA7Vz1OdW1iZXIoVy50KXx8NzIwMDtyZXR1cm4hIW4mJkRhdGUubm93KCk+KG4rVykqMUUzfTsKcmE9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFByb21pc2Uobj0+e3ZhciBXPXdpbmRvdztXLmF0dG1wIT09dm9pZCAwP24oVy5hdHRtcCk6KFcuYXR0bXE9PT12b2lkIDAmJihXLmF0dG1xPVtdKSxXLmF0dG1xLnB1c2goRD0+e24oRCl9KSl9KX07CmcucGM9YXN5bmMgZnVuY3Rpb24obixXLEQpe2lmKHNoKCkpe3ZhciBiPXdpbmRvdztyZXR1cm4gYi5hdHRtcCE9PXZvaWQgMD9iLmF0dG1wLnMobixXLEQpOihhd2FpdCByYSgpKS5zKG4sVyxEKX1yZXR1cm4oYj0oYj1nLnJyKCJ5dC5hYmEuYXR0IikpP2I6TmUuaW5zdGFuY2UhPT12b2lkIDA/TmUuaW5zdGFuY2UuZFEuYmluZChOZS5pbnN0YW5jZSk6bnVsbCk/YihuLFcsRCk6UHJvbWlzZS5yZXNvbHZlKHtlcnJvcjoiQVRURVNUQVRJT05fRVJST1JfQVBJX05PVF9SRUFEWSJ9KX07CmcuWTU9YXN5bmMgZnVuY3Rpb24oKXtpZihzaCgpKXJldHVybiB3aW5kb3cuYXR0bXA9PT12b2lkIDA/ITE6KGF3YWl0IHJhKCkpLmlyKCk7dmFyIG47cmV0dXJuKG49KG49Zy5ycigieXQuYWJhLmF0dDIiKSk/bjpOZS5pbnN0YW5jZSE9PXZvaWQgMD9OZS5pbnN0YW5jZS55Zi5iaW5kKE5lLmluc3RhbmNlKTpudWxsKT9uKCk6UHJvbWlzZS5yZXNvbHZlKCExKX07CnNoPWZ1bmN0aW9uKCl7cmV0dXJuKGcubCgiYXR0bXVzaSIpfHxnLmwoImF0dG11c2l3IikpJiZnLmwoImF0dG11c2lfdWUiKX07CkhRPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Zy5ycigieXREZWJ1Z0RhdGEuY2FsbGJhY2tzIik7RHx8KEQ9e30sZy5HYigieXREZWJ1Z0RhdGEuY2FsbGJhY2tzIixEKSk7aWYoZy5sKCJ3ZWJfZGRfaXUiKXx8anhTLmluY2x1ZGVzKG4pKURbbl09V307CkJHTT1hc3luYyBmdW5jdGlvbihuLFcsRCl7Vz17Y29udGV4dDpnLnZiKCksc2V0dGluZ0l0ZW1JZDpXLG5ld1ZhbHVlOkR9O0Q9TEIoQ0diKTtuPWF3YWl0IGcucl8obixXLEQpO2lmKCFufHxuLmVycm9yTWV0YWRhdGEpbj9uLmVycm9yTWV0YWRhdGEmJmcuR3EobmV3IGcuUXgoYFNldFNldHRpbmdSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAke24uZXJyb3JNZXRhZGF0YS5zdGF0dXN9YCkpOmcuR3EobmV3IGcuUXgoIlNldFNldHRpbmdSZXF1ZXN0IGZhaWxlZCB3aXRoIGVtcHR5IHJlc3BvbnNlIikpfTsKRjRiPWZ1bmN0aW9uKG4sVyxELGIsdixrKXtEPyhuLnZWKDIpLGlNKGZ3KEQpLCgpPT57aWYod2luZG93LnRyYXlyaWRlKWZjKG4sYix2KTtlbHNle24udlYoMyk7bGV0IGg9dU0oRCkseD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChoKTt4JiYoeUooaCkseC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHgpKTtnLkdxKG5ldyBnLlF4KCJCTDpVTEIiLGAke0R9YCkpfX0saykpOlc/KGs9Zy56RigiU0NSSVBUIiksVyBpbnN0YW5jZW9mIEFGPyhrLnRleHRDb250ZW50PUtiKFcpLE9NKGspKTprLnRleHRDb250ZW50PVcsay5ub25jZT1Taihkb2N1bWVudCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChrKSxkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKGspLHdpbmRvdy50cmF5cmlkZT9mYyhuLGIsdik6KG4udlYoNCksZy5HcShuZXcgZy5ReCgiQkw6VUxCSiIpKSkpOmcuR3EobmV3IGcuUXgoIkJMOlVMViIpKX07CmZjPWZ1bmN0aW9uKG4sVyxEKXtuLnZWKDUpO3ZhciBiPSEhbi5EYSYmd3loLmluY2x1ZGVzKGcuSVAobi5EYSl8fCIiKTt0cnl7bGV0IHY9bmV3IEFxKHtwcm9ncmFtOlcsZ2xvYmFsTmFtZToidHJheXJpZGUiLHgzOntkaXNhYmxlOiFnLmwoImF0dF93ZWJfcmVjb3JkX21ldHJpY3MiKXx8IWcubCgiYXR0X3NraXBfbWV0cmljc19mb3JfY29va2llbGVzc19kb21haW5zX2tzIikmJmIsVmo6ImFHSWYifX0pO3YuT3YudGhlbigoKT0+e24udlYoNik7RCYmRChXKX0pOwpuLk4odil9Y2F0Y2godil7bi52Vig3KSx2IGluc3RhbmNlb2YgRXJyb3ImJmcuR3Eodil9fTsKdmFyIE1DYj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIFAwW0lbMTBdXSh0aGlzLDEsODEzOCxuLFcsRCl9OwpKaj1mdW5jdGlvbigpe3ZhciBuPWcucnIoInl0LmFidXNlLnBsYXllckF0dExvYWRlciIpO3JldHVybiBuJiZbImJndm1hIiwiYmd2bWIiLCJiZ3ZtYyJdLmV2ZXJ5KFc9PlcgaW4gbik/bjpudWxsfTsKUmFTPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIDI6cmV0dXJuIDA7Y2FzZSAxOnJldHVybiAyO2Nhc2UgMDpyZXR1cm4gMztjYXNlIDQ6Y2FzZSAzOnJldHVybiAxO2RlZmF1bHQ6Zy5wYihuLCJ1bmtub3duIHJlc3VsdCB0eXBlIil9fTsKZy5JYT1mdW5jdGlvbihuKXtyZXR1cm4gbj8ubGF5b3V0SWQhPW51bGwmJm4/LmxheW91dFR5cGUhPW51bGx9OwpnLlo2PWZ1bmN0aW9uKG4pe2lmKCFnLklhKG4uYWRMYXlvdXRNZXRhZGF0YSkpcmV0dXJuITE7bj1uLnJlbmRlcmluZ0NvbnRlbnQ7cmV0dXJuIGcudyhuLGcuU3QpfHxnLncobixnLkFqKXx8Zy53KG4sZy5tMil8fGcudyhuLGcuS2MpfHxnLncobixnLk9oKXx8Zy53KG4sZy5QUSk/ITA6ITF9OwpnLnUwPWZ1bmN0aW9uKG4pe2lmKCFnLklhKG4uYWRMYXlvdXRNZXRhZGF0YSkpcmV0dXJuITE7bj1uLnJlbmRlcmluZ0NvbnRlbnQ7cmV0dXJuIGcudyhuLGcuVWgpfHxnLncobixnLnlWKXx8Zy53KG4sUXhNKXx8Zy53KG4sZy5FaCl8fGcudyhuLGcuaTApPyEwOiExfTsKZy56MD1mdW5jdGlvbihuKXtyZXR1cm4gZy5JYShuLmFkTGF5b3V0TWV0YWRhdGEpP2cudyhuLnJlbmRlcmluZ0NvbnRlbnQsZy5vYSl8fGcudyhuLnJlbmRlcmluZ0NvbnRlbnQsZy5kYSk/ITA6ITE6ITF9OwpnLmwwPWZ1bmN0aW9uKG4pe3JldHVybiBuLnBsYXllclZhcnMhPT12b2lkIDAmJm4ucGluZ3MhPT12b2lkIDAmJm4uZXh0ZXJuYWxWaWRlb0lkIT09dm9pZCAwfTsKZy5NZT1mdW5jdGlvbihuKXtpZighZy5JYShuLmFkTGF5b3V0TWV0YWRhdGEpKXJldHVybiExO249bi5yZW5kZXJpbmdDb250ZW50O3ZhciBXPWcudyhuLGcuVDApO3JldHVybiBXP2cuanQoVyk6KFc9Zy53KG4sZy5DYykpP2cubDAoVyk6KFc9Zy53KG4sZy5CUSkpP1cucGxheWVyVmFycyE9PXZvaWQgMDooVz1nLncobixnLlVoKSk/Vy5kdXJhdGlvbk1pbGxpc2Vjb25kcyE9PXZvaWQgMDpnLncobixnLkZ5KXx8Zy53KG4sZy53YSk/ITA6ITF9OwpnLmp0PWZ1bmN0aW9uKG4pe249KG4uc2VxdWVudGlhbExheW91dHN8fFtdKS5tYXAoVz0+Zy53KFcsZy5SYSkpOwpyZXR1cm4gbi5sZW5ndGg+MCYmbi5ldmVyeShnLk1lKX07CmcuVlY9ZnVuY3Rpb24obil7cmV0dXJuIGcuSWEobi5hZExheW91dE1ldGFkYXRhKT8obj1nLncobi5yZW5kZXJpbmdDb250ZW50LGcuUVYpKSYmbi5waW5ncz8hMDohMTohMX07CmcuRHE9ZnVuY3Rpb24obil7aWYoIWcuSWEobi5hZExheW91dE1ldGFkYXRhKSlyZXR1cm4hMTtpZihnLncobi5yZW5kZXJpbmdDb250ZW50LGcuY1EpfHxnLncobi5yZW5kZXJpbmdDb250ZW50LGcub2EpKXJldHVybiEwO3ZhciBXPWcudyhuLnJlbmRlcmluZ0NvbnRlbnQsZy5hYSk7cmV0dXJuIGcudyhuLnJlbmRlcmluZ0NvbnRlbnQsZy5uaSl8fGcudyhXPy5zaWRlUGFuZWwsVkMyKXx8Zy53KFc/LnNpZGVQYW5lbCxnLlckKXx8Zy53KFc/LnNpZGVQYW5lbCxjM2gpPyEwOiExfTsKZy5nTT1mdW5jdGlvbihuKXt2YXIgVzsoVz0hbil8fChXPW4uYWRTbG90TWV0YWRhdGEsVz0hKFc/LnNsb3RJZCE9PXZvaWQgMCYmVz8uc2xvdFR5cGUhPT12b2lkIDApKTtpZihXfHwhKGcuYloobil8fG4uc2xvdEVudHJ5VHJpZ2dlciYmbi5zbG90RnVsZmlsbG1lbnRUcmlnZ2VycyYmbi5zbG90RXhwaXJhdGlvblRyaWdnZXJzKSlyZXR1cm4hMTtuPW4uZnVsZmlsbG1lbnRDb250ZW50Py5mdWxmaWxsZWRMYXlvdXQ7cmV0dXJuKFc9Zy53KG4sZy5SYSkpP2cuTWUoVyk6KFc9Zy53KG4sZy52JCkpP2cuRHEoVyk6KFc9Zy53KG4sZy5reikpP2cudTAoVyk6KFc9Zy53KG4sZy5oWCkpP2cuWjYoVyk6KFc9Zy53KG4sZy54eikpP2cuSWEoVy5hZExheW91dE1ldGFkYXRhKT9nLncoVy5yZW5kZXJpbmdDb250ZW50LGcuU3QpPyEwOiExOiExOihXPWcudyhuLGcuTGkpKT9nLlZWKFcpOihuPWcudyhuLGcuZTIpKT9nLnowKG4pOiExfTsKZy5iWj1mdW5jdGlvbihuKXtyZXR1cm4obj1nLncobi5mdWxmaWxsbWVudENvbnRlbnQ/LmZ1bGZpbGxlZExheW91dCxnLnYkKSkmJm4uYWRMYXlvdXRNZXRhZGF0YT8ubGF5b3V0VHlwZT09PSJMQVlPVVRfVFlQRV9QQU5FTF9RUl9DT0RFIiYmbi5sYXlvdXRFeGl0Tm9ybWFsVHJpZ2dlcnM9PT12b2lkIDB9OwphOXI9ZnVuY3Rpb24obil7Zm9yKGxldCBXIG9mIG58fFtdKXtuPWcudyhXLGcuWEcpO2lmKG49PT12b2lkIDB8fCFnLmdNKG4pKWJyZWFrO2lmKChuPWcudyhuLmZ1bGZpbGxtZW50Q29udGVudD8uZnVsZmlsbGVkTGF5b3V0LGcuTGkpKSYmZy5WVihuKSlyZXR1cm4hMH1yZXR1cm4hMX07CnE0PWZ1bmN0aW9uKG4pe2lmKCFufHwhbi5hZFBsYWNlbWVudHMmJiFuLmFkU2xvdHMpcmV0dXJuITE7Zm9yKGxldCBXIG9mIG4uYWRQbGFjZW1lbnRzfHxbXSl7aWYoIVcpY29udGludWU7bGV0IEQ9Vy5hZFBsYWNlbWVudFJlbmRlcmVyO2lmKEQhPW51bGwmJihELmNvbmZpZyYmRC5jb25maWcuYWRQbGFjZW1lbnRDb25maWcmJkQuY29uZmlnLmFkUGxhY2VtZW50Q29uZmlnLmtpbmQpPT09IkFEX1BMQUNFTUVOVF9LSU5EX1NUQVJUIilyZXR1cm4hMH1mb3IobGV0IFcgb2Ygbi5hZFNsb3RzfHxbXSlpZihnLncoVyxnLlhHKT8uYWRTbG90TWV0YWRhdGE/LnRyaWdnZXJFdmVudD09PSJTTE9UX1RSSUdHRVJfRVZFTlRfQkVGT1JFX0NPTlRFTlQiKXJldHVybiEwO3JldHVybiExfTsKbm4xPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9W107Vz9XLmlzVHJ1c3RlZD09PSEwP0QucHVzaCgiQklTQ09UVElfQkFTRURfREVURUNUSU9OX1NUQVRFX0FTX1NFRUtfRVZFTlRfVFJVU1RFRCIpOlcuaXNUcnVzdGVkPT09ITE/RC5wdXNoKCJCSVNDT1RUSV9CQVNFRF9ERVRFQ1RJT05fU1RBVEVfQVNfU0VFS19FVkVOVF9OT1RfVFJVU1RFRCIpOkQucHVzaCgiQklTQ09UVElfQkFTRURfREVURUNUSU9OX1NUQVRFX0FTX1NFRUtfRVZFTlRfVFJVU1RFRF9QUk9QRVJUWV9VTkRFRklORUQiKTpELnB1c2goIkJJU0NPVFRJX0JBU0VEX0RFVEVDVElPTl9TVEFURV9BU19TRUVLX0VWRU5UX1VOREVGSU5FRCIpO2cuR0MoMCwiYS5zXyIse21ldGFkYXRhOm4sc3RhdGVzOkR9KTtnLlNIKCJBU0RTVEFUIiwwKX07CmcuR0M9ZnVuY3Rpb24obixXLEQpe1c9V0RDW1ddO3ZhciBiPXtkZXRlY3RlZDpuPT09MCxzb3VyY2U6YCR7Vy5KfSR7RC50cmlnZ2VyQ29udGV4dD8/IiJ9JHtELk0zPz8iIn1gLGRldGVjdGlvblN0YXRlczpELnN0YXRlcyxkdXJhdGlvbk1zOkQuRXd9O0QubWV0YWRhdGEmJihiLmNvbnRlbnRDcG49RC5tZXRhZGF0YS5jb250ZW50Q3BuLGIuYWRDcG49RC5tZXRhZGF0YS5hZENwbik7Zy56VSgiYmlzY290dGlCYXNlZERldGVjdGlvbiIsYik7Vy5OIT09dm9pZCAwJiYoRD1OdW1iZXIoZy5BcigiQ0FUU1RBVCIsMCkpLFcuTiE9PXZvaWQgMD8oVz1XLk4sbj1SYVMobiksbj1EJn4oMzw8Vyl8bjw8Vyk6bj1ELGcuU0goIkNBVFNUQVQiLG4pKX07CnRYPWZ1bmN0aW9uKG4sVyl7bj1uLndhdGNoRW5kcG9pbnRTdXBwb3J0ZWRBdXRob3JpemF0aW9uVG9rZW5Db25maWc/LnZpZGVvQXV0aG9yaXphdGlvblRva2VuPy5jcmVkZW50aWFsVHJhbnNmZXJUb2tlbnN8fFtdO2ZvcihsZXQgRD0wO0Q8bi5sZW5ndGg7KytEKWlmKG5bRF0uc2NvcGU9PT1XKXJldHVybiBuW0RdLnRva2VufHx2b2lkIDB9OwpnLk40PWZ1bmN0aW9uKG4pe3ZhciBXPWcudyhuLCR6KTtpZihXKXJldHVybiBXO2lmKChXPWcudyhuLERZcikpJiZXLmNvbW1hbmRzKXJldHVybiByTShXLmNvbW1hbmRzKTtpZigoVz1nLncobixiOGIpKSYmVy5jb21tYW5kcylyZXR1cm4gck0oVy5jb21tYW5kcyk7aWYoKG49Zy53KG4sdm5NKSkmJm4uaWRlbnRpZmllciYmbi5jb21tYW5kJiYoczN8fChzMz1bXSksIXMzLmluY2x1ZGVzKG4uaWRlbnRpZmllcikpKXJldHVybiBzMy5wdXNoKG4uaWRlbnRpZmllciksZy53KG4uY29tbWFuZCwkeil9OwpyTT1mdW5jdGlvbihuKXtpZihuLmxlbmd0aCE9PTApe3ZhciBXPVtdO2ZvcihsZXQgRCBvZiBuKShuPWcuTjQoRCkpJiZXLnB1c2gobik7cmV0dXJue2NvbW1hbmRFeGVjdXRvckNvbW1hbmQ6e2NvbW1hbmRzOld9fX19OwpwaT1mdW5jdGlvbihuKXtpZihuJiZuLnNpbXBsZVRleHQpcmV0dXJuIG4uc2ltcGxlVGV4dDt2YXIgVz0iIjtpZihuJiZuLnJ1bnMpZm9yKGxldCBEPTA7RDxuLnJ1bnMubGVuZ3RoO0QrKyluLnJ1bnNbRF0udGV4dCYmKFcrPW4ucnVuc1tEXS50ZXh0KTtyZXR1cm4gV307Cll6PWZ1bmN0aW9uKG4pe3JldHVybiBuP2Z1bmN0aW9uKCl7dHJ5e3JldHVybiBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jYXRjaChXKXtnLlhqKFcpfX06bn07CmZpPWZ1bmN0aW9uKCl7SCQuaW5zdGFuY2V8fChIJC5pbnN0YW5jZT1uZXcgSCQpO3JldHVybiBIJC5pbnN0YW5jZX07CklmPWZ1bmN0aW9uKCl7SlguaW5zdGFuY2V8fChKWC5pbnN0YW5jZT1uZXcgSlgpO3JldHVybiBKWC5pbnN0YW5jZX07Cm1VPWZ1bmN0aW9uKG4sVyxELGI9e30pe1BWKCgpPT57a3ZNLmluY2x1ZGVzKFcpfHwoZy5HcShuZXcgZy5ReCgiY3JlYXRlQ2xpZW50U2NyZWVuKCkgY2FsbGVkIHdpdGggYSBub24tcGFnZSBWRSIsVykpLFc9ODM3NjkpO2lmKCFiLmlzSGlzdG9yeU5hdmlnYXRpb24pe2xldCB2PWIubGF5ZXJ8fDA7bi5UQy5zZXQodixbXSk7UzIobix2KS5wdXNoKHtyb290VmU6VyxrZXk6Yi5rZXl8fCIifSl9bi5EPVtdO24uTz1bXTtiLlVBP2hqdChuLFcsRCxiKTpBWChuLFcsRCxiKX0pKCl9OwpTMj1mdW5jdGlvbihuLFcpe24uSy5oYXMoVyl8fG4uSy5zZXQoVyxbXSk7cmV0dXJuIG4uSy5nZXQoVyl9OwpoanQ9ZnVuY3Rpb24obixXLEQsYj17fSl7bi5OLmFkZChiLmxheWVyfHwwKTtuLmo9KCk9PntBWChuLFcsRCxiKTt2YXIgdj13NChiLmxheWVyKTtpZih2KXtsZXQgaz1nLlJ2KGIubGF5ZXIpO2ZvcihsZXQgaCBvZiBuLkQpe2xldCB4PWhbMF0sTD1oWzFdfHx2O2s/S2kobix4LEwsYi5sYXllcixrKTpPMyhuLHgsTCxiLmxheWVyKX1mb3IobGV0IGggb2Ygbi5PKVAkKG4saFswXSxoWzFdKX19OwpEfHxnLlJ2KGIubGF5ZXIpfHxuLmooKTtpZihiLlVBKWZvcihsZXQgdiBvZiBiLlVBKXhZYihuLHYsYi5sYXllcik7ZWxzZSBnLlhqKEVycm9yKCJEZWxheWVkIHNjcmVlbiBuZWVkcyBhIGRhdGEgcHJvbWlzZS4iKSl9OwpBWD1mdW5jdGlvbihuLFcsRCxiPXt9KXt2YXIgdj12b2lkIDA7Yi5sYXllcnx8KGIubGF5ZXI9MCk7dj1iLnBhcmVudExheWVyIT09dm9pZCAwP2IucGFyZW50TGF5ZXI6Yi5sYXllcjt2YXIgaz1nLlJ2KHYpO3Y9dzQodik7dmFyIGg9RHx8dix4O2gmJihiLnBhcmVudENzbiE9PXZvaWQgMD94PXtjbGllbnRTY3JlZW5Ob25jZTpiLnBhcmVudENzbix2aXN1YWxFbGVtZW50Omh9OmsmJmshPT0iVU5ERUZJTkVEX0NTTiImJih4PXtjbGllbnRTY3JlZW5Ob25jZTprLHZpc3VhbEVsZW1lbnQ6aH0pKTt2YXIgTCxlPWcuQXIoIkVWRU5UX0lEIik7az09PSJVTkRFRklORURfQ1NOIiYmZSYmKEw9e3NlcnZsZXREYXRhOntzZXJpYWxpemVkU2VydmxldEV2ZW50SWQ6ZX19KTtnLmwoImNvbWJpbmVfdmVfZ3JhZnRzIikmJmsmJlpxKG4sayk7Zy5sKCJub19jbGllbnRfdmVfYXR0YWNoX3VubGVzc19zaG93biIpJiZoJiZrJiZkSyhoLGspO3RyeXt2YXIgRz1nOWkobi5jbGllbnQsVyx4LGIuTDgsCmIuY3R0QXV0aEluZm8sTCxiLmltcGxpY2l0R2VzdHVyZVR5cGUsYi5sb2dnaW5nRXhwZWN0YXRpb25zLGIuYXV0b21hdGVkTG9nRXZlbnRTb3VyY2UpfWNhdGNoKE4pe0s0KE4se2w3Olcscm9vdFZlOnYsSTc6RCxsQTprLGdQOngsTDg6Yi5MOH0pO2cuWGooTik7cmV0dXJufWNzKEcsVyxiLmxheWVyLGIuY3R0QXV0aEluZm8pO2smJmshPT0iVU5ERUZJTkVEX0NTTiImJnYmJiF3SEMoaykmJihUcShuLmNsaWVudCxrLHYsITApLG4uSi5kZWxldGUoaykpO1c9UzIobixiLmxheWVyfHwwKTtXLmxlbmd0aD4wJiYhV1tXLmxlbmd0aC0xXS5jc24mJihXW1cubGVuZ3RoLTFdLmNzbj1HfHwiIik7Zy5ubCh7Y2xpZW50U2NyZWVuTm9uY2U6R30pO1UzLmluc3RhbmNlfHwoVTMuaW5zdGFuY2U9bmV3IFUzKTtQVihmaSgpLk4pLmJpbmQoZmkoKSkoKTt2YXIgcj13NChiLmxheWVyKTtrJiZrIT09IlVOREVGSU5FRF9DU04iJiZyJiZnLmwoIm11c2ljX3dlYl9tYXJrX3Jvb3RfdmlzaWJsZSIpJiYKRmooRyxyKTtuLk4uZGVsZXRlKGIubGF5ZXJ8fDApO24uaj12b2lkIDA7bi5TJC5nZXQoYi5sYXllcik/LmZvckVhY2goKE4sSCk9PntOP08zKG4sSCxOLGIubGF5ZXIpOnImJk8zKG4sSCxyLGIubGF5ZXIpfSk7CkxEWihuKX07CnhZYj1mdW5jdGlvbihuLFcsRD0wKXtQVigoKT0+e1cudGhlbihiPT57bi5OLmhhcyhEKSYmbi5qJiZuLmooKTt2YXIgdj1nLlJ2KEQpLGs9dzQoRCk7aWYodiYmayl7dmFyIGg9e2F1dG9tYXRlZExvZ0V2ZW50U291cmNlOjN9O2I/LnJlc3BvbnNlPy50cmFja2luZ1BhcmFtcyYmdWcobi5jbGllbnQsdixrLFRVKGIucmVzcG9uc2UudHJhY2tpbmdQYXJhbXMpLCExLGgpO2I/LnBsYXllclJlc3BvbnNlPy50cmFja2luZ1BhcmFtcyYmdWcobi5jbGllbnQsdixrLFRVKGIucGxheWVyUmVzcG9uc2UudHJhY2tpbmdQYXJhbXMpLCExLGgpfX0pfSkoKX07CktpPWZ1bmN0aW9uKG4sVyxELGI9MCx2KXtuLkouaGFzKHYpfHxuLkouc2V0KHYsbmV3IFNldCk7dmFyIGs9RHx8dzQoYik7az1gJHtXLnRvU3RyaW5nKCl9fCR7az9rLnRvU3RyaW5nKCk6IiJ9YDtuLkouZ2V0KHYpLmhhcyhrKXx8KE8zKG4sVyxELGIpLG4uSi5nZXQodikuYWRkKGspKX07Ck8zPWZ1bmN0aW9uKG4sVyxELGI9MCl7cmV0dXJuIFBWKCgpPT57aWYobi5OLmhhcyhiKSlyZXR1cm4gbi5ELnB1c2goW1csRF0pLCEwO3ZhciB2PWcuUnYoYiksaz1EfHx3NChiKTtpZih2JiZrKXtpZihnLmwoImNvbWJpbmVfdmVfZ3JhZnRzIikpe2xldCBoPW4uWC5nZXQoay50b1N0cmluZygpKTtoP2gucHVzaChXKToobi5ZLnNldChrLnRvU3RyaW5nKCksayksbi5YLnNldChrLnRvU3RyaW5nKCksW1ddKSk7bi50d3x8KG4udHc9Zy5jQigwLCgpPT57WnEobix2KX0sMTIwMCkpfWVsc2UgdWcobi5jbGllbnQsdixrLFcpOwpyZXR1cm4hMH1yZXR1cm4hMX0pKCl9OwpnLnlyPWZ1bmN0aW9uKG4pe3ZhciBXPUlmKCk7UFYoKCk9Pnt2YXIgRD1UVShuKSxiPWcuUnYoMCk7YiYmIVcuTi5oYXMoMCk/S2koVyxELHZvaWQgMCwwLGIpOk8zKFcsRCx2b2lkIDAsMCk7cmV0dXJuIER9KSgpfTsKZWp3PWZ1bmN0aW9uKG4pe3ZhciBXPXt2ZVR5cGU6MjUzMjQ2fTtyZXR1cm4gUFYoKCk9PntpZighVy52ZVR5cGUpcmV0dXJuIGcucWcobmV3IGcuUXgoIkVycm9yOiBUcnlpbmcgdG8gZ3JhZnQgYSBjbGllbnQgVkUgd2l0aG91dCBhIHZlVHlwZS4iKSksbnVsbDtpZihXLnZpc2liaWxpdHlUeXBlcyl7dmFyIEQ9Vy52aXNpYmlsaXR5VHlwZXMucmVkdWNlKChiLHYpPT5ifHYpOwpEPXt2aXNpYmlsaXR5Ont0eXBlczpTdHJpbmcoRCl9fX1EPWp5KFcudmVUeXBlLFcudmlzdWFsRWxlbWVudCxXLmVsZW1lbnRJbmRleCxXLmNsaWVudFlvdVR1YmVEYXRhLHZvaWQgMCxEKTtyZXR1cm4gTzMobixEKT9EOm51bGx9KSgpfTsKWnE9ZnVuY3Rpb24obixXKXtpZihXPT09dm9pZCAwKXtsZXQgRD1CZ3IoKTtmb3IobGV0IGI9MDtiPEQubGVuZ3RoO2IrKylEW2JdIT09dm9pZCAwJiZacShuLERbYl0pfWVsc2Ugbi5YLmZvckVhY2goKEQsYik9PnsoYj1uLlkuZ2V0KGIpKSYmaWcobi5jbGllbnQsVyxiLEQpfSksbi5YLmNsZWFyKCksbi5ZLmNsZWFyKCksbi50dz12b2lkIDB9Owpnblo9ZnVuY3Rpb24obixXLEQsYj0wKXtpZighVylyZXR1cm4hMTtiPWcuUnYoYik7aWYoIWIpcmV0dXJuITE7amkobi5jbGllbnQsYixUVShXKSxEKTtyZXR1cm4hMH07ClAkPWZ1bmN0aW9uKG4sVyxELGI9MCl7dmFyIHY9Zy5SdihiKTtXPVd8fHc0KGIpO3YmJlcmJihuPW4uY2xpZW50LGI9UGEoe2N0dEF1dGhJbmZvOlE0KHYpfHx2b2lkIDB9LHYpLEQ9e2Nzbjp2LHZlOlcuZ2V0QXNKc29uKCksY2xpZW50RGF0YTpEfSx2PT09IlVOREVGSU5FRF9DU04iP3pxKCJ2aXN1YWxFbGVtZW50U3RhdGVDaGFuZ2VkIixiLEQpOm4/dVIoInZpc3VhbEVsZW1lbnRTdGF0ZUNoYW5nZWQiLEQsbixiKTpnLnpVKCJ2aXN1YWxFbGVtZW50U3RhdGVDaGFuZ2VkIixELGIpKX07CkxEWj1mdW5jdGlvbihuKXtmb3IodmFyIFc9MDtXPG4uVi5sZW5ndGg7VysrKXt2YXIgRD1uLlZbV107dHJ5e0QoKX1jYXRjaChiKXtnLlhqKGIpfX1uLlYubGVuZ3RoPTA7Zm9yKFc9MDtXPG4uY0oubGVuZ3RoO1crKyl7RD1uLmNKW1ddO3RyeXtEKCl9Y2F0Y2goYil7Zy5YaihiKX19fTsKaVo9ZnVuY3Rpb24oKXtFMy5pbnN0YW5jZXx8KEUzLmluc3RhbmNlPW5ldyBFMyk7cmV0dXJuIEUzLmluc3RhbmNlfTsKWE9iPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uZXcgWE1MSHR0cFJlcXVlc3Q7RD8ubGcmJihiLm9ucmVhZHlzdGF0ZWNoYW5nZT12PT57RC5sZyhiLHYpfSk7CmIub3BlbihXLm1ldGhvZD8/IkdFVCIsbiwhMCk7Yi5yZXNwb25zZVR5cGU9InRleHQiO2Iud2l0aENyZWRlbnRpYWxzPSEwO2lmKFcuaGVhZGVycylmb3IobGV0IFt2LGtdb2YgT2JqZWN0LmVudHJpZXMoVy5oZWFkZXJzKSliLnNldFJlcXVlc3RIZWFkZXIodixrKTtyZXR1cm4gYn07CnFmUz1mdW5jdGlvbigpe3ZhciBuPW5hdmlnYXRvcjtyZXR1cm4gbmV3IFByb21pc2UoKFcsRCk9PntuLndlYmtpdFRlbXBvcmFyeVN0b3JhZ2U/LnF1ZXJ5VXNhZ2VBbmRRdW90YT9uLndlYmtpdFRlbXBvcmFyeVN0b3JhZ2UucXVlcnlVc2FnZUFuZFF1b3RhKChiLHYpPT57Vyh7dXNhZ2U6YixxdW90YTp2fSl9LGI9PntEKGIpfSk6RChFcnJvcigid2Via2l0VGVtcG9yYXJ5U3RvcmFnZSBpcyBub3Qgc3VwcG9ydGVkLiIpKX0pfTsKdDZDPWZ1bmN0aW9uKG4sVyl7R3ZVKG4ucHJvZ3JhbSxXLkQzKSYmKGcuZ18oImJnX2kiLHZvaWQgMCwicGxheWVyX2F0dCIpLGcudVouaW5pdGlhbGl6ZShuLCgpPT57Zy5nXygiYmdfbCIsdm9pZCAwLCJwbGF5ZXJfYXR0Iik7b2Y9KDAsZy5SKSgpfSxXLmNzcE5vbmNlLFcuRGEpKX07CnZhciAkWWo9ZnVuY3Rpb24oKXtyZXR1cm4gSjRbSVsxMF1dKHRoaXMsMTYsNDYyNil9OwpyOVM9ZnVuY3Rpb24obj17fSl7cmV0dXJuIGcudVouaW52b2tlKG4pfTsKR3ZVPWZ1bmN0aW9uKG4sVyl7aWYobil7dmFyIEQ7Zy51Wi5pc0xvYWRpbmcoKT9EPSExOkQ9IW9mfHwoMCxnLlIpKCktb2Y+VztuPUR9ZWxzZSBuPSExO3JldHVybiBufTsKc18yPWZ1bmN0aW9uKG4sVyl7aWYoVy5wYXJ0bmVySWQ9PT0zOCYmbi5wbGF5ZXJTdHlsZT09PSJib29rcyIpe3ZhciBEPVcudmlkZW9JZC5pbmRleE9mKCI6Iik7bj1XLnZpZGVvSWQuc2xpY2UoMCxEKTtEPVcudmlkZW9JZC5zbGljZShEKzEpO3JldHVybiBnLkVUKGAvL3BsYXkuZ29vZ2xlLmNvbS9ib29rcy92b2x1bWVzLyR7bn0vY29udGVudC9tZWRpYWAse2FpZDpELHNpZzpXLnlkfSl9aWYoVy5wYXJ0bmVySWQ9PT0zMCYmbi5wbGF5ZXJTdHlsZT09PSJkb2NzIilyZXR1cm4gZy5FVCgiaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vZ2V0X3ZpZGVvX2luZm8iLHtkb2NpZDpXLnZpZGVvSWQsYXV0aHVzZXI6Vy5rcCxhdXRoa2V5OlcudkYsZXVybDpuLlFyfSk7aWYoVy5wYXJ0bmVySWQ9PT0zMyYmbi5wbGF5ZXJTdHlsZT09PSJnb29nbGUtbGl2ZSIpcmV0dXJuIGcuRVQoIi8vZ29vZ2xlLWxpdmVwbGF5ZXIuYXBwc3BvdC5jb20vZ2V0X3ZpZGVvX2luZm8iLHtrZXk6Vy52aWRlb0lkfSk7CnRocm93IEVycm9yKCJnZXRWaWRlb0luZm9VcmwgZm9yIGludmFsaWQgbmFtZXNwYWNlOiAiK24uVik7fTsKTlFpPWZ1bmN0aW9uKG4pe3ZhciBXPXt9O24uY0wmJihXLnl0cmV4dD1uLmNMKTtyZXR1cm4gZy5HRihXKT92b2lkIDA6V307CmcuekM9ZnVuY3Rpb24obixXKXt0NkMobix7RDM6Zy5kTShXLmV4cGVyaW1lbnRzLCJiZ192bV9yZWluaXRfdGhyZXNob2xkIiksY3NwTm9uY2U6Vy5jc3BOb25jZSxEYTpXLkRhfHwiIn0pfTsKZy5sWj1mdW5jdGlvbihuKXtpZihuLnZpZGVvRGF0YSYmbi52aWRlb0RhdGEucEspe2xldCBXPVtuLnZpZGVvRGF0YS5wS107Zm9yKGxldCBEIG9mIE9iamVjdC5rZXlzKG4uTikpaWYobi5SUltEXSYmbi5OW0RdKXtsZXQgYj1uLk5bRF0obi5SUik7YiYmVy5wdXNoKGIpfXJldHVybiBXLmpvaW4oIiYiKX1yZXR1cm4gbnVsbH07CmcuVEM9ZnVuY3Rpb24obil7dmFyIFc9W107aWYobilmb3IobGV0IFtiLHZdb2YgT2JqZWN0LmVudHJpZXMobikpe249Yjt2YXIgRD12O2lmKEQ9PT12b2lkIDApY29udGludWU7RD10eXBlb2YgRD09PSJib29sZWFuIj9gJHsrRH1gOmAke0R9YC5yZXBsYWNlKC9bOiw9XS9nLCJfIik7Vy5wdXNoKGAke259LiR7RH1gKX1yZXR1cm4gVy5qb2luKCI7Iil9OwpqMj1mdW5jdGlvbihuKXtyZXR1cm4gbj09PTF8fG49PT0yfTsKQiQ9ZnVuY3Rpb24obixXPTApe2lmKG4gaW5zdGFuY2VvZiBnLkNpKXJldHVybiBuO249biYmbiBpbnN0YW5jZW9mIEVycm9yP246RXJyb3IoYCR7bn1gKTtqMihXKT9nLlhqKG4pOmcuR3Eobik7cmV0dXJuIG5ldyBnLkNpKFc9PT0xPyJwbGF5ZXIuZmF0YWxleGNlcHRpb24iOiJwbGF5ZXIuZXhjZXB0aW9uIix7bmFtZTpgJHtuLm5hbWV9YCxtZXNzYWdlOmAke24ubWVzc2FnZX1gfSxXKX07Ckg4cj1mdW5jdGlvbihuLFcpe1FBKG4sMixXLkNuLEZHLDMpO1FBKG4sMyxXLmlubmVydHViZVJlcXVlc3QscE9pLDMpO2cuRmEobiw0LFcub25lc2llVXN0cmVhbWVyQ29uZmlnKTtnLkZhKG4sOSxXLkJ4KTtRQShuLDEwLFcubUgsd00sMyk7UUEobiwxNSxXLnJlbG9hZFBsYXliYWNrUGFyYW1zLFlmaSwzKTtnLlJ3KG4sMTgsVy5Vayl9OwpRcj1mdW5jdGlvbihuLFcpe1FBKG4sMSxXLmZvcm1hdElkLE00LDMpO0NSKG4sMixXLnN0YXJ0VGltZU1zKTtDUihuLDMsVy5kdXJhdGlvbk1zKTtDUihuLDQsVy5BQyk7Q1Iobiw1LFcuaTkpO1FBKG4sOSxXLmo2LGY4QywzKTtRQShuLDExLFcuQUYsUmYsMSk7UUEobiwxMixXLkVqLFJmLDEpfTsKSjliPWZ1bmN0aW9uKG4sVyl7Zy5SdyhuLDEsVy52aWRlb0lkKTtDUihuLDIsVy5sbXQpfTsKZjhDPWZ1bmN0aW9uKG4sVyl7aWYoVy5Geilmb3IobGV0IEQ9MDtEPFcuRnoubGVuZ3RoO0QrKylRQShuLDEsVy5GeltEXSxKOWIsMyl9OwpNND1mdW5jdGlvbihuLFcpe0NSKG4sMSxXLml0YWcpO0NSKG4sMixXLmxtdCk7Zy5SdyhuLDMsVy54dGFncyl9OwpWcj1mdW5jdGlvbihuKXtyZXR1cm57aXRhZzpQRyhuLDEpLGxtdDpQRyhuLDIpLHh0YWdzOkV4KG4sMyl9fTsKUmY9ZnVuY3Rpb24obixXKXtDUihuLDEsVy5zdGFydFRpY2tzKTtDUihuLDIsVy5sOCk7Q1IobiwzLFcudGltZXNjYWxlKX07CmMkPWZ1bmN0aW9uKG4pe3JldHVybntzdGFydFRpY2tzOlBHKG4sMSksbDg6UEcobiwyKSx0aW1lc2NhbGU6UEcobiwzKX19OwpJOGo9ZnVuY3Rpb24obixXKXtDUihuLDEsVy5kZWZhdWx0UG9saWN5KTtDUihuLDIsVy5zbW9vdGgpO0NSKG4sMyxXLnZpc2liaWxpdHkpO0NSKG4sNCxXLk9iKTtDUihuLDUsVy5wZXJmb3JtYW5jZSk7Q1Iobiw2LFcuc3BlZWQpfTsKQTlTPWZ1bmN0aW9uKG4sVyl7aWYoVy5hdXRob3JpemVkRm9ybWF0cylmb3IobGV0IEQ9MDtEPFcuYXV0aG9yaXplZEZvcm1hdHMubGVuZ3RoO0QrKylRQShuLDEsVy5hdXRob3JpemVkRm9ybWF0c1tEXSxTZmosMSk7Zy5GYShuLDIsVy5zYWJyTGljZW5zZUNvbnN0cmFpbnQpfTsKU2ZqPWZ1bmN0aW9uKG4sVyl7Q1IobiwxLFcudHJhY2tUeXBlKTtCRyhuLDIsVy5pc0hkcil9OwpGRz1mdW5jdGlvbihuLFcpe0NSKG4sMTMsVy50aW1lU2luY2VMYXN0TWFudWFsRm9ybWF0U2VsZWN0aW9uTXMpO3ZhciBEPVcubGFzdE1hbnVhbERpcmVjdGlvbjtEIT09dm9pZCAwJiYoajUobiwxMTIpLGo1KG4sRDw8MV5EPj4zMSkpO0NSKG4sMTYsVy5pSCk7Q1IobiwxNyxXLmRldGFpbGVkTmV0d29ya1R5cGUpO0NSKG4sMTgsVy5zQSk7Q1IobiwxOSxXLllBKTtDUihuLDIxLFcuVE4pO0NSKG4sMjMsVy5JJCk7Q1IobiwyOCxXLm5SKTtDUihuLDI5LFcubHEpO0NSKG4sMzQsVy52aXNpYmlsaXR5KTtEPVcucGxheWJhY2tSYXRlO2lmKEQhPT12b2lkIDApe3ZhciBiPW5ldyBBcnJheUJ1ZmZlcig0KTsobmV3IEZsb2F0MzJBcnJheShiKSlbMF09RDtEPShuZXcgVWludDMyQXJyYXkoYikpWzBdO2lmKEQhPT12b2lkIDApZm9yKGo1KG4sMjg1KSxUNihuLDQpLGI9MDtiPDQ7KW4udmlldy5zZXRVaW50OChuLnBvcyxEJjI1NSksRD4+PTgsbi5wb3MrPTEsYis9MX1DUihuLDM2LFcuZnEpOwpRQShuLDM4LFcubWVkaWFDYXBhYmlsaXRpZXMsbVl3LDMpO0NSKG4sMzksVy5aSSk7Q1Iobiw0MCxXLllmKTtDUihuLDQ0LFcucGxheWVyU3RhdGUpO0JHKG4sNDYsVy5FYik7Q1Iobiw0OCxXLmo0KTtDUihuLDUwLFcua0UpO0NSKG4sNTEsVy5VbSk7Q1Iobiw1NCxXLkc3KTtpZihXLnlLKWZvcihEPTA7RDxXLnlLLmxlbmd0aDtEKyspQ1Iobiw1NSxXLnlLW0RdKTtCRyhuLDU2LFcuWkMpO0NSKG4sNTcsVy5YRCk7Qkcobiw1OCxXLmJ2KTtDUihuLDU5LFcublMpO0NSKG4sNjAsVy5HRik7Qkcobiw2MSxXLmlzUHJlZmV0Y2gpO0NSKG4sNjIsVy5TZik7Zy5GYShuLDYzLFcuc2FickxpY2Vuc2VDb25zdHJhaW50KTtDUihuLDY0LFcuazgpO0NSKG4sNjYsVy5WWCk7Q1Iobiw2NyxXLkJaKTtDUihuLDY4LFcucDYpO2cuUncobiw2OSxXLmF1ZGlvVHJhY2tJZCk7Qkcobiw3MSxXLnIwKTtRQShuLDcyLFcuTk8sSThqLDEpO0NSKG4sNzMsVy5pQik7Q1Iobiw3NCxXLllzKTtDUihuLDc1LFcuZXEpOwpDUihuLDc2LFcucU0pO1FBKG4sNzksVy5rYyxBOVMsMyk7Q1Iobiw4MCxXLkokKTtCRyhuLDg1LFcudXEpfTsKbVl3PWZ1bmN0aW9uKG4sVyl7aWYoVy52aWRlb0Zvcm1hdENhcGFiaWxpdGllcylmb3IodmFyIEQ9MDtEPFcudmlkZW9Gb3JtYXRDYXBhYmlsaXRpZXMubGVuZ3RoO0QrKylRQShuLDEsVy52aWRlb0Zvcm1hdENhcGFiaWxpdGllc1tEXSxLRDEsMSk7aWYoVy5hdWRpb0Zvcm1hdENhcGFiaWxpdGllcylmb3IoRD0wO0Q8Vy5hdWRpb0Zvcm1hdENhcGFiaWxpdGllcy5sZW5ndGg7RCsrKVFBKG4sMixXLmF1ZGlvRm9ybWF0Q2FwYWJpbGl0aWVzW0RdLE84TSwxKTtRQShuLDQsVy5wZXJQbGF5YmFja0F0dHJpYnV0ZXMsUDZTLDMpO0NSKG4sNSxXLmhkck1vZGVCaXRtYXNrKX07CnZhciBaODE9ZnVuY3Rpb24oKXtyZXR1cm4gZzdbSVsxMF1dKHRoaXMsNDEsODk3NSl9Owp2YXIgS0QxPWZ1bmN0aW9uKG4sVyl7Q1IobiwxLFcudmlkZW9Db2RlYyk7QkcobiwyLFcuZWZmaWNpZW50KTtDUihuLDMsVy5tYXhIZWlnaHQpO0NSKG4sNCxXLm1heFdpZHRoKTtDUihuLDExLFcubWF4RnJhbWVyYXRlKTtDUihuLDEyLFcubWF4Qml0cmF0ZUJwcyk7QkcobiwxNSxXLmlzMTBCaXRTdXBwb3J0ZWQpfSxPOE09ZnVuY3Rpb24obixXKXtDUihuLDEsVy5hdWRpb0NvZGVjKTsKQ1IobiwyLFcubnVtQ2hhbm5lbHMpO0NSKG4sMyxXLm1heEJpdHJhdGVCcHMpO0NSKG4sNixXLnNwYXRpYWxDYXBhYmlsaXR5Qml0bWFzayl9Owp2YXIgVVloPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFAwW0lbMTBdXSh0aGlzLDUxLDIyNDksbixXKX07ClA2Uz1mdW5jdGlvbihuLFcpe2lmKFcuaXRhZ0RlbnlsaXN0KWZvcihsZXQgRD0wO0Q8Vy5pdGFnRGVueWxpc3QubGVuZ3RoO0QrKylDUihuLDEsVy5pdGFnRGVueWxpc3RbRF0pfTsKd009ZnVuY3Rpb24obixXKXtRQShuLDEsVy5jbGllbnRJbmZvLHk5dCwzKTtnLkZhKG4sMixXLmROKTtnLkZhKG4sMyxXLnBsYXliYWNrQ29va2llKTtnLkZhKG4sNCxXLkJ4KTtpZihXLnJxKWZvcih2YXIgRD0wO0Q8Vy5ycS5sZW5ndGg7RCsrKVFBKG4sNSxXLnJxW0RdLEVuMiwzKTtpZihXLnV0KWZvcihEPTA7RDxXLnV0Lmxlbmd0aDtEKyspQ1Iobiw2LFcudXRbRF0pO2cuUncobiw3LFcucEcpO1FBKG4sOCxXLnEkLGk4VSwzKX07CnVmTT1mdW5jdGlvbihuLFcpe0NSKG4sMSxXLlN6KTtDUihuLDIsVy5SNyl9OwpvbnI9ZnVuY3Rpb24obixXKXt2YXIgRD1XLmNvZGU7RCE9PXZvaWQgMCYmKGo1KG4sOCksajUobixEPDwxXkQ+PjMxKSk7Zy5SdyhuLDIsVy5tZXNzYWdlKX07CmRZTT1mdW5jdGlvbihuLFcpe0NSKG4sMSxXLmNsaWVudFN0YXRlKTtRQShuLDIsVy5adSx1Zk0sMSl9OwppOFU9ZnVuY3Rpb24obixXKXtnLkZhKG4sMSxXLll0KTtRQShuLDIsVy5TaixvbnIsMyk7UUEobiwzLFcuY29sZFN0YXJ0SW5mbyxkWU0sMyl9OwpFbjI9ZnVuY3Rpb24obixXKXtDUihuLDEsVy50eXBlKTtnLkZhKG4sMixXLnZhbHVlKX07Cnk5dD1mdW5jdGlvbihuLFcpe2cuUncobiwxLFcuaGwpO2cuUncobiwxMixXLmRldmljZU1ha2UpO2cuUncobiwxMyxXLmRldmljZU1vZGVsKTtDUihuLDE2LFcuY2xpZW50TmFtZSk7Zy5SdyhuLDE3LFcuY2xpZW50VmVyc2lvbik7Zy5SdyhuLDE4LFcub3NOYW1lKTtnLlJ3KG4sMTksVy5vc1ZlcnNpb24pfTsKemoxPWZ1bmN0aW9uKG4sVyl7Zy5SdyhuLDEsVy5uYW1lKTtnLlJ3KG4sMixXLnZhbHVlKX07CmFmPWZ1bmN0aW9uKG4sVyl7Zy5SdyhuLDEsVy51cmwpO2lmKFcuZTMpZm9yKGxldCBEPTA7RDxXLmUzLmxlbmd0aDtEKyspUUEobiwyLFcuZTNbRF0semoxLDMpO2cuRmEobiwzLFcucG9zdEJvZHkpO0JHKG4sNCxXLkVhKTtCRyhuLDYsVy5lOCl9OwpwT2k9ZnVuY3Rpb24obixXKXtnLkZhKG4sMixXLnZVKTtnLkZhKG4sNSxXLmVuY3J5cHRlZENsaWVudEtleSk7Zy5GYShuLDYsVy5pdik7Zy5GYShuLDcsVy5kZik7QkcobiwxMCxXLm13KTtCRyhuLDEzLFcuRkQpO0JHKG4sMTQsVy5EWSk7Zy5GYShuLDE2LFcud1MpO0JHKG4sMTcsVy55Sil9OwpsOHQ9ZnVuY3Rpb24obil7cmV0dXJue1dzOlBHKG4sMSksaHR0cFN0YXR1czpQRyhuLDIpLGJvZHk6eUEobiw0KX19OwpZZmk9ZnVuY3Rpb24obixXKXtnLlJ3KG4sMSxXLnRva2VuKX07ClRRTT1mdW5jdGlvbihuKXtyZXR1cm57dG9rZW46RXgobiwxKX19OwpqX1U9ZnVuY3Rpb24obil7Zm9yKHZhciBXPVtdLEQ7RD1FeChuLDEpOylXLnB1c2goRCk7cmV0dXJue3VybDpXLmxlbmd0aD9XOnZvaWQgMH19OwpuNz1mdW5jdGlvbihuKXtyZXR1cm57QWg6UEcobiwxKSx2eTpQRyhuLDIpfX07CkZEYj1mdW5jdGlvbihuLFcpe1FBKG4sMSxXLkNuLEZHLDMpO2lmKFcuY0UpZm9yKHZhciBEPTA7RDxXLmNFLmxlbmd0aDtEKyspUUEobiwyLFcuY0VbRF0sTTQsMyk7aWYoVy5lVylmb3IoRD0wO0Q8Vy5lVy5sZW5ndGg7RCsrKVFBKG4sMyxXLmVXW0RdLFFyLDMpO2cuRmEobiw1LFcudmlkZW9QbGF5YmFja1VzdHJlYW1lckNvbmZpZyk7aWYoVy5CaSlmb3IoRD0wO0Q8Vy5CaS5sZW5ndGg7RCsrKVFBKG4sNixXLkJpW0RdLEM2VSwzKTtpZihXLkdoKWZvcihEPTA7RDxXLkdoLmxlbmd0aDtEKyspUUEobiwxNixXLkdoW0RdLE00LDMpO2lmKFcuTSQpZm9yKEQ9MDtEPFcuTSQubGVuZ3RoO0QrKylRQShuLDE3LFcuTSRbRF0sTTQsMyk7aWYoVy5Fdilmb3IoRD0wO0Q8Vy5Fdi5sZW5ndGg7RCsrKVFBKG4sMTgsVy5FdltEXSxNNCwzKTtRQShuLDE5LFcubUgsd00sMyk7UUEobiwyMSxXLk15LFduLDMpO0NSKG4sMjIsVy51TSk7Q1IobiwyMyxXLnJHKTtpZihXLmJLKWZvcihEPTA7RDxXLmJLLmxlbmd0aDtEKyspUUEobiwKMjQsVy5iS1tEXSxXbiwzKTtnLkZhKG4sMjUsVy5kUyk7aWYoVy5qcilmb3IoRD0wO0Q8Vy5qci5sZW5ndGg7RCsrKVFBKG4sMUUzLFcuanJbRF0sQlF3LDMpfTsKQzZVPWZ1bmN0aW9uKG4sVyl7UUEobiwxLFcuZm9ybWF0SWQsTTQsMyk7Q1IobiwyLFcudkQpO0NSKG4sMyxXLnNlcXVlbmNlTnVtYmVyKTtRQShuLDQsVy5oeCxSZiwxKTtDUihuLDUsVy5TMCk7Q1Iobiw2LFcudTMpfTsKV249ZnVuY3Rpb24obixXKXtpZihXLmFEKWZvcihsZXQgRD0wO0Q8Vy5hRC5sZW5ndGg7RCsrKWcuUncobiwxLFcuYURbRF0pO2cuRmEobiwyLFcuYWRzQ29uZmlnKTtnLlJ3KG4sMyxXLkJmKTtDUihuLDQsVy5ESik7Q1Iobiw1LFcub3YpO2cuUncobiw2LFcuZDMpO2cuUncobiw3LFcuY3VlcG9pbnRJZCk7Q1Iobiw4LFcuczEpO2cuUncobiw5LFcudGlsZUNvbnRleHQpO0NSKG4sMTAsVy5zdGFydFRpbWVNcyk7Q1IobiwxMSxXLmR1cmF0aW9uTXMpfTsKQlF3PWZ1bmN0aW9uKG4sVyl7aWYoVy5jRSlmb3IodmFyIEQ9MDtEPFcuY0UubGVuZ3RoO0QrKylRQShuLDEsVy5jRVtEXSxNNCwzKTtpZihXLmVXKWZvcihEPTA7RDxXLmVXLmxlbmd0aDtEKyspUUEobiwyLFcuZVdbRF0sUXIsMyk7Zy5SdyhuLDMsVy5jbGlwSWQpfTsKZy5EVT1mdW5jdGlvbihuLFcpe1FBKG4sMSxXLkNuLEZHLDMpO2cuRmEobiwzLFcudmlkZW9QbGF5YmFja1VzdHJlYW1lckNvbmZpZyk7UUEobiw1LFcubUgsd00sMyk7UUEobiw2LFcuTXksV24sMyl9Owp3T1o9ZnVuY3Rpb24obil7cmV0dXJue3R5cGU6UEcobiwxKX19OwpSalU9ZnVuY3Rpb24obixXKXtpZihXLk8zKWZvcihsZXQgRD0wO0Q8Vy5PMy5sZW5ndGg7RCsrKVFBKG4sMSxXLk8zW0RdLE02VSwzKX07ClFfMT1mdW5jdGlvbihuLFcpe1FBKG4sMTA0NyxXLmJMLFJqVSwzKX07Ck02VT1mdW5jdGlvbihuLFcpe2lmKFcualYpZm9yKHZhciBEPTA7RDxXLmpWLmxlbmd0aDtEKyspZy5GYShuLDEsVy5qVltEXSk7aWYoVy5yWClmb3IoRD0wO0Q8Vy5yWC5sZW5ndGg7RCsrKWcuRmEobiwyLFcuclhbRF0pfTsKbnl3PWZ1bmN0aW9uKG4sVyl7Zy5SdyhuLDEsVy5jcG4pO0NSKG4sMixXLnNlcXVlbmNlTnVtYmVyKTtnLlJ3KG4sMyxXLnNlcmlhbGl6ZWRXYXRjaEVuZHBvaW50TG9nZ2luZ0NvbnRleHQpO2lmKFcuZGVjb2RlckluZm8pZm9yKHZhciBEPTA7RDxXLmRlY29kZXJJbmZvLmxlbmd0aDtEKyspUUEobiw2LFcuZGVjb2RlckluZm9bRF0sVjZyLDMpO2cuUncobiw5LFcucGxheWVyUmVzcG9uc2VDcG4pO0NSKG4sMTAsVy50cmFuc2l0aW9uU3RpdGNoVHlwZSk7Zy5SdyhuLDExLFcucW9lUGluZ1VybCk7Q1IobiwxMixXLnRpbWVzdGFtcE9mZnNldE1zZWNzKTtDUihuLDE1LFcucmVtb3RlQ29udHJvbE1vZGUpO2lmKFcucmVtb3RlQ29ubmVjdGVkRGV2aWNlcylmb3IoRD0wO0Q8Vy5yZW1vdGVDb25uZWN0ZWREZXZpY2VzLmxlbmd0aDtEKyspUUEobiwxNixXLnJlbW90ZUNvbm5lY3RlZERldmljZXNbRF0sYzlNLDMpO2cuRmEobiwxNyxXLnNlcmlhbGl6ZWRIb3VzZUJyYW5kUGxheWVyU2VydmljZUxvZ2dpbmdDb250ZXh0KTsKaWYoVy5zZXJpYWxpemVkUW9lQ29udGV4dERhdGEpZm9yKEQ9MDtEPFcuc2VyaWFsaXplZFFvZUNvbnRleHREYXRhLmxlbmd0aDtEKyspZy5GYShuLDE5LFcuc2VyaWFsaXplZFFvZUNvbnRleHREYXRhW0RdKTtpZihXLmRhaUN1ZVBvaW50RXZlbnRzKWZvcihEPTA7RDxXLmRhaUN1ZVBvaW50RXZlbnRzLmxlbmd0aDtEKyspUUEobiwyMCxXLmRhaUN1ZVBvaW50RXZlbnRzW0RdLGE4MiwzKTtpZihXLnNlcmlhbGl6ZWRPbmVUaW1lUW9lQ29udGV4dERhdGEpZm9yKEQ9MDtEPFcuc2VyaWFsaXplZE9uZVRpbWVRb2VDb250ZXh0RGF0YS5sZW5ndGg7RCsrKWcuRmEobiwyMSxXLnNlcmlhbGl6ZWRPbmVUaW1lUW9lQ29udGV4dERhdGFbRF0pfTsKV0JqPWZ1bmN0aW9uKG4sVyl7Zy5SdyhuLDEsVy5pZGVudGlmaWVyKTtnLlJ3KG4sMixXLnRpbGVDb250ZXh0KX07Cmcudm49ZnVuY3Rpb24obil7dmFyIFc9e25zOm4uUmEsZWw6bi5ldmVudExhYmVsLGNwbjpuLmNsaWVudFBsYXliYWNrTm9uY2UsdmVyOjIsY210Om4uSihuLk4pLGZtdDpuLnZpZGVvRm9ybWF0LGZzOm4ualc/IjEiOiIwIixydDpuLkoobi53YSksYWRmb3JtYXQ6bi5hZEZvcm1hdCxjb250ZW50X3Y6bi5jb250ZW50VmlkZW9JZCxldXJpOm4uTWQsbGFjdDpuLk5kLGxpdmU6bi5UUSxjbDooOTUxNzc5MTA0KS50b1N0cmluZygpLG1vczpuLlJ0LHN0YXRlOm4ucGxheWVyU3RhdGUsdm9sdW1lOm4uZ1R9O24uc3Vic2NyaWJlZCYmKFcuc3Vic2NyaWJlZD0iMSIpO09iamVjdC5hc3NpZ24oVyxuLlkkKTtuLkQ9PT0iYWxsIj9PYmplY3QuYXNzaWduKFcsbi55RSk6bi5EPT09Im9uY2UiJiZuLlcmJk9iamVjdC5hc3NpZ24oVyxuLnlFKTtuLmF1dG9wbGF5JiYoVy5hdXRvcGxheT0iMSIpO24uTEImJihXLnNhdXRvcGxheT0iMSIpO24uQ3UmJihXLmRuaT0iMSIpOyFuLlgmJm4uSEomJihXLmVwbT0KRGMxW24uSEpdKTtuLmlzRmluYWwmJihXWyJmaW5hbCJdPSIxIik7bi5udSYmKFcuc3BsYXk9IjEiKTtuLm9EJiYoVy5kZWxheT1uLm9EKTtuLkR0JiYoVy5obD1uLkR0KTtuLnJlZ2lvbiYmKFcuY3I9bi5yZWdpb24pO24udXNlckdlbmRlckFnZSYmKFcudWdhPW4udXNlckdlbmRlckFnZSk7bi51c2VyQWdlIT09dm9pZCAwJiZuLkdDJiYoVy51Z2E9bi5HQytuLnVzZXJBZ2UpO24uZSQhPT12b2lkIDAmJihXLmxlbj1uLkoobi5lJCkpOyghbi5YfHxuLkJWKSYmbi5leHBlcmltZW50SWRzLmxlbmd0aD4wJiYoVy5mZXhwPW4uZXhwZXJpbWVudElkcy50b1N0cmluZygpKTtuLkshPT1udWxsJiYoVy5ydG49bi5KKG4uSykpO24uUzkmJihXLmZlYXR1cmU9bi5TOSk7bi5pNSYmKFcuY3RybD1uLmk1KTtuLlVLJiYoVy55dHI9bi5VSyk7bi52SiYmKFcuYWZtdD1uLnZKKTtuLm9mZmxpbmVEb3dubG9hZFVzZXJDaG9pY2UmJihXLk9EVUM9bi5vZmZsaW5lRG93bmxvYWRVc2VyQ2hvaWNlKTtuLlkmJgooVy5saW89bi5KKG4uWSkpO24uWD8oVy5pZHBqPW4uRTUsVy5sZHBqPW4uUXIsbi5kZWxheVRocmVzaG9sZE1ldCYmKFcuZHRtPSIxIiksbi5PIT1udWxsJiYoVy5ydGk9bi5KKG4uTykpLG4uRkwmJihXLmFsZD1uLkZMKSxuLmNvbXBvc2l0ZUxpdmVJbmdlc3Rpb25PZmZzZXRUb2tlbiYmKFcuY2xpbz1uLmNvbXBvc2l0ZUxpdmVJbmdlc3Rpb25PZmZzZXRUb2tlbikpOm4uYWRUeXBlIT09dm9pZCAwJiYoVy5hdD1uLmFkVHlwZSk7bi5mQiYmKG4uV3x8bi5YKSYmKFcuc2l6ZT1uLmZCKTtuLlcmJm4uVi5sZW5ndGgmJihXLnBic3R5bGU9bi5WLmpvaW4oIiwiKSk7bi5IRCE9bnVsbCYmKG4uV3x8bi5YKSYmKFcuaW52aWV3PW4uSihuLkhEKSk7bi5oZWFydGJlYXRMb2dnaW5nVG9rZW4mJihXLmhiX2RhdGE9bi5oZWFydGJlYXRMb2dnaW5nVG9rZW4pO24uWCYmKFcudm9sdW1lPWJKKG4sZy5pXyhuLnNlZ21lbnRzLEQ9PkQudm9sdW1lKSksVy5zdD1iSihuLGcuaV8obi5zZWdtZW50cywKRD0+RC5zdGFydFRpbWUpKSxXLmV0PWJKKG4sZy5pXyhuLnNlZ21lbnRzLEQ9PkQuZW5kVGltZSkpLGcub00obi5zZWdtZW50cyxEPT5ELnBsYXliYWNrUmF0ZSE9PTEpJiYoVy5yYXRlPWJKKG4sZy5pXyhuLnNlZ21lbnRzLEQ9PkQucGxheWJhY2tSYXRlKSkpLGcub00obi5zZWdtZW50cyxEPT5ELk4hPT0iLSIpJiYoVy5hbHM9Zy5pXyhuLnNlZ21lbnRzLEQ9PkQuTikuam9pbigiLCIpKSxnLm9NKG4uc2VnbWVudHMsRD0+RC5wcmV2aW91c2x5RW5kZWQpJiYoVy5wZT1nLmlfKG4uc2VnbWVudHMsRD0+YCR7K0QucHJldmlvdXNseUVuZGVkfWApLmpvaW4oIiwiKSkpOwpXLm11dGVkPWJKKG4sZy5pXyhuLnNlZ21lbnRzLEQ9PkQubXV0ZWQ/MTowKSk7Cmcub00obi5zZWdtZW50cyxEPT5ELnZpc2liaWxpdHlTdGF0ZSE9PTApJiYoVy52aXM9YkoobixnLmlfKG4uc2VnbWVudHMsRD0+RC52aXNpYmlsaXR5U3RhdGUpKSk7Cmcub00obi5zZWdtZW50cyxEPT5ELmNvbm5lY3Rpb25UeXBlIT09MCkmJihXLmNvbm49YkoobixnLmlfKG4uc2VnbWVudHMsRD0+RC5jb25uZWN0aW9uVHlwZSkpKTsKZy5vTShuLnNlZ21lbnRzLEQ9PkQuVyE9PTApJiYoVy5ibG89YkoobixnLmlfKG4uc2VnbWVudHMsRD0+RC5XKSkpOwpnLm9NKG4uc2VnbWVudHMsRD0+ISFELmopJiYoVy5ibG89Zy5pXyhuLnNlZ21lbnRzLEQ9PkQuaikuam9pbigiLCIpKTsKZy5vTShuLnNlZ21lbnRzLEQ9PiEhRC5jb21wb3NpdGVMaXZlU3RhdHVzVG9rZW4pJiYoVy5jYnM9Zy5pXyhuLnNlZ21lbnRzLEQ9PkQuY29tcG9zaXRlTGl2ZVN0YXR1c1Rva2VuKS5qb2luKCIsIikpOwpnLm9NKG4uc2VnbWVudHMsRD0+RC5KIT09Ii0iKSYmKFcuY2M9Zy5pXyhuLnNlZ21lbnRzLEQ9PkQuSikuam9pbigiLCIpKTsKZy5vTShuLnNlZ21lbnRzLEQ9PkQuY2xpcElkIT09Ii0iKSYmKFcuY2xpcGlkPWcuaV8obi5zZWdtZW50cyxEPT5ELmNsaXBJZCkuam9pbigiLCIpKTsKaWYoZy5vTShuLnNlZ21lbnRzLEQ9PiEhRC5hdWRpb0lkKSl7bGV0IEQ9ImF1IjsKbi5XJiYoRD0iYXVfZCIpO1dbRF09Zy5pXyhuLnNlZ21lbnRzLGI9PmIuYXVkaW9JZCkuam9pbigiLCIpfWcuakgoKSYmbi50dyYmKFcuY3R0PW4udHcsVy5jdHR5cGU9bi5QWCxXLm1keF9lbnZpcm9ubWVudD1uLm1keEVudmlyb25tZW50KTsKbi55dyYmKFcuZXR5cGU9bi5iZCE9PXZvaWQgMD9uLmJkOjApO24uRkYmJihXLnVvbz1uLkZGKTtuLmxpdmluZ1Jvb21BcHBNb2RlJiZuLmxpdmluZ1Jvb21BcHBNb2RlIT09IkxJVklOR19ST09NX0FQUF9NT0RFX1VOU1BFQ0lGSUVEIiYmKFcuY2xyYW09YlR3W24ubGl2aW5nUm9vbUFwcE1vZGVdfHxuLmxpdmluZ1Jvb21BcHBNb2RlKTtuLmo/dnlNKG4sVyk6KFcuZG9jaWQ9bi52aWRlb0lkLFcucmVmZXJyZXI9bi5yZWZlcnJlcixXLmVpPW4uZXZlbnRJZCxXLm9mPW4uUkgsVy5vc2lkPW4ub3NpZCxXLnZtPW4udmlkZW9NZXRhZGF0YSxuLmFkUXVlcnlJZCYmKFcuYXFpPW4uYWRRdWVyeUlkKSxuLmF1dG9uYXYmJihXLmF1dG9uYXY9IjEiKSxuLnBsYXlsaXN0SWQmJihXLmxpc3Q9bi5wbGF5bGlzdElkKSxuLkFSJiYoVy5zc3J0PSIxIiksbi5IcSYmKFcudXB0PW4uSHEpKTtuLlcmJihuLmVtYmVkc1JjdCYmKFcucmN0PW4uZW1iZWRzUmN0KSxuLmVtYmVkc1JjdG4mJihXLnJjdG49Cm4uZW1iZWRzUmN0biksbi5jb21wb3NpdGVMaXZlSW5nZXN0aW9uT2Zmc2V0VG9rZW4mJihXLmNsaW89bi5jb21wb3NpdGVMaXZlSW5nZXN0aW9uT2Zmc2V0VG9rZW4pKTtuLmhvc3RDcG4mJihXLmhvc3RfY3BuPW4uaG9zdENwbik7cmV0dXJuIFd9OwphODI9ZnVuY3Rpb24obixXKXtRQShuLDEsVy5pZGVudGlmaWVyLFdCaiwzKTtpZihXLnJlY2VpdmVkQ3VlUG9pbnRFdmVudHMpZm9yKHZhciBEPTA7RDxXLnJlY2VpdmVkQ3VlUG9pbnRFdmVudHMubGVuZ3RoO0QrKylRQShuLDIsVy5yZWNlaXZlZEN1ZVBvaW50RXZlbnRzW0RdLGtGdywxKTtpZihXLnJlY2VpdmVkQWRFdmVudHMpZm9yKEQ9MDtEPFcucmVjZWl2ZWRBZEV2ZW50cy5sZW5ndGg7RCsrKVFBKG4sMyxXLnJlY2VpdmVkQWRFdmVudHNbRF0saHN3LDMpfTsKa0Z3PWZ1bmN0aW9uKG4sVyl7Q1IobiwxLFcuZWxhcHNlZFRpbWVNcyk7Q1IobiwyLFcuc2VnbWVudFN0YXJ0VGltZU1zKTtDUihuLDMsVy5jdWVwb2ludEV2ZW50KTtDUihuLDQsVy5hZEJyZWFrRnVsZmlsbG1lbnRTdGF0ZSk7Q1Iobiw1LFcudHJhY2tUeXBlKTtDUihuLDYsVy5zZWdtZW50TnVtYmVyKTtDUihuLDcsVy5ub0Fkc1N0aXRjaGVkUmVhc29uKX07Cmhzdz1mdW5jdGlvbihuLFcpe0NSKG4sMSxXLmVsYXBzZWRUaW1lTXMpO2cuUncobiwyLFcuYWRDcG4pO0NSKG4sMyxXLmFkQWRkZWRMYXRlbmN5VGltZU1zKTtnLlJ3KG4sNCxXLmFkVmlkZW9JZCk7Q1Iobiw1LFcuYWRTdGFydFRpbWVNcyk7Q1Iobiw2LFcuYWREdXJhdGlvbk1zKTtDUihuLDcsVy5hZFJlamVjdGlvblJlYXNvbik7Q1Iobiw4LFcudGltZUVsYXBzZWRTaW5jZUN1ZXBvaW50TXMpfTsKVjZyPWZ1bmN0aW9uKG4sVyl7Q1IobiwxLFcuZWxhcHNlZFRpbWVNcyk7Zy5SdyhuLDMsVy52aWRlb0RlY29kZXJOYW1lKX07CmM5TT1mdW5jdGlvbihuLFcpe0NSKG4sMSxXLmRldmljZUludGVyZmFjZSk7Zy5SdyhuLDIsVy5kZXZpY2VWZXJzaW9uKTtCRyhuLDMsVy5pc1NsZWVwaW5nKX07CkxCVT1mdW5jdGlvbihuKXtyZXR1cm57ZmY6aWgobiwxLHhjYiksdHJhY2tUeXBlOlBHKG4sMiksUFA6UEcobiwzKSx0aW1lUmFuZ2U6aWgobiw0LGMkKSx0aWxlQ29udGV4dDpFeChuLDUpLGJ4OlBHKG4sNiksRzM6UEcobiw3KSxvcHBvcnR1bml0eUlkOkV4KG4sOCksc2VyaWFsaXplZFByZWZldGNoQ29udGV4dDp5QShuLDkpfX07CnhjYj1mdW5jdGlvbihuKXtyZXR1cm57dHlwZTpQRyhuLDEpLGV2ZW50OlBHKG4sMiksTUs6WncobiwzKSxUeTpadyhuLDQpLHVUOkV4KG4sNSksaWRlbnRpZmllcjpFeChuLDYpLEFDOlBHKG4sOSl9fTsKa2Q9ZnVuY3Rpb24obil7cmV0dXJue2ZpcnN0OlBHKG4sMSksSjc6UEcobiwyKX19Owplc2o9ZnVuY3Rpb24obil7cmV0dXJue2JpdHJhdGU6UEcobiw2KSx3aWR0aDpQRyhuLDcpLGhlaWdodDpQRyhuLDgpLGZwczpQRyhuLDI1KSxhdmVyYWdlQml0cmF0ZTpQRyhuLDMxKSxhdWRpb1NhbXBsZVJhdGU6UEcobiw0NSksYXVkaW9DaGFubmVsczpQRyhuLDQ2KSxxdWFsaXR5T3JkaW5hbDpQRyhuLDU2KX19Owpocz1mdW5jdGlvbihuKXtyZXR1cm57aXRhZ0RlbnlsaXN0OnVoKG4sMSl9fTsKZ3kxPWZ1bmN0aW9uKG4pe3JldHVybntZazpVeChuLDEpLFhXOlBHKG4sMiksc1E6VXgobiwzKSxOVDpadyhuLDQpLGNyeXB0b1BlcmlvZEluZGV4OlBHKG4sNSksWlg6UEcobiw2KSxMRzpQRyhuLDcpfX07CkdGQz1mdW5jdGlvbihuKXtyZXR1cm57SzU6UEcobiwxKSxpdGFnOkV4KG4sMyksUXQ6aWgobiw0LFh4dCksbG10OlBHKG4sNSksQ2U6UEcobiw3KSx4dGFnczpFeChuLDE1KSxuNjppaChuLDIzLHEwYiksWHQ6aWgobiwzNCxocyl9fTsKWHh0PWZ1bmN0aW9uKG4pe3JldHVybntpdjp5QShuLDUpLE5FOlV4KG4sNyl9fTsKdHBiPWZ1bmN0aW9uKG4pe3JldHVybntnazp1aChuLDIpLHZpZGVvSWQ6RXgobiwzKSxRbzpQRyhuLDQpfX07CnEwYj1mdW5jdGlvbihuKXtyZXR1cm57dmlkZW9JZDpFeChuLDIpfX07CiRjeD1mdW5jdGlvbihuKXtyZXR1cm57d2Y6UEcobiwzKSx2NzpQRyhuLDQpLEtOOlBHKG4sNSksWjM6VXgobiw4KSxXWjpQRyhuLDEwKSxITzpQRyhuLDEyKSxVUjpQRyhuLDEzKSxzUjpQRyhuLDE0KSx1MDpQRyhuLDE1KSxMejpQRyhuLDE2KX19Owp4ZD1mdW5jdGlvbihuKXtyZXR1cm57dGFyZ2V0QXVkaW9SZWFkYWhlYWRNczpQRyhuLDEpLHRhcmdldFZpZGVvUmVhZGFoZWFkTXM6UEcobiwyKSxiYWNrb2ZmVGltZU1zOlBHKG4sNCkscGxheWJhY2tDb29raWU6eUEobiw3KSx2aWRlb0lkOkV4KG4sOCl9fTsKTDc9ZnVuY3Rpb24obil7cmV0dXJue21pbkJhbmR3aWR0aEJ5dGVzUGVyU2VjOlBHKG4sMSksbWluUmVhZGFoZWFkTXM6UEcobiwyKX19OwplST1mdW5jdGlvbihuKXtyZXR1cm57c3RhcnRNaW5SZWFkYWhlYWRQb2xpY3k6b3cobiwxLEw3KSxyZXN1bWVNaW5SZWFkYWhlYWRQb2xpY3k6b3cobiwyLEw3KX19OwpyS3I9ZnVuY3Rpb24obil7cmV0dXJue2xhYmVsOkV4KG4sMSksdGV4dDpFeChuLDIpfX07CnNoWj1mdW5jdGlvbihuKXtyZXR1cm57dmlkZW9JZDpFeChuLDEpLGZvcm1hdElkOmloKG4sMixWciksZGVidWdJbmZvOm93KG4sMyxyS3IpfX07CmdQPWZ1bmN0aW9uKG4pe3JldHVybntKMDpvdyhuLDEsc2haKX19OwpObXQ9ZnVuY3Rpb24obil7cmV0dXJue0ZrOlBHKG4sMSksZno6UEcobiwyKSxtaW5SZWFkYWhlYWRNczpQRyhuLDMpfX07ClhOPWZ1bmN0aW9uKG4pe3JldHVybntwdjpQRyhuLDEpLGl0ZW1zOm93KG4sMixObXQpLFBuOlBHKG4sMyl9fTsKcHhpPWZ1bmN0aW9uKG4pe3JldHVybnt0b2tlbjpFeChuLDEpLHZpZGVvSWQ6RXgobiwyKX19OwpZMFU9ZnVuY3Rpb24obil7cmV0dXJue2V3OlBHKG4sMSl9fTsKcUc9ZnVuY3Rpb24obil7cmV0dXJue1FxOkV4KG4sMSksYWN0aW9uOlBHKG4sMiksQ3Y6aWgobiwzLFkwVSl9fTsKR0U9ZnVuY3Rpb24obil7cmV0dXJue0pKOlBHKG4sMSksUUI6UEcobiwyKSxzZWVrU291cmNlOlBHKG4sMyl9fTsKSFRaPWZ1bmN0aW9uKG4pe3JldHVybnt6SDpQRyhuLDEpLHg6UEcobiwyKSx5OlBHKG4sMyksd2lkdGg6UEcobiw0KSxoZWlnaHQ6UEcobiw1KX19OwpmbGo9ZnVuY3Rpb24obil7cmV0dXJue3JlZ2lvbjppaChuLDEsSFRaKSx1MTppaChuLDIsYyQpLGNwbjpFeChuLDUpLGxvZ2dpbmdNZXRhZGF0YTp5QShuLDYpLGJUOmloKG4sNyxjJCksTlI6UEcobiw4KSxxUjpVeChuLDkpfX07CkpLaj1mdW5jdGlvbihuKXtyZXR1cm57UjE6b3cobiwxLGZsail9fTsKSWxqPWZ1bmN0aW9uKG4pe3JldHVybnttZXRhZGF0YTpvdyhuLDEsSktqKSx0cmFja1R5cGU6UEcobiwyKX19Owp0cz1mdW5jdGlvbihuKXtyZXR1cm57dHlwZTpQRyhuLDEpLHNjb3BlOlBHKG4sMiksdmFsdWU6eUEobiwzKSxzZW5kQnlEZWZhdWx0OlV4KG4sNCksd3JpdGVQb2xpY3k6UEcobiw1KX19OwpTMHc9ZnVuY3Rpb24obixXKXtDUihuLDEsVy5pZCk7Zy5SdyhuLDIsVy51cmwpfTsKQUtyPWZ1bmN0aW9uKG4sVyl7Q1IobiwxLFcuaWQpO2cuUncobiwyLFcubmFtZSk7Q1IobiwzLFcucmVzb3VyY2VJZCk7Q1Iobiw0LFcubGluZSk7Q1Iobiw1LFcuY29sdW1uKX07Cm1jcj1mdW5jdGlvbihuLFcpe0NSKG4sMSxXLmlkKTtDUihuLDIsVy50aW1lc3RhbXBNcyk7Q1IobiwzLFcuc3RhY2tJZCl9OwpLQk09ZnVuY3Rpb24obixXKXtDUihuLDEsVy5pZCk7Q1IobiwyLFcuZnJhbWVJZCk7Q1IobiwzLFcucGFyZW50SWQpfTsKT1RiPWZ1bmN0aW9uKG4sVyl7aWYoVy5yZXNvdXJjZXMpZm9yKHZhciBEPTA7RDxXLnJlc291cmNlcy5sZW5ndGg7RCsrKVFBKG4sMSxXLnJlc291cmNlc1tEXSxTMHcsMyk7aWYoVy5mcmFtZXMpZm9yKEQ9MDtEPFcuZnJhbWVzLmxlbmd0aDtEKyspUUEobiwyLFcuZnJhbWVzW0RdLEFLciwzKTtpZihXLnNhbXBsZXMpZm9yKEQ9MDtEPFcuc2FtcGxlcy5sZW5ndGg7RCsrKVFBKG4sMyxXLnNhbXBsZXNbRF0sbWNyLDEpO2lmKFcuc3RhY2tzKWZvcihEPTA7RDxXLnN0YWNrcy5sZW5ndGg7RCsrKVFBKG4sNCxXLnN0YWNrc1tEXSxLQk0sMSl9OwpQa0M9ZnVuY3Rpb24obixXKXtnLkZhKG4sMSxXLmRhdGEpfTsKWlRVPWZ1bmN0aW9uKG4sVyl7QkcobiwxLFcucGxhY2Vob2xkZXIpfTsKVWNpPWZ1bmN0aW9uKG4sVyl7Q1IobiwxLFcuTXcpfTsKeUtDPWZ1bmN0aW9uKG4sVyl7QkcobiwxLFcucGxhY2Vob2xkZXIpfTsKRXkyPWZ1bmN0aW9uKG4sVyl7Zy5SdyhuLDEsVy5CQil9OwppVHg9ZnVuY3Rpb24obixXKXtnLkZhKG4sMSxXLmRhdGEpO0NSKG4sMixXLlM3KX07CnVMMj1mdW5jdGlvbihuLFcpe0NSKG4sMSxXLnR5cGUpO3ZhciBEPVcucUw7aWYoRCE9PXZvaWQgMCl7dmFyIGI9bmV3IEFycmF5QnVmZmVyKDgpOyhuZXcgRmxvYXQ2NEFycmF5KGIpKVswXT1EO0Q9bmV3IFVpbnQzMkFycmF5KGIpO2I9RFswXTtEPURbMV07aWYoYiE9PXZvaWQgMCYmRCE9PXZvaWQgMCl7ajUobiwxNyk7VDYobiw4KTtmb3IobGV0IHY9MDt2PDQ7disrKW4udmlldy5zZXRVaW50OChuLnBvcyxiJjI1NSksYj4+Pj04LG4ucG9zKz0xO2I9RDtmb3IoRD0wO0Q8NDtEKyspbi52aWV3LnNldFVpbnQ4KG4ucG9zLGImMjU1KSxiPj4+PTgsbi5wb3MrPTF9fVFBKG4sMyxXLmE5LFBrQywzKTtRQShuLDQsVy5seCxaVFUsMSk7UUEobiw1LFcucTAsVWNpLDEpO1FBKG4sNixXLmlzVHlwZVN1cHBvcnRlZCx5S0MsMSk7UUEobiw3LFcueTgsRXkyLDMpO1FBKG4sOCxXLkpMLGlUeCwzKX07Cm95aD1mdW5jdGlvbihuKXtyZXR1cm57ZGF0YTp5QShuLDEpfX07CmRjdD1mdW5jdGlvbihuKXtyZXR1cm57cGxhY2Vob2xkZXI6VXgobiwxKX19Owp6czE9ZnVuY3Rpb24obil7cmV0dXJue0hTOlp3KG4sMSl9fTsKbGxyPWZ1bmN0aW9uKG4pe3JldHVybntwbGFjZWhvbGRlcjpVeChuLDEpfX07ClRtcj1mdW5jdGlvbihuKXtyZXR1cm57cGxhY2Vob2xkZXI6VXgobiwxKX19OwpqaE09ZnVuY3Rpb24obil7cmV0dXJue2RhdGE6eUEobiwxKSxrazpQRyhuLDIpfX07CkNreD1mdW5jdGlvbihuKXtyZXR1cm57cGxhY2Vob2xkZXI6VXgobiwxKX19OwpCbWo9ZnVuY3Rpb24obil7cmV0dXJue3R5cGU6UEcobiwxKSxxTDpadyhuLDIpLFFKOlp3KG4sMyksVG86Wncobiw0KSxpbml0OmloKG4sNSxDa3gpLGE5OmloKG4sNixveWgpLGx4OmloKG4sNyxkY3QpLHEwOmloKG4sOCx6czEpLGlzVHlwZVN1cHBvcnRlZDppaChuLDksbGxyKSx5ODppaChuLDEwLFRtciksSkw6aWgobiwxMSxqaE0pfX07Cnd4Wj1mdW5jdGlvbihuKXtyZXR1cm4gT2JqZWN0LnZhbHVlcyhGQlUpLmluY2x1ZGVzKG4pfTsKTXBDPWZ1bmN0aW9uKG4peyRkPTI1OTJFMyoobnx8MSl9OwpyUD1mdW5jdGlvbigpe3ZhciBuPWcuWkkoInl0LXBsYXllci12b2x1bWUiKXx8e30sVz1uLnZvbHVtZTtyZXR1cm57dm9sdW1lOmlzTmFOKFcpPzEwMDpnLkZmKE1hdGguZmxvb3IoVyksMCwxMDApLG11dGVkOiEhbi5tdXRlZH19Owpzbj1mdW5jdGlvbihuKXtnLlBCKCJ5dC1wbGF5ZXItYmFuZHdpZHRoIixuLDI1OTJFMyl9OwpwNz1mdW5jdGlvbihuPSRkKXtpZihuPjAmJiEoVVAoKT4oMCxnLlIpKCktbioxRTMpKXJldHVybiAwO249Zy5aSSgieXQtcGxheWVyLXF1YWxpdHkiKTtpZih0eXBlb2Ygbj09PSJzdHJpbmciKXtpZihuPU5HW25dLG4+MClyZXR1cm4gbn1lbHNlIGlmKG4gaW5zdGFuY2VvZiBPYmplY3QpcmV0dXJuIG4ucXVhbGl0eTtyZXR1cm4gMH07CllkPWZ1bmN0aW9uKCl7dmFyIG49Zy5aSSgieXQtcGxheWVyLXByb3hpbWEtcHJlZiIpO3JldHVybiBuPT1udWxsP251bGw6bn07ClJzeD1mdW5jdGlvbigpe3ZhciBuPWcuWkkoInl0LXBsYXllci1xdWFsaXR5Iik7aWYobiBpbnN0YW5jZW9mIE9iamVjdCYmbi5xdWFsaXR5JiZuLnByZXZpb3VzUXVhbGl0eSl7aWYobi5xdWFsaXR5Pm4ucHJldmlvdXNRdWFsaXR5KXJldHVybiAxO2lmKG4ucXVhbGl0eTxuLnByZXZpb3VzUXVhbGl0eSlyZXR1cm4tMX1yZXR1cm4gMH07CkhuPWZ1bmN0aW9uKCl7dmFyIG49e3ZhbHVlczp7fSxGWTp7fX07dHJ5e2xldCBXPUpTT04ucGFyc2UoSlNPTi5wYXJzZSh3aW5kb3cubG9jYWxTdG9yYWdlWyJ5dC1wbGF5ZXItbWVtb3J5Il0pLmRhdGEpO24udmFsdWVzPVcudmFsdWVzO24uaGFsZkxpdmVzPVcuaGFsZkxpdmVzfWNhdGNoe31yZXR1cm4gbn07CmY3PWZ1bmN0aW9uKCl7cmV0dXJuIGcuWkkoInl0LXBsYXllci1wZXJmb3JtYW5jZS1jYXAiKXx8e319OwpRaHc9ZnVuY3Rpb24obj0hMSl7aWYobil7bj1mNygpO2ZvcihsZXQgVyBvZiBPYmplY3Qua2V5cyhuKSlXLmluZGV4T2YoIjEiKSE9PTAmJmRlbGV0ZSBuW1ddO2cuUEIoInl0LXBsYXllci1wZXJmb3JtYW5jZS1jYXAiLG4sMjU5MkUzKX1lbHNlIHRyeXtsZXQgVz1PUC5xYigpLEQ9T1AuQnAoKTtXJiZXLnJlbW92ZSgieXQtcGxheWVyLXBlcmZvcm1hbmNlLWNhcCIpO0QmJkQucmVtb3ZlKCJ5dC1wbGF5ZXItcGVyZm9ybWFuY2UtY2FwIil9Y2F0Y2goVyl7fX07CkpzPWZ1bmN0aW9uKCl7cmV0dXJuIGcuWkkoInl0LXBsYXllci1wZXJmb3JtYW5jZS1jYXAtYWN0aXZlLXNldCIpPz9bXX07ClZwQz1mdW5jdGlvbihuPSExKXtuPyhuPUpzKCkuZmlsdGVyKFc9Plcuc3RhcnRzV2l0aCgiMSIpKSxnLlBCKCJ5dC1wbGF5ZXItcGVyZm9ybWFuY2UtY2FwLWFjdGl2ZS1zZXQiLG4sMjU5MkUzKSk6Zy5QQigieXQtcGxheWVyLXBlcmZvcm1hbmNlLWNhcC1hY3RpdmUtc2V0IixbXSwyNTkyRTMpfTsKSU89ZnVuY3Rpb24oKXtyZXR1cm4hIWcuWkkoInl0LXBsYXllci1oZWFkZXJzLXJlYWRhYmxlIil9OwpnLlNJPWZ1bmN0aW9uKCl7dmFyIG49Zy5aSSgieXQtcGxheWVyLWNhcHRpb24tbGFuZ3VhZ2UtcHJlZmVyZW5jZXMiKTtyZXR1cm4gbj9uOltdfTsKQXM9ZnVuY3Rpb24oKXt2YXIgbj1nLlpJKCJ5dC1wbGF5ZXItdXNlci1zZXR0aW5ncyIpLFc9bmV3IE1hcDtpZihuKWZvcihsZXQgW0QsYl1vZiBPYmplY3QuZW50cmllcyhuKSlXLnNldChELGIpO3JldHVybiBXfTsKbTU9ZnVuY3Rpb24oKXtyZXR1cm4gZy5aSSgieXQtcGxheWVyLXZvaWNlLWJvb3N0Iik/P3ZvaWQgMH07Cks3PWZ1bmN0aW9uKCl7cmV0dXJuIGcuWkkoInl0LXBsYXllci1hdWRpby1xdWFsaXR5LXNldHRpbmciKT8/Mn07ClpVPWZ1bmN0aW9uKCl7dHJ5e2xldCBuPXdpbmRvdy5uYXZpZ2F0b3I7aWYobi5nZXRBdXRvcGxheVBvbGljeSYmdHlwZW9mIG4uZ2V0QXV0b3BsYXlQb2xpY3k9PT0iZnVuY3Rpb24iKXtsZXQgVz1kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGcuT24uV0MpLEQ7RD1XLmxlbmd0aD4wJiZXWzBdP24uZ2V0QXV0b3BsYXlQb2xpY3koV1swXSk6bi5nZXRBdXRvcGxheVBvbGljeSgibWVkaWFlbGVtZW50Iik7aWYoUG5bRF0pcmV0dXJuIFBuW0RdfX1jYXRjaChuKXt9cmV0dXJuIkFVVE9QTEFZX0JST1dTRVJfUE9MSUNZX1VOU1BFQ0lGSUVEIn07ClVuPWZ1bmN0aW9uKG4pe3JldHVybiBuLlBYfHxuLkd1fHxuLm11dGVkQXV0b3BsYXl9Owp5dz1mdW5jdGlvbihuLFcpe3JldHVybiBVbihuKT9XIT09MSYmVyE9PTImJlchPT0wPyJBVVRPUExBWV9TVEFUVVNfVU5BVkFJTEFCTEUiOm4uc1o/IkFVVE9QTEFZX1NUQVRVU19CTE9DS0VEIjoiQVVUT1BMQVlfU1RBVFVTX09DQ1VSUkVEIjoiQVVUT1BMQVlfU1RBVFVTX05PVF9BVFRFTVBURUQifTsKZy5Fbj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9Vy5HKCk7bi50aGlyZFBhcnR5fHwobi50aGlyZFBhcnR5PXt9KTtuLnRoaXJkUGFydHk9ey4uLm4udGhpcmRQYXJ0eSxlbWJlZFVybDpiLmxvYWRlclVybH07Yi5hbmNlc3Rvck9yaWdpbnMmJihuLnRoaXJkUGFydHkuZW1iZWRkZWRQbGF5ZXJDb250ZXh0PXsuLi5uLnRoaXJkUGFydHkuZW1iZWRkZWRQbGF5ZXJDb250ZXh0LGFuY2VzdG9yT3JpZ2luczpiLmFuY2VzdG9yT3JpZ2luc30pO2IuZUshPW51bGwmJihuLnRoaXJkUGFydHkuZW1iZWRkZWRQbGF5ZXJDb250ZXh0PXsuLi5uLnRoaXJkUGFydHkuZW1iZWRkZWRQbGF5ZXJDb250ZXh0LHZpc2liaWxpdHlGcmFjdGlvbjpOdW1iZXIoYi5lSyl9KTtiLkxLJiYobi50aGlyZFBhcnR5LmVtYmVkZGVkUGxheWVyQ29udGV4dD17Li4ubi50aGlyZFBhcnR5LmVtYmVkZGVkUGxheWVyQ29udGV4dCx2aXNpYmlsaXR5RnJhY3Rpb25Tb3VyY2U6Yi5MS30pO24udGhpcmRQYXJ0eS5lbWJlZGRlZFBsYXllckNvbnRleHQ9CnsuLi5uLnRoaXJkUGFydHkuZW1iZWRkZWRQbGF5ZXJDb250ZXh0LGF1dG9wbGF5QnJvd3NlclBvbGljeTpaVSgpLGF1dG9wbGF5SW50ZW5kZWQ6VW4oVyksYXV0b3BsYXlTdGF0dXM6eXcoVyxEKX19OwppSj1mdW5jdGlvbihuKXt2YXIgVz1bXTtmb3IobGV0IEQgb2Ygbi5zcGxpdCgiLCIpKXtpZighRCljb250aW51ZTsobj1ELnN0YXJ0c1dpdGgoIiEiKSkmJihEPUQuc3Vic3RyaW5nKDEpKTtsZXQgYj1ELnNwbGl0KCItIik7Yi5sZW5ndGg8M3x8Vy5wdXNoKHtoajpiWzBdLHBsYXRmb3JtOmJbMV0sZGV2aWNlVmVyc2lvbjpiWzJdLEVzOm59KX1yZXR1cm4gV307CmFseD1mdW5jdGlvbihuKXtyZXR1cm4gaUoobikubWFwKCh7aGo6VyxkZXZpY2VWZXJzaW9uOkQsRXM6Yn0pPT4oe2RldmljZUludGVyZmFjZTpjS01bdUpbV11dfHwwLGRldmljZVZlcnNpb246RHx8IiIsaXNTbGVlcGluZzpifSkpfTsKb089ZnVuY3Rpb24obixXLEQ9ITEsYj0iIil7IW4mJkQmJmcuR3EoRXJyb3IoYFBsYXllciBVUkwgdmFsaWRhdG9yIGRldGVjdHMgaW52YWxpZCB1cmwuICR7Yn06ICR7V31gKSk7cmV0dXJuIG59Owp6RT1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIFcmJlcudGVzdChuKXx8ZFAmJkQmJkQudGVzdChuKT8hMDohMX07ClRFPWZ1bmN0aW9uKG4pe3JldHVybihuPWxKJiZsSi5leGVjKG4pKT9uWzBdOiIifTsKZ1g9ZnVuY3Rpb24obil7cmV0dXJuIG9PKHpFKG4sbkV3LFdoWiksbiwhMSwiVHJ1c3RlZCBTdHJlYW0gVVJMIil9OwpnLmpJPWZ1bmN0aW9uKG4pe3JldHVybiBvTyh6RShuLEQ1VSxiS1opLG4sITEsIlRydXN0ZWQgSW1hZ2UgVVJMIil9OwpDNz1mdW5jdGlvbihuKXtyZXR1cm4gb08oekUobix2RWgsbnVsbCksbiwhMSwiVHJ1c3RlZCBQcm9tb3RlZCBWaWRlbyBEb21haW4gVVJMIil9OwpoQWk9ZnVuY3Rpb24obil7cmV0dXJuIG9PKHpFKG4sazdyLG51bGwpLG4sITEsIkRybSBMaWNlbnNvciBVUkwiKX07CkJuPWZ1bmN0aW9uKG4sVz0hMSl7cmV0dXJuIG9PKHpFKG4seDVyLExodCksbixXLCJDYXB0aW9ucyBVUkwiKX07CmVBPWZ1bmN0aW9uKG4pe249bmV3IGcuVWoobik7eU4obixkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCk7RWoobixkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZSk7ZG9jdW1lbnQubG9jYXRpb24ucG9ydCYmaXIobixkb2N1bWVudC5sb2NhdGlvbi5wb3J0KTtyZXR1cm4gbi50b1N0cmluZygpfTsKRk49ZnVuY3Rpb24obil7bj1uZXcgZy5VaihuKTt5TihuLGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sKTtyZXR1cm4gbi50b1N0cmluZygpfTsKZUFaPWZ1bmN0aW9uKG4pe3JldHVybntbMV06bi5uYW1lLFsyXTpuLmlkLFszXTpuLmlzRGVmYXVsdCxbNF06bi5pc0F1dG9EdWJiZWR9fTsKTUc9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyB3UChuWzFdLG5bMl0sblszXSxuWzRdKX07ClJPPWZ1bmN0aW9uKG4pe3JldHVybntbMV06bi5sYW5ndWFnZUNvZGUsWzJdOm4ubGFuZ3VhZ2VOYW1lLFszXTpuLmtpbmQsWzRdOm4ubmFtZSxbNV06bi5kaXNwbGF5TmFtZSxbNl06bi5pZCxbN106bi54dGFncyxbOF06bi5OLFs5XTpuLmlzVHJhbnNsYXRlYWJsZSxbMTBdOm4udXJsLFsxMV06bi52c3NJZCxbMTJdOm4uaXNEZWZhdWx0LFsxM106bi50cmFuc2xhdGlvbkxhbmd1YWdlLFsxNF06bi5jYXB0aW9uSWR9fTsKVnc9ZnVuY3Rpb24obil7dmFyIFc9bmV3IGcuUXcoe2xhbmd1YWdlQ29kZTpuWzFdLGxhbmd1YWdlTmFtZTpuWzJdLGtpbmQ6blszXSxuYW1lOm5bNF0saWQ6bls2XSxpc19zZXJ2YWJsZTpuWzhdLGlzX3RyYW5zbGF0ZWFibGU6bls5XSx1cmw6blsxMF0sdnNzX2lkOm5bMTFdLGlzX2RlZmF1bHQ6blsxMl0seHRhZ3M6bls3XSxjYXB0aW9uSWQ6blsxNF19KTtXLmRpc3BsYXlOYW1lPW5bNV07Vy50cmFuc2xhdGlvbkxhbmd1YWdlPW5bMTNdO3JldHVybiBXfTsKZy5jbj1mdW5jdGlvbihuKXt2YXIgVz1bXTtpZihuLmRpc3BsYXlOYW1lKVcucHVzaChuLmRpc3BsYXlOYW1lKTtlbHNle2xldCBEPW4ubGFuZ3VhZ2VOYW1lfHwiIjtXLnB1c2goRCk7bi5raW5kPT09ImFzciImJkQuaW5kZXhPZigiKCIpPT09LTEmJlcucHVzaCgiIChBdXRvbWF0aWMgQ2FwdGlvbnMpIik7bi5uYW1lJiZXLnB1c2goYCAtICR7bi5uYW1lfWApfW4udHJhbnNsYXRpb25MYW5ndWFnZSYmVy5wdXNoKGAgPj4gJHtuLnRyYW5zbGF0aW9uTGFuZ3VhZ2UubGFuZ3VhZ2VOYW1lfWApO3JldHVybiBXLmpvaW4oIiIpfTsKZy5hTz1mdW5jdGlvbihuKXtyZXR1cm4gbi50cmFuc2xhdGlvbkxhbmd1YWdlP24udHJhbnNsYXRpb25MYW5ndWFnZS5sYW5ndWFnZUNvZGU6bi5sYW5ndWFnZUNvZGV9OwpnLm5nPWZ1bmN0aW9uKG4pe3ZhciBXPW4udnNzSWQ7bi50cmFuc2xhdGlvbkxhbmd1YWdlJiZXJiYoVz1gdCR7V30uJHtnLmFPKG4pfWApO3JldHVybiBXfTsKZ0V3PWZ1bmN0aW9uKG4pe3ZhciBXPW4uVyxEPW4uTixiPW4uWDtyZXR1cm57WzFdOm4uY2FwdGlvbnNJbml0aWFsU3RhdGUsWzJdOm4uSixbM106bi5jYXB0aW9uVHJhY2tzLm1hcCh2PT5STyh2KSksCls0XTpXP1JPKFcpOm51bGwsWzVdOkQ/Uk8oRCk6bnVsbCxbNl06bi5pZCxbN106bi5qLFs4XTpuLlYsWzldOmVBWihuLmtaKSxbMTBdOmI/Uk8oYik6bnVsbCxbMTFdOm4ueHRhZ3N9fTsKRGM9ZnVuY3Rpb24obil7dmFyIFc9bls0XSxEPW5bNV0sYj1uWzEwXSx2PW5ldyBXQShuWzZdLE1HKG5bOV0pKTt2LmNhcHRpb25zSW5pdGlhbFN0YXRlPW5bMV07di5jYXB0aW9uVHJhY2tzPW5bM10ubWFwKGs9PlZ3KGspKTsKdi5KPW5bMl07di5XPVc/VncoVyk6bnVsbDt2Lk49RD9WdyhEKTpudWxsO3Yuaj1uWzddO3YuVj1uWzhdO3YuWD1iP1Z3KGIpOm51bGw7di54dGFncz1uWzExXTtyZXR1cm4gdn07CnZBPWZ1bmN0aW9uKG4sVyxELGIpe3JldHVybiBuZXcgYjMoTkdbbl18fDAsTkdbV118fDAsRCxiKX07CmtKPWZ1bmN0aW9uKG4pe3JldHVybntbMV06bi5KLFsyXTpuLk4sWzNdOm4uVyxbNF06bi5yZWFzb24sWzVdOm4uTnN9fTsKWExTPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgYjMoblsxXSxuWzJdLG5bM10sbls0XSxuWzVdKX07CnhKPWZ1bmN0aW9uKG4pe2lmKGhUJiZuLk5zKXJldHVybiExO3ZhciBXPU5HLmF1dG87cmV0dXJuIG4uSj09PVcmJm4uTj09PVd9OwplSj1mdW5jdGlvbihuKXtyZXR1cm4gTGdbbi5OfHxuLkpdfHwiYXV0byJ9OwpnRj1mdW5jdGlvbihuLFcpe1c9TkdbV107cmV0dXJuIG4uSjw9VyYmKCFuLk58fG4uTj49Vyl9OwpYcD1mdW5jdGlvbihuKXtyZXR1cm4hIW5bIjEiXT8ubGVuZ3RofHwhIW5bIjFoIl0/Lmxlbmd0aHx8ISFuWyIxZSJdPy5sZW5ndGh9OwpxZD1mdW5jdGlvbihuKXtyZXR1cm4gbj09PSIxInx8bj09PSIxaCJ8fG49PT0iMWUifTsKTmQ9ZnVuY3Rpb24obixXLEQsYix2LGssaCl7dmFyIHg9ITE7aWYobi5KKXJldHVybiBuLko7dmFyIEw9e30sZT1uZXcgU2V0LEc9e307aWYoR18oYikpe2Zvcih2YXIgciBpbiBiLk4pe2lmKCFiLk4uaGFzT3duUHJvcGVydHkocikpY29udGludWU7bj1iLk5bcl07R1tuLmluZm8uSUJdPVtuLmluZm9dfXJldHVybiBHfXI9dFQoVyxiLEwpO2lmKFcuSil7KHg9WHAocikpfHwoVy5OLm5vQXYxUmVhc29uPSJub0Zvcm1hdCIpO3ZhciBOPUQuWT8iZGlzYWJsZUF2MUZvclNlc3Npb24iOiIiO04mJihXLk4ubm9BdjFSZWFzb249Tik7dih7bm9BdjFSZWFzb246Vy5OLm5vQXYxUmVhc29ufSl9ayYmdih7YWZ0c3J0OiRKKHIpfSk7Tj17fTt2YXIgSD0iIjtmb3IobGV0IEEgb2YgT2JqZWN0LmtleXMocikpe2xldCB5PUE7Zm9yKGxldCBUIG9mIHJbeV0pe2xldCB6PVQuaXRhZyxDPXJGKHksVCxXKTtpZihOLmhhc093blByb3BlcnR5KEMpKXtOW0NdPT09ITA/R1t5XS5wdXNoKFQpOkxbel09Ck5bQ107Y29udGludWV9bGV0IFE9c0QoVyxULEQsYi5pc0xpdmUsZSk7USE9PSEwPyhoLmFkZCh5KSxMW3pdPVEsVy5KJiZULk1XKCkmJihIKz1gOyR7en07JHtRfWApLFE9PT0iZGlzYWJsZXZwOWhmciImJihOW0NdPSJkaXNhYmxldnA5aGZyIikpOihHW3ldPUdbeV18fFtdLEdbeV0ucHVzaChUKSxOW0NdPSEwKX19Vy5KJiZ4JiYhWHAoRykmJih4PSExLFcuTi5ub0F2MVJlYXNvbj1ILHYoe25vQXYxUmVhc29uOlcuTi5ub0F2MVJlYXNvbn0pKTtrJiZ2KHtiZmZsdDokSihHKX0pO2ZvcihsZXQgQSBpbiBHKXtpZighRy5oYXNPd25Qcm9wZXJ0eShBKSljb250aW51ZTtiPUE7R1tiXSYmR1tiXVswXS5mWSgpJiYoaD1HW2JdLmxlbmd0aCxHW2JdPUdbYl0sVy5KJiZxZChiKSYmaD4wJiZHW2JdLmxlbmd0aDw9MCYmKGg9R1tiXS5sZW5ndGgsdih7bm9BdjFGbXQ6ImZpbHRlclZwOVVsdGxvdyIsY29kZWM6Yn0pKSxHW2JdPXEyQyhXLEdbYl0sTCksVy5KJiZxZChiKSYmaD4wJiZHW2JdLmxlbmd0aDw9CjAmJihoPUdbYl0ubGVuZ3RoLHYoe25vQXYxRm10OiJmaWx0ZXJRdWFsaXRpZXMiLGNvZGVjOmJ9KSksR1tiXT1HN1UoR1tiXSxMKSxXLkomJnFkKGIpJiZoPjAmJkdbYl0ubGVuZ3RoPD0wJiZ2KHtub0F2MUZtdDoiZmlsdGVySGZyIixjb2RlYzpifSkpfWsmJk9iamVjdC5rZXlzKEwpLmxlbmd0aD4wJiZ2KHtyanI6Zy5UQyhMKX0pO2ZvcihsZXQgQSBvZiBlLnZhbHVlcygpKShMPUQuVy5nZXQoQSkpJiYtLUwuZzE7ayYmdih7YWZ0Zmx0OiRKKEcpfSk7Vy5KJiZ4JiYhWHAoRykmJih4PSExLFcuTi5ub0F2MVJlYXNvbj0iZmlsdGVyIix2KHtub0F2MVJlYXNvbjpXLk4ubm9BdjFSZWFzb259KSk7bi5KPWcublQoRyxBPT4hIUEubGVuZ3RoKTsKcmV0dXJuIG4uSn07CklEaD1mdW5jdGlvbihuLFcsRCxiLHYsayxoKXt2YXIgeD1XLld8fCEhdixMPXgmJlcuTEI/azp2b2lkIDAsZT1uZXcgU2V0LEc9TmQobixXLEQsYixrLHgsZSk7Yi5YKCkmJihHPXRnaChELEcsdix4LGssVykseCYmayh7ZW5mbHQ6JEooRyl9KSk7Vy55RT0kNXIoRyxXKTt2PUx0PT4hIUdbTHRdOwp2YXIgcj1ySGkoVyk7RD1bXTtmb3IodmFyIE4gb2YgT2JqZWN0LnZhbHVlcyhHKSlOPy5sZW5ndGgmJk5bMF0uZVMoKSYmRC5wdXNoKC4uLk4pO2lmKEdfKGIpKXJldHVybiBrPWcubF8oT2JqZWN0LnZhbHVlcyhHKSxMdD0+ISFMdC5sZW5ndGgmJiEhTHRbMF0uYXVkaW8pLHg9Zy5sXyhPYmplY3QudmFsdWVzKEcpLEx0PT4hIUx0Lmxlbmd0aCYmISFMdFswXS52aWRlbyksayYmeHx8Zy5wJCgpLGcuSDAobmV3IHBnKHgsayxMLEQpKTsKTj1HLmE7dmFyIEg9ITE7Vy5IaSYmclswXSE9PSJhIiYmc1diKE4pJiYoci51bnNoaWZ0KCJhIiksSD0hMCk7eCYmKGsoe2F1ZGlvUHJlZk9yZGVyOnIuam9pbigiXyIpfSksayh7cHJlZmVySGlnaFF1YWxpdHlBdWRpbzpXLkhpfSksayh7Zm9yY2VkQWFjRm9ySHFhOkh9KSk7Tj1bXTtpZihXLnZYKXtyPWcuRU0ocix2KTtIPW5ldyBTZXQ7Zm9yKHZhciBBIG9mIHIpe3ZhciB5PUdbQV07bGV0IEx0PW5ldyBTZXQ7Zm9yKHZhciBUIG9mIHkpaWYoeT1ULmtaPy5pZClILmhhcyh5KT9MdC5oYXMoeSkmJk4ucHVzaChUKTooTHQuYWRkKHkpLEguYWRkKHkpLE4ucHVzaChUKSl9aWYoTi5sZW5ndGg9PT0wKXtpZihyLmxlbmd0aD09PTApcmV0dXJuIHgmJmsoe25vYXVkaW86MX0pLGcucCQoKTtOPUdbclswXV19fWVsc2V7Tj1nLmxfKHIsdik7aWYoIU4pcmV0dXJuIHgmJmsoe25vYXVkaW86MX0pLGcucCQoKTtOPUdbTl19R1siOSJdJiZHLmgmJmIuelcmJiFXLkZGJiYoeCYmayh7ZGx0dnA5OjF9KSwKZGVsZXRlIEdbIjkiXSk7aWYoaCl7eCYmayh7YmZzZmx0OiRKKEcpLGJmc2ZsdGE6WUoobil9KTtXLkR0P24uTj1ORFMoZSxuLk4pOm4uTi5jbGVhcigpO3gmJmsoe2Jmc2ZsdGI6WUoobil9KTtmb3IodmFyIHogaW4gRyl7aWYoIUcuaGFzT3duUHJvcGVydHkoeikpY29udGludWU7aD16O2lmKCEoaD09PSJmInx8Vy54ZD09PTAmJnBMai5oYXMoaCkpKWZvcih2YXIgQyBvZiBHW2hdKVcuRHQ/WTJTKGgsQyxuLk4pOkhLaShuLGgsQyl9eCYmayh7YWZ0c2ZsdDpZSihuKX0pfXo9R1siMWgiXT8iMWgiOiIxIjtuPUdbIjloIl0/IjloIjoiOSI7aD1HW3pdO2U9R1siMiJdO0E9R1tuXTtoJiZoLmxlbmd0aCYmKFcuTi5oaWdoZXN0QXYxUmVzb2x1dGlvbj1oW2gubGVuZ3RoLTFdLnZpZGVvLnF1YWxpdHlPcmRpbmFsKTtBJiZBLmxlbmd0aCYmKFcuTi5oaWdoZXN0VnA5UmVzb2x1dGlvbj1BW0EubGVuZ3RoLTFdLnZpZGVvLnF1YWxpdHlPcmRpbmFsKTtDPVtdO1Q9W107aWYoVy55dyYmZSlDPQplLFQ9WyIyIl07ZWxzZSBpZihXLk1kJiZoKUM9aCxUPVt6XSxrKHtmb3JjZUF2MTp6fSk7ZWxzZSBpZihXLkQmJiFXLmJ2KXtUPWZEdyhiKT9HWyIxaCJdfHxHWyI5aCJdP1siMWgiLCI5aCJdOlsiOSIsImgiXTpbIjEiLCI5IiwiaCJdO3gmJmsoe25ld2h5YnByZWY6VC5qb2luKCIuIil9KTtmb3IodmFyIFEgb2YgVClDPUMuY29uY2F0KEdbUV0pLmZpbHRlcihMdD0+THQpfWVsc2UgVy5uUz4wJiZBJiZoJiYoVD1beiwKbl0sQz1oLmNvbmNhdChBKS5maWx0ZXIoTHQ9Pkx0KSk7CmlmKEMubGVuZ3RoJiYhVy5idil7SEEoQyxUKTtpZih4KXt4PVtdO2Zvcih2YXIgViBvZiBDKXgucHVzaChWLml0YWcpO2soe2hiZGZtdDp4LmpvaW4oIi4iKX0pfXJldHVybiBnLkgwKG5ldyBwZyhDLE4sTCxEKSl9Vj1KSHIoVyk7Vj1nLmxfKFYsdik7aWYoIVYpe2lmKEdbel0pcmV0dXJuIGs9R1t6XSxIQShrKSxnLkgwKG5ldyBwZyhrLE4sTCxEKSk7eCYmayh7bm92aWRlbzoxfSk7cmV0dXJuIGcucCQoKX1WIT09IjEiJiZWIT09IjFoInx8IUdbbl18fChRPWZnKEdbVl0pLHY9ZmcoR1tuXSksdj5RP1Y9bjooUT12PT09USx2PUpUKEdbbl0pLHo9SlQoR1tWXSksIVF8fCF2fHxXLllaJiZ6fHwoVj1uKSkpO1Y9PT0iOSImJkcuaCYmZmcoRy5oKT5mZyhHWyI5Il0pJiYoVj0iaCIpO1cuQlYmJmIuaXNMaXZlJiZWPT09IigiJiZHLkgmJmZnKEdbIigiXSk8MTQ0MCYmKFY9IkgiKTt4JiZrKHt2Zm1seTpJcihWKX0pO1c9R1tWXTtpZighVy5sZW5ndGgpcmV0dXJuIHgmJmsoe25vdmZtbHk6SXIoVil9KSwKZy5wJCgpO0hBKFcpO3JldHVybiBnLkgwKG5ldyBwZyhXLE4sTCxEKSl9OwpTMmI9ZnVuY3Rpb24obixXLEQsYix2LGssaCx4PSExKXtpZihXLkU1JiZoJiZoLmxlbmd0aD4xJiYhKFcublM+MHx8Vy5EKSl7bGV0IHI9Vy5XfHwhIXYsTj1yJiZXLkxCP2s6dm9pZCAwLEg9dFQoVyxiKSxBPVtdLHk9W10sVD17fTtmb3IobGV0IHo9MDt6PGgubGVuZ3RoO3orKyl7dmFyIEw9aFt6XSxlPWIuSi5nZXQoTCk7aWYoZSYmZS5pbmZvKXt2YXIgRz1lLmluZm87ZT1HLklCO2lmKHNEKFcsRyxELGIuaXNMaXZlKSl7TD1HLmZZKCk/QTp5O0c9SFtlXTtmb3IobGV0IEMgb2YgRylHPXJGKGUsQyxXKSxULmhhc093blByb3BlcnR5KEcpP1RbR109PT0hMCYmTC5wdXNoKEMpOnNEKFcsQyxELGIuaXNMaXZlKSYmKEwucHVzaChDKSxUW0ddPSEwKX1lbHNlIHImJmsoe29wZnU6TH0pfX1pZihBLmxlbmd0aCYmeS5sZW5ndGgpcmV0dXJuIHImJmsoe29wZm06QVswXS5pdGFnKyIsIit5WzBdLml0YWd9KSxnLkgwKG5ldyBwZyhBLHksTikpfXJldHVybiBJRGgobixXLEQsYix2LGsseCl9OwpZSj1mdW5jdGlvbihuKXt2YXIgVz1bXTtmb3IobGV0IEQgb2Ygbi5OLmtleXMoKSl7bGV0IGI9bi5OLmdldChEKTtXLnB1c2goYCR7RH1fJHtiLm1heFdpZHRofV8ke2IubWF4SGVpZ2h0fWApfXJldHVybiBXLmpvaW4oIi4iKX07CkhLaT1mdW5jdGlvbihuLFcsRCl7dmFyIGI9RC52aWRlbz8uZnBzfHwwLHY9YCR7V31fJHtifWAsaz0hIUQuYXVkaW8saD1uLk4uZ2V0KHYpLHg9bi5OLmdldCh2KSxMPSEhRC5hdWRpbzt4JiYoTHx8IUwmJkQudmlkZW8/LmhlaWdodCYmeC5tYXhIZWlnaHQmJngubWF4SGVpZ2h0Pj1ELnZpZGVvPy5oZWlnaHQpfHwoeD1ELml0YWcsVz1oP2g6e2l0YWc6eCxJQjpXLGVTOmt9LGs/Vy5udW1DaGFubmVscz1ELmF1ZGlvLm51bUNoYW5uZWxzOihrPUQudmlkZW8sVy5tYXhXaWR0aD1rPy53aWR0aCxXLm1heEhlaWdodD1rPy5oZWlnaHQsVy5tYXhGcmFtZXJhdGU9YixXLm1heEJpdHJhdGVCcHM9RC5Ocyo4LFcuejk9az8uaXNIZHIoKSksbi5OLnNldCh2LFcpKX07CiQ1cj1mdW5jdGlvbihuLFcpe3ZhciBEPSEoIW4ubSYmIW4uTSksYj0hKCFuLm1hYzMmJiFuLk1BQzMpLHY9ISghbi5tZWFjMyYmIW4uTUVBQzMpO249ISghbi5pJiYhbi5JKTtXLlFyPW47cmV0dXJuIER8fGJ8fHZ8fG59OwpKVD1mdW5jdGlvbihuKXtmb3IobGV0IFcgb2YgbilpZihXLml0YWcmJkFIUy5oYXMoVy5pdGFnKSlyZXR1cm4hMDtyZXR1cm4hMX07CnNXYj1mdW5jdGlvbihuKXtmb3IobGV0IFcgb2YgbilpZihXLmF1ZGlvLmF1ZGlvUXVhbGl0eT09PSJBVURJT19RVUFMSVRZX0hJR0giKXJldHVybiEwO3JldHVybiExfTsKSXI9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgIioiOnJldHVybiJ2OGUiO2Nhc2UgIigiOnJldHVybiJ2OWUiO2Nhc2UgIihoIjpyZXR1cm4idjloZSI7ZGVmYXVsdDpyZXR1cm4gbn19OwpyRj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIEQuVEM/YCR7bn1fJHtOdW1iZXIoVy52aWRlbz8uZnBzfHwwKX1fJHshIVcuYXVkaW8/Lk59XyR7ISFXLnZpZGVvPy5YfWA6YCR7bn1fJHtOdW1iZXIoVy52aWRlbz8uZnBzfHwwKX1fJHshIVcuYXVkaW8/Lk59YH07CiRKPWZ1bmN0aW9uKG4pe3ZhciBXPVtdO2ZvcihsZXQgRCBpbiBuKXtpZighbi5oYXNPd25Qcm9wZXJ0eShEKSljb250aW51ZTtsZXQgYj1EO1cucHVzaChJcihiKSk7Zm9yKGxldCB2IG9mIG5bYl0pVy5wdXNoKHYuaXRhZyl9cmV0dXJuIFcuam9pbigiLiIpfTsKdGdoPWZ1bmN0aW9uKG4sVyxELGIsdixrKXt2YXIgaD17fSx4PXt9O2cuYV8oVywoTCxlKT0+e0w9TC5maWx0ZXIoRz0+e3ZhciByPUcuaXRhZztpZighRy5jb250ZW50UHJvdGVjdGlvbilyZXR1cm4geFtyXT0ibm9lbmMiLCExO2lmKGsuSEQmJkcuSUI9PT0iKGgiJiZrLmJkKXJldHVybiB4W3JdPSJsaWNoZHIiLCExO2lmKCFuLlgmJkcuSUI9PT0iMWUiKXJldHVybiB4W3JdPSJub2F2MWVuYyIsITE7aWYoRy5JQj09PSIoInx8Ry5JQj09PSIoaCIpe2lmKG4uSiYmRCYmRC5mbGF2b3I9PT0id2lkZXZpbmUiKXt2YXIgTj1HLm1pbWVUeXBlKyI7IGV4cGVyaW1lbnRhbD1hbGxvd2VkIjsoTj0hIUcuY29udGVudFByb3RlY3Rpb25bRC5mbGF2b3JdJiYhIUQuSltOXSl8fCh4W3JdPUcuY29udGVudFByb3RlY3Rpb25bRC5mbGF2b3JdPyJ1bnNwdCI6Im5vZmx2Iik7cmV0dXJuIE59aWYoIVNKKG4sQVQuQ1JZUFRPQkxPQ0tGT1JNQVQpJiYhbi5UQ3x8bi50dylyZXR1cm4geFtyXT1uLnR3PwoiZGlzdnAiOiJ2cHN1YiIsITF9cmV0dXJuIEQmJkcuY29udGVudFByb3RlY3Rpb25bRC5mbGF2b3JdJiZELkpbRy5taW1lVHlwZV0/ITA6KHhbcl09RD9HLmNvbnRlbnRQcm90ZWN0aW9uW0QuZmxhdm9yXT8idW5zcHQiOiJub2ZsdiI6Im5vc3lzIiwhMSl9KTsKTC5sZW5ndGgmJihoW2VdPUwpfSk7CmImJk9iamVjdC5lbnRyaWVzKHgpLmxlbmd0aCYmdih7cmpyOmcuVEMoeCl9KTtpZihrLkopZm9yKGxldCBMIG9mIE9iamVjdC52YWx1ZXMoVykpaWYoTClmb3IobGV0IGUgb2YgTClXPXhbZS5pdGFnXSxlLk1XKCkmJlchPT12b2lkIDAmJihrLk5bZS5pdGFnXT1XKTtyZXR1cm4gaH07Ckc3VT1mdW5jdGlvbihuLFcpe3ZhciBEPWcudV8obiwoYix2KT0+di52aWRlby5KKCk/TWF0aC5taW4oYix2LnZpZGVvLndpZHRoKTpiLEluZmluaXR5KTsKRDxJbmZpbml0eSYmKG49bi5maWx0ZXIoYj0+e2lmKGIudmlkZW8uSigpfHxiLnZpZGVvLndpZHRoPEQpcmV0dXJuITA7V1tiLml0YWddPSJoZnJmaXJzdCI7cmV0dXJuITF9KSk7CmxiKCkmJihuPW4uZmlsdGVyKGI9PntpZihiLml0YWchPT0iMjk5IilyZXR1cm4hMDtXW2IuaXRhZ109InBzM2hmcjEwODAiO3JldHVybiExfSkpOwpyZXR1cm4gbn07CnEyQz1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIFc9Vy5maWx0ZXIoYj0+e2lmKGIudmlkZW8ucXVhbGl0eU9yZGluYWw8PW4ud2EpcmV0dXJuITA7RFtiLml0YWddPSJtYXhxdWFsaXR5IjtyZXR1cm4hMX0pfTsKdFQ9ZnVuY3Rpb24obixXLEQpe3ZhciBiPXt9O2ZvcihsZXQgdiBpbiBXLk4pe2lmKCFXLk4uaGFzT3duUHJvcGVydHkodikpY29udGludWU7bGV0IGs9Vy5OW3ZdLmluZm87aWYobi5ZJiZrLnZpZGVvJiZrLnZpZGVvLnF1YWxpdHlPcmRpbmFsPG4uWSl7RCYmKERbay5pdGFnXT1gbWluJHtuLll9YCk7Y29udGludWV9bGV0IGg9ay5JQjtiW2hdPWJbaF18fFtdO2JbaF0ucHVzaChrKX1mb3IobGV0IHYgb2YgT2JqZWN0LmtleXMoYikpSEEoYlt2XSk7cmV0dXJuIGJ9OwpmZz1mdW5jdGlvbihuKXtyZXR1cm4gZy51XyhuLChXLEQpPT5NYXRoLm1heChXLEQudmlkZW8ucXVhbGl0eU9yZGluYWwpLDApfTsKc0Q9ZnVuY3Rpb24obixXLEQsYj0hMSx2PW5ldyBTZXQpe2lmKFcuSUI9PT0iIilyZXR1cm4idW5rbiI7aWYoKFcuaXRhZz09PSIzMDQifHxXLml0YWc9PT0iMjY2IikmJm4udHcpcmV0dXJuImJsazJraGZyIjtpZihuLksmJlcudmlkZW8mJlcudmlkZW8ucXVhbGl0eU9yZGluYWw+bi5LKXJldHVybmBtYXgke24uS31gO2lmKG4uQ3UmJlcuSUI9PT0iaCImJlcudmlkZW8mJlcudmlkZW8ucXVhbGl0eU9yZGluYWw+MTA4MClyZXR1cm4iYmxraGlnaDI2NCI7aWYoVy5JQj09PSIoaCImJiFELkspcmV0dXJuImVuY2hkciI7aWYoYiYmbUYoVykmJiFuLm51KXJldHVybiJibGs1MWxpdmUiO2lmKChXLklCPT09Ik1BQzMifHxXLklCPT09Im1hYzMiKSYmIW4uailyZXR1cm4iYmxrYWMzIjtpZigoVy5JQj09PSJNRUFDMyJ8fFcuSUI9PT0ibWVhYzMiKSYmIW4uVilyZXR1cm4iYmxrZWFjMyI7aWYoVy5JQj09PSJNInx8Vy5JQj09PSJtIilyZXR1cm4iYmxrYWFjNTEiO2lmKChXLklCPT09InNvInx8ClcuSUI9PT0ic2EiKSYmIW4uY0opcmV0dXJuImJsa2FtYiI7aWYoIW4uSEQmJktnKFcpJiYoIUQuWHx8Vy5JQiE9PSIxZSIpKXJldHVybiJjYmMiO2lmKCFELlgmJktnKFcpJiZXLklCPT09IjFlIilyZXR1cm4iY2JjYXYxIjtpZigoVy5JQj09PSJpInx8Vy5JQj09PSJJIikmJiFuLlZRKXJldHVybiJibGtpYW1mIjtpZihuLlJhJiZXLmF1ZGlvPy5OPT09ITApcmV0dXJuImJsa3ZiY2FiciI7aWYobi5UQyYmVy52aWRlbz8uWD09PSExKXJldHVybiJibGttdHZjYWJyIjtpZihuLnZKJiYoVy5JQj09PSIxInx8Vy5JQj09PSIxaCJ8fEQuWCYmVy5JQj09PSIxZSIpJiZXLnZpZGVvPy5xdWFsaXR5T3JkaW5hbCYmVy52aWRlbz8ucXVhbGl0eU9yZGluYWw+bi52SilyZXR1cm4iYXYxY2FwIjtiPUQuVy5nZXQoVy5JQik7aWYoIW4ualcmJmImJmIuZzE+MClyZXR1cm4gdi5hZGQoVy5JQiksImJ5ZXJyIjtpZihXLnZpZGVvPy5KKCkpe2lmKCFELmJkJiYhU0ooRCxBVC5GUkFNRVJBVEUpKXJldHVybiJjYXBIZnIiOwppZihuLlBYJiZXLnZpZGVvLnF1YWxpdHlPcmRpbmFsPj00MzIwKXJldHVybiJibGs4a2hmciI7aWYoVy5YKCkmJm4uVTUmJlcuY29udGVudFByb3RlY3Rpb24mJlcudmlkZW8ucXVhbGl0eU9yZGluYWw+PTE0NDApcmV0dXJuImRpc2FibGV2cDloZnIifWlmKG4uTnMmJlcuTnM+bi5OcylyZXR1cm4icmF0ZWNhcCI7aWYobi5TJD4wJiZXLmZZKCkmJlcudmlkZW8uaGVpZ2h0Pm4uUyQpcmV0dXJuIm12aGNhcCI7bj1PRChELFcpO3JldHVybiBuIT09ITA/bjohMH07CkhBPWZ1bmN0aW9uKG4sVz1bXSl7Zy5iZihuLChELGIpPT57dmFyIHY9Yi5Ocy1ELk5zO2lmKCFELmZZKCl8fCFiLmZZKCkpcmV0dXJuIHY7dmFyIGs9Yi52aWRlby5oZWlnaHQqYi52aWRlby53aWR0aC1ELnZpZGVvLmhlaWdodCpELnZpZGVvLndpZHRoOyFrJiZXJiZXLmxlbmd0aD4wJiYoRD1XLmluZGV4T2YoRC5JQikrMSxiPVcuaW5kZXhPZihiLklCKSsxLGs9RD09PTB8fGI9PT0wP2J8fC0xOkQtYik7a3x8KGs9dik7cmV0dXJuIGt9KX07ClBBPWZ1bmN0aW9uKG4sVyl7aWYoVz5uLngkKCkpbi5zZWdtZW50cz1bXTtlbHNle3ZhciBEPWcuejQobi5zZWdtZW50cyxiPT5iLmokPj1XLG4pOwpEPjAmJm4uc2VnbWVudHMuc3BsaWNlKDAsRCl9fTsKWmM9ZnVuY3Rpb24obil7dmFyIFc9bi5kYXRhLmdldFVpbnQ4KG4ub2Zmc2V0K24uTik7bi5OKz0xO3JldHVybiBXfTsKVUQ9ZnVuY3Rpb24obil7dmFyIFc9bi5kYXRhLmdldFVpbnQxNihuLm9mZnNldCtuLk4pO24uTis9MjtyZXR1cm4gV307CnlMPWZ1bmN0aW9uKG4pe3ZhciBXPW4uZGF0YS5nZXRJbnQzMihuLm9mZnNldCtuLk4pO24uTis9NDtyZXR1cm4gV307CkVEPWZ1bmN0aW9uKG4pe3ZhciBXPW4uZGF0YS5nZXRVaW50MzIobi5vZmZzZXQrbi5OKTtuLk4rPTQ7cmV0dXJuIFd9OwppMz1mdW5jdGlvbihuKXt2YXIgVz1uLmRhdGE7dmFyIEQ9bi5vZmZzZXQrbi5OO1c9Vy5nZXRVaW50MzIoRCkqNDI5NDk2NzI5NitXLmdldFVpbnQzMihEKzQpO24uTis9ODtyZXR1cm4gV307CnUzPWZ1bmN0aW9uKG4sVz1OYU4pe2lmKGlzTmFOKFcpKXZhciBEPW4uc2l6ZTtlbHNlIGZvcihEPW4uTjtEPG4uc2l6ZSYmbi5kYXRhLmdldFVpbnQ4KG4ub2Zmc2V0K0QpIT09VzspKytEO1c9bmV3IFVpbnQ4QXJyYXkobi5kYXRhLmJ1ZmZlcixuLm9mZnNldCtuLk4rbi5kYXRhLmJ5dGVPZmZzZXQsRC1uLk4pO24uTj1NYXRoLm1pbihEKzEsbi5zaXplKTtyZXR1cm4gcFIoVyl9Owpvcj1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkobi5kYXRhLmJ1ZmZlcixuLm9mZnNldCtuLmRhdGEuYnl0ZU9mZnNldCxuLnNpemUpfTsKZEY9ZnVuY3Rpb24obixXLEQsYil7KG5ldyBVaW50OEFycmF5KG4uZGF0YS5idWZmZXIsbi5vZmZzZXQsYikpLnNldChuZXcgVWludDhBcnJheShXLmJ1ZmZlcixEK1cuYnl0ZU9mZnNldCxiKSk7bi5vZmZzZXQrPWJ9Owp6Xz1mdW5jdGlvbihuLFcpe3JldHVybiBOdW1iZXIobi5kYXRhW1ddKXx8MH07ClRfPWZ1bmN0aW9uKG4pe3JldHVybiBuLmRhdGFbIkN1ZXBvaW50LVR5cGUiXT9uZXcgZy5sMygtKE51bWJlcihuLmRhdGFbIkN1ZXBvaW50LVBsYXloZWFkLVRpbWUtU2VjIl0pfHwwKSxOdW1iZXIobi5kYXRhWyJDdWVwb2ludC1Ub3RhbC1EdXJhdGlvbi1TZWMiXSl8fDAsbi5kYXRhWyJDdWVwb2ludC1Db250ZXh0Il0sbi5kYXRhWyJDdWVwb2ludC1JZGVudGlmaWVyIl18fCIiLG01altuLmRhdGFbIkN1ZXBvaW50LUV2ZW50Il18fCIiXXx8InVua25vd24iLChOdW1iZXIobi5kYXRhWyJDdWVwb2ludC1QbGF5aGVhZC1UaW1lLVNlYyJdKXx8MCkqMUUzKTpudWxsfTsKako9ZnVuY3Rpb24obil7cmV0dXJuIE51bWJlcihuLmRhdGFbIlN0YXJ0LU1lZGlhLVRpbWUtVXMiXSkvMUU2fHwwfTsKQ2c9ZnVuY3Rpb24obil7cmV0dXJuIG4uZGF0YVsiU3RpdGNoZWQtVmlkZW8tSWQiXT9uLmRhdGFbIlN0aXRjaGVkLVZpZGVvLUlkIl0uc3BsaXQoIiwiKS5zbGljZSgwLC0xKTpbXX07CkJBPWZ1bmN0aW9uKG4pe3ZhciBXPVtdO2lmKG4uZGF0YVsiU3RpdGNoZWQtVmlkZW8tRHVyYXRpb24tVXMiXSlmb3IobGV0IEQgb2Ygbi5kYXRhWyJTdGl0Y2hlZC1WaWRlby1EdXJhdGlvbi1VcyJdLnNwbGl0KCIsIikuc2xpY2UoMCwtMSkpVy5wdXNoKChOdW1iZXIoRCl8fDApLzFFNik7cmV0dXJuIFd9OwpGcD1mdW5jdGlvbihuKXt2YXIgVz1bXTtpZihuLmRhdGFbIlN0aXRjaGVkLVZpZGVvLVN0YXJ0LUZyYW1lLUluZGV4Il0pZm9yKGxldCBEIG9mIG4uZGF0YVsiU3RpdGNoZWQtVmlkZW8tU3RhcnQtRnJhbWUtSW5kZXgiXS5zcGxpdCgiLCIpLnNsaWNlKDAsLTEpKVcucHVzaChOdW1iZXIoRCl8fDApO3JldHVybiBXfTsKd0Y9ZnVuY3Rpb24obil7dmFyIFc9W107aWYobi5kYXRhWyJTdGl0Y2hlZC1WaWRlby1TdGFydC1UaW1lLVdpdGhpbi1BZC1VcyJdKWZvcihsZXQgRCBvZiBuLmRhdGFbIlN0aXRjaGVkLVZpZGVvLVN0YXJ0LVRpbWUtV2l0aGluLUFkLVVzIl0uc3BsaXQoIiwiKS5zbGljZSgwLC0xKSlXLnB1c2goKE51bWJlcihEKXx8MCkvMUU2KTtyZXR1cm4gV307CmcuTWQ9ZnVuY3Rpb24obil7cmV0dXJuIG4uZGF0YVsiU2VyaWFsaXplZC1TdGF0ZSJdP24uZGF0YVsiU2VyaWFsaXplZC1TdGF0ZSJdOiIifTsKZy5Scj1mdW5jdGlvbihuKXtzd2l0Y2gobi5kYXRhWyJJcy1BZC1CcmVhay1GaW5pc2hlZCJdKXtjYXNlICJ0cnVlIjpyZXR1cm4gMTtjYXNlICJmYWxzZSI6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19OwpRTD1mdW5jdGlvbihuKXt2YXIgVz17fTtuPW4uc3BsaXQoIlxyXG4iKTtmb3IobGV0IEQ9MDtEPG4ubGVuZ3RoO0QrKyl7aWYobltEXS5sZW5ndGg9PT0wKXJldHVybiBXO2xldCBiPW5bRF0ubWF0Y2goLyhbXjpdKyk6XHMrKFtcU1xzXSspLyk7YiE9bnVsbCYmKFdbYlsxXV09YlsyXSl9cmV0dXJuIG51bGx9OwpnLm5zPWZ1bmN0aW9uKG4sVyxEKXtmb3IoO1ZMKG4sVyk7KXtsZXQgYj1jQShuLFcpO2lmKGIudHlwZT09PUQpcmV0dXJuIGI7Vz1hcihiLnR5cGUpP1crODpXK2Iuc2l6ZX1yZXR1cm4gbnVsbH07Cld3PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Zy5ucyhuLDAsMTk1Mjg2ODQ1Mik7bj1nLm5zKG4sMCwxOTUzNjU4MjIyKTtpZihEJiZuKXtELnNraXAoMSk7dmFyIGI9WmMoRCk8PDE2fFVEKEQpO0Quc2tpcCg0KTtiJjEmJkQuc2tpcCg4KTtiJjImJkQuc2tpcCg0KTtpZihiJjgpe2I9RC5OO3ZhciB2PUVEKEQpO0QuZGF0YS5zZXRVaW50MzIoRC5vZmZzZXQrYixXPjE/TWF0aC5jZWlsKHYqVyk6TWF0aC5mbG9vcih2KlcpKX1uLnNraXAoMSk7RD1aYyhuKTw8MTZ8VUQobik7aWYoRCYyNTYpe2I9RCYxO3Y9RCY0O3ZhciBrPUQmNTEyLGg9RCYxMDI0LHg9RCYyMDQ4O0Q9RUQobik7YiYmbi5za2lwKDQpO3YmJm4uc2tpcCg0KTtiPShrPzQ6MCkrKGg/NDowKSsoeD80OjApO2Zvcih2PTA7djxEO3YrKylrPW4uTixoPUVEKG4pLG4uZGF0YS5zZXRVaW50MzIobi5vZmZzZXQrayxXPjE/TWF0aC5jZWlsKGgqVyk6TWF0aC5mbG9vcihoKlcpKSxuLnNraXAoYil9fX07ClZMPWZ1bmN0aW9uKG4sVyl7aWYobi5ieXRlTGVuZ3RoLVc8OClyZXR1cm4hMTt2YXIgRD1uLmdldFVpbnQzMihXKTtpZihEPDh8fG4uYnl0ZUxlbmd0aC1XPEQpcmV0dXJuITE7Zm9yKEQ9NDtEPDg7RCsrKXtsZXQgYj1uLmdldEludDgoVytEKTtpZihiPDQ4fHxiPjEyMilyZXR1cm4hMX1yZXR1cm4hMH07CmNBPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5nZXRVaW50MzIoVyksYj1uLmdldFVpbnQzMihXKzQpO3JldHVybiBuZXcgRF8obixXLEQsYil9OwpnLmJMPWZ1bmN0aW9uKG4pe3ZhciBXPW4uZGF0YS5nZXRVaW50OChuLmRhdGFPZmZzZXQpPzIwOjEyO3JldHVybiBuLmRhdGEuZ2V0VWludDMyKG4uZGF0YU9mZnNldCtXKX07CnZ3PWZ1bmN0aW9uKG4pe249bmV3IERhdGFWaWV3KG4uYnVmZmVyLG4uYnl0ZU9mZnNldCxuLmJ5dGVMZW5ndGgpO3JldHVybihuPWcubnMobiwwLDE4MzY0NzY1MTYpKT9nLmJMKG4pOk5hTn07Cmt4PWZ1bmN0aW9uKG4sVyxEKXtmb3IoO1ZMKG4sVyk7KXtsZXQgYj1jQShuLFcpO2lmKGIudHlwZT09PUQpcmV0dXJuIGI7Vys9Yi5zaXplfXJldHVybiBudWxsfTsKYXI9ZnVuY3Rpb24obil7cmV0dXJuIG49PT0xNzAxMDgyMjI3fHxuPT09MTgzNjAxOTU1OHx8bj09PTE4MzYwMTk1NzR8fG49PT0xODM1Mjk3MTIxfHxuPT09MTgzNTYyNjA4Nnx8bj09PTE5MzcwMDcyMTJ8fG49PT0xOTUzNjUzMDk0fHxuPT09MTk1MzY1MzA5OXx8bj09PTE4MzY0NzU3Njh9OwpLaDI9ZnVuY3Rpb24obil7dmFyIFc9Zy5ucyhuLDAsMTkzNzAxMTU1Nik7aWYoIVcpcmV0dXJuIG51bGw7Vz1reChuLFcuZGF0YU9mZnNldCs4LDE2MzUxNDg1OTMpfHxreChuLFcuZGF0YU9mZnNldCs4LDE2MzUxMzU1MzcpO2lmKCFXKXJldHVybiBudWxsO3ZhciBEPWt4KG4sVy5kYXRhT2Zmc2V0Kzc4LDE5MzY5OTUxNzIpLGI9a3gobixXLmRhdGFPZmZzZXQrNzgsMTkzNzEyNjI0NCk7aWYoIWIpcmV0dXJuIG51bGw7Vz1udWxsO2lmKEQpc3dpdGNoKEQuc2tpcCg0KSxaYyhEKSl7ZGVmYXVsdDpXPTA7YnJlYWs7Y2FzZSAxOlc9MjticmVhaztjYXNlIDI6Vz0xO2JyZWFrO2Nhc2UgMzpXPTI1NX12YXIgdj1EPW51bGwsaz1udWxsO2lmKGI9a3gobixiLmRhdGFPZmZzZXQsMTg4NjU0NzgxOCkpe2xldCBoPWt4KG4sYi5kYXRhT2Zmc2V0LDE4ODY1NDYwMjApLHg9a3gobixiLmRhdGFPZmZzZXQsMjAzNzY3MzMyOCk7aWYoIXgmJih4PWt4KG4sYi5kYXRhT2Zmc2V0LDE4MzYyNzk5MjApLAoheCkpcmV0dXJuIG51bGw7aCYmKGguc2tpcCg0KSxEPXlMKGgpLzY1NTM2LGs9eUwoaCkvNjU1MzYsdj15TChoKS82NTUzNik7bj1vcih4KTtuPW5ldyBEYXRhVmlldyhuLmJ1ZmZlcixuLmJ5dGVPZmZzZXQrOCxuLmJ5dGVMZW5ndGgtOCk7cmV0dXJuIG5ldyBoWShXLEQsayx2LG4pfXJldHVybiBudWxsfTsKZy54eD1mdW5jdGlvbihuKXtpZihuLmRhdGEuZ2V0VWludDgobi5kYXRhT2Zmc2V0KSl7dmFyIFc9bi5kYXRhO249bi5kYXRhT2Zmc2V0KzQ7Vz1XLmdldFVpbnQzMihuKSo0Mjk0OTY3Mjk2K1cuZ2V0VWludDMyKG4rNCl9ZWxzZSBXPW4uZGF0YS5nZXRVaW50MzIobi5kYXRhT2Zmc2V0KzQpO3JldHVybiBXfTsKTHM9ZnVuY3Rpb24obil7bj1uZXcgRF8obi5kYXRhLG4ub2Zmc2V0LG4uc2l6ZSxuLnR5cGUsbi5KKTt2YXIgVz1aYyhuKTtuLnNraXAoNyk7dmFyIEQ9RUQobik7aWYoVz09PTApe1c9RUQobik7dmFyIGI9RUQobil9ZWxzZSBXPWkzKG4pLGI9aTMobik7bi5za2lwKDIpO3ZhciB2PVVEKG4pLGs9W10saD1bXTtmb3IobGV0IHg9MDt4PHY7eCsrKXtsZXQgTD1FRChuKTtrLnB1c2goTCk7aC5wdXNoKEVEKG4pKTtuLnNraXAoNCl9cmV0dXJue3RpbWVzY2FsZTpELGY4OlcsTm86YixIczprLHFnOmh9fTsKZy5lUD1mdW5jdGlvbihuLFcpe2Zvcih2YXIgRD0wLGI9W107VkwobixEKTspe2xldCB2PWNBKG4sRCk7di50eXBlPT09VyYmYi5wdXNoKHYpO0Q9YXIodi50eXBlKT9EKzg6RCt2LnNpemV9cmV0dXJuIGJ9OwpnQT1mdW5jdGlvbihuKXtuLnNraXAoNCk7cmV0dXJue1d6OnUzKG4sMCksdmFsdWU6dTMobiwwKSx0aW1lc2NhbGU6RUQobiksbzc6RUQobiksZXZlbnREdXJhdGlvbjpFRChuKSxpZDpFRChuKSxadzp1MyhuKSxvZmZzZXQ6bi5vZmZzZXR9fTsKZy5xaz1mdW5jdGlvbihuKXt2YXIgVz1reChuLDAsMTcwMTY3MTc4Myk7aWYoIVcpcmV0dXJuIG51bGw7dmFyIEQ9Z0EoVyksYj1ELld6O0Q9UUwoRC5adyk7aWYobj1reChuLFcub2Zmc2V0K1cuc2l6ZSwxNzAxNjcxNzgzKSlpZihuPWdBKG4pLG49UUwobi5adyksRCYmbilmb3IobGV0IHYgb2YgT2JqZWN0LmtleXMobikpRFt2XT1uW3ZdO3JldHVybiBEP25ldyBYNShELGIpOm51bGx9OwpHaj1mdW5jdGlvbihuLFcpe2Zvcih2YXIgRD1reChuLDAsVyk7RDspe3ZhciBiPUQ7Yi50eXBlPTE5MzY0MTkxODQ7Yi5kYXRhLnNldFVpbnQzMihiLm9mZnNldCs0LDE5MzY0MTkxODQpO0Q9a3gobixELm9mZnNldCtELnNpemUsVyl9fTsKUElDPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Zy5ucyhuLDAsMTkzNzAxMTU1NiksYj1nLm5zKG4sMCwxOTUzNjU0MTM2KTtpZighRHx8IWJ8fG4uZ2V0VWludDMyKEQub2Zmc2V0KzEyKT49MilyZXR1cm4gbnVsbDt2YXIgdj1uZXcgRGF0YVZpZXcoVy5idWZmZXIsVy5ieXRlT2Zmc2V0LFcubGVuZ3RoKSxrPWcubnModiwwLDE5MzcwMTE1NTYpO2lmKCFrKXJldHVybiBudWxsO1c9di5nZXRVaW50MzIoay5kYXRhT2Zmc2V0KzgpO2I9di5nZXRVaW50MzIoay5kYXRhT2Zmc2V0KzEyKTtpZihiIT09MTcwMTczMzIxNyYmYiE9PTE3MDE3MzMyMzgpcmV0dXJuIG51bGw7Yj1uZXcgT0t0KG4uYnl0ZUxlbmd0aCtXKTtkRihiLG4sMCxELm9mZnNldCsxMik7Yi5kYXRhLnNldEludDMyKGIub2Zmc2V0LDIpO2Iub2Zmc2V0Kz00O2RGKGIsbixELm9mZnNldCsxNixELnNpemUtMTYpO2RGKGIsdix2LmJ5dGVPZmZzZXQray5kYXRhT2Zmc2V0KzgsVyk7ZEYoYixuLEQub2Zmc2V0K0Quc2l6ZSxuLmJ5dGVMZW5ndGgtCihELm9mZnNldCtELnNpemUpKTtEPVsxODM2MDE5NTc0LDE5NTM2NTMwOTksMTgzNTI5NzEyMSwxODM1NjI2MDg2LDE5MzcwMDcyMTIsMTkzNzAxMTU1Nl07Zm9yKGxldCBoIG9mIEQpRD1nLm5zKG4sMCxoKSxiLmRhdGEuc2V0VWludDMyKEQub2Zmc2V0LEQuc2l6ZStXKTtuPWcubnMoYi5kYXRhLDAsMTk1MzY1NDEzNik7Yi5kYXRhLnNldFVpbnQzMihuLm9mZnNldCsxNiwyKTtyZXR1cm4gYi5kYXRhfTsKWktaPWZ1bmN0aW9uKG4pe3ZhciBXPWcubnMobiwwLDE5MzcwMTE1NTYpO2lmKCFXKXJldHVybiBudWxsO3ZhciBEPW4uZ2V0VWludDMyKFcuZGF0YU9mZnNldCsxMik7aWYoRCE9PTE3MDE3MzMyMTcmJkQhPT0xNzAxNzMzMjM4KXJldHVybiBudWxsO1c9a3gobixXLm9mZnNldCsyNCsoRD09PTE3MDE3MzMyMTc/Mjg6NzgpLDE5MzYyODkzODIpO2lmKCFXKXJldHVybiBudWxsO0Q9a3gobixXLm9mZnNldCs4LDE5MzU4OTQ2MzcpO2lmKCFEfHxuLmdldFVpbnQzMihELm9mZnNldCsxMikhPT0xNjY3MzkyMzcxKXJldHVybiBudWxsO1c9a3gobixXLm9mZnNldCs4LDE5MzU4OTQ2MzMpO2lmKCFXKXJldHVybiBudWxsO1c9a3gobixXLm9mZnNldCs4LDE5NTI4MDQ0NTEpO2lmKCFXKXJldHVybiBudWxsO0Q9bmV3IFVpbnQ4QXJyYXkoMTYpO2ZvcihsZXQgYj0wO2I8MTY7YisrKURbYl09bi5nZXRJbnQ4KFcub2Zmc2V0KzE2K2IpO3JldHVybiBEfTsKWXg9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW5ldyB0WShEKTtpZighJHgoYixuKSlyZXR1cm4hMTtiPXJBKGIpO2lmKCFzWShiLFcpKXJldHVybiExO2ZvcihuPTA7VzspVz4+Pj04LG4rKztXPWIuc3RhcnQrYi5wb3M7dmFyIHY9TmsoYiwhMCk7Yj1uKyhiLnN0YXJ0K2IucG9zLVcpK3Y7Yj1iPjk/cHMoYi05LDgpOnBzKGItMiwxKTtuPVctbjtELnNldFVpbnQ4KG4rKywyMzYpO2ZvcihXPTA7VzxiLmxlbmd0aDtXKyspRC5zZXRVaW50OChuKyssYltXXSk7cmV0dXJuITB9Owpwcz1mdW5jdGlvbihuLFcpe1d8fChXPU1hdGguY2VpbChNYXRoLmxvZyhuKzIpL01hdGgubG9nKDIpLzcpKTtmb3IodmFyIEQ9MTw8OC1XLGI9W107Yi5sZW5ndGg8Vy0xOyliLnVuc2hpZnQobiUyNTYpLG49TWF0aC5mbG9vcihuLzI1Nik7Yi51bnNoaWZ0KG58RCk7cmV0dXJuIGJ9OwpVNVo9ZnVuY3Rpb24obil7dmFyIFc9bmV3IHRZKG4pO1cuT0ooKTtpZigkeChXLFs0MDgxMjU1NDMsMzc0NjQ4NDI3LDE3NCwyMjRdKSlXPXJBKFcpO2Vsc2UgcmV0dXJuIG51bGw7Zm9yKHZhciBEPW49bnVsbDshSHcoVyk7KXt2YXIgYj1OayhXLCExKTtpZihiPT09MjE0MzIpc3dpdGNoKGZzKFcpKXtkZWZhdWx0Om49MDticmVhaztjYXNlIDE6bj0xO2JyZWFrO2Nhc2UgMzpuPTI7YnJlYWs7Y2FzZSAxNTpuPTI1NX1lbHNlIGI9PT0zMDMyMD9EPXJBKFcpOkpZKFcpfWlmKCFEKXJldHVybiBudWxsO2Zvcih2YXIgdixrPWI9Vz1udWxsOyFIdyhEKTspc3dpdGNoKE5rKEQsITEpKXtjYXNlIDMwMzIxOmlmKGZzKEQpIT09MylyZXR1cm4gbnVsbDticmVhaztjYXNlIDMwMzI0Olc9SUIoRCk7YnJlYWs7Y2FzZSAzMDMyMzprPUlCKEQpO2JyZWFrO2Nhc2UgMzAzMjU6Yj1JQihEKTticmVhaztjYXNlIDMwMzIyOnY9TmsoRCwhMCk7dj1TUChELHYpO3Y9bmV3IERhdGFWaWV3KHYuYnVmZmVyLAp2LmJ5dGVPZmZzZXQsdi5ieXRlTGVuZ3RoKTticmVhaztkZWZhdWx0OkpZKEQpfXJldHVybiB2P25ldyBoWShuLFcsayxiLHYpOm51bGx9OwokeD1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRD0wO0Q8Vy5sZW5ndGg7RCsrKXtpZighc1kobixXW0RdKSlyZXR1cm4hMTtEIT09Vy5sZW5ndGgtMSYmTmsobiwhMCl9cmV0dXJuITB9OwpyQT1mdW5jdGlvbihuKXt2YXIgVz1OayhuLCEwKSxEPW4uTi5ieXRlT2Zmc2V0K24ucG9zO0Q9bmV3IERhdGFWaWV3KG4uTi5idWZmZXIsRCxNYXRoLm1pbihXLG4uTi5idWZmZXIuYnl0ZUxlbmd0aC1EKSk7RD1uZXcgdFkoRCxuLnN0YXJ0K24ucG9zKTtuLnBvcys9VztyZXR1cm4gRH07CnNZPWZ1bmN0aW9uKG4sVyxEPSExKXtpZihIdyhuKSlyZXR1cm4hMTtmb3IodmFyIGI9bi5wb3M7TmsobiwhMSkhPT1XOylpZihKWShuKSxiPW4ucG9zLEh3KG4pKXJldHVybiExO0QmJihuLnBvcz1iKTtyZXR1cm4hMH07Ck5rPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9QVkobik7aWYoRD09PTEpe0Q9MDtmb3IoVz0wO1c8NztXKyspRD1EKjI1NitBWShuKTtyZXR1cm4gRH12YXIgYj0xMjg7Zm9yKGxldCB2PTA7djw2JiZiPkQ7disrKUQ9RCoyNTYrQVkobiksYio9MTI4O3JldHVybiBXP0QtYjpEfTsKSHc9ZnVuY3Rpb24obil7cmV0dXJuIG4ucG9zPj1uLk4uYnl0ZUxlbmd0aH07CmZzPWZ1bmN0aW9uKG4pe3ZhciBXPU5rKG4sITApLEQ9QVkobik7Zm9yKGxldCBiPTE7YjxXO2IrKylEPUQqMjU2K0FZKG4pO3JldHVybiBEfTsKSlk9ZnVuY3Rpb24obil7dmFyIFc9TmsobiwhMCk7bi5wb3MrPVd9OwpJQj1mdW5jdGlvbihuKXt2YXIgVz1OayhuLCEwKSxEPTA7Vz09PTQ/RD1uLk4uZ2V0RmxvYXQzMihuLnBvcyk6Vz09PTgmJihEPW4uTi5nZXRGbG9hdDY0KG4ucG9zKSk7bi5wb3MrPVc7cmV0dXJuIER9OwpTUD1mdW5jdGlvbihuLFcpe3ZhciBEPW5ldyBVaW50OEFycmF5KG4uTi5idWZmZXIsbi5OLmJ5dGVPZmZzZXQrbi5wb3MsVyk7bi5wb3MrPVc7cmV0dXJuIER9OwptdD1mdW5jdGlvbihuKXt2YXIgVz1OayhuLCEwKTtyZXR1cm4gcFIoU1AobixXKSl9OwpBWT1mdW5jdGlvbihuKXtyZXR1cm4gbi5OLmdldFVpbnQ4KG4ucG9zKyspfTsKeUhyPWZ1bmN0aW9uKG4pe2lmKCFzWShuLDQ0MDc4Njg1MSwhMCkpcmV0dXJuIG51bGw7dmFyIFc9bi5wb3M7TmsobiwhMSk7dmFyIEQ9TmsobiwhMCkrbi5wb3MtVztuLnBvcz1XK0Q7aWYoIXNZKG4sNDA4MTI1NTQzLCExKSlyZXR1cm4gbnVsbDtOayhuLCEwKTtpZighc1kobiwzNTcxNDkwMzAsITApKXJldHVybiBudWxsO3ZhciBiPW4ucG9zO05rKG4sITEpO3ZhciB2PU5rKG4sITApK24ucG9zLWI7bi5wb3M9Yit2O2lmKCFzWShuLDM3NDY0ODQyNywhMCkpcmV0dXJuIG51bGw7dmFyIGs9bi5wb3M7TmsobiwhMSk7dmFyIGg9TmsobiwhMCkrbi5wb3Mtayx4PW5ldyBVaW50OEFycmF5KEQrMTIrditoKSxMPW5ldyBEYXRhVmlldyh4LmJ1ZmZlcik7eC5zZXQobmV3IFVpbnQ4QXJyYXkobi5OLmJ1ZmZlcixuLk4uYnl0ZU9mZnNldCtXLEQpKTtMLnNldFVpbnQzMihELDQwODEyNTU0Myk7TC5zZXRVaW50MzIoRCs0LDMzNTU0NDMxKTtMLnNldFVpbnQzMihEKzgsNDI5NDk2NzI5NSk7Cnguc2V0KG5ldyBVaW50OEFycmF5KG4uTi5idWZmZXIsbi5OLmJ5dGVPZmZzZXQrYix2KSxEKzEyKTt4LnNldChuZXcgVWludDhBcnJheShuLk4uYnVmZmVyLG4uTi5ieXRlT2Zmc2V0K2ssaCksRCsxMit2KTtyZXR1cm4geH07CktzPWZ1bmN0aW9uKG4pe3ZhciBXPW4ucG9zO24ucG9zPTA7dmFyIEQ9MUU2OyR4KG4sWzQwODEyNTU0MywzNTcxNDkwMzAsMjgwNzcyOV0pJiYoRD1mcyhuKSk7bi5wb3M9VztyZXR1cm4gRH07ClB3PWZ1bmN0aW9uKG4pe2lmKCFPWShuKXx8IXNZKG4sNTI0NTMxMzE3KSlyZXR1cm4hMTtOayhuLCEwKTtyZXR1cm4hMH07CkVFWj1mdW5jdGlvbihuLFcpe3ZhciBEPW4ucG9zO24ucG9zPTA7aWYobi5OLmdldFVpbnQ4KG4ucG9zKSE9PTE2MCYmIVB3KG4pfHwhc1kobiwxNjApKXJldHVybiBuLnBvcz1ELE5hTjtOayhuLCEwKTt2YXIgYj1uLnBvcztpZighc1kobiwxNjEpKXJldHVybiBuLnBvcz1ELE5hTjtOayhuLCEwKTtBWShuKTt2YXIgdj1BWShuKTw8OHxBWShuKTtuLnBvcz1iO2lmKCFzWShuLDE1NSkpcmV0dXJuIG4ucG9zPUQsTmFOO2I9ZnMobik7bi5wb3M9RDtyZXR1cm4oditiKSpXLzFFOX07Ck9ZPWZ1bmN0aW9uKG4pe2lmKG4uT0ooKSl7aWYoIXNZKG4sNDA4MTI1NTQzKSlyZXR1cm4hMTtOayhuLCEwKX1yZXR1cm4hMH07ClpfPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Vy5pbmRleE9mKCI/Iik7aWYoRD4wKXtsZXQgYj1nNygxLDUwLFcuc3Vic3RyaW5nKEQrMSkpO2cuYV8oYixmdW5jdGlvbih2LGspe3RoaXMuc2V0KGssdil9LG4pOwpXPVcuc3Vic3RyaW5nKDAsRCl9Vz1pcCgxNSw4MjUsVyk7Zy5hXyhXLGZ1bmN0aW9uKGIsdil7dGhpcy5zZXQodixiKX0sbil9OwppS1U9ZnVuY3Rpb24obil7dmFyIFc9bi5BTy5XRCgpLEQ9W107Zy5hXyhuLk4sKHYsayk9PntELnB1c2goYCR7a309JHt2fWApfSk7CmlmKCFELmxlbmd0aClyZXR1cm4gVzt2YXIgYj1ELmpvaW4oIiYiKTtuPVAwKDgzLDY1ODgsbi5BTyk/IiYiOiI/IjtyZXR1cm4gVytuK2J9OwpVWT1mdW5jdGlvbihuLFcpe25bV118fChuW1ddPW5ldyB1VGkpO3JldHVybiBuW1ddfTsKeWY9ZnVuY3Rpb24obixXPSExKXtXJiYobi5KKz0xKTtuLk4rPTF9OwpvRWk9ZnVuY3Rpb24obixXPSExKXtuLnRpbWVkT3V0Kz0xO1cmJnlmKG4sITApfTsKemo9ZnVuY3Rpb24obixXPSExKXtXJiYobi5YPSgwLGcuUikoKSxuLko9MCk7bi5WPSgwLGcuUikoKTtuLnN0YXJ0ZWQ9MDtuLnRpbWVkT3V0PTA7bi5OPTB9OwpsTD1mdW5jdGlvbihuLFcsRD0hMSl7aWYoRClyZXR1cm4gMTw8TWF0aC5taW4obi5KLDUpO0Q9bi5zdGFydGVkK24uTio0O1cmJihEKz1uLlcpO0Q9TWF0aC5tYXgoMCxELTMpO3JldHVybiAxLjYqKkR9OwpqUD1mdW5jdGlvbihuLFcsRCl7aWYoZ1ooMzgsMTIwMixuLk4pKXJldHVybiExO3ZhciBiPVVZKEQsUjAoMzUsMzUwNyxuLk4pKTtpZihiLnRpbWVkT3V0PDEmJmIuTjwxKXJldHVybiExO2I9Yi50aW1lZE91dCtiLk47bj1UaihuLFcpO0Q9VVkoRCxSMCgzMiwzNTA0LG4pKTtyZXR1cm4gRC50aW1lZE91dCtELk4rMDxifTsKVGo9ZnVuY3Rpb24obixXKXtXPVc/Vy5vTTohMTtuLlh8fChuLlg9WGQobi5XLFcpKTtyZXR1cm4gbi5YfTsKQnc9ZnVuY3Rpb24obixXLEQpe249Vz9UaihuLEQpOm4uTjtyZXR1cm4gbmV3IENzKG4pfTsKRjU9ZnVuY3Rpb24obixXLEQpe3JldHVybiBSMCgzNSwzNTA3LFc/VGoobixEKTpuLk4pfTsKd0E9ZnVuY3Rpb24obixXLEQsYix2KXsrK24uSjtXJiYrK24uVjtSMCgzMiwzNTA0LEQuQU8pLnN0YXJ0c1dpdGgoInJlZGlyZWN0b3IuIikmJihuLk49bi5XLmNsb25lKCksZGVsZXRlIG4uWCxiLnBFJiZkZWxldGUgdltSMCg2NywzNTM5LG4uTildKX07Ck1rPWZ1bmN0aW9uKG4pe3JldHVybiBuP2Ake24uaXRhZ3x8IiJ9OyR7bi5sbXR8fDB9OyR7bi54dGFnc3x8IiJ9YDoiIn07ClFmPWZ1bmN0aW9uKG4sVyl7bi5pbmZvJiZuLmluZm8udmlkZW8mJm4uaW5mby52aWRlby5wcm9qZWN0aW9uVHlwZT09PSJNRVNIIiYmIW4uTyYmKGcuUkIobi5pbmZvKT9uLk89S2gyKFcpOm4uaW5mby5xSCgpJiYobi5PPVU1WihXKSkpfTsKY3c9ZnVuY3Rpb24obixXKXtyZXR1cm4gTWsoZy5WZihuLmluZm8sVykpfTsKbno9ZnVuY3Rpb24obil7bj1uLnNwbGl0KCItIik7dmFyIFc9TnVtYmVyKG5bMF0pLEQ9TnVtYmVyKG5bMV0pO2lmKCFpc05hTihXKSYmIWlzTmFOKEQpJiZuLmxlbmd0aD09PTImJihuPW5ldyBhQihXLEQpLCFpc05hTihuLnN0YXJ0KSYmIWlzTmFOKG4uZW5kKSYmIWlzTmFOKG4ubGVuZ3RoKSYmbi5sZW5ndGg+MCkpcmV0dXJuIG59OwpXXz1mdW5jdGlvbihuLFcpe3JldHVybiBuZXcgYUIobixuK1ctMSl9OwpESj1mdW5jdGlvbihuKXtpZighbilyZXR1cm4gbmV3IGFCKDAsMCk7dmFyIFc9TnVtYmVyKG4uc3RhcnQpO249TnVtYmVyKG4uZW5kKTtpZighaXNOYU4oVykmJiFpc05hTihuKSYmKFc9bmV3IGFCKFcsbiksVy5sZW5ndGg+MCkpcmV0dXJuIFd9OwpkNXc9ZnVuY3Rpb24obil7bi5sZW5ndGg9PT0xfHxnLmR6KG4sRD0+ISFELnJhbmdlKTsKZm9yKHZhciBXPTE7VzxuLmxlbmd0aDtXKyspO1c9bltuLmxlbmd0aC0xXTtyZXR1cm4gbmV3IGFCKG5bMF0ucmFuZ2Uuc3RhcnQrblswXS5OLFcucmFuZ2Uuc3RhcnQrVy5OK1cuSi0xKX07CmJUPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4uUEo9PT1XLlBKP24ucmFuZ2UmJlcucmFuZ2U/bi5yYW5nZS5zdGFydCtuLk4rbi5KPT09Vy5yYW5nZS5zdGFydCtXLk46bi5qJD09PVcuaiQ/bi5OK24uSj09PVcuTjpuLmokKzE9PT1XLmokJiZXLk49PT0wJiZuLmFaOiExfTsKdl89ZnVuY3Rpb24obil7bi5YPW4uc2VnbWVudFN0YXJ0VGltZTtuLks9bi5XO24uaj1uLlgrbi5LfTsKa049ZnVuY3Rpb24obil7cmV0dXJuIG4ucmFuZ2U/bi5qOk1hdGgubWluKG4uc2VnbWVudFN0YXJ0VGltZStNYXRoLm1pbihuLk4vbi5QSi5pbmZvLk5zLG4uVykrKG4ucmFuZ2U/bi5LOk1hdGgubWluKG4uVyxuLkovbi5QSi5pbmZvLk5zKSksbi5zZWdtZW50U3RhcnRUaW1lK24uVyl9Owp6QTI9ZnVuY3Rpb24obixXLEQpe3ZhciBiPSEoIVd8fFcuUEohPT1uLlBKfHxXLnR5cGUhPT1uLnR5cGV8fFcuaiQhPT1uLmokKTtyZXR1cm4gRD9iJiYhIVcmJihuLnJhbmdlJiZXLnJhbmdlP1cucmFuZ2UuZW5kPT09bi5yYW5nZS5lbmQ6Vy5yYW5nZT09PW4ucmFuZ2UpJiZXLk4rVy5KPT09bi5OK24uSjpifTsKaEo9ZnVuY3Rpb24obil7cmV0dXJuIG4udHlwZT09PTF8fG4udHlwZT09PTJ9Owp4Tj1mdW5jdGlvbihuKXtyZXR1cm4gbi50eXBlPT09M3x8bi50eXBlPT09Nn07Ckx6PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGJUKG4sVyl8fE1hdGguYWJzKG4uai1XLlgpPD0xRS02fHxuLmokKzE9PT1XLmokJiZXLk49PT0wJiZuLmFaPyEwOiExfTsKZXg9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5qJCE9PVcuaiQmJlcuaiQhPT1uLmokKzF8fG4udHlwZSE9PVcudHlwZT8hMTpiVChuLFcpPyEwOk1hdGguYWJzKG4uWC1XLlgpPD0xRS02JiZuLmokPT09Vy5qJD8hMTpMeihuLFcpfTsKZ2s9ZnVuY3Rpb24obil7cmV0dXJuIG4uaiQrKG4uYVo/MTowKX07Clh4PWZ1bmN0aW9uKG4pe3ZhciBXPXt9O1cuaXRhZz1uLlBKLmluZm8uaXRhZztXLnR5cGU9YCR7bi50eXBlfWA7Vy5zcmM9YCR7bi5zb3VyY2V9YDtXLnNlZ3NyYz1uLlk7Vy5zZWc9U3RyaW5nKG4uaiQpO24ucmFuZ2UmJihXLnJhbmdlPWAke24ucmFuZ2Uuc3RhcnQrbi5OfS0ke24ucmFuZ2Uuc3RhcnQrbi5OK24uSi0xfWApO1cudGltZT1gJHtuLlgudG9GaXhlZCgxKX0tJHsobi5YK24uSykudG9GaXhlZCgxKX1gO1cub2ZmPVN0cmluZyhuLk4pO1cubGVuPVN0cmluZyhuLkopO24uYVomJihXLmVuZD0iMSIpO24uVigpJiYoVy5lb3M9IjEiKTtuLmNsaXBJZCYmKFcuY2lkPW4uY2xpcElkKTtyZXR1cm4gV307CmxEeD1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IHFJKG4udHlwZSxuLlBKLG4ucmFuZ2UsImdldEVtcHR5U3R1YkJlZm9yZSIrbi5ZLG4uaiQsbi5zZWdtZW50U3RhcnRUaW1lLDAsbi5OLDAsdm9pZCAwLG4udkQsbi5jbGlwSWQsbi5ELG4uYmQsbi5yZXF1ZXN0VG9rZW4pfTsKVEQxPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgcUkobi50eXBlLG4uUEosbi5yYW5nZSwiZ2V0RW1wdHlTdHViQWZ0ZXIiK24uWSxuLmokLG4uc2VnbWVudFN0YXJ0VGltZStuLlcsMCxuLk4rbi5KLDAsdm9pZCAwLG4udkQsbi5jbGlwSWQsbi5ELG4uYmQsbi5yZXF1ZXN0VG9rZW4pfTsKR1A9ZnVuY3Rpb24obixXLEQsYil7cmV0dXJuIG5ldyBxSShuLnR5cGUsbi5QSixuLnJhbmdlLCJyZXNsaWNlIituLlksbi5qJCxuLnNlZ21lbnRTdGFydFRpbWUsbi5XLFcsRCxiLG4udkQsbi5jbGlwSWQsbi5ELG4uYmQsbi5yZXF1ZXN0VG9rZW4pfTsKdEo9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5QSiE9PVcuUEo/ITE6bi5yYW5nZSYmVy5yYW5nZT9uLnJhbmdlLnN0YXJ0K24uTj49Vy5yYW5nZS5zdGFydCtXLk4mJm4ucmFuZ2Uuc3RhcnQrbi5OK24uSjw9Vy5yYW5nZS5zdGFydCtXLk4rVy5KOm4uaiQ9PT1XLmokJiZuLk4+PVcuTiYmKG4uTituLko8PVcuTitXLkp8fFcuYVopfTsKJE49ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5QSiE9PVcuUEo/ITE6bi5jSigpJiZXLnR5cGU9PT0zJiZuLlBKLk4oKT8obj1uLlBKLlZRKG4pLGcub00obixEPT4kTihELFcpKSk6bi5qJD09PVcuaiQmJiEhVy5KJiZXLk4rVy5KPm4uTiYmVy5OK1cuSjw9bi5OK24uSn07Ck92PWZ1bmN0aW9uKG4pe3ZhciBXPW4uZ2V0VmlkZW9EYXRhKCksRD1uLmg1KCksYj1ELmVfKCksdj1uLkcoKSxrPW4uZDAoKSxoPWsuVDEqOC8xMDI0LHg9ay54WS8xMDI0LEw9ay5LVCxlPWsuU1UsRz1rLk1BLHI9RC5nZXRDdXJyZW50VGltZSgpLnRvRml4ZWQoMiksTj1yayhELkooKSwiLCIsMyk7dmFyIEg9IiI7aWYoVy5pc0RhaUVuYWJsZWQoKSl7SD1OSShXKT9IKyJNViI6Vy5lbmFibGVTZXJ2ZXJTdGl0Y2hlZERhaT9IKyJTUyI6SCsiQ1MiO0g9Vy5ERigpP0grIkxJRkEsICI6SCsiREFJLCAiO1cuYlYmJihIKz0iREFJRkIsICIpO3ZhciBBPWsuZEM7QSYmKEgrPUEpfWVsc2UgVy5LZj9IKz0iQ1NEQUksICI6Vy5KbD9IKz0iRFNEQUksICI6Vy5qRiYmKEgrPSJVU0RBSSwgIik7cHooVykmJiFXLkRGKCkmJihIKz0iTElGQUUsICIpO2cuWU4oVykmJihIKz0iU0FCUiwgIik7aWYoVy5mZXRjaFR5cGUpe3N3aXRjaChXLmZldGNoVHlwZSl7Y2FzZSAib25lc2llIjpBPSJvIjticmVhazsKY2FzZSAiZ3AiOkE9ImdwIjticmVhaztkZWZhdWx0OkE9Imd2aSJ9SCs9YHZkOiR7QX0sIGB9KEE9di5qXygpKSYmKEg9QS5pc0FzbWpzP0grIndhLCAiOkgrIncsICIpO0grPWBzOiR7R30gdDoke3J9IGI6JHtOfSBgO0QuaXNTZWVraW5nKCkmJihIKz0iUyIpO0QuaXNQYXVzZWQoKSYmKEgrPSJQIik7RC5pc0VuZGVkKCkmJihIKz0iRSIpO24uaXNPcmNoZXN0cmF0aW9uTGVhZGVyKCkmJihIKz0iIEwiKTsoRD1rLmVJKSYmKEgrPWAgbDoke0QudG9GaXhlZCgpfWApO0Q9ay5jdXJyZW50VGltZTtHPVcueW47RCYmRD5HLnN0YXJ0JiZEPEcuZW5kJiYoSCs9IiBhcyIpO0Q9UFYob0wpKCJfc3RhcnQiLHZvaWQgMCk7Rz1bXTtmb3IoeSBvZlsicGxfaSIsInZpciIsIm9yX3AiLCJvcmZiIiwicGJzIl0pKHI9UFYob0wpKHksdm9pZCAwKSkmJkQmJihyLT1ELEcucHVzaChgJHt5fToke01hdGgucm91bmQocil9YCkpO3ZhciB5PUcuam9pbigiICIpO0Q9Zy5IXygpO0c9Zy5meihuKS52VDtyPQpXLlcmJiFXLlcuTigpPyJkaXNwbGF5Om5vbmUiOiIiO2lmKChOPVcuY2xpZW50UGxheWJhY2tOb25jZSkmJk4ubGVuZ3RoPT0xNil7Tis9IkFBQUEiO0E9MDt2YXIgVD0iIjtmb3IobGV0IEM9MDtDPDIwO0MrKylpZihBPShBPDw2KSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXyIuaW5kZXhPZihOLmNoYXJBdChDKSksQyU1PT00KXtsZXQgUT0iIjtmb3IobGV0IFY9MDtWPDY7VisrKVE9IjAxMjM0NTY3ODlBQkNERUZHSEpLTU5QUVJTVFZXWFlaIi5jaGFyQXQoQSYzMSkrUSxBPj49NTtUKz1RfU49YCR7VC5zdWJzdHIoMCw0KX0gJHtULnN1YnN0cig0LDQpfSAke1Quc3Vic3RyKDgsNCl9ICR7VC5zdWJzdHIoMTIsNCl9ICR7VC5zdWJzdHIoMTYsNCl9YH1lbHNlIE49IiI7aD17dmlkZW9faWRfYW5kX2NwbjpTdHJpbmcoVy52aWRlb0lkKSsiIC8gIitOLGNvZGVjczoiIixkaW1zX2FuZF9mcmFtZXM6IiIsYmFuZHdpZHRoX2ticHM6YCR7aC50b0ZpeGVkKDApfSBLYnBzYCwKYnVmZmVyX2hlYWx0aF9zZWNvbmRzOmAke0wudG9GaXhlZCgyKX0gc2AsZGF0ZTpgJHsobmV3IERhdGUpLnRvU3RyaW5nKCl9YCxkcm1fc3R5bGU6ZT8iIjoiZGlzcGxheTpub25lIixkcm06ZSxkZWJ1Z19pbmZvOkgsZXh0cmFfZGVidWdfaW5mbzoiIixiYW5kd2lkdGhfc3R5bGU6cixuZXR3b3JrX2FjdGl2aXR5X3N0eWxlOnIsbmV0d29ya19hY3Rpdml0eV9ieXRlczpgJHt4LnRvRml4ZWQoMCl9IEtCYCxzaGFkZXJfaW5mbzpHLHNoYWRlcl9pbmZvX3N0eWxlOkc/IiI6ImRpc3BsYXk6bm9uZSIscGxheWJhY2tfY2F0ZWdvcmllczoiIn07eD1gJHtiLmNsaWVudFdpZHRofXgke2IuY2xpZW50SGVpZ2h0fWArKEQ+MT9gKiR7RC50b0ZpeGVkKDIpfWA6IiIpO0w9Ii0iO2sudG90YWxWaWRlb0ZyYW1lcyYmKEw9YCR7ay5kcm9wcGVkVmlkZW9GcmFtZXN8fDB9IGRyb3BwZWQgb2YgJHtrLnRvdGFsVmlkZW9GcmFtZXN9YCk7aC5kaW1zX2FuZF9mcmFtZXM9YCR7eH0gLyAke0x9YDtlPW4uZ2V0Vm9sdW1lKCk7Cm49Vy5oZzt4PW4uTjtMPU1hdGgucm91bmQoZSk7ZT1NYXRoLnJvdW5kKGUqKHg/LlpyPz8xKSk7SD0iIjtXLlg/LmF1ZGlvLk4/SD0iIFZCIjpXLlg/LmF1ZGlvLlcmJihIPSIgRFJDIik7RD0iIjt4Py5mZCE9bnVsbD9EKz1gY29udC4ke3guZmQudG9GaXhlZCgxKX1kQmA6bi5RTyE9bnVsbCYmKEQrPWBsaXZlLiR7bi5RTy50b0ZpeGVkKDEpfWRCYCk7eD8ucHkhPW51bGwmJihEKz1gIHRndC4ke3gucHkudG9GaXhlZCgxKX1kQmApO0QmJihEPWAgKCR7RH0pYCk7aC52b2x1bWU9YCR7TH0lLyR7ZX0lJHtIfSR7RH1gO2gucmVzb2x1dGlvbj1gJHtiLnZpZGVvV2lkdGh9eCR7Yi52aWRlb0hlaWdodH1gO2lmKGI9Vy5KKXtpZihuPWIudmlkZW8peD1uLmZwcyx4PjEmJihoLnJlc29sdXRpb24rPWBAJHt4fWApLCh4PWsuTHQpJiZ4LnZpZGVvJiYoaC5yZXNvbHV0aW9uKz1gIC8gJHt4LnZpZGVvLndpZHRofXgke3gudmlkZW8uaGVpZ2h0fWAseC52aWRlby5mcHM+MSYmKGgucmVzb2x1dGlvbis9CmBAJHt4LnZpZGVvLmZwc31gKSksaC5jb2RlY3M9SkooYiksIVcuWHx8Yi5hdWRpbyYmYi52aWRlbz9iLkFhJiYoaC5jb2RlY3MrPWAgLyAke2IuQWF9QWApOmguY29kZWNzKz1gIC8gJHtKSihXLlgpfWAsbi5OfHxuLnByaW1hcmllcz8oeD1uLk58fCJ1bmtub3duIix4PT09InNtcHRlMjA4NCI/eD1gJHt4fSAoUFEpYDp4PT09ImFyaWItc3RkLWI2NyImJih4PWAke3h9IChITEcpYCksaC5jb2xvcj1gJHt4fSAvICR7bi5wcmltYXJpZXN8fCJ1bmtub3duIn1gLGguY29sb3Jfc3R5bGU9IiIpOmguY29sb3Jfc3R5bGU9ImRpc3BsYXk6bm9uZSI7aWYoYi5kZWJ1Z0luZm8pe2guZm10X2RlYnVnX2luZm89IiI7Zm9yKHZhciB6IG9mIGIuZGVidWdJbmZvKWguZm10X2RlYnVnX2luZm8rPWAke3oubGFiZWx9OiR7ei50ZXh0fSBgfWguZm10X2RlYnVnX2luZm9fc3R5bGU9aC5mbXRfZGVidWdfaW5mbyYmaC5mbXRfZGVidWdfaW5mby5sZW5ndGg+MD8iIjoiZGlzcGxheTpub25lIn16PVcuaXNMaXZlUGxheWJhY2s7CmI9Vy5YZztoLmxpdmVfbW9kZV9zdHlsZT16fHxiPyIiOiJkaXNwbGF5Om5vbmUiO2gubGl2ZV9sYXRlbmN5X3N0eWxlPXo/IiI6ImRpc3BsYXk6bm9uZSI7aWYoYiloLmxpdmVfbW9kZT0iUG9zdC1MaXZlIisoSTQoVyk/IiBNYW5pZmVzdGxlc3MiOiIiKTtlbHNlIGlmKHope2I9ay5wVDtoLmxpdmVfbGF0ZW5jeV9zZWNzPWAke2IudG9GaXhlZCgyKX1zYDt6PUk0KFcpPyJNYW5pZmVzdGxlc3MsICI6IiI7Vy5SSSYmKHorPSJXaW5kb3dlZCwgIik7bj0iVW5jZXJ0YWluIjtpZihiPj0wJiZiPDEyMClpZihXLmxhdGVuY3lDbGFzcyYmVy5sYXRlbmN5Q2xhc3MhPT0iVU5LTk9XTiIpc3dpdGNoKFcubGF0ZW5jeUNsYXNzKXtjYXNlICJOT1JNQUwiOm49Ik9wdGltaXplZCBmb3IgTm9ybWFsIExhdGVuY3kiO2JyZWFrO2Nhc2UgIkxPVyI6bj0iT3B0aW1pemVkIGZvciBMb3cgTGF0ZW5jeSI7YnJlYWs7Y2FzZSAiVUxUUkFMT1ciOm49Ik9wdGltaXplZCBmb3IgVWx0cmEgTG93IExhdGVuY3kiOwpicmVhaztkZWZhdWx0Om49IlVua25vd24gTGF0ZW5jeSBTZXR0aW5nIn1lbHNlIG49U3goVyk/Ik9wdGltaXplZCBmb3IgTG93IExhdGVuY3kiOiJPcHRpbWl6ZWQgZm9yIFNtb290aCBTdHJlYW1pbmciO3orPW47KGI9ay5GSSkmJih6Kz1gLCBzZXEgJHtiLnNlcXVlbmNlfWApO2gubGl2ZV9tb2RlPXp9di5leHBlcmltZW50cy5adCgpLk4uUVEoaldTKT9rLmlzR2FwbGVzcyYmIWsuZFQmJihoLnBsYXliYWNrX2NhdGVnb3JpZXM9ay5Ibz9oLnBsYXliYWNrX2NhdGVnb3JpZXMrIkdhcGxlc3MgIjpoLnBsYXliYWNrX2NhdGVnb3JpZXMrIlF1ZXVlZCAiKTohay5pc0dhcGxlc3N8fEFKKFcpJiZrLmRUfHwoaC5wbGF5YmFja19jYXRlZ29yaWVzKz0iR2FwbGVzcyAiKTtoLnBsYXliYWNrX2NhdGVnb3JpZXNfc3R5bGU9aC5wbGF5YmFja19jYXRlZ29yaWVzPyIiOiJkaXNwbGF5Om5vbmUiO2guYmFuZHdpZHRoX3NhbXBsZXM9ay5VJDtoLm5ldHdvcmtfYWN0aXZpdHlfc2FtcGxlcz1rLmRjOwpoLmxpdmVfbGF0ZW5jeV9zYW1wbGVzPWsuc0k7aC5idWZmZXJfaGVhbHRoX3NhbXBsZXM9ay5qeDt2PWcubU0oVyk7aWYoVy5jb3RufHx2KWguY290bl9hbmRfbG9jYWxfbWVkaWE9YCR7Vy5jb3RuP1cuY290bjoibnVsbCJ9IC8gJHt2fWA7aC5jb3RuX2FuZF9sb2NhbF9tZWRpYV9zdHlsZT1oLmNvdG5fYW5kX2xvY2FsX21lZGlhPyIiOiJkaXNwbGF5Om5vbmUiO0t6KFcsIndlYl9wbGF5ZXJfcmVsZWFzZV9kZWJ1ZyIpPyhoLnJlbGVhc2VfbmFtZT1JWzY1XSxoLnJlbGVhc2Vfc3R5bGU9IiIpOmgucmVsZWFzZV9zdHlsZT0iZGlzcGxheTpub25lIjtoLmRlYnVnX2luZm8mJnkubGVuZ3RoPjAmJmguZGVidWdfaW5mby5sZW5ndGgreS5sZW5ndGg8PTYwP2guZGVidWdfaW5mbys9IiAiK3k6aC5leHRyYV9kZWJ1Z19pbmZvPXk7aC5leHRyYV9kZWJ1Z19pbmZvX3N0eWxlPWguZXh0cmFfZGVidWdfaW5mbyYmaC5leHRyYV9kZWJ1Z19pbmZvLmxlbmd0aD4wPyIiOiJkaXNwbGF5Om5vbmUiOwpyZXR1cm4gaH07ClBfPWZ1bmN0aW9uKG4sVyxEKXtuLkorPVcuSjtuLnJhbmdlJiYobi5LKz1XLkspO24uaj1XLmo7bi5hWj1XLmFaO0QmJlcuYVomJihuLlc9Vy5XLG4uc2VnbWVudFN0YXJ0VGltZT1XLnNlZ21lbnRTdGFydFRpbWUsbi5YPW4uc2VnbWVudFN0YXJ0VGltZSxuLnJhbmdlfHwobi5LPW4uVykpfTsKWko9ZnVuY3Rpb24obixXKXt2YXIgRD1XLmokO24uWT0idXBkYXRlV2l0aFNlZ21lbnRJbmZvIjtuLmokPUQ7aWYobi5zZWdtZW50U3RhcnRUaW1lIT09Vy5zdGFydFRpbWV8fG4uVyE9PVcuZHVyYXRpb24pbi5zZWdtZW50U3RhcnRUaW1lPVcuc3RhcnRUaW1lLG4uVz1XLmR1cmF0aW9uLHZfKG4pfTsKVXY9ZnVuY3Rpb24obil7cmV0dXJuIWhKKG4uQXdbbi5Bdy5sZW5ndGgtMV0pfTsKeXM9ZnVuY3Rpb24obil7cmV0dXJuIG4uQXdbbi5Bdy5sZW5ndGgtMV0uY0ooKX07CmcuRXY9ZnVuY3Rpb24obixXLEQpe0Q9bi5wUz09PW51bGw/bi5YYi5wUyhXLEQsbi5Bd1swXS50eXBlKTpuLnBTO2lmKG4uTil7Vz1EP1hkKG4uTixXLm9NKTpuLk47dmFyIGI9bmV3IENzKFcpO2IuZ2V0KCJhbHIiKXx8Yi5zZXQoImFsciIsInllcyIpO24uSiYmWl8oYixuLkopfWVsc2UvaHR0cFtzXT86XC9cLy8udGVzdChuLkopP2I9bmV3IENzKG5ldyBnLndaKG4uSikpOihiPUJ3KG4uWGIsRCxXKSxuLkomJlpfKGIsbi5KKSk7KFc9bi5yYW5nZSk/Yi5zZXQoInJhbmdlIixXLnRvU3RyaW5nKCkpOm4uQXdbMF0uUEouRCgpJiZuLkF3Lmxlbmd0aD09PTEmJm4uQXdbMF0uTiYmYi5zZXQoInJhbmdlIixgJHtuLkF3WzBdLk59LWApO24ucmVxdWVzdElkJiZiLnNldCgicmVxX2lkIixuLnJlcXVlc3RJZCk7aXNOYU4obi5aQSl8fGIuc2V0KCJoZWFkbSIsbi5aQS50b1N0cmluZygpKTtpc05hTihuLmopfHxiLnNldCgibWZmYSIsYCR7bi5qfW1zYCk7bi51cmxQYXJhbXMmJmcuYV8obi51cmxQYXJhbXMsCih2LGspPT57Yi5zZXQoayx2KX0pOwpyZXR1cm4gYn07CmRrPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uLkcoKSx2PXtodG1sNVByZWZlcmVuY2U6IkhUTUw1X1BSRUZfV0FOVFMiLGxhY3RNaWxsaXNlY29uZHM6U3RyaW5nKGcudkkoKSkscmVmZXJlcjpkb2N1bWVudC5sb2NhdGlvbi50b1N0cmluZygpLHNpZ25hdHVyZVRpbWVzdGFtcDoyMDY1NX0saz1nLm85KCk7bi5pc0F1dG9uYXYmJih2LmF1dG9uYXY9ITApO2suUVEoMTQxKSYmKHYuYXV0b25hdlN0YXRlPWsuUVEoMTQwKT8iU1RBVEVfT0ZGIjoiU1RBVEVfT04iKTt2LmF1dG9DYXB0aW9uc0RlZmF1bHRPbj1rLlFRKDY2KTtpVChuKSYmKHYuYXV0b3BsYXk9ITApO2IuSyYmbi5jeWNUb2tlbiYmKHYuY3ljVG9rZW49bi5jeWNUb2tlbik7Yi5lbmFibGVQcml2YWN5RmlsdGVyJiYodi5lbmFibGVQcml2YWN5RmlsdGVyPSEwKTtuLmlzRmxpbmcmJih2LmZsaW5nPSEwKTt2YXIgaD1uLmZvcmNlQWRzVXJsO2lmKGgpe2s9e307dmFyIHg9W107aD1oLnNwbGl0KCIsIik7Zm9yKHZhciBMIG9mIGgpe3ZhciBlPQpMLnNwbGl0KCJ8Iik7ZS5sZW5ndGghPT0zfHxMLmluY2x1ZGVzKCI9Iil8fChlWzBdPWBicmVha3R5cGU9JHtlWzBdfWAsZVsxXT1gb2Zmc2V0PSR7ZVsxXX1gLGVbMl09YHVybD0ke2VbMl19YCk7aD17YWR0eXBlOiJ2aWRlb19hZCJ9O2Zvcih2YXIgRyBvZiBlKXtsZXQgW3osLi4uQ109Ry5zcGxpdCgiPSIpO2hbel09Qy5qb2luKCI9Iil9ZT1oLnVybDtsZXQgSD1oLnByZXNldGFkLEE9aC52aXJhbHJlc3BvbnNldXJsLHk9TnVtYmVyKGguY2FtcGFpZ25pZCksVD1oLmJpYmxpb3RlY2FhZGlkO2lmKGguYWR0eXBlPT09ImluX2Rpc3BsYXlfYWQiKWUmJihrLnVybD1lKSxIJiYoay5wcmVzZXRBZD1IKSxBJiYoay52aXJhbEFkUmVzcG9uc2VVcmw9QSkseSYmKGsudmlyYWxDYW1wYWlnbklkPVN0cmluZyh5KSksVCYmKGsuYmlibGlvdGVjYUFkSWQ9VCk7ZWxzZSBpZihoLmFkdHlwZT09PSJ2aWRlb19hZCIpe2xldCB6PXtvZmZzZXQ6e2tpbmQ6Ik9GRlNFVF9NSUxMSVNFQ09ORFMiLHZhbHVlOlN0cmluZyhOdW1iZXIoaC5vZmZzZXQpfHwKMCl9fTtpZihoPUNJWltoLmJyZWFrdHlwZV0pei5icmVha1R5cGU9aDtlJiYoei51cmw9ZSk7SCYmKHoucHJlc2V0QWQ9SCk7QSYmKHoudmlyYWxBZFJlc3BvbnNlVXJsPUEpO3kmJih6LnZpcmFsQ2FtcGFpZ25JZD1TdHJpbmcoeSkpO1QmJih6LmJpYmxpb3RlY2FBZElkPVQpO3gucHVzaCh6KX19T2JqZWN0LmtleXMoaykubGVuZ3RoPjA/di5mb3JjZUFkUGFyYW1ldGVycz17dmlkZW9BZHM6eCxpbkRpc3BsYXlBZDprfTp2LmZvcmNlQWRQYXJhbWV0ZXJzPXt2aWRlb0Fkczp4fX1uLmlzSW5saW5lUGxheWJhY2tOb0FkJiYodi5pc0lubGluZVBsYXliYWNrTm9BZD0hMCk7bi5pc0xpdmluZ1Jvb21EZWVwbGluayYmKHYuaXNMaXZpbmdSb29tRGVlcGxpbms9ITApO0w9bi5zUztpZihMIT1udWxsKXtMPXtzdGFydFdhbGx0aW1lOlN0cmluZyhMKX07aWYoRz1uLnptKUwubWFuaWZlc3REdXJhdGlvbj1TdHJpbmcoR3x8MTQ0MDApO3YubGl2ZUNvbnRleHQ9TH1uLm11dGVkQXV0b3BsYXkmJgoodi5tdXRlZEF1dG9wbGF5PSEwLEw9Yi5nZXRXZWJQbGF5ZXJDb250ZXh0Q29uZmlnKCksTD8uZW1iZWRzSG9zdEZsYWdzPy5hbGxvd011dGVkQXV0b3BsYXlEdXJhdGlvbk1vZGUmJkw/LmVtYmVkc0hvc3RGbGFncz8uYWxsb3dNdXRlZEF1dG9wbGF5RHVyYXRpb25Nb2RlLmluY2x1ZGVzKHVUW24ubXV0ZWRBdXRvcGxheUR1cmF0aW9uTW9kZV0pJiYodi5tdXRlZEF1dG9wbGF5RHVyYXRpb25Nb2RlPXVUW24ubXV0ZWRBdXRvcGxheUR1cmF0aW9uTW9kZV0pKTtpZihuLmZCPzA6bi5QWCl2LnNwbGF5PSEwO0w9bi52bmQ7TD09PTUmJih2LnZuZD1MKTtMPXt9O2lmKEc9bi5pc01keFBsYXliYWNrKUwudHJpZ2dlcmVkQnlNZHg9RztpZihHPW4uRmYpTC5za2lwcGFibGVBZHNTdXBwb3J0ZWQ9Ry5zcGxpdCgiLCIpLmluY2x1ZGVzKCJza2EiKTtpZih4PW4uVUspe0c9bi5jTDtrPVtdO2Zvcih2YXIgciBvZiBpSih4KSl7eD1yLnBsYXRmb3JtO3g9e2FwcGxpY2F0aW9uU3RhdGU6ci5Fcz8KIklOQUNUSVZFIjoiQUNUSVZFIixjbGllbnRGb3JtRmFjdG9yOkJEalt4XXx8IlVOS05PV05fRk9STV9GQUNUT1IiLGNsaWVudE5hbWU6dUpbci5oal18fCJVTktOT1dOX0lOVEVSRkFDRSIsY2xpZW50VmVyc2lvbjpyLmRldmljZVZlcnNpb258fCIiLHBsYXRmb3JtOkZoaVt4XXx8IlVOS05PV05fUExBVEZPUk0ifTtoPXt9O2lmKEcpe3ZhciBOPXZvaWQgMDt0cnl7Tj1KU09OLnBhcnNlKEcpfWNhdGNoKEgpe2cuR3EoSCl9TiYmKGg9e3BhcmFtczpbe2tleToibXMiLHZhbHVlOk4ubXN9XX0sTi5hZHZlcnRpc2luZ19pZCYmKGguYWR2ZXJ0aXNpbmdJZD1OLmFkdmVydGlzaW5nX2lkKSxOLmxpbWl0X2FkX3RyYWNraW5nIT09dm9pZCAwJiZOLmxpbWl0X2FkX3RyYWNraW5nIT09bnVsbCYmKGgubGltaXRBZFRyYWNraW5nPU4ubGltaXRfYWRfdHJhY2tpbmcpLHgub3NOYW1lPU4ub3NfbmFtZSx4LnVzZXJBZ2VudD1OLnVzZXJfYWdlbnQseC53aW5kb3dIZWlnaHRQb2ludHM9Ti53aW5kb3dfaGVpZ2h0X3BvaW50cywKeC53aW5kb3dXaWR0aFBvaW50cz1OLndpbmRvd193aWR0aF9wb2ludHMpfWsucHVzaCh7YWRTaWduYWxzSW5mbzpoLHJlbW90ZUNsaWVudDp4fSl9TC5yZW1vdGVDb250ZXh0cz1rfXI9bi5zb3VyY2VDb250YWluZXJQbGF5bGlzdElkO049bi5zZXJpYWxpemVkTWR4TWV0YWRhdGE7aWYocnx8TilHPXt9LHImJihHLm1keFBsYXliYWNrQ29udGFpbmVySW5mbz17c291cmNlQ29udGFpbmVyUGxheWxpc3RJZDpyfSksTiYmKEcuc2VyaWFsaXplZE1keE1ldGFkYXRhPU4pLEwubWR4UGxheWJhY2tTb3VyY2VDb250ZXh0PUc7di5tZHhDb250ZXh0PUw7cj1XLndpZHRoO3I+MCYmKHYucGxheWVyV2lkdGhQaXhlbHM9TWF0aC5yb3VuZChyKSk7aWYoVz1XLmhlaWdodCl2LnBsYXllckhlaWdodFBpeGVscz1NYXRoLnJvdW5kKFcpO0QhPT0wJiYodi52aXM9RCk7aWYoRD1iLndpZGdldFJlZmVycmVyKXYud2lkZ2V0UmVmZXJyZXI9RC5zdWJzdHJpbmcoMCwxMjgpO2cubzQoYikmJnYmJih2LmFuY2VzdG9yT3JpZ2lucz0KYi5hbmNlc3Rvck9yaWdpbnMpO24uZGVmYXVsdEFjdGl2ZVNvdXJjZVZpZGVvSWQmJih2LmNvbXBvc2l0ZVZpZGVvQ29udGV4dD17ZGVmYXVsdEFjdGl2ZVNvdXJjZVZpZGVvSWQ6bi5kZWZhdWx0QWN0aXZlU291cmNlVmlkZW9JZH0pO2lmKG49Yi5nZXRXZWJQbGF5ZXJDb250ZXh0Q29uZmlnKCkpdi5lbmNyeXB0ZWRIb3N0RmxhZ3M9bi5lbmNyeXB0ZWRIb3N0RmxhZ3M7cmV0dXJuIHZ9Owp6UD1mdW5jdGlvbihuKXtpZihuLnJhbmdlKXJldHVybiBuLlc7bj1uLkF3WzBdO3JldHVybiBNYXRoLnJvdW5kKG4uSypuLlBKLmluZm8uTnMpfTsKd0xVPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIE1hdGgubWF4KDAsbi5Bd1swXS5YLVcpfTsKbFQ9ZnVuY3Rpb24obixXLEQpe2Zvcig7bjtuPW4ucGFyZW50Tm9kZSl7aWYoIW4uYXR0cmlidXRlc3x8RCYmbi5ub2RlTmFtZSE9PUQpY29udGludWU7bGV0IGI9bi5nZXRBdHRyaWJ1dGUoVyk7aWYoYilyZXR1cm4gYn1yZXR1cm4iIn07ClRQPWZ1bmN0aW9uKG4sVyl7Zm9yKDtuO249bi5wYXJlbnROb2RlKXtsZXQgRD1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKFcpO2lmKEQubGVuZ3RoPjApcmV0dXJuIERbMF19cmV0dXJuIG51bGx9OwpqeD1mdW5jdGlvbihuKXtpZighbilyZXR1cm4gMDt2YXIgVz1uLm1hdGNoKC9QVCgoWzAtOV0qKUgpPygoWzAtOV0qKU0pPygoWzAtOS5dKilTKT8vKTtyZXR1cm4gVz8oTnVtYmVyKFdbMl0pfDApKjM2MDArKE51bWJlcihXWzRdKXwwKSo2MCsoTnVtYmVyKFdbNl0pfDApOk51bWJlcihuKXwwfTsKQ3o9ZnVuY3Rpb24obil7cmV0dXJuIG4ubWF0Y2goL14oXGR7NH0pLShcZHsyfSktKFxkezJ9KVQoXGR7Mn0pOihcZHsyfSk6KFxkezJ9KVwuKFxkezN9KSQvKT9gJHtufVpgOm59OwpNZ009ZnVuY3Rpb24obil7dmFyIFc9bi5XO24uVz1bXTtyZXR1cm4gV307ClJBUz1mdW5jdGlvbihuKXtuLk58fChuLk49bmV3IEJfKTtyZXR1cm4gbi5OfTsKUVdNPWZ1bmN0aW9uKG4sVyl7bi5KW1ddfHwobi5KW1ddPW5ldyBCXyk7cmV0dXJuIG4uSltXXX07ClZnaT1mdW5jdGlvbihuLFcpe24uV1tXXXx8KG4uV1tXXT1uZXcgQl8pO3JldHVybiBuLldbV119OwpjSGo9ZnVuY3Rpb24obixXKXt2YXIgRD1bXTtXPUFycmF5LmZyb20oVy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU2VnbWVudFRpbWVsaW5lIikpO2ZvcihsZXQgYiBvZiBXKXtXPWIucGFyZW50Tm9kZS5wYXJlbnROb2RlO2xldCB2PW51bGw7Vy5ub2RlTmFtZT09PSJQZXJpb2QiP3Y9UkFTKG4pOlcubm9kZU5hbWU9PT0iQWRhcHRhdGlvblNldCI/KFc9Vy5nZXRBdHRyaWJ1dGUoImlkIil8fFcuZ2V0QXR0cmlidXRlKCJtaW1ldHlwZSIpfHwiIix2PVFXTShuLFcpKTpXLm5vZGVOYW1lPT09IlJlcHJlc2VudGF0aW9uIiYmKFc9Vy5nZXRBdHRyaWJ1dGUoImlkIil8fCIiLHY9VmdpKG4sVykpO2lmKHY9PW51bGwpcmV0dXJuO3YudXBkYXRlKGIpO2cuUTIoRCxNZ00odikpfWcuUTIobi5YLEQpO3RVaChuLlgsYj0+Yi5zdGFydFNlY3MqMUUzK2IuTil9OwphRFU9ZnVuY3Rpb24obil7bi5OJiYobi5OLk49W10pO2cuYV8obi5KLFc9PntXLk49W119KTsKZy5hXyhuLlcsVz0+e1cuTj1bXX0pfTsKRng9ZnVuY3Rpb24obixXKXtyZXR1cm4gRGUobi5zZWdtZW50cyxEPT5XLUQuaiQpfTsKTUk9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uaW5kZXguVihXKSx2PW4uaW5kZXguZ2V0U3RhcnRUaW1lKFcpLGs9bi5pbmRleC5nZXREdXJhdGlvbihXKTtEP2s9RD0wOkQ9bi5pbmZvLk5zKms7cmV0dXJuIG5ldyB3ayhbbmV3IHFJKDMsbix2b2lkIDAsIm90ZkNyZWF0ZVJlcXVlc3RJbmZvRm9yU2VnbWVudCIsVyx2LGssMCxEKV0sYil9OwpuR1M9ZnVuY3Rpb24obixXKXtpZighbi5pbmRleC5pc0xvYWRlZCgpKXt2YXIgRD1bXSxiPVcuajtXPVcuSy5zcGxpdCgiLCIpLmZpbHRlcihlPT5lLmxlbmd0aD4wKTsKdmFyIHY9MCxrPTAsaD0wLHg9L14oXGQrKS8sTD0vcj0oXGQrKS87Zm9yKGxldCBlPTA7ZTxiO2UrKyl7aWYoaDw9MClpZihoPVcuc2hpZnQoKSxrPShrPXguZXhlYyhoKSk/K2tbMV0vMUUzOjApaD0oaD1MLmV4ZWMoaCkpPytoWzFdOjAsaCs9MTtlbHNlIHJldHVybjtELnB1c2gobmV3IFI0KGUsdixrLE5hTiwic3EvIisoZSsxKSkpO3YrPWs7aC0tfW4uaW5kZXguYXBwZW5kKEQpfX07CmcuY189ZnVuY3Rpb24obixXLC4uLkQpe2cuUXMoNSxuIGluc3RhbmNlb2YgZy5Wcz9uLnRhZzpuLFcsLi4uRCl9OwpnLlFzPWZ1bmN0aW9uKG4sVyxELC4uLmIpe3ZhciB2PW49PT02PyJFUlJPUiI6IldBUk5JTkciO0Q9YGIke0R9YDtnLlhqKG5ldyBnLlF4KEQsLi4uYiksdik7Yi51bnNoaWZ0KEQpO2I9Yi5qb2luKCIsICIpO3Y9YTQuZ2V0KFcpO2lmKCF2KXt2PWB5dHBsb2cuJHtXfWA7RD01O3RyeXt3aW5kb3cubG9jYWxTdG9yYWdlJiYhaXNOYU4oK3dpbmRvdy5sb2NhbFN0b3JhZ2Vbdl0pJiYoRD0rd2luZG93LmxvY2FsU3RvcmFnZVt2XSksd2luZG93LnNlc3Npb25TdG9yYWdlJiYhaXNOYU4oK3dpbmRvdy5zZXNzaW9uU3RvcmFnZVt2XSkmJihEPSt3aW5kb3cuc2Vzc2lvblN0b3JhZ2Vbdl0pfWNhdGNoe31hNC5zZXQoVyxEKTt2PUR9bjx2fHwobj1XS3csdj1uLk4uZ2V0KFcpLHZ8fCh2PW5ldyBEODIsbi5OLnNldChXLHYpKSxuPXYsdj1EYXRlLm5vdygpLEQ9TWF0aC5mbG9vcigodi1uLkopKi4wMSksRD4wJiYobi5OPU1hdGgubWluKG4uTitELDEwKSxuLko9diksbi5OPjA/KG4uTi0tLG49CiEwKTpuPSExLG4/KHR5cGVvZiBiPT09ImZ1bmN0aW9uIiYmKGI9YigpKSxjb25zb2xlLmxvZyhgcGx5ci4ke1d9YCxiKSk6KGI9KG5NLmdldChXKT8/MCkrMSxuTS5zZXQoVyxiKSxiJTEwMD09PTEmJmNvbnNvbGUud2FybigicGx5ciIsYHBseXIuJHtXfSBpcyBjaGF0dHksIGRyb3BwaW5nIGxvZ3MuYCkpKX07CkRPPWZ1bmN0aW9uKG4pe2lmKCFuLkspe2lmKGcuUkIobi5pbmZvLlBKLmluZm8pKXt2YXIgVz1nLldSKG4pO3ZhciBEPWt4KFcsMCwxODM2MDE5NTc0KTtpZihEKXtEPUQub2Zmc2V0K0Quc2l6ZTt2YXIgYj1uZXcgVWludDhBcnJheShEKTtiLnNldChuZXcgVWludDhBcnJheShXLmJ1ZmZlcixXLmJ5dGVPZmZzZXQsRCkpO1c9Yn1lbHNlIFc9bnVsbH1lbHNlIFc9eUhyKG5ldyB0WShnLldSKG4pKSk7VyYmKG4uaW5mby5QSi5KPVcsbi5LPSEwKX19OwpnLldSPWZ1bmN0aW9uKG4pe3JldHVybiBHNihuLkopfTsKdlI9ZnVuY3Rpb24obixXKXtXPU1hdGgubWluKFcsbi5pbmZvLkopO3ZhciB7Q3M6RCxZOTpifT1uLkouc3BsaXQoVyksdj1uZXcgYjgobmV3IHFJKG4uaW5mby50eXBlLG4uaW5mby5QSixuLmluZm8ucmFuZ2Usbi5pbmZvLlksbi5pbmZvLmokLG4uaW5mby5zZWdtZW50U3RhcnRUaW1lLG4uaW5mby5XLG4uaW5mby5OLFcsITEsbi5pbmZvLnZELG4uaW5mby5jbGlwSWQsbi5pbmZvLkQpLEQpO3YuWD1uLlg7di5XPW4uVztXPW5ldyBiOChuZXcgcUkobi5pbmZvLnR5cGUsbi5pbmZvLlBKLG4uaW5mby5yYW5nZSxuLmluZm8uWSxuLmluZm8uaiQsbi5pbmZvLnNlZ21lbnRTdGFydFRpbWUsbi5pbmZvLlcsbi5pbmZvLk4rVyxuLmluZm8uSi1XLG4uaW5mby5hWixuLmluZm8udkQsbi5pbmZvLmNsaXBJZCxuLmluZm8uRCksYik7Vy5YPW4uWDtXLlc9bi5XO3JldHVyblt2LFddfTsKZy5rWD1mdW5jdGlvbihuKXtnLlJCKG4uaW5mby5QSi5pbmZvKXx8bi5pbmZvLlBKLmluZm8ucUgoKTtpZihuLlchPT0tMSlyZXR1cm4gbi5XO2lmKG4uTiYmakoobi5OKSlyZXR1cm4gbi5XPWpKKG4uTiksbi5XO2lmKGcuUkIobi5pbmZvLlBKLmluZm8pKXt2YXIgVz1nLldSKG4pO3ZhciBEPW4uaW5mby5QSi5KLGI9TmFOO2xldCB2PU5hTixrPTA7Zm9yKDtWTChXLGspOyl7bGV0IGg9Y0EoVyxrKTtoLnR5cGU9PT0xOTM2Mjg2ODQwP3Y9aC5kYXRhLmdldFVpbnQzMihoLmRhdGFPZmZzZXQrOCk6aC50eXBlPT09MTgzNjQ3NjUxNj92PWcuYkwoaCk6aC50eXBlPT09MTk1Mjg2NzQ0NCYmaXNOYU4oYikmJihiPWcueHgoaCkpO2s9YXIoaC50eXBlKT9rKzg6aytoLnNpemV9IXYmJkQmJih2PXZ3KEQpKTtXPWIvdn1lbHNlIFc9bmV3IHRZKGcuV1IobikpLEQ9bi5WP1c6bmV3IHRZKG5ldyBEYXRhVmlldyhuLmluZm8uUEouSi5idWZmZXIpKSxiPUtzKEQpLEQ9Vy5wb3MsVy5wb3M9MCxQdyhXKT8Kc1koVywyMzEpPyhiPWZzKFcpKmIvMUU5LFcucG9zPUQsVz1iKTooVy5wb3M9RCxXPU5hTik6KFcucG9zPUQsVz1OYU4pO24uVz1XfHxuLmluZm8uWDtyZXR1cm4gbi5XfTsKaE09ZnVuY3Rpb24obixXKXtnLlJCKG4uaW5mby5QSi5pbmZvKXx8bi5pbmZvLlBKLmluZm8ucUgoKTtuLlc9VztpZihnLlJCKG4uaW5mby5QSi5pbmZvKSl7dmFyIEQ9Zy5XUihuKTtuPW4uaW5mby5QSi5KO3ZhciBiPU5hTix2PU5hTjtsZXQgTD0wO2Zvcig7VkwoRCxMKTspe2xldCBlPWNBKEQsTCk7aXNOYU4oYikmJihlLnR5cGU9PT0xOTM2Mjg2ODQwP2I9ZS5kYXRhLmdldFVpbnQzMihlLmRhdGFPZmZzZXQrOCk6ZS50eXBlPT09MTgzNjQ3NjUxNiYmKGI9Zy5iTChlKSkpO2lmKGUudHlwZT09PTE5NTI4Njc0NDQpeyFiJiZuJiYoYj12dyhuKSk7dmFyIGs9Zy54eChlKTtpc05hTih2KSYmKHY9TWF0aC5yb3VuZChXKmIpLWspO3ZhciBoPWU7ays9djtpZihoLmRhdGEuZ2V0VWludDgoaC5kYXRhT2Zmc2V0KSl7dmFyIHg9aC5kYXRhO2g9aC5kYXRhT2Zmc2V0KzQ7eC5zZXRVaW50MzIoaCxNYXRoLmZsb29yKGsvNDI5NDk2NzI5NikpO3guc2V0VWludDMyKGgrNCxrJjQyOTQ5NjcyOTUpfWVsc2UgaC5kYXRhLnNldFVpbnQzMihoLmRhdGFPZmZzZXQrCjQsayl9TD1hcihlLnR5cGUpP0wrODpMK2Uuc2l6ZX1yZXR1cm4hMH1EPW5ldyB0WShnLldSKG4pKTtuPW4uVj9EOm5ldyB0WShuZXcgRGF0YVZpZXcobi5pbmZvLlBKLkouYnVmZmVyKSk7Yj1LcyhuKTtuPUQucG9zO0QucG9zPTA7aWYoUHcoRCkmJnNZKEQsMjMxKSlpZih2PU5rKEQsITApLFc9TWF0aC5mbG9vcihXKjFFOS9iKSxNYXRoLmNlaWwoTWF0aC5sb2coVykvTWF0aC5sb2coMikvOCk+dilXPSExO2Vsc2V7Zm9yKGI9di0xO2I+PTA7Yi0tKUQuTi5zZXRVaW50OChELnBvcytiLFcmMjU1KSxXPj4+PTg7RC5wb3M9bjtXPSEwfWVsc2UgVz0hMTtyZXR1cm4gV307CnhYPWZ1bmN0aW9uKG4sVyl7bi50aW1lc3RhbXBPZmZzZXQ+MCYmKFctPW4udGltZXN0YW1wT2Zmc2V0KTt2YXIgRD1nLmtYKG4pK1c7aE0obixEKTtuLnRpbWVzdGFtcE9mZnNldD1XfTsKTE09ZnVuY3Rpb24obil7Zy5SQihuLmluZm8uUEouaW5mbyl8fG4uaW5mby5QSi5pbmZvLnFIKCk7aWYobi5OJiZuLmluZm8udHlwZT09PTYpcmV0dXJuIG4uTi5yYjtpZihnLlJCKG4uaW5mby5QSi5pbmZvKSl7dmFyIFc9Zy5XUihuKTt2YXIgRD0wO1c9Zy5lUChXLDE5MzYyODY4NDApO2Zvcih2YXIgYiBvZiBXKVc9THMoYiksRCs9Vy5xZ1swXS9XLnRpbWVzY2FsZTtEPUR8fE5hTjtpZighKEQ+PTApKWE6e0Q9Zy5XUihuKTtiPW4uaW5mby5QSi5KO2xldCByPVc9MDtmb3IodmFyIHY9MDtWTChELFcpOyl7bGV0IE49Y0EoRCxXKTtpZihOLnR5cGU9PT0xODM2NDc2NTE2KXI9Zy5iTChOKTtlbHNlIGlmKE4udHlwZT09PTE4MzYwMTk1NTgpeyFyJiZiJiYocj12dyhiKSk7aWYoIXIpe0Q9TmFOO2JyZWFrIGF9dmFyIGs9a3goTi5kYXRhLE4uZGF0YU9mZnNldCwxOTUzNjUzMDk0KSxoPWs7az1yO3ZhciB4PWt4KGguZGF0YSxoLmRhdGFPZmZzZXQsMTk1Mjg2ODQ1Mik7aD1reChoLmRhdGEsCmguZGF0YU9mZnNldCwxOTUzNjU4MjIyKTt2YXIgTD15TCh4KTt5TCh4KTtMJjImJnlMKHgpO3g9TCY4P3lMKHgpOjA7dmFyIGU9eUwoaCksRz1lJjE7TD1lJjQ7bGV0IEg9ZSYyNTYsQT1lJjUxMix5PWUmMTAyNDtlJj0yMDQ4O2xldCBUPUVEKGgpO0cmJnlMKGgpO0wmJnlMKGgpO0c9MDtmb3IobGV0IHo9MDt6PFQ7eisrKXtsZXQgQz1IP3lMKGgpOng7QSYmeUwoaCk7TCYmej09PTB8fCF5fHx5TChoKTtlJiZ5TChoKTtHKz1DfXYrPUcva31XPWFyKE4udHlwZSk/Vys4OlcrTi5zaXplfUQ9dnx8TmFOfUR8fGcuR3EobmV3IGcuUXgoIk1pc3NpbmcgZHVyYXRpb24gd2hpbGUgcGFyc2luZyBibWZmIixuLmluZm8uZ2EoKSkpfWVsc2UgRD1uZXcgdFkoZy5XUihuKSksbj1uLlY/RDpuZXcgdFkobmV3IERhdGFWaWV3KG4uaW5mby5QSi5KLmJ1ZmZlcikpLEQ9RUVaKEQsS3MobikpO3JldHVybiBEfTsKZUc9ZnVuY3Rpb24obixXPSExKXt2YXIgRD1MTShuKTtuPVc/MDpuLmluZm8uSztyZXR1cm4gRHx8bn07CmcuZ3k9ZnVuY3Rpb24obil7aWYobi5pbmZvLlBKLlcoKSlyZXR1cm4gbi5pbmZvLlc7bi5YPT09LTEmJihuLlg9TE0obikpO3JldHVybiBuLlh8fG4uaW5mby5XfTsKWFo9ZnVuY3Rpb24obil7dmFyIFc9Zy5XUihuKSxEPWcubnMoVywwLDE5MzYyODY4NDApO0Q9RD9ELmRhdGEuZ2V0VWludDMyKEQuZGF0YU9mZnNldCs4KTpOYU47aXNOYU4oRCkmJihuPW4uaW5mby5QSi5KLEQ9KFc9Zy5ucyhXLDAsMTgzNjQ3NjUxNikpP2cuYkwoVyk6bj92dyhuKTpOYU4pO3JldHVybiBEfTsKcSQ9ZnVuY3Rpb24obil7cmV0dXJuIG4uaW5mby5QSi5pbmZvLnFIKCkmJnJkKG4uSiwwKT09PTE2MH07CkdpPWZ1bmN0aW9uKG4pe2lmKCFuLk4pe2cuUkIobi5pbmZvLlBKLmluZm8pfHxuLmluZm8uUEouaW5mby5xSCgpO2lmKGcuUkIobi5pbmZvLlBKLmluZm8pKXZhciBXPWcucWsoZy5XUihuKSk7ZWxzZXtXPW5ldyB0WShnLldSKG4pKTtsZXQgYj1XLnBvcztXLnBvcz0wO2xldCB2PW51bGwsaz1udWxsO2lmKCR4KFcsWzQwODEyNTU0MywzMDc1NDQ5MzVdKSl7bGV0IGg9Vy5wb3MrTmsoVywhMCk7Zm9yKDtXLnBvczxoOyl7aWYoTmsoVywhMSkhPT0yOTU1NSl7SlkoVyk7Y29udGludWV9bGV0IHg9Vy5wb3MrTmsoVywhMCk7Zm9yKDtXLnBvczx4Oyl7aWYoTmsoVywhMSkhPT0yNjU2OCl7SlkoVyk7Y29udGludWV9bGV0IEw9Vy5wb3MrTmsoVywhMCk7Zm9yKDtXLnBvczxMOyl7dmFyIEQ9TmsoVywhMSk7aWYoRD09PTE3NTQzKXtpZihEPW10KFcpLEQ9UUwoRCkpaWYoaylmb3IobGV0IGUgb2YgT2JqZWN0LmtleXMoRCkpa1tlXT1EW2VdO2Vsc2Ugaz1EfWVsc2UgRD09PTE3ODI3PyhEPQptdChXKSx2fHwodj1EKSk6SlkoVyl9fX19Vy5wb3M9YjtXPWs/bmV3IFg1KGssdik6bnVsbH1uLk49V319Owp0TT1mdW5jdGlvbihuLFcpe3JldHVybiBXKzE8bi5jb3VudHx8bi5XP24ub2Zmc2V0c1tXKzFdLW4ub2Zmc2V0c1tXXTotMX07CiRYPWZ1bmN0aW9uKG4pe24ub2Zmc2V0cy5sZW5ndGg8bi5jb3VudCsxJiZuLnJlc2l6ZShuLm9mZnNldHMubGVuZ3RoKjIpfTsKcnk9ZnVuY3Rpb24obixXLEQpe24uY291bnQrKzskWChuKTtuLm9mZnNldHNbbi5jb3VudF09bi5vZmZzZXRzW24uY291bnQtMV0rVztuLnN0YXJ0VGlja3Nbbi5jb3VudF09bi5zdGFydFRpY2tzW24uY291bnQtMV0rRH07CnNOPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PVtdO2ZvcihsZXQgaz1XO2s8PW4uaW5kZXgueCQoKTtrKyspe2xldCBoPVdfKG4uaW5kZXguTihrKSx0TShuLmluZGV4LGspKSx4PW4uaW5kZXguZ2V0U3RhcnRUaW1lKGspLEw9bi5pbmRleC5nZXREdXJhdGlvbihrKSxlPU1hdGgubWF4KDAsRC1oLnN0YXJ0KSxHPU1hdGgubWluKGguZW5kKzEsRCtiKS0oaC5zdGFydCtlKTt2LnB1c2gobmV3IHFJKDMsbixoLCJnZXRSZXF1ZXN0SW5mb0ZvclJhbmdlIixrLHgsTCxlLEcpKTtpZihoLnN0YXJ0K2UrRz49RCtiKWJyZWFrfXYubGVuZ3RofHwobj1uZXcgZy5ReCgiYjE4OTYxOTU5MyIsYCR7V31gLGAke0R9YCxgJHtifWApLGcuWGoobikpO3JldHVybiBuZXcgd2sodil9OwpOJD1mdW5jdGlvbihuKXtpZihuPW4uY29sb3JJbmZvKWlmKG49bi50cmFuc2ZlckNoYXJhY3RlcmlzdGljcylyZXR1cm4gYnFVW25dO3JldHVybiBudWxsfTsKWVg9ZnVuY3Rpb24obixXKXt2YXIgRD1NYXRoLm1heChuLFcpO249TWF0aC5taW4obixXKTtXPXBNWzBdO2ZvcihsZXQgYj0wO2I8cE0ubGVuZ3RoO2IrKyl7bGV0IHY9cE1bYl0saz1OR1t2XTtpZihEPj1NYXRoLmZsb29yKGsqMTYvOSkqMS4zfHxuPj1rKjEuMylyZXR1cm4gVztXPXZ9cmV0dXJuInRpbnkifTsKZk09ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBIUihuWzFdLG5bMl0sblszXSxuWzRdLG5bNV0sbls2XSxuWzddLG5bOF0sbls5XSxuWzEwXSl9OwpKTT1mdW5jdGlvbihuKXtyZXR1cm4gbi5pbmRleE9mKCIvbXA0Iik+PTA/MTpuLmluZGV4T2YoIi93ZWJtIik+PTA/MjpuLmluZGV4T2YoIi94LWZsdiIpPj0wPzM6bi5pbmRleE9mKCIvdnR0Iik+PTA/NDowfTsKSWQ9ZnVuY3Rpb24obil7cmV0dXJuLyhvcHVzfG1wNGF8ZHRzZXxhYy0zfGVjLTN8aWFtZikvLnRlc3Qobil9OwpTRz1mdW5jdGlvbihuKXtyZXR1cm4vKHZwOXx2cDA5fHZwOHxhdmMxfGF2MDF8YXYwMikvLnRlc3Qobil9OwpRUD1mdW5jdGlvbihuLFcsRCxiLHYsayxoKXt2YXIgeD1uZXcgQU07VyBpbiBOR3x8KFc9InNtYWxsIik7Vz09PSJsaWdodCImJihXPSJ0aW55Iik7YiYmdj8odj1OdW1iZXIodiksYj1OdW1iZXIoYikpOih2PU5HW1ddLGI9TWF0aC5yb3VuZCh2KjE2LzkpKTtrPW5ldyBIUihiLHYsMCxudWxsLHZvaWQgMCxXLGssaCk7bj11bmVzY2FwZShuLnJlcGxhY2UoLyZxdW90Oy9nLCciJykpO3JldHVybiBuZXcgbXUoRCxuLHthdWRpbzp4LHZpZGVvOmt9KX07Ck9OPWZ1bmN0aW9uKG4pe3ZhciBXPW5bN10sRD1uWzExXSxiPW5bOV0sdj1uWzhdO3JldHVybiBuZXcgbXUoblsxXSxuWzJdLHtYbjpuWzNdLE5zOm5bNF0sbGFzdE1vZGlmaWVkOm5bNV0sY29udGVudExlbmd0aDpuWzZdLGF1ZGlvOlc/bmV3IEFNKFdbMV0sV1syXSxXWzNdLFdbNF0sV1s1XSxXWzZdLFdbN10sV1s4XSk6dm9pZCAwLHZpZGVvOnY/Zk0odik6dm9pZCAwLGtaOmI/TUcoYik6dm9pZCAwLGNvbnRlbnRQcm90ZWN0aW9uOm5bMTBdLGNhcHRpb25UcmFjazpEP25ldyBLTShEWzFdLERbMl0sRFszXSxEWzRdLERbNV0sRFs2XSk6dm9pZCAwLHN0cmVhbVR5cGU6blsxMl0sQWE6blsxM10sYXBwcm94RHVyYXRpb25NczpuWzE0XX0pfTsKbUY9ZnVuY3Rpb24obil7cmV0dXJuIG4uSUI9PT0iTUFDMyJ8fG4uSUI9PT0iTUVBQzMifHxuLklCPT09Ik0ifHxuLklCPT09IkkifTsKS2c9ZnVuY3Rpb24obil7cmV0dXJuISFuLmNvbnRlbnRQcm90ZWN0aW9uJiYhIW4uY29udGVudFByb3RlY3Rpb24uZmFpcnBsYXkmJihuLklCPT09IigifHxuLklCPT09IihoInx8bi5JQj09PSJBInx8bi5JQj09PSJNRUFDMyIpfHxQUiYmISFuLmNvbnRlbnRQcm90ZWN0aW9uJiZuLklCPT09IjFlIn07CmcuUkI9ZnVuY3Rpb24obil7cmV0dXJuIG4uY29udGFpbmVyVHlwZT09PTF9OwpNMz1mdW5jdGlvbihuLFcsRCxiLHYsayxoLHgsTCxlLEcscil7dmFyIE49V15uO3ZhciBIOyhuJjc2KT09biYmKEg9YihoLHgsTCxlLEcscikpOyhuPj4xJjE1KT09MSYmKEQ9KEQlYltJWzVdXStiW0lbNV1dKSViW0lbNV1dLGJbSVszXV0oRCwxKSk7bis5Pj4zPT0zJiYoSD1kZWNvZGVVUklDb21wb25lbnQoRCkpO24tOTwyMyYmKG4+PjEmMTUpPj0xMyYmKERbTl41MjY0XTwoTl41MzQzKSYmKERbTl41MjcwXTw9LTEmJigoKDAsRFtOXjUzMjhdKShEW25ldyBEYXRlKElbTl41MzQ2XSkvKE5eNTk1MSldLERbTl41MjY4XSksRFtOXjUzNDVdKShEW05eNTM2MV0sRFtOXjUyNjhdKSwxKXx8KDAsRFtOXjUzNTFdKSgoMCxEW05eNTM0NF0pKERbTl41MzY2XSxEW05eNTMxOV0pLERbMV0sRFtOXjUzMjBdLERbTl41MzQ4XSkpLERbTl41MjY4XT49LTImJigoMCxEW05eNTM1MV0pKCgwLERbM10pKERbTl41MzcyXSwoMCxEW25ldyBEYXRlKElbNF0pLyhOXjU5NTEpXSkoKSxEW05eNTMxNV0pLApEW05eNTM1Nl0sRFtOXjUyNzFdLERbTl41MzY1XSksRFtOXjUzMjZdKShEW05eNTMyMV0sRFtOXjUzNTZdKSxEWzVdPD0tMiYmKERbTl41Mjc2XTwoTl41MzQxKXx8KCgoKDAsRFtOXjUzMjZdKShEW05eNTMxOV0sRFtOXjUzNzNdKSxEW05eNTI2OV0pKCgwLERbTl41MjY4XSkoRFtOXjUzNTNdLERbTl41MzQ3XSksRFtOXjUzMzZdLCgwLERbNF0pKCgwLERbTl41MzYyXSkoRFtOXjUzNDldLCgwLERbTl41Mjc2XSkoKSxEW05eNTM3NV0pLERbTl41MjY2XSxEW05eNTM1NV0sRFtOXjUzMjhdKSxEW05eNTM2MV0sRFswXSksRFtOXjUzMThdKShEW05eNTM3M10sRFtOXjUzNDBdKSxJW05eNTMxNF0pKSYmKCgwLERbTl41MzI2XSkoKCgwLERbTl41MzUxXSkoRFtOXjUzNDJdLCgwLERbbmV3IERhdGUoSVtOXjUzNTNdKS8oTl41OTUxKV0pKCksRFtOXjUzNzBdKSxEW05eNTMyN10pKERbTl41MzQyXSksRFtOXjUzMTNdLCgwLERbTl41MzUxXSkoRFtOXjUzNDJdLCgwLERbTl41MzI4XSkoKSwKRFtOXjUyNzBdKSxEW05eNTI3NF0sRFtOXjUzNDJdKSxEW05eNTMzNl0pKCgwLERbTl41MzUxXSkoRFtOXjUzNDJdLCgwLERbTl41MzYyXSkoKSxEW05eNTM0OF0pLERbTl41MzI1XSxEW05eNTI2Nl0sRFtOXjUzNTldKSxIPVtdKTtyZXR1cm4gSH07CmcuVmY9ZnVuY3Rpb24obixXKXtyZXR1cm57aXRhZzorbi5pdGFnLGxtdDpXPzA6bi5sYXN0TW9kaWZpZWQseHRhZ3M6bi5KfHwiIn19OwpaTz1mdW5jdGlvbihuKXtyZXR1cm4gbi5JQj09PSI5aCJ8fG4uSUI9PT0iKGgifTsKVU49ZnVuY3Rpb24obil7cmV0dXJuIG4uSUI9PT0iKCJ8fG4uSUI9PT0iKGgifHxuLklCPT09IkgifHxQUiYmbi5JQj09PSIxZSJ9Owp2R1U9ZnVuY3Rpb24obixXPTEpe3ZhciBEPXt9O24udmlkZW8mJihuLnZpZGVvLndpZHRoJiYoRFtBVC5XSURUSC5uYW1lXT1uLnZpZGVvLndpZHRoKSxuLnZpZGVvLmhlaWdodCYmKERbQVQuSEVJR0hULm5hbWVdPW4udmlkZW8uaGVpZ2h0KSxuLnZpZGVvLmZwcyYmKERbQVQuRlJBTUVSQVRFLm5hbWVdPW4udmlkZW8uZnBzKlcpLG4udmlkZW8uTiYmKERbQVQuRU9URi5uYW1lXT1uLnZpZGVvLk4pLG4uTnMmJihEW0FULkJJVFJBVEUubmFtZV09bi5Ocyo4KlcpLG4uSUI9PT0iKCImJihEW0FULkNSWVBUT0JMT0NLRk9STUFULm5hbWVdPSJzdWJzYW1wbGUiKSxuLnZpZGVvLnByb2plY3Rpb25UeXBlPT09IkVRVUlSRUNUQU5HVUxBUiJ8fG4udmlkZW8ucHJvamVjdGlvblR5cGU9PT0iRVFVSVJFQ1RBTkdVTEFSX1RIUkVFRF9UT1BfQk9UVE9NInx8bi52aWRlby5wcm9qZWN0aW9uVHlwZT09PSJNRVNIIikmJihEW0FULkRFQ09ERVRPVEVYVFVSRS5uYW1lXT0idHJ1ZSIpO24uYXVkaW8/Lm51bUNoYW5uZWxzJiYKbi5JQiE9PSJpIiYmbi5JQiE9PSJJIiYmKERbQVQuQ0hBTk5FTFMubmFtZV09bi5hdWRpby5udW1DaGFubmVscyk7cmV0dXJuIER9Owp5VD1mdW5jdGlvbihuLFcpe249biBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpTdHJpbmcobik7dmFyIEQ9IiI7dHJ5e0Q9SlNPTi5zdHJpbmdpZnkoVyl9Y2F0Y2goYil7RD0iZmFpbGVkIHRvIHN0cmluZ2lmeSBjb25maWcifWcuY18oImRhc2giLDUxOTE5NjY0OSxuLEQpfTsKazNyPWZ1bmN0aW9uKG4pe3ZhciBXPW5hdmlnYXRvci5tZWRpYUNhcGFiaWxpdGllcztpZighVz8uZGVjb2RpbmdJbmZvfHxuLklCPT09ImYiKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgRD17dHlwZTpuLmF1ZGlvJiZuLnZpZGVvPyJmaWxlIjoibWVkaWEtc291cmNlIn07bi52aWRlbyYmKEQudmlkZW89e2NvbnRlbnRUeXBlOm4ubWltZVR5cGUsd2lkdGg6bi52aWRlby53aWR0aHx8NjQwLGhlaWdodDpuLnZpZGVvLmhlaWdodHx8MzYwLGJpdHJhdGU6bi5Ocyo4fHwxRTYsZnJhbWVyYXRlOm4udmlkZW8uZnBzfHwzMH0pO24uYXVkaW8mJihELmF1ZGlvPXtjb250ZW50VHlwZTpuLm1pbWVUeXBlLGNoYW5uZWxzOmAke24uYXVkaW8ubnVtQ2hhbm5lbHN8fDJ9YCxiaXRyYXRlOm4uTnMqOHx8MTI4RTMsc2FtcGxlcmF0ZTpuLmF1ZGlvLnNhbXBsZVJhdGV8fDQ0MTAwfSk7aWYoRU4pdHJ5e3JldHVybiBXLmRlY29kaW5nSW5mbyhEKS50aGVuKGI9PntuLmo9Yn0pLmNhdGNoKGI9Pgp7eVQoYixEKX0pfWNhdGNoKGIpe3JldHVybiB5VChiLEQpLFByb21pc2UucmVzb2x2ZSgpfXJldHVybiBXLmRlY29kaW5nSW5mbyhEKS50aGVuKGI9PntuLmo9Yn0pfTsKaTg9ZnVuY3Rpb24oKXt2YXIgbj1nLnJyKCJ5dC5wbGF5ZXIudXRpbHMudmlkZW9FbGVtZW50XyIpO258fChuPWcuekYoIlZJREVPIiksZy5HYigieXQucGxheWVyLnV0aWxzLnZpZGVvRWxlbWVudF8iLG4pKTtyZXR1cm4gbn07CnU4PWZ1bmN0aW9uKG4pe3ZhciBXPWk4KCk7cmV0dXJuISEoVyYmVy5jYW5QbGF5VHlwZSYmVy5jYW5QbGF5VHlwZShuKSl9OwpkeT1mdW5jdGlvbihuKXtpZigvb3B1cy8udGVzdChuKSYmZy5vZCYmIUNfKCIzOCIpJiYhZy5kOCgpKXJldHVybiExO2lmKHNlbGYuTWVkaWFTb3VyY2UmJnNlbGYuTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKXJldHVybiBzZWxmLk1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZChuKTtpZihzZWxmLk1hbmFnZWRNZWRpYVNvdXJjZSYmc2VsZi5NYW5hZ2VkTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKXJldHVybiBzZWxmLk1hbmFnZWRNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQobik7aWYoL3dlYm0vLnRlc3QobikmJiFUUSgpKXJldHVybiExO249PT0nYXVkaW8vbXA0OyBjb2RlY3M9Im1wNGEuNDAuMiInJiYobj0ndmlkZW8vbXA0OyBjb2RlY3M9ImF2YzEuNGQ0MDFmIicpO3JldHVybiEhdTgobil9OwpoZ1M9ZnVuY3Rpb24obil7dHJ5e2xldCBXPWR5KCd2aWRlby9tcDQ7IGNvZGVjcz0iYXZjMS40MjAwMUUiJyl8fGR5KCd2aWRlby93ZWJtOyBjb2RlY3M9InZwOSInKTtyZXR1cm4oZHkoJ2F1ZGlvL21wNDsgY29kZWNzPSJtcDRhLjQwLjIiJyl8fGR5KCdhdWRpby93ZWJtOyBjb2RlY3M9Im9wdXMiJykpJiYoV3x8IW4pfHx1OCgndmlkZW8vbXA0OyBjb2RlY3M9ImF2YzEuNDIwMDFFLCBtcDRhLjQwLjIiJyk/bnVsbDoiZm10Lm5vbmVhdmFpbGFibGUifWNhdGNoe3JldHVybiJodG1sNS5taXNzaW5nYXBpIn19Owp6aT1mdW5jdGlvbigpe3ZhciBuPWk4KCk7cmV0dXJuISghbi53ZWJraXRTdXBwb3J0c1ByZXNlbnRhdGlvbk1vZGV8fHR5cGVvZiBuLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUhPT0iZnVuY3Rpb24iKX07Cmw4PWZ1bmN0aW9uKCl7dmFyIG49aTgoKTt0cnl7bGV0IFc9bi5tdXRlZDtuLm11dGVkPSFXO3JldHVybiBuLm11dGVkIT09V31jYXRjaHt9cmV0dXJuITF9OwpUaT1mdW5jdGlvbihuLFcpe3JldHVybntzdGFydChEKXtyZXR1cm4gbltEXX0sZW5kKEQpe3JldHVybiBXW0RdfSxsZW5ndGg6bi5sZW5ndGh9fTsKakc9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVtdLHY9W107Zm9yKGxldCBrPTA7azxuLmxlbmd0aDtrKyspYi5wdXNoKG4uc3RhcnQoaykpLHYucHVzaChuLmVuZChrKSk7Yi5wdXNoKFcpO3YucHVzaChEKTtiLnNvcnQoKGssaCk9PmstaCk7CnYuc29ydCgoayxoKT0+ay1oKTsKcmV0dXJuIFRpKGIsdil9Owpyaz1mdW5jdGlvbihuLFc9IiwiLEQ9bj9uLmxlbmd0aDowKXt2YXIgYj1bXTtpZihuKWZvcihEPU1hdGgubWF4KG4ubGVuZ3RoLUQsMCk7RDxuLmxlbmd0aDtEKyspYi5wdXNoKGAke24uc3RhcnQoRCkudG9GaXhlZCgzKX0tJHtuLmVuZChEKS50b0ZpeGVkKDMpfWApO3JldHVybiBiLmpvaW4oVyl9OwpDTT1mdW5jdGlvbihuLFcpe2lmKCFuKXJldHVybi0xO3RyeXtmb3IobGV0IEQ9MDtEPG4ubGVuZ3RoO0QrKylpZihuLnN0YXJ0KEQpPD1XJiZuLmVuZChEKT49VylyZXR1cm4gRH1jYXRjaChEKXt9cmV0dXJuLTF9OwpCUj1mdW5jdGlvbihuLFcpe3JldHVybiBDTShuLFcpPj0wfTsKeDhqPWZ1bmN0aW9uKG4sVyl7aWYoIW4pcmV0dXJuIE5hTjtXPUNNKG4sVyk7cmV0dXJuIFc+PTA/bi5zdGFydChXKTpOYU59OwpGWj1mdW5jdGlvbihuLFcpe2lmKCFuKXJldHVybiBOYU47Vz1DTShuLFcpO3JldHVybiBXPj0wP24uZW5kKFcpOk5hTn07Cmcud3k9ZnVuY3Rpb24obil7cmV0dXJuIG4mJm4ubGVuZ3RoP24uZW5kKG4ubGVuZ3RoLTEpOk5hTn07Ck0kPWZ1bmN0aW9uKG4pe3JldHVybiBnLnd5KG4pPjB9OwpSZD1mdW5jdGlvbihuLFcpe249RloobixXKTtyZXR1cm4gbj49MD9uLVc6MH07ClFUPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1bXSx2PVtdO2ZvcihsZXQgaz0wO2s8bi5sZW5ndGg7aysrKW4uZW5kKGspPFd8fG4uc3RhcnQoayk+RHx8KGIucHVzaChNYXRoLm1heChXLG4uc3RhcnQoaykpLVcpLHYucHVzaChNYXRoLm1pbihELG4uZW5kKGspKS1XKSk7cmV0dXJuIFRpKGIsdil9OwpWVD1mdW5jdGlvbigpe3JldHVybiB3aW5kb3cuU291cmNlQnVmZmVyPyEhU291cmNlQnVmZmVyLnByb3RvdHlwZS5jaGFuZ2VUeXBlOiExfTsKY1I9ZnVuY3Rpb24oKXtyZXR1cm4hISh3aW5kb3cuTWVkaWFTb3VyY2V8fHdpbmRvdy5NYW5hZ2VkTWVkaWFTb3VyY2V8fHdpbmRvdy5XZWJLaXRNZWRpYVNvdXJjZXx8d2luZG93LkhUTUxNZWRpYUVsZW1lbnQmJkhUTUxNZWRpYUVsZW1lbnQucHJvdG90eXBlLndlYmtpdFNvdXJjZUFkZElkKX07CmFkPWZ1bmN0aW9uKCl7cmV0dXJuISghd2luZG93Lk1lZGlhU291cmNlfHwhd2luZG93Lk1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCl8fHdpbmRvdy5NYW5hZ2VkTWVkaWFTb3VyY2V9OwpuNj1mdW5jdGlvbihuKXt0cnl7cmV0dXJuIG4uVygpPT09Im9wZW4ifWNhdGNoKFcpe3JldHVybiExfX07CldGPWZ1bmN0aW9uKG4sVyl7bjYobik/Zy5tSygoKT0+e1cobil9KTpuLmNhbGxiYWNrPVd9Owp2Rj1mdW5jdGlvbihuLFcsRCl7REgmJihiQShuLm1lZGlhRWxlbWVudCx7bDoibXN3c3NiIixzcjpuLm1lZGlhRWxlbWVudC5ZYT8ucGcoKX0sITEpLFcuaCQobi5MTCxuKSxELmgkKG4uTEwsbikpO24uTj1XO24uSj1EO2cudShuLFcpO2cudShuLEQpfTsKTEtVPWZ1bmN0aW9uKG4sVyxELGI9IiIpe2I9Vy5taW1lVHlwZStiO3ZhciB2PUQubWltZVR5cGU7Vz1XLklCO0Q9RC5JQjtuLlZRPW4ubWVkaWFTb3VyY2U/LmFkZFNvdXJjZUJ1ZmZlcih2KTtuLmUkPWIuc3BsaXQoIjsiKVswXT09PSJmYWtlc2IiP3ZvaWQgMDpuLm1lZGlhU291cmNlPy5hZGRTb3VyY2VCdWZmZXIoYik7bi5FViYmKG4uRVYud2Via2l0U291cmNlQWRkSWQoIjAiLHYpLG4uRVYud2Via2l0U291cmNlQWRkSWQoIjEiLGIpKTtEPW5ldyBrZyhuLlZRLG4uRVYsIjAiLEpNKHYpLEQsITEpO2I9bmV3IGtnKG4uZSQsbi5FViwiMSIsSk0oYiksVywhMCk7dkYobixELGIpfTsKTDY9ZnVuY3Rpb24obixXLEQsYil7aWYoIW4uTnx8IW4uSilyZXR1cm4gbnVsbDt2YXIgdj1uLk4uaXNWaWV3KCk/bi5OLmskOm4uTixrPW4uSi5pc1ZpZXcoKT9uLkouayQ6bi5KLGg9bmV3IGhaKG4ubWVkaWFFbGVtZW50LG4ubWVkaWFTb3VyY2UsITApO2guaj1uLmo7dkYoaCxuZXcgeGcodixXLEQsYiksbmV3IHhnKGssVyxELGIpKTtuNihuKXx8bi5OLnlPKG4uTi5TVygpKTtyZXR1cm4gaH07CmVnMT1mdW5jdGlvbihuKXtyZXR1cm4gZTQoKFcsRCk9Pmcuc3ooVyxELDQsMUUzKSxuLHtmb3JtYXQ6IlJBVyIsCm1ldGhvZDoiR0VUIix3aXRoQ3JlZGVudGlhbHM6ITB9KX07CmcuZ3Q9ZnVuY3Rpb24obil7dmFyIFc7bi5yZXNwb25zZVR5cGUmJm4ucmVzcG9uc2VUeXBlIT09InRleHQiP24ucmVzcG9uc2VUeXBlPT09ImFycmF5YnVmZmVyIiYmKFc9cFIobmV3IFVpbnQ4QXJyYXkobi5yZXNwb25zZSkpKTpXPW4ucmVzcG9uc2VUZXh0O3JldHVybiFXfHxXLmxlbmd0aD4yMDQ4PyIiOlcuaW5kZXhPZigiaHR0cHM6Ly8iKT09PTA/VzoiIn07CmU0PWZ1bmN0aW9uKG4sVyxEKXtXLm1hdGNoKGdHcik7cmV0dXJuIG4oVyxEKS50aGVuKGI9Pnt2YXIgdj1nLmd0KGIueGhyKTtyZXR1cm4gdj9lNChuLHYsRCk6Yi54aHJ9KX07ClhKaT1mdW5jdGlvbihuLFcsRCl7aWYoIW4/LldjKCkpcmV0dXJuITE7dmFyIGI9Vy5zb21lKGg9PmgucHJvamVjdGlvblR5cGU9PT0iRVFVSVJFQ1RBTkdVTEFSInx8aC5wcm9qZWN0aW9uVHlwZT09PSJFUVVJUkVDVEFOR1VMQVJfVEhSRUVEX1RPUF9CT1RUT00iKSx2PVcuc29tZShoPT5oLnByb2plY3Rpb25UeXBlPT09Ik1FU0giKSxrPVcuc29tZShoPT5oLnN0ZXJlb0xheW91dD09PTEpOwpXPVcuc29tZShoPT5oLmlzSGRyKCkpOwpuPSFEJiYhVyYmbi5TKCJlbmFibGVfd2ViZ2xfbm9vcCIpO3JldHVybiBifHx2fHxrfHxufTsKcXo9ZnVuY3Rpb24obixXLEQsYil7aWYoWEppKG4sVyxEKSlyZXR1cm4hMDtpZighbj8udE0oKXx8IVh2KG4sYikpcmV0dXJuITE7bj1XLnNvbWUodj0+di5pc0hkcigpKTsKcmV0dXJuIER8fG4/ITE6ITB9OwpxdWo9ZnVuY3Rpb24obil7cmV0dXJuIGcub00obixXPT4iRk9STUFUX1NUUkVBTV9UWVBFX09URiI9PT1XLnR5cGUpPyJGT1JNQVRfU1RSRUFNX1RZUEVfT1RGIjoiRk9STUFUX1NUUkVBTV9UWVBFX1VOS05PV04ifTsKRzNDPWZ1bmN0aW9uKG4sVyxEPTAsYix2KXt2YXIgaz1uZXcgZy5HeCgiIixiLmV4cGVyaW1lbnRzLCExKTtrLmR1cmF0aW9uPUR8fDA7Zm9yKGxldCBoIG9mIG4pe249dFooaCxXLGsuZHVyYXRpb24sYix2KTtsZXQge0VsOngsczpMLHk3OmV9PVAwKDE1LDcwMCxoKTsoRD1SeCh4fHxoLnVybHx8IiIsZSxMKSkmJihuLnN0cmVhbVR5cGU9PT0iRk9STUFUX1NUUkVBTV9UWVBFX09URiI/JGcoayxuZXcgcnQoRCxuKSk6JGcoayxuZXcgc2soRCxuLERKKGguaW5pdFJhbmdlKSxESihoLmluZGV4UmFuZ2UpKSkpfWsuaXNPdGY9ITA7cmV0dXJuIGt9Owp0T1o9ZnVuY3Rpb24obixXLEQ9MCxiLHYpe3ZhciBrPW5ldyBnLkd4KCIiLGIuZXhwZXJpbWVudHMsITEpO2suZHVyYXRpb249RHx8MDtmb3IobGV0IGggb2Ygbil7bj10WihoLFcsay5kdXJhdGlvbixiLHYpO0Q9REooaC5pbml0UmFuZ2UpO2xldCB4PURKKGguaW5kZXhSYW5nZSkse0VsOkwsczplLHk3Okd9PVAwKDEzLDcwMixoKSxyPVJ4KEx8fGgudXJsfHwiIixHLGUpO3ImJiRnKGssbmV3IHNrKHIsbixELHgpKX1yZXR1cm4ga307CnRaPWZ1bmN0aW9uKG4sVyxEPTAsYix2KXt2YXIgaz1uLm1pbWVUeXBlfHwiIixoPW4uaXRhZzt2YXIgeD1uLnh0YWdzO2g9aD9oLnRvU3RyaW5nKCk6IiI7eCYmKGgrPWA7JHt4fWApO3g9aDtpZihTRyhrKSl7dmFyIEw9bi53aWR0aHx8NjQwO2g9bi5oZWlnaHR8fDM2MDtsZXQgeT1uLmZwcyxUPW4ucXVhbGl0eUxhYmVsLHo9bi5xdWFsaXR5T3JkaW5hbCxDPW4uY29sb3JJbmZvLFE9bi5wcm9qZWN0aW9uVHlwZTt2YXIgZTtuLnN0ZXJlb0xheW91dCYmKGU9JDh4W24uc3RlcmVvTGF5b3V0XSk7bGV0IFY9TiQobil8fHZvaWQgMDt2YXIgRztDPy5wcmltYXJpZXMmJihHPXIkeFtDLnByaW1hcmllc118fHZvaWQgMCk7TD1uZXcgSFIoTCxoLHksUSxlLHZvaWQgMCxULHomJk56W3pdLFYsRywobi52aWRlb1RyYWNrPy5hc3NvY2lhdGVkQXVkaW9UcmFja0lkPy5sZW5ndGg/PzApPT09MCk7az1wNihrLEwsWWdbbi5pdGFnfHwiIl0pO0hGJiYoays9IjsgZW5hYmxlZmx1c2hkdXJpbmdzZWVrPXRydWUiKTsKZjYmJihrKz0iOyBlbmFibGVyZXNldGF1ZGlvZGVjb2Rlcj10cnVlIik7cXooYixbTF0sVyx2KSYmKGsrPSI7IGRlY29kZS10by10ZXh0dXJlPXRydWUiKX12YXIgcjtpZihJZChrKSl7dmFyIE49bi5hdWRpb1NhbXBsZVJhdGU7Yj1uLmF1ZGlvVHJhY2s7Tj1uZXcgQU0oTj8rTjp2b2lkIDAsbi5hdWRpb0NoYW5uZWxzLG4uc3BhdGlhbEF1ZGlvVHlwZSxuLmlzRHJjLG4ubG91ZG5lc3NEYixuLnRyYWNrQWJzb2x1dGVMb3VkbmVzc0xrZnMsbi5hdWRpb1F1YWxpdHl8fCJBVURJT19RVUFMSVRZX1VOS05PV04iLG4uaXNWYik7YiYmKHY9Yi5kaXNwbGF5TmFtZSxlPWIuaWQsRz1iLmF1ZGlvSXNEZWZhdWx0LGI9Yi5pc0F1dG9EdWJiZWQsdiYmKHI9bmV3IHdQKHYsZXx8IiIsISFHLCEhYikpKX12YXIgSDtuLmNhcHRpb25UcmFjayYmKGI9bi5jYXB0aW9uVHJhY2suZGlzcGxheU5hbWUsdj1uLmNhcHRpb25UcmFjay52c3NJZCxlPW4uY2FwdGlvblRyYWNrLmxhbmd1YWdlQ29kZSxHPW4uY2FwdGlvblRyYWNrLmtpbmQsCmg9bi5jYXB0aW9uVHJhY2suaWQsYiYmdiYmZSYmKEg9bmV3IEtNKGIsdixlLEcsbi54dGFncyxoKSkpO2I9TnVtYmVyKG4uYml0cmF0ZSkvODt2PU51bWJlcihuLmNvbnRlbnRMZW5ndGgpO2U9TnVtYmVyKG4ubGFzdE1vZGlmaWVkKTtoPW4uZHJtRmFtaWxpZXM7Rz1uLnR5cGU7bj1OdW1iZXIobi5hcHByb3hEdXJhdGlvbk1zKTtpZihXJiZoKXt2YXIgQT17fTtmb3IobGV0IHkgb2YgaCkoaD1KWlt5XSkmJihBW2hdPVdbaF0pfXJldHVybiBuZXcgbXUoeCxrLHthdWRpbzpOLHZpZGVvOkwsa1o6cixjb250ZW50UHJvdGVjdGlvbjpBLE5zOmIsWG46RCYmdj92L0Q6MCxjb250ZW50TGVuZ3RoOnYsbGFzdE1vZGlmaWVkOmUsY2FwdGlvblRyYWNrOkgsc3RyZWFtVHlwZTpHLGFwcHJveER1cmF0aW9uTXM6bn0pfTsKczVVPWZ1bmN0aW9uKG4pe3JldHVybiBnLm9NKG4sVz0+IkZPUk1BVF9TVFJFQU1fVFlQRV9PVEYiPT09Vy5zdHJlYW1fdHlwZSk/IkZPUk1BVF9TVFJFQU1fVFlQRV9PVEYiOiJGT1JNQVRfU1RSRUFNX1RZUEVfVU5LTk9XTiJ9OwpOcGo9ZnVuY3Rpb24obixXLEQ9MCxiLHYpe3ZhciBrPW5ldyBnLkd4KCIiLGI/LmV4cGVyaW1lbnRzLCExKTtrLmR1cmF0aW9uPUR8fDA7Zm9yKGxldCBoIG9mIG4paWYobj1JbyhoLFcsay5kdXJhdGlvbixiLHYpLEQ9UngoaC51cmwsaC5zcCxoLnMpKWlmKG4uc3RyZWFtVHlwZT09PSJGT1JNQVRfU1RSRUFNX1RZUEVfT1RGIikkZyhrLG5ldyBydChELG4pKTtlbHNle2xldCB4PW56KGguaW5pdCksTD1ueihoLmluZGV4KTskZyhrLG5ldyBzayhELG4seCxMKSl9ay5pc090Zj0hMDtyZXR1cm4ga307CnBKYj1mdW5jdGlvbihuLFcsRD0wLGIsdil7dmFyIGs9bmV3IGcuR3goIiIsYj8uZXhwZXJpbWVudHMsITEpO2suZHVyYXRpb249RHx8MDtmb3IobGV0IGggb2Ygbil7bj1JbyhoLFcsay5kdXJhdGlvbixiLHYpO0Q9bnooaC5pbml0KTtsZXQgeD1ueihoLmluZGV4KSxMPVJ4KGgudXJsLGguc3AsaC5zKTtMJiYkZyhrLG5ldyBzayhMLG4sRCx4KSl9cmV0dXJuIGt9OwpJbz1mdW5jdGlvbihuLFcsRD0wLGIsdil7dmFyIGs9bi50eXBlO3ZhciBoPW4uaXRhZzt2YXIgeD1uLnh0YWdzO3gmJihoPW4uaXRhZysiOyIreCk7aWYoU0coaykpe3ZhciBMPShuLnNpemV8fCI2NDB4MzYwIikuc3BsaXQoIngiKTtMPW5ldyBIUigrTFswXSwrTFsxXSwrbi5mcHMsbi5wcm9qZWN0aW9uX3R5cGUsK24uc3RlcmVvX2xheW91dCx2b2lkIDAsbi5xdWFsaXR5X2xhYmVsLCtuLnF1YWxpdHlfb3JkaW5hbCxuLmVvdGYsbi5wcmltYXJpZXMsIW4udmlkZW9fdHJhY2tfYXNzb2NpYXRlZF9hdWRpb190cmFja19pZCk7az1wNihrLEwsWWdbbi5pdGFnXSk7SEYmJihrKz0iOyBlbmFibGVmbHVzaGR1cmluZ3NlZWs9dHJ1ZSIpO2Y2JiYoays9IjsgZW5hYmxlcmVzZXRhdWRpb2RlY29kZXI9dHJ1ZSIpO3F6KGIsW0xdLFcsdikmJihrKz0iOyBkZWNvZGUtdG8tdGV4dHVyZT10cnVlIil9dmFyIGU7aWYoSWQoaykpe3ZhciBHPW5ldyBBTSgrbi5hdWRpb19zYW1wbGVfcmF0ZXx8dm9pZCAwLAorbi5hdWRpb19jaGFubmVsc3x8MCxuLnNwYXRpYWxfYXVkaW9fdHlwZSwhIW4uZHJjKTtuLm5hbWUmJihlPW5ldyB3UChuLm5hbWUsbi5hdWRpb190cmFja19pZCxuLmlzRGVmYXVsdD09PSIxIixuLmlzQXV0b0R1YmJlZD09PSIxIikpfXZhciByO24uY2FwdGlvbl9kaXNwbGF5X25hbWUmJm4uY2FwdGlvbl92c3NfaWQmJm4uY2FwdGlvbl9sYW5ndWFnZV9jb2RlJiYocj1uZXcgS00obi5jYXB0aW9uX2Rpc3BsYXlfbmFtZSxuLmNhcHRpb25fdnNzX2lkLG4uY2FwdGlvbl9sYW5ndWFnZV9jb2RlLG4uY2FwdGlvbl9raW5kLG4ueHRhZ3Msbi5jYXB0aW9uX2lkKSk7Yj1OdW1iZXIobi5iaXRyYXRlKS84O3Y9TnVtYmVyKG4uY2xlbik7eD1OdW1iZXIobi5sbXQpO0Q9RCYmdj92L0Q6MDtpZihXJiZuLmRybV9mYW1pbGllcyl7dmFyIE49e307Zm9yKGxldCBIIG9mIG4uZHJtX2ZhbWlsaWVzLnNwbGl0KCIsIikpTltIXT1XW0hdfXJldHVybiBuZXcgbXUoaCxrLHthdWRpbzpHLHZpZGVvOkwsCmtaOmUsY29udGVudFByb3RlY3Rpb246TixOczpiLFhuOkQsY29udGVudExlbmd0aDp2LGxhc3RNb2RpZmllZDp4LGNhcHRpb25UcmFjazpyLHN0cmVhbVR5cGU6bi5zdHJlYW1fdHlwZSxhcHByb3hEdXJhdGlvbk1zOk51bWJlcihuLmFwcHJveF9kdXJhdGlvbl9tcyl9KX07Cll1aD1mdW5jdGlvbihuKXtzd2l0Y2gobil7Y2FzZSAiZXF1aXJlY3Rhbmd1bGFyIjpyZXR1cm4iRVFVSVJFQ1RBTkdVTEFSIjtjYXNlICJlcXVpcmVjdGFuZ3VsYXJfdGhyZWVkX3RvcF9ib3R0b20iOnJldHVybiJFUVVJUkVDVEFOR1VMQVJfVEhSRUVEX1RPUF9CT1RUT00iO2Nhc2UgIm1lc2giOnJldHVybiJNRVNIIjtjYXNlICJyZWN0YW5ndWxhciI6cmV0dXJuIlJFQ1RBTkdVTEFSIjtkZWZhdWx0OnJldHVybiJVTktOT1dOIn19OwpIcWg9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgInNwYXRpYWxfYXVkaW9fdHlwZV9hbWJpc29uaWNzXzVfMSI6cmV0dXJuIlNQQVRJQUxfQVVESU9fVFlQRV9BTUJJU09OSUNTXzVfMSI7Y2FzZSAic3BhdGlhbF9hdWRpb190eXBlX2FtYmlzb25pY3NfcXVhZCI6cmV0dXJuIlNQQVRJQUxfQVVESU9fVFlQRV9BTUJJU09OSUNTX1FVQUQiO2Nhc2UgInNwYXRpYWxfYXVkaW9fdHlwZV9mb2Ffd2l0aF9ub25fZGllZ2V0aWMiOnJldHVybiJTUEFUSUFMX0FVRElPX1RZUEVfRk9BX1dJVEhfTk9OX0RJRUdFVElDIjtkZWZhdWx0OnJldHVybiJTUEFUSUFMX0FVRElPX1RZUEVfTk9ORSJ9fTsKZnRaPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gUzQobmV3IGcuR3gobixXLEQpLG4pfTsKR189ZnVuY3Rpb24obil7cmV0dXJuIGcuRGwobi5OLFc9PmdaKDI0LDExNjQsVy5YYi5OKSl9OwpmRHc9ZnVuY3Rpb24obil7cmV0dXJuIGcuRGwobi5OLFc9PiEhVy5pbmZvLnZpZGVvJiZXLmluZm8udmlkZW8uaXNIZHIoKSl9OwokZz1mdW5jdGlvbihuLFcpe24uTltXLmluZm8uaWRdPVc7bi5KLnNldChjdyhXLG4uelcpLFcpfTsKUzQ9ZnVuY3Rpb24obixXPSIiKXtuLnN0YXRlPTE7bi5TJD0oMCxnLlIpKCk7cmV0dXJuIGVnMShXfHxuLnNvdXJjZVVybCkudGhlbihEPT57aWYoIW4ucU4oKSl7bi5sTj1ELnN0YXR1cztEPUQucmVzcG9uc2VUZXh0O2xldCB2PW5ldyBET01QYXJzZXI7RD1nLmdUKHYsZy5IVihEKSwidGV4dC94bWwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiTVBEIilbMF07bi5jSj1qeChsVChELCJtaW5pbXVtVXBkYXRlUGVyaW9kIikpKjFFM3x8SW5maW5pdHk7Yjp7aWYoRC5hdHRyaWJ1dGVzKWZvcihiIG9mIEQuYXR0cmlidXRlcylpZihiLnZhbHVlPT09Imh0dHA6Ly95b3V0dWJlLmNvbS95dC8yMDEyLzEwLzEwIil7dmFyIGI9Yi5uYW1lLnNwbGl0KCI6IilbMV07YnJlYWsgYn1iPSIifW4uaj1iO24uaXNMaXZlPW4uY0o8SW5maW5pdHkmJm4uaXNMaXZlUGxheWJhY2s7bi5ISj1OdW1iZXIobFQoRCxuLmorIjplYXJsaWVzdE1lZGlhU2VxdWVuY2UiKSl8fDA7aWYoYj1EYXRlLnBhcnNlKEN6KGxUKEQsCm4uaisiOm1wZFJlc3BvbnNlVGltZSIpKSkpbi5lJD0oKDAsZy5SKSgpLWIpLzFFMztuLmlzTGl2ZSYmRC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU2VnbWVudFRpbWVsaW5lIikubGVuZ3RoPD0wfHxnLmR6KEQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlBlcmlvZCIpLG4ueUUsbik7bi5zdGF0ZT0yO24uV0ooImxvYWRlZCIpO0FaKG4pfXJldHVybiBufSkuc1AoRD0+e2lmKEQgaW5zdGFuY2VvZiBnLiRUKXt2YXIgYj1ELnhocjsKbi5sTj1iLnN0YXR1c31uLnN0YXRlPTM7bi5XSigibG9hZGVycm9yIik7cmV0dXJuIGcucnAoYil9KX07CmcubUg9ZnVuY3Rpb24obil7cmV0dXJuIGcuRGwobi5OLFc9PlcuaW5mby5OKCkpfTsKSzY9ZnVuY3Rpb24obil7cmV0dXJuIGcuRGwobi5OLFc9PlcuaW5mby52aWRlbz9XLmluZm8udmlkZW8ucHJvamVjdGlvblR5cGU9PT0iRVFVSVJFQ1RBTkdVTEFSIjohMSl9OwpPaz1mdW5jdGlvbihuKXtyZXR1cm4gZy5EbChuLk4sVz0+Vy5pbmZvLnZpZGVvP1cuaW5mby52aWRlby5wcm9qZWN0aW9uVHlwZT09PSJFUVVJUkVDVEFOR1VMQVJfVEhSRUVEX1RPUF9CT1RUT00iOiExKX07ClBGPWZ1bmN0aW9uKG4pe3JldHVybiBnLkRsKG4uTixXPT5XLmluZm8udmlkZW8/Vy5pbmZvLnZpZGVvLnByb2plY3Rpb25UeXBlPT09Ik1FU0giOiExKX07CkokVT1mdW5jdGlvbihuKXtyZXR1cm4gZy5EbChuLk4sVz0+Vy5pbmZvLnZpZGVvP1cuaW5mby52aWRlby5zdGVyZW9MYXlvdXQ9PT0xOiExKX07Ckl0aT1mdW5jdGlvbihuKXtyZXR1cm4gZy5iayhuLk4sVz0+Vy5pbmZvLnZpZGVvP1cubnUoKTohMCl9OwpaSD1mdW5jdGlvbihuLFcsRCl7Vz1nLlZmKFcuaW5mbyxuLnpXKTtpZihEKXtsZXQgYj1Nayh7aXRhZzpXLml0YWcsbG10Om4uelc/MDpXLmxtdHx8MCx4dGFnczpXLnh0YWdzfSk7aWYobi52SltiXSlyZXR1cm47bi52SltiXT1EfW4uR0MucHVzaChXKX07CnlDPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bFQoVywiaWQiKTtEPUQucmVwbGFjZSgiOiIsIjsiKTt2YXIgYj1sVChXLCJtaW1lVHlwZSIpLHY9bFQoVywiY29kZWNzIik7Yj12P2Ake2J9OyBjb2RlY3M9IiR7dn0iYDpiO3Y9TnVtYmVyKGxUKFcsImJhbmR3aWR0aCIpKS84O3ZhciBrPU51bWJlcihUUChXLCJCYXNlVVJMIikuZ2V0QXR0cmlidXRlKG4uaisiOmNvbnRlbnRMZW5ndGgiKSksaD1uLmR1cmF0aW9uJiZrP2svbi5kdXJhdGlvbjowO2lmKFNHKGIpKXt2YXIgeD1OdW1iZXIobFQoVywid2lkdGgiKSksTD1OdW1iZXIobFQoVywiaGVpZ2h0IikpLGU9TnVtYmVyKGxUKFcsImZyYW1lUmF0ZSIpKTtsZXQgQT1ZdWgobFQoVyxuLmorIjpwcm9qZWN0aW9uVHlwZSIpKTthOnN3aXRjaChsVChXLG4uaisiOnN0ZXJlb0xheW91dCIpKXtjYXNlICJsYXlvdXRfbGVmdF9yaWdodCI6dmFyIEc9MTticmVhayBhO2Nhc2UgImxheW91dF90b3BfYm90dG9tIjpHPTI7YnJlYWsgYTtkZWZhdWx0Okc9CjB9Rz1uZXcgSFIoeCxMLGUsQSxHKX1pZihJZChiKSl7dmFyIHI9TnVtYmVyKGxUKFcsImF1ZGlvU2FtcGxpbmdSYXRlIikpO3ZhciBOPU51bWJlcihsVChXLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJBdWRpb0NoYW5uZWxDb25maWd1cmF0aW9uIilbMF0sInZhbHVlIikpO3g9SHFoKGxUKFcsbi5qKyI6c3BhdGlhbEF1ZGlvVHlwZSIpKTtyPW5ldyBBTShyLE4seCk7YTp7TD1sVChXLCJsYW5nIil8fCJ1bmQiO2lmKE49VFAoVywiUm9sZSIpKWlmKGU9bFQoTiwidmFsdWUiKXx8IiIsZy5lcChVayxlKSl7Tj1gJHtMfS4ke1VrW2VdfWA7eD1lPT09Im1haW4iO249bFQoVyxuLmorIjpsYW5nTmFtZSIpfHxgJHtMfSAtICR7ZX1gO049bmV3IHdQKG4sTix4KTticmVhayBhfU49dm9pZCAwfX1pZihXPVRQKFcsIkNvbnRlbnRQcm90ZWN0aW9uIikpaWYoVy5nZXRBdHRyaWJ1dGUoInNjaGVtZUlkVXJpIik9PT0iaHR0cDovL3lvdXR1YmUuY29tL2RybS8yMDEyLzEwLzEwIil7dmFyIEg9e307Zm9yKFc9ClcuZmlyc3RDaGlsZDtXIT1udWxsO1c9Vy5uZXh0U2libGluZyl7aWYoIShXIGluc3RhbmNlb2YgRWxlbWVudCkpY29udGludWU7aWYoIS9TeXN0ZW1VUkwvLnRlc3QoVy5ub2RlTmFtZSkpY29udGludWU7bj1XLmdldEF0dHJpYnV0ZSgidHlwZSIpO3g9Vy50ZXh0Q29udGVudDtuJiZ4JiYoSFtuXT14LnRyaW0oKSl9fWVsc2UgSD12b2lkIDA7cmV0dXJuIG5ldyBtdShELGIse2F1ZGlvOnIsdmlkZW86RyxrWjpOLGNvbnRlbnRQcm90ZWN0aW9uOkgsTnM6dixYbjpoLGNvbnRlbnRMZW5ndGg6a30pfTsKQVo9ZnVuY3Rpb24obil7dmFyIFc9bi5jSjtpc0Zpbml0ZShXKSYmKEVrKG4pP24ucmVmcmVzaCgpOihXPU1hdGgubWF4KDAsbi5TJCtXLSgwLGcuUikoKSksbi5LfHwobi5LPW5ldyBnLmZfKG4ucmVmcmVzaCxXLG4pLGcudShuLG4uSykpLG4uSy5zdGFydChXKSkpfTsKdmFyIFN1eD1mdW5jdGlvbihuLFcsRCxiLHYsayxoLHgsTCxlKXtyZXR1cm4gTTNbSVsxMF1dKHRoaXMsNCwxNjk5LG4sVyxELGIsdixrLGgseCxMLGUpfTsKRWs9ZnVuY3Rpb24obil7cmV0dXJuIG4uaXNMaXZlJiYoMCxnLlIpKCktbi5TJD49bi5jSn07CkEkaT1mdW5jdGlvbihuKXtuPW4uTjtmb3IobGV0IFcgaW4gbil7bGV0IEQ9bltXXS5pbmRleDtpZihELmlzTG9hZGVkKCkpcmV0dXJuIEQueCQoKSsxfXJldHVybiAwfTsKaUE9ZnVuY3Rpb24obil7cmV0dXJuIG4ub1I/bi5vUi0obi5EfHxuLnRpbWVzdGFtcE9mZnNldCk6MH07CnVBPWZ1bmN0aW9uKG4pe3JldHVybiBuLkpVP24uSlUtKG4uRHx8bi50aW1lc3RhbXBPZmZzZXQpOjB9Owpvbz1mdW5jdGlvbihuKXtpZighaXNOYU4obi5UQykpcmV0dXJuIG4uVEM7dmFyIFc9bi5OO2Zvcih2YXIgRCBpbiBXKXt2YXIgYj1XW0RdLmluZGV4O2lmKGIuaXNMb2FkZWQoKSYmIVdbRF0uaW5mby5OKCkpe1c9MDtmb3IoRD1iLlpPKCk7RDw9Yi54JCgpO0QrKylXKz1iLmdldER1cmF0aW9uKEQpO1cvPWIuSDcoKTtXPU1hdGgucm91bmQoVy8uNSkqLjU7Yi5INygpPjEwJiYobi5UQz1XKTtyZXR1cm4gV31pZihuLmlzTGl2ZSYmKGI9V1tEXSxiLnJiKSlyZXR1cm4gYi5yYn1yZXR1cm4gTmFOfTsKbTh0PWZ1bmN0aW9uKG4sVyl7bj1xYyhuLk4sYj0+Yi5pbmRleC5pc0xvYWRlZCgpKTsKaWYoIW4pcmV0dXJuIE5hTjtuPW4uaW5kZXg7dmFyIEQ9bi5SMyhXKTtyZXR1cm4gbi5nZXRTdGFydFRpbWUoRCk9PT1XP1c6RDxuLngkKCk/bi5nZXRTdGFydFRpbWUoRCsxKTpOYU59Owp6eD1mdW5jdGlvbihuLFcpe2lmKCFuLk5bIjAiXSl7dmFyIEQ9bmV3IG11KCIwIiwiZmFrZXNiIix7dmlkZW86bmV3IEhSKDAsMCwwLHZvaWQgMCx2b2lkIDAsImF1dG8iKX0pO24uTlsiMCJdPVc/bmV3IGR0KG5ldyBnLndaKCJodHRwOi8vd3d3LnlvdXR1YmUuY29tL3ZpZGVvcGxheWJhY2siKSxELCJmYWtlIik6bmV3IHNrKG5ldyBnLndaKCJodHRwOi8vd3d3LnlvdXR1YmUuY29tL3ZpZGVvcGxheWJhY2siKSxELG5ldyBhQigwLDApLG5ldyBhQigwLDApKX19OwpnLmxBPWZ1bmN0aW9uKG4pe2lmKG4uaXNNYW5pZmVzdGxlc3MpZm9yKGxldCBXIGluIG4uTiluLk5bV10uaW5kZXguc2VnbWVudHM9W119OwpUeD1mdW5jdGlvbihuLFcsRCl7Zm9yKGxldCBiIGluIG4uTil7bGV0IHY9bi5OW2JdLmluZm8uTigpfHxuLk5bYl0uaW5mby5mWSgpO0Q9PT12JiZuLk5bYl0uaW5kZXg/Lk8oVyl9fTsKajQ9ZnVuY3Rpb24obil7Zm9yKGxldCBXIGluIG4uTiluLk5bV10uaW5mby5OKCl8fFBBKG4uTltXXS5pbmRleCxJbmZpbml0eSl9OwpDNj1mdW5jdGlvbihuLFcsRCl7Zm9yKGxldCBoIGluIG4uTil7dmFyIGI9bi5OW2hdLmluZGV4LHY9VyxrPUQ7Yi5PVCYmKHYmJihiLnFxPU1hdGgubWF4KGIucXEsdikpLGsmJihiLkRuPU1hdGgubWF4KGIuRG58fDAsaykpKX1EJiYobi50dz1ELzFFMyl9OwpCRj1mdW5jdGlvbihuLFcsRCxiPSExKXtiJiZEPT09bi5QWHx8KG4uYmQucHVzaChXKSxuLlBYPUQsbi5XSigiY3VlcG9pbnRzYWRkZWQiLEQpKX07CktLdD1mdW5jdGlvbihuKXtuLkpVPTA7bi5vUj0wO24uSVQ9MH07CkZ2PWZ1bmN0aW9uKG4pe3JldHVybiBuLlZRJiZuLmlzTWFuaWZlc3RsZXNzP24uaXNMaXZlSGVhZFBsYXlhYmxlOm4uaXNMaXZlfTsKcDY9ZnVuY3Rpb24obixXLEQpe3d0PT09bnVsbCYmKHd0PXdpbmRvdy5NZWRpYVNvdXJjZSYmTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkJiZNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoJ3ZpZGVvL3dlYm07IGNvZGVjcz0idnAwOS4wMi41MS4xMC4wMS4wOS4xNi4wOS4wMCInKSYmIU1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgndmlkZW8vd2VibTsgY29kZWNzPSJ2cDA5LjAyLjUxLjEwLjAxLjA5Ljk5Ljk5LjAwIicpKTtpZihNeiYmd2luZG93Lk1lZGlhU291cmNlJiZNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQhPT12b2lkIDApcmV0dXJuIHd0fHxEIT09IjkiJiZEIT09IigiP3d0fHxEIT09IjloIiYmRCE9PSIoaCJ8fChuPSd2aWRlby93ZWJtOyBjb2RlY3M9InZwOS4yIicpOm49J3ZpZGVvL3dlYm07IGNvZGVjcz0idnA5IicsbjtpZighd3QmJiFSb3x8biE9PSd2aWRlby93ZWJtOyBjb2RlY3M9InZwOSInJiZuIT09J3ZpZGVvL3dlYm07IGNvZGVjcz0idnA5LjIiJylyZXR1cm4gbjsKRD0iMDAiO3ZhciBiPSIwOCIsdj0iMDEiLGs9IjAxIixoPSIwMSI7bj09PSd2aWRlby93ZWJtOyBjb2RlY3M9InZwOS4yIicmJihEPSIwMiIsYj0iMTAiLFcucHJpbWFyaWVzPT09ImJ0MjAyMCImJihoPXY9IjA5IiksVy5OPT09InNtcHRlMjA4NCImJihrPSIxNiIpLFcuTj09PSJhcmliLXN0ZC1iNjciJiYoaz0iMTgiKSk7cmV0dXJuYHZpZGVvL3dlYm07IGNvZGVjcz0iJHtbInZwMDkiLEQsIjUxIixiLCIwMSIsdixrLGgsIjAwIl0uam9pbigiLiIpfSJgfTsKVkM9ZnVuY3Rpb24obixXLEQpe249YCR7bn0ke1c+NDk/InA2MCI6Vz4zMj8icDQ4IjoiIn1gO1c9ZjcoKVtuXTtpZihXIT1udWxsJiZXPjApcmV0dXJuIFc7Vz1RQy5nZXQobik7aWYoVyE9bnVsbCYmVz4wKXJldHVybiBXO0Q9RD8uZ2V0KG4pO3JldHVybiBEIT1udWxsJiZEPjA/RDo4MTkyfTsKT3F4PWZ1bmN0aW9uKG4sVz0hMSl7UWh3KFcpO1ZwQyhXKTtpZihXKXtmb3IobGV0IEQgb2YgUUMua2V5cygpKUQuc3RhcnRzV2l0aCgiMSIpfHxRQy5kZWxldGUoRCk7Zm9yKGxldCBEIG9mIGNGLnZhbHVlcygpKUQuc3RhcnRzV2l0aCgiMSIpfHxjRi5kZWxldGUoRCk7Zm9yKGxldCBEIG9mIG4ua2V5cygpKUQuc3RhcnRzV2l0aCgiMSIpfHxuLmRlbGV0ZShEKX1lbHNlIFFDLmNsZWFyKCksY0YuY2xlYXIoKSxuLmNsZWFyKCl9OwpVOFo9ZnVuY3Rpb24obix7aXNPdGY6VyxtVjpELHlYOmIsSVI6dixPdzprLEhpOmgsbFU6eCxvTDpMLHhkOmUsZGlzYWJsZUF2MTpHLGRCOnJ9KXt2YXIgTj1uZXcgUGVNKG4pO2lmKG4uV1goKXx8bi5TKCJodG1sNV9sb2dnaW5nX2Zvcm1hdF9zZWxlY3Rpb24iKSlOLlc9ITA7Ti5HQz1rO04uSGk9aCYmbi5LO04ueGQ9ZTtnLnViKCJ3aW5kb3dzIG50IDUuMSIpJiYhZy5hbyYmKE4uYnY9ITApO2lmKGs9RClrPWcubk4obik/WnFTKG4pOiExO2smJihOLmNKPSEwKTt4JiYoTi5idj0hMCxOLk5kPSEwKTtXJiYhbi5TKCJodG1sNV9vdGZfcHJlZmVyX3ZwOSIpJiYoTi5idj0hMCk7bi5wbGF5ZXJTdHlsZT09PSJwaWNhc2F3ZWIiJiYoVyYmKE4uYnY9ITEpLE4udHc9ITEpO3YmJihOLmJ2PSEwKTtTSihuLlcsQVQuQ0hBTk5FTFMpJiYobi5TKCJodG1sNV9lbmFibGVfYWMzIikmJihOLmo9ITApLG4uUygiaHRtbDVfZW5hYmxlX2VhYzMiKSYmKE4uVj0hMCksbi5TKCJodG1sNV9lbmFibGVfYWMzX2dhcGxlc3MiKSYmCihOLkhKPSEwKSk7bi5TKCJodG1sNV9ibG9ja184a19oZnIiKSYmKE4uUFg9ITApO04uSz1nLmRNKG4uZXhwZXJpbWVudHMsImh0bWw1X21heF9zZWxlY3RhYmxlX3F1YWxpdHlfb3JkaW5hbCIpO04uWT1nLmRNKG4uZXhwZXJpbWVudHMsImh0bWw1X21pbl9zZWxlY3RhYmxlX3F1YWxpdHlfb3JkaW5hbCIpO2cuV1gmJihOLndhPTQ4MCk7aWYoYnx8RClOLnR3PSExO04uQ3U9ITE7Ti5kaXNhYmxlQXYxPUc7Ti5KPW4uUygiaHRtbDVfbG9nX25vX2F2MV9yZWFzb24iKTtXPURLKG4sTi5OLHZvaWQgMCxOLmRpc2FibGVBdjEpO1c+MCYmVzwyMTYwJiYoVlQoKXx8bi5TKCJodG1sNV9mb3JtYXRfaHlicmlkaXphdGlvbiIpKSYmKE4uTi5zdXBwb3J0c0NoYW5nZVR5cGU9K1ZUKCksTi5uUz1XKTtXPj0yMTYwJiYoTi5lJD0hMCk7Ti5vTD1MO04uRkY9Zy5SZ3x8YzAoKSYmIUw/ITE6ITA7Ti5EPW4uUygiaHRtbDVfZm9ybWF0X2h5YnJpZGl6YXRpb24iKTtOLkJWPW4uUygiaHRtbDVfZGlzYWJsZV9lbmNyeXB0ZWRfdnA5X2xpdmVfbm9uXzJrXzRrIik7Ck4ualc9cjtyZXR1cm4gTn07CkRLPWZ1bmN0aW9uKG4sVz17fSxELGI9ITEpe2lmKGIpcmV0dXJuIFcuZGlzYWJsZWQ9MSwwO2lmKFNKKG4uVyxBVC5BVjFfQ09ERUNTKSYmU0oobi5XLEFULkhFSUdIVCkmJlNKKG4uVyxBVC5CSVRSQVRFKSlyZXR1cm4gVy5pc0NhcGFiaWxpdHlVc2FibGU9MSw4MTkyO2I9MTA4MDt2YXIgdj1uYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeTt2PD0yJiYoYj00ODApO1cuY29yZUNvdW50PXY7aWYodj1nLmRNKG4uZXhwZXJpbWVudHMsImh0bWw1X2RlZmF1bHRfYXYxX3RocmVzaG9sZCIpKWI9V1siZGVmYXVsdCJdPXY7aWYodj1uLlcuY0opVy5tY2FwPXYsYj1NYXRoLm1heChiLHYpO2lmKEQpe2lmKHY9RC52aWRlb0luZm9zLmZpbmQoaD0+aC5NVygpKT8uaj8ucG93ZXJFZmZpY2llbnQpYj04MTkyLFcuaXNFZmZpY2llbnQ9MTsKRD1ELnZpZGVvSW5mb3NbMF0udmlkZW87bGV0IGs9TWF0aC5taW4oVkMoIjEiLEQuZnBzKSxWQygiMSIsMzApKTtXLnBlcmZDYXA9aztiPU1hdGgubWluKGIsayk7IUQuaXNIZHIoKXx8dnx8bi5adCgpLk4uUVEoeSRqKXx8KFcuaGRyPTEsYio9Ljc1KX1lbHNlIG49VkMoIjEiLDMwKSxXLnBlcmZDYXAzMD1uLGI9TWF0aC5taW4oYixuKSxuPVZDKCIxIiw2MCksVy5wZXJmQ2FwNjA9bixiPU1hdGgubWluKGIsbik7cmV0dXJuIFcuYXYxVGhyZXNob2xkPWJ9OwpySGk9ZnVuY3Rpb24obil7dmFyIFc9WyJvIiwiYSIsIkEiXTtpZihuLnhkPT09MSYmKG4uaiYmKFc9WyJtYWMzIiwiTUFDMyJdLmNvbmNhdChXKSksbi5WJiYoVz1bIm1lYWMzIiwiTUVBQzMiXS5jb25jYXQoVykpLG4uVlF8fG4uZkIpKXtsZXQgRD1bXTtuLlZRJiZELnB1c2goImkiKTtuLmZCJiZELnB1c2goIkkiKTtXPUQuY29uY2F0KFcpfW4uY0omJihXPVsic28iLCJzYSJdLmNvbmNhdChXKSk7IW4uTmR8fG4uSEp8fG4uWHx8bi5zNXx8Vy51bnNoaWZ0KCJhIik7bi5YJiYoVz0oYm9bbi5YXXx8W24uWF0pLmNvbmNhdChXKSk7cmV0dXJuIFd9OwpKSHI9ZnVuY3Rpb24obil7aWYobi5HQylyZXR1cm5bImYiXTtpZihnLnViKCJhcHBsZXR2NSIpKXJldHVybiJoIDloIDkgOCBIIChoICggKiIuc3BsaXQoIiAiKTt2YXIgVz1bIjloIiwiOSIsImgiLCI4Il07bi5ZJCYmVy5wdXNoKCIxZSIpO1c9Vy5jb25jYXQoWyIoaCIsIigiLCJIIiwiKiJdKTtuLmUkJiYoVy51bnNoaWZ0KCIxIiksVy51bnNoaWZ0KCIxaCIpKTtuLmJ2JiZXLnVuc2hpZnQoImgiKTtuLk8mJihXPShib1tuLk9dfHxbbi5PXSkuY29uY2F0KFcpKTtyZXR1cm4gV307CnZYPWZ1bmN0aW9uKCl7dmFyIG49d2luZG93LFc9bi5NU01lZGlhS2V5cztDJCgpJiYhVyYmKFc9bi5XZWJLaXRNZWRpYUtleXMpO3JldHVybiBXJiZXLmlzVHlwZVN1cHBvcnRlZD9XOm51bGx9Owpoej1mdW5jdGlvbihuKXtyZXR1cm4gbmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vzcz9nLm9kJiYhZy5kOCgpP0NfKCI0NSIpOmcuUmd8fGcua2g/bi5FcSgiZWRnZV9ub25wcmVmaXhlZF9lbWUiKTpnLmFvP0NfKCI0NyIpOmcuR24mJm4uRXEoImh0bWw1X2VuYWJsZV9zYWZhcmlfZmFpcnBsYXkiKT8hMTohMDohMX07CnhoPWZ1bmN0aW9uKG4pe3JldHVybiBuLlg/ITE6IW4ua2V5U3lzdGVtQWNjZXNzJiYhIXZYKCkmJm4ua2V5U3lzdGVtPT09ImNvbS5taWNyb3NvZnQucGxheXJlYWR5In07CkxOPWZ1bmN0aW9uKG4pe3JldHVybiBuLmtleVN5c3RlbT09PSJjb20ubWljcm9zb2Z0LnBsYXlyZWFkeSJ9OwplVD1mdW5jdGlvbihuKXtyZXR1cm4hbi5rZXlTeXN0ZW1BY2Nlc3MmJiEhdlgoKSYmbi5rZXlTeXN0ZW09PT0iY29tLmFwcGxlLmZwcy4xXzAifTsKZzE9ZnVuY3Rpb24obil7cmV0dXJuIG4ua2V5U3lzdGVtPT09ImNvbS55b3V0dWJlLmZhaXJwbGF5In07CmcuWFY9ZnVuY3Rpb24obil7cmV0dXJuIG4uZmxhdm9yPT09ImZhaXJwbGF5In07CkVHQz1mdW5jdGlvbihuLFcsRCxiKXt2YXIgdj16USgpLGs9KEQ9dnx8RCYmQyQoKSk/WyJjb20ueW91dHViZS5mYWlycGxheSJdOlsiY29tLndpZGV2aW5lLmFscGhhIl07VyYmay51bnNoaWZ0KCJjb20ueW91dHViZS53aWRldmluZS5sMyIpO3YmJmImJmsudW5zaGlmdCgiY29tLnlvdXR1YmUuZmFpcnBsYXkuc2JkbCIpO3JldHVybiBEP2s6bj9bLi4uaywuLi5xVi5wbGF5cmVhZHldOlsuLi5xVi5wbGF5cmVhZHksLi4ua119OwokaD1mdW5jdGlvbihuKXtpZighbi5xTigpKWlmKG4uSi5sZW5ndGg9PT0wKW4uY2FsbGJhY2sobi5YKTtlbHNle3ZhciBXPW4uSlswXSxEPW4uV1tXXSxiPWlxdChuLEQpO0dMJiZHTC5rZXlTeXN0ZW09PT1XJiZHTC5JMT09PUpTT04uc3RyaW5naWZ5KGIpPyhuLlUoInJlbWtzYSIse3JlOiEwfSksdHoobixELEdMLmtleVN5c3RlbUFjY2VzcykpOihuLlUoInJlbWtzYSIse3JlOiExLG9rOkdMPy5rZXlTeXN0ZW0/PyIifSksR0w9dm9pZCAwLG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoVyxiKS50aGVuKFl6KHY9Pnt0eihuLEQsdixiKX0pLFl6KCgpPT57bi5qPSFuLmomJm4uV1tuLkpbMF1dLmZsYXZvcj09PSJ3aWRldmluZSI7Cm4uanx8bi5KLnNoaWZ0KCk7JGgobil9KSkpfX07Cm9Hdz1mdW5jdGlvbihuKXtpZih2WCgpJiYoZy5Hbnx8dzgpKW4uWC5wdXNoKG5ldyByMSgiZmFpcnBsYXkiLCJjb20uYXBwbGUuZnBzLjFfMCIsIiIsbi55US5leHBlcmltZW50cykpO2Vsc2V7dmFyIFc9dTFyKCksRD1nLmxfKG4uSixiPT57dmFyIHY9bi5XW2JdLGs9ITEsaD0hMTtmb3IobGV0IHggaW4gbi5OW3YuZmxhdm9yXSlXKHgsYikmJih2LkpbeF09ITAsaz1rfHx4LmluZGV4T2YoImF1ZGlvLyIpPT09MCxoPWh8fHguaW5kZXhPZigidmlkZW8vIik9PT0wKTtyZXR1cm4gayYmaH0pOwpEJiZuLlgucHVzaChuLldbRF0pO24uSj1bXX1uLmNhbGxiYWNrKG4uWCl9OwpkOGk9ZnVuY3Rpb24obixXKXtuLmNhbGxiYWNrPVc7bi5YPVtdO2h6KG4ueVEuZXhwZXJpbWVudHMpPyRoKG4pOm9HdyhuKX07CmlxdD1mdW5jdGlvbihuLFcpe3ZhciBEPXtpbml0RGF0YVR5cGVzOlsiY2VuYyIsIndlYm0iXSxhdWRpb0NhcGFiaWxpdGllczpbXSx2aWRlb0NhcGFiaWxpdGllczpbXX07aWYobi5TKCJodG1sNV9lbmFibGVfdnA5X2ZhaXJwbGF5IikmJmcxKFcpKXJldHVybiBELmF1ZGlvQ2FwYWJpbGl0aWVzLnB1c2goe2NvbnRlbnRUeXBlOidhdWRpby9tcDQ7IGNvZGVjcz0ibXA0YS40MC41Iid9KSxELnZpZGVvQ2FwYWJpbGl0aWVzLnB1c2goe2NvbnRlbnRUeXBlOid2aWRlby9tcDQ7IGNvZGVjcz0iYXZjMS40ZDQwMGIiJ30pLFtEXTtMTihXKSYmKEQuaW5pdERhdGFUeXBlcz1bImtleWlkcyIsImNlbmMiXSk7Zm9yKGxldCB2IG9mIE9iamVjdC5rZXlzKG4uTltXLmZsYXZvcl0pKXt2YXIgYj12LmluZGV4T2YoImF1ZGlvLyIpPT09MDtsZXQgaz1iP0QuYXVkaW9DYXBhYmlsaXRpZXM6RC52aWRlb0NhcGFiaWxpdGllcztXLmZsYXZvciE9PSJ3aWRldmluZSJ8fG4uaj9rLnB1c2goe2NvbnRlbnRUeXBlOnZ9KToKYj9rLnB1c2goe2NvbnRlbnRUeXBlOnYscm9idXN0bmVzczoiU1dfU0VDVVJFX0NSWVBUTyJ9KTooZy5vZCYmZy51Yigid2luZG93cyBudCIpJiYhbi5TKCJodG1sNV9kcm1fZW5hYmxlX21vaG8iKXx8ay5wdXNoKHtjb250ZW50VHlwZTp2LHJvYnVzdG5lc3M6IkhXX1NFQ1VSRV9BTEwifSksYj12LG4ueVEuVy5KJiZ2LmluY2x1ZGVzKCJ2cDA5IikmJihiPXYrIjsgZXhwZXJpbWVudGFsPWFsbG93ZWQiKSxrLnB1c2goe2NvbnRlbnRUeXBlOmIscm9idXN0bmVzczoiU1dfU0VDVVJFX0RFQ09ERSJ9KSxnLnNkKG4ueVEpJiYoVkgoKXx8b0soKSkmJihuLlUoInN3Y3J5cHRvIix7fSksay5wdXNoKHtjb250ZW50VHlwZTp2LHJvYnVzdG5lc3M6IlNXX1NFQ1VSRV9DUllQVE8ifSkpKX1yZXR1cm5bRF19Owp0ej1mdW5jdGlvbihuLFcsRCxiKXtpZighbi5xTigpKXtiJiYoR0w9e2tleVN5c3RlbTpXLmtleVN5c3RlbSxrZXlTeXN0ZW1BY2Nlc3M6RCxJMTpKU09OLnN0cmluZ2lmeShiKX0pO1cua2V5U3lzdGVtQWNjZXNzPUQ7aWYoTE4oVykpe3ZhciB2PWk4KCk7Zm9yKHZhciBrIG9mIE9iamVjdC5rZXlzKG4uTltXLmZsYXZvcl0pKVcuSltrXT0hIXYuY2FuUGxheVR5cGUoayl9ZWxzZXtrPVcua2V5U3lzdGVtQWNjZXNzLmdldENvbmZpZ3VyYXRpb24oKTtpZihrLmF1ZGlvQ2FwYWJpbGl0aWVzKWZvcih2IG9mIGsuYXVkaW9DYXBhYmlsaXRpZXMpVy5KW3YuY29udGVudFR5cGVdPSEwO2lmKGsudmlkZW9DYXBhYmlsaXRpZXMpZm9yKGxldCBoIG9mIGsudmlkZW9DYXBhYmlsaXRpZXMpVy5KW2guY29udGVudFR5cGVdPSEwfW4uWC5wdXNoKFcpO24udXNlQ29iYWx0V2lkZXZpbmV8fG4uUygiaHRtbDVfZW5hYmxlX3ZwOV9mYWlycGxheSIpJiZXLk4oKT8obi5KLnNoaWZ0KCksJGgobikpOm4uY2FsbGJhY2sobi5YKX19Owp1MXI9ZnVuY3Rpb24oKXt2YXIgbj12WCgpO2lmKG4pe2xldCBEPW4uaXNUeXBlU3VwcG9ydGVkO3JldHVybihiLHYpPT5EKHYsYil9dmFyIFc9aTgoKTsKcmV0dXJuIFcmJihXLmFkZEtleXx8Vy53ZWJraXRBZGRLZXkpPyhELGIpPT4hIVcuY2FuUGxheVR5cGUoRCxiKTooKT0+ITF9OwpsdGI9ZnVuY3Rpb24obixXKXtzd2l0Y2goVy5VMCl7Y2FzZSAiYm9vbCI6cmV0dXJuIG4uRXEoVy5ueCk7Y2FzZSAiaW50IjpyZXR1cm4gbj1OVihuLFcubngpLGcuJFUobik7Y2FzZSAiZG91YmxlIjpyZXR1cm4gTlYobixXLm54KTtjYXNlICJzdHJpbmciOnJldHVybiB6ZzIobixXLm54KTtjYXNlICJpbnQzMl9saXN0IjpyZXR1cm4gcE4obixXLm54KTtjYXNlICJpbnQ2NF9saXN0IjpyZXR1cm4gcE4obixXLm54KS5tYXAoRD0+Zy4kVShEKSk7CmNhc2UgInN0cmluZ19saXN0Ijp0aHJvdyBFcnJvcigiU3RyaW5nIGxpc3QgZmxhZ3MgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gV1BDQyIpO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVua25vd24gZmxhZyB0eXBlIik7fX07Ck5WPWZ1bmN0aW9uKG4sVyl7bj1uLmZsYWdzLmdldChgJHtXfWApO3JldHVybiBOdW1iZXIobil8fDB9Owp6ZzI9ZnVuY3Rpb24obixXKXtyZXR1cm4obj1uLmZsYWdzLmdldChgJHtXfWApKT9uLnRvU3RyaW5nKCk6IiJ9OwpwTj1mdW5jdGlvbihuLFcpe2lmKG49bi5mbGFncy5nZXQoYCR7V31gKSlpZihuPW4ucmVwbGFjZSgvXFsgKiguKj8pICpcXS8sIiQxIikpcmV0dXJuIG4uc3BsaXQoIiwiKS5tYXAoTnVtYmVyKTtyZXR1cm5bXX07CmcuZE09ZnVuY3Rpb24obixXLEQ9MCl7bj1uLlFRKFcpO0pTT04uc3RyaW5naWZ5KG4pO3JldHVybiBuPT09dm9pZCAwP0Q6TnVtYmVyKG4pfTsKZy5ZaD1mdW5jdGlvbihuLFcpe3JldHVybihuPW4uUVEoVykpP24udG9TdHJpbmcoKToiIn07ClRwYj1mdW5jdGlvbihuKXtpZihuPW4uUVEoImh0bWw1X3dlYl9wb19leHBlcmltZW50X2lkcyIpKWlmKG49bi5yZXBsYWNlKC9cWyAqKC4qPykgKlxdLywiJDEiKSlyZXR1cm4gbi5zcGxpdCgiLCIpLm1hcChOdW1iZXIpO3JldHVybltdfTsKSFg9ZnVuY3Rpb24obil7aWYobi5OKXJldHVybiBuLk47aWYobi5leHBlcmltZW50SWRzLmxlbmd0aDw9MSlyZXR1cm4gbi5OPW4uZXhwZXJpbWVudElkcyxuLk47dmFyIFc9Wy4uLm4uZXhwZXJpbWVudElkc10ubWFwKEQ9Pk51bWJlcihEKSk7Clcuc29ydCgpO2ZvcihsZXQgRD1XLmxlbmd0aC0xO0Q+MDstLUQpV1tEXS09V1tELTFdO24uTj1XLm1hcChEPT5ELnRvU3RyaW5nKCkpOwpuLk4udW5zaGlmdCgidjEiKTtyZXR1cm4gbi5OfTsKTkRTPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bmV3IE1hcDtmb3IobGV0IGIgb2YgVy5rZXlzKCkpe2xldCB2PWIuc3BsaXQoIl8iKVswXTtuLmhhcyh2KXx8RC5zZXQoYixXLmdldChiKSl9cmV0dXJuIER9OwpZMlM9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVcudmlkZW8/LmZwc3x8MCx2PWAke259XyR7Yn1gLGs9ISFXLmF1ZGlvLGg9e2l0YWc6Vy5pdGFnLElCOm4sZVM6a307aWYoayloLm51bUNoYW5uZWxzPVcuYXVkaW8ubnVtQ2hhbm5lbHM7ZWxzZXt2YXIgeD1XLnZpZGVvO2gubWF4V2lkdGg9eD8ud2lkdGg7aC5tYXhIZWlnaHQ9eD8uaGVpZ2h0O2gubWF4RnJhbWVyYXRlPWI7aC5tYXhCaXRyYXRlQnBzPVcuTnMqODtoLno5PXg/LmlzSGRyKCl9eD1ELmdldCh2KTt4P2t8fChXPU1hdGgubWF4KHgubWF4V2lkdGh8fDAseC5tYXhIZWlnaHR8fDApPk1hdGgubWF4KGgubWF4V2lkdGh8fDAsaC5tYXhIZWlnaHR8fDApP3g6aCxuPXtpdGFnOlcuaXRhZyxJQjpuLGVTOmssbWF4V2lkdGg6TWF0aC5tYXgoeC5tYXhXaWR0aHx8MCxoLm1heFdpZHRofHwwKSxtYXhIZWlnaHQ6TWF0aC5tYXgoeC5tYXhIZWlnaHR8fDAsaC5tYXhIZWlnaHR8fDApLG1heEZyYW1lcmF0ZTpiLHo5Olcuejl9LG4ubWF4Qml0cmF0ZUJwcz0KVy5tYXhCaXRyYXRlQnBzLEQuc2V0KHYsbikpOkQuc2V0KHYsaCl9OwpPRD1mdW5jdGlvbihuLFcsRD0xKXt2YXIgYj1XLml0YWc7aWYoYj09PSIwIilyZXR1cm4hMDt2YXIgdj1XLm1pbWVUeXBlO2lmKFcuSUI9PT0iMWUiJiYhbi5YKXJldHVybiJkYXYxZW5jIjtpZihXLk1XKCkmJm4uWSlyZXR1cm4iZGF2MSI7aWYoVy52aWRlbyYmKFcudmlkZW8uaXNIZHIoKXx8Vy52aWRlby5wcmltYXJpZXM9PT0iYnQyMDIwIikmJiEoU0oobixBVC5FT1RGKXx8d2luZG93Lm1hdGNoTWVkaWEmJih3aW5kb3cubWF0Y2hNZWRpYSgiKGR5bmFtaWMtcmFuZ2U6IGhpZ2gpLCAodmlkZW8tZHluYW1pYy1yYW5nZTogaGlnaCkiKS5tYXRjaGVzfHx3aW5kb3cuc2NyZWVuLnBpeGVsRGVwdGg+MjQmJndpbmRvdy5tYXRjaE1lZGlhKCIoY29sb3ItZ2FtdXQ6IHAzKSIpLm1hdGNoZXMpKSlyZXR1cm4iZGhkciI7aWYoYj09PSIzMzgiJiYhKGcub2Q/Q18oNTMpOmcuYW8mJkNfKDY0KSkpcmV0dXJuImRvcHVzIjtEPXZHVShXLEQpO24uSiYmVy5YKCkmJihEW0FULkVYUEVSSU1FTlRBTC5uYW1lXT0KImFsbG93ZWQiKTtmb3IobGV0IHggb2YgT2JqZWN0LmtleXMoQVQpKXtsZXQgTD1BVFt4XTt2YXIgaztpZihrPURbTC5uYW1lXSlpZihrPSEoTD09PUFULkVPVEYmJlcubWltZVR5cGUuaW5kZXhPZigidnAwOS4wMiIpPjApKXtrPUw7dmFyIGg9VztrPSEobi5leHBlcmltZW50cy5FcSgiaHRtbDVfaWdub3JlX2gyNjRfZnJhbWVyYXRlX2NhcCIpJiZrPT09QVQuRlJBTUVSQVRFJiYoaC5JQj09PSJIInx8aC5JQj09PSJoIikpfWlmKGspaWYoU0oobixMKSlpZihuLmope2lmKG4ualtMLm5hbWVdPERbTC5uYW1lXSlyZXR1cm4gTC5uYW1lfWVsc2Ugdj1gJHt2fTsgJHtMLm5hbWV9PSR7RFtMLm5hbWVdfWA7ZWxzZSBpZihaTyhXKSYmTD09PUFULkVPVEYpcmV0dXJuImR2cDkyIn1uLk8mJlcudmlkZW8mJlcudmlkZW8ucXVhbGl0eU9yZGluYWw+MTA4MCYmVy5jb250ZW50UHJvdGVjdGlvbiYmKHYrPSI7IGhkY3A9Mi4yIik7cmV0dXJuIGI9PT0iMjI3Ij8iaHFjZW5jIjpiPT09IjU4NSJ8fApiPT09IjU4OCJ8fGI9PT0iNTgzInx8Yj09PSI1ODYifHxiPT09IjU4NCJ8fGI9PT0iNTg3Inx8Yj09PSI1OTEifHxiPT09IjU5MiI/Im5ld2h2YyI6elEoKSYmaWIoKT49MjEmJmcudWIoImFwcGxldHY1IikmJihiPT09IjQxMCJ8fGI9PT0iODQ1Iik/ITA6bi5pc1R5cGVTdXBwb3J0ZWQodik/ITA6InRwdXMifTsKU0o9ZnVuY3Rpb24obixXKXtXLm5hbWUgaW4gbi5EfHwobi5EW1cubmFtZV09ajVpKG4sVykpO3JldHVybiBuLkRbVy5uYW1lXX07CkNlVT1mdW5jdGlvbihuKXtuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXM/LmRlY29kaW5nSW5mbyYmbmF2aWdhdG9yLm1lZGlhQ2FwYWJpbGl0aWVzLmRlY29kaW5nSW5mbyh7dHlwZToibWVkaWEtc291cmNlIix2aWRlbzp7Y29udGVudFR5cGU6J3ZpZGVvL21wNDsgY29kZWNzPSJhdjAxLjAuMTJNLjA4Iicsd2lkdGg6Mzg0MCxoZWlnaHQ6MjE2MCxiaXRyYXRlOjMyRTYsZnJhbWVyYXRlOjYwfX0pLnRoZW4oVz0+e1cuc21vb3RoJiZXLnBvd2VyRWZmaWNpZW50JiYobi5jSj0yMTYwKX0pfTsKZk49ZnVuY3Rpb24oKXt2YXIgbj1vSygpJiYhQ18oMjkpLFc9Zy51YigiZ29vZ2xlIHR2IikmJmcudWIoImNocm9tZSIpJiYhQ18oMzApO3JldHVybiBufHxXPyExOmNSKCl9OwpKej1mdW5jdGlvbihuLFcsRCl7dmFyIGI9NDgwLHY9MTA4MCxrO2lmKGs9bi5leHBlcmltZW50cy5adCgpLk4uUVEoQnB0KSluLlY9PT1udWxsJiYobi5WPSExLFNKKG4sQVQuV0lEVEgpJiZTSihuLEFULkhFSUdIVCkmJihuLlY9ZHkoJ3ZpZGVvL21wNDsgY29kZWNzPSJhdjAxLjAuMTdNLjA4Ijsgd2lkdGg9NzY4MDsgaGVpZ2h0PTQzMjAnKSkpLGs9bi5WO2smJih2PTIxNjApO2ZvcihsZXQgaCBvZiBXKVc9aC52aWRlby5xdWFsaXR5T3JkaW5hbCxXPD12JiZXPmImJk9EKG4saCxEKT09PSEwJiYoYj1XKTtyZXR1cm4gYn07CmcuSW49ZnVuY3Rpb24obixXPSExKXtyZXR1cm4gZk4oKSYmbi5pc1R5cGVTdXBwb3J0ZWQoJ2F1ZGlvL21wNDsgY29kZWNzPSJtcDRhLjQwLjIiJyl8fCFXJiZuLmNhblBsYXlUeXBlKGk4KCksImFwcGxpY2F0aW9uL3gtbXBlZ1VSTCIpPyEwOiExfTsKd0p4PWZ1bmN0aW9uKG4pe0ZLQygoKT0+e2ZvcihsZXQgVyBvZiBPYmplY3Qua2V5cyhBVCkpU0oobixBVFtXXSl9KX07Cmo1aT1mdW5jdGlvbihuLFcpe2lmKG4uailyZXR1cm4hIW4ualtXLm5hbWVdO2lmKFc9PT1BVC5CSVRSQVRFJiZuLmlzVHlwZVN1cHBvcnRlZCgndmlkZW8vd2VibTsgY29kZWNzPSJ2cDkiOyB3aWR0aD0zODQwOyBoZWlnaHQ9MjE2MDsgYml0cmF0ZT0yMDAwMDAwJykmJiFuLmlzVHlwZVN1cHBvcnRlZCgndmlkZW8vd2VibTsgY29kZWNzPSJ2cDkiOyB3aWR0aD0zODQwOyBoZWlnaHQ9MjE2MDsgYml0cmF0ZT0yMDAwMDAwMCcpKXJldHVybiExO2lmKFc9PT1BVC5BVjFfQ09ERUNTKXJldHVybiBuLmlzVHlwZVN1cHBvcnRlZChgdmlkZW8vbXA0OyBjb2RlY3M9JHtXLnZhbGlkfWApJiYhbi5pc1R5cGVTdXBwb3J0ZWQoYHZpZGVvL21wNDsgY29kZWNzPSR7Vy52R31gKTtpZihXLnZpZGVvKXt2YXIgRD0ndmlkZW8vd2VibTsgY29kZWNzPSJ2cDkiJztuLmlzVHlwZVN1cHBvcnRlZChEKXx8KEQ9J3ZpZGVvL21wNDsgY29kZWNzPSJhdmMxLjRkNDAxZSInKX1lbHNlIEQ9J2F1ZGlvL3dlYm07IGNvZGVjcz0ib3B1cyInLApuLmlzVHlwZVN1cHBvcnRlZChEKXx8KEQ9J2F1ZGlvL21wNDsgY29kZWNzPSJtcDRhLjQwLjIiJyk7cmV0dXJuIG4uaXNUeXBlU3VwcG9ydGVkKGAke0R9OyAke1cubmFtZX09JHtXLnZhbGlkfWApJiYhbi5pc1R5cGVTdXBwb3J0ZWQoYCR7RH07ICR7Vy5uYW1lfT0ke1cudkd9YCl9OwpTVD1mdW5jdGlvbihuLFcpe3ZhciBEPTA7bi5XLmhhcyhXKSYmKEQ9bi5XLmdldChXKS56RSk7bi5XLnNldChXLHt6RTpEKzEsZzE6MioqKEQrMSl9KTtuLk49ITB9OwptVj1mdW5jdGlvbihuLFcsRCxiLHYpe2lmKFcmJnR5cGVvZiBXPT09Im9iamVjdCIpe2xldCBrPWg9PkF6KG4saCxELGIsdik7CmlmKFlvKFcpKXJldHVybiBXLnRoZW4oayk7aWYoWUQoVykpcmV0dXJuIFNrKFcsayl9cmV0dXJuIEF6KG4sVyxELGIsdil9OwpLTj1mdW5jdGlvbihuLFcsRCxiPTEpe0Q+PTAmJihXIGluIG4uTnx8KG4uTltXXT1uZXcgTU9pKSxuLk5bV10uZEUoRCxiKSl9OwpBej1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPSgwLGcuUikoKTt2PXY/dihXKTp2b2lkIDA7dmFyIGg9dj8uVF8/PzE7aCE9PTAmJktOKG4sdj8ucHJvZmlsZT8/RCxrLWIsaCk7cmV0dXJuIFd9OwpPZD1mdW5jdGlvbihuKXt2YXIgVz13aW5kb3c7Vy55d2N8fChXLnl3Yz17fSk7dmFyIEQ9Vy55d2Nbbl07aWYoRClyZXR1cm4gRDtEPXt9O3JldHVybiBXLnl3Y1tuXT1EfTsKUFg9ZnVuY3Rpb24obil7dmFyIFc9d2luZG93O1cueXdjJiZkZWxldGUgVy55d2Nbbl19OwpSZ1U9ZnVuY3Rpb24obil7dmFyIFc9T2Qobik7aWYoVy5iaW5QKXJldHVybiBXLmJpblA7Vy5iaW5QPVByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmZldGNoKG4pKS50aGVuKEQ9PntpZighRC5vayl0aHJvdyBFcnJvcihgSFRUUCR7RC5zdGF0dXNUZXh0fWApOwpyZXR1cm4gRC5hcnJheUJ1ZmZlcigpfSk7ClcuYmluUC50aGVuKEQ9PntXLmJpbj1EfSwoKT0+e1BYKG4pfSk7CnJldHVybiBXLmJpblB9OwpFZD1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIE9vKHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgYj1aSy50WCgpLHY9biYmVWQ7aWYoIXYmJiFXKXJldHVybiBEPy4oIndhc21ucyIse3A6bj8iMSI6IjAiLGE6Vz8iMSI6IjAiLHM6VWQ/IjEiOiIwIn0pLGZsKEVycm9yKCJ3YXNtLndtLm5zIikpO3ZhciBrPW5ldyBRNXI7aWYodil0cnl7bGV0IGg9eWllbGQqUFAoVk9yKGssbikpLHg9bmV3IHlNKGgsaywhMSk7WksuZVUoIndpbml0IixiKTtEPy4oIndhc21zdyIse30pO3JldHVybiB4fWNhdGNoKGgpe2lmKEQ/Ligid2FzbWVycnciLHtlOmAke2h9YH0pLCFXKXRocm93IEVycm9yKCJ3YXNtLndtLml3Iix7Y2F1c2U6aH0pO31pZighVyl0aHJvdyBFcnJvcigid2FzbS53bS54eCIpO3RyeXtsZXQgaD15aWVsZCpQUChXKGspKSx4PW5ldyB5TSh7ZXhwb3J0czpofSxrLCEwKTtaSy5lVSgid2luaXRqcyIsYik7RD8uKCJ3YXNtc2EiLHt9KTtyZXR1cm4geH1jYXRjaChoKXt0aHJvdyBEPy4oIndhc21lcnJhIiwKe2U6YCR7aH1gfSksRXJyb3IoYHdhc20ud20uaWE6ICR7aH1gKTt9fSgpfSl9OwpWT3I9ZnVuY3Rpb24obixXKXtyZXR1cm4gT28oYyR0LGZ1bmN0aW9uKCl7dmFyIEQ9dGhpcztyZXR1cm4gZnVuY3Rpb24qKCl7aWYoIUQuTil0aHJvdyJ3YXNtLnBzLm5zIjt2YXIgYj15aWVsZCpQUChhdHQoRCxXKSk7aWYoIWIpdGhyb3cid2FzbS5wcy51bSI7cmV0dXJuIHlpZWxkKlBQKFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGIsbikpfSgpfSl9OwphdHQ9ZnVuY3Rpb24obixXKXtyZXR1cm4gT28obixmdW5jdGlvbigpe3ZhciBEPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBiPVtdLHY9KCk9PiJ3YXNtLnBzLmM6IFsiK2IubWFwKHg9PmAiJHt4fSJgKS5qb2luKCIsICIpKyJdIixrPU9kKFcpOwppZihrLm1vZClyZXR1cm4gay5tb2Q7aWYoay5tb2RQKXRyeXtyZXR1cm4geWllbGQqUFAoay5tb2RQKX1jYXRjaCh4KXtiLnVuc2hpZnQoInBjbSIpfXZhciBoPWsuYmluO2lmKCFoJiZrLmJpblApdHJ5e2g9eWllbGQqUFAoay5iaW5QKX1jYXRjaCh4KXtiLnVuc2hpZnQoInBmYiIpfWlmKCFoKXRyeXtoPXlpZWxkKlBQKFJnVShXKSl9Y2F0Y2goeCl7dGhyb3cgRC5OPSExLGIudW5zaGlmdChgZmI6ICR7eH1gKSx2KCk7fXRyeXtyZXR1cm4geWllbGQqUFAoV2ViQXNzZW1ibHkuY29tcGlsZShoKSl9Y2F0Y2goeCl7UFgoVyksYi51bnNoaWZ0KGBjYTogJHt4fWApfXRocm93IHYoKTt9KCl9KX07CmlvPWZ1bmN0aW9uKG4sVyxELGIpe0Q9bi5XVi5tZW1vcnkuY29weUluKEQpO3ZhciB2PW4uTjt2LldWLmV4cG9ydHMuQUVTMTI4Q1RSQ2lwaGVyX3NldENvdW50ZXIodi5jaXBoZXIsRC5ieXRlT2Zmc2V0KTtXPW4uV1YubWVtb3J5LmNvcHlJbihXKTtuLk4uZW5jcnlwdChXKTt2PXZvaWQgMDtpZihiKXtiPW4uV1Y7dj1uLko7bGV0IGs9Yi5tZW1vcnkuYnVmZmVyKGIubWVtb3J5Lm1hbGxvYygzMiksMzIpO2IuZXhwb3J0cy5TaGEyNTZIbWFjKHYuYnl0ZU9mZnNldCx2LmJ5dGVMZW5ndGgsRC5ieXRlT2Zmc2V0LEQuYnl0ZUxlbmd0aCxXLmJ5dGVPZmZzZXQsVy5ieXRlTGVuZ3RoLGsuYnl0ZU9mZnNldCk7dj1uLldWLm1lbW9yeS5tb3ZlT3V0KGspfW4uV1YubWVtb3J5LmZyZWUoRC5ieXRlT2Zmc2V0KTtyZXR1cm57RzQ6bi5XVi5tZW1vcnkubW92ZU91dChXKSxzaWduYXR1cmU6dn19OwpuWUM9ZnVuY3Rpb24obil7bi5FaC5leHBvcnRzLlRyYWNrZWRQb2ludGVyX3JlbGVhc2Uobi5pZCl9Owpvbj1mdW5jdGlvbihuKXtuLlh8fChuLlg9bmV3IHVvKG4uSikpO3JldHVybiBuLlh9OwpnLmQxPWZ1bmN0aW9uKG4pe3RyeXtyZXR1cm4gbHAobil9Y2F0Y2goVyl7cmV0dXJuIG51bGx9fTsKekw9ZnVuY3Rpb24obil7dmFyIFc9SG4oKTtpZihXLnZhbHVlcyl7Vz1XLnZhbHVlcztsZXQgaD17fTtmb3IodmFyIEQgb2YgT2JqZWN0LmtleXMobi52YWx1ZXMpKXtXW0RdJiZuLkpbRF0mJihuLnZhbHVlc1tEXSs9V1tEXS1uLkpbRF0pO3ZhciBiPW4sdj1iO2lmKCF2LnZhbHVlc1tEXSl7dmFyIGs9SG4oKTt2LnZhbHVlcz1rLnZhbHVlc3x8e307di5GWT1rLmhhbGZMaXZlc3x8e307di5KPWsudmFsdWVzP09iamVjdC5hc3NpZ24oe30say52YWx1ZXMpOnt9fWhbRF09Yi52YWx1ZXNbRF0mJmIuRllbRF0/Yi52YWx1ZXNbRF0vMioqKGIuTi9iLkZZW0RdKTowfW4uSj1ofUQ9bi5GWTtXPXt9O1cudmFsdWVzPW4uSjtXLmhhbGZMaXZlcz1EO2cuUEIoInl0LXBsYXllci1tZW1vcnkiLFcsMjU5MkUzKX07Clh2PWZ1bmN0aW9uKG4sVyl7cmV0dXJuISFXJiYhIW4uWnQoKS5OLlFRKFdJTSkmJihXLnN0YXJ0c1dpdGgoImciKXx8Vy5zdGFydHNXaXRoKCJsIikpfTsKZy5zZD1mdW5jdGlvbihuKXtyZXR1cm4gbG8obik9PT0iTVdFQiJ9OwpUTD1mdW5jdGlvbihuKXtuLmdUPT09bnVsbCYmKG4uZ1Q9d2luZG93Lk1lZGlhU291cmNlJiZ3aW5kb3cuTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkP3dpbmRvdy5NZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoJ3ZpZGVvL21wNDsgY29kZWNzPSJhdmMxLjQyMDAxRSI7IGRlY29kZS10by10ZXh0dXJlPXRydWUnKTohMSk7cmV0dXJuIG4uZ1R9OwpqVD1mdW5jdGlvbihuKXtyZXR1cm4gbG8obik9PT0iVFZIVE1MNV9TSU1QTFlfRU1CRURERURfUExBWUVSIn07CmcubzQ9ZnVuY3Rpb24obil7cmV0dXJuIG4uSiYmZy5DTihuKSYmIUJYKG4pJiYhbi5YfTsKQlg9ZnVuY3Rpb24obil7cmV0dXJuIG4uWT09PSJhZHVuaXQifHxuLnBsYXllclN0eWxlPT09Imd2biJ9OwpGVj1mdW5jdGlvbihuKXtyZXR1cm4gbi5ZPT09ImRldGFpbHBhZ2UifTsKZy53MT1mdW5jdGlvbihuKXtyZXR1cm4gdzgmJiFuLnhofHxnLnViKCJuaW50ZW5kbyB3aWl1Iik/ITA6ITF9OwpnLkNOPWZ1bmN0aW9uKG4pe3JldHVybiBuLlk9PT0iZW1iZWRkZWQifTsKZy5NVj1mdW5jdGlvbihuKXtyZXR1cm4gbG8obik9PT0iV0VCX1JFTUlYIn07ClFNPWZ1bmN0aW9uKG4pe2lmKCFuLndlYlBsYXllckNvbnRleHRDb25maWc/LmVtYmVkc0hvc3RGbGFncz8uZW5hYmxlTGl0ZVV4fHxuLnZKfHxuLlh8fG4uRHx8bi5jSj09PSJFTUJFRERFRF9QTEFZRVJfTU9ERV9QRlAiKXJldHVybiJFTUJFRERFRF9QTEFZRVJfTElURV9NT0RFX05PTkUiO249Zy5kTShuLmV4cGVyaW1lbnRzLCJlbWJlZHNfd2ViX2xpdGVfbW9kZSIpO3JldHVybiBuPT09dm9pZCAwPyJFTUJFRERFRF9QTEFZRVJfTElURV9NT0RFX1VOS05PV04iOm4+PTAmJm48Um4ubGVuZ3RoP1JuW25dOiJFTUJFRERFRF9QTEFZRVJfTElURV9NT0RFX1VOS05PV04ifTsKY1g9ZnVuY3Rpb24obixXLEQ9ITEpe24uUyQ9Yk8obi5TJCxXLnZpZGVvX2lkKTtuLmZCPWJPKG4uZkIsVy5ldmVudGlkKTtuLmZCJiYod289bi5mQik7dmFyIGI9W107Zm9yKGxldCB2IG9mIE9iamVjdC5rZXlzKFZNKSl7bGV0IGs9Vk1bdl0saD1XW2tdO2ghPW51bGwmJihoIT09bi5OW2tdJiZiLnB1c2goayksbi5OW2tdPWgpfSFEJiZiLmxlbmd0aD4wJiZuLm9NJiYoYi5zb3J0KCksZy5HcShuZXcgZy5ReCgiUGxheWVyIGNsaWVudCBwYXJhbWV0ZXJzIGNoYW5nZWQgYWZ0ZXIgc3RhcnR1cCIsYikpKTtuLnVzZXJBZ2U9REkobi51c2VyQWdlLFcudXNlcl9hZ2UpO24udXNlckRpc3BsYXlJbWFnZT1iTyhuLnVzZXJEaXNwbGF5SW1hZ2UsVy51c2VyX2Rpc3BsYXlfaW1hZ2UpO2cuakkobi51c2VyRGlzcGxheUltYWdlKXx8KG4udXNlckRpc3BsYXlJbWFnZT0iIik7bi51c2VyRGlzcGxheU5hbWU9Yk8obi51c2VyRGlzcGxheU5hbWUsVy51c2VyX2Rpc3BsYXlfbmFtZSk7bi55dz1iTyhuLnl3LApXLnVzZXJfZ2VuZGVyKTtuLmNzaVBhZ2VUeXBlPWJPKG4uY3NpUGFnZVR5cGUsVy5jc2lfcGFnZV90eXBlKTtuLmNzaVNlcnZpY2VOYW1lPWJPKG4uY3NpU2VydmljZU5hbWUsVy5jc2lfc2VydmljZV9uYW1lKTtuLmVWPW55KG4uZVYsVy5lbmFibGVjc2kpO24ucGFnZUlkPWJPKG4ucGFnZUlkLFcucGFnZWlkKTtpZihEPVcuZW5hYmxlZF9lbmdhZ2VfdHlwZXMpbi5lbmFibGVkRW5nYWdlVHlwZXM9bmV3IFNldChELnNwbGl0KCIsIikpO1cubGl2aW5nX3Jvb21fc2Vzc2lvbl9wb190b2tlbiYmKG4ualc9Vy5saXZpbmdfcm9vbV9zZXNzaW9uX3BvX3Rva2VuLnRvU3RyaW5nKCkpfTsKZy5hbj1mdW5jdGlvbihuKXtyZXR1cm4vd2ViL2kudGVzdChsbyhuKSl9Owpsbz1mdW5jdGlvbihuKXtyZXR1cm4gbi5OLmN9OwpjOT1mdW5jdGlvbihuLFcpe3JldHVybiFuLlgmJm9LKCkmJkNfKDU1KSYmbi5jb250cm9sc1R5cGU9PT0iMyImJiFXfTsKV0U9ZnVuY3Rpb24obil7bj1nLm5FKG4uRGEpO3JldHVybiBuPT09Ind3dy55b3V0dWJlLW5vY29va2llLmNvbSI/Ind3dy55b3V0dWJlLmNvbSI6bn07CmcuRGY9ZnVuY3Rpb24obil7cmV0dXJuIGxvKG4pPT09IldFQl9VTlBMVUdHRUQifTsKYmk9ZnVuY3Rpb24obixXLEQpe3JldHVybiBuLnByb3RvY29sKyI6Ly9pMS55dGltZy5jb20vdmkvIitXKyIvIisoRHx8ImhxZGVmYXVsdC5qcGciKX07CnZFPWZ1bmN0aW9uKG4pe3JldHVybiBGVihuKSYmIWcuRGYobil9OwpnLms2PWZ1bmN0aW9uKG4pe3JldHVybi9eVFZIVE1MNS8udGVzdChsbyhuKSl9OwpodT1mdW5jdGlvbihuKXtyZXR1cm4gbG8obik9PT0iVFZIVE1MNV9DQVNUInx8bG8obik9PT0iVFZIVE1MNSImJihuLk4uY3Zlci5zdGFydHNXaXRoKCI2LjIwMTMwNzI1Iil8fG4uTi5jdmVyLnN0YXJ0c1dpdGgoIjYuMjAxMzA3MjYiKSl9OwpnLng2PWZ1bmN0aW9uKG4pe3JldHVybiBsbyhuKT09PSJUVkhUTUw1In07CkxFPWZ1bmN0aW9uKG4pe3JldHVybiBuLk4uY21vZGVsPT09IkNIUk9NRUNBU1QgVUxUUkEvU1RFQUsifHxuLk4uY21vZGVsPT09IkNIUk9NRUNBU1QvU1RFQUsifTsKZy5IXz1mdW5jdGlvbigpe3JldHVybiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbz4xP3dpbmRvdy5kZXZpY2VQaXhlbFJhdGlvOjF9OwpnLmVNPWZ1bmN0aW9uKG4pe3JldHVybiBsbyhuKS50b1VwcGVyQ2FzZSgpPT09IldFQiJ9OwpnLlhDPWZ1bmN0aW9uKG4pe3JldHVybiBsbyhuKT09PSJXRUJfS0lEUyJ9OwpnLnFGPWZ1bmN0aW9uKG4pe3JldHVybiBsbyhuKT09PSJUVkhUTUw1X1VOUExVR0dFRCJ9OwpnLkdsPWZ1bmN0aW9uKG4pe3JldHVybiBnLkRmKG4pfHxsbyhuKT09PSJUVl9VTlBMVUdHRURfQ0FTVCJ8fGcucUYobil9Owp0dT1mdW5jdGlvbihuKXtyZXR1cm4gbG8obik9PT0iV0VCX01VU0lDX0lOVEVHUkFUSU9OUyJ9OwpnLiQ2PWZ1bmN0aW9uKG4pe3JldHVybiBsbyhuKT09PSJXRUJfRU1CRURERURfUExBWUVSIn07Cmcubk49ZnVuY3Rpb24obil7cmV0dXJuKG4uZGV2aWNlSXNBdWRpb09ubHl8fCFnLm9kfHxnLk1MfHxuLmNvbnRyb2xzVHlwZT09PSIzIj8hMTpnLlFIP24uSiYmZy5aWCg1MSk6ITApfHwobi5kZXZpY2VJc0F1ZGlvT25seXx8IWcuYW98fGcuTUx8fG4uY29udHJvbHNUeXBlPT09IjMiPyExOmcuUUg/bi5KJiZnLlpYKDQ4KTpnLlpYKDM4KSl8fChuLmRldmljZUlzQXVkaW9Pbmx5fHwhcmN8fGcuTUx8fG4uY29udHJvbHNUeXBlPT09IjMiPyExOmcuUUg/bi5KJiZnLlpYKDM3KTpnLlpYKDI3KSl8fCFuLmRldmljZUlzQXVkaW9Pbmx5JiZnLnNtJiYhRm4oKSYmZy5aWCgxMSl8fCFuLmRldmljZUlzQXVkaW9Pbmx5JiZnLkduJiZnLlpYKCI2MDQuNCIpfHxuLldjKCl9OwpacVM9ZnVuY3Rpb24obil7aWYoZy5DTihuKSYmTkYpcmV0dXJuITE7aWYoZy5hbyl7aWYoIWcuWlgoNDcpfHwhZy5aWCg1MikmJmcuWlgoNTEpKXJldHVybiExfWVsc2UgaWYoZy5HbilyZXR1cm4hMTtyZXR1cm4gd2luZG93LkF1ZGlvQ29udGV4dHx8d2luZG93LndlYmtpdEF1ZGlvQ29udGV4dD8hMDohMX07CmcucEU9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5lbmFibGVkRW5nYWdlVHlwZXMuaGFzKFcudG9TdHJpbmcoKSl8fER2aS5pbmNsdWRlcyhXKX07CnZZaj1mdW5jdGlvbihuKXt2YXIgVz1XRShuKTtiVmkuaW5jbHVkZXMoVykmJihXPSJ3d3cueW91dHViZS5jb20iKTtyZXR1cm4gbi5wcm90b2NvbCsiOi8vIitXfTsKZy5IRT1mdW5jdGlvbihuLFc9IiIpe2lmKG4uSFkpe2xldCBEPW5ldyBZNixiLHY9bi5IWSgpO3Yuc2lnbmVkT3V0P2I9IiI6di50b2tlbj9iPXYudG9rZW46di5wZW5kaW5nUmVzdWx0LnRoZW4oaz0+e3Yuc2lnbmVkT3V0P0QucmVzb2x2ZSgiIik6RC5yZXNvbHZlKGsudG9rZW4pfSxrPT57Zy5HcShuZXcgZy5ReCgiYjE4OTM0ODMyOF9vYXV0aF9jYWxsYmFja19mYWlsZWQiLHtlcnJvcjprfSkpOwpELnJlc29sdmUoVyl9KTsKcmV0dXJuIGIhPT12b2lkIDA/Zy5IMChiKTpuZXcgTlgoRCl9cmV0dXJuIGcuSDAoVyl9OwpmRT1mdW5jdGlvbihuLFc9IiIpe3JldHVybiBuLllyP0hQKCEwKTpLbChTayhIUChnLkhFKG4sVykpLEQ9PkhQKCEhRCkpLCgpPT5IUCghMSkpfTsKSnU9ZnVuY3Rpb24obixXKXtpZihuLldWPVcpbi5QWD8uTj8uVihXKSxXLmlzQXNtanM/bi5reS5wdXNoKCJhc21qcyIpOm4ua3kucHVzaCgid2FzbSIpfTsKZy5uRT1mdW5jdGlvbihuKXt2YXIgVz1nLklQKG4pO3JldHVybihuPU51bWJlcihnLmZwKG4pWzRdfHxudWxsKXx8bnVsbCk/YCR7V306JHtufWA6V307ClNNPWZ1bmN0aW9uKG4sVz0hMSl7dmFyIEQ9WWdbbl0sYj1JQVtEXSx2PWtIcltuXTtpZighdnx8IWIpcmV0dXJuIG51bGw7Vz1uZXcgSFIoVz92LmhlaWdodDp2LndpZHRoLFc/di53aWR0aDp2LmhlaWdodCx2LmZwcyk7Yj1wNihiLFcsRCk7cmV0dXJuIG5ldyBtdShuLGIse3ZpZGVvOlcsTnM6di5iaXRyYXRlLzh9KX07CkF1PWZ1bmN0aW9uKG4pe3ZhciBXPUlBW1lnW25dXSxEPWhFU1tuXTtyZXR1cm4gRCYmVz9uZXcgbXUobixXLHthdWRpbzpuZXcgQU0oRC5hdWRpb1NhbXBsZVJhdGUsRC5udW1DaGFubmVscyl9KTpudWxsfTsKVlA9ZnVuY3Rpb24obixXLEQsYil7aWYoRClyZXR1cm4gZy5wJCgpO0Q9e307dmFyIHY9aTgoKTtmb3IobGV0IGsgb2YgVylpZihuLmNhblBsYXlUeXBlKHYsay5rTCgpLm1pbWVUeXBlKXx8YilpZihXPWsuTi52aWRlby5xdWFsaXR5LCFEW1ddfHxEW1ddLmtMKCkucUgoKSlEW1ddPWs7bj1bXTtELmF1dG8mJm4ucHVzaChELmF1dG8pO2ZvcihsZXQgayBvZiBwTSkoYj1EW2tdKSYmbi5wdXNoKGIpO3JldHVybiBuLmxlbmd0aD9nLkgwKG4pOmcucCQoKX07CktFPWZ1bmN0aW9uKG4sVz0hMSxEPSEwLGI9e30pe3ZhciB2PXt9O2ZvcihsZXQgaCBvZiBuKXtpZihXJiZNZWRpYVNvdXJjZSYmTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkJiYobj1oLnR5cGUsaC5hdWRpb19jaGFubmVscyYmKG49bisiOyBjaGFubmVscz0iK2guYXVkaW9fY2hhbm5lbHMpLCFNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQobikpKXtiW2guaXRhZ109InRwdXMiO2NvbnRpbnVlfWlmKCFEJiZoLmRybV9mYW1pbGllcyYmKGguZW90Zj09PSJzbXB0ZTIwODQifHxoLmVvdGY9PT0iYXJpYi1zdGQtYjY3Iikpe2JbaC5pdGFnXT0iZW5jaGRyIjtjb250aW51ZX1uPXZvaWQgMDtsZXQgeD17YnQ3MDk6IlNEUiIsYnQyMDIwOiJTRFIiLHNtcHRlMjA4NDoiUFEiLCJhcmliLXN0ZC1iNjciOiJITEcifTt2YXIgaz1oLnR5cGUubWF0Y2goL2NvZGVjcz0iKFteIl0qKSIvKTtrPWs/a1sxXToiIjtoLmF1ZGlvX3RyYWNrX2lkJiYobj1uZXcgd1AoaC5uYW1lLGguYXVkaW9fdHJhY2tfaWQsCiEhaC5pc19kZWZhdWx0KSk7bGV0IEw9aC5lb3RmO249bmV3IG04KHtpdGFnOmguaXRhZyx1cmw6aC51cmwsY29kZWNzOmssd2lkdGg6TnVtYmVyKGgud2lkdGgpLGhlaWdodDpOdW1iZXIoaC5oZWlnaHQpLGZwczpOdW1iZXIoaC5mcHMpLGJpdHJhdGU6TnVtYmVyKGguYml0cmF0ZSksYXVkaW9JdGFnOmguYXVkaW9faXRhZyxVaDpMP3hbTF06dm9pZCAwLGNvbnRlbnRQcm90ZWN0aW9uOmguZHJtX2ZhbWlsaWVzLGtaOm4sYXVkaW9DaGFubmVsczpOdW1iZXIoaC5hdWRpb19jaGFubmVscyl9KTt2W24uaXRhZ109dltuLml0YWddfHxbXTt2W24uaXRhZ10ucHVzaChuKX1yZXR1cm4gdn07CnZhciB4dlU9ZnVuY3Rpb24obixXKXtyZXR1cm4gZ1pbSVsxMF1dKHRoaXMsMSw3ODUyLG4sVyl9OwpMSUM9ZnVuY3Rpb24obixXKXtuLlcuc29tZShEPT5ELmtaPy5nZXRJZCgpPT09Vyk7Cm4uTj1XfTsKZUVpPWZ1bmN0aW9uKG4pe3ZhciBXPVtdLEQ9W107Zm9yKGxldCBiIG9mIG4uSiliLmJpdHJhdGU8PW4uWD9XLnB1c2goYik6RC5wdXNoKGIpO1cuc29ydCgoYix2KT0+di5iaXRyYXRlLWIuYml0cmF0ZSk7CkQuc29ydCgoYix2KT0+Yi5iaXRyYXRlLXYuYml0cmF0ZSk7Cm4uSj1XLmNvbmNhdChEKX07Ck9tPWZ1bmN0aW9uKG4sVyxEKXtuLmNwbiYmKFc9Zy5FVChXLHtjcG46bi5jcG59KSk7RCYmKFc9Zy5FVChXLHt2WjpEfSkpO3JldHVybiBXfTsKUEU9ZnVuY3Rpb24obixXKXtuPW4uaXRhZy50b1N0cmluZygpO1chPT1udWxsJiYobis9Vy5pdGFnLnRvU3RyaW5nKCkpO3JldHVybiBufTsKZ1laPWZ1bmN0aW9uKG4sVyl7aWYoIShnLk1MfHxDJCgpfHx6USgpKSlyZXR1cm4gbnVsbDtuPUtFKFcsbi5TKCJodG1sNV9maWx0ZXJfZm1wNF9pbl9obHMiKSk7aWYoIW4pcmV0dXJuIG51bGw7Vz1bXTt2YXIgRD17fTtmb3IobGV0IGIgb2YgT2JqZWN0LmtleXMobikpZm9yKGxldCB2IG9mIG5bYl0paWYodi5rWil7bGV0IGs9di5rWi5nZXRJZCgpO2lmKCFEW2tdKXtsZXQgaD1uZXcgV0Eoayx2LmtaKTtEW2tdPWg7Vy5wdXNoKGgpfX1yZXR1cm4gVy5sZW5ndGg+MD9XOm51bGx9Owp0bU09ZnVuY3Rpb24obixXLEQsYix2LGssaCl7aWYoIShnLk1MfHxDJCgpfHx6USgpKSlyZXR1cm4gZy5wJCgpO3ZhciB4PXt9LEw9WDNTKEQpLGU9S0UoRCxuLlMoImh0bWw1X2ZpbHRlcl9mbXA0X2luX2hscyIpLG4uVy5LLHgpO2lmKCFlKXJldHVybiBoKHtub3Bsc3Q6MX0pLGcucCQoKTtxbGgoZSk7dmFyIEc9e2ZhaXJwbGF5OiJodHRwczovL3lvdXR1YmUuY29tL2FwaS9kcm0vZnBzP2VrPXVuaW5pdGlhbGl6ZWQifSxyO0Q9W107dmFyIE49W10sSD1bXSxBPW51bGwseT0iIjtiPWImJmIubWF0Y2goL2hsc190aW1lZHRleHRfcGxheWxpc3QvKT9uZXcgbTgoe2l0YWc6IjAiLHVybDpiLGNvZGVjczoidnR0Iix3aWR0aDowLGhlaWdodDowLGZwczowLGJpdHJhdGU6MCxrWjpuZXcgd1AoIkVuZ2xpc2giLCJlbiIsITEpfSk6bnVsbDtmb3IobGV0IFEgb2YgT2JqZWN0LmtleXMoZSkpaWYoIW4uUygiaHRtbDVfZGlzYWJsZV9kcm1faGZyXzEwODAiKXx8USE9PSIzODMiJiZRIT09IjM3MyIpZm9yKGxldCBWIG9mIGVbUV0paWYoVi53aWR0aCl7Zm9yKGxldCBIWiBvZiBWLkopaWYoZVtIWl0pe1YuTj0KSFo7YnJlYWt9Vi5OfHwoVi5OPUdIdChlLFYpKTtsZXQgTHQ9ZVtWLk5dO2lmKCFMdCljb250aW51ZTtELnB1c2goVik7Vi5jb250ZW50UHJvdGVjdGlvbj09PSJmYWlycGxheSImJihyPUcpO2xldCB0aT0iIjtWLlVoPT09IlBRIj90aT0ic21wdGUyMDg0IjpWLlVoPT09IkhMRyImJih0aT0iYXJpYi1zdGQtYjY3Iik7dGkmJih5PXRpKTtILnB1c2goWmYoTHQsW1ZdLGIsayxWLml0YWcsVi53aWR0aCxWLmhlaWdodCxWLmZwcyxMLHZvaWQgMCx2b2lkIDAscix0aSkpO2lmKCFBfHxWLndpZHRoKlYuaGVpZ2h0KlYuZnBzPkEud2lkdGgqQS5oZWlnaHQqQS5mcHMpQT1WfWVsc2UgTi5wdXNoKFYpO2Vsc2UgeFtRXT0iZGlzZHJtaGZyIjtILnJlZHVjZSgoUSxWKT0+Vi5rTCgpLmlzRW5jcnlwdGVkKCkmJlEsITApJiYocj1HKTsKdj1NYXRoLm1heCh2LDApO3ZhciB7ZnBzOlQ9MCx3aWR0aDp6PTAsaGVpZ2h0OkM9MH09QXx8e307QT1uLlMoImh0bWw1X25hdGl2ZV9hdWRpb190cmFja19zd2l0Y2hpbmciKTtILnB1c2goWmYoTixELGIsaywiOTMiLHosQyxULEwsImF1dG8iLHYscix5LEEpKTtPYmplY3QuZW50cmllcyh4KS5sZW5ndGgmJmgoeCk7cmV0dXJuIFZQKG4uVyxILGM5KG4sVyksITEpfTsKWmY9ZnVuY3Rpb24obixXLEQsYix2LGssaCx4LEwsZSxHLHIsTixIKXt2YXIgQT0wLHk9IiI7Zm9yKGxldCBUIG9mIG4peXx8KHk9VC5pdGFnKSxULmF1ZGlvQ2hhbm5lbHMmJlQuYXVkaW9DaGFubmVscz5BJiYoQT1ULmF1ZGlvQ2hhbm5lbHMseT1ULml0YWcpO3Y9bmV3IG11KHYsImFwcGxpY2F0aW9uL3gtbXBlZ1VSTCIse2F1ZGlvOm5ldyBBTSgwLEEpLHZpZGVvOm5ldyBIUihrLGgseCxudWxsLHZvaWQgMCxlLHZvaWQgMCx2b2lkIDAsTiksY29udGVudFByb3RlY3Rpb246cixBYTp5fSk7bj1uZXcgJHYxKG4sVyxEP1tEXTpbXSxiLCEhSCk7bi5YPUc/RzoxMzY5ODQzO3JldHVybiBuZXcgVW0odixuLEwpfTsKWDNTPWZ1bmN0aW9uKG4pe2ZvcihsZXQgVyBvZiBuKWlmKFcudXJsJiYobj1XLnVybC5zcGxpdCgiZXhwaXJlLyIpLCEobi5sZW5ndGg8PTEpKSlyZXR1cm4rblsxXS5zcGxpdCgiLyIpWzBdO3JldHVybiBOYU59OwpHSHQ9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgb2YgT2JqZWN0LmtleXMobikpe2xldCBiPW5bRF1bMF07aWYoIWIud2lkdGgmJmIuY29udGVudFByb3RlY3Rpb249PT1XLmNvbnRlbnRQcm90ZWN0aW9uJiYhYi5hdWRpb0NoYW5uZWxzKXJldHVybiBEfXJldHVybiIifTsKcWxoPWZ1bmN0aW9uKG4pe3ZhciBXPW5ldyBTZXQ7Zm9yKHZhciBEIG9mIE9iamVjdC52YWx1ZXMobikpaWYoRC5sZW5ndGgpe3ZhciBiPURbMF07Yi5oZWlnaHQmJmIuY29kZWNzLnN0YXJ0c1dpdGgoInZwMDkiKSYmVy5hZGQoYi5oZWlnaHQpfUQ9W107aWYoVy5zaXplKWZvcihsZXQgdiBvZiBPYmplY3Qua2V5cyhuKSluW3ZdLmxlbmd0aCYmKGI9blt2XVswXSxiLmhlaWdodCYmVy5oYXMoYi5oZWlnaHQpJiYhYi5jb2RlY3Muc3RhcnRzV2l0aCgidnAwOSIpJiZELnB1c2godikpO2ZvcihsZXQgdiBvZiBEKWRlbGV0ZSBuW3ZdfTsKcnFaPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1bXTtmb3IobGV0IHYgb2YgRCl7aWYoIXZ8fCF2LnVybCljb250aW51ZTtEPVFQKHYudHlwZSwibWVkaXVtIiwiMCIpO2IucHVzaChuZXcgeW4oRCx2LnVybCkpfXJldHVybiBWUChuLlcsYixjOShuLFcpLCExKX07CnNpcj1mdW5jdGlvbihuLFcpe3ZhciBEPVtdLGI9UVAoVy50eXBlLCJhdXRvIixXLml0YWcpO0QucHVzaChuZXcgeW4oYixXLnVybCkpO3JldHVybiBWUChuLlcsRCwhMSwhMCl9OwppaT1mdW5jdGlvbihuKXtyZXR1cm4gbiYmRW1bbl0/RW1bbl06bnVsbH07CnVpPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlICJtdWx0aXZpZXcudXN0cmVhbWVyX2Rpc2FibGVkIjpjYXNlICJzYWJyLmludmFsaWRfaW5wdXRfc3RyZWFtIjpjYXNlICJzYWJyLmxpdmVfbm9fbWF4X3NxIjpjYXNlICJzYWJyLmxpdmVfdW5hdXRob3JpemVkX3JlcXVlc3QiOmNhc2UgInNhYnIubWFsZm9ybWVkX2NvbmZpZyI6Y2FzZSAic2Fici5tZWRpYV9zZXJ2aW5nX2VuZm9yY2VtZW50X2lkX2Vycm9yIjpjYXNlICJzYWJyLm1ldGFkYXRhX2ZldGNoZXJfZXJyb3IiOmNhc2UgInNhYnIubm9fYXVkaW9fc2VsZWN0ZWQiOmNhc2UgInNhYnIubm9fYXZhaWxhYmxlX2Zvcm1hdHMiOmNhc2UgInNhYnIubm9fcmVkaXJlY3RfdXJsIjpjYXNlICJzYWJyLm5vX3ZpZGVvX3NlbGVjdGVkIjpjYXNlICJzYWJyLm90Zl9ub3Rfc3VwcG9ydGVkIjpjYXNlICJzYWJyLnRvb19tYW55X2NodW5rX3JlYWRlcl9lcnJvcl9yZXRyaWVzIjpyZXR1cm4gbjtkZWZhdWx0OnJldHVybiJzYWJyLmNvbmZpZyJ9fTsKb0E9ZnVuY3Rpb24obixXKXtpZihXPVc/LndhdGNoRW5kcG9pbnRTdXBwb3J0ZWRPbmVzaWVDb25maWc/Lmh0bWw1UGxheWJhY2tPbmVzaWVDb25maWcpbi5RYT1uZXcgTiR3KFcpfTsKVGw9ZnVuY3Rpb24obixXLEQsYil7bnx8KG49VyYmZGMuaGFzT3duUHJvcGVydHkoVykmJnpsLmhhc093blByb3BlcnR5KFcpP3psW1ddKyJfIitkY1tXXTp2b2lkIDApO1c9bjtpZighVylyZXR1cm4gbnVsbDtuPVcubWF0Y2gobGkpO2lmKCFufHxuLmxlbmd0aCE9PTUpcmV0dXJuIG51bGw7e2xldCBrPVcubWF0Y2gobGkpO2lmKGspe249TnVtYmVyKGtbM10pO3ZhciB2PVs3LDgsMTAsNSw2XTtuPSEoTnVtYmVyKGtbMV0pPT09MSYmbj09PTgpJiZ2LmluZGV4T2Yobik+PTB9ZWxzZSBuPSExfXJldHVybiBEfHxifHxuP1c6bnVsbH07CkNFPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9e307Zm9yKGxldCB2IG9mIE9iamVjdC5rZXlzKGpNKSl7dmFyIGI9Vz9XK3Y6djtiPW5bYisiX3dlYnAiXXx8bltiXTtnLmpJKGIpJiYoRFtqTVt2XV09Yil9cmV0dXJuIER9Owp3Yz1mdW5jdGlvbihuKXt2YXIgVz17fTtpZighbnx8IW4udGh1bWJuYWlscylyZXR1cm4gVztuPW4udGh1bWJuYWlscy5maWx0ZXIodj0+ISF2LnVybCk7Cm4uc29ydCgodixrKT0+di53aWR0aC1rLndpZHRofHx2LmhlaWdodC1rLmhlaWdodCk7CmZvcih2YXIgRCBvZiBPYmplY3Qua2V5cyhCRSkpe3ZhciBiPU51bWJlcihEKTtsZXQgdj1CRVtiXTtmb3IobGV0IGsgb2YgbilpZihrLndpZHRoPj1iKXtiPUZDKGsudXJsKTtnLmpJKGIpJiYoV1t2XT1iKTticmVha319KEQ9bi5wb3AoKSkmJkQud2lkdGg+PTEyODAmJihEPUZDKEQudXJsKSxnLmpJKEQpJiYoV1sibWF4cmVzZGVmYXVsdC5qcGciXT1EKSk7cmV0dXJuIFd9OwpGQz1mdW5jdGlvbihuKXtyZXR1cm4gbi5zdGFydHNXaXRoKCIvLyIpPyJodHRwczoiK246bn07Ck1GPWZ1bmN0aW9uKG4pe3JldHVybiBuJiZuLmJhc2VVcmx8fCIifTsKUkE9ZnVuY3Rpb24obil7bj1nLm9FKG4pO2ZvcihsZXQgVyBvZiBPYmplY3Qua2V5cyhuKSl7bGV0IEQ9bltXXTtuW1ddPUFycmF5LmlzQXJyYXkoRCk/RFswXTpEfXJldHVybiBufTsKWWx3PWZ1bmN0aW9uKG4sVyl7Zm9yKHZhciBEIG9mIFcpaWYoVz1ELnBsYXllckFubm90YXRpb25zVXJsc1JlbmRlcmVyKXtXLmFkc09ubHkmJihuLlJtPSEwKTtpZihEPVcubG9hZFBvbGljeSluLmFubm90YXRpb25zTG9hZFBvbGljeT1wM01bRF07aWYoRD1XLmludmlkZW9Vcmwpbi5lYT1GTihEKTtuLnk1PSEwO2JyZWFrfX07ClFuPWZ1bmN0aW9uKG4sVyl7bi5ib3RndWFyZERhdGE9Vy5wbGF5ZXJBdHRlc3RhdGlvblJlbmRlcmVyLmJvdGd1YXJkRGF0YTtXPVcucGxheWVyQXR0ZXN0YXRpb25SZW5kZXJlci5jaGFsbGVuZ2U7VyE9bnVsbCYmKG4ucEs9Vyl9OwpIVng9ZnVuY3Rpb24obixXKXtuLmNhcHRpb25UcmFja3M9W107aWYoVy5jYXB0aW9uVHJhY2tzKWZvcih2YXIgRCBvZiBXLmNhcHRpb25UcmFja3Mpe3ZhciBiPVZuKEQuYmFzZVVybCk7aWYoIWIpcmV0dXJuO2I9e2lzX3RyYW5zbGF0ZWFibGU6ISFELmlzVHJhbnNsYXRhYmxlLGxhbmd1YWdlQ29kZTpELmxhbmd1YWdlQ29kZSxsYW5ndWFnZU5hbWU6RC5uYW1lJiZnLkRwKEQubmFtZSksdXJsOmIsdnNzX2lkOkQudnNzSWQsa2luZDpELmtpbmR9O2IubmFtZT1ELnRyYWNrTmFtZTtiLmRpc3BsYXlOYW1lPUQubmFtZSYmZy5EcChELm5hbWUpO24uY2FwdGlvblRyYWNrcy5wdXNoKG5ldyBnLlF3KGIpKX1uLlR3PVcuYXVkaW9UcmFja3N8fFtdO24uTyQ9Vy5kZWZhdWx0QXVkaW9UcmFja0luZGV4fHwwO24ucnA9W107aWYoVy50cmFuc2xhdGlvbkxhbmd1YWdlcylmb3IobGV0IHYgb2YgVy50cmFuc2xhdGlvbkxhbmd1YWdlcyl7RD17fTtELmxhbmd1YWdlQ29kZT12Lmxhbmd1YWdlQ29kZTsKRC5sYW5ndWFnZU5hbWU9Zy5EcCh2Lmxhbmd1YWdlTmFtZSk7aWYodi50cmFuc2xhdGlvblNvdXJjZVRyYWNrSW5kaWNlcyl7RC50cmFuc2xhdGlvblNvdXJjZVRyYWNrSW5kaWNlcz1bXTtmb3IobGV0IGsgb2Ygdi50cmFuc2xhdGlvblNvdXJjZVRyYWNrSW5kaWNlcylELnRyYW5zbGF0aW9uU291cmNlVHJhY2tJbmRpY2VzLnB1c2goayl9aWYodi5leGNsdWRlQXVkaW9UcmFja0luZGljZXMpe0QuZXhjbHVkZUF1ZGlvVHJhY2tJbmRpY2VzPVtdO2ZvcihsZXQgayBvZiB2LmV4Y2x1ZGVBdWRpb1RyYWNrSW5kaWNlcylELmV4Y2x1ZGVBdWRpb1RyYWNrSW5kaWNlcy5wdXNoKGspfW4ucnAucHVzaChEKX1uLmc1PVtdO2lmKFcuZGVmYXVsdFRyYW5zbGF0aW9uU291cmNlVHJhY2tJbmRpY2VzKWZvcihsZXQgdiBvZiBXLmRlZmF1bHRUcmFuc2xhdGlvblNvdXJjZVRyYWNrSW5kaWNlcyluLmc1LnB1c2godil9Owpmb2k9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVcuZXJyb3JTY3JlZW47aWYoIShiJiYoYi5wbGF5ZXJMZWdhY3lEZXNrdG9wWXBjT2ZmZXJSZW5kZXJlcnx8Yi5wbGF5ZXJMZWdhY3lEZXNrdG9wWXBjVHJhaWxlclJlbmRlcmVyfHxiLnlwY1RyYWlsZXJSZW5kZXJlcil8fEQmJkQuaXNVcGNvbWluZ3x8WyJPSyIsIkxJVkVfU1RSRUFNX09GRkxJTkUiLCJGVUxMU0NSRUVOX09OTFkiXS5pbmNsdWRlcyhXLnN0YXR1cykpKXtuLmVycm9yQ29kZT1paShXLmVycm9yQ29kZSl8fCJhdXRoIjtpZihEPWImJmIucGxheWVyRXJyb3JNZXNzYWdlUmVuZGVyZXIpe24ucGxheWVyRXJyb3JNZXNzYWdlUmVuZGVyZXI9RDtsZXQgdj1ELnJlYXNvbjt2JiYobi5lcnJvclJlYXNvbj1nLkRwKHYpKTtpZihEPUQuc3VicmVhc29uKW4ud2k9Zy5EcChEKSxuLlRZPUR9ZWxzZSBuLmVycm9yUmVhc29uPVcucmVhc29ufHxudWxsO0Q9Vy5zdGF0dXM7RD09PSJMT0dJTl9SRVFVSVJFRCI/bi5lcnJvckRldGFpbD0KIjEiOkQ9PT0iQ09OVEVOVF9DSEVDS19SRVFVSVJFRCI/bi5lcnJvckRldGFpbD0iMiI6RD09PSJBR0VfQ0hFQ0tfUkVRVUlSRUQiPyhXPShXPVcuZXJyb3JTY3JlZW4pJiZXLnBsYXllckthdlJlbmRlcmVyLG4uZXJyb3JEZXRhaWw9VyYmVy5rYXZVcmw/IjQiOiIzIik6KGI9Yj8ucGxheWVyRXJyb3JNZXNzYWdlUmVuZGVyZXI/LnByb2NlZWRCdXR0b24/LmJ1dHRvblJlbmRlcmVyPy5jb21tYW5kLG4uZXJyb3JEZXRhaWw9Vy5pc0Jsb2NrZWRJblJlc3RyaWN0ZWRNb2RlPyI1IjpnLncoYixnLmNFKT8uc2lnbmFsPT09IlJFTE9BRF9QQUdFIj8iNyI6IjAiKX19OwpKcVo9ZnVuY3Rpb24obixXKXtuLllpPSEwO3ZhciBEPVcuaGVhcnRiZWF0VG9rZW47bi5kcm1TZXNzaW9uSWQ9Vy5kcm1TZXNzaW9uSWR8fCIiO24uaGVhcnRiZWF0VG9rZW49RHx8IiI7bi5zRT1OdW1iZXIoVy5pbnRlcnZhbE1pbGxpc2Vjb25kcyk7bi5sND1OdW1iZXIoVy5tYXhSZXRyaWVzKTtuLkg2PSEhVy5zb2Z0RmFpbE9uRXJyb3I7bi5EZD0hIVcudXNlSW5uZXJ0dWJlSGVhcnRiZWF0c0ZvckRybTtuLmhlYXJ0YmVhdFNlcnZlckRhdGE9Vy5oZWFydGJlYXRTZXJ2ZXJEYXRhO24uUE09ISFXLmhlYXJ0YmVhdEF0dGVzdGF0aW9uQ29uZmlnPy5yZXF1aXJlc0F0dGVzdGF0aW9ufTsKQXExPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIG9mIFcpe1c9RC5pbnRlcnN0aXRpYWxzLm1hcChiPT57dmFyIHY9Zy53KGIsSW9iKTtpZih2KXJldHVybntpc195dG9faW50ZXJzdGl0aWFsOiEwLHJhd19wbGF5ZXJfcmVzcG9uc2U6dn07aWYoYj1nLncoYixTbE0pKXJldHVybiBPYmplY3QuYXNzaWduKHtpc195dG9faW50ZXJzdGl0aWFsOiEwfSxnLml3KGIpKX0pOwpmb3IobGV0IGIgb2YgVylzd2l0Y2goRC5wb2RDb25maWcucGxheWJhY2tQbGFjZW1lbnQpe2Nhc2UgIklOVEVSU1RJVElBTF9QTEFZQkFDS19QTEFDRU1FTlRfUFJFIjpuLmludGVyc3RpdGlhbHM9bi5pbnRlcnN0aXRpYWxzLmNvbmNhdCh7dGltZTowLHBsYXllclZhcnM6YixrcTo1fSk7YnJlYWs7Y2FzZSAiSU5URVJTVElUSUFMX1BMQVlCQUNLX1BMQUNFTUVOVF9QT1NUIjpuLmludGVyc3RpdGlhbHM9bi5pbnRlcnN0aXRpYWxzLmNvbmNhdCh7dGltZToweDdmZmZmZmZmZmZmZmYscGxheWVyVmFyczpiLGtxOjZ9KTticmVhaztjYXNlICJJTlRFUlNUSVRJQUxfUExBWUJBQ0tfUExBQ0VNRU5UX0lOU0VSVF9BVF9WSURFT19USU1FIjpXPU51bWJlcihELnBvZENvbmZpZy50aW1lVG9JbnNlcnRBdE1pbGxpcyksbi5pbnRlcnN0aXRpYWxzPW4uaW50ZXJzdGl0aWFscy5jb25jYXQoe3RpbWU6VyxwbGF5ZXJWYXJzOmIsa3E6Vz09PTA/NTo3fSl9fX07Cm12aj1mdW5jdGlvbihuLFcpe2lmKFc9Vy5maW5kKEQ9PiEoIUR8fCFELnRvb2x0aXBSZW5kZXJlcikpKW4udG9vbHRpcFJlbmRlcmVyPVcudG9vbHRpcFJlbmRlcmVyfTsKYUE9ZnVuY3Rpb24obixXKXtXLnN1YnNjcmliZUNvbW1hbmQmJihuLnN1YnNjcmliZUNvbW1hbmQ9Vy5zdWJzY3JpYmVDb21tYW5kKTtXLnVuc3Vic2NyaWJlQ29tbWFuZCYmKG4udW5zdWJzY3JpYmVDb21tYW5kPVcudW5zdWJzY3JpYmVDb21tYW5kKTtXLmFkZFRvV2F0Y2hMYXRlckNvbW1hbmQmJihuLmFkZFRvV2F0Y2hMYXRlckNvbW1hbmQ9Vy5hZGRUb1dhdGNoTGF0ZXJDb21tYW5kKTtXLnJlbW92ZUZyb21XYXRjaExhdGVyQ29tbWFuZCYmKG4ucmVtb3ZlRnJvbVdhdGNoTGF0ZXJDb21tYW5kPVcucmVtb3ZlRnJvbVdhdGNoTGF0ZXJDb21tYW5kKTtXLmdldFNoYXJlUGFuZWxDb21tYW5kJiYobi5nZXRTaGFyZVBhbmVsQ29tbWFuZD1XLmdldFNoYXJlUGFuZWxDb21tYW5kKX07Cm5MPWZ1bmN0aW9uKG4sVyl7VyE9bnVsbD8obi5yUj1XLG4uaU49ITApOihuLnJSPSIiLG4uaU49ITEpfTsKUG4xPWZ1bmN0aW9uKG4sVyl7aWYoVz1XLnBsYXllckNvbnRyb2xzT3ZlcmxheVJlbmRlcmVyKW5MKG4sVy5jb250cm9sQmdIdG1sKSxXLm11dGVkQXV0b3BsYXk/KFc9Zy53KFcubXV0ZWRBdXRvcGxheSxLSTEpKSYmVy5lbmRTY3JlZW4mJihXPWcudyhXLmVuZFNjcmVlbixPVngpKSYmVy50ZXh0JiYobi5NVj1nLkRwKFcudGV4dCkpOm4ubXV0ZWRBdXRvcGxheT0hMX07ClpWaT1mdW5jdGlvbihuLFcpe3ZhciBEPVcuYmFja2dyb3VuZGFiaWxpdHk7RCYmRC5iYWNrZ3JvdW5kYWJpbGl0eVJlbmRlcmVyLmJhY2tncm91bmRhYmxlJiYobi5iYWNrZ3JvdW5kYWJsZT0hMCk7Vy5vZmZsaW5lYWJpbGl0eT8ub2ZmbGluZWFiaWxpdHlSZW5kZXJlcj8ub2ZmbGluZWFibGUmJihuLm9mZmxpbmVhYmxlPSEwKTtpZihEPVcuY29udGV4dFBhcmFtcyluLmNvbnRleHRQYXJhbXM9RDsoRD1XLnBpY3R1cmVJblBpY3R1cmUpJiZELnBpY3R1cmVJblBpY3R1cmVSZW5kZXJlci5wbGF5YWJsZUluUGlwJiYobi5waXBhYmxlPSEwKTtXLnBsYXlhYmxlSW5FbWJlZCYmKG4uYWxsb3dFbWJlZD0hMCk7aWYoRD1XLnlwY0NsaWNrd3JhcClXPUQucGxheWVyTGVnYWN5RGVza3RvcFlwY0NsaWNrd3JhcFJlbmRlcmVyLEQ9RC55cGNSZW50YWxBY3RpdmF0aW9uUmVuZGVyZXIsVz8obi5Jaz1XLmR1cmF0aW9uTWVzc2FnZXx8IiIsbi5EbD0hMCk6RCYmKFc9RC5kdXJhdGlvbk1lc3NhZ2UsCm4uSWs9Vz9nLkRwKFcpOiIiLG4uRGw9ITApfTsKeXExPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1NRihXLmdvb2dsZVJlbWFya2V0aW5nVXJsKTtiJiYobi5nb29nbGVSZW1hcmtldGluZ1VybD1iKTtpZihiPU1GKFcueW91dHViZVJlbWFya2V0aW5nVXJsKSluLnlvdXR1YmVSZW1hcmtldGluZ1VybD1iO2lmKGI9Vy5oZWFydGJlYXRMb2dnaW5nVG9rZW4pbi5oZWFydGJlYXRMb2dnaW5nVG9rZW49YjtiPXt9O3ZhciB2PU1GKFcucHRyYWNraW5nVXJsKTtpZih2KXt2PVJBKHYpO3ZhciBrPXYub2lkO2smJihuLlhvPWspO2lmKGs9di5wbHR5cGUpbi5xOD1rO2lmKGs9di5wdGNobiluLmgxPWs7aWYoaz12LnB0ayluLnh6PWVuY29kZVVSSUNvbXBvbmVudChrKTtpZih2PXYubSluLnk5PXZ9aWYodj1NRihXLnFvZVVybCkpe3Y9Zy5vRSh2KTtmb3IoaCBvZiBPYmplY3Qua2V5cyh2KSlrPXZbaF0sdltoXT1BcnJheS5pc0FycmF5KGspP2suam9pbigiLCIpOms7dmFyIGg9djtuLnpiPWg7aWYodj1oLmNhdCluLlMoImh0bWw1X2VuYWJsZV9xb2VfY2F0X2xpc3QiKT8Kbi5rSz1uLmtLLmNvbmNhdCh2LnNwbGl0KCIsIikpOm4ua3k9djtpZih2PWgubGl2ZSluLnVoPXY7aWYoaD1oLmRybV9wcm9kdWN0KW4uZHJtUHJvZHVjdD1ofWlmKGg9TUYoVy52aWRlb3N0YXRzUGxheWJhY2tVcmwpKXtoPVJBKGgpO2lmKHY9aC5hZGZvcm1hdClpZihELmFkZm9ybWF0PXYsaz1uLkcoKSxrPVRsKHYsbi5GdyxrLkosay5LKSluLmFkRm9ybWF0PWs7aWYoaz1oLmFxaSlELmFkX3F1ZXJ5X2lkPWs7aWYoRD1oLmF1dG9wbGF5KW4uR3U9RD09IjEiLG4uVlQ9RD09IjEiO2lmKEQ9aC5hdXRvbmF2KW4uaXNBdXRvbmF2PUQ9PSIxIjtpZihEPWguZGVsYXkpbi5vRD1nLk5oKEQpO2lmKEQ9aC5laSluLmV2ZW50SWQ9RDtpZihEPWcuZDEoaC5hZGNvbnRleHQpKXRyeXt2YXIgeD1VdjIoRCk7eCYmKG4uZk49eCl9Y2F0Y2goTCl7Zy5HcShFcnJvcigiTWFsZm9ybWVkIGFkQ29udGV4dCIpKX1pZihEfHx2KW4uR3U9ITA7aWYoeD1oLmZlYXR1cmUpbi5TOT14O2lmKHg9aC5saXN0KW4ucGxheWxpc3RJZD0KeDtpZih4PWgub2Ypbi5SSD14O2lmKHg9aC5vc2lkKW4ub3NpZD14O2lmKHg9aC5yZWZlcnJlciluLnJlZmVycmVyPXg7aWYoeD1oLnNkZXRhaWwpbi53dT14O2lmKHg9aC5zb3VyY2VpZCluLmJJPXg7aWYoeD1oLnNzcnQpbi5BUj14PT0iMSI7aWYoeD1oLnN1YnNjcmliZWQpbi5zdWJzY3JpYmVkPXg9PSIxIjtpZih4PWgudWdhKW4udXNlckdlbmRlckFnZT14O2lmKHg9aC51cHQpbi5IcT14O2lmKHg9aC52bSluLnZpZGVvTWV0YWRhdGE9eDtiLnBsYXliYWNrPWh9aWYoeD1NRihXLnZpZGVvc3RhdHNXYXRjaHRpbWVVcmwpKXt4PVJBKHgpO2lmKEQ9eC5hbGQpbi5GTD1EO2Iud2F0Y2h0aW1lPXh9aWYoeD1NRihXLmF0clVybCkpeD1SQSh4KSxiLmF0cj14O2lmKHg9TUYoVy5lbmdhZ2VVcmwpKXg9UkEoeCksYi5lbmdhZ2U9eDtuLlhUPWI7Vy5wcm9tb3RlZFBsYXliYWNrVHJhY2tpbmcmJihiPVcucHJvbW90ZWRQbGF5YmFja1RyYWNraW5nLGIuc3RhcnRVcmxzJiYobi5Gcj1iLnN0YXJ0VXJscyksCmIuZmlyc3RRdWFydGlsZVVybHMmJihuLndOPWIuZmlyc3RRdWFydGlsZVVybHMpLGIuc2Vjb25kUXVhcnRpbGVVcmxzJiYobi5DdD1iLnNlY29uZFF1YXJ0aWxlVXJscyksYi50aGlyZFF1YXJ0aWxlVXJscyYmKG4ub0g9Yi50aGlyZFF1YXJ0aWxlVXJscyksYi5jb21wbGV0ZVVybHMmJihuLkF0PWIuY29tcGxldGVVcmxzKSxiLmVuZ2FnZWRWaWV3VXJscyYmKGIuZW5nYWdlZFZpZXdVcmxzLmxlbmd0aD4xJiZnLkdxKG5ldyBnLlF4KCJUaGVyZSBhcmUgbW9yZSB0aGFuIG9uZSBlbmdhZ2VkX3ZpZXdfdXJscy4iKSksbi5EeD1iLmVuZ2FnZWRWaWV3VXJsc1swXSkpO1cuc2VyaWFsaXplZE9uZVRpbWVRb2VDb250ZXh0RGF0YSYmKG4uc2VyaWFsaXplZE9uZVRpbWVRb2VDb250ZXh0RGF0YT1XLnNlcmlhbGl6ZWRPbmVUaW1lUW9lQ29udGV4dERhdGEpO1cudnNzM0NvbmZpZz8uc2VyaWFsaXplZFdhdGNoVGltZUNvbnRleHREYXRhJiYobi5zZXJpYWxpemVkV2F0Y2hUaW1lQ29udGV4dERhdGE9ClcudnNzM0NvbmZpZy5zZXJpYWxpemVkV2F0Y2hUaW1lQ29udGV4dERhdGEpfTsKRVkxPWZ1bmN0aW9uKG4sVyxEKXtmb3IobGV0IGIgb2YgVylpZihiJiYoVz1iLnBsYXllckxlZ2FjeURlc2t0b3BXYXRjaEFkc1JlbmRlcmVyKSYmKFc9Vy5wbGF5ZXJBZFBhcmFtcykpe1cuYXV0b3BsYXk9PSIxIiYmKG4uR3U9ITAsbi5WVD0hMCk7bi5Jbz1XLmVuY29kZWRBZFNhZmV0eVJlYXNvbnx8bnVsbDtXLnNob3dDb250ZW50VGh1bWJuYWlsIT09dm9pZCAwJiYobi5xMj0hIVcuc2hvd0NvbnRlbnRUaHVtYm5haWwpO0QuZW5hYmxlZF9lbmdhZ2VfdHlwZXM9Vy5lbmFibGVkRW5nYWdlVHlwZXM7YnJlYWt9fTsKaVYyPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Vy5tYW5pZmVzdGxlc3NXaW5kb3dlZExpdmVDb25maWc7aWYoRCl7dmFyIGI9TnVtYmVyKEQubWluRHZyU2VxdWVuY2UpLHY9TnVtYmVyKEQubWF4RHZyU2VxdWVuY2UpLGs9TnVtYmVyKEQubWluRHZyTWVkaWFUaW1lTXMpLGg9TnVtYmVyKEQubWF4RHZyTWVkaWFUaW1lTXMpO0Q9TnVtYmVyKEQuc3RhcnRXYWxsdGltZU1zKTtiJiYobi5JdD1iKTtrJiYobi5KVT1rLzFFMyxuLlMoImh0bWw1X3NhYnJfcGFyc2VfbGl2ZV9tZXRhZGF0YV9wbGF5YmFja19ib3VuZGFyaWVzIikmJmcuWU4obikmJihuLkgyPWsvMUUzKSk7diYmKG4uSFA9dik7aCYmKG4ub1I9aC8xRTMsbi5TKCJodG1sNV9zYWJyX3BhcnNlX2xpdmVfbWV0YWRhdGFfcGxheWJhY2tfYm91bmRhcmllcyIpJiZnLllOKG4pJiYobi5XTT1oLzFFMykpO0QmJihuLklUPUQvMUUzKTsoYnx8aykmJih2fHxoKSYmKG4uUkk9ITAsbi5pc0xpdmVQbGF5YmFjaz0hMCxuLmFsbG93TGl2ZUR2cj0KITAsbi5YZz0hMSl9aWYoYj1XLmRhaUNvbmZpZyl7aWYoYi5lbmFibGVEYWkpe24uTFk9ITA7aWYodj1iLmVuYWJsZVNlcnZlclN0aXRjaGVkRGFpKW4uZW5hYmxlU2VydmVyU3RpdGNoZWREYWk9djtpZih2PWIuZW5hYmxlUHJlcm9sbCluLktkPXZ9aWYoYi5kYWlUeXBlPT09IkRBSV9UWVBFX1NTX0RJU0FCTEVEInx8Yi5kZWJ1Z0luZm8/LmlzRGlzYWJsZWRVbnBsdWdnZWRDaGFubmVsKW4uSmw9ITA7IW4uUygiaHRtbDVfdW1wX3N0aXRjaGVkX21ldGFkYXRhX3Vuc3BlY2lmaWVkX2hhbmRsaW5nIil8fGIuZGFpVHlwZSE9PSJEQUlfVFlQRV9VTlNQRUNJRklFRCImJmIuZGFpVHlwZSE9PXZvaWQgMHx8KG4uakY9ITApO2IuZGFpVHlwZT09PSJEQUlfVFlQRV9DTElFTlRfU1RJVENIRUQiJiYobi5DVT0hMCk7Yi5hbGxvd1VzdHJlYW1lclJlcXVlc3RBZGNvbmZpZyYmKG4uUTY9ITApO2Iuc2VuZFNzZGFpTWlzc2luZ0FkQnJlYWtSZWFzb25zJiYobi5LVj0hMCl9aWYoYj1XLmF1ZGlvQ29uZmlnKXt2PQpuLmhnO2IudHJhY2tBYnNvbHV0ZUxvdWRuZXNzTGtmcyE9bnVsbCYmKHYuSj1iLnRyYWNrQWJzb2x1dGVMb3VkbmVzc0xrZnMpO2IubG91ZG5lc3NUYXJnZXRMa2ZzIT1udWxsJiYodi5sb3VkbmVzc1RhcmdldExrZnM9Yi5sb3VkbmVzc1RhcmdldExrZnMpO2IubG91ZG5lc3NEYiE9bnVsbCYmKHYuVz1iLmxvdWRuZXNzRGIpO2lmKGs9Yi5sb3VkbmVzc05vcm1hbGl6YXRpb25Db25maWcpay5hcHBseVN0YXRlZnVsTm9ybWFsaXphdGlvbiYmKHYuYXBwbHlTdGF0ZWZ1bE5vcm1hbGl6YXRpb249ITApLGsucHJlc2VydmVTdGF0ZWZ1bExvdWRuZXNzVGFyZ2V0JiYodi5wcmVzZXJ2ZVN0YXRlZnVsTG91ZG5lc3NUYXJnZXQ9ITApLGsubWluaW11bUxvdWRuZXNzVGFyZ2V0TGtmcyE9bnVsbCYmKHYubWluaW11bUxvdWRuZXNzVGFyZ2V0TGtmcz1rLm1pbmltdW1Mb3VkbmVzc1RhcmdldExrZnMpO3Y9Yi5sb3VkbmVzc0RiO3YhPW51bGwmJihuLllLPXYpO2IuYXVkaW9NdXRlZCYmKG4ueWw9CiEwKTtiLm11dGVPblN0YXJ0JiYobi5OMD0hMCk7Yi5wbGF5QXVkaW9Pbmx5JiYobi5KZz0hMCl9aWYodj1XLnBsYXliYWNrRW5kQ29uZmlnKWI9di5lbmRTZWNvbmRzLHY9di5saW1pdGVkUGxheWJhY2tEdXJhdGlvbkluU2Vjb25kcyxuLm11dGVkQXV0b3BsYXkmJihiJiYobi5lbmRTZWNvbmRzPWIpLHYmJihuLmxpbWl0ZWRQbGF5YmFja0R1cmF0aW9uSW5TZWNvbmRzPXYpKTtpZihiPVcuZmFpclBsYXlDb25maWcpe2lmKHY9Yi5jZXJ0aWZpY2F0ZSluLkNpPWcuZDEodik7dj1OdW1iZXIoYi5rZXlSb3RhdGlvblBlcmlvZE1zKTt2PjAmJihuLlY5PXYpO2I9TnVtYmVyKGIua2V5UHJlZmV0Y2hNYXJnaW5Ncyk7Yj4wJiYobi5qaT1iKX1pZigoYj1XLnBsYXliYWNrU3RhcnRDb25maWcpJiYhbi5OVil7bi52RT1OdW1iZXIoYi5zdGFydFNlY29uZHMpO2s9Yi5saXZlVXRjU3RhcnRTZWNvbmRzO3Y9ISFuLmxpdmVVdGNTdGFydFNlY29uZHMmJm4ubGl2ZVV0Y1N0YXJ0U2Vjb25kcz4wOwprJiYhdiYmKG4ubGl2ZVV0Y1N0YXJ0U2Vjb25kcz1OdW1iZXIoaykpO2lmKGs9Yi5zdGFydFBvc2l0aW9uKWlmKChoPWsudXRjVGltZU1pbGxpcykmJiF2JiYobi5saXZlVXRjU3RhcnRTZWNvbmRzPU51bWJlcihoKSouMDAxKSx2PWsuc3RyZWFtVGltZU1pbGxpcyluLlVyPU51bWJlcih2KSouMDAxO24ucHJvZ3Jlc3NCYXJTdGFydFBvc2l0aW9uPWIucHJvZ3Jlc3NCYXJTdGFydFBvc2l0aW9uO24ucHJvZ3Jlc3NCYXJFbmRQb3NpdGlvbj1iLnByb2dyZXNzQmFyRW5kUG9zaXRpb259ZWxzZSBpZihiPVcuc2tpcHBhYmxlU2VnbWVudHNDb25maWcpe2lmKHY9Yi5pbnRyb1NraXBEdXJhdGlvbk1zKW4uUEU9TnVtYmVyKHYpLzFFMztpZihiPWIub3V0cm9Ta2lwRHVyYXRpb25NcyluLm50PU51bWJlcihiKS8xRTN9aWYodj1XLnNraXBwYWJsZUludHJvQ29uZmlnKWI9TnVtYmVyKHYuc3RhcnRNcyksdj1OdW1iZXIodi5lbmRNcyksaXNOYU4oYil8fGlzTmFOKHYpfHwobi53Qj1iLG4uQXA9CnYpO2lmKGI9Vy5zdHJlYW1TZWxlY3Rpb25Db25maWcpbi5HZj1OdW1iZXIoYi5tYXhCaXRyYXRlKTtpZihiPVcudnJDb25maWcpbi5Kbz1iLnBhcnRpYWxTcGhlcmljYWw9PSIxIjtpZihiPVcud2ViRHJtQ29uZmlnKXtiLnNraXBXaWRldmluZSYmKG4uSmo9ITApO2lmKHY9Yi53aWRldmluZVNlcnZpY2VDZXJ0KW4uRmM9Zy5kMSh2KTtiLnVzZUNvYmFsdFdpZGV2aW5lJiYobi51c2VDb2JhbHRXaWRldmluZT0hMCk7Yi5zdGFydFdpdGhOb1F1YWxpdHlDb25zdHJhaW50JiYobi5aOT0hMCl9aWYoYj1XLm1lZGlhQ29tbW9uQ29uZmlnKXtpZih2PWIuZHluYW1pY1JlYWRhaGVhZENvbmZpZyl7bi5tYXhSZWFkQWhlYWRNZWRpYVRpbWVNcz12Lm1heFJlYWRBaGVhZE1lZGlhVGltZU1zfHxOYU47bi5taW5SZWFkQWhlYWRNZWRpYVRpbWVNcz12Lm1pblJlYWRBaGVhZE1lZGlhVGltZU1zfHxOYU47bi5yZWFkQWhlYWRHcm93dGhSYXRlTXM9di5yZWFkQWhlYWRHcm93dGhSYXRlTXN8fE5hTjsKaWYodj1iPy5tZWRpYVVzdHJlYW1lclJlcXVlc3RDb25maWc/LnZpZGVvUGxheWJhY2tVc3RyZWFtZXJDb25maWcpbi5hST1nLmQxKHYpO2lmKCh2PWI/LnNhYnJDb250ZXh0VXBkYXRlcykmJnYubGVuZ3RoPjApZm9yKHZhciB4IG9mIHYpeC50eXBlJiZ4LnZhbHVlJiYodj17dHlwZTp4LnR5cGUsc2NvcGU6eC5zY29wZSx2YWx1ZTpnLmQxKHgudmFsdWUpfHx2b2lkIDAsc2VuZEJ5RGVmYXVsdDp4LnNlbmRCeURlZmF1bHR9LG4uc2FickNvbnRleHRVcGRhdGVzLnNldCh4LnR5cGUsdikpfWlmKHg9Yi5zZXJ2ZXJQbGF5YmFja1N0YXJ0Q29uZmlnKW4uc2VydmVyUGxheWJhY2tTdGFydENvbmZpZz14O2IudXNlU2VydmVyRHJpdmVuQWJyJiYobi5ERT0hMCk7aWYoeD1iLnJlcXVlc3RQaXBlbGluaW5nQ29uZmlnKW4ucmVxdWVzdFBpcGVsaW5pbmdDb25maWc9eH1pZih4PVcuaW5saW5lUGxheWJhY2tDb25maWcpbi52MT0hIXguc2hvd0F1ZGlvQ29udHJvbHM7aWYoeD1XLmVtYmVkZGVkUGxheWVyQ29uZmlnKXtuLmVtYmVkZGVkUGxheWVyQ29uZmlnPQp4O2lmKHY9eC5lbWJlZGRlZFBsYXllck1vZGUpYj1uLkcoKSxiLmNKPXYsYi5EPXY9PT0iRU1CRURERURfUExBWUVSX01PREVfUEZMIjtpZih4PXgucGVybWlzc2lvbnMpbi5hbGxvd0ltYU1vbmV0aXphdGlvbj0hIXguYWxsb3dJbWFNb25ldGl6YXRpb259aWYoeD1XLndlYlBsYXllckNvbmZpZylpZih4LmdhdGV3YXlFeHBlcmltZW50R3JvdXAmJihuLmdhdGV3YXlFeHBlcmltZW50R3JvdXA9eC5nYXRld2F5RXhwZXJpbWVudEdyb3VwKSx4LmlzUHJveGltYUVsaWdpYmxlJiYobi5pc1Byb3hpbWFMYXRlbmN5RWxpZ2libGU9ITApLHg9eC5tdWx0aUFzcGVjdFN0cmVhbWluZ0NvbmZpZyluLldrPSEwLG4ucGxheWVyT3JpZW50YXRpb249eC5wbGF5ZXJPcmllbnRhdGlvbix4LnBsYXllck9yaWVudGF0aW9uPT09IlBMQVlFUl9PUklFTlRBVElPTl9IT1JJWk9OVEFMIj9uLkJqPXgudmVydGljYWxDb21tYW5kfHxudWxsOngucGxheWVyT3JpZW50YXRpb249PT0iUExBWUVSX09SSUVOVEFUSU9OX1ZFUlRJQ0FMIiYmCihuLkJqPXguaG9yaXpvbnRhbENvbW1hbmR8fG51bGwpO1c9Vy5wbGF5ZXJDb250cm9sc0NvbmZpZztXPy5pc1NlZWthYmxlIT09dm9pZCAwJiYobi5pc1NlZWthYmxlPSEhVy5pc1NlZWthYmxlKX07CnU2Uz1mdW5jdGlvbihuLFcsRCl7dmFyIGI9Vy5mb3JtYXRzO2lmKGIpe3ZhciB2PVtdO2Zvcih2YXIgayBvZiBiKXYucHVzaChgJHtrLml0YWd9LyR7ay53aWR0aH14JHtrLmhlaWdodH1gKTtuLkdqPXYuam9pbigiLCIpO3Y9W107Zm9yKHZhciBoIG9mIGIpe2I9e2l0YWc6aC5pdGFnLHR5cGU6aC5taW1lVHlwZSxxdWFsaXR5OmgucXVhbGl0eX07KGs9aC51cmwpJiYoYi51cmw9ayk7bGV0IHt4aTpOLEVsOkgseTc6QSxzOnl9PVAwKDcsNjkyLGgpO04mJihiLnVybD1ILGIuc3A9QSxiLnM9eSk7di5wdXNoKHlHKGIpKX1uLmNmPXYuam9pbigiLCIpfWlmKGg9Vy5obHNGb3JtYXRzKXt2PXt9O2lmKEQmJihEPUQuYXVkaW9QYWlyaW5nQ29uZmlnKSYmRC5wYWlycylmb3IodmFyIHggb2YgRC5wYWlycylEPXgudmlkZW9JdGFnLHZbRF18fCh2W0RdPVtdKSx2W0RdLnB1c2goeC5hdWRpb0l0YWcpO3g9e307Zm9yKHZhciBMIG9mIGgpeFtMLml0YWddPUwuYml0cmF0ZTtMPVtdO2ZvcihHIG9mIGgpe0Q9CntpdGFnOkcuaXRhZyx0eXBlOkcubWltZVR5cGUsdXJsOkcudXJsLGJpdHJhdGU6Ry5iaXRyYXRlLHdpZHRoOkcud2lkdGgsaGVpZ2h0OkcuaGVpZ2h0LGZwczpHLmZwc307aWYoaD1HLmF1ZGlvVHJhY2spaWYoYj1oLmRpc3BsYXlOYW1lKUQubmFtZT1iLEQuYXVkaW9fdHJhY2tfaWQ9aC5pZCxoLmF1ZGlvSXNEZWZhdWx0JiYoRC5pc19kZWZhdWx0PSIxIik7aWYoRy5kcm1GYW1pbGllcyl7aD1bXTtmb3IodmFyIGUgb2YgRy5kcm1GYW1pbGllcyloLnB1c2goSlpbZV0pO0QuZHJtX2ZhbWlsaWVzPWguam9pbigiLCIpfShoPXZbRy5pdGFnXSkmJmgubGVuZ3RoJiYoRC5hdWRpb19pdGFnPWguam9pbigiLCIpLChoPXhbaFswXV0pJiYoRC5iaXRyYXRlKz1oKSk7KGg9TiQoRykpJiYoRC5lb3RmPWgpO0cuYXVkaW9DaGFubmVscyYmKEQuYXVkaW9fY2hhbm5lbHM9Ry5hdWRpb0NoYW5uZWxzKTtMLnB1c2goeUcoRCkpfXZhciBHPUwuam9pbigiLCIpO24uaGxzRm9ybWF0cz1HfWlmKChlPQpXLmxpY2Vuc2VJbmZvcykmJmUubGVuZ3RoPjApe0c9e307Zm9yKHZhciByIG9mIGUpZT1yLmRybUZhbWlseSx2PXIudXJsLGUmJnYmJihHW0paW2VdXT12KTtuLmNvbnRlbnRQcm90ZWN0aW9uPUd9aWYocj1XLmRybVBhcmFtcyluLmRybVBhcmFtcz1yO2lmKHI9Vy5kYXNoTWFuaWZlc3RVcmwpbi5UZj1nLkVUKHIse2NwbjpuLmNsaWVudFBsYXliYWNrTm9uY2V9KTtpZihyPVcuaGxzTWFuaWZlc3RVcmwpbi5obHN2cD1yO2lmKHI9Vy5wcm9iZVVybCluLnByb2JlVXJsPUZOKGcuRVQocix7Y3BuOm4uY2xpZW50UGxheWJhY2tOb25jZX0pKTtpZihXPVcuc2VydmVyQWJyU3RyZWFtaW5nVXJsKW4ubEM9bmV3IGcud1ooVywhMCl9OwpvWU09ZnVuY3Rpb24obixXLEQpe3ZhciBiPVcudmlkZW9JZDtiJiYobi52aWRlb0lkPWIsRC52aWRlb19pZHx8KEQudmlkZW9faWQ9YikpO2lmKGI9Vy50aXRsZSluLnRpdGxlPWIsRC50aXRsZXx8KEQudGl0bGU9Yik7aWYoYj1XLmxlbmd0aFNlY29uZHMpbi5sZW5ndGhTZWNvbmRzPU51bWJlcihiKSxELmxlbmd0aF9zZWNvbmRzfHwoRC5sZW5ndGhfc2Vjb25kcz1iKTtpZihiPVcua2V5d29yZHMpbi5rZXl3b3Jkcz1XaihiKTtpZihiPVcuY2hhbm5lbElkKW4uRjk9YixELnVjaWR8fChELnVjaWQ9Yik7aWYoYj1XLnZpZXdDb3VudCluLnJhd1ZpZXdDb3VudD1OdW1iZXIoYik7aWYoYj1XLmF1dGhvciluLmF1dGhvcj1iLEQuYXV0aG9yfHwoRC5hdXRob3I9Yik7aWYoRD1XLnNob3J0RGVzY3JpcHRpb24pbi5zaG9ydERlc2NyaXB0aW9uPUQ7aWYoRD1XLmlzQ3Jhd2xhYmxlKW4uaXNMaXN0ZWQ9RDtpZihEPVcubXVzaWNWaWRlb1R5cGUpbi5tdXNpY1ZpZGVvVHlwZT1EO0Q9Vy5pc0xpdmU7CkQhPW51bGwmJihuLmlzTGl2ZVBsYXliYWNrPUQpO2lmKER8fFcuaXNVcGNvbWluZyluLmlzUHJlbWllcmU9IVcuaXNMaXZlQ29udGVudDtpZihEPVcudGh1bWJuYWlsKW4udE89d2MoRCk7aWYoRD1XLmlzRXh0ZXJuYWxseUhvc3RlZFBvZGNhc3Qpbi5pc0V4dGVybmFsbHlIb3N0ZWRQb2RjYXN0PUQ7KEQ9Vy5zdGF0aW9uVHlwZSkmJkQhPT0iU1RBVElPTl9UWVBFX1VOS05PV04iJiYobi56Mz0hMCk7RD1XLnZpZXdlckxpdmVzdHJlYW1Kb2luUG9zaXRpb247RD8udXRjVGltZU1pbGxpcyYmKG4uRHo9Zy5OaChELnV0Y1RpbWVNaWxsaXMpKTtuLkcoKS5leHBlcmltZW50cy5FcSgiZW5hYmxlX2NlbnRlcmVkX2NhcHRpb25fZm9yX3R2ZmlsbV92aWRlbyIpJiZXLmlzVHZmaWxtVmlkZW8hPW51bGwmJihuLmlzVHZmaWxtVmlkZW89Vy5pc1R2ZmlsbVZpZGVvKTtXLmlzVHZmaWxtVmlkZW8hPW51bGwmJihuLmNPPVcuaXNUdmZpbG1WaWRlbyYmbi5pc0xpdmVQbGF5YmFjayl9Owp6RWI9ZnVuY3Rpb24obixXKXtpZihXLnBsYXllckxlZ2FjeURlc2t0b3BZcGNUcmFpbGVyUmVuZGVyZXIpe3ZhciBEPVcucGxheWVyTGVnYWN5RGVza3RvcFlwY1RyYWlsZXJSZW5kZXJlcjtuLk1nPUQudHJhaWxlclZpZGVvSWR8fCIiO3ZhciBiPShiPVcucGxheWVyTGVnYWN5RGVza3RvcFlwY1RyYWlsZXJSZW5kZXJlci55cGNUcmFpbGVyKSYmYi55cGNUcmFpbGVyUmVuZGVyZXJ9ZWxzZSBXLnBsYXllckxlZ2FjeURlc2t0b3BZcGNPZmZlclJlbmRlcmVyP0Q9Vy5wbGF5ZXJMZWdhY3lEZXNrdG9wWXBjT2ZmZXJSZW5kZXJlcjpXLnlwY1RyYWlsZXJSZW5kZXJlciYmKGI9Vy55cGNUcmFpbGVyUmVuZGVyZXIsVz1iLmZ1bGxWaWRlb01lc3NhZ2Usbi5IQj1XP2cuRHAoVyk6IiIsbi5NZz1nLncoYixEeik/LnZpZGVvRGV0YWlscz8udmlkZW9JZHx8IiIpO0QmJihuLlU5PUQuaXRlbVRpdGxlfHwiIixELml0ZW1VcmwmJihuLndWPUQuaXRlbVVybCksRC5pdGVtQnV5VXJsJiYobi5nVj0KRC5pdGVtQnV5VXJsKSxuLkFKPUQuaXRlbVRodW1ibmFpbHx8IiIsbi5kVj1ELm9mZmVySGVhZGxpbmV8fCIiLG4uR249RC5vZmZlckRlc2NyaXB0aW9ufHwiIixuLk9oPUQub2ZmZXJJZHx8IiIsbi5Daj1ELm9mZmVyQnV0dG9uVGV4dHx8IiIsbi51Vz1ELm9mZmVyQnV0dG9uRm9ybWF0dGVkVGV4dHx8bnVsbCxuLkU5PUQub3ZlcmxheUR1cmF0aW9uTXNlY3x8TmFOLG4uSEI9RC5mdWxsVmlkZW9NZXNzYWdlfHwiIixuLnZNPSEwKTtiJiYoKEQ9Zy53KGIsRHopKT9uLkljPXtyYXdfcGxheWVyX3Jlc3BvbnNlOkR9OihEPWcudyhiLGR2aSksbi5JYz1EP2cuaXcoRCk6bnVsbCksbi52TT0hMCl9Owpsb2o9ZnVuY3Rpb24obixXLEQsYil7Vy5pc0xpdmVEZWZhdWx0QnJvYWRjYXN0JiYobi5pc0xpdmVEZWZhdWx0QnJvYWRjYXN0PSEwKTtXLmlzVXBjb21pbmcmJihuLmlzVXBjb21pbmc9ITApO2lmKFcuaXNQb3N0TGl2ZUR2cil7bi5YZz0hMDtpZihiPVcubGF0ZW5jeUNsYXNzKW4ubGF0ZW5jeUNsYXNzPWJqW2JdfHwiVU5LTk9XTiI7Vy5pc0xvd0xhdGVuY3lMaXZlU3RyZWFtJiYobi5pc0xvd0xhdGVuY3lMaXZlU3RyZWFtPSEwKX1lbHNle2xldCB2PSExO24uSVI/KG4uYWxsb3dMaXZlRHZyPWZOKCk/ITA6TVgmJnZqPDU/ITE6ITAsbi5pc0xpdmVQbGF5YmFjaz0hMCk6Vy5pc0xpdmU/KGIubGl2ZXN0cmVhbT0iMSIsbi5hbGxvd0xpdmVEdnI9Vy5pc0xpdmVEdnJFbmFibGVkP2ZOKCk/ITA6TVgmJnZqPDU/ITE6ITA6ITEsbi5wYXJ0bmVySWQ9Mjcsdj0hMCk6Vy5pc1VwY29taW5nJiYodj0hMCk7aWYoVy5pc0xpdmV8fG4uSVIpe1cuaXNMb3dMYXRlbmN5TGl2ZVN0cmVhbSYmKG4uaXNMb3dMYXRlbmN5TGl2ZVN0cmVhbT0KITApO2xldCBrPVcubGF0ZW5jeUNsYXNzO2smJihuLmxhdGVuY3lDbGFzcz1ialtrXXx8IlVOS05PV04iKTtpZihXPVcubGl2ZUNodW5rUmVhZGFoZWFkKW4ubGl2ZUNodW5rUmVhZGFoZWFkPVc7aWYoVz1EJiZELmxpdmVQbGF5ZXJDb25maWcpe1cuaGFzU3ViZnJhZ21lbnRlZEZtcDQmJihuLmhhc1N1YmZyYWdtZW50ZWRGbXA0PSEwKTtXLmhhc1N1YmZyYWdtZW50ZWRXZWJtJiYobi5JMj0hMCk7Vy5kZWZyYWdnZWRGcm9tU3ViZnJhZ21lbnRzJiYobi5kZWZyYWdnZWRGcm9tU3ViZnJhZ21lbnRzPSEwKTtpZihEPVcubGl2ZUV4cGVyaW1lbnRhbENvbnRlbnRJZCluLmxpdmVFeHBlcmltZW50YWxDb250ZW50SWQ9TnVtYmVyKEQpO1c9Vy5pc0xpdmVIZWFkUGxheWFibGU7bi5TKCJodG1sNV9saXZlX2hlYWRfcGxheWFibGUiKSYmVyE9bnVsbCYmKG4uaXNMaXZlSGVhZFBsYXlhYmxlPVcpfX12JiYobi5pc0xpdmVQbGF5YmFjaz0hMCxiLmFkZm9ybWF0JiZiLmFkZm9ybWF0LnNwbGl0KCJfIilbMV0hPT0KIjgifHxuLklKLnB1c2goImhlYXJ0YmVhdCIpKX19OwprTD1mdW5jdGlvbihuKXt2YXIgVz1uLmdldFdhdGNoTmV4dFJlc3BvbnNlKCk/LmNvbnRlbnRzPy50d29Db2x1bW5XYXRjaE5leHRSZXN1bHRzOyhuPW4uZ2V0V2F0Y2hOZXh0UmVzcG9uc2UoKT8ucGxheWVyT3ZlcmxheXM/LnBsYXllck92ZXJsYXlSZW5kZXJlcj8uZW5kU2NyZWVuPy53YXRjaE5leHRFbmRTY3JlZW5SZW5kZXJlcj8ucmVzdWx0cyl8fChuPVc/LmVuZFNjcmVlbj8uZW5kU2NyZWVuPy5yZXN1bHRzKTtyZXR1cm4gbn07CnhMPWZ1bmN0aW9uKCl7aWYoaHg9PT12b2lkIDApe3RyeXt3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oInl0LXBsYXllci1sdiIpfWNhdGNoKFcpe31hOnt0cnl7dmFyIG49ISFzZWxmLmxvY2FsU3RvcmFnZX1jYXRjaHtuPSExfWlmKG4mJihuPWcudlMoYCR7TTAoKX06Onl0LXBsYXllcmApKSl7aHg9bmV3IFQkYihuKTticmVhayBhfWh4PXZvaWQgMH19cmV0dXJuIGh4fTsKTEw9ZnVuY3Rpb24oKXt2YXIgbj14TCgpO2lmKCFuKXJldHVybnt9O3RyeXtsZXQgVz1uLmdldCgieXQtcGxheWVyLWx2Iik7cmV0dXJuIEpTT04ucGFyc2UoV3x8Int9Iil9Y2F0Y2goVyl7cmV0dXJue319fTsKZSQ9ZnVuY3Rpb24obil7cmV0dXJuIExMKClbbl18fDB9OwpnNj1mdW5jdGlvbihuLFcpe3ZhciBEPUxMKCk7VyE9PURbbl0mJihXIT09MD9EW25dPVc6ZGVsZXRlIERbbl0sbj14TCgpKSYmKEQ9SlNPTi5zdHJpbmdpZnkoRCksbi5zZXQoInl0LXBsYXllci1sdiIsRCkpfTsKZy5YZT1hc3luYyBmdW5jdGlvbihuKXtyZXR1cm4gQ0YoamlVKCksbil9Owp0eD1hc3luYyBmdW5jdGlvbihuLFcsRCxiLHYsayxoLHgpe2lmKGUkKG4pPT09NClyZXR1cm4gNDt2YXIgTD1hd2FpdCBnLm5QKCk7aWYoIUwpdGhyb3cgZy5yMCgid2lhYyIpO3gmJmghPT12b2lkIDAmJihoPWF3YWl0IENuaSh4LGgpKTt2YXIgZT1ELmxhc3RNb2RpZmllZHx8IjAiO3g9YXdhaXQgZy5YZShMKTt0cnl7cmV0dXJuIHFzKyssYXdhaXQgT1IoeCxbImluZGV4IiwibWVkaWEiXSx7bW9kZToicmVhZHdyaXRlIix0YWc6IklEQl9UUkFOU0FDVElPTl9UQUdfV0lBQyIsR1E6ITB9LEc9PntpZihrIT09dm9pZCAwJiZoIT09dm9pZCAwKXt2YXIgcj1gJHtufXwke1cuaWR9fCR7ZX18JHtTdHJpbmcoaykucGFkU3RhcnQoMTAsIjAiKX1gO3I9Ry5vYmplY3RTdG9yZSgibWVkaWEiKS5wdXQoaCxyKX1lbHNlIHI9c1IucmVzb2x2ZSh2b2lkIDApO3ZhciBOPUdmKG4sVy5mWSgpKSxIPUdmKG4sIVcuZlkoKSksQT17Zm10czpnLkV0KHtkbHQ6Yi5kb3dubG9hZGVkRW5kVGltZS50b1N0cmluZygpLApta2V0OmIubWF4S25vd25FbmRUaW1lLnRvU3RyaW5nKCksYXZicjpiLmF2ZXJhZ2VCeXRlUmF0ZS50b1N0cmluZygpfSksZm9ybWF0OkR8fHt9fTtOPUcub2JqZWN0U3RvcmUoImluZGV4IikucHV0KEEsTik7dmFyIHk9Yi5kb3dubG9hZGVkRW5kVGltZT09PS0xO0E9eT9HLm9iamVjdFN0b3JlKCJpbmRleCIpLmdldChIKTpzUi5yZXNvbHZlKHZvaWQgMCk7dmFyIFQ9e2ZtdHM6Im11c2ljIixmb3JtYXQ6e319O0c9eSYmdiYmIVcuZlkoKT9HLm9iamVjdFN0b3JlKCJpbmRleCIpLnB1dChULEgpOnNSLnJlc29sdmUodm9pZCAwKTtyZXR1cm4gc1IuYWxsKFtHLEEscixOXSkudGhlbigoWyx6XSk9Pntxcy0tO3ZhciBDPWUkKG4pLFE7IShRPUMhPT00JiZ5JiZ2KSYmKFE9eiE9PXZvaWQgMCkmJihRPSh6PXouZm10cyk/ej09PSJtdXNpYyI/ITA6ei5pbmNsdWRlcygiZGx0PS0xIil8fCF6LmluY2x1ZGVzKCJkbHQ9Iik6ITEpO1EmJihDPTEsZzYobixDKSk7cmV0dXJuIEN9KX0pfWNhdGNoKEcpe3FzLS07Cng9ZSQobik7aWYoeD09PTQpcmV0dXJuIHg7ZzYobiw0KTt0aHJvdyBHO319OwpCJHg9YXN5bmMgZnVuY3Rpb24obil7dmFyIFc9YXdhaXQgZy5uUCgpO2lmKCFXKXRocm93IGcucjAoInJpIik7cmV0dXJuIE9SKGF3YWl0IGcuWGUoVyksWyJpbmRleCJdLHttb2RlOiJyZWFkb25seSIsdGFnOiJJREJfVFJBTlNBQ1RJT05fVEFHX0xNUkkifSxEPT57dmFyIGI9SURCS2V5UmFuZ2UuYm91bmQobisifCIsbisifiIpO3JldHVybiBELm9iamVjdFN0b3JlKCJpbmRleCIpLmdldEFsbChiKS50aGVuKHY9PnYubWFwKGs9Pms/ay5mb3JtYXQ6e30pKX0pfTsKdzNpPWFzeW5jIGZ1bmN0aW9uKG4sVyxELGIsdil7dmFyIGs9YXdhaXQgZy5uUCgpO2lmKCFrKXRocm93IGcucjAoInJjIik7az1PUihhd2FpdCBnLlhlKGspLFsibWVkaWEiXSx7bW9kZToicmVhZG9ubHkiLHRhZzoiSURCX1RSQU5TQUNUSU9OX1RBR19MTVJNIn0saD0+e3ZhciB4PWAke259fCR7V318JHtEfXwke1N0cmluZyhiKS5wYWRTdGFydCgxMCwiMCIpfWA7cmV0dXJuIGgub2JqZWN0U3RvcmUoIm1lZGlhIikuZ2V0KHgpfSk7CnJldHVybiB2P2sudGhlbihoPT57aWYoaD09PXZvaWQgMCl0aHJvdyBFcnJvcigiTm8gZGF0YSBmcm9tIGluZGV4RGIiKTtyZXR1cm4gRkkxKHYsaCl9KS5jYXRjaChoPT57dGhyb3cgbmV3IGcuUXgoYEVycm9yIHdoaWxlIHJlYWRpbmcgY2h1bms6ICR7aC5uYW1lfSwgJHtoLm1lc3NhZ2V9YCk7Cn0pOmt9OwpHZj1mdW5jdGlvbihuLFcpe3JldHVybmAke259fCR7Vz8idiI6ImEifWB9OwpSRWk9ZnVuY3Rpb24obil7dmFyIFc9e30sRD17fTtmb3IobGV0IGsgb2Ygbil7dmFyIGI9ay5zcGxpdCgifCIpO2lmKCFrLm1hdGNoKE1tQykpe0Rba109Ij8iO2NvbnRpbnVlfW49TnVtYmVyKGIucG9wKCkpO2lmKGlzTmFOKG4pKXtEW2tdPSI/Ijtjb250aW51ZX12YXIgdj1iLmpvaW4oInwiKTsoYj1XW3ZdKT8odj1iW2IubGVuZ3RoLTFdLG49PT12LmVuZCsxP3YuZW5kPW46Yi5wdXNoKHtzdGFydDpuLGVuZDpufSkpOldbdl09W3tzdGFydDpuLGVuZDpufV19Zm9yKGxldCBrIG9mIE9iamVjdC5rZXlzKFcpKURba109V1trXS5tYXAoaD0+YCR7aC5zdGFydH0tJHtoLmVuZH1gKS5qb2luKCIsIik7CnJldHVybiBEfTsKJEw9ZnVuY3Rpb24obixXKXt2YXIgRD1uLlYoKSxiPW4uWCgpLHY9MSxrPTAsaD1nLmRNKG4ueVEuZXhwZXJpbWVudHMsImh0bWw1X2RlZmF1bHRfYWRfZ2FpbiIpO2ghPW51bGwmJkQmJih2PWgpO2lmKGI/LkQoKSl7az1iLmF1ZGlvPy5KPz9uLko7aWYoaz09bnVsbHx8aXNOYU4oaykpaz12b2lkIDA7cmV0dXJue0R5OjAsWnI6MSx3RzoxLGZkOmsscHk6ayxSUzprLGZvcm1hdElkOmIuaWQsYUc6VyxJejpuLnlRLlZRLFFPOm4uUU99fUQ9Yj8uYXVkaW8/Lko/P24uSjtiIT1udWxsJiZiLmF1ZGlvPy5KPT1udWxsJiZuLlUoImFnYyIse25vX2FiOjF9KTtpZihEPT1udWxsfHxpc05hTihEKSlyZXR1cm4gVz1iPy5hdWRpbz8uWCE9bnVsbD9iLmF1ZGlvLlg6bi5XLGlzTmFOKFcpfHwoaz00KSxXPS1XLHtEeTpXLFpyOk1hdGgubWluKDEsMTAqKihXLzIwKSl8fHYsd0c6ayxmb3JtYXRJZDpiPy5pZCxRTzpuLlFPfTtrPTE7aD1uLmxvdWRuZXNzVGFyZ2V0TGtmczt2YXIgeD1uLnlRLmV4cGVyaW1lbnRzLkVxKCJodG1sNV9zdGF0ZWZ1bF9hdWRpb19ub3JtYWxpemF0aW9uIik7CmlmKG4uYXBwbHlTdGF0ZWZ1bE5vcm1hbGl6YXRpb24mJngpe2lmKFchPW51bGwpdmFyIEw9VztlbHNlIGlzRmluaXRlKG4ueVEuVlEpJiYoTD1uLnlRLlZRKTtMIT1udWxsJiYoaz0yLGg9Zy5GZihMLG4ubWluaW11bUxvdWRuZXNzVGFyZ2V0TGtmcyxuLmxvdWRuZXNzVGFyZ2V0TGtmcykpfXZhciBlPU1hdGgubWluKGgtRCwwKTt2YXIgRz1EK2U7dj1NYXRoLm1pbigxLDEwKiooZS8yMCkpfHx2O3gmJm4uVSgiYWdjIix7c3Rub3JtOm4uYXBwbHlTdGF0ZWZ1bE5vcm1hbGl6YXRpb24saHN0OlcsZW52Om4ueVEuVlEsZm1sOkQsc3RndDpMLHRtaW46bi5taW5pbXVtTG91ZG5lc3NUYXJnZXRMa2ZzLHRtYXg6bi5sb3VkbmVzc1RhcmdldExrZnMsbmc6ZX0pO3JldHVybntEeTplLFpyOnYsd0c6ayxmZDpELHB5OmgsUlM6Ryxmb3JtYXRJZDpiPy5pZCxhRzpXLEl6Om4ueVEuVlEsUU86bi5RT319OwpyNj1mdW5jdGlvbihuLFcpe1c9JEwobixXKTtuLk49VztuLnByZXNlcnZlU3RhdGVmdWxMb3VkbmVzc1RhcmdldCYmVy5SUyE9bnVsbCYmKG4ueVEuVlE9Vy5SUyk7cmV0dXJuIFcuWnJ9OwpRaTI9ZnVuY3Rpb24obixXLEQpe1c9e2NwbjpXfTtuLmluZGV4T2YoIi9pYncvIik9PT0tMSYmKFcuaWJ3PUQ/U3RyaW5nKEQpOiIxMzY5ODQzIik7cmV0dXJue3VybDpnLkVUKG4sVyksdHlwZToiYXBwbGljYXRpb24veC1tcGVnVVJMIixxdWFsaXR5OiJhdXRvIixpdGFnOiI5MyJ9fTsKVm10PWZ1bmN0aW9uKG4pe3RyeXtsZXQgVz0obmV3IGcud1oobiwhMCkpLmdldCgibiIpO2lmKFcpe2xldCBEPW4ubWF0Y2goL1wvblwvKFteL10rKS8pO2lmKEQmJkRbMV0mJkRbMV0hPT1XKXJldHVybiBuLnJlcGxhY2UoYC9uLyR7RFsxXX1gLGAvbi8ke1d9YCl9fWNhdGNoKFcpe2cuR3EoVyl9cmV0dXJuIG59OwpzVT1mdW5jdGlvbihuKXtpZihuLmlzQWQoKSYmKG4uVlE/bi52aWRlb0lkIT09bi55US5TJDpuLnZpZGVvSWQhPW4ueVEuUyQpKXJldHVybiBuLnlRLlMkfTsKVm49ZnVuY3Rpb24obil7aWYobil7aWYoQm4obikpcmV0dXJuIG47bj1lQShuKTtpZihCbihuLCEwKSlyZXR1cm4gbn1yZXR1cm4iIn07CmcuWU49ZnVuY3Rpb24obil7aWYoZy4kNihuLnlRKSYmbi55US5WPT09Inl0IiYmIW4uUygiaHRtbDVfZW5hYmxlX3NhYnJfb25feXRfZW1iZWRzIikpcmV0dXJuITE7aWYobi5abylyZXR1cm4gbi5ERSYmbi5VKCJmZHMiLHtmZHM6ITB9LCEwKSwhMTtpZihuLnlRLlYhPT0ieXQiJiYhY3F4KG4pKXJldHVybiBuLkRFJiZuLlUoImRzdm4iLHtuczpuLnlRLlZ9LCEwKSwhMTtpZihuLmNvdG58fCFuLk58fG4uTi5pc090ZiYmIW4uUygiaHRtbDVfZW5hYmxlX3NhYnJfb3RmX2luX2NsaWVudCIpfHxuLlcmJiFuLlcuTigpfHxuLkNVJiYhbi5TKCJodG1sNV9lbmFibGVfc2Ficl9jc2RhaSIpKXJldHVybiExO2lmKG4uUygiaHRtbDVfdXNlX3NhYnJfcmVxdWVzdHNfZm9yX2RlYnVnZ2luZyIpKXJldHVybiEwO24uREUmJm4uVSgiZXNmdyIse3VzYmM6bi5ERSxoc3U6ISFuLmxDfSwhMCk7aWYobi5ERSYmbi5sQylyZXR1cm4hMDtpZihuLlMoImh0bWw1X3JlbW92ZV9jbGllbnRfc2Ficl9kZXRlcm1pbmF0aW9uIikpcmV0dXJuITE7CnZhciBXPSFuLk4uelcmJiFuLk1pKCksRD1XJiZOcyYmbi5TKCJodG1sNV9lbmFibGVfc2Ficl92b2Rfc3RyZWFtaW5nX3hociIpO1c9VyYmIU5zJiZuLlMoImh0bWw1X2VuYWJsZV9zYWJyX3ZvZF9ub25fc3RyZWFtaW5nX3hociIpO3ZhciBiPXBMKG4pLHY9bi5TKCJodG1sNV9lbmFibGVfc2Ficl9kcm1fdm9kX3N0cmVhbWluZ194aHIiKSYmTnMmJm4uTWkoKSYmIW4uTi56VyYmKG4uZHJtUHJvZHVjdD09PSIxIj8hMTohMCk7KEQ9RHx8V3x8Ynx8dikmJiFuLmxDJiZuLlUoInNhYnIiLHtsb2M6Im0ifSwhMCk7cmV0dXJuIEQmJiEhbi5sQ307CldqPWZ1bmN0aW9uKG4pe3ZhciBXPXt9O2ZvcihsZXQgRCBvZiBuKW49RC5zcGxpdCgiPSIpLG4ubGVuZ3RoPT09Mj9XW25bMF1dPW5bMV06V1tEXT0hMDtyZXR1cm4gV307CkhqPWZ1bmN0aW9uKG4pe2lmKG4uUygiaHRtbDVfb25lc2llIikmJm4uZXJyb3JDb2RlKXJldHVybiExO3ZhciBXPWcuamoobi5JSiwieXBjIik7bi55cGNQcmV2aWV3JiYoVz0hMSk7cmV0dXJuIG4uT1YoKSYmIW4ubG9hZGluZyYmKGcuWUwobil8fGcuamoobi5JSiwiaGVhcnRiZWF0Iil8fFcpfTsKZkw9ZnVuY3Rpb24obil7bi5xTigpfHwobi5sb2FkaW5nPSExLG4uV0ooImRhdGFsb2FkZWQiKSl9OwptZj1mdW5jdGlvbihuLFcpe3ZhciBEPVcucmF3X2VtYmVkZGVkX3BsYXllcl9yZXNwb25zZTtpZighRCl7dmFyIGI9Vy5lbWJlZGRlZF9wbGF5ZXJfcmVzcG9uc2U7YiYmKEQ9SlNPTi5wYXJzZShiKSl9RCYmKG4uTz1EKTtpZihuLk8pe24uZW1iZWRkZWRQbGF5ZXJDb25maWc9bi5PLmVtYmVkZGVkUGxheWVyQ29uZmlnfHxudWxsO2lmKEQ9bi5PLnZpZGVvRmxhZ3MpRC5wbGF5YWJsZUluRW1iZWQmJihuLmFsbG93RW1iZWQ9ITApLEQuaXNQcml2YXRlJiYobi5pc1ByaXZhdGU9ITApLEQudXNlckRpc3BsYXlOYW1lJiYoVy51c2VyX2Rpc3BsYXlfbmFtZT1ELnVzZXJEaXNwbGF5TmFtZSksRC51c2VyRGlzcGxheUltYWdlJiYoVy51c2VyX2Rpc3BsYXlfaW1hZ2U9RC51c2VyRGlzcGxheUltYWdlKTtpZigoRD1uLk8uZW1iZWRQcmV2aWV3KSYmRC50aHVtYm5haWxQcmV2aWV3UmVuZGVyZXIpe0Q9RC50aHVtYm5haWxQcmV2aWV3UmVuZGVyZXI7bkwobixELmNvbnRyb2xCZ0h0bWwpO2lmKGI9CkQuZGVmYXVsdFRodW1ibmFpbCluLnRPPXdjKGIpOyhiPWcudyhEPy52aWRlb0RldGFpbHMsYW9VKSkmJkp4KG4sVyxiKTtiPWcudyhEPy52aWRlb0RldGFpbHMsbnFNKTtuLkU1PSEhRC5hZGRUb1dhdGNoTGF0ZXJCdXR0b247bi5zaG93U2hhcmVCdXR0b249ISFELnNoYXJlQnV0dG9uO2I/Lm11c2ljVmlkZW9UeXBlJiYobi5tdXNpY1ZpZGVvVHlwZT1iLm11c2ljVmlkZW9UeXBlKTtpZihiPWcudyhuLmdldEVtYmVkZGVkUGxheWVyUmVzcG9uc2UoKT8uZW1iZWRQcmV2aWV3Py50aHVtYm5haWxQcmV2aWV3UmVuZGVyZXI/LnBsYXlCdXR0b24/LmJ1dHRvblJlbmRlcmVyPy5uYXZpZ2F0aW9uRW5kcG9pbnQsZy5JUSkpb0EobixiKSxuLnZpZGVvSWQ9Yi52aWRlb0lkfHxuLnZpZGVvSWQ7RC52aWRlb0R1cmF0aW9uU2Vjb25kcyYmKG4ubGVuZ3RoU2Vjb25kcz1nLk5oKEQudmlkZW9EdXJhdGlvblNlY29uZHMpKTtELndlYlBsYXllckFjdGlvbnNQb3J0aW5nJiZhQShuLEQud2ViUGxheWVyQWN0aW9uc1BvcnRpbmcpOwppZihEPWcudyhEPy5wbGF5bGlzdCxXR2kpKXtuLk1kPSEwO2I9W107dmFyIHY9TnVtYmVyKEQuY3VycmVudEluZGV4KTtpZihELmNvbnRlbnRzKWZvcihsZXQgaz0wLGg9RC5jb250ZW50cy5sZW5ndGg7azxoO2srKyl7bGV0IHg9RC5jb250ZW50c1trXS5wbGF5bGlzdFBhbmVsVmlkZW9SZW5kZXJlcjtpZigheCljb250aW51ZTtsZXQgTD14LnNob3J0QnlsaW5lVGV4dD9nLkRwKHguc2hvcnRCeWxpbmVUZXh0KToiIixlPXgudGl0bGU/Zy5EcCh4LnRpdGxlKToiIjtiLnB1c2goe2F1dGhvcjpMLGVuY3J5cHRlZF9pZDp4LnZpZGVvSWQsdGl0bGU6ZSxjaGFubmVsX3BhdGg6az09PXY/Vy5jaGFubmVsX3BhdGg6IiIscHJvZmlsZV9waWN0dXJlOms9PT12P1cucHJvZmlsZV9waWN0dXJlOiIiLGlzX3ByaXZhdGU6az09PXY/bi5pc1ByaXZhdGU6ITAsaXNfZG5pOms9PT12P24uaU46ITEsZG5pX2NvbG9yOms9PT12P24uclI6IiJ9KX1XPXtpbmRleDpELmN1cnJlbnRJbmRleCxsaXN0OkQucGxheWxpc3RJZCwKcGxheWxpc3RfbGVuZ3RoOkQudG90YWxWaWRlb3MsdmlkZW86Yn07RC50aXRsZVRleHQmJihXLnRpdGxlPWcuRHAoRC50aXRsZVRleHQpKTtELnNob3J0QnlsaW5lVGV4dCYmKFcuYXV0aG9yPWcuRHAoRC5zaG9ydEJ5bGluZVRleHQpKTtuLlE3PVd9aWYoVz1nLncobi5nZXRFbWJlZGRlZFBsYXllclJlc3BvbnNlKCk/LmVtYmVkUHJldmlldz8udGh1bWJuYWlsUHJldmlld1JlbmRlcmVyPy5pbmZvUGFuZWwsUyQpKW4ud289TnVtYmVyKFc/LmR1cmF0aW9uTXMpfHxOYU4sVz8uaW5mb1BhbmVsT3ZlcnZpZXdWaWV3TW9kZWwmJihuLnhqPVc/LmluZm9QYW5lbE92ZXJ2aWV3Vmlld01vZGVsKSxXPy5pbmZvUGFuZWxEZXRhaWxzVmlld01vZGVsJiYobi5Saz1XPy5pbmZvUGFuZWxEZXRhaWxzVmlld01vZGVsKX1pZihuLk8ucHJldmlld1BsYXlhYmlsaXR5U3RhdHVzKXtpZihuLmVCPW4uTy5wcmV2aWV3UGxheWFiaWxpdHlTdGF0dXMsVz1uLmVCLCFbIk9LIiwiTElWRV9TVFJFQU1fT0ZGTElORSJdLmluY2x1ZGVzKFcuc3RhdHVzKSl7bi5lcnJvckNvZGU9CmlpKFcuZXJyb3JDb2RlKTtEPVcuZXJyb3JTY3JlZW47aWYoYj1EPy5wbGF5ZXJFcnJvck1lc3NhZ2VSZW5kZXJlcil7bi5mbT1iO2lmKHY9Yi5yZWFzb24pbi5lcnJvclJlYXNvbj1nLkRwKHYpO2lmKGI9Yi5zdWJyZWFzb24pbi53aT1nLkRwKGIpfWVsc2Ugbi5lcnJvclJlYXNvbj1XLnJlYXNvbnx8bnVsbDtzd2l0Y2goVy5zdGF0dXMpe2Nhc2UgIkxPR0lOX1JFUVVJUkVEIjpuLmVycm9yRGV0YWlsPSIxIjticmVhaztjYXNlICJDT05URU5UX0NIRUNLX1JFUVVJUkVEIjpuLmVycm9yRGV0YWlsPSIyIjticmVhaztjYXNlICJBR0VfQ0hFQ0tfUkVRVUlSRUQiOm4uZXJyb3JEZXRhaWw9RD8ucGxheWVyS2F2UmVuZGVyZXI/LmthdlVybD8iNCI6IjMiO2JyZWFrO2RlZmF1bHQ6bi5lcnJvckRldGFpbD1XLmlzQmxvY2tlZEluUmVzdHJpY3RlZE1vZGU/IjUiOiIwIn19fWVsc2Ugbi5PLnBsYXlhYmlsaXR5U3RhdHVzJiYobi5SdD1uLk8ucGxheWFiaWxpdHlTdGF0dXMsQXgobikmJihuLmVycm9yRGV0YWlsPQoiMCIsbi5SdCYmKChXPW4uUnQuZW1iZWRkZWRQbGF5ZXJFcnJvck1lc3NhZ2VSZW5kZXJlcik/bi5mbT1nLncoVyxEdEMpOm4uZXJyb3JSZWFzb249bi5SdC5yZWFzb258fG51bGwpKSk7KFc9bi5PLmF0dGVzdGF0aW9uKSYmUW4obixXKTsoVz1uLk8ucGVybWlzc2lvbnMpJiZXLmFsbG93SW1hTW9uZXRpemF0aW9uJiYobi5hbGxvd0ltYU1vbmV0aXphdGlvbj0hMCl9fTsKRVU9ZnVuY3Rpb24obixXKXt2YXIgRD1XLnJhd193YXRjaF9uZXh0X3Jlc3BvbnNlO2lmKCFEKXt2YXIgYj1XLndhdGNoX25leHRfcmVzcG9uc2U7YiYmKEQ9SlNPTi5wYXJzZShiKSl9aWYoRCl7bi53YXRjaE5leHRSZXNwb25zZT1EOyhEPW4ud2F0Y2hOZXh0UmVzcG9uc2UucGxheWVyQ3VlUmFuZ2VTZXQpJiZnLktMKG4sRCk7RD1uLndhdGNoTmV4dFJlc3BvbnNlLnBsYXllck92ZXJsYXlzO2lmKEQmJihEPUQucGxheWVyT3ZlcmxheVJlbmRlcmVyKSl7aWYoYj1ELmF1dG9uYXZUb2dnbGUpbi5hdXRvcGxheVN3aXRjaEJ1dHRvblJlbmRlcmVyPWcudyhiLGJXWiksbi5TKCJ3ZWJfcGxheWVyX2F1dG9uYXZfdXNlX3NlcnZlcl9wcm92aWRlZF9zdGF0ZSIpJiZuLkFWKCkmJihuLmF1dG9uYXZTdGF0ZT1uLmF1dG9wbGF5U3dpdGNoQnV0dG9uUmVuZGVyZXIuZW5hYmxlZD8yOjEpO2lmKGI9RC52aWRlb0RldGFpbHMpe3ZhciB2PWIuZW1iZWRkZWRQbGF5ZXJPdmVybGF5VmlkZW9EZXRhaWxzUmVuZGVyZXI7CmlmKGI9Yi5wbGF5ZXJPdmVybGF5VmlkZW9EZXRhaWxzUmVuZGVyZXIpYi50aXRsZSYmKFcudGl0bGU9Zy5EcChiLnRpdGxlKSksYi5zdWJ0aXRsZSYmKFcuc3VidGl0bGU9Zy5EcChiLnN1YnRpdGxlKSl9Zy5DTihuLnlRKSYmKG4uRTU9ISFELmFkZFRvTWVudSk7bi5zaG93U2hhcmVCdXR0b249ISFELnNoYXJlQnV0dG9uO0Quc3RhcnRQb3NpdGlvbiYmRC5lbmRQb3NpdGlvbiYmKG4ucHJvZ3Jlc3NCYXJTdGFydFBvc2l0aW9uPUQuc3RhcnRQb3NpdGlvbixuLnByb2dyZXNzQmFyRW5kUG9zaXRpb249RC5lbmRQb3NpdGlvbik7aWYoYj1nLncobi5nZXRXYXRjaE5leHRSZXNwb25zZSgpPy5wbGF5ZXJPdmVybGF5cz8ucGxheWVyT3ZlcmxheVJlbmRlcmVyPy5pbmZvUGFuZWwsUyQpKW4ud289TnVtYmVyKGI/LmR1cmF0aW9uTXMpfHxOYU4sYj8uaW5mb1BhbmVsT3ZlcnZpZXdWaWV3TW9kZWwmJihuLnhqPWI/LmluZm9QYW5lbE92ZXJ2aWV3Vmlld01vZGVsKSxiPy5pbmZvUGFuZWxEZXRhaWxzVmlld01vZGVsJiYKKG4uUms9Yj8uaW5mb1BhbmVsRGV0YWlsc1ZpZXdNb2RlbCk7bi5zaG93U2Vla2luZ0NvbnRyb2xzPSEhRC5zaG93U2Vla2luZ0NvbnRyb2xzfWlmKEQ9bi5nZXRXYXRjaE5leHRSZXNwb25zZSgpPy5jb250ZW50cz8udHdvQ29sdW1uV2F0Y2hOZXh0UmVzdWx0cylpZihEPUQuZGVza3RvcE92ZXJsYXkmJmcudyhELmRlc2t0b3BPdmVybGF5LHZxdCkpRC5zdXBwcmVzc1NoYXJlQnV0dG9uJiYobi5zaG93U2hhcmVCdXR0b249ITEpLEQuc3VwcHJlc3NXYXRjaExhdGVyQnV0dG9uJiYobi5FNT0hMSk7diYmSngobixXLHYpO0Q9REkoMCxXLmF1dG9wbGF5X2NvdW50KTt2YXIgaz1uLmdldFdhdGNoTmV4dFJlc3BvbnNlKCk7Yj1rLmNvbnRlbnRzPy50d29Db2x1bW5XYXRjaE5leHRSZXN1bHRzO3Y9ay5wbGF5ZXJPdmVybGF5cz8ucGxheWVyT3ZlcmxheVJlbmRlcmVyPy5hdXRvcGxheT8ucGxheWVyT3ZlcmxheUF1dG9wbGF5UmVuZGVyZXI7dmFyIGg9a0wobik7aWYoKGs9ay5jb250ZW50cz8uc2luZ2xlQ29sdW1uV2F0Y2hOZXh0UmVzdWx0cykmJgprLmF1dG9wbGF5Py5hdXRvcGxheSYmIWsucGxheWxpc3Qpe2xldCB5PWsuYXV0b3BsYXkuYXV0b3BsYXkuc2V0cztrPXt9O3ZhciB4PW5ldyBPVShuLkcoKSksTD1udWxsLGU7aWYoeSl7Zm9yKHZhciBHIG9mIHkpaWYoKGU9Ry5hdXRvcGxheVZpZGVvUmVuZGVyZXIpJiZlLmNvbXBhY3RWaWRlb1JlbmRlcmVyKXtMPWUuY29tcGFjdFZpZGVvUmVuZGVyZXI7YnJlYWt9aWYoZT15WzBdLmF1dG9wbGF5VmlkZW8pKEc9ZS5jbGlja1RyYWNraW5nUGFyYW1zKSYmKGsuaXRjdD1HKSxrLmF1dG9uYXY9IjEiLGsucGxheW5leHQ9U3RyaW5nKEQpfWVsc2Ugay5mZWF0dXJlPSJyZWxhdGVkLWF1dG8iO2U9Zy53KGUsZy5JUSk7aWYoTCl7eC52aWRlb0lkPUwudmlkZW9JZDtpZihlPUwuc2hvcnRCeWxpbmVUZXh0KXguYXV0aG9yPWcuRHAoZSk7aWYoZT1MLnRpdGxlKXgudGl0bGU9Zy5EcChlKX1lbHNlIGUhPW51bGwmJmUudmlkZW9JZCYmKHgudmlkZW9JZD1lLnZpZGVvSWQpO3gueXo9aztuLnN1Z2dlc3Rpb25zPQpbXTtuLlU1PXh9aWYoaCl7ZT1bXTtmb3IodmFyIHIgb2YgaCl7aD12b2lkIDA7Rz1udWxsO2lmKHIuZW5kU2NyZWVuVmlkZW9SZW5kZXJlcil7az1yLmVuZFNjcmVlblZpZGVvUmVuZGVyZXI7eD1rLnRpdGxlO0c9bmV3IE9VKG4uRygpKTtHLnZpZGVvSWQ9ay52aWRlb0lkO0cubGVuZ3RoU2Vjb25kcz1rLmxlbmd0aEluU2Vjb25kc3x8MDtpZihMPWsucHVibGlzaGVkVGltZVRleHQpRy5wdWJsaXNoZWRUaW1lVGV4dD1nLkRwKEwpO2lmKEw9ay5zaG9ydEJ5bGluZVRleHQpRy5hdXRob3I9Zy5EcChMKTtpZihMPWsuc2hvcnRWaWV3Q291bnRUZXh0KUcuc2hvcnRWaWV3Q291bnQ9Zy5EcChMKTt4JiYoRy50aXRsZT1nLkRwKHgpLCh4PXguYWNjZXNzaWJpbGl0eSkmJih4PXguYWNjZXNzaWJpbGl0eURhdGEpJiZ4LmxhYmVsJiYoRy5hcmlhTGFiZWw9eC5sYWJlbCkpO2lmKEw9ay5uYXZpZ2F0aW9uRW5kcG9pbnQpaD1MLmNsaWNrVHJhY2tpbmdQYXJhbXMseD1nLncoTCxnLklRKSxMPWcudyhMLApnLlBqKSx4P0cuczA9eDpMIT1udWxsJiYoRy53YXRjaFVybD1MLnVybCk7aWYoeD1rLnRodW1ibmFpbE92ZXJsYXlzKWZvcih2YXIgTiBvZiB4KWlmKHg9Ti50aHVtYm5haWxPdmVybGF5VGltZVN0YXR1c1JlbmRlcmVyKWlmKHguc3R5bGU9PT0iTElWRSIpe0cuaXNMaXZlUGxheWJhY2s9ITA7YnJlYWt9ZWxzZSBpZih4LnN0eWxlPT09IlVQQ09NSU5HIil7Ry5pc1VwY29taW5nPSEwO2JyZWFrfUcudE89d2Moay50aHVtYm5haWwpfWVsc2UgaWYoci5lbmRTY3JlZW5QbGF5bGlzdFJlbmRlcmVyKXtrPXIuZW5kU2NyZWVuUGxheWxpc3RSZW5kZXJlcjtoPWsubmF2aWdhdGlvbkVuZHBvaW50O2lmKCFoKWNvbnRpbnVlO0c9Zy53KGgsZy5JUSk7aWYoIUcpY29udGludWU7eD1HLnZpZGVvSWQ7Rz1uZXcgWnoobi5HKCkpO0cucGxheWxpc3RJZD1rLnBsYXlsaXN0SWQ7Ry5wbGF5bGlzdExlbmd0aD1OdW1iZXIoay52aWRlb0NvdW50KXx8MDtHLk49eHx8bnVsbDtHLnZpZGVvSWQ9eDtpZih4PQprLnRpdGxlKUcudGl0bGU9Zy5EcCh4KTtpZih4PWsuc2hvcnRCeWxpbmVUZXh0KUcuYXV0aG9yPWcuRHAoeCk7aD1oLmNsaWNrVHJhY2tpbmdQYXJhbXM7Ry50Tz13YyhrLnRodW1ibmFpbCl9RyYmKGgmJihHLnNlc3Npb25EYXRhPXtpdGN0Omh9KSxlLnB1c2goRykpfW4uc3VnZ2VzdGlvbnM9ZX1pZih2KXtuLkozPSEhdi5wcmVmZXJJbW1lZGlhdGVSZWRpcmVjdDtuLkcoKS5adCgpLk4uUVEoa05qKSYmKG4uaDM9ISF2LnNob3dQYXVzZWRXaGVuRGlzYWJsZWQpO24uclc9bi5yV3x8ISF2LndlYlNob3dOZXdBdXRvbmF2Q291bnRkb3duO2lmKG4uclcpe049djtiPWJ8fG51bGw7cj1uZXcgT1Uobi5HKCkpO3IudmlkZW9JZD1OLnZpZGVvSWQ7aWYoZT1OLnZpZGVvVGl0bGUpci50aXRsZT1nLkRwKGUpLChlPWUuYWNjZXNzaWJpbGl0eSkmJihlPWUuYWNjZXNzaWJpbGl0eURhdGEpJiZlLmxhYmVsJiYoci5hcmlhTGFiZWw9ZS5sYWJlbCk7aWYoZT1OLmJ5bGluZSlyLmF1dGhvcj1nLkRwKGUpOwppZihlPU4ucHVibGlzaGVkVGltZVRleHQpci5wdWJsaXNoZWRUaW1lVGV4dD1nLkRwKGUpO2lmKGU9Ti5zaG9ydFZpZXdDb3VudFRleHQpci5zaG9ydFZpZXdDb3VudD1nLkRwKGUpO2lmKGU9Ti50aHVtYm5haWxPdmVybGF5cylmb3IodmFyIEggb2YgZSlpZihlPUgudGh1bWJuYWlsT3ZlcmxheVRpbWVTdGF0dXNSZW5kZXJlcilpZihlLnN0eWxlPT09IkxJVkUiKXtyLmlzTGl2ZVBsYXliYWNrPSEwO2JyZWFrfWVsc2UgaWYoZS5zdHlsZT09PSJVUENPTUlORyIpe3IuaXNVcGNvbWluZz0hMDticmVha31lbHNlIGlmKGUuc3R5bGU9PT0iREVGQVVMVCImJmUudGV4dCl7ci5sZW5ndGhUZXh0PWcuRHAoZS50ZXh0KTsoSD1lLnRleHQuYWNjZXNzaWJpbGl0eSkmJihIPUguYWNjZXNzaWJpbGl0eURhdGEpJiZILmxhYmVsJiYoci5pZz1ILmxhYmVsfHwiIik7YnJlYWt9ci50Tz13YyhOLmJhY2tncm91bmQpO2lmKEg9Ti5uZXh0QnV0dG9uKWlmKEg9SC5idXR0b25SZW5kZXJlcilpZihIPUgubmF2aWdhdGlvbkVuZHBvaW50KWlmKEg9CmcudyhILGcuSVEpKXIuczA9SDtOLnRvcEJhZGdlcyYmKEg9Ti50b3BCYWRnZXNbMF0pJiYoSD1nLncoSCxoazIpKSYmSC5zdHlsZT09PSJCQURHRV9TVFlMRV9UWVBFX1BSRU1JVU0iJiYoci5OPSEwKTtpZihIPU4uYWx0ZXJuYXRpdmVUaXRsZSlyLko5PWcuRHAoSCk7SD1yO0Q9e2F1dG9uYXY6IjEiLHBsYXluZXh0OlN0cmluZyhEKX07SC5wbGF5bGlzdElkJiYoRC5hdXRvcGxheT0iMSIpO2lmKGIpe2lmKE49Yi5hdXRvcGxheT8uYXV0b3BsYXk/LnNldHM/LlswXT8uYXV0b3BsYXlWaWRlbylpZigoYj1OLmNsaWNrVHJhY2tpbmdQYXJhbXMpJiYoRC5pdGN0PWIpLE49Zy53KE4sZy5JUSkpSC50RT1OfWVsc2UgTiYmKE49Ti5uZXh0QnV0dG9uPy5idXR0b25SZW5kZXJlcj8ubmF2aWdhdGlvbkVuZHBvaW50Py5jbGlja1RyYWNraW5nUGFyYW1zKSYmKEQuaXRjdD1OKTtELml0Y3R8fChELmZlYXR1cmU9InJlbGF0ZWQtYXV0byIpO0gueXo9RDtuLnN1Z2dlc3Rpb25zfHwobi5zdWdnZXN0aW9ucz0KW10pO24uVTU9cn12LmNvdW50RG93blNlY3MhPW51bGwmJihuLk9OPXYuY291bnREb3duU2VjcyoxRTMpO3YuY291bnREb3duU2Vjc0ZvckZ1bGxzY3JlZW4hPW51bGwmJihuLnMzPXYuY291bnREb3duU2Vjc0ZvckZ1bGxzY3JlZW4+PTA/di5jb3VudERvd25TZWNzRm9yRnVsbHNjcmVlbioxRTM6LTEpfWlmKHY9a0wobikpdj12Py5bMF0/LmVuZFNjcmVlblZpZGVvUmVuZGVyZXI/Lm5hdmlnYXRpb25FbmRwb2ludD8uY2xpY2tUcmFja2luZ1BhcmFtcyxIPW4uVTV8fG4uc3VnZ2VzdGlvbnM/LlswXXx8bnVsbCx2JiZIJiYoSC5zZXNzaW9uRGF0YT17aXRjdDp2fSk7bi53YXRjaE5leHRSZXNwb25zZS5jdXJyZW50VmlkZW9UaHVtYm5haWwmJihuLnRPPXdjKG4ud2F0Y2hOZXh0UmVzcG9uc2UuY3VycmVudFZpZGVvVGh1bWJuYWlsKSk7KHY9bi53YXRjaE5leHRSZXNwb25zZT8uY29udGVudHM/LnR3b0NvbHVtbldhdGNoTmV4dFJlc3VsdHM/LnJlc3VsdHM/LnJlc3VsdHM/LmNvbnRlbnRzKSYmCnZbMF0mJihIPXZbMF0udmlkZW9QcmltYXJ5SW5mb1JlbmRlcmVyKSYmSCYmSC5zdWJ0aXRsZSYmKG4uWDQ9Zy5EcChILnN1YnRpdGxlKSk7diYmdlsxXSYmKHY9dlsxXS52aWRlb1NlY29uZGFyeUluZm9SZW5kZXJlcj8ub3duZXI/LnZpZGVvT3duZXJSZW5kZXJlcj8udGh1bWJuYWlsPy50aHVtYm5haWxzKSYmdi5sZW5ndGgmJihuLnByb2ZpbGVQaWN0dXJlPXZbdi5sZW5ndGgtMV0udXJsKTtXPWtSKFcpO2lmKHY9bi5nZXRXYXRjaE5leHRSZXNwb25zZSgpPy5vblJlc3BvbnNlUmVjZWl2ZWRFbmRwb2ludHMpZm9yKHZhciBBIG9mIHYpZy53KEEsVVUpJiYobi5ScT1nLncoQSxVVSkpLHY9Zy53KEEseHRNKSx2Py5lbnRpdHlLZXlzJiYobi5MTj12LmVudGl0eUtleXN8fFtdLHYudmlzaWJsZU9uTG9hZEtleXMmJihuLnZpc2libGVPbkxvYWRLZXlzPXYudmlzaWJsZU9uTG9hZEtleXMpKTtuLlMoIndlYl9rZXlfbW9tZW50c19tYXJrZXJzIikmJihBPXl6LmdldFN0YXRlKCkuZW50aXRpZXMsCnY9bmYoInZpc2liaWxpdHlfb3ZlcnJpZGUiLCJtYXJrZXJzVmlzaWJpbGl0eU92ZXJyaWRlRW50aXR5IiksQT1BLm1hcmtlcnNWaXNpYmlsaXR5T3ZlcnJpZGVFbnRpdHk/QS5tYXJrZXJzVmlzaWJpbGl0eU92ZXJyaWRlRW50aXR5W3ZdfHxudWxsOm51bGwsbi5IeD1BPy52aWRlb0lkPT09KG4udmlkZW9JZHx8VykmJkE/LnZpc2liaWxpdHlPdmVycmlkZU1hcmtlcnNLZXk/QS52aXNpYmlsaXR5T3ZlcnJpZGVNYXJrZXJzS2V5Om4udmlzaWJsZU9uTG9hZEtleXMsbi52aXNpYmxlT25Mb2FkS2V5cz1bLi4ubi5IeF0pfX07CmlqPWZ1bmN0aW9uKG4sVyl7aWYoVz1XLnJhd19yZWVsX2l0ZW1fd2F0Y2hfcmVzcG9uc2Upbi5yZWVsSXRlbVdhdGNoUmVzcG9uc2U9V307CnVqPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Vy5yYXdfcmVzb2x2ZV91cmxfcmVzcG9uc2U7RHx8KFc9Vy5yZXNvbHZlX3VybF9yZXNwb25zZSkmJihEPUpTT04ucGFyc2UoVykpO0QmJihuLnBvPUQpfTsKZDY9ZnVuY3Rpb24obixXKXtuLmZmbGFncz1iTyhuLmZmbGFncyxXLmZmbGFncyk7dmFyIEQ9Vy5pdl9pbnZpZGVvX3VybDtEJiYobi5lYT1GTihEKSk7bi5SbT1ueShuLlJtLFcuaXZfYWRzX29ubHkpO2lmKEQ9Vy5jdGFfY29udmVyc2lvbl91cmxzKW4ubE09RDtuLmlzUGhhcm1hPW55KG4uaXNQaGFybWEsVy5pc19waGFybWEpO24uYXV0aG9yPWJPKG4uYXV0aG9yLFcuYXV0aG9yKTtuLndhPVZuKFcudHRzdXJsKXx8bi53YTtuLldjPW55KG4uV2MsVy5jY19hc3IpO2lmKEQ9Vy5wcm9maWxlX3BpY3R1cmUpbi5wcm9maWxlUGljdHVyZT1iTyhuLnByb2ZpbGVQaWN0dXJlLEQpO24udmlkZW9Db3VudFRleHQ9Yk8obi52aWRlb0NvdW50VGV4dCxXLnZpZGVvX2NvdW50X3RleHQpO24uYXV0b25hdlN0YXRlPVdCKG4uYXV0b25hdlN0YXRlLFcuYXV0b25hdl9zdGF0ZSxMRzEpO24uY2xpZW50UGxheWJhY2tOb25jZT1iTyhuLmNsaWVudFBsYXliYWNrTm9uY2UsVy5jcG4pO24uc3Vic2NyaWJlZD0Kbnkobi5zdWJzY3JpYmVkLFcuc3Vic2NyaWJlZCk7bi5yYXdWaWV3Q291bnQ9REkobi5yYXdWaWV3Q291bnQsVy52aWV3X2NvdW50KTtuLnNob3J0Vmlld0NvdW50PWJPKG4uc2hvcnRWaWV3Q291bnQsVy5zaG9ydF92aWV3X2NvdW50X3RleHQpO24ucHVibGlzaGVkVGltZVRleHQ9Yk8obi5wdWJsaXNoZWRUaW1lVGV4dHx8IiIsVy5wdWJsaXNoZWRUaW1lVGV4dCk7bi5sZW5ndGhUZXh0PWJPKG4ubGVuZ3RoVGV4dHx8IiIsVy5sZW5ndGhUZXh0KTtuLmlnPWJPKG4uaWd8fCIiLFcuaWcpO24uSjk9Yk8obi5KOXx8IiIsVy5KOSk7bi50aXRsZT1iTyhuLnRpdGxlLFcudGl0bGUpO24uc3VidGl0bGU9Yk8obi5zdWJ0aXRsZSxXLnN1YnRpdGxlKTtuLmV4cGFuZGVkVGl0bGU9Yk8obi5leHBhbmRlZFRpdGxlLFcuZXhwYW5kZWRfdGl0bGUpO24uZXhwYW5kZWRTdWJ0aXRsZT1iTyhuLmV4cGFuZGVkU3VidGl0bGUsVy5leHBhbmRlZF9zdWJ0aXRsZSk7bi55cGNQcmV2aWV3PWJPKG4ueXBjUHJldmlldywKVy55cGNfcHJldmlldyk7bi5EVD1iTyhuLkRULFcueXBjX29yaWdpbik7bi5MQj1ueShuLkxCLFcueXBjX2lzX3ByZW1pZXJlX3RyYWlsZXIpO24uSWs9Yk8obi5JayxXLnlwY19jbGlja3dyYXBfbWVzc2FnZSk7bi5wYXlnYXRlZD1ueShuLnBheWdhdGVkLFcucGF5Z2F0ZWQpO24uS289bnkobi5LbyxXLnJlcXVpcmVzX3B1cmNoYXNlKTtuLnNob3dTaGFyZUJ1dHRvbj0hbnkoIW4uc2hvd1NoYXJlQnV0dG9uLFcuc3MpO24uRTU9bnkobi5FNSxXLnNob3d3YXRjaGxhdGVyKTtpZihEPVcuZWwpbi5ldmVudExhYmVsPUQ7aWYoRD1XLmtleXdvcmRzKW4ua2V5d29yZHM9V2ooRC5zcGxpdCgiLCIpKTtpZihEPVcucnZzKW4uc3VnZ2VzdGlvbnM9dXcoRCkubWFwKGI9PmIucGxheWxpc3R8fGIubGlzdHx8Yi5hcGk/bmV3IFp6KG4ueVEsYik6bmV3IE9VKG4ueVEsYikpOwpuLmNvbnRlbnRDaGVja09rPW55KG4uY29udGVudENoZWNrT2ssVy5jY28pO24ucmFjeUNoZWNrT2s9bnkobi5yYWN5Q2hlY2tPayxXLnJjbyk7bi5pc0xpdmluZ1Jvb21EZWVwbGluaz1ueShuLmlzTGl2aW5nUm9vbURlZXBsaW5rLFcuaXNfbGl2aW5nX3Jvb21fZGVlcGxpbmspO24ub2F1dGhUb2tlbj1iTyhuLm9hdXRoVG9rZW4sVy5vYXV0aF90b2tlbik7bi5ISj1iTyhuLkhKLFcua3B0KTtuLnZpc2l0b3JEYXRhPWJPKG4udmlzaXRvckRhdGEsVy52aXNpdG9yX2RhdGEpO2lmKEQ9Vy5zZXNzaW9uX2RhdGEpbi5zZXNzaW9uRGF0YT15RihELCImIik7bi5XSz1iTyhuLldLLFcudHJhY2tpbmdfbGlzdCk7bi5EdD1ueShuLkR0LFcucGF1c2VfYXRfc3RhcnQpO29RKG4sVyl9Owp6Zj1mdW5jdGlvbihuLFcsRCxiKXtXJiZXLmNwbiYmZy5HcShuZXcgZy5ReCgiQ1BOIHByb3ZpZGVkIGluIFZpZGVvRGF0YSB1cGRhdGUiLHtIWjpXLmNwbixLWTpuLmNsaWVudFBsYXliYWNrTm9uY2UsdEY6RH0pKTtiJiYobi5lcnJvckNvZGU9bnVsbCxuLmVycm9yRGV0YWlsPSIiLG4uZXJyb3JSZWFzb249bnVsbCxuLndpPW51bGwpO0Q/KGtSKFcpLG4uc2V0RGF0YShXKSxIaihuKSYmZkwobikpOihXPVd8fHt9LG1mKG4sVyksRVUobixXKSxpaihuLFcpLHVqKG4sVyksZDYobixXKSxuLldKKCJkYXRhdXBkYXRlZCIpKX07Cm9RPWZ1bmN0aW9uKG4sVyl7Vy5pbmxpbmVNZXRyaWNFbmFibGVkJiYobi5pbmxpbmVNZXRyaWNFbmFibGVkPSEwKTtXLnBsYXliYWNrX3Byb2dyZXNzXzBzX3VybCYmKG4uVEk9bmV3IGVrdChXKSk7aWYoVz1XLnZpZGVvX21hc3RoZWFkX2FkX3F1YXJ0aWxlX3VybHMpbi5OZj1XLnF1YXJ0aWxlXzBfdXJsLG4uYmU9Vy5xdWFydGlsZV8yNV91cmwsbi56ND1XLnF1YXJ0aWxlXzUwX3VybCxuLm1EPVcucXVhcnRpbGVfNzVfdXJsLG4uV0g9Vy5xdWFydGlsZV8xMDBfdXJsLG4uRnI9Vy5xdWFydGlsZV8wX3VybHMsbi53Tj1XLnF1YXJ0aWxlXzI1X3VybHMsbi5DdD1XLnF1YXJ0aWxlXzUwX3VybHMsbi5vSD1XLnF1YXJ0aWxlXzc1X3VybHMsbi5BdD1XLnF1YXJ0aWxlXzEwMF91cmxzfTsKZy5LTD1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRCBvZiBXKUQuY3VlUmFuZ2VTZXRJZGVudGlmaWVyJiZuLmJOLnNldChELmN1ZVJhbmdlU2V0SWRlbnRpZmllcixELnBsYXllckN1ZVJhbmdlcz8/W10pfTsKZ3FaPWZ1bmN0aW9uKG4pe2lmKCFuKXJldHVybiBudWxsO2ZvcihsZXQgVyBvZiBuKWlmKG49Vy5hZFBsYWNlbWVudFJlbmRlcmVyPy5yZW5kZXJlcj8udmlkZW9BZFRyYWNraW5nUmVuZGVyZXIpcmV0dXJuIG47cmV0dXJuIG51bGx9Owpsaj1mdW5jdGlvbihuKXt2YXIgVz1uLnBsYXllclJlc3BvbnNlPy5wbGF5ZXJDb25maWc/LmNvbXBvc2l0ZVZpZGVvQ29uZmlnPy5zb3VyY2VDb25maWdzO249bi5wbGF5ZXJSZXNwb25zZT8ucGxheWVyQ29uZmlnPy5jb21wb3NpdGVWaWRlb0NvbmZpZz8uZGVmYXVsdEFjdGl2ZVNvdXJjZVZpZGVvSWQ7aWYoIVd8fCFXLmxlbmd0aClyZXR1cm4iIjtufHwobj1XWzBdLnZpZGVvSWR8fCIiKTtmb3IobGV0IEQgb2YgVylpZihELnZpZGVvSWQ9PT1uJiZELmF1ZGlvVHJhY2tzKWZvcihsZXQgYiBvZiBELmF1ZGlvVHJhY2tzKWlmKGIuaXNEZWZhdWx0Rm9yU291cmNlKXJldHVybiBiLmlkfHwiIjtyZXR1cm4iIn07ClhZaD1mdW5jdGlvbihuLFcsRCl7c3dpdGNoKFcpe2Nhc2UgIkVNQkVEREVEX1BMQVlFUl9MSVRFX01PREVfRklYRURfUExBWUJBQ0tfTElNSVQiOkQ+MzA/bi5saW1pdGVkUGxheWJhY2tEdXJhdGlvbkluU2Vjb25kcz0zMDpEPDMwJiZEPjEwJiYobi5saW1pdGVkUGxheWJhY2tEdXJhdGlvbkluU2Vjb25kcz0xMCk7YnJlYWs7Y2FzZSAiRU1CRURERURfUExBWUVSX0xJVEVfTU9ERV9EWU5BTUlDX1BMQVlCQUNLX0xJTUlUIjpuLmxpbWl0ZWRQbGF5YmFja0R1cmF0aW9uSW5TZWNvbmRzPUQqLjJ9fTsKcWpoPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFchPW51bGw/bnkobi5LLFcpOm4uSz9uLks6bi55US5wcmVmZXJHYXBsZXNzJiZuLnlRLnN1cHBvcnRzR2FwbGVzc1Nob3J0cygpfTsKR05oPWZ1bmN0aW9uKG4pe3JldHVybiEhbiYmaXNGaW5pdGUobikmJm4+MUU5fTsKQ0w9ZnVuY3Rpb24obil7cmV0dXJuIHpRKCkmJlRmKG4pPyExOmokKG4pJiYoZy5HbChuLnlRKT8hbi5pc0xpdmVQbGF5YmFjazpuLmhsc3ZwKXx8IWZOKCl8fG4uVVQ/ITA6ITF9OwpCaj1mdW5jdGlvbihuKXtuPWcub0Uobik7cmV0dXJuIE51bWJlcihuLmV4cGlyZSl8fDB9OwpGZT1mdW5jdGlvbihuKXt2YXIgVz1uLkcoKTtyZXR1cm4gbi55US5WPT09ImhtInx8bi55US5WPT09ImdkInx8Vy5leHBlcmltZW50cy5adCgpLk4uUVEodFMyKSYmbi55US5YJiZuLnlRLlYhPT0iZ2wiPyEwOiExfTsKSng9ZnVuY3Rpb24obixXLEQpe3ZhciBiPUQuY2hhbm5lbFRodW1ibmFpbDtiJiYoYj1iLnRodW1ibmFpbHMpJiYoYj1iWzBdKSYmKFcucHJvZmlsZV9waWN0dXJlPWIudXJsKTtpZihiPWcudyhnLncoRD8uY2hhbm5lbFRodW1ibmFpbEVuZHBvaW50LCR0TSk/LnVybEVuZHBvaW50LGcuUGopKVcuY2hhbm5lbF9wYXRoPWIudXJsO2lmKGI9RC5jb2xsYXBzZWRSZW5kZXJlcilpZihiPWcudyhiLHIxcikpe2xldCB2PWIudGl0bGU7diYmKFcudGl0bGU9Zy5EcCh2KSk7aWYoYj1iLnN1YnRpdGxlKVcuc3VidGl0bGU9Zy5EcChiKX1pZihEPUQuZXhwYW5kZWRSZW5kZXJlcilpZihEPWcudyhELHNzQykpe2lmKGI9RC50aXRsZSlXLmV4cGFuZGVkX3RpdGxlPWcuRHAoYik7aWYoYj1ELnN1YnRpdGxlKVcuZXhwYW5kZWRfc3VidGl0bGU9Zy5EcChiKTtpZihEPUQuc3Vic2NyaWJlQnV0dG9uKW4uc3Vic2NyaWJlQnV0dG9uUmVuZGVyZXI9Zy53KEQsTmgxKSxuLnN1YnNjcmliZUJ1dHRvblJlbmRlcmVyJiYKKFcudWNpZD1uLnN1YnNjcmliZUJ1dHRvblJlbmRlcmVyLmNoYW5uZWxJZCxXLnN1YnNjcmliZWQ9bi5zdWJzY3JpYmVCdXR0b25SZW5kZXJlci5zdWJzY3JpYmVkLG4uc3Vic2NyaWJlQnV0dG9uUmVuZGVyZXIubm90aWZpY2F0aW9uUHJlZmVyZW5jZVRvZ2dsZUJ1dHRvbiYmbi5zdWJzY3JpYmVCdXR0b25SZW5kZXJlci5ub3RpZmljYXRpb25QcmVmZXJlbmNlVG9nZ2xlQnV0dG9uLnRvZ2dsZUJ1dHRvblJlbmRlcmVyJiYoVz1uLnN1YnNjcmliZUJ1dHRvblJlbmRlcmVyLm5vdGlmaWNhdGlvblByZWZlcmVuY2VUb2dnbGVCdXR0b24udG9nZ2xlQnV0dG9uUmVuZGVyZXIsVy5pc1RvZ2dsZWQ/KG4ubGU9Vy50b2dnbGVkU2VydmljZUVuZHBvaW50fHxudWxsLG4uWTA9Vy5kZWZhdWx0U2VydmljZUVuZHBvaW50fHxudWxsKToobi5sZT1XLmRlZmF1bHRTZXJ2aWNlRW5kcG9pbnR8fG51bGwsbi5ZMD1XLnRvZ2dsZWRTZXJ2aWNlRW5kcG9pbnR8fG51bGwpKSl9fTsKdzY9ZnVuY3Rpb24obil7cmV0dXJuISFuLkR4fHwhIW4uTmZ8fCEhbi5Gcnx8ISFuLlRJfHxuLmZafTsKUDA9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz1XXm47aWYoKG4mMTA3KT09bil7dmFyIGg9YltJWzVdXTtEW0lba144MTgzXV0oZnVuY3Rpb24ocixOLEgpe3RoaXNbSVtrXjgxNTddXShIW05dPWJbKGJbSVtrXjgxNTNdXShyKS1iW0lba144MTUzXV0odGhpc1tOXSkrTitoLS0pJWJbSVs1XV1dKX0sdltJW2teODE3NV1dKElba144MTU4XSkpfWlmKChuXjcxKT49NiYmKG4tMiYxNik8MylhOnt2YXIgeD1nLncoRCxwWVopfHxEW0lba143NjZdXSxMPXt4aTohMSwKRWw6SVtrXjY3OF0seTc6SVtrXjY3OF0sczpJW2teNjc4XX07aWYoIXgpe3ZhciBlPUw7YnJlYWsgYX14PWcuaXcoeCk7TFtJW2teNzQzXV09ITA7TFtJW2teNjQ0XV09eFtJW2teNjg2XV07TFtJW2teNjY1XV09eFtJW2teNjc5XV07TFtJW2teNjQ4XV09eFtJW2teNjQ4XV07ZT1MfWlmKChuJjEyNik9PW4pYTp7TD1EW0lba143MjcxXV0oSVtrXjcyNTRdKTt4PVsvWy8sLTQsL11bfSxdXFsnLyxJW2teNzE4NF0sLShrXjE4MTg5Njc3MzgpLC0oa14zMzc1NjY4NzMpLGteOTg5NTU4NzU4LG51bGwsVVloLC0oa144MjEyMzQxMTApLGteODc1MzU2NTIyLC0oa145NDM2MTYyODUpLC0oa144MzYxOTg2MDIpLGteMTU5ODMxMjY5MixaODEsa143MDczMDE3OTAsa14xMTcyOTI1ODk4LG51bGwsa140MTk5NDUxMywtKGteMjc3NDM3NjUyKSxrXjE0MzEzMjI2NzcsRTJVLC0oa14xNDYyMzMwNzMxKSx4dlUsbnVsbCxrXjE2MDQ0MTY1LGteNDg4OTU0MTc0LGteODIyNTEwODUxLFlqWixMLEhXdCwKZmFpLG8yaiwtKGteMjAyOTQ4MDMyNyksa14xMjgxODQ0NjYsa142NjMwMjAxNDQsU0ExLC0oa14xMjYwMTUwODE1KSwtKGteMTM4NTgyODA1NiksLShrXjE2NjI1MTc4MzcpLGteMTQ3ODUyMTA0NCwkWWosa14xODcwOTA2Mjg1LGteODIyNTEwODUxLFN1eCwtKGteMTExOTIxMzExNCksLShrXjg3NDEwNjcxMCksa14yMDc2NDU3OTE4LGteMTc0Njc4MTY5NCxJW2teNzI0MF0sb1VqLGteMTM4NDIyNjkxNSxNQ2IsLShrXjE2MjA0NjE3NTYpLGteMTI3MjM0ODc2MCxJW2teNzI5NF0sLShrXjkxMjQ2MDk4MSksa14xODg3MTM4NTY5LEoxWixJW2teNzE3MV0sTCwtKGteMTg5NjQ1NTA0KSwtKGteMTM1NTU3MzkzMSksLShrXjE0MTE5OTc0MjkpLGteMTk0Mzk0NjQxMyxMLElhMixTalUsa14xODcwOTA2Mjg1LElba143MjkwXSxBMTEsa14xMDM5NzI3ODI1LGteOTQxOTgzMTg4LC0oa14xODUwNDM2ODczKSxJW2teNzE2OF0sa14yMTYzOTkwMjEsbXR4LC0oa140NjQ5MjEzOSldO3hbNV09Cng7eFtrXjcyNDRdPXg7eFtrXjcyNTNdPXg7aWYodHlwZW9mIEtHdD09PUlba143Mjc4XSl7ZT1EO2JyZWFrIGF9dHJ5e3RyeXt4W2teNzI1NV09PT0tMyYmKCgoMCx4W2teNzI1NF0pKHhba143MTczXSx4W2teNzI0NF0pLCgoMCx4W2teNzI4MV0pKHhba143MjU2XSwoMCx4W2teNzI5MV0pKCkseFtrXjcyOTBdKSx4W2teNzI4MV0pKHhba143Mjg5XSwoMCx4W2teNzI0N10pKCkseFtrXjcyOTBdKSx4W2teNzI2M10pKHhba143MjUzXSksMSl8fCgoMCx4W2teNzI1NF0pKHhba143MjUxXSx4W2teNzI1Nl0pLHhba143MjYxXSkoeFtrXjcyNzJdLHhba143MjkyXSk+PigoMCx4W2teNzI2M10pKHhba143MjU2XSl8KDAseFtrXjcxNzVdKSh4W2teNzI1Ml0seFs1XSkpfWNhdGNoKHIpeygwLHhba143MjU1XSkoeFtrXjcyODJdKX1maW5hbGx5e3ZhciBHPU0zKGteNzI1NyxrXjIxOTAseCl9dHJ5e0c9WEQoa143MjUzLGteNzgwMCx4KX1jYXRjaChyKXt4W2teNzE3OV0hPS0zJiYoKCgoMCx4W2teCjcyOTJdKSgoMCx4W2teNzI0N10pKHhba143MTc3XSx4W2teNzE3NF0pLHhba143MjgzXSx4W2teNzE2OF0pLCgwLHhba143MTY5XSkoeFs1XSx4W2teNzI0OV0pLHhba143MTgxXSkoeFtrXjcyNDBdLHhba143MjgyXSkseFszXSkoeFtrXjcyNzBdLHhba143MjY5XSkseFtrXjcyNzhdKSgoMCx4W2teNzI3N10pKHhba143MjYxXSx4W2teNzI1MF0pLHhba143MjQ4XSwoMCx4W2teNzI2NF0pKHhba143Mjg3XSx4W2teNzI0NF0pLHhba143MjgzXSx4W2teNzI3MV0pLHhba143MjYwXSE9PTAmJih4W2teNzE2OF08PS0zPygwLHhba143MjY0XSkoeFtrXjcyNjldLHhba143MTc3XSk6KDAseFtrXjcxNjldKSh4W2teNzI2OF0sKDAseFtrXjcyNThdKSgpLHhbNF0pKX1maW5hbGx5e3hba143MTczXSE9PTQmJih4W2teNzI0N108PS00PygwLHhba143Mjg5XSkoKCgwLHhba143Mjc5XSkoeFtrXjcxODNdLHhba143MjQ0XSkseFtrXjcyNjhdKSh4W2teNzE4M10seFtrXjcyNDVdKSx4W2teNzI0OV0sCigwLHhba143MjQzXSkoKDAseFtrXjcyNDhdKSh4W2teNzI1N10seFtrXjcyODJdKSx4W2teNzI2OF0seFtrXjcyNDJdLHhba143MTcyXSksKCgoKCgoMCx4W2teNzI5NF0pKHhba143MjgxXSx4W2teNzI0MF0pLHhba143Mjc1XSkoeFtrXjcxODddLHhba143MjYzXSkseFtrXjcyNTVdKSh4W2teNzE3N10sKDAseFtrXjcyNDJdKSgpLHhba143MjU2XSkseFtrXjcyNDldKSh4W2teNzI2Nl0seFtrXjcyOTNdKSx4W2teNzE3NV0pKCgwLHhba143MTgwXSkoeFtrXjcyNDhdLHhba143MjkzXSkseFtrXjcxNzNdLHhbMV0seFtrXjcyOTNdKSx4W2teNzI0OV0pKHhba143MTY4XSx4W2teNzI2M10pLCgwLHhba143Mjc1XSkoeFtrXjcyODhdLHhba143MjkzXSk8PSgwLHhba143MjU1XSkoeFtrXjcxNzddLCgwLHhba143Mjc5XSkoKSx4W2teNzI1MF0pLHhba143MTc2XSwoMCx4W2teNzE3Nl0pKHhba143MjUxXSx4W2teNzI2M10pLHhbMF0seFtrXjcxNzddKTooKCgwLHhba143MTgxXSkoKCgwLHhba14KNzE3Nl0pKHhba143MTY5XSx4W2teNzI2M10pLHhba143Mjc1XSkoeFtrXjcyOTFdLHhba143MjYzXSklKDAseFtrXjcxODJdKSh4W2teNzE3Ml0pLHhba143MjU1XSwoMCx4W2teNzE3Nl0pKHhbNF0seFtrXjcxNzJdKSx4W2teNzI5M10sKDAseFtrXjcyNzBdKSgpLHhba143MjU2XSksKDAseFtrXjcxODJdKSh4W2teNzI4MV0pLHhba143MjU1XSkoeFtrXjcyOTNdLCgwLHhba143MjU3XSkoKSx4W2teNzI2OF0pPT09KCgoMCx4W2teNzI1NV0pKHhba143MTc3XSwoMCx4W2teNzI1N10pKCkseFtrXjcyNTBdKSx4W2teNzI3NV0pKHhba143MjU5XSx4W2teNzE3MV0pLCgwLHhba143MjU1XSkoeFtrXjcxNzddLCgwLHhba143MjU3XSkoKSx4W2teNzI2OF0pLHhba143MjU1XSkoeFtrXjcyOTNdLCgwLHhba143Mjc5XSkoKSx4W2teNzI1Nl0pXigwLHhba143Mjc1XSkoeFtrXjcyNzZdLHhba143MTcyXSksKDAseFtrXjcxNzVdKSgoMCx4W2teNzE3M10pKHhba143Mjc0XSx4W2teNzE3Ml0pLAp4W2teNzI1NV0seFtrXjcyOTNdLCgwLHhba143MjcwXSkoKSx4W2teNzI1MF0pLHhba143MTc2XSkoeFtrXjcyOTRdLHhba143MjYzXSkpfX1jYXRjaChyKXtlPUlba143MjgwXStEO2JyZWFrIGF9ZT1MW0lba143MjQ2XV0oSVtrXjcyNTRdKX0obl45MSk8MTYmJm4rMT4+Mz49MiYmKGVYKGteNjY0MixrXjE0ODksRCksZT1nLkRsKERbSVsxXV0sT1d0KSk7bis5Pj40Pj0zJiYobj4+MiYyNCk8MTImJmJbSVsyMl1dKEQpO3JldHVybiBlfTsKTXM9ZnVuY3Rpb24obil7cmV0dXJuISEobi5XJiZuLlcudmlkZW9JbmZvcyYmbi5XLnZpZGVvSW5mb3MubGVuZ3RoKX07CkFKPWZ1bmN0aW9uKG4pe3JldHVybiBuLk5QKCkmJm4uRygpLnN1cHBvcnRzR2FwbGVzc1Nob3J0cygpfTsKUlE9ZnVuY3Rpb24obil7dmFyIFc9WyJNVVNJQ19WSURFT19UWVBFX0FUViIsIk1VU0lDX1ZJREVPX1RZUEVfUFJJVkFURUxZX09XTkVEX1RSQUNLIl0sRD1sbyhuLnlRKT09PSJUVkhUTUw1X1NJTVBMWSImJm4ueVEuTi5jdGhlbWU9PT0iTVVTSUMiOyFuLkpnJiYoZy5NVihuLnlRKXx8dHUobi55USl8fEQpJiYoVy5pbmNsdWRlcyhuLm11c2ljVmlkZW9UeXBlKXx8bi5pc0V4dGVybmFsbHlIb3N0ZWRQb2RjYXN0KSYmKG4uSmc9ITApO2lmKFc9Zy5kOCgpKVc9L1N0YXJib2FyZFwvKFswLTldKykvLmV4ZWMoZy5YUSgpKSxXPShXP3BhcnNlSW50KFdbMV0sMTApOk5hTik8MTA7RD1odShuLnlRKSYmbi55US5OLmN0aGVtZT09PSJNVVNJQyI7dmFyIGI7aWYoYj0hbi5KZylEfHwoRD1uLnlRLEQ9bG8oRCk9PT0iVFZIVE1MNSImJkQuTi5jdmVyLnN0YXJ0c1dpdGgoIjciKSksYj1EO2ImJiFXJiYoVz1uLm11c2ljVmlkZW9UeXBlPT09Ik1VU0lDX1ZJREVPX1RZUEVfUFJJVkFURUxZX09XTkVEX1RSQUNLIiwKRD0obi5TKCJjYXN0X3ByZWZlcl9hdWRpb19vbmx5X2Zvcl9hdHZfYW5kX3VwbG9hZHMiKXx8bi5TKCJrYWJ1a2lfcGFuZ2VhX3ByZWZlcl9hdWRpb19vbmx5X2Zvcl9hdHZfYW5kX3VwbG9hZHMiKSkmJm4ubXVzaWNWaWRlb1R5cGU9PT0iTVVTSUNfVklERU9fVFlQRV9BVFYiLFd8fER8fG4uaXNFeHRlcm5hbGx5SG9zdGVkUG9kY2FzdCkmJihuLkpnPSEwKTtyZXR1cm4gbi55US5kZXZpY2VJc0F1ZGlvT25seXx8bi5KZyYmbi55US5LfTsKUXo9ZnVuY3Rpb24obil7cmV0dXJuIG4ueVEuUygiaHRtbDVfZGlzYWJsZV9hdjEiKT8hMDohMX07Ck5JPWZ1bmN0aW9uKG4pe3JldHVybiBuLnBsYXllclJlc3BvbnNlPy5wbGF5ZXJDb25maWc/LmNvbXBvc2l0ZVZpZGVvQ29uZmlnPy5jb21wb3NpdGVCcm9hZGNhc3RUeXBlPT09IkNPTVBPU0lURV9CUk9BRENBU1RfVFlQRV9DT01QUkVTU0VEX0RPTUFJTl9DT01QT1NJVEUifTsKVno9ZnVuY3Rpb24obil7dmFyIFc9bi5LO24uUygiaHRtbDVfZ2FwbGVzc191bmxpbWl0X2Zvcm1hdF9zZWxlY3Rpb24iKSYmQUoobikmJihXPSExKTt2YXIgRD0hIW4uTiYmbi5OLnpXO1c9VThaKG4ueVEse21WOm4ubVYoKSx5WDpELE93OlJRKG4pLEhpOm4uSGksbFU6Vyxpc090ZjpuLmlzT3RmKCksb0w6bi5vTCgpLElSOm4uSVIseGQ6bi5nZXRVc2VyQXVkaW81MVByZWZlcmVuY2UoKSxkaXNhYmxlQXYxOlF6KG4pLGRCOk5JKG4pfSk7Zy5ZTihuKSYmKFcudlg9ITApO3pRKCkmJm4ucGxheWVyUmVzcG9uc2UmJm4ucGxheWVyUmVzcG9uc2UucGxheWVyQ29uZmlnJiZuLnBsYXllclJlc3BvbnNlLnBsYXllckNvbmZpZy53ZWJQbGF5ZXJDb25maWcmJm4ucGxheWVyUmVzcG9uc2UucGxheWVyQ29uZmlnLndlYlBsYXllckNvbmZpZy51c2VDb2JhbHRUdm9zRG9nZm9vZEZlYXR1cmVzJiYoVy5qPSEwLFcuVj0hMCk7bi5LJiZuLmlzQWQoKSYmKG4uWXImJihXLk89bi5Zciksbi5TViYmCihXLlg9bi5TVikpO24uTlAoKSYmKFcuUyQ9Zy5kTShuLnlRLmV4cGVyaW1lbnRzLCJodG1sNV9oYXJkX2NhcF9tYXhfdmVydGljYWxfcmVzb2x1dGlvbl9mb3Jfc2hvcnRzIikpO1cubnU9bi5pc0xpdmVQbGF5YmFjayYmbi5NaSgpJiZuLnlRLlMoImh0bWw1X2RybV9saXZlX2F1ZGlvXzUxIik7Vy5iZD1uLkVUO24uUygiaHRtbDVfZGlzYWJsZV92cDlfaGRyX2ZhaXJwbGF5IikmJnpRKCkmJihXLmJkPSEwKTtXLlJhPSFnLllOKG4pO1cuVEM9IWcuWU4obikmJm4ueVEuZXhwZXJpbWVudHMuWnQoKS5OLlFRKFByaSk7cmV0dXJuIG4uZSQ9V307ClV0TT1mdW5jdGlvbihuKXtnLmFMKCJkcm1fcGJfcyIsdm9pZCAwLG4uelIpO24uQ2l8fG4uTiYmbi5OLlgoKTt2YXIgVz17fTtuLk4mJihXPU5kKG4ueXcsVnoobiksbi55US5XLG4uTixEPT5uLldKKCJjdG1wIiwiZm10Zmx0IixEKSwhMCxuZXcgU2V0KSk7Clc9bmV3IFpXUyhXLG4ueVEsbi5KaixuLnVzZUNvYmFsdFdpZGV2aW5lP3pRKCk/VGYobik6ITE6ITEsKEQsYik9PntuLlUoRCxiKX0pOwpnLnUobixXKTtuLlEkPSExO24ubG9hZGluZz0hMDtkOGkoVyxEPT57Zy5hTCgiZHJtX3BiX2YiLHZvaWQgMCxuLnpSKTtmb3IodmFyIGIgb2YgRClzd2l0Y2goYi5mbGF2b3Ipe2Nhc2UgImZhaXJwbGF5IjpiLkNpPW4uQ2k7Yi5WOT1uLlY5O2Iuamk9bi5qaTticmVhaztjYXNlICJ3aWRldmluZSI6Yi5GYz1uLkZjfW4uVFE9RDtpZihuLlRRLmxlbmd0aD4wJiYobi5qPW4uVFFbMF0sbi55US5XWCgpKSl7RD17fTtmb3IobGV0IFt2LGtdb2YgT2JqZWN0LmVudHJpZXMobi5qLkopKXtiPWs7bGV0IGg9InVuayIseD12Lm1hdGNoKC8oLiopY29kZWNzPSIoLiopIi8pO3gmJihoPXhbMl0pO0RbaF09Yn1uLlUoImRybVByb2JlIixEKX1mTChuKX0pfTsKY2o9ZnVuY3Rpb24obil7dmFyIFc7aWYoVz0hIW4uY290bilXPW4udmlkZW9JZCxXPSEhVyYmZSQoVyk9PT0xO3JldHVybiBXJiYhbi5XaX07CnkxaD1mdW5jdGlvbihuKXt2YXIgVz1uLnBsYXllclJlc3BvbnNlPy5zdHJlYW1pbmdEYXRhPy5hZGFwdGl2ZUZvcm1hdHN8fFtdLEQ9bnVsbDtpZihXLmxlbmd0aD4wKUQ9YVEobixXKTtlbHNlIGlmKCFuLlMoImh0bWw1X2RlcHJlY2F0ZV9hZGFwdGl2ZV9mb3JtYXRzX3N0cmluZyIpKXtuLlUoInBhZm10c3RyIix7czpuLmFkYXB0aXZlRm9ybWF0cy5zdWJzdHJpbmcoMCw1MCl9KTtpZigoVz1uLmFkYXB0aXZlRm9ybWF0cykmJiFqJChuKSl7bi55US5XLkomJihSbz0hMCk7Vz1uQShXKTtEPW4uY29udGVudFByb3RlY3Rpb247dmFyIGI9bi5sZW5ndGhTZWNvbmRzLHY9bi5pc0xpdmVQbGF5YmFjayxrPW4uWGcsaD1uLnlRLHg9bi5jbGllbnRQbGF5YmFja05vbmNlLEw9czVVKFcpO2lmKHZ8fGspe2I9bmV3IGcuR3goIiIsaD8uZXhwZXJpbWVudHMsITApO2Iuelc9ITA7Yi5pc01hbmlmZXN0bGVzcz0hMDtiLlc9IWs7Yi5pc0xpdmU9IWs7Yi5YZz1rO2ZvcihHIG9mIFcpe3Y9SW8oRywKRCwwLGgseCk7TD1SeChHLnVybCxHLnNwLEcucyk7dmFyIGU9TC5nZXQoImlkIik7ZSYmZS5pbmNsdWRlcygiJTdFIikmJihiLk89ITApO2U9aD8uZXhwZXJpbWVudHM/LkVxKCJodG1sNV9tYXhfa25vd25fZW5kX3RpbWVfcmViYXNlIik7bGV0IHI9TnVtYmVyKEcudGFyZ2V0X2R1cmF0aW9uX3NlYyl8fDUsTj1OdW1iZXIoRy5tYXhfZHZyX2R1cmF0aW9uX3NlYyl8fDE0NDAwLEg9TnVtYmVyKEwuZ2V0KCJtaW5kc3EiKXx8TC5nZXQoIm1pbl9zcSIpfHwiMCIpLEE9TnVtYmVyKEwuZ2V0KCJtYXhkc3EiKXx8TC5nZXQoIm1heF9zcSIpfHwiMCIpfHxJbmZpbml0eTtiLkl0PWIuSXR8fEg7Yi5IUD1iLkhQfHxBO2xldCB5PSF2Lk4oKTtMJiYkZyhiLG5ldyBXVChMLHYse3JiOnIsT1Q6eSx1YjpOLEl0OkgsSFA6QSx1azozMDAsWGc6ayxFMzplfSkpfXZhciBHPWJ9ZWxzZSBHPUw9PT0iRk9STUFUX1NUUkVBTV9UWVBFX09URiI/TnBqKFcsRCxiLGgseCk6cEpiKFcsRCxiLGgseCk7Vy5sZW5ndGg+CjAmJihXPVdbMF0sRmUobikmJlcudXJsJiYobi5SYT1uLlJhfHxCaihXLnVybCkpKTtXPW4uaXNMaXZlUGxheWJhY2smJiFuLlhnJiYhbi5SSSYmIW4uaXNQcmVtaWVyZTtuLlMoImh0bWw1X2xpdmVfaGVhZF9wbGF5YWJsZSIpJiYoIWcuRFAobikmJlcmJm4uVSgibWlzc2luZ0xpdmVIZWFkUGxheWFibGUiLHt9KSxuLnlRLlY9PT0ieXQiJiYoRy5WUT0hMCkpO0Q9R31lbHNlIEQ9bnVsbDtuLlUoInBhZm10cyIse2lzTWFuaWZlc3RGaWxsZWQ6ISFEfSl9aWYoIUQpcmV0dXJuITE7YkYobixEKTtyZXR1cm4hMH07Ckk0PWZ1bmN0aW9uKG4pe3JldHVybiEoIW4uTnx8IW4uTi5pc01hbmlmZXN0bGVzcyl9OwpnLkRQPWZ1bmN0aW9uKG4pe3JldHVybiBuLlMoImh0bWw1X2xpdmVfaGVhZF9wbGF5YWJsZSIpJiZJNChuKSYmbi55US5WPT09Inl0Ij9uLmlzTGl2ZUhlYWRQbGF5YWJsZTpuLmlzTGl2ZVBsYXliYWNrfTsKYVE9ZnVuY3Rpb24obixXKXtpZihXLmxlbmd0aD09PTB8fGokKG4pKXJldHVybiBudWxsO24ueVEuVy5KJiYoUm89ITApO3ZhciBEPW4uY29udGVudFByb3RlY3Rpb247dmFyIGI9bi5sZW5ndGhTZWNvbmRzLHY9bi5pc0xpdmVQbGF5YmFjayxrPW4uWGcsaD1uLnlRLHg9bi5jbGllbnRQbGF5YmFja05vbmNlLEw9cXVqKFcpO2lmKHZ8fGspe2I9bmV3IGcuR3goIiIsaC5leHBlcmltZW50cywhMCk7Yi5XPSFrO2Iuelc9ITA7Yi5pc01hbmlmZXN0bGVzcz0hMDtiLmlzTGl2ZT0haztiLlhnPWs7Zm9yKGxldCBHIG9mIFcpe3Y9dFooRyxELDAsaCx4KTtsZXQge0VsOnIsczpOLHk3Okh9PVAwKDUsNjk0LEcpO0w9Ungocnx8Ry51cmx8fCIiLEgsTik7dmFyIGU9TC5nZXQoImlkIik7ZSYmZS5pbmNsdWRlcygiJTdFIikmJihiLk89ITApO2U9aC5leHBlcmltZW50cz8uRXEoImh0bWw1X21heF9rbm93bl9lbmRfdGltZV9yZWJhc2UiKTtsZXQgQT1OdW1iZXIoRy50YXJnZXREdXJhdGlvblNlY3x8CjUpLHk9TnVtYmVyKEcubWF4RHZyRHVyYXRpb25TZWN8fDE0NDAwKSxUPU51bWJlcihMLmdldCgibWluZHNxIil8fEwuZ2V0KCJtaW5fc3EiKXx8IjAiKSx6PU51bWJlcihMLmdldCgibWF4ZHNxIil8fEwuZ2V0KCJtYXhfc3EiKXx8IjAiKXx8SW5maW5pdHk7Yi5JdD1iLkl0fHxUO2IuSFA9Yi5IUHx8ejtsZXQgQz0hdi5OKCk7TCYmJGcoYixuZXcgV1QoTCx2LHtyYjpBLE9UOkMsdWI6eSxJdDpULEhQOnosdWs6MzAwLFhnOmssRTM6ZX0pKX1EPWJ9ZWxzZSBEPUw9PT0iRk9STUFUX1NUUkVBTV9UWVBFX09URiI/RzNDKFcsRCxiLGgseCk6dE9aKFcsRCxiLGgseCk7Vy5sZW5ndGg+MCYmKFc9V1swXSxGZShuKSYmVy51cmwmJihuLlJhPW4uUmF8fEJqKFcudXJsKSkpO1c9bi5pc0xpdmVQbGF5YmFjayYmIW4uWGcmJiFuLlJJJiYhbi5pc1ByZW1pZXJlO24uUygiaHRtbDVfbGl2ZV9oZWFkX3BsYXlhYmxlIikmJighZy5EUChuKSYmVyYmbi5VKCJtaXNzaW5nTGl2ZUhlYWRQbGF5YWJsZSIsCnt9KSxuLnlRLlY9PT0ieXQiJiYoRC5WUT0hMCkpO3JldHVybiBEfTsKbkE9ZnVuY3Rpb24obixXKXtuPXV3KG4pO3ZhciBEPXt9O2lmKFcpZm9yKHZhciBiIG9mIFcuc3BsaXQoIiwiKSkoVz1iLm1hdGNoKC9eKFswLTldKylcLyhbMC05XSspeChbMC05XSspKFwvfCQpLykpJiYoRFtXWzFdXT17d2lkdGg6V1syXSxoZWlnaHQ6V1szXX0pO2ZvcihsZXQgdiBvZiBuKWlmKGI9RFt2Lml0YWddKXYud2lkdGg9Yi53aWR0aCx2LmhlaWdodD1iLmhlaWdodDtyZXR1cm4gbn07CmJGPWZ1bmN0aW9uKG4sVyxEPSExKXtuLmVWPXZvaWQgMDtuLk49VztnLnUobixXKTtXLkl0PW4uSXQ7Vy5IUD1uLkhQO1cuSlU9bi5KVTtXLm9SPW4ub1I7Vy5JVD1uLklUO24ubEMmJihXLlk9bmV3IHZUKG4ubEMpKTsobi5tVigpfHxnLmtwKG4pKSYmbi5JSi5wdXNoKCJ3ZWJnbCIpO24uTi5pc0xpdmV8fChuLmlzTGl2ZVBsYXliYWNrPSExKTt2YXIgYj1XLnNvdXJjZVVybC5zcGxpdCgiLyIpO2lmKG4uVlE/Yi5pbmRleE9mKCJtYW5pZmVzdF9kdXJhdGlvbiIpIT09LTE6Yi5pbmRleE9mKCJtYW5pZmVzdF9kdXJhdGlvbiIpIT0tMSluLnptPU51bWJlcihiW2IuaW5kZXhPZigibWFuaWZlc3RfZHVyYXRpb24iKSsxXSk7aWYoVy5XfHxXLmlzTWFuaWZlc3RsZXNzKVcuc3Vic2NyaWJlKCJjbGllbnR0ZW1wIixuLlUsbiksRD9XLnN1YnNjcmliZSgicmVmcmVzaCIsbi5QSCxuKTpXLnN1YnNjcmliZSgiY3VlcG9pbnRzYWRkZWQiLG4uRVosbik7Vy5YKCk/bi5RJD0hMDpHTD12b2lkIDA7Cm4uUkkmJihXLmlzV2luZG93ZWRMaXZlPW4uUkksVy5pc0xpdmU9ITAsbi5pc0xpdmVQbGF5YmFjaz0hMCk7Vy5pc1ByZW1pZXJlPW4uaXNQcmVtaWVyZTtXLmlzTGl2ZUhlYWRQbGF5YWJsZT1uLmlzTGl2ZUhlYWRQbGF5YWJsZX07ClRmPWZ1bmN0aW9uKG4pe3JldHVybiBuLlMoImh0bWw1X3R2b3Nfc2tpcF9kYXNoX2F1ZGlvX2NoZWNrIil8fE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgnYXVkaW8vd2VibTsgY29kZWNzPSJvcHVzIicpfTsKaiQ9ZnVuY3Rpb24obil7cmV0dXJuIHpRKCk/IVRmKG4pOkMkKCk/bi5DaSYmbi5jTz8hMDohKCFuLkNpfHwhbi5TKCJodG1sNV9lbmFibGVfc2FmYXJpX2ZhaXJwbGF5IikmJmZOKCkpOiExfTsKU3g9ZnVuY3Rpb24obil7cmV0dXJuIG4ubGF0ZW5jeUNsYXNzPT09IkxPVyJ8fG4ubGF0ZW5jeUNsYXNzPT09IlVMVFJBTE9XIn07CmhEPWZ1bmN0aW9uKG4pe3JldHVybiBuLlZRP1N4KG4pJiZuLk4hPW51bGwmJm9vKG4uTik+PTU6U3gobikmJm4uTiE9dm9pZCAwJiZvbyhuLk4pPj01fTsKRXFoPWZ1bmN0aW9uKG4pe24ubG9hZGluZz0hMDtuLkN1PSExO2lmKGNqKG4pKUIkeChuLnZpZGVvSWQpLnRoZW4oYj0+e2lmKG4ucGxheWVyUmVzcG9uc2U/LnN0cmVhbWluZ0RhdGEpe3ZhciB2PVtdO2ZvcihsZXQgayBvZiBiKWI9T2JqZWN0LmFzc2lnbih7fSxrKSxiLnNpZ25hdHVyZUNpcGhlcj0iIix2LnB1c2goYik7di5sZW5ndGg8MiYmbi5VKCJvZmZtbGYiLHtsZW46di5sZW5ndGh9KTt2PWFRKG4sdik7UlEobikmJnp4KHYsITEpO2JGKG4sdik7bi5VKCJkbHIiLHt9KX1lbHNlIG4uVSgib2Zmc2RtIix7Y290bjpuLkNtP24uQ20uY290bjoiMCIsY3BuOm4uY2xpZW50UGxheWJhY2tOb25jZX0pfSkudGhlbigoKT0+e2ZMKG4pfSk7CmVsc2V7Z1gobi5UZil8fGcuR3EobmV3IGcuUXgoIkRBU0ggTVBEIE9yaWdpbiBpbnZhbGlkOiAiLG4uVGYpKTt2YXIgVz1uLlRmLEQ9Zy5kTShuLnlRLmV4cGVyaW1lbnRzLCJkYXNoX21hbmlmZXN0X3ZlcnNpb24iKXx8NDtXPWcuRVQoVyx7bXBkX3ZlcnNpb246RH0pO1N4KG4pJiZuLmxhdGVuY3lDbGFzcyE9PSJOT1JNQUwifHwoVz1nLkVUKFcse3BhY2luZzowfSkpO2Z0WihXLG4ueVEuZXhwZXJpbWVudHMsbi5pc0xpdmVQbGF5YmFjaykudGhlbihiPT57bi5xTigpfHwoYkYobixiLCEwKSxnLmFMKCJtcmMiLHZvaWQgMCxuLnpSKSxmTChuKSl9LGI9PntuLnFOKCl8fChuLmxvYWRpbmc9ITEsbi5XSigiZGF0YWxvYWRlcnJvciIsbmV3IGcuQ2koIm1hbmlmZXN0Lm5ldC5yZXRyeWV4aGF1c3RlZCIse2JhY2tlbmQ6Im1hbmlmZXN0IiwKcmM6Yi5zdGF0dXN9LDEpKSl9KTsKZy5hTCgibXJzIix2b2lkIDAsbi56Uil9fTsKeHA9ZnVuY3Rpb24obil7aWYoIW4uaXNQcm94aW1hTGF0ZW5jeUVsaWdpYmxlKXJldHVybiAwO3ZhciBXPVlkKCk7cmV0dXJuIG4ueVEuZ2V0V2ViUGxheWVyQ29udGV4dENvbmZpZygpPy5lbmFibGVQcm94aW1hTG93TGF0ZW5jeT8yOlc9PT0xPzE6bi5TKCJodG1sNV9lbmFibGVfcHJveGltYSIpPzI6MH07Ckt6PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4uUyhXKT8hMDoobi5mZmxhZ3N8fCIiKS5pbmNsdWRlcyhXKyI9dHJ1ZSIpfTsKaVdTPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9V3x8Q0wobil8fG4uaXNFeHRlcm5hbGx5SG9zdGVkUG9kY2FzdDtpZighbi5OfHxEKXJldHVybiBuLlUoInNraXBEYXNoIix7ZG06ISFuLk4sYWlyOlcsZGQ6bi5VVCxtc3M6Zk4oKSwiM3BwIjpuLmlzRXh0ZXJuYWxseUhvc3RlZFBvZGNhc3R9KSxnLnAkKCk7UlEobikmJnp4KG4uTixuLmlzTGl2ZVBsYXliYWNrKTtyZXR1cm4gZy5IMCgpLnRoZW4oKCk9PlMyYihuLnl3LFZ6KG4pLG4ueVEuVyxuLk4sbi5qLGI9Pm4uV0ooImN0bXAiLCJmbXRmbHQiLGIpLG4ub00sTEEobikpLnRoZW4oYj0+e2U3KG4sYik7Cm4ueXcuSj1udWxsOy9eYXYvLnRlc3Qobi5jbGllbnRQbGF5YmFja05vbmNlKSYmbi5lJCYmbi5VKCJhdjEiLG4uZSQuTil9KSl9Owp1bXQ9ZnVuY3Rpb24obixXKXtpZihXJiZuLmhsc3ZwKXJldHVybiBnLnAkKCk7aWYobi5obHNGb3JtYXRzKXtpZihXPW5BKG4uaGxzRm9ybWF0cykpe2xldCBiPVtdO2Zvcih2YXIgRCBvZiBXKUQudXJsJiYoRC51cmw9Vm10KEQudXJsKSksbi5lJD8uVyYmYi5wdXNoKEQuaXRhZyk7bi5lJD8uVyYmYi5sZW5ndGg+MCYmbi5VKCJobHNmbXQiLHtpdGFnczpiLmpvaW4oIi4iKX0pfW4ueUU9Z1laKG4ueVEsVyk7bi55RSYmZ2wobixuLnlFKTtEPW4uY2xpZW50UGxheWJhY2tOb25jZTtyZXR1cm4gdG1NKG4ueVEsbi5pc0FkKCksVyxuLnBsYXllclJlc3BvbnNlPy5jYXB0aW9ucz8ucGxheWVyQ2FwdGlvbnNSZW5kZXJlcj8uYmFzZVVybD8/bnVsbCxuLkdmLEQsYj0+bi5XSigiY3RtcCIsImhsc2ZsdCIsYikpLnRoZW4oYj0+e3ZhciB2PTAsaz1bXTsKZm9yKGxldCBoIG9mIGIpay5wdXNoKGgua0woKT8uaXRhZyksaC5rTCgpPy5ZKCk/Lm51bUNoYW5uZWxzPnYmJih2PWgua0woKS5hdWRpby5udW1DaGFubmVscyk7dj4yJiZuLlUoImhsc2NobCIse21uOnZ9KTtuLmUkPy5XJiZuLlUoImhsc2ZtdGFmIix7aXRhZ3M6ay5qb2luKCIuIil9KTtpZihuLlMoImh0bWw1X2VuYWJsZV92cDlfZmFpcnBsYXkiKSYmbi5qPy5OKCkpe24uVSgiZHJtIix7c2JkbGZiazoxfSk7Zm9yKGxldCBoIG9mIG4uVFEpaWYoZzEoaCkpe24uaj1oO2JyZWFrfX1YMihuLGIpfSl9cmV0dXJuIGcucCQoKX07Cm9xMT1mdW5jdGlvbihuKXtpZihuLmlzRXh0ZXJuYWxseUhvc3RlZFBvZGNhc3QmJm4uY2Ype2xldCBXPW5BKG4uY2YpO2lmKCFXWzBdKXJldHVybiBnLnAkKCk7bi5xdz1XWzBdO3JldHVybiBzaXIobi55USxXWzBdKS50aGVuKEQ9PntYMihuLEQpfSl9cmV0dXJuIG4uUXImJm4ub2M/cnFaKG4ueVEsbi5pc0FkKCksbi5RcikudGhlbihXPT57WDIobixXKX0pOmcucCQoKX07CnprVT1mdW5jdGlvbihuKXtpZihuLmlzRXh0ZXJuYWxseUhvc3RlZFBvZGNhc3QpcmV0dXJuIGcucCQoKTt2YXIgVz1uQShuLmNmLG4uR2opO2lmKG4uaGxzdnApe2xldCBEPVFpMihuLmhsc3ZwLG4uY2xpZW50UGxheWJhY2tOb25jZSxuLkdmKTtXLnB1c2goRCl9cmV0dXJuIGpDaChuLnlRLG4uaXNBZCgpLFcsZHQxKG4pKS50aGVuKEQ9PntYMihuLEQpfSl9OwpMQT1mdW5jdGlvbihuKXt2YXIgVz1uLlMoImh0bWw1X2VuYWJsZV9zZXJ2ZXJfZm9ybWF0X2ZpbHRlciIpJiYhbi5NaSgpLEQ9bi5TKCJodG1sNV9lbmFibGVfc2VydmVyX2Zvcm1hdF9maWx0ZXJfZm9yX2RybSIpJiZuLk1pKCk7cmV0dXJuIGcuWU4obikmJihXfHxEKX07CmU3PWZ1bmN0aW9uKG4sVyl7bi5XPVc7Z2wobixuLlcuZ2V0QXZhaWxhYmxlQXVkaW9UcmFja3MoKSk7aWYobi5XKWZvcih2YXIgRCBvZiBuLlcudmlkZW9JbmZvcylXPUQuY29udGFpbmVyVHlwZSxXIT09MCYmKG4uYkJbV109RC5pZCk7RD1uLmdldEF2YWlsYWJsZUF1ZGlvVHJhY2tzKCk7RD1ELmNvbmNhdChuLnZYKTtmb3IoVz0wO1c8bi5Udy5sZW5ndGg7VysrKXtsZXQgdj1uLlR3W1ddO2ZvcihsZXQgaz0wO2s8RC5sZW5ndGg7aysrKXtsZXQgaD1EW2tdO3ZhciBiPWgua1ouaWQ9PT12LmF1ZGlvVHJhY2tJZDtpZihoLmtaLmlzRGVmYXVsdCYmVz09PW4uTyR8fGIpe2lmKHYuY2FwdGlvblRyYWNrSW5kaWNlcylmb3IoYj0wO2I8di5jYXB0aW9uVHJhY2tJbmRpY2VzLmxlbmd0aDtiKyspaC5jYXB0aW9uVHJhY2tzW2JdPW4uY2FwdGlvblRyYWNrc1t2LmNhcHRpb25UcmFja0luZGljZXNbYl1dO3YuZGVmYXVsdENhcHRpb25UcmFja0luZGV4IT09dm9pZCAwJiYoaC5XPW4uY2FwdGlvblRyYWNrc1t2LmRlZmF1bHRDYXB0aW9uVHJhY2tJbmRleF0pOwp2LmZvcmNlZENhcHRpb25UcmFja0luZGV4IT09dm9pZCAwJiYoaC5OPW4uY2FwdGlvblRyYWNrc1t2LmZvcmNlZENhcHRpb25UcmFja0luZGV4XSk7aC5KPXYudmlzaWJpbGl0eXx8IlVOS05PV04iO2guY2FwdGlvbnNJbml0aWFsU3RhdGU9di5jYXB0aW9uc0luaXRpYWxTdGF0ZXx8IkNBUFRJT05TX0lOSVRJQUxfU1RBVEVfVU5LTk9XTiJ9fX1pZihuLmomJm4uVyYmbi5XLnZpZGVvSW5mb3MmJiEobi5XLnZpZGVvSW5mb3MubGVuZ3RoPD0wKSYmKEQ9bi5XLnZpZGVvSW5mb3NbMF0uVygpLG4uai5mbGF2b3I9PT0iZmFpcnBsYXkiIT09RCkpZm9yKGxldCB2IG9mIG4uVFEpaWYoRD09PSh2LmZsYXZvcj09PSJmYWlycGxheSIpKXtuLmo9djticmVha319OwpnbD1mdW5jdGlvbihuLFcpe1cuc29ydCgoRCxiKT0+RC50b1N0cmluZygpLmxvY2FsZUNvbXBhcmUoYi50b1N0cmluZygpLG4ueVEuaG9zdExhbmd1YWdlKSl9OwpYMj1mdW5jdGlvbihuLFcpe24ubnU9VztlNyhuLG5ldyBwZyhnLmlfKG4ubnUsRD0+RC5rTCgpKSkpfTsKZHQxPWZ1bmN0aW9uKG4pe3ZhciBXPXtjcG46bi5jbGllbnRQbGF5YmFja05vbmNlLGM6bi55US5OLmMsY3ZlcjpuLnlRLk4uY3Zlcn07bi54eiYmKFcucHRrPW4ueHosVy5vaWQ9bi5YbyxXLnB0Y2huPW4uaDEsVy5wbHR5cGU9bi5xOCxuLnk5JiYoVy5tPW4ueTkpKTtyZXR1cm4gV307CmcucXU9ZnVuY3Rpb24obil7cmV0dXJuIGokKG4pJiZuLkNpP3tmYWlycGxheToiaHR0cHM6Ly95b3V0dWJlLmNvbS9hcGkvZHJtL2Zwcz9laz11bmluaXRpYWxpemVkIn06bi5KJiZuLkouY29udGVudFByb3RlY3Rpb258fG51bGx9OwpHZT1mdW5jdGlvbihuKXtyZXR1cm4gbi5wbGF5ZXJSZXNwb25zZSYmbi5wbGF5ZXJSZXNwb25zZS5wYWlkQ29udGVudE92ZXJsYXkmJm4ucGxheWVyUmVzcG9uc2UucGFpZENvbnRlbnRPdmVybGF5LnBhaWRDb250ZW50T3ZlcmxheVJlbmRlcmVyfHxnLncobi53YXRjaE5leHRSZXNwb25zZT8ucGxheWVyT3ZlcmxheXM/LnBsYXllck92ZXJsYXlSZW5kZXJlcj8ucGxheWVyRGlzY2xvc3VyZSxsYVMpfHxudWxsfTsKdEQ9ZnVuY3Rpb24obil7dmFyIFc9R2Uobik7cmV0dXJuIFcmJlcudGV4dD9nLkRwKFcudGV4dCk6bi5wYWlkQ29udGVudE92ZXJsYXlUZXh0fTsKJHA9ZnVuY3Rpb24obil7dmFyIFc9R2Uobik7cmV0dXJuIFcmJlcuZHVyYXRpb25Ncz9nLk5oKFcuZHVyYXRpb25Ncyk6bi5wYWlkQ29udGVudE92ZXJsYXlEdXJhdGlvbk1zfTsKcmw9ZnVuY3Rpb24obil7dmFyIFc9IiI7aWYobi51aClyZXR1cm4gbi51aDtuLmlzTGl2ZVBsYXliYWNrJiYoVz1uLmFsbG93TGl2ZUR2cj8iZHZyIjpuLmlzUHJlbWllcmU/ImxwIjpuLlJJPyJ3aW5kb3ciOiJsaXZlIik7bi5YZyYmKFc9InBvc3QiKTtyZXR1cm4gV307Cmcuc1M9ZnVuY3Rpb24obixXKXtyZXR1cm4gdHlwZW9mIG4ua2V5d29yZHNbV10hPT0ic3RyaW5nIj9udWxsOm4ua2V5d29yZHNbV119OwpnLllMPWZ1bmN0aW9uKG4pe3JldHVybiEhKG4uVGZ8fG4uY2Z8fG4uUXJ8fG4uaGxzdnB8fG4uSXAoKSl9OwpBeD1mdW5jdGlvbihuKXtyZXR1cm4obj1uLlJ0KSYmbi5zaG93RXJyb3I/bi5zaG93RXJyb3I6ITF9OwpOdT1mdW5jdGlvbihuKXtuLm11dGVkQXV0b3BsYXk9ITE7bi5lbmRTZWNvbmRzPU5hTjtuLmxpbWl0ZWRQbGF5YmFja0R1cmF0aW9uSW5TZWNvbmRzPU5hTjt6ZihuKX07CmcucEE9ZnVuY3Rpb24obil7cmV0dXJuIGcuRFAobikmJiFuLmFsbG93TGl2ZUR2cn07CllwPWZ1bmN0aW9uKG4pe3JldHVybiBnLkRQKG4pJiZuLmFsbG93TGl2ZUR2cn07CmcuSFQ9ZnVuY3Rpb24obil7cmV0dXJuISFuLk4mJks2KG4uTil9OwpnLmZBPWZ1bmN0aW9uKG4pe3JldHVybiEhbi5OJiZPayhuLk4pfTsKZy5rcD1mdW5jdGlvbihuKXtyZXR1cm4hIW4uTiYmSiRVKG4uTil9OwpnLkpEPWZ1bmN0aW9uKG4pe3JldHVybiEhbi5OJiZQRihuLk4pfTsKSVQ9ZnVuY3Rpb24obil7cmV0dXJuIG4uYWRGb3JtYXQmJihuLlZRP24uYWRGb3JtYXQhPT0iMV81IjpuLmFkRm9ybWF0IT0iMV81Iik/ImFkdW5pdCI6bi5ldmVudExhYmVsfHxuLnlRLll9OwpnLlM3PWZ1bmN0aW9uKG4pe3JldHVybiBJVChuKT09PSJzaG9ydHNwYWdlIn07CkFEPWZ1bmN0aW9uKG4pe3JldHVybiBuLkd1fHxJVChuKT09PSJkZXRhaWxwYWdlInx8SVQobik9PT0ic2hvcnRzcGFnZSJ8fG4ubXV0ZWRBdXRvcGxheX07CmlUPWZ1bmN0aW9uKG4pe3JldHVybiBJVChuKT09PSJhZHVuaXQiP24uVlQ6QUQobik/SVQobik9PT0iZGV0YWlscGFnZSJ8fElUKG4pPT09InNob3J0c3BhZ2UiP24uaXNBdXRvbmF2fHxuLlMkPjA6bi5mQj8hMTpuLnlRLlU1fHxuLnlRLk1kfHwhZy5vNChuLnlRKT8hMDohMToobi5mQj8wOm4uUFgpJiZnLm80KG4ueVEpPyEwOiExfTsKZy5tTz1mdW5jdGlvbihuKXtyZXR1cm4gbi56VygpJiZnLllOKG4pfTsKcHo9ZnVuY3Rpb24obil7cmV0dXJuISFuLnBsYXllclJlc3BvbnNlPy5wbGF5ZXJDb25maWc/Lm1lZGlhQ29tbW9uQ29uZmlnPy5zcGxpdFNjcmVlbkVsaWdpYmxlfTsKS0E9ZnVuY3Rpb24obil7cmV0dXJuIGlzTmFOKG4pPzA6TWF0aC5tYXgoKERhdGUubm93KCktbikvMUUzLTMwLDApfTsKT1M9ZnVuY3Rpb24obil7cmV0dXJuISghbi5XaXx8IW4ueVEuSykmJm4uSXAoKX07ClBUPWZ1bmN0aW9uKG4pe3JldHVybiBuLktkJiZuLmVuYWJsZVNlcnZlclN0aXRjaGVkRGFpfTsKVGhpPWZ1bmN0aW9uKG4pe3JldHVybiBuLkRFJiYhbi5sQ307CmNxeD1mdW5jdGlvbihuKXtzd2l0Y2gobi55US5WKXtjYXNlICJnZCI6cmV0dXJuIG4uUygiaHRtbDVfZW5hYmxlX3NhYnJfb25fZHJpdmUiKTtjYXNlICJncCI6cmV0dXJuIG4uUygiaHRtbDVfZW5hYmxlX3NhYnJfb25fcGxheV9zdG9yZSIpO2Nhc2UgImRkIjpyZXR1cm4hMDtjYXNlICJwdyI6cmV0dXJuIG4uUygiaHRtbDVfZW5hYmxlX3NhYnJfb3RmX2luX2NsaWVudCIpO2RlZmF1bHQ6cmV0dXJuITF9fTsKcEw9ZnVuY3Rpb24obil7dmFyIFc7aWYoIShXPU5zJiZuLnpXKCkmJm4uTWkoKSYmKG4uZHJtUHJvZHVjdD09PSIxIj8hMTohMCkmJm4uUygiaHRtbDVfc2Ficl9saXZlX2RybV9zdHJlYW1pbmdfeGhyIikpKXtXPW4uelcoKSYmIW4uTWkoKSYmTnM7dmFyIEQ9bi56VygpJiZuLmxhdGVuY3lDbGFzcyE9PSJVTFRSQUxPVyImJiFTeChuKSYmbi5TKCJodG1sNV9zYWJyX2xpdmVfbm9ybWFsX2xhdGVuY3lfc3RyZWFtaW5nX3hociIpLGI9U3gobikmJm4uUygiaHRtbDVfc2Ficl9saXZlX2xvd19sYXRlbmN5X3N0cmVhbWluZ194aHIiKTtsZXQgdj1uLmxhdGVuY3lDbGFzcz09PSJVTFRSQUxPVyImJm4uUygiaHRtbDVfc2Ficl9saXZlX3VsdHJhX2xvd19sYXRlbmN5X3N0cmVhbWluZ194aHIiKTtXPVcmJihEfHxifHx2KX1EPVc7Vz1uLmVuYWJsZVNlcnZlclN0aXRjaGVkRGFpJiZEJiZuLlMoImh0bWw1X2VuYWJsZV9zYWJyX3NzZGFpX3N0cmVhbWluZ194aHIiKTtEPSFuLmVuYWJsZVNlcnZlclN0aXRjaGVkRGFpJiYKRDtiPW4uelcoKSYmIU5zJiZuLlMoImh0bWw1X2VuYWJsZV9zYWJyX2xpdmVfbm9uX3N0cmVhbWluZ194aHIiKTtuPU5zJiYobi5ERigpfHxweihuKSYmbi5TKCJodG1sNV9lbmFibGVfc2Ficl9mb3JfbGlmYV9lbGlnaWJsZV9zdHJlYW1zIikpO3JldHVybiBXfHxEfHxifHxufTsKZy5tTT1mdW5jdGlvbihuKXtpZighbi5OfHwhbi5KfHwhbi5YKXJldHVybiExO3ZhciBXPW4uTi5OLEQ9ISFXW24uSi5pZF0mJmdaKDU2LDExOTYsV1tuLkouaWRdLlhiLk4pO1c9ISFXW24uWC5pZF0mJmdaKDIyLDExNTQsV1tuLlguaWRdLlhiLk4pO3JldHVybihuLkouaXRhZz09PSIwInx8RCkmJld9OwpaUD1mdW5jdGlvbihuKXtyZXR1cm4gbi5lQj9bIk9LIiwiTElWRV9TVFJFQU1fT0ZGTElORSJdLmluY2x1ZGVzKG4uZUIuc3RhdHVzKTohMH07ClVTPWZ1bmN0aW9uKG4pe3JldHVybiEoIW4uaXNMaXZlUGxheWJhY2t8fCFuLmhhc1Byb2dyZXNzQmFyQm91bmRhcmllcygpKX07CnlVPWZ1bmN0aW9uKG4pe3JldHVybiBuLnlRLmV4cGVyaW1lbnRzLlp0KCkuTi5RUShqc1opJiZuLk5QKCl8fG4uUygiZW5hYmxlX3BsYXllcl9yZXNwb25zZV9jYWNoZV9mb3JfbGl2ZSIpfTsKRVM9ZnVuY3Rpb24obil7cmV0dXJuISFuLmVtYmVkZGVkUGxheWVyQ29uZmlnPy5lbWJlZGRlZFBsYXllckZsYWdzPy5lbmFibGVNdXNpY1V4fTsKaUY9ZnVuY3Rpb24obil7cmV0dXJuIG4ueVEuSiYmbi5pc1ByaXZhdGV9OwpnLm9UPWZ1bmN0aW9uKG4pe3ZhciBXPW4uRygpLEQ9dUYoVyksYj1XLlFyO2cuQ04oVykmJihiJiYoRC50aGlyZFBhcnR5PXsuLi5ELnRoaXJkUGFydHksZW1iZWRVcmw6Yn0pLGcuRW4oRCxuKSk7KGI9bi50dyk/RC5jbGlja1RyYWNraW5nPXtjbGlja1RyYWNraW5nUGFyYW1zOmJ9OmcuQ04obi5HKCkpJiZnLkFyKCJFVkVOVF9JRCIpJiYoRC5jbGlja1RyYWNraW5nPXtjbGlja1RyYWNraW5nUGFyYW1zOmcuQXIoIkVWRU5UX0lEIil9KTtiPUQuY2xpZW50fHx7fTt2YXIgdj0iRU1CRUQiLGs9SVQobik7az09PSJsZWFuYmFjayI/dj0iV0FUQ0giOlcuUygiZ3ZpX2NoYW5uZWxfY2xpZW50X3NjcmVlbiIpJiZrPT09InByb2ZpbGVwYWdlIj92PSJDSEFOTkVMIjpuLklSP3Y9IkxJVkVfTU9OSVRPUiI6az09PSJkZXRhaWxwYWdlIj92PSJXQVRDSF9GVUxMX1NDUkVFTiI6az09PSJhZHVuaXQiP3Y9IkFEVU5JVCI6az09PSJzcG9uc29yc2hpcHNvZmZlciImJih2PSJVTktOT1dOIik7Yi5jbGllbnRTY3JlZW49CnY7aWYodj1uLmtpZHNBcHBJbmZvKWIua2lkc0FwcEluZm89SlNPTi5wYXJzZSh2KTsoaz1uLkFtKSYmIXYmJihiLmtpZHNBcHBJbmZvPXtjb250ZW50U2V0dGluZ3M6e2FnZVVwTW9kZTpDcmJba119fSk7aWYodj1uLnRHKWIudW5wbHVnZ2VkQXBwSW5mbz17ZW5hYmxlRmlsdGVyTW9kZTohMH07KGs9bi51bnBsdWdnZWRGaWx0ZXJNb2RlVHlwZSkmJiF2JiYoYi51bnBsdWdnZWRBcHBJbmZvPXtmaWx0ZXJNb2RlVHlwZTpCaGhba119KTtpZih2PW4uWFkpYi51bnBsdWdnZWRMb2NhdGlvbkluZm89djtELmNsaWVudD1iO2I9RC5yZXF1ZXN0fHx7fTtuLllaJiYoYi5pc1ByZWZldGNoPSEwKTtpZih2PW4ubWR4RW52aXJvbm1lbnQpYi5tZHhFbnZpcm9ubWVudD12O2lmKHY9bi5tZHhDb250cm9sTW9kZSliLm1keENvbnRyb2xNb2RlPUZHeFt2XTtELnJlcXVlc3Q9YjtiPUQudXNlcnx8e307aWYodj1uLkQpYi5jcmVkZW50aWFsVHJhbnNmZXJUb2tlbnM9W3t0b2tlbjp2LHNjb3BlOiJWSURFTyJ9XTsKaWYodj1uLkhKKWIuZGVsZWdhdGVQdXJjaGFzZXM9e29hdXRoVG9rZW46dn0sYi5raWRzUGFyZW50PXtvYXV0aFRva2VuOnZ9O3Y9Vy5nZXRXZWJQbGF5ZXJDb250ZXh0Q29uZmlnKCk/LnVzZXJDb250ZW50UmF0aW5nOyF2JiZXLlMoImVuYWJsZV9icmF6aWxfYWdlX2dhdGluZ193ZWIiKSYmKHY9Zy5vOSgpLmdldCgiYnJfYWdlX3JhdGluZyIpKTt2JiYoYi5zZXJpYWxpemVkVXNlckNvbnRlbnRSYXRpbmc9dik7RC51c2VyPWI7aWYoVz1uLmNvbnRleHRQYXJhbXMpRC5hY3RpdmVQbGF5ZXJzPVt7cGxheWVyQ29udGV4dFBhcmFtczpXfV07aWYobj1uLmNsaWVudFNjcmVlbk5vbmNlKUQuY2xpZW50U2NyZWVuTm9uY2U9bjtyZXR1cm4gRH07CnVGPWZ1bmN0aW9uKG4pe3ZhciBXPWcudmIoKSxEPVcuY2xpZW50fHx7fTtpZihuLmZvcmNlZEV4cGVyaW1lbnRzKXt2YXIgYj1uLmZvcmNlZEV4cGVyaW1lbnRzLnNwbGl0KCIsIik7bGV0IHY9W107Zm9yKGxldCBrIG9mIGIpdi5wdXNoKE51bWJlcihrKSk7RC5leHBlcmltZW50SWRzPXZ9aWYoYj1uLmhvbWVHcm91cEluZm8pRC5ob21lR3JvdXBJbmZvPUpTT04ucGFyc2UoYik7aWYoYj1uLmdldFBsYXllclR5cGUoKSlELnBsYXllclR5cGU9YjtpZihiPW4uTi5jdGhlbWUpRC50aGVtZT1iO2lmKGI9bi5saXZpbmdSb29tQXBwTW9kZSlELnR2QXBwSW5mbz17Li4uRC50dkFwcEluZm8sbGl2aW5nUm9vbUFwcE1vZGU6Yn07Yj1uLmRldmljZVllYXI7bi5TKCJodG1sNV9wcm9wYWdhdGVfZGV2aWNlX3llYXIiKSYmYiYmKEQudHZBcHBJbmZvPXsuLi5ELnR2QXBwSW5mbyxkZXZpY2VZZWFyOmJ9KTtpZihiPW4ubGl2aW5nUm9vbVBvVG9rZW5JZClELnR2QXBwSW5mbz17Li4uRC50dkFwcEluZm8sCmxpdmluZ1Jvb21Qb1Rva2VuSWQ6Yn07Vy5jbGllbnQ9RDtiPVcudXNlcnx8e307bi5lbmFibGVTYWZldHlNb2RlJiYoYj17Li4uYixlbmFibGVTYWZldHlNb2RlOiEwfSk7IUQudHZBcHBJbmZvPy51c2VQYWdlaWRBc0hlYWRlciYmbi5wYWdlSWQmJihiPXsuLi5iLG9uQmVoYWxmT2ZVc2VyOm4ucGFnZUlkfSk7Vy51c2VyPWI7cmV0dXJuIFd9OwpsRj1mdW5jdGlvbihuLFcsRCl7Vz17dmlkZW9JZDpuLnZpZGVvSWQsY29udGV4dDpnLm9UKG4pLHBsYXliYWNrQ29udGV4dDp7Y29udGVudFBsYXliYWNrQ29udGV4dDpkayhuLFcsRCl9fTtuLmdUJiYoVy5wbGF5YmFja0NvbnRleHQucmVsb2FkUGxheWJhY2tDb250ZXh0PXtyZWxvYWRQbGF5YmFja1BhcmFtczpuLmdUPy5yZWxvYWRQbGF5YmFja1BhcmFtc30pO24uY29udGVudENoZWNrT2smJihXLmNvbnRlbnRDaGVja09rPSEwKTtpZihEPW4uY2xpZW50UGxheWJhY2tOb25jZSlXLmNwbj1EO2lmKEQ9bi5wbGF5ZXJQYXJhbXMpVy5wYXJhbXM9RDtlbHNlIGlmKEQ9bi5nZXRSZXNvbHZlVXJsUmVzcG9uc2UoKSlpZihEPWRsKEQpKVcucGFyYW1zPUQ7aWYoRD1uLnBsYXlsaXN0SWQpVy5wbGF5bGlzdElkPUQ7bi5yYWN5Q2hlY2tPayYmKFcucmFjeUNoZWNrT2s9ITApO0Q9bi5HKCk7dmFyIGI9RC5lbWJlZENvbmZpZztuLk5kP1cuc2VyaWFsaXplZFRoaXJkUGFydHlFbWJlZENvbmZpZz0Kbi5OZDpiJiYoVy5zZXJpYWxpemVkVGhpcmRQYXJ0eUVtYmVkQ29uZmlnPWIpO1cuY2FwdGlvblBhcmFtcz17fTtiPWcubzkoKS5RUSg2NSk7bi5kZXZpY2VDYXB0aW9uc09uIT1udWxsP1cuY2FwdGlvblBhcmFtcy5kZXZpY2VDYXB0aW9uc09uPW4uZGV2aWNlQ2FwdGlvbnNPbjpnLmVNKEQpJiYoVy5jYXB0aW9uUGFyYW1zLmRldmljZUNhcHRpb25zT249YiE9bnVsbD8hYjohMSk7bi5LTCYmKFcuY2FwdGlvblBhcmFtcy5kZXZpY2VDYXB0aW9uc0xhbmdQcmVmPW4uS0wpO2I9bi5TKCJ3ZWJfZW5hYmxlX3BsYXllcl9yZXF1ZXN0X2NhcHRpb25zX2xhc3RfbGFuZ3VhZ2Vfb25seSIpO2lmKG4uRmUubGVuZ3RoKVcuY2FwdGlvblBhcmFtcy52aWV3ZXJTZWxlY3RlZENhcHRpb25MYW5ncz1iP1tuLkZlLmF0KC0xKV06bi5GZTtlbHNlIGlmKGcuZU0oRCkpe3ZhciB2PWcuU0koKTt2Py5sZW5ndGgmJihXLmNhcHRpb25QYXJhbXMudmlld2VyU2VsZWN0ZWRDYXB0aW9uTGFuZ3M9Yj9bdi5hdCgtMSldOgp2KX1iPW4uZmV0Y2hUeXBlPT09Im9uZXNpZSImJm4uUygiaHRtbDVfb25lc2llX2F0dGFjaF9wb190b2tlbiIpO3Y9bi5mZXRjaFR5cGUhPT0ib25lc2llIiYmbi5TKCJodG1sNV9ub25fb25lc2llX2F0dGFjaF9wb190b2tlbiIpO2lmKGJ8fHYpYj1uLkcoKSxiLmpXJiYoVy5zZXJ2aWNlSW50ZWdyaXR5RGltZW5zaW9ucz17fSxXLnNlcnZpY2VJbnRlZ3JpdHlEaW1lbnNpb25zLnBvVG9rZW49Yi5qVyk7RC5TKCJmZXRjaF9hdHRfaW5kZXBlbmRlbnRseSIpJiYoVy5hdHRlc3RhdGlvblJlcXVlc3Q9e29taXRCb3RndWFyZERhdGE6ITB9KTtXLnBsYXliYWNrQ29udGV4dHx8KFcucGxheWJhY2tDb250ZXh0PXt9KTtXLnBsYXliYWNrQ29udGV4dC5kZXZpY2VQbGF5YmFja0NhcGFiaWxpdGllcz16ZShuKTtXLnBsYXliYWNrQ29udGV4dC5kZXZpY2VQbGF5YmFja0NhcGFiaWxpdGllcy5zdXBwb3J0c1ZwOUVuY29kaW5nPT09ITEmJm4uVSgibm9WcDkiLHt9KTtyZXR1cm4gV307CnplPWZ1bmN0aW9uKG4pe3ZhciBXPSFuPy5vTCgpJiZuPy56VygpJiZjMCgpO3JldHVybntzdXBwb3J0c1ZwOUVuY29kaW5nOiEoIW4/LllqKCl8fFcpLHN1cHBvcnRYaHI6TnN9fTsKajc9ZnVuY3Rpb24obil7aWYobj1uPy5lbmRwb2ludClyZXR1cm4gZy53KG4sZy5JUSl8fGcudyhuLFRlKX07CmRsPWZ1bmN0aW9uKG4pe3JldHVybiBqNyhuKT8ucGxheWVyUGFyYW1zfTsKTVNNPWFzeW5jIGZ1bmN0aW9uKG4sVyl7bj17Y29udGV4dDp1RihuLkcoKSksZW5nYWdlbWVudFR5cGU6IkVOR0FHRU1FTlRfVFlQRV9QTEFZQkFDSyIsaWRzOlt7cGxheWJhY2tJZDp7dmlkZW9JZDpuLnZpZGVvSWQsY3BuOm4uY2xpZW50UGxheWJhY2tOb25jZX19XX07dmFyIEQ9TEIod1laKTtyZXR1cm4gYXdhaXQgZy5yXyhXLG4sRCl9OwpDQT1mdW5jdGlvbihuLFcsRCl7dmFyIGI9Zy5kTShXLmV4cGVyaW1lbnRzLCJiZ192bV9yZWluaXRfdGhyZXNob2xkIik7KCFvZnx8KDAsZy5SKSgpLW9mPmIpJiZNU00obixEKS50aGVuKHY9Pnt2JiYodj12LmJvdGd1YXJkRGF0YSkmJmcuekModixXKX0sdj0+e24ucU4oKXx8KHY9QiQodiksbi5VKCJhdHRmIix2LmRldGFpbHMpKX0pfTsKQlQ9ZnVuY3Rpb24obixXLEQpe24uc3RhdGUuTltXXT0oLi4uYik9PkQuYXBwbHkobixiKX07CkYyPWZ1bmN0aW9uKG4sVyxEKXtuLnN0YXRlLk4uaGFzT3duUHJvcGVydHkoVyl8fEJUKG4sVyxEKTtuLnN0YXRlLmpbV109KC4uLmIpPT5ELmFwcGx5KG4sYik7Cm4uc3RhdGUuSy5hZGQoVyl9Owp3bD1mdW5jdGlvbihuLFcsRCl7bi5zdGF0ZS5OLmhhc093blByb3BlcnR5KFcpfHxCVChuLFcsRCk7bi5hcHAuRygpLksmJihuLnN0YXRlLlZbV109KC4uLmIpPT5ELmFwcGx5KG4sYiksbi5zdGF0ZS5LLmFkZChXKSl9OwpNdT1mdW5jdGlvbihuLFcpe24uc3RhdGUuTi5hZGRFbWJlZHNDb252ZXJzaW9uVHJhY2tpbmdQYXJhbXMoLi4uVyl9OwpnLlJUPWZ1bmN0aW9uKG4sVywuLi5EKXtuLnN0YXRlLlcuV0ooVywuLi5EKTtuLnN0YXRlLkouV0ooVywuLi5EKX07CmcuUVU9ZnVuY3Rpb24obixXLC4uLkQpe24uc3RhdGUuVy5XSihXLC4uLkQpO24uc3RhdGUuSi5XSihXLC4uLkQpO24uc3RhdGUuWC5XSihXLC4uLkQpfTsKZy5WVT1mdW5jdGlvbihuLFcsLi4uRCl7bi5zdGF0ZS5XLldKKFcsLi4uRCk7bi5zdGF0ZS5KLldKKFcsLi4uRCk7bi5zdGF0ZS5YLldKKFcsLi4uRCk7bi5zdGF0ZS5ZLldKKFcsLi4uRCl9OwphVD1mdW5jdGlvbihuLFcsRCl7dHlwZW9mIG49PT0ic3RyaW5nIiYmKG49e21lZGlhQ29udGVudFVybDpuLHN0YXJ0U2Vjb25kczpXLHN1Z2dlc3RlZFF1YWxpdHk6RH0pO2E6e2lmKChXPW4ubWVkaWFDb250ZW50VXJsKSYmKFc9L1wvKFt2ZV18ZW1iZWQpXC8oW14jP10rKS8uZXhlYyhXKSkmJldbMl0pe1c9V1syXTticmVhayBhfVc9bnVsbH1uLnZpZGVvSWQ9VztyZXR1cm4gY1Qobil9OwpjVD1mdW5jdGlvbihuLFcsRCl7aWYodHlwZW9mIG49PT0ic3RyaW5nIilyZXR1cm57dmlkZW9JZDpuLHN0YXJ0U2Vjb25kczpXLHN1Z2dlc3RlZFF1YWxpdHk6RH07Vz17fTtmb3IobGV0IGIgb2YgUmtaKW5bYl0mJihXW2JdPW5bYl0pOyhuPW4uZW1iZWRDb25maWd8fG4uZW1iZWRfY29uZmlnKSYmKFcuZW1iZWRfY29uZmlnPW4yKG4pKTtyZXR1cm4gV307ClFzUz1mdW5jdGlvbihuLFcsRCxiKXtpZihnLmZ0KG4pJiYhQXJyYXkuaXNBcnJheShuKSl7Vz0icGxheWxpc3QgbGlzdCBsaXN0VHlwZSBpbmRleCBzdGFydFNlY29uZHMgc3VnZ2VzdGVkUXVhbGl0eSIuc3BsaXQoIiAiKTtEPXt9O2ZvcihiPTA7YjxXLmxlbmd0aDtiKyspe2xldCB2PVdbYl07blt2XSYmKERbdl09blt2XSl9cmV0dXJuIER9Vz17aW5kZXg6VyxzdGFydFNlY29uZHM6RCxzdWdnZXN0ZWRRdWFsaXR5OmJ9O3R5cGVvZiBuPT09InN0cmluZyImJm4ubGVuZ3RoPT09MTY/Vy5saXN0PSJQTCIrbjpXLnBsYXlsaXN0PW47cmV0dXJuIFd9OwpuMj1mdW5jdGlvbihuKXtpZih0eXBlb2Ygbj09PSJzdHJpbmciKXJldHVybiBuO2lmKGcuZnQobikpdHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShuKX1jYXRjaChXKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGVtYmVkQ29uZmlnIEpTT04iLFcpfX07Clc3PWZ1bmN0aW9uKG4sVz0xKXt2YXIgRD17fTtXPW4uYXBwLlZFKHtwbGF5ZXJUeXBlOld9KS5nZXRWaWRlb0RhdGEoKTtpZihpRihXKSlyZXR1cm57fTtELnZpZGVvX2lkPVcudmlkZW9JZDtELmF1dGhvcj1XLmF1dGhvcjtELnRpdGxlPVcudGl0bGU7RC5pc1BsYXlhYmxlPVpQKFcpO0QuZXJyb3JDb2RlPVcuZXJyb3JDb2RlO2lmKFcuSiYmVy5KLnZpZGVvKXtELnZpZGVvX3F1YWxpdHk9Vy5KLnZpZGVvLnF1YWxpdHk7Vz1XLkoudmlkZW87bGV0IGI9W107Vy5KKCkmJmIucHVzaCgiaGZyIik7Vy5pc0hkcigpJiZiLnB1c2goImhkciIpO1cucHJpbWFyaWVzPT09ImJ0MjAyMCImJmIucHVzaCgid2NnIik7RC52aWRlb19xdWFsaXR5X2ZlYXR1cmVzPWJ9aWYobj1uLmdldFBsYXlsaXN0SWQoKSlELmxpc3Q9bjtyZXR1cm4gRH07ClZTaD1mdW5jdGlvbihuKXtGMihuLCJjdWVWaWRlb0J5SWQiLG4uY0opO0YyKG4sImxvYWRWaWRlb0J5SWQiLG4uWSQpO0YyKG4sImN1ZVZpZGVvQnlVcmwiLG4uYmQpO0YyKG4sImxvYWRWaWRlb0J5VXJsIixuLlFyKTtGMihuLCJwbGF5VmlkZW8iLG4ueXcpO0YyKG4sInBhdXNlVmlkZW8iLG4ucGF1c2VWaWRlbyk7RjIobiwic3RvcFZpZGVvIixuLnptKTtGMihuLCJjbGVhclZpZGVvIixuLmNsZWFyVmlkZW8pO0YyKG4sImdldFZpZGVvQnl0ZXNMb2FkZWQiLG4uWVopO0YyKG4sImdldFZpZGVvQnl0ZXNUb3RhbCIsbi5SYSk7RjIobiwiZ2V0VmlkZW9Mb2FkZWRGcmFjdGlvbiIsbi5YKTtGMihuLCJnZXRWaWRlb1N0YXJ0Qnl0ZXMiLG4uTEIpO0YyKG4sImN1ZVBsYXlsaXN0IixuLmN1ZVBsYXlsaXN0KTtGMihuLCJsb2FkUGxheWxpc3QiLG4uTmQpO0YyKG4sIm5leHRWaWRlbyIsbi5VNSk7RjIobiwicHJldmlvdXNWaWRlbyIsbi5RJCk7RjIobiwicGxheVZpZGVvQXQiLG4uTWQpOwpGMihuLCJzZXRTaHVmZmxlIixuLnNldFNodWZmbGUpO0YyKG4sInNldExvb3AiLG4uc2V0TG9vcCk7RjIobiwiZ2V0UGxheWxpc3QiLG4ualcpO0YyKG4sImdldFBsYXlsaXN0SW5kZXgiLG4uZ2V0UGxheWxpc3RJbmRleCk7RjIobiwiZ2V0UGxheWxpc3RJZCIsbi5nZXRQbGF5bGlzdElkKTtGMihuLCJsb2FkTW9kdWxlIixuLmopO0YyKG4sInVubG9hZE1vZHVsZSIsbi5WKTtGMihuLCJzZXRPcHRpb24iLG4uSik7RjIobiwiZ2V0T3B0aW9uIixuLnZKKTtGMihuLCJnZXRPcHRpb25zIixuLk4pO0YyKG4sIm11dGUiLG4uczUpO0YyKG4sInVuTXV0ZSIsbi5taCk7RjIobiwiaXNNdXRlZCIsbi5pc011dGVkKTtGMihuLCJzZXRWb2x1bWUiLG4uYlYpO0YyKG4sImdldFZvbHVtZSIsbi5nZXRWb2x1bWUpO0YyKG4sInNlZWtUbyIsbi5TVik7RjIobiwiZ2V0UGxheWVyTW9kZSIsbi5nZXRQbGF5ZXJNb2RlKTtGMihuLCJnZXRQbGF5ZXJTdGF0ZSIsbi55RSk7RjIobiwiZ2V0QXZhaWxhYmxlUGxheWJhY2tSYXRlcyIsCm4uZ2V0QXZhaWxhYmxlUGxheWJhY2tSYXRlcyk7RjIobiwiZ2V0UGxheWJhY2tRdWFsaXR5IiwoKT0+bi5nZXRQbGF5YmFja1F1YWxpdHkoMSkpOwpGMihuLCJzZXRQbGF5YmFja1F1YWxpdHkiLG4uZVYpO0YyKG4sImdldEF2YWlsYWJsZVF1YWxpdHlMZXZlbHMiLG4uVlEpO0YyKG4sImdldEN1cnJlbnRUaW1lIixuLkhKKTtGMihuLCJnZXREdXJhdGlvbiIsbi5udSk7RjIobiwiYWRkRXZlbnRMaXN0ZW5lciIsbi5PKTtGMihuLCJyZW1vdmVFdmVudExpc3RlbmVyIixuLmdUKTtGMihuLCJnZXREZWJ1Z1RleHQiLG4uRHQpO0YyKG4sImdldFZpZGVvRGF0YSIsKCk9Plc3KG4pKTsKRjIobiwiYWRkQ3VlUmFuZ2UiLG4uWSk7RjIobiwicmVtb3ZlQ3VlUmFuZ2UiLG4ucmVtb3ZlQ3VlUmFuZ2UpO0YyKG4sInNldFNpemUiLG4uc2V0U2l6ZSk7RjIobiwiZ2V0QXBpSW50ZXJmYWNlIixuLmdldEFwaUludGVyZmFjZSk7RjIobiwiZGVzdHJveSIsbi5kZXN0cm95KTtGMihuLCJtdXRlZEF1dG9wbGF5IixuLm11dGVkQXV0b3BsYXkpO3ZhciBXPW4uYXBwLkcoKTtGMihuLCJnZXRWaWRlb0VtYmVkQ29kZSIsbi5nZXRWaWRlb0VtYmVkQ29kZSk7RjIobiwiZ2V0VmlkZW9VcmwiLG4ud2EpO0YyKG4sImdldE1lZGlhUmVmZXJlbmNlVGltZSIsbi5HQyk7RjIobiwiZ2V0U2l6ZSIsbi5nZXRTaXplKTtGMihuLCJzZXRGYXV4RnVsbHNjcmVlbiIsbi51NSk7Vy5TKCJlbWJlZHNfZW5hYmxlX21vdmVfc2V0X2NlbnRlcl9jcm9wX3RvX3B1YmxpYyIpJiZGMihuLCJzZXRDZW50ZXJDcm9wIixuLnNldENlbnRlckNyb3ApO1cuWHx8RjIobiwibG9nSW1hQWRFdmVudCIsbi5sb2dJbWFBZEV2ZW50KTsKRjIobiwicHJlbG9hZFZpZGVvQnlJZCIsbi5SdCk7RjIobiwid2FrZVVwQ29udHJvbHMiLG4ud2FrZVVwQ29udHJvbHMpfTsKZy5iNT1mdW5jdGlvbihuKXtyZXR1cm4obj1EJChuLmFwcC5KNSgpKSk/bi5CNygpOm51bGx9OwprRj1mdW5jdGlvbihuKXt2YXIgVz1RTShuLmFwcC5HKCkpLEQ9bi5hcHAuZ2V0VmlkZW9EYXRhKCk/Lk1kO249djcobi5hcHApO3JldHVybiBMeShXKSYmIUR8fG4/ITE6ITB9OwpoZj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIHR5cGVvZiBuPT09Im51bWJlciI/e3BsYXllclR5cGU6bix2bzpXLGNwbjpEfTpufHx7fX07CmMxQz1mdW5jdGlvbihuKXt2YXIgVz1uLnJhd19wbGF5ZXJfcmVzcG9uc2U7aWYoIVcpe3ZhciBEPW4ucGxheWVyX3Jlc3BvbnNlO0QmJihXPUpTT04ucGFyc2UoRCkpfWRlbGV0ZSBuLnBsYXllcl9yZXNwb25zZTtkZWxldGUgbi5yYXdfcGxheWVyX3Jlc3BvbnNlO1cmJihuLnJhd19wbGF5ZXJfcmVzcG9uc2U9e3N0cmVhbWluZ0RhdGE6Vy5zdHJlYW1pbmdEYXRhLHBsYXllckNvbmZpZzpXLnBsYXllckNvbmZpZ30sVy5wbGF5YmFja1RyYWNraW5nPy5xb2VVcmwmJihuLnJhd19wbGF5ZXJfcmVzcG9uc2U9ey4uLm4ucmF3X3BsYXllcl9yZXNwb25zZSxwbGF5YmFja1RyYWNraW5nOntxb2VVcmw6Vy5wbGF5YmFja1RyYWNraW5nLnFvZVVybH19KSxXLmNhcHRpb25zJiYobi5yYXdfcGxheWVyX3Jlc3BvbnNlPXsuLi5uLnJhd19wbGF5ZXJfcmVzcG9uc2UsY2FwdGlvbnM6Vy5jYXB0aW9uc30pLFcudmlkZW9EZXRhaWxzJiYoVy52aWRlb0RldGFpbHMudmlkZW9JZHx8Vy52aWRlb0RldGFpbHMubGVuZ3RoU2Vjb25kcykmJgooRD17fSxXLnZpZGVvRGV0YWlscy52aWRlb0lkJiYoRC52aWRlb0lkPVcudmlkZW9EZXRhaWxzLnZpZGVvSWQpLFcudmlkZW9EZXRhaWxzLmxlbmd0aFNlY29uZHMmJihELmxlbmd0aFNlY29uZHM9Vy52aWRlb0RldGFpbHMubGVuZ3RoU2Vjb25kcyksbi5yYXdfcGxheWVyX3Jlc3BvbnNlPXsuLi5uLnJhd19wbGF5ZXJfcmVzcG9uc2UsdmlkZW9EZXRhaWxzOkR9KSl9Owp4Rj1mdW5jdGlvbihuLFcpe3ZhciBEPXt9O2lmKG4uYXBwLkcoKS5PKXtmb3IobGV0IGIgb2YgYWF4KVcuaGFzT3duUHJvcGVydHkoYikmJihEW2JdPVdbYl0pO2lmKG49RC5xb2VfY2F0KVc9IiIsdHlwZW9mIG49PT0ic3RyaW5nIiYmbi5sZW5ndGg+MCYmKFc9bi5zcGxpdCgiLCIpLmZpbHRlcihiPT5udDIuaW5jbHVkZXMoYikpLmpvaW4oIiwiKSksRC5xb2VfY2F0PVc7CmMxQyhEKX1lbHNlIGZvcihsZXQgYiBvZiBXYXcpVy5oYXNPd25Qcm9wZXJ0eShiKSYmKERbYl09V1tiXSk7cmV0dXJuIER9OwpMMj1mdW5jdGlvbihuKXtyZXR1cm4gbj9Ed1Vbbl18fDU6NX07CmVCPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIG9mIE9iamVjdC5rZXlzKFcpKXtsZXQgYj1XW0RdO249bi5yZXBsYWNlKG5ldyBSZWdFeHAoIlxcJCIrRCwiZ2kiKSwoKT0+Yil9cmV0dXJuIG59OwpiX0M9ZnVuY3Rpb24obil7QlQobiwiZ2V0SW50ZXJuYWxBcGlJbnRlcmZhY2UiLG4uZ2V0SW50ZXJuYWxBcGlJbnRlcmZhY2UpO0JUKG4sImdldFRydXN0ZWRBcGkiLG4uZ2V0VHJ1c3RlZEFwaSk7QlQobiwiYWRkRXZlbnRMaXN0ZW5lciIsbi5EKTtCVChuLCJyZW1vdmVFdmVudExpc3RlbmVyIixuLlRRKTtCVChuLCJjdWVWaWRlb0J5UGxheWVyVmFycyIsbi50dyk7QlQobiwibG9hZFZpZGVvQnlQbGF5ZXJWYXJzIixuLkU1KTtCVChuLCJwcmVsb2FkVmlkZW9CeVBsYXllclZhcnMiLG4uWmgpO0JUKG4sImdldEFkU3RhdGUiLG4uZ2V0QWRTdGF0ZSk7QlQobiwic2VuZEFiYW5kb25tZW50UGluZyIsbi5zZW5kQWJhbmRvbm1lbnRQaW5nKTtCVChuLCJzZXRMb29wUmFuZ2UiLG4uc2V0TG9vcFJhbmdlKTtCVChuLCJnZXRMb29wUmFuZ2UiLG4uZ2V0TG9vcFJhbmdlKTtCVChuLCJzZXRBdXRvbmF2U3RhdGUiLG4uc2V0QXV0b25hdlN0YXRlKTtCVChuLCJzZWVrVG8iLG4uYk4pO0JUKG4sCiJzZWVrQnkiLG4uc1YpO0JUKG4sInNlZWtUb0xpdmVIZWFkIixuLnNlZWtUb0xpdmVIZWFkKTtCVChuLCJyZXF1ZXN0U2Vla1RvV2FsbFRpbWVTZWNvbmRzIixuLnJlcXVlc3RTZWVrVG9XYWxsVGltZVNlY29uZHMpO0JUKG4sInNlZWtUb1N0cmVhbVRpbWUiLG4uc2Vla1RvU3RyZWFtVGltZSk7QlQobiwic3RhcnRTZWVrQ3NpQWN0aW9uIixuLnN0YXJ0U2Vla0NzaUFjdGlvbik7QlQobiwiZ2V0U3RyZWFtVGltZU9mZnNldCIsbi5nZXRTdHJlYW1UaW1lT2Zmc2V0KTtCVChuLCJnZXRWaWRlb0RhdGEiLG4uZkIpO0JUKG4sImdldEFwcFN0YXRlIixuLmdldEFwcFN0YXRlKTtCVChuLCJ1cGRhdGVMYXN0QWN0aXZlVGltZSIsbi51cGRhdGVMYXN0QWN0aXZlVGltZSk7QlQobiwic2V0VXNlckVuZ2FnZW1lbnQiLG4uc2V0VXNlckVuZ2FnZW1lbnQpO0JUKG4sInVwZGF0ZVN1YnRpdGxlc1VzZXJTZXR0aW5ncyIsbi51cGRhdGVTdWJ0aXRsZXNVc2VyU2V0dGluZ3MpO0JUKG4sImdldFByZXNlbnRpbmdQbGF5ZXJUeXBlIiwKbi5XKTtCVChuLCJjYW5QbGF5VHlwZSIsbi5jYW5QbGF5VHlwZSk7QlQobiwidXBkYXRlUGxheWxpc3QiLG4udXBkYXRlUGxheWxpc3QpO0JUKG4sInVwZGF0ZVZpZGVvRGF0YSIsbi51cGRhdGVWaWRlb0RhdGEpO0JUKG4sInVwZGF0ZUVudmlyb25tZW50RGF0YSIsbi51cGRhdGVFbnZpcm9ubWVudERhdGEpO0JUKG4sInNlbmRWaWRlb1N0YXRzRW5nYWdlRXZlbnQiLG4uWXIpO0JUKG4sInNldFNhZmV0eU1vZGUiLG4uc2V0U2FmZXR5TW9kZSk7QlQobiwiaXNBdExpdmVIZWFkIixXPT5uLmlzQXRMaXZlSGVhZCh2b2lkIDAsVykpOwpCVChuLCJnZXRWaWRlb0FzcGVjdFJhdGlvIixuLmdldFZpZGVvQXNwZWN0UmF0aW8pO0JUKG4sImdldFByZWZlcnJlZFF1YWxpdHkiLG4uZ2V0UHJlZmVycmVkUXVhbGl0eSk7QlQobiwiZ2V0UGxheWJhY2tRdWFsaXR5TGFiZWwiLG4uZ2V0UGxheWJhY2tRdWFsaXR5TGFiZWwpO0JUKG4sInNldFBsYXliYWNrUXVhbGl0eVJhbmdlIixuLldpKTtCVChuLCJvbkFkVXhDbGlja2VkIixuLm9uQWRVeENsaWNrZWQpO0JUKG4sImdldEZlZWRiYWNrUHJvZHVjdERhdGEiLG4uZ2V0RmVlZGJhY2tQcm9kdWN0RGF0YSk7QlQobiwiZ2V0U3Rvcnlib2FyZEZyYW1lIixuLmdldFN0b3J5Ym9hcmRGcmFtZSk7QlQobiwiZ2V0U3Rvcnlib2FyZEZyYW1lSW5kZXgiLG4uZ2V0U3Rvcnlib2FyZEZyYW1lSW5kZXgpO0JUKG4sImdldFN0b3J5Ym9hcmRMZXZlbCIsbi5nZXRTdG9yeWJvYXJkTGV2ZWwpO0JUKG4sImdldE51bWJlck9mU3Rvcnlib2FyZExldmVscyIsbi5nZXROdW1iZXJPZlN0b3J5Ym9hcmRMZXZlbHMpOwpCVChuLCJnZXRDYXB0aW9uV2luZG93Q29udGFpbmVySWQiLG4uZ2V0Q2FwdGlvbldpbmRvd0NvbnRhaW5lcklkKTtCVChuLCJnZXRBdmFpbGFibGVRdWFsaXR5TGFiZWxzIixuLmdldEF2YWlsYWJsZVF1YWxpdHlMYWJlbHMpO0JUKG4sImFkZEN1ZVJhbmdlIixuLmFkZEN1ZVJhbmdlKTtCVChuLCJhZGRVdGNDdWVSYW5nZSIsbi5hZGRVdGNDdWVSYW5nZSk7QlQobiwic2hvd0FpcnBsYXlQaWNrZXIiLG4uc2hvd0FpcnBsYXlQaWNrZXIpO0JUKG4sImRpc3BhdGNoUmVkdXhBY3Rpb24iLG4uZGlzcGF0Y2hSZWR1eEFjdGlvbik7QlQobiwiZ2V0UGxheWVyUmVzcG9uc2UiLG4uUFgpO0JUKG4sImdldFdhdGNoTmV4dFJlc3BvbnNlIixuLnZYKTtCVChuLCJnZXRIZWFydGJlYXRSZXNwb25zZSIsbi5GRik7QlQobiwiZ2V0Q3VycmVudFRpbWUiLG4uZSQpO0JUKG4sImdldER1cmF0aW9uIixuLm1aKTtCVChuLCJnZXRQbGF5ZXJTdGF0ZSIsbi5nZXRQbGF5ZXJTdGF0ZSk7QlQobiwiZ2V0UGxheWVyU3RhdGVPYmplY3QiLApuLkN1KTtCVChuLCJnZXRWaWRlb0xvYWRlZEZyYWN0aW9uIixuLmdldFZpZGVvTG9hZGVkRnJhY3Rpb24pO0JUKG4sImdldFByb2dyZXNzU3RhdGUiLG4uZ2V0UHJvZ3Jlc3NTdGF0ZSk7QlQobiwiZ2V0Vm9sdW1lIixuLmdldFZvbHVtZSk7QlQobiwic2V0Vm9sdW1lIixuLmtGKTtCVChuLCJpc011dGVkIixuLmlzTXV0ZWQpO0JUKG4sIm11dGUiLG4uZ0cpO0JUKG4sInVuTXV0ZSIsbi5sbSk7QlQobiwibG9hZE1vZHVsZSIsbi5sb2FkTW9kdWxlKTtCVChuLCJ1bmxvYWRNb2R1bGUiLG4udW5sb2FkTW9kdWxlKTtCVChuLCJnZXRPcHRpb24iLG4uanUpO0JUKG4sImdldE9wdGlvbnMiLG4uZ2V0T3B0aW9ucyk7QlQobiwic2V0T3B0aW9uIixuLnNldE9wdGlvbik7QlQobiwibG9hZFZpZGVvQnlJZCIsbi5ydyk7QlQobiwibG9hZFZpZGVvQnlVcmwiLG4uSzApO0JUKG4sInBsYXlWaWRlbyIsbi5VRyk7QlQobiwic3RvcFZpZGVvIixuLkspO0JUKG4sImxvYWRQbGF5bGlzdCIsbi5sb2FkUGxheWxpc3QpOwpCVChuLCJuZXh0VmlkZW8iLG4ubmV4dFZpZGVvKTtCVChuLCJwcmV2aW91c1ZpZGVvIixuLnByZXZpb3VzVmlkZW8pO0JUKG4sInBsYXlWaWRlb0F0IixuLnBsYXlWaWRlb0F0KTtCVChuLCJnZXREZWJ1Z1RleHQiLG4uZ2V0RGVidWdUZXh0KTtCVChuLCJnZXRXZWJQbGF5ZXJDb250ZXh0Q29uZmlnIixuLmdldFdlYlBsYXllckNvbnRleHRDb25maWcpO0JUKG4sImdldFZpZGVvQ29udGVudFJlY3QiLG4uZ2V0VmlkZW9Db250ZW50UmVjdCk7QlQobiwidG9nZ2xlU3VidGl0bGVzT24iLG4udG9nZ2xlU3VidGl0bGVzT24pO0JUKG4sImlzU3VidGl0bGVzT24iLG4uaXNTdWJ0aXRsZXNPbik7QlQobiwiZ2V0QXVkaW9UcmFjayIsbi5UQyk7QlQobiwic2V0QXVkaW9UcmFjayIsbi5zeik7QlQobiwiZ2V0QXZhaWxhYmxlQXVkaW9UcmFja3MiLG4uUyQpO0JUKG4sImlzT3JjaGVzdHJhdGlvbkxlYWRlciIsbi5pc09yY2hlc3RyYXRpb25MZWFkZXIpO0JUKG4sIm5vdGlmeVNob3J0c0FkU3dpcGVFdmVudCIsCm4ubm90aWZ5U2hvcnRzQWRTd2lwZUV2ZW50KTtCVChuLCJwcmVmZXRjaEtleVBsYXkiLG4ucHJlZmV0Y2hLZXlQbGF5KTtCVChuLCJwcmVmZXRjaEp1bXBBaGVhZCIsbi5wcmVmZXRjaEp1bXBBaGVhZCk7QlQobiwicHJvZHVjdHNJblZpZGVvVmlzaWJpbGl0eVVwZGF0ZWQiLG4ucHJvZHVjdHNJblZpZGVvVmlzaWJpbGl0eVVwZGF0ZWQpO0JUKG4sInNldEJsYWNrb3V0IixuLnNldEJsYWNrb3V0KTtCVChuLCJzZXRJbmxpbmVQcmV2aWV3IixuLnNldElubGluZVByZXZpZXcpO0JUKG4sInNldFNxdWVlemViYWNrIixuLnNldFNxdWVlemViYWNrKTtCVChuLCJyZXBvcnRQbGF5YmFja0lzc3VlIixuLnJlcG9ydFBsYXliYWNrSXNzdWUpO0JUKG4sInNldEF1dG9uYXYiLG4uc2V0QXV0b25hdik7QlQobiwiaXNOb3RTZXJ2YWJsZSIsbi5pc05vdFNlcnZhYmxlKTtCVChuLCJjaGFubmVsU3Vic2NyaWJlZCIsbi5jaGFubmVsU3Vic2NyaWJlZCk7QlQobiwiY2hhbm5lbFVuc3Vic2NyaWJlZCIsCm4uY2hhbm5lbFVuc3Vic2NyaWJlZCk7QlQobiwidG9nZ2xlUGljdHVyZUluUGljdHVyZSIsbi50b2dnbGVQaWN0dXJlSW5QaWN0dXJlKTtCVChuLCJzdXBwb3J0c0dhcGxlc3NBdWRpbyIsbi5zdXBwb3J0c0dhcGxlc3NBdWRpbyk7QlQobiwic3VwcG9ydHNHYXBsZXNzU2hvcnRzIixuLnN1cHBvcnRzR2FwbGVzc1Nob3J0cyk7QlQobiwiaXNHYXBsZXNzVHJhbnNpdGlvblJlYWR5IixuLmlzR2FwbGVzc1RyYW5zaXRpb25SZWFkeSk7QlQobiwic2V0U2hvcnRzQXV0b0FkdmFuY2VkRW5hYmxlZCIsbi5zZXRTaG9ydHNBdXRvQWR2YW5jZWRFbmFibGVkKTtCVChuLCJlbnF1ZXVlVmlkZW9CeVBsYXllclZhcnMiLFc9PnZvaWQgbi5lbnF1ZXVlVmlkZW9CeVBsYXllclZhcnMoVykpOwpCVChuLCJjbGVhclF1ZXVlIixuLmNsZWFyUXVldWUpO0JUKG4sImdldE1heFBsYXliYWNrUXVhbGl0eSIsbi5nZXRNYXhQbGF5YmFja1F1YWxpdHkpO0JUKG4sImdldFVzZXJQbGF5YmFja1F1YWxpdHlQcmVmZXJlbmNlIixuLmdldFVzZXJQbGF5YmFja1F1YWxpdHlQcmVmZXJlbmNlKTtCVChuLCJnZXRTdWJ0aXRsZXNVc2VyU2V0dGluZ3MiLG4uZ2V0U3VidGl0bGVzVXNlclNldHRpbmdzKTtCVChuLCJyZXNldFN1YnRpdGxlc1VzZXJTZXR0aW5ncyIsbi5yZXNldFN1YnRpdGxlc1VzZXJTZXR0aW5ncyk7QlQobiwic2V0TWluaW1pemVkIixuLnNldE1pbmltaXplZCk7QlQobiwic2V0T3ZlcmxheVZpc2liaWxpdHkiLG4uc2V0T3ZlcmxheVZpc2liaWxpdHkpO0JUKG4sImNvbmZpcm1ZcGNSZW50YWwiLG4uY29uZmlybVlwY1JlbnRhbCk7QlQobiwicXVldWVOZXh0VmlkZW8iLG4ucXVldWVOZXh0VmlkZW8pO0JUKG4sImhhbmRsZUV4dGVybmFsQ2FsbCIsbi5oYW5kbGVFeHRlcm5hbENhbGwpOwpCVChuLCJsb2dBcGlDYWxsIixuLmxvZ0FwaUNhbGwpO0JUKG4sImlzRXh0ZXJuYWxNZXRob2RBdmFpbGFibGUiLG4uaXNFeHRlcm5hbE1ldGhvZEF2YWlsYWJsZSk7QlQobiwic2V0U2NyZWVuTGF5ZXIiLG4uc2V0U2NyZWVuTGF5ZXIpO0JUKG4sImdldEN1cnJlbnRQbGF5bGlzdFNlcXVlbmNlIixuLmdldEN1cnJlbnRQbGF5bGlzdFNlcXVlbmNlKTtCVChuLCJnZXRQbGF5bGlzdFNlcXVlbmNlRm9yVGltZSIsbi5nZXRQbGF5bGlzdFNlcXVlbmNlRm9yVGltZSk7QlQobiwic2hvdWxkU2VuZFZpc2liaWxpdHlTdGF0ZSIsbi5zaG91bGRTZW5kVmlzaWJpbGl0eVN0YXRlKTtCVChuLCJzeW5jVm9sdW1lIixuLnN5bmNWb2x1bWUpO0JUKG4sImhpZ2hsaWdodFNldHRpbmdzTWVudUl0ZW0iLG4uaGlnaGxpZ2h0U2V0dGluZ3NNZW51SXRlbSk7QlQobiwib3BlblNldHRpbmdzTWVudUl0ZW0iLG4ub3BlblNldHRpbmdzTWVudUl0ZW0pO0JUKG4sImdldEVtYmVkZGVkUGxheWVyUmVzcG9uc2UiLApuLmdldEVtYmVkZGVkUGxheWVyUmVzcG9uc2UpO0JUKG4sImdldFZpc2liaWxpdHlTdGF0ZSIsbi5nZXRWaXNpYmlsaXR5U3RhdGUpO0JUKG4sImlzTXV0ZWRCeU11dGVkQXV0b3BsYXkiLG4uaXNNdXRlZEJ5TXV0ZWRBdXRvcGxheSk7QlQobiwiaXNNdXRlZEJ5RW1iZWRzTXV0ZWRBdXRvcGxheSIsbi5pc011dGVkQnlFbWJlZHNNdXRlZEF1dG9wbGF5KTtCVChuLCJzZXRHbG9iYWxDcm9wIixuLnNldEdsb2JhbENyb3ApO0JUKG4sInNldEludGVybmFsU2l6ZSIsbi5zZXRJbnRlcm5hbFNpemUpO0JUKG4sInNldEZhdXhGdWxsc2NyZWVuIixuLnNldEZhdXhGdWxsc2NyZWVuKTtCVChuLCJzZXRBcHBGdWxsc2NyZWVuIixuLnNldEFwcEZ1bGxzY3JlZW4pO0JUKG4sImlzS2V5Ym9hcmREaXNhYmxlZCIsbi5pc0tleWJvYXJkRGlzYWJsZWQpO0JUKG4sImdldEN1cnJlbnRUaW1lRm9yVXgiLG4uZ2V0Q3VycmVudFRpbWVGb3JVeCk7QlQobiwiZ2V0RHVyYXRpb25Gb3JVeCIsbi5nZXREdXJhdGlvbkZvclV4KX07Cmd2PWZ1bmN0aW9uKG4pe24uZ2V0UHJlc2VudGluZ1BsYXllclR5cGUoKT09PTM/bi5XSigibWR4YXV0b3BsYXljYW5jZWwiKTpnLlJUKG4sIm9uQXV0b25hdkNhbmNlbGxlZCIsITApfTsKWHo9ZnVuY3Rpb24obil7bj1uLko1KCkuTmkuZ2V0KCJlbmRzY3JlZW4iKTtyZXR1cm4hIW4mJlh6KG4pfTsKcXA9ZnVuY3Rpb24obil7bj1uLko1KCk7dmFyIFc9bi5OaS5nZXQoImVuZHNjcmVlbiIpO3JldHVybiBXJiZXLlhjKCk/ITA6bi5JVigpfTsKdGY9ZnVuY3Rpb24obil7dmFyIFc9R3Uobi5KNSgpKTtyZXR1cm4gbi5hcHAuWlYmJiFuLmlzRnVsbHNjcmVlbigpfHxuLmdldFByZXNlbnRpbmdQbGF5ZXJUeXBlKCk9PT0zJiZXJiZXLmhhc05leHQoKSYmVy5oYXNQcmV2aW91cygpfHwhIW4uZ2V0UGxheWxpc3QoKX07CmcuZno9ZnVuY3Rpb24obil7cmV0dXJuKG49Zy4kRihuLko1KCkpKT9uLkhwKCk6e319OwpnLnJ2PWZ1bmN0aW9uKG4sVyxEKXtuPW4ubGooKS5lbGVtZW50O3ZhciBiPURlKG4uY2hpbGRyZW4sdj0+e3Y9TnVtYmVyKHYuZ2V0QXR0cmlidXRlKCJkYXRhLWxheWVyIikpO3JldHVybiBELXZ8fDF9KTsKYjwwJiYoYj0tKGIrMSkpO2cuanAobixXLGIpO1cuc2V0QXR0cmlidXRlKCJkYXRhLWxheWVyIixTdHJpbmcoRCkpfTsKdnRDPWZ1bmN0aW9uKG4sVyl7bj1zRihuLmFwcC5Wci5YKTtmb3IobGV0IEQgb2Ygbil7bj1ELmdldEF2YWlsYWJsZUF1ZGlvVHJhY2tzKCk7bGV0IGI9bnVsbDtmb3IobGV0IHYgb2YgbilpZih2LmdldExhbmd1YWdlSW5mbygpLmdldElkKCk9PT1XKXtiPXY7YnJlYWt9YiYmRC5MeShiLCEwKX19OwpnLnAyPWZ1bmN0aW9uKCl7TnB8fChOcD1uZXcga0t4KTtyZXR1cm4gTnB9OwpnLllGPWZ1bmN0aW9uKG4sVyl7Vz9uLlpKLkF1dGhvcml6YXRpb249YEJlYXJlciAke1d9YDpkZWxldGUgbi5aSi5BdXRob3JpemF0aW9ufTsKaHh3PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9KC4uLmIpPT57bi5yZW1vdmVFdmVudExpc3RlbmVyKCJwbGF5aW5nIixEKTtXKC4uLmIpfTsKbi5hZGRFdmVudExpc3RlbmVyKCJwbGF5aW5nIixEKX07CmcuSDc9ZnVuY3Rpb24obil7dmFyIFc9TWF0aC5hYnMoTWF0aC5mbG9vcihuKSksRD1NYXRoLmZsb29yKFcvODY0MDApLGI9TWF0aC5mbG9vcihXJTg2NDAwLzM2MDApLHY9TWF0aC5mbG9vcihXJTM2MDAvNjApO1c9TWF0aC5mbG9vcihXJTYwKTt2YXIgaz0iIjtEPjAmJihrKz1gJHtEfTpgLGI8MTAmJihrKz0iMCIpKTtpZihEPjB8fGI+MClrKz1gJHtifTpgLHY8MTAmJihrKz0iMCIpO2srPWAke3Z9OmA7VzwxMCYmKGsrPSIwIik7RD1rK1c7cmV0dXJuIG4+PTA/RDpgLSR7RH1gfTsKZjI9ZnVuY3Rpb24obil7cmV0dXJuKCEoImJ1dHRvbiJpbiBuKXx8dHlwZW9mIG4uYnV0dG9uIT09Im51bWJlciJ8fG4uYnV0dG9uPT09MCkmJiEoInNoaWZ0S2V5ImluIG4mJm4uc2hpZnRLZXkpJiYhKCJhbHRLZXkiaW4gbiYmbi5hbHRLZXkpJiYhKCJtZXRhS2V5ImluIG4mJm4ubWV0YUtleSkmJiEoImN0cmxLZXkiaW4gbiYmbi5jdHJsS2V5KX07CkpmPWZ1bmN0aW9uKG4sVyxELGIpe2lmKGIuc3Vic3RyaW5nKDAsMik9PT0ie3siKW4uWVpbYl09W1csRF07ZWxzZSByZXR1cm4gYn07Ckl5PWZ1bmN0aW9uKG4sVyxELGIpe2lmKEQ9PT0iY2hpbGQiKXtnLlRGKFcpO2xldCBrO2I9PT12b2lkIDA/az12b2lkIDA6az0hQXJyYXkuaXNBcnJheShiKXx8YiYmdHlwZW9mIGIuWj09PSJzdHJpbmciP1tiXTpiO0Q9eHcyKG4sayk7Zm9yKHZhciB2IG9mIEQpVy5hcHBlbmRDaGlsZCh2KX1lbHNlIEQ9PT0ic3R5bGUiP2cuaDEoVywiY3NzVGV4dCIsYj9iOiIiKTpiPT09bnVsbHx8Yj09PXZvaWQgMD9XLnJlbW92ZUF0dHJpYnV0ZShEKToodj1iLnRvU3RyaW5nKCksRD09PSJocmVmIiYmKHY9Z3ooZy50Rih2LGcuRzQpfHxnLlY1KSksVy5zZXRBdHRyaWJ1dGUoRCx2KSl9Owp4dzI9ZnVuY3Rpb24obixXKXt2YXIgRD1bXTtpZighVylyZXR1cm4gRDtmb3IobGV0IGIgb2YgVyl7aWYoYj09bnVsbCljb250aW51ZTtXPWIubm9kZVR5cGU7Vz09PTF8fFc9PT0zP0QucHVzaChiKTpiJiZ0eXBlb2YgYi5aPT09InN0cmluZyI/RC5wdXNoKG4uY3JlYXRlRWxlbWVudChiKSk6Yi5lbGVtZW50P0QucHVzaChiLmVsZW1lbnQpOnR5cGVvZiBiPT09InN0cmluZyImJmIuaW5kZXhPZigiXG4iKSE9PS0xP2Iuc3BsaXQoIlxuIikuZm9yRWFjaCgodixrKT0+e2s+MCYmRC5wdXNoKGcuekYoIkJSIikpO0QucHVzaChnLmxrKHYpKX0pOkQucHVzaChnLmxrKGIpKX1yZXR1cm4gRH07ClNCPWZ1bmN0aW9uKG4sVyl7bj1uLmVsZW1lbnQuZWxlbWVudDtXP24uc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKTpuLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKX07CkFmPWZ1bmN0aW9uKG4pe3JldHVybiBuLkomJm4uZmFkZS5zdGF0ZSE9PTR9OwptUD1mdW5jdGlvbihuKXtuLnNvdXJjZUVsZW1lbnQmJihkb2N1bWVudC5hY3RpdmVFbGVtZW50JiZnLkJ4KG4uZWxlbWVudCxkb2N1bWVudC5hY3RpdmVFbGVtZW50KSYmbi5zb3VyY2VFbGVtZW50LmZvY3VzKCksbi5zb3VyY2VFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsImZhbHNlIiksbi5zb3VyY2VFbGVtZW50PXZvaWQgMCk7bi5OLkooKTtuLlc9dm9pZCAwfTsKZy5LMj1mdW5jdGlvbigpe3JldHVybntaOiJzdmciLHhhOntoZWlnaHQ6IjEwMCUiLHZlcnNpb246IjEuMSIsdmlld0JveDoiMCAwIDMyIDMyIix3aWR0aDoiMTAwJSJ9LFhGOlt7WjoicGF0aCIseGE6e2Q6Ik0gMTkuNDEsMjAuMDkgMTQuODMsMTUuNSAxOS40MSwxMC45MSAxOCw5LjUgbCAtNiw2IDYsNiB6IixmaWxsOiIjZmZmIn19XX19OwpnLk9GPWZ1bmN0aW9uKCl7cmV0dXJue1o6InN2ZyIseGE6e2hlaWdodDoiMTAwJSIsdmVyc2lvbjoiMS4xIix2aWV3Qm94OiIwIDAgMzIgMzIiLHdpZHRoOiIxMDAlIn0sWEY6W3taOiJwYXRoIix4YTp7ZDoibSAxMi41OSwyMC4zNCA0LjU4LC00LjU5IC00LjU4LC00LjU5IDEuNDEsLTEuNDEgNiw2IC02LDYgeiIsZmlsbDoiI2ZmZiJ9fV19fTsKZy5QNz1mdW5jdGlvbigpe3JldHVybntaOiJzdmciLHhhOntoZWlnaHQ6IjEwMCUiLHZpZXdCb3g6IjAgMCAyNCAyNCIsd2lkdGg6IjEwMCUifSxYRjpbe1o6InBhdGgiLHhhOntkOiJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiIsZmlsbDoiI2ZmZiJ9fV19fTsKWiQ9ZnVuY3Rpb24oKXtyZXR1cm57Wjoic3ZnIix4YTp7aGVpZ2h0OiIxMDAlIix2ZXJzaW9uOiIxLjEiLHZpZXdCb3g6IjAgMCAxMTAgMjYiLHdpZHRoOiIxMDAlIn0sWEY6W3taOiJwYXRoIixLeTohMCxKdzoieXRwLXN2Zy1maWxsIix4YTp7ZDoiTSAxNi42OCwuOTkgQyAxMy41NSwxLjAzIDcuMDIsMS4xNiA0Ljk5LDEuNjggYyAtMS40OSwuNCAtMi41OSwxLjYgLTIuOTksMyAtMC42OSwyLjcgLTAuNjgsOC4zMSAtMC42OCw4LjMxIDAsMCAtMC4wMSw1LjYxIC42OCw4LjMxIC4zOSwxLjUgMS41OSwyLjYgMi45OSwzIDIuNjksLjcgMTMuNDAsLjY4IDEzLjQwLC42OCAwLDAgMTAuNzAsLjAxIDEzLjQwLC0wLjY4IDEuNSwtMC40IDIuNTksLTEuNiAyLjk5LC0zIC42OSwtMi43IC42OCwtOC4zMSAuNjgsLTguMzEgMCwwIC4xMSwtNS42MSAtMC42OCwtOC4zMSAtMC40LC0xLjUgLTEuNTksLTIuNiAtMi45OSwtMyBDIDI5LjExLC45OCAxOC40MCwuOTkgMTguNDAsLjk5IGMgMCwwIC0wLjY3LC0wLjAxIC0xLjcxLDAgeiBtIDcyLjIxLC45MCAwLDIxLjI4IDIuNzgsMCAuMzEsLTEuMzcgLjA5LDAgYyAuMywuNSAuNzEsLjg4IDEuMjEsMS4xOCAuNSwuMyAxLjA4LC40MCAxLjY4LC40MCAxLjEsMCAxLjk5LC0wLjQ5IDIuNDksLTEuNTkgLjUsLTEuMSAuODEsLTIuNzAgLjgxLC00LjkwIGwgMCwtMi40MCBjIDAsLTEuNiAtMC4xMSwtMi45MCAtMC4zMSwtMy45MCAtMC4yLC0wLjg5IC0wLjUsLTEuNTkgLTEsLTIuMDkgLTAuNSwtMC40IC0xLjEwLC0wLjU5IC0xLjkwLC0wLjU5IC0wLjU5LDAgLTEuMTgsLjE5IC0xLjY4LC40OSAtMC40OSwuMyAtMS4wMSwuODAgLTEuMjEsMS40MCBsIDAsLTcuOTAgLTMuMjgsMCB6IG0gLTQ5Ljk5LC43OCAzLjkwLDEzLjkwIC4xOCw2LjcxIDMuMzEsMCAwLC02LjcxIDMuODcsLTEzLjkwIC0zLjM3LDAgLTEuNDAsNi4zMSBjIC0wLjQsMS44OSAtMC43MSwzLjE5IC0wLjgxLDMuOTkgbCAtMC4wOSwwIGMgLTAuMiwtMS4xIC0wLjUxLC0yLjQgLTAuODEsLTMuOTkgbCAtMS4zNywtNi4zMSAtMy40MCwwIHogbSAyOS41OSwwIDAsMi43MSAzLjQwLDAgMCwxNy45MCAzLjI4LDAgMCwtMTcuOTAgMy40MCwwIGMgMCwwIC4wMCwtMi43MSAtMC4wOSwtMi43MSBsIC05Ljk5LDAgeiBtIC01My40OSw1LjEyIDguOTAsNS4xOCAtOC45MCw1LjA5IDAsLTEwLjI4IHogbSA4OS40MCwuMDkgYyAtMS43LDAgLTIuODksLjU5IC0zLjU5LDEuNTkgLTAuNjksLjk5IC0wLjk5LDIuNjAgLTAuOTksNC45MCBsIDAsMi41OSBjIDAsMi4yIC4zMCwzLjkwIC45OSw0LjkwIC43LDEuMSAxLjgsMS41OSAzLjUsMS41OSAxLjQsMCAyLjM4LC0wLjMgMy4xOCwtMSAuNywtMC43IDEuMDksLTEuNjkgMS4wOSwtMy4wOSBsIDAsLTAuNSAtMi45MCwtMC4yMSBjIDAsMSAtMC4wOCwxLjYgLTAuMjgsMiAtMC4xLC40IC0wLjUsLjYyIC0xLC42MiAtMC4zLDAgLTAuNjEsLTAuMTEgLTAuODEsLTAuMzEgLTAuMiwtMC4zIC0wLjMwLC0wLjU5IC0wLjQwLC0xLjA5IC0wLjEsLTAuNSAtMC4wOSwtMS4yMSAtMC4wOSwtMi4yMSBsIDAsLTAuNzggNS43MSwtMC4wOSAwLC0yLjYyIGMgMCwtMS42IC0wLjEwLC0yLjc4IC0wLjQwLC0zLjY4IC0wLjIsLTAuODkgLTAuNzEsLTEuNTkgLTEuMzEsLTEuOTkgLTAuNywtMC40IC0xLjQ4LC0wLjU5IC0yLjY4LC0wLjU5IHogbSAtNTAuNDksLjA5IGMgLTEuMDksMCAtMi4wMSwuMTggLTIuNzEsLjY4IC0wLjcsLjQgLTEuMiwxLjEyIC0xLjQ5LDIuMTIgLTAuMywxIC0wLjUsMi4yNyAtMC41LDMuODcgbCAwLDIuMjEgYyAwLDEuNSAuMTAsMi43OCAuNDAsMy43OCAuMiwuOSAuNzAsMS42MiAxLjQwLDIuMTIgLjY5LC41IDEuNzEsLjY4IDIuODEsLjc4IDEuMTksMCAyLjA4LC0wLjI4IDIuNzgsLTAuNjggLjY5LC0wLjQgMS4wOSwtMS4wOSAxLjQ5LC0yLjA5IC4zOSwtMSAuNDksLTIuMzAgLjQ5LC0zLjkwIGwgMCwtMi4yMSBjIDAsLTEuNiAtMC4yLC0yLjg3IC0wLjQ5LC0zLjg3IC0wLjMsLTAuODkgLTAuOCwtMS42MiAtMS40OSwtMi4xMiAtMC43LC0wLjUgLTEuNTgsLTAuNjggLTIuNjgsLTAuNjggeiBtIDEyLjE4LC4wOSAwLDExLjkwIGMgLTAuMSwuMyAtMC4yOSwuNDggLTAuNTksLjY4IC0wLjIsLjIgLTAuNTEsLjMxIC0wLjgxLC4zMSAtMC4zLDAgLTAuNTgsLTAuMTAgLTAuNjgsLTAuNDAgLTAuMSwtMC4zIC0wLjE4LC0wLjcwIC0wLjE4LC0xLjQwIGwgMCwtMTAuOTkgLTMuNDAsMCAwLDExLjIxIGMgMCwxLjQgLjE4LDIuMzkgLjY4LDMuMDkgLjQ5LC43IDEuMjEsMSAyLjIxLDEgMS40LDAgMi40OCwtMC42OSAzLjE4LC0yLjA5IGwgLjA5LDAgLjMxLDEuNzggMi41OSwwIDAsLTE0Ljk5IGMgMCwwIC0zLjQwLC4wMCAtMy40MCwtMC4wOSB6IG0gMTcuMzEsMCAwLDExLjkwIGMgLTAuMSwuMyAtMC4yOSwuNDggLTAuNTksLjY4IC0wLjIsLjIgLTAuNTEsLjMxIC0wLjgxLC4zMSAtMC4zLDAgLTAuNTgsLTAuMTAgLTAuNjgsLTAuNDAgLTAuMSwtMC4zIC0wLjIxLC0wLjcwIC0wLjIxLC0xLjQwIGwgMCwtMTAuOTkgLTMuNDAsMCAwLDExLjIxIGMgMCwxLjQgLjIxLDIuMzkgLjcxLDMuMDkgLjUsLjcgMS4xOCwxIDIuMTgsMSAxLjM5LDAgMi41MSwtMC42OSAzLjIxLC0yLjA5IGwgLjA5LDAgLjI4LDEuNzggMi42MiwwIDAsLTE0Ljk5IGMgMCwwIC0zLjQwLC4wMCAtMy40MCwtMC4wOSB6IG0gMjAuOTAsMi4wOSBjIC40LDAgLjU4LC4xMSAuNzgsLjMxIC4yLC4zIC4zMCwuNTkgLjQwLDEuMDkgLjEsLjUgLjA5LDEuMjEgLjA5LDIuMjEgbCAwLDEuMDkgLTIuNSwwIDAsLTEuMDkgYyAwLC0xIC0wLjAwLC0xLjcxIC4wOSwtMi4yMSAwLC0wLjQgLjExLC0wLjggLjMxLC0xIC4yLC0wLjMgLjUxLC0wLjQwIC44MSwtMC40MCB6IG0gLTUwLjQ5LC4xMiBjIC41LDAgLjgsLjE4IDEsLjY4IC4xOSwuNSAuMjgsMS4zMCAuMjgsMi40MCBsIDAsNC42OCBjIDAsMS4xIC0wLjA4LDEuOTAgLTAuMjgsMi40MCAtMC4yLC41IC0wLjUsLjY4IC0xLC42OCAtMC41LDAgLTAuNzksLTAuMTggLTAuOTksLTAuNjggLTAuMiwtMC41IC0wLjMxLC0xLjMwIC0wLjMxLC0yLjQwIGwgMCwtNC42OCBjIDAsLTEuMSAuMTEsLTEuOTAgLjMxLC0yLjQwIC4yLC0wLjUgLjQ5LC0wLjY4IC45OSwtMC42OCB6IG0gMzkuNjgsLjA5IGMgLjMsMCAuNjEsLjEwIC44MSwuNDAgLjIsLjMgLjI3LC42NyAuMzcsMS4zNyAuMSwuNiAuMTIsMS41MSAuMTIsMi43MSBsIC4wOSwxLjkwIGMgMCwxLjEgLjAwLDEuOTkgLTAuMDksMi41OSAtMC4xLC42IC0wLjE5LDEuMDggLTAuNDksMS4yOCAtMC4yLC4zIC0wLjUwLC40MCAtMC45MCwuNDAgLTAuMywwIC0wLjUxLC0wLjA4IC0wLjgxLC0wLjE4IC0wLjIsLTAuMSAtMC4zOSwtMC4yOSAtMC41OSwtMC41OSBsIDAsLTguNSBjIC4xLC0wLjQgLjI5LC0wLjcgLjU5LC0xIC4zLC0wLjMgLjYwLC0wLjQwIC45MCwtMC40MCB6In19XX19OwpVRj1mdW5jdGlvbigpe3JldHVybntaOiJzdmciLHhhOntmaWxsOiJub25lIixoZWlnaHQ6IjEwMCUiLHZpZXdCb3g6IjAgMCAxNDMgNTEiLHdpZHRoOiIxMDAlIn0sWEY6W3taOiJwYXRoIix4YTp7ZDoiTTU4LjM3IDQxLjM5SDYyLjc5VjI3LjIzQzYyLjc5IDIzLjAzIDYyLjY5IDE4LjY5IDYyLjQzIDEzLjU5SDYyLjkzTDYzLjY5IDE2Ljg5TDY4LjY3IDQxLjM5SDczLjE3TDc4LjA3IDE2Ljg5TDc4Ljg5IDEzLjU5SDc5LjM3Qzc5LjE1IDE4LjQ1IDc5LjAzIDIyLjg5IDc5LjAzIDI3LjIzVjQxLjM5SDgzLjQ1VjguNzlINzUuOTVMNzMuNDEgMjAuODFDNzIuMzUgMjUuODUgNzEuNTEgMzIuMDEgNzEuMDEgMzUuMTlINzAuNzNDNzAuMzMgMzEuOTUgNjkuNDkgMjUuODEgNjguNDEgMjAuODVMNjUuODEgOC43OUg1OC4zN1Y0MS4zOVoiLGZpbGw6IndoaXRlIn19LHtaOiJwYXRoIix4YTp7ZDoiTTkxLjQ1IDQxLjczQzkzLjkxIDQxLjczIDk1LjgzIDQwLjU5IDk3LjE3IDM4LjEzSDk3LjM1TDk3LjY5IDQxLjM5SDEwMS40M1YxNy43M0g5Ni40N1YzNi42MUM5NS45MSAzNy42NyA5NC44MSAzOC4yOSA5My43MyAzOC4yOUM5Mi4zMyAzOC4yOSA5MS44OSAzNy4xNyA5MS44OSAzNS4xM1YxNy43M0g4Ni45M1YzNS40M0M4Ni45MyAzOS40OSA4OC4xOSA0MS43MyA5MS40NSA0MS43M1oiLApmaWxsOiJ3aGl0ZSJ9fSx7WjoicGF0aCIseGE6e2Q6Ik0xMTAuNzkgNDEuODlDMTE1LjE1IDQxLjg5IDExNy43NSAzOS44MyAxMTcuNzUgMzUuNjVDMTE3Ljc1IDMxLjc5IDExNS45MyAzMC4zOSAxMTEuODUgMjcuNDdDMTA5LjY3IDI1LjkxIDEwOC4zOSAyNS4wOSAxMDguMzkgMjIuOTVDMTA4LjM5IDIxLjQ3IDEwOS4yNyAyMC42MSAxMTAuODkgMjAuNjFDMTEyLjY5IDIwLjYxIDExMy4zMyAyMS44MSAxMTMuMzMgMjUuMjlMMTE3LjQ1IDI1LjA3QzExNy43NyAxOS41NyAxMTUuNzEgMTcuMjMgMTEwLjk3IDE3LjIzQzEwNi41NyAxNy4yMyAxMDQuMTcgMTkuMjcgMTA0LjE3IDIzLjQ1QzEwNC4xNyAyNy4yNSAxMDUuOTcgMjguODMgMTA4LjkzIDMxLjAzQzExMS44OSAzMy4yMyAxMTMuNTUgMzQuNTMgMTEzLjU1IDM2LjIzQzExMy41NSAzNy43NSAxMTIuNTEgMzguNjEgMTExLjAxIDM4LjYxQzEwOS4xMyAzOC42MSAxMDguMTEgMzYuOTcgMTA4LjI5IDM0LjQxTDEwNC4yMSAzNC40OUMxMDMuNTEgMzkuMjUgMTA1Ljg5IDQxLjg5IDExMC43OSA0MS44OVoiLApmaWxsOiJ3aGl0ZSJ9fSx7WjoicGF0aCIseGE6e2Q6Ik0xMjIuNSAxNC41OUMxMjQuMjIgMTQuNTkgMTI1LjA0IDEzLjk5IDEyNS4wNCAxMS41OUMxMjUuMDQgOS4zMyAxMjQuMTYgOC42NSAxMjIuNSA4LjY1QzEyMC44NCA4LjY1IDExOS45NCA5LjI3IDExOS45NCAxMS41OUMxMTkuOTQgMTMuOTkgMTIwLjgyIDE0LjU5IDEyMi41IDE0LjU5Wk0xMjAuMiA0MS4zOUgxMjVWMTcuNzNIMTIwLjJWNDEuMzlaIixmaWxsOiJ3aGl0ZSJ9fSx7WjoicGF0aCIseGE6e2Q6Ik0xMzQuOTUgNDEuNzlDMTM3LjMxIDQxLjc5IDEzOC42MyA0MS40OSAxMzkuNzEgNDAuNDdDMTQxLjMxIDM5LjAxIDE0MS45NyAzNi42MyAxNDEuODUgMzMuMTFMMTM3LjQxIDMyLjg3QzEzNy40MSAzNi44NyAxMzYuODEgMzguNDUgMTM1LjAzIDM4LjQ1QzEzMy4xMyAzOC40NSAxMzIuNzcgMzYuNDUgMTMyLjc3IDMxLjk3VjI3LjIxQzEzMi43NyAyMi40MSAxMzMuMjMgMjAuNTEgMTM1LjA3IDIwLjUxQzEzNi42NyAyMC41MSAxMzcuMjkgMjIuMDEgMTM3LjI5IDI2LjQ3TDE0MS42NSAyNi4xNUMxNDEuOTcgMjIuOTMgMTQxLjU5IDIwLjI5IDE0MC4wOSAxOC44M0MxMzkuMDEgMTcuNzcgMTM3LjM3IDE3LjI5IDEzNS4xNSAxNy4yOUMxMjkuNjUgMTcuMjkgMTI3Ljc1IDIwLjczIDEyNy43NSAyOC4wM1YzMS4xN0MxMjcuNzUgMzguNDcgMTI5LjIzIDQxLjc5IDEzNC45NSA0MS43OVoiLApmaWxsOiJ3aGl0ZSJ9fSx7WjoicGF0aCIseGE6eyJjbGlwLXJ1bGUiOiJldmVub2RkIixkOiJNMjQuOTkgNDlDMjkuNzQgNDkuMDAgMzQuMzggNDcuNTkgMzguMzIgNDQuOTVDNDIuMjcgNDIuMzIgNDUuMzUgMzguNTcgNDcuMTcgMzQuMThDNDguOTggMjkuODAgNDkuNDYgMjQuOTcgNDguNTMgMjAuMzJDNDcuNjEgMTUuNjYgNDUuMzIgMTEuMzggNDEuOTcgOC4wM0MzOC42MSA0LjY3IDM0LjMzIDIuMzggMjkuNjggMS40NkMyNS4wMiAuNTMgMjAuMjAgMS4wMSAxNS44MSAyLjgyQzExLjQzIDQuNjQgNy42OCA3LjcxIDUuMDQgMTEuNjZDMi40MCAxNS42MSAxIDIwLjI1IDEgMjVDMC45OSAyOC4xNSAxLjYxIDMxLjI3IDIuODIgMzQuMThDNC4wMyAzNy4wOSA1Ljc5IDM5Ljc0IDguMDIgNDEuOTdDMTAuMjUgNDQuMTkgMTIuODkgNDUuOTYgMTUuODEgNDcuMTdDMTguNzIgNDguMzcgMjEuODQgNDkgMjQuOTkgNDlaTTI0Ljk5IDEyLjM2QzI3LjQ5IDEyLjM2IDI5Ljk0IDEzLjEwIDMyLjAyIDE0LjQ4QzM0LjEwIDE1Ljg3IDM1LjcyIDE3Ljg0IDM2LjY4IDIwLjE1QzM3LjY0IDIyLjQ2IDM3Ljg5IDI1LjAxIDM3LjQxIDI3LjQ2QzM2LjkyIDI5LjkxIDM1LjcyIDMyLjE3IDMzLjk1IDMzLjk0QzMyLjE4IDM1LjcwIDI5LjkzIDM2LjkxIDI3LjQ4IDM3LjQwQzI1LjAyIDM3Ljg5IDIyLjQ4IDM3LjY0IDIwLjE3IDM2LjY4QzE3Ljg2IDM1LjcyIDE1Ljg4IDM0LjEwIDE0LjUwIDMyLjAyQzEzLjExIDI5Ljk0IDEyLjM3IDI3LjUwIDEyLjM3IDI1QzEyLjM3IDIxLjY1IDEzLjcwIDE4LjQ0IDE2LjA3IDE2LjA3QzE4LjQzIDEzLjcwIDIxLjY0IDEyLjM3IDI0Ljk5IDEyLjM2Wk0yNC45OSAxMC40M0MyMi4xMSAxMC40MyAxOS4yOSAxMS4yOCAxNi44OSAxMi44OEMxNC41MCAxNC40OCAxMi42MyAxNi43NiAxMS41MyAxOS40MkMxMC40MiAyMi4wOSAxMC4xMyAyNS4wMiAxMC43MCAyNy44NUMxMS4yNiAzMC42NyAxMi42NSAzMy4yNyAxNC42OSAzNS4zMUMxNi43MyAzNy4zNSAxOS4zMiAzOC43MyAyMi4xNSAzOS4zMEMyNC45OCAzOS44NiAyNy45MSAzOS41NyAzMC41NyAzOC40NkMzMy4yMyAzNy4zNiAzNS41MSAzNS40OSAzNy4xMSAzMy4wOUMzOC43MSAzMC43MCAzOS41NyAyNy44OCAzOS41NiAyNUMzOS41NiAyMy4wOCAzOS4xOSAyMS4xOSAzOC40NiAxOS40MkMzNy43MiAxNy42NSAzNi42NSAxNi4wNCAzNS4zMCAxNC42OUMzMy45NCAxMy4zNCAzMi4zNCAxMi4yNyAzMC41NyAxMS41M0MyOC44MCAxMC44MCAyNi45MCAxMC40MyAyNC45OSAxMC40M1pNMzIuNjMgMjQuOTlMMjAuMzYgMzIuMDlWMTcuOTFMMzIuNjMgMjQuOTlaIiwKZmlsbDoid2hpdGUiLCJmaWxsLXJ1bGUiOiJldmVub2RkIn19XX19Owp5RT1mdW5jdGlvbihuPXt9LFc9W10pe1cucHVzaCgieXRwLW1lbnVpdGVtIik7InJvbGUiaW4gbnx8KG4ucm9sZT0ibWVudWl0ZW0iKTsidGFiaW5kZXgiaW4gbnx8KG4udGFiaW5kZXg9IjAiKTtyZXR1cm57WjoiZGl2IixLQjpXLHhhOm4sWEY6W3taOiJkaXYiLEp3OiJ5dHAtbWVudWl0ZW0taWNvbiIsT3E6Int7aWNvbn19In0se1o6ImRpdiIsSnc6Inl0cC1tZW51aXRlbS1sYWJlbCIsT3E6Int7bGFiZWx9fSJ9LHtaOiJkaXYiLEp3OiJ5dHAtbWVudWl0ZW0tY29udGVudCIsT3E6Int7Y29udGVudH19In1dfX07CkVGPWZ1bmN0aW9uKG4pe3JldHVybiBuP2cuRHAobik6IiJ9OwppNT1mdW5jdGlvbihuKXtyZXR1cm4gbj09PS0weDgwMDAwMDAwMDAwMDA/IkJFRk9SRV9NRURJQV9TVEFSVCI6bj09PTA/Ik1FRElBX1NUQVJUIjpuPT09MHg3ZmZmZmZmZmZmZmZmPyJNRURJQV9FTkQiOm49PT0weDgwMDAwMDAwMDAwMDA/IkFGVEVSX01FRElBX0VORCI6bi50b1N0cmluZygpfTsKZy51NT1mdW5jdGlvbihuLFcpe3JldHVybiBuLnN0YXJ0LVcuc3RhcnR8fG4ucHJpb3JpdHktVy5wcmlvcml0eXx8bi5KLVcuSn07Cmcub3k9ZnVuY3Rpb24obil7cmV0dXJuYGNybl8ke259YH07CmcuZHY9ZnVuY3Rpb24obil7cmV0dXJuYGNyeF8ke259YH07Cnp1PWZ1bmN0aW9uKG4pe3JldHVybntbMV06bi5zdGFydCxbMl06bi5lbmQsWzNdOm4uaWQsWzRdOm4ucHJpb3JpdHksWzVdOm4ubmFtZXNwYWNlLFs2XTpuLnZpc2libGUsWzddOm4uc3R5bGUsWzhdOm4udG9vbHRpcCxbOV06bi5jb2xvcixbMTBdOm4uaWNvbnMsWzExXTpuLmFzc29jaWF0ZWRDbGlwSWQsWzEyXTpuLm1hcmtlclBvc2l0aW9uTXN9fTsKVHU9ZnVuY3Rpb24obixXLEQsYil7VyBpbiBuLk58fChEPW5ldyBnLmw1KEQsYix7aWQ6Vyxwcmlvcml0eToyLG5hbWVzcGFjZToiYXBwYWQifSksbi5hcGkuZ2goW0RdLDEpLG4uTltXXT1EKX07CmpCPWZ1bmN0aW9uKG4sVyl7TGF4KG4sVykudGhlbihEPT57Zy5nbyhXLHZvaWQgMCx2b2lkIDAsRCl9KX07CkMyPWZ1bmN0aW9uKG4sVyl7Vy5mb3JFYWNoKEQ9PntqQihuLEQpfSl9OwpCNz1mdW5jdGlvbihuLFcsRCl7aWYoIShEIGluIFcpKXJldHVybiExO1c9V1tEXTtBcnJheS5pc0FycmF5KFcpfHwoVz1bV10pO2ZvcihsZXQgYiBvZiBXKVc9e0NQTjpuLmFwaS5nZXRWaWRlb0RhdGEoKS5jbGllbnRQbGF5YmFja05vbmNlfSxXPWcuR0soYixXKSxnLmdvKFcsdm9pZCAwLG9PKHpFKFcsZXh4LG51bGwpLFcsITEsIkFjdGl2ZSBWaWV3IDNyZCBQYXJ0eSBJbnRlZ3JhdGlvbiBVUkwiKXx8b08oekUoVyxndGosbnVsbCksVywhMSwiR29vZ2xlL1lvdVR1YmUgQnJhbmQgTGlmdCBVUkwiKXx8b08oekUoVyxYSzIsbnVsbCksVywhMSwiTmllbHNlbiBPQ1IgVVJMIikpO3JldHVybiEwfTsKTGF4PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGcuazYobi5hcGkuRygpKSYmZy5CVihXKSYmZy5qSChXKT9nLkhFKG4uYXBpLkcoKSxuLmFwaS5nZXRWaWRlb0RhdGEoKS5WKCkpLnRoZW4oRD0+e3ZhciBiO0QmJihiPXtBdXRob3JpemF0aW9uOmBCZWFyZXIgJHtEfWB9KTtyZXR1cm4gYn0sdm9pZCAwKTpnLkgwKCl9OwpGej1mdW5jdGlvbihuLFcpe24uY2hlY2tlZD1XO24uZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsU3RyaW5nKG4uY2hlY2tlZCkpfTsKd3Y9ZnVuY3Rpb24obixXKXtuLmVuYWJsZWQ9VztuLmVuYWJsZWQ/bi5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1kaXNhYmxlZCIpOm4uZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLCJ0cnVlIil9OwpNcD1mdW5jdGlvbihuLFcsRD0hMSxiKXt2YXIgdj1uLmN1cnJlbnRUYXJnZXQ7aWYoIUQmJmYyKG4pKXJldHVybiBuLnByZXZlbnREZWZhdWx0KCksITA7Vy5wYXVzZVZpZGVvKCk7bj12LmdldEF0dHJpYnV0ZSgiaHJlZiIpO1E1KG4sYik7cmV0dXJuITF9OwpSeT1mdW5jdGlvbihuLFcsRCl7aWYodkUoVy5HKCkpJiZXLmdldFByZXNlbnRpbmdQbGF5ZXJUeXBlKCkhPT0yKWYyKEQpJiYoVy5pc0Z1bGxzY3JlZW4oKSYmIVcuRygpLmV4dGVybmFsRnVsbHNjcmVlbiYmVy50b2dnbGVGdWxsc2NyZWVuKCksRC5wcmV2ZW50RGVmYXVsdCgpKTtlbHNle2xldCBiPWYyKEQpO2ImJlcucGF1c2VWaWRlbygpO1E1KG4pO2ImJihnLmNhKG4pLEQucHJldmVudERlZmF1bHQoKSl9fTsKUUU9ZnVuY3Rpb24obil7cmV0dXJuIG4uYXVkaW8/LmF1ZGlvUXVhbGl0eT09PSJBVURJT19RVUFMSVRZX0hJR0giJiYhbi5WKCl9OwpWRT1mdW5jdGlvbihuKXtyZXR1cm4gbi5hdWRpbz8uVz09PSEwfTsKYzc9ZnVuY3Rpb24obil7cmV0dXJuIG4uVigpfTsKYXk9ZnVuY3Rpb24obil7cmV0dXJuIG4uYXVkaW8/Lk49PT0hMH07Cm52PWZ1bmN0aW9uKG4sVyl7aWYobi5sZW5ndGg8MilyZXR1cm4hMTt2YXIgRD1XKG5bMF0pO3JldHVybiBuLnNvbWUoYj0+VyhiKSE9PUQpfTsKYlk9ZnVuY3Rpb24obixXKXtuPXFJdyhuLFcubGFuZ3VhZ2VJZCk7bj1XdShuLCEhVy5nTyk7cmV0dXJuIG49RGIobiwhIVcuajkpfTsKV3U9ZnVuY3Rpb24obixXKXt2YXIgRD1nLkVNKG4sYj0+YXkoYik9PT1XKTsKcmV0dXJuIEQubGVuZ3RoPjA/RDpufTsKRGI9ZnVuY3Rpb24obixXKXt2YXIgRD1nLkVNKG4sYj0+VkUoYik9PT1XKTsKcmV0dXJuIEQubGVuZ3RoPjA/RDpufTsKR0t0PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFcuaWQhPT0idW5kIj9nLkVNKG4sRD0+e3ZhciBiPVcuZ2V0TGFuZ3VhZ2VJbmZvKCk/Lm5hbWU7cmV0dXJuIEQua1o/Lm5hbWU9PT1ifSk6bn07CnFJdz1mdW5jdGlvbihuLFcpe2lmKFcmJlchPT0idW5kIilpZih0eXBlb2YgVz09PSJzdHJpbmciKXt2YXIgRD1nLmxfKG4sdj0+di5pZD09PVcpOwppZihEPy5rWil2YXIgYj1ELmtaLmlkfWVsc2UgYj1XLmtaPy5pZDtpZihiJiYoRD1nLkVNKG4sdj0+di5rWj8uaWQ9PT1iKSxELmxlbmd0aD4wKSlyZXR1cm4gRDsKRD1nLkVNKG4sdj0+ISF2LmtaPy5pc0RlZmF1bHQpOwpyZXR1cm4gRC5sZW5ndGg+MD9EOm59Owp0QUM9ZnVuY3Rpb24obil7dmFyIFc9Zy5FTShuLEQ9PmM3KEQpPT09ITApOwpyZXR1cm4gVy5sZW5ndGg+MD9XOm59Owokd2o9ZnVuY3Rpb24obil7dmFyIFc9Zy5FTShuLEQ9PlFFKEQpPT09ITApOwpyZXR1cm4gVy5sZW5ndGg+MD9XOm59OwpyYVU9ZnVuY3Rpb24obixXKXtuPW5ldyBTZXQobi5tYXAoVykpO24uZGVsZXRlKHZvaWQgMCk7cmV0dXJuIG4uc2l6ZT49Mn07CnNGTT1mdW5jdGlvbihuLFcpe3JldHVybiBXLnByaW9yaXR5LW4ucHJpb3JpdHl9Owp2dT1mdW5jdGlvbihuLFcsRD0hMSl7aWYoRCluLml0ZW1zLnB1c2goVyksbi5tZW51SXRlbXMuZWxlbWVudC5hcHBlbmRDaGlsZChXLmVsZW1lbnQpO2Vsc2V7RD1nLlc0KG4uaXRlbXMsVyxzRk0pO2lmKEQ+PTApcmV0dXJuO0Q9fkQ7Zy5jTShuLml0ZW1zLEQsMCxXKTtnLmpwKG4ubWVudUl0ZW1zLmVsZW1lbnQsVy5lbGVtZW50LEQpfVcuc3Vic2NyaWJlKCJzaXplLWNoYW5nZSIsbi5xQSxuKTtuLm1lbnVJdGVtcy5XSigic2l6ZS1jaGFuZ2UiKX07CmtzPWZ1bmN0aW9uKG4sVyl7Vy51bnN1YnNjcmliZSgic2l6ZS1jaGFuZ2UiLG4ucUEsbik7bi5xTigpfHwoZy5GSShuLml0ZW1zLFcpLG4ubWVudUl0ZW1zLmVsZW1lbnQucmVtb3ZlQ2hpbGQoVy5lbGVtZW50KSxuLm1lbnVJdGVtcy5XSigic2l6ZS1jaGFuZ2UiKSl9OwpnLmhCPWZ1bmN0aW9uKG4sVyl7aWYobi5XKXt2YXIgRD1uLm9wdGlvbnNbbi5XXTtELmVsZW1lbnQuZ2V0QXR0cmlidXRlKCJhcmlhLWNoZWNrZWQiKTtELmVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWNoZWNrZWQiLCJmYWxzZSIpO24uVz1udWxsfWlmKEQ9bi5vcHRpb25zW1ddKUQuZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsInRydWUiKSxuLlgobi5qKFcpKSxuLlc9V307Ck5YaD1mdW5jdGlvbihuLFcsRCxiKXtEPW5ldyB4cyh7WjoiZGl2IixLQjpbInl0cC1tZW51aXRlbSIsIiJdLHhhOnt0YWJpbmRleDoiMCIscm9sZToibWVudWl0ZW1yYWRpbyIsImFyaWEtY2hlY2tlZCI6Yj8idHJ1ZSI6ImZhbHNlIn0sWEY6W3taOiJkaXYiLEtCOlsieXRwLW1lbnVpdGVtLWxhYmVsIl0sT3E6Int7bGFiZWx9fSJ9XX0sRCxuLmooVykpO0QuU18oImNsaWNrIiwoKT0+e24uRChXKX0pOwpyZXR1cm4gRH07CmcuTHY9ZnVuY3Rpb24obixXKXt2YXIgRD1uLks7Zm9yKHZhciBiIG9mIEQuaXRlbXMpYi51bnN1YnNjcmliZSgic2l6ZS1jaGFuZ2UiLEQucUEsRCk7RC5pdGVtcz1bXTt0cnl7Zy5URihELm1lbnVJdGVtcy5lbGVtZW50KX1jYXRjaCh2KXtnLkdxKG5ldyBnLlF4KCJGYWlsZWQgdG8gcmVtb3ZlIG1lbnUgaXRlbXMgZnJvbSBwYW5lbCBtZW51LiIse2Vycm9yOnYubWVzc2FnZSxvcmlnaW5hbFN0YWNrOnYuc3RhY2ssY2hpbGRUb0JlUmVtb3ZlZDpELm1lbnVJdGVtcy5lbGVtZW50LmZpcnN0Q2hpbGQ/LnRleHRDb250ZW50Pz8iY2hpbGQgZWxlbWVudCBub3QgZm91bmQifSkpfUQubWVudUl0ZW1zLldKKCJzaXplLWNoYW5nZSIpO0Q9e307Yj0hMTtmb3IobGV0IHY9MDt2PFcubGVuZ3RoO3YrKyl7bGV0IGs9V1t2XSxoPW4ub3B0aW9uc1trXSx4PWs9PT1uLlc7eCYmKGI9ITApO2gmJmgucHJpb3JpdHk9PT0tdj8obi5vcHRpb25zW2tdLnVwZGF0ZVZhbHVlKCJsYWJlbCIsbi5qKGspKSwKZGVsZXRlIG4ub3B0aW9uc1trXSk6aD1OWGgobixrLC12LHgpO0Rba109aDt2dShuLkssaCwhMCl9Ynx8KG4uVz1udWxsKTtmb3IobGV0IHYgb2YgT2JqZWN0LmtleXMobi5vcHRpb25zKSluLm9wdGlvbnNbdl0uZGlzcG9zZSgpO24ub3B0aW9ucz1EfTsKZW49ZnVuY3Rpb24obil7aWYobi5tZW51SXRlbSl7dmFyIFc9bi5hcGkuZ2V0VmlkZW9EYXRhKCk7bi5tZW51SXRlbS5lbmFibGUoISFXJiYhIVcuV2spfX07CmdWPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIG9mIFcpe1c9TnVtYmVyKEQucGxheWJhY2tQb3NpdGlvbj8udXRjVGltZU1pbGxpcykvMUUzO2xldCBiPWBlbWJhcmdvXyR7V31gO24uYXBpLmFkZFV0Y0N1ZVJhbmdlKGIsVyxXK051bWJlcihELmR1cmF0aW9uPy5zZWNvbmRzKSwiZW1iYXJnbyIsITEpO0Qub25FbnRlciYmKG4uTltiXT1ELm9uRW50ZXIuZmlsdGVyKG4uSikpfX07CllJMT1mdW5jdGlvbihuKXt2YXIgVz1uLmFwaS5nZXRSb290Tm9kZSgpO1c9bi5hcGkuZ2V0V2ViUGxheWVyQ29udGV4dENvbmZpZygpLmVtYmVkc0VuYWJsZUVtYzNkcz9XLnBhcmVudEVsZW1lbnQ/LnBhcmVudEVsZW1lbnR8fFc6VztuLk49bmV3IHBLcihXLEQ9PntEIT1udWxsJiYobi5hcGkuRygpLmVLPUQsbi5hcGkuRygpLkxLPSJFTUJFRERFRF9QTEFZRVJfVklTSUJJTElUWV9GUkFDVElPTl9TT1VSQ0VfSU5URVJTRUNUSU9OX09CU0VSVkVSIil9KTsKZy51KG4sbi5OKTtuLmV2ZW50cy5OTihuLmFwaSwidmlkZW9TdGF0c1BpbmdDcmVhdGVkIixEPT57dmFyIGI9bi5OO2I9Yi5OPT1udWxsP251bGw6TWF0aC5yb3VuZChiLk4qMTAwKS8xMDA7RC5pbnZpZXc9YiE9bnVsbD9iOnZvaWQgMDtiPW4uYXBpLmdldFBsYXllclNpemUoKTtpZihiLmhlaWdodD4wJiZiLndpZHRoPjApe2I9W01hdGgucm91bmQoYi53aWR0aCksTWF0aC5yb3VuZChiLmhlaWdodCldO2xldCB2PWcuSF8oKTt2PjEmJmIucHVzaCh2KTtiPWIuam9pbigiOiIpfWVsc2UgYj12b2lkIDA7RC5zaXplPWJ9KX07CkhfVT1mdW5jdGlvbihuKXtyZXR1cm4gbi5tYXAoVz0+bmV3IG11KFcuaWQsImFwcGxpY2F0aW9uL3gtbXBlZ1VSTCIse2taOlcua1p9KSl9OwpxVz1mdW5jdGlvbihuLFcsRCxiKXtmdW5jdGlvbiB2KGgpe3ZhciB4PSEoaC5zdGF0dXMhPT0yMDQmJmguc3RhdHVzIT09MjAwJiYhaC5yZXNwb25zZSk7aD17c3VjYzpgJHsreH1gLHJjOmguc3RhdHVzLGxiOmgucmVzcG9uc2U/LmJ5dGVMZW5ndGh8fDAscnQ6KCgwLGcuUikoKS1rKS50b0ZpeGVkKCksc2hvc3Q6Zy5JUChuKSx0cmlnZ2VyOld9O1hyKGgsbik7RCYmRChoKTtiJiYheCYmYihuZXcgZy5DaSgicGF0aHByb2JlLm5ldCIsaCkpfQp2YXIgaz0oMCxnLlIpKCk7Zy5lZChuLHtmb3JtYXQ6IlJBVyIscmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIsdGltZW91dDoxRTQsb25GaW5pc2g6dixvblRpbWVvdXQ6dn0pfTsKWHI9ZnVuY3Rpb24obixXKXt3aW5kb3cucGVyZm9ybWFuY2U/LmdldEVudHJpZXNCeU5hbWUmJihXPXBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoVykpJiZXLmxlbmd0aCYmKFc9V1swXSxuLnBlZG5zPShXLmRvbWFpbkxvb2t1cEVuZC1XLnN0YXJ0VGltZSkudG9GaXhlZCgpLG4ucGVjb249KFcuY29ubmVjdEVuZC1XLmRvbWFpbkxvb2t1cEVuZCkudG9GaXhlZCgpLG4ucGVycXM9KFcucmVxdWVzdFN0YXJ0LVcuY29ubmVjdEVuZCkudG9GaXhlZCgpKX07CnRCPWZ1bmN0aW9uKG4pe3JldHVybiBHRChuLmlqLCFuLnBvbGljeS5mUixuLnBvbGljeS5RSCl9OwpmaXg9ZnVuY3Rpb24obixXKXt2YXIgRD1NYXRoLm1pbihuLnBvbGljeS5UNiwkcyhuLmlqKSk7bj10QihuKTtyZXR1cm4gVy1EKm59OwpyVj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIE1hdGguY2VpbChNYXRoLm1heChNYXRoLm1heChuLnBvbGljeS5abSxuLnBvbGljeS5UNCpEKSxNYXRoLm1pbihNYXRoLm1pbihuLnBvbGljeS5ISiwzMSpEKSxNYXRoLmNlaWwoVypEKSkpKXx8bi5wb2xpY3kuWm19OwpzYj1mdW5jdGlvbihuLFcsRCxiLHY9ITEpe2lmKG4ucG9saWN5LlE3KXJldHVybiBNYXRoLmNlaWwobi5wb2xpY3kuUTcqVyk7bi5wb2xpY3kudm4mJihiPU1hdGguYWJzKGIpKTtiLz1uLnBsYXliYWNrUmF0ZTt2YXIgaz0xL0dEKG4uaWopO0Q9TWF0aC5tYXgoLjkqKGItMyksJHMobi5paikrbi5pai5KLk4qaykvayouOC8oVytEKTtEPU1hdGgubWluKEQsYik7bi5wb2xpY3kuSFk+MCYmdiYmKEQ9TWF0aC5tYXgoRCxuLnBvbGljeS5IWSkpO3JldHVybiByVihuLEQsVyl9OwpOVz1mdW5jdGlvbihuKXtyZXR1cm4gdEIobikvbi5wbGF5YmFja1JhdGV9Owpwdj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9bi5wb2xpY3kucGxheWJhY2tTdGFydFBvbGljeS5yZXN1bWVNaW5SZWFkYWhlYWRQb2xpY3l8fFtdLHY9bi5wb2xpY3kucGxheWJhY2tTdGFydFBvbGljeS5zdGFydE1pblJlYWRhaGVhZFBvbGljeXx8W107bj1JbmZpbml0eTtXPVcmJmIubGVuZ3RoPjA/Yjp2O2ZvcihsZXQgayBvZiBXKVc9ay5taW5SZWFkYWhlYWRNc3x8MCxEPChrLm1pbkJhbmR3aWR0aEJ5dGVzUGVyU2VjfHwwKXx8bj5XJiYobj1XKTtyZXR1cm4gbjxJbmZpbml0eT9uLzFFMzpufTsKZnY9ZnVuY3Rpb24obixXLEQsYix2KXtpZighYi5pbmZvLmFaKXJldHVybiBELmxlbmd0aD09PTA/RC5wdXNoKGIpOihuPUQucG9wKCk/LmooYikpP0QucHVzaChuKTpELnB1c2goYiksdjsoRD1ELnBvcCgpPy5qKGIpKXx8KEQ9Yik7aWYoRC5pbmZvLk4pcmV0dXJuIG4ubG9nZ2VyJiZuLmxvZ2dlcih7aW5jb21wbGV0ZVNlZ21lbnQ6RC5pbmZvLmdhKCl9KSx2O3ZhciB7Zm9ybWF0SWQ6ayxqJDpoLHN0YXJ0VGltZU1zOngsY2xpcElkOkwscjk6ZX09bi5LKEQpO2I9e2NsaXBJZDpMLGZvcm1hdElkOmssc3RhcnRUaW1lTXM6eCxkdXJhdGlvbk1zOmUsQUM6aCxpOTpofTt2PVlzKFcsYi5zdGFydFRpbWVNcyk7RD12Pj0wP1dbdl06bnVsbDt2YXIgRztpZihHPUQpe0c9Yjt2YXIgcj12LE49RC5zdGFydFRpbWVNcytELmR1cmF0aW9uTXMsSD1HLnN0YXJ0VGltZU1zK0cuZHVyYXRpb25NcztpZihHLnN0YXJ0VGltZU1zLU4+bi5OKUc9ITE7ZWxzZSBpZihIdShuLEQuZm9ybWF0SWQsRy5mb3JtYXRJZCkpRC5kdXJhdGlvbk1zPQpNYXRoLm1heChOLEgpLUQuc3RhcnRUaW1lTXMsRC5pOT1NYXRoLm1heChELmk5LEcuaTkpLEc9ITA7ZWxzZSBpZihNYXRoLmFicyhELnN0YXJ0VGltZU1zLUcuc3RhcnRUaW1lTXMpPD1uLk4paWYoRC5kdXJhdGlvbk1zPkcuZHVyYXRpb25NcytuLk4pe3I9RC5mb3JtYXRJZDt2YXIgQT1ELkFDLHk9RC5pOTtELmZvcm1hdElkPUcuZm9ybWF0SWQ7RC5kdXJhdGlvbk1zPUcuZHVyYXRpb25NcztELkFDPUcuQUM7RC5pOT1HLmk5O0cuZm9ybWF0SWQ9cjtHLnN0YXJ0VGltZU1zPUg7Ry5kdXJhdGlvbk1zPU4tSDtHLkFDPUE7Ry5pOT15O0c9ITF9ZWxzZSBELmZvcm1hdElkPUcuZm9ybWF0SWQsRz0hMDtlbHNlIE4+Ry5zdGFydFRpbWVNcyYmKE4+SCYmKFcuc3BsaWNlKHIrMSwwLHtmb3JtYXRJZDpELmZvcm1hdElkLHN0YXJ0VGltZU1zOkgsZHVyYXRpb25NczpOLUgsQUM6Ry5pOSsxLGk5OkQuaTl9KSxuLmxvZ2dlciYmbi5sb2dnZXIoe3NwbGl0T2xkU3RhcnQ6RC5zdGFydFRpbWVNcz8udG9GaXhlZCgzKSwKc3BsaXRPbGRFbmQ6Tj8udG9GaXhlZCgzKSxzcGxpdE5ld1N0YXJ0Okcuc3RhcnRUaW1lTXM/LnRvRml4ZWQoMyksc3BsaXROZXdFbmQ6SD8udG9GaXhlZCgzKX0pKSxELmR1cmF0aW9uTXM9Ry5zdGFydFRpbWVNcy1ELnN0YXJ0VGltZU1zLEQuaTk9Ry5BQy0xKSxHPSExfUc/Yj1EOih2Kz0xLFcuc3BsaWNlKHYsMCxiKSk7RD0wO2ZvcihHPXYrMTtHPFcubGVuZ3RoO0crKyl7Tj1uO0g9V1tHXTtyPWI7QT1ILnN0YXJ0VGltZU1zK0guZHVyYXRpb25Nczt5PXIuc3RhcnRUaW1lTXMrci5kdXJhdGlvbk1zO3k+PUErTi5OP049ITA6eStOLk48SC5zdGFydFRpbWVNcz9OPSExOkh1KE4sSC5mb3JtYXRJZCxyLmZvcm1hdElkKT8oci5kdXJhdGlvbk1zPUEtci5zdGFydFRpbWVNcyxyLmk5PUguaTksTj0hMCk6KEguc3RhcnRUaW1lTXM9eSxILkFDPXIuaTkrMSxOPSExKTtpZighTilicmVhaztEKyt9RCYmVy5zcGxpY2UodisxLEQpO3JldHVybiB2fTsKWXM9ZnVuY3Rpb24obixXKXtuPWcuVzQobix7c3RhcnRUaW1lTXM6V30sKEQsYik9PkQuc3RhcnRUaW1lTXMtYi5zdGFydFRpbWVNcyk7CnJldHVybiBuPj0wP246LW4tMn07CkpCPWZ1bmN0aW9uKG4sVyxEKXtpZihuLmxvZ2dlcil7dmFyIGI9W107Zm9yKGxldCB2PTA7djxXLmxlbmd0aDt2Kyspe2xldCBrPVdbdl07ay5Faj8uc3RhcnRUaWNrcyYmYi5wdXNoKGBpLiR7ay5mb3JtYXRJZD8uaXRhZ31fc3QuJHtrLnN0YXJ0VGltZU1zfV9wc3N0LiR7ay5Faj8uc3RhcnRUaWNrc31fcHNkLiR7ay5Faj8ubDh9YCk7Yi5wdXNoKGBpLiR7ay5mb3JtYXRJZD8uaXRhZ31fc3QuJHtrLnN0YXJ0VGltZU1zfV9lLiR7ay5zdGFydFRpbWVNcytrLmR1cmF0aW9uTXN9X2QuJHtrLmR1cmF0aW9uTXN9X3NuLiR7ay5BQ31fZW4uJHtrLmk5fWApfW4ubG9nZ2VyKHtwOmAke0R9YCxicjpiLmpvaW4oIjsiKX0pfX07Ckk2PWZ1bmN0aW9uKG4sVyxEPSExKXtpZihuLlFFKXt2YXIgYj1uLlFFLlpGKCk7aWYoYi5sZW5ndGghPT0wKXtpZihuLlcmJlcpe3ZhciB2PW4uVyxrPXYuaW5mby5YOyFCUihiLGspJiZ2LmluZm8uSz4wJiYoMCxnLlIpKCktbi5EPDVFMyYmKG4ubG9nZ2VyJiZuLmxvZ2dlcih7ZGVuZDp2LmluZm8uZ2EoKX0pLGI9akcoYixrLGsrLjAxKSl9dj1bXTtmb3IodmFyIGg9az0wO2s8Yi5sZW5ndGgmJmg8bi5lVy5sZW5ndGg7KXt2YXIgeD1iLnN0YXJ0KGspO2xldCBOPWIuZW5kKGspO3ZhciBMPW4uZVdbaF0uc3RhcnRUaW1lTXMvMUUzO2xldCBIPShuLmVXW2hdLnN0YXJ0VGltZU1zK24uZVdbaF0uZHVyYXRpb25NcykvMUUzO2lmKEw8PU4mJkg+PXgpe2xldCBBPXsuLi5uLmVXW2hdfTt2YXIgZT1uLkt1LkouZ2V0KE1rKG4uZVdbaF0uZm9ybWF0SWQpKSxHPU1hdGgubWF4KEwseCk7eD1lLmluZGV4LlIzKEcrbi5OLzFFMyk7TD1lLmluZGV4LmdldFN0YXJ0VGltZSh4KTt2YXIgcj14KworKE1hdGguYWJzKEwtRyk+bi5OLzFFMyk7Rz1yK24uWDtyPWUuaW5kZXguZ2V0U3RhcnRUaW1lKHIpKjFFMztoIT09bi5KfHxXPyhBLkFDPUcsQS5zdGFydFRpbWVNcz1yKToobi5sb2dnZXImJm4ubG9nZ2VyKHtwRXZpY3Q6IjEiLG9nOkEuc3RhcnRUaW1lTXMsYWRqOkwqMUUzfSksQS5BQz14K24uWCxBLnN0YXJ0VGltZU1zPUwqMUUzKTt4PW4uVz8uaW5mby5XfHwxMTshRCYmaD09PW4uSiYmTjxIJiZILU48PXgqMS4wMSYmIShuLnBvbGljeS5TdyYmbi5RRSYmbi5RRS55dSgpKSYmKE49SCk7eD1NYXRoLm1pbihILE4pO0w9ZS5pbmRleC5SMyh4LW4uTi8xRTMpO0c9ZS5pbmRleC5qRShMKTtMLT0rKE1hdGguYWJzKEcteCk+bi5OLzFFMyk7eD1MK24uWDtlPWUuaW5kZXguakUoTCkqMUUzO0EuaTk9eDtBLmR1cmF0aW9uTXM9ZS1BLnN0YXJ0VGltZU1zO0EuQUM8PUEuaTkmJnYucHVzaChBKX1IPE4/aCs9MTprKz0xfW4uZVc9dn19fTsKSmFpPWZ1bmN0aW9uKG4pe3ZhciBXPVtdLEQ9Wy4uLm4uUDNdO24uZVcuZm9yRWFjaChrPT57Vy5wdXNoKHsuLi5rfSl9KTsKdmFyIGI9bi5UQy5aUCgpLHY9bi5KO2ZvcihsZXQgayBvZiBiKXY9ZnYobixXLEQsayx2KTtXLmZvckVhY2goaz0+e2suc3RhcnRUaW1lTXMmJihrLnN0YXJ0VGltZU1zKz1uLnRpbWVzdGFtcE9mZnNldCoxRTMpfSk7CnJldHVybntlVzpXLFAzOkR9fTsKSHU9ZnVuY3Rpb24obixXLEQpe3JldHVybiBXLml0YWchPT1ELml0YWd8fFcueHRhZ3MhPT1ELnh0YWdzPyExOm4uS3Uueld8fFcubG10PT09RC5sbXR9OwpaYj1mdW5jdGlvbihuLFcsRCxiLHYpe2lmKCFXLlBKLk4oKSl7aWYoISh2PUQ9PT0wfHwhIVcuSi5sZW5ndGgmJlcuSlswXWluc3RhbmNlb2YgU24pKWE6e2lmKFcuSi5sZW5ndGgmJih2PVcuSlswXSx2IGluc3RhbmNlb2YgQUImJnYuSk8mJnYuYUkpKXt2PSEwO2JyZWFrIGF9dj0hMX12fHxuLnBvbGljeS5OfHxtaShXKTtyZXR1cm4gRH12YXIgaz1LdihXLEQpO2lmKCFpc05hTihrKSlyZXR1cm4gaztpZihuLmxvYWRlci5DNyhEKjFFMykpcmV0dXJuIEQ7di5BTT9uLnBvbGljeS5WSCYmKG49T2Iobi5sb2FkZXIsVyksVy5zTShEK24sITApKTooVy56aSgpLG4ubG9hZGVyLlgkKCExLGBzdGFfJHsrVy5QSi5pbmZvLmVTKCl9YCkpO3JldHVybiBiJiYobj1GWihiLlpGKCksRCksIWlzTmFOKG4pKT8oUHUoVyxuK0lpYix2KSxEKTpQdShXLEQsdil9OwpVYj1mdW5jdGlvbihuLFcsRCl7aWYoIW4ucG9saWN5Lmope249Vy5QSi5pbmRleDt2YXIgYj1XLk4uaiQ7bi5NSShiKXx8RCYmRC5qJD09PWI/KFcuUEQ9IW4uTUkoYiksVy5EPSFuLk1JKGIpKTooVy5QRD0hMCxXLkQ9ITApfX07CkViPWZ1bmN0aW9uKG4pe3ZhciBXPU1hdGgubWF4KG4udmlkZW9UcmFjay5TRSgpLG4uYXVkaW9UcmFjay5TRSgpKTt5ayhuLnZpZGVvVHJhY2spO3lrKG4uYXVkaW9UcmFjayk7bi5wb2xpY3kuanx8ajQobi5LdSk7bi5LdS5pc01hbmlmZXN0bGVzcyYmIW4ucG9saWN5LmomJihuLk49ITAsbi5KPTApO3ZhciBEPW4ubG9hZGVyO2lmKCFELnBvbGljeS5sbnx8RC5wb2xpY3kuR0MpRC5jdXJyZW50VGltZT1XO24uc2Vla2luZz0hMDtuLlc9bmV3IFk2O3JldHVybiBuLld9OwpvNj1mdW5jdGlvbihuKXt2YXIgVz1uLnZpZGVvVHJhY2suWCE9PS0xLEQ9bi5hdWRpb1RyYWNrLlghPT0tMTtpZighV3x8IUQpaWYoVz0hVyYmaVkobi52aWRlb1RyYWNrKSxEPSFEJiZpWShuLmF1ZGlvVHJhY2spLFd8fEQpaWYoRD1XP24udmlkZW9UcmFjazpuLmF1ZGlvVHJhY2ssVz1XP24uYXVkaW9UcmFjazpuLnZpZGVvVHJhY2ssRC5YPWlZKEQpLmluZm8uaiQsbi5wb2xpY3kuaiYmKFcuWD1pWShXKT8uaW5mby5UQygpfHxXLlgpLFcuWCE9PS0xKXtsZXQgYj1NYXRoLm1heChXLlBKLmluZGV4LmdldFN0YXJ0VGltZShXLlgpLEQuUEouaW5kZXguZ2V0U3RhcnRUaW1lKEQuWCkpO3VBKG4uS3UpJiZNYXRoLmFicyhiLXVBKG4uS3UpKT40MzJFMyYmS0t0KG4uS3UpO24uSiYmKGI9bi5KLG4uSj0wKTtnLm1LKCgpPT57bi5wb2xpY3kuanx8dVkobixiLDEwMil9KTsKbi5sb2FkZXIuVSgiaW5pdE1hbmlmZXN0bGVzc1N5bmMiLHtzdDpiLG9zdDpiK24ubG9hZGVyLlNXKCksYTpuLmF1ZGlvVHJhY2suWCx2Om4udmlkZW9UcmFjay5YfSk7bi5XJiYobi5XLnJlc29sdmUoYisuMSksbi5XPW51bGwpO24ucG9saWN5LmomJnVZKG4sYiwxMDIpfX07ClNJWj1mdW5jdGlvbihuLFcsRCl7aWYoIW4uaXNTZWVraW5nKCkpcmV0dXJuLTE7RD0oRD9uLnZpZGVvVHJhY2s6bi5hdWRpb1RyYWNrKS5QSi5pbmRleDt2YXIgYj1ELlIzKG4udGFyZ2V0VGltZSk7cmV0dXJuKEQuTUkobi5LdS5JdCl8fFcuaiQ9PT1uLkt1Lkl0KSYmYjxuLkt1Lkl0P24uS3UuTGYoKTotMX07CnVZPWZ1bmN0aW9uKG4sVyxEKXtuLk4mJm4udmlkZW9UcmFjay5YIT09LTEmJm4uYXVkaW9UcmFjay5YIT09LTEmJihuLk49ITEsbi50YXJnZXRUaW1lPVcsZFYobi5sb2FkZXIsVysuMSx7QTk6ITAscWQ6ImNodW5rU2VsZWN0b3JTeW5jaHJvbml6ZSIscWE6ITAsc2Vla1NvdXJjZTpEfSkpfTsKQWEyPWZ1bmN0aW9uKG4sVyxELGIpe2lmKG4ucG9saWN5LmopIWJ8fCFuLk4mJm4ucG9saWN5LkJWfHxnLm1LKCgpPT57bzYobil9KTsKZWxzZXtpZihuLmlzU2Vla2luZygpJiZuLnRhcmdldFRpbWUpe2xldCBrPVNJWihuLFcsRCk7aWYoayE9PS0xKXtuLnZpZGVvVHJhY2suUEQ9ITE7bi5hdWRpb1RyYWNrLlBEPSExO24uTj0hMDtuLko9MDtnLm1LKCgpPT57bi5sb2FkZXIuVSgic2Vla3JlYXNvbiIse3JlYXNvbjoiYmVoaW5kTWluU3EiLHRndDprfSk7dVkobixrKX0pOwpyZXR1cm59fUQ/bi52aWRlb1RyYWNrLkQ9ITE6bi5hdWRpb1RyYWNrLkQ9ITE7dmFyIHY9IW4uTjtLdihuLnZpZGVvVHJhY2ssbi50YXJnZXRUaW1lKT49MCYmS3Yobi5hdWRpb1RyYWNrLG4udGFyZ2V0VGltZSk+PTAmJnY/KG4uUEQoKSYmbi5sb2FkZXIuVSgiaXRlcmF0aXZlU2Vla2luZyIse3N0YXR1czoiZG9uZSIsY291bnQ6bi5zZWVrQ291bnR9KSxuLnZpZGVvVHJhY2suUEQ9ITEsbi5hdWRpb1RyYWNrLlBEPSExKTpiJiZnLm1LKCgpPT57aWYobi5OfHwhbi5wb2xpY3kuQlYpbzYobik7ZWxzZXt2YXIgaz1XLnN0YXJ0VGltZSxoPVcuZHVyYXRpb247aWYoIW4ucG9saWN5Lmope3ZhciB4PW4udmlkZW9UcmFjay5YIT09LTEmJm4uYXVkaW9UcmFjay5YIT09LTEsTD0hbi52aWRlb1RyYWNrLkQmJiFuLmF1ZGlvVHJhY2suRDsoRD9uLnZpZGVvVHJhY2suUEQ6bi5hdWRpb1RyYWNrLlBEKSYmeCYmTCYmKG4udGFyZ2V0VGltZT49ayYmbi50YXJnZXRUaW1lPGsraCsuMT8oKEQ/bi52aWRlb1RyYWNrOgpuLmF1ZGlvVHJhY2spLlBEPSExLG4uUEQoKXx8KG4ubG9hZGVyLlUoIml0ZXJhdGl2ZVNlZWtpbmciLHtzdGF0dXM6ImRvbmUiLHRhcmdldDprLG9yaWdpbmFsVGltZTprK24ubG9hZGVyLlNXKCksY291bnQ6bi5zZWVrQ291bnR9KSxuLnNlZWtDb3VudD0wKSk6bi5zZWVrQ291bnQ8OD8obi5zZWVrQ291bnQrKyxuLmxvYWRlci5VKCJpdGVyYXRpdmVTZWVraW5nIix7c3RhdHVzOiJpbnByb2dyZXNzIixjb3VudDpuLnNlZWtDb3VudCx0YXJnZXQ6bi50YXJnZXRUaW1lLGFjdHVhbDprLGR1cmF0aW9uOmgsaXNWaWRlbzpEfSksbi5zZWVrKG4udGFyZ2V0VGltZSx7fSkpOihuLmxvYWRlci5VKCJpdGVyYXRpdmVTZWVraW5nIix7c3RhdHVzOiJpbmNvbXBsZXRlIixjb3VudDpuLnNlZWtDb3VudCx0YXJnZXQ6bi50YXJnZXRUaW1lLGFjdHVhbDprfSksbi5zZWVrQ291bnQ9MCxuLnZpZGVvVHJhY2suUEQ9ITEsbi5hdWRpb1RyYWNrLlBEPSExLGRWKG4ubG9hZGVyLGsrLjEse0E5OiEwLHFkOiJjaHVua1NlbGVjdG9yU3luY2hyb25pemVNZWRpYSIsCnFhOiEwfSkpKX19fSl9fTsKVEQ9ZnVuY3Rpb24obixXLEQpe3pEKG4uaWosVyk7bi5EdCYmKG4uRHQuYWRkKE1hdGguY2VpbChXKS1NYXRoLmNlaWwobi5LKSksbi5EdC5hZGQoTWF0aC5tYXgoMCxNYXRoLmNlaWwoRC8xMDI0KS1NYXRoLmNlaWwobi5YLzEwMjQpKSkpO3ZhciBiPVctbi5LLHY9RC1uLlg7bi5VNT12O24ualc9TWF0aC5tYXgobi5qVyx2LyhiKy4wMSkqMUUzKTtuLks9VztuLlg9RDtuLkhKJiZEPm4uSEomJmxZKG4pfTsKbFk9ZnVuY3Rpb24obil7bi5udT1NYXRoLm1heChuLm51LG4uWC1uLlJ0KTtuLlZRPU1hdGgubWF4KG4uVlEsbi5LLW4uWmgpO24uSEo9MH07Cm13cj1mdW5jdGlvbihuLFcpe24udXJsPVc7d2luZG93LnBlcmZvcm1hbmNlJiYhcGVyZm9ybWFuY2Uub25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwmJihwZXJmb3JtYW5jZS5vbnJlc291cmNldGltaW5nYnVmZmVyZnVsbD0oKT0+e3BlcmZvcm1hbmNlLmNsZWFyUmVzb3VyY2VUaW1pbmdzKCl9KX07CmpuPWZ1bmN0aW9uKG4pe24uaXNBY3RpdmUmJihuLmlzQWN0aXZlPSExKX07CkN2PWZ1bmN0aW9uKG4pe24uZSQ9bi5OK24uc25hcHNob3QuZGVsYXkqMUUzO24udlg9ITF9OwpGcj1mdW5jdGlvbihuLFcsRCl7aWYoIW4uZGlzYWJsZVJlY29yZGluZyl7Vz1NYXRoLm1heChXLC4wMSk7dmFyIGI9bi5xWT9NYXRoLm1heChXLEQvbi5xWSk6Vyx2PW4uaWouSi5XO3YmJihiPVcsbi5xWSYmKGI9TWF0aC5tYXgoVyxEL24ucVkqdikpKTtCdShuLmlqLFcsRCxiKX19Owp3Vj1mdW5jdGlvbihuKXt2YXIgVz1uLkZGfHxuLkdDO3JldHVybiBXP24uc25hcHNob3QuZGVsYXkrTWF0aC5taW4obi5POCwobi5jSi1uLnR3KS8xRTMpK1c6bi5zNX07Ck1XPWZ1bmN0aW9uKG4pe3JldHVybihuLlktbi5OKS8xRTN9OwpRaz1mdW5jdGlvbihuLFcpe2lmKG4uaG4mJm4uaiQhPT12b2lkIDAmJm4uWkEhPT12b2lkIDApe3ZhciBEPU1hdGgsYj1ELm1pbix2PW4uVjt2YXIgaz1uLmhuO3ZhciBoPW4uTjtpZihSNihrLG4uaiQpKWs9VztlbHNle3ZhciB4PTA7ay50SSYmKHg9LjIpO2s9aCsoay5POCt4KSoxRTN9bi5WPWIuY2FsbChELHYsayk7RD1NYXRoO2I9RC5taW47dj1uLk87az1uLmhuO2g9bi5OO3g9S2EyKGssbi5qJCxuLlpBKTt4IT09MiYmKFc9eD9XOmgray5POCoxRTMsay50SSYmKFcrPWsuTzgqMUUzKSk7bi5PPWIuY2FsbChELHYsVyk7bi5WPD1uLk4/Q3Yobik6KG4uZSQ9bi5WLG4udlg9ITApfX07ClZrPWZ1bmN0aW9uKG4sVyl7aWYoVysxPD1uLnRvdGFsTGVuZ3RoKXt2YXIgRD1yZChuLFcpO0Q9RDwxMjg/MTpEPDE5Mj8yOkQ8MjI0PzM6RDwyNDA/NDo1fWVsc2UgRD0wO2lmKEQ8MXx8IShXK0Q8PW4udG90YWxMZW5ndGgpKXJldHVyblstMSxXXTtpZihEPT09MSluPXJkKG4sVysrKTtlbHNlIGlmKEQ9PT0yKUQ9cmQobixXKyspLG49cmQobixXKyspLG49KEQmNjMpKzY0Km47ZWxzZSBpZihEPT09Myl7RD1yZChuLFcrKyk7dmFyIGI9cmQobixXKyspO249cmQobixXKyspO249KEQmMzEpKzMyKihiKzI1NipuKX1lbHNlIGlmKEQ9PT00KXtEPXJkKG4sVysrKTtiPXJkKG4sVysrKTtsZXQgdj1yZChuLFcrKyk7bj1yZChuLFcrKyk7bj0oRCYxNSkrMTYqKGIrMjU2Kih2KzI1NipuKSl9ZWxzZSBEPVcrMSxuLmZvY3VzKEQpLFhhKG4sRCw0KT9uPXFEKG4pLmdldFVpbnQzMihELW4uVywhMCk6KGI9cmQobixEKzIpKzI1NipyZChuLEQrMyksbj1yZChuLEQpKzI1NioocmQobixEKzEpKwoyNTYqYikpLFcrPTU7cmV0dXJuW24sV119OwpjdT1mdW5jdGlvbihuKXtyZXR1cm4gZy5keihuLmluZm8uQXcsVz0+Vy50eXBlPT09Myl9OwpDbmk9YXN5bmMgZnVuY3Rpb24obixXKXtyZXR1cm4gVz8obmV3IHVvKG4uSikpLmVuY3J5cHQoVyxuLk4pOld9OwpGSTE9YXN5bmMgZnVuY3Rpb24obixXKXtyZXR1cm4gVz9hd2FpdCAobmV3IHVvKG4uSikpLmRlY3J5cHQoVyxuLk4pOld9OwphNj1mdW5jdGlvbihuKXtuLlcucmVhZCgpLnRoZW4obi5ZLG4ub25FcnJvcikudGhlbih2b2lkIDAsZy5xZyl9OwpXcD1mdW5jdGlvbihuLFcsRCxiLHYpe2lmKGdaKDYsMTE3MCxuLkFPKSlyZXR1cm4gbmV3IE9fcihuLEQpO249bi5XRCgpO3JldHVybiBiP3lXKCk/bmV3IG4zKG4sVyxELHYpOm5ldyBQSGoobixXLEQsdik6bmV3IFpfQyhuLEQsdil9OwpEeD1mdW5jdGlvbihuLFcsRCl7bi5OJiYoZTUobi5OLFcpLFc9bi5OLG4uTj1udWxsKTt2YXIgYj0wLHY9MDtmb3IobGV0IEwgb2Ygbi5Bdyl7aWYoTC5yYW5nZSYmYitMLko8PW4uSil7Yis9TC5KO2NvbnRpbnVlfWlmKGhKKEwpJiYhRCYmbi5KK1cudG90YWxMZW5ndGgtdjxiK0wuSil7KHtZOTpuLk59PVcuc3BsaXQodikpO2JyZWFrfWE6e3ZhciBrPW47dmFyIGg9TCx4PW4uSi1iO2xldCBlPVcudG90YWxMZW5ndGgtdjtoLnJhbmdlJiYoZT1NYXRoLm1pbihoLkoteCxlKSk7aD1HUChoLGguTit4LGUsaC5yYW5nZT9oLk4reCtlPT09aC5yYW5nZS5sZW5ndGg6ISFEKTt4PWdkKFcsdixlKTtoPW5ldyBiOChoLHgpO2lmKGsualMubGVuZ3RoJiYoeD1rLmpTW2sualMubGVuZ3RoLTFdLmooaCkpKXtrLmpTW2sualMubGVuZ3RoLTFdPXg7az1lO2JyZWFrIGF9ay5qUy5wdXNoKGgpO2s9ZX1uLkorPWs7dis9aztiKz1MLko7aWYodj09PVcudG90YWxMZW5ndGgpYnJlYWt9fTsKYnU9ZnVuY3Rpb24obil7cmV0dXJuIFVZKG4ubm4sUjAoNjQsMzUzNixuLlNPLkFPKSl9Owp2cD1mdW5jdGlvbihuKXtuLlhiLk89KDAsZy5SKSgpO249YnUobik7bi5qPSgwLGcuUikoKTtuLnN0YXJ0ZWQrPTF9OwprWj1mdW5jdGlvbihuLFcsRCxiLHY9ITEpe24udGltaW5nLkhEKCgwLGcuUikoKSxXLEQpO1c9bi5YYjtXLko9MDtXLlY9MDtXLkQ9MDt6aihidShuKSx2KTtiJiYoYj1idShuKSxiLlcrPTEpO24uVWo/Lk8obi5TTy5BTyl9OwpoVT1mdW5jdGlvbihuLFc9ITEpe2lmKG4ubGFzdEVycm9yPT09InVtcC5zcHNyZWplY3RmYWlsdXJlIiluLnRpbWluZy5iZHx8d0Eobi5YYiwhMSxuLlNPLG4ucG9saWN5LG4ubm4pO2Vsc2V7aWYobi5sYXN0RXJyb3I9PT0ibmV0LnRpbWVvdXQiKW4udGltaW5nLnlFKCgwLGcuUikoKSk7ZWxzZXt2YXIgRD1uLnRpbWluZztURChELCgwLGcuUikoKSxELlgpfW4ubGFzdEVycm9yPT09Im5ldC5ub2NvbnRlbnQiPysrbi5YYi5EOigoRD1uLmxhc3RFcnJvcj09PSJuZXQudGltZW91dCJ8fG4ubGFzdEVycm9yPT09Im5ldC5jb25uZWN0Inx8bi5sYXN0RXJyb3I9PT0ibmV0LmNsb3NlZCIpJiYhZ1ooNiwxMTcwLG4uU08uQU8pP29FaShidShuKSxXKTp5ZihidShuKSxXKSxuLnRpbWluZy5iZHx8d0Eobi5YYixELG4uU08sbi5wb2xpY3ksbi5ubikpfW4uWWEudlYoNSl9Owp4Wj1mdW5jdGlvbihuLFcsRCxiPSExLHY9ITEsaz0hMSl7cmV0dXJuIFc+PTQwMHx8az8obi5sYXN0RXJyb3I9az8icHJvYmUubmV0LmJhZHN0YXR1cyI6Im5ldC5iYWRzdGF0dXMiLCEwKTp2PyhuLmxhc3RFcnJvcj0idW1wLnNwc3JlamVjdGZhaWx1cmUiLCEwKTpEfHxiPyExOihuLmxhc3RFcnJvcj1XPT09MjA0PyJuZXQubm9jb250ZW50IjoibmV0LmNvbm5lY3QiLCEwKX07CkwzPWZ1bmN0aW9uKG4sVyl7aWYobi5wb2xpY3kuYiQpcmV0dXJuITE7dmFyIEQ9Vy5nZXRSZXNwb25zZUhlYWRlcigiY29udGVudC10eXBlIiksYj1XLmlpKCk7bj0hYnx8Yjw9bi5wb2xpY3kub2M7cmV0dXJuKCFXLkdwKCl8fCFEfHxELmluZGV4T2YoInRleHQvcGxhaW4iKSE9PS0xKSYmbn07CmVWPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9IiI7Vz1XLnNOKCk7Vy50b3RhbExlbmd0aDw9bi5wb2xpY3kub2MmJihuPXRSKFcpLG49cFIobiksRD1nWChuKT9uOiIiKTtyZXR1cm4gRH07CmdDPWZ1bmN0aW9uKG4pe3ZhciBXPW4udGltaW5nLkQoKTtXLnNob3N0PVIwKDk2LDM1Njgsbi5TTy5BTyk7bi5wb2xpY3kuQ3UmJm4ucG9saWN5LnZYJiYoVy5jc3JjPTEpO3JldHVybiBXfTsKVXdiPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4/Lm1heFdpZHRoPlc/Lm1heFdpZHRofHxuPy5tYXhIZWlnaHQ+Vz8ubWF4SGVpZ2h0fTsKeWFqPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIG9mIFcua2V5cygpKXtsZXQgYj1XLmdldChEKTtpZihiLmxlbmd0aD09PTApY29udGludWU7Zy5iZihiLChoLHgpPT54Lm1heEZyYW1lcmF0ZS1oLm1heEZyYW1lcmF0ZSk7CmxldCB2PVtiWzBdXSxrPTA7Zm9yKGxldCBoPTE7aDxiLmxlbmd0aDtoKyspVXdiKGJbaF0sdltrXSkmJih2LnB1c2goYltoXSksaysrKTtuPW4uY29uY2F0KHYpfXJldHVybiBufTsKaV9iPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9W107Zm9yKGxldCBiIG9mIFcpVz1FdGpbYl18fDAsbi5OJiZXPm4uTnx8RC5wdXNoKGIpO3JldHVybiBEfTsKWHU9ZnVuY3Rpb24obixXLEQpe3ZhciBiPXVkWltuXXx8W107RC5TKCJodG1sNV9zaG9ydHNfb25lc2llX21pc21hdGNoZWRfZml4IikmJihiPW90dFtuXXx8W10pO1cucHVzaCguLi5iKTtELlMoImh0bWw1X2Vhcmx5X21lZGlhX2Zvcl9kcm0iKSYmVy5wdXNoKC4uLihkd3Rbbl18fFtdKSl9Owp6eFM9ZnVuY3Rpb24obixXKXt2YXIgRD1WeihuKSxiPW4uRygpLHY9Yi5XO2I9Yi5TKCJodG1sNV9zaG9ydHNfb25lc2llX21pc21hdGNoZWRfZml4Iik7dmFyIGs9bi5OUCgpO2lmKGIpe2lmKCF2Lk4pe2lmKGsmJnFxKXJldHVybiBxcTtpZihHSSlyZXR1cm4gR0l9fWVsc2UgaWYoR0kmJiF2Lk4pcmV0dXJuIEdJO3ZhciBoPVtdLHg9W10sTD17fSxlPXRVLmNvbmNhdCgkWik7YiYmKGU9dFUuY29uY2F0KHJDKSk7bi5TKCJodG1sNV9lYXJseV9tZWRpYV9mb3JfZHJtIikmJihlPWUuY29uY2F0KHNHKSxuLlMoImFsbG93X3ZwOV8xMDgwcF9tcV9lbmMiKSYmZS5wdXNoKE5xKSk7dmFyIEc9Wy4uLnAzXTtuLlMoImh0bWw1X2lhbWZfYXVkaW9fb25lc2llX2ZtdCIpJiZHLnB1c2goWyI3NzMiXSk7Zm9yKHZhciByIG9mIGUpe2U9ITE7Zm9yKGxldCBIIG9mIHIpe3ZhciBOPVNNKEgsayYmYik7aWYoIU58fCFOLnZpZGVvKWNvbnRpbnVlO2lmKE4uTVcoKSYmIUQuZSQmJk4udmlkZW8ucXVhbGl0eU9yZGluYWw+CkQublMpY29udGludWU7bGV0IEE9Zy5kTShuLkcoKS5leHBlcmltZW50cywiaHRtbDVfZHJtX2J5dGVyYXRlX3NvZnRfY2FwIik7aWYoQT4wJiZVTihOKSYmTi5Ocz5BKWNvbnRpbnVlO2lmKGUpe2gucHVzaChIKTtYdShILGgsbik7Y29udGludWV9Tj1zRChELE4sdik7Tj09PSEwPyhlPSEwLGgucHVzaChIKSxYdShILGgsbikpOkxbSF09Tn19Zm9yKGxldCBIIG9mIEcpZm9yKGxldCBBIG9mIEgpe3I9QXUoQSk7aWYoIXJ8fCFyLmF1ZGlvfHwhbi5TKCJodG1sNV9vbmVzaWVfNTFfYXVkaW8iKSYmci5WKCkpY29udGludWU7cj1zRChELHIsdik7aWYocj09PSEwKXt4LnB1c2goQSk7WHUoQSx4LG4pO2JyZWFrfWVsc2UgTFtBXT1yfWlmKCFuLlMoImh0bWw1X2VuYWJsZV9hdWRpb19xdWFsaXR5X3NldHRpbmciKSl7bj1bIjE0MSIsIjc3NCJdO2ZvcihsZXQgSCBvZiBuKXguaW5jbHVkZXMoSCkmJihnLkZJKHgsSCksTFtIXT0iYmxraHFhIil9RC5XJiZXKCJvcmZtdHMiLEwpO2lmKGIpcmV0dXJuIHYuTiYmCih2Lk49ITEscXE9R0k9dm9pZCAwKSxrP3FxPXt2aWRlbzpoLGF1ZGlvOnh9OkdJPXt2aWRlbzpoLGF1ZGlvOnh9O0dJPXt2aWRlbzpoLGF1ZGlvOnh9O3YuTj0hMTtyZXR1cm4gR0l9OwpqRk09ZnVuY3Rpb24obil7dmFyIFc9e30sRD1uLkwsYj1uLnlRLHY9bi5paixrPUQuZ2V0VmlkZW9EYXRhKCksaD1wNygwKTt2YXIgeD1ELmdldFZpc2liaWxpdHlTdGF0ZSgpO2IuUygiaHRtbDVfZW5hYmxlX2F1ZGlvX3F1YWxpdHlfc2V0dGluZyIpJiYoVy5pQj1iLmlCKTtoJiYoVy5pSD1oLFcubGFzdE1hbnVhbERpcmVjdGlvbj1Sc3goKSxoPVVQKCl8fDAsaD4wJiYoaD0oYi5TKCJodG1sNV91c2VfZGF0ZV9ub3dfZm9yX2xvY2FsX3N0b3JhZ2UiKT9EYXRlLm5vdygpOigwLGcuUikoKSktaCxiLlMoImh0bWw1X3VzZV9kYXRlX25vd19mb3JfbG9jYWxfc3RvcmFnZSIpP2g+MCYmKFcudGltZVNpbmNlTGFzdE1hbnVhbEZvcm1hdFNlbGVjdGlvbk1zPWgpOlcudGltZVNpbmNlTGFzdE1hbnVhbEZvcm1hdFNlbGVjdGlvbk1zPWgpKTtpZih2Lk98fGIuUygiaHRtbDVfc2Ficl91Z2Nfdm9kX3dlYl9lbWJlZGRlZF9jbGllbnRfZGVmYXVsdF9iYW5kd2lkdGhfb25faXBob25lIikmJnc4KWg9CmIuUygiaHRtbDVfZGlzYWJsZV9iYW5kd2lkdGhfY29mYWN0b3JzX2Zvcl9zYWJyX2xpdmUiKT8hIW4ub1o/LmZSOiExLFcuSSQ9R0QodiwhaCk7dmFyIEw9TkcubWVkaXVtLGU9TWF0aC5mbG9vcihMKjE2LzkpLEc9ay5OUCgpfHwoay5OJiZrLlcmJmsuVy52aWRlb0luZm9zLmxlbmd0aCE9PTA/ay5XLnZpZGVvSW5mb3NbMF0uaXNWZXJ0aWNhbCgpOiExKTtoPUc/TDplO2U9Rz9lOkw7Rz1ELlNpKCk7TD1HLndpZHRoO0c9Ry5oZWlnaHQ7Vy5zQT1NYXRoLm1heChMLGgpO1cuWUE9TWF0aC5tYXgoRyxlKTtiLlMoImh0bWw1X2VuYWJsZV9jbGllbnRfdmlld3BvcnRfc2l6ZV9sb2dnaW5nIikmJmIuV1goKSYmKGg9RC5NaCgpLEQuVSgiY3Z3Iix7dzpMLGg6Ryxjdnc6Vy5zQSxjdmg6Vy5ZQSxjdnU6aC5OfSkpO1cudmlzaWJpbGl0eT14O1cuWkk9Zy52SSgpO1cuZnE9RC5sNSgpKjFFMzt4PW4uTC52JCgpO1cuTk89e2RlZmF1bHRQb2xpY3k6eD8uRHI/Lk58fDAsc21vb3RoOng/LnpOPy5OfHwKMCx2aXNpYmlsaXR5Ong/LmN3Py5OfHwwLE9iOng/LkFFPy5OfHwwLHBlcmZvcm1hbmNlOng/LmlQPy5OfHwwLHNwZWVkOng/LlhOPy5OfHwwfTtXLlROPXg/LlFZPy5OfHwwO2lmKG4uaHF8fG4uQ3gmJiFuLmdEKWg9Yi5adCgpLk4uUVEobGlaKT8/MCxoPjAmJiFXLlROJiYoTD0oeD8uRHJ8fFlaKS5jb21wb3NlKG5ldyBiMygwLGgsITEsInAiKSksVy5OTy5kZWZhdWx0UG9saWN5PUwuTixELlUoImxzbCIse3FjOmh9KSksay5saXZlUHJlbG9hZCYmay5TKCJodG1sNV9hbGxvd19tdWx0aXZpZXdfdGlsZV9wcmVsb2FkIikmJiFrLkcoKS5adCgpLk4uUVEoSHApJiYoeD0oeD8uRHJ8fFlaKS5jb21wb3NlKG5ldyBiMygwLDI0MCwhMSwicCIpKSxXLk5PLmRlZmF1bHRQb2xpY3k9eC5OKTt4PW4uaHF8fGsuWjk/W3t0cmFja1R5cGU6MSxpc0hkcjohMX0se3RyYWNrVHlwZToyLGlzSGRyOiExfSx7dHJhY2tUeXBlOjIsaXNIZHI6ITB9LHt0cmFja1R5cGU6Myxpc0hkcjohMX0se3RyYWNrVHlwZTozLAppc0hkcjohMH0se3RyYWNrVHlwZTo0LGlzSGRyOiExfSx7dHJhY2tUeXBlOjQsaXNIZHI6ITB9LHt0cmFja1R5cGU6NSxpc0hkcjohMX0se3RyYWNrVHlwZTo1LGlzSGRyOiEwfV06W3t0cmFja1R5cGU6MSxpc0hkcjohMX0se3RyYWNrVHlwZToyLGlzSGRyOiExfSx7dHJhY2tUeXBlOjIsaXNIZHI6ITB9XTtXLmtjPW4uYXV0aG9yaXplZEZvcm1hdHMmJm4uYXV0aG9yaXplZEZvcm1hdHMubGVuZ3RoPjA/e2F1dGhvcml6ZWRGb3JtYXRzOm4uYXV0aG9yaXplZEZvcm1hdHN9OnthdXRob3JpemVkRm9ybWF0czp4fTtuLnNhYnJMaWNlbnNlQ29uc3RyYWludCYmKFcua2Muc2FickxpY2Vuc2VDb25zdHJhaW50PW4uc2FickxpY2Vuc2VDb25zdHJhaW50KTtpZihiLlMoImh0bWw1X29uZXNpZV9tZWRpYV9jYXBhYmlsaXRpZXMiKXx8TEEoaykpVy5ZZj0zO2lmKGIuUygiaHRtbDVfb25lc2llX2F1ZGlvX29ubHlfcGxheWJhY2siKSYmUlEoayl8fG4ub1o/Lk4mJmxvKGIpPT09IlRWSFRNTDVfQVVESU8iKVcuWWY9CjE7bi5vWj8ueUUmJm4ub0cmJihXLllmPVcuWWY9PT12b2lkIDA/NzpXLllmfDQpO3g9ay5lJD9rLmUkOlZ6KGspO2lmKGIuUygiaHRtbDVfb25lc2llX21lZGlhX2NhcGFiaWxpdGllcyIpKXtoPWIuVztMPVtdO2U9W107Rz1iLlMoImh0bWw1X3Nob3J0c19vbmVzaWVfbWlzbWF0Y2hlZF9maXgiKTt2YXIgcj1rLk5QKCksTj10VS5jb25jYXQoJFopO0cmJihOPXRVLmNvbmNhdChyQykpO2IuUygiaHRtbDVfZWFybHlfbWVkaWFfZm9yX2RybSIpJiYoTj1OLmNvbmNhdChzRyksYi5TKCJhbGxvd192cDlfMTA4MHBfbXFfZW5jIikmJk4ucHVzaChOcSkpO3ZhciBIPVsuLi5wM107Yi5TKCJodG1sNV9pYW1mX2F1ZGlvX29uZXNpZV9mbXQiKSYmSC5wdXNoKFsiNzczIl0pO2Zvcih2YXIgQSBvZiBOKWZvcih2YXIgeSBvZiBBKXtOPVNNKHksciYmRyk7aWYoIU58fCFOLnZpZGVvKWNvbnRpbnVlO2xldCBRPWcuZE0oYi5leHBlcmltZW50cywiaHRtbDVfZHJtX2J5dGVyYXRlX3NvZnRfY2FwIik7CmlmKCEoUT4wJiZVTihOKSYmTi5Ocz5RKSYmc0QoeCxOLGgpPT09ITApe0wucHVzaCh7dmlkZW9Db2RlYzpmM1tZZ1t5XV0sbWF4V2lkdGg6Ti52aWRlby53aWR0aCxtYXhIZWlnaHQ6Ti52aWRlby5oZWlnaHQsbWF4RnJhbWVyYXRlOk4udmlkZW8uZnBzfSk7YnJlYWt9fWZvcih2YXIgVCBvZiBIKWZvcih2YXIgeiBvZiBUKWlmKChBPUF1KHopKSYmQS5hdWRpbyYmKGIuUygiaHRtbDVfb25lc2llXzUxX2F1ZGlvIil8fCFBLlYoKSkmJnNEKHgsQSxoKT09PSEwKXtlLnB1c2goe2F1ZGlvQ29kZWM6SlVbWWdbel1dLG51bUNoYW5uZWxzOkEuYXVkaW8ubnVtQ2hhbm5lbHN9KTticmVha31XLm1lZGlhQ2FwYWJpbGl0aWVzPXt2aWRlb0Zvcm1hdENhcGFiaWxpdGllczpMLGF1ZGlvRm9ybWF0Q2FwYWJpbGl0aWVzOmV9fWlmKG4ub1o/LkR0KCkpe0E9bi5JODt5PW4ubGw7aD1uLm9aPy5OcztUPVtdO3o9W107TD1uZXcgTWFwO2U9KGU9ay5KKT9lLml0YWc6dm9pZCAwO0c9ay5XPy52aWRlb0luZm9zOwpHPUc/Lmxlbmd0aD9HW0cubGVuZ3RoLTFdLml0YWc6dm9pZCAwO2U9IVZUKCkmJmUhPT12b2lkIDAmJkE/LmluY2x1ZGVzKE51bWJlcihHKSk7Rz1rLnl3Lk47Zm9yKHZhciBDIG9mIEcudmFsdWVzKCkpQy5lUz96LnB1c2goe2F1ZGlvQ29kZWM6SlVbQy5JQl0sbnVtQ2hhbm5lbHM6Qy5udW1DaGFubmVscyxzcGF0aWFsQ2FwYWJpbGl0eUJpdG1hc2s6VFhNW0MuSUJdfSk6KEc9ZjNbQy5JQl0scj1DLm1heEJpdHJhdGVCcHN8fDAsSD1oP2gqODowLHI9e3ZpZGVvQ29kZWM6RyxtYXhXaWR0aDp5JiYhZT84NTQ6Qy5tYXhXaWR0aHx8MCxtYXhIZWlnaHQ6eSYmIWU/NDgwOkMubWF4SGVpZ2h0fHwwLG1heEZyYW1lcmF0ZTpDLm1heEZyYW1lcmF0ZXx8MCxpczEwQml0U3VwcG9ydGVkOkMuejl8fCExLG1heEJpdHJhdGVCcHM6SCYmcj9NYXRoLm1pbihILHIpOkh8fHIsZWZmaWNpZW50OiEwfSxHPWAke0d9XyR7Qy56OX1gLEg9TC5nZXQoRyl8fFtdLEgucHVzaChyKSxMLnNldChHLEgpKTsKVD15YWooVCxMKTtDPUEmJiFlP1suLi5BXTpbXTtrLlMoImh0bWw1X3NzZmZfZGVueWxpc3Rfb3B1c19sb3ciKSYmQy5wdXNoKDI0OSwzNTApO1Z6KGspO1cubWVkaWFDYXBhYmlsaXRpZXM9e3ZpZGVvRm9ybWF0Q2FwYWJpbGl0aWVzOlQsYXVkaW9Gb3JtYXRDYXBhYmlsaXRpZXM6eixoZHJNb2RlQml0bWFzazozLHBlclBsYXliYWNrQXR0cmlidXRlczpDLmxlbmd0aD97aXRhZ0RlbnlsaXN0OkN9Ont9fX1XLnVxPVZUKCk7bi5vWj8uTiYmKFcuYnY9eC5idixXLm5TPW4ub1o/Lm5TKTtiLnlFJiYoVy5FYj1iLnlFKTtXLm5SPW4ublI7Vy5Zcz1uLllzO1cuZXE9bi5lcTtXLmo0PW4uajQ7bi5weiYmKFcubHE9KDAsZy5SKSgpLW4ucHopO24uSiQmJihXLkokPW4uSiQpO05zfHwoVy5aQz0hMCk7Qz0kcyh2KSoxRTM7Qz4wJiYoVy5YRD1DKTtEPUQuZ2V0UGxheWJhY2tSYXRlKCk7RCE9PTEmJihXLnBsYXliYWNrUmF0ZT1EKTtuLm9aPy5MQiYmbi5HNyYmKFcua0U9bi5rRSxXLlVtPW4uVW0sClcuRzc9bi5HNyk7WWQoKT09PTEmJihXLms4PTEpO2IuUygiaHRtbDVfc2Ficl9mb3JjZV9wcm94aW1hIikmJihXLlZYPTEpO0Q9Zy5kTShiLmV4cGVyaW1lbnRzLCJodG1sNV9zYWJyX2ZvcmNlX21heF9uZXR3b3JrX2ludGVycnVwdGlvbl9kdXJhdGlvbl9tcyIpO1cucDY9RD4wP0Q6di5pbnRlcnJ1cHRpb25zWzBdfHwwO24ub1o/LllaJiYoVy5yMD1uLnIwKTtiLkhKJiYoVy5hdWRpb1RyYWNrSWQ9Yi5ISik7ay5aaCgpJiYhVy5hdWRpb1RyYWNrSWQmJihiLlMoImh0bWw1X2ZpbGxfZGVmYXVsdF9tb3NhaWNfYXVkaW9fdHJhY2tfaWQiKXx8KG49bGooayksVy5hdWRpb1RyYWNrSWQ9biksaz8uVSgibWlzc3Rya2NoZyIseyJkZWZhdWx0IjpXLmF1ZGlvVHJhY2tJZH0pKTtpZihuPW5hdmlnYXRvci5jb25uZWN0aW9uPy50eXBlfHwiIilXLmRldGFpbGVkTmV0d29ya1R5cGU9SXFbbl18fElxLm90aGVyOyFiLlMoImh0bWw1X2VuYWJsZV92b2ljZV9ib29zdCIpfHxrLk5QKCl8fGsuaXNBZCgpfHwKKFcucU09Yi5taCk7cmV0dXJuIFd9OwpTVj1mdW5jdGlvbihuLFcsRCxiLHYsayxoKXt2YXIgeD17fTtXJiYoeC5xJD1XKTtpZighbilyZXR1cm4geDt4LnBsYXliYWNrQ29va2llPUQ/LnBsYXliYWNrQ29va2llO3YmJih4LmROPXYpO3gudXQ9W107eC5ycT1bXTtpZihoPy5zaXplKWZvcihsZXQgTCBvZiBoLnZhbHVlcygpKXgucnEucHVzaChMKTtpZihuLnNhYnJDb250ZXh0VXBkYXRlcy5zaXplPjApZm9yKGxldCBMIG9mIG4uc2FickNvbnRleHRVcGRhdGVzLnZhbHVlcygpKUNIaCh4LEwsYik7Zy5ZTihuKSYmayYmQ0hoKHgsayxiKTtXPW4uRygpLk47eC5jbGllbnRJbmZvPXtjbGllbnROYW1lOkJYdFtXLmMudG9VcHBlckNhc2UoKV18fDB9O1cuY2JyYW5kJiYoeC5jbGllbnRJbmZvLmRldmljZU1ha2U9Vy5jYnJhbmQpO1cuY21vZGVsJiYoeC5jbGllbnRJbmZvLmRldmljZU1vZGVsPVcuY21vZGVsKTtXLmN2ZXImJih4LmNsaWVudEluZm8uY2xpZW50VmVyc2lvbj1XLmN2ZXIpO1cuY29zJiYoeC5jbGllbnRJbmZvLm9zTmFtZT0KVy5jb3MpO1cuY29zdmVyJiYoeC5jbGllbnRJbmZvLm9zVmVyc2lvbj1XLmNvc3Zlcik7Vz1uLkcoKTtXLlMoImh0bWw1X3NhYnJfZW5hYmxlX3NlcnZlcl94dGFnX3NlbGVjdGlvbiIpJiZXLlJhJiYoeC5jbGllbnRJbmZvLmhsPVcuUmEpO24uQngmJih4LkJ4PW4uQngpO3JldHVybiB4fTsKQ0hoPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1XLnR5cGV8fDA7RD8uaGFzKGIpP24ucnEucHVzaChXKTpuLnV0LnB1c2goYil9OwpGYU09ZnVuY3Rpb24obil7aWYoISh5cyhuLmluZm8pJiZuLmluZm8uUW4oKSYmbi5wb2xpY3kuc1YmJm4uZTEpfHxuLmluZm8uWGIuSj49Mnx8cDcoKT4wfHwhSU8oKSlyZXR1cm4hMTt2YXIgVz1uLlNPLmdldCgiYWl0YWdzIik7aWYoIVcpcmV0dXJuITE7Vz1HNShXKS5zcGxpdCgiLCIpO3ZhciBEPVtdO2ZvcihsZXQgYiBvZiBuLmUxKWcuamooVyxiKSYmRC5wdXNoKGIpO2lmKCFELmxlbmd0aClyZXR1cm4hMTtuLlNPLnNldCgiYWx0aXRhZ3MiLHFoKEQuam9pbigiLCIpKSk7cmV0dXJuITB9Owp3S2o9ZnVuY3Rpb24obixXLEQ9ITEpe2cuWGooVyk7bi50NS5sYXN0RXJyb3I9InBsYXllci5leGNlcHRpb24iO24uZXJyb3JNZXNzYWdlPWAke1cubmFtZX1fJHtXLm1lc3NhZ2V9YDtEP2cubUsoKCk9PntoVShuLnQ1KX0pOmhVKG4udDUpfTsKTUFNPWZ1bmN0aW9uKG4pe24uZXcmJihuLnhoci5zdGF0dXM9bi5ldyxuLmxOPW4uZXcpfTsKUnhqPWZ1bmN0aW9uKG4sVyl7bi50aW1pbmcuYmQ9ITA7bi54aHIuR3AoKSYmbi50aW1pbmcuVEMoKTtuLnBvbGljeS5OZCYmbi5UMj8uc3RvcCgpO0R4KG4uV28sVywhMSl9OwpRRnc9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4ucVk/TWF0aC5tYXgoVyxEL24ucVkpOlcsdj1uLmlqLkouVzt2JiYoYj1XLG4ucVkmJihiPU1hdGgubWF4KFcsRC9uLnFZKnYpKSk7QnUobi5paixXLEQsYil9OwpWQVM9ZnVuY3Rpb24obixXLEQsYix2LGspe24uTyYmKG4uTy5hZGQoTWF0aC5yb3VuZChXKSksbi5PLmFkZChNYXRoLnJvdW5kKEQpKSxuLk8uYWRkKE1hdGgucm91bmQoYikpLG4uTy5hZGQoTWF0aC5yb3VuZCh2KSksbi5PLmFkZChNYXRoLnJvdW5kKGspKSxuLk8uYWRkKE1hdGgucm91bmQobi52WCkpKX07CmNhdD1mdW5jdGlvbihuLFcsRCl7c3dpdGNoKFcpe2Nhc2UgNjg6bi5aYihEKTticmVhaztjYXNlIDM1Om4uc3koRCk7YnJlYWs7Y2FzZSA0NDpuLklyKEQpO2JyZWFrO2Nhc2UgNDM6bi5yTihEKTticmVhaztjYXNlIDUzOm4ua0ooRCk7YnJlYWs7Y2FzZSA1NjpuLk9lKCk7YnJlYWs7Y2FzZSA1NzpuLnlUKEQpO2JyZWFrO2Nhc2UgNDI6bi5XbChEKTticmVhaztjYXNlIDQ1Om4udVEoRCk7YnJlYWs7Y2FzZSA1OTpuLmdZKEQpO2JyZWFrO2Nhc2UgNTE6bi5DWChEKTticmVhaztjYXNlIDQ5Om4uTiQoRCk7YnJlYWs7Y2FzZSA1MDpuLkZYKEQpO2JyZWFrO2Nhc2UgNDc6bi5BcShEKTticmVhaztjYXNlIDU4Om4uc1coRCk7YnJlYWs7Y2FzZSA2MTpuLkhFKEQpO2JyZWFrO2Nhc2UgNzI6bi5ZYS5UcSgpO2JyZWFrO2Nhc2UgNjY6bi56cChEKTticmVhaztjYXNlIDQ2Om4udnQoRCk7YnJlYWs7Y2FzZSA2NzpuLm9uU25hY2tiYXJNZXNzYWdlKEQpO2JyZWFrO2Nhc2UgNzE6Vz1tayhELApJbGopLG4uWWEuSUYoVyl9fTsKYWlNPWZ1bmN0aW9uKG4pe0FVPW59OwpuajE9ZnVuY3Rpb24obixXLEQpe24udTkuZ2V0KFcpLm9uUHJvZ3Jlc3M9RH07Cm1lPWZ1bmN0aW9uKG4sVyl7bi5nRihXKSYmKEFVP24udTkuZ2V0KFcpLkZtLmNsZWFyKCk6bi51OS5nZXQoVykualM9bmV3IFM1LG4uSihXKSxuLlg9ITApfTsKVyRqPWZ1bmN0aW9uKG4pe2ZvcihsZXQgW1csRF1vZiBuLnU5KXtsZXQgYj1XO0QuRG98fG1lKG4sYil9fTsKRDZ4PWZ1bmN0aW9uKG4sVyl7bj1uLnU5LmdldChXKTtpZighbilyZXR1cm4gMDtXPTA7aWYobi5Bdy5sZW5ndGg+MCl7Zm9yKGxldCBEIG9mIG4uQXcpVys9RC5yYW5nZT8ubGVuZ3RofHwwO3JldHVybiBXfWlmKG4uQnQubGVuZ3RoPjApZm9yKGxldCBEIG9mIG4uQnQpVys9RC5lSHx8MDtyZXR1cm4gVytuLk1vfTsKSzM9ZnVuY3Rpb24obixXKXtpZihBVSl7bGV0IEQ9MDtuPW4udTkuZ2V0KFcpO2lmKCFuPy5GbSlyZXR1cm4gMDtmb3IobGV0IGIgb2Ygbi5GbS52YWx1ZXMoKSlEKz1iLmRhdGEudG90YWxMZW5ndGg7cmV0dXJuIER9cmV0dXJuIG4udTkuZ2V0KFcpPy5qUy5qKCl8fDB9OwpPRz1mdW5jdGlvbihuLFcpe249bi51OS5nZXQoVyk7aWYoQVUpe2lmKCFuPy5EbylyZXR1cm4hMTtXPW4uRm0uc2l6ZT4wO3JldHVybiBuLnBKLmxlbmd0aD4wfHxXfXJldHVybiEhbj8uRG8mJiEhbj8ualMuaigpfTsKYmVyPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi51OS5nZXQoVyksYj1ENngobixXKSx2PSFiJiYhIUQuYnl0ZXNSZWNlaXZlZDtpZihBVSl7aWYobi5LdT8uelcpe2Zvcih2YXIgayBvZiBELkZtLnZhbHVlcygpKWlmKCFrLmtuKXJldHVybiExO3JldHVybiB2fX1lbHNlIGlmKGs9bi5tNihXKSx2JiZuLlcmJmshPT12b2lkIDApcmV0dXJuIGs7cmV0dXJuKHZ8fEQuYnl0ZXNSZWNlaXZlZD09PWIpJiZELmJ5K0szKG4sVyk9PT1ELmJ5dGVzUmVjZWl2ZWR9OwpQcD1mdW5jdGlvbihuLFcsRCxiKXtXPXZqdyhuLFcsRCk7RD1ELmF1O2IuQXcucHVzaCguLi5XKTtpZihBVSliLmNCLmhhcyhEKXx8Yi5jQi5zZXQoRCxbXSksYi5jQi5nZXQoRCkucHVzaCguLi5XKTtlbHNlIGlmKGIuV28pZm9yKGxldCB2IG9mIFcpYi5Xby5Bdy5wdXNoKHYpO2Vsc2UgYi5Xbz1uZXcga0JoKFsuLi5iLkF3XSksbi5vWj8uSHgmJmcudShuLGIuV28pO3JldHVybiBXfTsKdmp3PWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uLkt1Py5KLmdldChXKTtpZighYilyZXR1cm5bXTtpZihELk9KKXJldHVybiBiLlkoMCxELmNsaXBJZCk/LkF3fHxbXTtpZihiLlcoKSl7dmFyIHY9RC5zdGFydE1zLGs9RC5kdXJhdGlvbk1zLGg9MUUzO24ub1o/Lk4mJkQudGltZVJhbmdlJiYodj1ELnRpbWVSYW5nZS5zdGFydFRpY2tzPz8tMSxrPUQudGltZVJhbmdlLmw4Pz8tMSxoPUQudGltZVJhbmdlLnRpbWVzY2FsZT8/LTEpO2lmKEQuenY8MHx8RC5QUDwwfHxrPDB8fHY8MHx8RC5lSDwwfHxoPDApcmV0dXJuIG1lKG4sVyksW107bj1XXyhELnp2LEQuZUgpO1c9RC5kR3x8MDtyZXR1cm5bbmV3IHFJKDMsYixuLCJtYWtlU2xpY2VJbmZvc01lZGlhQnl0ZXMiLEQuUFAtMSx2L2gsay9oLFcsbi5sZW5ndGgtVyx2b2lkIDAsRC52RCxELmNsaXBJZCxELkhmIT09dm9pZCAwKV19aWYoRC5QUDwwKXJldHVybiBtZShuLFcpLFtdO2lmKG4uS3U/LnpXKXJldHVybiBrPWIucmIsaD1rKmIuaW5mby5OcywKVz1ELmRHLG4ub1o/Lk4mJm4uVi50ZCgpIT09Ik9ORVNJRSImJkQudGltZVJhbmdlJiYhVyYmKHY9RC50aW1lUmFuZ2Uuc3RhcnRUaWNrcy9ELnRpbWVSYW5nZS50aW1lc2NhbGUpLFtuZXcgcUkoMyxiLHZvaWQgMCwibWFrZVNsaWNlSW5mb3NNZWRpYUJ5dGVzIixELlBQLHYsayxXLGgsITAsRC52RCxELmNsaXBJZCxELkhmIT09dm9pZCAwKV07aWYobi5vWj8uUXImJmIgaW5zdGFuY2VvZiBydCl7aWYoIWIuTigpKXJldHVybiBuLnU5LmdldChXKS5XcS5zZXQoRC5hdSxEKSxbXTtuPUQuUFAtMTt2PWIuaW5kZXguZ2V0U3RhcnRUaW1lKG4pO2s9Yi5pbmRleC5nZXREdXJhdGlvbihuKTtyZXR1cm5bbmV3IHFJKDMsYix2b2lkIDAsIm1ha2VTbGljZUluZm9zTWVkaWFCeXRlcyIsbix2LGssMCxrKmIuaW5mby5Ocyx2b2lkIDAsdm9pZCAwLHZvaWQgMCxELkhmIT09dm9pZCAwKV19cmV0dXJuW119OwpoNzI9ZnVuY3Rpb24obixXLEQpe24uS3U9VztuLm9aPUQ7Zm9yKGxldCBbYix2XW9mIG4udTkpe1c9YjtEPXY7Zm9yKGxldCBrIG9mIEQucDkpUHAobixXLGssRCl9fTsKeDZ3PWZ1bmN0aW9uKG4pe3JldHVybiBuLndEKCkmJiFuLkFkfTsKVUc9ZnVuY3Rpb24obil7aWYobi5VOCE9PXZvaWQgMCl7dmFyIFc9bi5wb2xpY3kual8oKTtpZihXKXt2YXIgRD1XLmV4cG9ydHMuU2FiclJlcXVlc3RDb29yZGluYXRvcl9nZXRFdmVudHNDb3VudChuLlU4KTtpZihEPjApe3ZhciBiPVcuZXhwb3J0cy5TYWJyUmVxdWVzdENvb3JkaW5hdG9yX2dldEJhdGNoZWRFdmVudHMobi5VOCk7aWYoYil7Yj1XLm1lbW9yeS5idWZmZXIoYixEKjE2KTtiPW5ldyBVaW50MzJBcnJheShiLmJ1ZmZlcixiLmJ5dGVPZmZzZXQsRCo0KTtsZXQgaz0wO2ZvcihsZXQgaD0wO2g8RDtoKyspe3ZhciB2PWJba107bGV0IHg9YltrKzFdLEw9YltrKzJdLGU9YltrKzNdO3Y9PT0wP2UhPT0wJiYodj14JiZMPjA/bmV3IFM1KFtXLm1lbW9yeS5idWZmZXIoeCxMKS5zbGljZSgpXSk6bmV3IFM1KFtuZXcgVWludDhBcnJheSgwKV0pLG4ueUQud20oZSx2KSk6dj09PTEmJm4ueGhyLkdwKCkmJlp4KG4pO2srPTR9fVcuZXhwb3J0cy5TYWJyUmVxdWVzdENvb3JkaW5hdG9yX2NsZWFyRXZlbnRzKG4uVTgpfX19fTsKWng9ZnVuY3Rpb24obil7bi5wb2xpY3kuWTAmJm4uUHEmJiFuLmdVP24uZ1U9ITA6bi5uZi5UQygpfTsKTCQyPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9LTEsYj0tMSx2PS0xO2lmKG4udFk/Lml0ZW1zKWZvcihsZXQgayBvZiBuLnRZLml0ZW1zKVc8ay5Ga3x8ay5GazxEfHwoRD1rLkZrLGI9ay5meix2PWsubWluUmVhZGFoZWFkTXMpO3JldHVybntxRTpELGZ6OmIsRFE6dn19Owp5Qj1mdW5jdGlvbihuKXtpZihuLlU4IT09dm9pZCAwKXJldHVybiBuLnBvbGljeS5qXygpLmV4cG9ydHMuU2FiclJlcXVlc3RDb29yZGluYXRvcl9nZXRNZWRpYUJ5dGVzKG4uVTgpfTsKZy5FRz1mdW5jdGlvbihuLFcsRCl7Zy52UChuLEQpfHxnLmdfKG4sVyxEKTtnLnZQKG4sInZpZGVvX3RvX2FkIil8fGcuZ18obixXLCJ2aWRlb190b19hZCIpO2cudlAobiwiYWRfdG9fdmlkZW8iKXx8Zy5nXyhuLFcsImFkX3RvX3ZpZGVvIik7Zy52UChuLCJhZF90b19hZCIpfHxnLmdfKG4sVywiYWRfdG9fYWQiKX07Cml1PWZ1bmN0aW9uKG4pe24uT3x8KG4uTz0oMCxnLlIpKCksZy5FRygibWJfcyIsbi5PLG4uelIpKX07CmU3Yj1mdW5jdGlvbihuKXtuLnR3fHwobi50dz0oMCxnLlIpKCksZy5FRygib3Zmc19ycCIsbi50dyxuLnpSKSl9OwpnajE9ZnVuY3Rpb24obil7bi5jSnx8KG4uY0o9KDAsZy5SKSgpLGcuRUcoIm9hZnNfcnAiLG4uY0osbi56UikpfTsKWFNoPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1XIGluc3RhbmNlb2YgdXUmJiFuLlgmJiFuLk4sdj0hbi5YJiZEPy5pbmZvLnZpZGVvO0Q9IW4uTiYmRD8uaW5mby5hdWRpbztXLnN0YXRlPT09Mz8oKHZ8fGIpJiZuLnRpY2soInZyciIpLChEfHxiKSYmbi50aWNrKCJhcnIiKSk6Vy5zdGF0ZT09PTQ/dj8obi5YPVcuV0QoKSxnLkR5KCksYlEoNCkpOkQmJihuLk49Vy5XRCgpKTpXIGluc3RhbmNlb2YgQUImJlcuUXkoKSYmdiYmKGcuRHkoKSxiUSg0KSl9OwpvcT1mdW5jdGlvbihuLFcsRCl7bi5KIT09VyYmKG4uVSgic2RhaSIse3NldHNzdDpXLG9sZDpuLkoscjpEfSksbi5KPVcpfTsKR0JiPWZ1bmN0aW9uKG4sVyxELGI9ITApe2lmKEQmJiFuLlRDLmhhcyhXLmokKSl7dmFyIHY9Vy5zdGFydFRpbWUsaz1bXTtmb3IodmFyIGg9MDtoPEQuTi5sZW5ndGg7aCsrKXt2YXIgeD1ELk5baF0sTD12O3Y9TCtELkpbaF07ay5wdXNoKHtzdGFydFRpbWU6TCxlbmRUaW1lOnYsYWRDcG46eH0pfW4uVEMuc2V0KFcuaiQsayl9bi5wb2xpY3kuZVYmJih2PW4uRCYmVy5qJD09PW4uRC5qJCsxLG4uRD1XLGs9bi5OJiZXLmokPT09bi5OLmokKzEsaz1uLk4mJnYmJmsmJm4uTi5mZi5ldmVudCE9PSJzdG9wIiYmbi5OLmZmLmV2ZW50IT09InByZWRpY3RTdGFydCIsaD1XLmZmfHxudWxsLHg9bi52aWRlb1RyYWNrLlBKLmluZGV4LngkKCkseD1XLmokPj14LEw9bi5LdS5pc01hbmlmZXN0bGVzcyxoPyhuLk4/LmZmLmV2ZW50PT09InByZWRpY3RTdGFydCImJm4uTi5qJDxXLmokJiZoLmV2ZW50PT09InN0b3AiJiZuLmxvYWRlci5oYW5kbGVFcnJvcigic3NkYWkubWlzc2luZ3N0YXJ0Y3VlZXZlbnQiLAp7bGFzdHByZWRpY3Q6bi5OPy5qJHx8MCxjc3E6Vy5qJH0sMCksbi5OPXtmZjpoLGokOlcuaiQsZks6ISFELGZZOmJ9LHg/bi5WaShoLFcuaiQpOkwmJih2P2s/bi5WaShoLFcuaiQpOmguZXZlbnQ9PT0iY29udGludWUifHxoLmV2ZW50PT09InN0b3AiP3EkMihuLFcpOm4uVmkoaCxXLmokKTpuLlZpKGgsVy5qJCkpKTooayYmcSQyKG4sVyksbi5KPT09NCYmb3Eobiw1LCJxZW5kIikpKX07CnJraj1mdW5jdGlvbihuLFcsRCxiLHYpe1chPT1uLk4/LmokfHxuLko9PT0xfHxifHxuLk4uZmYuZXZlbnQ9PT0icHJlZGljdFN0YXJ0Inx8bi5VKCJzZGFpIix7dW5kZWNldnQ6MSxzcTpXLG10OkQsZXZ0Om4uTi5mZi5ldmVudH0sITApO1c+bi5qJiYobi5qPU5hTixuLlY9TmFOKTtpZihuLk4mJm4uTi5qJD09PVcpe2lmKGI9bi5OLCFuLnBvbGljeS5YfHwhbi5wb2xpY3kuVTEpaWYodiYmYil7dmFyIGs9Yi5mZixoPXYuU0Qoayk7ay5ldmVudD09PSJwcmVkaWN0U3RhcnQiJiYobi5jSj1XKTtuLlUoInNkYWkiLHtvbnFldnQ6ay5ldmVudCxzcTpXLG10OkQsZ2FiOmgsY3N0Omsuc3RhcnRTZWNzLGN1ZWlkOm4ucG9saWN5LnlkJiYoaHx8ay5ldmVudD09PSJzdGFydCIpP2suaWRlbnRpZmllcjp2b2lkIDB9LCEwKTtoP2suZXZlbnQhPT0icHJlZGljdFN0YXJ0Ij8oay5ldmVudD09PSJzdGFydCImJm4uY0o9PT1XLTEmJm4uVSgic2RhaSIse2dhYm9uc3RhcnQ6V30pLGIuZks/b3EobiwKNCwiY3VlIik6KG4uaj1XLG4uVj1ELG4uVSgic2RhaSIse2pvaW5hZDpuLkosc2c6bi5qLHN0Om4uVi50b0ZpeGVkKDMpfSksbi5ZPURhdGUubm93KCksb3EobiwyLG4uSj09PTM/InN0YWZ0cHJlZCI6ImpvaW4iKSx0dmkodixiLmZmKSkpOihoPSQ2aChuKSxXKz1NYXRoLm1heChNYXRoLmNlaWwoLWsuTi9oKSwxKSxrPU1hdGguZmxvb3IoRC1rLk4vMUUzKSxuLnBvbGljeS5VMT9uLlc9azpuLlg9VyxuLlUoInNkYWkiLHtvbnByZWQ6RCxlc3RzcTpXLGVzdG10OmsudG9GaXhlZCgzKX0pLGcuZEMobi5sb2FkZXIsayxrLFcsaCksbi5ZPURhdGUubm93KCksb3EobiwzLCJwcmVkaWN0IiksdHZpKHYsYi5mZikpOm4uSj09PTE/bi5zVT8uR2coRCk/KGcuZEMobi5sb2FkZXIsRCxELFcpLG9xKG4sNCwic2syaGVhZCIpKTpvcShuLDUsIm5vZ2FiIik6ay5ldmVudD09PSJwcmVkaWN0U3RhcnQiJiYobi5wb2xpY3kuVTEmJm4uVz4wPyhEPU1hdGguZmxvb3IoRC1rLk4vMUUzKSxuLlchPT1EJiYKbi5VKCJzZGFpIix7dXBkYXRlU3Q6RCxvbGQ6bi5XfSksbi5XPUQpOm4uWD4wJiYoRD1XK01hdGgubWF4KE1hdGguY2VpbCgtay5OLyQ2aChuKSksMSksbi5YIT09RCYmKG4uVSgic2RhaSIse3VwZGF0ZVN0OkQsb2xkOm4uWH0pLG4uWD1EKSkpfWVsc2Ugbi5VKCJzZGFpIix7bnVsbGRlYzoxLHNxOlcsbXQ6RC50b0ZpeGVkKDMpLGV2dDpiPy5mZj8uZXZlbnR8fCJub25lIn0pfWVsc2Ugbi5KPT09MSYmb3Eobiw1LCJub2FkIil9Owp6ST1mdW5jdGlvbihuLFcsRCl7cmV0dXJuKEQ8MHx8RD09PW4uaikmJiFpc05hTihuLlYpP24uVjpXfTsKcSQyPWZ1bmN0aW9uKG4sVyl7aWYobi5OKXt2YXIgRD1uLk4uZmYuQ2YtKFcuc3RhcnRUaW1lK24uSy1uLk4uZmYuc3RhcnRTZWNzKTtEPD0wfHwoRD1uZXcgZy5sMyhuLk4uZmYuc3RhcnRTZWNzLShpc05hTihuLkspPzA6bi5LKSxELG4uTi5mZi5jb250ZXh0LG4uTi5mZi5pZGVudGlmaWVyLCJzdG9wIixuLk4uZmYuTitXLmR1cmF0aW9uKjFFMyksbi5VKCJjdWVwb2ludGRpc2NvbnRpbnVpdHkiLHtzZWdOdW06Vy5qJH0pLG4uVmkoRCxXLmokKSl9fTsKJDZoPWZ1bmN0aW9uKG4pe3N3aXRjaChuLnBvbGljeS5sYXRlbmN5Q2xhc3Mpe2Nhc2UgIkxPVyI6cmV0dXJuIDJFMztjYXNlICJVTFRSQUxPVyI6cmV0dXJuIDFFMztkZWZhdWx0OnJldHVybiA1RTN9fTsKbHU9ZnVuY3Rpb24obixXLEQsYj0hMSl7Yj9vcShuLDEsInNlZWsiKTpXPjAmJk1hdGguYWJzKFctRCk+PTUmJm4uSj09PTQmJm9xKG4sNSwic2sydCIpfTsKZy5UST1mdW5jdGlvbihuKXtyZXR1cm4gbi50aWxlQ29udGV4dD9gJHtuLlNTfTske24udGlsZUNvbnRleHR9YDpuLlNTfTsKalY9ZnVuY3Rpb24obil7aWYoIW4pcmV0dXJuInVua25vd24iO3N3aXRjaChuKXtjYXNlIDU6cmV0dXJuInByZWRpY3RTdGFydCI7Y2FzZSAxOnJldHVybiJzdGFydCI7Y2FzZSAyOnJldHVybiJjb250aW51ZSI7Y2FzZSAzOnJldHVybiJzdG9wIjtjYXNlIDY6cmV0dXJuInByZWZldGNoIjtkZWZhdWx0OnJldHVybiJ1bmtub3duIn19OwpzU3c9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgInByZWRpY3RTdGFydCI6cmV0dXJuIDU7Y2FzZSAic3RhcnQiOnJldHVybiAxO2Nhc2UgImNvbnRpbnVlIjpyZXR1cm4gMjtjYXNlICJzdG9wIjpyZXR1cm4gMztjYXNlICJwcmVmZXRjaCI6cmV0dXJuIDY7ZGVmYXVsdDpyZXR1cm4gMH19OwpON1M9ZnVuY3Rpb24obil7aWYoIW4pcmV0dXJuIDA7c3dpdGNoKG4pe2Nhc2UgMjpyZXR1cm4gMjtjYXNlIDE6cmV0dXJuIDE7ZGVmYXVsdDpyZXR1cm4gMH19OwpwU1M9ZnVuY3Rpb24obil7aWYoIW4pcmV0dXJuIDA7c3dpdGNoKG4pe2Nhc2UgNjpyZXR1cm4gNztjYXNlIDU6cmV0dXJuIDE7Y2FzZSAyOnJldHVybiAyO2Nhc2UgMTE6cmV0dXJuIDM7Y2FzZSAzOnJldHVybiA0O2Nhc2UgMTpyZXR1cm4gNTtjYXNlIDEyOnJldHVybiA2O2RlZmF1bHQ6cmV0dXJuIDB9fTsKZy5DMz1mdW5jdGlvbihuKXtyZXR1cm4gbj9uLnRpbGVDb250ZXh0P2Ake24uaWRlbnRpZmllcn07JHtuLnRpbGVDb250ZXh0fWA6bi5pZGVudGlmaWVyOiIifTsKZy5CcD1mdW5jdGlvbihuKXtzd2l0Y2gobil7Y2FzZSAwOnJldHVybiJ1bmtub3duIjtjYXNlIDE6cmV0dXJuInRpbWVvdXQiO2Nhc2UgMjpyZXR1cm4icmF0ZWNvbnRyb2wiO2Nhc2UgMTE6cmV0dXJuInJhdGVjb250cm9sX2NsaWVudCI7Y2FzZSAzOnJldHVybiJzdmVyciI7Y2FzZSA0OnJldHVybiJkZWxldGVkIjtjYXNlIDU6cmV0dXJuIndhaXRpbmciO2Nhc2UgNjpyZXR1cm4icmVhZHkiO2Nhc2UgNzpyZXR1cm4ic3NkaXNhYmxlZCI7Y2FzZSA5OnJldHVybiJzc2Rpc2FibGVkX3VzdHJlYW1lciI7Y2FzZSAxMDpyZXR1cm4ic3NkaXNhYmxlZF9ub19jb25maWciO2Nhc2UgMTI6cmV0dXJuIm5vZ2FiY29uZmlnIjtjYXNlIDg6cmV0dXJuImluYWN0aXZlIjtjYXNlIDEzOnJldHVybiJjYWNoZW1pc3MiO2RlZmF1bHQ6cmV0dXJuInVua25vd24ifX07CkZ1PWZ1bmN0aW9uKG4pe3ZhciBXPS0obi5mZj8uVHl8fDApO24udGltZVJhbmdlJiYoVys9KG4udGltZVJhbmdlLnN0YXJ0VGlja3N8fDApLyhuLnRpbWVSYW5nZS50aW1lc2NhbGV8fDEpKTtyZXR1cm4gbmV3IGcubDMoVyxuLmZmPy5NS3x8MCxuLmZmPy51VHx8IiIsbi5mZj8uaWRlbnRpZmllcnx8IiIsalYobi5mZj8uZXZlbnQpLChuLmZmPy5UeXx8MCkqMUUzLG4udGlsZUNvbnRleHQpfTsKZy5ZJEM9ZnVuY3Rpb24obixXKXt2YXIgRD0iIixiPVtdO2ZvcihsZXQgW3Ysa11vZiBuLk4uZW50cmllcygpKXtsZXQgaD12LHg9azt4Py5zdGFydFRpbWVTZWNzPD1XJiZXPD14Py5zdGFydFRpbWVTZWNzK3g/LkNmJiZiLnB1c2goaCk7RCs9YCR7aH06JHt4Py5zdGFydFRpbWVTZWNzLnRvRml4ZWQoMyl9OiR7eD8uQ2YudG9GaXhlZCgzKX07YH1iLmxlbmd0aD09PTAmJihXPXtub19jaWQ6MSxtdDpXLnRvRml4ZWQoMyksYWRDb25maWdNYXA6RC5zdWJzdHJpbmcoMCwxMDI0KX0sbi5wb2xpY3kuRlImJm4uVSgiY2xzZGFpIixXKSk7cmV0dXJuIGJ9OwpIZVU9ZnVuY3Rpb24obixXLEQ9ITEpe0QmJihuLlY9ITApOysrbi5qO0Q9NkU0KjIqKm4uajtEPSgwLGcuUikoKStEO24uVy5zZXQoVy5pbmZvLmlkLEQpfTsKd0M9ZnVuY3Rpb24obil7Zm9yKGxldCBbVyxEXW9mIG4uVy5lbnRyaWVzKCkpe2xldCBiPVc7RDwoMCxnLlIpKCkmJm4uVy5kZWxldGUoYil9cmV0dXJuIG4uV307ClJxPWZ1bmN0aW9uKG4sVyl7bi5OPVc7dmFyIEQ9bi5LLnZpZGVvSW5mb3M7aWYoIW4uTi5pc0xvY2tlZCgpKXtsZXQgaz0oMCxnLlIpKCk7RD1nLkVNKEQsZnVuY3Rpb24oaCl7aWYoaC5Ocz50aGlzLnBvbGljeS5OcylyZXR1cm4hMTt2YXIgeD10aGlzLkt1Lk5baC5pZF07cmV0dXJuIHdDKHRoaXMuaikuZ2V0KGguaWQpPmt8fHguWGIuSj40fHx4LkZGPjQ/ITE6dGhpcy50dy5oYXMoK2guaXRhZyk/ITE6ITB9LG4pOwpuLmoubGwoKSYmKEQ9Zy5FTShELGg9PmgudmlkZW8ud2lkdGg8PTg1NCYmaC52aWRlby5oZWlnaHQ8PTQ4MCkpfUQubGVuZ3RofHwoRD1uLksudmlkZW9JbmZvcyk7CnZhciBiPUQ7bi5wb2xpY3kuUm8mJihiPWZRaChuLGIsVykpO2I9Zy5FTShiLFcuWCxXKTtpZihuLk4uaXNMb2NrZWQoKSYmbi5qLk4pe3ZhciB2PWcubF8oRCxrPT5rLmlkPT09bi5qLk4pOwp2P2I9W3ZdOm4uRGUoIiIpfW4ucG9saWN5LlJvfHwoYj1mUWgobixiLFcpKTtiLmxlbmd0aHx8KGI9W0RbMF1dKTtiLnNvcnQoKGssaCk9Pk1xKG4sayktTXEobixoKSk7CmZvcihXPTE7VzxiLmxlbmd0aDtXKyspRD1iW1ctMV0sdj1iW1ddLEQudmlkZW8ud2lkdGg+di52aWRlby53aWR0aD8oZy5CTShiLFcpLFctLSk6TXEobixEKSpuLnBvbGljeS5LPk1xKG4sdikmJihnLkJNKGIsVy0xKSxXLS0pO1c9YltiLmxlbmd0aC0xXTtuLkR0PSEhbi5XJiYhIW4uVy5pbmZvJiZuLlcuaW5mby5JQiE9PVcuSUI7bi5YPWI7bi5lJC5jbGVhcigpO0Q9ITE7Zm9yKHY9MDt2PGIubGVuZ3RoO3YrKylEP24uZSQuYWRkKGJbdl0uaXRhZyk6Ylt2XS52aWRlby5xdWFsaXR5T3JkaW5hbD49MTA4MCYmKEQ9ITApO0prQyhuLnBvbGljeSxXLG4uS3UuelcpfTsKSVExPWZ1bmN0aW9uKG4pe3ZhciBXPW4ucG9saWN5LmNKLEQ9Tlcobi5JZykvVy1NcShuLG4uSi5pbmZvKTtXPWcuVDQobi5YLGZ1bmN0aW9uKGIpe3JldHVybiBNcSh0aGlzLGIpPER9LG4pOwpXPDAmJihXPTApO24udmlkZW9JbmRleD1XO24ubmV4dFZpZGVvPW4uS3UuTltuLlhbV10uaWRdfTsKUyRoPWZ1bmN0aW9uKG4pe24uUyQ/bi5TJD0hMTpuLlk9KDAsZy5SKSgpO24uRD0hMTtuLlZRPSExO3JldHVybiBuZXcgUUIobi5WLG4uVyxuLk4ucmVhc29uKX07Cm02dz1mdW5jdGlvbihuLFcsRCl7UnEobixXKTt2YXIgYj1uLmo7Vz1iLlguSjtEPWJZKFcse2dPOmIucG9saWN5LmdPLGo5OmIucG9saWN5Lmo5LGxhbmd1YWdlSWQ6RH0pO24uSj1uLkt1Lk5bKEQubGVuZ3RoPjA/RFswXTpXWzBdKS5pZF07VkIobik7bi5WPW4uSjtJUTEobik7bi5UQy5sZW5ndGgmJihuLm5leHRWaWRlbz1Ba00obixuLm5leHRWaWRlbyxuLksudmlkZW9JbmZvcyksbi5KPUFrTShuLG4uSixuLksuSikpO24uVz1uLm5leHRWaWRlbztuLlY9bi5KO3JldHVybiBTJGgobil9OwpLJGo9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5OLmVxdWFscyhXKSYmKCFuLmouTnx8IW4uTi5pc0xvY2tlZCgpfHxuLm5leHRWaWRlbz8uaW5mby5pZD09PW4uai5OKX07ClZCPWZ1bmN0aW9uKG4pe2lmKCFuLkp8fCFuLnBvbGljeS5KJiYhbi5KLmluZm8ua1ope3ZhciBXPW4uSy5KO24uSiYmKFc9YlkoVyx7bGFuZ3VhZ2VJZDpuLkouaW5mby5rWj8uaWQsZ086bi5wb2xpY3kuZ08sajk6bi5wb2xpY3kuajl9KSxXLmxlbmd0aHx8KFc9bi5LLkopKTtuLko9bi5LdS5OW1dbMF0uaWRdO2lmKFcubGVuZ3RoPjEmJiFuLnBvbGljeS5IaSl7aWYoIW4ucG9saWN5LnRHKXt2YXIgRD1nLmxfKFcsYj0+Yi5hdWRpby5hdWRpb1F1YWxpdHkhPT0iQVVESU9fUVVBTElUWV9ISUdIIik7CkQmJihuLko9bi5LdS5OW0QuaWRdKX1EPSExO2lmKEQ9bi5wb2xpY3kuWSQ/ITA6bi5OLmlzTG9ja2VkKCk/bi5OLk48MjQwOk9laShuLG4uSikpbi5KPW4uS3UuTltnLlVNKFcpLmlkXX19fTsKY3A9ZnVuY3Rpb24obil7aWYoIW4ubmV4dFZpZGVvfHwhbi5wb2xpY3kuSilpZihuLk4uaXNMb2NrZWQoKSluLm5leHRWaWRlbz1uLk4uTjw9MzYwP24uS3UuTltuLlhbMF0uaWRdOm4uS3UuTltnLlVNKG4uWCkuaWRdO2Vsc2V7Zm9yKHZhciBXPU1hdGgubWluKG4udmlkZW9JbmRleCxuLlgubGVuZ3RoLTEpLEQ9Tlcobi5JZyksYj1NcShuLG4uSi5pbmZvKSx2PUQvbi5wb2xpY3kuY0otYjtXPjAmJiEoTXEobixuLlhbV10pPD12KTtXLS0pO2ZvcihEPUQvbi5wb2xpY3kuSy1iO1c8bi5YLmxlbmd0aC0xJiYhKE1xKG4sbi5YW1crMV0pPj1EKTtXKyspO24ubmV4dFZpZGVvPW4uS3UuTltuLlhbV10uaWRdO24udmlkZW9JbmRleD1XfX07ClBDMj1mdW5jdGlvbihuLFcpe2lmKFcuUEouaW5mby52aWRlbyYmVy5hWil7bGV0IEQ9KFcuTitXLkopL1cuVyxiPVcuUEouaW5mby5OcztEJiZiJiYobi5udS5JSSgxLEQvYiksbi5wb2xpY3kuVyYmRC9iPjEuNSYmbi5sb2FkZXIuVSgib3ZlcnNob290Iix7c3E6Vy5qJCxicjpELG1heDpifSkpfX07CmFxPWZ1bmN0aW9uKG4sVyxEPSExKXtIZVUobi5qLFcsRCk7bi5ZPS0xO1JxKG4sbi5OKX07Clpldz1mdW5jdGlvbihuLFcpe3JldHVybiBuZXcgUUIobi5WLG4uVyxXfHxuLk4ucmVhc29uKX07Ck1xPWZ1bmN0aW9uKG4sVyl7aWYoIW4uYmRbVy5pZF0pe3ZhciBEPW4uS3UuTltXLmlkXS5pbmRleC5YZChuLmNKLDE1KTtEPVcuWG4mJm4uVyYmbi5XLmluZGV4LmlzTG9hZGVkKCk/RHx8Vy5YbjpEfHxXLk5zO24uYmRbVy5pZF09RH1EPW4uYmRbVy5pZF07bi5lJC5oYXMoVy5pdGFnKSYmKEQqPTEuNSk7cmV0dXJuIEQqPU1hdGgubWF4KDEsbi5udS5MZygpfHwwKX07ClU2Qz1mdW5jdGlvbihuLFcpe3ZhciBEPXt9O2ZvcihsZXQgYiBvZiBXKXtpZighYnx8IWIudmlkZW8pY29udGludWU7Vz1iLnZpZGVvLnF1YWxpdHlPcmRpbmFsO2xldCB2PURbV10saz12JiZ2Lk1XKCkmJnYudmlkZW8ucXVhbGl0eU9yZGluYWw+bi5wb2xpY3kublMsaD1XPD1uLnBvbGljeS5uUz9iLk1XKCk6Yi5YKCk7aWYoIXZ8fGt8fGgpRFtXXT1ifXJldHVybiBEfTsKZlFoPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1ELnJlYXNvbj09PSJtInx8RC5yZWFzb249PT0icyI7bi5wb2xpY3kuUnEmJm5yJiZnLkduJiYoIWJ8fEQuTjwxMDgwKSYmKFc9Vy5maWx0ZXIodj0+di52aWRlbyYmKCF2Lmp8fHYuai5wb3dlckVmZmljaWVudCkpKTsKaWYoVy5sZW5ndGg+MClpZihWVCgpKXtsZXQgdj1VNkMobixXKTtXPVcuZmlsdGVyKGs9PiEhayYmISFrLnZpZGVvJiZrLklCPT09dltrLnZpZGVvLnF1YWxpdHlPcmRpbmFsXS5JQil9ZWxzZXtsZXQgdj1XWzBdPy52aWRlbz8ucXVhbGl0eU9yZGluYWw7CmlmKHYpe0Q9Vy5maWx0ZXIoaD0+ISFoJiYhIWgudmlkZW8mJmgudmlkZW8ucXVhbGl0eU9yZGluYWw9PT12KTsKbGV0IGs9VTZDKG4sRClbdl0uSUI7Vz1XLmZpbHRlcihoPT4hIWgmJiEhaC52aWRlbyYmaC5JQj09PWspfX1yZXR1cm4gV307Ck9laT1mdW5jdGlvbihuLFcpe2Zvcih2YXIgRD0wO0QrMTxuLlgubGVuZ3RoJiZuLlhbRF0udmlkZW8ucXVhbGl0eT09PSJ0aW55IjspRCsrO3ZhciBiPU5XKG4uSWcpL24ucG9saWN5Lks7cmV0dXJuIE1xKG4sVy5pbmZvKStNcShuLG4uWFtEXSk+Yn07CkFrTT1mdW5jdGlvbihuLFcsRCl7aWYoVy5pbmZvLklCPT09ImYifHxuLlRDLmluY2x1ZGVzKGN3KFcsbi5LdS56VykpKXJldHVybiBXO2ZvcihsZXQgYj0wO2I8RC5sZW5ndGg7YisrKXtsZXQgdj1uLkt1Lk5bRFtiXS5pZF07aWYoIW4uVEMuaW5jbHVkZXMoY3codixuLkt1LnpXKSkpY29udGludWU7bGV0IGs9Vy5pbmZvLklCLGg9di5pbmZvLklCO2lmKGs9PT1ofHxWVCgpKXtpZihXLmluZm8udmlkZW8/Vy5pbmZvLkohPT12LmluZm8uSjpXLmluZm8ua1o/LmlkIT09di5pbmZvLmtaPy5pZHx8YXkoVy5pbmZvKSE9PWF5KHYuaW5mbyl8fFZFKFcuaW5mbykhPT1WRSh2LmluZm8pKXJldHVybiBXNihuLHttaXNtYXRjaDoieHRhZyIsZjpXLmluZm8uaWQsdDp2LmluZm8uaWR9KSxXO1c2KG4se2Y6Vy5pbmZvLml0YWcsdDp2LmluZm8uaXRhZ30pO24uUyQ9ITA7cmV0dXJuIHZ9VzYobix7bWlzbWF0Y2g6ImVmZmljaWVudCIsZmM6ayx0YzpofSl9VzYobix7bWlzbWF0Y2g6InVuc2VsZWN0YWJsZSIsCmZtdHM6bi5UQy5qb2luKCIuIil9KTtyZXR1cm4gV307Clc2PWZ1bmN0aW9uKG4sVyl7bi5wb2xpY3kuRUQ/bi5sb2FkZXIuaGFuZGxlRXJyb3IoIm9uZXNpZS5mbXQubWlzbWF0Y2giLFcsMCk6bi5sb2FkZXIuVSgib21iaWZhIixXKX07Cnlrcj1mdW5jdGlvbihuLFcpe249cWMobi5LdS5OLEQ9PkQuaW5mby5pdGFnPT09Vyk7CmlmKCFuKXRocm93IEVycm9yKCJJdGFnICIrVysiIGZyb20gc2VydmVyIG5vdCBrbm93bi4iKTtyZXR1cm4gbn07CkVqWj1mdW5jdGlvbihuKXt2YXIgVz1bXTtpZihuLk4ucmVhc29uPT09Im0ifHxuLk4ucmVhc29uPT09InMiKXJldHVybiBXO2lmKEl0aShuLkt1KSl7Zm9yKGxldCBEPU1hdGgubWF4KDAsbi52aWRlb0luZGV4LTIpO0Q8bi52aWRlb0luZGV4JiZEPG4uWC5sZW5ndGg7RCsrKVcucHVzaChuLlhbRF0uaXRhZyk7Vy5yZXZlcnNlKCl9cmV0dXJuIFd9OwppZWk9ZnVuY3Rpb24obixXKXtuLkRrKCJpc21wX3AiKTtuLko9V307CnU5VT1mdW5jdGlvbihuKXtuLk4mJihuLk4uZGlzcG9zZSgpLG4uRGsoImlzbXBfZCIpKX07Cm9qdz1mdW5jdGlvbih7dEk6bj0hMSxzSjpXPSExLGU0OkQ9ITF9PXt9KXtyZXR1cm4gbj9EPzM6MjpXPy0xOjF9OwpEZD1mdW5jdGlvbihuLFcsRCl7dmFyIGI9W10sdj1uLnRyYWNrLlFFO2lmKHYpe3Y9di5aRigpO2Zvcih2YXIgaz0wO2s8di5sZW5ndGg7aysrKWIucHVzaChNYXRoLnJvdW5kKHYuc3RhcnQoaykqMUUzKSksYi5wdXNoKE1hdGgucm91bmQodi5lbmQoaykqMUUzKSl9dj0xO2s9Yi5sZW5ndGg7aWYoaz09PW4uYnVmZmVyZWQubGVuZ3RoKXtmb3IodmFyIGg9MDtoPD1rJiZiW2hdPT09bi5idWZmZXJlZFtoXTtoKyspO2g+az92PTA6YltoXT5uLmJ1ZmZlcmVkW2hdJiYoaD09PWstMT92PTI6aD09PWstMiYmYltoKzFdPm4uYnVmZmVyZWRbaCsxXSYmKHY9MykpfW4uTi5hZGQoVzw8M3woRCYmNCl8dik7Vz1NYXRoLmNlaWwobi50cmFjay5sNSgpKjFFMyk7bi5OLmFkZChXLW4uaik7bi5qPVc7aWYodj09PTEpZm9yKG4uTi5hZGQoayksVz0wLGg9MDtoPGs7aCsrKW4uTi5hZGQoYltoXS1XKSxXPWJbaF07dj09PTMmJm4uTi5hZGQoYltrLTJdLW4uYnVmZmVyZWRbay0yXSk7dj49MiYmbi5OLmFkZChiW2stCjFdLW4uYnVmZmVyZWRbay0xXSk7RCYmbi5OLmFkZChEKTtuLmJ1ZmZlcmVkPWJ9OwpUN2I9ZnVuY3Rpb24obixXLEQsYix2KXtpZighYi5hWilyZXR1cm4gRC5sZW5ndGg9PT0wP0QucHVzaChiLmNsb25lKCkpOihuPShXPUQucG9wKCkpP2Q2cihuLFcsYik6bnVsbCk/RC5wdXNoKG4pOkQucHVzaChiLmNsb25lKCkpLHY7KEQ9KEQ9RC5wb3AoKSk/ZDZyKG4sRCxiKTpudWxsKXx8KEQ9Yik7aWYoRC5OKXJldHVybiBuLmxvZ2dlciYmbi5sb2dnZXIoe2luY29tcGxldGVTZWdtZW50OkQuZ2EoKX0pLHY7dmFyIHtmb3JtYXRJZDprLGokOmgsc3RhcnRUaW1lTXM6eCxjbGlwSWQ6TCxyOTplfT17Zm9ybWF0SWQ6Zy5WZihELlBKLmluZm8sbi5LdS56VyksaiQ6RC5qJCtuLlgsc3RhcnRUaW1lTXM6RC5zZWdtZW50U3RhcnRUaW1lKjFFMyxjbGlwSWQ6RC5jbGlwSWQscjk6RC5XKjFFM307Yj17Y2xpcElkOkwsZm9ybWF0SWQ6ayxzdGFydFRpbWVNczp4LGR1cmF0aW9uTXM6ZSxBQzpoLGk5Omh9O3Y9ejdVKFcsYi5zdGFydFRpbWVNcyk7RD12Pj0wP1dbdl06bnVsbDt2YXIgRzsKaWYoRz1EKXtHPWI7dmFyIHI9dixOPUQuc3RhcnRUaW1lTXMrRC5kdXJhdGlvbk1zLEg9Ry5zdGFydFRpbWVNcytHLmR1cmF0aW9uTXM7aWYoRy5zdGFydFRpbWVNcy1OPm4uTilHPSExO2Vsc2UgaWYobFFoKG4sRC5mb3JtYXRJZCxHLmZvcm1hdElkKSlELmR1cmF0aW9uTXM9TWF0aC5tYXgoTixIKS1ELnN0YXJ0VGltZU1zLEQuaTk9TWF0aC5tYXgoRC5pOSxHLmk5KSxHPSEwO2Vsc2UgaWYoTWF0aC5hYnMoRC5zdGFydFRpbWVNcy1HLnN0YXJ0VGltZU1zKTw9bi5OKWlmKEQuZHVyYXRpb25Ncz5HLmR1cmF0aW9uTXMrbi5OKXtyPUQuZm9ybWF0SWQ7dmFyIEE9RC5BQyx5PUQuaTk7RC5mb3JtYXRJZD1HLmZvcm1hdElkO0QuZHVyYXRpb25Ncz1HLmR1cmF0aW9uTXM7RC5BQz1HLkFDO0QuaTk9Ry5pOTtHLmZvcm1hdElkPXI7Ry5zdGFydFRpbWVNcz1IO0cuZHVyYXRpb25Ncz1OLUg7Ry5BQz1BO0cuaTk9eTtHPSExfWVsc2UgRC5mb3JtYXRJZD1HLmZvcm1hdElkLEc9ITA7ZWxzZSBOPgpHLnN0YXJ0VGltZU1zJiYoTj5IJiYoVy5zcGxpY2UocisxLDAse2Zvcm1hdElkOkQuZm9ybWF0SWQsc3RhcnRUaW1lTXM6SCxkdXJhdGlvbk1zOk4tSCxBQzpHLmk5KzEsaTk6RC5pOX0pLG4ubG9nZ2VyJiZuLmxvZ2dlcih7c3BsaXRPbGRTdGFydDpELnN0YXJ0VGltZU1zPy50b0ZpeGVkKDMpLHNwbGl0T2xkRW5kOk4/LnRvRml4ZWQoMyksc3BsaXROZXdTdGFydDpHLnN0YXJ0VGltZU1zPy50b0ZpeGVkKDMpLHNwbGl0TmV3RW5kOkg/LnRvRml4ZWQoMyl9KSksRC5kdXJhdGlvbk1zPUcuc3RhcnRUaW1lTXMtRC5zdGFydFRpbWVNcyxELmk5PUcuQUMtMSksRz0hMX1HP2I9RDoodis9MSxXLnNwbGljZSh2LDAsYikpO0Q9MDtmb3IoRz12KzE7RzxXLmxlbmd0aDtHKyspe049bjtIPVdbR107cj1iO0E9SC5zdGFydFRpbWVNcytILmR1cmF0aW9uTXM7eT1yLnN0YXJ0VGltZU1zK3IuZHVyYXRpb25Nczt5Pj1BK04uTj9OPSEwOnkrTi5OPEguc3RhcnRUaW1lTXM/Tj0hMTpsUWgoTixILmZvcm1hdElkLApyLmZvcm1hdElkKT8oci5kdXJhdGlvbk1zPUEtci5zdGFydFRpbWVNcyxyLmk5PUguaTksTj0hMCk6KEguc3RhcnRUaW1lTXM9eSxILkFDPXIuaTkrMSxOPSExKTtpZighTilicmVhaztEKyt9RCYmVy5zcGxpY2UodisxLEQpO3JldHVybiB2fTsKZDZyPWZ1bmN0aW9uKG4sVyxEKXtpZighYlQoVyxEKXx8Vy5hWilyZXR1cm4gbnVsbDtQXyhXLEQsbi5wb2xpY3kuZUspO3JldHVybiBXfTsKejdVPWZ1bmN0aW9uKG4sVyl7bj1nLlc0KG4se3N0YXJ0VGltZU1zOld9LChELGIpPT5ELnN0YXJ0VGltZU1zLWIuc3RhcnRUaW1lTXMpOwpyZXR1cm4gbj49MD9uOi1uLTJ9OwpqU1o9ZnVuY3Rpb24obixXLEQpe2lmKG4ubG9nZ2VyKXt2YXIgYj1bXTtmb3IobGV0IHY9MDt2PFcubGVuZ3RoO3YrKyl7bGV0IGs9V1t2XTtrLkVqPy5zdGFydFRpY2tzJiZiLnB1c2goYGkuJHtrLmZvcm1hdElkPy5pdGFnfV9zdC4ke2suc3RhcnRUaW1lTXN9X3Bzc3QuJHtrLkVqPy5zdGFydFRpY2tzfV9wc2QuJHtrLkVqPy5sOH1gKTtiLnB1c2goYGkuJHtrLmZvcm1hdElkPy5pdGFnfV9zdC4ke2suc3RhcnRUaW1lTXN9X2UuJHtrLnN0YXJ0VGltZU1zK2suZHVyYXRpb25Nc31fZC4ke2suZHVyYXRpb25Nc31fc24uJHtrLkFDfV9lbi4ke2suaTl9YCl9bi5sb2dnZXIoe3A6YCR7RH1gLGJyOmIuam9pbigiOyIpfSl9fTsKYlM9ZnVuY3Rpb24obixXLEQ9ITEpe2lmKG4uUUUpe3ZhciBiPW4uUUUuWkYoKTtpZihiLmxlbmd0aCE9PTApe2lmKG4uVyYmVyl7dmFyIHY9bi5XLGs9di5YOyFCUihiLGspJiZ2Lks+MCYmKDAsZy5SKSgpLW4uSzw1RTMmJihuLmxvZ2dlciYmbi5sb2dnZXIoe2RlbmQ6di5nYSgpfSksYj1qRyhiLGssaysuMDEpKX12PVtdO2Zvcih2YXIgaD1rPTA7azxiLmxlbmd0aCYmaDxuLmVXLmxlbmd0aDspe3ZhciB4PWIuc3RhcnQoayk7bGV0IE49Yi5lbmQoayk7dmFyIEw9bi5lV1toXS5zdGFydFRpbWVNcy8xRTM7bGV0IEg9KG4uZVdbaF0uc3RhcnRUaW1lTXMrbi5lV1toXS5kdXJhdGlvbk1zKS8xRTM7aWYoTDw9TiYmSD49eCl7bGV0IEE9ey4uLm4uZVdbaF19O3ZhciBlPW4uS3UuSi5nZXQoTWsobi5lV1toXS5mb3JtYXRJZCkpLEc9TWF0aC5tYXgoTCx4KTt4PWUuaW5kZXguUjMoRytuLk4vMUUzKTtMPWUuaW5kZXguZ2V0U3RhcnRUaW1lKHgpO3ZhciByPXgrICsoTWF0aC5hYnMoTC1HKT4Kbi5OLzFFMyk7Rz1yK24uWDtyPWUuaW5kZXguZ2V0U3RhcnRUaW1lKHIpKjFFMztoIT09bi5KfHxXPyhBLkFDPUcsQS5zdGFydFRpbWVNcz1yKToobi5sb2dnZXImJm4ubG9nZ2VyKHtwRXZpY3Q6IjEiLG9nOkEuc3RhcnRUaW1lTXMsYWRqOkwqMUUzfSksQS5BQz14K24uWCxBLnN0YXJ0VGltZU1zPUwqMUUzKTt4PW4uVz8uV3x8MTE7IUQmJmg9PT1uLkomJk48SCYmSC1OPD14KjEuMDEmJiEobi5wb2xpY3kuU3cmJm4uUUUmJm4uUUUueXUoKSkmJihOPUgpO3g9TWF0aC5taW4oSCxOKTtMPWUuaW5kZXguUjMoeC1uLk4vMUUzKTtHPWUuaW5kZXguakUoTCk7TC09KyhNYXRoLmFicyhHLXgpPm4uTi8xRTMpO3g9TCtuLlg7ZT1lLmluZGV4LmpFKEwpKjFFMztBLmk5PXg7QS5kdXJhdGlvbk1zPWUtQS5zdGFydFRpbWVNcztBLkFDPD1BLmk5JiZ2LnB1c2goQSl9SDxOP2grPTE6ays9MX1uLmVXPXZ9fX07CkNDTT1mdW5jdGlvbihuKXt2YXIgVz1bXSxEPW4uTTcubWFwKGs9PmsuY2xvbmUoKSk7Cm4uZVcuZm9yRWFjaChrPT57Vy5wdXNoKHsuLi5rfSl9KTsKdmFyIGI9bi5ELmYzKCksdj1uLko7Zm9yKGxldCBrIG9mIGIpdj1UN2IobixXLEQsayx2KTtXLmZvckVhY2goaz0+e2suc3RhcnRUaW1lTXMmJihrLnN0YXJ0VGltZU1zKz1uLnRpbWVzdGFtcE9mZnNldCoxRTMpfSk7CnJldHVybntlVzpXLE03OkR9fTsKbFFoPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gVy5pdGFnIT09RC5pdGFnfHxXLnh0YWdzIT09RC54dGFncz8hMTpuLkt1LnpXfHxXLmxtdD09PUQubG10fTsKdjY9ZnVuY3Rpb24obil7cmV0dXJue2Rvd25sb2FkZWRFbmRUaW1lOk1hdGgucm91bmQobi5kSD9uLmRILmo6MCksbWF4S25vd25FbmRUaW1lOk1hdGgucm91bmQobi5OLmluZGV4LmJRKCkpLGF2ZXJhZ2VCeXRlUmF0ZTpNYXRoLnJvdW5kKG4uTi5pbmZvLlhuKX19Owp4Qz1mdW5jdGlvbihuLFc9ITEpeyFXfHxuLmluZGV4UmFuZ2UmJm4uaW5pdFJhbmdlJiZuLmRIfHxrQyhuLG5ldyBoMCgiV29mZmxlOiBFeHBlY3QgaXNGaW5hbCB0byBhbHdheXMgaGF2ZSBpbmRleFJhbmdlIGFuZCBpbml0UmFuZ2UgYW5kIGxhc3RTbGljZSIpKTtXPXtsbXQ6bi5OLmluZm8ubGFzdE1vZGlmaWVkLGRvY2lkOm4ucG9saWN5LkosZm10aWQ6bi5OLmluZm8uaWQsdHlwZTpuLk4uaW5mby5taW1lVHlwZS5zcGxpdCgiOyIpWzBdLGNzejpuLmNodW5rU2l6ZSxjbGVuOm4uVypuLmNodW5rU2l6ZStuLkp9O24uY3J5cHRvJiYoVy5jaz1uLlksVy5jaXY9bi5LKTtXPSJsb2NhbDovL2xvY2FsaG9zdC92aWRlb3BsYXliYWNrPyIrZy5FdChXKTtXPXtpdGFnOituLk4uaW5mby5pdGFnLG1pbWVUeXBlOm4uTi5pbmZvLm1pbWVUeXBlLGJpdHJhdGU6bi5OLmluZm8uTnMqOCxsYXN0TW9kaWZpZWQ6U3RyaW5nKG4uTi5pbmZvLmxhc3RNb2RpZmllZCksaW5pdFJhbmdlOm4uaW5pdFJhbmdlPy5OKCksCmluZGV4UmFuZ2U6bi5pbmRleFJhbmdlPy5OKCksdXJsOld9O3ZhciBEPW4uTi5pbmZvLko7RCYmKFcueHRhZ3M9RCk7aWYoRD1uLk4uaW5mby52aWRlbylpZihXLnF1YWxpdHk9RC5xdWFsaXR5LFcucXVhbGl0eUxhYmVsPUQucXVhbGl0eUxhYmVsLFcud2lkdGg9RC53aWR0aCxXLmhlaWdodD1ELmhlaWdodCxEPUQuZnBzKVcuZnBzPUQ7aWYobj1uLk4uaW5mby5hdWRpbyl7aWYoRD1uLnNhbXBsZVJhdGUpVy5hdWRpb1NhbXBsZVJhdGU9U3RyaW5nKEQpO2lmKG49bi5udW1DaGFubmVscylXLmF1ZGlvQ2hhbm5lbHM9bn1yZXR1cm4gV307CkxyPWZ1bmN0aW9uKG4sVyxEPSExKXtXLnRoZW4oYj0+e24uTy5kZWxldGUoVyk7KER8fGI9PT00KSYmbi5WLnJlc29sdmUoYil9LGI9PntuLlYucmVqZWN0KGIpfSl9OwplcT1mdW5jdGlvbihuKXtyZXR1cm4hIW4uZEgmJm4uZEguVigpfTsKa0M9ZnVuY3Rpb24obixXKXtlJChuLnBvbGljeS5KKSE9PTQmJihnNihuLnBvbGljeS5KLDQpLGcuR3EoVyksbi5WLnJlamVjdChuZXcgaDAoVy5tZXNzYWdlKSkpfTsKQjdiPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9MCxiPXRSKFcuSik7aWYobi5XPG4uWCl7RD1uLlgqbi5jaHVua1NpemUtKChXLmluZm8ucmFuZ2U/LnN0YXJ0fHwwKStXLmluZm8uTik7aWYoRD49Yi5sZW5ndGgpcmV0dXJuO2lmKEQ8MCl0aHJvdyBFcnJvcigiTWlzc2luZyBkYXRhIik7bi5XPW4uWDtuLko9MH1mb3IoO0Q8Yi5sZW5ndGg7KXt2YXIgdj1NYXRoLm1pbihiLmxlbmd0aC1ELG4uai5ieXRlTGVuZ3RoLW4uSik7bGV0IGs9bmV3IFVpbnQ4QXJyYXkoYi5idWZmZXIsYi5ieXRlT2Zmc2V0K0Qsdik7bi5qLnNldChrLG4uSik7bi5KKz12O0QrPXY7aWYobi5KPT09bi5qLmxlbmd0aCl7aWYoVy5pbmZvPT09bi5kSCYmZXEobikmJkQ9PT1iLmxlbmd0aClicmVhazt2PXY2KG4pO3Y9dHgobi5wb2xpY3kuSixuLk4uaW5mbyx4QyhuKSx2LG4ucG9saWN5LmJkLG4uVyxuLmosbi5jcnlwdG8pO24uTy5hZGQodik7THIobix2KTtuLnFOKCl8fCh2PXY2KG4pLG4uYmQoeEMobiksdiE9PXZvaWQgMD8KKHYuZG93bmxvYWRlZEVuZFRpbWV8fDApKnYuYXZlcmFnZUJ5dGVSYXRlOnYubWF4S25vd25FbmRUaW1lKnYuYXZlcmFnZUJ5dGVSYXRlLHYubWF4S25vd25FbmRUaW1lKnYuYXZlcmFnZUJ5dGVSYXRlKSk7bi5qPW5ldyBVaW50OEFycmF5KG4uY2h1bmtTaXplKTtuLko9MDtuLlcrPTF9fX07CndTVT1mdW5jdGlvbihuKXtpZihlcShuKSlpZihuLmRIJiZuLmluZGV4UmFuZ2UpaWYobi5KKXt2YXIgVz1uZXcgVWludDhBcnJheShuLmouYnVmZmVyLDAsbi5KKSxEPUYkeChuKSxiPW4ucG9saWN5Lko7UHJvbWlzZS5hbGwobi5PKS50aGVuKCgpPT57dmFyIHY9dHgoYixuLmRILlBKLmluZm8seEMobiwhMCksRCxuLnBvbGljeS5iZCxuLlcsVyxuLmNyeXB0byk7THIobix2LCEwKX0pfWVsc2Uga0MobixuZXcgaDAoIldvZmZsZTogRXhwZWN0IGFsd2F5cyByZS1tYXJrIGN1cnJlbnRDaHVua09mZnNldCBhdCBFT1MiKSk7CmVsc2Uga0MobixuZXcgaDAoIldvZmZsZTogRXhwZWN0IGF0IEVPUyB0byBhbHdheXMgaGF2ZSBsYXN0U2xpY2Ugb3IgaW5kZXhSYW5nZSIpKX07Cmd1PWZ1bmN0aW9uKG4sVyl7aWYoIWVxKG4pJiYhbi5xTigpKXtpZighKG4udHd8fChuLnR3PSEwLG4uWD4wKSkpe3ZhciBEPXY2KG4pO0Q9dHgobi5wb2xpY3kuSixuLk4uaW5mbyx4QyhuKSxELG4ucG9saWN5LmJkKTtMcihuLEQpfWlmKFcuaW5mby50eXBlPT09MSl7aWYobi5kSCl7a0MobixFcnJvcigiV29mZmxlOiBFeHBlY3QgSU5JVCBzbGljZXMgdG8gYWx3YXlzIHN0YXJ0IHVzIG9mZiIpKTtyZXR1cm59bi5pbml0UmFuZ2U9V18oMCxXLkoudG90YWxMZW5ndGgpfWVsc2UgaWYoVy5pbmZvLnR5cGU9PT0yKW4uZEgmJm4uZEgudHlwZT09PTF8fGtDKG4sRXJyb3IoIldvZmZsZTogSW5kZXggYmVmb3JlIGluaXQiKSksbi5pbmRleFJhbmdlPVdfKG4uaW5pdFJhbmdlLmVuZCsxLFcuSi50b3RhbExlbmd0aCk7ZWxzZSBpZihXLmluZm8udHlwZT09PTMpe2lmKCFuLmRIKXtrQyhuLEVycm9yKCJXb2ZmbGU6IEV4cGVjdCBNRURJQSBzbGljZXMgdG8gYWx3YXlzIGhhdmUgbGFzdFNsaWNlIikpOwpyZXR1cm59aWYobi5kSC50eXBlPT09MyYmIWJUKG4uZEgsVy5pbmZvKSYmKG4uRD1bXSxXLmluZm8uaiQhPT1nayhuLmRIKXx8Vy5pbmZvLk4hPT0wKSlyZXR1cm47aWYoVy5pbmZvLmFaKXtmb3IobGV0IGIgb2Ygbi5EKUI3YihuLGIpO24uRD1bXX1lbHNle24uRC5wdXNoKFcpO24uZEg9Vy5pbmZvO3JldHVybn19ZWxzZXtrQyhuLEVycm9yKCJXb2ZmbGU6IFVuZXhwZWN0ZWQgc2xpY2UgdHlwZSIpKTtyZXR1cm59bi5kSD1XLmluZm87QjdiKG4sVyk7d1NVKG4pfX07CkYkeD1mdW5jdGlvbihuKXtyZXR1cm57ZG93bmxvYWRlZEVuZFRpbWU6LTEsbWF4S25vd25FbmRUaW1lOk1hdGgucm91bmQobi5OLmluZGV4LmJRKCkpLGF2ZXJhZ2VCeXRlUmF0ZTpNYXRoLnJvdW5kKG4uTi5pbmZvLlhuKX19OwpNdlM9ZnVuY3Rpb24obil7bj1nLmVQKG4sMTg4NjYxNDM3Nik7Zm9yKGxldCBXIG9mIG4pO3JldHVybiBnLmlfKG4sVz0+b3IoVykpfTsKUjdVPWZ1bmN0aW9uKG4pe3ZhciBXPWcudV8obiwoYix2KT0+Yit2Lmxlbmd0aCwwKTsKVz1uZXcgVWludDhBcnJheShXKTt2YXIgRD0wO2ZvcihsZXQgYiBvZiBuKVcuc2V0KGIsRCksRCs9Yi5sZW5ndGg7cmV0dXJuIFd9OwpWdnQ9ZnVuY3Rpb24obil7YTp7dmFyIFc9bi5pbml0RGF0YTt0cnl7dmFyIEQ9MDtsZXQgdj1uZXcgRGF0YVZpZXcoVy5idWZmZXIpO2Zvcig7RDx2LmJ5dGVMZW5ndGgtODspe2xldCBrPXYuZ2V0VWludDMyKEQpO2lmKGs8PTEpYnJlYWs7aWYodi5nZXRVaW50MzIoRCs0KSE9PTE4ODY2MTQzNzYpe0QrPWs7Y29udGludWV9bGV0IGg9MzI7aWYodi5nZXRVaW50OChEKzgpPjApe2xldCBMPXYuZ2V0VWludDMyKEQrMjgpO2grPUwqMTYrNH1sZXQgeD12LmdldFVpbnQzMihEK2gtNCk7dHJ5e2xldCBMPVFTeChXLnN1YmFycmF5KEQraCxEK2greCkpO2lmKEwhPT1udWxsKXt2YXIgYj1MO2JyZWFrIGF9fWNhdGNoKEwpe31EKz1rfWI9bnVsbDticmVhayBhfWNhdGNoKHYpe2I9bnVsbDticmVhayBhfWI9dm9pZCAwfWlmKGIhPW51bGwpe1c9dTQoaVcoYiw3LHZvaWQgMCxmbikpO1c9PW51bGx8fG4ucUh8fChuLmNyeXB0b1BlcmlvZEluZGV4PVcpO1c9dTQoaVcoYiwxMCx2b2lkIDAsZm4pKTsKVyE9bnVsbCYmVz4wJiYhbi5xSCYmKG4uTj1XKTtmb3IobGV0IHYgb2YgZy5CSChiLDIsTUUsdm9pZCAwPT09RyQ/Mjo0KSliPW4uSixXPWIucHVzaCxEPVZsKHYpLEQ9Zy5FQShELDQpLFcuY2FsbChiLEQpfX07CmNraj1mdW5jdGlvbihuKXtyZXR1cm4gaXNOYU4obi5jcnlwdG9QZXJpb2RJbmRleCk/Zy5FQShuLmluaXREYXRhKTpgJHtuLmNyeXB0b1BlcmlvZEluZGV4fWB9OwpYMD1mdW5jdGlvbihuKXtpZihuLm9mZnNldD49bi5KLnRvdGFsTGVuZ3RoKXRocm93IEVycm9yKCk7cmV0dXJuIHJkKG4uSixuLm9mZnNldCsrKX07CmFRUz1mdW5jdGlvbihuLFc9ITEpe3ZhciBEPVgwKG4pO2lmKEQ9PT0xKXtXPS0xO2ZvcihEPTA7RDw3O0QrKyl7dmFyIGI9WDAobik7Vz09PS0xJiZiIT09MjU1JiYoVz0wKTtXPi0xJiYoVz1XKjI1NitiKX1yZXR1cm4gV31iPTEyODtmb3IobGV0IHY9MDt2PDYmJmI+RDt2KyspRD1EKjI1NitYMChuKSxiKj0xMjg7cmV0dXJuIFc/RDpELWJ9OwpuZng9ZnVuY3Rpb24obil7dHJ5e2xldCBXPWFRUyhuLCEwKSxEPWFRUyhuLCExKTtyZXR1cm57aWQ6VyxzaXplOkR9fWNhdGNoKFcpe3JldHVybntpZDotMSxzaXplOi0xfX19OwpETjE9ZnVuY3Rpb24obil7Zm9yKHZhciBXPW5ldyBXeWoobiksRD0tMSxiPTAsdj0wOyFifHwhdjspe2xldCB7aWQ6ayxzaXplOmh9PW5meChXKTtpZihrPDApcmV0dXJuO2lmKGs9PT0xNzYpe2lmKGghPT0yKXJldHVybjtiPVcuTigpfWVsc2UgaWYoaz09PTE4Nil7aWYoaCE9PTIpcmV0dXJuO3Y9Vy5OKCl9az09PTM3NDY0ODQyNz9EPVcuTigpK2g6ayE9PTQwODEyNTU0MyYmayE9PTE3NCYmayE9PTIyNCYmVy5za2lwKGgpfVc9JE0obiwwLEQpO0Q9bmV3IERhdGFWaWV3KFcuYnVmZmVyKTtELnNldFVpbnQxNihiLDM4NDApO0Quc2V0VWludDE2KHYsMjE2MCk7Yj1uZXcgUzUoW1ddKTtlNShiLG4pO3JldHVybiBifTsKYndDPWZ1bmN0aW9uKCl7dmFyIG49bmV3IFVpbnQ4QXJyYXkoMTY0RTQpO2ZvcihsZXQgVz0wO1c8bi5sZW5ndGg7Vys9NjU1MzYpY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuLnN1YmFycmF5KFcsTWF0aC5taW4oVys2NTUzNixuLmxlbmd0aCkpKTtuZXcgUzUoW25dKX07CnEyPWZ1bmN0aW9uKG4pe24uYm4/LmRpc3Bvc2UoKTtuLmJuPW51bGx9OwpHWj1mdW5jdGlvbihuLFcpe1c9e3JzdDRkaXNjOlcsY2Q6bi5UOC50b0ZpeGVkKDMpLHNxOm4ubTE/bi5tMS5qJDotMX07bi5acT1OYU47bi5UOD0wO24uc0w9LTE7bi5tMT1udWxsO24uaWg9TmFOO24uWXA9TmFOO24uU0Y9bnVsbDtuLmxvYWRlci5VKCJtZHN0bSIsVyl9Owp0MD1mdW5jdGlvbihuKXtuLmJSPW51bGw7bi5FZz0tMTtuLlZwPTA7bi5qaz1udWxsO24uTDE9TmFOO24uWUU9MDtuLkwyPW51bGx9OwokQz1mdW5jdGlvbihuLFcpe2lmKFcuaW5mby5hWil7bi5JOT1XLmluZm87aWYobi5qayl7dmFyIEQ9bi5qayxiPXZmdChuLCExKTtEPWtkVShEKTtuLmxvYWRlci5SMChuLlBKLGIsRCk7bi5wb2xpY3kuZUsmJlpKKFcuaW5mbyxiKTtuLkwyfHxuLnBvbGljeS5lVnx8bi5WaSgpO24uTDI9bnVsbH10MChuKX1uLmJuJiZndShuLmJuLFcpO2lmKGI9bi5XeCgpKWlmKGI9Yi5qKFcsbi5wb2xpY3kuQW0sbi5wb2xpY3kuZkIpKXtuLlZ3LnBvcCgpO24uVncucHVzaChiKTtyZXR1cm59bi5Wdy5wdXNoKFcpfTsKUUV3PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Zy5XUihXKTtpZihaTyhXLmluZm8uUEouaW5mbykmJlcuaW5mby5QSi5pbmZvLnZpZGVvLnByaW1hcmllcz09PSJidDIwMjAiKXt2YXIgYj1uZXcgdFkoRCk7JHgoYixbNDA4MTI1NTQzLDM3NDY0ODQyNywxNzQsMjI0LDIxOTM2LDIxOTM3XSkmJihiPWIuc3RhcnQrYi5wb3MsRC5nZXRVaW50OChiKT09PTEyOSYmRC5nZXRVaW50OChiKzEpPT09MSYmRC5zZXRVaW50OChiKzEsOSkpfWI9Vy5pbmZvLlBKLmluZm87Yi5YKCkmJiFaTyhiKSYmKGI9Zy5XUihXKSwobmV3IHRZKGIpKS5PSigpLFl4KFs0MDgxMjU1NDMsMzc0NjQ4NDI3LDE3NCwyMjRdLDIxOTM2LGIpKTtXLmluZm8uUEouaW5mby5mWSgpJiZRZihXLmluZm8uUEosRCk7Vy5pbmZvLlBKLmluZm8ucUgoKSYmVy5pbmZvLmZZKCkmJihEPWcuV1IoVyksKG5ldyB0WShEKSkuT0ooKSxZeChbNDA4MTI1NTQzLDM3NDY0ODQyNywxNzQsMjI0XSwzMDMyMCxEKSYmWXgoWzQwODEyNTU0MywzNzQ2NDg0MjcsCjE3NCwyMjRdLDIxNDMyLEQpKTtpZihuLnBvbGljeS54MCYmVy5pbmZvLlBKLmluZm8ucUgoKSl7Yj1nLldSKFcpO3ZhciB2PW5ldyB0WShiKTtpZigkeCh2LFs0MDgxMjU1NDMsMzc0NjQ4NDI3LDE3NCwyOTYzN10pKXtEPU5rKHYsITApO3Y9di5zdGFydCt2LnBvcztmb3IodmFyIGs9MDtrPEQtMTtrKyspYi5zZXRVaW50OCh2K2ssMCk7Yi5zZXRVaW50OCh2K0QtMSwxKX19aWYobi5lUygpJiZnLlJCKFcuaW5mby5QSi5pbmZvKSl7RD1nLldSKFcpO2I9Zy5ucyhELDAsMTcwMTYwNjI2MCk7RD1nLm5zKEQsMCwxODM2NDc2NTE2KTtpZihiJiZEKXtiLnNraXAoMik7dmFyIGg9VUQoYik7az1FRChiKTtsZXQgeD1bXTt2PVtdO2xldCBMPVtdLGU9W107aWYoaClmb3IoaD0wO2g8azsrK2gpeC5wdXNoKGkzKGIpKSx2LnB1c2goaTMoYikpLEwucHVzaChVRChiKSksZS5wdXNoKFVEKGIpKTtlbHNlIGZvcihoPTA7aDxrOysraCl4LnB1c2goeUwoYikpLHYucHVzaCh5TChiKSksTC5wdXNoKFVEKGIpKSwKZS5wdXNoKFVEKGIpKTtiPXg7RD1nLmJMKEQpO0Q9bmV3IFJlaCh2WzBdL0QsYlswXS9EKX1lbHNlIEQ9bnVsbDtpZih2PUQpe2lmKGcuUkIoVy5pbmZvLlBKLmluZm8pKWZvcihEPWcuV1IoVyksaz1nLm5zKEQsMCwxNzAxMDgyMjI3KTtrOyliPWssYi50eXBlPTE5MzY0MTkxODQsYi5kYXRhLnNldFVpbnQzMihiLm9mZnNldCs0LDE5MzY0MTkxODQpLGs9Zy5ucyhELGsub2Zmc2V0K2suc2l6ZSwxNzAxMDgyMjI3KTtuLmYwPSEwO1cuaW5mby5QSi5WPXZ9fVcuaW5mby5QSi5XKCl8fFcuaW5mby5QSi5KfHxXLmluZm8uUEouaW5kZXhSYW5nZXx8RE8oVyl9OwpWSHg9ZnVuY3Rpb24obixXKXtpZihuLmlzRHJtKCkpe2lmKFcuaW5mby5QSi5pbmZvLnFIKCkpe3ZhciBEPW5ldyB0WShnLldSKFcpKTtpZigkeChELFs0MDgxMjU1NDMsMzc0NjQ4NDI3LDE3NCwyODAzMiwyNTE1MiwyMDUzMywxODQwMl0pKXt2YXIgYj1OayhELCEwKTtEPWIhPT0xNj9udWxsOlNQKEQsYil9ZWxzZSBEPW51bGw7Yj0id2VibSJ9ZWxzZSBXLmluZm8uTz1NdlMoZy5XUihXKSksRD1SN1UoVy5pbmZvLk8pLGI9ImNlbmMiO0QmJkQubGVuZ3RoJiYoRD1uZXcgcnUoRCxiKSxuLnBvbGljeS5QSCYmZy5SQihXLmluZm8uUEouaW5mbykmJihiPVpLWihnLldSKFcpKSkmJihELlVXPWIpLEQucUg9Vy5pbmZvLlBKLmluZm8ucUgoKSxXLk4mJlcuTi5jcnlwdG9QZXJpb2RJbmRleCYmKEQuY3J5cHRvUGVyaW9kSW5kZXg9Vy5OLmNyeXB0b1BlcmlvZEluZGV4KSxXLk4mJlcuTi5YJiYoRC5OPVcuTi5YKSxuLmxvYWRlci5XbihEKSl9fTsKY3JoPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5iUjtXPU1hdGgubWluKFcsRC5KLnRvdGFsTGVuZ3RoKTtpZihXPT09RC5KLnRvdGFsTGVuZ3RoKXJldHVybiBuLmJSPW51bGwsRDtEPXZSKEQsVyk7bi5iUj1EWzFdO3JldHVybiBEWzBdfTsKRFgyPWZ1bmN0aW9uKG4sVyxEKXtpZihELmluZm8uUEouVygpKXtpZihuLmYwJiZhRXcoRCkpe1c9Zy5XUihEKTt2YXIgYj1nLm5zKFcsMCwxOTUzNjU4MjIyKTtpZihiKXtiLnNraXAoMSk7dmFyIHY9WmMoYik8PDE2fFVEKGIpLGs9diYxLGg9diY0O2lmKHYmMjU2KXtXPXYmNTEyO3ZhciB4PXYmMTAyNDt2Jj0yMDQ4O3ZhciBMPUVEKGIpO0w8Mnx8KGsmJmIuc2tpcCg0KSxoJiZiLnNraXAoNCksaz1FRChiKSxiLnNraXAoKEwtMSkqKDQrKFc/NDowKSsoeD80OjApKyh2PzQ6MCkpLTQpLGIuZGF0YS5zZXRVaW50MzIoYi5vZmZzZXQrYi5OLGspKX19fWlmKFc9bi5xOSYmbi5xOS5PNygpKWlmKFc9RC5pbmZvLmZZKCkpVz1YWihEKSx4PW4ucTksczQ/KGI9MS9XLFc9bi5WeihXKT49eC5WeigpK2IpOlc9bi5nZXREdXJhdGlvbigpPj14LmdldER1cmF0aW9uKCksVz0hVztXJiZhRXcoRCkmJihXPW4ucTksczQ/KGI9WFooRCkseD0xL2IsYj1uLlZ6KGIpLFc9Vy5WeigpK3gtYik6Vz1XLmdldER1cmF0aW9uKCktCm4uZ2V0RHVyYXRpb24oKSxXPTErVy9ELmluZm8uVyxXdyhnLldSKEQpLFcpKX1lbHNle2I9ITE7bi5qa3x8KEdpKEQpLEQuTiYmKG4uams9RC5OLGI9ITAsaz1ELmluZm8saD1ELk4uc2VnbWVudE51bWJlcixrLlk9InVwZGF0ZVdpdGhFbXNnIixrLmokPWgsaz1ELk4say5WJiZuLlBKLnR3KCFrLlYsImVtc2ciKSxrPUQuaW5mby5QSi5pbmZvLGg9Zy5XUihEKSxnLlJCKGspP0dqKGgsMTcwMTY3MTc4Myk6ay5xSCgpJiZZeChbNDA4MTI1NTQzXSwzMDc1NDQ5MzUsaCkpKTthOmlmKChrPWVHKEQsbi5wb2xpY3kuUFgpKSYmcSQoRCkpaD1uVHcobixEKSxuLlQ4Kz1oLGstPWgsbi5ZRSs9ayxuLlpxPW4ucG9saWN5LlNWP24uWnErazpOYU47ZWxzZXtpZihuLnBvbGljeS5Zcil7aWYoaD1MPW4ubG9hZGVyLnFhKGcua1goRCksMSksbi5acT49MCYmRC5pbmZvLnR5cGUhPT02KXtpZihuLnBvbGljeS5TViYmaXNOYU4obi5ZcCkpe2cuR3EobmV3IGcuUXgoIk1pc3NpbmcgZHVyYXRpb24gd2hpbGUgcHJvY2Vzc2luZyBwcmV2aW91cyBjaHVuayIsCkQuaW5mby5nYSgpKSk7bi5sb2FkZXIuaXNPZmZsaW5lKCkmJiFuLnBvbGljeS5UUXx8V2paKG4sRCxoKTtHWihuLCJtIik7YnJlYWsgYX12PUwtbi5acTt2YXIgZT12LW4uVDg7bGV0IEc9RC5pbmZvLmokLHI9bi5tMT9uLm0xLmokOi0xLE49bi5paCxIPW4uWXAsQT1uLnBvbGljeS5RJCYmdj5uLnBvbGljeS5RJCx5PU1hdGguYWJzKGUpPjEwLFQ9TWF0aC5hYnMobi5acS1oKTwxRS03O2lmKE1hdGguYWJzKGUpPjFFLTQpe24uSVMrPTE7bGV0IHo9bi5qaz8uSigpO2U9e2F1ZGlvOmAkeytuLmVTKCl9YCxzcTpHLnRvRml4ZWQoKSxzbGljZVN0YXJ0OkwsbGFzdFNxOnIudG9GaXhlZCgpLGxhc3RTbGljZVN0YXJ0Ok4sbGFzdFNsaWNlRHVyYXRpb246SCx0b3RhbERyaWZ0Oih2KjFFMykudG9GaXhlZCgpLHNlZ0RyaWZ0OihlKjFFMykudG9GaXhlZCgpLHNraXBSZXdyaXRlOmAkeysoQXx8eSl9YH07ej8ubGVuZ3RoJiYoZS5hZENwbj16WzBdKTtuLmxvYWRlci5oYW5kbGVFcnJvcigicW9lLmF2c3luYyIsCmUpO24uc0w9R31BfHx5fHxUfHwoaD1uLlpxKTtMPW5UdyhuLEQsTCk7ay09TDtuLlQ4PXYrTH19ZWxzZSBoPWlzTmFOKG4uWnEpP0QuaW5mby5zZWdtZW50U3RhcnRUaW1lOm4uWnE7V2paKG4sRCxoKSYmKG4uWUUrPWssbi5acT1oK2ssbi5wb2xpY3kuWmgmJm4uSVM+PW4ucG9saWN5LlpoJiYobi5JUz0wLG4ubG9hZGVyLkdtKHtyZXNldEZvclJld3JpdGVzOiJjb3VudCJ9KSkpfW4ubTE9RC5pbmZvO24uWXA9TE0oRCk7RC5XPj0wJiYobi5paD1ELlcpO2lmKGImJm4uamspe2I9dmZ0KG4sITApO1pKKEQuaW5mbyxiKTtuLmJSJiZaSihuLmJSLmluZm8sYik7Zm9yKHggb2YgVyluLnBvbGljeS5qJiZ4LmokIT09bi5qaz8uc2VnbWVudE51bWJlcnx8WkooeCxiKTsoRC5pbmZvLmFafHxuLmJSJiZuLmJSLmluZm8uYVopJiZELmluZm8udHlwZSE9PTZ8fChuLkwyPWIsbi5wb2xpY3kuVTE/KFc9a2RVKG4uamspLG4ubG9hZGVyLlIwKG4uUEosYixXKSk6KFc9bi5sb2FkZXIsVy5LdS5pc01hbmlmZXN0bGVzcyYmCk4yKFcsYixudWxsLCEhbi5QSi5pbmZvLnZpZGVvKSksbi5wb2xpY3kuZVZ8fG4uVmkoKSl9fVZIeChuLEQpO24udGltZXN0YW1wT2Zmc2V0JiZ4WChELG4udGltZXN0YW1wT2Zmc2V0KX07CnZmdD1mdW5jdGlvbihuLFcpe3ZhciBELGI9bi5qaztpZihEPVRfKGIpKUQuc3RhcnRTZWNzKz1uLkwxO3ZhciB2PW4uTDEsaz0wO24uUEogaW5zdGFuY2VvZiBkdCYmKGs9bi5QSi5yYik7cmV0dXJuIG5ldyBSNChiLnNlZ21lbnROdW1iZXIsdixXP2s6bi5ZRSxiLmluZ2VzdGlvblRpbWUsYHNxLyR7Yi5zZWdtZW50TnVtYmVyfWAsdm9pZCAwLHZvaWQgMCxXLEQsbi5wb2xpY3kueUg/Yi5OOm51bGwpfTsKa2RVPWZ1bmN0aW9uKG4pe3JldHVybiBuLmZLKCk/bmV3IHByKENnKG4pLG4uSigpLEJBKG4pLEZwKG4pLHdGKG4pLGcuTWQobiksZy5ScihuKSk6bnVsbH07Cm5Udz1mdW5jdGlvbihuLFcsRCl7dmFyIGI9MDtpZihXLmluZm8uUEouaW5mby5xSCgpJiYhcSQoVykpcmV0dXJuIDA7aWYobi5xOSYmIW4uZVMoKSl7bGV0IGU9MDtEJiZnLlJCKFcuaW5mby5QSi5pbmZvKT9lPUQtbi5acTpXLmluZm8uUEouaW5mby5xSCgpJiYoZT1uLlQ4KTt2YXIgdj1XLmluZm8uaiQ7RD1lRyhXLG4ucG9saWN5LlBYKTtsZXQge1Y1OkcsVGo6cn09bi5xOS5iNCgpO3Y9dj09PUd8fHY+RyYmdj5uLnNMO3ZhciBrPU1hdGguYWJzKHItZSk+LjAyO2lmKG4ucG9saWN5LlJ0KXt2YXIgaD1NYXRoLmFicyhyLWUpO2lmKHYmJmg+bi5wb2xpY3kuUnQmJmg8MTApcmV0dXJuIG4ubG9hZGVyLkdtKHthdkRlc3luYzoiY291bnQifSksMH1pZihXLmluZm8uUEouaW5mby5xSCgpJiZuLnBvbGljeS5WZilyZXR1cm4gMDtpZih2JiZrKXtiPU1hdGgubWF4KC45NSxNYXRoLm1pbigxLjA1LChELShyLWUpKS9EKSk7aWYoZy5SQihXLmluZm8uUEouaW5mbykpV3coZy5XUihXKSxiKTsKZWxzZSBpZihXLmluZm8uUEouaW5mby5xSCgpJiYoaz1lLXIsIWcuUkIoVy5pbmZvLlBKLmluZm8pJiYoVy5pbmZvLlBKLmluZm8ucUgoKSxiPW5ldyB0WShnLldSKFcpKSx2PVcuVj9iOm5ldyB0WShuZXcgRGF0YVZpZXcoVy5pbmZvLlBKLkouYnVmZmVyKSksZUcoVywhMCkpKSl7dmFyIHg9ayoxRTMsTD1Lcyh2KTt2PWIucG9zO2IucG9zPTA7aWYoYi5OLmdldFVpbnQ4KGIucG9zKT09PTE2MHx8UHcoYikpaWYoc1koYiwxNjApKWlmKE5rKGIsITApLHNZKGIsMTU1KSl7aWYoaz1iLnBvcyxoPU5rKGIsITApLGIucG9zPWsseD14KjFFOS9MLEw9ZnMoYikseD1MK01hdGgubWF4KC1MKi43LE1hdGgubWluKEwseCkpLHg9TWF0aC5zaWduKHgpKk1hdGguZmxvb3IoTWF0aC5hYnMoeCkpLCEoTWF0aC5jZWlsKE1hdGgubG9nKHgpL01hdGgubG9nKDIpLzgpPmgpKXtiLnBvcz1rKzE7Zm9yKGs9aC0xO2s+PTA7ay0tKWIuTi5zZXRVaW50OChiLnBvcytrLHgmMjU1KSx4Pj4+PTg7Yi5wb3M9CnZ9fWVsc2UgYi5wb3M9djtlbHNlIGIucG9zPXY7ZWxzZSBiLnBvcz12fWI9ZUcoVyxuLnBvbGljeS5QWCk7Yj1ELWJ9YiYmVy5pbmZvLlBKLmluZm8ucUgoKSYmbi5sb2FkZXIuVSgid2VibUR1cmF0aW9uQWRqdXN0bWVudCIse2R1cmF0aW9uQWRqdXN0bWVudDpiLHZpZGVvRHJpZnQ6ZStiLGF1ZGlvRHJpZnQ6cn0pfXJldHVybiBifTsKV2paPWZ1bmN0aW9uKG4sVyxEKXtpZighaE0oVyxEKSlyZXR1cm4gVz1YeChXLmluZm8pLFcuc21zdD0iMSIsWUMobi5sb2FkZXIsV3x8e30pLCExO2lzTmFOKG4uTDEpJiYobi5MMT1EKTtyZXR1cm4hMH07CmFFdz1mdW5jdGlvbihuKXtyZXR1cm4gbi5pbmZvLlBKLlcoKSYmbi5pbmZvLmokPT09bi5pbmZvLlBKLmluZGV4LngkKCl9Owp2VFo9ZnVuY3Rpb24obixXLEQsYix2LGssaCx4LEwsZSl7dmFyIEc9Vy5leHBvcnRzLk1lZGlhU3RyZWFtX2dldEJhdGNoZWRTdHJlYW1FdmVudHMoRCk7aWYoRyl0cnl7dmFyIHI9Vy5tZW1vcnkuYnVmZmVyKEcsYio4OCk7bGV0IHk9bmV3IERhdGFWaWV3KHIuYnVmZmVyLHIuYnl0ZU9mZnNldCxiKjg4KSxUPVcubWVtb3J5LmhlYXAoKTtHPVtdO2ZvcihyPTA7cjxiO3IrKyl7bGV0IHo9bmV3IGIkQyh5LHIqODgsVyxUKTtHLnB1c2goe09mOnouT2YsYjM6ei5iMyxLOTp6Lks5LGx3OnoubHcsU2g6ei5TaCxnQzp6LmdDLHZXOnoudlcsR0s6ei5HSyxVVzp6LlVXLFckOnouVyQsZm9ybWF0SWQ6ei5mb3JtYXRJZCxyQzp6LnJDfSl9Yj12O2ZvcihsZXQgeiBvZiBHKXt6LmZvcm1hdElkJiZlJiYoYj1lKHouZm9ybWF0SWQpKTtsZXQgQz16Lk9mLFE9ei5iMyxWPXouSzksTHQ9ei5sdyx0aT16LlNoLEhaPXouZ0MsWjE9ei52VyxRaj16LkdLLE1pPXouVVcsTVU9ei5XJCxJQz16LmZvcm1hdElkLApJTT16LnJDO3N3aXRjaChIWil7Y2FzZSAxOmxldCBZbDt0cnl7bGV0IFVUPUpTT04ucGFyc2UoWjEpO1VUJiZ0eXBlb2YgVVQ9PT0ib2JqZWN0Ij9ZbD1VVDpZbD17cmVhc29uOlN0cmluZyhaMSl9fWNhdGNoKFVUKXtZbD17cmVhc29uOloxfX1ZQyhuLmxvYWRlcixZbCk7cmV0dXJuO2Nhc2UgMjpsZXQgajE7dHJ5e2xldCBVVD1KU09OLnBhcnNlKFoxKTtVVCYmdHlwZW9mIFVUPT09Im9iamVjdCI/ajE9VVQ6ajE9e3JlYXNvbjpTdHJpbmcoWjEpfX1jYXRjaChVVCl7ajE9e3JlYXNvbjpaMX19ajEuYXZEZXN5bmMhPT12b2lkIDA/bi5sb2FkZXIuR20oajEpOm4ubG9hZGVyLmhhbmRsZUVycm9yKCJxb2UuYXZzeW5jIixqMSk7YnJlYWs7Y2FzZSAzOmxldCBUej1uZXcgcnUoUWosWjEpO01pLmxlbmd0aD4wJiYoVHouVVc9TWkpO01VIT09NDI5NDk2NzI5NSYmKFR6LmNyeXB0b1BlcmlvZEluZGV4PU1VKTtRPj0wJiYoVHouTj1RKTtUei5xSD1iLmluZm8/LnFIKCk/PyExO24ubG9hZGVyLlduKFR6KTsKYnJlYWs7Y2FzZSA0OmxldCBmaD1wUihRaiksT0k9UUwoZmgpO2lmKE9JKXtsZXQgVVQ9bmV3IFg1KE9JLFoxKTtuLk49VVQ7VVQuViYmYi50dz8uKCFVVC5WLCJlbXNnIik7bGV0IFBLPVRfKFVUKTtQSyYmKFBLLnN0YXJ0U2Vjcys9QyxuLmxvYWRlci5NZShiLFBLLFVULnNlZ21lbnROdW1iZXIsVVQuZksoKSkpfWJyZWFrO2Nhc2UgNzpsZXQgcEs7dHJ5e2xldCBVVD1KU09OLnBhcnNlKFoxKTtVVCYmdHlwZW9mIFVUPT09Im9iamVjdCImJihwSz1VVCl9Y2F0Y2goVVQpe31pZihwSyYmcEsucmVzZXRGb3JSZXdyaXRlcyE9PXZvaWQgMCl7bi5sb2FkZXIuR20ocEspO2JyZWFrfWlmKFoxLnN0YXJ0c1dpdGgoImRpc2NvbnRpbnVpdHlfIikpe24ubG9hZGVyLlUoIm1kc3RtIix7cnN0NGRpc2M6WjEuc3Vic3RyaW5nKDE0KSxjZDpDLnRvRml4ZWQoMyksc3E6U3RyaW5nKElNKX0pO2JyZWFrfWxldCBPej1aMS5yZXBsYWNlKC9bXmEtekEtWjAtOTsuIV8tXS9nLCJfIik7bi5sb2FkZXIuVSgic2xpY2Vfbm90X2Z1bGx5X3Byb2Nlc3NlZCIsCnttc2c6T3p9KTticmVhaztjYXNlIDg6bGV0IEJXO3RyeXtCVz1KU09OLnBhcnNlKFoxKX1jYXRjaChVVCl7bi5sb2FkZXIuVSgid2FzbV9qc29uX3BhcnNlX2Vycm9yIix7ZXY6SFoudG9TdHJpbmcoKX0pO2NvbnRpbnVlfXgoQlcpO2IuTigpJiZrJiZaSChuLmxvYWRlci5LdSxiLG4uVyk7YnJlYWs7Y2FzZSA5OmxldCBZRTt0cnl7WUU9SlNPTi5wYXJzZShaMSl9Y2F0Y2goVVQpe24ubG9hZGVyLlUoIndhc21fanNvbl9wYXJzZV9lcnJvciIse2V2OkhaLnRvU3RyaW5nKCl9KTtjb250aW51ZX1MKFlFKTtiLk4oKSYmayYmWkgobi5sb2FkZXIuS3UsYixuLlcpO2JyZWFrO2Nhc2UgMTA6dj1aMTtuLlc9djtJQyYmZSYmKGI9ZShJQykpO2IuSj1RajtoPy5KKFFqLHYpO2IuTigpJiZrJiZaSChuLmxvYWRlci5LdSxiLHYpO2JyZWFrO2Nhc2UgMTE6Yi5WPW5ldyBSZWgodGksVik7YnJlYWs7Y2FzZSAxNDpsZXQgWmk9bmV3IFI0KElNLEMsVixMdCxgc3EvJHtJTX1gLHZvaWQgMCx2b2lkIDAsCiExLG4uSixuLk4/Lk4pO3Y9bnVsbDtuLk4mJm4uTi5mSygpJiYodj1uZXcgcHIoQ2cobi5OKSxuLk4uSigpLEJBKG4uTiksRnAobi5OKSx3RihuLk4pLGcuTWQobi5OKSxnLlJyKG4uTikpKTtuLmxvYWRlci5SMChiLFppLHYpO2JyZWFrO2Nhc2UgMTU6bGV0IFdJPU51bWJlcihaMSk7aXNOYU4oV0kpfHxuLmxvYWRlci5wWj8uKFdJKTticmVhaztjYXNlIDY6bGV0IERBPW5ldyBSNChJTSxDLFYsTHQsYHNxLyR7SU19YCx2b2lkIDAsdm9pZCAwLCEwLG4uSixuLk4/Lk4pO2lmKG4ucG9saWN5Py5VMT8/ITApdj1udWxsLG4uTiYmbi5OLmZLKCkmJih2PW5ldyBwcihDZyhuLk4pLG4uTi5KKCksQkEobi5OKSxGcChuLk4pLHdGKG4uTiksZy5NZChuLk4pLGcuUnIobi5OKSkpLG4ubG9hZGVyLlIwKGIsREEsdik7ZWxzZXt2YXIgTj1uLmxvYWRlcjtOLkt1LmlzTWFuaWZlc3RsZXNzJiZOMihOLERBLG51bGwsISFiLmluZm8udmlkZW8pfWJyZWFrO2Nhc2UgMTI6dmFyIEg9bi5sb2FkZXI7dj0KYjt2YXIgQT1uZXcgUjQoSU0sQyxWLEx0LGBzcS8ke0lNfWAsdm9pZCAwLHZvaWQgMCwhMCxuLkosbi5OPy5OKTtILkt1LmlzTWFuaWZlc3RsZXNzJiZUeChILkt1LEEuaiQsISF2LmluZm8udmlkZW8pO2JyZWFrO2Nhc2UgNTpsZXQgcFY7dHJ5e3BWPUpTT04ucGFyc2UoWjEpfWNhdGNoKFVUKXtuLmxvYWRlci5VKCJ3YXNtX2pzb25fcGFyc2VfZXJyb3IiLHtldjpIWi50b1N0cmluZygpfSk7Y29udGludWV9cFYuc3RhcnRTZWNzKz1DO24uSj1wVjtuLmxvYWRlci5NZShiLHBWLElNLG4uTj8uZksoKT8/ITEpO2JyZWFrO2Nhc2UgMTM6UWYoYixuZXcgRGF0YVZpZXcoUWouYnVmZmVyLFFqLmJ5dGVPZmZzZXQsUWouYnl0ZUxlbmd0aCkpO2JyZWFrO2RlZmF1bHQ6bi5sb2FkZXIuVSgid2FzbV91bmtub3duX2V2Iix7ZXY6SFoudG9TdHJpbmcoKX0pfX19ZmluYWxseXtXLmV4cG9ydHMuTWVkaWFTdHJlYW1fY2xlYXJQZW5kaW5nRXZlbnRzKEQpfWVsc2UgVy5leHBvcnRzLk1lZGlhU3RyZWFtX2NsZWFyUGVuZGluZ0V2ZW50cyhEKX07Ckg2PWZ1bmN0aW9uKG4pe24uVWwmJihuLlVsLmRpc3Bvc2UoKSxuLlVsPW51bGwpO24uU0s9dm9pZCAwO24uWFY9dm9pZCAwfTsKSjQ9ZnVuY3Rpb24obixXLEQsYix2LGssaCl7dmFyIHg9V15uO3ZhciBMOyhufDIpPj0yNyYmbisyPDMzJiYoTD1iKHYsayxoKSk7aWYoISgobnw0KT4+NCkpZm9yKEQ9KEQlYltJWzVdXStiW0lbNV1dKSViW0lbNV1dO0QtLTspYltJW3heNDM4NF1dKGJbSVt4XjQzODldXSgpKTtpZigobi0yfDU4KT49biYmKG4tOHwxNSk8bil7Zm9yKHZhciBlPXheNDY3NCxHPVtdOysrZS1HW0lbNV1dLSh4XjQ2NDIpOyl7c3dpdGNoKGUpe2Nhc2UgeF40Njk3OmU9eF40NjU0O2NvbnRpbnVlO2Nhc2UgeF40NzI5OmU9eF40Njc1O2JyZWFrO2Nhc2UgeF40Njc1OmUtPXheNDYyNDtjb250aW51ZTtjYXNlIHheNDY2NDplPXheNDcwNjtjb250aW51ZTtjYXNlIHheNDY1MjplPXheNDcwMX1HW0lbeF40NjI4XV0oU3RyaW5nW0lbeF40NjU2XV0oZSkpfUw9R31yZXR1cm4gTH07CmZyPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5qXygpLGI9RC5leHBvcnRzLk1lZGlhU2xpY2VfZ2V0VHlwZShXKSx2PUQuZXhwb3J0cy5NZWRpYVNsaWNlX2dldFNlZ051bShXKSxrPUQuZXhwb3J0cy5NZWRpYVNsaWNlX2dldFN0YXJ0VGltZShXKSxoPUQuZXhwb3J0cy5NZWRpYVNsaWNlX2dldER1cmF0aW9uKFcpLHg9RC5leHBvcnRzLk1lZGlhU2xpY2VfaXNFbmRPZlNlZ21lbnQoVykhPT0wLEw9RC5leHBvcnRzLk1lZGlhU2xpY2VfZ2V0U2xpY2VPZmZzZXQoVyksZT1ELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRTZWdtZW50TG10KFcpLEc9RC5leHBvcnRzLk1lZGlhU2xpY2VfaXNGYXN0U2Vla2FibGUoVykhPT0wLHI9RC5leHBvcnRzLk1lZGlhU2xpY2VfZ2V0Q2xpcElkKFcpLE49RC5leHBvcnRzLk1lZGlhU2xpY2VfZ2V0Q2xpcElkTGVuZ3RoKFcpLEg9RC5leHBvcnRzLk1lZGlhU2xpY2VfZ2V0Rm9ybWF0SWQoVyksQT1ELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRGb3JtYXRJZExlbmd0aChXKSwKeT1ELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRTZWdtZW50TWVkaWFTb3VyY2UoVyksVD1ELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRSZXF1ZXN0VG9rZW4oVyksej1ELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRSZXF1ZXN0VG9rZW5MZW5ndGgoVyksQz1ELm1lbW9yeS5oZWFwKCksUT0iIjtyJiZOPjAmJihRPWcuSEcobmV3IFVpbnQ4QXJyYXkoQyxyLE4pKS5yZXBsYWNlKC9cMC9nLCIiKSk7cj0iIjtIJiZBPjAmJihyPWcuSEcobmV3IFVpbnQ4QXJyYXkoQyxILEEpKS5yZXBsYWNlKC9cMC9nLCIiKSk7SD0iIjtUJiZ6PjAmJihIPWcuSEcobmV3IFVpbnQ4QXJyYXkoQyxULHopKS5yZXBsYWNlKC9cMC9nLCIiKSk7VD1yJiZuLkVlP24uRWUocik6bi5QSjtDPUQubWVtb3J5LmhlYXAoKTtBPUQuZXhwb3J0cy5NZWRpYVNsaWNlX2dldERhdGEoVyk7ej1ELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRMZW5ndGgoVyk7Qz1uZXcgUzUoWyhuZXcgVWludDhBcnJheShDLEEseikpLnNsaWNlKCldKTtBPQpELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRTZWdtZW50Qnl0ZVJhbmdlU3RhcnQoVyk7RD1ELmV4cG9ydHMuTWVkaWFTbGljZV9nZXRTZWdtZW50TGVuZ3RoQnl0ZXMoVyk7Vz12b2lkIDA7RD4wJiZULlcoKSYmKFc9V18oQSxEKSk7aHx8dHlwZW9mIFQucmIhPT0ibnVtYmVyInx8KGg9VC5yYik7Yj1uZXcgcUkoYixULFcsIndhc20iLHYsayxoLEwseix4LGUsUSxHLHksSCk7eD1uZXcgYjgoYixDKTtpZihuLnBvbGljeS5Zcnx8bi5wb2xpY3kuUyQpYj0hIWIuTiYmdj09PW4ueHAseC5XPWI/bi5tOTprLHguWD1iP24uenI6aCxifHwobi54cD12LG4ubTk9eC5XLG4uenI9eC5YKTtyZXR1cm4geH07CnlrPWZ1bmN0aW9uKG4pe24uaj0hMDtuLlBEPSEwO24uWD0tMTtQdShuLEluZmluaXR5KX07Cm1pPWZ1bmN0aW9uKG4pe2ZvcihsZXQgVyBvZiBuLkopSjAobixXKTtuLko9W107bi5OPW51bGx9OwpLdj1mdW5jdGlvbihuLFcsRD0hMSl7aWYobi5RRSl7bGV0IGI9bi5RRS5aRigpLHY9RlooYixXKSxrPU5hTixoPUkkKG4pO2gmJihrPUZaKGIsaC5QSi5pbmRleC5nZXRTdGFydFRpbWUoaC5qJCkpKTtpZih2PT09ayYmbi5OJiZuLk4uSiYma1F3KFNxKG4pLDApKXJldHVybiBXfW49QTAobixXLEQpO3JldHVybiBuPj0wP246TmFOfTsKUHU9ZnVuY3Rpb24obixXLEQpe24uUEouTigpO3ZhciBiPUEwKG4sVyk7aWYoYj49MClyZXR1cm4gYjtuLlY/LmNKKFcsRCk7Vz1NYXRoLm1pbihXLG4uVy5McygpKTtuLk49bi5wb2xpY3kudHc/bnVsbDpuLlBKLksoVykuQXdbMF07bWQobikmJihuLnBvbGljeS5YWSYmRD8uc2Vla1NvdXJjZT09PTYwfHxuLlFFJiZuLlFFLmFib3J0KCksbi5wb2xpY3kucG8mJm4uVj8uWSgpKTtuLlMkPTA7cmV0dXJuIG4uTj9uLk4uc2VnbWVudFN0YXJ0VGltZTpXfTsKaVk9ZnVuY3Rpb24obil7cmV0dXJuIG4uVy5XMigpfTsKS3I9ZnVuY3Rpb24obixXLEQ9ITEsYj0hMSl7VyYmczQmJm4uVy5CVyhXLml3KCkpO0R8fG4uVj8uVigpO24uUUU9VztuLlY/LnR3KG4uUUUsYil9OwpJJD1mdW5jdGlvbihuKXtyZXR1cm4gbi5wb2xpY3kuZkM/bi5WPy5iZCgpfHxudWxsOm4uUUUmJm4uUUUuWmcoKX07Cmhacj1mdW5jdGlvbihuKXt2YXIgVz17fTtmb3IobGV0IEQ9MDtEPG4uTy5sZW5ndGg7RCsrKVdbYHIke0R9YF09bi5PW0RdO3JldHVybiBXfTsKTzQ9ZnVuY3Rpb24obixXKXtpc05hTihuLlkpfHxuLlUoImFzd3IiLHtzcTpXLmluZm8uQXdbMF0uaiQsaWQ6Vy5pbmZvLkF3WzBdLlBKLmluZm8uaXRhZyx4dGFnOlcuaW5mby5Bd1swXS5QSi5pbmZvLkosZXA6RGF0ZS5ub3coKS1uLll9KTtuLkoucHVzaChXKTtuLk49Zy5VTShXLmluZm8uQXcpO24uTy5wdXNoKFcuZ2EoKSk7bi5PLmxlbmd0aD40JiZuLk8uc2hpZnQoKX07CnhYQz1mdW5jdGlvbihuLFcpe2lmKFcuUUEoKSl7bGV0IEQ9Vy54OSgpO2ZvcihsZXQgYiBvZiBEKW4ucG9saWN5LlcmJlcgaW5zdGFuY2VvZiBTbiYmbi5VKCJvbWJsc3MiLHtzOmIuaW5mby5nYSgpfSksbi5XZyhXLmluZm8uQXcsYixXLlh2KCkpfX07CkxqVT1mdW5jdGlvbihuKXtuLkoubGVuZ3RoP24uTj1nLlVNKGcuVU0obi5KKS5pbmZvLkF3KTpuLlcuUkMoKT9uLk49bi5XLld4KCkuaW5mbzpuLk49SSQobil9OwpQNj1mdW5jdGlvbihuLFcpe3ZhciBEPXtlVzpbXSxCaTpbXX07cmV0dXJuIG4uVj8uTyhXKT8/RH07CkEwPWZ1bmN0aW9uKG4sVyxEPSExKXtpZighbi5OfHwhbi5OLkopcmV0dXJuIE5hTjtuPVNxKG4pO1c9ZVp0KG4sVysuMDIsRCk7cmV0dXJuIFc8MD9OYU46a1F3KG4sRD9XOjApP25bV10uc2VnbWVudFN0YXJ0VGltZTpOYU59OwptZD1mdW5jdGlvbihuKXtpZihuLlBKLmluZm8uSUI9PT0iZiJ8fG4ucG9saWN5LkomJm4uVy5vQygpKXJldHVybiEwO3ZhciBXPUkkKG4pO2lmKCFXKXJldHVybiExO3ZhciBEPVpkKFcpJiZXLmFaO3JldHVybiBuLmlzTWFuaWZlc3RsZXNzJiZuLnR3PjA/RHx8Vy5qJD49bi50dzpEfTsKWmQ9ZnVuY3Rpb24obil7cmV0dXJuIG4/bi5WKCk6ITF9OwpnVEM9ZnVuY3Rpb24obil7dmFyIFc9SSQobik7cmV0dXJuIFc/Vy5qLW4ubG9hZGVyLmdldEN1cnJlbnRUaW1lKCk6MH07ClU0PWZ1bmN0aW9uKG4sVyxELGIpe2lmKCFuLlBKLmluZGV4Lk1JKFcsITApKXJldHVybiExO3RyeXttaShuKTtuLlcuSzgoVyk7aWYobi5wb2xpY3kuTilyZXR1cm4gbi5OPW51bGwsITA7Yj5EP1B1KG4sYik6bi5OPW4uUEouaihXLTEsITEpLkF3WzBdfWNhdGNoKHYpe3JldHVybiBXPUIkKHYpLFcuZGV0YWlscy5yZWFzb249InJvbGxia2VyciIsbi5sb2FkZXIuaGFuZGxlRXJyb3IoVy5lcnJvckNvZGUsVy5kZXRhaWxzLFcuc2V2ZXJpdHkpLCExfXJldHVybiEwfTsKSjA9ZnVuY3Rpb24obixXLEQ9ITEpe24uY3EoVyxEKTtXLmRpc3Bvc2UoKX07Cmc3PWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1XXm47aWYoISgobnw3KT4+NCkpe3ZhciB2PURbSVtiXjIzXV0oSVtiXjJdKSxrPXt9O2ZvcihsZXQgTD0wO0w8dltJWzVdXTtMKyspdmFyIGg9UjAoNixiXjczMjUsdixMLGspO3ZhciB4PWt9aWYoKG4tOV4yMSk8biYmbi03PDwxPj1uKWZvcih2PURbSVs1XV07djspRFtJW2JeNjMzM11dKERbSVszXV0oLS12LDEpWzBdKTtpZigobnw0MCk9PW4pe3Y9Yl45MDYyO2ZvcihrPVtdOysrdi1rW0lbNV1dLShiXjg5NjYpOyl7c3dpdGNoKHYpe2Nhc2UgYl44OTg4OnYtPWJeOUUzO2Nhc2UgYl45MDg1OmNhc2UgYl45MDgyOmNhc2UgYl45MDgzOmNvbnRpbnVlO2Nhc2UgYl45MDUzOnY9Yl44OTY5O2Nhc2UgYl45MDgwOmNhc2UgYl45MDgxOmNhc2UgYl45MDMwOmNvbnRpbnVlO2Nhc2UgYl44OTY4OnY9Yl45MDgxfWtbSVtiXjkwMDhdXShTdHJpbmdbSVtiXjg5ODBdXSh2KSl9eD1rfXJldHVybiB4fTsKeW89ZnVuY3Rpb24obil7dmFyIFc9bi5XLld4KCk7cmV0dXJuIFc/Vy5pbmZvOkkkKG4pfTsKRTQ9ZnVuY3Rpb24obixXKXt2YXIgRDtmb3IoRD0wO0Q8bi5KLmxlbmd0aCYmVyE9PW4uSltEXTtEKyspO2lmKEQ9PT1uLkoubGVuZ3RoKUowKG4sVyk7ZWxzZXtmb3IoO0Q8bi5KLmxlbmd0aDspSjAobixuLkoucG9wKCkpO3ZhciBiPXlvKG4pO2ImJmIuUEouRCgpJiZnLm9NKFcuaW5mby5Bdyx2PT4kTih2LGIpKT8obi5OPWIsbi5wb2xpY3kuVyYmbi5VKCJjZXIiLHtsc3I6ImxzcCIsCmxzcDpiLmdhKCl9KSk6KHhOKFcuaW5mby5Bd1swXSk/KG4uTj1XLldvJiZXLldvLlc/VEQxKFcuV28uVyk6bER4KFcuaW5mby5Bd1swXSksbi5wb2xpY3kuVyYmbi5VKCJjZXIiLHtsc3I6bi5OLmdhKCksbHNwOmI/LmdhKCl9KSk6KG4uTj1udWxsLG4ucG9saWN5LlcmJm4uVSgiY2VyIix7bHNyOiJudWxsIixsc3A6Yj8uZ2EoKX0pKSxuLmxvYWRlci5pc09mZmxpbmUoKSYmIW4ucG9saWN5LlRRfHxKMChuLFcsITApKX19OwppUz1mdW5jdGlvbihuKXtyZXR1cm4gbWQobil8fFpkKG4uVy5XeCgpPy5pbmZvKX07ClNxPWZ1bmN0aW9uKG4pe3ZhciBXPVtdLEQ9SSQobik7RCYmVy5wdXNoKEQpO1c9Zy53eihXLG4uVy5mMygpKTtmb3IobGV0IGIgb2Ygbi5KKWZvcihsZXQgdiBvZiBiLmluZm8uQXcpYi5TMyYmKFc9Zy5FTShXLGs9PiF0SihrLHYpKSksKHhOKHYpfHx2LmNKKCkpJiZXLnB1c2godik7Cm4uTiYmIXpBMihuLk4sZy5VTShXKSxuLk4uUEouVygpKSYmVy5wdXNoKG4uTik7cmV0dXJuIFd9OwprUXc9ZnVuY3Rpb24obixXKXtpZighbi5sZW5ndGgpcmV0dXJuITE7Zm9yKFcrPTE7VzxuLmxlbmd0aDtXKyspaWYoIUx6KG5bVy0xXSxuW1ddKSlyZXR1cm4hMTtyZXR1cm4hMH07CmVadD1mdW5jdGlvbihuLFcsRD0hMSl7dmFyIGI9LTE7Zm9yKGxldCB2PTA7djxuLmxlbmd0aDsrK3Ype2xldCBrPW5bdl07aWYoay5YPD1XKWlmKEQpYj12O2Vsc2UgaWYoay5zZWdtZW50U3RhcnRUaW1lK2suVz49VylyZXR1cm4gdn1yZXR1cm4gYn07CnZhciBZalo9ZnVuY3Rpb24obixXKXtyZXR1cm4gTTNbSVsxMF1dKHRoaXMsMiw0OTA2LG4sVyl9Owp1Uz1mdW5jdGlvbihuKXtyZXR1cm4hKCFuLk58fG4uTi5QSj09PW4uUEopfTsKWDB0PWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gbi5wb2xpY3kuTj9uLnpzKCEwKTxEOihuPXlvKG4pKSYmIVpkKG4pP24uaj5XJiZuLmo8VytEOiExfTsKZy5vJD1mdW5jdGlvbihuKXtuLlY/LlYoKTtuLmtJKCl9Owpxemg9ZnVuY3Rpb24obil7cmV0dXJuISFuLk4mJm4uTi5qJCE9PS0xJiZuLk4uaiQ8bi5QSi5pbmRleC5aTygpfTsKR1FiPWZ1bmN0aW9uKG4pe3ZhciBXPW4uTjtXJiZXLmokPT09LTEmJihuPW4uVy5XeCgpKSYmeE4obi5pbmZvKSYmKG49bi5pbmZvLmokLFcuWT0idXBkYXRlTGFzdFNsaWNlUmVxdWVzdGVkIixXLmokPW4pfTsKdGRqPWZ1bmN0aW9uKG4pe3JldHVybiBnLm9NKG4uSixXPT5XLmZKKX07CiRYMT1mdW5jdGlvbihuLFcpe3ZhciBEPWlZKG4pO3JldHVybiBEJiZELmluZm8udHlwZSE9PTY/IVcuTyhuLEQuaW5mby5qJCk6ITF9OwpyeUM9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgb2Ygbi5jSilpZihELnNlZ21lbnROdW1iZXI9PT1XKXJldHVybiBELnBWPzI6MTtyZXR1cm4gMH07Ck44Wj1mdW5jdGlvbih7aGFzU3ViZnJhZ21lbnRlZEZtcDQ6bj0hMSxJMjpXPSExfT17fSl7dmFyIEQ9bmV3IHNLaTtELnRJPW58fFc7cmV0dXJuIER9OwpkdT1mdW5jdGlvbihuKXtyZXR1cm4gbi5OJiZuLkZlJiZuLnBsYXliYWNrU3RhcnRQb2xpY3l9OwpKa0M9ZnVuY3Rpb24obixXLEQ9ITEpe1cudmlkZW8ucXVhbGl0eU9yZGluYWw+MTA4MCYmIW4uV0gmJihuLmUkPTM2NzAwMTYwLG4udko9NTI0Mjg4MCxuLkhKPU1hdGgubWF4KDQxOTQzMDQsbi5ISiksbi5XSD0hMCk7Vy52aWRlby5xdWFsaXR5T3JkaW5hbD4yMTYwJiYhbi5iZSYmKG4uZSQ9MTA0ODU3NjAwLG4uTnM9MTMxMDcyMDAsbi5iZT0hMCk7Zy5kTShuLnlRLmV4cGVyaW1lbnRzLCJodG1sNV9zYW1zdW5nX2thbnRfbGltaXRfbWF4X2JpdHJhdGUiKSE9PTA/Vy5pc0VuY3J5cHRlZCgpJiZnLmQ4KCkmJmcudWIoInNhbXN1bmciKSYmKGcudWIoImthbnQiKXx8Zy51YigibXVzZSIpKSYmKG4uTnM9Zy5kTShuLnlRLmV4cGVyaW1lbnRzLCJodG1sNV9zYW1zdW5nX2thbnRfbGltaXRfbWF4X2JpdHJhdGUiKSk6Vy5pc0VuY3J5cHRlZCgpJiZnLmQ4KCkmJmcudWIoImthbnQiKSYmKG4uTnM9MTMxMDcyMCk7bi55UCE9PTAmJlcuaXNFbmNyeXB0ZWQoKSYmKG4uTnM9bi55UCk7bi5KRyE9PQowJiZXLmlzRW5jcnlwdGVkKCkmJkQmJihuLk5zPW4uSkcpO1cuTnMmJihuLlFIPU1hdGgubWF4KG4uWm0sTWF0aC5taW4obi5ISiw1KlcuTnMpKSl9Owp6Wj1mdW5jdGlvbihuLFcsRD0wKXtyZXR1cm4gZy5kTShuLnlRLmV4cGVyaW1lbnRzLFcpfHxEfTsKbFM9ZnVuY3Rpb24obixXLEQsYil7bi5GZSYmKG4ucGxheWJhY2tTdGFydFBvbGljeT1XLG4uTTU9RCxuLkRDPWIpfTsKUjY9ZnVuY3Rpb24obixXKXtpZihXPDApcmV0dXJuITA7dmFyIEQ9bi54JCgpO3JldHVybiBXPER8fFc9PT1EJiYhbi5zSnx8Vz09PUQmJihuPW4uT2coKSkmJlc9PT1uLmokPyEwOiExfTsKS2EyPWZ1bmN0aW9uKG4sVyxEKXtpZighUjYobixXKSlyZXR1cm4gMDtpZighbi50SXx8IWlzTmFOKEQpJiZEPjApcmV0dXJuIDI7aWYoVzwwKXJldHVybiAxO0Q9bi54JCgpO3JldHVybiBXPER8fFc9PT1EJiYobj1uLk9nKCkpJiZXPT09bi5qJCYmIW4ucGVuZGluZz8yOjF9OwpwMGI9ZnVuY3Rpb24obixXLEQpe2lmKCEoVy5YZiYmbi5pc0NvbXBsZXRlKCkmJm4uY2FuUmV0cnkoKSYmbi5pbmZvLlhiLnBTKFcsRCkpKXJldHVybiAwO3ZhciBiPW4uaW5mby5YYi5qO2lmKGImJiFXLmVuYWJsZVNhYnJQcm9iZU9uU2VydmVySW5pdGlhdGVkSG9zdEZhbGxiYWNrKXJldHVybiAwO249VVkoRCxGNShuLmluZm8uWGIsITEsVykpO3JldHVybiBiJiYoRD0oMCxnLlIpKCktbi5YLG4uWD4wJiZEPFcuc2FiclN1Y2Nlc3NmdWxQcm9iZVRpbWVvdXRNcyk/MDpuLmorVy5YZipsTChuLCEwLGIpPigwLGcuUikoKT8wOjF9OwpqcT1mdW5jdGlvbihuLFcsRCl7aWYobi5wb2xpY3kuem0pcmV0dXJuITE7dmFyIGI9bi5KQzt2YXIgdj1XLk4/LlRDKCl8fC0xO2IuSj09PTMmJnYrMT49Yi5YPyhiLlUoInNkYWkiLHtoYWx0cnE6disxLGVzdDpiLlh9KSxiPSExKTpiPWIuSiE9PTI7aWYoIWJ8fCEoVy5OP1cuTi5QSi5YYjpXLlBKLlhiKS5ZKG4ucG9saWN5LG4ubm4sbi5sb2FkZXIuSXcpfHxuLmxvYWRlci5pc1N1c3BlbmRlZCYmKCFUWihuLnNjaGVkdWxlKXx8bi5sb2FkZXIuT00pKXJldHVybiExO2lmKG4ucG9saWN5LkomJnFzPj01KXJldHVybiBnLkphKG4ubG9hZGVyLmoyKSwhMTtpZihuLkt1LmlzTWFuaWZlc3RsZXNzKXtpZihXLkoubGVuZ3RoPjAmJlcuTiYmVy5OLmokPT09LTF8fFcuSi5sZW5ndGg+PW4ucG9saWN5LndvfHwhbi5wb2xpY3kuWE0mJlcuSi5sZW5ndGg+MCYmIW4ucG9saWN5LlYudEkpcmV0dXJuITE7aWYoVy5qKXJldHVybiFuLkt1LmlzTGl2ZXx8IWlzTmFOKG4uWkEpfWlmKHRkaihXKSlyZXR1cm4hMTsKaWYoIVcuTil7aWYoIVcuUEouTigpKXJldHVybiExO1B1KFcsbi5sb2FkZXIuZ2V0Q3VycmVudFRpbWUoKSl9aWYoaVkoVykmJihXLld4KCkhPT1pWShXKXx8bi5sb2FkZXIuaXNTdXNwZW5kZWQpKXJldHVybiExO3Y9KGI9bi5wb2xpY3kuc1MpJiYhVy5KLmxlbmd0aCYmVy56cyghMCk8TWF0aC5taW4oYixELnpzKCkpO2I9Vy5KLmxlbmd0aCtELkoubGVuZ3RoO3ZhciBrPShXLkoubGVuZ3RoP1cuSlswXS5ReSgpOiExKXx8KEQuSi5sZW5ndGg/RC5KWzBdLlF5KCk6ITEpfHxuLkt1LmlzTGl2ZTsodnx8aykmJi0tYjtpZihiKzE+PW4ucG9saWN5LkN5KXJldHVybiExO2I9Vy5OO2lmKCFiKXJldHVybiEwO2IuY0ooKSYmYi5QSi5OKCkmJihXLk49Zy5VTShiLlBKLlZRKGIpKSxiPVcuTik7aWYoIWIuVigpJiYhYi5QSi5YKGIpKXJldHVybiExO2s9bi5LdS5YZ3x8bi5LdS5pc1dpbmRvd2VkTGl2ZTtpZihuLkt1LmlzTWFuaWZlc3RsZXNzJiZrKXtrPVcuUEouaW5kZXgueCQoKTt2YXIgaD0KRC5QSi5pbmRleC54JCgpO2s9TWF0aC5taW4oayxoKTtpZihXLlBKLmluZGV4LlRYKCk+MCYmaz4wJiZiLmokPj1rKXJldHVybiBXLnR3PWssRC50dz1rLCExfWlmKGIuUEouaW5mby5hdWRpbyYmYi5jSigpfHxiLlYoKSlyZXR1cm4hMTtrPSFXLlBEJiYhRC5QRDtpZih2PSF2KXY9Yi5qLHY9ISEoRC5OJiYhWmQoRC5OKSYmRC5OLmo8dik7aD1XPT09bi52aWRlb1RyYWNrJiZuLnBvbGljeS5UQztyZXR1cm4gdiYmKCFuLkt1LmlzTWFuaWZlc3RsZXNzfHxELk4mJkQuTi5qJiZiLmopJiZrJiYhaHx8bi5wb2xpY3kuQlYmJiFXLlBEJiZELlBEPyExOnhOKGIpJiZiLmo+WXppKG4sVyk/KFl6aShuLFcpLCExKToobj1XLlFFKSYmbi5pc0xvY2tlZCgpPyExOiEwfTsKVm89ZnVuY3Rpb24obixXKXtIJGgobi5sb2FkZXIsVyk7dmFyIEQ9elAoVyksYj1uLmxvYWRlci5sdSgpO0Q9e2lqOm4uc2NoZWR1bGUsczQ6RCxCbDpmaXgobi5JZyxEKSxRbjpoSihXLkF3WzBdKSxkaXNhYmxlUmVjb3JkaW5nOmdaKDQwLDEyMTIsVy5YYi5OKSxORDpuLnBvbGljeS5XLEJlOih2LGspPT57bi5sb2FkZXIuS2EodixrKX19OwpuLnNjaGVkdWxlLkouViYmKEQucVk9KG4udmlkZW9UcmFjay5QSj8uaW5mby5Oc3x8MCkrKG4uYXVkaW9UcmFjay5QSj8uaW5mby5Oc3x8MCkpO24uaG4mJihELmokPVcuQXdbMF0uaiQsRC5aQT1XLlpBLEQuaG49bi5obik7Yj17Vzc6d0xVKFcsbi5sb2FkZXIuZ2V0Q3VycmVudFRpbWUoKSksZTE6bi5wb2xpY3kuc1YmJnlzKFcpJiZXLkF3WzBdLlBKLmluZm8udmlkZW8/RWpaKG4uY1YpOnZvaWQgMCxTTjpuLnBvbGljeS5UQyxwb1Rva2VuOm4ubG9hZGVyLk1ZKCksVWo6bi5sb2FkZXIuVTQoKSxKTzppc05hTihuLkpPKT9udWxsOm4uSk8sYUk6bi5hSSxQbjpuLlBuLHEkOmJ9O3JldHVybiBuZXcgQUIobi5wb2xpY3ksVyxELG4ubm4sKHYsayk9Pnt0cnl7YTp7bGV0IE1pPXYuaW5mby5Bd1swXS5QSixNVT1NaS5pbmZvLnZpZGVvP24udmlkZW9UcmFjazpuLmF1ZGlvVHJhY2s7aWYoISh2LnN0YXRlPj0yKXx8di5pc0NvbXBsZXRlKCl8fHYuQWcoKXx8ISghbi5sb2FkZXIubWVkaWFTb3VyY2V8fApuLmxvYWRlci5pc1N1c3BlbmRlZHx8TVUuenMoKT4zKSl7e3ZhciBoPW4ucG9saWN5LHg9bi5ubjtsZXQgSUM9di5BZygpO2lmKHYuaXNDb21wbGV0ZSgpfHwhSUN8fHYuaW5mby5YYi5wUyhoLHgpKXZhciBMPTA7ZWxzZXt2YXIgZT1oLnpmO2lmKCFlfHxJQzxlKUw9MDtlbHNle3ZhciBHPVVZKHgsRjUodi5pbmZvLlhiLCEwLGgpKTtMPUcuTnx8Ry50aW1lZE91dHx8Ry5zdGFydGVkPzA6Mn19fUw9PT0xJiYobi5WPSEwKTtmckMobix2LEwpO2lmKHYuaXNDb21wbGV0ZSgpfHx2LnFOKCkmJms8Myl7aWYobi5wb2xpY3kuVyl7bGV0IElDPXYudGltaW5nLkQoKTtJQy5yc3Q9di5zdGF0ZTtJQy5zdHJtPXYueGhyLkdwKCk7SUMuY25jbD12LnhociYmdi50NS5YPzE6MDtuLmxvYWRlci5VKCJycXMiLElDKX12Lm9QJiZuLmxvYWRlci5VKCJzYndlMyIse30sITApfWlmKCFuLnFOKCkmJnYuc3RhdGU+PTIpe1hTaChuLnRpbWluZyx2LE1pKTt2YXIgcj1uLmxvYWRlcjtuLkpPJiZ2Lnp3JiYKciYmKG4uSk89TmFOLG4ubG9hZGVyLm45KHYuencpLG4ubG9hZGVyLk1qKCksbi5sb2FkZXIuVSgiY2FiclV0Y1NlZWsiLHttZWRpYVRpbWVTZWNvbmRzOnYuend9KSk7di50ViYmbi5KTyYmdi50ViYmIXYudFYuYWN0aW9uJiYobi5sb2FkZXIud1Iobi5KTyksbi5KTz1OYU4sbi5sb2FkZXIuVSgiY2FiclV0Y1NlZWtGYWxsYmFjayIse3RhcmdldFV0Y1RpbWVTZWNvbmRzOm4uSk99KSk7di5BaCYmbi5sb2FkZXIuc1codi5BaCk7bi5wb2xpY3kuTmQmJihuLlBuPXYuUG4pO2lmKHYuc3RhdGU9PT0zKXtFNChNVSx2KTt5cyh2LmluZm8pJiZDcihuLE1VLE1pLCEwKTtpZihuLnNVKXtsZXQgSUM9di5pbmZvLllsKCk7SUMmJm4uc1UuWjUodi5pbmZvLkF3WzBdLmokLE1pLmluZm8uaWQsSUMpfW4ubG9hZGVyLkJZKCl9ZWxzZSBpZih2LmlzQ29tcGxldGUoKSYmdi5pbmZvLkF3WzBdLnR5cGU9PT01KXtpZih2LnN0YXRlIT09NCl2LnRuKCkmJm4ubG9hZGVyLmhhbmRsZUVycm9yKHYuVkcoKSwKdi55MCgpKTtlbHNle3ZhciBOPSh2LmluZm8uQXdbMF0uUEouaW5mby52aWRlbz9uLnZpZGVvVHJhY2s6bi5hdWRpb1RyYWNrKS5KWzBdfHxudWxsO04mJk4gaW5zdGFuY2VvZiBBQiYmTi5BZygpJiZOLk1CKCl9di5kaXNwb3NlKCl9ZWxzZXtpZighdi50bigpJiZ2LmZKJiZ2LnN0YXRlPj0yJiZ2LnN0YXRlIT09Myl7dmFyIEg9di54aHIuZ2V0UmVzcG9uc2VIZWFkZXIoIlgtUmVzcG9uc2UtSXRhZyIpO2lmKEgpe3ZhciBBPXlrcihuLmNWLEgpLHk9di5pbmZvLlc7aWYoeSl7dmFyIFQ9eS1BLkhKKCk7QS5jSj0hMDt2LmluZm8uQXdbMF0uUEouY0o9ITE7dmFyIHo9QS5ZKFQpO3YuaW5mbz16O2lmKHYuV28pe3ZhciBDPXYuV28sUT16LkF3OyhRLmxlbmd0aCE9PUMuQXcubGVuZ3RofHxRLmxlbmd0aDxDLmpTLmxlbmd0aCkmJmcuY18oImRhc2gvcmVxdWVzdCIsMjYwNTExMTE5LGAke1EubGVuZ3RofWAsYCR7Qy5Bdy5sZW5ndGh9YCxgJHtDLmpTLmxlbmd0aH1gKTtDLkF3PVE7bGV0IElDPQpRWzBdLnJhbmdlLElNPW5ldyBTNTtmb3Ioaz0wO2s8Qy5qUy5sZW5ndGg7aysrKWU1KElNLEMualNba10uSik7Zm9yKGs9MDtrPEMualMubGVuZ3RoO2srKyl7Qy5qU1trXS5pbmZvPVFba107bGV0IFlsPVFba10ucmFuZ2U7Qy5qU1trXS5KPWdkKElNLFlsLnN0YXJ0LUlDLnN0YXJ0LFlsLmxlbmd0aCl9fXYuZko9ITE7QjYobi5sb2FkZXIsbi52aWRlb1RyYWNrLEEpO3ZhciBWPW4udmlkZW9UcmFjaztWLk4mJihWLk4uUEo9QSk7bi5sb2FkZXIuWUooQS5pbmZvLnZpZGVvLnF1YWxpdHkpO3ZhciBMdD12Llh2KCk7THQmJkEuaW5mby5sYXN0TW9kaWZpZWQmJkEuaW5mby5sYXN0TW9kaWZpZWQhPT0rTHQmJkU0KG4udmlkZW9UcmFjayx2KX19ZWxzZSB2LmZKPSExfXYuWHQ/Lml0YWdEZW55bGlzdCYmbi5sb2FkZXIuV0Yodi5YdC5pdGFnRGVueWxpc3QpO2lmKHYuc3RhdGU9PT00KUYwKG4sdiksbi5KQyYmbi5KQy5TJCh2LmluZm8sbi5zVSk7ZWxzZSBpZihuLnBvbGljeS5lNCYmdi5RQSgpJiYKIXYuaXNDb21wbGV0ZSgpJiYhRjAobix2KSYmIXYudG4oKSlicmVhayBhO2lmKHYudG4oKSl7bGV0IElDPXYuaW5mby5Bd1swXS5QSixJTT12LlZHKCk7aWYoZ1ooMjQsMTE2NCxJQy5YYi5OKSl7bGV0IFR6PWcudXAodi5zOCgpLDMpO24ubG9hZGVyLlUoImRsZGJyZXJyIix7ZW06VHp8fCJub25lIn0pfWxldCBZbD12LmluZm8uQXdbMF0uaiQsajE9ekkobi5KQyx2LmluZm8uQXdbMF0uWCxZbCk7SU09PT0ibmV0LmJhZHN0YXR1cyImJihuLk4rPTEpO2lmKHYuY2FuUmV0cnkoKSYmd3Uobi5sb2FkZXIpKXtpZighKHYuaW5mby5YYi5KPj1uLnBvbGljeS5sTSYmbi5zVSYmdi5pbmZvLmlzRGVjb3JhdGVkKCkmJklNPT09Im5ldC5iYWRzdGF0dXMiJiZNMihuLnNVLGoxLFlsKSkpe3ZhciB0aT0oSUMuaW5mby52aWRlbyYmSUMuWGIuSj4xfHx2LmxOPT09NDEwfHx2LmxOPT09NTAwfHx2LmxOPT09NTAzKSYmISh3QyhuLmNWLmopLnNpemU+MCkmJiFnWig1NCwxMTg2LElDLlhiLk4pLEhaPQp2LnkwKCksWjE9SUMuaW5mby52aWRlbz9uLnZpZGVvVHJhY2s6bi5hdWRpb1RyYWNrO3RpJiYoSFouc3R1bj0iMSIpO24ubG9hZGVyLmhhbmRsZUVycm9yKElNLEhaKTtuLnFOKCl8fCh0aSYmYXEobi5jVixJQyksRTQoWjEsdiksbi5sb2FkZXIuQlkoKSl9fWVsc2UgQT0xLG4uc1UmJnYuaW5mby5pc0RlY29yYXRlZCgpJiZJTT09PSJuZXQuYmFkc3RhdHVzIiYmTTIobi5zVSxqMSxZbCkmJihBPTApLG4uS3UuaXNMaXZlJiZ2LlZHKCk9PT0ibmV0LmJhZHN0YXR1cyImJm4uTjw9bi5wb2xpY3kueGgqMj8oajQobi5LdSksbi5LdS5YZ3x8bi5LdS5pc1ByZW1pZXJlP2RWKG4ubG9hZGVyLDAse3FkOiJiYWRTdGF0dXNXb3JrYXJvdW5kIn0pOm4uS3UuaXNXaW5kb3dlZExpdmU/ZFYobi5sb2FkZXIsbi5LdS5KVSx7cWQ6ImJhZFN0YXR1c1dvcmthcm91bmQiLHFhOiEwfSk6UiQobi5sb2FkZXIpKTpuLmxvYWRlci5oYW5kbGVFcnJvcihJTSx2LnkwKCksQSk7aXNOYU4obi5KTyl8fChuLmxvYWRlci53UihuLkpPKSwKbi5KTz1OYU4pfW4ucG9saWN5LkhEJiYhdi5pc0NvbXBsZXRlKCk/UW8obi5sb2FkZXIpOm4ubG9hZGVyLkJZKCk7dmFyIFFqPXAwYih2LG4ucG9saWN5LG4ubm4pO2ZyQyhuLHYsUWopfX19fX1jYXRjaChNaSl7UWo9bi5qPzE6MCxuLmo9ITAsdj1qMihRaiksUWo9QiQoTWksUWopLG4ubG9hZGVyLmhhbmRsZUVycm9yKFFqLmVycm9yQ29kZSxRai5kZXRhaWxzLFFqLnNldmVyaXR5KSx2fHxuLmxvYWRlci56aSgpfX0sYil9OwpJcmI9ZnVuY3Rpb24obixXLEQpe2lmKGpxKG4sVyxEKSl7RD1uLkooVyxEKTtpZihuLnNVKXt2YXIgYj1ELkF3WzBdLlBKLmluZm8uaWQ7dmFyIHY9bi5KQzt2YXIgaz1ELkF3WzBdLmokO3Y9azwwJiYhaXNOYU4odi5qKT92Lmo6aztrPXpJKG4uSkMsRC5Bd1swXS5YLHYpO2xldCBMPVc9PT1uLmF1ZGlvVHJhY2s/MToyLGU9RC5Bd1swXS5QSi5pbmZvLklCLEc9Yi5zcGxpdCgiOyIpWzBdO2E6e3ZhciBoPW4uSkM7aWYoaC5OKXt2YXIgeD1oLk4uZmYuZXZlbnQ7aWYoaC5OLmokPT09dil7aD14PT09InByZWRpY3RTdGFydCI/dm9pZCAwOmguTi5mZi5ldmVudDticmVhayBhfWlmKGguTi5qJD09PXYtMSl7aD14PT09InN0YXJ0Inx8eD09PSJjb250aW51ZSI/eDp2b2lkIDA7YnJlYWsgYX19aD12b2lkIDB9aWYobi5wb2xpY3kuVlEmJm4uSkMuSiE9PTApYj1nLkp5aShuLnNVLGssdixiLEwsZSxoKSx2PDAmJkw9PT0yJiZsdShuLkpDLDAsMCwhMCksYiYmKG4ubG9hZGVyLlUoInNkYWkiLAp7c3NkYWlpbmZvOiIxIixkczpiLk15Py5CZnx8IiIsc2tpcHNxOmIuTXk/LkRKfHwtMSxpdGFnOkcsZjplLHNnOnYsc3Q6ay50b0ZpeGVkKDMpfSksRC5YPWIpO2Vsc2UgaWYoYj1uLnNVLllsKGssdixiLEwsZSxoKSx2PDAmJkw9PT0yJiZsdShuLkpDLDAsMCwhMCksYil7az17ZGVjX3NxOnYsaXRhZzpHLHN0OmsudG9GaXhlZCgzKX07aWYobi5wb2xpY3kubiQmJlcuaXNSZXF1ZXN0UGVuZGluZyh2LTEpKXtuLmxvYWRlci5VKCJzZGFpIix7d3RfZGFpc3RhdGVfb25fc2c6di0xfSk7cmV0dXJufW4ubG9hZGVyLlUoInNkYWkiLGspO2ImJihELk49bmV3IGcud1ooYikpO24ucG9saWN5LlcmJih2PUQuWGIuVy5nZXQoImlkIil8fCIiLGI9RC5OPy5nZXQoImlkIil8fCIiLHYhPT1iJiZuLmxvYWRlci5VKCJzdG1pZG1pc21hdGNoIix7Y2lkOnYsYWlkOmJ9KSl9ZWxzZSBuLkpDLkohPT01JiZuLmxvYWRlci5VKCJzZGFpIix7bm9kZWNfc3E6dixpdGFnOkcsc3Q6ay50b0ZpeGVkKDMpfSl9bi5wb2xpY3kuQ20mJgpELkF3WzBdLmokIT09LTEmJkQuQXdbMF0uaiQ8bi5LdS5JdCYmKEQ9Vy5QSi5qKG4uS3UuSXQsITEpKTtPNChXLFZvKG4sRCkpO2l1KG4udGltaW5nKTtuLlc/Lk4oRC5YYil9fTsKWXppPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5KQztEPUQuTj9ELk4uZmY6bnVsbDtpZihuLnBvbGljeS5UQyYmRClyZXR1cm4gRC5zdGFydFNlY3MrRC5DZisxNTtXPU9iKG4ubG9hZGVyLFcpO24ucG9saWN5LmpXPjAmJihEPSgoMCxnLlIpKCktbi5sb2FkZXIucUcpLzFFMyxXPU1hdGgubWluKFcsbi5wb2xpY3kualcrbi5wb2xpY3kuTEsqRCkpO1c9bi5sb2FkZXIuZ2V0Q3VycmVudFRpbWUoKStXO3JldHVybiBuLnBvbGljeS56NCYmKEQ9U3pNKG4ubG9hZGVyKStuLnBvbGljeS56NCxEPFcpPyhuLmxvYWRlci5VKCJtcmwiLHtvcmk6Vyxtb2Q6RH0sITApLG4ucG9saWN5LmxXJiZjNihuLmxvYWRlciksRCk6V307CmZyQz1mdW5jdGlvbihuLFcsRCl7aWYoRCE9PTApe2E6aWYoVz1XLmluZm8sRD1EPT09MixXLk4pVz1udWxsO2Vsc2V7dmFyIGI9Vy5Bd1swXTtpZihXLnJhbmdlKXZhciB2PVdfKFcucmFuZ2Uuc3RhcnQsTWF0aC5taW4oNDA5NixXLlcpKTtlbHNle2lmKFcuSiYmVy5KLmluZGV4T2YoIi9yYW5nZS8iKT49MHx8Vy5YYi5XLmdldCgiZGVmcmFnIik9PT0iMSJ8fFcuWGIuVy5nZXQoIm90ZiIpPT09IjEiKXtXPW51bGw7YnJlYWsgYX12PVdfKDAsNDA5Nil9dj1uZXcgd2soW25ldyBxSSg1LGIuUEosdiwiY3JlYXRlUHJvYmVSZXF1ZXN0SW5mbyIrYi5ZLGIuaiQpXSxXLkopO3YucFM9RDt2Lk49Vy5OO1c9dn1XJiZWbyhuLFcpfX07CkNyPWZ1bmN0aW9uKG4sVyxELGIpe2lmKCEoRC5OKCl8fEQuUyQoKXx8RC5jSnx8IUQuWGIuWShuLnBvbGljeSxuLm5uLG4ubG9hZGVyLkl3KXx8RC5pbmZvLklCPT09ImYifHxuLnBvbGljeS5OKSl7aWYoYil7Yj1uLklnO3ZhciB2PUQuaW5mbztiPXJWKGIsdi52aWRlbz9iLnBvbGljeS5SazpiLnBvbGljeS5JTSx2Lk5zKX1lbHNlIGI9MDtiPUQuWShiKTtuPVZvKG4sYik7VXYoYikmJk80KFcsbik7RC5jSj0hMH19OwpGMD1mdW5jdGlvbihuLFcpe2lmKFcucU4oKSlyZXR1cm4hMTt0cnl7dmFyIEQ9Vy5pbmZvLkF3WzBdLlBKO2xldCBoPUQuaW5mby52aWRlbz9uLnZpZGVvVHJhY2s6bi5hdWRpb1RyYWNrO3ZhciBiPWg7aWYobi5LdS5pc01hbmlmZXN0bGVzcyYmYil7bi5OPTA7Yi5qJiYoVy5xTigpLFcuaXNDb21wbGV0ZSgpfHxXLlFBKCksYi5qPSExKTtXLkloKCkmJm4ubG9hZGVyLkxyLklJKDEsVy5JaCgpKTt2YXIgdj1XLlRYKCksaz1XLmgwKCk7QzYobi5LdSx2LGspfWlmKFcuaW5mby5RbigpJiYhVXYoVy5pbmZvKSlmb3IobGV0IEwgb2YgVy54OSgpKWgudksoTCk7Yj1oO2ZvcihuLmxvYWRlci5nZXRDdXJyZW50VGltZSgpO2IuSi5sZW5ndGgmJmIuSlswXS5zdGF0ZT09PTQ7KXtsZXQgTD1iLkouc2hpZnQoKTt4WEMoYixMKTtiLlZRPUwuekQoKX1iLkoubGVuZ3RoJiZ4WEMoYixiLkpbMF0pO2xldCB4PSEhaVkoaCk7eCYmVyBpbnN0YW5jZW9mIFNuJiYoRC5pbmZvLmVTKCk/Z2oxKG4udGltaW5nKToKZTdiKG4udGltaW5nKSk7cmV0dXJuIHh9Y2F0Y2goaCl7Vz1XLnkwKCk7Vy5vcmlnaW49ImhyaHMiO2E6e249bi5sb2FkZXI7RD1oO2lmKEQgaW5zdGFuY2VvZiBFcnJvcil7Vy5tc2d8fChXLm1zZz1gJHtELm1lc3NhZ2V9YCk7Vy5uYW1lfHwoVy5uYW1lPWAke0QubmFtZX1gKTtpZihEIGluc3RhbmNlb2YgZy5ReCYmRC5hcmdzKWZvcihsZXQgW3gsTF1vZiBPYmplY3QuZW50cmllcyhELmFyZ3MpKVdbYGFyZyR7eH1gXT1gJHtMfWA7Zy5HcShEKTtpZihELmxldmVsPT09IldBUk5JTkciKXtuLkwuR20oVyk7YnJlYWsgYX19bi5oYW5kbGVFcnJvcigiZm10LnVucGxheWFibGUiLFcsMSl9cmV0dXJuITF9fTsKbVhiPWZ1bmN0aW9uKG4pe3ZhciBXPW4udmlkZW9UcmFjay5QSi5pbmRleDtuLmhuPW5ldyBBeVooe3NKOm4ucG9saWN5LnNKLHRJOm4ucG9saWN5LlYudEksTzg6Vy5VYygpLHgkOigpPT5XLngkKCksCk9nOigpPT5XLk9nKCl9KX07CktqaT1mdW5jdGlvbihuKXtpZihuLko/LmlzTG9ja2VkKCkpcmV0dXJuIG4udmlkZW9JbmZvczt2YXIgVz13QyhuLk4pLEQ9Zy5FTShuLnZpZGVvSW5mb3MsYj0+Yi5Ocz5uLm9aLk5zPyExOiFXLmhhcyhiLmlkKSk7Cm4uTi5sbCgpJiYoRD1nLkVNKEQsYj0+Yi52aWRlby53aWR0aDw9ODU0JiZiLnZpZGVvLmhlaWdodDw9NDgwKSk7CnJldHVybiBEfTsKTyRpPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9W107Zm9yKGxldCBiIG9mIFcpRC5wdXNoKGcuVmYoYixuLkt1LnpXKSk7cmV0dXJuIER9OwpaJGk9ZnVuY3Rpb24obil7cmV0dXJuIG4uSj8ucmVhc29uPT09Im0iPyJtIjpuLko/LnJlYXNvbj09PSJzIj8icyI6bi5KJiZQYlUobixuLkopP24uSi5yZWFzb246ImEifTsKUGJVPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4ub1ouSHcmJlcucmVhc29uPT09ImwifHxuLm9aLnFqPyExOm4ub1ouWWo/ITA6Vy5yZWFzb249PT0ibCJ8fFcucmVhc29uPT09ImIifHxXLnJlYXNvbj09PSJvIn07ClVYWj1mdW5jdGlvbihuLFcpe3ZhciBEPW4uTi5OO2lmKEQpe24udmlkZW9JbmZvcz1uLlY7dmFyIGI9Zy5sXyhuLnZpZGVvSW5mb3Msdj0+di5pZD09PUQpOwpiJiZiLnZpZGVvLnF1YWxpdHlPcmRpbmFsPT09Vz9uLnZpZGVvSW5mb3M9W2JdOihiPW4udmlkZW9JbmZvcy5tYXAodj0+di5pZCksbi5sb2FkZXIuVSgic2FicnBmIix7cGZpZDpgJHtEfWAsCnZmaWRzOmAke2Iuam9pbigiLiIpfWB9KSxhJChuLFcsVyksbi5OLkRlKCIiKSl9ZWxzZSBhJChuLFcsVyl9OwphJD1mdW5jdGlvbihuLFcsRCl7bi52aWRlb0luZm9zPW4uVjtuLnZpZGVvSW5mb3M9Zy5FTShuLnZpZGVvSW5mb3MsYj0+Yi52aWRlby5xdWFsaXR5T3JkaW5hbD49VyYmYi52aWRlby5xdWFsaXR5T3JkaW5hbDw9RCl9Owp5eXg9ZnVuY3Rpb24obixXKXtpZihuLlkpe3ZhciBEPWcuRU0obi5XLGI9PmIuaWQ9PT1uLlkpOwpyZXR1cm4gbkQobixEKS5pbmNsdWRlcyhXKX1EPWcuRU0obi5XLGI9PiEhYi5rWj8uaXNEZWZhdWx0KTsKcmV0dXJuIEQubGVuZ3RoPjA/bkQobixEKS5pbmNsdWRlcyhXKTpuRChuLG4uVykuaW5jbHVkZXMoVyl9OwpuRD1mdW5jdGlvbihuLFcpe3ZhciBEPW4uS3Uuelc7cmV0dXJuIFcubWFwKGI9Pk1rKGcuVmYoYixEKSkpfTsKV2w9ZnVuY3Rpb24obixXLEQ9ITEpe0hlVShuLk4sVyxEKX07CmkkUz1mdW5jdGlvbihuLFcsRCxiKXt2YXIgdj1uLkt1LGs9bi5MLmdldFZpZGVvRGF0YSgpLGg9bi5Fdix4PWpGTSh7aWo6bi5paix5UTprLkcoKSxMOm4uTCxuUjpuLm5SLG9aOm4ub1oscHo6bi5weixrRTpuLmtFLFVtOm4uVW0sRzc6bi5HNyxKJDpuLkokLFNmOm4uU2Ysc2FickxpY2Vuc2VDb25zdHJhaW50Omsuc2FickxpY2Vuc2VDb25zdHJhaW50LGo0Om4uajQscjA6bi5yMCxZczpuLllzLGVxOm4uZXEsb0c6ISFoLGF1dGhvcml6ZWRGb3JtYXRzOmsuYXV0aG9yaXplZEZvcm1hdHMsSTg6bi5JOCxsbDpuLmxsLEN4Om4uQ3gsZ0Q6bi5nRH0pLEw9U1YoayxuLnEkLG4ubmV4dFJlcXVlc3RQb2xpY3ksbi5SQSxuLmROLG4uYkosbi5yOCk7RCYmVyYmKEQ9TC5ycT9MLnJxLm1hcChyPT5yLnR5cGUpOltdLFcoInNhYnIiLHtzdG1jdHh0OkQuam9pbigiXyIpLAp1bnNudGN0eHQ6TC51dD9MLnV0LmpvaW4oIl8iKToiIn0pKTtXPW4uR2g7RD1uLk0kO0Q9PT12b2lkIDAmJlc9PT12b2lkIDAmJihEPUVUaih2LnpXLG4uZGs/LnZpZGVvKSxXPUVUaih2LnpXLG4uZGs/LmF1ZGlvKSk7aWYoay5hSSl2YXIgZT1rLmFJO3ZhciBHOyhrPW4ub1o/LlNhKSYmaz4wJiYobi5DeHx8bi5IZSkmJihHPW5ldyBVaW50OEFycmF5KGspKTtoPXtDbjp4LEJpOm4uQmksR2g6VyxNJDpELEV2OmgsdmlkZW9QbGF5YmFja1VzdHJlYW1lckNvbmZpZzplLG1IOkwsZFM6R307YiYmbi5iSz9uLmJLLmxlbmd0aD4wJiYoaC5iSz1uLmJLKTpuLk15JiYoaC5NeT1uLk15KTtuLm9aPy5EdCgpJiYhVlQoKSYmKG4udU0mJihoLnVNPW4udU0pLG4uckcmJihoLnJHPW4uckcpKTtoLmVXPW4uZVc7aC5jRT12LkdDO3JldHVybiBofTsKRVRqPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFc/W2cuVmYoVy5pbmZvLG4pXTpbXX07Cm9Uaj1mdW5jdGlvbihuLFcsRCl7Vz1CdyhuLlhiLHVuVShuLFcsRCksVyk7bi5ENSgpJiZXLnNldCgicHJvYmUiLCIxIik7bi5raCgpJiZXLnNldCgic2Jwcm9iZSIsIjEiKTtyZXR1cm4gV307CkRrPWZ1bmN0aW9uKG4pe3ZhciBXPXt9LEQ9W10sYj1bXTtpZighbi5kYXRhKXJldHVybiBXO2Zvcih2YXIgdj0wO3Y8bi5kYXRhLmVXLmxlbmd0aDt2Kyspe3ZhciBrPW4uZGF0YS5lV1t2XTtELnB1c2goYGkuJHtrLmZvcm1hdElkPy5pdGFnfV9zdC4ke2suc3RhcnRUaW1lTXN9X2UuJHtrLnN0YXJ0VGltZU1zK2suZHVyYXRpb25Nc31fZC4ke2suZHVyYXRpb25Nc31fc24uJHtrLkFDfV9lbi4ke2suaTl9YCl9Zm9yKHY9MDt2PG4uZGF0YS5CaS5sZW5ndGg7disrKWs9bi5kYXRhLkJpW3ZdLGIucHVzaChgaS4ke2suZm9ybWF0SWQ/Lml0YWd9X3NuLiR7ay5zZXF1ZW5jZU51bWJlcn1fc2wuJHtrLnZEfHxOYU59X2xiLiR7ay5TMH1fdHIuc18ke2suaHg/LnN0YXJ0VGlja3N9X2RfJHtrLmh4Py5sOH1fdF8ke2suaHg/LnRpbWVzY2FsZX1fZWRfJHtrLnUzfWApO1cucHRpbWU9bi5OPy5Dbj8ublJ8fDA7Vy5ydHlwZT1uLnJlcXVlc3RUeXBlO1cuYnJsPUQuam9pbigiOyIpO1cucHM9Yi5qb2luKCI7Iik7CnJldHVybiBXfTsKdW5VPWZ1bmN0aW9uKG4sVyxEKXtuLnBTPT09dm9pZCAwJiYobi5wUz1uLlhiLnBTKFcsRCkpO3JldHVybiBuLnBTfTsKdmw9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uTi5OPy5lbmNyeXB0KFcsRCk7cmV0dXJuIGI/YjoobmV3IGIxKG4uTi5KKSkuZW5jcnlwdChXLEQpfTsKelpqPWFzeW5jIGZ1bmN0aW9uKG4sVyxEKXt7dmFyIGI9bi5OO2xldCB2PXRFKCk7Yj12P25ldyBkWE0oYi5KLHYpOnZvaWQgMH1pZihiKXRyeXtyZXR1cm4gYXdhaXQgYi5lbmNyeXB0KFcsRCl9Y2F0Y2godil7fXJldHVybiB2bChuLFcsRCl9OwpscjI9YXN5bmMgZnVuY3Rpb24obixXKXsoMCxnLlIpKCk7cmV0dXJuIG4uTi5OP3paaihuLFcsbi5pdik6b24obi5OKS5lbmNyeXB0KFcsbi5pdil9OwpUOGg9ZnVuY3Rpb24obixXKXsoMCxnLlIpKCk7cmV0dXJuIG4uTi5OPy5KKFcsbi5pdil9OwpDYnQ9YXN5bmMgZnVuY3Rpb24obixXKXsoMCxnLlIpKCk7dmFyIEQ9bi5OO0Quanx8KEQuaj1uZXcgaksxKEQuVykpO3JldHVybiBMNFooRC5qLFcsbi5pdil9OwpCOGk9YXN5bmMgZnVuY3Rpb24obixXLEQpeygwLGcuUikoKTtyZXR1cm4gbi5OLk4/elpqKG4sVyxEKTpvbihuLk4pLmRlY3J5cHQoVyxEKX07CncwYj1mdW5jdGlvbihuLFcpe3ZhciBEPVc/LnByaW1hcnk7a3cobiwwLEQpO0Q9RD9GamooRCk6dm9pZCAwO2t3KG4sMixEKTtrdyhuLDEsVz8uc2Vjb25kYXJ5KX07CmhnPWZ1bmN0aW9uKG4sVyxEPSExKXtyZXR1cm4gbmV3IGcud1ooYCR7RD8iaHR0cCI6Imh0dHBzIn06Ly8ke1d9JHtuLkIuUFguYmFzZVVybH1gKX07Cmt3PWZ1bmN0aW9uKG4sVyxEKXtEPyhEPUQgaW5zdGFuY2VvZiBnLndaP0Q6aGcobixEKSxuLk4uZ2V0KFcpPy5OKCkhPT1SMCg5OCwzNTcwLEQpJiZuLk4uc2V0KFcsbmV3IE1kaihELFcpKSk6bi5OLmRlbGV0ZShXKX07CkZqaj1mdW5jdGlvbihuKXtyZXR1cm4gbi5yZXBsYWNlKC8oXGQrKS0tLS9nLChXLEQpPT57Vz1OdW1iZXIoRCk7cmV0dXJuYCR7Vz09PTE/MjpXLTF9LS0tYH0pfTsKUlpoPWZ1bmN0aW9uKG4sVz0hMSxEKXt2YXIgYj1nLlloKG4uQi5leHBlcmltZW50cywiZGVidWdfYmFuZGFpZF9ob3N0bmFtZSIpO3JldHVybiBiPyhXPWcuZE0obi5CLmV4cGVyaW1lbnRzLCJkZWJ1Z19iYW5kYWlkX3BvcnQiKSxiPVc+MD9gJHtifToke1d9YDpiLFc9bi5CLmV4cGVyaW1lbnRzLkVxKCJkZWJ1Z19iYW5kYWlkX2luc2VjdXJlX3NjaGVtZSIpLGhnKG4sYixXKSk6VyYmRD8udXJsJiYhbi5KPyhiPVIwKDY3LDM1MzksbmV3IGcud1ooRC51cmwpKSxoZyhuLGIpKTpuLk4uZ2V0KDApPy5sb2NhdGlvbi5jbG9uZSgpfTsKTEQ9YXN5bmMgZnVuY3Rpb24obixXKXt2YXIgRD1oZyhuLCJyZWRpcmVjdG9yLmdvb2dsZXZpZGVvLmNvbSIpO0Quc2V0KCJhbHIiLCJ5ZXMiKTtELnNldCgiaWQiLGAke01hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxRTUpfWApO2lmKFc9PT0xfHxXPT09MilELnNldCgiY21vPXNlbnNpdGl2ZV9jb250ZW50IiwieWVzIiksRC5zZXQoInNjIiwieWVzIik7Vz09PTImJkQuc2V0KCJjbW89dGQiLCJjLnlvdXR1YmUuY29tIik7dmFyIGI9YXdhaXQgZy5yOChELldEKCkse2Zvcm1hdDoiUkFXIix0aW1lb3V0OjVFM30pO2lmKGIueGhyLnN0YXR1cyE9PTIwMHx8IWIueGhyLnJlc3BvbnNlVGV4dClyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IGcuUXgoImIyMDQyNTgzNzFfbm9faG9zdCIsRC5XRCgpLGIueGhyLnN0YXR1cykpO3ZhciB2PW5ldyBnLndaKGIueGhyLnJlc3BvbnNlVGV4dCk7RD1SMCgzNCwzNTA2LHYpO2I9di5nZXQoIm1zIik7bj1oZyhuLEQpO3Y9di5nZXQoIm1tIik7bi5zZXQoIm1zIiwKYik7bi5zZXQoIm1tIix2KTtyZXR1cm4gRCYmUUt4KEQpP1chPT0yfHx4dyhEKT9uOlByb21pc2UucmVqZWN0KG5ldyBnLlF4KCJiMjA0MjU4MzcxX3VudHJ1c3RlZCIsRCxiKSk6UHJvbWlzZS5yZWplY3QobmV3IGcuUXgoImIyMDQyNTgzNzFfaW52YWxpZCIsRCxiKSl9Owp2YXIgSFd0PWZ1bmN0aW9uKG4pe3JldHVybiBSMFtJWzEwXV0odGhpcyw0MSw1ODQ5LG4pfTsKVmR0PWZ1bmN0aW9uKG4sVyl7bj1gaHR0cHM6Ly8ke1cuTigpfS9pbml0cGxheWJhY2s/Yz0ke2xvKG4uQil9Jm93Yz0xYDtxVyhuLCJwdyIsRD0+e0QuaHQ9Vy5KfSl9OwplUj1mdW5jdGlvbihuLFcsRCxiKXtxVyhgaHR0cHM6Ly8ke1d9L3ZpZGVvcGxheWJhY2s/cHJvYmU9MWAsRCx2PT57IWIuUygiaHRtbDVfb25lc2llX2hvc3RfcmFjaW5nIil8fGIudmlkZW9EYXRhLmlzTGl2ZVBsYXliYWNrfHxiLlMoImh0bWw1X29uZXNpZV9wcm9iZV9lY19ob3N0cyIpfHxiLldSfHxjeVooYik7bi5XLnB1c2godil9LHY9PntuLlcucHVzaCh2LmRldGFpbHMpfSl9OwpRS3g9ZnVuY3Rpb24obil7cmV0dXJuLy4qKFwuY1wueW91dHViZVwuY29tfC4qXC5nb29nbGV2aWRlb1wuY29tKS8udGVzdChuKX07Cnh3PWZ1bmN0aW9uKG4pe3ZhciBXPS9zbi1bXi5dKi0vO3JldHVybi8uKlwuY1wueW91dHViZVwuY29tLy50ZXN0KG4pJiYhVy50ZXN0KG4pfTsKZ2o9ZnVuY3Rpb24obil7Zm9yKDtuLk4ubGVuZ3RoJiYhbi5OWzBdLmlzRW5jcnlwdGVkOyl7bGV0IHt2aWRlb0lkOkQsYXU6Yixmb3JtYXRJZDp2LGJ1ZmZlcjprLGlFOmh9PW4uTi5zaGlmdCgpO2lmKGspbi5OSS5ZYS5uQT8uZ2V0KEQpPy5OKGIsdixrKTtlbHNlIGlmKGgpbi5OSS5ZYS5ZaChELGIsdik7ZWxzZXt2YXIgVz1uLk5JO1cuTlt2XS5TdT0hMDtXPVcuWWEubkE/LmdldChEKTtXPy5nRih2KSYmVz8uSih2KX19fTsKZy5EMHI9ZnVuY3Rpb24obil7Zm9yKDshbi5YJiYhbi5lcnJvcjspe3ZhciBXPW47Vy5YPSEhWEIoVywxKTtzd2l0Y2goWEIoVywyKSl7Y2FzZSAyOnZhciBEPXZvaWQgMCxiPVtdLHY9W107di5sZW5ndGg9MTk7di5maWxsKDApO3ZhciBrPVhCKFcsNSkrMjU3O0Q9WEIoVyw1KSsxO3ZhciBoPVhCKFcsNCkrNDtmb3IodmFyIHg9MDt4PGg7eCsrKXZbYXJ4W3hdXT1YQihXLDMpO3Y9cVAodik7Zm9yKGg9aytEO2IubGVuZ3RoPGg7KXt4PW5SdChXLHYpO2xldCBMO3N3aXRjaCh4KXtjYXNlIDE2Ong9YltiLmxlbmd0aC0xXTtMPVhCKFcsMikrMzticmVhaztjYXNlIDE3Ong9MDtMPVhCKFcsMykrMzticmVhaztjYXNlIDE4Ong9MDtMPVhCKFcsNykrMTE7YnJlYWs7ZGVmYXVsdDpMPTF9Zm9yKDtMPjA7TC0tKWIucHVzaCh4KX1iLmxlbmd0aCE9PWg/Vy5lcnJvcj0hMDooRD1iLnNsaWNlKC1EKSxiLmxlbmd0aD1rLFdZaChXLGIsRCkpO2JyZWFrO2Nhc2UgMTpXWWgoVyxHYyx0Zyk7YnJlYWs7CmNhc2UgMDokdyhXLFcuTiY3KTtiPVhCKFcsMTYpO2s9WEIoVywxNik7KGJeaykhPT02NTUzNSYmKFcuZXJyb3I9ITApO2s9Vy5kYXRhLnN1YmFycmF5KFcuSixXLkorYik7Vy5vdXRwdXQuc2V0KGssVy5XKTtXLkorPWI7Vy5XKz1iO2JyZWFrO2RlZmF1bHQ6Vy5lcnJvcj0hMH1uLlc+bi5vdXRwdXQubGVuZ3RoJiYobi5vdXRwdXQ9bmV3IFVpbnQ4QXJyYXkobi5XKjIpLG4uVz0wLG4uSj0wLG4uWD0hMSxuLk49MCxuLnJlZ2lzdGVyPTApfW4ub3V0cHV0Lmxlbmd0aCE9PW4uVyYmKG4ub3V0cHV0PW4ub3V0cHV0LnN1YmFycmF5KDAsbi5XKSk7cmV0dXJuIG4uZXJyb3I/bmV3IFVpbnQ4QXJyYXkoMCk6bi5vdXRwdXR9OwpYQj1mdW5jdGlvbihuLFcpe2Zvcig7bi5OPFc7KXtpZihuLko+PW4uZGF0YS5sZW5ndGgpcmV0dXJuIG4uZXJyb3I9ITAsMDtuLnJlZ2lzdGVyfD1uLmRhdGFbbi5KKytdPDxuLk47bi5OKz04fXZhciBEPW4ucmVnaXN0ZXImKDE8PFcpLTE7bi5yZWdpc3Rlcj4+PVc7bi5OLT1XO3JldHVybiBEfTsKV1loPWZ1bmN0aW9uKG4sVyxEKXtXPXFQKFcpO0Q9cVAoRCk7Zm9yKHZhciBiPW4uZGF0YSx2PW4ub3V0cHV0LGs9bi5XLGg9bi5yZWdpc3Rlcix4PW4uTixMPW4uSjs7KXtpZih4PDE1KXtpZihMPmIubGVuZ3RoKzEpe24uZXJyb3I9ITA7YnJlYWt9aHw9KGJbTCsxXTw8OCkrYltMXTw8eDtMKz0yO3grPTE2fXZhciBlPVdbaCYxMjddO2lmKGU8MClmb3IoaD4+PTc7ZTwwOyllPVdbKGgmMSktZV0saD4+PTE7ZWxzZSBoPj49ZSYxNTt4LT1lJjE1O2U+Pj00O2lmKGU8MjU2KXZbaysrXT1lO2Vsc2UgaWYobi5yZWdpc3Rlcj1oLG4uTj14LG4uSj1MLGU+MjU2KXtoPXJqW2VdO2grPVhCKG4sc3FbZV0pO0w9blJ0KG4sRCk7eD1OUFtMXTt4Kz1YQihuLHBEW0xdKTtpZihieVomJmg8eCl4PWsteCx2LmNvcHlXaXRoaW4oayx4LHgraCk7ZWxzZSBmb3IoTD1rK2gsZT1rO2U8TDtlKz00KXZbZV09dltlLXhdLHZbZSsxXT12W2UteCsxXSx2W2UrMl09dltlLXgrMl0sdltlKzNdPXZbZS14KzNdOwprKz1oO2g9bi5yZWdpc3Rlcjt4PW4uTjtMPW4uSn1lbHNlIGJyZWFrfW4uVz1rfTsKblJ0PWZ1bmN0aW9uKG4sVyl7aWYobi5OPDcpe3ZhciBEPW4uZGF0YTtsZXQgYj1uLko7Yj5ELmxlbmd0aCYmKG4uZXJyb3I9ITApO24ucmVnaXN0ZXJ8PShEW2IrMV08PDgpK0RbYl08PG4uTjtuLkorPTI7bi5OKz0xNn1EPVdbbi5yZWdpc3RlciYxMjddO2lmKEQ+PTApcmV0dXJuICR3KG4sRCYxNSksRD4+NDtmb3IoJHcobiw3KTtEPDA7KUQ9V1tYQihuLDEpLURdO3JldHVybiBEPj40fTsKJHc9ZnVuY3Rpb24obixXKXtuLk4tPVc7bi5yZWdpc3Rlcj4+PVd9OwpxUD1mdW5jdGlvbihuKXt2YXIgVz1bXTtmb3IodmFyIEQgb2YgbilXW0RdfHwoV1tEXT0wKSxXW0RdKys7dmFyIGI9V1swXT0wO0Q9W107dmFyIHY9MCxrPTA7Zm9yKHZhciBoPTE7aDxXLmxlbmd0aDtoKyspV1toXT9rPWg6V1toXT0wLGI9YitXW2gtMV08PDEsRFtoXT1iLGg+NyYmKHYrPVdbaF0pO2ZvcihiPTE7Yjx2OyliPDw9MTtXPTEyODtrPW5ldyBJbnQxNkFycmF5KDEyOCsoYitrKSoyKTtmb3Iodj0wO3Y8bi5sZW5ndGg7disrKXtoPW5bdl07aWYoIWgpY29udGludWU7dmFyIHg9RFtoXSsrO2I9MDtmb3IodmFyIEw9MDtMPGg7TCsrKWI9Yjw8MXx4Pj5MJjE7eD12PDw0fGg7aWYoaDw9Nylmb3IoTD0xPDw3LWg7TC0tOylrW0w8PGh8Yl09eDtlbHNle0w9YiYxMjc7aC09Nztmb3IoYj4+PTc7aC0tOyl7a1tMXXx8KGtbTF09LVcsVys9Mik7bGV0IGU9YiYxO2I+Pj0xO0w9ZS1rW0xdfWtbTF09eH19cmV0dXJuIGt9OwpZdz1mdW5jdGlvbihuLFcpe24uVyhgZGNtcHJzXyR7bi5jb250ZXh0fV8ke24uTn1fZ3pfJHtXfWApfTsKdlJ3PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIE9vKG4sZnVuY3Rpb24oKXt2YXIgRD10aGlzO3JldHVybiBmdW5jdGlvbiooKXt2YXIgYj1EYXRlLm5vdygpO3RyeXtZdyhELCJzIik7dmFyIHY9eWllbGQqUFAoVygpKTtpZighdil0aHJvdyBFcnJvcigibm8gcmVzdWx0Iik7WXcoRCwiZSIpO3JldHVybiB2fWNhdGNoKGgpe1l3KEQsImYiKTt2YXIgaz1oO0QuSihrLCJneiIpO3Rocm93IGg7fWZpbmFsbHl7dj1EYXRlLm5vdygpLEQuYmooImd6Iix2LWIsayl9fSgpfSl9OwplU2o9ZnVuY3Rpb24obixXLEQsYil7cmV0dXJuIE9vKHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgdj0oayxoKT0+dlJ3KG5ldyBrMWkoayxELGIpLCgpPT5IUChoKG4pKSk7CmlmKEhsKXRyeXtyZXR1cm4geWllbGQqUFAodigibiIsaFMxKSl9Y2F0Y2goayl7fWlmKFcpdHJ5e3JldHVybiB5aWVsZCpQUCh2KFcuaXNBc21qcz8iYSI6InciLGs9PngwQyhrLFcpKSl9Y2F0Y2goayl7fXJldHVybiB5aWVsZCpQUCh2KCJwIixMWTIpKX0oKX0pfTsKaFMxPWFzeW5jIGZ1bmN0aW9uKG4pe2lmKCFIbCl0aHJvdyBFcnJvcigiRGVjb21wcmVzc2lvblN0cmVhbSBpcyBub3Qgc3VwcG9ydGVkIik7dmFyIFc9WksudFgoKSxEPW5ldyBEZWNvbXByZXNzaW9uU3RyZWFtKCJnemlwIiksYj1ELndyaXRhYmxlLmdldFdyaXRlcigpO2Iud3JpdGUobik7Yi5jbG9zZSgpO249RC5yZWFkYWJsZS5nZXRSZWFkZXIoKTtmb3IoRD1uZXcgUzUoW10pOzspe2xldCB7dmFsdWU6dixkb25lOmt9PWF3YWl0IG4ucmVhZCgpO2lmKGspYnJlYWs7RC5hcHBlbmQodil9bj10UihEKTtaSy5lVSgiZ3puYiIsVyxNYXRoLmNlaWwobi5ieXRlTGVuZ3RoLzE2KSk7cmV0dXJuIG59OwpMWTI9ZnVuY3Rpb24obil7dmFyIFc9WksudFgoKTtuPWcuRDByKG5ldyBnLmdSYihuKSk7WksuZVUoImd6amIiLFcsTWF0aC5jZWlsKG4uYnl0ZUxlbmd0aC8xNikpO3JldHVybiBufTsKeDBDPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9WksudFgoKTtuPVcubWVtb3J5LmNvcHlJbihuKTt0cnl7bGV0IHY9bi5ieXRlT2Zmc2V0LGs9bi5ieXRlTGVuZ3RoLGg9Vy5leHBvcnRzLmdldEluZmxhdGVkU2l6ZSh2LGspO2lmKGg9PT0wKXRocm93IEVycm9yKCJ3YXNtX2d6OiBiYWQgaW5wdXQiKTtsZXQgeD1XLm1lbW9yeS5tYWxsb2MoaCksTD1XLmV4cG9ydHMuaW5mbGF0ZUd6aXAodixrLHgpO2lmKEwpdGhyb3cgVy5tZW1vcnkuZnJlZSh4KSxFcnJvcihgd2FzbV9nejogZmFpbCR7TH1gKTt2YXIgYj1XLm1lbW9yeS5idWZmZXIoeCxoKX1maW5hbGx5e1cubWVtb3J5LmZyZWUobi5ieXRlT2Zmc2V0KX1XPVcubWVtb3J5Lm1vdmVPdXQoYik7WksuZVUoImd6d2IiLEQsTWF0aC5jZWlsKFcuYnl0ZUxlbmd0aC8xNikpO3JldHVybiBXfTsKZkQ9ZnVuY3Rpb24obil7dmFyIFc9bi5xdWV1ZTtXLk4ubGVuZ3RoJiZXLk5bMF0uaXNFbmNyeXB0ZWQmJiFXLkomJihXLk4ubGVuZ3RoPTApO2ZvcihsZXQgRCBvZiBPYmplY3Qua2V5cyhuLk4pKXtsZXQgYj1uLk5bRF07Yi5TdXx8KFc9bi5xdWV1ZSxXLk4ucHVzaCh7dmlkZW9JZDpiLnZpZGVvSWQsZm9ybWF0SWQ6RCxpc0VuY3J5cHRlZDohMX0pLFcuSnx8Z2ooVykpfX07ClhCdz1mdW5jdGlvbihuLFcpe3ZhciBEPVcudG90YWxMZW5ndGgsYj0hMTtzd2l0Y2gobi5XKXtjYXNlIDA6bi5qcChXLG4uWCkudGhlbih2PT57dmFyIGs9bi5ZYTtrLkRrKCJvcHJyIik7ay5wbGF5ZXJSZXNwb25zZT12O2suVUl8fChrLkIyPSExKTtKZyhrKX0sdj0+e24uWWEuZmFpbCh2KX0pOwpicmVhaztjYXNlIDI6bi5Eaygib3JtayIpO1c9dFIoVyk7bi5xdWV1ZS5kZWNyeXB0KFcpO2JyZWFrO2RlZmF1bHQ6Yj0hMH1uLllhLnhHJiZuLllhLlUoIm9tYnVwIixgaWQuMTE7cHQuJHtuLld9O2xlbi4ke0R9JHtiPyI7aWdub3JlZC4xIjoiIn1gKTtuLlc9bnVsbH07CnFQaT1mdW5jdGlvbihuLFcpe24uWWEuRGsoIm9wcmd6Ml9zIik7Vz1lU2ooVyxuLllhLkcoKS5qXygpLG4uWWEueEc/bi5ZYS5VLmJpbmQobi5ZYSk6KCk9Pnt9LEQ9PntuLllhLkRrKEQpfSk7ClNrKFcsKCk9PntuLllhLkRrKCJvcHJnejJfZSIpfSwoKT0+e24uWWEuRGsoIm9wcmd6Ml9mIil9KTsKcmV0dXJuIFd9OwpHMVM9YXN5bmMgZnVuY3Rpb24obixXKXtuLllhLkRrKCJvcHJnel9zIik7aWYoSGwpdHJ5e3ZhciBEPWF3YWl0IGhTMShXKTtuLllhLkRrKCJvcHJnel9uIik7bi5ZYS5VKCJvcHJzZ3oiLHtpOiJuIn0pO3JldHVybiBEfWNhdGNoKGIpe24uWWEuVSgiZ3plcnIiLHtpbXBsOiJuYXRpdmUiLGVycjpgJHtifWB9KX1pZihEPW4uWWEuRygpLmpfKCkpdHJ5e2xldCBiPXgwQyhXLEQpO24uWWEuRGsoIm9wcmd6X3ciKTtuLllhLlUoIm9wcnNneiIse2k6IncifSk7cmV0dXJuIGJ9Y2F0Y2goYil7bi5ZYS5VKCJnemVyciIse2ltcGw6Indhc20iLGVycjpgJHtifWB9KX1XPUxZMihXKTtuLllhLkRrKCJvcHJnel9wIik7bi5ZYS5VKCJvcHJzZ3oiLHtpOiJqIn0pO3JldHVybiBXfTsKdF9oPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgUHJvbWlzZShXPT57c2V0VGltZW91dChXLG4pfSl9OwokMGI9ZnVuY3Rpb24obixXKXt2YXIgRD1uLkcoKTtEPW4uWVomJkQuUygiaHRtbDVfb25lc2llX3ByZWxvYWRfdXNlX2NvbnRlbnRfb3duZXIiKTtpZigoVz1SWmgoVyxELG4uUWEpKSYmbi52aWRlb0lkKXtuPWcuZDEobi52aWRlb0lkKTtEPVtdO2lmKG4pZm9yKGIgb2YgbilELnB1c2goYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpKTt2YXIgYj1ELmpvaW4oIiIpO1cuc2V0KCJpZCIsYik7cmV0dXJuIFd9fTsKck9oPWFzeW5jIGZ1bmN0aW9uKG4sVyxEPTApe3ZhciBiPVtdO2IucHVzaChXLmxvYWQoKSk7RD4wJiZiLnB1c2godF9oKEQpKTthd2FpdCBQcm9taXNlLnJhY2UoYik7cmV0dXJuICQwYihuLFcpfTsKczlDPWZ1bmN0aW9uKG4sVyxELGI9ITEpe24uc2V0KCJjcG4iLFcuY2xpZW50UGxheWJhY2tOb25jZSk7bi5zZXQoIm9wciIsIjEiKTt2YXIgdj1XLkcoKTtuLnNldCgicG9yIiwiMSIpO3RFKCl8fG4uc2V0KCJvbmVtIiwiMSIpO1cuc3RhcnRTZWNvbmRzPjAmJm4uc2V0KCJvc3RzIixgJHtXLnN0YXJ0U2Vjb25kc31gKTtifHwodi5TKCJodG1sNV9vbmVzaWVfZGlzYWJsZV9wYXJ0aWFsX3NlZ21lbnRzIikmJm4uc2V0KCJvc2VzIiwiMSIpLFc9di5TKCJodG1sNV9nYXBsZXNzX29uZXNpZV9ub19tZWRpYV9ieXRlcyIpJiZBSihXKSYmVy5ZWixEJiYhVz8oVz1ELmF1ZGlvLG4uc2V0KCJwdmkiLEQudmlkZW8uam9pbigiLCIpKSxuLnNldCgicGFpIixXLmpvaW4oIiwiKSksTnN8fG4uc2V0KCJvc2giLCIxIikpOihuLnNldCgib2FkIiwiMCIpLG4uc2V0KCJvdmQiLCIwIiksbi5zZXQoIm9hYWQiLCIwIiksbi5zZXQoIm9hdmQiLCIwIikpKX07Ck5KaT1mdW5jdGlvbihuLFcsRCxiLHY9ITEpe3ZhciBrPWBodHRwczovL3lvdXR1YmVpLmdvb2dsZWFwaXMuY29tL3lvdXR1YmVpLyR7Vy5TVi5pbm5lcnR1YmVBcGlWZXJzaW9ufS9wbGF5ZXJgLGg9W3tuYW1lOiJDb250ZW50LVR5cGUiLHZhbHVlOiJhcHBsaWNhdGlvbi9qc29uIn1dO2ImJmgucHVzaCh7bmFtZToiQXV0aG9yaXphdGlvbiIsdmFsdWU6YEJlYXJlciAke2J9YH0pO2gucHVzaCh7bmFtZToiVXNlci1BZ2VudCIsdmFsdWU6Zy5YUSgpfSk7Zy5BcigiRU9NX1ZJU0lUT1JfREFUQSIpP2gucHVzaCh7bmFtZToiWC1Hb29nLUVPTS1WaXNpdG9yLUlkIix2YWx1ZTpnLkFyKCJFT01fVklTSVRPUl9EQVRBIil9KTooRD1ELnZpc2l0b3JEYXRhfHxnLkFyKCJWSVNJVE9SX0RBVEEiKSkmJmgucHVzaCh7bmFtZToiWC1Hb29nLVZpc2l0b3ItSWQiLHZhbHVlOkR9KTsoRD1nLkFyKCJTRVJJQUxJWkVEX0xBVkFfREVWSUNFX0NPTlRFWFQiKSkmJmgucHVzaCh7bmFtZToiWC1Zb3VUdWJlLUxhdmEtRGV2aWNlLUNvbnRleHQiLAp2YWx1ZTpEfSk7KFc9Zy5ZaChXLmV4cGVyaW1lbnRzLCJkZWJ1Z19zaGVybG9nX3VzZXJuYW1lIikpJiZoLnB1c2goe25hbWU6IlgtWW91dHViZS1TaGVybG9nLVVzZXJuYW1lIix2YWx1ZTpXfSk7bj1JdyhKU09OLnN0cmluZ2lmeShuKSk7cmV0dXJue3VybDprLGUzOmgscG9zdEJvZHk6bixFYTp2LGU4OnZ9fTsKSWs9ZnVuY3Rpb24obixXLEQsYix2LGssaCx4LEwpe3ZhciBlPW4uWUMsRz1uLmRmO249bi5DVjt2YXIgcj1lIT09dm9pZCAwJiZHIT09dm9pZCAwLE49Yi5nZXRWaWRlb0RhdGEoKSxIPVcuTi5lbmNyeXB0ZWRDbGllbnRLZXk7Vz1yP1cuaXY6dm9pZCAwO3I9R0QoaywhMCk7dj12fHwhIXRFKCkmJnI+MTU3Mjg2NDtyZXR1cm57aW5uZXJ0dWJlUmVxdWVzdDp7d1M6bix2VTplLGRmOkcsZW5jcnlwdGVkQ2xpZW50S2V5OkgsaXY6VyxtdzohMCxGRDohMCxEWToiRGVjb21wcmVzc2lvblN0cmVhbSJpbiB3aW5kb3d8fCF2LHlKOiEwfSxDbjpqRk0oe2lqOmsseVE6RCxMOmIsblI6Ti5zdGFydFNlY29uZHMqMUUzLGhxOiEwfSksb25lc2llVXN0cmVhbWVyQ29uZmlnOmgsQng6eCxtSDpTVihOKSxyZWxvYWRQbGF5YmFja1BhcmFtczpOLmdUPy5yZWxvYWRQbGF5YmFja1BhcmFtcyxVazpMfX07CnBCeD1mdW5jdGlvbihuLFcsRCxiLHYsayxoLHgpe3ZhciBMPWcubGgobixhZiksZTtpZighbi5lOClpZihlPVQ4aChXLEwpKXt2YXIgRz1lLkc0O2U9ZS5zaWduYXR1cmV9ZWxzZSBlPUc9Vy5lbmNyeXB0KEwpLCgwLGcuUikoKSxlPXBmKG5ldyBZJChXLk4uVyksZSxXLml2KTtyZXR1cm4gSWsoRyYmZT97WUM6RyxkZjplfTp7Q1Y6TH0sVyxELGIsISFuLmU4LHYsayxoLHgpfTsKWVBNPWFzeW5jIGZ1bmN0aW9uKG4sVyxELGIsdixrLGgseCl7dmFyIEw9Zy5saChuLGFmKTtMPWF3YWl0IGxyMihXLEwpO3ZhciBlPWF3YWl0IENidChXLEwpO3JldHVybiBJayh7WUM6TCxkZjplfSxXLEQsYiwhIW4uZTgsdixrLGgseCl9OwpIeVU9ZnVuY3Rpb24obixXLEQsYix2LGssaCx4KXt2YXIgTD1nLmxoKG4sYWYpO2lmKEw9VDhoKFcsTCkpcmV0dXJuIElrKHtZQzpMLkc0LGRmOkwuc2lnbmF0dXJlfSxXLEQsYiwhIW4uZTgsdixrLGgseCl9OwpKT3c9YXN5bmMgZnVuY3Rpb24obixXLEQpe24uRGsoIm9wcmRfcyIpO1c9Zkl0KG4pP2F3YWl0IEI4aShuLnlxLFcsRCk6bi55cS5kZWNyeXB0KFcsRCk7bi5Eaygib3ByZF9jIik7cmV0dXJuIFd9OwpmSXQ9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5TKCJodG1sNV9vbmVzaWVfc3luY19yZXF1ZXN0X2VuY3J5cHRpb24iKXx8Vz8uZTg/ITE6ISF0RSgpfTsKSUliPWZ1bmN0aW9uKG4pe3JldHVybiBuLlMoImh0bWw1X29uZXNpZV9ob3N0X3Byb2JpbmciKXx8bi54Rz9OczohMX07CkpnPWZ1bmN0aW9uKG4pe2lmKCFuLnBsYXllclJlc3BvbnNlKXJldHVybiExO2lmKG4uYmspcmV0dXJuITA7dmFyIFc9bi52aWRlb0RhdGEuUygiaHRtbDVfb25lc2llX2F1ZGlvX29ubHlfcGxheWJhY2siKSYmUlEobi52aWRlb0RhdGEpO2lmKG4ubkEmJm4uQjIpe2lmKCFuLm5BLmhhcyhuLkxjKSlyZXR1cm4hMTtsZXQgYj1uLm5BLmdldChuLkxjKTt2YXIgRDtpZihEPWIpe0Q9ITE7Zm9yKGxldCB2IG9mIGIudTkua2V5cygpKXtsZXQgaz1iLnU5LmdldCh2KTtpZihrKWZvcihsZXQgaCBvZiBrLkJ0KWguZUg+MCYmKGsuZVM/RD0hMDpXPSEwKX1EPSEoVyYmRCl9aWYoRClyZXR1cm4hMX1uLkRrKCJvZnIiKTtuLkNSLnJlc29sdmUobi5wbGF5ZXJSZXNwb25zZSk7cmV0dXJuIG4uYms9ITB9OwpBT009ZnVuY3Rpb24obil7aWYobi5uQSYmIW4uUygiaHRtbDVfb25lc2llX21lZGlhX2NhcGFiaWxpdGllcyIpKXtuLkRrKCJvZ3NmX3MiKTt2YXIgVz16eFMobi5MLmdldFZpZGVvRGF0YSgpLChiLHYpPT57bi5VKGIsdil9KSxEPVNQTShuLkwpOwpXLnZpZGVvPWlfYihELFcudmlkZW8pO24uRGsoIm9nc2ZfYyIpO2lmKFcudmlkZW8ubGVuZ3RoKXJldHVybiBXO24uVSgib21ic3BmIixgbC4ke0QuSn07dS4ke0QuTn07by4ke0QuV307ci4ke0QucmVhc29ufWApfX07ClNSPWZ1bmN0aW9uKG4pe2lmKCFuLm5mKXJldHVybnt9O3ZhciBXPW4ubmYuRCgpO1cuZD1uLm5mLkR0Py5iWSgpO1cuc2hvc3Q9bi56YztXLnR5PSJvIjtyZXR1cm4gV307CmN5Wj1mdW5jdGlvbihuKXtuLkIyPSExO2lmKCFKZyhuKSl7dmFyIFc9U1Iobik7Vy50aW1lb3V0PSIxIjtuLmZhaWwobmV3IGcuQ2koIm9uZXNpZS5yZXF1ZXN0IixXKSl9fTsKUGw9ZnVuY3Rpb24obixXKXtpZihXLnFOKCl8fG4ucU4oKSluLnBvbGljeS5QTHx8KG4ucG9saWN5Lmo/Zy5BZyhuLmxvYWRlcik6bi5sb2FkZXIuQlkoKSk7ZWxzZXtpZihuLnBvbGljeS5XJiZXLmlzQ29tcGxldGUoKSYmVyBpbnN0YW5jZW9mIHV1KXt2YXIgRD1uLmxvYWRlcixiPUQuVTt2YXIgdj1PYmplY3QuYXNzaWduKFcubmYuRCgpLHtyc3Q6Vy5zdGF0ZSxzdHJtOlcueGhyLkdwKCksZDpXLm5mLkR0Py5iWSgpLGNuY2w6Vy54aHImJlcudDUuWD8xOjAscnFiOlcuRUYsY3d0OlcudDUuVyxzd3Q6Vy5QcT8uS059KTt2PU9iamVjdC5hc3NpZ24oRGsoVy5pbmZvKSx2KTtiLmNhbGwoRCwicnFzIix2KX1pZihXLmlzQ29tcGxldGUoKSYmVy5ENSgpJiZXIGluc3RhbmNlb2YgdXUpVy5kaXNwb3NlKCksbi5sb2FkZXIuQlkoKTtlbHNle2lmKFcucVEoKSluLkhlPSEwLFcgaW5zdGFuY2VvZiB1dSYmWFNoKG4udGltaW5nLFcpLG0wTShuKSxtdihuKTtlbHNlIGlmKFcudG4oKSlEPW4uTC5lSigpLApXIGluc3RhbmNlb2YgdXUmJlcuaW5mby5OPy5Dbj8uajQmJkQmJihuLkIuWnQoKS5OLlFRKEtZeCl8fG4ubG9hZGVyLndSKEQpKSxXIGluc3RhbmNlb2YgdXUmJlcua2goKT8oVy5WRygpJiZuLmxvYWRlci5oYW5kbGVFcnJvcihXLlZHKCksVy55MCgpLDApLFcuZGlzcG9zZSgpKTpXIGluc3RhbmNlb2YgdXUmJng2dyhXKT9uLmxvYWRlci5ETz8uVygpOlcgaW5zdGFuY2VvZiBLRD9uLk4ucG9wKCk6KEQ9MSxXLmNhblJldHJ5KCkmJnd1KG4ubG9hZGVyKSYmKE95WihuLFcpLEQ9MCksYj1uLkwuZUooKSxXIGluc3RhbmNlb2YgdXUmJlcuaW5mby5OPy5Dbj8uajQmJmImJm4uQi5adCgpLk4uUVEoS1l4KSYmKFcuY2FuUmV0cnkoKSYmd3Uobi5sb2FkZXIpP24ubG9hZGVyLlUoInV0Y1NlZWtpbmdSZXRyeSIse3RhcmdldFV0Y1RpbWVTZWM6Yn0pOm4ubG9hZGVyLndSKGIpKSxuLmxvYWRlci5oYW5kbGVFcnJvcihXLlZHKCksVy55MCgpLEQpKTtlbHNle2lmKG4ubG9hZGVyLmlzU3VzcGVuZGVkJiYKIVcuaXNDb21wbGV0ZSgpKXJldHVybjttdihuKX1XLnFOKCl8fFcgaW5zdGFuY2VvZiBLRHx8KEQ9MCxXLmlzQ29tcGxldGUoKSYmKEQ9cDBiKFcsbi5wb2xpY3ksbi5ubikpLEQhPT0wJiYoVy5pbmZvLlhiLmo/KEQ9Vy5pbmZvLEQ9bmV3IE9xKDIsRC5YYixELllhKSxELnBTPSExKTooYj1uZXcgT3EoMSxXLmluZm8uWGIpLGIucFM9RD09PTIsRD1iKSxQT3QobixEKSkpO2lmKFcuaXNDb21wbGV0ZSgpKXtpZihuLnBvbGljeS5RciYmbi52aWRlb0RhdGEuaXNPdGYoKSYmbi5CLlY9PT0icHciJiYhbi5PJiYhVy5xUSgpJiYhVy50bigpJiYhUlEobi52aWRlb0RhdGEpJiYhbi52aWRlb1RyYWNrLlRDKXtuLkN4PSExO24uTz0hMDtuLmxvYWRlci5ncCh7cmVhc29uOiJzYWJyLm5vX3ZpZGVvX3JlY2VpdmVkX29uX3N0YXJ0IixhY3Rpb246MH0pO3JldHVybn1uLkN4PSExO1cucVEoKXx8KG4uTz0hMCxuLkhlPSExKTtuLkIuUygiaHRtbDVfdXNlX21lZGlhX2ZldGNoX2NvbnRyb2xsZXIiKSYmCm4ubG9hZGVyLkwuV0ooInJlcXVlc3Rjb21wbGV0ZWQiKX1uLnBvbGljeS5IRCYmIVcuaXNDb21wbGV0ZSgpP1FvKG4ubG9hZGVyKTpuLmxvYWRlci5CWSgpfX19OwpaeVM9ZnVuY3Rpb24obil7bi5wb2xpY3kuTEImJihuLlZRPXZvaWQgMCxuLkc3PTApfTsKaXlpPWZ1bmN0aW9uKG4pe2lmKG4ubG9hZGVyLkFiKXJldHVybiBaayhuLCJwcmVwYXJpbmduZXh0bG9vcCIpLCExO2lmKCFVMFoobixuLlMkKSlyZXR1cm4gWmsobiwicmF0ZWxpbWl0ZWQiKSwhMTtpZihpUyhuLmF1ZGlvVHJhY2spJiZpUyhuLnZpZGVvVHJhY2spKXJldHVybiBaayhuLCJlbmRvZnN0cmVhbSIpLCExO2lmKG4ucG9saWN5LlUxKWlmKG4ucG9saWN5Llgpe2lmKG4uVk8/LmNKKCkpcmV0dXJuIFprKG4sInNzZGFpYmxvY2tlZCIpLCExfWVsc2V7dmFyIFc9ITE7aWYobi5KQy5KPT09MilXPSEwO2Vsc2UgaWYobi5KQy5KPT09Myl7VXEobik7bi5sb2FkZXIuU1coKTt2YXIgRD1QNihuLmF1ZGlvVHJhY2ssbi5sb2FkZXIuaXNTZWVraW5nKCkpLmVXO3ZhciBiPVA2KG4udmlkZW9UcmFjayxuLmxvYWRlci5pc1NlZWtpbmcoKSkuZVc7dmFyIHY9bi5sb2FkZXIuZ2V0Q3VycmVudFRpbWUoKXx8MDtEPXl1KG4sRCx2KTtiPXl1KG4sYix2KTtiPU1hdGgubWluKEQsYik7dj1uLkpDOwpiPj12Llc/KHYuVSgic2RhaSIse2hhbHRycTpiLGVzdDp2Lld9KSxiPSEwKTpiPSExO2ImJihXPSEwKX1pZihXKXJldHVybiBaayhuLCJ3YWl0aW5nZm9yYWRzIiksITF9bi5wb2xpY3kudTUmJihuLnR3PUVxKG4sbi5hdWRpb1RyYWNrKSxuLmJkPUVxKG4sbi52aWRlb1RyYWNrKSk7aWYoIW4uSilyZXR1cm4gaTEobix7bm9wb2xpY3k6MX0pLCEwO2lmKG4uTC5lSigpKXJldHVybiBpMShuLHt1dGM6MX0pLCEwO2lmKG4uazYuSylyZXR1cm4gaTEobix7YXVkaW86MX0pLCEwO2lmKG4ucG9saWN5LnNaJiZuLms2LkQpcmV0dXJuIGkxKG4se2NvbnN0cmFpbnQ6MX0pLCEwO2lmKCFuLkoudGFyZ2V0QXVkaW9SZWFkYWhlYWRNc3x8IW4uSi50YXJnZXRWaWRlb1JlYWRhaGVhZE1zKXJldHVybiBpMShuLHtub3JlYWRhaGVhZDoxfSksITA7aWYobi5wb2xpY3kuaiYmbi5sb2FkZXIuWFgoKSlyZXR1cm4gaTEobix7c2Vla1RvSGVhZDoxfSksITA7Vz1NYXRoLm1pbihPYihuLmxvYWRlcixuLmF1ZGlvVHJhY2spKgoxRTMsbi5KLnRhcmdldEF1ZGlvUmVhZGFoZWFkTXMpO2I9TWF0aC5taW4oT2Iobi5sb2FkZXIsbi52aWRlb1RyYWNrKSoxRTMsbi5KLnRhcmdldFZpZGVvUmVhZGFoZWFkTXMpO3Y9TWF0aC5taW4oVyxiKTt2YXIgaz1uLkwuZ2V0Q3VycmVudFRpbWUoKSoxRTMse0IxOmgsbDE6eCxjdjpMLGFrOmV9PXlPWihuLGspO0Q9aDx2O3ZhciBHPXg8djtpZih1MShuKSl7az1vayhuLlcsayk7dmFyIHI9azx2O24uTC5XWCgpJiZyJiYhRCYmIUcmJm4ubG9hZGVyLlUoInNhYnJjcm5tIix7Y3JhOmssbXByYTp2LGNicmw6bi5XLmxlbmd0aH0pfWlmKCEoRHx8R3x8dTEobikmJnIpKXJldHVybiBuLnBvbGljeS51NSYmbi5MLldYKCkmJihMPHZ8fGU8dikmJm4ubG9hZGVyLlUoInNhYnJuY3JxIix7Y2FyOmgsdmFjOngsYWJoOkwsdmJoOmUsbWFyOlcsbXZyOmJ9KSxaayhuLCJyZWFkYWhlYWRtZXQiKSwhMTtpZihuLnBvbGljeS5SVyYmRVJTKG4ubG9hZGVyKSYmbi52aWRlb0RhdGEuTlAoKSlyZXR1cm4gWmsobiwKInNob3J0c2J1ZmZlcmVkdG9lbmQiKSwhMTtpZihuLnBvbGljeS5XZCYmRVJTKG4ubG9hZGVyKSlyZXR1cm4gWmsobiwidm9kYnVmZmVyZWR0b2VuZCIpLCExO3I9bi5sb2FkZXIueXIoKTtyLmNhcj1oO3IudmFjPXg7ci5tYXI9VztyLm12cj1iO3IudGFyPW4uSi50YXJnZXRBdWRpb1JlYWRhaGVhZE1zO3IudHZyPW4uSi50YXJnZXRWaWRlb1JlYWRhaGVhZE1zO3IucGNsPW4uSi5wbGF5YmFja0Nvb2tpZT8ubGVuZ3RofHwwO3IudmJ1PXJrKG4uTC5oNSgpPy5KKCl8fG51bGwpO3IuYWJoPUw7ci52Ymg9ZTtpMShuLHIpO3JldHVybiEwfTsKdWtoPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bmV3IE9xKDAsbi5LdS5ZLG4pO24uazYuRD0hMTtuLnBvbGljeS52WCYmbi5sb2FkZXIuVSgic2FicmNzYyIse3RvOm4ucG9saWN5LlRJLHJsOm4ucG9saWN5LnN6LHNidDpuLnBvbGljeS5DdT8xOjB9LCEwKTtuPVBPdChuLEQsVyk7bi5wb2xpY3kuRkYmJihuLlU4PW4ucG9saWN5LmpfKCkuZXhwb3J0cy5TYWJyUmVxdWVzdENvb3JkaW5hdG9yX2NyZWF0ZSgpKTtyZXR1cm4gbn07Cm9SdD1mdW5jdGlvbihuLFcpe2l5aShuKSYmKFc9dWtoKG4sVyksbi5OLnB1c2goVyksbi5ZPy5OKG4uS3UuWSksbi5WPjAmJm4uUyQuRXkrKyl9OwpQT3Q9ZnVuY3Rpb24obixXLEQpe3ZhciBiPXtpajpuLmlqLEJlOihrLGgpPT57bi5MLkthKGssaCl9LApORDpuLnBvbGljeS5XLEtwOm4ucG9saWN5LktwfTtuLmlqLkouViYmKGIucVk9KG4udmlkZW9UcmFjay5QSi5pbmZvLk5zfHwwKSsobi5hdWRpb1RyYWNrLlBKLmluZm8uTnN8fDApKTtuLnBvbGljeS5VVCYmKGIuTzg9bi5hdWRpb1RyYWNrLlBKLmluZGV4LlVjKCksYi5Rbj0hMSk7dmFyIHY9dW5VKFcsbi5wb2xpY3ksbi5ubik/MjoxO3YhPT1uLm51JiYobi5udT12LG0wTShuKSk7RD1kMGIobixEKTtpZihuLnBvbGljeS5ZJiZuLnBvbGljeS5XJiZELlJBKXtsZXQgaz12PSIiO2ZvcihsZXQgaCBvZiBELlJBKW4udmlkZW9EYXRhLnNhYnJDb250ZXh0VXBkYXRlcy5oYXMoaCl8fG4ucG9saWN5LlkmJkQuYkomJkQuYkoudHlwZT09PWg/dis9YF8ke2h9YDprKz1gXyR7aH1gO24ubG9hZGVyLlUoInNhYnJibGRycXMiLHtjdHh0czp2LG1pc2N0eHRzOmt9KX0hVy5zZXREYXRhKEQsbi5wb2xpY3ksbi5ubikmJm4ucG9saWN5LlkmJm4ubG9hZGVyLmhhbmRsZUVycm9yKCJwbGF5ZXIuZXhjZXB0aW9uIiwKe3JlYXNvbjoiYnVpbGRzYWJycmVxdWVzdGRhdGFmYWlsZWQifSwxKTtiPW5ldyB1dShuLnBvbGljeSxXLG4uS3Usbi5ubixuLGIsbi5sb2FkZXIuVTQoKSk7aXUobi50aW1pbmcpO24ucG9saWN5Lk1kJiZuLmxvYWRlci5VKCJzYWJyY3JxaW5mbyIse3JuOmIuY0EoKSxwcm9iZTpXLkQ1KCl9KTtyZXR1cm4gbi5GRj1ifTsKRXE9ZnVuY3Rpb24obixXKXtVcShuKTtuLmxvYWRlci5TVygpO3JldHVybiBQNihXLG4ubG9hZGVyLmlzU2Vla2luZygpKX07CnUxPWZ1bmN0aW9uKG4pe3JldHVybiBuLnBvbGljeS55RSYmISFuLlh9Owp5dT1mdW5jdGlvbihuLFcsRCl7bj1uLmxvYWRlci5TVygpfHwwO3JldHVybiBvayhXLChEK24pKjFFMykvMUUzK0R9OwpkMGI9ZnVuY3Rpb24obixXKXt2YXIgRD1kaihuLmxvYWRlcikmJlcmJlcuU3MhPT12b2lkIDAmJiFXLmJNP01hdGguY2VpbCgoVy5Tcysobi5sb2FkZXIuU1coKXx8MCkpKjFFMyk6VXEobik7aWYobi5wb2xpY3kudTUpe3ZhciBiPW4udHc7dmFyIHY9bi5iZH1lbHNlIGI9RXEobixuLmF1ZGlvVHJhY2spLHY9RXEobixuLnZpZGVvVHJhY2spO3ZhciBrPVsuLi5iLmVXLC4uLnYuZVddO3UxKG4pJiZrLnB1c2goLi4ubi5XKTt2YXIgaD1bLi4uYi5CaSwuLi52LkJpXSx4PVtdO2Zvcih2YXIgTCBvZiBoKUwudkQhPT12b2lkIDAmJkwudkQ+TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI/bi5sb2FkZXIuVSgic2FicnBzZWdsbXQiLHtsbXQ6TC52RCxpdGFnOkwuZm9ybWF0SWQ/Lml0YWcsc3E6TC5zZXF1ZW5jZU51bWJlcn0pOngucHVzaChMKTtoPW4ubG9hZGVyLmx1KCk7bi5wb2xpY3kuWW4mJiFuLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFjayYmKEw9bi52aWRlb0RhdGEubGVuZ3RoU2Vjb25kcyoKMUUzLEQ+PUwmJm4ubG9hZGVyLlUoImludmFsaWRTYWJyQ210Iix7Y210OkQsdmQ6TH0pKTtMPW4uaWo7dmFyIGU9bi5MLEc9bi5LdSxyPW4uSixOPW4udmlkZW9EYXRhLmJkLEg9bi5wb2xpY3ksQT1uLmxvYWRlci5xRyx5PW4uVlE/LmtFLFQ9bi5WUT8uVW0sej1uLkc3LEM9TnVtYmVyKG4uazYuWD8uaW5mby5pdGFnKXx8MCxRPU51bWJlcihuLms2Lmo/LmluZm8uaXRhZyl8fDAsVj1uLkwudzkoKTt2YXIgTHQ9Vz8uSiQ/Vy5KJDpuLmxvYWRlci5pc1N1c3BlbmRlZD80OnZvaWQgMDtEPXtpajpMLEw6ZSxLdTpHLGVXOmssQmk6eCxuUjpELG5leHRSZXF1ZXN0UG9saWN5OnIsUkE6TixvWjpILHB6OkEsa0U6eSxVbTpULEc3OnosdU06QyxyRzpRLHEkOmgscjg6VixKJDpMdCxDeDpuLkN4LGdEOm4uUFgsSGU6bi5IZX07az1uLmxvYWRlci5NWSgpO3g9Zy5kMShrKTtrJiYoRC5kTj14KTtpZihXPWRqKG4ubG9hZGVyKSYmVz8uYk0/Vy5TczpuLkwuZUooKSlELmo0PVcqMUUzO1c9bi5rNjsKaz1XLnR3O2lmKFcub1o/LkR0KCkmJiFrKWZvcih0aSBvZiBXLlcpaWYodGkua1ope2s9ITA7YnJlYWt9dmFyIHRpPVcub1ouRHQoKSYmIWs/W106TyRpKFcsVy5XKTtELkdoPXRpO3RpPW4uazY7dGkub1ouRHQoKSYmIXRpLmJkP3RpPVtdOihXPUtqaSh0aSksVy5sZW5ndGg9PT0wJiYoVz10aS5WKSx0aT1PJGkodGksVykpO0QuTSQ9dGk7RC5Fdj11MShuKT9bbi5YXTp2b2lkIDA7RC5JOD1BcnJheS5mcm9tKHdDKG4uazYuTikua2V5cygpLE51bWJlcik7RC5sbD1uLms2LmxsKCk7bi5wb2xpY3kuS0UmJihELllzPXpTMihuLmxvYWRlcixuLmF1ZGlvVHJhY2spLEQuZXE9elMyKG4ubG9hZGVyLG4udmlkZW9UcmFjaykpO3RpPW4ubG9hZGVyLmdldEN1cnJlbnRUaW1lKCk7Yj15dShuLGIuZVcsdGkpO3Y9eXUobix2LmVXLHRpKTt2PU1hdGgubWluKGIsdik7bi5UQz12O24ucG9saWN5LlUxJiYodTEobikmJihiPXl1KG4sbi5XLHRpKSxuLkwuV1goKSYmYjx2JiZuLmxvYWRlci5VKCJzYWJyY2ZiIiwKe21ldDp2LGNldDpiLGNicmw6bi5XLmxlbmd0aH0pLHY9TWF0aC5taW4odixiKSksIW4ucG9saWN5LlgmJihiPW4uc1U/LlNQKHYpKSkmJihELk15PWIsbi5sb2FkZXIuVSgic2RhaSIse3NzaW5mbzpiLmN1ZXBvaW50SWR9KSk7bi5wb2xpY3kuWCYmKGI9bi52aWRlb0RhdGEuYkJbbi52aWRlb0RhdGEuSj8uY29udGFpbmVyVHlwZXx8MF0sdis9bi5sb2FkZXIuU1coKSxELmJLPW4uVk8/LlkodixiKSxELmJLJiZuLmxvYWRlci5VKCJjbHNkYWkiLHtzc2luZm9zOkQuYksubGVuZ3RofSksbi5WTz8uTygpKTtuLnBvbGljeS5ZJiZuLk4ubGVuZ3RoPjAmJm4uTlswXS5ETCgpJiYoRC5iSj1uLk5bMF0ubWYoKSk7cmV0dXJuIER9OwpVcT1mdW5jdGlvbihuKXt2YXIgVz1uLnBvbGljeS5qJiZuLmxvYWRlcj8uWFgoKSxEPW4ubG9hZGVyLmdldEN1cnJlbnRUaW1lKCl8fDA7RD1sSWIobixEKTthOmlmKG4ucG9saWN5LmZtJiZuLmxvYWRlci5pc1NlZWtpbmcoKSl7dmFyIGI9QTAobi52aWRlb1RyYWNrLEQpO24ubG9hZGVyLlUoImFzbXRmbmN0diIse2I6RCxhOmJ9KTtpZighaXNOYU4oYikpe0Q9YjticmVhayBhfX1iPW4ubG9hZGVyLlNXKCl8fDA7RCs9YjtiPVlwKG4udmlkZW9EYXRhKXx8Zy5wQShuLnZpZGVvRGF0YSk7dmFyIHY9MDtXPyhiJiYodj1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUiksbi52aWRlb0RhdGEuUkkmJih2PU1hdGguY2VpbChuLnZpZGVvRGF0YS5KVSoxRTMpKSk6dj1NYXRoLmNlaWwoRCoxRTMpO3JldHVybiBNYXRoLm1pbihOdW1iZXIuTUFYX1NBRkVfSU5URUdFUix2KX07CmxJYj1mdW5jdGlvbihuLFcpe2lmKG4ubG9hZGVyLmlzU2Vla2luZygpKXJldHVybiBXO3ZhciBEPW4uTC5oNSgpO2lmKCFEKXJldHVybiBXO0Q9RC5KKCk7aWYoRC5sZW5ndGg9PT0wfHxCUihELFcpKXJldHVybiBXO2lmKCFuLnZpZGVvVHJhY2suZnAoVykmJiFuLmF1ZGlvVHJhY2suZnAoVykpcmV0dXJuIG4ubG9hZGVyLlUoInN1bmRybiIse2I6MCxsdDpXfSksVzt2YXIgYj1XLHY9SW5maW5pdHk7Zm9yKGxldCBrPTA7azxELmxlbmd0aDtrKyspe2lmKEQuc3RhcnQoayk+Vyljb250aW51ZTtsZXQgaD1XLUQuZW5kKGspO2g8diYmKHY9aCxiPUQuZW5kKGspKX1yZXR1cm4gYiE9PVcmJihuLmxvYWRlci5VKCJzdW5kcm4iLHticmU6YixsdDpXfSksdj49MjApPyhuLmxvYWRlci5oYW5kbGVFcnJvcigicGxheWVyLmV4Y2VwdGlvbiIse3JlYXNvbjoiYnVmZmVydW5kZXJydW5leGNlZWRzbGltaXQifSksVyk6Yn07Cm9rPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9MCxiPS0xO2ZvcihsZXQgdiBvZiBuKWlmKCEodi5zdGFydFRpbWVNcyt2LmR1cmF0aW9uTXM8Vykpe2lmKGI8MCYmdi5zdGFydFRpbWVNcz5XfHxiPj0wJiZ2LkFDPmIrMSlicmVhaztEPU1hdGgubWF4KEQsdi5zdGFydFRpbWVNcyt2LmR1cmF0aW9uTXMpO2I9TWF0aC5tYXgoYix2Lmk5KX1yZXR1cm4gTWF0aC5tYXgoMCxELVcpfTsKWms9ZnVuY3Rpb24obixXKXtuLkdDPVc7bi5wb2xpY3kuTWQmJm4ubG9hZGVyLlUoInNhYnJjcmIiLHtyZWFzb246V30pfTsKVTBaPWZ1bmN0aW9uKG4sVyl7YTp7aWYobi5WPjApe3ZhciBEPU1hdGguZmxvb3IoKDAsZy5SKSgpLzFFNCk7aWYoRD09PVcuWGope2lmKFcuRXk+PW4uVil7aWYoVy5FeT09PW4uVil7RD17cmVhc29uOiJ0b29tYW55cmVxdWVzdHMifTtELmxpbWl0PVcuRXk7aWYobi5GRil7bGV0IGI9RGsobi5GRi5pbmZvKTtELmxyX3B0aW1lPWIucHRpbWU7RC5scl9ydHlwZT1iLnJ0eXBlO0QubHJfYnJsPWIuYnJsO0QubHJfcHM9Yi5wc31uLmxvYWRlci5oYW5kbGVFcnJvcigicGxheWVyLmV4Y2VwdGlvbiIsRCk7Vy5FeSs9MX1XPSExO2JyZWFrIGF9fWVsc2UgVy5Yaj1ELFcuRXk9MH1XPSEwfXJldHVybiFXfHxuLmxvYWRlci5pc1N1c3BlbmRlZCYmbi5sb2FkZXIuT00/ITE6bi5qJiYoMCxnLlIpKCk8bi5qPyhnLkphKG4ubG9hZGVyLmoyKSwhMSk6bi5OLmxlbmd0aD4wJiYoIW4ucG9saWN5Lll8fG4uTi5sZW5ndGghPT0xfHwhbi5OWzBdLkRMKCkpfHwhbi5LdS5ZPy5ZKG4ucG9saWN5LG4ubm4sCm4ubG9hZGVyLkl3KXx8bi5EdD8hMTohMH07CmkxPWZ1bmN0aW9uKG4sVyl7bi5HQz12b2lkIDA7bi5ZWj0oMCxnLlIpKCk7bi5wb2xpY3kuTWQmJm4ubG9hZGVyLlUoInNhYnJjcnEiLFcpfTsKeU9aPWZ1bmN0aW9uKG4sVyl7dmFyIHtjdjpELGFrOmJ9PVRKYihuKTtpZihuLnBvbGljeS51NSl7dmFyIHY9b2sobi50dy5lVyxXKTtuPW9rKG4uYmQuZVcsVyl9ZWxzZSB2PUQsbj1iO3JldHVybntCMTp2LGwxOm4sY3Y6RCxhazpifX07Cm0wTT1mdW5jdGlvbihuKXtuLnZpZGVvRGF0YS5iZC5jbGVhcigpO2lmKG4udmlkZW9EYXRhLnNhYnJDb250ZXh0VXBkYXRlcy5zaXplPjApZm9yKHZhciBXIG9mIG4udmlkZW9EYXRhLnNhYnJDb250ZXh0VXBkYXRlcy5rZXlzKCkpbi52aWRlb0RhdGEuc2FickNvbnRleHRVcGRhdGVzLmdldChXKT8uc2VuZEJ5RGVmYXVsdCYmbi52aWRlb0RhdGEuYmQuYWRkKFcpO2lmKG4ucG9saWN5LlkmJm4uTi5sZW5ndGgpZm9yKGxldCBEIG9mIG4uTikoVz1ELm1mKCkpJiZXLnR5cGUmJlcuc2VuZEJ5RGVmYXVsdCYmbi52aWRlb0RhdGEuYmQuYWRkKFcudHlwZSl9Owptdj1mdW5jdGlvbihuKXtmb3IoO24uTi5sZW5ndGgmJm4uTlswXS5CNihuLkUxKCkpOyl7bGV0IFc9bi5OLnNoaWZ0KCk7ajlDKG4sVyl9bi5OLmxlbmd0aCYmajlDKG4sbi5OWzBdKX07Cmo5Qz1mdW5jdGlvbihuLFcpe1cgaW5zdGFuY2VvZiB1dSYmKG4uZSQ9Vyk7dmFyIEQ9bmV3IFNldChXLlNKKG4uRTEoKSkpO2ZvcihsZXQgaCBvZiBEKXtpZihEPVcgaW5zdGFuY2VvZiBLRCl7RD1uLms2O3ZhciBiPXl5eChELGgpLHY9bkQoRCxELnZpZGVvSW5mb3MpLmluY2x1ZGVzKGgpOyFELm9aLlRQfHxifHx2fHxELmxvYWRlci5VKCJzYWJyY3BmIix7ZmlkOmAke2h9YCx2ZmlkczpgJHtuRChELEQudmlkZW9JbmZvcykuam9pbigiLiIpfWAsc2FpZDpELll8fCIifSk7RD0hKGJ8fHYpfWlmKEQpY29udGludWU7RD1XIGluc3RhbmNlb2YgdXU/eUIoVyk6dm9pZCAwO2lmKEQhPT12b2lkIDApe2lmKCFXLlFBKGgsbi5FMSgpKSljb250aW51ZTtiPW4uS3UuSi5nZXQoaCk7aWYoIWIpY29udGludWU7bi5wb2xpY3kueUUmJmIuaW5mby5OKCl8fChiLmluZm8uZVMoKT9uLmF1ZGlvVHJhY2s6bi52aWRlb1RyYWNrKS5aYyhELGgpO2NvbnRpbnVlfUQ9Vy5mMyhoLG4uRTEoKSk7Yj1uLnBvbGljeS55RSYmCkQubGVuZ3RoPjAmJkRbMF0uUEouaW5mby5OKCk7aWYoIVcuUUEoaCxuLkUxKCkpKWNvbnRpbnVlO3Y9Vy54OShoLG4uRTEoKSk7Zm9yKGxldCB4IG9mIHYpe24ucG9saWN5LlcmJlcgaW5zdGFuY2VvZiBLRCYmbi5sb2FkZXIuVSgib21ibHNzIix7czp4LmluZm8uZ2EoKX0pO2lmKGIpe3Y9bi50aW1pbmc7di5EfHwodi5EPSgwLGcuUikoKSxnLkVHKCJmY2JfciIsdi5ELHYuelIpKTtpZihuLnBvbGljeS5rdSl7dj1nLlZmKHguaW5mby5QSi5pbmZvLG4uS3UuelcpO3ZhciBrPXguaW5mby5qJDtpZihuLksmJk1rKG4uSyk9PT1Nayh2KSYmazw9bi5jSiljb250aW51ZTt4LmluZm8uYVomJihuLks9dixuLmNKPWspfXY9bjt2LnZpZGVvRGF0YS56VygpJiZ2LlgmJk1rKHYuWCk9PT1NayhnLlZmKHguaW5mby5QSi5pbmZvLHYuS3UuelcpKSYmdi5MLldKKCJzYWJyQ2FwdGlvbnNEYXRhTG9hZGVkIix4LHYueUUuYmluZCh2KSk7Y29udGludWV9dj14LmluZm8uUEouaW5mby5lUygpO2s9eC5pbmZvLlBKOwpsZXQgTD1XIGluc3RhbmNlb2YgS0Q/MToyO2lmKHYpe2lmKG4uazYuWHIoayxMLFcuSmQobi5FMSgpKT8udG9rZW4pKWNvbnRpbnVlfWVsc2Ugbi5rNi5EUihrLEwsVy5KZChuLkUxKCkpPy50b2tlbik7az12P24uYXVkaW9UcmFjazpuLnZpZGVvVHJhY2s7VyBpbnN0YW5jZW9mIEtEJiYoay5qPSExLFcgaW5zdGFuY2VvZiBLRCYmKHY/Z2oxKG4udGltaW5nKTplN2Iobi50aW1pbmcpKSk7dHJ5e2suV2coRCx4KX1jYXRjaChlKXt2PUIkKGUpLG4ubG9hZGVyLmhhbmRsZUVycm9yKHYuZXJyb3JDb2RlLHYuZGV0YWlscyx2LnNldmVyaXR5KSxrLnppKCksbi5YJCghMSwicHVzaFNsaWNlIiksZy5BZyhuLmxvYWRlcil9fX19OwpPeVo9ZnVuY3Rpb24obixXKXtuLnBvbGljeS5ZP24uTi5zcGxpY2Uobi5OLmluZGV4T2YoVykpLmZvckVhY2goRD0+e0QuZGlzcG9zZSgpfSk6KG4uTi5wb3AoKSxXPy5kaXNwb3NlKCkpfTsKQ09qPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1bXTtmb3IobGV0IHY9MDt2PG4uTi5sZW5ndGg7disrKVcmJm4uTlt2XWluc3RhbmNlb2YgS0Q/Yi5wdXNoKG4uTlt2XSk6KG4ucG9saWN5Lk1kJiZuLmxvYWRlci5VKCJzYWJyZGlzIix7ZDpuLk5bdl0uY0EoKSxzcmM6RH0pLG4uTlt2XS5kaXNwb3NlKCkpO24uTj1ifTsKQkp0PWZ1bmN0aW9uKG4sVyl7aWYoVy50bigpfHxXLnFOKCkpe3ZhciBEPW4ubG9hZGVyLGI9RC5VLHY9Vy5zdGF0ZTtuPW4uRTEoKTtXPVcubkE/LmdldChuKT8uWSgpPz8tMTtiLmNhbGwoRCwic2Ficm9tYiIse3M6dix0Ynl0ZXM6V30pfWVsc2V7RD1XLlNKKG4uRTEoKSk7Yj0hMTtmb3IobGV0IGsgb2YgRClpZih2PW4uazYsbkQodix2LnZpZGVvSW5mb3MpLmluY2x1ZGVzKGspKXtiPSEwO2JyZWFrfWlmKEQubGVuZ3RoPT09MHx8YiluLlBYPSEwO24uTi5wdXNoKFcpO1cuWEwucHVzaChuKTtpdShuLnRpbWluZyk7bi5wb2xpY3kuclcmJlcuYlAmJm4udVEoVy5iUCxXLmNBKCkpfX07ClRKYj1mdW5jdGlvbihuKXt2YXIgVz1uLmF1ZGlvVHJhY2suenMoITApKjFFMztuPW4udmlkZW9UcmFjay56cyghMCkqMUUzO3JldHVybntjdjpXLGFrOm59fTsKRllDPWZ1bmN0aW9uKG4se1NzOlcsYk06RH0pe2lmKFc9PT12b2lkIDApcmV0dXJuITE7Vz1EP24uTC5sSyhXKTpXO2lmKFc9IW4ubG9hZGVyLmZwKFcpJiZVMFoobixuLkN1KSl7Vz1uLkwuZ2V0Q3VycmVudFRpbWUoKSoxRTM7bGV0IHtCMTpiLGwxOnZ9PXlPWihuLFcpO1c9Yj49N0UzJiZ2Pj03RTN9cmV0dXJuIFd9Owp3Qng9ZnVuY3Rpb24obixXKXtuLmRlbGF5Py5kaXNwb3NlKCk7bi5kZWxheT1udWxsO3ZhciBEPUFycmF5LmZyb20obi5OLnZhbHVlcygpKS5zb3J0KChiLHYpPT5iLm1lZGlhVGltZS12Lm1lZGlhVGltZSk7CkQubGVuZ3RoIT09MCYmKFc9KERbMF0ubWVkaWFUaW1lLVcpKjFFMy9uLkwuZ2V0UGxheWJhY2tSYXRlKCksbi5kZWxheT1uZXcgZy5mXygoKT0+e3pjKG4pfSxXPjUwMD9XLTUwMDpXKSxuLmRlbGF5LnN0YXJ0KCkpfTsKemM9ZnVuY3Rpb24obixXKXtpZihsMShuLkwuZ2V0UGxheWVyU3RhdGUoKSkmJm4uTi5zaXplIT09MCl7Vz1XPz9BcnJheS5mcm9tKG4uTi52YWx1ZXMoKSkuc29ydCgodixrKT0+di5tZWRpYVRpbWUtay5tZWRpYVRpbWUpOwp2YXIgRD1uLmdldEN1cnJlbnRUaW1lKCksYj0oV1swXS5tZWRpYVRpbWUtRCkqMUUzL24uTC5nZXRQbGF5YmFja1JhdGUoKTtpZihiPDUwMCl7RD1iPjA/bi5MLmg1KCk/LmdldEN1cnJlbnRUaW1lKCk/P24uTC5nZXRDdXJyZW50VGltZSgpOkQ7Zm9yKGxldCB2IG9mIFcpaWYoRD49di5tZWRpYVRpbWUpdi5yZXNvbHZlKFt2Lm1lZGlhVGltZSx2LmlkXSksbi5OLmRlbGV0ZSh2LmlkKTtlbHNlIGJyZWFrfXdCeChuLEQpfX07Ck1fdz1mdW5jdGlvbihuLFcsRCl7bi5OLmRlbGV0ZShEKTtyZXR1cm4gbmV3IFByb21pc2UoYj0+e24uTi5zZXQoRCx7aWQ6RCxtZWRpYVRpbWU6VyxyZXNvbHZlOmJ9KTtiPUFycmF5LmZyb20obi5OLnZhbHVlcygpKS5zb3J0KCh2LGspPT52Lm1lZGlhVGltZS1rLm1lZGlhVGltZSk7CkQ9PT1iWzBdLmlkJiZ6YyhuLGIpfSl9OwpROWI9ZnVuY3Rpb24obil7dmFyIFc9bi5MLmg1KCk/LmdldEN1cnJlbnRUaW1lKCk/P24uTC5nZXRDdXJyZW50VGltZSgpLEQ9bi5YLlIzKFcpO1JTQyhuLEQsVyk7bi5pc1NlZWtpbmc9ITE7dmFyIGI9QXJyYXkuZnJvbShuLk4ua2V5cygpKS5maWx0ZXIodj0+dj49RCkuc29ydCgodixrKT0+di1rKTsKZm9yKGxldCB2IG9mIGIpYj12PT09RD9XLW4uWC5nZXRTdGFydFRpbWUoRCk6MCxuLksodixuLk4uZ2V0KHYpLGIpfTsKVl8yPWZ1bmN0aW9uKG4sVyxELGI9ITEpe1chPT1uLktZJiYobi5LWT1XLG4uTC5XSigicGxheWJhY2tzdGFydGVkIixXLEQrbi5MLlNXKCksYikpfTsKUlNDPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uLk4uZ2V0KFcpLHY9bi5YLmdldFN0YXJ0VGltZShXKSxrPW4uWC5nZXREdXJhdGlvbihXKSxoPXY7KGI/Lk4/P1tuLmNwbl0pLmZvckVhY2goKHgsTCk9Pnt2YXIgZT1iPy5KW0xdPz9rO0Q+PWgmJkQ8aCtlJiYoTD14IT09bi5jcG4/aC0oYj8uWFtMXT8/MCk6aCxuLko9eCxWXzIobix4LEwsITApKTtoKz1lfSl9OwpjT3c9ZnVuY3Rpb24obixXKXsobi5XLmdldChXKT8/W10pLmZvckVhY2goRD0+e24uai5OLmRlbGV0ZShEKX0pOwpuLlcuZGVsZXRlKFcpfTsKYUlaPWZ1bmN0aW9uKG4sVyxELGIpe24uSj1EO0Q9YCR7V30uJHtEfWA7bi5XLmhhcyhXKT9uLlcuZ2V0KFcpLnB1c2goRCk6bi5XLnNldChXLFtEXSk7TV93KG4uaixiLEQpLnRoZW4oKFt2LGtdKT0+e3ZhciBbaCx4XT1rLnNwbGl0KCIuIik7WyxrXT1bTnVtYmVyKGgpLHhdO1ZfMihuLGssdil9KX07CldYaD1mdW5jdGlvbihuLFcsRCxiLHYsayl7cmV0dXJuIFcuVDcmJlcuRTUmJkQ9PT0zP25ldyBudTEobixXLGIsdixrKTpudWxsfTsKRExiPWZ1bmN0aW9uKG4sVyl7aWYobi5wb2xpY3kuRDIpe3ZhciBEPVcuaW5mby5OcyxiPUdEKG4uc2NoZWR1bGUpO1c9Vy5pbmRleC5VYygpO0Q9TWF0aC5tYXgoMSxiL0QpO24uWT1NYXRoLnJvdW5kKE1hdGgubWF4KCgoRC0xKSpXK24ucG9saWN5LndhKS9ELFctbi5wb2xpY3kuTWwpKjFFMyl9fTsKa25yPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9RGF0ZS5ub3coKS8xRTMsYj1ELW4uc3RhcnRUaW1lU2Vjcyx2PUQtbi5WLGs9dj49bi5wb2xpY3kuT04saD0hMTtpZihrKXtsZXQgeD0wOyFpc05hTihXKSYmVz5uLmomJih4PVctbi5qLG4uaj1XKTt4L3Y8bi5wb2xpY3kuSVcmJihoPSEwKTtuLlY9RH1EPWI+PW4ucG9saWN5Lk1sJiYhbi5XO2lmKCFrJiYhRCYmYkZqKG4sVykpcmV0dXJuIE5hTjtEJiYobi5XPSEwKTthOntiPWg7RD0oMCxnLlIpKCkvMUUzLShuLnF6LkxnKCl8fDApLW4uSy5XLW4ucG9saWN5LndhO2s9bi5KLnNlZ21lbnRTdGFydFRpbWU7RD1rK0Q7aWYoYil7aWYoaXNOYU4oVykpe1RjKG4sTmFOLCJuIixXKTtrPU5hTjticmVhayBhfWI9Vy1uLnBvbGljeS5FVDtiPEQmJihEPWIpfWVsc2Ugbi5XJiYoYj1EK24ucG9saWN5LndhLW4uTytuLnBvbGljeS5BTCxpc05hTihXKXx8KGI9TWF0aC5tYXgoYixNYXRoLm1pbihELFctbi5wb2xpY3kuRVQpKSksRD1iKTtrPUQ9TWF0aC5tYXgoRCwKayl9bi5OPWs7aWYoaXNOYU4obi5OKSlyZXR1cm4gbi5jbGVhcigpLE5hTjtpZighaCYmYkZqKG4sVykpcmV0dXJuIHZ1TShuLFcpLE5hTjtpZihuLk48PW4uSi5zZWdtZW50U3RhcnRUaW1lKXJldHVybiBUYyhuLE5hTiwieSIsVyksbi5jbGVhcigpLE5hTjtpZighbi5EKG4uTiwhMSkpcmV0dXJuIXZ1TShuLFcpJiZoJiYoVGMobixOYU4sInQiLFcpLG4uY2xlYXIoKSksTmFOO2g9bi5OO1RjKG4saCwicyIsVyk7bi5jbGVhcigpO3JldHVybiBofTsKYkZqPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGlzTmFOKFcpPyEwOmlzTmFOKG4uTik/ITE6VzxuLk4rKG4uVz9uLnBvbGljeS5FVDpuLnBvbGljeS5neCl9Owp2dU09ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5EKG4uTiwhMCk/ITE6KFRjKG4sTmFOLCJucyIsVyksbi5jbGVhcigpLCEwKX07ClRjPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PW4uWC55MCgpO3Yuc3NyX3NrPShXKjFFMykudG9GaXhlZCgwKTt2LnNzcl90PShuLk4qMUUzKS50b0ZpeGVkKDApO3Yuc3NyX3I9RDt2LnNzcl9zdD0obi5zdGFydFRpbWVTZWNzKjFFMykudG9GaXhlZCgwKTt2LnNzcl9uPSgwLGcuUikoKS50b0ZpeGVkKDApO3Yuc3NyX2Y9KG4uSy5XKjFFMykudG9GaXhlZCgwKTt2LnNzcl9mYT1uLlc/IjEiOiIwIjt2LnNzcl9vPShuLnF6LkxnKCkqMUUzfHwwKS50b0ZpeGVkKDApO3Yuc3NyX3Y9KGIqMUUzKS50b0ZpeGVkKDApO1c9bi5KLlBKLmluZGV4O1cuTUkobi5KLmokLCEwKSYmKHYuc3NyX2lzdD0oVy5nZXRTdGFydFRpbWUobi5KLmokKSoxRTMpLnRvRml4ZWQoMCksdi5zc3JfaWQ9KFcuZ2V0RHVyYXRpb24obi5KLmokKSoxRTMpLnRvRml4ZWQoMCkpO24ubG9hZGVyLlUoInNzciIsdil9OwpoUXg9ZnVuY3Rpb24oKXt2YXIgbj17fSxXPXdpbmRvdy5wZXJmb3JtYW5jZTtpZihXKXtsZXQgRD1XLm1lbW9yeTtEJiYobi5qc1RvdGFsPUQudG90YWxKU0hlYXBTaXplLG4uanNVc2VkPUQudXNlZEpTSGVhcFNpemUsbi5qc0xpbWl0PUQuanNIZWFwU2l6ZUxpbWl0LG4ubXNUb3RhbD1ELmdldE1lZGlhU291cmNlVG90YWxBbGxvY2F0ZWRNZW1vcnk/LigpPz9ELnRvdGFsTWVkaWFTb3VyY2VTaXplLG4ubXNMaW1pdD1ELmdldE1lZGlhU291cmNlTWF4aW11bU1lbW9yeUNhcGFjaXR5Py4oKT8/RC5tZWRpYVNvdXJjZVNpemVMaW1pdCxuLm1zVXNlZD1ELmdldE1lZGlhU291cmNlQ3VycmVudE1lbW9yeUNhcGFjaXR5Py4oKT8/RC51c2VkTWVkaWFTb3VyY2VNZW1vcnlTaXplKTtXLm1lYXN1cmVBdmFpbGFibGVDcHVNZW1vcnkmJihuLmNiRnJlZT1XLm1lYXN1cmVBdmFpbGFibGVDcHVNZW1vcnkoKSk7Vy5tZWFzdXJlVXNlZENwdU1lbW9yeSYmKG4uY2JVc2VkPVcubWVhc3VyZVVzZWRDcHVNZW1vcnkoKSl9d2luZG93Lmg1dmNjPy5jVmFsJiYKKG4uY2JGcmVlPXdpbmRvdy5oNXZjYy5jVmFsLmdldFZhbHVlKCJNZW1vcnkuQ1BVLkZyZWUiKSxuLmNiVXNlZD13aW5kb3cuaDV2Y2MuY1ZhbC5nZXRWYWx1ZSgiTWVtb3J5LkNQVS5Vc2VkIiksbi5jYkpzPXdpbmRvdy5oNXZjYy5jVmFsLmdldFZhbHVlKCJNZW1vcnkuSlMiKSk7cmV0dXJuIG59Owp4THQ9ZnVuY3Rpb24obil7cmV0dXJuIHdpbmRvdy5QcmVzc3VyZU9ic2VydmVyJiZuZXcgd2luZG93LlByZXNzdXJlT2JzZXJ2ZXIobil9OwpMWHI9YXN5bmMgZnVuY3Rpb24obil7dHJ5e2F3YWl0IG4uan1jYXRjaHt9bi5XPy5kaXNjb25uZWN0KCl9OwpndUM9ZnVuY3Rpb24obixXKXtXP2VRai50ZXN0KG4pOihuPWcub0UobiksT2JqZWN0LmtleXMobikuaW5jbHVkZXMoImNwbiIpKX07CmpSPWZ1bmN0aW9uKG4sVyxELGIsdixrKXt2YXIgaD17Zm9ybWF0OiJSQVcifSx4PXt9O2lmKGcuVGQobikmJmcuakgoKSl7bGV0IEw9Zy5BcigiRU9NX1ZJU0lUT1JfREFUQSIpO0w/eFsiWC1Hb29nLUVPTS1WaXNpdG9yLUlkIl09TDpiP3hbIlgtR29vZy1WaXNpdG9yLUlkIl09YjpnLkFyKCJWSVNJVE9SX0RBVEEiKSYmKHhbIlgtR29vZy1WaXNpdG9yLUlkIl09Zy5BcigiVklTSVRPUl9EQVRBIikpO0QmJih4WyJYLUdvb2ctUGFnZUlkIl09RCk7KGI9Vy5UQykmJiFnLnFGKFcpJiYoeFsiWC1Hb29nLUF1dGhVc2VyIl09Yik7diYmKHguQXV0aG9yaXphdGlvbj1gQmVhcmVyICR7dn1gKTtXLlMoImVuYWJsZV9kYXRhc3luY19pZF9oZWFkZXJfaW5fd2ViX3Zzc19waW5ncyIpJiZXLllyJiZXLmRhdGFzeW5jSWQmJih4WyJYLVlvdVR1YmUtRGF0YVN5bmMtSWQiXT1XLmRhdGFzeW5jSWQpO2lmKFcuUygiZW5hYmxlX3JvbGxvdXRfdG9rZW5faGVhZGVyIikpe2xldCBlPWcuQXIoIklOTkVSVFVCRV9DT05URVhUIik/LmNsaWVudD8ucm9sbG91dFRva2VuOwplJiYoeFsiWC1Zb3VUdWJlLVJvbGxvdXQtVG9rZW4iXT1lKX1MfHx4WyJYLUdvb2ctVmlzaXRvci1JZCJdfHx2fHxEfHxiP2gud2l0aENyZWRlbnRpYWxzPSEwOlcuUygiaHRtbDVfc2VuZF9jcG5fd2l0aF9vcHRpb25zIikmJmVRai50ZXN0KG4pJiYoaC53aXRoQ3JlZGVudGlhbHM9ITApfU9iamVjdC5rZXlzKHgpLmxlbmd0aD4wJiYoaC5oZWFkZXJzPXgpO2smJihoLm9uRmluaXNoPWspO3JldHVybiBPYmplY3Qua2V5cyhoKS5sZW5ndGg+MT9oOm51bGx9OwpDRD1mdW5jdGlvbihuLFcsRCxiLHYsayxoLHgpe2cuakgoKSYmRC50b2tlbiYmKG49Zy56ZChuLHtjdHQ6RC50b2tlbixjdHR5cGU6RC55byxtZHhfZW52aXJvbm1lbnQ6RC5tZHhFbnZpcm9ubWVudH0pKTtiLlMoIm5ldF9waW5nc19sb3dfcHJpb3JpdHkiKSYmKFd8fChXPXt9KSxXLnByaW9yaXR5PSJsb3ciKTtrfHx4JiZiLlMoIm53bF9za2lwX3JldHJ5Iik/KFc9PW51bGw/Vz17fTpndUMobixiLlMoImh0bWw1X2Fzc2VydF9jcG5fd2l0aF9yZWdleCIpKSxoP2cuSFUoKS5zZW5kQW5kV3JpdGUobixXKTpnLkhVKCkuc2VuZFRoZW5Xcml0ZShuLFcseCkpOlc/KGd1QyhuLGIuUygiaHRtbDVfYXNzZXJ0X2Nwbl93aXRoX3JlZ2V4IikpLEJXaihuLFcpKTpnLmdvKG4sdil9OwpYTmk9ZnVuY3Rpb24obil7dmFyIFc9W107Zm9yKGxldCBEPTA7RDxuO0QrKyl7bGV0IGI9e30sdj1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqOSoxRTgpKzFFOCxrPSIiO2ZvcihsZXQgaD0wO2g8OTtoKyspays9ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo1MildO2IudmlkZW9EZWNvZGVyTmFtZT1rO2IuZWxhcHNlZFRpbWVNcz12O1cucHVzaChiKX1yZXR1cm4gV307CkJsPWZ1bmN0aW9uKG4sVyl7bj13aW5kb3cuaDV2Y2M/LnNldHRpbmdzPy5zZXQobixXKTtyZXR1cm4gWW8obik/U2soSFAobiksKCk9PiEwLCgpPT4hMSk6SFAoISFuKX07CnFScj1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhU291cmNlLkVuYWJsZVVzaW5nTWVkaWFTb3VyY2VCdWZmZXJlZFJhbmdlIixuPzE6MCl9OwpHbnc9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJIVFRQMyIsbj8xOjApfTsKdEZ4PWZ1bmN0aW9uKG4pe3JldHVybiBCbCgiTWVkaWFTb3VyY2UuRW5hYmxlVXNpbmdNZWRpYVNvdXJjZUF0dGFjaG1lbnRNZXRob2RzIixuPzE6MCl9OwokTEM9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJRVUlDIixuPzE6MCl9OwpyYzI9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5BdWRpb1dyaXRlRHVyYXRpb25Mb2NhbCIsbil9OwpzZ3c9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5QbGF5ZXJDb25maWd1cmF0aW9uLkRlY29kZVRvVGV4dHVyZVByZWZlcnJlZCIsbj8xOjApfTsKTjBTPWZ1bmN0aW9uKG4pe3JldHVybiBCbCgiTWVkaWEuVmlkZW9EZWNvZGVySW5pdGlhbFByZXJvbGxDb3VudCIsbil9OwpwTnQ9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5WaWRlb1JlbmRlcmVyTWluSW5wdXRCdWZmZXJzIixuKX07CllSdz1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLlZpZGVvUmVuZGVyZXJNaW5EZWNvZGVkRnJhbWVzIixuKX07CkhGWj1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkluY3JlbWVudGFsUGFyc2VMb29rQWhlYWQiLG4/MTowKX07CmZ5VT1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkVuYWJsZVJlc2V0QXVkaW9EZWNvZGVyIixuPzE6MCl9OwpKY2I9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5FbmFibGVGbHVzaER1cmluZ1NlZWsiLG4/MTowKX07Ckl5dz1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIkRlY29kZXJCdWZmZXIuRW5hYmxlQ29uZmlndXJhYmxlRGVjb21taXRTdHJhdGVneSIsbil9OwpTUnQ9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJEZWNvZGVyQnVmZmVyLlJlbGVhc2VNZW1vcnlPbkJhY2tncm91bmQiLG4/MTowKX07CkFjWj1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkRlY29kZWRBdWRpb0J1ZmZlclBvb2wiLG4/MTowKX07Cm1MMj1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLlZpZGVvRnJhbWVJbXBsUG9vbCIsbj8xOjApfTsKS1haPWZ1bmN0aW9uKG4pe3JldHVybiBCbCgiTWVkaWEuRXhwZXJpbWVudGFsTWF4UGVuZGluZ0J5dGVzUGVyUGFyc2UiLG4pfTsKdmFyIE9XdD1mdW5jdGlvbihuKXtyZXR1cm4gZVhbSVsxMF1dKHRoaXMsMTksNzA4NyxuKX07Ck9GQz1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLk1heFNhbXBsZXNQZXJXcml0ZSIsbil9OwpQUXI9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5NZWRpYUNvZGVjUmVzZXREZWxheU1zIixuKX07ClpGdD1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkRpc2FibGVMb3dQZXJmb3JtYW5jZVNvZnR3YXJlRGVjb2RlIixuPzE6MCl9OwpVTDI9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5FbmFibGVBdjFTdGFydHVwT3B0aW1pemF0aW9uIixuPzE6MCl9Owp5YzI9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5Vc2VEdWFsVGhyZWFkc0ZvclZpZGVvIixuPzE6MCl9OwpFdXQ9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5WaWRlb0J1ZmZlclNpemVDbGFtcE1iIixuKX07CmlGVT1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLjcyMHBWaWRlb0J1ZmZlclNpemVDbGFtcE1iIixuKX07CnVxdD1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkZvcmNlRGVjb2RlVG9UZXh0dXJlIixuPzE6MCl9OwpvdTI9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5Gb3JjZUNsZWFyU3VyZmFjZVZpZXciLG4/MTowKX07CmRMaT1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkVuYWJsZUxvd0xhdGVuY3kiLG4/MTowKX07CnpRUz1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLlNraXBGbHVzaE9uRGVjb2RlclRlYXJkb3duIixuPzE6MCl9OwpseTI9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5BbGxvd0F1ZGlvV3JpdGluZ09uUGF1c2UiLG4/MTowKX07ClQwVT1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkVuYWJsZVZpZGVvUmVuZGVyZXJWc3BBZGp1c3RtZW50IixuPzE6MCl9OwpqZ2g9ZnVuY3Rpb24obil7cmV0dXJuIEJsKCJNZWRpYS5Ta2lwVmlkZW9GcmFtZXNPdmVyNjBGcHMiLG4/MTowKX07CkNRQz1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkZsdXNoQXVkaW9UcmFja0R1cmluZ1NlZWsiLG4/MTowKX07CkIwaj1mdW5jdGlvbihuKXtyZXR1cm4gQmwoIk1lZGlhLkJ5cGFzc01vam9Gb3JNZWRpYSIsbj8xOjApfTsKRlgyPWZ1bmN0aW9uKG4pe3JldHVybiBCbCgiTWVkaWEuSWdub3JlTWVkaWFDb2RlY0NhbGxiYWNrc0R1cmluZ0ZsdXNoaW5nIixuPzE6MCl9OwpNRng9ZnVuY3Rpb24oKXt2YXIgbj13aW5kb3cuaDV2Y2M/LnNldHRpbmdzPy5nZXRQZXJzaXN0ZW50U2V0dGluZ0FzU3RyaW5nPy4oImNwdV91c2FnZV90cmFja2VyX2ludGVydmFscyIpO2lmKG4hPW51bGwpe249SlNPTi5wYXJzZShuKT8/W107dmFyIFc9bi5maWx0ZXIoRD0+RC50eXBlPT09InRvdGFsIikubWFwKEQ9PkQuc2Vjb25kcyk7CmZvcihsZXQgRCBvZiB3TjIpVy5pbmRleE9mKEQpPT09LTEmJm4ucHVzaCh7dHlwZToidG90YWwiLHNlY29uZHM6RH0pO3dpbmRvdy5oNXZjYz8uc2V0dGluZ3M/LnNldCgiY3B1X3VzYWdlX3RyYWNrZXJfaW50ZXJ2YWxzX2VuYWJsZWQiLDEpO3dpbmRvdy5oNXZjYz8uc2V0dGluZ3M/LnNldCgiY3B1X3VzYWdlX3RyYWNrZXJfaW50ZXJ2YWxzIixKU09OLnN0cmluZ2lmeShuKSl9fTsKUlFVPWZ1bmN0aW9uKCl7dmFyIG49d2luZG93Lkg1dmNjUGxhdGZvcm1TZXJ2aWNlLFc9IiI7aWYobiYmbi5oYXMoImRldi5jb2JhbHQuY29hdC5jbGllbnRsb2dpbmZvIikmJihuPW4ub3BlbigiZGV2LmNvYmFsdC5jb2F0LmNsaWVudGxvZ2luZm8iLCgpPT57fSkpKXtsZXQgRD1uLnNlbmQobmV3IEFycmF5QnVmZmVyKDApKTsKRCYmKFc9U3RyaW5nLmZyb21DaGFyQ29kZSguLi4obmV3IFVpbnQ4QXJyYXkoRCkpKSk7bi5jbG9zZSgpfXJldHVybiBXfTsKVkZTPWZ1bmN0aW9uKG4pe3ZhciBXPXdpbmRvdy5INXZjY1BsYXRmb3JtU2VydmljZTtpZihXKXt2YXIgRD1RZ2kuZmluZChiPT5XLmhhcyhiKSk7CkQmJihEPVcub3BlbihELCgpPT57fSkpJiYoRC5zZW5kKEl3KGBjcG46ICR7bn1gKS5idWZmZXIpLEQuY2xvc2UoKSl9fTsKZy53aj1mdW5jdGlvbihuLFcsRCxiKXtnLkZCKG4sRCxgJHtXLnRvRml4ZWQoMyl9OiR7Yi5qb2luKCI6Iil9YCl9OwpNUD1mdW5jdGlvbihuLFcpe3ZhciBEPW4ucHJvdmlkZXIuZ2V0Q3VycmVudFRpbWUoKTtnLndqKG4sVywiY210IixbRC50b0ZpeGVkKDMpXSk7dmFyIGI9RD1uLnByb3ZpZGVyLm90KCk7aWYoKCFuLmp8fEFKKG4ucHJvdmlkZXIudmlkZW9EYXRhKT8wOmIqMUUzPm4uai52TysxMDApJiZuLmope2I9bi5qLmlzQWQ7RD1EKjFFMy1uLmoudk87bi5lST1XKjFFMy1uLmoudFMtRC1uLmouT2E7dmFyIHY9KDAsZy5SKSgpLUQ7Vz1uLmVJO0Q9bi5wcm92aWRlci52aWRlb0RhdGE7dmFyIGs9RC5pc0FkKCk7aWYoYnx8ayl7az1gJHtiPyJhZCI6InZpZGVvIn1fdG9fJHtrPyJhZCI6InZpZGVvIn1gO3ZhciBoPXt9O0Qua1cmJihoLmN0dEF1dGhJbmZvPXt0b2tlbjpELmtXLHZpZGVvSWQ6RC52aWRlb0lkfSk7aC5zdGFydFRpbWU9di1XO2cuYmQoayxoKTtnLm5sKHt0YXJnZXRWaWRlb0lkOkQudmlkZW9JZCx0YXJnZXRDcG46RC5jbGllbnRQbGF5YmFja05vbmNlfSxrKTtnLmFMKCJwYnMiLHYsCmspfWVsc2Ugdj1uLnByb3ZpZGVyLkwuZUcoKSx2LlYhPT1ELmNsaWVudFBsYXliYWNrTm9uY2U/KHYuaj1ELmNsaWVudFBsYXliYWNrTm9uY2Usdi5KPVcpOkQuTlAoKXx8Zy5HcShuZXcgZy5ReCgiQ1NJIHRpbWluZyBsb2dnZWQgYmVmb3JlIGdsbGF0Iix7Y3BuOkQuY2xpZW50UGxheWJhY2tOb25jZX0pKTtuLlUoImdsbGF0Iix7bDpuLmVJLnRvRml4ZWQoKSxwcmV2X2FkOitifSk7ZGVsZXRlIG4uan19OwpnLkZCPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uLkouZ2V0KFcpO2I/Yi5wdXNoKEQpOm4uSi5zZXQoVyxbRF0pfTsKUXU9ZnVuY3Rpb24obixXKXtuLmlzT2ZmbGluZT1XO2cud2oobixnLlJrKG4ucHJvdmlkZXIpLCJpc19vZmZsaW5lIixbbi5pc09mZmxpbmU/IjEiOiIwIl0pfTsKVnU9ZnVuY3Rpb24obixXLEQpe2lmKCFpc05hTihELlc3KSl7bGV0IGI9RC5XNztELko8YiYmKGI9RC5KKTtnLndqKG4sVywiYmgiLFtiLnRvRml4ZWQoMyldKX19OwpjbD1mdW5jdGlvbihuLFc9TmFOKXtXPVc+PTA/VzpnLlJrKG4ucHJvdmlkZXIpO3ZhciBEPW4ucHJvdmlkZXIuTC5ISygpLGI9RC5Fci0obi52Snx8MCk7Yj4wJiZnLndqKG4sVywiYndtIixbYiwoRC5vdy0obi5FNXx8MCkpLnRvRml4ZWQoMyldKTtpc05hTihuLnZKKSYmRC5FciYmbi5pc09mZmxpbmUmJlF1KG4sITEpO24udko9RC5FcjtuLkU1PUQub3c7aXNOYU4oRC5iYW5kd2lkdGhFc3RpbWF0ZSl8fGcud2oobixXLCJid2UiLFtELmJhbmR3aWR0aEVzdGltYXRlLnRvRml4ZWQoMCldKTtuLnByb3ZpZGVyLkIuV1goKSYmT2JqZWN0LmtleXMoRC5OKS5sZW5ndGghPT0wJiZuLlUoImJ3aW5mbyIsRC5OKTtpZihuLnByb3ZpZGVyLkIuV1goKXx8bi5wcm92aWRlci5CLlMoImh0bWw1X2xvZ19tZW1pbmZvIikpYj1oUXgoKSxPYmplY3QudmFsdWVzKGIpLnNvbWUodj0+diE9PXZvaWQgMCkmJm4uVSgibWVtaW5mbyIsYik7Cm4ucHJvdmlkZXIuQi5XWCgpJiYoYj1uLnlFPy5YKCkpJiZPYmplY3QudmFsdWVzKGIpLnNvbWUodj0+diE9bnVsbCkmJm4uVSgiY3B1aW5mbyIsYik7Cm4uVEMmJmcud2oobixXLCJiYXQiLFtuLlRDLmxldmVsLG4uVEMuY2hhcmdpbmc/IjEiOiIwIl0pO2I9bi5wcm92aWRlci5MLmdldFZpc2liaWxpdHlTdGF0ZSgpO24uVTUhPT1iJiYoZy53aihuLFcsInZpcyIsW2JdKSxuLlU1PWIpO01QKG4sVyk7KGI9Y2NaKG4ucHJvdmlkZXIpKSYmYiE9PW4uWSQmJihnLndqKG4sVywiY29ubiIsW2JdKSxuLlkkPWIpO1Z1KG4sVyxEKX07Cm5PTT1mdW5jdGlvbihuLFcsRCl7dmFyIGI9Zy5SayhuLnByb3ZpZGVyKTtheVoobixiLFcsMCxEKTtjbChuLGIpO2FrKG4pfTsKbkM9ZnVuY3Rpb24obixXKXtnLkZCKG4sImNhdCIsVyl9OwpXVGg9ZnVuY3Rpb24obixXKXtXPXtjcG46bi5wcm92aWRlci52aWRlb0RhdGEuY2xpZW50UGxheWJhY2tOb25jZSxzZXF1ZW5jZU51bWJlcjpXLHNlcmlhbGl6ZWRXYXRjaEVuZHBvaW50TG9nZ2luZ0NvbnRleHQ6bi5wcm92aWRlci52aWRlb0RhdGEubTB9O24uc2VyaWFsaXplZEhvdXNlQnJhbmRQbGF5ZXJTZXJ2aWNlTG9nZ2luZ0NvbnRleHQmJihXLnNlcmlhbGl6ZWRIb3VzZUJyYW5kUGxheWVyU2VydmljZUxvZ2dpbmdDb250ZXh0PWxwKG4uc2VyaWFsaXplZEhvdXNlQnJhbmRQbGF5ZXJTZXJ2aWNlTG9nZ2luZ0NvbnRleHQpfHx2b2lkIDApO24ucHJvdmlkZXIudmlkZW9EYXRhLnBsYXllclJlc3BvbnNlQ3BuJiYoVy5wbGF5ZXJSZXNwb25zZUNwbj1uLnByb3ZpZGVyLnZpZGVvRGF0YS5wbGF5ZXJSZXNwb25zZUNwbik7V3IubGVuZ3RoJiYoVy5kZWNvZGVySW5mbz1Xcik7bi5yZW1vdGVDb250cm9sTW9kZSYmKFcucmVtb3RlQ29udHJvbE1vZGU9bi5yZW1vdGVDb250cm9sTW9kZSk7Cm4ucmVtb3RlQ29ubmVjdGVkRGV2aWNlcy5sZW5ndGgmJihXLnJlbW90ZUNvbm5lY3RlZERldmljZXM9bi5yZW1vdGVDb25uZWN0ZWREZXZpY2VzKTtpZihuLlBYPy5sZW5ndGgpe1cuc2VyaWFsaXplZFFvZUNvbnRleHREYXRhPVtdO2Zvcih2YXIgRCBvZiBuLlBYKXtsZXQgYj1nLmQxKEQpO2ImJlcuc2VyaWFsaXplZFFvZUNvbnRleHREYXRhLnB1c2goYil9fSFuLmpXJiZuLnByb3ZpZGVyLnZpZGVvRGF0YS5zZXJpYWxpemVkT25lVGltZVFvZUNvbnRleHREYXRhJiYoVy5zZXJpYWxpemVkT25lVGltZVFvZUNvbnRleHREYXRhPVtdLEQ9Zy5kMShuLnByb3ZpZGVyLnZpZGVvRGF0YS5zZXJpYWxpemVkT25lVGltZVFvZUNvbnRleHREYXRhKSkmJihXLnNlcmlhbGl6ZWRPbmVUaW1lUW9lQ29udGV4dERhdGEucHVzaChEKSxuLmpXPSEwKTtuLlkuc2l6ZSYmKFcuZGFpQ3VlUG9pbnRFdmVudHM9QXJyYXkuZnJvbShuLlkudmFsdWVzKCkpKTtuLlkuY2xlYXIoKTtyZXR1cm4gV307CkRCaT1mdW5jdGlvbihuKXt2YXIgVz17Li4ubn07bi5zZXJpYWxpemVkUW9lQ29udGV4dERhdGEmJihXLnNlcmlhbGl6ZWRRb2VDb250ZXh0RGF0YT1uLnNlcmlhbGl6ZWRRb2VDb250ZXh0RGF0YS5tYXAoRD0+RCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/Zy5FQShEKTpEKSk7Cm4uc2VyaWFsaXplZE9uZVRpbWVRb2VDb250ZXh0RGF0YSYmKFcuc2VyaWFsaXplZE9uZVRpbWVRb2VDb250ZXh0RGF0YT1uLnNlcmlhbGl6ZWRPbmVUaW1lUW9lQ29udGV4dERhdGEubWFwKEQ9PkQgaW5zdGFuY2VvZiBVaW50OEFycmF5P2cuRUEoRCk6RCkpOwpuLnNlcmlhbGl6ZWRIb3VzZUJyYW5kUGxheWVyU2VydmljZUxvZ2dpbmdDb250ZXh0JiYobj1uLnNlcmlhbGl6ZWRIb3VzZUJyYW5kUGxheWVyU2VydmljZUxvZ2dpbmdDb250ZXh0LG4gaW5zdGFuY2VvZiBVaW50OEFycmF5JiYoVy5zZXJpYWxpemVkSG91c2VCcmFuZFBsYXllclNlcnZpY2VMb2dnaW5nQ29udGV4dD1nLkVBKG4pKSk7cmV0dXJuIFd9OwpiUFM9ZnVuY3Rpb24obixXLEQpe2cuSEUobi5wcm92aWRlci5CLG4ucHJvdmlkZXIudmlkZW9EYXRhLlYoKSkudGhlbihiPT57dmFyIHY9ITE7Vy5pbmNsdWRlcygiJmR0PSIpfHxXLmluY2x1ZGVzKCImY290bj0iKT92PSEwOm4ucHJvdmlkZXIuQi5TKCJxb2Vfd2l0aF9uZXR3b3JrbGVzcyIpJiYodj0hMCk7dmFyIGs9bi5wcm92aWRlci5CLlMoInFvZV9zZW5kX2FuZF93cml0ZSIpLGg9bi5wcm92aWRlci5CO2I9alIoVyxoLG4ucHJvdmlkZXIuQi5wYWdlSWQsbi5wcm92aWRlci5CLnNlbmRWaXNpdG9ySWRIZWFkZXI/bi5wcm92aWRlci52aWRlb0RhdGEudmlzaXRvckRhdGE6dm9pZCAwLGIpO2guUygiaHRtbDVfc2ltcGxpZnlfcGluZ3MiKSYmKGI9Ynx8e30pO2I/KGIubWV0aG9kPSJQT1NUIixiLnBvc3RCb2R5PUQsQ0QoVyxiLHt0b2tlbjpuLnByb3ZpZGVyLnZpZGVvRGF0YS5rVyx5bzpuLnByb3ZpZGVyLnZpZGVvRGF0YS5RdixtZHhFbnZpcm9ubWVudDpuLnByb3ZpZGVyLnZpZGVvRGF0YS5tZHhFbnZpcm9ubWVudH0sCmgsdm9pZCAwLHYsayYmbi5TJCkpOnY/KHY9bi5wcm92aWRlci5CLlMoIm5ldHdvcmtsZXNzX2FqYXgiKSxoPXttZXRob2Q6IlBPU1QiLHBvc3RCb2R5OkR9LGsmJm4uUyQ/Zy5IVSgpLnNlbmRBbmRXcml0ZShXLGgpOnY/Zy5lZChXLHttZXRob2Q6IlBPU1QiLHBvc3RCb2R5OkR9KTpnLkhVKCkuc2VuZFRoZW5Xcml0ZShXLGgpKTpndncoVyxEKX0pfTsKYWs9ZnVuY3Rpb24obil7aWYoIW4ucHJvdmlkZXIuQi5TKCJodG1sNV9xb2Vfbm9fbGVuX2NoZWNrIikpe3ZhciBXPTA7Zm9yKGxldCBbRCxiXW9mIG4uSi5lbnRyaWVzKCkpVys9RC5sZW5ndGgrTnVtYmVyKGcudV8oYiwodixrKT0+ditrLmxlbmd0aCwwKSk7Clc+OTZFMyYmKG5ldyBnLmZfKG4ucmVwb3J0U3RhdHMsMCxuKSkuc3RhcnQoKX19Owp2TzI9ZnVuY3Rpb24obil7bi5wcm92aWRlci52aWRlb0RhdGEuWVomJm5DKG4sInByZWZldGNoIik7bi5wcm92aWRlci52aWRlb0RhdGEuUyQmJm4uVSgicmVsb2FkIix7cjpuLnByb3ZpZGVyLnZpZGVvRGF0YS5yZWxvYWRSZWFzb24sY3Q6bi5wcm92aWRlci52aWRlb0RhdGEuUyR9KTtuLnByb3ZpZGVyLnZpZGVvRGF0YS5JUiYmbkMobiwibW9uaXRvciIpO24ucHJvdmlkZXIudmlkZW9EYXRhLmlzTGl2ZVBsYXliYWNrJiZuQyhuLCJsaXZlIik7TnMmJm5DKG4sInN0cmVhbWluZyIpO24ucHJvdmlkZXIudmlkZW9EYXRhLmk1JiZuLlUoImN0cmwiLHttb2RlOm4ucHJvdmlkZXIudmlkZW9EYXRhLmk1fSwhMCk7aWYobi5wcm92aWRlci52aWRlb0RhdGEuVUspe3ZhciBXPW4ucHJvdmlkZXIudmlkZW9EYXRhLlVLLnJlcGxhY2UoLywvZywiXyIpO24uVSgieXRwIix7dHlwZTpXfSwhMCl9bi5wcm92aWRlci52aWRlb0RhdGEuVDQmJihXPW4ucHJvdmlkZXIudmlkZW9EYXRhLlQ0LnJlcGxhY2UoLywvZywKIi4iKSxuLlUoInl0cmV4cCIse2lkczpXfSwhMCkpO24ucHJvdmlkZXIuQi5XWCgpJiZuLlUoIm5vdyIse3d0OigwLGcuUikoKX0pO1c9bi5wcm92aWRlci52aWRlb0RhdGE7dmFyIEQ9bi5wcm92aWRlci5CLlMoImVuYWJsZV93aGl0ZV9ub2lzZSIpfHxuLnByb3ZpZGVyLkIuUygiZW5hYmxlX3dlYmdsX25vb3AiKSxiPWcua3AoVyl8fGcuSFQoVyl8fGcuZkEoVyl8fGcuSkQoVyk7KER8fGIpJiYoRD0oMCxnLkRWKSgpKSYmbi5KLnNldCgiZ3B1IixbRF0pO09TKG4ucHJvdmlkZXIudmlkZW9EYXRhKSYmZy53aihuLGcuUmsobi5wcm92aWRlciksImR0IixbIjEiXSk7Vy5jb3RuJiYhT1MoVykmJlF1KG4sITApO24ucHJvdmlkZXIuQi5XWCgpJiYoVz0oMCxnLlIpKCktbi5wcm92aWRlci5CLkN1LG4uVSgicGxheWVyYWdlIix7c2VjczooMS42KipNYXRoLnJvdW5kKE1hdGgubG9nKFcvMUUzKS9NYXRoLmxvZygxLjYpKSkudG9GaXhlZCgpfSkpO24uVj0hMDtuLks9VzAoKCk9PntuLnJlcG9ydFN0YXRzKCl9LAoxRTQpfTsKYXlaPWZ1bmN0aW9uKG4sVyxELGIsdil7dmFyIGs9bi5wcm92aWRlci5CLk4uY2JydmVyO24ucHJvdmlkZXIuQi5OLmNicj09PSJDaHJvbWUiJiYvXjk2Wy5dLy50ZXN0KGspJiZEPT09Im5ldC5iYWRzdGF0dXMiJiYvcmNcLjUwMC8udGVzdCh2KSYmYm0obiwzKTsvYjI0ODE4MDI3OC8udGVzdCh2KSYmYm0obiw0KTtrPW4ucHJvdmlkZXIuZ2V0Q3VycmVudFRpbWUoKTtiPWI9PT0xPyJmYXRhbCI6IiI7RD1bRCxiLGsudG9GaXhlZCgzKV07YiYmKHYrPWA7YTZzLiR7TGMoKX1gKTt2JiZELnB1c2goa29yKHYpKTtnLndqKG4sVywiZXJyb3IiLEQpO24uVj0hMH07CmJtPWZ1bmN0aW9uKG4sVyl7bi5ZWnx8KGcuRkIobiwiZmNueiIsYCR7V31gKSxuLllaPSEwKX07CmhEMT1mdW5jdGlvbihuLFcsRCxiLHYpe2lmKEQhPT1uLk4pe24uZSR8fFc8bi5XfHwobi5OPT09IlBMIj9uLnBsYXlUaW1lU2Vjcys9Vy1uLlc6bi5OPT09IkIiJiZuLmlzQnVmZmVyaW5nJiYobi5pc0J1ZmZlcmluZz0hMSxuLnJlYnVmZmVyVGltZVNlY3MrPVctbi5WUSwhbi5SYSYmbi5yZWJ1ZmZlclRpbWVTZWNzPj0xMCYmbi5wbGF5VGltZVNlY3M8PTE4MCYmKG4uSi5zZXQoInFvZWFsZXJ0IixbIjEiXSksbi5SYT0hMCkpLEQhPT0iQiJ8fG4uTiE9PSJQTCImJm4uTiE9PSJQQiJ8fChuLmlzQnVmZmVyaW5nPSEwKSxuLlc9Vyk7bi5OPT09IlBMIiYmKEQ9PT0iQiJ8fEQ9PT0iUyIpfHxuLnByb3ZpZGVyLkIuV1goKT9jbChuLFcpOihuLmZCfHxEIT09IlBMInx8KG4uZkI9ITAsVnUobixXLG4ucHJvdmlkZXIuTC5ISygpKSksTVAobixXKSk7RD09PSJQTCImJmcuSmEobi5NZCk7dmFyIGs9W0RdO0Q9PT0iUyImJmImJmsucHVzaChgc3MuJHtifWApO0Q9PT0iUEEiJiZ2JiZrLnB1c2goYHNyLiR7dn1gKTsKZy53aihuLFcsInZwcyIsayk7bi5OPUQ7bi5WUT1XO24uVz1XO24uVj0hMH19Owp4Qmg9ZnVuY3Rpb24obil7aWYoIShuLlg+PTApKWlmKG4ucHJvdmlkZXIuQi5OZHx8bi5wcm92aWRlci5MLmdldFZpc2liaWxpdHlTdGF0ZSgpIT09Myl7dmFyIFc9bi5wcm92aWRlci5MLnpzKCExKSxEPW4ucHJvdmlkZXIuTC56cyghMCk7bi5VKCJ1c2VyX2ludGVudF9iaCIse2JoOlcudG9GaXhlZCgzKSx0aDpELnRvRml4ZWQoMyl9KTtuLlg9Zy5SayhuLnByb3ZpZGVyKX1lbHNlIG4uQ3U9ITB9OwpMVGI9ZnVuY3Rpb24obixXKXtpZihnLm1NKG4ucHJvdmlkZXIudmlkZW9EYXRhKSl7bj00O3ZhciBEPTF9ZWxzZSBuPVcuc291cmNlPz8wO249YHNtcy4ke259YDtEIT09dm9pZCAwJiYobis9YF8ke0R9YCk7cmV0dXJuIG59Owp2YXIgQTExPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIEo0W0lbMTBdXSh0aGlzLDEsNDM2MixuLFcpfTsKdnI9ZnVuY3Rpb24obixXLEQsYix2LGssaCl7dmFyIHg9Zy5SayhuLnByb3ZpZGVyKTtEIT09MSYmRCE9PTMmJkQhPT01fHxnLndqKG4seCwidnBzIixbbi5OXSk7Zy5GQihuLCJ4dnQiLGB0LiR7eC50b0ZpeGVkKDMpfTttLiR7aC50b0ZpeGVkKDMpfTtnLiR7V307dHQuJHtEfTtucC4ke2J9O2MuJHt2fTtkLiR7a31gKX07Cmtvcj1mdW5jdGlvbihuKXsvW15hLXpBLVowLTk7LiFfLV0vLnRlc3QobikmJihuPW4ucmVwbGFjZSgvWytdL2csIi0iKS5yZXBsYWNlKC9bXmEtekEtWjAtOTsuIV8tXS9nLCJfIikpO3JldHVybiBufTsKT2I9ZnVuY3Rpb24obixXKXtpZihuLlpEJiYhbi5PbilyZXR1cm4gMztpZihuLmlzU3VzcGVuZGVkKXJldHVybiAxO2lmKG4ubWVkaWFTb3VyY2U/LmJkKCkpcmV0dXJuIDQ7dmFyIEQ9KFcuUEouaW5mby5hdWRpbz9uLnBvbGljeS52SjpuLnBvbGljeS5lJCkvKFcuTnMqbi5wb2xpY3kud3kpO2lmKG4ucG9saWN5LmNIPjAmJm4ubWVkaWFTb3VyY2UmJm42KG4ubWVkaWFTb3VyY2UpJiYoVz1XLlBKLmluZm8udmlkZW8/bi5tZWRpYVNvdXJjZS5KOm4ubWVkaWFTb3VyY2UuTikmJiFXLnl1KCkpe1c9Vy5aRigpO2xldCBiPUNNKFcsbi5nZXRDdXJyZW50VGltZSgpKTtiPj0wJiYoVz1uLmdldEN1cnJlbnRUaW1lKCktVy5zdGFydChiKSxEKz1NYXRoLm1heCgwLE1hdGgubWluKFctbi5wb2xpY3kuY0gsbi5wb2xpY3kuQmQpKSl9bi5wb2xpY3kuTz4wJiYoRD1NYXRoLm1pbihELG4ucG9saWN5Lk8pKTtyZXR1cm4gRH07CmRWPWZ1bmN0aW9uKG4sVyxEKXtlRGIobixELnFkfHwidW5rbm93biIpO24uTC5zZWVrVG8oVyxEKX07CmcuZEM9ZnVuY3Rpb24obixXLEQsYix2KXtuLkwuZ2V0VmlkZW9EYXRhKCkuREYoKT92JiZuLnhXLlRDK3YvMUUzPkQmJihuLlUoInNkYWkiLHtzZWc6YixyYnQ6RC50b0ZpeGVkKDMpLGVuZDpuLnhXLlRDLnRvRml4ZWQoMyksc2Q6di50b0ZpeGVkKDMpfSksbi5YJCghMSwicm9sbGJhY2siKSk6bi5wb2xpY3kuVTEmJm4uWCQoITEsInJvbGxiYWNrIik7aWYobi5LdS5pc01hbmlmZXN0bGVzcyl7dj1VNChuLmF1ZGlvVHJhY2ssYixELFcpO3ZhciBrPVU0KG4udmlkZW9UcmFjayxiLEQsVyk7bi5wb2xpY3kuczV8fChrJiZUeChuLkt1LGIsITApLHYmJlR4KG4uS3UsYiwhMSkpO2smJm4udmlkZW9UcmFjay5rSSgpO3YmJm4uYXVkaW9UcmFjay5rSSgpO24uVSgic2RhaSIse3JvbGxiazJfc2VnOmIscmJ0OkQudG9GaXhlZCgzKSxsdDpXLnRvRml4ZWQoMyksYTp2LHY6a30pOyh2fHxrKSYmbi5wb2xpY3kuVTEmJmcuQWcobil9fTsKWUM9ZnVuY3Rpb24obixXKXtuLmhhbmRsZUVycm9yKCJmbXQudW5wYXJzZWFibGUiLFcsMSl9OwpnLkFnPWZ1bmN0aW9uKG4pe2cuSmEobi5uTil9OwpTek09ZnVuY3Rpb24obil7dmFyIFc9bi5qbCgpLmZpbHRlcihEPT5ELm5hbWVzcGFjZT09PSJhZCIpOwpmb3IobGV0IEQgb2YgVylpZihELnN0YXJ0LzFFMz5uLmdldEN1cnJlbnRUaW1lKCkpcmV0dXJuIEQuc3RhcnQvMUUzO3JldHVybiBJbmZpbml0eX07CmM2PWZ1bmN0aW9uKG4pe3ZhciBXPSgwLGcuUikoKTtuLnFHPVd9OwpIJGg9ZnVuY3Rpb24obixXKXtpZih4TihXLkF3W1cuQXcubGVuZ3RoLTFdKSl7YTp7dmFyIEQ9bi5jVjtXPVcuQXdbMF0uUEo7aWYoVy5pbmZvLnZpZGVvKXtpZihELlchPT1XKXtELlc9VztEPVMkaChEKTticmVhayBhfX1lbHNlIEQuSEo9RC5WIT09VyxELlY9VztEPW51bGx9Z09DKG4sRCl9fTsKUW89ZnVuY3Rpb24obil7bi5wb2xpY3kuSEQmJm4ucG9saWN5LmU0JiZNYXRoLm1pbihnVEMobi52aWRlb1RyYWNrKSxnVEMobi5hdWRpb1RyYWNrKSkqMUUzPm4ucG9saWN5Lm0kP2cuSmEobi5aSyk6bi5oVCgpfTsKQjY9ZnVuY3Rpb24obixXLEQsYj0hMSl7YiYmIVcuVEMmJihWVCgpfHwoYj1XLlFFKSYmIWIudFooRC5pbmZvKSYmbi5MLkJvKCksVy5UQz0hMCk7Vy5QSiE9PUQmJihXLlBKPUQpfTsKd3U9ZnVuY3Rpb24obil7cmV0dXJuIG4uSXc8bi5peH07ClIkPWZ1bmN0aW9uKG4pe24uemkoKTtuLlhhLmlzU2Vla2luZygpO24uUXUmJkRMYihuLlF1LG4udmlkZW9UcmFjay5QSik7Zy5BZyhuKTtyZXR1cm4gRWIobi5YYSl9Owpkaj1mdW5jdGlvbihuKXtyZXR1cm4gbi5MLmdldFZpZGVvRGF0YSgpLnpXKCl8fG4ucG9saWN5Lm1EfTsKelMyPWZ1bmN0aW9uKG4sVyl7cmV0dXJuKE9iKG4sVykrbi5wb2xpY3kualIpKlcuTnN9OwpFUlM9ZnVuY3Rpb24obil7aWYobi5MLmdldFZpZGVvRGF0YSgpLmlzTGl2ZVBsYXliYWNrKXJldHVybiExO3ZhciBXPW4uTC5oNSgpO2lmKCFXKXJldHVybiExO1c9Vy5nZXREdXJhdGlvbigpO2lmKG4ubWVkaWFTb3VyY2UmJm4ubWVkaWFTb3VyY2UuTiYmbi5tZWRpYVNvdXJjZS5KKXt2YXIgRD1uLmdldEN1cnJlbnRUaW1lKCksYj1uLm1lZGlhU291cmNlLk4uWkYoKTtuPW4ubWVkaWFTb3VyY2UuSi5aRigpO2I9Yj9GWihiLEQpOkQ7RD1uP0ZaKG4sRCk6RDtEPU1hdGgubWluKGIsRCk7Vz1pc05hTihEKT8hMTpEPj1XLS4wMX1lbHNlIFc9ITE7cmV0dXJuIFd9OwpYemg9ZnVuY3Rpb24obixXLEQpe2lmKCEobi52aWRlb1RyYWNrLlBKLk4oKSYmbi5hdWRpb1RyYWNrLlBKLk4oKSYmbi5tZWRpYVNvdXJjZSYmbi5tZWRpYVNvdXJjZS5KJiZuLm1lZGlhU291cmNlLk4pKXJldHVybiExO2lmKEQmJm4uS3UuaXNNYW5pZmVzdGxlc3MmJihuLnZpZGVvVHJhY2suWD09PS0xfHxuLmF1ZGlvVHJhY2suWD09PS0xKSlyZXR1cm4hMDt2YXIgYj1LdihuLnZpZGVvVHJhY2ssVyxEKTtpZihpc05hTihiKSlyZXR1cm4hMTtuPUt2KG4uYXVkaW9UcmFjayxuLnBvbGljeS5FNT9XOmIsRCk7cmV0dXJuIGlzTmFOKG4pPyExOiEwfTsKcUoyPWZ1bmN0aW9uKG4pe24uUWo/Llh0Py5pdGFnRGVueWxpc3QmJm4uV0Yobi5Raj8uWHQuaXRhZ0RlbnlsaXN0KTtuLlFqPy5wbGF5YmFja1N0YXJ0UG9saWN5JiZsUyhuLnBvbGljeSxuLlFqPy5wbGF5YmFja1N0YXJ0UG9saWN5LDMsbi5Raj8uY0EoKSk7aWYobi5wb2xpY3kuY0wpe3ZhciBXPW4uRTEoKTsoVz1XP24uUWo/LkR3LmdldChXKTp2b2lkIDApJiZuLnhXLnN5KFcsLTEpfW4uS3UuT3x8bi5wb2xpY3kuV2l8fChXPW4uUWo/LlFXLFc/LndmJiZXPy52NyYmbi5LdS56VyYmQzYobi5LdSxXLndmLFcudjcpKTtpZihuLlFqPy5NUyl7Vz1uLlFqLk1TLmdldChuLkUxKCl8fCIiKTtpZighVylyZXR1cm47aWYobi5LdSYmVy5mb3JtYXRJZCl7bGV0IEQ9bi5LdS5KLmdldChNayhXLmZvcm1hdElkKSk7RCYmKEQuaW5mby5kZWJ1Z0luZm89Vy5kZWJ1Z0luZm8pfX1uLnBvbGljeS5EJiYobi5Raj8uckIoKS5mb3JFYWNoKEQ9PntuLmk4KEQpfSksbi5Raj8uRm8oKSl9Owp0OWg9ZnVuY3Rpb24obil7aWYoIW4uS3UuelcpcmV0dXJuITA7dmFyIFc9bi5MLmdldFZpZGVvRGF0YSgpO2lmKG4uTC5PUCgpKXJldHVybiBuLlUoIm9tYnBhIix7fSksITE7aWYoISFuLlFqPy5RVz8uWjMhPT1uLkt1LlhnKXJldHVybiBuLlUoIm9tYnBsbW0iLHt9KSwhMTt2YXIgRD1XLlRDfHxXLmxpdmVVdGNTdGFydFNlY29uZHN8fFcuVXI7aWYobi5LdS5YZyYmRClyZXR1cm4gbi5VKCJvbWJwbHN0Iix7fSksITE7aWYobi5LdS5PfHxuLnBvbGljeS5XaSlyZXR1cm4gbi5VKCJvbWJhYiIse30pLCExO0Q9RGF0ZS5ub3coKTtpZighVy5saXZlUHJlbG9hZCYmRnYobi5LdSkmJiFpc05hTihuLkNIKSYmRC1uLkNIPm4ucG9saWN5LkZVKjFFMylyZXR1cm4gbi5VKCJvbWJ0dGwiLHt9KSwhMTtpZih4cChXKSE9PTAmJiFuLnBvbGljeS5OfHxXLlMoImh0bWw1X2Rpc2FibGVfb25lc2llX21lZGlhX2Zvcl9tb3NhaWMiKSYmVy5aaCgpfHxXLlMoImh0bWw1X2Rpc2FibGVfb25lc2llX21lZGlhX2Zvcl9saWZhX2VsaWdpYmxlIikmJgpweihXKSlyZXR1cm4hMTtpZihuLkwuRygpLlp0KCkuTi5RUShHb00pJiYoVz1uLlFqPy5waygpPz8wLFc+PTAmJm4uS3UuaXNXaW5kb3dlZExpdmUmJihXPG4uS3UuSlUqMUUzfHxXPm4uS3Uub1IqMUUzKSkpcmV0dXJuIG4uVSgib21id25kIix7c3Q6VyxtaW46bi5LdS5KVSoxRTMsbWF4Om4uS3Uub1IqMUUzfSksITE7aWYobi5LdS5JdCYmbi5LdS5pc1dpbmRvd2VkTGl2ZSlpZihuLkwuRygpLlMoImh0bWw1X3VzZV9vbmVzaWVfd2luZG93ZWRfbGl2ZV9tZWRpYSIpKW4uVSgib21hbWluc3EiLHt9KTtlbHNlIHJldHVybiBuLlUoIm9tYm1pbnNxIix7fSksITE7cmV0dXJuITB9OwprYz1mdW5jdGlvbihuLFcpe3ZhciBEPWN3KFcuUEosbi5LdS56VyksYj1uLmhtPy5mMyhEKXx8W107aWYoYi5sZW5ndGg9PT0wKXJldHVybiBuLlUoIm9tYm1zaSIse30pLCExO2I9bmV3IHdrKGIpO2lmKCghbi5wb2xpY3kudHd8fGlzRmluaXRlKG4uZ2V0Q3VycmVudFRpbWUoKSl8fG4uTC5lSigpKSYmIWIua2Yobi5nZXRDdXJyZW50VGltZSgpKSYmIW4uTC5nZXRWaWRlb0RhdGEoKS5saXZlUHJlbG9hZClyZXR1cm4gbi5VKCJvc3RtZiIse2N0Om4uZ2V0Q3VycmVudFRpbWUoKSxhOlcuUEouaW5mby5lUygpfSksITE7bi5obT8uRVMoRCk7cmV0dXJuITB9OwokQmk9ZnVuY3Rpb24obixXKXt2YXIgRD1XLlBKLGI9bi5LdS56VztpZih0OWgobikpaWYobi5obSYmbi5obS5nRihjdyhELGIpKSl7aWYoYj1jdyhELGIpLGtjKG4sVykpe3ZhciB2PW5ldyB3ayhuLmhtLmYzKGIpKSxrPWg9Pnt0cnl7aC50bigpPyhuLmhhbmRsZUVycm9yKGguVkcoKSxoLnkwKCkpLEU0KFcsaCkseXMoaC5pbmZvKSYmQ3Iobi5OeSxXLEQsITApLG4uaFQoKSk6RjAobi5OeSxoKSYmKG4uSkM/LlMkKGguaW5mbyxuLnNVKSxuLmhUKCkpfWNhdGNoKHgpe2g9QiQoeCksbi5oYW5kbGVFcnJvcihoLmVycm9yQ29kZSxoLmRldGFpbHMsaC5zZXZlcml0eSksbi56aSgpfX07CkQuY0o9ITA7VXYodikmJihPNChXLG5ldyBTbihuLnBvbGljeSxiLHYsbi5obSxrKSksaXUobi50aW1pbmcpKX19ZWxzZSBuLlUoIm9tYmZtdCIse30pfTsKcjdoPWZ1bmN0aW9uKG4pe24ucG9saWN5LlgmJm4uUWomJihuLlFqLkd3LmZvckVhY2goVz0+e24uSm0oVywtMSl9KSxuLlFqLkd3PVtdKX07CmgyPWZ1bmN0aW9uKG4sVyl7Vz1XfHxuLnZpZGVvVHJhY2smJm4udmlkZW9UcmFjay5OJiZuLnZpZGVvVHJhY2suTi5zZWdtZW50U3RhcnRUaW1lfHxuLmdldEN1cnJlbnRUaW1lKCk7dmFyIEQ9QjYsYj1uLnZpZGVvVHJhY2ssdj1uLmNWO1c9di5uZXh0VmlkZW8mJnYubmV4dFZpZGVvLmluZGV4LlIzKFcpfHwwO3YuY0ohPT1XJiYodi5iZD17fSx2LmNKPVcsUnEodix2Lk4pKTtXPSF2Lk4uaXNMb2NrZWQoKSYmdi5ZPi0xJiYoMCxnLlIpKCktdi5ZPHYucG9saWN5LkFrKjFFMzt2YXIgaz12Lm5leHRWaWRlbyYmTXEodix2Lm5leHRWaWRlby5pbmZvKSozPE5XKHYuSWcpO2lmKCFXfHxrKVZCKHYpLGNwKHYpLHYuTz12Lk98fHYubmV4dFZpZGVvIT09di5XO3YubmV4dFZpZGVvJiYhdi5uZXh0VmlkZW8uaW5kZXguaXNMb2FkZWQoKSYmKHYuY0o9LTEpO0QobixiLHYubmV4dFZpZGVvKTtCNihuLG4uYXVkaW9UcmFjayxuLmNWLkopfTsKZURiPWZ1bmN0aW9uKG4sVyl7aWYoIWlzTmFOKG4uajApKXtsZXQgRD1EYXRlLm5vdygpLW4uajA7RDwxRTQmJm4uVSgiYmZhc3d0Y2giLHtlcDpELHNrOlchPT12b2lkIDA/IjEiOiIwIixzcjpXfHwiIn0pfX07ClhiPWZ1bmN0aW9uKG4pe2E6e2lmKG4uSGcoKSYmbWQobi52aWRlb1RyYWNrKSYmbWQobi5hdWRpb1RyYWNrKSYmbi5MLkhvKCkmJiFuLkwuVjAoKSYmIW4ubWVkaWFTb3VyY2U/Lk4/LmlRKCkmJiFuLm1lZGlhU291cmNlPy5KPy5pUSgpJiYhbi5BYil7dmFyIFc9bi5MLlhTPy5YKCk7aWYoIVcpYnJlYWsgYTtuLmF1ZGlvVHJhY2suSlgoKTtuLnZpZGVvVHJhY2suSlgoKTtuLkFiPVd9aWYoVz1uLkhnKCkmJm4uTC5IbygpJiYhbi5MLlYwKCkpaWYobi5BYiYmbi5BYi5KJiZuLkFiLk4mJm4udmlkZW9UcmFjay5EZygpJiZuLmF1ZGlvVHJhY2suRGcoKSl7dmFyIEQ9bi52aWRlb1RyYWNrLlcuYjcoKTtXPW4uYXVkaW9UcmFjay5XLmI3KCk7dmFyIGI9bi5BYj8uSi5aRigpLHY9bi5BYj8uTi5aRigpO0QmJlc/KEQ9QlIoYixrTihELmluZm8pLS4xKSxXPUJSKHYsa04oVy5pbmZvKS0uMSksVz1EJiZXKTpXPSExfWVsc2UgVz0hMTtXJiZuLkwuWFM/LlcoKX1pZihuLm1lZGlhU291cmNlKWlmKFc9Cm4uQWJ8fG4ubWVkaWFTb3VyY2Usdj1XLk4sRD1XLkosczdyKG4sbi5hdWRpb1RyYWNrKSxzN3IobixuLnZpZGVvVHJhY2spLGI9TjNDKG4pKXtpZihuLnBvbGljeS5lNCl7aWYoIXYuRDkoKSYmKFc9aVkobi5hdWRpb1RyYWNrKSkpe2lmKCF4YyhuLG4uYXVkaW9UcmFjayx2LFcuaW5mbykpcmV0dXJuO0xDKG4sbi5hdWRpb1RyYWNrLHYsVyl9aWYoIUQuRDkoKSYmKFc9aVkobi52aWRlb1RyYWNrKSkpe2lmKCF4YyhuLG4udmlkZW9UcmFjayxELFcuaW5mbykpcmV0dXJuO0xDKG4sbi52aWRlb1RyYWNrLEQsVyl9fW4ubXh8fChuLm14PSgwLGcuUikoKSxuLnBvbGljeS5XJiZuLlUoImFwZHBzIix7cjpifSkpfWVsc2V7aWYobi5teCl7Yj1uLm14O3ZhciBrPSgwLGcuUikoKS1iO2xldCBoPW4uYXVkaW9UcmFjay56cyghMCkqMUUzLHg9bi52aWRlb1RyYWNrLnpzKCEwKSoxRTM7bi5wb2xpY3kuVyYmKG4uVSgiYXBkcGUiLHtkdXI6ay50b0ZpeGVkKCksYWJ1ZjpoLnRvRml4ZWQoKSx2YnVmOngudG9GaXhlZCgpfSksCmR1KG4ucG9saWN5KSYmKGs9Tlcobi5JZyksbi5VKCJzZHBzIix7Y3Q6YixhaDpoLnRvRml4ZWQoKSx2aDp4LnRvRml4ZWQoKSxtcjpwdihuLklnLG4uT24sayksYnc6ay50b0ZpeGVkKCksanM6bi5pc1NlZWtpbmcoKSxyZTorbi5Pbixwczoobi5wb2xpY3kuTTV8fCIiKS50b1N0cmluZygpLHJuOihuLnBvbGljeS5EQ3x8IiIpLnRvU3RyaW5nKCl9KSkpO24ubXg9MH1uLlF1JiYoYj1uLlF1LmhUKG4uYXVkaW9UcmFjayxnLnd5KG4ubWVkaWFTb3VyY2UuSi5aRigpKSkpJiZuLkwuc2Vla1RvKGIse0E5OiEwLHFkOiJwb2xsU3Vic2VnbWVudFJlYWRhaGVhZCIscWE6ITB9KTtiPSExO3B6aChuLG4udmlkZW9UcmFjayxEKSYmKGI9ITAsRD1uLnRpbWluZyxELld8fChELlc9KDAsZy5SKSgpLGcuRUcoInZkYSIsRC5XLEQuelIpLEQuSiYmKGcuRHkoKSxiUSg0KSkpLEQ9bi50aW1pbmcsRC5WUXx8KEQuVlE9KDAsZy5SKSgpLGcuRUcoInZyYl9mIixELlZRLEQuelIpKSk7VyYmIVcuUEEoKSYmCihwemgobixuLmF1ZGlvVHJhY2ssdikmJihiPSEwLHY9bi50aW1pbmcsdi5KfHwodi5KPSgwLGcuUikoKSxnLkVHKCJhZGEiLHYuSix2LnpSKSx2LlcmJihnLkR5KCksYlEoNCkpKSx2PW4udGltaW5nLHYuWXx8KHYuWT0oMCxnLlIpKCksZy5FRygiYXJiX2YiLHYuWSx2LnpSKSkpLCFuLnFOKCkmJm4ubWVkaWFTb3VyY2UmJighbi5wb2xpY3kuVjYmJm1kKG4udmlkZW9UcmFjaykmJm1kKG4uYXVkaW9UcmFjaykmJm42KFcpJiYhVy55dSgpJiYodj1JJChuLmF1ZGlvVHJhY2spLlBKLHY9PT1uLkt1Lk5bdi5pbmZvLmlkXSYmKG4uTC5HKCkuV1goKSYmbi5MLlUoInNlcyIse2VvczoxfSksbjYoVykmJihXLm1lZGlhU291cmNlP1cubWVkaWFTb3VyY2UuZW5kT2ZTdHJlYW0oKTpXLkVWLndlYmtpdFNvdXJjZUVuZE9mU3RyZWFtKFcuRVYuRU9TX05PX0VSUk9SKSksdj1uLnNjaGVkdWxlLHNuKGUwKHYpKSx2LmNKPSgwLGcuUikoKSx2Lk89ITAsdj0odj1uLnZpZGVvVHJhY2suUEopJiZ2LmluZGV4IGluc3RhbmNlb2YKZ1M/di5pbmRleC5LOnZvaWQgMCxuLkwuRygpLlp0KCkuTi5RUShZSmIpP3Y9PT0iZW1zZyImJm4ucG0oImUiKTpuLnBtKCJlIikpKSxiJiYoVy5OPyFXLk4uc3VwcG9ydHMoMCk6IWFkKCkpJiZnLkFnKG4pKSl9fTsKSFBiPWZ1bmN0aW9uKG4pe24ucG9saWN5LlY2PSExO3RyeXtYYihuKX1jYXRjaChXKXtnLlhqKFcpfX07CmZteD1mdW5jdGlvbihuLFc9ITEpe24ubWVkaWFTb3VyY2UmJm4ubWVkaWFTb3VyY2UuTiYmbi5tZWRpYVNvdXJjZS5KJiYobi5tZWRpYVNvdXJjZS5OLk05KG4uTEwsbiksbi5tZWRpYVNvdXJjZS5KLk05KG4uTEwsbikpO0tyKG4uYXVkaW9UcmFjayxudWxsLFcpO0tyKG4udmlkZW9UcmFjayxudWxsLFcpO24ubWVkaWFTb3VyY2UmJihuLm1lZGlhU291cmNlLlY9ITEpO24ubWVkaWFTb3VyY2U9bnVsbDtuLkFiPW51bGw7bi5MLlhTPy5yZXNldCgpfTsKSjdpPWZ1bmN0aW9uKG4sVyxEPSExLGI9ITEsdj0hMSl7S3Iobi52aWRlb1RyYWNrLFcuSnx8bnVsbCxiLHYpO0tyKG4uYXVkaW9UcmFjayxXLk58fG51bGwsYix2KTtuLm1lZGlhU291cmNlPVc7bi5tZWRpYVNvdXJjZS5WPSEwO0R8fG4ucmVzdW1lKCk7Vy5OLmgkKG4uTEwsbik7Vy5KLmgkKG4uTEwsbil9OwpJbWk9ZnVuY3Rpb24obixXLEQ9ITEsYj0hMSx2PSExKXtuLnBvbGljeS5UQyYmKG4ucG9saWN5LlZRJiZuLlUoImxvYWRlciIse3NldHNtYjowfSksbi56aSgpLG4ucG9saWN5LlRDPSExKTtmbXgobixiKTtpZighVy5YKCkpe3ZhciBrPWlZKG4udmlkZW9UcmFjayk7az1rP2suaW5mby5QSjpuLnZpZGVvVHJhY2suUEo7bGV0IGg9aVkobi5hdWRpb1RyYWNrKTtMS1UoVyxrLmluZm8sKGg/aC5pbmZvLlBKOm4uYXVkaW9UcmFjay5QSikuaW5mbyxuLnBvbGljeS5wUil9SjdpKG4sVyxELGIsdik7dHJ5e24uaFQoKX1jYXRjaChoKXtnLlhqKGgpfX07CnFtPWZ1bmN0aW9uKG4pe24ubWVkaWFTb3VyY2UmJm4ubWVkaWFTb3VyY2UuUEEoKSYmbi5LMSgpfTsKZ09DPWZ1bmN0aW9uKG4sVyl7VyYmR1gobi5MLG5ldyB0MihXLnZpZGVvLFcucmVhc29uKSk7bi5jVi5ISiYmKFc9WmV3KG4uY1YsImEiKSxuLkwuZ20obmV3IHQyKFcuYXVkaW8sVy5yZWFzb24pKSl9OwpBN3g9ZnVuY3Rpb24obil7bi5CdiYmIW4uaXNTdXNwZW5kZWQmJlRaKG4uc2NoZWR1bGUpJiYoU0paKG4sbi5Cdiksbi5Cdj0iIil9OwpzN3I9ZnVuY3Rpb24obixXKXtpWShXKT8uaXNMb2NrZWQmJm1CYihXKSYmKG4uTC5HKCkuV1goKSYmbi5VKCJlb3NsIix7bXVubG9jazppWShXKT8uaW5mby5nYSgpfSksJGMobixXPT09bi5hdWRpb1RyYWNrKSl9OwpOM0M9ZnVuY3Rpb24obil7aWYodGRqKG4udmlkZW9UcmFjaykpcmV0dXJuInNzZiI7aWYobi5wb2xpY3kubnUmJmlZKG4udmlkZW9UcmFjayk/LmlzTG9ja2VkJiZpWShuLmF1ZGlvVHJhY2spPy5pc0xvY2tlZClyZXR1cm4idXBkYXRlRW5kIjtpZihpUyhuLmF1ZGlvVHJhY2spfHxpUyhuLnZpZGVvVHJhY2spJiZuLnZpZGVvVHJhY2suUEouaW5mby5JQiE9PSJmIilyZXR1cm4iIjtpZihuLlhhLmlzU2Vla2luZygpKXt2YXIgVz1uLklnO3ZhciBEPW4udmlkZW9UcmFjazt2YXIgYj1uLmF1ZGlvVHJhY2s7aWYoVy5wb2xpY3kuTil7dmFyIHY9Vy5wb2xpY3kuV2M7ZHUoVy5wb2xpY3kpJiYodj1wdihXLCExLE5XKFcpKSk7Vz12O0Q9Yi56cyghMCk+PVcmJkQuenMoITApPj1XfWVsc2UgRC5KLmxlbmd0aHx8Yi5KLmxlbmd0aD8odj1ELlBKLmluZm8uTnMrYi5QSi5pbmZvLk5zLHY9MTAqKDEtTlcoVykvdiksVz1NYXRoLm1heCh2LFcucG9saWN5LldjKSxEPWIuenMoITApPj1XJiZELnpzKCEwKT49ClcpOkQ9ITA7aWYoIUQpcmV0dXJuImFiciI7RD1uLnZpZGVvVHJhY2s7aWYoRC5KLmxlbmd0aD4wJiZELlcua2koKT09PTEmJkQuVy5XMigpLmluZm8uSzxELlZRKXJldHVybiJzZWVrIn1pZihuLnBvbGljeS5VMSYmJFgxKG4udmlkZW9UcmFjayxuLkpDKSYmJFgxKG4uYXVkaW9UcmFjayxuLkpDKSlyZXR1cm4ic3NkYWkiO0Q9IW4ucG9saWN5LnRNfHxuLmdldEN1cnJlbnRUaW1lKCk8MTA7bi5wb2xpY3kuTnx8KEQ9RHx8bi52aWRlb1RyYWNrLlBKLmluZm8udmlkZW8ucXVhbGl0eU9yZGluYWw+MzYwKTtpZighbi5Pbnx8RClyZXR1cm4iIjtEPW4ucG9saWN5LnRNO2R1KG4ucG9saWN5KSYmKEQ9cHYobi5JZyxuLk9uLE5XKG4uSWcpKSk7RD1YMHQobi52aWRlb1RyYWNrLG4uZ2V0Q3VycmVudFRpbWUoKSxEKXx8WDB0KG4uYXVkaW9UcmFjayxuLmdldEN1cnJlbnRUaW1lKCksRCk7cmV0dXJuIGR1KG4ucG9saWN5KT9EPyJtYm5tIjoiIjoobi52aWRlb1RyYWNrLkoubGVuZ3RoPjB8fApuLmF1ZGlvVHJhY2suSi5sZW5ndGg+MHx8anEobi5OeSxuLnZpZGVvVHJhY2ssbi5hdWRpb1RyYWNrKXx8anEobi5OeSxuLmF1ZGlvVHJhY2ssbi52aWRlb1RyYWNrKSkmJkQ/Im5vcmQiOiIifTsKeGM9ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9SSQoVyk7IXZ8fHYuYVp8fGJUKHYsYil8fChELmFib3J0KCksbi5wb2xpY3kuZkMmJlcuVj8uWSgpLFcuSz8uVigpKTtpZighRC5LcygpfHxWVCgpKXRyeXtuLnBvbGljeS5Kaz9ELm5hKGIuUEouaW5mby5jb250YWluZXJUeXBlLGIuUEouaW5mby5JQikmJkQuVm8oYi5QSi5pbmZvLmNvbnRhaW5lclR5cGUsYi5QSi5pbmZvLklCLGIuUEouaW5mby5taW1lVHlwZSk6RC5qbihiLlBKLmluZm8uY29udGFpbmVyVHlwZSxiLlBKLmluZm8ubWltZVR5cGUpfWNhdGNoKGspe3JldHVybiBnLkdxKGspLG4uVSgiY3RleHAiLHtuYW1lOmsubmFtZSxtc2c6ay5tZXNzYWdlfSksITF9ZWxzZSBiLlBKLmluZm8uY29udGFpbmVyVHlwZSE9PUQuS3MoKSYmbi5VKCJjdHUiLHtjdDpWVCgpLHByZXZfYzpELktzKCksY3Vycl9jOmIuUEouaW5mby5jb250YWluZXJUeXBlfSk7Yj1iLlBKLlY7bi5wb2xpY3kuRFQmJmImJihXPTArYi5kdXJhdGlvbixiPS1iLk4sCjA9PT1ELk1yKCkmJlc9PT1ELktGKCl8fEQuZTcoMCxXKSxiIT09RC5TVygpJiYoRC55TyhiKSxzNCYmbi5hdWRpb1RyYWNrLlcuQlcoRC5pdygpKSkpO3JldHVybiEwfTsKTEM9ZnVuY3Rpb24obixXLEQsYil7Yi5pbmZvLlBKLk4oKTt2YXIgdj1iLmluZm8uUEouSjtpZighdnx8IUQuam8oKXx8RC5EOSgpPT09dilyZXR1cm4hMTt2YXIgaz12LGg9RC5MRigpO2lmKG4ucG9saWN5LktvJiZoJiZELmlzVmlldygpJiZnLlJCKGIuaW5mby5QSi5pbmZvKSl7bGV0IEw9bmV3IERhdGFWaWV3KHYuYnVmZmVyLHYuYnl0ZU9mZnNldCx2LmJ5dGVMZW5ndGgpOyhoPVBJQyhMLGgpKT9rPW5ldyBVaW50OEFycmF5KGguYnVmZmVyLGguYnl0ZU9mZnNldCxoLmJ5dGVMZW5ndGgpOm4uVSgiZmVuYyIse30pfW4ucG9saWN5LmtwJiYoaD1LVGkobixiLG5ldyBTNShba10pKSkmJihrPXRSKGgpKTt2YXIgeDsoaD1iLmluZm8uUEouWSgwLGIuaW5mby5jbGlwSWQpKSYmKHg9aC5Bd1swXSk7aWYoYj09PW4uaDcpe2lmKG4uQzErPTEsbi5MLmdldFZpZGVvRGF0YSgpLlMoImh0bWw1X3Nob3J0c19nYXBsZXNzX3Jlc3RhcnRfb25faW5pdF9zZWdfcmV0cmllcyIpJiZuLkMxPjUpcmV0dXJuIG4uQzE9CjAsbi5MLkdtKHtpbml0U2VnU3R1Y2s6MSxhczpiLmluZm8uZ2EoKX0pLCEwfWVsc2Ugbi5DMT0wLG4uaDc9YjtuLnBvbGljeS54aiYmKEQuYWJvcnQoKSxXLks/LlYoKSk7bi5BYiYmRC5pUSgpJiYoRC5hYm9ydCgpLFcuSz8uVigpKTt2PU9QMihuLEQsayx4LHYpO1cuSz8uRCh2LHgpO2lmKHYhPT0wKXJldHVybiBuLnBvbGljeS5aTiYmQUoobi5MLmdldFZpZGVvRGF0YSgpKT8obi5MLm9BKCl8fHJTKG4sInNlcEluaXQiLHYsYi5pbmZvKSxQOVUobi5MLCJzaWUiKSk6clMobiwic2VwSW5pdCIsdixiLmluZm8pLCEwO2IuaW5mby5mWSgpPyhXPW4udGltaW5nLFcuVEN8fChXLlRDPSgwLGcuUikoKSxnLkVHKCJ2aXNfYSIsVy5UQyxXLnpSKSkpOihXPW4udGltaW5nLFcuVnx8KFcuVj0oMCxnLlIpKCksZy5FRygiYWlzX2EiLFcuVixXLnpSKSkpOyhiPWIuaW5mby5QSi5TVSkmJm4uTC5XbihuZXcgcnUoYi5rZXksYi50eXBlKSk7cmV0dXJuIEQueXUoKX07CnB6aD1mdW5jdGlvbihuLFcsRCl7aWYobi5wb2xpY3kubnUmJmlZKFcpPy5pc0xvY2tlZClyZXR1cm4hMTtpZihELkRjKCkpcmV0dXJuITA7aWYoIUQuam8oKSlyZXR1cm4hMTt2YXIgYj1pWShXKTtpZighYnx8Yi5pbmZvLnR5cGU9PT02KXJldHVybiExO2lmKG4ucG9saWN5LmllfHxuLkpDPy5PKFcsYi5pbmZvLmokKSluLkxvPTA7ZWxzZSByZXR1cm4gbi5YYS5pc1NlZWtpbmcoKSYmZy5BZyhuKSxuLkxvPW4uTG98fCgwLGcuUikoKSwhMTtpZigheGMobixXLEQsYi5pbmZvKSlyZXR1cm4hMTtpZihuLkt1LlcmJmIuaW5mby5OPT09MCl7dmFyIHY7aWYoRC5EOSgpPT1udWxsKXt2YXIgaz1JJChXKTtpZighKHY9IWt8fGsuUEohPT1iLmluZm8uUEopKXtiOmlmKHY9ay5PLGs9Yi5pbmZvLk8sdi5sZW5ndGghPT1rLmxlbmd0aCl2PSExO2Vsc2V7Zm9yKGxldCBoPTA7aDx2Lmxlbmd0aDtoKyspaWYoIXY0KHZbaF0sa1toXSkpe3Y9ITE7YnJlYWsgYn12PSEwfXY9IXZ9fWVsc2Ugdj1ELkQ5KCksCmIuaW5mby5QSi5TJCgpJiZETyhiKSxrPWIuaW5mby5QSi5KLHY9diE9PWsmJiF2NCh2LGspO3YmJihrPUkkKFcpLG4uVSgiaW5pdGNoZyIse2l0OmIuaW5mby5QSi5pbmZvLmlkLHNyOiEhayYmay5QSj09PWIuaW5mby5QSix0eTpiLmluZm8udHlwZSxzZWc6Yi5pbmZvLmokfSkpO2s9Zy5SQihiLmluZm8uUEouaW5mbyk7bi5wb2xpY3kubWgmJmsmJiF2JiYoZy5SQihiLmluZm8uUEouaW5mbyk/KEdqKGcuV1IoYiksMTgzNjAxOTU3NCksR2ooZy5XUihiKSwxNzE4OTA5Mjk2KSk6KHY9bmV3IHRZKGcuV1IoYikpLE9ZKHYpLHNZKHYsNTI0NTMxMzE3LCEwKSxiLko9Yi5KLnNwbGl0KHYuc3RhcnQrdi5wb3MpLlk5KSxiLlY9ITEpfWs9bi5RdSYmISFuLlF1LlgmJlcuUEouaW5mby5hdWRpbzt2PW4uS3UuaXNNYW5pZmVzdGxlc3N8fGIuVjtpZighKG4uS3UuVyYmYi5pbmZvLk4hPT0wfHx2JiYhaykmJkxDKG4sVyxELGIpKXJldHVybiEwO2lmKGspcmV0dXJuITE7az1PYihuLFcpO2s9bi5nZXRDdXJyZW50VGltZSgpKwprO2lmKGIuaW5mby5YPmspcmV0dXJuIG4ucG9saWN5Lk4mJihXPT09bi52aWRlb1RyYWNrP24uYzc9bi5jN3x8KDAsZy5SKSgpOm4uTno9bi5Oenx8KDAsZy5SKSgpKSwhMTtXPT09bi52aWRlb1RyYWNrP24uYzc9MDpuLk56PTA7bi5wb2xpY3kuVTUmJkQ9PT1uLm1lZGlhU291cmNlPy5OJiZuLk9MJiYoRC5mRigpPT09MD8obi5PTD0hMSxuLnBvbGljeS5VNT0hMSk6bi5HSj1ELmZGKCkpO2lmKCFaUGoobixELGIsVykpcmV0dXJuITE7bi5wb2xpY3kubnUmJmIuaW5mby5WKCk/KG4uTC5HKCkuV1goKSYmbi5VKCJlb3NsIix7bHM6Yi5pbmZvLmdhKCl9KSxiLmlzTG9ja2VkPSEwKTooVy5aJChiKSxQQzIobi5jVixiLmluZm8pKTt2JiYoVz1iLmluZm8uUEouU1UpJiZuLkwuV24obmV3IHJ1KFcua2V5LFcudHlwZSkpO3JldHVybiEwfTsKWlBqPWZ1bmN0aW9uKG4sVyxELGIpe2lmKG4uTC5HKCkuWnQoKS5OLlFRKFVCYikmJkQuaW5mby5OJiYhVy5pUSgpKXJldHVybiBuLlUoImRyb3BfY2h1bmsiLHtzcTpELmluZm8uaiQsc3Q6RC5pbmZvLlh9KSwhMDt2YXIgdj1uLnBvbGljeS5SYT8oMCxnLlIpKCk6MCxrPUQuViYmRC5pbmZvLlBKLkp8fHZvaWQgMCxoPUQuSjtELlYmJihoPUtUaShuLEQsaCl8fGgpO3ZhciB4PXRSKGgpO2g9bi5wb2xpY3kuUmE/KDAsZy5SKSgpOjA7Vz1PUDIobixXLHgsRC5pbmZvLGspO2IuSz8uWShELmluZm8sVyxoLXYsKDAsZy5SKSgpLWgpO24uQzE9MDtpZihXPT09MClyZXR1cm4gbi5aRCYmKG4uWkQ9ITEsbi5xTz0hMSksbi5hQT0wLCEwO2lmKFc9PT0yfHxXPT09NSlyZXR1cm4gclMobiwiY2hlY2tlZCIsVyxELmluZm8pLCExO2lmKFc9PT0xKXtpZighbi5aRClyZXR1cm4gbi5aRD0hMCwhMTtpZighbi5xTylyZXR1cm4gbi5xTz0hMCxuLkwuc2Vla1RvKG4uZ2V0Q3VycmVudFRpbWUoKSx7cWQ6InF1b3RhRXhjZWVkZWQiLApxYTohMH0pLCExO0QuaW5mby5mWSgpPyhiPW4ucG9saWN5LGIuZSQ9TWF0aC5mbG9vcihiLmUkKi44KSxiLk89TWF0aC5mbG9vcihiLk8qLjgpKTooYj1uLnBvbGljeSxiLnZKPU1hdGguZmxvb3IoYi52SiouOCksYi5PPU1hdGguZmxvb3IoYi5PKi44KSk7bi5wb2xpY3kuTj9XbChuLms2LEQuaW5mby5QSik6YXEobi5jVixELmluZm8uUEopfW4uTC5HbSh7cmVhdHRhY2hPbkFwcGVuZDpXfSk7cmV0dXJuITF9OwpLVGk9ZnVuY3Rpb24obixXLEQpe3ZhciBiO2lmKGI9bi5wb2xpY3kua3AmJm4ubWVkaWFTb3VyY2UmJiFuLm1lZGlhU291cmNlLk8mJiFuLkwuUHAoKSlXPVcuaW5mby5QSi5pbmZvLGI9Vy5xSCgpJiZXLlgoKSYmVy52aWRlbyYmVy52aWRlby53aWR0aDwzODQwJiZXLnZpZGVvLndpZHRoPlcudmlkZW8uaGVpZ2h0O2lmKGImJihuLm1lZGlhU291cmNlLk89ITAsZHkoJ3ZpZGVvL3dlYm07IGNvZGVjcz0idnAwOS4wMC41MC4wOC4wMS4wMS4wMS4wMS4wMCI7IHdpZHRoPTM4NDA7IGhlaWdodD0yMTYwJykpKXJldHVybiBEPUROMShEKSxuLnBvbGljeS5XJiZuLlUoInNwNGsiLHtzOiEhRH0pLER9OwpPUDI9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz1uLkFifHxuLm1lZGlhU291cmNlO3RyeXtsZXQgaD1XPT09ay5OP24uYXVkaW9UcmFjazpuLnZpZGVvVHJhY2s7aWYobi5wb2xpY3kubnUmJmI/LlYoKSl7aWYoYj8udHc+MSlyZXR1cm4gNjtoLmJkPW5ldyBnLmZfKCgpPT57dmFyIHg9aVkoaCk7bi5xTigpfHwheD8uaXNMb2NrZWQ/bi5MLkcoKS5XWCgpJiZuLlUoImVvc2wiLHtkZWxheUE6eD8uaW5mby5nYSgpfSk6bUJiKGgpPyhuLkwuRygpLldYKCkmJm4uVSgiZW9zbCIse2R1bmxvY2s6eD8uaW5mby5nYSgpfSksJGMobixoPT09bi5hdWRpb1RyYWNrKSk6KG4uVSgibnVlIix7bHM6eC5pbmZvLmdhKCl9KSx4LmluZm8udHcrPTEsbi5tZWRpYVNvdXJjZSYmWGIobikpfSwxRTQsbik7Cm4uTC5HKCkuV1goKSYmbi5VKCJlb3NsIix7ZGVsYXlTOmIuZ2EoKX0pO2guYmQuc3RhcnQoKX1uLnBvbGljeS5zMyYmYj8uUEogaW5zdGFuY2VvZiBkdCYmYi5WKCkmJm4uVSgicG9zZW9zIix7aXRhZzpiLlBKLmluZm8uaXRhZyxzZWc6Yi5qJCxsc2VnOmIuUEouaW5kZXgueCQoKSxlczpiLlBKLmluZGV4Lkt9KTtXLmFwcGVuZEJ1ZmZlcihELGIsdil9Y2F0Y2goaCl7aWYoaCBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbil7aWYoaC5uYW1lPT09IkludmFsaWRTdGF0ZUVycm9yInx8aC5jb2RlPT09MTEpcmV0dXJuIG4uTC5HKCkuV1goKSYmbi5VKCJhZWlzIix7bXNnOmcudXAoaC5tZXNzYWdlLDMpfSksMjtpZihoLm5hbWU9PT0iU3ludGF4RXJyb3IifHxoLmNvZGU9PT0xMilyZXR1cm4gNTtpZihoLm5hbWU9PT0iUXVvdGFFeGNlZWRlZEVycm9yInx8aC5jb2RlPT09MjJ8fGgubWVzc2FnZS5pbmRleE9mKCJOb3QgZW5vdWdoIHN0b3JhZ2UiKT09PTApcmV0dXJuIFc9T2JqZWN0LmFzc2lnbih7bmFtZToiUXVvdGFFeGNlZWRlZEVycm9yIiwKYnVmZmVyZWQ6cmsoVy5aRigpKS5yZXBsYWNlKC8sL2csIl8iKSx2aGVhcDpuLnZpZGVvVHJhY2suUnUoKSxhaGVhcDpuLmF1ZGlvVHJhY2suUnUoKSxtZXNzYWdlOmcudXAoaC5tZXNzYWdlLDMpLHRyYWNrOms/Vz09PWsuSj8idiI6ImEiOiJ1In0saFF4KCkpLG4uaGFuZGxlRXJyb3IoInBsYXllci5leGNlcHRpb24iLFcpLDE7Zy5YaihoKX1yZXR1cm4gNH1yZXR1cm4gay5QQSgpPzM6MH07CnJTPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PSJmbXQudW5wbGF5YWJsZSIsaz0xO0Q9PT01fHxEPT09Mz8odj0iZm10LnVucGFyc2VhYmxlIixuLnBvbGljeS5OPyFiLlBKLmluZm8udmlkZW98fHdDKG4uazYuTikuc2l6ZT4wfHxXbChuLms2LGIuUEopOiFiLlBKLmluZm8udmlkZW98fHdDKG4uY1Yuaikuc2l6ZT4wfHxhcShuLmNWLGIuUEopKTpEPT09MiYmKG4uYUE8MTU/KG4uYUErKyx2PSJodG1sNS5pbnZhbGlkc3RhdGUiLGs9MCk6dj0iZm10LnVucGxheWFibGUiKTtiPVh4KGIpO2IubXJzPW4ubWVkaWFTb3VyY2U/LlcoKTtiLm9yaWdpbj1XO2IucmVhc29uPUQ7Yi50cmc9ImFwcGVuZGVyciI7bi5oYW5kbGVFcnJvcih2LGIsayl9OwpOMj1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPW4uS3U7dmFyIGg9bi5wb2xpY3kuTix4PSExLEw9LTE7Zm9yKGxldCByIGluIGsuTil7dmFyIGU9ay5OW3JdLmluZm8uTigpfHxrLk5bcl0uaW5mby5mWSgpO2lmKGI9PT1lKWlmKGU9ay5OW3JdLmluZGV4LGUuTUkoVy5qJCkpe3t4PWU7dmFyIEc9VztsZXQgTj14LlcoRy5qJCk7TiYmTi5zdGFydFRpbWUhPT1HLnN0YXJ0VGltZT8oeC5zZWdtZW50cz1bXSx4LmooRykseD0hMCk6eD0hMX14P0w9Vy5qJDohVy5wZW5kaW5nJiZoJiYoRz1lLmdldER1cmF0aW9uKFcuaiQpLEchPT1XLmR1cmF0aW9uJiYoay5XSigiY2xpZW50dGVtcCIsIm1mbGR1clVwZGF0ZSIse2l0YWc6ay5OW3JdLmluZm8uaXRhZyxzZWc6Vy5qJCxvZDpHLG5kOlcuZHVyYXRpb259LCExKSxlLmooVykseD0hMCkpfWVsc2UgZS5qKFcpLHg9ITB9TD49MCYmay5XSigiY2xpZW50dGVtcCIsInJlc2V0TWZsSW5kZXgiLHtbYj8idiI6ImEiXTpMfSwhMSk7az14O0FhMihuLlhhLApXLGIsayk7bi5wb2xpY3kuRHx8bi5KQy5SMChXLEQsYix2KTtXLmokPT09bi5LdS5JdCYmayYmdUEobi5LdSkmJlcuc3RhcnRUaW1lPnVBKG4uS3UpJiYobi5LdS5KVT1XLnN0YXJ0VGltZSsoaXNOYU4obi50aW1lc3RhbXBPZmZzZXQpPzA6bi50aW1lc3RhbXBPZmZzZXQpLG4uWGEuaXNTZWVraW5nKCkmJm4uWGEudGFyZ2V0VGltZTxuLkt1LkxmKCkmJm4uWGEuc2VlayhuLkt1LkxmKCkse30pKX07CiRjPWZ1bmN0aW9uKG4sVyl7aWYobi5wb2xpY3kubnUmJm4ubWVkaWFTb3VyY2Upe3ZhciBEPVc/bi5tZWRpYVNvdXJjZT8uTjpuLm1lZGlhU291cmNlPy5KO2xldCBiPVc/bi5hdWRpb1RyYWNrOm4udmlkZW9UcmFjaztXPWlZKGIpO1c/LmlzTG9ja2VkJiYobi5MLkcoKS5XWCgpJiZuLlUoImVvc2wiLHt1bmxvY2s6Vy5pbmZvLmdhKCl9KSxiLmJkPy5zdG9wKCksVy5pc0xvY2tlZD0hMSxiLlokKFcpLFBDMihuLmNWLFcuaW5mbyksRD1EPy5aZygpLEQ/LmdhKCkhPT1XLmluZm8uZ2EoKSYmbi5VKCJvdWUiLHtibHM6RD8uZ2EoKSx0bHM6Vy5pbmZvLmdhKCl9KSl9fTsKU0paPWZ1bmN0aW9uKG4sVyl7cVcoVywiY21zIixEPT57bi5wb2xpY3kuVyYmbi5VKCJwYXRocHJvYmUiLEQpfSxEPT57bi5MLmhhbmRsZUVycm9yKEQpfSl9Owp5N2k9ZnVuY3Rpb24obixXKXtuLm1lZGlhU291cmNlJiZuLm1lZGlhU291cmNlLkomJihXLT1pc05hTihuLnRpbWVzdGFtcE9mZnNldCk/MDpuLnRpbWVzdGFtcE9mZnNldCxpc05hTihuLlE1KXx8bi5RNT09PVd8fG4ucmVzdW1lKCksbi5RNT1XKX07CkVPaD1mdW5jdGlvbihuLFcsRCxiKXtkaihuKSYmbi5ETyYmYiYmYj09PTk2JiYoYj1EP24uTC5sSyhXKTpXLG4uZnAoYil8fG4uRE8uTnx8bi5VKCJwcmVidWZmZXIiLHttaXNzOjEsdDpXLnRvRml4ZWQoMyksaXNVdGM6RH0pKX07CmlQUz1mdW5jdGlvbihuLFcpe3ZhciBEPVNxKG4udmlkZW9UcmFjaykuZmluZChiPT5iLnNlZ21lbnRTdGFydFRpbWU+PVcmJlh6aChuLGIuc2VnbWVudFN0YXJ0VGltZSwhMSkpOwpyZXR1cm4gRCYmRC5zZWdtZW50U3RhcnRUaW1lPFcrRC5XKjEuNT9ELnNlZ21lbnRTdGFydFRpbWUrLjE6MH07Cm1CYj1mdW5jdGlvbihuKXt2YXIgVz1pWShuKT8uaW5mbztyZXR1cm4hV3x8bi5mcChNYXRoLm1pbihXLlgrc1gsVy5qKSl9Owp1M3g9ZnVuY3Rpb24obil7aWYoIShuLmxlbmd0aDw9MjgpKWZvcih2YXIgVz0oMCxnLk5tKShbNjAsMCw3NSwwLDczLDAsNjgsMCw2MiwwXSksRD0yODtEPG4ubGVuZ3RoOyl7YTppZihuLmxlbmd0aC1EPFcubGVuZ3RoKXZhciBiPSExO2Vsc2V7Zm9yKGI9MDtiPFcubGVuZ3RoOysrYilpZihuW0QrYl0hPT1XW2JdKXtiPSExO2JyZWFrIGF9Yj0hMH1pZihiKXtEKz1XLmxlbmd0aDtpZihuLmxlbmd0aDw9RCs0OClicmVhaztXPW5ldyBVaW50OEFycmF5KDI0KTtmb3IoYj0wO2I8MjQ7KytiKVdbYl09bltEK2IqMl07bj1wUihXKTtuPWxwKG4pO2lmKCFuKWJyZWFrO0Q9blswXTtuWzBdPW5bM107blszXT1EO0Q9blsxXTtuWzFdPW5bMl07blsyXT1EO0Q9bls0XTtuWzRdPW5bNV07bls1XT1EO0Q9bls2XTtuWzZdPW5bN107bls3XT1EO3JldHVybiBufUQrK319OwpvT3g9ZnVuY3Rpb24obixXKXthOnt2YXIgRD1XLmNyeXB0b1BlcmlvZEluZGV4O2lmKGlzTmFOKEQpJiZuLlcuc2l6ZT4wKUQ9ITA7ZWxzZXtmb3IobGV0IGIgb2Ygbi5XLnZhbHVlcygpKWlmKGIuY3J5cHRvUGVyaW9kSW5kZXg9PT1EKXtEPSEwO2JyZWFrIGF9RD0hMX19bi5XSigibG9nX3FvZSIse3d2YWd0OiJyZXFuZXdzIixjYW5za2lwOkR9KTtEfHxuLldKKCJyb3RhdGVkX25lZWRfa2V5X2luZm9fcmVhZHkiLFcpfTsKZEJoPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlICJEUk1fVFJBQ0tfVFlQRV9BVURJTyI6cmV0dXJuIDE7Y2FzZSAiRFJNX1RSQUNLX1RZUEVfU0QiOnJldHVybiAyO2Nhc2UgIkRSTV9UUkFDS19UWVBFX0hEIjpyZXR1cm4gMztjYXNlICJEUk1fVFJBQ0tfVFlQRV9VSEQxIjpyZXR1cm4gNDtjYXNlICJEUk1fVFJBQ0tfVFlQRV9VSEQyIjpyZXR1cm4gNTtkZWZhdWx0OnJldHVybiAwfX07ClQzaD1mdW5jdGlvbihuLFc9ITEpe3ZhciBEPW4uc3RhdHVzPT09IkxJQ0VOU0VfU1RBVFVTX09LIj8wOjk5OTksYj1udWxsO2lmKG4ubGljZW5zZSl0cnl7Yj1scChuLmxpY2Vuc2UpfWNhdGNoKHYpe2cuWGoodil9aWYoRD09PTAmJiFiKXJldHVybiBudWxsO2I9bmV3IHpEWihELGIpO0QhPT0wJiZuLnJlYXNvbiYmKGIuZXJyb3JNZXNzYWdlPW4ucmVhc29uKTtpZihuLmF1dGhvcml6ZWRGb3JtYXRzKXtEPXt9O2xldCB2PVtdLGs9e307Zm9yKGxldCBoIG9mIG4uYXV0aG9yaXplZEZvcm1hdHMpe2lmKCFoLnRyYWNrVHlwZXx8IWgua2V5SWQpY29udGludWU7VyYmYi5KLnB1c2goe3RyYWNrVHlwZTpkQmgoaC50cmFja1R5cGUpLGlzSGRyOiEhaC5pc0hkcn0pO2xldCB4PWxtVVtoLnRyYWNrVHlwZV07aWYoeCl7eD09PSJIRCImJm4uaXNIZDcyMCYmKHg9IkhENzIwIik7aC5pc0hkciYmKHgrPSJIRFIiKTtEW3hdfHwodi5wdXNoKHgpLERbeF09ITApO2xldCBMPW51bGw7dHJ5e0w9bHAoaC5rZXlJZCl9Y2F0Y2goZSl7Zy5YaihlKX1MJiYKKGtbZy5FQShMLDQpXT14KX19Yi5XPXY7Yi5OPWt9bi5uZXh0RmFpcnBsYXlLZXlJZCYmKGIubmV4dEZhaXJwbGF5S2V5SWQ9bi5uZXh0RmFpcnBsYXlLZXlJZCk7bi5zYWJyTGljZW5zZUNvbnN0cmFpbnQmJihiLnNhYnJMaWNlbnNlQ29uc3RyYWludD1scChuLnNhYnJMaWNlbnNlQ29uc3RyYWludCkpO3JldHVybiBifTsKajdqPWZ1bmN0aW9uKG4sVyxEKXtuLm9uU3VjY2Vzcz1XO24ub25FcnJvcj1EfTsKQzl4PWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PXt0aW1lb3V0OjNFNCxvblN1Y2Nlc3M6az0+e2lmKCFuLnFOKCkpaWYoZy5hTCgiZHJtX25ldF9yIix2b2lkIDAsbi50aW1lciksaz1UM2goayxuLkopKW4ub25TdWNjZXNzKGssbi5yZXF1ZXN0TnVtYmVyKTtlbHNlIG4ub25FcnJvcihuLCJkcm0ubmV0IiwidC5wO3AuaSIpfSwKb25FcnJvcjprPT57aWYoIW4ucU4oKSlpZihrJiZrLmVycm9yKWs9ay5lcnJvcixuLm9uRXJyb3IobiwiZHJtLm5ldC5iYWRzdGF0dXMiLGB0LnI7cC5pO2MuJHtrLmNvZGV9O3MuJHtrLnN0YXR1c31gLGsuY29kZSk7ZWxzZSBuLm9uRXJyb3IobiwiZHJtLm5ldC5iYWRzdGF0dXMiLCJ0LnI7cC5pO2MubiIpfSwKb25UaW1lb3V0OigpPT57bi5vbkVycm9yKG4sImRybS5uZXQiLGBydC5yZXEuJHtuLnJlcXVlc3ROdW1iZXJ9YCl9fTsKYiYmKHYuUDE9YEJlYXJlciAke2J9YCk7Zy5JSShELCJwbGF5ZXIvZ2V0X2RybV9saWNlbnNlIixXLHYpfTsKcEM9ZnVuY3Rpb24obixXLEQ9ITEpe2cuVEMoVyk7KER8fG4uQi5XWCgpKSYmbi5XSigiY3RtcCIsImRybWxvZyIsVyl9OwpCM3g9ZnVuY3Rpb24obil7dmFyIFc9bi5iYXNlVXJsO2hBaShXKXx8bi5lcnJvcigiZHJtLm5ldCIsMiwidC54Iik7aWYoIWcubGYoVywiZmV4cCIpKXtsZXQgRD1bIjIzODk4MzA3IiwiMjM5MTQwNjIiLCIyMzkxNjEwNiIsIjIzODgzMDk4Il0uZmlsdGVyKGI9Pm4uQi5leHBlcmltZW50cy5leHBlcmltZW50c1tiXSk7CkQubGVuZ3RoPjAmJihuLmouZmV4cD1ELmpvaW4oKSl9Zm9yKGxldCBEIG9mIE9iamVjdC5rZXlzKG4uaikpVz1LUzEoVyxELG4ualtEXSk7cmV0dXJuIFd9Owp3enI9ZnVuY3Rpb24obixXKXt2YXIgRD1udWxsO3RyeXtEPVcuY3JlYXRlU2Vzc2lvbihuLlksYj0+e3BDKG4se206Yn0pfSksRlR0KG4sRCl9Y2F0Y2goYil7Vz0idC5nIixiIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uJiYoVys9YDtjLiR7Yi5jb2RlfWApLG4uV0ooImxpY2Vuc2VlcnJvciIsImRybS51bmF2YWlsYWJsZSIsMSxXLCJIVE1MNV9OT19BVkFJTEFCTEVfRk9STUFUU19GQUxMQkFDSyIpfXJldHVybiBEfTsKRlR0PWZ1bmN0aW9uKG4sVyl7TTliKFcsKEQsYik9PntSRGoobixELGIpfSwoRCxiLHYpPT57bi5xTigpfHwoYj12b2lkIDAsZy5YVihuLkopJiZnLkRmKG4uQikmJm4uQi5TKCJodG1sNV9lbmFibGVfc2FmYXJpX2ZhaXJwbGF5IikmJnY9PT0xMjEyNDMzMjMyJiYoYj0iRVJST1JfSERDUCIpLG4uZXJyb3IoImRybS5rZXllcnJvciIsMSxELGIpKX0sKCk9PntuLnFOKCl8fChwQyhuLHtvbmt5YWRkOjF9KSxuLmNKfHwobi5XSigic2Vzc2lvbnJlYWR5Iiksbi5jSj0hMCkpfSxEPT57bi5ZVihEKX0pfTsKUkRqPWZ1bmN0aW9uKG4sVyxEKXtpZighbi5xTigpKWlmKFcpe3BDKG4se29ua210eXA6RH0pO24uc3RhdHVzPSJrbSI7c3dpdGNoKEQpe2Nhc2UgImxpY2Vuc2UtcmVuZXdhbCI6Y2FzZSAibGljZW5zZS1yZXF1ZXN0IjpjYXNlICJsaWNlbnNlLXJlbGVhc2UiOmJyZWFrO2Nhc2UgImluZGl2aWR1YWxpemF0aW9uLXJlcXVlc3QiOlE3MihuLFcpO3JldHVybjtkZWZhdWx0Om4uV0ooImN0bXAiLCJtZXNzYWdlX3R5cGUiLHt0OkQsbDpXLmJ5dGVMZW5ndGh9KX1uLnR3fHwoZy5hTCgiZHJtX2drX2YiLHZvaWQgMCxuLnZpZGVvRGF0YS56Uiksbi50dz0hMCxuLldKKCJuZXdzZXNzaW9uIixuKSk7aWYoTE4obi5KKSYmKFc9VjlpKFcpLCFXKSlyZXR1cm47dmFyIGI9ITE7aWYobi5CLlp0KCkuTi5RUShZYykpdHJ5e2I9bWsoVyx3T1opLnR5cGU9PT00fWNhdGNoKHYpe3BDKG4se2NlcnRfY2hlY2tfZmFpbGVkOjF9LCEwKX1pZihiJiZuLmRoPy5jZXJ0aWZpY2F0ZSl7cEMobix7Y2VydF9jYWNoZV9oaXQ6MX0sCiEwKTsrK24ucmVxdWVzdE51bWJlcjtsZXQgdj1uLmRoLmNlcnRpZmljYXRlO1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntjN3IobixuZXcgekRaKDAsdiksYil9KX1lbHNlIFc9bmV3IGFtcihXLCsrbi5yZXF1ZXN0TnVtYmVyLG4udmlkZW9EYXRhLnpSLG4uQi5TKCJodG1sNV9lbmFibGVfdnA5X2ZhaXJwbGF5IikpLGo3aihXLHY9PntjN3Iobix2LGIpfSwodixrLGgpPT57aWYoIW4ucU4oKSl7dmFyIHg9MDsKdi5OLko+PTMmJih4PTEsaz0iZHJtLm5ldC5yZXRyeWV4aGF1c3RlZCIpO3BDKG4se29ubGNzcnFlcnI6ayxpbmZvOmh9KTtuLmVycm9yKGsseCxoKTtuLnNob3VsZFJldHJ5KGoyKHgpLHYpJiZuUXcobix2KX19KSxnLnUobixXKSxXZzIobixXKX1lbHNlIG4uZXJyb3IoImRybS51bmF2YWlsYWJsZSIsMSwia20uZW1wdHkiKX07ClE3Mj1mdW5jdGlvbihuLFcpe3BDKG4se3NkcHZycToxfSk7bi5WPXBlcmZvcm1hbmNlLm5vdygpO2lmKG4uSi5mbGF2b3IhPT0id2lkZXZpbmUiKW4uZXJyb3IoImRybS5wcm92aXNpb24iLDEsYGUuZmxhdm9yO2YuJHtuLkouZmxhdm9yfTtsLiR7Vy5ieXRlTGVuZ3RofWApO2Vsc2V7dmFyIEQ9e2NwbjpuLnZpZGVvRGF0YS5jbGllbnRQbGF5YmFja05vbmNlfTtPYmplY3QuYXNzaWduKEQsbi5CLk4pO0Q9Zy5FVCgiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vY2VydGlmaWNhdGVwcm92aXNpb25pbmcvdjEvZGV2aWNlY2VydGlmaWNhdGVzL2NyZWF0ZT9rZXk9QUl6YVN5Qi01T0xLVHgyaVU1bWtvMThEZmR3SzU2MTFKSWpiVWhFIixEKTtXPXtmb3JtYXQ6IlJBVyIsaGVhZGVyczp7ImNvbnRlbnQtdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxtZXRob2Q6IlBPU1QiLHBvc3RCb2R5OkpTT04uc3RyaW5naWZ5KHtzaWduZWRSZXF1ZXN0OlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwKVyl9KSxyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIn07Zy5zeihELFcsMyw1MDApLnRoZW4oWXooYj0+e2I9Yi54aHI7aWYoIW4ucU4oKSl7Yj1uZXcgVWludDhBcnJheShiLnJlc3BvbnNlKTt2YXIgdj1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYik7dHJ5e3ZhciBrPUpTT04ucGFyc2Uodil9Y2F0Y2goaCl7fWsmJmsuc2lnbmVkUmVzcG9uc2U/KG4uV0ooImN0bXAiLCJkcm1pbmZvIix7cHJvdmlzaW9uaW5nOjF9KSxrPShwZXJmb3JtYW5jZS5ub3coKS1uLlYpLzFFMyxuLlY9TmFOLG4uV0ooImN0bXAiLCJwcm92cyIse2V0OmsudG9GaXhlZCgzKX0pLG4uWCYmbi5YLnVwZGF0ZShiKSk6KGs9ayYmay5lcnJvciYmay5lcnJvci5tZXNzYWdlLGI9ImUucGFyc2UiLGsmJihiKz1gO20uJHtrfWApLG4uZXJyb3IoImRybS5wcm92aXNpb24iLDEsYikpfX0pLFl6KGI9PntuLnFOKCl8fG4uZXJyb3IoImRybS5wcm92aXNpb24iLDEsYGUuJHtiLmVycm9yQ29kZX07Yy4ke2IueGhyJiYKYi54aHIuc3RhdHVzfWApfSkpfX07CmM3cj1mdW5jdGlvbihuLFcsRCl7bi5xTigpfHwoKHBDKG4se29ubGNzcnNwOjF9KSxuLnN0YXR1cz0icnIiLFcuc3RhdHVzQ29kZSE9PTApP24uZXJyb3IoImRybS5hdXRoIiwxLGB0LmY7Yy4ke1cuc3RhdHVzQ29kZX1gLFcuZXJyb3JNZXNzYWdlfHx2b2lkIDApOihEJiZuLmRoJiZuLkIuWnQoKS5OLlFRKFljKSYmKG4uZGguY2VydGlmaWNhdGU9Vy5tZXNzYWdlKSxnLmFMKCJkcm1fa3JfcyIsdm9pZCAwLG4udmlkZW9EYXRhLnpSKSxXLmhlYXJ0YmVhdFBhcmFtcyYmVy5oZWFydGJlYXRQYXJhbXMudXJsJiZuLnZpZGVvRGF0YS5TKCJvdXRlcnR1YmVfc3RyZWFtaW5nX2RhdGFfYWx3YXlzX3VzZV9zdGFnaW5nX2xpY2Vuc2Vfc2VydmljZSIpJiYoRD1uLkouVy5tYXRjaCgvKC4qKXlvdXR1YmUuY29tL2cpKSYmKFcuaGVhcnRiZWF0UGFyYW1zLnVybD1EWzBdK1cuaGVhcnRiZWF0UGFyYW1zLnVybCksVy5oZWFydGJlYXRQYXJhbXMmJm4uV0ooIm5ld2xpY2Vuc2UiLFcuaGVhcnRiZWF0UGFyYW1zKSwKVy5XJiYobi5XPVcuVyxuLnZpZGVvRGF0YS5hTXx8bi5XSigibmV3bGljZW5zZSIsbmV3IERiaiksbi52aWRlb0RhdGEuYU09ITAsbi5LPWcub00obi5XLGI9PmIuaW5jbHVkZXMoIkhEUiIpKSksVy5KJiYobi5EPVcuSiksVy5OJiYobi5CLlMoImh0bWw1X2VuYWJsZV92cDlfZmFpcnBsYXkiKSYmbi5KLk4oKT8oRD1nLkVBKHhLKG4uZmFpcnBsYXlLZXlJZCksNCksbi5OW0RdPXt0eXBlOlcuTltEXSwKc3RhdHVzOiJ1bmtub3duIn0pOm4uTj1XeChXLk4sYj0+KHt0eXBlOmIsc3RhdHVzOiJ1bmtub3duIn0pKSksZzEobi5KKSYmKFcubWVzc2FnZT1hMjIoZy5FQShXLm1lc3NhZ2UpKSksbi5YJiYocEMobix7dXBkdGtzOjF9KSxuLnN0YXR1cz0ia3UiLG4uWC51cGRhdGUoVy5tZXNzYWdlKS50aGVuKCgpPT57Zy5hTCgiZHJtX2tyX2YiLHZvaWQgMCxuLnZpZGVvRGF0YS56Uik7CkhyKG4pfHwocEMobix7a3NBcGlVbnN1cDoxfSksbi5XSigia2V5c3RhdHVzZXNjaGFuZ2UiLG4pKX0sYj0+e2I9YG1zdWYucmVxLiR7bi5yZXF1ZXN0TnVtYmVyfTttc2cuJHtnLnVwKGIubWVzc2FnZSwzKX1gOwpuLmVycm9yKCJkcm0ua2V5ZXJyb3IiLDEsYil9KSksZy5YVihuLkopJiZuLldKKCJmYWlycGxheV9uZXh0X25lZWRfa2V5X2luZm8iLG4uYmFzZVVybCxXLm5leHRGYWlycGxheUtleUlkKSxuLkIuUygiaHRtbDVfZW5hYmxlX3ZwOV9mYWlycGxheSIpJiZuLkouTigpJiZuLldKKCJxdWFsaXR5Y2hhbmdlIixibWgobi5XKSksVy5zYWJyTGljZW5zZUNvbnN0cmFpbnQmJm4uV0ooInNhYnJsaWNlbnNlY29uc3RyYWludCIsVy5zYWJyTGljZW5zZUNvbnN0cmFpbnQpKSl9OwpXZzI9ZnVuY3Rpb24obixXKXtuLnN0YXR1cz0ia20iO2cuYUwoImRybV9uZXRfcyIsdm9pZCAwLG4udmlkZW9EYXRhLnpSKTt2YXIgRD1uZXcgZy5kNChuLkIuU1YpLGI9e2NvbnRleHQ6Zy5VSihELmNvbmZpZ198fGcuUzkoKSl9O2IuZHJtU3lzdGVtPXZRQ1tuLkouZmxhdm9yXTtiLnZpZGVvSWQ9bi52aWRlb0RhdGEudmlkZW9JZDtiLmNwbj1uLnZpZGVvRGF0YS5jbGllbnRQbGF5YmFja05vbmNlO2Iuc2Vzc2lvbklkPW4uc2Vzc2lvbklkO2IubGljZW5zZVJlcXVlc3Q9Zy5FQShXLm1lc3NhZ2UpO2IuZHJtUGFyYW1zPW4udmlkZW9EYXRhLmRybVBhcmFtcztpc05hTihuLmNyeXB0b1BlcmlvZEluZGV4KXx8KGIuaXNLZXlSb3RhdGVkPSEwLGIuY3J5cHRvUGVyaW9kSW5kZXg9bi5jcnlwdG9QZXJpb2RJbmRleCk7dmFyIHY9ISFuLnZpZGVvRGF0YS5KPy5LKCk/LmlzSGRyKCk7Yi5kcm1WaWRlb0ZlYXR1cmU9dj8iRFJNX1ZJREVPX0ZFQVRVUkVfUFJFRkVSX0hEUiI6IkRSTV9WSURFT19GRUFUVVJFX1NEUiI7Cm4uQi5leHBlcmltZW50cy5adCgpLk4uUVEoa1RiKSYmKGIuY29udGV4dD1nLm9UKG4udmlkZW9EYXRhKSk7aWYoYi5jb250ZXh0JiZiLmNvbnRleHQuY2xpZW50KXtpZih2PW4uQi5OKWIuY29udGV4dC5jbGllbnQuZGV2aWNlTWFrZT12LmNicmFuZCxiLmNvbnRleHQuY2xpZW50LmRldmljZU1vZGVsPXYuY21vZGVsLGIuY29udGV4dC5jbGllbnQuYnJvd3Nlck5hbWU9di5jYnIsYi5jb250ZXh0LmNsaWVudC5icm93c2VyVmVyc2lvbj12LmNicnZlcixiLmNvbnRleHQuY2xpZW50Lm9zTmFtZT12LmNvcyxiLmNvbnRleHQuY2xpZW50Lm9zVmVyc2lvbj12LmNvc3ZlcjtuLkIuZXhwZXJpbWVudHMuWnQoKS5OLlFRKGtUYil8fChiLmNvbnRleHQudXNlcj1iLmNvbnRleHQudXNlcnx8e30sbi52aWRlb0RhdGEuRCYmKGIuY29udGV4dC51c2VyLmNyZWRlbnRpYWxUcmFuc2ZlclRva2Vucz1be3Rva2VuOm4udmlkZW9EYXRhLkQsc2NvcGU6IlZJREVPIn1dKSxuLnZpZGVvRGF0YS5ISiYmKGIuY29udGV4dC51c2VyLmtpZHNQYXJlbnQ9CntvYXV0aFRva2VuOm4udmlkZW9EYXRhLkhKfSkpO2IuY29udGV4dC5yZXF1ZXN0PWIuY29udGV4dC5yZXF1ZXN0fHx7fTtiLmNvbnRleHQucmVxdWVzdC5tZHhFbnZpcm9ubWVudD1uLnZpZGVvRGF0YS5tZHhFbnZpcm9ubWVudHx8Yi5jb250ZXh0LnJlcXVlc3QubWR4RW52aXJvbm1lbnQ7Zy5YVihuLkopJiYoYi5mYWlycGxheUtleUlkPWcuRUEoeEsobi5mYWlycGxheUtleUlkKSkpO2cuSEUobi5CLG4udmlkZW9EYXRhLlYoKSkudGhlbihrPT57Qzl4KFcsYixELGspO24uc3RhdHVzPSJycyJ9KX1lbHNlIG4uZXJyb3IoImRybS5uZXQiLDIsInQucjtpYy4wIil9OwpoOE09ZnVuY3Rpb24obixXLEQpe3ZhciBiPXt9O2IuaXNIZHI9Vy5pbmNsdWRlcygiSERSIik7c3dpdGNoKFcucmVwbGFjZSgiSERSIiwiIikucmVwbGFjZSgiNzIwIiwiIikpe2Nhc2UgIkFVRElPIjpiLnRyYWNrVHlwZT0xO2JyZWFrO2Nhc2UgIlNEIjpiLnRyYWNrVHlwZT0yO2JyZWFrO2Nhc2UgIkhEIjpiLnRyYWNrVHlwZT0zO2JyZWFrO2Nhc2UgIlVIRDEiOmIudHJhY2tUeXBlPTQ7YnJlYWs7Y2FzZSAiVUhEMiI6Yi50cmFja1R5cGU9NTticmVhaztkZWZhdWx0OmIudHJhY2tUeXBlPTB9IWIudHJhY2tUeXBlfHxEW1ddfHxIcihuKSYmIWZDKG4sVyl8fChuLmF1dGhvcml6ZWRGb3JtYXRzLnB1c2goYiksRFtXXT0hMCl9Owp4Ymo9ZnVuY3Rpb24obixXKXt2YXIgRD1bXTtmb3IobGV0IGIgb2YgT2JqZWN0LmtleXMobi5OKSlELnB1c2goYCR7Yn1fJHtuLk5bYl0udHlwZX1fJHtuLk5bYl0uc3RhdHVzfWApO3JldHVybiBELmpvaW4oVyl9OwpIcj1mdW5jdGlvbihuKXt2YXIgVztpZihXPW4uTyYmbi5YIT1udWxsKW49bi5YLFc9ISghbi5OfHwhbi5OLmtleVN0YXR1c2VzKTtyZXR1cm4gV307Cm5Rdz1mdW5jdGlvbihuLFcpe3ZhciBEPVcuTi5nZXRWYWx1ZSgpO0Q9bmV3IGcuZl8oKCk9PntXZzIobixXKX0sRCk7CmcudShuLEQpO0Quc3RhcnQoKTtnLnhFKFcuTik7cEMobix7cnR5cnE6MX0pfTsKSjI9ZnVuY3Rpb24obil7dmFyIFc9e307V1tuLnN0YXR1c109SHIobik/eGJqKG4sIi4iKTpuLlcuam9pbigiLiIpO3JldHVybiBXfTsKZkM9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgaW4gbi5OKWlmKG4uTltEXS5zdGF0dXM9PT0idXNhYmxlIiYmbi5OW0RdLnR5cGU9PT1XKXJldHVybiEwO3JldHVybiExfTsKTGd3PWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIGluIG4uTilpZihuLk5bRF0udHlwZT09PVcpcmV0dXJuIG4uTltEXS5zdGF0dXN9OwplOHc9ZnVuY3Rpb24obil7dmFyIFc9blswXTtuWzBdPW5bM107blszXT1XO1c9blsxXTtuWzFdPW5bMl07blsyXT1XO1c9bls0XTtuWzRdPW5bNV07bls1XT1XO1c9bls2XTtuWzZdPW5bN107bls3XT1XfTsKYm1oPWZ1bmN0aW9uKG4pe3JldHVybiBnLmpqKG4sIlVIRDIiKXx8Zy5qaihuLCJVSEQySERSIik/ImhpZ2hyZXMiOmcuamoobiwiVUhEMSIpfHxnLmpqKG4sIlVIRDFIRFIiKT8iaGQyMTYwIjpnLmpqKG4sIkhEIil8fGcuamoobiwiSERIRFIiKT8iaGQxMDgwIjpnLmpqKG4sIkhENzIwIil8fGcuamoobiwiSEQ3MjBIRFIiKT8iaGQ3MjAiOiJsYXJnZSJ9OwpWOWk9ZnVuY3Rpb24obil7dmFyIFc9IiI7Zm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKz0yKVcrPVN0cmluZy5mcm9tQ2hhckNvZGUobltEXSk7bj1nLmdUKG5ldyBET01QYXJzZXIsZy5ITShXKSwidGV4dC94bWwiKTtpZighbilyZXR1cm4gbnVsbDsoVz1uLnF1ZXJ5U2VsZWN0b3IoIkNoYWxsZW5nZSIpKSYmVy5jaGlsZE5vZGVzJiZXLmNoaWxkTm9kZXMubGVuZ3RoIT09MD8obj1VaW50OEFycmF5LFc9emgoVy5jaGlsZE5vZGVzWzBdLm5vZGVWYWx1ZSksVz0oMCxnLk5tKShXKS5idWZmZXIsbj1uZXcgbihXKSk6bj1udWxsO3JldHVybiBufTsKTTliPWZ1bmN0aW9uKG4sVyxELGIsdil7bi5qPVc7bi5XPUQ7bi5WPWI7bi5LPXZ9OwpnUXc9ZnVuY3Rpb24obil7bi5OPyhuLlguTk4obi5OLCJtZXNzYWdlIixuLmJkKSxuLlguTk4obi5OLCJrZXlzdGF0dXNlc2NoYW5nZSIsbi5ZViksbi5OLmNsb3NlZCYmbi5OLmNsb3NlZC50aGVuKFl6KCgpPT57bi5xTigpfHxnLnViKCJ4Ym94b25lIikmJm4uVyYmbi5XKCJjbG9zZWRTaG91bGROb3RSZXRyeSIpfSksbnVsbCkpOm4uSiYmKEt5KG4uWCxuLkosWyJtc2tleW1lc3NhZ2UiLAoid2Via2l0a2V5bWVzc2FnZSJdLG4uY0opLEt5KG4uWCxuLkosWyJtc2tleWVycm9yIiwid2Via2l0a2V5ZXJyb3IiXSxuLk8pLEt5KG4uWCxuLkosWyJtc2tleWFkZGVkIiwid2Via2l0a2V5YWRkZWQiXSxuLkQpKX07ClhVUz1mdW5jdGlvbihuLFcsRCl7Zy5YaihEKTtuLlcmJihEIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uJiYoVys9YDtuLiR7RC5uYW1lfTttLiR7RC5tZXNzYWdlfWApLG4uVyhXKSl9OwpxY1U9ZnVuY3Rpb24obil7S3kobi5YLG4uZWxlbWVudCxbImtleW1lc3NhZ2UiLCJ3ZWJraXRrZXltZXNzYWdlIl0sbi5PKTtLeShuLlgsbi5lbGVtZW50LFsia2V5ZXJyb3IiLCJ3ZWJraXRrZXllcnJvciJdLG4uRCk7S3kobi5YLG4uZWxlbWVudCxbImtleWFkZGVkIiwid2Via2l0a2V5YWRkZWQiXSxuLlkpfTsKR1RTPWZ1bmN0aW9uKG4sVz1udWxsKXtpZihuLk4ua2V5U3lzdGVtQWNjZXNzKXJldHVybiBuLks9bi5LLnRoZW4oKCk9Pm4ubWVkaWFLZXlzP1Byb21pc2UucmVzb2x2ZSgpOlc/Lm1lZGlhS2V5cyYmVy5ZYT8ucGcoKT8obi5tZWRpYUtleXM9Vz8ubWVkaWFLZXlzLFByb21pc2UucmVzb2x2ZSgpKTpuLk4ua2V5U3lzdGVtQWNjZXNzLmNyZWF0ZU1lZGlhS2V5cygpLnRoZW4oRD0+e24ucU4oKXx8KG4ubWVkaWFLZXlzPUQsVz8uWWE/LnBnKCkmJihXLm1lZGlhS2V5cz1EKSl9KSkudGhlbigoKT0+e3ZhciBEPVc/LmVfKCk7CnJldHVybiBuLmVsZW1lbnQmJm4uZWxlbWVudCE9PUQmJm4uZWxlbWVudC5tZWRpYUtleXM/bi5lbGVtZW50LnNldE1lZGlhS2V5cyhudWxsKTpQcm9taXNlLnJlc29sdmUoKX0pLnRoZW4oKCk9PntuLmVsZW1lbnQ9Vz8uZV8oKTsKcmV0dXJuIG4uZWxlbWVudCYmbi5lbGVtZW50Lm1lZGlhS2V5cyE9PW4ubWVkaWFLZXlzP24uZWxlbWVudC5zZXRNZWRpYUtleXMobi5tZWRpYUtleXMpOlByb21pc2UucmVzb2x2ZSgpfSksbi5LOwp4aChuLk4pP24uSj1uZXcgKHZYKCkpKG4uTi5rZXlTeXN0ZW0pOmVUKG4uTik/KG4uSj1uZXcgKHZYKCkpKG4uTi5rZXlTeXN0ZW0pLG4uZWxlbWVudD8ud2Via2l0U2V0TWVkaWFLZXlzKG4uSikpOnFjVShuKTtyZXR1cm4gbnVsbH07CnR3TT1mdW5jdGlvbihuLFcpe3ZhciBEPW5ldyBVaW50OEFycmF5KDI3MCk7Zm9yKGxldCBiPTA7YjwxMzU7YisrKURbYioyXT0nPFBsYXlSZWFkeUNETURhdGEgdHlwZT0iTGljZW5zZUFjcXVpc2l0aW9uIj48TGljZW5zZUFjcXVpc2l0aW9uIHZlcnNpb249IjEuMCIgUHJvYWN0aXZlPSJ0cnVlIj48L0xpY2Vuc2VBY3F1aXNpdGlvbj48L1BsYXlSZWFkeUNETURhdGE+Jy5jaGFyQ29kZUF0KGIpO249bi5KLmNyZWF0ZVNlc3Npb24oInZpZGVvL21wNCIsVyxEKTtyZXR1cm4gbmV3IEl1KG51bGwsbnVsbCxudWxsLG51bGwsbil9OwpySTE9ZnVuY3Rpb24obixXKXtXPSRiWihXLG4uTi5DaSk7Vz1uLkouY3JlYXRlU2Vzc2lvbigidmlkZW8vbXA0IixXKTtyZXR1cm4gbmV3IEl1KG51bGwsbnVsbCxudWxsLG51bGwsVyxuLlYpfTsKUzA9ZnVuY3Rpb24obixXKXt2YXIgRD1uLmpbVy5zZXNzaW9uSWRdOyFEJiZuLlcmJihEPW4uVyxuLlc9bnVsbCxELnNlc3Npb25JZD1XLnNlc3Npb25JZCxuLmpbVy5zZXNzaW9uSWRdPUQpO3JldHVybiBEfTsKJGJaPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5zdWJhcnJheSg0KTtEPW5ldyBVaW50MTZBcnJheShELmJ1ZmZlcixELmJ5dGVPZmZzZXQsRC5ieXRlTGVuZ3RoLzIpO0Q9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLEQpLm1hdGNoKC9laz0oWzAtOWEtZl0rKS8pWzFdO3ZhciBiPSIiO2Zvcih2YXIgdj0wO3Y8RC5sZW5ndGg7dis9MiliKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KEQuc3Vic3RyaW5nKHYsdisyKSwxNikpO0Q9YjtiPW5ldyBBcnJheUJ1ZmZlcihELmxlbmd0aCoyKTt2PW5ldyBVaW50MTZBcnJheShiKTtmb3IodmFyIGs9MDtrPEQubGVuZ3RoO2srKyl2W2tdPUQuY2hhckNvZGVBdChrKTtEPW5ldyBVaW50OEFycmF5KGIpO2I9MDtrPW5ldyBBcnJheUJ1ZmZlcihuLmJ5dGVMZW5ndGgrNCtELmJ5dGVMZW5ndGgrNCtXLmJ5dGVMZW5ndGgpO3Y9bmV3IFVpbnQ4QXJyYXkoayk7az1uZXcgRGF0YVZpZXcoayk7di5zZXQobik7Yis9bi5ieXRlTGVuZ3RoOwprLnNldFVpbnQzMihiLEQubGVuZ3RoLCEwKTtiKz00O3Yuc2V0KEQsYik7Yis9RC5sZW5ndGg7ay5zZXRVaW50MzIoYixXLmJ5dGVMZW5ndGgsITApO3Yuc2V0KFcsYis0KTtyZXR1cm4gdn07Ck5vQz1mdW5jdGlvbihuKXt2YXIgVz1HVFMobi5tZWRpYUtleXMsbi5tZWRpYUVsZW1lbnQpO1c/Vy50aGVuKFl6KCgpPT57c0lNKG4pfSksWXooRD0+e2lmKCFuLnFOKCkpe2cuWGooRCk7CnZhciBiPSJ0LmEiO0QgaW5zdGFuY2VvZiBET01FeGNlcHRpb24mJihiKz0iO24uIitELm5hbWUrIjttLiIrRC5tZXNzYWdlKTtuLldKKCJsaWNlbnNlZXJyb3IiLCJkcm0udW5hdmFpbGFibGUiLDEsYiwiSFRNTDVfTk9fQVZBSUxBQkxFX0ZPUk1BVFNfRkFMTEJBQ0siKX19KSk6KG4uSih7bWRrcmR5OjF9KSxuLkQ9ITApOwpuLk8mJihXPUdUUyhuLk8sbi5tZWRpYUVsZW1lbnQpKX07CnNJTT1mdW5jdGlvbihuKXtpZighbi5xTigpKWlmKG4uQi5TKCJodG1sNV9kcm1fc2V0X3NlcnZlcl9jZXJ0Iil8fG4uTi5OKCkpe2xldCBXPW4ubWVkaWFLZXlzLnNldFNlcnZlckNlcnRpZmljYXRlKCk7Vz9XLnRoZW4oWXooRD0+e24uQi5XWCgpJiZuLldKKCJjdG1wIiwic3NjIix7c3VjY2VzczpEfSl9KSxZeihEPT57bi5XSigiY3RtcCIsInNzY2UiLHtuOkQubmFtZSwKbTpELm1lc3NhZ2V9KX0pKS50aGVuKFl6KCgpPT57QTIobil9KSk6QTIobil9ZWxzZSBBMihuKX07ClljMT1mdW5jdGlvbihuLFcsRCl7bi5QWD0hMDtEPW5ldyBydShXLEQpO24uQi5TKCJodG1sNV9lbWVfbG9hZGVyX3N5bmMiKSYmKG4uVi5nZXQoVyl8fG4uVi5zZXQoVyxEKSk7cFVqKG4sRCl9OwpwVWo9ZnVuY3Rpb24obixXKXtpZighbi5xTigpKXtuLkooe29uSW5pdERhdGE6MX0pO2lmKG4uQi5TKCJodG1sNV9lbWVfbG9hZGVyX3N5bmMiKSYmbi52aWRlb0RhdGEuVyYmbi52aWRlb0RhdGEuVy5OKCkpe3ZhciBEPW4uSy5nZXQoVy5pbml0RGF0YSk7Vz1uLlYuZ2V0KFcuaW5pdERhdGEpO2lmKCFEfHwhVylyZXR1cm47Vz1EO0Q9Vy5pbml0RGF0YTtuLlYucmVtb3ZlKEQpO24uSy5yZW1vdmUoRCl9bi5KKHtpbml0ZDpXLmluaXREYXRhLmxlbmd0aCxjdDpXLmNvbnRlbnRUeXBlfSk7aWYobi5OLmZsYXZvcj09PSJ3aWRldmluZSIpaWYobi5WUSYmIW4udmlkZW9EYXRhLmlzTGl2ZVBsYXliYWNrKW1uKG4pO2Vsc2V7aWYoIShuLkIuUygidnA5X2RybV9saXZlIikmJm4udmlkZW9EYXRhLmlzTGl2ZVBsYXliYWNrJiZXLnFIKSl7bi5WUT0hMDtEPVcuY3J5cHRvUGVyaW9kSW5kZXg7dmFyIGI9Vy5OO1Z2dChXKTtXLnFIfHwoYiYmVy5OIT09Yj9uLldKKCJjdG1wIiwiY3BzbW0iLHtlbXNnOmIsCnBzc2g6Vy5OfSk6RCYmVy5jcnlwdG9QZXJpb2RJbmRleCE9PUQmJm4uV0ooImN0bXAiLCJjcGltbSIse2Vtc2c6RCxwc3NoOlcuY3J5cHRvUGVyaW9kSW5kZXh9KSk7bi5XSigid2lkZXZpbmVfc2V0X25lZWRfa2V5X2luZm8iLFcpfX1lbHNlIG4uUyQoVyl9fTsKbW49ZnVuY3Rpb24obil7aWYobi5QWCYmbi5EJiYhbi5iZCl7Zm9yKDtuLlgubGVuZ3RoOyl7bGV0IFc9bi5YWzBdLEQ9SG1TKG4pP2NraihXKTpnLkVBKFcuaW5pdERhdGEpO2lmKG4uTi5OKCkmJiFXLlVXKW4uWC5zaGlmdCgpO2Vsc2V7aWYobi5XLmdldChEKSlpZihuLk4uZmxhdm9yIT09ImZhaXJwbGF5Inx8bi5OLk4oKSl7bi5YLnNoaWZ0KCk7Y29udGludWV9ZWxzZSBuLlcuZGVsZXRlKEQpO1Z2dChXKTticmVha319bi5YLmxlbmd0aCYmbi5jcmVhdGVTZXNzaW9uKG4uWFswXSl9fTsKQTI9ZnVuY3Rpb24obil7bi5xTigpfHwobi5EPSEwLG4uSih7b25tZGtyZHk6MX0pLG1uKG4pKX07CkhtUz1mdW5jdGlvbihuKXtyZXR1cm4gbi5OLmZsYXZvcj09PSJ3aWRldmluZSImJm4udmlkZW9EYXRhLlMoImh0bWw1X2RybV9jcGlfbGljZW5zZV9rZXkiKX07CmY1eD1hc3luYyBmdW5jdGlvbihuKXtpZihnLmQ4KCkmJm4ubWVkaWFLZXlzLm1lZGlhS2V5cz8uZ2V0TWV0cmljcyl7dmFyIFc9YXdhaXQgbi5tZWRpYUtleXMuZ2V0TWV0cmljcygpO1cmJigoMCxnLkc5KShXKXx8KFc9Zy5IRyhXKSksL15bQS1aYS16MC05Xy1dKz17MCwzfSQvLnRlc3QoVyl8fChXPWcudXAoVyx2b2lkIDAsITApKSxuLldKKCJjdG1wIiwiZHJtIix7bWV0cmljczpXfSkpfX07CkpJYj1mdW5jdGlvbihuLFcpe2lmKG4udmlkZW9EYXRhLlkpcmV0dXJuITE7bi55US5udSs9MTtpZihuLnlRLm51PD0xMClyZXR1cm4hMTtXLmV4aWxlZD1gJHtuLnlRLm51fWA7bi5HcygicW9lLnN0YXJ0MTVzIixXKTtuLkwuV0ooInBsYXliYWNrc3RhbGxlZGF0c3RhcnQiKTtyZXR1cm4hMH07Ckk1Mj1mdW5jdGlvbihuKXtpZighbi5KKXtuLko9ITA7dmFyIFc9bi5MLmdldFBsYXllclN0YXRlKCk7Vz1XLmlzUGF1c2VkKCl8fFcuaXNTdXNwZW5kZWQoKTtuLkwub0ooKTtXJiYhT1Mobi52aWRlb0RhdGEpfHxuLkwuV0ooInNpZ25hdHVyZWV4cGlyZWQiKX19OwpLQz1mdW5jdGlvbihuLFcsRCl7dmFyIGI9bi52aWRlb0RhdGEuSix2PW4udmlkZW9EYXRhLlgsaz1uLnlRLlMoImh0bWw1X2Rpc2FibGVfY29kZWNfZmFsbGJhY2tfZm9yX2RybSIpJiZuLnZpZGVvRGF0YS5NaSgpO0FKKG4uTC5nZXRWaWRlb0RhdGEoKSkmJlA5VShuLkwsInBlIik7bi55US5adCgpLk4uUVEoU2N0KSYmKEQuYmtnPW4uTC5YTygpLmlzQmFja2dyb3VuZCgpPyIxIjoiMCIpO2lmKChXPT09InByb2dyZXNzaXZlLm5ldC5yZXRyeWV4aGF1c3RlZCJ8fFc9PT0iZm10LnVucGxheWFibGUifHxXPT09ImZtdC5kZWNvZGUiKSYmIW4uTC5oVS5qJiZiJiZiLml0YWc9PT0iMjIiKXJldHVybiBuLkwuaFUuaj0hMCxuLkdzKCJxb2UucmVzdGFydCIse3JlYXNvbjoiZm10LnVucGxheWFibGUuMjIifSksbi5MLlZ2KCksITA7dmFyIGg9ITE7aWYobi52aWRlb0RhdGEuaXNFeHRlcm5hbGx5SG9zdGVkUG9kY2FzdCl7aWYoaD1uLnZpZGVvRGF0YS5xdylELm1pbWVUeXBlPWgudHlwZSwKbi5VKCIzcHAiLHt1cmw6aC51cmx9KTtELm5zPSIzcHAiO24uTC5QVihXLDEsIlZJREVPX1VOQVZBSUxBQkxFIixnLlRDKChuZXcgZy5DaShXLEQsMSkpLmRldGFpbHMpKTtyZXR1cm4hMH12YXIgeD1uLmtzKzNFNDwoMCxnLlIpKCl8fG4uTi5pc0FjdGl2ZSgpO2lmKG4ueVEuUygiaHRtbDVfZW1wdHlfc3JjIikmJm4udmlkZW9EYXRhLmlzQWQoKSYmVz09PSJmbXQudW5wbGF5YWJsZSImJi9FbXB0eSBzcmMvLnRlc3QoYCR7RC5tc2d9YCkpcmV0dXJuIEQub3JpZ2luPSJlbXB0eXNyYyIsbi5HcygiYXV0aCIsRCksITA7dmFyIEw7aWYoTD0heClMPW4uTC5YTygpLEw9ISEoTC5CUCgpfHxMLmlzSW5saW5lKCl8fEwuaXNCYWNrZ3JvdW5kKCl8fEwuQW4oKXx8TC5qSSgpfHxMLlNJKCl8fEwuUTAoKSk7TCYmKEQubm9uZmc9InBhdXNlZCIseD0hMCxuLkwucGF1c2VWaWRlbygpKTtXIT09ImZtdC5kZWNvZGUiJiZXIT09ImZtdC51bnBsYXlhYmxlInx8IXY/LlYoKXx8KFNUKG4ueVEuVyx2LklCKSwKRC5hY2ZhbGxleHA9di5JQixoPXg9ITApOyF4JiZuLlc+MCYmKG4uTi5zdGFydCgpLHg9ITAsRC5kZWxheWVkPSIxIiwtLW4uVyk7dj1uLkwubG9hZGVyO3h8fCFiPy5NVygpJiYhYj8uWCgpfHxrfHwoU1Qobi55US5XLGIuSUIpLGg9eD0hMCxELmNmYWxsZXhwPWIuSUIpO2lmKCF4KXJldHVybiBKSWIobixEKTtrPSExO24uaj9uLmtzPSgwLGcuUikoKTprPW4uaj0hMDt4PW4udmlkZW9EYXRhO3guY0o/KHg9eC5jSi5qKCksTD1EYXRlLm5vdygpLzFFMysxODAwLHg9eDxMKTp4PSExO0QuZT1XO3gmJihELnN0YWxlcHJvZz0iMSIpO24uR3MoInFvZS5yZXN0YXJ0IixEKTtpZih4JiZuLlExKCkpcmV0dXJuIEk1MihuKSwhMDtpZighKCFnLnViKCJwaGlsaXBzIil8fFc9PT0iZm10LnVucGxheWFibGUiJiZ2JiZ2LkNIfHxuLnlRLk4uY3BsYXRmb3JtPT09IkdBTUVfQ09OU09MRSIpKXRyeXt3aW5kb3cuY2xvc2UoKX1jYXRjaHt9YiYmYi5NVygpJiYhbi55US5TKCJodG1sNV9hbGxvd19hdjFfcmV0cnlfaW5fc2Vzc2lvbiIpPwooaD1uLnlRLlcsaC5ZPSEwLGg9aC5OPSEwKTp2PyhXPW4ueVEuUygiaHRtbDVfZGlzYWJsZV9zdHVubmluZ19mb3Jfc2QiKSxEPW4udmlkZW9EYXRhLlcsRD1EPy52aWRlb0luZm9zPy5sZW5ndGg/RC52aWRlb0luZm9zW0QudmlkZW9JbmZvcy5sZW5ndGgtMV06bnVsbCxiPWImJkQmJmIudmlkZW8mJkQudmlkZW8mJmIudmlkZW8ucXVhbGl0eU9yZGluYWw9PT1ELnZpZGVvLnF1YWxpdHlPcmRpbmFsLGt8fFcmJmJ8fChiPShiPUkkKHYudmlkZW9UcmFjayl8fHYudmlkZW9UcmFjay5OKT9iLlBKOnYudmlkZW9UcmFjay5QSixiLkZGKz0xLHYucG9saWN5Lk4/V2wodi5rNixiLCEwKTphcSh2LmNWLGIsITApKSk6bi52aWRlb0RhdGEuY0omJm4udmlkZW9EYXRhLmNKLlgoKTtuLk4uaXNBY3RpdmUoKXx8bi5MLkJvKGgpO3JldHVybiEwfTsKQUlNPWZ1bmN0aW9uKG4sVyl7aWYoKG49bi5MLmg1KCkpJiYoVy5lcnJvckNvZGU9PT0iZm10LnVucGxheWFibGUifHxXLmVycm9yQ29kZT09PSJodG1sNS5pbnZhbGlkc3RhdGUiKSl7bGV0IEQ9bi5WRygpO1cuZGV0YWlscy5tZXJyPUQ/RC50b1N0cmluZygpOiIwIjtXLmRldGFpbHMubW1zZz1uLnM4KCl9fTsKbWJNPWZ1bmN0aW9uKG4pe3JldHVybiBuLmVycm9yQ29kZT09PSJuZXQuYmFkc3RhdHVzIiYmKG4uc2V2ZXJpdHk9PT0xfHwhIW4uZGV0YWlscy5mbXRfdW5hdil9OwpLZ3g9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi55US5TKCJodG1sNV91c2VfbmV0d29ya19lcnJvcl9jb2RlX2VudW1zIikmJlcuZGV0YWlscy5yYz09PTQwM3x8Vy5kZXRhaWxzLnJjPT09IjQwMyI/KG49Vy5lcnJvckNvZGUsbj09PSJuZXQuYmFkc3RhdHVzInx8bj09PSJtYW5pZmVzdC5uZXQucmV0cnlleGhhdXN0ZWQiKTohMX07Ck9YPWZ1bmN0aW9uKG4sVyxEKXt0cnl7Vz17ZGV0YWlsOmBwci4ke1d9YH0sZy54NihuLnlRKXx8bG8obi55USk9PT0iVFZIVE1MNV9GT1JfS0lEUyI/bi5MLlBWKCJxb2UucmVzdGFydCIsRD8xOjIsdm9pZCAwLGcuVEMoVyksIjciKToobi5HcygicW9lLnJlc3RhcnQiLFcpLHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKSl9Y2F0Y2h7fX07Ck9tMj1mdW5jdGlvbihuLFcpe2lmKCFLZ3gobixXKSYmIW4uSilyZXR1cm4hMTtXLmRldGFpbHMuc3RzPSIyMDY1NSI7aWYobi5RMSgpKXJldHVybiBqMihXLnNldmVyaXR5KSYmKFc9T2JqZWN0LmFzc2lnbih7ZTpXLmVycm9yQ29kZX0sVy5kZXRhaWxzKSxXPW5ldyBnLkNpKCJxb2UucmVzdGFydCIsVykpLG4uR3MoVy5lcnJvckNvZGUsVy5kZXRhaWxzKSxJNTIobiksITA7KDAsZy5SKSgpLW4ueVEuQ3U+NjA0OEU1JiZPWChuLCJzaWduYXR1cmUiLCEwKTtyZXR1cm4hMX07ClBNaj1mdW5jdGlvbihuKXtpZihuLnZpZGVvRGF0YS5lcnJvckRldGFpbD09PSI3IiYmZy5rNihuLnlRKSl7bGV0IFc9IW4udmlkZW9EYXRhLmlzSW5saW5lUGxheWJhY2tOb0FkO1cmJm4ueVEuVFErKztPWChuLCJpbm5lcnR1YmVfcGxheWVyX3JlbG9hZF9yZXF1aXJlZCIsVyYmbi55US5UUT4xKTtyZXR1cm4hMH1yZXR1cm4hMX07ClByPWZ1bmN0aW9uKG4sVz0iZm10Lm5vbmVhdmFpbGFibGUiKXt2YXIgRD1uLnlRLlc7RC5LPSExO0QuTj0hMDtuLkdzKCJxb2UucmVzdGFydCIse2U6VyxkZXRhaWw6ImhkciJ9KTtuLkwuQm8oITApfTsKWm1oPWZ1bmN0aW9uKG4pe2lmKG4uTC5YTygpLmlzSW5saW5lKCkpcmV0dXJuIFlaO249TGdbcDcoKV07cmV0dXJuIHZBKCJhdXRvIixuLCExLCJzIil9Owp5SXI9ZnVuY3Rpb24obixXKXt2YXIgRDthOmlmKChEPVcuTikmJkQudmlkZW9JbmZvcy5sZW5ndGgpe2Zvcih2YXIgYiBvZiBELnZpZGVvSW5mb3MpaWYoYi5qPy5zbW9vdGgpe0Q9Yi52aWRlby5xdWFsaXR5T3JkaW5hbDticmVhayBhfUQ9RC52aWRlb0luZm9zWzBdLnZpZGVvLnF1YWxpdHlPcmRpbmFsfWVsc2UgRD0wO2I9ITA7bi5CLlMoIndlYl9yZWxheF9hcm1fY2FwIikmJm5hdmlnYXRvci5KRiYmKGI9ITEpO2ImJihnLnViKCJhcm12NyIpfHxnLnViKCJhYXJjaDY0Iil8fGcudWIoImFuZHJvaWQiKSkmJiFnLms2KG4uQikmJlcuTi52aWRlb0luZm9zWzBdLlgoKSYmKEQ9TWF0aC5taW4oRCxORy5sYXJnZSkpO2I9Zy5kTShuLkIuZXhwZXJpbWVudHMsImh0bWw1X2NoaXBzZXRfc29mdF9jYXAiKTtiPjAmJihEPU1hdGgubWluKEQsYikpO2I9bi5CLncwKCkuTi5RUShVYlMpO2I+MCYmKEQ9TWF0aC5taW4oRCxiKSk7aWYoYj1nLmRNKG4uQi5leHBlcmltZW50cywiaHRtbDVfbWF4X3ZlcnRpY2FsX3Jlc29sdXRpb24iKSl7bGV0IGg9CjQzMjA7Zm9yKHZhciB2PTA7djxXLk4udmlkZW9JbmZvcy5sZW5ndGg7disrKXt2YXIgaz1XLk4udmlkZW9JbmZvc1t2XTtrLnZpZGVvLmhlaWdodD5iJiYoaD1NYXRoLm1pbihoLGsudmlkZW8ucXVhbGl0eU9yZGluYWwpKX1pZihoPDQzMjApe3Y9MDtmb3Ioaz0wO2s8Vy5OLnZpZGVvSW5mb3MubGVuZ3RoO2srKyl7bGV0IHg9Vy5OLnZpZGVvSW5mb3Nba10udmlkZW8ucXVhbGl0eU9yZGluYWw7eDxoJiYodj1NYXRoLm1heCh2LHgpKX12JiYoRD1NYXRoLm1pbih2LEQpKX1uLkwuVSgibXZyIix7aDpiLGNwOkR9KX1yZXR1cm4gbmV3IGIzKDAsRCwhMSwibyIpfTsKaW1yPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9NDMyMDshbi5CLmp8fGcuQ04obi5CKXx8bi5CLlMoImhsc19mb3Jfdm9kIil8fG4uQi5TKCJtd2ViX3JlbW92ZV8zNjBwX2NhcCIpfHwoRD1ORy5tZWRpdW0pO3ZhciBiPWcuZE0obi5CLmV4cGVyaW1lbnRzLCJodG1sNV9kZWZhdWx0X3F1YWxpdHlfY2FwIik7YiYmVy5OLk4oKSYmKG4uQi5TKCJodG1sNV9hbHdheXNfYXBwbHlfZGVmYXVsdF9xdWFsaXR5X2NhcCIpfHwhVy52aWRlb0RhdGEuaTUmJiFXLnZpZGVvRGF0YS5jb250ZW50UHJvdGVjdGlvbikmJihEPU1hdGgubWluKEQsYikpO2I9Zy5kTShuLkIuZXhwZXJpbWVudHMsImh0bWw1X3JhbmRvbV9wbGF5YmFja19jYXAiKTt2YXIgdj0vW2EtaF0kLztiJiZ2LnRlc3QoVy52aWRlb0RhdGEuY2xpZW50UGxheWJhY2tOb25jZSkmJihEPU1hdGgubWluKEQsYikpO2lmKHY9Yj1nLmRNKG4uQi5leHBlcmltZW50cywiaHRtbDVfaGZyX3F1YWxpdHlfY2FwIikpYTp7dj1XLk47aWYodi5OKCkpZm9yKHZhciBrIG9mIHYudmlkZW9JbmZvcylpZihrLnZpZGVvLkooKSl7dj0KITA7YnJlYWsgYX12PSExfXYmJihEPU1hdGgubWluKEQsYikpOyhrPWcuZE0obi5CLmV4cGVyaW1lbnRzLCJodG1sNV9saXZlX3F1YWxpdHlfY2FwIikpJiZXLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFjayYmKEQ9TWF0aC5taW4oRCxrKSk7RD1FUU0obixXLEQpO249Zy5kTShuLkIuZXhwZXJpbWVudHMsImh0bWw1X2J5dGVyYXRlX3NvZnRfY2FwIik7cmV0dXJuIG5ldyBiMygwLEQ9PT00MzIwPzA6RCwhMSwiZCIsbil9OwpaVj1mdW5jdGlvbihuLFcpe3ZhciBEPW4uTC5YTygpO3JldHVybiBELmlzSW5saW5lKCkmJiFXLnVuY2FwSW5saW5lUXVhbGl0eT9uZXcgYjMoMCw0ODAsITEsInYiKTpnLllOKFcpP1laOkQuaXNCYWNrZ3JvdW5kKCkmJmcudkkoKS8xRTM+NjAmJiFnLms2KG4uQik/bmV3IGIzKDAsMzYwLCExLCJ2Iik6WVp9OwpVWD1mdW5jdGlvbihuLFcsRCl7aWYobi5CLmV4cGVyaW1lbnRzLkVxKCJodG1sNV9kaXNhYmxlX2NsaWVudF9hdXRvbmF2X2NhcF9mb3Jfb25lc2llIikmJlcuaHEoKXx8Zy5rNihuLkIpJiYocDcoLTEpPj0xMDgwfHxXLm9zaWQpKXJldHVybiBZWjt2YXIgYj1nLmRNKG4uQi5leHBlcmltZW50cywiaHRtbDVfYXV0b25hdl9xdWFsaXR5X2NhcCIpLHY9Zy5kTShuLkIuZXhwZXJpbWVudHMsImh0bWw1X2F1dG9uYXZfY2FwX2lkbGVfc2VjcyIpO3JldHVybiBiJiZXLmlzQXV0b25hdiYmZy52SSgpLzFFMz52PyhEJiYoYj1FUU0obixELGIpKSxuZXcgYjMoMCxiLCExLCJlIikpOllafTsKeTM9ZnVuY3Rpb24obixXKXtpZighVy5OLk4oKSlyZXR1cm4gbi5qP25ldyBiMygwLDM2MCwhMSwiYiIpOllaO3ZhciBEPSExLGI9ITE7Zm9yKHZhciB2IG9mIFcuTi52aWRlb0luZm9zKXYuTVcoKT9EPSEwOmI9ITA7RD1EJiZiO2I9MDt2PWcuZE0obi5CLmV4cGVyaW1lbnRzLCJodG1sNV9wZXJmb3JtYW5jZV9jYXBfZmxvb3IiKTt2PW4uQi5qPzI0MDp2O2ZvcihsZXQgayBvZiBXLk4udmlkZW9JbmZvcyl7aWYoRCYmay5NVygpKWNvbnRpbnVlO1c9VkMoay5JQixrLnZpZGVvLmZwcyxuLlcpO2xldCBoPWsudmlkZW8ucXVhbGl0eU9yZGluYWw7aWYoTWF0aC5tYXgoVyx2KT49aCl7Yj1oO2JyZWFrfX1yZXR1cm4gbmV3IGIzKDAsYiwhMSwiYiIpfTsKaW09ZnVuY3Rpb24obixXKXt2YXIgRD1FWChuLFcuTj8udmlkZW9JbmZvcyksYj1uLkwuZ2V0UGxheWJhY2tSYXRlKCk7cmV0dXJuIGI+MSYmRD8obj1KeihuLkIuVyxXLk4udmlkZW9JbmZvcyxiKSxuZXcgYjMoMCxuLCEwLCJvIikpOm5ldyBiMygwLDAsITEsIm8iKX07CnVtPWZ1bmN0aW9uKG4sVyxEKXtnLms2KG4uQikmJihEPUQuY29tcG9zZShuLk1oKFcpKSk7cmV0dXJuIER9OwpFWD1mdW5jdGlvbihuLFcpe3JldHVybiBXJiZnLms2KG4uQik/Vy5zb21lKEQ9PkQudmlkZW8uSigpKTohMX07CkVRTT1mdW5jdGlvbihuLFcsRCl7aWYobi5TKCJodG1sNV9vcHRpbWFsaXR5X2RlZmF1bHRzX2Nob29zZXNfbmV4dF9oaWdoZXIiKSYmRClmb3Iobj1XLk4udmlkZW9JbmZvcyxXPTE7VzxuLmxlbmd0aDtXKyspaWYobltXXS52aWRlby5xdWFsaXR5T3JkaW5hbDxEKXJldHVybiBuW1ctMV0udmlkZW8ucXVhbGl0eU9yZGluYWw7cmV0dXJuIER9Owp1aWo9YXN5bmMgZnVuY3Rpb24obil7aWYoIW4uTi5OKCl8fHR5cGVvZiBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXM/LmRlY29kaW5nSW5mbyE9PSJmdW5jdGlvbiIpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2F3YWl0IFByb21pc2UucmVzb2x2ZSgpO2ZvcihsZXQgVyBvZiBuLk4udmlkZW9JbmZvcylhd2FpdCBrM3IoVyl9OwpvUTI9ZnVuY3Rpb24obixXKXt2YXIgRD1XLklCLGI9Vy52aWRlby5mcHMsdj1XLnZpZGVvLnF1YWxpdHlPcmRpbmFsLTEsaz1uLlc7Vz1gJHtEfSR7Yj40OT8icDYwIjpiPjMyPyJwNDgiOiIifWA7RD1WQyhELGIsayk7dj4wJiYoRD1NYXRoLm1pbihELHYpKTshY0YuaGFzKFcpJiZKcygpLmluY2x1ZGVzKFcpPyhiPWY3KCksK2JbV10+MCYmKEQ9TWF0aC5taW4oK2JbV10sRCkpLGJbV10hPT1EJiYoYltXXT1ELGcuUEIoInl0LXBsYXllci1wZXJmb3JtYW5jZS1jYXAiLGIsMjU5MkUzKSkpOmNGLmhhcyhXKXx8az09bnVsbD8oYj1KcygpLnNsaWNlKCksYi5pbmNsdWRlcyhXKXx8KGIucHVzaChXKSxnLlBCKCJ5dC1wbGF5ZXItcGVyZm9ybWFuY2UtY2FwLWFjdGl2ZS1zZXQiLGIsMjU5MkUzKSksUUMuc2V0KFcsRCkpOihjRi5hZGQoVyksaz8uc2V0KFcsRCkpO24uTC5zVCgpfTsKZGJTPWZ1bmN0aW9uKCl7cmV0dXJuIFd4KGY3KCksbj0+YCR7bn1gKX07Cno4Mj1mdW5jdGlvbihuLFcsRCxiKXtpZighV3x8IUR8fCFXLnZpZGVvRGF0YS5KKXJldHVybiExO3ZhciB2PWcuZE0obi5CLmV4cGVyaW1lbnRzLCJodG1sNV9kZl9kb3duZ3JhZGVfdGhyZXNoIiksaz1uLlMoImh0bWw1X2xvZ19tZWRpYV9wZXJmX2luZm8iKTtpZighKCgwLGcuUikoKS1uLlg8NUUzPzA6a3x8dj4wKSlyZXR1cm4hMTt2YXIgaD0oKDAsZy5SKSgpLW4uWCkvMUUzO24uWD0oMCxnLlIpKCk7RD1ELmdldFZpZGVvUGxheWJhY2tRdWFsaXR5KCk7aWYoIUQpcmV0dXJuITE7dmFyIHg9RC5kcm9wcGVkVmlkZW9GcmFtZXMtbi5WLEw9RC50b3RhbFZpZGVvRnJhbWVzLW4udG90YWxGcmFtZXM7bi5WPUQuZHJvcHBlZFZpZGVvRnJhbWVzO24udG90YWxGcmFtZXM9RC50b3RhbFZpZGVvRnJhbWVzO3ZhciBlPUQuZGlzcGxheUNvbXBvc2l0ZWRWaWRlb0ZyYW1lcz09PTA/MDpELmRpc3BsYXlDb21wb3NpdGVkVmlkZW9GcmFtZXN8fC0xO2smJm4uQi5XWCgpJiZuLkwuVSgiZGRmIiwKe2RyOkQuZHJvcHBlZFZpZGVvRnJhbWVzLGRlOkQudG90YWxWaWRlb0ZyYW1lcyxjb21wOmV9KTtpZihiKXJldHVybiBuLk49MCwhMTtpZigoTC14KS9oPm4uWXx8IXZ8fGcuazYobi5CKSlyZXR1cm4hMTtuLk49KEw+NjA/eC9MOjApPnY/bi5OKzE6MDtpZihuLk4hPT0zKXJldHVybiExO29RMihuLFcudmlkZW9EYXRhLkopO24uTC5VKCJkZmQiLE9iamVjdC5hc3NpZ24oe2RyOkQuZHJvcHBlZFZpZGVvRnJhbWVzLGRlOkQudG90YWxWaWRlb0ZyYW1lc30sZGJTKCkpKTtyZXR1cm4hMH07Cmw1VT1mdW5jdGlvbihuLFcpe24uUygiaHRtbDVfbG9nX21lZGlhX3BlcmZfaW5mbyIpJiYobi5MLlUoInBlcmZkYiIsZGJTKCkpLG4uTC5VKCJzZXNzaW9ucGVyZmRiIixPYmplY3QuZnJvbUVudHJpZXMoUUMuZW50cmllcygpKSksbi5MLlUoInBsYXliYWNrcGVyZmRiIixPYmplY3QuZnJvbUVudHJpZXMobi5XLmVudHJpZXMoKSkpLG4uTC5VKCJod2MiLHtuY2g6bmF2aWdhdG9yLmhhcmR3YXJlQ29uY3VycmVuY3l9LCEwKSxXJiZuLkwuVSgibWNkYiIse2l0YWdzOlcuTi52aWRlb0luZm9zLmZpbHRlcihEPT5ELmo/LnNtb290aD09PSExKS5tYXAoRD0+RC5pdGFnKS5qb2luKCItIil9KSl9OwpiQT1mdW5jdGlvbihuLFcsRD0hMSl7bi5ZYT8uV1goKSYmbi5ZYS5VKCJybXMiLFcsRCl9OwpvdT1mdW5jdGlvbihuKXtuPW4uTygpO3JldHVybiBuLmxlbmd0aDwxP05hTjpuLmVuZChuLmxlbmd0aC0xKX07ClRvaT1mdW5jdGlvbihuLFcpe24uWGImJm4uWGIuZXF1YWxzKFcpfHwobi5YYiYmbi5YYi5kaXNwb3NlKCksbi5YYj1XKX07CmpJaj1mdW5jdGlvbihuKXshbi5XJiZjUigpJiYobi5qP24uai50aGVuKCgpPT5qSWoobikpOm4uWF8oKXx8KG4uVz1uLlV6KCkpKX07CkNNeD1mdW5jdGlvbihuLFcsRCl7bi5pc1BhdXNlZCgpfHxuLmdldEN1cnJlbnRUaW1lKCk+V3x8RD4xMHx8KG4ucGxheSgpLGcubiQoKCk9PntDTXgobixuLmdldEN1cnJlbnRUaW1lKCksRCsxKX0sNTAwKSl9OwpCb3Q9ZnVuY3Rpb24obixXKXtpZihuLlgoKT09PTB8fG4uaGFzRXJyb3IoKSlyZXR1cm4hMTt2YXIgRD1uLmdldEN1cnJlbnRUaW1lKCk+MDtyZXR1cm4gVz49MCYmKG49bi5PKCksbi5sZW5ndGh8fCFEKT9CUihuLFcpOkR9OwpkUz1mdW5jdGlvbihuKXtpZihuLlhfKCl8fG4uVEMoKSluLllhJiZuLllhLkNjKCJyc19zIiksZy5NTCYmbi5nZXRDdXJyZW50VGltZSgpPjAmJm4uc2Vla1RvKDApLG4uVlEoKSxuLmUkKCksbi5sb2FkKCksVG9pKG4sbnVsbCk7ZGVsZXRlIG4uan07CkZnYj1mdW5jdGlvbihuKXt2YXIgVz1uLkooKTtyZXR1cm4gTSQoVykmJm4uZ2V0RHVyYXRpb24oKT9XLmVuZChXLmxlbmd0aC0xKTowfTsKelg9ZnVuY3Rpb24obil7c3dpdGNoKG4uVkcoKSl7Y2FzZSAyOnJldHVybiJwcm9ncmVzc2l2ZS5uZXQucmV0cnlleGhhdXN0ZWQiO2Nhc2UgMzpyZXR1cm4gbj1uLnM4KCksbj8uaW5jbHVkZXMoIk1FRElBX0VSUl9DQVBBQklMSVRZX0NIQU5HRUQiKXx8d1VNJiZuPy5pbmNsdWRlcygiYXVkaW9fb3V0cHV0X2NoYW5nZSIpPyJjYXBhYmlsaXR5LmNoYW5nZWQiOiJmbXQuZGVjb2RlIjtjYXNlIDQ6cmV0dXJuImZtdC51bnBsYXlhYmxlIjtjYXNlIDU6cmV0dXJuImRybS51bmF2YWlsYWJsZSI7Y2FzZSAxRTM6cmV0dXJuImNhcGFiaWxpdHkuY2hhbmdlZCI7ZGVmYXVsdDpyZXR1cm4gbnVsbH19OwpNd2g9ZnVuY3Rpb24obil7dmFyIFc9bnVsbDtuWzRdJiYoVz1uWzRdLFc9e2Vycm9yQ29kZTpXWzVdLGVycm9yRGV0YWlsOldbNl0sZXJyb3JNZXNzYWdlOldbN10saHk6V1s4XSxUaDpXWzldLHdpOldbMTBdLEp4OldbMTFdLGNwbjpXWzEyXX0pO3JldHVybiBuZXcgZy5sbShuWzFdLFcsblsyXSxuWzNdKX07CmwxPWZ1bmN0aW9uKG4pe3JldHVybiBuLmlzUGxheWluZygpJiYhbi5OKDE2KSYmIW4uTigzMil9OwpUWD1mdW5jdGlvbihuKXtyZXR1cm4gbi5OKDEyOCk/LTE6bi5OKDIpPzA6bi5OKDIwNDgpPzM6bi5OKDY0KT8tMTpuLk4oMSkmJiFuLk4oMzIpPzM6bi5OKDgpPzE6bi5OKDQpPzI6LTF9OwpqMD1mdW5jdGlvbihuLFcsRCxiLHYpe2lmKCEoVz09PW4uc3RhdGUmJkQ9PT1uLmhPJiZiPT09bi5zZWVrU291cmNlJiZ2PT09bi5zdG9wcGFnZVJlYXNvbnx8VyE9PXZvaWQgMCYmKFcmMTI4JiYhRHx8VyYyJiZXJjE2KSkpe3ZhciBrO2lmKGs9VylrPVd8fG4uc3RhdGUsaz0hIShrJjE2fHxrJjMyKTtuPW5ldyBnLmxtKFcsRCxrP2I/YjpuLnNlZWtTb3VyY2U6bnVsbCx2KX1yZXR1cm4gbn07CkNDPWZ1bmN0aW9uKG4sVyxEPSExKXtyZXR1cm4gUjhDKG4sVy5nZXRDdXJyZW50VGltZSgpLCgwLGcuUikoKSxXLnpzKCksRCl9OwpCcj1mdW5jdGlvbihuLFcsRD1udWxsLGI9bnVsbCl7cmV0dXJuIGowKG4sbi5zdGF0ZXxXLG51bGwsRCxiKX07CkZiPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGowKG4sbi5zdGF0ZSZ+VyxudWxsLG51bGwsbnVsbCl9Owp3Uz1mdW5jdGlvbihuLFcsRCxiPW51bGwsdj1udWxsKXtyZXR1cm4gajAobiwobi5zdGF0ZXxXKSZ+RCxudWxsLGIsdil9OwpRSVM9ZnVuY3Rpb24obixXKXtyZXR1cm4gVy5zdGF0ZT09PW4uc3RhdGUmJlcuaE89PT1uLmhPfTsKVndNPWZ1bmN0aW9uKG4pe3N3aXRjaChuLkIucGxheWVyQ2FuYXJ5U3RhZ2U/LnRvTG93ZXJDYXNlKCkpe2Nhc2UgInhzbWFsbCI6cmV0dXJuIkhUTUw1X1BMQVlFUl9DQU5BUllfU1RBR0VfWFNNQUxMIjtjYXNlICJzbWFsbCI6cmV0dXJuIkhUTUw1X1BMQVlFUl9DQU5BUllfU1RBR0VfU01BTEwiO2Nhc2UgIm1lZGl1bSI6cmV0dXJuIkhUTUw1X1BMQVlFUl9DQU5BUllfU1RBR0VfTUVESVVNIjtjYXNlICJsYXJnZSI6cmV0dXJuIkhUTUw1X1BMQVlFUl9DQU5BUllfU1RBR0VfTEFSR0UiO2Nhc2UgInhsYXJnZSI6cmV0dXJuIkhUTUw1X1BMQVlFUl9DQU5BUllfU1RBR0VfWExBUkdFIjtkZWZhdWx0OnJldHVybiJIVE1MNV9QTEFZRVJfQ0FOQVJZX1NUQUdFX1VOU1BFQ0lGSUVEIn19OwpjSWo9ZnVuY3Rpb24obil7bi5OPj0wfHwobi5wcm92aWRlci5MLmdldFZpc2liaWxpdHlTdGF0ZSgpPT09Mz9uLlY9ITA6KG4uTj1nLlJrKG4ucHJvdmlkZXIpLG4uZGVsYXkuc3RhcnQoKSkpfTsKYTVyPWZ1bmN0aW9uKG4pe2lmKCEobi5KPDApKXt2YXIgVz1nLlJrKG4ucHJvdmlkZXIpLEQ9Vy1uLmo7bi5qPVc7bi5wbGF5ZXJTdGF0ZS5KKCk/bi5wbGF5VGltZVNlY3MrPUQ6bi5wbGF5ZXJTdGF0ZS5pc0J1ZmZlcmluZygpJiYhbi5wbGF5ZXJTdGF0ZS5OKDE2KSYmKG4ucmVidWZmZXJUaW1lU2Vjcys9RCl9fTsKUnU9ZnVuY3Rpb24obixXPSExKXtuLk4uWD1XO24uTi5zdGFydFRpbWU9bi5XO24uTi5lbmRUaW1lPW4uSjtuLmpWPy5sZW5ndGgmJihuLk4ualY9bi5qVik7bi5yWD8ubGVuZ3RoJiYobi5OLnJYPW4uclgpO1c9ITE7dmFyIEQ9Zy5VTShuLnNlZ21lbnRzKTtuLnNlZ21lbnRzLmxlbmd0aCYmIUQ/LlgmJkQ/LmlzRW1wdHkoKT8obi5zZWdtZW50c1tuLnNlZ21lbnRzLmxlbmd0aC0xXS5wcmV2aW91c2x5RW5kZWQmJihuLk4ucHJldmlvdXNseUVuZGVkPSEwKSxuLnNlZ21lbnRzW24uc2VnbWVudHMubGVuZ3RoLTFdPW4uTixXPSEwKTpuLnNlZ21lbnRzLmxlbmd0aCYmbi5OLmlzRW1wdHkoKSYmIW4uTi5YfHwobi5zZWdtZW50cy5wdXNoKG4uTiksVz0hMCk7Vz8obi5OLmVuZFRpbWU9PT0wJiYobi5wcmV2aW91c2x5RW5kZWQ9ITEpLG4uTi5yWD8ubGVuZ3RoJiZuLnByb3ZpZGVyLkwuVSgic2RhaSIse2F0dGFjaF9tZXRhOjEsc3Q6bi5OLnN0YXJ0VGltZSxldDpuLk4uZW5kVGltZSxzZWdfaWR4Om4uc2VnbWVudHMubGVuZ3RoLQoxfSkpOm4uTi5wcmV2aW91c2x5RW5kZWQmJihuLnByZXZpb3VzbHlFbmRlZD0hMCk7bi5WKz1uLkotbi5XO24uTj1NbShuLnByb3ZpZGVyKTtuLk4ucHJldmlvdXNseUVuZGVkPW4ucHJldmlvdXNseUVuZGVkO24ucHJvdmlkZXIuQi5adCgpLk4uUVEobm9yKSYmKG4uais9SlNPTi5zdHJpbmdpZnkobi5OKS5sZW5ndGgpO24ucHJldmlvdXNseUVuZGVkPSExO24uVz1uLko7cmV0dXJuIFc/Zy5VTShuLnNlZ21lbnRzKTp2b2lkIDB9OwpXM1o9ZnVuY3Rpb24obil7RHIobi5LKTtuLks9TmFOfTsKRGoyPWZ1bmN0aW9uKG4pe1czWihuKTtuLks9VzAoKCk9PntuLnVwZGF0ZSgpfSwxMDApOwpuLnJ6PWcuUmsobi5wcm92aWRlcik7bi5OPU1tKG4ucHJvdmlkZXIpfTsKYlh0PWZ1bmN0aW9uKG4sVyxEKXtELT1uLnJ6O3JldHVybiBXPT09bi5KJiZEPi41fTsKZy5RMz1mdW5jdGlvbihuLFcpe3ZhciBEPW4uc2VuZFZpc2l0b3JJZEhlYWRlcj9uLnZpc2l0b3JEYXRhOnZvaWQgMDtyZXR1cm4gZy5IRShuLkIsbi5hY2Nlc3NUb2tlbikudGhlbihiPT5qUihuLnVyaSxuLkIsbi5wYWdlSWQsRCxiLFcpKX07Cmcudm9qPWZ1bmN0aW9uKG4pe24uaW5kZXhPZigid2F0Y2h0aW1lIikhPT0tMSYmZy56VSgiZ2VsRGVidWdnaW5nRXZlbnQiLHt2c3MzZGVidWdnaW5nRXZlbnQ6e3ZzczJQaW5nOm59fSl9OwprcGk9ZnVuY3Rpb24obixXKXtuLmF0dGVzdGF0aW9uUmVzcG9uc2UmJmcuUTMobikudGhlbihEPT57RD1EfHx7fTtELm1ldGhvZD0iUE9TVCI7RC5wb3N0UGFyYW1zPXthdHI6bi5hdHRlc3RhdGlvblJlc3BvbnNlfTtuLlMkP24uVlE/Zy5IVSgpLnNlbmRBbmRXcml0ZShXLEQpOmcuSFUoKS5zZW5kVGhlbldyaXRlKFcsRCk6Zy5lZChXLEQpfSl9OwpoeWk9ZnVuY3Rpb24obil7dmFyIFc9e08zOltdfTtpZihnLm9NKG4uc2VnbWVudHMsRD0+ISFELmpWfHwhIUQuclgpKXtmb3IobGV0IEQgb2Ygbi5zZWdtZW50cylXLk8zLnB1c2goe2pWOkQualZ8fFtdLApyWDpELnJYfHxbXX0pO249Zy5saCh7Ykw6V30sUV8xKTtyZXR1cm4gZy5FQShuLDQpfX07CmJKPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGcuaV8oVyxuLkopLmpvaW4oIiwiKX07CnZ5TT1mdW5jdGlvbihuLFcpe2lmKFcmJm4uail7dmFyIEQ9bmV3IFNldChbInEiLCJmZWF0dXJlIiwibW9zIl0pLGI9bmV3IFNldCgiYXV0b3BsYXkgY2wgbGVuIGZleHAgZGVsYXkgZWwgbnMgYWRmb3JtYXQiLnNwbGl0KCIgIikpLHY9bmV3IFNldChbImFxaSIsImF1dG9uYXYiLCJsaXN0Iiwic3NydCIsInVwdCJdKTtuLmoubnM9PT0iM3BwIiYmKFcubnM9IjNwcCIpO2ZvcihsZXQgayBvZiBPYmplY3Qua2V5cyhuLmopKWIuaGFzKGspfHxELmhhcyhrKXx8di5oYXMoaykmJiFuLmpba118fChXW2tdPW4ualtrXSl9fTsKeGpqPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlICJwbGF5aW5nIjpyZXR1cm4iUExBWUVSX1BMQVlCQUNLX1NUQVRFX1BMQVlJTkciO2Nhc2UgInBhdXNlZCI6cmV0dXJuIlBMQVlFUl9QTEFZQkFDS19TVEFURV9QQVVTRUQiO2Nhc2UgImJ1ZmZlcmluZyI6cmV0dXJuIlBMQVlFUl9QTEFZQkFDS19TVEFURV9CVUZGRVJJTkciO2Nhc2UgInNlZWtpbmciOnJldHVybiJQTEFZRVJfUExBWUJBQ0tfU1RBVEVfU0VFS0lORyI7Y2FzZSAiZW5kZWQiOnJldHVybiJQTEFZRVJfUExBWUJBQ0tfU1RBVEVfRU5ERUQiO2Nhc2UgImVycm9yIjpyZXR1cm4iUExBWUVSX1BMQVlCQUNLX1NUQVRFX0VSUk9SIjtjYXNlICJzdXNwZW5kZWQiOnJldHVybiJQTEFZRVJfUExBWUJBQ0tfU1RBVEVfU1VTUEVOREVEIjtjYXNlICJ1bnN0YXJ0ZWQiOnJldHVybiJQTEFZRVJfUExBWUJBQ0tfU1RBVEVfVU5TVEFSVEVEIjtkZWZhdWx0OnJldHVybiJQTEFZRVJfUExBWUJBQ0tfU1RBVEVfVU5LTk9XTiJ9fTsKTDN4PWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIDE6cmV0dXJuIlZJU19NSU5JTUlaRUQiO2Nhc2UgMjpyZXR1cm4iVklTX0ZVTExTQ1JFRU4iO2Nhc2UgMzpyZXR1cm4iVklTX0JBQ0tHUk9VTkQiO2Nhc2UgNDpyZXR1cm4iVklTX0FJUlBMQVkiO2Nhc2UgNTpyZXR1cm4iVklTX0lOTElORSI7Y2FzZSA2OnJldHVybiJWSVNfVlIiO2Nhc2UgNzpyZXR1cm4iVklTX1BJQ1RVUkVfSU5fUElDVFVSRSI7Y2FzZSA4OnJldHVybiJWSVNfSU1NRVJTSVZFX1BSRVZJRVciO2Nhc2UgOTpyZXR1cm4iVklTX1NRVUVFWkVCQUNLIjtjYXNlIDEwOnJldHVybiJWSVNfVEhFQVRFUiI7Y2FzZSAzMTpyZXR1cm4iVklTX0lOVkFMSUQiO2RlZmF1bHQ6cmV0dXJuIlZJU19ERUZBVUxUIn19OwpleWo9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgMTpyZXR1cm4iQ09OTl9VTktOT1dOIjtjYXNlIDI6cmV0dXJuIkNPTk5fTk9ORSI7Y2FzZSAzOnJldHVybiJDT05OX1dJRkkiO2Nhc2UgNDpyZXR1cm4iQ09OTl9DRUxMVUxBUl8yRyI7Y2FzZSA1OnJldHVybiJDT05OX0NFTExVTEFSXzNHIjtjYXNlIDY6cmV0dXJuIkNPTk5fQ0VMTFVMQVJfNEciO2Nhc2UgNzpyZXR1cm4iQ09OTl9DRUxMVUxBUl9VTktOT1dOIjtjYXNlIDg6cmV0dXJuIkNPTk5fRElTQ08iO2Nhc2UgOTpyZXR1cm4iQ09OTl9DRUxMVUxBUl81RyI7Y2FzZSAxMDpyZXR1cm4iQ09OTl9XSUZJX01FVEVSRUQiO2Nhc2UgMTE6cmV0dXJuIkNPTk5fQ0VMTFVMQVJfNUdfU0EiO2Nhc2UgMTI6cmV0dXJuIkNPTk5fQ0VMTFVMQVJfNUdfTlNBIjtjYXNlIDMwOnJldHVybiJDT05OX1dJUkVEIjtjYXNlIDMxOnJldHVybiJDT05OX0lOVkFMSUQiO2RlZmF1bHQ6cmV0dXJuIkNPTk5fREVGQVVMVCJ9fTsKZy5jcj1mdW5jdGlvbihuLFcpe3ZhciBEPVYzKG4ucHJvdmlkZXIpO09iamVjdC5hc3NpZ24oRCx7c3RhdGU6bi5YfSk7Vz1uZXcgZ29oKG4ucHJvdmlkZXIudmlkZW9EYXRhLG4ucHJvdmlkZXIuQixXLEQpO1cuTj1uLnByb3ZpZGVyLkwub3QoKTtEPW4ucHJvdmlkZXIudmlkZW9EYXRhLmNsaWVudFBsYXliYWNrTm9uY2U7Vy5OPW4ucHJvdmlkZXIuTC5vaChEKTtuLnByb3ZpZGVyLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFja3x8KFcuZSQ9bi5wcm92aWRlci5MLmdldER1cmF0aW9uKEQpKTtuLnByb3ZpZGVyLnZpZGVvRGF0YS5OJiYoRD1uLnByb3ZpZGVyLnZpZGVvRGF0YS5OLmhDKFcuTikpJiYoVy5ZPUQtVy5OKTtEPW4ucHJvdmlkZXIuTC5TVygpO1cuTis9RDtXLlkhPW51bGwmJihXLlktPUQpO1cud2E9Zy5SayhuLnByb3ZpZGVyKTtXLnNlZ21lbnRzPVtNbShuLnByb3ZpZGVyKV07cmV0dXJuIFd9OwpYSVo9ZnVuY3Rpb24obil7dmFyIFc9bi5wcm92aWRlci52aWRlb0RhdGEubFEsRD1uLnByb3ZpZGVyLnZpZGVvRGF0YS5IWSxiPVsxMCtXLDEwLDEwLDQwK0QtVyw0MF0sdj1uLnByb3ZpZGVyLnZpZGVvRGF0YS5nZXRQbGF5ZXJSZXNwb25zZSgpPy5wbGF5YmFja1RyYWNraW5nLGs9dj8udmlkZW9zdGF0c1NjaGVkdWxlZEZsdXNoV2FsbHRpbWVTZWNvbmRzO3Y9dj8udmlkZW9zdGF0c0RlZmF1bHRGbHVzaEludGVydmFsU2Vjb25kcztpZighKGsmJmsubGVuZ3RoPjAmJnYpKXJldHVybiBiO1c9W2tbMF0rVywuLi5rLnNsaWNlKDEpLm1hcCgoaCx4KT0+aC1rW3hdKSwKditELVcsdl07cmV0dXJuIFcuc29tZShoPT5oPDApPyhnLmNfKG4ubG9nZ2VyLDM0NzExMTg1NSxgTmVnIHZzcyBzY2hlZHVsZWQgcGluZ3MgJHtrfSAke3Z9YCksYik6V307CmF1PWZ1bmN0aW9uKG4sVz1OYU4pe3ZhciBEPWcuUmsobi5wcm92aWRlcik7Vz1pc05hTihXKT9EOlc7Vz1NYXRoLmNlaWwoVyk7dmFyIGI9bi5lJFtuLnR3XTtuLnR3KzE8bi5lJC5sZW5ndGgmJm4udHcrKzt2YXIgdj1XK2I7bi5ZPWcubiQoKCk9PntpZighbi5xTigpKXtuLlk9TmFOO3ZhciBrPW4uUyQoKSxoPXE5MShuLGspO2guTz12O3ZhciB4PW4ubnU+MUUzOyEoay5sZW5ndGg+MSkmJmtbMF0uaXNFbXB0eSgpfHx4fHwoaC5LPWF1KG4sdikpO2lmKG4uY0ope2s9a1trLmxlbmd0aC0xXTtpZih4PW4uVEMpe3g9azt2YXIgTD1uLlRDO3g9eC5zdGFydFRpbWU9PT1MLnN0YXJ0VGltZSYmeC5lbmRUaW1lPT09TC5lbmRUaW1lfXh8fG51KG4sW2tdKX1oLnNlbmQoKTtuLm51Kyt9fSwodi1EKSoxRTMpOwpyZXR1cm4gbi5KPXZ9OwpXZD1mdW5jdGlvbihuLFcpe3ZhciBEPW4ucHJvdmlkZXIuQjtnLkhFKG4ucHJvdmlkZXIuQixuLnByb3ZpZGVyLnZpZGVvRGF0YS5WKCkpLnRoZW4oYj0+e3ZhciB2PW4ucHJvdmlkZXIuQi5wYWdlSWQsaz1uLnByb3ZpZGVyLkIuc2VuZFZpc2l0b3JJZEhlYWRlcj9uLnByb3ZpZGVyLnZpZGVvRGF0YS52aXNpdG9yRGF0YTp2b2lkIDAsaD1uLnByb3ZpZGVyLkIuUygidnNzX3BpbmdzX3VzaW5nX25ldHdvcmtsZXNzIil8fG4ucHJvdmlkZXIuQi5TKCJrZXZsYXJfd29mZmxlIikseD1uLnByb3ZpZGVyLkIuUygiYWxsb3dfc2tpcF9uZXR3b3JrbGVzcyIpO2I9alIoVyxELHYsayxiKTtDRChXLGIse3Rva2VuOm4ucHJvdmlkZXIudmlkZW9EYXRhLmtXLHlvOm4ucHJvdmlkZXIudmlkZW9EYXRhLlF2LG1keEVudmlyb25tZW50Om4ucHJvdmlkZXIudmlkZW9EYXRhLm1keEVudmlyb25tZW50fSxELHZvaWQgMCxoJiYheCwhMSwhMCl9KX07CnE5MT1mdW5jdGlvbihuLFcpe3ZhciBEPWcuY3Iobiwid2F0Y2h0aW1lIik7RDcobikmJihELmRlbGF5VGhyZXNob2xkTWV0PSEwLG4uRHQ9ITApO2lmKG4uaj4wKXtsZXQgYj1uLnByb3ZpZGVyLkwuU1coKTtmb3IobGV0IHYgb2YgVyl2LnN0YXJ0VGltZS09bi5qK2Isdi5lbmRUaW1lLT1uLmorYjtELk4tPW4uaitifWVsc2UgRC5OPW4uTi5KO0Quc2VnbWVudHM9VztyZXR1cm4gRH07Cm51PWZ1bmN0aW9uKG4sVyxEPSExKXtmb3IobGV0IFt4LExdb2YgVy5lbnRyaWVzKCkpe2xldCBlPXgsRz1MO3ZhciBiPW4sdj1WMyhiLnByb3ZpZGVyKTtPYmplY3QuYXNzaWduKHYse3N0YXRlOmIuWH0pO09iamVjdC5hc3NpZ24odix7c2VxdWVuY2VJZDpiLnNlcXVlbmNlSWR9KTtiLnByb3ZpZGVyLkIuUygid2ViX3NlbmRfdnNzM19pc29sYXRlZF9wYXlsb2FkIikmJk9iamVjdC5hc3NpZ24odix7c2VuZElzb2xhdGVkUGF5bG9hZDohMH0pO3ZhciBrPWIsaD1rLnByb3ZpZGVyLnZpZGVvRGF0YS5nZXRQbGF5ZXJSZXNwb25zZSgpPy5wbGF5YmFja1RyYWNraW5nPy52c3MzQ29uZmlnPy52c3MzU2NoZWR1bGluZ0NvbmZpZztoJiYoaD1oLmVhcmx5U2VnbWVudFRocmVzaG9sZFNlY3MmJihEYXRlLm5vdygpLWsuR0MpLzFFMzxoLmVhcmx5U2VnbWVudFRocmVzaG9sZFNlY3M/aC5lYXJseVNlZ21lbnRNYXhpbXVtTGVuZ3RoU2VjczpoLmRlZmF1bHRTZWdtZW50TWF4aW11bUxlbmd0aFNlY3MsCkcuc2NoZWR1bGVkU2VnbWVudE1heGltdW1MZW5ndGhTZWNzPWsuVEM/Lm5leHRTY2hlZHVsZWRTZWdtZW50TWF4aW11bUxlbmd0aFNlY3M/P2gsRy5uZXh0U2NoZWR1bGVkU2VnbWVudE1heGltdW1MZW5ndGhTZWNzPWgpO2s9bmV3IEdwYihHLGIucHJvdmlkZXIudmlkZW9EYXRhLHYpO2IuSEomJihrLmlzRG91YmxlTG9nZ2VkPSExKTt2PWs7Yi5wcm92aWRlci52aWRlb0RhdGEuaXNMaXZlUGxheWJhY2t8fCh2Lm1lZGlhTGVuZ3RoU2VjPWIucHJvdmlkZXIuTC5nZXREdXJhdGlvbihiLnByb3ZpZGVyLnZpZGVvRGF0YS5jbGllbnRQbGF5YmFja05vbmNlKSk7aWYoYi5wcm92aWRlci52aWRlb0RhdGEuTil7aD1iLnByb3ZpZGVyLkwub3QoKTtsZXQgcj1iLnByb3ZpZGVyLnZpZGVvRGF0YS5OLmhDKGgpO3ImJih2LmxpdmVJbmdlc3Rpb25PZmZzZXRVc2VjPShyLWgpKjFFNil9RDcoYikmJih2LmRlbGF5VGhyZXNob2xkTWV0PSEwLGIuRHQ9ITApO0QmJmU9PT1XLmxlbmd0aC0xJiYoay5pc0ZpbmFsPQohMCxuLkZGPSEwKTtrLnNlbmQoKTtuLnNlcXVlbmNlSWQrKztuLlRDPUd9fTsKRDc9ZnVuY3Rpb24obil7dmFyIFc7aWYoVz1uLnByb3ZpZGVyLnZpZGVvRGF0YS5pc0xvYWRlZCgpJiZuLnByb3ZpZGVyLnZpZGVvRGF0YS5vRCYmbi5XJiYhbi5EdClXPW4uTixXPVcuVitXLm90KCktVy5XPj1uLnByb3ZpZGVyLnZpZGVvRGF0YS5vRDtyZXR1cm4hIVd9OwpiVj1mdW5jdGlvbihuLFcsRD0hMSl7RD1uLksoIWlzTmFOKG4uSiksITEsRCk7VyYmKG4uSj1OYU4pO3JldHVybiBEfTsKdFpNPWZ1bmN0aW9uKG4pe24ucHJvdmlkZXIudmlkZW9EYXRhLnlvdXR1YmVSZW1hcmtldGluZ1VybCYmIW4uQ3UmJihXZChuLG4ucHJvdmlkZXIudmlkZW9EYXRhLnlvdXR1YmVSZW1hcmtldGluZ1VybCksbi5DdT0hMCl9Owokalo9ZnVuY3Rpb24obil7bi5wcm92aWRlci52aWRlb0RhdGEuZ29vZ2xlUmVtYXJrZXRpbmdVcmwmJiFuLlBYJiYoV2QobixuLnByb3ZpZGVyLnZpZGVvRGF0YS5nb29nbGVSZW1hcmtldGluZ1VybCksbi5QWD0hMCl9Owp2ZD1mdW5jdGlvbihuKXtpZighbi5xTigpJiZuLlcpe24uWD0icGF1c2VkIjt2YXIgVz1iVihuLCExLCEwKTtXLmlzRmluYWw9ITA7Vy5zZW5kKCk7bi5kaXNwb3NlKCl9fTsKcnB0PWZ1bmN0aW9uKG4sVyxEKXtpZighbi52Sil7RHx8KEQ9Zy5jcihuLCJhdHIiKSk7RC5hdHRlc3RhdGlvblJlc3BvbnNlPVc7dHJ5e0Quc2VuZCgpfWNhdGNoKGIpe2lmKGIubWVzc2FnZSE9PSJVbmtub3duIEVycm9yIil0aHJvdyBiO31uLnZKPSEwfX07CmcuUms9ZnVuY3Rpb24obil7cmV0dXJuIGcuc2JyKG4pKCl9OwpjY1o9ZnVuY3Rpb24obil7dmFyIFc9bmF2aWdhdG9yLmNvbm5lY3Rpb24/LnR5cGV8fCIiO2lmKFcpcmV0dXJuIE5FcltXXXx8TkVyLm90aGVyO2lmKGcuazYobi5CKSl7bj1uYXZpZ2F0b3IudXNlckFnZW50O2lmKC9bV3ddaXJlbGVzc1spXS8udGVzdChuKSlyZXR1cm4gMztpZigvW1d3XWlyZWRbKV0vLnRlc3QobikpcmV0dXJuIDMwfXJldHVybiAwfTsKTW09ZnVuY3Rpb24obil7dmFyIFc9bmV3IHBJMjtXLko9VjMobikuY2M/LnRvU3RyaW5nKCl8fCItIjtXLnBsYXliYWNrUmF0ZT1uLkwuZ2V0UGxheWJhY2tSYXRlKCk7dmFyIEQ9bi5MLmdldFZpc2liaWxpdHlTdGF0ZSgpO0QhPT0wJiYoVy52aXNpYmlsaXR5U3RhdGU9RCk7bi5CLkR0JiYoVy5XPTEpO1cuaj1uLnZpZGVvRGF0YS5wUjtXLmNvbXBvc2l0ZUxpdmVTdGF0dXNUb2tlbj1uLnZpZGVvRGF0YS5jb21wb3NpdGVMaXZlU3RhdHVzVG9rZW47Vy5oZWFydGJlYXRMb2dnaW5nVG9rZW49bi52aWRlb0RhdGEuaGVhcnRiZWF0TG9nZ2luZ1Rva2VuO0Q9bi5MLmdldEF1ZGlvVHJhY2soKTtELmtaJiZELmtaLmlkJiZELmtaLmlkIT09InVuZCImJihXLmF1ZGlvSWQ9RC5rWi5pZCk7Vy5jb25uZWN0aW9uVHlwZT1jY1oobik7Vy52b2x1bWU9bi5MLmdldFZvbHVtZSgpO1cubXV0ZWQ9bi5MLmlzTXV0ZWQoKTtXLmNsaXBJZD1uLkwuRm4oKXx8Ii0iO1cuTj1uLnZpZGVvRGF0YS5WZnx8CiItIjtyZXR1cm4gV307ClYzPWZ1bmN0aW9uKG4pe3ZhciBXPW4uTC5oaCgpfHx7fTtXLmZzPW4uTC52MygpO1cudm9sdW1lPW4uTC5nZXRWb2x1bWUoKTtXLm11dGVkPW4uTC5pc011dGVkKCk/MTowO1cubW9zPVcubXV0ZWQ7Vy5jbGlwaWQ9bi5MLkZuKCk7Vy5wbGF5ZXJoZWlnaHQ9bi5MLmdldFBsYXllclNpemUoKT8uaGVpZ2h0fHwwO1cucGxheWVyd2lkdGg9bi5MLmdldFBsYXllclNpemUoKT8ud2lkdGh8fDA7bj1uLnZpZGVvRGF0YTt2YXIgRD17fTtuLkomJihELmZtdD1uLkouaXRhZyxuLlgmJihuLlZRP24uWC5pdGFnIT09bi5KLml0YWc6bi5YLml0YWchPW4uSi5pdGFnKSYmKEQuYWZtdD1uLlguaXRhZykpO0QuZWk9bi5ldmVudElkO0QubGlzdD1uLnBsYXlsaXN0SWQ7RC5jcG49bi5jbGllbnRQbGF5YmFja05vbmNlO24udmlkZW9JZCYmKEQudj1uLnZpZGVvSWQpO24ueWwmJihELmluZnJpbmdlPTEpOyhuLmZCPzA6bi5QWCkmJihELnNwbGF5PTEpO3ZhciBiPXJsKG4pO2ImJihELmxpdmU9Yik7bi5WVCYmCihELnNhdXRvcGxheT0xKTtuLkd1JiYoRC5hdXRvcGxheT0xKTtuLnd1JiYoRC5zZGV0YWlsPW4ud3UpO24ucGFydG5lcklkJiYoRC5wYXJ0bmVyaWQ9bi5wYXJ0bmVySWQpO24ub3NpZCYmKEQub3NpZD1uLm9zaWQpO24uWm0mJihELmNjPWcubmcobi5abSkpO3JldHVybiBPYmplY3QuYXNzaWduKFcsRCl9OwpnLnNicj1mdW5jdGlvbihuKXtpZighbi5OKXtsZXQgVz0oMCxnLlIpKCk7bi5OPSgpPT5NYXRoLnJvdW5kKCgwLGcuUikoKS1XKS8xRTM7Cm4uTC5RYigpfXJldHVybiBuLk59OwpnLmswPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4uc3RhdGUuTihXKSYmIW4ub2xkU3RhdGUuTihXKT8xOiFuLnN0YXRlLk4oVykmJm4ub2xkU3RhdGUuTihXKT8tMTowfTsKaEM9ZnVuY3Rpb24obil7bi5KJiZjSWoobi5KKTtuLnFvZSYmeEJoKG4ucW9lKX07CkhYMj1mdW5jdGlvbihuLFcsRCxiKXtELmFkRm9ybWF0PUQuRkY7dmFyIHY9Vy5MO1c9bmV3IGcueDAobmV3IFk5UyhELFcuQix7Z2V0RHVyYXRpb246KCk9PkQubGVuZ3RoU2Vjb25kcywKZ2V0Q3VycmVudFRpbWU6KCk9PnYuZ2V0Q3VycmVudFRpbWUoKSwKb3Q6KCk9PnYub3QoKSwKb2g6KCk9PnYub2goKSwKSEs6KCk9PnYuSEsoKSwKZ2V0UGxheWVyU2l6ZTooKT0+di5nZXRQbGF5ZXJTaXplKCksCmdldEF1ZGlvVHJhY2s6KCk9PkQuZ2V0QXVkaW9UcmFjaygpLApnZXRQbGF5YmFja1JhdGU6KCk9PnYuZ2V0UGxheWJhY2tSYXRlKCksCkVjOigpPT52LkVjKCksCmdldFZpc2liaWxpdHlTdGF0ZTooKT0+di5nZXRWaXNpYmlsaXR5U3RhdGUoKSwKZUc6KCk9PnYuZUcoKSwKaGg6KCk9PnYuaGgoKSwKZ2V0Vm9sdW1lOigpPT52LmdldFZvbHVtZSgpLAppc011dGVkOigpPT52LmlzTXV0ZWQoKSwKdjM6KCk9PnYudjMoKSwKRm46KCk9PnYuRm4oKSwKZ2V0UHJveGltYUxhdGVuY3lQcmVmZXJlbmNlOigpPT52LmdldFByb3hpbWFMYXRlbmN5UHJlZmVyZW5jZSgpLApRYigpe3YuUWIoKX0sVShrLGgpe3YuVShrLGgpfSxPMDooKT0+di5PMCgpLApTVzooKT0+di5TVygpLAp6czprPT52LnpzKGspfSkpOwpXLmo9YjtnLnUobixXKTtyZXR1cm4gV307CmZBdD1mdW5jdGlvbihuKXtuLkomJm4uSi5zZW5kKCk7aWYobi5xb2Upe3ZhciBXPW4ucW9lO2lmKFcuVil7Vy5OPT09IlBMIiYmKFcuTj0iTiIpO3ZhciBEPWcuUmsoVy5wcm92aWRlcik7Zy53aihXLEQsInZwcyIsW1cuTl0pO1cuRHx8KFcuWD49MCYmVy5KLnNldCgidXNlcl9pbnRlbnQiLFtXLlgudG9TdHJpbmcoKV0pLFcuRD0hMCk7Vy5wcm92aWRlci5CLldYKCkmJlcuVSgiZmluYWxpemVkIix7fSk7Vy5TJD0hMDtXLnJlcG9ydFN0YXRzKEQpfX1pZihuLnByb3ZpZGVyLnZpZGVvRGF0YS5lbmFibGVTZXJ2ZXJTdGl0Y2hlZERhaSlmb3IobGV0IGIgb2Ygbi5XLnZhbHVlcygpKXZkKGIpO2Vsc2Ugbi5OJiZ2ZChuLk4pO24uZGlzcG9zZSgpfTsKSnBVPWZ1bmN0aW9uKG4pe2lmKCFuLk4pcmV0dXJuIG51bGw7dmFyIFc9Zy5jcihuLk4sImF0ciIpO3JldHVybiBEPT57bi5OJiZycHQobi5OLEQsVyl9fTsKSUFoPWZ1bmN0aW9uKG4sVyl7bj1EZShuLmFycmF5LEQ9PlctRC5zdGFydHx8MSk7CnJldHVybiBuPDA/LShuKzEpOm59OwpTOWI9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVtdO2ZvcihXPUlBaChuLFcpO1c8bi5hcnJheS5sZW5ndGg7KytXKXtsZXQgdj1uLmFycmF5W1ddOyh2LmVuZDw9RHx8di5jb250YWlucyhEKSkmJmIucHVzaCh2KTtpZih2LnN0YXJ0PkQpYnJlYWt9cmV0dXJuIGJ9OwpnLkx1PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9W107Zm9yKGxldCBiIG9mIG4uYXJyYXkpaWYoYi5jb250YWlucyhXKSYmRC5wdXNoKGIpLGIuc3RhcnQ+VylicmVhaztyZXR1cm4gRH07CkFwaj1mdW5jdGlvbihuKXtyZXR1cm4gbi5hcnJheS5zbGljZShJQWgobiwweDdmZmZmZmZmZmZmZmYpLG4uYXJyYXkubGVuZ3RoKX07Cm1qdD1mdW5jdGlvbihuLFcpe3ZhciBEPU5hTjtmb3IobGV0IGIgb2Ygbi5hcnJheSlpZihiLmNvbnRhaW5zKFcpJiYoaXNOYU4oRCl8fGIuZW5kPEQpJiYoRD1iLmVuZCksYi5zdGFydD5XJiYoaXNOYU4oRCl8fGIuc3RhcnQ8RCkpe0Q9Yi5zdGFydDticmVha31yZXR1cm4gRH07CkszVT1mdW5jdGlvbihuLFcpe24uYXJyYXk9bi5hcnJheS5maWx0ZXIoRD0+IVcuaGFzKEQpKX07Ck9YMj1mdW5jdGlvbihuKXtyZXR1cm4gbi5MLmdldFBsYXllclN0YXRlKCkuTigyKT8weDgwMDAwMDAwMDAwMDA6bi5MLmdldEN1cnJlbnRUaW1lKCkqMUUzfTsKZWg9ZnVuY3Rpb24obixXKXt2YXIgRD1bXTtpZighVy5sZW5ndGgpcmV0dXJuIEQ7Zm9yKGxldCBiPTA7YjxXLmxlbmd0aDtiKyspe2xldCB2PVdbYl07di5hY3RpdmUmJm4uVy5pbmRleE9mKHYpPT09LTEmJihuLlcucHVzaCh2KSxELnB1c2goWzEsdl0pKX1yZXR1cm4gRH07CmdzPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIG9mIFcpVz1EWzFdLERbMF09PT0xP24uTC5DSihnLm95KFcubmFtZXNwYWNlKSxXKTpuLkwuQ0ooZy5kdihXLm5hbWVzcGFjZSksVyl9OwpYSj1mdW5jdGlvbihuLFcpe3ZhciBEPVtdO2lmKCFXLmxlbmd0aClyZXR1cm4gRDtXLnNvcnQoZy51NSk7Zm9yKGxldCBiIG9mIFcpbi5XLnNwbGljZShuLlcuaW5kZXhPZihiKSwxKSxELnB1c2goWzIsYl0pO3JldHVybiBEfTsKUHlDPWZ1bmN0aW9uKG4pe2lmKG4uc3RhcnRlZCYmIW4ucU4oKSl7bi5qLnN0b3AoKTt2YXIgVz1uLkwuZ2V0UGxheWVyU3RhdGUoKTtXLk4oMzIpJiZuLlkuc3RhcnQoKTt2YXIgRD1PWDIobiksYj1uLmlzRW5kZWQoVyxEKSx2PVtdLGs9W107Zm9yKHZhciBoIG9mIG4uVyloLmFjdGl2ZSYmKGI/aC5lbmQ8MHg4MDAwMDAwMDAwMDAwOiFoLmNvbnRhaW5zKEQpKSYmay5wdXNoKGgpO3Y9di5jb25jYXQoWEoobixrKSk7aD1rPW51bGw7Yj8oVz1nLkx1KG4uTiwweDdmZmZmZmZmZmZmZmYpLGs9Vy5maWx0ZXIoeD0+eC5lbmQ8MHg4MDAwMDAwMDAwMDAwKSxoPUFwaihuLk4pKTpXPW4uWDw9RCYmbDEoVyk/UzliKG4uTixuLlgsRCk6Zy5MdShuLk4sRCk7CnY9di5jb25jYXQoZWgobixXKSk7ayYmKHY9di5jb25jYXQoWEoobixrKSkpO2gmJih2PXYuY29uY2F0KGVoKG4saCkpKTtuLlg9RDtncyhuLHYpfX07CnE5PWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFc+bi5tZWRpYVRpbWUrbi5YJiZXPG4ubWVkaWFUaW1lKzV9OwpSOEM9ZnVuY3Rpb24obixXLEQsYix2PSExKXtpZihuLmxuJiYhaXNGaW5pdGUoVykpcmV0dXJuITE7aWYoYj1iPjEpbi5XPSEwO2lmKHZ8fGlzTmFOKG4uTikpbi5OPVc7aWYobi5zZWVraW5nKVchPT1uLm1lZGlhVGltZSYmKG4uc2Vla2luZz0hMSk7ZWxzZSBpZihXPjAmJm4ubWVkaWFUaW1lPT09Vyl7dj0xNTAwO2lmKG4uQi5TKCJodG1sNV9idWZmZXJfdW5kZXJydW5fdHJhbnNpdGlvbl9maXgiKSl7dj1nLmRNKG4uQi5leHBlcmltZW50cywiaHRtbDVfbWluX3BsYXliYWNrX2FkdmFuY2VfZm9yX3N0ZWFkeV9zdGF0ZV9zZWNzIik7bGV0IGs9Zy5kTShuLkIuZXhwZXJpbWVudHMsImh0bWw1X21pbl91bmRlcnJ1bl9idWZmZXJlZF9wcmVfc3RlYWR5X3N0YXRlX21zIik7dj12PjAmJms+MCYmTWF0aC5hYnMoVy1uLk4pPHY/azoxNTAwfXJldHVybiBELW4uSj4oYnx8IW4uVz92OjQwMCl9bi5tZWRpYVRpbWU9VztuLko9RDtyZXR1cm4hMX07ClVqdz1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIFcudEEoRCkudGhlbigoKT0+Zy5IMChuZXcgWlhoKFcsVy5XKSksYj0+e2IgaW5zdGFuY2VvZiBFcnJvciYmZy5HcShiKTsKdmFyIHY9dTgoJ3ZpZGVvL21wNDsgY29kZWNzPSJhdmMxLjQyMDAxRSwgbXA0YS40MC4yIicpLGs9ZHkoJ2F1ZGlvL21wNDsgY29kZWNzPSJtcDRhLjQwLjIiJyksaD12fHxrLHg9Vy5pc0xpdmVQbGF5YmFjayYmIWcuSW4obi5XLCEwKTtiPSJmbXQubm9uZWF2YWlsYWJsZSI7eD9iPSJodG1sNS51bnN1cHBvcnRlZGxpdmUiOmh8fChiPSJodG1sNS5taXNzaW5nYXBpIik7aD14fHwhaD8yOjE7dj17YnVpbGRSZWo6IjEiLGE6Vy5JcCgpLGQ6ISFXLlRmLGRybTpXLk1pKCksZjE4OlcuY2YuaW5kZXhPZigiaXRhZz0xOCIpPj0wLGMxODp2fTtXLk4mJihXLk1pKCk/KHYuZjE0Mj0hIVcuTi5OWyIxNDIiXSx2LmYxNDk9ISFXLk4uTlsiMTQ5Il0sdi5mMjc5PSEhVy5OLk5bIjI3OSJdKToodi5mMTMzPSEhVy5OLk5bIjEzMyJdLHYuZjE0MD0hIVcuTi5OWyIxNDAiXSx2LmYyNDI9ISFXLk4uTlsiMjQyIl0pLHYuY0FBQz1rLHYuY0FWQz1keSgndmlkZW8vbXA0OyBjb2RlY3M9ImF2YzEuNDIwMDFFIicpLAp2LmNWUDk9ZHkoJ3ZpZGVvL3dlYm07IGNvZGVjcz0idnA5IicpKTtXLmomJih2LmRybXN5cz1XLmoua2V5U3lzdGVtLGs9MCxXLmouSiYmKGs9T2JqZWN0LmtleXMoVy5qLkopLmxlbmd0aCksdi5kcm1zdD1rKTtyZXR1cm4gbmV3IGcuQ2koYix2LGgpfSl9Owp0Qz1mdW5jdGlvbihuLFcpe1c9TWF0aC5tYXgoTWF0aC5tYXgoMSxNYXRoLmNlaWwobi5wb2xpY3kuWC9HWShuKSkpLFcpO3JldHVybiBNYXRoLm1pbihNYXRoLm1pbig4LE1hdGguZmxvb3Iobi5wb2xpY3kuRC9HWShuKSkpLFcpfTsKR1k9ZnVuY3Rpb24obil7cmV0dXJuIG4udmlkZW9EYXRhLk4/b28obi52aWRlb0RhdGEuTil8fDU6NX07CiQwPWZ1bmN0aW9uKG4pe3JldHVybiBHWShuKSpuLk59OwpFb2k9ZnVuY3Rpb24obixXKXtpZihXKXJldHVybiBXPW4udmlkZW9EYXRhLFc9eXBiKG4saXNOYU4oVy5saXZlQ2h1bmtSZWFkYWhlYWQpPzM6Vy5saXZlQ2h1bmtSZWFkYWhlYWQsVyksdEMobixXKTtpZihuLkoubGVuZ3RoKXtpZihNYXRoLm1pbi5hcHBseShudWxsLG4uSik+MSlyZXR1cm4gdEMobixuLk4tMSk7aWYobi5wb2xpY3kuWSlyZXR1cm4gdEMobixuLk4rMSl9cmV0dXJuIG4uTn07CmlYUz1mdW5jdGlvbihuLFc9ITEpe2lmKCFuLkoubGVuZ3RoKXJldHVybiExO3ZhciBEPW4uTjtuLk49RW9pKG4sVyk7aWYoVz1EIT09bi5OKW4uSj1bXSxuLmp4PTA7cmV0dXJuIFd9Owpycz1mdW5jdGlvbihuKXt2YXIgVz1uLnBvbGljeS5OO24uWHx8KFc9TWF0aC5tYXgoVy0xLDApKTtyZXR1cm4gVypHWShuKX07CnNCPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFc+PW4uTlcoKS1ycyhuKX07CnlwYj1mdW5jdGlvbihuLFcsRCl7RC5JUiYmVy0tO2hEKEQpJiYoVz0xKTt4cChEKSE9PTAmJihuPWcuZE0obi5leHBlcmltZW50cywiaHRtbDVfbGl2ZV9jaHVua19yZWFkYWhlYWRfcHJveGltYV9vdmVycmlkZSIpKSYmKFc9bixELk4/Lm51KCkmJlcrKyk7cmV0dXJuIFd9OwpwdT1mdW5jdGlvbihuLFcsRD1udWxsKXtyZXR1cm4gbmV3IE45KGcuZE0obi5CLmV4cGVyaW1lbnRzLFcpfHwwLEQ/bi5CLlMoRCk6ITEpfTsKdTRiPWZ1bmN0aW9uKG4sVyl7bi5OPVd9OwpZMD1mdW5jdGlvbihuLFcsRCxiLHYsayxoLHgpe1c/Vy50ZXN0KEQpPyhuLkdzKHYsVyxoKSxXLlZ8fGsoKSk6KCFXLkp8fFcuWD9EPSExOihEPSgwLGcuUikoKSxiP1cuTnx8KFcuTj1EKTpXLk49MCxrPSFiJiZELVcuSj4zRTQsRD1XLk4mJkQtVy5OPjFFM3x8az9XLlg9ITA6ITEpLEQmJih4PXsuLi5uLnlyKFcpLC4uLnh9LHgud249aCx4LndlPXYseC53c3VjPWIsbi5MLlUoIndvcmthcm91bmRSZXBvcnQiLHgpLGImJihXLnJlc2V0KCksbi5YW3ZdPSExKSkpOm4uTC5QVigiYXV0aCIsMiwiQlJPV1NFUl9PUl9FWFRFTlNJT05fRVJST1IiLGcuVEMoe3NvdXJjZToid2F0Y2hkb2ciLG5hbWU6aH0pKX07Cm9veD1mdW5jdGlvbihuLFcpe2lmKG4uTil7dmFyIEQ9bi5OO3ZhciBiPW4uZ2V0Q3VycmVudFRpbWUoKSx2PUQuTlcoKTt2YXIgaz1ELnBvbGljeS5KO0QuWHx8KGs9TWF0aC5tYXgoay0xLDApKTtrKj1HWShEKTtiPj12LWt8fCFELmpYKCk/RD1iPEQudmlkZW9EYXRhLkxmKCk/TWF0aC5taW4oRC52aWRlb0RhdGEuTGYoKSsxMCxELk5XKCkpOk5hTjooRC5wb2xpY3kuaiYmKEQucG9saWN5Lk8/KEQucG9saWN5Lko9TWF0aC5taW4oRC5wb2xpY3kuSitELnBvbGljeS5LLEQucG9saWN5LlYpLEQucG9saWN5Lk49TWF0aC5taW4oRC5wb2xpY3kuTisxLDEwKSk6KEQucG9saWN5Lko9TWF0aC5tYXgoRC5wb2xpY3kuSisxLEQucG9saWN5LlYpLEQucG9saWN5Lk49TWF0aC5tYXgoRC5wb2xpY3kuTisxLDEwKSkpLEQ9SW5maW5pdHkpO2lmKCFpc05hTihEKSl7aWYobi5sb2FkZXImJlcmJihXPW4uUyQuaXNBY3RpdmUoKSxiPW4uTi5OVygpLChiPWlQUyhuLmxvYWRlcixiLW4uU1coKSkpJiYKIVcpKXtuLlMkLnN0YXJ0KCk7bi5MLlUoImluQnVmZmVyUHRsIix7Y210Om4uZ2V0Q3VycmVudFRpbWUoKSxzZWVrVG86YituLlNXKCl9KTtuLnNlZWtUbyhiK24uU1coKSx7cWQ6InNlZWt0aW1lbGluZV9pbkJ1ZmZlclNlZWsiLHNlZWtTb3VyY2U6MzR9KTtyZXR1cm59bi5zZWVrVG8oRCx7cWQ6InNlZWt0aW1lbGluZV9wZWdUb0xpdmUiLHNlZWtTb3VyY2U6MzR9KX19fTsKZnU9ZnVuY3Rpb24obixXKXtpZihuLlgpe24udmlkZW9EYXRhLmlzTGl2ZVBsYXliYWNrJiZuLnZpZGVvRGF0YS5XJiYhbi52aWRlb0RhdGEuVy5OKCkmJm4ubWVkaWFFbGVtZW50JiZuLm1lZGlhRWxlbWVudC5YKCk+MCYmb3Uobi5tZWRpYUVsZW1lbnQpPjAmJihuLko9SGQobixuLkosITEpKTt2YXIgRD1uLlMoImh0bWw1X3BzZXVkb2dhcGxlc3Nfc2hvcnRzX3NlZWtfdG9fbmV4dF9zdGFydCIpJiZXPy5zZWVrU291cmNlPT09NjA7aWYoIW4ubWVkaWFFbGVtZW50fHwhZGpyKG4sRCkpbi5SYS5zdGFydCg3NTApO2Vsc2UgaWYoIWlzTmFOKG4uSikmJmlzRmluaXRlKG4uSikmJihEPW4uSEotKG4uSi1uLnRpbWVzdGFtcE9mZnNldCksIShEPT09MHx8TWF0aC5hYnMoRCk8LjAwNSkpKWlmKEQ9bi5tZWRpYUVsZW1lbnQuZ2V0Q3VycmVudFRpbWUoKS1uLkosTWF0aC5hYnMoRCk8PW4uRHR8fE1hdGguYWJzKEQpPC4wMDUpenkxKG4pO2Vsc2V7aWYobi52aWRlb0RhdGEuTWwpbi52aWRlb0RhdGEuTWw9CiExO2Vsc2UgaWYoIWcuRFAobi52aWRlb0RhdGEpJiZuLko+PW4uckkoKS0uMSYmKG4uckkoKSE9PTB8fFc/LnFkIT09InNlZWt0aW1lbGluZV9zZXR1cE1lZGlhRWxlbWVudCIpKXtuLko9bi5ySSgpO24uWC5yZXNvbHZlKG4uckkoKSk7bi5CLldYKCkmJm4uTC5VKCJzZXRFbmRlZEluU2VlayIse3RndDpgJHtuLkp9YCxtYXhzdDpgJHtuLnJJKCl9YH0pO24uTC5rTigpO3JldHVybn10cnl7bGV0IGI9bi5KLW4udGltZXN0YW1wT2Zmc2V0O24ubWVkaWFFbGVtZW50LnNlZWtUbyhiKTtuLk8uTj1iO24uSEo9YjtuLlc9bi5KO24uY0o9ITF9Y2F0Y2goYil7fX19fTsKVEUyPWZ1bmN0aW9uKG4sVyl7bi5UQz0hMDtuLmxuKCkmJihuLko9bi5WLG4uVz1uLkosbi5WPU5hTik7bEF0KG4sVyl9OwpqYjI9ZnVuY3Rpb24obil7dmFyIFc9MCxEPU5hTixiPSIiO2lmKCFuLkQpcmV0dXJue3N0YXJ0U2Vjb25kczpXLE12OkQsc291cmNlOmJ9O24udmlkZW9EYXRhLlJJP1c9bi52aWRlb0RhdGEuSlU6Zy5EUChuLnZpZGVvRGF0YSkmJihXPUluZmluaXR5KTtpZihnLnBBKG4udmlkZW9EYXRhKSlyZXR1cm57c3RhcnRTZWNvbmRzOlcsTXY6RCxzb3VyY2U6Yn07bi52aWRlb0RhdGEuc3RhcnRTZWNvbmRzPyhiPSJzcyIsVz1uLnZpZGVvRGF0YS5zdGFydFNlY29uZHMpOm4udmlkZW9EYXRhLlVyJiYoYj0ic3RzcyIsVz1uLnZpZGVvRGF0YS5Vcik7bi52aWRlb0RhdGEubGl2ZVV0Y1N0YXJ0U2Vjb25kcyYmKEQ9bi52aWRlb0RhdGEubGl2ZVV0Y1N0YXJ0U2Vjb25kcyk7aWYoaXNGaW5pdGUoVykmJihXPm4uckkoKXx8VzxuLkxmKCkpKXtsZXQgdj17fTt2Lm1pblNlZWthYmxlVGltZT1uLkxmKCk7di5tYXhTZWVrYWJsZVRpbWU9bi5ySSgpO3YuY210PW4uZ2V0Q3VycmVudFRpbWUoKTt2LnNzPQpXO3YudXRjPUQ7di5zcmM9YjtuLkwuVSgic3RhcnRTZWNvbmRzT3V0T2ZCb3VuZHMiLHYpO24udmlkZW9EYXRhLnpXKCkmJihXPUhkKG4sVywhMSkpfXJldHVybntzdGFydFNlY29uZHM6VyxNdjpELHNvdXJjZTpifX07CkpDPWZ1bmN0aW9uKG4pe3JldHVybiEhbi52aWRlb0RhdGEuc3RhcnRTZWNvbmRzJiZpc0Zpbml0ZShuLnZpZGVvRGF0YS5zdGFydFNlY29uZHMpJiZuLnZpZGVvRGF0YS5zdGFydFNlY29uZHM+MUU5fTsKRjNiPWZ1bmN0aW9uKG4sVyl7bi5wbGF5YmFja0RhdGE9VztuLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFjayYmKG4uWT1uZXcgQ3laKCgpPT57YTp7aWYobi5wbGF5YmFja0RhdGEmJm4ucGxheWJhY2tEYXRhLk4uTigpKXtpZihJNChuLnZpZGVvRGF0YSkmJm4ubG9hZGVyKXt2YXIgRD1uLmxvYWRlci5xaCgpO2JyZWFrIGF9aWYobi52aWRlb0RhdGEuTil7RD1uLnZpZGVvRGF0YS5OLnFoKCk7YnJlYWsgYX19RD0wfXJldHVybiBEfSksbi5OPW5ldyBCRWIobi52aWRlb0RhdGEsbi5CLmV4cGVyaW1lbnRzLCgpPT5uLnJJKCEwKSkpOwpJYyhuLkwpPyhuLnZpZGVvRGF0YS5nVD8uQWp8fChXPWpiMihuKSxXLk12PyhnLllOKG4udmlkZW9EYXRhKSYmbi5odShXLk12LFcuc3RhcnRTZWNvbmRzKSxuLlc9Vy5zdGFydFNlY29uZHMpOlcuc3RhcnRTZWNvbmRzPjAmJm4uc2Vla1RvKFcuc3RhcnRTZWNvbmRzLHtxZDoic2Vla3RpbWVsaW5lX3N0YXJ0UGxheWJhY2siLHNlZWtTb3VyY2U6MTUsQU06ITB9KSksbi5EPSExKTpKQyhuKXx8KG4uVz1uLld8fG4udmlkZW9EYXRhLnN0YXJ0U2Vjb25kc3x8MCxuLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFja3x8KFc9bi5MLnZpZGVvRGF0YS5ySSgpLG4uVz5XJiYobi5TKCJodG1sNV9zYWJyX2xvZ19pbnZhbGlkX3NhYnJfY3VycmVudF90aW1lIikmJm4uTC5VKCJpbnZhbGlkU2FickNtdFN0YXJ0Iix7cnQ6bi5XLG1zdDpXfSksbi5TKCJodG1sNV9zYWJyX3ZvZF9pbnZhbGlkX3N0YXJ0X3RpbWVfZmFsbGJhY2siKSYmKG4uVz0wKSkpKX07ClNoPWZ1bmN0aW9uKG4sVyl7aWYobi5OJiZuLmxvYWRlcil7dmFyIEQ9ITE7Vz9EPSEwOlN4KG4udmlkZW9EYXRhKT9EPWlYUyhuLk4pOm4uQ3UmJihuLkN1PSExLEQ9aVhTKG4uTiwhMCkpO0QmJihEPW4uTC5CWCxXPSQwKG4uTiksRC5xb2UmJihEPUQucW9lLGcud2ooRCxnLlJrKEQucHJvdmlkZXIpLCJscmEiLFtXXSksRC5VKCJsaXZlLXJlYWRhaGVhZC1zZWNvbmRzIix7djpXfSkpKTtXPW4ubG9hZGVyO0Q9bi5OLk47bj1uLk47bj0obi5OLTErbi5wb2xpY3kuTikqR1kobik7dmFyIGI9TmFOO3ZhciB2PVcuVHI7dj09PTJ8fHY9PT0tMT8odj1ELGhEKFcuTC5nZXRWaWRlb0RhdGEoKSkmJihiPVcucG9saWN5LnpQKSk6dj1ELTE7dj1NYXRoLm1heCh2LDApO0Q9Vy5OeTtELlpBPXY7RC5YPWI7Vy5RdSYmKFcuUXUuTz1uKX19Owptbz1mdW5jdGlvbihuLFcpeyhuLmxvYWRlcj1XKT9TaChuLCEwKTpnLkFDKG4pfTsKZGpyPWZ1bmN0aW9uKG4sVz0hMSl7aWYoIW4ubWVkaWFFbGVtZW50fHxuLm1lZGlhRWxlbWVudC5YKCk9PT0wfHxuLm1lZGlhRWxlbWVudC5oYXNFcnJvcigpKXJldHVybiExO3ZhciBEPW4ubWVkaWFFbGVtZW50LmdldEN1cnJlbnRUaW1lKCk+MDtyZXR1cm4gbi52aWRlb0RhdGEuVyYmbi52aWRlb0RhdGEuVy5OKCl8fG4udmlkZW9EYXRhLmlzTGl2ZVBsYXliYWNrfHwhbi52aWRlb0RhdGEuTWkoKT9uLko+PTAmJiFXJiYoVz1uLm1lZGlhRWxlbWVudC5PKCksVy5sZW5ndGh8fCFEKT9CUihXLG4uSi1uLnRpbWVzdGFtcE9mZnNldCk6RDpEfTsKTVoxPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5nZXRDdXJyZW50VGltZSgpLGI9bi5pc0F0TGl2ZUhlYWQoRCk7aWYobi5ZJiZiKXt2YXIgdj1uLlk7aWYodi5OJiYhKEQ+PXYuSiYmRDx2LlgpKXt2YXIgaz12Lk4uUjMoRCk7ayE9PS0xJiYodi5KPXYuTi5nZXRTdGFydFRpbWUoayksdi5YPXYuSit2Lk4uZ2V0RHVyYXRpb24oayksaz0oMCxnLlIpKCkvMUUzLXYuTi5oQyhrKSxrLT12LmooKSx2LlcuYWRkKGspKX19bi5OJiYoYiYmKHY9bi5OLGs9bi56cygpLHYuangrKyx2Lmp4PDN8fERhdGUubm93KCktdi5WPDNFM3x8KHYuVj1EYXRlLm5vdygpLHYuSi5wdXNoKGspLHYuSi5sZW5ndGg+NTAmJnYuSi5zaGlmdCgpKSksbi5OLlUzKEQsVyksVyYmb294KG4sITApKTtiIT09bi5QWCYmKG4uQi5adCgpLk4uUVEod0kxKSYmbi52aWRlb0RhdGEuUkk/bi5QWD1iOihXPShuLkIuWnQoKS5OLlFRKHdJMSk/KG4uZ2V0Q3VycmVudFRpbWUoKS1uLkdDKSoxRTM6bi5nZXRDdXJyZW50VGltZSgpLQpuLkdDKTw9NTAwLEQ9bi5ZWj49MUUzLFd8fER8fChXPW4uTC5CWCxXLnFvZSYmKFc9Vy5xb2UsRD1nLlJrKFcucHJvdmlkZXIpLGcud2ooVyxELCJsaCIsW2I/IjEiOiIwIl0pKSxuLlBYPWIsbi5ZWisrLG4uR0M9bi5nZXRDdXJyZW50VGltZSgpKSkpfTsKZy5LdT1mdW5jdGlvbihuLFcpe3ZhciBEPW4uWDtEfHwobi5YPW5ldyBZNixEPW4uWCxmdShuLFcpKTtyZXR1cm4gRH07CkhkPWZ1bmN0aW9uKG4sVyxEKXtpZihpc05hTihXKSlyZXR1cm4gTmFOO3ZhciBiPW4uTGYoKTtEPW4uckkoRCk7cmV0dXJuIG4uUygiaHRtbDVfY2xhbXBfaW52YWxpZF9zZWVrX3RvX21pbl9zZWVrYWJsZV90aW1lIikmJiFuLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFjayYmVz5EKzEmJlc8SW5maW5pdHk/KG4uQi5XWCgpJiZuLkwuVSgiY2xhbXBJbnZhbGlkU2VlayIse3RndDpgJHtXfWAsbWF4c3Q6YCR7RH1gfSksYik6Zy5GZihXLGIsRCl9OwpSeWk9ZnVuY3Rpb24obixXKXtuLlc9V307ClFidz1mdW5jdGlvbihuLFc9ITEpe24uanx8IShuLlc+MCl8fG4ubWVkaWFFbGVtZW50JiZuLm1lZGlhRWxlbWVudC5nZXRDdXJyZW50VGltZSgpPjB8fChXPXtxZDoic2Vla3RpbWVsaW5lX3Jlc3VtZVRpbWUiLEFNOld9LG4udmlkZW9EYXRhLll8fChXLnNlZWtTb3VyY2U9MTUpLG4uc2Vla1RvKG4uVyxXKSl9OwpsQXQ9ZnVuY3Rpb24obixXKXtWWmkobixXKS50aGVuKHZvaWQgMCwoKT0+e2cuQUMobil9KTsKZy5LdShuLFcpLnRoZW4oRD0+e2cuT0IobixEKX0sKCk9PntnLkFDKG4pfSk7Cm4uTC53WShXKTtuLkIuV1goKSYmKFc9bi55cigpLFdbIm5hdGl2ZSJdPWAkeytuLmNKfWAsVy50Z3Q9YCR7bi5KfWAsVy5vdGd0PWAke24uSituLnRpbWVzdGFtcE9mZnNldH1gLFcubWF4c3Q9YCR7bi5ySSgpfWAsbi5OJiZuLlMoImh0bWw1X2hpZ2hfcmVzX3NlZWtfbG9nZ2luZyIpJiYoVy50aHQ9YCR7bi5OLmooKX1gLFcuaHQ9YCR7bi5OLk5XKCl9YCxXLmFkZnQ9YCR7cnMobi5OKX1gKSxuLlMoImh0bWw1X3NhYnJfcGFyc2VfbGl2ZV9tZXRhZGF0YV9wbGF5YmFja19ib3VuZGFyaWVzIikmJm4udmlkZW9EYXRhLk4mJmcuWU4obi52aWRlb0RhdGEpJiYoVy5taW5zdD1gJHtuLnZpZGVvRGF0YS5OLkgyfWAsVy5jbWluc3Q9YCR7bi52aWRlb0RhdGEuTi5MZigpK24udGltZXN0YW1wT2Zmc2V0fWAsVy5tYXhzdD1gJHtuLnZpZGVvRGF0YS5OLldNfWAsVy5odHM9YCR7bi52aWRlb0RhdGEuTi50d31gLFcuY21heHN0PWAke24udmlkZW9EYXRhLk4uckkoKStuLnRpbWVzdGFtcE9mZnNldH1gKSwKbi5MLlUoInN0YXJ0U2VlayIsVykpfTsKVlppPWZ1bmN0aW9uKG4sVyl7bi50d3x8KG4ubG9hZGVyP2lzRmluaXRlKG4uSik/bi50dz1uLmxvYWRlci5zZWVrKG4uSi1uLnRpbWVzdGFtcE9mZnNldCxXKTooZy5EUChuLnZpZGVvRGF0YSksbi5MLmhhPTAsbi50dz1SJChuLmxvYWRlcikscEwobi52aWRlb0RhdGEpfHwobi5KPW4ubG9hZGVyLmdldEN1cnJlbnRUaW1lKCkrbi50aW1lc3RhbXBPZmZzZXQpKTpuLnR3PSRHKG4uSi1uLnRpbWVzdGFtcE9mZnNldCkpO3JldHVybiBuLnR3fTsKZy5PQj1mdW5jdGlvbihuLFcpe24uaiYmKG4uai5yZXNvbHZlKFcpLG4uTC5LdCgpLG4uQi5XWCgpJiYoVz1uLnlyKCksV1sibmF0aXZlIl09YCR7K24uY0p9YCxXLm90Z3Q9YCR7bi5KK24udGltZXN0YW1wT2Zmc2V0fWAsbi5MLlUoInNlZWtFbmQiLFcpKSk7Zy5BQyhuKX07Cnp5MT1mdW5jdGlvbihuKXtuLlgmJihuLlgucmVzb2x2ZShuLm1lZGlhRWxlbWVudC5nZXRDdXJyZW50VGltZSgpKSxuLk8uSj1udWxsKX07CmcuQUM9ZnVuY3Rpb24obil7bi5KPU5hTjtuLlY9TmFOO24uSEo9TmFOO24uWD1udWxsO24udHc9bnVsbDtuLmo9bnVsbDtuLlRDPSExO24uY0o9ITE7bi5EdD0wO24uUyQuc3RvcCgpO24ubnUuc3RvcCgpfTsKYUF3PWZ1bmN0aW9uKG4pe2lmKG4uRClpZihuLnZpZGVvRGF0YS5nVD8uQWopbi5EPSExO2Vsc2UgaWYoZy5wQShuLnZpZGVvRGF0YSkpbi5EPSExO2Vsc2V7dmFyIFc9InNzIixEPTA7bi52aWRlb0RhdGEuTj8uaXNNYW5pZmVzdGxlc3MmJm4udmlkZW9EYXRhLlRDJiYhSkMobikmJihXPSJtc3MiLEQ9bi52aWRlb0RhdGEuVEMpOyhuLnZpZGVvRGF0YS5SST9uLlMoImh0bWw1X3ByaW9yaXRpemVfd2luZG93ZWRfc3Rfc3RhcnRfc2Vjb25kcyIpOm4uUygiaHRtbDVfcHJpb3JpdGl6ZV9zdF9zdGFydF9zZWNvbmRzIikpJiYhRCYmbi52aWRlb0RhdGEuVXImJihXPSJzdHNzIixEPW4udmlkZW9EYXRhLlVyKTshRCYmY3B0KG4pJiYoRD1uLnZpZGVvRGF0YS5saXZlVXRjU3RhcnRTZWNvbmRzfHxuLnZpZGVvRGF0YS5UQyxXPSJ1dGMiLEQ9bi5ySSgpLW4uaEMobi5ySSgpKStEKTshRCYmbi52aWRlb0RhdGEuelcoKSYmbi52aWRlb0RhdGEuVXImJihXPSJzdHNzIixEPW4udmlkZW9EYXRhLlVyKTsKdmFyIGI9e307aWYoRCl7aWYoRD5uLnJJKCl8fEQ8bi5MZigpKWIubWluU2Vla2FibGVUaW1lPW4uTGYoKSxiLm1heFNlZWthYmxlVGltZT1uLnJJKCksYi5jbXQ9bi5nZXRDdXJyZW50VGltZSgpLGIuaXQ9bi5oQyhuLmdldEN1cnJlbnRUaW1lKCkpLGIuc3M9RCxiLnV0Yz1jcHQobik/bi52aWRlb0RhdGEubGl2ZVV0Y1N0YXJ0U2Vjb25kc3x8bi52aWRlb0RhdGEuVEM6MCxuLkwuVSgic3RhcnRTZWNvbmRzT3V0T2ZCb3VuZHMiLGIpLG4udmlkZW9EYXRhLnpXKCkmJihEPUhkKG4sRCwhMSkpO24uc2Vla1RvKEQse3FkOiJzZWVrdGltZWxpbmVfc3RhcnRTZWNvbmRzIn0pO2JbV109RDtuLkwuVSgic3RhcnRTZWNvbmRzIixiKTtuLkQ9ITF9ZWxzZSBuLnZpZGVvRGF0YS5UQyYmKGJbV109bi52aWRlb0RhdGEuVEMrbi5TVygpLG4uTC5VKCJzdGFydFNlY29uZHMiLGIpKX19OwpuQXg9ZnVuY3Rpb24obixXKXt2YXIgRD1uLm1lZGlhRWxlbWVudCxiPVcudHlwZTtzd2l0Y2goYil7Y2FzZSAic2Vla2luZyI6bGV0IHY9RC5nZXRDdXJyZW50VGltZSgpK24udGltZXN0YW1wT2Zmc2V0O2lmKCFuLlh8fG4uY0omJnYhPT1uLkopbi5YPW5ldyBZNixuLlgudGhlbihrPT57Zy5PQihuLGspfSwoKT0+e2cuQUMobil9KSxuLnZpZGVvRGF0YS5pc0FkKCkmJm5uMSh7YWRDcG46bi52aWRlb0RhdGEuY2xpZW50UGxheWJhY2tOb25jZSwKY29udGVudENwbjpuLnZpZGVvRGF0YS5ob3N0Q3BuPz8iIn0sVy5OKSxuLkhKPXYsdTRiKG4uTyxELmdldEN1cnJlbnRUaW1lKCkpLG4uc2Vla1RvKHYse3NlZWtTb3VyY2U6MTA0LHFkOiJzZWVrdGltZWxpbmVfbWVkaWFFbGVtZW50RXZlbnQifSksbi5jSj0hMDticmVhaztjYXNlICJzZWVrZWQiOnp5MShuKTticmVhaztjYXNlICJsb2FkZWRtZXRhZGF0YSI6SWMobi5MKXx8YUF3KG4pO2Z1KG4pO2JyZWFrO2Nhc2UgInByb2dyZXNzIjpmdShuKTticmVhaztjYXNlICJwYXVzZSI6bi5LPW4uZ2V0Q3VycmVudFRpbWUoKX1uLksmJigoYj09PSJwbGF5Inx8Yj09PSJwbGF5aW5nInx8Yj09PSJ0aW1ldXBkYXRlInx8Yj09PSJwcm9ncmVzcyIpJiZuLmdldEN1cnJlbnRUaW1lKCktbi5LPjEwJiYobi5TKCJodG1sNV9za3lfc2tpcF9wYXVzZV9qdW1wIik/bi5MLlUoInNraXBQYXVzZUp1bXAiLHtldnQ6YixjbXQ6bi5nZXRDdXJyZW50VGltZSgpLGxwdDpuLkt9KTpuLnNlZWtUbyhuLkssCntxZDoicGF1c2VKdW1wIn0pKSxiIT09InBhdXNlIiYmYiE9PSJwbGF5IiYmYiE9PSJwbGF5aW5nIiYmYiE9PSJwcm9ncmVzcyImJihuLks9MCkpfTsKY3B0PWZ1bmN0aW9uKG4pe3JldHVybihZcChuLnZpZGVvRGF0YSl8fCEhbi52aWRlb0RhdGEubGl2ZVV0Y1N0YXJ0U2Vjb25kcykmJighIW4udmlkZW9EYXRhLmxpdmVVdGNTdGFydFNlY29uZHN8fEpDKG4pKSYmISFuLnZpZGVvRGF0YS5OfTsKUGQ9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5OLmdldChXKT8uYnVmZmVyLlcoKXx8W119OwpaNz1mdW5jdGlvbihuLFcpe3JldHVybiBuLk4uZ2V0KFcpPy5idWZmZXIuWCgpfHwwfTsKTHIxPWZ1bmN0aW9uKG4sVyl7ZnVuY3Rpb24gRChrKXtyZXR1cm4gYi5WIT09Inl0IiYmKHYucGFydG5lcklkPT09MzgmJmIucGxheWVyU3R5bGU9PT0iYm9va3MifHx2LnBhcnRuZXJJZD09PTMwJiZiLnBsYXllclN0eWxlPT09ImRvY3MifHx2LnBhcnRuZXJJZD09PTMzJiZiLnBsYXllclN0eWxlPT09Imdvb2dsZS1saXZlIik/V3JoKG4sdixrKTpEMXQobix2KS50aGVuKCgpPT57Yi5TKCJlbWJlZHNfZW5hYmxlX3Nob3J0cyIpJiZuLkcoKS5UNyYmdi5pc0VtYmVkc1Nob3J0c01vZGUobmV3IGcuUWUoMCwwKSwhIXYucGxheWxpc3RJZCk/YlVVKG4sdik6VUIobix2KX0saD0+e1VCKG4sdiwhMCk7CnRocm93IGg7fSl9CnZhciBiPW4uRygpLHY9bi5nZXRWaWRlb0RhdGEoKTt2LnFOKCk7di5sb2FkaW5nPSEwO3JldHVybiB2QWoobik/a1VpKG4sdixXKS50aGVuKCgpPT57VUIobix2KX0saz0+e2s9QiQoayk7CmlmKGoyKGsuc2V2ZXJpdHkpKXJldHVybiBVQihuLHYsITApLFByb21pc2UucmVqZWN0KGspO2suZXJyb3JDb2RlPT09Im9uZXNpZS5yZXNwb25zZS5iYWRwcm94eXN0YXR1cyImJmAke2suZGV0YWlscy5zdH1gPT09IjMiJiYoaHBTPSEwKTtuLmhhbmRsZUVycm9yKGspO3JldHVybiBEKCJvbmVzaWUiKX0pOmIuUygiZW1iZWRzX2VuYWJsZV9zaG9ydHMiKSYmYi5UNz94MVUobix2KS50aGVuKCgpPT5EKCJndmkiKSk6RCgiZ3ZpIil9Owp2QWo9ZnVuY3Rpb24obil7dmFyIFc9bi5HKCk7aWYoVy5TKCJodG1sNV9kaXNhYmxlX29uZXNpZSIpfHwhVy5TKCJodG1sNV9vbmVzaWUiKXx8IVcuUygiaHRtbDVfb25lc2llX2lubGluZSIpJiZuLmdldFZpc2liaWxpdHlTdGF0ZSgpPT09NXx8Vy5WIT09Inl0IilyZXR1cm4hMTt2YXIgRD1XLlBYO2lmKCFEfHwhRC5OKXJldHVybiBuLmhhbmRsZUVycm9yKG5ldyBnLkNpKCJvbmVzaWUudW5hdmFpbGFibGUuaG90Y29uZmlnIix7a2V5OiIwIn0pKSwhMTtpZihELk4uSzwoMCxnLlIpKCkmJihuLlUoIm9rZXhwIiwiMSIpLChEPW4uVTQoKSkmJlcuUygiaHRtbDVfcHJlZmVyX3RydXN0ZWRfaG9zdF9vbl9rZXlfZXhwaXJhdGlvbiIpKSl7RC5KPSEwO2xldCBiPUQuTi5nZXQoMCk/Lk4oKTtiJiYheHcoYikmJkQuTi5kZWxldGUoMCl9aWYoaHBTKXJldHVybiBuLlUoIm9zdDMiLCIxIiksITE7RD17fTtyZXR1cm4gT2JqZWN0LmtleXMoRCkubGVuZ3RoPjA/KEQub25lc2llPSIwIixuLmhhbmRsZUVycm9yKG5ldyBnLkNpKCJodG1sNS5taXNzaW5nYXBpIiwKRCkpLCExKTpuLmdldFZpZGVvRGF0YSgpLmxpdmVQcmVsb2FkJiZXLlp0KCkuTi5RUShIcCk/ITE6ITB9Owp5YT1mdW5jdGlvbihuLFcpe3ZhciBEPWcucDIoKTtnLllGKEQsVyk7cmV0dXJuIG5jKEQsaVooKSx7b1M6bi5KLGNsaWVudEludGVyZmFjZTpsbyhuKX0pfTsKZXBaPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIGcuazYobi5HKCkpJiZXLnZKKCk/YCR7bi5nZXRQbGF5ZXJUeXBlKCl9XyR7Vy52aWRlb0lkfV8ke1cuS2Z9YDpgJHtuLmdldFBsYXllclR5cGUoKX1fJHtXLnZpZGVvSWR9XyR7Vy5LZn1fJHsrVy5pc0F1dG9uYXZ9JHsrVy5WVH1gfTsKa1VpPWFzeW5jIGZ1bmN0aW9uKG4sVyxEKXtXLmZldGNoVHlwZT0ib25lc2llIjt2YXIgYj12b2lkIDA7aWYoeVUoVykpaWYoYj1uLmk3KXt2YXIgdj1lcFoobixXKTtiPWIuZ2V0KHYpfWVsc2UgYj12b2lkIDA7dj1uLnRiLlFwO2lmKGIpe2lmKFcubG9hZGluZz0hMSxXLk5WPSEwLHpmKFcse3BsYXllcl9yZXNwb25zZTpifSwhMCksVy5sb2FkaW5nfHxIaihXKSlyZXR1cm4gbi5VKCJwcnIiLCIxIiksUHJvbWlzZS5yZXNvbHZlKCl9ZWxzZXtiPWxGKFcsbi5nZXRQbGF5ZXJTaXplKCksbi5nZXRWaXNpYmlsaXR5U3RhdGUoKSk7RD1uZXcgS0QobixiLEQpO2I9YXdhaXQgRC5mZXRjaCgpO2xldCBoPXtwbGF5ZXJfcmVzcG9uc2U6Yn07Vy5sb2FkaW5nPSExO2lmKEQubkEpe2ZvcihsZXQgW3gsTF1vZiBELm5BLmVudHJpZXMoKSl7dmFyIGs9eDtsZXQgZT1MO3YuTi5zZXQoayxlLDE4MCk7az09PVcudmlkZW9JZCYmKGs9ZS5TSigpLFcub009ayl9di5VZz1EfWZvcihsZXQgW3gsTF1vZiBELnQwLmVudHJpZXMoKSl2Lkouc2V0KHgsCkwsMTgwKTt6ZihXLGgsITApO2lmKFcubG9hZGluZ3x8SGooVykpcmV0dXJuIHlVKFcpJiYodj1lcFoobixXKSxXPVcuZ2V0UGxheWVyUmVzcG9uc2UoKSkmJihXPVcucmVzcG9uc2VDb250ZXh0Py5jYWNoZUluc3RydWN0aW9uPy5tYXhBZ2VTZWNvbmRzPz9XLnJlc3BvbnNlQ29udGV4dD8ubWF4QWdlU2Vjb25kcz8/dm9pZCAwLG4uaTc/LnB1dCh2LGIsVykpLFByb21pc2UucmVzb2x2ZSgpfXYuTi5UaSgpO3YuSi5UaSgpO1cub009W107bj17fTt2PSJvbmVzaWUucmVzcG9uc2UiO0Q9MDtXLmVycm9yQ29kZT8odj0iYXV0aCIsbi5lYz1XLmVycm9yQ29kZSxuLmVkPVcuZXJyb3JEZXRhaWwsbi5lcz1XLndpfHwiIixEPTIpOihuLnN1Y2Nlc3NCdXRVbnBsYXlhYmxlPSIxIixuLmRpc3Bvc2VkPWAkeytXLnFOKCl9YCxuLmFmbXRzPWAkeysvYWRhcHRpdmVGb3JtYXRzLy50ZXN0KGIpfWAsbi5jcG49Vy5jbGllbnRQbGF5YmFja05vbmNlKTtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IGcuQ2kodiwKbixEKSl9OwpEMXQ9YXN5bmMgZnVuY3Rpb24obixXKXt2YXIgRD1XLmlzQWQoKSxiPSFELHY9RD8xOjM7Zm9yKGxldCBoPTA7aDx2O2grKyl7aWYoaD4wKXthd2FpdCBnLlV1KDVFMyk7dmFyIGs9bmV3IGcuUXgoIlJldHJ5aW5nIE9uZVBsYXRmb3JtIHJlcXVlc3QiLHthdHRlbXB0Omh9KTtnLkdxKGspfXRyeXthd2FpdCBnQWkobixXKTtyZXR1cm59Y2F0Y2goeCl7bGV0IEw9QiQoeCk7az1MLmVycm9yQ29kZTtsZXQgZT1uLkcoKS5TKCJodG1sNV91c2VfbmV0d29ya19lcnJvcl9jb2RlX2VudW1zIik/NDAxOiI0MDEiO2ImJms9PT0ibWFuaWZlc3QubmV0LmJhZHN0YXR1cyImJkwuZGV0YWlscy5yYz09PWUmJihiPSExLGg9PT12LTEmJih2Kz0xKSk7aWYoaD09PXYtMSlyZXR1cm4gbj1Yc2koRCxMLmRldGFpbHMpLG4uZGV0YWlscy5iYWNrZW5kPSJvcCIsbi5kZXRhaWxzLm9yaWdpbmVjPWssUHJvbWlzZS5yZWplY3Qobik7aWYoaz09PSJhdXRoInx8az09PSJtYW5pZmVzdC5uZXQucmV0cnlleGhhdXN0ZWQifHwKZy5DTihuLkcoKSkpcmV0dXJuIFByb21pc2UucmVqZWN0KEwpO24uaGFuZGxlRXJyb3IoTCk7aWYoajIoTC5zZXZlcml0eSkpYnJlYWt9fXJldHVybiBQcm9taXNlLnJlamVjdChYc2koRCx7YmFja2VuZDoib3AifSkpfTsKZ0FpPWFzeW5jIGZ1bmN0aW9uKG4sVyl7Vy5mZXRjaFR5cGU9ImdwIjt2YXIgRD1uLkcoKSxiPWcuSEUoRCxXLlYoKSk7Yj1iLk4/YXdhaXQgYi5OOmIuZ2V0VmFsdWUoKTt2YXIgdj15YShELGIpLGs9bEYoVyxuLmdldFBsYXllclNpemUoKSxuLmdldFZpc2liaWxpdHlTdGF0ZSgpKSxoPUxCKHF5aikseD1XLlYoKSxMPSgwLGcuUikoKSxlPSExLEc9ImVtcHR5IjtiPTA7bi5EaygicHNucyIpO3ZhciByPXtsZzpmdW5jdGlvbihOKXtOLnJlYWR5U3RhdGU9PT0yJiZuLkRrKCJwc19jIil9fTsKaWYoRC5KKXtsZXQgTj17dmlkZW9JZDpTdHJpbmcoVy52aWRlb0lkKX0sSD1kbChXLmdldFJlc29sdmVVcmxSZXNwb25zZSgpKTtIJiYoTi5wYXJhbXM9SCk7Vy5wbGF5bGlzdElkJiYoTi5wbGF5bGlzdElkPVN0cmluZyhXLnBsYXlsaXN0SWQpKTtyLkhuPXtSTDp5SCgicGxheWVyIixOKX19dj1hd2FpdCBnLnJfKHYsayxoLHZvaWQgMCxyKTtuLkRrKCJwc25yIik7aWYoIVcucU4oKSl7dj8iZXJyb3IiaW4gdiYmdi5lcnJvcj8oZT0hMCxHPWBlc2Y6JHt2LmVycm9yLm1lc3NhZ2V9YCxiPXYuZXJyb3IuY29kZSk6di5lcnJvck1ldGFkYXRhJiYoZT0hMCxHPSJpdHMiLGI9di5lcnJvck1ldGFkYXRhLnN0YXR1cyk6ZT0hMDtpZihlKXJldHVybiBlPTAsdj0oKDAsZy5SKSgpLUwpLnRvRml4ZWQoKSxMPXt9LEw9RC5TKCJodG1sNV91c2VfbmV0d29ya19lcnJvcl9jb2RlX2VudW1zIik/e2JhY2tlbmQ6Im9wIixyYzpiLHJ0OnYscmVhc29uOkcsaGFzX2twdDpXLkhKPyIxIjoiMCIsaGFzX21keF9lbnY6Vy5tZHhFbnZpcm9ubWVudD8KIjEiOiIwIixoYXNfb21pdF9rZXlfZmxhZzpnLkFyKCJJTk5FUlRVQkVfT01JVF9BUElfS0VZX1dIRU5fQVVUSF9IRUFERVJfSVNfUFJFU0VOVCIpPyIxIjoiMCIsaGFzX3BhZ2VfaWQ6RC5wYWdlSWQ/IjEiOiIwIixoYXNfdG9rZW46eD8iMSI6IjAiLGhhc192dnQ6Vy5EPyIxIjoiMCIsaXNfbWR4OlcuaXNNZHhQbGF5YmFjaz8iMSI6IjAiLG1keF9jdHJsOlcuaTV8fCIiLHRva2VuX2VxOng9PT1XLlYoKT8iMSI6IjAifTp7YmFja2VuZDoib3AiLHJjOmAke2J9YCxydDp2LHJlYXNvbjpHLGhhc19rcHQ6Vy5ISj8iMSI6IjAiLGhhc19tZHhfZW52OlcubWR4RW52aXJvbm1lbnQ/IjEiOiIwIixoYXNfb21pdF9rZXlfZmxhZzpnLkFyKCJJTk5FUlRVQkVfT01JVF9BUElfS0VZX1dIRU5fQVVUSF9IRUFERVJfSVNfUFJFU0VOVCIpPyIxIjoiMCIsaGFzX3BhZ2VfaWQ6RC5wYWdlSWQ/IjEiOiIwIixoYXNfdG9rZW46eD8iMSI6IjAiLGhhc192dnQ6Vy5EPyIxIjoiMCIsaXNfbWR4OlcuaXNNZHhQbGF5YmFjaz8KIjEiOiIwIixtZHhfY3RybDpXLmk1fHwiIix0b2tlbl9lcTp4PT09Vy5WKCk/IjEiOiIwIn0sVz0ibWFuaWZlc3QubmV0LmNvbm5lY3QiLGI9PT00Mjk/KFc9ImF1dGgiLGU9Mik6Yj4yMDAmJihXPSJtYW5pZmVzdC5uZXQuYmFkc3RhdHVzIixiPT09NDAwJiYoZT0yKSksUHJvbWlzZS5yZWplY3QobmV3IGcuQ2koVyxMLGUpKTtXLmxvYWRpbmc9ITE7emYoVyx7cmF3X3BsYXllcl9yZXNwb25zZTp2fSwhMCk7Zy5DTihXLkcoKSkmJnYmJnYudHJhY2tpbmdQYXJhbXMmJmcueXIodi50cmFja2luZ1BhcmFtcyk7aWYoVy5lcnJvckNvZGUpcmV0dXJuIEQ9e2VjOlcuZXJyb3JDb2RlLGVkOlcuZXJyb3JEZXRhaWwsZXM6Vy53aXx8IiJ9LGI9ImF1dGgiLGcuQ04oVy5HKCkpJiZXLmVycm9yQ29kZSYmKGI9Vy5lcnJvckNvZGUpLFByb21pc2UucmVqZWN0KG5ldyBnLkNpKGIsRCwyKSk7aWYoIVcubG9hZGluZyYmIUhqKFcpKXJldHVybiBEPVcuaXNBZCgpPyJhdXRoIjoibWFuaWZlc3QubmV0LnJldHJ5ZXhoYXVzdGVkIiwKUHJvbWlzZS5yZWplY3QobmV3IGcuQ2koRCx7c3VjY2Vzc0J1dFVucGxheWFibGU6IjEiLGhhc01lZGlhOmcuWUwoVyk/IjEiOiIwIn0sMikpfX07CldyaD1hc3luYyBmdW5jdGlvbihuLFcsRCl7ZnVuY3Rpb24gYigpe3JldHVybiEwfQpmdW5jdGlvbiB2KGUpe2U9QiQoZSk7aWYoajIoZS5zZXZlcml0eSkpcmV0dXJuIFByb21pc2UucmVqZWN0KGUpO24uaGFuZGxlRXJyb3IoZSk7cmV0dXJuITF9CnZhciBrPXNfMihuLkcoKSxXLG4uZ2V0UGxheWVyU2l6ZSgpLG4uZ2V0VmlzaWJpbGl0eVN0YXRlKCksbi5pc0Z1bGxzY3JlZW4oKSksaD1XLmlzQWQoKSx4PWg/MTozO2ZvcihsZXQgZT0wO2U8eDtlKyspe3ZhciBMPWs7ZT4wJiYoYXdhaXQgZy5VdSg1RTMpLEw9e3BsYXllcnJldHJ5OmUscGxheWVycmV0cnlzcmM6RH0saHx8KEwucmVjb3Zlcj0iZW1iZWRkZWQiKSxMPWcubHcoayxMKSk7aWYoYXdhaXQgR1UxKFcsTCkudGhlbihiLHYpKXJldHVybn1XPWg/ImF1dGgiOiJtYW5pZmVzdC5uZXQucmV0cnlleGhhdXN0ZWQiO0Q9aD8yOjE7aWYoIWgmJk1hdGgucmFuZG9tKCk8MUUtNCl0cnl7Zy5HcShuZXcgZy5ReCgiYi8xNTIxMzE1NzEiLGJ0b2EoaykpKX1jYXRjaHt9cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBnLkNpKFcse2JhY2tlbmQ6Imd2aSJ9LEQpKX07CkdVMT1hc3luYyBmdW5jdGlvbihuLFcpe2Z1bmN0aW9uIEQoTCl7aWYoIW4ucU4oKSl7TD1MP0wuc3RhdHVzOi0xO3ZhciBlPTAsRz0oKDAsZy5SKSgpLXgpLnRvRml4ZWQoKTtHPWIuUygiaHRtbDVfdXNlX25ldHdvcmtfZXJyb3JfY29kZV9lbnVtcyIpP3tiYWNrZW5kOiJndmkiLHJjOkwscnQ6R306e2JhY2tlbmQ6Imd2aSIscmM6YCR7TH1gLHJ0Okd9O3ZhciByPSJtYW5pZmVzdC5uZXQuY29ubmVjdCI7TD09PTQyOT8ocj0iYXV0aCIsZT0yKTpMPjIwMCYmKHI9Im1hbmlmZXN0Lm5ldC5iYWRzdGF0dXMiLEw9PT00MDAmJihlPTIpKTtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IGcuQ2kocixHLGUpKX19Cm4uZmV0Y2hUeXBlPSJndmkiO3ZhciBiPW4uRygpLHY7KHY9TlFpKG4pKT8odj17Zm9ybWF0OiJSQVciLG1ldGhvZDoiUE9TVCIsd2l0aENyZWRlbnRpYWxzOiEwLHRpbWVvdXQ6M0U0LHBvc3RQYXJhbXM6dn0sVz1nLmx3KFcse2FjdGlvbl9kaXNwbGF5X3Bvc3Q6MX0pKTp2PXtmb3JtYXQ6IlJBVyIsbWV0aG9kOiJHRVQiLHdpdGhDcmVkZW50aWFsczohMCx0aW1lb3V0OjNFNH07dmFyIGs9e307Yi5zZW5kVmlzaXRvcklkSGVhZGVyJiZuLnZpc2l0b3JEYXRhJiYoa1siWC1Hb29nLVZpc2l0b3ItSWQiXT1uLnZpc2l0b3JEYXRhKTt2YXIgaD1nLlloKGIuZXhwZXJpbWVudHMsImRlYnVnX3NoZXJsb2dfdXNlcm5hbWUiKTtoJiYoa1siWC1Zb3V0dWJlLVNoZXJsb2ctVXNlcm5hbWUiXT1oKTtPYmplY3Qua2V5cyhrKS5sZW5ndGg+MCYmKHYuaGVhZGVycz1rKTt2YXIgeD0oMCxnLlIpKCk7dj1hd2FpdCBlNChnLnI4LFcsdikudGhlbih2b2lkIDAsZnVuY3Rpb24oTCl7cmV0dXJuIEQoTC54aHIpfSk7CmlmKCF2fHwhdi5yZXNwb25zZVRleHQpcmV0dXJuIEQodik7bi5sb2FkaW5nPSExO3Y9Zy5pdyh2LnJlc3BvbnNlVGV4dCk7emYobix2LCEwKTtpZihuLmVycm9yQ29kZSlyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IGcuQ2koImF1dGgiLHtlYzpuLmVycm9yQ29kZSxlZDpuLmVycm9yRGV0YWlsLGVzOm4ud2l8fCIifSwyKSk7aWYoIW4ubG9hZGluZyYmIUhqKG4pKXJldHVybiB2PW4uaXNBZCgpPyJhdXRoIjoibWFuaWZlc3QubmV0LnJldHJ5ZXhoYXVzdGVkIixQcm9taXNlLnJlamVjdChuZXcgZy5DaSh2LHtzdWNjZXNzQnV0VW5wbGF5YWJsZToiMSJ9LDIpKX07ClhzaT1mdW5jdGlvbihuLFcpe3JldHVybiBuZXcgZy5DaShuPyJhdXRoIjoibWFuaWZlc3QubmV0LnJldHJ5ZXhoYXVzdGVkIixXLG4/MjoxKX07ClVCPWFzeW5jIGZ1bmN0aW9uKG4sVyxEPSExKXt2YXIgYj1uLkcoKTtEJiYoIWcuJDYoYil8fElUKFcpIT09ImVtYmVkZGVkIil8fFcuZkN8fElUKFcpIT09ImFkdW5pdCImJihnLms2KGIpfHxnLlhDKGIpfHxnLk1WKGIpfHx0dShiKXx8Zy5EZihiKXx8bG8oYik9PT0iV0VCX0NSRUFUT1IiKXx8KEQ9Zy5IRShiLFcuVigpKSxEPUQuTj9hd2FpdCBELk46RC5nZXRWYWx1ZSgpLHR5MihuLFcsRCkpfTsKdHkyPWFzeW5jIGZ1bmN0aW9uKG4sVyxEKXt0cnl7bGV0IGs9bi5HKCksaD15YShrLEQpO3ZhciBiPVcuRygpO2xldCB4PWcubzkoKSxMPXtjb250ZXh0Omcub1QoVyksdmlkZW9JZDpXLnZpZGVvSWQscmFjeUNoZWNrT2s6Vy5yYWN5Q2hlY2tPayxjb250ZW50Q2hlY2tPazpXLmNvbnRlbnRDaGVja09rLGF1dG9uYXZTdGF0ZToiU1RBVEVfTk9ORSJ9O0lUKFcpPT09ImFkdW5pdCImJihMLmlzQWRQbGF5YmFjaz0hMCk7Yi5lbWJlZENvbmZpZyYmKEwuc2VyaWFsaXplZFRoaXJkUGFydHlFbWJlZENvbmZpZz1iLmVtYmVkQ29uZmlnKTtiLlluJiYoTC5zaG93Q29udGVudE93bmVyT25seT0hMCk7Vy5TYSYmKEwuc2hvd1Nob3J0c09ubHk9ITApO3guUVEoMTQxKSYmKEwuYXV0b25hdlN0YXRlPXguUVEoMTQwKT8iU1RBVEVfT0ZGIjoiU1RBVEVfT04iKTtpZihnLmVNKGIpKXtsZXQgTj14LlFRKDY1KTtEPU4hPW51bGw/IU46ITE7bGV0IEg9ISFnLlpJKCJ5dC1wbGF5ZXItc3RpY2t5LWNhcHRpb24iKTsKTC5jYXB0aW9uc1JlcXVlc3RlZD1EJiZIfWxldCBlPWIuZ2V0V2ViUGxheWVyQ29udGV4dENvbmZpZygpPy5lbmNyeXB0ZWRIb3N0RmxhZ3M7ZSYmKEwucGxheWJhY2tDb250ZXh0PXtlbmNyeXB0ZWRIb3N0RmxhZ3M6ZX0pO3ZhciB2PUw7bGV0IEc9TEIoJDFDKTtuLkRrKCJ3bl9zIik7Yj17fTtrLkomJihiLkhuPXtSTDp5SCgibmV4dCIse3ZpZGVvSWQ6U3RyaW5nKFcudmlkZW9JZCl9KX0pO2xldCByPWF3YWl0IGcucl8oaCx2LEcsdm9pZCAwLGIpO24uRGsoInduX3IiKTshcnx8ImVycm9yImluIHImJnIuZXJyb3J8fChnLkNOKFcuRygpKSYmci50cmFja2luZ1BhcmFtcyYmZy55cihyLnRyYWNraW5nUGFyYW1zKSx6ZihXLHtyYXdfd2F0Y2hfbmV4dF9yZXNwb25zZTpyfSwhMSkpfWNhdGNoKGspe319OwpiVVU9YXN5bmMgZnVuY3Rpb24obixXKXt2YXIgRD1nLkhFKG4uRygpLFcuVigpKTtEPUQuTj9hd2FpdCBELk46RC5nZXRWYWx1ZSgpO3I2dyhuLFcsRCl9OwpyNnc9YXN5bmMgZnVuY3Rpb24obixXLEQpe249bi5HKCk7dHJ5e2xldCBoPXlhKG4sRCk7bGV0IHg9e2NvbnRleHQ6Zy5vVChXKSxwbGF5ZXJSZXF1ZXN0Ont2aWRlb0lkOlcudmlkZW9JZH0sZGlzYWJsZVBsYXllclJlc3BvbnNlOiEwfSxMPVcuZ2V0UmVzb2x2ZVVybFJlc3BvbnNlKCk7aWYoTCl7bGV0IHI9ZGwoTCk7ciYmKHgucGxheWVyUmVxdWVzdC5wYXJhbXM9cik7bGV0IE49ajcoTCk/LnBhcmFtcztOJiYoeC5wYXJhbXM9Til9dmFyIGI9eDtsZXQgZT1MQihzdjIpO0Q9e307aWYobi5KKXtsZXQgcj17dmlkZW9JZDpTdHJpbmcoVy52aWRlb0lkKX07dmFyIHYsaz1XLmdldFJlc29sdmVVcmxSZXNwb25zZSgpOyh2PWo3KGspPy5wYXJhbXMpJiYoci5wYXJhbXM9dik7RC5Ibj17Ukw6eUgoInJlZWxfaXRlbV93YXRjaCIscil9fWxldCBHPWF3YWl0IGcucl8oaCxiLGUsdm9pZCAwLEQpOyFHfHwiZXJyb3IiaW4gRyYmRy5lcnJvcnx8emYoVyx7cmF3X3JlZWxfaXRlbV93YXRjaF9yZXNwb25zZTpHfSl9Y2F0Y2goaCl7fX07CngxVT1hc3luYyBmdW5jdGlvbihuLFcpe3RyeXtsZXQgaz1uLkcoKSxoPWcuSEUoayxXLlYoKSkseD1oLk4/YXdhaXQgaC5OOmguZ2V0VmFsdWUoKSxMPXlhKGsseCk7dmFyIEQ9bi5nZXRQbGF5ZXJTaXplKCksYj1uLmdldFZpc2liaWxpdHlTdGF0ZSgpO3ZhciB2PXtjb250ZXh0Omcub1QoVyksdXJsOmBodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke1cudmlkZW9JZH1gLHBsYXliYWNrQ29udGV4dDp7Y29udGVudFBsYXliYWNrQ29udGV4dDpkayhXLEQsYil9fTtsZXQgZT1MQihONGgpLEc9YXdhaXQgZy5yXyhMLHYsZSk7Vy5xTigpfHxHJiZ6ZihXLHtyYXdfcmVzb2x2ZV91cmxfcmVzcG9uc2U6R30sITApfWNhdGNoKGspe319Owpwc3I9ZnVuY3Rpb24obixXKXtuLkRrKCJ2aXIiKTtuLkRrKCJwc19zIik7Zy5nXygidmlyIix2b2lkIDAsInZpZGVvX3RvX2FkIik7Vz1McjEobixXKTtXLnRoZW4oZnVuY3Rpb24oKXtuLkRrKCJ2aXJjIik7Zy5nXygidmlyYyIsdm9pZCAwLCJ2aWRlb190b19hZCIpO24uRGsoInBzX3IiKTtnLmdfKCJwc19yIix2b2lkIDAsInZpZGVvX3RvX2FkIil9LGZ1bmN0aW9uKCl7bi5EaygidmlyYyIpOwpnLmdfKCJ2aXJjIix2b2lkIDAsInZpZGVvX3RvX2FkIil9KTsKcmV0dXJuIFd9OwpFQj1mdW5jdGlvbigpe3ZhciBuPUcxKCk7cmV0dXJuISghbnx8bj09PSJ2aXNpYmxlIil9OwpIVWk9ZnVuY3Rpb24obil7dmFyIFc9WXlpKCk7VyYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihXLG4sITEpfTsKZnZpPWZ1bmN0aW9uKG4pe3ZhciBXPVl5aSgpO1cmJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoVyxuLCExKX07Cll5aT1mdW5jdGlvbigpe2lmKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSl2YXIgbj0idmlzaWJpbGl0eWNoYW5nZSI7ZWxzZXtpZighZG9jdW1lbnRbcTArIlZpc2liaWxpdHlTdGF0ZSJdKXJldHVybiIiO249cTArInZpc2liaWxpdHljaGFuZ2UifXJldHVybiBufTsKSXZoPWZ1bmN0aW9uKG4pe0o2cj1ufTsKU3lyPWZ1bmN0aW9uKG4pe2lWPW59OwpTUE09ZnVuY3Rpb24obil7dmFyIFc9bi5oVTtuPW4udmlkZW9EYXRhO3ZhciBEPVpWKFcsbik7Vy5TKCJodG1sNV9kaXNhYmxlX2NsaWVudF9hdXRvbmF2X2NhcF9mb3Jfb25lc2llIil8fEQuY29tcG9zZShVWChXLG4pKTtyZXR1cm4gRH07CkdYPWZ1bmN0aW9uKG4sVyl7dVYobixXLnJlYXNvbixXLk4uaW5mbyxXLnNvdXJjZSxXLnRva2VuKX07Cm9jPWZ1bmN0aW9uKG4sVyl7bi5XSigibG9jYWxtZWRpYWNoYW5nZSIsVyl9OwpQOVU9ZnVuY3Rpb24obixXKXtuLnRiLmRUKCl8fChuLlUoInNnYXAiLHtmOld9KSxuLnRiLmNsZWFyUXVldWUoITEsVz09PSJwZSIpKX07Cm0xVT1mdW5jdGlvbihuKXtuLm1lZGlhRWxlbWVudCYmKG4ubWVkaWFTb3VyY2U/KGRzKG4pLG4ubXkoKSxBNmoobiwhMSkpOihuLnZpZGVvRGF0YS5jSiYmbi52aWRlb0RhdGEuY0ouWCgpLG4ubWVkaWFFbGVtZW50LnN0b3BWaWRlbygpKSxuLnBsYXlWaWRlbygpKX07CkljPWZ1bmN0aW9uKG4pe3JldHVybiBuLlMoImh0bWw1X2Rpc2FibGVfdmlkZW9fcGxheWVyX2luaXRpYXRlZF9zZWVrcyIpJiZnLllOKG4udmlkZW9EYXRhKX07CmxWPWZ1bmN0aW9uKG4sVyl7bi54byYmelkobik7bi54bz1uZXcgZy5sNShXKjFFMywweDdmZmZmZmZmZmZmZmYpO24ueG8ubmFtZXNwYWNlPSJlbmRjciI7bi5hZGRDdWVSYW5nZShuLnhvKX07CnpZPWZ1bmN0aW9uKG4pe24ucmVtb3ZlQ3VlUmFuZ2Uobi54byk7bi54bz1udWxsfTsKamg9ZnVuY3Rpb24obil7aWYobi52aWRlb0RhdGEuVyYmbi52aWRlb0RhdGEuVy5OKCkpe3ZhciBXPVRZKG4pO24ubG9hZGVyJiZuLmxvYWRlci5tbyhXKX19OwpCZD1mdW5jdGlvbihuLFc9ITApe24uQi5BbSYmIW4udmlkZW9EYXRhLmJhY2tncm91bmRhYmxlJiZuLm1lZGlhRWxlbWVudCYmIW4uRTgoKSYmKG4uaXNCYWNrZ3JvdW5kKCkmJm4ubWVkaWFFbGVtZW50LkdDKCk/KG4uVSgiYmdtb2JpbGUiLHtzdXNwZW5kOjF9KSxuLm9KKCEwLCEwKSk6IW4uaXNCYWNrZ3JvdW5kKCkmJlcmJkN1KG4pJiZuLlUoImJnbW9iaWxlIix7cmVzdW1lOjF9KSl9OwpGSj1mdW5jdGlvbihuKXtpZighZy5EUChuLnZpZGVvRGF0YSkpcmV0dXJuIE5hTjt2YXIgVz0wO24ubG9hZGVyJiZuLnZpZGVvRGF0YS5OJiYoVz1JNChuLnZpZGVvRGF0YSk/bi5sb2FkZXIucWgoKTpuLnZpZGVvRGF0YS5OLnFoKCkpO3JldHVybigwLGcuUikoKS8xRTMtbi5oQygpLVd9OwpLcmI9ZnVuY3Rpb24obixXKXtpZihuLnBsYXllclR5cGU9PT0yfHxuLkIuQ20pVy5vYz0hMDt2YXIgRD1UbChXLkZGLFcuRncsbi5CLkosbi5CLkspO0QmJihXLmFkRm9ybWF0PUQpO24ucGxheWVyVHlwZT09PTImJihXLkd1PSEwKTtpZihuLmlzRnVsbHNjcmVlbigpfHxuLkIuSilEPWcuWkkoInl0LXBsYXllci1hdXRvbmF2c3RhdGUiKSxXLmF1dG9uYXZTdGF0ZT1EfHwobi5CLko/MjpuLnZpZGVvRGF0YS5hdXRvbmF2U3RhdGUpO1cuZW5kU2Vjb25kcyYmVy5lbmRTZWNvbmRzPlcuc3RhcnRTZWNvbmRzJiZsVihuLFcuZW5kU2Vjb25kcyl9Owp3cz1mdW5jdGlvbihuKXtuLmxvYWRlciYmKG4ubG9hZGVyLmRpc3Bvc2UoKSxuLmxvYWRlcj1udWxsLG1vKG4uZGEsbnVsbCkpO24ucGcoKT9PVWgobik6bi5teSgpfTsKVTFpPWZ1bmN0aW9uKG4pe2lmKCFuLnBsYXllclN0YXRlLk4oMTI4KSlpZihuLnZpZGVvRGF0YS5pc0xvYWRlZCgpLG4uaWw9Zy5STShuLnZpZGVvRGF0YS5JSiksZy5ZTChuLnZpZGVvRGF0YSkpe24ubVEudGljaygiYnBkX3MiKTtNOShuKS50aGVuKCgpPT57bi5tUS50aWNrKCJicGRfYyIpO2lmKCFuLnFOKCkpe24uTkwmJihuLkJOKEJyKEJyKG4ucGxheWVyU3RhdGUsNTEyKSwxKSksQ3UobikpO3ZhciBEPW4udmlkZW9EYXRhO0QuZW5kU2Vjb25kcyYmRC5lbmRTZWNvbmRzPkQuc3RhcnRTZWNvbmRzJiZsVihuLEQuZW5kU2Vjb25kcyk7bi5MUi5maW5pc2hlZD0hMDtSYyhuLCJkYXRhbG9hZGVkIik7bi5qSC5zdGFydGVkJiZRYShuKTtsNVUobi5oVSxuLkRoKX19KTsKbi5TKCJodG1sNV9sb2dfbWVkaWFfcGVyZl9pbmZvIikmJm4uVSgibG91ZG5lc3MiLHt2Om4udmlkZW9EYXRhLllLLnRvRml4ZWQoMyl9LCEwKTt2YXIgVz1uLm1lZGlhRWxlbWVudD8uZV8oKTtpZihXJiYiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUiaW4gVyYmbi5CLkh4KXRyeXtXLmRpc2FibGVQaWN0dXJlSW5QaWN0dXJlPW4uQi5MQiYmIW4udmlkZW9EYXRhLmJhY2tncm91bmRhYmxlfWNhdGNoKEQpe2cuR3EoRCl9UFJiKG4pO24uQkg9bmV3IFpVcihuLnZpZGVvRGF0YSl9ZWxzZSBSYyhuLCJkYXRhbG9hZGVkIil9Owp5Nlo9ZnVuY3Rpb24obil7dmFyIFc9bi52aWRlb0RhdGE7cHNyKG4sbi5paikudGhlbih2b2lkIDAsRD0+e24udmlkZW9EYXRhIT09V3x8Vy5xTigpfHwoRD1CJChEKSxELmVycm9yQ29kZT09PSJhdXRoIiYmbi52aWRlb0RhdGEuZXJyb3JEZXRhaWwmJm4udmlkZW9EYXRhLmVycm9yRGV0YWlsIT09IjciP24uUFYoRC5lcnJvckNvZGUsMix1bmVzY2FwZShuLnZpZGVvRGF0YS5lcnJvclJlYXNvbiksZy5UQyhELmRldGFpbHMpLG4udmlkZW9EYXRhLmVycm9yRGV0YWlsLG4udmlkZW9EYXRhLndpfHx2b2lkIDApOm4uaGFuZGxlRXJyb3IoRCkpfSl9OwpFQUM9ZnVuY3Rpb24obil7cmV0dXJuIGcuazYobi5CKSYmbi52aWRlb0RhdGEuaXNMaXZlUGxheWJhY2smJighbi5CLlMoImh0bWw1X2FsbG93X211bHRpdmlld190aWxlX3ByZWxvYWQiKXx8IW4udmlkZW9EYXRhLmxpdmVQcmVsb2FkKX07Ck05PWZ1bmN0aW9uKG4pe3dzKG4pO24uRGg9bnVsbDt2YXIgVz1Vancobi5CLG4udmlkZW9EYXRhLG4uRTgoKSk7bi50Uj1XO24udFIudGhlbihEPT57aVV0KG4sRCl9LEQ9PntuLnFOKCl8fChEPUIkKEQpLG4udmlzaWJpbGl0eS5pc0JhY2tncm91bmQoKT8oVmEobiwidnBfbm9uZV9hdmFpbCIpLG4udFI9bnVsbCxuLkxSLnJlc2V0KCkpOihuLkxSLmZpbmlzaGVkPSEwLG4uUFYoRC5lcnJvckNvZGUsRC5zZXZlcml0eSwiSFRNTDVfTk9fQVZBSUxBQkxFX0ZPUk1BVFNfRkFMTEJBQ0siLGcuVEMoRC5kZXRhaWxzKSkpKX0pOwpyZXR1cm4gV307ClBSYj1mdW5jdGlvbihuKXtpZihLeihuLnZpZGVvRGF0YSwiaHRtbDVfc2V0X2RlYnVnZ2luZ19vcHRfaW4iKSl7bGV0IFc9Zy5vOSgpO2lmKCFXLlFRKDE4Mykpe249YGYke01hdGguZmxvb3IoMTgzLzMxKSsxfWA7bGV0IEQ9VDEobil8fDA7RHw9MjY4NDM1NDU2O0Q9PT0wP2RlbGV0ZSBsT1tuXTpsT1tuXT1ELnRvU3RyaW5nKDE2KS50b1N0cmluZygpO1cuc2F2ZSgpfX19OwpSYz1mdW5jdGlvbihuLFc9ImRhdGF1cGRhdGVkIil7bi5XSigiaW50ZXJuYWx2aWRlb2RhdGFjaGFuZ2UiLFcsbi52aWRlb0RhdGEpfTsKaVV0PWZ1bmN0aW9uKG4sVyl7aWYoIW4ucU4oKSYmIVcudmlkZW9EYXRhLnFOKCkpe24uRGg9VztGM2Iobi5kYSxuLkRoKTtpZihuLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFjayl7dmFyIEQ9dVJyKG4udGIuUXAsbi52aWRlb0RhdGEudmlkZW9JZCl8fG4ubG9hZGVyJiYhaXNOYU4obi5sb2FkZXIuQ0gpO0Q9bi5TKCJodG1sNV9vbmVzaWVfbGl2ZSIpJiZEO0ljKG4pfHxuLnZpZGVvRGF0YS5UQz4wJiYhSTQobi52aWRlb0RhdGEpfHxEfHxuLnNlZWtUbyhuLnJJKCkse3FkOiJ2aWRlb3BsYXllcl9wbGF5YmFja0RhdGEiLHNlZWtTb3VyY2U6MTh9KX1pZihuLnZpZGVvRGF0YS5XLk4oKSl7aWYoVGhpKG4udmlkZW9EYXRhKSl7bi5QVigiZm10Lm1pc3NpbmciLDIsIkJST1dTRVJfT1JfRVhURU5TSU9OX0VSUk9SIixnLlRDKHttaXNzYWJydXJsOjF9KSk7cmV0dXJufWlmKG4ubG9hZGVyKWcuR3EoRXJyb3IoIkR1cGxpY2F0ZWQgTG9hZGVyIikpO2Vsc2V7RD1nLmRNKG4uQi5leHBlcmltZW50cywKImh0bWw1X29uZXNpZV9kZWZlcl9jb250ZW50X2xvYWRlcl9tcyIpO2xldCBiPSgpPT57Y2QobiwoKT0+e24ucU4oKXx8bi5sb2FkZXJ8fG9BdChuKX0pfTsKRCYmbi5PUCgpJiZ1UnIobi50Yi5RcCxuLnZpZGVvRGF0YS5Xaik/Zy5uJChiLEQpOmIoKX19ZWxzZSFuLnZpZGVvRGF0YS5XLk4oKSYmT1Mobi52aWRlb0RhdGEpJiZvYyhuLG5ldyBhYyhuLnZpZGVvRGF0YS52aWRlb0lkfHwiIiw0KSk7bi51digpO3VpaihXKS50aGVuKCgpPT57dmFyIGI9e307bi5zVChiKTtuLkIuV1goKSYmbi5TKCJodG1sNV9sb2dfbWVkaWFfcGVyZl9pbmZvIikmJm4uVSgiYXYxSW5mbyIsYik7amgobil9KX19OwpDdT1mdW5jdGlvbihuLFc9ITEpe2lmKCFuLm1lZGlhRWxlbWVudHx8IW4udmlkZW9EYXRhLlcpcmV0dXJuITE7dmFyIEQ9ZDEyKG4sVyksYj1uLm1lZGlhRWxlbWVudC5HQygpLHY9ITE7YiYmYi5lcXVhbHMoRCl8fCh6cGkobixEKSx2PSEwKTtuLnBsYXllclN0YXRlLk4oMil8fFFidyhuLmRhLFcpO2E6e1c9djtpZihnLllOKG4udmlkZW9EYXRhKSl7aWYoIW4udmlkZW9EYXRhLk1pKCkpYnJlYWsgYX1lbHNlIGlmKCFnLnF1KG4udmlkZW9EYXRhKSlicmVhayBhO2lmKG4ubWVkaWFFbGVtZW50KWlmKChEPW4udmlkZW9EYXRhLmopJiZuLm1lZGlhRWxlbWVudC5LKCkpe2I9bi5tZWRpYUVsZW1lbnQuZV8oKTtpZihuLkxBKWlmKGIhPT1uLkxBLmVsZW1lbnQpZHMobik7ZWxzZSBpZihXJiZELmZsYXZvcj09PSJmYWlycGxheSImJiF6USgpKWRzKG4pO2Vsc2UgYnJlYWsgYTtpZihuLlMoImh0bWw1X3JlcG9ydF9lcnJvcl9mb3JfdW5zdXBwb3J0ZWRfdHZvc193aWRldmluZSIpJiZ6USgpJiYKRC5mbGF2b3I9PT0id2lkZXZpbmUiKW4uUFYoImZtdC51bnBsYXlhYmxlIiwxLCJIVE1MNV9OT19BVkFJTEFCTEVfRk9STUFUU19GQUxMQkFDSyIsInRyZy51bnNwdHR2b3N3aWRldmluZSIpO2Vsc2V7bi5MQT1uZXcgbHZ3KGIsbi52aWRlb0RhdGEsbi5CLG4ubWVkaWFFbGVtZW50LG4uZGgpO24uTEEuc3Vic2NyaWJlKCJsaWNlbnNlZXJyb3IiLG4uYm8sbik7bi5MQS5zdWJzY3JpYmUoInF1YWxpdHljaGFuZ2UiLG4uVzQsbik7bi5MQS5zdWJzY3JpYmUoImhlYXJ0YmVhdHBhcmFtcyIsbi5iWixuKTtuLkxBLnN1YnNjcmliZSgia2V5c3RhdHVzZXNjaGFuZ2UiLG4uWVYsbik7bi5MQS5zdWJzY3JpYmUoImN0bXAiLG4uVSxuKTtmb3IobGV0IGsgb2Ygbi5EYi5rZXlzKVc9bi5EYi5nZXQoayksbi5MQS5XbihXKTtuLlMoImh0bWw1X2VtZV9sb2FkZXJfc3luYyIpfHxuLkRiLlRpKCl9fWVsc2Ugbi5QVigiZm10LnVucGxheWFibGUiLDEsIkhUTUw1X05PX0FWQUlMQUJMRV9GT1JNQVRTX0ZBTExCQUNLIiwKInRyZy51cGRhdGVkcm0iKX1yZXR1cm4gdn07CmNkPWZ1bmN0aW9uKG4sVyl7bi5CLmVCJiZuLkIuWnQoKS5OLlFRKG5hKT9TayhuLkIuZUIsVywoKT0+e0p1KG4uQik7bi5CLmVCPXZvaWQgMDtXKCl9KTpXKCl9OwpvQXQ9ZnVuY3Rpb24obil7dmFyIFc9bi52aWRlb0RhdGEuTixEPXtjcG46bi52aWRlb0RhdGEuY2xpZW50UGxheWJhY2tOb25jZSxjOm4uQi5OLmMsY3ZlcjpuLkIuTi5jdmVyfTtmb3IobGV0IFtoLHhdb2YgT2JqZWN0LmVudHJpZXMoRCkpe0Q9aDt2YXIgYj14O2Zvcih2YXIgdiBvZiBPYmplY3QudmFsdWVzKFcuTikpdi5YYi5jSihELGIpO1cuWT8uY0ooRCxiKX12PW4uQjtEPW4udmlkZW9EYXRhO2I9bi5pajtXPW5ldyBnLlQ0Mih2KTt2YXIgaz1OOFooe2hhc1N1YmZyYWdtZW50ZWRGbXA0OkQuaGFzU3ViZnJhZ21lbnRlZEZtcDQsSTI6RC5JMn0pO1cuVj1rO1cuTz1ELm1heFJlYWRBaGVhZE1lZGlhVGltZU1zLzFFM3x8Vy5PO2IuWC5MZygpPT09Yi5wb2xpY3kuTj9XLmpXPTEwOlcualc9RC5taW5SZWFkQWhlYWRNZWRpYVRpbWVNcy8xRTN8fFcualc7Vy5MSz1ELnJlYWRBaGVhZEdyb3d0aFJhdGVNcy8xRTN8fFcuTEs7RC5RNiYmKFcuWD0hMCk7Vy5OZj0hYWQoKTtnLms2KHYpfHwKIWFkKCk/KFcuZSQ9ODM4ODYwOCxXLnZKPTUyNDI4OCxXLklNPTUsVy5ISj0xMDQ4NTc2LFcuVDQ9MS41LFcuTnM9NDU4NzUyMCxsYigpJiYoVy5Ocz03ODY0MzIpLFcuSyo9MS4xLFcuY0oqPTEuMSxXLm1oPSEwKTp2LmomJihXLksqPTEuMyxXLmNKKj0xLjMpO2cub2QmJmcudWIoImNya2V5IikmJihrPXYuTi5jbW9kZWw9PT0iQ0hST01FQ0FTVC9BTkNIT1ZZIixXLmUkPTIwOTcxNTIwLFcudko9MTU3Mjg2NCxrJiYoVy5Ocz04MTI1MDAsVy5iTj0xRTMsVy5Saz01LFcuSEo9MjA5NzE1MikpO2cuYW8mJihXLm1oPSEwKTt2LnN1cHBvcnRzR2FwbGVzc0F1ZGlvKCl8fChXLkRUPSExKTtnLldYJiYoVy5ZJD0hMCk7Vy5zVj12LlMoImh0bWw1X3BlYWtfc2hhdmUiKTtELmhxKCkmJnYuUygiaHRtbDVfZGlzYWJsZV9wZWFrX3NoYXZlX2Zvcl9vbmVzaWUiKSYmKFcuc1Y9ITEpO2s9RC5OPy5YKCk7aWYoSTQoRCkpe1cuZVY9ITA7Vy5VVHx8KFcuZlI9ITApO1cuUFg9ITA7Vy5TVj0hMDtXLllyPQohMDtpZihELmxhdGVuY3lDbGFzcz09PSJVTFRSQUxPVyJ8fEQubGF0ZW5jeUNsYXNzPT09IkxPVyImJiF2LlMoImh0bWw1X2Rpc2FibGVfbG93X3BpcGVsaW5lIikpVy53bz0yLFcuQ3k9NDtXLnNKPUQuZGVmcmFnZ2VkRnJvbVN1YmZyYWdtZW50cztnLnBBKEQpJiYoVy5CVj0hMSk7Vy5DbT1nLkdsKHYpfUQuaXNBZCgpJiYoVy50TT0wLFcuSFk9MCk7Vy5UNz12LlMoImh0bWw1X3VsdHJhX2xvd19sYXRlbmN5X3N1YnNlZ21lbnRfcmVhZGFoZWFkIikmJkQubGF0ZW5jeUNsYXNzPT09IlVMVFJBTE9XIjtXLlc9di5XWCgpO2IuSi5YPUk0KEQpPy41OjA7RC5pc0xpdmVQbGF5YmFjayYmKFcuV2M9Zy5kTSh2LmV4cGVyaW1lbnRzLCJodG1sNV9taW5fc3RhcnR1cF9idWZmZXJlZF9tZWRpYV9kdXJhdGlvbl9mb3JfbGl2ZV9zZWNzIil8fC4yNSxXLm51PSExKTtELk1pKCkmJihXLm51PSExKTtXLnFqPSF2LlMoImh0bWw1X3NhYnJfa2VlcF9hbGxfcXVhbGl0eV9jb25zdHJhaW50cyIpO1cuQjM9CkxBKEQpO2hEKEQpJiYoVy5UNz0hMCxELmxhdGVuY3lDbGFzcz09PSJMT1ciP1cud2E9Zy5kTSh2LmV4cGVyaW1lbnRzLCJodG1sNV9qdW1ib19tb2JpbGVfc3Vic2VnbWVudF9yZWFkYWhlYWRfdGFyZ2V0Iik6RC5sYXRlbmN5Q2xhc3M9PT0iVUxUUkFMT1ciJiYoVy53YT1nLmRNKHYuZXhwZXJpbWVudHMsImh0bWw1X2p1bWJvX3VsbF9zdWJzZWdtZW50X3JlYWRhaGVhZF90YXJnZXQiKSksVy5iQj0hMCk7RC56VygpJiYoVy53eT0xLjMpO1cuWSQ9Vy5ZJHx8RC5mUjtXLkhpPShXLkhpfHxELkhpKSYmdi5LO1cuVjY9RC5LO3YuV1goKSYmKFcuUmE9ITApO0QuSyYmIWsmJihXLktvPSEwKTtELksmJkQuaXNBZCgpJiYoVy5LKj0xLjYsVy5jSio9MS42KTtPUyhEKSYmKFcuSj1ELnZpZGVvSWQsVy52bj0hMCxXLnN6PTEwMCxELnhoJiZELnhoLmxlbmd0aD4wJiYoVy5iVj1ELnhoKSk7Vy5lQj1ELlo5O1cublM9REsodix7fSxELld8fHZvaWQgMCxReihEKSk7Vy5iZD1SUShEKSYmKGcuTVYodil8fAp0dSh2KSk7Zy5ZTihEKSYmKFcuaj0hMCxXLkU1PWcuazYodikmJiFnLmQ4KCk/ITE6ITAsIVcuZTQmJnYuUygiaHRtbDVfc2Ficl9ub25fc3RyZWFtaW5nX3hocl9jbGllbnRfcmVxdWVzdF9jYW5jZWxsYXRpb24iKSYmKFcudlg9ITAsVy5DdT0hMCxXLlRJPWcuZE0odi5leHBlcmltZW50cywiaHRtbDVfc2Ficl9ub25fc3RyZWFtaW5nX3hocl9yZXF1ZXN0X2NhbmNlbGxhdGlvbl90aW1lb3V0X21zIil8fDhFMyxXLnN6PWcuZE0odi5leHBlcmltZW50cywiaHRtbDVfc2Ficl9ub25fc3RyZWFtaW5nX3hocl90aW1lb3V0X3JldHJ5X2xpbWl0Iil8fDMpLHYuUygiaHRtbDVfc2Ficl9yZXBvcnRfcGFydGlhbF9zZWdtZW50X2VzdGltYXRlZF9kdXJhdGlvbiIpJiYoVy5SRD0hMCksVy5OPSEwLFcudkY9di5TKCJodG1sNV90cmlnZ2VyX2xvYWRlcl93aGVuX2lkbGVfbmV0d29yayIpLFcuSjg9di5TKCJodG1sNV9zYWJyX3BhcnNlX2xpdmVfbWV0YWRhdGFfcGxheWJhY2tfYm91bmRhcmllcyIpLApXLmNMPXYuUygiaHRtbDVfY29uc3VtZV9vbmVzaWVfbmV4dF9yZXF1ZXN0X3BvbGljeV9mb3Jfc2FiciIpLFcuQVY9di5TKCJodG1sNV9sb2dfaGlnaF9yZXNfYnVmZmVyX3RpbWVsaW5lIikmJnYuV1goKSxXLmZDPXYuUygiaHRtbDVfZ2FwbGVzc19zYWJyX2J0bF9sYXN0X3NsaWNlIikmJkFKKEQpLFcucG89di5TKCJodG1sNV9yZXNldF9sYXN0X2FwcGVuZGVkX3NsaWNlX29uX3NlZWsiKSYmQUooRCksSTQoRCkmJihXLlZIPSEwLFcuUyQ9ITAsdi5TKCJodG1sNV9zaW1wbGlmaWVkX2JhY2t1cF90aW1lb3V0X3NhYnJfbGl2ZSIpJiYoVy5DdT0hMCxXLmJOPVcuZlopKSxXLmg4PXYuUygiaHRtbDVfc2VydmVfc3RhcnRfc2Vjb25kc19zZWVrX2Zvcl9wb3N0X2xpdmVfc2FiciIpLFcuczU9di5TKCJodG1sNV9mbHVzaF9pbmRleF9vbl91cGRhdGVkX3RpbWVzdGFtcF9vZmZzZXQiKSxXLlk9Zy5ZTihEKSxXLm9UPXYuUygiaHRtbDVfaWdub3JlX3BhcnRpYWxfc2VnbWVudF9mcm9tX2xpdmVfcmVhZGFoZWFkIiksCnYuUygiaHRtbDVfaW5jbHVkZV9wYXJ0aWFsX3NlZ21lbnRfZm9yX2p1bWJvX2xsIikmJmhEKEQpJiYoVy5vVD0hMSksVy5zMz12LlMoImh0bWw1X3VzZV9ub25fYWN0aXZlX2Jyb2FkY2FzdF9mb3JfcG9zdF9saXZlIiksVy5sbj12LlMoImh0bWw1X2NlbnRyYWxpemVkX3BsYXllcl90aW1lX2xpdmUiKSYmZy5ZTihEKSYmRC5pc0xpdmVQbGF5YmFja3x8di5TKCJodG1sNV91c2VfY2VudHJhbGl6ZWRfcGxheWVyX3RpbWUiKSYmZy5ZTihEKSxXLkdDPXYuUygiaHRtbDVfbG9nX2NlbnRyYWxpemVkX3BsYXllcl90aW1lIiksVy5BeD12LlMoImh0bWw1X3VzZV9jZW50cmFsaXplZF9wbGF5ZXJfdGltZV9maXhlcyIpJiZnLllOKEQpLFcuclc9di5TKCJodG1sNV9jb25zdW1lX29uZXNpZV9zYWJyX3NlZWsiKSxXLnR3PXYuUygiaHRtbDVfZW5hYmxlX3NhYnJfc2Vla19sb2FkZXJfcmVmYWN0b3IiKSxELmVuYWJsZVNlcnZlclN0aXRjaGVkRGFpJiYoVy5VMT0hMCxXLldLPXYuUygiaHRtbDVfcmVzZXRfc2VydmVyX3N0aXRjaF9zdGF0ZV9mb3Jfbm9uX3NhYnJfc2VlayIpLApXLmllPXYuUygiaHRtbDVfcmVtb3ZlX3NzZGFpX2FwcGVuZF9wYXVzZSIpJiYhRC5ERigpLFcueXc9di5TKCJodG1sNV9zc2RhaV9sb2dfc3NldnRfaW5fbG9hZGVyX3RpbWVycyIpKSxXLkVaPXYuV1goKSxXLmxhdGVuY3lDbGFzcz1ELmxhdGVuY3lDbGFzcyxXLm1EPSFELnpXKCkmJnYuUygiaHRtbDVfcHJlYnVmZmVyX2luc3RyZWFtX21lZGlhX3ZvZCIpKTtXLnlFPWcubU8oRCk7Vy5Rcj12LlMoImh0bWw1X2VuYWJsZV9zYWJyX290Zl9pbl9jbGllbnQiKTtpZihELk5QKCl8fEQuaXNBZCgpKVcuZ089ITE7RC56VygpJiZ2LmV4cGVyaW1lbnRzLlp0KCkuTi5RUShqdk0pJiYoYj1ELmxDPy5nZXQoImlkIikpJiZiLmluY2x1ZGVzKCIlN0UiKSYmKFcuV2k9ITApO1NKKHYuVyxBVC5CSVRSQVRFKSYmKFcuTnM9TmFOKTtpZihiPWcuZE0odi5leHBlcmltZW50cywiaHRtbDVfcmVxdWVzdF9zaXplX21heF9rYiIpKVcuSEo9YioxMDI0O2lmKHYuVy5KKVcucFI9IjsgIitBVC5FWFBFUklNRU5UQUwubmFtZSsKIj1hbGxvd2VkIjtlbHNlIGlmKHYuZXhwZXJpbWVudHMudzAoKS5OLlFRKENSaSkmJmcuZDgoKSl7bGV0IHtuYW1lOmgsdmFsaWQ6eH09QVQuVFVOTkVMTU9ERTtXLnBSPWA7ICR7aH09JHt4fWB9dj1ELnNlcnZlclBsYXliYWNrU3RhcnRDb25maWc7dj8uZW5hYmxlJiZ2Py5wbGF5YmFja1N0YXJ0UG9saWN5JiYoVy5GZT0hMCxsUyhXLHYucGxheWJhY2tTdGFydFBvbGljeSwyKSk7dj1CNFUobik7bi5EYi5UaSgpO2E6e0Q9bi50Yi5RcDtpZihiPW4udmlkZW9EYXRhLnZpZGVvSWQpaWYoaz1ELk4uZ2V0KGIpKXtELk4ucmVtb3ZlKGIpO0Q9azticmVhayBhfUQ9dm9pZCAwfW4ubG9hZGVyPW5ldyBnLlc4KG4sbi5paixXLG4udmlkZW9EYXRhLk4sbi52aWRlb0RhdGEuVyxUWShuKSx2LG4udmlkZW9EYXRhLmVuYWJsZVNlcnZlclN0aXRjaGVkRGFpLEQsbi52aWRlb0RhdGEuelIpO2lmKG4udmlkZW9EYXRhLlMoImh0bWw1X2Rpc2FibGVfcHJlbG9hZF9mb3Jfc3NkYWlfd2l0aF9wcmVyb2xsIikmJgpuLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFjayYmbi5PUCgpKVc9ITA7ZWxzZSBpZihXPW4uTkwpVz1nLms2KG4uQikmJm4udmlkZW9EYXRhLmlzTGl2ZVBsYXliYWNrJiYoIW4uQi5TKCJodG1sNV9hbGxvd19tdWx0aXZpZXdfdGlsZV9wcmVsb2FkIil8fCFuLnZpZGVvRGF0YS5saXZlUHJlbG9hZHx8bi5CLlp0KCkuTi5RUShIcCkpO24ubG9hZGVyLmluaXRpYWxpemUobi5nZXRDdXJyZW50VGltZSgpLFRZKG4pLFcpO24udmlkZW9EYXRhLnByb2JlVXJsJiYobi5sb2FkZXIuQnY9bi52aWRlb0RhdGEucHJvYmVVcmwpO2lmKG4uaWwubGVuZ3RofHxuLk5MKW4udmlkZW9EYXRhLmNvdG58fG4ucEMoITEpO21vKG4uZGEsbi5sb2FkZXIpO24uc1UmJihuLmxvYWRlci5FVyhuLnNVKSxuLlUoInNkYWkiLHtzZGw6MX0pKTtnLm1NKG4udmlkZW9EYXRhKSYmKG49bi5sb2FkZXIsbi5wb2xpY3kueGg9bi5wb2xpY3kuVnMpfTsKUWE9ZnVuY3Rpb24obil7bi5xTigpO2lmKCFuLmpILmZpbmlzaGVkJiZuLkxSLmZpbmlzaGVkJiYhbi5wbGF5ZXJTdGF0ZS5OKDEyOCkmJiFuLmlsLmxlbmd0aCl7aWYoIW4ud0kuc3RhcnRlZCl7dmFyIFc9bi53STtXLnN0YXJ0ZWQ9ITA7Vy5KKCl9aWYoIW4uSm4oKSl7bi5sb2FkZXImJihuLm5VPW4ubG9hZGVyLnpzKCEwKT4wKTtuLmpILmZpbmlzaGVkfHwobi5qSC5maW5pc2hlZD0hMCk7Vz1uLlMoImh0bWw1X29uZXNpZV9saXZlIikmJm4ubG9hZGVyJiYhaXNOYU4obi5sb2FkZXIuQ0gpOyFuLnZpZGVvRGF0YS5pc0xpdmVQbGF5YmFja3x8bi52aWRlb0RhdGEuVEM+MCYmIUk0KG4udmlkZW9EYXRhKXx8V3x8SWMobil8fChuLnNlZWtUbyhuLnJJKCkse3FkOiJ2aWRlb3BsYXllcl9yZWFkeWluZyIsc2Vla1NvdXJjZToxOH0pLG4uaXNCYWNrZ3JvdW5kKCkmJihuLlRsPSEwKSk7Vz1uLkJYO2lmKFcucW9lKXtXPVcucW9lO2xldCBiPVcucHJvdmlkZXIudmlkZW9EYXRhLHY9Vy5wcm92aWRlci5COwpmb3IodmFyIEQgb2Ygdi5reSluQyhXLEQpO2lmKFcucHJvdmlkZXIuUygiaHRtbDVfZW5hYmxlX3FvZV9jYXRfbGlzdCIpKWZvcihsZXQgayBvZiBiLmtLKW5DKFcsayk7ZWxzZSBiLmt5JiZuQyhXLFcucHJvdmlkZXIudmlkZW9EYXRhLmt5KTtiLnpXKCkmJihEPWIuTixJNChiKSYmbkMoVywibWFuaWZlc3RsZXNzIiksRCYmb28oRCkmJm5DKFcsYGxpdmUtc2VnbWVudC0ke29vKEQpLnRvRml4ZWQoMSl9YCkpO2cuWU4oYik/bkMoVywic2FiciIpOlcueiQoeHAoYikpO2lmKHB6KGIpfHxiLkRGKCkpYi5ERigpJiZuQyhXLCJzc2EiKSxuQyhXLCJsaWZhIik7TkkoYikmJm5DKFcsImNkbSIpO2IuZ2F0ZXdheUV4cGVyaW1lbnRHcm91cCYmKEQ9Yi5nYXRld2F5RXhwZXJpbWVudEdyb3VwLEQ9PT0iRVhQRVJJTUVOVF9HUk9VUF9TUElLWV9BRF9CUkVBS19FWFBFUklNRU5UIj9EPSJzcGthZHRydCI6RD09PSJFWFBFUklNRU5UX0dST1VQX1NQSUtZX0FEX0JSRUFLX0NPTlRST0wiJiYoRD0KInNwa2FkY3RybCIpLG5DKFcsRCkpO3YuViE9PSJ5dCImJlcuSi5zZXQoImxlbiIsW2IubGVuZ3RoU2Vjb25kcy50b0ZpeGVkKDIpXSk7Yi5jb3RuJiYhT1MoYikmJlF1KFcsITApO3YuV1goKSYmKEQ9UlFVKCkpJiZXLlUoImNibHQiLHttOkR9KTt2LlMoImh0bWw1X2xvZ19zY3JlZW5fZGlhZ29uYWwiKSYmVy5VKCJjYmx0ZGlhZyIse3Y6d2luZG93Lkg1dmNjU2NyZWVuPy5HZXREaWFnb25hbD93aW5kb3cuSDV2Y2NTY3JlZW4uR2V0RGlhZ29uYWwoKTowfSl9bi5XSigicGxheWJhY2tyZWFkeSIpO2cudlAoInBsX2MiLG4ubVEudGltZXJOYW1lKXx8KG4ubVEudGljaygicGxfYyIpLGcuZ18oInBsX2MiLHZvaWQgMCwidmlkZW9fdG9fYWQiKSk7Zy52UCgicGJyIixuLm1RLnRpbWVyTmFtZSl8fChuLm1RLnRpY2soInBiciIpLGcuZ18oInBiciIsdm9pZCAwLCJ2aWRlb190b19hZCIpKX19fTsKVmE9ZnVuY3Rpb24obixXKXtuLnBsYXllclN0YXRlLk4oMTI4KXx8KG4uQk4od1Mobi5wbGF5ZXJTdGF0ZSwxMDI4LDkpKSxuLlUoImRvbXBhdXNlZCIse3I6V30pLG4uV0ooIm9uQXV0b3BsYXlCbG9ja2VkIikpfTsKZy5EVD1mdW5jdGlvbihuKXt2YXIgVz1UWShuKTtyZXR1cm4geEooVyl8fCFuLkRoP251bGw6Zy5sXyhuLkRoLk4udmlkZW9JbmZvcyxEPT5XLlgoRCkpfTsKdVY9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz1uLkJYLGg9bi52aWRlb0RhdGE7aC5KPUQ7dmFyIHg9Zy5EVChuKTtEPW5ldyBGck0oRCxXLHg/eC5pdGFnOiIiLGIsdik7aWYoay5xb2Upe2s9ay5xb2U7Yj12PWcuUmsoay5wcm92aWRlcik7eD1bRC5OLmlkLEQuSixrLnM1LEQucmVhc29uXTtrLkR0fHx4LnB1c2goTFRiKGssRCkpO0QudG9rZW4mJngucHVzaChELnRva2VuKTtnLndqKGssYiwidmZzIix4KTtrLnM1PUQuTi5pZDt4PWsucHJvdmlkZXIuTC5nZXRQbGF5ZXJTaXplKCk7aWYoeC53aWR0aD4wJiZ4LmhlaWdodD4wKXt4PVtNYXRoLnJvdW5kKHgud2lkdGgpLE1hdGgucm91bmQoeC5oZWlnaHQpXTtsZXQgTD1nLkhfKCk7TD4xJiZ4LnB1c2goTCk7Zy53aihrLGIsInZpZXciLHgpfWsuRHR8fChrLnByb3ZpZGVyLkIuV1goKSYmKG5DKGssInJxcyIpLG5DKGssInJxczIiKSksay5wcm92aWRlci52aWRlb0RhdGEuTiYmR18oay5wcm92aWRlci52aWRlb0RhdGEuTikmJmsuSi5zZXQoInByZWxvYWQiLApbIjEiXSkpO2suRHQ9ITA7ay5WPSEwO0QucmVhc29uPT09Im0iJiYrK2suc1Y9PT0xMDAmJmJtKGssMik7Zy53aihrLHYsInZwcyIsW2suTl0pO2suZSR8fGsucmVwb3J0U3RhdHModil9RD1uLmhVO0QuSj0wO0QuTj0wO24uV0ooImludGVybmFsdmlkZW9mb3JtYXRjaGFuZ2UiLGgsVz09PSJtIil9OwpUWT1mdW5jdGlvbihuKXtpZihuLkRoKXt2YXIgVz1uLmhVO3ZhciBEPW4uRGg7bj1uLmcwKCk7dmFyIGI9Wm1oKFcpO2lmKHhKKGIpKXtpZihiPVcuTWgoRCkuY29tcG9zZSh5SXIoVyxEKSkuY29tcG9zZShpbXIoVyxEKSkuY29tcG9zZShaVihXLEQudmlkZW9EYXRhKSkuY29tcG9zZShVWChXLEQudmlkZW9EYXRhLEQpKS5jb21wb3NlKHkzKFcsRCkpLmNvbXBvc2UoaW0oVyxEKSkseEoobil8fFcuUygiaHRtbDVfYXBwbHlfcGJyX2NhcF9mb3JfZHJtIikpe3ZhciB2PWIuY29tcG9zZTtpZihXLlMoImh0bWw1X2Rpc2FibGVfdXN0cmVhbWVyX2NvbnN0cmFpbnRfZm9yX3NhYnIiKSYmZy5ZTihELnZpZGVvRGF0YSkpdmFyIGs9WVo7ZWxzZSBrPVcuTC51dSgpLFcuUygiaHRtbDVfdXNlX3ZpZGVvX3F1YWxpdHlfY2FwX2Zvcl91c3RyZWFtZXJfY29uc3RyYWludCIpJiZrJiZrLlFvPjAmJnhKKEQudmlkZW9EYXRhLkIzKSYmKGs9ay5RbyxELnZpZGVvRGF0YS5CMz1uZXcgYjMoMCxrLCExLAoidSIpKSxrPUQudmlkZW9EYXRhLkIzO2I9di5jYWxsKGIsayl9fWVsc2UgVy5TKCJodG1sNV9wZXJmX2NhcF9vdmVycmlkZV9zdGlja3kiKSYmKGI9Yi5jb21wb3NlKHkzKFcsRCkpKTtiPWIuY29tcG9zZShpbShXLEQpKTtXPUQudmlkZW9EYXRhLkxLLmNvbXBvc2UoYikuY29tcG9zZShELnZpZGVvRGF0YS5MSCkuY29tcG9zZShuKX1lbHNlIFc9WVo7cmV0dXJuIFd9Owp3c2k9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz1uLkJYLGg9bi52aWRlb0RhdGE7aWYoRCE9PWguWCl7dmFyIHg9IWguWDtoLlg9RDt2YXIgTD1XPT09Im0ifHxXPT09InQiO0x8fChXPXg/ImkiOiJhIik7Vz1uZXcgRnJNKEQsVywiIixiLHYpO2lmKGsucW9lKXtrPWsucW9lO0Q9Zy5SayhrLnByb3ZpZGVyKTtsZXQgRz1bXTtpZihXLk4uaWQhPT1rLkZGKXtiPVtXLk4uaWQsay5GRixXLnJlYXNvbl07dj1HO3ZhciBlPXYucHVzaDtsZXQgcj1bXSxOPWsucHJvdmlkZXIudmlkZW9EYXRhLmhnLk4sSD1XLk4uYXVkaW8/Lko/P04/LlFPO0g9PW51bGx8fGlzTmFOKEgpfHxyLnB1c2goYGZsLiR7SH1gKTtOJiYoTi5mb3JtYXRJZCYmTi5mb3JtYXRJZCE9PVcuTi5pZCYmay5VKCJhZ2MiLHtxb2VtaXNtYXRjaDoiMSIsYWdjX2ZtdDpOLmZvcm1hdElkLGFmbXQ6Vy5OLmlkfSksTi5weT09bnVsbHx8aXNOYU4oTi5weSl8fHIucHVzaChgdGwuJHtOLnB5fWApLE4uRHk9PW51bGx8fGlzTmFOKE4uRHkpfHwKci5wdXNoKGB2Zy4ke04uRHl9YCksTi53RyE9PTAmJnIucHVzaChgbm0uJHtOLndHfWApKTtlLmNhbGwodiwuLi5yKTtXLnJlYXNvbj09PSJpIiYmRy5wdXNoKExUYihrLFcpKTtHLmxlbmd0aD4wJiZiLnB1c2goRy5qb2luKCI7IikpO1cudG9rZW4mJmIucHVzaChXLnRva2VuKTtnLndqKGssRCwiYWZzIixiKTtrLkZGPVcuTi5pZH19bi5XSigiaW50ZXJuYWxhdWRpb2Zvcm1hdGNoYW5nZSIsaCwheCYmTCl9fTsKTXl4PWZ1bmN0aW9uKG4pe3ZhciBXPSJsb2Fkc3RhcnQgbG9hZGVkbWV0YWRhdGEgcGxheSBwbGF5aW5nIHByb2dyZXNzIHBhdXNlIGVuZGVkIHN1c3BlbmQgc2Vla2luZyBzZWVrZWQgdGltZXVwZGF0ZSBkdXJhdGlvbmNoYW5nZSByYXRlY2hhbmdlIGVycm9yIHdhaXRpbmcgcmVzaXplIi5zcGxpdCgiICIpO2ZvcihsZXQgRCBvZiBXKW4uczkuTk4obi5tZWRpYUVsZW1lbnQsRCxuLmlVLG4pO24uQi5EVCYmbi5tZWRpYUVsZW1lbnQuSygpJiYobi5zOS5OTihuLm1lZGlhRWxlbWVudCwid2Via2l0cGxheWJhY2t0YXJnZXRhdmFpbGFiaWxpdHljaGFuZ2VkIixuLnZrLG4pLG4uczkuTk4obi5tZWRpYUVsZW1lbnQsIndlYmtpdGN1cnJlbnRwbGF5YmFja3RhcmdldGlzd2lyZWxlc3NjaGFuZ2VkIixuLk9rLG4pKX07Ck9VaD1mdW5jdGlvbihuKXtpZihuLm1lZGlhU291cmNlKWlmKG4uSzEoKSxuLm1lZGlhU291cmNlLkspdHJ5e24uQi5XWCgpJiZuLlUoInJtcyIse2w6InZwcm1zIixzcjpuLnBnKCkscnM6bi5tZWRpYVNvdXJjZS5XKCl9KSxuLm1lZGlhU291cmNlLmNsZWFyKCksbi5tZWRpYUVsZW1lbnQ/LkhKKG4ubWVkaWFTb3VyY2UpLG4ubWVkaWFTb3VyY2U9bnVsbH1jYXRjaChEKXt2YXIgVz1uZXcgZy5ReChgRXJyb3Igd2hpbGUgY2xlYXJpbmcgTWVkaWEgU291cmNlIGluIFZpZGVvUGxheWVyOiAke0QubmFtZX0sICR7RC5tZXNzYWdlfWApO1c9QiQoVyk7bi5oYW5kbGVFcnJvcihXKTtuLm15KCl9ZWxzZSBuLm15KCl9Owpkcz1mdW5jdGlvbihuKXtuLkxBJiYobi5MQS5kaXNwb3NlKCksbi5MQT1udWxsKX07ClJwVT1mdW5jdGlvbihuKXtuLm1lZGlhRWxlbWVudCYmbi5tZWRpYUVsZW1lbnQuRTgoKSYmKG4uVFY9KDAsZy5SKSgpKTtuLkIudEc/Zy5uJCgoKT0+e2J2KG4pfSwwKTpidihuKX07CmJ2PWZ1bmN0aW9uKG4pe2lmKCFuLm1lZGlhU291cmNlPy5nWCgpKXtpZihuLm1lZGlhRWxlbWVudCl0cnl7bi5Mdz1uLm1lZGlhRWxlbWVudC5wbGF5VmlkZW8oKX1jYXRjaChXKXtWYShuLGBlcnIuJHtXfWApfWlmKG4uTHcpe2xldCBXPW4uTHc7Vy50aGVuKHZvaWQgMCxEPT57aWYoIShuLnBsYXllclN0YXRlLk4oNCl8fG4ucGxheWVyU3RhdGUuTigyNTYpfHxuLkx3IT09V3x8RCYmRC5uYW1lPT09IkFib3J0RXJyb3IiJiZELm1lc3NhZ2UmJkQubWVzc2FnZS5pbmNsdWRlcygibG9hZCIpKSl7bGV0IGI9InByb21pc2UiO0QmJkQubmFtZSYmKGIrPWA7bS4ke0QubmFtZX1gKTtWYShuLGIpO24uVzE9ITA7bi52aWRlb0RhdGEuZkI9ITB9fSl9fX07CkE2aj1mdW5jdGlvbihuLFc9ITEpe2lmKG4ubWVkaWFTb3VyY2UpcmV0dXJuIG4ubWVkaWFTb3VyY2UuajtRdmkobixXKTtyZXR1cm4gbi5VeigpPy50dygpfHxudWxsfTsKZDEyPWZ1bmN0aW9uKG4sVz0hMSl7dmFyIEQ9bnVsbDtuLnZpZGVvRGF0YS5XPy5OKCk/KEQ9QTZqKG4sVyksbi5sb2FkZXI/LnJlc3VtZSgpKTood3Mobiksbi52aWRlb0RhdGEuY0omJihEPW4udmlkZW9EYXRhLmNKLkooKSkpO3JldHVybiBEfTsKYXZaPWZ1bmN0aW9uKG4sVyl7aWYoVy5OLnZpZGVvLnF1YWxpdHk9PT0iYXV0byImJlcua0woKS5XKCkpaWYobi5TKCJodG1sNV9obHNfcmVwb3J0X3BzZXVkb19pdGFnIikmJm4udmlkZW9EYXRhLmhsc3ZwKXt2YXIgRD1uLlVKKCk7aWYoRCYmRC52aWRlb0hlaWdodD4wJiZELnZpZGVvV2lkdGg+MCl7dmFyIGI9RC52aWRlb0hlaWdodDtEPUQudmlkZW9XaWR0aDthOntuPW4uTEE/Lk4uZmxhdm9yPT09ImZhaXJwbGF5Ij9WeVU6YzZaO2Zvcih2IG9mIG4paWYoYj49di5taW5IZWlnaHQpe3ZhciB2PXYuaXRhZzticmVhayBhfXY9IiJ9aWYodilyZXR1cm4gbmV3IG11KHYsImFwcGxpY2F0aW9uL3gtbXBlZ1VSTCIse3ZpZGVvOm5ldyBIUihELGIpfSl9fWVsc2UgaWYobi52aWRlb0RhdGEubnUpZm9yKGIgb2Ygbi52aWRlb0RhdGEubnUpaWYoYi5nZXRIZWlnaHQoKT09PW4uejEmJmIuTi52aWRlby5xdWFsaXR5IT09ImF1dG8iKXJldHVybiBiLmtMKCk7cmV0dXJuIFcua0woKX07Cm5CQz1mdW5jdGlvbihuKXtyZXR1cm4hIShuLlMoImh0bWw1X25hdGl2ZV9hdWRpb190cmFja19zd2l0Y2hpbmciKSYmZy5HbiYmbi52aWRlb0RhdGEuSj8uVygpKX07ClcxaT1mdW5jdGlvbihuKXtpZighbkJDKG4pKXJldHVybiExO249bi5tZWRpYUVsZW1lbnQ/LmF1ZGlvVHJhY2tzKCk7cmV0dXJuISEobiYmbi5sZW5ndGg+MSl9OwpiNHQ9ZnVuY3Rpb24obil7dmFyIFc9RGdDKG4pO2lmKFcpe3ZhciBEPXY4W1ddfHxXO3JldHVybiBuLnZpZGVvRGF0YS5nZXRBdmFpbGFibGVBdWRpb1RyYWNrcygpLmZpbmQoYj0+Yi5rWi5nZXROYW1lKCk9PT1EKX19OwpEZ0M9ZnVuY3Rpb24obil7aWYobj1uLm1lZGlhRWxlbWVudD8uYXVkaW9UcmFja3MoKSlmb3IobGV0IFc9MDtXPG4ubGVuZ3RoOysrVyl7bGV0IEQ9bltXXTtpZihELmVuYWJsZWQpcmV0dXJuIEQubGFiZWx9fTsKdkIyPWZ1bmN0aW9uKG4pe3ZhciBXPW4ubWVkaWFFbGVtZW50Py5hdWRpb1RyYWNrcygpO2lmKFcpe3ZhciBEPVtdO2ZvcihsZXQgdj0wO3Y8Vy5sZW5ndGg7Kyt2KXt2YXIgYj1XW3ZdO2I9bmV3IFdBKGIubGFiZWwsbmV3IHdQKHY4W2IubGFiZWxdfHxiLmxhYmVsLGIubGFiZWwsITEpKTtELnB1c2goYil9bi52aWRlb0RhdGEudm49RH19OwpCNFU9ZnVuY3Rpb24obil7dmFyIFcsRD1uLnZpZGVvRGF0YS5nZXRBdmFpbGFibGVBdWRpb1RyYWNrcygpLGI9bi5CLkhKO2ImJihXPUQuZmluZCh2PT52LmdldExhbmd1YWdlSW5mbygpLmlkPT09YikpOwppZihuLkIuZXhwZXJpbWVudHMuRXEoImVuYWJsZV9hdWRpb19kZXNjcmlwdGlvbl9zZXR0aW5nIikmJmcubzkoKS5RUSgxOTgpKWZvcihsZXQgdiBvZiBEKWlmKHYuail7Vz12O2JyZWFrfW4uWnQoKS5OLlFRKGtxTSkmJm4udmlkZW9EYXRhLmNvdG4mJihXPUQuZmluZCh2PT4hIXYuVikpOwpXfHwobj1uLmdldEF1ZGlvVHJhY2soKSxXPW4ua1ouaXNEZWZhdWx0P3ZvaWQgMDpuKTtyZXR1cm4gV307ClF2aT1mdW5jdGlvbihuLFc9ITEpe3RyeXtnLmQ4KCkmJm4udmlkZW9EYXRhLm1WKCkmJm4ubWVkaWFFbGVtZW50LlBYKCk7bGV0IGI9bi5veSgpLHY9bi5DZCgpO2lmKG4ubWVkaWFFbGVtZW50LmlzVmlldygpJiZuLm1lZGlhRWxlbWVudC5NZCYmKCFuLkZTKCl8fCFuLm1lZGlhRWxlbWVudC5ZJChiLHYpKSl7bi5CLldYKCkmJm4uVSgidXNtIix7ZmFsbGJhY2s6ITAscmVhc29uOm4uRlMoKT8iY29kZWMiOiJwb2xpY3kifSk7bGV0IGs9bi5tZWRpYUVsZW1lbnQubWVkaWFFbGVtZW50O2s/LlBYKCk7az8uc3RvcFZpZGVvKCk7bi5kYS5zZXRNZWRpYUVsZW1lbnQobnVsbCk7bi5zZXRNZWRpYUVsZW1lbnQoaywhMCl9dmFyIEQ9bi5tZWRpYUVsZW1lbnQuVXooYix2KX1jYXRjaChiKXtpZihLQyhuLkFJLCJodG1sNS5taXNzaW5nYXBpIix7dXBkYXRlTXM6IjEifSkpcmV0dXJuO2NvbnNvbGUuZXJyb3IoIndpbmRvdy5VUkwgb2JqZWN0IG92ZXJ3cml0dGVuIGJ5IGV4dGVybmFsIGNvZGUiLApiKTtuLlBWKCJodG1sNS5taXNzaW5nYXBpIiwyLCJIVE1MNV9OT19BVkFJTEFCTEVfRk9STUFUU19GQUxMQkFDSyIsInVwZGF0ZU1zLjEiKTtyZXR1cm59bi5ubShELCExLCExLFcpfTsKaExaPWZ1bmN0aW9uKG4sVz0hMSl7aWYobi5sb2FkZXIpe24udmlkZW9EYXRhLmVuYWJsZVNlcnZlclN0aXRjaGVkRGFpJiZuLmxvYWRlci5rSSgpO2xldCBEPW4uZ2V0Q3VycmVudFRpbWUoKS1uLlNXKCk7bi5sb2FkZXIuc2VlayhELHtBTTpXfSkuc1AoKCk9Pnt9KX1lbHNlIGNkKG4sKCk9PntuLnFOKCl8fG4ubG9hZGVyfHxvQXQobil9KX07CkwxYj1mdW5jdGlvbihuLFcsRD0hMSxiPSExLHY9ITEpeyFuLm1lZGlhU291cmNlfHxXJiZuLm1lZGlhU291cmNlIT09V3x8KFc9bi5nZXREdXJhdGlvbigpLCFXJiZJNChuLnZpZGVvRGF0YSkmJihXPTI1MjAwLG4ubG4oKSYmKFc9NDY4MDApKSxuLm1lZGlhU291cmNlLmlzVmlldz9XPm4ubWVkaWFTb3VyY2UuZ2V0RHVyYXRpb24oKSYmeGdaKG4sVyk6eGdaKG4sVyksVz0oKT0+e24ucU4oKXx8KEltaShuLmxvYWRlcixuLm1lZGlhU291cmNlLEQsYix2KSxuLldKKCJtZWRpYXNvdXJjZWF0dGFjaGVkIikpfSxuLmxvYWRlcj9XKCk6Y2QobixXKSl9Owp4Z1o9ZnVuY3Rpb24obixXKXtuLm1lZGlhU291cmNlJiYobi5tZWRpYVNvdXJjZS5hVChXKSxuLmxvYWRlcj8uaFcoVykpfTsKZUxoPWZ1bmN0aW9uKG4sVyl7aWYobi5CLldYKCkmJm4ubWVkaWFFbGVtZW50KXtsZXQgRD1uLm1lZGlhRWxlbWVudC55cigpO0Qub210PShuLm1lZGlhRWxlbWVudC5nZXRDdXJyZW50VGltZSgpK24uU1coKSkudG9GaXhlZCgzKTtELnBzPW4ucGxheWVyU3RhdGUuc3RhdGUudG9TdHJpbmcoMTYpO0QucnQ9KGcuUmsobi5CWC5wcm92aWRlcikqMUUzKS50b0ZpeGVkKCk7RC5lPVc7bi5CRltuLmtRKyslNV09RH19OwpnQnI9ZnVuY3Rpb24obil7aWYoZy51YigiY29iYWx0IikmJmcudWIoIm5pbnRlbmRvIHN3aXRjaCIpKXt2YXIgVz0hd2luZG93Lm1hdGNoTWVkaWEoInNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDcyMHB4KSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAyMDBkcGkpIikubWF0Y2hlcztuLlUoIm54ZG9jayIse2Q6V30pfX07ClhhUz1mdW5jdGlvbihuKXtEcihuLm53KTtrUChuKXx8KG4ubnc9VzAoKCk9PmtQKG4pLDEwMCkpfTsKa1A9ZnVuY3Rpb24obil7dmFyIFc9bi5tZWRpYUVsZW1lbnQ7VyYmbi5BbCYmIW4udmlkZW9EYXRhLlkmJiFnLnZQKCJ2ZnAiLG4ubVEudGltZXJOYW1lKSYmVy5YKCk+PTImJiFXLmlzRW5kZWQoKSYmTSQoVy5KKCkpJiZuLm1RLnRpY2soInZmcCIpO3JldHVybihXPW4ubWVkaWFFbGVtZW50KSYmIW4udmlkZW9EYXRhLlkmJlcuZ2V0RHVyYXRpb24oKT4wJiYoVy5pc1BhdXNlZCgpJiZXLlgoKT49MiYmTSQoVy5KKCkpJiYoZy52UCgicGJwIixuLm1RLnRpbWVyTmFtZSl8fG4ubVEudGljaygicGJwIiksIW4udmlkZW9EYXRhLkR0fHxuLlZ0fHxXLmlzU2Vla2luZygpfHwobi5WdD0hMCxuLldKKCJvblBsYXliYWNrUGF1c2VBdFN0YXJ0IikpKSxXPVcuZ2V0Q3VycmVudFRpbWUoKSxxOShuLlZlLFcpJiYoIW4udmlkZW9EYXRhLlJvfHwhbi5wbGF5ZXJTdGF0ZS5OKDE2KSkpPyhuLmUyKCksITApOiExfTsKaDU9ZnVuY3Rpb24obixXKXtuLkIuUygiaHRtbDVfbG9nX3JlYnVmZmVyX3JlYXNvbiIpJiYoVz17cjpXLGxhY3Q6Zy52SSgpfSxuLm1lZGlhRWxlbWVudCYmKFcuYmg9bi5tZWRpYUVsZW1lbnQuenMoKSksbi5VKCJidWZyZWFzb24iLFcpKX07CnFhVT1mdW5jdGlvbihuKXtuLkJYLm9uUHJvZ3Jlc3MoKTtpZihnLkRQKG4udmlkZW9EYXRhKSYmRGF0ZS5ub3coKT5uLmhhKzYyODMpe2lmKG4udmlkZW9EYXRhLk4mJiFFayhuLnZpZGVvRGF0YS5OKSl7dmFyIFc9bi5CWDtpZihXLnFvZSl7Vz1XLnFvZTt2YXIgRD1XLnByb3ZpZGVyLkwuSEsoKSxiPWcuUmsoVy5wcm92aWRlcik7VnUoVyxiLEQpO2xldCB2PUQuVztEPUQuWDtpc05hTih2KXx8KCFpc05hTihEKSYmRD9nLndqKFcsYiwiZTJlbCIsW3YudG9GaXhlZCgzKSxELnRvRml4ZWQoMyldKTpnLndqKFcsYiwiZTJlbCIsW3YudG9GaXhlZCgzKV0pKX19Vz1nLkdsKG4uQik7Yj1uLlMoImh0bWw1X2Fsd2F5c19sb2dfcmF3bGF0Iik7KFd8fGIpJiZuLlUoInJhd2xhdCIse2w6Wjcobi5GNSwicmF3bGl2ZWxhdGVuY3kiKS50b0ZpeGVkKDMpfSk7bi5oYT1EYXRlLm5vdygpfW4udmlkZW9EYXRhLkomJm4udmlkZW9EYXRhLkouVygpJiYoVz1uLlVKKCkpJiZXLnZpZGVvSGVpZ2h0IT09Cm4uejEmJihuLnoxPVcudmlkZW9IZWlnaHQsdVYobiwiYSIsYXZaKG4sbi52aWRlb0RhdGEuY0opKSl9OwpHcU09ZnVuY3Rpb24obil7aWYobi5CLldYKCkpe24uQkYuc29ydCgoVyxEKT0+K1cucnQtK0QucnQpOwpmb3IobGV0IFcgb2Ygbi5CRiluLlUoInZwZSIsT2JqZWN0LmFzc2lnbih7dDpXLnJ0fSxXKSk7bi5CRj1bXTtuLmtRPTB9fTsKenBpPWZ1bmN0aW9uKG4sVyl7bi5tUS50aWNrKCJ2dGEiKTtnLmdfKCJ2dGEiLHZvaWQgMCwidmlkZW9fdG9fYWQiKTtuLmdldEN1cnJlbnRUaW1lKCk+MCYmUnlpKG4uZGEsbi5nZXRDdXJyZW50VGltZSgpKTtuLm1lZGlhRWxlbWVudC5EKFcpO24ubWVkaWFTb3VyY2UmJmJRKDQpOyFuLnZpZGVvRGF0YS5ZJiZuLnBsYXllclN0YXRlLmlzT3JXaWxsQmVQbGF5aW5nKCkmJm4uQl8uc3RhcnQoKTtuQkMobikmJihXPW4ubWVkaWFFbGVtZW50Py5hdWRpb1RyYWNrcygpKSYmKFcub25hZGR0cmFjaz0oKT0+e3ZCMihuKX0sVy5vbnJlbW92ZXRyYWNrPSgpPT57dkIyKG4pfSxXLm9uY2hhbmdlPSgpPT57bi5XSigiaW50ZXJuYWxhdWRpb2Zvcm1hdGNoYW5nZSIsbi52aWRlb0RhdGEsITApfSl9Owp0aVM9ZnVuY3Rpb24obil7bj1uLmFwaS5nZXRQbGF5ZXJTdGF0ZU9iamVjdCgpO249bi5pc0N1ZWQoKXx8bi5pc0Vycm9yKCk/Im5vbmUiOm4uaXNPcldpbGxCZVBsYXlpbmcoKT8icGxheWluZyI6InBhdXNlZCI7bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlPW59OwokZ0M9ZnVuY3Rpb24obil7aWYobi5OKWlmKG4uYXBpLmdldFZpZGVvRGF0YSgpLmlzTGl2ZVBsYXliYWNrKXRyeXt4UCh7ZHVyYXRpb246SW5maW5pdHl9KX1jYXRjaChXKXt4UCgpfWVsc2V7aWYobi5hcGkuZ2V0VmlkZW9EYXRhKCk/LnpLKCkpe2xldCBXPW4uYXBpLmdldFByb2dyZXNzU3RhdGUoKS5zZWVrYWJsZUVuZCxEPU1hdGgubWluKG4uYXBpLmdldEN1cnJlbnRUaW1lKCksVyk7aWYoVyYmTnVtYmVyLmlzRmluaXRlKEQpKXt4UCh7ZHVyYXRpb246VyxwbGF5YmFja1JhdGU6bi5hcGkuZ2V0UGxheWJhY2tSYXRlKCkscG9zaXRpb246RH0pO3JldHVybn19eFAoKX19OwpMYT1mdW5jdGlvbihuLFcpe3RyeXtuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnNldEFjdGlvbkhhbmRsZXIobixXKX1jYXRjaChEKXt9fTsKclBoPWZ1bmN0aW9uKG4pe3ZhciBXPVtdO2lmKCFufHwhbi50aHVtYm5haWxzKXJldHVybiBXO2ZvcihsZXQgRCBvZiBuLnRodW1ibmFpbHMpRC51cmwmJighRC53aWR0aHx8RC53aWR0aDw9MHx8IUQuaGVpZ2h0fHxELmhlaWdodDw9MHx8Zy5qSShELnVybCkmJlcucHVzaCh7c3JjOkQudXJsfHwiIixzaXplczpgJHtELndpZHRofXgke0QuaGVpZ2h0fWAsdHlwZToiaW1hZ2UvanBlZyJ9KSk7cmV0dXJuIFd9OwpzVVM9ZnVuY3Rpb24obil7TGEoInBsYXkiLCgpPT57bi5hcGkucGxheVZpZGVvKCk7ZWwobil9KTsKTGEoInBhdXNlIiwoKT0+e24uYXBpLnBhdXNlVmlkZW8oKTtlbChuKX0pOwpMYSgic2Vla2JhY2t3YXJkIiwoKT0+e24uYXBpLnNlZWtCeSgtNSpuLmFwaS5nZXRQbGF5YmFja1JhdGUoKSk7ZWwobil9KTsKTGEoInNlZWtmb3J3YXJkIiwoKT0+e24uYXBpLnNlZWtCeSg1Km4uYXBpLmdldFBsYXliYWNrUmF0ZSgpKTtlbChuKX0pOwpMYSgic2Vla3RvIixXPT57Vz1XLnNlZWtUaW1lO1chPW51bGwmJm4uYXBpLnNlZWtUbyhXKTtlbChuKX0pfTsKZWw9ZnVuY3Rpb24obil7bi5hcGkuUygid2ViX3Jlc2V0X2xhY3Rfb25fbWVkaWFfYWN0aW9ucyIpJiZuLmFwaS51cGRhdGVMYXN0QWN0aXZlVGltZSgpfTsKeFA9ZnVuY3Rpb24obil7bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRQb3NpdGlvblN0YXRlKG4pfTsKcGFNPWZ1bmN0aW9uKG4pe2lmKG49bi5hcGkuZ2V0VmlkZW9EYXRhKCk/LmdldFBsYXllclJlc3BvbnNlKCk/Lm92ZXJsYXk/LnBsYXllckNvbnRyb2xzT3ZlcmxheVJlbmRlcmVyKWlmKG49Zy53KG4uY29tcG9zaXRlVmlkZW9PdmVybGF5LE5LeCksbj8uc291cmNlcz8ubGVuZ3RoKWZvcihsZXQgVyBvZiBuPy5zb3VyY2VzKWlmKFcuaXNBY3RpdmUpcmV0dXJuIFd9OwpnOT1mdW5jdGlvbihuKXtuLk49dm9pZCAwO24uVy5jbGVhcigpO24uYXBpLk5wKCJjb21wb3NpdGVlbWJhcmdvIiwxKX07ClhZPWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEIG9mIFcpe1c9TnVtYmVyKEQucGxheWJhY2tSZWxhdGl2ZVBvc2l0aW9uPy51dGNUaW1lTXMpLzFFMztsZXQgYj1XK051bWJlcihELmR1cmF0aW9uPy5zZWNvbmRzKSx2PWBjb21wb3NpdGVfZW1iYXJnb18ke1d9YDtpZihELm9uRW50ZXIpe2xldCBrPUQub25FbnRlci5maWx0ZXIobi5WKTtrLmxlbmd0aCYmKG4uVy5zZXQodixrKSxuLmFwaS5hZGRVdGNDdWVSYW5nZSh2LFcsYiwiY29tcG9zaXRlZW1iYXJnbyIsITEpKX19fTsKSDR0PWZ1bmN0aW9uKG4sVyl7aWYobi5OPy5pZCE9PVcuaWQmJihuLmFwaS5xVyghMCksbi5XLmhhcyhXLmlkKSkpe3ZhciBEPW4uVy5nZXQoVy5pZCksYj1uLmFwaS5nZXRWaWRlb0RhdGEoKTtmb3IobGV0IHYgb2YgRClEPXYuY29tcG9zaXRlRW1iYXJnbz8uZW1iYXJnb1N0YXR1c1Rva2VuLGIucFIhPT1EJiYoYi5wUj1ELG4uYXBpLm5DKCkpLFlhVShuLFcpfX07CmZwaT1mdW5jdGlvbihuLFcpe2lmKG4uTj8uaWQ9PT1XLmlkJiYobi5hcGkucVcoITEpLG4uVy5oYXMoVy5pZCkpKXtpZihXPW4uYXBpLmdldFZpZGVvRGF0YSgpKVcucFI9dm9pZCAwO24uYXBpLm5DKCk7WWFVKG4pfX07CkpQTT1mdW5jdGlvbihuLFcpe24uY29tcG9zaXRlVmlkZW9TdGF0ZSE9PW51bGwmJihXLnBsYXliYWNrU3RhdGV8fChXLnBsYXliYWNrU3RhdGU9e30pLFcucGxheWJhY2tTdGF0ZS5jb21wb3NpdGVWaWRlb1N0YXRlPW4uY29tcG9zaXRlVmlkZW9TdGF0ZSl9OwpJcEM9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uYXBpLmdldFZpZGVvRGF0YSh7dm86ITF9KTtiPy5VKCJhdHJrY2hnIix7aWQ6VyxtOkR9KTtpZihiJiYhYi5JTSgpKXtEPW4uYXBpLmdldEF2YWlsYWJsZUF1ZGlvVHJhY2tzKCk7Zm9yKGxldCB2IG9mIEQpaWYodi5nZXRMYW5ndWFnZUluZm8oKS5nZXRJZCgpPT09Vyl7bi5hcGkuRygpLkhKPVc7YnJlYWt9fX07ClNhTT1mdW5jdGlvbihuLFcpe1chPT1uLksmJihuLks9VyxuLkouSigpLFcmJihuLkouTk4obi5hcGksIm1vZHVsZWNyZWF0ZWQiLEQ9Pnt2YXIgYj1wYU0obik7RD09PSJjYXB0aW9ucyImJmI/LnRvcExlZnRDb3JuZXJYIT09dm9pZCAwJiZiPy50b3BMZWZ0Q29ybmVyWSE9PXZvaWQgMCYmYj8ud2lkdGghPT12b2lkIDAmJmI/LmhlaWdodCE9PXZvaWQgMCYmbi5hcGkuVG4oe3RvcDpiLnRvcExlZnRDb3JuZXJZLHJpZ2h0OjEtYi50b3BMZWZ0Q29ybmVyWC1iLndpZHRoLGJvdHRvbToxLWIudG9wTGVmdENvcm5lclktYi5oZWlnaHQsbGVmdDpiLnRvcExlZnRDb3JuZXJYfSl9KSxuLkouTk4obi5hcGksZy5veSgiY29tcG9zaXRlZW1iYXJnbyIpLEQ9PntINHQobixEKX0pLG4uSi5OTihuLmFwaSxnLmR2KCJjb21wb3NpdGVlbWJhcmdvIiksRD0+e2ZwaShuLEQpfSksbi5KLk5OKG4uYXBpLCJoZWFydGJlYXRSZXF1ZXN0IixEPT57SlBNKG4sRCl9KSxuLkouTk4obi5hcGksImludGVybmFsYXVkaW9mb3JtYXRjaGFuZ2UiLAooRCxiKT0+e0lwQyhuLEQsYil9KSxuLkouTk4obi5hcGksIm9uUGxheWJhY2tBdWRpb0NoYW5nZSIsKCk9PntuLmFwaS5uQygpfSkpKX07CllhVT1mdW5jdGlvbihuLFcpe24uTj8uaWQhPT1XPy5pZCYmKG4uTiYmKG4uVy5kZWxldGUobi5OLmlkKSxuLmFwaS5VTyhbbi5OXSwxKSksbi5OPVcpfTsKQVAyPWZ1bmN0aW9uKG4pe249bj8ucXVhbGl0eURldGFpbHN8fFtdO3JldHVybiBnLmZ0KG4pJiYhQXJyYXkuaXNBcnJheShuKT9uOm4ucmVkdWNlKChXLHtrZXk6RCx2YWx1ZTpifSk9PntEJiZiJiYoV1tEXT1iKTtyZXR1cm4gV30se30pfTsKbWdoPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1bXSx2PVc/MTU2NTk1OjE1MTg3NDtmb3IobGV0IGggb2Ygbil7dmFyIGs9aC52aWRlbztuPXtmb3JtYXRJZDpoLmlkLHF1YWxpdHlMYWJlbDprLnF1YWxpdHlMYWJlbCxxdWFsaXR5OmsucXVhbGl0eSxpc1BsYXlhYmxlOld9O2lmKGs9RFtrLnF1YWxpdHlMYWJlbF0pbi5wYXlnYXRlZFF1YWxpdHlEZXRhaWxzPXtwYXlnYXRlZEluZGljYXRvclRleHQ6ay5wYXlnYXRlZEluZGljYXRvclRleHQsZW5kcG9pbnQ6ay5lbmRwb2ludCx2ZVR5cGU6dix0cmFja2luZ1BhcmFtczprLnRyYWNraW5nUGFyYW1zfTtiLnB1c2gobil9cmV0dXJuIGJ9OwpPNEM9ZnVuY3Rpb24obil7cVQoKSYmKG4ubVE9bi5hcGkuZUcoKSxuLk49bmV3IFk2LG4uVz0yLG4ubVEuU2woInB0X3Bpc2giKSx3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaz93aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+e0sxVShuKX0pOksxVShuKSl9OwpxVD1mdW5jdGlvbigpe3JldHVybiB3aW5kb3cuYW5kcm9pZCYmd2luZG93LmFuZHJvaWQud2VidmlldyYmd2luZG93LmFuZHJvaWQud2Vidmlldy5nZXRFeHBlcmltZW50YWxNZWRpYUludGVncml0eVRva2VuUHJvdmlkZXJ9OwpLMVU9ZnVuY3Rpb24obil7aWYocVQoKSl7bi5tUT1uLmFwaS5lRygpO24ubVEuU2woInB0X3BpcyIpO3RyeXt3aW5kb3cuYW5kcm9pZC53ZWJ2aWV3LmdldEV4cGVyaW1lbnRhbE1lZGlhSW50ZWdyaXR5VG9rZW5Qcm92aWRlcih7Y2xvdWRQcm9qZWN0TnVtYmVyOjg2ODYxODY3Njk1Mn0pLnRoZW4oVz0+e24uSj1XO24uTj8ucmVzb2x2ZSgpO24ubVEuU2woInB0X3BpZiIpfSkuY2F0Y2goVz0+e0dHKFcsInBsYXllcl9zdGFydCIpOwpuLm1RLlNsKCJwdF9waWUiKTtuLk4/LnJlamVjdChXKX0pfWNhdGNoKFcpe0dHKFcsInBsYXllcl9zdGFydF9jYXRjaCIpLG4uYXBpLlUoInBmZXMiLHt9KSxuLk4/LnJlamVjdChXKX19fTsKR0c9ZnVuY3Rpb24obixXKXtuLm1lc3NhZ2UmJmcuR3EoRXJyb3IoYCR7V31fJHtuLm1lc3NhZ2V9YCkpfTsKUGd4PWZ1bmN0aW9uKG4sVyl7aWYobi5KKXt2YXIgRD1XLnZpZGVvSWQ7bi5XPTM7bi5tUS5TbCgicHRfbXMiKTt0cnl7bi5KLnJlcXVlc3RUb2tlbihEKS50aGVuKGI9PntuLm1RLlNsKCJwdF9tZiIpO2lmKGI9Zy5kMShiKSlXLnpmPXtZdDpifX0pLmNhdGNoKGI9PntuLm1RLlNsKCJwdF9tZSIpOwpHRyhiLCJwbGF5ZXJfZ2VuZXJhdGUiKTtuLmhhbmRsZUVycm9yKGIsVyl9KX1jYXRjaChiKXtHRyhiLCJwbGF5ZXJfZ2VuZXJhdGVfY2F0Y2giKSxuLmhhbmRsZUVycm9yKGIsVyl9fX07Clo0eD1mdW5jdGlvbihuLFcpe2cueDYobi5hcGkuRygpKSYmKFc/bi5qLnNob3coKTpuLmouaGlkZSgpKX07CnlQaj1mdW5jdGlvbihuKXtuLlg8bi5KLmxlbmd0aD9VZzIobik6KG4uYXBpLmdldFBsYXllclN0YXRlT2JqZWN0KDEpLk4oMikmJihuLlY9ITApLG4uTj0hMCxuLlg9MCxuLkoubGVuZ3RoPTAsbi5hcGkuWDkoKSxuLk49ITEpfTsKRUJDPWZ1bmN0aW9uKG4pe3ZhciB7aW50ZXJzdGl0aWFsczpXfT1uLmFwaS5nZXRWaWRlb0RhdGEoKSxEPVtdO2ZvcihsZXQgTCBvZiBXKXtXPUQ7dmFyIGI9Vy5wdXNoLHY9bixrPUwucGxheWVyVmFycyxoPUwua3EseD1MLnRpbWU7bGV0IGU9YHl0by0ke3YuWSsrfWA7eD1uZXcgZy5sNSh4LHgse2lkOmUscHJpb3JpdHk6NyxuYW1lc3BhY2U6Inl0byJ9KTt2LktbZV09e3BsYXllclZhcnM6ayxwbGF5ZXJUeXBlOmh9O2IuY2FsbChXLHgpO1c9bi5hcGkuZ2V0VmlkZW9EYXRhKHtwbGF5ZXJUeXBlOjF9KTtXPU9iamVjdC5hc3NpZ24oe29hdXRoX3Rva2VuOlcub2F1dGhUb2tlbn0sTC5wbGF5ZXJWYXJzKTtuLmFwaS5wcmVsb2FkVmlkZW9CeVBsYXllclZhcnMoVyxMLmtxKX1uLmFwaS5naChELDEpfTsKVWcyPWZ1bmN0aW9uKG4pe3ZhciBXPW4uSltuLlhdO2lmKFcpe3ZhciB7cGxheWVyVmFyczpELHBsYXllclR5cGU6Yn09bi5LW1ddO24uTj0hMDtuLlgrKztXPW4uYXBpLmdldFZpZGVvRGF0YSh7cGxheWVyVHlwZToxfSk7Vz1PYmplY3QuYXNzaWduKHtvYXV0aF90b2tlbjpXLm9hdXRoVG9rZW59LEQpO24uYXBpLmxvYWRWaWRlb0J5UGxheWVyVmFycyhXLCEwLGIsITApO24uTj0hMX19OwpvQnI9YXN5bmMgZnVuY3Rpb24obixXLEQsYil7aWYoYXdhaXQgaTRVKG4pKXRyeXtsZXQgdj17a2V5Om5mKFcsInZpZGVvUGxheWJhY2tQb3NpdGlvbkVudGl0eSIpLHZpZGVvSWQ6VyxsYXN0UGxheWJhY2tQb3NpdGlvblNlY29uZHM6RC50b1N0cmluZygpLGxhc3RVcGRhdGVkQ2xpZW50VGltZXN0YW1wTXM6Yi50b1N0cmluZygpfTthd2FpdCBweXQobi5OLHYpO24uSiE9PVcmJihhd2FpdCB1angobiksbi5KPVcpfWNhdGNoKHYpe24uaGFuZGxlRXJyb3IoIkZhaWxlZCB0byBhZGQgb3IgdXBkYXRlIHBsYXliYWNrIHBvc2l0aW9uIix2KX1lbHNlIG4uYXBpLlUoInZwcGUiLHtwdToiYXUifSl9OwpkZ3c9ZnVuY3Rpb24obil7dmFyIFc9bi5hcGkuZ2V0VmlkZW9EYXRhKCk/LnZpZGVvSWQ7aWYoVyl7dmFyIEQ9bi5hcGkuZ2V0Q3VycmVudFRpbWUoKSxiPURhdGUubm93KCk7b0JyKG4sVyxELGIpfX07Cmk0VT1hc3luYyBmdW5jdGlvbihuKXtpZighbi5OKXt0NXx8KHQ1PUk5MigpKTtsZXQgVz1hd2FpdCB0NTtpZighVylyZXR1cm4hMTtuLk49V31yZXR1cm4hMH07CnVqeD1hc3luYyBmdW5jdGlvbihuKXtpZihuLk4pdHJ5e3ZhciBXPWF3YWl0IFVlKG4uTiwidmlkZW9QbGF5YmFja1Bvc2l0aW9uRW50aXR5IiksRD1hd2FpdCBVZShuLk4sIm1haW5WaWRlb0VudGl0eSIpO2xldCBiPW5ldyBTZXQoRC5tYXAoaD0+aC52aWRlb0lkKSksdj1XLmZpbHRlcihoPT4hYi5oYXMoaC52aWRlb0lkKSk7CnYuc29ydCgoaCx4KT0+TnVtYmVyKHgubGFzdFVwZGF0ZWRDbGllbnRUaW1lc3RhbXBNcyktTnVtYmVyKGgubGFzdFVwZGF0ZWRDbGllbnRUaW1lc3RhbXBNcykpOwpsZXQgaz1EYXRlLm5vdygpLTg2NEU1O1c9W107Zm9yKEQ9MDtEPHYubGVuZ3RoO0QrKyl7bGV0IGg9dltEXTsoRD49bi5XfHxOdW1iZXIoaC5sYXN0VXBkYXRlZENsaWVudFRpbWVzdGFtcE1zKTxrKSYmaC5rZXkmJlcucHVzaChoLmtleSl9Vy5sZW5ndGg+MCYmKG4uYXBpLlUoInZwcGUiLHtleHA6Vy5sZW5ndGh9KSxhd2FpdCBIaHcobi5OLFcpKX1jYXRjaChiKXtuLmhhbmRsZUVycm9yKCJGYWlsZWQgdG8gZXhwaXJlIHBsYXliYWNrIHBvc2l0aW9uIixiKX19Owp6TFo9ZnVuY3Rpb24obil7L1teYS16QS1aMC05Oy4hXy1dLy50ZXN0KG4pJiYobj1uLnJlcGxhY2UoL1srXS9nLCItIikucmVwbGFjZSgvW15hLXpBLVowLTk7LiFfLV0vZywiXyIpKTtyZXR1cm4gbn07CmxwMj1mdW5jdGlvbihuKXtyZXR1cm4gd2luZG93LlByb2ZpbGVyJiZuZXcgd2luZG93LlByb2ZpbGVyKG4pfTsKalVVPWZ1bmN0aW9uKG4pe3ZhciBXPW4uc2FtcGxlSW50ZXJ2YWwsRD1uLm1heEJ1ZmZlclNpemU7aWYoIW4ucU4oKSYmVz4wJiZEPjAmJiFuLk4mJm4uVzwxRTcpdHJ5e24uWD1scDIoe3NhbXBsZUludGVydmFsOlcsbWF4QnVmZmVyU2l6ZTpEfSksbi5YPy5hZGRFdmVudExpc3RlbmVyKCJzYW1wbGVidWZmZXJmdWxsIixhc3luYygpPT57YXdhaXQgVEt3KG4pO2pVVShuKX0pfWNhdGNoKGIpe24uTj16TFooYi5tZXNzYWdlKSxuLkooKX19OwpUS3c9YXN5bmMgZnVuY3Rpb24obil7dHJ5e2xldCBXPWF3YWl0IG4uWD8uc3RvcCgpO1cmJm4ubG9nVHJhY2UoVyl9Y2F0Y2goVyl7bi5OPXpMWihXLm1lc3NhZ2UpLG4uSigpfX07ClJMdD1mdW5jdGlvbihuLFcsRCl7aWYoRCl7dmFyIGI9IiI7Q2d0KG4sVykmJihiPVcsbi5hcGkuRygpLkhKPVcpO2ImJkJLQyhuLGIpJiYodnRDKG4uYXBpLGIpLFNrKGZFKG4uYXBpLkcoKSxuLmFwaS5nZXRWaWRlb0RhdGEoKT8uVigpKSx2PT57dmFyIGs9YjtGMXcodikhPT1rJiZ3YVMobixNaWkodikse3N0cmluZ1ZhbHVlOmt9KX0pKX19OwpRVVo9ZnVuY3Rpb24obil7QXMoKT8uc2l6ZSYmU2soZkUobi5hcGkuRygpLG4uYXBpLmdldFZpZGVvRGF0YSgpPy5WKCkpLFc9PnsoVz1GMXcoVykpJiZCS0MobixXKSYmKG4uYXBpLkcoKS5ISj1XKX0pfTsKQ2d0PWZ1bmN0aW9uKG4sVyl7bj1uLmFwaS5nZXRBdmFpbGFibGVBdWRpb1RyYWNrcygpO2ZvcihsZXQgRCBvZiBuKWlmKEQuZ2V0TGFuZ3VhZ2VJbmZvKCkuZ2V0SWQoKT09PVcpcmV0dXJuIEQ7cmV0dXJuIG51bGx9OwpCS0M9ZnVuY3Rpb24obixXKXtyZXR1cm4gVy5zcGxpdCgiLiIpWzBdIT09IiImJm4uYXBpLmdldFZpZGVvRGF0YSgpPy5JTSgpfTsKRjF3PWZ1bmN0aW9uKG4pe3tuPU1paShuKTtsZXQgVz1BcygpO249Vz9XLmdldChuKTp2b2lkIDB9cmV0dXJuIG4mJm4uc3RyaW5nVmFsdWU/bi5zdHJpbmdWYWx1ZToiIn07CndhUz1mdW5jdGlvbihuLFcsRCl7VmliKFt7c2V0dGluZ0l0ZW1JZDpXLHNldHRpbmdPcHRpb25WYWx1ZTpEfV0pO1NrKG4uWW8oKSxiPT57QkdNKGIsVyxEKX0pfTsKTWlpPWZ1bmN0aW9uKG4pe3ZhciBXPSg0ODQpLnRvU3RyaW5nKCk7biYmKFc9KDQ4MykudG9TdHJpbmcoKSk7cmV0dXJuIFd9OwpWaWI9ZnVuY3Rpb24obil7dmFyIFc9QXMoKTtXfHwoVz1uZXcgTWFwKTtmb3IobGV0IEQgb2YgbilXLnNldChELnNldHRpbmdJdGVtSWQsRC5zZXR0aW5nT3B0aW9uVmFsdWUpO249SlNPTi5zdHJpbmdpZnkoT2JqZWN0LmZyb21FbnRyaWVzKFcpKTtnLlBCKCJ5dC1wbGF5ZXItdXNlci1zZXR0aW5ncyIsbiwyNTkyRTMpfTsKcjk9ZnVuY3Rpb24obil7bi5qPW51bGw7bi5LPW51bGw7bi5OTigkUCgib3ZlciIpLG4uWjEpO24uTk4oInRvdWNoc3RhcnQiLG4uWSk7bi5OJiZuLk5OKCRQKCJkb3duIiksbi5WUSl9Owpzcj1mdW5jdGlvbihuKXtuLlguSighbi5OKX07CiRQPWZ1bmN0aW9uKG4pe3JldHVybiB3aW5kb3cubmF2aWdhdG9yLm1zUG9pbnRlckVuYWJsZWQ/YE1TUG9pbnRlciR7bi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke24uc3Vic3RyaW5nKDEpfWA6YG1vdXNlJHtufWB9OwpOVD1mdW5jdGlvbihuKXtyZXR1cm4gbiYmY1BiP2cuSksobil8fGRvY3VtZW50OmRvY3VtZW50fTsKYXB4PWZ1bmN0aW9uKG4sVyl7Zm9yKGxldCBEPTA7RDxXLmNoYW5nZWRUb3VjaGVzLmxlbmd0aDtEKyspe2xldCBiPVcuY2hhbmdlZFRvdWNoZXNbRF07aWYoYi5pZGVudGlmaWVyPT09bi5LKXJldHVybiBifXJldHVybiBudWxsfTsKblZyPWZ1bmN0aW9uKG4pe2NQYj1ufTsKV3F4PWZ1bmN0aW9uKG4sVyxEKXtmb3IobGV0IGIgb2YgVyl7Vz1OdW1iZXIoYi5wbGF5YmFja1JlbGF0aXZlUG9zaXRpb24/LnV0Y1RpbWVNcykvMUUzO2xldCB2PVcrTnVtYmVyKGIuZHVyYXRpb24/LnNlY29uZHMpLGs9YHN0YXRpb25zOiR7RH06JHtXfWA7bi5KLmhhcyhrKXx8KG4uSi5hZGQoayksYi5vbkVudGVyJiYobi5OW2tdPWIub25FbnRlciksbi5hcGkuYWRkVXRjQ3VlUmFuZ2UoayxXLHYsRCwhMSkpfX07CkpKPWZ1bmN0aW9uKG4pe3ZhciBXPS9jb2RlY3M9IihbXiJdKikiLy5leGVjKG4ubWltZVR5cGUpO3JldHVybiBXJiZXWzFdP1dbMV0rIiAoIituLml0YWcrIikiOm4uaXRhZ307CnBhPWZ1bmN0aW9uKG4sVyl7aWYobi5oZWlnaHRQeD09PS0xKXt2YXIgRD1udWxsO3RyeXtEPWcuekYoIkNBTlZBUyIpLG4uVz1ELmdldENvbnRleHQoIjJkIil9Y2F0Y2goaCl7fWlmKG4uVyl7dmFyIGI9bi5OKm4uc2FtcGxlQ291bnQ7bi5qPUQ7bi5qLndpZHRoPWI7bi5qLnN0eWxlLndpZHRoPWAke2J9cHhgO24uZWxlbWVudC5hcHBlbmRDaGlsZChuLmopfWVsc2UgZm9yKG4uc2FtcGxlQ291bnQ9TWF0aC5mbG9vcihuLnNhbXBsZUNvdW50LzQpLG4uTio9NCxEPTA7RDxuLnNhbXBsZUNvdW50O0QrKyliPWcuekYoIlNQQU4iKSxiLnN0eWxlLndpZHRoPWAke24uTn1weGAsYi5zdHlsZS5sZWZ0PWAke24uTipEfXB4YCxuLmVsZW1lbnQuYXBwZW5kQ2hpbGQoYil9RD1uLmVsZW1lbnQuY2xpZW50SGVpZ2h0fHwyNDtEIT09bi5oZWlnaHRQeCYmKG4uaGVpZ2h0UHg9RCxuLlcmJihEPSh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSk+MT8yOjEsbi5qLmhlaWdodD1uLmhlaWdodFB4KgpELG4uai5zdHlsZS5oZWlnaHQ9YCR7bi5oZWlnaHRQeH1weGAsbi5XLnNjYWxlKDEsRCkpKTtmb3IodmFyIHYgb2YgVyl7Vz1uO3ZhciBrPW4uaW5kZXg7Zm9yKEQ9MDtEKzI8Vy5WLmxlbmd0aCYmVy5WW0QrMV08djspRCsrO2I9TWF0aC5taW4oMSwodi1XLlZbRF0pLyhXLlZbRCsxXS1XLlZbRF0pKTtpZihXLlcpVy5XLmZpbGxTdHlsZT1XLktbRF0sVy5XLmZpbGxSZWN0KGsqVy5OLDAsVy5OLFcuaGVpZ2h0UHgpLFcuVy5maWxsU3R5bGU9Vy5LW0QrMV0sVy5XLmZpbGxSZWN0KGsqVy5OLFcuaGVpZ2h0UHgqKDEtYiksVy5OLFcuaGVpZ2h0UHgpO2Vsc2V7az1XLmVsZW1lbnQuY2hpbGRyZW5ba107bGV0IGg9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7Yj1NYXRoLm1pbihXLmhlaWdodFB4LE1hdGgucm91bmQoVy5oZWlnaHRQeCpiKmgpL2gpfHwwO2suc3R5bGUuaGVpZ2h0PWAke2J9cHhgO2suc3R5bGUuYmFja2dyb3VuZENvbG9yPVcuS1tEKzFdO2suc3R5bGUuYm9yZGVyVG9wPQpgc29saWQgJHtXLmhlaWdodFB4LWJ9cHggJHtXLktbRF19YH1uLmluZGV4PShuLmluZGV4KzEpJW4uc2FtcGxlQ291bnR9dj1uLmluZGV4O24uVz9uLlcuY2xlYXJSZWN0KHYqbi5OLDAsbi5OLG4uaGVpZ2h0UHgpOihuPW4uZWxlbWVudC5jaGlsZHJlblt2XSxuLnN0eWxlLmhlaWdodD0iMHB4IixuLnN0eWxlLmJvcmRlclRvcD0iIil9OwpiQng9ZnVuY3Rpb24obixXKXt2YXIgRD0hIW4uTj8uRTUoKTtuLk58fChuLk49bmV3IERRTShuLmFwaSksZy51KG4sbi5OKSxnLnJ2KG4uYXBpLG4uTi5lbGVtZW50LDQpKTtuLk4uTUwoVyk7dmFyIGI9R3Uobi5hcGkuSjUoKSk7YiYmYi5sb2FkZWQmJkQhPT1XJiZiLm5HKCk7VyYmbi5hcGkuVSgic2ZuIix7fSwhMCl9Owp2VjI9ZnVuY3Rpb24obixXKXtpZihuLlc9PT12b2lkIDApcmV0dXJuITE7aWYoVy5zZWVrRGlyZWN0aW9uPT09IlRJTUVMWV9BQ1RJT05fVFJJR0dFUl9ESVJFQ1RJT05fRk9SV0FSRCImJk51bWJlcihXLnNlZWtMZW5ndGhNaWxsaXNlY29uZHMpPT09NUUzKXtpZihXPW4uVz09PTcyKW4uWD0iVElNRUxZX0FDVElPTl9UUklHR0VSX1NPVVJDRV9LRVlCT0FSRF9GT1JXQVJEX1NFRUtfRklWRV9TRUNPTkRTIjtyZXR1cm4gV31pZihXLnNlZWtEaXJlY3Rpb249PT0iVElNRUxZX0FDVElPTl9UUklHR0VSX0RJUkVDVElPTl9GT1JXQVJEIiYmTnVtYmVyKFcuc2Vla0xlbmd0aE1pbGxpc2Vjb25kcyk9PT0xRTQpe2lmKFc9bi5XPT09NzQpbi5YPSJUSU1FTFlfQUNUSU9OX1RSSUdHRVJfU09VUkNFX0tFWUJPQVJEX0ZPUldBUkRfU0VFS19URU5fU0VDT05EUyI7cmV0dXJuIFd9cmV0dXJuIFcuc2Vla0RpcmVjdGlvbj09PSJUSU1FTFlfQUNUSU9OX1RSSUdHRVJfRElSRUNUSU9OX0JBQ0tXQVJEIiYmCk51bWJlcihXLnNlZWtMZW5ndGhNaWxsaXNlY29uZHMpPT09NUUzP24uVz09PTcxOlcuc2Vla0RpcmVjdGlvbj09PSJUSU1FTFlfQUNUSU9OX1RSSUdHRVJfRElSRUNUSU9OX0JBQ0tXQVJEIiYmTnVtYmVyKFcuc2Vla0xlbmd0aE1pbGxpc2Vjb25kcyk9PT0xRTQ/bi5XPT09NzM6ITF9Owprd3c9ZnVuY3Rpb24obil7bi50aW1lbHlBY3Rpb25zJiYobi5qPW4udGltZWx5QWN0aW9ucy5yZWR1Y2UoKFcsRCk9PntpZihELmN1ZVJhbmdlSWQ9PT12b2lkIDApcmV0dXJuIFc7V1tELmN1ZVJhbmdlSWRdPTA7cmV0dXJuIFd9LHt9KSl9OwpZUD1mdW5jdGlvbihuKXtuLmNKJiZjbGVhclRpbWVvdXQobi5jSik7bi5jSj12b2lkIDA7bi5PPSExfTsKZmE9ZnVuY3Rpb24obil7aWYobi5OIT09dm9pZCAwKXt2YXIgVz0oVz1IOChuLG4uTikpJiZXLm9uQ3VlUmFuZ2VFbnRlcj9nLk40KFcub25DdWVSYW5nZUVudGVyKTp2b2lkIDA7dmFyIEQ9SDgobixuLk4pO2E6aWYoRCYmRC5hZGRpdGlvbmFsVHJpZ2dlcil7Zm9yKGIgb2YgRC5hZGRpdGlvbmFsVHJpZ2dlcilpZihiLnR5cGUmJigwLG4uYmRbYi50eXBlXSk/LihiLmFyZ3M/P3t9KSl7dmFyIGI9ITA7YnJlYWsgYX1iPSExfWVsc2UgYj0hMDtXJiZiJiYoZy5SVChuLmFwaSwiaW5uZXJ0dWJlQ29tbWFuZCIsVyksaGJqKG4sRCksbi5qW24uTl0hPT12b2lkIDAmJm4ualtuLk5dKyssbi5PPSEwKX19OwpIOD1mdW5jdGlvbihuLFcpe2lmKG4udGltZWx5QWN0aW9ucylmb3IobGV0IEQgb2Ygbi50aW1lbHlBY3Rpb25zKWlmKEQuY3VlUmFuZ2VJZD09PVcpcmV0dXJuIER9Owp4UXc9ZnVuY3Rpb24obixXKXtpZigobj1IOChuLFcpKSYmbi5vbkN1ZVJhbmdlRXhpdClyZXR1cm4gZy5ONChuLm9uQ3VlUmFuZ2VFeGl0KX07Cmhiaj1mdW5jdGlvbihuLFcpe3ZhciBEPU51bWJlcihXPy5tYXhWaXNpYmxlRHVyYXRpb25NaWxsaXNlY29uZHMpO0QmJihZUChuKSxuLmNKPXNldFRpbWVvdXQoKCk9PntpZihuLk4hPT12b2lkIDAmJlc/LmN1ZVJhbmdlSWQ9PT1uLk4pe24uTz0hMTtuLlg9dm9pZCAwO3ZhciBiPXhRdyhuLG4uTik7YiYmZy5SVChuLmFwaSwiaW5uZXJ0dWJlQ29tbWFuZCIsYil9fSxEKSl9Owp2YXIgZmFpPWZ1bmN0aW9uKG4sVyxELGIsdixrKXtyZXR1cm4gaXBbSVsxMF1dKHRoaXMsNCw1ODg5LG4sVyxELGIsdixrKX07CmdWaD1mdW5jdGlvbihuKXtpZihuPW4uZ2V0V2F0Y2hOZXh0UmVzcG9uc2UoKSlpZihuPWcudyhuLnBsYXllck92ZXJsYXlzPy5wbGF5ZXJPdmVybGF5UmVuZGVyZXI/LnRpbWVseUFjdGlvbnNPdmVybGF5Vmlld01vZGVsLExxQyksbj8udGltZWx5QWN0aW9ucylyZXR1cm4gbj8udGltZWx5QWN0aW9ucy5tYXAoVz0+Zy53KFcsZWJyKSkuZmlsdGVyKFc9PiEhVyl9OwpKNT1mdW5jdGlvbihuKXtuLk4hPT1udWxsJiYoY2xlYXJUaW1lb3V0KG4uTiksbi5OPW51bGwpfTsKUjA9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz1XXm47KG48PDEmMTUpPT0yJiZEW0lbMjVdXSgpO2lmKChuLTh8MTcpPG4mJihuLTZeMjIpPj1uKXt2YXIgaD1EW2JdLHg9aFtJW2teNzM1NF1dKElba143MzA5XSk7eD4wP0VjKGteNzM1NSxrXjEyOTAsdixoW0lba143MzU5XV0oMCx4KSxoW0lba143MzU5XV0oeCsxKSk6aCYmKHZbaF09SVtrXjczNTddKTt2YXIgTD1bXX1pZigobiYyNyk9PW4pe2lmKCEoZ1goRFtJW2teNzUzMl1dKXx8RFtJW2teNzUzMl1dW0lba143NTE4XV0oSVtrXjc0OTBdKXx8RFtJW2teNzUzMl1dW0lba143NTE4XV0oSVtrXjc0NzZdKXx8RFtJW2teNzUzMl1dW0lba143NTE4XV0oSVtrXjc1MzNdKSkpdGhyb3cgbmV3IGcuUXgoSVtrXjc0ODBdLERbSVtrXjc1MzJdXSk7aD1scihEW0lba143NTMyXV0pO0RbSVtrXjc1MjddXT1oW0lba143NTQwXV07RFtJW2teNzUxNF1dPWhbSVsxXV0rKGhbSVtrXjc1MDhdXSE9bnVsbD9gOiR7aFtJW2teNzUwOF1dfWA6Cklba143NTI4XSk7eD1oW0lba143NTMyXV07eFtJW2teNzUxOF1dKElba143NTM4XSk/KERbSVtrXjc1MjFdXT1JW2teNzUzOF0seD14W0lba143NTMwXV0oa143NTM5KSk6eFtJW2teNzUxOF1dKElba143NTIzXSk/KERbSVtrXjc1MjFdXT1JW2teNzUyM10seD14W0lba143NTMwXV0oa143NTM2KSk6eFtJW2teNzUxOF1dKElba143NDc1XSk/KHg9aXAoa143NTI5LGteODgwLHgsRCkseD14WzBdKTooRFtJW2teNzUyMV1dPXgseD1JW2teNzUyOF0pO3ZhciBlPURbSVsxXV07RFtJWzFdXT1pcChrXjc1MzMsa143NzcxLHgpO09iamVjdFtJW2teNzUzOV1dKERbSVsxXV0sZzcoMixrXjc1MDAsaFtJW2teNzUxNF1dW0lbMF1dKCkpKTtPYmplY3RbSVtrXjc1MzldXShEW0lbMV1dLGUpO0RbSVsxXV1bSVtrXjc0NzNdXT09PUlba143NTAxXSYmKGRlbGV0ZSBEW0lbMV1dW0lba143NDczXV0sRFtJW2teNzUyMV1dKz1JW2teNzQ4N10pO0RbSVtrXjc1MzJdXT1JW2teNzUyOF07RFtJW2teNzUyMF1dPQpJW2teNzUyOF07RFtJW2teNzU0MF1dJiYoaD1YRChrXjc0OTIsa14zMjg1LEQpKTtMPVtdfShuJjk5KT09biYmKGVYKGteMzQ4NSxrXjQ1NDIsRCksTD1EW0lba14zNTExXV0pO24rMyYxNXx8KEw9ZW5jb2RlVVJJQ29tcG9uZW50KEQpKTtyZXR1cm4gTH07ClhiaD1mdW5jdGlvbihuKXtKNShuKTtuLk49c2V0VGltZW91dCgoKT0+e24uaGlkZSgpfSwzRTMpfTsKSUc9ZnVuY3Rpb24obil7dmFyIFc9bi5hcGkuVUooKTtpZihXKXtsZXQgRD1uLmFwaS5nZXRQbGF5ZXJTaXplKCk7Vy5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZSgke24uTipELndpZHRoKigxLW4uc2NhbGUpfXB4LCAke24uSipELmhlaWdodCooMS1uLnNjYWxlKX1weCkgc2NhbGUoJHtuLnNjYWxlfSlgO1cuc3R5bGUudHJhbnNmb3JtT3JpZ2luPSIwIDAiO1c9bi5pbmRpY2F0b3I7Vy5XLnRleHRDb250ZW50PWAke051bWJlcihuLnNjYWxlLnRvRml4ZWQoMSkpfXhgO1cuTj09PW51bGwmJlhiaChXKTtuLnNjYWxlPjE/bi5pbmRpY2F0b3Iuc2hvdygpOm4uaW5kaWNhdG9yLmhpZGUoKTtXPW4uc2NhbGU+MT8iWk9PTV9TVEFURV9GUkVFIjoiWk9PTV9TVEFURV9PUklHSU5BTCI7VyE9PW4uem9vbVN0YXRlJiYobi56b29tU3RhdGU9VyxnLnpVKCJ3YXRjaFpvb21TdGF0ZUNoYW5nZSIse3pvb21TdGF0ZTpuLnpvb21TdGF0ZX0pKX19OwpxSDE9ZnVuY3Rpb24obil7bj1uLldEKCk7aWYoIW4pcmV0dXJuITE7bj1nLm9FKG4pLmV4cHx8IiI7cmV0dXJuIG4uaW5jbHVkZXMoInhwdiIpfHxuLmluY2x1ZGVzKCJ4cGUiKX07Ckd3VT1mdW5jdGlvbihuKXtmb3IobGV0IFcgb2Ygbi5OKCEwKSlpZihxSDEoVykpcmV0dXJuITA7cmV0dXJuITF9Owp0THg9ZnVuY3Rpb24obixXKXtmb3IobGV0IGIgb2Ygbi5OKCEwKSlpZihxSDEoYikpe249Yjt2YXIgRD17cG90YzoiMSIscG90Old9O24udXJsJiYobi51cmw9Zy56ZChuLnVybCxEKSl9fTsKJFF4PWFzeW5jIGZ1bmN0aW9uKG4pe3RyeXthd2FpdCBufWNhdGNoKFcpe319OwpybU09ZnVuY3Rpb24obil7dmFyIFc9bmV3IHF3LEQ9e1siWC1Hb29nLUFwaS1LZXkiXToiQUl6YVN5RHlUNVcwSmg0OUYzMFBxcXR5ZmRmN3BETEZLTEpvQW53In07cmV0dXJuIG5ldyBmVihXLG4sKCk9PkQpfTsKc0xiPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgVEgobil9OwpOYmI9ZnVuY3Rpb24obil7bi5KJiYobi5YPW5ldyBZNixuLmoucHJvbWlzZS50aGVuKCgpPT57bi5tUS5TbCgicG90X2lmIik7U2wobil9KSl9OwpIQnc9ZnVuY3Rpb24obil7dmFyIFc9KG4uUygiaHRtbDVfZ2VuZXJhdGVfc2Vzc2lvbl9wb190b2tlbiIpfHxuLlMoImh0bWw1X2dlbmVyYXRlX2NvbnRlbnRfcG9fdG9rZW4iKSkmJiFuLnVzZUxpdmluZ1Jvb21Qb1Rva2VuO3RyeXtpZihuLlMoImh0bWw1X3VzZV9zaGFyZWRfb3dsX2luc3RhbmNlIil8fG4uYXBpLkcoKS5adCgpLk4uUVEocGJNKSlZSGkobik7ZWxzZSBpZihXKXtuLm1RLlNsKCJwb3RfaXNjIik7bGV0IEQ9Zy5kTShuLmFwaS5HKCkuZXhwZXJpbWVudHMsImh0bWw1X3dlYnBvX2thaW9zX2RlZmVyX3RpbWVvdXRfbXMiKTtEPyhBNShuKSxnLm4kKCgpPT57bUEobil9LEQpKTpuLlMoImh0bWw1X3dlYnBvX2lkbGVfcHJpb3JpdHlfam9iIik/KEE1KG4pLGcuY0IoZy5EeSgpLCgpPT57bUEobil9KSk6bUEobil9fWNhdGNoKEQpe0QgaW5zdGFuY2VvZiBFcnJvciYmZy5HcShEKX19OwpZSGk9YXN5bmMgZnVuY3Rpb24obil7S2Eobiwic3dwb19pIik7QTUobik7U2wobik7dmFyIFc9YXdhaXQgZy5NaChnLkQ2KCkpO0thKG4sInN3cG9fY28iKTtXPWF3YWl0IFp0WihXKTtuLlMoImh0bWw1X3dlYl9wb190b2tlbl9kaXNhYmxlX2NhY2hpbmciKXx8Vy55aCgxNTApO24uSj1XO0thKG4sInN3cG9fY2MiKTskUXgoVy5IJCgpKS50aGVuKCgpPT57bi5OPSEwO24uai5yZXNvbHZlKCk7S2Eobiwic3dwb19yZSIpfSk7CmcubiQoKCk9PnttQShuKTtLYShuLCJzd3BvX3NpIil9LDApfTsKQTU9ZnVuY3Rpb24obil7bi5XfHwobi5XPW5XKCkpfTsKbUE9ZnVuY3Rpb24obil7dmFyIFc9bi5hcGkuRygpO24ubVEuU2woInBvdF9pc3QiKTtuLkp8fGZNMShuKTtuLlMoImh0bWw1X2JhbmRhaWRfYXR0YWNoX2NvbnRlbnRfcG9fdG9rZW4iKXx8KG4uUygiaHRtbDVfZ2VuZXJhdGVfc2Vzc2lvbl9wb190b2tlbiIpJiYoU2wobiksTmJiKG4pKSxXPWcuZE0oVy5leHBlcmltZW50cywiaHRtbDVfc2Vzc2lvbl9wb190b2tlbl9pbnRlcnZhbF90aW1lX21zIil8fDAsVz4wJiYobi5ZPVcwKCgpPT57U2wobil9LFcpKSxuLks9ITApfTsKSm14PWZ1bmN0aW9uKG4pe3ZhciBXPWcuWWgobi5leHBlcmltZW50cywiaHRtbDVfd2ViX3BvX3JlcXVlc3Rfa2V5Iik7cmV0dXJuIFc/VzpnLms2KG4pPyJaMWVsTmtBS0xwU1Izb1BPVU1TTiI6Ik80M3owZHBqaGdYMjBTQ3g0S0FvIn07CkthPWZ1bmN0aW9uKG4sVyl7bi5TKCJodG1sNV93ZWJwb19iZ2VfY3RtcCIpJiZuLmFwaS5VKFcse2h3cG86ISFuLkosaHdwb3I6bi5OfSl9OwpTbD1hc3luYyBmdW5jdGlvbihuKXtpZihuLlMoImh0bWw1X2dlbmVyYXRlX3Nlc3Npb25fcG9fdG9rZW4iKSYmIW4udXNlTGl2aW5nUm9vbVBvVG9rZW4pe3ZhciBXPW4uYXBpLkcoKSxEPWcuQXIoIkVPTV9WSVNJVE9SX0RBVEEiKXx8Zy5BcigiVklTSVRPUl9EQVRBIik7RD1XLllyP1cuZGF0YXN5bmNJZDpEO0Q9Zy5ZaChXLmV4cGVyaW1lbnRzLCJodG1sNV9tb2NrX2NvbnRlbnRfYmluZGluZ19mb3Jfc2Vzc2lvbl90b2tlbiIpfHxXLmxpdmluZ1Jvb21Qb1Rva2VuSWR8fEQ7Vy5qVz1PcihuLEQpfX07CmZNMT1mdW5jdGlvbihuKXt2YXIgVz1uLmFwaS5HKCksRD1KbXgoVyk7RD1ybU0oRCk7dmFyIGI9RC5aai5iaW5kKEQpO0QuWmo9YXN5bmMgaz0+e2s9YXdhaXQgYihrKTtuLmFwaS5VKCJpdHIiLHt9KTtyZXR1cm4ga307CnRyeXt2YXIgdj1zTGIoe1VnOkQsa2Q6e21heEF0dGVtcHRzOjV9LHgzOntWajoiQ0xFbiIsZGlzYWJsZTpXLmV4cGVyaW1lbnRzLkVxKCJodG1sNV93ZWJfcG9fZGlzYWJsZV9yZW1vdGVfbG9nZ2luZyIpLEpwOlRwYihXLmV4cGVyaW1lbnRzKSxybzpoPT57dmFyIHg9SU0yLmdldChoKTt4fHwoeD1uZXcgU0hpKGgpLHg9bmV3IGhxKHgpLElNMi5zZXQoaCx4KSk7cmV0dXJuIHh9LApSaTpuLlMoIndwb19kaXNfbGZkbXMiKT8wOjFFM30sdDY6Zy5HcX0pO2xldCBrPW5ldyBBbXQoe08xOnYsVWc6RCxvbkVycm9yOmcuR3F9KTskUXgoay5IJCgpKS50aGVuKCgpPT57bi5OPSEwO24uai5yZXNvbHZlKCl9KTsKbi5TKCJodG1sNV93ZWJfcG9fdG9rZW5fZGlzYWJsZV9jYWNoaW5nIil8fGsueWgoMTUwKTtnLnUobix2KTtnLnUobixrKTtuLko9a31jYXRjaChrKXtnLkdxKGspLHY/LmRpc3Bvc2UoKX19OwpPcj1mdW5jdGlvbihuLFcpe2lmKCFuLkope2lmKG4uVyl0cnl7cmV0dXJuIG4uVyhXKX1jYXRjaChEKXtnLkdxKEQpfXJldHVybiIifXRyeXtuLm1RLlNsKG4uTj8icG90X2NtcyI6InBvdF9jc21zIik7bGV0IEQ9e0dyOiEwLEVSOiEwLHdfOld9O24uUygiaHRtbDVfd2ViX3BvX3Rva2VuX2Rpc2FibGVfY2FjaGluZyIpfHwoRC5oRz17YW06VyxBQjohMCxyMzohMH0pO2xldCBiPW4uSi5aUihEKTtuLm1RLlNsKG4uTj8icG90X2NtZiI6InBvdF9jc21mIik7bi5OJiYobi5YPy5yZXNvbHZlKCksbi5YPW51bGwsbi5WJiYobi5WPSExLG4uYXBpLmFwcC5NTigpLmpEKCExKSkpO3JldHVybiBifWNhdGNoKEQpe3JldHVybiBnLkdxKEQpLCIifX07Cktxcj1mdW5jdGlvbihuKXt2YXIgVz1nLnFqKCk7bi5KJiZnLnhvKFcse05IOlFXLFlMOm1RU30pfTsKZy5QOD1mdW5jdGlvbihuLFcsRCl7Zy5hTCgicGJzIixXPz8oMCxnLlIpKCksRD8/bi50aW1lck5hbWUpfTsKZy5PQk09ZnVuY3Rpb24obixXLEQpe3ZhciBiPWcuQ04oVy55USkmJiFXLnlRLlg7aWYoVy55US5lViYmKEZWKFcueVEpfHxXLnlRLlk9PT0ic2hvcnRzcGFnZSJ8fFcueVEuWT09PSJsZWFuYmFjayJ8fGIpJiYhbi5XKXtuLlc9ITA7bi5WPVcuY2xpZW50UGxheWJhY2tOb25jZTtnLkFyKCJUSU1JTkdfQUNUSU9OIil8fGcuU0goIlRJTUlOR19BQ1RJT04iLG4uQi5jc2lQYWdlVHlwZSk7bi5CLmNzaVNlcnZpY2VOYW1lJiZnLlNIKCJDU0lfU0VSVklDRV9OQU1FIixuLkIuY3NpU2VydmljZU5hbWUpO2lmKG4uTil7Yj1uLk4uZUcoKTtmb3IodmFyIHYgb2YgT2JqZWN0LmtleXMoYikpZy5hTCh2LGJbdl0sbi50aW1lck5hbWUpO3Y9UFYoQ0IpKG4uTi5Idik7Zy5ubCh2LG4udGltZXJOYW1lKTt2PW4uTjt2Lko9e307di5Idj17fX1nLm5sKHtwbGF5ZXJJbmZvOnt2aXNpYmlsaXR5U3RhdGU6UFYoakwpKCl9LHBsYXllclR5cGU6IkxBVEVOQ1lfUExBWUVSX0hUTUw1In0sbi50aW1lck5hbWUpOwpuLmohPT1XLmNsaWVudFBsYXliYWNrTm9uY2V8fE51bWJlci5pc05hTihuLkopfHwoZy52UCgiX3N0YXJ0IixuLnRpbWVyTmFtZSk/RD1QVihvTCkoIl9zdGFydCIsbi50aW1lck5hbWUpK24uSjpnLkdxKG5ldyBnLlF4KCJhdHRlbXB0ZWQgdG8gbG9nIGdhcGxlc3MgcGJzIGJlZm9yZSBDU0kgdGltZWxpbmUgc3RhcnRlZCIse2NwbjpXLmNsaWVudFBsYXliYWNrTm9uY2V9KSkpOyFEfHxnLnZQKCJwYnMiLG4udGltZXJOYW1lKXx8Vy5HU3x8Zy5QOChuLEQpfX07ClAkQz1mdW5jdGlvbihuKXtXUCgpO2NiKCJ3YXRjaCIsWyJwYnMiLCJwYnUiXSk7bi50aW1lck5hbWU9IiJ9OwpaQmo9ZnVuY3Rpb24obil7aWYobi5OKXt2YXIgVz1uLk47Vy5KPXt9O1cuSHY9e319bi5XPSExO24uaj12b2lkIDA7bi5KPU5hTn07ClVRaT1mdW5jdGlvbihuLFcpe3ZhciBEPSExLGI9bi5xdWV1ZS5maW5kSW5kZXgodj0+di5ncz09PVcpOwpiPj0wJiYobi5xdWV1ZS5zcGxpY2UoYiwxKSxEPSEwLFcucU4oKXx8Vy51bnN1YnNjcmliZSgicmVxdWVzdGNvbXBsZXRlZCIsbi5XLG4pLG4uVShXLCJkZXFfcXVldWUiLHt0Y3BuOlcuV04oKXx8Im5vbmUifSkpO2I9bi5KLmZpbmRJbmRleCh2PT52LmdzPT09Vyk7CmI+PTAmJihuLkouc3BsaWNlKGIsMSksRD0hMCxXLnFOKCl8fFcudW5zdWJzY3JpYmUoInJlcXVlc3Rjb21wbGV0ZWQiLG4uVyxuKSxuLlUoVywiZGVxX3dhaXQiLHt0Y3BuOlcuV04oKXx8Im5vbmUifSkpO3JldHVybiBEfTsKeW1pPWZ1bmN0aW9uKG4pe2ZvcihsZXQgVyBvZiBuLnF1ZXVlKVcuZ3MucU4oKXx8bi51bnN1YnNjcmliZShXLmdzKTtmb3IobGV0IFcgb2Ygbi5KKVcuZ3MucU4oKXx8bi51bnN1YnNjcmliZShXLmdzKTtuLnF1ZXVlPVtdO24uSj1bXX07CkVWYj1mdW5jdGlvbihuLFcpe24uVShXLCJyZXFfbG9hZCIse3RjcG46Vy5XTigpfHwibm9uZSIsdHlwZToicHJlIn0pO2lmKCFuLnF1ZXVlLnNvbWUoYj0+Yi5ncz09PVcpJiYhbi5KLnNvbWUoYj0+Yi5ncz09PVcpKXt2YXIgRD17Z3M6VywKc3RhcnRlZDohMX07bi5xdWV1ZS5sZW5ndGg8bi5wb2xpY3kuTj9uLnF1ZXVlLnB1c2goRCk6KG4uSi5wdXNoKEQpLG4uVShXLCJ3YWl0Iix7dGNwbjpXLldOKCl8fCJub25lIn0pKTtuLlcoKX19OwppQlM9ZnVuY3Rpb24obil7dmFyIFc9bi5OP24uTi5XTigpfHwibm9uZSI6Im5vbmUiLEQ9bi5xdWV1ZS5tYXAoYj0+Yi5ncy5XTigpfHwibm9uZSIpLmpvaW4oIiwiKTsKcmV0dXJue3BjcG46Vyx3czpuLkoubGVuZ3RoLGNwbnM6RH19OwpaVD1mdW5jdGlvbihuKXtyZXR1cm4hIShuLnBsYXlsaXN0fHxuLmxpc3R8fG4uYXBpKX07Cml2PWZ1bmN0aW9uKG4sVyxELGIpe1c9VyE9PXZvaWQgMD9XOm4uaW5kZXg7Vz1uLml0ZW1zJiZXIGluIG4uaXRlbXM/bi5pdGVtc1tuLm9yZGVyW1ddXTpudWxsO3ZhciB2PW51bGw7VyYmKEQmJihXLmF1dG9wbGF5PSIxIiksYiYmKFcuYXV0b25hdj0iMSIpLHY9bmV3IGcuVXIobi55USxXKSxnLnUobix2KSx2Lk1kPSEwLHYuc3RhcnRTZWNvbmRzPW4uc3RhcnRTZWNvbmRzfHx2LmNsaXBTdGFydHx8MCxuLmxpc3RJZCYmKHYucGxheWxpc3RJZD1uLmxpc3RJZC50b1N0cmluZygpKSk7cmV0dXJuIHZ9Owp1QXQ9ZnVuY3Rpb24obixXKXtpZihXLnZpZGVvJiZXLnZpZGVvLmxlbmd0aCl7bi50aXRsZT1XLnRpdGxlfHwiIjtuLmRlc2NyaXB0aW9uPVcuZGVzY3JpcHRpb247bi52aWV3cz1XLnZpZXdzO24ubGlrZXM9Vy5saWtlcztuLmRpc2xpa2VzPVcuZGlzbGlrZXM7bi5hdXRob3I9Vy5hdXRob3J8fCIiO3ZhciBEPVcubG9vcDtEJiYobi5sb29wPUQpO0Q9aXYobik7bi5pdGVtcz1bXTtmb3IobGV0IGIgb2YgVy52aWRlbyliJiYoYi52aWRlb19pZD1iLmVuY3J5cHRlZF9pZCxuLml0ZW1zLnB1c2goYikpO24ubGVuZ3RoPW4uaXRlbXMubGVuZ3RoOyhXPVcuaW5kZXgpP24uaW5kZXg9VzpuLmZpbmRJbmRleChEKTtuLnNldFNodWZmbGUoITEpO24ubG9hZGVkPSEwO24uTiYmbi5OKCl9fTsKdXY9ZnVuY3Rpb24obixXKXtuLmluZGV4PWcuRmYoVywwLG4ubGVuZ3RoLTEpO24uc3RhcnRTZWNvbmRzPTB9Owp6YnI9YXN5bmMgZnVuY3Rpb24obixXKXt2YXIgRD1uYygpLGI9bi5HKCksdj17Y29udGV4dDpnLm9UKG4pLHBsYXliYWNrQ29udGV4dDp7Y29udGVudFBsYXliYWNrQ29udGV4dDp7YW5jZXN0b3JPcmlnaW5zOmIuYW5jZXN0b3JPcmlnaW5zfX19LGs9Yi5nZXRXZWJQbGF5ZXJDb250ZXh0Q29uZmlnKCk7az8uZW5jcnlwdGVkSG9zdEZsYWdzJiYodi5wbGF5YmFja0NvbnRleHQuY29udGVudFBsYXliYWNrQ29udGV4dC5lbmNyeXB0ZWRIb3N0RmxhZ3M9ay5lbmNyeXB0ZWRIb3N0RmxhZ3MpO2s/LmhpZGVJbmZvJiYodi5wbGF5ZXJQYXJhbXM9e3Nob3dpbmZvOiExfSk7Yj1iLmVtYmVkQ29uZmlnO2s9bi5OZDt2YXIgaD1XLmRvY2lkfHxXLnZpZGVvX2lkfHxXLnZpZGVvSWR8fFcuaWQ7aWYoIWgpe2g9Vy5yYXdfZW1iZWRkZWRfcGxheWVyX3Jlc3BvbnNlO2lmKCFoKXt2YXIgeD1XLmVtYmVkZGVkX3BsYXllcl9yZXNwb25zZTt4JiYoaD1KU09OLnBhcnNlKHgpKX1oPWg/Zy53KGg/LmVtYmVkUHJldmlldz8udGh1bWJuYWlsUHJldmlld1JlbmRlcmVyPy5wbGF5QnV0dG9uPy5idXR0b25SZW5kZXJlcj8ubmF2aWdhdGlvbkVuZHBvaW50LApnLklRKT8udmlkZW9JZHx8bnVsbDpudWxsfWg9aD9oOnZvaWQgMDt4PW4ucGxheWxpc3RJZD9uLnBsYXlsaXN0SWQ6Vy5saXN0O3ZhciBMPVcubGlzdFR5cGU7aWYoeCl7dmFyIGU7TD09PSJ1c2VyX3VwbG9hZHMiP2U9e3VzZXJuYW1lOnh9OmU9e3BsYXlsaXN0SWQ6eH07b1YyKGIsayxoLFcsZSk7di5wbGF5bGlzdFJlcXVlc3Q9ZX1lbHNlIFcucGxheWxpc3Q/KGU9e3RlbXBsaXN0VmlkZW9JZHM6Vy5wbGF5bGlzdC50b1N0cmluZygpLnNwbGl0KCIsIil9LG9WMihiLGssaCxXLGUpLHYucGxheWxpc3RSZXF1ZXN0PWUpOmgmJihlPXt2aWRlb0lkOmh9LGs/ZS5zZXJpYWxpemVkVGhpcmRQYXJ0eUVtYmVkQ29uZmlnPWs6YiYmKGUuc2VyaWFsaXplZFRoaXJkUGFydHlFbWJlZENvbmZpZz1iKSx2LnNpbmdsZVZpZGVvUmVxdWVzdD1lKTtiPUxCKGRRWik7dHJ5e2xldCBHPWF3YWl0IGcucl8oRCx2LGIpLHI9bi5HKCk7Vy5yYXdfZW1iZWRkZWRfcGxheWVyX3Jlc3BvbnNlPUc7ci5jSj0KaE8oVyxnLm80KHIpKTtyLkQ9ci5jSj09PSJFTUJFRERFRF9QTEFZRVJfTU9ERV9QRkwiO0cmJkcudHJhY2tpbmdQYXJhbXMmJmcueXIoRy50cmFja2luZ1BhcmFtcyk7cmV0dXJuIG5ldyBnLlVyKHIsVyl9Y2F0Y2goRyl7cmV0dXJuIEcgaW5zdGFuY2VvZiBFcnJvcnx8KEc9RXJyb3IoImIyNTk4MDI3NDgiKSksZy5YaihHKSxufX07Cm9WMj1mdW5jdGlvbihuLFcsRCxiLHYpe2IuaW5kZXgmJih2LnBsYXlsaXN0SW5kZXg9U3RyaW5nKE51bWJlcihiLmluZGV4KSsxKSk7di52aWRlb0lkPUQ/RDoiIjtXP3Yuc2VyaWFsaXplZFRoaXJkUGFydHlFbWJlZENvbmZpZz1XOm4mJih2LnNlcmlhbGl6ZWRUaGlyZFBhcnR5RW1iZWRDb25maWc9bil9OwpnLmQ5PWZ1bmN0aW9uKG4sVyl7b0cuZ2V0KG4pO29HLnNldChuLFcpfTsKZy5sTVU9ZnVuY3Rpb24obixXKXtyZXR1cm4gVy5HKCkuUygiaHRtbDVfdXNlX2hsc19uYXRpdmVfY2FwdGlvbnMiKSYmZy5HbiYmbi56VygpJiYhIW4uSj8uVygpfTsKZy56Rz1mdW5jdGlvbihuLFcpe3JldHVybiBuLkcoKS5TKCJzYWZhcmlfbGl2ZV9kcm1fY2FwdGlvbnNfZml4IikmJm4uZ2V0VmlkZW9EYXRhKCk/Lk1pKCk/ITE6Zy5HbChuLkcoKSkmJiFXLmlzTWFuaWZlc3RsZXNzfTsKZy5sdj1mdW5jdGlvbihuLFcpe3JldHVybiBuLmluZm8uTigpP1c/bi5pbmZvLml0YWc9PT1XOiEwOiExfTsKZy5UYmk9ZnVuY3Rpb24obixXKXtpZihuLk4hPW51bGwmJmcuekcoVyxuLk4pJiZuLk4uTi5yYXdjYyE9bnVsbClyZXR1cm4hMDtpZighbi56VygpKXJldHVybiExO1c9ISFuLk4mJm4uTi5pc01hbmlmZXN0bGVzcyYmT2JqZWN0LnZhbHVlcyhuLk4uTikuc29tZShEPT5nLmx2KEQsIjM4NiIpKTsKbj0hIW4uTiYmIW4uTi5pc01hbmlmZXN0bGVzcyYmZy5tSChuLk4pO3JldHVybiBXfHxufTsKRCQ9ZnVuY3Rpb24obil7aWYobi5BLkcoKS5lJClyZXR1cm4gbi5OaS5nZXQoInV4Iil9OwpURz1mdW5jdGlvbihuKXtyZXR1cm4gbi5OaS5nZXQoImFkIil9OwpqbD1mdW5jdGlvbihuKXtyZXR1cm4gbi5OaS5nZXQoImNhcHRpb25zIil9OwpDYT1mdW5jdGlvbihuKXtyZXR1cm4gbi5OaS5nZXQoImFubm90YXRpb25zX21vZHVsZSIpfTsKR3U9ZnVuY3Rpb24obil7aWYobi5BLkcoKS5GZSlyZXR1cm4gbi5OaS5nZXQoInJlbW90ZSIpfTsKQjg9ZnVuY3Rpb24obil7cmV0dXJuIG4uTmkuZ2V0KCJjcmVhdG9yZW5kc2NyZWVuIil9OwpGWT1mdW5jdGlvbihuKXtpZihnLlhDKG4uQS5HKCkpKXJldHVybiBuLk5pLmdldCgia2lkcyIpfTsKZy4kRj1mdW5jdGlvbihuKXtyZXR1cm4gbi5OaS5nZXQoIndlYmdsIil9OwpqTGo9ZnVuY3Rpb24obixXKXtuLlc9V307CkMkdz1mdW5jdGlvbihuKXt2YXIgVz1uLkEuZ2V0VmlkZW9EYXRhKCk7cmV0dXJuIGcubE1VKFcsbi5BKXx8ISFXLndhfHwhIVcuY2FwdGlvblRyYWNrcy5sZW5ndGh8fGcuVGJpKFcsbi5BKX07Cnc5PWZ1bmN0aW9uKG4sVyxEPSExLGI9ITEsdil7dmFyIGssaD1uLk5pLmdldChXKTtpZighaHx8YilpZih2fHwodj0oKT0+e3c5KG4sVyxELGIpfSksa3x8KGs9KCk9PntNVChuLFcpfSksaD1ofHxCYmgobixXLEZxTShuLFcpLHYsaykpbi5OaS5zZXQoVyxoKSxoLmNyZWF0ZSgpLG4uQS5XSigibW9kdWxlY3JlYXRlZCIsVyksRCYmZy5WVShuLkEsIm9uQXBpQ2hhbmdlIil9OwpSRz1mdW5jdGlvbihuKXtpZihuLkEuRygpLkQpcmV0dXJuITE7aWYobj1uLkEuZ2V0VmlkZW9EYXRhKHtwbGF5ZXJUeXBlOjF9KS5nZXRQbGF5ZXJSZXNwb25zZSgpKXtsZXQgVz1uLmFkUGxhY2VtZW50cztpZihXKWZvcihsZXQgRD0wO0Q8Vy5sZW5ndGg7RCsrKWlmKFdbRF0uYWRQbGFjZW1lbnRSZW5kZXJlcilyZXR1cm4hMDtpZihuLmFkU2xvdHMpcmV0dXJuITB9cmV0dXJuITF9OwpRWT1mdW5jdGlvbihuKXtyZXR1cm4gbi5BLkcoKS5TKCJodG1sNV9hbGxvd19hc21qcyIpfHxuLkEuRygpLlp0KCkuTi5RUSh3YlMpfTsKRnFNPWZ1bmN0aW9uKG4sVyl7c3dpdGNoKFcpe2Nhc2UgImFkIjpyZXR1cm4gUkcobik7Y2FzZSAiYW5ub3RhdGlvbnNfbW9kdWxlIjpyZXR1cm4hMTtjYXNlICJhc21qcyI6cmV0dXJuIFFZKG4pO2Nhc2UgImNyZWF0b3JlbmRzY3JlZW4iOnJldHVybiExO2Nhc2UgImVtYmVkIjpyZXR1cm4gZy5vNChuLkEuRygpKTtjYXNlICJlbmRzY3JlZW4iOnJldHVybiExO2Nhc2UgImhlYXJ0YmVhdCI6cmV0dXJuIG4ueVAoKTtjYXNlICJraWRzIjpyZXR1cm4gZy5YQyhuLkEuRygpKTtjYXNlICJyZW1vdGUiOnJldHVybiBuLkEuRygpLkZlO2Nhc2UgIm1pbmlwbGF5ZXIiOnJldHVybiBuLkEuRygpLnNob3dNaW5pcGxheWVyVWlXaGVuTWluaW1pemVkO2Nhc2UgIm9mZmxpbmUiOnJldHVybiBuLkEuRygpLlpoO2Nhc2UgImNhcHRpb25zIjpyZXR1cm4gQyR3KG4pO2Nhc2UgInVucGx1Z2dlZCI6cmV0dXJuIGcuRGYobi5BLkcoKSk7Y2FzZSAidXgiOnJldHVybiBuLkEuRygpLmUkO2Nhc2UgIndlYmdsIjpXPQpuLkEuZ2V0VmlkZW9EYXRhKCk7dmFyIEQ9bi5BLkcoKTtuPWcuamQoKTtsZXQgYj1nLm5OKEQpLHY9Vy5KPy52aWRlbz8uaXNIZHIoKTtEPSFnLnF1KFcpJiYhdiYmRC5TKCJlbmFibGVfd2ViZ2xfbm9vcCIpO3JldHVybiBnLkpEKFcpfHxnLkhUKFcpfHxnLmZBKFcpP258fGI6Zy5rcChXKT9iOkQ/YjohMTtjYXNlICJ5cGMiOnJldHVybiBuLklWKCk7ZGVmYXVsdDpyZXR1cm4gZy5YaihFcnJvcihgTW9kdWxlIGRlc2NyaXB0b3IgJHtXfSBkb2VzIG5vdCBtYXRjaGApKSwhMX19OwpNVD1mdW5jdGlvbihuLFcpe1c9TUxiW1ddO2ZvcihsZXQgRCBvZiBXKW4uQS5HaShEKX07CkJiaD1mdW5jdGlvbihuLFcsRCxiLHYpe3RyeXtpZihEKXtsZXQgaz1vRy5nZXQoVyk7aWYoaylyZXR1cm4gbmV3IGsobi5BKTtSYngobixXLGIsdil9ZWxzZSBNVChuLFcpfWNhdGNoKGspe01UKG4sVyksZy5YaihrKX1yZXR1cm4gbnVsbH07ClJieD1mdW5jdGlvbihuLFcsRCxiKXtpZihuLkQpe3ZhciB2PVFMaVtXXTtXPW4uRCt2O24uSyYmKFcrPWA/Y2I9JHtuLkt9YCk7VkxNKG4sVywoKT0+e24uai5hZGQodik7RC5jYWxsKG4pfSxiKX19OwpjbWI9YXN5bmMgZnVuY3Rpb24obil7dmFyIFc9bi5OaS5nZXQoImFzbWpzIik7aWYoVylyZXR1cm4gVztXPW9HLmdldCgiYXNtanMiKT8/YXdhaXQgbmV3IFByb21pc2UoKEQsYik9PntSYngobiwiYXNtanMiLCgpPT57dmFyIHY9b0cuZ2V0KCJhc21qcyIpO3Y/RCh2KTpiKCJjYW5ub3QgbG9hZCBtb2R1bGUgYXNtanMiKX0sYil9KTsKaWYoIVcpcmV0dXJuIFByb21pc2UucmVqZWN0KCJjYW5ub3QgbG9hZCBtb2R1bGUgYXNtanMiKTtXPW5ldyBXKG4uQSk7bi5OaS5zZXQoImFzbWpzIixXKTtXLmNyZWF0ZSgpO3JldHVybiBXfTsKVlk9ZnVuY3Rpb24obil7dmFyIFc9bi5BLmdldFZpZGVvRGF0YSgpO2lmKG49Vy5TKCJ3ZWJfcGxheWVyX2RlZmVyX2FkIikpe2lmKGcuamooVy5JSiwiYWQiKXx8dzYoVyl8fFcuZW5hYmxlU2VydmVyU3RpdGNoZWREYWkpdmFyIEQ9ITE7ZWxzZXtuPVcuc3RhcnRTZWNvbmRzO3ZhciBiPVcucGxheWVyUmVzcG9uc2U/LmFkUGxhY2VtZW50cztpZihXPWIpe1c9TnVtYmVyLk1BWF9WQUxVRTtmb3IoRCBvZiBiKWlmKGI9RC5hZFBsYWNlbWVudFJlbmRlcmVyKXtsZXQgdj1iLmNvbmZpZz8uYWRQbGFjZW1lbnRDb25maWc7dj8ua2luZD09PSJBRF9QTEFDRU1FTlRfS0lORF9NSUxMSVNFQ09ORFMiJiYoYj0oTnVtYmVyKHY/LmFkVGltZU9mZnNldD8ub2Zmc2V0U3RhcnRNaWxsaXNlY29uZHMpfHwwKS1OdW1iZXIoYi5yZW5kZXJlcj8uYWRCcmVha1NlcnZpY2VSZW5kZXJlcj8ucHJlZmV0Y2hNaWxsaXNlY29uZHN8fDApLGI8VyYmKFc9YikpfVc9Vy01RTM8PW4qMUUzfUQ9Vz8hMTohMH1uPQpEfXJldHVybiBufTsKYU1VPWFzeW5jIGZ1bmN0aW9uKG4pe3JldHVybiBhd2FpdCBjbWIobil9OwpuRGo9ZnVuY3Rpb24obil7dmFyIFc9bi5BLmdldFZpZGVvRGF0YSgpLEQ9bi5PJiYhVy5pc0lubGluZVBsYXliYWNrTm9BZDtuLkEuUygiaHRtbDVfZGVmZXJfbW9kdWxlc19vbl9hZHNfb25seSIpJiYhVy5pc0FkKCkmJihEPSExKTtyZXR1cm4gRH07CmcuYzg9ZnVuY3Rpb24obil7VlkobikmJm4uWCgpO25EaihuKSYmKHc5KG4sImNhcHRpb25zIiwhMCksdzkobiwiZW5kc2NyZWVuIiksbi5OKCksdzkobiwiY3JlYXRvcmVuZHNjcmVlbiIsITApKX07CmFHPWZ1bmN0aW9uKG4sVyxEKXtmb3IobGV0IGIgb2YgV0VpKXtsZXQgdj1uLk5pLmdldChiKTt2JiYoRHx8di5oVihXKSkmJihnLkNwKHYpLG4uTmkuZGVsZXRlKGIpKX1uLkEuV0ooIm1vZHVsZXNEZXN0cm95ZWQiLFcpfTsKRHJaPWZ1bmN0aW9uKG4pe3JldHVybiBKZSgoKT0+bi5OaS5nZXQoImFzbWpzIik/P2FNVShuKSl9OwpWTE09ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNDUklQVCIpLGs9ITE7Zm9yKGxldCBIPTA7SDx2Lmxlbmd0aDtIKyspe2xldCBBPXZbSF07aWYoQS5zcmM9PT1XfHxBLmdldEF0dHJpYnV0ZSgiZGF0YS1vcmlnaW5hbC1zcmMiKT09PVcpdmFyIGg9QX1ofHwoaD1nLnpGKCJTQ1JJUFQiKSxoLnNldEF0dHJpYnV0ZSgiZGF0YS1vcmlnaW5hbC1zcmMiLFcpLGs9ITApO3ZhciB4PSgpPT57bi5xTigpfHxELmNhbGwobil9LEw9KCk9PntuLnFOKCl8fGIuY2FsbChuKX0sZT1oLm9ubG9hZDsKaC5vbmxvYWQ9SD0+e2cuVDcoeCk7ZSYmZS5hcHBseSh3aW5kb3csW0hdKX07CnZhciBHPWgub25lcnJvcjtoLm9uZXJyb3I9SD0+e2lmKE1hdGgucmFuZG9tKCk8LjAxKXtsZXQgQT1uZXcgZy5ReCgiVW5hYmxlIHRvIGxvYWQgcGxheWVyIG1vZHVsZSIsVyxkb2N1bWVudC5sb2NhdGlvbiYmZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luKTtnLlhqKEEpfWcuVDcoTCk7RyYmRyhIKX07CnZhciByPWgsTj1yLm9ucmVhZHlzdGF0ZWNoYW5nZTtyLm9ucmVhZHlzdGF0ZWNoYW5nZT1IPT57c3dpdGNoKHIucmVhZHlTdGF0ZSl7Y2FzZSAibG9hZGVkIjpjYXNlICJjb21wbGV0ZSI6Zy5UNyh4KX1OJiZOKEgpfTsKayYmKCh2PW4uQS5HKCkuY3NwTm9uY2UpJiZoLnNldEF0dHJpYnV0ZSgibm9uY2UiLHYpLGcuUE0oaCxmdyhXKSksdj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSEVBRCIpWzBdfHxkb2N1bWVudC5ib2R5LHYuaW5zZXJ0QmVmb3JlKGgsdi5maXJzdENoaWxkKSxuLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57aC5wYXJlbnROb2RlJiZoLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaCl9KSl9OwpXYz1mdW5jdGlvbihuLFcsRCl7bi5xTigpO3ZhciBiPW5PKG4pO0Q/KG4uSnw9VyxXJjEmJm4uRC5zdGFydCgpLFcmMiYmbi5PLnN0YXJ0KCksVyYyMDQ4JiZuLmNKLnN0YXJ0KCkpOihuLkomPX5XLFcmMSYmbi5ELnN0b3AoKSxXJjImJm4uTy5zdG9wKCksVyYyMDQ4JiZuLmNKLnN0b3AoKSxXJjUxMiYmbi50dy5zdG9wKCkpO24uSiY1MTImJiEobi5KJjEyOCkmJmcuSmEobi50dyxuLlZRKTtXPW5PKG4pO2IhPT1XJiZuLldKKCJhdXRvaGlkZXVwZGF0ZSIsVyl9OwpibFo9ZnVuY3Rpb24obil7V2Mobiw0LCExKTtuLksmJihuLk4ud0gobi5LKSxuLks9bnVsbCxuLlc9bi5OLk5OKG4udGFyZ2V0LCJtb3VzZW92ZXIiLG4uWjEpKTtuLlcmJihuLk4ud0gobi5XKSxuLlc9bi5OLk5OKG4udGFyZ2V0LCJtb3VzZW92ZXIiLG4uWjEpKX07Cm5PPWZ1bmN0aW9uKG4pe3ZhciBXPW4uSjtuLmFwaS5HKCkuZlImJihXJj0tMTI5KTtuLmFwaS5TKCJ3ZWJfcGxheWVyX2RlZmF1bHRfYXV0b2hpZGUiKSYmKFcmPS01MTMpO3JldHVybiFXfTsKdkQxPWZ1bmN0aW9uKG4sLi4uVyl7dmFyIEQ9bi5hcGkuRygpO2ZvcihsZXQgayBvZiBXKXtpZigha3x8ayBpbnN0YW5jZW9mIGcuVXImJiFrLnZpZGVvSWQpY29udGludWU7dmFyIGI9bi5hcGkubGooKS5nZXRQbGF5ZXJTaXplKCk7dmFyIHY9Zy5IXygpO1c9Yi53aWR0aCp2O3YqPWIuaGVpZ2h0O2lmKFc+MTI4MHx8dj43MjApaWYoYj1rLkdCKCJtYXhyZXNkZWZhdWx0LmpwZyIpKWJyZWFrO2lmKFc+NjQwfHx2PjQ4MClpZihiPWsuR0IoIm1heHJlc2RlZmF1bHQuanBnIikpYnJlYWs7aWYoVz4zMjB8fHY+MTgwKWlmKGI9ay5HQigic2RkZWZhdWx0LmpwZyIpfHxrLkdCKCJocWRlZmF1bHQuanBnIil8fGsuR0IoIm1xZGVmYXVsdC5qcGciKSlicmVhaztpZihiPWsuR0IoImRlZmF1bHQuanBnIikpYnJlYWt9Zy4kNihEKSYmKEQ9bmV3IEltYWdlLEQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKCk9Pnt5U2goKX0pLEQuc3JjPWI/YjoiIixuLmFwaS5lRygpLnRpY2soImZ0ciIpKTsKbi5ZLnN0eWxlLmJhY2tncm91bmRJbWFnZT1iP2B1cmwoJHtifSlgOiIifTsKa1cxPWZ1bmN0aW9uKG4pe2ZvcihsZXQgVz0wO1c8bi5rZXlzLmxlbmd0aDtXKyspbi53SChuLmtleXNbV10pO24ua2V5cz1bXX07CmJzPWZ1bmN0aW9uKG4sVyxELGI9ITEsdj0hMSxrLGg9ITApe3Z8fCh2PW4uYXBpLkcoKS5KKTt2YXIgeD1uLmFwaS5nZXRWaWRlb0RhdGEoKTtXPWVCKGcuRHVbV118fCIiLGI/e0NQTjp4LmNsaWVudFBsYXliYWNrTm9uY2V9Ont9KS5zcGxpdCgvXCQoQkVHSU58RU5EKV9MSU5LLyk7Yj1bXTtrJiZiLnB1c2goe1o6ImgyIixPcTprfSk7Yi5wdXNoKFdbMF0pO2gmJmIucHVzaCh7WjoiYnIifSk7Yi5wdXNoKHtaOiJhIix4YTp7aHJlZjpELHRhcmdldDp2PyJfYmxhbmsiOm51bGx9LEp3OiJ5dHAtZXJyb3ItbGluayIsT3E6V1syXX0pO24uaj0hMDtiLnB1c2goV1s0XSk7cmV0dXJue1o6InNwYW4iLFhGOmJ9fTsKdmM9ZnVuY3Rpb24obil7bj1uLnNwbGl0KGgwWik7dmFyIFc9W107Zm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKz0zKXtsZXQgYj1uW0QrK10uc3BsaXQoIlxuIik7Vy5wdXNoKGJbMF0pO2ZvcihsZXQgdj0xO3Y8Yi5sZW5ndGg7disrKVcucHVzaCh7WjoiYnIifSksVy5wdXNoKGJbdl0pO0Q8bi5sZW5ndGgmJlcucHVzaCh7WjoiYSIseGE6e2hyZWY6bltEXSx0YXJnZXQ6bltEKzFdfSxPcTpuW0QrMl19KX1yZXR1cm57Wjoic3BhbiIsWEY6V319Owp4cnQ9ZnVuY3Rpb24obixXKXt2YXIgRD1uLmVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKTtmb3IobGV0IGI9MDtiPEQubGVuZ3RoO2IrKyl7bGV0IHY9bi5OTihEW2JdLCJjbGljayIsVyk7bi5rZXlzLnB1c2godil9fTsKa0k9ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9TnVtYmVyKFcuZ2V0QXR0cmlidXRlKCJkYXRhLW92ZXJsYXktb3JkZXIiKSl8fDAsaz0wLGg9bnVsbDtmb3IobGV0IHggb2YgRC5jaGlsZHJlbil7aWYoYiYmeC5jbGFzc0xpc3QuY29udGFpbnMoInl0cC1vdmVybGF5LWlubGluZS1jb250YWluZXIiKSl7aD14O2JyZWFrfWlmKHY8KE51bWJlcih4LmdldEF0dHJpYnV0ZSgiZGF0YS1vdmVybGF5LW9yZGVyIikpfHwwKSlicmVhaztrKyt9aD9rSShuLFcsaCwhMSk6Yj8obj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxuLmNsYXNzTGlzdC5hZGQoInl0cC1vdmVybGF5LWlubGluZS1jb250YWluZXIiKSxuLnNldEF0dHJpYnV0ZSgiZGF0YS1vdmVybGF5LW9yZGVyIixgJHt2fWApLGg9bixoLmFwcGVuZENoaWxkKFcpLGcuanAoRCxoLGspKTpnLmpwKEQsVyxrKX07CmUwQz1mdW5jdGlvbihuLFcpe3ZhciBEPXREKFcpLGI9JHAoVyk7Vy5EbCYmbi5BLkpuKCl8fChuLk58fG4uQS5TKCJlbmFibGVfcGFpZF9jb250ZW50X292ZXJsYXlfYnVnZml4Iik/Vy52aWRlb0lkJiZXLnZpZGVvSWQhPT1uLnZpZGVvSWQmJihuLk4/LmplKCksIW4uQS5TKCJlbmFibGVfcGFpZF9jb250ZW50X292ZXJsYXlfYnVnZml4Iil8fEQmJmI/KG4udmlkZW9JZD1XLnZpZGVvSWQsbi5LPSEhYixuLksmJkQmJkxFcihuLGIsRCxXKSk6bi5LPSExKTpEJiZiJiYhbi5BLlMoImVuYWJsZV9wYWlkX2NvbnRlbnRfb3ZlcmxheV9idWdmaXgiKSYmTEVyKG4sYixELFcpKX07CmdEeD1mdW5jdGlvbihuLFcpe24uTiYmKFcuTig4KSYmbi5LPyhuLks9ITEsbi5XP24uVy5zdGFydCgpOm4uaigpKTooVy5OKDIpfHxXLk4oNjQpKSYmbi52aWRlb0lkJiYobi52aWRlb0lkPW51bGwsbi5XJiZuLlcuc3RvcCgpKSl9OwpMRXI9ZnVuY3Rpb24obixXLEQsYil7bi5OJiZuLk4uZGlzcG9zZSgpO24uTj1uZXcgZy5mXyhuLnV5LFcsbik7Zy51KG4sbi5OKTtiPUdlKGIpO1c9Yj8ubmF2aWdhdGlvbkVuZHBvaW50O2I9Yj8uaWNvbj8uaWNvblR5cGU7dmFyIHY9Zy53KFcsZy5Qaik/LnVybDtuLkEuc2V0VHJhY2tpbmdQYXJhbXMobi5lbGVtZW50LFc/LmNsaWNrVHJhY2tpbmdQYXJhbXN8fG51bGwpO1cmJiF2PyhuLmlubmVydHViZUNvbW1hbmQ9Vyx2PSIjISIpOm4uaW5uZXJ0dWJlQ29tbWFuZD1udWxsO24uVi51cGRhdGUoe2hyZWY6dj8/IiMiLHRleHQ6RCxpY29uOmI9PT0iTU9ORVlfSEFORCI/e1o6InN2ZyIseGE6e2ZpbGw6Im5vbmUiLGhlaWdodDoiMTAwJSIsdmlld0JveDoiMCAwIDI0IDI0Iix3aWR0aDoiMTAwJSJ9LFhGOlt7WjoicGF0aCIseGE6e2Q6Ik02IDlINVY1VjRINkgxOVY1SDZWOVpNMjEuNzIgMTYuMDRDMjEuNTYgMTYuOCAyMS4xNSAxNy41IDIwLjU1IDE4LjA1QzIwLjQ3IDE4LjEzIDE4LjQyIDIwLjAxIDE0LjAzIDIwLjAxQzEzLjg1IDIwLjAxIDEzLjY3IDIwLjAxIDEzLjQ4IDIwQzExLjMgMTkuOTIgOC41MSAxOS4yMyA1LjQgMThIMlYxMEg1SDZIN1Y2SDIxVjEzSDE2LjcyQzE2LjM3IDEzLjU5IDE1Ljc0IDE0IDE1IDE0SDEyLjdDMTMuMDEgMTQuNDYgMTMuNTYgMTUgMTQuNSAxNUgxNS4wMkMxNi4wNyAxNSAxNy4xIDE0LjY0IDE3LjkyIDEzLjk4QzE4LjgyIDEzLjI2IDIwLjAzIDEzLjIyIDIwLjkxIDEzLjg0QzIxLjU4IDE0LjMyIDIxLjkgMTUuMTkgMjEuNzIgMTYuMDRaTTE1IDEwQzE1IDkuNDUgMTQuNTUgOSAxNCA5QzEzLjQ1IDkgMTMgOS40NSAxMyAxMEgxNVpNMjAgMTFDMTkuNDUgMTEgMTkgMTEuNDUgMTkgMTJIMjBWMTFaTTE5IDdDMTkgNy41NSAxOS40NSA4IDIwIDhWN0gxOVpNOCA4QzguNTUgOCA5IDcuNTUgOSA3SDhWOFpNOCAxMEgxMkMxMiA4LjkgMTIuOSA4IDE0IDhDMTUuMSA4IDE2IDguOSAxNiAxMFYxMC4yOEMxNi41OSAxMC42MyAxNyAxMS4yNiAxNyAxMkgxOEMxOCAxMC45IDE4LjkgMTAgMjAgMTBWOUMxOC45IDkgMTggOC4xIDE4IDdIMTBDMTAgOC4xIDkuMSA5IDggOVYxMFpNNSAxMy41VjExSDNWMTdINVYxMy41Wk0yMC4zMyAxNC42NkMxOS44MSAxNC4yOSAxOS4xIDE0LjMxIDE4LjYgMTQuNzFDMTcuNTUgMTUuNTYgMTYuMjkgMTYgMTUuMDIgMTZIMTQuNUMxMi42MiAxNiAxMS42NyAxNC40NiAxMS40MyAxMy42NEwxMS4yNCAxM0gxNUMxNS41NSAxMyAxNiAxMi41NSAxNiAxMkMxNiAxMS40NSAxNS41NSAxMSAxNSAxMUg2VjEzLjVWMTcuMTZDOC45IDE4LjI5IDExLjUgMTguOTMgMTMuNTIgMTlDMTcuODUgMTkuMTUgMTkuODUgMTcuMzQgMTkuODcgMTcuMzJDMjAuMzMgMTYuOSAyMC42MiAxNi40IDIwLjc0IDE1Ljg0QzIwLjg0IDE1LjM3IDIwLjY4IDE0LjkxIDIwLjMzIDE0LjY2WiIsCmZpbGw6IndoaXRlIn19XX06bnVsbCxjaGV2cm9uOnZ8fG4uaW5uZXJ0dWJlQ29tbWFuZD9nLk9GKCk6bnVsbH0pfTsKWFBpPWZ1bmN0aW9uKG4pe24uVnx8KG4uVj0hMCxuLmFwaS5sb2dWaXNpYmlsaXR5KG4uZWxlbWVudCwhMCkpfTsKcW8yPWZ1bmN0aW9uKG4pe3ZhciBXPW9LKCkmJkV6KCk+PTY3JiYhbi5hcGkuRygpLnR3O249bi5hcGkuRygpLmRpc2FibGVPcmdhbmljVWk7cmV0dXJuIWcudWIoInRpemVuIikmJiFnLldYJiYhVyYmIW59OwpoaD1mdW5jdGlvbihuKXt2YXIgVz0hIW4uVjImJiFYeihuLmFwaSkmJiFuLmt0O3ZhciBEPW4uYXBpLmdldFByZXNlbnRpbmdQbGF5ZXJUeXBlKCk9PT0yLGI9bi5hcGkuRygpO0Q/KGI9VEcobi5hcGkuSjUoKSksVz1XJiZiLmpRKCkpOihEPWIuUygid2ViX3BsYXllcl9pbWF4X3RoZWF0ZXJfbW9kZSIpJiZuLmFwaS5RMCgpJiYhbi5hcGkuaXNJbmxpbmUoKSxXPVcmJihiLnNafHxEfHxuLmFwaS5pc0Z1bGxzY3JlZW4oKXx8Yi5neSkpO24uQTAhPT1XJiYobi5BMD1XLGcuaUgobi5hcGkuZ2V0Um9vdE5vZGUoKSwieXRwLWhpZGUtaW5mby1iYXIiLCFXKSl9OwpHV2I9ZnVuY3Rpb24obixXKXtpZighVylyZXR1cm4hMTt2YXIgRD1uLmFwaS5oNSgpO2lmKEQuSygpJiYoRD1ELmVfKCkpJiZnLkJ4KEQsVykpcmV0dXJuIEQuY29udHJvbHM7Zm9yKEQ9MDtEPG4uSW4ubGVuZ3RoO0QrKylpZihnLkJ4KG4uSW5bRF0sVykpcmV0dXJuITE7Zm9yKGxldCBiIG9mIG4ua1gpaWYoZy5LXyhXLGIpKXJldHVybiExO3JldHVybiBXPT09bi5hcGkuZ2V0Um9vdE5vZGUoKT8hMTohMH07CnRrMT1mdW5jdGlvbihuKXt2YXIgVz1uLmFwaS5nZXRQcmVzZW50aW5nUGxheWVyVHlwZSgpPT09MiYmKG4uYXBpLmxqKCkud0Z8fG4uYXBpLkcoKS5kaXNhYmxlT3JnYW5pY1VpKSYmbi5hcGkuRygpLmomJnhJJiZ2aj49MTE7bj1uLmFwaS5HKCkudHcmJnhJO3JldHVybiEoIVcmJiFuKX07CkxPPWZ1bmN0aW9uKG4sVyl7bi5qSi5MaigpO2lmKG4uYlcmJm4uUCQpbi5QJD0hMTtlbHNlIGlmKCFuLmFwaS5HKCkuc1YmJiFuLmVoKCkpe2xldCBEPW4uYXBpLmdldFBsYXllclN0YXRlT2JqZWN0KCk7RC5OKDIpJiZxcChuLmFwaSl8fG4uc2hvd1BsYXliYWNrSWNvbihEKTtXJiYkck0obixXKT9yZVMobik6IW4uYXBpLkcoKS5SdHx8RC5pc0N1ZWQoKXx8RC5OKDEwMjQpP24uUGIoKTpuLmVOLmlzQWN0aXZlKCk/bi5lTi5zdG9wKCk6bi5lTi5zdGFydCgpfX07CmVzPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIW4uYXBpLmlzSW5saW5lKCkmJiFHV2IobixBTyhXKSkmJmYyKFcpfTsKZ2Y9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5hcGkuZ2V0VmlkZW9EYXRhKCk/Lm11dGVkQXV0b3BsYXkmJlcudGFyZ2V0Py5jbGFzc05hbWU/LmluY2x1ZGVzKCJ5dHAtaW5mby1wYW5lbCIpPyExOmYyKFcpJiZuLmFwaS5pc011dGVkQnlNdXRlZEF1dG9wbGF5KCk/KG4uYXBpLnVuTXV0ZSgpLG4uYXBpLmdldFByZXNlbnRpbmdQbGF5ZXJUeXBlKCk9PT0yJiZuLmFwaS5wbGF5VmlkZW8oKSxXPW4uYXBpLmdldFBsYXllclN0YXRlT2JqZWN0KCksIVcuTig0KXx8Vy5OKDgpfHxXLk4oMil8fG4uUGIoKSwhMCk6ITF9Owokck09ZnVuY3Rpb24obixXKXtpZighbi5hcGkuRygpLlMoIndlYl9wbGF5ZXJfaW52aXNpYmxlX2Z1bGxzY3JlZW5fYnV0dG9uIikpcmV0dXJuITE7dmFyIEQ9bi5hcGkuZ2V0Um9vdE5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihXLnRhcmdldFRvdWNoZXMmJlcudGFyZ2V0VG91Y2hlcy5sZW5ndGgpe3ZhciBiPVcudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRYO3ZhciB2PVcudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRZfWVsc2UgVy5jbGllbnRYIT09dm9pZCAwJiYoYj1XLmNsaWVudFgsdj1XLmNsaWVudFkpO3JldHVybiBiIT09dm9pZCAwJiZ2IT09dm9pZCAwJiYoVz1iLUQubGVmdCxEPXYtRC50b3Asbj1uLmFwaS5nZXRQbGF5ZXJTaXplKCksRD49bi5oZWlnaHQtNDAmJlc+PW4ud2lkdGgtNDApPyEwOiExfTsKcmVTPWZ1bmN0aW9uKG4pe2lmKG4uYXBpLkcoKS5SdCYmbi5hcGkuZ2V0UHJlc2VudGluZ1BsYXllclR5cGUoKSE9PTMpdHJ5e24uYXBpLnRvZ2dsZUZ1bGxzY3JlZW4oKS5jYXRjaChXPT57c2pTKFcpfSksbi5hcGkuUygid2ViX3BsYXllcl9mdWxsc2NyZWVuX2RvdWJsZV9jbGlja192ZSIpJiZuLmFwaS5sb2dDbGljayhuLmFwaS5saigpLmVsZW1lbnQpfWNhdGNoKFcpe3NqUyhXKX19OwpzalM9ZnVuY3Rpb24obil7U3RyaW5nKG4pLmluY2x1ZGVzKCJmdWxsc2NyZWVuIGVycm9yIik/Zy5HcShuKTpnLlhqKG4pfTsKTl9oPWZ1bmN0aW9uKG4sVyxEKXtuLmFwaS5pc0Z1bGxzY3JlZW4oKT9EPDEtVyYmbi5hcGkudG9nZ2xlRnVsbHNjcmVlbigpOkQ+MStXJiZuLmFwaS50b2dnbGVGdWxsc2NyZWVuKCl9OwpZb0M9ZnVuY3Rpb24oKXtwUGp8fCh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihYdz8idG91Y2hzdGFydCI6ImNsaWNrIiwoKT0+e2ZvcihsZXQgbj1xSy5sZW5ndGg7bjw0O24rKyl7bGV0IFc9Zy56RigiVklERU8iKTtXLmxvYWQoKTtxSy5wdXNoKG5ldyBnLkdWKFcpKX19LHtjYXB0dXJlOiEwLApwYXNzaXZlOiEwfSkscFBqPSEwKX07CnRoPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PUQuZ2V0VmlkZW9EYXRhKCksaz1XLmdldFZpZGVvRGF0YSgpO2lmKEQuZ2V0UGxheWVyU3RhdGUoKS5pc0Vycm9yKCkpcmV0dXJue21zZzoicGxheWVyLWVycm9yIn07dmFyIGg9ay5XO2lmKFcub3QoKT5iLzFFMysxKXJldHVybnttc2c6ImluLXRoZS1wYXN0In07aWYoay5pc0xpdmVQbGF5YmFjayYmIWlzRmluaXRlKGIpKXJldHVybnttc2c6ImxpdmUtaW5maW5pdGUifTtiPVcuaDUoKTt2YXIgeD1udWxsO2ImJih4PWIuaXNWaWV3KCk/Yi5tZWRpYUVsZW1lbnQuVigpOmIuVigpKTtpZih4JiZ4Lmxlbmd0aD4xMiYmZy5xdSh2KSlyZXR1cm57bXNnOiJwbGF5ZWQtcmFuZ2VzIn07aWYoIXYuVylyZXR1cm4gbnVsbDtpZighaClyZXR1cm57bXNnOiJuby1wdmQtZm9ybWF0cyJ9O2lmKCF2LlcuTigpfHwhaC5OKCkpcmV0dXJue21zZzoibm9uLWRhc2gifTtiPWgudmlkZW9JbmZvc1swXTt4PXYuVy52aWRlb0luZm9zWzBdO24uVEMmJkFKKGspJiYKKGI9Vy5veSgpLHg9RC5veSgpKTtpZighYnx8IXgpcmV0dXJue21zZzoibm8tdmlkZW8taW5mbyJ9O2lmKG4uTyYmKGIuTVcoKXx8eC5NVygpKSlyZXR1cm57bXNnOiJhdjEifTtXPW4uWSYmay5OUCgpJiZWVCgpO2lmKHguY29udGFpbmVyVHlwZSE9PWIuY29udGFpbmVyVHlwZSlpZihXKWsuVSgic2dhcCIse2llcnI6ImNvbnRhaW5lciJ9KTtlbHNlIHJldHVybnttc2c6ImNvbnRhaW5lciJ9O2lmKG4uRCYmIVcmJih4LklCIT09Yi5JQnx8eC5JQj09PSIifHxiLklCPT09IiIpKXJldHVybnttc2c6ImNvZGVjIn07aWYobi5jSiYmeC52aWRlbyYmYi52aWRlbyYmTWF0aC5hYnMoeC52aWRlby53aWR0aC94LnZpZGVvLmhlaWdodC1iLnZpZGVvLndpZHRoL2IudmlkZW8uaGVpZ2h0KT4uMDEpcmV0dXJue21zZzoicmF0aW8ifTtpZihnLnF1KGspJiZnLnF1KHYpKXJldHVybnttc2c6ImNvbnRlbnQtcHJvdGVjdGlvbiJ9O2g9aC5KWzBdO3Y9di5XLkpbMF07RD1oLmF1ZGlvO3ZhciBMPXYuYXVkaW87CmlmKEQuc2FtcGxlUmF0ZSE9PUwuc2FtcGxlUmF0ZSYmIWcub2QpaWYoVylrLlUoInNnYXAiLHtpZXJyOiJzcmF0ZSJ9KTtlbHNlIHJldHVybnttc2c6InNhbXBsZS1yYXRlIixjaTpoLml0YWcsY3I6RC5zYW1wbGVSYXRlLG5pOnYuaXRhZyxucjpMLnNhbXBsZVJhdGV9O3JldHVybihELm51bUNoYW5uZWxzfHwyKSE9PShMLm51bUNoYW5uZWxzfHwyKT97bXNnOiJjaGFubmVsLWNvdW50In06bi50dyYmay5OUCgpJiZiLnZpZGVvLmZwcyE9PXgudmlkZW8uZnBzP3ttc2c6ImZwcyJ9Om51bGx9OwpIbEM9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uZ2V0VmlkZW9EYXRhKCksdj1XLmdldFZpZGVvRGF0YSgpO2lmKCFiLkcoKS5zdXBwb3J0c0dhcGxlc3NTaG9ydHMoKSlyZXR1cm57bnE6ImVudiJ9O2lmKCEoRC5iZCYmIShiLkd1JiYhYi5pc0FkKCl8fHYuR3UmJiF2LmlzQWQoKSl8fEQuViYmKCFiLkd1fHxiLmlzQWQoKSkmJiF2Lkd1fHxELksmJighdi5HdXx8di5pc0FkKCkpJiYhYi5HdXx8Yi52SigpJiZ2LnZKKCkmJiFiLmlzQWQoKXx8IWIuR3UmJiF2Lkd1KSlyZXR1cm57bnE6ImF1dG9wbGF5In07aWYoYi5lbmRTZWNvbmRzPjApcmV0dXJue25xOiJlbmRjciJ9O2lmKCFiLkspcmV0dXJue25xOiJjbGllbnQifTtpZighbi5kVCgpKXJldHVybntucToibm8tZW1wdHkifTtuPXRoKEQsbixXLEluZmluaXR5KTtyZXR1cm4gbiE9bnVsbD97bnE6bi5tc2d9Om51bGx9OwokST1mdW5jdGlvbihuKXtuLkomJm4uTiYmKG4uSi51bnN1YnNjcmliZSgiaW50ZXJuYWx2aWRlb2Zvcm1hdGNoYW5nZSIsbi5YLG4pLG4uTi51bnN1YnNjcmliZSgiZGF0YWxvYWRlZCIsbi5YLG4pKX07CkFldD1mdW5jdGlvbihuKXt2YXIgVz1uZXcgZlloO1cuWT1uLlMoImg1X2dhcGxlc3Nfc3VwcG9ydF90eXBlc19kaWZmIik7Vy50dz0hMTtXLlRDPW4uUygiaHRtbDVfZ2FwbGVzc191c2VfZm9ybWF0X2luZm9fZml4Iik7Vy5PPW4uUygiaHRtbDVfZ2FwbGVzc19kaXNhYmxlX29uX2F2MSIpJiYhbi5TKCJodG1sNV9nYXBsZXNzX2VuYWJsZV9vbl9hdjEiKTtXLkQ9bi5TKCJodG1sNV9nYXBsZXNzX2NoZWNrX2NvZGVjX2RpZmZfc3RyaWN0bHkiKTtXLmJkPW4uUygiaHRtbDVfZ2FwbGVzc19vbl9hZF9hdXRvcGxheSIpO1cuY0o9bi5TKCJodG1sNV9nYXBsZXNzX2Rpc2FibGVfZGlmZl9hc3BlY3RfcmFkaW8iKTtXLlY9bi5TKCJodG1sNV9nYXBsZXNzX2FkX2F1dG9wbGF5X29uX2FkX3RvX3ZpZGVvX29ubHkiKSYmIW4uUygiaHRtbDVfZGlzYWJsZV9sb29wX3JhbmdlX2Zvcl9zaG9ydHNfYWRzIik7Vy5XPW4uUygiaHRtbDVfcHNldWRvZ2FwbGVzc19zaG9ydHNfc2Vla190b19uZXh0X3N0YXJ0Iik7Clcuaj1uLlp0KCkuTi5RUShKZTEpO1cuSz1uLlMoImh0bWw1X2dhcGxlc3NfYWRfYXV0b3BsYXlfb25fdmlkZW9fdG9fYWRfb25seSIpO1cuTj1OdW1iZXIobi5adCgpLk4uUVEoSVlpKSk7Vy5KPWcuZE0obi5leHBlcmltZW50cywiaHRtbDVfc2hvcnRzX2dhcGxlc3NfbmV4dF9idWZmZXJfaW5fc2Vjb25kcyIpPz9XLko7Vy5YPU51bWJlcihuLlp0KCkuTi5RUShTb1MpPz9XLlgpO3JldHVybiBXfTsKcmY9ZnVuY3Rpb24obixXKXtXPD1uLnN0YXR1cy5zdGF0dXN8fChuLnN0YXR1cz17c3RhdHVzOlcsZXJyb3I6bnVsbH0sVz09PTUmJm4uQ1IucmVzb2x2ZSgpKX07Cm1yaj1mdW5jdGlvbihuLFcsRCxiKXtuPW4uaXNWaWV3KCk/bi5tZWRpYUVsZW1lbnQ6bjtyZXR1cm4gbmV3IGcuc2cobixXLEQsYil9OwpLRWg9YXN5bmMgZnVuY3Rpb24obil7aWYobi5xTigpKXJldHVybiBQcm9taXNlLnJlamVjdChFcnJvcihuLnN0YXR1cy5lcnJvcnx8ImRpc3Bvc2VkIikpO24udGltZW91dC5zdGFydCgpO2F3YWl0IG4uQ1I7dmFyIFc9bi5OLmg1KCk7aWYoVy5pc0VuZGVkKCkpcmV0dXJuIG4uS2coImVuZGVkX2luX2ZpbmlzaFRyYW5zaXRpb24iKSxQcm9taXNlLnJlamVjdChFcnJvcihuLnN0YXR1cy5lcnJvcnx8IiIpKTtpZighbi5BYnx8IW42KG4uQWIpKXJldHVybiBuLlYmJm4uTi5VKCJubWMiLHtubXM6ISFuLkFiLG5tcnM6bi5BYj8uVygpfSksbi5LZygibmV4dF9tc2VfY2xvc2VkIiksUHJvbWlzZS5yZWplY3QoRXJyb3Iobi5zdGF0dXMuZXJyb3J8fCIiKSk7aWYobi5KLlV6KCkhPT1uLkFiKXJldHVybiBuLktnKCJuZXh0X21zZV9taXNtYXRjaCIpLFByb21pc2UucmVqZWN0KEVycm9yKG4uc3RhdHVzLmVycm9yfHwiIikpO3ZhciB7SF86RCxSOTpiLEYzOnZ9PW4uSygpO24uTi5jUCghMSwKITApO2lmKG4uVil7dmFyIGs9bi5BYi5OLGg9bi5BYi5KO2suVnUoITApO2guVnUoITApO2lmKGsuaVEoKSl7dmFyIHg9ay5aZygpO2xldCBMPWsuayQuTXIoKTt4JiZ4LnNlZ21lbnRTdGFydFRpbWUrTDxEJiZrLmFib3J0KCl9aC5pUSgpJiYoaz1oLlpnKCkseD1oLmskLk1yKCksayYmay5zZWdtZW50U3RhcnRUaW1lK3g8RCYmaC5hYm9ydCgpKX1uLnBvbGljeS5OPjAmJihuLlZ1KG4uQWIsITApLG4uSi51bCgpKTtoPW1yaihXLEQsdiwhbi5KLmdldFZpZGVvRGF0YSgpLmlzQWQoKSk7bi5KLnNldE1lZGlhRWxlbWVudChoKTsoaz1uLk4uTHAoKSkmJm4uSi5CbihrLkFvLGsud08pO24udHcmJihuLnBvbGljeS5XfHxuLkouc2Vla1RvKG4uSi5nZXRDdXJyZW50VGltZSgpKy4wMDEse0E5OiEwLFpVOjMscWQ6ImdhcGxlc3NfcHNldWRvIn0pLGgucGxheSgpKTtXPVcueXIoKTtXLmNwbj1uLk4uZ2V0VmlkZW9EYXRhKCkuY2xpZW50UGxheWJhY2tOb25jZTtXLnN0PWAke0R9YDtXLmV0PQpgJHt2fWA7bi5KLlUoImdhcGxlc3MiLFcpO24uTi5VKCJnYXBsZXNzVG8iLHtjcG46bi5KLmdldFZpZGVvRGF0YSgpLmNsaWVudFBsYXliYWNrTm9uY2V9KTtXPW4uTi5nZXRQbGF5ZXJUeXBlKCk9PT1uLkouZ2V0UGxheWVyVHlwZSgpO24uTi5OMihiLCEwLCExLFcsbi5KLmdldFZpZGVvRGF0YSgpLmNsaWVudFBsYXliYWNrTm9uY2Usbi5KLmdldFZpZGVvRGF0YSgpLnZpZGVvSWQpO24uSi5OMihuLkouZ2V0Q3VycmVudFRpbWUoKSwhMCwhMCxXLG4uTi5nZXRWaWRlb0RhdGEoKS5jbGllbnRQbGF5YmFja05vbmNlLG4uTi5nZXRWaWRlb0RhdGEoKS52aWRlb0lkKTtuLkouUDIoKTtnLm1LKCgpPT57IW4uSi5nZXRWaWRlb0RhdGEoKS5ZJiZuLkouZ2V0UGxheWVyU3RhdGUoKS5pc09yV2lsbEJlUGxheWluZygpJiZuLkouZTIoKX0pOwpyZihuLDYpO24uZGlzcG9zZSgpO3JldHVybiBQcm9taXNlLnJlc29sdmUoKX07ClBkWj1mdW5jdGlvbihuKXtpZihuLkouZ2V0VmlkZW9EYXRhKCkuVyl7dmFyIFc9bi50Yi5HKCkuUygiaHRtbDVfZ2FwbGVzc19zdXNwZW5kX25leHRfbG9hZGVyIikmJm4uaj09PTE7bi5KLm5tKG4uQWIsVyxuLmo9PT0xJiZnLllOKG4uTi5nZXRWaWRlb0RhdGEoKSkpO3JmKG4sMyk7T2xNKG4pO3ZhciB7Z2Q6RCxUYzpifT1OSyhuKTtELnN1YnNjcmliZSgidXBkYXRlZW5kIixuLmVYLG4pO2Iuc3Vic2NyaWJlKCJ1cGRhdGVlbmQiLG4uZVgsbik7bi5lWChEKTtuLmVYKGIpfX07Ck9sTT1mdW5jdGlvbihuKXtuLk4udW5zdWJzY3JpYmUoImludGVybmFsdmlkZW9kYXRhY2hhbmdlIixuLlgsbik7bi5KLnVuc3Vic2NyaWJlKCJpbnRlcm5hbHZpZGVvZGF0YWNoYW5nZSIsbi5YLG4pO24udGIuRygpLlMoImh0bWw1X2dhcGxlc3NfdXNlX2Zvcm1hdF9pbmZvX2ZpeCIpJiYobi5OLnVuc3Vic2NyaWJlKCJpbnRlcm5hbHZpZGVvZm9ybWF0Y2hhbmdlIixuLlgsbiksbi5KLnVuc3Vic2NyaWJlKCJpbnRlcm5hbHZpZGVvZm9ybWF0Y2hhbmdlIixuLlgsbikpO24uTi51bnN1YnNjcmliZSgibWVkaWFzb3VyY2VhdHRhY2hlZCIsbi5YLG4pO24uSi51bnN1YnNjcmliZSgic3RhdGVjaGFuZ2UiLG4uVEMsbil9OwpOSz1mdW5jdGlvbihuKXtyZXR1cm57Z2Q6bi5XLk4uayQsVGM6bi5XLkouayR9fTsKcE89ZnVuY3Rpb24obixXKXtpZighbilyZXR1cm4hMTt2YXIgRD1uLko7cmV0dXJuIEJSKG4uTj8uWkYoKSxXKSYmQlIoRD8uWkYoKSxXKX07ClpsaT1mdW5jdGlvbihuKXtpZighbilyZXR1cm4hMTt2YXIgVz1uLko7cmV0dXJuIG4uTj8uaVEoKXx8Vz8uaVEoKX07CkVEaj1hc3luYyBmdW5jdGlvbihuKXtpZighbi5xTigpJiZuLlgmJm4uTil7bi5PJiZuLmFwcC5NTigpLmtOKCEwLCExKTt2YXIgVz1udWxsO2lmKG4uVyl0cnl7YXdhaXQgS0VoKG4uVyl9Y2F0Y2goYil7Vz1ifWlmKG4uTiYmKFVydy5jVygidnFzcCIsKCk9PntuLmFwcC5RVChuLk4pfSksbi5OKSl7dmFyIEQ9bi5OLmg1KCk7Cm4uYXBwLkcoKS5TKCJodG1sNV9nYXBsZXNzX3NlZWtfb25fbmVnYXRpdmVfdGltZSIpJiZEJiZELmdldEN1cnJlbnRUaW1lKCk8LS4wMSYmbi5OLnNlZWtUbygwKTtVcncuY1coInZxcHYiLCgpPT57bi5hcHAucGxheVZpZGVvKCl9KTsKVyYmKG4uTj8oVz1XP1cubWVzc2FnZToiZm9yY2VkIixuLko/LlUoImdhcGZ1bGZiayIse3I6V30pLG4uYXBwLkcoKS5adCgpLk4uUVEoeWVpKSYmKG4uTi5nZXRWaWRlb0RhdGEoKS5HUz0hMSksbi5OLk9jKFcpKTpuLko/LlUoImdhcHNwIix7fSkpO1c9bi5YO1lJKG4pO1cmJlcucmVzb2x2ZSgpO1Byb21pc2UucmVzb2x2ZSgpfX19OwpIYz1mdW5jdGlvbihuKXtuLkQmJm4uaiYmbi5ELnJlbW92ZUV2ZW50TGlzdGVuZXIoInRpbWV1cGRhdGUiLG4uaik7bi5qPW51bGw7bi5EPW51bGx9OwpZST1mdW5jdGlvbihuLFc9ITEpe2lmKG4uSil7aWYobi5WKXt2YXIgRD1uLko7bi5hcHAuUkIucmVtb3ZlRXZlbnRMaXN0ZW5lcihnLm95KCJ2cXVldWVkIiksbi5ZKTtELnJlbW92ZUN1ZVJhbmdlKG4uVil9bi5KPW51bGw7bi5WPW51bGx9bi5XJiYobi5XLnN0YXR1cy5zdGF0dXMhPT02JiYoRD1uLlcsRC5zdGF0dXMuc3RhdHVzIT09SW5maW5pdHkmJkQuaiE9PTEmJkQuS2coIkNhbmNlbGVkIikpLG4uVz1udWxsKTtuLlg9bnVsbDtuLk4mJiFXJiZuLk4hPT1uLmFwcC5jWCgpJiZuLk4hPT1uLmFwcC5NTigpJiZuLk4uZGlzcG9zZSgpO24uTiYmVyYmbi5OLm15KCk7bi5OPW51bGw7bi5PPSExfTsKdTd0PWZ1bmN0aW9uKG4sVyxEPSEwKXt2YXIgYj1uLmFwcC5NTigpLHY9Yi5nZXRWaWRlb0RhdGEoKS5pc0xpdmVQbGF5YmFjaz9JbmZpbml0eTpiLlBHKCEwKSoxRTM7Vz52JiYoVz12LTIwMCwhbi5hcHAuRygpLlp0KCkuTi5RUShpbGkpfHxEKSYmKG4uTz0hMCk7RCYmYi5nZXRDdXJyZW50VGltZSgpPj1XLzFFMz9uLlkoKToobi5KPWIsRCYmKEQ9VyxXPW4uSixuLmFwcC5SQi5hZGRFdmVudExpc3RlbmVyKGcub3koInZxdWV1ZWQiKSxuLlkpLEQ9aXNGaW5pdGUoRCl8fEQvMUUzPlcuZ2V0RHVyYXRpb24oKT9EOjB4ODAwMDAwMDAwMDAwMCxuLlY9bmV3IGcubDUoRCwweDgwMDAwMDAwMDAwMDAse25hbWVzcGFjZToidnF1ZXVlZCJ9KSxXLmFkZEN1ZVJhbmdlKG4uVikpKX07CmRyTT1mdW5jdGlvbihuLFcsRCxiPTAsdj0wKXtuLmRUKCl8fChIYyhuKSxZSShuKSk7bi5YPW5ldyBZNjtuLk49Vzt1N3QobixELHY9PT0wKTt2YXIgaz1iLz0xRTMsaD1XLmdldFZpZGVvRGF0YSgpLk47aWYoYiYmaCYmbi5KKXtsZXQgeD1iLEw9MDtXLmdldFZpZGVvRGF0YSgpLmlzTGl2ZVBsYXliYWNrJiYoaz1NYXRoLm1pbihELzFFMyxuLkouUEcoITApKSxMPU1hdGgubWF4KDAsay1uLkouZ2V0Q3VycmVudFRpbWUoKSkseD1NYXRoLm1pbihiLFcuUEcoKStMKSk7az1tOHQoaCx4KXx8YjtrIT09YiYmbi5OLlUoInF2YWxuIix7c3Q6YixhdDprLHJtOkwsY3Q6eH0pfVc9aztiPW4uTjtiLmdldFZpZGVvRGF0YSgpLllaPSEwO2IuZ2V0VmlkZW9EYXRhKCkuSz0hMDtiLmd6KCEwKTtoPXt9O24uSiYmKGg9bi5KLmw1KCksaz1uLkouZ2V0VmlkZW9EYXRhKCkuY2xpZW50UGxheWJhY2tOb25jZSxoPXtjcnQ6KGgqMUUzKS50b0ZpeGVkKCksY3BuOmt9KTtiLlUoInF1ZXVlZCIsaCk7VyE9PQowJiZiLnNlZWtUbyhXKy4wMSx7QTk6ITAsWlU6MyxxZDoidmlkZW9xdWV1ZXJfcXVldWVkIn0pO24uVz1uZXcgb0RiKG4uSyxuLmFwcC5NTigpLG4uTixELG4uYXBwLHYpO0Q9bi5XO0Quc3RhdHVzLnN0YXR1cyE9PUluZmluaXR5JiYocmYoRCwxKSxELk4uc3Vic2NyaWJlKCJpbnRlcm5hbHZpZGVvZGF0YWNoYW5nZSIsRC5YLEQpLEQuSi5zdWJzY3JpYmUoImludGVybmFsdmlkZW9kYXRhY2hhbmdlIixELlgsRCksRC50Yi5HKCkuUygiaHRtbDVfZ2FwbGVzc191c2VfZm9ybWF0X2luZm9fZml4IikmJihELk4uc3Vic2NyaWJlKCJpbnRlcm5hbHZpZGVvZm9ybWF0Y2hhbmdlIixELlgsRCksRC5KLnN1YnNjcmliZSgiaW50ZXJuYWx2aWRlb2Zvcm1hdGNoYW5nZSIsRC5YLEQpKSxELk4uc3Vic2NyaWJlKCJtZWRpYXNvdXJjZWF0dGFjaGVkIixELlgsRCksRC5KLnN1YnNjcmliZSgic3RhdGVjaGFuZ2UiLEQuVEMsRCksRC5OLnN1YnNjcmliZSgibmV3ZWxlbWVudHJlcXVpcmVkIixELlZRLApEKSxELlgoKSk7cmV0dXJuIG4uWH07CmpqeD1mdW5jdGlvbihuLFcpe2lmKG4uYXBwLkcoKS5adCgpLk4uUVEoejBpKSl7dmFyIEQ9bi5hcHAuRygpLlp0KCkuTi5RUShsWWgpO2lmKCEoRDw9MCkpe0hjKG4pO3ZhciBiPW4uYXBwLk1OKCk/Lmg1KCk7YiYmbi5OJiYobi5hcHAuRygpLlp0KCkuTi5RUShUX0MpP24uTi5nZXRWaWRlb0RhdGEoKS5Sbz0hMDpuLk4uZ2V0VmlkZW9EYXRhKCkuR1M9ITAsbi5qPSgpPT57dmFyIHY9Yi5nZXRDdXJyZW50VGltZSgpO3Y+PVcrRC8xRTMmJih2PURhdGUubm93KCktKHYtVykqMUUzLG4uYXBwLmVHKCkudGljaygicGJzIix2KSxIYyhuKSl9LG4uRD1iLGIuYWRkRXZlbnRMaXN0ZW5lcigidGltZXVwZGF0ZSIsbi5qKSl9fX07CkNkaj1mdW5jdGlvbihuLFcsRCl7aWYobi5kVCgpKXJldHVybiJxaWUiO2lmKG4uTj09bnVsbHx8bi5OLnFOKCl8fG4uTi5nZXRWaWRlb0RhdGEoKT09bnVsbClyZXR1cm4icXBkIjtpZihXLnZpZGVvSWQhPT1uLk4uRTEoKSlyZXR1cm4idmlubSI7aWYoKG4uVz8uYmQoKXx8LTEpPD0wKXJldHVybiJpdmQiO2lmKEQhPT0xKXJldHVybiJ1cHQiO249bi5XPy5lJCgpO3JldHVybiBuIT1udWxsP246bnVsbH07CkpoPWZ1bmN0aW9uKG4pe3ZhciBXPSgwLGcuUikoKTtuLmRhdGEuZm9yRWFjaChEPT57RC5leHBpcmU8VyYmZk8obixELCEwKX0pOwpuLmRhdGE9Zy5FTShuLmRhdGEsRD0+IShELmV4cGlyZTxXKSl9OwpJZT1mdW5jdGlvbihuKXtuLk4uc3RvcCgpO3ZhciBXPUluZmluaXR5O2ZvcihsZXQgRCBvZiBuLmRhdGEpRC5leHBpcmU8VyYmKFc9RC5leHBpcmUpO1cmJmlzRmluaXRlKFcpJiYoVz1NYXRoLm1heChXLURhdGUubm93KCksMTAwKSxuLk4uc3RhcnQoVykpfTsKQl9DPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uLmRhdGEuZmluZCh2PT52LmtleT09PVcpOwpiJiYoRCo9MUUzLGIuZXhwaXJlPSgwLGcuUikoKStELEllKG4pKX07CnNGPWZ1bmN0aW9uKG4pe0poKG4pO3JldHVybiBuLmRhdGEubWFwKFc9PlcudmFsdWUpfTsKZk89ZnVuY3Rpb24obixXLEQpe0QmJm4uSiYmbi5KKFcudmFsdWUpfTsKRkVaPWZ1bmN0aW9uKG4pe3ZhciBXPW4uTj9bbi5OXTpbXTtmb3IobGV0IEQgb2YgT2JqZWN0LnZhbHVlcyhuLmopKUQuZGlzcG9zZSgpLG4uS3x8ZGVsZXRlIG4uVltELldOKCldO24uaj17fTtuLk49bnVsbDtuLlk9bnVsbDtuLkQuY2xlYXIoKTtTcyhuLFtdLFcpfTsKU3M9ZnVuY3Rpb24obixXLEQpe3ZhciBiPVtuLkpdO24uTiYmYi5wdXNoKG4uTik7bi5hcGkuV0ooInBsYXliYWNrQ2hhbmdlIix7YWN0aXZlOmIuZmlsdGVyKHY9PnYuZ2V0UGxheWVyVHlwZSgpIT09MCkubWFwKHY9Pih7Y3BuOnYuV04oKX0pKSwKc3RhcnRlZDpXLmZpbHRlcih2PT52LmdldFBsYXllclR5cGUoKSE9PTApLm1hcCh2PT4oe2Nwbjp2LldOKCl9KSksCmVuZGVkOkQuZmlsdGVyKHY9PnYuZ2V0UGxheWVyVHlwZSgpIT09MCkubWFwKHY9Pih7Y3BuOnYuV04oKX0pKX0pfTsKd1AxPWZ1bmN0aW9uKG4sVyl7aWYobi5LKXtmb3IobGV0IEQgb2YgT2JqZWN0LnZhbHVlcyhuLlcpKWlmKEQuV04oKT09PVcpcmV0dXJuIEQ7aWYobi5PPy5XTigpPT09VylyZXR1cm4gbi5PO2lmKHZvaWQgMD09PVcpcmV0dXJuIG51bGw7aWYobi5qW1ddKXJldHVybiBuLmpbV107Zm9yKGxldCBEIG9mIHNGKG4uWCkpaWYoRC5XTigpPT09VylyZXR1cm4gRDtyZXR1cm4gbnVsbH1pZihuLmFwaS5HKCkuWnQoKS5OLlFRKGcuQWgpKXJldHVybiBuLlZbV118fG51bGw7Zm9yKGxldCBEIG9mIE9iamVjdC52YWx1ZXMobi5XKSlpZihELldOKCk9PT1XKXJldHVybiBEO3JldHVybiBuLmpbV118fG51bGx9OwpNa009ZnVuY3Rpb24obixXLEQsYil7dmFyIHY9RC5nZXRWaWRlb0RhdGEoKTtpZighdi5saXZlUHJlbG9hZCl7dmFyIGs9KCk9PntpZihuLlguZ2V0KFcpPT09RCl7dmFyIGg9di5nZXRQbGF5ZXJSZXNwb25zZSgpO2gmJihoPWgucmVzcG9uc2VDb250ZXh0Py5jYWNoZUluc3RydWN0aW9uPy5tYXhBZ2VTZWNvbmRzPz9oLnJlc3BvbnNlQ29udGV4dD8ubWF4QWdlU2Vjb25kcz8/dm9pZCAwLGghPT12b2lkIDAmJihoPGImJkQuVSgidHRsZCIse3ByZXY6Yi50b1N0cmluZygpLCJuZXciOmgudG9TdHJpbmcoKX0pLGg9PT0wP24uWC5yZW1vdmUoVywhMCk6Ql9DKG4uWCxXLGgpKSl9fTsKaWYodi5pc0xvYWRlZCgpKWsoKTtlbHNle2xldCBoPSgpPT57aygpO3YudW5zdWJzY3JpYmUoImRhdGFsb2FkZWQiLGgpfTsKdi5zdWJzY3JpYmUoImRhdGFsb2FkZWQiLGgpfX19OwptUj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9W1ddLHY9bi5OP1tuLk5dOltdO24ualtXLldOKCldPVc7bi5LfHwobi5WW1cuV04oKV09Vyk7bi5OPVc7RCYmKG4uWT1XKTtuLkQuc2V0KCIiLFcpO1NzKG4sYix2KX07CmNlYj1mdW5jdGlvbihuKXt2YXIgVz1uLmV4cGVyaW1lbnRzLEQ9Vy5FcS5iaW5kKFcpO0tPPUQoImh0bWw1X3VzZV9hc3luY19zdG9wVmlkZW8iKTtSMGk9RCgiaHRtbDVfcGF1c2VfZm9yX2FzeW5jX3N0b3BWaWRlbyIpO09nPUQoImh0bWw1X25vdF9yZXNldF9tZWRpYV9zb3VyY2UiKXx8RCgiaHRtbDVfbm90X3Jlc2V0X21lZGlhX3NvdXJjZV9ub25fZHJtX3ZvZCIpO0QoImh0bWw1X2xpc3Rlbl9mb3JfYXVkaW9fb3V0cHV0X2NoYW5nZWQiKSYmKHdVTT0hMCk7REg9RCgiaHRtbDVfbm90X3Jlc2V0X21lZGlhX3NvdXJjZSIpfHxEKCJodG1sNV9ub3RfcmVzZXRfbWVkaWFfc291cmNlX25vbl9kcm1fdm9kIik7UWpaPUQoImh0bWw1X25vdF9yZXNldF9tZWRpYV9zb3VyY2UiKXx8RCgiaHRtbDVfbm90X3Jlc2V0X21lZGlhX3NvdXJjZV9ub25fZHJtX3ZvZCIpO1BjPUQoImh0bWw1X3JldGFpbl9zb3VyY2VfYnVmZmVyX2FwcGVuZHNfZm9yX2RlYnVnZ2luZyIpO25WcihEKCJ3ZWJfd2F0Y2hfcGlwIil8fApEKCJ3ZWJfc2hvcnRzX3BpcCIpKTtJdmgoRCgibG9nX2ZvcmVncm91bmRfbm90X2ZvY3VzZWRfYXNfYmFja2dyb3VuZCIpKTtTeXIoRCgid2ViX3BsYXllcl9waXBfbG9nZ2luZ19maXgiKSk7RCgiaHRtbDVfbWVkaWFzdHJlYW1fYXBwbGllc190aW1lc3RhbXBfb2Zmc2V0IikmJihzND0hMCk7bi5XWCgpJiZNRngoKTtFcnJvci5zdGFja1RyYWNlTGltaXQ9NTA7dmFyIGI9Zy5kTShXLCJodG1sNV9pZGxlX3JhdGVfbGltaXRfbXMiKTtiJiZPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCJyZXF1ZXN0SWRsZUNhbGxiYWNrIix7dmFsdWU6dj0+d2luZG93LnNldFRpbWVvdXQodixiKX0pOwp3Sngobi5XKTthaU0oRCgiaHRtbDVfdXNlX3VtcF9yZXF1ZXN0X3NsaWNlciIpKTtEKCJodG1sNV9kaXNhYmxlX3N0cmVhbWluZ194aHIiKSYmKE5zPSExKTtEKCJodG1sNV9ieXRlcmF0ZV9jb25zdHJhaW50cyIpJiYoaFQ9ITApO0QoImh0bWw1X3VzZV9ub25fYWN0aXZlX2Jyb2FkY2FzdF9mb3JfcG9zdF9saXZlIikmJihadT0hMCk7RCgiaHRtbDVfZW5hYmxlX2VuY3J5cHRlZF9hdjEiKSYmKFBSPSEwKTtXLlp0KCkuTi5RUShWa3cpJiYoRU49ITApO01wQyhnLmRNKG4uZXhwZXJpbWVudHMsImh0bWw1X3N0aWNreV9kdXJhdGlvbl9tb3MiKSl9Owp5UjE9ZnVuY3Rpb24obil7dmFyIFc9e30sRD1uLmV4cGVyaW1lbnRzLncwKCksYj1bXTtuPShrLGgseCk9PntiLnB1c2goU2soaCh4KSxMPT57V1trXT1MfSkpfTsKdmFyIHY9RC5OLlFRKGFZeCk7diYmbigiTWVkaWFTb3VyY2UuRW5hYmxlVXNpbmdNZWRpYVNvdXJjZUJ1ZmZlcmVkUmFuZ2UiLHFScix2PT09MSk7KHY9RC5OLlFRKG5NdykpJiZuKCJIVFRQMyIsR253LHY9PT0xKTsodj1ELk4uUVEoV2t0KSkmJm4oIk1lZGlhU291cmNlLkVuYWJsZVVzaW5nTWVkaWFTb3VyY2VBdHRhY2htZW50TWV0aG9kcyIsdEZ4LHY9PT0xKTsodj1ELk4uUVEoRERaKSkmJm4oIlFVSUMiLCRMQyx2PT09MSk7KHY9RC5OLlFRKGJSdykpJiZuKCJNZWRpYS5QbGF5ZXJDb25maWd1cmF0aW9uLkRlY29kZVRvVGV4dHVyZVByZWZlcnJlZCIsc2d3LHY9PT0xKTsodj1ELk4uUVEodk1TKSkmJm4oIk1lZGlhLkF1ZGlvV3JpdGVEdXJhdGlvbkxvY2FsIixyYzIsTnVtYmVyKHYpKTsodj1ELk4uUVEoazZ3KSkmJm4oIk1lZGlhLkV4cGVyaW1lbnRhbE1heFBlbmRpbmdCeXRlc1BlclBhcnNlIixLWFosTnVtYmVyKHYpKTsodj1ELk4uUVEoaFVpKSkmJm4oIk1lZGlhLkVuYWJsZUZsdXNoRHVyaW5nU2VlayIsCkpjYixOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoeERaKSkmJm4oIkRlY29kZXJCdWZmZXIuRW5hYmxlQ29uZmlndXJhYmxlRGVjb21taXRTdHJhdGVneSIsSXl3LE51bWJlcih2KSk7KHY9RC5OLlFRKExrQykpJiZuKCJEZWNvZGVyQnVmZmVyLlJlbGVhc2VNZW1vcnlPbkJhY2tncm91bmQiLFNSdCxOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoZVVVKSkmJm4oIk1lZGlhLkRlY29kZWRBdWRpb0J1ZmZlclBvb2wiLEFjWixOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoZ014KSkmJm4oIk1lZGlhLlZpZGVvRnJhbWVJbXBsUG9vbCIsbUwyLE51bWJlcih2KT09PTEpOyh2PUQuTi5RUShYR1UpKSYmbigiTWVkaWEuRW5hYmxlUmVzZXRBdWRpb0RlY29kZXIiLGZ5VSxOdW1iZXIodik9PT0xKTsodj1ELk4uUVEocXhoKSkmJm4oIk1lZGlhLkluY3JlbWVudGFsUGFyc2VMb29rQWhlYWQiLEhGWixOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoRzYyKSkmJm4oIk1lZGlhLk1heFNhbXBsZXNQZXJXcml0ZSIsCk9GQyxOdW1iZXIodikpOyh2PUQuTi5RUSh0NWkpKSYmbigiTWVkaWEuVmlkZW9EZWNvZGVySW5pdGlhbFByZXJvbGxDb3VudCIsTjBTLHYpOyh2PUQuTi5RUSgkRDEpKSYmbigiTWVkaWEuTWVkaWFDb2RlY1Jlc2V0RGVsYXlNcyIsUFFyLHYpOyh2PUQuTi5RUShyUmkpKSYmbigiTWVkaWEuVmlkZW9SZW5kZXJlck1pbklucHV0QnVmZmVycyIscE50LHYpOyh2PUQuTi5RUShzd2kpKSYmbigiTWVkaWEuVmlkZW9SZW5kZXJlck1pbkRlY29kZWRGcmFtZXMiLFlSdyx2KTsodj1ELk4uUVEoTmRTKSkmJm4oIk1lZGlhLlVzZUR1YWxUaHJlYWRzRm9yVmlkZW8iLHljMixOdW1iZXIodik9PT0xKTsodj1ELk4uUVEocEcxKSkmJm4oIk1lZGlhLlZpZGVvQnVmZmVyU2l6ZUNsYW1wTWIiLEV1dCx2KTsodj1ELk4uUVEoWXhyKSkmJm4oIk1lZGlhLjcyMHBWaWRlb0J1ZmZlclNpemVDbGFtcE1iIixpRlUsdik7KHY9RC5OLlFRKEhScikpJiZuKCJNZWRpYS5EaXNhYmxlTG93UGVyZm9ybWFuY2VTb2Z0d2FyZURlY29kZSIsClpGdCxOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoZndqKSkmJm4oIk1lZGlhLkVuYWJsZUF2MVN0YXJ0dXBPcHRpbWl6YXRpb24iLFVMMixOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoSlIxKSkmJm4oIk1lZGlhLkVuYWJsZUxvd0xhdGVuY3kiLGRMaSxOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoSXd4KSkmJm4oIk1lZGlhLkZvcmNlRGVjb2RlVG9UZXh0dXJlIix1cXQsTnVtYmVyKHYpPT09MSk7KHY9RC5OLlFRKFN4aSkpJiZuKCJNZWRpYS5Gb3JjZUNsZWFyU3VyZmFjZVZpZXciLG91MixOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoQVJNKSkmJm4oIk1lZGlhLlNraXBGbHVzaE9uRGVjb2RlclRlYXJkb3duIix6UVMsTnVtYmVyKHYpPT09MSk7KHY9RC5OLlFRKG1EaCkpJiZuKCJNZWRpYS5BbGxvd0F1ZGlvV3JpdGluZ09uUGF1c2UiLGx5MixOdW1iZXIodik9PT0xKTsodj1ELk4uUVEoS2tpKSkmJm4oIk1lZGlhLkVuYWJsZVZpZGVvUmVuZGVyZXJWc3BBZGp1c3RtZW50IixUMFUsTnVtYmVyKHYpPT09CjEpOyh2PUQuTi5RUShPUlUpKSYmbigiTWVkaWEuU2tpcFZpZGVvRnJhbWVzT3ZlcjYwRnBzIixqZ2gsTnVtYmVyKHYpPT09MSk7KHY9RC5OLlFRKFBoaikpJiZuKCJNZWRpYS5GbHVzaEF1ZGlvVHJhY2tEdXJpbmdTZWVrIixDUUMsTnVtYmVyKHYpPT09MSk7KHY9RC5OLlFRKFpSeCkpJiZuKCJNZWRpYS5CeXBhc3NNb2pvRm9yTWVkaWEiLEIwaixOdW1iZXIodik9PT0xKTsoRD1ELk4uUVEoVUQyKSkmJm4oIk1lZGlhLklnbm9yZU1lZGlhQ29kZWNDYWxsYmFja3NEdXJpbmdGbHVzaGluZyIsRlgyLE51bWJlcihEKT09PTEpO3JldHVybiBTayhGTngoYiksKCk9PlcpfTsKR0Q9ZnVuY3Rpb24obixXPSExLEQ9MTA0ODU3Nil7dmFyIGI9VWcobik7Yj0xLygobi5LLkxnKCl8fDApKm4ucG9saWN5LkQrMS9iKTt2YXIgdj1uLlMkLkxnKCk7dj12PjA/djoxO3ZhciBrPU1hdGgubWF4KGIsdik7bi5wb2xpY3kuWD4wJiZ2PGImJihrPU1hdGgubWluKG4ucG9saWN5LlgsMSksaz0oMS1rKSpiK2sqdik7aWYoIVcpcmV0dXJuIGs7Vz0xRS05KyRzKG4pO0Q9aypNYXRoLm1pbigxLEQvKGsqVykpO24ucG9saWN5Lkp8fChuPSgobi5ELnBlcmNlbnRpbGUoLjk4KXx8MCktMSkvMixuPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSksRCo9MS0uNSpuKTtyZXR1cm4gRH07CiRzPWZ1bmN0aW9uKG4pe3ZhciBXPW4uWS5MZygpK24uVEMuTGcoKXx8MDtXPWlzTmFOKFcpPy41Olc7bi5wb2xpY3kuVDY+PTAmJihXPU1hdGgubWluKFcsbi5wb2xpY3kuVDYpKTtyZXR1cm4gV307CmUwPWZ1bmN0aW9uKG4pe3ZhciBXPXtkZWxheTokcyhuKSxzdGFsbDpuLksuTGcoKXx8MCxieXRlcmF0ZTpVZyhuKSxpbml0Om4uVlF9LEQ9bi5XWzBdO0Quc3RhbXA9TWF0aC5yb3VuZChuLlYvMzZFNSkqMzZFNTtELm5ldD1NYXRoLmNlaWwobi5iZCk7RC5tYXg9bi5pbnRlcnJ1cHRpb25zWzBdfHwwO1cuaW50ZXJydXB0aW9ucz1uLlc7cmV0dXJuIFd9Owp6RD1mdW5jdGlvbihuLFcpe2lmKG4uail7bGV0IEQ9Vy1uLmo7aWYoRDw2RTQpe2lmKEQ+MUUzKXtsZXQgYj1uLmludGVycnVwdGlvbnM7Yi5wdXNoKE1hdGguY2VpbChEKSk7Yi5zb3J0KCh2LGspPT5rLXYpOwpiLmxlbmd0aD4xNiYmYi5wb3AoKX1uLmJkKz1EfX1uLmo9V307CnlTPWZ1bmN0aW9uKG4sVyxEKXtpc05hTihEKXx8KG4udHcrPUQpO2lzTmFOKFcpfHwobi5EdCs9Vyl9OwpCdT1mdW5jdGlvbihuLFcsRCxiPVcpe24uWC5JSShiLEQvVyk7bi5WPSgwLGcuUikoKX07CkVnPWZ1bmN0aW9uKG4sVyxEKXtXPU1hdGgubWF4KFcsbi5KLk4pO24uSy5JSSgxLEQvVyl9Owppcz1mdW5jdGlvbihuLFcsRCxiLHYsaz0hMSl7bi5TJC5JSShXLEQvVyk7bi5WPSgwLGcuUikoKTt2fHxuLkQuSUkoMSxXLWIpO2t8fChuLmo9MCk7bi5jSj4tMSYmKDAsZy5SKSgpLW4uY0o+M0U0JiYoc24oZTAobikpLG4uY0o9KDAsZy5SKSgpLG4uTz0hMCl9OwpUWj1mdW5jdGlvbihuKXtyZXR1cm4oMCxnLlIpKCktbi5WPj00RTN9OwpVZz1mdW5jdGlvbihuKXtuPW4uWC5MZygpO3JldHVybiBuPjA/bjoxfTsKaVJaPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj1uZXcgRU1NKEQpO24mJihiLlc9ITAsYi5qPS4xKTtELkVxKCJodG1sNV9tZWRpYV90aW1lX3dlaWdodCIpJiYoYi5XPSExKTtXJiYoYi5OPVcvOCk7Yi5KPXA3KCk+PTQ4MDtyZXR1cm4gYn07CnVzPWZ1bmN0aW9uKG4pe24uTi5jbGVhcigpO24uVy5jbGVhcigpO24uSi5jbGVhcigpfTsKdWFVPWZ1bmN0aW9uKG4sVyxEKXtuPW4uSjt2YXIgYj1nLlc0KG4se29hOld9LCh2LGspPT52Lm9hLWsub2EpOwpiPWI8MD8oYisyKSotMTpiO2lmKGI+PTApZm9yKGxldCB2PWI7djw9YisxJiZ2PG4ubGVuZ3RoO3YrKyl7bGV0IGs9blt2XTtpZihXPj1rLm9hLUQmJlc8PWsuZEkrRClyZXR1cm4ga319OwpvTWg9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uTi5nZXQoVyk7Yj8oYi5wdXNoKEQpLGcuYmYoYiwodixrKT0+di5vYS1rLm9hKSk6bi5OLnNldChXLFtEXSl9OwpkRGI9ZnVuY3Rpb24obixXKXt2YXIgRD1bXTtmb3IobGV0IGIgb2Ygbi5KKVcoYil8fEQucHVzaChiKTtpZihuLkIuUygiaHRtbDVfc3N0bV9maXhlcyIpKWZvcihsZXQgYiBvZiBuLkopVyhiKSYmbi5XLmRlbGV0ZShiLmNwbik7bi5KPUR9Owp6VWg9ZnVuY3Rpb24obixXKXt2YXIgRD1uLkouaW5kZXhPZihXKTtEPj0wJiZuLkouc3BsaWNlKEQsMSk7bi5XLmRlbGV0ZShXLmNwbil9Owp0dmk9ZnVuY3Rpb24obixXKXtpZihuLnVLfHxXLmlkZW50aWZpZXImJm4ueXcuaGFzKFcuaWRlbnRpZmllcikpbi5iaih7c3RhcnRub2FkOlcuaWRlbnRpZmllcn0pLGcub2Uobik7ZWxzZSBpZihnLm9NKG4uY0osRD0+RC5pZGVudGlmaWVyPT09Vy5pZGVudGlmaWVyKSluLmJqKHt0aW1lZG91dGNwOjF9KSxuLlkuc3RhcnQoMCk7CmVsc2UgaWYoZy5vTShuLkR0LEQ9PkQuaWRlbnRpZmllcj09PVcuaWRlbnRpZmllcikpbi5iaih7ZmV0Y2hlZGNwOjF9KSxnLm9lKG4pOwplbHNlIGlmKG4uWS5pc0FjdGl2ZSgpKW4uYmooe3JhY2luZ2NwOmAke24uVj8uaWRlbnRpZmllcn1fJHtXLmlkZW50aWZpZXJ9YH0pO2Vsc2V7bi5DdT0obmV3IERhdGUpLmdldFRpbWUoKS8xRTM7bi5iaih7YWRmOjF9KTtsZXQgRD01RTM7RCYmVy5ldmVudD09PSJwcmVkaWN0U3RhcnQiJiYoRC09Vy5OKTtuLnZKPU1hdGgubWF4KEQsMTVFMyk7bi5EPSExO24uWS5zdGFydChuLnZKKTtuLlY9Vzt1cyhuLlRDKTtuLkZGPVtdfX07CmcuSnlpPWZ1bmN0aW9uKG4sVyxELGIsdixrLGgpe3ZhciB4PXY9PT0zLEw9bHdaKG4sVyxELHYsYixoKTtpZighTClyZXR1cm4gZGYobixELHgpLEw9Zy56VihuLEQpPyJ1bmRlYyI6Im5jcCIsbi5iaih7Z3ZwcnA6TCxtdDpXLHNlZzpELHR0OnYsaXRhZzpiLGNlOmh9KSxudWxsO3h8fG4uWXEuc2V0KEQsTCk7aD1MLnZQO3Y9bi5HTShELTEsdixrKT8uQmZ8fCIiO3Y9PT0iIiYmbi5iaih7ZWRzOjF9KTtrPVRkaihuLEwuc3NkYWlBZHNDb25maWcpO3g9bi5ncy5nZXRWaWRlb0RhdGEoKTt4PXguYkJbeC5KPy5jb250YWluZXJUeXBlfHwwXTtMPUwubUYmJkQ+PUwubUY/TC5tRjp2b2lkIDA7dj17YUQ6aD9scyhuLGgpOltdLGFkc0NvbmZpZzprLEJmOnYsREo6TCxvdjpnLk5oKHguc3BsaXQoIjsiKVswXSksZDM6eC5zcGxpdCgiOyIpWzFdfHwiIn07TD17TXk6dn07bi5HQyYmKFc9e2d2cHJwcm86InYiLHNxOkQsbXQ6Vy50b0ZpeGVkKDMpLGl0YWc6YixhY3Buczp2LmFEPy5qb2luKCJfIil8fAoibm9uZSIsYWJpZDpofSxuLmJqKFcpKTtyZXR1cm4gTH07Ck0yPWZ1bmN0aW9uKG4sVyxELGIsdil7Yj1ifHx7cmVhc29uOiJkaXNhYmxlc3NkYWkifTtpZihXJiZEKXtpZighZy5UVihuLFcsRCkpcmV0dXJuITE7Yi5zcT1EfWlmKG4udUspcmV0dXJuITE7bi51Sz0hMDtuLnVmPjAmJihuLnVmPTAsbi51Tj0iIixqcyhuLG4uZ3MuV04oKSwwKSxuLmFwaS5XSigic2VydmVyc3RpdGNoZWR2aWRlb2NoYW5nZSIpKTtuLmdzLmRuKGIsdik7cmV0dXJuITB9Owpqd2o9ZnVuY3Rpb24obixXLEQpe3ZhciBiPW4uald8fG4uYXBwLk1OKCkuZ2V0UGxheWVyU3RhdGUoKTtDTyhuLCEwKTtuLmdzLnNlZWtUbyhXLEQpO249bi5hcHAuTU4oKTtXPW4uZ2V0UGxheWVyU3RhdGUoKTtiLmlzT3JXaWxsQmVQbGF5aW5nKCkmJiFXLmlzT3JXaWxsQmVQbGF5aW5nKCk/bi5wbGF5VmlkZW8oKTpiLmlzUGF1c2VkKCkmJiFXLmlzUGF1c2VkKCkmJm4ucGF1c2VWaWRlbygpfTsKZy5CYz1mdW5jdGlvbihuKXtuLkdDJiZuLmJqKHthZGY6YDBfJHsobmV3IERhdGUpLmdldFRpbWUoKS8xRTMtbi5DdX1faXNUaW1lb3V0XyR7bi5EfWB9KX07Cmcub2U9ZnVuY3Rpb24obil7bi5EPSExO24uWS5pc0FjdGl2ZSgpJiZnLkJjKG4pO24uWS5zdG9wKCk7bi5SZighMSl9OwpGdz1mdW5jdGlvbihuLFcsRCl7cmV0dXJue3NzdmM6VyxjcG46RD8uY3BufHwiIix2aWQ6RD8udmlkZW9EYXRhLnZpZGVvSWR8fCIiLGN0OihuLmdzLmdldEN1cnJlbnRUaW1lKCl8fDApLnRvRml4ZWQoMyksY210OihuLmdzLm90KCl8fDApLnRvRml4ZWQoMyl9fTsKQ2gxPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gbmV3IGcubDUobixXLHtpZDpELG5hbWVzcGFjZToic2VydmVyc3RpdGNoZWRjdWVyYW5nZSIscHJpb3JpdHk6OX0pfTsKZy53Zj1mdW5jdGlvbihuKXtyZXR1cm57Y3BuOm4uZ3MuV04oKSxkdXJhdGlvbk1zOjAsb2E6MCxwbGF5ZXJUeXBlOjEsZEk6MCx2aWRlb0RhdGE6bi5ncy5nZXRWaWRlb0RhdGEoKSxlcnJvckNvdW50OjAsdlA6IiJ9fTsKTUs9ZnVuY3Rpb24obixXLEQsYil7bi5CLlMoImh0bWw1X3NzZGFpX2xvZ19zc2V2dF9pbl9sb2FkZXJfdGltZXJzIikmJihiPW4uYmQ/MDpNYXRoLnJvdW5kKChiLUQpKjFFMyksbi5ncy5VKCJzc2V2dCIse3RhZzoic3N0bWUiLGFkOlchPT1uLmdzLldOKCksY3BuOlcsc3Q6RC1uLmdzLkgzKCksbGF0ZTpifSkpfTsKZy5RUz1mdW5jdGlvbihuLFcpe24uanx8bi5iZHx8Zy5SZShuLG4udU4pO3ZhciBEPVcucUQsYj1XLnpZO2lmKGIuY3BuPT09bi51TiluLmJqKHtpZ3RyYW5zc2FtZToxLGVudGVyOmIuY3BuLGV4aXQ6RC5jcG59KTtlbHNle3ZhciB2PW4uYmQsaz0hIW4uajtuLmo9IiI7dmFyIGg9Vy5tNyx4PUQucGxheWVyVHlwZT09PTI/RC5vYS8xRTMrRC52aWRlb0RhdGEuR0M6Zy53ZihuKS52aWRlb0RhdGEuR0M7bi5hcGkuUygiaHRtbDVfc3NkYWlfZW5hYmxlX21lZGlhX2VuZF9jdWVfcmFuZ2UiKSYmKGt8fHZ8fEQucGxheWVyVHlwZSE9PTI/KHZ8fGspJiZuLmJqKHttZWNyOjAsc2Vlazp2LHNraXA6a30pOm4uYXBpLk5hKEQuY3BuKSk7aWYoRC5wbGF5ZXJUeXBlPT09MiYmYi5wbGF5ZXJUeXBlPT09MilrP24uYmooe2lndHJhbnNza2lwOjEsZW50ZXI6Yi5jcG4sZXhpdDpELmNwbixzZWVrOnYsc2tpcDpuLmp9KTpnLkJkdChuLEQsYix4LGgsdixrKTtlbHNle24udU49Yi5jcG47anMobixiLmNwbiwKYi5zdGFydFRpbWVTZWNzfHxoKTtXPVcuUXg7aWYoRC5wbGF5ZXJUeXBlPT09MSYmYi5wbGF5ZXJUeXBlPT09Mil7bi5TJD0wO0ZraihuLGIpO3ZhciBMPUZ3KG4sImMyYSIsYik7bi5iaihMKTtuLnVmKyt9ZWxzZSBpZihELnBsYXllclR5cGU9PT0yJiZiLnBsYXllclR5cGU9PT0xKXtuLmFwaS5XSigic2VydmVyc3RpdGNoZWR2aWRlb2NoYW5nZSIpO0w9RncobiwiYTJjIik7bi5iaihMKTtuLnVmPTA7bi5TJD14O0w9RC5jcG47dmFyIGU9bi5TJDtpZihMIT09bi5ncy5XTigpKXtsZXQgRz1uLnR3LmdldChMKTtHP0cuTj1lOm4uYmooe25vcF9lOkx9KX1nLndHMShuLEQudlApfUw9TTVpKG4pO24uZ3MuY00oRCxiLHgsaCx2LGssVyxMKX1nLlJVaShuKX19OwppcD1mdW5jdGlvbihuLFcsRCxiLHYsayxoLHgpe3ZhciBMPVdebjtpZigobi0xXjI3KT49biYmKG4rMV4yNCk8bil7dmFyIGU9RFtJW0xeNzg2XV0oSVtMXjgxN10pLEc9MDtlWzBdfHxHKys7bGV0IE49e307Zm9yKDtHPGVbSVs1XV07Rys9MillW0ddJiZFYyg1LExeNjc4NixOLGVbR10sZVtHKzFdKTt2YXIgcj1OfShuXjEzKTwyNiYmbi0yPj0xOCYmKGU9RFtJW0xeNzY5MV1dKElbTF43NzEwXSxMXjc3MDEpLEc9RFtJW0xeNzY5MV1dKElbTF43NzEwXSxlKzEpLGU+MCYmRz4wPyhiW0lbTF43Njg1XV09RFtJW0xeNzY5NF1dKDAsRyksRD1EW0lbTF43Njk0XV0oRysxKSk6KGJbSVtMXjc2ODVdXT1ELEQ9SVtMXjc2OTJdKSxyPVtEXSk7bi0zPj4zfHwocj1iKGssaCx4KSk7bj4+MiY3fHwoRD0oRCViW0lbNV1dK2JbSVs1XV0pJWJbSVs1XV0sYltJWzNdXSgtRClbSVtMXjE3MTZdXSgpW0lbTF4xNjgxXV0oZnVuY3Rpb24oTil7YltJW0xeMTY3MF1dKE4pfSkpOwpyZXR1cm4gcn07CmpzPWZ1bmN0aW9uKG4sVyxEKXtpZihXPT09bi5ncy5XTigpKW1SKG4uYXBwLlZyLG4uZ3MsITEpO2Vsc2V7bGV0IGI9bi50dy5nZXQoVyk7Yj8oVz1iLFcuTj0wLFcuc3RhcnRUaW1lU2Vjcz1ELG1SKG4uYXBwLlZyLGIsITApKTpuLmJqKHtub3BfczpXfSl9fTsKRmtqPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5hcHA7UFQoVlMoRCkpJiZELlZyLldbMl0mJmcuY18obi5sb2dnZXIsMzYwNzE3ODA2LCJTU1RNIGxpbmdlcmluZyBwbGF5YmFjayIpO24uYXBpLlNvKCk7bi5hcGkuV0ooInNlcnZlcnN0aXRjaGVkdmlkZW9jaGFuZ2UiLFcuY3BuLFcuTDMpfTsKY2M9ZnVuY3Rpb24obixXLEQ9MCl7cmV0dXJue0lEOnVhVShuLk4sVyoxRTMsRCoxRTMpLEJFOld9fTsKZy5SZT1mdW5jdGlvbihuLFcpe3ZhciBEPVd8fG4udU4sYj1uLk4uVkUoRCk7Yj8oVz1iLnZpZGVvRGF0YSxEPWIuTDN8fChuLlcuZ2V0KEQpPy5zdGFydD8/MCkvMUUzLG49bi5ncy5nZXRDdXJyZW50VGltZSgpLUQsVy5HQz1uPjA/bjowKTpnLndmKG4pLnZpZGVvRGF0YS5HQz1uLmdzLmdldEN1cnJlbnRUaW1lKCl9OwpnLlF3aT1mdW5jdGlvbihuLFcsRCl7bi5ncy5CbygpO24uZ3Muc2Vla1RvKFcsRCk7bi5ncy5wbGF5VmlkZW8oKX07CkNPPWZ1bmN0aW9uKG4sVyl7bi5MQj1OYU47bi5mQj1udWxsO24uUmEuc3RvcCgpO24uZSQmJlcmJm4uZSQuR18oKTtuLmpXPW51bGw7bi5lJD1udWxsfTsKbko9ZnVuY3Rpb24obil7VjVoKG4pO2Zvcih2YXIgVyBvZiBuLlcudmFsdWVzKCkpVy5zdGFydD49LTEmJlcuZW5kPD1JbmZpbml0eSYmKG4uZ3MucmVtb3ZlQ3VlUmFuZ2UoVyksbi5XLmRlbGV0ZShXLmdldElkKCkpLG4uYmooe3JtQWRDUjoxfSkpO3ZhciB7SUQ6RCxCRTpifT1jYyhuLC0uMDAxKTtEJiYoVz1iKjFFMy1ELm9hLGcuYWUobixELFcsRC5vYStXKSxXPW4uVy5nZXQoRC5jcG4pKSYmKFcuc3RhcnQ9RC5vYSxXLmVuZD1ELm9hK0QuZHVyYXRpb25Ncyk7KHtJRDpXfT1jYyhuLEluZmluaXR5KSk7VyYmbi5KKGBJbnZhbGlkX2NsZWFyRW5kVGltZU1zXyR7SW5maW5pdHl9X3RoYXRfZmFsbHNfZHVyaW5nXyR7YHBsYXliYWNrX2Nwbl8ke1cuY3BufV92aWRlb19pZF8ke1cudmlkZW9EYXRhPy52aWRlb0lkfV9kdXJhdGlvbk1zXyR7Vy5kdXJhdGlvbk1zfV9lbnRlclRpbWVNc18ke1cub2F9X3BhcmVudFJldHVyblRpbWVNc18ke1cuZEl9YH0uX0NoaWxkX3BsYXliYWNrc19jYW5fb25seV9oYXZlX2R1cmF0aW9uX3VwZGF0ZWRfbm90X3RoZWlyX3N0YXJ0LmApfTsKY1JiPWZ1bmN0aW9uKG4pe3VzKG4uVEMpO24uVy5jbGVhcigpO24uTi5jbGVhcigpO24uWXEuY2xlYXIoKTtuLkZGPVtdO24uVj1udWxsO24ueXcuY2xlYXIoKTtuLm51LmNsZWFyKCk7bi5jSj1bXTtuLkR0PVtdO24uczU9W107bi5FNT1bXTtuLlFyLmNsZWFyKCk7bi5NZC5jbGVhcigpO24uVTUuY2xlYXIoKTtuLnlFLmNsZWFyKCk7bi5EPSExO24uUyQ9MDtuLmJkPSExO24uWVo9ITE7bi51Zj0wO24uQ3U9MDtuLlkkPSExO24udUs9ITE7bi5qPSIiO0ZFWihuLmFwcC5Wcik7bVIobi5hcHAuVnIsbi5ncywhMSk7aWYobi5CLlp0KCk/LkooKSlmb3IobGV0IFcgb2Ygbi50dy52YWx1ZXMoKSlXLmRpc3Bvc2UoKTtuLnR3LmNsZWFyKCk7bi5ZLmlzQWN0aXZlKCkmJmcub2Uobil9OwpWNWg9ZnVuY3Rpb24obil7ZERiKG4uTixXPT5XLm9hPj0tMSYmVy5kSTw9SW5maW5pdHkpfTsKZy5hZT1mdW5jdGlvbihuLFcsRCxiKXtXLmR1cmF0aW9uTXM9RDtXLmRJPWI7KGI9bi50dy5nZXQoVy5jcG4pKT9iLmFUKEQvMUUzKTpuLmJqKHtub3BfZDpXLmNwbn0pfTsKZy56Vj1mdW5jdGlvbihuLFcpe2ZvcihsZXQgRCBvZiBuLkZGKWlmKFc+PUQuc3RhcnQmJlc8PUQuZW5kKXJldHVybiEwO3JldHVybiExfTsKZy5UVj1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPW4uWXEuZ2V0KEQpO2lmKCFrKXtpZihrPVdmKG4sVykpcmV0dXJuIGs7Vz1uLkdNKEQtMSxiPz8yKTtpZih2KXJldHVybiBuLmJqKHttaXNzY3VlOnYsc3E6RCx0eXBlOmIscHJldnNzdGF0ZTpXPy5zbCxwcmV2cmVjb3JkOm4uWXEuaGFzKEQtMSl9KSxuLllxLmdldChELTEpO2lmKFc/LnNsPT09MilyZXR1cm4gbi5iaih7YWRuZjoxLHNxOkQsdHlwZTpiLHByZXZyZWNvcmQ6bi5ZcS5oYXMoRC0xKX0pLG4uWXEuZ2V0KEQtMSl9cmV0dXJuIGt9Owpsd1o9ZnVuY3Rpb24obixXLEQsYix2LGspe2lmKCFuLnVLKWlmKGcuelYobixEKSluLmJqKHtnZHU6InVuZGVjIixzZWc6RCxpdGFnOnZ9KTtlbHNlIGlmKFc9Zy5UVihuLFcsRCxiLGspLCFuLmdzLmdldFZpZGVvRGF0YSgpLkRGKCl8fCFXPy5QTylyZXR1cm4gV307CldmPWZ1bmN0aW9uKG4sVyl7Vys9bi5IMygpO2lmKG4uZ3MuZ2V0VmlkZW9EYXRhKCkuREYoKSl7YTp7dmFyIEQ9bi5OO249VyoxRTM7Zm9yKGIgb2YgRC5KKWlmKEQ9Yi5MMz9iLkwzKjFFMzpiLm9hLG4+PWIub2EtMUUzJiZuPD1EK2IuZHVyYXRpb25NcysxRTMpYnJlYWsgYTt2YXIgYj12b2lkIDB9Yj17SUQ6YixCRTpXfX1lbHNlIGI9Y2MobixXKSxiPy5JRHx8KGI9Y2MobixXLDEpKTtyZXR1cm4gYj8uSUR9OwpkZj1mdW5jdGlvbihuLFcsRD0hMSl7aWYoIUQpe2ZvcihsZXQgYiBvZiBuLkZGKXtpZihXPj1iLnN0YXJ0JiZXPD1iLmVuZClyZXR1cm47aWYoVz09PWIuZW5kKzEpe2IuZW5kKz0xO3JldHVybn19bi5GRi5wdXNoKG5ldyBhd1MoVykpfX07ClRkaj1mdW5jdGlvbihuLFc9IiIpe3ZhciBEPWcuZDEoVyl8fHZvaWQgMDtXJiZEfHxuLmJqKHthZGNmZzpXPy5sZW5ndGgsZGNmZzpEPy5sZW5ndGh9KTtyZXR1cm4gRH07CmxzPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9W107bj1uLk4uTi5nZXQoVyk7aWYoIW4pcmV0dXJuW107Zm9yKGxldCBiIG9mIG4pYi5jcG4mJkQucHVzaChiLmNwbik7cmV0dXJuIER9OwpuJE09ZnVuY3Rpb24obixXLEQpe3ZhciBiPSExO2lmKEQ9bi5OLk4uZ2V0KEQpKWZvcihsZXQgdiBvZiBEKXYuZHVyYXRpb25NcyE9PTAmJnYuZEkhPT12Lm9hJiYoRD12LmNwbixXPT09RCYmKGI9ITApLGImJiFuLk1kLmhhcyhEKSYmKG4uYmooe2RlY29yYXRlZEFkOkR9KSxuLk1kLmFkZChEKSkpfTsKdmFyIElhMj1mdW5jdGlvbihuLFcpe3JldHVybiBvU1tJWzEwXV0odGhpcywyLDQ0MzksbixXKX07CldMcj1mdW5jdGlvbihuLFcsRCl7dmFyIGI9MDtuPW4uTi5OLmdldChEKTtpZighbilyZXR1cm4tMTtmb3IobGV0IHYgb2Ygbil7aWYodi5jcG49PT1XKXJldHVybiBiO2IrK31yZXR1cm4tMX07CkRhcj1mdW5jdGlvbihuLFcpe3ZhciBEPTA7bj1uLk4uTi5nZXQoVyk7aWYoIW4pcmV0dXJuIDA7Zm9yKGxldCBiIG9mIG4pYi5kdXJhdGlvbk1zIT09MCYmYi5kSSE9PWIub2EmJkQrKztyZXR1cm4gRH07CmcuYmZ4PWZ1bmN0aW9uKG4pe2ZvcihsZXQgVyBvZiBuLlcudmFsdWVzKCkpbi5ncy5yZW1vdmVDdWVSYW5nZShXKTtuLlcuY2xlYXIoKTt1cyhuLlRDKX07Ck01aT1mdW5jdGlvbihuKXt2YXIgVz1BcnJheS5mcm9tKG4uYXBwLlZyLkQudmFsdWVzKCkpLEQ9W10sYj1bXSx2PVtdLGs9W10saD1bXSx4PVtdO2Zvcih2YXIgTCBvZiBXKWlmKFc9bi5OLlZFKEwuV04oKSkpbi5iaih7YXR0YWNoX3RyYW5zX21ldGE6Vy5jcG4saGFzX3ZfbWV0YTpXLnNmPzE6MCxoYXNfYV9tZXRhOlcuWU0/MTowLGhhc19jdHhfbWV0YTpXLmpWPzE6MH0pLFcualYmJkQucHVzaChXLmpWKSxXLnNmJiZiLnB1c2goVy5zZiksVy5ZTSYmYi5wdXNoKFcuWU0pLGsucHVzaChXLmNwbiksaC5wdXNoKFcudmlkZW9EYXRhLnZpZGVvSWR8fCIiKSx4LnB1c2goVy52aWRlb0RhdGEuYWRGb3JtYXR8fFcudmlkZW9EYXRhLkZGKSxXLnNlcmlhbGl6ZWRRb2VDb250ZXh0RGF0YSE9bnVsbCYmdi5wdXNoKFcuc2VyaWFsaXplZFFvZUNvbnRleHREYXRhKTtMPXZvaWQgMDtuLnZYJiYobi5iaih7aGFzX2N0eF9saXN0OkQubGVuZ3RoPzE6MCxoYXNfY2xpcF9saXN0OmIubGVuZ3RoPwoxOjB9KSxMPXtqVjpELHJYOmJ9KTtyZXR1cm57UHc6TCxSUDp7YUQ6ayxhcTpoLGFkRm9ybWF0czp4LHNlcmlhbGl6ZWRRb2VDb250ZXh0RGF0YTp2fX19OwpnLkJkdD1mdW5jdGlvbihuLFcsRCxiLHYsayxoKXtpZihXJiZEKXtuLnVOPUQuY3BuO2pzKG4sRC5jcG4sRC5zdGFydFRpbWVTZWNzfHx2KTtGa2oobixEKTt2YXIgeD1GdyhuLCJhMmEiLEQpO24uYmooeCk7bi51ZisrO3g9TTVpKG4pO24uZ3MuY00oVyxELGJ8fDAsdnx8MCwhIWssISFoLHZvaWQgMCx4KX1lbHNlIG4uYmooe21pc3NwYmtvbmFkdHJhbnM6MSxlbnRlcjpEPy5jcG58fCIiLGV4aXQ6Vz8uY3BufHwiIixzZWVrOmssc2tpcDpofSl9OwpnLlJVaT1mdW5jdGlvbihuKXtuLnlFLmFkZChuLmopO24uaj0iIjtuLmJkPSExfTsKdiRoPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYjtpZihiPW4uZ3MuZ2V0VmlkZW9EYXRhKCkuREYoKSliPShiPW4uTi5WRShXKSkmJmIudlA/KG49bi5OLk4uZ2V0KGI/LnZQKSkmJm4uc2xpY2UoLTEpWzBdLmNwbj09PVc6ITE7cmV0dXJuIGImJkQ9PT0yPzFFMzowfTsKZy53RzE9ZnVuY3Rpb24obixXKXtpZihuLmdzLmdldFZpZGVvRGF0YSgpLkRGKCkpe3ZhciBEPW4uTi5OLmdldChXKTtpZihEKXtmb3IodmFyIGIgb2YgRCl7bi5iaih7cmVtX21ldGE6Yi5jcG59KTtEPW47bGV0IHY9RC5XLmdldChiLmNwbik7RC5XLmRlbGV0ZShiLmNwbik7diYmRC5ncy5yZW1vdmVDdWVSYW5nZSh2KTt6VWgoRC5OLGIpfW4uWXEuY2xlYXIoKTtiPW4uTjtEPWIuTi5nZXQoVyk/P1tdO2ZvcihsZXQgdiBvZiBEKXpVaChiLHYpO2IuTi5kZWxldGUoVyk7KFc9bi5aaC5nZXQoVykpJiZuLlJ0JiZuLmdzLll5KFcpfX19OwpodnI9ZnVuY3Rpb24obixXLEQ9e30pe3ZhciBiPW4uVnx8bi5hcHAuTU4oKS5nZXRQbGF5ZXJTdGF0ZSgpO0RMKG4sITApO1c9aXNGaW5pdGUoVyk/VzpuLk4uTlcoKTt2YXIge0lEOnYsQkU6a309YmwobixXKTtXPXYmJiF2ZihuLHYpfHwhdiYmbi5OIT09bi5hcHAuTU4oKTt2YXIgaD1rKjFFMztoPW4uVyYmbi5XLnN0YXJ0PD1oJiZoPD1uLlcuZW5kOyFXJiZofHxrcihuKTt2P2cua3JaKG4sdixrLEQsYik6eHIobixrLEQsYiwiX2V4ZWN1dGUiKX07CmcuTEo9ZnVuY3Rpb24obixXLEQsYil7bi5OLlUoInRpbWVsaW5lZXJyb3IiLHtlOlcsY3BuOkQ/RDp2b2lkIDAsdmlkZW9JZDpiP2I6dm9pZCAwfSl9OwpnLmVhPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG5ldyBnLmw1KE1hdGgubWF4KDAsbi01RTMpLFc/MHg4MDAwMDAwMDAwMDAwOm4tMSx7bmFtZXNwYWNlOiJjaGlsZHBsYXliYWNrIixwcmlvcml0eTo5fSl9OwpnLnhhaT1mdW5jdGlvbihuLFcsRCl7dmFyIGI9Vy5MeDtXLkx4PUQ7dmYobixXKSYmKEQ9bi5hcHAuTU4oKSxiLm9JPT09bi5XJiZrcihuKSxELnJlbW92ZUN1ZVJhbmdlKGIub0kpLEQuYWRkQ3VlUmFuZ2UoVy5MeC5vSSkpfTsKZy5rclo9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz12ZihuLFcpO2lmKCFrKXtXLnBsYXllclZhcnMucHJlZmVyX2dhcGxlc3M9ITA7dmFyIGg9bmV3IGcuVXIobi5CLFcucGxheWVyVmFycyk7aC5LZj1XLktmO24uYXBpLnoyKGgsVy5wbGF5ZXJUeXBlKX1oPW4uYXBwLk1OKCk7a3x8aC5hZGRDdWVSYW5nZShXLkx4Lm9JKTtoLnNlZWtUbyhELHtxZDoiYXBwbGljYXRpb25fdGltZWxpbmVtYW5hZ2VyIiwuLi5ifSk7TEwyKG4sdil9OwpldnQ9ZnVuY3Rpb24obixXLEQsYil7bi5XPWI7Yj1XLktmO3ZhciB2PVcucGxheWVyVmFycyxrPVcucGxheWVyVHlwZTtuLks9Vzt2JiZuLmFwaS5lbnF1ZXVlVmlkZW9CeVBsYXllclZhcnModixrLEQsYil9OwpnJFM9ZnVuY3Rpb24obixXLEQsYil7bi5XPWI7bi5hcGkuV3Aobi5OLEQsVyl9Owprcj1mdW5jdGlvbihuKXtuLks9bnVsbDtuLlc9bnVsbDtuLmFwaS5kVCgpfHxuLmFwaS5jbGVhclF1ZXVlKCl9Owp2Zj1mdW5jdGlvbihuLFcpe249bi5hcHAuTU4oKTtyZXR1cm4hIW4mJm4uZ2V0VmlkZW9EYXRhKCkuS2Y9PT1XLktmfTsKWGVqPWZ1bmN0aW9uKG4sVyl7dmYobixXKXx8Zy5MSihuLCJjaGlsZFBsYXliYWNrSXNOb3RQcmVzZW50aW5nIik7cmV0dXJuIFcuZEk9PT1XLm9hK1cuZHVyYXRpb25Ncz9XLm9hK24uYXBwLk1OKCkuZ2V0Q3VycmVudFRpbWUoKSoxRTM6Vy5kSX07CmJsPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9MDtmb3IobGV0IGIgb2Ygbi5KKXtuPWIub2EvMUUzK0Q7bGV0IHY9bitiLmR1cmF0aW9uTXMvMUUzO2lmKG4+VylicmVhaztpZih2PlcpcmV0dXJue0lEOmIsQkU6Vy1ufTtEPXYtYi5kSS8xRTN9cmV0dXJue0lEOm51bGwsQkU6Vy1EfX07CkRMPWZ1bmN0aW9uKG4sVyl7bi5PPU5hTjtuLkQ9bnVsbDtuLlkuc3RvcCgpO24uWCYmVyYmbi5YLkdfKCk7bi5WPW51bGw7bi5YPW51bGx9Owp4cj1mdW5jdGlvbihuLFcsRCxiLHYpe3ZhciBrPW4uTjtrIT09bi5hcHAuTU4oKSYmbi5hcHAuWDkoKTtuLkIuUygiaHRtbDVfc2Ficl9jc2RhaV9zZWVrX2xvZyIpfHwodj0iIik7ay5zZWVrVG8oVyx7cWQ6ImFwcGxpY2F0aW9uX3RpbWVsaW5lbWFuYWdlciIrKHY/PyIiKSwuLi5EfSk7TEwyKG4sYil9OwpMTDI9ZnVuY3Rpb24obixXKXtuPW4uYXBwLk1OKCk7dmFyIEQ9bi5nZXRQbGF5ZXJTdGF0ZSgpO1cuaXNPcldpbGxCZVBsYXlpbmcoKSYmIUQuaXNPcldpbGxCZVBsYXlpbmcoKT9uLnBsYXlWaWRlbygpOlcuaXNQYXVzZWQoKSYmIUQuaXNQYXVzZWQoKSYmbi5wYXVzZVZpZGVvKCl9OwpxZWk9ZnVuY3Rpb24obil7dmFyIFc9bi5KLmZpbmQoRD0+dmYobixEKSk7CmlmKFcpe2xldCBEPW4uYXBwLk1OKCk7a3Iobik7bGV0IGI9bmV3IGcubG0oOCk7Vz1YZWoobixXKS8xRTM7eHIobixXLHt9LGIsIl9mb3JjZSIpO0QuVSgiZm9yY2VQYXJlbnRUcmFuc2l0aW9uIix7Y2hpbGRQbGF5YmFjazoxfSk7bi5OLlUoImZvcmNlUGFyZW50VHJhbnNpdGlvbiIse3BhcmVudFBsYXliYWNrOjF9KX19OwpnLmc1PWZ1bmN0aW9uKG4sVz0tMSxEPUluZmluaXR5KXtmb3IobGV0IFt4LExdb2Ygbi5qKXt2YXIgYj14LHY9TDt2LnFJPj1XJiZ2LnRhcmdldCYmdi50YXJnZXQuZEk8PUQmJihuLk4ucmVtb3ZlQ3VlUmFuZ2UoYiksbi5qLmRlbGV0ZShiKSl9Yj1bXTtmb3IobGV0IHggb2Ygbi5KKXgub2E+PVcmJnguZEk8PUQ/KHY9bix2Lks9PT14JiZrcih2KSx2Zih2LHgpJiZ2LmFwcC5YOSgpKTpiLnB1c2goeCk7bi5KPWI7dmFyIHtJRDprLEJFOmh9PWJsKG4sVy8xRTMpO2smJihXPWgqMUUzLGcuR3IxKG4sayxXLGsuZEk9PT1rLm9hK2suZHVyYXRpb25Ncz9rLm9hK1c6ay5kSSkpOyh7SUQ6V309YmwobixELzFFMykpO1cmJmcuTEoobixgSW52YWxpZCBjbGVhckVuZFRpbWVNcz0ke0R9IHRoYXQgZmFsbHMgZHVyaW5nICR7YHBsYXliYWNrPXt0aW1lbGluZVBsYXliYWNrSWQ9JHtXLktmfSB2aWRlb19pZD0ke1cucGxheWVyVmFycy52aWRlb19pZH0gZHVyYXRpb25Ncz0ke1cuZHVyYXRpb25Nc30gZW50ZXJUaW1lTXM9JHtXLm9hfSBwYXJlbnRSZXR1cm5UaW1lTXM9JHtXLmRJfX1gfS5DaGlsZCBwbGF5YmFja3MgY2FuIG9ubHkgaGF2ZSBkdXJhdGlvbiB1cGRhdGVkIG5vdCB0aGVpciBzdGFydC5gKX07CmcuR3IxPWZ1bmN0aW9uKG4sVyxELGIpe1cuZHVyYXRpb25Ncz1EO1cuZEk9YjtiPXtvSTpnLmVhKEQsITApLHFJOkQsdGFyZ2V0Om51bGx9O2cueGFpKG4sVyxiKTt2ZihuLFcpJiZuLmFwcC5NTigpLmdldEN1cnJlbnRUaW1lKCkqMUUzPkQmJihXPVhlaihuLFcpLzFFMyxEPW4uYXBwLk1OKCkuZ2V0UGxheWVyU3RhdGUoKSx4cihuLFcse30sRCwiX3VwZGF0ZSIpKX07CiRhcj1mdW5jdGlvbihuKXtuJiZuIT09IndlYiImJnRZaS5pbmNsdWRlcyhuKX07CnVScj1mdW5jdGlvbihuLFcpe3JldHVybiBXPyEhbi5OLmdldChXKTohMX07CnJFUz1mdW5jdGlvbihuLFcpe24uZGF0YXNldC52ZXJzaW9uPVd9OwpzOHI9ZnVuY3Rpb24obil7dmFyIFc9bi5hcHAuUkIsRD0oKT0+e24uRU49bmV3IGcuYnIoMCwwLDAsMCk7bi5JMD1uZXcgZy5icigwLDAsMCwwKX0sYj1oPT57aC5nZXRWaWRlb0RhdGEoKSYmbi51cGRhdGVWaWRlb0RhdGEoaC5nZXRWaWRlb0RhdGEoKSl9LHY9KGgseCk9PntuLmYxKGgseCl9LGs9aD0+e24ubkImJlhTKG4pOwpxNyhuKSE9PW4uUDAmJm4ucmVzaXplKCk7bi5hcHAuRygpLlMoIndlYl9lbmFibGVfc21hcnRfem9vbSIpJiZuLm04JiYoaC5zdGF0ZS5pc1BhdXNlZCgpP24ubTgucGF1c2UoKTpoLlhRKDgpJiZuLm04LnBsYXlTdGF0ZT09PSJwYXVzZWQiJiZuLm04LnBsYXkoKSl9OwpXLmFkZEV2ZW50TGlzdGVuZXIoImluaXRpYWxpemluZ21vZGUiLEQpO1cuYWRkRXZlbnRMaXN0ZW5lcigidmlkZW9wbGF5ZXJyZXNldCIsYik7Vy5hZGRFdmVudExpc3RlbmVyKCJ2aWRlb2RhdGFjaGFuZ2UiLHYpO1cuYWRkRXZlbnRMaXN0ZW5lcigicHJlc2VudGluZ3BsYXllcnN0YXRlY2hhbmdlIixrKTtuLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57Vy5yZW1vdmVFdmVudExpc3RlbmVyKCJpbml0aWFsaXppbmdtb2RlIixEKTtXLnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpZGVvcGxheWVycmVzZXQiLGIpO1cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlkZW9kYXRhY2hhbmdlIix2KTtXLnJlbW92ZUV2ZW50TGlzdGVuZXIoInByZXNlbnRpbmdwbGF5ZXJzdGF0ZWNoYW5nZSIsayl9KX07ClllaT1mdW5jdGlvbihuKXt2YXIgVz1uLkV6KCksRD0xLGI9ITEsdj1OTncobixXLG4uZ2V0VmlkZW9Bc3BlY3RSYXRpbygpKSxrPW4uYXBwLkcoKSxoPWsuUygiZW5hYmxlX2Rlc2t0b3BfcGxheWVyX3VuZGVybGF5IikseD1GbigpLEw9Zy5kTShrLmV4cGVyaW1lbnRzLCJwbGF5ZXJfdW5kZXJsYXlfbWluX3BsYXllcl93aWR0aCIpO0w9aCYmbi5hSCYmbi5nZXRQbGF5ZXJTaXplKCkud2lkdGg+TDtpZihxNyhuKSl7dmFyIGU9cGVVKG4pO3ZhciBHPWlzTmFOKGUpfHxnLlJnfHxuciYmZy5Hbnx8TDtnLk1MJiYhZy5aWCg2MDEpP2U9di5hc3BlY3RSYXRpbzpHPUd8fGsuY29udHJvbHNUeXBlPT09IjMiO0c/TD8oRz1rLlMoInBsYWNlX3NocnVua2VuX3ZpZGVvX29uX2xlZnRfb2ZfcGxheWVyIik/MTY6bi5nZXRQbGF5ZXJTaXplKCkud2lkdGgtVy53aWR0aC0xNixlPU1hdGgubWF4KChuLmdldFBsYXllclNpemUoKS5oZWlnaHQtVy5oZWlnaHQpLzIsMCksRz1uZXcgZy5icihHLGUsVy53aWR0aCwKVy5oZWlnaHQpLG4ubkIuc3R5bGUuc2V0UHJvcGVydHkoImJvcmRlci1yYWRpdXMiLCIxMnB4IikpOkc9bmV3IGcuYnIoMCwwLFcud2lkdGgsVy5oZWlnaHQpOihEPXYuYXNwZWN0UmF0aW8vZSxHPW5ldyBnLmJyKChXLndpZHRoLXYud2lkdGgvRCkvMiwoVy5oZWlnaHQtdi5oZWlnaHQpLzIsdi53aWR0aC9ELHYuaGVpZ2h0KSxEPT09MSYmZy5HbiYmKGU9Ry53aWR0aC1XLmhlaWdodCplLGU+MCYmKEcud2lkdGgrPWUsRy5oZWlnaHQrPWUpKSk7Zy5pSChuLmVsZW1lbnQsInl0cC1maXQtY292ZXItdmlkZW8iLE1hdGgubWF4KEcud2lkdGgtdi53aWR0aCxHLmhlaWdodC12LmhlaWdodCk8MSk7aWYoeHx8bi5jSSluLm5CLnN0eWxlLmRpc3BsYXk9IiI7bi5QMD0hMH1lbHNle0c9LVcuaGVpZ2h0O2cuTUw/Ryo9d2luZG93LmRldmljZVBpeGVsUmF0aW86Zy5zbSYmKEctPXdpbmRvdy5zY3JlZW4uaGVpZ2h0KTtHPW5ldyBnLmJyKDAsRyxXLndpZHRoLFcuaGVpZ2h0KTtpZih4fHxuLmNJKW4ubkIuc3R5bGUuZGlzcGxheT0KIm5vbmUiO24uUDA9ITF9dlkobi5FTixHKXx8KG4uRU49RyxnLkRmKGspPyhuLm5CLnN0eWxlLnNldFByb3BlcnR5KCJ3aWR0aCIsRy53aWR0aCsicHgiLCJpbXBvcnRhbnQiKSxuLm5CLnN0eWxlLnNldFByb3BlcnR5KCJoZWlnaHQiLEcuaGVpZ2h0KyJweCIsImltcG9ydGFudCIpKTpOdChuLm5CLEcuZ2V0U2l6ZSgpKSxHPW5ldyBnLk1ZKEcubGVmdCxHLnRvcCksYj1uLm5CLHg9TWF0aC5yb3VuZChHLngpLHggaW5zdGFuY2VvZiBnLk1ZPyhrPXgueCx4PXgueSk6KGs9eCx4PU1hdGgucm91bmQoRy55KSksYi5zdHlsZS5sZWZ0PXNqKGssITEpLGIuc3R5bGUudG9wPXNqKHgsITEpLGI9ITApO1c9bmV3IGcuYnIoKFcud2lkdGgtdi53aWR0aCkvMiwoVy5oZWlnaHQtdi5oZWlnaHQpLzIsdi53aWR0aCx2LmhlaWdodCk7dlkobi5JMCxXKXx8KG4uSTA9VyxiPSEwKTtnLmgxKG4ubkIsInRyYW5zZm9ybSIsRD09PTE/IiI6YHNjYWxlWCgke0R9KWApO2gmJkwhPT1uLlp4JiYoTCYmKG4ubkIuYWRkRXZlbnRMaXN0ZW5lcihHQSwKbi5reiksbi5uQi5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uY2FuY2VsIixuLmt6KSxuLm5CLmNsYXNzTGlzdC5hZGQoZy5Pbi5WSURFT19DT05UQUlORVJfVFJBTlNJVElPTklORykpLG4uWng9TCxuLmFwcC5SQi5XSigicGxheWVyVW5kZXJsYXlWaXNpYmlsaXR5Q2hhbmdlIixuLlp4PyJ0cmFuc2l0aW9uaW5nIjoiaGlkZGVuIikpO3JldHVybiBifTsKWFM9ZnVuY3Rpb24obil7dmFyIFc9bi5hcHAuRygpLmNvbnRyb2xzVHlwZT09PSIzIiYmIW4ud0YmJnE3KG4pJiYhbi5hcHAuc2p8fCExO24ubkIuY29udHJvbHM9VztuLm5CLnRhYkluZGV4PVc/MDotMTtuLmFwcC5HKCkuSiYmKG4ubkIuYXJpYUhpZGRlbj0idHJ1ZSIpO1c/bi5uQi5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsbi5KdCk6bi5uQi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsbi5KdCl9OwpwZVU9ZnVuY3Rpb24obil7dmFyIFc9bi5hcHAuTU4oKTtpZihXPVc/Vy5nZXRWaWRlb0RhdGEoKTpudWxsKXtpZihnLkhUKFcpfHxnLmZBKFcpfHxnLkpEKFcpKXJldHVybiAxNi85O2lmKE1zKFcpJiZXLlcuTigpKXJldHVybiBuPVcuVy52aWRlb0luZm9zWzBdLnZpZGVvLHRiKG4ud2lkdGgsbi5oZWlnaHQpfXJldHVybihuPW4ubkIpP3RiKG4udmlkZW9XaWR0aCxuLnZpZGVvSGVpZ2h0KToxNi85fTsKdGI9ZnVuY3Rpb24obixXKXtyZXR1cm4gTWF0aC5hYnMoJHIqVy1uKTwxfHxNYXRoLmFicygkci9uLVcpPDE/JHI6bi9XfTsKTk53PWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PUQsaz10YihXLndpZHRoLFcuaGVpZ2h0KTtuLnJVP3Y9RDxrP0luZmluaXR5OjA6aXNOYU4obi5WUik/aXNOYU4obi5mVCl8fCh2PW4uZlQpOnY9bi5WUjtpc0Zpbml0ZSh2KT92PT09MCYmbi5hcHAuRygpLlp0KCkuTi5RUShIZngpJiYodj1NYXRoLm1pbihELGspKTp2PU1hdGgubWF4KEQsayk7bj12Pms/e3dpZHRoOlcud2lkdGgsaGVpZ2h0Olcud2lkdGgvdixhc3BlY3RSYXRpbzp2fTp2PGs/e3dpZHRoOlcuaGVpZ2h0KnYsaGVpZ2h0OlcuaGVpZ2h0LGFzcGVjdFJhdGlvOnZ9Ont3aWR0aDpXLndpZHRoLGhlaWdodDpXLmhlaWdodCxhc3BlY3RSYXRpbzprfTtifHxpc05hTihEKXx8KEQ+dj9uLndpZHRoPW4uaGVpZ2h0KkQ6RDx2JiYobi5oZWlnaHQ9bi53aWR0aC9EKSxuLmFzcGVjdFJhdGlvPUQpO3JldHVybiBufTsKcTc9ZnVuY3Rpb24obil7aWYobi5hcHAuZ2V0QXBwU3RhdGUoKT09PTEpcmV0dXJuITE7aWYobi5hcHAuZ2V0QXBwU3RhdGUoKT09PTYpcmV0dXJuITA7dmFyIFc9bi5hcHAuTU4oKTtpZighV3x8Vy5KbigpKXJldHVybiExO249bi5hcHAuUkIuZ2V0UGxheWVyU3RhdGVPYmplY3QoKTtXPSFuLk4oMil8fFcmJlcuZ2V0VmlkZW9EYXRhKCkuSzt2YXIgRD1uLk4oMTAyNCk7cmV0dXJuIG4mJlcmJiFEJiYhbi5pc0N1ZWQoKX07CmZHUz1mdW5jdGlvbihuKXtpZihuLmNzbiE9PWcuUnYoKSlpZihuLmNzbj09PSJVTkRFRklORURfQ1NOIiluLmNzbj1nLlJ2KCk7ZWxzZXt2YXIgVz1nLlJ2KCksRD13NCgpO2lmKFcmJkQpe24uY3NuPVc7Zm9yKGxldCBiIG9mIG4uZWxlbWVudHMpe2xldCB2PWIudmlzdWFsRWxlbWVudDt2JiZ2LmlzQ2xpZW50VmUoKSYmVyYmRCYmKGcubCgiY29tYmluZV92ZV9ncmFmdHMiKT9PMyhJZigpLHYsRCk6UFYodWcpKHZvaWQgMCxXLEQsdikpfX1pZihXKWZvcihsZXQgYiBvZiBuLk4pKG49Yi52aXN1YWxFbGVtZW50KSYmbi5pc0NsaWVudFZlKCkmJkZqKFcsbil9fTsKSkViPWFzeW5jIGZ1bmN0aW9uKG4pe2lmKCFuLlk2KXtuLlk2PW4uRChuLlkpO3RyeXtsZXQgRD1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTt2YXIgVz1zZXRUaW1lb3V0KCgpPT57RC5yZWplY3QoInRpbWVvdXQiKX0sMUU0KTsKbi5ZNi5vbmVycm9yPSgpPT57RC5yZWplY3QoImVycm9yIil9OwpuLlk2Lm9ubWVzc2FnZT0oKT0+e0QucmVzb2x2ZSgpO2NsZWFyVGltZW91dChXKX07CmF3YWl0IEQucHJvbWlzZTtuLlk2Lm9ubWVzc2FnZT1udWxsO24uWTYub25lcnJvcj1udWxsO24uWTYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYj0+dm9pZCBuLnJlY2VpdmUoYikpOwpuLlUoIndvcmtlckN0b3IiLHt9KX1jYXRjaChEKXtjbGVhclRpbWVvdXQoVyksbi5ZNj8udGVybWluYXRlKCksbi5ZNi5vbm1lc3NhZ2U9bnVsbCxuLlk2Lm9uZXJyb3I9bnVsbCxuLlk2PXZvaWQgMCxuLlUoIndvcmtlckVyciIse2U6YCR7RH1gfSl9fX07CklHdz1mdW5jdGlvbihuLFcpe2lmKG4uTiYmbi5OLmJ5dGVMZW5ndGg9PT1XKXJldHVybiBuLk47Zm9yKHZhciBEPW5ldyBVaW50OEFycmF5KFcpLGI9MDtXPjA7KXtsZXQgdj1uZXcgVWludDhBcnJheShNYXRoLm1pbihXLDY1NTM2KSk7Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyh2KTtELnNldCh2LGIpO1ctPXYubGVuZ3RoO2IrPXYubGVuZ3RofXJldHVybiBuLk49RH07ClNlMT1mdW5jdGlvbihuLFcpe24uWTYmJihXPUlHdyhuLFcpLFcubGVuZ3RoPjAmJldbMF0rKyxXPXtxTDpwZXJmb3JtYW5jZS5ub3coKSx0eXBlOjEsYTk6e2RhdGE6V319LG4ucmVxdWVzdChXKSl9OwpBRWk9YXN5bmMgZnVuY3Rpb24obil7bi5KIT09dm9pZCAwfHxuLld8fChuLlc9ITAsYXdhaXQgSkViKG4pLG4uVz0hMSxuLlk2JiYoU2UxKG4sbi5LKSxuLko9c2V0SW50ZXJ2YWwoKCk9Pnt2YXIgVz1bMSwyLDMsNF07bi5CQiYmKFcucHVzaCg1KSxuLlgmJlcucHVzaCg2KSk7c3dpdGNoKFdbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKlcubGVuZ3RoKV0pe2Nhc2UgMTpTZTEobixuLmopO2JyZWFrO2Nhc2UgMjpuLlk2JiYoVz17cUw6cGVyZm9ybWFuY2Uubm93KCksdHlwZToyLGx4OntwbGFjZWhvbGRlcjohMH19LG4ucmVxdWVzdChXKSk7YnJlYWs7Y2FzZSAzOlc9bi5NdztuLlk2JiYoVz17cUw6cGVyZm9ybWFuY2Uubm93KCksdHlwZTozLHEwOntNdzpXfX0sbi5yZXF1ZXN0KFcpKTticmVhaztjYXNlIDQ6bi5ZNiYmKFc9e3FMOnBlcmZvcm1hbmNlLm5vdygpLHR5cGU6NCxpc1R5cGVTdXBwb3J0ZWQ6e3BsYWNlaG9sZGVyOiEwfX0sbi5yZXF1ZXN0KFcpKTticmVhaztjYXNlIDU6bi5CQiYmCihXPXtxTDpwZXJmb3JtYW5jZS5ub3coKSx0eXBlOjUseTg6e0JCOm4uQkJ9fSxuLnJlcXVlc3QoVykpO2JyZWFrO2Nhc2UgNjp2YXIgRD1uLmo7Vz1uLlM3O24uWTYmJihEPUlHdyhuLEQpLFc9e3FMOnBlcmZvcm1hbmNlLm5vdygpLHR5cGU6NixKTDp7ZGF0YTpELFM3Old9fSxuLnJlcXVlc3QoVykpfX0sbi5pbnRlcnZhbE1zKSkpfTsKcjU9ZnVuY3Rpb24obixXLEQpe24uc2VuZE1lc3NhZ2Uoe1sxNjFdOjIsWzExNl06VyxbMTM5XTpEfSl9OwpaZnc9YXN5bmMgZnVuY3Rpb24obil7dmFyIFc9bi50Yi5HKCksRD1XLmdldFdlYlBsYXllckNvbnRleHRDb25maWcoKS50cnVzdGVkUGxheWJhY2tXb3JrZXJVcmw7aWYoRD1wdyhEfHxudWxsKSluLlk2PVhNKEQpLG4uTj1uZXcgbWFVKG4uWTYpLG4uWTYuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGI9PntnLlhqKGIuZXJyb3IpfSksbi5ZNi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixiPT57dmFyIHY9Yi5kYXRhOwpiPXZbMTE4XTt2YXIgaz12WzE4MF07aWYoaylmb3IodmFyIGggb2Yga1sxMjJdKShrPW4uVy5nZXQoaFsxMTldKSkmJktMWihrLGhbMTUxXSk7c3dpdGNoKGJbMTYxXSl7Y2FzZSAxOmxldCB7WzEwM106ZSxbM106R309YlsxN107c3dpdGNoKGUpe2Nhc2UgMTpsZXQgW3IsTl09RztuLnRiLmNsZWFyUXVldWUocixOKTticmVhaztjYXNlIDI6W2JdPUc7bi50Yi5vblBsYXllclJlcXVlc3RTZW50KGIpO2JyZWFrO2Nhc2UgMzpsZXQgW0gsQSx5XT1HO2lmKGI9eT9uLkouZ2V0KHkpOm51bGwpYj1iLmdldFZpZGVvRGF0YSgpLG4udGIuVmEoSCxBLGIpO2JyZWFrO2Nhc2UgNDpsZXQgW1QseixDXT1HO2I9bi5YLmdldCh6KTtpZighYil0aHJvdyBFcnJvcihgVW5rbm93biBtaXJyb3JlZCBDdWVSYW5nZTogJHt6fWApO24udGIuQ0ooVCxiLEMpO2JyZWFrO2Nhc2UgNTpbYl09RzsoYj1uLkouZ2V0KGIpKSYmbi50Yi5ueShiLmdldFZpZGVvRGF0YSgpKTticmVhaztjYXNlIDY6W2JdPUc7KGI9Cm4uSi5nZXQoYikpJiZuLnRiLmZMKGIuZ2V0VmlkZW9EYXRhKCkpO2JyZWFrO2Nhc2UgNzpuLnRiLkdjKCk7YnJlYWs7ZGVmYXVsdDpnLnBiKGUsdm9pZCAwKX1icmVhaztjYXNlIDI6dj1uLk47aD1iWzExNl07Yj1iWzEzOV07az12Lk4uZ2V0KGgpO3RyeXtrJiZrLnJlamVjdChiKX1maW5hbGx5e3YuTi5kZWxldGUoaCl9YnJlYWs7Y2FzZSAzOnY9bi5OO2g9YlsxMTZdO2I9YlsxMzldO2s9di5OLmdldChoKTt0cnl7ayYmay5yZXNvbHZlKGIpfWZpbmFsbHl7di5OLmRlbGV0ZShoKX1icmVhaztjYXNlIDQ6T2Z0KG4sdik7YnJlYWs7Y2FzZSA1OmJyZWFrO2Nhc2UgNjpiPXZbMTE4XTtoPW4uSy5nZXQoYls5OF0pO3Y9dlsxMzhdO2lmKGgpe2xldCB7WzEwM106cixbM106Tn09YlsxN107c3dpdGNoKHIpe2Nhc2UgImxvYWQiOmgubG9hZCguLi5OKTt2JiZyNShuLk4sdik7YnJlYWs7Y2FzZSAicGxheSI6Yj1oLnBsYXkoLi4uTik7diYmc1oobix2LGJ8fHZvaWQgMCk7YnJlYWs7Y2FzZSAicGF1c2UiOmgucGF1c2UoLi4uTiksCnYmJnI1KG4uTix2KX19YnJlYWs7Y2FzZSA3OmlmKHY9bi5LLmdldChiWzk4XSkpe3ZhciB7WzEzNV06eCxbMTY1XTpMfT1iWzE0NF07Yj12LmVfKCk7c3dpdGNoKHgpe2Nhc2UgImN1cnJlbnRUaW1lIjpiLmN1cnJlbnRUaW1lPUw7YnJlYWs7Y2FzZSAiZGVmYXVsdFBsYXliYWNrUmF0ZSI6Yi5kZWZhdWx0UGxheWJhY2tSYXRlPUw7YnJlYWs7Y2FzZSAibG9vcCI6Yi5sb29wPUw7YnJlYWs7Y2FzZSAibXV0ZWQiOmIubXV0ZWQ9TDticmVhaztjYXNlICJwbGF5YmFja1JhdGUiOmIucGxheWJhY2tSYXRlPUw7YnJlYWs7Y2FzZSAic3JjIjpMPyhiPW4uRC5nZXQoTCkpJiZ2LnM1KGIpOih2LlZRKCksdi5lJCgpKTticmVhaztkZWZhdWx0OmcucGIoeCx2b2lkIDApfX1icmVhaztjYXNlIDg6aWYodj1uLlcuZ2V0KGJbMTE5XSkpe2xldCB7dHlwZTpyLGFyZ3M6TixsVDpIfT17dHlwZTpiWzQ3XVsxNjFdLGFyZ3M6Yls0N11bM10sbFQ6Wy4uLmJbNDddWzNdXX07c3dpdGNoKHIpe2Nhc2UgImludGVybmFsYXVkaW9mb3JtYXRjaGFuZ2UiOmI9Ck5bMF1bNV07di52aWRlb0RhdGEuWD1iP09OKGIpOm51bGw7SFswXT12LnZpZGVvRGF0YTticmVhaztjYXNlICJpbnRlcm5hbHZpZGVvZm9ybWF0Y2hhbmdlIjpiPU5bMF1bNDhdO3YudmlkZW9EYXRhLko9Yj9PTihiKTpudWxsO0hbMF09di52aWRlb0RhdGE7YnJlYWs7Y2FzZSAiaW50ZXJuYWx2aWRlb2RhdGFjaGFuZ2UiOmI9TlsxXTtoPSEhdi52aWRlb0RhdGEuZ2V0UGxheWVyUmVzcG9uc2UoKTt6Zih2LnZpZGVvRGF0YSx7cmF3X3BsYXllcl9yZXNwb25zZTpiWzEyNV18fHZvaWQgMH0sIWgsITEpO0hbMV09di52aWRlb0RhdGE7YnJlYWs7Y2FzZSAiaGVhcnRiZWF0cGFyYW1zIjpiPU5bMF07SFswXT17dXJsOmJbMTYyXSxpbnRlcnZhbDpiWzU2XSxyZXRyaWVzOmJbMTQwXX07YnJlYWs7Y2FzZSAibm9uZmF0YWxlcnJvciI6Yj1OWzBdO0hbMF09bmV3IGcuQ2koYls0NV0sYlszOF0sYlsxNDVdKTticmVhaztjYXNlICJzdGF0ZWNoYW5nZSI6Yj1OWzBdO2g9TXdoKGJbMTUxXSk7SFswXT0KbmV3IGcuTjcoaCxNd2goYlsxMTNdKSk7di5wbGF5ZXJTdGF0ZT1oO2JyZWFrO2Nhc2UgInZpZGVvZWxlbWVudGV2ZW50IjpIWzBdPW5ldyBQQlModi5tZWRpYUVsZW1lbnQsTlswXVsxNjFdKX12LmV2ZW50cy5XSihyLC4uLkgpfWJyZWFrO2Nhc2UgOTpuLkQuc2V0KGJbMTAxXSxiWzEwMF0pO2JyZWFrO2RlZmF1bHQ6Zy5wYihiLHZvaWQgMCl9fSksbi5ZNi5wb3N0TWVzc2FnZSh7dHlwZToiQk9PVFNUUkFQIiwKZGF0YTp7aG9zdG5hbWU6d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLGhyZWY6d2luZG93LmxvY2F0aW9uLmhyZWYscHJvdG9jb2w6d2luZG93LmxvY2F0aW9uLnByb3RvY29sLHNlYXJjaDp3aW5kb3cubG9jYXRpb24uc2VhcmNoLHl0Q29uZmlnOntJTk5FUlRVQkVfSE9TVF9PVkVSUklERTp3aW5kb3cubG9jYXRpb24ub3JpZ2luLC4uLmcucWkueXQuY29uZmlnX319fSksbi5zZW5kTWVzc2FnZSh7WzE2MV06MyxbMTc1XTpXLmdldFdlYlBsYXllckNvbnRleHRDb25maWcoKX0pfTsKc1o9ZnVuY3Rpb24obixXLEQpe0Q/RC50aGVuKGI9PntyNShuLk4sVyxiKX0sYj0+e24uTi5zZW5kTWVzc2FnZSh7WzE2MV06MSwKWzExNl06VyxbMTM5XTpifSl9KTpyNShuLk4sVyxudWxsKX07Ck9mdD1mdW5jdGlvbihuLFcpe3ZhciBEPVdbMTE4XTtzd2l0Y2goRFsxMDNdKXtjYXNlIDE6bGV0IFtiLHYsa109RFszXTtEPW4udGIuZFEoYix2LGspOyhXPVdbMTM4XSkmJnNaKG4sVyxEKTticmVhaztjYXNlIDI6bGV0IFtoLHhdPURbM107RD1VYWgoeCxoKTsoVz1XWzEzOF0pJiZzWihuLFcsQWUoU2soRCxMPT4oe1sxNl06Zy5sWihMKSxbMTQ2XToiYzFhImluIEwuUlI/IWcudVouaXNJbml0aWFsaXplZCgpOiExfSkpKSk7CmJyZWFrO2Nhc2UgMzpEPW4udGIueWYoKTsoVz1XWzEzOF0pJiZzWihuLFcsRCk7YnJlYWs7ZGVmYXVsdDpnLnBiKERbMTAzXSx2b2lkIDApfX07CnlFMj1mdW5jdGlvbihuKXt2YXIgVz1uLnRiLkcoKSxEPW4udGIubGooKSxiPW4udGIuaGgoKSx2PUQuZ2V0UGxheWVyU2l6ZSgpO0Q9RC5FeigpO1c9e1syM106bi50Yi5GbigpLFs0NF06e1sxXTpXLlMkLFsxMjRdOlcuQ3UsWzEzMV06Vy55RSxbMTQzXTpXLmpXLFsxNTVdOlcuRVp9LFs1OV06bi50Yi5FOCgpLFs2MV06bi50Yi52MygpLFs2Nl06bi50Yi5pc0Z1bGxzY3JlZW4oKSxbNjddOiExLFs3MF06bi50Yi5qSSgpLFs3MV06bi50Yi5pc0lubGluZSgpLFs3Ml06bi50Yi5CUCgpLFs3M106bi50Yi5pc011dGVkKCksWzc1XTpuLnRiLmlzT3JjaGVzdHJhdGlvbkxlYWRlcigpLFs3N106bi50Yi5BbigpLFs4MF06ITEsWzgyXTohMSxbODNdOm4udGIuU0koKSxbODRdOm4udGIuUTAoKSxbMTA2XTpuLnRiLmlzTXV0ZWQoKSxbMTI2XTp7WzE3OV06di53aWR0aCxbNTNdOnYuaGVpZ2h0fSxbMTMzXTpuLnRiLk1OKCkuSEwoKSxbMTM0XTpuLnRiLk1OKCkuVXUoKSxbMTY2XTp7WzE3OV06RC53aWR0aCwKWzUzXTpELmhlaWdodH0sWzE3MV06YixbMTc0XTpuLnRiLmdldFZvbHVtZSgpfTtiPVtdO2ZvcihsZXQgW2ssaF1vZiBuLlcuZW50cmllcygpKXY9ayxEPWguZ2V0VmlkZW9EYXRhKCksYi5wdXNoKHtbMTE5XTp2LFsxNTFdOntbMTY3XTp7WzI1XTpELlJEfX19KTtuLlkmJk9iamVjdC5hc3NpZ24oVyx7WzY3XTpuLnRiLkhvKCksWzgwXTpuLnRiLmdXKCksWzgyXTpuLnRiLmRUKCl9KTtyZXR1cm57WzJdOlcsWzEyMl06Yn19OwpFJE09ZnVuY3Rpb24obixXKXt2YXIgRD1gbWFpbi5jdWVSYW5nZToke24uTysrfWA7aWYobi5YLmdldChEKSlyZXR1cm4gRDtuLlguc2V0KEQsVyk7bi5qLnNldChXLEQpO3JldHVybiBEfTsKaWZDPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5qLmdldChXKTtpZihEKXJldHVybiBuLmouZGVsZXRlKFcpLG4uWC5kZWxldGUoRCksRH07CktMWj1mdW5jdGlvbihuLFcpe1cmJihPYmplY3QuYXNzaWduKG4uTixXKSxuLmF1ZGlvVHJhY2s9RGMoV1s3XSksbi5YPVhMUyhXWzE0N10pLFc9V1sxNjddKSYmKG4udmlkZW9EYXRhLlR3PVdbMThdLG4udmlkZW9EYXRhLmNhcHRpb25UcmFja3M9V1syMF0ubWFwKEQ9PlZ3KEQpKSxuLnZpZGVvRGF0YS53YT1XWzIxXSxuLnZpZGVvRGF0YS5PJD1XWzE5XSxuLnZpZGVvRGF0YS5HQz1XWzMwXSxuLnZpZGVvRGF0YS52WD1EYyhXWzM1XSksbi52aWRlb0RhdGEuU3c9V1sxNzZdKX07CnU4Yj1hc3luYyBmdW5jdGlvbihuLFcsRCl7Vz17WzEwM106VyxbM106RH07RD1uLmZnLk5lLmdldChuKTtyZXR1cm4gbi5mYSh7WzE2MV06OSxbMTddOlcsWzExOV06RH0pfTsKZy5wSj1mdW5jdGlvbihuLFcsRCl7Vz17WzEwM106VyxbM106RH07RD1uLmZnLk5lLmdldChuKTtuLnNlbmRNZXNzYWdlKHtbMTYxXTo5LFsxN106VyxbMTE5XTpEfSl9OwpZcj1mdW5jdGlvbihuKXt2YXIgVz1bXTtmb3IobGV0IEQ9MDtEPG4ubGVuZ3RoO0QrKylXLnB1c2goe1sxNTBdOm4uc3RhcnQoRCksWzQyXTpuLmVuZChEKX0pO3JldHVybiBXfTsKbyRVPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIG4uZ2V0VmlkZW9EYXRhKCkuZW5hYmxlU2VydmVyU3RpdGNoZWREYWkmJlc9PT0yPyhuLkIuWnQoKS5OLlFRKEhmKT9uLlZyLk4/LmlzQWQoKT8/ITE6bi5Rdz8uTmQobi5nZXRDdXJyZW50VGltZSgpKSk/bi5pdTotMTpXIT09Mnx8bi5MWSgpP24uaXU6bi5CJH07CnY3PWZ1bmN0aW9uKG4pe3JldHVybiBuLnNqJiZuLmdldFZpZGVvRGF0YSgpLm11dGVkQXV0b3BsYXl9Owp2YXIgbXR4PWZ1bmN0aW9uKG4pe3JldHVybiBYRFtJWzEwXV0odGhpcywxNiw0MDI5LG4pfTsKZko9ZnVuY3Rpb24obixXLEQpe1cmJihXPW4uVkUoe3BsYXllclR5cGU6RH0pLFc9PT1uLmNYKCkmJihXLmdldFZpZGVvRGF0YSgpLlBYPSEwKSl9OwpKYj1mdW5jdGlvbihuLFcsRD0hMCxiLHYsayl7dmFyIGg9bi5WRSh7cGxheWVyVHlwZTp2fSkseD1oLmdldFZpZGVvRGF0YSgpO2guZ2V0UGxheWVyVHlwZSgpPT09MiYmIW4uTFkoaCkmJiF4LmlzU2Vla2FibGV8fGcucEEoeCl8fChoJiZoPT09bi5jWCgpJiZuLkhOJiYhZGF0KG4sVykmJm4uc2V0TG9vcFJhbmdlKG51bGwpLG4uc2Vla1RvKFcsRCxiLHYsaywiX3JlcXVlc3QiKSl9OwpBYj1mdW5jdGlvbihuLFcpe1c9bi5WRSh7cGxheWVyVHlwZTpXfSk7Vz1nLklYKG4sVyk7cmV0dXJuIFNhKG4sVy5QRygpLFcpfTsKUGY9ZnVuY3Rpb24obixXLEQpe24uQi5iTiYmKG4uRl89VyxXLm11dGVkfHxLSihuLCExKSxEJiZuLkIuc3RvcmVVc2VyVm9sdW1lJiYhbi5CLnM1JiYoRD17dm9sdW1lOk1hdGguZmxvb3IoVy52b2x1bWUpLG11dGVkOlcubXV0ZWR9LEQudW5zdG9yYWJsZXx8KGcuUEIoInl0LXBsYXllci12b2x1bWUiLEQpLGcuUEIoInl0LXBsYXllci12b2x1bWUiLEQsMjU5MkUzKSkpLE9aKG4pLEQ9Zy5vZCYmbi5tZWRpYUVsZW1lbnQmJiFuLm1lZGlhRWxlbWVudC5YXygpJiYhbi5tZWRpYUVsZW1lbnQuVEMoKSxuLkIuczUmJiFEfHxnLlZVKG4uUkIsIm9uVm9sdW1lQ2hhbmdlIix7bXV0ZWQ6Vy5tdXRlZCx2b2x1bWU6Vy52b2x1bWUsdW5zdG9yYWJsZTohbi5CLnN0b3JlVXNlclZvbHVtZX0pKX07ClZTPWZ1bmN0aW9uKG4pe3JldHVybiBuLmNYKCkuZ2V0VmlkZW9EYXRhKCl9Owp6djI9ZnVuY3Rpb24obixXPSExKXt2YXIgRD0hMTtuLkIuR0MmJihuLlJCLldKKCJwYWdlVHJhbnNpdGlvbiIpLEQ9ITApO24uc3RvcFZpZGVvKEQsVyl9OwpVWj1mdW5jdGlvbihuLFcsRCxiLHYsayxoKXtXPXtpZDpXLG5hbWVzcGFjZTpoPz8iYXBwYXBpIn07az09PSJjaGFwdGVyIj8oVy5zdHlsZT1aTC5DSEFQVEVSX01BUktFUixXLnZpc2libGU9ITApOmlzTmFOKHYpfHwoaz09PSJhZCI/Vy5zdHlsZT1aTC5BRF9NQVJLRVI6KFcuc3R5bGU9WkwuVElNRV9NQVJLRVIsVy5jb2xvcj12KSxXLnZpc2libGU9ITApO24uWEgoW25ldyBnLmw1KEQqMUUzLGIqMUUzLFcpXSwxKTtyZXR1cm4hMH07CmxHdz1mdW5jdGlvbihuLFcsRD0hMCxiLHYpe3ZhciBrPW4uVkUoe3BsYXllclR5cGU6MX0pLGg9MDtrLmdldFN0cmVhbVRpbWVPZmZzZXQoKSYmIWsuU1coKSYmKGg9ay5nZXRTdHJlYW1UaW1lT2Zmc2V0KCkpO0piKG4sVy1oLEQsYiwxLHYpfTsKajgyPWZ1bmN0aW9uKG4pe2lmKG4uQi5zdG9yZVVzZXJWb2x1bWUpcmV0dXJuIHJQKCk7dmFyIFc9bi5pc0lubGluZSgpfHxuLndlYlBsYXllckNvbnRleHRDb25maWcuY29udGV4dElkPT09IldFQl9QTEFZRVJfQ09OVEVYVF9DT05GSUdfSURfS0VWTEFSX0lOTElORV9QUkVWSUVXIjtyZXR1cm4gbi5adCgpLk4uUVEoVE5DKSYmVz97dm9sdW1lOnJQKCkudm9sdW1lLG11dGVkOm4uQi5tdXRlfTp7dm9sdW1lOjEwMCxtdXRlZDpuLkIubXV0ZX19OwpDQlM9ZnVuY3Rpb24obixXLEQsYix2LGs9ITApe3ZhciBoPW4uaEMoKTtpZighaClyZXR1cm4gayYmbi5nZXRWaWRlb0RhdGEoKS5pc0xpdmVQbGF5YmFjayYmbi5KVi5wdXNoKHtpZDpXLFd1OkQsdHY6Yn0pLCExO2s9aC1uLmdldEN1cnJlbnRUaW1lKCk7cmV0dXJuIFVaKG4sVyxELWssYi1rLHZvaWQgMCx2b2lkIDAsdil9Owp5Wj1mdW5jdGlvbihuLFcpe24ucGxheWxpc3QmJihnLkNwKG4ucGxheWxpc3QpLG4ucGxheWxpc3Q9bnVsbCk7VyYmKG4uWlYmJihXLmZldGNoPTApLG4ucGxheWxpc3Q9bmV3IEJOYihuLkIsVykpfTsKaWw9ZnVuY3Rpb24obixXLEQpe1c9bi5WRSh7cGxheWVyVHlwZTpEfSkuTnAoVyk7RCYmbi5nZXRQcmVzZW50aW5nUGxheWVyVHlwZSgpIT09RHx8RVoobiwiY3VlcmFuZ2VzcmVtb3ZlZCIsVyl9OwpVYWg9ZnVuY3Rpb24obixXKXtyZXR1cm4gSFAobmV3IGcuRkxVKHtwSzpXLGNsaWVudFBsYXliYWNrTm9uY2U6bn0pKX07CndlVT1mdW5jdGlvbihuLFcsRCxiPUluZmluaXR5LHY9MCl7dmFyIGs9bi5NTigpO0Q9RHx8ay5nZXRQbGF5ZXJUeXBlKCk7KGs9dWwobixELFcsITApKXx8KGs9b1gobixELFcsITApKTtXPW4uY1goKTtEPT09MiYmVyYmKEQ9ay5nZXRWaWRlb0RhdGEoKSxXLlV5KEQuY2xpZW50UGxheWJhY2tOb25jZSxELkZGfHwiIixELmJyZWFrVHlwZXx8MCxELllLLEQudmlkZW9JZHx8IiIpKTtuLldwKGssYiwwLHYpfTsKTVlNPWZ1bmN0aW9uKG4pe3ZhciBXPW4ud2ViUGxheWVyQ29udGV4dENvbmZpZy50cnVzdGVkSnNVcmw7cmV0dXJuIFc/cHcoVykudG9TdHJpbmcoKTpuLndlYlBsYXllckNvbnRleHRDb25maWcuanNVcmx9OwpSdlo9ZnVuY3Rpb24obil7dmFyIFc9IiIsRD0iIixiPU1ZTShuKSx2PWcubGYoYiwiY2IiKTt2JiYvXltcdy1dKyQvLnRlc3QodikmJihEPXYpO2IuaW5kZXhPZigiLy8iKT09PTAmJihiPW4uQi5wcm90b2NvbCsiOiIrYik7dj1iLmxhc3RJbmRleE9mKCIvYmFzZS5qcyIpO3YhPT0tMSYmKFc9Yi5zdWJzdHJpbmcoMCx2KzEpKTtpZihiPUVycm9yKCkuc3RhY2spaWYoYj1iLm1hdGNoKC9cKCguKj9cLyhkZWJ1Zy0pP3BsYXllci0uKj8pOlxkKzpcZCtcKS8pKWI9YlsxXSxiLmluY2x1ZGVzKFcpfHxnLkdxKEVycm9yKGBQbGF5ZXIgbW9kdWxlIFVSTCBtaXNtYXRjaDogJHtifSB2cyAke1d9LmApKTtXPW5ldyBnLmQ1KG4uUkIsVyxEKTtqTGooVyx7ZGVzdHJveWVkOigpPT57bi5vbkFwaUNoYW5nZSgpfX0pOwpyZXR1cm4gV307ClE4eD1mdW5jdGlvbihuKXtpZihuLkIuWnQoKS5OLlFRKG5hKSl7bi5tUS50aWNrKCJ3YXNtX3MiKTtsZXQgVz1FZChuLndlYlBsYXllckNvbnRleHRDb25maWcud2FzbU1vZHVsZVVybCx2b2lkIDAsbi5JbC5iaW5kKG4pKTtuLkIuZUI9U2soVyxEPT57bi5tUS50aWNrKEQuaXNBc21qcz8id2FzbV9mYSI6Indhc21fZnciKTtKdShuLkIsRCk7cmV0dXJuIER9LEQ9PntuLm1RLnRpY2soIndhc21fZmVyciIpOwp0aHJvdyBEO30pfWVsc2UgT28obixmdW5jdGlvbigpe3ZhciBXPXRoaXM7CnJldHVybiBmdW5jdGlvbiooKXtXLm1RLnRpY2soIndhc21fcyIpO3ZhciBEPVFZKFcueDYpP2I9PlNrKERyWihXLng2KSx2PT52LmdCKGIpKTp2b2lkIDA7CnRyeXtsZXQgYj1FZChXLndlYlBsYXllckNvbnRleHRDb25maWcud2FzbU1vZHVsZVVybCxELFcuSWwuYmluZChXKSksdj15aWVsZCpQUChiKTtXLm1RLnRpY2sodi5pc0FzbWpzPyJ3YXNtX2ZhIjoid2FzbV9mdyIpO0p1KFcuQix2KX1jYXRjaChiKXtXLm1RLnRpY2soIndhc21fZmVyciIpfX0oKX0pfTsKVll4PWZ1bmN0aW9uKG4pe3ZhciBXPW5ldyBnLlVyKG4uQixuLk5RKTtuLlJCLldKKCJpbml0aWFsdmlkZW9kYXRhY3JlYXRlZCIsVyk7cmV0dXJuIG9YKG4sMSxXLCExKX07CmFHMT1mdW5jdGlvbihuKXt2YXIgVz1uLmNYKCk7Vy5zZXRQbGF5YmFja1JhdGUobi5CLko/MTpjRXIobixOdW1iZXIoZy5aSSgieXQtcGxheWVyLXBsYXliYWNrLXJhdGUiKSl8fDEpKTtXLmgkKG4uWkwsbik7Vy5zbSgpfTsKVzJ3PWZ1bmN0aW9uKG4pe24uamgoKTt2YXIgVz1uLk5RO3pBKG4pO24uZXZlbnRzLk5OKHdpbmRvdywicmVzaXplIixuLkE2KTt2YXIgRD1WUyhuKTtnLlZVKG4uUkIsIm9uVm9sdW1lQ2hhbmdlIixuLkZfKTtpZihXJiZaVChXKSl7bGV0IGI9dkUobi5CKTtiJiYhbi5aViYmKFcuZmV0Y2g9MCk7bGV0IHY9Zy5vNChuLkIpO3YmJiFuLlpWJiYoVy5mZXRjaD0wKTt5WihuLFcpO2cubzQobi5CKSYmbi5tUS50aWNrKCJlcF9wcl9zIik7aWYoIWJ8fG4uWlYpaWYodiYmIW4uWlYpbGwobik7ZWxzZSBpZighRC5PVigpKW4ucGxheWxpc3Qub25SZWFkeSgoKT0+e1RBKG4pfSl9bi5RVChuLmNYKCksITEsITApOwpuLmNYKCkuZ2V0UGxheWVyU3RhdGUoKS5OKDEyOCl8fChXPWhnUyghbi5CLmRldmljZUlzQXVkaW9Pbmx5KSxXPT09ImZtdC5ub25lYXZhaWxhYmxlIj9uLktnKCJodG1sNS5taXNzaW5nYXBpIiwyLCJIVE1MNV9OT19BVkFJTEFCTEVfRk9STUFUU19GQUxMQkFDSyIsIm5vY29kZWNzLjEiKTpXPT09Imh0bWw1Lm1pc3NpbmdhcGkiP24uS2coVywyLCJVTlNVUFBPUlRFRF9ERVZJQ0UiLCJub2NhbnBsYXltZWRpYS4xIik6RCYmRC5PVigpJiZDSihuKSYmKG4uQi5VNXx8bi5CLk1kKT9CZihuKTpELkpHP24uUkIubXV0ZWRBdXRvcGxheSh7ZHVyYXRpb25Nb2RlOkQubXV0ZWRBdXRvcGxheUR1cmF0aW9uTW9kZX0pOmcuWkkoInl0LXBsYXllci1wbGF5YmFjay1vbi1yZWxvYWQiKT8oZy56VSgiZW1iZWRzSXRwUGxheWVkT25SZWxvYWQiLHtwbGF5ZWRPblJlbG9hZDohMCxpc0xvZ2dlZEluOiEhbi5CLlRDfSksZy5QQigieXQtcGxheWVyLXBsYXliYWNrLW9uLXJlbG9hZCIsITEpLEJmKG4pKToKbi5CLlk9PT0ibGVhbmJhY2sifHxuNWoobiksZy5lTShuLkIpfHxnLnNkKG4uQik/KGcuY0IoZy5EeSgpLCgpPT57RlMobil9KSxnLmNCKGcuRHkoKSwoKT0+e3g1KCl9KSk6KEZTKG4pLHg1KCkpKX07CkRlYj1mdW5jdGlvbihuKXt2YXIgVz1EPT57RC5zdGFjayYmRC5zdGFjay5pbmRleE9mKCJwbGF5ZXIiKSE9PS0xJiZuLk1OKCkuVWUoRCl9OwpTaS5zdWJzY3JpYmUoImhhbmRsZUVycm9yIixXKTtLdy5wdXNoKFcpO3JldHVybigpPT57U2kudW5zdWJzY3JpYmUoImhhbmRsZUVycm9yIixXKTt2YXIgRD1Ldy5pbmRleE9mKFcpO0QhPT0tMSYmS3cuc3BsaWNlKEQsMSl9fTsKb1g9ZnVuY3Rpb24obixXLEQsYix2KXtpZihuLmZnJiZELk9WKCkpbj1uZXcgZy53NShuLkIsbi5mZyxXLEQpO2Vsc2V7bGV0IGs9bi5tUTtXPT09MiYmKGs9bmV3IGJjUyhuLkIpKTtXPW5ldyBnLk03KG4sbi5CLFcsayxuLnRlbXBsYXRlLG4udmlzaWJpbGl0eSxuLmlqLEQsdixuLmRoLG4uaTcpO24uQi5adCgpLk4uUVEodjVpKSYmbi5uVChELmNsaWVudFBsYXliYWNrTm9uY2UpO249bmV3IGcuUlgoVyl9YiYmbi5zbSgpO3JldHVybiBufTsKY0VyPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5SQi5nZXRBdmFpbGFibGVQbGF5YmFja1JhdGVzKCk7Vz1OdW1iZXIoVy50b0ZpeGVkKDIpKTtuPURbMF07RD1EW0QubGVuZ3RoLTFdO1c8PW4/Vz1uOlc+PUQ/Vz1EOihuPU1hdGguZmxvb3IoVyoxMDArLjAwMSklNSxuIT09MCYmKFctPW4qLjAxLFc9TWF0aC5mbG9vcihXKjEwMCsuMDAxKS8xMDApKTtyZXR1cm4gV307ClZaPWZ1bmN0aW9uKG4pe1FaKG4pO24uc2V0TG9vcFZpZGVvKCExKTtuLnNldExvb3BSYW5nZShudWxsKTtuLlJCLldKKCJsZWdhY3lhZHRyYWNraW5ncGluZ3Jlc2V0Iik7bi5hbD17fTtuLkpWPVtdO1pCaihuLm1RKTtpZihuLlF3KXt2YXIgVz1uLlF3LEQ9bi5jWCgpO0QuZ2V0UGxheWVyVHlwZSgpO0NPKFcsITEpO25KKFcpO2NSYihXKTtXLmdzPUR9Vz1uLnNVO249bi5jWCgpO24uZ2V0UGxheWVyVHlwZSgpIT09MSYmZy5MSihXLCJpbnZhbGlkUGFyZW50VmlkZW9QbGF5ZXJUeXBlIik7REwoVywhMSk7Zy5nNShXKTtXLk49bn07Cmswaj1mdW5jdGlvbihuKXt2YXIgVz1uLm1lZGlhRWxlbWVudDt6aSgpP24ua1YuTk4oVywid2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQiLG4udFcpOndpbmRvdy5kb2N1bWVudC5waWN0dXJlSW5QaWN0dXJlRW5hYmxlZCYmKG4ua1YuTk4oVywiZW50ZXJwaWN0dXJlaW5waWN0dXJlIiwoKT0+e24ucEwoITApfSksbi5rVi5OTihXLCJsZWF2ZXBpY3R1cmVpbnBpY3R1cmUiLCgpPT57bi5wTCghMSl9KSk7Cnc4JiYobi5rVi5OTihXLCJ3ZWJraXRiZWdpbmZ1bGxzY3JlZW4iLCgpPT57bi5GTygzKX0pLG4ua1YuTk4oVywid2Via2l0ZW5kZnVsbHNjcmVlbiIsKCk9PntuLkZPKDApfSkpfTsKekE9ZnVuY3Rpb24obil7bi5tZWRpYUVsZW1lbnQ9bi5CLmRldmljZUlzQXVkaW9Pbmx5P25ldyBnLkdWKGcuekYoIkFVRElPIikpOnFLLnBvcCgpfHxuZXcgZy5HVihnLnpGKCJWSURFTyIpKTtuLkIuWnQoKS5OLlFRKGNmKXx8Zy51KG4sbi5tZWRpYUVsZW1lbnQpO24uTU4oKS5zZXRNZWRpYUVsZW1lbnQobi5tZWRpYUVsZW1lbnQpO3RyeXtuLkIuczU/KG4uR3YmJm4uZXZlbnRzLndIKG4uR3YpLG4uR3Y9bi5ldmVudHMuTk4obi5tZWRpYUVsZW1lbnQsInZvbHVtZWNoYW5nZSIsbi56ZCkpOihuLm1lZGlhRWxlbWVudC5jSihuLkZfLm11dGVkKSxuLm1lZGlhRWxlbWVudC5zZXRWb2x1bWUobi5GXy52b2x1bWUvMTAwKSl9Y2F0Y2godil7bi5LZygiaHRtbDUubWlzc2luZ2FwaSIsMiwiVU5TVVBQT1JURURfREVWSUNFIixgc2V0dm9sdW1lLjE7ZW1zZy4ke3YmJnR5cGVvZiB2PT09Im9iamVjdCImJiJtZXNzYWdlImluIHYmJnR5cGVvZiB2Lm1lc3NhZ2U9PT0ic3RyaW5nIiYmdi5tZXNzYWdlLnJlcGxhY2UoL1s7OixdL2csCiJfIil9YCk7cmV0dXJufW4ua1YuSigpO2swaihuKTt2YXIgVz1uLnRlbXBsYXRlLEQ9bi5tZWRpYUVsZW1lbnQuZV8oKTtXLm5CPUQ7Vy53Rj0hMTtXLm5CLnBhcmVudE5vZGV8fGcuanAoVy5WUCxXLm5CLDApO1cuRU49bmV3IGcuYnIoMCwwLDAsMCk7WWVpKFcpO1hTKFcpO0Q9Vy5uQjtnLlVJKEQsInZpZGVvLXN0cmVhbSIpO2cuVUkoRCxnLk9uLk1BSU5fVklERU8pO3ZhciBiPVcuYXBwLkcoKTtiLmxRJiZELnNldEF0dHJpYnV0ZSgiZGF0YS1uby1mdWxsc2NyZWVuIiwidHJ1ZSIpO2IueGgmJihELnNldEF0dHJpYnV0ZSgid2Via2l0LXBsYXlzaW5saW5lIiwiIiksRC5zZXRBdHRyaWJ1dGUoInBsYXlzaW5saW5lIiwiIikpO2IuSkcmJlcubkImJlcuTk4oRCwiY2xpY2siLEQucGxheSxEKTt0cnl7bi5tZWRpYUVsZW1lbnQuRCgpfWNhdGNoKHYpe24uS2coImh0bWw1Lm1pc3NpbmdhcGkiLDIsIlVOU1VQUE9SVEVEX0RFVklDRSIsYGFjdGl2YXRlLjE7ZW1zZy4ke3YmJnR5cGVvZiB2PT09CiJvYmplY3QiJiYibWVzc2FnZSJpbiB2JiZ0eXBlb2Ygdi5tZXNzYWdlPT09InN0cmluZyImJnYubWVzc2FnZS5yZXBsYWNlKC9bOzosXS9nLCJfIil9YCl9fTsKRVo9ZnVuY3Rpb24obixXLEQpe24uUkIuV0ooVyxEKTt2YXIgYj1nLms2KG4uQil8fGcuRGYobi5CKXx8Zy5NVihuLkIpO2lmKEQmJmIpe2xldCB2O3N3aXRjaChXKXtjYXNlICJjdWVyYW5nZW1hcmtlcnN1cGRhdGVkIjp2PSJvbkN1ZVJhbmdlTWFya2Vyc1VwZGF0ZWQiO2JyZWFrO2Nhc2UgImN1ZXJhbmdlc2FkZGVkIjp2PSJvbkN1ZVJhbmdlc0FkZGVkIjticmVhaztjYXNlICJjdWVyYW5nZXNyZW1vdmVkIjp2PSJvbkN1ZVJhbmdlc1JlbW92ZWQifXYmJmcuUlQobi5SQix2LEQubWFwKGs9Pih7Z2V0SWQoKXtyZXR1cm4gdGhpcy5pZH0sZW5kOmsuZW5kLGlkOmsuZ2V0SWQoKSxuYW1lc3BhY2U6ay5uYW1lc3BhY2U9PT0iYWQiPyJhZCI6IiIsc3RhcnQ6ay5zdGFydCxzdHlsZTprLnN0eWxlLHZpc2libGU6ay52aXNpYmxlLG1hcmtlclBvc2l0aW9uTXM6ay5tYXJrZXJQb3NpdGlvbk1zfSkpKX19OwpoZDE9ZnVuY3Rpb24obixXPSEwKXt2YXIgRDtpZihEPW4uckgpe0Q9bi5ySDt2YXIgYj1uLm1lZGlhRWxlbWVudDtEPSEhYiYmYj09PUQubWVkaWFFbGVtZW50fUQmJihuLmNQKCksekEobikpO0Q9bi5NTigpO0QuY1AoIVcpO0QuTTkobi5zRixuKTtELmdldFBsYXllclR5cGUoKSE9PTEmJkQuZGlzcG9zZSgpO249bi5WcjtXPVtuLkpdO24uSj1uLmNKO1NzKG4sW10sVyl9OwpueD1mdW5jdGlvbihuLFcsRCxiKXtEJiYobi5jUCgpLHpBKG4pKTtEPW4uTU4oKTtELnhLKFcpO3ZhciB2PW4uZ2V0VmlkZW9EYXRhKCksaz17fTtrLnZpZGVvX2lkPXYudmlkZW9JZDtrLmFkZm9ybWF0PXYuYWRGb3JtYXQ7di5pc0xpdmVQbGF5YmFja3x8KGsuc3RhcnQ9RC5nZXRDdXJyZW50VGltZSgpLGsucmVzdW1lPSIxIik7di5pc0xpdmVQbGF5YmFjayYmSTQodikmJmcuR2wobi5CKSYmKGsubGl2ZV91dGNfc3RhcnQ9RC5oQygpLGsucmVzdW1lPSIxIik7di5EJiYoay52dnQ9di5EKTt2LmtXJiYoay52c3NfY3JlZGVudGlhbHNfdG9rZW49di5rVyxrLnZzc19jcmVkZW50aWFsc190b2tlbl90eXBlPXYuUXYpO3Yub2F1dGhUb2tlbiYmKGsub2F1dGhfdG9rZW49di5vYXV0aFRva2VuKTtrLmF1dG9wbGF5PTE7ay5yZWxvYWRfY291bnQ9di5TJCsxO2sucmVsb2FkX3JlYXNvbj1XO3Yub1QmJihrLnVucGx1Z2dlZF9wYXJ0bmVyX29wdF9vdXQ9di5vVCk7di5MQiYmKGsueXBjX2lzX3ByZW1pZXJlX3RyYWlsZXI9CnYuTEIpO3YucGxheWVyUGFyYW1zJiYoay5wbGF5ZXJfcGFyYW1zPXYucGxheWVyUGFyYW1zKTt2LnR3JiYoay5pdGN0PXYudHcpO24ubG9hZFZpZGVvQnlQbGF5ZXJWYXJzKGssdm9pZCAwLCEwLHZvaWQgMCx2b2lkIDAsYik7Vz09PSJzaWduYXR1cmUiJiZuLlF3JiZhWChuKX07CkwyTT1mdW5jdGlvbihuKXtpZigheGVyKG4pKXt2YXIgVz1uLmNYKCkuaDUoKTtXJiYoVz1XLmJkKCksVyBpbnN0YW5jZW9mIFByb21pc2UmJlcuY2F0Y2goKCk9Pnt9KSk7CldxKG4sVFgobi5nZXRQbGF5ZXJTdGF0ZU9iamVjdCgpKSl9fTsKeGVyPWZ1bmN0aW9uKG4pe3JldHVybiBuLnBsYXlsaXN0JiYoZy5DTihuLkIpfHxuLkIuWT09PSJiYWNrZ3JvdW5kX2F1ZGlvX3BsYXliYWNrIikmJm4ueGwoKT8obi5uZXh0VmlkZW8oITEsITApLCEwKTohMX07CldxPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5NTigpLGI9RC5nZXRQbGF5ZXJUeXBlKCk7aWYoYiE9PTJ8fG4uTFkoKSl7aWYoYj09PTImJm4uTFkoKXx8Yj09PTV8fGI9PT02fHxiPT09NylpZihXPT09LTF8fFc9PT0wfHxXPT09NSlyZXR1cm47aWYoVz09PTApe2lmKG4uSE4pcmV0dXJuO2lmKEQuY0coKSYmZy5rNihuLkIpKXtuLnBsYXlWaWRlbygpO3JldHVybn19bi5pdSE9PVcmJihuLml1PVcsZy5WVShuLlJCLCJvblN0YXRlQ2hhbmdlIixXKSl9ZWxzZSBuLkIkIT09VyYmKG4uQiQ9VyxnLlZVKG4uUkIsIm9uQWRTdGF0ZUNoYW5nZSIsVykpfTsKREY9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5Wci5WRShXKX07CmcuSVg9ZnVuY3Rpb24obixXKXtyZXR1cm4gbi5MWShXKT9uLmNYKCk6V307CmJVPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5NTigpO3JldHVybiBXPT09bi5jWCgpJiZuLkxZKFcpJiZuLkxZKEQpP0Q6V307CnZxPWZ1bmN0aW9uKG4pe249R3Uobi54Nik7cmV0dXJuISFuJiZuLmxvYWRlZH07CmVkUz1mdW5jdGlvbihuKXt2YXIgVz1uLmdldFZpZGVvRGF0YSgpLEQ9bi54NjtWWShEKXx8RC5YKCk7IVVkJiZRWShEKSYmYU1VKEQpO3c5KEQsImVtYmVkIik7dzkoRCwia2lkcyIpO3c5KEQsInJlbW90ZSIpO3c5KEQsIm1pbmlwbGF5ZXIiKTt3OShELCJvZmZsaW5lIik7dzkoRCwidW5wbHVnZ2VkIik7dzkoRCwieXBjIiwhMSwhMCk7dzkoRCwid2ViZ2wiLCExLCEwKTtuRGooRCl8fCh3OShELCJjYXB0aW9ucyIsITApLHc5KEQsImVuZHNjcmVlbiIpLEQuTigpLHc5KEQsImNyZWF0b3JlbmRzY3JlZW4iLCEwKSk7RC5ZKCk7RC5BLldKKCJtb2R1bGVzQ3JlYXRlZCIpO24uUkIuV0ooInZpZGVvcmVhZHkiLFcpfTsKYVg9ZnVuY3Rpb24obil7aWYoIXZxKG4pKXtsZXQgVz1URyhuLng2KTtXJiYhVy5jcmVhdGVkJiZSRyhuLng2KSYmVy5jcmVhdGUoKX19OwpPWj1mdW5jdGlvbihuKXt2YXIgVz1uLmdldFZpZGVvRGF0YSgpO2lmKCFXLnlsKXt2YXIgRDtuLkIuZXhwZXJpbWVudHMuRXEoImh0bWw1X3N0YXRlZnVsX2F1ZGlvX25vcm1hbGl6YXRpb24iKSYmVy5ob3N0Q3BuJiYoRD1raShuLFcuaG9zdENwbik/LmdldFZpZGVvRGF0YSgpLmhnLmooKSk7Vz1uLkIuczU/MTpyNihXLmhnLEQpO0Q9bi5tZWRpYUVsZW1lbnQ7RC5jSihuLkZfLm11dGVkKTt0cnl7RC5zZXRWb2x1bWUobi5GXy52b2x1bWUqVy8xMDApfWNhdGNoe2cuR3EobmV3IGcuUXgoImIxODM3NDIzMDciLGBtdWx0aXBsaWVyOiAke1d9LCB2b2x1bWU6ICR7bi5GXy52b2x1bWV9YCkpfX19Owp2YXIgSjFaPWZ1bmN0aW9uKCl7cmV0dXJuIGVYW0lbMTBdXSh0aGlzLDY3LDQ4NDkpfTsKQ0o9ZnVuY3Rpb24obil7bj1WUyhuKTtuLk9WKCk7cmV0dXJuIEFEKG4pfTsKbGw9ZnVuY3Rpb24obixXKXt2YXIgRD0oVz9XOlZTKG4pKS5RNztuLm1RLnRpY2soImVwX3ByX3IiKTtpZihEIT1udWxsJiYodUF0KG4ucGxheWxpc3QsRCksbi5sSikpbi5wbGF5bGlzdC5vblJlYWR5KCgpPT57VEEobixXKX0pfTsKVEE9ZnVuY3Rpb24obixXKXt2YXIgRD1nLm80KG4uQikmJiFuLkIuTyxiPUQmJlc/VzppdihuLnBsYXlsaXN0KTtXPUQmJlc/VzpuLmdldFZpZGVvRGF0YSgpO2ImJihXLkd1JiYobi5CLlU1fHxuLkIuTWQpfHwhbi5LSD8oVz1XLlBYLGI9bi56MihiLDEpLFcmJmZKKG4sYikpOmhWKG4sYiwxKSk7Zy5vNChuLkIpJiZuLm1RLnRpY2soImVwX3BfbCIpO24ubEo9ITE7Zy5RVShuLlJCLCJvblBsYXlsaXN0VXBkYXRlIil9OwpCZj1mdW5jdGlvbihuKXt2YXIgVz1uLmNYKCk7aWYoVy5nZXRQbGF5ZXJTdGF0ZSgpLk4oMTI4KSlyZXR1cm4hMTtXPVcuZ2V0VmlkZW9EYXRhKCk7Q0oobikmJm4uQi5NZCYmKHFLLmxlbmd0aCYmbi5zaj8oUGYobix7bXV0ZWQ6ITEsdm9sdW1lOm4uRl8udm9sdW1lfSwhMSksS0oobiwhMSkpOnFLLmxlbmd0aHx8bi5GXy5tdXRlZHx8KFBmKG4se211dGVkOiEwLHZvbHVtZTpuLkZfLnZvbHVtZX0sITEpLEtKKG4sITApKSk7Q0oobikmJmcubzQobi5CKSYmVy5tdXRlZEF1dG9wbGF5JiYoUGYobix7bXV0ZWQ6ITAsdm9sdW1lOm4uRl8udm9sdW1lfSwhMSksS0oobiwhMCkpO1cuTjAmJlBmKG4se211dGVkOiEwLHZvbHVtZTpuLkZfLnZvbHVtZX0sITEpO3VsKG4sMSxXLCExKTt2YXIgRD1uLmNYKCk7bi5SQi5XSigiaW5pdGlhbGl6aW5nbW9kZSIpO24uUVQoRCk7bi5HMigzKTt2YXIgYjtpZighKGI9IW4uQi5HUykpe2lmKGI9bi5ySCl7Yj1uLnJIO3ZhciB2PW4ubWVkaWFFbGVtZW50OwpiPSEhdiYmdj09PWIubWVkaWFFbGVtZW50fWI9YiYmbi5hQ31iJiYobi5jUCgpLHpBKG4pLEQuc2V0TWVkaWFFbGVtZW50KG4ubWVkaWFFbGVtZW50KSk7RC5uTCgpO2lmKEQuZ2V0UGxheWVyU3RhdGUoKS5OKDEyOCkpcmV0dXJuITE7Vy5EdHx8V3EobiwzKTtyZXR1cm4gbi5hQz0hMH07Cm41aj1mdW5jdGlvbihuKXtuLlJCLldKKCJpbml0aWFsaXppbmdtb2RlIik7bi5HMigyKTt3OShuLng2LCJyZW1vdGUiKTt3OShuLng2LCJtaW5pcGxheWVyIil9OwpGUz1mdW5jdGlvbihuKXtpZighbi5TKCJ1c2VfcnRhX2Zvcl9wbGF5ZXIiKSlpZihuLlMoImZldGNoX2F0dF9pbmRlcGVuZGVudGx5IikpZy5KYShuLkNOKTtlbHNle3ZhciBXPW4uZ2V0VmlkZW9EYXRhKCkuYm90Z3VhcmREYXRhO1cmJmcuekMoVyxuLkIsbi5nZXRWaWRlb0RhdGEoKS5wS3x8IiIpfX07CktKPWZ1bmN0aW9uKG4sVyl7VyE9PW4uc2omJihuLnNqPVcsZy5RVShuLlJCLCJvbk11dGVkQXV0b3BsYXlDaGFuZ2UiLFcpKX07CnVsPWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PXhpKG4sVyxEKSxrPW4uVnIuWC5nZXQodil8fG51bGw7aWYoIWspcmV0dXJuIG51bGw7bi5Wci5YLnJlbW92ZSh2KTtpZihrLnFOKCkpcmV0dXJuIG51bGw7aWYoay5nZXRQbGF5ZXJTdGF0ZSgpLk4oMTI4KSlyZXR1cm4gay5kaXNwb3NlKCksbnVsbDtpZihrPT09REYobix7cGxheWVyVHlwZTpXfSkpcmV0dXJuIG4ubVEuaW5mb0dlbCh7aXNDYWNoZUhpdDohMH0pLGs7aWYoKGsuZ2V0VmlkZW9EYXRhKCkub2F1dGhUb2tlbnx8RC5vYXV0aFRva2VuKSYmay5nZXRWaWRlb0RhdGEoKS5vYXV0aFRva2VuIT09RC5vYXV0aFRva2VuKXJldHVybiBudWxsO1c9PT0xJiYoVz1uLk1OKCkuZ2V0VmlkZW9EYXRhKCksQUooVykmJlcuaXNBZCgpJiZifHxRWihuKSk7Ynx8bi5RVChrLCEwKTtuLm1RLmluZm9HZWwoe2lzQ2FjaGVIaXQ6ITB9KTtyZXR1cm4ga307CmcuZzVoPWZ1bmN0aW9uKG4pe3ZhciBXPSgwLGcuUikoKSxEPW4uZ2V0Q3VycmVudFRpbWUoKTtuPW4uZ2V0VmlkZW9EYXRhKCk7RD0xRTMqKEQtbi5zdGFydFNlY29uZHMpO24uaXNMaXZlUGxheWJhY2smJihEPTApO3JldHVybiBXLU1hdGgubWF4KEQsMCl9OwpkYXQ9ZnVuY3Rpb24obixXKXtpZighbi5ITilyZXR1cm4hMTt2YXIgRD1uLkhOLnN0YXJ0VGltZU1zKi4wMDEtMSxiPW4uSE4uZW5kVGltZU1zKi4wMDE7bi5ITi50eXBlPT09InJlcGVhdENoYXB0ZXIiJiZiLS07cmV0dXJuIE1hdGguYWJzKFctRCk8PTFFLTZ8fE1hdGguYWJzKFctYik8PTFFLTZ8fFc+PUQmJlc8PWJ9OwpYUXg9ZnVuY3Rpb24obil7dmFyIFc9bi5NTigpO2lmKG4uUygiaHRtbDVfZGlzYWJsZV9sb29wX3JhbmdlX2Zvcl9zaG9ydHNfYWRzIikmJlcuZ2V0VmlkZW9EYXRhKCkuaXNBZCgpPzA6QUooVy5nZXRWaWRlb0RhdGEoKSkmJiFXLklLKCkpVz1BYihuKSoxRTMtbi5nZXRWaWRlb0RhdGEoKS5QTCxuPW4uVGUsaWwobi5hcHAsImdhcGxlc3NzaG9ydHNsb29wcmFuZ2UiKSxXPW5ldyBnLmw1KDAsVyx7aWQ6ImdhcGxlc3Nsb29wcmFuZ2UiLG5hbWVzcGFjZToiZ2FwbGVzc3Nob3J0c2xvb3ByYW5nZSJ9KSwobj1uLmFwcC5NTigpKSYmbi5hZGRDdWVSYW5nZShXKX07Ckcwaj1mdW5jdGlvbihuKXt2YXIgVz1uLmNYKCk7aWYoIShXLmdldFBsYXllclN0YXRlKCkuTig2NCkmJlZTKG4pLmlzTGl2ZVBsYXliYWNrJiZuLkhOLnN0YXJ0VGltZU1zPDVFMykpe2lmKG4uSE4udHlwZT09PSJyZXBlYXRDaGFwdGVyIil7dmFyIEQ9RCQobi5KNSgpKT8uQjcoKTtsZXQgYj1uLmdldFZpZGVvRGF0YSgpPy5iJDtpZihEIGluc3RhbmNlb2YgcWhTJiZiKXtsZXQgdj0wO2ZvcihsZXQgayBvZiBiKXtpZihrLnN0YXJ0VGltZT5uLkhOLnN0YXJ0VGltZU1zKWJyZWFrO3YrK31ELnJlbmRlckNoYXB0ZXJTZWVraW5nQW5pbWF0aW9uKDAsYlt2PT09MD92OnYtMV0udGl0bGUpfWlzTmFOKE51bWJlcihuLkhOLmxvb3BDb3VudCkpP24uSE4ubG9vcENvdW50PTA6bi5ITi5sb29wQ291bnQrKztuLkhOLmxvb3BDb3VudD09PTEmJmcuUlQobi5SQiwiaW5uZXJ0dWJlQ29tbWFuZCIsbi5nZXRWaWRlb0RhdGEoKS5aTil9RD17cWQ6ImFwcGxpY2F0aW9uX2xvb3BSYW5nZVN0YXJ0In07CmlmKG4uSE4udHlwZT09PSJjbGlwcyJ8fG4uSE4udHlwZT09PSJzaG9ydHNMb29wIilELnNlZWtTb3VyY2U9NTg7Vy5zZWVrVG8obi5ITi5zdGFydFRpbWVNcyouMDAxLEQpfX07ClNhPWZ1bmN0aW9uKG4sVyxEKXtpZihuLkxZKEQpJiYoRD1ELmdldFZpZGVvRGF0YSgpLCFnLkx4KG4pKSl7bj1uLnNVO2Zvcih2YXIgYiBvZiBuLkopaWYoRC5LZj09PWIuS2Ype1crPWIub2EvMUUzO2JyZWFrfWI9Vztmb3IobGV0IHYgb2Ygbi5KKXtpZihELktmPT09di5LZilicmVhaztuPXYub2EvMUUzO2lmKG48VyliKz12LmR1cmF0aW9uTXMvMUUzK24tdi5kSS8xRTM7ZWxzZSBicmVha31yZXR1cm4gYn1yZXR1cm4gV307CmcuTHg9ZnVuY3Rpb24obil7cmV0dXJuIG4uZ2V0VmlkZW9EYXRhKCkuZW5hYmxlU2VydmVyU3RpdGNoZWREYWkmJiEhbi5Rd307ClFaPWZ1bmN0aW9uKG4peyhuPVRHKG4uSjUoKSkpJiZuLmNyZWF0ZWQmJm4uZGVzdHJveSgpfTsKdHR3PWZ1bmN0aW9uKG4pe3ZhciBXPW4uZ2V0VmlkZW9EYXRhKCkueWwsRD1uLkIuRHQsYj1uLmlzSW5saW5lKCkmJiFuLmdldFZpZGVvRGF0YSgpLnYxLHY9bi5tZWRpYUVsZW1lbnQ7V3x8RHx8Yj92LmZCKCk6KHYuTEIoKSxQZihuLG4uRl8pKX07CiRlVT1mdW5jdGlvbihuKXtyZXR1cm4gbi5TKCJ3ZWJfZW5hYmxlX2RpYnNfaW1wbGVtZW50YXRpb24iKSYmZy5lTShuLkIpfHxuLlMoIm13ZWJfZW5hYmxlX2RpYnNfaW1wbGVtZW50YXRpb24iKSYmZy5zZChuLkIpfTsKeGk9ZnVuY3Rpb24obixXLEQpe3JldHVybiBnLms2KG4uQikmJkQudkooKT9gJHtXfV8ke0QudmlkZW9JZH1fJHtELktmfWA6YCR7V31fJHtELnZpZGVvSWR9XyR7RC5LZn1fJHsrRC5pc0F1dG9uYXZ9JHsrRC5WVH1gfTsKcmpqPWZ1bmN0aW9uKG4sVyl7cmV0dXJuIFcmJm4uQi5MQiYmIW4uZ2V0VmlkZW9EYXRhKCk/LmJhY2tncm91bmRhYmxlPyhuLkZqP24uRmouc3RhcnQoKTpuLlZLKCksITApOiExfTsKc2FpPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9MDtpZihXKXRyeXtsZXQgaz1kZWNvZGVVUklDb21wb25lbnQoVyksaD1scChrKTt2YXIgYj1uZXcgQVIobmV3IFM1KFtoXSkpO3ZhciB2PVBHKGIsMzIpO0Q9TnVtYmVyKHZ8fDApfWNhdGNoKGspe24uY1goKS5VKCJnZXRfbHVzdHNfZXJyIix7fSl9cmV0dXJuIER9OwpoVj1mdW5jdGlvbihuLFcsRD0xKXtpZihXLk9WKCkpe3ZhciBiPW9YKG4sRCxXLCExKTtuLmNhbmNlbFBsYXliYWNrKDQsRCk7bi5RVChiKTtiLnNtKCk7RD09PTEmJihuLkcyKDEpLGcubzQobi5CKSYmIVpQKFcpPyhXLmRpc3Bvc2UoKSxuLmNYKCkuZGlzcG9zZSgpKTpuNWoobikpfWVsc2UgVy5kaXNwb3NlKCksKFc9REYobix7cGxheWVyVHlwZTpEfSkpJiZXLmRpc3Bvc2UoKSxQVChWUyhuKSkmJkQ9PT0yJiZuLlNvKCl9OwpOYWI9ZnVuY3Rpb24obixXLEQsYix2KXtXPVFzUyhXLEQsYix2KTsoRD1nLm80KG4uQikmJiFuLkIuTykmJiFuLlpWJiYoVy5mZXRjaD0wKTt5WihuLFcpO2cubzQobi5CKSYmbi5tUS50aWNrKCJlcF9hX3ByX3MiKTtpZihEJiYhbi5aVilEPVZTKG4pLHpicihELFcpLnRoZW4oaz0+e24ubEo9ITA7bGwobixrKX0pOwplbHNlIG4ucGxheWxpc3Qub25SZWFkeSgoKT0+e1RBKG4pfSk7CmcubzQobi5CKSYmbi5tUS50aWNrKCJlcF9hX3ByX3IiKX07CmtpPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9REYobix7cGxheWVyVHlwZToxfSk7aWYoRCl7aWYoRC5nZXRWaWRlb0RhdGEoKS5jbGllbnRQbGF5YmFja05vbmNlPT09VylyZXR1cm4gRDtpZigobj1uLlNHLk4pJiZuLmdldFZpZGVvRGF0YSgpLmNsaWVudFBsYXliYWNrTm9uY2U9PT1XKXJldHVybiBufXJldHVybiBudWxsfTsKZW89ZnVuY3Rpb24obil7dmFyIFc9c1AoITApO3JldHVybiBXJiYoVz09PW4udGVtcGxhdGUuZWxlbWVudHx8bi5tZWRpYUVsZW1lbnQmJlc9PT1uLm1lZGlhRWxlbWVudC5lXygpKT9XOm51bGx9OwpZaGk9ZnVuY3Rpb24obixXKXt2YXIgRD13aW5kb3cuc2NyZWVuPy5vcmllbnRhdGlvbjtpZihuLkIudHcmJkQmJkQubG9jayYmKCFnLm9kfHwhcFFqKSlpZihXKXtXPUQudHlwZS5pbmRleE9mKCJwb3J0cmFpdCIpPT09MDtsZXQgYj1uLnRlbXBsYXRlLmdldFZpZGVvQXNwZWN0UmF0aW8oKSx2PVc7YjwxP3Y9ITA6Yj4xJiYodj0hMSk7bi5KUiYmdj09PVd8fChEPUQubG9jayh2PyJwb3J0cmFpdCI6ImxhbmRzY2FwZSIpLEQhPW51bGwmJkQuY2F0Y2goKCk9Pnt9KSxuLkpSPSEwKX1lbHNlIG4uSlImJihuLkpSPSExLEQudW5sb2NrKCkpfTsKSGN0PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9Vy5VeigpLGI9Vy5oNSgpO2lmKEQmJmImJm42KEQpKXt2YXIgdj1iLmlzVmlldygpP2IubWVkaWFFbGVtZW50OmI7bGV0IGg9Yi5pc1ZpZXcoKT9iLnN0YXJ0OjA7Yj1GZ2IoYikraDt2YXIgaz1MNihELGgsYiwhMCk7bGV0IHg9bmV3IGcuc2codixoLGIsITApO1cubm0oaywhMSwhMCwhMSk7Vy5zZXRNZWRpYUVsZW1lbnQoeCk7az1iKzEwO0Q9TDYoRCxrLEluZmluaXR5LCEwKTt2PW5ldyBnLnNnKHYsayxJbmZpbml0eSwhMSwhMCk7di5ISihEKTtuLlZxPXY7bi5CLldYKCkmJlcuVSgidXNtIix7cG1lOiEwLGNzOmgsY2U6YixuczprfSk7cmV0dXJuITB9cmV0dXJuITF9OwpmNmg9ZnVuY3Rpb24obixXKXtXLmJvdW5kcz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBEPVsiZGlzcGxheSIsIm9wYWNpdHkiLCJ2aXNpYmlsaXR5IiwiekluZGV4Il07Zm9yKGxldCBiIG9mIEQpV1tiXT1YbShuLGIpO1cuaGlkZGVuPSEhbi5oaWRkZW59Owp2YXIgU2pVPWZ1bmN0aW9uKCl7cmV0dXJuIFhEW0lbMTBdXSh0aGlzLDQsMzA5NCl9Owp2YXIgSmoyPWZ1bmN0aW9uKG4pe3JldHVybiBuLm5hbWU9PT0iVHlwZUVycm9yIiYmbi5zdGFjay5pbmNsdWRlcygiL3MvcGxheWVyLyIpJiZFeigpPD0xMDV9LGdxPWZ1bmN0aW9uKG4sVyl7aWYobi5hcGkuRygpLlMoIndlYl9wbGF5ZXJfbG9nX2NsaWNrX2JlZm9yZV9nZW5lcmF0aW5nX3ZlX2NvbnZlcnNpb25fcGFyYW1zIikpe3ZhciBEPU1hdGguZmxvb3IoLW4uc2Nyb2xsUG9zaXRpb24vKG4uaituLlcpKTsKbGV0IGI9TWF0aC5taW4oRCtuLmNvbHVtbnMsbi5zdWdnZXN0aW9uRGF0YS5sZW5ndGgpLTE7Zm9yKDtEPD1iO0QrKyluLmFwaS5sb2dWaXNpYmlsaXR5KG4uTltEXS5lbGVtZW50LFcpfX0sWFA9ZnVuY3Rpb24obil7bi5uZXh0LmVsZW1lbnQuc3R5bGUuYm90dG9tPWAke24uS31weGA7Cm4ucHJldmlvdXMuZWxlbWVudC5zdHlsZS5ib3R0b209YCR7bi5LfXB4YDt2YXIgVz1uLnNjcm9sbFBvc2l0aW9uLEQ9bi5jb250YWluZXJXaWR0aC1uLnN1Z2dlc3Rpb25EYXRhLmxlbmd0aCoobi5qK24uVyk7Zy5pSChuLmVsZW1lbnQsInl0cC1zY3JvbGwtbWluIixXPj0wKTtnLmlIKG4uZWxlbWVudCwieXRwLXNjcm9sbC1tYXgiLFc8PUQpfSxJNlo9ZnVuY3Rpb24obil7Zm9yKHZhciBXPTA7VzxuLnN1Z2dlc3Rpb25EYXRhLmxlbmd0aDtXKyspe3ZhciBEPW4uc3VnZ2VzdGlvbkRhdGFbV107CmxldCBrPW4uTltXXTt2YXIgYj1ELnNob3J0Vmlld0NvdW50P0Quc2hvcnRWaWV3Q291bnQ6RC5hdXRob3I7bGV0IGg9RC5NZigpLHg9bi5hcGkuRygpO2lmKGcubzQoeCkmJiF4LlMoIndlYl9wbGF5ZXJfbG9nX2NsaWNrX2JlZm9yZV9nZW5lcmF0aW5nX3ZlX2NvbnZlcnNpb25fcGFyYW1zIikpe3ZhciB2PXt9O011KG4uYXBpLFt2XSk7aD1nLkVUKGgsdil9ay5lbGVtZW50LnN0eWxlLmRpc3BsYXk9IiI7dj1rLkJKKCJ5dHAtc3VnZ2VzdGlvbi10aXRsZSIpO3FsLnRlc3QuY2FsbChxbCxELnRpdGxlKT92LmRpcj0icnRsIjpHZy50ZXN0LmNhbGwoR2csRC50aXRsZSkmJih2LmRpcj0ibHRyIik7dj1rLkJKKCJ5dHAtc3VnZ2VzdGlvbi1hdXRob3IiKTtxbC50ZXN0LmNhbGwocWwsYik/di5kaXI9InJ0bCI6R2cudGVzdC5jYWxsKEdnLGIpJiYodi5kaXI9Imx0ciIpO2sudXBkYXRlKHt2aWV3c19vcl9hdXRob3I6YixkdXJhdGlvbjpELmlzTGl2ZVBsYXliYWNrPyJMaXZlIjpELmxlbmd0aFNlY29uZHM/CmcuSDcoRC5sZW5ndGhTZWNvbmRzKToiIixsaW5rOmgsaG92ZXJfdGl0bGU6RC50aXRsZSx0aXRsZTpELnRpdGxlLGFyaWFfbGFiZWw6RC5hcmlhTGFiZWx8fG51bGwsaXNfbGl2ZTpELmlzTGl2ZVBsYXliYWNrfSk7Yj1ELkdCKCk7ay5CSigieXRwLXN1Z2dlc3Rpb24taW1hZ2UiKS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9Yj9gdXJsKCR7Yn0pYDoiIjt4LlMoIndlYl9wbGF5ZXJfbG9nX2NsaWNrX2JlZm9yZV9nZW5lcmF0aW5nX3ZlX2NvbnZlcnNpb25fcGFyYW1zIikmJihuLmFwaS5jcmVhdGVTZXJ2ZXJWZShrLmVsZW1lbnQsayksKEQ9KEQ9RC5zZXNzaW9uRGF0YSkmJkQuaXRjdCkmJm4uYXBpLnNldFRyYWNraW5nUGFyYW1zKGsuZWxlbWVudCxEKSl9Zm9yKDtXPG4uTi5sZW5ndGg7VysrKW4uTltXXS5lbGVtZW50LnN0eWxlLmRpc3BsYXk9Im5vbmUiO1hQKG4pfSxTaFU9ZnVuY3Rpb24obixXLEQpe1cucHJldmVudERlZmF1bHQoKTsKbi5hcGkubG9nQ2xpY2soRCk7Vz1ELmdldEF0dHJpYnV0ZSgiaHJlZiIpO0Q9e307TXUobi5hcGksW0RdKTtXPWcuR0YoRCk/VzpnLkVUKFcsRCk7SkYoVyl9LEFqTT1mdW5jdGlvbihuLFcpe24uQkooInl0cC1lcnJvci1jb250ZW50Iikuc3R5bGUucGFkZGluZ1RvcD0iMHB4IjsKdmFyIEQ9bi5CSigieXRwLWVycm9yLWNvbnRlbnQiKSxiPUQuY2xpZW50SGVpZ2h0O24uTiYmbi5OLnJlc2l6ZShXLFcuaGVpZ2h0LWIpO0Quc3R5bGUucGFkZGluZ1RvcD1gJHsoVy5oZWlnaHQtKG4uTj9uLk4uZWxlbWVudC5jbGllbnRIZWlnaHQ6MCkpLzItYi8yfXB4YH0sSzJVPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9bi5hcGkuRygpLGI7ClcucmVhc29uJiYodFYoVy5yZWFzb24pP2I9Zy5iZyhXLnJlYXNvbik6Yj12YyhnLkRwKFcucmVhc29uKSksbi5YKGIsImNvbnRlbnQiKSk7dmFyIHY7Vy5zdWJyZWFzb24mJih0VihXLnN1YnJlYXNvbik/dj1nLmJnKFcuc3VicmVhc29uKTp2PXZjKGcuRHAoVy5zdWJyZWFzb24pKSxuLlgodiwic3VicmVhc29uIikpO2lmKFcucHJvY2VlZEJ1dHRvbiYmVy5wcm9jZWVkQnV0dG9uLmJ1dHRvblJlbmRlcmVyKXtiPW4uQkooInl0cC1lcnJvci1jb250ZW50LXdyYXAtc3VicmVhc29uIik7Vz1XLnByb2NlZWRCdXR0b24uYnV0dG9uUmVuZGVyZXI7bGV0IGs9Zy56RigiQSIpO1cudGV4dCYmVy50ZXh0LnNpbXBsZVRleHQmJih2PVcudGV4dC5zaW1wbGVUZXh0LGsudGV4dENvbnRlbnQ9dixtZVUoYix2KXx8RC5EJiYhRC5lbWJlZHNFcnJvckxpbmtzfHwoRD1nLncoVz8ubmF2aWdhdGlvbkVuZHBvaW50LGcuUGopPy51cmwsVz1nLncoVz8ubmF2aWdhdGlvbkVuZHBvaW50LGcuUGopPy50YXJnZXQsCkQmJihrLnNldEF0dHJpYnV0ZSgiaHJlZiIsRCksbi5hcGkuY3JlYXRlQ2xpZW50VmUoayxuLDE3ODQyNCksbi5OTihrLCJjbGljayIsaD0+e1NoVShuLGgsayl9KSksVyYmay5zZXRBdHRyaWJ1dGUoInRhcmdldCIsVyksRD1nLnpGKCJESVYiKSxELmFwcGVuZENoaWxkKGspLGIuYXBwZW5kQ2hpbGQoRCkpKX19LHRWPWZ1bmN0aW9uKG4pe2lmKG4ucnVucylmb3IobGV0IFc9MDtXPG4ucnVucy5sZW5ndGg7VysrKWlmKG4ucnVuc1tXXS5uYXZpZ2F0aW9uRW5kcG9pbnQpcmV0dXJuITA7CnJldHVybiExfSxtZVU9ZnVuY3Rpb24obixXKXtuPShufHxkb2N1bWVudCkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkEiKTsKZm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKyspaWYobltEXS50ZXh0Q29udGVudD09PVcpcmV0dXJuITA7cmV0dXJuITF9LE9jYj1mdW5jdGlvbihuKXt2YXIgVz17fTsKTXUobi5hcGksW1ddKTtuPW4uYXBpLmdldFZpZGVvVXJsKCk7cmV0dXJuIG49Zy5FVChuLFcpfSxQMHQ9ZnVuY3Rpb24obil7dmFyIFc9bi5hcGkuZ2V0VmlkZW9EYXRhKCksRD1uLmFwaS5HKCkuYlYmJiFuLnN0YXRlLk4oMikmJiFuLmFwaS5nZXRWaWRlb0RhdGEoe3BsYXllclR5cGU6MX0pLmlOOwpXLm11dGVkQXV0b3BsYXl8fG4uTUwoRCk7bi5hcGkubG9nVmlzaWJpbGl0eShuLmVsZW1lbnQsRCl9LFVlaj1mdW5jdGlvbihuKXtuLndhdGVybWFya3x8KG4ud2F0ZXJtYXJrPW5ldyBaY3Iobi5hcGkpLGcudShuLG4ud2F0ZXJtYXJrKSxuLndhdGVybWFyay5MdShuLmJvdHRvbUJ1dHRvbnMsMCksZy5pSChuLndhdGVybWFyay5lbGVtZW50LCJ5dHAtbXV0ZWQtYXV0b3BsYXktd2F0ZXJtYXJrIiwhMCksbi5OPW5ldyBnLiRpKG4ud2F0ZXJtYXJrLDAsITAsMTAwKSxnLnUobixuLk4pKX0seWpqPWZ1bmN0aW9uKG4pe24uSiYmbi5OJiYobi5OLnNob3coKSxuLlYuc3RhcnQoKSl9LEU1VT1mdW5jdGlvbihuKXtmb3IobGV0IFc9MDtXPDE2OysrVyl7bGV0IEQ9bmV3IGcucnEoe1o6ImEiLApKdzoieXRwLXN1Z2dlc3Rpb24tbGluayIseGE6e2hyZWY6Int7bGlua319Iix0YXJnZXQ6bi5hcGkuRygpLllaLCJhcmlhLWxhYmVsIjoie3thcmlhX2xhYmVsfX0ifSxYRjpbe1o6ImRpdiIsSnc6Inl0cC1zdWdnZXN0aW9uLWltYWdlIn0se1o6ImRpdiIsSnc6Inl0cC1zdWdnZXN0aW9uLW92ZXJsYXkiLHhhOntzdHlsZToie3tibGlua19yZW5kZXJpbmdfaGFja319IiwiYXJpYS1oaWRkZW4iOiJ7e2FyaWFfaGlkZGVufX0ifSxYRjpbe1o6ImRpdiIsSnc6Inl0cC1zdWdnZXN0aW9uLXRpdGxlIixPcToie3t0aXRsZX19In0se1o6ImRpdiIsSnc6Inl0cC1zdWdnZXN0aW9uLWF1dGhvciIsT3E6Int7YXV0aG9yX2FuZF92aWV3c319In0se1o6ImRpdiIseGE6eyJkYXRhLWlzLWxpdmUiOiJ7e2lzX2xpdmV9fSJ9LEp3OiJ5dHAtc3VnZ2VzdGlvbi1kdXJhdGlvbiIsT3E6Int7ZHVyYXRpb259fSJ9XX1dfSk7Zy51KG4sRCk7bGV0IGI9RC5CSigieXRwLXN1Z2dlc3Rpb24tbGluayIpO2cuaDEoYiwKInRyYW5zaXRpb25EZWxheSIsYCR7Vy8yMH1zYCk7bi5qLk5OKGIsImNsaWNrIix2PT57dmFyIGs9VztpZihuLlcpe3ZhciBoPW4uc3VnZ2VzdGlvbkRhdGFba10seD1oLnNlc3Npb25EYXRhO24uSyYmbi5hcGkuUygid2ViX3BsYXllcl9sb2dfY2xpY2tfYmVmb3JlX2dlbmVyYXRpbmdfdmVfY29udmVyc2lvbl9wYXJhbXMiKT8obi5hcGkubG9nQ2xpY2sobi5OW2tdLmVsZW1lbnQpLGs9aC5NZigpLGg9e30sTXUobi5hcGksW2hdKSxrPWcuRVQoayxoKSxSeShrLG4uYXBpLHYpKTpNcCh2LG4uYXBpLG4uSyx4fHx2b2lkIDApJiZuLmFwaS5NMihoLnZpZGVvSWQseCxoLnBsYXlsaXN0SWQpfWVsc2Ugdi5wcmV2ZW50RGVmYXVsdCgpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpfSk7CkQuTHUobi5zdWdnZXN0aW9ucy5lbGVtZW50KTtuLk4ucHVzaChEKTtuLmFwaS5jcmVhdGVTZXJ2ZXJWZShELmVsZW1lbnQsRCl9fSxpY3I9ZnVuY3Rpb24obil7aWYobi5hcGkuRygpLlMoIndlYl9wbGF5ZXJfbG9nX2NsaWNrX2JlZm9yZV9nZW5lcmF0aW5nX3ZlX2NvbnZlcnNpb25fcGFyYW1zIikpe3ZhciBXPU1hdGguZmxvb3IoLW4uc2Nyb2xsUG9zaXRpb24vKG4uVis4KSk7CmxldCBEPU1hdGgubWluKFcrbi5jb2x1bW5zLG4uc3VnZ2VzdGlvbkRhdGEubGVuZ3RoKS0xO2Zvcig7Vzw9RDtXKyspbi5hcGkubG9nVmlzaWJpbGl0eShuLk5bV10uZWxlbWVudCwhMCl9fSxzNj1mdW5jdGlvbihuKXt2YXIgVz1uLmFwaS55WigpPzMyOjE2OwpXPW4uRC8yK1c7bi5uZXh0LmVsZW1lbnQuc3R5bGUuYm90dG9tPWAke1d9cHhgO24ucHJldmlvdXMuZWxlbWVudC5zdHlsZS5ib3R0b209YCR7V31weGA7Vz1uLnNjcm9sbFBvc2l0aW9uO3ZhciBEPW4uY29udGFpbmVyV2lkdGgtbi5zdWdnZXN0aW9uRGF0YS5sZW5ndGgqKG4uVis4KTtnLmlIKG4uZWxlbWVudCwieXRwLXNjcm9sbC1taW4iLFc+PTApO2cuaUgobi5lbGVtZW50LCJ5dHAtc2Nyb2xsLW1heCIsVzw9RCl9LG81dz1mdW5jdGlvbihuKXt2YXIgVz1uLnN1Z2dlc3Rpb25EYXRhLmxlbmd0aDsKZm9yKGxldCBrPTA7azxXOysrayl7dmFyIEQ9dm9pZCAwLGI9dm9pZCAwO2xldCBoPXZvaWQgMDtEPW47dmFyIHY9RC5hcGkuRygpO2xldCB4PUQuc3VnZ2VzdGlvbkRhdGFba10sTD1ELk5ba107aD1ELmFwaS5pc0VtYmVkc1Nob3J0c01vZGUoKT94LnNob3J0Vmlld0NvdW50fHwiIjp4LnNob3J0Vmlld0NvdW50P2Ake3guYXV0aG9yfSBcdTIwMjIgJHt4LnNob3J0Vmlld0NvdW50fWA6eC5hdXRob3I7TC5lbGVtZW50LnN0eWxlLmRpc3BsYXk9IiI7Zy5oMShMLkJKKCJ5dHAtc3VnZ2VzdGlvbi1saW5rIiksImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKTt1eWkudGVzdCh4LnRpdGxlKSYmKEwuQkooInl0cC1zdWdnZXN0aW9uLXRpdGxlIikuZGlyPSJydGwiKTt1eWkudGVzdChoKSYmKEwuQkooInl0cC1zdWdnZXN0aW9uLWF1dGhvciIpLmRpcj0icnRsIik7Yj14LmlzTGl2ZVBsYXliYWNrPyJMaXZlIjp4Lmxlbmd0aFNlY29uZHM/Zy5INyh4Lmxlbmd0aFNlY29uZHMpOiIiO2xldCBlPQp4Lk1mKEQuYXBpLmlzRW1iZWRzU2hvcnRzTW9kZSgpKTtpZihnLm80KHYpJiYhdi5TKCJ3ZWJfcGxheWVyX2xvZ19jbGlja19iZWZvcmVfZ2VuZXJhdGluZ192ZV9jb252ZXJzaW9uX3BhcmFtcyIpKXtsZXQgRz17fTtNdShELmFwaSxbR10pO2U9Zy5FVChlLEcpfXYuUygid2ViX3BsYXllcl9sb2dfY2xpY2tfYmVmb3JlX2dlbmVyYXRpbmdfdmVfY29udmVyc2lvbl9wYXJhbXMiKSYmKHY9KHY9eC5zZXNzaW9uRGF0YSkmJnYuaXRjdCkmJkQuYXBpLnNldFRyYWNraW5nUGFyYW1zKEwuZWxlbWVudCx2KTtMLnVwZGF0ZSh7YXV0aG9yX2FuZF92aWV3czpoLGR1cmF0aW9uOmIsbGluazplLHRpdGxlOngudGl0bGUsYXJpYV9sYWJlbDp4LmFyaWFMYWJlbHx8eC50aXRsZSxpc19saXZlOnguaXNMaXZlUGxheWJhY2ssYXJpYV9oaWRkZW46ISF4LmFyaWFMYWJlbCxibGlua19yZW5kZXJpbmdfaGFjazpnLm9kfHxyYz8id2lsbC1jaGFuZ2U6IG9wYWNpdHkiOnZvaWQgMH0pO2I9TC5CSigieXRwLXN1Z2dlc3Rpb24taW1hZ2UiKTsKRD1ELmFwaS5pc0VtYmVkc1Nob3J0c01vZGUoKT94LkdCKCJocTIuanBnIik6eC5HQigpO2Iuc3R5bGUuYmFja2dyb3VuZEltYWdlPUQ/YHVybCgke0R9KWA6IiJ9aWYoVzwxNilmb3IoO1c8MTY7KytXKWcuaDEobi5OW1ddLkJKKCJ5dHAtc3VnZ2VzdGlvbi1saW5rIiksImRpc3BsYXkiLCJub25lIik7czYobil9LE5sPWZ1bmN0aW9uKG4pe2lmKCFuLlcpe3ZhciBXPU1hdGgubWluKCgwLGcuUikoKS1uLlYsbi5qKTsKdmFyIEQ9bi5qLVc7Vz1uLmo9PT0wPzA6TWF0aC5tYXgoRC9uLmosMCk7RD1NYXRoLnJvdW5kKEQvMUUzKTtuLlkuc2V0QXR0cmlidXRlKCJzdHJva2UtZGFzaG9mZnNldCIsYCR7LTIxMSooVysxKX1gKTtuLnVwZGF0ZVZhbHVlKCJkdXJhdGlvbiIsRCk7Vzw9MCYmbi5OP24uc3RvcFRpbWVyKCk6bi5OJiZuLk4uc3RhcnQoKX19LGRleD1mdW5jdGlvbihuKXtuLk58fChuLmo9NUUzLG4uVj0oMCxnLlIpKCksbi5OPW5ldyBnLnBfKCgpPT57Tmwobil9LG51bGwpLE5sKG4pKX0scHg9ZnVuY3Rpb24obil7dmFyIFc9bi5BOwpuPSEhVy5pc0VtYmVkc1Nob3J0c01vZGUoKTtnLmlIKFcuZ2V0Um9vdE5vZGUoKSwieXRwLXNob3J0cy1tb2RlIixuKTtpZihXPVcuZ2V0VmlkZW9EYXRhKCkpVy5TYT1ufSxUYXg9ZnVuY3Rpb24obil7e3ZhciBXPW4uQTsKbGV0IEQ9Vy5HKCk7RC5XaSYmIUQuRCYmZy5vNChEKT9XLmlzRW1iZWRzU2hvcnRzTW9kZSgpPyhXPVcuRTQoKSxXPU1hdGgubWluKFcud2lkdGgsVy5oZWlnaHQpPj0zMTUpOlc9IVcuejYoKTpXPSExfVchPT1uLkQmJihuLkQ9VyxuLmomJihuLmouZGlzcG9zZSgpLG4uaj1udWxsKSxuLlcmJihuLlcuZGlzcG9zZSgpLG4uVz1udWxsKSxuLlgmJihuLlguZGlzcG9zZSgpLG4uWD1udWxsKSxuLkomJihuLkouc3RvcCgpLG4uSi5kaXNwb3NlKCksbi5KPW51bGwpLFcmJihnLmI1KG4uQSksbi5BLmlzRW1iZWRzU2hvcnRzTW9kZSgpJiYobi5YPW5ldyBnLnJxKHtaOiJkaXYiLEp3OiJ5dHAtcGF1c2Utb3ZlcmxheS1iYWNrZHJvcCIseGE6e3RhYkluZGV4OiItMSJ9fSksZy51KG4sbi5YKSxnLnJ2KG4uQSxuLlguZWxlbWVudCw0KSxuLko9bmV3IGcuJGkobi5YLDFFMywhMSwxMDApLGcudShuLG4uSiksbi5YLmhpZGUoKSksbi5qPW5ldyBnLnJxKHtaOiJkaXYiLEp3OiJ5dHAtcGF1c2Utb3ZlcmxheS1jb250YWluZXIiLAp4YTp7dGFiSW5kZXg6Ii0xIn19KSxnLnUobixuLmopLG4uVz1uZXcgemRVKG4uQSksZy51KG4sbi5XKSxuLlcuTHUobi5qLmVsZW1lbnQpLGcucnYobi5BLG4uai5lbGVtZW50LDQpLGw2QyhuLG4uQS5nZXRQbGF5ZXJTdGF0ZU9iamVjdCgpKSkpfSxsNkM9ZnVuY3Rpb24obixXKXtuLkomJighVy5OKDQpJiYhVy5OKDIpfHxXLk4oMTAyNCk/bi5KLmhpZGUoKTpuLkouc2hvdygpKX0sWWk9ZnVuY3Rpb24obixXKXt2YXIgRD1uLkEuRygpOwpuPXthZFNvdXJjZToiRU1CRURTX0FEX1NPVVJDRV9ZT1VUVUJFIixicmVha1R5cGU6bi5BLmdldEN1cnJlbnRUaW1lKCk9PT0wPyJFTUJFRFNfQURfQlJFQUtfVFlQRV9QUkVfUk9MTCI6bi5BLmdldFBsYXllclN0YXRlKCk9PT0wPyJFTUJFRFNfQURfQlJFQUtfVFlQRV9QT1NUX1JPTEwiOiJFTUJFRFNfQURfQlJFQUtfVFlQRV9NSURfUk9MTCIsZW1iZWRVcmw6QUEobi5BLkcoKS5sb2FkZXJVcmwpLGV2ZW50VHlwZTpXLHlvdXR1YmVIb3N0OmcuSVAobi5BLkcoKS5EYSl8fCIifTtuLmVtYmVkZGVkUGxheWVyTW9kZT1ELmNKO2cuelUoImVtYmVkc0FkRXZlbnQiLG4pfSxudD1bXSxEaXg9dHlwZW9mIE9iamVjdC5jcmVhdGU9PSJmdW5jdGlvbiI/T2JqZWN0LmNyZWF0ZTpmdW5jdGlvbihuKXtmdW5jdGlvbiBXKCl7fQpXLnByb3RvdHlwZT1uO3JldHVybiBuZXcgV30sV1NDPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24obixXLEQpe2lmKG49PUFycmF5LnByb3RvdHlwZXx8bj09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gbjsKbltXXT1ELnZhbHVlO3JldHVybiBufSx4Mj1nbG9iYWxUaGlzLHZaPSJJbnQ4IFVpbnQ4IFVpbnQ4Q2xhbXBlZCBJbnQxNiBVaW50MTYgSW50MzIgVWludDMyIEZsb2F0MzIgRmxvYXQ2NCIuc3BsaXQoIiAiKTsKeDIuQmlnSW50NjRBcnJheSYmKHZaLnB1c2goIkJpZ0ludDY0IiksdloucHVzaCgiQmlnVWludDY0IikpO3ZhciBidFM9T2JqZWN0LnNldFByb3RvdHlwZU9mO2hpKCJTeW1ib2wuZGlzcG9zZSIsZnVuY3Rpb24obil7cmV0dXJuIG4/bjpTeW1ib2woIlN5bWJvbC5kaXNwb3NlIil9KTsKaGkoIlN1cHByZXNzZWRFcnJvciIsZnVuY3Rpb24obil7ZnVuY3Rpb24gVyhELGIsdil7aWYoISh0aGlzIGluc3RhbmNlb2YgVykpcmV0dXJuIG5ldyBXKEQsYix2KTt2PUVycm9yKHYpOyJzdGFjayJpbiB2JiYodGhpcy5zdGFjaz12LnN0YWNrKTt0aGlzLm1lc3NhZ2U9di5tZXNzYWdlO3RoaXMuZXJyb3I9RDt0aGlzLnN1cHByZXNzZWQ9Yn0KaWYobilyZXR1cm4gbjt2MkMoVyxFcnJvcik7Vy5wcm90b3R5cGUubmFtZT0iU3VwcHJlc3NlZEVycm9yIjtyZXR1cm4gV30pOwpoaSgiU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlQWxsIixmdW5jdGlvbihuKXtyZXR1cm4gbj9uOmZ1bmN0aW9uKFcsRCl7aWYoVyBpbnN0YW5jZW9mIFJlZ0V4cCYmIVcuZ2xvYmFsKXRocm93IG5ldyBUeXBlRXJyb3IoIlN0cmluZy5wcm90b3R5cGUucmVwbGFjZUFsbCBjYWxsZWQgd2l0aCBhIG5vbi1nbG9iYWwgUmVnRXhwIGFyZ3VtZW50LiIpO3JldHVybiBXIGluc3RhbmNlb2YgUmVnRXhwP3RoaXMucmVwbGFjZShXLEQpOnRoaXMucmVwbGFjZShuZXcgUmVnRXhwKFN0cmluZyhXKS5yZXBsYWNlKC8oWy0oKVxbXF17fSs/Ki4kXF58LDojPCFcXF0pL2csIlxcJDEiKS5yZXBsYWNlKC9ceDA4L2csIlxceDA4IiksImciKSxEKX19KTsKaGkoIkFycmF5LnByb3RvdHlwZS5hdCIsZnVuY3Rpb24obil7cmV0dXJuIG4/bjplVX0pOwpuMncoImF0IixmdW5jdGlvbihuKXtyZXR1cm4gbj9uOmVVfSk7CmhpKCJTdHJpbmcucHJvdG90eXBlLmF0IixmdW5jdGlvbihuKXtyZXR1cm4gbj9uOmVVfSk7CmhpKCJQcm9taXNlLndpdGhSZXNvbHZlcnMiLGZ1bmN0aW9uKG4pe3JldHVybiBuP246ZnVuY3Rpb24oKXt2YXIgVyxEO3JldHVybntwcm9taXNlOm5ldyBQcm9taXNlKGZ1bmN0aW9uKGIsdil7Vz1iO0Q9dn0pLApyZXNvbHZlOlcscmVqZWN0OkR9fX0pO3ZhciBjSixTVSxrYnQ7Y0o9Y0p8fHt9O2cucWk9dGhpc3x8c2VsZjtTVT0iY2xvc3VyZV91aWRfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKTtrYnQ9MDt2YXIgZV93PWNsYXNze2NvbnN0cnVjdG9yKHt1cmw6bixadjpXfSl7dGhpcy5KPW47dGhpcy5YPVc7dGhpcy5XPShuZXcgRGF0ZSkuZ2V0VGltZSgpLTE3MDQwNjcyRTU7dGhpcy5OPXt9O2Zvcih2YXIgRD0vWz8mXShbXiY9XSspPShbXiZdKikvZztXPUQuZXhlYyhuKTspdGhpcy5OW1dbMV1dPVdbMl19fTtnLml4KGcuVGIsRXJyb3IpO2cuVGIucHJvdG90eXBlLm5hbWU9IkN1c3RvbUVycm9yIjt2YXIgSWg7dmFyIE5yaD0vJi9nLHBadz0vPC9nLFl3aT0vPi9nLEh0VT0vIi9nLGYxUz0vJy9nLEppWj0vXHgwMC9nLHNDaD0vW1x4MDAmPD4iJ10vO3ZhciBuYj1nbG9iYWxUaGlzLnRydXN0ZWRUeXBlcyxXTTt2YXIgYl89Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW59dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5OKyIifX07Zy5laj1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn10b1N0cmluZygpe3JldHVybiB0aGlzLk59fTtnLlY1PW5ldyBnLmVqKCJhYm91dDppbnZhbGlkI3pDbG9zdXJleiIpO3ZhciBYSSxnMmo7WEk9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5PVj1ufX07Zy5HND1bcVUoImRhdGEiKSxxVSgiaHR0cCIpLHFVKCJodHRwcyIpLHFVKCJtYWlsdG8iKSxxVSgiZnRwIiksbmV3IFhJKG49Pi9eW146XSooWy8/I118JCkvLnRlc3QobikpXTsKZzJqPS9eXHMqKD8hamF2YXNjcmlwdDopKD86W1x3Ky4tXSs6fFteOi8/I10qKD86Wy8/I118JCkpL2k7Zy5ZMz1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn10b1N0cmluZygpe3JldHVybiB0aGlzLk4rIiJ9fTt2YXIgQUY9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW59dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5OKyIifX07dmFyIFo0PWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuTj1ufXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuTn19O3ZhciBMcD17fTt2YXIgQWlyLG1pMTtBaXI9UmVnRXhwKCJeKD86KFteOi8/Iy5dKyk6KT8oPzovLyg/OihbXlxcXFwvPyNdKilAKT8oW15cXFxcLz8jXSo/KSg/OjooWzAtOV0rKSk/KD89W1xcXFwvPyNdfCQpKT8oW14/I10rKT8oPzpcXD8oW14jXSopKT8oPzojKFtcXHNcXFNdKikpPyQiKTtnLno1PS8jfCQvO21pMT0vWz8mXSgkfCMpLzt2YXIgUUc9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihuLFcsRD1FcnJvcigpKXtzdXBlcigpO3RoaXMuY29kZT1uO1crPSI6IjtEIGluc3RhbmNlb2YgRXJyb3I/KHRoaXMubWVzc2FnZT1XK0QubWVzc2FnZSx0aGlzLnN0YWNrPUQuc3RhY2t8fCIiKToodGhpcy5tZXNzYWdlPVcrU3RyaW5nKEQpLHRoaXMuc3RhY2s9IiIpO09iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLG5ldy50YXJnZXQucHJvdG90eXBlKX19O2cuRk0ucHJvdG90eXBlLkhEPSExO2cuRk0ucHJvdG90eXBlLnFOPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSER9OwpnLkZNLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5IRHx8KHRoaXMuSEQ9ITAsdGhpcy5tQSgpKX07CmcuRk0ucHJvdG90eXBlW1N5bWJvbC5kaXNwb3NlXT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfTsKZy5GTS5wcm90b3R5cGUuYWRkT25EaXNwb3NlQ2FsbGJhY2s9ZnVuY3Rpb24obixXKXt0aGlzLkhEP1chPT12b2lkIDA/bi5jYWxsKFcpOm4oKToodGhpcy5CVnx8KHRoaXMuQlY9W10pLFcmJihuPW4uYmluZChXKSksdGhpcy5CVi5wdXNoKG4pKX07CmcuRk0ucHJvdG90eXBlLm1BPWZ1bmN0aW9uKCl7aWYodGhpcy5CVilmb3IoO3RoaXMuQlYubGVuZ3RoOyl0aGlzLkJWLnNoaWZ0KCkoKX07dmFyIFB4Uz1jbGFzcyBleHRlbmRzIGcuRk17Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLndwYz1ufUgkKCl7cmV0dXJuIHRoaXMud3BjLmYoKX15aChuKXt0aGlzLndwYy5jKG4pfVcobil7cmV0dXJuIHRoaXMud3BjLm0oUlAobikpfVpSKG4pe3JldHVybiB0aGlzLndwYy5td3MoUlAobikpfX0sd1Q9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKG4pe3N1cGVyKCk7dGhpcy5PMT1uO3RoaXMuVz0ia2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCBmb2N1c2luIGZvY3Vzb3V0IHNlbGVjdCBjb3B5IGN1dCBwYXN0ZSBjaGFuZ2UgY2xpY2sgZGJsY2xpY2sgYXV4Y2xpY2sgcG9pbnRlcm92ZXIgcG9pbnRlcmRvd24gcG9pbnRlcnVwIHBvaW50ZXJtb3ZlIHBvaW50ZXJvdXQgZHJhZ2VudGVyIGRyYWdsZWF2ZSBkcmFnIGRyYWdlbmQgbW91c2VvdmVyIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW91dCB0b3VjaHN0YXJ0IHRvdWNoZW5kIHRvdWNobW92ZSB3aGVlbCIuc3BsaXQoIiAiKTsKdGhpcy5KPXZvaWQgMDt0aGlzLk92PXRoaXMuTzEucDt0aGlzLlg9dGhpcy5TMS5iaW5kKHRoaXMpO3RoaXMuYWRkT25EaXNwb3NlQ2FsbGJhY2soKCk9PnZvaWQgT3RpKHRoaXMpKX1zbmFwc2hvdChuKXtyZXR1cm4gdGhpcy5PMS5zKHsuLi4obi53XyYme2M6bi53X30pLAouLi4obi5HbCYme3M6bi5HbH0pLC4uLihuLk1PIT09dm9pZCAwJiZ7cDpuLk1PfSl9KX1TMShuKXt0aGlzLk8xLmUobil9UUQoKXtyZXR1cm4gdGhpcy5PMS5sKCl9fTt2YXIgamExPWNsYXNzIGV4dGVuZHMgZy5GTXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyk7dGhpcy5iZD0xfXNoYXJlKCl7aWYodGhpcy5xTigpKXRocm93IEVycm9yKCJFOkFEIik7dGhpcy5iZCsrO3JldHVybiB0aGlzfWRpc3Bvc2UoKXstLXRoaXMuYmR8fHN1cGVyLmRpc3Bvc2UoKX19O3ZhciBDMHg9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5KPW47RXUobiwiL2NsaWVudF9zdHJlYW16L2JnL2ZycyIsYnAoIm1rIikpfWRFKG4sVyl7dGhpcy5KLmRFKCIvY2xpZW50X3N0cmVhbXovYmcvZnJzIixuLFcpfU4oKXtyZXR1cm4gdGhpcy5KLk4oIi9jbGllbnRfc3RyZWFtei9iZy9mcnMiKX19LEJhaT1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLko9bjtFdShuLCIvY2xpZW50X3N0cmVhbXovYmcvd3JsIixicCgibW4iKSxEWCgiYWMiKSxEWCgic2MiKSxicCgicmsiKSxicCgibWsiKSl9ZEUobixXLEQsYix2LGspe3RoaXMuSi5kRSgiL2NsaWVudF9zdHJlYW16L2JnL3dybCIsbixXLEQsYix2LGspfU4oKXtyZXR1cm4gdGhpcy5KLk4oIi9jbGllbnRfc3RyZWFtei9iZy93cmwiKX19LEYyWj1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLlc9bjt1ZShuLCIvY2xpZW50X3N0cmVhbXovYmcvZWMiLGJwKCJlbiIpLGJwKCJtayIpKX1KKG4sVyl7ZHAodGhpcy5XLCIvY2xpZW50X3N0cmVhbXovYmcvZWMiLApuLFcpfU4oKXtyZXR1cm4gdGhpcy5XLk4oIi9jbGllbnRfc3RyZWFtei9iZy9lYyIpfX0sd1FyPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuSj1uO0V1KG4sIi9jbGllbnRfc3RyZWFtei9iZy9lbCIsYnAoImVuIiksYnAoIm1rIikpfWRFKG4sVyxEKXt0aGlzLkouZEUoIi9jbGllbnRfc3RyZWFtei9iZy9lbCIsbixXLEQpfU4oKXtyZXR1cm4gdGhpcy5KLk4oIi9jbGllbnRfc3RyZWFtei9iZy9lbCIpfX0sTXQxPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuVz1uO3VlKG4sIi9jbGllbnRfc3RyZWFtei9iZy9jZWMiLERYKCJlYyIpLGJwKCJtayIpKX1KKG4sVyl7ZHAodGhpcy5XLCIvY2xpZW50X3N0cmVhbXovYmcvY2VjIixuLFcpfU4oKXtyZXR1cm4gdGhpcy5XLk4oIi9jbGllbnRfc3RyZWFtei9iZy9jZWMiKX19LFJkYj1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLlc9bjt1ZShuLCIvY2xpZW50X3N0cmVhbXovYmcvcG8vY3NjIixEWCgiY3MiKSxicCgibWsiKSl9SihuLFcpe2RwKHRoaXMuVywKIi9jbGllbnRfc3RyZWFtei9iZy9wby9jc2MiLG4sVyl9Tigpe3JldHVybiB0aGlzLlcuTigiL2NsaWVudF9zdHJlYW16L2JnL3BvL2NzYyIpfX0sUWF4PWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuVz1uO3VlKG4sIi9jbGllbnRfc3RyZWFtei9iZy9wby9jdGF2IixicCgiYXYiKSxicCgibWsiKSl9SihuLFcpe2RwKHRoaXMuVywiL2NsaWVudF9zdHJlYW16L2JnL3BvL2N0YXYiLG4sVyl9Tigpe3JldHVybiB0aGlzLlcuTigiL2NsaWVudF9zdHJlYW16L2JnL3BvL2N0YXYiKX19LFZ0aT1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLlc9bjt1ZShuLCIvY2xpZW50X3N0cmVhbXovYmcvcG8vY3dzYyIsYnAoInN1IiksYnAoIm1rIikpfUoobixXKXtkcCh0aGlzLlcsIi9jbGllbnRfc3RyZWFtei9iZy9wby9jd3NjIixuLFcpfU4oKXtyZXR1cm4gdGhpcy5XLk4oIi9jbGllbnRfc3RyZWFtei9iZy9wby9jd3NjIil9fSxjang9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5KPW47RXUobiwKIi9jbGllbnRfc3RyZWFtei9iZy9vZC9wIixicCgibWsiKSl9ZEUobixXKXt0aGlzLkouZEUoIi9jbGllbnRfc3RyZWFtei9iZy9vZC9wIixuLFcpfU4oKXtyZXR1cm4gdGhpcy5KLk4oIi9jbGllbnRfc3RyZWFtei9iZy9vZC9wIil9fSxhNnc9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5KPW47RXUobiwiL2NsaWVudF9zdHJlYW16L2JnL29kL24iLGJwKCJldCIpLGJwKCJtayIpKX1kRShuLFcsRCl7dGhpcy5KLmRFKCIvY2xpZW50X3N0cmVhbXovYmcvb2QvbiIsbixXLEQpfU4oKXtyZXR1cm4gdGhpcy5KLk4oIi9jbGllbnRfc3RyZWFtei9iZy9vZC9uIil9fTt2YXIgY1c9ITAsVjEsdjI7dmFyIEhxO0hxPU5pKDEsITApO2cucXg9TmkoNjEwNDAxMzAxLCExKTtOaSg4OTk1ODg0MzcsITEpO05pKDc3MjY1Nzc2OCwhMCk7TmkoNTEzNjU5NTIzLCExKTtOaSg1NjgzMzM5NDUsITApO05pKDEzMzE3NjE0MDMsITApO05pKDY1MTE3NTgyOCwhMSk7TmkoNzIyNzY0NTQyLCExKTtOaSg3NDg0MDIxNDUsITEpO05pKDc0ODQwMjE0NiwhMSk7dmFyIEF2PU5pKDc0ODQwMjE0NywhMCk7TmkoMTYwMjYxMzE4NSwhMSk7TmkoODYxMzc3NzIzLCExKTtOaSg4NjEzNzc3MjQsSHEpO05pKDg2OTMzNjkwMywhMSk7TmkoODgyNjc0NTA3LCExKTtOaSg4NjkzMzY5MDQsSHEpO05pKDg2OTMzNjkwNSxIcSk7TmkoMjgzOTUzMTU1LCExKTtOaSg5MTk0NDQ4MjQsITEpO05pKDkzMTQ2ODA0NywhMSk7TmkoOTI4ODc1Mzk4LCExKTtOaSg2ODM3NDkyMDEsITEpO05pKDIxNDc0ODM2NDQsITEpO05pKDIxNDc0ODM2NDUsITEpO05pKDIxNDc0ODM2NDYsSHEpO05pKDIxNDc0ODM2NDcsITApO2cuR2g9ISFnLnJyKCJ5dC5jb25maWdfLkVYUEVSSU1FTlRTX0ZMQUdTLmh0bWw1X2VuYWJsZV9jbGllbnRfaGludHNfb3ZlcnJpZGUiKTt2YXIgbnpiO256Yj1nLnFpLm5hdmlnYXRvcjtnLnQ0PW56Yj9uemIudXNlckFnZW50RGF0YXx8bnVsbDpudWxsO2cuT0FbIiAiXT1mdW5jdGlvbigpe307dmFyIHJjLG5yLHBRaixXVVosRDRpLGJpVSxYdyxmeDtyYz1OeCgpO2cua2g9c0EoKT8hMTpnLnJXKCJUcmlkZW50Iil8fGcuclcoIk1TSUUiKTtnLlJnPWcuclcoIkVkZ2UiKTtnLnNtPWcuUmd8fGcua2g7Zy5lUz1nLnJXKCJHZWNrbyIpJiYhKGcud3IoZy5YUSgpLCJXZWJLaXQiKSYmIWcuclcoIkVkZ2UiKSkmJiEoZy5yVygiVHJpZGVudCIpfHxnLnJXKCJNU0lFIikpJiYhZy5yVygiRWRnZSIpO2cuWmw9Zy53cihnLlhRKCksIldlYktpdCIpJiYhZy5yVygiRWRnZSIpO25yPWcubXgoKTtwUWo9Zy5LMCgpO2cuUUg9Zy5JMigpO1dVWj1TdSgpO0Q0aT1nLnJXKCJpUGFkIik7YmlVPWcuclcoImlQb2QiKTtYdz1nLkE0KCk7Zy5XWD1nLndyKGcuWFEoKSwiS2FpT1MiKTsKYTp7bGV0IG49IiIsVz1mdW5jdGlvbigpe3ZhciBEPWcuWFEoKTtpZihnLmVTKXJldHVybi9ydjooW15cKTtdKykoXCl8OykvLmV4ZWMoRCk7aWYoZy5SZylyZXR1cm4vRWRnZVwvKFtcZFwuXSspLy5leGVjKEQpO2lmKGcua2gpcmV0dXJuL1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspLy5leGVjKEQpO2lmKGcuWmwpcmV0dXJuL1dlYktpdFwvKFxTKykvLmV4ZWMoRCk7aWYocmMpcmV0dXJuLyg/OlZlcnNpb24pWyBcL10/KFxTKykvLmV4ZWMoRCl9KCk7ClcmJihuPVc/V1sxXToiIik7aWYoZy5raCl7dmFyIEpWO2xldCBEPWcucWkuZG9jdW1lbnQ7SlY9RD9ELmRvY3VtZW50TW9kZTp2b2lkIDA7aWYoSlYhPW51bGwmJkpWPnBhcnNlRmxvYXQobikpe2Z4PVN0cmluZyhKVik7YnJlYWsgYX19Zng9bn12YXIgUDI9ZngsaXR4PXt9O3ZhciB3OCxNWDtnLmFvPXAwKCk7dzg9U3UoKXx8Zy5yVygiaVBvZCIpO01YPWcuclcoImlQYWQiKTtnLkltPWcuclcoIkFuZHJvaWQiKSYmIShZSygpfHxwMCgpfHxOeCgpfHxnLnJXKCJTaWxrIikpO2cub2Q9WUsoKTtnLkduPWcuSDIoKSYmIWcuQTQoKTt2YXIgeWw9e30sVGg9bnVsbDt2YXIganU9L1stXy5dL2csZGlVPXsiLSI6IisiLF86Ii8iLCIuIjoiPSJ9LHdXPXt9O3ZhciBGUT1jbGFzc3tpc0VtcHR5KCl7cmV0dXJuIHRoaXMuTj09bnVsbH1zaXplQnl0ZXMoKXt2YXIgbj1RbCh0aGlzKTtyZXR1cm4gbj9uLmxlbmd0aDowfWNvbnN0cnVjdG9yKG4sVyl7UjIoVyk7dGhpcy5OPW47aWYobiE9bnVsbCYmbi5sZW5ndGg9PT0wKXRocm93IEVycm9yKCJCeXRlU3RyaW5nIHNob3VsZCBiZSBjb25zdHJ1Y3RlZCB3aXRoIG5vbi1lbXB0eSB2YWx1ZXMiKTt9fSxCMjt2YXIgYTI9dm9pZCAwO3ZhciBiND1XOSgiamFzIiwhMCksTG49VzkoKSxrOT1XOSgpLExHPVc5KCksUk1iPVc5KCksUUNpPVc5KCksRzRTPVc5KCksRFVpPVc5KCksdkg9VzkoIm1fbSIsITApLGNpVT1XOSgpLHFFPVc5KCk7Wy4uLk9iamVjdC52YWx1ZXMoe014OjEsRVk6MixHTDo0LFltOjgsalo6MTYsVFQ6MzIsUFE6NjQsTng6MTI4LGZoOjI1NixhTjo1MTIsYVU6MTAyNCxQbToyMDQ4LHI0OjQwOTYsYU86ODE5Mn0pXTt2YXIgenosdnp4PVtdO3Z6eFtiNF09Nzt6ej1PYmplY3QuZnJlZXplKHZ6eCk7dmFyIGt2PXt9LERCPXt9LEckPU9iamVjdC5mcmVlemUoe30pLFNvPXt9LHhVPXt9O3ZhciBZbyx3V2osa0N4O2cudF89cTMobj0+dHlwZW9mIG49PT0ibnVtYmVyIik7CmcuRzk9cTMobj0+dHlwZW9mIG49PT0ic3RyaW5nIik7CllvPXEzKG49Pm4hPW51bGwmJnR5cGVvZiBuPT09Im9iamVjdCImJnR5cGVvZiBuLnRoZW49PT0iZnVuY3Rpb24iKTsKd1dqPXEzKG49PnR5cGVvZiBuPT09ImZ1bmN0aW9uIik7CmtDeD1xMyhuPT4hIW4mJih0eXBlb2Ygbj09PSJvYmplY3QifHx0eXBlb2Ygbj09PSJmdW5jdGlvbiIpKTt2YXIgc0s9cTMobj0+bj49aDNqJiZuPD14NGopLGgzaj1CaWdJbnQoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpLHg0aj1CaWdJbnQoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO3ZhciByWj0wLHNfPTAsR3Y7dmFyIGRaPXR5cGVvZiBCaWdJbnQ9PT0iZnVuY3Rpb24iP0JpZ0ludC5hc0ludE46dm9pZCAwLEJyaD10eXBlb2YgQmlnSW50PT09ImZ1bmN0aW9uIj9CaWdJbnQuYXNVaW50Tjp2b2lkIDAsalg9TnVtYmVyLmlzU2FmZUludGVnZXIsUDk9TnVtYmVyLmlzRmluaXRlLFQ5PU1hdGgudHJ1bmMsbDEyPS9eLT8oWzEtOV1bMC05XSp8MCkoXC5bMC05XSspPyQvO3ZhciBhMVU9e307dmFyIFhGPWNsYXNze30sTVVpPXtKUzohMH07dmFyICR2O3ZhciBISCxmRzt2YXIgdjNpPWcuJFUoMCksZm49e307dmFyIE9WPWNsYXNze2NvbnN0cnVjdG9yKG4sVyxEKXt0aGlzLmJ1ZmZlcj1uO2lmKEQmJiFXKXRocm93IEVycm9yKCk7dGhpcy5OPVd9fTt2YXIgTFVyPWNsYXNze2NvbnN0cnVjdG9yKG4sVyxELGIpe3RoaXMuSj1udWxsO3RoaXMuVj0hMTt0aGlzLmo9bnVsbDt0aGlzLk49dGhpcy5XPXRoaXMuWD0wO3RoaXMuaW5pdChuLFcsRCxiKX1pbml0KG4sVyxELHtuXzpiPSExLGhCOnY9ITF9PXt9KXt0aGlzLm5fPWI7dGhpcy5oQj12O24mJihuPVBXKG4sdGhpcy5oQiksdGhpcy5KPW4uYnVmZmVyLHRoaXMuVj1uLk4sdGhpcy5qPW51bGwsdGhpcy5YPVd8fDAsdGhpcy5XPUQhPT12b2lkIDA/dGhpcy5YK0Q6dGhpcy5KLmxlbmd0aCx0aGlzLk49dGhpcy5YKX1mcmVlKCl7dGhpcy5jbGVhcigpO0FWLmxlbmd0aDwxMDAmJkFWLnB1c2godGhpcyl9Y2xlYXIoKXt0aGlzLko9bnVsbDt0aGlzLlY9ITE7dGhpcy5qPW51bGw7dGhpcy5OPXRoaXMuVz10aGlzLlg9MDt0aGlzLm5fPSExfXJlc2V0KCl7dGhpcy5OPXRoaXMuWH19LEFWPVtdO3ZhciBSWT0wLGhCUz1jbGFzc3tjb25zdHJ1Y3RvcihuLFcsRCxiKXtpZihBVi5sZW5ndGgpe2xldCB2PUFWLnBvcCgpO3YuaW5pdChuLFcsRCxiKTtuPXZ9ZWxzZSBuPW5ldyBMVXIobixXLEQsYik7dGhpcy5OPW47dGhpcy5YPXRoaXMuTi5OO3RoaXMuSj10aGlzLlc9LTE7akUodGhpcyxiKX1mcmVlKCl7dGhpcy5OLmNsZWFyKCk7dGhpcy5KPXRoaXMuVz0tMTtUJC5sZW5ndGg8MTAwJiZUJC5wdXNoKHRoaXMpfXJlc2V0KCl7dGhpcy5OLnJlc2V0KCk7dGhpcy5YPXRoaXMuTi5OO3RoaXMuSj10aGlzLlc9LTF9fSxUJD1bXTt2YXIgZTNyPWNsYXNze2NvbnN0cnVjdG9yKCl7aWYoU28hPT1Tbyl0aHJvdyBFcnJvcigpO319O3ZhciB2eT1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuSj1uPj4+MDt0aGlzLk49Vz4+PjB9fSxoMyxlQz1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuSj1uPj4+MDt0aGlzLk49Vz4+PjB9fSxnRyxyRyxOZixwaCwkbSx0MyxxZixHUzt2YXIgZ3pNPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5OPVtdfWxlbmd0aCgpe3JldHVybiB0aGlzLk4ubGVuZ3RofWVuZCgpe3ZhciBuPXRoaXMuTjt0aGlzLk49W107cmV0dXJuIG59fTt2YXIgWCQyPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5XPVtdO3RoaXMuSj0wO3RoaXMuTj1uZXcgZ3pNfX07dmFyIGxHLHEzWixtNyxHQzIsdDJoLCQ0aSxyWEMsUHEsc2YyLE5NVSxwJFU7bEc9b3goKTtxM1o9b3goKTttNz1veCgpO2cuS3g9b3goKTtHQzI9b3goKTt0Mmg9b3goKTskNGk9b3goKTtnLk82PW94KCk7clhDPW94KCk7UHE9b3goKTtzZjI9b3goKTtnLlpGPW94KCk7Tk1VPW94KCk7cCRVPW94KCk7Zy5RbT1jbGFzc3tjb25zdHJ1Y3RvcihuLFcsRCl7dGhpcy5sOT1KdihuLFcsRCwyMDQ4KX10b0pTT04oKXtyZXR1cm4gWXYodGhpcyl9Ylkobil7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFl2KHRoaXMsbikpfWNsb25lKCl7dmFyIG49dGhpcy5sOSxXPW5bYjRdfDA7cmV0dXJuIEtHKHRoaXMsbixXKT9PSyh0aGlzLG4sITApOm5ldyB0aGlzLmNvbnN0cnVjdG9yKG1fKG4sVywhMSkpfX07Zy5RbS5wcm90b3R5cGVbdkhdPWt2O2cuUW0ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubDkudG9TdHJpbmcoKX07dmFyIHpTPWNsYXNze2NvbnN0cnVjdG9yKG4sVyxEKXt0aGlzLmNqPW47dGhpcy5Qaj1XO249RXcobEcpO3RoaXMuTj0hIW4mJkQ9PT1ufHwhMX19LExjdD1UUyhmdW5jdGlvbihuLFcsRCxiLHYpe2lmKG4uSiE9PTIpcmV0dXJuITE7UTEobixoUyhXLGIsRCksdik7cmV0dXJuITB9LENoKSxlQnQ9VFMoZnVuY3Rpb24obixXLEQsYix2KXtpZihuLkohPT0yKXJldHVybiExOwpRMShuLGhTKFcsYixEKSx2KTtyZXR1cm4hMH0sQ2gpLHZPPVN5bWJvbCgpLGN5PVN5bWJvbCgpLFdPPVN5bWJvbCgpLHhuPVN5bWJvbCgpLEQ4PVN5bWJvbCgpLEJ5LEZ0O3ZhciBTNixVNix5cCxZM0MsaVUsSGl3LGZxdyx1VSx6ZyxsVSxUZyxqbyxKWFMsSXFqO1M2PShuLFcpPT57dmFyIEQ9bmV3IFgkMjtMOChuLmw5LEQsd0codk8sYjYsa24sVykpO0EzKEQsRC5OLmVuZCgpKTtuPW5ldyBVaW50OEFycmF5KEQuSik7Vz1ELlc7dmFyIGI9Vy5sZW5ndGgsdj0wO2ZvcihsZXQgaz0wO2s8YjtrKyspe2xldCBoPVdba107bi5zZXQoaCx2KTt2Kz1oLmxlbmd0aH1ELlc9W25dO3JldHVybiBufTsKVTY9Zy5nUShmdW5jdGlvbihuLFcsRCl7aWYobi5KIT09MSlyZXR1cm4hMTtnLnFZKFcsRCxnLmRlKG4uTikpO3JldHVybiEwfSxnLnQ5LGcuWkYpOwp5cD1nLmdRKGZ1bmN0aW9uKG4sVyxEKXtpZihuLkohPT01KXJldHVybiExO3ZhciBiPXVhKG4uTik7bj0oYj4+MzEpKjIrMTt2YXIgdj1iPj4+MjMmMjU1O2ImPTgzODg2MDc7Zy5xWShXLEQsdj09MjU1P2I/TmFOOm4qSW5maW5pdHk6dj09MD9uKjEuNDAxMjk4NDY0MzI0ODE3RS00NSpiOm4qTWF0aC5wb3coMix2LTE1MCkqKGIrODM4ODYwOCkpO3JldHVybiEwfSxmdW5jdGlvbihuLFcsRCl7Vz1tMChXKTsKVyE9bnVsbCYmKG00KG4sRCw1KSxuPW4uTixEPUd2fHwoR3Y9bmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcig4KSkpLEQuc2V0RmxvYXQzMigwLCtXLCEwKSxzXz0wLHJaPUQuZ2V0VWludDMyKDAsITApLEozKG4sclopKX0sc2YyKTsKZy5FNj1nLmdRKGZ1bmN0aW9uKG4sVyxEKXtuLkohPT0wP249ITE6KGcucVkoVyxELGcuVVYobi5OLGcuSl8pKSxuPSEwKTtyZXR1cm4gbn0sZy4kbixnLk82KTsKWTNDPWcuZ1EoZnVuY3Rpb24obixXLEQpe24uSiE9PTA/bj0hMTooZy5xWShXLEQsZy5VVihuLk4sZjUpKSxuPSEwKTtyZXR1cm4gbn0sZnVuY3Rpb24obixXLEQpe1c9YTAoVyk7CmlmKFchPW51bGwmJihQeShXKSxXIT1udWxsKSlzd2l0Y2gobTQobixELDApLHR5cGVvZiBXKXtjYXNlICJudW1iZXIiOm49bi5OO3A1KFcpO0h5KG4sclosc18pO2JyZWFrO2Nhc2UgImJpZ2ludCI6RD1ZbShXLHZ5LGttKTtIeShuLk4sRC5KLEQuTik7YnJlYWs7ZGVmYXVsdDpEPXhtKFcpLEh5KG4uTixELkosRC5OKX19LHJYQyk7CmlVPWcuZ1EoZnVuY3Rpb24obixXLEQpe2lmKG4uSiE9PTApcmV0dXJuITE7Zy5xWShXLEQsZy5FVihuLk4pKTtyZXR1cm4hMH0sZy5yUSxnLkt4KTsKSGl3PWcuZ1EoZnVuY3Rpb24obixXLEQpe3JldHVybiBKOShuLFcsRCl9LGZ1bmN0aW9uKG4sVyxEKXtXPWEwKFcpOwppZihXIT1udWxsKXN3aXRjaCh1RyhXKSxtNChuLEQsMSksbj1uLk4sdUcoVyksdHlwZW9mIFcpe2Nhc2UgIm51bWJlciI6VzwwPyhXPUxoKGttKC1XKSksRD1XLk4sSjMobixXLkopLEozKG4sRCkpOihOMyhXKSxKMyhuLHJaKSxKMyhuLHNfKSk7YnJlYWs7Y2FzZSAiYmlnaW50IjpXPVc8QmlnSW50KDApP0xoKFltKC1XLHZ5LGttKSk6WW0oVyx2eSxrbSk7RD1XLk47SjMobixXLkopO0ozKG4sRCk7YnJlYWs7ZGVmYXVsdDpXPVcubGVuZ3RoJiZXWzBdPT09Ii0iP0xoKHhtKFcuc3Vic3RyaW5nKDEpKSk6eG0oVyksRD1XLk4sSjMobixXLkopLEozKG4sRCl9fSxQcSk7CmZxdz1nLmdRKGZ1bmN0aW9uKG4sVyxEKXtpZihuLkohPT01KXJldHVybiExO2cucVkoVyxELHVhKG4uTikpO3JldHVybiEwfSxmdW5jdGlvbihuLFcsRCl7Vz11NChXKTsKVyE9bnVsbCYmKG00KG4sRCw1KSxKMyhuLk4sVykpfSx0MmgpOwp1VT1nLmdRKGZ1bmN0aW9uKG4sVyxEKXtpZihuLkohPT0wKXJldHVybiExO2cucVkoVyxELHkxKG4uTikpO3JldHVybiEwfSxzZixxM1opOwpnLm9tPWcuZ1EoZnVuY3Rpb24obixXLEQpe2lmKG4uSiE9PTIpcmV0dXJuITE7Zy5xWShXLEQsYVkobikpO3JldHVybiEwfSxOWSxtNyk7CmcuZHE9ZnVuY3Rpb24obixXLEQ9bEcpe3JldHVybiBuZXcgelMobixXLEQpfShmdW5jdGlvbihuLFcsRCxiLHYpe2lmKG4uSiE9PTIpcmV0dXJuITE7CmI9U1codm9pZCAwLGIpO2NIKFcsV1tiNF18MCxEKS5wdXNoKGIpO1ExKG4sYix2KTtyZXR1cm4hMH0sZnVuY3Rpb24obixXLEQsYix2KXtpZihBcnJheS5pc0FycmF5KFcpKXtmb3IobGV0IGs9MDtrPFcubGVuZ3RoO2srKylwOChuLFdba10sRCxiLHYpOwpuPVdbYjRdfDA7biYxfHwoV1tiNF09bnwxKX19KTsKemc9VFMoZnVuY3Rpb24obixXLEQsYix2LGspe2lmKG4uSiE9PTIpcmV0dXJuITE7dmFyIGg9V1tiNF18MDtXVyhXLGgsayxELEw1KGgpKTtXPWhTKFcsYixEKTtRMShuLFcsdik7cmV0dXJuITB9LHA4KTsKbFU9Zy5nUShmdW5jdGlvbihuLFcsRCl7aWYobi5KIT09MilyZXR1cm4hMTtnLnFZKFcsRCxEOShuKSk7cmV0dXJuITB9LGZ1bmN0aW9uKG4sVyxEKXtXPW5HKFcpOwpXIT1udWxsJiZpRyhuLEQsUFcoVywhMCkuYnVmZmVyKX0sTk1VKTsKVGc9WGYoZnVuY3Rpb24obixXLEQpe2lmKG4uSiE9PTIpcmV0dXJuITE7bj1EOShuKTtjSChXLFdbYjRdfDAsRCkucHVzaChuKTtyZXR1cm4hMH0sZnVuY3Rpb24obixXLEQpe1c9ZTYobkcsVywhMSk7CmlmKFchPW51bGwpZm9yKGxldCBoPTA7aDxXLmxlbmd0aDtoKyspe3ZhciBiPW4sdj1ELGs9V1toXTtrIT1udWxsJiZpRyhiLHYsUFcoaywhMCkuYnVmZmVyKX19LE5NVSk7CmpvPWcuZ1EoZnVuY3Rpb24obixXLEQpe2lmKG4uSiE9PTApcmV0dXJuITE7Zy5xWShXLEQsZy5FVihuLk4pPj4+MCk7cmV0dXJuITB9LGZ1bmN0aW9uKG4sVyxEKXtXPXU0KFcpOwpXIT1udWxsJiZXIT1udWxsJiYobTQobixELDApLEl4KG4uTixXKSl9LEdDMik7CmcuQ3g9Zy5nUShmdW5jdGlvbihuLFcsRCl7aWYobi5KIT09MClyZXR1cm4hMTtnLnFZKFcsRCxnLkVWKG4uTikpO3JldHVybiEwfSxmdW5jdGlvbihuLFcsRCl7RXMobixELEVfKFcpKX0scCRVKTsKSlhTPVhmKGZ1bmN0aW9uKG4sVyxEKXtpZihuLkohPT0wJiZuLkohPT0yKXJldHVybiExO1c9Y0goVyxXW2I0XXwwLEQpO24uSj09Mj9iRyhuLGs0MixXKTpXLnB1c2goZy5FVihuLk4pKTtyZXR1cm4hMH0sZnVuY3Rpb24obixXLEQpe1c9ZTYoRV8sVywhMCk7CmlmKFchPW51bGwpZm9yKGxldCBiPTA7YjxXLmxlbmd0aDtiKyspRXMobixELFdbYl0pfSxwJFUpOwpJcWo9Zy5nUShmdW5jdGlvbihuLFcsRCl7aWYobi5KIT09NSlyZXR1cm4hMTtuPW4uTjt2YXIgYj1uLkosdj1uLk4saz1iW3YrMF0saD1iW3YrMV0seD1iW3YrMl07Yj1iW3YrM107aWEobiw0KTtnLnFZKFcsRCxrPDwwfGg8PDh8eDw8MTZ8Yjw8MjQpO3JldHVybiEwfSxmdW5jdGlvbihuLFcsRCl7Vz1FXyhXKTsKVyE9bnVsbCYmKG00KG4sRCw1KSxuPW4uTixuLk4ucHVzaChXPj4+MCYyNTUpLG4uTi5wdXNoKFc+Pj44JjI1NSksbi5OLnB1c2goVz4+PjE2JjI1NSksbi5OLnB1c2goVz4+PjI0JjI1NSkpfSwkNGkpO3ZhciBTMzE9bmV3IE1hcCxBWHg9Y2xhc3MgZXh0ZW5kcyBlM3J7Y29uc3RydWN0b3IobixXKXtzdXBlcigpO3RoaXMudHlwZU5hbWU9bjt0aGlzLk49VztpZihTbyE9PVNvKXRocm93IEVycm9yKCk7UzMxLnNldChuLHRoaXMpfX07dmFyIG00Wj1jbGFzc3tjb25zdHJ1Y3RvcihuLFcsRCl7dGhpcy5OPW47dGhpcy5KPUQ7dGhpcy5pc1JlcGVhdGVkPTA7dGhpcy5YPWdlO3RoaXMuZGVmYXVsdFZhbHVlPXZvaWQgMDt0aGlzLlc9Vy5tZXNzYWdlSWQhPW51bGw/eFU6dm9pZCAwfXJlZ2lzdGVyKCl7Zy5PQSh0aGlzKX19O3ZhciBjRlo9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIEVmPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19LGk2PVsxLDIsM107dmFyIFo4PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19LFVmPVsxLDIsM107dmFyIHllPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBLVUM9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIE9peD1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fSxQWmg9WzEsMiwzXTtnLk9mPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O2cuT2YucHJvdG90eXBlLkpoPVdaKDApO2cuT2YucHJvdG90eXBlLko9Zy5tRChbMCxnLm9tLFswLFBaaCx6ZyxbMCxnLm9tLC0xLHVVXSx6ZyxbMCxnLm9tLC0xLGlVLHVVXSx6ZyxbMCxnLm9tXV0sWGYoZnVuY3Rpb24obixXLEQpe2lmKG4uSiE9PTIpcmV0dXJuITE7bj1hWShuKTtjSChXLFdbYjRdfDAsRCkucHVzaChuKTtyZXR1cm4hMH0sZnVuY3Rpb24obixXLEQpe1c9ZTYoZy5EUixXLCEwKTsKaWYoVyE9bnVsbClmb3IobGV0IGg9MDtoPFcubGVuZ3RoO2grKyl7dmFyIGI9bix2PUQsaz1XW2hdO2shPW51bGwmJmlHKGIsdixrSyhrKSl9fSxtNyksCmcuZHEsWzAsZy5kcSxbMCxpNixnLmdRKGZ1bmN0aW9uKG4sVyxELGIpe2lmKG4uSiE9PTIpcmV0dXJuITE7YmEoVyxELGIsYVkobikpO3JldHVybiEwfSxOWSxtNyksCmcuZ1EoZnVuY3Rpb24obixXLEQsYil7aWYobi5KIT09MClyZXR1cm4hMTtiYShXLEQsYixnLkVWKG4uTikpO3JldHVybiEwfSxnLnJRLGcuS3gpLApnLmdRKGZ1bmN0aW9uKG4sVyxELGIpe2lmKG4uSiE9PTApcmV0dXJuITE7YmEoVyxELGIseTEobi5OKSk7cmV0dXJuITB9LHNmLHEzWildLApbMCxVZixnLmdRKGZ1bmN0aW9uKG4sVyxELGIpe24uSiE9PTA/bj0hMTooYmEoVyxELGIsZy5VVihuLk4sZy5KXykpLG49ITApO3JldHVybiBufSxnLiRuLGcuTzYpLApnLmdRKGZ1bmN0aW9uKG4sVyxELGIpe2lmKG4uSiE9PTEpcmV0dXJuITE7YmEoVyxELGIsZy5kZShuLk4pKTtyZXR1cm4hMH0sZy50OSxnLlpGKSwKemcsWzAsZy5kcSxbMCxVNixnLkU2XV1dXSxnLmdRKGZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gSjkobixXLEQpfSxmdW5jdGlvbihuLFcsRCl7eW0obixELGEwKFcpKX0sUHEpLApYZihmdW5jdGlvbihuLFcsRCl7bi5KIT09MSYmbi5KIT09Mj9uPSExOihXPWNIKFcsV1tiNF18MCxEKSxuLko9PTI/YkcobixvWSxXKTpXLnB1c2gob1kobi5OKSksbj0hMCk7cmV0dXJuIG59LGZ1bmN0aW9uKG4sVyxEKXtXPWU2KGEwLFcsITEpOwppZihXIT1udWxsKWZvcihsZXQgYj0wO2I8Vy5sZW5ndGg7YisrKXltKG4sRCxXW2JdKX0sUHEpXSk7dmFyIFppeD1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fTtnLkU9bDYucHJvdG90eXBlO2cuRS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtpZighZy5xaS5uYXZpZ2F0b3IuY29va2llRW5hYmxlZClyZXR1cm4hMTtpZighdGhpcy5pc0VtcHR5KCkpcmV0dXJuITA7dGhpcy5zZXQoIlRFU1RDT09LSUVTRU5BQkxFRCIsIjEiLHtuejo2MH0pO2lmKHRoaXMuZ2V0KCJURVNUQ09PS0lFU0VOQUJMRUQiKSE9PSIxIilyZXR1cm4hMTt0aGlzLnJlbW92ZSgiVEVTVENPT0tJRVNFTkFCTEVEIik7cmV0dXJuITB9OwpnLkUuc2V0PWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj0hMTtpZih0eXBlb2YgRD09PSJvYmplY3QiKXt2YXIgdj1ELnNhbWVTaXRlO2I9RC5zZWN1cmV8fCExO3ZhciBrPUQuZG9tYWlufHx2b2lkIDA7dmFyIGg9RC5wYXRofHx2b2lkIDA7dmFyIHg9RC5uen1pZigvWzs9XHNdLy50ZXN0KG4pKXRocm93IEVycm9yKCdJbnZhbGlkIGNvb2tpZSBuYW1lICInK24rJyInKTtpZigvWztcclxuXS8udGVzdChXKSl0aHJvdyBFcnJvcignSW52YWxpZCBjb29raWUgdmFsdWUgIicrVysnIicpO3g9PT12b2lkIDAmJih4PS0xKTtEPWs/Ijtkb21haW49IitrOiIiO2g9aD8iO3BhdGg9IitoOiIiO2I9Yj8iO3NlY3VyZSI6IiI7eD14PDA/IiI6eD09MD8iO2V4cGlyZXM9IisobmV3IERhdGUoMTk3MCwxLDEpKS50b1VUQ1N0cmluZygpOiI7ZXhwaXJlcz0iKyhuZXcgRGF0ZShEYXRlLm5vdygpK3gqMUUzKSkudG9VVENTdHJpbmcoKTt0aGlzLk4uY29va2llPW4rIj0iK1crRCtoK3grYisodiE9bnVsbD8KIjtzYW1lc2l0ZT0iK3Y6IiIpfTsKZy5FLmdldD1mdW5jdGlvbihuLFcpe3ZhciBEPW4rIj0iLGI9KHRoaXMuTi5jb29raWV8fCIiKS5zcGxpdCgiOyIpO2ZvcihsZXQgdj0wLGs7djxiLmxlbmd0aDt2Kyspe2s9Ylt2XS50cmltKCk7aWYoay5sYXN0SW5kZXhPZihELDApPT0wKXJldHVybiBrLnNsaWNlKEQubGVuZ3RoKTtpZihrPT1uKXJldHVybiIifXJldHVybiBXfTsKZy5FLnJlbW92ZT1mdW5jdGlvbihuLFcsRCl7dmFyIGI9dGhpcy5nZXQobikhPT12b2lkIDA7dGhpcy5zZXQobiwiIix7bno6MCxwYXRoOlcsZG9tYWluOkR9KTtyZXR1cm4gYn07CmcuRS51Qj1mdW5jdGlvbigpe3JldHVybiBUdih0aGlzKS5rZXlzfTsKZy5FLno3PWZ1bmN0aW9uKCl7cmV0dXJuIFR2KHRoaXMpLnZhbHVlc307CmcuRS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuTi5jb29raWV9OwpnLkUuY2xlYXI9ZnVuY3Rpb24oKXt2YXIgbj1Udih0aGlzKS5rZXlzO2ZvcihsZXQgVz1uLmxlbmd0aC0xO1c+PTA7Vy0tKXRoaXMucmVtb3ZlKG5bV10pfTsKdmFyIEp5PW5ldyBsNih0eXBlb2YgZG9jdW1lbnQ9PSJ1bmRlZmluZWQiP251bGw6ZG9jdW1lbnQpO3ZhciBVNHg9Y2xhc3N7YXN5bmMgY29tcHJlc3Mobil7dmFyIFc9bmV3IENvbXByZXNzaW9uU3RyZWFtKCJnemlwIiksRD0obmV3IFJlc3BvbnNlKFcucmVhZGFibGUpKS5hcnJheUJ1ZmZlcigpO1c9Vy53cml0YWJsZS5nZXRXcml0ZXIoKTthd2FpdCBXLndyaXRlKChuZXcgVGV4dEVuY29kZXIpLmVuY29kZShuKSk7YXdhaXQgVy5jbG9zZSgpO3JldHVybiBuZXcgVWludDhBcnJheShhd2FpdCBEKX1pc1N1cHBvcnRlZChuKXtyZXR1cm4gbjwxMDI0PyExOnR5cGVvZiBDb21wcmVzc2lvblN0cmVhbSE9PSJ1bmRlZmluZWQifX07dmFyIHlYTT1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fTt2YXIgRXppPWNsYXNze2NvbnN0cnVjdG9yKG4sVyl7dGhpcy5pbnRlcnZhbE1zPW47dGhpcy5jYWxsYmFjaz1XO3RoaXMuZW5hYmxlZD0hMTt0aGlzLk49KCk9PmcuVXcoKTsKdGhpcy5KPXRoaXMuTigpfXNldEludGVydmFsKG4pe3RoaXMuaW50ZXJ2YWxNcz1uO3RoaXMudGltZXImJnRoaXMuZW5hYmxlZD8odGhpcy5zdG9wKCksdGhpcy5zdGFydCgpKTp0aGlzLnRpbWVyJiZ0aGlzLnN0b3AoKX1zdGFydCgpe3RoaXMuZW5hYmxlZD0hMDt0aGlzLnRpbWVyfHwodGhpcy50aW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy50aWNrKCl9LHRoaXMuaW50ZXJ2YWxNcyksdGhpcy5KPXRoaXMuTigpKX1zdG9wKCl7dGhpcy5lbmFibGVkPSExOwp0aGlzLnRpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9dm9pZCAwKX10aWNrKCl7aWYodGhpcy5lbmFibGVkKXtsZXQgbj1NYXRoLm1heCh0aGlzLk4oKS10aGlzLkosMCk7bjx0aGlzLmludGVydmFsTXMqLjg/dGhpcy50aW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy50aWNrKCl9LHRoaXMuaW50ZXJ2YWxNcy1uKToodGhpcy50aW1lciYmKGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXZvaWQgMCksdGhpcy5jYWxsYmFjaygpLHRoaXMuZW5hYmxlZCYmKHRoaXMuc3RvcCgpLHRoaXMuc3RhcnQoKSkpfWVsc2UgdGhpcy50aW1lcj12b2lkIDB9fTt2YXIgaWl4PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciB1R2I9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07Zy5FPWcuTVkucHJvdG90eXBlO2cuRS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgZy5NWSh0aGlzLngsdGhpcy55KX07CmcuRS5lcXVhbHM9ZnVuY3Rpb24obil7cmV0dXJuIG4gaW5zdGFuY2VvZiBnLk1ZJiZSXyh0aGlzLG4pfTsKZy5FLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLng9TWF0aC5jZWlsKHRoaXMueCk7dGhpcy55PU1hdGguY2VpbCh0aGlzLnkpO3JldHVybiB0aGlzfTsKZy5FLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy54PU1hdGguZmxvb3IodGhpcy54KTt0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpO3JldHVybiB0aGlzfTsKZy5FLnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy54PU1hdGgucm91bmQodGhpcy54KTt0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpO3JldHVybiB0aGlzfTsKZy5FLnNjYWxlPWZ1bmN0aW9uKG4sVyl7dGhpcy54Kj1uO3RoaXMueSo9dHlwZW9mIFc9PT0ibnVtYmVyIj9XOm47cmV0dXJuIHRoaXN9O2cuRT1nLlFlLnByb3RvdHlwZTtnLkUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGcuUWUodGhpcy53aWR0aCx0aGlzLmhlaWdodCl9OwpnLkUuYXNwZWN0UmF0aW89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWR0aC90aGlzLmhlaWdodH07CmcuRS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIWNPKHRoaXMpfTsKZy5FLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGguY2VpbCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmNlaWwodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTsKZy5FLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRoLmZsb29yKHRoaXMud2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGguZmxvb3IodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTsKZy5FLnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1NYXRoLnJvdW5kKHRoaXMud2lkdGgpO3RoaXMuaGVpZ2h0PU1hdGgucm91bmQodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTsKZy5FLnNjYWxlPWZ1bmN0aW9uKG4sVyl7dGhpcy53aWR0aCo9bjt0aGlzLmhlaWdodCo9dHlwZW9mIFc9PT0ibnVtYmVyIj9XOm47cmV0dXJuIHRoaXN9O3ZhciBwVD0iY29uc3RydWN0b3IgaGFzT3duUHJvcGVydHkgaXNQcm90b3R5cGVPZiBwcm9wZXJ0eUlzRW51bWVyYWJsZSB0b0xvY2FsZVN0cmluZyB0b1N0cmluZyB2YWx1ZU9mIi5zcGxpdCgiICIpO3ZhciAkQj1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuTj1uPT09cksmJld8fCIifXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuTn19LHJLPXt9O25ldyAkQihySywiIik7dmFyIE8wPXtjZWxscGFkZGluZzoiY2VsbFBhZGRpbmciLGNlbGxzcGFjaW5nOiJjZWxsU3BhY2luZyIsY29sc3BhbjoiY29sU3BhbiIsZnJhbWVib3JkZXI6ImZyYW1lQm9yZGVyIixoZWlnaHQ6ImhlaWdodCIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLG5vbmNlOiJub25jZSIscm9sZToicm9sZSIscm93c3Bhbjoicm93U3BhbiIsdHlwZToidHlwZSIsdXNlbWFwOiJ1c2VNYXAiLHZhbGlnbjoidkFsaWduIix3aWR0aDoid2lkdGgifTtnLkU9ZlQucHJvdG90eXBlO2cuRS5lXz1mdW5jdGlvbigpe3JldHVybiBBSyh0aGlzLk4pfTsKZy5FLmdldEVsZW1lbnRzQnlUYWdOYW1lPWZ1bmN0aW9uKG4sVyl7cmV0dXJuKFd8fHRoaXMuTikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoU3RyaW5nKG4pKX07CmcuRS5CSj1mdW5jdGlvbihuKXtyZXR1cm4gZy5LVChuLHRoaXMuTil9OwpnLkUuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihuKXtyZXR1cm4gdWsodGhpcy5OLG4pfTsKZy5FLmFwcGVuZENoaWxkPWZ1bmN0aW9uKG4sVyl7bi5hcHBlbmRDaGlsZChXKX07CmcuRS5hcHBlbmQ9ZnVuY3Rpb24obixXKXtvaChnLkpLKG4pLG4sYXJndW1lbnRzLDEpfTsKZy5FLmNhbkhhdmVDaGlsZHJlbj1mdW5jdGlvbihuKXtpZihuLm5vZGVUeXBlIT0xKXJldHVybiExO3N3aXRjaChuLnRhZ05hbWUpe2Nhc2UgIkFQUExFVCI6Y2FzZSAiQVJFQSI6Y2FzZSAiQkFTRSI6Y2FzZSAiQlIiOmNhc2UgIkNPTCI6Y2FzZSAiQ09NTUFORCI6Y2FzZSAiRU1CRUQiOmNhc2UgIkZSQU1FIjpjYXNlICJIUiI6Y2FzZSAiSU1HIjpjYXNlICJJTlBVVCI6Y2FzZSAiSUZSQU1FIjpjYXNlICJJU0lOREVYIjpjYXNlICJLRVlHRU4iOmNhc2UgIkxJTksiOmNhc2UgIk5PRlJBTUVTIjpjYXNlICJOT1NDUklQVCI6Y2FzZSAiTUVUQSI6Y2FzZSAiT0JKRUNUIjpjYXNlICJQQVJBTSI6Y2FzZSAiU0NSSVBUIjpjYXNlICJTT1VSQ0UiOmNhc2UgIlNUWUxFIjpjYXNlICJUUkFDSyI6Y2FzZSAiV0JSIjpyZXR1cm4hMX1yZXR1cm4hMH07CmcuRS5yZW1vdmVOb2RlPWcuQ1Q7Zy5FLmNvbnRhaW5zPWcuQng7Zy5FLmlzRm9jdXNhYmxlPU1jO3ZhciBvek09Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfUdZKCl7cmV0dXJuIEhXKHRoaXMsMSl9fTt2YXIgVlE9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIGJJPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19LGY0Mj1LOChiSSk7dmFyIGtFPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBjeD1bInBsYXRmb3JtIiwicGxhdGZvcm1WZXJzaW9uIiwiYXJjaGl0ZWN0dXJlIiwibW9kZWwiLCJ1YUZ1bGxWZXJzaW9uIl0sUVE9bmV3IGJJLGFoPW51bGw7dmFyIFdMPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBkNGg9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIHozdD1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobiw0KX19O3ZhciBCcT1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobiwzNyl9Uygpe3ZhciBuPXRoaXMubDk7cmV0dXJuIHg5KG4sbltiNF18MCxkNGgsNykhPT12b2lkIDB9fTt2YXIgbHF0PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuLDE5KX1hVihuKXtyZXR1cm4gS24odGhpcywyLG4pfX07dmFyIFRNQz1jbGFzc3tjb25zdHJ1Y3RvcihuLFc9ITEpe3RoaXMuZ1I9Vzt0aGlzLnVhY2g9dGhpcy5sb2NhbGU9bnVsbDt0aGlzLko9MDt0aGlzLmlzRmluYWw9ITE7dGhpcy5OPW5ldyBscXQ7TnVtYmVyLmlzSW50ZWdlcihuKSYmdGhpcy5OLmFWKG4pO1d8fCh0aGlzLmxvY2FsZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJsYW5nIikpO3ZMKHRoaXMsbmV3IFdMKX1hVihuKXt0aGlzLk4uYVYobik7cmV0dXJuIHRoaXN9YnVpbGQobixXPTAsRD0wLGI9bnVsbCx2PTAsaz0wKXtpZighdGhpcy5nUil7dmFyIGg9REQodGhpcyk7dmFyIHg9bmV3IG96TTt4PUtuKHgsMSx0aGlzLkopO3g9b3ooeCwyLE9fKHRoaXMuaXNGaW5hbCkpO0Q9b3ooeCwzLGcueVAoRD4wP0Q6dm9pZCAwKSk7dj1veihELDQsZy55UCh2PjA/djp2b2lkIDApKTtrPW96KHYsNSxnLnlQKGs+MD9rOnZvaWQgMCkpO3Y9ay5sOTtEPXZbYjRdfDA7az12OShrLEQpP2s6S0coayx2LEQpP09LKGssCnYpOm5ldyBrLmNvbnN0cnVjdG9yKG1fKHYsRCwhMCkpOyQ5KGgsb3pNLDEwLGspfWg9dGhpcy5OLmNsb25lKCk7az1EYXRlLm5vdygpLnRvU3RyaW5nKCk7aD1veihoLDQsZy5sNChrKSk7bj1uLnNsaWNlKCk7bj1zVihoLEJxLDMsbik7YiYmKGg9bmV3IGlpeCxiPW96KGgsMTMsZy55UChiKSksaD1uZXcgdUdiLGI9JDkoaCxpaXgsMixiKSxoPW5ldyB6M3QsYj0kOShoLHVHYiwxLGIpLGI9S24oYiwyLDkpLCQ5KG4sejN0LDE4LGIpKTtXJiZJWShuLDE0LFcpO3JldHVybiBufX07dmFyIEdBO0dBPWcuWmw/IndlYmtpdFRyYW5zaXRpb25FbmQiOiJ0cmFuc2l0aW9uZW5kIjtnLmhILnByb3RvdHlwZS5KPTA7Zy5oSC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLk49dGhpcy5XPXRoaXMuWDt0aGlzLko9MH07CmcuaEgucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuV307dmFyIGpmdz1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobiw4KX19LENaaD1LOChqZncpO3ZhciBGUDtGUD1uZXcgbTRaKDE3NTIzNzM3NSxqZncsY2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX0pO3ZhciBCTVo9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKG4pe3N1cGVyKCk7dGhpcy5jb21wb25lbnRJZD0iIjt0aGlzLk49W107dGhpcy5WUT0iIjt0aGlzLnBhZ2VJZD1udWxsO3RoaXMuZSQ9dGhpcy50dz0tMTt0aGlzLks9dGhpcy5leHBlcmltZW50SWRzPW51bGw7dGhpcy5PPXRoaXMuY0o9dGhpcy5WPXRoaXMuWD0wO3RoaXMuSEo9MTt0aGlzLnRpbWVvdXRNaWxsaXM9MDt0aGlzLmJkPSExO3RoaXMubG9nU291cmNlPW4ubG9nU291cmNlO3RoaXMubjE9bi5uMXx8KCgpPT57fSk7CnRoaXMuVz1uZXcgVE1DKG4ubG9nU291cmNlLG4uZ1IpO3RoaXMubmV0d29yaz1uLm5ldHdvcmt8fG51bGw7dGhpcy5QZz1uLlBnfHxudWxsO3RoaXMuWT1uLmN1fHxudWxsO3RoaXMuc2Vzc2lvbkluZGV4PW4uc2Vzc2lvbkluZGV4fHxudWxsO3RoaXMub3g9bi5veHx8ITE7dGhpcy5sb2dnZXI9bnVsbDt0aGlzLndpdGhDcmVkZW50aWFscz0hbi5rQzt0aGlzLmdSPW4uZ1J8fCExO3RoaXMuRD0hdGhpcy5nUiYmISFnLmlrKCkmJiEhZy5paygpLm5hdmlnYXRvciYmZy5paygpLm5hdmlnYXRvci5zZW5kQmVhY29uIT09dm9pZCAwO3RoaXMuUyQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtcyE9PSJ1bmRlZmluZWQiJiYhIShuZXcgVVJMKExLKCkpKS5zZWFyY2hQYXJhbXMmJiEhKG5ldyBVUkwoTEsoKSkpLnNlYXJjaFBhcmFtcy5zZXQ7dmFyIFc9bksobmV3IFdMKTt2TCh0aGlzLlcsVyk7dGhpcy5qPW5ldyBnLmhIKDFFNCwzRTUsLjEpO249STRTKHRoaXMsbi5iMSk7dGhpcy5KPW5ldyBFemkodGhpcy5qLmdldFZhbHVlKCksCm4pO3RoaXMuVEM9bmV3IEV6aSg2RTUsbik7dGhpcy5veHx8dGhpcy5UQy5zdGFydCgpO3RoaXMuZ1J8fChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwoKT0+e2RvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT09PSJoaWRkZW4iJiZlZyh0aGlzKX0pLGcuaWsoKT8uYWRkRXZlbnRMaXN0ZW5lcj8uKCJwYWdlaGlkZSIsKCk9PntlZyh0aGlzKX0pKX1tQSgpe2VnKHRoaXMpOwp0aGlzLkouc3RvcCgpO3RoaXMuVEMuc3RvcCgpO3N1cGVyLm1BKCl9ZGlzcGF0Y2gobil7aWYobiBpbnN0YW5jZW9mIEJxKXRoaXMubG9nKG4pO2Vsc2UgdHJ5e3ZhciBXPW5ldyBCcSxEPW4uYlkoKTt2YXIgYj1nLlNFKFcsOCxEKTt0aGlzLmxvZyhiKX1jYXRjaHt9fWxvZyhuKXtpZih0aGlzLlMkKXtuPW4uY2xvbmUoKTt2YXIgVz10aGlzLkhKKys7bj1JWShuLDIxLFcpO3RoaXMuY29tcG9uZW50SWQmJmcuU0UobiwyNix0aGlzLmNvbXBvbmVudElkKTtXPW47e3ZhciBEPWlXKFcsMSk7bGV0IGI9dHlwZW9mIEQ7RD1EPT1udWxsP0Q6Yj09PSJiaWdpbnQiP1N0cmluZyhkWig2NCxEKSk6WkIoRCk/Yj09PSJzdHJpbmciP0I5KEQpOkM1KEQpOnZvaWQgMH1EPT1udWxsJiYoRD1EYXRlLm5vdygpLEQ9TnVtYmVyLmlzRmluaXRlKEQpP0QudG9TdHJpbmcoKToiMCIsb3ooVywxLGcubDQoRCkpKTtEPWlXKFcsMTUsdm9pZCAwLHZvaWQgMCxGRCk7RCE9bnVsbCYmKHR5cGVvZiBEPT09ImJpZ2ludCI/CnNLKEQpP0Q9TnVtYmVyKEQpOihEPWRaKDY0LEQpLEQ9c0soRCk/TnVtYmVyKEQpOlN0cmluZyhEKSk6RD1aQihEKT90eXBlb2YgRD09PSJudW1iZXIiP0M1KEQpOkI5KEQpOnZvaWQgMCk7RCE9bnVsbHx8SVkoVywxNSwobmV3IERhdGUpLmdldFRpbWV6b25lT2Zmc2V0KCkqNjApO3RoaXMuZXhwZXJpbWVudElkcyYmKEQ9dGhpcy5leHBlcmltZW50SWRzLmNsb25lKCksJDkoVyx5WE0sMTYsRCkpO1c9dGhpcy5OLmxlbmd0aC0xRTMrMTtXPjAmJih0aGlzLk4uc3BsaWNlKDAsVyksdGhpcy5YKz1XKTt0aGlzLk4ucHVzaChuKTt0aGlzLm94fHx0aGlzLkouZW5hYmxlZHx8dGhpcy5KLnN0YXJ0KCl9fWZsdXNoKG4sVyl7aWYodGhpcy5OLmxlbmd0aD09PTApbiYmbigpO2Vsc2UgaWYodGhpcy5iZCYmdGhpcy5EKXRoaXMuVy5KPTMsQUZaKHRoaXMpO2Vsc2V7dmFyIEQ9RGF0ZS5ub3coKTtpZih0aGlzLmUkPkQmJnRoaXMudHc8RClXJiZXKCJ0aHJvdHRsZWQiKTtlbHNle3RoaXMubmV0d29yayYmCih0eXBlb2YgdGhpcy5uZXR3b3JrLkdZPT09ImZ1bmN0aW9uIj9IYlModGhpcy5XLHRoaXMubmV0d29yay5HWSgpKTp0aGlzLlcuSj0wKTt2YXIgYj10aGlzLlcuYnVpbGQodGhpcy5OLHRoaXMuWCx0aGlzLlYsdGhpcy5QZyx0aGlzLmNKLHRoaXMuTyksdj10aGlzLm4xKCk7aWYodiYmdGhpcy5WUT09PXYpVyYmVygic3RhbGUtYXV0aC10b2tlbiIpO2Vsc2V7dGhpcy5OPVtdO3RoaXMuSi5lbmFibGVkJiZ0aGlzLkouc3RvcCgpO3RoaXMuWD0wO0Q9Yi5iWSgpO2xldCBrO3RoaXMuSyYmdGhpcy5LLmlzU3VwcG9ydGVkKEQubGVuZ3RoKSYmKGs9dGhpcy5LLmNvbXByZXNzKEQpKTtsZXQgaD1tVXcodGhpcyxELHYpLHg9Rz0+e3RoaXMuai5yZXNldCgpO3RoaXMuSi5zZXRJbnRlcnZhbCh0aGlzLmouZ2V0VmFsdWUoKSk7aWYoRyl7dmFyIHI9bnVsbDt0cnl7bGV0IE49SlNPTi5zdHJpbmdpZnkoSlNPTi5wYXJzZShHLnJlcGxhY2UoIildfSdcbiIsIiIpKSk7cj1DWmgoTil9Y2F0Y2goTil7fXImJgooRz1OdW1iZXIocG4ociwxLGcuJFUoIi0xIikpKSxHPjAmJih0aGlzLnR3PURhdGUubm93KCksdGhpcy5lJD10aGlzLnR3K0cpLHR2KHIubDksRlAuTiksR3oocixGUC5OKSxyPUZQLko/RlAuWChyLEZQLkosRlAuTixGUC5XKTpGUC5YKHIsRlAuTixudWxsLEZQLlcpLHI9cj09PW51bGw/dm9pZCAwOnIpJiYocj1hUChyLDEsLTEpLHIhPT0tMSYmKHRoaXMuaj1uZXcgZy5oSChyPDE/MTpyLDNFNSwuMSksdGhpcy5KLnNldEludGVydmFsKHRoaXMuai5nZXRWYWx1ZSgpKSkpfW4mJm4oKTt0aGlzLlY9MH0sTD0oRyxyKT0+e3ZhciBOPVZHKGIsQnEsMyk7CnZhciBIPU51bWJlcihwbihiLDE0KSk7Zy54RSh0aGlzLmopO3RoaXMuSi5zZXRJbnRlcnZhbCh0aGlzLmouZ2V0VmFsdWUoKSk7Rz09PTQwMSYmdiYmKHRoaXMuVlE9dik7SCYmKHRoaXMuWCs9SCk7cj09PXZvaWQgMCYmKHI9dGhpcy5pc1JldHJ5YWJsZShHKSk7ciYmKHRoaXMuTj1OLmNvbmNhdCh0aGlzLk4pLHRoaXMub3h8fHRoaXMuSi5lbmFibGVkfHx0aGlzLkouc3RhcnQoKSk7VyYmVygibmV0LXNlbmQtZmFpbGVkIixHKTsrK3RoaXMuVn0sZT0oKT0+e3RoaXMubmV0d29yayYmdGhpcy5uZXR3b3JrLnNlbmQoaCx4LEwpfTsKaz9rLnRoZW4oRz0+e2guWkpbIkNvbnRlbnQtRW5jb2RpbmciXT0iZ3ppcCI7aC5aSlsiQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2JpbmFyeSI7aC5ib2R5PUc7aC5vJD0yO2UoKX0sKCk9PntlKCl9KTplKCl9fX19aXNSZXRyeWFibGUobil7cmV0dXJuIDUwMDw9biYmbjw2MDB8fG49PT00MDF8fG49PT0wfX07dmFyIEZVaj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuUiQ9dHlwZW9mIEFib3J0Q29udHJvbGxlciE9PSJ1bmRlZmluZWQifWFzeW5jIHNlbmQobixXLEQpe3ZhciBiPXRoaXMuUiQ/bmV3IEFib3J0Q29udHJvbGxlcjp2b2lkIDAsdj1iJiZuLnRpbWVvdXRNaWxsaXM+MD9zZXRUaW1lb3V0KCgpPT57Yi5hYm9ydCgpfSxuLnRpbWVvdXRNaWxsaXMpOnZvaWQgMDsKdHJ5e2xldCBrPWF3YWl0IGZldGNoKG4udXJsLHttZXRob2Q6bi5yZXF1ZXN0VHlwZSxoZWFkZXJzOnsuLi5uLlpKfSwuLi4obi5ib2R5JiZ7Ym9keTpuLmJvZHl9KSwuLi4obi53aXRoQ3JlZGVudGlhbHMmJntjcmVkZW50aWFsczoiaW5jbHVkZSJ9KSxzaWduYWw6bi50aW1lb3V0TWlsbGlzJiZiP2Iuc2lnbmFsOm51bGx9KTtrLnN0YXR1cz09PTIwMD9XPy4oYXdhaXQgay50ZXh0KCkpOkQ/LihrLnN0YXR1cyl9Y2F0Y2goayl7c3dpdGNoKGs/Lm5hbWUpe2Nhc2UgIkFib3J0RXJyb3IiOkQ/Lig0MDgpO2JyZWFrO2RlZmF1bHQ6RD8uKDQwMCl9fWZpbmFsbHl7Y2xlYXJUaW1lb3V0KHYpfX1HWSgpe3JldHVybiA0fX07dmFyIGtZPWNsYXNzIGV4dGVuZHMgZy5GTXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dGhpcy5sb2dTb3VyY2U9MTgyODt0aGlzLnNlc3Npb25JbmRleD0iMCI7dGhpcy5Saj0iaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vbG9nP2Zvcm1hdD1qc29uJmhhc2Zhc3Q9dHJ1ZSI7dGhpcy5uZXR3b3JrPXRoaXMuYnVpbGRMYWJlbD1udWxsO3RoaXMuY29tcG9uZW50SWQ9IiI7dGhpcy5OPXRoaXMuUGc9bnVsbDt0aGlzLko9ITE7dGhpcy5sb2dnZXI9dGhpcy5wYWdlSWQ9bnVsbH1rQygpe3RoaXMuVz0hMDtyZXR1cm4gdGhpc31idWlsZCgpe3RoaXMubmV0d29ya3x8KHRoaXMubmV0d29yaz1uZXcgRlVqKTt2YXIgbj1uZXcgQk1aKHtsb2dTb3VyY2U6dGhpcy5sb2dTb3VyY2UsbjE6dGhpcy5uMT90aGlzLm4xOkJPLHNlc3Npb25JbmRleDp0aGlzLnNlc3Npb25JbmRleCxjdTp0aGlzLlJqLGdSOiExLG94OiExLGtDOnRoaXMuVyxiMTp0aGlzLmIxLG5ldHdvcms6dGhpcy5uZXR3b3JrfSk7Zy51KHRoaXMsCm4pO2lmKHRoaXMuYnVpbGRMYWJlbCl7dmFyIFc9dGhpcy5idWlsZExhYmVsLEQ9REQobi5XKTtnLlNFKEQsNyxXKX1uLks9bmV3IFU0eDt0aGlzLmNvbXBvbmVudElkJiYobi5jb21wb25lbnRJZD10aGlzLmNvbXBvbmVudElkKTt0aGlzLlBnJiYobi5QZz10aGlzLlBnKTt0aGlzLnBhZ2VJZCYmKG4ucGFnZUlkPXRoaXMucGFnZUlkKTt0aGlzLk4mJigoRD10aGlzLk4pPyhuLmV4cGVyaW1lbnRJZHN8fChuLmV4cGVyaW1lbnRJZHM9bmV3IHlYTSksVz1uLmV4cGVyaW1lbnRJZHMsRD1ELmJZKCksZy5TRShXLDQsRCkpOm4uZXhwZXJpbWVudElkcyYmb3oobi5leHBlcmltZW50SWRzLDQpKTt0aGlzLkomJihuLmJkPW4uRCk7SkZaKG4uVyk7dGhpcy5uZXR3b3JrLmFWJiZ0aGlzLm5ldHdvcmsuYVYodGhpcy5sb2dTb3VyY2UpO3RoaXMubmV0d29yay5oUyYmdGhpcy5uZXR3b3JrLmhTKG4pO3JldHVybiBufX07dmFyIGE0aj1jbGFzcyBleHRlbmRzIGcuRk17Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLmxvZ1NvdXJjZT0xODI4O3RoaXMuY29tcG9uZW50SWQ9IiI7bnx8KG49bmV3IGtZLG4uY29tcG9uZW50SWQ9IiIsZy51KHRoaXMsbiksbj1uLmJ1aWxkKCkpO3RoaXMuTj1ufWZsdXNoKG4pe249bnx8W107aWYobi5sZW5ndGgpe2xldCBXPW5ldyBaaXgsRD1bXTtmb3IobGV0IGI9MDtiPG4ubGVuZ3RoO2IrKyl7bGV0IHY9bltiXSxrPXU2KHYpO0QucHVzaChrKTt2LmNsZWFyKCl9c1YoVyxnLk9mLDEsRCk7dGhpcy5OLmRpc3BhdGNoKFcpO3RoaXMuTi5mbHVzaCgpfX19O3ZhciBxNT1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn19O3ZhciB3JGI9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQpe3RoaXMuSj1uO3RoaXMuVz1XO3RoaXMuZmllbGRzPUR8fFtdO3RoaXMuTj1uZXcgTWFwfWNsZWFyKCl7dGhpcy5OLmNsZWFyKCl9fTt2YXIgaWU9Y2xhc3MgZXh0ZW5kcyB3JGJ7Y29uc3RydWN0b3IobixXKXtzdXBlcihuLDMsVyl9fTt2YXIgeTg9Y2xhc3MgZXh0ZW5kcyB3JGJ7Y29uc3RydWN0b3IobixXKXtzdXBlcihuLDIsVyl9ZEUobiwuLi5XKXt5RloodGhpcyxuLC4uLlcpfX07JEUucHJvdG90eXBlLnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe3RoaXMuSj0hMH07CiRFLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD0hMH07Zy5peChyRCwkRSk7CnJELnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKG4sVyl7dmFyIEQ9dGhpcy50eXBlPW4udHlwZSxiPW4uY2hhbmdlZFRvdWNoZXMmJm4uY2hhbmdlZFRvdWNoZXMubGVuZ3RoP24uY2hhbmdlZFRvdWNoZXNbMF06bnVsbDt0aGlzLnRhcmdldD1uLnRhcmdldHx8bi5zcmNFbGVtZW50O3RoaXMuY3VycmVudFRhcmdldD1XO1c9bi5yZWxhdGVkVGFyZ2V0O1d8fChEPT0ibW91c2VvdmVyIj9XPW4uZnJvbUVsZW1lbnQ6RD09Im1vdXNlb3V0IiYmKFc9bi50b0VsZW1lbnQpKTt0aGlzLnJlbGF0ZWRUYXJnZXQ9VztiPyh0aGlzLmNsaWVudFg9Yi5jbGllbnRYIT09dm9pZCAwP2IuY2xpZW50WDpiLnBhZ2VYLHRoaXMuY2xpZW50WT1iLmNsaWVudFkhPT12b2lkIDA/Yi5jbGllbnRZOmIucGFnZVksdGhpcy5zY3JlZW5YPWIuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9Yi5zY3JlZW5ZfHwwKToodGhpcy5jbGllbnRYPW4uY2xpZW50WCE9PXZvaWQgMD9uLmNsaWVudFg6bi5wYWdlWCx0aGlzLmNsaWVudFk9Cm4uY2xpZW50WSE9PXZvaWQgMD9uLmNsaWVudFk6bi5wYWdlWSx0aGlzLnNjcmVlblg9bi5zY3JlZW5YfHwwLHRoaXMuc2NyZWVuWT1uLnNjcmVlbll8fDApO3RoaXMuYnV0dG9uPW4uYnV0dG9uO3RoaXMua2V5Q29kZT1uLmtleUNvZGV8fDA7dGhpcy5rZXk9bi5rZXl8fCIiO3RoaXMuY2hhckNvZGU9bi5jaGFyQ29kZXx8KEQ9PSJrZXlwcmVzcyI/bi5rZXlDb2RlOjApO3RoaXMuY3RybEtleT1uLmN0cmxLZXk7dGhpcy5hbHRLZXk9bi5hbHRLZXk7dGhpcy5zaGlmdEtleT1uLnNoaWZ0S2V5O3RoaXMubWV0YUtleT1uLm1ldGFLZXk7dGhpcy5wb2ludGVySWQ9bi5wb2ludGVySWR8fDA7dGhpcy5wb2ludGVyVHlwZT1uLnBvaW50ZXJUeXBlO3RoaXMuc3RhdGU9bi5zdGF0ZTt0aGlzLk49bjtuLmRlZmF1bHRQcmV2ZW50ZWQmJnJELlRCLnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyl9OwpyRC5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7ckQuVEIuc3RvcFByb3BhZ2F0aW9uLmNhbGwodGhpcyk7dGhpcy5OLnN0b3BQcm9wYWdhdGlvbj90aGlzLk4uc3RvcFByb3BhZ2F0aW9uKCk6dGhpcy5OLmNhbmNlbEJ1YmJsZT0hMH07CnJELnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3JELlRCLnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyk7dmFyIG49dGhpcy5OO24ucHJldmVudERlZmF1bHQ/bi5wcmV2ZW50RGVmYXVsdCgpOm4ucmV0dXJuVmFsdWU9ITF9O3ZhciBzMj0iY2xvc3VyZV9saXN0ZW5hYmxlXyIrKE1hdGgucmFuZG9tKCkqMUU2fDApO3ZhciB1SWg9MDtnLkU9ZksucHJvdG90eXBlO2cuRS5hZGQ9ZnVuY3Rpb24obixXLEQsYix2KXt2YXIgaz1uLnRvU3RyaW5nKCk7bj10aGlzLmxpc3RlbmVyc1trXTtufHwobj10aGlzLmxpc3RlbmVyc1trXT1bXSx0aGlzLk4rKyk7dmFyIGg9SVcobixXLGIsdik7aD4tMT8oVz1uW2hdLER8fChXLnFfPSExKSk6KFc9bmV3IG8zYihXLHRoaXMuc3JjLGssISFiLHYpLFcucV89RCxuLnB1c2goVykpO3JldHVybiBXfTsKZy5FLnJlbW92ZT1mdW5jdGlvbihuLFcsRCxiKXtuPW4udG9TdHJpbmcoKTtpZighKG4gaW4gdGhpcy5saXN0ZW5lcnMpKXJldHVybiExO3ZhciB2PXRoaXMubGlzdGVuZXJzW25dO1c9SVcodixXLEQsYik7cmV0dXJuIFc+LTE/KEhMKHZbV10pLGcuQk0odixXKSx2Lmxlbmd0aD09MCYmKGRlbGV0ZSB0aGlzLmxpc3RlbmVyc1tuXSx0aGlzLk4tLSksITApOiExfTsKZy5FLlRpPWZ1bmN0aW9uKCl7dmFyIG49MDtmb3IobGV0IFcgaW4gdGhpcy5saXN0ZW5lcnMpe2xldCBEPXRoaXMubGlzdGVuZXJzW1ddO2ZvcihsZXQgYj0wO2I8RC5sZW5ndGg7YisrKSsrbixITChEW2JdKTtkZWxldGUgdGhpcy5saXN0ZW5lcnNbV107dGhpcy5OLS19fTsKZy5FLnNjPWZ1bmN0aW9uKG4sVyxELGIpe249dGhpcy5saXN0ZW5lcnNbbi50b1N0cmluZygpXTt2YXIgdj0tMTtuJiYodj1JVyhuLFcsRCxiKSk7cmV0dXJuIHY+LTE/blt2XTpudWxsfTsKZy5FLmhhc0xpc3RlbmVyPWZ1bmN0aW9uKG4sVyl7dmFyIEQ9biE9PXZvaWQgMCxiPUQ/bi50b1N0cmluZygpOiIiLHY9VyE9PXZvaWQgMDtyZXR1cm4gZy5EbCh0aGlzLmxpc3RlbmVycyxmdW5jdGlvbihrKXtmb3IobGV0IGg9MDtoPGsubGVuZ3RoOysraClpZighKEQmJmtbaF0udHlwZSE9Ynx8diYma1toXS5jYXB0dXJlIT1XKSlyZXR1cm4hMDtyZXR1cm4hMX0pfTt2YXIgUEw9ImNsb3N1cmVfbG1fIisoTWF0aC5yYW5kb20oKSoxRTZ8MCksaUk9e30sVTI9MCx1ST0iX19jbG9zdXJlX2V2ZW50c19mbl8iKyhNYXRoLnJhbmRvbSgpKjFFOT4+PjApO2cuaXgoZy5vVyxnLkZNKTtnLm9XLnByb3RvdHlwZVtzMl09ITA7Zy5FPWcub1cucHJvdG90eXBlO2cuRS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKG4sVyxELGIpe0FIKHRoaXMsbixXLEQsYil9OwpnLkUucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihuLFcsRCxiKXt5Nyh0aGlzLG4sVyxELGIpfTsKZy5FLmRpc3BhdGNoRXZlbnQ9ZnVuY3Rpb24obil7dmFyIFc9dGhpcy5sWjtpZihXKXt2YXIgRD1bXTtmb3IodmFyIGI9MTtXO1c9Vy5sWilELnB1c2goVyksKytifVc9dGhpcy5IZDtiPW4udHlwZXx8bjtpZih0eXBlb2Ygbj09PSJzdHJpbmciKW49bmV3ICRFKG4sVyk7ZWxzZSBpZihuIGluc3RhbmNlb2YgJEUpbi50YXJnZXQ9bi50YXJnZXR8fFc7ZWxzZXt2YXIgdj1uO249bmV3ICRFKGIsVyk7Zy5ZeShuLHYpfXY9ITA7dmFyIGs7aWYoRClmb3Ioaz1ELmxlbmd0aC0xOyFuLkomJms+PTA7ay0tKXt2YXIgaD1uLmN1cnJlbnRUYXJnZXQ9RFtrXTt2PWREKGgsYiwhMCxuKSYmdn1uLkp8fChoPW4uY3VycmVudFRhcmdldD1XLHY9ZEQoaCxiLCEwLG4pJiZ2LG4uSnx8KHY9ZEQoaCxiLCExLG4pJiZ2KSk7aWYoRClmb3Ioaz0wOyFuLkomJms8RC5sZW5ndGg7aysrKWg9bi5jdXJyZW50VGFyZ2V0PURba10sdj1kRChoLGIsITEsbikmJnY7cmV0dXJuIHZ9OwpnLkUubUE9ZnVuY3Rpb24oKXtnLm9XLlRCLm1BLmNhbGwodGhpcyk7dGhpcy5kXyYmdGhpcy5kXy5UaSgpO3RoaXMubFo9bnVsbH07CmcuRS5TXz1mdW5jdGlvbihuLFcsRCxiKXtyZXR1cm4gdGhpcy5kXy5hZGQoU3RyaW5nKG4pLFcsITEsRCxiKX07CmcuRS5lRj1mdW5jdGlvbihuLFcsRCxiKXtyZXR1cm4gdGhpcy5kXy5hZGQoU3RyaW5nKG4pLFcsITAsRCxiKX07CmcuRS53SD1mdW5jdGlvbihuLFcsRCxiKXt0aGlzLmRfLnJlbW92ZShTdHJpbmcobiksVyxELGIpfTsKZy5FLnNjPWZ1bmN0aW9uKG4sVyxELGIpe3JldHVybiB0aGlzLmRfLnNjKFN0cmluZyhuKSxXLEQsYil9OwpnLkUuaGFzTGlzdGVuZXI9ZnVuY3Rpb24obixXKXtyZXR1cm4gdGhpcy5kXy5oYXNMaXN0ZW5lcihuIT09dm9pZCAwP1N0cmluZyhuKTp2b2lkIDAsVyl9O2cuejc9dHlwZW9mIEFzeW5jQ29udGV4dCE9PSJ1bmRlZmluZWQiJiZ0eXBlb2YgQXN5bmNDb250ZXh0LlNuYXBzaG90PT09ImZ1bmN0aW9uIj9uPT5uJiZBc3luY0NvbnRleHQuU25hcHNob3Qud3JhcChuKTpuPT5uO3ZhciBNMlM9Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLlc9bjt0aGlzLlg9Vzt0aGlzLko9MDt0aGlzLk49bnVsbH1nZXQoKXtpZih0aGlzLko+MCl7dGhpcy5KLS07dmFyIG49dGhpcy5OO3RoaXMuTj1uLm5leHQ7bi5uZXh0PW51bGx9ZWxzZSBuPXRoaXMuVygpO3JldHVybiBufXB1dChuKXt0aGlzLlgobik7dGhpcy5KPDEwMCYmKHRoaXMuSisrLG4ubmV4dD10aGlzLk4sdGhpcy5OPW4pfX07dmFyIGxJO3ZhciBSM2I9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLko9dGhpcy5OPW51bGx9YWRkKG4sVyl7dmFyIEQ9Q0suZ2V0KCk7RC5zZXQobixXKTt0aGlzLko/dGhpcy5KLm5leHQ9RDp0aGlzLk49RDt0aGlzLko9RH1yZW1vdmUoKXt2YXIgbj1udWxsO3RoaXMuTiYmKG49dGhpcy5OLHRoaXMuTj10aGlzLk4ubmV4dCx0aGlzLk58fCh0aGlzLko9bnVsbCksbi5uZXh0PW51bGwpO3JldHVybiBufX0sQ0s9bmV3IE0yUygoKT0+bmV3IFFmMSxuPT5uLnJlc2V0KCkpLFFmMT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubmV4dD10aGlzLnNjb3BlPXRoaXMuTj1udWxsfXNldChuLFcpe3RoaXMuTj1uOwp0aGlzLnNjb3BlPVc7dGhpcy5uZXh0PW51bGx9cmVzZXQoKXt0aGlzLm5leHQ9dGhpcy5zY29wZT10aGlzLk49bnVsbH19O3ZhciB3cSxCTCxqZyxWMng7Qkw9ITE7amc9bmV3IFIzYjtnLm1LPShuLFcpPT57d3F8fFYyeCgpO0JMfHwod3EoKSxCTD0hMCk7amcuYWRkKG4sVyl9OwpWMng9KCk9Pnt2YXIgbj1Qcm9taXNlLnJlc29sdmUodm9pZCAwKTt3cT0oKT0+e24udGhlbihUenIpfX07cTgucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5jb250ZXh0PXRoaXMuSj10aGlzLlc9dGhpcy5OPW51bGw7dGhpcy5YPSExfTsKdmFyIEczPW5ldyBNMlMoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHE4fSxmdW5jdGlvbihuKXtuLnJlc2V0KCl9KTsKZy5YMS5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihuLFcsRCl7cmV0dXJuIFNPKHRoaXMsKDAsZy56NykodHlwZW9mIG49PT0iZnVuY3Rpb24iP246bnVsbCksKDAsZy56NykodHlwZW9mIFc9PT0iZnVuY3Rpb24iP1c6bnVsbCksRCl9OwpnLlgxLnByb3RvdHlwZS4kZ29vZ19UaGVuYWJsZT0hMDtnLkU9Zy5YMS5wcm90b3R5cGU7Zy5FLmZpbmFsbHk9ZnVuY3Rpb24obil7bj0oMCxnLno3KShuKTtyZXR1cm4gbmV3IGcuWDEoKFcsRCk9PntwcSh0aGlzLGI9PntuKCk7VyhiKX0sYj0+e24oKTsKRChiKX0pfSl9OwpnLkUuc1A9ZnVuY3Rpb24obixXKXtyZXR1cm4gU08odGhpcyxudWxsLCgwLGcuejcpKG4pLFcpfTsKZy5FLmNhdGNoPWcuWDEucHJvdG90eXBlLnNQO2cuRS5jYW5jZWw9ZnVuY3Rpb24obil7aWYodGhpcy5OPT0wKXtsZXQgVz1uZXcgZy5JNShuKTtnLm1LKGZ1bmN0aW9uKCl7WUcodGhpcyxXKX0sdGhpcyl9fTsKZy5FLklRPWZ1bmN0aW9uKG4pe3RoaXMuTj0wO2dwKHRoaXMsMixuKX07CmcuRS5BUz1mdW5jdGlvbihuKXt0aGlzLk49MDtncCh0aGlzLDMsbil9OwpnLkUueXM9ZnVuY3Rpb24oKXtmb3IodmFyIG47bj1ISih0aGlzKTspZnEodGhpcyxuLHRoaXMuTix0aGlzLkspO3RoaXMuVj0hMX07CnZhciBPdT1oNDtnLml4KGcuSTUsZy5UYik7Zy5JNS5wcm90b3R5cGUubmFtZT0iY2FuY2VsIjtnLml4KGcuUEosZy5vVyk7Zy5FPWcuUEoucHJvdG90eXBlO2cuRS5lbmFibGVkPSExO2cuRS5aNj1udWxsO2cuRS5zZXRJbnRlcnZhbD1mdW5jdGlvbihuKXt0aGlzLmd0PW47dGhpcy5aNiYmdGhpcy5lbmFibGVkPyh0aGlzLnN0b3AoKSx0aGlzLnN0YXJ0KCkpOnRoaXMuWjYmJnRoaXMuc3RvcCgpfTsKZy5FLlJRPWZ1bmN0aW9uKCl7aWYodGhpcy5lbmFibGVkKXtsZXQgbj1nLlV3KCktdGhpcy5qYjtuPjAmJm48dGhpcy5ndCouOD90aGlzLlo2PXRoaXMuVjcuc2V0VGltZW91dCh0aGlzLmhFLHRoaXMuZ3Qtbik6KHRoaXMuWjYmJih0aGlzLlY3LmNsZWFyVGltZW91dCh0aGlzLlo2KSx0aGlzLlo2PW51bGwpLHRoaXMuZGlzcGF0Y2hFdmVudCgidGljayIpLHRoaXMuZW5hYmxlZCYmKHRoaXMuc3RvcCgpLHRoaXMuc3RhcnQoKSkpfX07CmcuRS5zdGFydD1mdW5jdGlvbigpe3RoaXMuZW5hYmxlZD0hMDt0aGlzLlo2fHwodGhpcy5aNj10aGlzLlY3LnNldFRpbWVvdXQodGhpcy5oRSx0aGlzLmd0KSx0aGlzLmpiPWcuVXcoKSl9OwpnLkUuc3RvcD1mdW5jdGlvbigpe3RoaXMuZW5hYmxlZD0hMTt0aGlzLlo2JiYodGhpcy5WNy5jbGVhclRpbWVvdXQodGhpcy5aNiksdGhpcy5aNj1udWxsKX07CmcuRS5tQT1mdW5jdGlvbigpe2cuUEouVEIubUEuY2FsbCh0aGlzKTt0aGlzLnN0b3AoKTtkZWxldGUgdGhpcy5WN307dmFyIGhxPWNsYXNzIGV4dGVuZHMgZy5GTXtjb25zdHJ1Y3RvcihuKXtzdXBlcigpO3RoaXMuRD1uO3RoaXMuVj0wO3RoaXMuWD0xMDA7dGhpcy5LPSExO3RoaXMuVz1uZXcgTWFwO3RoaXMuWT1uZXcgU2V0O3RoaXMuZmx1c2hJbnRlcnZhbD0zRTQ7dGhpcy5KPW5ldyBnLlBKKHRoaXMuZmx1c2hJbnRlcnZhbCk7dGhpcy5KLlNfKCJ0aWNrIix0aGlzLmosITEsdGhpcyk7Zy51KHRoaXMsdGhpcy5KKX1zZW5kSXNvbGF0ZWRQYXlsb2FkKG4pe3RoaXMuSz1uO3RoaXMuWD0xfWooKXt2YXIgbj1bLi4udGhpcy5XLnZhbHVlcygpXS5maWx0ZXIoVz0+Vy5OLnNpemUpOwpuLmxlbmd0aCYmdGhpcy5ELmZsdXNoKG4sdGhpcy5LKTtGY2Iobik7dGhpcy5WPTA7dGhpcy5KLmVuYWJsZWQmJnRoaXMuSi5zdG9wKCl9TihuKXtyZXR1cm4gdGhpcy5ZLmhhcyhuKT92b2lkIDA6dGhpcy5XLmdldChuKX1kRShuLFcsLi4uRCl7KG49dGhpcy5OKG4pKSYmbiBpbnN0YW5jZW9mIHk4JiYobi5kRShXLC4uLkQpLG81KHRoaXMpKX19O3ZhciBDVj1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKG4sVyxEPXt9KXtzdXBlcihXKTt0aGlzLmNvZGU9bjt0aGlzLm1ldGFkYXRhPUQ7dGhpcy5uYW1lPSJScGNFcnJvciI7T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsbmV3LnRhcmdldC5wcm90b3R5cGUpfXRvU3RyaW5nKCl7dmFyIG49YFJwY0Vycm9yKCR7d01TKHRoaXMuY29kZSl8fFN0cmluZyh0aGlzLmNvZGUpfSlgO3RoaXMubWVzc2FnZSYmKG4rPSI6ICIrdGhpcy5tZXNzYWdlKTtyZXR1cm4gbn19O2xlLnByb3RvdHlwZS5iWT1mdW5jdGlvbihuKXt2YXIgVz1bXTtUMyh0aGlzLG4sVyk7cmV0dXJuIFcuam9pbigiIil9Owp2YXIgQ3E9eyciJzonXFwiJywiXFwiOiJcXFxcIiwiLyI6IlxcLyIsIlxiIjoiXFxiIiwiXGYiOiJcXGYiLCJcbiI6IlxcbiIsIlxyIjoiXFxyIiwiXHQiOiJcXHQiLCJcdiI6IlxcdTAwMGIifSxNalo9L1x1ZmZmZi8udGVzdCgiXHVmZmZmIik/L1tcXCJceDAwLVx4MWZceDdmLVx1ZmZmZl0vZzovW1xcIlx4MDAtXHgxZlx4N2YtXHhmZl0vZzt2YXIgY1hDO2cuaXgoRjEsQkopO0YxLnByb3RvdHlwZS5OPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdH07CmNYQz1uZXcgRjE7Zy5peCh3cCxnLm9XKTt2YXIgYXEyPS9eaHR0cHM/JC9pLG5kTT1bIlBPU1QiLCJQVVQiXSxNOD1bXTtnLkU9d3AucHJvdG90eXBlO2cuRS5XVT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpO2cuRkkoTTgsdGhpcyl9OwpnLkUuc2VuZD1mdW5jdGlvbihuLFcsRCxiKXtpZih0aGlzLk4pdGhyb3cgRXJyb3IoIltnb29nLm5ldC5YaHJJb10gT2JqZWN0IGlzIGFjdGl2ZSB3aXRoIGFub3RoZXIgcmVxdWVzdD0iK3RoaXMuSysiOyBuZXdVcmk9IituKTtXPVc/Vy50b1VwcGVyQ2FzZSgpOiJHRVQiO3RoaXMuSz1uO3RoaXMuaj0iIjt0aGlzLlc9MDt0aGlzLmNKPSExO3RoaXMuSj0hMDt0aGlzLk49dGhpcy5UQz90aGlzLlRDLk4oKTpjWEMuTigpO3RoaXMuTi5vbnJlYWR5c3RhdGVjaGFuZ2U9KDAsZy56NykoKDAsZy5LdCkodGhpcy5OOCx0aGlzKSk7dHJ5e3RoaXMuZ2V0U3RhdHVzKCksdGhpcy50dz0hMCx0aGlzLk4ub3BlbihXLFN0cmluZyhuKSwhMCksdGhpcy50dz0hMX1jYXRjaChrKXt0aGlzLmdldFN0YXR1cygpO1Y4KHRoaXMsayk7cmV0dXJufW49RHx8IiI7RD1uZXcgTWFwKHRoaXMuaGVhZGVycyk7aWYoYilpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoYik9PT1PYmplY3QucHJvdG90eXBlKWZvcih2YXIgdiBpbiBiKUQuc2V0KHYsCmJbdl0pO2Vsc2UgaWYodHlwZW9mIGIua2V5cz09PSJmdW5jdGlvbiImJnR5cGVvZiBiLmdldD09PSJmdW5jdGlvbiIpZm9yKGxldCBrIG9mIGIua2V5cygpKUQuc2V0KGssYi5nZXQoaykpO2Vsc2UgdGhyb3cgRXJyb3IoIlVua25vd24gaW5wdXQgdHlwZSBmb3Igb3B0X2hlYWRlcnM6ICIrU3RyaW5nKGIpKTtiPUFycmF5LmZyb20oRC5rZXlzKCkpLmZpbmQoaz0+ImNvbnRlbnQtdHlwZSI9PWsudG9Mb3dlckNhc2UoKSk7CnY9Zy5xaS5Gb3JtRGF0YSYmbiBpbnN0YW5jZW9mIGcucWkuRm9ybURhdGE7IWcuamoobmRNLFcpfHxifHx2fHxELnNldCgiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiKTtmb3IobGV0IFtrLGhdb2YgRCl0aGlzLk4uc2V0UmVxdWVzdEhlYWRlcihrLGgpO3RoaXMuYmQmJih0aGlzLk4ucmVzcG9uc2VUeXBlPXRoaXMuYmQpOyJ3aXRoQ3JlZGVudGlhbHMiaW4gdGhpcy5OJiZ0aGlzLk4ud2l0aENyZWRlbnRpYWxzIT09dGhpcy5PJiYodGhpcy5OLndpdGhDcmVkZW50aWFscz10aGlzLk8pO3RyeXt0aGlzLlYmJihjbGVhclRpbWVvdXQodGhpcy5WKSx0aGlzLlY9bnVsbCksdGhpcy5EPjAmJih0aGlzLmdldFN0YXR1cygpLHRoaXMuVj1zZXRUaW1lb3V0KHRoaXMuVTIuYmluZCh0aGlzKSx0aGlzLkQpKSx0aGlzLmdldFN0YXR1cygpLHRoaXMuWT0hMCx0aGlzLk4uc2VuZChuKSx0aGlzLlk9ITF9Y2F0Y2goayl7dGhpcy5nZXRTdGF0dXMoKSwKVjgodGhpcyxrKX19OwpnLkUuVTI9ZnVuY3Rpb24oKXt0eXBlb2YgY0ohPSJ1bmRlZmluZWQiJiZ0aGlzLk4mJih0aGlzLmo9IlRpbWVkIG91dCBhZnRlciAiK3RoaXMuRCsibXMsIGFib3J0aW5nIix0aGlzLlc9OCx0aGlzLmdldFN0YXR1cygpLHRoaXMuZGlzcGF0Y2hFdmVudCgidGltZW91dCIpLHRoaXMuYWJvcnQoOCkpfTsKZy5FLmFib3J0PWZ1bmN0aW9uKG4pe3RoaXMuTiYmdGhpcy5KJiYodGhpcy5nZXRTdGF0dXMoKSx0aGlzLko9ITEsdGhpcy5YPSEwLHRoaXMuTi5hYm9ydCgpLHRoaXMuWD0hMSx0aGlzLlc9bnx8Nyx0aGlzLmRpc3BhdGNoRXZlbnQoImNvbXBsZXRlIiksdGhpcy5kaXNwYXRjaEV2ZW50KCJhYm9ydCIpLFE4KHRoaXMpKX07CmcuRS5tQT1mdW5jdGlvbigpe3RoaXMuTiYmKHRoaXMuSiYmKHRoaXMuSj0hMSx0aGlzLlg9ITAsdGhpcy5OLmFib3J0KCksdGhpcy5YPSExKSxROCh0aGlzLCEwKSk7d3AuVEIubUEuY2FsbCh0aGlzKX07CmcuRS5OOD1mdW5jdGlvbigpe3RoaXMucU4oKXx8KHRoaXMudHd8fHRoaXMuWXx8dGhpcy5YP25WKHRoaXMpOnRoaXMuZ0soKSl9OwpnLkUuZ0s9ZnVuY3Rpb24oKXtuVih0aGlzKX07CmcuRS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5OfTsKZy5FLmlzQ29tcGxldGU9ZnVuY3Rpb24oKXtyZXR1cm4gYTUodGhpcyk9PTR9OwpnLkUuaXNTdWNjZXNzPWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5nZXRTdGF0dXMoKTthOnN3aXRjaChuKXtjYXNlIDIwMDpjYXNlIDIwMTpjYXNlIDIwMjpjYXNlIDIwNDpjYXNlIDIwNjpjYXNlIDMwNDpjYXNlIDEyMjM6dmFyIFc9ITA7YnJlYWsgYTtkZWZhdWx0Olc9ITF9aWYoIVcpe2lmKG49bj09PTApbj1nLmZwKFN0cmluZyh0aGlzLkspKVsxXXx8bnVsbCwhbiYmZy5xaS5zZWxmJiZnLnFpLnNlbGYubG9jYXRpb24mJihuPWcucWkuc2VsZi5sb2NhdGlvbi5wcm90b2NvbC5zbGljZSgwLC0xKSksbj0hYXEyLnRlc3Qobj9uLnRvTG93ZXJDYXNlKCk6IiIpO1c9bn1yZXR1cm4gV307CmcuRS5nZXRTdGF0dXM9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGE1KHRoaXMpPjI/dGhpcy5OLnN0YXR1czotMX1jYXRjaChuKXtyZXR1cm4tMX19OwpnLkUuZ2V0UmVzcG9uc2VIZWFkZXI9ZnVuY3Rpb24obil7aWYodGhpcy5OJiZ0aGlzLmlzQ29tcGxldGUoKSlyZXR1cm4gbj10aGlzLk4uZ2V0UmVzcG9uc2VIZWFkZXIobiksbj09PW51bGw/dm9pZCAwOm59OwpnLkUuZ2V0TGFzdEVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiB0aGlzLmo9PT0ic3RyaW5nIj90aGlzLmo6U3RyaW5nKHRoaXMuail9O3ZhciBPYjE9Y2xhc3N7c2VuZChuLFc9KCk9Pnt9LEQ9KCk9Pnt9KXtRTVUobi51cmwsYj0+e2I9Yi50YXJnZXQ7CmIuaXNTdWNjZXNzKCk/VyhXMyhiKSk6RChiLmdldFN0YXR1cygpKX0sbi5yZXF1ZXN0VHlwZSxuLmJvZHksbi5aSixuLnRpbWVvdXRNaWxsaXMsbi53aXRoQ3JlZGVudGlhbHMpfUdZKCl7cmV0dXJuIDF9fTt2YXIgTWw9Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLmxvZ2dlcj1uO3RoaXMuZXZlbnQ9Vzt0aGlzLnN0YXJ0VGltZT1ibigpfWRvbmUoKXt0aGlzLmxvZ2dlci5YKHRoaXMuZXZlbnQsYm4oKS10aGlzLnN0YXJ0VGltZSl9fSxSbT1jbGFzcyBleHRlbmRzIGphMXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyl9fSx4WT1jbGFzcyBleHRlbmRzIFJte2ooKXt9Tigpe31YKCl7fUooKXt9RCgpe31ZKCl7fVcoKXt9VihuLFcsRCxiKXtyZXR1cm4gYn1jSigpe31LKCl7fU8oKXt9fSxXNTE9Y2xhc3MgZXh0ZW5kcyBSbXtjb25zdHJ1Y3RvcihuKXtzdXBlcigpO3RoaXMubG9nZ2VyPW47dGhpcy5hZGRPbkRpc3Bvc2VDYWxsYmFjaygoKT0+dm9pZCB0aGlzLmxvZ2dlci5kaXNwb3NlKCkpfXVwZGF0ZShuKXt0aGlzLmxvZ2dlci5kaXNwb3NlKCk7CnRoaXMubG9nZ2VyPW59TihuKXt0aGlzLmxvZ2dlci5OKG4pfVgobixXKXt0aGlzLmxvZ2dlci5YKG4sVyl9SihuKXt0aGlzLmxvZ2dlci5KKG4pfUQobil7dGhpcy5sb2dnZXIuRChuKX1ZKG4sVyl7dGhpcy5sb2dnZXIuWShuLFcpfVcoKXt0aGlzLmxvZ2dlci5XKCl9VihuLFcsRCxiKXtyZXR1cm4gdGhpcy5sb2dnZXIuVihuLFcsRCxiKX1jSihuKXt0aGlzLmxvZ2dlci5jSihuKX1LKG4pe3RoaXMubG9nZ2VyLksobil9TyhuKXt0aGlzLmxvZ2dlci5PKG4pfWoobil7dGhpcy5sb2dnZXIuaihuKX19LERHUz1jbGFzcyBleHRlbmRzIGcuRk17Y29uc3RydWN0b3IobixXKXtzdXBlcigpO3RoaXMuY2FsbGJhY2s9bjt0aGlzLko9Vzt0aGlzLk49LVc7dGhpcy5hZGRPbkRpc3Bvc2VDYWxsYmFjaygoKT0+dm9pZCBjbGVhclRpbWVvdXQodGhpcy50aW1lcikpfX0sYjdpPWNsYXNzIGV4dGVuZHMgUm17Y29uc3RydWN0b3IobixXKXtzdXBlcigpOwp0aGlzLm1ldHJpY3M9bjt0aGlzLlZqPVd9aihuKXt0aGlzLm1ldHJpY3MuVGsuZEUobix0aGlzLlZqKX1OKG4pe3RoaXMubWV0cmljcy5ldmVudENvdW50Lkoobix0aGlzLlZqKX1YKG4sVyl7dGhpcy5tZXRyaWNzLlBULmRFKFcsbix0aGlzLlZqKX1KKG4pe3RoaXMubWV0cmljcy5lcnJvckNvdW50Lkoobix0aGlzLlZqKX1WKG4sVyxELGIpe3ZhciB2PWJuKCksaz1oPT57aWYoIXRoaXMucU4oKSl7dmFyIHg9Ym4oKS12O3RoaXMubWV0cmljcy5pTC5kRSh4LG4sRCxoLFcsdGhpcy5Wail9fTsKYi50aGVuKCgpPT52b2lkIGsoMCksaD0+dm9pZCBrKGggaW5zdGFuY2VvZiBDVj9oLmNvZGU6LTEpKTsKcmV0dXJuIGJ9Y0oobil7dGhpcy5tZXRyaWNzLlZKLkoobix0aGlzLlZqKX1LKG4pe3RoaXMubWV0cmljcy5jVS5KKG4sdGhpcy5Wail9TyhuKXt0aGlzLm1ldHJpY3MuakMuSihuLHRoaXMuVmopfUQobil7dGhpcy5tZXRyaWNzLnBheWxvYWRTaXplLmRFKG4sdGhpcy5Wail9WShuLFcpe3RoaXMubWV0cmljcy5mNi5kRShXLG4sdGhpcy5Wail9fSxEaHg9Y2xhc3MgZXh0ZW5kcyBiN2l7Y29uc3RydWN0b3IobixXPVtdKXt2YXIgRD17Vmo6bi5Wanx8Il8iLFJoOm4uUmh8fFtdLExUOm4uTFR8MCxSajpuLlJqLHREOm4udER8fCgoKT0+e30pLApybzpuLnJvfHwoKHYsayk9Pm5sMSh2LGssRC50RCxELlJqKSl9LGI9RC5ybygiNTMiLEQuUmguY29uY2F0KFcpKTsKc3VwZXIoe1RrOm5ldyBDMHgoYiksZXJyb3JDb3VudDpuZXcgTXQxKGIpLGV2ZW50Q291bnQ6bmV3IEYyWihiKSxQVDpuZXcgd1FyKGIpLGlMOm5ldyBCYWkoYiksVko6bmV3IFJkYihiKSxjVTpuZXcgUWF4KGIpLGpDOm5ldyBWdGkoYikscGF5bG9hZFNpemU6bmV3IGNqeChiKSxmNjpuZXcgYTZ3KGIpfSxELlZqKTt0aGlzLm9wdGlvbnM9RDt0aGlzLnNlcnZpY2U9Yjt0aGlzLlRDPSFuLnJvO3RoaXMudHc9bmV3IERHUygoKT0+dm9pZCB0aGlzLnNlcnZpY2UuaigpLEQuTFQpOwp0aGlzLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57dGhpcy50dy5kaXNwb3NlKCk7dGhpcy5UQyYmdGhpcy5zZXJ2aWNlLmRpc3Bvc2UoKX0pOwpnLmJmKFcuc2xpY2UoKSl9Vygpe1dXcih0aGlzLnR3KX19O3ZhciBxdj1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fTt2YXIgR0g9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIHIkPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuLDAsciQubWVzc2FnZUlkKX19LFg0Wj1LOChyJCksdmRiPWZ1bmN0aW9uKG4pe3JldHVybiBxMyhXPT5XIGluc3RhbmNlb2YgbiYmIXY5KFcpKX0ociQpOwpyJC5tZXNzYWdlSWQ9ImJma2oiO3ZhciBjND1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fTt2YXIga0VpPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19LGhZWj1LOChrRWkpO2cuS1Y9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKG4sVyk9Pnt0aGlzLnJlc29sdmU9bjt0aGlzLnJlamVjdD1XfSl9fTt2YXIgQXE9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKG4pe3N1cGVyKCk7dGhpcy5KPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMDApO3RoaXMuTj1uZXcga0VpO2lmKCJjaGFsbGVuZ2UiaW4gbiYmdmRiKG4uY2hhbGxlbmdlKSl7dmFyIFc9WTkobi5jaGFsbGVuZ2UsNCx2b2lkIDAseFUpO3ZhciBEPVk5KG4uY2hhbGxlbmdlLDUsdm9pZCAwLHhVKTtZOShuLmNoYWxsZW5nZSw3LHZvaWQgMCx4VSkmJih0aGlzLk49aFlaKFk5KG4uY2hhbGxlbmdlLDcsdm9pZCAwLHhVKSkpfWVsc2Uoe3Byb2dyYW06VyxnbG9iYWxOYW1lOkR9PW4pO3RoaXMuYWRkT25EaXNwb3NlQ2FsbGJhY2soYXN5bmMoKT0+e3ZhciB7Vng6R309YXdhaXQgdGhpcy5XO0c/LigpfSk7CnRoaXMubG9nZ2VyPUxWKG4ueDN8fHt9LHRoaXMuTik7Zy51KHRoaXMsdGhpcy5sb2dnZXIpO3ZhciBiPW5ldyBnLktWO3RoaXMuVz1iLnByb21pc2U7dGhpcy5sb2dnZXIuTigidCIpO3ZhciB2PXRoaXMubG9nZ2VyLnNoYXJlKCksaz1uZXcgTWwodiwidCIpLGg9KEcscixOLEgpPT57aWYoIXRoaXMubG9nZ2VyLnFOKCkpe3ZhciBBPSJrIjtyP0E9ImgiOk4mJihBPSJ1Iik7QSE9PSJrIj9IIT09MCYmKHRoaXMubG9nZ2VyLk4oQSksdGhpcy5sb2dnZXIuWChBLEcpKTp0aGlzLko8PTA/KHRoaXMubG9nZ2VyLk4oQSksdGhpcy5sb2dnZXIuWChBLEcpLHRoaXMuSj1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjAwKSk6dGhpcy5KLS19fSx4PShHLHIsTixIKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntrLmRvbmUoKTsKdi5XKCk7di5kaXNwb3NlKCk7Yi5yZXNvbHZlKHtGeTpHLFZ4OnIscDU6Tix4VTpIfSl9KX0sTD1bKEcscik9Pnt0aGlzLmxvZ2dlci5YKEcscil9LApHPT57dGhpcy5sb2dnZXIuSihHKX0sCkc9Pnt0aGlzLmxvZ2dlci5EKEcpfSwKKEcscik9Pnt0aGlzLmxvZ2dlci5ZKEcscil9XTsKaWYoIWcucWlbRF0pdGhyb3cgdGhpcy5sb2dnZXIuSigyNSksRXJyb3IoIkVHT1UiKTtpZighZy5xaVtEXS5hKXRocm93IHRoaXMubG9nZ2VyLkooMjYpLEVycm9yKCJFTElVIik7dHJ5e2xldCBHPWcucWlbRF0uYTtEPVtdO2xldCByPVtdO3ZhciBlPW4wKHRoaXMuTik7Zm9yKGxldCBBPTA7QTxlLmxlbmd0aDtBKyspRC5wdXNoKGVbQV0pLHIucHVzaCgxKTtsZXQgTj1VaXcodGhpcy5OKTtmb3IoZT0wO2U8Ti5sZW5ndGg7ZSsrKUQucHVzaChOW2VdKSxyLnB1c2goMik7bGV0IFtIXT1HKFcseCwhMCxuLnczLGgsW0Qscl0sWTkodGhpcy5OLDUpLCExLEwpO3RoaXMuWD1IO3RoaXMuT3Y9Yi5wcm9taXNlLnRoZW4oKCk9Pnt9KX1jYXRjaChHKXt0aHJvdyB0aGlzLmxvZ2dlci5KKDI4KSxHOwp9fXNuYXBzaG90KG4pe2lmKHRoaXMucU4oKSl0aHJvdyBFcnJvcigiQWxyZWFkeSBkaXNwb3NlZCIpO3RoaXMubG9nZ2VyLk4oIm4iKTt2YXIgVz10aGlzLmxvZ2dlci5zaGFyZSgpO3JldHVybiB0aGlzLlcudGhlbigoe0Z5OkR9KT0+bmV3IFByb21pc2UoYj0+e3ZhciB2PW5ldyBNbChXLCJuIik7RChrPT57di5kb25lKCk7Vy5qKGsubGVuZ3RoKTtXLlcoKTtXLmRpc3Bvc2UoKTtiKGspfSxbbi53XywKbi5HbCxuLnRMLG4uTU9dKX0pKX1tNShuKXtpZih0aGlzLnFOKCkpdGhyb3cgRXJyb3IoIkFscmVhZHkgZGlzcG9zZWQiKTsKdGhpcy5sb2dnZXIuTigibiIpO3ZhciBXPXYzKHRoaXMubG9nZ2VyLCgpPT50aGlzLlgoW24ud18sbi5HbCxuLnRMLG4uTU9dKSwibiIpOwp0aGlzLmxvZ2dlci5qKFcubGVuZ3RoKTt0aGlzLmxvZ2dlci5XKCk7cmV0dXJuIFd9UzEobil7dGhpcy5XLnRoZW4oKHtwNTpXfSk9PntXPy4obil9KX1RRCgpe3JldHVybiB0aGlzLmxvZ2dlci5zaGFyZSgpfX07dmFyIGVtPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5KPXt9O3RoaXMuTj1udWxsfX07dmFyICRZPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBOdj1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fTt2YXIgZlY9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQpe3RoaXMuY2xpZW50PW47dGhpcy5yZXF1ZXN0S2V5PVc7dGhpcy5OPUR9Wmoobil7cmV0dXJuIEgzKHRoaXMsbixuZXcgeFksMCl9fTt2YXIgVEg9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKG4pe3N1cGVyKCk7dGhpcy5vcHRpb25zPW47dGhpcy5WPW5ldyBnLktWO3RoaXMuT3Y9dGhpcy5WLnByb21pc2U7dGhpcy5qPW5ldyBnLktWO3RoaXMuWT0xO3RoaXMuSj1uZXcgZy5LVjt0aGlzLlg9W107dGhpcy5pc1BhdXNlZD0hMTt0aGlzLnFKPW4ucUp8fCgoKT0+e30pOwp0aGlzLmxvZ2dlcj1uZXcgVzUxKExWKG4ueDN8fHt9KSk7ckFiKHRoaXMsbi5VZyxuLnFULG4ucVUsbi5USCx7Li4ueEdqLC4uLihuLmtkfHx7fSl9KTt0aGlzLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT52b2lkIHNQMih0aGlzKSl9YXN5bmMgc25hcHNob3Qobil7aWYodGhpcy5xTigpKXRocm93IEVycm9yKCJBbHJlYWR5IGRpc3Bvc2VkIik7CnRoaXMuV3x8dGhpcy5LfHxhd2FpdCB0aGlzLmoucHJvbWlzZTtpZih0aGlzLlcpcmV0dXJuIGF3YWl0IHRoaXMuVy5zbmFwc2hvdChuKTt0aHJvdyB0aGlzLks7fXBhdXNlKCl7dGhpcy5xTigpfHx0aGlzLmlzUGF1c2VkfHwodGhpcy5pc1BhdXNlZD0hMCx0aGlzLk4mJnRoaXMuTi5wYXVzZSgpKX1yZXN1bWUoKXshdGhpcy5xTigpJiZ0aGlzLmlzUGF1c2VkJiYodGhpcy5pc1BhdXNlZD0hMSx0aGlzLk4mJnRoaXMuTi5yZXN1bWUoKSl9YXN5bmMgY2hlY2tGb3JSZWZyZXNoKCl7aWYodGhpcy5xTigpKXRocm93IEVycm9yKCJBbHJlYWR5IGRpc3Bvc2VkIik7aWYodGhpcy5OKXt2YXIgbj10aGlzLk47bi5pc0V4cGlyZWQoKT8oT2wobiksbi5RNCgwKSxuPSEwKTpuPSExO24mJmF3YWl0IHRoaXMuSi5wcm9taXNlfWVsc2UgYXdhaXQgdGhpcy5KLnByb21pc2V9UzEobil7dGhpcy5XPy5TMT8uKG4pfWhhbmRsZUVycm9yKG4pe3RoaXMucU4oKXx8KHRoaXMuSz1uLHRoaXMuai5yZXNvbHZlKCksCnRoaXMub3B0aW9ucy50Nj8uKG4pKX1RRCgpe3JldHVybiB0aGlzLmxvZ2dlci5zaGFyZSgpfX0seEdqPXtGWjo0MzJFNSx1bTozRTUsbmI6MTAsamQ6MUU0LGhwOjNFNCxRWDozRTQscUs6NkU0LENxOjFFMyx3ODo2RTQsb3o6NkU1LGQ4Oi4yNSxBaToyLG1heEF0dGVtcHRzOjEwfSxTbT1jbGFzc3tjb25zdHJ1Y3RvcihuLFcsRCl7dGhpcy5lbmRUaW1lTXM9MDt0aGlzLk49bnVsbDt0aGlzLmlzUGF1c2VkPSExO3RoaXMudGljaz0oKT0+e2lmKCF0aGlzLmlzUGF1c2VkKXt2YXIgYj10aGlzLmVuZFRpbWVNcy1EYXRlLm5vdygpO2I8PXRoaXMuVz8odGhpcy5OPW51bGwsdGhpcy5RNCgwKSk6dGhpcy5OPXNldFRpbWVvdXQodGhpcy50aWNrLE1hdGgubWluKGIsdGhpcy51bSkpfX07CnRoaXMudW09Vzt0aGlzLlc9RDt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoYj0+e3RoaXMuUTQ9Yn0pOwpZVFUodGhpcyxuKX1wYXVzZSgpe3RoaXMuaXNQYXVzZWR8fCh0aGlzLmlzUGF1c2VkPSEwLE9sKHRoaXMpKX1yZXN1bWUoKXt0aGlzLmlzUGF1c2VkJiYodGhpcy5pc1BhdXNlZD0hMSx0aGlzLnRpY2soKSl9Sigpe09sKHRoaXMpO3RoaXMuZW5kVGltZU1zPTA7dGhpcy5pc1BhdXNlZD0hMTt0aGlzLlE0KDEpfWlzRXhwaXJlZCgpe3JldHVybiBEYXRlLm5vdygpPnRoaXMuZW5kVGltZU1zfX07dmFyIEhwaT1NYXRoLmltdWw/PygobixXKT0+bipXfDApLFVsPVsxOTYsCjIwMCwyMjQsMThdLHVuPWNsYXNze2NvbnN0cnVjdG9yKG4sVz0wLEQ9W10pe3RoaXMubWF4SXRlbXM9bjt0aGlzLk49Vzt0aGlzLko9RH1iWSgpe3JldHVybiBTdHJpbmcodGhpcy5OKSsiLCIrdGhpcy5KLmpvaW4oKX1xcChuLFcpe3ZhciBEPXZvaWQgMDtpZih0aGlzLkpbdGhpcy5OXSE9PW4pe2xldCBiPXRoaXMuSi5pbmRleE9mKG4pO2IhPT0tMT8odGhpcy5KLnNwbGljZShiLDEpLGI8dGhpcy5OJiZ0aGlzLk4tLSx0aGlzLkouc3BsaWNlKHRoaXMuTiwwLG4pKTooRD10aGlzLkpbdGhpcy5OXSx0aGlzLkpbdGhpcy5OXT1uKX10aGlzLk49KHRoaXMuTisxKSV0aGlzLm1heEl0ZW1zO249UDMoImlVNXEtIU85QCQiLHRoaXMuYlkoKSk7RCYmbiYmVyhEKTtyZXR1cm4gbn19LEw1Uz1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMubG9nZ2VyPVc7dHJ5e3ZhciBEPWdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UmJiEhZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtJiYhIWdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSYmCiEhZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtfWNhdGNoKGIpe0Q9ITF9RCYmKHRoaXMuaW5kZXg9SWV3KG4pKX1OKG4sVyxELGIpe3ZhciB2PXRoaXMuaW5kZXg/djModGhpcy5sb2dnZXIsKCk9PmZlYih0aGlzLmluZGV4LHlpKG4pLFcsRCxiKSwiVyIpOiJ1IjsKdGhpcy5sb2dnZXIuTyh2KX1KKG4sVyl7dmFyIFtELGJdPXRoaXMuaW5kZXg/djModGhpcy5sb2dnZXIsKCk9PkpBdyh5aShuKSxXKSwiUiIpOlsidSJdOwp0aGlzLmxvZ2dlci5LKEQpO3JldHVybiBifX07dmFyIEFBUz17dG9TdHJpbmc6ZnVuY3Rpb24obil7dmFyIFc9W10sRD0wO24tPS0yMTQ3NDgzNjQ4O1dbRCsrXT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIuY2hhckF0KG4lNTIpO2ZvcihuPU1hdGguZmxvb3Iobi81Mik7bj4wOylXW0QrK109ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5Ii5jaGFyQXQobiU2Miksbj1NYXRoLmZsb29yKG4vNjIpO3JldHVybiBXLmpvaW4oIiIpfX07dmFyIFFwPWNsYXNzIGV4dGVuZHMgZy5GTXtjb25zdHJ1Y3RvcihuKXtzdXBlcigpO3RoaXMubG9nZ2VyPW47dGhpcy5YPW5ldyBnLktWfVpSKG4sVyl7dmFyIEQ9dGhpcy5XKG4pO1c/LihEKTtyZXR1cm4gdjModGhpcy5sb2dnZXIsKCk9PmcuRUEoRCwyKSx0aGlzLkopfUZwKG4sVyxEKXtyZXR1cm4gdjModGhpcy5sb2dnZXIsKCk9Plc/dGhpcy5aUihuLEQpOnRoaXMuVyhuLEQpLHRoaXMuTil9fSxGNj1jbGFzcyBleHRlbmRzIFFwe2NvbnN0cnVjdG9yKG4sVyxELGIpe3N1cGVyKG4pOwp0aGlzLmo9Vzt0aGlzLks9RDt0aGlzLk49Im0iO3RoaXMuSj0ieCI7dGhpcy5WPTA7ZCQodGhpcyxiKX1XKG4sVyl7dGhpcy5sb2dnZXIuTih0aGlzLk4pOysrdGhpcy5WPj10aGlzLksmJnRoaXMuWC5yZXNvbHZlKCk7dmFyIEQ9bigpO249djModGhpcy5sb2dnZXIsKCk9PnRoaXMuaihEKSwiQyIpOwppZihuPT09dm9pZCAwKXRocm93IG5ldyBRRygxNywiWU5KOlVuZGVmaW5lZCIpO2lmKCEobiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKXRocm93IG5ldyBRRygxOCwiT0RNOkludmFsaWQiKTtXPy4obik7cmV0dXJuIG59fSxVaGo9Y2xhc3MgZXh0ZW5kcyBRcHtjb25zdHJ1Y3RvcihuLFcsRCl7c3VwZXIobik7dGhpcy5qPVc7dGhpcy5OPSJmIjt0aGlzLko9InoiO2QkKHRoaXMsRCl9Vygpe3JldHVybiB0aGlzLmp9fSxacHQ9Y2xhc3MgZXh0ZW5kcyBRcHtjb25zdHJ1Y3RvcihuLFcsRCl7c3VwZXIobik7dGhpcy5qPVc7dGhpcy5OPSJ3Ijt0aGlzLko9InoiO2QkKHRoaXMsRCl9Vygpe3JldHVybiB2Myh0aGlzLmxvZ2dlciwoKT0+bHAodGhpcy5qKSwiZCIpfVpSKCl7cmV0dXJuIHRoaXMuan19LG9sdz1jbGFzcyBleHRlbmRzIFFwe2NvbnN0cnVjdG9yKG4sVyl7c3VwZXIobik7CnRoaXMuZXJyb3I9Vzt0aGlzLk49ImUiO3RoaXMuSj0ieSJ9Vygpe2lmKHRoaXMuailyZXR1cm4gdGhpcy5qO3RoaXMuaj1sbih0aGlzLG49PiJfIittaHcobikpOwpyZXR1cm4gbG4odGhpcyxuPT5uKX19LFFpPWNsYXNzIGV4dGVuZHMgUXB7Y29uc3RydWN0b3IobixXLEQpe3N1cGVyKG4pOwp0aGlzLmo9Vzt0aGlzLmNsaWVudFN0YXRlPUQ7dGhpcy5OPSJTIjt0aGlzLko9InEifVcoKXt2YXIgbj1NYXRoLmZsb29yKERhdGUubm93KCkvMUUzKSxXPVtNYXRoLnJhbmRvbSgpKjI1NSxNYXRoLnJhbmRvbSgpKjI1NV0sRD1XLmNvbmNhdChbdGhpcy5qJjI1NSx0aGlzLmNsaWVudFN0YXRlXSxbbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV0pO249bmV3IFVpbnQ4QXJyYXkoMitELmxlbmd0aCk7blswXT0zNDtuWzFdPUQubGVuZ3RoO24uc2V0KEQsMik7RD1uLnN1YmFycmF5KDIpO1c9Vy5sZW5ndGg7Zm9yKGxldCBiPVc7YjxELmxlbmd0aDsrK2IpRFtiXV49RFtiJVddO3RoaXMubG9nZ2VyLmNKKHRoaXMuY2xpZW50U3RhdGUpO3JldHVybiBufX07dmFyIGVZaT17WFU6M0U0LHJTOjJFNH0sQW10PWNsYXNzIGV4dGVuZHMgZy5GTXtjb25zdHJ1Y3RvcihuKXtzdXBlcigpO3RoaXMuWD1uZXcgZy5LVjt0aGlzLmo9MDt0aGlzLko9dm9pZCAwO3RoaXMuc3RhdGU9Mjt0aGlzLk8xPW4uTzE7dGhpcy5VZz1uLlVnO3RoaXMua2Q9ey4uLmVZaSwuLi4obi5rZHx8e30pfTt0aGlzLmxvZ2dlcj1uLk8xLlFEKCk7dGhpcy5vbkVycm9yPW4ub25FcnJvcj8/KCgpPT57fSk7CnRoaXMuWGw9bi5YbHx8ITE7aWYoZ2R0KG4pKXtsZXQgYj10aGlzLk8xO3RoaXMuVj0oKT0+TlR0KGIpLmNhdGNoKHY9Pnt0aGlzLko9dj10aGlzLnJlcG9ydEVycm9yKG5ldyBRRyh0aGlzLk4/MjA6MzIsIlRSRzpEaXNwb3NlZCIsdikpO3RoaXMuTj8uZGlzcG9zZSgpO3RoaXMuTj12b2lkIDA7dGhpcy5YLnJlamVjdCh2KX0pOwpwNGkoYiwoKT0+dm9pZCBCMyh0aGlzKSk7CmIuWT09PTImJkIzKHRoaXMpfWVsc2UgdGhpcy5WPW4uRTYsQjModGhpcyk7dmFyIFc9dGhpcy5sb2dnZXIuc2hhcmUoKTtXLk4oIm8iKTt2YXIgRD1uZXcgTWwoVywibyIpO3RoaXMuWC5wcm9taXNlLnRoZW4oKCk9PntELmRvbmUoKTtXLlcoKTtXLmRpc3Bvc2UoKX0sKCk9PnZvaWQgVy5kaXNwb3NlKCkpOwp0aGlzLmFkZE9uRGlzcG9zZUNhbGxiYWNrKCgpPT57dGhpcy5OPyh0aGlzLk4uZGlzcG9zZSgpLHRoaXMuTj12b2lkIDApOnRoaXMuSj90aGlzLmxvZ2dlci5XKCk6KHRoaXMuSj10aGlzLnJlcG9ydEVycm9yKG5ldyBRRygzMiwiVE5QOkRpc3Bvc2VkIikpLHRoaXMubG9nZ2VyLlcoKSx0aGlzLlgucmVqZWN0KHRoaXMuSikpfSk7CmcudSh0aGlzLHRoaXMubG9nZ2VyKX1IJCgpe3JldHVybiB0aGlzLlgucHJvbWlzZX1XKG4pe3JldHVybiBNdih0aGlzLHsuLi5ufSwhMSl9WlIobil7cmV0dXJuIE12KHRoaXMsey4uLm59LCEwKX15aChuKXtpZighKG4+MTUwKSl0cnl7dGhpcy5jYWNoZT1uZXcgTDVTKG4sdGhpcy5sb2dnZXIpfWNhdGNoKFcpe3RoaXMucmVwb3J0RXJyb3IobmV3IFFHKDIyLCJHQko6aW5pdCIsVykpfX1yZXBvcnRFcnJvcihuKXt0aGlzLmxvZ2dlci5KKG4uY29kZSk7dGhpcy5vbkVycm9yKG4pO3JldHVybiBufX0sZ2R0PWZ1bmN0aW9uKG4pe3JldHVybiBxMyhXPT57aWYoIWtDeChXKSlyZXR1cm4hMTtmb3IobGV0IFtELGJdb2YgT2JqZWN0LmVudHJpZXMobikpe2xldCB2PUQsaz1iO2lmKCEodiBpbiBXKSl7aWYoay5LUD09PSEwKWNvbnRpbnVlO3JldHVybiExfWlmKCFrKFdbdl0pKXJldHVybiExfXJldHVybiEwfSl9KHtPMTpxMyhuPT5uIGluc3RhbmNlb2YgVEgpfSwiIik7dmFyIHFuaT1jbGFzc3tjb25zdHJ1Y3Rvcigpe2lmKCFWcCl7VnA9bmV3IGhxKG5ldyBYbkMpO3ZhciBuPXYwKCJjbGllbnRfc3RyZWFtel93ZWJfZmx1c2hfY291bnQiLC0xKTtuIT09LTEmJihWcC5YPW4pfXRoaXMuVz1uPVZwO3VlKG4sIi9jbGllbnRfc3RyZWFtei95b3V0dWJlL2FiYS9nYWMiLERYKCJ0eXBlIiksRFgoInNlcXVlbmNlIikpfUoobixXKXtkcCh0aGlzLlcsIi9jbGllbnRfc3RyZWFtei95b3V0dWJlL2FiYS9nYWMiLG4sVyl9Tigpe3JldHVybiB0aGlzLlcuTigiL2NsaWVudF9zdHJlYW16L3lvdXR1YmUvYWJhL2dhYyIpfX07Zy5jcT1kb2N1bWVudDtnLncyPXdpbmRvdzt2YXIgZGhaPXtIdToiYWxsb3ctZm9ybXMiLFVpOiJhbGxvdy1tb2RhbHMiLEdvOiJhbGxvdy1vcmllbnRhdGlvbi1sb2NrIixFaToiYWxsb3ctcG9pbnRlci1sb2NrIixNTToiYWxsb3ctcG9wdXBzIixmRToiYWxsb3ctcG9wdXBzLXRvLWVzY2FwZS1zYW5kYm94IixGODoiYWxsb3ctcHJlc2VudGF0aW9uIixEczoiYWxsb3ctc2FtZS1vcmlnaW4iLHZ1OiJhbGxvdy1zY3JpcHRzIixPaToiYWxsb3ctdG9wLW5hdmlnYXRpb24iLGdNOiJhbGxvdy10b3AtbmF2aWdhdGlvbi1ieS11c2VyLWFjdGl2YXRpb24ifSxsZVM9Zy53RCgoKT0+ekhpKCkpO2cuRT1nLmJyLnByb3RvdHlwZTtnLkUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGcuYnIodGhpcy5sZWZ0LHRoaXMudG9wLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpfTsKZy5FLmNvbnRhaW5zPWZ1bmN0aW9uKG4pe3JldHVybiBuIGluc3RhbmNlb2YgZy5NWT9uLng+PXRoaXMubGVmdCYmbi54PD10aGlzLmxlZnQrdGhpcy53aWR0aCYmbi55Pj10aGlzLnRvcCYmbi55PD10aGlzLnRvcCt0aGlzLmhlaWdodDp0aGlzLmxlZnQ8PW4ubGVmdCYmdGhpcy5sZWZ0K3RoaXMud2lkdGg+PW4ubGVmdCtuLndpZHRoJiZ0aGlzLnRvcDw9bi50b3AmJnRoaXMudG9wK3RoaXMuaGVpZ2h0Pj1uLnRvcCtuLmhlaWdodH07CmcuRS5nZXRTaXplPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBnLlFlKHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpfTsKZy5FLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLmxlZnQ9TWF0aC5jZWlsKHRoaXMubGVmdCk7dGhpcy50b3A9TWF0aC5jZWlsKHRoaXMudG9wKTt0aGlzLndpZHRoPU1hdGguY2VpbCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmNlaWwodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTsKZy5FLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy5sZWZ0PU1hdGguZmxvb3IodGhpcy5sZWZ0KTt0aGlzLnRvcD1NYXRoLmZsb29yKHRoaXMudG9wKTt0aGlzLndpZHRoPU1hdGguZmxvb3IodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5mbG9vcih0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9OwpnLkUucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLmxlZnQ9TWF0aC5yb3VuZCh0aGlzLmxlZnQpO3RoaXMudG9wPU1hdGgucm91bmQodGhpcy50b3ApO3RoaXMud2lkdGg9TWF0aC5yb3VuZCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLnJvdW5kKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307CmcuRS5zY2FsZT1mdW5jdGlvbihuLFcpe1c9dHlwZW9mIFc9PT0ibnVtYmVyIj9XOm47dGhpcy5sZWZ0Kj1uO3RoaXMud2lkdGgqPW47dGhpcy50b3AqPVc7dGhpcy5oZWlnaHQqPVc7cmV0dXJuIHRoaXN9O3ZhciBqUEM9L14tLS4rLyxMVz17fTtnLkdFMj1nLndEKCgpPT57dmFyIG49ITE7dHJ5e2xldCBXPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldCgpe249ITB9fSk7Zy5xaS5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLFcpfWNhdGNoKFcpe31yZXR1cm4gbn0pO3ZhciB6Q3c9KG5ldyBEYXRlKS5nZXRUaW1lKCk7dmFyIHRJdD1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fTt2YXIgJEcxPWNsYXNze2NvbnN0cnVjdG9yKG4sVyxEKXt0aGlzLmZ2PW47dGhpcy5sMD1XO3RoaXMubWV0YWRhdGE9RH1nZXRNZXRhZGF0YSgpe3JldHVybiB0aGlzLm1ldGFkYXRhfX07dmFyIEJUdD1jbGFzc3tjb25zdHJ1Y3RvcihuLFc9e30pe3RoaXMuUHo9bjt0aGlzLm1ldGFkYXRhPVc7dGhpcy5zdGF0dXM9bnVsbH1nZXRNZXRhZGF0YSgpe3JldHVybiB0aGlzLm1ldGFkYXRhfWdldFN0YXR1cygpe3JldHVybiB0aGlzLnN0YXR1c319O3ZhciByc3c9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYix2KXt0aGlzLm5hbWU9bjt0aGlzLm1ldGhvZFR5cGU9InVuYXJ5Ijt0aGlzLnJlcXVlc3RUeXBlPVc7dGhpcy5yZXNwb25zZVR5cGU9RDt0aGlzLk49Yjt0aGlzLlc9dn1KKG4sVz17fSl7cmV0dXJuIG5ldyAkRzEobix0aGlzLFcpfWdldE5hbWUoKXtyZXR1cm4gdGhpcy5uYW1lfX07dmFyIHNPTT1uZXcgcnN3KCIvZ29vZ2xlLmludGVybmFsLndhYS52MS5XYWEvQ3JlYXRlIiwkWSx0SXQsbj0+bi5iWSgpLEs4KHRJdCkpO3ZhciBOUDI9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIHFUUz1uZXcgcnN3KCIvZ29vZ2xlLmludGVybmFsLndhYS52MS5XYWEvR2VuZXJhdGVJVCIsTnYsTlAyLG49Pm4uYlkoKSxLOChOUDIpKTt2YXIgWDJyPW5ldyBTZXQoWyJTQVBJU0lESEFTSCIsIkFQSVNJREhBU0giXSk7dmFyIFJIaT1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9Z2V0VmFsdWUoKXt2YXIgbj1pVyh0aGlzLDIpO2lmKEFycmF5LmlzQXJyYXkobil8fG4gaW5zdGFuY2VvZiBnLlFtKXRocm93IEVycm9yKCJDYW5ub3QgYWNjZXNzIHRoZSBBbnkudmFsdWUgZmllbGQgb24gQW55IHByb3RvcyBlbmNvZGVkIHVzaW5nIHRoZSBqc3BiIGZvcm1hdCwgY2FsbCB1bnBhY2tKc3BiIGluc3RlYWQiKTtyZXR1cm4gUnoodGhpcywyKX19O3ZhciBNMWI9SzgoY2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfWdldE1lc3NhZ2UoKXtyZXR1cm4gWTkodGhpcywyKX19KTt2YXIgdHUxPWNsYXNze2NvbnN0cnVjdG9yKG4sVyl7dGhpcy5KPVtdO3RoaXMuWD1bXTt0aGlzLmo9W107dGhpcy5XPVtdO3RoaXMuTj1bXTt0aGlzLlY9bi5NRTt0aGlzLks9Vzt0aGlzLnhocj1uLnhocjt0aGlzLlYmJnc0cih0aGlzKX14VihuLFcpe249PT0iZGF0YSI/dGhpcy5KLnB1c2goVyk6bj09PSJtZXRhZGF0YSI/dGhpcy5YLnB1c2goVyk6bj09PSJzdGF0dXMiP3RoaXMuai5wdXNoKFcpOm49PT0iZW5kIj90aGlzLlcucHVzaChXKTpuPT09ImVycm9yIiYmdGhpcy5OLnB1c2goVyl9cmVtb3ZlTGlzdGVuZXIobixXKXtuPT09ImRhdGEiP0ExKHRoaXMuSixXKTpuPT09Im1ldGFkYXRhIj9BMSh0aGlzLlgsVyk6bj09PSJzdGF0dXMiP0ExKHRoaXMuaixXKTpuPT09ImVuZCI/QTEodGhpcy5XLFcpOm49PT0iZXJyb3IiJiZBMSh0aGlzLk4sVyk7cmV0dXJuIHRoaXN9Y2FuY2VsKCl7dGhpcy54aHIuYWJvcnQoKX19LFFQUz1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoKTsKdGhpcy5uYW1lPSJBc3luY1N0YWNrIjtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxuZXcudGFyZ2V0LnByb3RvdHlwZSl9fTtnLml4KG1HLEJKKTttRy5wcm90b3R5cGUuTj1mdW5jdGlvbigpe3ZhciBuPW5ldyBLVyh0aGlzLlgsdGhpcy5XKTt0aGlzLkomJm4uc2V0Q3JlZGVudGlhbHNNb2RlKHRoaXMuSik7cmV0dXJuIG59OwptRy5wcm90b3R5cGUuc2V0Q3JlZGVudGlhbHNNb2RlPWZ1bmN0aW9uKG4pe3RoaXMuSj1ufTsKZy5peChLVyxnLm9XKTtnLkU9S1cucHJvdG90eXBlO2cuRS5vcGVuPWZ1bmN0aW9uKG4sVyl7aWYodGhpcy5yZWFkeVN0YXRlIT0wKXRocm93IHRoaXMuYWJvcnQoKSxFcnJvcigiRXJyb3IgcmVvcGVuaW5nIGEgY29ubmVjdGlvbiIpO3RoaXMuY0o9bjt0aGlzLk89Vzt0aGlzLnJlYWR5U3RhdGU9MTtQWSh0aGlzKX07CmcuRS5zZW5kPWZ1bmN0aW9uKG4pe2lmKHRoaXMucmVhZHlTdGF0ZSE9MSl0aHJvdyB0aGlzLmFib3J0KCksRXJyb3IoIm5lZWQgdG8gY2FsbCBvcGVuKCkgZmlyc3QuICIpO2lmKHRoaXMuWS5zaWduYWwuYWJvcnRlZCl0aHJvdyB0aGlzLmFib3J0KCksRXJyb3IoIlJlcXVlc3Qgd2FzIGFib3J0ZWQuIik7dGhpcy5OPSEwO3ZhciBXPXtoZWFkZXJzOnRoaXMuRCxtZXRob2Q6dGhpcy5jSixjcmVkZW50aWFsczp0aGlzLmosY2FjaGU6dm9pZCAwLHNpZ25hbDp0aGlzLlkuc2lnbmFsfTtuJiYoVy5ib2R5PW4pOyh0aGlzLnR3fHxnLnFpKS5mZXRjaChuZXcgUmVxdWVzdCh0aGlzLk8sVykpLnRoZW4odGhpcy5HRS5iaW5kKHRoaXMpLHRoaXMuRFAuYmluZCh0aGlzKSl9OwpnLkUuYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0PSIiO3RoaXMuRD1uZXcgSGVhZGVyczt0aGlzLnN0YXR1cz0wO3RoaXMuWS5hYm9ydCgiUmVxdWVzdCB3YXMgYWJvcnRlZC4iKTt0aGlzLlcmJnRoaXMuVy5jYW5jZWwoIlJlcXVlc3Qgd2FzIGFib3J0ZWQuIikuY2F0Y2goKCk9Pnt9KTsKdGhpcy5yZWFkeVN0YXRlPj0xJiZ0aGlzLk4mJnRoaXMucmVhZHlTdGF0ZSE9NCYmKHRoaXMuTj0hMSxaYSh0aGlzKSk7dGhpcy5yZWFkeVN0YXRlPTB9OwpnLkUuR0U9ZnVuY3Rpb24obil7aWYodGhpcy5OJiYodGhpcy5YPW4sdGhpcy5KfHwodGhpcy5zdGF0dXM9dGhpcy5YLnN0YXR1cyx0aGlzLnN0YXR1c1RleHQ9dGhpcy5YLnN0YXR1c1RleHQsdGhpcy5KPW4uaGVhZGVycyx0aGlzLnJlYWR5U3RhdGU9MixQWSh0aGlzKSksdGhpcy5OJiYodGhpcy5yZWFkeVN0YXRlPTMsUFkodGhpcyksdGhpcy5OKSkpaWYodGhpcy5yZXNwb25zZVR5cGU9PT0iYXJyYXlidWZmZXIiKW4uYXJyYXlCdWZmZXIoKS50aGVuKHRoaXMuSFQuYmluZCh0aGlzKSx0aGlzLkRQLmJpbmQodGhpcykpO2Vsc2UgaWYodHlwZW9mIGcucWkuUmVhZGFibGVTdHJlYW0hPT0idW5kZWZpbmVkIiYmImJvZHkiaW4gbil7dGhpcy5XPW4uYm9keS5nZXRSZWFkZXIoKTtpZih0aGlzLlYpe2lmKHRoaXMucmVzcG9uc2VUeXBlKXRocm93IEVycm9yKCdyZXNwb25zZVR5cGUgbXVzdCBiZSBlbXB0eSBmb3IgInN0cmVhbUJpbmFyeUNodW5rcyIgbW9kZSByZXNwb25zZXMuJyk7dGhpcy5yZXNwb25zZT0KW119ZWxzZSB0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0PSIiLHRoaXMuSz1uZXcgVGV4dERlY29kZXI7T2oodGhpcyl9ZWxzZSBuLnRleHQoKS50aGVuKHRoaXMuVUQuYmluZCh0aGlzKSx0aGlzLkRQLmJpbmQodGhpcykpfTsKZy5FLmxFPWZ1bmN0aW9uKG4pe2lmKHRoaXMuTil7aWYodGhpcy5WJiZuLnZhbHVlKXRoaXMucmVzcG9uc2UucHVzaChuLnZhbHVlKTtlbHNlIGlmKCF0aGlzLlYpe3ZhciBXPW4udmFsdWU/bi52YWx1ZTpuZXcgVWludDhBcnJheSgwKTtpZihXPXRoaXMuSy5kZWNvZGUoVyx7c3RyZWFtOiFuLmRvbmV9KSl0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0Kz1XfW4uZG9uZT9aYSh0aGlzKTpQWSh0aGlzKTt0aGlzLnJlYWR5U3RhdGU9PTMmJk9qKHRoaXMpfX07CmcuRS5VRD1mdW5jdGlvbihuKXt0aGlzLk4mJih0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0PW4sWmEodGhpcykpfTsKZy5FLkhUPWZ1bmN0aW9uKG4pe3RoaXMuTiYmKHRoaXMucmVzcG9uc2U9bixaYSh0aGlzKSl9OwpnLkUuRFA9ZnVuY3Rpb24oKXt0aGlzLk4mJlphKHRoaXMpfTsKZy5FLnNldFJlcXVlc3RIZWFkZXI9ZnVuY3Rpb24obixXKXt0aGlzLkQuYXBwZW5kKG4sVyl9OwpnLkUuZ2V0UmVzcG9uc2VIZWFkZXI9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuSj90aGlzLkouZ2V0KG4udG9Mb3dlckNhc2UoKSl8fCIiOiIifTsKZy5FLmdldEFsbFJlc3BvbnNlSGVhZGVycz1mdW5jdGlvbigpe2lmKCF0aGlzLkopcmV0dXJuIiI7Zm9yKHZhciBuPVtdLFc9dGhpcy5KLmVudHJpZXMoKSxEPVcubmV4dCgpOyFELmRvbmU7KUQ9RC52YWx1ZSxuLnB1c2goRFswXSsiOiAiK0RbMV0pLEQ9Vy5uZXh0KCk7cmV0dXJuIG4uam9pbigiXHJcbiIpfTsKZy5FLnNldENyZWRlbnRpYWxzTW9kZT1mdW5jdGlvbihuKXt0aGlzLmo9bn07Ck9iamVjdC5kZWZpbmVQcm9wZXJ0eShLVy5wcm90b3R5cGUsIndpdGhDcmVkZW50aWFscyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmo9PT0iaW5jbHVkZSJ9LApzZXQ6ZnVuY3Rpb24obil7dGhpcy5zZXRDcmVkZW50aWFsc01vZGUobj8iaW5jbHVkZSI6InNhbWUtb3JpZ2luIil9fSk7Zy5Vai5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgbj1bXSxXPXRoaXMuWDtXJiZuLnB1c2goek4oVyxwbngsITApLCI6Iik7dmFyIEQ9dGhpcy5OO2lmKER8fFc9PSJmaWxlIiluLnB1c2goIi8vIiksKFc9dGhpcy5ZKSYmbi5wdXNoKHpOKFcscG54LCEwKSwiQCIpLG4ucHVzaChxaChEKS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIiUkMSIpKSxEPXRoaXMuVixEIT1udWxsJiZuLnB1c2goIjoiLFN0cmluZyhEKSk7aWYoRD10aGlzLkopdGhpcy5OJiZELmNoYXJBdCgwKSE9Ii8iJiZuLnB1c2goIi8iKSxuLnB1c2goek4oRCxELmNoYXJBdCgwKT09Ii8iP1luTTpIN2osITApKTsoRD10aGlzLlcudG9TdHJpbmcoKSkmJm4ucHVzaCgiPyIsRCk7KEQ9dGhpcy5qKSYmbi5wdXNoKCIjIix6TihELGZVYikpO3JldHVybiBuLmpvaW4oIiIpfTsKZy5Vai5wcm90b3R5cGUucmVzb2x2ZT1mdW5jdGlvbihuKXt2YXIgVz10aGlzLmNsb25lKCksRD0hIW4uWDtEP3lOKFcsbi5YKTpEPSEhbi5ZO0Q/Vy5ZPW4uWTpEPSEhbi5OO0Q/RWooVyxuLk4pOkQ9bi5WIT1udWxsO3ZhciBiPW4uSjtpZihEKWlyKFcsbi5WKTtlbHNlIGlmKEQ9ISFuLkope2lmKGIuY2hhckF0KDApIT0iLyIpaWYodGhpcy5OJiYhdGhpcy5KKWI9Ii8iK2I7ZWxzZXt2YXIgdj1XLkoubGFzdEluZGV4T2YoIi8iKTt2IT0tMSYmKGI9Vy5KLnNsaWNlKDAsdisxKStiKX12PWI7aWYodj09Ii4uInx8dj09Ii4iKWI9IiI7ZWxzZSBpZih2LmluZGV4T2YoIi4vIikhPS0xfHx2LmluZGV4T2YoIi8uIikhPS0xKXtiPWcualUodiwiLyIpO3Y9di5zcGxpdCgiLyIpO2xldCBrPVtdO2ZvcihsZXQgaD0wO2g8di5sZW5ndGg7KXtsZXQgeD12W2grK107eD09Ii4iP2ImJmg9PXYubGVuZ3RoJiZrLnB1c2goIiIpOng9PSIuLiI/KChrLmxlbmd0aD4xfHxrLmxlbmd0aD09MSYma1swXSE9CiIiKSYmay5wb3AoKSxiJiZoPT12Lmxlbmd0aCYmay5wdXNoKCIiKSk6KGsucHVzaCh4KSxiPSEwKX1iPWsuam9pbigiLyIpfWVsc2UgYj12fUQ/Vy5KPWI6RD1uLlcudG9TdHJpbmcoKSE9PSIiO0Q/dXIoVyxuLlcuY2xvbmUoKSk6RD0hIW4uajtEJiYoVy5qPW4uaik7cmV0dXJuIFd9OwpnLlVqLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgZy5Vaih0aGlzKX07CnZhciBwbng9L1sjXC9cP0BdL2csSDdqPS9bI1w/Ol0vZyxZbk09L1sjXD9dL2csRHhTPS9bI1w/QF0vZyxmVWI9LyMvZztnLkU9ZGgucHJvdG90eXBlO2cuRS5hZGQ9ZnVuY3Rpb24obixXKXtUTih0aGlzKTt0aGlzLlc9bnVsbDtuPWpTKHRoaXMsbik7dmFyIEQ9dGhpcy5OLmdldChuKTtEfHx0aGlzLk4uc2V0KG4sRD1bXSk7RC5wdXNoKFcpO3RoaXMuSj10aGlzLkorMTtyZXR1cm4gdGhpc307CmcuRS5yZW1vdmU9ZnVuY3Rpb24obil7VE4odGhpcyk7bj1qUyh0aGlzLG4pO3JldHVybiB0aGlzLk4uaGFzKG4pPyh0aGlzLlc9bnVsbCx0aGlzLko9dGhpcy5KLXRoaXMuTi5nZXQobikubGVuZ3RoLHRoaXMuTi5kZWxldGUobikpOiExfTsKZy5FLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5OPXRoaXMuVz1udWxsO3RoaXMuSj0wfTsKZy5FLmlzRW1wdHk9ZnVuY3Rpb24oKXtUTih0aGlzKTtyZXR1cm4gdGhpcy5KPT0wfTsKZy5FLmZvckVhY2g9ZnVuY3Rpb24obixXKXtUTih0aGlzKTt0aGlzLk4uZm9yRWFjaChmdW5jdGlvbihELGIpe0QuZm9yRWFjaChmdW5jdGlvbih2KXtuLmNhbGwoVyx2LGIsdGhpcyl9LHRoaXMpfSx0aGlzKX07CmcuRS51Qj1mdW5jdGlvbigpe1ROKHRoaXMpO3ZhciBuPUFycmF5LmZyb20odGhpcy5OLnZhbHVlcygpKSxXPUFycmF5LmZyb20odGhpcy5OLmtleXMoKSksRD1bXTtmb3IobGV0IGI9MDtiPFcubGVuZ3RoO2IrKyl7bGV0IHY9bltiXTtmb3IobGV0IGs9MDtrPHYubGVuZ3RoO2srKylELnB1c2goV1tiXSl9cmV0dXJuIER9OwpnLkUuejc9ZnVuY3Rpb24obil7VE4odGhpcyk7dmFyIFc9W107aWYodHlwZW9mIG49PT0ic3RyaW5nIilDVyh0aGlzLG4pJiYoVz1XLmNvbmNhdCh0aGlzLk4uZ2V0KGpTKHRoaXMsbikpKSk7ZWxzZXtuPUFycmF5LmZyb20odGhpcy5OLnZhbHVlcygpKTtmb3IobGV0IEQ9MDtEPG4ubGVuZ3RoO0QrKylXPVcuY29uY2F0KG5bRF0pfXJldHVybiBXfTsKZy5FLnNldD1mdW5jdGlvbihuLFcpe1ROKHRoaXMpO3RoaXMuVz1udWxsO249alModGhpcyxuKTtDVyh0aGlzLG4pJiYodGhpcy5KPXRoaXMuSi10aGlzLk4uZ2V0KG4pLmxlbmd0aCk7dGhpcy5OLnNldChuLFtXXSk7dGhpcy5KPXRoaXMuSisxO3JldHVybiB0aGlzfTsKZy5FLmdldD1mdW5jdGlvbihuLFcpe2lmKCFuKXJldHVybiBXO249dGhpcy56NyhuKTtyZXR1cm4gbi5sZW5ndGg+MD9TdHJpbmcoblswXSk6V307CmcuRS50b1N0cmluZz1mdW5jdGlvbigpe2lmKHRoaXMuVylyZXR1cm4gdGhpcy5XO2lmKCF0aGlzLk4pcmV0dXJuIiI7dmFyIG49W10sVz1BcnJheS5mcm9tKHRoaXMuTi5rZXlzKCkpO2ZvcihsZXQgYj0wO2I8Vy5sZW5ndGg7YisrKXt2YXIgRD1XW2JdO2xldCB2PXFoKEQpO0Q9dGhpcy56NyhEKTtmb3IobGV0IGs9MDtrPEQubGVuZ3RoO2srKyl7bGV0IGg9djtEW2tdIT09IiImJihoKz0iPSIrcWgoRFtrXSkpO24ucHVzaChoKX19cmV0dXJuIHRoaXMuVz1uLmpvaW4oIiYiKX07CmcuRS5jbG9uZT1mdW5jdGlvbigpe3ZhciBuPW5ldyBkaDtuLlc9dGhpcy5XO3RoaXMuTiYmKG4uTj1uZXcgTWFwKHRoaXMuTiksbi5KPXRoaXMuSik7cmV0dXJuIG59OwpnLkUuZXh0ZW5kPWZ1bmN0aW9uKG4pe2ZvcihsZXQgVz0wO1c8YXJndW1lbnRzLmxlbmd0aDtXKyspbktpKGFyZ3VtZW50c1tXXSxmdW5jdGlvbihELGIpe3RoaXMuYWRkKGIsRCl9LHRoaXMpfTtnLml4KEJZLGcuRk0pO3ZhciBKc2o9W107Zy5FPUJZLnByb3RvdHlwZTtnLkUuU189ZnVuY3Rpb24obixXLEQsYil7QXJyYXkuaXNBcnJheShXKXx8KFcmJihKc2pbMF09Vy50b1N0cmluZygpKSxXPUpzaik7Zm9yKGxldCB2PTA7djxXLmxlbmd0aDt2Kyspe2xldCBrPUFIKG4sV1t2XSxEfHx0aGlzLmhhbmRsZUV2ZW50LGJ8fCExLHRoaXMuSnx8dGhpcyk7aWYoIWspYnJlYWs7dGhpcy5OW2sua2V5XT1rfXJldHVybiB0aGlzfTsKZy5FLmVGPWZ1bmN0aW9uKG4sVyxELGIpe3JldHVybiBGbSh0aGlzLG4sVyxELGIpfTsKZy5FLndIPWZ1bmN0aW9uKG4sVyxELGIsdil7aWYoQXJyYXkuaXNBcnJheShXKSlmb3IobGV0IGs9MDtrPFcubGVuZ3RoO2srKyl0aGlzLndIKG4sV1trXSxELGIsdik7ZWxzZSBEPUR8fHRoaXMuaGFuZGxlRXZlbnQsYj1nLmZ0KGIpPyEhYi5jYXB0dXJlOiEhYix2PXZ8fHRoaXMuSnx8dGhpcyxEPW1oKEQpLGI9ISFiLFc9TjUobik/bi5zYyhXLEQsYix2KTpuPyhuPU8yKG4pKT9uLnNjKFcsRCxiLHYpOm51bGw6bnVsbCxXJiYoRTIoVyksZGVsZXRlIHRoaXMuTltXLmtleV0pfTsKZy5FLlRpPWZ1bmN0aW9uKCl7Zy5hXyh0aGlzLk4sZnVuY3Rpb24obixXKXt0aGlzLk4uaGFzT3duUHJvcGVydHkoVykmJkUyKG4pfSx0aGlzKTsKdGhpcy5OPXt9fTsKZy5FLm1BPWZ1bmN0aW9uKCl7QlkuVEIubUEuY2FsbCh0aGlzKTt0aGlzLlRpKCl9OwpnLkUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiRXZlbnRIYW5kbGVyLmhhbmRsZUV2ZW50IG5vdCBpbXBsZW1lbnRlZCIpO307dmFyIGtoUz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuVz0hMDt0aGlzLko9MDt0aGlzLk49IiJ9aXNJbnB1dFZhbGlkKCl7cmV0dXJuIHRoaXMuV319O010LnByb3RvdHlwZS5pc0lucHV0VmFsaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OIT0zfTsKTXQucHJvdG90eXBlLnM4PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVn07Ck10LnByb3RvdHlwZS5hbz1mdW5jdGlvbigpe3JldHVybiEwfTsKTXQucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIFcoTCl7TCYxMjgmJlJzKGssaCx4LCJpbnZhbGlkIHRhZyIpOyhMJjcpIT0yJiZScyhrLGgseCwiaW52YWxpZCB3aXJlIHR5cGUiKTtrLlc9TD4+PjM7ay5XIT0xJiZrLlchPTImJmsuVyE9MTUmJlJzKGssaCx4LCJ1bmV4cGVjdGVkIHRhZyIpO2suTj0xO2suSj0wO2suWD0wfQpmdW5jdGlvbiBEKEwpe2suWCsrO2suWD09NSYmTCYyNDAmJlJzKGssaCx4LCJtZXNzYWdlIGxlbmd0aCB0b28gbG9uZyIpO2suSnw9KEwmMTI3KTw8KGsuWC0xKSo3O0wmMTI4fHwoay5OPTIsay5ZPTAsdHlwZW9mIFVpbnQ4QXJyYXkhPT0idW5kZWZpbmVkIj9rLmo9bmV3IFVpbnQ4QXJyYXkoay5KKTprLmo9QXJyYXkoay5KKSxrLko9PTAmJnYoKSl9CmZ1bmN0aW9uIGIoTCl7ay5qW2suWSsrXT1MO2suWT09ay5KJiZ2KCl9CmZ1bmN0aW9uIHYoKXtpZihrLlc8MTUpe2xldCBMPXt9O0xbay5XXT1rLmo7ay5LLnB1c2goTCl9ay5OPTB9CmZvcih2YXIgaz10aGlzLGg9biBpbnN0YW5jZW9mIEFycmF5P246bmV3IFVpbnQ4QXJyYXkobikseD0wO3g8aC5sZW5ndGg7KXtzd2l0Y2goay5OKXtjYXNlIDM6UnMoayxoLHgsInN0cmVhbSBhbHJlYWR5IGJyb2tlbiIpO2JyZWFrO2Nhc2UgMDpXKGhbeF0pO2JyZWFrO2Nhc2UgMTpEKGhbeF0pO2JyZWFrO2Nhc2UgMjpiKGhbeF0pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoInVuZXhwZWN0ZWQgcGFyc2VyIHN0YXRlOiAiK2suTik7fWsuRCsrO3grK31uPWsuSztrLks9W107cmV0dXJuIG4ubGVuZ3RoPjA/bjpudWxsfTtRTi5wcm90b3R5cGUuaXNJbnB1dFZhbGlkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTj09PW51bGx9OwpRTi5wcm90b3R5cGUuczg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OfTsKUU4ucHJvdG90eXBlLmFvPWZ1bmN0aW9uKCl7cmV0dXJuITF9OwpRTi5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24obil7dGhpcy5OIT09bnVsbCYmVk4odGhpcyxuLCJzdHJlYW0gYWxyZWFkeSBicm9rZW4iKTt2YXIgVz1udWxsO3RyeXt7dmFyIEQ9dGhpcy5XO0QuV3x8d2goRCxuLCJzdHJlYW0gYWxyZWFkeSBicm9rZW4iKTtELk4rPW47bGV0IGs9TWF0aC5mbG9vcihELk4ubGVuZ3RoLzQpO2lmKGs9PTApdmFyIGI9bnVsbDtlbHNle3RyeXt2YXIgdj16aChELk4uc2xpY2UoMCxrKjQpKX1jYXRjaChoKXt3aChELEQuTixoLm1lc3NhZ2UpfUQuSis9ayo0O0QuTj1ELk4uc2xpY2Uoayo0KTtiPXZ9fVc9Yj09PW51bGw/bnVsbDp0aGlzLlgucGFyc2UoYil9Y2F0Y2goayl7Vk4odGhpcyxuLGsubWVzc2FnZSl9dGhpcy5KKz1uLmxlbmd0aDtyZXR1cm4gV307Zy5FPWFzLnByb3RvdHlwZTtnLkUuaXNJbnB1dFZhbGlkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaiE9M307CmcuRS5zOD1mdW5jdGlvbigpe3JldHVybiB0aGlzLkR9OwpnLkUuZG9uZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmo9PT0yfTsKZy5FLmFvPWZ1bmN0aW9uKCl7cmV0dXJuITF9OwpnLkUucGFyc2U9ZnVuY3Rpb24obil7ZnVuY3Rpb24gVygpe2Zvcig7cjxuLmxlbmd0aDspaWYoY1kobltyXSkpcisrLGsuVysrO2Vsc2UgYnJlYWs7cmV0dXJuIHI8TH0KZnVuY3Rpb24gRCgpe2Zvcih2YXIgSDs7KXtIPW5bcisrXTtpZighSClicmVhaztrLlcrKztzd2l0Y2goay5OKXtjYXNlIDA6SD09PSJ7Ij9rLk49MjpIPT09IlsiP2suTj00OmNZKEgpfHxuXyhrLG4scik7Y29udGludWU7Y2FzZSA3OmNhc2UgMjppZihjWShIKSljb250aW51ZTtpZihrLk49PT03KWgucHVzaCg4KTtlbHNlIGlmKEg9PT0ifSIpe3YoInt9Iik7ay5OPWIoKTtjb250aW51ZX1lbHNlIGgucHVzaCgzKTtIPT09JyInP2suTj02Om5fKGssbixyKTtjb250aW51ZTtjYXNlIDg6Y2FzZSAzOmlmKGNZKEgpKWNvbnRpbnVlO0g9PT0iOiI/KGsuTj09PTMmJihoLnB1c2goMyksay5KKyspLGsuTj0xKTpIPT09In0iPyhrLkotLSx2KCksay5OPWIoKSk6SD09PSIsIj8oay5OPT09MyYmaC5wdXNoKDMpLGsuTj03KTpuXyhrLG4scik7Y29udGludWU7Y2FzZSA0OmNhc2UgMTppZihjWShIKSljb250aW51ZTtpZihrLk49PT00KWlmKGsuSisrLGsuTj0xLEg9PT0iXSIpe2suSi0tO2lmKGsuSj09PQowKXtrLk49NTtyZXR1cm59digiW10iKTtrLk49YigpO2NvbnRpbnVlfWVsc2UgaC5wdXNoKDUpO0g9PT0nIic/ay5OPTY6SD09PSJ7Ij9rLk49MjpIPT09IlsiP2suTj00Okg9PT0idCI/ay5OPTk6SD09PSJmIj9rLk49MTI6SD09PSJuIj9rLk49MTY6SCE9PSItIiYmKCIwMTIzNDU2Nzg5Ii5pbmRleE9mKEgpIT09LTE/ay5OPTIwOm5fKGssbixyKSk7Y29udGludWU7Y2FzZSA1OmlmKEg9PT0iLCIpaC5wdXNoKDUpLGsuTj0xLGsuSj09PTEmJihHPXIpO2Vsc2UgaWYoSD09PSJdIil7ay5KLS07aWYoay5KPT09MClyZXR1cm47digpO2suTj1iKCl9ZWxzZSBpZihjWShIKSljb250aW51ZTtlbHNlIG5fKGssbixyKTtjb250aW51ZTtjYXNlIDY6bGV0IEE9cjthOmZvcig7Oyl7Zm9yKDtrLlk+MDspaWYoSD1uW3IrK10say5ZPT09ND9rLlk9MDprLlkrKywhSClicmVhayBhO2lmKEg9PT0nIicmJiFrLkspe2suTj1iKCk7YnJlYWt9aWYoSD09PSJcXCImJiFrLksmJihrLks9ITAsSD1uW3IrK10sCiFIKSlicmVhaztpZihrLkspaWYoay5LPSExLEg9PT0idSImJihrLlk9MSksSD1uW3IrK10pY29udGludWU7ZWxzZSBicmVhazt4Lmxhc3RJbmRleD1yO0g9eC5leGVjKG4pO2lmKCFIKXtyPW4ubGVuZ3RoKzE7YnJlYWt9cj1ILmluZGV4KzE7SD1uW0guaW5kZXhdO2lmKCFIKWJyZWFrfWsuVys9ci1BO2NvbnRpbnVlO2Nhc2UgOTppZighSCljb250aW51ZTtIPT09InIiP2suTj0xMDpuXyhrLG4scik7Y29udGludWU7Y2FzZSAxMDppZighSCljb250aW51ZTtIPT09InUiP2suTj0xMTpuXyhrLG4scik7Y29udGludWU7Y2FzZSAxMTppZighSCljb250aW51ZTtIPT09ImUiP2suTj1iKCk6bl8oayxuLHIpO2NvbnRpbnVlO2Nhc2UgMTI6aWYoIUgpY29udGludWU7SD09PSJhIj9rLk49MTM6bl8oayxuLHIpO2NvbnRpbnVlO2Nhc2UgMTM6aWYoIUgpY29udGludWU7SD09PSJsIj9rLk49MTQ6bl8oayxuLHIpO2NvbnRpbnVlO2Nhc2UgMTQ6aWYoIUgpY29udGludWU7SD09PSJzIj9rLk49MTU6Cm5fKGssbixyKTtjb250aW51ZTtjYXNlIDE1OmlmKCFIKWNvbnRpbnVlO0g9PT0iZSI/ay5OPWIoKTpuXyhrLG4scik7Y29udGludWU7Y2FzZSAxNjppZighSCljb250aW51ZTtIPT09InUiP2suTj0xNzpuXyhrLG4scik7Y29udGludWU7Y2FzZSAxNzppZighSCljb250aW51ZTtIPT09ImwiP2suTj0xODpuXyhrLG4scik7Y29udGludWU7Y2FzZSAxODppZighSCljb250aW51ZTtIPT09ImwiP2suTj1iKCk6bl8oayxuLHIpO2NvbnRpbnVlO2Nhc2UgMTk6SD09PSIuIj9rLk49MjA6bl8oayxuLHIpO2NvbnRpbnVlO2Nhc2UgMjA6aWYoIjAxMjM0NTY3ODkuZUUrLSIuaW5kZXhPZihIKSE9PS0xKWNvbnRpbnVlO2Vsc2Ugci0tLGsuVy0tLGsuTj1iKCk7Y29udGludWU7ZGVmYXVsdDpuXyhrLG4scil9fX0KZnVuY3Rpb24gYigpe3ZhciBIPWgucG9wKCk7cmV0dXJuIEghPW51bGw/SDoxfQpmdW5jdGlvbiB2KEgpe2suSj4xfHwoSHx8KEg9Rz09PS0xP2suWCtuLnN1YnN0cmluZyhlLHIpOm4uc3Vic3RyaW5nKEcscikpLGsuTz9rLlYucHVzaChIKTprLlYucHVzaChKU09OLnBhcnNlKEgpKSxHPXIpfQpmb3IodmFyIGs9dGhpcyxoPWsuY0oseD1rLnR3LEw9bi5sZW5ndGgsZT0wLEc9LTEscj0wO3I8TDspc3dpdGNoKGsuail7Y2FzZSAzOnJldHVybiBuXyhrLG4sciksbnVsbDtjYXNlIDI6cmV0dXJuIFcoKSYmbl8oayxuLHIpLG51bGw7Y2FzZSAwOmlmKFcoKSl7dmFyIE49bltyKytdO2suVysrO2lmKE49PT0iWyIpe2suaj0xO2U9cjtrLk49NDtjb250aW51ZX1lbHNlIG5fKGssbixyKX1yZXR1cm4gbnVsbDtjYXNlIDE6cmV0dXJuIEQoKSxrLko9PT0wJiZrLk49PTU/KGsuaj0yLGsuWD1uLnN1YnN0cmluZyhyKSk6ay5YPUc9PT0tMT9rLlgrbi5zdWJzdHJpbmcoZSk6bi5zdWJzdHJpbmcoRyksay5WLmxlbmd0aD4wPyhOPWsuVixrLlY9W10sTik6bnVsbH1yZXR1cm4gbnVsbH07V0sucHJvdG90eXBlLmlzSW5wdXRWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmo9PT1udWxsfTsKV0sucHJvdG90eXBlLnM4PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuan07CldLLnByb3RvdHlwZS5hbz1mdW5jdGlvbigpe3JldHVybiExfTsKV0sucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIFcoTCl7ay5KPTY7ay5qPSJUaGUgc3RyZWFtIGlzIGJyb2tlbiBAIitrLk4rIi8iK2grIi4gRXJyb3I6ICIrTCsiLiBXaXRoIGlucHV0OlxuIjt0aHJvdyBFcnJvcihrLmopO30KZnVuY3Rpb24gRCgpe2suVz1uZXcgYXMoe1ZMOiEwLFpIOiEwfSl9CmZ1bmN0aW9uIGIoTCl7aWYoTClmb3IobGV0IGU9MDtlPEwubGVuZ3RoO2UrKyl7bGV0IEc9e307R1sxXT1MW2VdO2suWC5wdXNoKEcpfX0KZnVuY3Rpb24gdihMKXtpZihMKXsoay5WfHxMLmxlbmd0aD4xKSYmVygiZXh0cmEgc3RhdHVzOiAiK0wpO2suVj0hMDtsZXQgZT17fTtlWzJdPUxbMF07ay5YLnB1c2goZSl9fQpmb3IodmFyIGs9dGhpcyxoPTA7aDxuLmxlbmd0aDspe3ZhciB4O2lmKHg9ay5KIT09Mil7YTp7Zm9yKDtoPG4ubGVuZ3RoOyl7aWYoIWNZKG5baF0pKXt4PSEwO2JyZWFrIGF9aCsrO2suTisrfXg9ITF9eD0heH1pZih4KXJldHVybiBudWxsO3N3aXRjaChrLkope2Nhc2UgNjpXKCJzdHJlYW0gYWxyZWFkeSBicm9rZW4iKTticmVhaztjYXNlIDA6bltoXT09PSJbIj8oay5KPTEsaCsrLGsuTisrKTpXKCJ1bmV4cGVjdGVkIGlucHV0IHRva2VuIik7YnJlYWs7Y2FzZSAxOm5baF09PT0iWyI/KGsuSj0yLEQoKSk6bltoXT09PSIsInx8bi5zbGljZShoLGgrNSk9PSJudWxsLCI/ay5KPTM6bltoXT09PSJdIj8oay5KPTUsaCsrLGsuTisrKTpXKCJ1bmV4cGVjdGVkIGlucHV0IHRva2VuIik7YnJlYWs7Y2FzZSAyOng9ay5XLnBhcnNlKG4uc3Vic3RyaW5nKGgpKTtiKHgpO2suVy5kb25lKCk/KGsuSj0zLHg9ay5XLlgsay5OKz1uLmxlbmd0aC1oLXgubGVuZ3RoLG49eCxoPTApOihrLk4rPW4ubGVuZ3RoLQpoLGg9bi5sZW5ndGgpO2JyZWFrO2Nhc2UgMzpuW2hdPT09IiwifHxuLnNsaWNlKGgsaCs1KT09Im51bGwsIj8oay5KPTQsRCgpLGsuVy5wYXJzZSgiWyIpLGgrPW5baF09PT0iLCI/MTo1LGsuTisrKTpuW2hdPT09Il0iJiYoay5KPTUsaCsrLGsuTisrKTticmVhaztjYXNlIDQ6eD1rLlcucGFyc2Uobi5zdWJzdHJpbmcoaCkpO3YoeCk7ay5XLmRvbmUoKT8oay5KPTUseD1rLlcuWCxrLk4rPW4ubGVuZ3RoLWgteC5sZW5ndGgsbj14LGg9MCk6KGsuTis9bi5sZW5ndGgtaCxoPW4ubGVuZ3RoKTticmVhaztjYXNlIDU6VygiZXh0cmEgaW5wdXQgYWZ0ZXIgc3RyZWFtIGVuZCIpfX1yZXR1cm4gay5YLmxlbmd0aD4wPyhuPWsuWCxrLlg9W10sbik6bnVsbH07dmFyIHFBdD1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bjt0aGlzLko9bnVsbDt0aGlzLmo9dGhpcy5XPTA7dGhpcy5EPSExO3RoaXMuWD10aGlzLks9dGhpcy5WPW51bGw7dGhpcy5ZPW5ldyBCWSh0aGlzKTt0aGlzLlkuU18odGhpcy5OLCJyZWFkeXN0YXRlY2hhbmdlIix0aGlzLk8pfWdldFN0YXR1cygpe3JldHVybiB0aGlzLmp9TyhuKXtuPW4udGFyZ2V0O3RyeXtpZihuPT10aGlzLk4pYTp7bGV0IGs9YTUodGhpcy5OKTt2YXIgVz10aGlzLk4uVyxEPXRoaXMuTi5nZXRTdGF0dXMoKTtsZXQgaD1XMyh0aGlzLk4pO249W107aWYoRG8odGhpcy5OKWluc3RhbmNlb2YgQXJyYXkpe2xldCB4PURvKHRoaXMuTik7eC5sZW5ndGg+MCYmeFswXWluc3RhbmNlb2YgVWludDhBcnJheSYmKHRoaXMuRD0hMCxuPXgpfWlmKCEoazwzfHxrPT0zJiYhaCYmbi5sZW5ndGg9PTApKWlmKEQ9RD09MjAwfHxEPT0yMDYsaz09NCYmKFc9PTg/RGkodGhpcyw3KTpXPT03P0RpKHRoaXMsOCk6RHx8CkRpKHRoaXMsMykpLHRoaXMuSnx8KHRoaXMuSj1oQ3godGhpcy5OKSx0aGlzLko9PW51bGwmJkRpKHRoaXMsNSkpLHRoaXMuaj4yKWJIKHRoaXMpO2Vsc2V7aWYobi5sZW5ndGg+dGhpcy5XKXtsZXQgeD1uLmxlbmd0aDtXPVtdO3RyeXtpZih0aGlzLkouYW8oKSlmb3IodmFyIGI9MDtiPHg7YisrKXt2YXIgdj10aGlzLkoucGFyc2UoQXJyYXkuZnJvbShuW2JdKSk7diYmKFc9Vy5jb25jYXQodikpfWVsc2V7dj0iIjtpZighdGhpcy5WKXtpZih0eXBlb2YgVGV4dERlY29kZXI9PT0idW5kZWZpbmVkIil0aHJvdyBFcnJvcigiVGV4dERlY29kZXIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXIuIik7dGhpcy5WPW5ldyBUZXh0RGVjb2Rlcn1mb3IoYj0wO2I8eDtiKyspdis9dGhpcy5WLmRlY29kZShuW2JdLHtzdHJlYW06az09NCYmYj09eC0xfSk7Vz10aGlzLkoucGFyc2Uodil9bi5zcGxpY2UoMCx4KTtXJiZ0aGlzLlgoVyl9Y2F0Y2goTCl7RGkodGhpcyw1KTtiSCh0aGlzKTsKYnJlYWsgYX19ZWxzZSBpZihoLmxlbmd0aD50aGlzLlcpe2I9aC5zbGljZSh0aGlzLlcpO3RoaXMuVz1oLmxlbmd0aDt0cnl7bGV0IHg9dGhpcy5KLnBhcnNlKGIpO3ghPW51bGwmJnRoaXMuWCYmdGhpcy5YKHgpfWNhdGNoKHgpe0RpKHRoaXMsNSk7YkgodGhpcyk7YnJlYWsgYX19az09ND8oaC5sZW5ndGghPTB8fHRoaXMuRD9EaSh0aGlzLDIpOkRpKHRoaXMsNCksYkgodGhpcykpOkRpKHRoaXMsMSl9fX1jYXRjaChrKXtEaSh0aGlzLDYpLGJIKHRoaXMpfX19O3ZhciBHaGk9Y2xhc3N7Y29uc3RydWN0b3Iobil7bj10aGlzLlc9bjt2YXIgVz0oMCxnLkt0KSh0aGlzLlgsdGhpcyk7bi5YPVc7bj10aGlzLlc7Vz0oMCxnLkt0KSh0aGlzLmosdGhpcyk7bi5LPVc7dGhpcy5KPXt9O3RoaXMuTj17fX14VihuLFcpe3ZhciBEPXRoaXMuSltuXTtEfHwoRD1bXSx0aGlzLkpbbl09RCk7RC5wdXNoKFcpfWFkZExpc3RlbmVyKG4sVyl7dGhpcy54VihuLFcpO3JldHVybiB0aGlzfXJlbW92ZUxpc3RlbmVyKG4sVyl7dmFyIEQ9dGhpcy5KW25dO0QmJmcuRkkoRCxXKTsobj10aGlzLk5bbl0pJiZnLkZJKG4sVyk7cmV0dXJuIHRoaXN9b25jZShuLFcpe3ZhciBEPXRoaXMuTltuXTtEfHwoRD1bXSx0aGlzLk5bbl09RCk7RC5wdXNoKFcpO3JldHVybiB0aGlzfVgobil7dmFyIFc9dGhpcy5KLmRhdGE7VyYmdksobixXKTsoVz10aGlzLk4uZGF0YSkmJnZLKG4sVyk7dGhpcy5OLmRhdGE9W119aigpe3N3aXRjaCh0aGlzLlcuZ2V0U3RhdHVzKCkpe2Nhc2UgMTprdCh0aGlzLAoicmVhZGFibGUiKTticmVhaztjYXNlIDU6Y2FzZSA2OmNhc2UgNDpjYXNlIDc6Y2FzZSAzOmt0KHRoaXMsImVycm9yIik7YnJlYWs7Y2FzZSA4Omt0KHRoaXMsImNsb3NlIik7YnJlYWs7Y2FzZSAyOmt0KHRoaXMsImVuZCIpfX19O3ZhciAkeGg9Y2xhc3N7Y29uc3RydWN0b3IoKXt2YXIgbj17Zm9ybWF0OiJqc3BiIn07dGhpcy5ZTz1uLllPfHxnLnJyKCJzdXBwcmVzc0NvcnNQcmVmbGlnaHQiLG4pfHwhMTt0aGlzLndpdGhDcmVkZW50aWFscz1uLndpdGhDcmVkZW50aWFsc3x8Zy5ycigid2l0aENyZWRlbnRpYWxzIixuKXx8ITE7dGhpcy5LYj1uLktifHxbXTt0aGlzLkZOPW4uRk58fFtdO3RoaXMuU249bi5Tbjt0aGlzLk49bi5sSXx8ITF9c2VydmVyU3RyZWFtaW5nKG4sVyxELGIpe3ZhciB2PW4uc3Vic3RyaW5nKDAsbi5sZW5ndGgtYi5uYW1lLmxlbmd0aCk7cmV0dXJuIHh4aihrPT57dmFyIGg9ay5sMCx4PWsuZ2V0TWV0YWRhdGEoKSxMPWhhKHRoaXMsITEpO3g9eHQodGhpcyx4LEwsditoLmdldE5hbWUoKSk7dmFyIGU9TF8oTCxoLlcsITApO2s9aC5OKGsuZnYpO0wuc2VuZCh4LCJQT1NUIixrKTtyZXR1cm4gZX0sdGhpcy5LYikuY2FsbCh0aGlzLGIuSihXLEQpKX19O3F3LnByb3RvdHlwZS5jcmVhdGU9ZnVuY3Rpb24obixXLEQpe3JldHVybiBZWSh0aGlzLk4sdGhpcy5KKyIvJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9DcmVhdGUiLG4sV3x8e30sc09NLEQpfTt2YXIgYW09Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLmQ1PTM7dGhpcy5ueD1uO3RoaXMuZGVmYXVsdFZhbHVlPVc7dGhpcy5VMD0iYm9vbCJ9fSxuaj1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuZDU9Mzt0aGlzLm54PW47dGhpcy5kZWZhdWx0VmFsdWU9Vzt0aGlzLlUwPSJpbnQifX0sV0M9Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLmQ1PTM7dGhpcy5ueD1uO3RoaXMuZGVmYXVsdFZhbHVlPVc7dGhpcy5VMD0iZG91YmxlIn19O3ZhciBTY3QsSVV3LFljLEFzVSxub3IsV0lNLG1HWixLNVUsTzcxLEhwLFo3VSxVR0MsUHJpLHlzeCxFZGksaTdDLHVOYixVQmIsZEd0LHpZaSxsVXIsVFBVLGpPaSxDSmksa3FNLERaLEY1aSxjZix3bjIsSGZ4LFNvUyxJWWksTUl4LHowaSxsWWgsVE5DLEJwdCxSWXcsUU94LFZJaixpbGksa1RiLFZrdyxjc3IsYVVNLGJELG5KaSxXRlMsbmEsRGRTLGJnaSx2NWksdkpDLFRfQyx0UzIsa19pLGhGaix4ZGgsZUZVLGdKMSxYQU0scURTLEdfcix0SlMsJGQyLHJUaixzcjIsanNaLE5GVSxHb00seSRqLHllaSxwQXQsanZNLEtZeCxZRFosSGdaLHZDLEplMSxmY3Qsa05qLEpUeCxJY2ksSGYsaldTLFNEUyxZSmIsQVRaLG1kdyxsaVosS0ZyLE9nMixwYk0sd2JTLFpnTSx5VDIsRUpNLHdJMTtTY3Q9bmV3IGFtKDQ1NzU5NTgwLCExKTtJVXc9bmV3IGFtKDQ1NzY2MjczLCExKTtnLlNuaj1uZXcgYW0oNDU3NTc4NzgsITEpO1ljPW5ldyBhbSg0NTc0OTM5NiwhMSk7CkFzVT1uZXcgYW0oNDU4MDg1MjgsITEpO25vcj1uZXcgYW0oNDU3NDIxMTksITEpO1dJTT1uZXcgYW0oNDU3ODQxNjgsITEpO21HWj1uZXcgYW0oNDU4MDEwNjgsITEpO0s1VT1uZXcgYW0oNDU3Nzg2OTYsITEpO083MT1uZXcgYW0oNDU3NTY0NDYsITEpO2cuUEpNPW5ldyBhbSg0NTgwODE1MCwhMSk7SHA9bmV3IGFtKDQ1ODA3NzY0LCExKTtaN1U9bmV3IGFtKDQ1Nzk3NzIxLCExKTtVR0M9bmV3IGFtKDQ1Nzk4OTMyLCExKTtQcmk9bmV3IGFtKDQ1NzYwMDE4LCExKTt5c3g9bmV3IGFtKDQ1NzM5MTk2LCExKTtFZGk9bmV3IGFtKDQ1Nzk0ODY4LCExKTtpN0M9bmV3IGFtKDQ1NzM5MTk4LCExKTt1TmI9bmV3IGFtKDQ1Nzk0ODY3LCExKTtVQmI9bmV3IGFtKDQ1Nzc3MzU2LCExKTtnLm9kWj1uZXcgbmooNDU3NTA5NDcsZy4kVSgiMCIpKTtkR3Q9bmV3IGFtKDQ1Nzk5OTEyLCExKTt6WWk9bmV3IFdDKDQ1NzQ2OTY2LDApO2xVcj1uZXcgV0MoNDU3NDY5NjcsMCk7ClRQVT1uZXcgV0MoNDU3Mzc0ODgsMCk7ak9pPW5ldyBXQyg0NTczNzQ4OSwwKTtDSmk9bmV3IGFtKDQ1Nzk1NTczLCExKTtnLkJQUz1uZXcgYW0oNDU3NjU2ODAsITEpO2txTT1uZXcgYW0oNDU3MzI3OTEsITApO0RaPW5ldyBhbSg0NTc4MTExMiwhMSk7RjVpPW5ldyBhbSg0NTgwODY1MCwhMSk7Y2Y9bmV3IGFtKDQ1ODExODU3LCExKTt3bjI9bmV3IGFtKDQ1ODA1OTY4LCExKTtIZng9bmV3IGFtKDQ1NzY5MTE5LCEwKTtTb1M9bmV3IG5qKDQ1ODA2NTU1LGcuJFUoIjIiKSk7SVlpPW5ldyBuaig0NTc4NDQzOSxnLiRVKCIwIikpO01JeD1uZXcgYW0oNDU4MTc0MDksITEpO3owaT1uZXcgYW0oNDU3Mzc0ODIsITEpO2xZaD1uZXcgV0MoNDU3NDE3NzMsMCk7VE5DPW5ldyBhbSg0NTgwNTg0OCwhMSk7QnB0PW5ldyBhbSg0NTc3MzY3MywhMSk7Ull3PW5ldyBhbSg0NTgwMDYzMywhMSk7UU94PW5ldyBhbSg0NTc5ODA3OCwhMSk7VklqPW5ldyBhbSg0NTczMTA4MywhMSk7CmlsaT1uZXcgYW0oNDU3OTcyNzksITEpO2tUYj1uZXcgYW0oNDU3Mjg1NTMsITEpO1Zrdz1uZXcgYW0oNDU3OTY3NTAsITEpO2Nzcj1uZXcgYW0oNDU3OTQ2ODAsITEpO2FVTT1uZXcgYW0oNDU4MTMwMjcsITEpO2JEPW5ldyBhbSg0NTczNDE5MSwhMSk7bkppPW5ldyBhbSg0NTc5Njc3NywhMSk7V0ZTPW5ldyBhbSg0NTc5Njc3OCwhMSk7bmE9bmV3IGFtKDQ1ODEwNjYxLCExKTtnLkFoPW5ldyBhbSg0NTc0NTYxMCwhMSk7RGRTPW5ldyBhbSg0NTgxNjU3MSwhMSk7YmdpPW5ldyBhbSg0NTc3MzI3MywhMSk7djVpPW5ldyBhbSg0NTc1NjYxOSwhMSk7dkpDPW5ldyBhbSg0NTc1ODI5MCwhMSk7VF9DPW5ldyBhbSg0NTgxMzgzMSwhMSk7dFMyPW5ldyBhbSg0NTczNTUyMywhMSk7a19pPW5ldyBXQyg0NTc3MTg5MCwwKTtoRmo9bmV3IFdDKDQ1ODA3NzczLDApO3hkaD1uZXcgV0MoNDU3MzU0MjgsNEUzKTtnLkxGaT1uZXcgYW0oNDU3ODkwNzcsITEpO2VGVT1uZXcgYW0oNDU3NDgwMDksITEpOwpnSjE9bmV3IGFtKDQ1NzUyNjA0LCExKTtYQU09bmV3IFdDKDQ1NzY5MjE0LDApO3FEUz1uZXcgYW0oNDU3MzU0NjIsITEpO0dfcj1uZXcgYW0oNDU4MTUwNzMsITEpO3RKUz1uZXcgYW0oNDU3NTE5NDMsITEpOyRkMj1uZXcgYW0oNDU3NTE5NDQsITEpO3JUaj1uZXcgYW0oNDU3NTE5NDUsITEpO3NyMj1uZXcgbmooNDU4MDg3NjIsZy4kVSgiMCIpKTtqc1o9bmV3IGFtKDQ1NzY0NTkyLCExKTtORlU9bmV3IFdDKDQ1NzY0NTkzLDApO0dvTT1uZXcgYW0oNDU3NjY1MTEsITEpO3kkaj1uZXcgYW0oNDU4MDYzODgsITEpO3llaT1uZXcgYW0oNDU4MDYzNjMsITEpO3BBdD1uZXcgYW0oNDU4MTU1OTIsITEpO2p2TT1uZXcgYW0oNDU4MTQ0ODAsITEpO0tZeD1uZXcgYW0oNDU4MTA0NjcsITEpO1lEWj1uZXcgYW0oNDU3OTEzMjYsITEpO0hnWj1uZXcgYW0oNDU3ODc3NzEsITEpO3ZDPW5ldyBhbSg0NTc5MTA4NywhMSk7SmUxPW5ldyBhbSg0NTc3Mjg5MSwhMSk7CmZjdD1uZXcgYW0oNDU3OTU4NDQsITEpO2tOaj1uZXcgYW0oNDU3ODM4NzUsITApO0pUeD1uZXcgYW0oNDU3OTU1NzQsITEpO0ljaT1uZXcgYW0oNDU3NzE4OTEsITEpO0hmPW5ldyBhbSg0NTcyODE4MSwhMSk7aldTPW5ldyBhbSg0NTc1NjU0MywhMSk7U0RTPW5ldyBhbSg0NTc1NjYyMCwhMSk7WUpiPW5ldyBhbSg0NTgwODc1NCwhMSk7QVRaPW5ldyBuaig0NTc2MTc2MCxnLiRVKCIyMDAiKSk7bWR3PW5ldyBhbSg0NTc3NjgzMiwhMSk7bGlaPW5ldyBXQyg0NTc2ODQzMCwwKTtLRnI9bmV3IGFtKDQ1Nzc2NTgwLCExKTtPZzI9bmV3IGFtKDQ1NzU1NzYwLCExKTtwYk09bmV3IGFtKDQ1NzYwMDE3LCExKTt3YlM9bmV3IGFtKDQ1NzMyNzc1LCExKTtnLlAzMT1uZXcgYW0oNDU3ODc5NDgsITEpO1pnTT1uZXcgYW0oNDU3NjU4MTgsITEpO2cuVWRDPW5ldyBhbSg0NTczNDc3NiwhMSk7eVQyPW5ldyBhbSg0NTgxNjgxMSwhMSk7RUpNPW5ldyBhbSg0NTc2MDEyMCwhMSk7Cmcua0g9bmV3IGFtKDQ1NzcwNDc2LCExKTt3STE9bmV3IGFtKDQ1ODA4MDUzLCExKTt2YXIgWXhyPW5ldyBXQyg0NTgwMzc1NCwwKSxtRGg9bmV3IFdDKDQ1NzkxMTE3LDApLHZNUz1uZXcgV0MoNDU3MjU1NDIsMCksWlJ4PW5ldyBXQyg0NTc5NDQ0MSwwKSxlVVU9bmV3IFdDKDQ1ODA3NzcxLDApLEhScj1uZXcgV0MoNDU3NzM2MDMsMCksZndqPW5ldyBXQyg0NTc3MzYwNCwwKSx4RFo9bmV3IFdDKDQ1Nzk3OTYzLDApLGJSdz1uZXcgV0MoNDU3MjU1NDMsMCksUGhqPW5ldyBXQyg0NTc5MzcxMCwwKSxoVWk9bmV3IFdDKDQ1NzU3NDI2LDApLG5Ndz1uZXcgV0MoNDU3MjU1MzksMCksSlIxPW5ldyBXQyg0NTgwNTY5NSwwKSxERFo9bmV3IFdDKDQ1NzI1NTQxLDApLFhHVT1uZXcgV0MoNDU3NTc0MjcsMCksQ1JpPW5ldyBhbSg0NTc5MTIwNiwhMSksV2t0PW5ldyBXQyg0NTcyNTU0MCwwKSxhWXg9bmV3IFdDKDQ1NzI1NTM4LDApLEtraT1uZXcgV0MoNDU3OTExMTgsMCksazZ3PW5ldyBXQyg0NTc2NDUyMywwKSxTeGk9bmV3IFdDKDQ1ODA0NzcxLDApLEl3eD1uZXcgV0MoNDU3ODY0NDMsCjApLFVEMj1uZXcgV0MoNDU4MDIxMjMsMCkscXhoPW5ldyBXQyg0NTc2NDIxNywwKSxHNjI9bmV3IFdDKDQ1NzY0NTI0LDApLCREMT1uZXcgV0MoNDU3NjU2MDIsMCksTGtDPW5ldyBXQyg0NTgwNzQzMiwwKSxBUk09bmV3IFdDKDQ1Nzc2MTkwLDApLE9SVT1uZXcgV0MoNDU3OTExMTksMCksVWJTPW5ldyBXQyg0NTgxNTAxMSwwKSxOZFM9bmV3IFdDKDQ1Nzc4NjcxLDApLHBHMT1uZXcgV0MoNDU3NDEzMzksMCksdDVpPW5ldyBXQyg0NTc2Nzc2MywwKSxnTXg9bmV3IFdDKDQ1ODA3NzcyLDApLHN3aT1uZXcgV0MoNDU3NzAwMDIsMCksclJpPW5ldyBXQyg0NTc3MDAwMSwwKTt2YXIgaWd0PWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuTj1ufX07dmFyIHVwMj1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn1KKCl7cmV0dXJuIHRoaXMuTi5RUShHX3IpfX07dmFyIHI0Mj0vKD86XFt8JTVCKShbYS16QS1aMC05X10rKSg/OlxdfCU1RCkvZzt2YXIgb0pVPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuLDUwMCl9fTt2YXIgaEw9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4sNTAwKX19O3ZhciBkZFM9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfWdldE5hbWUoKXtyZXR1cm4gWTkodGhpcywxKX1nZXRPcHRpb25zKCl7cmV0dXJuIGdlKHRoaXMsaEwsMyl9Y2xlYXJPcHRpb25zKCl7cmV0dXJuIG96KHRoaXMsMyl9fTt2YXIgekZpPWZ1bmN0aW9uKG4pe3JldHVybiBXPT57Vz1KU09OLnBhcnNlKFcpO2lmKCFBcnJheS5pc0FycmF5KFcpKXRocm93IEVycm9yKCJFeHBlY3RlZCBqc3BiIGRhdGEgdG8gYmUgYW4gYXJyYXksIGdvdCAiK3B0KFcpKyI6ICIrVyk7V1tiNF18PTM0O3JldHVybiBuZXcgbihXKX19KGNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX1nZXROYW1lKCl7cmV0dXJuIFk5KHRoaXMsMSl9Z2V0T3B0aW9ucygpe3JldHVybiBnZSh0aGlzLG9KVSwzKX1jbGVhck9wdGlvbnMoKXtyZXR1cm4gb3oodGhpcywzKX1YTygpe3JldHVybiBIVyh0aGlzLDYpfU1MKG4pe0tuKHRoaXMsNixuKX19KTt2YXIgbGNyPVN5bWJvbCgpO3ZhciBURnI7VEZyPW5ldyBtNFooOTk4LGhMLGNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19KTt2YXIgeEg9U3ltYm9sKCk7dmFyICR0PWNsYXNzIGV4dGVuZHMgZy5vV3tjb25zdHJ1Y3RvcihuKXtzdXBlcigpO3RoaXMuWD10aGlzLk49MDt0aGlzLkEkPW4/P3tMUzooVyxEKT0+c2V0VGltZW91dChXLEQpLApzTzpXPT57Y2xlYXJUaW1lb3V0KFcpfX07CnRoaXMuaXNPbmxpbmU9d2luZG93Lm5hdmlnYXRvcj8ub25MaW5lPz8hMDt0aGlzLko9YXN5bmMoKT0+e2F3YWl0IHJYKHRoaXMpfTsKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLHRoaXMuSik7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsdGhpcy5KKTt0aGlzLlh8fHRoaXMuaFQoKX1kaXNwb3NlKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLHRoaXMuSik7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9ubGluZSIsdGhpcy5KKTt0aGlzLkEkLnNPKHRoaXMuWCk7ZGVsZXRlICR0Lmluc3RhbmNlfVdHKCl7cmV0dXJuIHRoaXMuaXNPbmxpbmV9aFQoKXt0aGlzLlg9dGhpcy5BJC5MUyhhc3luYygpPT57dGhpcy5pc09ubGluZT93aW5kb3cubmF2aWdhdG9yPy5vbkxpbmV8fGF3YWl0IHJYKHRoaXMpOmF3YWl0IHJYKHRoaXMpO3RoaXMuaFQoKX0sM0U0KX19O3ZhciBqcjI9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIEMzcj1bMCxJcWosLTFdO3ZhciBMaj1bMCxIaXcsLTFdO3ZhciBCRnQ9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIEZGaT1nLkE5KFswLGcuQ3gsLTEsZy5FNixnLm9tLEMzciwtMSx5cCxpVSxnLkN4LExqLGcub20sZy5DeCwtMSxbMCxDM3IsLTFdLGlVLFkzQyxMaix5cCxbMCwxLGlVLC00LFU2LFswLHlwLC0xLGlVXSxnLm9tLHlwLGcuZHEsWzAsZy5DeCxpVV0saVUsLTEsZy5DeCwtMix5cCwtMSxnLkN4LHlwLGcuQ3gsaVUsWzAsMyxpVSwtMSw0LFRnXSxVNixqbyxbMCxnLkN4LC0xLGcub21dLHVVXSxnLm9tLEpYUyxnLmRxLFswLExqLGcuZHEsWzAsZy5vbSxnLkN4XSx5cCxnLkN4LC0xXSwxLGcuZHEsWzAsWTNDLC0xLGpvXSxnLkN4LExqXSk7dmFyIFV2Mj1JXyhjbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9Sigpe3JldHVybiBIVyh0aGlzLDUpfX0sWzAsZy5DeCxbMCxnLkU2LGZxdywtMV0saVUsZy5DeCwtMixpVSxnLkU2XSk7dmFyIGxYcj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZGF0YT1bXTt0aGlzLk49LTF9c2V0KG4sVz0hMCl7MDw9biYmbjw1MiYmTnVtYmVyLmlzSW50ZWdlcihuKSYmdGhpcy5kYXRhW25dIT09VyYmKHRoaXMuZGF0YVtuXT1XLHRoaXMuTj0tMSl9Z2V0KG4pe3JldHVybiEhdGhpcy5kYXRhW25dfX07Zy5peChnLnBfLGcuRk0pO2cuRT1nLnBfLnByb3RvdHlwZTtnLkUuc3RhcnQ9ZnVuY3Rpb24oKXt0aGlzLnN0b3AoKTt0aGlzLlg9ITE7dmFyIG49WXQodGhpcyksVz1ISyh0aGlzKTtuJiYhVyYmdGhpcy5KLm1velJlcXVlc3RBbmltYXRpb25GcmFtZT8odGhpcy5OPUFIKHRoaXMuSiwiTW96QmVmb3JlUGFpbnQiLHRoaXMuVyksdGhpcy5KLm1velJlcXVlc3RBbmltYXRpb25GcmFtZShudWxsKSx0aGlzLlg9ITApOnRoaXMuTj1uJiZXP24uY2FsbCh0aGlzLkosdGhpcy5XKTp0aGlzLkouc2V0VGltZW91dChqTWgodGhpcy5XKSwyMCl9OwpnLkUuc3RvcD1mdW5jdGlvbigpe2lmKHRoaXMuaXNBY3RpdmUoKSl7bGV0IG49WXQodGhpcyksVz1ISyh0aGlzKTtuJiYhVyYmdGhpcy5KLm1velJlcXVlc3RBbmltYXRpb25GcmFtZT9FMih0aGlzLk4pOm4mJlc/Vy5jYWxsKHRoaXMuSix0aGlzLk4pOnRoaXMuSi5jbGVhclRpbWVvdXQodGhpcy5OKX10aGlzLk49bnVsbH07CmcuRS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk4hPW51bGx9OwpnLkUuT3Q9ZnVuY3Rpb24oKXt0aGlzLlgmJnRoaXMuTiYmRTIodGhpcy5OKTt0aGlzLk49bnVsbDt0aGlzLlYuY2FsbCh0aGlzLmosZy5VdygpKX07CmcuRS5tQT1mdW5jdGlvbigpe3RoaXMuc3RvcCgpO2cucF8uVEIubUEuY2FsbCh0aGlzKX07Zy5peChnLmZfLGcuRk0pO2cuRT1nLmZfLnByb3RvdHlwZTtnLkUudDg9MDtnLkUubUE9ZnVuY3Rpb24oKXtnLmZfLlRCLm1BLmNhbGwodGhpcyk7dGhpcy5zdG9wKCk7ZGVsZXRlIHRoaXMuTjtkZWxldGUgdGhpcy5KfTsKZy5FLnN0YXJ0PWZ1bmN0aW9uKG4pe3RoaXMuc3RvcCgpO3RoaXMudDg9Zy5adCh0aGlzLlcsbiE9PXZvaWQgMD9uOnRoaXMuZ3QpfTsKZy5FLnN0b3A9ZnVuY3Rpb24oKXt0aGlzLmlzQWN0aXZlKCkmJmcucWkuY2xlYXJUaW1lb3V0KHRoaXMudDgpO3RoaXMudDg9MH07CmcuRS5qZT1mdW5jdGlvbigpe3RoaXMuaXNBY3RpdmUoKSYmKHRoaXMuc3RvcCgpLHRoaXMuaSQoKSl9OwpnLkUuaXNBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50OCE9MH07CmcuRS5pJD1mdW5jdGlvbigpe3RoaXMudDg9MDt0aGlzLk4mJnRoaXMuTi5jYWxsKHRoaXMuSil9O3ZhciB3QWk9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKG4sVyl7c3VwZXIoKTt0aGlzLlg9VyE9bnVsbD9uLmJpbmQoVyk6bjt0aGlzLmd0PTM1MDt0aGlzLlc9bnVsbDt0aGlzLk49ITE7dGhpcy5KPTA7dGhpcy5aNj1udWxsfWoobil7dGhpcy5XPWFyZ3VtZW50czt0aGlzLlo2fHx0aGlzLko/dGhpcy5OPSEwOklGKHRoaXMpfXN0b3AoKXt0aGlzLlo2JiYoZy5xaS5jbGVhclRpbWVvdXQodGhpcy5aNiksdGhpcy5aNj1udWxsLHRoaXMuTj0hMSx0aGlzLlc9bnVsbCl9cGF1c2UoKXt0aGlzLkorK31yZXN1bWUoKXt0aGlzLkotLTt0aGlzLkp8fCF0aGlzLk58fHRoaXMuWjZ8fCh0aGlzLk49ITEsSUYodGhpcykpfW1BKCl7c3VwZXIubUEoKTt0aGlzLnN0b3AoKX19O3ZhciB1eWksR2cscWw7dXlpPVJlZ0V4cCgiXltcdTA1OTEtXHUwNmVmXHUwNmZhLVx1MDhmZlx1MjAwZlx1ZDgwMi1cdWQ4MDNcdWQ4M2EtXHVkODNiXHVmYjFkLVx1ZmRmZlx1ZmU3MC1cdWZlZmNdIik7R2c9UmVnRXhwKCJeW15cdTA1OTEtXHUwNmVmXHUwNmZhLVx1MDhmZlx1MjAwZlx1ZDgwMi1cdWQ4MDNcdWQ4M2EtXHVkODNiXHVmYjFkLVx1ZmRmZlx1ZmU3MC1cdWZlZmNdKltBLVphLXpcdTAwYzAtXHUwMGQ2XHUwMGQ4LVx1MDBmNlx1MDBmOC1cdTAyYjhcdTAzMDAtXHUwNTkwXHUwOTAwLVx1MWZmZlx1MjAwZVx1MmMwMC1cdWQ4MDFcdWQ4MDQtXHVkODM5XHVkODNjLVx1ZGJmZlx1ZjkwMC1cdWZiMWNcdWZlMDAtXHVmZTZmXHVmZWZkLVx1ZmZmZl0iKTtxbD1SZWdFeHAoIl5bXkEtWmEtelx1MDBjMC1cdTAwZDZcdTAwZDgtXHUwMGY2XHUwMGY4LVx1MDJiOFx1MDMwMC1cdTA1OTBcdTA5MDAtXHUxZmZmXHUyMDBlXHUyYzAwLVx1ZDgwMVx1ZDgwNC1cdWQ4MzlcdWQ4M2MtXHVkYmZmXHVmOTAwLVx1ZmIxY1x1ZmUwMC1cdWZlNmZcdWZlZmQtXHVmZmZmXSpbXHUwNTkxLVx1MDZlZlx1MDZmYS1cdTA4ZmZcdTIwMGZcdWQ4MDItXHVkODAzXHVkODNhLVx1ZDgzYlx1ZmIxZC1cdWZkZmZcdWZlNzAtXHVmZWZjXSIpOwpnLk1KaT1SZWdFeHAoIl4oYXJ8Y2tifGR2fGhlfGl3fGZhfG5xb3xwc3xzZHx1Z3x1cnx5aXwuKlstX10oQWRsbXxBcmFifEhlYnJ8Tmtvb3xSb2hnfFRoYWEpKSg/IS4qWy1fXShMYXRufEN5cmwpKCR8LXxfKSkoJHwtfF8pIiwiaSIpO0ludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZihbImVuIi5yZXBsYWNlKCJfIiwiLSIpXSk7dUgucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtyZXR1cm4gUkZNfTsKdmFyIFJGTT17ZG9uZTohMCx2YWx1ZTp2b2lkIDB9O3VILnByb3RvdHlwZS5ncT1mdW5jdGlvbigpe3JldHVybiB0aGlzfTt2YXIgb0Y9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW59Z3EoKXtyZXR1cm4gbmV3IGRYKHRoaXMuTigpKX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBuZXcgeksodGhpcy5OKCkpfUooKXtyZXR1cm4gbmV3IHpLKHRoaXMuTigpKX19LGRYPWNsYXNzIGV4dGVuZHMgdUh7Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLk49bn1uZXh0KCl7cmV0dXJuIHRoaXMuTi5uZXh0KCl9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gbmV3IHpLKHRoaXMuTil9Sigpe3JldHVybiBuZXcgeksodGhpcy5OKX19LHpLPWNsYXNzIGV4dGVuZHMgb0Z7Y29uc3RydWN0b3Iobil7c3VwZXIoKCk9Pm4pOwp0aGlzLlc9bn1uZXh0KCl7cmV0dXJuIHRoaXMuVy5uZXh0KCl9fTtsSC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGxIKHRoaXMuTix0aGlzLkssdGhpcy5XLHRoaXMuaix0aGlzLlgsdGhpcy5WLHRoaXMuSix0aGlzLlkpfTsKbEgucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5OPT1uLk4mJnRoaXMuSz09bi5LJiZ0aGlzLlc9PW4uVyYmdGhpcy5qPT1uLmomJnRoaXMuWD09bi5YJiZ0aGlzLlY9PW4uViYmdGhpcy5KPT1uLkomJnRoaXMuWT09bi5ZfTsoZnVuY3Rpb24oKXtpZihwUWope3ZhciBuPS9XaW5kb3dzIE5UIChbMC05Ll0rKS87cmV0dXJuKG49bi5leGVjKGcuWFEoKSkpP25bMV06IjAifXJldHVybiBucj8obj0vMVswfDFdW18uXVswLTlfLl0rLywobj1uLmV4ZWMoZy5YUSgpKSk/blswXS5yZXBsYWNlKC9fL2csIi4iKToiMTAiKTpnLlFIPyhuPS9BbmRyb2lkXHMrKFteXCk7XSspKFwpfDspLywobj1uLmV4ZWMoZy5YUSgpKSk/blsxXToiIik6V1VafHxENGl8fGJpVT8obj0vKD86aVBob25lfENQVSlccytPU1xzKyhcUyspLywobj1uLmV4ZWMoZy5YUSgpKSk/blsxXS5yZXBsYWNlKC9fL2csIi4iKToiIik6IiJ9KSgpO3ZhciBmWDI9ZnVuY3Rpb24oKXtpZihnLmFvKXJldHVybiBqQSgvRmlyZWZveFwvKFswLTkuXSspLyk7aWYoZy5raHx8Zy5SZ3x8cmMpcmV0dXJuIFAyO2lmKGcub2Qpe2lmKGcuQTQoKXx8Zy5teCgpKXt2YXIgbj1qQSgvQ3JpT1NcLyhbMC05Ll0rKS8pO2lmKG4pcmV0dXJuIG59cmV0dXJuIGpBKC9DaHJvbWVcLyhbMC05Ll0rKS8pfWlmKGcuR24mJiFnLkE0KCkpcmV0dXJuIGpBKC9WZXJzaW9uXC8oWzAtOS5dKykvKTtpZih3OHx8TVgpe2lmKG49L1ZlcnNpb25cLyhcUyspLipNb2JpbGVcLyhcUyspLy5leGVjKGcuWFEoKSkpcmV0dXJuIG5bMV0rIi4iK25bMl19ZWxzZSBpZihnLkltKXJldHVybihuPWpBKC9BbmRyb2lkXHMrKFswLTkuXSspLykpP246akEoL1ZlcnNpb25cLyhbMC05Ll0rKS8pO3JldHVybiIifSgpO2cuaXgoQkssZy5GTSk7Zy5FPUJLLnByb3RvdHlwZTtnLkUuc3Vic2NyaWJlPWZ1bmN0aW9uKG4sVyxEKXt2YXIgYj10aGlzLkpbbl07Ynx8KGI9dGhpcy5KW25dPVtdKTt2YXIgdj10aGlzLlY7dGhpcy5OW3ZdPW47dGhpcy5OW3YrMV09Vzt0aGlzLk5bdisyXT1EO3RoaXMuVj12KzM7Yi5wdXNoKHYpO3JldHVybiB2fTsKZy5FLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKG4sVyxEKXtpZihuPXRoaXMuSltuXSl7bGV0IGI9dGhpcy5OO2lmKG49bi5maW5kKGZ1bmN0aW9uKHYpe3JldHVybiBiW3YrMV09PVcmJmJbdisyXT09RH0pKXJldHVybiB0aGlzLmpLKG4pfXJldHVybiExfTsKZy5FLmpLPWZ1bmN0aW9uKG4pe3ZhciBXPXRoaXMuTltuXTtpZihXKXtsZXQgRD10aGlzLkpbV107dGhpcy5YIT0wPyh0aGlzLlcucHVzaChuKSx0aGlzLk5bbisxXT0oKT0+e30pOihEJiZnLkZJKEQsbiksZGVsZXRlIHRoaXMuTltuXSxkZWxldGUgdGhpcy5OW24rMV0sZGVsZXRlIHRoaXMuTltuKzJdKX1yZXR1cm4hIVd9OwpnLkUuV0o9ZnVuY3Rpb24obixXKXt2YXIgRD10aGlzLkpbbl07aWYoRCl7bGV0IHY9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTt2YXIgYj1hcmd1bWVudHMubGVuZ3RoO2xldCBrO2ZvcihrPTE7azxiO2srKyl2W2stMV09YXJndW1lbnRzW2tdO2lmKHRoaXMuSylmb3Ioaz0wO2s8RC5sZW5ndGg7aysrKWI9RFtrXSxKNHIodGhpcy5OW2IrMV0sdGhpcy5OW2IrMl0sdik7ZWxzZXt0aGlzLlgrKzt0cnl7Zm9yKGs9MCxiPUQubGVuZ3RoO2s8YiYmIXRoaXMucU4oKTtrKyspe2xldCBoPURba107dGhpcy5OW2grMV0uYXBwbHkodGhpcy5OW2grMl0sdil9fWZpbmFsbHl7aWYodGhpcy5YLS0sdGhpcy5XLmxlbmd0aD4wJiZ0aGlzLlg9PTApZm9yKDtEPXRoaXMuVy5wb3AoKTspdGhpcy5qSyhEKX19cmV0dXJuIGshPTB9cmV0dXJuITF9OwpnLkUuY2xlYXI9ZnVuY3Rpb24obil7aWYobil7bGV0IFc9dGhpcy5KW25dO1cmJihXLmZvckVhY2godGhpcy5qSyx0aGlzKSxkZWxldGUgdGhpcy5KW25dKX1lbHNlIHRoaXMuTi5sZW5ndGg9MCx0aGlzLko9e319OwpnLkUubUE9ZnVuY3Rpb24oKXtCSy5UQi5tQS5jYWxsKHRoaXMpO3RoaXMuY2xlYXIoKTt0aGlzLlcubGVuZ3RoPTB9O2cuRmQucHJvdG90eXBlLnNldD1mdW5jdGlvbihuLFcpe1c9PT12b2lkIDA/dGhpcy5OLnJlbW92ZShuKTp0aGlzLk4uc2V0KG4sKG5ldyBsZSkuYlkoVykpfTsKZy5GZC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKG4pe3RyeXt2YXIgVz10aGlzLk4uZ2V0KG4pfWNhdGNoKEQpe3JldHVybn1pZihXIT09bnVsbCl0cnl7cmV0dXJuIEpTT04ucGFyc2UoVyl9Y2F0Y2goRCl7dGhyb3ciU3RvcmFnZTogSW52YWxpZCB2YWx1ZSB3YXMgZW5jb3VudGVyZWQiO319OwpnLkZkLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24obil7dGhpcy5OLnJlbW92ZShuKX07Zy5peCh3WCxnLkZkKTt3WC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKG4sVyl7d1guVEIuc2V0LmNhbGwodGhpcyxuLFJGKFcpKX07CndYLnByb3RvdHlwZS5NRD1mdW5jdGlvbihuKXtuPXdYLlRCLmdldC5jYWxsKHRoaXMsbik7aWYobj09PXZvaWQgMHx8biBpbnN0YW5jZW9mIE9iamVjdClyZXR1cm4gbjt0aHJvdyJTdG9yYWdlOiBJbnZhbGlkIHZhbHVlIHdhcyBlbmNvdW50ZXJlZCI7fTsKd1gucHJvdG90eXBlLmdldD1mdW5jdGlvbihuKXtpZihuPXRoaXMuTUQobikpe2lmKG49bi5kYXRhLG49PT12b2lkIDApdGhyb3ciU3RvcmFnZTogSW52YWxpZCB2YWx1ZSB3YXMgZW5jb3VudGVyZWQiO31lbHNlIG49dm9pZCAwO3JldHVybiBufTtnLml4KFFLLHdYKTtRSy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKG4sVyxEKXtpZihXPVJGKFcpKXtpZihEKXtpZihEPGcuVXcoKSl7UUsucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMsbik7cmV0dXJufVcuZXhwaXJhdGlvbj1EfVcuY3JlYXRpb249Zy5VdygpfVFLLlRCLnNldC5jYWxsKHRoaXMsbixXKX07ClFLLnByb3RvdHlwZS5NRD1mdW5jdGlvbihuKXt2YXIgVz1RSy5UQi5NRC5jYWxsKHRoaXMsbik7aWYoVyl7bGV0IEQ9Vy5jcmVhdGlvbixiPVcuZXhwaXJhdGlvbjtpZihiJiZiPGcuVXcoKXx8RCYmRD5nLlV3KCkpUUsucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMsbik7ZWxzZSByZXR1cm4gV319O2cuaXgoVkssUUspO2cuaXgoY0ssSVgxKTtjSy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiBZQTEodGhpcy5ncSghMCkpLkooKX07CmNLLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3ZhciBuPUFycmF5LmZyb20odGhpcyk7Zm9yKGxldCBXIG9mIG4pdGhpcy5yZW1vdmUoVyl9O2cuaXgoYUYsY0spO2cuRT1hRi5wcm90b3R5cGU7Zy5FLmlzQXZhaWxhYmxlPWZ1bmN0aW9uKCl7aWYodGhpcy5KPT09bnVsbCl7dmFyIG49dGhpcy5OO2lmKG4pdHJ5e24uc2V0SXRlbSgiX19zYWsiLCIxIik7bi5yZW1vdmVJdGVtKCJfX3NhayIpO3ZhciBXPSEwfWNhdGNoKEQpe1c9RCBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiYmKEQubmFtZT09PSJRdW90YUV4Y2VlZGVkRXJyb3IifHxELmNvZGU9PT0yMnx8RC5jb2RlPT09MTAxNHx8RC5uYW1lPT09Ik5TX0VSUk9SX0RPTV9RVU9UQV9SRUFDSEVEIikmJm4mJm4ubGVuZ3RoIT09MH1lbHNlIFc9ITE7dGhpcy5KPVd9cmV0dXJuIHRoaXMuSn07CmcuRS5zZXQ9ZnVuY3Rpb24obixXKXtuZSh0aGlzKTt0cnl7dGhpcy5OLnNldEl0ZW0obixXKX1jYXRjaChEKXtpZih0aGlzLk4ubGVuZ3RoPT0wKXRocm93IlN0b3JhZ2UgbWVjaGFuaXNtOiBTdG9yYWdlIGRpc2FibGVkIjt0aHJvdyJTdG9yYWdlIG1lY2hhbmlzbTogUXVvdGEgZXhjZWVkZWQiO319OwpnLkUuZ2V0PWZ1bmN0aW9uKG4pe25lKHRoaXMpO249dGhpcy5OLmdldEl0ZW0obik7aWYodHlwZW9mIG4hPT0ic3RyaW5nIiYmbiE9PW51bGwpdGhyb3ciU3RvcmFnZSBtZWNoYW5pc206IEludmFsaWQgdmFsdWUgd2FzIGVuY291bnRlcmVkIjtyZXR1cm4gbn07CmcuRS5yZW1vdmU9ZnVuY3Rpb24obil7bmUodGhpcyk7dGhpcy5OLnJlbW92ZUl0ZW0obil9OwpnLkUuZ3E9ZnVuY3Rpb24obil7bmUodGhpcyk7dmFyIFc9MCxEPXRoaXMuTixiPW5ldyB1SDtiLm5leHQ9ZnVuY3Rpb24oKXtpZihXPj1ELmxlbmd0aClyZXR1cm4gUkZNO3ZhciB2PUQua2V5KFcrKyk7aWYobilyZXR1cm57dmFsdWU6dixkb25lOiExfTt2PUQuZ2V0SXRlbSh2KTtpZih0eXBlb2YgdiE9PSJzdHJpbmciKXRocm93IlN0b3JhZ2UgbWVjaGFuaXNtOiBJbnZhbGlkIHZhbHVlIHdhcyBlbmNvdW50ZXJlZCI7cmV0dXJue3ZhbHVlOnYsZG9uZTohMX19OwpyZXR1cm4gYn07CmcuRS5jbGVhcj1mdW5jdGlvbigpe25lKHRoaXMpO3RoaXMuTi5jbGVhcigpfTsKZy5FLmtleT1mdW5jdGlvbihuKXtuZSh0aGlzKTtyZXR1cm4gdGhpcy5OLmtleShuKX07Zy5peChXUyxhRik7Zy5peChEUSxhRik7Zy5peChiQyxjSyk7YkMucHJvdG90eXBlLnNldD1mdW5jdGlvbihuLFcpe3RoaXMuSi5zZXQodGhpcy5OK24sVyl9OwpiQy5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLkouZ2V0KHRoaXMuTituKX07CmJDLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24obil7dGhpcy5KLnJlbW92ZSh0aGlzLk4rbil9OwpiQy5wcm90b3R5cGUuZ3E9ZnVuY3Rpb24obil7dmFyIFc9dGhpcy5KW1N5bWJvbC5pdGVyYXRvcl0oKSxEPXRoaXMsYj1uZXcgdUg7Yi5uZXh0PWZ1bmN0aW9uKCl7dmFyIHY9Vy5uZXh0KCk7aWYodi5kb25lKXJldHVybiB2O2Zvcih2PXYudmFsdWU7di5zbGljZSgwLEQuTi5sZW5ndGgpIT1ELk47KXt2PVcubmV4dCgpO2lmKHYuZG9uZSlyZXR1cm4gdjt2PXYudmFsdWV9cmV0dXJue3ZhbHVlOm4/di5zbGljZShELk4ubGVuZ3RoKTpELkouZ2V0KHYpLGRvbmU6ITF9fTsKcmV0dXJuIGJ9O2tqLnByb3RvdHlwZS5nZXRWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkp9Owprai5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGtqKHRoaXMuTix0aGlzLkopfTt2YXIgZWM9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPVtdO2lmKG4pYTp7bGV0IEQ7aWYobiBpbnN0YW5jZW9mIGVjKXtpZihEPW4udUIoKSxuPW4uejcoKSx0aGlzLk4ubGVuZ3RoPD0wKXt2YXIgVz10aGlzLk47Zm9yKGxldCBiPTA7YjxELmxlbmd0aDtiKyspVy5wdXNoKG5ldyBraihEW2JdLG5bYl0pKTticmVhayBhfX1lbHNlIEQ9Zy5MVChuKSxuPWhLKG4pO2ZvcihXPTA7VzxELmxlbmd0aDtXKyspdGhpcy5xcChEW1ddLG5bV10pfX1xcChuLFcpe3ZhciBEPXRoaXMuTjtELnB1c2gobmV3IGtqKG4sVykpO249RC5sZW5ndGgtMTtXPXRoaXMuTjtmb3IoRD1XW25dO24+MDspe2xldCBiPW4tMT4+MTtpZihXW2JdLk4+RC5OKVdbbl09V1tiXSxuPWI7ZWxzZSBicmVha31XW25dPUR9cmVtb3ZlKCl7dmFyIG49dGhpcy5OLFc9bi5sZW5ndGgsRD1uWzBdO2lmKCEoVzw9MCkpe2lmKFc9PTEpbi5sZW5ndGg9MDtlbHNle25bMF09bi5wb3AoKTtuPTA7Vz10aGlzLk47bGV0IHY9Vy5sZW5ndGgsCms9V1tuXTtmb3IoO248dj4+MTspe3ZhciBiPW4qMisxO2xldCBoPW4qMisyO2I9aDx2JiZXW2hdLk48V1tiXS5OP2g6YjtpZihXW2JdLk4+ay5OKWJyZWFrO1dbbl09V1tiXTtuPWJ9V1tuXT1rfXJldHVybiBELmdldFZhbHVlKCl9fXo3KCl7dmFyIG49dGhpcy5OLFc9W10sRD1uLmxlbmd0aDtmb3IobGV0IGI9MDtiPEQ7YisrKVcucHVzaChuW2JdLmdldFZhbHVlKCkpO3JldHVybiBXfXVCKCl7dmFyIG49dGhpcy5OLFc9W10sRD1uLmxlbmd0aDtmb3IobGV0IGI9MDtiPEQ7YisrKVcucHVzaChuW2JdLk4pO3JldHVybiBXfWNsb25lKCl7cmV0dXJuIG5ldyBlYyh0aGlzKX1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuTi5sZW5ndGg9PT0wfWNsZWFyKCl7dGhpcy5OLmxlbmd0aD0wfX07dmFyIFFyaD1jbGFzcyBleHRlbmRzIGVje307dmFyIGhrPXt9LFZKaT10eXBlb2YgVWludDhBcnJheSE9PSJ1bmRlZmluZWQiJiZ0eXBlb2YgVWludDE2QXJyYXkhPT0idW5kZWZpbmVkIiYmdHlwZW9mIEludDMyQXJyYXkhPT0idW5kZWZpbmVkIjtoay5hc3NpZ249ZnVuY3Rpb24obil7Zm9yKHZhciBXPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtXLmxlbmd0aDspe3ZhciBEPVcuc2hpZnQoKTtpZihEKXtpZih0eXBlb2YgRCE9PSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoRCsibXVzdCBiZSBub24tb2JqZWN0Iik7Zm9yKHZhciBiIGluIEQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEQsYikmJihuW2JdPURbYl0pfX1yZXR1cm4gbn07CmhrLlVmPWZ1bmN0aW9uKG4sVyl7aWYobi5sZW5ndGg9PT1XKXJldHVybiBuO2lmKG4uc3ViYXJyYXkpcmV0dXJuIG4uc3ViYXJyYXkoMCxXKTtuLmxlbmd0aD1XO3JldHVybiBufTsKdmFyIGNUMj17UDc6ZnVuY3Rpb24obixXLEQsYix2KXtpZihXLnN1YmFycmF5JiZuLnN1YmFycmF5KW4uc2V0KFcuc3ViYXJyYXkoRCxEK2IpLHYpO2Vsc2UgZm9yKHZhciBrPTA7azxiO2srKyluW3Yra109V1tEK2tdfSwKUDY6ZnVuY3Rpb24obil7dmFyIFcsRDt2YXIgYj1EPTA7Zm9yKFc9bi5sZW5ndGg7YjxXO2IrKylEKz1uW2JdLmxlbmd0aDt2YXIgdj1uZXcgVWludDhBcnJheShEKTtiPUQ9MDtmb3IoVz1uLmxlbmd0aDtiPFc7YisrKXt2YXIgaz1uW2JdO3Yuc2V0KGssRCk7RCs9ay5sZW5ndGh9cmV0dXJuIHZ9fSxhY0M9e1A3OmZ1bmN0aW9uKG4sVyxELGIsdil7Zm9yKHZhciBrPTA7azxiO2srKyluW3Yra109V1tEK2tdfSwKUDY6ZnVuY3Rpb24obil7cmV0dXJuW10uY29uY2F0LmFwcGx5KFtdLG4pfX07CmhrLlhHPWZ1bmN0aW9uKCl7VkppPyhoay5PbT1VaW50OEFycmF5LGhrLm1LPVVpbnQxNkFycmF5LGhrLlN2PUludDMyQXJyYXksaGsuYXNzaWduKGhrLGNUMikpOihoay5PbT1BcnJheSxoay5tSz1BcnJheSxoay5Tdj1BcnJheSxoay5hc3NpZ24oaGssYWNDKSl9Owpoay5YRygpO3ZhciBueGk9ITA7dHJ5e25ldyBVaW50OEFycmF5KDEpfWNhdGNoKG4pe254aT0hMX07dmFyIFZ0PXt9O1Z0PWZ1bmN0aW9uKG4sVyxELGIpe3ZhciB2PW4mNjU1MzV8MDtuPW4+Pj4xNiY2NTUzNXwwO2Zvcih2YXIgaztEIT09MDspe2s9RD4yRTM/MkUzOkQ7RC09aztkbyB2PXYrV1tiKytdfDAsbj1uK3Z8MDt3aGlsZSgtLWspO3YlPTY1NTIxO24lPTY1NTIxfXJldHVybiB2fG48PDE2fDB9O2Zvcih2YXIgY1M9e30sZ24sV3RyPVtdLFhzPTA7WHM8MjU2O1hzKyspe2duPVhzO2Zvcih2YXIgRGtaPTA7RGtaPDg7RGtaKyspZ249Z24mMT8zOTg4MjkyMzg0XmduPj4+MTpnbj4+PjE7V3RyW1hzXT1nbn1jUz1mdW5jdGlvbihuLFcsRCxiKXtEPWIrRDtmb3Iobl49LTE7YjxEO2IrKyluPW4+Pj44Xld0clsobl5XW2JdKSYyNTVdO3JldHVybiBuXi0xfTt2YXIgekI9e307ekI9ezI6Im5lZWQgZGljdGlvbmFyeSIsMToic3RyZWFtIGVuZCIsMDoiIiwiLTEiOiJmaWxlIGVycm9yIiwiLTIiOiJzdHJlYW0gZXJyb3IiLCItMyI6ImRhdGEgZXJyb3IiLCItNCI6Imluc3VmZmljaWVudCBtZW1vcnkiLCItNSI6ImJ1ZmZlciBlcnJvciIsIi02IjoiaW5jb21wYXRpYmxlIHZlcnNpb24ifTt2YXIgbSQ9WzAsMCwwLDAsMCwwLDAsMCwxLDEsMSwxLDIsMiwyLDIsMywzLDMsMyw0LDQsNCw0LDUsNSw1LDUsMF0sUFM9WzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTNdLFowdz1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDMsN10sQ2U9WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdLEJTPUFycmF5KDU3Nik7TGUoQlMpO3ZhciBGOT1BcnJheSg2MCk7TGUoRjkpO3ZhciBPJD1BcnJheSg1MTIpO0xlKE8kKTt2YXIgQWs9QXJyYXkoMjU2KTtMZShBayk7dmFyIEtlPUFycmF5KDI5KTtMZShLZSk7dmFyIFpRPUFycmF5KDMwKTtMZShaUSk7dmFyIHhmLEx3LGVILGhyPSExO3ZhciBidztidz1bbmV3IERFKDAsMCwwLDAsZnVuY3Rpb24obixXKXt2YXIgRD02NTUzNTtmb3IoRD5uLnl2LTUmJihEPW4ueXYtNSk7Oyl7aWYobi5HVzw9MSl7YVMobik7aWYobi5HVz09PTAmJlc9PT0wKXJldHVybiAxO2lmKG4uR1c9PT0wKWJyZWFrfW4ucXMrPW4uR1c7bi5HVz0wO3ZhciBiPW4uT0srRDtpZihuLnFzPT09MHx8bi5xcz49YilpZihuLkdXPW4ucXMtYixuLnFzPWIsdzcobiwhMSksbi5UUi51Uj09PTApcmV0dXJuIDE7aWYobi5xcy1uLk9LPj1uLnhyLTI2MiYmKHc3KG4sITEpLG4uVFIudVI9PT0wKSlyZXR1cm4gMX1uLnFwPTA7aWYoVz09PTQpcmV0dXJuIHc3KG4sITApLG4uVFIudVI9PT0wPzM6NDtuLnFzPm4uT0smJnc3KG4sITEpO3JldHVybiAxfSksCm5ldyBERSg0LDQsOCw0LG53KSxuZXcgREUoNCw1LDE2LDgsbncpLG5ldyBERSg0LDYsMzIsMzIsbncpLG5ldyBERSg0LDQsMTYsMTYsV1YpLG5ldyBERSg4LDE2LDMyLDMyLFdWKSxuZXcgREUoOCwxNiwxMjgsMTI4LFdWKSxuZXcgREUoOCwzMiwxMjgsMjU2LFdWKSxuZXcgREUoMzIsMTI4LDI1OCwxMDI0LFdWKSxuZXcgREUoMzIsMjU4LDI1OCw0MDk2LFdWKV07dmFyIGtmPXt9O2tmPWZ1bmN0aW9uKCl7dGhpcy5pbnB1dD1udWxsO3RoaXMuRW09dGhpcy5CQT10aGlzLlVaPTA7dGhpcy5vdXRwdXQ9bnVsbDt0aGlzLnRCPXRoaXMudVI9dGhpcy51Zz0wO3RoaXMubXNnPSIiO3RoaXMuc3RhdGU9bnVsbDt0aGlzLnFTPTI7dGhpcy5nST0wfTt2YXIgZzI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzsKdlYucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24obixXKXt2YXIgRD10aGlzLlRSLGI9dGhpcy5vcHRpb25zLmNodW5rU2l6ZTtpZih0aGlzLmVuZGVkKXJldHVybiExO3ZhciB2PVc9PT1+flc/VzpXPT09ITA/NDowO3R5cGVvZiBuPT09InN0cmluZyI/RC5pbnB1dD14aihuKTpnMi5jYWxsKG4pPT09IltvYmplY3QgQXJyYXlCdWZmZXJdIj9ELmlucHV0PW5ldyBVaW50OEFycmF5KG4pOkQuaW5wdXQ9bjtELlVaPTA7RC5CQT1ELmlucHV0Lmxlbmd0aDtkb3tELnVSPT09MCYmKEQub3V0cHV0PW5ldyBoay5PbShiKSxELnVnPTAsRC51Uj1iKTtuPVBwMShELHYpO2lmKG4hPT0xJiZuIT09MClyZXR1cm4gdGhpcy5IdChuKSx0aGlzLmVuZGVkPSEwLCExO2lmKEQudVI9PT0wfHxELkJBPT09MCYmKHY9PT00fHx2PT09MikpaWYodGhpcy5vcHRpb25zLnRvPT09InN0cmluZyIpe3ZhciBrPWhrLlVmKEQub3V0cHV0LEQudWcpO1c9aztrPWsubGVuZ3RoO2lmKGs8NjU1MzcmJihXLnN1YmFycmF5JiYKbnhpfHwhVy5zdWJhcnJheSkpVz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsaGsuVWYoVyxrKSk7ZWxzZXtmb3IodmFyIGg9IiIseD0wO3g8azt4KyspaCs9U3RyaW5nLmZyb21DaGFyQ29kZShXW3hdKTtXPWh9dGhpcy5jaHVua3MucHVzaChXKX1lbHNlIFc9aGsuVWYoRC5vdXRwdXQsRC51ZyksdGhpcy5jaHVua3MucHVzaChXKX13aGlsZSgoRC5CQT4wfHxELnVSPT09MCkmJm4hPT0xKTtpZih2PT09NClyZXR1cm4oRD10aGlzLlRSKSYmRC5zdGF0ZT8oYj1ELnN0YXRlLnN0YXR1cyxiIT09NDImJmIhPT02OSYmYiE9PTczJiZiIT09OTEmJmIhPT0xMDMmJmIhPT0xMTMmJmIhPT02NjY/bj1sQyhELC0yKTooRC5zdGF0ZT1udWxsLG49Yj09PTExMz9sQyhELC0zKTowKSk6bj0tMix0aGlzLkh0KG4pLHRoaXMuZW5kZWQ9ITAsbj09PTA7dj09PTImJih0aGlzLkh0KDApLEQudVI9MCk7cmV0dXJuITB9Owp2Vi5wcm90b3R5cGUuSHQ9ZnVuY3Rpb24obil7bj09PTAmJih0aGlzLnJlc3VsdD10aGlzLm9wdGlvbnMudG89PT0ic3RyaW5nIj90aGlzLmNodW5rcy5qb2luKCIiKTpoay5QNih0aGlzLmNodW5rcykpO3RoaXMuY2h1bmtzPVtdO3RoaXMuZXJyPW47dGhpcy5tc2c9dGhpcy5UUi5tc2d9O3ZhciB0cj0oKT0+TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDcpLnNwbGl0KCIiKS5qb2luKCIuIiksR2Q9YEBAcmVkdXgvSU5JVCR7dHIoKX1gLEVLQz1gQEByZWR1eC9SRVBMQUNFJHt0cigpfWA7dmFyIHIyPXR5cGVvZiBTeW1ib2w9PT0iZnVuY3Rpb24iJiZTeW1ib2wub2JzZXJ2YWJsZXx8IkBAb2JzZXJ2YWJsZSI7dmFyIFFTeD1JXyhjbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fSxbMCxnLkN4LFRnLGcub20sbFUsZy5vbSwtMSxqbyxsVSxqbywtMSxnLkN4LGpvLFRnLGcuZHEsWzAsbFUsLTMsam9dLGcub20sLTEsam9dKTt2YXIgS0d0PS0zMDE3MTcyMTc7dmFyIGJzdD1mdW5jdGlvbihuLFcpe3JldHVybigoKT0+e3ZhciBEPW5ldyBBWHgobixXKTtyZXR1cm4oKT0+RH0pKCl9KCJ5b3V0dWJlLmFwaS5pbm5lcnR1YmUuQXR0ZXN0YXRpb25FcnJvciIsJ1tudWxsLFtbIkFUVEVTVEFUSU9OX0VSUk9SX1VOS05PV04iLDBdLFsiQVRURVNUQVRJT05fRVJST1JfVk1fTk9UX0lOSVRJQUxJWkVEIiwxXSxbIkFUVEVTVEFUSU9OX0VSUk9SX1ZNX05PX1JFU1BPTlNFIiwyXSxbIkFUVEVTVEFUSU9OX0VSUk9SX1ZNX1RJTUVPVVQiLDNdLFsiQVRURVNUQVRJT05fRVJST1JfVk1fSU5URVJOQUxfRVJST1IiLDRdLFsiQVRURVNUQVRJT05fRVJST1JfUFJFRkVUQ0hfQ0hBTExFTkdFX0lOVkFMSUQiLDVdLFsiQVRURVNUQVRJT05fRVJST1JfUFJFRkVUQ0hfQ0hBTExFTkdFX05FVFdPUktfRVJST1IiLDZdLFsiQVRURVNUQVRJT05fRVJST1JfUFJFRkVUQ0hfQ0hBTExFTkdFX09GRkxJTkUiLDddLFsiQVRURVNUQVRJT05fRVJST1JfUFJFRkVUQ0hfQ0hBTExFTkdFX0lOVEVSTkFMX0VSUk9SIiw4XSxbIkFUVEVTVEFUSU9OX0VSUk9SX0FQSV9OT1RfUkVBRFkiLDldLFsiQVRURVNUQVRJT05fRVJST1JfREVWSUNFX09GRkxJTkUiLDEwXSxbIkFUVEVTVEFUSU9OX0VSUk9SX0tFWV9QQUlSX0lOSVRfRkFJTEVEIiwxMl0sWyJBVFRFU1RBVElPTl9FUlJPUl9TSUdOSU5HX0RBVEFfTUlTU0lORyIsMTNdLFsiQVRURVNUQVRJT05fRVJST1JfU0lHTklOR19GQUlMRUQiLDE0XSxbIkFUVEVTVEFUSU9OX0VSUk9SX0NFUlRfQ0hBSU5fUkVUUklFVkFMX0ZBSUxFRCIsMTVdXSxudWxsLFtbMTEsMTFdXV0nKTtnLnFNPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMubmFtZT1ufX07Zy5TdD1uZXcgZy5xTSgiYWN0aW9uQ29tcGFuaW9uQWRSZW5kZXJlciIpO2cuVWg9bmV3IGcucU0oImFkQWN0aW9uSW50ZXJzdGl0aWFsUmVuZGVyZXIiKTtnLm0yPW5ldyBnLnFNKCJhZHNFbmdhZ2VtZW50UGFuZWxSZW5kZXJlciIpO2cuVyQ9bmV3IGcucU0oImRpc21pc3NhYmxlUGFuZWxUZXh0UG9ydHJhaXRJbWFnZVJlbmRlcmVyIik7Zy5vYT1uZXcgZy5xTSgiYWRzRW5nYWdlbWVudFBhbmVsU2VjdGlvbkxpc3RWaWV3TW9kZWwiKTtnLkFqPW5ldyBnLnFNKCJpbWFnZUNvbXBhbmlvbkFkUmVuZGVyZXIiKTtnLkVoPW5ldyBnLnFNKCJpbnN0cmVhbUFkUGxheWVyT3ZlcmxheVJlbmRlcmVyIik7Zy5GeT1uZXcgZy5xTSgiaW5zdHJlYW1TdXJ2ZXlBZFJlbmRlcmVyIik7Zy5HOD1uZXcgZy5xTSgiaW5zdHJlYW1TdXJ2ZXlBZFNpbmdsZVNlbGVjdFF1ZXN0aW9uUmVuZGVyZXIiKTtnLnRMPW5ldyBnLnFNKCJpbnN0cmVhbVN1cnZleUFkTXVsdGlTZWxlY3RRdWVzdGlvblJlbmRlcmVyIik7Zy4kSD1uZXcgZy5xTSgiaW5zdHJlYW1TdXJ2ZXlBZEFuc3dlclJlbmRlcmVyIik7Zy52eHg9bmV3IGcucU0oImluc3RyZWFtU3VydmV5QWRBbnN3ZXJOb25lT2ZUaGVBYm92ZVJlbmRlcmVyIik7Zy5DYz1uZXcgZy5xTSgiaW5zdHJlYW1WaWRlb0FkUmVuZGVyZXIiKTtnLmkwPW5ldyBnLnFNKCJwbGF5ZXJPdmVybGF5TGF5b3V0UmVuZGVyZXIiKTtnLnlWPW5ldyBnLnFNKCJ2aWRlb0ludGVyc3RpdGlhbEJ1dHRvbmVkQ2VudGVyZWRMYXlvdXRSZW5kZXJlciIpO2cuaFg9bmV3IGcucU0oImFib3ZlRmVlZEFkTGF5b3V0UmVuZGVyZXIiKTtnLnh6PW5ldyBnLnFNKCJiZWxvd1BsYXllckFkTGF5b3V0UmVuZGVyZXIiKTtnLmt6PW5ldyBnLnFNKCJpblBsYXllckFkTGF5b3V0UmVuZGVyZXIiKTtnLmUyPW5ldyBnLnFNKCJpblBsYXllck9yZ2FuaWNPdmVybGF5QWRMYXlvdXRSZW5kZXJlciIpO2cuUmE9bmV3IGcucU0oInBsYXllckJ5dGVzQWRMYXlvdXRSZW5kZXJlciIpO2cuTGk9bmV3IGcucU0oInBsYXllckJ5dGVzU2VxdWVuY2VJdGVtQWRMYXlvdXRSZW5kZXJlciIpO2cudiQ9bmV3IGcucU0oInBsYXllclVuZGVybGF5QWRMYXlvdXRSZW5kZXJlciIpO2cuQlE9bmV3IGcucU0oImFkSW50cm9SZW5kZXJlciIpO2cuVDA9bmV3IGcucU0oInBsYXllckJ5dGVzU2VxdWVudGlhbExheW91dFJlbmRlcmVyIik7Zy53YT1uZXcgZy5xTSgic3VydmV5VGV4dEludGVyc3RpdGlhbFJlbmRlcmVyIik7Zy5RVj1uZXcgZy5xTSgidmlkZW9BZFRyYWNraW5nUmVuZGVyZXIiKTt2YXIgUXhNPW5ldyBnLnFNKCJ2aWRlb0ludGVyc3RpdGlhbENlbnRlcmVkTGF5b3V0Vmlld01vZGVsIik7Zy5kYT1uZXcgZy5xTSgicGxheWVyT3JnYW5pY1RyYW5zaXRpb25PdmVybGF5UmVuZGVyZXIiKTtnLlhHPW5ldyBnLnFNKCJhZFNsb3RSZW5kZXJlciIpO2cuYWE9bmV3IGcucU0oInNxdWVlemViYWNrUGxheWVyU2lkZVBhbmVsUmVuZGVyZXIiKTtnLktjPW5ldyBnLnFNKCJiYW5uZXJJbWFnZUxheW91dFZpZXdNb2RlbCIpO2cuT2g9bmV3IGcucU0oInRvcEJhbm5lckltYWdlVGV4dEljb25CdXR0b25lZExheW91dFZpZXdNb2RlbCIpO2cuUFE9bmV3IGcucU0oImFkc0VuZ2FnZW1lbnRQYW5lbExheW91dFZpZXdNb2RlbCIpO2cubmk9bmV3IGcucU0oImRpc3BsYXlVbmRlcmxheVRleHRHcmlkQ2FyZHNMYXlvdXRWaWV3TW9kZWwiKTt2YXIgcm49Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW59fSxzQz1jbGFzcyBleHRlbmRzIHJue2dldCBlbnRpdHlNZXRhZGF0YSgpe3JldHVybiB0aGlzLk4uZW50aXR5TWV0YWRhdGF9c2V0IGVudGl0eU1ldGFkYXRhKG4pe3RoaXMuTi5lbnRpdHlNZXRhZGF0YT1ufX07dmFyIGtqTT1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBoNGo9bmV3IGcucU0oImNvbW1hbmRDb250ZXh0Iik7dmFyIHhrdD1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBMdHc9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgZEUyPW5ldyBnLnFNKCJyYXdDb2xkQ29uZmlnR3JvdXAiKTt2YXIgb3Z0PW5ldyBnLnFNKCJyYXdIb3RDb25maWdHcm91cCIpO2cuTk09bmV3IGcucU0oImNvbW1hbmRFeGVjdXRvckNvbW1hbmQiKTt2YXIgZTR3PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBneHQ9e1ZDOjAsZVo6MSxFcDozMixPcDo2MSxkNzo2NyxBSzoxMDMsSVg6ODYsR0E6NDIsTVg6NjAsTEk6NjIsRGk6NzMsYVg6NzYsdzc6ODgsQ0k6OTAsTjY6OTksSHI6OTgsb1g6MTAwLEZBOjEwMixjODo0MSxQODo2OSx5TDo3MCxKcjo3MSx5TToyLEs0OjI3LEFORFJPSUQ6MyxBdjo1NCx3TToxNCx6ejo5MSxDRTo1NSxkTToyNCxOdToxMDUsYzk6MjAsUDk6MTgsSkg6MjEsdEg6MTA0LFg2OjMwLGpMOjI5LFYzOjI4LHBJOjEwMSxtQjoxMDcsa0Q6MzQsaEg6MzYseTM6MzgsSU9TOjUsVEw6MTUsblE6OTIscmo6NDAscFE6MjUseDc6MTA2LFNBOjE3LFk3OjE5LHNZOjY0LHVPOjY2LGVBOjI2LFpwOjIyLGxPOjMzLEhtOjY4LFVZOjM1LExROjUzLEJtOjEwOCxSTzozNyxLUTozOSxkMjo3LFByOjU3LHlDOjQzLHRLOjU5LEpLOjkzLGlwOjc0LFdyOjc1LGJGOjg1LHpBOjY1LGhLOjgwLFhBOjgsQ006MTAsaUY6NTgscVg6NjMsbVU6NzIscXU6MjMsYkE6MTEselU6MTMsd0o6MTIsCm9OOjE2LFVwOjU2LGc3OjMxLGttOjc3LEFROjg0LGZJOjg3LENoOjg5LHdMOjk0LHpUOjk1LGxMOjEwOX07dmFyIGk5PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX1XKG4pe2cuU0UodGhpcyw1LG4pfX07dmFyIHlkPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBYd1U9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIEhzPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX1nZXRQbGF5ZXJUeXBlKCl7cmV0dXJuIEhXKHRoaXMsMzYpfXNldEhvbWVHcm91cEluZm8obil7cmV0dXJuICQ5KHRoaXMsWHdVLDgxLG4pfWNsZWFyTG9jYXRpb25QbGF5YWJpbGl0eVRva2VuKCl7cmV0dXJuIG96KHRoaXMsODkpfX07dmFyIEo2PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX1nZXRWYWx1ZSgpe3JldHVybiBZOSh0aGlzLHZXKHRoaXMsSXYsMikpfX0sSXY9WzIsMyw0LDUsNl07dmFyIHFZUz1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9c2V0VHJhY2tpbmdQYXJhbXMobil7cmV0dXJuIG96KHRoaXMsMSxrVShuLCExKSl9fTt2YXIgZlU9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIEVKPWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBBNj1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9c2V0VG9rZW4obil7cmV0dXJuIGcuU0UodGhpcywyLG4pfX07dmFyIFN5PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX1zZXRTYWZldHlNb2RlKG4pe3JldHVybiBLbih0aGlzLDUsbil9fTt2YXIgWUE9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfVcobil7cmV0dXJuICQ5KHRoaXMsSHMsMSxuKX19O3ZhciBHajE9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgdFBVPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyICRrYj1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBSVGg9bmV3IGcucU0oImNvbnRpbnVhdGlvbkNvbW1hbmQiKTtnLmNFPW5ldyBnLnFNKCJzaWduYWxBY3Rpb24iKTt2YXIgcGo9bmV3IGcucU0oIndlYkNvbW1hbmRNZXRhZGF0YSIpO3ZhciBoazI9bmV3IGcucU0oIm1ldGFkYXRhQmFkZ2VSZW5kZXJlciIpO3ZhciBRWU09bmV3IGcucU0oInNpZ25hbFNlcnZpY2VFbmRwb2ludCIpO3ZhciAkej1uZXcgZy5xTSgiaW5uZXJ0dWJlQ29tbWFuZCIpO3ZhciBEMzE9e1NUOiJFTUJFRERFRF9QTEFZRVJfTU9ERV9VTktOT1dOIixyTDoiRU1CRURERURfUExBWUVSX01PREVfREVGQVVMVCIseHc6IkVNQkVEREVEX1BMQVlFUl9NT0RFX1BGUCIsS2g6IkVNQkVEREVEX1BMQVlFUl9NT0RFX1BGTCJ9O3ZhciAkdE09bmV3IGcucU0oImNoYW5uZWxUaHVtYm5haWxFbmRwb2ludCIpO3ZhciBEdEM9bmV3IGcucU0oImVtYmVkZGVkUGxheWVyRXJyb3JNZXNzYWdlUmVuZGVyZXIiKTt2YXIgYW9VPW5ldyBnLnFNKCJlbWJlZGRlZFBsYXllck92ZXJsYXlWaWRlb0RldGFpbHNSZW5kZXJlciIpLHIxcj1uZXcgZy5xTSgiZW1iZWRkZWRQbGF5ZXJPdmVybGF5VmlkZW9EZXRhaWxzQ29sbGFwc2VkUmVuZGVyZXIiKSxzc0M9bmV3IGcucU0oImVtYmVkZGVkUGxheWVyT3ZlcmxheVZpZGVvRGV0YWlsc0V4cGFuZGVkUmVuZGVyZXIiKTt2YXIgUyQ9bmV3IGcucU0oImVtYmVkc0luZm9QYW5lbFJlbmRlcmVyIik7dmFyIHJZcj1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBzQng9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgTkEyPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIHB3Qz1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4uYWx0ZXJuYXRlQ2hhbm5lbCYmbi5wdXNoKHRoaXMuTi5hbHRlcm5hdGVDaGFubmVsKTt0aGlzLk4uYWx0ZXJuYXRlQ2hhbm5lbExpc3QmJm4ucHVzaCguLi50aGlzLk4uYWx0ZXJuYXRlQ2hhbm5lbExpc3QpO3RoaXMuTi5vbmVvZkNoYW5uZWxFbnRpdHkmJm4ucHVzaCh0aGlzLk4ub25lb2ZDaGFubmVsRW50aXR5KTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBZWXI9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLmVudHJ5Q29sbGVjdGlvbiYmbi5wdXNoKHRoaXMuTi5lbnRyeUNvbGxlY3Rpb24pO3JldHVyblsuLi4obmV3IFNldChuKSldfX0sZl94PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi5wYXJlbnRQbGF5bGlzdCYmbi5wdXNoKHRoaXMuTi5wYXJlbnRQbGF5bGlzdCk7aWYodGhpcy5OLmVudHJpZXMpZm9yKGxldCBXIG9mIHRoaXMuTi5lbnRyaWVzKW4ucHVzaCguLi4obmV3IEhzaChXKSkuSigpKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19LEhzaD1jbGFzcyBleHRlbmRzIHJue0ooKXt2YXIgbj1bXTt0aGlzLk4udmlkZW8mJm4ucHVzaCh0aGlzLk4udmlkZW8pO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIEpZYj1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4uZGVzY3JpcHRpb25FbnRpdHkmJm4ucHVzaCh0aGlzLk4uZGVzY3JpcHRpb25FbnRpdHkpO3RoaXMuTi5jcmVhdG9ycyYmbi5wdXNoKC4uLnRoaXMuTi5jcmVhdG9ycyk7dGhpcy5OLnRoZUJpZ2dlc3RGYW4mJm4ucHVzaCh0aGlzLk4udGhlQmlnZ2VzdEZhbik7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fSxJX3c9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgU1l3PW5ldyBnLnFNKCJmZWVkYmFja0VuZHBvaW50Iik7dmFyIEFZeD1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBta2g9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgS3R4PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIE9zaT1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBQTHI9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgWnNyPW5ldyBnLnFNKCJpbnRlcmFjdGlvbkxvZ2dpbmdDb21tYW5kTWV0YWRhdGEiKTt2YXIgZDNqPXtsRjoiV0VCX0RJU1BMQVlfTU9ERV9VTktOT1dOIixuSToiV0VCX0RJU1BMQVlfTU9ERV9CUk9XU0VSIixSWDoiV0VCX0RJU1BMQVlfTU9ERV9NSU5JTUFMX1VJIixaaToiV0VCX0RJU1BMQVlfTU9ERV9TVEFOREFMT05FIixCcjoiV0VCX0RJU1BMQVlfTU9ERV9GVUxMU0NSRUVOIn07dmFyIFVrcj1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9Z2V0UGxheWVyVHlwZSgpe3JldHVybiBIVyh0aGlzLDcpfUUxKCl7cmV0dXJuIFk5KHRoaXMsMTkpfXNldFZpZGVvSWQobil7cmV0dXJuIGcuU0UodGhpcywxOSxuKX19O3ZhciBBbT1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9fTt2YXIgU0w9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIFp2PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuLDUwMCl9fSx5WTE9WzIsMyw1LDYsNywxMSwxMywyMCwyMSwyMiwyMywyNCwyOCwzMiwzNyw0NSw1OSw3Miw3Myw3NCw3Niw3OCw3OSw4MCw4NSw5MSw5NywxMDAsMTAyLDEwNSwxMTEsMTE3LDExOSwxMjYsMTI3LDEzNiwxNDYsMTQ4LDE1MSwxNTYsMTU3LDE1OCwxNTksMTYzLDE2NCwxNjgsMTc2LDE3NywxNzgsMTc5LDE4NCwxODgsMTg5LDE5MCwxOTEsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDgsMjA5LDIxNSwyMTksMjIyLDIyNSwyMjYsMjI3LDIyOSwyMzIsMjMzLDIzNCwyNDAsMjQxLDI0NCwyNDcsMjQ4LDI0OSwyNTEsMjU0LDI1NSwyNTYsMjU3LDI1OCwyNTksMjYwLDI2MSwyNjYsMjcwLDI3MiwyNzgsMjg4LDI5MSwyOTMsMzAwLDMwNCwzMDgsMzA5LDMxMCwzMTEsMzEzLDMxNCwzMTksMzIwLDMyMSwzMjMsMzI0LDMyNywzMjgsCjMzMCwzMzEsMzMyLDMzNCwzMzcsMzM4LDM0MCwzNDQsMzQ4LDM1MCwzNTEsMzUyLDM1MywzNTQsMzU1LDM1NiwzNTcsMzU4LDM2MSwzNjMsMzY0LDM2OCwzNjksMzcwLDM3MywzNzQsMzc1LDM3OCwzODAsMzgxLDM4MywzODgsMzg5LDM5OSw0MDIsNDAzLDQxMCw0MTEsNDEyLDQxMyw0MTQsNDE1LDQxNiw0MTcsNDE4LDQyMyw0MjQsNDI1LDQyNiw0MjcsNDI5LDQzMCw0MzEsNDM5LDQ0MSw0NDQsNDQ4LDQ1OCw0NjksNDcxLDQ3Myw0NzQsNDgwLDQ4MSw0ODIsNDg0LDQ4NSw0ODYsNDkxLDQ5NSw0OTYsNTA2LDUwNyw1MDksNTExLDUxMiw1MTMsNTE0LDUxNSw1MTYsNTE3LDUxOCw1MTksNTIwLDUyMiw1MjMsNTI0LDUyNSw1MjYsNTI3LDUyOCw1MjksNTMwLDUzMSw1MzYsNTM3LDUzOCw1MzksNTQxLDU0NSw1NDcsNTQ4LDU0OSw1NTAsNTUxLDU1Miw1NTMsNTU0LDU1N107Zy5FeGk9bmV3IGcucU0oImxvZ2dpbmdDb250ZXh0Iik7dmFyIE95PWNsYXNzIGV4dGVuZHMgZy5RbXtjb25zdHJ1Y3RvcihuKXtzdXBlcihuKX19O3ZhciBoNj1jbGFzcyBleHRlbmRzIGcuUW17Y29uc3RydWN0b3Iobil7c3VwZXIobil9RTEoKXtyZXR1cm4gSlModGhpcyx2Vyh0aGlzLHhBLDEpKX1zZXRWaWRlb0lkKG4pe3JldHVybiBEMih0aGlzLDEseEEsV0gobikpfWdldFBsYXlsaXN0SWQoKXtyZXR1cm4gSlModGhpcyx2Vyh0aGlzLHhBLDIpKX19LHhBPVsxLDJdO3ZhciB1RjI9Y2xhc3MgZXh0ZW5kcyBnLlFte2NvbnN0cnVjdG9yKG4pe3N1cGVyKG4pfX07dmFyIGlzWj1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciB1NXQ9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgb3hoPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIGRrdD1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4uZG93bmxvYWRzTGlzdCYmbi5wdXNoKHRoaXMuTi5kb3dubG9hZHNMaXN0KTt0aGlzLk4uc21hcnREb3dubG9hZHNMaXN0JiZuLnB1c2godGhpcy5OLnNtYXJ0RG93bmxvYWRzTGlzdCk7dGhpcy5OLnJlY29tbWVuZGVkRG93bmxvYWRzTGlzdCYmbi5wdXNoKHRoaXMuTi5yZWNvbW1lbmRlZERvd25sb2Fkc0xpc3QpO3RoaXMuTi5yZWZyZXNoJiZuLnB1c2godGhpcy5OLnJlZnJlc2gpO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIGxfWj1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4ucmVmcmVzaCYmbi5wdXNoKHRoaXMuTi5yZWZyZXNoKTtpZih0aGlzLk4uZG93bmxvYWRzKWZvcihsZXQgVyBvZiB0aGlzLk4uZG93bmxvYWRzKW4ucHVzaCguLi4obmV3IHo0dyhXKSkuSigpKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19LHo0dz1jbGFzcyBleHRlbmRzIHJue0ooKXt2YXIgbj1bXTt0aGlzLk4udmlkZW8mJm4ucHVzaCh0aGlzLk4udmlkZW8pO3RoaXMuTi5wbGF5bGlzdCYmbi5wdXNoKHRoaXMuTi5wbGF5bGlzdCk7dGhpcy5OLnZpZGVvSXRlbSYmbi5wdXNoKHRoaXMuTi52aWRlb0l0ZW0pO3RoaXMuTi5wbGF5bGlzdEl0ZW0mJm4ucHVzaCh0aGlzLk4ucGxheWxpc3RJdGVtKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBUQTE9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLmxvY2FsSW1hZ2VFbnRpdGllcyYmbi5wdXNoKC4uLnRoaXMuTi5sb2NhbEltYWdlRW50aXRpZXMpO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIGpCaT1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4ucGxheWJhY2tEYXRhJiZuLnB1c2godGhpcy5OLnBsYXliYWNrRGF0YSk7dGhpcy5OLmxvY2FsSW1hZ2VFbnRpdGllcyYmbi5wdXNoKC4uLnRoaXMuTi5sb2NhbEltYWdlRW50aXRpZXMpO3RoaXMuTi52aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eSYmbi5wdXNoKHRoaXMuTi52aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eSk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgQ0xpPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIEJBVT1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4uZmFrZUNoaWxkcmVuJiZuLnB1c2goLi4udGhpcy5OLmZha2VDaGlsZHJlbik7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgRnRoPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi52aWRlbyYmbi5wdXNoKHRoaXMuTi52aWRlbyk7dGhpcy5OLnBsYXliYWNrRGF0YSYmbi5wdXNoKHRoaXMuTi5wbGF5YmFja0RhdGEpO3RoaXMuTi5vZmZsaW5lVmlkZW9Qb2xpY3kmJm4ucHVzaCh0aGlzLk4ub2ZmbGluZVZpZGVvUG9saWN5KTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciB3d1M9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgTVB3PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi5jaGFubmVsT3duZXImJm4ucHVzaCh0aGlzLk4uY2hhbm5lbE93bmVyKTt0aGlzLk4udmlkZW9zJiZuLnB1c2goLi4udGhpcy5OLnZpZGVvcyk7dGhpcy5OLmNvbGxhYm9yYXRvckNoYW5uZWxzJiZuLnB1c2goLi4udGhpcy5OLmNvbGxhYm9yYXRvckNoYW5uZWxzKTt0aGlzLk4uZG93bmxvYWRTdGF0ZSYmbi5wdXNoKHRoaXMuTi5kb3dubG9hZFN0YXRlKTt0aGlzLk4ucmVmcmVzaCYmbi5wdXNoKHRoaXMuTi5yZWZyZXNoKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBSNGk9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLnZpZGVvJiZuLnB1c2godGhpcy5OLnZpZGVvKTt0aGlzLk4uY2hhbm5lbENvbnRyaWJ1dG9yJiZuLnB1c2godGhpcy5OLmNoYW5uZWxDb250cmlidXRvcik7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgVlBVPWNsYXNzIGV4dGVuZHMgcm57Sigpe3ZhciBuPVtdO3RoaXMuTi5yZWNvbW1lbmRlZFZpZGVvTWV0YWRhdGEmJm4ucHVzaCguLi4obmV3IFFCcih0aGlzLk4ucmVjb21tZW5kZWRWaWRlb01ldGFkYXRhKSkuSigpKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19LFFCcj1jbGFzcyBleHRlbmRzIHJue0ooKXt2YXIgbj1bXTt0aGlzLk4ubG9jYWxJbWFnZUVudGl0aWVzJiZuLnB1c2goLi4udGhpcy5OLmxvY2FsSW1hZ2VFbnRpdGllcyk7dGhpcy5OLnZpZGVvRG93bmxvYWRDb250ZXh0RW50aXR5JiZuLnB1c2godGhpcy5OLnZpZGVvRG93bmxvYWRDb250ZXh0RW50aXR5KTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBjWWk9Y2xhc3MgZXh0ZW5kcyBybntKKCl7dmFyIG49W107dGhpcy5OLnBsYXliYWNrUG9zaXRpb24mJm4ucHVzaCh0aGlzLk4ucGxheWJhY2tQb3NpdGlvbik7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgYV9qPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi5vd25lciYmbi5wdXNoKHRoaXMuTi5vd25lcik7dGhpcy5OLmRvd25sb2FkU3RhdGUmJm4ucHVzaCh0aGlzLk4uZG93bmxvYWRTdGF0ZSk7dGhpcy5OLnVzZXJTdGF0ZSYmbi5wdXNoKC4uLihuZXcgY1lpKHRoaXMuTi51c2VyU3RhdGUpKS5KKCkpO3RoaXMuTi5hZGRpdGlvbmFsTWV0YWRhdGEmJm4ucHVzaCguLi4obmV3IFZQVSh0aGlzLk4uYWRkaXRpb25hbE1ldGFkYXRhKSkuSigpKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBuTjI9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLnVzZXJDaGFubmVsRGV0YWlscyYmbi5wdXNoKHRoaXMuTi51c2VyQ2hhbm5lbERldGFpbHMpO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIFdNWj1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4uY2hhbm5lbE93bmVyJiZuLnB1c2godGhpcy5OLmNoYW5uZWxPd25lcik7dGhpcy5OLnBsYXliYWNrUG9zaXRpb24mJm4ucHVzaCh0aGlzLk4ucGxheWJhY2tQb3NpdGlvbik7dGhpcy5OLmxvY2FsSW1hZ2VFbnRpdGllcyYmbi5wdXNoKC4uLnRoaXMuTi5sb2NhbEltYWdlRW50aXRpZXMpO3RoaXMuTi5kb3dubG9hZFN0YXR1cyYmbi5wdXNoKHRoaXMuTi5kb3dubG9hZFN0YXR1cyk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgREkxPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIGJ6dD1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciB2TnQ9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIga1ByPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIGhPdD1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciB4SVo9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgTE13PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIGVPcj1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBnTnI9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgVVU9bmV3IGcucU0oImNoYW5nZUtleWVkTWFya2Vyc1Zpc2liaWxpdHlDb21tYW5kIik7dmFyIHh0TT1uZXcgZy5xTSgibG9hZE1hcmtlcnNDb21tYW5kIik7dmFyIGVicj1uZXcgZy5xTSgidGltZWx5QWN0aW9uVmlld01vZGVsIik7dmFyIExxQz1uZXcgZy5xTSgidGltZWx5QWN0aW9uc092ZXJsYXlWaWV3TW9kZWwiKTt2YXIgWF9TPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIHF2Qz1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBHUE09Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgdHhqPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyICRJTT1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBySmI9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLmNvbXBvc2l0ZVNvdXJjZUtleXMmJm4ucHVzaCguLi50aGlzLk4uY29tcG9zaXRlU291cmNlS2V5cyk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgczR0PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi50cmFja0Rvd25sb2FkTWV0YWRhdGFzJiZuLnB1c2goLi4udGhpcy5OLnRyYWNrRG93bmxvYWRNZXRhZGF0YXMpO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIE5rUz1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4uZG93bmxvYWRlZFRyYWNrcyYmbi5wdXNoKC4uLnRoaXMuTi5kb3dubG9hZGVkVHJhY2tzKTt0aGlzLk4uc21hcnREb3dubG9hZGVkVHJhY2tzJiZuLnB1c2goLi4udGhpcy5OLnNtYXJ0RG93bmxvYWRlZFRyYWNrcyk7dGhpcy5OLmRvd25sb2FkZWRFcGlzb2RlcyYmbi5wdXNoKC4uLnRoaXMuTi5kb3dubG9hZGVkRXBpc29kZXMpO3RoaXMuTi5kb3dubG9hZGVkQWxidW1SZWxlYXNlcyYmbi5wdXNoKC4uLnRoaXMuTi5kb3dubG9hZGVkQWxidW1SZWxlYXNlcyk7dGhpcy5OLnNtYXJ0RG93bmxvYWRlZEFsYnVtUmVsZWFzZXMmJm4ucHVzaCguLi50aGlzLk4uc21hcnREb3dubG9hZGVkQWxidW1SZWxlYXNlcyk7dGhpcy5OLmRvd25sb2FkZWRQbGF5bGlzdHMmJm4ucHVzaCguLi50aGlzLk4uZG93bmxvYWRlZFBsYXlsaXN0cyk7dGhpcy5OLnNtYXJ0RG93bmxvYWRlZFBsYXlsaXN0cyYmbi5wdXNoKC4uLnRoaXMuTi5zbWFydERvd25sb2FkZWRQbGF5bGlzdHMpOwp0aGlzLk4ubWV0YWRhdGFPbmx5VHJhY2tzJiZuLnB1c2goLi4udGhpcy5OLm1ldGFkYXRhT25seVRyYWNrcyk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgcF9yPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi50cmFja0Rvd25sb2FkTWV0YWRhdGFzJiZuLnB1c2goLi4udGhpcy5OLnRyYWNrRG93bmxvYWRNZXRhZGF0YXMpO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIFl2dD1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4ucGxheWJhY2tEYXRhJiZuLnB1c2godGhpcy5OLnBsYXliYWNrRGF0YSk7dGhpcy5OLmxvY2FsSW1hZ2VFbnRpdGllcyYmbi5wdXNoKC4uLnRoaXMuTi5sb2NhbEltYWdlRW50aXRpZXMpO3RoaXMuTi52aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eSYmbi5wdXNoKHRoaXMuTi52aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eSk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgSHppPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi5tdXNpY0xpYnJhcnlTdGF0dXNFbnRpdHkmJm4ucHVzaCh0aGlzLk4ubXVzaWNMaWJyYXJ5U3RhdHVzRW50aXR5KTt0aGlzLk4ucHJpbWFyeUFydGlzdHMmJm4ucHVzaCguLi50aGlzLk4ucHJpbWFyeUFydGlzdHMpO3RoaXMuTi5kZXRhaWxzJiZuLnB1c2godGhpcy5OLmRldGFpbHMpO3RoaXMuTi51c2VyRGV0YWlscyYmbi5wdXNoKHRoaXMuTi51c2VyRGV0YWlscyk7dGhpcy5OLnRyYWNrcyYmbi5wdXNoKC4uLnRoaXMuTi50cmFja3MpO3RoaXMuTi5zaGFyZSYmbi5wdXNoKHRoaXMuTi5zaGFyZSk7dGhpcy5OLmRvd25sb2FkTWV0YWRhdGEmJm4ucHVzaCh0aGlzLk4uZG93bmxvYWRNZXRhZGF0YSk7dGhpcy5OLnJlZnJlc2gmJm4ucHVzaCh0aGlzLk4ucmVmcmVzaCk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fSxmSlU9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLmFsYnVtUmVsZWFzZSYmCm4ucHVzaCh0aGlzLk4uYWxidW1SZWxlYXNlKTt0aGlzLk4udHJhY2tzJiZuLnB1c2goLi4udGhpcy5OLnRyYWNrcyk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fSxKSjE9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLmFsYnVtUmVsZWFzZSYmbi5wdXNoKHRoaXMuTi5hbGJ1bVJlbGVhc2UpO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIElKVT1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4uZGV0YWlscyYmbi5wdXNoKHRoaXMuTi5kZXRhaWxzKTt0aGlzLk4udXNlckRldGFpbHMmJm4ucHVzaCh0aGlzLk4udXNlckRldGFpbHMpO3JldHVyblsuLi4obmV3IFNldChuKSldfX0sU3ZaPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi5wYXJlbnRBcnRpc3QmJm4ucHVzaCh0aGlzLk4ucGFyZW50QXJ0aXN0KTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19LEFKaT1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4ucGFyZW50QXJ0aXN0JiZuLnB1c2godGhpcy5OLnBhcmVudEFydGlzdCk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fTt2YXIgbUliPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIEtNdz1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBQVHg9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLnRyYWNrcyYmbi5wdXNoKC4uLnRoaXMuTi50cmFja3MpO3RoaXMuTi5yZWZyZXNoJiZuLnB1c2godGhpcy5OLnJlZnJlc2gpO3RoaXMuTi5tdXNpY0xpYnJhcnlTdGF0dXNFbnRpdHkmJm4ucHVzaCh0aGlzLk4ubXVzaWNMaWJyYXJ5U3RhdHVzRW50aXR5KTt0aGlzLk4uZGV0YWlscyYmbi5wdXNoKHRoaXMuTi5kZXRhaWxzKTt0aGlzLk4uZG93bmxvYWRNZXRhZGF0YSYmbi5wdXNoKHRoaXMuTi5kb3dubG9hZE1ldGFkYXRhKTt0aGlzLk4uc2lkZWxvYWRNZXRhZGF0YSYmbi5wdXNoKHRoaXMuTi5zaWRlbG9hZE1ldGFkYXRhKTt0aGlzLk4udXNlckRldGFpbHMmJm4ucHVzaCh0aGlzLk4udXNlckRldGFpbHMpO3RoaXMuTi5lbnRyeUNvbGxlY3Rpb24mJm4ucHVzaCh0aGlzLk4uZW50cnlDb2xsZWN0aW9uKTt0aGlzLk4uc2hhcmUmJm4ucHVzaCh0aGlzLk4uc2hhcmUpO3RoaXMuTi5wb2RjYXN0U2hvd0FkZGl0aW9uYWxNZXRhZGF0YSYmCm4ucHVzaCguLi4obmV3IE96aSh0aGlzLk4ucG9kY2FzdFNob3dBZGRpdGlvbmFsTWV0YWRhdGEpKS5KKCkpO3JldHVyblsuLi4obmV3IFNldChuKSldfX0sT3ppPWNsYXNzIGV4dGVuZHMgcm57Sigpe3ZhciBuPVtdO3RoaXMuTi5jcmVhdG9yRW50aXR5JiZuLnB1c2godGhpcy5OLmNyZWF0b3JFbnRpdHkpO3JldHVyblsuLi4obmV3IFNldChuKSldfX07dmFyIFp6aT1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBVSVo9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLm11c2ljTGlicmFyeVN0YXR1c0VudGl0eSYmbi5wdXNoKHRoaXMuTi5tdXNpY0xpYnJhcnlTdGF0dXNFbnRpdHkpO3RoaXMuTi5hcnRpc3RzJiZuLnB1c2goLi4udGhpcy5OLmFydGlzdHMpO3RoaXMuTi5hdWRpb01vZGVWZXJzaW9uJiZuLnB1c2godGhpcy5OLmF1ZGlvTW9kZVZlcnNpb24pO3RoaXMuTi52aWRlb01vZGVWZXJzaW9uJiZuLnB1c2godGhpcy5OLnZpZGVvTW9kZVZlcnNpb24pO3RoaXMuTi51c2VyRGV0YWlscyYmbi5wdXNoKHRoaXMuTi51c2VyRGV0YWlscyk7dGhpcy5OLmRldGFpbHMmJm4ucHVzaCh0aGlzLk4uZGV0YWlscyk7dGhpcy5OLmFsYnVtUmVsZWFzZSYmbi5wdXNoKHRoaXMuTi5hbGJ1bVJlbGVhc2UpO3RoaXMuTi5zaGFyZSYmbi5wdXNoKHRoaXMuTi5zaGFyZSk7dGhpcy5OLmxpYnJhcnlFZGl0JiZuLnB1c2godGhpcy5OLmxpYnJhcnlFZGl0KTt0aGlzLk4uZG93bmxvYWRNZXRhZGF0YSYmCm4ucHVzaCh0aGlzLk4uZG93bmxvYWRNZXRhZGF0YSk7dGhpcy5OLnBsYXliYWNrUG9zaXRpb24mJm4ucHVzaCh0aGlzLk4ucGxheWJhY2tQb3NpdGlvbik7dGhpcy5OLmx5cmljcyYmbi5wdXNoKHRoaXMuTi5seXJpY3MpO3JldHVyblsuLi4obmV3IFNldChuKSldfX0seUpTPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi5wYXJlbnRUcmFjayYmbi5wdXNoKHRoaXMuTi5wYXJlbnRUcmFjayk7cmV0dXJuWy4uLihuZXcgU2V0KG4pKV19fSxFTng9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7dmFyIG49W107dGhpcy5OLnBhcmVudFRyYWNrJiZuLnB1c2godGhpcy5OLnBhcmVudFRyYWNrKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBucU09bmV3IGcucU0oIm11c2ljRW1iZWRkZWRQbGF5ZXJPdmVybGF5VmlkZW9EZXRhaWxzUmVuZGVyZXIiKTt2YXIgaXpTPW5ldyBnLnFNKCJzaGFyZUVuZHBvaW50IiksdXhDPW5ldyBnLnFNKCJzaGFyZUVudGl0eUVuZHBvaW50Iiksb05pPW5ldyBnLnFNKCJzaGFyZUVudGl0eVNlcnZpY2VFbmRwb2ludCIpLGRJeD1uZXcgZy5xTSgid2ViUGxheWVyU2hhcmVFbnRpdHlTZXJ2aWNlRW5kcG9pbnQiKTtnLlBqPW5ldyBnLnFNKCJ1cmxFbmRwb2ludCIpO2cuSVE9bmV3IGcucU0oIndhdGNoRW5kcG9pbnQiKTt2YXIgek93PW5ldyBnLnFNKCJ3YXRjaFBsYXlsaXN0RW5kcG9pbnQiKTt2YXIgbEoyPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIFRrdz1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBqNFo9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgQ1R3PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIEJrdz1jbGFzcyBleHRlbmRzIHNDe0ooKXt2YXIgbj1bXTt0aGlzLk4udHJhbnNmZXImJm4ucHVzaCh0aGlzLk4udHJhbnNmZXIpO3RoaXMuTi5hZHNQbGF5YmFja0RhdGEmJm4ucHVzaCguLi50aGlzLk4uYWRzUGxheWJhY2tEYXRhKTt0aGlzLk4uZHJtTGljZW5zZSYmbi5wdXNoKHRoaXMuTi5kcm1MaWNlbnNlKTt0aGlzLk4ub2ZmbGluZVZpZGVvUG9saWN5JiZuLnB1c2godGhpcy5OLm9mZmxpbmVWaWRlb1BvbGljeSk7dGhpcy5OLnZpZGVvRG93bmxvYWRDb250ZXh0RW50aXR5JiZuLnB1c2godGhpcy5OLnZpZGVvRG93bmxvYWRDb250ZXh0RW50aXR5KTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBGTXc9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgd19NPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3ZhciBuPVtdO3RoaXMuTi5vZmZsaW5lVmlkZW9TdHJlYW1zJiZuLnB1c2goLi4udGhpcy5OLm9mZmxpbmVWaWRlb1N0cmVhbXMpO3RoaXMuTi5jYXB0aW9uVHJhY2smJm4ucHVzaCguLi50aGlzLk4uY2FwdGlvblRyYWNrKTtyZXR1cm5bLi4uKG5ldyBTZXQobikpXX19O3ZhciBNeFM9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgUk8xPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIFE0cj1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBWeGI9bmV3IGcucU0oInByZWZldGNoV2F0Y2hDb21tYW5kIik7dmFyIGNKWj1uZXcgZy5xTSgidXBkYXRlUHJvZ3Jlc3NCYXJDb21tYW5kIik7dmFyIE5LeD1uZXcgZy5xTSgiY29tcG9zaXRlVmlkZW9PdmVybGF5UmVuZGVyZXIiKTt2YXIgbGFTPW5ldyBnLnFNKCJwYWlkQ29udGVudE92ZXJsYXlSZW5kZXJlciIpO3ZhciBLSTE9bmV3IGcucU0oInBsYXllck11dGVkQXV0b3BsYXlPdmVybGF5UmVuZGVyZXIiKSxPVng9bmV3IGcucU0oInBsYXllck11dGVkQXV0b3BsYXlFbmRTY3JlZW5SZW5kZXJlciIpO3ZhciBJb2I9bmV3IGcucU0oInVuc2VyaWFsaXplZFBsYXllclJlc3BvbnNlIiksRHo9bmV3IGcucU0oInVuc2VyaWFsaXplZFBsYXllclJlc3BvbnNlIiksYUp3PW5ldyBnLnFNKCJwbGF5ZXJSZXNwb25zZSIpO3ZhciBuWEM9bmV3IGcucU0oInBsYXlsaXN0RWRpdEVuZHBvaW50Iik7dmFyIFd1Wj1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBUZT1uZXcgZy5xTSgicmVlbFdhdGNoRW5kcG9pbnQiKTt2YXIgRCRyPW5ldyBnLnFNKCJyZWVsSXRlbVdhdGNoUmVzcG9uc2UiKTtnLllIPW5ldyBnLnFNKCJidXR0b25SZW5kZXJlciIpO2cuSEM9bmV3IGcucU0oInRvZ2dsZUJ1dHRvblJlbmRlcmVyIik7Zy5jUT1uZXcgZy5xTSgiY291bnRlcmZhY3R1YWxSZW5kZXJlciIpO3ZhciBiTXI9bmV3IGcucU0oInJlc29sdmVVcmxDb21tYW5kTWV0YWRhdGEiKTt2YXIgdlhqPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIGtpdz1uZXcgZy5xTSgibW9kaWZ5Q2hhbm5lbE5vdGlmaWNhdGlvblByZWZlcmVuY2VFbmRwb2ludCIpO3ZhciBoblU9bmV3IGcucU0oInVuc3Vic2NyaWJlRW5kcG9pbnQiKTt2YXIgeCRaPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIE5oMT1uZXcgZy5xTSgic3Vic2NyaWJlQnV0dG9uUmVuZGVyZXIiKTt2YXIgTHUxPW5ldyBnLnFNKCJzdWJzY3JpYmVFbmRwb2ludCIpO3ZhciBlbmk9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgZ1hVPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIFhSUz1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBxTlo9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgR2lNPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIHRHdD1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciAkJDI9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgck0xPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIHNkaT1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBOeTE9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgcFJ0PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIFZDMj1uZXcgZy5xTSgicXJDb2RlUmVuZGVyZXIiKTt2YXIgWU5aPXtkajoiTElWSU5HX1JPT01fQVBQX01PREVfVU5TUEVDSUZJRUQiLHdqOiJMSVZJTkdfUk9PTV9BUFBfTU9ERV9NQUlOIixBXzoiTElWSU5HX1JPT01fQVBQX01PREVfS0lEUyIsQ1E6IkxJVklOR19ST09NX0FQUF9NT0RFX01VU0lDIixvTzoiTElWSU5HX1JPT01fQVBQX01PREVfVU5QTFVHR0VEIixJTzoiTElWSU5HX1JPT01fQVBQX01PREVfR0FNSU5HIn07dmFyIEhNdD1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBmTzI9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgSk0yPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIGJXWj1uZXcgZy5xTSgiYXV0b3BsYXlTd2l0Y2hCdXR0b25SZW5kZXJlciIpO3ZhciB2cXQ9bmV3IGcucU0oImRlc2t0b3BPdmVybGF5Q29uZmlnUmVuZGVyZXIiKTt2YXIgYzNoPW5ldyBnLnFNKCJlbmdhZ2VtZW50UGFuZWxTZWN0aW9uTGlzdFJlbmRlcmVyIik7dmFyIFdHaT1uZXcgZy5xTSgicGxheWxpc3RQYW5lbFJlbmRlcmVyIik7dmFyIElPdz1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBTTng9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgQU14PWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIG0kUz1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBLdWo9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgT01qPWNsYXNzIGV4dGVuZHMgc0N7Sigpe3JldHVybltdfX07dmFyIFA4dz1jbGFzcyBleHRlbmRzIHNDe0ooKXtyZXR1cm5bXX19O3ZhciBaTWo9Y2xhc3MgZXh0ZW5kcyBzQ3tKKCl7cmV0dXJuW119fTt2YXIgcFlaPW5ldyBnLnFNKCJjaXBoZXIiKTt2YXIgU2xNPW5ldyBnLnFNKCJwbGF5ZXJWYXJzIik7dmFyIGR2aT1uZXcgZy5xTSgicGxheWVyVmFycyIpO3ZhciBVJFU9Zy5xaS53aW5kb3csSUU9VSRVPy55dD8uY29uZmlnX3x8VSRVPy55dGNmZz8uZGF0YV98fHt9O2cuR2IoInl0LmNvbmZpZ18iLElFKTt2YXIgS3c9W107dmFyIGR4aT0vXltcdy5dKiQvLG9LaT17cTohMCxzZWFyY2hfcXVlcnk6ITB9LHVRaD1TdHJpbmcoeUYpO2cuUkU9bmV3IGNsYXNze2NvbnN0cnVjdG9yKG4sVyl7dGhpcy5OPW47dGhpcy5KPVd9fSh3aW5kb3csd2luZG93LmRvY3VtZW50KTtnLkdiKCJ5dC5hZHNfLnNpZ25hbHNfLmdldEFkU2lnbmFsc1N0cmluZyIsZnVuY3Rpb24obil7cmV0dXJuIGcuRXQoZy5RRihuKSl9KTtnLlV3KCk7dmFyIFZGPSJYTUxIdHRwUmVxdWVzdCJpbiBnLnFpPygpPT5uZXcgWE1MSHR0cFJlcXVlc3Q6bnVsbDt2YXIgeU1TPSJhYnNvbHV0ZV9leHBlcmltZW50cyBjbGllbnRfZGV2X2RvbWFpbiBjbGllbnRfZGV2X2V4cGZsYWcgY2xpZW50X2Rldl9yZWdleF9tYXAgY2xpZW50X2Rldl9yb290X3VybCBjbGllbnRfcm9sbG91dF9vdmVycmlkZSBleHBmbGFnIGZvcmNlZENhcGFiaWxpdHkganNmZWF0IGpzbW9kZSBtb2RzIHRoZW1lIi5zcGxpdCgiICIpO1suLi55TVNdO3ZhciBMJD17QXV0aG9yaXphdGlvbjoiQVVUSE9SSVpBVElPTiIsIlgtR29vZy1FT00tVmlzaXRvci1JZCI6IkVPTV9WSVNJVE9SX0RBVEEiLCJYLUdvb2ctVmlzaXRvci1JZCI6IlNBTkRCT1hFRF9WSVNJVE9SX0lEIiwiWC1Zb3V0dWJlLURvbWFpbi1BZG1pbi1TdGF0ZSI6IkRPTUFJTl9BRE1JTl9TVEFURSIsIlgtWW91dHViZS1DaHJvbWUtQ29ubmVjdGVkIjoiQ0hST01FX0NPTk5FQ1RFRF9IRUFERVIiLCJYLVlvdVR1YmUtQ2xpZW50LU5hbWUiOiJJTk5FUlRVQkVfQ09OVEVYVF9DTElFTlRfTkFNRSIsIlgtWW91VHViZS1DbGllbnQtVmVyc2lvbiI6IklOTkVSVFVCRV9DT05URVhUX0NMSUVOVF9WRVJTSU9OIiwiWC1Zb3VUdWJlLURlbGVnYXRpb24tQ29udGV4dCI6IklOTkVSVFVCRV9DT05URVhUX1NFUklBTElaRURfREVMRUdBVElPTl9DT05URVhUIiwiWC1Zb3VUdWJlLURldmljZSI6IkRFVklDRSIsIlgtWW91dHViZS1JZGVudGl0eS1Ub2tlbiI6IklEX1RPS0VOIiwiWC1Zb3VUdWJlLVBhZ2UtQ0wiOiJQQUdFX0NMIiwKIlgtWW91VHViZS1QYWdlLUxhYmVsIjoiUEFHRV9CVUlMRF9MQUJFTCIsIlgtR29vZy1BdXRoVXNlciI6IlNFU1NJT05fSU5ERVgiLCJYLUdvb2ctUGFnZUlkIjoiREVMRUdBVEVEX1NFU1NJT05fSUQifSxWdWI9WyJhcHAiLCJkZWJ1Z2NzcyIsImRlYnVnanMiLCJleHBmbGFnIiwiZm9yY2VfYWRfcGFyYW1zIiwiZm9yY2VfYWRfZW5jcnlwdGVkIiwiZm9yY2VfdmlyYWxfYWRfcmVzcG9uc2VfcGFyYW1zIiwiZm9yY2VkX2V4cGVyaW1lbnRzIiwiaW5uZXJ0dWJlX3NuYXBzaG90cyIsImlubmVydHViZV9nb2xkZW5zIiwiaW50ZXJuYWxjb3VudHJ5Y29kZSIsImludGVybmFsaXBvdmVycmlkZSIsImFic29sdXRlX2V4cGVyaW1lbnRzIiwiY29uZGl0aW9uYWxfZXhwZXJpbWVudHMiLCJzYmIiLCJzcl9ibnNfYWRkcmVzcyIsLi4ueU1TXSxHUT0hMSxGeDE9eFQ7dmFyIGM0VTtnLiRUPWNsYXNzIGV4dGVuZHMgZy5UYntjb25zdHJ1Y3RvcihuLFcsRCl7c3VwZXIoYCR7bn0sIGVycm9yQ29kZT0ke1d9YCk7dGhpcy5lcnJvckNvZGU9Vzt0aGlzLnhocj1EO3RoaXMubmFtZT0iUHJvbWlzZUFqYXhFcnJvciJ9fTtjNFU9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy54aHI9bn19O3ZhciBOWD1jbGFzc3tjb25zdHJ1Y3RvcihuPW51bGwpe3RoaXMuTj1uO3RoaXMuVz0wO3RoaXMuSj1udWxsfXRoZW4obixXLEQpe3JldHVybiB0aGlzLk4/dGhpcy5OLnRoZW4obixXLEQpOnRoaXMuVz09PTEmJm4/KG49bi5jYWxsKEQsdGhpcy5KKSkmJnR5cGVvZiBuLnRoZW49PT0iZnVuY3Rpb24iP246Zy5IMChuKTp0aGlzLlc9PT0yJiZXPyhuPVcuY2FsbChELHRoaXMuSikpJiZ0eXBlb2Ygbi50aGVuPT09ImZ1bmN0aW9uIj9uOmcucCQobik6dGhpc31nZXRWYWx1ZSgpe3JldHVybiB0aGlzLkp9fTtOWC5wcm90b3R5cGUuJGdvb2dfVGhlbmFibGU9ITA7dmFyIGYkPSExO2cuTUw9dzh8fE1YO3ZhciBXMDE9L14oWzAtOVwuXSspOihbMC05XC5dKykkLzt2YXIgWGs9e307dmFyIEVYaD0wLHEwPWcuWmw/IndlYmtpdCI6Zy5lUz8ibW96IjpnLmtoPyJtcyI6cmM/Im8iOiIiLGlNeD1nLnJyKCJ5dERvbURvbUdldE5leHRJZCIpfHwoKCk9PisrRVhoKTsKZy5HYigieXREb21Eb21HZXROZXh0SWQiLGlNeCk7dmFyIHVaYj17c3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOjEsc3RvcFByb3BhZ2F0aW9uOjEscHJldmVudE1vdXNlRXZlbnQ6MSxwcmV2ZW50TWFuaXB1bGF0aW9uOjEscHJldmVudERlZmF1bHQ6MSxsYXllclg6MSxsYXllclk6MSxzY3JlZW5YOjEsc2NyZWVuWToxLHNjYWxlOjEscm90YXRpb246MSx3ZWJraXRNb3ZlbWVudFg6MSx3ZWJraXRNb3ZlbWVudFk6MX0sZnk9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy50eXBlPSIiO3RoaXMuc3RhdGU9dGhpcy5zb3VyY2U9dGhpcy5kYXRhPXRoaXMuY3VycmVudFRhcmdldD10aGlzLnJlbGF0ZWRUYXJnZXQ9dGhpcy50YXJnZXQ9bnVsbDt0aGlzLmNoYXJDb2RlPXRoaXMua2V5Q29kZT0wO3RoaXMubWV0YUtleT10aGlzLnNoaWZ0S2V5PXRoaXMuY3RybEtleT10aGlzLmFsdEtleT0hMTt0aGlzLnJvdGF0aW9uPXRoaXMuY2xpZW50WT10aGlzLmNsaWVudFg9MDt0aGlzLnNjYWxlPTE7dGhpcy5jaGFuZ2VkVG91Y2hlcz10aGlzLnRvdWNoZXM9Cm51bGw7dHJ5e2lmKG49bnx8d2luZG93LmV2ZW50KXt0aGlzLmV2ZW50PW47Zm9yKGxldCBiIGluIG4pYiBpbiB1WmJ8fCh0aGlzW2JdPW5bYl0pO3RoaXMuc2NhbGU9bi5zY2FsZTt0aGlzLnJvdGF0aW9uPW4ucm90YXRpb247dmFyIFc9bi50YXJnZXR8fG4uc3JjRWxlbWVudDtXJiZXLm5vZGVUeXBlPT0zJiYoVz1XLnBhcmVudE5vZGUpO3RoaXMudGFyZ2V0PVc7dmFyIEQ9bi5yZWxhdGVkVGFyZ2V0O2lmKEQpdHJ5e0Q9RC5ub2RlTmFtZT9EOm51bGx9Y2F0Y2goYil7RD1udWxsfWVsc2UgdGhpcy50eXBlPT0ibW91c2VvdmVyIj9EPW4uZnJvbUVsZW1lbnQ6dGhpcy50eXBlPT0ibW91c2VvdXQiJiYoRD1uLnRvRWxlbWVudCk7dGhpcy5yZWxhdGVkVGFyZ2V0PUQ7dGhpcy5jbGllbnRYPW4uY2xpZW50WCE9dm9pZCAwP24uY2xpZW50WDpuLnBhZ2VYO3RoaXMuY2xpZW50WT1uLmNsaWVudFkhPXZvaWQgMD9uLmNsaWVudFk6bi5wYWdlWTt0aGlzLmtleUNvZGU9bi5rZXlDb2RlP24ua2V5Q29kZToKbi53aGljaDt0aGlzLmNoYXJDb2RlPW4uY2hhckNvZGV8fCh0aGlzLnR5cGU9PSJrZXlwcmVzcyI/dGhpcy5rZXlDb2RlOjApO3RoaXMuYWx0S2V5PW4uYWx0S2V5O3RoaXMuY3RybEtleT1uLmN0cmxLZXk7dGhpcy5zaGlmdEtleT1uLnNoaWZ0S2V5O3RoaXMubWV0YUtleT1uLm1ldGFLZXk7dGhpcy5OPW4ucGFnZVg7dGhpcy5KPW4ucGFnZVl9fWNhdGNoKGIpe319cHJldmVudERlZmF1bHQoKXt0aGlzLmV2ZW50JiYodGhpcy5ldmVudC5yZXR1cm5WYWx1ZT0hMSx0aGlzLmV2ZW50LnByZXZlbnREZWZhdWx0JiZ0aGlzLmV2ZW50LnByZXZlbnREZWZhdWx0KCkpfXN0b3BQcm9wYWdhdGlvbigpe3RoaXMuZXZlbnQmJih0aGlzLmV2ZW50LmNhbmNlbEJ1YmJsZT0hMCx0aGlzLmV2ZW50LnN0b3BQcm9wYWdhdGlvbiYmdGhpcy5ldmVudC5zdG9wUHJvcGFnYXRpb24oKSl9c3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl7dGhpcy5ldmVudCYmKHRoaXMuZXZlbnQuY2FuY2VsQnViYmxlPSEwLAp0aGlzLmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiYmdGhpcy5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSl9fTtnLllSPWcucWkueXRFdmVudHNFdmVudHNMaXN0ZW5lcnN8fHt9O2cuR2IoInl0RXZlbnRzRXZlbnRzTGlzdGVuZXJzIixnLllSKTt2YXIgSEI9Zy5xaS55dEV2ZW50c0V2ZW50c0NvdW50ZXJ8fHtjb3VudDowfTtnLkdiKCJ5dEV2ZW50c0V2ZW50c0NvdW50ZXIiLEhCKTt2YXIgb1hoPWcud0QoZnVuY3Rpb24oKXt2YXIgbj0hMTt0cnl7bGV0IFc9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7bj0hMH19KTsKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsVyl9Y2F0Y2goVyl7fXJldHVybiBufSksSk89Zy53RChmdW5jdGlvbigpe3ZhciBuPSExOwp0cnl7bGV0IFc9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJjYXB0dXJlIix7Z2V0OmZ1bmN0aW9uKCl7bj0hMH19KTsKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsVyl9Y2F0Y2goVyl7fXJldHVybiBufSk7dmFyIGZqO2ZqPXdpbmRvdztnLlI9ZmoueXRjc2kmJmZqLnl0Y3NpLm5vdz9mai55dGNzaS5ub3c6ZmoucGVyZm9ybWFuY2UmJmZqLnBlcmZvcm1hbmNlLnRpbWluZyYmZmoucGVyZm9ybWFuY2Uubm93JiZmai5wZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0PygpPT5mai5wZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0K2ZqLnBlcmZvcm1hbmNlLm5vdygpOigpPT4obmV3IERhdGUpLmdldFRpbWUoKTtnLml4KG1ZLGcuRk0pO21ZLnByb3RvdHlwZS5EPWZ1bmN0aW9uKG4pe24uTj09PXZvaWQgMCYmcHkobik7dmFyIFc9bi5OO24uSj09PXZvaWQgMCYmcHkobik7dGhpcy5OPW5ldyBnLk1ZKFcsbi5KKX07Cm1ZLnByb3RvdHlwZS5FdT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk58fG5ldyBnLk1ZfTsKbVkucHJvdG90eXBlLk89ZnVuY3Rpb24oKXtpZih0aGlzLk4pe3ZhciBuPSgwLGcuUikoKTtpZih0aGlzLlghPTApe3ZhciBXPXRoaXMuVixEPXRoaXMuTixiPVcueC1ELng7Vz1XLnktRC55O2I9TWF0aC5zcXJ0KGIqYitXKlcpLyhuLXRoaXMuWCk7dGhpcy5KW3RoaXMuV109TWF0aC5hYnMoKGItdGhpcy5qKS90aGlzLmopPi41PzE6MDtXPTA7Zm9yKEQ9MDtEPDQ7RCsrKVcrPXRoaXMuSltEXXx8MDtXPj0zJiZ0aGlzLksoKTt0aGlzLmo9Yn10aGlzLlg9bjt0aGlzLlY9dGhpcy5OO3RoaXMuVz0odGhpcy5XKzEpJTR9fTsKbVkucHJvdG90eXBlLm1BPWZ1bmN0aW9uKCl7RHIodGhpcy5ZKTtnLlNfKHRoaXMuY0opfTtnLkpMPWNsYXNzIGV4dGVuZHMgZy5GTXtjb25zdHJ1Y3RvcihuKXtzdXBlcigpO3RoaXMuVz1bXTt0aGlzLks9bnx8dGhpc31OTihuLFcsRCxiLHYpe0Q9UFYoKDAsZy5LdCkoRCxifHx0aGlzLkspKTtEPXt0YXJnZXQ6bixuYW1lOlcsY2FsbGJhY2s6RH07dmFyIGs7diYmb1hoKCkmJihrPXtwYXNzaXZlOiEwfSk7bi5hZGRFdmVudExpc3RlbmVyKFcsRC5jYWxsYmFjayxrKTt0aGlzLlcucHVzaChEKTtyZXR1cm4gRH13SChuKXtmb3IobGV0IFc9MDtXPHRoaXMuVy5sZW5ndGg7VysrKWlmKHRoaXMuV1tXXT09bil7dGhpcy5XLnNwbGljZShXLDEpO24udGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIobi5uYW1lLG4uY2FsbGJhY2spO2JyZWFrfX1KKG4pe2Zvcig7dGhpcy5XLmxlbmd0aDspe2xldCBXPXRoaXMuVy5wb3AoKSxEO24mJm9YaCgpJiYoRD17cGFzc2l2ZTohMH0pO1cudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoVy5uYW1lLFcuY2FsbGJhY2ssRCl9fW1BKCl7dGhpcy5KKCk7CnN1cGVyLm1BKCl9fTt2YXIgd1laPVsiYXR0L2dldCJdLGRRWj1bImVtYmVkZGVkX3BsYXllciJdLGQkUz1bInNoYXJlL2dldF9zaGFyZV9wYW5lbCJdLHpudD1bInNoYXJlL2dldF93ZWJfcGxheWVyX3NoYXJlX3BhbmVsIl0sbE9NPVsiZmVlZGJhY2siXSxUeXc9WyJub3RpZmljYXRpb24vbW9kaWZ5X2NoYW5uZWxfcHJlZmVyZW5jZSJdLHF5aj1bInBsYXllciJdLGpkeD1bImJyb3dzZS9lZGl0X3BsYXlsaXN0Il0sc3YyPVsicmVlbC9yZWVsX2l0ZW1fd2F0Y2giXSxONGg9WyJuYXZpZ2F0aW9uL3Jlc29sdmVfdXJsIl0sQ0diPVsiYWNjb3VudC9zZXRfc2V0dGluZyJdLEM4Yj1bInN1YnNjcmlwdGlvbi9zdWJzY3JpYmUiXSxCeWk9WyJzdWJzY3JpcHRpb24vdW5zdWJzY3JpYmUiXSwkMUM9WyJuZXh0IiwidW5wbHVnZ2VkL3dhdGNoX25leHQiXTt2YXIgT1A9e0JwOmcud0QoZnVuY3Rpb24oKXt0cnl7bGV0IFc9bmV3IFdTO3ZhciBuPVcuaXNBdmFpbGFibGUoKT9XOm51bGx9Y2F0Y2goVyl7cmV0dXJuIG51bGx9cmV0dXJuIG4/bmV3IFZLKG4pOm51bGx9KSwKcWI6Zy53RChmdW5jdGlvbigpe3ZhciBuPW5ldyBEUTtyZXR1cm4gbi5pc0F2YWlsYWJsZSgpP25ldyBWSyhuKTpudWxsfSl9O2cuSVY9d2luZG93Lnl0JiZ3aW5kb3cueXQubXNnc198fHdpbmRvdy55dGNmZyYmd2luZG93Lnl0Y2ZnLm1zZ3N8fHt9O2cuR2IoInl0Lm1zZ3NfIixnLklWKTt2YXIgV2I9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5KPXZvaWQgMDt0aGlzLk49ITE7bi5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmVpbnN0YWxscHJvbXB0IixXPT57Vy5wcmV2ZW50RGVmYXVsdCgpO3RoaXMuSj1XfSk7Cm4uYWRkRXZlbnRMaXN0ZW5lcigiYXBwaW5zdGFsbGVkIiwoKT0+e3RoaXMuTj0hMH0se29uY2U6ITB9KX19O3ZhciBFUD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc0I9ITB9YWoobixXKXtuPXt9O3ZhciBEPVtdOyJVU0VSX1NFU1NJT05fSUQiaW4gSUUmJkQucHVzaCh7a2V5OiJ1Iix2YWx1ZTpnLkFyKCJVU0VSX1NFU1NJT05fSUQiKX0pO2lmKEQ9Qk8oRCkpbi5BdXRob3JpemF0aW9uPUQsRD1XPVc/LnNlc3Npb25JbmRleCxEPT09dm9pZCAwJiYoRD1OdW1iZXIoZy5BcigiU0VTU0lPTl9JTkRFWCIsMCkpLEQ9aXNOYU4oRCk/MDpEKSxnLmwoInZvaWNlX3NlYXJjaF9hdXRoX2hlYWRlcl9yZW1vdmFsIil8fChuWyJYLUdvb2ctQXV0aFVzZXIiXT1ELnRvU3RyaW5nKCkpLCJJTk5FUlRVQkVfSE9TVF9PVkVSUklERSJpbiBJRXx8KG5bIlgtT3JpZ2luIl09d2luZG93LmxvY2F0aW9uLm9yaWdpbiksVz09PXZvaWQgMCYmIkRFTEVHQVRFRF9TRVNTSU9OX0lEImluIElFJiYoblsiWC1Hb29nLVBhZ2VJZCJdPWcuQXIoIkRFTEVHQVRFRF9TRVNTSU9OX0lEIikpO3JldHVybiBufX07dmFyIHU5PXtpZGVudGl0eVR5cGU6IlVOQVVUSEVOVElDQVRFRF9JREVOVElUWV9UWVBFX1VOS05PV04ifTt2YXIgbE89Zy5ycigieXRnbG9iYWwucHJlZnNVc2VyUHJlZnNQcmVmc18iKXx8e307Zy5HYigieXRnbG9iYWwucHJlZnNVc2VyUHJlZnNQcmVmc18iLGxPKTsKdmFyIHgzYj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuTj1nLkFyKCJBTFRfUFJFRl9DT09LSUVfTkFNRSIsIlBSRUYiKTt0aGlzLko9Zy5BcigiQUxUX1BSRUZfQ09PS0lFX0RPTUFJTiIsInlvdXR1YmUuY29tIik7dmFyIG49Zy5TZCh0aGlzLk4pO24mJnRoaXMucGFyc2Uobil9Z2V0KG4sVyl7ejEobik7ZEoobik7bj1sT1tuXSE9PXZvaWQgMD9sT1tuXS50b1N0cmluZygpOm51bGw7cmV0dXJuIG4hPW51bGw/bjpXP1c6IiJ9c2V0KG4sVyl7ejEobik7ZEoobik7aWYoVz09bnVsbCl0aHJvdyBFcnJvcigiRXhwZWN0ZWROb3ROdWxsIik7bE9bbl09Vy50b1N0cmluZygpfVFRKG4pe3JldHVybiEhKChUMShgZiR7TWF0aC5mbG9vcihuLzMxKSsxfWApfHwwKSYxPDxuJTMxKX1yZW1vdmUobil7ejEobik7ZEoobik7ZGVsZXRlIGxPW25dfXNhdmUoKXtJSyh0aGlzLk4sdGhpcy5kdW1wKCksNjMwNzJFMyx0aGlzLkosITApfWNsZWFyKCl7Zy50SyhsTyl9ZHVtcCgpe3ZhciBuPVtdO2ZvcihsZXQgVyBpbiBsTylsTy5oYXNPd25Qcm9wZXJ0eShXKSYmCm4ucHVzaChgJHtXfT1gK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcobE9bV10pKSk7cmV0dXJuIG4uam9pbigiJiIpfXBhcnNlKG4pe249ZGVjb2RlVVJJQ29tcG9uZW50KG4pLnNwbGl0KCImIik7Zm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKyspe3ZhciBXPW5bRF0uc3BsaXQoIj0iKTtsZXQgYj1XWzBdOyhXPVdbMV0pJiYobE9bYl09Vy50b1N0cmluZygpKX19fSx1Tzt2YXIgQ3k9e2JsdWV0b290aDoiQ09OTl9ESVNDTyIsY2VsbHVsYXI6IkNPTk5fQ0VMTFVMQVJfVU5LTk9XTiIsZXRoZXJuZXQ6IkNPTk5fV0lGSSIsbm9uZToiQ09OTl9OT05FIix3aWZpOiJDT05OX1dJRkkiLHdpbWF4OiJDT05OX0NFTExVTEFSXzRHIixvdGhlcjoiQ09OTl9VTktOT1dOIix1bmtub3duOiJDT05OX1VOS05PV04iLCJzbG93LTJnIjoiQ09OTl9DRUxMVUxBUl8yRyIsIjJnIjoiQ09OTl9DRUxMVUxBUl8yRyIsIjNnIjoiQ09OTl9DRUxMVUxBUl8zRyIsIjRnIjoiQ09OTl9DRUxMVUxBUl80RyJ9LHpxdz17Q09OTl9ERUZBVUxUOjAsQ09OTl9VTktOT1dOOjEsQ09OTl9OT05FOjIsQ09OTl9XSUZJOjMsQ09OTl9DRUxMVUxBUl8yRzo0LENPTk5fQ0VMTFVMQVJfM0c6NSxDT05OX0NFTExVTEFSXzRHOjYsQ09OTl9DRUxMVUxBUl9VTktOT1dOOjcsQ09OTl9ESVNDTzo4LENPTk5fQ0VMTFVMQVJfNUc6OSxDT05OX1dJRklfTUVURVJFRDoxMCxDT05OX0NFTExVTEFSXzVHX1NBOjExLApDT05OX0NFTExVTEFSXzVHX05TQToxMixDT05OX1dJUkVEOjMwLENPTk5fSU5WQUxJRDozMX0sbEJyPXtFRkZFQ1RJVkVfQ09OTkVDVElPTl9UWVBFX1VOS05PV046MCxFRkZFQ1RJVkVfQ09OTkVDVElPTl9UWVBFX09GRkxJTkU6MSxFRkZFQ1RJVkVfQ09OTkVDVElPTl9UWVBFX1NMT1dfMkc6MixFRkZFQ1RJVkVfQ09OTkVDVElPTl9UWVBFXzJHOjMsRUZGRUNUSVZFX0NPTk5FQ1RJT05fVFlQRV8zRzo0LEVGRkVDVElWRV9DT05ORUNUSU9OX1RZUEVfNEc6NX0sRms9eyJzbG93LTJnIjoiRUZGRUNUSVZFX0NPTk5FQ1RJT05fVFlQRV9TTE9XXzJHIiwiMmciOiJFRkZFQ1RJVkVfQ09OTkVDVElPTl9UWVBFXzJHIiwiM2ciOiJFRkZFQ1RJVkVfQ09OTkVDVElPTl9UWVBFXzNHIiwiNGciOiJFRkZFQ1RJVkVfQ09OTkVDVElPTl9UWVBFXzRHIn07Zy5ReD1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKG4sLi4uVyl7c3VwZXIobik7dGhpcy5hcmdzPVsuLi5XXTtPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxuZXcudGFyZ2V0LnByb3RvdHlwZSl9fTt2YXIgRnVNPWNsYXNze0xTKG4sVyl7cmV0dXJuIGcuVngoMCxuLDEsVyl9fTtnLnJyKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UudGltZXJJZE1hcF8iKTt2YXIgV049Y2xhc3MgZXh0ZW5kcyBGdU17c08obil7aWYobj09PXZvaWQgMHx8IU51bWJlci5pc05hTihOdW1iZXIobikpKXt2YXIgVz1nLnJyKCJ5dC5zY2hlZHVsZXIuaW5zdGFuY2UuY2FuY2VsSm9iIik7Vz9XKG4pOndpbmRvdy5jbGVhclRpbWVvdXQobil9fXN0YXJ0KCl7dmFyIG49Zy5ycigieXQuc2NoZWR1bGVyLmluc3RhbmNlLnN0YXJ0Iik7biYmbigpfXBhdXNlKCl7dmFyIG49Zy5ycigieXQuc2NoZWR1bGVyLmluc3RhbmNlLnBhdXNlIik7biYmbigpfX0sdGE9Zy5EeSgpO3ZhciB0ST1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49KG49Zy52UyhuKSk/bmV3IFFLKG4pOm51bGw7dGhpcy5XPWRvY3VtZW50LmRvbWFpbnx8d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lfUooKXtyZXR1cm4hIXRoaXMuTn1zZXQobixXLEQsYil7RD1EfHwzMTEwNEUzO3RoaXMucmVtb3ZlKG4pO2lmKHRoaXMuSigpKXRyeXt0aGlzLk4uc2V0KG4sVyxEYXRlLm5vdygpK0QqMUUzKTtyZXR1cm59Y2F0Y2goayl7fXZhciB2PSIiO2lmKGIpdHJ5e3Y9ZXNjYXBlKChuZXcgbGUpLmJZKFcpKX1jYXRjaChrKXtyZXR1cm59ZWxzZSB2PWVzY2FwZShXKTtJSyhuLHYsRCx0aGlzLlcpfWdldChuLFcpe3ZhciBEPXZvaWQgMCxiPSF0aGlzLkooKTtpZighYil0cnl7RD10aGlzLk4uZ2V0KG4pfWNhdGNoKHYpe2I9ITB9aWYoYiYmKEQ9Zy5TZChuKSkmJihEPXVuZXNjYXBlKEQpLFcpKXRyeXtEPUpTT04ucGFyc2UoRCl9Y2F0Y2godil7dGhpcy5yZW1vdmUobiksRD12b2lkIDB9cmV0dXJuIER9cmVtb3ZlKG4pe3RoaXMuSigpJiYKdGhpcy5OLnJlbW92ZShuKTtBeShuLCIvIix0aGlzLlcpfX07dmFyIHZOPSgoKT0+e3ZhciBuO3JldHVybigpPT57bnx8KG49bmV3IHRJKCJ5dGlkYiIpKTtyZXR1cm4gbn19KSgpO3ZhciB4dT1bXSxoYz0hMTt2YXIgd1JNPXtBVVRIX0lOVkFMSUQ6Ik5vIHVzZXIgaWRlbnRpZmllciBzcGVjaWZpZWQuIixFWFBMSUNJVF9BQk9SVDoiVHJhbnNhY3Rpb24gd2FzIGV4cGxpY2l0bHkgYWJvcnRlZC4iLElEQl9OT1RfU1VQUE9SVEVEOiJJbmRleGVkREIgaXMgbm90IHN1cHBvcnRlZC4iLE1JU1NJTkdfSU5ERVg6IkluZGV4IG5vdCBjcmVhdGVkLiIsTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiJPYmplY3Qgc3RvcmVzIG5vdCBjcmVhdGVkLiIsREJfREVMRVRFRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVM6IkRhdGFiYXNlIGlzIGRlbGV0ZWQgYmVjYXVzZSBleHBlY3RlZCBvYmplY3Qgc3RvcmVzIHdlcmUgbm90IGNyZWF0ZWQuIixEQl9SRU9QRU5FRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVM6IkRhdGFiYXNlIGlzIHJlb3BlbmVkIGJlY2F1c2UgZXhwZWN0ZWQgb2JqZWN0IHN0b3JlcyB3ZXJlIG5vdCBjcmVhdGVkLiIsVU5LTk9XTl9BQk9SVDoiVHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQgZm9yIHVua25vd24gcmVhc29ucy4iLApRVU9UQV9FWENFRURFRDoiVGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gZXhjZWVkZWQgaXRzIHF1b3RhIGxpbWl0YXRpb25zLiIsUVVPVEFfTUFZQkVfRVhDRUVERUQ6IlRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIG1heSBoYXZlIGZhaWxlZCBiZWNhdXNlIG9mIGV4Y2VlZGluZyBxdW90YSBsaW1pdGF0aW9ucy4iLEVYRUNVVEVfVFJBTlNBQ1RJT05fT05fQ0xPU0VEX0RCOiJDYW4ndCBzdGFydCBhIHRyYW5zYWN0aW9uIG9uIGEgY2xvc2VkIGRhdGFiYXNlIixJTkNPTVBBVElCTEVfREJfVkVSU0lPTjoiVGhlIGJpbmFyeSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgZGF0YWJhc2UgdmVyc2lvbiJ9LE1HUz17QVVUSF9JTlZBTElEOiJFUlJPUiIsRVhFQ1VURV9UUkFOU0FDVElPTl9PTl9DTE9TRURfREI6IldBUk5JTkciLEVYUExJQ0lUX0FCT1JUOiJJR05PUkVEIixJREJfTk9UX1NVUFBPUlRFRDoiRVJST1IiLE1JU1NJTkdfSU5ERVg6IldBUk5JTkciLE1JU1NJTkdfT0JKRUNUX1NUT1JFUzoiRVJST1IiLApEQl9ERUxFVEVEX0JZX01JU1NJTkdfT0JKRUNUX1NUT1JFUzoiV0FSTklORyIsREJfUkVPUEVORURfQllfTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiJXQVJOSU5HIixRVU9UQV9FWENFRURFRDoiV0FSTklORyIsUVVPVEFfTUFZQkVfRVhDRUVERUQ6IldBUk5JTkciLFVOS05PV05fQUJPUlQ6IldBUk5JTkciLElOQ09NUEFUSUJMRV9EQl9WRVJTSU9OOiJXQVJOSU5HIn0sUm5pPXtBVVRIX0lOVkFMSUQ6ITEsRVhFQ1VURV9UUkFOU0FDVElPTl9PTl9DTE9TRURfREI6ITEsRVhQTElDSVRfQUJPUlQ6ITEsSURCX05PVF9TVVBQT1JURUQ6ITEsTUlTU0lOR19JTkRFWDohMSxNSVNTSU5HX09CSkVDVF9TVE9SRVM6ITEsREJfREVMRVRFRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVM6ITEsREJfUkVPUEVORURfQllfTUlTU0lOR19PQkpFQ1RfU1RPUkVTOiExLFFVT1RBX0VYQ0VFREVEOiExLFFVT1RBX01BWUJFX0VYQ0VFREVEOiEwLFVOS05PV05fQUJPUlQ6ITAsSU5DT01QQVRJQkxFX0RCX1ZFUlNJT046ITF9LApxTD1jbGFzcyBleHRlbmRzIGcuUXh7Y29uc3RydWN0b3IobixXPXt9LEQ9d1JNW25dLGI9TUdTW25dLHY9Um5pW25dKXtzdXBlcihELHtuYW1lOiJZdElkYktub3duRXJyb3IiLGlzU3c6c2VsZi5kb2N1bWVudD09PXZvaWQgMCxpc0lmcmFtZTpzZWxmIT09c2VsZi50b3AsdHlwZTpuLC4uLld9KTt0aGlzLnR5cGU9bjt0aGlzLm1lc3NhZ2U9RDt0aGlzLmxldmVsPWI7dGhpcy5OPXY7T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMscUwucHJvdG90eXBlKX19LFFkUz1jbGFzcyBleHRlbmRzIHFMe2NvbnN0cnVjdG9yKG4sVyl7c3VwZXIoIk1JU1NJTkdfT0JKRUNUX1NUT1JFUyIse2V4cGVjdGVkT2JqZWN0U3RvcmVzOlcsZm91bmRPYmplY3RTdG9yZXM6bn0sd1JNLk1JU1NJTkdfT0JKRUNUX1NUT1JFUyk7T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsUWRTLnByb3RvdHlwZSl9fSx0Yz1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKG4sVyl7c3VwZXIoKTt0aGlzLmluZGV4PQpuO3RoaXMub2JqZWN0U3RvcmU9VztPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyx0Yy5wcm90b3R5cGUpfX0sTDBpPVsiVGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24gaXMgY2xvc2luZyIsIkNhbid0IHN0YXJ0IGEgdHJhbnNhY3Rpb24gb24gYSBjbG9zZWQgZGF0YWJhc2UiLCJBIG11dGF0aW9uIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIG9uIGEgZGF0YWJhc2UgdGhhdCBkaWQgbm90IGFsbG93IG11dGF0aW9ucyJdO3ZhciBmRj1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn19LHNSPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuc3RhdGU9e3N0YXR1czoiUEVORElORyJ9O3RoaXMuTj1bXTt0aGlzLko9W107bj1uLk47dmFyIFc9Yj0+e2lmKHRoaXMuc3RhdGUuc3RhdHVzPT09IlBFTkRJTkciKXt0aGlzLnN0YXRlPXtzdGF0dXM6IkZVTEZJTExFRCIsdmFsdWU6Yn07Zm9yKGxldCB2IG9mIHRoaXMuTil2KCl9fSxEPWI9PntpZih0aGlzLnN0YXRlLnN0YXR1cz09PSJQRU5ESU5HIil7dGhpcy5zdGF0ZT17c3RhdHVzOiJSRUpFQ1RFRCIsCnJlYXNvbjpifTtmb3IobGV0IHYgb2YgdGhpcy5KKXYoKX19Owp0cnl7bihXLEQpfWNhdGNoKGIpe0QoYil9fXN0YXRpYyBhbGwobil7cmV0dXJuIG5ldyBzUihuZXcgZkYoKFcsRCk9Pnt2YXIgYj1bXSx2PW4ubGVuZ3RoO3Y9PT0wJiZXKGIpO2ZvcihsZXQgaz0wO2s8bi5sZW5ndGg7KytrKXNSLnJlc29sdmUobltrXSkudGhlbihoPT57YltrXT1oO3YtLTt2PT09MCYmVyhiKX0pLmNhdGNoKGg9PntEKGgpfSl9KSl9c3RhdGljIHJlc29sdmUobil7cmV0dXJuIG5ldyBzUihuZXcgZkYoKFcsRCk9PntuIGluc3RhbmNlb2Ygc1I/bi50aGVuKFcsRCk6VyhuKX0pKX1zdGF0aWMgcmVqZWN0KG4pe3JldHVybiBuZXcgc1IobmV3IGZGKChXLEQpPT57RChuKX0pKX10aGVuKG4sVyl7dmFyIEQ9bj8/Z1VyLGI9Vz8/ZXExOwpyZXR1cm4gbmV3IHNSKG5ldyBmRigodixrKT0+e3RoaXMuc3RhdGUuc3RhdHVzPT09IlBFTkRJTkciPyh0aGlzLk4ucHVzaCgoKT0+e3BGKHRoaXMsdGhpcyxELHYsayl9KSx0aGlzLkoucHVzaCgoKT0+e1l1KHRoaXMsdGhpcyxiLHYsayl9KSk6dGhpcy5zdGF0ZS5zdGF0dXM9PT0iRlVMRklMTEVEIj9wRih0aGlzLHRoaXMsRCx2LGspOnRoaXMuc3RhdGUuc3RhdHVzPT09IlJFSkVDVEVEIiYmWXUodGhpcyx0aGlzLGIsdixrKX0pKX1jYXRjaChuKXtyZXR1cm4gdGhpcy50aGVuKHZvaWQgMCxuKX19O3ZhciBxXzI9Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLnJlcXVlc3Q9bjt0aGlzLmN1cnNvcj1XfX07dmFyIFlfcj1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuTj1uO3RoaXMub3B0aW9ucz1XO3RoaXMudHJhbnNhY3Rpb25Db3VudD0wO3RoaXMuVz1NYXRoLnJvdW5kKCgwLGcuUikoKSk7dGhpcy5KPSExfWFkZChuLFcsRCl7cmV0dXJuIE9SKHRoaXMsW25dLHttb2RlOiJyZWFkd3JpdGUiLEdROiEwLGNvbW1pdDpBYygpfSxiPT5iLm9iamVjdFN0b3JlKG4pLmFkZChXLEQpKX1jbGVhcihuKXtyZXR1cm4gT1IodGhpcyxbbl0se21vZGU6InJlYWR3cml0ZSIsCkdROiEwfSxXPT5XLm9iamVjdFN0b3JlKG4pLmNsZWFyKCkpfWNsb3NlKCl7dGhpcy5OLmNsb3NlKCk7CnRoaXMub3B0aW9ucz8uY2xvc2VkJiZ0aGlzLm9wdGlvbnMuY2xvc2VkKCl9Y291bnQobixXKXtyZXR1cm4gT1IodGhpcyxbbl0se21vZGU6InJlYWRvbmx5IixHUTohMCxjb21taXQ6QWMoKX0sRD0+RC5vYmplY3RTdG9yZShuKS5jb3VudChXKSl9ZGVsZXRlKG4sVyl7cmV0dXJuIE9SKHRoaXMsW25dLHttb2RlOiJyZWFkd3JpdGUiLApHUTohMCxjb21taXQ6QWMoKSYmIShXIGluc3RhbmNlb2YgSURCS2V5UmFuZ2UpfSxEPT5ELm9iamVjdFN0b3JlKG4pLmRlbGV0ZShXKSl9Z2V0KG4sVyl7cmV0dXJuIE9SKHRoaXMsW25dLHttb2RlOiJyZWFkb25seSIsCkdROiEwLGNvbW1pdDpBYygpfSxEPT5ELm9iamVjdFN0b3JlKG4pLmdldChXKSl9Z2V0QWxsKG4sVyxEKXtyZXR1cm4gT1IodGhpcyxbbl0se21vZGU6InJlYWRvbmx5IiwKR1E6ITB9LGI9PmIub2JqZWN0U3RvcmUobikuZ2V0QWxsKFcsRCkpfXB1dChuLFcsRCl7cmV0dXJuIE9SKHRoaXMsW25dLHttb2RlOiJyZWFkd3JpdGUiLApHUTohMCxjb21taXQ6QWMoKX0sYj0+Yi5vYmplY3RTdG9yZShuKS5wdXQoVyxEKSl9b2JqZWN0U3RvcmVOYW1lcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuTi5vYmplY3RTdG9yZU5hbWVzKX1nZXROYW1lKCl7cmV0dXJuIHRoaXMuTi5uYW1lfX0sUE49Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW59YWRkKG4sVyl7cmV0dXJuIEpjKHRoaXMuTi5hZGQobixXKSl9YXV0b0luY3JlbWVudCgpe3JldHVybiB0aGlzLk4uYXV0b0luY3JlbWVudH1jbGVhcigpe3JldHVybiBKYyh0aGlzLk4uY2xlYXIoKSkudGhlbigoKT0+e30pfWNvdW50KG4pe3JldHVybiBKYyh0aGlzLk4uY291bnQobikpfWRlbGV0ZShuKXtyZXR1cm4gbiBpbnN0YW5jZW9mIElEQktleVJhbmdlP3RYVSh0aGlzLG4pOkpjKHRoaXMuTi5kZWxldGUobikpfWdldChuKXtyZXR1cm4gSmModGhpcy5OLmdldChuKSl9Z2V0QWxsKG4sVyl7cmV0dXJuImdldEFsbCJpbiBJREJPYmplY3RTdG9yZS5wcm90b3R5cGU/SmModGhpcy5OLmdldEFsbChuLApXKSk6JDN4KHRoaXMsbixXKX1pbmRleChuKXt0cnl7cmV0dXJuIG5ldyBWR2godGhpcy5OLmluZGV4KG4pKX1jYXRjaChXKXtpZihXIGluc3RhbmNlb2YgRXJyb3ImJlcubmFtZT09PSJOb3RGb3VuZEVycm9yIil0aHJvdyBuZXcgdGMobix0aGlzLk4ubmFtZSk7CnRocm93IFc7fX1nZXROYW1lKCl7cmV0dXJuIHRoaXMuTi5uYW1lfWtleVBhdGgoKXtyZXR1cm4gdGhpcy5OLmtleVBhdGh9cHV0KG4sVyl7cmV0dXJuIEpjKHRoaXMuTi5wdXQobixXKSl9fSxtWD1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bjt0aGlzLko9bmV3IE1hcDt0aGlzLmFib3J0ZWQ9ITE7dGhpcy5kb25lPW5ldyBQcm9taXNlKChXLEQpPT57dGhpcy5OLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIiwoKT0+e1coKX0pOwp0aGlzLk4uYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGI9PntiLmN1cnJlbnRUYXJnZXQ9PT1iLnRhcmdldCYmRCh0aGlzLk4uZXJyb3IpfSk7CnRoaXMuTi5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsKCk9Pnt2YXIgYj10aGlzLk4uZXJyb3I7aWYoYilEKGIpO2Vsc2UgaWYoIXRoaXMuYWJvcnRlZCl7Yj1xTDt2YXIgdj10aGlzLk4ub2JqZWN0U3RvcmVOYW1lcztsZXQgaz1bXTtmb3IobGV0IGg9MDtoPHYubGVuZ3RoO2grKyl7bGV0IHg9di5pdGVtKGgpO2lmKHg9PT1udWxsKXRocm93IEVycm9yKCJJbnZhcmlhbnQ6IGl0ZW0gaW4gRE9NU3RyaW5nTGlzdCBpcyBudWxsIik7ay5wdXNoKHgpfWI9bmV3IGIoIlVOS05PV05fQUJPUlQiLHtvYmplY3RTdG9yZU5hbWVzOmsuam9pbigpLGRiTmFtZTp0aGlzLk4uZGIubmFtZSxtb2RlOnRoaXMuTi5tb2RlfSk7RChiKX19KX0pfWFib3J0KCl7dGhpcy5OLmFib3J0KCk7CnRoaXMuYWJvcnRlZD0hMDt0aHJvdyBuZXcgcUwoIkVYUExJQ0lUX0FCT1JUIik7fWNvbW1pdCgpe3RoaXMuYWJvcnRlZHx8dGhpcy5OLmNvbW1pdD8uKCl9b2JqZWN0U3RvcmUobil7bj10aGlzLk4ub2JqZWN0U3RvcmUobik7dmFyIFc9dGhpcy5KLmdldChuKTtXfHwoVz1uZXcgUE4obiksdGhpcy5KLnNldChuLFcpKTtyZXR1cm4gV319LFZHaD1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn1jb3VudChuKXtyZXR1cm4gSmModGhpcy5OLmNvdW50KG4pKX1kZWxldGUobil7cmV0dXJuIHpuKHRoaXMse3F1ZXJ5Om59LFc9PlcuZGVsZXRlKCkudGhlbigoKT0+b2coVykpKX1nZXQobil7cmV0dXJuIEpjKHRoaXMuTi5nZXQobikpfWdldEFsbChuLFcpe3JldHVybiJnZXRBbGwiaW4gSURCSW5kZXgucHJvdG90eXBlP0pjKHRoaXMuTi5nZXRBbGwobixXKSk6TlppKHRoaXMsbixXKX1rZXlQYXRoKCl7cmV0dXJuIHRoaXMuTi5rZXlQYXRofXVuaXF1ZSgpe3JldHVybiB0aGlzLk4udW5pcXVlfX0sCnA5eD1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMucmVxdWVzdD1uOwp0aGlzLmN1cnNvcj1XfWRlbGV0ZSgpe3JldHVybiBKYyh0aGlzLmN1cnNvci5kZWxldGUoKSkudGhlbigoKT0+e30pfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMuY3Vyc29yLnZhbHVlfXVwZGF0ZShuKXtyZXR1cm4gSmModGhpcy5jdXJzb3IudXBkYXRlKG4pKX19O3ZhciBjTTE9Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLm5hbWU9bjt0aGlzLm9wdGlvbnM9Vzt0aGlzLlc9ITA7dGhpcy5qPXRoaXMuWD0wfUoobixXLEQ9e30pe3JldHVybiBsUShuLFcsRCl9ZGVsZXRlKG49e30pe3JldHVybiBUbih0aGlzLm5hbWUsbil9b3Blbigpe2lmKCF0aGlzLlcpdGhyb3cgakYodGhpcyk7aWYodGhpcy5OKXJldHVybiB0aGlzLk47dmFyIG4sVz0oKT0+e3RoaXMuTj09PW4mJih0aGlzLk49dm9pZCAwKX0sRD17YmxvY2tpbmc6dj0+e3YuY2xvc2UoKX0sCmNsb3NlZDpXLEJ6OlcsdXBncmFkZTp0aGlzLm9wdGlvbnMudXBncmFkZX0sYj1hc3luYygpPT57dmFyIHY9RXJyb3IoKS5zdGFjaz8/IiI7dHJ5e2xldCB4PWF3YWl0IHRoaXMuSih0aGlzLm5hbWUsdGhpcy5vcHRpb25zLnZlcnNpb24sRCk7dmFyIGs9eCxoPXRoaXMub3B0aW9ucztsZXQgTD1bXTtmb3IobGV0IGUgb2YgT2JqZWN0LmtleXMoaC5LYykpe2xldCB7dng6RyxtUjpyPU51bWJlci5NQVhfVkFMVUV9PWguS2NbZV07IShrLk4udmVyc2lvbj49Ryl8fGsuTi52ZXJzaW9uPj1yfHxrLk4ub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyhlKXx8TC5wdXNoKGUpfWlmKEwubGVuZ3RoIT09MCl7bGV0IGU9T2JqZWN0LmtleXModGhpcy5vcHRpb25zLktjKSxHPXgub2JqZWN0U3RvcmVOYW1lcygpO2lmKHRoaXMuajx2MCgieXRpZGJfcmVvcGVuX2RiX3JldHJpZXMiLDApKXJldHVybiB0aGlzLmorKyx4LmNsb3NlKCksTEYobmV3IHFMKCJEQl9SRU9QRU5FRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVMiLAp7ZGJOYW1lOnRoaXMubmFtZSxleHBlY3RlZE9iamVjdFN0b3JlczplLGZvdW5kT2JqZWN0U3RvcmVzOkd9KSksYigpO2lmKHRoaXMuWDx2MCgieXRpZGJfcmVtYWtlX2RiX3JldHJpZXMiLDEpKXJldHVybiB0aGlzLlgrKyxhd2FpdCB0aGlzLmRlbGV0ZSgpLExGKG5ldyBxTCgiREJfREVMRVRFRF9CWV9NSVNTSU5HX09CSkVDVF9TVE9SRVMiLHtkYk5hbWU6dGhpcy5uYW1lLGV4cGVjdGVkT2JqZWN0U3RvcmVzOmUsZm91bmRPYmplY3RTdG9yZXM6R30pKSxiKCk7dGhyb3cgbmV3IFFkUyhHLGUpO31yZXR1cm4geH1jYXRjaCh4KXtpZih4IGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uP3gubmFtZT09PSJWZXJzaW9uRXJyb3IiOiJET01FcnJvciJpbiBzZWxmJiZ4IGluc3RhbmNlb2YgRE9NRXJyb3I/eC5uYW1lPT09IlZlcnNpb25FcnJvciI6eCBpbnN0YW5jZW9mIE9iamVjdCYmIm1lc3NhZ2UiaW4geCYmeC5tZXNzYWdlPT09IkFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gb3BlbiBhIGRhdGFiYXNlIHVzaW5nIGEgbG93ZXIgdmVyc2lvbiB0aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uLiIpe3Y9CmF3YWl0IHRoaXMuSih0aGlzLm5hbWUsdm9pZCAwLHsuLi5ELHVwZ3JhZGU6dm9pZCAwfSk7az12Lk4udmVyc2lvbjtpZih0aGlzLm9wdGlvbnMudmVyc2lvbiE9PXZvaWQgMCYmaz50aGlzLm9wdGlvbnMudmVyc2lvbisxKXRocm93IHYuY2xvc2UoKSx0aGlzLlc9ITEsakYodGhpcyxrKTtyZXR1cm4gdn1XKCk7eCBpbnN0YW5jZW9mIEVycm9yJiYhZy5sKCJ5dGlkYl9hc3luY19zdGFja19raWxsc3dpdGNoIikmJih4LnN0YWNrPWAke3guc3RhY2t9XG4ke3Yuc3Vic3RyaW5nKHYuaW5kZXhPZigiXG4iKSsxKX1gKTt0aHJvdyAkdSh4LHRoaXMubmFtZSwiIix0aGlzLm9wdGlvbnMudmVyc2lvbj8/LTEpO319OwpyZXR1cm4gdGhpcy5OPW49YigpfX07dmFyIEJOPW5ldyBjTTEoIll0SWRiTWV0YSIse0tjOntkYXRhYmFzZXM6e3Z4OjF9fSx1cGdyYWRlKG4sVyl7VygxKSYmWnkobiwiZGF0YWJhc2VzIix7a2V5UGF0aDoiYWN0dWFsTmFtZSJ9KX19KTt2YXIgVmMsUWM9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7fX0obmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7fX0pO25ldyBnLktWO3ZhciBPNXQ9Y2xhc3MgZXh0ZW5kcyBjTTF7Y29uc3RydWN0b3IobixXKXtzdXBlcihuLFcpO3RoaXMub3B0aW9ucz1XO2cwKG4pfUoobixXLEQ9e30pe3JldHVybih0aGlzLm9wdGlvbnMuc2hhcmVkP0FfcjpTX1opKG4sVyx7Li4uRH0pfWRlbGV0ZShuPXt9KXtyZXR1cm4odGhpcy5vcHRpb25zLnNoYXJlZD92ejptM3cpKHRoaXMubmFtZSxuKX19O3ZhciBaNUM9a08oInl0R2NmQ29uZmlnIix7S2M6e2NvbGRDb25maWdTdG9yZTp7dng6MX0saG90Q29uZmlnU3RvcmU6e3Z4OjF9fSxzaGFyZWQ6ITEsdXBncmFkZShuLFcpe1coMSkmJihFUihaeShuLCJob3RDb25maWdTdG9yZSIse2tleVBhdGg6ImtleSIsYXV0b0luY3JlbWVudDohMH0pLCJob3RUaW1lc3RhbXBJbmRleCIsInRpbWVzdGFtcCIpLEVSKFp5KG4sImNvbGRDb25maWdTdG9yZSIse2tleVBhdGg6ImtleSIsYXV0b0luY3JlbWVudDohMH0pLCJjb2xkVGltZXN0YW1wSW5kZXgiLCJ0aW1lc3RhbXAiKSl9LHZlcnNpb246MX0pO3ZhciBhTzE9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTt0aGlzLko9W107dGhpcy5OPVtdO3ZhciBuPWcucnIoInl0LmdjZi5jb25maWcuaG90VXBkYXRlQ2FsbGJhY2tzIik7bj8odGhpcy5KPVsuLi5uXSx0aGlzLk49bik6KHRoaXMuTj1bXSxnLkdiKCJ5dC5nY2YuY29uZmlnLmhvdFVwZGF0ZUNhbGxiYWNrcyIsdGhpcy5OKSl9bUEoKXtmb3IobGV0IFcgb2YgdGhpcy5KKXt2YXIgbj10aGlzLk47bGV0IEQ9bi5pbmRleE9mKFcpO0Q+PTAmJm4uc3BsaWNlKEQsMSl9dGhpcy5KLmxlbmd0aD0wO3N1cGVyLm1BKCl9fTtnLlgzPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5WPSExO3RoaXMuaj10aGlzLlg9MDt0aGlzLks9bmV3IGFPMX1MWCgpe3JldHVybiAkTygpPz9nLkFyKCJSQVdfSE9UX0NPTkZJR19HUk9VUCIpfVcobil7dGhpcy5ob3RIYXNoRGF0YT1uO2cuR2IoInl0LmdjZi5jb25maWcuaG90SGFzaERhdGEiLHRoaXMuaG90SGFzaERhdGF8fG51bGwpfX07dmFyIG5naD10eXBlb2YgVGV4dEVuY29kZXIhPT0idW5kZWZpbmVkIj9uZXcgVGV4dEVuY29kZXI6bnVsbCxRZD1uZ2g/bj0+bmdoLmVuY29kZShuKTpuPT57bj1MMChuKTsKdmFyIFc9bmV3IFVpbnQ4QXJyYXkobi5sZW5ndGgpO2ZvcihsZXQgRD0wO0Q8Vy5sZW5ndGg7RCsrKVdbRF09bltEXTtyZXR1cm4gV307dmFyIGhlPXtuZXh0OiJ3bl9zIixicm93c2U6ImJyX3MiLHNlYXJjaDoic3JfcyIscmVlbDoicl93cnMiLHBsYXllcjoicHNfcyJ9LFVITT17bmV4dDoid25fciIsYnJvd3NlOiJicl9yIixzZWFyY2g6InNyX3IiLHJlZWw6InJfd3JyIixwbGF5ZXI6InBzX3IifTtvNy5wcm90b3R5cGUuYlk9ZnVuY3Rpb24oKXtyZXR1cm57dmVyc2lvbjp0aGlzLnZlcnNpb24sYXJnczp0aGlzLmFyZ3N9fTtkMy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b3BpY307dmFyIFdIUz1nLnJyKCJ5dFB1YnN1YjJQdWJzdWIySW5zdGFuY2UiKXx8bmV3IEJLO0JLLnByb3RvdHlwZS5zdWJzY3JpYmU9QksucHJvdG90eXBlLnN1YnNjcmliZTtCSy5wcm90b3R5cGUudW5zdWJzY3JpYmVCeUtleT1CSy5wcm90b3R5cGUuaks7QksucHJvdG90eXBlLnB1Ymxpc2g9QksucHJvdG90eXBlLldKO0JLLnByb3RvdHlwZS5jbGVhcj1CSy5wcm90b3R5cGUuY2xlYXI7Zy5HYigieXRQdWJzdWIyUHVic3ViMkluc3RhbmNlIixXSFMpO3ZhciBqOT1nLnJyKCJ5dFB1YnN1YjJQdWJzdWIyU3Vic2NyaWJlZEtleXMiKXx8e307Zy5HYigieXRQdWJzdWIyUHVic3ViMlN1YnNjcmliZWRLZXlzIixqOSk7dmFyIEJ6PWcucnIoInl0UHVic3ViMlB1YnN1YjJUb3BpY1RvS2V5cyIpfHx7fTtnLkdiKCJ5dFB1YnN1YjJQdWJzdWIyVG9waWNUb0tleXMiLEJ6KTt2YXIgQ1A9Zy5ycigieXRQdWJzdWIyUHVic3ViMklzQXN5bmMiKXx8e307CmcuR2IoInl0UHVic3ViMlB1YnN1YjJJc0FzeW5jIixDUCk7Zy5HYigieXRQdWJzdWIyUHVic3ViMlNraXBTdWJLZXkiLG51bGwpO3ZhciBNQj12MCgibWF4X2JvZHlfc2l6ZV90b19jb21wcmVzcyIsNUU1KSxSNz12MCgibWluX2JvZHlfc2l6ZV90b19jb21wcmVzcyIsNTAwKSx3OWo9MDt2YXIgRHoxPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuV3Y9dGhpcy5OPSExO3RoaXMucG90ZW50aWFsRXNmRXJyb3JDb3VudGVyPXRoaXMuSj0wO3RoaXMuaGFuZGxlRXJyb3I9KCk9Pnt9Owp0aGlzLkYyPSgpPT57fTsKdGhpcy5ub3c9RGF0ZS5ub3c7dGhpcy5OaD0hMTt0aGlzLnV4PW4udXg/PzEwMDt0aGlzLkExPW4uQTE/PzE7dGhpcy5HeT1uLkd5Pz8yNTkyRTY7dGhpcy5aND1uLlo0Pz8xMkU0O3RoaXMuSVA9bi5JUD8/NUUzO3RoaXMuWVc9bi5ZVz8/dm9pZCAwO3RoaXMuQ3I9ISFuLkNyO3RoaXMuS3I9bi5Lcj8/LjE7dGhpcy5IRj1uLkhGPz8xMDtuLmhhbmRsZUVycm9yJiYodGhpcy5oYW5kbGVFcnJvcj1uLmhhbmRsZUVycm9yKTtuLkYyJiYodGhpcy5GMj1uLkYyKTtuLk5oJiYodGhpcy5OaD1uLk5oKTtuLld2JiYodGhpcy5Xdj1uLld2KTt0aGlzLkVxPW4uRXE7dGhpcy5BJD1uLkEkO3RoaXMuZ0U9bi5nRTt0aGlzLnlHPW4ueUc7dGhpcy5MbT1uLkxtO3RoaXMudVo9bi51Wjt0aGlzLk5BPW4uTkE7Y3oodGhpcykmJighdGhpcy5FcXx8dGhpcy5FcSgibmV0d29ya2xlc3NfbG9nZ2luZyIpKSYmbm0odGhpcyl9d3JpdGVUaGVuU2VuZChuLFc9e30pe2lmKGN6KHRoaXMpJiZ0aGlzLk4pe2xldCBEPQp7dXJsOm4sb3B0aW9uczpXLHRpbWVzdGFtcDp0aGlzLm5vdygpLHN0YXR1czoiTkVXIixzZW5kQ291bnQ6MH07dGhpcy5nRS5zZXQoRCx0aGlzLllXKS50aGVuKGI9PntELmlkPWI7dGhpcy55Ry5XRygpJiZENSh0aGlzLEQpfSkuY2F0Y2goYj0+e0Q1KHRoaXMsRCk7CmJNKHRoaXMsYil9KX1lbHNlIHRoaXMuTG0obixXKX1zZW5kVGhlbldyaXRlKG4sVz17fSxEKXtpZihjeih0aGlzKSYmdGhpcy5OKXtsZXQgYj17dXJsOm4sCm9wdGlvbnM6Vyx0aW1lc3RhbXA6dGhpcy5ub3coKSxzdGF0dXM6Ik5FVyIsc2VuZENvdW50OjB9O3RoaXMuRXEmJnRoaXMuRXEoIm53bF9za2lwX3JldHJ5IikmJihiLnNraXBSZXRyeT1EKTtpZih0aGlzLnlHLldHKCl8fHRoaXMuRXEmJnRoaXMuRXEoIm53bF9hZ2dyZXNzaXZlX3NlbmRfdGhlbl93cml0ZSIpJiYhYi5za2lwUmV0cnkpe2lmKCFiLnNraXBSZXRyeSl7bGV0IHY9Vy5vbkVycm9yP1cub25FcnJvcjooKT0+e307Clcub25FcnJvcj1hc3luYyhrLGgpPT57YXdhaXQgdGhpcy5nRS5zZXQoYix0aGlzLllXKS5jYXRjaCh4PT57Yk0odGhpcyx4KX0pOwp2KGssaCl9fXRoaXMuTG0obixXLGIuc2tpcFJldHJ5KX1lbHNlIHRoaXMuZ0Uuc2V0KGIsdGhpcy5ZVykuY2F0Y2godj0+e3RoaXMuTG0obixXLGIuc2tpcFJldHJ5KTsKYk0odGhpcyx2KX0pfWVsc2UgRD10aGlzLkVxJiZ0aGlzLkVxKCJud2xfc2tpcF9yZXRyeSIpJiZELHRoaXMuTG0obixXLEQpfXNlbmRBbmRXcml0ZShuLFc9e30pe2lmKGN6KHRoaXMpJiZ0aGlzLk4pe2xldCBEPXt1cmw6biwKb3B0aW9uczpXLHRpbWVzdGFtcDp0aGlzLm5vdygpLHN0YXR1czoiTkVXIixzZW5kQ291bnQ6MH0sYj0hMSx2PVcub25TdWNjZXNzP1cub25TdWNjZXNzOigpPT57fTsKRC5vcHRpb25zLm9uU3VjY2Vzcz0oayxoKT0+e0QuaWQhPT12b2lkIDA/dGhpcy5nRS5UTShELmlkLHRoaXMuWVcpOmI9ITA7dGhpcy55Ry5sYyYmdGhpcy5FcSYmdGhpcy5FcSgidnNzX25ldHdvcmtfaGludCIpJiZ0aGlzLnlHLmxjKCEwKTt2KGssaCl9Owp0aGlzLkxtKEQudXJsLEQub3B0aW9ucyx2b2lkIDAsITApO3RoaXMuZ0Uuc2V0KEQsdGhpcy5ZVykudGhlbihrPT57RC5pZD1rO2ImJnRoaXMuZ0UuVE0oRC5pZCx0aGlzLllXKX0pLmNhdGNoKGs9PntiTSh0aGlzLGspfSl9ZWxzZSB0aGlzLkxtKG4sVyx2b2lkIDAsITApfVcoKXtpZighY3oodGhpcykpdGhyb3cgRXJyb3IoIkluZGV4ZWREQiBpcyBub3Qgc3VwcG9ydGVkOiB0aHJvdHRsZVNlbmQiKTsKdGhpcy5KfHwodGhpcy5KPXRoaXMuQSQuTFMoYXN5bmMoKT0+e3ZhciBuPWF3YWl0IHRoaXMuZ0UuaTQoIk5FVyIsdGhpcy5ZVyk7bj8oYXdhaXQgRDUodGhpcyxuKSx0aGlzLkomJih0aGlzLko9MCx0aGlzLlcoKSkpOnRoaXMuWCgpfSx0aGlzLnV4KSl9WCgpe3RoaXMuQSQuc08odGhpcy5KKTsKdGhpcy5KPTB9fTt2YXIgdlU7dmFyIHk0PXthY2NvdW50U3RhdGVDaGFuZ2VTaWduZWRJbjoyMyxhY2NvdW50U3RhdGVDaGFuZ2VTaWduZWRPdXQ6MjQsZGVsYXllZEV2ZW50TWV0cmljQ2FwdHVyZWQ6MTEsbGF0ZW5jeUFjdGlvbkJhc2VsaW5lZDo2LGxhdGVuY3lBY3Rpb25JbmZvOjcsbGF0ZW5jeUFjdGlvblRpY2tlZDo1LG9mZmxpbmVUcmFuc2ZlclN0YXR1c0NoYW5nZWQ6MixvZmZsaW5lSW1hZ2VEb3dubG9hZDozMzUscGxheWJhY2tTdGFydFN0YXRlQ2hhbmdlZDo5LHN5c3RlbUhlYWx0aENhcHR1cmVkOjMsbWFuZ29PbmJvYXJkaW5nQ29tcGxldGVkOjEwLG1hbmdvUHVzaE5vdGlmaWNhdGlvblJlY2VpdmVkOjIzMCxtYW5nb1VuZm9ya0RiTWlncmF0aW9uRXJyb3I6MTIxLG1hbmdvVW5mb3JrRGJNaWdyYXRpb25TdW1tYXJ5OjEyMixtYW5nb1VuZm9ya0RiTWlncmF0aW9uUHJldW5mb3JrRGJWZXJzaW9uTnVtYmVyOjEzMyxtYW5nb1VuZm9ya0RiTWlncmF0aW9uUGhvbmVNZXRhZGF0YToxMzQsbWFuZ29VbmZvcmtEYk1pZ3JhdGlvblBob25lU3RvcmFnZToxMzUsCm1hbmdvVW5mb3JrRGJNaWdyYXRpb25TdGVwOjE0MixtYW5nb0FzeW5jQXBpTWlncmF0aW9uRXZlbnQ6MjIzLG1hbmdvRG93bmxvYWRWaWRlb1Jlc3VsdDoyMjQsbWFuZ29Ib21lcGFnZVZpZGVvQ291bnQ6Mjc5LG1hbmdvSG9tZVYzU3RhdGU6Mjk1LG1hbmdvSW1hZ2VDbGllbnRDYWNoZUhpdEV2ZW50OjI3MyxzZENhcmRTdGF0dXNDaGFuZ2VkOjk4LGZyYW1lc0Ryb3BwZWQ6MTIsdGh1bWJuYWlsSG92ZXJlZDoxMyxkZXZpY2VSZXRlbnRpb25JbmZvQ2FwdHVyZWQ6MTQsdGh1bWJuYWlsTG9hZGVkOjE1LGJhY2tUb0FwcEV2ZW50OjMxOCxzdHJlYW1pbmdTdGF0c0NhcHR1cmVkOjE3LG9mZmxpbmVWaWRlb1NoYXJlZDoxOSxhcHBDcmFzaGVkOjIwLHlvdVRoZXJlOjIxLG9mZmxpbmVTdGF0ZVNuYXBzaG90OjIyLG1keFNlc3Npb25TdGFydGVkOjI1LG1keFNlc3Npb25Db25uZWN0ZWQ6MjYsbWR4U2Vzc2lvbkRpc2Nvbm5lY3RlZDoyNyxiZWRyb2NrUmVzb3VyY2VDb25zdW1wdGlvblNuYXBzaG90OjI4LApuZXh0R2VuV2F0Y2hXYXRjaFN3aXBlZDoyOSxraWRzQWNjb3VudHNTbmFwc2hvdDozMCx6ZXJvU3RlcENoYW5uZWxDcmVhdGVkOjMxLHR2aHRtbDVTZWFyY2hDb21wbGV0ZWQ6MzIsb2ZmbGluZVNoYXJlUGFpcmluZzozNCxvZmZsaW5lU2hhcmVVbmxvY2s6MzUsbWR4Um91dGVEaXN0cmlidXRpb25TbmFwc2hvdDozNixiZWRyb2NrUmVwZXRpdGl2ZUFjdGlvblRpbWVkOjM3LHVucGx1Z2dlZERlZ3JhZGF0aW9uSW5mbzoyMjksdXBsb2FkTXA0SGVhZGVyTW92ZWQ6MzgsdXBsb2FkVmlkZW9UcmFuc2NvZGVkOjM5LHVwbG9hZFByb2Nlc3NvclN0YXJ0ZWQ6NDYsdXBsb2FkUHJvY2Vzc29yRW5kZWQ6NDcsdXBsb2FkUHJvY2Vzc29yUmVhZHk6OTQsdXBsb2FkUHJvY2Vzc29yUmVxdWlyZW1lbnRQZW5kaW5nOjk1LHVwbG9hZFByb2Nlc3NvckludGVycnVwdGVkOjk2LHVwbG9hZEZyb250ZW5kRXZlbnQ6MjQxLGFzc2V0UGFja0Rvd25sb2FkU3RhcnRlZDo0MSxhc3NldFBhY2tEb3dubG9hZGVkOjQyLAphc3NldFBhY2tBcHBsaWVkOjQzLGFzc2V0UGFja0RlbGV0ZWQ6NDQsYXBwSW5zdGFsbEF0dHJpYnV0aW9uRXZlbnQ6NDU5LHBsYXliYWNrU2Vzc2lvblN0b3BwZWQ6NDUsYWRCbG9ja2VyTWVzc2FnaW5nU2hvd246NDgsZGlzdHJpYnV0aW9uQ2hhbm5lbENhcHR1cmVkOjQ5LGRhdGFQbGFuQ3BpZFJlcXVlc3RlZDo1MSxkZXRhaWxlZE5ldHdvcmtUeXBlQ2FwdHVyZWQ6NTIsc2VuZFN0YXRlVXBkYXRlZDo1MyxyZWNlaXZlU3RhdGVVcGRhdGVkOjU0LHNlbmREZWJ1Z1N0YXRlVXBkYXRlZDo1NSxyZWNlaXZlRGVidWdTdGF0ZVVwZGF0ZWQ6NTYsa2lkc0Vycm9yZWQ6NTcsbWR4TXNuU2Vzc2lvblN0YXRzRmluaXNoZWQ6NTgsYXBwU2V0dGluZ3NDYXB0dXJlZDo1OSxtZHhXZWJTb2NrZXRTZXJ2ZXJIdHRwRXJyb3I6NjAsbWR4V2ViU29ja2V0U2VydmVyOjYxLHN0YXJ0dXBDcmFzaGVzRGV0ZWN0ZWQ6NjIsY29sZFN0YXJ0SW5mbzo0MzUsb2ZmbGluZVBsYXliYWNrU3RhcnRlZDo2MyxsaXZlQ2hhdE1lc3NhZ2VTZW50OjIyNSwKbGl2ZUNoYXRVc2VyUHJlc2VudDo0MzQsbGl2ZUNoYXRCZWluZ01vZGVyYXRlZDo0NTcsbGl2ZUNoYXRHaWZ0QnV0dG9uSW1wcmVzc2VkOjU1OCxsaXZlQ3JlYXRpb25DYW1lcmFVcGRhdGVkOjY0LGxpdmVDcmVhdGlvbkVuY29kaW5nQ2FwdHVyZWQ6NjUsbGl2ZUNyZWF0aW9uRXJyb3I6NjYsbGl2ZUNyZWF0aW9uSGVhbHRoVXBkYXRlZDo2NyxsaXZlQ3JlYXRpb25WaWRlb0VmZmVjdHNDYXB0dXJlZDo2OCxsaXZlQ3JlYXRpb25TdGFnZU9jY3VyZWQ6NzUsb2ZmbGluZVN5c3RlbUZhaWx1cmU6NTQ2LGxpdmVDcmVhdGlvbkJyb2FkY2FzdFNjaGVkdWxlZDoxMjMsbGl2ZUNyZWF0aW9uQXJjaGl2ZVJlcGxhY2VtZW50OjE0OSxsaXZlQ3JlYXRpb25Db3N0cmVhbWluZ0Nvbm5lY3Rpb246NDIxLGxpdmVDcmVhdGlvblBsYXlhYmxlc01ldHJpY3M6NTMzLGxpdmVDcmVhdGlvblN0cmVhbVdlYnJ0Y1N0YXRzOjI4OCxsaXZlQ3JlYXRpb25XZWJydGNFcnJvcjo1MjYsbWR4U2Vzc2lvblJlY292ZXJ5U3RhcnRlZDo2OSwKbWR4U2Vzc2lvblJlY292ZXJ5Q29tcGxldGVkOjcwLG1keFNlc3Npb25SZWNvdmVyeVN0b3BwZWQ6NzEsdmlzdWFsRWxlbWVudFNob3duOjcyLHZpc3VhbEVsZW1lbnRIaWRkZW46NzMsdmlzdWFsRWxlbWVudEdlc3R1cmVkOjc4LHZpc3VhbEVsZW1lbnRTdGF0ZUNoYW5nZWQ6MjA4LHNjcmVlbkNyZWF0ZWQ6MTU2LHBsYXliYWNrQXNzb2NpYXRlZDoyMDIsdmlzdWFsRWxlbWVudEF0dGFjaGVkOjIxNSxwbGF5YmFja0NvbnRleHRFdmVudDoyMTQsY2xvdWRDYXN0aW5nUGxheWJhY2tTdGFydGVkOjc0LHdlYlBsYXllckFwaUNhbGxlZDo3Nix0dmh0bWw1QWNjb3VudERpYWxvZ09wZW5lZDo3OSxmb3JlZ3JvdW5kSGVhcnRiZWF0OjgwLGZvcmVncm91bmRIZWFydGJlYXRTY3JlZW5Bc3NvY2lhdGVkOjExMSxraWRzT2ZmbGluZVNuYXBzaG90OjgxLG1keEVuY3J5cHRpb25TZXNzaW9uU3RhdHNGaW5pc2hlZDo4MixwbGF5ZXJSZXF1ZXN0Q29tcGxldGVkOjgzLGxpdGVTY2hlZHVsZXJTdGF0aXN0aWNzOjg0LAptZHhTaWduSW46ODUsc3BhY2VjYXN0TWV0YWRhdGFMb29rdXBSZXF1ZXN0ZWQ6ODYsc3BhY2VjYXN0QmF0Y2hMb29rdXBSZXF1ZXN0ZWQ6ODcsc3BhY2VjYXN0U3VtbWFyeVJlcXVlc3RlZDo4OCxzcGFjZWNhc3RQbGF5YmFjazo4OSxzcGFjZWNhc3REaXNjb3Zlcnk6OTAsdHZodG1sNUxhdW5jaFVybENvbXBvbmVudENoYW5nZWQ6OTEsbWR4QmFja2dyb3VuZFBsYXliYWNrUmVxdWVzdENvbXBsZXRlZDo5MixtZHhCcm9rZW5BZGRpdGlvbmFsRGF0YURldmljZURldGVjdGVkOjkzLHR2aHRtbDVMb2NhbFN0b3JhZ2U6OTcsdHZodG1sNURldmljZVN0b3JhZ2VTdGF0dXM6MTQ3LGF1dG9DYXB0aW9uc0F2YWlsYWJsZTo5OSxwbGF5YmFja1NjcnViYmluZ0V2ZW50OjMzOSxmbGV4eVN0YXRlOjEwMCxpbnRlcmZhY2VPcmllbnRhdGlvbkNhcHR1cmVkOjEwMSxtYWluQXBwQnJvd3NlRnJhZ21lbnRDYWNoZToxMDIsb2ZmbGluZUNhY2hlVmVyaWZpY2F0aW9uRmFpbHVyZToxMDMsb2ZmbGluZVBsYXliYWNrRXhjZXB0aW9uRGlnZXN0OjIxNywKdnJDb3ByZXNlbmNlU3RhdHM6MTA0LHZyQ29wcmVzZW5jZVN5bmNTdGF0czoxMzAsdnJDb3ByZXNlbmNlQ29tbXNTdGF0czoxMzcsdnJDb3ByZXNlbmNlUGFydHlTdGF0czoxNTMsdnJDb3ByZXNlbmNlRW1vamlTdGF0czoyMTMsdnJDb3ByZXNlbmNlRXZlbnQ6MTQxLHZyQ29wcmVzZW5jZUZsb3dUcmFuc2l0RXZlbnQ6MTYwLHZyQ293YXRjaFBhcnR5RXZlbnQ6NDkyLHZyQ293YXRjaFVzZXJTdGFydE9ySm9pbkV2ZW50OjUwNCx2clBsYXliYWNrRXZlbnQ6MzQ1LGtpZHNBZ2VHYXRlVHJhY2tpbmc6MTA1LG9mZmxpbmVEZWxheUFsbG93ZWRUcmFja2luZzoxMDYsbWFpbkFwcEF1dG9PZmZsaW5lU3RhdGU6MTA3LHZpZGVvQXNUaHVtYm5haWxEb3dubG9hZDoxMDgsdmlkZW9Bc1RodW1ibmFpbFBsYXliYWNrOjEwOSxsaXRlU2hvd01vcmU6MTEwLHJlbmRlcmluZ0Vycm9yOjExOCxraWRzUHJvZmlsZVBpbkdhdGVUcmFja2luZzoxMTksYWJyVHJhamVjdG9yeToxMjQsc2Nyb2xsRXZlbnQ6MTI1LApzdHJlYW16SW5jcmVtZW50ZWQ6MTI2LGtpZHNQcm9maWxlU3dpdGNoZXJUcmFja2luZzoxMjcsa2lkc1Byb2ZpbGVDcmVhdGlvblRyYWNraW5nOjEyOSxidXlGbG93U3RhcnRlZDoxMzYsaW50ZWdyYXRpb25BdHRyaWJ1dGlvbkV2ZW50OjU1NixtYnNDb25uZWN0aW9uSW5pdGlhdGVkOjEzOCxtYnNQbGF5YmFja0luaXRpYXRlZDoxMzksbWJzTG9hZENoaWxkcmVuOjE0MCxsaXRlUHJvZmlsZUZldGNoZXI6MTQ0LG1keFJlbW90ZVRyYW5zYWN0aW9uOjE0NixyZWVsUGxheWJhY2tFcnJvcjoxNDgscmVhY2hhYmlsaXR5RGV0ZWN0aW9uRXZlbnQ6MTUwLG1vYmlsZVBsYXliYWNrRXZlbnQ6MTUxLGNvdXJ0c2lkZVBsYXllclN0YXRlQ2hhbmdlZDoxNTIsbXVzaWNQZXJzaXN0ZW50Q2FjaGVDaGVja2VkOjE1NCxtdXNpY1BlcnNpc3RlbnRDYWNoZUNsZWFyZWQ6MTU1LHBsYXliYWNrSW50ZXJydXB0ZWQ6MTU3LHBsYXliYWNrSW50ZXJydXB0aW9uUmVzb2x2ZWQ6MTU4LGZpeEZvcEZsb3c6MTU5LAphbnJEZXRlY3Rpb246MTYxLGJhY2tzdGFnZVBvc3RDcmVhdGlvbkZsb3dFbmRlZDoxNjIsY2xpZW50RXJyb3I6MTYzLGdhbWluZ0FjY291bnRMaW5rU3RhdHVzQ2hhbmdlZDoxNjQsbGl0ZUhvdXNld2FybWluZzoxNjUsYnV5Rmxvd0V2ZW50OjE2NyxraWRzUGFyZW50YWxHYXRlVHJhY2tpbmc6MTY4LGtpZHNTaWduZWRPdXRTZXR0aW5nc1N0YXR1czo0Mzcsa2lkc1NpZ25lZE91dFBhdXNlSGlzdG9yeUZpeFN0YXR1czo0MzgsdHZodG1sNVdhdGNoZG9nVmlvbGF0aW9uOjQ0NCx5cGNVcGdyYWRlRmxvdzoxNjkseW9uZ2xlU3R1ZHk6MTcwLHlwY1VwZGF0ZUZsb3dTdGFydGVkOjE3MSx5cGNVcGRhdGVGbG93Q2FuY2VsbGVkOjE3Mix5cGNVcGRhdGVGbG93U3VjY2VlZGVkOjE3Myx5cGNVcGRhdGVGbG93RmFpbGVkOjE3NCxsaXRlR3Jvd3Roa2l0UHJvbW86MTc1LHBheW1lbnRGbG93U3RhcnRlZDozNDEsdHJhbnNhY3Rpb25GbG93U2hvd1BheW1lbnREaWFsb2c6NDA1LHRyYW5zYWN0aW9uRmxvd1N0YXJ0ZWQ6MTc2LAp0cmFuc2FjdGlvbkZsb3dTZWNvbmRhcnlEZXZpY2VTdGFydGVkOjIyMix0cmFuc2FjdGlvbkZsb3dTZWNvbmRhcnlEZXZpY2VTaWduZWRPdXRTdGFydGVkOjM4Myx0cmFuc2FjdGlvbkZsb3dDYW5jZWxsZWQ6MTc3LHRyYW5zYWN0aW9uRmxvd1BheW1lbnRDYWxsQmFja1JlY2VpdmVkOjM4Nyx0cmFuc2FjdGlvbkZsb3dQYXltZW50U3VibWl0dGVkOjQ2MCx0cmFuc2FjdGlvbkZsb3dQYXltZW50U3VjY2VlZGVkOjMyOSx0cmFuc2FjdGlvbkZsb3dTdWNjZWVkZWQ6MTc4LHRyYW5zYWN0aW9uRmxvd0ZhaWxlZDoxNzksdHJhbnNhY3Rpb25GbG93UGxheUJpbGxpbmdDb25uZWN0aW9uU3RhcnRFdmVudDo0MjgsdHJhbnNhY3Rpb25GbG93U2Vjb25kYXJ5RGV2aWNlU3VjY2Vzczo0NTgsdHJhbnNhY3Rpb25GbG93RXJyb3JFdmVudDo0MTEsbGl0ZVZpZGVvUXVhbGl0eUNoYW5nZWQ6MTgwLHdhdGNoQnJlYWtFbmFibGVtZW50U2V0dGluZ0V2ZW50OjE4MSx3YXRjaEJyZWFrRnJlcXVlbmN5U2V0dGluZ0V2ZW50OjE4MiwKdmlkZW9FZmZlY3RzQ2FtZXJhUGVyZm9ybWFuY2VNZXRyaWNzOjE4MyxhZE5vdGlmeToxODQsc3RhcnR1cFRlbGVtZXRyeToxODUscGxheWJhY2tPZmZsaW5lRmFsbGJhY2tVc2VkOjE4NixvdXRPZk1lbW9yeToxODcseXBjUGF1c2VGbG93U3RhcnRlZDoxODgseXBjUGF1c2VGbG93Q2FuY2VsbGVkOjE4OSx5cGNQYXVzZUZsb3dTdWNjZWVkZWQ6MTkwLHlwY1BhdXNlRmxvd0ZhaWxlZDoxOTEsdXBsb2FkRmlsZVNlbGVjdGVkOjE5Mix5cGNSZXN1bWVGbG93U3RhcnRlZDoxOTMseXBjUmVzdW1lRmxvd0NhbmNlbGxlZDoxOTQseXBjUmVzdW1lRmxvd1N1Y2NlZWRlZDoxOTUseXBjUmVzdW1lRmxvd0ZhaWxlZDoxOTYsYWRzQ2xpZW50U3RhdGVDaGFuZ2U6MTk3LHlwY0NhbmNlbEZsb3dTdGFydGVkOjE5OCx5cGNDYW5jZWxGbG93Q2FuY2VsbGVkOjE5OSx5cGNDYW5jZWxGbG93U3VjY2VlZGVkOjIwMCx5cGNDYW5jZWxGbG93RmFpbGVkOjIwMSx5cGNDYW5jZWxGbG93R29Ub1BheW1lbnRQcm9jZXNzb3I6NDAyLAp5cGNEZWFjdGl2YXRlRmxvd1N0YXJ0ZWQ6MzIwLHlwY1JlZGVlbUZsb3dTdGFydGVkOjIwMyx5cGNSZWRlZW1GbG93Q2FuY2VsbGVkOjIwNCx5cGNSZWRlZW1GbG93U3VjY2VlZGVkOjIwNSx5cGNSZWRlZW1GbG93RmFpbGVkOjIwNix5cGNGYW1pbHlDcmVhdGVGbG93U3RhcnRlZDoyNTgseXBjRmFtaWx5Q3JlYXRlRmxvd0NhbmNlbGxlZDoyNTkseXBjRmFtaWx5Q3JlYXRlRmxvd1N1Y2NlZWRlZDoyNjAseXBjRmFtaWx5Q3JlYXRlRmxvd0ZhaWxlZDoyNjEseXBjRmFtaWx5TWFuYWdlRmxvd1N0YXJ0ZWQ6MjYyLHlwY0ZhbWlseU1hbmFnZUZsb3dDYW5jZWxsZWQ6MjYzLHlwY0ZhbWlseU1hbmFnZUZsb3dTdWNjZWVkZWQ6MjY0LHlwY0ZhbWlseU1hbmFnZUZsb3dGYWlsZWQ6MjY1LHJlc3RvcmVDb250ZXh0RXZlbnQ6MjA3LGVtYmVkc0FkRXZlbnQ6MzI3LGF1dG9wbGF5VHJpZ2dlcmVkOjIwOSxjbGllbnREYXRhRXJyb3JFdmVudDoyMTAsZXhwZXJpbWVudGFsVnNzVmFsaWRhdGlvbjoyMTEsCnR2aHRtbDVUcmlnZ2VyZWRFdmVudDoyMTIsdHZodG1sNUZyYW1ld29ya3NGaWVsZFRyaWFsUmVzdWx0OjIxNix0dmh0bWw1RnJhbWV3b3Jrc0ZpZWxkVHJpYWxTdGFydDoyMjAsbXVzaWNPZmZsaW5lUHJlZmVyZW5jZXM6MjE4LHdhdGNoVGltZVNlZ21lbnQ6MjE5LGFwcFdpZHRoTGF5b3V0RXJyb3I6MjIxLGFjY291bnRSZWdpc3RyeUNoYW5nZToyMjYsdXNlck1lbnRpb25BdXRvQ29tcGxldGVCb3hFdmVudDoyMjcsZG93bmxvYWRSZWNvbW1lbmRhdGlvbkVuYWJsZW1lbnRTZXR0aW5nRXZlbnQ6MjI4LG11c2ljUGxheWJhY2tDb250ZW50TW9kZUNoYW5nZUV2ZW50OjIzMSxvZmZsaW5lRGJPcGVuQ29tcGxldGVkOjIzMixraWRzRmxvd0V2ZW50OjIzMyxraWRzRmxvd0NvcnB1c1NlbGVjdGVkRXZlbnQ6MjM0LHZpZGVvRWZmZWN0c0V2ZW50OjIzNSx1bnBsdWdnZWRPcHNFb2dBbmFseXRpY3NFdmVudDoyMzYscGxheWJhY2tBdWRpb1JvdXRlRXZlbnQ6MjM3LGludGVyYWN0aW9uTG9nZ2luZ0RlYnVnTW9kZUVycm9yOjIzOCwKb2ZmbGluZVl0YlJlZnJlc2hlZDoyMzksa2lkc0Zsb3dFcnJvcjoyNDAsbXVzaWNBdXRvcGxheU9uTGF1bmNoQXR0ZW1wdGVkOjI0MixkZXZpY2VDb250ZXh0QWN0aXZpdHlFdmVudDoyNDMsZGV2aWNlQ29udGV4dEV2ZW50OjI0NCx0ZW1wbGF0ZVJlc29sdXRpb25FeGNlcHRpb246MjQ1LG11c2ljU2lkZWxvYWRlZFBsYXlsaXN0U2VydmljZUNhbGxlZDoyNDYsZW1iZWRzU3RvcmFnZUFjY2Vzc05vdENoZWNrZWQ6MjQ3LGVtYmVkc0hhc1N0b3JhZ2VBY2Nlc3NSZXN1bHQ6MjQ4LGVtYmVkc0l0cFBsYXllZE9uUmVsb2FkOjI0OSxlbWJlZHNSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3VsdDoyNTAsZW1iZWRzU2hvdWxkUmVxdWVzdFN0b3JhZ2VBY2Nlc3NSZXN1bHQ6MjUxLGVtYmVkc1JlcXVlc3RTdG9yYWdlQWNjZXNzU3RhdGU6MjU2LGVtYmVkc1JlcXVlc3RTdG9yYWdlQWNjZXNzRmFpbGVkU3RhdGU6MjU3LGVtYmVkc0l0cFdhdGNoTGF0ZXJSZXN1bHQ6MjY2LHNlYXJjaFN1Z2dlc3REZWNvZGluZ1BheWxvYWRGYWlsdXJlOjI1MiwKc2lyaVNob3J0Y3V0QWN0aXZhdGVkOjI1Myx0dmh0bWw1S2V5Ym9hcmRQZXJmb3JtYW5jZToyNTQsbGF0ZW5jeUFjdGlvblNwYW46MjU1LGVsZW1lbnRzTG9nOjI2Nyx5dGJGaWxlT3BlbmVkOjI2OCx0ZmxpdGVNb2RlbEVycm9yOjI2OSxhcGlUZXN0OjI3MCx5b25nbGVVc2JTZXR1cDoyNzEsdG91U3RyaWtlSW50ZXJzdGl0aWFsRXZlbnQ6MjcyLGxpdGVTdHJlYW1Ub1NhdmU6Mjc0LGFwcEJ1bmRsZUNsaWVudEV2ZW50OjI3NSx5dGJGaWxlQ3JlYXRpb25GYWlsZWQ6Mjc2LGFkTm90aWZ5RmFpbHVyZToyNzgseXRiVHJhbnNmZXJGYWlsZWQ6MjgwLGJsb2NraW5nUmVxdWVzdEZhaWxlZDoyODEsbGl0ZUFjY291bnRTZWxlY3RvcjoyODIsbGl0ZUFjY291bnRVaUNhbGxiYWNrczoyODMsZHVtbXlQYXlsb2FkOjI4NCxicm93c2VSZXNwb25zZVZhbGlkYXRpb25FdmVudDoyODUsZW50aXRpZXNFcnJvcjoyODYsbXVzaWNJb3NCYWNrZ3JvdW5kRmV0Y2g6Mjg3LG1keE5vdGlmaWNhdGlvbkV2ZW50OjI4OSwKbGF5ZXJzVmFsaWRhdGlvbkVycm9yOjI5MCxtdXNpY1B3YUluc3RhbGxlZDoyOTEsbGl0ZUFjY291bnRDbGVhbnVwOjI5MixodG1sNVBsYXllckhlYWx0aEV2ZW50OjI5Myx3YXRjaFJlc3RvcmVBdHRlbXB0OjI5NCxsaXRlQWNjb3VudFNpZ25JbjoyOTYsbm90YWlyZUV2ZW50OjI5OCxraWRzVm9pY2VTZWFyY2hFdmVudDoyOTksYWROb3RpZnlGaWxsZWQ6MzAwLGRlbGF5ZWRFdmVudERyb3BwZWQ6MzAxLGFuYWx5dGljc1NlYXJjaEV2ZW50OjMwMixzeXN0ZW1EYXJrVGhlbWVPcHRPdXRFdmVudDozMDMsZmxvd0V2ZW50OjMwNCxuZXR3b3JrQ29ubmVjdGl2aXR5QmFzZWxpbmVFdmVudDozMDUseXRiRmlsZUltcG9ydGVkOjMwNixkb3dubG9hZFN0cmVhbVVybEV4cGlyZWQ6MzA3LGRpcmVjdFNpZ25JbkV2ZW50OjMwOCxseXJpY0ltcHJlc3Npb25FdmVudDozMDksYWNjZXNzaWJpbGl0eVN0YXRlRXZlbnQ6MzEwLHRva2VuUmVmcmVzaEV2ZW50OjMxMSxnZW5lcmljQXR0ZXN0YXRpb25FeGVjdXRpb246MzEyLAp0dmh0bWw1VmlkZW9TZWVrOjMxMyx1bnBsdWdnZWRBdXRvUGF1c2U6MzE0LHNjcnViYmluZ0V2ZW50OjMxNSxiZWR0aW1lUmVtaW5kZXJFdmVudDozMTcsdHZodG1sNVVuZXhwZWN0ZWRSZXN0YXJ0OjMxOSx0dmh0bWw1RGV2aWNlU3RvcmFnZVN0YXRzOjUzNSx0dmh0bWw1U3RhYmlsaXR5VHJhY2VFdmVudDo0NzgsdHZodG1sNU9wZXJhdGlvbkhlYWx0aDo0NjcsdHZodG1sNVdhdGNoS2V5RXZlbnQ6MzIxLHZvaWNlTGFuZ3VhZ2VDaGFuZ2VkOjMyMix0dmh0bWw1TGl2ZUNoYXRTdGF0dXM6MzIzLHBhcmVudFRvb2xzQ29ycHVzU2VsZWN0ZWRFdmVudDozMjQsb2ZmZXJBZHNFbnJvbGxtZW50SW5pdGlhdGVkOjMyNSxuZXR3b3JrUXVhbGl0eUludGVydmFsRXZlbnQ6MzI2LGRldmljZVN0YXJ0dXBNZXRyaWNzOjMyOCxoZWFydGJlYXRBY3Rpb25QbGF5ZXJUcmFuc2l0aW9uZWQ6MzMwLHR2aHRtbDVMaWZlY3ljbGU6MzMxLGhlYXJ0YmVhdEFjdGlvblBsYXllckhhbHRlZDozMzIsYWRhcHRpdmVJbmxpbmVNdXRlZFNldHRpbmdFdmVudDozMzMsCm1haW5BcHBMaWJyYXJ5TG9hZGluZ1N0YXRlOjMzNCx0aGlyZFBhcnR5TG9nTW9uaXRvcmluZ0V2ZW50OjMzNixhcHBTaGVsbEFzc2V0TG9hZFJlcG9ydDozMzcsdHZodG1sNUFuZHJvaWRBdHRlc3RhdGlvbjozMzgsdHZodG1sNVN0YXJ0dXBTb3VuZEV2ZW50OjM0MCxpb3NCYWNrZ3JvdW5kUmVmcmVzaFRhc2s6MzQyLGlvc0JhY2tncm91bmRQcm9jZXNzaW5nVGFzazozNDMsc2xpRXZlbnRCYXRjaDozNDQscG9zdEltcHJlc3Npb25FdmVudDozNDYsbXVzaWNTaWRlbG9hZGVkUGxheWxpc3RFeHBvcnQ6MzQ3LGlkYlVuZXhwZWN0ZWRseUNsb3NlZDozNDgsdm9pY2VTZWFyY2hFdmVudDozNDksbWR4U2Vzc2lvbkNhc3RFdmVudDozNTAsaWRiUXVvdGFFeGNlZWRlZDozNTEsaWRiVHJhbnNhY3Rpb25FbmRlZDozNTIsaWRiVHJhbnNhY3Rpb25BYm9ydGVkOjM1Myx0dmh0bWw1S2V5Ym9hcmRMb2dnaW5nOjM1NCxpZGJJc1N1cHBvcnRlZENvbXBsZXRlZDozNTUsY3JlYXRvclN0dWRpb01vYmlsZUV2ZW50OjM1NiwKaWRiRGF0YUNvcnJ1cHRlZDozNTcscGFyZW50VG9vbHNBcHBDaG9zZW5FdmVudDozNTgsd2ViVmlld0JvdHRvbVNoZWV0UmVzaXplZDozNTksYWN0aXZlU3RhdGVDb250cm9sbGVyU2Nyb2xsUGVyZm9ybWFuY2VTdW1tYXJ5OjM2MCxuYXZpZ2F0b3JWYWxpZGF0aW9uOjM2MSxtZHhTZXNzaW9uSGVhcnRiZWF0OjM2MixjbGllbnRIaW50c1BvbHlmaWxsRGlhZ25vc3RpY3M6MzYzLGNsaWVudEhpbnRzUG9seWZpbGxFdmVudDozNjQscHJvb2ZPZk9yaWdpblRva2VuRXJyb3I6MzY1LGtpZHNBZGRlZEFjY291bnRTdW1tYXJ5OjM2NixtdXNpY1dlYXJhYmxlRGV2aWNlOjM2Nyx5cGNSZWZ1bmRGbG93RXZlbnQ6MzY4LHR2aHRtbDVQbGF5YmFja01lYXN1cmVtZW50RXZlbnQ6MzY5LHR2aHRtbDVXYXRlcm1hcmtNZWFzdXJlbWVudEV2ZW50OjM3MCxjbGllbnRFeHBHY2ZQcm9wYWdhdGlvbkV2ZW50OjM3MSxtYWluQXBwUmVmZXJyZXJJbnRlbnQ6MzcyLGxlYWRlckxvY2tFbmRlZDozNzMsbGVhZGVyTG9ja0FjcXVpcmVkOjM3NCwKZ29vZ2xlSGF0c0V2ZW50OjM3NSxwZXJzaXN0ZW50TGVuc0xhdW5jaEV2ZW50OjM3NixwYXJlbnRUb29sc0NoaWxkV2VsY29tZUNob3NlbkV2ZW50OjM3OCxicm93c2VUaHVtYm5haWxQcmVsb2FkRXZlbnQ6Mzc5LGZpbmFsUGF5bG9hZDozODAsbWR4RGlhbEFkZGl0aW9uYWxEYXRhVXBkYXRlRXZlbnQ6MzgxLHdlYk9yY2hlc3RyYXRpb25UYXNrTGlmZWN5Y2xlUmVjb3JkOjM4MixzdGFydHVwU2lnbmFsRXZlbnQ6Mzg0LGFjY291bnRFcnJvcjozODUsZ21zRGV2aWNlQ2hlY2tFdmVudDozODYsYWNjb3VudFNlbGVjdG9yRXZlbnQ6Mzg4LGFjY291bnRVaUNhbGxiYWNrczozODksbWR4RGlhbEFkZGl0aW9uYWxEYXRhUHJvYmVFdmVudDozOTAsZG93bmxvYWRzU2VhcmNoSWNpbmdBcGlTdGF0czozOTEsZG93bmxvYWRzU2VhcmNoSW5kZXhVcGRhdGVkRXZlbnQ6Mzk3LGRvd25sb2Fkc1NlYXJjaEluZGV4U25hcHNob3Q6Mzk4LGRhdGFQdXNoQ2xpZW50RXZlbnQ6MzkyLGtpZHNDYXRlZ29yeVNlbGVjdGVkRXZlbnQ6MzkzLAptZHhEZXZpY2VNYW5hZ2VtZW50U25hcHNob3RFdmVudDozOTQscHJlZmV0Y2hSZXF1ZXN0ZWQ6Mzk1LHByZWZldGNoYWJsZUNvbW1hbmRFeGVjdXRlZDozOTYsZ2VsRGVidWdnaW5nRXZlbnQ6Mzk5LHdlYkxpbmtUdHNQbGF5RW5kOjQwMCxjbGlwVmlld0ludmFsaWQ6NDAxLHBlcnNpc3RlbnRTdG9yYWdlU3RhdGVDaGVja2VkOjQwMyxjYWNoZVdpcGVvdXRFdmVudDo0MDQscGxheWVyRXZlbnQ6NDEwLHNmdkVmZmVjdFBpcGVsaW5lU3RhcnRlZEV2ZW50OjQxMixzZnZFZmZlY3RQaXBlbGluZVBhdXNlZEV2ZW50OjQyOSxzZnZFZmZlY3RQaXBlbGluZUVuZGVkRXZlbnQ6NDEzLHNmdkVmZmVjdENob3NlbkV2ZW50OjQxNCxzZnZFZmZlY3RMb2FkZWRFdmVudDo0MTUsc2Z2RWZmZWN0VXNlckludGVyYWN0aW9uRXZlbnQ6NDY1LHNmdkVmZmVjdEZpcnN0RnJhbWVQcm9jZXNzZWRMYXRlbmN5RXZlbnQ6NDE2LHNmdkVmZmVjdEFnZ3JlZ2F0ZWRGcmFtZXNQcm9jZXNzZWRMYXRlbmN5RXZlbnQ6NDE3LApzZnZFZmZlY3RBZ2dyZWdhdGVkRnJhbWVzRHJvcHBlZEV2ZW50OjQxOCxzZnZFZmZlY3RQaXBlbGluZUVycm9yRXZlbnQ6NDMwLHNmdkVmZmVjdEdyYXBoRnJvemVuRXZlbnQ6NDE5LHNmdkVmZmVjdEdsVGhyZWFkQmxvY2tlZEV2ZW50OjQyMCxtZGVRb3NFdmVudDo1MTAsbWRlVmlkZW9DaGFuZ2VkRXZlbnQ6NDQyLG1kZVBsYXllclBlcmZvcm1hbmNlTWV0cmljczo0NzIsbWRlRXhwb3J0ZXJFdmVudDo0OTcsZ2VuZXJpY0NsaWVudEV4cGVyaW1lbnRFdmVudDo0MjMsaG9tZVByZWxvYWRUYXNrU2NoZWR1bGVkOjQyNCxob21lUHJlbG9hZFRhc2tFeGVjdXRlZDo0MjUsaG9tZVByZWxvYWRDYWNoZUhpdDo0MjYscG9seW1lclByb3BlcnR5Q2hhbmdlZEluT2JzZXJ2ZXI6NDI3LGFwcGxpY2F0aW9uU3RhcnRlZDo0MzEsbmV0d29ya0Nyb25ldFJ0dEJhdGNoOjQzMixuZXR3b3JrQ3JvbmV0UnR0U3VtbWFyeTo0MzMscmVwZWF0Q2hhcHRlckxvb3BFdmVudDo0MzYsc2Vla0NhbmNlbGxhdGlvbkV2ZW50OjQ2MiwKbG9ja01vZGVUaW1lb3V0RXZlbnQ6NDgzLGV4dGVybmFsVmlkZW9TaGFyZVRvWW91dHViZUF0dGVtcHQ6NTAxLHBhcmVudENvZGVFdmVudDo1MDIsb2ZmbGluZVRyYW5zZmVyU3RhcnRlZDo0LG11c2ljT2ZmbGluZU1peHRhcGVQcmVmZXJlbmNlc0NoYW5nZWQ6MTYsbWFuZ29EYWlseU5ld1ZpZGVvc05vdGlmaWNhdGlvbkF0dGVtcHQ6NDAsbWFuZ29EYWlseU5ld1ZpZGVvc05vdGlmaWNhdGlvbkVycm9yOjc3LGR0d3NQbGF5YmFja1N0YXJ0ZWQ6MTEyLGR0d3NUaWxlRmV0Y2hTdGFydGVkOjExMyxkdHdzVGlsZUZldGNoQ29tcGxldGVkOjExNCxkdHdzVGlsZUZldGNoU3RhdHVzQ2hhbmdlZDoxNDUsZHR3c0tleWZyYW1lRGVjb2RlckJ1ZmZlclNlbnQ6MTE1LGR0d3NUaWxlVW5kZXJmbG93ZWRPbk5vbmtleWZyYW1lOjExNixkdHdzQmFja2ZpbGxGZXRjaFN0YXR1c0NoYW5nZWQ6MTQzLGR0d3NCYWNrZmlsbFVuZGVyZmxvd2VkOjExNyxkdHdzQWRhcHRpdmVMZXZlbENoYW5nZWQ6MTI4LApibG9ja2luZ1Zpc2l0b3JJZFRpbWVvdXQ6Mjc3LGxpdGVTb2NpYWw6MTgsbW9iaWxlSnNJbnZvY2F0aW9uOjI5NyxiaXNjb3R0aUJhc2VkRGV0ZWN0aW9uOjQzOSxjb1dhdGNoU3RhdGVDaGFuZ2U6NDQwLGVtYmVkc1ZpZGVvRGF0YURpZENoYW5nZTo0NDEsc2hvcnRzRmlyc3Q6NDQzLGNydWlzZUNvbnRyb2xFdmVudDo0NDUscW9lQ2xpZW50TG9nZ2luZ0NvbnRleHQ6NDQ2LGF0dlJlY29tbWVuZGF0aW9uSm9iRXhlY3V0ZWQ6NDQ3LHR2aHRtbDVVc2VyRmVlZGJhY2s6NDQ4LHByb2R1Y2VyUHJvamVjdENyZWF0ZWQ6NDQ5LHByb2R1Y2VyUHJvamVjdE9wZW5lZDo0NTAscHJvZHVjZXJQcm9qZWN0RGVsZXRlZDo0NTEscHJvZHVjZXJQcm9qZWN0RWxlbWVudEFkZGVkOjQ1Myxwcm9kdWNlclByb2plY3RFbGVtZW50UmVtb3ZlZDo0NTQscHJvZHVjZXJBcHBTdGF0ZUNoYW5nZTo1MDkscHJvZHVjZXJQcm9qZWN0RGlza0luc3VmZmljaWVudEV4cG9ydEZhaWx1cmU6NTE2LHByb2R1Y2VyTWVkaWFTZXJ2aWNlc1Jlc2V0RGV0YWlsczo1MjIsCnR2aHRtbDVTaG93Q2xvY2tFdmVudDo0NTUsZGV2aWNlQ2FwYWJpbGl0eUNoZWNrTWV0cmljczo0NTYseW91dHViZUNsZWFyY3V0RXZlbnQ6NDYxLG9mZmxpbmVCcm93c2VGYWxsYmFja0V2ZW50OjQ2MyxnZXRDdHZUb2tlbkV2ZW50OjQ2NCxzdGFydHVwRHJvcHBlZEZyYW1lc1N1bW1hcnk6NDY2LHNjcmVlbnNob3RFdmVudDo0NjgsbWluaUFwcFBsYXlFdmVudDo0NjksZWxlbWVudHNEZWJ1Z0NvdW50ZXJzOjQ3MCxmb250TG9hZEV2ZW50OjQ3MSx3ZWJLaWxsc3dpdGNoUmVjZWl2ZWQ6NDczLHdlYktpbGxzd2l0Y2hFeGVjdXRlZDo0NzQsY2FtZXJhT3BlbkV2ZW50OjQ3NSxtYW51YWxTbW9vdGhuZXNzTWVhc3VyZW1lbnQ6NDc2LHR2aHRtbDVBcHBRdWFsaXR5RXZlbnQ6NDc3LHBvbHltZXJQcm9wZXJ0eUFjY2Vzc0V2ZW50OjQ3OSxtaW5pQXBwU2RrVXNhZ2U6NDgwLGNvYmFsdFRlbGVtZXRyeUV2ZW50OjQ4MSxjcm9zc0RldmljZVBsYXliYWNrOjQ4MixjaGFubmVsQ3JlYXRlZFdpdGhPYmFrZUltYWdlOjQ4NCwKY2hhbm5lbEVkaXRlZFdpdGhPYmFrZUltYWdlOjQ4NSxvZmZsaW5lRGVsZXRlRXZlbnQ6NDg2LGNyb3NzRGV2aWNlTm90aWZpY2F0aW9uVHJhbnNmZXI6NDg3LGFuZHJvaWRJbnRlbnRFdmVudDo0ODgsdW5wbHVnZ2VkQW1iaWVudEludGVybHVkZXNDb3VudGVyZmFjdHVhbEV2ZW50OjQ4OSxrZXlQbGF5c1BsYXliYWNrOjQ5MCxzaG9ydHNDcmVhdGlvbkZhbGxiYWNrRXZlbnQ6NDkzLHZzc0RhdGE6NDkxLGNhc3RNYXRjaDo0OTQsbWluaUFwcFBlcmZvcm1hbmNlTWV0cmljczo0OTUsdXNlckZlZWRiYWNrRXZlbnQ6NDk2LGtpZHNHdWVzdFNlc3Npb25NaXNtYXRjaDo0OTgsbXVzaWNTaWRlbG9hZGVkUGxheWxpc3RNaWdyYXRpb25FdmVudDo0OTksc2xlZXBUaW1lclNlc3Npb25GaW5pc2hFdmVudDo1MDAsd2F0Y2hFcFByb21vQ29uZmxpY3Q6NTAzLGlubmVydHViZVJlc3BvbnNlQ2FjaGVNZXRyaWNzOjUwNSxtaW5pQXBwQWRFdmVudDo1MDYsZGF0YVBsYW5VcHNlbGxFdmVudDo1MDcsCnByb2R1Y2VyUHJvamVjdFJlbmFtZWQ6NTA4LHByb2R1Y2VyTWVkaWFTZWxlY3Rpb25FdmVudDo1MTEsZW1iZWRzQXV0b3BsYXlTdGF0dXNDaGFuZ2VkOjUxMixyZW1vdGVDb25uZWN0RXZlbnQ6NTEzLGNvbm5lY3RlZFNlc3Npb25NaXNhdHRyaWJ1dGlvbkV2ZW50OjUxNCxwcm9kdWNlclByb2plY3RFbGVtZW50TW9kaWZpZWQ6NTE1LGFkc1NlZW5DbGllbnRMb2dnaW5nOjUxNyxwcm9kdWNlckV2ZW50OjUxOCx0dmh0bWw1Q2xlYW5TdGFydDo1MTksZGV2aWNlQWNjb3VudE1ldHJpY3NFdmVudDo1MjAsZGVycExvZ0V2ZW50OjUyMSxwbGF5YWJsZXNQb3J0YWxFdmVudDo1MjMsaXBWYWxpZGF0aW9uU3RhcnRlZDo1MjQsaXBWYWxpZGF0aW9uUmVjZWl2ZWQ6NTI1LHJlZWxzU2VxdWVuY2VNdXRhdGlvbkV2ZW50OjUyNyx3YXRjaFpvb21TdGF0ZUNoYW5nZTo1MjgsbWV0YWRhdGFFZGl0b3JFdmVudDo1Mjksa2lkc1ByaXNtYURlZXBsaW5rc0V2ZW50OjUzMCxjcmVhdGlvbk9yY2hlc3RyYXRpb25FdmVudDo1MzEsCmNvb3JkaW5hdGVkU2FtcGxpbmdUcmlnZ2VyZWQ6NTMyLHJlY2FwU2NyZWVuc2hvdEV2ZW50OjUzNCxtZHhMb2NhbE5ldHdvcmtQZXJtaXNzaW9uUmVxdWVzdEV2ZW50OjUzNixtZHhMb2NhbE5ldHdvcmtQZXJtaXNzaW9uUmVzcG9uc2VFdmVudDo1Mzcsc2Vzc2lvblJlcGxheUV2ZW50OjUzOCxzZXNzaW9uUmVwbGF5U3RhdHVzRXZlbnQ6NTM5LGxvZ2dpbmdSZWxpYWJpbGl0eVByb2JlOjU0MCxrZXlWYWx1ZVN0b3JlU3RhdHNFdmVudDo1NDEsZGV2aWNlTG9jYXRpb25QZXJtaXNzaW9uRXZlbnQ6NTQyLHJlbW90ZUNvbnRyb2xTdGFydGVkOjU0MyxyZW1vdGVDb250cm9sQ29tcGxldGVkOjU0NCxyZWVsc0Fkc0V2ZW50czo1NDUseXRsckxvYWRlclRlc3RIYXJuZXNzRXZlbnQ6NTQ3LGJpb21ldHJpY0F1dGhlbnRpY2F0aW9uRXZlbnQ6NTQ4LG1haW5BcHBMaWZlY3ljbGVFdmVudDo1NDksbXVzaWNEb3dubG9hZEJhY2tncm91bmRDb250aW51ZWRQcm9jZXNzaW5nVGFzazo1NTAsbXVzaWNNZXRhZGF0YU1pc21hdGNoRXZlbnQ6NTUxLApzY3JvbGxUb0NvbXBvbmVudENvbXBsZXRlZDo1NTIsZW50aXR5U3RvcmVUZWxlbWV0cnk6NTUzLHN0cmVhbWluZ0RhcmtMYXVuY2hFdmVudDo1NTQsY2hpbGRBY2NvdW50c0Rpc3BsYXlFdmVudDo1NTUsdHZmYXNQbGF5YmFja0NvbnRleHQ6NTU3LG1kZUMyUGFFdmVudDo1NTl9O3ZhciBoX3g9a08oIlNlcnZpY2VXb3JrZXJMb2dzRGF0YWJhc2UiLHtLYzp7U1dIZWFsdGhMb2c6e3Z4OjF9fSxzaGFyZWQ6ITAsdXBncmFkZToobixXKT0+e1coMSkmJkVSKFp5KG4sIlNXSGVhbHRoTG9nIix7a2V5UGF0aDoiaWQiLGF1dG9JbmNyZW1lbnQ6ITB9KSwic3dIZWFsdGhOZXdSZXF1ZXN0IixbImludGVyZmFjZSIsInRpbWVzdGFtcCJdKX0sCnZlcnNpb246MX0pO3ZhciBYaT17fSxYSHc9MDt2YXIgR1Q7dmFyIHJvPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5OPW5ldyBNYXA7dGhpcy5KPSExfXJlcXVlc3RDb21wbGV0ZShuLFcpe1cmJih0aGlzLko9ITApO249dGhpcy5yZW1vdmVQYXJhbXMobik7dGhpcy5OLmdldChuKXx8dGhpcy5OLnNldChuLFcpfWlzRW5kcG9pbnRDRlIobil7bj10aGlzLnJlbW92ZVBhcmFtcyhuKTtyZXR1cm4obj10aGlzLk4uZ2V0KG4pKT8hMTpuPT09ITEmJnRoaXMuSj8hMDpudWxsfXJlbW92ZVBhcmFtcyhuKXtyZXR1cm4gbi5zcGxpdCgiPyIpWzBdfX07cm8ucHJvdG90eXBlLnJlbW92ZVBhcmFtcz1yby5wcm90b3R5cGUucmVtb3ZlUGFyYW1zO3JvLnByb3RvdHlwZS5pc0VuZHBvaW50Q0ZSPXJvLnByb3RvdHlwZS5pc0VuZHBvaW50Q0ZSO3JvLnByb3RvdHlwZS5yZXF1ZXN0Q29tcGxldGU9cm8ucHJvdG90eXBlLnJlcXVlc3RDb21wbGV0ZTtyby5nZXRJbnN0YW5jZT1zYzt2YXIgTmI9Y2xhc3MgZXh0ZW5kcyBnLm9Xe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTt0aGlzLko9ITE7dGhpcy5OPXMydygpO3RoaXMuTi5TXygibmV0d29ya3N0YXR1cy1vbmxpbmUiLCgpPT57aWYodGhpcy5KJiZnLmwoIm9mZmxpbmVfZXJyb3JfaGFuZGxpbmciKSl7dmFyIG49JFEoKS5nZXQoImVycm9ycyIsITApO2lmKG4pe2ZvcihsZXQgVyBpbiBuKWlmKG5bV10pe2xldCBEPW5ldyBnLlF4KFcsInNlbnQgdmlhIG9mZmxpbmVfZXJyb3JzIik7RC5uYW1lPW5bV10ubmFtZTtELnN0YWNrPW5bV10uc3RhY2s7RC5sZXZlbD1uW1ddLmxldmVsO090KEQpfSRRKCkuc2V0KCJlcnJvcnMiLHt9LDI1OTJFMywhMCl9fX0pfVdHKCl7cmV0dXJuIHRoaXMuTi5XRygpfWxjKG4pe3RoaXMuTi5pc09ubGluZT1ufUxrKCl7dmFyIG49d2luZG93Lm5hdmlnYXRvci5vbkxpbmU7CnJldHVybiBuPT09dm9pZCAwPyEwOm59REgoKXt0aGlzLko9ITB9U18obixXKXtyZXR1cm4gdGhpcy5OLlNfKG4sVyl9aEoobil7cmV0dXJuIHJYKHRoaXMuTixuKX19O05iLnByb3RvdHlwZS5zZW5kTmV0d29ya0NoZWNrUmVxdWVzdD1OYi5wcm90b3R5cGUuaEo7TmIucHJvdG90eXBlLmxpc3Rlbj1OYi5wcm90b3R5cGUuU187TmIucHJvdG90eXBlLmVuYWJsZUVycm9yRmx1c2hpbmc9TmIucHJvdG90eXBlLkRIO05iLnByb3RvdHlwZS5nZXRXaW5kb3dTdGF0dXM9TmIucHJvdG90eXBlLkxrO05iLnByb3RvdHlwZS5uZXR3b3JrU3RhdHVzSGludD1OYi5wcm90b3R5cGUubGM7TmIucHJvdG90eXBlLmlzTmV0d29ya0F2YWlsYWJsZT1OYi5wcm90b3R5cGUuV0c7TmIuZ2V0SW5zdGFuY2U9cG07dmFyIGI2Wj1jbGFzcyBleHRlbmRzIGcub1d7Y29uc3RydWN0b3IoKXt2YXIgbj17dTI6ITAsRW86ITB9O3N1cGVyKCk7dGhpcy5OPXRoaXMuWD0wO3RoaXMuSj1wbSgpO3ZhciBXPWcucnIoInl0Lm5ldHdvcmtTdGF0dXNNYW5hZ2VyLmluc3RhbmNlLmxpc3RlbiIpLmJpbmQodGhpcy5KKTtXJiYobi5yYXRlTGltaXQ/KHRoaXMucmF0ZUxpbWl0PW4ucmF0ZUxpbWl0LFcoIm5ldHdvcmtzdGF0dXMtb25saW5lIiwoKT0+e1lRKHRoaXMsInB1YmxpY3l0bmV0d29ya3N0YXR1cy1vbmxpbmUiKX0pLFcoIm5ldHdvcmtzdGF0dXMtb2ZmbGluZSIsKCk9PntZUSh0aGlzLCJwdWJsaWN5dG5ldHdvcmtzdGF0dXMtb2ZmbGluZSIpfSkpOihXKCJuZXR3b3Jrc3RhdHVzLW9ubGluZSIsKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQoInB1YmxpY3l0bmV0d29ya3N0YXR1cy1vbmxpbmUiKX0pLFcoIm5ldHdvcmtzdGF0dXMtb2ZmbGluZSIsKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQoInB1YmxpY3l0bmV0d29ya3N0YXR1cy1vZmZsaW5lIil9KSkpfVdHKCl7dmFyIG49CmcucnIoInl0Lm5ldHdvcmtTdGF0dXNNYW5hZ2VyLmluc3RhbmNlLmlzTmV0d29ya0F2YWlsYWJsZSIpOwpyZXR1cm4gbj9uLmJpbmQodGhpcy5KKSgpOiEwfWxjKG4pe3ZhciBXPWcucnIoInl0Lm5ldHdvcmtTdGF0dXNNYW5hZ2VyLmluc3RhbmNlLm5ldHdvcmtTdGF0dXNIaW50IikuYmluZCh0aGlzLkopO1cmJlcobil9YXN5bmMgaEoobil7dmFyIFc9Zy5ycigieXQubmV0d29ya1N0YXR1c01hbmFnZXIuaW5zdGFuY2Uuc2VuZE5ldHdvcmtDaGVja1JlcXVlc3QiKS5iaW5kKHRoaXMuSik7cmV0dXJuIGcubCgic2tpcF9uZXR3b3JrX2NoZWNrX2lmX2NmciIpJiZzYygpLmlzRW5kcG9pbnRDRlIoImdlbmVyYXRlXzIwNCIpP25ldyBQcm9taXNlKEQ9Pnt0aGlzLmxjKHdpbmRvdy5uYXZpZ2F0b3I/Lm9uTGluZXx8ITApO0QodGhpcy5XRygpKX0pOlc/VyhuKTohMH19O3ZhciBTYyxHemg9Y2xhc3MgZXh0ZW5kcyBEejF7Y29uc3RydWN0b3IoKXtTY3x8KFNjPW5ldyBiNlopO3N1cGVyKHtnRTp7dGk6dnZpLFRNOmJHQyxpNDpudjIsSzY6V19DLGhZOkRFeCxzZXQ6YUJTfSx5RzpTYyxoYW5kbGVFcnJvcjoobixXLEQpPT57dmFyIGI9RD8uZXJyb3I/LmNvZGU7Yj09PTQwMHx8Yj09PTQxNT8obj1uZXcgZy5ReChuLm1lc3NhZ2UsVyxEPy5lcnJvcj8uY29kZSksWkUobix2b2lkIDAsdm9pZCAwLHZvaWQgMCwhMCkpOk90KG4pfSwKRjI6WkUsTG06JEV0LG5vdzpnLlIsaEw6cUt3LEEkOmcuRHkoKSx1WjoicHVibGljeXRuZXR3b3Jrc3RhdHVzLW9ubGluZSIsTkE6InB1YmxpY3l0bmV0d29ya3N0YXR1cy1vZmZsaW5lIixDcjohMCxLcjouMSxIRjp2MCgicG90ZW50aWFsX2VzZl9lcnJvcl9saW1pdCIsMTApLEVxOmcubCxOaDohKFI5KCkmJmcuSVAoZG9jdW1lbnQubG9jYXRpb24udG9TdHJpbmcoKSkhPT0id3d3LnlvdXR1YmUtbm9jb29raWUuY29tIil9KTt0aGlzLmo9bmV3IGcuS1Y7Zy5sKCJuZXR3b3JrbGVzc19pbW1lZGlhdGVseV9kcm9wX2FsbF9yZXF1ZXN0cyIpJiZremkoKTt2eigiTG9nc0RhdGFiYXNlVjIiKX13cml0ZVRoZW5TZW5kKG4sVyl7V3x8KFc9e30pO1c9Zm0obixXKTtSOSgpfHwodGhpcy5OPSExKTtzdXBlci53cml0ZVRoZW5TZW5kKG4sVyl9c2VuZFRoZW5Xcml0ZShuLFcsRCl7V3x8KFc9e30pO1c9Zm0obixXKTtSOSgpfHwodGhpcy5OPSExKTtzdXBlci5zZW5kVGhlbldyaXRlKG4sVyxEKX1zZW5kQW5kV3JpdGUobiwKVyl7V3x8KFc9e30pO1c9Zm0obixXKTtSOSgpfHwodGhpcy5OPSExKTtzdXBlci5zZW5kQW5kV3JpdGUobixXKX1hd2FpdEluaXRpYWxpemF0aW9uKCl7cmV0dXJuIHRoaXMuai5wcm9taXNlfX07dmFyIEpJPWcucWkueXROZXR3b3JrbGVzc0xvZ2dpbmdJbml0aWFsaXphdGlvbk9wdGlvbnN8fHtpc053bEluaXRpYWxpemVkOiExfTtnLkdiKCJ5dE5ldHdvcmtsZXNzTG9nZ2luZ0luaXRpYWxpemF0aW9uT3B0aW9ucyIsSkkpO2cuZDQ9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5jb25maWdfPW51bGw7bj90aGlzLmNvbmZpZ189bjpJNygpJiYodGhpcy5jb25maWdfPWcuUzkoKSl9aXNSZWFkeSgpeyF0aGlzLmNvbmZpZ18mJkk3KCkmJih0aGlzLmNvbmZpZ189Zy5TOSgpKTtyZXR1cm4hIXRoaXMuY29uZmlnX319O3ZhciB2Z3c9Zy5xaS55dFB1YnN1YlB1YnN1Ykluc3RhbmNlfHxuZXcgQkssQUk9Zy5xaS55dFB1YnN1YlB1YnN1YlN1YnNjcmliZWRLZXlzfHx7fSxLbT1nLnFpLnl0UHVic3ViUHVic3ViVG9waWNUb0tleXN8fHt9LG1nPWcucWkueXRQdWJzdWJQdWJzdWJJc1N5bmNocm9ub3VzfHx7fTtCSy5wcm90b3R5cGUuc3Vic2NyaWJlPUJLLnByb3RvdHlwZS5zdWJzY3JpYmU7QksucHJvdG90eXBlLnVuc3Vic2NyaWJlQnlLZXk9QksucHJvdG90eXBlLmpLO0JLLnByb3RvdHlwZS5wdWJsaXNoPUJLLnByb3RvdHlwZS5XSjtCSy5wcm90b3R5cGUuY2xlYXI9QksucHJvdG90eXBlLmNsZWFyO2cuR2IoInl0UHVic3ViUHVic3ViSW5zdGFuY2UiLHZndyk7Zy5HYigieXRQdWJzdWJQdWJzdWJUb3BpY1RvS2V5cyIsS20pO2cuR2IoInl0UHVic3ViUHVic3ViSXNTeW5jaHJvbm91cyIsbWcpO2cuR2IoInl0UHVic3ViUHVic3ViU3Vic2NyaWJlZEtleXMiLEFJKTt2YXIgb0k9e307Zy5peChnLkZpLGcuRk0pO2cuRT1nLkZpLnByb3RvdHlwZTtnLkUuc3Vic2NyaWJlPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gdGhpcy5xTigpPzA6dGhpcy5ZJC5zdWJzY3JpYmUobixXLEQpfTsKZy5FLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKG4sVyxEKXtyZXR1cm4gdGhpcy5xTigpPyExOnRoaXMuWSQudW5zdWJzY3JpYmUobixXLEQpfTsKZy5FLmpLPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLnFOKCk/ITE6dGhpcy5ZJC5qSyhuKX07CmcuRS5XSj1mdW5jdGlvbihuLFcpe3JldHVybiB0aGlzLnFOKCk/ITE6dGhpcy5ZJC5XSi5hcHBseSh0aGlzLlkkLGFyZ3VtZW50cyl9OwpnLkUuaCQ9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgaW4gbil0aGlzLnN1YnNjcmliZShELG5bRF0sVyl9OwpnLkUuTTk9ZnVuY3Rpb24obixXKXtmb3IobGV0IEQgaW4gbil0aGlzLnVuc3Vic2NyaWJlKEQsbltEXSxXKX07dmFyIHdvPURhdGUubm93KCkudG9TdHJpbmcoKTt2YXIgYnk9e307Zy5MWD1TeW1ib2woImluamVjdGlvbkRlcHMiKTt2YXIga289Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5rZXk9bn19O3ZhciBwSHI9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLko9bmV3IE1hcDt0aGlzLlc9bmV3IE1hcDt0aGlzLk49bmV3IE1hcH1yZXNvbHZlKG4pe3JldHVybiBuIGluc3RhbmNlb2Yga28/Z0UodGhpcyxuLmtleSxbXSwhMCk6Z0UodGhpcyxuLFtdKX19O2cuQUw9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5uYW1lPW59dG9TdHJpbmcoKXtyZXR1cm5gSW5qZWN0aW9uVG9rZW4oJHt0aGlzLm5hbWV9KWB9fTt2YXIgWDQ7dmFyIEdwPXdpbmRvdzt2YXIgZlg9Zy5sKCJ3ZWJfZW5hYmxlX2xpZmVjeWNsZV9tb25pdG9yaW5nIikmJnRwKCkhPT0wLEhHdD1nLmwoIndlYl9lbmFibGVfbGlmZWN5Y2xlX21vbml0b3JpbmciKTt2YXIgQXZqPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuc2NoZWR1bGVyPWcuRHkoKTt0aGlzLko9bmV3IGcuS1Y7dGhpcy5OPW47Zm9yKGxldCBXPTA7Vzx0aGlzLk4ubGVuZ3RoO1crKyl7bGV0IEQ9dGhpcy5OW1ddO249KCk9PntELkphKCk7dGhpcy5OW1ddLk1KPSEwO3RoaXMuTi5ldmVyeSh2PT52Lk1KPT09ITApJiZ0aGlzLkoucmVzb2x2ZSgpfTsKbGV0IGI9Zy5WeCgwLG4sRC5wcmlvcml0eT8/MCk7dGhpcy5OW1ddPXsuLi5ELEphOm4sam9iSWQ6Yn19fWNhbmNlbCgpe2ZvcihsZXQgbiBvZiB0aGlzLk4pbi5qb2JJZD09PXZvaWQgMHx8bi5NSnx8dGhpcy5zY2hlZHVsZXIuc08obi5qb2JJZCksbi5NSj0hMDt0aGlzLkoucmVzb2x2ZSgpfX07dmFyIGt4aD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdGU9Im5vbmUiO3RoaXMucGx1Z2lucz1bXTt0aGlzLko9dm9pZCAwO3RoaXMuWD17fTtmWCYmJG8odGhpcy5zdGF0ZSl9Z2V0IGN1cnJlbnRTdGF0ZSgpe3JldHVybiB0aGlzLnN0YXRlfWluc3RhbGwobil7dGhpcy5wbHVnaW5zLnB1c2gobik7cmV0dXJuIHRoaXN9dW5pbnN0YWxsKC4uLm4pe24uZm9yRWFjaChXPT57Vz10aGlzLnBsdWdpbnMuaW5kZXhPZihXKTtXPi0xJiZ0aGlzLnBsdWdpbnMuc3BsaWNlKFcsMSl9KX10cmFuc2l0aW9uKG4sVyl7ZlgmJnJFKHRoaXMuc3RhdGUpOwp2YXIgRD10aGlzLnRyYW5zaXRpb25zLmZpbmQoYj0+QXJyYXkuaXNBcnJheShiLmZyb20pP2IuZnJvbS5maW5kKHY9PnY9PT10aGlzLnN0YXRlJiZiLnRvPT09bik6Yi5mcm9tPT09dGhpcy5zdGF0ZSYmYi50bz09PW4pOwppZihEKXt0aGlzLlcmJihZS2oodGhpcy5XKSx0aGlzLlc9dm9pZCAwKTtmUjIodGhpcyxuLFcpO3RoaXMuc3RhdGU9bjtmWCYmJG8odGhpcy5zdGF0ZSk7RD1ELmFjdGlvbi5iaW5kKHRoaXMpO2xldCBiPXRoaXMucGx1Z2lucy5maWx0ZXIodj0+dltuXSkubWFwKHY9PnZbbl0pOwpEKFNLQyh0aGlzLGIpLFcpfWVsc2UgdGhyb3cgRXJyb3IoYG5vIHRyYW5zaXRpb24gc3BlY2lmaWVkIGZyb20gJHt0aGlzLnN0YXRlfSB0byAke259YCk7fX07dmFyIG1Fdz1jbGFzcyBleHRlbmRzIGt4aHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7dGhpcy5OPW51bGw7dGhpcy5KPTEwO3RoaXMudHJhbnNpdGlvbnM9W3tmcm9tOiJub25lIix0bzoiYXBwbGljYXRpb25fbmF2aWdhdGluZyIsYWN0aW9uOnRoaXMuan0se2Zyb206ImFwcGxpY2F0aW9uX25hdmlnYXRpbmciLHRvOiJub25lIixhY3Rpb246dGhpcy5WfSx7ZnJvbToiYXBwbGljYXRpb25fbmF2aWdhdGluZyIsdG86ImFwcGxpY2F0aW9uX25hdmlnYXRpbmciLGFjdGlvbjooKT0+e319LAp7ZnJvbToibm9uZSIsdG86Im5vbmUiLGFjdGlvbjooKT0+e319XX1qKG4sVyl7dGhpcy5OPWcuY0IoMCwoKT0+e3RoaXMuY3VycmVudFN0YXRlPT09ImFwcGxpY2F0aW9uX25hdmlnYXRpbmciJiZ0aGlzLnRyYW5zaXRpb24oIm5vbmUiKX0sNUUzKTsKbihXPy5ldmVudCl9VihuLFcpe3RoaXMuTiYmKHRhLnNPKHRoaXMuTiksdGhpcy5OPW51bGwpO24oVz8uZXZlbnQpfX0sSnA7dmFyIFV5PVtdO2cuR2IoInl0LmxvZ2dpbmcudHJhbnNwb3J0LmdldFNjcmFwZWRHZWxQYXlsb2FkcyIsZnVuY3Rpb24oKXtyZXR1cm4gVXl9KTt2YXIgbTM9dm9pZCAwLFNaPXZvaWQgMDt2YXIgb2I9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN0b3JlPXt9O3RoaXMuTj17fX1zdG9yZVBheWxvYWQobixXKXtuPU85KG4pO3RoaXMuc3RvcmVbbl0/dGhpcy5zdG9yZVtuXS5wdXNoKFcpOih0aGlzLk49e30sdGhpcy5zdG9yZVtuXT1bV10pO2cubCgibW9yZV9hY2N1cmF0ZV9nZWxfcGFyc2VyIikmJihXPW5ldyBDdXN0b21FdmVudCgiVFJBTlNQT1JUSU5HX05FV19FVkVOVCIpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KFcpKTtyZXR1cm4gbn1zbWFydEV4dHJhY3RNYXRjaGluZ0VudHJpZXMobil7aWYoIW4ua2V5cy5sZW5ndGgpcmV0dXJuW107dmFyIFc9WkEodGhpcyxuLmtleXMuc3BsaWNlKDAsMSlbMF0pLEQ9W107Zm9yKGxldCBiPTA7YjxXLmxlbmd0aDtiKyspdGhpcy5zdG9yZVtXW2JdXSYmbi5zaXplTGltaXQmJih0aGlzLnN0b3JlW1dbYl1dLmxlbmd0aDw9bi5zaXplTGltaXQ/KEQucHVzaCguLi50aGlzLnN0b3JlW1dbYl1dKSxkZWxldGUgdGhpcy5zdG9yZVtXW2JdXSk6CkQucHVzaCguLi50aGlzLnN0b3JlW1dbYl1dLnNwbGljZSgwLG4uc2l6ZUxpbWl0KSkpO24/LnNpemVMaW1pdCYmRC5sZW5ndGg8bj8uc2l6ZUxpbWl0JiYobi5zaXplTGltaXQtPUQubGVuZ3RoLEQucHVzaCguLi50aGlzLnNtYXJ0RXh0cmFjdE1hdGNoaW5nRW50cmllcyhuKSkpO3JldHVybiBEfWV4dHJhY3RNYXRjaGluZ0VudHJpZXMobil7bj1aQSh0aGlzLG4pO3ZhciBXPVtdO2ZvcihsZXQgRD0wO0Q8bi5sZW5ndGg7RCsrKXRoaXMuc3RvcmVbbltEXV0mJihXLnB1c2goLi4udGhpcy5zdG9yZVtuW0RdXSksZGVsZXRlIHRoaXMuc3RvcmVbbltEXV0pO3JldHVybiBXfWdldFNlcXVlbmNlQ291bnQobil7bj1aQSh0aGlzLG4pO3ZhciBXPTA7Zm9yKGxldCBEPTA7RDxuLmxlbmd0aDtEKyspVys9dGhpcy5zdG9yZVtuW0RdXT8ubGVuZ3RofHwwO3JldHVybiBXfX07b2IucHJvdG90eXBlLmdldFNlcXVlbmNlQ291bnQ9b2IucHJvdG90eXBlLmdldFNlcXVlbmNlQ291bnQ7Cm9iLnByb3RvdHlwZS5leHRyYWN0TWF0Y2hpbmdFbnRyaWVzPW9iLnByb3RvdHlwZS5leHRyYWN0TWF0Y2hpbmdFbnRyaWVzO29iLnByb3RvdHlwZS5zbWFydEV4dHJhY3RNYXRjaGluZ0VudHJpZXM9b2IucHJvdG90eXBlLnNtYXJ0RXh0cmFjdE1hdGNoaW5nRW50cmllcztvYi5wcm90b3R5cGUuc3RvcmVQYXlsb2FkPW9iLnByb3RvdHlwZS5zdG9yZVBheWxvYWQ7dmFyIHpfdD1uZXcgZy5BTCgiRmluY2hDb25maWdNYW5hZ2VyU2VydmljZSIpO3ZhciBVRXc9djAoImluaXRpYWxfZ2VsX2JhdGNoX3RpbWVvdXQiLDJFMyksWkdaPXYwKCJnZWxfcXVldWVfdGltZW91dF9tYXhfbXMiLDZFNCkseXZTPXYwKCJnZWxfbWluX2JhdGNoX3NpemUiLDUpLEU5PXZvaWQgMCx5Uj1udWxsLG1zPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5YPXRoaXMuSj10aGlzLlc9MDt0aGlzLk49ITF9fSxUZ2k9bmV3IG1zLGxSQz1uZXcgbXMsdDY9bmV3IG1zLEdVPW5ldyBtcyxXcywkQT0hMCxQcz0xLGx5PW5ldyBNYXAsZXk9Zy5xaS55dExvZ2dpbmdUcmFuc3BvcnRUb2tlbnNUb0N0dFRhcmdldElkc198fHt9O2cuR2IoInl0TG9nZ2luZ1RyYW5zcG9ydFRva2Vuc1RvQ3R0VGFyZ2V0SWRzXyIsZXkpO3ZhciBMVT1nLnFpLnl0TG9nZ2luZ1RyYW5zcG9ydFRva2Vuc1RvSnNwYkN0dFRhcmdldElkc198fHt9O2cuR2IoInl0TG9nZ2luZ1RyYW5zcG9ydFRva2Vuc1RvSnNwYkN0dFRhcmdldElkc18iLExVKTt2YXIgUmI9e30senA9ITE7dmFyIGlSPWcucWkueXRMb2dnaW5nR2VsU2VxdWVuY2VJZE9ial98fHt9O2cuR2IoInl0TG9nZ2luZ0dlbFNlcXVlbmNlSWRPYmpfIixpUik7dmFyIG0xPVtdO3ZhciBWNCxLaj1nLnFpLnl0TG9nZ2luZ0RvY0RvY3VtZW50Tm9uY2VfO0tqfHwoS2o9Zy5SSSgxNiksZy5HYigieXRMb2dnaW5nRG9jRG9jdW1lbnROb25jZV8iLEtqKSk7VjQ9S2o7dmFyIEZfVT17Qnc6MCxGNjoxLFdROjIsTjM6MyxxdDo0LFlTOjUsUWM6NixMTTo3LEk2Ojgsc0M6OSxaTToxMCxiUzoxMSwwOiJERUZBVUxUIiwxOiJDSEFUIiwyOiJDT05WRVJTQVRJT05TIiwzOiJNSU5JUExBWUVSIiw0OiJESUFMT0ciLDU6IlZPWiIsNjoiTVVTSUNfV0FUQ0hfVEFCUyIsNzoiU0hBUkUiLDg6IlBVU0hfTk9USUZJQ0FUSU9OUyIsOToiUklDSF9HUklEX1dBVENIIiwxMDoiUElDVFVSRV9JTl9QSUNUVVJFIiwxMToiTUVESUFfQ0xJRU5UIn07dmFyIGp6Wj0xLGxSPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuTj1ufWdldEFzSnNvbigpe3ZhciBuPXt9O3RoaXMuTi50cmFja2luZ1BhcmFtcyE9PXZvaWQgMD9uLnRyYWNraW5nUGFyYW1zPXRoaXMuTi50cmFja2luZ1BhcmFtczoobi52ZVR5cGU9dGhpcy5OLnZlVHlwZSx0aGlzLk4udmVDb3VudGVyIT09dm9pZCAwJiYobi52ZUNvdW50ZXI9dGhpcy5OLnZlQ291bnRlciksdGhpcy5OLmVsZW1lbnRJbmRleCE9PXZvaWQgMCYmKG4uZWxlbWVudEluZGV4PXRoaXMuTi5lbGVtZW50SW5kZXgpKTt0aGlzLk4uZGF0YUVsZW1lbnQhPT12b2lkIDAmJihuLmRhdGFFbGVtZW50PXRoaXMuTi5kYXRhRWxlbWVudC5nZXRBc0pzb24oKSk7dGhpcy5OLnlvdXR1YmVEYXRhIT09dm9pZCAwJiYobi55b3V0dWJlRGF0YT10aGlzLk4ueW91dHViZURhdGEpO3RoaXMuTi5pc0NvdW50ZXJmYWN0dWFsJiYobi5pc0NvdW50ZXJmYWN0dWFsPSEwKTtyZXR1cm4gbn1nZXRBc0pzcGIoKXt2YXIgbj1uZXcgcVlTOwp0aGlzLk4udHJhY2tpbmdQYXJhbXMhPT12b2lkIDA/bi5zZXRUcmFja2luZ1BhcmFtcyh0aGlzLk4udHJhY2tpbmdQYXJhbXMpOih0aGlzLk4udmVUeXBlIT09dm9pZCAwJiZveihuLDIsZy55UCh0aGlzLk4udmVUeXBlKSksdGhpcy5OLnZlQ291bnRlciE9PXZvaWQgMCYmb3oobiw2LGcueVAodGhpcy5OLnZlQ291bnRlcikpLHRoaXMuTi5lbGVtZW50SW5kZXghPT12b2lkIDAmJm96KG4sMyxnLnlQKHRoaXMuTi5lbGVtZW50SW5kZXgpKSx0aGlzLk4uaXNDb3VudGVyZmFjdHVhbCYmb3oobiw1LE9fKCEwKSkpO2lmKHRoaXMuTi5kYXRhRWxlbWVudCE9PXZvaWQgMCl7dmFyIFc9dGhpcy5OLmRhdGFFbGVtZW50LmdldEFzSnNwYigpOyQ5KG4scVlTLDcsVyl9dGhpcy5OLnlvdXR1YmVEYXRhIT09dm9pZCAwJiYkOShuLGU0dyw4LHRoaXMuTi5qc3BiWW91dHViZURhdGEpO3JldHVybiBufXRvU3RyaW5nKCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0QXNKc29uKCkpfWlzQ2xpZW50VmUoKXtyZXR1cm4hdGhpcy5OLnRyYWNraW5nUGFyYW1zJiYKISF0aGlzLk4udmVUeXBlfWdldExvZ2dpbmdEaXJlY3RpdmVzKCl7cmV0dXJuIHRoaXMuTi5sb2dnaW5nRGlyZWN0aXZlc319O2cuR2IoInl0X2xvZ2dpbmdfc2NyZWVuLmdldFJvb3RWZVR5cGUiLEZSKTtnLkdiKCJ5dF9sb2dnaW5nX3NjcmVlbi5nZXRDdXJyZW50Q3NuIixnLlJ2KTtnLkdiKCJ5dF9sb2dnaW5nX3NjcmVlbi5nZXRDdHRBdXRoSW5mbyIsUTQpO2cuR2IoInl0X2xvZ2dpbmdfc2NyZWVuLnNldEN1cnJlbnRTY3JlZW4iLGNzKTt2YXIgUl9NPSJhYnNvbHV0ZV9leHBlcmltZW50cyBhcHAgY29uZGl0aW9uYWxfZXhwZXJpbWVudHMgZGVidWdjc3MgZGVidWdqcyBleHBmbGFnIGZvcmNlZF9leHBlcmltZW50cyBwYmogcGJqcmVsb2FkIHNiYiBzcGYgc3BmcmVsb2FkIHNyX2Juc19hZGRyZXNzIHN0dGljayIuc3BsaXQoIiAiKTt2YXIgayRiPVt7RzE6bj0+YENhbm5vdCByZWFkIHByb3BlcnR5ICcke24ua2V5fSdgLApZejp7RXJyb3I6W3t3YjovKFBlcm1pc3Npb24gZGVuaWVkKSB0byBhY2Nlc3MgcHJvcGVydHkgIihbXiddKykiLyxncm91cHM6WyJyZWFzb24iLCJrZXkiXX1dLFR5cGVFcnJvcjpbe3diOi9DYW5ub3QgcmVhZCBwcm9wZXJ0eSAnKFteJ10rKScgb2YgKG51bGx8dW5kZWZpbmVkKS8sZ3JvdXBzOlsia2V5IiwidmFsdWUiXX0se3diOi9cdTY1ZTBcdTZjZDVcdTgzYjdcdTUzZDZcdTY3MmFcdTViOWFcdTRlNDlcdTYyMTYgKG51bGx8dW5kZWZpbmVkKSBcdTVmMTVcdTc1MjhcdTc2ODRcdTVjNWVcdTYwMjdcdTIwMWMoW15cdTIwMWRdKylcdTIwMWQvLGdyb3VwczpbInZhbHVlIiwia2V5Il19LHt3YjovXHVjODE1XHVjNzU4XHViNDE4XHVjOWMwIFx1YzU0YVx1Yzc0YyBcdWI2MTBcdWIyOTQgKG51bGx8dW5kZWZpbmVkKSBcdWNjMzhcdWM4NzBcdWM3NzggJyhbXiddKyknIFx1YzE4ZFx1YzEzMVx1Yzc0NCBcdWFjMDBcdWM4MzhcdWM2MmMgXHVjMjE4IFx1YzVjNlx1YzJiNVx1YjJjOFx1YjJlNC4vLApncm91cHM6WyJ2YWx1ZSIsImtleSJdfSx7d2I6L05vIHNlIHB1ZWRlIG9idGVuZXIgbGEgcHJvcGllZGFkICcoW14nXSspJyBkZSByZWZlcmVuY2lhIG51bGEgbyBzaW4gZGVmaW5pci8sZ3JvdXBzOlsia2V5Il19LHt3YjovVW5hYmxlIHRvIGdldCBwcm9wZXJ0eSAnKFteJ10rKScgb2YgKHVuZGVmaW5lZCBvciBudWxsKSByZWZlcmVuY2UvLGdyb3VwczpbImtleSIsInZhbHVlIl19LHt3YjovKG51bGwpIGlzIG5vdCBhbiBvYmplY3QgXChldmFsdWF0aW5nICcoPzooW14uXSspXC4pPyhbXiddKyknXCkvLGdyb3VwczpbInZhbHVlIiwiYmFzZSIsImtleSJdfV19fSx7RzE6bj0+YENhbm5vdCBjYWxsICcke24ua2V5fSdgLApZejp7VHlwZUVycm9yOlt7d2I6Lyg/OihbXiBdKyk/XC4pPyhbXiBdKykgaXMgbm90IGEgZnVuY3Rpb24vLGdyb3VwczpbImJhc2UiLCJrZXkiXX0se3diOi8oW14gXSspIGNhbGxlZCBvbiAobnVsbCBvciB1bmRlZmluZWQpLyxncm91cHM6WyJrZXkiLCJ2YWx1ZSJdfSx7d2I6L09iamVjdCAoLiopIGhhcyBubyBtZXRob2QgJyhbXiBdKyknLyxncm91cHM6WyJiYXNlIiwia2V5Il19LHt3YjovT2JqZWN0IGRvZXNuJ3Qgc3VwcG9ydCBwcm9wZXJ0eSBvciBtZXRob2QgJyhbXiBdKyknLyxncm91cHM6WyJrZXkiXX0se3diOi9cdTMwYWFcdTMwZDZcdTMwYjhcdTMwYTdcdTMwYWZcdTMwYzhcdTMwNmYgJyhbXiddKyknIFx1MzBkN1x1MzBlZFx1MzBkMVx1MzBjNlx1MzBhM1x1MzA3ZVx1MzA1Zlx1MzA2Zlx1MzBlMVx1MzBiZFx1MzBjM1x1MzBjOVx1MzA5Mlx1MzBiNVx1MzBkZFx1MzBmY1x1MzBjOFx1MzA1N1x1MzA2Nlx1MzA0NFx1MzA3ZVx1MzA1Ylx1MzA5My8sZ3JvdXBzOlsia2V5Il19LAp7d2I6L1x1YWMxY1x1Y2NiNFx1YWMwMCAnKFteJ10rKScgXHVjMThkXHVjMTMxXHVjNzc0XHViMDk4IFx1YmE1NFx1YzExY1x1YjRkY1x1Yjk3YyBcdWM5YzBcdWM2ZDBcdWQ1NThcdWM5YzAgXHVjNTRhXHVjMmI1XHViMmM4XHViMmU0Li8sZ3JvdXBzOlsia2V5Il19XX19LHtHMTpuPT5gJHtuLmtleX0gaXMgbm90IGRlZmluZWRgLApZejp7UmVmZXJlbmNlRXJyb3I6W3t3YjovKC4qKSBpcyBub3QgZGVmaW5lZC8sZ3JvdXBzOlsia2V5Il19LHt3YjovQ2FuJ3QgZmluZCB2YXJpYWJsZTogKC4qKS8sZ3JvdXBzOlsia2V5Il19XX19XTt2YXIgYVJTPXtOOTpbXSxrbzpbe2NhbGxiYWNrOlF6MSx3ZWlnaHQ6NTAwfSx7Y2FsbGJhY2s6Vld4LHdlaWdodDo1MDB9XX07dmFyIGN2aD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMua289W107dGhpcy5OOT1bXX19LHZhO3ZhciBTaT1uZXcgQks7dmFyIElVPW5ldyBTZXQsdFA9MCx4SE09MCxBUD0wLHY5Mj1bXSxibjI9W10sTE5DPVsiUGhhbnRvbUpTIiwiR29vZ2xlYm90IiwiVE8gU1RPUCBUSElTIFNFQ1VSSVRZIFNDQU4gZ28vc2NhbiJdO0RhdGUubm93KCk7dmFyIFpwPWNsYXNzIGV4dGVuZHMgbzd7Y29uc3RydWN0b3Iobil7c3VwZXIoYXJndW1lbnRzKTt0aGlzLmNzbj1ufX0sVG89bmV3IGQzKCJzY3JlZW4tY3JlYXRlZCIsWnApLEM0PVtdLGVUaD1HJGosQmE9MCxVYT1uZXcgTWFwLHk1PW5ldyBNYXAsRWE9bmV3IE1hcDt2YXIgaHIyPWNsYXNze2ZsdXNoKG49W10sVz0hMSl7aWYoZy5sKCJlbmFibGVfY2xpZW50X3N0cmVhbXpfd2ViIikpZm9yKGxldCBEIG9mIG4pbj11NihEKSx0aGlzLk4mJiQ5KG4sT2l4LDIsdGhpcy5OKSxuPXtzZXJpYWxpemVkSW5jcmVtZW50QmF0Y2g6Zy5FQShuLkooKSl9LGcuelUoInN0cmVhbXpJbmNyZW1lbnRlZCIsbix7c2VuZElzb2xhdGVkUGF5bG9hZDpXfSl9fSxYbkM9Y2xhc3MgZXh0ZW5kcyBocjJ7Y29uc3RydWN0b3IoKXtzdXBlcigpfX0sU0hpPWNsYXNzIGV4dGVuZHMgaHIye2NvbnN0cnVjdG9yKG4pe3N1cGVyKCk7dmFyIFc9bmV3IE9peDt2YXIgRD1uZXcgS1VDO0Q9Zy5TRShELDEsImJvdGd1YXJkIik7bj1nLlNFKEQsMixuKTt0aGlzLk49cmUoVyxLVUMsMSxQWmgsbil9fTt2YXIgVnAsSU0yPW5ldyBNYXA7dmFyIFQkYj1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bmV3IFFLKG4pfXNldChuLFcsRCl7RD1EIT09dm9pZCAwP0RhdGUubm93KCkrRDp2b2lkIDA7dGhpcy5OLnNldChuLFcsRCl9Z2V0KG4pe3JldHVybiB0aGlzLk4uZ2V0KG4pfXJlbW92ZShuKXt0aGlzLk4ucmVtb3ZlKG4pfX07dmFyIHJTaD1udWxsO3ZhciBzbz0idG9rZW5zIGNvbnNpc3RlbmN5IHNlcnZpY2VfcGFyYW1zIG1zcyBjbGllbnRfbG9jYXRpb24gZW50aXRpZXMgYWRibG9ja19kZXRlY3Rpb24gcmVzcG9uc2VfcmVjZWl2ZWRfY29tbWFuZHMgc3RvcmUgbWFuaWZlc3QgcGxheWVyX3ByZWxvYWQgc2hvcnRzX3ByZWZldGNoIHJlc29sdmVfdXJsX3ByZWZldGNoIi5zcGxpdCgiICIpO3ZhciBzWVU9bmV3IE1hcChbWyJkYXJrIiwiVVNFUl9JTlRFUkZBQ0VfVEhFTUVfREFSSyJdLFsibGlnaHQiLCJVU0VSX0lOVEVSRkFDRV9USEVNRV9MSUdIVCJdXSk7dmFyIERNPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5OPXt9O2lmKHRoaXMuSj1nLm1qKCkpe2xldCBuPWcuU2QoIkNPTlNJU1RFTkNZIik7biYmYVUodGhpcyx7ZW5jcnlwdGVkVG9rZW5KYXJDb250ZW50czpufSl9fWhhbmRsZVJlc3BvbnNlKG4sVyl7aWYoIVcpdGhyb3cgRXJyb3IoInJlcXVlc3QgbmVlZHMgdG8gYmUgcGFzc2VkIGludG8gQ29uc2lzdGVuY3lTZXJ2aWNlIik7Vz1XLmlubmVyVHViZVJlcXVlc3QuY29udGV4dD8ucmVxdWVzdD8uY29uc2lzdGVuY3lUb2tlbkphcnN8fFtdOyhuPW4ucmVzcG9uc2VDb250ZXh0Py5jb25zaXN0ZW5jeVRva2VuSmFyKSYmdGhpcy5yZXBsYWNlKFcsbil9cmVwbGFjZShuLFcpe2ZvcihsZXQgRCBvZiBuKWRlbGV0ZSB0aGlzLk5bRC5lbmNyeXB0ZWRUb2tlbkphckNvbnRlbnRzXTthVSh0aGlzLFcpfX07dmFyIHh6cj13aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoIi4iKS5zbGljZSgtMikuam9pbigiLiIpLGIkPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5XPS0xO3ZhciBuPWcuQXIoIkxPQ0FUSU9OX1BMQVlBQklMSVRZX1RPS0VOIik7Zy5BcigiSU5ORVJUVUJFX0NMSUVOVF9OQU1FIik9PT0iVFZIVE1MNSImJih0aGlzLmxvY2FsU3RvcmFnZT1uQih0aGlzKSkmJihuPXRoaXMubG9jYWxTdG9yYWdlLmdldCgieXQtbG9jYXRpb24tcGxheWFiaWxpdHktdG9rZW4iKSk7biYmKHRoaXMubG9jYXRpb25QbGF5YWJpbGl0eVRva2VuPW4sdGhpcy5KPXRoaXMuTj12b2lkIDApfXN0YXRpYyBnZXRJbnN0YW5jZSgpe09DPWcucnIoInl0LmNsaWVudExvY2F0aW9uU2VydmljZS5pbnN0YW5jZSIpO09DfHwoT0M9bmV3IGIkLGcuR2IoInl0LmNsaWVudExvY2F0aW9uU2VydmljZS5pbnN0YW5jZSIsT0MpKTtyZXR1cm4gT0N9c2V0TG9jYXRpb25PbklubmVyVHViZUNvbnRleHQobil7bi5jbGllbnR8fAoobi5jbGllbnQ9e30pO2lmKHRoaXMuTiluLmNsaWVudC5sb2NhdGlvbkluZm98fChuLmNsaWVudC5sb2NhdGlvbkluZm89e30pLG4uY2xpZW50LmxvY2F0aW9uSW5mby5sYXRpdHVkZUU3PU1hdGguZmxvb3IodGhpcy5OLmNvb3Jkcy5sYXRpdHVkZSoxRTcpLG4uY2xpZW50LmxvY2F0aW9uSW5mby5sb25naXR1ZGVFNz1NYXRoLmZsb29yKHRoaXMuTi5jb29yZHMubG9uZ2l0dWRlKjFFNyksbi5jbGllbnQubG9jYXRpb25JbmZvLmhvcml6b250YWxBY2N1cmFjeU1ldGVycz1NYXRoLnJvdW5kKHRoaXMuTi5jb29yZHMuYWNjdXJhY3kpLG4uY2xpZW50LmxvY2F0aW9uSW5mby5mb3JjZUxvY2F0aW9uUGxheWFiaWxpdHlUb2tlblJlZnJlc2g9ITA7ZWxzZSBpZih0aGlzLlh8fHRoaXMubG9jYXRpb25QbGF5YWJpbGl0eVRva2VuKW4uY2xpZW50LmxvY2F0aW9uUGxheWFiaWxpdHlUb2tlbj10aGlzLlh8fHRoaXMubG9jYXRpb25QbGF5YWJpbGl0eVRva2VufWdldFhHZW9IZWFkZXIoKXtpZih0aGlzLkope3ZhciBuPQp0aGlzLko7dmFyIFc9TWF0aC5mbG9vcihuLmNvb3Jkcy5sb25naXR1ZGUqMUU3KTt2YXIgRD1NYXRoLmZsb29yKG4uY29vcmRzLmxhdGl0dWRlKjFFNyk7dmFyIGI9bmV3IGpyMjtEPW96KGIsMSxnLnlQKEQpKTtXPW96KEQsMixnLnlQKFcpKTtEPW5ldyBCRnQ7RD1LbihELDEsMSk7RD1LbihELDIsMTIpO0Q9S24oRCw5LDgpO0Q9SVkoRCwzLG4udGltZXN0YW1wKjFFMyk7bj1veihELDcsZy5BXyhuLmNvb3Jkcy5hY2N1cmFjeSoxRTMpKTtuPUtuKG4sMjUsMik7bj0kOShuLGpyMiw1LFcpO249YHcgJHtnLkVBKEZGaShuKSw0KX1gfWVsc2Ugbj1udWxsO3JldHVybiBufWhhbmRsZVJlc3BvbnNlKG4pe249bi5yZXNwb25zZUNvbnRleHQ/LmxvY2F0aW9uUGxheWFiaWxpdHlUb2tlbjtuIT09dm9pZCAwJiYodGhpcy5sb2NhdGlvblBsYXlhYmlsaXR5VG9rZW49bix0aGlzLko9dGhpcy5OPXZvaWQgMCxnLkFyKCJJTk5FUlRVQkVfQ0xJRU5UX05BTUUiKT09PSJUVkhUTUw1Ij8odGhpcy5sb2NhbFN0b3JhZ2U9Cm5CKHRoaXMpKSYmdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0KCJ5dC1sb2NhdGlvbi1wbGF5YWJpbGl0eS10b2tlbiIsbiwxNTU1MkUzKTpJSygiWVRfQ0wiLEpTT04uc3RyaW5naWZ5KHtsb2N0b2s6bn0pLDE1NTUyRTMseHpyLCEwKSl9Y2xlYXJMb2NhdGlvblBsYXlhYmlsaXR5VG9rZW4obil7bj09PSJUVkhUTUw1Ij8odGhpcy5sb2NhbFN0b3JhZ2U9bkIodGhpcykpJiZ0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmUoInl0LWxvY2F0aW9uLXBsYXlhYmlsaXR5LXRva2VuIik6QXkoIllUX0NMIik7dGhpcy5YPXZvaWQgMDt0aGlzLlchPT0tMSYmKGNsZWFyVGltZW91dCh0aGlzLlcpLHRoaXMuVz0tMSl9Y2xlYXJDdXJyZW50UG9zaXRpb24oKXt0aGlzLko9dGhpcy5OPXZvaWQgMH1nZXRDdXJyZW50UG9zaXRpb25Gcm9tR2VvbG9jYXRpb24obil7aWYoIShuYXZpZ2F0b3ImJm5hdmlnYXRvci5nZW9sb2NhdGlvbiYmbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbikpcmV0dXJuIFByb21pc2UucmVqZWN0KEVycm9yKCJHZW9sb2NhdGlvbiB1bnN1cHBvcnRlZCIpKTsKdmFyIFc9ITEsRD0xRTQ7Zy5BcigiSU5ORVJUVUJFX0NMSUVOVF9OQU1FIik9PT0iTVdFQiImJihXPSEwLEQ9MTVFMyk7cmV0dXJuIG5ldyBQcm9taXNlKChiLHYpPT57bmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihrPT57dGhpcy5KPW4/LmFkZFRvSGVhZGVycz9rOnZvaWQgMDt0aGlzLk49aztiKGspfSxrPT57dihrKX0se2VuYWJsZUhpZ2hBY2N1cmFjeTpXLAptYXhpbXVtQWdlOjAsdGltZW91dDpEfSl9KX1jcmVhdGVVbnBsdWdnZWRMb2NhdGlvbkluZm8obil7dmFyIFc9e307Cm49bi5jb29yZHM7bj8ubGF0aXR1ZGUmJihXLmxhdGl0dWRlRTc9TWF0aC5mbG9vcihuLmxhdGl0dWRlKjFFNykpO24/LmxvbmdpdHVkZSYmKFcubG9uZ2l0dWRlRTc9TWF0aC5mbG9vcihuLmxvbmdpdHVkZSoxRTcpKTtuPy5hY2N1cmFjeSYmKFcubG9jYXRpb25SYWRpdXNNZXRlcnM9TWF0aC5yb3VuZChuLmFjY3VyYWN5KSk7cmV0dXJuIFd9Y3JlYXRlTG9jYXRpb25JbmZvKG4pe3ZhciBXPXt9O249bi5jb29yZHM7bj8ubGF0aXR1ZGUmJihXLmxhdGl0dWRlRTc9TWF0aC5mbG9vcihuLmxhdGl0dWRlKjFFNykpO24/LmxvbmdpdHVkZSYmKFcubG9uZ2l0dWRlRTc9TWF0aC5mbG9vcihuLmxvbmdpdHVkZSoxRTcpKTtyZXR1cm4gV319LE9DO3ZhciBMSHI9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLk49e319Y29udGFpbnMobil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLk4sbil9Z2V0KG4pe2lmKHRoaXMuY29udGFpbnMobikpcmV0dXJuIHRoaXMuTltuXX1zZXQobixXKXt0aGlzLk5bbl09V311Qigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLk4pfXJlbW92ZShuKXtkZWxldGUgdGhpcy5OW25dfX07bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5tYXBwaW5ncz1uZXcgTEhyfWdldChuKXthOnt2YXIgVz10aGlzLm1hcHBpbmdzLmdldChuLnRvU3RyaW5nKCkpO3N3aXRjaChXLnR5cGUpe2Nhc2UgIm1hcHBpbmciOm49Vy52YWx1ZTticmVhayBhO2Nhc2UgImZhY3RvcnkiOlc9Vy52YWx1ZSgpO3RoaXMubWFwcGluZ3Muc2V0KG4udG9TdHJpbmcoKSx7dHlwZToibWFwcGluZyIsdmFsdWU6V30pO249VzticmVhayBhO2RlZmF1bHQ6bj1nLnBiKFcsdm9pZCAwKX19cmV0dXJuIG59fTt2YXIgeFY9e1dFQl9VTlBMVUdHRUQ6Il51bnBsdWdnZWQvIixXRUJfVU5QTFVHR0VEX09OQk9BUkRJTkc6Il51bnBsdWdnZWQvIixXRUJfVU5QTFVHR0VEX09QUzoiXnVucGx1Z2dlZC8iLFdFQl9VTlBMVUdHRURfUFVCTElDOiJedW5wbHVnZ2VkLyIsV0VCX0NSRUFUT1I6Il5jcmVhdG9yLyIsV0VCX0tJRFM6Il5raWRzLyIsV0VCX0VYUEVSSU1FTlRTOiJeZXhwZXJpbWVudHMvIixXRUJfTVVTSUM6Il5tdXNpYy8iLFdFQl9SRU1JWDoiXm11c2ljLyIsV0VCX01VU0lDX0VNQkVEREVEX1BMQVlFUjoiXm11c2ljLyIsV0VCX01VU0lDX0VNQkVEREVEX1BMQVlFUjoiXm1haW5fYXBwL3xec2Z2LyJ9O3ZhciBlcjE9Y2xhc3N7RChuLFc9e30sRD11OSl7dmFyIGI9e2NvbnRleHQ6dGhpcy5PKCk/Zy52YihuLmNsaWNrVHJhY2tpbmdQYXJhbXMsITAsITEsZy53KG4/LmNvbW1hbmRNZXRhZGF0YSxwaik/LnVybCx0aGlzLksoVykpOmcudmIobi5jbGlja1RyYWNraW5nUGFyYW1zLCExLHRoaXMuail9O3ZhciB2PXRoaXMuTihuKTtpZih2KXt0aGlzLkooYix2LFcpO3Y9TEIodGhpcy5XKCkpO3ZhciBrPWcudyhuLmNvbW1hbmRNZXRhZGF0YSxwaik/LmFwaVVybDtrJiYodj1rKTt2PVpyKEskKHYpKTtrPXtjb21tYW5kOm4sLi4udGhpcy5WKG4pfTtiPXtpbnB1dDp2LFBpOlV6KHYpLGlubmVyVHViZVJlcXVlc3Q6Yixjb25maWc6a307Yi5jb25maWcuQkc/Yi5jb25maWcuQkcuaWRlbnRpdHk9RDpiLmNvbmZpZy5CRz17aWRlbnRpdHk6RH07KG49dGhpcy5ZKG4pKSYmIWIuY29uZmlnLnJlcXVlc3RLZXkmJihiLmNvbmZpZy5yZXF1ZXN0S2V5PW4pO1cuYWJvcnRTaWduYWwmJihiLlBpLnNpZ25hbD0KVy5hYm9ydFNpZ25hbCk7cmV0dXJuIGJ9Vz1uZXcgZy5ReCgiRXJyb3I6IEZhaWxlZCB0byBjcmVhdGUgUmVxdWVzdCBmcm9tIENvbW1hbmQuIixuKTtnLlhqKFcpfU8oKXtyZXR1cm4hMX1nZXQgaigpe3JldHVybiExfUsoKXt9WSgpe31WKCl7fX0sUEM9Y2xhc3MgZXh0ZW5kcyBlcjF7WCgpe31ZKG4pe2cubCgid2ViX2VuYWJsZV9yZXF1ZXN0X2tleV9raWxsc3dpdGNoIikmJnRoaXMuWChuKTtyZXR1cm4gZy53KG4uY29tbWFuZE1ldGFkYXRhLHBqKT8ucmVxdWVzdEtleT8/dGhpcy5YKG4pfX07dmFyIGdnMT17R0VUX0RBVEFTWU5DX0lEUzpobShjbGFzcyBleHRlbmRzIFBDe0QoKXtyZXR1cm57aW5wdXQ6Ii9nZXREYXRhc3luY0lkc0VuZHBvaW50IixQaTpVeigiL2dldERhdGFzeW5jSWRzRW5kcG9pbnQiLCJHRVQiKSxpbm5lclR1YmVSZXF1ZXN0Ont9fX1XKCl7cmV0dXJuW119Tigpe31KKCl7fX0pfTt2YXIgd189bmV3IGcuQUwoIlJFUVVFU1RfTUFDSElORV9SRUdJU1RSWV9UT0tFTiIpLCREPW5ldyBnLkFMKCJSRVFVRVNUX01BQ0hJTkVfRkFDVE9SWV9UT0tFTiIpLGlkPW5ldyBnLkFMKCJJTkZMSUdIVF9SRVFVRVNUX01BUF9UT0tFTiIpO3ZhciBOUT12MCgieXRjc2lfZGVidWdfbWF4X3NpemUiLDEwMCk7dmFyIEptPXthdXRvX3NlYXJjaDoiTEFURU5DWV9BQ1RJT05fQVVUT19TRUFSQ0giLGFkX3RvX2FkOiJMQVRFTkNZX0FDVElPTl9BRF9UT19BRCIsYWRfdG9fdmlkZW86IkxBVEVOQ1lfQUNUSU9OX0FEX1RPX1ZJREVPIixhcHBfc3RhcnR1cDoiTEFURU5DWV9BQ1RJT05fQVBQX1NUQVJUVVAiLGJyb3dzZToiTEFURU5DWV9BQ1RJT05fQlJPV1NFIixjYXN0X3NwbGFzaDoiTEFURU5DWV9BQ1RJT05fQ0FTVF9TUExBU0giLGNhbGxfdG9fY2FzdDoiTEFURU5DWV9BQ1RJT05fQ0FMTF9UT19DQVNUIixjaGFubmVsX2FjdGl2aXR5OiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX0NIQU5ORUxfQUNUSVZJVFkiLGNoYW5uZWxzOiJMQVRFTkNZX0FDVElPTl9DSEFOTkVMUyIsY2hpcHM6IkxBVEVOQ1lfQUNUSU9OX0NISVBTIixjb21tZXJjZV90cmFuc2FjdGlvbjoiTEFURU5DWV9BQ1RJT05fQ09NTUVSQ0VfVFJBTlNBQ1RJT04iLGRpcmVjdF9wbGF5YmFjazoiTEFURU5DWV9BQ1RJT05fRElSRUNUX1BMQVlCQUNLIiwKZWRpdG9yOiJMQVRFTkNZX0FDVElPTl9FRElUT1IiLGVtYmVkOiJMQVRFTkNZX0FDVElPTl9FTUJFRCIsZW1iZWRfbm9fdmlkZW86IkxBVEVOQ1lfQUNUSU9OX0VNQkVEX05PX1ZJREVPIixlbnRpdHlfa2V5X3NlcmlhbGl6YXRpb25fcGVyZjoiTEFURU5DWV9BQ1RJT05fRU5USVRZX0tFWV9TRVJJQUxJWkFUSU9OX1BFUkYiLGVudGl0eV9rZXlfZGVzZXJpYWxpemF0aW9uX3BlcmY6IkxBVEVOQ1lfQUNUSU9OX0VOVElUWV9LRVlfREVTRVJJQUxJWkFUSU9OX1BFUkYiLGV4cGxvcmU6IkxBVEVOQ1lfQUNUSU9OX0VYUExPUkUiLGZhdm9yaXRlczoiTEFURU5DWV9BQ1RJT05fRkFWT1JJVEVTIixob21lOiJMQVRFTkNZX0FDVElPTl9IT01FIixpbmJvYXJkaW5nOiJMQVRFTkNZX0FDVElPTl9JTkJPQVJESU5HIixsYW5kaW5nOiJMQVRFTkNZX0FDVElPTl9MQU5ESU5HIixsZWFybmluZzoiTEFURU5DWV9BQ1RJT05fTEVBUk5JTkciLGxlYXJuaW5nX2pvdXJuZXlfYnJvd3NlOiJMQVRFTkNZX0FDVElPTl9MRUFSTklOR19KT1VSTkVZX0JST1dTRSIsCmxlYXJuaW5nX2pvdXJuZXlfd2F0Y2g6IkxBVEVOQ1lfQUNUSU9OX0xFQVJOSU5HX0pPVVJORVlfV0FUQ0giLGxpYnJhcnk6IkxBVEVOQ1lfQUNUSU9OX0xJQlJBUlkiLGxpdmU6IkxBVEVOQ1lfQUNUSU9OX0xJVkUiLGxpdmVfcGFnaW5hdGlvbjoiTEFURU5DWV9BQ1RJT05fTElWRV9QQUdJTkFUSU9OIixtYW5hZ2VtZW50OiJMQVRFTkNZX0FDVElPTl9NQU5BR0VNRU5UIixtaW5pX2FwcDoiTEFURU5DWV9BQ1RJT05fTUlOSV9BUFBfUExBWSIsbm90aWZpY2F0aW9uX3NldHRpbmdzOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX05PVElGSUNBVElPTl9TRVRUSU5HUyIsb25ib2FyZGluZzoiTEFURU5DWV9BQ1RJT05fT05CT0FSRElORyIscGFyZW50X3Byb2ZpbGVfc2V0dGluZ3M6IkxBVEVOQ1lfQUNUSU9OX0tJRFNfUEFSRU5UX1BST0ZJTEVfU0VUVElOR1MiLHBhcmVudF90b29sc19jb2xsZWN0aW9uOiJMQVRFTkNZX0FDVElPTl9QQVJFTlRfVE9PTFNfQ09MTEVDVElPTiIscGFyZW50X3Rvb2xzX2Rhc2hib2FyZDoiTEFURU5DWV9BQ1RJT05fUEFSRU5UX1RPT0xTX0RBU0hCT0FSRCIsCnBsYXllcl9hdHQ6IkxBVEVOQ1lfQUNUSU9OX1BMQVlFUl9BVFRFU1RBVElPTiIscHJlYnVmZmVyOiJMQVRFTkNZX0FDVElPTl9QUkVCVUZGRVIiLHByZWZldGNoOiJMQVRFTkNZX0FDVElPTl9QUkVGRVRDSCIscHJvZmlsZV9zZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fS0lEU19QUk9GSUxFX1NFVFRJTkdTIixwcm9maWxlX3N3aXRjaGVyOiJMQVRFTkNZX0FDVElPTl9MT0dJTiIscHJvamVjdHM6IkxBVEVOQ1lfQUNUSU9OX1BST0pFQ1RTIixyZWVsX3dhdGNoOiJMQVRFTkNZX0FDVElPTl9SRUVMX1dBVENIIixyZXN1bHRzOiJMQVRFTkNZX0FDVElPTl9SRVNVTFRTIixyZWQ6IkxBVEVOQ1lfQUNUSU9OX1BSRU1JVU1fUEFHRV9HRVRfQlJPV1NFIixwcmVtaXVtOiJMQVRFTkNZX0FDVElPTl9QUkVNSVVNX1BBR0VfR0VUX0JST1dTRSIscHJlbWl1bV9saXRlX3Vwc2VsbDoiTEFURU5DWV9BQ1RJT05fUFJFTUlVTV9MSVRFX1VQU0VMTCIscHJpdmFjeV9wb2xpY3k6IkxBVEVOQ1lfQUNUSU9OX0ZBTUlMWV9DRU5URVJfUFJJVkFDWV9QT0xJQ1kiLApyZXZpZXc6IkxBVEVOQ1lfQUNUSU9OX1JFVklFVyIsc2VhcmNoX292ZXJ2aWV3X2Fuc3dlcjoiTEFURU5DWV9BQ1RJT05fU0VBUkNIX09WRVJWSUVXX0FOU1dFUiIsc2VhcmNoX3VpOiJMQVRFTkNZX0FDVElPTl9TRUFSQ0hfVUkiLHNlYXJjaF9zdWdnZXN0OiJMQVRFTkNZX0FDVElPTl9TVUdHRVNUIixzZWFyY2hfemVyb19zdGF0ZToiTEFURU5DWV9BQ1RJT05fU0VBUkNIX1pFUk9fU1RBVEUiLHNlY3JldF9jb2RlOiJMQVRFTkNZX0FDVElPTl9LSURTX1NFQ1JFVF9DT0RFIixzd2l0Y2hwbGFuOiJMQVRFTkNZX0FDVElPTl9VTlBMVUdHRURfU1dJVENIX1BMQU4iLHNlZWs6IkxBVEVOQ1lfQUNUSU9OX1BMQVlFUl9TRUVLIixzZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fU0VUVElOR1MiLHN0b3JlOiJMQVRFTkNZX0FDVElPTl9TVE9SRSIsc3VwZXJ2aXNpb25fZGFzaGJvYXJkOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX1NVUEVSVklTSU9OX0RBU0hCT0FSRCIsYmVkdGltZV9yZW1pbmRlcl9zZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9CRURUSU1FX1JFTUlOREVSX1NFVFRJTkdTIiwKYnJlYWtfcmVtaW5kZXJfc2V0dGluZ3M6IkxBVEVOQ1lfQUNUSU9OX0ZBTUlMWV9DRU5URVJfQlJFQUtfUkVNSU5ERVJfU0VUVElOR1MiLHN1cGVydmlzaW9uX3NldHRpbmdzX2Rhc2hib2FyZDoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9TVVBFUlZJU0lPTl9TRVRUSU5HU19EQVNIQk9BUkQiLHRpbWVfbWFuYWdlbWVudDoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9USU1FX01BTkFHRU1FTlQiLHVwZGF0ZV9wcm9maWxlOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX1VQREFURV9QUk9GSUxFIix2aWV3aW5nX3Blcm1pc3Npb25zOiJMQVRFTkNZX0FDVElPTl9GQU1JTFlfQ0VOVEVSX1ZJRVdJTkdfUEVSTUlTU0lPTlMiLHNob3J0c19zZXR0aW5nczoiTEFURU5DWV9BQ1RJT05fRkFNSUxZX0NFTlRFUl9TSE9SVFNfU0VUVElOR1MiLHByaXZhY3lfc2V0dGluZ3M6IkxBVEVOQ1lfQUNUSU9OX0ZBTUlMWV9DRU5URVJfUFJJVkFDWV9TRVRUSU5HUyIsdGVueDoiTEFURU5DWV9BQ1RJT05fVEVOWCIsCnZpZGVvX3ByZXZpZXc6IkxBVEVOQ1lfQUNUSU9OX1ZJREVPX1BSRVZJRVciLHZpZGVvX3RvX2FkOiJMQVRFTkNZX0FDVElPTl9WSURFT19UT19BRCIsd2F0Y2g6IkxBVEVOQ1lfQUNUSU9OX1dBVENIIix3YXRjaF9pdF9hZ2FpbjoiTEFURU5DWV9BQ1RJT05fS0lEU19XQVRDSF9JVF9BR0FJTiIsIndhdGNoLHdhdGNoNyI6IkxBVEVOQ1lfQUNUSU9OX1dBVENIIiwid2F0Y2gsd2F0Y2g3X2h0bWw1IjoiTEFURU5DWV9BQ1RJT05fV0FUQ0giLCJ3YXRjaCx3YXRjaDdhZCI6IkxBVEVOQ1lfQUNUSU9OX1dBVENIIiwid2F0Y2gsd2F0Y2g3YWRfaHRtbDUiOiJMQVRFTkNZX0FDVElPTl9XQVRDSCIsd25fY29tbWVudHM6IkxBVEVOQ1lfQUNUSU9OX0xPQURfQ09NTUVOVFMiLHd3X3JxczoiTEFURU5DWV9BQ1RJT05fV0hPX0lTX1dBVENISU5HIix2b2ljZV9hc3Npc3RhbnQ6IkxBVEVOQ1lfQUNUSU9OX1ZPSUNFX0FTU0lTVEFOVCIsY2FzdF9sb2FkX2J5X2VudGl0eV90b193YXRjaDoiTEFURU5DWV9BQ1RJT05fQ0FTVF9MT0FEX0JZX0VOVElUWV9UT19XQVRDSCIsCm5ldHdvcmtsZXNzX3BlcmZvcm1hbmNlOiJMQVRFTkNZX0FDVElPTl9ORVRXT1JLTEVTU19QRVJGT1JNQU5DRSIsZ2VsX2NvbXByZXNzaW9uOiJMQVRFTkNZX0FDVElPTl9HRUxfQ09NUFJFU1NJT04iLGdlbF9qc3BiX3NlcmlhbGl6ZToiTEFURU5DWV9BQ1RJT05fR0VMX0pTUEJfU0VSSUFMSVpFIixhdHRlc3RhdGlvbl9jaGFsbGVuZ2VfZmV0Y2g6IkxBVEVOQ1lfQUNUSU9OX0FUVEVTVEFUSU9OX0NIQUxMRU5HRV9GRVRDSCJ9OwpPYmplY3QuYXNzaWduKEptLHsiYW5hbHl0aWNzLmV4cGxvcmUiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0FOQUxZVElDU19FWFBMT1JFIiwiYXJ0aXN0LmFuYWx5dGljcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQVJUSVNUX0FOQUxZVElDUyIsImFydGlzdC5ldmVudHMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0FSVElTVF9DT05DRVJUUyIsImFydGlzdC5wcmVzc2tpdCI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQVJUSVNUX1BST0ZJTEUiLCJhc3NldC5jbGFpbWVkX3ZpZGVvcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0NMQUlNRURfVklERU9TIiwiYXNzZXQuY29tcG9zaXRpb24iOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19BU1NFVF9DT01QT1NJVElPTiIsImFzc2V0LmNvbXBvc2l0aW9uX293bmVyc2hpcCI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0NPTVBPU0lUSU9OX09XTkVSU0hJUCIsImFzc2V0LmNvbXBvc2l0aW9uX3BvbGljeSI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0NPTVBPU0lUSU9OX1BPTElDWSIsCiJhc3NldC5lbWJlZHMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19BU1NFVF9FTUJFRFMiLCJhc3NldC5oaXN0b3J5IjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQVNTRVRfSElTVE9SWSIsImFzc2V0Lmlzc3VlcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0lTU1VFUyIsImFzc2V0LmxpY2Vuc2VzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQVNTRVRfTElDRU5TRVMiLCJhc3NldC5tZXRhZGF0YSI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX01FVEFEQVRBIiwiYXNzZXQub3duZXJzaGlwIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQVNTRVRfT1dORVJTSElQIiwiYXNzZXQucG90ZW50aWFsX2VtYmVkcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX1BPVEVOVElBTF9FTUJFRFMiLCJhc3NldC5wb2xpY3kiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19BU1NFVF9QT0xJQ1kiLCJhc3NldC5yZWZlcmVuY2VzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQVNTRVRfUkVGRVJFTkNFUyIsCiJhc3NldC5zaGFyZXMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19BU1NFVF9TSEFSRVMiLCJhc3NldC5zb3VuZF9yZWNvcmRpbmdzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQVNTRVRfU09VTkRfUkVDT1JESU5HUyIsImFzc2V0X2dyb3VwLmFzc2V0cyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0dST1VQX0FTU0VUUyIsImFzc2V0X2dyb3VwLmNhbXBhaWducyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0dST1VQX0NBTVBBSUdOUyIsImFzc2V0X2dyb3VwLmNsYWltZWRfdmlkZW9zIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQVNTRVRfR1JPVVBfQ0xBSU1FRF9WSURFT1MiLCJhc3NldF9ncm91cC5tZXRhZGF0YSI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0dST1VQX01FVEFEQVRBIiwic29uZy5hbmFseXRpY3MiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1NPTkdfQU5BTFlUSUNTIixjcmVhdG9yX2NoYW5uZWxfZGFzaGJvYXJkOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NIQU5ORUxfREFTSEJPQVJEIiwKImNoYW5uZWwuYW5hbHl0aWNzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DSEFOTkVMX0FOQUxZVElDUyIsY2hhbm5lbF9hcHBlYWw6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ0hBTk5FTF9BUFBFQUwiLCJjaGFubmVsLmNvbW1lbnRzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DSEFOTkVMX0NPTU1FTlRTIiwiY2hhbm5lbC5jb250ZW50IjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DT05URU5UIiwiY2hhbm5lbC5jb250ZW50LnBvc3RzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9QT1NUX0xJU1QiLCJjaGFubmVsLmNvbnRlbnQucHJvbW90aW9ucyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfUFJPTU9USU9OX0xJU1QiLCJjaGFubmVsLmNvcHlyaWdodCI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ0hBTk5FTF9DT1BZUklHSFQiLCJjaGFubmVsLmVkaXRpbmciOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NIQU5ORUxfRURJVElORyIsImNoYW5uZWwubW9uZXRpemF0aW9uIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DSEFOTkVMX01PTkVUSVpBVElPTiIsCiJjaGFubmVsLm11c2ljIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DSEFOTkVMX01VU0lDIiwiY2hhbm5lbC5tdXNpY19zdG9yZWZyb250IjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DSEFOTkVMX01VU0lDX1NUT1JFRlJPTlQiLCJjaGFubmVsLnBsYXlsaXN0cyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ0hBTk5FTF9QTEFZTElTVFMiLCJjaGFubmVsLnRyYW5zbGF0aW9ucyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ0hBTk5FTF9UUkFOU0xBVElPTlMiLCJjaGFubmVsLnZpZGVvcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ0hBTk5FTF9WSURFT1MiLCJjaGFubmVsLmxpdmVfc3RyZWFtaW5nIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9MSVZFX1NUUkVBTUlORyIsImRpYWxvZy5jb3B5cmlnaHRfc3RyaWtlcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfRElBTE9HX0NPUFlSSUdIVF9TVFJJS0VTIiwiZGlhbG9nLnZpZGVvX2NvcHlyaWdodCI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfRElBTE9HX1ZJREVPX0NPUFlSSUdIVCIsCiJkaWFsb2cudXBsb2FkcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfRElBTE9HX1VQTE9BRFMiLG93bmVyOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19EQVNIQk9BUkQiLCJvd25lci5hbGxvd2xpc3QiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19BTExPV0xJU1QiLCJvd25lci5hbmFseXRpY3MiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19BTkFMWVRJQ1MiLCJvd25lci5hcnRfdHJhY2tzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQVJUX1RSQUNLUyIsIm93bmVyLmFzc2V0cyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUUyIsIm93bmVyLmFzc2V0X2dyb3VwcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX0FTU0VUX0dST1VQUyIsIm93bmVyLmJ1bGsiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19CVUxLX0hJU1RPUlkiLCJvd25lci5jYW1wYWlnbnMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19DQU1QQUlHTlMiLAoib3duZXIuY2hhbm5lbF9pbnZpdGVzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQ0hBTk5FTF9JTlZJVEVTIiwib3duZXIuY2hhbm5lbHMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19DSEFOTkVMUyIsIm93bmVyLmNsYWltZWRfdmlkZW9zIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfQ0xBSU1FRF9WSURFT1MiLCJvd25lci5jbGFpbXMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19NQU5VQUxfQ0xBSU1JTkciLCJvd25lci5jbGFpbXMubWFudWFsIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfTUFOVUFMX0NMQUlNSU5HIiwib3duZXIuZGVsaXZlcnkiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19DT05URU5UX0RFTElWRVJZIiwib3duZXIuZGVsaXZlcnlfdGVtcGxhdGVzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfREVMSVZFUllfVEVNUExBVEVTIiwib3duZXIuaXNzdWVzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfSVNTVUVTIiwKIm93bmVyLmxpY2Vuc2VzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfTElDRU5TRVMiLCJvd25lci5waXRjaF9tdXNpYyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX1BJVENIX01VU0lDIiwib3duZXIucG9saWNpZXMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX0NNU19QT0xJQ0lFUyIsIm93bmVyLnJlbGVhc2VzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfUkVMRUFTRVMiLCJvd25lci5yZXBvcnRzIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9DTVNfUkVQT1JUUyIsIm93bmVyLnZpZGVvcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfQ01TX1ZJREVPUyIsInBsYXlsaXN0LnZpZGVvcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfUExBWUxJU1RfVklERU9fTElTVCIsInBvc3QuY29tbWVudHMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1BPU1RfQ09NTUVOVFMiLCJwb3N0LmVkaXQiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1BPU1RfRURJVCIsInByb21vdGlvbi5lZGl0IjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9QUk9NT1RJT05fRURJVCIsCiJ2aWRlby5hbmFseXRpY3MiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1ZJREVPX0FOQUxZVElDUyIsInZpZGVvLmNsYWltcyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfVklERU9fQ0xBSU1TIiwidmlkZW8uY29tbWVudHMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1ZJREVPX0NPTU1FTlRTIiwidmlkZW8uY29weXJpZ2h0IjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9WSURFT19DT1BZUklHSFQiLCJ2aWRlby5lZGl0IjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9WSURFT19FRElUIiwidmlkZW8uZWRpdG9yIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9WSURFT19FRElUT1IiLCJ2aWRlby5lZGl0b3JfYXN5bmMiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1ZJREVPX0VESVRPUl9BU1lOQyIsInZpZGVvLmxpdmVfc2V0dGluZ3MiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1ZJREVPX0xJVkVfU0VUVElOR1MiLCJ2aWRlby5saXZlX3N0cmVhbWluZyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfVklERU9fTElWRV9TVFJFQU1JTkciLAoidmlkZW8ubW9uZXRpemF0aW9uIjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9WSURFT19NT05FVElaQVRJT04iLCJ2aWRlby5wb2xpY3kiOiJMQVRFTkNZX0FDVElPTl9DUkVBVE9SX1ZJREVPX1BPTElDWSIsInZpZGVvLnJpZ2h0c19tYW5hZ2VtZW50IjoiTEFURU5DWV9BQ1RJT05fQ1JFQVRPUl9WSURFT19SSUdIVFNfTUFOQUdFTUVOVCIsInZpZGVvLnRyYW5zbGF0aW9ucyI6IkxBVEVOQ1lfQUNUSU9OX0NSRUFUT1JfVklERU9fVFJBTlNMQVRJT05TIn0pO3ZhciBNUT1jbGFzcyBleHRlbmRzIG83e2NvbnN0cnVjdG9yKG4sVyl7c3VwZXIoYXJndW1lbnRzKTt0aGlzLk49bjt0aGlzLnRpbWVyPVd9fSxPbnQ9bmV3IGQzKCJhZnQtcmVjb3JkZWQiLE1RKTt2YXIgWEZ0PXthX2JpZF9mOjQ4MixhX2JpZF9zOjQ4MSxhYToyLGFhY2k6NDMzLGFhY3I6NDM0LGFiX3I6MTEsYWJfczoxMCxhYmM6NTc5LGFjOjE5MyxhY2M6NTExLGFjaTo1MTIsYWRfMF9lOjEzLGFkXzBfczoxMixhZF9ibDoxNCxhZF9pOjE1LGFkX21iczoxNixhZF9wcjo1NjIsYWRfdmk6MTcsYWRfdmlyOjE4LGFkYToxOTQsYWRiY19mOjU3NixhZGM6MTk1LGFkZmxfZjoxOSxhZGZsX3M6MjAsYWRsOjE5NixhZG5zOjE5NyxhZHNfZToyMixhZHNfczoyMSxhZmI6NTEzLGFmYzoxOTgsYWZsOjE5OSxhZnQ6MSxhaGI6NTE0LGFpOjIwMCxhaXNfYTo1MDMsYWlzX3I6NTAyLGFpc2Y6MjMsYWlzaToyNCxhaXNyOjI1LGFpc3M6MjYsYW1sOjIwMSxhcGFfYToyMDMsYXBhX2I6MjAyLGFwYnM6MjA0LGFwcF9sOjMsYXBwX3NpOjYxMixhcHBfc2llOjY2MSxhcHBkZWxfaToyNyxhcHBpX2U6NjE2LGFwcGlfczo2MTUsYXByOjIwNSxhcHJlczo0MzYsYXBzdXM6NDM1LGFyOjIwNixhcjQwazoyOCwKYXJiX2Y6NTA0LGFyYzoyMDcsYXJlcToyMDgsYXJmYjoyOSxhcmk6NCxhcnI6MjA5LGFycmg6MzAsYXNjZTo3ODgsYXNjZjo3ODksYXNjczo3ODcsYXNpc2ZiOjMxLGFzaXNyOjMyLGFzaXNyaDozMyxhc2lzczozNCxhc3I6MjEwLGFzeW5jX29yY2hfdF9hY3Q6NzEyLGFzeW5jX29yY2hfdF9ub3RpZnk6NzExLGF0cnI6NTE1LGF0cnM6NTE2LGF0dF9lOjIxMSxhdHRfZjoyMTIsYXR0X2ZjOjc5NyxhdHRfZnJyOjc5NixhdHRfZnM6NzkzLGF0dF9mc3I6Nzk1LGF0dF9wbmE6Nzk0LGF0dF9zOjIxMyxhdHRfd2I6MjE0LGF3ZmxfZjo1NTcsYXdmbF9zOjU1OCxiYXNlX2pzX3I6NDQxLGJjcDoyMTUsYmY6MjE2LGJnX2U6MjE3LGJnX2k6MjE4LGJnX2w6MjIwLGJnX3M6MjIxLGJnX3Y6MjE5LGJwZF9jOjQ4NCxicGRfczo0ODMsYnB0OjIyMyxicl9lOjM3LGJyX2xkOjM4LGJyX2xycHI6MzksYnJfbHJyOjQwLGJyX2x3bTo1NzcsYnJfcjo0MSxicl9zOjQyLGJyZXI6MzUsYnJlczozNixicm5yOjQzLApicm5zOjQ0LGJycGU6NDUsYnJwczo0NixicnJfZTo0NyxicnJfaTo0OCxicnJfaXVzOjQ5LGJzOjIyMixjX2M6NTAsY19jczo1MSxjX2NzZnM6NTIsY19kOjUzLGNfbGFmOjU5LGNfbGFzOjU4LGNfcm5mOjQzOCxjX3Juczo0MzcsY2M6NDY3LGNjX2M6NTQsY2NfY2Y6NTYsY2NfY3NhbGE6NTUsY2NfbGE6NTcsY2ZnOjIyNCxjaGxzOjIyNSxjaHBzOjIyNixjbDo0ODAsY21jOjIyNyxjbWRfaDo2MjksY21obDoyMjksY21pOjIyOCxjbWw6MjMwLGNtcDo3NzksY212OjIzMSxjcHQ6MjMyLGNyOjM2NCxjcl9lcnI6NjY5LGNyX3I6NjcwLGNyX3M6NjY4LGNzbDoyMzMsY3NyX3Q6NjMxLGN0OjUsY3RfbGk6NjAsZF9sOjYxLGRfbGFmOjYyLGRfbGFyOjYzLGRfbGFzOjY0LGRfbGY6NjUsZF9sczo2NixkX2x3OjY3LGRfbHdmOjY4LGRfbHdzOjY5LGRhc19jOjM2NixkYXNfczozNjUsZGNwOjIzNCxkZ19wYl9jOjIzNixkZ19wYl9yOjIzNyxkZ19wYl9zOjIzNSxkaGljOjIzOCxkbDoyMzksZG5zXzoyNDAsCmRybV9na19mOjM4OCxkcm1fZ2tfczozODcsZHJtX2tyX3I6MzkyLGRybV9rcl9zOjM5MSxkcm1fbmV0X3I6MzkwLGRybV9uZXRfczozODksZHJtX3BiX2Y6Mzg2LGRybV9wYl9zOjM4NSxkc19hYzo3MzYsZHNfYXM6NzM1LGRzX2NsYzo3NDAsZHNfY3M6NzM3LGRzX2RjOjczOSxkc19kczo3MzgsZW1wYTo0MzIsZW1wdTo0MzEsZW5wX2Vycjo2ODUsZW5wX2ZpOjY4NCxlbnBfc3Q6NjgzLGVvcHJfcjo2NzMsZXBfYV9wcl9yOjUzMixlcF9hX3ByX3M6NTMxLGVwX2hhdl9lbmQ6NTI2LGVwX2hhdl9zdGFydDo1MjUsZXBfaW5pdF9hcjo2OTksZXBfaW5pdF9jdWU6NjM1LGVwX2luaXRfY3VzOjYzNCxlcF9pbml0X2VwZTo2MzcsZXBfaW5pdF9lcHM6NjM2LGVwX2luaXRfaWplOjYzOSxlcF9pbml0X2lqczo2MzgsZXBfaW5pdF9wcjo1MjcsZXBfaW5pdF9yZTo2NDEsZXBfaW5pdF9yczo2NDAsZXBfaW5pdF93ZWU6NjQzLGVwX2luaXRfd2VzOjY0MixlcF9tYV9yZXByOjU0MyxlcF9tYV9ycjo1MzMsCmVwX21hX3NlcHI6NTQyLGVwX21hX3Nwcjo1MzQsZXBfcF9sOjUzMCxlcF9wcl9yOjUyOSxlcF9wcl9zOjUyOCxlcF9yX3ByZV9yOjU0MSxlcF9yX3JyOjUzNSxlcF9yX3NtYXI6NTM2LGVwX3JlY19lbmQ6NTM4LGVwX3JlY19zdGFydDo1MzcsZXBfcmVwc19lbmQ6NTQwLGVwX3JlcHNfc3RhcnQ6NTM5LGVwZTo2MTgsZXBzOjYxNyxlcl9jbDo2NTMsZXJfbnM6NjUyLGVyX3BlOjY1MCxlcl9wczo2NDksZXJfczo2NDgsZXJfc19ucjo3OTAsZXJfc19uczo3ODQsZXJfdDo2NTEsZmFiX3I6MjQ2LGZjYl9yOjUwNixmaXJlOjcwLGZpcnM6NzEsZm10aDoyNDEsZm9vdF9qczoyNDIsZnB0OjI0Myxmcl9zOjU2MSxmczoyNDQsZnNjOjI0NSxmc3NiMF9hOjc1LGZzc2IwX2ZyOjc0LGZzc2IwX25yOjczLGZzc2IwX25zOjcyLGZ0Xzo0MzksZnRsOjcsZnRyOjQ3NSxmdmJfcjoyNDcsZnZmOjI0OCxmeWRfZ2Y6NzY3LGZ5ZF9nczo3NjYsZ2NjOjI0OSxnY2ZsOjI1MCxnY3NyOjc2LGdlcF9lcnI6ODAwLApnZXBfcmVxOjc5OCxnZXBfcmVzOjc5OSxnZ3NyOjc3LGdpd2FfYTo2MjcsZ2l3YV9kOjYyOCxnbGM6NTkzLGdsZToyNTEsZ2xzOjI1MixncGU6MjUzLGdyYzoyNTQsZ3Jpd19ucjo3ODYsZ3Jpd19uczo3ODUsZ3Nfcjo3MzQsZ3Nfczo3MzMsZ3NtZDo1ODYsZ3Vfcjo2MjAsZ3Y6NDg1LGd3X2FpZXI6NzcxLGd3X2FyZjo3NzIsZ3dfYXJuYWY6Nzc1LGd3X2Fybm5hZjo3NzYsZ3dfYXJuczo3NzcsZ3dfYXJuc3U6Nzc4LGd3X2Fyczo3NzQsZ3dfYXJzdTo3NzMsZ3dfbWFhZjo2MzMsZ3dfbWFhczo2MzIsaGJmZzo2NzcsaGdjcjoyNTUsaHI6MjU2LGhyZTozNjMsaHJzOjM2MixoczozNzMsaHRtbF9mYl9yOjc1NSxodG1sX2ZlOjc0OCxodG1sX2ZzOjc0NyxodG1sX2Z3ZTo3NTIsaHRtbF9md3M6NzUxLGh0bWxfamNlOjc1NCxodG1sX2pjczo3NTMsaHRtbF9sYl9yOjc1NixodG1sX3NlOjc1MCxodG1sX3NzOjc0OSxpX3JwOjQ3NyxpX3JxOjQ3NixpcF9zOjY0NixpcGM6MjU3LGlwczoyNTgsCmlzbXBfYTo4MzYsaXNtcF9jOjgzOCxpc21wX2Q6ODM5LGlzbXBfaTo4MzUsaXNtcF9wOjg0MCxpc21wX3JjOjgzNyxpdF9ncDo3OCxpdl9zOjUwNSxqc3A6MjU5LGpzcjoyNjAsa1lUTGF0ZW5jeU1ERVByb2R1Y3RTdGlja2VyRWRpdG9yQ2FuY2VsbGVkOjgwMSxrWVRMYXRlbmN5TURFUHJvZHVjdFN0aWNrZXJFZGl0b3JGaW5pc2hlZDo4MDIsbDJzOjI2MSxsY19mcnI6NjYwLGxjX3Nfczo2NTksbGNfc191OjY1OCxsY3A6MjYyLGxkX3M6NDQwLGxpbToyNjMsbHBjZjoyNjQsbHBjczoyNjUsbHBzOjI2Nixsc19jOjM2OCxsc19zOjM2Nyxsc3M6MjY3LGx2OjI2OCxtYV9jbDo1NTEsbWFfZmZyOjU1MixtYV9mdWE6NTU0LG1hX2dyOjU1MyxtYV9pbDo1NzMsbWFpbjo3OSxtYWluX2pzX3I6NDQyLG1haW5fanNfcnE6NDQzLG1iX3M6NTA3LG1iYXBfYzozODQsbWJjX2FsYzo3MzIsbWJjX2FzbDo3MzEsbWJjX2M6Mzc1LG1iY19zOjM3NCxtYmdjaGlkX3JyOjc0NCxtYmdjaGlkX3JzOjc0NiwKbWJncl9yZjo2NTcsbWJncl9ycjozNzksbWJncl9yczozNzgsbWJsY19jOjM3NyxtYmxjX3M6Mzc2LG1ibGNoaWRfYzo3NDUsbWJsY2hpZF9zOjc0MyxtYmxjcmlkX2M6NzQyLG1ibGNyaWRfczo3NDEsbWJzX2M6MzgxLG1ic19ycjozODMsbWJzX3JzOjM4MixtYnNfczozODAsbWR4X2NjcDo4MCxtZHhfY2NzOjgxLG1keF9jY3N0OjgyLG1keF9jcjo4MyxtZHhfY3M6ODQsbWR4X2xzOjg1LG1keF9vZmY6ODYsbWR4X3NjOjg3LG1lX2I6NTU1LG1lX2M6Njg3LG1lX2Y6NTU2LG1lX2ZhOjY4OCxtZXN2X3M6NTA5LG1tX2llOjcyMCxtbV9pczo3MTksbXJjOjI2OSxtcnM6MjcwLG1zYToyNzEsbXN0aTo4OCxtc3RyOjg5LG5fY3Q6NzAyLG5fc3I6Njk3LG5fc3c6Njk4LCJuY1swLTldIjoyNzIsbmNsOjI3MyxuY3Q6Mjc0LG5kOjI3NSxuZG5zZToyNzYsbmRuc3M6Mjc3LCJucFswLTldIjoyNzgsbnI6Mjc5LG5yZToyODAsbnJlcXM6MjgxLG5yZXNlOjI4MixucmVzczoyODMsbnJycHM6OTAsCm5yczoyODQsbnN0Y3BzOjI4NSxudGNwZToyODYsbnRjcHM6Mjg3LG53cDoyODgsb2FkMnM6NDI1LG9hZnNfcjo0MDcsb2Fmc19ycDo0MDksb2Fpc3I6NDA1LG9hcjJzOjQxMixvYXJwMnM6NDI3LG9jc2lfejo5MSxvY3RrOjYyMSxvY3RwOjYyMixvZmFycDo0MjMsb2Zkbzo0MDAsb2Zkb3M6Mzk4LG9mcjo0MTcsb2Z2cnA6NDI0LG9nc2ZfYzozOTUsb2dzZl9zOjM5NCxvaHJfcjo3NjUsb2hyX3M6NzY0LG9sOjYsb2xfaTo4LG9sb2NfZTo4MzAsb2xvY19zYTo4Mjksb2xvY19zczo4Mjgsb21kX2M6NDIyLG9tZF9zOjQyMSxvbXBfYzo0MTksb21wX3I6NDE4LG9wZmM6NjgwLG9wcl9yOjQxNCxvcHJkX3M6NDE1LG9wcmd6Ml9lOjg0MixvcHJnejJfZjo4NDMsb3ByZ3oyX3M6ODQxLG9wcmd6X3M6Njg5LG9wcnI6NDE2LG9yMTAwazo0MTEsb3JfZmU6NDI5LG9yX2ZzOjQzMCxvcl9pOjM5Myxvcl9wOjM5NyxvcmNoX3JfZDo2OTQsb3JjaF9yX3M6Njk1LG9yY2hfdF9wbWQ6NzcwLG9yY2hfdF9wbXM6NzY5LApvcmNoX3RfdGNlZDo3MDgsb3JjaF90X3RjZXM6NzA1LG9yY2hfdF90ZDo2OTIsb3JjaF90X3RtZDo4MDQsb3JjaF90X3Rtczo4MDMsb3JjaF90X3VkOjY5MyxvcmNoX3RfdXM6Njk2LG9yZmI6NDA0LG9yaF9yOjQwMyxvcm1rOjQyMCxvcnFwYl9hOjgzMSxvcnFwYl9lOjgzNCxvcnFwYl9zOjgzMixvcnFwYl93OjgzMyxvc2RvOjQwMSxvc2RvZjo0MDIsb3Nkb3M6Mzk5LG9zb3I6Mzk2LG92ZDJzOjQyNixvdmZzX3I6NDA4LG92ZnNfcnA6NDEwLG92aXNyOjQwNixvdnIyczo0MTMsb3ZycDJzOjQyOCxwYWM6Mjg5LHBhcmk6NTE3LHBhdDoyOTAscGIwX3M6NjExLHBiX3JxX2F1dGh6OjQ0NixwYl9ycV9jdHRfY2ZtOjQ0NyxwYmNfZTo2NjMscGJjX3M6NjYyLHBiZl9jOjkyLHBicDo0ODYscGJyZXN1bWU6MjkyLHBiczo0ODcscGJ1OjI5MyxwYzo0ODgscGNjOjU0NixwY2U6NTQ3LHBjcTo1NDQscGNyOjU0NSxwY3VfYXA6ODA5LHBjdV9jZTo1ODEscGN1X2NzOjU4MCxwY3VfcmU6ODA4LHBjdV9yczo4MDcsCnBjdV9zOjgwNSxwY3Vfc2U6ODA2LHBkYToyOTQscGRjOjI5NSxwZHI6Mjk2LHBlOjI5NyxwZW1fcjo0NDQscGVtX3JxOjQ0NSxwZmplOjMwOSxwZnJyOjMwNSxwZnJzOjMwNixwZnM6MzA3LHBmdDozMDgscGZ0X2k6OTMscGxfYzoyOTEscGxfaTo0ODkscGxfaW50OjQ5MCxwbF9yOjQ5MSxwbF9yYzo3MDMscGxfczo0OTIscGxfc3M6NDkzLHBsZXY6MzEwLHBsanNfcjo0NDgscGxqc19ycTo0NDkscGx2czo3MjMscG90X2FmOjk3LHBvdF9hczo5Nixwb3RfY21lOjU2OSxwb3RfY21mOjI5OSxwb3RfY21zOjI5OCxwb3RfY3NtZTo1NzAscG90X2NzbWY6MzAxLHBvdF9jc21zOjMwMCxwb3RfaWY6MzA0LHBvdF9pbml0Zjo5NSxwb3RfaXNjOjMwMixwb3RfaXN0OjMwMyxwb3Rfc2U6NTY1LHBvdF9zZjo1NjQscG90X3NzOjU2Myxwb3RfeGU6NTY4LHBvdF94Zjo1NjcscG90X3hzOjU2Nixwb3RwZTo5NCxwcHU6OTgscHJvY19rOjYxMyxwcm9jX2tfbDo2MTQscHM6MzExLHBzX2JzOjY0Nyxwc19jOjQ5NCwKcHNfZXM6OTkscHNfcGE6NjgxLHBzX3BpaGY6NTk3LHBzX3BpaHM6NTk2LHBzX3I6MzYwLHBzX3M6MzYxLHBzX3NnZjo1OTUscHNfc2dzOjU5NCxwc25yOjQ5NSxwc25zOjQ5Nixwc3BlOjEwMCxwc3BzOjEwMSxwdF9tZTo4MTUscHRfbWY6ODE0LHB0X21zOjgxMyxwdF9waWU6ODEyLHB0X3BpZjo4MTEscHRfcGlzOjgxMCxwdF9waXNoOjYwNixwdnJpOjUxOCxwd2M6MzEyLHFvZXM6MzEzLHJfY19zbGQ6NDUwLHJfY19zcnE6NDUxLHJfY29ubmVjdF9iYWNrZW5kOjQ1MixyX2Nvbm5lY3RfYmFja2VuZF9zdWNjZXNzOjQ1MyxyX2Nvbm5lY3RlZDo0NTQscl9jb25zdHJ1Y3Rpb246NDU1LHJfZGlzY29ubmVjdGVkOjQ1NixyX2ViaTo2NjQscl9lb2Q6NTg1LHJfZjo0NTcscl9vcjo3MTMscl9wbDoxMDUscl9wczoxMDYscl9ycV9wbHk6NDU4LHJfc19wbHlsc3Q6NDU5LHJfc192aWQ6NDYwLHJfc3RhdHVzX3VwZGF0ZTo0NjEscl90cjoxMDcscl92dGM6MTA0LHJfd2lwYmM6NTg0LHJfd25yOjc5MiwKcl93bnM6NzkxLHJfd3JyOjEwMyxyX3dyczoxMDIscl93c3JwOjYwOSxyX3dzcnI6NjA4LHJfd3Nyczo2MDcscmN2XzozMTQscmVtb3ZlX3NwbGFzaDo0NjIscmVxXzozMTUscmZnOjMxNixyZ3JfbnJmOjYwMCxyZ3Jfczo1OTkscnBlOjgxNixycGx5X3JxZDo0NjMscnBzOjgxNyxyc19zOjUwOCxyc2FlX3BjOjMzMixyc2FlX3BlajozMzQscnNhZV9wajozMzMscnNiZV9wYzozMjMscnNiZV9wZWo6MzI1LHJzYmVfcGo6MzI0LHJzZV9wYzozMjAscnNlX3BlajozMjIscnNlX3BqOjMyMSxyc2VmX3BjOjMyOSxyc2VmX3BlajozMzEscnNlZl9wajozMzAscnNlc19wYzozMjYscnNlc19wZWo6MzI4LHJzZXNfcGo6MzI3LHJzZl9wYzozMTcscnNmX3BlajozMTkscnNmX3BqOjMxOCxydGltZV86MzM1LHJ1cmxfZToxMDgscnVybF9yOjEwOSxydXJsX3M6MTEwLHJ1cmxwZToxMTEscnVybHBzOjExMixzM3Rfcjo0NzIsc2FfZjo2MjQsc2FfZm86NjI1LHNhX3M6NjIzLHNhZl9mcDo2NjUsc2FmX3I6NjY2LApzYWZfcmU6NjY3LHNhc19pOjYyNixzY2dhdF9mZnM6NTYwLHNjZ2F0X2ZzOjU1OSxzZGFfZjo2MDUsc2RhX2k6NjA0LHNkYV9yZWNwOjYwMSxzZGFfcnNwcDo2MDMsc2RhX3JzcHI6NjAyLHNkbF9lOjY1NSxzZGxfczo2NTQsc2RsX3Q6NjU2LHNmX2k6MTEzLHNnc2Nfcjo3ODEsc2dzY19zOjc4MCxzaG93X2NhbGxfdG9fY2FzdDo0NjQsc2hyYl9jOjE2NSxzaHJvX2M6MTcwLHNocm9fcjoxNjcsc2hycF9jOjE2OSxzaHJwX2xkOjE2NixzaHJwX3A6MTY4LHNvX3I6MTE5LHNvX3JlOjExOCxzb19ycToxMjAsc3BhOjExNCxzcGQ6MTE1LHNwZjoxMTYsc3Bucl9oOjY3MixzcG5yX3M6NjcxLHNwcjo2Nzgsc3JfZToxMTcsc3JfcDoxMjEsc3JfcGE6MTIyLHNyX3I6MTIzLHNyX3JlOjEyNCxzcl9zOjEyNSxzcl91aToxMjYsc3J0OjMzNixzc19yOjQ2OSxzc19zOjQ2OCxzc19zZl9zOjcyNCxzc19zZl93OjcyNSxzc25yOjEyNyxzc25zOjEyOCxzdGNwXzozMzcsc3RlX2FsZjo1ODksc3RlX2M6NTkyLApzdGVfZWxmOjU5MCxzdGVfZjo1OTEsc3RlX2Z0bDo1ODgsc3RlX2w6NTg3LHN0dHNfYjo1ODIsc3R0c19mOjU4MyxzdHZzX2Y6NjkxLHN0dnNfczo2OTAsc3ZlOjQ2NixzdnM6NDY1LHN3X2ZiOjUxMCxzd19pOjc4Myxzd19yOjQ5Nyxzd19zOjQ5OCxzd3Nucjo4MTksc3dzbnM6ODE4LHN3c3BlOjgyMSxzd3Nwczo4MjAsdGNwXzozMzgsdGVueF9sOjQ3MSx0ZW54X3I6NDcwLHRoMF9oOjYxMCx0aDBfbmM6Njc1LHRoMF9uZTo2NzYsdGgwX25yOjEyOSx0aDBfbnM6Njc0LHRoX2NfMTo3MDksdGhfZF8xOjcxMCx0aF9sXzE6MTMwLHRoX3NfMTo1NzgsdGhzYjBfZnI6MTM0LHRoc2IwX25lOjEzMSx0aHNiMF9ucjoxMzIsdGhzYjBfbnM6MTMzLHR0YzozMzksdHRjcjozNDAsdWlfbDoxMzUsdWliZl9jOjE0MSx1aWJmX3I6MTQzLHVpYmZfczoxNDIsdWlzZl9yOjE0NCx1aXd3YV9iYzo2MTksdWl3d2FfYzoxMzYsdWl3d2FfZToxNDAsdWl3d2FfcHI6MTM5LHVpd3dhX3I6MTM4LHVpd3dhX3M6MTM3LAp1bHJzX2M6MzcwLHVscnNfczozNjksdW5rbm93bjowLHVyOjM0MSx2Yzo2ODIsdmNjOjUxOSx2Y2k6NTIwLHZkYTozNDIsdmRldWM6MzQzLHZkZXVyOjM0NCx2ZGV1czozNDUsdmRuczozNDYsdmZiOjUyMSx2ZnA6MzQ3LHZoYjo1MjIsdmlyOjM0OCx2aXJjOjM0OSx2aXNfYTo1MDAsdmlzX3I6NDk5LHZpc2Y6MTQ1LHZpc2k6MTQ2LHZpc3I6MTQ3LHZpc3M6MTQ4LHZvel9jeDoxNzksdm96X2VvdToxODcsdm96X2VycjoxODQsdm96X2Vycl9tczoxODAsdm96X2Vycl9ubXA6MTgxLHZvel9lcnJfb2ZmOjE4Myx2b3pfZXJyX3VhcjoxODIsdm96X2Z0cjoxODgsdm96X2Z2YzoxODksdm96X2xyX2xzbzoxODUsdm96X2xyX21kOjE4Nix2b3pfbWY6MTcyLHZvel9tczoxNzEsdm96X3JxZjoxNzQsdm96X3JxczoxNzMsdm96X3NmOjE3OCx2b3pfc3M6MTc3LHZvel92cDoxNzUsdm96X3Z0OjE3Nix2cGw6MzUwLHZyOjM1MSx2cjEwMGs6MTQ5LHZyYl9mOjUwMSx2cmM6MzUyLHZyZXE6MzUzLHZyZmI6MTUwLAp2cmk6OSx2cnI6MzU0LHZycl9yOjQ3NCx2cnJfczo0NzMsdnJyaDoxNTEsdnNpc2ZiOjE1Mix2c2lzcjoxNTMsdnNpc3JoOjE1NCx2c2lzczoxNTUsdnRhOjM1NSx2dHJyOjUyMyx2dHJzOjUyNCx3X3N0OjE1Nix3YXNtX2ZhOjgyNix3YXNtX2ZlcnI6ODI3LHdhc21fZnc6ODI1LHdhc21fczo4MjQsd2M6MzcyLHdjcjozNTYsd2ViZmVfZTo3Mjgsd2ViZmVfZ2JtX3I6NzU4LHdlYmZlX2dibV9zOjc1Nyx3ZWJmZV9nbF9yOjc2Mix3ZWJmZV9nbF9zOjc2MSx3ZWJmZV9nc19yOjc2MCx3ZWJmZV9nc19zOjc1OSx3ZWJmZV9ndXNfcjo3MzAsd2ViZmVfZ3VzX3M6NzI5LHdlYmZlX2d2bV9zOjc2Myx3ZWJmZV9zOjcyNyx3ZmZlOjM1Nyx3ZmZzOjM1OCx3Zmc6MzU5LHduX2U6MTYyLHduX2w6MzcxLHduX3I6MTU5LHduX3JwOjQ3OCx3bl9zOjE2MCx3bl9zbDoxNjEsd25sOjE1OCx3bmxfZDo4MjMsd25sX21wOjU3MSx3bmxfcGQ6ODIyLHdubHI6NTcyLHdubHM6MTU3LHducGU6MTYzLHducHM6MTY0LAp3cDo0Nzksd3NfY2U6MTkwLHdzX3NzOjE5MSx3c19zc3I6MTkyLHljZWM6NTQ5LHljZWY6NTQ4LHljZnRyOjY0NSx5Y2lmOjU1MCx5Y21zZjo2NDQseWNyYzo3MTgseWNyZjo3MTcseWNyczo3MTQseWNyc2M6NzE1LHljcnVlYTo3MTZ9O3ZhciBtcT1nLnFpLnl0TG9nZ2luZ0dlbFNlcXVlbmNlSWRPYmpffHx7fTtnLkdiKCJ5dExvZ2dpbmdHZWxTZXF1ZW5jZUlkT2JqXyIsbXEpO3ZhciBQYj1nLnFpLnl0TG9nZ2luZ0xhdGVuY3lVc2FnZVN0YXRzX3x8e307Zy5HYigieXRMb2dnaW5nTGF0ZW5jeVVzYWdlU3RhdHNfIixQYik7CnZhciBLQj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuTj0wfXRpY2sobixXLEQsYil7Wk0odGhpcyxgdGlja18ke259XyR7V31gKXx8KEQ9e3RpbWVzdGFtcDpELGN0dEF1dGhJbmZvOmJ9LFc9e3RpY2tOYW1lOm4sY2xpZW50QWN0aW9uTm9uY2U6V30sZy5sKCJ5b3V0dWJlX3dlYl9jc2lfdGlja3NfbWlncmF0aW9uIikmJihuPVhGdFtuXSxuIT09dm9pZCAwJiYoVy50aWNrPW4sZGVsZXRlIFcudGlja05hbWUpKSxnLnpVKCJsYXRlbmN5QWN0aW9uVGlja2VkIixXLEQpKX1pbmZvKG4sVyxEKXt2YXIgYj1PYmplY3Qua2V5cyhuKS5qb2luKCIiKTtaTSh0aGlzLGBpbmZvXyR7Yn1fJHtXfWApfHwobj1PYmplY3QuYXNzaWduKHt9LG4pLG4uY2xpZW50QWN0aW9uTm9uY2U9VyxnLnpVKCJsYXRlbmN5QWN0aW9uSW5mbyIsbix7Y3R0QXV0aEluZm86RH0pKX1qc3BiSW5mbyhuLFcsRCl7dmFyIGI9IiI7Zm9yKGxldCB2PTA7djxZdihuKS5sZW5ndGg7disrKVl2KG4pW3ZdIT09dm9pZCAwJiYKKGI9dj09PTA/Yi5jb25jYXQoYCR7dn1gKTpiLmNvbmNhdChgXyR7dn1gKSk7Wk0odGhpcyxgaW5mb18ke2J9XyR7V31gKXx8KGcuU0UobiwyLFcpLFc9e2N0dEF1dGhJbmZvOkR9LEQ9Zy5sKCJqc3BiX3NwYXJzZV9lbmNvZGVkX3Bpdm90Iik/bmV3IFp2KFt7fV0pOm5ldyBadixyZShELFVrciw3LHlZMSxuKSxmMmooRCxXKSl9c3BhbihuLFcsRCxiKXt2YXIgdj1PYmplY3Qua2V5cyhuKS5qb2luKCIiKTtpZihifHwhWk0odGhpcyxgc3Bhbl8ke3Z9XyR7V31gKSluLmNsaWVudEFjdGlvbk5vbmNlPVcsZy56VSgibGF0ZW5jeUFjdGlvblNwYW4iLG4se2N0dEF1dGhJbmZvOkR9KX19O3ZhciBaWj13aW5kb3cscWtyPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy50aW1pbmc9e307dGhpcy5jbGVhclJlc291cmNlVGltaW5ncz0oKT0+e307CnRoaXMud2Via2l0Q2xlYXJSZXNvdXJjZVRpbWluZ3M9KCk9Pnt9Owp0aGlzLm1vekNsZWFyUmVzb3VyY2VUaW1pbmdzPSgpPT57fTsKdGhpcy5tc0NsZWFyUmVzb3VyY2VUaW1pbmdzPSgpPT57fTsKdGhpcy5vQ2xlYXJSZXNvdXJjZVRpbWluZ3M9KCk9Pnt9fX0sVUg9WloucGVyZm9ybWFuY2V8fFpaLm1velBlcmZvcm1hbmNlfHxaWi5tc1BlcmZvcm1hbmNlfHxaWi53ZWJraXRQZXJmb3JtYW5jZXx8bmV3IHFrcjt2YXIgd2I9ITEsbCQ9ITEsUXY9eydzY3JpcHRbbmFtZT0ic2NoZWR1bGVyL3NjaGVkdWxlciJdJzoic2oiLCdzY3JpcHRbbmFtZT0icGxheWVyL2Jhc2UiXSc6InBqIiwnbGlua1tyZWw9InByZWxvYWQiXVtuYW1lPSJwbGF5ZXIvZW1iZWQiXSc6InBlaiIsJ2xpbmtbcmVsPSJzdHlsZXNoZWV0Il1bbmFtZT0id3d3LXBsYXllciJdJzoicGMiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9InBsYXllci93d3ctcGxheWVyIl0nOiJwYyIsJ3NjcmlwdFtuYW1lPSJkZXNrdG9wX3BvbHltZXIvZGVza3RvcF9wb2x5bWVyIl0nOiJkcGoiLCdsaW5rW3JlbD0iaW1wb3J0Il1bbmFtZT0iZGVza3RvcF9wb2x5bWVyIl0nOiJkcGgiLCdzY3JpcHRbbmFtZT0ibW9iaWxlLWMzIl0nOiJtY2oiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9Im1vYmlsZS1jMyJdJzoibWNjIiwnc2NyaXB0W25hbWU9InBsYXllci1wbGFzbWEtaWFzLXBob25lL2Jhc2UiXSc6Im1jcHBqIiwnc2NyaXB0W25hbWU9InBsYXllci1wbGFzbWEtaWFzLXRhYmxldC9iYXNlIl0nOiJtY3B0aiIsCidsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9Im1vYmlsZS1wb2x5bWVyLXBsYXllci1pYXMiXSc6Im1jcGMiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9Im1vYmlsZS1wb2x5bWVyLXBsYXllci1zdmctaWFzIl0nOiJtY3BzYyIsJ3NjcmlwdFtuYW1lPSJtb2JpbGVfYmxhemVyX2NvcmVfbW9kIl0nOiJtYmNqIiwnbGlua1tyZWw9InN0eWxlc2hlZXQiXVtuYW1lPSJtb2JpbGVfYmxhemVyX2NzcyJdJzoibWJjIiwnc2NyaXB0W25hbWU9Im1vYmlsZV9ibGF6ZXJfbG9nZ2VkX2luX3VzZXJzX21vZCJdJzoibWJsaXVqIiwnc2NyaXB0W25hbWU9Im1vYmlsZV9ibGF6ZXJfbG9nZ2VkX291dF91c2Vyc19tb2QiXSc6Im1ibG91aiIsJ3NjcmlwdFtuYW1lPSJtb2JpbGVfYmxhemVyX25vbmNvcmVfbW9kIl0nOiJtYm5qIiwiI3BsYXllcl9jc3MiOiJtYnBjIiwnc2NyaXB0W25hbWU9Im1vYmlsZV9ibGF6ZXJfZGVza3RvcHBsYXllcl9tb2QiXSc6Im1icGoiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9Im1vYmlsZV9ibGF6ZXJfdGFibGV0X2NzcyJdJzoibWJ0YyIsCidzY3JpcHRbbmFtZT0ibW9iaWxlX2JsYXplcl93YXRjaF9tb2QiXSc6Im1id2oiLCdzY3JpcHRbbmFtZT0iZW1iZWRfY2xpZW50Il0nOiJlY2oiLCdsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25hbWU9ImVtYmVkLXVpIl0nOiJlY2MifSxabmk9KDAsZy5LdCkoVUguY2xlYXJSZXNvdXJjZVRpbWluZ3N8fFVILndlYmtpdENsZWFyUmVzb3VyY2VUaW1pbmdzfHxVSC5tb3pDbGVhclJlc291cmNlVGltaW5nc3x8VUgubXNDbGVhclJlc291cmNlVGltaW5nc3x8VUgub0NsZWFyUmVzb3VyY2VUaW1pbmdzfHxnLkZULFVIKTt2YXIgVUM9d2luZG93O1VDLnl0Y3NpJiYoVUMueXRjc2kuaW5mb0dlbD1nLm5sLFVDLnl0Y3NpLnRpY2s9Zy5hTCk7dmFyIG85aj1bInR5cGUuZ29vZ2xlYXBpcy5jb20veW91dHViZS5hcGkucGZpaW5uZXJ0dWJlLllvdXR1YmVBcGlJbm5lcnR1YmUuQnJvd3NlUmVzcG9uc2UiLCJ0eXBlLmdvb2dsZWFwaXMuY29tL3lvdXR1YmUuYXBpLnBmaWlubmVydHViZS5Zb3V0dWJlQXBpSW5uZXJ0dWJlLlBsYXllclJlc3BvbnNlIiwidHlwZS5nb29nbGVhcGlzLmNvbS95b3V0dWJlLmFwaS5wZmlpbm5lcnR1YmUuWW91dHViZUFwaUlubmVydHViZS5QYW5lbFJlc3BvbnNlIl0sWDc9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYix2KXt0aGlzLmo9bjt0aGlzLnlHPVc7dGhpcy5XPUQ7dGhpcy5YPWI7dGhpcy5KPXY7dGhpcy5OPW5ldyBNYXA7bi53ZHx8KG4ud2Q9e30pO24ud2Q9ey4uLmdnMSwuLi5uLndkfX19O3ZhciBhOD1uZXcgZy5BTCgiSU5ORVJUVUJFX1RSQU5TUE9SVF9UT0tFTiIpLFZXPW5ldyBnLkFMKCJSRVNQT05TRV9QUk9DRVNTT1JfTUFQX1RPS0VOIik7dmFyIE1hPW5ldyBnLkFMKCJFTkRQT0lOVF9NQVAiKTt2YXIgeVg9Y2xhc3N7fTt2YXIgTnI9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPSJwZW5kaW5nIjt0aGlzLko9W107dGhpcy5XPVtdO3RyeXtuKHRoaXMuWC5iaW5kKHRoaXMpLHRoaXMucmVqZWN0LmJpbmQodGhpcykpfWNhdGNoKFcpe3RoaXMucmVqZWN0KFcpfX1zdGF0ZSgpe3JldHVybiB0aGlzLk49PT0iZnVsZmlsbGVkIj97c3RhdGU6ImZ1bGZpbGxlZCIsdmFsdWU6dGhpcy5yZXN1bHR9OnRoaXMuTj09PSJyZWplY3RlZCI/e3N0YXRlOiJyZWplY3RlZCIscmVhc29uOnRoaXMuZXJyb3J9OntzdGF0ZToicGVuZGluZyJ9fVgobil7WW8obil8fFlEKG4pP1NrKEhQKG4pLHRoaXMuWC5iaW5kKHRoaXMpLHRoaXMucmVqZWN0LmJpbmQodGhpcykpOih0aGlzLk49ImZ1bGZpbGxlZCIsdGhpcy5yZXN1bHQ9bixtRSh0aGlzKSl9cmVqZWN0KG4pe3RoaXMuTj0icmVqZWN0ZWQiO3RoaXMuZXJyb3I9bjttRSh0aGlzKX19LFlEPXEzKG49PmtDeChuKT9uIGluc3RhbmNlb2YgTnI6ITEpO3ZhciBjZT1uZXcgZy5BTCgiQVVUSF9TRVJWSUNFX1RPS0VOIik7dmFyIHVkPWNsYXNzIGV4dGVuZHMgeVh7Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLk49bn1leGVjdXRlKG4pe3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7dmFyIFc9dGhpcztyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIEQ9bi55dFJlcXVlc3Q7Zy5SVShELmlucHV0KTt2YXIgYj1ELlBpPy5tb2RlPT09ImNvcnMiPyJjb3JzIjp2b2lkIDA7aWYoVy5OLnNCKXt2YXIgdj1ELmNvbmZpZzt2PVcuTi5haih2Py5CRz8uaWRlbnRpdHl8fHU5LHtzZXNzaW9uSW5kZXg6dj8uQkc/LnNlc3Npb25JbmRleH0pO2I9ey4uLmtWKGIpLC4uLnZ9fWVsc2UgYj15aWVsZCpQUChNRXcoVyxELmNvbmZpZyxiKSk7RC5QaT17Li4uRC5QaSxoZWFkZXJzOnsuLi4oRC5QaT8uaGVhZGVycz8/e30pLC4uLmJ9fTtyZXR1cm57bmV4dFN0YXRlOiJERURVUEUiLHBhcmFtczpufX0oKX0pfX07CnVkW2cuTFhdPVtjZV07dmFyIGFqPW5ldyBnLkFMKCJSRVNQT05TRV9NQUNISU5FX1JFR0lTVFJZX1RPS0VOIiksblI9bmV3IGcuQUwoIlJFU1BPTlNFX01BQ0hJTkVfRkFDVE9SWV9UT0tFTiIpO3ZhciBCZT1uZXcgZy5BTCgiRVBIRU1FUkFMX1NUT1JFX1RPS0VOIik7dmFyIG9qPWNsYXNzIGV4dGVuZHMgeVh7Y29uc3RydWN0b3IobixXKXtzdXBlcigpO3RoaXMuTj1uO3RoaXMuSj1XfWV4ZWN1dGUobil7dmFyIFc9dGhpcy5KLEQ9dGhpcy5OO3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBiPW4ueXRSZXF1ZXN0LHY9Yi5jb25maWc/LkhuPy5STDtpZih2JiZXJiZXLmhhcyh2KSYmIWIuY29uZmlnPy5Ibj8uZGlzYWJsZUNhY2hlKXt2YXIgaz15aWVsZCpQUChIUChXLmdldCh2KSkpO2lmKGsmJiFrLmlzRXhwaXJlZCgpKXJldHVybiBiPXFyKGspLGcubCgid2ViX3Byb2Nlc3NfcmVzcG9uc2Vfc3RvcmVfcmVzcG9uc2VzIikmJiFrLmlzUHJvY2Vzc2VkKCk/KGs9RCgpLGI9eWllbGQqUFAoeXEoayx7d2lyZVJlc3BvbnNlOmIseXRSZXF1ZXN0Om4ueXRSZXF1ZXN0LGNodW5rQ2FsbGJhY2s6bi5jaHVua0NhbGxiYWNrLHJlc3BvbnNlUGF5bG9hZDp7dHlwZToiUEFHRV9DT05UUkFDVCJ9LGV4dHJhY3RlZFJlc3BvbnNlOmJ9KSksCnlpZWxkKlBQKEhQKHRlKFcsdikpKSx7bmV4dFN0YXRlOiJET05FIix2YWx1ZTpifSk6e25leHRTdGF0ZToiRE9ORSIsdmFsdWU6Yn19cmV0dXJue25leHRTdGF0ZToiTE9DQUxfUk9VVEVSIixwYXJhbXM6bn19KCl9KX19OwpvaltnLkxYXT1bblIsZy5ocChCZSldO3ZhciBkXz1jbGFzcyBleHRlbmRzIHlYe2NvbnN0cnVjdG9yKG4sVyl7c3VwZXIoKTt0aGlzLko9bjt0aGlzLk49V31leGVjdXRlKG4pe3ZhciBXPXRoaXMuSixEPXRoaXMuTixiPW4ueXRSZXF1ZXN0LHY9Yj8uaW5uZXJUdWJlUmVxdWVzdD8uY29udGV4dDtpZighdilyZXR1cm4gSFAoe25leHRTdGF0ZToiQVVUSCIscGFyYW1zOm59KTt2YXIgaz1bXTtpZihEJiZELmxlbmd0aD4wKWZvcihsZXQgaCBvZiBEKUQ9aC5CcyhiKSxELk4mJmsucHVzaChELk4pO2ZvcihsZXQgaCBvZiBXfHxbXSloLkJzKHYpO3JldHVybiBrLmxlbmd0aD4wP09vKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7eWllbGQqUFAoSFAoUHJvbWlzZS5hbGwoaykpKTtyZXR1cm57bmV4dFN0YXRlOiJBVVRIIixwYXJhbXM6bn19KCl9KTpIUCh7bmV4dFN0YXRlOiJBVVRIIiwKcGFyYW1zOm59KX19O2RfW2cuTFhdPVtnLmhwKG5ldyBnLkFMKCJDT05URVhUX1BST0NFU1NPUl9NQVAiKSksZy5ocChuZXcgZy5BTCgiQVNZTkNfQ09OVEVYVF9QUk9DRVNTT1JfTUFQIikpXTt2YXIgelc9Y2xhc3MgZXh0ZW5kcyB5WHtjb25zdHJ1Y3RvcihuKXtzdXBlcigpO3RoaXMuTj1ufWV4ZWN1dGUobil7dmFyIFc9dGhpcy5OO3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBEPW4ueXRSZXF1ZXN0LmNvbmZpZz8ucmVxdWVzdEtleTtyZXR1cm4gRCYmVy5oYXMoRCkmJihEPVcuZ2V0KEQpLEQ9eWllbGQqUFAoSFAoRCkpKT97bmV4dFN0YXRlOiJET05FIix2YWx1ZTpEfTp7bmV4dFN0YXRlOiJGRVRDSCIscGFyYW1zOm59fSgpfSl9fTsKeldbZy5MWF09W2lkXTt2YXIgR3h0PW5ldyBnLkFMKCJMT0NBTF9JTk5FUlRVQkVfUk9VVEVSX1RPS0VOIik7dmFyIGxkPWNsYXNzIGV4dGVuZHMgeVh7Y29uc3RydWN0b3IobixXKXtzdXBlcigpO3RoaXMuSj1uO3RoaXMuTj1XfWV4ZWN1dGUobil7dmFyIFc9dGhpcy5OLEQ9dGhpcy5KO3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBiPW4ueXRSZXF1ZXN0LHY9bi5jaHVua0NhbGxiYWNrLGs9e3R5cGU6IlBBR0VfQ09OVFJBQ1QifTtpZihXPy5yNihiLmlucHV0LGIuaW5uZXJUdWJlUmVxdWVzdCkpe2xldCB4PXlpZWxkKlBQKEhQKFcuWVIoYi5pbnB1dCxiLmlubmVyVHViZVJlcXVlc3QpKSk7aWYoeCl7bGV0IEw9ITE7dmFyIGg9ZnVuY3Rpb24oZSxHKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIHI9RCgpO3lpZWxkKlBQKHlxKHIse3dpcmVSZXNwb25zZTpHLHl0UmVxdWVzdDpiLGNodW5rQ2FsbGJhY2s6dixyZXNwb25zZVBheWxvYWQ6a30pKTtMPSEwfSgpfTsKeC5wbGF5ZXJSZXNwb25zZSYmKHlpZWxkKmgoeC5wbGF5ZXJSZXNwb25zZSx7cGxheWVyUmVzcG9uc2U6eC5wbGF5ZXJSZXNwb25zZX0pKTt4LndhdGNoTmV4dFJlc3BvbnNlJiYoeWllbGQqaCh4LndhdGNoTmV4dFJlc3BvbnNlLHt3YXRjaE5leHRSZXNwb25zZTp4LndhdGNoTmV4dFJlc3BvbnNlfSkpO0x8fChoPUQoKSx5aWVsZCpQUCh5cShoLHt3aXJlUmVzcG9uc2U6eCx5dFJlcXVlc3Q6YixjaHVua0NhbGxiYWNrOnYscmVzcG9uc2VQYXlsb2FkOmt9KSkpO2lmKHYpcmV0dXJue25leHRTdGF0ZToiRE9ORSIsdmFsdWU6a307aD1rLmNvbnRlbnR8fGsucGxheWVyfHxrLnlCO3JldHVybiBrLnR5cGU9PT0iUEFHRV9DT05UUkFDVCImJmg/e25leHRTdGF0ZToiRE9ORSIsdmFsdWU6aH06e25leHRTdGF0ZToiRE9ORSIsdmFsdWU6eH19fXJldHVybntuZXh0U3RhdGU6IkZBSUxFRCIsZXJyb3I6RXJyb3IoIkZhbGxiYWNrTm9kZSBmYWlsZWQgdG8gcHJvZHVjZSBhIHZhbGlkIHJlc3BvbnNlIil9fSgpfSl9fTsKbGRbZy5MWF09W25SLGcuaHAoR3h0KV07dmFyIEVDPWNsYXNzIGV4dGVuZHMgZy5ReHtjb25zdHJ1Y3RvcihuLFcsRCl7c3VwZXIoVyx7c3RhdHVzOkQsLi4uW119KTt0aGlzLnR5cGU9bjt0aGlzLnN0YXR1cz1EO09iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLG5ldy50YXJnZXQucHJvdG90eXBlKX19O3ZhciBsQj1uZXcgZy5BTCgiTkVUV09SS19NQU5BR0VSX1RPS0VOIik7dmFyIFRXPWNsYXNzIGV4dGVuZHMgeVh7Y29uc3RydWN0b3IobixXLEQsYil7c3VwZXIoKTt0aGlzLnlHPW47dGhpcy5OPVc7dGhpcy5XPUQ7dGhpcy5KPWJ9ZXhlY3V0ZShuKXt2YXIgVz10aGlzLnlHLEQ9dGhpcy5OLGI9dGhpcy5XLHY9dGhpcy5KO3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBrPW4ueXRSZXF1ZXN0LGg9bi5jaHVua0NhbGxiYWNrLHg9ay5jb25maWc/LnJlcXVlc3RLZXksTD1KU09OLnN0cmluZ2lmeShrLmlubmVyVHViZVJlcXVlc3QpLGU9ey4uLmsuUGksYm9keTprLlBpLm1ldGhvZD09PSJQT1NUIj9MOnZvaWQgMH07ay5jb25maWc/LkxhJiZnLmFMKGsuY29uZmlnLkxhKTt2YXIgRz17dHlwZToiUEFHRV9DT05UUkFDVCJ9LHI9MCxOPXk9PntFbyhiKCkse3dpcmVSZXNwb25zZTp5LHl0UmVxdWVzdDprLGNodW5rQ2FsbGJhY2s6aCxyZXNwb25zZVBheWxvYWQ6R30scisrKX07Ckw9KCk9Pmg/Vy5mZXRjaChrLmlucHV0LGUsay5jb25maWcsTik6Vy5mZXRjaChrLmlucHV0LGUsay5jb25maWcpOwp0cnl7dmFyIEg9dj92LlFOKGssTCk6TCgpfWNhdGNoKHkpe0g9UHJvbWlzZS5yZWplY3QoeSl9eCYmRCYmRC5zZXQoeCxIKTt0cnl7dmFyIEE9eWllbGQqUFAoSFAoSCkpfWNhdGNoKHkpe3JldHVybiBnLmwoIndlYl9lbmFibGVfcmV0cmllcyIpJiYoQT15IGluc3RhbmNlb2YgVHlwZUVycm9yJiZ5Lm1lc3NhZ2U9PT0iRmFpbGVkIHRvIGZldGNoIj8xOjAsVW8oQSkpP3tuZXh0U3RhdGU6IlJFVFJZIixwYXJhbXM6ey4uLm4sZXJyb3I6bmV3IEVDKEEseS5tZXNzYWdlKSxhdHRlbXB0OihuLmF0dGVtcHR8fDApKzF9fTp7bmV4dFN0YXRlOiJGQUxMQkFDSyIscGFyYW1zOnsuLi5ufX19eCYmRCYmRC5kZWxldGUoeCk7ZWsoeEQoay5pbnB1dCkpKCk7ay5jb25maWc/LlJWJiZnLmFMKGsuY29uZmlnLlJWKTtpZighQSlyZXR1cm57bmV4dFN0YXRlOiJGQUxMQkFDSyIscGFyYW1zOnsuLi5ufX07aWYoQSYmdHlwZW9mIEE9PT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkoQSkmJih4PUEseC5lcnJvck1ldGFkYXRhPy5zdGF0dXMmJgooeD14LmVycm9yTWV0YWRhdGEuc3RhdHVzLEg9eD09PTUwM3x8eD09PTUwNHx8eD09PTQyOT8yOng+PTQwMCYmeDw1MDB8fHg+PTUwMD8zOjAsVW8oSCkmJmcubCgid2ViX2VuYWJsZV9yZXRyaWVzIikpKSlyZXR1cm57bmV4dFN0YXRlOiJSRVRSWSIscGFyYW1zOnsuLi5uLGVycm9yOm5ldyBFQyhILGBIVFRQIFN0YXR1cyAke3h9YCx4KSxhdHRlbXB0OihuLmF0dGVtcHR8fDApKzF9fTshaCYmQSYmKHg9YigpLHg9eWllbGQqUFAoRW8oeCx7d2lyZVJlc3BvbnNlOkEseXRSZXF1ZXN0OmsscmVzcG9uc2VQYXlsb2FkOnt0eXBlOiJQQUdFX0NPTlRSQUNUIn19KSksSD14LmNvbnRlbnR8fHgucGxheWVyfHx4LnlCLHgudHlwZT09PSJQQUdFX0NPTlRSQUNUIiYmSCYmKEE9SCkpO3g9QTtpZihBcnJheS5pc0FycmF5KEEpKWlmKEE9QS5maWx0ZXIoeT0+ISh5LnBsYXllclJlc3BvbnNlfHx5LndhdGNoTmV4dFJlc3BvbnNlfHx5KS5yZXNwb25zZUNvbnRleHQ/LmZyYW1ld29ya09ubHkpLEEubGVuZ3RoPT09CjEpeD1BWzBdOwplbHNlIGlmKEEubGVuZ3RoPjEpeD1BLmZpbmQoeT0+eS53YXRjaE5leHRSZXNwb25zZSl8fEFbMF07CmVsc2UgcmV0dXJue25leHRTdGF0ZToiRkFJTEVEIixlcnJvcjpFcnJvcigiRmV0Y2hOb2RlIHByb2R1Y2VkIG9ubHkgZnJhbWV3b3JrLW9ubHkgcmVzcG9uc2VzIil9O3JldHVybntuZXh0U3RhdGU6IkRPTkUiLHZhbHVlOmgmJiFnLmwoIndlYl9ubV9mZXRjaF9jaHVua19jYWxsYmFja19rcyIpP0c6eH19KCl9KX19OwpUV1tnLkxYXT1bbEIsaWQsblIsZy5ocChuZXcgZy5BTCgiUkVRVUVTVF9TRVFVRU5DSU5HIikpXTt2YXIgams9Y2xhc3MgZXh0ZW5kcyB5WHtjb25zdHJ1Y3RvcihuLFcpe3N1cGVyKCk7dGhpcy5KPW47dGhpcy5OPVd9ZXhlY3V0ZShuKXt2YXIgVz10aGlzLk4sRD10aGlzLkosYj1uLnl0UmVxdWVzdDtyZXR1cm4gVz8uckEoYi5pbnB1dCxiLmlubmVyVHViZVJlcXVlc3QpP09vKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIHY9eWllbGQqUFAoSFAoVy5zNihiLmlucHV0LGIuaW5uZXJUdWJlUmVxdWVzdCkpKTt2YXIgaz1EKCk7di5wbGF5ZXJSZXNwb25zZSYmdi53YXRjaE5leHRSZXNwb25zZT8oeWllbGQqUFAoeXEoayx7d2lyZVJlc3BvbnNlOntwbGF5ZXJSZXNwb25zZTp2LnBsYXllclJlc3BvbnNlfSx5dFJlcXVlc3Q6bi55dFJlcXVlc3QsY2h1bmtDYWxsYmFjazpuLmNodW5rQ2FsbGJhY2sscmVzcG9uc2VQYXlsb2FkOnt0eXBlOiJQQUdFX0NPTlRSQUNUIn0sZXh0cmFjdGVkUmVzcG9uc2U6di5wbGF5ZXJSZXNwb25zZX0pKSxrPXlpZWxkKlBQKHlxKGssCnt3aXJlUmVzcG9uc2U6e3dhdGNoTmV4dFJlc3BvbnNlOnYud2F0Y2hOZXh0UmVzcG9uc2V9LHl0UmVxdWVzdDpuLnl0UmVxdWVzdCxjaHVua0NhbGxiYWNrOm4uY2h1bmtDYWxsYmFjayxyZXNwb25zZVBheWxvYWQ6e3R5cGU6IlBBR0VfQ09OVFJBQ1QifSxleHRyYWN0ZWRSZXNwb25zZTp2LndhdGNoTmV4dFJlc3BvbnNlfSkpKTprPXlpZWxkKlBQKHlxKGsse3dpcmVSZXNwb25zZTp2LHl0UmVxdWVzdDpuLnl0UmVxdWVzdCxjaHVua0NhbGxiYWNrOm4uY2h1bmtDYWxsYmFjayxyZXNwb25zZVBheWxvYWQ6e3R5cGU6IlBBR0VfQ09OVFJBQ1QifSxleHRyYWN0ZWRSZXNwb25zZTp2fSkpO3ZhciBoPWsuY29udGVudHx8ay5wbGF5ZXJ8fGsueUI7ay50eXBlPT09IlBBR0VfQ09OVFJBQ1QiJiZoJiYodj1oKTtyZXR1cm57bmV4dFN0YXRlOiJET05FIix2YWx1ZTp2fX0oKX0pOkhQKHtuZXh0U3RhdGU6IkNPTlRFWFQiLApwYXJhbXM6bn0pfX07amtbZy5MWF09W25SLGcuaHAoR3h0KV07dmFyIENsPWNsYXNzIGV4dGVuZHMgeVh7Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLk49bn1leGVjdXRlKG4pe3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7dmFyIFc9dGhpcztyZXR1cm4gZnVuY3Rpb24qKCl7dHJ5e3ZhciBEPXlpZWxkKlBQKFZFMihXLG4uY29tbWFuZCwhIW4uY2h1bmtDYWxsYmFjaykpfWNhdGNoKGIpe3JldHVybntuZXh0U3RhdGU6IkZBSUxFRCIsZXJyb3I6Yn19cmV0dXJuKEQ9RC5EKG4uY29tbWFuZCxuLmZvcm0sbi5pZGVudGl0eSkpP3tuZXh0U3RhdGU6IkNBQ0hFIixwYXJhbXM6e3l0UmVxdWVzdDpELGNodW5rQ2FsbGJhY2s6bi5jaHVua0NhbGxiYWNrfX06e25leHRTdGF0ZToiRkFJTEVEIixlcnJvcjpFcnJvcigiRmFpbGVkIHRvIGJ1aWxkIHJlcXVlc3QgZm9yIGNvbW1hbmQiKX19KCl9KX19OwpDbFtnLkxYXT1bTWFdO3ZhciBCUD1jbGFzcyBleHRlbmRzIHlYe2V4ZWN1dGUobil7cmV0dXJuIE9vKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIHtpbm5lclR1YmVSZXF1ZXN0OlcsYXBpUGF0aDpELGNsaWNrVHJhY2tpbmdQYXJhbXM6Yixjb25maWc6dj17Qkc6e2lkZW50aXR5OnU5fX0saW5jbHVkZUN1cnJlbnRTY3JlZW5Ob25jZTprPSEwLGNodW5rQ2FsbGJhY2s6aH09bjtXLmNvbnRleHR8fChXLmNvbnRleHQ9Zy52YihiLGspKTt2YXIgeD1acihLJChEKSk7cmV0dXJue25leHRTdGF0ZToiQ0FDSEUiLHBhcmFtczp7eXRSZXF1ZXN0OntpbnB1dDp4LFBpOlV6KHgpLGlubmVyVHViZVJlcXVlc3Q6Vyxjb25maWc6dn0sY2h1bmtDYWxsYmFjazpofX19KCl9KX19O3ZhciB0NE09Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy50ZT1ufXJ1bihuLFcpe3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7dmFyIEQ9dGhpcztyZXR1cm4gZnVuY3Rpb24qKCl7Zm9yKHZhciBiPW4sdj1XLGs9W107Oyl7ay5wdXNoKFN0cmluZyhiKSk7dj15aWVsZCpQUChELnRlW2JdLmV4ZWN1dGUodikpO2lmKHYubmV4dFN0YXRlPT09IkRPTkUiKXJldHVybiBrLnB1c2goIkRPTkUiKSx2LnZhbHVlO2lmKHYubmV4dFN0YXRlPT09IkZBSUxFRCIpdGhyb3cgay5wdXNoKGBGQUlMRUQoJHt2LmVycm9yLm1lc3NhZ2V8fCJlcnJvciJ9KWApLHYuZXJyb3I7Yj12Lm5leHRTdGF0ZTt2PXYucGFyYW1zfX0oKX0pfX07Zy5Ncj1jbGFzcyBleHRlbmRzIHQ0TXt9O2cuTXIucHJvdG90eXBlLkQ9V1ooMSk7Zy5NcltnLkxYXT1bd19dO3ZhciBGNz1jbGFzcyBleHRlbmRzIHlYe2V4ZWN1dGUobil7cmV0dXJuIE9vKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24qKCl7dmFyIFc9bi55dFJlcXVlc3QsRD1uLmVycm9yLGI9bi5hdHRlbXB0LHY9bi5jaHVua0NhbGxiYWNrLGs9Vy5jb25maWc/Llh4O2lmKCEoayYmRCBpbnN0YW5jZW9mIEVDJiZVbyhELnR5cGUpKXx8Yj4oay5tYXhSZXRyaWVzPz8wKSlyZXR1cm57bmV4dFN0YXRlOiJGQUxMQkFDSyIscGFyYW1zOnt5dFJlcXVlc3Q6VyxjaHVua0NhbGxiYWNrOnZ9fTt2YXIgaD0oRD1rLmtVKT9ELlBaKGIpOi0xO2g9PT0tMSYmKGg9MUUzKTtrLlQ2IT09dm9pZCAwJiYoaD1NYXRoLm1pbihoLGsuVDYpKTt5aWVsZCpQUChIUChuZXcgUHJvbWlzZSh4PT57Zy5WeCgwLHgsNCxoKX0pKSk7CnJldHVybntuZXh0U3RhdGU6IkZFVENIIixwYXJhbXM6e3l0UmVxdWVzdDpXLGNodW5rQ2FsbGJhY2s6dixhdHRlbXB0OmJ9fX0oKX0pfX07dmFyIFJqPWNsYXNzIGV4dGVuZHMgeVh7ZXhlY3V0ZShuKXtyZXR1cm4gT28odGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgVz1uLmNodW5rQ2FsbGJhY2ssRD1uLnJlc3BvbnNlUGF5bG9hZCxiPW4ud2lyZVJlc3BvbnNlO1cmJihXKEQpLCJwbGF5ZXJSZXNwb25zZSJpbiBiJiZiLnBsYXllclJlc3BvbnNlJiYoZy5EeSgpLGJRKDQpKSk7cmV0dXJue25leHRTdGF0ZToiRE9ORSIsdmFsdWU6RH19KCl9KX19O3ZhciAkejI9WyJ0eXBlLmdvb2dsZWFwaXMuY29tL3lvdXR1YmUuYXBpLnBmaWlubmVydHViZS5Zb3V0dWJlQXBpSW5uZXJ0dWJlLkJyb3dzZVJlc3BvbnNlIiwidHlwZS5nb29nbGVhcGlzLmNvbS95b3V0dWJlLmFwaS5wZmlpbm5lcnR1YmUuWW91dHViZUFwaUlubmVydHViZS5QbGF5ZXJSZXNwb25zZSIsInR5cGUuZ29vZ2xlYXBpcy5jb20veW91dHViZS5hcGkucGZpaW5uZXJ0dWJlLllvdXR1YmVBcGlJbm5lcnR1YmUuUGFuZWxSZXNwb25zZSJdLFFxPWNsYXNzIGV4dGVuZHMgeVh7ZXhlY3V0ZShuKXtyZXR1cm4gT28odGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgVz1uLm9uZVBsYXRmb3JtRXJyb3I7aWYoVyYmImRldGFpbHMiaW4gVyYmVy5kZXRhaWxzKXtXPVcuZGV0YWlscztmb3IobGV0IEQgb2YgVylpZigoVz1EWyJAdHlwZSJdKSYmJHoyLmluZGV4T2YoVyk+LTEpcmV0dXJuIGRlbGV0ZSBEWyJAdHlwZSJdLHtuZXh0U3RhdGU6IlBST0NFU1NfUkVTUE9OU0UiLApwYXJhbXM6ey4uLm4sZXh0cmFjdGVkUmVzcG9uc2U6RH19fXJldHVybntuZXh0U3RhdGU6IkZBSUxFRCIsZXJyb3I6RXJyb3IoIkVycm9yIHJlc3BvbnNlIGNvdWxkIG5vdCBiZSB1bnBhY2tlZCIpfX0oKX0pfX07dmFyIFZxPWNsYXNzIGV4dGVuZHMgeVh7Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLk49bn1leGVjdXRlKG4pe3ZhciBXPXRoaXMuTjtyZXR1cm4gT28odGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiooKXt2YXIgRD1uLmV4dHJhY3RlZFJlc3BvbnNlLGI9bi55dFJlcXVlc3Qsdj1uLnJlc3BvbnNlUGF5bG9hZCxrPW4ud2lyZVJlc3BvbnNlO2lmKEQmJiEoImNvZGUiaW4gRHx8ImVycm9yImluIEQpJiYhRC5zZXF1ZW5jZU1ldGFEYXRhPy5za2lwUHJvY2Vzc2luZylmb3IobGV0IGggb2Ygc28pV1toXSYmV1toXS5oYW5kbGVSZXNwb25zZShELGIpO2sud2F0Y2hOZXh0UmVzcG9uc2V8fGsucmVlbEl0ZW1XYXRjaFJlc3BvbnNlP2sud2F0Y2hOZXh0UmVzcG9uc2U/di5jb250ZW50PWsud2F0Y2hOZXh0UmVzcG9uc2U6di5jb250ZW50PWsucmVlbEl0ZW1XYXRjaFJlc3BvbnNlOmsucGxheWVyUmVzcG9uc2U/di5wbGF5ZXI9ay5wbGF5ZXJSZXNwb25zZTprLnJlZWxXYXRjaFNlcXVlbmNlUmVzcG9uc2U/CnYueUI9ay5yZWVsV2F0Y2hTZXF1ZW5jZVJlc3BvbnNlOnYuY29udGVudD1rO3JldHVybntuZXh0U3RhdGU6IkNBTExCQUNLX0RJU1BBVENIRVIiLHBhcmFtczpufX0oKX0pfX07ClZxW2cuTFhdPVtWV107dmFyIFdHPWNsYXNzIGV4dGVuZHMgdDRNe307V0dbZy5MWF09W2FqXTt2YXIgY1A9Y2xhc3MgZXh0ZW5kcyB5WHtleGVjdXRlKG4pe3JldHVybiBPbyh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKigpe3ZhciBXPW4ud2lyZVJlc3BvbnNlLEQ7QXJyYXkuaXNBcnJheShXKT9EPVdbMF06dHlwZW9mIFc9PT0ib2JqZWN0IiYmVyE9PW51bGwmJigicGxheWVyUmVzcG9uc2UiaW4gV3x8IndhdGNoTmV4dFJlc3BvbnNlImluIFd8fCJyZWVsSXRlbVdhdGNoUmVzcG9uc2UiaW4gV3x8InJlZWxXYXRjaFNlcXVlbmNlUmVzcG9uc2UiaW4gVyk/RD1XLnBsYXllclJlc3BvbnNlfHxXLndhdGNoTmV4dFJlc3BvbnNlfHxXLnJlZWxJdGVtV2F0Y2hSZXNwb25zZXx8Vy5yZWVsV2F0Y2hTZXF1ZW5jZVJlc3BvbnNlOkQ9VztyZXR1cm4gRCYmImVycm9yImluIEQ/e25leHRTdGF0ZToiRVJST1JfVU5QQUNLRVIiLHBhcmFtczp7Li4ubixvbmVQbGF0Zm9ybUVycm9yOkQuZXJyb3J9fTp7bmV4dFN0YXRlOiJQUk9DRVNTX1JFU1BPTlNFIixwYXJhbXM6ey4uLm4sZXh0cmFjdGVkUmVzcG9uc2U6RH19fSgpfSl9fTt2YXIgUEd4PWNsYXNzIGV4dGVuZHMgUEN7Vygpe3JldHVybiBDOGJ9Z2V0IGooKXtyZXR1cm4hMH1OKG4pe3JldHVybiBnLncobixMdTEpfHx2b2lkIDB9SihuLFcsRD17fSl7Vy5jaGFubmVsSWRzJiYobi5jaGFubmVsSWRzPVcuY2hhbm5lbElkcyk7Vy5zaWxvTmFtZSYmKG4uc2lsb05hbWU9Vy5zaWxvTmFtZSk7Vy5wYXJhbXMmJihuLnBhcmFtcz1XLnBhcmFtcyk7RC5ib3RndWFyZFJlc3BvbnNlJiYobi5ib3RndWFyZFJlc3BvbnNlPUQuYm90Z3VhcmRSZXNwb25zZSk7RC5mZWF0dXJlJiYobi5jbGllbnRGZWF0dXJlPUQuZmVhdHVyZSl9fTt2YXIgWmh0PWNsYXNzIGV4dGVuZHMgUEN7Vygpe3JldHVybiBCeWl9Z2V0IGooKXtyZXR1cm4hMH1OKG4pe3JldHVybiBnLncobixoblUpfHx2b2lkIDB9SihuLFcpe1cuY2hhbm5lbElkcyYmKG4uY2hhbm5lbElkcz1XLmNoYW5uZWxJZHMpO1cuc2lsb05hbWUmJihuLnNpbG9OYW1lPVcuc2lsb05hbWUpO1cucGFyYW1zJiYobi5wYXJhbXM9Vy5wYXJhbXMpfX07dmFyIFI4PWNsYXNzIGV4dGVuZHMgUEN7Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLmNKPW59Vygpe3JldHVybiBkJFN9TihuKXtyZXR1cm4gZy53KG4sdXhDKXx8Zy53KG4sb05pKXx8Zy53KG4saXpTKX1KKG4sVyl7Vy5zZXJpYWxpemVkU2hhcmVFbnRpdHkmJihuLnNlcmlhbGl6ZWRTaGFyZWRFbnRpdHk9Vy5zZXJpYWxpemVkU2hhcmVFbnRpdHkpO1cuY2xpZW50UGFyYW1JZGVudGlmaWVyJiZ0aGlzLmNKPy5OKFcuY2xpZW50UGFyYW1JZGVudGlmaWVyKSYmKG4uY2xpZW50UGFyYW1zPXRoaXMuY0ouSihXLmNsaWVudFBhcmFtSWRlbnRpZmllcikpfX07UjhbZy5MWF09W25ldyBnLkFMKCJTSEFSRV9DTElFTlRfUEFSQU1TX1BST1ZJREVSX1RPS0VOIildO3ZhciBtZlM9Y2xhc3MgZXh0ZW5kcyBQQ3tXKCl7cmV0dXJuIGxPTX1nZXQgaigpe3JldHVybiEwfU4obil7cmV0dXJuIGcudyhuLFNZdyl8fHZvaWQgMH1KKG4sVyxEKXtuLmZlZWRiYWNrVG9rZW5zPVtdO1cuZmVlZGJhY2tUb2tlbiYmbi5mZWVkYmFja1Rva2Vucy5wdXNoKFcuZmVlZGJhY2tUb2tlbik7aWYoVz1XLmNwbnx8RC5jcG4pbi5mZWVkYmFja0NvbnRleHQ9e2NwbjpXfTtuLmlzRmVlZGJhY2tUb2tlblVuZW5jcnlwdGVkPSEhRC5pc19mZWVkYmFja190b2tlbl91bmVuY3J5cHRlZDtuLnNob3VsZE1lcmdlPSExO0QuZXh0cmFfZmVlZGJhY2tfdG9rZW5zJiYobi5zaG91bGRNZXJnZT0hMCxuLmZlZWRiYWNrVG9rZW5zPW4uZmVlZGJhY2tUb2tlbnMuY29uY2F0KEQuZXh0cmFfZmVlZGJhY2tfdG9rZW5zKSl9fTt2YXIgSzRpPWNsYXNzIGV4dGVuZHMgUEN7Vygpe3JldHVybiBUeXd9TihuKXtyZXR1cm4gZy53KG4sa2l3KXx8dm9pZCAwfUoobixXKXtXLnBhcmFtcyYmKG4ucGFyYW1zPVcucGFyYW1zKTtXLnNlY29uZGFyeVBhcmFtcyYmKG4uc2Vjb25kYXJ5UGFyYW1zPVcuc2Vjb25kYXJ5UGFyYW1zKX19O3ZhciBPaHI9Y2xhc3MgZXh0ZW5kcyBQQ3tXKCl7cmV0dXJuIGpkeH1OKG4pe3JldHVybiBnLncobixuWEMpfHx2b2lkIDB9SihuLFcpe1cuYWN0aW9ucyYmKG4uYWN0aW9ucz1XLmFjdGlvbnMpO1cucGFyYW1zJiYobi5wYXJhbXM9Vy5wYXJhbXMpO1cucGxheWxpc3RJZCYmKG4ucGxheWxpc3RJZD1XLnBsYXlsaXN0SWQpfX07dmFyIFVmWj1jbGFzcyBleHRlbmRzIFBDe1coKXtyZXR1cm4gem50fU4obil7cmV0dXJuIGcudyhuLGRJeCl9SihuLFcsRD17fSl7Vy5zZXJpYWxpemVkU2hhcmVFbnRpdHkmJihuLnNlcmlhbGl6ZWRTaGFyZWRFbnRpdHk9Vy5zZXJpYWxpemVkU2hhcmVFbnRpdHkpO0QuaW5jbHVkZUxpc3RJZCYmKG4uaW5jbHVkZUxpc3RJZD0hMCl9fTt2YXIgUVc9bmV3IGcuQUwoIlJFU09MVkVfVVJMX1BSRUZFVENIX1RPS0VOIik7dmFyIGpZPW5ldyBnLkFMKCJDTElFTlRfTkFNRV9UT0tFTiIpO3ZhciBDZj1uZXcgZy5BTCgiREVGQVVMVF9TVE9SRV9FWFBJUkFUSU9OX1RPS0VOIik7dmFyIHJaaD1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuY2xpZW50TmFtZT1uO3RoaXMuSj1XfWFzeW5jIHB1dChuLFcpe1c9ey4uLlcuZGF0YX07Vy5rZXk9bjtXLmNsaWVudE5hbWU9dGhpcy5jbGllbnROYW1lO1cuZXhwaXJlVGltZXN0YW1wTXM9PT12b2lkIDAmJihXLmV4cGlyZVRpbWVzdGFtcE1zPShNYXRoLnJvdW5kKCgwLGcuUikoKSkrdGhpcy5KKS50b1N0cmluZygpKTtyZXR1cm4gRHcodGhpcyxuLFcpfX07clpoW2cuTFhdPVtqWSxDZl07dmFyIGJoPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuZGF0YT17Li4ubn07ZGVsZXRlIHRoaXMuZGF0YS5pbm5lcnR1YmVSZXNwb25zZT8uZnJhbWV3b3JrVXBkYXRlc31pc0V4cGlyZWQoKXtyZXR1cm4gTnVtYmVyKHRoaXMuZGF0YS5leHBpcmVUaW1lc3RhbXBNc3x8MCk8KDAsZy5SKSgpfWlzUHJvY2Vzc2VkKCl7cmV0dXJuISF0aGlzLmRhdGEuaXNQcm9jZXNzZWR9fTt2YXIgQTNqPWNsYXNzIGV4dGVuZHMgclpoe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKTt0aGlzLk49bmV3IE1hcH1hc3luYyBnZXQobil7cmV0dXJuIHZHKHRoaXMsbil9YXN5bmMgcmVtb3ZlKG4pe2tNKHRoaXMsbil9YXN5bmMgVGkoKXt0aGlzLk4uZm9yRWFjaChuPT57Y2xlYXJUaW1lb3V0KG4udGltZXIpfSk7CnRoaXMuTi5jbGVhcigpfWhhcyhuKXtyZXR1cm4hIXRoaXMuTi5nZXQobil9dUIoKXtyZXR1cm4gdGhpcy5OLmtleXMoKX19O3ZhciBzb2I9Y2xhc3MgZXh0ZW5kcyBQQ3tXKCl7cmV0dXJuIHN2Mn1OKG4pe3JldHVybiBnLncobixUZSl9SihuLFcpe1cudmlkZW9JZCYmKG4ucGxheWVyUmVxdWVzdD17dmlkZW9JZDpXLnZpZGVvSWR9LFcucGxheWVyUGFyYW1zJiYobi5wbGF5ZXJSZXF1ZXN0LnBhcmFtcz1XLnBsYXllclBhcmFtcyksVy5yYWN5Q2hlY2tPayYmKG4ucGxheWVyUmVxdWVzdC5yYWN5Q2hlY2tPaz0hIVcucmFjeUNoZWNrT2spLFcuY29udGVudENoZWNrT2smJihuLnBsYXllclJlcXVlc3QuY29udGVudENoZWNrT2s9ISFXLmNvbnRlbnRDaGVja09rKSk7Vy5wYXJhbXMmJihuLnBhcmFtcz1XLnBhcmFtcyk7Vy5pbnB1dFR5cGUmJihuLmlucHV0VHlwZT1XLmlucHV0VHlwZSk7bi5kaXNhYmxlUGxheWVyUmVzcG9uc2U9ITB9VihuKXt2YXIgVzsobj10aGlzLlgobikpJiYoVz17SG46e1JMOm59fSk7Zy5sKCJ3ZWJfbG9nX3JlZWxzX3RpY2tzIikmJihXPVd8fHt9LFcuTGE9InJfd3JzIixXLlJWPSJyX3dyciIpOwpyZXR1cm4gV31YKG4pe249dGhpcy5OKG4pO2lmKG4/LnZpZGVvSWQpe3ZhciBXPXt2aWRlb0lkOm4udmlkZW9JZH07bi5wYXJhbXMmJihXLnBhcmFtcz1uLnBhcmFtcyk7cmV0dXJuIHlIKCJyZWVsX2l0ZW1fd2F0Y2giLFcpfX19O3ZhciBOdE09bmV3IGcuQUwoIkVOVElUWV9TVEFURV9UT0tFTiIpO3ZhciBZa1M9Y2xhc3N7Y29uc3RydWN0b3IoKXt2YXIgbj1wRmksVz1xTihVeGooKSk7dGhpcy5zdG9yZT0kZihuLHZvaWQgMCxXKX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLnN0b3JlLmdldFN0YXRlKCl9ZGlzcGF0Y2gobil7cmV0dXJuIHRoaXMuc3RvcmUuZGlzcGF0Y2gobil9c3Vic2NyaWJlKG4pe3JldHVybiB0aGlzLnN0b3JlLnN1YnNjcmliZShuKX1yZXBsYWNlUmVkdWNlcihuKXtyZXR1cm4gdGhpcy5zdG9yZS5yZXBsYWNlUmVkdWNlcihuKX1bU3ltYm9sLm9ic2VydmFibGVdKCl7cmV0dXJuIHRoaXMuc3RvcmVbU3ltYm9sLm9ic2VydmFibGVdKCl9fTt2YXIgUzU9Y2xhc3N7Y29uc3RydWN0b3Iobj1bXSl7dGhpcy5OPVtdO3RoaXMuVz10aGlzLko9MDt0aGlzLlg9dm9pZCAwO3RoaXMudG90YWxMZW5ndGg9MDtuLmZvckVhY2goVz0+e3RoaXMuYXBwZW5kKFcpfSl9aigpe3JldHVybiB0aGlzLnRvdGFsTGVuZ3RofWFwcGVuZChuKXtpZih4TSh0aGlzLG4pKXtsZXQgVz10aGlzLk5bdGhpcy5OLmxlbmd0aC0xXTsKdGhpcy5OW3RoaXMuTi5sZW5ndGgtMV09bmV3IFVpbnQ4QXJyYXkoVy5idWZmZXIsVy5ieXRlT2Zmc2V0LFcubGVuZ3RoK24ubGVuZ3RoKTtMUih0aGlzKX1lbHNlIHRoaXMuTi5wdXNoKG4pO3RoaXMudG90YWxMZW5ndGgrPW4ubGVuZ3RofXNwbGl0KG4pe3ZhciBXPW5ldyBTNSxEPW5ldyBTNTtmb3IobGV0IGIgb2YgdGhpcy5OKW4+PWIubGVuZ3RoPyhXLmFwcGVuZChiKSxuLT1iLmxlbmd0aCk6bj8oVy5hcHBlbmQobmV3IFVpbnQ4QXJyYXkoYi5idWZmZXIsYi5ieXRlT2Zmc2V0LG4pKSxELmFwcGVuZChuZXcgVWludDhBcnJheShiLmJ1ZmZlcixiLmJ5dGVPZmZzZXQrbixiLmxlbmd0aC1uKSksbj0wKTpELmFwcGVuZChiKTtyZXR1cm57Q3M6VyxZOTpEfX1pc0ZvY3VzZWQobil7cmV0dXJuIG4+PXRoaXMuVyYmbjx0aGlzLlcrdGhpcy5OW3RoaXMuSl0ubGVuZ3RofWZvY3VzKG4pe2lmKCF0aGlzLmlzRm9jdXNlZChuKSl7Zm9yKG48dGhpcy5XJiZMUih0aGlzKTt0aGlzLlcrdGhpcy5OW3RoaXMuSl0ubGVuZ3RoPD0KbiYmdGhpcy5KPHRoaXMuTi5sZW5ndGg7KXRoaXMuVys9dGhpcy5OW3RoaXMuSl0ubGVuZ3RoLHRoaXMuSis9MTt0aGlzLlg9dm9pZCAwfX19O3ZhciBZTSxORCxmUjtnLk5tPSgoKT0+e3ZhciBuPWI9Pm5ldyBVaW50OEFycmF5KGIpLFc9Yj0+e3ZhciB2PW5ldyBVaW50OEFycmF5KGIubGVuZ3RoKTsKZm9yKGxldCBrPTA7azxiLmxlbmd0aDtrKyspdltrXT1iW2tdO3JldHVybiB2fSxEPW5ldyBVaW50OEFycmF5KFsxXSk7CnJldHVybiBELmxlbmd0aD09PTEmJkRbMF09PT0xP246V30pKCk7CllNPUFycmF5KDEwMjQpO05EPXR5cGVvZiBUZXh0RGVjb2RlciE9PSJ1bmRlZmluZWQiP25ldyBUZXh0RGVjb2Rlcjp2b2lkIDA7ZlI9dHlwZW9mIFRleHRFbmNvZGVyIT09InVuZGVmaW5lZCI/bmV3IFRleHRFbmNvZGVyOnZvaWQgMDt2YXIgQVI9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW47dGhpcy5wb3M9MDt0aGlzLko9LTF9fTt2YXIgejY9Y2xhc3N7Y29uc3RydWN0b3Iobj00MDk2KXt0aGlzLldWPXZvaWQgMDt0aGlzLnBvcz0wO3RoaXMuSj1bXTt0aGlzLk49ZGQobik7dGhpcy52aWV3PW5ldyBEYXRhVmlldyh0aGlzLk4uYnVmZmVyLHRoaXMuTi5ieXRlT2Zmc2V0LHRoaXMuTi5ieXRlTGVuZ3RoKX19O3ZhciBhdz17YW5pbWF0aW9uRW50aXR5OjMwMixhY2NvdW50TGlua1N0YXR1c0VudGl0eToxMjIsYXNrU3R1ZGlvR2VuZXJhdGVkRGF0YUVudGl0eTo2MzAsYm9vbGVhbkVudGl0eTozMDcsYXNrU3R1ZGlvQ29udmVyc2F0aW9uU3VtbWFyeUVudGl0eTo2MzcsYnV0dG9uRW50aXR5OjM1OCxjYXB0aW9uVHJhY2s6MjI1LGNoYW5uZWxIYW5kbGU6Mjc1LGNoaXBFbnRpdHk6NDk4LGNvbW1lcmNlQWNxdWlzaXRpb25DbGllbnRQYXlsb2FkRW50aXR5OjI3Nixjb21tZXJjZUNhcnRMaXN0RW50aXR5OjIzNixjb21tZXJjZVRva2VuQmFsYW5jZUVudGl0eTo1MzIsY29tcG9zaXRlU291cmNlRW50aXR5OjU5NCxjb250ZXh0Tm90ZUZlZWRFbnRpdHlQYXlsb2FkOjQ4Myxjb250ZXh0Tm90ZVVzZXJSYXRpbmdFbnRpdHlQYXlsb2FkOjU3Nixjb250aW51YXRpb25Ub2tlbkVudGl0eTo0MDYsZG93bmxvYWRRdWFsaXR5UGlja2VyRW50aXR5OjIwMixkb3dubG9hZHNQYWdlUmVmcmVzaFRva2VuRW50aXR5OjI5OSwKZG93bmxvYWRzUGFnZVZpZXdDb25maWd1cmF0aW9uRW50aXR5OjI2NCxkb3dubG9hZFN0YXR1c0VudGl0eToxNDEsZGlzbWlzc1N0YXRlOjU0MCxzZnZBdWRpb0l0ZW1DdXJyZW50bHlQbGF5aW5nRW50aXR5OjE4NixlbW9qaUZvdW50YWluRGF0YUVudGl0eTozOTMsZW1vamlDdXN0b21pemF0aW9uU2V0RW50aXR5OjQ5NixmYWtlQ2hhbm5lbDoyLGZha2VQbGF5bGlzdDoyNzksZmFrZVBsYXlsaXN0RW50cnlDb2xsZWN0aW9uOjI4MCxmYWtlVmlkZW86MTgyLGZha2VWaWRlb0Rlc2NyaXB0aW9uOjI3OCxmZWF0dXJlZFByb2R1Y3RzRW50aXR5OjM5MixzYXZlZFByb2R1Y3RzU3RhdGVFbnRpdHk6NTk4LGZsb3dTdGF0ZUVudGl0eToyNTIsaWNvbkJhZGdlRW50aXR5OjIyOSxpbnRlcnN0aXRpYWxJbnRlcmFjdGlvblN0YXRlRW50aXR5OjQ0MyxsaWtlQnV0dG9uQW5pbWF0aW9uRW50aXR5OjU2NyxsaXZlQ2hhdFBvbGxTdGF0ZUVudGl0eToyMTcsbGl2ZVZpZXdlckxlYWRlcmJvYXJkQ2hhdEVudHJ5UG9pbnRTdGF0ZUVudGl0eTo1NjMsCmxpdmVWaWV3ZXJMZWFkZXJib2FyZFBvaW50c0VudGl0eTo1NjQsbGl2ZVJlYWN0aW9uc0RhdGFFbnRpdHk6NTAzLGxvZ29FbnRpdHk6MjQ1LG1hY3JvTWFya2VyRW50aXR5OjMyOSxtYWluRG93bmxvYWRzTGlicmFyeUVudGl0eToxNTgsbWFpbkRvd25sb2Fkc0xpc3RFbnRpdHk6MTY0LG1haW5QbGF5bGlzdERvd25sb2FkU3RhdGVFbnRpdHk6MzczLG1haW5QbGF5bGlzdEVudGl0eTozMDYsbWFpblBsYXlsaXN0VmlkZW9FbnRpdHk6MzY4LG1haW5WaWRlb0Rvd25sb2FkU3RhdGVFbnRpdHk6MjYyLG1haW5WaWRlb0VudGl0eToyNjEsbWFya2Vyc0VuZ2FnZW1lbnRQYW5lbFN5bmNFbnRpdHk6MTk2LG1hcmtlcnNWaXNpYmlsaXR5T3ZlcnJpZGVFbnRpdHk6MzEyLG11c2ljQWxidW1SZWxlYXNlRGV0YWlsOjE4LG11c2ljQWxidW1SZWxlYXNlRG93bmxvYWRNZXRhZGF0YUVudGl0eToyNTksbXVzaWNBbGJ1bVJlbGVhc2U6MTcsbXVzaWNBbGJ1bVJlbGVhc2VVc2VyRGV0YWlsOjE5LG11c2ljQXJ0aXN0RGV0YWlsOjIxLAptdXNpY0FydGlzdDoyMCxtdXNpY0FydGlzdFVzZXJEZXRhaWw6MjIsbXVzaWNEb3dubG9hZHNMaWJyYXJ5RW50aXR5OjI1NyxtdXNpY0xpYnJhcnlFZGl0OjEyMSxtdXNpY0xpYnJhcnlTdGF0dXNFbnRpdHk6MzE4LG11c2ljUGxheWxpc3Q6MjQsbXVzaWNQbGF5bGlzdERvd25sb2FkTWV0YWRhdGFFbnRpdHk6MjQ4LG11c2ljU2hhcmU6MTAwLG11c2ljVHJhY2tEZXRhaWw6MjksbXVzaWNUcmFja0Rvd25sb2FkTWV0YWRhdGFFbnRpdHk6MjM0LG11c2ljVHJhY2s6MjgsbXVzaWNUcmFja1VzZXJEZXRhaWw6MzAsb2ZmbGluZU9yY2hlc3RyYXRpb25BY3Rpb25XcmFwcGVyRW50aXR5OjE2OSxvZmZsaW5lVmlkZW9Qb2xpY3k6MTMwLG9mZmxpbmVWaWRlb1N0cmVhbXM6MTk4LG9mZmxpbmVhYmlsaXR5RW50aXR5OjI0NixvcmNoZXN0cmF0aW9uV2ViU2FtcGxpbmdFbnRpdHk6MjQyLHBhZ2VIZWFkZXJFbnRpdHk6NDk1LHBhcnR5R2FtZVBhbmVsRW50aXR5OjYxOCxzbGlkZXJHYW1lUGFuZWxFbnRpdHk6NjMzLApwZHBTdGF0ZUVudGl0eTo1MjQscGlubmVkUHJvZHVjdEVudGl0eToyNzMscGxheWJhY2tEYXRhOjExOSxwbGF5ZXJTdGF0ZUVudGl0eTozMjMscGxheWxpc3RUaHVtYm5haWxFZGl0c0VudGl0eTo1MzkscXVhbnRpdHlJbmNyZW1lbnRlckVudGl0eTozNTYscmVmcmVzaDoxNDgsc2F2ZVRvUGxheWxpc3RMaXN0RW50aXR5OjIzMSxzZWxlY3RlZENoaXBJbmRleEVudGl0eVBheWxvYWQ6NDc5LHNlbGVjdGlvblZhbHVlTGlzdEVudGl0eTo2MzQsc2V0dGluZ0VudGl0eToyOTcsc3RyaW5nRW50aXR5OjM4MixzdWdnZXN0ZWRGZWVkYmFja0NoaXBTdGF0ZUVudGl0eTo0ODUsdHJhbnNmZXI6MTIwLHRyZW5kaW5nT2ZmZXJFbnRpdHk6NDY5LHVucGx1Z2dlZFNpZGVzaGVldEhlYWRlclN0YXRlRW50aXR5OjYzNSx2aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eTo0NjEsdmlkZW9PdmVydmlld0FzeW5jRGF0YUVudGl0eTo1NDUsdmlkZW9QbGF5YmFja1Bvc2l0aW9uRW50aXR5Ojc2LHZvdGluZ0VudGl0eTo1NjEsCnl0TWFpbkNoYW5uZWxFbnRpdHk6MTUyLHlvdWNoYXRQZW5kaW5nUmVzcG9uc2VFbnRpdHk6NTUzLHl0TWFpbkRvd25sb2FkZWRWaWRlb0VudGl0eToxNTUseXRNYWluVmlkZW9FbnRpdHk6MTUxfSxWQT17fTtmb3IobGV0IFtuLFddb2YgT2JqZWN0LmVudHJpZXMoYXcpKXtsZXQgRD1uLGI9VztiJiYoVkFbYl09RCl9O3ZhciB2ZTt2YXIgSDZ0PSExLGdOLGhFLHgkLExmLGVZLGZIYj1jbGFzcyBleHRlbmRzIGcuRk17Y29uc3RydWN0b3Iobil7c3VwZXIoKTt0aGlzLmNvdW50ZXI9WzAsMCwwLDBdO3RoaXMuSj1uZXcgVWludDhBcnJheSgxNik7dGhpcy5OPTE2O2lmKCFINnQpe3ZhciBXLEQ9bmV3IFVpbnQ4QXJyYXkoMjU2KSxiPW5ldyBVaW50OEFycmF5KDI1Nik7dmFyIHY9MTtmb3IoVz0wO1c8MjU2O1crKylEW3ZdPVcsYltXXT12LHZePXY8PDFeKHY+PjcmJjI4Myk7Z049bmV3IFVpbnQ4QXJyYXkoMjU2KTtoRT1rJCgyNTYpO3gkPWskKDI1Nik7TGY9ayQoMjU2KTtlWT1rJCgyNTYpO2ZvcihsZXQgaD0wO2g8MjU2O2grKyl7dj1oP2JbMjU1XkRbaF1dOjA7dl49djw8MV52PDwyXnY8PDNedjw8NDt2PXYmMjU1XnY+Pj44Xjk5O2dOW2hdPXY7Vz12PDwxXih2Pj43JiYyODMpO3ZhciBrPVdedjtoRVtoXT1XPDwyNHx2PDwxNnx2PDw4fGs7eCRbaF09azw8MjR8aEVbaF0+Pj44O0xmW2hdPXY8PDI0fHgkW2hdPj4+Cjg7ZVlbaF09djw8MjR8TGZbaF0+Pj44fUg2dD0hMH12PWskKDQ0KTtmb3IoRD0wO0Q8NDtEKyspdltEXT1uWzQqRF08PDI0fG5bNCpEKzFdPDwxNnxuWzQqRCsyXTw8OHxuWzQqRCszXTtmb3IoYj0xO0Q8NDQ7RCsrKW49dltELTFdLEQlNHx8KG49KGdOW24+PjE2JjI1NV1eYik8PDI0fGdOW24+PjgmMjU1XTw8MTZ8Z05bbiYyNTVdPDw4fGdOW24+Pj4yNF0sYj1iPDwxXihiPj43JiYyODMpKSx2W0RdPXZbRC00XV5uO3RoaXMua2V5PXZ9ZW5jcnlwdChuKXt2YXIgVz1uLmxlbmd0aDtuPW5ldyBVaW50OEFycmF5KG4uYnVmZmVyLnNsaWNlKG4uYnl0ZU9mZnNldCxuLmJ5dGVPZmZzZXQrVykpO2Zvcih2YXIgRD10aGlzLkosYj0wO2I8VyYmdGhpcy5OPDE2OyluW2IrK11ePURbdGhpcy5OKytdO2Zvcih2YXIgdj1XLShXLWIpJTE2O2I8djspWDgodGhpcyksbltiKytdXj1EWzBdLG5bYisrXV49RFsxXSxuW2IrK11ePURbMl0sbltiKytdXj1EWzNdLG5bYisrXV49RFs0XSxuW2IrK11ePQpEWzVdLG5bYisrXV49RFs2XSxuW2IrK11ePURbN10sbltiKytdXj1EWzhdLG5bYisrXV49RFs5XSxuW2IrK11ePURbMTBdLG5bYisrXV49RFsxMV0sbltiKytdXj1EWzEyXSxuW2IrK11ePURbMTNdLG5bYisrXV49RFsxNF0sbltiKytdXj1EWzE1XTtpZihiPFcpZm9yKFg4KHRoaXMpLHRoaXMuTj0wO2I8VzspbltiKytdXj1EW3RoaXMuTisrXTtyZXR1cm4gbn19O3ZhciBxYT0hMTsoKCk9Pnt2YXIgbj1iPT5uZXcgVWludDhBcnJheShiKSxXPWI9Pnt2YXIgdj1uZXcgVWludDhBcnJheShiLmxlbmd0aCk7CmZvcihsZXQgaz0wO2s8Yi5sZW5ndGg7aysrKXZba109YltrXTtyZXR1cm4gdn0sRD1uZXcgVWludDhBcnJheShbMV0pOwpyZXR1cm4gRC5sZW5ndGg9PT0xJiZEWzBdPT09MT9uOld9KSgpOwp2YXIgR3I7dmFyIHVvPWNsYXNze2NvbnN0cnVjdG9yKG4pe3ZhciBXPXRFKCk7VyYmKHRoaXMuTj1uZXcgZFhNKG4sVykpO3RoaXMuSj1uZXcgYjEobil9YXN5bmMgZW5jcnlwdChuLFcpe2lmKHRoaXMuTil0cnl7cmV0dXJuIGF3YWl0IHRoaXMuTi5lbmNyeXB0KG4sVyl9Y2F0Y2goRCl7Zy5HcShEKSxxYT0hMCx0aGlzLk49dm9pZCAwfXJldHVybiB0aGlzLkouZW5jcnlwdChuLFcpfWRlY3J5cHQobixXKXtyZXR1cm4gdGhpcy5lbmNyeXB0KG4sVyl9fSxkWE09Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLlc9bjt0aGlzLko9V31hc3luYyBlbmNyeXB0KG4sVyl7dHJ5e3JldHVybiBhd2FpdCBiaDEodGhpcyxuLFcpfWNhdGNoKEQpe3Rocm93IGcuR3EoRCkscWE9ITAsRDt9fX0sYjE9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5KPW59ZW5jcnlwdChuLFcpe3RoaXMuTnx8KHRoaXMuTj1uZXcgZkhiKHRoaXMuSikpO3ZhciBEPXRoaXMuTjtmb3IobGV0IGI9MDtiPDQ7YisrKUQuY291bnRlcltiXT0KV1tiKjRdPDwyNHxXW2IqNCsxXTw8MTZ8V1tiKjQrMl08PDh8V1tiKjQrM107RC5OPTE2O3JldHVybiB0aGlzLk4uZW5jcnlwdChuKX1kZWNyeXB0KG4sVyl7cmV0dXJuIHRoaXMuZW5jcnlwdChuLFcpfX07dmFyIHZtaT1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLmo9bmV3IFVpbnQ4QXJyYXkoNjQpO3RoaXMuVz1uZXcgVWludDhBcnJheSg2NCk7dGhpcy5YPTA7dGhpcy5WPW5ldyBVaW50OEFycmF5KDY0KTt0aGlzLko9MDt0aGlzLmouc2V0KG4pO3RoaXMuVy5zZXQobik7Zm9yKG49MDtuPDY0O24rKyl0aGlzLmpbbl1ePTkyLHRoaXMuV1tuXV49NTQ7dGhpcy5yZXNldCgpfXJlc2V0KCl7JCQodGhpcyk7dGhpcy51cGRhdGUodGhpcy5XKX11cGRhdGUobil7dmFyIFc9MCxEPW4ubGVuZ3RoO3RoaXMuWCs9RDt0aGlzLkomJnRoaXMuSitEPj02NCYmKHRoaXMuVi5zZXQobi5zdWJhcnJheSgwLDY0LXRoaXMuSiksdGhpcy5KKSxXPTY0LXRoaXMuSix0aGlzLko9MCxzZSh0aGlzLHRoaXMuViwwKSk7Zm9yKDtXKzY0PD1EO1crPTY0KXNlKHRoaXMsbixXKTtXPEQmJihuPW4uc3ViYXJyYXkoVyksdGhpcy5WLnNldChuLHRoaXMuSiksdGhpcy5KKz1uLmxlbmd0aCl9fSxyTj1bMTExNjM1MjQwOCwKMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCwKNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdO3ZhciBZJD1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn19LGhhdz1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuVz1uO3RoaXMuSj1XfX0saksxPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuTj1ufX07dmFyIEpacj17SU5WQUxJRF9FTkNPREVSX1ZFUlNJT046IkludmFsaWQgZW5jb2RlciB2ZXJzaW9uIixLRVlfQ1JFQVRJT05fRkFJTEVEOiJGYWlsZWQgdG8gY3JlYXRlIGVuY29kZXIga2V5IixVTktOT1dOX0RFQ09ERV9FUlJPUjoiRmFpbGVkIHRvIGRlY29kZSBQRVMgZGF0YSIsVU5LTk9XTl9FTkNPREVfRVJST1I6IkZhaWxlZCB0byBlbmNvZGUgUEVTIGRhdGEiLFdST05HX0RBVEFfVFlQRToiRW5jb2RlciBjYW5ub3QgcHJvY2VzcyB0aGUgZGF0YSB0eXBlIn0sZmY9Y2xhc3MgZXh0ZW5kcyBnLlF4e2NvbnN0cnVjdG9yKG4sVz17fSl7c3VwZXIoSlpyW25dLHtuYW1lOiJQRVNFbmNvZGVyRXJyb3IiLHR5cGU6biwuLi5XfSk7dGhpcy50eXBlPW47dGhpcy5sZXZlbD0iV0FSTklORyI7T2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsZmYucHJvdG90eXBlKX19O3ZhciBJSGk9Y2xhc3N7fTt2YXIgU2t0PWNsYXNzIGV4dGVuZHMgSUhpe2NvbnN0cnVjdG9yKG4pe3N1cGVyKCk7dGhpcy5OPW59VyhuLFcpe1c9STgoVyk7bj0obmV3IFRleHRFbmNvZGVyKS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkobikpO3JldHVybiB0aGlzLk4uZW5jcnlwdChuLFcpfUoobixXKXtpZighKG4gaW5zdGFuY2VvZiBVaW50OEFycmF5KSl0aHJvdyBuZXcgZmYoIldST05HX0RBVEFfVFlQRSIse09BOjF9KTt2YXIgRD1uZXcgVGV4dERlY29kZXI7Vz1JOChXKTtuPXRoaXMuTi5kZWNyeXB0KG4sVyk7cmV0dXJuIEpTT04ucGFyc2UoRC5kZWNvZGUobikpfX07dmFyIFh5VT17YW5pbWF0aW9uRW50aXR5OmVuaSxhY2NvdW50TGlua1N0YXR1c0VudGl0eTpta2gsYXNrU3R1ZGlvR2VuZXJhdGVkRGF0YUVudGl0eTp0UFUsYm9vbGVhbkVudGl0eTpyWXIsYnV0dG9uRW50aXR5OkhNdCxjYXB0aW9uVHJhY2s6bEoyLGNoYW5uZWxIYW5kbGU6a2pNLGNoYXRMb2FkaW5nU3RhdGVFbnRpdHk6SU93LGFza1N0dWRpb0NvbnZlcnNhdGlvblN1bW1hcnlFbnRpdHk6R2oxLGNoaXBFbnRpdHk6Z1hVLGNvbW1lcmNlQWNxdWlzaXRpb25DbGllbnRQYXlsb2FkRW50aXR5OlNOeCxjb21tZXJjZUNhcnRMaXN0RW50aXR5OkFNeCxjb21tZXJjZVRva2VuQmFsYW5jZUVudGl0eTptJFMsY29tcG9zaXRlU291cmNlRW50aXR5OiRJTSxtdWx0aXZpZXdTdGFnaW5nRW50aXR5OnJKYixjb250ZXh0Tm90ZUZlZWRFbnRpdHlQYXlsb2FkOnhrdCxjb250ZXh0Tm90ZVVzZXJSYXRpbmdFbnRpdHlQYXlsb2FkOkx0dyxjb250aW51YXRpb25Ub2tlbkVudGl0eTp3d1MsZG93bmxvYWRRdWFsaXR5UGlja2VyRW50aXR5OmlzWiwKZG93bmxvYWRzUGFnZVJlZnJlc2hUb2tlbkVudGl0eTpveGgsZG93bmxvYWRzUGFnZVZpZXdDb25maWd1cmF0aW9uRW50aXR5OkRJMSxkb3dubG9hZFN0YXR1c0VudGl0eTp1NXQsZGlzbWlzc1N0YXRlOlhSUyxzZnZBdWRpb0l0ZW1DdXJyZW50bHlQbGF5aW5nRW50aXR5Old1WixlbW9qaUZvdW50YWluRGF0YUVudGl0eTpyTTEsZW1vamlDdXN0b21pemF0aW9uU2V0RW50aXR5OiQkMixmYWtlQ2hhbm5lbDpwd0MsZmFrZVBsYXlsaXN0OllZcixmYWtlUGxheWxpc3RFbnRyeUNvbGxlY3Rpb246Zl94LGZha2VWaWRlbzpKWWIsZmFrZVZpZGVvRGVzY3JpcHRpb246SV93LGZlYXR1cmVkUHJvZHVjdHNFbnRpdHk6cXZDLHNhdmVkUHJvZHVjdHNTdGF0ZUVudGl0eTpYX1MsZmxvd1N0YXRlRW50aXR5OkFZeCxpY29uQmFkZ2VFbnRpdHk6S3VqLGludGVyc3RpdGlhbEludGVyYWN0aW9uU3RhdGVFbnRpdHk6T3NpLGxpa2VCdXR0b25BbmltYXRpb25FbnRpdHk6Ynp0LGxpdmVDaGF0UG9sbFN0YXRlRW50aXR5OlBMciwKZGF0YUZyZXNobmVzc0VudGl0eTp0R3QsbGl2ZVZpZXdlckxlYWRlcmJvYXJkQ2hhdEVudHJ5UG9pbnRTdGF0ZUVudGl0eTpSTzEsbGl2ZVZpZXdlckxlYWRlcmJvYXJkUG9pbnRzRW50aXR5OlE0cixsaXZlUmVhY3Rpb25zRGF0YUVudGl0eTpzZGksbG9nb0VudGl0eTpLdHgsbWFjcm9NYXJrZXJFbnRpdHk6dk50LG1haW5Eb3dubG9hZHNMaWJyYXJ5RW50aXR5OmRrdCxtYWluRG93bmxvYWRzTGlzdEVudGl0eTpsX1osbWFpblBsYXlsaXN0RG93bmxvYWRTdGF0ZUVudGl0eTpUQTEsbWFpblBsYXlsaXN0RW50aXR5Ok1QdyxtYWluUGxheWxpc3RWaWRlb0VudGl0eTpSNGksbWFpblZpZGVvRG93bmxvYWRTdGF0ZUVudGl0eTpqQmksbWFpblZpZGVvRW50aXR5OmFfaixtYXJrZXJzRW5nYWdlbWVudFBhbmVsU3luY0VudGl0eTprUHIsbWFya2Vyc1Zpc2liaWxpdHlPdmVycmlkZUVudGl0eTpoT3QsbXVzaWNBbGJ1bVJlbGVhc2VEZXRhaWw6ZkpVLG11c2ljQWxidW1SZWxlYXNlRG93bmxvYWRNZXRhZGF0YUVudGl0eTpzNHQsCm11c2ljQWxidW1SZWxlYXNlOkh6aSxtdXNpY0FsYnVtUmVsZWFzZVVzZXJEZXRhaWw6SkoxLG11c2ljQXJ0aXN0RGV0YWlsOlN2WixtdXNpY0FydGlzdDpJSlUsbXVzaWNBcnRpc3RVc2VyRGV0YWlsOkFKaSxtdXNpY0Rvd25sb2Fkc0xpYnJhcnlFbnRpdHk6TmtTLG11c2ljTGlicmFyeUVkaXQ6bUliLG11c2ljTGlicmFyeVN0YXR1c0VudGl0eTpLTXcsbXVzaWNQbGF5bGlzdDpQVHgsbXVzaWNQbGF5bGlzdERvd25sb2FkTWV0YWRhdGFFbnRpdHk6cF9yLG11c2ljU2hhcmU6WnppLG11c2ljVHJhY2tEZXRhaWw6eUpTLG11c2ljVHJhY2tEb3dubG9hZE1ldGFkYXRhRW50aXR5Oll2dCxtdXNpY1RyYWNrOlVJWixtdXNpY1RyYWNrVXNlckRldGFpbDpFTngsb2ZmbGluZU9yY2hlc3RyYXRpb25BY3Rpb25XcmFwcGVyRW50aXR5OlRrdyxvZmZsaW5lVmlkZW9Qb2xpY3k6ajRaLG9mZmxpbmVWaWRlb1N0cmVhbXM6Q1R3LG9mZmxpbmVhYmlsaXR5RW50aXR5OkNMaSxvcmNoZXN0cmF0aW9uV2ViU2FtcGxpbmdFbnRpdHk6QkFVLApwYWdlSGVhZGVyRW50aXR5OnFOWixwYXJ0eUdhbWVQYW5lbEVudGl0eTpwUnQsc2xpZGVyR2FtZVBhbmVsRW50aXR5Ok55MSxwZHBTdGF0ZUVudGl0eTpPTWoscGlubmVkUHJvZHVjdEVudGl0eTpHUE0scGxheWJhY2tEYXRhOkJrdyxwbGF5ZXJTdGF0ZUVudGl0eTp4SVoscGxheWxpc3RUaHVtYm5haWxFZGl0c0VudGl0eToka2IscXVhbnRpdHlJbmNyZW1lbnRlckVudGl0eTpQOHcscmVmcmVzaDpGTXcsc2F2ZVRvUGxheWxpc3RMaXN0RW50aXR5OnZYaixzZWxlY3RlZENoaXBJbmRleEVudGl0eVBheWxvYWQ6TE13LHNlbGVjdGlvblZhbHVlTGlzdEVudGl0eTpzQngsc2V0dGluZ0VudGl0eTp4JFosc3RyaW5nRW50aXR5Ok5BMixzdWdnZXN0ZWRGZWVkYmFja0NoaXBTdGF0ZUVudGl0eTplT3IsdHJhbnNmZXI6d19NLHRyZW5kaW5nT2ZmZXJFbnRpdHk6dHhqLHVucGx1Z2dlZFNpZGVzaGVldEhlYWRlclN0YXRlRW50aXR5OmZPMix2aWRlb0Rvd25sb2FkQ29udGV4dEVudGl0eTpNeFMsCnZpZGVvT3ZlcnZpZXdBc3luY0RhdGFFbnRpdHk6Wk1qLHZpZGVvUGxheWJhY2tQb3NpdGlvbkVudGl0eTpKTTIsdm90aW5nRW50aXR5OkdpTSx5dE1haW5DaGFubmVsRW50aXR5Om5OMix5b3VjaGF0UGVuZGluZ1Jlc3BvbnNlRW50aXR5OmdOcix5dE1haW5Eb3dubG9hZGVkVmlkZW9FbnRpdHk6RnRoLHl0TWFpblZpZGVvRW50aXR5OldNWn07dmFyIE5Hdz1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuTj1uO3RoaXMuVz1XO3RoaXMuSj17fX19O3ZhciBBWlo9Y2xhc3MgZXh0ZW5kcyBJSGl7VyhuKXtyZXR1cm4gbn1KKG4pe2lmKG4gaW5zdGFuY2VvZiBVaW50OEFycmF5KXRocm93IG5ldyBmZigiV1JPTkdfREFUQV9UWVBFIix7T0E6MH0pO3JldHVybiBufX07dmFyIGY5aT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuTj17fTt0aGlzLk5bMF09bmV3IEFaWjtpZighZy5sKCJhZXNfcGVzX2VuY29kZXJfa2lsbHN3aXRjaCIpKXt2YXIgbj10aGlzLk47dHJ5e2xldCBiPU0wKCk7dmFyIFc9STgoYik7dmFyIEQ9bmV3IFNrdChuZXcgYjEoVyksbmV3IHVvKFcpKX1jYXRjaChiKXt0aHJvdyBuPWIgaW5zdGFuY2VvZiBFcnJvcj9uZXcgZmYoIktFWV9DUkVBVElPTl9GQUlMRUQiLHtvcmlnaW5hbE1lc3NhZ2U6Yi5tZXNzYWdlfSk6bmV3IGZmKCJLRVlfQ1JFQVRJT05fRkFJTEVEIiksZy5YaihuKSxuO31uWzFdPUR9fX07dmFyIEozaT1jbGFzcyBleHRlbmRzIGcuRk17Y29uc3RydWN0b3IobixXKXtzdXBlcigpO3RoaXMudG9rZW49bjt0aGlzLk49Vzt0aGlzLm9ic2VydmVycz1bXTtuPW5ldyBnLnFpLkJyb2FkY2FzdENoYW5uZWwoYFBFUlNJU1RFTlRfRU5USVRZX1NUT1JFX1NZTkM6JHtNMCgpfWApO24ub25tZXNzYWdlPXRoaXMuSi5iaW5kKHRoaXMpO3RoaXMuY2hhbm5lbD1ufW9ic2VydmUobil7dGhpcy5vYnNlcnZlcnMucHVzaChuKTtyZXR1cm4oKT0+e3ZhciBXPXRoaXMub2JzZXJ2ZXJzLmluZGV4T2Yobik7Vz49MCYmdGhpcy5vYnNlcnZlcnMuc3BsaWNlKFcsMSl9fUoobil7UGUodGhpcyxuLmRhdGEpfW1BKCl7dGhpcy5jaGFubmVsLmNsb3NlKCl9fSx0NTt2YXIgbXpiPWcud0QoKCk9PntpZih3aW5kb3cuTWVkaWFTb3VyY2UmJnR5cGVvZiB3aW5kb3cuTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkPT09ImZ1bmN0aW9uIilyZXR1cm4gd2luZG93Lk1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgndmlkZW8vd2VibTsgY29kZWNzPSJ2cDA5LjAwLjUxLjA4LjAxLjAxLjAxLjAxLjAwIicpO2lmKHdpbmRvdy5NYW5hZ2VkTWVkaWFTb3VyY2UmJnR5cGVvZiB3aW5kb3cuTWFuYWdlZE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZD09PSJmdW5jdGlvbiIpcmV0dXJuIHdpbmRvdy5NYW5hZ2VkTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCd2aWRlby93ZWJtOyBjb2RlY3M9InZwMDkuMDAuNTEuMDguMDEuMDEuMDEuMDEuMDAiJyk7dmFyIG49Zy5ycigieXQud2ViLmNvbnRyaWIuaW5uZXJ0dWJlLnJlcXVlc3RzLndhdGNoX3VpLnV0aWxzLnZpZGVvRWxlbWVudF8iKTtufHwobj1nLnpGKCJWSURFTyIpLGcuR2IoInl0LndlYi5jb250cmliLmlubmVydHViZS5yZXF1ZXN0cy53YXRjaF91aS51dGlscy52aWRlb0VsZW1lbnRfIiwKbikpO3JldHVybiEhKG4mJm4uY2FuUGxheVR5cGUmJm4uY2FuUGxheVR5cGUoJ3ZpZGVvL3dlYm07IGNvZGVjcz0idnAwOS4wMC41MS4wOC4wMS4wMS4wMS4wMS4wMCInKSl9KTt2YXIgTnM9eVcoKT8hMDp0eXBlb2Ygd2luZG93LmZldGNoPT09ImZ1bmN0aW9uIiYmd2luZG93LlJlYWRhYmxlU3RyZWFtJiZ3aW5kb3cuQWJvcnRDb250cm9sbGVyJiYhZy5SZz8hMDohMTt2YXIgS0hTPWNsYXNzIGV4dGVuZHMgUEN7Y29uc3RydWN0b3IoKXtzdXBlcigpfVcoKXtyZXR1cm4gcXlqfU4obil7cmV0dXJuIGcudyhuLGcuSVEpfHxnLncobixUZSl8fGcudyhuLFZ4Yil9Tygpe3JldHVybiEwfVgobil7aWYoKGcubCgia2V2bGFyX2NhY2hlX29uX3R0bF9wbGF5ZXIiKXx8Zy5sKCJtd2ViX2VuYWJsZV9zaG9ydHNfaW5uZXJ0dWJlX3BsYXllcl9wcmVmZXRjaCIpfHxnLmwoIndlYl9zaG9ydHNfcHJlZmV0Y2hfc2VydmljZV9lbmFibGVkIil8fGcubCgiZW1iZWRzX2VuYWJsZV9wcmVmZXRjaF92aWFfcmVzb2x2ZV91cmwiKSkmJihuPXRoaXMuTihuKSkmJm4udmlkZW9JZCl7dmFyIFc9e3ZpZGVvSWQ6bi52aWRlb0lkfTtuLnBsYXlsaXN0SWQmJihXLnBsYXlsaXN0SWQ9bi5wbGF5bGlzdElkKTtuLnBsYXllclBhcmFtcyYmKFcucGFyYW1zPW4ucGxheWVyUGFyYW1zKTtyZXR1cm4geUgoInBsYXllciIsVyl9fUsobil7cmV0dXJuIG4uY29udGVudFBsYXliYWNrQ29udGV4dD8udmlzPT09CjI/IldBVENIX0ZVTExfU0NSRUVOIjoiV0FUQ0gifUoobixXLEQpe2lmKGcubCgiZW5hYmxlX2ludGVyc3RpdGlhbF9lbnRpdHlfY2hlY2siKSYmVy52aWRlb0lkKWZvcih2YXIgYiBvZlsiQ09OVEVOVF9DSEVDS19SRVFVSVJFRCIsIkFHRV9DSEVDS19SRVFVSVJFRCJdKTtXLnZpZGVvSWQmJihuLnZpZGVvSWQ9Vy52aWRlb0lkKTtXLnBsYXlsaXN0SWQmJihuLnBsYXlsaXN0SWQ9Vy5wbGF5bGlzdElkKTtXLmluZGV4IT09dm9pZCAwJiYobi5wbGF5bGlzdEluZGV4PVcuaW5kZXgrMSk7Vy5wbGF5ZXJQYXJhbXMmJihuLnBhcmFtcz1XLnBsYXllclBhcmFtcyk7InN0YXJ0VGltZVNlY29uZHMiaW4gVyYmVy5zdGFydFRpbWVTZWNvbmRzJiYoZy5sKCJlbmFibGVfcGxheWVyX3JlcXVlc3RfYnVpbGRlcl9zdGFydF90aW1lX2Zsb29yIik/bi5zdGFydFRpbWVTZWNzPU1hdGguZmxvb3IoVy5zdGFydFRpbWVTZWNvbmRzKTpuLnN0YXJ0VGltZVNlY3M9Vy5zdGFydFRpbWVTZWNvbmRzKTtELmNvbnRlbnRQbGF5YmFja0NvbnRleHQmJgoobi5wbGF5YmFja0NvbnRleHQ9e2NvbnRlbnRQbGF5YmFja0NvbnRleHQ6RC5jb250ZW50UGxheWJhY2tDb250ZXh0fSk7RC5wcmVmZXRjaFBsYXliYWNrQ29udGV4dCYmKG4ucGxheWJhY2tDb250ZXh0PXsuLi5uLnBsYXliYWNrQ29udGV4dCxwcmVmZXRjaFBsYXliYWNrQ29udGV4dDpELnByZWZldGNoUGxheWJhY2tDb250ZXh0fSxuLmNvbnRleHQucmVxdWVzdHx8KG4uY29udGV4dC5yZXF1ZXN0PXt9KSxuLmNvbnRleHQucmVxdWVzdC5pc1ByZWZldGNoPSEwKTtuLnBsYXliYWNrQ29udGV4dHx8KG4ucGxheWJhY2tDb250ZXh0PXt9KTtiPW16YigpO24ucGxheWJhY2tDb250ZXh0LmRldmljZVBsYXliYWNrQ2FwYWJpbGl0aWVzPXtzdXBwb3J0c1ZwOUVuY29kaW5nOiEhYixzdXBwb3J0WGhyOk5zfTtELm92ZXJyaWRlTXV0ZWRBdFN0YXJ0JiYobi5vdmVycmlkZU11dGVkQXRTdGFydD1ELm92ZXJyaWRlTXV0ZWRBdFN0YXJ0KTtuLnJhY3lDaGVja09rPSEhVy5yYWN5Q2hlY2tPazsKbi5jb250ZW50Q2hlY2tPaz0hIVcuY29udGVudENoZWNrT2s7Zy5sKCJjYXB0aW9uc19wcmVmc19raWxsc3dpdGNoIil8fChEPShEPWcuWkkoInl0LXBsYXllci1jYXB0aW9uLWxhbmd1YWdlLXByZWZlcmVuY2VzIikpP0Q6W10sVz1nLmwoIndlYl9lbmFibGVfcGxheWVyX3JlcXVlc3RfY2FwdGlvbnNfbGFzdF9sYW5ndWFnZV9vbmx5IiksRD8ubGVuZ3RoJiYoRD1XP1tELmF0KC0xKV06RCxuLmNhcHRpb25QYXJhbXM9e3ZpZXdlclNlbGVjdGVkQ2FwdGlvbkxhbmdzOkR9KSl9VihuKXtuPXRoaXMuWChuKTt2YXIgVztuJiYoVz17SG46e1JMOm59fSk7Zy5sKCJ3ZWJfbG9nX3BsYXllcl93YXRjaF9uZXh0X3RpY2tzIikmJihXPVd8fHt9LFcuTGE9InBzX3MiLFcuUlY9InBzX3IiKTtyZXR1cm4gV319O0tIU1tnLkxYXT1bTnRNXTt2YXIgaUI9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW4ucmVzcG9uc2VDb250ZXh0Py5zdGF0ZVRhZ3N9fTt2YXIgd049Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW59aGFuZGxlUmVzcG9uc2UobixXKXtpZighVyl0aHJvdyBFcnJvcigicmVxdWVzdCBuZWVkcyB0byBiZSBwYXNzZWQgaW50byBTdG9yZVJlc3BvbnNlUHJvY2Vzc29yU2VydmljZSIpO3VCKHRoaXMsbixXLmNvbmZpZz8uSG4/LlJMKX19O3dOW2cuTFhdPVtCZV07dmFyIEY4PW5ldyBnLkFMKCJTVE9SRV9SRVNQT05TRV9QUk9DRVNTT1JfVE9LRU4iKTt2YXIgbzg9Y2xhc3MgZXh0ZW5kcyBnLlF4e2NvbnN0cnVjdG9yKG4sLi4uVyl7c3VwZXIobixXKTt0aGlzLmVycm9yVHlwZT0xO09iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLG5ldy50YXJnZXQucHJvdG90eXBlKX19O3ZhciBUcj1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn1hc3luYyBmZXRjaChuLFcsRCxiKXtuPVNzWih0aGlzLG4sVyk7dHJ5e2xldCB2PWF3YWl0IGZldGNoKG4pO2lmKGImJnYub2smJnYuYm9keSYmdHlwZW9mIHYuYm9keS5nZXRSZWFkZXI9PT0iZnVuY3Rpb24iKXtsZXQgaz12LmNsb25lKCkuYm9keS5nZXRSZWFkZXIoKSx7dmFsdWU6aH09YXdhaXQgay5yZWFkKCk7ay5jYW5jZWwoKS5jYXRjaCgoKT0+e30pOwppZihoJiZoWzBdPT09OTEpe2xldCB4PXYuYm9keS5waXBlVGhyb3VnaChuZXcgVGV4dERlY29kZXJTdHJlYW0pLmdldFJlYWRlcigpO3JldHVybiBkTih0aGlzLHgsbmV3IGFzLFtdLGIpfX1yZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVSZXNwb25zZSh2LEQpfWNhdGNoKHYpe2lmKGcuR3EodiksRD8uTGQmJnYgaW5zdGFuY2VvZiBvOCYmdi5lcnJvclR5cGU9PT0xKXRocm93IHY7fX1oYW5kbGVSZXNwb25zZShuLFcpe3ZhciBEPW4udGV4dCgpLnRoZW4oYj0+e2lmKFc/LmhQJiZuLm9rKXJldHVybiBkRyhXLmhQLGIpO2I9Yi5yZXBsYWNlKCIpXX0nIiwiIik7aWYoVz8uTGQmJmIpdHJ5e3ZhciB2PUpTT04ucGFyc2UoYil9Y2F0Y2goayl7dGhyb3cgbmV3IG84KCJKU09OIHBhcnNpbmcgZmFpbGVkIGFmdGVyIGZldGNoIik7fXJldHVybiB2Pz9KU09OLnBhcnNlKGIpfSk7Cm4ucmVkaXJlY3RlZHx8bi5vaz90aGlzLk4mJnRoaXMuTi5zdWNjZXNzKCk6KHRoaXMuTiYmdGhpcy5OLm9ZKCksRD1ELnRoZW4oYj0+e2cuR3EobmV3IGcuUXgoIkVycm9yOiBBUEkgZmV0Y2ggZmFpbGVkIixuLnN0YXR1cyxuLnVybCxiKSk7cmV0dXJuey4uLmIsZXJyb3JNZXRhZGF0YTp7c3RhdHVzOm4uc3RhdHVzfX19KSk7CnJldHVybiBEfX07VHJbZy5MWF09W2cuaHAobmV3IGcuQUwoIk5FVFdPUktfU0xJX1RPS0VOIikpXTt2YXIgenI7dmFyIERZcj1uZXcgZy5xTSgicGFyYWxsZWxDb21tYW5kIik7dmFyIHZuTT1uZXcgZy5xTSgicGVyZm9ybU9uY2VDb21tYW5kIik7dmFyIGI4Yj1uZXcgZy5xTSgic2VyaWFsQ29tbWFuZCIpO3ZhciB2UT1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLk49bn1iaW5kSW5uZXJ0dWJlQ2hhbGxlbmdlRmV0Y2hlcihuKXt0aGlzLk4uYmljZihuKX1yZWdpc3RlckNoYWxsZW5nZUZldGNoZWRDYWxsYmFjayhuKXt0aGlzLk4uYmNyKG4pfWdldExhdGVzdENoYWxsZW5nZVJlc3BvbnNlKCl7cmV0dXJuIHRoaXMuTi5ibGMoKX19O3ZhciBpaEM9W10saGo9KDAsZy5IeClgaHR0cHM6Ly9zdGF0aWMuZG91YmxlY2xpY2submV0L2luc3RyZWFtL2FkX3N0YXR1cy5qc2AsazU9ITE7dmFyIGlEPWNsYXNze2NvbnN0cnVjdG9yKG4sVyl7dGhpcy5KPW47dGhpcy5OPVd9fSxXREM9W25ldyBpRCgiYi5mXyIsMCksbmV3IGlEKCJqLnNfIiwyKSxuZXcgaUQoInIuc18iLDQpLG5ldyBpRCgiZS5oXyIsNiksbmV3IGlEKCJpLnNfIiw4KSxuZXcgaUQoInMudF8iLDEwKSxuZXcgaUQoInAuaF8iLDEyKSxuZXcgaUQoInMuaV8iLDE0KSxuZXcgaUQoImYuaV8iLDE2KSxuZXcgaUQoImEuYl8iLDE4KSxuZXcgaUQoImEub18iKSxuZXcgaUQoImcub18iLDIyKSxuZXcgaUQoInAuaV8iLDI0KSxuZXcgaUQoInAubV8iKSxuZXcgaUQoIm4ua18iLDIwKSxuZXcgaUQoImkuZl8iKSxuZXcgaUQoImEuc18iKSxuZXcgaUQoIm0uY18iKSxuZXcgaUQoIm4uaF8iLDI2KSxuZXcgaUQoIm8ucF8iKSxuZXcgaUQoIm0ucF8iLDI4KSxuZXcgaUQoIm8uYV8iKSxuZXcgaUQoImQucF8iKSxuZXcgaUQoImUuaV8iKV0ucmVkdWNlKChuLFcpPT57bltXLkpdPVc7cmV0dXJuIG59LHt9KTt2YXIgTmU9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQpe3RoaXMubmV0d29yaz1uO3RoaXMub3B0aW9ucz1XO3RoaXMuWD1EO3RoaXMuVz0wO3RoaXMuTj1udWxsO3RoaXMuSj1uZXcgcW5pO1cuUHU/ZXQodGhpcyxvbU0odGhpcykpOlcucHJlbG9hZCYmZXQodGhpcyxuZXcgUHJvbWlzZShiPT57Zy5jQigwLCgpPT57Yih0aih0aGlzKSl9LDApfSkpfWFzeW5jIHlmKCl7cmV0dXJuISFhd2FpdCBQcm9taXNlLnJhY2UoW3RoaXMuTiwKbnVsbF0pfWFzeW5jIGRRKG4sVyxEKXt0aGlzLk49PT1udWxsJiZldCh0aGlzLHRqKHRoaXMpKTt2YXIgYj0hMSx2PXt9O3JldHVybiBQcm9taXNlLnJhY2UoWyhhc3luYygpPT57dGhpcy5vcHRpb25zLkZoJiZ0aGlzLm9wdGlvbnMuUHUmJmF3YWl0IChhd2FpdCB5M3IoKSk/LmNoZWNrRm9yUmVmcmVzaCgpO3ZhciBrPWF3YWl0IHRoaXMuTjt2LmNoYWxsZW5nZT1rLmNoYWxsZW5nZTtpZihrLk8xKXt2YXIgaD17YzprLmNoYWxsZW5nZSxlOm4sLi4uV307dHJ5e2I9ITA7bGV0IHg7KHg9YXdhaXQgay5PMS5zbmFwc2hvdCh7d186aH0pKT92LndlYlJlc3BvbnNlPXg6di5lcnJvcj0iQVRURVNUQVRJT05fRVJST1JfVk1fTk9fUkVTUE9OU0UifWNhdGNoe3YuZXJyb3I9IkFUVEVTVEFUSU9OX0VSUk9SX1ZNX0lOVEVSTkFMX0VSUk9SIn19ZWxzZSJjMWEiaW4gay5SUiYmKHYuZXJyb3I9IkFUVEVTVEFUSU9OX0VSUk9SX1ZNX05PVF9JTklUSUFMSVpFRCIpO249PT0iRU5HQUdFTUVOVF9UWVBFX1BMQVlCQUNLIiYmCihrPWsuUlIsaD17fSxrLmM2YSYmKGgucmVwb3J0aW5nU3RhdHVzPVN0cmluZyhOdW1iZXIoay5jKV5MYygpKSksay5jNmImJihoLmJyb2FkU3BlY3RydW1EZXRlY3Rpb25SZXN1bHQ9U3RyaW5nKE51bWJlcihrLmMpXk51bWJlcihnLkFyKCJDQVRTVEFUIiwwKSkpKSx2LmFkYmxvY2tSZXBvcnRpbmc9aCk7cmV0dXJuIHZ9KSgpLApUR2goRCwoKT0+e3ZhciBrPU9iamVjdC5hc3NpZ24oe30sdik7YiYmKGsuZXJyb3I9IkFUVEVTVEFUSU9OX0VSUk9SX1ZNX1RJTUVPVVQiKTtyZXR1cm4ga30pXSl9fTt2YXIganhTPVsiQVBQX1NUQVRFIiwiUEkiXTt2YXIga3ZNPVszNjExLDI3Njg2LDIyMTA1OCw4NTAxMywyMzQ2MiwyNDExODcsMTU3NTU3LDQyMDE2LDI2OTI2LDUxMjM2LDc5MTQ4LDUwMTYwLDc3NTA0LDMxMDI4MSwxNTM1ODcsODc5MDcsMTg2MzAsMTc3MDE4LDE3NzAyMyw1NDQ0NSwzMjE2NjYsMzI2MzUzLDMyNjM1NCw4MDkzNSwxNTIxNzIsMTg0NTUzLDEwNTY3NSwxNTA3MjMsMzc1MjEsMTQ3Mjg1LDQ3Nzg2LDIzMTI1NSwyMzEyNTQsMjMxMjU4LDIzMTI1OSw5ODM0OSwyMzcyOTksMTY4MjcxLDE2ODk1NCwxNjgyNzcsMTY4MjczLDE2ODI3MCwxMjM2OTUsMjcyMDE4LDMzODQ5NywyMjY5ODcsMjI2OTkwLDIyNjk4OCw2ODI3LDI5NDM0LDI1NTAxMCwxNzEzODgsMjQ0MTg5LDIzNjIwOCw3MjgyLDEyNDQ0OCwyOTk5MDMsMjk5ODk3LDI5OTkwNCwyOTk5MDEsMjk5ODk5LDI5OTkwMiwyOTk5MDAsMjk5ODk4LDE5NjA4OCwyNTA4OTcsMTk4MTA0LDMyMjc2LDE5NTExNSwxOTUxMTQsNzYyNzgsMjAwNjM1LDIzMDU5NCwxNDc4NjgsCjE0Nzg2OSwyNzYyNDMsOTM5MTEsMjc0MTg4LDI3NjY1MSwzMTM2ODAsMTA2NTMxLDI1NzIzNCwyNTI1OTgsMjUyNTk3LDI1MjYwMCwyNTI1OTksMjUyNTk2LDIyNTAzMSwxNzc4NDMsMjcyNTksMjcyNjIsMjcyNjMsMjE3NTksMjgzNjcwLDE2MDg2NiwyMDQyNDksMjIyOTAwLDIwNDI1MCwxODA2MjYsMTc3OTU5LDE3Nzk1NywxODA2MjgsMjA1NzE2LDE5Nzg3OCwyNzM3NjYsMTcxMjQzLDE2MDc4OSwxNzEyNDQsMTcxMjQxLDE3MTI0NSwxNzEyNDIsMjI1NTYwLDE4MDYyNywxNzc5NjAsMjMxNTg5LDE3Nzk1OCwxODA2MjksMjA1NzE3LDE5Nzg3OSwxNzc1NjUsMjEyNTczLDIxMDcwOSw5OTQ0MTIsMjMwNjg0LDIyOTgwMSwyMzA2ODUsMzM0MzEwLDMzNDMxMSwzMzQzMTIsMTk3MzM3LDIwOTAxMCwxOTczMzYsMTk3MzM4LDE5ODYxOCwzMDA4ODQsMTc1NDkyLDE5ODA1MiwxOTgwNTEsMTk3ODUyLDE5Nzk3NiwzMTczNzcsMTc1NDkzLDE3NTQ5NCwxNzU0OTUsMTg5MjU0LDE3NTQ5NiwxNzU0OTcsCjM4NDA4LDE3NTQ5OCwxNzU1MDMsMTc1NTA0LDE3NTUwNSwxNzU1MDYsMTc1NTA3LDE3NTUwOCw4MDYzNyw2ODcyNywyMDY5MzMsMjA3OTQ0LDIwNjkzNCwzMDMxMjMsMjA2OTI5LDIyMTU3NSw2ODcyOCwyMjE1NzYsODAzNTMsODAzNTYsMzA4MDMzLDI0OTEwNywxODA2MzUsNzQ2MTAsNDU3MDcsODM5NjIsODM5NzAsNDY3MTMsMTY2NTkxLDg5NzExLDc0NjEyLDIxMzgwOSwxNzk2MDcsMjQ1MDA2LDE1NTc5Miw5MzI2NSw3NDYxMSwxMzEzODAsMTI4OTc5LDEzOTMxMSwxMjg5NzgsMTMxMzkxLDEwNTM1MCwxMzkzMTIsMzMzNjM3LDEzNDgwMCwxMzEzOTIsMTEzNTMzLDIyOTI5OCw5MzI1Miw5OTM1Nyw5NDUyMSwxMTQyNTIsMTEzNTMyLDk0NTIyLDk0NTgzLDIwMjM3MSw4OEUzLDEzOTU4MCw5MzI1Myw5MzI1NCw5NDM4Nyw5NDM4OCw5MzI1NSw5NzQyNCw3MjUwMiwyMTk4NjgsMjEyOTkxLDExMDExMSw3NjAxOSwxMTcwOTIsMTE3MDkzLDg5NDMxLDE5MTgzMSwxMTA0NjYsMjMxMzQ2LAo3NzI0MCw2MDUwOCwxODYwOTEsMTQ4MTIzLDE0ODEyNCwxMzc0MDEsMTM3NDAyLDEzNzA0Niw3MzM5MywyNDY3NzYsMTEzNTM0LDI3NjIwMCw5MjA5OCwxMzEzODEsODQ1MTcsODM3NTksMzA5NTgwLDIzMDY3NiwyNDkxODMsMjMwNjc5LDIzMDY3OCwyMzA2NzcsMjMwNjgxLDIzMDY4MCwxNjI3MTEsMjM1MjM0LDE2MjcxMiw4MDM1Nyw5OTQ0MTEsMjQzMzE1LDMxMzUwNiwzMjE5NjQsODYxMTMsNzI1OTgsMTY4NDEzLDcyNzMzLDEwNzM0OSwxMjQyNzUsMTE4MjAzLDIwMDQxMCwxMzMyNzUsMTYwMTU3LDE1MjU2OSwxNTY2NTEsMTMzMjc0LDE2MDE1OSwxNjAxNTgsMTMzMjcyLDEzMzI3MywxMzMyNzYsMTQ0NTA3LDE0MzI0NywxNzU5OTQsMTU2NjUyLDE0MzI0OCwxNDMyNDksMTQzMjUwLDE0MzI1MSwxODk4OTIsMTg5ODk0LDE4OTg5MywxNTY2NTMsMjE0MjM2LDE0NDQwMSwxMTc0MzEsMTMzNzk3LDIyNTEzNywyNzM5MDUsMjIyNjEyLDIyMjYxMywxNTM5NjQsMjAxMTMzLDIwMTEzNCwKMjAxMTM1LDIwMTEzNiwyMDExMzcsMTI4NTcyLDIwMDQxMSwyMDA0MTIsMTkwMzM3LDEzMzQwNSwxMTc0MjksMTE3NDMwLDE3Nzk1MCwxNzQ3MzQsMTc3OTUxLDIwMTEzOCwyMDExMzksMjAxMTQwLDIwMTE0MSwyMDExNDIsMTE3NDMyLDE3Mzk5NiwxNzM5OTUsMTc0OTUzLDE3Mzk5NCwxNzM5OTcsMTIwMDgwLDExNzI1OSwxNzg1NDYsMjk3NzUyLDE5Nzg5MSwxNTY2NTUsMTU2NjU0LDEyMTY5MiwyMTE0MTQsMjExNDExLDIxMTQxMiwyMTE0MTMsMjExNDAzLDE4NDg0NiwxODU5OTMsMzM1MDQ4LDE0NTY1NiwxNTY2NTYsMTQ1NjU1LDE0NTY1MywxNDU2NTQsMTQ1NjU3LDEzMjk3MiwxMzMwNTEsMTMzNjU4LDEzMjk3MSwzMzY3MjgsOTc2MTUsMTgxMjYyLDE5MDc2MiwyNTAzNDQsMjU0MDI3LDE0MzM1OSwxNDMzNTYsMTQzMzYxLDE0MzM1OCwxNDMzNjAsMTQzMzU3LDE0MjMwMywxNDMzNTMsMjgyMTU5LDE3Mjg1OSwxNDMzNTQsMTQ0NDc5LDE0MzM1NSwzMTQwMiwxODE1OTAsMTMzNjI0LAoxNDY0NzcsMTMzNjIzLDEzMzYyMiwxMzM2MjEsMTkyNDE4LDg0Nzc0LDMwNDc3NiwxOTc5OTMsMjQxNDYwLDE2MDgwMSwxOTc5OTUsOTUxMTcsMTcyNzIxLDE1MDQ5Nyw5ODkzMCw5ODkzMSw5ODkzMiwzMzg1NzAsMzM4NDc0LDMzODQ3OCwzMzg0NzMsMTUzMzIwLDE1MzMyMSw0MzM0NywzMDUyNjgsMjQ5Mjk1LDIxMDAxNiwyMTAwMTcsMjYyNjg2LDIxMTg1MSwyMTE4NTIsMzA3MjE5LDIxMTg1MywzMjc4MTAsMTI5ODg5LDE5Nzg4OCwxOTc4ODksMTQ5MTIzLDIyMTk1OSwyMjE2MjcsMjIxOTU4LDQ1NDc0LDEwMDM1Miw5ODQ0MywxMTc5ODUsMzMzNzA4LDc0NjEzLDE1NTkxMSw3NDYxNCw2NDUwMiwxMzYwMzIsNzQ2MTUsNzQ2MTYsMTIyMjI0LDc0NjE3LDc3ODIwLDc0NjE4LDI2Mjk4OCwyNjI5ODksMjI2OTgxLDkzMjc4LDkzMjc0LDkzMjc1LDkzMjc2LDIwMDY4OCwyMDA2ODYsMjAwNjg3LDE5OTg0MSwyMjExMCwyOTQzMywxMzM3OTgsMTMyMjk1LDI4MTMzMiwxMjA1NDEsMjIyMTEyLAo4MjA0NywxMTM1NTAsNzU4MzYsNzU4MzcsMzAzODgyLDE5MjQwOSwyMDMyMjEsNDIzNTIsODQ1MTIsNzYwNjUsNzU5ODksMjA1OTExLDIwNTkxMiwyNTI2NDksMjA1OTEzLDI1MjY1MCwyNTI2NTEsNTE4NzksMTY2MjMsMzI1OTQsMjcyNDAsMzM4MTA5LDI5MzMyNCwzMjYzMyw3NDg1OCwzMDQxNTAsMjk3MDQ1LDI3NTE5OCwyNzE4ODQsMjIyOTMyLDI3OTExOSwzMTI1ODEsMjcxODg2LDIxMzkxNSwyNzUxOTksMzEwNzQ4LDIyNTIxNiwyNTEyNDQsMjU4MjUxLDIxODY3NCwyNTEyNjYsMjU4MjUwLDI1MTI2NSwzMDE2NjIsMjUxMjQ1LDI3MTg4NSwzMTU4MTgsMTU2OTk5LDM5NDUsMTY5ODksNDU1MjAsMjU0ODgsMjU0OTIsMjU0OTQsMjMyMTEzLDU1NzYwLDE0MDU3LDE4NDUxLDU3MjA0LDU3MjAzLDE3ODk3LDE4MTk4LDE3ODk4LDE3OTA5LDQzOTgwLDIyMTA1MywxOTU1MjksMTg5NjYwLDMwODA4OCwzMDY0NDgsMzA2NDQ3LDMwODA4NywzMDgwODYsNDYyMjAsMTE3MjEsMTQ3OTk0LDQ5OTU0LAo5NjM2OSwzODU0LDIxNzY0MCwxNTE2MzMsNTYyNTEsMjA1MTkyLDIxNjc5NywxNTkxMDgsMTgxNTY4LDIzNDc4OSwyNTYyNCwxNTIwMzYsMTY5MDYsOTk5OTksNjgxNzIsNDc5NzMsNzI3NzMsMjY5NzAsMjY5NzEsOTY4MDUsMTc3NTIsMjgyMTgxLDI3ODkyNiw3MzIzMywyMDU5MjMsMTA5NTEyLDIyMjU2LDE0MTE1LDIyNjk2LDIzNDQwOSwyMzQ0MDgsODkyNzgsODkyNzcsMTk1NzQ1LDEwOTUxMyw0MzI3OCw0MzQ1OSw0MzQ2NCw4OTI3OSw0MzcxNyw1NTc2NCwyMjI1NSwxNDc5MTIsODkyODEsNDA5NjMsNDMyNzcsNDM0NDIsOTE4MjQsMjgzODk4LDEyMDEzNywxODYzNTAsMTg2MzUxLDI1NjY5MCwyNjQzNDksMjY0MzUxLDI2NDM1MCwyNjQzNTIsMjExMDI2LDI1MDg5Niw5NjM2NywzNjg1MCw3MjY5NCwzNzQxNCwzNjg1MSwxMjQ4NjMsMTIxMzQzLDczNDkxLDU0NDczLDE2Njg2MSw0MzM3NSw0NjY3NCwzMDI2MzEsMzMxNDczLDI0MjUyOCwxNDM4MTUsMTM5MDk1LDE0NDQwMiwxNDk5NjgsCjE0OTk2OSwzMjQ3Myw3MjkwMSw3MjkwNiw1MDYxMiw1MDYxMyw1MDk0Miw4NDkzOCw4NDk0Myw4NDkzOSw4NDk0MSw4NDk0NCw4NDk0MCw4NDk0MiwzNTU4NSw1MTkyNiw3OTk4MywxODkyMSw1Nzg5Myw0MTE4MiwxMzU3MzIsMzM0MjQsMjIyMDcsMzYyMjksMjIyMDYsMjIyMDUsNDQ3NjMsMzM0MjcsNjc3OTMsMjIxODIsMzcwOTEsMzQ2NTAsNTA2MTcsMjIyODcsMjUxNDQsOTc5MTcsMjIwMTIyLDYyMzk3LDE1MDg3MSwxNTA4NzQsMTI1NTk4LDEzNzkzNSwzNjk2MSwxMDgwMzUsMzIzNDkzLDI3NDI2LDI3ODU3LDI3ODQ2LDI3ODU0LDY5NjkyLDYxNDExLDM5Mjk5LDM4Njk2LDYyNTIwLDM2MzgyLDEwODcwMSwxOTI2ODIsMjc5NTMxLDUwNjYzLDM2Mzg3LDE0OTA4LDM3NTMzLDEwNTQ0Myw2MTYzNSw2MjI3NCwxNjE2NzAsMTMzODE4LDE4MjExOSw2NTcwMiw2NTcwMyw2NTcwMSwzMjA0NjQsNzYyNTYsMjk4MTU3LDI2Mzg0MywzMTUyMzQsMTk2MDc1LDE5NDc2OCwyNTIyMDEsMTk0NzY5LAoxOTE4ODUsMjgxNDgwLDIzMzYzNCwyNjU4MTAsMTk0NzcwLDI5NjkzMywxOTUzNTAsMzI3Mzg1LDMyNDU4NiwzMDE2MDcsMTk1MzQ5LDE5NDc3MSwyOTMwNDEsMzAxMTIxLDI5MzA0MiwyOTMwNDMsMzAxMTE2LDE2NjM4MiwzNzY3MSw0OTk1MywyMjA2NjksNjAwMDAxLDYwMDAwMiw2RTUsMzM1MTM0LDI0OTIyOSwyMTM3NzQsMjA0NTcyLDE5MTM4OSwyNzIyNTQsMjcyMjUzLDI1MzgzMCwyNTM4MzEsMjUzODMyLDI3MjI1MiwyNTM4MzMsMjUzODM0LDIwNDU3NCwxOTEzOTAsMTc5NTU2LDIzODU5NiwyMTI2NjEsMTkxMzkyLDE5NzgyNiwxOTEzOTMsMjA0NTczLDM2MjE2LDI4MjM3LDI0MTIxMiwyNzIwNDksMTczNzE4LDM5NTUzLDE5MjU0NywyOTIyMiwzMDQ4NDUsMjYxMDcsMjQxMjExLDM4MDUwLDI2MTA4LDI3NTgxMCwxMjA3NDUsMjYxMDksMjYxMTAsNjY4ODEsMjgyMzYsMTQ1ODYsMjk3NjcyLDE2MDU5OCw1NzkyOSwyMjY3MzYsNzQ3MjMsNDQwOTgsMTczNjg5LDQ0MDk5LDIzNTI4LAo2MTY5OSwxMzQxMDQsMTM0MTAzLDE5ODMxMyw1OTE0OSwxODEwMTMsMjc4MzA2LDI4MjQ3MiwyNzc4NDgsMTczMTkxLDE3MzE5MiwxNzMxOTMsMTAxOTUxLDE3MTUwMiwxOTYwNDMsMTk4MzA1LDk3MzQ2LDExODA1MSw5NTEwMiw2NDg4MiwxMTk1MDUsNjM1OTUsMjk0MTE5LDI1NzI2OCw2MzM0OSwyODExMjcsMjQwNTUzLDk1MTAxLDc1MjQwLDI3MDM5LDY4ODIzLDIxNTM3LDgzNDY0LDc1NzA3LDI1MjkwNCwxNzAyMTUsMjIzMDMzLDgzMTEzLDEwMTk1MiwxMDE5NTMsNzk2MTAsMTI1NzU1LDI0NDAyLDI0NDAwLDMyOTI1LDE5MzQwNiw1NzE3MywxODMzNTEsMTU2NDIxLDEyMjUwMiwxNDUyNjgsMTM4NDgwLDY0NDIzLDY0NDI0LDMzOTg2LDEwMDgyOCwxMjkwODksMjk5NTQxLDIxNDA5LDI4MjIxOCwyOTk1MDYsMzMzOTU2LDI5OTU0MCwyOTk1MDcsMjk5NTA5LDI5OTUzOSwyOTk1MDgsMjk5NTEwLDE4NTYxMiwyMjI4MjUsMzIzMzMxLDI0NTM2NiwxMzUxNTUsMTM1MTU2LDEzNTE1NywKMTM1MTU4LDE1ODIyNSwxMzUxNTksMTM1MTYwLDE2NzY1MSwxMzUxNjEsMTM1MTYyLDEzNTE2MywxNTgyMjYsMTU4MjI3LDEzNTE2NCwxMzUxNjUsMTM1MTY2LDExMDcwLDExMDc0LDE3ODgwLDI3MDU2MCwzMDcwOSwzMDcwNywzMDcxMSwzMDcxMCwzMDcwOCwxODUyMTMsMTg1MjczLDE0NjE0Myw2MzY0OCw2MzY0OSwyMjEwNTYsMjY0NDkwLDIxMTE4OSwxMTEwNTksMjExMTg4LDU3NTQsMjY0NDkxLDIwNDQ1LDIzMzQ3MSwxNTEzMDgsMzEzNzUwLDE1MTE1MiwyMjgwNjcsMTMwOTc1LDEzMDk3NiwyNDcyNDQsMjcxNjIyLDI3MTgxMywyNjEyMTAsMjEwODE1LDI5NTA2OSwyNDYxMjcsMzE2ODU4LDI0NTI1NiwyNDQ5NTAsMTkxOTI1LDE2NzYzNywyMzQ1NDUsMTk3MTk2LDMwMjczNSwyMTQyOTUsMTEwMzg2LDIyMTA1NCwyNzM5NjAsMjgyMTExLDMxMjI5MCwxMTM3NDYsMzI1NTkzLDI2ODg4Niw2NjU1NywxODMyMTUsMTczMTAsMjg2MzEsMjAxOTM1LDIxNTg5LDI0MjAzNiwyMzgzNTEsCjE2NDgxNywxNjgwMTEsMTU0OTQ2LDY4MDEyLDE2MjYxNyw2MDQ4MCwxODQ0MzEsMTM4NjY0LDI5NDA4OSwyNDk4MjcsMTk0RTMsMTQxMTIxLDE2NDUwMiwzMTU3MSwxOTUwMDIsMjA2NzkzLDE0MTk3OCwyMzM5ODUsMjUwODk1LDI1NDA1MiwyNTQwNTMsMjU0MDU0LDI1NDA1MSwyNTQwNTAsMjU0MDU1LDE1MDEwNSwzMDQxNjksMTUwMTA2LDE1MDEwNywxNTAxMDgsNzY5ODAsNDE1NzcsNDU0NjksMzg2NjksMTM3NjgsMTM3NzcsMTQxODQyLDYyOTg1LDIxMzE5MCw0NzI0LDIyMzA1Miw1OTM2OSw0MzkyNyw0MzkyOCwxMjkyNCwxOTc4NTMsMTAwMzU1LDU2MjE5LDI3NjY5LDIwOTkyOCwxMDMzNywyMDM2NDgsMjAzNjQ5LDQ3ODk2LDMyNjkzNywxMjI2MjksMTg2MjA0LDIyMjgyNCwyNzU4NjksMzEyMjk1LDI3MTY3MywyNzQ2MzcsMzE3NDYyLDEzOTcyMywxMzk3MjIsMTIxMjU4LDI1Mzc4OSwyNTM3ODcsMjUzNzg2LDI1Mzc4OCwyNTM3OTAsMTA3NTk4LDEyNzk5MSw5NjYzOSwxMDc1MzYsCjEzMDE2OSwyMTY1MjIsMjk2MzE2LDk2NjYxLDE0NTE4OCwzMjA0MjgsMjEzOTA0LDI2OTM0Miw5NjY1OCwxMTY2NDYsMTU5NDI4LDE2ODYxMSwxNjg2MTIsMTIxMTIyLDIxOTg2Miw5NjY2MCwyODIyMDgsMTI3NzM4LDEyNzA4MywxNTUyODEsMTYyOTU5LDIyMDg4NiwyMjczNTYsMjQ4MDA3LDE2MzU2NiwzMDc2NDYsMTg2NjQxLDE0Nzg0MiwyNzM2NDYsMjczNjQ3LDIxNzkzMiwxMDQ0NDMsOTY2NTksMTQ3NTk1LDEwNjQ0MiwyNDcxNjIsMjMxNDkzLDIxMzQyNywyOTY4MTMsMjQ2NTc1LDE4MjQyMywxNjI3NzYsMjI4OTA4LDEzNDg0MCw2MzY2Nyw2MzY2OCw2MzY2OSwxMzA2ODYsMjQ4MzgxLDE0NzAzNiwyMzkwOTQsMjYyNzQzLDE4OTgxMCwyMzkwOTUsNzgzMTQsMTQ3Nzk5LDMwNTkxOSwzMDU5MjQsMjM3MTQ2LDE3NDA0OSwxNDg2NDksNTU3NjEsMTI3MDk4LDEzNDg0MSw5NjM2OCw2NzM3NCw0ODk5MiwxNDYxNzYsMTc2MTA1LDMyMzMyMSwzMjMzMjIsMjMzMDM1LDQ5OTU2LDI2NzY0NSwKMjc1NzgyLDE5MDE5MCwyMjU3MzksMzE5NjEsMjYzODgsMjM4MTEsNUU0LDEyNjI1MCw5NjM3MCwyMTA1NDksMzI5NDkwLDQ3MzU1LDQ3MzU2LDM3OTM1LDQ1NTIxLDMzMTUzNiwzMzE1MzQsMzMxNTM1LDMzMTUzMywyMTc2MCw4Mzc2OSw0OTk3Nyw0OTk3NCw5MzQ5Nyw5MzQ5OCwzNDMyNSwxNDA3NTksMTE1ODAzLDEyMzcwNywxMDAwODEsMzUzMDksMjM3NzA2LDY4MzE0LDI1NjAyLDEwMDMzOSwxNzA4NzMsMTQzNTE2LDI5OTI0NywxNzg5MjEsMjY4NTc0LDI1NDg4NCwyNTgyMzIsNTkwMTgsMTgyNDgsNTA2MjUsOTcyOSwzNzE2OCwzNzE2OSwyMTY2NywxNjc0OSwxODYzNSwzOTMwNSwxODA0NiwyMjEwNTcsMzAxODk3LDMwMTkwMCwyNjk5OTAsNTM5NjksODIxMyw5MzkyNiwyMjEwNTUsMjEwNTQyLDIxMjU1MiwxMDI4NTIsMTEwMDk5LDIyNjc4LDY5MDc2LDEzNzU3NSwxMzkyMjQsMTAwODU2LDIzNTc3MCwxNTQ0MzAsMjM1ODYxLDIwOTc1NywxNzczNiwzODMyLDE0NzExMSw1NTc1OSwKNjQwMzEsMjM0NzQ2LDkzMDQ0LDkzMDQ1LDI4MTMwMiwxNzA3MDEsMTcwNzAyLDE5NDc5NiwzNDM4OCwxNjc4NDEsMTcwNDE5LDE3NjU3LDE3NjU1LDM5NTc5LDM5NTc4LDE3MDQxMiw3NzQ0OCw4MTk2LDExMzU3LDY5ODc3LDgxOTcsMTY4NTAxLDE1NjUxMiwxNjE2MTMsMTU2NTA5LDIwODI3NCwxNjE2MTIsMTYxNjE0LDI2NzY5MiwyNjc4NTEsMjY3NTc3LDI3OTc1NSwyNjc2OTMsMjY3Njk0LDI2NzU3OCwyNjI4MDEsMzM0NDk2LDMzNTg0NCwyNzEyMTgsMjY2MTMxLDI2NjEzMiwyNjc5NzcsMjY3NTc5LDI2MjgwMCwyNjI3OTksMjYyODAyLDI2NzU4MCwyNjI3OTgsMjY3Njk1LDI2NzU4MSwyNzMyMzIsODIwMzldO3ZhciBtUVM9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy5OPW59aGFuZGxlUmVzcG9uc2UobixXKXtpZihXLmlucHV0Lm1hdGNoKExCKE40aCkpKXt2YXIgRD1uPy5lbmRwb2ludDtXPWcudyhELFRlKT8udW5zZXJpYWxpemVkUHJlZmV0Y2hEYXRhO2lmKEQmJlcpe249dGhpcy5OO3ZhciBiPShuZXcgc29iKS5YKEQpLHY9Zy53KFcsRCRyKTtsZXQgaz12Py5yZXNwb25zZUNvbnRleHQ/Lm1heEFnZVNlY29uZHMmJk51bWJlcih2Py5yZXNwb25zZUNvbnRleHQ/Lm1heEFnZVNlY29uZHMpPjA/TnVtYmVyKHY/LnJlc3BvbnNlQ29udGV4dD8ubWF4QWdlU2Vjb25kcyk6NjAwO3YmJmImJms+MCYmKHY9RWUodixrKSxuLnB1dChiLG5ldyBiaCh2KSkpO0Q9KG5ldyBLSFMpLlgoRCk7Vz1nLncoVyxhSncpO2I9Vz8ucmVzcG9uc2VDb250ZXh0Py5tYXhBZ2VTZWNvbmRzJiZOdW1iZXIoVz8ucmVzcG9uc2VDb250ZXh0Py5tYXhBZ2VTZWNvbmRzKT4wP051bWJlcihXPy5yZXNwb25zZUNvbnRleHQ/Lm1heEFnZVNlY29uZHMpOgo2MDA7VyYmRCYmYj4wJiYoVz1FZShXLGIpLG4ucHV0KEQsbmV3IGJoKFcpKSl9fX19O21RU1tnLkxYXT1bQmVdO25mKCIiLCJkb3dubG9hZHNQYWdlVmlld0NvbmZpZ3VyYXRpb25FbnRpdHkiKTtuZigiRE9XTkxPQURTX0xJU1RfRU5USVRZX0lEX01BTlVBTF9ET1dOTE9BRFMiLCJtYWluRG93bmxvYWRzTGlzdEVudGl0eSIpO25mKCJET1dOTE9BRFNfTElTVF9FTlRJVFlfSURfU01BUlRfRE9XTkxPQURTIiwibWFpbkRvd25sb2Fkc0xpc3RFbnRpdHkiKTtuZigiRE9XTkxPQURTX0xJU1RfRU5USVRZX0lEX1NNQVJUX0RPV05MT0FEUyIsInJlZnJlc2giKTtuZigiU01BUlRfRE9XTkxPQURTX0VOQUJMRUQiLCJzZXR0aW5nRW50aXR5Iik7dmFyIHd5aD1bInd3dy55b3V0dWJlLW5vY29va2llLmNvbSIsInd3dy55b3V0dWJlZWR1Y2F0aW9uLmNvbSIsInlvdXR1YmUuZ29vZ2xlYXBpcy5jb20iXSxPNng9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN0YXRlPTE7dGhpcy5PMT1udWxsO3RoaXMuRGE9dm9pZCAwfWluaXRpYWxpemUobixXLEQsYil7dGhpcy5EYT1iO2lmKG4ucHJvZ3JhbSl7dmFyIHY7Yj1uLmludGVycHJldGVyVXJsPz9udWxsO24uaW50ZXJwcmV0ZXJTYWZlU2NyaXB0P3Y9Tk4obi5pbnRlcnByZXRlclNhZmVTY3JpcHQpOnY9bi5pbnRlcnByZXRlclNjcmlwdD8/bnVsbDtuLmludGVycHJldGVyU2FmZVVybCYmKGI9cHcobi5pbnRlcnByZXRlclNhZmVVcmwpLnRvU3RyaW5nKCkpO0Y0Yih0aGlzLHYsYixuLnByb2dyYW0sVyxEKX1lbHNlIGcuR3EoRXJyb3IoIkJMOkNJUCIpKX1pc0luaXRpYWxpemVkKCl7cmV0dXJuIHRoaXMuSigpfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuc3RhdGV9aXNMb2FkaW5nKCl7cmV0dXJuIHRoaXMuc3RhdGU9PT0KMn1pbnZva2Uobj17fSl7cmV0dXJuIHRoaXMuSigpP3RoaXMuVyh7d186bn0pOm51bGx9ZGlzcG9zZSgpe3RoaXMuTihudWxsKTt0aGlzLnZWKDgpfUooKXtyZXR1cm4hIXRoaXMuTzF9VyhuKXtyZXR1cm4gdGhpcy5PMS5tNShuKX1OKG4pe2cuQ3AodGhpcy5PMSk7dGhpcy5PMT1ufXZWKG4pe3RoaXMuc3RhdGU9bn19O3ZhciBQQU09Y2xhc3MgZXh0ZW5kcyBPNnh7TihuKXtKaigpPy5iZ3ZtYSgpO2lmKG4pe2xldCBXPXtiZ3ZtYTpuLmRpc3Bvc2UuYmluZChuKSxiZ3ZtYjpuLnNuYXBzaG90LmJpbmQobiksYmd2bWM6bi5tNS5iaW5kKG4pfTtnLkdiKCJ5dC5hYnVzZS5wbGF5ZXJBdHRMb2FkZXIiLFcpO2cueWooRD0+bi5zbmFwc2hvdChEKSl9ZWxzZSBnLkdiKCJ5dC5hYnVzZS5wbGF5ZXJBdHRMb2FkZXIiLG51bGwpLGcuR2IoInl0LmFidXNlLnBsYXllckF0dExvYWRlclJ1biIsbnVsbCl9Sigpe3JldHVybiEhSmooKX1XKG4pe3JldHVybiBKaigpLmJndm1jKG4pfX07dmFyIFpMPXtBRF9NQVJLRVI6Inl0cC1hZC1wcm9ncmVzcyIsQ0hBUFRFUl9NQVJLRVI6Inl0cC1jaGFwdGVyLW1hcmtlciIsVElNRV9NQVJLRVI6Inl0cC10aW1lLW1hcmtlciJ9O3ZhciBzMz12b2lkIDA7dmFyIEgkPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5YPW5ldyBTZXQ7dGhpcy5KPW5ldyBTZXQ7dGhpcy5qPW5ldyBNYXA7dGhpcy5jbGllbnQ9dm9pZCAwO3RoaXMuY3NuPW51bGx9VyhuKXt0aGlzLmNsaWVudD1ufU4oKXt0aGlzLmNsZWFyKCk7dGhpcy5jc249Zy5SdigpfWNsZWFyKCl7dGhpcy5YLmNsZWFyKCk7dGhpcy5KLmNsZWFyKCk7dGhpcy5qLmNsZWFyKCk7dGhpcy5jc249bnVsbH19O3ZhciBVMz1jbGFzc3tXKG4pe1BWKGZpKCkuVykuYmluZChmaSgpKShuKX1jbGVhcigpe1BWKGZpKCkuY2xlYXIpLmJpbmQoZmkoKSkoKX19O3ZhciBKWD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuRD1bXTt0aGlzLk89W107dGhpcy5LPW5ldyBNYXA7dGhpcy5UQz1uZXcgTWFwO3RoaXMuVj1bXTt0aGlzLmNKPVtdO3RoaXMuWD1uZXcgTWFwO3RoaXMuWT1uZXcgTWFwO3RoaXMuSj1uZXcgTWFwO3RoaXMuTj1uZXcgU2V0O3RoaXMuUyQ9bmV3IE1hcH1XKG4pe3RoaXMuY2xpZW50PW59YmQobixXPXt9KXtQVigoKT0+e3ZhciBEPWcudyhuPy5jb21tYW5kTWV0YWRhdGEscGopPy5yb290VmV8fGcudyhuPy5jb21tYW5kTWV0YWRhdGEsWnNyKT8uc2NyZWVuVmlzdWFsRWxlbWVudD8udWlUeXBlO2lmKEQpe3ZhciBiPWcudyhuPy5jb21tYW5kTWV0YWRhdGEsYk1yKTtpZihiPy5wYXJlbnRUcmFja2luZ1BhcmFtcyl7dmFyIHY9VFUoYi5wYXJlbnRUcmFja2luZ1BhcmFtcyk7aWYoYi5wYXJlbnRDc24pdmFyIGs9Yi5wYXJlbnRDc259ZWxzZSBXLmNsaWNrZWRWaXN1YWxFbGVtZW50P3Y9Vy5jbGlja2VkVmlzdWFsRWxlbWVudDpuLmNsaWNrVHJhY2tpbmdQYXJhbXMmJgoodj1UVShuLmNsaWNrVHJhY2tpbmdQYXJhbXMpKTthOntiPWcudyhuLGcuSVEpO3ZhciBoPWcudyhuLHpPdyk7aWYoYil7aWYoaD10WChiLCJWSURFTyIpKXtiPXt0b2tlbjpoLHZpZGVvSWQ6Yi52aWRlb0lkfTticmVhayBhfX1lbHNlIGlmKGgmJihiPXRYKGgsIlBMQVlMSVNUIikpKXtiPXt0b2tlbjpiLHBsYXlsaXN0SWQ6aC5wbGF5bGlzdElkfTticmVhayBhfWI9dm9pZCAwfVc9e2N0dEF1dGhJbmZvOmIscGFyZW50Q3NuOmssLi4uV307Zy5sKCJleHBlY3RhdGlvbl9sb2dnaW5nIikmJihXLmxvZ2dpbmdFeHBlY3RhdGlvbnM9Zy53KG4/LmNvbW1hbmRNZXRhZGF0YSxac3IpPy5sb2dnaW5nRXhwZWN0YXRpb25zfHx2b2lkIDApO21VKHRoaXMsRCx2LFcpfWVsc2UgZy5HcShuZXcgZy5ReCgiRXJyb3I6IFRyeWluZyB0byBjcmVhdGUgYSBuZXcgc2NyZWVuIHdpdGhvdXQgYSByb290VmVUeXBlIixuKSl9KSgpfWNsaWNrQ29tbWFuZChuLFcsRD0wKXtyZXR1cm4gZ25aKHRoaXMsbi5jbGlja1RyYWNraW5nUGFyYW1zLApXLEQpfXN0YXRlQ2hhbmdlZChuLFcsRD0wKXt0aGlzLnZpc3VhbEVsZW1lbnRTdGF0ZUNoYW5nZWQoVFUobiksVyxEKX12aXN1YWxFbGVtZW50U3RhdGVDaGFuZ2VkKG4sVyxEPTApe0Q9PT0wJiZ0aGlzLk4uaGFzKEQpP3RoaXMuTy5wdXNoKFtuLApXXSk6UCQodGhpcyxuLFcsRCl9blQobil7dmFyIFc9bi5jcG4sRD1TMih0aGlzLDApO2lmKEQubGVuZ3RoJiZEW0QubGVuZ3RoLTJdPy5jcG4hPT1XJiYoRD1nLlJ2KCksVyYmRCYmRCE9PSJVTkRFRklORURfQ1NOIikpe3ZhciBiO24uaXRjdCYmKGI9VFUobi5pdGN0fHwiIikpO2xldCB2PXt9O2cubCgid2ViX3BsYXliYWNrX2Fzc29jaWF0ZWRfbG9nX2N0dCIpJiZuLmtXJiYodi5jdHRBdXRoSW5mbz17dG9rZW46bi5rVyx2aWRlb0lkOm4udmlkZW9JZH0pO249e2NwbjpXLGNzbjpEfTtnLmwoIndlYl9wbGF5YmFja19hc3NvY2lhdGVkX3ZlIikmJmImJihGaihELGIpLG4ucGxheWJhY2tWZT1iLmdldEFzSnNvbigpKTtnLnpVKCJwbGF5YmFja0Fzc29jaWF0ZWQiLG4sdik7Yj1TMih0aGlzLDApO2JbYi5sZW5ndGgtMV0uY3BuPVd9fX07dmFyIEUzPWNsYXNze2ZldGNoKG4sVyxEKXt2YXIgYj1YT2IobixXLEQpO3JldHVybiBuZXcgUHJvbWlzZSgodixrKT0+e3ZhciBoPSgpPT57aWYoRD8uTGQpdHJ5e2xldCB4PXRoaXMuaGFuZGxlUmVzcG9uc2UobixiLnN0YXR1cyxiLnJlc3BvbnNlLEQpO3YoeCl9Y2F0Y2goeCl7ayh4KX1lbHNlIHYodGhpcy5oYW5kbGVSZXNwb25zZShuLGIuc3RhdHVzLGIucmVzcG9uc2UsRCkpfTsKYi5vbmVycm9yPWg7Yi5vbmxvYWQ9aDtiLnNlbmQoVy5ib2R5Pz9udWxsKX0pfWhhbmRsZVJlc3BvbnNlKG4sVyxELGIpe0Q9KER8fCIiKS5yZXBsYWNlKCIpXX0nIiwiIik7CnRyeXt2YXIgdj1KU09OLnBhcnNlKEQpfWNhdGNoKGspe2cuR3EobmV3IGcuUXgoIkpTT04gcGFyc2luZyBmYWlsZWQgYWZ0ZXIgWEhSIGZldGNoIixuLFcsRCkpO2lmKGI/LkxkJiZEKXRocm93IG5ldyBvOCgiSlNPTiBwYXJzaW5nIGZhaWxlZCBhZnRlciBYSFIgZmV0Y2giKTt2PXt9fVchPT0yMDAmJihnLkdxKG5ldyBnLlF4KCJYSFIgQVBJIGZldGNoIGZhaWxlZCIsbixXLEQpKSx2PXsuLi52LGVycm9yTWV0YWRhdGE6e3N0YXR1czpXfX0pO3JldHVybiB2fX07dmFyIFo2aj1jbGFzc3tzdGF0aWMgZ2V0SW5zdGFuY2UoKXt2YXIgbj1nLnJyKCJ5dGdsb2JhbC5zdG9yYWdlXyIpO258fChuPW5ldyBaNmosZy5HYigieXRnbG9iYWwuc3RvcmFnZV8iLG4pKTtyZXR1cm4gbn1hc3luYyBlc3RpbWF0ZSgpe3ZhciBuPW5hdmlnYXRvcjtpZihuLnN0b3JhZ2U/LmVzdGltYXRlKXJldHVybiBuLnN0b3JhZ2UuZXN0aW1hdGUoKTtpZihuLndlYmtpdFRlbXBvcmFyeVN0b3JhZ2U/LnF1ZXJ5VXNhZ2VBbmRRdW90YSlyZXR1cm4gcWZTKCl9fTtnLkdiKCJ5dGdsb2JhbC5zdG9yYWdlQ2xhc3NfIixaNmopO3ZhciBqaVU9a08oInl0LXBsYXllci1sb2NhbC1tZWRpYSIse0tjOntpbmRleDp7dng6Mn0sbWVkaWE6e3Z4OjJ9LGNhcHRpb25zOnt2eDo1fX0sc2hhcmVkOiExLHVwZ3JhZGUobixXKXtXKDIpJiYoWnkobiwiaW5kZXgiKSxaeShuLCJtZWRpYSIpKTtXKDUpJiZaeShuLCJjYXB0aW9ucyIpO1coNikmJihVUihuLCJtZXRhZGF0YSIpLFVSKG4sInBsYXllcmRhdGEiKSl9LHZlcnNpb246NX0pO3ZhciBVeng9e2N1cGNha2U6MS41LGRvbnV0OjEuNixlY2xhaXI6Mixmcm95bzoyLjIsZ2luZ2VyYnJlYWQ6Mi4zLGhvbmV5Y29tYjozLCJpY2UgY3JlYW0gc2FuZHdpY2giOjQsamVsbHliZWFuOjQuMSxraXRrYXQ6NC40LGxvbGxpcG9wOjUuMSxtYXJzaG1hbGxvdzo2LG5vdWdhdDo3LjF9LHVEO2E6e3ZhciBvVj1nLlhRKCk7b1Y9b1YudG9Mb3dlckNhc2UoKTtpZihvVi5pbmRleE9mKCJhbmRyb2lkIikhPS0xKXt2YXIgeVpoPW9WLm1hdGNoKC9hbmRyb2lkXHMqKFxkKyhcLlxkKyk/KVteO3wpXSpbOyldLyk7aWYoeVpoKXtsZXQgbj1wYXJzZUZsb2F0KHlaaFsxXSk7aWYobjwxMDApe3VEPW47YnJlYWsgYX19dmFyIEVnYj1vVi5tYXRjaCgiKCIrT2JqZWN0LmtleXMoVXp4KS5qb2luKCJ8IikrIikiKTt1RD1FZ2I/VXp4W0VnYlswXV06MH1lbHNlIHVEPXZvaWQgMH12YXIgZG49dUQsTkY9ZG4+PTA7dmFyIHo4O3t2YXIgaTZoPWcuWFEoKTtsZXQgbj1pNmgubWF0Y2goL1woKGlQYWR8aVBob25lfGlQb2QpKCBTaW11bGF0b3IpPzsvKTtpZighbnx8bi5sZW5ndGg8Mil6OD12b2lkIDA7ZWxzZXt2YXIgbEQ9aTZoLm1hdGNoKC9cKChpUGFkfGlQaG9uZXxpUG9kKSggU2ltdWxhdG9yKT87IChVOyApP0NQVSAoaVBob25lICk/T1MgKFxkK19cZClbXyBdLyk7ejg9bEQmJmxELmxlbmd0aD09PTY/TnVtYmVyKGxEWzVdLnJlcGxhY2UoIl8iLCIuIikpOjB9fXZhciB2aj16OCx4ST12aj49MDt2YXIgb2Y7Zy51Wj1uZXcgUEFNO29mPTA7Zy5GTFU9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy52aWRlb0RhdGE9bjt0aGlzLk49e2MxYTooKT0+e3ZhciBXPVtdO2lmKGcudVouaXNJbml0aWFsaXplZCgpKXt2YXIgRD0iIjt0aGlzLnZpZGVvRGF0YSYmdGhpcy52aWRlb0RhdGEucEsmJihEPXRoaXMudmlkZW9EYXRhLnBLK2AmcjFiPSR7dGhpcy52aWRlb0RhdGEuY2xpZW50UGxheWJhY2tOb25jZX1gKTtEPXthdHJfY2hhbGxlbmdlOkR9O2cuZ18oImJnX3YiLHZvaWQgMCwicGxheWVyX2F0dCIpOyhEPXI5UyhEKSk/KGcuZ18oImJnX3MiLHZvaWQgMCwicGxheWVyX2F0dCIpLFcucHVzaChgcjFhPSR7RH1gKSk6KGcuZ18oImJnX2UiLHZvaWQgMCwicGxheWVyX2F0dCIpLFcucHVzaCgicjFjPTIiKSl9ZWxzZSBnLmdfKCJiZ19lIix2b2lkIDAsInBsYXllcl9hdHQiKSx3aW5kb3cudHJheXJpZGV8fHdpbmRvdy5ib3RndWFyZD9XLnB1c2goInIxYz0xIik6Vy5wdXNoKCJyMWM9NCIpO1cucHVzaChgcjFkPSR7Zy51Wi5nZXRTdGF0ZSgpfWApOwpyZXR1cm4gVy5qb2luKCImIil9LApjNmE6Vz0+InI2YT0iKyhOdW1iZXIoVy5jKV5MYygpKSwKYzZiOlc9PmByNmI9JHtOdW1iZXIoVy5jKV5OdW1iZXIoZy5BcigiQ0FUU1RBVCIsMCkpfWB9Owp0aGlzLnZpZGVvRGF0YSYmdGhpcy52aWRlb0RhdGEucEs/dGhpcy5SUj1nLml3KHRoaXMudmlkZW9EYXRhLnBLKTp0aGlzLlJSPXt9fX07Zy5DaT1jbGFzc3tjb25zdHJ1Y3RvcihuLFc9e30sRD0wKXt0aGlzLmVycm9yQ29kZT1uO3RoaXMuZGV0YWlscz1XO3RoaXMuc2V2ZXJpdHk9RH19O3ZhciB0SD17RUk6ZnVuY3Rpb24obixXKXt2YXIgRD1uWzBdO25bMF09bltXJW5bSVs1XV1dO25bVyVuW0lbNV1dXT1EfSwKT1c6ZnVuY3Rpb24obixXKXtuW0lbM11dKDAsVyl9LApHRzpmdW5jdGlvbihuKXtuW0lbMjVdXSgpfX07dmFyIHV2TT17UmQ6ImFkdW5pdCIsaFE6ImRldGFpbHBhZ2UiLGt3OiJlZGl0cGFnZSIsVE86ImVtYmVkZGVkIixEcDoibGVhbmJhY2siLEY3OiJwcmV2aWV3cGFnZSIsRE06InByb2ZpbGVwYWdlIixrUzoidW5wbHVnZ2VkIixNbjoicGxheWxpc3RvdmVydmlldyIsVUM6InNwb25zb3JzaGlwc29mZmVyIixCYToic2hvcnRzcGFnZSIsZEw6ImhhbmRsZXNjbGFpbWluZyIsaF86ImltbWVyc2l2ZWxpdmVwYWdlIix6TzoiY3JlYXRvcm11c2ljIixYSjoiaW1tZXJzaXZlbGl2ZXByZXZpZXdwYWdlIixZWDoiYWRtaW50b29seXVydCIsbk06InNob3J0c2F1ZGlvcGl2b3QiLHlfOiJjb25zdW1wdGlvbiIsZUw6ImJhY2tncm91bmRfYXVkaW9fcGxheWJhY2siLFVfOiJmYW1pbHlfY2VudGVyX3N1cGVydmlzZWVfaW50ZXJlc3RzX3BhZ2UiLEdPOiJmYW1pbHlfY2VudGVyX3N1cGVydmlzZWVfaW50ZXJlc3RfZGV0YWlsc19wYWdlIn07dmFyIG9nMj1bImgiLCJIIl0sZHppPVsiOSIsIigiXSx6cmg9WyI5aCIsIihoIl0sbEhoPVsiOCIsIioiXSxUdGk9WyJhIiwiQSJdLGpvaT1bIm8iLCJPIl0sQ0FiPVsibSIsIk0iXSxCdGk9WyJtYWMzIiwiTUFDMyJdLEZIdz1bIm1lYWMzIiwiTUVBQzMiXSxibz17aDpvZzIsSDpvZzIsWyI5Il06ZHppLFsiKCJdOmR6aSxbIjloIl06enJoLFsiKGgiXTp6cmgsWyI4Il06bEhoLFsiKiJdOmxIaCxhOlR0aSxBOlR0aSxvOmpvaSxPOmpvaSxtOkNBYixNOkNBYixtYWMzOkJ0aSxNQUMzOkJ0aSxtZWFjMzpGSHcsTUVBQzM6Rkh3fSx3Rlo9bmV3IFNldCgibyBPIGEgYWggQSBtIE0gbWFjMyBNQUMzIG1lYWMzIE1FQUMzIHNvIHNhIi5zcGxpdCgiICIpKSxwTGo9bmV3IFNldCgibSBNIG1hYzMgTUFDMyBtZWFjMyBNRUFDMyIuc3BsaXQoIiAiKSk7dmFyIEZCVT17ak06MCxObToxMjQsZDQ6MTQ0LEp6OjIyMCx5VjoyNDAsYjY6MzQwLFdhOjM2MCx6NTo0ODAsaHo6NTg4LG1wOjYwOCxYczo3MjAscW06NzQwLHc0OjEwODAsQzQ6MTEwMCxvNjoxNDQwLFBhOjIxNjAsaTY6OTk5OSwwOiJRVUFMSVRZX09SRElOQUxfVU5LTk9XTiIsMTI0OiJRVUFMSVRZX09SRElOQUxfMTQ0UF9TQVZFUiIsMTQ0OiJRVUFMSVRZX09SRElOQUxfMTQ0UCIsMjIwOiJRVUFMSVRZX09SRElOQUxfMjQwUF9TQVZFUiIsMjQwOiJRVUFMSVRZX09SRElOQUxfMjQwUCIsMzQwOiJRVUFMSVRZX09SRElOQUxfMzYwUF9TQVZFUiIsMzYwOiJRVUFMSVRZX09SRElOQUxfMzYwUCIsNDgwOiJRVUFMSVRZX09SRElOQUxfNDgwUCIsNTg4OiJRVUFMSVRZX09SRElOQUxfNjA4UF9TQVZFUiIsNjA4OiJRVUFMSVRZX09SRElOQUxfNjA4UCIsNzIwOiJRVUFMSVRZX09SRElOQUxfNzIwUCIsNzQwOiJRVUFMSVRZX09SRElOQUxfNzIwUF9FTkhBTkNFRCIsMTA4MDoiUVVBTElUWV9PUkRJTkFMXzEwODBQIiwKMTEwMDoiUVVBTElUWV9PUkRJTkFMXzEwODBQX0VOSEFOQ0VEIiwxNDQwOiJRVUFMSVRZX09SRElOQUxfMTQ0MFAiLDIxNjA6IlFVQUxJVFlfT1JESU5BTF8yMTYwUCIsOTk5OToiUVVBTElUWV9PUkRJTkFMX0hJR0hSRVMifTt2YXIgTkc9e2F1dG86MCx0aW55OjE0NCxsaWdodDoxNDQsc21hbGw6MjQwLG1lZGl1bTozNjAsbGFyZ2U6NDgwLGhkNzIwOjcyMCxoZDEwODA6MTA4MCxoZDE0NDA6MTQ0MCxoZDIxNjA6MjE2MCxoZDI4ODA6Mjg4MCxoaWdocmVzOjQzMjB9LExnPXswOiJhdXRvIiwxNDQ6InRpbnkiLDI0MDoic21hbGwiLDM2MDoibWVkaXVtIiw0ODA6ImxhcmdlIiw3MjA6ImhkNzIwIiwxMDgwOiJoZDEwODAiLDE0NDA6ImhkMTQ0MCIsMjE2MDoiaGQyMTYwIiwyODgwOiJoZDI4ODAiLDQzMjA6ImhpZ2hyZXMifSxOej17UVVBTElUWV9PUkRJTkFMX1VOS05PV046MCxRVUFMSVRZX09SRElOQUxfMTQ0UF9TQVZFUjoxMjQsUVVBTElUWV9PUkRJTkFMXzE0NFA6MTQ0LFFVQUxJVFlfT1JESU5BTF8yNDBQX1NBVkVSOjIyMCxRVUFMSVRZX09SRElOQUxfMjQwUDoyNDAsUVVBTElUWV9PUkRJTkFMXzM2MFBfU0FWRVI6MzQwLFFVQUxJVFlfT1JESU5BTF8zNjBQOjM2MCxRVUFMSVRZX09SRElOQUxfNDgwUDo0ODAsClFVQUxJVFlfT1JESU5BTF82MDhQX1NBVkVSOjU4OCxRVUFMSVRZX09SRElOQUxfNjA4UDo2MDgsUVVBTElUWV9PUkRJTkFMXzcyMFA6NzIwLFFVQUxJVFlfT1JESU5BTF83MjBQX0VOSEFOQ0VEOjc0MCxRVUFMSVRZX09SRElOQUxfMTA4MFA6MTA4MCxRVUFMSVRZX09SRElOQUxfMTA4MFBfRU5IQU5DRUQ6MTEwMCxRVUFMSVRZX09SRElOQUxfMTQ0MFA6MTQ0MCxRVUFMSVRZX09SRElOQUxfMjE2MFA6MjE2MCxRVUFMSVRZX09SRElOQUxfSElHSFJFUzo5OTk5fTt2YXIgJGQ9MjU5MkUzO2cuT249e1NUT1BfRVZFTlRfUFJPUEFHQVRJT046Imh0bWw1LXN0b3AtcHJvcGFnYXRpb24iLElWX0RSQVdFUl9FTkFCTEVEOiJ5dHAtaXYtZHJhd2VyLWVuYWJsZWQiLElWX0RSQVdFUl9PUEVOOiJ5dHAtaXYtZHJhd2VyLW9wZW4iLE1BSU5fVklERU86Imh0bWw1LW1haW4tdmlkZW8iLFZJREVPX0NPTlRBSU5FUjoiaHRtbDUtdmlkZW8tY29udGFpbmVyIixWSURFT19DT05UQUlORVJfVFJBTlNJVElPTklORzoiaHRtbDUtdmlkZW8tY29udGFpbmVyLXRyYW5zaXRpb25pbmciLEhPVVNFX0JSQU5EOiJob3VzZS1icmFuZCJ9O3ZhciBQbj17YWxsb3dlZDoiQVVUT1BMQVlfQlJPV1NFUl9QT0xJQ1lfQUxMT1dFRCIsImFsbG93ZWQtbXV0ZWQiOiJBVVRPUExBWV9CUk9XU0VSX1BPTElDWV9BTExPV0VEX01VVEVEIixkaXNhbGxvd2VkOiJBVVRPUExBWV9CUk9XU0VSX1BPTElDWV9ESVNBTExPV0VEIn07dmFyIGNLTT17QU5EUk9JRDozLEFORFJPSURfS0lEUzoxOCxBTkRST0lEX01VU0lDOjIxLEFORFJPSURfVU5QTFVHR0VEOjI5LFdFQjoxLFdFQl9SRU1JWDo2NyxXRUJfVU5QTFVHR0VEOjQxLElPUzo1LElPU19LSURTOjE5LElPU19NVVNJQzoyNixJT1NfVU5QTFVHR0VEOjMzfSx1Sj17YW5kcm9pZDoiQU5EUk9JRCIsImFuZHJvaWQuayI6IkFORFJPSURfS0lEUyIsImFuZHJvaWQubSI6IkFORFJPSURfTVVTSUMiLCJhbmRyb2lkLnVwIjoiQU5EUk9JRF9VTlBMVUdHRUQiLHlvdXR1YmU6IldFQiIsInlvdXR1YmUubSI6IldFQl9SRU1JWCIsInlvdXR1YmUudXAiOiJXRUJfVU5QTFVHR0VEIix5dGlvczoiSU9TIiwieXRpb3MuayI6IklPU19LSURTIiwieXRpb3MubSI6IklPU19NVVNJQyIsInl0aW9zLnVwIjoiSU9TX1VOUExVR0dFRCJ9LE00Uz17Im1keC1wYWlyIjoxLCJtZHgtZGlhbCI6MiwibWR4LWNhc3QiOjMsIm1keC12b2ljZSI6NCwibWR4LWluYXBwZGlhbCI6NX07dmFyIExHMT17aV86MSxZdzoyLFBBVVNFRDozLDE6IkRJU0FCTEVEIiwyOiJFTkFCTEVEIiwzOiJQQVVTRUQifTt2YXIgZXh4PVJlZ0V4cCgiXmh0dHBzPzovLyhbXi5dKlxcLm1vYXRhZHNcXC5jb20vfGVbMC05XStcXC55dFxcLnNyc1xcLmRvdWJsZXZlcmlmeVxcLmNvbXxwYWdlYWQyXFwuZ29vZ2xlc3luZGljYXRpb25cXC5jb20vcGFnZWFkL2dlbl8yMDRcXD9pZD15dDNwJnNyPTEmfHBtXFwuYWRzYWZlcHJvdGVjdGVkXFwuY29tL3lvdXR1YmV8cG1cXC50ZXN0LWFkc2FmZXByb3RlY3RlZFxcLmNvbS95b3V0dWJlfHlvdXR1YmVbMC05XStcXC5tb2F0cGl4ZWxcXC5jb20vKSIpLGxKPVJlZ0V4cCgiXmh0dHBzOi8vKFthLXpdK1xcLik/WzAtOWEtZl17MSw2M31cXC5zc2xwcm94eVxcLmNvcnBcXC5nb29nbGVcXC5jb20vfF5odHRwczovLyhbYS16XStcXC4pP1thLXowLTlcXC1dezEsNjN9XFwuZGVtb3NcXC5jb3JwXFwuZ29vZ2xlXFwuY29tL3xeaHR0cHM6Ly9bMC05YS1mXXsxLDYzfVxcLnByb3h5XFwuZ29vZ2xlcHJvZFxcLmNvbS98Xmh0dHBzPzovLygoWy1cXHddKnd3d1stXFx3XSpcXC58Wy1cXHddKndlYlstXFx3XSpcXC58Wy1cXHddKmNhbmFyeVstXFx3XSpcXC58Wy1cXHddKmRldlstXFx3XSpcXC58Wy1cXHddezEsM31cXC4pKyhjb3JwXFwuKT95b3V0dWJlKC1ub2Nvb2tpZXxraWRzfGVkdWNhdGlvbik/XFwuY29tL3woW0EtWmEtejAtOS1dezEsNjN9XFwuKSooeW91dHViZVxcLmdvb2dsZWFwaXNcXC5jb20pWy5dPyg6WzAtOV0rKT8vfChbYS16XStcXC4pP1thLXowLTlcXC1dezEsNjN9XFwuKFthLXpdezN9fGkpXFwuY29ycFxcLmdvb2dsZVxcLmNvbSg6WzAtOV0rKT8vfChbYS16XStcXC4pP1thLXowLTlcXC1dezEsNjN9XFwuY1xcLmdvb2dsZXJzXFwuY29tKDpbMC05XSspPy98KGRvY3N8ZHJpdmUpXFwuZ29vZ2xlXFwuY29tLyhhL1teL1xcXFwlXSsvfCl8KG11c2ljfG11c2ljLWdyZWVuLXFhfG11c2ljLXJlbGVhc2UtcWF8eXQtbXVzaWMtZ3JlZW5cXC5jb3JwKVxcLnlvdXR1YmVcXC5jb20vfCh0dnx0di1ncmVlbi1xYXx0di1ncmVlbi1xYVxcLmNvcnB8dHYtcmVsZWFzZS1xYXx0di1yZWxlYXNlLXFhXFwuY29ycHx0di1pbnRlZ3JhdGlvbi1xYXx0di1pbnRlZ3JhdGlvbi1xYVxcLmNvcnB8eXQtdHYtYXV0b3B1c2hcXC5jb3JwfHl0LXR2LWludGVncmF0aW9uXFwuY29ycHx5dC10di1zdGFnaW5nXFwuY29ycClcXC55b3V0dWJlXFwuY29tL3xbQS1aYS16MC05LV0rXFwucHJvZFxcLmdvb2dsZVxcLmNvbSg6WzAtOV0rKT8vKSIpLApndGo9UmVnRXhwKCJeaHR0cHM/Oi8vKHd3d1xcLmdvb2dsZVxcLmNvbS9wYWdlYWQveHN1bHx3d3dcXC55b3V0dWJlXFwuY29tL3BhZ2VhZC9zbGF2KSIpLHg1cj1SZWdFeHAoIl5odHRwczovLyhbQS1aYS16MC05LV17MSw2M31cXC4pK2RlbW9zXFwuY29ycFxcLmdvb2dsZVxcLmNvbSgvKD8hdXJsXFxiKXwkKXxeaHR0cHM6Ly8oW0EtWmEtejAtOS1dezEsNjN9XFwuKStzc2xwcm94eVxcLmNvcnBcXC5nb29nbGVcXC5jb20oL3wkKXxeaHR0cHM/Oi8vKChbQS1aYS16MC05LV17MSw2M31cXC4pKihjb3JwXFwuZ29vZ2xlXFwuY29tfHByb3h5XFwuZ29vZ2xlcHJvZFxcLmNvbXxjXFwuZ29vZ2xlcnNcXC5jb218cHJveHlcXC5nb29nbGVyc1xcLmNvbXxkb2NzXFwuZ29vZ2xlXFwuY29tfGRyaXZlXFwuZ29vZ2xlXFwuY29tfHByb2RcXC5nb29nbGVcXC5jb218bWFpbFxcLmdvb2dsZVxcLmNvbXx5b3V0dWJlXFwuY29tfHlvdXR1YmVlZHVjYXRpb25cXC5jb218eW91dHViZVxcLW5vY29va2llXFwuY29tfHlvdXR1YmVraWRzXFwuY29tKVsuXT8oOlswLTldKyk/L3woW0EtWmEtejAtOS1dezEsNjN9XFwuKSooc2FuZGJveFxcLmdvb2dsZVxcLmNvbSkoOlswLTldKyk/KC8oPyF1cmxcXGIpfCQpKSIpLApMaHQ9UmVnRXhwKCJeaHR0cHM/Oi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikqKGN1cnJlbnRzXFwuZ29vZ2xlXFwuY29tKVsuXT8oOlswLTldKyk/LyIpLGs3cj1SZWdFeHAoIl5odHRwczovLyhbQS1aYS16MC05LV17MSw2M31cXC4pK2RlbW9zXFwuY29ycFxcLmdvb2dsZVxcLmNvbSgvKD8hdXJsXFxiKXwkKXxeaHR0cHM6Ly8oW0EtWmEtejAtOS1dezEsNjN9XFwuKStzc2xwcm94eVxcLmNvcnBcXC5nb29nbGVcXC5jb20oL3wkKXxeaHR0cHM/Oi8vKChbQS1aYS16MC05LV17MSw2M31cXC4pKihjb3JwXFwuZ29vZ2xlXFwuY29tfHByb3h5XFwuZ29vZ2xlcHJvZFxcLmNvbXxjXFwuZ29vZ2xlcnNcXC5jb218cHJveHlcXC5nb29nbGVyc1xcLmNvbXxib3JnXFwuZ29vZ2xlXFwuY29tfHByb2RcXC5nb29nbGVcXC5jb218eW91dHViZVxcLmNvbXx5b3V0dWJla2lkc1xcLmNvbSlbLl0/KDpbMC05XSspPy98KFtBLVphLXowLTktXXsxLDYzfVxcLikqKHNhbmRib3hcXC5nb29nbGVcXC5jb20pKDpbMC05XSspPygvKD8hdXJsXFxiKXwkKSkiKSwKRDVVPVJlZ0V4cCgiXigoaHR0cChzKT8pOik/XFwvXFwvKCgoKGxoWzMtNl0oLXR0fC1kW2EtZyx6XSk/XFwuKChnZ3BodCl8KGdvb2dsZXVzZXJjb250ZW50KXwoZ29vZ2xlKXwoc2FuZGJveFxcLmdvb2dsZSkpKXwobGg3XFwtKGV1fHVzfHF3fHJ0fHh4KVxcLigoZ29vZ2xldXNlcmNvbnRlbnQpfChnb29nbGUpKSl8KChwaG90b3N8dGVzdG9ubHl8d29yaylcXC5maWZlXFwudXNlcmNvbnRlbnRcXC5nb29nbGUpfChbXFx3XFwtXStcXC5maWZlXFwudXNlcmNvbnRlbnRcXC5nb29nbGUpfCgoWzEtNF1cXC5icFxcLmJsb2dzcG90KXwoYnBbMC0zXVxcLmJsb2dnZXIpKXwoY2NwLWxoXFwuZ29vZ2xldXNlcmNvbnRlbnQpfCgoKChjcHxjaXxncClbMy02XSl8KGFwWzEtMl0pKVxcLihnZ3BodHxnb29nbGV1c2VyY29udGVudCkpfChnbVsxLTRdXFwuZ2dwaHQpfChwbGF5LSh0aS0pP2xoXFwuZ29vZ2xldXNlcmNvbnRlbnQpfChnelswLTFdXFwuZ29vZ2xldXNlcmNvbnRlbnQpfChsaDNcXC1nbVxcLmdvb2dsZSl8KCgoeXRbMy00XSl8KHNwWzEtM10pKVxcLihnZ3BodHxnb29nbGV1c2VyY29udGVudCkpKVxcLmNvbSl8KGRyaXZlXFwuZ29vZ2xlXFwuY29tXFwvZHJpdmVcXC0odXNlcmNvbnRlbnR8dmlld2VyKSl8KGRwWzMtNl1cXC5nb29nbGV1c2VyY29udGVudFxcLmNuKXwoZHA0XFwuZ29vZ2xldXNlcmNvbnRlbnRcXC5jb20pfCgocGhvdG9zfGRyaXZlfGNvbnRyaWJ1dGlvbilcXC1pbWFnZVxcLShkZXZ8cWEpKC11c3wtZXUpPygtYXV0aHwtY29va2llKT9cXC5jb3JwXFwuZ29vZ2xlXFwuY29tKXwocGhvdG9zXFwtaW1hZ2VcXC1kZXZcXC1kbFxcLShhdXRofGV1fHVzKVxcLmNvcnBcXC5nb29nbGVcXC5jb20pfCgoZGV2fGRldjJ8ZGV2M3xxYXxxYTJ8cWEzfHFhLXJlZHxxYS1ibHVlfGNhbmFyeSlbLS5dbGlnaHRob3VzZVxcLnNhbmRib3hcXC5nb29nbGVcXC5jb21cXC9pbWFnZSl8KGltYWdlXFwtKGRldnxxYSlcXC1saWdodGhvdXNlKC1hdXRoKT9cXC5zYW5kYm94XFwuZ29vZ2xlXFwuY29tKFxcL2ltYWdlKT8pfChkcml2ZVxcLXFhXFwuY29ycFxcLmdvb2dsZVxcLmNvbVxcL2RyaXZlXFwtKHVzZXJjb250ZW50fHZpZXdlcikpfChkb2NzKFxcLShkZXZ8cWEpXFwuY29ycCk/XFwuZ29vZ2xlXFwuY29tXFwvKHVcXC9bMC05XStcXC8pPyhkb2NzfHNoZWV0c3xzbGlkZXN8ZHJhd2luZ3N8Zm9ybXN8dmlkZW9zfHBpY3R1cmVzKVxcLWltYWdlc1xcLShydHxxdykpfChkb2NzXFwuc2FuZGJveFxcLmdvb2dsZVxcLmNvbVxcLyh1XFwvWzAtOV0rXFwvKT8oZG9jc3xzaGVldHN8c2xpZGVzfGRyYXdpbmdzfGZvcm1zfHZpZGVvc3xwaWN0dXJlcylcXC1pbWFnZXMpfChzaXRlc1xcLmdvb2dsZVxcLmNvbVxcLyh1XFwvWzAtOV0rXFwvKT9zaXRlcyh2KT9cXC1pbWFnZXNcXC0ocnR8cXcpKXwoYXRhcmktZ3JlZW4tdGVzdFxcLmNvcnBcXC5nb29nbGVcXC5jb21cXC8odVxcL1swLTldK1xcLyk/c2l0ZXModik/XFwtaW1hZ2VzXFwtKHJ0fHF3KSl8KHNpdGVzXFwuc2FuZGJveFxcLmdvb2dsZVxcLmNvbVxcLyh1XFwvWzAtOV0rXFwvKT9zaXRlcyh2KT9cXC1pbWFnZXMpKVxcL3xeaHR0cHM6Ly8oW0EtWmEtejAtOS1dezEsNjN9XFwuKStkZW1vc1xcLmNvcnBcXC5nb29nbGVcXC5jb20oLyg/IXVybFxcYil8JCl8Xmh0dHBzOi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikrc3NscHJveHlcXC5jb3JwXFwuZ29vZ2xlXFwuY29tKC98JCl8Xmh0dHBzPzovLygoW0EtWmEtejAtOS1dezEsNjN9XFwuKSooY29ycFxcLmdvb2dsZVxcLmNvbXxwcm94eVxcLmdvb2dsZXByb2RcXC5jb218Y1xcLmdvb2dsZXJzXFwuY29tfHByb3h5XFwuZ29vZ2xlcnNcXC5jb218Ym9yZ1xcLmdvb2dsZVxcLmNvbXxkb2NzXFwuZ29vZ2xlXFwuY29tfGRyaXZlXFwuZ29vZ2xlXFwuY29tfGdvb2dsZXBsZXhcXC5jb218cGxheVxcLmdvb2dsZVxcLmNvbXxwcm9kXFwuZ29vZ2xlXFwuY29tfHZpZGVvXFwuZ29vZ2xlXFwuY29tfHlvdXR1YmVcXC5jb218eXRpbWdcXC5jb218eXRpbWdcXC5zYW5kYm94XFwuZ29vZ2xlXFwuY29tfGNoYXRcXC5nb29nbGVcXC5jb20pWy5dPyg6WzAtOV0rKT8vfChbQS1aYS16MC05LV17MSw2M31cXC4pKihzYW5kYm94XFwuZ29vZ2xlXFwuY29tKSg6WzAtOV0rKT8oLyg/IXVybFxcYil8JCl8czJcXC5nb29nbGV1c2VyY29udGVudFxcLmNvbS9zMi9mYXZpY29uc1xcP3x5dFszLTRdXFwuZ2dwaHRcXC5jb20vKSIpLApiS1o9UmVnRXhwKCJeaHR0cHM/Oi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikqKGN1cnJlbnRzXFwuZ29vZ2xlXFwuY29tKVsuXT8oOlswLTldKyk/LyIpLFhLMj1SZWdFeHAoIl5odHRwcz8uKiNvY3IkfF5odHRwcz86Ly8oYWtzZWN1cmVcXC5pbXJ3b3JsZHdpZGVcXC5jb20vfGNkblxcLmltcndvcmxkd2lkZVxcLmNvbS98c2VjdXJlXFwtLi5cXC5pbXJ3b3JsZHdpZGVcXC5jb20vKSIpLHZFaD1SZWdFeHAoIl5odHRwcz86Ly8oZ29vZ2xlYWRzXFwuZ1xcLmRvdWJsZWNsaWNrXFwubmV0LyhhY2xrfHBhZ2VhZC9jb252ZXJzaW9uKXx3d3dcXC5nb29nbGVcXC5jb20vKGFjbGt8cGFnZWFkL2NvbnZlcnNpb24pfHd3d1xcLmdvb2dsZWFkc2VydmljZXNcXC5jb20vKGFjbGt8cGFnZWFkLyhhY2xrfGNvbnZlcnNpb24pKXx3d3dcXC55b3V0dWJlXFwuY29tL3BhZ2VhZC9jb252ZXJzaW9uKSIpLG5Fdz1SZWdFeHAoIl4oKGh0dHAocyk/KTopP1xcL1xcLygoKChsaFszLTZdKC10dHwtZFthLWcsel0pP1xcLigoZ2dwaHQpfChnb29nbGV1c2VyY29udGVudCl8KGdvb2dsZSl8KHNhbmRib3hcXC5nb29nbGUpKSl8KGxoN1xcLShldXx1c3xxd3xydHx4eClcXC4oKGdvb2dsZXVzZXJjb250ZW50KXwoZ29vZ2xlKSkpfCgocGhvdG9zfHRlc3Rvbmx5fHdvcmspXFwuZmlmZVxcLnVzZXJjb250ZW50XFwuZ29vZ2xlKXwoW1xcd1xcLV0rXFwuZmlmZVxcLnVzZXJjb250ZW50XFwuZ29vZ2xlKXwoKFsxLTRdXFwuYnBcXC5ibG9nc3BvdCl8KGJwWzAtM11cXC5ibG9nZ2VyKSl8KGNjcC1saFxcLmdvb2dsZXVzZXJjb250ZW50KXwoKCgoY3B8Y2l8Z3ApWzMtNl0pfChhcFsxLTJdKSlcXC4oZ2dwaHR8Z29vZ2xldXNlcmNvbnRlbnQpKXwoZ21bMS00XVxcLmdncGh0KXwocGxheS0odGktKT9saFxcLmdvb2dsZXVzZXJjb250ZW50KXwoZ3pbMC0xXVxcLmdvb2dsZXVzZXJjb250ZW50KXwobGgzXFwtZ21cXC5nb29nbGUpfCgoKHl0WzMtNF0pfChzcFsxLTNdKSlcXC4oZ2dwaHR8Z29vZ2xldXNlcmNvbnRlbnQpKSlcXC5jb20pfChkcml2ZVxcLmdvb2dsZVxcLmNvbVxcL2RyaXZlXFwtKHVzZXJjb250ZW50fHZpZXdlcikpfChkcFszLTZdXFwuZ29vZ2xldXNlcmNvbnRlbnRcXC5jbil8KGRwNFxcLmdvb2dsZXVzZXJjb250ZW50XFwuY29tKXwoKHBob3Rvc3xkcml2ZXxjb250cmlidXRpb24pXFwtaW1hZ2VcXC0oZGV2fHFhKSgtdXN8LWV1KT8oLWF1dGh8LWNvb2tpZSk/XFwuY29ycFxcLmdvb2dsZVxcLmNvbSl8KHBob3Rvc1xcLWltYWdlXFwtZGV2XFwtZGxcXC0oYXV0aHxldXx1cylcXC5jb3JwXFwuZ29vZ2xlXFwuY29tKXwoKGRldnxkZXYyfGRldjN8cWF8cWEyfHFhM3xxYS1yZWR8cWEtYmx1ZXxjYW5hcnkpWy0uXWxpZ2h0aG91c2VcXC5zYW5kYm94XFwuZ29vZ2xlXFwuY29tXFwvaW1hZ2UpfChpbWFnZVxcLShkZXZ8cWEpXFwtbGlnaHRob3VzZSgtYXV0aCk/XFwuc2FuZGJveFxcLmdvb2dsZVxcLmNvbShcXC9pbWFnZSk/KXwoZHJpdmVcXC1xYVxcLmNvcnBcXC5nb29nbGVcXC5jb21cXC9kcml2ZVxcLSh1c2VyY29udGVudHx2aWV3ZXIpKXwoZG9jcyhcXC0oZGV2fHFhKVxcLmNvcnApP1xcLmdvb2dsZVxcLmNvbVxcLyh1XFwvWzAtOV0rXFwvKT8oZG9jc3xzaGVldHN8c2xpZGVzfGRyYXdpbmdzfGZvcm1zfHZpZGVvc3xwaWN0dXJlcylcXC1pbWFnZXNcXC0ocnR8cXcpKXwoZG9jc1xcLnNhbmRib3hcXC5nb29nbGVcXC5jb21cXC8odVxcL1swLTldK1xcLyk/KGRvY3N8c2hlZXRzfHNsaWRlc3xkcmF3aW5nc3xmb3Jtc3x2aWRlb3N8cGljdHVyZXMpXFwtaW1hZ2VzKXwoc2l0ZXNcXC5nb29nbGVcXC5jb21cXC8odVxcL1swLTldK1xcLyk/c2l0ZXModik/XFwtaW1hZ2VzXFwtKHJ0fHF3KSl8KGF0YXJpLWdyZWVuLXRlc3RcXC5jb3JwXFwuZ29vZ2xlXFwuY29tXFwvKHVcXC9bMC05XStcXC8pP3NpdGVzKHYpP1xcLWltYWdlc1xcLShydHxxdykpfChzaXRlc1xcLnNhbmRib3hcXC5nb29nbGVcXC5jb21cXC8odVxcL1swLTldK1xcLyk/c2l0ZXModik/XFwtaW1hZ2VzKSlcXC98Xmh0dHBzOi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikrZGVtb3NcXC5jb3JwXFwuZ29vZ2xlXFwuY29tKC8oPyF1cmxcXGIpfCQpfF5odHRwczovLyhbQS1aYS16MC05LV17MSw2M31cXC4pK3NzbHByb3h5XFwuY29ycFxcLmdvb2dsZVxcLmNvbSgvfCQpfF5odHRwcz86Ly8oKFtBLVphLXowLTktXXsxLDYzfVxcLikqKGNvcnBcXC5nb29nbGVcXC5jb218cHJveHlcXC5nb29nbGVwcm9kXFwuY29tfGNcXC5nb29nbGVyc1xcLmNvbXxwcm94eVxcLmdvb2dsZXJzXFwuY29tfGJvcmdcXC5nb29nbGVcXC5jb218ZG9jc1xcLmdvb2dsZVxcLmNvbXxkcml2ZVxcLmdvb2dsZVxcLmNvbXxnb29nbGVwbGV4XFwuY29tfGdvb2dsZXZpZGVvXFwuY29tfHByb2RcXC5nb29nbGVcXC5jb218bGgzXFwucGhvdG9zXFwuZ29vZ2xlXFwuY29tfG1haWxcXC5nb29nbGVcXC5jb218eW91dHViZVxcLmNvbXx5dFxcLmFrYW1haXplZFxcLm5ldHxjaGF0XFwuZ29vZ2xlXFwuY29tKVsuXT8oOlswLTldKyk/L3woW0EtWmEtejAtOS1dezEsNjN9XFwuKSooc2FuZGJveFxcLmdvb2dsZVxcLmNvbSkoOlswLTldKyk/KC8oPyF1cmxcXGIpfCQpfChbQS1aYS16MC05LV17MSw2M31cXC4pKmNcXC5saDMoLWRbYS1neXpdfC10ZXN0b25seSk/XFwuKGdvb2dsZXVzZXJjb250ZW50fHBob3Rvc1xcLmdvb2dsZSlcXC5jb20vLiokKSIpLApXaFo9UmVnRXhwKCJeaHR0cHM/Oi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikqKGN1cnJlbnRzXFwuZ29vZ2xlXFwuY29tKVsuXT8oOlswLTldKyk/LyIpLFJyaT1SZWdFeHAoIl5odHRwcz86Ly8oKFtBLVphLXowLTktXXsxLDYzfVxcLikqKGltYXNka1xcLmdvb2dsZWFwaXNcXC5jb218Mm1kblxcLm5ldHxnb29nbGVzeW5kaWNhdGlvblxcLmNvbXxjb3JwXFwuZ29vZ2xlXFwuY29tfHByb3h5XFwuZ29vZ2xlcHJvZFxcLmNvbXxjXFwuZ29vZ2xlcnNcXC5jb218cHJveHlcXC5nb29nbGVyc1xcLmNvbXxib3JnXFwuZ29vZ2xlXFwuY29tfGdvb2dsZWFkc1xcLmdcXC5kb3VibGVjbGlja1xcLm5ldHxwcm9kXFwuZ29vZ2xlXFwuY29tfHN0YXRpY1xcLmRvdWJsZWNsaWNrXFwubmV0fHN0YXRpY1xcLmdvb2dsZWFkc3NlcnZpbmdcXC5jbnxzdHVkaW9hcGlcXC5kb3VibGVjbGlja1xcLm5ldHx5b3V0dWJlXFwuY29tfHlvdXR1YmVcXC5nb29nbGVhcGlzXFwuY29tfHlvdXR1YmVcXC1ub2Nvb2tpZVxcLmNvbXx5b3V0dWJla2lkc1xcLmNvbXx5dGltZ1xcLmNvbXx5dGltZ1xcLnNhbmRib3hcXC5nb29nbGVcXC5jb20pWy5dPyg6WzAtOV0rKT8vfGxpZ2h0Ym94LShkZW1vc3xidWlsZGVyKVxcLmFwcHNwb3RcXC5jb20vfHNbMDFdKHFhKT9cXC4ybWRuXFwubmV0L2Fkcy9yaWNobWVkaWEvc3R1ZGlvL211L3RlbXBsYXRlcy90ZXRyaXN8d3d3XFwuZ3N0YXRpY1xcLmNvbS9kb3VibGVjbGljay9zdHVkaW8vaW5ub3ZhdGlvbi9oNS9sYXlvdXRzL3RldHJpc3x3d3dcXC5nc3RhdGljXFwuY29tL2RvdWJsZWNsaWNrL3N0dWRpby9pbm5vdmF0aW9uL3l0cGxheWVyKSIpLApRb009UmVnRXhwKCJeaHR0cHM6Ly8oW0EtWmEtejAtOS1dezEsNjN9XFwuKSooY3Jvd2Rzb3VyY2V8ZGF0YWNvbXB1dGUpXFwuZ29vZ2xlXFwuY29tL3xeaHR0cHM6Ly8oW0EtWmEtejAtOS1dezEsNjN9XFwuKStkZW1vc1xcLmNvcnBcXC5nb29nbGVcXC5jb20oLyg/IXVybFxcYil8JCl8Xmh0dHBzOi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikrc3NscHJveHlcXC5jb3JwXFwuZ29vZ2xlXFwuY29tKC98JCl8Xmh0dHBzOi8vKGFkc3xhZHdvcmRzXFwuY29ycClcXC5nb29nbGVcXC5jb20vKGF3Lyhhc3NldGdyb3VwLyhlZGl0fG5ldyl8Y2FtcGFpZ25zLyhuZXcvKHBlcmZvcm1hbmNlbWF4fGRlbWFuZGdlbil8ZWRpdC9kZW1hbmRnZW4pKXwkKXxeaHR0cHM6Ly8oYWR3b3Jkcy0pP2NhbmFyeVxcLnFhXFwuYWR6XFwuZ29vZ2xlXFwuY29tLyhhdy8oYXNzZXRncm91cC8oZWRpdHxuZXcpfGNhbXBhaWducy8obmV3LyhwZXJmb3JtYW5jZW1heHxkZW1hbmRnZW4pfGVkaXQvZGVtYW5kZ2VuKSl8JCl8Xmh0dHBzOi8vKGJvb2tzfHBsYXktYm9va3MtKGF1dG9wdXNofGludGVybmFsfHByZXByb2R8c3RhZ2luZykoLXNhbmRib3h8XFwuY29ycCkpXFwuZ29vZ2xldXNlcmNvbnRlbnRcXC5jb20oL3wkKXxeaHR0cHM6Ly9hZHMoLWV4dGVybmFsKT8tcHJvZFxcLnFhXFwuYWR6XFwuZ29vZ2xlXFwuY29tLyhhdy8oYXNzZXRncm91cC8oZWRpdHxuZXcpfGNhbXBhaWducy8obmV3LyhwZXJmb3JtYW5jZW1heHxkZW1hbmRnZW4pfGVkaXQvZGVtYW5kZ2VuKSl8JCl8Xmh0dHBzOi8vY2FudmFzdGVzdGVyLTNmZDBiXFwuYXBwc3BvdFxcLmNvbSgvfCQpfF5odHRwczovL2xvY2FsaG9zdFxcLmdvb2dsZXVzZXJjb250ZW50XFwuY29tKDpcXGQrKT8oL3wkKXxeaHR0cHM6Ly9uYXJyYXRpdmUtbmV3cy1jYXN0LXJlY2VpdmVyLWRcXC5hcHBzcG90XFwuY29tKC98JCl8Xmh0dHBzOi8vbmFycmF0aXZlLW5ld3MtY2FzdC1yZWNlaXZlci1mXFwuYXBwc3BvdFxcLmNvbSgvfCQpfF5odHRwczovL29uZVxcLmdvb2dsZVxcLmNvbSgvfCQpfF5odHRwczovL3d3d1xcLmdvb2dsZVxcLmNvbS9jdWx0dXJhbGluc3RpdHV0ZS9tYW5hZ2UvLiokfF5odHRwczovL3d3d1xcLmdzdGF0aWNcXC5jb20vYW9nX2hvd3RvfF5odHRwczovL3d3d1xcLmdzdGF0aWNcXC5jb20vbmFycmF0aXZlX2Nhc3RfcmVjZWl2ZXIvbmV3c3xeaHR0cHM/Oi8vKChbQS1aYS16MC05LV17MSw2M31cXC4pKihpbWFzZGtcXC5nb29nbGVhcGlzXFwuY29tfGNvcnBcXC5nb29nbGVcXC5jb218cHJveHlcXC5nb29nbGVwcm9kXFwuY29tfGNcXC5nb29nbGVyc1xcLmNvbXxwcm94eVxcLmdvb2dsZXJzXFwuY29tfGJvcmdcXC5nb29nbGVcXC5jb218ZG9jc1xcLmdvb2dsZVxcLmNvbXxkcml2ZVxcLmdvb2dsZVxcLmNvbXxnb29nbGVhZHNcXC5nXFwuZG91YmxlY2xpY2tcXC5uZXR8Z29vZ2xlcGxleFxcLmNvbXxwbGF5XFwuZ29vZ2xlXFwuY29tfHByb2RcXC5nb29nbGVcXC5jb218cGhvdG9zXFwuZ29vZ2xlXFwuY29tfGdldFxcLmdvb2dsZVxcLmNvbXxibG9nZ2VyXFwuY29tfG1haWxcXC5nb29nbGVcXC5jb218c3VydmV5XFwuZ1xcLmRvdWJsZWNsaWNrXFwubmV0fHlvdXR1YmVcXC5jb218eW91dHViZVxcLmdvb2dsZWFwaXNcXC5jb218eW91dHViZWVkdWNhdGlvblxcLmNvbXx5b3V0dWJlXFwtbm9jb29raWVcXC5jb218eXRcXC13ZWJcXC1lbWJlZGRlZFxcLXBsYXllclxcLmFwcHNwb3RcXC5jb218eW91dHViZWtpZHNcXC5jb218dmV2b1xcLmNvbXxjaGF0XFwuZ29vZ2xlXFwuY29tfG1lZXRcXC5nb29nbGVcXC5jb218YXJ0c2FuZGN1bHR1cmVcXC5nb29nbGVcXC5jb20pWy5dPyg6WzAtOV0rKT8oL3wkKXwoW0EtWmEtejAtOS1dezEsNjN9XFwuKSooc2FuZGJveFxcLmdvb2dsZVxcLmNvbSkoOlswLTldKyk/KC8oPyF1cmxcXGIpfCQpfCh3d3dcXC58ZW5jcnlwdGVkXFwuKT9nb29nbGVcXC4oY2F0fGNvbShcXC4oYVtmZ2lydV18YltkaG5vcnpdfGNbb3V5XXxkb3xlW2NndF18Zmp8Z1toaXRdfGhrfGptfGtofGt3fGxbYmN5XXxtW210eHldfG5bYWZnaXBdfG9tfHBbYWVnaGtyeV18cWF8c1thYmdsdl18dFtqbnJ3XXx1YXx1eXx2Y3x2bikpP3xhW2NkZWxtc3R6XXxjW2FjZGZnaGlsbW52el18YlthZWZnaWpzdHldfGVlfGVzfGRbZWprbXpdfGdbYWVmZ2xtcHJ5XXxmW2ltcl18aVtlbW9xcnN0XXxoW25ydHVdfGtbZ2l6XXxqZXxqb3xtW2RlZ2tsbnN1dnddfGxbYWlrdHV2XXxuW2Vsb3J1XXxwW2xuc3RdfHNbY2VoaWttbm9ydF18cltvc3V3XXx1c3x0W2Rna2xtbm90XXx3c3x2Z3x2dXxjb1xcLihhb3xid3xja3xjcnxpW2Rsbl18anB8a2V8a3J8bHN8bWF8bXp8bnp8dGh8dHp8dVtna3pdfHZlfHZpfHpbYW13XSkpLyhzZWFyY2h8d2ViaHApXFw/fCh3d3dcXC58ZW5jcnlwdGVkXFwuKWdvb2dsZVxcLihjYXR8Y29tKFxcLihhW2ZnaXJ1XXxiW2Robm9yel18Y1tvdXldfGRvfGVbY2d0XXxmanxnW2hpdF18aGt8am18a2h8a3d8bFtiY3ldfG1bbXR4eV18blthZmdpcF18b218cFthZWdoa3J5XXxxYXxzW2FiZ2x2XXx0W2pucnddfHVhfHV5fHZjfHZuKSk/fGFbY2RlbG1zdHpdfGNbYWNkZmdoaWxtbnZ6XXxiW2FlZmdpanN0eV18ZWV8ZXN8ZFtlamttel18Z1thZWZnbG1wcnldfGZbaW1yXXxpW2Vtb3Fyc3RdfGhbbnJ0dV18a1tnaXpdfGplfGpvfG1bZGVna2xuc3V2d118bFthaWt0dXZdfG5bZWxvcnVdfHBbbG5zdF18c1tjZWhpa21ub3J0XXxyW29zdXddfHVzfHRbZGdrbG1ub3RdfHdzfHZnfHZ1fGNvXFwuKGFvfGJ3fGNrfGNyfGlbZGxuXXxqcHxrZXxrcnxsc3xtYXxtenxuenx0aHx0enx1W2drel18dmV8dml8elthbXddKSkvPyR8bGlnaHRib3gtKGRlbW9zfGJ1aWxkZXIpXFwuYXBwc3BvdFxcLmNvbS98czBcXC4ybWRuXFwubmV0L2luc3RyZWFtL2h0bWw1L25hdGl2ZS98c1swMV0ocWEpP1xcLjJtZG5cXC5uZXQvYWRzL3JpY2htZWRpYS9zdHVkaW8vbXUvdGVtcGxhdGVzL3RldHJpc3x3d3dcXC5nc3RhdGljXFwuY29tL2RvdWJsZWNsaWNrL3N0dWRpby9pbm5vdmF0aW9uL2g1L2xheW91dHMvdGV0cmlzKSIpLApWNGk9UmVnRXhwKCJeaHR0cHM/Oi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikqKGN1cnJlbnRzXFwuZ29vZ2xlXFwuY29tKVsuXT8oOlswLTldKyk/KC98JCkiKSxjWlM9UmVnRXhwKCJeKGh0dHBzOi8vcGxheVxcLmdvb2dsZVxcLmNvbXxodHRwczovL3Bob3Rvc1xcLmdvb2dsZVxcLmNvbXxodHRwczovL2dldFxcLmdvb2dsZVxcLmNvbXxodHRwczovL21haWxcXC5nb29nbGVcXC5jb218aHR0cHM6Ly95dFxcLXdlYlxcLWVtYmVkZGVkXFwtcGxheWVyXFwuYXBwc3BvdFxcLmNvbXxodHRwOi8veXRcXC13ZWJcXC1lbWJlZGRlZFxcLXBsYXllclxcLmFwcHNwb3RcXC5jb218aHR0cHM6Ly9jaGF0XFwuZ29vZ2xlXFwuY29tfGh0dHBzOi8vb25lXFwuZ29vZ2xlXFwuY29tfGh0dHBzOi8vYXJ0c2FuZGN1bHR1cmVcXC5nb29nbGVcXC5jb218aHR0cHM6Ly9hZHN0cmFuc3BhcmVuY3lcXC5nb29nbGVcXC5jb218aHR0cHM6Ly9hZHNcXC5nb29nbGVcXC5jb218aHR0cHM6Ly9hZHdvcmRzXFwuY29ycFxcLmdvb2dsZVxcLmNvbXxodHRwczovL2Fkc1xcLWV4dGVybmFsXFwtcHJvZFxcLnFhXFwuYWR6XFwuZ29vZ2xlXFwuY29tfGh0dHBzOi8vYWRzXFwtcHJvZFxcLnFhXFwuYWR6XFwuZ29vZ2xlXFwuY29tfGh0dHBzOi8vYWR3b3Jkc1xcLWNhbmFyeVxcLnFhXFwuYWR6XFwuZ29vZ2xlXFwuY29tfGh0dHBzOi8vY2FuYXJ5XFwucWFcXC5hZHpcXC5nb29nbGVcXC5jb20pJHxeaHR0cDovL1swLTldK1xcLlthLXowLTlcXC1fXStcXC5bYS16MC05XFwtX10rXFwuW2EtejAtOVxcLV9dK1xcLihbYS16XXsyfXxpKVxcLmJvcmdcXC5nb29nbGVcXC5jb20oOlswLTldKyk/JHxeaHR0cHM6Ly8oKGF1dG9wdXNofGJldGEtbG9va3VwfGRhaWx5LVswLTZdfG1hbnVhbC1xdWFsfHByZXByb2R8c3RyZWFtKVxcLik/bWVldFxcLmdvb2dsZVxcLmNvbSR8Xmh0dHBzOi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikqKGNyb3dkc291cmNlfGRhdGFjb21wdXRlKVxcLmdvb2dsZVxcLmNvbSR8Xmh0dHBzOi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikqKHlvdXR1YmV8eW91dHViZWtpZHN8eW91dHViZWVkdWNhdGlvbilcXC5jb20kfF5odHRwczovLyhbQS1aYS16MC05LV17MSw2M31cXC4pK2RlbW9zXFwuY29ycFxcLmdvb2dsZVxcLmNvbSR8Xmh0dHBzOi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikrc2FuZGJveFxcLmdvb2dsZVxcLmNvbSR8Xmh0dHBzOi8vKFtBLVphLXowLTktXXsxLDYzfVxcLikrc3NscHJveHlcXC5jb3JwXFwuZ29vZ2xlXFwuY29tJHxeaHR0cHM6Ly8oYm9va3N8cGxheS1ib29rcy0oYXV0b3B1c2h8aW50ZXJuYWx8cHJlcHJvZHxzdGFnaW5nKSgtc2FuZGJveHxcXC5jb3JwKSlcXC5nb29nbGV1c2VyY29udGVudFxcLmNvbSR8Xmh0dHBzOi8vKGRyYWZ0fHd3d3wod3d3XFwuKT9kZXZcXC5zYW5kYm94fCh3d3dcXC4pP2F1dG9wdXNoXFwuc2FuZGJveHwod3d3XFwuKT9zdGFnaW5nXFwuc2FuZGJveHwod3d3XFwuKT9yZXN0b3JlXFwuc2FuZGJveClcXC5ibG9nZ2VyXFwuY29tJHxeaHR0cHM6Ly9bMC05YS1mXXsxLDYzfVxcLnByb3h5XFwuZ29vZ2xlcHJvZFxcLmNvbSR8Xmh0dHBzOi8vbG9jYWxob3N0XFwuZ29vZ2xldXNlcmNvbnRlbnRcXC5jb20oOlxcZCspPyR8Xmh0dHBzPzovLygoKGRvY3N8bXxzaW5nfHNzfHNzc3x3d3cpXFwuKT9kcml2ZVxcLmdvb2dsZVxcLmNvbSR8KFtBLVphLXowLTktXXsxLDYzfVxcLikqY1xcLmdvb2dsZXJzXFwuY29tKDpbMC05XSspPyR8KFtBLVphLXowLTktXXsxLDYzfVxcLikqY29ycFxcLmdvb2dsZVxcLmNvbSg6WzAtOV0rKT8kfChbQS1aYS16MC05LV17MSw2M31cXC4pKmdvb2dsZXBsZXhcXC5jb20oOlswLTldKyk/JHwoW0EtWmEtejAtOS1dezEsNjN9XFwuKSpwcm94eVxcLmdvb2dsZXJzXFwuY29tKDpbMC05XSspPyR8KHd3d1xcLnxlbmNyeXB0ZWRcXC4pZ29vZ2xlXFwuKGNhdHxjb20oXFwuKGFbZmdpcnVdfGJbZGhub3J6XXxjW291eV18ZG98ZVtjZ3RdfGZqfGdbaGl0XXxoa3xqbXxraHxrd3xsW2JjeV18bVttdHh5XXxuW2FmZ2lwXXxvbXxwW2FlZ2hrcnldfHFhfHNbYWJnbHZdfHRbam5yd118dWF8dXl8dmN8dm4pKT98YVtjZGVsbXN0el18Y1thY2RmZ2hpbG1udnpdfGJbYWVmZ2lqc3R5XXxlZXxlc3xkW2Vqa216XXxnW2FlZmdsbXByeV18ZltpbXJdfGlbZW1vcXJzdF18aFtucnR1XXxrW2dpel18amV8am98bVtkZWdrbG5zdXZ3XXxsW2Fpa3R1dl18bltlbG9ydV18cFtsbnN0XXxzW2NlaGlrbW5vcnRdfHJbb3N1d118dXN8dFtkZ2tsbW5vdF18d3N8dmd8dnV8Y29cXC4oYW98Ynd8Y2t8Y3J8aVtkbG5dfGpwfGtlfGtyfGxzfG1hfG16fG56fHRofHR6fHVbZ2t6XXx2ZXx2aXx6W2Ftd10pKS8/JHxbQS1aYS16MC05LV0rXFwucHJvZFxcLmdvb2dsZVxcLmNvbSg6WzAtOV0rKT8kfGRvY3NcXC5nb29nbGVcXC5jb20kKSIpLAphSFU9UmVnRXhwKCJeKGh0dHBzOi8vY3VycmVudHNcXC5nb29nbGVcXC5jb20pJCIpO3ZhciBkUD0hMTtnLndaPWNsYXNze2NvbnN0cnVjdG9yKG4sVz0hMSl7dGhpc1tJWzE3XV09bjt0aGlzW0lbOV1dPVc7dGhpc1tJWzM5XV09dGhpc1tJWzI4XV09dGhpc1tJWzI2XV09SVsyMV07dGhpc1tJWzFdXT17fTt0aGlzW0lbMjldXT1JWzIxXX1zZXQobixXKXt0aGlzW0lbMV1dW25dIT09VyYmKHRoaXNbSVsxXV1bbl09Vyx0aGlzW0lbMjldXT1JWzIxXSl9Z2V0KG4pe2VYKDE0LDcyMTMsdGhpcyk7cmV0dXJuIHRoaXNbSVsxXV1bbl18fG51bGx9V0QoKXt0aGlzW0lbMjldXXx8KHRoaXNbSVsyOV1dPUVjKDYsMjk5OCx0aGlzKSk7cmV0dXJuIHRoaXNbSVsyOV1dfWNsb25lKCl7dmFyIG49bmV3IGcud1oodGhpc1tJWzE3XV0sdGhpc1tJWzldXSk7bltJWzI2XV09dGhpc1tJWzI2XV07bltJWzI4XV09dGhpc1tJWzI4XV07bltJWzM5XV09dGhpc1tJWzM5XV07bltJWzFdXT1nLnMwKHRoaXNbSVsxXV0pO25bSVsyOV1dPXRoaXNbSVsyOV1dO3JldHVybiBufX07dmFyIEpaPXtGQUlSUExBWToiZmFpcnBsYXkiLFBMQVlSRUFEWToicGxheXJlYWR5IixXSURFVklORToid2lkZXZpbmUiLENMRUFSS0VZOm51bGwsRkxBU0hBQ0NFU1M6bnVsbCxVTktOT1dOOm51bGwsV0lERVZJTkVfQ0xBU1NJQzpudWxsfTt2YXIgd1A9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYj0hMSl7dGhpcy5uYW1lPW47dGhpcy5pZD1XO3RoaXMuaXNEZWZhdWx0PUQ7dGhpcy5pc0F1dG9EdWJiZWQ9Yn1nZXROYW1lKCl7cmV0dXJuIHRoaXMubmFtZX1nZXRJZCgpe3JldHVybiB0aGlzLmlkfWdldElzRGVmYXVsdCgpe3JldHVybiB0aGlzLmlzRGVmYXVsdH1nZXRJc0F1dG9EdWJiZWQoKXtyZXR1cm4gdGhpcy5pc0F1dG9EdWJiZWR9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5uYW1lfX07d1AucHJvdG90eXBlLmdldE5hbWU9d1AucHJvdG90eXBlLmdldE5hbWU7d1AucHJvdG90eXBlLmdldElkPXdQLnByb3RvdHlwZS5nZXRJZDt3UC5wcm90b3R5cGUuZ2V0SXNEZWZhdWx0PXdQLnByb3RvdHlwZS5nZXRJc0RlZmF1bHQ7d1AucHJvdG90eXBlLmdldElzQXV0b0R1YmJlZD13UC5wcm90b3R5cGUuZ2V0SXNBdXRvRHViYmVkO2cuUXc9Y2xhc3N7Y29uc3RydWN0b3Iobj17fSl7dGhpcy5sYW5ndWFnZUNvZGU9bi5sYW5ndWFnZUNvZGV8fCIiO3RoaXMubGFuZ3VhZ2VOYW1lPW4ubGFuZ3VhZ2VOYW1lfHxudWxsO3RoaXMua2luZD1uLmtpbmR8fCIiO3RoaXMubmFtZT1uLm5hbWU9PT12b2lkIDA/bnVsbDpuLm5hbWU7dGhpcy5kaXNwbGF5TmFtZT1uLmRpc3BsYXlOYW1lfHxudWxsO3RoaXMuaWQ9bi5pZHx8bnVsbDt0aGlzLk49bi5pc19zZXJ2YWJsZXx8ITE7dGhpcy5pc1RyYW5zbGF0ZWFibGU9bi5pc190cmFuc2xhdGVhYmxlfHwhMTt0aGlzLnVybD1uLnVybHx8bnVsbDt0aGlzLnZzc0lkPW4udnNzX2lkfHwiIjt0aGlzLmlzRGVmYXVsdD1uLmlzX2RlZmF1bHR8fCExO3RoaXMudHJhbnNsYXRpb25MYW5ndWFnZT1uLnRyYW5zbGF0aW9uTGFuZ3VhZ2V8fG51bGw7dGhpcy54dGFncz1uLnh0YWdzfHwiIjt0aGlzLmNhcHRpb25JZD1uLmNhcHRpb25JZHx8IiJ9Z2V0SWQoKXtyZXR1cm4gdGhpcy5pZH1nZXROYW1lKCl7cmV0dXJuIHRoaXMubmFtZX1pc1NlcnZhYmxlKCl7cmV0dXJuIHRoaXMuTn1XRCgpe3JldHVybiB0aGlzLnVybH1nZXRYdGFncygpe3JldHVybiB0aGlzLnh0YWdzfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMubGFuZ3VhZ2VDb2RlKwoiOiAiK2cuY24odGhpcykrIiAtICIrdGhpcy52c3NJZCsiIC0gIisodGhpcy5jYXB0aW9uSWR8fCIiKX1lcXVhbHMobil7cmV0dXJuIG4/dGhpcy50b1N0cmluZygpPT09bi50b1N0cmluZygpOiExfU9WKCl7cmV0dXJuISghdGhpcy5sYW5ndWFnZUNvZGV8fHRoaXMudHJhbnNsYXRpb25MYW5ndWFnZSYmIXRoaXMudHJhbnNsYXRpb25MYW5ndWFnZS5sYW5ndWFnZUNvZGUpfX07dmFyIFdBPWNsYXNze2NvbnN0cnVjdG9yKG4sVyl7dGhpcy5pZD1uO3RoaXMua1o9Vzt0aGlzLmNhcHRpb25UcmFja3M9W107dGhpcy5XPXRoaXMuWD1udWxsO3RoaXMueHRhZ3M9IiI7dGhpcy5WPXRoaXMuaj0hMTt0aGlzLk49bnVsbDt0aGlzLko9IlVOS05PV04iO3RoaXMuY2FwdGlvbnNJbml0aWFsU3RhdGU9IkNBUFRJT05TX0lOSVRJQUxfU1RBVEVfVU5LTk9XTiI7bj10aGlzLmtaLmlkLnNwbGl0KCIuIik7bi5sZW5ndGg+MSYmKHRoaXMuaj1uWzFdPT09IjIiLHRoaXMuVj1uWzFdPT09IjQiKX1nZXRMYW5ndWFnZUluZm8oKXtyZXR1cm4gdGhpcy5rWn1nZXRYdGFncygpe2lmKCF0aGlzLnh0YWdzKXtsZXQgbj10aGlzLmlkLnNwbGl0KCI7Iik7bi5sZW5ndGg+MSYmKHRoaXMueHRhZ3M9blsxXSl9cmV0dXJuIHRoaXMueHRhZ3N9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5rWi5uYW1lfWlzQXV0b0R1YmJlZCgpe3JldHVybiB0aGlzLmtaLmdldElzQXV0b0R1YmJlZCgpfX07CldBLnByb3RvdHlwZS5nZXRMYW5ndWFnZUluZm89V0EucHJvdG90eXBlLmdldExhbmd1YWdlSW5mbztXQS5wcm90b3R5cGUuaXNBdXRvRHViYmVkPVdBLnByb3RvdHlwZS5pc0F1dG9EdWJiZWQ7dmFyIGIzPWNsYXNze2NvbnN0cnVjdG9yKG4sVyxELGIsdj0wKXt0aGlzLko9bjt0aGlzLk49Vzt0aGlzLlc9RDt0aGlzLnJlYXNvbj1iO3RoaXMuTnM9dn1lcXVhbHMobil7cmV0dXJuIHRoaXMuSj09PW4uSiYmdGhpcy5OPT09bi5OJiZ0aGlzLlc9PT1uLlcmJnRoaXMucmVhc29uPT09bi5yZWFzb24mJighaFR8fHRoaXMuTnM9PT1uLk5zKX1pc0xvY2tlZCgpe3JldHVybiB0aGlzLlcmJiEhdGhpcy5KJiZ0aGlzLko9PT10aGlzLk59Y29tcG9zZShuKXtpZihuLlcmJnhKKG4pKXJldHVybiBZWjtpZihuLld8fHhKKHRoaXMpKXJldHVybiBuO2lmKHRoaXMuV3x8eEoobikpcmV0dXJuIHRoaXM7dmFyIFc9dGhpcy5KJiZuLko/TWF0aC5tYXgodGhpcy5KLG4uSik6dGhpcy5KfHxuLkosRD10aGlzLk4mJm4uTj9NYXRoLm1pbih0aGlzLk4sbi5OKTp0aGlzLk58fG4uTjtXPU1hdGgubWluKFcsRCk7dmFyIGI9MDtoVCYmKGI9dGhpcy5OcyE9PTAmJm4uTnMhPT0wP01hdGgubWluKHRoaXMuTnMsCm4uTnMpOnRoaXMuTnM9PT0wP24uTnM6dGhpcy5Ocyk7cmV0dXJuIGhUJiZXPT09dGhpcy5KJiZEPT09dGhpcy5OJiZiPT09dGhpcy5Oc3x8IWhUJiZXPT09dGhpcy5KJiZEPT09dGhpcy5OP3RoaXM6aFQ/bmV3IGIzKFcsRCwhMSxEPT09dGhpcy5OJiZiPT09dGhpcy5Ocz90aGlzLnJlYXNvbjpuLnJlYXNvbixiKTpuZXcgYjMoVyxELCExLEQ9PT10aGlzLk4/dGhpcy5yZWFzb246bi5yZWFzb24pfVgobil7cmV0dXJuIW4udmlkZW98fGhUJiZ0aGlzLk5zIT09MCYmdGhpcy5OczxuLk5zPyExOmdGKHRoaXMsbi52aWRlby5xdWFsaXR5KX19LG5oVT12QSgiYXV0byIsImhkMTA4MCIsITEsImwiKSxUOD12QSgiYXV0byIsImxhcmdlIiwhMSwibCIpLFlaPXZBKCJhdXRvIiwiYXV0byIsITEsInAiKSxoVD0hMTt2YXIgcGc9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYil7dGhpcy52aWRlb0luZm9zPW47dGhpcy5KPVc7dGhpcy5hdWRpb1RyYWNrcz1bXTt0aGlzLlc9Ynx8W107aWYodGhpcy5KKXtuPW5ldyBTZXQ7RD8uKHthaW5mb2xlbjp0aGlzLkoubGVuZ3RofSk7Zm9yKGxldCB2IG9mIHRoaXMuSil7aWYoIXYua1p8fG4uaGFzKHYua1ouaWQpKXtEPy4oe2F0a2VycjohIXYua1osaXRhZzp2Lml0YWcseHRhZzp2LkosbGFuZzp2LmtaPy5uYW1lfHwiIixsYW5naWQ6di5rWj8uaWR8fCIifSk7Y29udGludWV9Vz1uZXcgV0Eodi5pZCx2LmtaKTtuLmFkZCh2LmtaLmlkKTt0aGlzLmF1ZGlvVHJhY2tzLnB1c2goVyl9RD8uKHthdGtsZW46dGhpcy5hdWRpb1RyYWNrcy5sZW5ndGh9KX19Y1kobil7bj1ufHxZWjt2YXIgVz1nLkVNKHRoaXMudmlkZW9JbmZvcyx2PT5uLlgodikpLEQ9W10sYj17fTsKZm9yKGxldCB2PTA7djxXLmxlbmd0aDt2Kyspe2xldCBrPVdbdl0udmlkZW87YltrLnF1YWxpdHldfHwoRC5wdXNoKGspLGJbay5xdWFsaXR5XT0hMCl9cmV0dXJuIER9TnEobil7bj1ufHxZWjtyZXR1cm4gZy5FTSh0aGlzLnZpZGVvSW5mb3MsVz0+bi5YKFcpKX1nZXRBdmFpbGFibGVBdWRpb1RyYWNrcygpe3JldHVybiB0aGlzLmF1ZGlvVHJhY2tzfU4oKXtyZXR1cm4hIXRoaXMuSn19O3ZhciBBSFM9bmV3IFNldChbIjM1NiIsIjcyMSJdKSxXVnI9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKTt0aGlzLko9bnVsbDt0aGlzLk49bmV3IE1hcH1tQSgpe3N1cGVyLm1BKCl9fTt2YXIgUjQ9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYix2LGssaCx4LEwsZSl7dGhpcy5qJD1uO3RoaXMuc3RhcnRUaW1lPVc7dGhpcy5kdXJhdGlvbj1EO3RoaXMuaW5nZXN0aW9uVGltZT1iO3RoaXMuc291cmNlVVJMPXY7dGhpcy5mZj1MO3RoaXMuUU89ZTt0aGlzLmVuZFRpbWU9VytEO3RoaXMuTj1ofHwwO3RoaXMucmFuZ2U9a3x8bnVsbDt0aGlzLnBlbmRpbmc9eHx8ITE7dGhpcy5mZj1MfHxudWxsfX07Zy5qYz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc2VnbWVudHM9W107dGhpcy5KPW51bGw7dGhpcy5ZPSEwO3RoaXMuSz0iIn1qKG4pe3RoaXMuc2VnbWVudHMucHVzaChuKX1NSShuKXtyZXR1cm4hIXRoaXMuVyhuKX1nZXREdXJhdGlvbihuKXtyZXR1cm4obj10aGlzLlcobikpP24uZHVyYXRpb246MH1EKG4pe3JldHVybiB0aGlzLmdldER1cmF0aW9uKG4pfVVjKCl7cmV0dXJuIDB9Wk8oKXtyZXR1cm4gdGhpcy5zZWdtZW50cy5sZW5ndGg/dGhpcy5zZWdtZW50c1swXS5qJDotMX1oQyhuKXtyZXR1cm4obj10aGlzLlcobikpP24uaW5nZXN0aW9uVGltZTpOYU59eCQoKXtyZXR1cm4gdGhpcy5zZWdtZW50cy5sZW5ndGg/dGhpcy5zZWdtZW50c1t0aGlzLnNlZ21lbnRzLmxlbmd0aC0xXS5qJDotMX1xZShuKXtyZXR1cm4gdGhpcy54JCgpPT09biYmIXRoaXMuWSYmbj49MH1iUSgpe3ZhciBuPXRoaXMuc2VnbWVudHNbdGhpcy5zZWdtZW50cy5sZW5ndGgtMV07cmV0dXJuIG4/bi5lbmRUaW1lOgpOYU59TGYoKXtyZXR1cm4gdGhpcy5zZWdtZW50c1swXS5zdGFydFRpbWV9SDcoKXtyZXR1cm4gdGhpcy5zZWdtZW50cy5sZW5ndGh9Tigpe3JldHVybiAwfVIzKG4pe3JldHVybihuPXRoaXMuWChuKSk/bi5qJDotMX1WKG4pe3JldHVybihuPXRoaXMuVyhuKSk/bi5zb3VyY2VVUkw6IiJ9Z2V0U3RhcnRUaW1lKG4pe3JldHVybihuPXRoaXMuVyhuKSk/bi5zdGFydFRpbWU6MH1qRShuKXtyZXR1cm4gdGhpcy5nZXRTdGFydFRpbWUobikrdGhpcy5nZXREdXJhdGlvbihuKX1pc0xvYWRlZCgpe3JldHVybiB0aGlzLnNlZ21lbnRzLmxlbmd0aD4wfVcobil7aWYodGhpcy5KJiZ0aGlzLkouaiQ9PT1uKXJldHVybiB0aGlzLko7bj1nLlc0KHRoaXMuc2VnbWVudHMsbmV3IFI0KG4sMCwwLDAsIiIpLChXLEQpPT5XLmokLUQuaiQpOwpyZXR1cm4gdGhpcy5KPW4+PTA/dGhpcy5zZWdtZW50c1tuXTpudWxsfVgobil7aWYodGhpcy5KJiZ0aGlzLkouc3RhcnRUaW1lPD1uJiZuPHRoaXMuSi5zdGFydFRpbWUrdGhpcy5KLmR1cmF0aW9uKXJldHVybiB0aGlzLko7bj1nLlc0KHRoaXMuc2VnbWVudHMse3N0YXJ0VGltZTpufSwoVyxEKT0+Vy5zdGFydFRpbWUtRC5zdGFydFRpbWUpOwpyZXR1cm4gdGhpcy5KPW4+PTA/dGhpcy5zZWdtZW50c1tuXTp0aGlzLnNlZ21lbnRzW01hdGgubWF4KDAsLW4tMildfWFwcGVuZChuKXtpZihuLmxlbmd0aClpZihuPWcuUk0obiksdGhpcy5zZWdtZW50cy5sZW5ndGgpe3ZhciBXPXRoaXMuc2VnbWVudHMubGVuZ3RoP2cuVU0odGhpcy5zZWdtZW50cykuZW5kVGltZTowLEQ9blswXS5qJC10aGlzLngkKCk7RD4xJiZnLkNiKHRoaXMuc2VnbWVudHMpO0Q9RD4wPzA6LUQrMTtmb3IobGV0IGI9RDtiPG4ubGVuZ3RoO2IrKylEPW5bYl0sRC5zdGFydFRpbWU9VyxELmVuZFRpbWU9RC5zdGFydFRpbWUrRC5kdXJhdGlvbixXKz1uW2JdLmR1cmF0aW9uLHRoaXMuc2VnbWVudHMucHVzaChuW2JdKX1lbHNlIHRoaXMuc2VnbWVudHM9bn1YZCgpe3JldHVybiAwfXR3KG4sVyl7dGhpcy5ZPW47dGhpcy5LPVd9fTtnLmpjLnByb3RvdHlwZS5VNz1XWigzKTt2YXIgRF89Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYix2PSExKXt0aGlzLmRhdGE9bjt0aGlzLm9mZnNldD1XO3RoaXMuc2l6ZT1EO3RoaXMudHlwZT1iO3RoaXMuTj0odGhpcy5KPXYpPzA6ODt0aGlzLmRhdGFPZmZzZXQ9dGhpcy5vZmZzZXQrdGhpcy5OfXNraXAobil7dGhpcy5OKz1ufX07dmFyIE9LdD1jbGFzc3tjb25zdHJ1Y3RvcihuKXt0aGlzLm9mZnNldD0wO3RoaXMuZGF0YT1uZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKG4pKX19O3ZhciBEVmk7Zy5sMz1jbGFzc3tjb25zdHJ1Y3RvcihuLFcsRCxiLHYsayxoKXt0aGlzLnN0YXJ0U2Vjcz1uO3RoaXMuQ2Y9Vzt0aGlzLmNvbnRleHQ9RDt0aGlzLmlkZW50aWZpZXI9Yjt0aGlzLmV2ZW50PXY7dGhpcy5OPWs7dGhpcy50aWxlQ29udGV4dD1ofX07RFZpPWNsYXNze2NvbnN0cnVjdG9yKG4sVyxEKXt0aGlzLlBCPW47dGhpcy5vcHBvcnR1bml0eUlkPVc7dGhpcy5zZXJpYWxpemVkUHJlZmV0Y2hDb250ZXh0PUR9fTt2YXIgYk5VPXtwcmVkaWN0U3RhcnQ6InByZWRpY3RTdGFydCIsc3RhcnQ6InN0YXJ0IixbImNvbnRpbnVlIl06ImNvbnRpbnVlIixzdG9wOiJzdG9wIixwcmVmZXRjaDoicHJlZmV0Y2gifSxtNWo9e0VWRU5UX1BSRURJQ1RfU1RBUlQ6InByZWRpY3RTdGFydCIsRVZFTlRfU1RBUlQ6InN0YXJ0IixFVkVOVF9DT05USU5VRToiY29udGludWUiLEVWRU5UX1NUT1A6InN0b3AiLEVWRU5UX1BSRUZFVENIOiJwcmVmZXRjaCJ9O3ZhciBYNT1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuZGF0YT1uO3RoaXMudXJpPVd8fCJodHRwOi8veW91dHViZS5jb20vc3RyZWFtaW5nL21ldGFkYXRhL3NlZ21lbnQvMTAyMDE1Ijt0aGlzLnNlZ21lbnROdW1iZXI9el8odGhpcywiU2VxdWVuY2UtTnVtYmVyIik7dGhpcy5qPXpfKHRoaXMsIlNlZ21lbnQtQ291bnQiKTt0aGlzLks9dGhpcy5kYXRhWyJTZWdtZW50LUR1cmF0aW9ucy1NcyJdfHwiIjt0aGlzLmluZ2VzdGlvblRpbWU9el8odGhpcywiSW5nZXN0aW9uLVdhbGx0aW1lLVVzIikvMUU2O3RoaXMuVz0oel8odGhpcywiRmlyc3QtRnJhbWUtVGltZS1VcyIpK3pfKHRoaXMsIkZpcnN0LUZyYW1lLVVuY2VydGFpbnR5LVVzIikpLzFFNjt0aGlzLnJiPXpfKHRoaXMsIlRhcmdldC1EdXJhdGlvbi1VcyIpLzFFNjt0aGlzLlY9dGhpcy5kYXRhWyJTdHJlYW0tRmluaXNoZWQiXT09PSJUIjt0aGlzLmlzU3RyZWFtaW5nPXRoaXMuZGF0YS5TdHJlYW1hYmxlPT09IlQiO3RoaXMuY3J5cHRvUGVyaW9kSW5kZXg9CnpfKHRoaXMsIkNyeXB0by1QZXJpb2QtSW5kZXgiKTt0aGlzLlg9el8odGhpcywiQ3J5cHRvLVBlcmlvZC1TZWNvbmRzIik7dGhpcy5OPSJDdXJyZW50LUFic29sdXRlLUxvdWRuZXNzLUxrZnMiaW4gdGhpcy5kYXRhP051bWJlcih0aGlzLmRhdGFbIkN1cnJlbnQtQWJzb2x1dGUtTG91ZG5lc3MtTGtmcyJdKXx8MDpudWxsfUooKXtyZXR1cm4gdGhpcy5kYXRhWyJTdGl0Y2hlZC1WaWRlby1DcG4iXT90aGlzLmRhdGFbIlN0aXRjaGVkLVZpZGVvLUNwbiJdLnNwbGl0KCIsIikuc2xpY2UoMCwtMSk6W119ZksoKXtyZXR1cm4hISh0aGlzLmRhdGFbIlN0aXRjaGVkLVZpZGVvLUlkIl18fHRoaXMuZGF0YVsiU3RpdGNoZWQtVmlkZW8tQ3BuIl18fHRoaXMuZGF0YVsiU3RpdGNoZWQtVmlkZW8tRHVyYXRpb24tVXMiXXx8dGhpcy5kYXRhWyJTdGl0Y2hlZC1WaWRlby1TdGFydC1GcmFtZS1JbmRleCJdfHx0aGlzLmRhdGFbIlN0aXRjaGVkLVZpZGVvLUFic29sdXRlLUxvdWRuZXNzLUxrZnMiXXx8CnRoaXMuZGF0YVsiU2VyaWFsaXplZC1TdGF0ZSJdfHx0aGlzLmRhdGFbIklzLUFkLUJyZWFrLUZpbmlzaGVkIl0pfX07dmFyIFJlaD1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuTj1uO3RoaXMuZHVyYXRpb249V319O3ZhciAkOHg9e1NURVJFT19MQVlPVVRfVU5LTk9XTjowLFNURVJFT19MQVlPVVRfTEVGVF9SSUdIVDoxLFNURVJFT19MQVlPVVRfVE9QX0JPVFRPTToyfTt2YXIgaFk9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYix2KXt0aGlzLko9djt0aGlzLk49bnx8MDt0aGlzLnBpdGNoPVd8fDA7dGhpcy55YXc9RHx8MDt0aGlzLnJvbGw9Ynx8MDt2LmdldFVpbnQzMig0KX19O3ZhciB0WT1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuTj1uO3RoaXMucG9zPTA7dGhpcy5zdGFydD1XfHwwfU9KKCl7dmFyIG49dGhpcy5wb3M7dGhpcy5wb3M9MDt2YXIgVz0hMTt0cnl7c1kodGhpcyw0NDA3ODY4NTEpJiYodGhpcy5wb3M9MCxzWSh0aGlzLDQwODEyNTU0MykmJihXPSEwKSl9Y2F0Y2goRCl7aWYoRCBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpdGhpcy5wb3M9MCxXPSExLGcuR3EoRCk7ZWxzZSB0aHJvdyBEO310aGlzLnBvcz1uO3JldHVybiBXfX07dmFyIENzPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuQU89bjt0aGlzLk49e307dGhpcy51cmw9IiJ9c2V0KG4sVyl7dGhpcy5BTy5nZXQobik7dGhpcy5OW25dPVc7dGhpcy51cmw9IiJ9Z2V0KG4pe3JldHVybiB0aGlzLk5bbl18fHRoaXMuQU8uZ2V0KG4pfVdEKCl7dGhpcy51cmx8fCh0aGlzLnVybD1pS1UodGhpcykpO3JldHVybiB0aGlzLnVybH19O3ZhciB1VGk9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLko9dGhpcy5YPXRoaXMuVz10aGlzLk49dGhpcy50aW1lZE91dD10aGlzLnN0YXJ0ZWQ9dGhpcy5WPXRoaXMuaj0wfX07dmFyIHZUPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMuTz10aGlzLkQ9dGhpcy5WPXRoaXMuSj0wO3RoaXMuaj10aGlzLks9ITE7dGhpcy5OPW47dGhpcy5XPW4uY2xvbmUoKX1wUyhuLFcpe3JldHVybiBuLllaP3RoaXMuaj90aGlzLks9ITA6dGhpcy5LPWpQKHRoaXMsbixXKTpqUCh0aGlzLG4sVyl9WShuLFcsRD0wKXtEPjE/bj1uLk1jOihXPVVZKFcsRjUodGhpcyx0aGlzLnBTKG4sVyksbikpLG49TWF0aC5tYXgodGhpcy5WLFcudGltZWRPdXQpK24uVFoqKHRoaXMuSi10aGlzLlYpKy4yNSp0aGlzLkQsbj1uPjM/MUUzKjEuNioqKG4tMyk6MCk7cmV0dXJuIG49PT0wPyEwOnRoaXMuTytuPCgwLGcuUikoKX1jSihuLFcpe3RoaXMuTi5zZXQobixXKTt0aGlzLlcuc2V0KG4sVyk7dGhpcy5YJiZ0aGlzLlguc2V0KG4sVyl9V04oKXtyZXR1cm4gdGhpcy5XLmdldCgiY3BuIil8fCIifVo1KG4sVyl7bi5BTz09PXRoaXMuTiYmKHRoaXMuTj1uWChuLFcpKTtuLkFPPT09dGhpcy5YJiYodGhpcy5YPQpuWChuLFcpKX10dygpe3RoaXMuaj0hMH1yMCgpe3JldHVybiB0aGlzLk4hPT10aGlzLlgmJiF0aGlzLkt9fTt2YXIgQ2o9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYil7dGhpcy5pbml0UmFuZ2U9RDt0aGlzLmluZGV4UmFuZ2U9Yjt0aGlzLko9bnVsbDt0aGlzLmNKPSExO3RoaXMuRkY9MDt0aGlzLlY9dGhpcy5TVT10aGlzLk89bnVsbDt0aGlzLmluZm89Vzt0aGlzLlhiPW5ldyB2VChuKX1OKCl7cmV0dXJuISF0aGlzLkomJnRoaXMuaW5kZXguaXNMb2FkZWQoKX1TJCgpe3JldHVybiExfUdDKG4pe3JldHVybltuXX1WUShuKXtyZXR1cm5bbl19fTt2YXIgYUI9Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLnN0YXJ0PW47dGhpcy5lbmQ9Vzt0aGlzLmxlbmd0aD1XLW4rMX10b1N0cmluZygpe3JldHVybiB0aGlzLnN0YXJ0KyItIisodGhpcy5lbmQ9PW51bGw/IiI6dGhpcy5lbmQpfU4oKXtyZXR1cm4gdGhpcy5lbmQ9PW51bGw/e3N0YXJ0OlN0cmluZyh0aGlzLnN0YXJ0KX06e3N0YXJ0OlN0cmluZyh0aGlzLnN0YXJ0KSxlbmQ6U3RyaW5nKHRoaXMuZW5kKX19fTt2YXIgcUk9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYj0iIix2LGssaCx4LEwsZSxHLHI9IiIsTixILEEpe3RoaXMudHlwZT1uO3RoaXMuUEo9Vzt0aGlzLnJhbmdlPUQ7dGhpcy5zb3VyY2U9Yjt0aGlzLnZEPUc7dGhpcy5jbGlwSWQ9cjt0aGlzLkQ9Tjt0aGlzLmJkPUg7dGhpcy5yZXF1ZXN0VG9rZW49QTt0aGlzLk89W107dGhpcy5ZPSIiO3RoaXMuaiQ9LTE7dGhpcy50dz0wO3RoaXMuWT1iO3RoaXMuaiQ9dj49MD92Oi0xO3RoaXMuc2VnbWVudFN0YXJ0VGltZT1rfHwwO3RoaXMuVz1ofHwwO3RoaXMuTj14fHwwO3RoaXMuSj1MPj0wP0w6dGhpcy5yYW5nZT90aGlzLnJhbmdlLmxlbmd0aDpOYU47dGhpcy5yYW5nZT8obj10aGlzLk4rdGhpcy5KPT09dGhpcy5yYW5nZS5sZW5ndGgsZT10aGlzLnNvdXJjZT09PSJ3YXNtIj9lPz9uOm4pOmU9ZT09PXZvaWQgMD8hIXRoaXMuSjplO3RoaXMuYVo9ZTt0aGlzLnJhbmdlPyh0aGlzLlg9dGhpcy5zZWdtZW50U3RhcnRUaW1lK3RoaXMuVyoKdGhpcy5OL3RoaXMucmFuZ2UubGVuZ3RoLHRoaXMuSz10aGlzLlcqdGhpcy5KL3RoaXMucmFuZ2UubGVuZ3RoLHRoaXMuaj10aGlzLlgrdGhpcy5LKTp2Xyh0aGlzKX1WKCl7cmV0dXJuIHRoaXMuYVomJnRoaXMuUEouaW5kZXgucWUodGhpcy5qJCl9a2Yobil7cmV0dXJuIG4+PXRoaXMuWCYmbjw9dGhpcy5qfWlzRW5jcnlwdGVkKCl7cmV0dXJuIHRoaXMuUEouaW5mby5pc0VuY3J5cHRlZCgpfWVxdWFscyhuKXtyZXR1cm4hKCFufHxuLlBKIT09dGhpcy5QSnx8bi50eXBlIT09dGhpcy50eXBlfHwodGhpcy5yYW5nZSYmbi5yYW5nZT9uLnJhbmdlLnN0YXJ0IT09dGhpcy5yYW5nZS5zdGFydHx8bi5yYW5nZS5lbmQhPT10aGlzLnJhbmdlLmVuZDpuLnJhbmdlIT09dGhpcy5yYW5nZSl8fG4uaiQhPT10aGlzLmokfHxuLk4hPT10aGlzLk58fG4uSiE9PXRoaXMuSil9Y0ooKXtyZXR1cm4gdGhpcy50eXBlPT09NH1mWSgpe3JldHVybiEhdGhpcy5QSi5pbmZvLnZpZGVvfVRDKCl7cmV0dXJuIHRoaXMuaiR9Z2EoKXt2YXIgbj0KWHgodGhpcyksVz0iIjtnLmFfKG4sKEQsYik9PntXKz1gJHtifV8ke0R9X2B9KTsKcmV0dXJuIFcuc2xpY2UoMCwtMSl9Y2xvbmUoKXt2YXIgbj1uZXcgcUkodGhpcy50eXBlLHRoaXMuUEosdGhpcy5yYW5nZSx0aGlzLnNvdXJjZSx0aGlzLmokLHRoaXMuc2VnbWVudFN0YXJ0VGltZSx0aGlzLlcsdGhpcy5OLHRoaXMuSix0aGlzLmFaLHRoaXMudkQsdGhpcy5jbGlwSWQsdGhpcy5ELHRoaXMuYmQsdGhpcy5yZXF1ZXN0VG9rZW4pO24uWT10aGlzLlk7dGhpcy5PLmxlbmd0aD4wJiYobi5PPVsuLi50aGlzLk9dKTtuLlg9dGhpcy5YO24uSz10aGlzLks7bi5qPXRoaXMuajtuLnR3PXRoaXMudHc7cmV0dXJuIG59fTt2YXIgd2s9Y2xhc3N7Y29uc3RydWN0b3IobixXKXt0aGlzLkF3PW47dGhpcy5YPXRoaXMuTj1udWxsO3RoaXMuaj10aGlzLlpBPU5hTjt0aGlzLnBTPXRoaXMucmVxdWVzdElkPW51bGw7dGhpcy5YYj1uWzBdLlBKLlhiO3RoaXMuSj1XfHwiIjtpZih0aGlzLkF3WzBdLnJhbmdlJiZ0aGlzLkF3WzBdLko+MCl7YTp7Zm9yKFc9MTtXPG4ubGVuZ3RoO1crKylpZighYlQobltXLTFdLG5bV10pKXtXPSExO2JyZWFrIGF9Vz0hMH1pZihXKXRoaXMucmFuZ2U9ZDV3KG4pLHRoaXMuVz10aGlzLnJhbmdlLmxlbmd0aDtlbHNle3RoaXMucmFuZ2U9dGhpcy5Bd1t0aGlzLkF3Lmxlbmd0aC0xXS5yYW5nZTtXPTA7Zm9yKGxldCBEIG9mIG4pVys9RC5yYW5nZS5sZW5ndGg7dGhpcy5XPVd9fX1ZbCgpe3JldHVybiB0aGlzLk4/dGhpcy5OLldEKCk6IiJ9aXNEZWNvcmF0ZWQoKXtyZXR1cm4hISh0aGlzLk58fHRoaXMuWCYmdGhpcy5YLk15KX1Rbigpe3JldHVybiBoSih0aGlzLkF3WzBdKX1rZihuKXtmb3IobGV0IFcgb2YgdGhpcy5BdylpZihXLnR5cGU9PT0KMyYmVy5rZihuKSlyZXR1cm4hMDtyZXR1cm4hMX1aNShuLFcpe3RoaXMuWGIuWjUobixXKTtpZih0aGlzLk4pe3RoaXMuTj1uWChuLFcpO2ZvcihsZXQgRCBvZlsiYWNwbnMiLCJjcG4iLCJkYWlzdGF0ZSIsInNraXBzcSJdKXRoaXMuTlsic2V0Il0oRCxudWxsKX10aGlzLnJlcXVlc3RJZD1uLmdldCgicmVxX2lkIil9fTt2YXIgZHQ9Y2xhc3MgZXh0ZW5kcyBDantjb25zdHJ1Y3RvcihuLFcsRCxiLHYsaz0wKXtzdXBlcihuLFcsYik7dGhpcy52Sj1EO3RoaXMucmI9azt0aGlzLmluZGV4PXZ8fG5ldyBnLmpjfVcoKXtyZXR1cm4hMX1EKCl7cmV0dXJuITB9VEMoKXtyZXR1cm4hMX1TJCgpe3JldHVybiF0aGlzLnZKfVkoKXtyZXR1cm4gbmV3IHdrKFtuZXcgcUkoMSx0aGlzLHRoaXMuaW5pdFJhbmdlLCJnZXRNZXRhZGF0YVJlcXVlc3RJbmZvIildLHRoaXMudkopfWJkKCl7cmV0dXJuIG51bGx9ZSQobil7dGhpcy5YKG4pO3JldHVybiB0aGlzLkQoKSYmbi5KJiYhbi5hWj9uZXcgd2soW25ldyBxSShuLnR5cGUsbi5QSixuLnJhbmdlLCJsaXZlR2V0TmV4dFJlcXVlc3RJbmZvQnlTZWdtZW50IixuLmokLG4uc2VnbWVudFN0YXJ0VGltZSxuLlcsbi5OK24uSixOYU4sITApXSx0aGlzLmluZGV4LlYobi5qJCkpOnRoaXMuaihnayhuKSwhMSl9SyhuLFc9ITEpe249dGhpcy5pbmRleC5SMyhuKTtXJiYobj1NYXRoLm1pbih0aGlzLmluZGV4LngkKCksCm4rMSkpO3JldHVybiB0aGlzLmoobiwhMCl9RHQobil7RE8obil9WChuKXtyZXR1cm4gbi5KPT09MD8hMDp0aGlzLmluZGV4LngkKCk+bi5qJCYmdGhpcy5pbmRleC5aTygpPD1uLmokKzF9dXBkYXRlKG4sVyxEKXt0aGlzLmluZGV4LmFwcGVuZChuKTtQQSh0aGlzLmluZGV4LEQpO3RoaXMudHcoVywidXBkYXRlIil9Tigpe3JldHVybiB0aGlzLlMkKCk/ITA6c3VwZXIuTigpfWoobixXKXt2YXIgRD10aGlzLmluZGV4LlYobiksYj10aGlzLmluZGV4LmdldFN0YXJ0VGltZShuKSx2PXRoaXMuaW5kZXguZ2V0RHVyYXRpb24obiksaztXP3Y9az0wOms9dGhpcy5pbmZvLk5zPjA/dGhpcy5pbmZvLk5zKnY6MUUzO3JldHVybiBuZXcgd2soW25ldyBxSSgzLHRoaXMsdm9pZCAwLCJsaXZlQ3JlYXRlUmVxdWVzdEluZm9Gb3JTZWdtZW50IixuLGIsdiwwLGssIVcpXSxEKX1ISigpe3JldHVybiB0aGlzLlMkKCk/MDp0aGlzLmluaXRSYW5nZS5sZW5ndGh9bnUoKXtyZXR1cm4hMX10dyhuLFcpe3RoaXMuaW5kZXgudHcobiwKVyl9fTt2YXIgdmhiPWNsYXNze2NvbnN0cnVjdG9yKG4sVyxELGIsdil7dGhpcy5qJD1uO3RoaXMuc3RhcnRTZWNzPVc7dGhpcy5DZj1EO3RoaXMuTj1ifHxOYU47dGhpcy5KPXZ8fE5hTn19O3ZhciBCXz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuTj1bXTt0aGlzLko9bnVsbDt0aGlzLlY9MDt0aGlzLlc9W107dGhpcy5qPSExO3RoaXMuSz0iIjt0aGlzLlg9LTF9dXBkYXRlKG4pe3ZhciBXPXZvaWQgMDt0aGlzLkomJihXPXRoaXMuSik7e2xldCBBPW5ldyBCXzt2YXIgRD1BcnJheS5mcm9tKG4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlMiKSk7aWYoRC5sZW5ndGgpe3ZhciBiPStsVChuLCJ0aW1lc2NhbGUiKXx8MSx2PSgrRFswXS5nZXRBdHRyaWJ1dGUoInQiKXx8MCkvYixrPStsVChuLCJzdGFydE51bWJlciIpfHwwO0EuWD12O3ZhciBoPVc/Vy5zdGFydFNlY3MrVy5DZjowLHg9RGF0ZS5wYXJzZShDeihsVChuLCJ5dDpzZWdtZW50SW5nZXN0VGltZSIpKSkvMUUzO0Euaj1uLnBhcmVudEVsZW1lbnQudGFnTmFtZT09PSJTZWdtZW50VGVtcGxhdGUiO0EuaiYmKEEuSz1sVChuLCJtZWRpYSIpKTtuPVc/ay1XLmokOjE7QS5WPW4+MD8wOi1uKzE7Zm9yKEggb2YgRCl7bj0rSC5nZXRBdHRyaWJ1dGUoImQiKS8KYjtEPSgrSC5nZXRBdHRyaWJ1dGUoInl0OnNpZCIpfHwwKS9iO2xldCB5PStILmdldEF0dHJpYnV0ZSgiciIpfHwwO2ZvcihsZXQgVD0wO1Q8PXk7VCsrKXtpZihXJiZrPD1XLmokKXtrKys7Y29udGludWV9dmFyIEw9bmV3IHZoYihrLGgsbix4K0Qsdik7QS5OLnB1c2goTCk7Yjp7dmFyIGU9SDt2YXIgRz1iLHI9TC5zdGFydFNlY3M7TD1lLmdldEF0dHJpYnV0ZSgieXQ6Y3VlcG9pbnRUaW1lT2Zmc2V0Iik7dmFyIE49ZS5nZXRBdHRyaWJ1dGUoInl0OmN1ZXBvaW50RHVyYXRpb24iKTtpZighTHx8IU4pe2U9bnVsbDticmVhayBifUw9TnVtYmVyKEwpO3I9LUwvRytyO0c9TnVtYmVyKE4pL0c7Tj1lLmdldEF0dHJpYnV0ZSgieXQ6Y3VlcG9pbnRDb250ZXh0Iil8fG51bGw7bGV0IHo9ZS5nZXRBdHRyaWJ1dGUoInl0OmN1ZXBvaW50SWRlbnRpZmllciIpfHwiIjtlPWUuZ2V0QXR0cmlidXRlKCJ5dDpjdWVwb2ludEV2ZW50Iil8fCIiO2U9bmV3IGcubDMocixHLE4seixiTlVbZV18fCJ1bmtub3duIiwKTCl9ZSYmQS5XLnB1c2goZSk7aysrO2grPW47dis9bjt4Kz1uK0R9fUEuTi5sZW5ndGgmJihBLko9Zy5VTShBLk4pKX12YXIgSD1BfXRoaXMuVj1ILlY7dGhpcy5KPUguSnx8dGhpcy5KO2cuUTIodGhpcy5OLEguTik7Zy5RMih0aGlzLlcsSC5XKTt0aGlzLmo9SC5qO3RoaXMuSz1ILks7dGhpcy5YPT09LTEmJih0aGlzLlg9SC5nZXRTdHJlYW1UaW1lT2Zmc2V0KCkpfWdldFN0cmVhbVRpbWVPZmZzZXQoKXtyZXR1cm4gdGhpcy5YPT09LTE/MDp0aGlzLlh9fTt2YXIga0xDPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5YPVtdO3RoaXMuTj1udWxsO3RoaXMuSj17fTt0aGlzLlc9e319fTt2YXIgZ1M9Y2xhc3MgZXh0ZW5kcyBnLmpje2NvbnN0cnVjdG9yKHtyYjpuPTAsT1Q6Vz0hMSx1YjpEPTAsSXQ6Yj0wLEhQOnY9SW5maW5pdHksdWs6az0wLFhnOmg9ITEsRTM6eD0hMX09e30pe3N1cGVyKCk7dGhpcy5Ebj10aGlzLnFxPS0xO3RoaXMuTzg9bjt0aGlzLnViPUQ7dGhpcy5PVD1XO3RoaXMuSXQ9Yjt0aGlzLkhQPXY7dGhpcy51az1rOygodGhpcy5YZz1oKXx8aXNGaW5pdGUodikmJnRoaXMuSFA+MCkmJlcmJlp1JiZ0aGlzLnR3KCExLCJwb3N0TGl2ZSIpO3RoaXMuRTM9eH1VYygpe3JldHVybiB0aGlzLk84fU1JKG4sVyl7bj1GeCh0aGlzLG4pO3JldHVybiBuPj0wJiYoV3x8IXRoaXMuc2VnbWVudHNbbl0ucGVuZGluZyl9Wk8oKXtyZXR1cm4gdGhpcy5PVD90aGlzLnNlZ21lbnRzLmxlbmd0aD90aGlzLlgodGhpcy5MZigpKS5qJDotMTpzdXBlci5aTygpfUxmKCl7aWYodGhpcy5YZylyZXR1cm4gMDtpZighdGhpcy5PVClyZXR1cm4gc3VwZXIuTGYoKTtpZighdGhpcy5zZWdtZW50cy5sZW5ndGgpcmV0dXJuIDA7CnZhciBuPU1hdGgubWF4KGcuVU0odGhpcy5zZWdtZW50cykuZW5kVGltZS10aGlzLnViLDApO3JldHVybiB0aGlzLkl0PjAmJnRoaXMuWChuKS5qJDx0aGlzLkl0P3RoaXMuVyh0aGlzLkl0KS5zdGFydFRpbWU6bn1iUSgpe2lmKHRoaXMuRTMmJnRoaXMuRG4mJnRoaXMuRG4+MClyZXR1cm4gdGhpcy5Ebi8xRTM7aWYoIXRoaXMuc2VnbWVudHMubGVuZ3RoKXJldHVybiBzdXBlci5iUSgpO3ZhciBuPXRoaXMueCQoKTtpZighdGhpcy5PVHx8bjw9dGhpcy5zZWdtZW50c1t0aGlzLnNlZ21lbnRzLmxlbmd0aC0xXS5qJCluPXRoaXMuc2VnbWVudHNbdGhpcy5zZWdtZW50cy5sZW5ndGgtMV07ZWxzZXt2YXIgVz10aGlzLnNlZ21lbnRzW3RoaXMuc2VnbWVudHMubGVuZ3RoLTFdO249bmV3IFI0KG4sTWF0aC5tYXgoMCxXLnN0YXJ0VGltZS0oVy5qJC1uKSp0aGlzLk84KSx0aGlzLk84LDAsYHNxLyR7bn1gLHZvaWQgMCx2b2lkIDAsITApfXJldHVybiB0aGlzLlhnP01hdGgubWluKHRoaXMudWIsCm4uZW5kVGltZSk6bi5lbmRUaW1lfUg3KCl7cmV0dXJuIHRoaXMuT1Q/dGhpcy5zZWdtZW50cy5sZW5ndGg/dGhpcy54JCgpLXRoaXMuWk8oKSsxOjA6c3VwZXIuSDcoKX14JCgpe3ZhciBuPU1hdGgubWluKHRoaXMuSFAsTWF0aC5tYXgoc3VwZXIueCQoKSx0aGlzLnFxKSksVz10aGlzLnViKjFFMztXPXRoaXMuRG4+MCYmdGhpcy5EbjxXO3RoaXMuWGcmJnRoaXMudWI+MCYmdGhpcy5xcT4wJiYhVyYmKFc9dGhpcy5YKHRoaXMudWIpKSYmKG49TWF0aC5taW4oVy5qJC0xLG4pKTtyZXR1cm4gbn1PZygpe3JldHVybiB0aGlzLnNlZ21lbnRzLmxlbmd0aD90aGlzLnNlZ21lbnRzW3RoaXMuc2VnbWVudHMubGVuZ3RoLTFdOm51bGx9aihuKXt2YXIgVz1GeCh0aGlzLG4uaiQpO2lmKFc+PTApdGhpcy5zZWdtZW50c1tXXT1uO2Vsc2UgaWYodGhpcy5zZWdtZW50cy5zcGxpY2UoLShXKzEpLDAsbiksdGhpcy51ayYmbi5qJCUoMzAwL3RoaXMuTzgpPT09MCl7dmFyIEQ9dGhpcy5zZWdtZW50c1swXS5qJCwKYj1NYXRoLmZsb29yKHRoaXMudWsvdGhpcy5POCk7bj1uLmokLWI7Vz0tKFcrMSktYjtXPjAmJm4+RCYmKHRoaXMuc2VnbWVudHM9dGhpcy5zZWdtZW50cy5zbGljZShXKSl9fU8obil7bj1GeCh0aGlzLG4pO24+PTAmJnRoaXMuc2VnbWVudHMuc3BsaWNlKG4sMSl9VFgoKXtyZXR1cm4gdGhpcy5xcX1xZShuKXtyZXR1cm4gWnU/IXRoaXMuWSYmbj49MCYmdGhpcy54JCgpPD1uOnN1cGVyLnFlKG4pfVgobil7aWYoIXRoaXMuT1QpcmV0dXJuIHN1cGVyLlgobik7aWYoIXRoaXMuc2VnbWVudHMubGVuZ3RoKXJldHVybiBudWxsO3ZhciBXPXRoaXMuc2VnbWVudHNbdGhpcy5zZWdtZW50cy5sZW5ndGgtMV07aWYobjx0aGlzLnNlZ21lbnRzWzBdLnN0YXJ0VGltZSlXPU1hdGgubWF4KDAsdGhpcy5zZWdtZW50c1swXS5qJC1NYXRoLmNlaWwoKHRoaXMuc2VnbWVudHNbMF0uc3RhcnRUaW1lLW4pL3RoaXMuTzgpKTtlbHNlIGlmKG4+PVcuZW5kVGltZSlXPVcuaiQrTWF0aC5mbG9vcigobi1XLmVuZFRpbWUpLwp0aGlzLk84KzEpO2Vsc2V7Vz1EZSh0aGlzLnNlZ21lbnRzLGI9Pm48Yi5zdGFydFRpbWU/LTE6bj49Yi5lbmRUaW1lPzE6MCk7CmlmKFc+PTApcmV0dXJuIHRoaXMuc2VnbWVudHNbV107dmFyIEQ9LShXKzEpO1c9dGhpcy5zZWdtZW50c1tELTFdO0Q9dGhpcy5zZWdtZW50c1tEXTtXPU1hdGguZmxvb3IoKG4tVy5lbmRUaW1lKS8oKEQuc3RhcnRUaW1lLVcuZW5kVGltZSkvKEQuaiQtVy5qJC0xKSkrMSkrVy5qJH1yZXR1cm4gdGhpcy5XKFcpfVcobil7aWYoIXRoaXMuT1QpcmV0dXJuIHN1cGVyLlcobik7aWYoIXRoaXMuc2VnbWVudHMubGVuZ3RoKXJldHVybiBudWxsO3ZhciBXPUZ4KHRoaXMsbik7aWYoVz49MClyZXR1cm4gdGhpcy5zZWdtZW50c1tXXTt2YXIgRD0tKFcrMSk7Vz10aGlzLk84O2lmKEQ9PT0wKXZhciBiPU1hdGgubWF4KDAsdGhpcy5zZWdtZW50c1swXS5zdGFydFRpbWUtKHRoaXMuc2VnbWVudHNbMF0uaiQtbikqVyk7ZWxzZSBEPT09dGhpcy5zZWdtZW50cy5sZW5ndGg/KGI9dGhpcy5zZWdtZW50c1t0aGlzLnNlZ21lbnRzLmxlbmd0aC0xXSxiPWIuZW5kVGltZSsobi1iLmokLTEpKlcpOihiPQp0aGlzLnNlZ21lbnRzW0QtMV0sVz10aGlzLnNlZ21lbnRzW0RdLFc9KFcuc3RhcnRUaW1lLWIuZW5kVGltZSkvKFcuaiQtYi5qJC0xKSxiPWIuZW5kVGltZSsobi1iLmokLTEpKlcpO3JldHVybiBuZXcgUjQobixiLFcsMCxgc3EvJHtufWAsdm9pZCAwLHZvaWQgMCwhMCl9fSxadT0hMTt2YXIgV1Q9Y2xhc3MgZXh0ZW5kcyBkdHtjb25zdHJ1Y3RvcihuLFcsRD17fSl7c3VwZXIobixXLCIiLHZvaWQgMCx2b2lkIDAsRC5yYnx8MCk7dGhpcy5pbmRleD1uZXcgZ1MoRCl9VEMoKXtyZXR1cm4hMH1OKCl7cmV0dXJuITB9WChuKXtyZXR1cm4gdGhpcy5EKCkmJm4uSiYmIW4uYVp8fCFuLlBKLmluZGV4LnFlKG4uaiQpfVkoKXt9SyhuLFc9ITEpe3JldHVybiB0eXBlb2YgbiE9PSJudW1iZXIifHxpc0Zpbml0ZShuKT9zdXBlci5LKG4sVyk6bmV3IHdrKFtuZXcgcUkoMyx0aGlzLHZvaWQgMCwibWxMaXZlR2V0UmVxSW5mb1N0dWJGb3JUaW1lIiwtMSx2b2lkIDAsdGhpcy5yYix2b2lkIDAsdGhpcy5yYip0aGlzLmluZm8uTnMpXSwiIil9aihuLFcpe2lmKHRoaXMuaW5kZXguTUkobikpcmV0dXJuIHN1cGVyLmoobixXKTt2YXIgRD10aGlzLmluZGV4LmdldFN0YXJ0VGltZShuKSxiPU1hdGgucm91bmQodGhpcy5yYip0aGlzLmluZm8uTnMpLHY9dGhpcy5yYjtXJiYodj1iPTApO3JldHVybiBuZXcgd2soW25ldyBxSSgzLAp0aGlzLHZvaWQgMCwibWxMaXZlQ3JlYXRlUmVxSW5mb0ZvclNlZyIsbixELHYsdm9pZCAwLGIsIVcpXSxuPj0wP2BzcS8ke259YDoiIil9fTt2YXIgcnQ9Y2xhc3MgZXh0ZW5kcyBDantjb25zdHJ1Y3RvcihuLFcpe3N1cGVyKG4sVyk7dGhpcy5pbmRleD1uZXcgZy5qYzt0aGlzLmluZGV4LnR3KCExLCJkIil9Vygpe3JldHVybiExfUQoKXtyZXR1cm4hMX1UQygpe3JldHVybiExfVkoKXtyZXR1cm4gbmV3IHdrKFtuZXcgcUkoMSx0aGlzLHZvaWQgMCwib3RmSW5pdCIpXSwic3EvMCIpfWJkKCl7cmV0dXJuIG51bGx9ZSQobil7dGhpcy5YKG4pO3JldHVybiBNSSh0aGlzLGdrKG4pLCExKX1LKG4sVz0hMSl7bj10aGlzLmluZGV4LlIzKG4pO1cmJihuPU1hdGgubWluKHRoaXMuaW5kZXgueCQoKSxuKzEpKTtyZXR1cm4gTUkodGhpcyxuLCEwKX1EdChuKXtuLmluZm8udHlwZT09PTEmJih0aGlzLkp8fCh0aGlzLko9JE0obi5KKSksbi5OJiZuLk4udXJpPT09Imh0dHA6Ly95b3V0dWJlLmNvbS9zdHJlYW1pbmcvb3RmL2R1cmF0aW9ucy8xMTIwMTUiJiZuR1ModGhpcyxuLk4pKX1YKG4pe3JldHVybiBuLko9PT0wPyEwOnRoaXMuaW5kZXgueCQoKT4Kbi5qJCYmdGhpcy5pbmRleC5aTygpPD1uLmokKzF9SEooKXtyZXR1cm4gMH1udSgpe3JldHVybiExfX07dmFyIGE0LGhoYixEODIsbk0sV0t3O2cuVnM9Y2xhc3N7Y29uc3RydWN0b3Iobil7dGhpcy50YWc9bn19O2E0PW5ldyBNYXA7aGhiPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5OPW5ldyBNYXB9fTtEODI9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLk49MTA7dGhpcy5KPURhdGUubm93KCl9fTtuTT1uZXcgTWFwO1dLdz1uZXcgaGhiO3ZhciBiOD1jbGFzc3tjb25zdHJ1Y3RvcihuLFcpe3RoaXMuaW5mbz1uO3RoaXMuSj1XO3RoaXMuTj1udWxsO3RoaXMuWD10aGlzLlc9LTE7dGhpcy50aW1lc3RhbXBPZmZzZXQ9MDt0aGlzLmlzTG9ja2VkPXRoaXMuSz0hMTt0aGlzLlY9dGhpcy5pbmZvLlBKLlMkKCkmJiF0aGlzLmluZm8uTn1qKG4sVz0hMSxEPTApe2lmKHRoaXMuaXNMb2NrZWR8fG4uaXNMb2NrZWR8fCFiVCh0aGlzLmluZm8sbi5pbmZvKXx8dGhpcy5pbmZvLmFaKXJldHVybiBudWxsO2lmKEQpe2lmKHRoaXMuSi50b3RhbExlbmd0aCtuLkoudG90YWxMZW5ndGg+RClyZXR1cm4gbnVsbH1lbHNlIGlmKFcmJihXPXRoaXMuSixEPW4uSixXPSEoRC5OLmxlbmd0aD94TShXLEQuTlswXSk6MSkpLFcpcmV0dXJuIG51bGw7Vz1uZXcgcUkodGhpcy5pbmZvLnR5cGUsdGhpcy5pbmZvLlBKLHRoaXMuaW5mby5yYW5nZSx0aGlzLmluZm8uWSx0aGlzLmluZm8uaiQsdGhpcy5pbmZvLnNlZ21lbnRTdGFydFRpbWUsdGhpcy5pbmZvLlcsCnRoaXMuaW5mby5OLHRoaXMuaW5mby5KLHRoaXMuaW5mby5hWix0aGlzLmluZm8udkQsdGhpcy5pbmZvLmNsaXBJZCx0aGlzLmluZm8uRCk7UF8oVyxuLmluZm8pO0Q9bmV3IFM1O2U1KEQsdGhpcy5KKTtlNShELG4uSik7Vz1uZXcgYjgoVyxEKTtXLk4hPW51bGwmJm4uTiE9bnVsbCYmZy5jXygiZGFzaCIsNDE0NjI3OTU3LGBtZXJnZWQgc2xpY2UgZW1zZyBvdmVycmlkZGVuOyBwcmV2OiAke1cuTi5mSygpfSBuZXh0OiAke24uTi5mSygpfWApO1cuTj1uLk58fHRoaXMuTjtXLlc9dGhpcy5XIT09LTE/dGhpcy5XOm4uVztXLlg9dGhpcy5YIT09LTE/dGhpcy5YOm4uWDtyZXR1cm4gV319O2cuQkM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmNvdW50PTA7dGhpcy5KPTE7dGhpcy5XPSExO3RoaXMub2Zmc2V0cz1uZXcgRmxvYXQ2NEFycmF5KDEyOCk7dGhpcy5zdGFydFRpY2tzPW5ldyBGbG9hdDY0QXJyYXkoMTI4KX1NSShuKXtyZXR1cm4gbjw9dGhpcy54JCgpfU4obil7cmV0dXJuIHRoaXMub2Zmc2V0c1tuXX1nZXRTdGFydFRpbWUobil7cmV0dXJuIHRoaXMuc3RhcnRUaWNrc1tuXS90aGlzLkp9akUobil7cmV0dXJuIHRoaXMuZ2V0U3RhcnRUaW1lKG4pK3RoaXMuZ2V0RHVyYXRpb24obil9aEMoKXtyZXR1cm4gTmFOfWdldER1cmF0aW9uKG4pe249dGhpcy5EKG4pO3JldHVybiBuPj0wP24vdGhpcy5KOi0xfUQobil7cmV0dXJuIG4rMTx0aGlzLmNvdW50fHx0aGlzLlc/dGhpcy5zdGFydFRpY2tzW24rMV0tdGhpcy5zdGFydFRpY2tzW25dOi0xfVVjKCl7cmV0dXJuIDB9Wk8oKXtyZXR1cm4gMH14JCgpe3JldHVybiB0aGlzLmNvdW50LTF9cWUobil7cmV0dXJuIHRoaXMueCQoKT09PQpuJiZuPj0wfWJRKCl7cmV0dXJuIHRoaXMuVz90aGlzLnN0YXJ0VGlja3NbdGhpcy5jb3VudF0vdGhpcy5KOk5hTn1MZigpe3JldHVybiAwfUg3KCl7cmV0dXJuIHRoaXMuY291bnR9Vigpe3JldHVybiIifVIzKG4pe24qPXRoaXMuSjtuPWcuVzQodGhpcy5zdGFydFRpY2tzLnN1YmFycmF5KDAsdGhpcy5jb3VudCksbik7cmV0dXJuIG4+PTA/bjpNYXRoLm1heCgwLC1uLTIpfWlzTG9hZGVkKCl7cmV0dXJuIHRoaXMueCQoKT49MH1YZChuLFcpe2lmKG4+PXRoaXMueCQoKSlyZXR1cm4gMDt2YXIgRD0wO2ZvcihXPXRoaXMuZ2V0U3RhcnRUaW1lKG4pK1c7bjx0aGlzLngkKCkmJlc+dGhpcy5nZXRTdGFydFRpbWUobik7bisrKUQ9TWF0aC5tYXgoRCx0TSh0aGlzLG4pL3RoaXMuZ2V0RHVyYXRpb24obikpO3JldHVybiBEfXJlc2l6ZShuKXtuKz0yO3ZhciBXPXRoaXMub2Zmc2V0czt0aGlzLm9mZnNldHM9bmV3IEZsb2F0NjRBcnJheShuKzEpO3ZhciBEPXRoaXMuc3RhcnRUaWNrczt0aGlzLnN0YXJ0VGlja3M9Cm5ldyBGbG9hdDY0QXJyYXkobisxKTtmb3Iobj0wO248dGhpcy5jb3VudCsxO24rKyl0aGlzLm9mZnNldHNbbl09V1tuXSx0aGlzLnN0YXJ0VGlja3Nbbl09RFtuXX1jYXAobixXKXskWCh0aGlzKTt0aGlzLlc9ITA7dGhpcy5zdGFydFRpY2tzW3RoaXMuY291bnRdPVc7dGhpcy5vZmZzZXRzW3RoaXMuY291bnRdPW59fTtnLkJDLnByb3RvdHlwZS5VNz1XWigyKTt2YXIgc2s9Y2xhc3MgZXh0ZW5kcyBDantjb25zdHJ1Y3RvcihuLFcsRCxiKXtzdXBlcihuLFcsRCxiKTt0aGlzLmo9bnVsbDt0aGlzLmluZGV4PW5ldyBnLkJDfVkobixXKXt2YXIgRD1uZXcgcUkoMix0aGlzLHRoaXMuaW5kZXhSYW5nZSwiaW5kZXhJbmZvIix2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsVyksYj1bbmV3IHFJKDEsdGhpcyx0aGlzLmluaXRSYW5nZSwiaW5pdEluZm8iLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCxXKSxEXTt0aGlzLmluZm8uY29udGVudExlbmd0aD4wJiZuJiYoRD1ELnJhbmdlLmVuZCsxLG49TWF0aC5taW4obix0aGlzLmluZm8uY29udGVudExlbmd0aC1EKSxuPjAmJmIucHVzaChuZXcgcUkoNCx0aGlzLFdfKEQsbiksInRiZFJhbmdlIix2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsVykpKTtyZXR1cm4gbmV3IHdrKGIpfUR0KG4pe2lmKG4uaW5mby50eXBlPT09CjEpe2lmKHRoaXMuSilyZXR1cm47dGhpcy5KPSRNKG4uSil9ZWxzZSBpZihuLmluZm8udHlwZT09PTIpe2lmKHRoaXMuanx8dGhpcy5pbmRleC54JCgpPj0wKXJldHVybjtpZihnLlJCKHRoaXMuaW5mbykpe3ZhciBXPXRoaXMuaW5kZXgsRD1nLldSKG4pO249bi5pbmZvLnJhbmdlLnN0YXJ0O3ZhciBiPWcubnMoRCwwLDE5MzYyODY4NDApO0Q9THMoYik7Vy5KPUQudGltZXNjYWxlO3ZhciB2PUQuZjg7Vy5vZmZzZXRzWzBdPUQuTm8rbitiLnNpemU7Vy5zdGFydFRpY2tzWzBdPXY7Vy5XPSEwO249RC5xZy5sZW5ndGg7Zm9yKHY9MDt2PG47disrKXJ5KFcsRC5Ic1t2XSxELnFnW3ZdKX1lbHNlIHRoaXMuaj1nLldSKG4pfWlmKHRoaXMuaW5mby5xSCgpJiZ0aGlzLkomJnRoaXMuail7bj1uZXcgRGF0YVZpZXcodGhpcy5KLmJ1ZmZlcik7Vz10aGlzLmluZGV4O3Y9dGhpcy5qO0Q9dGhpcy5pbmRleFJhbmdlLmVuZDtiPW5ldyB0WShuKTtuPWI7Yj1uLnBvczt2YXIgaz17Qzk6MUU2LG84OjFFOSwKZHVyYXRpb246MCx4TTowLGJtOjB9O2lmKHNZKG4sNDA4MTI1NTQzKSlpZihrLnhNPU5rKG4sITApLGsuYm09bi5zdGFydCtuLnBvcyxzWShuLDM1NzE0OTAzMCkpe2Zvcih2YXIgaD1yQShuKTshSHcoaCk7KXt2YXIgeD1OayhoLCExKTt4PT09MjgwNzcyOT9rLkM5PWZzKGgpOng9PT0yODA3NzMwP2subzg9ZnMoaCk6eD09PTE3NTQ1P2suZHVyYXRpb249SUIoaCk6SlkoaCl9bi5wb3M9YjtuPWt9ZWxzZSBuLnBvcz1iLG49bnVsbDtlbHNlIG4ucG9zPWIsbj1udWxsO2lmKG4hPT1udWxsKXtXLko9bi5vOC9uLkM5O2I9bmV3IHRZKHYpO3Y9YjtoPW4uYm07Yj12LnBvcztrPVtdO2lmKHNZKHYsNDc1MjQ5NTE1KSl7Zm9yKHg9ckEodik7c1koeCwxODcpOyl7bGV0IEw9ckEoeCk7aWYoIXNZKEwsMTc5KSljb250aW51ZTtsZXQgZT1mcyhMKTtpZighc1koTCwxODMpKWNvbnRpbnVlO0w9ckEoTCk7bGV0IEc9aDtmb3IoO3NZKEwsMjQxKTspRz1mcyhMKStoO2sucHVzaCh7Zm86RyxuODplfSl9aWYoay5sZW5ndGg+CjAmJkQ9PT1rWzBdLmZvKWZvcihEPTA7RDxrLmxlbmd0aDtEKyspa1tEXS5mbys9MTt2LnBvcz1iO0Q9a31lbHNlIHYucG9zPWIsRD1udWxsO2lmKEQhPT1udWxsKXtmb3IobGV0IEwgb2YgRClEPVcsdj1MLmZvLGI9TC5uOCwkWChEKSxELm9mZnNldHNbRC5jb3VudF09dixELnN0YXJ0VGlja3NbRC5jb3VudF09YixELmNvdW50Kys7Vy5jYXAobi54TStuLmJtLG4uZHVyYXRpb24pfX10aGlzLmo9bnVsbH19R0Mobil7dmFyIFc9dGhpcy5WUShuLmluZm8pLEQ9bi5pbmZvLnJhbmdlLnN0YXJ0K24uaW5mby5OLGI9W107Zm9yKGxldCB2PTA7djxXLmxlbmd0aDt2Kyspe2xldCBrPWdkKG4uSixXW3ZdLnJhbmdlLnN0YXJ0K1dbdl0uTi1ELFdbdl0uSik7Yi5wdXNoKG5ldyBiOChXW3ZdLGspKX1yZXR1cm4gYn1WUShuKXtmb3IodmFyIFc9bi5yYW5nZS5zdGFydCtuLk4sRD0wO0Q8dGhpcy5pbmRleC54JCgpJiZXPj10aGlzLmluZGV4Lk4oRCsxKTspRCsrO3JldHVybiBzTih0aGlzLEQsVywKbi5KKS5Bd31YKG4pe24uVigpO3JldHVybiB0aGlzLk4oKT8hMDpuLnJhbmdlLmVuZCsxPHRoaXMuaW5mby5jb250ZW50TGVuZ3RofWJkKG4sVyl7dGhpcy5YKG4pO2lmKCF0aGlzLk4oKSlyZXR1cm4gVz1XXyhuLnJhbmdlLmVuZCsxLFcpLFcuZW5kKzE+dGhpcy5pbmZvLmNvbnRlbnRMZW5ndGgmJihXPW5ldyBhQihXLnN0YXJ0LHRoaXMuaW5mby5jb250ZW50TGVuZ3RoLTEpKSxuZXcgd2soW25ldyBxSSg0LG4uUEosVywiZ2V0TmV4dFJlcXVlc3RJbmZvQnlMZW5ndGgiLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCxuLmNsaXBJZCldKTtuLnR5cGU9PT00JiYobj10aGlzLlZRKG4pLG49bltuLmxlbmd0aC0xXSk7dmFyIEQ9MCxiPW4ucmFuZ2Uuc3RhcnQrbi5OK24uSjtuLnR5cGU9PT0zJiYobi5WKCksRD1uLmokLGI9PT1uLnJhbmdlLmVuZCsxJiYoRCs9MSkpO3JldHVybiBzTih0aGlzLEQsYixXKX1lJCgpe3JldHVybiBudWxsfUsobixXPQohMSl7bj10aGlzLmluZGV4LlIzKG4pO1cmJihuPU1hdGgubWluKHRoaXMuaW5kZXgueCQoKSxuKzEpKTtyZXR1cm4gc04odGhpcyxuLHRoaXMuaW5kZXguTihuKSwwKX1XKCl7cmV0dXJuITB9RCgpe3JldHVybiEwfVRDKCl7cmV0dXJuITF9SEooKXtyZXR1cm4gdGhpcy5pbmRleFJhbmdlLmxlbmd0aCt0aGlzLmluaXRSYW5nZS5sZW5ndGh9bnUoKXtyZXR1cm4gdGhpcy5pbmRleFJhbmdlJiZ0aGlzLmluaXRSYW5nZSYmdGhpcy5pbml0UmFuZ2UuZW5kKzE9PT10aGlzLmluZGV4UmFuZ2Uuc3RhcnQ/ITA6ITF9fTt2YXIgQU09Y2xhc3N7Y29uc3RydWN0b3Iobj0wLFc9MCxEPSJTUEFUSUFMX0FVRElPX1RZUEVfTk9ORSIsYj0hMSx2LGssaD0iQVVESU9fUVVBTElUWV9VTktOT1dOIix4PSExKXt0aGlzLnNhbXBsZVJhdGU9bjt0aGlzLm51bUNoYW5uZWxzPVc7dGhpcy5zcGF0aWFsQXVkaW9UeXBlPUQ7dGhpcy5XPWI7dGhpcy5YPXY7dGhpcy5KPWs7dGhpcy5hdWRpb1F1YWxpdHk9aDt0aGlzLk49eH1pc011bHRpQ2hhbm5lbEF1ZGlvKCl7cmV0dXJuIHRoaXMubnVtQ2hhbm5lbHM+Mn19O3ZhciBLTT1jbGFzc3tjb25zdHJ1Y3RvcihuLFcsRCxiPSIiLHY9IiIsaz0iIil7dGhpcy5kaXNwbGF5TmFtZT1uO3RoaXMudnNzSWQ9Vzt0aGlzLmxhbmd1YWdlQ29kZT1EO3RoaXMua2luZD1iO3RoaXMueHRhZ3M9djt0aGlzLmlkPWt9fTt2YXIgciR4PXtDT0xPUl9QUklNQVJJRVNfQlQ3MDk6ImJ0NzA5IixDT0xPUl9QUklNQVJJRVNfQlQyMDIwOiJidDIwMjAiLENPTE9SX1BSSU1BUklFU19VTktOT1dOOm51bGwsQ09MT1JfUFJJTUFSSUVTX1VOU1BFQ0lGSUVEOm51bGx9LGJxVT17Q09MT1JfVFJBTlNGRVJfQ0hBUkFDVEVSSVNUSUNTX0JUNzA5OiJidDcwOSIsQ09MT1JfVFJBTlNGRVJfQ0hBUkFDVEVSSVNUSUNTX0JUMjAyMF8xMDoiYnQyMDIwIixDT0xPUl9UUkFOU0ZFUl9DSEFSQUNURVJJU1RJQ1NfU01QVEVTVDIwODQ6InNtcHRlMjA4NCIsQ09MT1JfVFJBTlNGRVJfQ0hBUkFDVEVSSVNUSUNTX0FSSUJfU1REX0I2NzoiYXJpYi1zdGQtYjY3IixDT0xPUl9UUkFOU0ZFUl9DSEFSQUNURVJJU1RJQ1NfVU5LTk9XTjpudWxsLENPTE9SX1RSQU5TRkVSX0NIQVJBQ1RFUklTVElDU19VTlNQRUNJRklFRDpudWxsfTt2YXIgQVQ9e1dJRFRIOntuYW1lOiJ3aWR0aCIsdmlkZW86ITAsdmFsaWQ6NjQwLHZHOjk5OTk5fSxIRUlHSFQ6e25hbWU6ImhlaWdodCIsdmlkZW86ITAsdmFsaWQ6MzYwLHZHOjk5OTk5fSxGUkFNRVJBVEU6e25hbWU6ImZyYW1lcmF0ZSIsdmlkZW86ITAsdmFsaWQ6MzAsdkc6OTk5OX0sQklUUkFURTp7bmFtZToiYml0cmF0ZSIsdmlkZW86ITAsdmFsaWQ6M0U1LHZHOjJFOX0sRU9URjp7bmFtZToiZW90ZiIsdmlkZW86ITAsdmFsaWQ6ImJ0NzA5Iix2RzoiY2F0YXZpc2lvbiJ9LENIQU5ORUxTOntuYW1lOiJjaGFubmVscyIsdmlkZW86ITEsdmFsaWQ6Mix2Rzo5OX0sQ1JZUFRPQkxPQ0tGT1JNQVQ6e25hbWU6ImNyeXB0b2Jsb2NrZm9ybWF0Iix2aWRlbzohMCx2YWxpZDoic3Vic2FtcGxlIix2RzoiaW52YWxpZGZvcm1hdCJ9LERFQ09ERVRPVEVYVFVSRTp7bmFtZToiZGVjb2RlLXRvLXRleHR1cmUiLHZpZGVvOiEwLHZhbGlkOiJmYWxzZSIsdkc6Im5vcGUifSxBVjFfQ09ERUNTOntuYW1lOiJjb2RlY3MiLAp2aWRlbzohMCx2YWxpZDoiYXYwMS4wLjA1TS4wOCIsdkc6ImF2OTkuMC4wNU0uMDgifSxFWFBFUklNRU5UQUw6e25hbWU6ImV4cGVyaW1lbnRhbCIsdmlkZW86ITAsdmFsaWQ6ImFsbG93ZWQiLHZHOiJpbnZhbGlkIn0sVFVOTkVMTU9ERTp7bmFtZToidHVubmVsbW9kZSIsdmlkZW86ITAsdmFsaWQ6InRydWUiLHZHOiJmYWxzZSJ9fTt2YXIgWWc9e1siMCJdOiJmIixbIjE2MCJdOiJoIixbIjEzMyJdOiJoIixbIjEzNCJdOiJoIixbIjEzNSJdOiJoIixbIjEzNiJdOiJoIixbIjEzNyJdOiJoIixbIjI2NCJdOiJoIixbIjI2NiJdOiJoIixbIjEzOCJdOiJoIixbIjI5OCJdOiJoIixbIjI5OSJdOiJoIixbIjMwNCJdOiJoIixbIjMwNSJdOiJoIixbIjIxNCJdOiJoIixbIjIxNiJdOiJoIixbIjM3NCJdOiJoIixbIjM3NSJdOiJoIixbIjE0MCJdOiJhIixbIjE0MSJdOiJhIixbIjMyNyJdOiJzYSIsWyIyNTgiXToibSIsWyIzODAiXToibWFjMyIsWyIzMjgiXToibWVhYzMiLFsiMTYxIl06IkgiLFsiMTQyIl06IkgiLFsiMTQzIl06IkgiLFsiMTQ0Il06IkgiLFsiMjIyIl06IkgiLFsiMjIzIl06IkgiLFsiMTQ1Il06IkgiLFsiMjI0Il06IkgiLFsiMjI1Il06IkgiLFsiMTQ2Il06IkgiLFsiMjI2Il06IkgiLFsiMjI3Il06IkgiLFsiMTQ3Il06IkgiLFsiMzg0Il06IkgiLFsiMzc2Il06IkgiLFsiMzg1Il06IkgiLFsiMzc3Il06IkgiLApbIjE0OSJdOiJBIixbIjI2MSJdOiJNIixbIjM4MSJdOiJNQUMzIixbIjMyOSJdOiJNRUFDMyIsWyI1OTgiXToiOSIsWyIyNzgiXToiOSIsWyIyNDIiXToiOSIsWyIyNDMiXToiOSIsWyIyNDQiXToiOSIsWyI3NzUiXToiOSIsWyI3NzYiXToiOSIsWyI3NzciXToiOSIsWyI3NzgiXToiOSIsWyI3NzkiXToiOSIsWyI3ODAiXToiOSIsWyI3ODEiXToiOSIsWyI3ODIiXToiOSIsWyI3ODMiXToiOSIsWyIyNDciXToiOSIsWyIyNDgiXToiOSIsWyIzNTMiXToiOSIsWyIzNTUiXToiOSIsWyIzNTYiXToiOSIsWyIyNzEiXToiOSIsWyI1NzciXToiOSIsWyIzMTMiXToiOSIsWyI1NzkiXToiOSIsWyIyNzIiXToiOSIsWyIzMDIiXToiOSIsWyIzMDMiXToiOSIsWyI0MDciXToiOSIsWyI0MDgiXToiOSIsWyIzMDgiXToiOSIsWyIzMTUiXToiOSIsWyIzMzAiXToiOWgiLFsiMzMxIl06IjloIixbIjMzMiJdOiI5aCIsWyIzMzMiXToiOWgiLFsiMzM0Il06IjloIixbIjMzNSJdOiI5aCIsWyIzMzYiXToiOWgiLApbIjMzNyJdOiI5aCIsWyIzMzgiXToic28iLFsiNjAwIl06Im8iLFsiMjUwIl06Im8iLFsiMjUxIl06Im8iLFsiNzc0Il06Im8iLFsiMTk0Il06IioiLFsiMTk1Il06IioiLFsiMjIwIl06IioiLFsiMjIxIl06IioiLFsiMTk2Il06IioiLFsiMTk3Il06IioiLFsiMjc5Il06IigiLFsiMjgwIl06IigiLFsiMzE3Il06IigiLFsiMzE4Il06IigiLFsiMjczIl06IigiLFsiMjc0Il06IigiLFsiMzU3Il06IigiLFsiMzU4Il06IigiLFsiMjc1Il06IigiLFsiMzU5Il06IigiLFsiMzYwIl06IigiLFsiMjc2Il06IigiLFsiNTgzIl06IigiLFsiNTg0Il06IigiLFsiMzE0Il06IigiLFsiNTg1Il06IigiLFsiNTYxIl06IigiLFsiMjc3Il06IigiLFsiMzYxIl06IihoIixbIjM2MiJdOiIoaCIsWyIzNjMiXToiKGgiLFsiMzY0Il06IihoIixbIjM2NSJdOiIoaCIsWyIzNjYiXToiKGgiLFsiNTkxIl06IihoIixbIjU5MiJdOiIoaCIsWyIzNjciXToiKGgiLFsiNTg2Il06IihoIixbIjU4NyJdOiIoaCIsClsiMzY4Il06IihoIixbIjU4OCJdOiIoaCIsWyI1NjIiXToiKGgiLFsiNDA5Il06IigiLFsiNDEwIl06IigiLFsiNDExIl06IigiLFsiNDEyIl06IigiLFsiNTU3Il06IigiLFsiNTU4Il06IigiLFsiMzk0Il06IjEiLFsiMzk1Il06IjEiLFsiMzk2Il06IjEiLFsiMzk3Il06IjEiLFsiMzk4Il06IjEiLFsiMzk5Il06IjEiLFsiNzIwIl06IjEiLFsiNzIxIl06IjEiLFsiNDAwIl06IjEiLFsiNDAxIl06IjEiLFsiNTcxIl06IjEiLFsiNDAyIl06IjEiLFsiNjk0Il06IjFoIixbIjY5NSJdOiIxaCIsWyI2OTYiXToiMWgiLFsiNjk3Il06IjFoIixbIjY5OCJdOiIxaCIsWyI2OTkiXToiMWgiLFsiNzAwIl06IjFoIixbIjcwMSJdOiIxaCIsWyI3MDIiXToiMWgiLFsiNzAzIl06IjFoIixbIjM4NiJdOiIzIixbIjM4NyJdOiJ3IixbIjQwNiJdOiI2IixbIjc4NyJdOiIxIixbIjc4OCJdOiIxIixbIjU0OCJdOiIxZSIsWyI1NDkiXToiMWUiLFsiNTUwIl06IjFlIixbIjU1MSJdOiIxZSIsWyI4MDkiXToiMWUiLApbIjgxMCJdOiIxZSIsWyI1NTIiXToiMWUiLFsiODExIl06IjFlIixbIjgxMiJdOiIxZSIsWyI1NTMiXToiMWUiLFsiODEzIl06IjFlIixbIjgxNCJdOiIxZSIsWyI1NTQiXToiMWUiLFsiODE1Il06IjFlIixbIjgxNiJdOiIxZSIsWyI1NTUiXToiMWUiLFsiODE3Il06IjFlIixbIjgxOCJdOiIxZSIsWyI1NzIiXToiMWUiLFsiNTU2Il06IjFlIixbIjY0NSJdOiIoIixbIjY0NiJdOiIoIixbIjY0NyJdOiIoIixbIjY0OCJdOiIoIixbIjY0OSJdOiIoIixbIjY1MCJdOiIoIixbIjY1MSJdOiIoIixbIjY1MiJdOiIoIixbIjY1MyJdOiIoIixbIjY1NCJdOiIoIixbIjY1NSJdOiIoIixbIjY1NiJdOiIoIixbIjY1NyJdOiIoIixbIjY1OCJdOiIoIixbIjY1OSJdOiIoIixbIjY2MCJdOiIoIixbIjY2MSJdOiIoIixbIjY2MiJdOiIoIixbIjY2MyJdOiIoIixbIjY2NCJdOiIoIixbIjY2NSJdOiIoIixbIjY2NiJdOiIoIixbIjY2NyJdOiIoIixbIjY2OCJdOiIoIixbIjY2OSJdOiIoIixbIjY3MCJdOiIoIiwKWyI2NzEiXToiKCIsWyI2NzIiXToiKCIsWyI2NzMiXToiKCIsWyI2NzQiXToiKGgiLFsiNjc1Il06IihoIixbIjY3NiJdOiIoaCIsWyI2NzciXToiKGgiLFsiNjc4Il06IihoIixbIjY3OSJdOiIoaCIsWyI2ODAiXToiKGgiLFsiNjgxIl06IihoIixbIjY4MiJdOiIoaCIsWyI2ODMiXToiKGgiLFsiNjg0Il06IihoIixbIjY4NSJdOiIoaCIsWyI2ODYiXToiKGgiLFsiNjg3Il06IihoIixbIjY4OCJdOiJBIixbIjY4OSJdOiJBIixbIjY5MCJdOiJBIixbIjY5MSJdOiJNRUFDMyIsWyI3NzMiXToiaSIsWyI4MDYiXToiSSIsWyI4MDUiXToiSSIsWyI4MjkiXToiOSIsWyI4MzAiXToiOSIsWyI4MzEiXToiOSIsWyI4MzIiXToiOSIsWyI4MzMiXToiOSIsWyI4MzQiXToiOSIsWyI4MzUiXToiOSIsWyI4MzYiXToiOSIsWyI4OTIiXToiOSIsWyI4OTMiXToiOSIsWyI4MzciXToiOSIsWyI4MzgiXToiOSIsWyI4MzkiXToiOSIsWyI4NDAiXToiOSIsWyI4NDEiXToiKCIsWyI4NDIiXToiKCIsWyI4NDMiXToiKCIsClsiODQ0Il06IigiLFsiODQ1Il06IigiLFsiODQ2Il06IigiLFsiODQ3Il06IigiLFsiODQ4Il06IigiLFsiODk0Il06IigiLFsiODk1Il06IigiLFsiODQ5Il06IigiLFsiODUwIl06IigiLFsiODUxIl06IigiLFsiODUyIl06IigiLFsiODY1Il06IjkiLFsiODY2Il06IjkiLFsiODY3Il06IjkiLFsiODY4Il06IjkiLFsiODY5Il06IjkiLFsiODcwIl06IjkiLFsiODcxIl06IjkiLFsiODcyIl06IjkiLFsiODk2Il06IjkiLFsiODk3Il06IjkiLFsiODczIl06IjkiLFsiODc0Il06IjkiLFsiODc1Il06IjkiLFsiODc2Il06IjkiLFsiODc3Il06IigiLFsiODc4Il06IigiLFsiODc5Il06IigiLFsiODgwIl06IigiLFsiODgxIl06IigiLFsiODgyIl06IigiLFsiODgzIl06IigiLFsiODg0Il06IigiLFsiODk4Il06IigiLFsiODk5Il06IigiLFsiODg1Il06IigiLFsiODg2Il06IigiLFsiODg3Il06IigiLFsiODg4Il06IigiLFsiOTAwIl06IjIiLFsiOTAxIl06IjIiLFsiOTAyIl06IjIiLApbIjkwMyJdOiIyIixbIjkwNCJdOiIyIixbIjkwNSJdOiIyIixbIjkwNiJdOiIyIixbIjkwNyJdOiIyIixbIjkwOCJdOiIyIn07dmFyIHBNPSJoaWdocmVzIGhkMjg4MCBoZDIxNjAgaGQxNDQwIGhkMTA4MCBoZDcyMCBsYXJnZSBtZWRpdW0gc21hbGwgdGlueSIuc3BsaXQoIiAiKTt2YXIgSFI9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYix2LGssaCx4LEwsZSxHKXt0aGlzLndpZHRoPW47dGhpcy5oZWlnaHQ9Vzt0aGlzLlc9eDt0aGlzLnF1YWxpdHk9a3x8WVgobixXKTt0aGlzLnF1YWxpdHlPcmRpbmFsPU5HW3RoaXMucXVhbGl0eV07dGhpcy5mcHM9RHx8MDt0aGlzLnN0ZXJlb0xheW91dD0hdnx8YiE9bnVsbCYmYiE9PSJVTktOT1dOIiYmYiE9PSJSRUNUQU5HVUxBUiI/MDp2O3RoaXMucHJvamVjdGlvblR5cGU9Yj9iPT09IkVRVUlSRUNUQU5HVUxBUiImJnY9PT0yPyJFUVVJUkVDVEFOR1VMQVJfVEhSRUVEX1RPUF9CT1RUT00iOmI6IlVOS05PV04iOyhuPWgpfHwoRD1OR1t0aGlzLnF1YWxpdHldLEQ9PT0wP249IkF1dG8iOihuPXRoaXMucHJvamVjdGlvblR5cGUsVz10aGlzLmZwcyxuPUQudG9TdHJpbmcoKSsobj09PSJFUVVJUkVDVEFOR1VMQVIifHxuPT09IkVRVUlSRUNUQU5HVUxBUl9USFJFRURfVE9QX0JPVFRPTSJ8fG49PT0iTUVTSCI/InMiOiJwIikrCihXPjU1PyI2MCI6Vz40OT8iNTAiOlc+Mzk/IjQ4IjoiIikpKTt0aGlzLnF1YWxpdHlMYWJlbD1uO3RoaXMuTj1MfHwiIjt0aGlzLnByaW1hcmllcz1lfHwiIjt0aGlzLlg9Rz8/ITB9Sigpe3JldHVybiB0aGlzLmZwcz4zMn1pc0hkcigpe3JldHVybiB0aGlzLk49PT0ic21wdGUyMDg0Inx8dGhpcy5OPT09ImFyaWItc3RkLWI2NyJ9fTt2YXIgbXU9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQ9e30pe3RoaXMuaWQ9bjt0aGlzLm1pbWVUeXBlPVc7RC5Ocz4wfHwoRC5Ocz0xNkUzKTtPYmplY3QuYXNzaWduKHRoaXMsRCk7W3RoaXMuaXRhZyx0aGlzLkpdPXRoaXMuaWQuc3BsaXQoIjsiKTt0aGlzLmNvbnRhaW5lclR5cGU9Sk0oVyk7dGhpcy5JQj1ZZ1t0aGlzLml0YWddfHwiIn1LKCl7cmV0dXJuIHRoaXMudmlkZW99WSgpe3JldHVybiB0aGlzLmF1ZGlvfXFIKCl7cmV0dXJuIHRoaXMuY29udGFpbmVyVHlwZT09PTJ9WCgpe3JldHVybiB0aGlzLklCPT09IjkifHx0aGlzLklCPT09IigifHx0aGlzLklCPT09IjloInx8dGhpcy5JQj09PSIoaCJ9TVcoKXtyZXR1cm4gdGhpcy5JQj09PSIxInx8dGhpcy5JQj09PSIxaCJ8fFBSJiZ0aGlzLklCPT09IjFlIn1WKCl7cmV0dXJuIHRoaXMuSUI9PT0ibWFjMyJ8fHRoaXMuSUI9PT0ibWVhYzMifHx0aGlzLklCPT09Im0ifHx0aGlzLklCPT09ImkifHxtRih0aGlzKX1EKCl7cmV0dXJuIHRoaXMuSUI9PT0KIk1BQzMifHx0aGlzLklCPT09Im1hYzMifHx0aGlzLklCPT09Ik1FQUMzInx8dGhpcy5JQj09PSJtZWFjMyJ9aXNFbmNyeXB0ZWQoKXtyZXR1cm4hIXRoaXMuY29udGVudFByb3RlY3Rpb259ZVMoKXtyZXR1cm4hIXRoaXMuYXVkaW99ZlkoKXtyZXR1cm4hIXRoaXMudmlkZW99Vygpe3JldHVybiB0aGlzLm1pbWVUeXBlPT09ImFwcGxpY2F0aW9uL3gtbXBlZ1VSTCJ9Tigpe3ZhciBuPXRoaXMubWltZVR5cGU7cmV0dXJuIG4uaW5jbHVkZXMoInZ0dCIpfHxuLmluY2x1ZGVzKCJ0ZXh0L21wNCIpfWlzVmVydGljYWwoKXtyZXR1cm4hIXRoaXMudmlkZW8mJnRoaXMudmlkZW8ud2lkdGg8dGhpcy52aWRlby5oZWlnaHR9fSxQUj0hMSxFTj0hMTtnLkZzPWNsYXNzIGV4dGVuZHMgZy5KTHtOTihuLFcsRCxiLHYpe3JldHVybiBzdXBlci5OTihuLFcsRCxiLHYpfX07dmFyIHhnPWNsYXNzIGV4dGVuZHMgZy5GaXtjb25zdHJ1Y3RvcihuLFcsRCxiKXtzdXBlcigpO3RoaXMuayQ9bjt0aGlzLnN0YXJ0PVc7dGhpcy5lbmQ9RDt0aGlzLmlzQWN0aXZlPWI7dGhpcy5hcHBlbmRXaW5kb3dTdGFydD0wO3RoaXMuYXBwZW5kV2luZG93RW5kPUluZmluaXR5O3RoaXMudGltZXN0YW1wT2Zmc2V0PTA7dGhpcy5LVT17ZXJyb3I6KCk9PnshdGhpcy5xTigpJiZ0aGlzLmlzQWN0aXZlJiZ0aGlzLldKKCJlcnJvciIsdGhpcyl9LAp1cGRhdGVlbmQ6KCk9PnshdGhpcy5xTigpJiZ0aGlzLmlzQWN0aXZlJiZ0aGlzLldKKCJ1cGRhdGVlbmQiLHRoaXMpfX07CnRoaXMuayQuaCQodGhpcy5LVSk7dGhpcy5wTj10aGlzLmlzQWN0aXZlfWFwcGVuZEJ1ZmZlcihuLFcsRCl7aWYodGhpcy5rJC5NcigpIT09dGhpcy5hcHBlbmRXaW5kb3dTdGFydCt0aGlzLnN0YXJ0fHx0aGlzLmskLktGKCkhPT10aGlzLmFwcGVuZFdpbmRvd0VuZCt0aGlzLnN0YXJ0fHx0aGlzLmskLlNXKCkhPT10aGlzLnRpbWVzdGFtcE9mZnNldCt0aGlzLnN0YXJ0KXRoaXMuayQuc3VwcG9ydHMoMSksdGhpcy5rJC5lNyh0aGlzLmFwcGVuZFdpbmRvd1N0YXJ0K3RoaXMuc3RhcnQsdGhpcy5hcHBlbmRXaW5kb3dFbmQrdGhpcy5zdGFydCksdGhpcy5rJC55Tyh0aGlzLnRpbWVzdGFtcE9mZnNldCt0aGlzLnN0YXJ0KTt0aGlzLmskLmFwcGVuZEJ1ZmZlcihuLFcsRCl9YWJvcnQoKXt0aGlzLmskLmFib3J0KCl9cmVtb3ZlKG4sVyl7dGhpcy5rJC5yZW1vdmUobit0aGlzLnN0YXJ0LFcrdGhpcy5zdGFydCl9VGkoKXt0aGlzLnJlbW92ZSh0aGlzLmFwcGVuZFdpbmRvd1N0YXJ0LHRoaXMuYXBwZW5kV2luZG93RW5kKX1jbGVhcigpe3RoaXMuayQuY2xlYXIoKX1lNyhuLApXKXt0aGlzLmFwcGVuZFdpbmRvd1N0YXJ0PW47dGhpcy5hcHBlbmRXaW5kb3dFbmQ9V31pdygpe3JldHVybiB0aGlzLnRpbWVzdGFtcE9mZnNldCt0aGlzLnN0YXJ0fU1yKCl7cmV0dXJuIHRoaXMuYXBwZW5kV2luZG93U3RhcnR9S0YoKXtyZXR1cm4gdGhpcy5hcHBlbmRXaW5kb3dFbmR9eU8obil7dGhpcy50aW1lc3RhbXBPZmZzZXQ9bn1TVygpe3JldHVybiB0aGlzLnRpbWVzdGFtcE9mZnNldH1aRihuPSExKXtuPXRoaXMuayQuWkYobik7cmV0dXJuIFFUKG4sdGhpcy5zdGFydCx0aGlzLmVuZCl9eXUoKXtyZXR1cm4gdGhpcy5rJC55dSgpfWZGKCl7cmV0dXJuIHRoaXMuayQuZkYoKX1nWCgpe3JldHVybiB0aGlzLmskLmdYKCl9RGMoKXtyZXR1cm4gdGhpcy5rJC5EYygpfWg5KCl7dGhpcy5rJC5oOSgpfXRaKG4pe3JldHVybiB0aGlzLmskLnRaKG4pfUQ5KCl7cmV0dXJuIHRoaXMuayQuRDkoKX1MRigpe3JldHVybiB0aGlzLmskLkxGKCl9am4obixXLEQpe3RoaXMuayQuam4obiwKVyxEKX1WbyhuLFcsRCl7dGhpcy5rJC5WbyhuLFcsRCl9bmEobixXKXtyZXR1cm4gdGhpcy5rJC5uYShuLFcpfXN1cHBvcnRzKG4pe3JldHVybiB0aGlzLmskLnN1cHBvcnRzKG4pfVpnKCl7cmV0dXJuIHRoaXMuayQuWmcoKX1pUSgpe3JldHVybiB0aGlzLmskLmlRKCl9aXNWaWV3KCl7cmV0dXJuITB9am8oKXtyZXR1cm4gdGhpcy5rJC5qbygpP3RoaXMuaXNBY3RpdmU6ITF9aXNMb2NrZWQoKXtyZXR1cm4gdGhpcy5wTiYmIXRoaXMuaXNBY3RpdmV9eXIobil7bj10aGlzLmskLnlyKG4pO24udnc9YCR7dGhpcy5zdGFydH0tJHt0aGlzLmVuZH1gO3JldHVybiBufW5GKCl7cmV0dXJuIHRoaXMuayQubkYoKX1Lcygpe3JldHVybiB0aGlzLmskLktzKCl9ejAoKXtyZXR1cm4gdGhpcy5rJC56MCgpfW1BKCl7dGhpcy5rJC5NOSh0aGlzLktVKTtzdXBlci5tQSgpfUtpKCl7cmV0dXJuIHRoaXMuaXNBY3RpdmV9VnUobil7dGhpcy5pc0FjdGl2ZT1uO3RoaXMucE49dGhpcy5wTnx8dGhpcy5pc0FjdGl2ZX19O3ZhciBzND0hMTt2YXIga2c9Y2xhc3MgZXh0ZW5kcyBnLkZpe2NvbnN0cnVjdG9yKG4sVyxELGIsdixrKXtzdXBlcigpO3RoaXMuUUU9bjt0aGlzLkVWPVc7dGhpcy5pZD1EO3RoaXMuY29udGFpbmVyVHlwZT1iO3RoaXMuSUI9djt0aGlzLmZZPWs7dGhpcy5tTz10aGlzLmpxPXRoaXMuZEg9bnVsbDt0aGlzLmVvPSExO3RoaXMuYXBwZW5kV2luZG93U3RhcnQ9dGhpcy50aW1lc3RhbXBPZmZzZXQ9MDt0aGlzLkY0PVRpKFtdLFtdKTt0aGlzLkhIPSExO3RoaXMuaWs9W107dGhpcy55Nj1QYz9bXTp2b2lkIDA7dGhpcy5oYW5kbGVyPWg9PnRoaXMuV0ooaC50eXBlLHRoaXMpOwp0aGlzLlFFPy5hZGRFdmVudExpc3RlbmVyJiYodGhpcy5RRS5hZGRFdmVudExpc3RlbmVyKCJ1cGRhdGVlbmQiLHRoaXMuaGFuZGxlciksdGhpcy5RRS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsdGhpcy5oYW5kbGVyKSl9YXBwZW5kQnVmZmVyKG4sVyxEKXt0aGlzLkhIPSExO0QmJih0aGlzLmpxPUQpO24ubGVuZ3RoJiYodGhpcy5RRT8uYXBwZW5kQnVmZmVyP3RoaXMuUUUuYXBwZW5kQnVmZmVyKG4pOnRoaXMuUUU/dGhpcy5RRS5hcHBlbmQobik6dGhpcy5FViYmdGhpcy5FVi53ZWJraXRTb3VyY2VBcHBlbmQodGhpcy5pZCxuKSk7VyYmKFcuaXNFbmNyeXB0ZWQoKSYmKHRoaXMubU89dGhpcy5qcSksVy50eXBlPT09MyYmKHRoaXMuZEg9VyksdGhpcy5pay5wdXNoKFcuZ2EoKSksdGhpcy5pay5sZW5ndGg+NCYmdGhpcy5pay5zaGlmdCgpKTt0aGlzLnk2JiYodGhpcy55Ni5sZW5ndGg+PTJ8fG4ubGVuZ3RoPjEwNDg1NzY/ZGVsZXRlIHRoaXMueTY6dGhpcy55Ni5wdXNoKG4pKX1hYm9ydCgpe3RyeXt0aGlzLlFFPwp0aGlzLlFFLmFib3J0KCk6dGhpcy5FViYmdGhpcy5FVi53ZWJraXRTb3VyY2VBYm9ydCh0aGlzLmlkKX1jYXRjaChuKXtRalomJmcuR3EobmV3IGcuUXgoYEVycm9yIHdoaWxlIGFib3J0IHRoZSBzb3VyY2UgYnVmZmVyOiAke24ubmFtZX0sICR7bi5tZXNzYWdlfWApKX10aGlzLmpxPXRoaXMuZEg9bnVsbH1yZW1vdmUobixXLEQpe3RoaXMuSEg9ITE7dGhpcy5RRT8ucmVtb3ZlJiYoRCYmRCh7Yjpyayh0aGlzLlpGKCkpLHM6bixlOld9KSx0aGlzLlFFLnJlbW92ZShuLFcpKX1UaSgpe3RoaXMucmVtb3ZlKHRoaXMuTXIoKSx0aGlzLktGKCkpfWNsZWFyKCl7dGhpcy5nWCgpfHwodGhpcy5hYm9ydCgpLHRoaXMuVGkoKSx0aGlzLm1PPXRoaXMuanE9dGhpcy5kSD1udWxsLHRoaXMuYXBwZW5kV2luZG93U3RhcnQ9dGhpcy50aW1lc3RhbXBPZmZzZXQ9MCx0aGlzLkY0PVRpKFtdLFtdKSx0aGlzLkhIPSExLHRoaXMueTY9UGM/W106dm9pZCAwLHRoaXMuZW89ITApfU1yKCl7cmV0dXJuIHM0JiYKdGhpcy5mWT90aGlzLmFwcGVuZFdpbmRvd1N0YXJ0OnRoaXMuUUU/LmFwcGVuZFdpbmRvd1N0YXJ0fHwwfUtGKCl7cmV0dXJuIHRoaXMuUUU/LmFwcGVuZFdpbmRvd0VuZHx8MH1lNyhuLFcpe3RoaXMuUUUmJihzNCYmdGhpcy5mWT8odGhpcy5hcHBlbmRXaW5kb3dTdGFydD1uLHRoaXMuUUUuYXBwZW5kV2luZG93RW5kPVcpOm4+dGhpcy5NcigpPyh0aGlzLlFFLmFwcGVuZFdpbmRvd0VuZD1XLHRoaXMuUUUuYXBwZW5kV2luZG93U3RhcnQ9bik6KHRoaXMuUUUuYXBwZW5kV2luZG93U3RhcnQ9bix0aGlzLlFFLmFwcGVuZFdpbmRvd0VuZD1XKSl9aXcoKXtyZXR1cm4gdGhpcy50aW1lc3RhbXBPZmZzZXR9eU8obil7czQ/dGhpcy50aW1lc3RhbXBPZmZzZXQ9bjp0aGlzLnN1cHBvcnRzKDEpJiYodGhpcy5RRS50aW1lc3RhbXBPZmZzZXQ9bil9U1coKXtyZXR1cm4gczQ/dGhpcy50aW1lc3RhbXBPZmZzZXQ6dGhpcy5zdXBwb3J0cygxKT90aGlzLlFFLnRpbWVzdGFtcE9mZnNldDowfVpGKG49CiExKXtpZihuKXJldHVybiB0aGlzLkhIfHx0aGlzLnl1KCl8fCh0aGlzLkY0PXRoaXMuWkYoITEpLHRoaXMuSEg9ITApLHRoaXMuRjQ7dHJ5e3JldHVybiB0aGlzLlFFP3RoaXMuUUUuYnVmZmVyZWQ6dGhpcy5FVj90aGlzLkVWLndlYmtpdFNvdXJjZUJ1ZmZlcmVkKHRoaXMuaWQpOlRpKFswXSxbSW5maW5pdHldKX1jYXRjaChXKXtyZXR1cm4gVGkoW10sW10pfX15dSgpe3JldHVybiB0aGlzLlFFPy51cGRhdGluZ3x8ITF9Z1goKXtyZXR1cm4gdGhpcy5lb31EYygpe3JldHVybiF0aGlzLmVvJiZ0aGlzLnl1KCl9aDkoKXt0aGlzLmVvPSExfXRaKG4pe3ZhciBXPW4/LklCO249bj8uY29udGFpbmVyVHlwZTtyZXR1cm4hVyYmIW58fFc9PT10aGlzLklCJiZuPT09dGhpcy5jb250YWluZXJUeXBlfUQ5KCl7cmV0dXJuIHRoaXMuanF9TEYoKXtyZXR1cm4gdGhpcy5tT31uYShuLFcpe3JldHVybiB0aGlzLmNvbnRhaW5lclR5cGUhPT1ufHx0aGlzLklCIT09V31qbihuLFcsRCl7aWYodGhpcy5jb250YWluZXJUeXBlIT09Cm58fEQmJnRoaXMubmEobixEKSl0aGlzLnN1cHBvcnRzKDQpLFZUKCkmJnRoaXMuUUUuY2hhbmdlVHlwZShXKSxEJiYodGhpcy5JQj1EKTt0aGlzLmNvbnRhaW5lclR5cGU9bn1WbyhuLFcsRCl7dGhpcy5jb250YWluZXJUeXBlJiZ0aGlzLm5hKG4sVykmJlZUKCkmJnRoaXMuUUUuY2hhbmdlVHlwZShEKTt0aGlzLmNvbnRhaW5lclR5cGU9bjt0aGlzLklCPVd9WmcoKXtyZXR1cm4gdGhpcy5kSH1pUSgpe3JldHVybiEhdGhpcy5kSCYmIXRoaXMuZEguYVp9aXNWaWV3KCl7cmV0dXJuITF9c3VwcG9ydHMobil7c3dpdGNoKG4pe2Nhc2UgMTpyZXR1cm4gdGhpcy5RRT8udGltZXN0YW1wT2Zmc2V0IT09dm9pZCAwO2Nhc2UgMDpyZXR1cm4hIXRoaXMuUUU/LmFwcGVuZEJ1ZmZlcjtjYXNlIDI6cmV0dXJuISF0aGlzLlFFPy5yZW1vdmU7Y2FzZSAzOnJldHVybiEoIXRoaXMuUUU/LmFkZEV2ZW50TGlzdGVuZXJ8fCF0aGlzLlFFPy5yZW1vdmVFdmVudExpc3RlbmVyKTtjYXNlIDQ6cmV0dXJuISghdGhpcy5RRXx8CiF0aGlzLlFFLmNoYW5nZVR5cGUpO2RlZmF1bHQ6cmV0dXJuITF9fWpvKCl7cmV0dXJuIXRoaXMueXUoKX1pc0xvY2tlZCgpe3JldHVybiExfXlyKG4pe24udG89dGhpcy5TVygpO24udXA9dGhpcy55dSgpO24uYXc9YCR7KHRoaXMuUUU/LmFwcGVuZFdpbmRvd1N0YXJ0fHwwKS50b0ZpeGVkKDMpfS0keyh0aGlzLlFFPy5hcHBlbmRXaW5kb3dFbmR8fEluZmluaXR5KS50b0ZpeGVkKDMpfWA7cmV0dXJuIG59ZkYoKXtyZXR1cm4gdGhpcy5RRT8ud3JpdGVIZWFkfHwwfW5GKCl7dmFyIG49e307Zm9yKGxldCBXPTA7Vzx0aGlzLmlrLmxlbmd0aDtXKyspbltgcyR7V31gXT10aGlzLmlrW1ddO3JldHVybiBufW1BKCl7dGhpcy5zdXBwb3J0cygzKSYmKHRoaXMuUUUucmVtb3ZlRXZlbnRMaXN0ZW5lcigidXBkYXRlZW5kIix0aGlzLmhhbmRsZXIpLHRoaXMuUUUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLHRoaXMuaGFuZGxlcikpO3N1cGVyLm1BKCl9S3MoKXtyZXR1cm4gdGhpcy5jb250YWluZXJUeXBlfXowKCl7cmV0dXJuIHRoaXMueTZ9fSwKUGM9ITEsUWpaPSExO3ZhciB3bj1jbGFzc3tjb25zdHJ1Y3RvcihuLFc9ITEpe3RoaXMuWGI9bjt0aGlzLk49Vzt0aGlzLko9ITF9ZGlzcG9zZSgpe2lmKCF0aGlzLnFOKCkpe2lmKHRoaXMuTil0cnl7VVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLlhiKX1jYXRjaChuKXt9dGhpcy5KPSEwfX1xTigpe3JldHVybiB0aGlzLkp9Vygpe3JldHVybiB0aGlzLk59ZXF1YWxzKG4pe3JldHVybiBuIT09bnVsbCYmbi5YYj09PXRoaXMuWGJ9dG9TdHJpbmcoKXtyZXR1cm5gTWVkaWFSZXNvdXJjZSB7JHt0aGlzLlhifX1gfX07dmFyIGhaPWNsYXNzIGV4dGVuZHMgZy5GTXtjb25zdHJ1Y3RvcihuLFcsRD0hMSl7c3VwZXIoKTt0aGlzLm1lZGlhRWxlbWVudD1uO3RoaXMubWVkaWFTb3VyY2U9Vzt0aGlzLmlzVmlldz1EO3RoaXMuWT0wO3RoaXMuVj0hMTt0aGlzLks9ITA7dGhpcy5jSj0wO3RoaXMuY2FsbGJhY2s9bnVsbDt0aGlzLk89ITE7dGhpcy5tZWRpYVNvdXJjZXx8KHRoaXMuRVY9dGhpcy5tZWRpYUVsZW1lbnQuZV8oKSk7dGhpcy5ldmVudHM9bmV3IGcuRnModGhpcyk7Zy51KHRoaXMsdGhpcy5ldmVudHMpO3RoaXMuaj1uZXcgd24odGhpcy5tZWRpYVNvdXJjZT93aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTCh0aGlzLm1lZGlhU291cmNlKTp0aGlzLkVWLndlYmtpdE1lZGlhU291cmNlVVJMLCEwKTtuPXRoaXMubWVkaWFTb3VyY2V8fHRoaXMuRVY7S3kodGhpcy5ldmVudHMsbixbInNvdXJjZW9wZW4iLCJ3ZWJraXRzb3VyY2VvcGVuIl0sdGhpcy5TJCk7S3kodGhpcy5ldmVudHMsbixbInNvdXJjZWNsb3NlIiwKIndlYmtpdHNvdXJjZWNsb3NlIl0sdGhpcy5UQyk7dGhpcy5MTD17dXBkYXRlZW5kOnRoaXMuZVh9fXR3KCl7cmV0dXJuIHRoaXMuan1nZXREdXJhdGlvbigpe3JldHVybiB0aGlzLm1lZGlhU291cmNlPy5kdXJhdGlvbnx8dGhpcy5jSn1hVChuKXt0cnl7dGhpcy5tZWRpYVNvdXJjZT90aGlzLm1lZGlhU291cmNlLmR1cmF0aW9uPW46KHRoaXMuY0o9bix0aGlzLkVWLndlYmtpdFNvdXJjZVNldER1cmF0aW9uKG4pKX1jYXRjaChXKXt9fVgoKXtyZXR1cm4hIXRoaXMuTnx8ISF0aGlzLkp9UEEoKXt0cnl7cmV0dXJuIHRoaXMuVygpPT09ImNsb3NlZCJ9Y2F0Y2gobil7cmV0dXJuITB9fVcoKXtpZih0aGlzLm1lZGlhU291cmNlKXJldHVybiB0aGlzLm1lZGlhU291cmNlLnJlYWR5U3RhdGU7c3dpdGNoKHRoaXMuRVYud2Via2l0U291cmNlU3RhdGUpe2Nhc2UgdGhpcy5FVi5TT1VSQ0VfT1BFTjpyZXR1cm4ib3BlbiI7Y2FzZSB0aGlzLkVWLlNPVVJDRV9FTkRFRDpyZXR1cm4iZW5kZWQiOwpkZWZhdWx0OnJldHVybiJjbG9zZWQifX15dSgpe3JldHVybiEhKHRoaXMuTiYmdGhpcy5OLnl1KCl8fHRoaXMuSiYmdGhpcy5KLnl1KCkpfVMkKCl7IXRoaXMucU4oKSYmbjYodGhpcykmJnRoaXMuY2FsbGJhY2smJih0aGlzLmNhbGxiYWNrKHRoaXMpLHRoaXMuY2FsbGJhY2s9bnVsbCl9VEMoKXt0aGlzLmRpc3Bvc2UoKX1lWChuKXtESCYmIXRoaXMuViYmbi5nWCgpJiZuLlpGKCkubGVuZ3RoPT09MCYmKGJBKHRoaXMubWVkaWFFbGVtZW50LHtsOiJtc3dvdWUiLHNyOnRoaXMubWVkaWFFbGVtZW50LllhPy5wZygpfSwhMSksbi5oOSgpLHRoaXMuZ1goKXx8KHRoaXMubWVkaWFFbGVtZW50LkNGPSEwLHRoaXMubWVkaWFFbGVtZW50LnNldEN1cnJlbnRUaW1lKDApKSl9Y2xlYXIoKXtXRih0aGlzLCgpPT57fSk7CnRoaXMuTj8uY2xlYXIoKTt0aGlzLko/LmNsZWFyKCl9RCgpe3RoaXMuTj8uaDkoKTt0aGlzLko/Lmg5KCk7dGhpcy5LPSExfWdYKCl7cmV0dXJuIHRoaXMuSj8uZ1goKXx8dGhpcy5OPy5nWCgpfXRaKG4sVyl7cmV0dXJuISF0aGlzLk4mJiEhdGhpcy5KJiZ0aGlzLk4udFooVykmJnRoaXMuSi50WihuKX1iZCgpe3JldHVybiEhdGhpcy5tZWRpYVNvdXJjZSYmdGhpcy5tZWRpYVNvdXJjZS5zdHJlYW1pbmc9PT0hMX19LERIPSExO3ZhciBnR3I9L2FjdGlvbl9kaXNwbGF5X3Bvc3QvO2cuR3g9Y2xhc3MgZXh0ZW5kcyBnLkZpe2NvbnN0cnVjdG9yKG49IiIsVz1udWxsLEQ9ITEpe3N1cGVyKCk7dGhpcy5zb3VyY2VVcmw9bjt0aGlzLmlzTGl2ZVBsYXliYWNrPUQ7dGhpcy5ISj10aGlzLmR1cmF0aW9uPTA7dGhpcy5pc1ByZW1pZXJlPXRoaXMuWGc9dGhpcy5pc1dpbmRvd2VkTGl2ZT10aGlzLmlzTGl2ZUhlYWRQbGF5YWJsZT10aGlzLmlzTGl2ZT10aGlzLlc9ITE7dGhpcy5IUD10aGlzLkl0PTA7dGhpcy5pc090Zj10aGlzLnpXPSExO3RoaXMuUyQ9KDAsZy5SKSgpO3RoaXMuY0o9SW5maW5pdHk7dGhpcy5OPXt9O3RoaXMuSj1uZXcgTWFwO3RoaXMuc3RhdGU9dGhpcy5sTj0wO3RoaXMuVj1udWxsO3RoaXMuaXNNYW5pZmVzdGxlc3M9ITE7dGhpcy5iZD1bXTt0aGlzLks9bnVsbDt0aGlzLmUkPTA7dGhpcy5qPSIiO3RoaXMuVEM9TmFOO3RoaXMuSlU9dGhpcy5vUj10aGlzLnRpbWVzdGFtcE9mZnNldD10aGlzLkQ9MDt0aGlzLldNPXRoaXMuSDI9TmFOO3RoaXMuSVQ9MDsKdGhpcy5WUT10aGlzLk89ITE7dGhpcy5HQz1bXTt0aGlzLnZKPXt9O3RoaXMuUFg9dGhpcy50dz1OYU47dGhpcy5DdT1XPy5FcSgiaHRtbDVfdXNlX25ldHdvcmtfZXJyb3JfY29kZV9lbnVtcyIpO016PSEhVyYmVy5FcSgiaHRtbDVfbW9kZXJuX3ZwOV9taW1lX3R5cGUiKTtIRj0hIVc/LkVxKCJodG1sNV9lbmFibGVfZmx1c2hfZHVyaW5nX3NlZWsiKSYmZy5kOCgpO2Y2PSEhVz8uRXEoImh0bWw1X2VuYWJsZV9yZXNldF9hdWRpb19kZWNvZGVyIikmJmcuZDgoKX1pc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy5zdGF0ZT09PTF9dG4oKXtyZXR1cm4gdGhpcy5zdGF0ZT09PTN9bnUoKXtyZXR1cm4gZy5EbCh0aGlzLk4sbj0+ISFuLmluZm8udmlkZW8mJm4uaW5mby52aWRlby5xdWFsaXR5T3JkaW5hbD49MjE2MCl9WCgpe3JldHVybiBnLkRsKHRoaXMuTixuPT4hIW4uaW5mby5jb250ZW50UHJvdGVjdGlvbil9eUUobil7dmFyIFc9bi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUmVwcmVzZW50YXRpb24iKTsKaWYobi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU2VnbWVudExpc3QiKS5sZW5ndGg+MHx8bi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU2VnbWVudFRlbXBsYXRlIikubGVuZ3RoPjApe3RoaXMuelc9dGhpcy5XPSEwO3RoaXMuVnx8KHRoaXMuVj1uZXcga0xDKTtjSGoodGhpcy5WLG4pO3RoaXMuV0ooInJlZnJlc2giKTtmb3Iobj0wO248Vy5sZW5ndGg7bisrKXt2YXIgRD15Qyh0aGlzLFdbbl0pO2lmKCF0aGlzLk5bRC5pZF0pe3ZhciBiPVJ4KFRQKFdbbl0sIkJhc2VVUkwiKS50ZXh0Q29udGVudCksdj1UUChXW25dLCJJbml0aWFsaXphdGlvbiIpLGs9bFQodiwic291cmNlVVJMIik7dj1ueihsVCh2LCJyYW5nZSIpKTt0aGlzLk5bRC5pZF09bmV3IGR0KGIsRCxrLHYpfUQ9dGhpcy5OW0QuaWRdO2s9bFQoV1tuXSwiaWQiLCJBZGFwdGF0aW9uU2V0Iik7az1rIT09IiI/azpsVChXW25dLCJtaW1ldHlwZSIsIkFkYXB0YXRpb25TZXQiKTtiPXRoaXMuVjtrPWIuV1tELmluZm8uaWRdfHxiLkpba118fApiLk58fG51bGw7Yj1rLk47IXRoaXMuRCYmay5nZXRTdHJlYW1UaW1lT2Zmc2V0KCkmJih0aGlzLkQ9ay5nZXRTdHJlYW1UaW1lT2Zmc2V0KCkpO2lmKGsuail7dj1bXTtmb3IodmFyIGggb2YgYil7Yj1ELmluZm8uaWQ7dmFyIHg9RC5pbmZvLk5zKjgsTD1oLmokLGU9aC5zdGFydFNlY3MsRz1rLksuc3BsaXQoIiQkIik7Zm9yKHZhciByPTA7cjxHLmxlbmd0aDtyKyspR1tyXT1HW3JdLnJlcGxhY2UoIiRSZXByZXNlbnRhdGlvbklEJCIsYiksR1tyXT1HW3JdLnJlcGxhY2UoIiROdW1iZXIkIixMLnRvU3RyaW5nKCkpLEdbcl09R1tyXS5yZXBsYWNlKCIkQmFuZHdpZHRoJCIseC50b1N0cmluZygpKSxHW3JdPUdbcl0ucmVwbGFjZSgiJFRpbWUkIixlLnRvU3RyaW5nKCkpO2I9Ry5qb2luKCIkIik7di5wdXNoKG5ldyBSNChoLmokLGguc3RhcnRTZWNzLGguQ2YsaC5OLGIsbnVsbCxoLkopKX1iPXZ9ZWxzZXtMPVYyKFRQKFdbbl0sIlNlZ21lbnRMaXN0IikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNlZ21lbnRVUkwiKSwKay5WKTtlPVtdO2ZvcihHPTA7RzxMLmxlbmd0aDtHKyspe2s9ZTt2PWsucHVzaDtyPXZvaWQgMDt2YXIgTj1MW0ddO3g9YltHXTtsZXQgSD1OLmdldEF0dHJpYnV0ZSgibWVkaWEiKTtpZihOPU4uZ2V0QXR0cmlidXRlKCJtZWRpYVJhbmdlIikpe2xldCBBPU4uc3BsaXQoIi0iKTtBWzFdJiZOdW1iZXIoQVsxXSk+PTA/cj1ueihOKTpIPWAke0h9P3JhbmdlPSR7Tn1gfXYuY2FsbChrLG5ldyBSNCh4LmokLHguc3RhcnRTZWNzLHguQ2YseC5OLEgscix4LkopKX1iPWV9RC51cGRhdGUoYix0aGlzLmlzTGl2ZSx0aGlzLkhKKX1hRFUodGhpcy5WKTtyZXR1cm4hMH10aGlzLmR1cmF0aW9uPWp4KGxUKG4sIm1lZGlhUHJlc2VudGF0aW9uRHVyYXRpb24iKSk7YTp7Zm9yKGg9MDtoPFcubGVuZ3RoO2grKyl7Yj1XW2hdO249eUModGhpcyxiKTtEPVJ4KFRQKGIsIkJhc2VVUkwiKS50ZXh0Q29udGVudCk7az1UUChiLCJTZWdtZW50QmFzZSIpO2I9bnooay5hdHRyaWJ1dGVzLmdldE5hbWVkSXRlbSgiaW5kZXhSYW5nZSIpLnZhbHVlKTsKaz1ueihrLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJbml0aWFsaXphdGlvbiIpWzBdLmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCJyYW5nZSIpLnZhbHVlKTtuPW5ldyBzayhELG4sayxiKTtpZighbil7Vz0hMTticmVhayBhfSRnKHRoaXMsbil9Vz0hMH1yZXR1cm4gV31EdChuKXtyZXR1cm4gdGhpcy5WP1YyKHRoaXMuVi5YLG4pOnRoaXMuYmQubGVuZ3RoP1YyKHRoaXMuYmQsbik6W119cmVmcmVzaCgpe2lmKCF0aGlzLmlzTG9hZGluZygpJiYhdGhpcy5xTigpKXt2YXIgbj1nLkVUKHRoaXMuc291cmNlVXJsLHtzdGFydF9zZXE6QSRpKHRoaXMpLnRvU3RyaW5nKCl9KTtTNCh0aGlzLG4pLnNQKCgpPT57fSl9fXN1c3BlbmQoKXt0aGlzLksmJnRoaXMuSy5zdG9wKCl9cmVzdW1lKCl7QVoodGhpcyl9ckkoKXtpZih0aGlzLmlzTWFuaWZlc3RsZXNzJiZ0aGlzLmlzV2luZG93ZWRMaXZlJiZpQSh0aGlzKSlyZXR1cm4gaUEodGhpcyk7CnZhciBuPXRoaXMuTixXPSExLEQ9TmFOLGI9TmFOO2ZvcihsZXQgayBpbiBuKXtsZXQgaD1uW2tdO3ZhciB2PWguaW5kZXg7aWYoIXYuaXNMb2FkZWQoKXx8aC5pbmZvLk4oKSljb250aW51ZTtoLlYmJihXPSEwKTt2PXYuYlEoKTtoLmluZm8uZVMoKSYmKGlzTmFOKEQpfHx2PEQpP0Q9djpoLmluZm8uZlkoKSYmKGlzTmFOKGIpfHx2PGIpJiYoYj12KX1yZXR1cm4gV3x8aXNOYU4oYik/RDpNYXRoLm1pbihELGIpfUxmKCl7aWYodGhpcy5pc01hbmlmZXN0bGVzcyl7aWYodUEodGhpcykpcmV0dXJuIHVBKHRoaXMpO2lmKHRoaXMuSVQpe3ZhciBuPXRoaXMuaEModGhpcy5ySSgpKTtpZihuJiYobi09dGhpcy5JVCxuPjApKXJldHVybiB0aGlzLnJJKCktbn19bj10aGlzLk47Zm9yKGxldCBXIGluIG4pe2xldCBEPW5bV10uaW5kZXg7aWYoRC5pc0xvYWRlZCgpJiYhbltXXS5pbmZvLk4oKSlyZXR1cm4gRC5MZigpfXJldHVybiAwfWdldFN0cmVhbVRpbWVPZmZzZXQoKXtyZXR1cm4gdGhpcy5EfWhDKG4pe2ZvcihsZXQgVyBpbiB0aGlzLk4pe2xldCBEPQp0aGlzLk5bV10uaW5kZXg7aWYoRC5pc0xvYWRlZCgpKXtsZXQgYj1ELlIzKG4pLHY9RC5oQyhiKTtpZih2KXJldHVybiB2K24tRC5nZXRTdGFydFRpbWUoYil9fXJldHVybiBOYU59cWgoKXtyZXR1cm4gdGhpcy5lJH1qVygpe2ZvcihsZXQgbiBpbiB0aGlzLk4pdGhpcy5OLmhhc093blByb3BlcnR5KG4pJiYodGhpcy5OW25dLko9bnVsbCx0aGlzLk5bbl0uY0o9ITEpfX07Zy5HeC5wcm90b3R5cGUuRkY9V1ooNCk7dmFyIE16LEhGLGY2LHd0PW51bGwsUm89ISFuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXM/LmRlY29kaW5nSW5mbyxVaz17Y29tbWVudGFyeToxLGFsdGVybmF0ZToyLGR1YjozLG1haW46NH07dmFyIGNGPW5ldyBTZXQsUUM9bmV3IE1hcDt2YXIgUGVNPWNsYXNze2NvbnN0cnVjdG9yKG4pe3RoaXMueVE9bjt0aGlzLk5kPXRoaXMuYnY9dGhpcy5ISj10aGlzLlY9dGhpcy5qPXRoaXMuSGk9dGhpcy5HQz10aGlzLmNKPSExO3RoaXMuWT10aGlzLks9MDt0aGlzLkN1PSExO3RoaXMudHc9ITA7dGhpcy5QWD0hMTt0aGlzLm5TPTA7dGhpcy5GRj10aGlzLm51PXRoaXMub0w9dGhpcy5lJD0hMTt0aGlzLk49e307dGhpcy5qVz10aGlzLlJhPXRoaXMudlg9dGhpcy5kaXNhYmxlQXYxPXRoaXMuYmQ9dGhpcy5Rcj10aGlzLnlFPXRoaXMuWVo9dGhpcy5CVj10aGlzLko9dGhpcy5XPXRoaXMuRD0hMTt0aGlzLlMkPTA7dGhpcy5UQz0hMTt0aGlzLnM1PXRoaXMueVEuUygiaHRtbDVfZGlzYWJsZV9hYWNfcHJlZmVyZW5jZSIpO3RoaXMud2E9SW5maW5pdHk7dGhpcy54ZD0wO3RoaXMuTEI9dGhpcy55US5XWCgpO3RoaXMuSEQ9dGhpcy55US5leHBlcmltZW50cy5FcSgiaHRtbDVfZW5hYmxlX3ZwOV9mYWlycGxheSIpO3RoaXMuTWQ9dGhpcy55US5TKCJodG1sNV9mb3JjZV9hdjFfZm9yX3Rlc3RpbmciKTsKdGhpcy55dz10aGlzLnlRLlp0KCkuTi5RUShWSWopO3RoaXMudko9Zy5kTSh0aGlzLnlRLmV4cGVyaW1lbnRzLCJodG1sNV9hdjFfb3JkaW5hbF9jYXAiKTt0aGlzLlU1PXRoaXMueVEuUygiaHRtbDVfZGlzYWJsZV9oZnJfd2hlbl92cDlfZW5jcnlwdGVkXzJrNGtfdW5zdXBwb3J0ZWQiKTt0aGlzLkU1PXRoaXMueVEuUygiaHRtbDVfYWNjb3VudF9vbmVzaWVfZm9ybWF0X3NlbGVjdGlvbl9kdXJpbmdfZm9ybWF0X2ZpbHRlciIpO3RoaXMuTnM9Zy5kTSh0aGlzLnlRLmV4cGVyaW1lbnRzLCJodG1sNV9tYXhfYnl0ZXJhdGUiKTt0aGlzLlZRPXRoaXMueVEuUygiaHRtbDVfZW5hYmxlX2lhbWZfYXVkaW8iKTt0aGlzLmZCPXRoaXMueVEuWnQoKS5OLlFRKFFPeCk7dGhpcy5EdD10aGlzLnlRLmV4cGVyaW1lbnRzLkVxKCJodG1sNV9hbGxvd19jYXBhYmlsaXR5X21lcmdlIik7dGhpcy5ZJD10aGlzLnlRLlMoImh0bWw1X2VuYWJsZV9lbmNyeXB0ZWRfYXYxIik7dGhpcy5ZWj10aGlzLnlRLlp0KCkuTi5RUShaN1UpfHwKdGhpcy55US5TKCJkaXNhYmxlX3ByZWZlcl9oYnJfdnA5Iil9fTt2YXIgcjE9Y2xhc3N7Y29uc3RydWN0b3IobixXLEQsYil7dGhpcy5mbGF2b3I9bjt0aGlzLmtleVN5c3RlbT1XO3RoaXMuVz1EO3RoaXMuZXhwZXJpbWVudHM9Yjt0aGlzLko9e307dGhpcy5DaT10aGlzLmtleVN5c3RlbUFjY2Vzcz1udWxsO3RoaXMuamk9dGhpcy5WOT0tMTt0aGlzLkZjPW51bGw7dGhpcy5YPSEhYiYmYi5FcSgiZWRnZV9ub25wcmVmaXhlZF9lbWUiKTtiJiZiLkVxKCJodG1sNV9lbmFibGVfdnA5X2ZhaXJwbGF5Iil9Y2xvbmUobil7cmV0dXJuIG5ldyByMSh0aGlzLmZsYXZvcixuLHRoaXMuVyx0aGlzLmV4cGVyaW1lbnRzKX1OKCl7cmV0dXJuIHRoaXMua2V5U3lzdGVtPT09ImNvbS55b3V0dWJlLmZhaXJwbGF5LnNiZGwifXlyKCl7cmV0dXJue2ZsYXZvcjp0aGlzLmZsYXZvcixrZXlTeXN0ZW06dGhpcy5rZXlTeXN0ZW19fWtMKCl7c3dpdGNoKHRoaXMua2V5U3lzdGVtKXtjYXNlICJjb20ueW91dHViZS5wbGF5cmVhZHkiOnJldHVybiJQUlkiO2Nhc2UgImNvbS5taWNyb3NvZnQucGxheXJlYWR5IjpyZXR1cm4iUFJNIjsKY2FzZSAiY29tLndpZGV2aW5lLmFscGhhIjpyZXR1cm4iV1ZBIjtjYXNlICJjb20ueW91dHViZS53aWRldmluZS5sMyI6cmV0dXJuIldWWSI7Y2FzZSAiY29tLnlvdXR1YmUuZmFpcnBsYXkiOnJldHVybiJGUFkiO2Nhc2UgImNvbS55b3V0dWJlLmZhaXJwbGF5LnNiZGwiOnJldHVybiJGUEMiO2Nhc2UgImNvbS5hcHBsZS5mcHMuMV8wIjpyZXR1cm4iRlBBIjtkZWZhdWx0OnJldHVybiB0aGlzLmtleVN5c3RlbX19fSxxVj17cGxheXJlYWR5OlsiY29tLnlvdXR1YmUucGxheXJlYWR5IiwiY29tLm1pY3Jvc29mdC5wbGF5cmVhZHkiXSx3aWRldmluZTpbImNvbS55b3V0dWJlLndpZGV2aW5lLmwzIiwiY29tLndpZGV2aW5lLmFscGhhIl19LHZRQz17d2lkZXZpbmU6IkRSTV9TWVNURU1fV0lERVZJTkUiLGZhaXJwbGF5OiJEUk1fU1lTVEVNX0ZBSVJQTEFZIixwbGF5cmVhZHk6IkRSTV9TWVNURU1fUExBWVJFQURZIn0seFZpPXt3aWRldmluZToxLGZhaXJwbGF5OjIscGxheXJlYWR5OjN9O3ZhciBaV1M9Y2xhc3MgZXh0ZW5kcyBnLkZNe2NvbnN0cnVjdG9yKG4sVyxELGI9ITEsdil7c3VwZXIoKTt0aGlzLnlRPVc7dGhpcy51c2VDb2JhbHRXaWRldmluZT1iO3RoaXMuVT12O3RoaXMuSj1bXTt0aGlzLlc9e307dGhpcy5OPXt9O3RoaXMuY2FsbGJhY2s9bnVsbDt0aGlzLmo9ITE7dGhpcy5YPVtdO3RoaXMuaW5pdGlhbGl6ZShuLCFEKX1pbml0aWFsaXplKG4sVyl7Zm9yKGxldCBiIG9mIE9iamVjdC5rZXlzKG4pKXt2YXIgRD1iO2ZvcihsZXQgdiBvZiBuW0RdKWlmKHYuY29udGVudFByb3RlY3Rpb24pZm9yKGxldCBrIG9mIE9iamVjdC5rZXlzKHYuY29udGVudFByb3RlY3Rpb24pKXtEPWs7bGV0IGg9cVZba107IWgmJnRoaXMuUygiaHRtbA=="}},"time_used":49,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":15,"receive":34,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"js.intercomcdn.com/vendor.f6b64953.js","fqdn":"js.intercomcdn.com","domain":"intercomcdn.com","tld":"com"},"ip":{"addr":"3.164.240.40","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:41.424Z","timestamp":1785121661424,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.intercomcdn.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Tue, 30 Sep 2025 00:00:00 GMT","end":"Wed, 28 Oct 2026 23:59:59 GMT"},"fingerprint":{"sha1":"64:9F:0E:45:43:8B:97:70:93:C0:3C:A3:8C:86:3C:74:78:46:6C:83","sha256":"E3:A5:51:D3:19:77:B6:1B:44:2E:AB:1F:87:9D:CF:AA:C8:71:56:3F:4E:E4:70:F5:F0:03:7E:70:C2:D9:65:BF"}}},"request":{"raw":"GET /vendor.f6b64953.js HTTP/1.1\r\nHost: js.intercomcdn.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://7bridgecapital.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://7bridgecapital.com/\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\ncontent-type: application/javascript; charset=UTF-8\r\ncontent-length: 105309\r\nlast-modified: Fri, 24 Jul 2026 17:54:10 GMT\r\nx-amz-server-side-encryption: AES256\r\ncontent-encoding: br\r\nx-amz-version-id: gSyhOd84n4bH2pNnVosYoCXpdX1s6WKQ\r\naccept-ranges: bytes\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 02:52:21 GMT\r\ncache-control: max-age=31536000, s-maxage=7200, public\r\netag: \"4538dd75cfb66fce4ef736f330d5e028\"\r\nvary: Accept-Encoding\r\nx-cache: Hit from cloudfront\r\nvia: 1.1 39e03a84352b80cf7e2b59c41f27a026.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: ARN53-P2\r\nalt-svc: h3=\":443\"; ma=86400\r\nx-amz-cf-id: 1uEdOj-HDQcYZjRGejQ5tviDLlAi1mmUsK0vn5L918GIuKndbrWdGw==\r\nage: 922\r\nx-content-type-options: nosniff\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\ncross-origin-resource-policy: cross-origin\r\naccess-control-allow-origin: *\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"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"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]}],"data":{"size":397454,"size_decoded":106195,"mime_type":"application/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (65463)","md5":"4d9436d68f9ee1f2389a2de10ddbbdd3","sha1":"a472e4820eef593bcf64720e8c11175598a34036","sha256":"94b057d90fbc8cc546a4d555f636fd8ff6a9013c892081a180e2b9023dba9e49","sha512":"fd612974dcbff1a442af50f95441ee1f520eb30b9d8af4687fa2c1f15e077262bef5072b504e3a0144653a4c7170178ba0c9eb3fbbf431a67d315caf82f444d8","ssdeep":"6144:gO9oPLOHjCCmnwIRTyphvMFWfwuTqhhOA4OpF:gOqPLOHjCrwIRTyplMFWfwT3","tlshash":"88843a9db691f47107a712f6807f140bf3ba1969344c4450faa9c8dd28f998d923bf2e","first_seen":"2026-07-14T15:01:34.133346Z","last_seen":"2026-07-27T05:14:04.720549Z","times_seen":1648,"resource_available":true,"data":"LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgdmVuZG9yLmY2YjY0OTUzLmpzLkxJQ0VOU0UudHh0ICovCihnbG9iYWxUaGlzLndlYnBhY2tDaHVua2ludGVyY29tX2pzPWdsb2JhbFRoaXMud2VicGFja0NodW5raW50ZXJjb21fanN8fFtdKS5wdXNoKFtbNDEyMV0sezg0MzAwOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7ci5kKHQse0E6ZnVuY3Rpb24oKXtyZXR1cm4gc2V9fSk7dmFyIG49ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3ZhciB0PXRoaXM7dGhpcy5faW5zZXJ0VGFnPWZ1bmN0aW9uKGUpe3ZhciByO3I9MD09PXQudGFncy5sZW5ndGg/dC5pbnNlcnRpb25Qb2ludD90Lmluc2VydGlvblBvaW50Lm5leHRTaWJsaW5nOnQucHJlcGVuZD90LmNvbnRhaW5lci5maXJzdENoaWxkOnQuYmVmb3JlOnQudGFnc1t0LnRhZ3MubGVuZ3RoLTFdLm5leHRTaWJsaW5nLHQuY29udGFpbmVyLmluc2VydEJlZm9yZShlLHIpLHQudGFncy5wdXNoKGUpfSx0aGlzLmlzU3BlZWR5PXZvaWQgMD09PWUuc3BlZWR5fHxlLnNwZWVkeSx0aGlzLnRhZ3M9W10sdGhpcy5jdHI9MCx0aGlzLm5vbmNlPWUubm9uY2UsdGhpcy5rZXk9ZS5rZXksdGhpcy5jb250YWluZXI9ZS5jb250YWluZXIsdGhpcy5wcmVwZW5kPWUucHJlcGVuZCx0aGlzLmluc2VydGlvblBvaW50PWUuaW5zZXJ0aW9uUG9pbnQsdGhpcy5iZWZvcmU9bnVsbH12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC5oeWRyYXRlPWZ1bmN0aW9uKGUpe2UuZm9yRWFjaCh0aGlzLl9pbnNlcnRUYWcpfSx0Lmluc2VydD1mdW5jdGlvbihlKXt0aGlzLmN0ciUodGhpcy5pc1NwZWVkeT82NWUzOjEpPT0wJiZ0aGlzLl9pbnNlcnRUYWcoZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoImRhdGEtZW1vdGlvbiIsZS5rZXkpLHZvaWQgMCE9PWUubm9uY2UmJnQuc2V0QXR0cmlidXRlKCJub25jZSIsZS5ub25jZSksdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIikpLHQuc2V0QXR0cmlidXRlKCJkYXRhLXMiLCIiKSx0fSh0aGlzKSk7dmFyIHQ9dGhpcy50YWdzW3RoaXMudGFncy5sZW5ndGgtMV07aWYodGhpcy5pc1NwZWVkeSl7dmFyIHI9ZnVuY3Rpb24oZSl7aWYoZS5zaGVldClyZXR1cm4gZS5zaGVldDtmb3IodmFyIHQ9MDt0PGRvY3VtZW50LnN0eWxlU2hlZXRzLmxlbmd0aDt0KyspaWYoZG9jdW1lbnQuc3R5bGVTaGVldHNbdF0ub3duZXJOb2RlPT09ZSlyZXR1cm4gZG9jdW1lbnQuc3R5bGVTaGVldHNbdF19KHQpO3RyeXtyLmluc2VydFJ1bGUoZSxyLmNzc1J1bGVzLmxlbmd0aCl9Y2F0Y2goZSl7MH19ZWxzZSB0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKTt0aGlzLmN0cisrfSx0LmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy50YWdzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0pKSx0aGlzLnRhZ3M9W10sdGhpcy5jdHI9MH0sZX0oKSxvPU1hdGguYWJzLGk9U3RyaW5nLmZyb21DaGFyQ29kZSxhPU9iamVjdC5hc3NpZ247ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZS50cmltKCl9ZnVuY3Rpb24gYyhlLHQscil7cmV0dXJuIGUucmVwbGFjZSh0LHIpfWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gZS5pbmRleE9mKHQpfWZ1bmN0aW9uIGwoZSx0KXtyZXR1cm4gMHxlLmNoYXJDb2RlQXQodCl9ZnVuY3Rpb24gZihlLHQscil7cmV0dXJuIGUuc2xpY2UodCxyKX1mdW5jdGlvbiBkKGUpe3JldHVybiBlLmxlbmd0aH1mdW5jdGlvbiBwKGUpe3JldHVybiBlLmxlbmd0aH1mdW5jdGlvbiBfKGUsdCl7cmV0dXJuIHQucHVzaChlKSxlfXZhciBoPTEsbT0xLHk9MCxnPTAsdj0wLGI9IiI7ZnVuY3Rpb24gdyhlLHQscixuLG8saSxhKXtyZXR1cm57dmFsdWU6ZSxyb290OnQscGFyZW50OnIsdHlwZTpuLHByb3BzOm8sY2hpbGRyZW46aSxsaW5lOmgsY29sdW1uOm0sbGVuZ3RoOmEscmV0dXJuOiIifX1mdW5jdGlvbiBTKGUsdCl7cmV0dXJuIGEodygiIixudWxsLG51bGwsIiIsbnVsbCxudWxsLDApLGUse2xlbmd0aDotZS5sZW5ndGh9LHQpfWZ1bmN0aW9uIGsoKXtyZXR1cm4gdj1nPjA/bChiLC0tZyk6MCxtLS0sMTA9PT12JiYobT0xLGgtLSksdn1mdW5jdGlvbiB4KCl7cmV0dXJuIHY9Zzx5P2woYixnKyspOjAsbSsrLDEwPT09diYmKG09MSxoKyspLHZ9ZnVuY3Rpb24gRSgpe3JldHVybiBsKGIsZyl9ZnVuY3Rpb24gQSgpe3JldHVybiBnfWZ1bmN0aW9uIFQoZSx0KXtyZXR1cm4gZihiLGUsdCl9ZnVuY3Rpb24gUihlKXtzd2l0Y2goZSl7Y2FzZSAwOmNhc2UgOTpjYXNlIDEwOmNhc2UgMTM6Y2FzZSAzMjpyZXR1cm4gNTtjYXNlIDMzOmNhc2UgNDM6Y2FzZSA0NDpjYXNlIDQ3OmNhc2UgNjI6Y2FzZSA2NDpjYXNlIDEyNjpjYXNlIDU5OmNhc2UgMTIzOmNhc2UgMTI1OnJldHVybiA0O2Nhc2UgNTg6cmV0dXJuIDM7Y2FzZSAzNDpjYXNlIDM5OmNhc2UgNDA6Y2FzZSA5MTpyZXR1cm4gMjtjYXNlIDQxOmNhc2UgOTM6cmV0dXJuIDF9cmV0dXJuIDB9ZnVuY3Rpb24gUChlKXtyZXR1cm4gaD1tPTEseT1kKGI9ZSksZz0wLFtdfWZ1bmN0aW9uIE8oZSl7cmV0dXJuIGI9IiIsZX1mdW5jdGlvbiBNKGUpe3JldHVybiBzKFQoZy0xLGooOTE9PT1lP2UrMjo0MD09PWU/ZSsxOmUpKSl9ZnVuY3Rpb24gRihlKXtmb3IoOyh2PUUoKSkmJnY8MzM7KXgoKTtyZXR1cm4gUihlKT4yfHxSKHYpPjM/IiI6IiAifWZ1bmN0aW9uIEkoZSx0KXtmb3IoOy0tdCYmeCgpJiYhKHY8NDh8fHY+MTAyfHx2PjU3JiZ2PDY1fHx2PjcwJiZ2PDk3KTspO3JldHVybiBUKGUsQSgpKyh0PDYmJjMyPT1FKCkmJjMyPT14KCkpKX1mdW5jdGlvbiBqKGUpe2Zvcig7eCgpOylzd2l0Y2godil7Y2FzZSBlOnJldHVybiBnO2Nhc2UgMzQ6Y2FzZSAzOTozNCE9PWUmJjM5IT09ZSYmaih2KTticmVhaztjYXNlIDQwOjQxPT09ZSYmaihlKTticmVhaztjYXNlIDkyOngoKX1yZXR1cm4gZ31mdW5jdGlvbiBEKGUsdCl7Zm9yKDt4KCkmJmUrdiE9PTU3JiYoZSt2IT09ODR8fDQ3IT09RSgpKTspO3JldHVybiIvKiIrVCh0LGctMSkrIioiK2koNDc9PT1lP2U6eCgpKX1mdW5jdGlvbiBMKGUpe2Zvcig7IVIoRSgpKTspeCgpO3JldHVybiBUKGUsZyl9dmFyIFU9Ii1tcy0iLHo9Ii1tb3otIixCPSItd2Via2l0LSIsSD0iY29tbSIsVz0icnVsZSIsJD0iZGVjbCIscT0iQGtleWZyYW1lcyI7ZnVuY3Rpb24gRyhlLHQpe2Zvcih2YXIgcj0iIixuPXAoZSksbz0wO288bjtvKyspcis9dChlW29dLG8sZSx0KXx8IiI7cmV0dXJuIHJ9ZnVuY3Rpb24gVihlLHQscixuKXtzd2l0Y2goZS50eXBlKXtjYXNlIkBsYXllciI6aWYoZS5jaGlsZHJlbi5sZW5ndGgpYnJlYWs7Y2FzZSJAaW1wb3J0IjpjYXNlICQ6cmV0dXJuIGUucmV0dXJuPWUucmV0dXJufHxlLnZhbHVlO2Nhc2UgSDpyZXR1cm4iIjtjYXNlIHE6cmV0dXJuIGUucmV0dXJuPWUudmFsdWUrInsiK0coZS5jaGlsZHJlbixuKSsifSI7Y2FzZSBXOmUudmFsdWU9ZS5wcm9wcy5qb2luKCIsIil9cmV0dXJuIGQocj1HKGUuY2hpbGRyZW4sbikpP2UucmV0dXJuPWUudmFsdWUrInsiK3IrIn0iOiIifWZ1bmN0aW9uIFkoZSl7cmV0dXJuIE8oSygiIixudWxsLG51bGwsbnVsbCxbIiJdLGU9UChlKSwwLFswXSxlKSl9ZnVuY3Rpb24gSyhlLHQscixuLG8sYSxzLGYscCl7Zm9yKHZhciBoPTAsbT0wLHk9cyxnPTAsdj0wLGI9MCx3PTEsUz0xLFQ9MSxSPTAsUD0iIixPPW8saj1hLFU9bix6PVA7Uzspc3dpdGNoKGI9UixSPXgoKSl7Y2FzZSA0MDppZigxMDghPWImJjU4PT1sKHoseS0xKSl7LTEhPXUoeis9YyhNKFIpLCImIiwiJlxmIiksIiZcZiIpJiYoVD0tMSk7YnJlYWt9Y2FzZSAzNDpjYXNlIDM5OmNhc2UgOTE6eis9TShSKTticmVhaztjYXNlIDk6Y2FzZSAxMDpjYXNlIDEzOmNhc2UgMzI6eis9RihiKTticmVhaztjYXNlIDkyOnorPUkoQSgpLTEsNyk7Y29udGludWU7Y2FzZSA0Nzpzd2l0Y2goRSgpKXtjYXNlIDQyOmNhc2UgNDc6XyhaKEQoeCgpLEEoKSksdCxyKSxwKTticmVhaztkZWZhdWx0OnorPSIvIn1icmVhaztjYXNlIDEyMyp3OmZbaCsrXT1kKHopKlQ7Y2FzZSAxMjUqdzpjYXNlIDU5OmNhc2UgMDpzd2l0Y2goUil7Y2FzZSAwOmNhc2UgMTI1OlM9MDtjYXNlIDU5K206LTE9PVQmJih6PWMoeiwvXGYvZywiIikpLHY+MCYmZCh6KS15JiZfKHY+MzI/USh6KyI7IixuLHIseS0xKTpRKGMoeiwiICIsIiIpKyI7IixuLHIseS0yKSxwKTticmVhaztjYXNlIDU5OnorPSI7IjtkZWZhdWx0OmlmKF8oVT1YKHosdCxyLGgsbSxvLGYsUCxPPVtdLGo9W10seSksYSksMTIzPT09UilpZigwPT09bSlLKHosdCxVLFUsTyxhLHksZixqKTtlbHNlIHN3aXRjaCg5OT09PWcmJjExMD09PWwoeiwzKT8xMDA6Zyl7Y2FzZSAxMDA6Y2FzZSAxMDg6Y2FzZSAxMDk6Y2FzZSAxMTU6SyhlLFUsVSxuJiZfKFgoZSxVLFUsMCwwLG8sZixQLG8sTz1bXSx5KSxqKSxvLGoseSxmLG4/TzpqKTticmVhaztkZWZhdWx0OksoeixVLFUsVSxbIiJdLGosMCxmLGopfX1oPW09dj0wLHc9VD0xLFA9ej0iIix5PXM7YnJlYWs7Y2FzZSA1ODp5PTErZCh6KSx2PWI7ZGVmYXVsdDppZih3PDEpaWYoMTIzPT1SKS0tdztlbHNlIGlmKDEyNT09UiYmMD09dysrJiYxMjU9PWsoKSljb250aW51ZTtzd2l0Y2goeis9aShSKSxSKncpe2Nhc2UgMzg6VD1tPjA/MTooeis9IlxmIiwtMSk7YnJlYWs7Y2FzZSA0NDpmW2grK109KGQoeiktMSkqVCxUPTE7YnJlYWs7Y2FzZSA2NDo0NT09PUUoKSYmKHorPU0oeCgpKSksZz1FKCksbT15PWQoUD16Kz1MKEEoKSkpLFIrKzticmVhaztjYXNlIDQ1OjQ1PT09YiYmMj09ZCh6KSYmKHc9MCl9fXJldHVybiBhfWZ1bmN0aW9uIFgoZSx0LHIsbixpLGEsdSxsLGQsXyxoKXtmb3IodmFyIG09aS0xLHk9MD09PWk/YTpbIiJdLGc9cCh5KSx2PTAsYj0wLFM9MDt2PG47Kyt2KWZvcih2YXIgaz0wLHg9ZihlLG0rMSxtPW8oYj11W3ZdKSksRT1lO2s8ZzsrK2spKEU9cyhiPjA/eVtrXSsiICIreDpjKHgsLyZcZi9nLHlba10pKSkmJihkW1MrK109RSk7cmV0dXJuIHcoZSx0LHIsMD09PWk/VzpsLGQsXyxoKX1mdW5jdGlvbiBaKGUsdCxyKXtyZXR1cm4gdyhlLHQscixILGkodiksZihlLDIsLTIpLDApfWZ1bmN0aW9uIFEoZSx0LHIsbil7cmV0dXJuIHcoZSx0LHIsJCxmKGUsMCxuKSxmKGUsbisxLC0xKSxuKX12YXIgZWU9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgbj0wLG89MDtuPW8sbz1FKCksMzg9PT1uJiYxMj09PW8mJih0W3JdPTEpLCFSKG8pOyl4KCk7cmV0dXJuIFQoZSxnKX0sdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gTyhmdW5jdGlvbihlLHQpe3ZhciByPS0xLG49NDQ7ZG97c3dpdGNoKFIobikpe2Nhc2UgMDozOD09PW4mJjEyPT09RSgpJiYodFtyXT0xKSxlW3JdKz1lZShnLTEsdCxyKTticmVhaztjYXNlIDI6ZVtyXSs9TShuKTticmVhaztjYXNlIDQ6aWYoNDQ9PT1uKXtlWysrcl09NTg9PT1FKCk/IiZcZiI6IiIsdFtyXT1lW3JdLmxlbmd0aDticmVha31kZWZhdWx0OmVbcl0rPWkobil9fXdoaWxlKG49eCgpKTtyZXR1cm4gZX0oUChlKSx0KSl9LHJlPW5ldyBXZWFrTWFwLG5lPWZ1bmN0aW9uKGUpe2lmKCJydWxlIj09PWUudHlwZSYmZS5wYXJlbnQmJiEoZS5sZW5ndGg8MSkpe2Zvcih2YXIgdD1lLnZhbHVlLHI9ZS5wYXJlbnQsbj1lLmNvbHVtbj09PXIuY29sdW1uJiZlLmxpbmU9PT1yLmxpbmU7InJ1bGUiIT09ci50eXBlOylpZighKHI9ci5wYXJlbnQpKXJldHVybjtpZigoMSE9PWUucHJvcHMubGVuZ3RofHw1OD09PXQuY2hhckNvZGVBdCgwKXx8cmUuZ2V0KHIpKSYmIW4pe3JlLnNldChlLCEwKTtmb3IodmFyIG89W10saT10ZSh0LG8pLGE9ci5wcm9wcyxzPTAsYz0wO3M8aS5sZW5ndGg7cysrKWZvcih2YXIgdT0wO3U8YS5sZW5ndGg7dSsrLGMrKyllLnByb3BzW2NdPW9bc10/aVtzXS5yZXBsYWNlKC8mXGYvZyxhW3VdKTphW3VdKyIgIitpW3NdfX19LG9lPWZ1bmN0aW9uKGUpe2lmKCJkZWNsIj09PWUudHlwZSl7dmFyIHQ9ZS52YWx1ZTsxMDg9PT10LmNoYXJDb2RlQXQoMCkmJjk4PT09dC5jaGFyQ29kZUF0KDIpJiYoZS5yZXR1cm49IiIsZS52YWx1ZT0iIil9fTtmdW5jdGlvbiBpZShlLHQpe3N3aXRjaChmdW5jdGlvbihlLHQpe3JldHVybiA0NV5sKGUsMCk/KCgodDw8Ml5sKGUsMCkpPDwyXmwoZSwxKSk8PDJebChlLDIpKTw8Ml5sKGUsMyk6MH0oZSx0KSl7Y2FzZSA1MTAzOnJldHVybiBCKyJwcmludC0iK2UrZTtjYXNlIDU3Mzc6Y2FzZSA0MjAxOmNhc2UgMzE3NzpjYXNlIDM0MzM6Y2FzZSAxNjQxOmNhc2UgNDQ1NzpjYXNlIDI5MjE6Y2FzZSA1NTcyOmNhc2UgNjM1NjpjYXNlIDU4NDQ6Y2FzZSAzMTkxOmNhc2UgNjY0NTpjYXNlIDMwMDU6Y2FzZSA2MzkxOmNhc2UgNTg3OTpjYXNlIDU2MjM6Y2FzZSA2MTM1OmNhc2UgNDU5OTpjYXNlIDQ4NTU6Y2FzZSA0MjE1OmNhc2UgNjM4OTpjYXNlIDUxMDk6Y2FzZSA1MzY1OmNhc2UgNTYyMTpjYXNlIDM4Mjk6cmV0dXJuIEIrZStlO2Nhc2UgNTM0OTpjYXNlIDQyNDY6Y2FzZSA0ODEwOmNhc2UgNjk2ODpjYXNlIDI3NTY6cmV0dXJuIEIrZSt6K2UrVStlK2U7Y2FzZSA2ODI4OmNhc2UgNDI2ODpyZXR1cm4gQitlK1UrZStlO2Nhc2UgNjE2NTpyZXR1cm4gQitlK1UrImZsZXgtIitlK2U7Y2FzZSA1MTg3OnJldHVybiBCK2UrYyhlLC8oXHcrKS4rKDpbXl0rKS8sQisiYm94LSQxJDIiK1UrImZsZXgtJDEkMiIpK2U7Y2FzZSA1NDQzOnJldHVybiBCK2UrVSsiZmxleC1pdGVtLSIrYyhlLC9mbGV4LXwtc2VsZi8sIiIpK2U7Y2FzZSA0Njc1OnJldHVybiBCK2UrVSsiZmxleC1saW5lLXBhY2siK2MoZSwvYWxpZ24tY29udGVudHxmbGV4LXwtc2VsZi8sIiIpK2U7Y2FzZSA1NTQ4OnJldHVybiBCK2UrVStjKGUsInNocmluayIsIm5lZ2F0aXZlIikrZTtjYXNlIDUyOTI6cmV0dXJuIEIrZStVK2MoZSwiYmFzaXMiLCJwcmVmZXJyZWQtc2l6ZSIpK2U7Y2FzZSA2MDYwOnJldHVybiBCKyJib3gtIitjKGUsIi1ncm93IiwiIikrQitlK1UrYyhlLCJncm93IiwicG9zaXRpdmUiKStlO2Nhc2UgNDU1NDpyZXR1cm4gQitjKGUsLyhbXi1dKSh0cmFuc2Zvcm0pL2csIiQxIitCKyIkMiIpK2U7Y2FzZSA2MTg3OnJldHVybiBjKGMoYyhlLC8oem9vbS18Z3JhYikvLEIrIiQxIiksLyhpbWFnZS1zZXQpLyxCKyIkMSIpLGUsIiIpK2U7Y2FzZSA1NDk1OmNhc2UgMzk1OTpyZXR1cm4gYyhlLC8oaW1hZ2Utc2V0XChbXl0qKS8sQisiJDEkYCQxIik7Y2FzZSA0OTY4OnJldHVybiBjKGMoZSwvKC4rOikoZmxleC0pPyguKikvLEIrImJveC1wYWNrOiQzIitVKyJmbGV4LXBhY2s6JDMiKSwvcy4rLWJbXjtdKy8sImp1c3RpZnkiKStCK2UrZTtjYXNlIDQwOTU6Y2FzZSAzNTgzOmNhc2UgNDA2ODpjYXNlIDI1MzI6cmV0dXJuIGMoZSwvKC4rKS1pbmxpbmUoLispLyxCKyIkMSQyIikrZTtjYXNlIDgxMTY6Y2FzZSA3MDU5OmNhc2UgNTc1MzpjYXNlIDU1MzU6Y2FzZSA1NDQ1OmNhc2UgNTcwMTpjYXNlIDQ5MzM6Y2FzZSA0Njc3OmNhc2UgNTUzMzpjYXNlIDU3ODk6Y2FzZSA1MDIxOmNhc2UgNDc2NTppZihkKGUpLTEtdD42KXN3aXRjaChsKGUsdCsxKSl7Y2FzZSAxMDk6aWYoNDUhPT1sKGUsdCs0KSlicmVhaztjYXNlIDEwMjpyZXR1cm4gYyhlLC8oLis6KSguKyktKFteXSspLywiJDEiK0IrIiQyLSQzJDEiK3orKDEwOD09bChlLHQrMyk/IiQzIjoiJDItJDMiKSkrZTtjYXNlIDExNTpyZXR1cm5+dShlLCJzdHJldGNoIik/aWUoYyhlLCJzdHJldGNoIiwiZmlsbC1hdmFpbGFibGUiKSx0KStlOmV9YnJlYWs7Y2FzZSA0OTQ5OmlmKDExNSE9PWwoZSx0KzEpKWJyZWFrO2Nhc2UgNjQ0NDpzd2l0Y2gobChlLGQoZSktMy0ofnUoZSwiIWltcG9ydGFudCIpJiYxMCkpKXtjYXNlIDEwNzpyZXR1cm4gYyhlLCI6IiwiOiIrQikrZTtjYXNlIDEwMTpyZXR1cm4gYyhlLC8oLis6KShbXjshXSspKDt8IS4rKT8vLCIkMSIrQisoNDU9PT1sKGUsMTQpPyJpbmxpbmUtIjoiIikrImJveCQzJDEiK0IrIiQyJDMkMSIrVSsiJDJib3gkMyIpK2V9YnJlYWs7Y2FzZSA1OTM2OnN3aXRjaChsKGUsdCsxMSkpe2Nhc2UgMTE0OnJldHVybiBCK2UrVStjKGUsL1tzdmhdXHcrLVt0YmxyXXsyfS8sInRiIikrZTtjYXNlIDEwODpyZXR1cm4gQitlK1UrYyhlLC9bc3ZoXVx3Ky1bdGJscl17Mn0vLCJ0Yi1ybCIpK2U7Y2FzZSA0NTpyZXR1cm4gQitlK1UrYyhlLC9bc3ZoXVx3Ky1bdGJscl17Mn0vLCJsciIpK2V9cmV0dXJuIEIrZStVK2UrZX1yZXR1cm4gZX12YXIgYWU9W2Z1bmN0aW9uKGUsdCxyLG4pe2lmKGUubGVuZ3RoPi0xJiYhZS5yZXR1cm4pc3dpdGNoKGUudHlwZSl7Y2FzZSAkOmUucmV0dXJuPWllKGUudmFsdWUsZS5sZW5ndGgpO2JyZWFrO2Nhc2UgcTpyZXR1cm4gRyhbUyhlLHt2YWx1ZTpjKGUudmFsdWUsIkAiLCJAIitCKX0pXSxuKTtjYXNlIFc6aWYoZS5sZW5ndGgpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUubWFwKHQpLmpvaW4oIiIpfShlLnByb3BzLChmdW5jdGlvbih0KXtzd2l0Y2goZnVuY3Rpb24oZSx0KXtyZXR1cm4oZT10LmV4ZWMoZSkpP2VbMF06ZX0odCwvKDo6cGxhY1x3K3w6cmVhZC1cdyspLykpe2Nhc2UiOnJlYWQtb25seSI6Y2FzZSI6cmVhZC13cml0ZSI6cmV0dXJuIEcoW1MoZSx7cHJvcHM6W2ModCwvOihyZWFkLVx3KykvLCI6LW1vei0kMSIpXX0pXSxuKTtjYXNlIjo6cGxhY2Vob2xkZXIiOnJldHVybiBHKFtTKGUse3Byb3BzOltjKHQsLzoocGxhY1x3KykvLCI6IitCKyJpbnB1dC0kMSIpXX0pLFMoZSx7cHJvcHM6W2ModCwvOihwbGFjXHcrKS8sIjotbW96LSQxIildfSksUyhlLHtwcm9wczpbYyh0LC86KHBsYWNcdyspLyxVKyJpbnB1dC0kMSIpXX0pXSxuKX1yZXR1cm4iIn0pKX19XSxzZT1mdW5jdGlvbihlKXt2YXIgdD1lLmtleTtpZigiY3NzIj09PXQpe3ZhciByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlW2RhdGEtZW1vdGlvbl06bm90KFtkYXRhLXNdKSIpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwociwoZnVuY3Rpb24oZSl7LTEhPT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1lbW90aW9uIikuaW5kZXhPZigiICIpJiYoZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChlKSxlLnNldEF0dHJpYnV0ZSgiZGF0YS1zIiwiIikpfSkpfXZhciBvPWUuc3R5bGlzUGx1Z2luc3x8YWU7dmFyIGksYSxzPXt9LGM9W107aT1lLmNvbnRhaW5lcnx8ZG9jdW1lbnQuaGVhZCxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlW2RhdGEtZW1vdGlvbl49IicrdCsnICJdJyksKGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmdldEF0dHJpYnV0ZSgiZGF0YS1lbW90aW9uIikuc3BsaXQoIiAiKSxyPTE7cjx0Lmxlbmd0aDtyKyspc1t0W3JdXT0hMDtjLnB1c2goZSl9KSk7dmFyIHUsbCxmLGQsXz1bViwoZD1mdW5jdGlvbihlKXt1Lmluc2VydChlKX0sZnVuY3Rpb24oZSl7ZS5yb290fHwoZT1lLnJldHVybikmJmQoZSl9KV0saD0obD1bbmUsb2VdLmNvbmNhdChvLF8pLGY9cChsKSxmdW5jdGlvbihlLHQscixuKXtmb3IodmFyIG89IiIsaT0wO2k8ZjtpKyspbys9bFtpXShlLHQscixuKXx8IiI7cmV0dXJuIG99KTthPWZ1bmN0aW9uKGUsdCxyLG4pe3U9cixHKFkoZT9lKyJ7Iit0LnN0eWxlcysifSI6dC5zdHlsZXMpLGgpLG4mJihtLmluc2VydGVkW3QubmFtZV09ITApfTt2YXIgbT17a2V5OnQsc2hlZXQ6bmV3IG4oe2tleTp0LGNvbnRhaW5lcjppLG5vbmNlOmUubm9uY2Usc3BlZWR5OmUuc3BlZWR5LHByZXBlbmQ6ZS5wcmVwZW5kLGluc2VydGlvblBvaW50OmUuaW5zZXJ0aW9uUG9pbnR9KSxub25jZTplLm5vbmNlLGluc2VydGVkOnMscmVnaXN0ZXJlZDp7fSxpbnNlcnQ6YX07cmV0dXJuIG0uc2hlZXQuaHlkcmF0ZShjKSxtfX0sMzYyODk6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUpe3ZhciB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB2b2lkIDA9PT10W3JdJiYodFtyXT1lKHIpKSx0W3JdfX1yLmQodCx7QTpmdW5jdGlvbigpe3JldHVybiBufX0pfSw0MDA4NTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtDOmZ1bmN0aW9uKCl7cmV0dXJuIHB9LEU6ZnVuY3Rpb24oKXtyZXR1cm4gd30sVDpmdW5jdGlvbigpe3JldHVybiBofSxhOmZ1bmN0aW9uKCl7cmV0dXJuIHl9LGM6ZnVuY3Rpb24oKXtyZXR1cm4gdn0saDpmdW5jdGlvbigpe3JldHVybiBmfSxpOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gX319KTt2YXIgbj1yKDk2NTQwKSxvPXIoODQzMDApLGk9cig1ODE2OCksYT1yKDkyODA5KSxzPXIoMzAwNDEpLGM9cigxMzQ1MSksdT1yKDcxMjg3KSxsPSEwLGY9e30uaGFzT3duUHJvcGVydHksZD1uLmNyZWF0ZUNvbnRleHQoInVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MRWxlbWVudD8oMCxvLkEpKHtrZXk6ImNzcyJ9KTpudWxsKTt2YXIgcD1kLlByb3ZpZGVyLF89ZnVuY3Rpb24oZSl7cmV0dXJuKDAsbi5mb3J3YXJkUmVmKSgoZnVuY3Rpb24odCxyKXt2YXIgbz0oMCxuLnVzZUNvbnRleHQpKGQpO3JldHVybiBlKHQsbyxyKX0pKX07bHx8KF89ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciByPSgwLG4udXNlQ29udGV4dCkoZCk7cmV0dXJuIG51bGw9PT1yPyhyPSgwLG8uQSkoe2tleToiY3NzIn0pLG4uY3JlYXRlRWxlbWVudChkLlByb3ZpZGVyLHt2YWx1ZTpyfSxlKHQscikpKTplKHQscil9fSk7dmFyIGg9bi5jcmVhdGVDb250ZXh0KHt9KTt2YXIgbT0oMCxhLkEpKChmdW5jdGlvbihlKXtyZXR1cm4oMCxhLkEpKChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90KGUpOigwLGkuQSkoe30sZSx0KX0oZSx0KX0pKX0pKSx5PWZ1bmN0aW9uKGUpe3ZhciB0PW4udXNlQ29udGV4dChoKTtyZXR1cm4gZS50aGVtZSE9PXQmJih0PW0odCkoZS50aGVtZSkpLG4uY3JlYXRlRWxlbWVudChoLlByb3ZpZGVyLHt2YWx1ZTp0fSxlLmNoaWxkcmVuKX07dmFyIGc9Il9fRU1PVElPTl9UWVBFX1BMRUFTRV9ET19OT1RfVVNFX18iLHY9ZnVuY3Rpb24oZSx0KXt2YXIgcj17fTtmb3IodmFyIG4gaW4gdClmLmNhbGwodCxuKSYmKHJbbl09dFtuXSk7cmV0dXJuIHJbZ109ZSxyfSxiPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2FjaGUscj1lLnNlcmlhbGl6ZWQsbj1lLmlzU3RyaW5nVGFnO3JldHVybigwLHMuU0YpKHQscixuKSwoMCx1LnMpKChmdW5jdGlvbigpe3JldHVybigwLHMuc2spKHQscixuKX0pKSxudWxsfTt2YXIgdz1fKChmdW5jdGlvbihlLHQscil7dmFyIG89ZS5jc3M7InN0cmluZyI9PXR5cGVvZiBvJiZ2b2lkIDAhPT10LnJlZ2lzdGVyZWRbb10mJihvPXQucmVnaXN0ZXJlZFtvXSk7dmFyIGk9ZVtnXSxhPVtvXSx1PSIiOyJzdHJpbmciPT10eXBlb2YgZS5jbGFzc05hbWU/dT0oMCxzLlJrKSh0LnJlZ2lzdGVyZWQsYSxlLmNsYXNzTmFtZSk6bnVsbCE9ZS5jbGFzc05hbWUmJih1PWUuY2xhc3NOYW1lKyIgIik7dmFyIGw9KDAsYy5KKShhLHZvaWQgMCxuLnVzZUNvbnRleHQoaCkpO3UrPXQua2V5KyItIitsLm5hbWU7dmFyIGQ9e307Zm9yKHZhciBwIGluIGUpZi5jYWxsKGUscCkmJiJjc3MiIT09cCYmcCE9PWcmJihkW3BdPWVbcF0pO3JldHVybiBkLnJlZj1yLGQuY2xhc3NOYW1lPXUsbi5jcmVhdGVFbGVtZW50KG4uRnJhZ21lbnQsbnVsbCxuLmNyZWF0ZUVsZW1lbnQoYix7Y2FjaGU6dCxzZXJpYWxpemVkOmwsaXNTdHJpbmdUYWc6InN0cmluZyI9PXR5cGVvZiBpfSksbi5jcmVhdGVFbGVtZW50KGksZCkpfSkpfSwxNzQzNzpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtBSDpmdW5jdGlvbigpe3JldHVybiBsfSxZOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LFoyOmZ1bmN0aW9uKCl7cmV0dXJuIF99LGk3OmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LG1MOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSk7dmFyIG49cig0MDA4NSksbz1yKDk2NTQwKSxpPXIoMzAwNDEpLGE9cig3MTI4Nykscz1yKDEzNDUxKSxjPShyKDg0MzAwKSxyKDQxNDYpLGZ1bmN0aW9uKGUsdCl7dmFyIHI9YXJndW1lbnRzO2lmKG51bGw9PXR8fCFuLmguY2FsbCh0LCJjc3MiKSlyZXR1cm4gby5jcmVhdGVFbGVtZW50LmFwcGx5KHZvaWQgMCxyKTt2YXIgaT1yLmxlbmd0aCxhPW5ldyBBcnJheShpKTthWzBdPW4uRSxhWzFdPSgwLG4uYykoZSx0KTtmb3IodmFyIHM9MjtzPGk7cysrKWFbc109cltzXTtyZXR1cm4gby5jcmVhdGVFbGVtZW50LmFwcGx5KG51bGwsYSl9KSx1PSgwLG4udykoKGZ1bmN0aW9uKGUsdCl7dmFyIHI9ZS5zdHlsZXMsYz0oMCxzLkopKFtyXSx2b2lkIDAsby51c2VDb250ZXh0KG4uVCkpO2lmKCFuLmkpe2Zvcih2YXIgdSxsPWMubmFtZSxmPWMuc3R5bGVzLGQ9Yy5uZXh0O3ZvaWQgMCE9PWQ7KWwrPSIgIitkLm5hbWUsZis9ZC5zdHlsZXMsZD1kLm5leHQ7dmFyIHA9ITA9PT10LmNvbXBhdCxfPXQuaW5zZXJ0KCIiLHtuYW1lOmwsc3R5bGVzOmZ9LHQuc2hlZXQscCk7cmV0dXJuIHA/bnVsbDpvLmNyZWF0ZUVsZW1lbnQoInN0eWxlIiwoKHU9e30pWyJkYXRhLWVtb3Rpb24iXT10LmtleSsiLWdsb2JhbCAiK2wsdS5kYW5nZXJvdXNseVNldElubmVySFRNTD17X19odG1sOl99LHUubm9uY2U9dC5zaGVldC5ub25jZSx1KSl9dmFyIGg9by51c2VSZWYoKTtyZXR1cm4oMCxhLmkpKChmdW5jdGlvbigpe3ZhciBlPXQua2V5KyItZ2xvYmFsIixyPW5ldyB0LnNoZWV0LmNvbnN0cnVjdG9yKHtrZXk6ZSxub25jZTp0LnNoZWV0Lm5vbmNlLGNvbnRhaW5lcjp0LnNoZWV0LmNvbnRhaW5lcixzcGVlZHk6dC5zaGVldC5pc1NwZWVkeX0pLG49ITEsbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzdHlsZVtkYXRhLWVtb3Rpb249IicrZSsiICIrYy5uYW1lKyciXScpO3JldHVybiB0LnNoZWV0LnRhZ3MubGVuZ3RoJiYoci5iZWZvcmU9dC5zaGVldC50YWdzWzBdKSxudWxsIT09byYmKG49ITAsby5zZXRBdHRyaWJ1dGUoImRhdGEtZW1vdGlvbiIsZSksci5oeWRyYXRlKFtvXSkpLGguY3VycmVudD1bcixuXSxmdW5jdGlvbigpe3IuZmx1c2goKX19KSxbdF0pLCgwLGEuaSkoKGZ1bmN0aW9uKCl7dmFyIGU9aC5jdXJyZW50LHI9ZVswXTtpZihlWzFdKWVbMV09ITE7ZWxzZXtpZih2b2lkIDAhPT1jLm5leHQmJigwLGkuc2spKHQsYy5uZXh0LCEwKSxyLnRhZ3MubGVuZ3RoKXt2YXIgbj1yLnRhZ3Nbci50YWdzLmxlbmd0aC0xXS5uZXh0RWxlbWVudFNpYmxpbmc7ci5iZWZvcmU9bixyLmZsdXNoKCl9dC5pbnNlcnQoIiIsYyxyLCExKX19KSxbdCxjLm5hbWVdKSxudWxsfSkpO2Z1bmN0aW9uIGwoKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4oMCxzLkopKHQpfXZhciBmPWZ1bmN0aW9uKCl7dmFyIGU9bC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSx0PSJhbmltYXRpb24tIitlLm5hbWU7cmV0dXJue25hbWU6dCxzdHlsZXM6IkBrZXlmcmFtZXMgIit0KyJ7IitlLnN0eWxlcysifSIsYW5pbToxLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIl9FTU9fIit0aGlzLm5hbWUrIl8iK3RoaXMuc3R5bGVzKyJfRU1PXyJ9fX0sZD1mdW5jdGlvbiBlKHQpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPTAsbz0iIjtuPHI7bisrKXt2YXIgaT10W25dO2lmKG51bGwhPWkpe3ZhciBhPXZvaWQgMDtzd2l0Y2godHlwZW9mIGkpe2Nhc2UiYm9vbGVhbiI6YnJlYWs7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoaSkpYT1lKGkpO2Vsc2UgZm9yKHZhciBzIGluIGE9IiIsaSlpW3NdJiZzJiYoYSYmKGErPSIgIiksYSs9cyk7YnJlYWs7ZGVmYXVsdDphPWl9YSYmKG8mJihvKz0iICIpLG8rPWEpfX1yZXR1cm4gb307dmFyIHA9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jYWNoZSxyPWUuc2VyaWFsaXplZEFycjtyZXR1cm4oMCxhLnMpKChmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8ci5sZW5ndGg7ZSsrKSgwLGkuc2spKHQscltlXSwhMSl9KSksbnVsbH0sXz0oMCxuLncpKChmdW5jdGlvbihlLHQpe3ZhciByPVtdLGE9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheShlKSxvPTA7bzxlO28rKyluW29dPWFyZ3VtZW50c1tvXTt2YXIgYT0oMCxzLkopKG4sdC5yZWdpc3RlcmVkKTtyZXR1cm4gci5wdXNoKGEpLCgwLGkuU0YpKHQsYSwhMSksdC5rZXkrIi0iK2EubmFtZX0sYz17Y3NzOmEsY3g6ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShlKSxuPTA7bjxlO24rKylyW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gZnVuY3Rpb24oZSx0LHIpe3ZhciBuPVtdLG89KDAsaS5SaykoZSxuLHIpO3JldHVybiBuLmxlbmd0aDwyP3I6byt0KG4pfSh0LnJlZ2lzdGVyZWQsYSxkKHIpKX0sdGhlbWU6by51c2VDb250ZXh0KG4uVCl9LHU9ZS5jaGlsZHJlbihjKTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQocCx7Y2FjaGU6dCxzZXJpYWxpemVkQXJyOnJ9KSx1KX0pKX0sMTM0NTE6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7SjpmdW5jdGlvbigpe3JldHVybiBffX0pO3ZhciBuPXthbmltYXRpb25JdGVyYXRpb25Db3VudDoxLGFzcGVjdFJhdGlvOjEsYm9yZGVySW1hZ2VPdXRzZXQ6MSxib3JkZXJJbWFnZVNsaWNlOjEsYm9yZGVySW1hZ2VXaWR0aDoxLGJveEZsZXg6MSxib3hGbGV4R3JvdXA6MSxib3hPcmRpbmFsR3JvdXA6MSxjb2x1bW5Db3VudDoxLGNvbHVtbnM6MSxmbGV4OjEsZmxleEdyb3c6MSxmbGV4UG9zaXRpdmU6MSxmbGV4U2hyaW5rOjEsZmxleE5lZ2F0aXZlOjEsZmxleE9yZGVyOjEsZ3JpZFJvdzoxLGdyaWRSb3dFbmQ6MSxncmlkUm93U3BhbjoxLGdyaWRSb3dTdGFydDoxLGdyaWRDb2x1bW46MSxncmlkQ29sdW1uRW5kOjEsZ3JpZENvbHVtblNwYW46MSxncmlkQ29sdW1uU3RhcnQ6MSxtc0dyaWRSb3c6MSxtc0dyaWRSb3dTcGFuOjEsbXNHcmlkQ29sdW1uOjEsbXNHcmlkQ29sdW1uU3BhbjoxLGZvbnRXZWlnaHQ6MSxsaW5lSGVpZ2h0OjEsb3BhY2l0eToxLG9yZGVyOjEsb3JwaGFuczoxLHRhYlNpemU6MSx3aWRvd3M6MSx6SW5kZXg6MSx6b29tOjEsV2Via2l0TGluZUNsYW1wOjEsZmlsbE9wYWNpdHk6MSxmbG9vZE9wYWNpdHk6MSxzdG9wT3BhY2l0eToxLHN0cm9rZURhc2hhcnJheToxLHN0cm9rZURhc2hvZmZzZXQ6MSxzdHJva2VNaXRlcmxpbWl0OjEsc3Ryb2tlT3BhY2l0eToxLHN0cm9rZVdpZHRoOjF9LG89cigzNjI4OSksaT0vW0EtWl18Xm1zL2csYT0vX0VNT18oW15fXSs/KV8oW15dKj8pX0VNT18vZyxzPWZ1bmN0aW9uKGUpe3JldHVybiA0NT09PWUuY2hhckNvZGVBdCgxKX0sYz1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZSYmImJvb2xlYW4iIT10eXBlb2YgZX0sdT0oMCxvLkEpKChmdW5jdGlvbihlKXtyZXR1cm4gcyhlKT9lOmUucmVwbGFjZShpLCItJCYiKS50b0xvd2VyQ2FzZSgpfSkpLGw9ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSJhbmltYXRpb24iOmNhc2UiYW5pbWF0aW9uTmFtZSI6aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0LnJlcGxhY2UoYSwoZnVuY3Rpb24oZSx0LHIpe3JldHVybiBkPXtuYW1lOnQsc3R5bGVzOnIsbmV4dDpkfSx0fSkpfXJldHVybiAxPT09bltlXXx8cyhlKXx8Im51bWJlciIhPXR5cGVvZiB0fHwwPT09dD90OnQrInB4In07ZnVuY3Rpb24gZihlLHQscil7aWYobnVsbD09cilyZXR1cm4iIjtpZih2b2lkIDAhPT1yLl9fZW1vdGlvbl9zdHlsZXMpcmV0dXJuIHI7c3dpdGNoKHR5cGVvZiByKXtjYXNlImJvb2xlYW4iOnJldHVybiIiO2Nhc2Uib2JqZWN0IjppZigxPT09ci5hbmltKXJldHVybiBkPXtuYW1lOnIubmFtZSxzdHlsZXM6ci5zdHlsZXMsbmV4dDpkfSxyLm5hbWU7aWYodm9pZCAwIT09ci5zdHlsZXMpe3ZhciBuPXIubmV4dDtpZih2b2lkIDAhPT1uKWZvcig7dm9pZCAwIT09bjspZD17bmFtZTpuLm5hbWUsc3R5bGVzOm4uc3R5bGVzLG5leHQ6ZH0sbj1uLm5leHQ7cmV0dXJuIHIuc3R5bGVzKyI7In1yZXR1cm4gZnVuY3Rpb24oZSx0LHIpe3ZhciBuPSIiO2lmKEFycmF5LmlzQXJyYXkocikpZm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspbis9ZihlLHQscltvXSkrIjsiO2Vsc2UgZm9yKHZhciBpIGluIHIpe3ZhciBhPXJbaV07aWYoIm9iamVjdCIhPXR5cGVvZiBhKW51bGwhPXQmJnZvaWQgMCE9PXRbYV0/bis9aSsieyIrdFthXSsifSI6YyhhKSYmKG4rPXUoaSkrIjoiK2woaSxhKSsiOyIpO2Vsc2UgaWYoIUFycmF5LmlzQXJyYXkoYSl8fCJzdHJpbmciIT10eXBlb2YgYVswXXx8bnVsbCE9dCYmdm9pZCAwIT09dFthWzBdXSl7dmFyIHM9ZihlLHQsYSk7c3dpdGNoKGkpe2Nhc2UiYW5pbWF0aW9uIjpjYXNlImFuaW1hdGlvbk5hbWUiOm4rPXUoaSkrIjoiK3MrIjsiO2JyZWFrO2RlZmF1bHQ6bis9aSsieyIrcysifSJ9fWVsc2UgZm9yKHZhciBkPTA7ZDxhLmxlbmd0aDtkKyspYyhhW2RdKSYmKG4rPXUoaSkrIjoiK2woaSxhW2RdKSsiOyIpfXJldHVybiBufShlLHQscik7Y2FzZSJmdW5jdGlvbiI6aWYodm9pZCAwIT09ZSl7dmFyIG89ZCxpPXIoZSk7cmV0dXJuIGQ9byxmKGUsdCxpKX19aWYobnVsbD09dClyZXR1cm4gcjt2YXIgYT10W3JdO3JldHVybiB2b2lkIDAhPT1hP2E6cn12YXIgZCxwPS9sYWJlbDpccyooW15ccztcbntdKylccyooO3wkKS9nO3ZhciBfPWZ1bmN0aW9uKGUsdCxyKXtpZigxPT09ZS5sZW5ndGgmJiJvYmplY3QiPT10eXBlb2YgZVswXSYmbnVsbCE9PWVbMF0mJnZvaWQgMCE9PWVbMF0uc3R5bGVzKXJldHVybiBlWzBdO3ZhciBuPSEwLG89IiI7ZD12b2lkIDA7dmFyIGk9ZVswXTtudWxsPT1pfHx2b2lkIDA9PT1pLnJhdz8obj0hMSxvKz1mKHIsdCxpKSk6bys9aVswXTtmb3IodmFyIGE9MTthPGUubGVuZ3RoO2ErKylvKz1mKHIsdCxlW2FdKSxuJiYobys9aVthXSk7cC5sYXN0SW5kZXg9MDtmb3IodmFyIHMsYz0iIjtudWxsIT09KHM9cC5leGVjKG8pKTspYys9Ii0iK3NbMV07dmFyIHU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LHI9MCxuPTAsbz1lLmxlbmd0aDtvPj00OysrbixvLT00KXQ9MTU0MDQ4MzQ3NyooNjU1MzUmKHQ9MjU1JmUuY2hhckNvZGVBdChuKXwoMjU1JmUuY2hhckNvZGVBdCgrK24pKTw8OHwoMjU1JmUuY2hhckNvZGVBdCgrK24pKTw8MTZ8KDI1NSZlLmNoYXJDb2RlQXQoKytuKSk8PDI0KSkrKDU5Nzk3Kih0Pj4+MTYpPDwxNikscj0xNTQwNDgzNDc3Kig2NTUzNSYodF49dD4+PjI0KSkrKDU5Nzk3Kih0Pj4+MTYpPDwxNileMTU0MDQ4MzQ3NyooNjU1MzUmcikrKDU5Nzk3KihyPj4+MTYpPDwxNik7c3dpdGNoKG8pe2Nhc2UgMzpyXj0oMjU1JmUuY2hhckNvZGVBdChuKzIpKTw8MTY7Y2FzZSAyOnJePSgyNTUmZS5jaGFyQ29kZUF0KG4rMSkpPDw4O2Nhc2UgMTpyPTE1NDA0ODM0NzcqKDY1NTM1JihyXj0yNTUmZS5jaGFyQ29kZUF0KG4pKSkrKDU5Nzk3KihyPj4+MTYpPDwxNil9cmV0dXJuKCgocj0xNTQwNDgzNDc3Kig2NTUzNSYocl49cj4+PjEzKSkrKDU5Nzk3KihyPj4+MTYpPDwxNikpXnI+Pj4xNSk+Pj4wKS50b1N0cmluZygzNil9KG8pK2M7cmV0dXJue25hbWU6dSxzdHlsZXM6byxuZXh0OmR9fX0sOTA2NDQ6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7QTpmdW5jdGlvbigpe3JldHVybiB5fX0pO3ZhciBuPXIoNTgxNjgpLG89cig5NjU0MCksaT1yKDM2Mjg5KSxhPS9eKChjaGlsZHJlbnxkYW5nZXJvdXNseVNldElubmVySFRNTHxrZXl8cmVmfGF1dG9Gb2N1c3xkZWZhdWx0VmFsdWV8ZGVmYXVsdENoZWNrZWR8aW5uZXJIVE1MfHN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ3xzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmd8dmFsdWVMaW5rfGFiYnJ8YWNjZXB0fGFjY2VwdENoYXJzZXR8YWNjZXNzS2V5fGFjdGlvbnxhbGxvd3xhbGxvd1VzZXJNZWRpYXxhbGxvd1BheW1lbnRSZXF1ZXN0fGFsbG93RnVsbFNjcmVlbnxhbGxvd1RyYW5zcGFyZW5jeXxhbHR8YXN5bmN8YXV0b0NvbXBsZXRlfGF1dG9QbGF5fGNhcHR1cmV8Y2VsbFBhZGRpbmd8Y2VsbFNwYWNpbmd8Y2hhbGxlbmdlfGNoYXJTZXR8Y2hlY2tlZHxjaXRlfGNsYXNzSUR8Y2xhc3NOYW1lfGNvbHN8Y29sU3Bhbnxjb250ZW50fGNvbnRlbnRFZGl0YWJsZXxjb250ZXh0TWVudXxjb250cm9sc3xjb250cm9sc0xpc3R8Y29vcmRzfGNyb3NzT3JpZ2lufGRhdGF8ZGF0ZVRpbWV8ZGVjb2Rpbmd8ZGVmYXVsdHxkZWZlcnxkaXJ8ZGlzYWJsZWR8ZGlzYWJsZVBpY3R1cmVJblBpY3R1cmV8ZGlzYWJsZVJlbW90ZVBsYXliYWNrfGRvd25sb2FkfGRyYWdnYWJsZXxlbmNUeXBlfGVudGVyS2V5SGludHxmb3JtfGZvcm1BY3Rpb258Zm9ybUVuY1R5cGV8Zm9ybU1ldGhvZHxmb3JtTm9WYWxpZGF0ZXxmb3JtVGFyZ2V0fGZyYW1lQm9yZGVyfGhlYWRlcnN8aGVpZ2h0fGhpZGRlbnxoaWdofGhyZWZ8aHJlZkxhbmd8aHRtbEZvcnxodHRwRXF1aXZ8aWR8aW5wdXRNb2RlfGludGVncml0eXxpc3xrZXlQYXJhbXN8a2V5VHlwZXxraW5kfGxhYmVsfGxhbmd8bGlzdHxsb2FkaW5nfGxvb3B8bG93fG1hcmdpbkhlaWdodHxtYXJnaW5XaWR0aHxtYXh8bWF4TGVuZ3RofG1lZGlhfG1lZGlhR3JvdXB8bWV0aG9kfG1pbnxtaW5MZW5ndGh8bXVsdGlwbGV8bXV0ZWR8bmFtZXxub25jZXxub1ZhbGlkYXRlfG9wZW58b3B0aW11bXxwYXR0ZXJufHBsYWNlaG9sZGVyfHBsYXlzSW5saW5lfHBvc3RlcnxwcmVsb2FkfHByb2ZpbGV8cmFkaW9Hcm91cHxyZWFkT25seXxyZWZlcnJlclBvbGljeXxyZWx8cmVxdWlyZWR8cmV2ZXJzZWR8cm9sZXxyb3dzfHJvd1NwYW58c2FuZGJveHxzY29wZXxzY29wZWR8c2Nyb2xsaW5nfHNlYW1sZXNzfHNlbGVjdGVkfHNoYXBlfHNpemV8c2l6ZXN8c2xvdHxzcGFufHNwZWxsQ2hlY2t8c3JjfHNyY0RvY3xzcmNMYW5nfHNyY1NldHxzdGFydHxzdGVwfHN0eWxlfHN1bW1hcnl8dGFiSW5kZXh8dGFyZ2V0fHRpdGxlfHRyYW5zbGF0ZXx0eXBlfHVzZU1hcHx2YWx1ZXx3aWR0aHx3bW9kZXx3cmFwfGFib3V0fGRhdGF0eXBlfGlubGlzdHxwcmVmaXh8cHJvcGVydHl8cmVzb3VyY2V8dHlwZW9mfHZvY2FifGF1dG9DYXBpdGFsaXplfGF1dG9Db3JyZWN0fGF1dG9TYXZlfGNvbG9yfGluY3JlbWVudGFsfGZhbGxiYWNrfGluZXJ0fGl0ZW1Qcm9wfGl0ZW1TY29wZXxpdGVtVHlwZXxpdGVtSUR8aXRlbVJlZnxvbnxvcHRpb258cmVzdWx0c3xzZWN1cml0eXx1bnNlbGVjdGFibGV8YWNjZW50SGVpZ2h0fGFjY3VtdWxhdGV8YWRkaXRpdmV8YWxpZ25tZW50QmFzZWxpbmV8YWxsb3dSZW9yZGVyfGFscGhhYmV0aWN8YW1wbGl0dWRlfGFyYWJpY0Zvcm18YXNjZW50fGF0dHJpYnV0ZU5hbWV8YXR0cmlidXRlVHlwZXxhdXRvUmV2ZXJzZXxhemltdXRofGJhc2VGcmVxdWVuY3l8YmFzZWxpbmVTaGlmdHxiYXNlUHJvZmlsZXxiYm94fGJlZ2lufGJpYXN8Ynl8Y2FsY01vZGV8Y2FwSGVpZ2h0fGNsaXB8Y2xpcFBhdGhVbml0c3xjbGlwUGF0aHxjbGlwUnVsZXxjb2xvckludGVycG9sYXRpb258Y29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyc3xjb2xvclByb2ZpbGV8Y29sb3JSZW5kZXJpbmd8Y29udGVudFNjcmlwdFR5cGV8Y29udGVudFN0eWxlVHlwZXxjdXJzb3J8Y3h8Y3l8ZHxkZWNlbGVyYXRlfGRlc2NlbnR8ZGlmZnVzZUNvbnN0YW50fGRpcmVjdGlvbnxkaXNwbGF5fGRpdmlzb3J8ZG9taW5hbnRCYXNlbGluZXxkdXJ8ZHh8ZHl8ZWRnZU1vZGV8ZWxldmF0aW9ufGVuYWJsZUJhY2tncm91bmR8ZW5kfGV4cG9uZW50fGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWR8ZmlsbHxmaWxsT3BhY2l0eXxmaWxsUnVsZXxmaWx0ZXJ8ZmlsdGVyUmVzfGZpbHRlclVuaXRzfGZsb29kQ29sb3J8Zmxvb2RPcGFjaXR5fGZvY3VzYWJsZXxmb250RmFtaWx5fGZvbnRTaXplfGZvbnRTaXplQWRqdXN0fGZvbnRTdHJldGNofGZvbnRTdHlsZXxmb250VmFyaWFudHxmb250V2VpZ2h0fGZvcm1hdHxmcm9tfGZyfGZ4fGZ5fGcxfGcyfGdseXBoTmFtZXxnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbHxnbHlwaE9yaWVudGF0aW9uVmVydGljYWx8Z2x5cGhSZWZ8Z3JhZGllbnRUcmFuc2Zvcm18Z3JhZGllbnRVbml0c3xoYW5naW5nfGhvcml6QWR2WHxob3Jpek9yaWdpblh8aWRlb2dyYXBoaWN8aW1hZ2VSZW5kZXJpbmd8aW58aW4yfGludGVyY2VwdHxrfGsxfGsyfGszfGs0fGtlcm5lbE1hdHJpeHxrZXJuZWxVbml0TGVuZ3RofGtlcm5pbmd8a2V5UG9pbnRzfGtleVNwbGluZXN8a2V5VGltZXN8bGVuZ3RoQWRqdXN0fGxldHRlclNwYWNpbmd8bGlnaHRpbmdDb2xvcnxsaW1pdGluZ0NvbmVBbmdsZXxsb2NhbHxtYXJrZXJFbmR8bWFya2VyTWlkfG1hcmtlclN0YXJ0fG1hcmtlckhlaWdodHxtYXJrZXJVbml0c3xtYXJrZXJXaWR0aHxtYXNrfG1hc2tDb250ZW50VW5pdHN8bWFza1VuaXRzfG1hdGhlbWF0aWNhbHxtb2RlfG51bU9jdGF2ZXN8b2Zmc2V0fG9wYWNpdHl8b3BlcmF0b3J8b3JkZXJ8b3JpZW50fG9yaWVudGF0aW9ufG9yaWdpbnxvdmVyZmxvd3xvdmVybGluZVBvc2l0aW9ufG92ZXJsaW5lVGhpY2tuZXNzfHBhbm9zZTF8cGFpbnRPcmRlcnxwYXRoTGVuZ3RofHBhdHRlcm5Db250ZW50VW5pdHN8cGF0dGVyblRyYW5zZm9ybXxwYXR0ZXJuVW5pdHN8cG9pbnRlckV2ZW50c3xwb2ludHN8cG9pbnRzQXRYfHBvaW50c0F0WXxwb2ludHNBdFp8cHJlc2VydmVBbHBoYXxwcmVzZXJ2ZUFzcGVjdFJhdGlvfHByaW1pdGl2ZVVuaXRzfHJ8cmFkaXVzfHJlZlh8cmVmWXxyZW5kZXJpbmdJbnRlbnR8cmVwZWF0Q291bnR8cmVwZWF0RHVyfHJlcXVpcmVkRXh0ZW5zaW9uc3xyZXF1aXJlZEZlYXR1cmVzfHJlc3RhcnR8cmVzdWx0fHJvdGF0ZXxyeHxyeXxzY2FsZXxzZWVkfHNoYXBlUmVuZGVyaW5nfHNsb3BlfHNwYWNpbmd8c3BlY3VsYXJDb25zdGFudHxzcGVjdWxhckV4cG9uZW50fHNwZWVkfHNwcmVhZE1ldGhvZHxzdGFydE9mZnNldHxzdGREZXZpYXRpb258c3RlbWh8c3RlbXZ8c3RpdGNoVGlsZXN8c3RvcENvbG9yfHN0b3BPcGFjaXR5fHN0cmlrZXRocm91Z2hQb3NpdGlvbnxzdHJpa2V0aHJvdWdoVGhpY2tuZXNzfHN0cmluZ3xzdHJva2V8c3Ryb2tlRGFzaGFycmF5fHN0cm9rZURhc2hvZmZzZXR8c3Ryb2tlTGluZWNhcHxzdHJva2VMaW5lam9pbnxzdHJva2VNaXRlcmxpbWl0fHN0cm9rZU9wYWNpdHl8c3Ryb2tlV2lkdGh8c3VyZmFjZVNjYWxlfHN5c3RlbUxhbmd1YWdlfHRhYmxlVmFsdWVzfHRhcmdldFh8dGFyZ2V0WXx0ZXh0QW5jaG9yfHRleHREZWNvcmF0aW9ufHRleHRSZW5kZXJpbmd8dGV4dExlbmd0aHx0b3x0cmFuc2Zvcm18dTF8dTJ8dW5kZXJsaW5lUG9zaXRpb258dW5kZXJsaW5lVGhpY2tuZXNzfHVuaWNvZGV8dW5pY29kZUJpZGl8dW5pY29kZVJhbmdlfHVuaXRzUGVyRW18dkFscGhhYmV0aWN8dkhhbmdpbmd8dklkZW9ncmFwaGljfHZNYXRoZW1hdGljYWx8dmFsdWVzfHZlY3RvckVmZmVjdHx2ZXJzaW9ufHZlcnRBZHZZfHZlcnRPcmlnaW5YfHZlcnRPcmlnaW5ZfHZpZXdCb3h8dmlld1RhcmdldHx2aXNpYmlsaXR5fHdpZHRoc3x3b3JkU3BhY2luZ3x3cml0aW5nTW9kZXx4fHhIZWlnaHR8eDF8eDJ8eENoYW5uZWxTZWxlY3Rvcnx4bGlua0FjdHVhdGV8eGxpbmtBcmNyb2xlfHhsaW5rSHJlZnx4bGlua1JvbGV8eGxpbmtTaG93fHhsaW5rVGl0bGV8eGxpbmtUeXBlfHhtbEJhc2V8eG1sbnN8eG1sbnNYbGlua3x4bWxMYW5nfHhtbFNwYWNlfHl8eTF8eTJ8eUNoYW5uZWxTZWxlY3Rvcnx6fHpvb21BbmRQYW58Zm9yfGNsYXNzfGF1dG9mb2N1cyl8KChbRGRdW0FhXVtUdF1bQWFdfFtBYV1bUnJdW0lpXVtBYV18eCktLiopKSQvLHM9KDAsaS5BKSgoZnVuY3Rpb24oZSl7cmV0dXJuIGEudGVzdChlKXx8MTExPT09ZS5jaGFyQ29kZUF0KDApJiYxMTA9PT1lLmNoYXJDb2RlQXQoMSkmJmUuY2hhckNvZGVBdCgyKTw5MX0pKSxjPXIoNDAwODUpLHU9cigzMDA0MSksbD1yKDEzNDUxKSxmPXIoNzEyODcpLGQ9cyxwPWZ1bmN0aW9uKGUpe3JldHVybiJ0aGVtZSIhPT1lfSxfPWZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmZS5jaGFyQ29kZUF0KDApPjk2P2Q6cH0saD1mdW5jdGlvbihlLHQscil7dmFyIG47aWYodCl7dmFyIG89dC5zaG91bGRGb3J3YXJkUHJvcDtuPWUuX19lbW90aW9uX2ZvcndhcmRQcm9wJiZvP2Z1bmN0aW9uKHQpe3JldHVybiBlLl9fZW1vdGlvbl9mb3J3YXJkUHJvcCh0KSYmbyh0KX06b31yZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgbiYmciYmKG49ZS5fX2Vtb3Rpb25fZm9yd2FyZFByb3ApLG59LG09ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jYWNoZSxyPWUuc2VyaWFsaXplZCxuPWUuaXNTdHJpbmdUYWc7cmV0dXJuKDAsdS5TRikodCxyLG4pLCgwLGYucykoKGZ1bmN0aW9uKCl7cmV0dXJuKDAsdS5zaykodCxyLG4pfSkpLG51bGx9LHk9ZnVuY3Rpb24gZSh0LHIpe3ZhciBpLGEscz10Ll9fZW1vdGlvbl9yZWFsPT09dCxmPXMmJnQuX19lbW90aW9uX2Jhc2V8fHQ7dm9pZCAwIT09ciYmKGk9ci5sYWJlbCxhPXIudGFyZ2V0KTt2YXIgZD1oKHQscixzKSxwPWR8fF8oZikseT0hcCgiYXMiKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZz1hcmd1bWVudHMsdj1zJiZ2b2lkIDAhPT10Ll9fZW1vdGlvbl9zdHlsZXM/dC5fX2Vtb3Rpb25fc3R5bGVzLnNsaWNlKDApOltdO2lmKHZvaWQgMCE9PWkmJnYucHVzaCgibGFiZWw6IitpKyI7IiksbnVsbD09Z1swXXx8dm9pZCAwPT09Z1swXS5yYXcpdi5wdXNoLmFwcGx5KHYsZyk7ZWxzZXswLHYucHVzaChnWzBdWzBdKTtmb3IodmFyIGI9Zy5sZW5ndGgsdz0xO3c8Yjt3Kyspdi5wdXNoKGdbd10sZ1swXVt3XSl9dmFyIFM9KDAsYy53KSgoZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXkmJmUuYXN8fGYsaT0iIixzPVtdLGg9ZTtpZihudWxsPT1lLnRoZW1lKXtmb3IodmFyIGcgaW4gaD17fSxlKWhbZ109ZVtnXTtoLnRoZW1lPW8udXNlQ29udGV4dChjLlQpfSJzdHJpbmciPT10eXBlb2YgZS5jbGFzc05hbWU/aT0oMCx1LlJrKSh0LnJlZ2lzdGVyZWQscyxlLmNsYXNzTmFtZSk6bnVsbCE9ZS5jbGFzc05hbWUmJihpPWUuY2xhc3NOYW1lKyIgIik7dmFyIGI9KDAsbC5KKSh2LmNvbmNhdChzKSx0LnJlZ2lzdGVyZWQsaCk7aSs9dC5rZXkrIi0iK2IubmFtZSx2b2lkIDAhPT1hJiYoaSs9IiAiK2EpO3ZhciB3PXkmJnZvaWQgMD09PWQ/XyhuKTpwLFM9e307Zm9yKHZhciBrIGluIGUpeSYmImFzIj09PWt8fHcoaykmJihTW2tdPWVba10pO3JldHVybiBTLmNsYXNzTmFtZT1pLFMucmVmPXIsby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQobSx7Y2FjaGU6dCxzZXJpYWxpemVkOmIsaXNTdHJpbmdUYWc6InN0cmluZyI9PXR5cGVvZiBufSksby5jcmVhdGVFbGVtZW50KG4sUykpfSkpO3JldHVybiBTLmRpc3BsYXlOYW1lPXZvaWQgMCE9PWk/aToiU3R5bGVkKCIrKCJzdHJpbmciPT10eXBlb2YgZj9mOmYuZGlzcGxheU5hbWV8fGYubmFtZXx8IkNvbXBvbmVudCIpKyIpIixTLmRlZmF1bHRQcm9wcz10LmRlZmF1bHRQcm9wcyxTLl9fZW1vdGlvbl9yZWFsPVMsUy5fX2Vtb3Rpb25fYmFzZT1mLFMuX19lbW90aW9uX3N0eWxlcz12LFMuX19lbW90aW9uX2ZvcndhcmRQcm9wPWQsT2JqZWN0LmRlZmluZVByb3BlcnR5KFMsInRvU3RyaW5nIix7dmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4iLiIrYX19KSxTLndpdGhDb21wb25lbnQ9ZnVuY3Rpb24odCxvKXtyZXR1cm4gZSh0LCgwLG4uQSkoe30scixvLHtzaG91bGRGb3J3YXJkUHJvcDpoKFMsbywhMCl9KSkuYXBwbHkodm9pZCAwLHYpfSxTfX19LDcxMjg3OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG47ci5kKHQse2k6ZnVuY3Rpb24oKXtyZXR1cm4gc30sczpmdW5jdGlvbigpe3JldHVybiBhfX0pO3ZhciBvPXIoOTY1NDApLGk9ISEobnx8KG49ci50KG8sMikpKS51c2VJbnNlcnRpb25FZmZlY3QmJihufHwobj1yLnQobywyKSkpLnVzZUluc2VydGlvbkVmZmVjdCxhPWl8fGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9LHM9aXx8by51c2VMYXlvdXRFZmZlY3R9LDMwMDQxOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7ci5kKHQse1JrOmZ1bmN0aW9uKCl7cmV0dXJuIG59LFNGOmZ1bmN0aW9uKCl7cmV0dXJuIG99LHNrOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7ZnVuY3Rpb24gbihlLHQscil7dmFyIG49IiI7cmV0dXJuIHIuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbihyKXt2b2lkIDAhPT1lW3JdP3QucHVzaChlW3JdKyI7Iik6bis9cisiICJ9KSksbn12YXIgbz1mdW5jdGlvbihlLHQscil7dmFyIG49ZS5rZXkrIi0iK3QubmFtZTshMT09PXImJnZvaWQgMD09PWUucmVnaXN0ZXJlZFtuXSYmKGUucmVnaXN0ZXJlZFtuXT10LnN0eWxlcyl9LGk9ZnVuY3Rpb24oZSx0LHIpe28oZSx0LHIpO3ZhciBuPWUua2V5KyItIit0Lm5hbWU7aWYodm9pZCAwPT09ZS5pbnNlcnRlZFt0Lm5hbWVdKXt2YXIgaT10O2Rve2UuaW5zZXJ0KHQ9PT1pPyIuIituOiIiLGksZS5zaGVldCwhMCksaT1pLm5leHR9d2hpbGUodm9pZCAwIT09aSl9fX0sOTI4MDk6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7QTpmdW5jdGlvbigpe3JldHVybiBufX0pO3ZhciBuPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBXZWFrTWFwO3JldHVybiBmdW5jdGlvbihyKXtpZih0LmhhcyhyKSlyZXR1cm4gdC5nZXQocik7dmFyIG49ZShyKTtyZXR1cm4gdC5zZXQocixuKSxufX19LDk3MTYwOmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciByPTAsbj1BcnJheSh0KTtyPHQ7cisrKW5bcl09ZVtyXTtyZXR1cm4gbn1mdW5jdGlvbiB0KHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGUodCl9ZnVuY3Rpb24gcihlLHQscil7cmV0dXJuKHQ9dSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPXIsZX1mdW5jdGlvbiBuKGUpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShlKX1mdW5jdGlvbiBvKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9ZnVuY3Rpb24gaShlLHQpe3ZhciByPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKG49bi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksci5wdXNoLmFwcGx5KHIsbil9cmV0dXJuIHJ9ZnVuY3Rpb24gYShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9pKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cihlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6aShPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX1mdW5jdGlvbiBzKGUpe3JldHVybiB0KGUpfHxuKGUpfHxsKGUpfHxvKCl9ZnVuY3Rpb24gYyhlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8IWUpcmV0dXJuIGU7dmFyIHI9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXIpe3ZhciBuPXIuY2FsbChlLHQpO2lmKCJvYmplY3QiIT10eXBlb2YgbilyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PXQ/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gdShlKXt2YXIgdD1jKGUsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgdD90OnQrIiJ9ZnVuY3Rpb24gbCh0LHIpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gZSh0LHIpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9lKHQscik6dm9pZCAwfX1mdW5jdGlvbiBmKGUsdCl7cmV0dXJuIGUodD17ZXhwb3J0czp7fX0sdC5leHBvcnRzKSx0LmV4cG9ydHN9dmFyIGQ9ZigoZnVuY3Rpb24oZSl7IWZ1bmN0aW9uKHQpe3ZhciByPS9eXHMrLyxuPS9ccyskLyxvPTAsaT10LnJvdW5kLGE9dC5taW4scz10Lm1heCxjPXQucmFuZG9tO2Z1bmN0aW9uIHUoZSx0KXtpZih0PXR8fHt9LChlPWV8fCIiKWluc3RhbmNlb2YgdSlyZXR1cm4gZTtpZighKHRoaXMgaW5zdGFuY2VvZiB1KSlyZXR1cm4gbmV3IHUoZSx0KTt2YXIgcj1sKGUpO3RoaXMuX29yaWdpbmFsSW5wdXQ9ZSx0aGlzLl9yPXIucix0aGlzLl9nPXIuZyx0aGlzLl9iPXIuYix0aGlzLl9hPXIuYSx0aGlzLl9yb3VuZEE9aSgxMDAqdGhpcy5fYSkvMTAwLHRoaXMuX2Zvcm1hdD10LmZvcm1hdHx8ci5mb3JtYXQsdGhpcy5fZ3JhZGllbnRUeXBlPXQuZ3JhZGllbnRUeXBlLHRoaXMuX3I8MSYmKHRoaXMuX3I9aSh0aGlzLl9yKSksdGhpcy5fZzwxJiYodGhpcy5fZz1pKHRoaXMuX2cpKSx0aGlzLl9iPDEmJih0aGlzLl9iPWkodGhpcy5fYikpLHRoaXMuX29rPXIub2ssdGhpcy5fdGNfaWQ9bysrfWZ1bmN0aW9uIGwoZSl7dmFyIHQ9e3I6MCxnOjAsYjowfSxyPTEsbj1udWxsLG89bnVsbCxpPW51bGwsYz0hMSx1PSExO3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmKGU9UShlKSksIm9iamVjdCI9PXR5cGVvZiBlJiYoWihlLnIpJiZaKGUuZykmJlooZS5iKT8odD1mKGUucixlLmcsZS5iKSxjPSEwLHU9IiUiPT09U3RyaW5nKGUucikuc3Vic3RyKC0xKT8icHJnYiI6InJnYiIpOlooZS5oKSYmWihlLnMpJiZaKGUudik/KG49JChlLnMpLG89JChlLnYpLHQ9aChlLmgsbixvKSxjPSEwLHU9ImhzdiIpOlooZS5oKSYmWihlLnMpJiZaKGUubCkmJihuPSQoZS5zKSxpPSQoZS5sKSx0PXAoZS5oLG4saSksYz0hMCx1PSJoc2wiKSxlLmhhc093blByb3BlcnR5KCJhIikmJihyPWUuYSkpLHI9RChyKSx7b2s6Yyxmb3JtYXQ6ZS5mb3JtYXR8fHUscjphKDI1NSxzKHQuciwwKSksZzphKDI1NSxzKHQuZywwKSksYjphKDI1NSxzKHQuYiwwKSksYTpyfX1mdW5jdGlvbiBmKGUsdCxyKXtyZXR1cm57cjoyNTUqTChlLDI1NSksZzoyNTUqTCh0LDI1NSksYjoyNTUqTChyLDI1NSl9fWZ1bmN0aW9uIGQoZSx0LHIpe2U9TChlLDI1NSksdD1MKHQsMjU1KSxyPUwociwyNTUpO3ZhciBuLG8saT1zKGUsdCxyKSxjPWEoZSx0LHIpLHU9KGkrYykvMjtpZihpPT1jKW49bz0wO2Vsc2V7dmFyIGw9aS1jO3N3aXRjaChvPXU+LjU/bC8oMi1pLWMpOmwvKGkrYyksaSl7Y2FzZSBlOm49KHQtcikvbCsodDxyPzY6MCk7YnJlYWs7Y2FzZSB0Om49KHItZSkvbCsyO2JyZWFrO2Nhc2UgcjpuPShlLXQpL2wrNH1uLz02fXJldHVybntoOm4sczpvLGw6dX19ZnVuY3Rpb24gcChlLHQscil7dmFyIG4sbyxpO2Z1bmN0aW9uIGEoZSx0LHIpe3JldHVybiByPDAmJihyKz0xKSxyPjEmJihyLT0xKSxyPDEvNj9lKzYqKHQtZSkqcjpyPC41P3Q6cjwyLzM/ZSsodC1lKSooMi8zLXIpKjY6ZX1pZihlPUwoZSwzNjApLHQ9TCh0LDEwMCkscj1MKHIsMTAwKSwwPT09dCluPW89aT1yO2Vsc2V7dmFyIHM9cjwuNT9yKigxK3QpOnIrdC1yKnQsYz0yKnItcztuPWEoYyxzLGUrMS8zKSxvPWEoYyxzLGUpLGk9YShjLHMsZS0xLzMpfXJldHVybntyOjI1NSpuLGc6MjU1Km8sYjoyNTUqaX19ZnVuY3Rpb24gXyhlLHQscil7ZT1MKGUsMjU1KSx0PUwodCwyNTUpLHI9TChyLDI1NSk7dmFyIG4sbyxpPXMoZSx0LHIpLGM9YShlLHQsciksdT1pLGw9aS1jO2lmKG89MD09PWk/MDpsL2ksaT09YyluPTA7ZWxzZXtzd2l0Y2goaSl7Y2FzZSBlOm49KHQtcikvbCsodDxyPzY6MCk7YnJlYWs7Y2FzZSB0Om49KHItZSkvbCsyO2JyZWFrO2Nhc2UgcjpuPShlLXQpL2wrNH1uLz02fXJldHVybntoOm4sczpvLHY6dX19ZnVuY3Rpb24gaChlLHIsbil7ZT02KkwoZSwzNjApLHI9TChyLDEwMCksbj1MKG4sMTAwKTt2YXIgbz10LmZsb29yKGUpLGk9ZS1vLGE9biooMS1yKSxzPW4qKDEtaSpyKSxjPW4qKDEtKDEtaSkqciksdT1vJTY7cmV0dXJue3I6MjU1KltuLHMsYSxhLGMsbl1bdV0sZzoyNTUqW2MsbixuLHMsYSxhXVt1XSxiOjI1NSpbYSxhLGMsbixuLHNdW3VdfX1mdW5jdGlvbiBtKGUsdCxyLG4pe3ZhciBvPVtXKGkoZSkudG9TdHJpbmcoMTYpKSxXKGkodCkudG9TdHJpbmcoMTYpKSxXKGkocikudG9TdHJpbmcoMTYpKV07cmV0dXJuIG4mJm9bMF0uY2hhckF0KDApPT1vWzBdLmNoYXJBdCgxKSYmb1sxXS5jaGFyQXQoMCk9PW9bMV0uY2hhckF0KDEpJiZvWzJdLmNoYXJBdCgwKT09b1syXS5jaGFyQXQoMSk/b1swXS5jaGFyQXQoMCkrb1sxXS5jaGFyQXQoMCkrb1syXS5jaGFyQXQoMCk6by5qb2luKCIiKX1mdW5jdGlvbiB5KGUsdCxyLG4sbyl7dmFyIGE9W1coaShlKS50b1N0cmluZygxNikpLFcoaSh0KS50b1N0cmluZygxNikpLFcoaShyKS50b1N0cmluZygxNikpLFcocShuKSldO3JldHVybiBvJiZhWzBdLmNoYXJBdCgwKT09YVswXS5jaGFyQXQoMSkmJmFbMV0uY2hhckF0KDApPT1hWzFdLmNoYXJBdCgxKSYmYVsyXS5jaGFyQXQoMCk9PWFbMl0uY2hhckF0KDEpJiZhWzNdLmNoYXJBdCgwKT09YVszXS5jaGFyQXQoMSk/YVswXS5jaGFyQXQoMCkrYVsxXS5jaGFyQXQoMCkrYVsyXS5jaGFyQXQoMCkrYVszXS5jaGFyQXQoMCk6YS5qb2luKCIiKX1mdW5jdGlvbiBnKGUsdCxyLG4pe3JldHVybltXKHEobikpLFcoaShlKS50b1N0cmluZygxNikpLFcoaSh0KS50b1N0cmluZygxNikpLFcoaShyKS50b1N0cmluZygxNikpXS5qb2luKCIiKX1mdW5jdGlvbiB2KGUsdCl7dD0wPT09dD8wOnR8fDEwO3ZhciByPXUoZSkudG9Ic2woKTtyZXR1cm4gci5zLT10LzEwMCxyLnM9VShyLnMpLHUocil9ZnVuY3Rpb24gYihlLHQpe3Q9MD09PXQ/MDp0fHwxMDt2YXIgcj11KGUpLnRvSHNsKCk7cmV0dXJuIHIucys9dC8xMDAsci5zPVUoci5zKSx1KHIpfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIHUoZSkuZGVzYXR1cmF0ZSgxMDApfWZ1bmN0aW9uIFMoZSx0KXt0PTA9PT10PzA6dHx8MTA7dmFyIHI9dShlKS50b0hzbCgpO3JldHVybiByLmwrPXQvMTAwLHIubD1VKHIubCksdShyKX1mdW5jdGlvbiBrKGUsdCl7dD0wPT09dD8wOnR8fDEwO3ZhciByPXUoZSkudG9SZ2IoKTtyZXR1cm4gci5yPXMoMCxhKDI1NSxyLnItaSgtdC8xMDAqMjU1KSkpLHIuZz1zKDAsYSgyNTUsci5nLWkoLXQvMTAwKjI1NSkpKSxyLmI9cygwLGEoMjU1LHIuYi1pKC10LzEwMCoyNTUpKSksdShyKX1mdW5jdGlvbiB4KGUsdCl7dD0wPT09dD8wOnR8fDEwO3ZhciByPXUoZSkudG9Ic2woKTtyZXR1cm4gci5sLT10LzEwMCxyLmw9VShyLmwpLHUocil9ZnVuY3Rpb24gRShlLHQpe3ZhciByPXUoZSkudG9Ic2woKSxuPShyLmgrdCklMzYwO3JldHVybiByLmg9bjwwPzM2MCtuOm4sdShyKX1mdW5jdGlvbiBBKGUpe3ZhciB0PXUoZSkudG9Ic2woKTtyZXR1cm4gdC5oPSh0LmgrMTgwKSUzNjAsdSh0KX1mdW5jdGlvbiBUKGUpe3ZhciB0PXUoZSkudG9Ic2woKSxyPXQuaDtyZXR1cm5bdShlKSx1KHtoOihyKzEyMCklMzYwLHM6dC5zLGw6dC5sfSksdSh7aDoocisyNDApJTM2MCxzOnQucyxsOnQubH0pXX1mdW5jdGlvbiBSKGUpe3ZhciB0PXUoZSkudG9Ic2woKSxyPXQuaDtyZXR1cm5bdShlKSx1KHtoOihyKzkwKSUzNjAsczp0LnMsbDp0Lmx9KSx1KHtoOihyKzE4MCklMzYwLHM6dC5zLGw6dC5sfSksdSh7aDoocisyNzApJTM2MCxzOnQucyxsOnQubH0pXX1mdW5jdGlvbiBQKGUpe3ZhciB0PXUoZSkudG9Ic2woKSxyPXQuaDtyZXR1cm5bdShlKSx1KHtoOihyKzcyKSUzNjAsczp0LnMsbDp0Lmx9KSx1KHtoOihyKzIxNiklMzYwLHM6dC5zLGw6dC5sfSldfWZ1bmN0aW9uIE8oZSx0LHIpe3Q9dHx8NixyPXJ8fDMwO3ZhciBuPXUoZSkudG9Ic2woKSxvPTM2MC9yLGk9W3UoZSldO2ZvcihuLmg9KG4uaC0obyp0Pj4xKSs3MjApJTM2MDstLXQ7KW4uaD0obi5oK28pJTM2MCxpLnB1c2godShuKSk7cmV0dXJuIGl9ZnVuY3Rpb24gTShlLHQpe3Q9dHx8Njtmb3IodmFyIHI9dShlKS50b0hzdigpLG49ci5oLG89ci5zLGk9ci52LGE9W10scz0xL3Q7dC0tOylhLnB1c2godSh7aDpuLHM6byx2Oml9KSksaT0oaStzKSUxO3JldHVybiBhfXUucHJvdG90eXBlPXtpc0Rhcms6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRCcmlnaHRuZXNzKCk8MTI4fSxpc0xpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNEYXJrKCl9LGlzVmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb2t9LGdldE9yaWdpbmFsSW5wdXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb3JpZ2luYWxJbnB1dH0sZ2V0Rm9ybWF0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Zvcm1hdH0sZ2V0QWxwaGE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYX0sZ2V0QnJpZ2h0bmVzczpmdW5jdGlvbigpe3ZhciBlPXRoaXMudG9SZ2IoKTtyZXR1cm4oMjk5KmUucis1ODcqZS5nKzExNCplLmIpLzFlM30sZ2V0THVtaW5hbmNlOmZ1bmN0aW9uKCl7dmFyIGUscixuLG89dGhpcy50b1JnYigpO3JldHVybiBlPW8uci8yNTUscj1vLmcvMjU1LG49by5iLzI1NSwuMjEyNiooZTw9LjAzOTI4P2UvMTIuOTI6dC5wb3coKGUrLjA1NSkvMS4wNTUsMi40KSkrLjcxNTIqKHI8PS4wMzkyOD9yLzEyLjkyOnQucG93KChyKy4wNTUpLzEuMDU1LDIuNCkpKy4wNzIyKihuPD0uMDM5Mjg/bi8xMi45Mjp0LnBvdygobisuMDU1KS8xLjA1NSwyLjQpKX0sc2V0QWxwaGE6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2E9RChlKSx0aGlzLl9yb3VuZEE9aSgxMDAqdGhpcy5fYSkvMTAwLHRoaXN9LHRvSHN2OmZ1bmN0aW9uKCl7dmFyIGU9Xyh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYik7cmV0dXJue2g6MzYwKmUuaCxzOmUucyx2OmUudixhOnRoaXMuX2F9fSx0b0hzdlN0cmluZzpmdW5jdGlvbigpe3ZhciBlPV8odGhpcy5fcix0aGlzLl9nLHRoaXMuX2IpLHQ9aSgzNjAqZS5oKSxyPWkoMTAwKmUucyksbj1pKDEwMCplLnYpO3JldHVybiAxPT10aGlzLl9hPyJoc3YoIit0KyIsICIrcisiJSwgIituKyIlKSI6ImhzdmEoIit0KyIsICIrcisiJSwgIituKyIlLCAiK3RoaXMuX3JvdW5kQSsiKSJ9LHRvSHNsOmZ1bmN0aW9uKCl7dmFyIGU9ZCh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYik7cmV0dXJue2g6MzYwKmUuaCxzOmUucyxsOmUubCxhOnRoaXMuX2F9fSx0b0hzbFN0cmluZzpmdW5jdGlvbigpe3ZhciBlPWQodGhpcy5fcix0aGlzLl9nLHRoaXMuX2IpLHQ9aSgzNjAqZS5oKSxyPWkoMTAwKmUucyksbj1pKDEwMCplLmwpO3JldHVybiAxPT10aGlzLl9hPyJoc2woIit0KyIsICIrcisiJSwgIituKyIlKSI6ImhzbGEoIit0KyIsICIrcisiJSwgIituKyIlLCAiK3RoaXMuX3JvdW5kQSsiKSJ9LHRvSGV4OmZ1bmN0aW9uKGUpe3JldHVybiBtKHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iLGUpfSx0b0hleFN0cmluZzpmdW5jdGlvbihlKXtyZXR1cm4iIyIrdGhpcy50b0hleChlKX0sdG9IZXg4OmZ1bmN0aW9uKGUpe3JldHVybiB5KHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iLHRoaXMuX2EsZSl9LHRvSGV4OFN0cmluZzpmdW5jdGlvbihlKXtyZXR1cm4iIyIrdGhpcy50b0hleDgoZSl9LHRvUmdiOmZ1bmN0aW9uKCl7cmV0dXJue3I6aSh0aGlzLl9yKSxnOmkodGhpcy5fZyksYjppKHRoaXMuX2IpLGE6dGhpcy5fYX19LHRvUmdiU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PXRoaXMuX2E/InJnYigiK2kodGhpcy5fcikrIiwgIitpKHRoaXMuX2cpKyIsICIraSh0aGlzLl9iKSsiKSI6InJnYmEoIitpKHRoaXMuX3IpKyIsICIraSh0aGlzLl9nKSsiLCAiK2kodGhpcy5fYikrIiwgIit0aGlzLl9yb3VuZEErIikifSx0b1BlcmNlbnRhZ2VSZ2I6ZnVuY3Rpb24oKXtyZXR1cm57cjppKDEwMCpMKHRoaXMuX3IsMjU1KSkrIiUiLGc6aSgxMDAqTCh0aGlzLl9nLDI1NSkpKyIlIixiOmkoMTAwKkwodGhpcy5fYiwyNTUpKSsiJSIsYTp0aGlzLl9hfX0sdG9QZXJjZW50YWdlUmdiU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PXRoaXMuX2E/InJnYigiK2koMTAwKkwodGhpcy5fciwyNTUpKSsiJSwgIitpKDEwMCpMKHRoaXMuX2csMjU1KSkrIiUsICIraSgxMDAqTCh0aGlzLl9iLDI1NSkpKyIlKSI6InJnYmEoIitpKDEwMCpMKHRoaXMuX3IsMjU1KSkrIiUsICIraSgxMDAqTCh0aGlzLl9nLDI1NSkpKyIlLCAiK2koMTAwKkwodGhpcy5fYiwyNTUpKSsiJSwgIit0aGlzLl9yb3VuZEErIikifSx0b05hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuX2E/InRyYW5zcGFyZW50IjohKHRoaXMuX2E8MSkmJihJW20odGhpcy5fcix0aGlzLl9nLHRoaXMuX2IsITApXXx8ITEpfSx0b0ZpbHRlcjpmdW5jdGlvbihlKXt2YXIgdD0iIyIrZyh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYix0aGlzLl9hKSxyPXQsbj10aGlzLl9ncmFkaWVudFR5cGU/IkdyYWRpZW50VHlwZSA9IDEsICI6IiI7aWYoZSl7dmFyIG89dShlKTtyPSIjIitnKG8uX3Isby5fZyxvLl9iLG8uX2EpfXJldHVybiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIituKyJzdGFydENvbG9yc3RyPSIrdCsiLGVuZENvbG9yc3RyPSIrcisiKSJ9LHRvU3RyaW5nOmZ1bmN0aW9uKGUpe3ZhciB0PSEhZTtlPWV8fHRoaXMuX2Zvcm1hdDt2YXIgcj0hMSxuPXRoaXMuX2E8MSYmdGhpcy5fYT49MDtyZXR1cm4gdHx8IW58fCJoZXgiIT09ZSYmImhleDYiIT09ZSYmImhleDMiIT09ZSYmImhleDQiIT09ZSYmImhleDgiIT09ZSYmIm5hbWUiIT09ZT8oInJnYiI9PT1lJiYocj10aGlzLnRvUmdiU3RyaW5nKCkpLCJwcmdiIj09PWUmJihyPXRoaXMudG9QZXJjZW50YWdlUmdiU3RyaW5nKCkpLCJoZXgiIT09ZSYmImhleDYiIT09ZXx8KHI9dGhpcy50b0hleFN0cmluZygpKSwiaGV4MyI9PT1lJiYocj10aGlzLnRvSGV4U3RyaW5nKCEwKSksImhleDQiPT09ZSYmKHI9dGhpcy50b0hleDhTdHJpbmcoITApKSwiaGV4OCI9PT1lJiYocj10aGlzLnRvSGV4OFN0cmluZygpKSwibmFtZSI9PT1lJiYocj10aGlzLnRvTmFtZSgpKSwiaHNsIj09PWUmJihyPXRoaXMudG9Ic2xTdHJpbmcoKSksImhzdiI9PT1lJiYocj10aGlzLnRvSHN2U3RyaW5nKCkpLHJ8fHRoaXMudG9IZXhTdHJpbmcoKSk6Im5hbWUiPT09ZSYmMD09PXRoaXMuX2E/dGhpcy50b05hbWUoKTp0aGlzLnRvUmdiU3RyaW5nKCl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIHUodGhpcy50b1N0cmluZygpKX0sX2FwcGx5TW9kaWZpY2F0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIHI9ZS5hcHBseShudWxsLFt0aGlzXS5jb25jYXQoW10uc2xpY2UuY2FsbCh0KSkpO3JldHVybiB0aGlzLl9yPXIuX3IsdGhpcy5fZz1yLl9nLHRoaXMuX2I9ci5fYix0aGlzLnNldEFscGhhKHIuX2EpLHRoaXN9LGxpZ2h0ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oUyxhcmd1bWVudHMpfSxicmlnaHRlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihrLGFyZ3VtZW50cyl9LGRhcmtlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbih4LGFyZ3VtZW50cyl9LGRlc2F0dXJhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24odixhcmd1bWVudHMpfSxzYXR1cmF0ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihiLGFyZ3VtZW50cyl9LGdyZXlzY2FsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbih3LGFyZ3VtZW50cyl9LHNwaW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oRSxhcmd1bWVudHMpfSxfYXBwbHlDb21iaW5hdGlvbjpmdW5jdGlvbihlLHQpe3JldHVybiBlLmFwcGx5KG51bGwsW3RoaXNdLmNvbmNhdChbXS5zbGljZS5jYWxsKHQpKSl9LGFuYWxvZ291czpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKE8sYXJndW1lbnRzKX0sY29tcGxlbWVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKEEsYXJndW1lbnRzKX0sbW9ub2Nocm9tYXRpYzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKE0sYXJndW1lbnRzKX0sc3BsaXRjb21wbGVtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oUCxhcmd1bWVudHMpfSx0cmlhZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKFQsYXJndW1lbnRzKX0sdGV0cmFkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oUixhcmd1bWVudHMpfX0sdS5mcm9tUmF0aW89ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0Ij09dHlwZW9mIGUpe3ZhciByPXt9O2Zvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJihyW25dPSJhIj09PW4/ZVtuXTokKGVbbl0pKTtlPXJ9cmV0dXJuIHUoZSx0KX0sdS5lcXVhbHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4hKCFlfHwhdCkmJnUoZSkudG9SZ2JTdHJpbmcoKT09dSh0KS50b1JnYlN0cmluZygpfSx1LnJhbmRvbT1mdW5jdGlvbigpe3JldHVybiB1LmZyb21SYXRpbyh7cjpjKCksZzpjKCksYjpjKCl9KX0sdS5taXg9ZnVuY3Rpb24oZSx0LHIpe3I9MD09PXI/MDpyfHw1MDt2YXIgbj11KGUpLnRvUmdiKCksbz11KHQpLnRvUmdiKCksaT1yLzEwMDtyZXR1cm4gdSh7cjooby5yLW4ucikqaStuLnIsZzooby5nLW4uZykqaStuLmcsYjooby5iLW4uYikqaStuLmIsYTooby5hLW4uYSkqaStuLmF9KX0sdS5yZWFkYWJpbGl0eT1mdW5jdGlvbihlLHIpe3ZhciBuPXUoZSksbz11KHIpO3JldHVybih0Lm1heChuLmdldEx1bWluYW5jZSgpLG8uZ2V0THVtaW5hbmNlKCkpKy4wNSkvKHQubWluKG4uZ2V0THVtaW5hbmNlKCksby5nZXRMdW1pbmFuY2UoKSkrLjA1KX0sdS5pc1JlYWRhYmxlPWZ1bmN0aW9uKGUsdCxyKXt2YXIgbixvLGk9dS5yZWFkYWJpbGl0eShlLHQpO3N3aXRjaChvPSExLChuPWVlKHIpKS5sZXZlbCtuLnNpemUpe2Nhc2UiQUFzbWFsbCI6Y2FzZSJBQUFsYXJnZSI6bz1pPj00LjU7YnJlYWs7Y2FzZSJBQWxhcmdlIjpvPWk+PTM7YnJlYWs7Y2FzZSJBQUFzbWFsbCI6bz1pPj03fXJldHVybiBvfSx1Lm1vc3RSZWFkYWJsZT1mdW5jdGlvbihlLHQscil7dmFyIG4sbyxpLGEscz1udWxsLGM9MDtvPShyPXJ8fHt9KS5pbmNsdWRlRmFsbGJhY2tDb2xvcnMsaT1yLmxldmVsLGE9ci5zaXplO2Zvcih2YXIgbD0wO2w8dC5sZW5ndGg7bCsrKShuPXUucmVhZGFiaWxpdHkoZSx0W2xdKSk+YyYmKGM9bixzPXUodFtsXSkpO3JldHVybiB1LmlzUmVhZGFibGUoZSxzLHtsZXZlbDppLHNpemU6YX0pfHwhbz9zOihyLmluY2x1ZGVGYWxsYmFja0NvbG9ycz0hMSx1Lm1vc3RSZWFkYWJsZShlLFsiI2ZmZiIsIiMwMDAiXSxyKSl9O3ZhciBGPXUubmFtZXM9e2FsaWNlYmx1ZToiZjBmOGZmIixhbnRpcXVld2hpdGU6ImZhZWJkNyIsYXF1YToiMGZmIixhcXVhbWFyaW5lOiI3ZmZmZDQiLGF6dXJlOiJmMGZmZmYiLGJlaWdlOiJmNWY1ZGMiLGJpc3F1ZToiZmZlNGM0IixibGFjazoiMDAwIixibGFuY2hlZGFsbW9uZDoiZmZlYmNkIixibHVlOiIwMGYiLGJsdWV2aW9sZXQ6IjhhMmJlMiIsYnJvd246ImE1MmEyYSIsYnVybHl3b29kOiJkZWI4ODciLGJ1cm50c2llbm5hOiJlYTdlNWQiLGNhZGV0Ymx1ZToiNWY5ZWEwIixjaGFydHJldXNlOiI3ZmZmMDAiLGNob2NvbGF0ZToiZDI2OTFlIixjb3JhbDoiZmY3ZjUwIixjb3JuZmxvd2VyYmx1ZToiNjQ5NWVkIixjb3Juc2lsazoiZmZmOGRjIixjcmltc29uOiJkYzE0M2MiLGN5YW46IjBmZiIsZGFya2JsdWU6IjAwMDA4YiIsZGFya2N5YW46IjAwOGI4YiIsZGFya2dvbGRlbnJvZDoiYjg4NjBiIixkYXJrZ3JheToiYTlhOWE5IixkYXJrZ3JlZW46IjAwNjQwMCIsZGFya2dyZXk6ImE5YTlhOSIsZGFya2toYWtpOiJiZGI3NmIiLGRhcmttYWdlbnRhOiI4YjAwOGIiLGRhcmtvbGl2ZWdyZWVuOiI1NTZiMmYiLGRhcmtvcmFuZ2U6ImZmOGMwMCIsZGFya29yY2hpZDoiOTkzMmNjIixkYXJrcmVkOiI4YjAwMDAiLGRhcmtzYWxtb246ImU5OTY3YSIsZGFya3NlYWdyZWVuOiI4ZmJjOGYiLGRhcmtzbGF0ZWJsdWU6IjQ4M2Q4YiIsZGFya3NsYXRlZ3JheToiMmY0ZjRmIixkYXJrc2xhdGVncmV5OiIyZjRmNGYiLGRhcmt0dXJxdW9pc2U6IjAwY2VkMSIsZGFya3Zpb2xldDoiOTQwMGQzIixkZWVwcGluazoiZmYxNDkzIixkZWVwc2t5Ymx1ZToiMDBiZmZmIixkaW1ncmF5OiI2OTY5NjkiLGRpbWdyZXk6IjY5Njk2OSIsZG9kZ2VyYmx1ZToiMWU5MGZmIixmaXJlYnJpY2s6ImIyMjIyMiIsZmxvcmFsd2hpdGU6ImZmZmFmMCIsZm9yZXN0Z3JlZW46IjIyOGIyMiIsZnVjaHNpYToiZjBmIixnYWluc2Jvcm86ImRjZGNkYyIsZ2hvc3R3aGl0ZToiZjhmOGZmIixnb2xkOiJmZmQ3MDAiLGdvbGRlbnJvZDoiZGFhNTIwIixncmF5OiI4MDgwODAiLGdyZWVuOiIwMDgwMDAiLGdyZWVueWVsbG93OiJhZGZmMmYiLGdyZXk6IjgwODA4MCIsaG9uZXlkZXc6ImYwZmZmMCIsaG90cGluazoiZmY2OWI0IixpbmRpYW5yZWQ6ImNkNWM1YyIsaW5kaWdvOiI0YjAwODIiLGl2b3J5OiJmZmZmZjAiLGtoYWtpOiJmMGU2OGMiLGxhdmVuZGVyOiJlNmU2ZmEiLGxhdmVuZGVyYmx1c2g6ImZmZjBmNSIsbGF3bmdyZWVuOiI3Y2ZjMDAiLGxlbW9uY2hpZmZvbjoiZmZmYWNkIixsaWdodGJsdWU6ImFkZDhlNiIsbGlnaHRjb3JhbDoiZjA4MDgwIixsaWdodGN5YW46ImUwZmZmZiIsbGlnaHRnb2xkZW5yb2R5ZWxsb3c6ImZhZmFkMiIsbGlnaHRncmF5OiJkM2QzZDMiLGxpZ2h0Z3JlZW46IjkwZWU5MCIsbGlnaHRncmV5OiJkM2QzZDMiLGxpZ2h0cGluazoiZmZiNmMxIixsaWdodHNhbG1vbjoiZmZhMDdhIixsaWdodHNlYWdyZWVuOiIyMGIyYWEiLGxpZ2h0c2t5Ymx1ZToiODdjZWZhIixsaWdodHNsYXRlZ3JheToiNzg5IixsaWdodHNsYXRlZ3JleToiNzg5IixsaWdodHN0ZWVsYmx1ZToiYjBjNGRlIixsaWdodHllbGxvdzoiZmZmZmUwIixsaW1lOiIwZjAiLGxpbWVncmVlbjoiMzJjZDMyIixsaW5lbjoiZmFmMGU2IixtYWdlbnRhOiJmMGYiLG1hcm9vbjoiODAwMDAwIixtZWRpdW1hcXVhbWFyaW5lOiI2NmNkYWEiLG1lZGl1bWJsdWU6IjAwMDBjZCIsbWVkaXVtb3JjaGlkOiJiYTU1ZDMiLG1lZGl1bXB1cnBsZToiOTM3MGRiIixtZWRpdW1zZWFncmVlbjoiM2NiMzcxIixtZWRpdW1zbGF0ZWJsdWU6IjdiNjhlZSIsbWVkaXVtc3ByaW5nZ3JlZW46IjAwZmE5YSIsbWVkaXVtdHVycXVvaXNlOiI0OGQxY2MiLG1lZGl1bXZpb2xldHJlZDoiYzcxNTg1IixtaWRuaWdodGJsdWU6IjE5MTk3MCIsbWludGNyZWFtOiJmNWZmZmEiLG1pc3R5cm9zZToiZmZlNGUxIixtb2NjYXNpbjoiZmZlNGI1IixuYXZham93aGl0ZToiZmZkZWFkIixuYXZ5OiIwMDAwODAiLG9sZGxhY2U6ImZkZjVlNiIsb2xpdmU6IjgwODAwMCIsb2xpdmVkcmFiOiI2YjhlMjMiLG9yYW5nZToiZmZhNTAwIixvcmFuZ2VyZWQ6ImZmNDUwMCIsb3JjaGlkOiJkYTcwZDYiLHBhbGVnb2xkZW5yb2Q6ImVlZThhYSIscGFsZWdyZWVuOiI5OGZiOTgiLHBhbGV0dXJxdW9pc2U6ImFmZWVlZSIscGFsZXZpb2xldHJlZDoiZGI3MDkzIixwYXBheWF3aGlwOiJmZmVmZDUiLHBlYWNocHVmZjoiZmZkYWI5IixwZXJ1OiJjZDg1M2YiLHBpbms6ImZmYzBjYiIscGx1bToiZGRhMGRkIixwb3dkZXJibHVlOiJiMGUwZTYiLHB1cnBsZToiODAwMDgwIixyZWJlY2NhcHVycGxlOiI2NjMzOTkiLHJlZDoiZjAwIixyb3N5YnJvd246ImJjOGY4ZiIscm95YWxibHVlOiI0MTY5ZTEiLHNhZGRsZWJyb3duOiI4YjQ1MTMiLHNhbG1vbjoiZmE4MDcyIixzYW5keWJyb3duOiJmNGE0NjAiLHNlYWdyZWVuOiIyZThiNTciLHNlYXNoZWxsOiJmZmY1ZWUiLHNpZW5uYToiYTA1MjJkIixzaWx2ZXI6ImMwYzBjMCIsc2t5Ymx1ZToiODdjZWViIixzbGF0ZWJsdWU6IjZhNWFjZCIsc2xhdGVncmF5OiI3MDgwOTAiLHNsYXRlZ3JleToiNzA4MDkwIixzbm93OiJmZmZhZmEiLHNwcmluZ2dyZWVuOiIwMGZmN2YiLHN0ZWVsYmx1ZToiNDY4MmI0Iix0YW46ImQyYjQ4YyIsdGVhbDoiMDA4MDgwIix0aGlzdGxlOiJkOGJmZDgiLHRvbWF0bzoiZmY2MzQ3Iix0dXJxdW9pc2U6IjQwZTBkMCIsdmlvbGV0OiJlZTgyZWUiLHdoZWF0OiJmNWRlYjMiLHdoaXRlOiJmZmYiLHdoaXRlc21va2U6ImY1ZjVmNSIseWVsbG93OiJmZjAiLHllbGxvd2dyZWVuOiI5YWNkMzIifSxJPXUuaGV4TmFtZXM9aihGKTtmdW5jdGlvbiBqKGUpe3ZhciB0PXt9O2Zvcih2YXIgciBpbiBlKWUuaGFzT3duUHJvcGVydHkocikmJih0W2Vbcl1dPXIpO3JldHVybiB0fWZ1bmN0aW9uIEQoZSl7cmV0dXJuIGU9cGFyc2VGbG9hdChlKSwoaXNOYU4oZSl8fGU8MHx8ZT4xKSYmKGU9MSksZX1mdW5jdGlvbiBMKGUscil7QihlKSYmKGU9IjEwMCUiKTt2YXIgbj1IKGUpO3JldHVybiBlPWEocixzKDAscGFyc2VGbG9hdChlKSkpLG4mJihlPXBhcnNlSW50KGUqciwxMCkvMTAwKSx0LmFicyhlLXIpPDFlLTY/MTplJXIvcGFyc2VGbG9hdChyKX1mdW5jdGlvbiBVKGUpe3JldHVybiBhKDEscygwLGUpKX1mdW5jdGlvbiB6KGUpe3JldHVybiBwYXJzZUludChlLDE2KX1mdW5jdGlvbiBCKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmLTEhPWUuaW5kZXhPZigiLiIpJiYxPT09cGFyc2VGbG9hdChlKX1mdW5jdGlvbiBIKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmLTEhPWUuaW5kZXhPZigiJSIpfWZ1bmN0aW9uIFcoZSl7cmV0dXJuIDE9PWUubGVuZ3RoPyIwIitlOiIiK2V9ZnVuY3Rpb24gJChlKXtyZXR1cm4gZTw9MSYmKGU9MTAwKmUrIiUiKSxlfWZ1bmN0aW9uIHEoZSl7cmV0dXJuIHQucm91bmQoMjU1KnBhcnNlRmxvYXQoZSkpLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBHKGUpe3JldHVybiB6KGUpLzI1NX12YXIgVixZLEssWD0oWT0iW1xcc3xcXChdKygiKyhWPSIoPzpbLVxcK10/XFxkKlxcLlxcZCslPyl8KD86Wy1cXCtdP1xcZCslPykiKSsiKVssfFxcc10rKCIrVisiKVssfFxcc10rKCIrVisiKVxccypcXCk/IixLPSJbXFxzfFxcKF0rKCIrVisiKVssfFxcc10rKCIrVisiKVssfFxcc10rKCIrVisiKVssfFxcc10rKCIrVisiKVxccypcXCk/Iix7Q1NTX1VOSVQ6bmV3IFJlZ0V4cChWKSxyZ2I6bmV3IFJlZ0V4cCgicmdiIitZKSxyZ2JhOm5ldyBSZWdFeHAoInJnYmEiK0spLGhzbDpuZXcgUmVnRXhwKCJoc2wiK1kpLGhzbGE6bmV3IFJlZ0V4cCgiaHNsYSIrSyksaHN2Om5ldyBSZWdFeHAoImhzdiIrWSksaHN2YTpuZXcgUmVnRXhwKCJoc3ZhIitLKSxoZXgzOi9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkkLyxoZXg2Oi9eIz8oWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkkLyxoZXg0Oi9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8saGV4ODovXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KSQvfSk7ZnVuY3Rpb24gWihlKXtyZXR1cm4hIVguQ1NTX1VOSVQuZXhlYyhlKX1mdW5jdGlvbiBRKGUpe2U9ZS5yZXBsYWNlKHIsIiIpLnJlcGxhY2UobiwiIikudG9Mb3dlckNhc2UoKTt2YXIgdCxvPSExO2lmKEZbZV0pZT1GW2VdLG89ITA7ZWxzZSBpZigidHJhbnNwYXJlbnQiPT1lKXJldHVybntyOjAsZzowLGI6MCxhOjAsZm9ybWF0OiJuYW1lIn07cmV0dXJuKHQ9WC5yZ2IuZXhlYyhlKSk/e3I6dFsxXSxnOnRbMl0sYjp0WzNdfToodD1YLnJnYmEuZXhlYyhlKSk/e3I6dFsxXSxnOnRbMl0sYjp0WzNdLGE6dFs0XX06KHQ9WC5oc2wuZXhlYyhlKSk/e2g6dFsxXSxzOnRbMl0sbDp0WzNdfToodD1YLmhzbGEuZXhlYyhlKSk/e2g6dFsxXSxzOnRbMl0sbDp0WzNdLGE6dFs0XX06KHQ9WC5oc3YuZXhlYyhlKSk/e2g6dFsxXSxzOnRbMl0sdjp0WzNdfToodD1YLmhzdmEuZXhlYyhlKSk/e2g6dFsxXSxzOnRbMl0sdjp0WzNdLGE6dFs0XX06KHQ9WC5oZXg4LmV4ZWMoZSkpP3tyOnoodFsxXSksZzp6KHRbMl0pLGI6eih0WzNdKSxhOkcodFs0XSksZm9ybWF0Om8/Im5hbWUiOiJoZXg4In06KHQ9WC5oZXg2LmV4ZWMoZSkpP3tyOnoodFsxXSksZzp6KHRbMl0pLGI6eih0WzNdKSxmb3JtYXQ6bz8ibmFtZSI6ImhleCJ9Oih0PVguaGV4NC5leGVjKGUpKT97cjp6KHRbMV0rIiIrdFsxXSksZzp6KHRbMl0rIiIrdFsyXSksYjp6KHRbM10rIiIrdFszXSksYTpHKHRbNF0rIiIrdFs0XSksZm9ybWF0Om8/Im5hbWUiOiJoZXg4In06ISEodD1YLmhleDMuZXhlYyhlKSkmJntyOnoodFsxXSsiIit0WzFdKSxnOnoodFsyXSsiIit0WzJdKSxiOnoodFszXSsiIit0WzNdKSxmb3JtYXQ6bz8ibmFtZSI6ImhleCJ9fWZ1bmN0aW9uIGVlKGUpe3ZhciB0LHI7cmV0dXJuIkFBIiE9PSh0PSgoZT1lfHx7bGV2ZWw6IkFBIixzaXplOiJzbWFsbCJ9KS5sZXZlbHx8IkFBIikudG9VcHBlckNhc2UoKSkmJiJBQUEiIT09dCYmKHQ9IkFBIiksInNtYWxsIiE9PShyPShlLnNpemV8fCJzbWFsbCIpLnRvTG93ZXJDYXNlKCkpJiYibGFyZ2UiIT09ciYmKHI9InNtYWxsIikse2xldmVsOnQsc2l6ZTpyfX1lLmV4cG9ydHM/ZS5leHBvcnRzPXU6d2luZG93LnRpbnljb2xvcj11fShNYXRoKX0pKSxwPWQoIiMxNDE2MWEiKS5zZXRBbHBoYSguNSkudG9SZ2JTdHJpbmcoKSxfPWQoIiMxNDE2MWEiKS50b1JnYlN0cmluZygpLGg9MTAsbT0uNix5PTIxLjUsZz0zLHY9MyxiPTQuNSx3PTIsUz17bGlnaHQ6e2JhY2tncm91bmQ6ZCgiI2ZmZmZmZiIpLnRvUmdiU3RyaW5nKCksZm9yZWdyb3VuZDpkKCIjMTQxNjFhIikudG9SZ2JTdHJpbmcoKSxkZWZhdWx0X2xhcmdlX2NvbnRlbnRfdGV4dDpkKCIjMTQxNjFhIikuc2V0QWxwaGEoLjcpLnRvUmdiU3RyaW5nKCksZmFsbGJhY2tfbGFyZ2VfY29udGVudF90ZXh0OmQoIiNGRkZGRkYiKS5zZXRBbHBoYSguNykudG9SZ2JTdHJpbmcoKSxwcmltYXJ5X2J1dHRvbl90ZXh0OmQoIiMxNDE2MWEiKS5zZXRBbHBoYSguNSkudG9SZ2JTdHJpbmcoKSxiYWNrZ3JvdW5kX2hvdmVyOmQoIiMxYTFhMWEiKS50b1JnYlN0cmluZygpLGJhY2tncm91bmRfYWN0aXZlOmQoIiMzMzMzMzMiKS50b1JnYlN0cmluZygpfSxkYXJrOntiYWNrZ3JvdW5kOmQoIiMxNDE2MWEiKS50b1JnYlN0cmluZygpLGZvcmVncm91bmQ6ZCgiI2Y3ZjdmNyIpLnRvUmdiU3RyaW5nKCksZGVmYXVsdF9sYXJnZV9jb250ZW50X3RleHQ6ZCgiI2Y3ZjdmNyIpLnNldEFscGhhKC40KS50b1JnYlN0cmluZygpLGZhbGxiYWNrX2xhcmdlX2NvbnRlbnRfdGV4dDpkKCIjMTQxNjFhIikuc2V0QWxwaGEoLjQpLnRvUmdiU3RyaW5nKCkscHJpbWFyeV9idXR0b25fdGV4dDpkKCIjZjdmN2Y3IikudG9SZ2JTdHJpbmcoKSxiYWNrZ3JvdW5kX2hvdmVyOmQoIiNmN2Y3ZjciKS50b1JnYlN0cmluZygpLGJhY2tncm91bmRfYWN0aXZlOmQoIiNmN2Y3ZjciKS50b1JnYlN0cmluZygpfX07ZnVuY3Rpb24gayhlLHQscil7cmV0dXJuIGQucmVhZGFiaWxpdHkoZSx0KT49NC41P3Q6cn1mdW5jdGlvbiB4KGUpe3ZhciB0PWQoZSkudG9Ic2woKSxyPVMubGlnaHQuYmFja2dyb3VuZCxuPWQoe2g6dC5oLHM6dC5zLGw6ODV9KS50b1JnYlN0cmluZygpO3JldHVybiBBKG4sZSxnKXx8KG49Uy5saWdodC5iYWNrZ3JvdW5kKSx7Z3JlZXRpbmdfdGV4dF9jb2xvcjpuLGludHJvZHVjdGlvbl90ZXh0X2NvbG9yOnIsc2Vjb25kYXJ5X3R5cGU6ImRhcmsifX1mdW5jdGlvbiBFKGUpe3ZhciB0PWQoZSkudG9Ic2woKSxyPVMubGlnaHQuZm9yZWdyb3VuZCxuPWQoe2g6dC5oLHM6NSxsOjUwfSkudG9SZ2JTdHJpbmcoKTtyZXR1cm4gQShuLGUsZyl8fChuPVMubGlnaHQuZm9yZWdyb3VuZCkse2dyZWV0aW5nX3RleHRfY29sb3I6bixpbnRyb2R1Y3Rpb25fdGV4dF9jb2xvcjpyLHNlY29uZGFyeV90eXBlOiJsaWdodCJ9fWZ1bmN0aW9uIEEoZSx0KXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06djtyZXR1cm4gZC5yZWFkYWJpbGl0eSh0LGUpPj1yfWZ1bmN0aW9uIFQoZSx0KXt2YXIgcj1TW3RdLmJhY2tncm91bmQ7aWYoQShlLHIsdykpcmV0dXJuIG51bGw7Zm9yKHZhciBuPSJsaWdodCI9PT10LG89ZChlKSxpPTU7aTw9NjA7aSs9NSl7dmFyIGE9bj9vLmNsb25lKCkuZGFya2VuKGkpOm8uY2xvbmUoKS5saWdodGVuKGkpO2lmKEEoYS50b1JnYlN0cmluZygpLHIsdykpcmV0dXJuIGF9cmV0dXJuIGQobj9TLmxpZ2h0LmZvcmVncm91bmQ6Uy5saWdodC5iYWNrZ3JvdW5kKX1mdW5jdGlvbiBSKGUsdCl7cmV0dXJuIEEoZSx0LHcpP2U6ZC5yZWFkYWJpbGl0eSh0LCIjZmZmZmZmIik+ZC5yZWFkYWJpbGl0eSh0LCIjMDAwMDAwIik/Uy5saWdodC5iYWNrZ3JvdW5kOlMubGlnaHQuZm9yZWdyb3VuZH1mdW5jdGlvbiBQKGUpe3ZhciB0PWQoZSkudG9Ic2woKS5sLHI9MTAwKiguOTUtdCksbj1kKGUpLmxpZ2h0ZW4ocikudG9SZ2JTdHJpbmcoKSxvPTEwMCoodC0uODUpLGk9ZChlKS5kYXJrZW4obykudG9SZ2JTdHJpbmcoKSxhPTEwMCoodC0uMykscz1kKGUpLmRhcmtlbihhKS50b1JnYlN0cmluZygpLGM9MTAwKih0LS4yNSksdT1kKGUpLmRhcmtlbihjKS50b1JnYlN0cmluZygpO3JldHVybiB0PC4zNT97bGlnaHQ6bixkYXJrOmV9OnQ+Ljk/e2xpZ2h0OmksZGFyazprKGkscyx1KX06e2xpZ2h0Om4sZGFyazprKG4scyx1KX19ZnVuY3Rpb24gTyhlKXt2YXIgdD1kKGUpLnRvSHNsKCkubCxyPTEyMCooLjg1LXQpLG49ZChlKS5saWdodGVuKHIpLnRvUmdiU3RyaW5nKCksbz04MCoodC0uNzUpLGk9ZChlKS5kYXJrZW4obykudG9SZ2JTdHJpbmcoKSxhPTkwKih0LS40KSxzPWQoZSkuZGFya2VuKGEpLnRvUmdiU3RyaW5nKCksYz05NSoodC0uMzUpLHU9ZChlKS5kYXJrZW4oYykudG9SZ2JTdHJpbmcoKTtyZXR1cm4gdDwuMjU/e2xpZ2h0Om4sZGFyazplfTp0Pi44P3tsaWdodDplLGRhcms6ayhuLHMsdSl9OntsaWdodDpuLGRhcms6ayhuLGkscyl9fWZ1bmN0aW9uIE0oZSx0LHIsbixvKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XSYmYXJndW1lbnRzWzVdLHM9YXJndW1lbnRzLmxlbmd0aD42JiZ2b2lkIDAhPT1hcmd1bWVudHNbNl0/YXJndW1lbnRzWzZdOiJsaWdodCI7dGhpcy5wcmltYXJ5PWUudG9SZ2JTdHJpbmcoKSx0aGlzLnNlY29uZGFyeT10LnRvUmdiU3RyaW5nKCksdGhpcy5wcmltYXJ5VmFyaWFudD1yLnRvUmdiU3RyaW5nKCksdGhpcy5zZWNvbmRhcnlWYXJpYW50PW4udG9SZ2JTdHJpbmcoKSx0aGlzLmdyYWRpZW50RW5kPW8udG9SZ2JTdHJpbmcoKTt2YXIgYz1lLmdldEx1bWluYW5jZSgpPC4yPyJsaWdodGVuIjoiZGFya2VuIix1PWUuY2xvbmUoKSxsPWUuY2xvbmUoKTt0aGlzLnByaW1hcnlIb3Zlcj11W2NdKDEwKS50b1JnYlN0cmluZygpLHRoaXMucHJpbWFyeUFjdGl2ZT1sW2NdKDIwKS50b1JnYlN0cmluZygpO3ZhciBmPSJsaWdodCI9PT1zLGg9Zj9QKHRoaXMucHJpbWFyeSk6Tyh0aGlzLnByaW1hcnkpLG09VCh0aGlzLnByaW1hcnkscyksZz1tP20udG9SZ2JTdHJpbmcoKTp0aGlzLnByaW1hcnksdj10aGlzLnByaW1hcnlIb3ZlcixiPXRoaXMucHJpbWFyeUFjdGl2ZTtpZihtKXt2YXIgdz1tLmdldEx1bWluYW5jZSgpPC4yPyJsaWdodGVuIjoiZGFya2VuIjt2PW0uY2xvbmUoKVt3XSgxMCkudG9SZ2JTdHJpbmcoKSxiPW0uY2xvbmUoKVt3XSgyMCkudG9SZ2JTdHJpbmcoKX12YXIgaz17Z3JhZGllbnRfc3RhcnRfY29sb3I6dGhpcy5zZWNvbmRhcnksZ3JhZGllbnRfZW5kX2NvbG9yOnRoaXMuZ3JhZGllbnRFbmQsY2FyZF9ib3JkZXJfdG9wX2NvbG9yOnRoaXMucHJpbWFyeVZhcmlhbnQsYnV0dG9uX2JhY2tncm91bmRfY29sb3I6ZyxidXR0b25fYmFja2dyb3VuZF9jb2xvcl9ob3Zlcjp2LGJ1dHRvbl9iYWNrZ3JvdW5kX2NvbG9yX2FjdGl2ZTpiLHByaW1hcnlfb25fd2hpdGVfY29udHJhc3Q6TWF0aC5yb3VuZCgxZTMqZC5yZWFkYWJpbGl0eShTW3NdLmJhY2tncm91bmQsdGhpcy5wcmltYXJ5KSkvMWUzLHNlY29uZGFyeV9vbl93aGl0ZV9jb250cmFzdDpNYXRoLnJvdW5kKDFlMypkLnJlYWRhYmlsaXR5KFNbc10uYmFja2dyb3VuZCx0aGlzLnNlY29uZGFyeSkpLzFlMyxxdWlja19yZXBseV90ZXh0X2NvbG9yOmY/aC5kYXJrOmgubGlnaHQscXVpY2tfcmVwbHlfYmFja2dyb3VuZF9jb2xvcjpmP2gubGlnaHQ6aC5kYXJrLGF2YXRhcl9iYWNrZ3JvdW5kX2NvbG9yOmQodGhpcy5wcmltYXJ5KS5kYXJrZW4oeSkudG9SZ2JTdHJpbmcoKX07dGhpcy5nZW5lcmF0ZUxpZ2h0UHJpbWFyeUxpZ2h0U2Vjb25kYXJ5PWZ1bmN0aW9uKCl7cmV0dXJuIGEoYShhKHt9LGspLEUodGhpcy5zZWNvbmRhcnkpKSx7fSx7aGVhZGVyX3RpdGxlX2NvbG9yOlNbc10uZm9yZWdyb3VuZCxoZWFkZXJfdGV4dF9jb2xvcjpTW3NdLmRlZmF1bHRfbGFyZ2VfY29udGVudF90ZXh0LGxhdW5jaGVyX2ljb25fY29sb3I6aT9fOnAsYnV0dG9uX3RleHRfY29sb3I6UihpP186cCxrLmJ1dHRvbl9iYWNrZ3JvdW5kX2NvbG9yKSxsaW5rX2NvbG9yOmY/U1tzXS5mb3JlZ3JvdW5kOnRoaXMucHJpbWFyeSxsaW5rX2NvbG9yX2hvdmVyOmY/U1tzXS5iYWNrZ3JvdW5kX2hvdmVyOnRoaXMucHJpbWFyeUhvdmVyLGxpbmtfY29sb3JfYWN0aXZlOmY/U1tzXS5iYWNrZ3JvdW5kX2FjdGl2ZTp0aGlzLnByaW1hcnlBY3RpdmUscHJpbWFyeV90eXBlOiJsaWdodCIsc2Vjb25kYXJ5X3R5cGU6ImxpZ2h0In0pfSx0aGlzLmdlbmVyYXRlTGlnaHRQcmltYXJ5RGFya1NlY29uZGFyeT1mdW5jdGlvbigpe3JldHVybiBhKGEoYSh7fSxrKSx4KHRoaXMuc2Vjb25kYXJ5KSkse30se2hlYWRlcl90aXRsZV9jb2xvcjpTW3NdLmJhY2tncm91bmQsaGVhZGVyX3RleHRfY29sb3I6U1tzXS5mYWxsYmFja19sYXJnZV9jb250ZW50X3RleHQsbGF1bmNoZXJfaWNvbl9jb2xvcjppP186U1tzXS5wcmltYXJ5X2J1dHRvbl90ZXh0LGJ1dHRvbl90ZXh0X2NvbG9yOlIoaT9fOlNbc10ucHJpbWFyeV9idXR0b25fdGV4dCxrLmJ1dHRvbl9iYWNrZ3JvdW5kX2NvbG9yKSxsaW5rX2NvbG9yOmY/U1tzXS5mb3JlZ3JvdW5kOnRoaXMucHJpbWFyeSxsaW5rX2NvbG9yX2hvdmVyOmY/U1tzXS5iYWNrZ3JvdW5kX2hvdmVyOnRoaXMucHJpbWFyeUhvdmVyLGxpbmtfY29sb3JfYWN0aXZlOmY/U1tzXS5iYWNrZ3JvdW5kX2FjdGl2ZTp0aGlzLnByaW1hcnlBY3RpdmUscHJpbWFyeV90eXBlOiJsaWdodCIsc2Vjb25kYXJ5X3R5cGU6ImRhcmsifSl9LHRoaXMuZ2VuZXJhdGVEYXJrUHJpbWFyeUxpZ2h0U2Vjb25kYXJ5PWZ1bmN0aW9uKCl7cmV0dXJuIGEoYShhKHt9LGspLEUodGhpcy5zZWNvbmRhcnkpKSx7fSx7aGVhZGVyX3RpdGxlX2NvbG9yOlNbc10uZm9yZWdyb3VuZCxoZWFkZXJfdGV4dF9jb2xvcjpTW3NdLmRlZmF1bHRfbGFyZ2VfY29udGVudF90ZXh0LGxhdW5jaGVyX2ljb25fY29sb3I6Zj9TW3NdLmJhY2tncm91bmQ6U1tzXS5mb3JlZ3JvdW5kLGJ1dHRvbl90ZXh0X2NvbG9yOlIoZj9TW3NdLmJhY2tncm91bmQ6U1tzXS5mb3JlZ3JvdW5kLGsuYnV0dG9uX2JhY2tncm91bmRfY29sb3IpLGxpbmtfY29sb3I6Zj90aGlzLnByaW1hcnk6U1tzXS5mb3JlZ3JvdW5kLGxpbmtfY29sb3JfaG92ZXI6Zj90aGlzLnByaW1hcnlIb3ZlcjpTW3NdLmJhY2tncm91bmRfaG92ZXIsbGlua19jb2xvcl9hY3RpdmU6Zj90aGlzLnByaW1hcnlBY3RpdmU6U1tzXS5iYWNrZ3JvdW5kX2FjdGl2ZSxwcmltYXJ5X3R5cGU6ImRhcmsiLHNlY29uZGFyeV90eXBlOiJsaWdodCJ9KX0sdGhpcy5nZW5lcmF0ZURhcmtQcmltYXJ5RGFya1NlY29uZGFyeT1mdW5jdGlvbigpe3JldHVybiBhKGEoYSh7fSxrKSx4KHRoaXMuc2Vjb25kYXJ5KSkse30se2hlYWRlcl90aXRsZV9jb2xvcjpTW3NdLmJhY2tncm91bmQsaGVhZGVyX3RleHRfY29sb3I6U1tzXS5mYWxsYmFja19sYXJnZV9jb250ZW50X3RleHQsbGF1bmNoZXJfaWNvbl9jb2xvcjpmP1Nbc10uYmFja2dyb3VuZDpTW3NdLmZvcmVncm91bmQsYnV0dG9uX3RleHRfY29sb3I6UihmP1Nbc10uYmFja2dyb3VuZDpTW3NdLmZvcmVncm91bmQsay5idXR0b25fYmFja2dyb3VuZF9jb2xvciksbGlua19jb2xvcjpmP3RoaXMucHJpbWFyeTpTW3NdLmZvcmVncm91bmQsbGlua19jb2xvcl9ob3ZlcjpmP3RoaXMucHJpbWFyeUhvdmVyOlNbc10uYmFja2dyb3VuZF9ob3ZlcixsaW5rX2NvbG9yX2FjdGl2ZTpmP3RoaXMucHJpbWFyeUFjdGl2ZTpTW3NdLmJhY2tncm91bmRfYWN0aXZlLHByaW1hcnlfdHlwZToiZGFyayIsc2Vjb25kYXJ5X3R5cGU6ImRhcmsifSl9fWZ1bmN0aW9uIEYoZSx0LHIpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTptO3N3aXRjaChyKXtjYXNlImNvbnRyYXN0LXJhdGlvLTQuNSI6cmV0dXJuIUEoU1t0XS5iYWNrZ3JvdW5kLGUsYik7Y2FzZSJjb250cmFzdC1yYXRpby0zLjAiOnJldHVybiFBKFNbdF0uYmFja2dyb3VuZCxlLHYpO2RlZmF1bHQ6cmV0dXJuIGUuZ2V0THVtaW5hbmNlKCk+bn19ZnVuY3Rpb24gSShlKXtpZighQm9vbGVhbihlLnByaW1hcnlDb2xvcikpdGhyb3ciQSBwcmltYXJ5IGNvbG9yIHdhcyBub3QgcHJvdmlkZWQgdG8gdGhlIGNvbG9yIGNhbGN1bGF0aW9uIjt2YXIgdD1lLnRoZW1lTW9kZXx8ImxpZ2h0IixyPWQoZS5wcmltYXJ5Q29sb3IpLG49ci5jbG9uZSgpLnNldEFscGhhKC41KSxvPWQoZS5zZWNvbmRhcnlDb2xvcnx8ZS5wcmltYXJ5Q29sb3IpLGk9by50b0hzdigpLGE9ZCh7aDppLmgsczpNYXRoLm1pbihpLnMsLjEyKSx2OjF9KSxzPW8uY2xvbmUoKTtzLmRhcmtlbihlLmRhcmtlbkFtb3VudHx8aCk7dmFyIGM9RihyLCJsaWdodCIsZS5jb250cmFzdENoZWNrTWV0aG9kLGUuYnJpZ2h0bmVzc0N1dG9mZiksdT1GKG8sImxpZ2h0IixlLmNvbnRyYXN0Q2hlY2tNZXRob2QsZS5icmlnaHRuZXNzQ3V0b2ZmKSxsPSJjb250cmFzdC1yYXRpby00LjUiPT09ZS5jb250cmFzdENoZWNrTWV0aG9kfHwiY29udHJhc3QtcmF0aW8tMy4wIj09PWUuY29udHJhc3RDaGVja01ldGhvZCxmPW5ldyBNKHIsbyxuLGEscywicHVyZUJsYWNrQWN0aW9uQ29sb3JzImluIGU/ZS5wdXJlQmxhY2tBY3Rpb25Db2xvcnM6bCx0KTtyZXR1cm4gYyYmdT9mLmdlbmVyYXRlTGlnaHRQcmltYXJ5TGlnaHRTZWNvbmRhcnkoKTpjJiYhdT9mLmdlbmVyYXRlTGlnaHRQcmltYXJ5RGFya1NlY29uZGFyeSgpOiFjJiZ1P2YuZ2VuZXJhdGVEYXJrUHJpbWFyeUxpZ2h0U2Vjb25kYXJ5KCk6Y3x8dT92b2lkIDA6Zi5nZW5lcmF0ZURhcmtQcmltYXJ5RGFya1NlY29uZGFyeSgpfUkudGlueWNvbG9yPWQ7dmFyIGo9ZnVuY3Rpb24oZSx0KXt2YXIgcj1kKHQpO3JldHVybltyLmNsb25lKCkubGlnaHRlbigxMCkuZGVzYXR1cmF0ZShlKSxyLmNsb25lKCkubGlnaHRlbigyMCkuZGVzYXR1cmF0ZShlKSxyLmNsb25lKCkubGlnaHRlbigzMCkuZGVzYXR1cmF0ZShlKSxyLmNsb25lKCkubGlnaHRlbig0MCkuZGVzYXR1cmF0ZShlKSxyLmNsb25lKCkubGlnaHRlbig1MCkuZGVzYXR1cmF0ZShlKSxyLmNsb25lKCkubGlnaHRlbig2MCkuZGVzYXR1cmF0ZShlKSxyLmNsb25lKCkubGlnaHRlbig3MCkuZGVzYXR1cmF0ZShlKSxyLmNsb25lKCkubGlnaHRlbig4MCkuZGVzYXR1cmF0ZShlKSxyLmNsb25lKCkubGlnaHRlbig5MCkuZGVzYXR1cmF0ZShlKSxyLmNsb25lKCkubGlnaHRlbigxMDApLmRlc2F0dXJhdGUoZSldfSxEPWZ1bmN0aW9uKGUsdCl7dmFyIHI9ZCh0KTtyZXR1cm5bci5jbG9uZSgpLmRhcmtlbigxMCkuZGVzYXR1cmF0ZShlKSxyLmNsb25lKCkuZGFya2VuKDIwKS5kZXNhdHVyYXRlKGUpLHIuY2xvbmUoKS5kYXJrZW4oMzApLmRlc2F0dXJhdGUoZSksci5jbG9uZSgpLmRhcmtlbig0MCkuZGVzYXR1cmF0ZShlKSxyLmNsb25lKCkuZGFya2VuKDUwKS5kZXNhdHVyYXRlKGUpLHIuY2xvbmUoKS5kYXJrZW4oNjApLmRlc2F0dXJhdGUoZSksci5jbG9uZSgpLmRhcmtlbig3MCkuZGVzYXR1cmF0ZShlKSxyLmNsb25lKCkuZGFya2VuKDgwKS5kZXNhdHVyYXRlKGUpLHIuY2xvbmUoKS5kYXJrZW4oOTApLmRlc2F0dXJhdGUoZSksci5jbG9uZSgpLmRhcmtlbigxMDApLmRlc2F0dXJhdGUoZSldfSxMPS41LFU9LjE1LHo9NTAsQj1mdW5jdGlvbihlKXtyZXR1cm4gZChlKS50b0hzbCgpLmx9LEg9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnoscj1CKGUpLG49cj5MLG89aihyPFU/MS41KnQ6dCxlKSxpPUQodCxlKSxhPShuP1tdLmNvbmNhdChzKGkpLHMobykpOltdLmNvbmNhdChzKG8pLHMoaSkpKS5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gQSh0LGUsYil9KSk7aWYoIWEpcmV0dXJue2ZvcmVncm91bmRDb2xvcjpudWxsLGlzTGlnaHRDb2xvcjohMX07dmFyIGM9QihhKT5yO3JldHVybntmb3JlZ3JvdW5kQ29sb3I6YS50b0hleFN0cmluZygpLGlzTGlnaHRDb2xvcjpjfX07cmV0dXJuIEkuZ2V0QWNjZXNzaWJsZUZvcmVncm91bmRDb2xvckZvckJhY2tncm91bmQ9SCxJfSgpfSwxMzU2MDpmdW5jdGlvbihlKXt2YXIgdDtnbG9iYWxUaGlzLHQ9KCk9PigoKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgZT17ZDoodCxyKT0+e2Zvcih2YXIgbiBpbiByKWUubyhyLG4pJiYhZS5vKHQsbikmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG4se2VudW1lcmFibGU6ITAsZ2V0OnJbbl19KX0sbzooZSx0KT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkscjplPT57InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX19LHQ9e307ZS5yKHQpLGUuZCh0LHtkZWZhdWx0OigpPT5rfSk7dmFyIHI9e05FWFVTX0NMSUVOVF9WRVJTSU9OOiIwLjE4LjgiLElTX1RZUElOR19USFJPVFRMRToxZTMsUFJFU0VOQ0VfSU5URVJWQUw6MTJlNCxQUkVTRU5DRV9FTkFCTEVEOiEwLFBJTkdfVElNRU9VVDo0NWUzLFBPTkdfVElNRU9VVDoxZTQsV0VCU09DS0VUX0NPTk5FQ1RfVElNRU9VVDozZTQsRVZFTlRfQlVGRkVSX1RUTDozZTR9O2NvbnN0IG49bmV3KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe09iamVjdC5hc3NpZ24odGhpcyxyKX1yZXR1cm4gZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXtPYmplY3QuYXNzaWduKHRoaXMscil9LGUucHJvdG90eXBlLnNldE9wdGlvbnM9ZnVuY3Rpb24oZSl7T2JqZWN0LmFzc2lnbih0aGlzLGUpfSxlfSgpKTt2YXIgbz0iTmV4dXNDbGllbnQgLSAiO2NvbnN0IGk9bmV3KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMubG9nZ2VyPWNvbnNvbGV9cmV0dXJuIGUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmxvZ2dlcj1udWxsfSxlLnByb3RvdHlwZS5zZXRMb2dnZXI9ZnVuY3Rpb24oZSl7dGhpcy5sb2dnZXI9ZX0sZS5wcm90b3R5cGUuaW5mbz1mdW5jdGlvbihlKXt3aW5kb3cuTkVYVVNfREVCVUdfTE9HR0lORyYmY29uc29sZS5sb2cobytlKSx0aGlzLmxvZ2dlciYmdGhpcy5sb2dnZXIuaW5mbyhvK2UpfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihlKXt3aW5kb3cuTkVYVVNfREVCVUdfTE9HR0lORyYmY29uc29sZS5lcnJvcihvK2UpLHRoaXMubG9nZ2VyJiZ0aGlzLmxvZ2dlci5lcnJvcihvK2UpfSxlfSgpKTt2YXIgYT0ibmV4dXNjbGllbnQtanMuIixzPXtpbmNyZW1lbnQ6ZnVuY3Rpb24oZSl7fSx0aW1pbmc6ZnVuY3Rpb24oZSx0KXt9fTtjb25zdCBjPW5ldyhmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLl9zaW5rPXN9cmV0dXJuIGUucHJvdG90eXBlLnNldFNpbms9ZnVuY3Rpb24oZSl7dGhpcy5fc2luaz1lfSxlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX3Npbms9c30sZS5wcm90b3R5cGUuaW5jcmVtZW50PWZ1bmN0aW9uKGUpe3RoaXMuX3NpbmsuaW5jcmVtZW50KGErZSl9LGUucHJvdG90eXBlLnRpbWluZz1mdW5jdGlvbihlLHQpe3RoaXMuX3NpbmsudGltaW5nKGErZSx0KX0sZX0oKSksdT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LHIsbixvKXt0aGlzLmluaXRpYWxCYXNlRGVsYXk9ZSx0aGlzLm1heEJhc2VEZWxheT10LHRoaXMuYmFja29mZk11bHRpcGxpZXI9cix0aGlzLm1pblJhbmRvbT1uLHRoaXMubWF4UmFuZG9tPW8sdGhpcy5yZXNldCgpfXJldHVybiBlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMubmV4dEluaXRpYWxCYXNlRGVsYXk9dGhpcy5pbml0aWFsQmFzZURlbGF5fSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7aWYodGhpcy5uZXh0SW5pdGlhbEJhc2VEZWxheT50aGlzLm1heEJhc2VEZWxheSlyZXR1cm4gdGhpcy5yZXNldCgpLE1hdGguZmxvb3IodGhpcy5tYXhCYXNlRGVsYXkqdGhpcy5yYW5kb21GbG9hdCh0aGlzLm1pblJhbmRvbSx0aGlzLm1heFJhbmRvbSkpO3ZhciBlPU1hdGguZmxvb3IodGhpcy5uZXh0SW5pdGlhbEJhc2VEZWxheSp0aGlzLnJhbmRvbUZsb2F0KHRoaXMubWluUmFuZG9tLHRoaXMubWF4UmFuZG9tKSk7cmV0dXJuIHRoaXMubmV4dEluaXRpYWxCYXNlRGVsYXk9dGhpcy5uZXh0SW5pdGlhbEJhc2VEZWxheSp0aGlzLmJhY2tvZmZNdWx0aXBsaWVyLGV9LGUucHJvdG90eXBlLnJhbmRvbUZsb2F0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE1hdGgucmFuZG9tKCkqKHQtZSkrZX0sZX0oKTtmdW5jdGlvbiBsKGUsdCl7Zm9yKHZhciByIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShyKSYmdChyLGVbcl0pfWZ1bmN0aW9uIGYoZSx0KXtyZXR1cm5bXS5jb25jYXQoZSx0KS5maWx0ZXIoKGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gci5pbmRleE9mKGUpPT09dH0pKX1mdW5jdGlvbiBkKGUsdCl7cmV0dXJuIGUuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4hdC5pbmNsdWRlcyhlKX0pKX1mdW5jdGlvbiBwKCl7dmFyIGU9ZG9jdW1lbnQ7cmV0dXJuIHZvaWQgMCE9PWUuaGlkZGVufHx2b2lkIDAhPT1lLm1vekhpZGRlbnx8dm9pZCAwIT09ZS5tc0hpZGRlbnx8dm9pZCAwIT09ZS53ZWJraXRIaWRkZW59Y29uc3QgXz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dGhpcy5fbmV4dXNXZWJTb2NrZXQ9ZSx0aGlzLl90b3BpY3M9W119cmV0dXJuIGUucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbihlKXt0aGlzLl90b3BpY3M9Zih0aGlzLl90b3BpY3MsZSksdGhpcy5fcHVibGlzaF9ldmVudCgibnguU3Vic2NyaWJlIixlKX0sZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7dGhpcy5fdG9waWNzPWQodGhpcy5fdG9waWNzLGUpLHRoaXMuX3B1Ymxpc2hfZXZlbnQoIm54LlVuc3Vic2NyaWJlIixlKX0sZS5wcm90b3R5cGUuaGFzTm9TdWJzY3JpcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLl90b3BpY3MubGVuZ3RofSxlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe3RoaXMuX3RvcGljcy5sZW5ndGg+MCYmdGhpcy5zdWJzY3JpYmUodGhpcy5fdG9waWNzKX0sZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuX25leHVzV2ViU29ja2V0PW51bGwsdGhpcy5fdG9waWNzPVtdfSxlLnNldEV2ZW50VG9waWNzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2V2ZW50X3RvcGljcyhlLmV2ZW50TmFtZSxlLmV2ZW50RGF0YSk7cmV0dXJuIHQmJihlWyJueC5Ub3BpY3MiXT10KSxlfSxlLmlzVG9waWNFdmVudD1mdW5jdGlvbihlKXtyZXR1cm5bIm54LlN1YnNjcmliZSIsIm54LlVuc3Vic2NyaWJlIl0uaW5jbHVkZXMoZS5ldmVudE5hbWUpfSxlLl9ldmVudF90b3BpY3M9ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSJBZG1pbklzVHlwaW5nIjpjYXNlIlVzZXJJc1R5cGluZyI6Y2FzZSJDb252ZXJzYXRpb25TZWVuIjpjYXNlIkFkbWluSXNUeXBpbmdBTm90ZSI6Y2FzZSJVc2VyQ29udGVudFNlZW5CeUFkbWluIjpjYXNlIk5ld0NvbW1lbnQiOnJldHVybiB0LmNvbnZlcnNhdGlvbklkP1siY29udmVyc2F0aW9uLyIuY29uY2F0KHQuY29udmVyc2F0aW9uSWQpXTpbImNvbnZlcnNhdGlvbi9uZXciXTtkZWZhdWx0OnJldHVybiExfX0sZS5wcm90b3R5cGUuX3B1Ymxpc2hfZXZlbnQ9ZnVuY3Rpb24oZSx0KXt0aGlzLl9uZXh1c1dlYlNvY2tldCYmdGhpcy5fbmV4dXNXZWJTb2NrZXQuaXNXZWJzb2NrZXRUcmFuc3BvcnQoKSYmdGhpcy5fbmV4dXNXZWJTb2NrZXQucHVibGlzaCh7ZXZlbnROYW1lOmUsIm54LlRvcGljcyI6dH0pfSxlfSgpLGg9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMuX3B1Ymxpc2g9ZSx0aGlzLl9ldmVudHM9e30sdGhpcy5fY29udmVyc2F0aW9uRXZlbnRzPXt9fXJldHVybiBlLnByb3RvdHlwZS5nZXRFdmVudHM9ZnVuY3Rpb24oKXtyZXR1cm57ZXZlbnRzOnRoaXMuX2V2ZW50cyxjb252ZXJzYXRpb25FdmVudHM6dGhpcy5fY29udmVyc2F0aW9uRXZlbnRzfX0sZS5wcm90b3R5cGUucHVzaEV2ZW50PWZ1bmN0aW9uKGUpe2lmKCFfLmlzVG9waWNFdmVudChlKSl7dmFyIHQ9ZS5ldmVudERhdGEmJmUuZXZlbnREYXRhLmNvbnZlcnNhdGlvbklkO3Q/dGhpcy5fcHVzaENvbnZlcnNhdGlvbkV2ZW50KHQsZSk6dGhpcy5fcHVzaEV2ZW50KGUpfX0sZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXt0aGlzLl9mbHVzaEV2ZW50cyh0aGlzLl9ldmVudHMpLHRoaXMuX2V2ZW50cz17fSx0aGlzLl9mbHVzaENvbnZlcnNhdGlvbkV2ZW50cygpLHRoaXMuX2NvbnZlcnNhdGlvbkV2ZW50cz17fX0sZS5wcm90b3R5cGUuX3B1c2hFdmVudD1mdW5jdGlvbihlKXt2YXIgdD0obmV3IERhdGUpLmdldFRpbWUoKTt0aGlzLl9ldmVudHNbdF09ZX0sZS5wcm90b3R5cGUuX3B1c2hDb252ZXJzYXRpb25FdmVudD1mdW5jdGlvbihlLHQpe3ZhciByPShuZXcgRGF0ZSkuZ2V0VGltZSgpLG49dGhpcy5fY29udmVyc2F0aW9uRXZlbnRzW2VdfHx7fTtuW3JdPXQsdGhpcy5fY29udmVyc2F0aW9uRXZlbnRzW2VdPW59LGUucHJvdG90eXBlLl9mbHVzaEV2ZW50cz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLHI9KG5ldyBEYXRlKS5nZXRUaW1lKCk7bChlLChmdW5jdGlvbihlLG8pe3ItZTxuLkVWRU5UX0JVRkZFUl9UVEwmJnQuX3B1Ymxpc2gobyl9KSl9LGUucHJvdG90eXBlLl9mbHVzaENvbnZlcnNhdGlvbkV2ZW50cz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7bCh0aGlzLl9jb252ZXJzYXRpb25FdmVudHMsKGZ1bmN0aW9uKHQscil7cmV0dXJuIGUuX2ZsdXNoRXZlbnRzKHIpfSkpfSxlfSgpLG09ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPW51bGwsbz0tMSxpPW51bGwsYT1udWxsLHM9ITEhPT0obnVsbD09cj92b2lkIDA6ci50cmFpbGluZyksYz1mdW5jdGlvbigpe2lmKG89RGF0ZS5ub3coKSxuPW51bGwsaSl0cnl7ZS5hcHBseShhLGkpfWZpbmFsbHl7aT1udWxsLGE9bnVsbH19LHU9ZnVuY3Rpb24oKXtmb3IodmFyIHI9W10sdT0wO3U8YXJndW1lbnRzLmxlbmd0aDt1Kyspclt1XT1hcmd1bWVudHNbdV07dmFyIGw9RGF0ZS5ub3coKTtpZihhPXRoaXMsaT1yLG88MHx8bC1vPj10KXtuJiYoY2xlYXJUaW1lb3V0KG4pLG49bnVsbCksbz1sO3RyeXtlLmFwcGx5KGEsaSl9ZmluYWxseXtpPW51bGwsYT1udWxsfX1lbHNlIW4mJnMmJihuPXNldFRpbWVvdXQoYyx0LShsLW8pKSl9O3JldHVybiB1LmNhbmNlbD1mdW5jdGlvbigpe24mJihjbGVhclRpbWVvdXQobiksbj1udWxsKSxvPS0xLGk9bnVsbCxhPW51bGx9LHV9LHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMuX3Rocm90dGxlUHJlc2VuY2VFdmVudD10aGlzLl9jcmVhdGVTZW5kUHJlc2VuY2VFdmVudFRocm90dGxlKCksdGhpcy5fbmV4dXNXZWJTb2NrZXQ9ZSx0aGlzLl9pbml0UGFnZVZpc2liaWxpdHlMaXN0ZW5uZXJzKCl9cmV0dXJuIGUucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9wcmVzZW5jZUludGVydmFsfHwodGhpcy5fdGhyb3R0bGVQcmVzZW5jZUV2ZW50KCksdGhpcy5fcHJlc2VuY2VJbnRlcnZhbD1zZXRJbnRlcnZhbCgoZnVuY3Rpb24oKXtlLl90aHJvdHRsZVByZXNlbmNlRXZlbnQoKX0pLG4uUFJFU0VOQ0VfSU5URVJWQUwpKX0sZS5wcm90b3R5cGUuc3RvcD1mdW5jdGlvbigpe3RoaXMuX3ByZXNlbmNlSW50ZXJ2YWwmJmNsZWFySW50ZXJ2YWwodGhpcy5fcHJlc2VuY2VJbnRlcnZhbCksdGhpcy5fcHJlc2VuY2VJbnRlcnZhbD1udWxsfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5zdG9wKCksdGhpcy5fdGVhcmRvd25QYWdlVmlzaWJpbGl0eUxpc3RlbmVycygpLHRoaXMuX25leHVzV2ViU29ja2V0PW51bGx9LGUucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5zdG9wKCksdGhpcy5fdGhyb3R0bGVQcmVzZW5jZUV2ZW50LmNhbmNlbCgpLHRoaXMuc3RhcnQoKX0sZS5wcm90b3R5cGUuX3NlbmRQcmVzZW5jZUV2ZW50PWZ1bmN0aW9uKCl7aWYobi5QUkVTRU5DRV9FTkFCTEVEJiZ0aGlzLl9uZXh1c1dlYlNvY2tldCl7dmFyIGU9e2V2ZW50TmFtZToibnguVXNlclByZXNlbmNlIixldmVudERhdGE6dm9pZCAwfSx0PWZ1bmN0aW9uKCl7dHJ5e3JldHVybiB3aW5kb3cudG9wLmxvY2F0aW9uLmhyZWZ9Y2F0Y2goZSl7cmV0dXJufX0oKTt0JiYoZS5ldmVudERhdGE9e2N1cnJlbnRfcGFnZTp0fSksdGhpcy5fbmV4dXNXZWJTb2NrZXQucHVibGlzaChlKX19LGUucHJvdG90eXBlLl9jcmVhdGVTZW5kUHJlc2VuY2VFdmVudFRocm90dGxlPWZ1bmN0aW9uKCl7cmV0dXJuIG0odGhpcy5fc2VuZFByZXNlbmNlRXZlbnQuYmluZCh0aGlzKSxuLlBSRVNFTkNFX0lOVEVSVkFMKX0sZS5wcm90b3R5cGUuX2luaXRQYWdlVmlzaWJpbGl0eUxpc3Rlbm5lcnM9ZnVuY3Rpb24oKXt2YXIgZSx0O3AoKSYmKHRoaXMuX3Zpc2liaWxpdHlFdmVudD0odm9pZCAwIT09KHQ9ZG9jdW1lbnQpLmhpZGRlbj9lPSJ2aXNpYmlsaXR5Y2hhbmdlIjp2b2lkIDAhPT10Lm1vekhpZGRlbj9lPSJtb3p2aXNpYmlsaXR5Y2hhbmdlIjp2b2lkIDAhPT10Lm1zSGlkZGVuP2U9Im1zdmlzaWJpbGl0eWNoYW5nZSI6dm9pZCAwIT09dC53ZWJraXRIaWRkZW4mJihlPSJ3ZWJraXR2aXNpYmlsaXR5Y2hhbmdlIiksZSksdGhpcy5fb25QYWdlVmlzaWJsZUJvdW5kPXRoaXMuX29uUGFnZVZpc2liaWxpdHlDaGFuZ2UuYmluZCh0aGlzKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLl92aXNpYmlsaXR5RXZlbnQsdGhpcy5fb25QYWdlVmlzaWJsZUJvdW5kKSl9LGUucHJvdG90eXBlLl90ZWFyZG93blBhZ2VWaXNpYmlsaXR5TGlzdGVuZXJzPWZ1bmN0aW9uKCl7cCgpJiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLl92aXNpYmlsaXR5RXZlbnQsdGhpcy5fb25QYWdlVmlzaWJsZUJvdW5kKX0sZS5wcm90b3R5cGUuX29uUGFnZVZpc2liaWxpdHlDaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgZTsodm9pZCAwIT09KGU9ZG9jdW1lbnQpLmhpZGRlbj9lLmhpZGRlbjp2b2lkIDAhPT1lLm1vekhpZGRlbj9lLm1vekhpZGRlbjp2b2lkIDAhPT1lLm1zSGlkZGVuP2UubXNIaWRkZW46dm9pZCAwIT09ZS53ZWJraXRIaWRkZW4mJmUud2Via2l0SGlkZGVuKT90aGlzLnN0b3AoKTp0aGlzLnN0YXJ0KCl9LGV9KCksZz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXt0aGlzLm5leHVzV2ViU29ja2V0PWUsdGhpcy5vbkVycm9yPXR9cmV0dXJuIGUucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9waW5nVGVzdFRpbWVyPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5fcGluZygpLGUuX3BvbmdUZXN0VGltZXI9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLm9uRXJyb3IoKX0pLG4uUE9OR19USU1FT1VUKX0pLG4uUElOR19USU1FT1VUKX0sZS5wcm90b3R5cGUuYWNrPWZ1bmN0aW9uKCl7dGhpcy5yZXNldCgpfSxlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX3N0b3BQaW5nUG9uZygpLHRoaXMuc3RhcnQoKX0sZS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuX3N0b3BQaW5nUG9uZygpLHRoaXMubmV4dXNXZWJTb2NrZXQ9bnVsbCx0aGlzLm9uRXJyb3I9bnVsbH0sZS5wcm90b3R5cGUuaGVhbHRoQ2hlY2s9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX3BvbmdIZWFsdGhDaGVja1RpbWVyfHwodGhpcy5fcGluZygpLHRoaXMuX3BvbmdIZWFsdGhDaGVja1RpbWVyPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5vbkVycm9yKCl9KSxuLlBPTkdfVElNRU9VVCkpfSxlLnByb3RvdHlwZS5fc3RvcFBpbmdQb25nPWZ1bmN0aW9uKCl7dGhpcy5fcGluZ1Rlc3RUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuX3BpbmdUZXN0VGltZXIpLHRoaXMuX3BvbmdUZXN0VGltZXImJmNsZWFyVGltZW91dCh0aGlzLl9wb25nVGVzdFRpbWVyKSx0aGlzLl9yZXNldFBvbmdIQ1RpbWVyKCl9LGUucHJvdG90eXBlLl9waW5nPWZ1bmN0aW9uKCl7dmFyIGU9KG5ldyBEYXRlKS5nZXRUaW1lKCksdD17ZXZlbnROYW1lOiJueC5QaW5nIixldmVudEd1aWQ6ZS50b1N0cmluZygpLGV2ZW50RGF0YTp7c2VuZFRpbWU6ZSxlbmRwb2ludDp0aGlzLm5leHVzV2ViU29ja2V0LmVuZHBvaW50fX07dGhpcy5uZXh1c1dlYlNvY2tldC5wdWJsaXNoKHQpfSxlLnByb3RvdHlwZS5fcmVzZXRQb25nSENUaW1lcj1mdW5jdGlvbigpe3RoaXMuX3BvbmdIZWFsdGhDaGVja1RpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5fcG9uZ0hlYWx0aENoZWNrVGltZXIpLHRoaXMuX3BvbmdIZWFsdGhDaGVja1RpbWVyPW51bGx9LGV9KCksdj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dGhpcy5uZXh1c1dlYlNvY2tldD1lLHRoaXMuX2luaXRPbmxpbmVPZmZsaW5lTGlzdGVuZXJzKCl9cmV0dXJuIGUucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLl90ZWFyZG93bk9ubGluZU9mZmxpbmVMaXN0ZW5lcnMoKSx0aGlzLm5leHVzV2ViU29ja2V0PW51bGx9LGUucHJvdG90eXBlLl9pbml0T25saW5lT2ZmbGluZUxpc3RlbmVycz1mdW5jdGlvbigpe3RoaXMuX2NhbWVPbmxpbmVCb3VuZD10aGlzLl9jYW1lT25saW5lLmJpbmQodGhpcyksdGhpcy5fd2VudE9mZmxpbmVCb3VuZD10aGlzLl93ZW50T2ZmbGluZS5iaW5kKHRoaXMpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbmxpbmUiLHRoaXMuX2NhbWVPbmxpbmVCb3VuZCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLHRoaXMuX3dlbnRPZmZsaW5lQm91bmQpfSxlLnByb3RvdHlwZS5fdGVhcmRvd25PbmxpbmVPZmZsaW5lTGlzdGVuZXJzPWZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9ubGluZSIsdGhpcy5fY2FtZU9ubGluZUJvdW5kKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigib2ZmbGluZSIsdGhpcy5fd2VudE9mZmxpbmVCb3VuZCl9LGUucHJvdG90eXBlLl9jYW1lT25saW5lPWZ1bmN0aW9uKCl7dGhpcy5uZXh1c1dlYlNvY2tldC5yZWNvbm5lY3ROb3coKX0sZS5wcm90b3R5cGUuX3dlbnRPZmZsaW5lPWZ1bmN0aW9uKCl7dGhpcy5uZXh1c1dlYlNvY2tldC5kZXN0cm95V2ViU29ja2V0KCl9LGV9KCksYj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LHIsbixvKXt2b2lkIDA9PT10JiYodD1mdW5jdGlvbigpe30pLHZvaWQgMD09PXImJihyPWZ1bmN0aW9uKCl7fSksdm9pZCAwPT09biYmKG49ZnVuY3Rpb24oZSl7fSksdGhpcy5lbmRwb2ludD1lLHRoaXMub25Db25uZWN0PXQsdGhpcy5vbkRpc2Nvbm5lY3Q9cix0aGlzLm9uRmFpbGVkVG9Fc3RhYmxpc2hOZXdXZWJzb2NrZXRDb25uZWN0aW9uPW4sdGhpcy5fdXNlclJvbGU9byx0aGlzLl9jYWxsZWRPbkNvbm5lY3RTaW5jZUxhc3REaXNjb25uZWN0PSExLHRoaXMubnVtYmVyT2ZDb25zZWN1dGl2ZUZhaWxlZFJldHJpZXNUb0Nvbm5lY3Q9MCx0aGlzLl9saXN0ZW5lcnM9e30sdGhpcy5fZ2xvYmFsTGlzdGVuZXJzPVtdLHRoaXMucmV0cnlDb3VudGVyPW5ldyB1KDJlMywzZTUsMiwuNSwyLjUpLHRoaXMuX2luaXRCdWZmZXIoKSx0aGlzLl9pbml0V2ViU29ja2V0KCk/KHRoaXMuX3JlYWNoYWJpbGl0eT1uZXcgdih0aGlzKSx0aGlzLl9wcmVzZW5jZT1uZXcgeSh0aGlzKSx0aGlzLl90b3BpY01hbmFnZXI9bmV3IF8odGhpcykpOnRoaXMub25GYWlsZWRUb0VzdGFibGlzaE5ld1dlYnNvY2tldENvbm5lY3Rpb24oIndlYnNvY2tldF9ub3Rfc3VwcG9ydGVkIil9cmV0dXJuIGUucHJvdG90eXBlLmFkZExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09dGhpcy5fbGlzdGVuZXJzW2VdP3RoaXMuX2xpc3RlbmVyc1tlXT1bdF06dGhpcy5fbGlzdGVuZXJzW2VdLnB1c2godCl9LGUucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5fbGlzdGVuZXJzW2VdO2lmKHIpe3ZhciBuPXIuaW5kZXhPZih0KTtuPj0wJiZyLnNwbGljZShuLDEpfX0sZS5wcm90b3R5cGUuYWRkR2xvYmFsTGlzdGVuZXI9ZnVuY3Rpb24oZSl7dGhpcy5fZ2xvYmFsTGlzdGVuZXJzLnB1c2goZSl9LGUucHJvdG90eXBlLnB1Ymxpc2g9ZnVuY3Rpb24oZSl7aWYodGhpcy5pc09wZW4oKSl0cnl7dGhpcy53ZWJTb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2goZSl7aS5lcnJvcigiRXJyb3Igd2l0aCBwdWJsaXNoaW5nIGEgbWVzc2FnZTogIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoZSkpKSx0aGlzLndlYlNvY2tldCYmdGhpcy53ZWJTb2NrZXQuY2xvc2UmJnRoaXMud2ViU29ja2V0LmNsb3NlKDFlMyl9ZWxzZSB0aGlzLl9idWZmZXIucHVzaEV2ZW50KGUpfSxlLnByb3RvdHlwZS5zdWJzY3JpYmVUb1RvcGljcz1mdW5jdGlvbihlKXt0aGlzLl90b3BpY01hbmFnZXIuc3Vic2NyaWJlKGUpfSxlLnByb3RvdHlwZS51bnN1YnNjcmliZUZyb21Ub3BpY3M9ZnVuY3Rpb24oZSl7dGhpcy5fdG9waWNNYW5hZ2VyLnVuc3Vic2NyaWJlKGUpfSxlLnByb3RvdHlwZS5zaHV0ZG93bj1mdW5jdGlvbigpe3RoaXMuX2Rlc3Ryb3lQaW5nZXIoKSx0aGlzLl9yZWFjaGFiaWxpdHkuZGVzdHJveSgpLHRoaXMuX3ByZXNlbmNlLmRlc3Ryb3koKSx0aGlzLl90b3BpY01hbmFnZXIuZGVzdHJveSgpLHRoaXMuZGVzdHJveVdlYlNvY2tldCgpLHRoaXMuX2xpc3RlbmVycz17fSx0aGlzLl9nbG9iYWxMaXN0ZW5lcnM9W10sdGhpcy5faW5pdEJ1ZmZlcigpLHRoaXMuX2NsZWFyQ29ubmVjdFRpbWVvdXQoKSx0aGlzLl9jbGVhclNjaGVkdWxlZFJlY29ubmVjdCgpfSxlLnByb3RvdHlwZS5pc09wZW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53ZWJTb2NrZXQmJnRoaXMud2ViU29ja2V0LnJlYWR5U3RhdGU9PT10aGlzLndlYlNvY2tldC5PUEVOfSxlLnByb3RvdHlwZS5pc0Nvbm5lY3Rpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53ZWJTb2NrZXQmJnRoaXMud2ViU29ja2V0LnJlYWR5U3RhdGU9PT10aGlzLndlYlNvY2tldC5DT05ORUNUSU5HfSxlLnByb3RvdHlwZS5pc1dlYnNvY2tldFRyYW5zcG9ydD1mdW5jdGlvbigpe3JldHVybiEwfSxlLnByb3RvdHlwZS5zY2hlZHVsZVJlY29ubmVjdD1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMuX2NsZWFyU2NoZWR1bGVkUmVjb25uZWN0KCksdGhpcy5fc2NoZWR1bGVkUmVjb25uZWN0PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dC5yZWNvbm5lY3ROb3coKX0pLGUpfSxlLnByb3RvdHlwZS5yZWNvbm5lY3ROb3c9ZnVuY3Rpb24oKXt0aGlzLl9jbGVhclNjaGVkdWxlZFJlY29ubmVjdCgpLHRoaXMuZGVzdHJveVdlYlNvY2tldCgpLHRoaXMuX3RvcGljTWFuYWdlci5oYXNOb1N1YnNjcmlwdGlvbnMoKSYmYy5pbmNyZW1lbnQoInJlY29ubmVjdF9ub19zdWJzY3JpcHRpb25zIiksdGhpcy5faW5pdFdlYlNvY2tldCgpfSxlLnByb3RvdHlwZS5lYWdlclJlY29ubmVjdD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLHI9dGhpcy53ZWJTb2NrZXQsbj1yP3IucmVhZHlTdGF0ZToibnVsbCI7aS5pbmZvKCJTdGFydGluZyBlYWdlciByZWNvbm5lY3QuIE9sZCBjb25uZWN0aW9uOiAiLmNvbmNhdCh0aGlzLl9nZXRSZWFkeVN0YXRlU3RyaW5nKG4pKSksZSYmKHRoaXMuZW5kcG9pbnQ9ZSk7dmFyIG89dGhpcy5fd2ViU29ja2V0VXJsKHRoaXMuZW5kcG9pbnQpLGE9bmV3IFdlYlNvY2tldChvKTtpLmluZm8oIkNyZWF0ZWQgbmV3IFdlYlNvY2tldCBmb3IgZWFnZXIgcmVjb25uZWN0IiksYS5vbm1lc3NhZ2U9dGhpcy5fb25NZXNzYWdlLmJpbmQodGhpcyksYS5vbmVycm9yPWZ1bmN0aW9uKGUpe2kuZXJyb3IoIk5ldyBjb25uZWN0aW9uIGVycm9yIGR1cmluZyBlYWdlciByZWNvbm5lY3Q6ICIuY29uY2F0KGUpKSx0Ll9vbkVycm9yKGUpfSxhLm9uY2xvc2U9ZnVuY3Rpb24oZSl7aS5pbmZvKCJOZXcgY29ubmVjdGlvbiBjbG9zZWQgZHVyaW5nIGVhZ2VyIHJlY29ubmVjdC4gQ29kZTogIi5jb25jYXQoZS5jb2RlLCIsIFJlYXNvbjogIikuY29uY2F0KGUucmVhc29uKSksdC5fb25DbG9zZShlKX0sYS5vbm9wZW49ZnVuY3Rpb24oZSl7aS5pbmZvKCJOZXcgY29ubmVjdGlvbiBvcGVuZWQuIEFjdGl2ZSBjb25uZWN0aW9ucyAtIE9sZDogIi5jb25jYXQodC5fZ2V0UmVhZHlTdGF0ZVN0cmluZyhudWxsPT1yP3ZvaWQgMDpyLnJlYWR5U3RhdGUpLCIsIE5ldzogIikuY29uY2F0KHQuX2dldFJlYWR5U3RhdGVTdHJpbmcoYS5yZWFkeVN0YXRlKSkpLHQud2ViU29ja2V0PWEsdC5fb25PcGVuKCksciYmKHIub25vcGVuPW51bGwsci5vbm1lc3NhZ2U9bnVsbCxyLm9uZXJyb3I9bnVsbCxyLm9uY2xvc2U9ZnVuY3Rpb24oZSl7aS5pbmZvKCJPbGQgY29ubmVjdGlvbiBjbG9zZWQuIEVhZ2VyIHJlY29ubmVjdCBjb21wbGV0ZSIpfSxyLnJlYWR5U3RhdGUhPT1XZWJTb2NrZXQuT1BFTiYmci5yZWFkeVN0YXRlIT09V2ViU29ja2V0LkNPTk5FQ1RJTkd8fChpLmluZm8oIkNsb3Npbmcgb2xkIGNvbm5lY3Rpb246ICIuY29uY2F0KHQuX2dldFJlYWR5U3RhdGVTdHJpbmcoci5yZWFkeVN0YXRlKSkpLHIuY2xvc2UoMWUzLCJFYWdlciByZWNvbm5lY3QiKSkpfX0sZS5wcm90b3R5cGUuX2dldFJlYWR5U3RhdGVTdHJpbmc9ZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2UgV2ViU29ja2V0LkNPTk5FQ1RJTkc6cmV0dXJuIkNPTk5FQ1RJTkcgKDApIjtjYXNlIFdlYlNvY2tldC5PUEVOOnJldHVybiJPUEVOICgxKSI7Y2FzZSBXZWJTb2NrZXQuQ0xPU0lORzpyZXR1cm4iQ0xPU0lORyAoMikiO2Nhc2UgV2ViU29ja2V0LkNMT1NFRDpyZXR1cm4iQ0xPU0VEICgzKSI7ZGVmYXVsdDpyZXR1cm4iVU5LTk9XTiAoIi5jb25jYXQoZSwiKSIpfX0sZS5wcm90b3R5cGUuZGVzdHJveVdlYlNvY2tldD1mdW5jdGlvbigpe3RoaXMuX2NsZWFyQ29ubmVjdFRpbWVvdXQoKSx0aGlzLl9jYWxsZWRPbkNvbm5lY3RTaW5jZUxhc3REaXNjb25uZWN0JiYodGhpcy5vbkRpc2Nvbm5lY3QoKSx0aGlzLl9jYWxsZWRPbkNvbm5lY3RTaW5jZUxhc3REaXNjb25uZWN0PSExKSx0aGlzLndlYlNvY2tldCYmKHRoaXMud2ViU29ja2V0Lm9ub3Blbj1udWxsLHRoaXMud2ViU29ja2V0Lm9ubWVzc2FnZT1udWxsLHRoaXMud2ViU29ja2V0Lm9uZXJyb3I9bnVsbCx0aGlzLndlYlNvY2tldC5vbmNsb3NlPW51bGwsdGhpcy5pc09wZW4oKT90aGlzLndlYlNvY2tldCYmdGhpcy53ZWJTb2NrZXQuY2xvc2UmJnRoaXMud2ViU29ja2V0LmNsb3NlKDFlMyk6dGhpcy5pc0Nvbm5lY3RpbmcoKSYmaS5pbmZvKCJEZXN0cm95aW5nIGEgd2Vic29ja2V0IHRoYXQgaXMgc3RpbGwgaW4gdGhlIGNvbm5lY3Rpbmcgc3RhdGUiKSx0aGlzLndlYlNvY2tldD1udWxsKSx0aGlzLl9kZXN0cm95UGluZ2VyKCl9LGUucHJvdG90eXBlLnBlcmZvcm1IZWFsdGhDaGVjaz1mdW5jdGlvbigpe3RoaXMuX3BpbmdlciYmdGhpcy5fcGluZ2VyLmhlYWx0aENoZWNrKCksdGhpcy5pc09wZW4oKXx8dGhpcy5yZWNvbm5lY3ROb3coKX0sZS5wcm90b3R5cGUuX29uT3Blbj1mdW5jdGlvbigpe3RoaXMucmV0cnlDb3VudGVyLnJlc2V0KCksdGhpcy5fY2xlYXJDb25uZWN0VGltZW91dCgpLHRoaXMubnVtYmVyT2ZDb25zZWN1dGl2ZUZhaWxlZFJldHJpZXNUb0Nvbm5lY3Q9MCx0aGlzLl9pbml0UGluZ2VyKCksdGhpcy5fY2FsbGVkT25Db25uZWN0U2luY2VMYXN0RGlzY29ubmVjdD0hMCx0aGlzLm9uQ29ubmVjdCgpLHRoaXMuX3ByZXNlbmNlLnN0YXJ0KCksdGhpcy5fYnVmZmVyLmZsdXNoKCksdGhpcy5fdG9waWNNYW5hZ2VyLmZsdXNoKCl9LGUucHJvdG90eXBlLl9vbk1lc3NhZ2U9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fcGFyc2VNZXNzYWdlKGUpO3QmJih0aGlzLl9jYWxsTGlzdGVuZXJzKHQpLCJBQ0siPT09dC5ldmVudE5hbWUmJnRoaXMuX3Bpbmdlci5hY2soKSl9LGUucHJvdG90eXBlLl9vbkVycm9yPWZ1bmN0aW9uKGUpe2MuaW5jcmVtZW50KCJlcnJvciIpLGkuZXJyb3IoIldlYnNvY2tldCBfb25FcnJvciBjYWxsZWQ6ICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KGUpKSl9LGUucHJvdG90eXBlLl9vbkNsb3NlPWZ1bmN0aW9uKGUpe3RoaXMuZGVzdHJveVdlYlNvY2tldCgpLGkuZXJyb3IoIldlYnNvY2tldCBjbG9zZWQ6IGNvZGU6ICIuY29uY2F0KGUuY29kZSwiLCByZWFzb246ICIpLmNvbmNhdChlLnJlYXNvbiwiLCB3YXNDbGVhbjogIikuY29uY2F0KGUud2FzQ2xlYW4pKSxuYXZpZ2F0b3Iub25MaW5lPyh0aGlzLm51bWJlck9mQ29uc2VjdXRpdmVGYWlsZWRSZXRyaWVzVG9Db25uZWN0KyssdGhpcy5udW1iZXJPZkNvbnNlY3V0aXZlRmFpbGVkUmV0cmllc1RvQ29ubmVjdD49NT90aGlzLm9uRmFpbGVkVG9Fc3RhYmxpc2hOZXdXZWJzb2NrZXRDb25uZWN0aW9uKCJtYXhfcmV0cmllc190b19jb25uZWN0X2ZhaWxlZCIpOnRoaXMuc2NoZWR1bGVSZWNvbm5lY3QodGhpcy5yZXRyeUNvdW50ZXIubmV4dCgpKSk6dGhpcy5zY2hlZHVsZVJlY29ubmVjdCh0aGlzLnJldHJ5Q291bnRlci5uZXh0KCkpfSxlLnByb3RvdHlwZS5fb25QaW5nVGltZW91dD1mdW5jdGlvbigpe2MuaW5jcmVtZW50KCJwaW5nX3RpbWVvdXQiKSx0aGlzLndlYlNvY2tldCYmdGhpcy53ZWJTb2NrZXQuY2xvc2UmJnRoaXMud2ViU29ja2V0LmNsb3NlKDFlMyl9LGUucHJvdG90eXBlLl9jYWxsTGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3ZhciB0PWUuZXZlbnROYW1lO3RoaXMuX2xpc3RlbmVyc1t0XSYmdGhpcy5fbGlzdGVuZXJzW3RdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0KGUpfSkpLHRoaXMuX2dsb2JhbExpc3RlbmVycy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdChlKX0pKX0sZS5wcm90b3R5cGUuX2NsZWFyU2NoZWR1bGVkUmVjb25uZWN0PWZ1bmN0aW9uKCl7dGhpcy5fc2NoZWR1bGVkUmVjb25uZWN0JiYoY2xlYXJUaW1lb3V0KHRoaXMuX3NjaGVkdWxlZFJlY29ubmVjdCksdGhpcy5fc2NoZWR1bGVkUmVjb25uZWN0PW51bGwpfSxlLnByb3RvdHlwZS5faW5pdEJ1ZmZlcj1mdW5jdGlvbigpe3RoaXMuX2J1ZmZlcj1uZXcgaCh0aGlzLnB1Ymxpc2guYmluZCh0aGlzKSl9LGUucHJvdG90eXBlLl9pbml0V2ViU29ja2V0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fd2ViU29ja2V0VXJsKHRoaXMuZW5kcG9pbnQpO3JldHVybiB0aGlzLl9zdGFydENvbm5lY3RUaW1lb3V0KCksd2luZG93LldlYlNvY2tldD8odGhpcy53ZWJTb2NrZXQ9bmV3IFdlYlNvY2tldChlKSx0aGlzLndlYlNvY2tldC5vbm9wZW49dGhpcy5fb25PcGVuLmJpbmQodGhpcyksdGhpcy53ZWJTb2NrZXQub25tZXNzYWdlPXRoaXMuX29uTWVzc2FnZS5iaW5kKHRoaXMpLHRoaXMud2ViU29ja2V0Lm9uZXJyb3I9dGhpcy5fb25FcnJvci5iaW5kKHRoaXMpLHRoaXMud2ViU29ja2V0Lm9uY2xvc2U9dGhpcy5fb25DbG9zZS5iaW5kKHRoaXMpLCEwKToodGhpcy5fY2xlYXJDb25uZWN0VGltZW91dCgpLCExKX0sZS5wcm90b3R5cGUuX2luaXRQaW5nZXI9ZnVuY3Rpb24oKXt0aGlzLl9kZXN0cm95UGluZ2VyKCksdGhpcy5fcGluZ2VyPW5ldyBnKHRoaXMsdGhpcy5fb25QaW5nVGltZW91dC5iaW5kKHRoaXMpKSx0aGlzLl9waW5nZXIuc3RhcnQoKX0sZS5wcm90b3R5cGUuX2Rlc3Ryb3lQaW5nZXI9ZnVuY3Rpb24oKXt0aGlzLl9waW5nZXImJih0aGlzLl9waW5nZXIuZGVzdHJveSgpLHRoaXMuX3Bpbmdlcj1udWxsKX0sZS5wcm90b3R5cGUuX3N0YXJ0Q29ubmVjdFRpbWVvdXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2NsZWFyQ29ubmVjdFRpbWVvdXQoKSxuLldFQlNPQ0tFVF9DT05ORUNUX1RJTUVPVVQ+MCYmKHRoaXMuX2Nvbm5lY3RUaW1lb3V0PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7Yy5pbmNyZW1lbnQoImNvbm5lY3RfdGltZW91dCIpLGUud2ViU29ja2V0JiZlLndlYlNvY2tldC5jbG9zZSYmZS53ZWJTb2NrZXQuY2xvc2UoMWUzKX0pLG4uV0VCU09DS0VUX0NPTk5FQ1RfVElNRU9VVCkpfSxlLnByb3RvdHlwZS5fY2xlYXJDb25uZWN0VGltZW91dD1mdW5jdGlvbigpe3RoaXMuX2Nvbm5lY3RUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuX2Nvbm5lY3RUaW1lb3V0KSx0aGlzLl9jb25uZWN0VGltZW91dD1udWxsKX0sZS5wcm90b3R5cGUuX2FkZFF1ZXJ5UGFyYW09ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXQrIj0iK3I7cmV0dXJuIGUrKGUuc3BsaXQoIj8iKVsxXT8iJiI6Ij8iKStufSxlLnByb3RvdHlwZS5fd2ViU29ja2V0VXJsPWZ1bmN0aW9uKGUpe3ZhciB0PWU7cmV0dXJuIHQ9dGhpcy5fYWRkUXVlcnlQYXJhbSh0LCJYLU5leHVzLU5ldy1DbGllbnQiLCEwKSx0PXRoaXMuX2FkZFF1ZXJ5UGFyYW0odCwiWC1OZXh1cy1WZXJzaW9uIixuLk5FWFVTX0NMSUVOVF9WRVJTSU9OKSwodD10aGlzLl9hZGRRdWVyeVBhcmFtKHQsInVzZXJfcm9sZSIsdGhpcy5fdXNlclJvbGUpKS5yZXBsYWNlKC9eaHR0cC8sIndzIil9LGUucHJvdG90eXBlLl9wYXJzZU1lc3NhZ2U9ZnVuY3Rpb24oZSl7aWYoZS5kYXRhJiYiIiE9PWUuZGF0YS50cmltKCkpdHJ5e3JldHVybiBKU09OLnBhcnNlKGUuZGF0YSl9Y2F0Y2goZSl7cmV0dXJufX0sZX0oKTt2YXIgdz1mdW5jdGlvbigpe30sUz1mdW5jdGlvbigpe3JldHVybltdfTtjb25zdCBrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQscixvLGEscyx1LGwsZil7dm9pZCAwPT09byYmKG89dyksdm9pZCAwPT09YSYmKGE9dyksdm9pZCAwPT09cyYmKHM9Uyksdm9pZCAwPT09dSYmKHU9dyksdm9pZCAwPT09bCYmKGw9e30pLHRoaXMuX2VuZHBvaW50cz1lLHRoaXMuX29uTmV4dXNBdmFpbGFibGU9byx0aGlzLl9vbk5leHVzTm90QXZhaWxhYmxlPWEsdGhpcy5fb25DaGFubmVsRXhwaXJlZD1zLHRoaXMuX29uRmFpbHVyZVRvRXN0YWJsaXNoQ29ubmVjdGlvbj11LHRoaXMuX3VzZXJSb2xlPWYsbi5zZXRPcHRpb25zKGwpLGMuc2V0U2luayhyKSxpLnNldExvZ2dlcih0KSx0aGlzLmFjdGl2ZUNvbm5lY3Rpb25zPTAsdGhpcy5fZmlyc3RDb25uZWN0RG9uZT0hMSx0aGlzLl9yZWdpc3RlcmVkTGlzdGVuZXJzPXt9LHRoaXMuX3JlZ2lzdGVyZWRHbG9iYWxMaXN0ZW5lcnM9W10sdGhpcy5fc3Vic2NyaWJlZFRvcGljcz1bXSx0aGlzLl9idWZmZXI9dGhpcy5fY3JlYXRlQnVmZmVyKCksdGhpcy5jb25uZWN0aW9ucz10aGlzLl9jcmVhdGVDb25uZWN0aW9ucygpLHRoaXMudGhyb3R0bGVTZW5kRXZlbnQ9dGhpcy5fY3JlYXRlU2VuZEV2ZW50VGhyb3R0bGUoKSx0aGlzLnRocm90dGxlU2VuZFVzZXJFdmVudD10aGlzLl9jcmVhdGVTZW5kVXNlckV2ZW50VGhyb3R0bGUoKSx0aGlzLmFkZExpc3RlbmVyKCJFWFAiLHRoaXMuX29uRXhwaXJlZC5iaW5kKHRoaXMpKSx0aGlzLmFkZExpc3RlbmVyKCJueC5lYWdlclJlY29ubmVjdCIsdGhpcy5fb25FYWdlclJlY29ubmVjdC5iaW5kKHRoaXMpKX1yZXR1cm4gZS5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24oZSx0KXt0aGlzLl9yZWdpc3RlcmVkTGlzdGVuZXJzW2VdfHwodGhpcy5fcmVnaXN0ZXJlZExpc3RlbmVyc1tlXT1bXSksdGhpcy5fcmVnaXN0ZXJlZExpc3RlbmVyc1tlXS5wdXNoKHQpLHRoaXMuY29ubmVjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24ocil7cmV0dXJuIHIuYWRkTGlzdGVuZXIoZSx0KX0pKX0sZS5wcm90b3R5cGUuYWRkR2xvYmFsTGlzdGVuZXI9ZnVuY3Rpb24oZSl7dGhpcy5fcmVnaXN0ZXJlZEdsb2JhbExpc3RlbmVycy5wdXNoKGUpLHRoaXMuY29ubmVjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYWRkR2xvYmFsTGlzdGVuZXIoZSl9KSl9LGUucHJvdG90eXBlLnNldExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7dGhpcy5hZGRMaXN0ZW5lcihlLHQpfSxlLnByb3RvdHlwZS5zZW5kRXZlbnQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj17ZXZlbnROYW1lOmUsZXZlbnREYXRhOnR9O3I9Xy5zZXRFdmVudFRvcGljcyhyKSx0aGlzLl9wdWJsaXNoKHIpfSxlLnByb3RvdHlwZS5zZW5kVXNlckV2ZW50PWZ1bmN0aW9uKGUsdCxyKXt2YXIgbj17Im54LlRvVXNlciI6ZSxldmVudE5hbWU6dCxldmVudERhdGE6cn07bj1fLnNldEV2ZW50VG9waWNzKG4pLHRoaXMuX3B1Ymxpc2gobil9LGUucHJvdG90eXBlLnN1YnNjcmliZVRvcGljcz1mdW5jdGlvbihlKXt0aGlzLl9zdWJzY3JpYmVkVG9waWNzPWYodGhpcy5fc3Vic2NyaWJlZFRvcGljcyxlKSx0aGlzLmNvbm5lY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN1YnNjcmliZVRvVG9waWNzKGUpfSkpfSxlLnByb3RvdHlwZS5zdWJzY3JpYmVUb0FsbFRvcGljcz1mdW5jdGlvbigpe3RoaXMuc3Vic2NyaWJlVG9waWNzKFsiKiJdKX0sZS5wcm90b3R5cGUudW5zdWJzY3JpYmVUb3BpY3M9ZnVuY3Rpb24oZSl7dGhpcy5fc3Vic2NyaWJlZFRvcGljcz1kKHRoaXMuX3N1YnNjcmliZWRUb3BpY3MsZSksdGhpcy5jb25uZWN0aW9ucy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC51bnN1YnNjcmliZUZyb21Ub3BpY3MoZSl9KSl9LGUucHJvdG90eXBlLm5ld01lc3NhZ2U9ZnVuY3Rpb24oZSl7dGhpcy5zZW5kRXZlbnQoIk5ld01lc3NhZ2UiLGUpfSxlLnByb3RvdHlwZS5uZXdDb21tZW50PWZ1bmN0aW9uKGUpe3RoaXMuc2VuZEV2ZW50KCJOZXdDb21tZW50IixlKX0sZS5wcm90b3R5cGUuZ2V0RW5kcG9pbnRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VuZHBvaW50c30sZS5wcm90b3R5cGUuc2h1dGRvd249ZnVuY3Rpb24oKXt0aGlzLmNvbm5lY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNodXRkb3duKCl9KSksaS5kZXN0cm95KCksYy5yZXNldCgpLHRoaXMuYWN0aXZlQ29ubmVjdGlvbnM9MH0sZS5wcm90b3R5cGUucmV0cnlDb25uZWN0aW9uPWZ1bmN0aW9uKCl7dGhpcy5jb25uZWN0aW9ucy5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS5yZWNvbm5lY3ROb3coKX0pKX0sZS5wcm90b3R5cGUuZWFnZXJSZWNvbm5lY3Q9ZnVuY3Rpb24oZSl7ZSYmZS5sZW5ndGg+MCYmKHRoaXMuX2VuZHBvaW50cz1lKSx0aGlzLmNvbm5lY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uKHQscil7dmFyIG49bnVsbD09ZT92b2lkIDA6ZVtyXTt0LmVhZ2VyUmVjb25uZWN0KG4pfSkpfSxlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMuc2h1dGRvd24oKX0sZS5wcm90b3R5cGUub25GYWlsZWRUb0VzdGFibGlzaE5ld1dlYnNvY2tldENvbm5lY3Rpb249ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9IiIpLGMuaW5jcmVtZW50KCJ1bmFibGVfdG9fZXN0YWJsaXNoX25ld193ZWJzb2NrZXRfYmVjYXVzZV8iLmNvbmNhdChlKSksdGhpcy5fb25GYWlsdXJlVG9Fc3RhYmxpc2hDb25uZWN0aW9uKGUpLHRoaXMuX3Jlc2V0Q29ubmVjdGlvbnMoKX0sZS5wcm90b3R5cGUucGVyZm9ybUhlYWx0aENoZWNrPWZ1bmN0aW9uKCl7dGhpcy5jb25uZWN0aW9ucy5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS5wZXJmb3JtSGVhbHRoQ2hlY2soKX0pKX0sZS5wcm90b3R5cGUuX29uQ29ubmVjdD1mdW5jdGlvbigpe3RoaXMuYWN0aXZlQ29ubmVjdGlvbnMrKywxPT09dGhpcy5hY3RpdmVDb25uZWN0aW9ucz8odGhpcy5fb25OZXh1c0F2YWlsYWJsZSgpLHZvaWQgMCE9PXRoaXMuX2xhc3REaXNjb25uZWN0QXQmJihjLnRpbWluZygib2ZmbGluZSIsKG5ldyBEYXRlKS5nZXRUaW1lKCktdGhpcy5fbGFzdERpc2Nvbm5lY3RBdCksdGhpcy5fbGFzdERpc2Nvbm5lY3RBdD12b2lkIDApKTpjLmluY3JlbWVudCgibW9yZS10aGFuLW9uZS1jb25uZWN0aW9uIil9LGUucHJvdG90eXBlLl9vbkRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZUNvbm5lY3Rpb25zPXRoaXMuYWN0aXZlQ29ubmVjdGlvbnM+MD90aGlzLmFjdGl2ZUNvbm5lY3Rpb25zLTE6MCx0aGlzLmFjdGl2ZUNvbm5lY3Rpb25zPDEmJih0aGlzLl9sYXN0RGlzY29ubmVjdEF0PShuZXcgRGF0ZSkuZ2V0VGltZSgpLHRoaXMuX29uTmV4dXNOb3RBdmFpbGFibGUoKSl9LGUucHJvdG90eXBlLl9vbkZpcnN0Q29ubmVjdD1mdW5jdGlvbigpe3RoaXMuX2ZpcnN0Q29ubmVjdERvbmU9ITAsdGhpcy5fYnVmZmVyLmZsdXNoKCl9LGUucHJvdG90eXBlLl9vbkV4cGlyZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHQ9dGhpcyxuPWZ1bmN0aW9uKCl7dmFyIGUsdDtyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgcixuLG8saT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZvWzBdKXRocm93IG9bMV07cmV0dXJuIG9bMV19LHRyeXM6W10sb3BzOltdfSxhPU9iamVjdC5jcmVhdGUoKCJmdW5jdGlvbiI9PXR5cGVvZiBJdGVyYXRvcj9JdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSk7cmV0dXJuIGEubmV4dD1zKDApLGEudGhyb3c9cygxKSxhLnJldHVybj1zKDIpLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihhW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGE7ZnVuY3Rpb24gcyhzKXtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKHMpe2lmKHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7YSYmKGE9MCxzWzBdJiYoaT0wKSksaTspdHJ5e2lmKHI9MSxuJiYobz0yJnNbMF0/bi5yZXR1cm46c1swXT9uLnRocm93fHwoKG89bi5yZXR1cm4pJiZvLmNhbGwobiksMCk6bi5uZXh0KSYmIShvPW8uY2FsbChuLHNbMV0pKS5kb25lKXJldHVybiBvO3N3aXRjaChuPTAsbyYmKHM9WzImc1swXSxvLnZhbHVlXSksc1swXSl7Y2FzZSAwOmNhc2UgMTpvPXM7YnJlYWs7Y2FzZSA0OnJldHVybiBpLmxhYmVsKysse3ZhbHVlOnNbMV0sZG9uZTohMX07Y2FzZSA1OmkubGFiZWwrKyxuPXNbMV0scz1bMF07Y29udGludWU7Y2FzZSA3OnM9aS5vcHMucG9wKCksaS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgobz0obz1pLnRyeXMpLmxlbmd0aD4wJiZvW28ubGVuZ3RoLTFdKXx8NiE9PXNbMF0mJjIhPT1zWzBdKSl7aT0wO2NvbnRpbnVlfWlmKDM9PT1zWzBdJiYoIW98fHNbMV0+b1swXSYmc1sxXTxvWzNdKSl7aS5sYWJlbD1zWzFdO2JyZWFrfWlmKDY9PT1zWzBdJiZpLmxhYmVsPG9bMV0pe2kubGFiZWw9b1sxXSxvPXM7YnJlYWt9aWYobyYmaS5sYWJlbDxvWzJdKXtpLmxhYmVsPW9bMl0saS5vcHMucHVzaChzKTticmVha31vWzJdJiZpLm9wcy5wb3AoKSxpLnRyeXMucG9wKCk7Y29udGludWV9cz10LmNhbGwoZSxpKX1jYXRjaChlKXtzPVs2LGVdLG49MH1maW5hbGx5e3I9bz0wfWlmKDUmc1swXSl0aHJvdyBzWzFdO3JldHVybnt2YWx1ZTpzWzBdP3NbMV06dm9pZCAwLGRvbmU6ITB9fShbcyxjXSl9fX0odGhpcywoZnVuY3Rpb24ocil7c3dpdGNoKHIubGFiZWwpe2Nhc2UgMDpyZXR1cm4gci50cnlzLnB1c2goWzAsMiwsM10pLGNvbnNvbGUubG9nKCJDaGFubmVsIGV4cGlyZWQsIHJlcXVlc3RpbmcgbmV3IGVuZHBvaW50cyIpLFs0LHRoaXMuX29uQ2hhbm5lbEV4cGlyZWQoKV07Y2FzZSAxOnJldHVybihlPXIuc2VudCgpKSYmQXJyYXkuaXNBcnJheShlKSYmMCE9PWUubGVuZ3RoPyhjb25zb2xlLmxvZygiUmVjZWl2ZWQgIi5jb25jYXQoZS5sZW5ndGgsIiBuZXcgZW5kcG9pbnQocyksIHBlcmZvcm1pbmcgaG90LXN3YXAiKSksdGhpcy5lYWdlclJlY29ubmVjdChlKSxbMywzXSk6KGNvbnNvbGUubG9nKCJObyB2YWxpZCBlbmRwb2ludHMgcmV0dXJuZWQgZnJvbSBvbkNoYW5uZWxFeHBpcmVkIGNhbGxiYWNrLCBjYW5ub3QgcmVjb25uZWN0LCBzaHV0dGluZyBkb3duIiksYy5pbmNyZW1lbnQoIm9uQ2hhbm5lbEV4cGlyZWRfbm9fdmFsaWRfZW5kcG9pbnRzIiksdGhpcy5zaHV0ZG93bigpLFsyXSk7Y2FzZSAyOnJldHVybiB0PXIuc2VudCgpLGNvbnNvbGUuZXJyb3IoIkVycm9yIGluIG9uQ2hhbm5lbEV4cGlyZWQgY2FsbGJhY2ssIGNhbm5vdCByZWNvbm5lY3QsIHNodXR0aW5nIGRvd24iLHQpLGMuaW5jcmVtZW50KCJvbkNoYW5uZWxFeHBpcmVkX2NhbGxiYWNrX2Vycm9yIiksdGhpcy5zaHV0ZG93bigpLFszLDNdO2Nhc2UgMzpyZXR1cm5bMl19fSkpfSxuZXcoKHI9dm9pZCAwKXx8KHI9UHJvbWlzZSkpKChmdW5jdGlvbihlLG8pe2Z1bmN0aW9uIGkoZSl7dHJ5e3Mobi5uZXh0KGUpKX1jYXRjaChlKXtvKGUpfX1mdW5jdGlvbiBhKGUpe3RyeXtzKG4udGhyb3coZSkpfWNhdGNoKGUpe28oZSl9fWZ1bmN0aW9uIHModCl7dmFyIG47dC5kb25lP2UodC52YWx1ZSk6KG49dC52YWx1ZSxuIGluc3RhbmNlb2Ygcj9uOm5ldyByKChmdW5jdGlvbihlKXtlKG4pfSkpKS50aGVuKGksYSl9cygobj1uLmFwcGx5KHQsW10pKS5uZXh0KCkpfSkpO3ZhciB0LHIsbn0sZS5wcm90b3R5cGUuX29uRWFnZXJSZWNvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLmVhZ2VyUmVjb25uZWN0KCl9LGUucHJvdG90eXBlLl9wdWJsaXNoPWZ1bmN0aW9uKGUpe2UuZXZlbnRHdWlkPSJ4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgiLnJlcGxhY2UoL1t4eV0vZywoZnVuY3Rpb24oZSl7dmFyIHQ9MTYqTWF0aC5yYW5kb20oKXwwO3JldHVybigieCI9PT1lP3Q6MyZ0fDgpLnRvU3RyaW5nKDE2KX0pKSx0aGlzLnVzZU5ld1dlYlNvY2tldHN8fHRoaXMuX2ZpcnN0Q29ubmVjdERvbmV8fHRoaXMuX2J1ZmZlci5wdXNoRXZlbnQoZSksdGhpcy5jb25uZWN0aW9ucy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5wdWJsaXNoKGUpfSkpfSxlLnByb3RvdHlwZS5fY3JlYXRlQnVmZmVyPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBoKHRoaXMuX3B1Ymxpc2guYmluZCh0aGlzKSl9LGUucHJvdG90eXBlLl9yZXNldENvbm5lY3Rpb25zPWZ1bmN0aW9uKCl7dGhpcy5jb25uZWN0aW9ucy5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS5zaHV0ZG93bigpfSkpLHRoaXMuY29ubmVjdGlvbnM9dGhpcy5fY3JlYXRlQ29ubmVjdGlvbnMoKSx0aGlzLl9yZWh5ZHJhdGVDb25uZWN0aW9ucygpfSxlLnByb3RvdHlwZS5fcmVoeWRyYXRlQ29ubmVjdGlvbnM9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcyx0PWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWZ1bmN0aW9uKHQpe3IuY29ubmVjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24ocil7cmV0dXJuIHIuYWRkTGlzdGVuZXIoZSx0KX0pKX0sbz0wLGk9dDtvPGkubGVuZ3RoO28rKyluKGlbb10pfSxyPXRoaXMsbj0wLG89T2JqZWN0LmVudHJpZXModGhpcy5fcmVnaXN0ZXJlZExpc3RlbmVycyk7bjxvLmxlbmd0aDtuKyspe3ZhciBpPW9bbl07dChpWzBdLGlbMV0pfXRoaXMuX3JlZ2lzdGVyZWRHbG9iYWxMaXN0ZW5lcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZS5jb25uZWN0aW9ucy5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS5hZGRHbG9iYWxMaXN0ZW5lcih0KX0pKX0pKSx0aGlzLl9zdWJzY3JpYmVkVG9waWNzLmxlbmd0aD4wJiZ0aGlzLmNvbm5lY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN1YnNjcmliZVRvVG9waWNzKGUuX3N1YnNjcmliZWRUb3BpY3MpfSkpfSxlLnByb3RvdHlwZS5fY3JlYXRlQ29ubmVjdGlvbnM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9lbmRwb2ludHMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGIodCxlLl9vbkNvbm5lY3QuYmluZChlKSxlLl9vbkRpc2Nvbm5lY3QuYmluZChlKSxlLm9uRmFpbGVkVG9Fc3RhYmxpc2hOZXdXZWJzb2NrZXRDb25uZWN0aW9uLmJpbmQoZSksZS5fdXNlclJvbGUpfSkpLmZpbHRlcihCb29sZWFuKX0sZS5wcm90b3R5cGUuX2NyZWF0ZVNlbmRFdmVudFRocm90dGxlPWZ1bmN0aW9uKCl7cmV0dXJuIG0odGhpcy5zZW5kRXZlbnQuYmluZCh0aGlzKSxuLklTX1RZUElOR19USFJPVFRMRSl9LGUucHJvdG90eXBlLl9jcmVhdGVTZW5kVXNlckV2ZW50VGhyb3R0bGU9ZnVuY3Rpb24oKXtyZXR1cm4gbSh0aGlzLnNlbmRVc2VyRXZlbnQuYmluZCh0aGlzKSxuLklTX1RZUElOR19USFJPVFRMRSx7dHJhaWxpbmc6ITF9KX0sZX0oKTtyZXR1cm4gdH0pKCksZS5leHBvcnRzPXQoKX0sNzkxMDA6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7XzpmdW5jdGlvbigpe3JldHVybiBwfX0pO3ZhciBuPXIoMzg3MjkpLG89ZnVuY3Rpb24oZSx0KXt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl07aWYoIXIpcmV0dXJuIGU7dmFyIG4sbyxpPXIuY2FsbChlKSxhPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT10fHx0LS0gPjApJiYhKG49aS5uZXh0KCkpLmRvbmU7KWEucHVzaChuLnZhbHVlKX1jYXRjaChlKXtvPXtlcnJvcjplfX1maW5hbGx5e3RyeXtuJiYhbi5kb25lJiYocj1pLnJldHVybikmJnIuY2FsbChpKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIGF9LGk9ZnVuY3Rpb24oZSx0LHIpe2lmKHJ8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgbixvPTAsaT10Lmxlbmd0aDtvPGk7bysrKSFuJiZvIGluIHR8fChufHwobj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0LDAsbykpLG5bb109dFtvXSk7cmV0dXJuIGUuY29uY2F0KG58fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpKX0sYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9cmV0dXJuIGUucHJvdG90eXBlLmFjdGl2ZT1mdW5jdGlvbigpe3JldHVybiBuLmx9LGUucHJvdG90eXBlLndpdGg9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgbj1bXSxhPTM7YTxhcmd1bWVudHMubGVuZ3RoO2ErKyluW2EtM109YXJndW1lbnRzW2FdO3JldHVybiB0LmNhbGwuYXBwbHkodCxpKFtyXSxvKG4pLCExKSl9LGUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdH0sZS5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGUucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZX0oKSxzPXIoNzUxNTgpLGM9cig0NDg5MiksdT1mdW5jdGlvbihlLHQpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXTtpZighcilyZXR1cm4gZTt2YXIgbixvLGk9ci5jYWxsKGUpLGE9W107dHJ5e2Zvcig7KHZvaWQgMD09PXR8fHQtLSA+MCkmJiEobj1pLm5leHQoKSkuZG9uZTspYS5wdXNoKG4udmFsdWUpfWNhdGNoKGUpe289e2Vycm9yOmV9fWZpbmFsbHl7dHJ5e24mJiFuLmRvbmUmJihyPWkucmV0dXJuKSYmci5jYWxsKGkpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1yZXR1cm4gYX0sbD1mdW5jdGlvbihlLHQscil7aWYocnx8Mj09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciBuLG89MCxpPXQubGVuZ3RoO288aTtvKyspIW4mJm8gaW4gdHx8KG58fChuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQsMCxvKSksbltvXT10W29dKTtyZXR1cm4gZS5jb25jYXQobnx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCkpfSxmPSJjb250ZXh0IixkPW5ldyBhLHA9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBlLmdldEluc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2luc3RhbmNlfHwodGhpcy5faW5zdGFuY2U9bmV3IGUpLHRoaXMuX2luc3RhbmNlfSxlLnByb3RvdHlwZS5zZXRHbG9iYWxDb250ZXh0TWFuYWdlcj1mdW5jdGlvbihlKXtyZXR1cm4oMCxzLiRHKShmLGUsYy5LLmluc3RhbmNlKCkpfSxlLnByb3RvdHlwZS5hY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5hY3RpdmUoKX0sZS5wcm90b3R5cGUud2l0aD1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBuLG89W10saT0zO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspb1tpLTNdPWFyZ3VtZW50c1tpXTtyZXR1cm4obj10aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpKS53aXRoLmFwcGx5KG4sbChbZSx0LHJdLHUobyksITEpKX0sZS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmJpbmQoZSx0KX0sZS5wcm90b3R5cGUuX2dldENvbnRleHRNYW5hZ2VyPWZ1bmN0aW9uKCl7cmV0dXJuKDAscy5tUykoZil8fGR9LGUucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmRpc2FibGUoKSwoMCxzLmt2KShmLGMuSy5pbnN0YW5jZSgpKX0sZX0oKX0sNDQ4OTI6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7SzpmdW5jdGlvbigpe3JldHVybiBmfX0pO3ZhciBuPXIoNzUxNTgpLG89ZnVuY3Rpb24oZSx0KXt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl07aWYoIXIpcmV0dXJuIGU7dmFyIG4sbyxpPXIuY2FsbChlKSxhPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT10fHx0LS0gPjApJiYhKG49aS5uZXh0KCkpLmRvbmU7KWEucHVzaChuLnZhbHVlKX1jYXRjaChlKXtvPXtlcnJvcjplfX1maW5hbGx5e3RyeXtuJiYhbi5kb25lJiYocj1pLnJldHVybikmJnIuY2FsbChpKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIGF9LGk9ZnVuY3Rpb24oZSx0LHIpe2lmKHJ8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgbixvPTAsaT10Lmxlbmd0aDtvPGk7bysrKSFuJiZvIGluIHR8fChufHwobj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0LDAsbykpLG5bb109dFtvXSk7cmV0dXJuIGUuY29uY2F0KG58fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpKX0sYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dGhpcy5fbmFtZXNwYWNlPWUubmFtZXNwYWNlfHwiRGlhZ0NvbXBvbmVudExvZ2dlciJ9cmV0dXJuIGUucHJvdG90eXBlLmRlYnVnPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3JldHVybiBzKCJkZWJ1ZyIsdGhpcy5fbmFtZXNwYWNlLGUpfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gcygiZXJyb3IiLHRoaXMuX25hbWVzcGFjZSxlKX0sZS5wcm90b3R5cGUuaW5mbz1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gcygiaW5mbyIsdGhpcy5fbmFtZXNwYWNlLGUpfSxlLnByb3RvdHlwZS53YXJuPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3JldHVybiBzKCJ3YXJuIix0aGlzLl9uYW1lc3BhY2UsZSl9LGUucHJvdG90eXBlLnZlcmJvc2U9ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0XT1hcmd1bWVudHNbdF07cmV0dXJuIHMoInZlcmJvc2UiLHRoaXMuX25hbWVzcGFjZSxlKX0sZX0oKTtmdW5jdGlvbiBzKGUsdCxyKXt2YXIgYT0oMCxuLm1TKSgiZGlhZyIpO2lmKGEpcmV0dXJuIHIudW5zaGlmdCh0KSxhW2VdLmFwcGx5KGEsaShbXSxvKHIpLCExKSl9dmFyIGM9cig3NjczMyk7dmFyIHU9ZnVuY3Rpb24oZSx0KXt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl07aWYoIXIpcmV0dXJuIGU7dmFyIG4sbyxpPXIuY2FsbChlKSxhPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT10fHx0LS0gPjApJiYhKG49aS5uZXh0KCkpLmRvbmU7KWEucHVzaChuLnZhbHVlKX1jYXRjaChlKXtvPXtlcnJvcjplfX1maW5hbGx5e3RyeXtuJiYhbi5kb25lJiYocj1pLnJldHVybikmJnIuY2FsbChpKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIGF9LGw9ZnVuY3Rpb24oZSx0LHIpe2lmKHJ8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgbixvPTAsaT10Lmxlbmd0aDtvPGk7bysrKSFuJiZvIGluIHR8fChufHwobj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0LDAsbykpLG5bb109dFtvXSk7cmV0dXJuIGUuY29uY2F0KG58fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpKX0sZj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtmdW5jdGlvbiBlKGUpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTt2YXIgbz0oMCxuLm1TKSgiZGlhZyIpO2lmKG8pcmV0dXJuIG9bZV0uYXBwbHkobyxsKFtdLHUodCksITEpKX19dmFyIHQ9dGhpczt0LnNldExvZ2dlcj1mdW5jdGlvbihlLHIpe3ZhciBvLGksYTtpZih2b2lkIDA9PT1yJiYocj17bG9nTGV2ZWw6Yy51LklORk99KSxlPT09dCl7dmFyIHM9bmV3IEVycm9yKCJDYW5ub3QgdXNlIGRpYWcgYXMgdGhlIGxvZ2dlciBmb3IgaXRzZWxmLiBQbGVhc2UgdXNlIGEgRGlhZ0xvZ2dlciBpbXBsZW1lbnRhdGlvbiBsaWtlIENvbnNvbGVEaWFnTG9nZ2VyIG9yIGEgY3VzdG9tIGltcGxlbWVudGF0aW9uIik7cmV0dXJuIHQuZXJyb3IobnVsbCE9PShvPXMuc3RhY2spJiZ2b2lkIDAhPT1vP286cy5tZXNzYWdlKSwhMX0ibnVtYmVyIj09dHlwZW9mIHImJihyPXtsb2dMZXZlbDpyfSk7dmFyIHU9KDAsbi5tUykoImRpYWciKSxsPWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gcihyLG4pe3ZhciBvPXRbcl07cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG8mJmU+PW4/by5iaW5kKHQpOmZ1bmN0aW9uKCl7fX1yZXR1cm4gZTxjLnUuTk9ORT9lPWMudS5OT05FOmU+Yy51LkFMTCYmKGU9Yy51LkFMTCksdD10fHx7fSx7ZXJyb3I6cigiZXJyb3IiLGMudS5FUlJPUiksd2FybjpyKCJ3YXJuIixjLnUuV0FSTiksaW5mbzpyKCJpbmZvIixjLnUuSU5GTyksZGVidWc6cigiZGVidWciLGMudS5ERUJVRyksdmVyYm9zZTpyKCJ2ZXJib3NlIixjLnUuVkVSQk9TRSl9fShudWxsIT09KGk9ci5sb2dMZXZlbCkmJnZvaWQgMCE9PWk/aTpjLnUuSU5GTyxlKTtpZih1JiYhci5zdXBwcmVzc092ZXJyaWRlTWVzc2FnZSl7dmFyIGY9bnVsbCE9PShhPShuZXcgRXJyb3IpLnN0YWNrKSYmdm9pZCAwIT09YT9hOiI8ZmFpbGVkIHRvIGdlbmVyYXRlIHN0YWNrdHJhY2U+Ijt1Lndhcm4oIkN1cnJlbnQgbG9nZ2VyIHdpbGwgYmUgb3ZlcndyaXR0ZW4gZnJvbSAiK2YpLGwud2FybigiQ3VycmVudCBsb2dnZXIgd2lsbCBvdmVyd3JpdGUgb25lIGFscmVhZHkgcmVnaXN0ZXJlZCBmcm9tICIrZil9cmV0dXJuKDAsbi4kRykoImRpYWciLGwsdCwhMCl9LHQuZGlzYWJsZT1mdW5jdGlvbigpeygwLG4ua3YpKCJkaWFnIix0KX0sdC5jcmVhdGVDb21wb25lbnRMb2dnZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBhKGUpfSx0LnZlcmJvc2U9ZSgidmVyYm9zZSIpLHQuZGVidWc9ZSgiZGVidWciKSx0LmluZm89ZSgiaW5mbyIpLHQud2Fybj1lKCJ3YXJuIiksdC5lcnJvcj1lKCJlcnJvciIpfXJldHVybiBlLmluc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2luc3RhbmNlfHwodGhpcy5faW5zdGFuY2U9bmV3IGUpLHRoaXMuX2luc3RhbmNlfSxlfSgpfSw0MTg0NDpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtfOmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7dmFyIG49cig3OTEwMCkuXy5nZXRJbnN0YW5jZSgpfSwzODcyOTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIFN5bWJvbC5mb3IoZSl9ci5kKHQse2w6ZnVuY3Rpb24oKXtyZXR1cm4gb30sbjpmdW5jdGlvbigpe3JldHVybiBufX0pO3ZhciBvPW5ldyBmdW5jdGlvbiBlKHQpe3ZhciByPXRoaXM7ci5fY3VycmVudENvbnRleHQ9dD9uZXcgTWFwKHQpOm5ldyBNYXAsci5nZXRWYWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gci5fY3VycmVudENvbnRleHQuZ2V0KGUpfSxyLnNldFZhbHVlPWZ1bmN0aW9uKHQsbil7dmFyIG89bmV3IGUoci5fY3VycmVudENvbnRleHQpO3JldHVybiBvLl9jdXJyZW50Q29udGV4dC5zZXQodCxuKSxvfSxyLmRlbGV0ZVZhbHVlPWZ1bmN0aW9uKHQpe3ZhciBuPW5ldyBlKHIuX2N1cnJlbnRDb250ZXh0KTtyZXR1cm4gbi5fY3VycmVudENvbnRleHQuZGVsZXRlKHQpLG59fX0sNzY3MzM6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbjtyLmQodCx7dTpmdW5jdGlvbigpe3JldHVybiBufX0pLGZ1bmN0aW9uKGUpe2VbZS5OT05FPTBdPSJOT05FIixlW2UuRVJST1I9MzBdPSJFUlJPUiIsZVtlLldBUk49NTBdPSJXQVJOIixlW2UuSU5GTz02MF09IklORk8iLGVbZS5ERUJVRz03MF09IkRFQlVHIixlW2UuVkVSQk9TRT04MF09IlZFUkJPU0UiLGVbZS5BTEw9OTk5OV09IkFMTCJ9KG58fChuPXt9KSl9LDc1MTU4OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7ci5kKHQse21TOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LCRHOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LGt2OmZ1bmN0aW9uKCl7cmV0dXJuIGR9fSk7dmFyIG49Im9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6Im9iamVjdCI9PXR5cGVvZiBzZWxmP3NlbGY6Im9iamVjdCI9PXR5cGVvZiB3aW5kb3c/d2luZG93OiJvYmplY3QiPT10eXBlb2Ygci5nP3IuZzp7fSxvPSIxLjkuMCIsaT0vXihcZCspXC4oXGQrKVwuKFxkKykoLSguKykpPyQvO3ZhciBhPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBTZXQoW2VdKSxyPW5ldyBTZXQsbj1lLm1hdGNoKGkpO2lmKCFuKXJldHVybiBmdW5jdGlvbigpe3JldHVybiExfTt2YXIgbz0rblsxXSxhPStuWzJdLHM9K25bM107aWYobnVsbCE9bls0XSlyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1lfTtmdW5jdGlvbiBjKGUpe3JldHVybiByLmFkZChlKSwhMX1mdW5jdGlvbiB1KGUpe3JldHVybiB0LmFkZChlKSwhMH1yZXR1cm4gZnVuY3Rpb24oZSl7aWYodC5oYXMoZSkpcmV0dXJuITA7aWYoci5oYXMoZSkpcmV0dXJuITE7dmFyIG49ZS5tYXRjaChpKTtpZighbilyZXR1cm4gYyhlKTt2YXIgbD0rblsxXSxmPStuWzJdLGQ9K25bM107cmV0dXJuIG51bGwhPW5bNF18fG8hPT1sP2MoZSk6MD09PW8/YT09PWYmJnM8PWQ/dShlKTpjKGUpOmE8PWY/dShlKTpjKGUpfX0obykscz1vLnNwbGl0KCIuIilbMF0sYz1TeW1ib2wuZm9yKCJvcGVudGVsZW1ldHJ5LmpzLmFwaS4iK3MpLHU9bjtmdW5jdGlvbiBsKGUsdCxyLG4pe3ZhciBpO3ZvaWQgMD09PW4mJihuPSExKTt2YXIgYT11W2NdPW51bGwhPT0oaT11W2NdKSYmdm9pZCAwIT09aT9pOnt2ZXJzaW9uOm99O2lmKCFuJiZhW2VdKXt2YXIgcz1uZXcgRXJyb3IoIkBvcGVudGVsZW1ldHJ5L2FwaTogQXR0ZW1wdGVkIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gb2YgQVBJOiAiK2UpO3JldHVybiByLmVycm9yKHMuc3RhY2t8fHMubWVzc2FnZSksITF9aWYoYS52ZXJzaW9uIT09byl7cz1uZXcgRXJyb3IoIkBvcGVudGVsZW1ldHJ5L2FwaTogUmVnaXN0cmF0aW9uIG9mIHZlcnNpb24gdiIrYS52ZXJzaW9uKyIgZm9yICIrZSsiIGRvZXMgbm90IG1hdGNoIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBBUEkgdiIrbyk7cmV0dXJuIHIuZXJyb3Iocy5zdGFja3x8cy5tZXNzYWdlKSwhMX1yZXR1cm4gYVtlXT10LHIuZGVidWcoIkBvcGVudGVsZW1ldHJ5L2FwaTogUmVnaXN0ZXJlZCBhIGdsb2JhbCBmb3IgIitlKyIgdiIrbysiLiIpLCEwfWZ1bmN0aW9uIGYoZSl7dmFyIHQscixuPW51bGw9PT0odD11W2NdKXx8dm9pZCAwPT09dD92b2lkIDA6dC52ZXJzaW9uO2lmKG4mJmEobikpcmV0dXJuIG51bGw9PT0ocj11W2NdKXx8dm9pZCAwPT09cj92b2lkIDA6cltlXX1mdW5jdGlvbiBkKGUsdCl7dC5kZWJ1ZygiQG9wZW50ZWxlbWV0cnkvYXBpOiBVbnJlZ2lzdGVyaW5nIGEgZ2xvYmFsIGZvciAiK2UrIiB2IitvKyIuIik7dmFyIHI9dVtjXTtyJiZkZWxldGUgcltlXX19LDY2NjQ6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7dTpmdW5jdGlvbigpe3JldHVybiB1fX0pO3ZhciBuPXIoNzUxNTgpLG89cig3NDk3NSksaT1yKDY3ODIzKSxhPXIoMTMyOTkpLHM9cig0NDg5MiksYz0idHJhY2UiLHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcj1uZXcgby5uLHRoaXMud3JhcFNwYW5Db250ZXh0PWkuSVAsdGhpcy5pc1NwYW5Db250ZXh0VmFsaWQ9aS5ZQSx0aGlzLmRlbGV0ZVNwYW49YS5FVyx0aGlzLmdldFNwYW49YS5mVSx0aGlzLmdldEFjdGl2ZVNwYW49YS5Cayx0aGlzLmdldFNwYW5Db250ZXh0PWEudzgsdGhpcy5zZXRTcGFuPWEuQngsdGhpcy5zZXRTcGFuQ29udGV4dD1hLmdffXJldHVybiBlLmdldEluc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2luc3RhbmNlfHwodGhpcy5faW5zdGFuY2U9bmV3IGUpLHRoaXMuX2luc3RhbmNlfSxlLnByb3RvdHlwZS5zZXRHbG9iYWxUcmFjZXJQcm92aWRlcj1mdW5jdGlvbihlKXt2YXIgdD0oMCxuLiRHKShjLHRoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXIscy5LLmluc3RhbmNlKCkpO3JldHVybiB0JiZ0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyLnNldERlbGVnYXRlKGUpLHR9LGUucHJvdG90eXBlLmdldFRyYWNlclByb3ZpZGVyPWZ1bmN0aW9uKCl7cmV0dXJuKDAsbi5tUykoYyl8fHRoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXJ9LGUucHJvdG90eXBlLmdldFRyYWNlcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmdldFRyYWNlclByb3ZpZGVyKCkuZ2V0VHJhY2VyKGUsdCl9LGUucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXsoMCxuLmt2KShjLHMuSy5pbnN0YW5jZSgpKSx0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyPW5ldyBvLm59LGV9KCkuZ2V0SW5zdGFuY2UoKX0sMzE0NDA6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7ZDpmdW5jdGlvbigpe3JldHVybiBvfX0pO3ZhciBuPXIoOTc4NzIpLG89ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3ZvaWQgMD09PWUmJihlPW4uZE0pLHRoaXMuX3NwYW5Db250ZXh0PWV9cmV0dXJuIGUucHJvdG90eXBlLnNwYW5Db250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NwYW5Db250ZXh0fSxlLnByb3RvdHlwZS5zZXRBdHRyaWJ1dGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuc2V0QXR0cmlidXRlcz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuYWRkRXZlbnQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuYWRkTGluaz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuYWRkTGlua3M9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXN9LGUucHJvdG90eXBlLnNldFN0YXR1cz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUudXBkYXRlTmFtZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKGUpe30sZS5wcm90b3R5cGUuaXNSZWNvcmRpbmc9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZS5wcm90b3R5cGUucmVjb3JkRXhjZXB0aW9uPWZ1bmN0aW9uKGUsdCl7fSxlfSgpfSw3OTc1NTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtvOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIG49cig3OTEwMCksbz1yKDEzMjk5KSxpPXIoMzE0NDApLGE9cig2NzgyMykscz1uLl8uZ2V0SW5zdGFuY2UoKSxjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4gZS5wcm90b3R5cGUuc3RhcnRTcGFuPWZ1bmN0aW9uKGUsdCxyKXtpZih2b2lkIDA9PT1yJiYocj1zLmFjdGl2ZSgpKSxCb29sZWFuKG51bGw9PXQ/dm9pZCAwOnQucm9vdCkpcmV0dXJuIG5ldyBpLmQ7dmFyIG4sYz1yJiYoMCxvLnc4KShyKTtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mKG49YykmJiJzdHJpbmciPT10eXBlb2Ygbi5zcGFuSWQmJiJzdHJpbmciPT10eXBlb2Ygbi50cmFjZUlkJiYibnVtYmVyIj09dHlwZW9mIG4udHJhY2VGbGFncyYmKDAsYS5ZQSkoYyk/bmV3IGkuZChjKTpuZXcgaS5kfSxlLnByb3RvdHlwZS5zdGFydEFjdGl2ZVNwYW49ZnVuY3Rpb24oZSx0LHIsbil7dmFyIGksYSxjO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Mj09PWFyZ3VtZW50cy5sZW5ndGg/Yz10OjM9PT1hcmd1bWVudHMubGVuZ3RoPyhpPXQsYz1yKTooaT10LGE9cixjPW4pO3ZhciB1PW51bGwhPWE/YTpzLmFjdGl2ZSgpLGw9dGhpcy5zdGFydFNwYW4oZSxpLHUpLGY9KDAsby5CeCkodSxsKTtyZXR1cm4gcy53aXRoKGYsYyx2b2lkIDAsbCl9fSxlfSgpfSwxOTUwNTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHt5OmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7dmFyIG49bmV3KHIoNzk3NTUpLm8pLG89ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCxyLG4pe3RoaXMuX3Byb3ZpZGVyPWUsdGhpcy5uYW1lPXQsdGhpcy52ZXJzaW9uPXIsdGhpcy5vcHRpb25zPW59cmV0dXJuIGUucHJvdG90eXBlLnN0YXJ0U3Bhbj1mdW5jdGlvbihlLHQscil7cmV0dXJuIHRoaXMuX2dldFRyYWNlcigpLnN0YXJ0U3BhbihlLHQscil9LGUucHJvdG90eXBlLnN0YXJ0QWN0aXZlU3Bhbj1mdW5jdGlvbihlLHQscixuKXt2YXIgbz10aGlzLl9nZXRUcmFjZXIoKTtyZXR1cm4gUmVmbGVjdC5hcHBseShvLnN0YXJ0QWN0aXZlU3BhbixvLGFyZ3VtZW50cyl9LGUucHJvdG90eXBlLl9nZXRUcmFjZXI9ZnVuY3Rpb24oKXtpZih0aGlzLl9kZWxlZ2F0ZSlyZXR1cm4gdGhpcy5fZGVsZWdhdGU7dmFyIGU9dGhpcy5fcHJvdmlkZXIuZ2V0RGVsZWdhdGVUcmFjZXIodGhpcy5uYW1lLHRoaXMudmVyc2lvbix0aGlzLm9wdGlvbnMpO3JldHVybiBlPyh0aGlzLl9kZWxlZ2F0ZT1lLHRoaXMuX2RlbGVnYXRlKTpufSxlfSgpfSw3NDk3NTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtuOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7dmFyIG49cigxOTUwNSksbz1yKDc5NzU1KSxpPW5ldyhmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9cmV0dXJuIGUucHJvdG90eXBlLmdldFRyYWNlcj1mdW5jdGlvbihlLHQscil7cmV0dXJuIG5ldyBvLm99LGV9KCkpLGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBlLnByb3RvdHlwZS5nZXRUcmFjZXI9ZnVuY3Rpb24oZSx0LHIpe3ZhciBvO3JldHVybiBudWxsIT09KG89dGhpcy5nZXREZWxlZ2F0ZVRyYWNlcihlLHQscikpJiZ2b2lkIDAhPT1vP286bmV3IG4ueSh0aGlzLGUsdCxyKX0sZS5wcm90b3R5cGUuZ2V0RGVsZWdhdGU9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gbnVsbCE9PShlPXRoaXMuX2RlbGVnYXRlKSYmdm9pZCAwIT09ZT9lOml9LGUucHJvdG90eXBlLnNldERlbGVnYXRlPWZ1bmN0aW9uKGUpe3RoaXMuX2RlbGVnYXRlPWV9LGUucHJvdG90eXBlLmdldERlbGVnYXRlVHJhY2VyPWZ1bmN0aW9uKGUsdCxyKXt2YXIgbjtyZXR1cm4gbnVsbD09PShuPXRoaXMuX2RlbGVnYXRlKXx8dm9pZCAwPT09bj92b2lkIDA6bi5nZXRUcmFjZXIoZSx0LHIpfSxlfSgpfSwxMzI5OTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtCazpmdW5jdGlvbigpe3JldHVybiBjfSxCeDpmdW5jdGlvbigpe3JldHVybiB1fSxFVzpmdW5jdGlvbigpe3JldHVybiBsfSxmVTpmdW5jdGlvbigpe3JldHVybiBzfSxnXzpmdW5jdGlvbigpe3JldHVybiBmfSx3ODpmdW5jdGlvbigpe3JldHVybiBkfX0pO3ZhciBuPXIoMzg3MjkpLG89cigzMTQ0MCksaT1yKDc5MTAwKSxhPSgwLG4ubikoIk9wZW5UZWxlbWV0cnkgQ29udGV4dCBLZXkgU1BBTiIpO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIGUuZ2V0VmFsdWUoYSl8fHZvaWQgMH1mdW5jdGlvbiBjKCl7cmV0dXJuIHMoaS5fLmdldEluc3RhbmNlKCkuYWN0aXZlKCkpfWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gZS5zZXRWYWx1ZShhLHQpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGUuZGVsZXRlVmFsdWUoYSl9ZnVuY3Rpb24gZihlLHQpe3JldHVybiB1KGUsbmV3IG8uZCh0KSl9ZnVuY3Rpb24gZChlKXt2YXIgdDtyZXR1cm4gbnVsbD09PSh0PXMoZSkpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnNwYW5Db250ZXh0KCl9fSw5Nzg3MjpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtSSDpmdW5jdGlvbigpe3JldHVybiBpfSxkTTpmdW5jdGlvbigpe3JldHVybiBhfSx3OTpmdW5jdGlvbigpe3JldHVybiBvfX0pO3ZhciBuPXIoNDczOTcpLG89IjAwMDAwMDAwMDAwMDAwMDAiLGk9IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIixhPXt0cmFjZUlkOmksc3BhbklkOm8sdHJhY2VGbGFnczpuLlguTk9ORX19LDY3ODIzOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7ci5kKHQse0lQOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LFlBOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LGhYOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LHdOOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIG49cig5Nzg3Miksbz1yKDMxNDQwKSxpPS9eKFswLTlhLWZdezMyfSkkL2ksYT0vXlswLTlhLWZdezE2fSQvaTtmdW5jdGlvbiBzKGUpe3JldHVybiBpLnRlc3QoZSkmJmUhPT1uLlJIfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGEudGVzdChlKSYmZSE9PW4udzl9ZnVuY3Rpb24gdShlKXtyZXR1cm4gcyhlLnRyYWNlSWQpJiZjKGUuc3BhbklkKX1mdW5jdGlvbiBsKGUpe3JldHVybiBuZXcgby5kKGUpfX0sNDczOTc6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbjtyLmQodCx7WDpmdW5jdGlvbigpe3JldHVybiBufX0pLGZ1bmN0aW9uKGUpe2VbZS5OT05FPTBdPSJOT05FIixlW2UuU0FNUExFRD0xXT0iU0FNUExFRCJ9KG58fChuPXt9KSl9LDU5NDA6ZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcigpe3JldHVybiByPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIHI9YXJndW1lbnRzW3RdO2Zvcih2YXIgbiBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLG4pJiYoZVtuXT1yW25dKX1yZXR1cm4gZX0sci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2xldCBuPWZ1bmN0aW9uKGUpe3JldHVybiBlLlBvcD0iUE9QIixlLlB1c2g9IlBVU0giLGUuUmVwbGFjZT0iUkVQTEFDRSIsZX0oe30pO2NvbnN0IG89InBvcHN0YXRlIjtmdW5jdGlvbiBpKGUsdCl7aWYoITE9PT1lfHxudWxsPT1lKXRocm93IG5ldyBFcnJvcih0KX1mdW5jdGlvbiBhKGUsdCl7aWYoIWUpeyJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZS53YXJuKHQpO3RyeXt0aHJvdyBuZXcgRXJyb3IodCl9Y2F0Y2goZSl7fX19ZnVuY3Rpb24gcyhlLHQpe3JldHVybnt1c3I6ZS5zdGF0ZSxrZXk6ZS5rZXksaWR4OnR9fWZ1bmN0aW9uIGMoZSx0LG4sbyl7cmV0dXJuIHZvaWQgMD09PW4mJihuPW51bGwpLHIoe3BhdGhuYW1lOiJzdHJpbmciPT10eXBlb2YgZT9lOmUucGF0aG5hbWUsc2VhcmNoOiIiLGhhc2g6IiJ9LCJzdHJpbmciPT10eXBlb2YgdD9sKHQpOnQse3N0YXRlOm4sa2V5OnQmJnQua2V5fHxvfHxNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiw4KX0pfWZ1bmN0aW9uIHUoZSl7bGV0e3BhdGhuYW1lOnQ9Ii8iLHNlYXJjaDpyPSIiLGhhc2g6bj0iIn09ZTtyZXR1cm4gciYmIj8iIT09ciYmKHQrPSI/Ij09PXIuY2hhckF0KDApP3I6Ij8iK3IpLG4mJiIjIiE9PW4mJih0Kz0iIyI9PT1uLmNoYXJBdCgwKT9uOiIjIituKSx0fWZ1bmN0aW9uIGwoZSl7bGV0IHQ9e307aWYoZSl7bGV0IHI9ZS5pbmRleE9mKCIjIik7cj49MCYmKHQuaGFzaD1lLnN1YnN0cihyKSxlPWUuc3Vic3RyKDAscikpO2xldCBuPWUuaW5kZXhPZigiPyIpO24+PTAmJih0LnNlYXJjaD1lLnN1YnN0cihuKSxlPWUuc3Vic3RyKDAsbikpLGUmJih0LnBhdGhuYW1lPWUpfXJldHVybiB0fWZ1bmN0aW9uIGYoZSx0LGEsbCl7dm9pZCAwPT09bCYmKGw9e30pO2xldHt3aW5kb3c6Zj1kb2N1bWVudC5kZWZhdWx0Vmlldyx2NUNvbXBhdDpkPSExfT1sLHA9Zi5oaXN0b3J5LF89bi5Qb3AsaD1udWxsLG09eSgpO2Z1bmN0aW9uIHkoKXtyZXR1cm4ocC5zdGF0ZXx8e2lkeDpudWxsfSkuaWR4fWZ1bmN0aW9uIGcoKXtfPW4uUG9wO2xldCBlPXkoKSx0PW51bGw9PWU/bnVsbDplLW07bT1lLGgmJmgoe2FjdGlvbjpfLGxvY2F0aW9uOmIubG9jYXRpb24sZGVsdGE6dH0pfWZ1bmN0aW9uIHYoZSl7bGV0IHQ9Im51bGwiIT09Zi5sb2NhdGlvbi5vcmlnaW4/Zi5sb2NhdGlvbi5vcmlnaW46Zi5sb2NhdGlvbi5ocmVmLHI9InN0cmluZyI9PXR5cGVvZiBlP2U6dShlKTtyZXR1cm4gcj1yLnJlcGxhY2UoLyAkLywiJTIwIiksaSh0LCJObyB3aW5kb3cubG9jYXRpb24uKG9yaWdpbnxocmVmKSBhdmFpbGFibGUgdG8gY3JlYXRlIFVSTCBmb3IgaHJlZjogIityKSxuZXcgVVJMKHIsdCl9bnVsbD09bSYmKG09MCxwLnJlcGxhY2VTdGF0ZShyKHt9LHAuc3RhdGUse2lkeDptfSksIiIpKTtsZXQgYj17Z2V0IGFjdGlvbigpe3JldHVybiBffSxnZXQgbG9jYXRpb24oKXtyZXR1cm4gZShmLHApfSxsaXN0ZW4oZSl7aWYoaCl0aHJvdyBuZXcgRXJyb3IoIkEgaGlzdG9yeSBvbmx5IGFjY2VwdHMgb25lIGFjdGl2ZSBsaXN0ZW5lciIpO3JldHVybiBmLmFkZEV2ZW50TGlzdGVuZXIobyxnKSxoPWUsKCk9PntmLnJlbW92ZUV2ZW50TGlzdGVuZXIobyxnKSxoPW51bGx9fSxjcmVhdGVIcmVmKGUpe3JldHVybiB0KGYsZSl9LGNyZWF0ZVVSTDp2LGVuY29kZUxvY2F0aW9uKGUpe2xldCB0PXYoZSk7cmV0dXJue3BhdGhuYW1lOnQucGF0aG5hbWUsc2VhcmNoOnQuc2VhcmNoLGhhc2g6dC5oYXNofX0scHVzaDpmdW5jdGlvbihlLHQpe189bi5QdXNoO2xldCByPWMoYi5sb2NhdGlvbixlLHQpO2EmJmEocixlKSxtPXkoKSsxO2xldCBvPXMocixtKSxpPWIuY3JlYXRlSHJlZihyKTt0cnl7cC5wdXNoU3RhdGUobywiIixpKX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uJiYiRGF0YUNsb25lRXJyb3IiPT09ZS5uYW1lKXRocm93IGU7Zi5sb2NhdGlvbi5hc3NpZ24oaSl9ZCYmaCYmaCh7YWN0aW9uOl8sbG9jYXRpb246Yi5sb2NhdGlvbixkZWx0YToxfSl9LHJlcGxhY2U6ZnVuY3Rpb24oZSx0KXtfPW4uUmVwbGFjZTtsZXQgcj1jKGIubG9jYXRpb24sZSx0KTthJiZhKHIsZSksbT15KCk7bGV0IG89cyhyLG0pLGk9Yi5jcmVhdGVIcmVmKHIpO3AucmVwbGFjZVN0YXRlKG8sIiIsaSksZCYmaCYmaCh7YWN0aW9uOl8sbG9jYXRpb246Yi5sb2NhdGlvbixkZWx0YTowfSl9LGdvKGUpe3JldHVybiBwLmdvKGUpfX07cmV0dXJuIGJ9bGV0IGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGF0YT0iZGF0YSIsZS5kZWZlcnJlZD0iZGVmZXJyZWQiLGUucmVkaXJlY3Q9InJlZGlyZWN0IixlLmVycm9yPSJlcnJvciIsZX0oe30pO2NvbnN0IHA9bmV3IFNldChbImxhenkiLCJjYXNlU2Vuc2l0aXZlIiwicGF0aCIsImlkIiwiaW5kZXgiLCJjaGlsZHJlbiJdKTtmdW5jdGlvbiBfKGUsdCxuLG8pe3JldHVybiB2b2lkIDA9PT1uJiYobj1bXSksdm9pZCAwPT09byYmKG89e30pLGUubWFwKCgoZSxhKT0+e2xldCBzPVsuLi5uLFN0cmluZyhhKV0sYz0ic3RyaW5nIj09dHlwZW9mIGUuaWQ/ZS5pZDpzLmpvaW4oIi0iKTtpZihpKCEwIT09ZS5pbmRleHx8IWUuY2hpbGRyZW4sIkNhbm5vdCBzcGVjaWZ5IGNoaWxkcmVuIG9uIGFuIGluZGV4IHJvdXRlIiksaSghb1tjXSwnRm91bmQgYSByb3V0ZSBpZCBjb2xsaXNpb24gb24gaWQgIicrYysiXCIuICBSb3V0ZSBpZCdzIG11c3QgYmUgZ2xvYmFsbHkgdW5pcXVlIHdpdGhpbiBEYXRhIFJvdXRlciB1c2FnZXMiKSxmdW5jdGlvbihlKXtyZXR1cm4hMD09PWUuaW5kZXh9KGUpKXtsZXQgbj1yKHt9LGUsdChlKSx7aWQ6Y30pO3JldHVybiBvW2NdPW4sbn17bGV0IG49cih7fSxlLHQoZSkse2lkOmMsY2hpbGRyZW46dm9pZCAwfSk7cmV0dXJuIG9bY109bixlLmNoaWxkcmVuJiYobi5jaGlsZHJlbj1fKGUuY2hpbGRyZW4sdCxzLG8pKSxufX0pKX1mdW5jdGlvbiBoKGUsdCxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9Ii8iKSxtKGUsdCxyLCExKX1mdW5jdGlvbiBtKGUsdCxyLG4pe2xldCBvPU0oKCJzdHJpbmciPT10eXBlb2YgdD9sKHQpOnQpLnBhdGhuYW1lfHwiLyIscik7aWYobnVsbD09bylyZXR1cm4gbnVsbDtsZXQgaT1nKGUpOyFmdW5jdGlvbihlKXtlLnNvcnQoKChlLHQpPT5lLnNjb3JlIT09dC5zY29yZT90LnNjb3JlLWUuc2NvcmU6ZnVuY3Rpb24oZSx0KXtsZXQgcj1lLmxlbmd0aD09PXQubGVuZ3RoJiZlLnNsaWNlKDAsLTEpLmV2ZXJ5KCgoZSxyKT0+ZT09PXRbcl0pKTtyZXR1cm4gcj9lW2UubGVuZ3RoLTFdLXRbdC5sZW5ndGgtMV06MH0oZS5yb3V0ZXNNZXRhLm1hcCgoZT0+ZS5jaGlsZHJlbkluZGV4KSksdC5yb3V0ZXNNZXRhLm1hcCgoZT0+ZS5jaGlsZHJlbkluZGV4KSkpKSl9KGkpO2xldCBhPW51bGw7Zm9yKGxldCBlPTA7bnVsbD09YSYmZTxpLmxlbmd0aDsrK2Upe2xldCB0PU8obyk7YT1SKGlbZV0sdCxuKX1yZXR1cm4gYX1mdW5jdGlvbiB5KGUsdCl7bGV0e3JvdXRlOnIscGF0aG5hbWU6bixwYXJhbXM6b309ZTtyZXR1cm57aWQ6ci5pZCxwYXRobmFtZTpuLHBhcmFtczpvLGRhdGE6dFtyLmlkXSxoYW5kbGU6ci5oYW5kbGV9fWZ1bmN0aW9uIGcoZSx0LHIsbil7dm9pZCAwPT09dCYmKHQ9W10pLHZvaWQgMD09PXImJihyPVtdKSx2b2lkIDA9PT1uJiYobj0iIik7bGV0IG89KGUsbyxhKT0+e2xldCBzPXtyZWxhdGl2ZVBhdGg6dm9pZCAwPT09YT9lLnBhdGh8fCIiOmEsY2FzZVNlbnNpdGl2ZTohMD09PWUuY2FzZVNlbnNpdGl2ZSxjaGlsZHJlbkluZGV4Om8scm91dGU6ZX07cy5yZWxhdGl2ZVBhdGguc3RhcnRzV2l0aCgiLyIpJiYoaShzLnJlbGF0aXZlUGF0aC5zdGFydHNXaXRoKG4pLCdBYnNvbHV0ZSByb3V0ZSBwYXRoICInK3MucmVsYXRpdmVQYXRoKyciIG5lc3RlZCB1bmRlciBwYXRoICInK24rJyIgaXMgbm90IHZhbGlkLiBBbiBhYnNvbHV0ZSBjaGlsZCByb3V0ZSBwYXRoIG11c3Qgc3RhcnQgd2l0aCB0aGUgY29tYmluZWQgcGF0aCBvZiBhbGwgaXRzIHBhcmVudCByb3V0ZXMuJykscy5yZWxhdGl2ZVBhdGg9cy5yZWxhdGl2ZVBhdGguc2xpY2Uobi5sZW5ndGgpKTtsZXQgYz1VKFtuLHMucmVsYXRpdmVQYXRoXSksdT1yLmNvbmNhdChzKTtlLmNoaWxkcmVuJiZlLmNoaWxkcmVuLmxlbmd0aD4wJiYoaSghMCE9PWUuaW5kZXgsJ0luZGV4IHJvdXRlcyBtdXN0IG5vdCBoYXZlIGNoaWxkIHJvdXRlcy4gUGxlYXNlIHJlbW92ZSBhbGwgY2hpbGQgcm91dGVzIGZyb20gcm91dGUgcGF0aCAiJytjKyciLicpLGcoZS5jaGlsZHJlbix0LHUsYykpLChudWxsIT1lLnBhdGh8fGUuaW5kZXgpJiZ0LnB1c2goe3BhdGg6YyxzY29yZTpUKGMsZS5pbmRleCkscm91dGVzTWV0YTp1fSl9O3JldHVybiBlLmZvckVhY2goKChlLHQpPT57dmFyIHI7aWYoIiIhPT1lLnBhdGgmJm51bGwhPShyPWUucGF0aCkmJnIuaW5jbHVkZXMoIj8iKSlmb3IobGV0IHIgb2YgdihlLnBhdGgpKW8oZSx0LHIpO2Vsc2UgbyhlLHQpfSkpLHR9ZnVuY3Rpb24gdihlKXtsZXQgdD1lLnNwbGl0KCIvIik7aWYoMD09PXQubGVuZ3RoKXJldHVybltdO2xldFtyLC4uLm5dPXQsbz1yLmVuZHNXaXRoKCI/IiksaT1yLnJlcGxhY2UoL1w/JC8sIiIpO2lmKDA9PT1uLmxlbmd0aClyZXR1cm4gbz9baSwiIl06W2ldO2xldCBhPXYobi5qb2luKCIvIikpLHM9W107cmV0dXJuIHMucHVzaCguLi5hLm1hcCgoZT0+IiI9PT1lP2k6W2ksZV0uam9pbigiLyIpKSkpLG8mJnMucHVzaCguLi5hKSxzLm1hcCgodD0+ZS5zdGFydHNXaXRoKCIvIikmJiIiPT09dD8iLyI6dCkpfWNvbnN0IGI9L146W1x3LV0rJC8sdz0zLFM9MixrPTEseD0xMCxFPS0yLEE9ZT0+IioiPT09ZTtmdW5jdGlvbiBUKGUsdCl7bGV0IHI9ZS5zcGxpdCgiLyIpLG49ci5sZW5ndGg7cmV0dXJuIHIuc29tZShBKSYmKG4rPUUpLHQmJihuKz1TKSxyLmZpbHRlcigoZT0+IUEoZSkpKS5yZWR1Y2UoKChlLHQpPT5lKyhiLnRlc3QodCk/dzoiIj09PXQ/azp4KSksbil9ZnVuY3Rpb24gUihlLHQscil7dm9pZCAwPT09ciYmKHI9ITEpO2xldHtyb3V0ZXNNZXRhOm59PWUsbz17fSxpPSIvIixhPVtdO2ZvcihsZXQgZT0wO2U8bi5sZW5ndGg7KytlKXtsZXQgcz1uW2VdLGM9ZT09PW4ubGVuZ3RoLTEsdT0iLyI9PT1pP3Q6dC5zbGljZShpLmxlbmd0aCl8fCIvIixsPVAoe3BhdGg6cy5yZWxhdGl2ZVBhdGgsY2FzZVNlbnNpdGl2ZTpzLmNhc2VTZW5zaXRpdmUsZW5kOmN9LHUpLGY9cy5yb3V0ZTtpZighbCYmYyYmciYmIW5bbi5sZW5ndGgtMV0ucm91dGUuaW5kZXgmJihsPVAoe3BhdGg6cy5yZWxhdGl2ZVBhdGgsY2FzZVNlbnNpdGl2ZTpzLmNhc2VTZW5zaXRpdmUsZW5kOiExfSx1KSksIWwpcmV0dXJuIG51bGw7T2JqZWN0LmFzc2lnbihvLGwucGFyYW1zKSxhLnB1c2goe3BhcmFtczpvLHBhdGhuYW1lOlUoW2ksbC5wYXRobmFtZV0pLHBhdGhuYW1lQmFzZTp6KFUoW2ksbC5wYXRobmFtZUJhc2VdKSkscm91dGU6Zn0pLCIvIiE9PWwucGF0aG5hbWVCYXNlJiYoaT1VKFtpLGwucGF0aG5hbWVCYXNlXSkpfXJldHVybiBhfWZ1bmN0aW9uIFAoZSx0KXsic3RyaW5nIj09dHlwZW9mIGUmJihlPXtwYXRoOmUsY2FzZVNlbnNpdGl2ZTohMSxlbmQ6ITB9KTtsZXRbcixuXT1mdW5jdGlvbihlLHQscil7dm9pZCAwPT09dCYmKHQ9ITEpO3ZvaWQgMD09PXImJihyPSEwKTthKCIqIj09PWV8fCFlLmVuZHNXaXRoKCIqIil8fGUuZW5kc1dpdGgoIi8qIiksJ1JvdXRlIHBhdGggIicrZSsnIiB3aWxsIGJlIHRyZWF0ZWQgYXMgaWYgaXQgd2VyZSAiJytlLnJlcGxhY2UoL1wqJC8sIi8qIikrJyIgYmVjYXVzZSB0aGUgYCpgIGNoYXJhY3RlciBtdXN0IGFsd2F5cyBmb2xsb3cgYSBgL2AgaW4gdGhlIHBhdHRlcm4uIFRvIGdldCByaWQgb2YgdGhpcyB3YXJuaW5nLCBwbGVhc2UgY2hhbmdlIHRoZSByb3V0ZSBwYXRoIHRvICInK2UucmVwbGFjZSgvXCokLywiLyoiKSsnIi4nKTtsZXQgbj1bXSxvPSJeIitlLnJlcGxhY2UoL1wvKlwqPyQvLCIiKS5yZXBsYWNlKC9eXC8qLywiLyIpLnJlcGxhY2UoL1tcXC4qK14ke318KClbXF1dL2csIlxcJCYiKS5yZXBsYWNlKC9cLzooW1x3LV0rKShcPyk/L2csKChlLHQscik9PihuLnB1c2goe3BhcmFtTmFtZTp0LGlzT3B0aW9uYWw6bnVsbCE9cn0pLHI/Ii8/KFteXFwvXSspPyI6Ii8oW15cXC9dKykiKSkpO2UuZW5kc1dpdGgoIioiKT8obi5wdXNoKHtwYXJhbU5hbWU6IioifSksbys9IioiPT09ZXx8Ii8qIj09PWU/IiguKikkIjoiKD86XFwvKC4rKXxcXC8qKSQiKTpyP28rPSJcXC8qJCI6IiIhPT1lJiYiLyIhPT1lJiYobys9Iig/Oig/PVxcL3wkKSkiKTtsZXQgaT1uZXcgUmVnRXhwKG8sdD92b2lkIDA6ImkiKTtyZXR1cm5baSxuXX0oZS5wYXRoLGUuY2FzZVNlbnNpdGl2ZSxlLmVuZCksbz10Lm1hdGNoKHIpO2lmKCFvKXJldHVybiBudWxsO2xldCBpPW9bMF0scz1pLnJlcGxhY2UoLyguKVwvKyQvLCIkMSIpLGM9by5zbGljZSgxKTtyZXR1cm57cGFyYW1zOm4ucmVkdWNlKCgoZSx0LHIpPT57bGV0e3BhcmFtTmFtZTpuLGlzT3B0aW9uYWw6b309dDtpZigiKiI9PT1uKXtsZXQgZT1jW3JdfHwiIjtzPWkuc2xpY2UoMCxpLmxlbmd0aC1lLmxlbmd0aCkucmVwbGFjZSgvKC4pXC8rJC8sIiQxIil9Y29uc3QgYT1jW3JdO3JldHVybiBlW25dPW8mJiFhP3ZvaWQgMDooYXx8IiIpLnJlcGxhY2UoLyUyRi9nLCIvIiksZX0pLHt9KSxwYXRobmFtZTppLHBhdGhuYW1lQmFzZTpzLHBhdHRlcm46ZX19ZnVuY3Rpb24gTyhlKXt0cnl7cmV0dXJuIGUuc3BsaXQoIi8iKS5tYXAoKGU9PmRlY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC9cLy9nLCIlMkYiKSkpLmpvaW4oIi8iKX1jYXRjaCh0KXtyZXR1cm4gYSghMSwnVGhlIFVSTCBwYXRoICInK2UrJyIgY291bGQgbm90IGJlIGRlY29kZWQgYmVjYXVzZSBpdCBpcyBpcyBhIG1hbGZvcm1lZCBVUkwgc2VnbWVudC4gVGhpcyBpcyBwcm9iYWJseSBkdWUgdG8gYSBiYWQgcGVyY2VudCBlbmNvZGluZyAoJyt0KyIpLiIpLGV9fWZ1bmN0aW9uIE0oZSx0KXtpZigiLyI9PT10KXJldHVybiBlO2lmKCFlLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCh0LnRvTG93ZXJDYXNlKCkpKXJldHVybiBudWxsO2xldCByPXQuZW5kc1dpdGgoIi8iKT90Lmxlbmd0aC0xOnQubGVuZ3RoLG49ZS5jaGFyQXQocik7cmV0dXJuIG4mJiIvIiE9PW4/bnVsbDplLnNsaWNlKHIpfHwiLyJ9ZnVuY3Rpb24gRihlLHQpe3ZvaWQgMD09PXQmJih0PSIvIik7bGV0e3BhdGhuYW1lOnIsc2VhcmNoOm49IiIsaGFzaDpvPSIifT0ic3RyaW5nIj09dHlwZW9mIGU/bChlKTplLGk9cj9yLnN0YXJ0c1dpdGgoIi8iKT9yOmZ1bmN0aW9uKGUsdCl7bGV0IHI9dC5yZXBsYWNlKC9cLyskLywiIikuc3BsaXQoIi8iKTtyZXR1cm4gZS5zcGxpdCgiLyIpLmZvckVhY2goKGU9PnsiLi4iPT09ZT9yLmxlbmd0aD4xJiZyLnBvcCgpOiIuIiE9PWUmJnIucHVzaChlKX0pKSxyLmxlbmd0aD4xP3Iuam9pbigiLyIpOiIvIn0ocix0KTp0O3JldHVybntwYXRobmFtZTppLHNlYXJjaDpCKG4pLGhhc2g6SChvKX19ZnVuY3Rpb24gSShlLHQscixuKXtyZXR1cm4iQ2Fubm90IGluY2x1ZGUgYSAnIitlKyInIGNoYXJhY3RlciBpbiBhIG1hbnVhbGx5IHNwZWNpZmllZCBgdG8uIit0KyJgIGZpZWxkIFsiK0pTT04uc3RyaW5naWZ5KG4pKyJdLiAgUGxlYXNlIHNlcGFyYXRlIGl0IG91dCB0byB0aGUgYHRvLiIrcisnYCBmaWVsZC4gQWx0ZXJuYXRpdmVseSB5b3UgbWF5IHByb3ZpZGUgdGhlIGZ1bGwgcGF0aCBhcyBhIHN0cmluZyBpbiA8TGluayB0bz0iLi4uIj4gYW5kIHRoZSByb3V0ZXIgd2lsbCBwYXJzZSBpdCBmb3IgeW91Lid9ZnVuY3Rpb24gaihlKXtyZXR1cm4gZS5maWx0ZXIoKChlLHQpPT4wPT09dHx8ZS5yb3V0ZS5wYXRoJiZlLnJvdXRlLnBhdGgubGVuZ3RoPjApKX1mdW5jdGlvbiBEKGUsdCl7bGV0IHI9aihlKTtyZXR1cm4gdD9yLm1hcCgoKHQscik9PnI9PT1lLmxlbmd0aC0xP3QucGF0aG5hbWU6dC5wYXRobmFtZUJhc2UpKTpyLm1hcCgoZT0+ZS5wYXRobmFtZUJhc2UpKX1mdW5jdGlvbiBMKGUsdCxuLG8pe2xldCBhO3ZvaWQgMD09PW8mJihvPSExKSwic3RyaW5nIj09dHlwZW9mIGU/YT1sKGUpOihhPXIoe30sZSksaSghYS5wYXRobmFtZXx8IWEucGF0aG5hbWUuaW5jbHVkZXMoIj8iKSxJKCI/IiwicGF0aG5hbWUiLCJzZWFyY2giLGEpKSxpKCFhLnBhdGhuYW1lfHwhYS5wYXRobmFtZS5pbmNsdWRlcygiIyIpLEkoIiMiLCJwYXRobmFtZSIsImhhc2giLGEpKSxpKCFhLnNlYXJjaHx8IWEuc2VhcmNoLmluY2x1ZGVzKCIjIiksSSgiIyIsInNlYXJjaCIsImhhc2giLGEpKSk7bGV0IHMsYz0iIj09PWV8fCIiPT09YS5wYXRobmFtZSx1PWM/Ii8iOmEucGF0aG5hbWU7aWYobnVsbD09dSlzPW47ZWxzZXtsZXQgZT10Lmxlbmd0aC0xO2lmKCFvJiZ1LnN0YXJ0c1dpdGgoIi4uIikpe2xldCB0PXUuc3BsaXQoIi8iKTtmb3IoOyIuLiI9PT10WzBdOyl0LnNoaWZ0KCksZS09MTthLnBhdGhuYW1lPXQuam9pbigiLyIpfXM9ZT49MD90W2VdOiIvIn1sZXQgZj1GKGEscyksZD11JiYiLyIhPT11JiZ1LmVuZHNXaXRoKCIvIikscD0oY3x8Ii4iPT09dSkmJm4uZW5kc1dpdGgoIi8iKTtyZXR1cm4gZi5wYXRobmFtZS5lbmRzV2l0aCgiLyIpfHwhZCYmIXB8fChmLnBhdGhuYW1lKz0iLyIpLGZ9Y29uc3QgVT1lPT5lLmpvaW4oIi8iKS5yZXBsYWNlKC9cL1wvKy9nLCIvIiksej1lPT5lLnJlcGxhY2UoL1wvKyQvLCIiKS5yZXBsYWNlKC9eXC8qLywiLyIpLEI9ZT0+ZSYmIj8iIT09ZT9lLnN0YXJ0c1dpdGgoIj8iKT9lOiI/IitlOiIiLEg9ZT0+ZSYmIiMiIT09ZT9lLnN0YXJ0c1dpdGgoIiMiKT9lOiIjIitlOiIiO2NsYXNzIEFib3J0ZWREZWZlcnJlZEVycm9yIGV4dGVuZHMgRXJyb3J7fWNsYXNzIERlZmVycmVkRGF0YXtjb25zdHJ1Y3RvcihlLHQpe2xldCByO3RoaXMucGVuZGluZ0tleXNTZXQ9bmV3IFNldCx0aGlzLnN1YnNjcmliZXJzPW5ldyBTZXQsdGhpcy5kZWZlcnJlZEtleXM9W10saShlJiYib2JqZWN0Ij09dHlwZW9mIGUmJiFBcnJheS5pc0FycmF5KGUpLCJkZWZlcigpIG9ubHkgYWNjZXB0cyBwbGFpbiBvYmplY3RzIiksdGhpcy5hYm9ydFByb21pc2U9bmV3IFByb21pc2UoKChlLHQpPT5yPXQpKSx0aGlzLmNvbnRyb2xsZXI9bmV3IEFib3J0Q29udHJvbGxlcjtsZXQgbj0oKT0+cihuZXcgQWJvcnRlZERlZmVycmVkRXJyb3IoIkRlZmVycmVkIGRhdGEgYWJvcnRlZCIpKTt0aGlzLnVubGlzdGVuQWJvcnRTaWduYWw9KCk9PnRoaXMuY29udHJvbGxlci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG4pLHRoaXMuY29udHJvbGxlci5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG4pLHRoaXMuZGF0YT1PYmplY3QuZW50cmllcyhlKS5yZWR1Y2UoKChlLHQpPT57bGV0W3Isbl09dDtyZXR1cm4gT2JqZWN0LmFzc2lnbihlLHtbcl06dGhpcy50cmFja1Byb21pc2UocixuKX0pfSkse30pLHRoaXMuZG9uZSYmdGhpcy51bmxpc3RlbkFib3J0U2lnbmFsKCksdGhpcy5pbml0PXR9dHJhY2tQcm9taXNlKGUsdCl7aWYoISh0IGluc3RhbmNlb2YgUHJvbWlzZSkpcmV0dXJuIHQ7dGhpcy5kZWZlcnJlZEtleXMucHVzaChlKSx0aGlzLnBlbmRpbmdLZXlzU2V0LmFkZChlKTtsZXQgcj1Qcm9taXNlLnJhY2UoW3QsdGhpcy5hYm9ydFByb21pc2VdKS50aGVuKCh0PT50aGlzLm9uU2V0dGxlKHIsZSx2b2lkIDAsdCkpLCh0PT50aGlzLm9uU2V0dGxlKHIsZSx0KSkpO3JldHVybiByLmNhdGNoKCgoKT0+e30pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX3RyYWNrZWQiLHtnZXQ6KCk9PiEwfSkscn1vblNldHRsZShlLHQscixuKXtpZih0aGlzLmNvbnRyb2xsZXIuc2lnbmFsLmFib3J0ZWQmJnIgaW5zdGFuY2VvZiBBYm9ydGVkRGVmZXJyZWRFcnJvcilyZXR1cm4gdGhpcy51bmxpc3RlbkFib3J0U2lnbmFsKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9lcnJvciIse2dldDooKT0+cn0pLFByb21pc2UucmVqZWN0KHIpO2lmKHRoaXMucGVuZGluZ0tleXNTZXQuZGVsZXRlKHQpLHRoaXMuZG9uZSYmdGhpcy51bmxpc3RlbkFib3J0U2lnbmFsKCksdm9pZCAwPT09ciYmdm9pZCAwPT09bil7bGV0IHI9bmV3IEVycm9yKCdEZWZlcnJlZCBkYXRhIGZvciBrZXkgIicrdCsnIiByZXNvbHZlZC9yZWplY3RlZCB3aXRoIGB1bmRlZmluZWRgLCB5b3UgbXVzdCByZXNvbHZlL3JlamVjdCB3aXRoIGEgdmFsdWUgb3IgYG51bGxgLicpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX2Vycm9yIix7Z2V0OigpPT5yfSksdGhpcy5lbWl0KCExLHQpLFByb21pc2UucmVqZWN0KHIpfXJldHVybiB2b2lkIDA9PT1uPyhPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX2Vycm9yIix7Z2V0OigpPT5yfSksdGhpcy5lbWl0KCExLHQpLFByb21pc2UucmVqZWN0KHIpKTooT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9kYXRhIix7Z2V0OigpPT5ufSksdGhpcy5lbWl0KCExLHQpLG4pfWVtaXQoZSx0KXt0aGlzLnN1YnNjcmliZXJzLmZvckVhY2goKHI9PnIoZSx0KSkpfXN1YnNjcmliZShlKXtyZXR1cm4gdGhpcy5zdWJzY3JpYmVycy5hZGQoZSksKCk9PnRoaXMuc3Vic2NyaWJlcnMuZGVsZXRlKGUpfWNhbmNlbCgpe3RoaXMuY29udHJvbGxlci5hYm9ydCgpLHRoaXMucGVuZGluZ0tleXNTZXQuZm9yRWFjaCgoKGUsdCk9PnRoaXMucGVuZGluZ0tleXNTZXQuZGVsZXRlKHQpKSksdGhpcy5lbWl0KCEwKX1hc3luYyByZXNvbHZlRGF0YShlKXtsZXQgdD0hMTtpZighdGhpcy5kb25lKXtsZXQgcj0oKT0+dGhpcy5jYW5jZWwoKTtlLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixyKSx0PWF3YWl0IG5ldyBQcm9taXNlKCh0PT57dGhpcy5zdWJzY3JpYmUoKG49PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixyKSwobnx8dGhpcy5kb25lKSYmdChuKX0pKX0pKX1yZXR1cm4gdH1nZXQgZG9uZSgpe3JldHVybiAwPT09dGhpcy5wZW5kaW5nS2V5c1NldC5zaXplfWdldCB1bndyYXBwZWREYXRhKCl7cmV0dXJuIGkobnVsbCE9PXRoaXMuZGF0YSYmdGhpcy5kb25lLCJDYW4gb25seSB1bndyYXAgZGF0YSBvbiBpbml0aWFsaXplZCBhbmQgc2V0dGxlZCBkZWZlcnJlZHMiKSxPYmplY3QuZW50cmllcyh0aGlzLmRhdGEpLnJlZHVjZSgoKGUsdCk9PntsZXRbcixuXT10O3JldHVybiBPYmplY3QuYXNzaWduKGUse1tyXTpXKG4pfSl9KSx7fSl9Z2V0IHBlbmRpbmdLZXlzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5wZW5kaW5nS2V5c1NldCl9fWZ1bmN0aW9uIFcoZSl7aWYoIWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgUHJvbWlzZSYmITA9PT1lLl90cmFja2VkfShlKSlyZXR1cm4gZTtpZihlLl9lcnJvcil0aHJvdyBlLl9lcnJvcjtyZXR1cm4gZS5fZGF0YX1jb25zdCAkPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09dCYmKHQ9MzAyKTtsZXQgbj10OyJudW1iZXIiPT10eXBlb2Ygbj9uPXtzdGF0dXM6bn06dm9pZCAwPT09bi5zdGF0dXMmJihuLnN0YXR1cz0zMDIpO2xldCBvPW5ldyBIZWFkZXJzKG4uaGVhZGVycyk7cmV0dXJuIG8uc2V0KCJMb2NhdGlvbiIsZSksbmV3IFJlc3BvbnNlKG51bGwscih7fSxuLHtoZWFkZXJzOm99KSl9O2NsYXNzIEVycm9yUmVzcG9uc2VJbXBse2NvbnN0cnVjdG9yKGUsdCxyLG4pe3ZvaWQgMD09PW4mJihuPSExKSx0aGlzLnN0YXR1cz1lLHRoaXMuc3RhdHVzVGV4dD10fHwiIix0aGlzLmludGVybmFsPW4sciBpbnN0YW5jZW9mIEVycm9yPyh0aGlzLmRhdGE9ci50b1N0cmluZygpLHRoaXMuZXJyb3I9cik6dGhpcy5kYXRhPXJ9fWZ1bmN0aW9uIHEoZSl7cmV0dXJuIG51bGwhPWUmJiJudW1iZXIiPT10eXBlb2YgZS5zdGF0dXMmJiJzdHJpbmciPT10eXBlb2YgZS5zdGF0dXNUZXh0JiYiYm9vbGVhbiI9PXR5cGVvZiBlLmludGVybmFsJiYiZGF0YSJpbiBlfWNvbnN0IEc9WyJwb3N0IiwicHV0IiwicGF0Y2giLCJkZWxldGUiXSxWPW5ldyBTZXQoRyksWT1bImdldCIsLi4uR10sSz1uZXcgU2V0KFkpLFg9bmV3IFNldChbMzAxLDMwMiwzMDMsMzA3LDMwOF0pLFo9bmV3IFNldChbMzA3LDMwOF0pLFE9e3N0YXRlOiJpZGxlIixsb2NhdGlvbjp2b2lkIDAsZm9ybU1ldGhvZDp2b2lkIDAsZm9ybUFjdGlvbjp2b2lkIDAsZm9ybUVuY1R5cGU6dm9pZCAwLGZvcm1EYXRhOnZvaWQgMCxqc29uOnZvaWQgMCx0ZXh0OnZvaWQgMH0sZWU9e3N0YXRlOiJpZGxlIixkYXRhOnZvaWQgMCxmb3JtTWV0aG9kOnZvaWQgMCxmb3JtQWN0aW9uOnZvaWQgMCxmb3JtRW5jVHlwZTp2b2lkIDAsZm9ybURhdGE6dm9pZCAwLGpzb246dm9pZCAwLHRleHQ6dm9pZCAwfSx0ZT17c3RhdGU6InVuYmxvY2tlZCIscHJvY2VlZDp2b2lkIDAscmVzZXQ6dm9pZCAwLGxvY2F0aW9uOnZvaWQgMH0scmU9L14oPzpbYS16XVthLXowLTkrLi1dKjp8XC9cLykvaSxuZT1lPT4oe2hhc0Vycm9yQm91bmRhcnk6Qm9vbGVhbihlLmhhc0Vycm9yQm91bmRhcnkpfSksb2U9InJlbWl4LXJvdXRlci10cmFuc2l0aW9ucyI7Y29uc3QgaWU9U3ltYm9sKCJkZWZlcnJlZCIpO2Z1bmN0aW9uIGFlKGUsdCxyKXtpZihyLnY3X3Rocm93QWJvcnRSZWFzb24mJnZvaWQgMCE9PWUuc2lnbmFsLnJlYXNvbil0aHJvdyBlLnNpZ25hbC5yZWFzb247dGhyb3cgbmV3IEVycm9yKCh0PyJxdWVyeVJvdXRlIjoicXVlcnkiKSsiKCkgY2FsbCBhYm9ydGVkOiAiK2UubWV0aG9kKyIgIitlLnVybCl9ZnVuY3Rpb24gc2UoZSx0LHIsbixvLGksYSxzKXtsZXQgYyxsO2lmKGEpe2M9W107Zm9yKGxldCBlIG9mIHQpaWYoYy5wdXNoKGUpLGUucm91dGUuaWQ9PT1hKXtsPWU7YnJlYWt9fWVsc2UgYz10LGw9dFt0Lmxlbmd0aC0xXTtsZXQgZj1MKG98fCIuIixEKGMsaSksTShlLnBhdGhuYW1lLHIpfHxlLnBhdGhuYW1lLCJwYXRoIj09PXMpO3JldHVybiBudWxsPT1vJiYoZi5zZWFyY2g9ZS5zZWFyY2gsZi5oYXNoPWUuaGFzaCksbnVsbCE9byYmIiIhPT1vJiYiLiIhPT1vfHwhbHx8IWwucm91dGUuaW5kZXh8fFdlKGYuc2VhcmNoKXx8KGYuc2VhcmNoPWYuc2VhcmNoP2Yuc2VhcmNoLnJlcGxhY2UoL15cPy8sIj9pbmRleCYiKToiP2luZGV4IiksbiYmIi8iIT09ciYmKGYucGF0aG5hbWU9Ii8iPT09Zi5wYXRobmFtZT9yOlUoW3IsZi5wYXRobmFtZV0pKSx1KGYpfWZ1bmN0aW9uIGNlKGUsdCxyLG4pe2lmKCFufHwhZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWUmJigiZm9ybURhdGEiaW4gZSYmbnVsbCE9ZS5mb3JtRGF0YXx8ImJvZHkiaW4gZSYmdm9pZCAwIT09ZS5ib2R5KX0obikpcmV0dXJue3BhdGg6cn07aWYobi5mb3JtTWV0aG9kJiYhVWUobi5mb3JtTWV0aG9kKSlyZXR1cm57cGF0aDpyLGVycm9yOlBlKDQwNSx7bWV0aG9kOm4uZm9ybU1ldGhvZH0pfTtsZXQgbyxhLHM9KCk9Pih7cGF0aDpyLGVycm9yOlBlKDQwMCx7dHlwZToiaW52YWxpZC1ib2R5In0pfSksYz1uLmZvcm1NZXRob2R8fCJnZXQiLGY9ZT9jLnRvVXBwZXJDYXNlKCk6Yy50b0xvd2VyQ2FzZSgpLGQ9TmUocik7aWYodm9pZCAwIT09bi5ib2R5KXtpZigidGV4dC9wbGFpbiI9PT1uLmZvcm1FbmNUeXBlKXtpZighemUoZikpcmV0dXJuIHMoKTtsZXQgZT0ic3RyaW5nIj09dHlwZW9mIG4uYm9keT9uLmJvZHk6bi5ib2R5IGluc3RhbmNlb2YgRm9ybURhdGF8fG4uYm9keSBpbnN0YW5jZW9mIFVSTFNlYXJjaFBhcmFtcz9BcnJheS5mcm9tKG4uYm9keS5lbnRyaWVzKCkpLnJlZHVjZSgoKGUsdCk9PntsZXRbcixuXT10O3JldHVybiIiK2UrcisiPSIrbisiXG4ifSksIiIpOlN0cmluZyhuLmJvZHkpO3JldHVybntwYXRoOnIsc3VibWlzc2lvbjp7Zm9ybU1ldGhvZDpmLGZvcm1BY3Rpb246ZCxmb3JtRW5jVHlwZTpuLmZvcm1FbmNUeXBlLGZvcm1EYXRhOnZvaWQgMCxqc29uOnZvaWQgMCx0ZXh0OmV9fX1pZigiYXBwbGljYXRpb24vanNvbiI9PT1uLmZvcm1FbmNUeXBlKXtpZighemUoZikpcmV0dXJuIHMoKTt0cnl7bGV0IGU9InN0cmluZyI9PXR5cGVvZiBuLmJvZHk/SlNPTi5wYXJzZShuLmJvZHkpOm4uYm9keTtyZXR1cm57cGF0aDpyLHN1Ym1pc3Npb246e2Zvcm1NZXRob2Q6Zixmb3JtQWN0aW9uOmQsZm9ybUVuY1R5cGU6bi5mb3JtRW5jVHlwZSxmb3JtRGF0YTp2b2lkIDAsanNvbjplLHRleHQ6dm9pZCAwfX19Y2F0Y2goZSl7cmV0dXJuIHMoKX19fWlmKGkoImZ1bmN0aW9uIj09dHlwZW9mIEZvcm1EYXRhLCJGb3JtRGF0YSBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgZW52aXJvbm1lbnQiKSxuLmZvcm1EYXRhKW89U2Uobi5mb3JtRGF0YSksYT1uLmZvcm1EYXRhO2Vsc2UgaWYobi5ib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpbz1TZShuLmJvZHkpLGE9bi5ib2R5O2Vsc2UgaWYobi5ib2R5IGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zKW89bi5ib2R5LGE9a2Uobyk7ZWxzZSBpZihudWxsPT1uLmJvZHkpbz1uZXcgVVJMU2VhcmNoUGFyYW1zLGE9bmV3IEZvcm1EYXRhO2Vsc2UgdHJ5e289bmV3IFVSTFNlYXJjaFBhcmFtcyhuLmJvZHkpLGE9a2Uobyl9Y2F0Y2goZSl7cmV0dXJuIHMoKX1sZXQgcD17Zm9ybU1ldGhvZDpmLGZvcm1BY3Rpb246ZCxmb3JtRW5jVHlwZTpuJiZuLmZvcm1FbmNUeXBlfHwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIixmb3JtRGF0YTphLGpzb246dm9pZCAwLHRleHQ6dm9pZCAwfTtpZih6ZShwLmZvcm1NZXRob2QpKXJldHVybntwYXRoOnIsc3VibWlzc2lvbjpwfTtsZXQgXz1sKHIpO3JldHVybiB0JiZfLnNlYXJjaCYmV2UoXy5zZWFyY2gpJiZvLmFwcGVuZCgiaW5kZXgiLCIiKSxfLnNlYXJjaD0iPyIrbyx7cGF0aDp1KF8pLHN1Ym1pc3Npb246cH19ZnVuY3Rpb24gdWUoZSx0KXtsZXQgcj1lO2lmKHQpe2xldCBuPWUuZmluZEluZGV4KChlPT5lLnJvdXRlLmlkPT09dCkpO24+PTAmJihyPWUuc2xpY2UoMCxuKSl9cmV0dXJuIHJ9ZnVuY3Rpb24gbGUoZSx0LG4sbyxpLGEscyxjLHUsbCxmLGQscCxfLG0seSl7bGV0IGc9eT9JZSh5WzFdKT95WzFdLmVycm9yOnlbMV0uZGF0YTp2b2lkIDAsdj1lLmNyZWF0ZVVSTCh0LmxvY2F0aW9uKSxiPWUuY3JlYXRlVVJMKGkpLHc9eSYmSWUoeVsxXSk/eVswXTp2b2lkIDAsUz13P3VlKG4sdyk6bixrPXk/eVsxXS5zdGF0dXNDb2RlOnZvaWQgMCx4PXMmJmsmJms+PTQwMCxFPVMuZmlsdGVyKCgoZSxuKT0+e2xldHtyb3V0ZTppfT1lO2lmKGkubGF6eSlyZXR1cm4hMDtpZihudWxsPT1pLmxvYWRlcilyZXR1cm4hMTtpZihhKXJldHVybiEoImZ1bmN0aW9uIj09dHlwZW9mIGkubG9hZGVyJiYhaS5sb2FkZXIuaHlkcmF0ZSl8fHZvaWQgMD09PXQubG9hZGVyRGF0YVtpLmlkXSYmKCF0LmVycm9yc3x8dm9pZCAwPT09dC5lcnJvcnNbaS5pZF0pO2lmKGZ1bmN0aW9uKGUsdCxyKXtsZXQgbj0hdHx8ci5yb3V0ZS5pZCE9PXQucm91dGUuaWQsbz12b2lkIDA9PT1lW3Iucm91dGUuaWRdO3JldHVybiBufHxvfSh0LmxvYWRlckRhdGEsdC5tYXRjaGVzW25dLGUpfHx1LnNvbWUoKHQ9PnQ9PT1lLnJvdXRlLmlkKSkpcmV0dXJuITA7bGV0IHM9dC5tYXRjaGVzW25dLGw9ZTtyZXR1cm4gZGUoZSxyKHtjdXJyZW50VXJsOnYsY3VycmVudFBhcmFtczpzLnBhcmFtcyxuZXh0VXJsOmIsbmV4dFBhcmFtczpsLnBhcmFtc30sbyx7YWN0aW9uUmVzdWx0OmcsdW5zdGFibGVfYWN0aW9uU3RhdHVzOmssZGVmYXVsdFNob3VsZFJldmFsaWRhdGU6IXgmJihjfHx2LnBhdGhuYW1lK3Yuc2VhcmNoPT09Yi5wYXRobmFtZStiLnNlYXJjaHx8di5zZWFyY2ghPT1iLnNlYXJjaHx8ZmUocyxsKSl9KSl9KSksQT1bXTtyZXR1cm4gZC5mb3JFYWNoKCgoZSxpKT0+e2lmKGF8fCFuLnNvbWUoKHQ9PnQucm91dGUuaWQ9PT1lLnJvdXRlSWQpKXx8Zi5oYXMoaSkpcmV0dXJuO2xldCBzPWgoXyxlLnBhdGgsbSk7aWYoIXMpcmV0dXJuIHZvaWQgQS5wdXNoKHtrZXk6aSxyb3V0ZUlkOmUucm91dGVJZCxwYXRoOmUucGF0aCxtYXRjaGVzOm51bGwsbWF0Y2g6bnVsbCxjb250cm9sbGVyOm51bGx9KTtsZXQgdT10LmZldGNoZXJzLmdldChpKSxkPSRlKHMsZS5wYXRoKSx5PSExO3k9IXAuaGFzKGkpJiYoISFsLmluY2x1ZGVzKGkpfHwodSYmImlkbGUiIT09dS5zdGF0ZSYmdm9pZCAwPT09dS5kYXRhP2M6ZGUoZCxyKHtjdXJyZW50VXJsOnYsY3VycmVudFBhcmFtczp0Lm1hdGNoZXNbdC5tYXRjaGVzLmxlbmd0aC0xXS5wYXJhbXMsbmV4dFVybDpiLG5leHRQYXJhbXM6bltuLmxlbmd0aC0xXS5wYXJhbXN9LG8se2FjdGlvblJlc3VsdDpnLHVuc3RhYmxlX2FjdGlvblN0YXR1czprLGRlZmF1bHRTaG91bGRSZXZhbGlkYXRlOiF4JiZjfSkpKSkseSYmQS5wdXNoKHtrZXk6aSxyb3V0ZUlkOmUucm91dGVJZCxwYXRoOmUucGF0aCxtYXRjaGVzOnMsbWF0Y2g6ZCxjb250cm9sbGVyOm5ldyBBYm9ydENvbnRyb2xsZXJ9KX0pKSxbRSxBXX1mdW5jdGlvbiBmZShlLHQpe2xldCByPWUucm91dGUucGF0aDtyZXR1cm4gZS5wYXRobmFtZSE9PXQucGF0aG5hbWV8fG51bGwhPXImJnIuZW5kc1dpdGgoIioiKSYmZS5wYXJhbXNbIioiXSE9PXQucGFyYW1zWyIqIl19ZnVuY3Rpb24gZGUoZSx0KXtpZihlLnJvdXRlLnNob3VsZFJldmFsaWRhdGUpe2xldCByPWUucm91dGUuc2hvdWxkUmV2YWxpZGF0ZSh0KTtpZigiYm9vbGVhbiI9PXR5cGVvZiByKXJldHVybiByfXJldHVybiB0LmRlZmF1bHRTaG91bGRSZXZhbGlkYXRlfWFzeW5jIGZ1bmN0aW9uIHBlKGUsdCxyLG4sbyxpLGEscyl7bGV0IGM9W3QsLi4uci5tYXAoKGU9PmUucm91dGUuaWQpKV0uam9pbigiLSIpO3RyeXtsZXQgbD1hLmdldChjKTtsfHwobD1lKHtwYXRoOnQsbWF0Y2hlczpyLHBhdGNoOihlLHQpPT57cy5hYm9ydGVkfHxfZShlLHQsbixvLGkpfX0pLGEuc2V0KGMsbCkpLGwmJigib2JqZWN0Ij09dHlwZW9mKHU9bCkmJm51bGwhPXUmJiJ0aGVuImluIHUpJiZhd2FpdCBsfWZpbmFsbHl7YS5kZWxldGUoYyl9dmFyIHV9ZnVuY3Rpb24gX2UoZSx0LHIsbixvKXtpZihlKXt2YXIgYTtsZXQgcj1uW2VdO2kociwiTm8gcm91dGUgZm91bmQgdG8gcGF0Y2ggY2hpbGRyZW4gaW50bzogcm91dGVJZCA9ICIrZSk7bGV0IHM9Xyh0LG8sW2UsInBhdGNoIixTdHJpbmcoKG51bGw9PShhPXIuY2hpbGRyZW4pP3ZvaWQgMDphLmxlbmd0aCl8fCIwIildLG4pO3IuY2hpbGRyZW4/ci5jaGlsZHJlbi5wdXNoKC4uLnMpOnIuY2hpbGRyZW49c31lbHNle2xldCBlPV8odCxvLFsicGF0Y2giLFN0cmluZyhyLmxlbmd0aHx8IjAiKV0sbik7ci5wdXNoKC4uLmUpfX1hc3luYyBmdW5jdGlvbiBoZShlLHQsbil7aWYoIWUubGF6eSlyZXR1cm47bGV0IG89YXdhaXQgZS5sYXp5KCk7aWYoIWUubGF6eSlyZXR1cm47bGV0IHM9bltlLmlkXTtpKHMsIk5vIHJvdXRlIGZvdW5kIGluIG1hbmlmZXN0Iik7bGV0IGM9e307Zm9yKGxldCBlIGluIG8pe2xldCB0PXZvaWQgMCE9PXNbZV0mJiJoYXNFcnJvckJvdW5kYXJ5IiE9PWU7YSghdCwnUm91dGUgIicrcy5pZCsnIiBoYXMgYSBzdGF0aWMgcHJvcGVydHkgIicrZSsnIiBkZWZpbmVkIGJ1dCBpdHMgbGF6eSBmdW5jdGlvbiBpcyBhbHNvIHJldHVybmluZyBhIHZhbHVlIGZvciB0aGlzIHByb3BlcnR5LiBUaGUgbGF6eSByb3V0ZSBwcm9wZXJ0eSAiJytlKyciIHdpbGwgYmUgaWdub3JlZC4nKSx0fHxwLmhhcyhlKXx8KGNbZV09b1tlXSl9T2JqZWN0LmFzc2lnbihzLGMpLE9iamVjdC5hc3NpZ24ocyxyKHt9LHQocykse2xhenk6dm9pZCAwfSkpfWZ1bmN0aW9uIG1lKGUpe3JldHVybiBQcm9taXNlLmFsbChlLm1hdGNoZXMubWFwKChlPT5lLnJlc29sdmUoKSkpKX1hc3luYyBmdW5jdGlvbiB5ZShlLHQsbixvLGEscyxjLHUpe2xldCBsPW8ucmVkdWNlKCgoZSx0KT0+ZS5hZGQodC5yb3V0ZS5pZCkpLG5ldyBTZXQpLGY9bmV3IFNldCxwPWF3YWl0IGUoe21hdGNoZXM6YS5tYXAoKGU9PntsZXQgbz1sLmhhcyhlLnJvdXRlLmlkKTtyZXR1cm4gcih7fSxlLHtzaG91bGRMb2FkOm8scmVzb2x2ZTpyPT4oZi5hZGQoZS5yb3V0ZS5pZCksbz9hc3luYyBmdW5jdGlvbihlLHQscixuLG8sYSxzKXtsZXQgYyx1LGw9bj0+e2xldCBvLGk9bmV3IFByb21pc2UoKChlLHQpPT5vPXQpKTt1PSgpPT5vKCksdC5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHUpO2xldCBjLGw9bz0+ImZ1bmN0aW9uIiE9dHlwZW9mIG4/UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCdZb3UgY2Fubm90IGNhbGwgdGhlIGhhbmRsZXIgZm9yIGEgcm91dGUgd2hpY2ggZGVmaW5lcyBhIGJvb2xlYW4gIicrZSsnIiBbcm91dGVJZDogJytyLnJvdXRlLmlkKyJdIikpOm4oe3JlcXVlc3Q6dCxwYXJhbXM6ci5wYXJhbXMsY29udGV4dDpzfSwuLi52b2lkIDAhPT1vP1tvXTpbXSk7cmV0dXJuIGM9YT9hKChlPT5sKGUpKSk6KGFzeW5jKCk9Pnt0cnl7cmV0dXJue3R5cGU6ImRhdGEiLHJlc3VsdDphd2FpdCBsKCl9fWNhdGNoKGUpe3JldHVybnt0eXBlOiJlcnJvciIscmVzdWx0OmV9fX0pKCksUHJvbWlzZS5yYWNlKFtjLGldKX07dHJ5e2xldCBhPXIucm91dGVbZV07aWYoci5yb3V0ZS5sYXp5KWlmKGEpe2xldCBlLFt0XT1hd2FpdCBQcm9taXNlLmFsbChbbChhKS5jYXRjaCgodD0+e2U9dH0pKSxoZShyLnJvdXRlLG8sbildKTtpZih2b2lkIDAhPT1lKXRocm93IGU7Yz10fWVsc2V7aWYoYXdhaXQgaGUoci5yb3V0ZSxvLG4pLGE9ci5yb3V0ZVtlXSwhYSl7aWYoImFjdGlvbiI9PT1lKXtsZXQgZT1uZXcgVVJMKHQudXJsKSxuPWUucGF0aG5hbWUrZS5zZWFyY2g7dGhyb3cgUGUoNDA1LHttZXRob2Q6dC5tZXRob2QscGF0aG5hbWU6bixyb3V0ZUlkOnIucm91dGUuaWR9KX1yZXR1cm57dHlwZTpkLmRhdGEscmVzdWx0OnZvaWQgMH19Yz1hd2FpdCBsKGEpfWVsc2V7aWYoIWEpe2xldCBlPW5ldyBVUkwodC51cmwpO3Rocm93IFBlKDQwNCx7cGF0aG5hbWU6ZS5wYXRobmFtZStlLnNlYXJjaH0pfWM9YXdhaXQgbChhKX1pKHZvaWQgMCE9PWMucmVzdWx0LCJZb3UgZGVmaW5lZCAiKygiYWN0aW9uIj09PWU/ImFuIGFjdGlvbiI6ImEgbG9hZGVyIikrJyBmb3Igcm91dGUgIicrci5yb3V0ZS5pZCsiXCIgYnV0IGRpZG4ndCByZXR1cm4gYW55dGhpbmcgZnJvbSB5b3VyIGAiK2UrImAgZnVuY3Rpb24uIFBsZWFzZSByZXR1cm4gYSB2YWx1ZSBvciBgbnVsbGAuIil9Y2F0Y2goZSl7cmV0dXJue3R5cGU6ZC5lcnJvcixyZXN1bHQ6ZX19ZmluYWxseXt1JiZ0LnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsdSl9cmV0dXJuIGN9KHQsbixlLHMsYyxyLHUpOlByb21pc2UucmVzb2x2ZSh7dHlwZTpkLmRhdGEscmVzdWx0OnZvaWQgMH0pKX0pfSkpLHJlcXVlc3Q6bixwYXJhbXM6YVswXS5wYXJhbXMsY29udGV4dDp1fSk7cmV0dXJuIGEuZm9yRWFjaCgoZT0+aShmLmhhcyhlLnJvdXRlLmlkKSwnYG1hdGNoLnJlc29sdmUoKWAgd2FzIG5vdCBjYWxsZWQgZm9yIHJvdXRlIGlkICInK2Uucm91dGUuaWQrJyIuIFlvdSBtdXN0IGNhbGwgYG1hdGNoLnJlc29sdmUoKWAgb24gZXZlcnkgbWF0Y2ggcGFzc2VkIHRvIGBkYXRhU3RyYXRlZ3lgIHRvIGVuc3VyZSBhbGwgcm91dGVzIGFyZSBwcm9wZXJseSBsb2FkZWQuJykpKSxwLmZpbHRlcigoKGUsdCk9PmwuaGFzKGFbdF0ucm91dGUuaWQpKSl9YXN5bmMgZnVuY3Rpb24gZ2UoZSl7bGV0e3Jlc3VsdDp0LHR5cGU6cixzdGF0dXM6bn09ZTtpZihMZSh0KSl7bGV0IGU7dHJ5e2xldCByPXQuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpO2U9ciYmL1xiYXBwbGljYXRpb25cL2pzb25cYi8udGVzdChyKT9udWxsPT10LmJvZHk/bnVsbDphd2FpdCB0Lmpzb24oKTphd2FpdCB0LnRleHQoKX1jYXRjaChlKXtyZXR1cm57dHlwZTpkLmVycm9yLGVycm9yOmV9fXJldHVybiByPT09ZC5lcnJvcj97dHlwZTpkLmVycm9yLGVycm9yOm5ldyBFcnJvclJlc3BvbnNlSW1wbCh0LnN0YXR1cyx0LnN0YXR1c1RleHQsZSksc3RhdHVzQ29kZTp0LnN0YXR1cyxoZWFkZXJzOnQuaGVhZGVyc306e3R5cGU6ZC5kYXRhLGRhdGE6ZSxzdGF0dXNDb2RlOnQuc3RhdHVzLGhlYWRlcnM6dC5oZWFkZXJzfX1yZXR1cm4gcj09PWQuZXJyb3I/e3R5cGU6ZC5lcnJvcixlcnJvcjp0LHN0YXR1c0NvZGU6cSh0KT90LnN0YXR1czpufTpEZSh0KT97dHlwZTpkLmRlZmVycmVkLGRlZmVycmVkRGF0YTp0LHN0YXR1c0NvZGU6bnVsbD09KG89dC5pbml0KT92b2lkIDA6by5zdGF0dXMsaGVhZGVyczoobnVsbD09KGk9dC5pbml0KT92b2lkIDA6aS5oZWFkZXJzKSYmbmV3IEhlYWRlcnModC5pbml0LmhlYWRlcnMpfTp7dHlwZTpkLmRhdGEsZGF0YTp0LHN0YXR1c0NvZGU6bn07dmFyIG8saX1mdW5jdGlvbiB2ZShlLHQscixuLG8sYSl7bGV0IHM9ZS5oZWFkZXJzLmdldCgiTG9jYXRpb24iKTtpZihpKHMsIlJlZGlyZWN0cyByZXR1cm5lZC90aHJvd24gZnJvbSBsb2FkZXJzL2FjdGlvbnMgbXVzdCBoYXZlIGEgTG9jYXRpb24gaGVhZGVyIiksIXJlLnRlc3Qocykpe2xldCBpPW4uc2xpY2UoMCxuLmZpbmRJbmRleCgoZT0+ZS5yb3V0ZS5pZD09PXIpKSsxKTtzPXNlKG5ldyBVUkwodC51cmwpLGksbywhMCxzLGEpLGUuaGVhZGVycy5zZXQoIkxvY2F0aW9uIixzKX1yZXR1cm4gZX1mdW5jdGlvbiBiZShlLHQscil7aWYocmUudGVzdChlKSl7bGV0IG49ZSxvPW4uc3RhcnRzV2l0aCgiLy8iKT9uZXcgVVJMKHQucHJvdG9jb2wrbik6bmV3IFVSTChuKSxpPW51bGwhPU0oby5wYXRobmFtZSxyKTtpZihvLm9yaWdpbj09PXQub3JpZ2luJiZpKXJldHVybiBvLnBhdGhuYW1lK28uc2VhcmNoK28uaGFzaH1yZXR1cm4gZX1mdW5jdGlvbiB3ZShlLHQscixuKXtsZXQgbz1lLmNyZWF0ZVVSTChOZSh0KSkudG9TdHJpbmcoKSxpPXtzaWduYWw6cn07aWYobiYmemUobi5mb3JtTWV0aG9kKSl7bGV0e2Zvcm1NZXRob2Q6ZSxmb3JtRW5jVHlwZTp0fT1uO2kubWV0aG9kPWUudG9VcHBlckNhc2UoKSwiYXBwbGljYXRpb24vanNvbiI9PT10PyhpLmhlYWRlcnM9bmV3IEhlYWRlcnMoeyJDb250ZW50LVR5cGUiOnR9KSxpLmJvZHk9SlNPTi5zdHJpbmdpZnkobi5qc29uKSk6InRleHQvcGxhaW4iPT09dD9pLmJvZHk9bi50ZXh0OiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiPT09dCYmbi5mb3JtRGF0YT9pLmJvZHk9U2Uobi5mb3JtRGF0YSk6aS5ib2R5PW4uZm9ybURhdGF9cmV0dXJuIG5ldyBSZXF1ZXN0KG8saSl9ZnVuY3Rpb24gU2UoZSl7bGV0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtcztmb3IobGV0W3Isbl1vZiBlLmVudHJpZXMoKSl0LmFwcGVuZChyLCJzdHJpbmciPT10eXBlb2Ygbj9uOm4ubmFtZSk7cmV0dXJuIHR9ZnVuY3Rpb24ga2UoZSl7bGV0IHQ9bmV3IEZvcm1EYXRhO2ZvcihsZXRbcixuXW9mIGUuZW50cmllcygpKXQuYXBwZW5kKHIsbik7cmV0dXJuIHR9ZnVuY3Rpb24geGUoZSx0LHIsbixvLGEpe2xldCBzLGM9e30sdT1udWxsLGw9ITEsZj17fSxkPW4mJkllKG5bMV0pP25bMV0uZXJyb3I6dm9pZCAwO3JldHVybiByLmZvckVhY2goKChyLG4pPT57bGV0IHA9dFtuXS5yb3V0ZS5pZDtpZihpKCFqZShyKSwiQ2Fubm90IGhhbmRsZSByZWRpcmVjdCByZXN1bHRzIGluIHByb2Nlc3NMb2FkZXJEYXRhIiksSWUocikpe2xldCB0PXIuZXJyb3I7aWYodm9pZCAwIT09ZCYmKHQ9ZCxkPXZvaWQgMCksdT11fHx7fSxhKXVbcF09dDtlbHNle2xldCByPVRlKGUscCk7bnVsbD09dVtyLnJvdXRlLmlkXSYmKHVbci5yb3V0ZS5pZF09dCl9Y1twXT12b2lkIDAsbHx8KGw9ITAscz1xKHIuZXJyb3IpP3IuZXJyb3Iuc3RhdHVzOjUwMCksci5oZWFkZXJzJiYoZltwXT1yLmhlYWRlcnMpfWVsc2UgRmUocik/KG8uc2V0KHAsci5kZWZlcnJlZERhdGEpLGNbcF09ci5kZWZlcnJlZERhdGEuZGF0YSxudWxsPT1yLnN0YXR1c0NvZGV8fDIwMD09PXIuc3RhdHVzQ29kZXx8bHx8KHM9ci5zdGF0dXNDb2RlKSxyLmhlYWRlcnMmJihmW3BdPXIuaGVhZGVycykpOihjW3BdPXIuZGF0YSxyLnN0YXR1c0NvZGUmJjIwMCE9PXIuc3RhdHVzQ29kZSYmIWwmJihzPXIuc3RhdHVzQ29kZSksci5oZWFkZXJzJiYoZltwXT1yLmhlYWRlcnMpKX0pKSx2b2lkIDAhPT1kJiZuJiYodT17W25bMF1dOmR9LGNbblswXV09dm9pZCAwKSx7bG9hZGVyRGF0YTpjLGVycm9yczp1LHN0YXR1c0NvZGU6c3x8MjAwLGxvYWRlckhlYWRlcnM6Zn19ZnVuY3Rpb24gRWUoZSx0LG4sbyxhLHMsYyx1KXtsZXR7bG9hZGVyRGF0YTpsLGVycm9yczpmfT14ZSh0LG4sbyxhLHUsITEpO2ZvcihsZXQgdD0wO3Q8cy5sZW5ndGg7dCsrKXtsZXR7a2V5Om4sbWF0Y2g6byxjb250cm9sbGVyOmF9PXNbdF07aSh2b2lkIDAhPT1jJiZ2b2lkIDAhPT1jW3RdLCJEaWQgbm90IGZpbmQgY29ycmVzcG9uZGluZyBmZXRjaGVyIHJlc3VsdCIpO2xldCB1PWNbdF07aWYoIWF8fCFhLnNpZ25hbC5hYm9ydGVkKWlmKEllKHUpKXtsZXQgdD1UZShlLm1hdGNoZXMsbnVsbD09bz92b2lkIDA6by5yb3V0ZS5pZCk7ZiYmZlt0LnJvdXRlLmlkXXx8KGY9cih7fSxmLHtbdC5yb3V0ZS5pZF06dS5lcnJvcn0pKSxlLmZldGNoZXJzLmRlbGV0ZShuKX1lbHNlIGlmKGplKHUpKWkoITEsIlVuaGFuZGxlZCBmZXRjaGVyIHJldmFsaWRhdGlvbiByZWRpcmVjdCIpO2Vsc2UgaWYoRmUodSkpaSghMSwiVW5oYW5kbGVkIGZldGNoZXIgZGVmZXJyZWQgZGF0YSIpO2Vsc2V7bGV0IHQ9WWUodS5kYXRhKTtlLmZldGNoZXJzLnNldChuLHQpfX1yZXR1cm57bG9hZGVyRGF0YTpsLGVycm9yczpmfX1mdW5jdGlvbiBDZShlLHQsbixvKXtsZXQgaT1yKHt9LHQpO2ZvcihsZXQgciBvZiBuKXtsZXQgbj1yLnJvdXRlLmlkO2lmKHQuaGFzT3duUHJvcGVydHkobik/dm9pZCAwIT09dFtuXSYmKGlbbl09dFtuXSk6dm9pZCAwIT09ZVtuXSYmci5yb3V0ZS5sb2FkZXImJihpW25dPWVbbl0pLG8mJm8uaGFzT3duUHJvcGVydHkobikpYnJlYWt9cmV0dXJuIGl9ZnVuY3Rpb24gQWUoZSl7cmV0dXJuIGU/SWUoZVsxXSk/e2FjdGlvbkRhdGE6e319OnthY3Rpb25EYXRhOntbZVswXV06ZVsxXS5kYXRhfX06e319ZnVuY3Rpb24gVGUoZSx0KXtyZXR1cm4odD9lLnNsaWNlKDAsZS5maW5kSW5kZXgoKGU9PmUucm91dGUuaWQ9PT10KSkrMSk6Wy4uLmVdKS5yZXZlcnNlKCkuZmluZCgoZT0+ITA9PT1lLnJvdXRlLmhhc0Vycm9yQm91bmRhcnkpKXx8ZVswXX1mdW5jdGlvbiBSZShlKXtsZXQgdD0xPT09ZS5sZW5ndGg/ZVswXTplLmZpbmQoKGU9PmUuaW5kZXh8fCFlLnBhdGh8fCIvIj09PWUucGF0aCkpfHx7aWQ6Il9fc2hpbS1lcnJvci1yb3V0ZV9fIn07cmV0dXJue21hdGNoZXM6W3twYXJhbXM6e30scGF0aG5hbWU6IiIscGF0aG5hbWVCYXNlOiIiLHJvdXRlOnR9XSxyb3V0ZTp0fX1mdW5jdGlvbiBQZShlLHQpe2xldHtwYXRobmFtZTpyLHJvdXRlSWQ6bixtZXRob2Q6byx0eXBlOmksbWVzc2FnZTphfT12b2lkIDA9PT10P3t9OnQscz0iVW5rbm93biBTZXJ2ZXIgRXJyb3IiLGM9IlVua25vd24gQHJlbWl4LXJ1bi9yb3V0ZXIgZXJyb3IiO3JldHVybiA0MDA9PT1lPyhzPSJCYWQgUmVxdWVzdCIsInJvdXRlLWRpc2NvdmVyeSI9PT1pP2M9J1VuYWJsZSB0byBtYXRjaCBVUkwgIicrcisnIiAtIHRoZSBgY2hpbGRyZW4oKWAgZnVuY3Rpb24gZm9yIHJvdXRlIGAnK24rImAgdGhyZXcgdGhlIGZvbGxvd2luZyBlcnJvcjpcbiIrYTpvJiZyJiZuP2M9IllvdSBtYWRlIGEgIitvKycgcmVxdWVzdCB0byAiJytyKyciIGJ1dCBkaWQgbm90IHByb3ZpZGUgYSBgbG9hZGVyYCBmb3Igcm91dGUgIicrbisnIiwgc28gdGhlcmUgaXMgbm8gd2F5IHRvIGhhbmRsZSB0aGUgcmVxdWVzdC4nOiJkZWZlci1hY3Rpb24iPT09aT9jPSJkZWZlcigpIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYWN0aW9ucyI6ImludmFsaWQtYm9keSI9PT1pJiYoYz0iVW5hYmxlIHRvIGVuY29kZSBzdWJtaXNzaW9uIGJvZHkiKSk6NDAzPT09ZT8ocz0iRm9yYmlkZGVuIixjPSdSb3V0ZSAiJytuKyciIGRvZXMgbm90IG1hdGNoIFVSTCAiJytyKyciJyk6NDA0PT09ZT8ocz0iTm90IEZvdW5kIixjPSdObyByb3V0ZSBtYXRjaGVzIFVSTCAiJytyKyciJyk6NDA1PT09ZSYmKHM9Ik1ldGhvZCBOb3QgQWxsb3dlZCIsbyYmciYmbj9jPSJZb3UgbWFkZSBhICIrby50b1VwcGVyQ2FzZSgpKycgcmVxdWVzdCB0byAiJytyKyciIGJ1dCBkaWQgbm90IHByb3ZpZGUgYW4gYGFjdGlvbmAgZm9yIHJvdXRlICInK24rJyIsIHNvIHRoZXJlIGlzIG5vIHdheSB0byBoYW5kbGUgdGhlIHJlcXVlc3QuJzpvJiYoYz0nSW52YWxpZCByZXF1ZXN0IG1ldGhvZCAiJytvLnRvVXBwZXJDYXNlKCkrJyInKSksbmV3IEVycm9yUmVzcG9uc2VJbXBsKGV8fDUwMCxzLG5ldyBFcnJvcihjKSwhMCl9ZnVuY3Rpb24gT2UoZSl7Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDt0LS0pe2xldCByPWVbdF07aWYoamUocikpcmV0dXJue3Jlc3VsdDpyLGlkeDp0fX19ZnVuY3Rpb24gTmUoZSl7cmV0dXJuIHUocih7fSwic3RyaW5nIj09dHlwZW9mIGU/bChlKTplLHtoYXNoOiIifSkpfWZ1bmN0aW9uIE1lKGUpe3JldHVybiBMZShlLnJlc3VsdCkmJlguaGFzKGUucmVzdWx0LnN0YXR1cyl9ZnVuY3Rpb24gRmUoZSl7cmV0dXJuIGUudHlwZT09PWQuZGVmZXJyZWR9ZnVuY3Rpb24gSWUoZSl7cmV0dXJuIGUudHlwZT09PWQuZXJyb3J9ZnVuY3Rpb24gamUoZSl7cmV0dXJuKGUmJmUudHlwZSk9PT1kLnJlZGlyZWN0fWZ1bmN0aW9uIERlKGUpe2xldCB0PWU7cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdCYmIm9iamVjdCI9PXR5cGVvZiB0LmRhdGEmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnN1YnNjcmliZSYmImZ1bmN0aW9uIj09dHlwZW9mIHQuY2FuY2VsJiYiZnVuY3Rpb24iPT10eXBlb2YgdC5yZXNvbHZlRGF0YX1mdW5jdGlvbiBMZShlKXtyZXR1cm4gbnVsbCE9ZSYmIm51bWJlciI9PXR5cGVvZiBlLnN0YXR1cyYmInN0cmluZyI9PXR5cGVvZiBlLnN0YXR1c1RleHQmJiJvYmplY3QiPT10eXBlb2YgZS5oZWFkZXJzJiZ2b2lkIDAhPT1lLmJvZHl9ZnVuY3Rpb24gVWUoZSl7cmV0dXJuIEsuaGFzKGUudG9Mb3dlckNhc2UoKSl9ZnVuY3Rpb24gemUoZSl7cmV0dXJuIFYuaGFzKGUudG9Mb3dlckNhc2UoKSl9YXN5bmMgZnVuY3Rpb24gQmUoZSx0LHIsbixvLGEpe2ZvcihsZXQgcz0wO3M8ci5sZW5ndGg7cysrKXtsZXQgYz1yW3NdLHU9dFtzXTtpZighdSljb250aW51ZTtsZXQgbD1lLmZpbmQoKGU9PmUucm91dGUuaWQ9PT11LnJvdXRlLmlkKSksZj1udWxsIT1sJiYhZmUobCx1KSYmdm9pZCAwIT09KGEmJmFbdS5yb3V0ZS5pZF0pO2lmKEZlKGMpJiYob3x8Zikpe2xldCBlPW5bc107aShlLCJFeHBlY3RlZCBhbiBBYm9ydFNpZ25hbCBmb3IgcmV2YWxpZGF0aW5nIGZldGNoZXIgZGVmZXJyZWQgcmVzdWx0IiksYXdhaXQgSGUoYyxlLG8pLnRoZW4oKGU9PntlJiYocltzXT1lfHxyW3NdKX0pKX19fWFzeW5jIGZ1bmN0aW9uIEhlKGUsdCxyKXtpZih2b2lkIDA9PT1yJiYocj0hMSksIWF3YWl0IGUuZGVmZXJyZWREYXRhLnJlc29sdmVEYXRhKHQpKXtpZihyKXRyeXtyZXR1cm57dHlwZTpkLmRhdGEsZGF0YTplLmRlZmVycmVkRGF0YS51bndyYXBwZWREYXRhfX1jYXRjaChlKXtyZXR1cm57dHlwZTpkLmVycm9yLGVycm9yOmV9fXJldHVybnt0eXBlOmQuZGF0YSxkYXRhOmUuZGVmZXJyZWREYXRhLmRhdGF9fX1mdW5jdGlvbiBXZShlKXtyZXR1cm4gbmV3IFVSTFNlYXJjaFBhcmFtcyhlKS5nZXRBbGwoImluZGV4Iikuc29tZSgoZT0+IiI9PT1lKSl9ZnVuY3Rpb24gJGUoZSx0KXtsZXQgcj0ic3RyaW5nIj09dHlwZW9mIHQ/bCh0KS5zZWFyY2g6dC5zZWFyY2g7aWYoZVtlLmxlbmd0aC0xXS5yb3V0ZS5pbmRleCYmV2Uocnx8IiIpKXJldHVybiBlW2UubGVuZ3RoLTFdO2xldCBuPWooZSk7cmV0dXJuIG5bbi5sZW5ndGgtMV19ZnVuY3Rpb24gcWUoZSl7bGV0e2Zvcm1NZXRob2Q6dCxmb3JtQWN0aW9uOnIsZm9ybUVuY1R5cGU6bix0ZXh0Om8sZm9ybURhdGE6aSxqc29uOmF9PWU7aWYodCYmciYmbilyZXR1cm4gbnVsbCE9bz97Zm9ybU1ldGhvZDp0LGZvcm1BY3Rpb246cixmb3JtRW5jVHlwZTpuLGZvcm1EYXRhOnZvaWQgMCxqc29uOnZvaWQgMCx0ZXh0Om99Om51bGwhPWk/e2Zvcm1NZXRob2Q6dCxmb3JtQWN0aW9uOnIsZm9ybUVuY1R5cGU6bixmb3JtRGF0YTppLGpzb246dm9pZCAwLHRleHQ6dm9pZCAwfTp2b2lkIDAhPT1hP3tmb3JtTWV0aG9kOnQsZm9ybUFjdGlvbjpyLGZvcm1FbmNUeXBlOm4sZm9ybURhdGE6dm9pZCAwLGpzb246YSx0ZXh0OnZvaWQgMH06dm9pZCAwfWZ1bmN0aW9uIEdlKGUsdCl7aWYodCl7cmV0dXJue3N0YXRlOiJsb2FkaW5nIixsb2NhdGlvbjplLGZvcm1NZXRob2Q6dC5mb3JtTWV0aG9kLGZvcm1BY3Rpb246dC5mb3JtQWN0aW9uLGZvcm1FbmNUeXBlOnQuZm9ybUVuY1R5cGUsZm9ybURhdGE6dC5mb3JtRGF0YSxqc29uOnQuanNvbix0ZXh0OnQudGV4dH19cmV0dXJue3N0YXRlOiJsb2FkaW5nIixsb2NhdGlvbjplLGZvcm1NZXRob2Q6dm9pZCAwLGZvcm1BY3Rpb246dm9pZCAwLGZvcm1FbmNUeXBlOnZvaWQgMCxmb3JtRGF0YTp2b2lkIDAsanNvbjp2b2lkIDAsdGV4dDp2b2lkIDB9fWZ1bmN0aW9uIFZlKGUsdCl7aWYoZSl7cmV0dXJue3N0YXRlOiJsb2FkaW5nIixmb3JtTWV0aG9kOmUuZm9ybU1ldGhvZCxmb3JtQWN0aW9uOmUuZm9ybUFjdGlvbixmb3JtRW5jVHlwZTplLmZvcm1FbmNUeXBlLGZvcm1EYXRhOmUuZm9ybURhdGEsanNvbjplLmpzb24sdGV4dDplLnRleHQsZGF0YTp0fX1yZXR1cm57c3RhdGU6ImxvYWRpbmciLGZvcm1NZXRob2Q6dm9pZCAwLGZvcm1BY3Rpb246dm9pZCAwLGZvcm1FbmNUeXBlOnZvaWQgMCxmb3JtRGF0YTp2b2lkIDAsanNvbjp2b2lkIDAsdGV4dDp2b2lkIDAsZGF0YTp0fX1mdW5jdGlvbiBZZShlKXtyZXR1cm57c3RhdGU6ImlkbGUiLGZvcm1NZXRob2Q6dm9pZCAwLGZvcm1BY3Rpb246dm9pZCAwLGZvcm1FbmNUeXBlOnZvaWQgMCxmb3JtRGF0YTp2b2lkIDAsanNvbjp2b2lkIDAsdGV4dDp2b2lkIDAsZGF0YTplfX10LkFib3J0ZWREZWZlcnJlZEVycm9yPUFib3J0ZWREZWZlcnJlZEVycm9yLHQuQWN0aW9uPW4sdC5JRExFX0JMT0NLRVI9dGUsdC5JRExFX0ZFVENIRVI9ZWUsdC5JRExFX05BVklHQVRJT049USx0LlVOU0FGRV9ERUZFUlJFRF9TWU1CT0w9aWUsdC5VTlNBRkVfRGVmZXJyZWREYXRhPURlZmVycmVkRGF0YSx0LlVOU0FGRV9FcnJvclJlc3BvbnNlSW1wbD1FcnJvclJlc3BvbnNlSW1wbCx0LlVOU0FGRV9jb252ZXJ0Um91dGVNYXRjaFRvVWlNYXRjaD15LHQuVU5TQUZFX2NvbnZlcnRSb3V0ZXNUb0RhdGFSb3V0ZXM9Xyx0LlVOU0FGRV9nZXRSZXNvbHZlVG9NYXRjaGVzPUQsdC5VTlNBRkVfaW52YXJpYW50PWksdC5VTlNBRkVfd2FybmluZz1hLHQuY3JlYXRlQnJvd3Nlckhpc3Rvcnk9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSxmKChmdW5jdGlvbihlLHQpe2xldHtwYXRobmFtZTpyLHNlYXJjaDpuLGhhc2g6b309ZS5sb2NhdGlvbjtyZXR1cm4gYygiIix7cGF0aG5hbWU6cixzZWFyY2g6bixoYXNoOm99LHQuc3RhdGUmJnQuc3RhdGUudXNyfHxudWxsLHQuc3RhdGUmJnQuc3RhdGUua2V5fHwiZGVmYXVsdCIpfSksKGZ1bmN0aW9uKGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P3Q6dSh0KX0pLG51bGwsZSl9LHQuY3JlYXRlSGFzaEhpc3Rvcnk9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSxmKChmdW5jdGlvbihlLHQpe2xldHtwYXRobmFtZTpyPSIvIixzZWFyY2g6bj0iIixoYXNoOm89IiJ9PWwoZS5sb2NhdGlvbi5oYXNoLnN1YnN0cigxKSk7cmV0dXJuIHIuc3RhcnRzV2l0aCgiLyIpfHxyLnN0YXJ0c1dpdGgoIi4iKXx8KHI9Ii8iK3IpLGMoIiIse3BhdGhuYW1lOnIsc2VhcmNoOm4saGFzaDpvfSx0LnN0YXRlJiZ0LnN0YXRlLnVzcnx8bnVsbCx0LnN0YXRlJiZ0LnN0YXRlLmtleXx8ImRlZmF1bHQiKX0pLChmdW5jdGlvbihlLHQpe2xldCByPWUuZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYmFzZSIpLG49IiI7aWYociYmci5nZXRBdHRyaWJ1dGUoImhyZWYiKSl7bGV0IHQ9ZS5sb2NhdGlvbi5ocmVmLHI9dC5pbmRleE9mKCIjIik7bj0tMT09PXI/dDp0LnNsaWNlKDAscil9cmV0dXJuIG4rIiMiKygic3RyaW5nIj09dHlwZW9mIHQ/dDp1KHQpKX0pLChmdW5jdGlvbihlLHQpe2EoIi8iPT09ZS5wYXRobmFtZS5jaGFyQXQoMCksInJlbGF0aXZlIHBhdGhuYW1lcyBhcmUgbm90IHN1cHBvcnRlZCBpbiBoYXNoIGhpc3RvcnkucHVzaCgiK0pTT04uc3RyaW5naWZ5KHQpKyIpIil9KSxlKX0sdC5jcmVhdGVNZW1vcnlIaXN0b3J5PWZ1bmN0aW9uKGUpe3ZvaWQgMD09PWUmJihlPXt9KTtsZXQgdCx7aW5pdGlhbEVudHJpZXM6cj1bIi8iXSxpbml0aWFsSW5kZXg6byx2NUNvbXBhdDppPSExfT1lO3Q9ci5tYXAoKChlLHQpPT5oKGUsInN0cmluZyI9PXR5cGVvZiBlP251bGw6ZS5zdGF0ZSwwPT09dD8iZGVmYXVsdCI6dm9pZCAwKSkpO2xldCBzPXAobnVsbD09bz90Lmxlbmd0aC0xOm8pLGY9bi5Qb3AsZD1udWxsO2Z1bmN0aW9uIHAoZSl7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGUsMCksdC5sZW5ndGgtMSl9ZnVuY3Rpb24gXygpe3JldHVybiB0W3NdfWZ1bmN0aW9uIGgoZSxyLG4pe3ZvaWQgMD09PXImJihyPW51bGwpO2xldCBvPWModD9fKCkucGF0aG5hbWU6Ii8iLGUscixuKTtyZXR1cm4gYSgiLyI9PT1vLnBhdGhuYW1lLmNoYXJBdCgwKSwicmVsYXRpdmUgcGF0aG5hbWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIG1lbW9yeSBoaXN0b3J5OiAiK0pTT04uc3RyaW5naWZ5KGUpKSxvfWZ1bmN0aW9uIG0oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP2U6dShlKX1yZXR1cm57Z2V0IGluZGV4KCl7cmV0dXJuIHN9LGdldCBhY3Rpb24oKXtyZXR1cm4gZn0sZ2V0IGxvY2F0aW9uKCl7cmV0dXJuIF8oKX0sY3JlYXRlSHJlZjptLGNyZWF0ZVVSTChlKXtyZXR1cm4gbmV3IFVSTChtKGUpLCJodHRwOi8vbG9jYWxob3N0Iil9LGVuY29kZUxvY2F0aW9uKGUpe2xldCB0PSJzdHJpbmciPT10eXBlb2YgZT9sKGUpOmU7cmV0dXJue3BhdGhuYW1lOnQucGF0aG5hbWV8fCIiLHNlYXJjaDp0LnNlYXJjaHx8IiIsaGFzaDp0Lmhhc2h8fCIifX0scHVzaChlLHIpe2Y9bi5QdXNoO2xldCBvPWgoZSxyKTtzKz0xLHQuc3BsaWNlKHMsdC5sZW5ndGgsbyksaSYmZCYmZCh7YWN0aW9uOmYsbG9jYXRpb246byxkZWx0YToxfSl9LHJlcGxhY2UoZSxyKXtmPW4uUmVwbGFjZTtsZXQgbz1oKGUscik7dFtzXT1vLGkmJmQmJmQoe2FjdGlvbjpmLGxvY2F0aW9uOm8sZGVsdGE6MH0pfSxnbyhlKXtmPW4uUG9wO2xldCByPXAocytlKSxvPXRbcl07cz1yLGQmJmQoe2FjdGlvbjpmLGxvY2F0aW9uOm8sZGVsdGE6ZX0pfSxsaXN0ZW4oZSl7cmV0dXJuIGQ9ZSwoKT0+e2Q9bnVsbH19fX0sdC5jcmVhdGVQYXRoPXUsdC5jcmVhdGVSb3V0ZXI9ZnVuY3Rpb24oZSl7Y29uc3QgdD1lLndpbmRvdz9lLndpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dm9pZCAwLG89dm9pZCAwIT09dCYmdm9pZCAwIT09dC5kb2N1bWVudCYmdm9pZCAwIT09dC5kb2N1bWVudC5jcmVhdGVFbGVtZW50LHM9IW87bGV0IHU7aWYoaShlLnJvdXRlcy5sZW5ndGg+MCwiWW91IG11c3QgcHJvdmlkZSBhIG5vbi1lbXB0eSByb3V0ZXMgYXJyYXkgdG8gY3JlYXRlUm91dGVyIiksZS5tYXBSb3V0ZVByb3BlcnRpZXMpdT1lLm1hcFJvdXRlUHJvcGVydGllcztlbHNlIGlmKGUuZGV0ZWN0RXJyb3JCb3VuZGFyeSl7bGV0IHQ9ZS5kZXRlY3RFcnJvckJvdW5kYXJ5O3U9ZT0+KHtoYXNFcnJvckJvdW5kYXJ5OnQoZSl9KX1lbHNlIHU9bmU7bGV0IGwsZixwLGc9e30sdj1fKGUucm91dGVzLHUsdm9pZCAwLGcpLGI9ZS5iYXNlbmFtZXx8Ii8iLHc9ZS51bnN0YWJsZV9kYXRhU3RyYXRlZ3l8fG1lLFM9ZS51bnN0YWJsZV9wYXRjaFJvdXRlc09uTWlzcyxrPXIoe3Y3X2ZldGNoZXJQZXJzaXN0OiExLHY3X25vcm1hbGl6ZUZvcm1NZXRob2Q6ITEsdjdfcGFydGlhbEh5ZHJhdGlvbjohMSx2N19wcmVwZW5kQmFzZW5hbWU6ITEsdjdfcmVsYXRpdmVTcGxhdFBhdGg6ITEsdW5zdGFibGVfc2tpcEFjdGlvbkVycm9yUmV2YWxpZGF0aW9uOiExfSxlLmZ1dHVyZSkseD1udWxsLEU9bmV3IFNldCxBPW51bGwsVD1udWxsLFI9bnVsbCxQPW51bGwhPWUuaHlkcmF0aW9uRGF0YSxPPWgodixlLmhpc3RvcnkubG9jYXRpb24sYiksRj1udWxsO2lmKG51bGw9PU8mJiFTKXtsZXQgdD1QZSg0MDQse3BhdGhuYW1lOmUuaGlzdG9yeS5sb2NhdGlvbi5wYXRobmFtZX0pLHttYXRjaGVzOnIscm91dGU6bn09UmUodik7Tz1yLEY9e1tuLmlkXTp0fX1pZihPKWlmKE8uc29tZSgoZT0+ZS5yb3V0ZS5sYXp5KSkpZj0hMTtlbHNlIGlmKE8uc29tZSgoZT0+ZS5yb3V0ZS5sb2FkZXIpKSlpZihrLnY3X3BhcnRpYWxIeWRyYXRpb24pe2xldCB0PWUuaHlkcmF0aW9uRGF0YT9lLmh5ZHJhdGlvbkRhdGEubG9hZGVyRGF0YTpudWxsLHI9ZS5oeWRyYXRpb25EYXRhP2UuaHlkcmF0aW9uRGF0YS5lcnJvcnM6bnVsbCxuPWU9PiFlLnJvdXRlLmxvYWRlcnx8KCJmdW5jdGlvbiIhPXR5cGVvZiBlLnJvdXRlLmxvYWRlcnx8ITAhPT1lLnJvdXRlLmxvYWRlci5oeWRyYXRlKSYmKHQmJnZvaWQgMCE9PXRbZS5yb3V0ZS5pZF18fHImJnZvaWQgMCE9PXJbZS5yb3V0ZS5pZF0pO2lmKHIpe2xldCBlPU8uZmluZEluZGV4KChlPT52b2lkIDAhPT1yW2Uucm91dGUuaWRdKSk7Zj1PLnNsaWNlKDAsZSsxKS5ldmVyeShuKX1lbHNlIGY9Ty5ldmVyeShuKX1lbHNlIGY9bnVsbCE9ZS5oeWRyYXRpb25EYXRhO2Vsc2UgZj0hMDtlbHNlIGY9ITEsTz1bXTtsZXQgSSxqPXtoaXN0b3J5QWN0aW9uOmUuaGlzdG9yeS5hY3Rpb24sbG9jYXRpb246ZS5oaXN0b3J5LmxvY2F0aW9uLG1hdGNoZXM6Tyxpbml0aWFsaXplZDpmLG5hdmlnYXRpb246USxyZXN0b3JlU2Nyb2xsUG9zaXRpb246bnVsbD09ZS5oeWRyYXRpb25EYXRhJiZudWxsLHByZXZlbnRTY3JvbGxSZXNldDohMSxyZXZhbGlkYXRpb246ImlkbGUiLGxvYWRlckRhdGE6ZS5oeWRyYXRpb25EYXRhJiZlLmh5ZHJhdGlvbkRhdGEubG9hZGVyRGF0YXx8e30sYWN0aW9uRGF0YTplLmh5ZHJhdGlvbkRhdGEmJmUuaHlkcmF0aW9uRGF0YS5hY3Rpb25EYXRhfHxudWxsLGVycm9yczplLmh5ZHJhdGlvbkRhdGEmJmUuaHlkcmF0aW9uRGF0YS5lcnJvcnN8fEYsZmV0Y2hlcnM6bmV3IE1hcCxibG9ja2VyczpuZXcgTWFwfSxEPW4uUG9wLEw9ITEsVT0hMSx6PW5ldyBNYXAsQj1udWxsLEg9ITEsVz0hMSwkPVtdLEc9W10sVj1uZXcgTWFwLFk9MCxLPS0xLFg9bmV3IE1hcCxpZT1uZXcgU2V0LGFlPW5ldyBNYXAsdWU9bmV3IE1hcCxmZT1uZXcgU2V0LGRlPW5ldyBNYXAsaGU9bmV3IE1hcCxTZT1uZXcgTWFwLGtlPSExO2Z1bmN0aW9uIHhlKGUsdCl7dm9pZCAwPT09dCYmKHQ9e30pLGo9cih7fSxqLGUpO2xldCBuPVtdLG89W107ay52N19mZXRjaGVyUGVyc2lzdCYmai5mZXRjaGVycy5mb3JFYWNoKCgoZSx0KT0+eyJpZGxlIj09PWUuc3RhdGUmJihmZS5oYXModCk/by5wdXNoKHQpOm4ucHVzaCh0KSl9KSksWy4uLkVdLmZvckVhY2goKGU9PmUoaix7ZGVsZXRlZEZldGNoZXJzOm8sdW5zdGFibGVfdmlld1RyYW5zaXRpb25PcHRzOnQudmlld1RyYW5zaXRpb25PcHRzLHVuc3RhYmxlX2ZsdXNoU3luYzohMD09PXQuZmx1c2hTeW5jfSkpKSxrLnY3X2ZldGNoZXJQZXJzaXN0JiYobi5mb3JFYWNoKChlPT5qLmZldGNoZXJzLmRlbGV0ZShlKSkpLG8uZm9yRWFjaCgoZT0+ZXQoZSkpKSl9ZnVuY3Rpb24gTmUodCxvLGkpe3ZhciBhLHM7bGV0IGMse2ZsdXNoU3luYzp1fT12b2lkIDA9PT1pP3t9OmksZj1udWxsIT1qLmFjdGlvbkRhdGEmJm51bGwhPWoubmF2aWdhdGlvbi5mb3JtTWV0aG9kJiZ6ZShqLm5hdmlnYXRpb24uZm9ybU1ldGhvZCkmJiJsb2FkaW5nIj09PWoubmF2aWdhdGlvbi5zdGF0ZSYmITAhPT0obnVsbD09KGE9dC5zdGF0ZSk/dm9pZCAwOmEuX2lzUmVkaXJlY3QpO2M9by5hY3Rpb25EYXRhP09iamVjdC5rZXlzKG8uYWN0aW9uRGF0YSkubGVuZ3RoPjA/by5hY3Rpb25EYXRhOm51bGw6Zj9qLmFjdGlvbkRhdGE6bnVsbDtsZXQgZD1vLmxvYWRlckRhdGE/Q2Uoai5sb2FkZXJEYXRhLG8ubG9hZGVyRGF0YSxvLm1hdGNoZXN8fFtdLG8uZXJyb3JzKTpqLmxvYWRlckRhdGEscD1qLmJsb2NrZXJzO3Auc2l6ZT4wJiYocD1uZXcgTWFwKHApLHAuZm9yRWFjaCgoKGUsdCk9PnAuc2V0KHQsdGUpKSkpO2xldCBfLGg9ITA9PT1MfHxudWxsIT1qLm5hdmlnYXRpb24uZm9ybU1ldGhvZCYmemUoai5uYXZpZ2F0aW9uLmZvcm1NZXRob2QpJiYhMCE9PShudWxsPT0ocz10LnN0YXRlKT92b2lkIDA6cy5faXNSZWRpcmVjdCk7aWYobCYmKHY9bCxsPXZvaWQgMCksSHx8RD09PW4uUG9wfHwoRD09PW4uUHVzaD9lLmhpc3RvcnkucHVzaCh0LHQuc3RhdGUpOkQ9PT1uLlJlcGxhY2UmJmUuaGlzdG9yeS5yZXBsYWNlKHQsdC5zdGF0ZSkpLEQ9PT1uLlBvcCl7bGV0IGU9ei5nZXQoai5sb2NhdGlvbi5wYXRobmFtZSk7ZSYmZS5oYXModC5wYXRobmFtZSk/Xz17Y3VycmVudExvY2F0aW9uOmoubG9jYXRpb24sbmV4dExvY2F0aW9uOnR9OnouaGFzKHQucGF0aG5hbWUpJiYoXz17Y3VycmVudExvY2F0aW9uOnQsbmV4dExvY2F0aW9uOmoubG9jYXRpb259KX1lbHNlIGlmKFUpe2xldCBlPXouZ2V0KGoubG9jYXRpb24ucGF0aG5hbWUpO2U/ZS5hZGQodC5wYXRobmFtZSk6KGU9bmV3IFNldChbdC5wYXRobmFtZV0pLHouc2V0KGoubG9jYXRpb24ucGF0aG5hbWUsZSkpLF89e2N1cnJlbnRMb2NhdGlvbjpqLmxvY2F0aW9uLG5leHRMb2NhdGlvbjp0fX14ZShyKHt9LG8se2FjdGlvbkRhdGE6Yyxsb2FkZXJEYXRhOmQsaGlzdG9yeUFjdGlvbjpELGxvY2F0aW9uOnQsaW5pdGlhbGl6ZWQ6ITAsbmF2aWdhdGlvbjpRLHJldmFsaWRhdGlvbjoiaWRsZSIscmVzdG9yZVNjcm9sbFBvc2l0aW9uOmR0KHQsby5tYXRjaGVzfHxqLm1hdGNoZXMpLHByZXZlbnRTY3JvbGxSZXNldDpoLGJsb2NrZXJzOnB9KSx7dmlld1RyYW5zaXRpb25PcHRzOl8sZmx1c2hTeW5jOiEwPT09dX0pLEQ9bi5Qb3AsTD0hMSxVPSExLEg9ITEsVz0hMSwkPVtdLEc9W119YXN5bmMgZnVuY3Rpb24gRGUodCxvLGkpe0kmJkkuYWJvcnQoKSxJPW51bGwsRD10LEg9ITA9PT0oaSYmaS5zdGFydFVuaW50ZXJydXB0ZWRSZXZhbGlkYXRpb24pLGZ1bmN0aW9uKGUsdCl7aWYoQSYmUil7bGV0IHI9ZnQoZSx0KTtBW3JdPVIoKX19KGoubG9jYXRpb24sai5tYXRjaGVzKSxMPSEwPT09KGkmJmkucHJldmVudFNjcm9sbFJlc2V0KSxVPSEwPT09KGkmJmkuZW5hYmxlVmlld1RyYW5zaXRpb24pO2xldCBhPWx8fHYscz1pJiZpLm92ZXJyaWRlTmF2aWdhdGlvbixjPWgoYSxvLGIpLHU9ITA9PT0oaSYmaS5mbHVzaFN5bmMpLGY9cHQoYyxhLG8ucGF0aG5hbWUpO2lmKGYuYWN0aXZlJiZmLm1hdGNoZXMmJihjPWYubWF0Y2hlcyksIWMpe2xldHtlcnJvcjplLG5vdEZvdW5kTWF0Y2hlczp0LHJvdXRlOnJ9PWN0KG8ucGF0aG5hbWUpO3JldHVybiB2b2lkIE5lKG8se21hdGNoZXM6dCxsb2FkZXJEYXRhOnt9LGVycm9yczp7W3IuaWRdOmV9fSx7Zmx1c2hTeW5jOnV9KX1pZihqLmluaXRpYWxpemVkJiYhVyYmZnVuY3Rpb24oZSx0KXtpZihlLnBhdGhuYW1lIT09dC5wYXRobmFtZXx8ZS5zZWFyY2ghPT10LnNlYXJjaClyZXR1cm4hMTtpZigiIj09PWUuaGFzaClyZXR1cm4iIiE9PXQuaGFzaDtpZihlLmhhc2g9PT10Lmhhc2gpcmV0dXJuITA7aWYoIiIhPT10Lmhhc2gpcmV0dXJuITA7cmV0dXJuITF9KGoubG9jYXRpb24sbykmJiEoaSYmaS5zdWJtaXNzaW9uJiZ6ZShpLnN1Ym1pc3Npb24uZm9ybU1ldGhvZCkpKXJldHVybiB2b2lkIE5lKG8se21hdGNoZXM6Y30se2ZsdXNoU3luYzp1fSk7ST1uZXcgQWJvcnRDb250cm9sbGVyO2xldCBwLF89d2UoZS5oaXN0b3J5LG8sSS5zaWduYWwsaSYmaS5zdWJtaXNzaW9uKTtpZihpJiZpLnBlbmRpbmdFcnJvcilwPVtUZShjKS5yb3V0ZS5pZCx7dHlwZTpkLmVycm9yLGVycm9yOmkucGVuZGluZ0Vycm9yfV07ZWxzZSBpZihpJiZpLnN1Ym1pc3Npb24mJnplKGkuc3VibWlzc2lvbi5mb3JtTWV0aG9kKSl7bGV0IHQ9YXdhaXQgYXN5bmMgZnVuY3Rpb24oZSx0LHIsbyxpLGEpe3ZvaWQgMD09PWEmJihhPXt9KTtKZSgpO2xldCBzLGM9ZnVuY3Rpb24oZSx0KXtsZXQgcj17c3RhdGU6InN1Ym1pdHRpbmciLGxvY2F0aW9uOmUsZm9ybU1ldGhvZDp0LmZvcm1NZXRob2QsZm9ybUFjdGlvbjp0LmZvcm1BY3Rpb24sZm9ybUVuY1R5cGU6dC5mb3JtRW5jVHlwZSxmb3JtRGF0YTp0LmZvcm1EYXRhLGpzb246dC5qc29uLHRleHQ6dC50ZXh0fTtyZXR1cm4gcn0odCxyKTtpZih4ZSh7bmF2aWdhdGlvbjpjfSx7Zmx1c2hTeW5jOiEwPT09YS5mbHVzaFN5bmN9KSxpKXtsZXQgcj1hd2FpdCBfdChvLHQucGF0aG5hbWUsZS5zaWduYWwpO2lmKCJhYm9ydGVkIj09PXIudHlwZSlyZXR1cm57c2hvcnRDaXJjdWl0ZWQ6ITB9O2lmKCJlcnJvciI9PT1yLnR5cGUpe2xldHtlcnJvcjplLG5vdEZvdW5kTWF0Y2hlczpuLHJvdXRlOm99PXV0KHQucGF0aG5hbWUscik7cmV0dXJue21hdGNoZXM6bixwZW5kaW5nQWN0aW9uUmVzdWx0OltvLmlkLHt0eXBlOmQuZXJyb3IsZXJyb3I6ZX1dfX1pZighci5tYXRjaGVzKXtsZXR7bm90Rm91bmRNYXRjaGVzOmUsZXJyb3I6cixyb3V0ZTpufT1jdCh0LnBhdGhuYW1lKTtyZXR1cm57bWF0Y2hlczplLHBlbmRpbmdBY3Rpb25SZXN1bHQ6W24uaWQse3R5cGU6ZC5lcnJvcixlcnJvcjpyfV19fW89ci5tYXRjaGVzfWxldCB1PSRlKG8sdCk7aWYodS5yb3V0ZS5hY3Rpb258fHUucm91dGUubGF6eSl7aWYocz0oYXdhaXQgV2UoImFjdGlvbiIsZSxbdV0sbykpWzBdLGUuc2lnbmFsLmFib3J0ZWQpcmV0dXJue3Nob3J0Q2lyY3VpdGVkOiEwfX1lbHNlIHM9e3R5cGU6ZC5lcnJvcixlcnJvcjpQZSg0MDUse21ldGhvZDplLm1ldGhvZCxwYXRobmFtZTp0LnBhdGhuYW1lLHJvdXRlSWQ6dS5yb3V0ZS5pZH0pfTtpZihqZShzKSl7bGV0IHQ7aWYoYSYmbnVsbCE9YS5yZXBsYWNlKXQ9YS5yZXBsYWNlO2Vsc2V7dD1iZShzLnJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJMb2NhdGlvbiIpLG5ldyBVUkwoZS51cmwpLGIpPT09ai5sb2NhdGlvbi5wYXRobmFtZStqLmxvY2F0aW9uLnNlYXJjaH1yZXR1cm4gYXdhaXQgVWUoZSxzLHtzdWJtaXNzaW9uOnIscmVwbGFjZTp0fSkse3Nob3J0Q2lyY3VpdGVkOiEwfX1pZihGZShzKSl0aHJvdyBQZSg0MDAse3R5cGU6ImRlZmVyLWFjdGlvbiJ9KTtpZihJZShzKSl7bGV0IGU9VGUobyx1LnJvdXRlLmlkKTtyZXR1cm4hMCE9PShhJiZhLnJlcGxhY2UpJiYoRD1uLlB1c2gpLHttYXRjaGVzOm8scGVuZGluZ0FjdGlvblJlc3VsdDpbZS5yb3V0ZS5pZCxzXX19cmV0dXJue21hdGNoZXM6byxwZW5kaW5nQWN0aW9uUmVzdWx0Olt1LnJvdXRlLmlkLHNdfX0oXyxvLGkuc3VibWlzc2lvbixjLGYuYWN0aXZlLHtyZXBsYWNlOmkucmVwbGFjZSxmbHVzaFN5bmM6dX0pO2lmKHQuc2hvcnRDaXJjdWl0ZWQpcmV0dXJuO2lmKHQucGVuZGluZ0FjdGlvblJlc3VsdCl7bGV0W2Uscl09dC5wZW5kaW5nQWN0aW9uUmVzdWx0O2lmKEllKHIpJiZxKHIuZXJyb3IpJiY0MDQ9PT1yLmVycm9yLnN0YXR1cylyZXR1cm4gST1udWxsLHZvaWQgTmUobyx7bWF0Y2hlczp0Lm1hdGNoZXMsbG9hZGVyRGF0YTp7fSxlcnJvcnM6e1tlXTpyLmVycm9yfX0pfWM9dC5tYXRjaGVzfHxjLHA9dC5wZW5kaW5nQWN0aW9uUmVzdWx0LHM9R2UobyxpLnN1Ym1pc3Npb24pLHU9ITEsZi5hY3RpdmU9ITEsXz13ZShlLmhpc3RvcnksXy51cmwsXy5zaWduYWwpfWxldHtzaG9ydENpcmN1aXRlZDptLG1hdGNoZXM6eSxsb2FkZXJEYXRhOmcsZXJyb3JzOnd9PWF3YWl0IGFzeW5jIGZ1bmN0aW9uKHQsbixvLGksYSxzLGMsdSxmLGQscCl7bGV0IF89YXx8R2UobixzKSxoPXN8fGN8fHFlKF8pLG09IShIfHxrLnY3X3BhcnRpYWxIeWRyYXRpb24mJmYpO2lmKGkpe2lmKG0pe2xldCBlPUxlKHApO3hlKHIoe25hdmlnYXRpb246X30sdm9pZCAwIT09ZT97YWN0aW9uRGF0YTplfTp7fSkse2ZsdXNoU3luYzpkfSl9bGV0IGU9YXdhaXQgX3QobyxuLnBhdGhuYW1lLHQuc2lnbmFsKTtpZigiYWJvcnRlZCI9PT1lLnR5cGUpcmV0dXJue3Nob3J0Q2lyY3VpdGVkOiEwfTtpZigiZXJyb3IiPT09ZS50eXBlKXtsZXR7ZXJyb3I6dCxub3RGb3VuZE1hdGNoZXM6cixyb3V0ZTpvfT11dChuLnBhdGhuYW1lLGUpO3JldHVybnttYXRjaGVzOnIsbG9hZGVyRGF0YTp7fSxlcnJvcnM6e1tvLmlkXTp0fX19aWYoIWUubWF0Y2hlcyl7bGV0e2Vycm9yOmUsbm90Rm91bmRNYXRjaGVzOnQscm91dGU6cn09Y3Qobi5wYXRobmFtZSk7cmV0dXJue21hdGNoZXM6dCxsb2FkZXJEYXRhOnt9LGVycm9yczp7W3IuaWRdOmV9fX1vPWUubWF0Y2hlc31sZXQgeT1sfHx2LFtnLHddPWxlKGUuaGlzdG9yeSxqLG8saCxuLGsudjdfcGFydGlhbEh5ZHJhdGlvbiYmITA9PT1mLGsudW5zdGFibGVfc2tpcEFjdGlvbkVycm9yUmV2YWxpZGF0aW9uLFcsJCxHLGZlLGFlLGllLHksYixwKTtpZihsdCgoZT0+IShvJiZvLnNvbWUoKHQ9PnQucm91dGUuaWQ9PT1lKSkpfHxnJiZnLnNvbWUoKHQ9PnQucm91dGUuaWQ9PT1lKSkpKSxLPSsrWSwwPT09Zy5sZW5ndGgmJjA9PT13Lmxlbmd0aCl7bGV0IGU9bnQoKTtyZXR1cm4gTmUobixyKHttYXRjaGVzOm8sbG9hZGVyRGF0YTp7fSxlcnJvcnM6cCYmSWUocFsxXSk/e1twWzBdXTpwWzFdLmVycm9yfTpudWxsfSxBZShwKSxlP3tmZXRjaGVyczpuZXcgTWFwKGouZmV0Y2hlcnMpfTp7fSkse2ZsdXNoU3luYzpkfSkse3Nob3J0Q2lyY3VpdGVkOiEwfX1pZihtKXtsZXQgZT17fTtpZighaSl7ZS5uYXZpZ2F0aW9uPV87bGV0IHQ9TGUocCk7dm9pZCAwIT09dCYmKGUuYWN0aW9uRGF0YT10KX13Lmxlbmd0aD4wJiYoZS5mZXRjaGVycz1mdW5jdGlvbihlKXtyZXR1cm4gZS5mb3JFYWNoKChlPT57bGV0IHQ9ai5mZXRjaGVycy5nZXQoZS5rZXkpLHI9VmUodm9pZCAwLHQ/dC5kYXRhOnZvaWQgMCk7ai5mZXRjaGVycy5zZXQoZS5rZXkscil9KSksbmV3IE1hcChqLmZldGNoZXJzKX0odykpLHhlKGUse2ZsdXNoU3luYzpkfSl9dy5mb3JFYWNoKChlPT57Vi5oYXMoZS5rZXkpJiZ0dChlLmtleSksZS5jb250cm9sbGVyJiZWLnNldChlLmtleSxlLmNvbnRyb2xsZXIpfSkpO2xldCBTPSgpPT53LmZvckVhY2goKGU9PnR0KGUua2V5KSkpO0kmJkkuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixTKTtsZXR7bG9hZGVyUmVzdWx0czp4LGZldGNoZXJSZXN1bHRzOkV9PWF3YWl0IEtlKGoubWF0Y2hlcyxvLGcsdyx0KTtpZih0LnNpZ25hbC5hYm9ydGVkKXJldHVybntzaG9ydENpcmN1aXRlZDohMH07SSYmSS5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLFMpO3cuZm9yRWFjaCgoZT0+Vi5kZWxldGUoZS5rZXkpKSk7bGV0IEE9T2UoWy4uLngsLi4uRV0pO2lmKEEpe2lmKEEuaWR4Pj1nLmxlbmd0aCl7bGV0IGU9d1tBLmlkeC1nLmxlbmd0aF0ua2V5O2llLmFkZChlKX1yZXR1cm4gYXdhaXQgVWUodCxBLnJlc3VsdCx7cmVwbGFjZTp1fSkse3Nob3J0Q2lyY3VpdGVkOiEwfX1sZXR7bG9hZGVyRGF0YTpULGVycm9yczpSfT1FZShqLG8sZyx4LHAsdyxFLGRlKTtkZS5mb3JFYWNoKCgoZSx0KT0+e2Uuc3Vic2NyaWJlKChyPT57KHJ8fGUuZG9uZSkmJmRlLmRlbGV0ZSh0KX0pKX0pKSxrLnY3X3BhcnRpYWxIeWRyYXRpb24mJmYmJmouZXJyb3JzJiZPYmplY3QuZW50cmllcyhqLmVycm9ycykuZmlsdGVyKChlPT57bGV0W3RdPWU7cmV0dXJuIWcuc29tZSgoZT0+ZS5yb3V0ZS5pZD09PXQpKX0pKS5mb3JFYWNoKChlPT57bGV0W3Qscl09ZTtSPU9iamVjdC5hc3NpZ24oUnx8e30se1t0XTpyfSl9KSk7bGV0IFA9bnQoKSxPPW90KEspLE09UHx8T3x8dy5sZW5ndGg+MDtyZXR1cm4gcih7bWF0Y2hlczpvLGxvYWRlckRhdGE6VCxlcnJvcnM6Un0sTT97ZmV0Y2hlcnM6bmV3IE1hcChqLmZldGNoZXJzKX06e30pfShfLG8sYyxmLmFjdGl2ZSxzLGkmJmkuc3VibWlzc2lvbixpJiZpLmZldGNoZXJTdWJtaXNzaW9uLGkmJmkucmVwbGFjZSxpJiYhMD09PWkuaW5pdGlhbEh5ZHJhdGlvbix1LHApO218fChJPW51bGwsTmUobyxyKHttYXRjaGVzOnl8fGN9LEFlKHApLHtsb2FkZXJEYXRhOmcsZXJyb3JzOnd9KSkpfWZ1bmN0aW9uIExlKGUpe3JldHVybiBlJiYhSWUoZVsxXSk/e1tlWzBdXTplWzFdLmRhdGF9OmouYWN0aW9uRGF0YT8wPT09T2JqZWN0LmtleXMoai5hY3Rpb25EYXRhKS5sZW5ndGg/bnVsbDpqLmFjdGlvbkRhdGE6dm9pZCAwfWFzeW5jIGZ1bmN0aW9uIFVlKGEscyx1KXtsZXR7c3VibWlzc2lvbjpsLGZldGNoZXJTdWJtaXNzaW9uOmYscmVwbGFjZTpkfT12b2lkIDA9PT11P3t9OnU7cy5yZXNwb25zZS5oZWFkZXJzLmhhcygiWC1SZW1peC1SZXZhbGlkYXRlIikmJihXPSEwKTtsZXQgcD1zLnJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJMb2NhdGlvbiIpO2kocCwiRXhwZWN0ZWQgYSBMb2NhdGlvbiBoZWFkZXIgb24gdGhlIHJlZGlyZWN0IFJlc3BvbnNlIikscD1iZShwLG5ldyBVUkwoYS51cmwpLGIpO2xldCBfPWMoai5sb2NhdGlvbixwLHtfaXNSZWRpcmVjdDohMH0pO2lmKG8pe2xldCByPSExO2lmKHMucmVzcG9uc2UuaGVhZGVycy5oYXMoIlgtUmVtaXgtUmVsb2FkLURvY3VtZW50Iikpcj0hMDtlbHNlIGlmKHJlLnRlc3QocCkpe2NvbnN0IG49ZS5oaXN0b3J5LmNyZWF0ZVVSTChwKTtyPW4ub3JpZ2luIT09dC5sb2NhdGlvbi5vcmlnaW58fG51bGw9PU0obi5wYXRobmFtZSxiKX1pZihyKXJldHVybiB2b2lkKGQ/dC5sb2NhdGlvbi5yZXBsYWNlKHApOnQubG9jYXRpb24uYXNzaWduKHApKX1JPW51bGw7bGV0IGg9ITA9PT1kP24uUmVwbGFjZTpuLlB1c2gse2Zvcm1NZXRob2Q6bSxmb3JtQWN0aW9uOnksZm9ybUVuY1R5cGU6Z309ai5uYXZpZ2F0aW9uOyFsJiYhZiYmbSYmeSYmZyYmKGw9cWUoai5uYXZpZ2F0aW9uKSk7bGV0IHY9bHx8ZjtpZihaLmhhcyhzLnJlc3BvbnNlLnN0YXR1cykmJnYmJnplKHYuZm9ybU1ldGhvZCkpYXdhaXQgRGUoaCxfLHtzdWJtaXNzaW9uOnIoe30sdix7Zm9ybUFjdGlvbjpwfSkscHJldmVudFNjcm9sbFJlc2V0Okx9KTtlbHNle2xldCBlPUdlKF8sbCk7YXdhaXQgRGUoaCxfLHtvdmVycmlkZU5hdmlnYXRpb246ZSxmZXRjaGVyU3VibWlzc2lvbjpmLHByZXZlbnRTY3JvbGxSZXNldDpMfSl9fWFzeW5jIGZ1bmN0aW9uIFdlKGUsdCxyLG4pe3RyeXtsZXQgbz1hd2FpdCB5ZSh3LGUsdCxyLG4sZyx1KTtyZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoby5tYXAoKChlLG8pPT57aWYoTWUoZSkpe2xldCBpPWUucmVzdWx0O3JldHVybnt0eXBlOmQucmVkaXJlY3QscmVzcG9uc2U6dmUoaSx0LHJbb10ucm91dGUuaWQsbixiLGsudjdfcmVsYXRpdmVTcGxhdFBhdGgpfX1yZXR1cm4gZ2UoZSl9KSkpfWNhdGNoKGUpe3JldHVybiByLm1hcCgoKCk9Pih7dHlwZTpkLmVycm9yLGVycm9yOmV9KSkpfX1hc3luYyBmdW5jdGlvbiBLZSh0LHIsbixvLGkpe2xldFthLC4uLnNdPWF3YWl0IFByb21pc2UuYWxsKFtuLmxlbmd0aD9XZSgibG9hZGVyIixpLG4scik6W10sLi4uby5tYXAoKHQ9PntpZih0Lm1hdGNoZXMmJnQubWF0Y2gmJnQuY29udHJvbGxlcil7cmV0dXJuIFdlKCJsb2FkZXIiLHdlKGUuaGlzdG9yeSx0LnBhdGgsdC5jb250cm9sbGVyLnNpZ25hbCksW3QubWF0Y2hdLHQubWF0Y2hlcykudGhlbigoZT0+ZVswXSkpfXJldHVybiBQcm9taXNlLnJlc29sdmUoe3R5cGU6ZC5lcnJvcixlcnJvcjpQZSg0MDQse3BhdGhuYW1lOnQucGF0aH0pfSl9KSldKTtyZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoW0JlKHQsbixhLGEubWFwKCgoKT0+aS5zaWduYWwpKSwhMSxqLmxvYWRlckRhdGEpLEJlKHQsby5tYXAoKGU9PmUubWF0Y2gpKSxzLG8ubWFwKChlPT5lLmNvbnRyb2xsZXI/ZS5jb250cm9sbGVyLnNpZ25hbDpudWxsKSksITApXSkse2xvYWRlclJlc3VsdHM6YSxmZXRjaGVyUmVzdWx0czpzfX1mdW5jdGlvbiBKZSgpe1c9ITAsJC5wdXNoKC4uLmx0KCkpLGFlLmZvckVhY2goKChlLHQpPT57Vi5oYXModCkmJihHLnB1c2godCksdHQodCkpfSkpfWZ1bmN0aW9uIFhlKGUsdCxyKXt2b2lkIDA9PT1yJiYocj17fSksai5mZXRjaGVycy5zZXQoZSx0KSx4ZSh7ZmV0Y2hlcnM6bmV3IE1hcChqLmZldGNoZXJzKX0se2ZsdXNoU3luYzohMD09PShyJiZyLmZsdXNoU3luYyl9KX1mdW5jdGlvbiBaZShlLHQscixuKXt2b2lkIDA9PT1uJiYobj17fSk7bGV0IG89VGUoai5tYXRjaGVzLHQpO2V0KGUpLHhlKHtlcnJvcnM6e1tvLnJvdXRlLmlkXTpyfSxmZXRjaGVyczpuZXcgTWFwKGouZmV0Y2hlcnMpfSx7Zmx1c2hTeW5jOiEwPT09KG4mJm4uZmx1c2hTeW5jKX0pfWZ1bmN0aW9uIFFlKGUpe3JldHVybiBrLnY3X2ZldGNoZXJQZXJzaXN0JiYodWUuc2V0KGUsKHVlLmdldChlKXx8MCkrMSksZmUuaGFzKGUpJiZmZS5kZWxldGUoZSkpLGouZmV0Y2hlcnMuZ2V0KGUpfHxlZX1mdW5jdGlvbiBldChlKXtsZXQgdD1qLmZldGNoZXJzLmdldChlKTshVi5oYXMoZSl8fHQmJiJsb2FkaW5nIj09PXQuc3RhdGUmJlguaGFzKGUpfHx0dChlKSxhZS5kZWxldGUoZSksWC5kZWxldGUoZSksaWUuZGVsZXRlKGUpLGZlLmRlbGV0ZShlKSxqLmZldGNoZXJzLmRlbGV0ZShlKX1mdW5jdGlvbiB0dChlKXtsZXQgdD1WLmdldChlKTtpKHQsIkV4cGVjdGVkIGZldGNoIGNvbnRyb2xsZXI6ICIrZSksdC5hYm9ydCgpLFYuZGVsZXRlKGUpfWZ1bmN0aW9uIHJ0KGUpe2ZvcihsZXQgdCBvZiBlKXtsZXQgZT1ZZShRZSh0KS5kYXRhKTtqLmZldGNoZXJzLnNldCh0LGUpfX1mdW5jdGlvbiBudCgpe2xldCBlPVtdLHQ9ITE7Zm9yKGxldCByIG9mIGllKXtsZXQgbj1qLmZldGNoZXJzLmdldChyKTtpKG4sIkV4cGVjdGVkIGZldGNoZXI6ICIrciksImxvYWRpbmciPT09bi5zdGF0ZSYmKGllLmRlbGV0ZShyKSxlLnB1c2gociksdD0hMCl9cmV0dXJuIHJ0KGUpLHR9ZnVuY3Rpb24gb3QoZSl7bGV0IHQ9W107Zm9yKGxldFtyLG5db2YgWClpZihuPGUpe2xldCBlPWouZmV0Y2hlcnMuZ2V0KHIpO2koZSwiRXhwZWN0ZWQgZmV0Y2hlcjogIityKSwibG9hZGluZyI9PT1lLnN0YXRlJiYodHQociksWC5kZWxldGUociksdC5wdXNoKHIpKX1yZXR1cm4gcnQodCksdC5sZW5ndGg+MH1mdW5jdGlvbiBpdChlKXtqLmJsb2NrZXJzLmRlbGV0ZShlKSxoZS5kZWxldGUoZSl9ZnVuY3Rpb24gYXQoZSx0KXtsZXQgcj1qLmJsb2NrZXJzLmdldChlKXx8dGU7aSgidW5ibG9ja2VkIj09PXIuc3RhdGUmJiJibG9ja2VkIj09PXQuc3RhdGV8fCJibG9ja2VkIj09PXIuc3RhdGUmJiJibG9ja2VkIj09PXQuc3RhdGV8fCJibG9ja2VkIj09PXIuc3RhdGUmJiJwcm9jZWVkaW5nIj09PXQuc3RhdGV8fCJibG9ja2VkIj09PXIuc3RhdGUmJiJ1bmJsb2NrZWQiPT09dC5zdGF0ZXx8InByb2NlZWRpbmciPT09ci5zdGF0ZSYmInVuYmxvY2tlZCI9PT10LnN0YXRlLCJJbnZhbGlkIGJsb2NrZXIgc3RhdGUgdHJhbnNpdGlvbjogIityLnN0YXRlKyIgLT4gIit0LnN0YXRlKTtsZXQgbj1uZXcgTWFwKGouYmxvY2tlcnMpO24uc2V0KGUsdCkseGUoe2Jsb2NrZXJzOm59KX1mdW5jdGlvbiBzdChlKXtsZXR7Y3VycmVudExvY2F0aW9uOnQsbmV4dExvY2F0aW9uOnIsaGlzdG9yeUFjdGlvbjpufT1lO2lmKDA9PT1oZS5zaXplKXJldHVybjtoZS5zaXplPjEmJmEoITEsIkEgcm91dGVyIG9ubHkgc3VwcG9ydHMgb25lIGJsb2NrZXIgYXQgYSB0aW1lIik7bGV0IG89QXJyYXkuZnJvbShoZS5lbnRyaWVzKCkpLFtpLHNdPW9bby5sZW5ndGgtMV0sYz1qLmJsb2NrZXJzLmdldChpKTtyZXR1cm4gYyYmInByb2NlZWRpbmciPT09Yy5zdGF0ZT92b2lkIDA6cyh7Y3VycmVudExvY2F0aW9uOnQsbmV4dExvY2F0aW9uOnIsaGlzdG9yeUFjdGlvbjpufSk/aTp2b2lkIDB9ZnVuY3Rpb24gY3QoZSl7bGV0IHQ9UGUoNDA0LHtwYXRobmFtZTplfSkscj1sfHx2LHttYXRjaGVzOm4scm91dGU6b309UmUocik7cmV0dXJuIGx0KCkse25vdEZvdW5kTWF0Y2hlczpuLHJvdXRlOm8sZXJyb3I6dH19ZnVuY3Rpb24gdXQoZSx0KXtsZXQgcj10LnBhcnRpYWxNYXRjaGVzLG49cltyLmxlbmd0aC0xXS5yb3V0ZTtyZXR1cm57bm90Rm91bmRNYXRjaGVzOnIscm91dGU6bixlcnJvcjpQZSg0MDAse3R5cGU6InJvdXRlLWRpc2NvdmVyeSIscm91dGVJZDpuLmlkLHBhdGhuYW1lOmUsbWVzc2FnZTpudWxsIT10LmVycm9yJiYibWVzc2FnZSJpbiB0LmVycm9yP3QuZXJyb3I6U3RyaW5nKHQuZXJyb3IpfSl9fWZ1bmN0aW9uIGx0KGUpe2xldCB0PVtdO3JldHVybiBkZS5mb3JFYWNoKCgocixuKT0+e2UmJiFlKG4pfHwoci5jYW5jZWwoKSx0LnB1c2gobiksZGUuZGVsZXRlKG4pKX0pKSx0fWZ1bmN0aW9uIGZ0KGUsdCl7aWYoVCl7cmV0dXJuIFQoZSx0Lm1hcCgoZT0+eShlLGoubG9hZGVyRGF0YSkpKSl8fGUua2V5fXJldHVybiBlLmtleX1mdW5jdGlvbiBkdChlLHQpe2lmKEEpe2xldCByPWZ0KGUsdCksbj1BW3JdO2lmKCJudW1iZXIiPT10eXBlb2YgbilyZXR1cm4gbn1yZXR1cm4gbnVsbH1mdW5jdGlvbiBwdChlLHQscil7aWYoUyl7aWYoIWUpe3JldHVybnthY3RpdmU6ITAsbWF0Y2hlczptKHQscixiLCEwKXx8W119fWlmKCIqIj09PWVbZS5sZW5ndGgtMV0ucm91dGUucGF0aCl7cmV0dXJue2FjdGl2ZTohMCxtYXRjaGVzOm0odCxyLGIsITApfX19cmV0dXJue2FjdGl2ZTohMSxtYXRjaGVzOm51bGx9fWFzeW5jIGZ1bmN0aW9uIF90KGUsdCxyKXtsZXQgbj1lLG89bi5sZW5ndGg+MD9uW24ubGVuZ3RoLTFdLnJvdXRlOm51bGw7Zm9yKDs7KXt0cnl7YXdhaXQgcGUoUyx0LG4sdnx8bCxnLHUsU2Uscil9Y2F0Y2goZSl7cmV0dXJue3R5cGU6ImVycm9yIixlcnJvcjplLHBhcnRpYWxNYXRjaGVzOm59fWlmKHIuYWJvcnRlZClyZXR1cm57dHlwZToiYWJvcnRlZCJ9O2xldCBlPWx8fHYsaT1oKGUsdCxiKSxhPSExO2lmKGkpe2xldCBlPWlbaS5sZW5ndGgtMV0ucm91dGU7aWYoZS5pbmRleClyZXR1cm57dHlwZToic3VjY2VzcyIsbWF0Y2hlczppfTtpZihlLnBhdGgmJmUucGF0aC5sZW5ndGg+MCl7aWYoIioiIT09ZS5wYXRoKXJldHVybnt0eXBlOiJzdWNjZXNzIixtYXRjaGVzOml9O2E9ITB9fWxldCBzPW0oZSx0LGIsITApO2lmKCFzfHxuLm1hcCgoZT0+ZS5yb3V0ZS5pZCkpLmpvaW4oIi0iKT09PXMubWFwKChlPT5lLnJvdXRlLmlkKSkuam9pbigiLSIpKXJldHVybnt0eXBlOiJzdWNjZXNzIixtYXRjaGVzOmE/aTpudWxsfTtpZihuPXMsbz1uW24ubGVuZ3RoLTFdLnJvdXRlLCIqIj09PW8ucGF0aClyZXR1cm57dHlwZToic3VjY2VzcyIsbWF0Y2hlczpufX19cmV0dXJuIHA9e2dldCBiYXNlbmFtZSgpe3JldHVybiBifSxnZXQgZnV0dXJlKCl7cmV0dXJuIGt9LGdldCBzdGF0ZSgpe3JldHVybiBqfSxnZXQgcm91dGVzKCl7cmV0dXJuIHZ9LGdldCB3aW5kb3coKXtyZXR1cm4gdH0saW5pdGlhbGl6ZTpmdW5jdGlvbigpe2lmKHg9ZS5oaXN0b3J5Lmxpc3RlbigodD0+e2xldHthY3Rpb246cixsb2NhdGlvbjpuLGRlbHRhOm99PXQ7aWYoa2UpcmV0dXJuIHZvaWQoa2U9ITEpO2EoMD09PWhlLnNpemV8fG51bGwhPW8sIllvdSBhcmUgdHJ5aW5nIHRvIHVzZSBhIGJsb2NrZXIgb24gYSBQT1AgbmF2aWdhdGlvbiB0byBhIGxvY2F0aW9uIHRoYXQgd2FzIG5vdCBjcmVhdGVkIGJ5IEByZW1peC1ydW4vcm91dGVyLiBUaGlzIHdpbGwgZmFpbCBzaWxlbnRseSBpbiBwcm9kdWN0aW9uLiBUaGlzIGNhbiBoYXBwZW4gaWYgeW91IGFyZSBuYXZpZ2F0aW5nIG91dHNpZGUgdGhlIHJvdXRlciB2aWEgYHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZWAvYHdpbmRvdy5sb2NhdGlvbi5oYXNoYCBpbnN0ZWFkIG9mIHVzaW5nIHJvdXRlciBuYXZpZ2F0aW9uIEFQSXMuICBUaGlzIGNhbiBhbHNvIGhhcHBlbiBpZiB5b3UgYXJlIHVzaW5nIGNyZWF0ZUhhc2hSb3V0ZXIgYW5kIHRoZSB1c2VyIG1hbnVhbGx5IGNoYW5nZXMgdGhlIFVSTC4iKTtsZXQgaT1zdCh7Y3VycmVudExvY2F0aW9uOmoubG9jYXRpb24sbmV4dExvY2F0aW9uOm4saGlzdG9yeUFjdGlvbjpyfSk7cmV0dXJuIGkmJm51bGwhPW8/KGtlPSEwLGUuaGlzdG9yeS5nbygtMSpvKSx2b2lkIGF0KGkse3N0YXRlOiJibG9ja2VkIixsb2NhdGlvbjpuLHByb2NlZWQoKXthdChpLHtzdGF0ZToicHJvY2VlZGluZyIscHJvY2VlZDp2b2lkIDAscmVzZXQ6dm9pZCAwLGxvY2F0aW9uOm59KSxlLmhpc3RvcnkuZ28obyl9LHJlc2V0KCl7bGV0IGU9bmV3IE1hcChqLmJsb2NrZXJzKTtlLnNldChpLHRlKSx4ZSh7YmxvY2tlcnM6ZX0pfX0pKTpEZShyLG4pfSkpLG8peyFmdW5jdGlvbihlLHQpe3RyeXtsZXQgcj1lLnNlc3Npb25TdG9yYWdlLmdldEl0ZW0ob2UpO2lmKHIpe2xldCBlPUpTT04ucGFyc2Uocik7Zm9yKGxldFtyLG5db2YgT2JqZWN0LmVudHJpZXMoZXx8e30pKW4mJkFycmF5LmlzQXJyYXkobikmJnQuc2V0KHIsbmV3IFNldChufHxbXSkpfX1jYXRjaChlKXt9fSh0LHopO2xldCBlPSgpPT5mdW5jdGlvbihlLHQpe2lmKHQuc2l6ZT4wKXtsZXQgcj17fTtmb3IobGV0W2Usbl1vZiB0KXJbZV09Wy4uLm5dO3RyeXtlLnNlc3Npb25TdG9yYWdlLnNldEl0ZW0ob2UsSlNPTi5zdHJpbmdpZnkocikpfWNhdGNoKGUpe2EoITEsIkZhaWxlZCB0byBzYXZlIGFwcGxpZWQgdmlldyB0cmFuc2l0aW9ucyBpbiBzZXNzaW9uU3RvcmFnZSAoIitlKyIpLiIpfX19KHQseik7dC5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsZSksQj0oKT0+dC5yZW1vdmVFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsZSl9cmV0dXJuIGouaW5pdGlhbGl6ZWR8fERlKG4uUG9wLGoubG9jYXRpb24se2luaXRpYWxIeWRyYXRpb246ITB9KSxwfSxzdWJzY3JpYmU6ZnVuY3Rpb24oZSl7cmV0dXJuIEUuYWRkKGUpLCgpPT5FLmRlbGV0ZShlKX0sZW5hYmxlU2Nyb2xsUmVzdG9yYXRpb246ZnVuY3Rpb24oZSx0LHIpe2lmKEE9ZSxSPXQsVD1yfHxudWxsLCFQJiZqLm5hdmlnYXRpb249PT1RKXtQPSEwO2xldCBlPWR0KGoubG9jYXRpb24sai5tYXRjaGVzKTtudWxsIT1lJiZ4ZSh7cmVzdG9yZVNjcm9sbFBvc2l0aW9uOmV9KX1yZXR1cm4oKT0+e0E9bnVsbCxSPW51bGwsVD1udWxsfX0sbmF2aWdhdGU6YXN5bmMgZnVuY3Rpb24gdChvLGkpe2lmKCJudW1iZXIiPT10eXBlb2YgbylyZXR1cm4gdm9pZCBlLmhpc3RvcnkuZ28obyk7bGV0IGE9c2Uoai5sb2NhdGlvbixqLm1hdGNoZXMsYixrLnY3X3ByZXBlbmRCYXNlbmFtZSxvLGsudjdfcmVsYXRpdmVTcGxhdFBhdGgsbnVsbD09aT92b2lkIDA6aS5mcm9tUm91dGVJZCxudWxsPT1pP3ZvaWQgMDppLnJlbGF0aXZlKSx7cGF0aDpzLHN1Ym1pc3Npb246dSxlcnJvcjpsfT1jZShrLnY3X25vcm1hbGl6ZUZvcm1NZXRob2QsITEsYSxpKSxmPWoubG9jYXRpb24sZD1jKGoubG9jYXRpb24scyxpJiZpLnN0YXRlKTtkPXIoe30sZCxlLmhpc3RvcnkuZW5jb2RlTG9jYXRpb24oZCkpO2xldCBwPWkmJm51bGwhPWkucmVwbGFjZT9pLnJlcGxhY2U6dm9pZCAwLF89bi5QdXNoOyEwPT09cD9fPW4uUmVwbGFjZTohMT09PXB8fG51bGwhPXUmJnplKHUuZm9ybU1ldGhvZCkmJnUuZm9ybUFjdGlvbj09PWoubG9jYXRpb24ucGF0aG5hbWUrai5sb2NhdGlvbi5zZWFyY2gmJihfPW4uUmVwbGFjZSk7bGV0IGg9aSYmInByZXZlbnRTY3JvbGxSZXNldCJpbiBpPyEwPT09aS5wcmV2ZW50U2Nyb2xsUmVzZXQ6dm9pZCAwLG09ITA9PT0oaSYmaS51bnN0YWJsZV9mbHVzaFN5bmMpLHk9c3Qoe2N1cnJlbnRMb2NhdGlvbjpmLG5leHRMb2NhdGlvbjpkLGhpc3RvcnlBY3Rpb246X30pO2lmKCF5KXJldHVybiBhd2FpdCBEZShfLGQse3N1Ym1pc3Npb246dSxwZW5kaW5nRXJyb3I6bCxwcmV2ZW50U2Nyb2xsUmVzZXQ6aCxyZXBsYWNlOmkmJmkucmVwbGFjZSxlbmFibGVWaWV3VHJhbnNpdGlvbjppJiZpLnVuc3RhYmxlX3ZpZXdUcmFuc2l0aW9uLGZsdXNoU3luYzptfSk7YXQoeSx7c3RhdGU6ImJsb2NrZWQiLGxvY2F0aW9uOmQscHJvY2VlZCgpe2F0KHkse3N0YXRlOiJwcm9jZWVkaW5nIixwcm9jZWVkOnZvaWQgMCxyZXNldDp2b2lkIDAsbG9jYXRpb246ZH0pLHQobyxpKX0scmVzZXQoKXtsZXQgZT1uZXcgTWFwKGouYmxvY2tlcnMpO2Uuc2V0KHksdGUpLHhlKHtibG9ja2VyczplfSl9fSl9LGZldGNoOmZ1bmN0aW9uKHQscixuLG8pe2lmKHMpdGhyb3cgbmV3IEVycm9yKCJyb3V0ZXIuZmV0Y2goKSB3YXMgY2FsbGVkIGR1cmluZyB0aGUgc2VydmVyIHJlbmRlciwgYnV0IGl0IHNob3VsZG4ndCBiZS4gWW91IGFyZSBsaWtlbHkgY2FsbGluZyBhIHVzZUZldGNoZXIoKSBtZXRob2QgaW4gdGhlIGJvZHkgb2YgeW91ciBjb21wb25lbnQuIFRyeSBtb3ZpbmcgaXQgdG8gYSB1c2VFZmZlY3Qgb3IgYSBjYWxsYmFjay4iKTtWLmhhcyh0KSYmdHQodCk7bGV0IGE9ITA9PT0obyYmby51bnN0YWJsZV9mbHVzaFN5bmMpLGM9bHx8dix1PXNlKGoubG9jYXRpb24sai5tYXRjaGVzLGIsay52N19wcmVwZW5kQmFzZW5hbWUsbixrLnY3X3JlbGF0aXZlU3BsYXRQYXRoLHIsbnVsbD09bz92b2lkIDA6by5yZWxhdGl2ZSksZj1oKGMsdSxiKSxkPXB0KGYsYyx1KTtpZihkLmFjdGl2ZSYmZC5tYXRjaGVzJiYoZj1kLm1hdGNoZXMpLCFmKXJldHVybiB2b2lkIFplKHQscixQZSg0MDQse3BhdGhuYW1lOnV9KSx7Zmx1c2hTeW5jOmF9KTtsZXR7cGF0aDpwLHN1Ym1pc3Npb246XyxlcnJvcjptfT1jZShrLnY3X25vcm1hbGl6ZUZvcm1NZXRob2QsITAsdSxvKTtpZihtKXJldHVybiB2b2lkIFplKHQscixtLHtmbHVzaFN5bmM6YX0pO2xldCB5PSRlKGYscCk7TD0hMD09PShvJiZvLnByZXZlbnRTY3JvbGxSZXNldCksXyYmemUoXy5mb3JtTWV0aG9kKT9hc3luYyBmdW5jdGlvbih0LHIsbixvLGEscyxjLHUpe2Z1bmN0aW9uIGYoZSl7aWYoIWUucm91dGUuYWN0aW9uJiYhZS5yb3V0ZS5sYXp5KXtsZXQgZT1QZSg0MDUse21ldGhvZDp1LmZvcm1NZXRob2QscGF0aG5hbWU6bixyb3V0ZUlkOnJ9KTtyZXR1cm4gWmUodCxyLGUse2ZsdXNoU3luYzpjfSksITB9cmV0dXJuITF9aWYoSmUoKSxhZS5kZWxldGUodCksIXMmJmYobykpcmV0dXJuO2xldCBkPWouZmV0Y2hlcnMuZ2V0KHQpO1hlKHQsZnVuY3Rpb24oZSx0KXtsZXQgcj17c3RhdGU6InN1Ym1pdHRpbmciLGZvcm1NZXRob2Q6ZS5mb3JtTWV0aG9kLGZvcm1BY3Rpb246ZS5mb3JtQWN0aW9uLGZvcm1FbmNUeXBlOmUuZm9ybUVuY1R5cGUsZm9ybURhdGE6ZS5mb3JtRGF0YSxqc29uOmUuanNvbix0ZXh0OmUudGV4dCxkYXRhOnQ/dC5kYXRhOnZvaWQgMH07cmV0dXJuIHJ9KHUsZCkse2ZsdXNoU3luYzpjfSk7bGV0IHA9bmV3IEFib3J0Q29udHJvbGxlcixfPXdlKGUuaGlzdG9yeSxuLHAuc2lnbmFsLHUpO2lmKHMpe2xldCBlPWF3YWl0IF90KGEsbixfLnNpZ25hbCk7aWYoImFib3J0ZWQiPT09ZS50eXBlKXJldHVybjtpZigiZXJyb3IiPT09ZS50eXBlKXtsZXR7ZXJyb3I6b309dXQobixlKTtyZXR1cm4gdm9pZCBaZSh0LHIsbyx7Zmx1c2hTeW5jOmN9KX1pZighZS5tYXRjaGVzKXJldHVybiB2b2lkIFplKHQscixQZSg0MDQse3BhdGhuYW1lOm59KSx7Zmx1c2hTeW5jOmN9KTtpZihmKG89JGUoYT1lLm1hdGNoZXMsbikpKXJldHVybn1WLnNldCh0LHApO2xldCBtPVkseT1hd2FpdCBXZSgiYWN0aW9uIixfLFtvXSxhKSxnPXlbMF07aWYoXy5zaWduYWwuYWJvcnRlZClyZXR1cm4gdm9pZChWLmdldCh0KT09PXAmJlYuZGVsZXRlKHQpKTtpZihrLnY3X2ZldGNoZXJQZXJzaXN0JiZmZS5oYXModCkpe2lmKGplKGcpfHxJZShnKSlyZXR1cm4gdm9pZCBYZSh0LFllKHZvaWQgMCkpfWVsc2V7aWYoamUoZykpcmV0dXJuIFYuZGVsZXRlKHQpLEs+bT92b2lkIFhlKHQsWWUodm9pZCAwKSk6KGllLmFkZCh0KSxYZSh0LFZlKHUpKSxVZShfLGcse2ZldGNoZXJTdWJtaXNzaW9uOnV9KSk7aWYoSWUoZykpcmV0dXJuIHZvaWQgWmUodCxyLGcuZXJyb3IpfWlmKEZlKGcpKXRocm93IFBlKDQwMCx7dHlwZToiZGVmZXItYWN0aW9uIn0pO2xldCB3PWoubmF2aWdhdGlvbi5sb2NhdGlvbnx8ai5sb2NhdGlvbixTPXdlKGUuaGlzdG9yeSx3LHAuc2lnbmFsKSx4PWx8fHYsRT0iaWRsZSIhPT1qLm5hdmlnYXRpb24uc3RhdGU/aCh4LGoubmF2aWdhdGlvbi5sb2NhdGlvbixiKTpqLm1hdGNoZXM7aShFLCJEaWRuJ3QgZmluZCBhbnkgbWF0Y2hlcyBhZnRlciBmZXRjaGVyIGFjdGlvbiIpO2xldCBBPSsrWTtYLnNldCh0LEEpO2xldCBUPVZlKHUsZy5kYXRhKTtqLmZldGNoZXJzLnNldCh0LFQpO2xldFtSLFBdPWxlKGUuaGlzdG9yeSxqLEUsdSx3LCExLGsudW5zdGFibGVfc2tpcEFjdGlvbkVycm9yUmV2YWxpZGF0aW9uLFcsJCxHLGZlLGFlLGllLHgsYixbby5yb3V0ZS5pZCxnXSk7UC5maWx0ZXIoKGU9PmUua2V5IT09dCkpLmZvckVhY2goKGU9PntsZXQgdD1lLmtleSxyPWouZmV0Y2hlcnMuZ2V0KHQpLG49VmUodm9pZCAwLHI/ci5kYXRhOnZvaWQgMCk7ai5mZXRjaGVycy5zZXQodCxuKSxWLmhhcyh0KSYmdHQodCksZS5jb250cm9sbGVyJiZWLnNldCh0LGUuY29udHJvbGxlcil9KSkseGUoe2ZldGNoZXJzOm5ldyBNYXAoai5mZXRjaGVycyl9KTtsZXQgTz0oKT0+UC5mb3JFYWNoKChlPT50dChlLmtleSkpKTtwLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsTyk7bGV0e2xvYWRlclJlc3VsdHM6TSxmZXRjaGVyUmVzdWx0czpGfT1hd2FpdCBLZShqLm1hdGNoZXMsRSxSLFAsUyk7aWYocC5zaWduYWwuYWJvcnRlZClyZXR1cm47cC5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLE8pLFguZGVsZXRlKHQpLFYuZGVsZXRlKHQpLFAuZm9yRWFjaCgoZT0+Vi5kZWxldGUoZS5rZXkpKSk7bGV0IEw9T2UoWy4uLk0sLi4uRl0pO2lmKEwpe2lmKEwuaWR4Pj1SLmxlbmd0aCl7bGV0IGU9UFtMLmlkeC1SLmxlbmd0aF0ua2V5O2llLmFkZChlKX1yZXR1cm4gVWUoUyxMLnJlc3VsdCl9bGV0e2xvYWRlckRhdGE6VSxlcnJvcnM6en09RWUoaixqLm1hdGNoZXMsUixNLHZvaWQgMCxQLEYsZGUpO2lmKGouZmV0Y2hlcnMuaGFzKHQpKXtsZXQgZT1ZZShnLmRhdGEpO2ouZmV0Y2hlcnMuc2V0KHQsZSl9b3QoQSksImxvYWRpbmciPT09ai5uYXZpZ2F0aW9uLnN0YXRlJiZBPks/KGkoRCwiRXhwZWN0ZWQgcGVuZGluZyBhY3Rpb24iKSxJJiZJLmFib3J0KCksTmUoai5uYXZpZ2F0aW9uLmxvY2F0aW9uLHttYXRjaGVzOkUsbG9hZGVyRGF0YTpVLGVycm9yczp6LGZldGNoZXJzOm5ldyBNYXAoai5mZXRjaGVycyl9KSk6KHhlKHtlcnJvcnM6eixsb2FkZXJEYXRhOkNlKGoubG9hZGVyRGF0YSxVLEUseiksZmV0Y2hlcnM6bmV3IE1hcChqLmZldGNoZXJzKX0pLFc9ITEpfSh0LHIscCx5LGYsZC5hY3RpdmUsYSxfKTooYWUuc2V0KHQse3JvdXRlSWQ6cixwYXRoOnB9KSxhc3luYyBmdW5jdGlvbih0LHIsbixvLGEscyxjLHUpe2xldCBsPWouZmV0Y2hlcnMuZ2V0KHQpO1hlKHQsVmUodSxsP2wuZGF0YTp2b2lkIDApLHtmbHVzaFN5bmM6Y30pO2xldCBmPW5ldyBBYm9ydENvbnRyb2xsZXIsZD13ZShlLmhpc3RvcnksbixmLnNpZ25hbCk7aWYocyl7bGV0IGU9YXdhaXQgX3QoYSxuLGQuc2lnbmFsKTtpZigiYWJvcnRlZCI9PT1lLnR5cGUpcmV0dXJuO2lmKCJlcnJvciI9PT1lLnR5cGUpe2xldHtlcnJvcjpvfT11dChuLGUpO3JldHVybiB2b2lkIFplKHQscixvLHtmbHVzaFN5bmM6Y30pfWlmKCFlLm1hdGNoZXMpcmV0dXJuIHZvaWQgWmUodCxyLFBlKDQwNCx7cGF0aG5hbWU6bn0pLHtmbHVzaFN5bmM6Y30pO289JGUoYT1lLm1hdGNoZXMsbil9Vi5zZXQodCxmKTtsZXQgcD1ZLF89YXdhaXQgV2UoImxvYWRlciIsZCxbb10sYSksaD1fWzBdO0ZlKGgpJiYoaD1hd2FpdCBIZShoLGQuc2lnbmFsLCEwKXx8aCk7Vi5nZXQodCk9PT1mJiZWLmRlbGV0ZSh0KTtpZihkLnNpZ25hbC5hYm9ydGVkKXJldHVybjtpZihmZS5oYXModCkpcmV0dXJuIHZvaWQgWGUodCxZZSh2b2lkIDApKTtpZihqZShoKSlyZXR1cm4gSz5wP3ZvaWQgWGUodCxZZSh2b2lkIDApKTooaWUuYWRkKHQpLHZvaWQgYXdhaXQgVWUoZCxoKSk7aWYoSWUoaCkpcmV0dXJuIHZvaWQgWmUodCxyLGguZXJyb3IpO2koIUZlKGgpLCJVbmhhbmRsZWQgZmV0Y2hlciBkZWZlcnJlZCBkYXRhIiksWGUodCxZZShoLmRhdGEpKX0odCxyLHAseSxmLGQuYWN0aXZlLGEsXykpfSxyZXZhbGlkYXRlOmZ1bmN0aW9uKCl7SmUoKSx4ZSh7cmV2YWxpZGF0aW9uOiJsb2FkaW5nIn0pLCJzdWJtaXR0aW5nIiE9PWoubmF2aWdhdGlvbi5zdGF0ZSYmKCJpZGxlIiE9PWoubmF2aWdhdGlvbi5zdGF0ZT9EZShEfHxqLmhpc3RvcnlBY3Rpb24sai5uYXZpZ2F0aW9uLmxvY2F0aW9uLHtvdmVycmlkZU5hdmlnYXRpb246ai5uYXZpZ2F0aW9ufSk6RGUoai5oaXN0b3J5QWN0aW9uLGoubG9jYXRpb24se3N0YXJ0VW5pbnRlcnJ1cHRlZFJldmFsaWRhdGlvbjohMH0pKX0sY3JlYXRlSHJlZjp0PT5lLmhpc3RvcnkuY3JlYXRlSHJlZih0KSxlbmNvZGVMb2NhdGlvbjp0PT5lLmhpc3RvcnkuZW5jb2RlTG9jYXRpb24odCksZ2V0RmV0Y2hlcjpRZSxkZWxldGVGZXRjaGVyOmZ1bmN0aW9uKGUpe2lmKGsudjdfZmV0Y2hlclBlcnNpc3Qpe2xldCB0PSh1ZS5nZXQoZSl8fDApLTE7dDw9MD8odWUuZGVsZXRlKGUpLGZlLmFkZChlKSk6dWUuc2V0KGUsdCl9ZWxzZSBldChlKTt4ZSh7ZmV0Y2hlcnM6bmV3IE1hcChqLmZldGNoZXJzKX0pfSxkaXNwb3NlOmZ1bmN0aW9uKCl7eCYmeCgpLEImJkIoKSxFLmNsZWFyKCksSSYmSS5hYm9ydCgpLGouZmV0Y2hlcnMuZm9yRWFjaCgoKGUsdCk9PmV0KHQpKSksai5ibG9ja2Vycy5mb3JFYWNoKCgoZSx0KT0+aXQodCkpKX0sZ2V0QmxvY2tlcjpmdW5jdGlvbihlLHQpe2xldCByPWouYmxvY2tlcnMuZ2V0KGUpfHx0ZTtyZXR1cm4gaGUuZ2V0KGUpIT09dCYmaGUuc2V0KGUsdCkscn0sZGVsZXRlQmxvY2tlcjppdCxwYXRjaFJvdXRlcyhlLHQpe3JldHVybiBfZShlLHQsdnx8bCxnLHUpfSxfaW50ZXJuYWxGZXRjaENvbnRyb2xsZXJzOlYsX2ludGVybmFsQWN0aXZlRGVmZXJyZWRzOmRlLF9pbnRlcm5hbFNldFJvdXRlczpmdW5jdGlvbihlKXtnPXt9LGw9XyhlLHUsdm9pZCAwLGcpfX0scH0sdC5jcmVhdGVTdGF0aWNIYW5kbGVyPWZ1bmN0aW9uKGUsdCl7aShlLmxlbmd0aD4wLCJZb3UgbXVzdCBwcm92aWRlIGEgbm9uLWVtcHR5IHJvdXRlcyBhcnJheSB0byBjcmVhdGVTdGF0aWNIYW5kbGVyIik7bGV0IG4sbz17fSxhPSh0P3QuYmFzZW5hbWU6bnVsbCl8fCIvIjtpZihudWxsIT10JiZ0Lm1hcFJvdXRlUHJvcGVydGllcyluPXQubWFwUm91dGVQcm9wZXJ0aWVzO2Vsc2UgaWYobnVsbCE9dCYmdC5kZXRlY3RFcnJvckJvdW5kYXJ5KXtsZXQgZT10LmRldGVjdEVycm9yQm91bmRhcnk7bj10PT4oe2hhc0Vycm9yQm91bmRhcnk6ZSh0KX0pfWVsc2Ugbj1uZTtsZXQgcz1yKHt2N19yZWxhdGl2ZVNwbGF0UGF0aDohMSx2N190aHJvd0Fib3J0UmVhc29uOiExfSx0P3QuZnV0dXJlOm51bGwpLGw9XyhlLG4sdm9pZCAwLG8pO2FzeW5jIGZ1bmN0aW9uIGYoZSx0LG4sbyxhLGMsdSl7aShlLnNpZ25hbCwicXVlcnkoKS9xdWVyeVJvdXRlKCkgcmVxdWVzdHMgbXVzdCBjb250YWluIGFuIEFib3J0Q29udHJvbGxlciBzaWduYWwiKTt0cnl7aWYoemUoZS5tZXRob2QudG9Mb3dlckNhc2UoKSkpe2xldCBpPWF3YWl0IGFzeW5jIGZ1bmN0aW9uKGUsdCxuLG8saSxhLGMpe2xldCB1O2lmKG4ucm91dGUuYWN0aW9ufHxuLnJvdXRlLmxhenkpe3U9KGF3YWl0IG0oImFjdGlvbiIsZSxbbl0sdCxjLG8saSkpWzBdLGUuc2lnbmFsLmFib3J0ZWQmJmFlKGUsYyxzKX1lbHNle2xldCB0PVBlKDQwNSx7bWV0aG9kOmUubWV0aG9kLHBhdGhuYW1lOm5ldyBVUkwoZS51cmwpLnBhdGhuYW1lLHJvdXRlSWQ6bi5yb3V0ZS5pZH0pO2lmKGMpdGhyb3cgdDt1PXt0eXBlOmQuZXJyb3IsZXJyb3I6dH19aWYoamUodSkpdGhyb3cgbmV3IFJlc3BvbnNlKG51bGwse3N0YXR1czp1LnJlc3BvbnNlLnN0YXR1cyxoZWFkZXJzOntMb2NhdGlvbjp1LnJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJMb2NhdGlvbiIpfX0pO2lmKEZlKHUpKXtsZXQgZT1QZSg0MDAse3R5cGU6ImRlZmVyLWFjdGlvbiJ9KTtpZihjKXRocm93IGU7dT17dHlwZTpkLmVycm9yLGVycm9yOmV9fWlmKGMpe2lmKEllKHUpKXRocm93IHUuZXJyb3I7cmV0dXJue21hdGNoZXM6W25dLGxvYWRlckRhdGE6e30sYWN0aW9uRGF0YTp7W24ucm91dGUuaWRdOnUuZGF0YX0sZXJyb3JzOm51bGwsc3RhdHVzQ29kZToyMDAsbG9hZGVySGVhZGVyczp7fSxhY3Rpb25IZWFkZXJzOnt9LGFjdGl2ZURlZmVycmVkczpudWxsfX1sZXQgbD1uZXcgUmVxdWVzdChlLnVybCx7aGVhZGVyczplLmhlYWRlcnMscmVkaXJlY3Q6ZS5yZWRpcmVjdCxzaWduYWw6ZS5zaWduYWx9KTtpZihJZSh1KSl7bGV0IGU9YT9uOlRlKHQsbi5yb3V0ZS5pZCk7cmV0dXJuIHIoe30sYXdhaXQgcChsLHQsbyxpLGEsbnVsbCxbZS5yb3V0ZS5pZCx1XSkse3N0YXR1c0NvZGU6cSh1LmVycm9yKT91LmVycm9yLnN0YXR1czpudWxsIT11LnN0YXR1c0NvZGU/dS5zdGF0dXNDb2RlOjUwMCxhY3Rpb25EYXRhOm51bGwsYWN0aW9uSGVhZGVyczpyKHt9LHUuaGVhZGVycz97W24ucm91dGUuaWRdOnUuaGVhZGVyc306e30pfSl9bGV0IGY9YXdhaXQgcChsLHQsbyxpLGEsbnVsbCk7cmV0dXJuIHIoe30sZix7YWN0aW9uRGF0YTp7W24ucm91dGUuaWRdOnUuZGF0YX19LHUuc3RhdHVzQ29kZT97c3RhdHVzQ29kZTp1LnN0YXR1c0NvZGV9Ont9LHthY3Rpb25IZWFkZXJzOnUuaGVhZGVycz97W24ucm91dGUuaWRdOnUuaGVhZGVyc306e319KX0oZSxuLHV8fCRlKG4sdCksbyxhLGMsbnVsbCE9dSk7cmV0dXJuIGl9bGV0IGk9YXdhaXQgcChlLG4sbyxhLGMsdSk7cmV0dXJuIExlKGkpP2k6cih7fSxpLHthY3Rpb25EYXRhOm51bGwsYWN0aW9uSGVhZGVyczp7fX0pfWNhdGNoKGUpe2lmKG51bGwhPShsPWUpJiYib2JqZWN0Ij09dHlwZW9mIGwmJiJ0eXBlImluIGwmJiJyZXN1bHQiaW4gbCYmKGwudHlwZT09PWQuZGF0YXx8bC50eXBlPT09ZC5lcnJvcikmJkxlKGUucmVzdWx0KSl7aWYoZS50eXBlPT09ZC5lcnJvcil0aHJvdyBlLnJlc3VsdDtyZXR1cm4gZS5yZXN1bHR9aWYoZnVuY3Rpb24oZSl7aWYoIUxlKGUpKXJldHVybiExO2xldCB0PWUuc3RhdHVzLHI9ZS5oZWFkZXJzLmdldCgiTG9jYXRpb24iKTtyZXR1cm4gdD49MzAwJiZ0PD0zOTkmJm51bGwhPXJ9KGUpKXJldHVybiBlO3Rocm93IGV9dmFyIGx9YXN5bmMgZnVuY3Rpb24gcChlLHQsbixvLGksYSxjKXtsZXQgdT1udWxsIT1hO2lmKHUmJihudWxsPT1hfHwhYS5yb3V0ZS5sb2FkZXIpJiYobnVsbD09YXx8IWEucm91dGUubGF6eSkpdGhyb3cgUGUoNDAwLHttZXRob2Q6ZS5tZXRob2QscGF0aG5hbWU6bmV3IFVSTChlLnVybCkucGF0aG5hbWUscm91dGVJZDpudWxsPT1hP3ZvaWQgMDphLnJvdXRlLmlkfSk7bGV0IGw9KGE/W2FdOmMmJkllKGNbMV0pP3VlKHQsY1swXSk6dCkuZmlsdGVyKChlPT5lLnJvdXRlLmxvYWRlcnx8ZS5yb3V0ZS5sYXp5KSk7aWYoMD09PWwubGVuZ3RoKXJldHVybnttYXRjaGVzOnQsbG9hZGVyRGF0YTp0LnJlZHVjZSgoKGUsdCk9Pk9iamVjdC5hc3NpZ24oZSx7W3Qucm91dGUuaWRdOm51bGx9KSkse30pLGVycm9yczpjJiZJZShjWzFdKT97W2NbMF1dOmNbMV0uZXJyb3J9Om51bGwsc3RhdHVzQ29kZToyMDAsbG9hZGVySGVhZGVyczp7fSxhY3RpdmVEZWZlcnJlZHM6bnVsbH07bGV0IGY9YXdhaXQgbSgibG9hZGVyIixlLGwsdCx1LG4sbyk7ZS5zaWduYWwuYWJvcnRlZCYmYWUoZSx1LHMpO2xldCBkPW5ldyBNYXAscD14ZSh0LGwsZixjLGQsaSksXz1uZXcgU2V0KGwubWFwKChlPT5lLnJvdXRlLmlkKSkpO3JldHVybiB0LmZvckVhY2goKGU9PntfLmhhcyhlLnJvdXRlLmlkKXx8KHAubG9hZGVyRGF0YVtlLnJvdXRlLmlkXT1udWxsKX0pKSxyKHt9LHAse21hdGNoZXM6dCxhY3RpdmVEZWZlcnJlZHM6ZC5zaXplPjA/T2JqZWN0LmZyb21FbnRyaWVzKGQuZW50cmllcygpKTpudWxsfSl9YXN5bmMgZnVuY3Rpb24gbShlLHQscixpLGMsdSxsKXtsZXQgZj1hd2FpdCB5ZShsfHxtZSxlLHQscixpLG8sbix1KTtyZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoZi5tYXAoKChlLG4pPT57aWYoTWUoZSkpe3Rocm93IHZlKGUucmVzdWx0LHQscltuXS5yb3V0ZS5pZCxpLGEscy52N19yZWxhdGl2ZVNwbGF0UGF0aCl9aWYoTGUoZS5yZXN1bHQpJiZjKXRocm93IGU7cmV0dXJuIGdlKGUpfSkpKX1yZXR1cm57ZGF0YVJvdXRlczpsLHF1ZXJ5OmFzeW5jIGZ1bmN0aW9uKGUsdCl7bGV0e3JlcXVlc3RDb250ZXh0Om4sc2tpcExvYWRlckVycm9yQnViYmxpbmc6byx1bnN0YWJsZV9kYXRhU3RyYXRlZ3k6aX09dm9pZCAwPT09dD97fTp0LHM9bmV3IFVSTChlLnVybCksZD1lLm1ldGhvZCxwPWMoIiIsdShzKSxudWxsLCJkZWZhdWx0IiksXz1oKGwscCxhKTtpZighVWUoZCkmJiJIRUFEIiE9PWQpe2xldCBlPVBlKDQwNSx7bWV0aG9kOmR9KSx7bWF0Y2hlczp0LHJvdXRlOnJ9PVJlKGwpO3JldHVybntiYXNlbmFtZTphLGxvY2F0aW9uOnAsbWF0Y2hlczp0LGxvYWRlckRhdGE6e30sYWN0aW9uRGF0YTpudWxsLGVycm9yczp7W3IuaWRdOmV9LHN0YXR1c0NvZGU6ZS5zdGF0dXMsbG9hZGVySGVhZGVyczp7fSxhY3Rpb25IZWFkZXJzOnt9LGFjdGl2ZURlZmVycmVkczpudWxsfX1pZighXyl7bGV0IGU9UGUoNDA0LHtwYXRobmFtZTpwLnBhdGhuYW1lfSkse21hdGNoZXM6dCxyb3V0ZTpyfT1SZShsKTtyZXR1cm57YmFzZW5hbWU6YSxsb2NhdGlvbjpwLG1hdGNoZXM6dCxsb2FkZXJEYXRhOnt9LGFjdGlvbkRhdGE6bnVsbCxlcnJvcnM6e1tyLmlkXTplfSxzdGF0dXNDb2RlOmUuc3RhdHVzLGxvYWRlckhlYWRlcnM6e30sYWN0aW9uSGVhZGVyczp7fSxhY3RpdmVEZWZlcnJlZHM6bnVsbH19bGV0IG09YXdhaXQgZihlLHAsXyxuLGl8fG51bGwsITA9PT1vLG51bGwpO3JldHVybiBMZShtKT9tOnIoe2xvY2F0aW9uOnAsYmFzZW5hbWU6YX0sbSl9LHF1ZXJ5Um91dGU6YXN5bmMgZnVuY3Rpb24oZSx0KXtsZXR7cm91dGVJZDpyLHJlcXVlc3RDb250ZXh0Om4sdW5zdGFibGVfZGF0YVN0cmF0ZWd5Om99PXZvaWQgMD09PXQ/e306dCxpPW5ldyBVUkwoZS51cmwpLHM9ZS5tZXRob2QsZD1jKCIiLHUoaSksbnVsbCwiZGVmYXVsdCIpLHA9aChsLGQsYSk7aWYoIVVlKHMpJiYiSEVBRCIhPT1zJiYiT1BUSU9OUyIhPT1zKXRocm93IFBlKDQwNSx7bWV0aG9kOnN9KTtpZighcCl0aHJvdyBQZSg0MDQse3BhdGhuYW1lOmQucGF0aG5hbWV9KTtsZXQgXz1yP3AuZmluZCgoZT0+ZS5yb3V0ZS5pZD09PXIpKTokZShwLGQpO2lmKHImJiFfKXRocm93IFBlKDQwMyx7cGF0aG5hbWU6ZC5wYXRobmFtZSxyb3V0ZUlkOnJ9KTtpZighXyl0aHJvdyBQZSg0MDQse3BhdGhuYW1lOmQucGF0aG5hbWV9KTtsZXQgbT1hd2FpdCBmKGUsZCxwLG4sb3x8bnVsbCwhMSxfKTtpZihMZShtKSlyZXR1cm4gbTtsZXQgeT1tLmVycm9ycz9PYmplY3QudmFsdWVzKG0uZXJyb3JzKVswXTp2b2lkIDA7aWYodm9pZCAwIT09eSl0aHJvdyB5O2lmKG0uYWN0aW9uRGF0YSlyZXR1cm4gT2JqZWN0LnZhbHVlcyhtLmFjdGlvbkRhdGEpWzBdO2lmKG0ubG9hZGVyRGF0YSl7dmFyIGc7bGV0IGU9T2JqZWN0LnZhbHVlcyhtLmxvYWRlckRhdGEpWzBdO3JldHVybiBudWxsIT0oZz1tLmFjdGl2ZURlZmVycmVkcykmJmdbXy5yb3V0ZS5pZF0mJihlW2llXT1tLmFjdGl2ZURlZmVycmVkc1tfLnJvdXRlLmlkXSksZX19fX0sdC5kZWZlcj1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10JiYodD17fSksbmV3IERlZmVycmVkRGF0YShlLCJudW1iZXIiPT10eXBlb2YgdD97c3RhdHVzOnR9OnQpfSx0LmdlbmVyYXRlUGF0aD1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQmJih0PXt9KTtsZXQgcj1lO3IuZW5kc1dpdGgoIioiKSYmIioiIT09ciYmIXIuZW5kc1dpdGgoIi8qIikmJihhKCExLCdSb3V0ZSBwYXRoICInK3IrJyIgd2lsbCBiZSB0cmVhdGVkIGFzIGlmIGl0IHdlcmUgIicrci5yZXBsYWNlKC9cKiQvLCIvKiIpKyciIGJlY2F1c2UgdGhlIGAqYCBjaGFyYWN0ZXIgbXVzdCBhbHdheXMgZm9sbG93IGEgYC9gIGluIHRoZSBwYXR0ZXJuLiBUbyBnZXQgcmlkIG9mIHRoaXMgd2FybmluZywgcGxlYXNlIGNoYW5nZSB0aGUgcm91dGUgcGF0aCB0byAiJytyLnJlcGxhY2UoL1wqJC8sIi8qIikrJyIuJykscj1yLnJlcGxhY2UoL1wqJC8sIi8qIikpO2NvbnN0IG49ci5zdGFydHNXaXRoKCIvIik/Ii8iOiIiLG89ZT0+bnVsbD09ZT8iIjoic3RyaW5nIj09dHlwZW9mIGU/ZTpTdHJpbmcoZSk7cmV0dXJuIG4rci5zcGxpdCgvXC8rLykubWFwKCgoZSxyLG4pPT57aWYocj09PW4ubGVuZ3RoLTEmJiIqIj09PWUpe3JldHVybiBvKHRbIioiXSl9Y29uc3QgYT1lLm1hdGNoKC9eOihbXHctXSspKFw/PykkLyk7aWYoYSl7Y29uc3RbLGUscl09YTtsZXQgbj10W2VdO3JldHVybiBpKCI/Ij09PXJ8fG51bGwhPW4sJ01pc3NpbmcgIjonK2UrJyIgcGFyYW0nKSxvKG4pfXJldHVybiBlLnJlcGxhY2UoL1w/JC9nLCIiKX0pKS5maWx0ZXIoKGU9PiEhZSkpLmpvaW4oIi8iKX0sdC5nZXRTdGF0aWNDb250ZXh0RnJvbUVycm9yPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gcih7fSx0LHtzdGF0dXNDb2RlOnEobik/bi5zdGF0dXM6NTAwLGVycm9yczp7W3QuX2RlZXBlc3RSZW5kZXJlZEJvdW5kYXJ5SWR8fGVbMF0uaWRdOm59fSl9LHQuZ2V0VG9QYXRobmFtZT1mdW5jdGlvbihlKXtyZXR1cm4iIj09PWV8fCIiPT09ZS5wYXRobmFtZT8iLyI6InN0cmluZyI9PXR5cGVvZiBlP2woZSkucGF0aG5hbWU6ZS5wYXRobmFtZX0sdC5pc0RlZmVycmVkRGF0YT1EZSx0LmlzUm91dGVFcnJvclJlc3BvbnNlPXEsdC5qb2luUGF0aHM9VSx0Lmpzb249ZnVuY3Rpb24oZSx0KXt2b2lkIDA9PT10JiYodD17fSk7bGV0IG49Im51bWJlciI9PXR5cGVvZiB0P3tzdGF0dXM6dH06dCxvPW5ldyBIZWFkZXJzKG4uaGVhZGVycyk7cmV0dXJuIG8uaGFzKCJDb250ZW50LVR5cGUiKXx8by5zZXQoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiKSxuZXcgUmVzcG9uc2UoSlNPTi5zdHJpbmdpZnkoZSkscih7fSxuLHtoZWFkZXJzOm99KSl9LHQubWF0Y2hQYXRoPVAsdC5tYXRjaFJvdXRlcz1oLHQubm9ybWFsaXplUGF0aG5hbWU9eix0LnBhcnNlUGF0aD1sLHQucmVkaXJlY3Q9JCx0LnJlZGlyZWN0RG9jdW1lbnQ9KGUsdCk9PntsZXQgcj0kKGUsdCk7cmV0dXJuIHIuaGVhZGVycy5zZXQoIlgtUmVtaXgtUmVsb2FkLURvY3VtZW50IiwidHJ1ZSIpLHJ9LHQucmVzb2x2ZVBhdGg9Rix0LnJlc29sdmVUbz1MLHQuc3RyaXBCYXNlbmFtZT1NfSwxNzMzNjpmdW5jdGlvbihlLHQscil7dmFyIG49cig3NTYxNyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG8pe3ZhciBpLGE9dHx8e307ZnVuY3Rpb24gcyhlKXtvKGV8fG5ldyBFcnJvcigiQWJvcnRlZCIpKX1mdW5jdGlvbiBjKGUsdCl7ZS5iYWlsP3MoZSk6aS5yZXRyeShlKT9hLm9uUmV0cnkmJmEub25SZXRyeShlLHQpOm8oaS5tYWluRXJyb3IoKSl9InJhbmRvbWl6ZSJpbiBhfHwoYS5yYW5kb21pemU9ITApLChpPW4ub3BlcmF0aW9uKGEpKS5hdHRlbXB0KChmdW5jdGlvbih0KXt2YXIgbjt0cnl7bj1lKHMsdCl9Y2F0Y2goZSl7cmV0dXJuIHZvaWQgYyhlLHQpfVByb21pc2UucmVzb2x2ZShuKS50aGVuKHIpLmNhdGNoKChmdW5jdGlvbihlKXtjKGUsdCl9KSl9KSl9KSl9fSwyNDYwMTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNzg0MjApLG89cigxMzgzOCksaT1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKG4oZSkpcmV0dXJuIGU7dGhyb3cgaShvKGUpKyIgaXMgbm90IGEgZnVuY3Rpb24iKX19LDU3ODQ5OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigxNDY2KSxvPXIoMTM4MzgpLGk9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihuKGUpKXJldHVybiBlO3Rocm93IGkobyhlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIil9fSw3NDczOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig3ODQyMCksbz1TdHJpbmcsaT1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCJvYmplY3QiPT10eXBlb2YgZXx8bihlKSlyZXR1cm4gZTt0aHJvdyBpKCJDYW4ndCBzZXQgIitvKGUpKyIgYXMgYSBwcm90b3R5cGUiKX19LDQwMjk4OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMTYwMiksbz1yKDUzMTA1KSxpPXIoNDM2MTApLmYsYT1uKCJ1bnNjb3BhYmxlcyIpLHM9QXJyYXkucHJvdG90eXBlO3ZvaWQgMD09PXNbYV0mJmkocyxhLHtjb25maWd1cmFibGU6ITAsdmFsdWU6byhudWxsKX0pLGUuZXhwb3J0cz1mdW5jdGlvbihlKXtzW2FdW2VdPSEwfX0sNjcyMzQ6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDc3ODA0KS5jaGFyQXQ7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdCsocj9uKGUsdCkubGVuZ3RoOjEpfX0sNjUxOTA6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDQ3NjU4KSxvPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZihuKHQsZSkpcmV0dXJuIGU7dGhyb3cgbygiSW5jb3JyZWN0IGludm9jYXRpb24iKX19LDczOTM4OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig2NTMzNSksbz1TdHJpbmcsaT1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKG4oZSkpcmV0dXJuIGU7dGhyb3cgaShvKGUpKyIgaXMgbm90IGFuIG9iamVjdCIpfX0sNjYwMDQ6ZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIERhdGFWaWV3fSw4NTM0MzpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuLG8saSxhPXIoNjYwMDQpLHM9cig2NTA3NyksYz1yKDMwMjAwKSx1PXIoNzg0MjApLGw9cig2NTMzNSksZj1yKDM2NDkwKSxkPXIoODMwNjIpLHA9cigxMzgzOCksXz1yKDk3NzEyKSxoPXIoNzQ4NSksbT1yKDc2NDc3KSx5PXIoNDc2NTgpLGc9cig5Nzk3MCksdj1yKDM5Njg2KSxiPXIoMzE2MDIpLHc9cig1MDY2NSksUz1yKDk5MjA2KSxrPVMuZW5mb3JjZSx4PVMuZ2V0LEU9Yy5JbnQ4QXJyYXksQT1FJiZFLnByb3RvdHlwZSxUPWMuVWludDhDbGFtcGVkQXJyYXksUj1UJiZULnByb3RvdHlwZSxQPUUmJmcoRSksTz1BJiZnKEEpLE09T2JqZWN0LnByb3RvdHlwZSxGPWMuVHlwZUVycm9yLEk9YigidG9TdHJpbmdUYWciKSxqPXcoIlRZUEVEX0FSUkFZX1RBRyIpLEQ9IlR5cGVkQXJyYXlDb25zdHJ1Y3RvciIsTD1hJiYhIXYmJiJPcGVyYSIhPT1kKGMub3BlcmEpLFU9ITEsej17SW50OEFycmF5OjEsVWludDhBcnJheToxLFVpbnQ4Q2xhbXBlZEFycmF5OjEsSW50MTZBcnJheToyLFVpbnQxNkFycmF5OjIsSW50MzJBcnJheTo0LFVpbnQzMkFycmF5OjQsRmxvYXQzMkFycmF5OjQsRmxvYXQ2NEFycmF5Ojh9LEI9e0JpZ0ludDY0QXJyYXk6OCxCaWdVaW50NjRBcnJheTo4fSxIPWZ1bmN0aW9uKGUpe3ZhciB0PWcoZSk7aWYobCh0KSl7dmFyIHI9eCh0KTtyZXR1cm4gciYmZihyLEQpP3JbRF06SCh0KX19LFc9ZnVuY3Rpb24oZSl7aWYoIWwoZSkpcmV0dXJuITE7dmFyIHQ9ZChlKTtyZXR1cm4gZih6LHQpfHxmKEIsdCl9O2ZvcihuIGluIHopKGk9KG89Y1tuXSkmJm8ucHJvdG90eXBlKT9rKGkpW0RdPW86TD0hMTtmb3IobiBpbiBCKShpPShvPWNbbl0pJiZvLnByb3RvdHlwZSkmJihrKGkpW0RdPW8pO2lmKCghTHx8IXUoUCl8fFA9PT1GdW5jdGlvbi5wcm90b3R5cGUpJiYoUD1mdW5jdGlvbigpe3Rocm93IEYoIkluY29ycmVjdCBpbnZvY2F0aW9uIil9LEwpKWZvcihuIGluIHopY1tuXSYmdihjW25dLFApO2lmKCghTHx8IU98fE89PT1NKSYmKE89UC5wcm90b3R5cGUsTCkpZm9yKG4gaW4geiljW25dJiZ2KGNbbl0ucHJvdG90eXBlLE8pO2lmKEwmJmcoUikhPT1PJiZ2KFIsTykscyYmIWYoTyxJKSlmb3IobiBpbiBVPSEwLG0oTyxJLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGwodGhpcyk/dGhpc1tqXTp2b2lkIDB9fSkseiljW25dJiZfKGNbbl0saixuKTtlLmV4cG9ydHM9e05BVElWRV9BUlJBWV9CVUZGRVJfVklFV1M6TCxUWVBFRF9BUlJBWV9UQUc6VSYmaixhVHlwZWRBcnJheTpmdW5jdGlvbihlKXtpZihXKGUpKXJldHVybiBlO3Rocm93IEYoIlRhcmdldCBpcyBub3QgYSB0eXBlZCBhcnJheSIpfSxhVHlwZWRBcnJheUNvbnN0cnVjdG9yOmZ1bmN0aW9uKGUpe2lmKHUoZSkmJighdnx8eShQLGUpKSlyZXR1cm4gZTt0aHJvdyBGKHAoZSkrIiBpcyBub3QgYSB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvciIpfSxleHBvcnRUeXBlZEFycmF5TWV0aG9kOmZ1bmN0aW9uKGUsdCxyLG4pe2lmKHMpe2lmKHIpZm9yKHZhciBvIGluIHope3ZhciBpPWNbb107aWYoaSYmZihpLnByb3RvdHlwZSxlKSl0cnl7ZGVsZXRlIGkucHJvdG90eXBlW2VdfWNhdGNoKHIpe3RyeXtpLnByb3RvdHlwZVtlXT10fWNhdGNoKGUpe319fU9bZV0mJiFyfHxoKE8sZSxyP3Q6TCYmQVtlXXx8dCxuKX19LGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2Q6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuLG87aWYocyl7aWYodil7aWYocilmb3IobiBpbiB6KWlmKChvPWNbbl0pJiZmKG8sZSkpdHJ5e2RlbGV0ZSBvW2VdfWNhdGNoKGUpe31pZihQW2VdJiYhcilyZXR1cm47dHJ5e3JldHVybiBoKFAsZSxyP3Q6TCYmUFtlXXx8dCl9Y2F0Y2goZSl7fX1mb3IobiBpbiB6KSEobz1jW25dKXx8b1tlXSYmIXJ8fGgobyxlLHQpfX0sZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yOkgsaXNWaWV3OmZ1bmN0aW9uKGUpe2lmKCFsKGUpKXJldHVybiExO3ZhciB0PWQoZSk7cmV0dXJuIkRhdGFWaWV3Ij09PXR8fGYoeix0KXx8ZihCLHQpfSxpc1R5cGVkQXJyYXk6VyxUeXBlZEFycmF5OlAsVHlwZWRBcnJheVByb3RvdHlwZTpPfX0sNDA0NDc6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIzNDkzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9MCxvPW4odCksaT1uZXcgZShvKTtvPnI7KWlbcl09dFtyKytdO3JldHVybiBpfX0sNTgxODY6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDU0NzYpLG89cig2NTM5KSxpPXIoMjM0OTMpLGE9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixhKXt2YXIgcyxjPW4odCksdT1pKGMpLGw9byhhLHUpO2lmKGUmJnIhPXIpe2Zvcig7dT5sOylpZigocz1jW2wrK10pIT1zKXJldHVybiEwfWVsc2UgZm9yKDt1Pmw7bCsrKWlmKChlfHxsIGluIGMpJiZjW2xdPT09cilyZXR1cm4gZXx8bHx8MDtyZXR1cm4hZSYmLTF9fTtlLmV4cG9ydHM9e2luY2x1ZGVzOmEoITApLGluZGV4T2Y6YSghMSl9fSw0NTU4MjpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNDY4ODUpLG89cig0ODY2NCksaT1yKDkyNjEyKSxhPXIoMjM0OTMpLHM9ZnVuY3Rpb24oZSl7dmFyIHQ9MT09PWU7cmV0dXJuIGZ1bmN0aW9uKHIscyxjKXtmb3IodmFyIHUsbD1pKHIpLGY9byhsKSxkPW4ocyxjKSxwPWEoZik7cC0tID4wOylpZihkKHU9ZltwXSxwLGwpKXN3aXRjaChlKXtjYXNlIDA6cmV0dXJuIHU7Y2FzZSAxOnJldHVybiBwfXJldHVybiB0Py0xOnZvaWQgMH19O2UuZXhwb3J0cz17ZmluZExhc3Q6cygwKSxmaW5kTGFzdEluZGV4OnMoMSl9fSwyOTYwOTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMzAyODEpO2UuZXhwb3J0cz1uKFtdLnNsaWNlKX0sOTM4OTI6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDE4Njc5KSxvPXIoMTQ2NiksaT1yKDY1MzM1KSxhPXIoMzE2MDIpKCJzcGVjaWVzIikscz1BcnJheTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIG4oZSkmJih0PWUuY29uc3RydWN0b3IsKG8odCkmJih0PT09c3x8bih0LnByb3RvdHlwZSkpfHxpKHQpJiZudWxsPT09KHQ9dFthXSkpJiYodD12b2lkIDApKSx2b2lkIDA9PT10P3M6dH19LDYyOTk4OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig5Mzg5Mik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyhuKGUpKSgwPT09dD8wOnQpfX0sOTQwMzM6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIzNDkzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9bihlKSxvPW5ldyB0KHIpLGk9MDtpPHI7aSsrKW9baV09ZVtyLWktMV07cmV0dXJuIG99fSw1MTg2NzpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMjM0OTMpLG89cig3OTMyOCksaT1SYW5nZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQscixhKXt2YXIgcz1uKGUpLGM9byhyKSx1PWM8MD9zK2M6YztpZih1Pj1zfHx1PDApdGhyb3cgaSgiSW5jb3JyZWN0IGluZGV4Iik7Zm9yKHZhciBsPW5ldyB0KHMpLGY9MDtmPHM7ZisrKWxbZl09Zj09PXU/YTplW2ZdO3JldHVybiBsfX0sOTc0OTk6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDMxNjAyKSgiaXRlcmF0b3IiKSxvPSExO3RyeXt2YXIgaT0wLGE9e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohIWkrK319LHJldHVybjpmdW5jdGlvbigpe289ITB9fTthW25dPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEFycmF5LmZyb20oYSwoZnVuY3Rpb24oKXt0aHJvdyAyfSkpfWNhdGNoKGUpe31lLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZighdCYmIW8pcmV0dXJuITE7dmFyIHI9ITE7dHJ5e3ZhciBpPXt9O2lbbl09ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOnI9ITB9fX19LGUoaSl9Y2F0Y2goZSl7fXJldHVybiByfX0sMTg1Njk6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDMwMjgxKSxvPW4oe30udG9TdHJpbmcpLGk9bigiIi5zbGljZSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBpKG8oZSksOCwtMSl9fSw4MzA2MjpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNDMxMjkpLG89cig3ODQyMCksaT1yKDE4NTY5KSxhPXIoMzE2MDIpKCJ0b1N0cmluZ1RhZyIpLHM9T2JqZWN0LGM9IkFyZ3VtZW50cyI9PT1pKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk7ZS5leHBvcnRzPW4/aTpmdW5jdGlvbihlKXt2YXIgdCxyLG47cmV0dXJuIHZvaWQgMD09PWU/IlVuZGVmaW5lZCI6bnVsbD09PWU/Ik51bGwiOiJzdHJpbmciPT10eXBlb2Yocj1mdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gZVt0XX1jYXRjaChlKXt9fSh0PXMoZSksYSkpP3I6Yz9pKHQpOiJPYmplY3QiPT09KG49aSh0KSkmJm8odC5jYWxsZWUpPyJBcmd1bWVudHMiOm59fSw4NDM2MTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMzY0OTApLG89cigxNTgxNiksaT1yKDk3NjMyKSxhPXIoNDM2MTApO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBzPW8odCksYz1hLmYsdT1pLmYsbD0wO2w8cy5sZW5ndGg7bCsrKXt2YXIgZj1zW2xdO24oZSxmKXx8ciYmbihyLGYpfHxjKGUsZix1KHQsZikpfX19LDcxNjg6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDkyMDc0KTtlLmV4cG9ydHM9IW4oKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4gZS5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbCxPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IGUpIT09ZS5wcm90b3R5cGV9KSl9LDQ4Mjk2OmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm57dmFsdWU6ZSxkb25lOnR9fX0sOTc3MTI6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDY1MDc3KSxvPXIoNDM2MTApLGk9cig2Njg0Myk7ZS5leHBvcnRzPW4/ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBvLmYoZSx0LGkoMSxyKSl9OmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZVt0XT1yLGV9fSw2Njg0MzpmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJue2VudW1lcmFibGU6ISgxJmUpLGNvbmZpZ3VyYWJsZTohKDImZSksd3JpdGFibGU6ISg0JmUpLHZhbHVlOnR9fX0sNTIwNTc6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDg2MDMyKSxvPXIoNDM2MTApLGk9cig2Njg0Myk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXt2YXIgYT1uKHQpO2EgaW4gZT9vLmYoZSxhLGkoMCxyKSk6ZVthXT1yfX0sNzY0Nzc6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDQ4MjE4KSxvPXIoNDM2MTApO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQscil7cmV0dXJuIHIuZ2V0JiZuKHIuZ2V0LHQse2dldHRlcjohMH0pLHIuc2V0JiZuKHIuc2V0LHQse3NldHRlcjohMH0pLG8uZihlLHQscil9fSw3NDg1OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig3ODQyMCksbz1yKDQzNjEwKSxpPXIoNDgyMTgpLGE9cig1OTQzMCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyLHMpe3N8fChzPXt9KTt2YXIgYz1zLmVudW1lcmFibGUsdT12b2lkIDAhPT1zLm5hbWU/cy5uYW1lOnQ7aWYobihyKSYmaShyLHUscykscy5nbG9iYWwpYz9lW3RdPXI6YSh0LHIpO2Vsc2V7dHJ5e3MudW5zYWZlP2VbdF0mJihjPSEwKTpkZWxldGUgZVt0XX1jYXRjaChlKXt9Yz9lW3RdPXI6by5mKGUsdCx7dmFsdWU6cixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohcy5ub25Db25maWd1cmFibGUsd3JpdGFibGU6IXMubm9uV3JpdGFibGV9KX1yZXR1cm4gZX19LDU5NDMwOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMDIwMCksbz1PYmplY3QuZGVmaW5lUHJvcGVydHk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dHJ5e28obixlLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoKHIpe25bZV09dH1yZXR1cm4gdH19LDY1MDc3OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig5MjA3NCk7ZS5leHBvcnRzPSFuKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSkpfSw5NjU2ODpmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7dmFyIHQ9Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuYWxsLHI9dm9pZCAwPT09dCYmdm9pZCAwIT09dDtlLmV4cG9ydHM9e2FsbDp0LElTX0hUTUxEREE6cn19LDIzMjYyOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMDIwMCksbz1yKDY1MzM1KSxpPW4uZG9jdW1lbnQsYT1vKGkpJiZvKGkuY3JlYXRlRWxlbWVudCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBhP2kuY3JlYXRlRWxlbWVudChlKTp7fX19LDU3MjQyOmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKGU+OTAwNzE5OTI1NDc0MDk5MSl0aHJvdyB0KCJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQiKTtyZXR1cm4gZX19LDI2NTY3OmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e0luZGV4U2l6ZUVycm9yOntzOiJJTkRFWF9TSVpFX0VSUiIsYzoxLG06MX0sRE9NU3RyaW5nU2l6ZUVycm9yOntzOiJET01TVFJJTkdfU0laRV9FUlIiLGM6MixtOjB9LEhpZXJhcmNoeVJlcXVlc3RFcnJvcjp7czoiSElFUkFSQ0hZX1JFUVVFU1RfRVJSIixjOjMsbToxfSxXcm9uZ0RvY3VtZW50RXJyb3I6e3M6IldST05HX0RPQ1VNRU5UX0VSUiIsYzo0LG06MX0sSW52YWxpZENoYXJhY3RlckVycm9yOntzOiJJTlZBTElEX0NIQVJBQ1RFUl9FUlIiLGM6NSxtOjF9LE5vRGF0YUFsbG93ZWRFcnJvcjp7czoiTk9fREFUQV9BTExPV0VEX0VSUiIsYzo2LG06MH0sTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6e3M6Ik5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiIsYzo3LG06MX0sTm90Rm91bmRFcnJvcjp7czoiTk9UX0ZPVU5EX0VSUiIsYzo4LG06MX0sTm90U3VwcG9ydGVkRXJyb3I6e3M6Ik5PVF9TVVBQT1JURURfRVJSIixjOjksbToxfSxJblVzZUF0dHJpYnV0ZUVycm9yOntzOiJJTlVTRV9BVFRSSUJVVEVfRVJSIixjOjEwLG06MX0sSW52YWxpZFN0YXRlRXJyb3I6e3M6IklOVkFMSURfU1RBVEVfRVJSIixjOjExLG06MX0sU3ludGF4RXJyb3I6e3M6IlNZTlRBWF9FUlIiLGM6MTIsbToxfSxJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3I6e3M6IklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiIsYzoxMyxtOjF9LE5hbWVzcGFjZUVycm9yOntzOiJOQU1FU1BBQ0VfRVJSIixjOjE0LG06MX0sSW52YWxpZEFjY2Vzc0Vycm9yOntzOiJJTlZBTElEX0FDQ0VTU19FUlIiLGM6MTUsbToxfSxWYWxpZGF0aW9uRXJyb3I6e3M6IlZBTElEQVRJT05fRVJSIixjOjE2LG06MH0sVHlwZU1pc21hdGNoRXJyb3I6e3M6IlRZUEVfTUlTTUFUQ0hfRVJSIixjOjE3LG06MX0sU2VjdXJpdHlFcnJvcjp7czoiU0VDVVJJVFlfRVJSIixjOjE4LG06MX0sTmV0d29ya0Vycm9yOntzOiJORVRXT1JLX0VSUiIsYzoxOSxtOjF9LEFib3J0RXJyb3I6e3M6IkFCT1JUX0VSUiIsYzoyMCxtOjF9LFVSTE1pc21hdGNoRXJyb3I6e3M6IlVSTF9NSVNNQVRDSF9FUlIiLGM6MjEsbToxfSxRdW90YUV4Y2VlZGVkRXJyb3I6e3M6IlFVT1RBX0VYQ0VFREVEX0VSUiIsYzoyMixtOjF9LFRpbWVvdXRFcnJvcjp7czoiVElNRU9VVF9FUlIiLGM6MjMsbToxfSxJbnZhbGlkTm9kZVR5cGVFcnJvcjp7czoiSU5WQUxJRF9OT0RFX1RZUEVfRVJSIixjOjI0LG06MX0sRGF0YUNsb25lRXJyb3I6e3M6IkRBVEFfQ0xPTkVfRVJSIixjOjI1LG06MX19fSwzODUyMzpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMjA0MTkpLG89cig3NTIyMyk7ZS5leHBvcnRzPSFuJiYhbyYmIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJiJvYmplY3QiPT10eXBlb2YgZG9jdW1lbnR9LDIwNDE5OmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9Im9iamVjdCI9PXR5cGVvZiBEZW5vJiZEZW5vJiYib2JqZWN0Ij09dHlwZW9mIERlbm8udmVyc2lvbn0sMTI2NzE6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDQ3MDYxKTtlLmV4cG9ydHM9L2lwYWR8aXBob25lfGlwb2QvaS50ZXN0KG4pJiYidW5kZWZpbmVkIiE9dHlwZW9mIFBlYmJsZX0sNjIwNTA6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDQ3MDYxKTtlLmV4cG9ydHM9Lyg/OmlwYWR8aXBob25lfGlwb2QpLiphcHBsZXdlYmtpdC9pLnRlc3Qobil9LDc1MjIzOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMDIwMCksbz1yKDE4NTY5KTtlLmV4cG9ydHM9InByb2Nlc3MiPT09byhuLnByb2Nlc3MpfSw5NDMxODpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNDcwNjEpO2UuZXhwb3J0cz0vd2ViMHMoPyEuKmNocm9tZSkvaS50ZXN0KG4pfSw0NzA2MTpmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPSJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiZTdHJpbmcobmF2aWdhdG9yLnVzZXJBZ2VudCl8fCIifSw2ODQ1OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG4sbyxpPXIoMzAyMDApLGE9cig0NzA2MSkscz1pLnByb2Nlc3MsYz1pLkRlbm8sdT1zJiZzLnZlcnNpb25zfHxjJiZjLnZlcnNpb24sbD11JiZ1LnY4O2wmJihvPShuPWwuc3BsaXQoIi4iKSlbMF0+MCYmblswXTw0PzE6KyhuWzBdK25bMV0pKSwhbyYmYSYmKCEobj1hLm1hdGNoKC9FZGdlXC8oXGQrKS8pKXx8blsxXT49NzQpJiYobj1hLm1hdGNoKC9DaHJvbWVcLyhcZCspLykpJiYobz0rblsxXSksZS5leHBvcnRzPW99LDQyNzAxOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMDIwMCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBuW2VdLnByb3RvdHlwZX19LDMwMjkwOmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXX0sNDY0NTI6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDMwMjgxKSxvPUVycm9yLGk9bigiIi5yZXBsYWNlKSxhPVN0cmluZyhvKCJ6eGNhc2QiKS5zdGFjaykscz0vXG5ccyphdCBbXjpdKjpbXlxuXSovLGM9cy50ZXN0KGEpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKGMmJiJzdHJpbmciPT10eXBlb2YgZSYmIW8ucHJlcGFyZVN0YWNrVHJhY2UpZm9yKDt0LS07KWU9aShlLHMsIiIpO3JldHVybiBlfX0sMTcxMDI6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDk3NzEyKSxvPXIoNDY0NTIpLGk9cig3MDQ2MiksYT1FcnJvci5jYXB0dXJlU3RhY2tUcmFjZTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIscyl7aSYmKGE/YShlLHQpOm4oZSwic3RhY2siLG8ocixzKSkpfX0sNzA0NjI6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDkyMDc0KSxvPXIoNjY4NDMpO2UuZXhwb3J0cz0hbigoZnVuY3Rpb24oKXt2YXIgZT1FcnJvcigiYSIpO3JldHVybiEoInN0YWNrImluIGUpfHwoT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInN0YWNrIixvKDEsNykpLDchPT1lLnN0YWNrKX0pKX0sNzMzNTM6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDY1MDc3KSxvPXIoOTIwNzQpLGk9cig3MzkzOCksYT1yKDUzMTA1KSxzPXIoMjA2MTApLGM9RXJyb3IucHJvdG90eXBlLnRvU3RyaW5nLHU9bygoZnVuY3Rpb24oKXtpZihuKXt2YXIgZT1hKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwibmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzPT09ZX19KSk7aWYoInRydWUiIT09Yy5jYWxsKGUpKXJldHVybiEwfXJldHVybiIyOiAxIiE9PWMuY2FsbCh7bWVzc2FnZToxLG5hbWU6Mn0pfHwiRXJyb3IiIT09Yy5jYWxsKHt9KX0pKTtlLmV4cG9ydHM9dT9mdW5jdGlvbigpe3ZhciBlPWkodGhpcyksdD1zKGUubmFtZSwiRXJyb3IiKSxyPXMoZS5tZXNzYWdlKTtyZXR1cm4gdD9yP3QrIjogIityOnQ6cn06Y30sNTE2MDU6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDMwMjAwKSxvPXIoOTc2MzIpLmYsaT1yKDk3NzEyKSxhPXIoNzQ4NSkscz1yKDU5NDMwKSxjPXIoODQzNjEpLHU9cig4NDk3Nyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbCxmLGQscCxfPWUudGFyZ2V0LGg9ZS5nbG9iYWwsbT1lLnN0YXQ7aWYocj1oP246bT9uW19dfHxzKF8se30pOihuW19dfHx7fSkucHJvdG90eXBlKWZvcihsIGluIHQpe2lmKGQ9dFtsXSxmPWUuZG9udENhbGxHZXRTZXQ/KHA9byhyLGwpKSYmcC52YWx1ZTpyW2xdLCF1KGg/bDpfKyhtPyIuIjoiIyIpK2wsZS5mb3JjZWQpJiZ2b2lkIDAhPT1mKXtpZih0eXBlb2YgZD09dHlwZW9mIGYpY29udGludWU7YyhkLGYpfShlLnNoYW18fGYmJmYuc2hhbSkmJmkoZCwic2hhbSIsITApLGEocixsLGQsZSl9fX0sOTIwNzQ6ZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt0cnl7cmV0dXJuISFlKCl9Y2F0Y2goZSl7cmV0dXJuITB9fX0sODk2MDg6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDE4Njc5KSxvPXIoMjM0OTMpLGk9cig1NzI0MiksYT1yKDQ2ODg1KSxzPWZ1bmN0aW9uKGUsdCxyLGMsdSxsLGYsZCl7Zm9yKHZhciBwLF8saD11LG09MCx5PSEhZiYmYShmLGQpO208YzspbSBpbiByJiYocD15P3koclttXSxtLHQpOnJbbV0sbD4wJiZuKHApPyhfPW8ocCksaD1zKGUsdCxwLF8saCxsLTEpLTEpOihpKGgrMSksZVtoXT1wKSxoKyspLG0rKztyZXR1cm4gaH07ZS5leHBvcnRzPXN9LDk5MDcwOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzODgyMyksbz1GdW5jdGlvbi5wcm90b3R5cGUsaT1vLmFwcGx5LGE9by5jYWxsO2UuZXhwb3J0cz0ib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuYXBwbHl8fChuP2EuYmluZChpKTpmdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGksYXJndW1lbnRzKX0pfSw0Njg4NTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNDMwOTEpLG89cigyNDYwMSksaT1yKDM4ODIzKSxhPW4obi5iaW5kKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbyhlKSx2b2lkIDA9PT10P2U6aT9hKGUsdCk6ZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0LGFyZ3VtZW50cyl9fX0sMzg4MjM6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDkyMDc0KTtlLmV4cG9ydHM9IW4oKGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oKXt9LmJpbmQoKTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgZXx8ZS5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIil9KSl9LDcyMzY4OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzODgyMyksbz1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbDtlLmV4cG9ydHM9bj9vLmJpbmQobyk6ZnVuY3Rpb24oKXtyZXR1cm4gby5hcHBseShvLGFyZ3VtZW50cyl9fSwxMjA3MTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNjUwNzcpLG89cigzNjQ5MCksaT1GdW5jdGlvbi5wcm90b3R5cGUsYT1uJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHM9byhpLCJuYW1lIiksYz1zJiYic29tZXRoaW5nIj09PWZ1bmN0aW9uKCl7fS5uYW1lLHU9cyYmKCFufHxuJiZhKGksIm5hbWUiKS5jb25maWd1cmFibGUpO2UuZXhwb3J0cz17RVhJU1RTOnMsUFJPUEVSOmMsQ09ORklHVVJBQkxFOnV9fSwxMTM4NTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMzAyODEpLG89cigyNDYwMSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXt0cnl7cmV0dXJuIG4obyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdClbcl0pKX1jYXRjaChlKXt9fX0sNDMwOTE6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDE4NTY5KSxvPXIoMzAyODEpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZigiRnVuY3Rpb24iPT09bihlKSlyZXR1cm4gbyhlKX19LDMwMjgxOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzODgyMyksbz1GdW5jdGlvbi5wcm90b3R5cGUsaT1vLmNhbGwsYT1uJiZvLmJpbmQuYmluZChpLGkpO2UuZXhwb3J0cz1uP2E6ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGkuYXBwbHkoZSxhcmd1bWVudHMpfX19LDU2NDkyOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMDIwMCksbz1yKDc4NDIwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyPyhyPW5bZV0sbyhyKT9yOnZvaWQgMCk6bltlXSYmbltlXVt0XTt2YXIgcn19LDUxODk4OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig4MzA2Miksbz1yKDQ2NDU3KSxpPXIoODg0MDYpLGE9cig1MjIyOCkscz1yKDMxNjAyKSgiaXRlcmF0b3IiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIWkoZSkpcmV0dXJuIG8oZSxzKXx8byhlLCJAQGl0ZXJhdG9yIil8fGFbbihlKV19fSw3OTUyNjpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNzIzNjgpLG89cigyNDYwMSksaT1yKDczOTM4KSxhPXIoMTM4MzgpLHM9cig1MTg5OCksYz1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDwyP3MoZSk6dDtpZihvKHIpKXJldHVybiBpKG4ocixlKSk7dGhyb3cgYyhhKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9fSw0NjQ1NzpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMjQ2MDEpLG89cig4ODQwNik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIHI9ZVt0XTtyZXR1cm4gbyhyKT92b2lkIDA6bihyKX19LDk0NDMzOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMDI4MSksbz1yKDkyNjEyKSxpPU1hdGguZmxvb3IsYT1uKCIiLmNoYXJBdCkscz1uKCIiLnJlcGxhY2UpLGM9bigiIi5zbGljZSksdT0vXCQoWyQmJ2BdfFxkezEsMn18PFtePl0qPikvZyxsPS9cJChbJCYnYF18XGR7MSwyfSkvZztlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIsbixmLGQpe3ZhciBwPXIrZS5sZW5ndGgsXz1uLmxlbmd0aCxoPWw7cmV0dXJuIHZvaWQgMCE9PWYmJihmPW8oZiksaD11KSxzKGQsaCwoZnVuY3Rpb24obyxzKXt2YXIgdTtzd2l0Y2goYShzLDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiBlO2Nhc2UiYCI6cmV0dXJuIGModCwwLHIpO2Nhc2UiJyI6cmV0dXJuIGModCxwKTtjYXNlIjwiOnU9ZltjKHMsMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIGw9K3M7aWYoMD09PWwpcmV0dXJuIG87aWYobD5fKXt2YXIgZD1pKGwvMTApO3JldHVybiAwPT09ZD9vOmQ8PV8/dm9pZCAwPT09bltkLTFdP2EocywxKTpuW2QtMV0rYShzLDEpOm99dT1uW2wtMV19cmV0dXJuIHZvaWQgMD09PXU/IiI6dX0pKX19LDMwMjAwOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuTWF0aD09PU1hdGgmJmV9O2UuZXhwb3J0cz1uKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8fG4oIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyl8fG4oIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8bigib2JqZWN0Ij09dHlwZW9mIHIuZyYmci5nKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8dGhpc3x8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKX0sMzY0OTA6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDMwMjgxKSxvPXIoOTI2MTIpLGk9bih7fS5oYXNPd25Qcm9wZXJ0eSk7ZS5leHBvcnRzPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGkobyhlKSx0KX19LDY3NzA4OmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e319LDI4ODkwOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig1NjQ5Mik7ZS5leHBvcnRzPW4oImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iil9LDg3Njk0OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig2NTA3Nyksbz1yKDkyMDc0KSxpPXIoMjMyNjIpO2UuZXhwb3J0cz0hbiYmIW8oKGZ1bmN0aW9uKCl7cmV0dXJuIDchPT1PYmplY3QuZGVmaW5lUHJvcGVydHkoaSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpfSw0ODY2NDpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMzAyODEpLG89cig5MjA3NCksaT1yKDE4NTY5KSxhPU9iamVjdCxzPW4oIiIuc3BsaXQpO2UuZXhwb3J0cz1vKChmdW5jdGlvbigpe3JldHVybiFhKCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KSk/ZnVuY3Rpb24oZSl7cmV0dXJuIlN0cmluZyI9PT1pKGUpP3MoZSwiIik6YShlKX06YX0sOTMwNTQ6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDc4NDIwKSxvPXIoNjUzMzUpLGk9cigzOTY4Nik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXt2YXIgYSxzO3JldHVybiBpJiZuKGE9dC5jb25zdHJ1Y3RvcikmJmEhPT1yJiZvKHM9YS5wcm90b3R5cGUpJiZzIT09ci5wcm90b3R5cGUmJmkoZSxzKSxlfX0sNjk5NjU6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDMwMjgxKSxvPXIoNzg0MjApLGk9cig0OTMxMCksYT1uKEZ1bmN0aW9uLnRvU3RyaW5nKTtvKGkuaW5zcGVjdFNvdXJjZSl8fChpLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSl9KSxlLmV4cG9ydHM9aS5pbnNwZWN0U291cmNlfSw1NTgzMzpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNjUzMzUpLG89cig5NzcxMik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7bih0KSYmImNhdXNlImluIHQmJm8oZSwiY2F1c2UiLHQuY2F1c2UpfX0sOTkyMDY6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixvLGksYT1yKDgzNjkpLHM9cigzMDIwMCksYz1yKDY1MzM1KSx1PXIoOTc3MTIpLGw9cigzNjQ5MCksZj1yKDQ5MzEwKSxkPXIoMjU5MDQpLHA9cig2NzcwOCksXz0iT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQiLGg9cy5UeXBlRXJyb3IsbT1zLldlYWtNYXA7aWYoYXx8Zi5zdGF0ZSl7dmFyIHk9Zi5zdGF0ZXx8KGYuc3RhdGU9bmV3IG0pO3kuZ2V0PXkuZ2V0LHkuaGFzPXkuaGFzLHkuc2V0PXkuc2V0LG49ZnVuY3Rpb24oZSx0KXtpZih5LmhhcyhlKSl0aHJvdyBoKF8pO3JldHVybiB0LmZhY2FkZT1lLHkuc2V0KGUsdCksdH0sbz1mdW5jdGlvbihlKXtyZXR1cm4geS5nZXQoZSl8fHt9fSxpPWZ1bmN0aW9uKGUpe3JldHVybiB5LmhhcyhlKX19ZWxzZXt2YXIgZz1kKCJzdGF0ZSIpO3BbZ109ITAsbj1mdW5jdGlvbihlLHQpe2lmKGwoZSxnKSl0aHJvdyBoKF8pO3JldHVybiB0LmZhY2FkZT1lLHUoZSxnLHQpLHR9LG89ZnVuY3Rpb24oZSl7cmV0dXJuIGwoZSxnKT9lW2ddOnt9fSxpPWZ1bmN0aW9uKGUpe3JldHVybiBsKGUsZyl9fWUuZXhwb3J0cz17c2V0Om4sZ2V0Om8saGFzOmksZW5mb3JjZTpmdW5jdGlvbihlKXtyZXR1cm4gaShlKT9vKGUpOm4oZSx7fSl9LGdldHRlckZvcjpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIHI7aWYoIWModCl8fChyPW8odCkpLnR5cGUhPT1lKXRocm93IGgoIkluY29tcGF0aWJsZSByZWNlaXZlciwgIitlKyIgcmVxdWlyZWQiKTtyZXR1cm4gcn19fX0sOTkwMzQ6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDMxNjAyKSxvPXIoNTIyMjgpLGk9bigiaXRlcmF0b3IiKSxhPUFycmF5LnByb3RvdHlwZTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PWUmJihvLkFycmF5PT09ZXx8YVtpXT09PWUpfX0sMTg2Nzk6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDE4NTY5KTtlLmV4cG9ydHM9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oZSl7cmV0dXJuIkFycmF5Ij09PW4oZSl9fSw1NzQ3MjpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoODMwNjIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1uKGUpO3JldHVybiJCaWdJbnQ2NEFycmF5Ij09PXR8fCJCaWdVaW50NjRBcnJheSI9PT10fX0sNzg0MjA6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDk2NTY4KSxvPW4uYWxsO2UuZXhwb3J0cz1uLklTX0hUTUxEREE/ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGV8fGU9PT1vfTpmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZX19LDE0NjY6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDMwMjgxKSxvPXIoOTIwNzQpLGk9cig3ODQyMCksYT1yKDgzMDYyKSxzPXIoNTY0OTIpLGM9cig2OTk2NSksdT1mdW5jdGlvbigpe30sbD1bXSxmPXMoIlJlZmxlY3QiLCJjb25zdHJ1Y3QiKSxkPS9eXHMqKD86Y2xhc3N8ZnVuY3Rpb24pXGIvLHA9bihkLmV4ZWMpLF89IWQuZXhlYyh1KSxoPWZ1bmN0aW9uKGUpe2lmKCFpKGUpKXJldHVybiExO3RyeXtyZXR1cm4gZih1LGwsZSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSxtPWZ1bmN0aW9uKGUpe2lmKCFpKGUpKXJldHVybiExO3N3aXRjaChhKGUpKXtjYXNlIkFzeW5jRnVuY3Rpb24iOmNhc2UiR2VuZXJhdG9yRnVuY3Rpb24iOmNhc2UiQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiI6cmV0dXJuITF9dHJ5e3JldHVybiBffHwhIXAoZCxjKGUpKX1jYXRjaChlKXtyZXR1cm4hMH19O20uc2hhbT0hMCxlLmV4cG9ydHM9IWZ8fG8oKGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIGgoaC5jYWxsKXx8IWgoT2JqZWN0KXx8IWgoKGZ1bmN0aW9uKCl7ZT0hMH0pKXx8ZX0pKT9tOmh9LDg0OTc3OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig5MjA3NCksbz1yKDc4NDIwKSxpPS8jfFwucHJvdG90eXBlXC4vLGE9ZnVuY3Rpb24oZSx0KXt2YXIgcj1jW3MoZSldO3JldHVybiByPT09bHx8ciE9PXUmJihvKHQpP24odCk6ISF0KX0scz1hLm5vcm1hbGl6ZT1mdW5jdGlvbihlKXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2UoaSwiLiIpLnRvTG93ZXJDYXNlKCl9LGM9YS5kYXRhPXt9LHU9YS5OQVRJVkU9Ik4iLGw9YS5QT0xZRklMTD0iUCI7ZS5leHBvcnRzPWF9LDg4NDA2OmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWV9fSw2NTMzNTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNzg0MjApLG89cig5NjU2OCksaT1vLmFsbDtlLmV4cG9ydHM9by5JU19IVE1MRERBP2Z1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZT9udWxsIT09ZTpuKGUpfHxlPT09aX06ZnVuY3Rpb24oZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlP251bGwhPT1lOm4oZSl9fSw2OTI2OmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ITF9LDYyNDQ5OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig2NTMzNSksbz1yKDE4NTY5KSxpPXIoMzE2MDIpKCJtYXRjaCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gbihlKSYmKHZvaWQgMCE9PSh0PWVbaV0pPyEhdDoiUmVnRXhwIj09PW8oZSkpfX0sMzIzMjg6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDU2NDkyKSxvPXIoNzg0MjApLGk9cig0NzY1OCksYT1yKDUyMjUpLHM9T2JqZWN0O2UuZXhwb3J0cz1hP2Z1bmN0aW9uKGUpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgZX06ZnVuY3Rpb24oZSl7dmFyIHQ9bigiU3ltYm9sIik7cmV0dXJuIG8odCkmJmkodC5wcm90b3R5cGUscyhlKSl9fSw1MjkyOTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNDY4ODUpLG89cig3MjM2OCksaT1yKDczOTM4KSxhPXIoMTM4MzgpLHM9cig5OTAzNCksYz1yKDIzNDkzKSx1PXIoNDc2NTgpLGw9cig3OTUyNiksZj1yKDUxODk4KSxkPXIoNjk4NjgpLHA9VHlwZUVycm9yLF89ZnVuY3Rpb24oZSx0KXt0aGlzLnN0b3BwZWQ9ZSx0aGlzLnJlc3VsdD10fSxoPV8ucHJvdG90eXBlO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQscil7dmFyIG0seSxnLHYsYix3LFMsaz1yJiZyLnRoYXQseD0hKCFyfHwhci5BU19FTlRSSUVTKSxFPSEoIXJ8fCFyLklTX1JFQ09SRCksQT0hKCFyfHwhci5JU19JVEVSQVRPUiksVD0hKCFyfHwhci5JTlRFUlJVUFRFRCksUj1uKHQsayksUD1mdW5jdGlvbihlKXtyZXR1cm4gbSYmZChtLCJub3JtYWwiLGUpLG5ldyBfKCEwLGUpfSxPPWZ1bmN0aW9uKGUpe3JldHVybiB4PyhpKGUpLFQ/UihlWzBdLGVbMV0sUCk6UihlWzBdLGVbMV0pKTpUP1IoZSxQKTpSKGUpfTtpZihFKW09ZS5pdGVyYXRvcjtlbHNlIGlmKEEpbT1lO2Vsc2V7aWYoISh5PWYoZSkpKXRocm93IHAoYShlKSsiIGlzIG5vdCBpdGVyYWJsZSIpO2lmKHMoeSkpe2ZvcihnPTAsdj1jKGUpO3Y+ZztnKyspaWYoKGI9TyhlW2ddKSkmJnUoaCxiKSlyZXR1cm4gYjtyZXR1cm4gbmV3IF8oITEpfW09bChlLHkpfWZvcih3PUU/ZS5uZXh0Om0ubmV4dDshKFM9byh3LG0pKS5kb25lOyl7dHJ5e2I9TyhTLnZhbHVlKX1jYXRjaChlKXtkKG0sInRocm93IixlKX1pZigib2JqZWN0Ij09dHlwZW9mIGImJmImJnUoaCxiKSlyZXR1cm4gYn1yZXR1cm4gbmV3IF8oITEpfX0sNjk4Njg6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDcyMzY4KSxvPXIoNzM5MzgpLGk9cig0NjQ1Nyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXt2YXIgYSxzO28oZSk7dHJ5e2lmKCEoYT1pKGUsInJldHVybiIpKSl7aWYoInRocm93Ij09PXQpdGhyb3cgcjtyZXR1cm4gcn1hPW4oYSxlKX1jYXRjaChlKXtzPSEwLGE9ZX1pZigidGhyb3ciPT09dCl0aHJvdyByO2lmKHMpdGhyb3cgYTtyZXR1cm4gbyhhKSxyfX0sMTgyODc6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDQ5MzA2KS5JdGVyYXRvclByb3RvdHlwZSxvPXIoNTMxMDUpLGk9cig2Njg0MyksYT1yKDc1MjgyKSxzPXIoNTIyMjgpLGM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyLHUpe3ZhciBsPXQrIiBJdGVyYXRvciI7cmV0dXJuIGUucHJvdG90eXBlPW8obix7bmV4dDppKCshdSxyKX0pLGEoZSxsLCExLCEwKSxzW2xdPWMsZX19LDQ5MzA2OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG4sbyxpLGE9cig5MjA3NCkscz1yKDc4NDIwKSxjPXIoNjUzMzUpLHU9cig1MzEwNSksbD1yKDk3OTcwKSxmPXIoNzQ4NSksZD1yKDMxNjAyKSxwPXIoNjkyNiksXz1kKCJpdGVyYXRvciIpLGg9ITE7W10ua2V5cyYmKCJuZXh0ImluKGk9W10ua2V5cygpKT8obz1sKGwoaSkpKSE9PU9iamVjdC5wcm90b3R5cGUmJihuPW8pOmg9ITApLCFjKG4pfHxhKChmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBuW19dLmNhbGwoZSkhPT1lfSkpP249e306cCYmKG49dShuKSkscyhuW19dKXx8ZihuLF8sKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZS5leHBvcnRzPXtJdGVyYXRvclByb3RvdHlwZTpuLEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6aH19LDUyMjI4OmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e319LDIzNDkzOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMzc0Nyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBuKGUubGVuZ3RoKX19LDQ4MjE4OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMDI4MSksbz1yKDkyMDc0KSxpPXIoNzg0MjApLGE9cigzNjQ5MCkscz1yKDY1MDc3KSxjPXIoMTIwNzEpLkNPTkZJR1VSQUJMRSx1PXIoNjk5NjUpLGw9cig5OTIwNiksZj1sLmVuZm9yY2UsZD1sLmdldCxwPVN0cmluZyxfPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxoPW4oIiIuc2xpY2UpLG09bigiIi5yZXBsYWNlKSx5PW4oW10uam9pbiksZz1zJiYhbygoZnVuY3Rpb24oKXtyZXR1cm4gOCE9PV8oKGZ1bmN0aW9uKCl7fSksImxlbmd0aCIse3ZhbHVlOjh9KS5sZW5ndGh9KSksdj1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIiksYj1lLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIpeyJTeW1ib2woIj09PWgocCh0KSwwLDcpJiYodD0iWyIrbShwKHQpLC9eU3ltYm9sXCgoW14pXSopXCkvLCIkMSIpKyJdIiksciYmci5nZXR0ZXImJih0PSJnZXQgIit0KSxyJiZyLnNldHRlciYmKHQ9InNldCAiK3QpLCghYShlLCJuYW1lIil8fGMmJmUubmFtZSE9PXQpJiYocz9fKGUsIm5hbWUiLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMH0pOmUubmFtZT10KSxnJiZyJiZhKHIsImFyaXR5IikmJmUubGVuZ3RoIT09ci5hcml0eSYmXyhlLCJsZW5ndGgiLHt2YWx1ZTpyLmFyaXR5fSk7dHJ5e3ImJmEociwiY29uc3RydWN0b3IiKSYmci5jb25zdHJ1Y3Rvcj9zJiZfKGUsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSk6ZS5wcm90b3R5cGUmJihlLnByb3RvdHlwZT12b2lkIDApfWNhdGNoKGUpe312YXIgbj1mKGUpO3JldHVybiBhKG4sInNvdXJjZSIpfHwobi5zb3VyY2U9eSh2LCJzdHJpbmciPT10eXBlb2YgdD90OiIiKSksZX07RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPWIoKGZ1bmN0aW9uKCl7cmV0dXJuIGkodGhpcykmJmQodGhpcykuc291cmNlfHx1KHRoaXMpfSksInRvU3RyaW5nIil9LDE5ODMwOmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1NYXRoLmNlaWwscj1NYXRoLmZsb29yO2UuZXhwb3J0cz1NYXRoLnRydW5jfHxmdW5jdGlvbihlKXt2YXIgbj0rZTtyZXR1cm4obj4wP3I6dCkobil9fSw0NzQ2MjpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuLG8saSxhLHMsYz1yKDMwMjAwKSx1PXIoNDY4ODUpLGw9cig5NzYzMikuZixmPXIoNzQ5MjIpLnNldCxkPXIoOTc2MDApLHA9cig2MjA1MCksXz1yKDEyNjcxKSxoPXIoOTQzMTgpLG09cig3NTIyMykseT1jLk11dGF0aW9uT2JzZXJ2ZXJ8fGMuV2ViS2l0TXV0YXRpb25PYnNlcnZlcixnPWMuZG9jdW1lbnQsdj1jLnByb2Nlc3MsYj1jLlByb21pc2Usdz1sKGMsInF1ZXVlTWljcm90YXNrIiksUz13JiZ3LnZhbHVlO2lmKCFTKXt2YXIgaz1uZXcgZCx4PWZ1bmN0aW9uKCl7dmFyIGUsdDtmb3IobSYmKGU9di5kb21haW4pJiZlLmV4aXQoKTt0PWsuZ2V0KCk7KXRyeXt0KCl9Y2F0Y2goZSl7dGhyb3cgay5oZWFkJiZuKCksZX1lJiZlLmVudGVyKCl9O3B8fG18fGh8fCF5fHwhZz8hXyYmYiYmYi5yZXNvbHZlPygoYT1iLnJlc29sdmUodm9pZCAwKSkuY29uc3RydWN0b3I9YixzPXUoYS50aGVuLGEpLG49ZnVuY3Rpb24oKXtzKHgpfSk6bT9uPWZ1bmN0aW9uKCl7di5uZXh0VGljayh4KX06KGY9dShmLGMpLG49ZnVuY3Rpb24oKXtmKHgpfSk6KG89ITAsaT1nLmNyZWF0ZVRleHROb2RlKCIiKSxuZXcgeSh4KS5vYnNlcnZlKGkse2NoYXJhY3RlckRhdGE6ITB9KSxuPWZ1bmN0aW9uKCl7aS5kYXRhPW89IW99KSxTPWZ1bmN0aW9uKGUpe2suaGVhZHx8bigpLGsuYWRkKGUpfX1lLmV4cG9ydHM9U30sMzk4MzY6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDI0NjAxKSxvPVR5cGVFcnJvcixpPWZ1bmN0aW9uKGUpe3ZhciB0LHI7dGhpcy5wcm9taXNlPW5ldyBlKChmdW5jdGlvbihlLG4pe2lmKHZvaWQgMCE9PXR8fHZvaWQgMCE9PXIpdGhyb3cgbygiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTt0PWUscj1ufSkpLHRoaXMucmVzb2x2ZT1uKHQpLHRoaXMucmVqZWN0PW4ocil9O2UuZXhwb3J0cy5mPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgaShlKX19LDIwNjEwOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig5NTM2Mik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PWU/YXJndW1lbnRzLmxlbmd0aDwyPyIiOnQ6bihlKX19LDUzMTA1OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG4sbz1yKDczOTM4KSxpPXIoNjUzMTgpLGE9cigzMDI5MCkscz1yKDY3NzA4KSxjPXIoMjg4OTApLHU9cigyMzI2MiksbD1yKDI1OTA0KSxmPSJwcm90b3R5cGUiLGQ9InNjcmlwdCIscD1sKCJJRV9QUk9UTyIpLF89ZnVuY3Rpb24oKXt9LGg9ZnVuY3Rpb24oZSl7cmV0dXJuIjwiK2QrIj4iK2UrIjwvIitkKyI+In0sbT1mdW5jdGlvbihlKXtlLndyaXRlKGgoIiIpKSxlLmNsb3NlKCk7dmFyIHQ9ZS5wYXJlbnRXaW5kb3cuT2JqZWN0O3JldHVybiBlPW51bGwsdH0seT1mdW5jdGlvbigpe3RyeXtuPW5ldyBBY3RpdmVYT2JqZWN0KCJodG1sZmlsZSIpfWNhdGNoKGUpe312YXIgZSx0LHI7eT0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmRvbWFpbiYmbj9tKG4pOih0PXUoImlmcmFtZSIpLHI9ImphdmEiK2QrIjoiLHQuc3R5bGUuZGlzcGxheT0ibm9uZSIsYy5hcHBlbmRDaGlsZCh0KSx0LnNyYz1TdHJpbmcociksKGU9dC5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCksZS53cml0ZShoKCJkb2N1bWVudC5GPU9iamVjdCIpKSxlLmNsb3NlKCksZS5GKTptKG4pO2Zvcih2YXIgbz1hLmxlbmd0aDtvLS07KWRlbGV0ZSB5W2ZdW2Fbb11dO3JldHVybiB5KCl9O3NbcF09ITAsZS5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKGUsdCl7dmFyIHI7cmV0dXJuIG51bGwhPT1lPyhfW2ZdPW8oZSkscj1uZXcgXyxfW2ZdPW51bGwscltwXT1lKTpyPXkoKSx2b2lkIDA9PT10P3I6aS5mKHIsdCl9fSw2NTMxODpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNjUwNzcpLG89cig5NDQ5MSksaT1yKDQzNjEwKSxhPXIoNzM5MzgpLHM9cig1NDc2KSxjPXIoOTE2NDEpO3QuZj1uJiYhbz9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbihlLHQpe2EoZSk7Zm9yKHZhciByLG49cyh0KSxvPWModCksdT1vLmxlbmd0aCxsPTA7dT5sOylpLmYoZSxyPW9bbCsrXSxuW3JdKTtyZXR1cm4gZX19LDQzNjEwOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig2NTA3Nyksbz1yKDg3Njk0KSxpPXIoOTQ0OTEpLGE9cig3MzkzOCkscz1yKDg2MDMyKSxjPVR5cGVFcnJvcix1PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsZj0iZW51bWVyYWJsZSIsZD0iY29uZmlndXJhYmxlIixwPSJ3cml0YWJsZSI7dC5mPW4/aT9mdW5jdGlvbihlLHQscil7aWYoYShlKSx0PXModCksYShyKSwiZnVuY3Rpb24iPT10eXBlb2YgZSYmInByb3RvdHlwZSI9PT10JiYidmFsdWUiaW4gciYmcCBpbiByJiYhcltwXSl7dmFyIG49bChlLHQpO24mJm5bcF0mJihlW3RdPXIudmFsdWUscj17Y29uZmlndXJhYmxlOmQgaW4gcj9yW2RdOm5bZF0sZW51bWVyYWJsZTpmIGluIHI/cltmXTpuW2ZdLHdyaXRhYmxlOiExfSl9cmV0dXJuIHUoZSx0LHIpfTp1OmZ1bmN0aW9uKGUsdCxyKXtpZihhKGUpLHQ9cyh0KSxhKHIpLG8pdHJ5e3JldHVybiB1KGUsdCxyKX1jYXRjaChlKXt9aWYoImdldCJpbiByfHwic2V0ImluIHIpdGhyb3cgYygiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gciYmKGVbdF09ci52YWx1ZSksZX19LDk3NjMyOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig2NTA3Nyksbz1yKDcyMzY4KSxpPXIoOTMwNCksYT1yKDY2ODQzKSxzPXIoNTQ3NiksYz1yKDg2MDMyKSx1PXIoMzY0OTApLGw9cig4NzY5NCksZj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3QuZj1uP2Y6ZnVuY3Rpb24oZSx0KXtpZihlPXMoZSksdD1jKHQpLGwpdHJ5e3JldHVybiBmKGUsdCl9Y2F0Y2goZSl7fWlmKHUoZSx0KSlyZXR1cm4gYSghbyhpLmYsZSx0KSxlW3RdKX19LDY0Nzg5OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigxNjM0Nyksbz1yKDMwMjkwKS5jb25jYXQoImxlbmd0aCIsInByb3RvdHlwZSIpO3QuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSxvKX19LDE4OTE2OmZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO3QuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSw5Nzk3MDpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMzY0OTApLG89cig3ODQyMCksaT1yKDkyNjEyKSxhPXIoMjU5MDQpLHM9cig3MTY4KSxjPWEoIklFX1BST1RPIiksdT1PYmplY3QsbD11LnByb3RvdHlwZTtlLmV4cG9ydHM9cz91LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKGUpe3ZhciB0PWkoZSk7aWYobih0LGMpKXJldHVybiB0W2NdO3ZhciByPXQuY29uc3RydWN0b3I7cmV0dXJuIG8ocikmJnQgaW5zdGFuY2VvZiByP3IucHJvdG90eXBlOnQgaW5zdGFuY2VvZiB1P2w6bnVsbH19LDQ3NjU4OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMDI4MSk7ZS5leHBvcnRzPW4oe30uaXNQcm90b3R5cGVPZil9LDE2MzQ3OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMDI4MSksbz1yKDM2NDkwKSxpPXIoNTQ3NiksYT1yKDU4MTg2KS5pbmRleE9mLHM9cig2NzcwOCksYz1uKFtdLnB1c2gpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciByLG49aShlKSx1PTAsbD1bXTtmb3IociBpbiBuKSFvKHMscikmJm8obixyKSYmYyhsLHIpO2Zvcig7dC5sZW5ndGg+dTspbyhuLHI9dFt1KytdKSYmKH5hKGwscil8fGMobCxyKSk7cmV0dXJuIGx9fSw5MTY0MTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTYzNDcpLG89cigzMDI5MCk7ZS5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbihlKXtyZXR1cm4gbihlLG8pfX0sOTMwNDpmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Isbz1uJiYhci5jYWxsKHsxOjJ9LDEpO3QuZj1vP2Z1bmN0aW9uKGUpe3ZhciB0PW4odGhpcyxlKTtyZXR1cm4hIXQmJnQuZW51bWVyYWJsZX06cn0sMzk2ODY6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDExMzg1KSxvPXIoNzM5MzgpLGk9cig3NDczKTtlLmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7dmFyIGUsdD0hMSxyPXt9O3RyeXsoZT1uKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIsInNldCIpKShyLFtdKSx0PXIgaW5zdGFuY2VvZiBBcnJheX1jYXRjaChlKXt9cmV0dXJuIGZ1bmN0aW9uKHIsbil7cmV0dXJuIG8ociksaShuKSx0P2UocixuKTpyLl9fcHJvdG9fXz1uLHJ9fSgpOnZvaWQgMCl9LDY5NzUxOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig3MjM2OCksbz1yKDc4NDIwKSxpPXIoNjUzMzUpLGE9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciByLHM7aWYoInN0cmluZyI9PT10JiZvKHI9ZS50b1N0cmluZykmJiFpKHM9bihyLGUpKSlyZXR1cm4gcztpZihvKHI9ZS52YWx1ZU9mKSYmIWkocz1uKHIsZSkpKXJldHVybiBzO2lmKCJzdHJpbmciIT09dCYmbyhyPWUudG9TdHJpbmcpJiYhaShzPW4ocixlKSkpcmV0dXJuIHM7dGhyb3cgYSgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9fSwxNTgxNjpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNTY0OTIpLG89cigzMDI4MSksaT1yKDY0Nzg5KSxhPXIoMTg5MTYpLHM9cig3MzkzOCksYz1vKFtdLmNvbmNhdCk7ZS5leHBvcnRzPW4oIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKGUpe3ZhciB0PWkuZihzKGUpKSxyPWEuZjtyZXR1cm4gcj9jKHQscihlKSk6dH19LDUwMjQyOmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybntlcnJvcjohMSx2YWx1ZTplKCl9fWNhdGNoKGUpe3JldHVybntlcnJvcjohMCx2YWx1ZTplfX19fSwzOTA1MzpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMzAyMDApLG89cigyNDEzKSxpPXIoNzg0MjApLGE9cig4NDk3Nykscz1yKDY5OTY1KSxjPXIoMzE2MDIpLHU9cigzODUyMyksbD1yKDIwNDE5KSxmPXIoNjkyNiksZD1yKDY4NDUpLHA9byYmby5wcm90b3R5cGUsXz1jKCJzcGVjaWVzIiksaD0hMSxtPWkobi5Qcm9taXNlUmVqZWN0aW9uRXZlbnQpLHk9YSgiUHJvbWlzZSIsKGZ1bmN0aW9uKCl7dmFyIGU9cyhvKSx0PWUhPT1TdHJpbmcobyk7aWYoIXQmJjY2PT09ZClyZXR1cm4hMDtpZihmJiYoIXAuY2F0Y2h8fCFwLmZpbmFsbHkpKXJldHVybiEwO2lmKCFkfHxkPDUxfHwhL25hdGl2ZSBjb2RlLy50ZXN0KGUpKXt2YXIgcj1uZXcgbygoZnVuY3Rpb24oZSl7ZSgxKX0pKSxuPWZ1bmN0aW9uKGUpe2UoKGZ1bmN0aW9uKCl7fSksKGZ1bmN0aW9uKCl7fSkpfTtpZigoci5jb25zdHJ1Y3Rvcj17fSlbX109biwhKGg9ci50aGVuKChmdW5jdGlvbigpe30pKWluc3RhbmNlb2YgbikpcmV0dXJuITB9cmV0dXJuIXQmJih1fHxsKSYmIW19KSk7ZS5leHBvcnRzPXtDT05TVFJVQ1RPUjp5LFJFSkVDVElPTl9FVkVOVDptLFNVQkNMQVNTSU5HOmh9fSwyNDEzOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMDIwMCk7ZS5leHBvcnRzPW4uUHJvbWlzZX0sOTgwMzpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNzM5MzgpLG89cig2NTMzNSksaT1yKDM5ODM2KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZihuKGUpLG8odCkmJnQuY29uc3RydWN0b3I9PT1lKXJldHVybiB0O3ZhciByPWkuZihlKTtyZXR1cm4oMCxyLnJlc29sdmUpKHQpLHIucHJvbWlzZX19LDM5NzcyOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyNDEzKSxvPXIoOTc0OTkpLGk9cigzOTA1MykuQ09OU1RSVUNUT1I7ZS5leHBvcnRzPWl8fCFvKChmdW5jdGlvbihlKXtuLmFsbChlKS50aGVuKHZvaWQgMCwoZnVuY3Rpb24oKXt9KSl9KSl9LDU2NTI3OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0MzYxMCkuZjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIpe3IgaW4gZXx8bihlLHIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX0sc2V0OmZ1bmN0aW9uKGUpe3Rbcl09ZX19KX19LDk3NjAwOmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1mdW5jdGlvbigpe3RoaXMuaGVhZD1udWxsLHRoaXMudGFpbD1udWxsfTt0LnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKGUpe3ZhciB0PXtpdGVtOmUsbmV4dDpudWxsfSxyPXRoaXMudGFpbDtyP3IubmV4dD10OnRoaXMuaGVhZD10LHRoaXMudGFpbD10fSxnZXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmhlYWQ7aWYoZSlyZXR1cm4gbnVsbD09PSh0aGlzLmhlYWQ9ZS5uZXh0KSYmKHRoaXMudGFpbD1udWxsKSxlLml0ZW19fSxlLmV4cG9ydHM9dH0sNjY3OTM6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDcyMzY4KSxvPXIoNzM5MzgpLGk9cig3ODQyMCksYT1yKDE4NTY5KSxzPXIoNzAwNTQpLGM9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciByPWUuZXhlYztpZihpKHIpKXt2YXIgdT1uKHIsZSx0KTtyZXR1cm4gbnVsbCE9PXUmJm8odSksdX1pZigiUmVnRXhwIj09PWEoZSkpcmV0dXJuIG4ocyxlLHQpO3Rocm93IGMoIlJlZ0V4cCNleGVjIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgcmVjZWl2ZXIiKX19LDcwMDU0OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG4sbyxpPXIoNzIzNjgpLGE9cigzMDI4MSkscz1yKDk1MzYyKSxjPXIoMTY4NDQpLHU9cigxMjE5MiksbD1yKDUwMDAyKSxmPXIoNTMxMDUpLGQ9cig5OTIwNikuZ2V0LHA9cigzMTAzNiksXz1yKDI4MTIxKSxoPWwoIm5hdGl2ZS1zdHJpbmctcmVwbGFjZSIsU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlKSxtPVJlZ0V4cC5wcm90b3R5cGUuZXhlYyx5PW0sZz1hKCIiLmNoYXJBdCksdj1hKCIiLmluZGV4T2YpLGI9YSgiIi5yZXBsYWNlKSx3PWEoIiIuc2xpY2UpLFM9KG89L2IqL2csaShtLG49L2EvLCJhIiksaShtLG8sImEiKSwwIT09bi5sYXN0SW5kZXh8fDAhPT1vLmxhc3RJbmRleCksaz11LkJST0tFTl9DQVJFVCx4PXZvaWQgMCE9PS8oKT8/Ly5leGVjKCIiKVsxXTsoU3x8eHx8a3x8cHx8XykmJih5PWZ1bmN0aW9uKGUpe3ZhciB0LHIsbixvLGEsdSxsLHA9dGhpcyxfPWQocCksRT1zKGUpLEE9Xy5yYXc7aWYoQSlyZXR1cm4gQS5sYXN0SW5kZXg9cC5sYXN0SW5kZXgsdD1pKHksQSxFKSxwLmxhc3RJbmRleD1BLmxhc3RJbmRleCx0O3ZhciBUPV8uZ3JvdXBzLFI9ayYmcC5zdGlja3ksUD1pKGMscCksTz1wLnNvdXJjZSxNPTAsRj1FO2lmKFImJihQPWIoUCwieSIsIiIpLC0xPT09dihQLCJnIikmJihQKz0iZyIpLEY9dyhFLHAubGFzdEluZGV4KSxwLmxhc3RJbmRleD4wJiYoIXAubXVsdGlsaW5lfHxwLm11bHRpbGluZSYmIlxuIiE9PWcoRSxwLmxhc3RJbmRleC0xKSkmJihPPSIoPzogIitPKyIpIixGPSIgIitGLE0rKykscj1uZXcgUmVnRXhwKCJeKD86IitPKyIpIixQKSkseCYmKHI9bmV3IFJlZ0V4cCgiXiIrTysiJCg/IVxccykiLFApKSxTJiYobj1wLmxhc3RJbmRleCksbz1pKG0sUj9yOnAsRiksUj9vPyhvLmlucHV0PXcoby5pbnB1dCxNKSxvWzBdPXcob1swXSxNKSxvLmluZGV4PXAubGFzdEluZGV4LHAubGFzdEluZGV4Kz1vWzBdLmxlbmd0aCk6cC5sYXN0SW5kZXg9MDpTJiZvJiYocC5sYXN0SW5kZXg9cC5nbG9iYWw/by5pbmRleCtvWzBdLmxlbmd0aDpuKSx4JiZvJiZvLmxlbmd0aD4xJiZpKGgsb1swXSxyLChmdW5jdGlvbigpe2ZvcihhPTE7YTxhcmd1bWVudHMubGVuZ3RoLTI7YSsrKXZvaWQgMD09PWFyZ3VtZW50c1thXSYmKG9bYV09dm9pZCAwKX0pKSxvJiZUKWZvcihvLmdyb3Vwcz11PWYobnVsbCksYT0wO2E8VC5sZW5ndGg7YSsrKXVbKGw9VFthXSlbMF1dPW9bbFsxXV07cmV0dXJuIG99KSxlLmV4cG9ydHM9eX0sMTY4NDQ6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDczOTM4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgZT1uKHRoaXMpLHQ9IiI7cmV0dXJuIGUuaGFzSW5kaWNlcyYmKHQrPSJkIiksZS5nbG9iYWwmJih0Kz0iZyIpLGUuaWdub3JlQ2FzZSYmKHQrPSJpIiksZS5tdWx0aWxpbmUmJih0Kz0ibSIpLGUuZG90QWxsJiYodCs9InMiKSxlLnVuaWNvZGUmJih0Kz0idSIpLGUudW5pY29kZVNldHMmJih0Kz0idiIpLGUuc3RpY2t5JiYodCs9InkiKSx0fX0sMTAzNTM6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDcyMzY4KSxvPXIoMzY0OTApLGk9cig0NzY1OCksYT1yKDE2ODQ0KSxzPVJlZ0V4cC5wcm90b3R5cGU7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWUuZmxhZ3M7cmV0dXJuIHZvaWQgMCE9PXR8fCJmbGFncyJpbiBzfHxvKGUsImZsYWdzIil8fCFpKHMsZSk/dDpuKGEsZSl9fSwxMjE5MjpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoOTIwNzQpLG89cigzMDIwMCkuUmVnRXhwLGk9bigoZnVuY3Rpb24oKXt2YXIgZT1vKCJhIiwieSIpO3JldHVybiBlLmxhc3RJbmRleD0yLG51bGwhPT1lLmV4ZWMoImFiY2QiKX0pKSxhPWl8fG4oKGZ1bmN0aW9uKCl7cmV0dXJuIW8oImEiLCJ5Iikuc3RpY2t5fSkpLHM9aXx8bigoZnVuY3Rpb24oKXt2YXIgZT1vKCJeciIsImd5Iik7cmV0dXJuIGUubGFzdEluZGV4PTIsbnVsbCE9PWUuZXhlYygic3RyIil9KSk7ZS5leHBvcnRzPXtCUk9LRU5fQ0FSRVQ6cyxNSVNTRURfU1RJQ0tZOmEsVU5TVVBQT1JURURfWTppfX0sMzEwMzY6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDkyMDc0KSxvPXIoMzAyMDApLlJlZ0V4cDtlLmV4cG9ydHM9bigoZnVuY3Rpb24oKXt2YXIgZT1vKCIuIiwicyIpO3JldHVybiEoZS5kb3RBbGwmJmUuZXhlYygiXG4iKSYmInMiPT09ZS5mbGFncyl9KSl9LDI4MTIxOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig5MjA3NCksbz1yKDMwMjAwKS5SZWdFeHA7ZS5leHBvcnRzPW4oKGZ1bmN0aW9uKCl7dmFyIGU9bygiKD88YT5iKSIsImciKTtyZXR1cm4iYiIhPT1lLmV4ZWMoImIiKS5ncm91cHMuYXx8ImJjIiE9PSJiIi5yZXBsYWNlKGUsIiQ8YT5jIil9KSl9LDcxMjI5OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig4ODQwNiksbz1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKG4oZSkpdGhyb3cgbygiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIitlKTtyZXR1cm4gZX19LDc1MjgyOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0MzYxMCkuZixvPXIoMzY0OTApLGk9cigzMTYwMikoInRvU3RyaW5nVGFnIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXtlJiYhciYmKGU9ZS5wcm90b3R5cGUpLGUmJiFvKGUsaSkmJm4oZSxpLHtjb25maWd1cmFibGU6ITAsdmFsdWU6dH0pfX0sMjU5MDQ6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDUwMDAyKSxvPXIoNTA2NjUpLGk9bigia2V5cyIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gaVtlXXx8KGlbZV09byhlKSl9fSw0OTMxMDpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMzAyMDApLG89cig1OTQzMCksaT0iX19jb3JlLWpzX3NoYXJlZF9fIixhPW5baV18fG8oaSx7fSk7ZS5leHBvcnRzPWF9LDUwMDAyOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig2OTI2KSxvPXIoNDkzMTApOyhlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gb1tlXXx8KG9bZV09dm9pZCAwIT09dD90Ont9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMzIuMSIsbW9kZTpuPyJwdXJlIjoiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMTQtMjAyMyBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSIsbGljZW5zZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvYmxvYi92My4zMi4xL0xJQ0VOU0UiLHNvdXJjZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMifSl9LDIzNDQ0OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig3MzkzOCksbz1yKDU3ODQ5KSxpPXIoODg0MDYpLGE9cigzMTYwMikoInNwZWNpZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgcixzPW4oZSkuY29uc3RydWN0b3I7cmV0dXJuIHZvaWQgMD09PXN8fGkocj1uKHMpW2FdKT90Om8ocil9fSw3NzgwNDpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMzAyODEpLG89cig3OTMyOCksaT1yKDk1MzYyKSxhPXIoNzEyMjkpLHM9bigiIi5jaGFyQXQpLGM9bigiIi5jaGFyQ29kZUF0KSx1PW4oIiIuc2xpY2UpLGw9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscil7dmFyIG4sbCxmPWkoYSh0KSksZD1vKHIpLHA9Zi5sZW5ndGg7cmV0dXJuIGQ8MHx8ZD49cD9lPyIiOnZvaWQgMDoobj1jKGYsZCkpPDU1Mjk2fHxuPjU2MzE5fHxkKzE9PT1wfHwobD1jKGYsZCsxKSk8NTYzMjB8fGw+NTczNDM/ZT9zKGYsZCk6bjplP3UoZixkLGQrMik6bC01NjMyMCsobi01NTI5Njw8MTApKzY1NTM2fX07ZS5leHBvcnRzPXtjb2RlQXQ6bCghMSksY2hhckF0OmwoITApfX0sODIwNzI6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDY4NDUpLG89cig5MjA3NCksaT1yKDMwMjAwKS5TdHJpbmc7ZS5leHBvcnRzPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIW8oKGZ1bmN0aW9uKCl7dmFyIGU9U3ltYm9sKCJzeW1ib2wgZGV0ZWN0aW9uIik7cmV0dXJuIWkoZSl8fCEoT2JqZWN0KGUpaW5zdGFuY2VvZiBTeW1ib2wpfHwhU3ltYm9sLnNoYW0mJm4mJm48NDF9KSl9LDc0OTIyOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG4sbyxpLGEscz1yKDMwMjAwKSxjPXIoOTkwNzApLHU9cig0Njg4NSksbD1yKDc4NDIwKSxmPXIoMzY0OTApLGQ9cig5MjA3NCkscD1yKDI4ODkwKSxfPXIoMjk2MDkpLGg9cigyMzI2MiksbT1yKDU2NTg5KSx5PXIoNjIwNTApLGc9cig3NTIyMyksdj1zLnNldEltbWVkaWF0ZSxiPXMuY2xlYXJJbW1lZGlhdGUsdz1zLnByb2Nlc3MsUz1zLkRpc3BhdGNoLGs9cy5GdW5jdGlvbix4PXMuTWVzc2FnZUNoYW5uZWwsRT1zLlN0cmluZyxBPTAsVD17fSxSPSJvbnJlYWR5c3RhdGVjaGFuZ2UiO2QoKGZ1bmN0aW9uKCl7bj1zLmxvY2F0aW9ufSkpO3ZhciBQPWZ1bmN0aW9uKGUpe2lmKGYoVCxlKSl7dmFyIHQ9VFtlXTtkZWxldGUgVFtlXSx0KCl9fSxPPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe1AoZSl9fSxNPWZ1bmN0aW9uKGUpe1AoZS5kYXRhKX0sRj1mdW5jdGlvbihlKXtzLnBvc3RNZXNzYWdlKEUoZSksbi5wcm90b2NvbCsiLy8iK24uaG9zdCl9O3YmJmJ8fCh2PWZ1bmN0aW9uKGUpe20oYXJndW1lbnRzLmxlbmd0aCwxKTt2YXIgdD1sKGUpP2U6ayhlKSxyPV8oYXJndW1lbnRzLDEpO3JldHVybiBUWysrQV09ZnVuY3Rpb24oKXtjKHQsdm9pZCAwLHIpfSxvKEEpLEF9LGI9ZnVuY3Rpb24oZSl7ZGVsZXRlIFRbZV19LGc/bz1mdW5jdGlvbihlKXt3Lm5leHRUaWNrKE8oZSkpfTpTJiZTLm5vdz9vPWZ1bmN0aW9uKGUpe1Mubm93KE8oZSkpfTp4JiYheT8oYT0oaT1uZXcgeCkucG9ydDIsaS5wb3J0MS5vbm1lc3NhZ2U9TSxvPXUoYS5wb3N0TWVzc2FnZSxhKSk6cy5hZGRFdmVudExpc3RlbmVyJiZsKHMucG9zdE1lc3NhZ2UpJiYhcy5pbXBvcnRTY3JpcHRzJiZuJiYiZmlsZToiIT09bi5wcm90b2NvbCYmIWQoRik/KG89RixzLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLE0sITEpKTpvPVIgaW4gaCgic2NyaXB0Iik/ZnVuY3Rpb24oZSl7cC5hcHBlbmRDaGlsZChoKCJzY3JpcHQiKSlbUl09ZnVuY3Rpb24oKXtwLnJlbW92ZUNoaWxkKHRoaXMpLFAoZSl9fTpmdW5jdGlvbihlKXtzZXRUaW1lb3V0KE8oZSksMCl9KSxlLmV4cG9ydHM9e3NldDp2LGNsZWFyOmJ9fSw2NTM5OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig3OTMyOCksbz1NYXRoLm1heCxpPU1hdGgubWluO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciByPW4oZSk7cmV0dXJuIHI8MD9vKHIrdCwwKTppKHIsdCl9fSwzMDA1OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig1MDg3NCksbz1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PW4oZSwibnVtYmVyIik7aWYoIm51bWJlciI9PXR5cGVvZiB0KXRocm93IG8oIkNhbid0IGNvbnZlcnQgbnVtYmVyIHRvIGJpZ2ludCIpO3JldHVybiBCaWdJbnQodCl9fSw1NDc2OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0ODY2NCksbz1yKDcxMjI5KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG4obyhlKSl9fSw3OTMyODpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTk4MzApO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD0rZTtyZXR1cm4gdCE9dHx8MD09PXQ/MDpuKHQpfX0sMzM3NDc6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDc5MzI4KSxvPU1hdGgubWluO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZT4wP28obihlKSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sOTI2MTI6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDcxMjI5KSxvPU9iamVjdDtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG8obihlKSl9fSw1MDg3NDpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNzIzNjgpLG89cig2NTMzNSksaT1yKDMyMzI4KSxhPXIoNDY0NTcpLHM9cig2OTc1MSksYz1yKDMxNjAyKSx1PVR5cGVFcnJvcixsPWMoInRvUHJpbWl0aXZlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYoIW8oZSl8fGkoZSkpcmV0dXJuIGU7dmFyIHIsYz1hKGUsbCk7aWYoYyl7aWYodm9pZCAwPT09dCYmKHQ9ImRlZmF1bHQiKSxyPW4oYyxlLHQpLCFvKHIpfHxpKHIpKXJldHVybiByO3Rocm93IHUoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfXJldHVybiB2b2lkIDA9PT10JiYodD0ibnVtYmVyIikscyhlLHQpfX0sODYwMzI6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDUwODc0KSxvPXIoMzIzMjgpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1uKGUsInN0cmluZyIpO3JldHVybiBvKHQpP3Q6dCsiIn19LDQzMTI5OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49e307bltyKDMxNjAyKSgidG9TdHJpbmdUYWciKV09InoiLGUuZXhwb3J0cz0iW29iamVjdCB6XSI9PT1TdHJpbmcobil9LDk1MzYyOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig4MzA2Miksbz1TdHJpbmc7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCJTeW1ib2wiPT09bihlKSl0aHJvdyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIik7cmV0dXJuIG8oZSl9fSw5Mjc4NTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNzUyMjMpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt0cnl7aWYobilyZXR1cm4gRnVuY3Rpb24oJ3JldHVybiByZXF1aXJlKCInK2UrJyIpJykoKX1jYXRjaChlKXt9fX0sMTM4Mzg6ZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO3ZhciB0PVN0cmluZztlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiB0KGUpfWNhdGNoKGUpe3JldHVybiJPYmplY3QifX19LDUwNjY1OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMDI4MSksbz0wLGk9TWF0aC5yYW5kb20oKSxhPW4oMS4udG9TdHJpbmcpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4iU3ltYm9sKCIrKHZvaWQgMD09PWU/IiI6ZSkrIilfIithKCsrbytpLDM2KX19LDUyMjU6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDgyMDcyKTtlLmV4cG9ydHM9biYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcn0sOTQ0OTE6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDY1MDc3KSxvPXIoOTIwNzQpO2UuZXhwb3J0cz1uJiZvKChmdW5jdGlvbigpe3JldHVybiA0MiE9PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSgoZnVuY3Rpb24oKXt9KSwicHJvdG90eXBlIix7dmFsdWU6NDIsd3JpdGFibGU6ITF9KS5wcm90b3R5cGV9KSl9LDU2NTg5OmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUscil7aWYoZTxyKXRocm93IHQoIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7cmV0dXJuIGV9fSw4MzY5OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMDIwMCksbz1yKDc4NDIwKSxpPW4uV2Vha01hcDtlLmV4cG9ydHM9byhpKSYmL25hdGl2ZSBjb2RlLy50ZXN0KFN0cmluZyhpKSl9LDMxNjAyOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigzMDIwMCksbz1yKDUwMDAyKSxpPXIoMzY0OTApLGE9cig1MDY2NSkscz1yKDgyMDcyKSxjPXIoNTIyNSksdT1uLlN5bWJvbCxsPW8oIndrcyIpLGY9Yz91LmZvcnx8dTp1JiZ1LndpdGhvdXRTZXR0ZXJ8fGE7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBpKGwsZSl8fChsW2VdPXMmJmkodSxlKT91W2VdOmYoIlN5bWJvbC4iK2UpKSxsW2VdfX0sNzgxMjA6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDU2NDkyKSxvPXIoMzY0OTApLGk9cig5NzcxMiksYT1yKDQ3NjU4KSxzPXIoMzk2ODYpLGM9cig4NDM2MSksdT1yKDU2NTI3KSxsPXIoOTMwNTQpLGY9cigyMDYxMCksZD1yKDU1ODMzKSxwPXIoMTcxMDIpLF89cig2NTA3NyksaD1yKDY5MjYpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQscixtKXt2YXIgeT0ic3RhY2tUcmFjZUxpbWl0IixnPW0/MjoxLHY9ZS5zcGxpdCgiLiIpLGI9dlt2Lmxlbmd0aC0xXSx3PW4uYXBwbHkobnVsbCx2KTtpZih3KXt2YXIgUz13LnByb3RvdHlwZTtpZighaCYmbyhTLCJjYXVzZSIpJiZkZWxldGUgUy5jYXVzZSwhcilyZXR1cm4gdzt2YXIgaz1uKCJFcnJvciIpLHg9dCgoZnVuY3Rpb24oZSx0KXt2YXIgcj1mKG0/dDplLHZvaWQgMCksbj1tP25ldyB3KGUpOm5ldyB3O3JldHVybiB2b2lkIDAhPT1yJiZpKG4sIm1lc3NhZ2UiLHIpLHAobix4LG4uc3RhY2ssMiksdGhpcyYmYShTLHRoaXMpJiZsKG4sdGhpcyx4KSxhcmd1bWVudHMubGVuZ3RoPmcmJmQobixhcmd1bWVudHNbZ10pLG59KSk7aWYoeC5wcm90b3R5cGU9UywiRXJyb3IiIT09Yj9zP3MoeCxrKTpjKHgsayx7bmFtZTohMH0pOl8mJnkgaW4gdyYmKHUoeCx3LHkpLHUoeCx3LCJwcmVwYXJlU3RhY2tUcmFjZSIpKSxjKHgsdyksIWgpdHJ5e1MubmFtZSE9PWImJmkoUywibmFtZSIsYiksUy5jb25zdHJ1Y3Rvcj14fWNhdGNoKGUpe31yZXR1cm4geH19fSw4NjQ4OTpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNTE2MDUpLG89cig1NjQ5MiksaT1yKDk5MDcwKSxhPXIoOTIwNzQpLHM9cig3ODEyMCksYz0iQWdncmVnYXRlRXJyb3IiLHU9byhjKSxsPSFhKChmdW5jdGlvbigpe3JldHVybiAxIT09dShbMV0pLmVycm9yc1swXX0pKSYmYSgoZnVuY3Rpb24oKXtyZXR1cm4gNyE9PXUoWzFdLGMse2NhdXNlOjd9KS5jYXVzZX0pKTtuKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsYXJpdHk6Mixmb3JjZWQ6bH0se0FnZ3JlZ2F0ZUVycm9yOnMoYywoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscil7cmV0dXJuIGkoZSx0aGlzLGFyZ3VtZW50cyl9fSksbCwhMCl9KX0sNDg2NDI6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDUxNjA1KSxvPXIoOTI2MTIpLGk9cigyMzQ5MyksYT1yKDc5MzI4KSxzPXIoNDAyOTgpO24oe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwfSx7YXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9byh0aGlzKSxyPWkodCksbj1hKGUpLHM9bj49MD9uOnIrbjtyZXR1cm4gczwwfHxzPj1yP3ZvaWQgMDp0W3NdfX0pLHMoImF0Iil9LDcwNjQwOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig1MTYwNSksbz1yKDQ1NTgyKS5maW5kTGFzdEluZGV4LGk9cig0MDI5OCk7bih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITB9LHtmaW5kTGFzdEluZGV4OmZ1bmN0aW9uKGUpe3JldHVybiBvKHRoaXMsZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksaSgiZmluZExhc3RJbmRleCIpfSwzMTEzMzpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNTE2MDUpLG89cig0NTU4MikuZmluZExhc3QsaT1yKDQwMjk4KTtuKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se2ZpbmRMYXN0OmZ1bmN0aW9uKGUpe3JldHVybiBvKHRoaXMsZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksaSgiZmluZExhc3QiKX0sOTU3NTU6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDUxNjA1KSxvPXIoODk2MDgpLGk9cigyNDYwMSksYT1yKDkyNjEyKSxzPXIoMjM0OTMpLGM9cig2Mjk5OCk7bih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITB9LHtmbGF0TWFwOmZ1bmN0aW9uKGUpe3ZhciB0LHI9YSh0aGlzKSxuPXMocik7cmV0dXJuIGkoZSksKHQ9YyhyLDApKS5sZW5ndGg9byh0LHIscixuLDAsMSxlLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKSx0fX0pfSw0MTEyODpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNTE2MDUpLG89cig4OTYwOCksaT1yKDkyNjEyKSxhPXIoMjM0OTMpLHM9cig3OTMyOCksYz1yKDYyOTk4KTtuKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se2ZsYXQ6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDAsdD1pKHRoaXMpLHI9YSh0KSxuPWModCwwKTtyZXR1cm4gbi5sZW5ndGg9byhuLHQsdCxyLDAsdm9pZCAwPT09ZT8xOnMoZSkpLG59fSl9LDM2ODk6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDUxNjA1KSxvPXIoOTQwMzMpLGk9cig1NDc2KSxhPXIoNDAyOTgpLHM9QXJyYXk7bih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITB9LHt0b1JldmVyc2VkOmZ1bmN0aW9uKCl7cmV0dXJuIG8oaSh0aGlzKSxzKX19KSxhKCJ0b1JldmVyc2VkIil9LDIxODM4OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig1MTYwNSksbz1yKDMwMjgxKSxpPXIoMjQ2MDEpLGE9cig1NDc2KSxzPXIoNDA0NDcpLGM9cig0MjcwMSksdT1yKDQwMjk4KSxsPUFycmF5LGY9byhjKCJBcnJheSIpLnNvcnQpO24oe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwfSx7dG9Tb3J0ZWQ6ZnVuY3Rpb24oZSl7dm9pZCAwIT09ZSYmaShlKTt2YXIgdD1hKHRoaXMpLHI9cyhsLHQpO3JldHVybiBmKHIsZSl9fSksdSgidG9Tb3J0ZWQiKX0sNjIwMzU6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDUxNjA1KSxvPXIoNDAyOTgpLGk9cig1NzI0MiksYT1yKDIzNDkzKSxzPXIoNjUzOSksYz1yKDU0NzYpLHU9cig3OTMyOCksbD1BcnJheSxmPU1hdGgubWF4LGQ9TWF0aC5taW47bih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITB9LHt0b1NwbGljZWQ6ZnVuY3Rpb24oZSx0KXt2YXIgcixuLG8scCxfPWModGhpcyksaD1hKF8pLG09cyhlLGgpLHk9YXJndW1lbnRzLmxlbmd0aCxnPTA7Zm9yKDA9PT15P3I9bj0wOjE9PT15PyhyPTAsbj1oLW0pOihyPXktMixuPWQoZih1KHQpLDApLGgtbSkpLG89aShoK3ItbikscD1sKG8pO2c8bTtnKyspcFtnXT1fW2ddO2Zvcig7ZzxtK3I7ZysrKXBbZ109YXJndW1lbnRzW2ctbSsyXTtmb3IoO2c8bztnKyspcFtnXT1fW2crbi1yXTtyZXR1cm4gcH19KSxvKCJ0b1NwbGljZWQiKX0sNzk0MzI6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyKDQwMjk4KSgiZmxhdE1hcCIpfSw5NTg0MzpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDAyOTgpKCJmbGF0Iil9LDgyNjI3OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig1MTYwNSksbz1yKDUxODY3KSxpPXIoNTQ3NiksYT1BcnJheTtuKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se3dpdGg6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbyhpKHRoaXMpLGEsZSx0KX19KX0sODM1MTU6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDUxNjA1KSxvPXIoMzAyMDApLGk9cig5OTA3MCksYT1yKDc4MTIwKSxzPSJXZWJBc3NlbWJseSIsYz1vW3NdLHU9NyE9PUVycm9yKCJlIix7Y2F1c2U6N30pLmNhdXNlLGw9ZnVuY3Rpb24oZSx0KXt2YXIgcj17fTtyW2VdPWEoZSx0LHUpLG4oe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxhcml0eToxLGZvcmNlZDp1fSxyKX0sZj1mdW5jdGlvbihlLHQpe2lmKGMmJmNbZV0pe3ZhciByPXt9O3JbZV09YShzKyIuIitlLHQsdSksbih7dGFyZ2V0OnMsc3RhdDohMCxjb25zdHJ1Y3RvcjohMCxhcml0eToxLGZvcmNlZDp1fSxyKX19O2woIkVycm9yIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpKGUsdGhpcyxhcmd1bWVudHMpfX0pKSxsKCJFdmFsRXJyb3IiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGkoZSx0aGlzLGFyZ3VtZW50cyl9fSkpLGwoIlJhbmdlRXJyb3IiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGkoZSx0aGlzLGFyZ3VtZW50cyl9fSkpLGwoIlJlZmVyZW5jZUVycm9yIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpKGUsdGhpcyxhcmd1bWVudHMpfX0pKSxsKCJTeW50YXhFcnJvciIsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaShlLHRoaXMsYXJndW1lbnRzKX19KSksbCgiVHlwZUVycm9yIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpKGUsdGhpcyxhcmd1bWVudHMpfX0pKSxsKCJVUklFcnJvciIsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaShlLHRoaXMsYXJndW1lbnRzKX19KSksZigiQ29tcGlsZUVycm9yIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpKGUsdGhpcyxhcmd1bWVudHMpfX0pKSxmKCJMaW5rRXJyb3IiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGkoZSx0aGlzLGFyZ3VtZW50cyl9fSkpLGYoIlJ1bnRpbWVFcnJvciIsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaShlLHRoaXMsYXJndW1lbnRzKX19KSl9LDc1NjcwOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig1MTYwNSksbz1yKDUyOTI5KSxpPXIoNTIwNTcpO24oe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwfSx7ZnJvbUVudHJpZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIG8oZSwoZnVuY3Rpb24oZSxyKXtpKHQsZSxyKX0pLHtBU19FTlRSSUVTOiEwfSksdH19KX0sMTkzMjI6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyKDUxNjA1KSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITB9LHtoYXNPd246cigzNjQ5MCl9KX0sNTg4MDpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNTE2MDUpLG89cig3MjM2OCksaT1yKDI0NjAxKSxhPXIoMzk4MzYpLHM9cig1MDI0MiksYz1yKDUyOTI5KTtuKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITAsZm9yY2VkOnIoMzk3NzIpfSx7YWxsU2V0dGxlZDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLHI9YS5mKHQpLG49ci5yZXNvbHZlLHU9ci5yZWplY3QsbD1zKChmdW5jdGlvbigpe3ZhciByPWkodC5yZXNvbHZlKSxhPVtdLHM9MCx1PTE7YyhlLChmdW5jdGlvbihlKXt2YXIgaT1zKyssYz0hMTt1KyssbyhyLHQsZSkudGhlbigoZnVuY3Rpb24oZSl7Y3x8KGM9ITAsYVtpXT17c3RhdHVzOiJmdWxmaWxsZWQiLHZhbHVlOmV9LC0tdXx8bihhKSl9KSwoZnVuY3Rpb24oZSl7Y3x8KGM9ITAsYVtpXT17c3RhdHVzOiJyZWplY3RlZCIscmVhc29uOmV9LC0tdXx8bihhKSl9KSl9KSksLS11fHxuKGEpfSkpO3JldHVybiBsLmVycm9yJiZ1KGwudmFsdWUpLHIucHJvbWlzZX19KX0sNDU3NzM6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDUxNjA1KSxvPXIoNzIzNjgpLGk9cigyNDYwMSksYT1yKDU2NDkyKSxzPXIoMzk4MzYpLGM9cig1MDI0MiksdT1yKDUyOTI5KSxsPXIoMzk3NzIpLGY9Ik5vIG9uZSBwcm9taXNlIHJlc29sdmVkIjtuKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITAsZm9yY2VkOmx9LHthbnk6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxyPWEoIkFnZ3JlZ2F0ZUVycm9yIiksbj1zLmYodCksbD1uLnJlc29sdmUsZD1uLnJlamVjdCxwPWMoKGZ1bmN0aW9uKCl7dmFyIG49aSh0LnJlc29sdmUpLGE9W10scz0wLGM9MSxwPSExO3UoZSwoZnVuY3Rpb24oZSl7dmFyIGk9cysrLHU9ITE7YysrLG8obix0LGUpLnRoZW4oKGZ1bmN0aW9uKGUpe3V8fHB8fChwPSEwLGwoZSkpfSksKGZ1bmN0aW9uKGUpe3V8fHB8fCh1PSEwLGFbaV09ZSwtLWN8fGQobmV3IHIoYSxmKSkpfSkpfSkpLC0tY3x8ZChuZXcgcihhLGYpKX0pKTtyZXR1cm4gcC5lcnJvciYmZChwLnZhbHVlKSxuLnByb21pc2V9fSl9LDgzMzk2OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig1MTYwNSksbz1yKDY5MjYpLGk9cigyNDEzKSxhPXIoOTIwNzQpLHM9cig1NjQ5MiksYz1yKDc4NDIwKSx1PXIoMjM0NDQpLGw9cig5ODAzKSxmPXIoNzQ4NSksZD1pJiZpLnByb3RvdHlwZTtpZihuKHt0YXJnZXQ6IlByb21pc2UiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiEhaSYmYSgoZnVuY3Rpb24oKXtkLmZpbmFsbHkuY2FsbCh7dGhlbjpmdW5jdGlvbigpe319LChmdW5jdGlvbigpe30pKX0pKX0se2ZpbmFsbHk6ZnVuY3Rpb24oZSl7dmFyIHQ9dSh0aGlzLHMoIlByb21pc2UiKSkscj1jKGUpO3JldHVybiB0aGlzLnRoZW4ocj9mdW5jdGlvbihyKXtyZXR1cm4gbCh0LGUoKSkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKX06ZSxyP2Z1bmN0aW9uKHIpe3JldHVybiBsKHQsZSgpKS50aGVuKChmdW5jdGlvbigpe3Rocm93IHJ9KSl9OmUpfX0pLCFvJiZjKGkpKXt2YXIgcD1zKCJQcm9taXNlIikucHJvdG90eXBlLmZpbmFsbHk7ZC5maW5hbGx5IT09cCYmZihkLCJmaW5hbGx5IixwLHt1bnNhZmU6ITB9KX19LDg0MjE2OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig2NTA3Nyksbz1yKDMxMDM2KSxpPXIoMTg1NjkpLGE9cig3NjQ3Nykscz1yKDk5MjA2KS5nZXQsYz1SZWdFeHAucHJvdG90eXBlLHU9VHlwZUVycm9yO24mJm8mJmEoYywiZG90QWxsIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKHRoaXMhPT1jKXtpZigiUmVnRXhwIj09PWkodGhpcykpcmV0dXJuISFzKHRoaXMpLmRvdEFsbDt0aHJvdyB1KCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsIFJlZ0V4cCByZXF1aXJlZCIpfX19KX0sMTg5NDQ6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDUxNjA1KSxvPXIoMzAyODEpLGk9cig3MTIyOSksYT1yKDk1MzYyKSxzPW8oIiIuY2hhckNvZGVBdCk7bih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwfSx7aXNXZWxsRm9ybWVkOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPWEoaSh0aGlzKSksdD1lLmxlbmd0aCxyPTA7cjx0O3IrKyl7dmFyIG49cyhlLHIpO2lmKDU1Mjk2PT0oNjM0ODgmbikmJihuPj01NjMyMHx8KytyPj10fHw1NjMyMCE9KDY0NTEyJnMoZSxyKSkpKXJldHVybiExfXJldHVybiEwfX0pfSwxNzg3MDpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNTE2MDUpLG89cig3MjM2OCksaT1yKDQzMDkxKSxhPXIoMTgyODcpLHM9cig0ODI5NiksYz1yKDcxMjI5KSx1PXIoMzM3NDcpLGw9cig5NTM2MiksZj1yKDczOTM4KSxkPXIoODg0MDYpLHA9cigxODU2OSksXz1yKDYyNDQ5KSxoPXIoMTAzNTMpLG09cig0NjQ1NykseT1yKDc0ODUpLGc9cig5MjA3NCksdj1yKDMxNjAyKSxiPXIoMjM0NDQpLHc9cig2NzIzNCksUz1yKDY2NzkzKSxrPXIoOTkyMDYpLHg9cig2OTI2KSxFPXYoIm1hdGNoQWxsIiksQT0iUmVnRXhwIFN0cmluZyIsVD1BKyIgSXRlcmF0b3IiLFI9ay5zZXQsUD1rLmdldHRlckZvcihUKSxPPVJlZ0V4cC5wcm90b3R5cGUsTT1UeXBlRXJyb3IsRj1pKCIiLmluZGV4T2YpLEk9aSgiIi5tYXRjaEFsbCksaj0hIUkmJiFnKChmdW5jdGlvbigpe0koImEiLC8uLyl9KSksRD1hKChmdW5jdGlvbihlLHQscixuKXtSKHRoaXMse3R5cGU6VCxyZWdleHA6ZSxzdHJpbmc6dCxnbG9iYWw6cix1bmljb2RlOm4sZG9uZTohMX0pfSksQSwoZnVuY3Rpb24oKXt2YXIgZT1QKHRoaXMpO2lmKGUuZG9uZSlyZXR1cm4gcyh2b2lkIDAsITApO3ZhciB0PWUucmVnZXhwLHI9ZS5zdHJpbmcsbj1TKHQscik7cmV0dXJuIG51bGw9PT1uPyhlLmRvbmU9ITAscyh2b2lkIDAsITApKTplLmdsb2JhbD8oIiI9PT1sKG5bMF0pJiYodC5sYXN0SW5kZXg9dyhyLHUodC5sYXN0SW5kZXgpLGUudW5pY29kZSkpLHMobiwhMSkpOihlLmRvbmU9ITAscyhuLCExKSl9KSksTD1mdW5jdGlvbihlKXt2YXIgdCxyLG4sbz1mKHRoaXMpLGk9bChlKSxhPWIobyxSZWdFeHApLHM9bChoKG8pKTtyZXR1cm4gdD1uZXcgYShhPT09UmVnRXhwP28uc291cmNlOm8scykscj0hIX5GKHMsImciKSxuPSEhfkYocywidSIpLHQubGFzdEluZGV4PXUoby5sYXN0SW5kZXgpLG5ldyBEKHQsaSxyLG4pfTtuKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOmp9LHttYXRjaEFsbDpmdW5jdGlvbihlKXt2YXIgdCxyLG4saSxhPWModGhpcyk7aWYoZChlKSl7aWYoailyZXR1cm4gSShhLGUpfWVsc2V7aWYoXyhlKSYmKHQ9bChjKGgoZSkpKSwhfkYodCwiZyIpKSl0aHJvdyBNKCJgLm1hdGNoQWxsYCBkb2VzIG5vdCBhbGxvdyBub24tZ2xvYmFsIHJlZ2V4ZXMiKTtpZihqKXJldHVybiBJKGEsZSk7aWYodm9pZCAwPT09KG49bShlLEUpKSYmeCYmIlJlZ0V4cCI9PT1wKGUpJiYobj1MKSxuKXJldHVybiBvKG4sZSxhKX1yZXR1cm4gcj1sKGEpLGk9bmV3IFJlZ0V4cChlLCJnIikseD9vKEwsaSxyKTppW0VdKHIpfX0pLHh8fEUgaW4gT3x8eShPLEUsTCl9LDYwMjQzOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig1MTYwNSksbz1yKDcyMzY4KSxpPXIoMzAyODEpLGE9cig3MTIyOSkscz1yKDc4NDIwKSxjPXIoODg0MDYpLHU9cig2MjQ0OSksbD1yKDk1MzYyKSxmPXIoNDY0NTcpLGQ9cigxMDM1MykscD1yKDk0NDMzKSxfPXIoMzE2MDIpLGg9cig2OTI2KSxtPV8oInJlcGxhY2UiKSx5PVR5cGVFcnJvcixnPWkoIiIuaW5kZXhPZiksdj1pKCIiLnJlcGxhY2UpLGI9aSgiIi5zbGljZSksdz1NYXRoLm1heCxTPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gcj5lLmxlbmd0aD8tMToiIj09PXQ/cjpnKGUsdCxyKX07bih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwfSx7cmVwbGFjZUFsbDpmdW5jdGlvbihlLHQpe3ZhciByLG4saSxfLGsseCxFLEEsVCxSPWEodGhpcyksUD0wLE89MCxNPSIiO2lmKCFjKGUpKXtpZigocj11KGUpKSYmKG49bChhKGQoZSkpKSwhfmcobiwiZyIpKSl0aHJvdyB5KCJgLnJlcGxhY2VBbGxgIGRvZXMgbm90IGFsbG93IG5vbi1nbG9iYWwgcmVnZXhlcyIpO2lmKGk9ZihlLG0pKXJldHVybiBvKGksZSxSLHQpO2lmKGgmJnIpcmV0dXJuIHYobChSKSxlLHQpfWZvcihfPWwoUiksaz1sKGUpLCh4PXModCkpfHwodD1sKHQpKSxFPWsubGVuZ3RoLEE9dygxLEUpLFA9UyhfLGssMCk7LTEhPT1QOylUPXg/bCh0KGssUCxfKSk6cChrLF8sUCxbXSx2b2lkIDAsdCksTSs9YihfLE8sUCkrVCxPPVArRSxQPVMoXyxrLFArQSk7cmV0dXJuIE88Xy5sZW5ndGgmJihNKz1iKF8sTykpLE19fSl9LDYwODU6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDUxNjA1KSxvPXIoNzIzNjgpLGk9cigzMDI4MSksYT1yKDcxMjI5KSxzPXIoOTUzNjIpLGM9cig5MjA3NCksdT1BcnJheSxsPWkoIiIuY2hhckF0KSxmPWkoIiIuY2hhckNvZGVBdCksZD1pKFtdLmpvaW4pLHA9IiIudG9XZWxsRm9ybWVkLF89cCYmYygoZnVuY3Rpb24oKXtyZXR1cm4iMSIhPT1vKHAsMSl9KSk7bih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpffSx7dG9XZWxsRm9ybWVkOmZ1bmN0aW9uKCl7dmFyIGU9cyhhKHRoaXMpKTtpZihfKXJldHVybiBvKHAsZSk7Zm9yKHZhciB0PWUubGVuZ3RoLHI9dSh0KSxuPTA7bjx0O24rKyl7dmFyIGk9ZihlLG4pOzU1Mjk2IT0oNjM0ODgmaSk/cltuXT1sKGUsbik6aT49NTYzMjB8fG4rMT49dHx8NTYzMjAhPSg2NDUxMiZmKGUsbisxKSk/cltuXT0i77+9IjoocltuXT1sKGUsbiksclsrK25dPWwoZSxuKSl9cmV0dXJuIGQociwiIil9fSl9LDI4OTIxOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig4NTM0Myksbz1yKDIzNDkzKSxpPXIoNzkzMjgpLGE9bi5hVHlwZWRBcnJheTsoMCxuLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJhdCIsKGZ1bmN0aW9uKGUpe3ZhciB0PWEodGhpcykscj1vKHQpLG49aShlKSxzPW4+PTA/bjpyK247cmV0dXJuIHM8MHx8cz49cj92b2lkIDA6dFtzXX0pKX0sNDk3MzpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoODUzNDMpLG89cig0NTU4MikuZmluZExhc3RJbmRleCxpPW4uYVR5cGVkQXJyYXk7KDAsbi5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmluZExhc3RJbmRleCIsKGZ1bmN0aW9uKGUpe3JldHVybiBvKGkodGhpcyksZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSl9LDgxMzA4OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig4NTM0Myksbz1yKDQ1NTgyKS5maW5kTGFzdCxpPW4uYVR5cGVkQXJyYXk7KDAsbi5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmluZExhc3QiLChmdW5jdGlvbihlKXtyZXR1cm4gbyhpKHRoaXMpLGUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpfSwzNDkyOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig5NDAzMyksbz1yKDg1MzQzKSxpPW8uYVR5cGVkQXJyYXksYT1vLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Qscz1vLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcjthKCJ0b1JldmVyc2VkIiwoZnVuY3Rpb24oKXtyZXR1cm4gbihpKHRoaXMpLHModGhpcykpfSkpfSw4NDQ2NzpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoODUzNDMpLG89cigzMDI4MSksaT1yKDI0NjAxKSxhPXIoNDA0NDcpLHM9bi5hVHlwZWRBcnJheSxjPW4uZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yLHU9bi5leHBvcnRUeXBlZEFycmF5TWV0aG9kLGw9byhuLlR5cGVkQXJyYXlQcm90b3R5cGUuc29ydCk7dSgidG9Tb3J0ZWQiLChmdW5jdGlvbihlKXt2b2lkIDAhPT1lJiZpKGUpO3ZhciB0PXModGhpcykscj1hKGModCksdCk7cmV0dXJuIGwocixlKX0pKX0sMjY3MzY6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDUxODY3KSxvPXIoODUzNDMpLGk9cig1NzQ3MiksYT1yKDc5MzI4KSxzPXIoMzAwNSksYz1vLmFUeXBlZEFycmF5LHU9by5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3IsbD1vLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsZj0hIWZ1bmN0aW9uKCl7dHJ5e25ldyBJbnQ4QXJyYXkoMSkud2l0aCgyLHt2YWx1ZU9mOmZ1bmN0aW9uKCl7dGhyb3cgOH19KX1jYXRjaChlKXtyZXR1cm4gOD09PWV9fSgpO2woIndpdGgiLHt3aXRoOmZ1bmN0aW9uKGUsdCl7dmFyIHI9Yyh0aGlzKSxvPWEoZSksbD1pKHIpP3ModCk6K3Q7cmV0dXJuIG4ocix1KHIpLG8sbCl9fS53aXRoLCFmKX0sNTQ3NTQ6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDUxNjA1KSxvPXIoOTI3ODUpLGk9cig1NjQ5MiksYT1yKDkyMDc0KSxzPXIoNTMxMDUpLGM9cig2Njg0MyksdT1yKDQzNjEwKS5mLGw9cig3NDg1KSxmPXIoNzY0NzcpLGQ9cigzNjQ5MCkscD1yKDY1MTkwKSxfPXIoNzM5MzgpLGg9cig3MzM1MyksbT1yKDIwNjEwKSx5PXIoMjY1NjcpLGc9cig0NjQ1Miksdj1yKDk5MjA2KSxiPXIoNjUwNzcpLHc9cig2OTI2KSxTPSJET01FeGNlcHRpb24iLGs9IkRBVEFfQ0xPTkVfRVJSIix4PWkoIkVycm9yIiksRT1pKFMpfHxmdW5jdGlvbigpe3RyeXsobmV3KGkoIk1lc3NhZ2VDaGFubmVsIil8fG8oIndvcmtlcl90aHJlYWRzIikuTWVzc2FnZUNoYW5uZWwpKS5wb3J0MS5wb3N0TWVzc2FnZShuZXcgV2Vha01hcCl9Y2F0Y2goZSl7aWYoZS5uYW1lPT09ayYmMjU9PT1lLmNvZGUpcmV0dXJuIGUuY29uc3RydWN0b3J9fSgpLEE9RSYmRS5wcm90b3R5cGUsVD14LnByb3RvdHlwZSxSPXYuc2V0LFA9di5nZXR0ZXJGb3IoUyksTz0ic3RhY2siaW4geChTKSxNPWZ1bmN0aW9uKGUpe3JldHVybiBkKHksZSkmJnlbZV0ubT95W2VdLmM6MH0sRj1mdW5jdGlvbigpe3AodGhpcyxJKTt2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bShlPDE/dm9pZCAwOmFyZ3VtZW50c1swXSkscj1tKGU8Mj92b2lkIDA6YXJndW1lbnRzWzFdLCJFcnJvciIpLG49TShyKTtpZihSKHRoaXMse3R5cGU6UyxuYW1lOnIsbWVzc2FnZTp0LGNvZGU6bn0pLGJ8fCh0aGlzLm5hbWU9cix0aGlzLm1lc3NhZ2U9dCx0aGlzLmNvZGU9biksTyl7dmFyIG89eCh0KTtvLm5hbWU9Uyx1KHRoaXMsInN0YWNrIixjKDEsZyhvLnN0YWNrLDEpKSl9fSxJPUYucHJvdG90eXBlPXMoVCksaj1mdW5jdGlvbihlKXtyZXR1cm57ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmV9fSxEPWZ1bmN0aW9uKGUpe3JldHVybiBqKChmdW5jdGlvbigpe3JldHVybiBQKHRoaXMpW2VdfSkpfTtiJiYoZihJLCJjb2RlIixEKCJjb2RlIikpLGYoSSwibWVzc2FnZSIsRCgibWVzc2FnZSIpKSxmKEksIm5hbWUiLEQoIm5hbWUiKSkpLHUoSSwiY29uc3RydWN0b3IiLGMoMSxGKSk7dmFyIEw9YSgoZnVuY3Rpb24oKXtyZXR1cm4hKG5ldyBFIGluc3RhbmNlb2YgeCl9KSksVT1MfHxhKChmdW5jdGlvbigpe3JldHVybiBULnRvU3RyaW5nIT09aHx8IjI6IDEiIT09U3RyaW5nKG5ldyBFKDEsMikpfSkpLHo9THx8YSgoZnVuY3Rpb24oKXtyZXR1cm4gMjUhPT1uZXcgRSgxLCJEYXRhQ2xvbmVFcnJvciIpLmNvZGV9KSksQj1MfHwyNSE9PUVba118fDI1IT09QVtrXSxIPXc/VXx8enx8QjpMO24oe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6SH0se0RPTUV4Y2VwdGlvbjpIP0Y6RX0pO3ZhciBXPWkoUyksJD1XLnByb3RvdHlwZTtmb3IodmFyIHEgaW4gVSYmKHd8fEU9PT1XKSYmbCgkLCJ0b1N0cmluZyIsaCkseiYmYiYmRT09PVcmJmYoJCwiY29kZSIsaigoZnVuY3Rpb24oKXtyZXR1cm4gTShfKHRoaXMpLm5hbWUpfSkpKSx5KWlmKGQoeSxxKSl7dmFyIEc9eVtxXSxWPUcucyxZPWMoNixHLmMpO2QoVyxWKXx8dShXLFYsWSksZCgkLFYpfHx1KCQsVixZKX19LDk5MDc4OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig1MTYwNSksbz1yKDMwMjAwKSxpPXIoNTY0OTIpLGE9cig2Njg0Mykscz1yKDQzNjEwKS5mLGM9cigzNjQ5MCksdT1yKDY1MTkwKSxsPXIoOTMwNTQpLGY9cigyMDYxMCksZD1yKDI2NTY3KSxwPXIoNDY0NTIpLF89cig2NTA3NyksaD1yKDY5MjYpLG09IkRPTUV4Y2VwdGlvbiIseT1pKCJFcnJvciIpLGc9aShtKSx2PWZ1bmN0aW9uKCl7dSh0aGlzLGIpO3ZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1mKGU8MT92b2lkIDA6YXJndW1lbnRzWzBdKSxyPWYoZTwyP3ZvaWQgMDphcmd1bWVudHNbMV0sIkVycm9yIiksbj1uZXcgZyh0LHIpLG89eSh0KTtyZXR1cm4gby5uYW1lPW0scyhuLCJzdGFjayIsYSgxLHAoby5zdGFjaywxKSkpLGwobix0aGlzLHYpLG59LGI9di5wcm90b3R5cGU9Zy5wcm90b3R5cGUsdz0ic3RhY2siaW4geShtKSxTPSJzdGFjayJpbiBuZXcgZygxLDIpLGs9ZyYmXyYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLG0pLHg9ISgha3x8ay53cml0YWJsZSYmay5jb25maWd1cmFibGUpLEU9dyYmIXgmJiFTO24oe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6aHx8RX0se0RPTUV4Y2VwdGlvbjpFP3Y6Z30pO3ZhciBBPWkobSksVD1BLnByb3RvdHlwZTtpZihULmNvbnN0cnVjdG9yIT09QSlmb3IodmFyIFIgaW4gaHx8cyhULCJjb25zdHJ1Y3RvciIsYSgxLEEpKSxkKWlmKGMoZCxSKSl7dmFyIFA9ZFtSXSxPPVAucztjKEEsTyl8fHMoQSxPLGEoNixQLmMpKX19LDkxOTU0OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig1NjQ5Miksbz0iRE9NRXhjZXB0aW9uIjtyKDc1MjgyKShuKG8pLG8pfSw4NTE4MzpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNTE2MDUpLG89cigzMDIwMCksaT1yKDQ3NDYyKSxhPXIoMjQ2MDEpLHM9cig1NjU4OSksYz1yKDc1MjIzKSx1PW8ucHJvY2VzcztuKHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxkb250Q2FsbEdldFNldDohMH0se3F1ZXVlTWljcm90YXNrOmZ1bmN0aW9uKGUpe3MoYXJndW1lbnRzLmxlbmd0aCwxKSxhKGUpO3ZhciB0PWMmJnUuZG9tYWluO2kodD90LmJpbmQoZSk6ZSl9fSl9LDk2MzgwOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig3NDg1KSxvPXIoMzAyODEpLGk9cig5NTM2MiksYT1yKDU2NTg5KSxzPVVSTFNlYXJjaFBhcmFtcyxjPXMucHJvdG90eXBlLHU9byhjLmFwcGVuZCksbD1vKGMuZGVsZXRlKSxmPW8oYy5mb3JFYWNoKSxkPW8oW10ucHVzaCkscD1uZXcgcygiYT0xJmE9MiZiPTMiKTtwLmRlbGV0ZSgiYSIsMSkscC5kZWxldGUoImIiLHZvaWQgMCkscCsiIiE9ImE9MiImJm4oYywiZGVsZXRlIiwoZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxyPXQ8Mj92b2lkIDA6YXJndW1lbnRzWzFdO2lmKHQmJnZvaWQgMD09PXIpcmV0dXJuIGwodGhpcyxlKTt2YXIgbj1bXTtmKHRoaXMsKGZ1bmN0aW9uKGUsdCl7ZChuLHtrZXk6dCx2YWx1ZTplfSl9KSksYSh0LDEpO2Zvcih2YXIgbyxzPWkoZSksYz1pKHIpLHA9MCxfPTAsaD0hMSxtPW4ubGVuZ3RoO3A8bTspbz1uW3ArK10saHx8by5rZXk9PT1zPyhoPSEwLGwodGhpcyxvLmtleSkpOl8rKztmb3IoO188bTspKG89bltfKytdKS5rZXk9PT1zJiZvLnZhbHVlPT09Y3x8dSh0aGlzLG8ua2V5LG8udmFsdWUpfSkse2VudW1lcmFibGU6ITAsdW5zYWZlOiEwfSl9LDkxMDU5OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig3NDg1KSxvPXIoMzAyODEpLGk9cig5NTM2MiksYT1yKDU2NTg5KSxzPVVSTFNlYXJjaFBhcmFtcyxjPXMucHJvdG90eXBlLHU9byhjLmdldEFsbCksbD1vKGMuaGFzKSxmPW5ldyBzKCJhPTEiKTshZi5oYXMoImEiLDIpJiZmLmhhcygiYSIsdm9pZCAwKXx8bihjLCJoYXMiLChmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoLHI9dDwyP3ZvaWQgMDphcmd1bWVudHNbMV07aWYodCYmdm9pZCAwPT09cilyZXR1cm4gbCh0aGlzLGUpO3ZhciBuPXUodGhpcyxlKTthKHQsMSk7Zm9yKHZhciBvPWkocikscz0wO3M8bi5sZW5ndGg7KWlmKG5bcysrXT09PW8pcmV0dXJuITA7cmV0dXJuITF9KSx7ZW51bWVyYWJsZTohMCx1bnNhZmU6ITB9KX0sMjhlMzpmdW5jdGlvbihlKXt2YXIgdD0xZTMscj02MCp0LG49NjAqcixvPTI0Km4saT03Km8sYT0zNjUuMjUqbztmdW5jdGlvbiBzKGUsdCxyLG4pe3ZhciBvPXQ+PTEuNSpyO3JldHVybiBNYXRoLnJvdW5kKGUvcikrIiAiK24rKG8/InMiOiIiKX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSxjKXtjPWN8fHt9O3ZhciB1PXR5cGVvZiBlO2lmKCJzdHJpbmciPT09dSYmZS5sZW5ndGg+MClyZXR1cm4gZnVuY3Rpb24oZSl7aWYoKGU9U3RyaW5nKGUpKS5sZW5ndGg+MTAwKXJldHVybjt2YXIgcz0vXigtPyg/OlxkKyk/XC4/XGQrKSAqKG1pbGxpc2Vjb25kcz98bXNlY3M/fG1zfHNlY29uZHM/fHNlY3M/fHN8bWludXRlcz98bWlucz98bXxob3Vycz98aHJzP3xofGRheXM/fGR8d2Vla3M/fHd8eWVhcnM/fHlycz98eSk/JC9pLmV4ZWMoZSk7aWYoIXMpcmV0dXJuO3ZhciBjPXBhcnNlRmxvYXQoc1sxXSk7c3dpdGNoKChzWzJdfHwibXMiKS50b0xvd2VyQ2FzZSgpKXtjYXNlInllYXJzIjpjYXNlInllYXIiOmNhc2UieXJzIjpjYXNlInlyIjpjYXNlInkiOnJldHVybiBjKmE7Y2FzZSJ3ZWVrcyI6Y2FzZSJ3ZWVrIjpjYXNlInciOnJldHVybiBjKmk7Y2FzZSJkYXlzIjpjYXNlImRheSI6Y2FzZSJkIjpyZXR1cm4gYypvO2Nhc2UiaG91cnMiOmNhc2UiaG91ciI6Y2FzZSJocnMiOmNhc2UiaHIiOmNhc2UiaCI6cmV0dXJuIGMqbjtjYXNlIm1pbnV0ZXMiOmNhc2UibWludXRlIjpjYXNlIm1pbnMiOmNhc2UibWluIjpjYXNlIm0iOnJldHVybiBjKnI7Y2FzZSJzZWNvbmRzIjpjYXNlInNlY29uZCI6Y2FzZSJzZWNzIjpjYXNlInNlYyI6Y2FzZSJzIjpyZXR1cm4gYyp0O2Nhc2UibWlsbGlzZWNvbmRzIjpjYXNlIm1pbGxpc2Vjb25kIjpjYXNlIm1zZWNzIjpjYXNlIm1zZWMiOmNhc2UibXMiOnJldHVybiBjO2RlZmF1bHQ6cmV0dXJufX0oZSk7aWYoIm51bWJlciI9PT11JiZpc0Zpbml0ZShlKSlyZXR1cm4gYy5sb25nP2Z1bmN0aW9uKGUpe3ZhciBpPU1hdGguYWJzKGUpO2lmKGk+PW8pcmV0dXJuIHMoZSxpLG8sImRheSIpO2lmKGk+PW4pcmV0dXJuIHMoZSxpLG4sImhvdXIiKTtpZihpPj1yKXJldHVybiBzKGUsaSxyLCJtaW51dGUiKTtpZihpPj10KXJldHVybiBzKGUsaSx0LCJzZWNvbmQiKTtyZXR1cm4gZSsiIG1zIn0oZSk6ZnVuY3Rpb24oZSl7dmFyIGk9TWF0aC5hYnMoZSk7aWYoaT49bylyZXR1cm4gTWF0aC5yb3VuZChlL28pKyJkIjtpZihpPj1uKXJldHVybiBNYXRoLnJvdW5kKGUvbikrImgiO2lmKGk+PXIpcmV0dXJuIE1hdGgucm91bmQoZS9yKSsibSI7aWYoaT49dClyZXR1cm4gTWF0aC5yb3VuZChlL3QpKyJzIjtyZXR1cm4gZSsibXMifShlKTt0aHJvdyBuZXcgRXJyb3IoInZhbCBpcyBub3QgYSBub24tZW1wdHkgc3RyaW5nIG9yIGEgdmFsaWQgbnVtYmVyLiB2YWw9IitKU09OLnN0cmluZ2lmeShlKSl9fSwxNzgzMzpmdW5jdGlvbihlLHQscil7dC5mb3JtYXRBcmdzPWZ1bmN0aW9uKHQpe2lmKHRbMF09KHRoaXMudXNlQ29sb3JzPyIlYyI6IiIpK3RoaXMubmFtZXNwYWNlKyh0aGlzLnVzZUNvbG9ycz8iICVjIjoiICIpK3RbMF0rKHRoaXMudXNlQ29sb3JzPyIlYyAiOiIgIikrIisiK2UuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpLCF0aGlzLnVzZUNvbG9ycylyZXR1cm47Y29uc3Qgcj0iY29sb3I6ICIrdGhpcy5jb2xvcjt0LnNwbGljZSgxLDAsciwiY29sb3I6IGluaGVyaXQiKTtsZXQgbj0wLG89MDt0WzBdLnJlcGxhY2UoLyVbYS16QS1aJV0vZywoZT0+eyIlJSIhPT1lJiYobisrLCIlYyI9PT1lJiYobz1uKSl9KSksdC5zcGxpY2UobywwLHIpfSx0LnNhdmU9ZnVuY3Rpb24oZSl7dHJ5e2U/dC5zdG9yYWdlLnNldEl0ZW0oImRlYnVnIixlKTp0LnN0b3JhZ2UucmVtb3ZlSXRlbSgiZGVidWciKX1jYXRjaChlKXt9fSx0LmxvYWQ9ZnVuY3Rpb24oKXtsZXQgZTt0cnl7ZT10LnN0b3JhZ2UuZ2V0SXRlbSgiZGVidWciKX1jYXRjaChlKXt9IWUmJiJ1bmRlZmluZWQiIT10eXBlb2YgcHJvY2VzcyYmImVudiJpbiBwcm9jZXNzJiYoZT1wcm9jZXNzLmVudi5ERUJVRyk7cmV0dXJuIGV9LHQudXNlQ29sb3JzPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5wcm9jZXNzJiYoInJlbmRlcmVyIj09PXdpbmRvdy5wcm9jZXNzLnR5cGV8fHdpbmRvdy5wcm9jZXNzLl9fbndqcykpcmV0dXJuITA7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKGVkZ2V8dHJpZGVudClcLyhcZCspLykpcmV0dXJuITE7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5XZWJraXRBcHBlYXJhbmNlfHwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LmNvbnNvbGUmJih3aW5kb3cuY29uc29sZS5maXJlYnVnfHx3aW5kb3cuY29uc29sZS5leGNlcHRpb24mJndpbmRvdy5jb25zb2xlLnRhYmxlKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvZmlyZWZveFwvKFxkKykvKSYmcGFyc2VJbnQoUmVnRXhwLiQxLDEwKT49MzF8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2FwcGxld2Via2l0XC8oXGQrKS8pfSx0LnN0b3JhZ2U9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZX1jYXRjaChlKXt9fSgpLHQuZGVzdHJveT0oKCk9PntsZXQgZT0hMTtyZXR1cm4oKT0+e2V8fChlPSEwLGNvbnNvbGUud2FybigiSW5zdGFuY2UgbWV0aG9kIGBkZWJ1Zy5kZXN0cm95KClgIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2VzIGFueXRoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiBvZiBgZGVidWdgLiIpKX19KSgpLHQuY29sb3JzPVsiIzAwMDBDQyIsIiMwMDAwRkYiLCIjMDAzM0NDIiwiIzAwMzNGRiIsIiMwMDY2Q0MiLCIjMDA2NkZGIiwiIzAwOTlDQyIsIiMwMDk5RkYiLCIjMDBDQzAwIiwiIzAwQ0MzMyIsIiMwMENDNjYiLCIjMDBDQzk5IiwiIzAwQ0NDQyIsIiMwMENDRkYiLCIjMzMwMENDIiwiIzMzMDBGRiIsIiMzMzMzQ0MiLCIjMzMzM0ZGIiwiIzMzNjZDQyIsIiMzMzY2RkYiLCIjMzM5OUNDIiwiIzMzOTlGRiIsIiMzM0NDMDAiLCIjMzNDQzMzIiwiIzMzQ0M2NiIsIiMzM0NDOTkiLCIjMzNDQ0NDIiwiIzMzQ0NGRiIsIiM2NjAwQ0MiLCIjNjYwMEZGIiwiIzY2MzNDQyIsIiM2NjMzRkYiLCIjNjZDQzAwIiwiIzY2Q0MzMyIsIiM5OTAwQ0MiLCIjOTkwMEZGIiwiIzk5MzNDQyIsIiM5OTMzRkYiLCIjOTlDQzAwIiwiIzk5Q0MzMyIsIiNDQzAwMDAiLCIjQ0MwMDMzIiwiI0NDMDA2NiIsIiNDQzAwOTkiLCIjQ0MwMENDIiwiI0NDMDBGRiIsIiNDQzMzMDAiLCIjQ0MzMzMzIiwiI0NDMzM2NiIsIiNDQzMzOTkiLCIjQ0MzM0NDIiwiI0NDMzNGRiIsIiNDQzY2MDAiLCIjQ0M2NjMzIiwiI0NDOTkwMCIsIiNDQzk5MzMiLCIjQ0NDQzAwIiwiI0NDQ0MzMyIsIiNGRjAwMDAiLCIjRkYwMDMzIiwiI0ZGMDA2NiIsIiNGRjAwOTkiLCIjRkYwMENDIiwiI0ZGMDBGRiIsIiNGRjMzMDAiLCIjRkYzMzMzIiwiI0ZGMzM2NiIsIiNGRjMzOTkiLCIjRkYzM0NDIiwiI0ZGMzNGRiIsIiNGRjY2MDAiLCIjRkY2NjMzIiwiI0ZGOTkwMCIsIiNGRjk5MzMiLCIjRkZDQzAwIiwiI0ZGQ0MzMyJdLHQubG9nPWNvbnNvbGUuZGVidWd8fGNvbnNvbGUubG9nfHwoKCk9Pnt9KSxlLmV4cG9ydHM9cig0MDczNikodCk7Y29uc3R7Zm9ybWF0dGVyczpufT1lLmV4cG9ydHM7bi5qPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9Y2F0Y2goZSl7cmV0dXJuIltVbmV4cGVjdGVkSlNPTlBhcnNlRXJyb3JdOiAiK2UubWVzc2FnZX19fSw0MDczNjpmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSl7bGV0IHIsbyxpLGE9bnVsbDtmdW5jdGlvbiBzKC4uLmUpe2lmKCFzLmVuYWJsZWQpcmV0dXJuO2NvbnN0IG49cyxvPU51bWJlcihuZXcgRGF0ZSksaT1vLShyfHxvKTtuLmRpZmY9aSxuLnByZXY9cixuLmN1cnI9byxyPW8sZVswXT10LmNvZXJjZShlWzBdKSwic3RyaW5nIiE9dHlwZW9mIGVbMF0mJmUudW5zaGlmdCgiJU8iKTtsZXQgYT0wO2VbMF09ZVswXS5yZXBsYWNlKC8lKFthLXpBLVolXSkvZywoKHIsbyk9PntpZigiJSUiPT09cilyZXR1cm4iJSI7YSsrO2NvbnN0IGk9dC5mb3JtYXR0ZXJzW29dO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBpKXtjb25zdCB0PWVbYV07cj1pLmNhbGwobix0KSxlLnNwbGljZShhLDEpLGEtLX1yZXR1cm4gcn0pKSx0LmZvcm1hdEFyZ3MuY2FsbChuLGUpOyhuLmxvZ3x8dC5sb2cpLmFwcGx5KG4sZSl9cmV0dXJuIHMubmFtZXNwYWNlPWUscy51c2VDb2xvcnM9dC51c2VDb2xvcnMoKSxzLmNvbG9yPXQuc2VsZWN0Q29sb3IoZSkscy5leHRlbmQ9bixzLmRlc3Ryb3k9dC5kZXN0cm95LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJlbmFibGVkIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITEsZ2V0OigpPT5udWxsIT09YT9hOihvIT09dC5uYW1lc3BhY2VzJiYobz10Lm5hbWVzcGFjZXMsaT10LmVuYWJsZWQoZSkpLGkpLHNldDplPT57YT1lfX0pLCJmdW5jdGlvbiI9PXR5cGVvZiB0LmluaXQmJnQuaW5pdChzKSxzfWZ1bmN0aW9uIG4oZSxyKXtjb25zdCBuPXQodGhpcy5uYW1lc3BhY2UrKHZvaWQgMD09PXI/IjoiOnIpK2UpO3JldHVybiBuLmxvZz10aGlzLmxvZyxufWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMixlLnRvU3RyaW5nKCkubGVuZ3RoLTIpLnJlcGxhY2UoL1wuXCpcPyQvLCIqIil9cmV0dXJuIHQuZGVidWc9dCx0LmRlZmF1bHQ9dCx0LmNvZXJjZT1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgRXJyb3IpcmV0dXJuIGUuc3RhY2t8fGUubWVzc2FnZTtyZXR1cm4gZX0sdC5kaXNhYmxlPWZ1bmN0aW9uKCl7Y29uc3QgZT1bLi4udC5uYW1lcy5tYXAobyksLi4udC5za2lwcy5tYXAobykubWFwKChlPT4iLSIrZSkpXS5qb2luKCIsIik7cmV0dXJuIHQuZW5hYmxlKCIiKSxlfSx0LmVuYWJsZT1mdW5jdGlvbihlKXtsZXQgcjt0LnNhdmUoZSksdC5uYW1lc3BhY2VzPWUsdC5uYW1lcz1bXSx0LnNraXBzPVtdO2NvbnN0IG49KCJzdHJpbmciPT10eXBlb2YgZT9lOiIiKS5zcGxpdCgvW1xzLF0rLyksbz1uLmxlbmd0aDtmb3Iocj0wO3I8bztyKyspbltyXSYmKCItIj09PShlPW5bcl0ucmVwbGFjZSgvXCovZywiLio/IikpWzBdP3Quc2tpcHMucHVzaChuZXcgUmVnRXhwKCJeIitlLnNsaWNlKDEpKyIkIikpOnQubmFtZXMucHVzaChuZXcgUmVnRXhwKCJeIitlKyIkIikpKX0sdC5lbmFibGVkPWZ1bmN0aW9uKGUpe2lmKCIqIj09PWVbZS5sZW5ndGgtMV0pcmV0dXJuITA7bGV0IHIsbjtmb3Iocj0wLG49dC5za2lwcy5sZW5ndGg7cjxuO3IrKylpZih0LnNraXBzW3JdLnRlc3QoZSkpcmV0dXJuITE7Zm9yKHI9MCxuPXQubmFtZXMubGVuZ3RoO3I8bjtyKyspaWYodC5uYW1lc1tyXS50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfSx0Lmh1bWFuaXplPXIoMjhlMyksdC5kZXN0cm95PWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKCJJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuIil9LE9iamVjdC5rZXlzKGUpLmZvckVhY2goKHI9Pnt0W3JdPWVbcl19KSksdC5uYW1lcz1bXSx0LnNraXBzPVtdLHQuZm9ybWF0dGVycz17fSx0LnNlbGVjdENvbG9yPWZ1bmN0aW9uKGUpe2xldCByPTA7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspcj0ocjw8NSktcitlLmNoYXJDb2RlQXQodCkscnw9MDtyZXR1cm4gdC5jb2xvcnNbTWF0aC5hYnMocikldC5jb2xvcnMubGVuZ3RoXX0sdC5lbmFibGUodC5sb2FkKCkpLHR9fSw0MTQ2OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0NDM2Myksbz17Y2hpbGRDb250ZXh0VHlwZXM6ITAsY29udGV4dFR5cGU6ITAsY29udGV4dFR5cGVzOiEwLGRlZmF1bHRQcm9wczohMCxkaXNwbGF5TmFtZTohMCxnZXREZWZhdWx0UHJvcHM6ITAsZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yOiEwLGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczohMCxtaXhpbnM6ITAscHJvcFR5cGVzOiEwLHR5cGU6ITB9LGk9e25hbWU6ITAsbGVuZ3RoOiEwLHByb3RvdHlwZTohMCxjYWxsZXI6ITAsY2FsbGVlOiEwLGFyZ3VtZW50czohMCxhcml0eTohMH0sYT17JCR0eXBlb2Y6ITAsY29tcGFyZTohMCxkZWZhdWx0UHJvcHM6ITAsZGlzcGxheU5hbWU6ITAscHJvcFR5cGVzOiEwLHR5cGU6ITB9LHM9e307ZnVuY3Rpb24gYyhlKXtyZXR1cm4gbi5pc01lbW8oZSk/YTpzW2UuJCR0eXBlb2ZdfHxvfXNbbi5Gb3J3YXJkUmVmXT17JCR0eXBlb2Y6ITAscmVuZGVyOiEwLGRlZmF1bHRQcm9wczohMCxkaXNwbGF5TmFtZTohMCxwcm9wVHlwZXM6ITB9LHNbbi5NZW1vXT1hO3ZhciB1PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLGY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IscD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsXz1PYmplY3QucHJvdG90eXBlO2UuZXhwb3J0cz1mdW5jdGlvbiBlKHQscixuKXtpZigic3RyaW5nIiE9dHlwZW9mIHIpe2lmKF8pe3ZhciBvPXAocik7byYmbyE9PV8mJmUodCxvLG4pfXZhciBhPWwocik7ZiYmKGE9YS5jb25jYXQoZihyKSkpO2Zvcih2YXIgcz1jKHQpLGg9YyhyKSxtPTA7bTxhLmxlbmd0aDsrK20pe3ZhciB5PWFbbV07aWYoIShpW3ldfHxuJiZuW3ldfHxoJiZoW3ldfHxzJiZzW3ldKSl7dmFyIGc9ZChyLHkpO3RyeXt1KHQseSxnKX1jYXRjaChlKXt9fX19cmV0dXJuIHR9fSw2MjIxOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig5NjU0MCk7ZnVuY3Rpb24gbyhlKXt2YXIgdD0iaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzLyIrZTtpZigxPGFyZ3VtZW50cy5sZW5ndGgpe3QrPSI/YXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciByPTI7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0Kz0iJmFyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbcl0pfXJldHVybiJNaW5pZmllZCBSZWFjdCBlcnJvciAjIitlKyI7IHZpc2l0ICIrdCsiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4ifWZ1bmN0aW9uIGkoKXt9dmFyIGE9e2Q6e2Y6aSxyOmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3Iobyg1MjIpKX0sRDppLEM6aSxMOmksbTppLFg6aSxTOmksTTppfSxwOjAsZmluZERPTU5vZGU6bnVsbH0scz1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKTt2YXIgYz1uLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERTtmdW5jdGlvbiB1KGUsdCl7cmV0dXJuImZvbnQiPT09ZT8iIjoic3RyaW5nIj09dHlwZW9mIHQ/InVzZS1jcmVkZW50aWFscyI9PT10P3Q6IiI6dm9pZCAwfXQuX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFPWEsdC5jcmVhdGVQb3J0YWw9ZnVuY3Rpb24oZSx0KXt2YXIgcj0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbDtpZighdHx8MSE9PXQubm9kZVR5cGUmJjkhPT10Lm5vZGVUeXBlJiYxMSE9PXQubm9kZVR5cGUpdGhyb3cgRXJyb3IobygyOTkpKTtyZXR1cm4gZnVuY3Rpb24oZSx0LHIpe3ZhciBuPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpudWxsO3JldHVybnskJHR5cGVvZjpzLGtleTpudWxsPT1uP251bGw6IiIrbixjaGlsZHJlbjplLGNvbnRhaW5lckluZm86dCxpbXBsZW1lbnRhdGlvbjpyfX0oZSx0LG51bGwscil9LHQuZmx1c2hTeW5jPWZ1bmN0aW9uKGUpe3ZhciB0PWMuVCxyPWEucDt0cnl7aWYoYy5UPW51bGwsYS5wPTIsZSlyZXR1cm4gZSgpfWZpbmFsbHl7Yy5UPXQsYS5wPXIsYS5kLmYoKX19LHQucHJlY29ubmVjdD1mdW5jdGlvbihlLHQpeyJzdHJpbmciPT10eXBlb2YgZSYmKHQ/dD0ic3RyaW5nIj09dHlwZW9mKHQ9dC5jcm9zc09yaWdpbik/InVzZS1jcmVkZW50aWFscyI9PT10P3Q6IiI6dm9pZCAwOnQ9bnVsbCxhLmQuQyhlLHQpKX0sdC5wcmVmZXRjaEROUz1mdW5jdGlvbihlKXsic3RyaW5nIj09dHlwZW9mIGUmJmEuZC5EKGUpfSx0LnByZWluaXQ9ZnVuY3Rpb24oZSx0KXtpZigic3RyaW5nIj09dHlwZW9mIGUmJnQmJiJzdHJpbmciPT10eXBlb2YgdC5hcyl7dmFyIHI9dC5hcyxuPXUocix0LmNyb3NzT3JpZ2luKSxvPSJzdHJpbmciPT10eXBlb2YgdC5pbnRlZ3JpdHk/dC5pbnRlZ3JpdHk6dm9pZCAwLGk9InN0cmluZyI9PXR5cGVvZiB0LmZldGNoUHJpb3JpdHk/dC5mZXRjaFByaW9yaXR5OnZvaWQgMDsic3R5bGUiPT09cj9hLmQuUyhlLCJzdHJpbmciPT10eXBlb2YgdC5wcmVjZWRlbmNlP3QucHJlY2VkZW5jZTp2b2lkIDAse2Nyb3NzT3JpZ2luOm4saW50ZWdyaXR5Om8sZmV0Y2hQcmlvcml0eTppfSk6InNjcmlwdCI9PT1yJiZhLmQuWChlLHtjcm9zc09yaWdpbjpuLGludGVncml0eTpvLGZldGNoUHJpb3JpdHk6aSxub25jZToic3RyaW5nIj09dHlwZW9mIHQubm9uY2U/dC5ub25jZTp2b2lkIDB9KX19LHQucHJlaW5pdE1vZHVsZT1mdW5jdGlvbihlLHQpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlpZigib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10KXtpZihudWxsPT10LmFzfHwic2NyaXB0Ij09PXQuYXMpe3ZhciByPXUodC5hcyx0LmNyb3NzT3JpZ2luKTthLmQuTShlLHtjcm9zc09yaWdpbjpyLGludGVncml0eToic3RyaW5nIj09dHlwZW9mIHQuaW50ZWdyaXR5P3QuaW50ZWdyaXR5OnZvaWQgMCxub25jZToic3RyaW5nIj09dHlwZW9mIHQubm9uY2U/dC5ub25jZTp2b2lkIDB9KX19ZWxzZSBudWxsPT10JiZhLmQuTShlKX0sdC5wcmVsb2FkPWZ1bmN0aW9uKGUsdCl7aWYoInN0cmluZyI9PXR5cGVvZiBlJiYib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10JiYic3RyaW5nIj09dHlwZW9mIHQuYXMpe3ZhciByPXQuYXMsbj11KHIsdC5jcm9zc09yaWdpbik7YS5kLkwoZSxyLHtjcm9zc09yaWdpbjpuLGludGVncml0eToic3RyaW5nIj09dHlwZW9mIHQuaW50ZWdyaXR5P3QuaW50ZWdyaXR5OnZvaWQgMCxub25jZToic3RyaW5nIj09dHlwZW9mIHQubm9uY2U/dC5ub25jZTp2b2lkIDAsdHlwZToic3RyaW5nIj09dHlwZW9mIHQudHlwZT90LnR5cGU6dm9pZCAwLGZldGNoUHJpb3JpdHk6InN0cmluZyI9PXR5cGVvZiB0LmZldGNoUHJpb3JpdHk/dC5mZXRjaFByaW9yaXR5OnZvaWQgMCxyZWZlcnJlclBvbGljeToic3RyaW5nIj09dHlwZW9mIHQucmVmZXJyZXJQb2xpY3k/dC5yZWZlcnJlclBvbGljeTp2b2lkIDAsaW1hZ2VTcmNTZXQ6InN0cmluZyI9PXR5cGVvZiB0LmltYWdlU3JjU2V0P3QuaW1hZ2VTcmNTZXQ6dm9pZCAwLGltYWdlU2l6ZXM6InN0cmluZyI9PXR5cGVvZiB0LmltYWdlU2l6ZXM/dC5pbWFnZVNpemVzOnZvaWQgMCxtZWRpYToic3RyaW5nIj09dHlwZW9mIHQubWVkaWE/dC5tZWRpYTp2b2lkIDB9KX19LHQucHJlbG9hZE1vZHVsZT1mdW5jdGlvbihlLHQpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlpZih0KXt2YXIgcj11KHQuYXMsdC5jcm9zc09yaWdpbik7YS5kLm0oZSx7YXM6InN0cmluZyI9PXR5cGVvZiB0LmFzJiYic2NyaXB0IiE9PXQuYXM/dC5hczp2b2lkIDAsY3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6InN0cmluZyI9PXR5cGVvZiB0LmludGVncml0eT90LmludGVncml0eTp2b2lkIDB9KX1lbHNlIGEuZC5tKGUpfSx0LnJlcXVlc3RGb3JtUmVzZXQ9ZnVuY3Rpb24oZSl7YS5kLnIoZSl9LHQudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSh0KX0sdC51c2VGb3JtU3RhdGU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBjLkgudXNlRm9ybVN0YXRlKGUsdCxyKX0sdC51c2VGb3JtU3RhdHVzPWZ1bmN0aW9uKCl7cmV0dXJuIGMuSC51c2VIb3N0VHJhbnNpdGlvblN0YXR1cygpfSx0LnZlcnNpb249IjE5LjIuNyJ9LDQwOTYxOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7IWZ1bmN0aW9uIGUoKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyYmImZ1bmN0aW9uIj09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGUpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fSgpLGUuZXhwb3J0cz1yKDYyMjEpfSwyMjc5OTpmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yLG49cj9TeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50Iik6NjAxMDMsbz1yP1N5bWJvbC5mb3IoInJlYWN0LnBvcnRhbCIpOjYwMTA2LGk9cj9TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpOjYwMTA3LGE9cj9TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpOjYwMTA4LHM9cj9TeW1ib2wuZm9yKCJyZWFjdC5wcm9maWxlciIpOjYwMTE0LGM9cj9TeW1ib2wuZm9yKCJyZWFjdC5wcm92aWRlciIpOjYwMTA5LHU9cj9TeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0Iik6NjAxMTAsbD1yP1N5bWJvbC5mb3IoInJlYWN0LmFzeW5jX21vZGUiKTo2MDExMSxmPXI/U3ltYm9sLmZvcigicmVhY3QuY29uY3VycmVudF9tb2RlIik6NjAxMTEsZD1yP1N5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIik6NjAxMTIscD1yP1N5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIik6NjAxMTMsXz1yP1N5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlX2xpc3QiKTo2MDEyMCxoPXI/U3ltYm9sLmZvcigicmVhY3QubWVtbyIpOjYwMTE1LG09cj9TeW1ib2wuZm9yKCJyZWFjdC5sYXp5Iik6NjAxMTYseT1yP1N5bWJvbC5mb3IoInJlYWN0LmJsb2NrIik6NjAxMjEsZz1yP1N5bWJvbC5mb3IoInJlYWN0LmZ1bmRhbWVudGFsIik6NjAxMTcsdj1yP1N5bWJvbC5mb3IoInJlYWN0LnJlc3BvbmRlciIpOjYwMTE4LGI9cj9TeW1ib2wuZm9yKCJyZWFjdC5zY29wZSIpOjYwMTE5O2Z1bmN0aW9uIHcoZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSl7dmFyIHQ9ZS4kJHR5cGVvZjtzd2l0Y2godCl7Y2FzZSBuOnN3aXRjaChlPWUudHlwZSl7Y2FzZSBsOmNhc2UgZjpjYXNlIGk6Y2FzZSBzOmNhc2UgYTpjYXNlIHA6cmV0dXJuIGU7ZGVmYXVsdDpzd2l0Y2goZT1lJiZlLiQkdHlwZW9mKXtjYXNlIHU6Y2FzZSBkOmNhc2UgbTpjYXNlIGg6Y2FzZSBjOnJldHVybiBlO2RlZmF1bHQ6cmV0dXJuIHR9fWNhc2UgbzpyZXR1cm4gdH19fWZ1bmN0aW9uIFMoZSl7cmV0dXJuIHcoZSk9PT1mfXQuQXN5bmNNb2RlPWwsdC5Db25jdXJyZW50TW9kZT1mLHQuQ29udGV4dENvbnN1bWVyPXUsdC5Db250ZXh0UHJvdmlkZXI9Yyx0LkVsZW1lbnQ9bix0LkZvcndhcmRSZWY9ZCx0LkZyYWdtZW50PWksdC5MYXp5PW0sdC5NZW1vPWgsdC5Qb3J0YWw9byx0LlByb2ZpbGVyPXMsdC5TdHJpY3RNb2RlPWEsdC5TdXNwZW5zZT1wLHQuaXNBc3luY01vZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIFMoZSl8fHcoZSk9PT1sfSx0LmlzQ29uY3VycmVudE1vZGU9Uyx0LmlzQ29udGV4dENvbnN1bWVyPWZ1bmN0aW9uKGUpe3JldHVybiB3KGUpPT09dX0sdC5pc0NvbnRleHRQcm92aWRlcj1mdW5jdGlvbihlKXtyZXR1cm4gdyhlKT09PWN9LHQuaXNFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT1ufSx0LmlzRm9yd2FyZFJlZj1mdW5jdGlvbihlKXtyZXR1cm4gdyhlKT09PWR9LHQuaXNGcmFnbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gdyhlKT09PWl9LHQuaXNMYXp5PWZ1bmN0aW9uKGUpe3JldHVybiB3KGUpPT09bX0sdC5pc01lbW89ZnVuY3Rpb24oZSl7cmV0dXJuIHcoZSk9PT1ofSx0LmlzUG9ydGFsPWZ1bmN0aW9uKGUpe3JldHVybiB3KGUpPT09b30sdC5pc1Byb2ZpbGVyPWZ1bmN0aW9uKGUpe3JldHVybiB3KGUpPT09c30sdC5pc1N0cmljdE1vZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHcoZSk9PT1hfSx0LmlzU3VzcGVuc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHcoZSk9PT1wfSx0LmlzVmFsaWRFbGVtZW50VHlwZT1mdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlfHxlPT09aXx8ZT09PWZ8fGU9PT1zfHxlPT09YXx8ZT09PXB8fGU9PT1ffHwib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiYoZS4kJHR5cGVvZj09PW18fGUuJCR0eXBlb2Y9PT1ofHxlLiQkdHlwZW9mPT09Y3x8ZS4kJHR5cGVvZj09PXV8fGUuJCR0eXBlb2Y9PT1kfHxlLiQkdHlwZW9mPT09Z3x8ZS4kJHR5cGVvZj09PXZ8fGUuJCR0eXBlb2Y9PT1ifHxlLiQkdHlwZW9mPT09eSl9LHQudHlwZU9mPXd9LDQ0MzYzOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXIoMjI3OTkpfSw3MDQwMDpmdW5jdGlvbihlLHQscil7IWZ1bmN0aW9uKGUsdCxyLG4sbyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGUmJk9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKHIpe2lmKCJkZWZhdWx0IiE9PXIpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxyKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLG4uZ2V0P246e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGVbcl19fSl9fSkpLHQuZGVmYXVsdD1lLE9iamVjdC5mcmVlemUodCl9dmFyIGE9aSh0KSxzPWkocik7ZnVuY3Rpb24gYygpe3JldHVybiBjPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIHI9YXJndW1lbnRzW3RdO2Zvcih2YXIgbiBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLG4pJiYoZVtuXT1yW25dKX1yZXR1cm4gZX0sYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdShlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHIsbixvPXt9LGk9T2JqZWN0LmtleXMoZSk7Zm9yKG49MDtuPGkubGVuZ3RoO24rKylyPWlbbl0sdC5pbmRleE9mKHIpPj0wfHwob1tyXT1lW3JdKTtyZXR1cm4gb31jb25zdCBsPSJnZXQiLGY9ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCI7ZnVuY3Rpb24gZChlKXtyZXR1cm4gbnVsbCE9ZSYmInN0cmluZyI9PXR5cGVvZiBlLnRhZ05hbWV9ZnVuY3Rpb24gcChlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9IiIpLG5ldyBVUkxTZWFyY2hQYXJhbXMoInN0cmluZyI9PXR5cGVvZiBlfHxBcnJheS5pc0FycmF5KGUpfHxlIGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zP2U6T2JqZWN0LmtleXMoZSkucmVkdWNlKCgodCxyKT0+e2xldCBuPWVbcl07cmV0dXJuIHQuY29uY2F0KEFycmF5LmlzQXJyYXkobik/bi5tYXAoKGU9PltyLGVdKSk6W1tyLG5dXSl9KSxbXSkpfWxldCBfPW51bGw7Y29uc3QgaD1uZXcgU2V0KFsiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwibXVsdGlwYXJ0L2Zvcm0tZGF0YSIsInRleHQvcGxhaW4iXSk7ZnVuY3Rpb24gbShlKXtyZXR1cm4gbnVsbD09ZXx8aC5oYXMoZSk/ZTpudWxsfWZ1bmN0aW9uIHkoZSx0KXtsZXQgcixuLGksYSxzO2lmKGQoYz1lKSYmImZvcm0iPT09Yy50YWdOYW1lLnRvTG93ZXJDYXNlKCkpe2xldCBzPWUuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKTtuPXM/by5zdHJpcEJhc2VuYW1lKHMsdCk6bnVsbCxyPWUuZ2V0QXR0cmlidXRlKCJtZXRob2QiKXx8bCxpPW0oZS5nZXRBdHRyaWJ1dGUoImVuY3R5cGUiKSl8fGYsYT1uZXcgRm9ybURhdGEoZSl9ZWxzZSBpZihmdW5jdGlvbihlKXtyZXR1cm4gZChlKSYmImJ1dHRvbiI9PT1lLnRhZ05hbWUudG9Mb3dlckNhc2UoKX0oZSl8fGZ1bmN0aW9uKGUpe3JldHVybiBkKGUpJiYiaW5wdXQiPT09ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCl9KGUpJiYoInN1Ym1pdCI9PT1lLnR5cGV8fCJpbWFnZSI9PT1lLnR5cGUpKXtsZXQgcz1lLmZvcm07aWYobnVsbD09cyl0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzdWJtaXQgYSA8YnV0dG9uPiBvciA8aW5wdXQgdHlwZT0ic3VibWl0Ij4gd2l0aG91dCBhIDxmb3JtPicpO2xldCBjPWUuZ2V0QXR0cmlidXRlKCJmb3JtYWN0aW9uIil8fHMuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKTtpZihuPWM/by5zdHJpcEJhc2VuYW1lKGMsdCk6bnVsbCxyPWUuZ2V0QXR0cmlidXRlKCJmb3JtbWV0aG9kIil8fHMuZ2V0QXR0cmlidXRlKCJtZXRob2QiKXx8bCxpPW0oZS5nZXRBdHRyaWJ1dGUoImZvcm1lbmN0eXBlIikpfHxtKHMuZ2V0QXR0cmlidXRlKCJlbmN0eXBlIikpfHxmLGE9bmV3IEZvcm1EYXRhKHMsZSksIWZ1bmN0aW9uKCl7aWYobnVsbD09PV8pdHJ5e25ldyBGb3JtRGF0YShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIiksMCksXz0hMX1jYXRjaChlKXtfPSEwfXJldHVybiBffSgpKXtsZXR7bmFtZTp0LHR5cGU6cix2YWx1ZTpufT1lO2lmKCJpbWFnZSI9PT1yKXtsZXQgZT10P3QrIi4iOiIiO2EuYXBwZW5kKGUrIngiLCIwIiksYS5hcHBlbmQoZSsieSIsIjAiKX1lbHNlIHQmJmEuYXBwZW5kKHQsbil9fWVsc2V7aWYoZChlKSl0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzdWJtaXQgZWxlbWVudCB0aGF0IGlzIG5vdCA8Zm9ybT4sIDxidXR0b24+LCBvciA8aW5wdXQgdHlwZT0ic3VibWl0fGltYWdlIj4nKTtyPWwsbj1udWxsLGk9ZixzPWV9dmFyIGM7cmV0dXJuIGEmJiJ0ZXh0L3BsYWluIj09PWkmJihzPWEsYT12b2lkIDApLHthY3Rpb246bixtZXRob2Q6ci50b0xvd2VyQ2FzZSgpLGVuY1R5cGU6aSxmb3JtRGF0YTphLGJvZHk6c319Y29uc3QgZz1bIm9uQ2xpY2siLCJyZWxhdGl2ZSIsInJlbG9hZERvY3VtZW50IiwicmVwbGFjZSIsInN0YXRlIiwidGFyZ2V0IiwidG8iLCJwcmV2ZW50U2Nyb2xsUmVzZXQiLCJ1bnN0YWJsZV92aWV3VHJhbnNpdGlvbiJdLHY9WyJhcmlhLWN1cnJlbnQiLCJjYXNlU2Vuc2l0aXZlIiwiY2xhc3NOYW1lIiwiZW5kIiwic3R5bGUiLCJ0byIsInVuc3RhYmxlX3ZpZXdUcmFuc2l0aW9uIiwiY2hpbGRyZW4iXSxiPVsiZmV0Y2hlcktleSIsIm5hdmlnYXRlIiwicmVsb2FkRG9jdW1lbnQiLCJyZXBsYWNlIiwic3RhdGUiLCJtZXRob2QiLCJhY3Rpb24iLCJvblN1Ym1pdCIsInJlbGF0aXZlIiwicHJldmVudFNjcm9sbFJlc2V0IiwidW5zdGFibGVfdmlld1RyYW5zaXRpb24iXTt0cnl7d2luZG93Ll9fcmVhY3RSb3V0ZXJWZXJzaW9uPSI2In1jYXRjaChlKXt9ZnVuY3Rpb24gdygpe3ZhciBlO2xldCB0PW51bGw9PShlPXdpbmRvdyk/dm9pZCAwOmUuX19zdGF0aWNSb3V0ZXJIeWRyYXRpb25EYXRhO3JldHVybiB0JiZ0LmVycm9ycyYmKHQ9Yyh7fSx0LHtlcnJvcnM6Uyh0LmVycm9ycyl9KSksdH1mdW5jdGlvbiBTKGUpe2lmKCFlKXJldHVybiBudWxsO2xldCB0PU9iamVjdC5lbnRyaWVzKGUpLHI9e307Zm9yKGxldFtuLGldb2YgdClpZihpJiYiUm91dGVFcnJvclJlc3BvbnNlIj09PWkuX190eXBlKXJbbl09bmV3IG8uVU5TQUZFX0Vycm9yUmVzcG9uc2VJbXBsKGkuc3RhdHVzLGkuc3RhdHVzVGV4dCxpLmRhdGEsITA9PT1pLmludGVybmFsKTtlbHNlIGlmKGkmJiJFcnJvciI9PT1pLl9fdHlwZSl7aWYoaS5fX3N1YlR5cGUpe2xldCB0PXdpbmRvd1tpLl9fc3ViVHlwZV07aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpdHJ5e2xldCBlPW5ldyB0KGkubWVzc2FnZSk7ZS5zdGFjaz0iIixyW25dPWV9Y2F0Y2goZSl7fX1pZihudWxsPT1yW25dKXtsZXQgZT1uZXcgRXJyb3IoaS5tZXNzYWdlKTtlLnN0YWNrPSIiLHJbbl09ZX19ZWxzZSByW25dPWk7cmV0dXJuIHJ9Y29uc3Qgaz1hLmNyZWF0ZUNvbnRleHQoe2lzVHJhbnNpdGlvbmluZzohMX0pLHg9YS5jcmVhdGVDb250ZXh0KG5ldyBNYXApLEU9YS5zdGFydFRyYW5zaXRpb24sQT1zLmZsdXNoU3luYyxUPWEudXNlSWQ7ZnVuY3Rpb24gUihlKXtBP0EoZSk6ZSgpfWNsYXNzIE57Y29uc3RydWN0b3IoKXt0aGlzLnN0YXR1cz0icGVuZGluZyIsdGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKCgoZSx0KT0+e3RoaXMucmVzb2x2ZT10PT57InBlbmRpbmciPT09dGhpcy5zdGF0dXMmJih0aGlzLnN0YXR1cz0icmVzb2x2ZWQiLGUodCkpfSx0aGlzLnJlamVjdD1lPT57InBlbmRpbmciPT09dGhpcy5zdGF0dXMmJih0aGlzLnN0YXR1cz0icmVqZWN0ZWQiLHQoZSkpfX0pKX19ZnVuY3Rpb24gUChlKXtsZXR7cm91dGVzOnQsZnV0dXJlOnIsc3RhdGU6b309ZTtyZXR1cm4gbi5VTlNBRkVfdXNlUm91dGVzSW1wbCh0LHZvaWQgMCxvLHIpfWNvbnN0IE89InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5kb2N1bWVudCYmdm9pZCAwIT09d2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQsTT0vXig/OlthLXpdW2EtejAtOSsuLV0qOnxcL1wvKS9pLEY9YS5mb3J3YXJkUmVmKChmdW5jdGlvbihlLHQpe2xldCByLHtvbkNsaWNrOmkscmVsYXRpdmU6cyxyZWxvYWREb2N1bWVudDpsLHJlcGxhY2U6ZixzdGF0ZTpkLHRhcmdldDpwLHRvOl8scHJldmVudFNjcm9sbFJlc2V0OmgsdW5zdGFibGVfdmlld1RyYW5zaXRpb246bX09ZSx5PXUoZSxnKSx7YmFzZW5hbWU6dn09YS51c2VDb250ZXh0KG4uVU5TQUZFX05hdmlnYXRpb25Db250ZXh0KSxiPSExO2lmKCJzdHJpbmciPT10eXBlb2YgXyYmTS50ZXN0KF8pJiYocj1fLE8pKXRyeXtsZXQgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx0PV8uc3RhcnRzV2l0aCgiLy8iKT9uZXcgVVJMKGUucHJvdG9jb2wrXyk6bmV3IFVSTChfKSxyPW8uc3RyaXBCYXNlbmFtZSh0LnBhdGhuYW1lLHYpO3Qub3JpZ2luPT09ZS5vcmlnaW4mJm51bGwhPXI/Xz1yK3Quc2VhcmNoK3QuaGFzaDpiPSEwfWNhdGNoKGUpe31sZXQgdz1uLnVzZUhyZWYoXyx7cmVsYXRpdmU6c30pLFM9QihfLHtyZXBsYWNlOmYsc3RhdGU6ZCx0YXJnZXQ6cCxwcmV2ZW50U2Nyb2xsUmVzZXQ6aCxyZWxhdGl2ZTpzLHVuc3RhYmxlX3ZpZXdUcmFuc2l0aW9uOm19KTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KCJhIixjKHt9LHkse2hyZWY6cnx8dyxvbkNsaWNrOmJ8fGw/aTpmdW5jdGlvbihlKXtpJiZpKGUpLGUuZGVmYXVsdFByZXZlbnRlZHx8UyhlKX0scmVmOnQsdGFyZ2V0OnB9KSl9KSksST1hLmZvcndhcmRSZWYoKGZ1bmN0aW9uKGUsdCl7bGV0eyJhcmlhLWN1cnJlbnQiOnI9InBhZ2UiLGNhc2VTZW5zaXRpdmU6aT0hMSxjbGFzc05hbWU6cz0iIixlbmQ6bD0hMSxzdHlsZTpmLHRvOmQsdW5zdGFibGVfdmlld1RyYW5zaXRpb246cCxjaGlsZHJlbjpffT1lLGg9dShlLHYpLG09bi51c2VSZXNvbHZlZFBhdGgoZCx7cmVsYXRpdmU6aC5yZWxhdGl2ZX0pLHk9bi51c2VMb2NhdGlvbigpLGc9YS51c2VDb250ZXh0KG4uVU5TQUZFX0RhdGFSb3V0ZXJTdGF0ZUNvbnRleHQpLHtuYXZpZ2F0b3I6YixiYXNlbmFtZTp3fT1hLnVzZUNvbnRleHQobi5VTlNBRkVfTmF2aWdhdGlvbkNvbnRleHQpLFM9bnVsbCE9ZyYmSyhtKSYmITA9PT1wLGs9Yi5lbmNvZGVMb2NhdGlvbj9iLmVuY29kZUxvY2F0aW9uKG0pLnBhdGhuYW1lOm0ucGF0aG5hbWUseD15LnBhdGhuYW1lLEU9ZyYmZy5uYXZpZ2F0aW9uJiZnLm5hdmlnYXRpb24ubG9jYXRpb24/Zy5uYXZpZ2F0aW9uLmxvY2F0aW9uLnBhdGhuYW1lOm51bGw7aXx8KHg9eC50b0xvd2VyQ2FzZSgpLEU9RT9FLnRvTG93ZXJDYXNlKCk6bnVsbCxrPWsudG9Mb3dlckNhc2UoKSksRSYmdyYmKEU9by5zdHJpcEJhc2VuYW1lKEUsdyl8fEUpO2NvbnN0IEE9Ii8iIT09ayYmay5lbmRzV2l0aCgiLyIpP2subGVuZ3RoLTE6ay5sZW5ndGg7bGV0IFQsUj14PT09a3x8IWwmJnguc3RhcnRzV2l0aChrKSYmIi8iPT09eC5jaGFyQXQoQSksUD1udWxsIT1FJiYoRT09PWt8fCFsJiZFLnN0YXJ0c1dpdGgoaykmJiIvIj09PUUuY2hhckF0KGsubGVuZ3RoKSksTz17aXNBY3RpdmU6Uixpc1BlbmRpbmc6UCxpc1RyYW5zaXRpb25pbmc6U30sTT1SP3I6dm9pZCAwO1Q9ImZ1bmN0aW9uIj09dHlwZW9mIHM/cyhPKTpbcyxSPyJhY3RpdmUiOm51bGwsUD8icGVuZGluZyI6bnVsbCxTPyJ0cmFuc2l0aW9uaW5nIjpudWxsXS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpO2xldCBJPSJmdW5jdGlvbiI9PXR5cGVvZiBmP2YoTyk6ZjtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KEYsYyh7fSxoLHsiYXJpYS1jdXJyZW50IjpNLGNsYXNzTmFtZTpULHJlZjp0LHN0eWxlOkksdG86ZCx1bnN0YWJsZV92aWV3VHJhbnNpdGlvbjpwfSksImZ1bmN0aW9uIj09dHlwZW9mIF8/XyhPKTpfKX0pKSxqPWEuZm9yd2FyZFJlZigoKGUsdCk9PntsZXR7ZmV0Y2hlcktleTpyLG5hdmlnYXRlOm4scmVsb2FkRG9jdW1lbnQ6byxyZXBsYWNlOmksc3RhdGU6cyxtZXRob2Q6Zj1sLGFjdGlvbjpkLG9uU3VibWl0OnAscmVsYXRpdmU6XyxwcmV2ZW50U2Nyb2xsUmVzZXQ6aCx1bnN0YWJsZV92aWV3VHJhbnNpdGlvbjptfT1lLHk9dShlLGIpLGc9JCgpLHY9cShkLHtyZWxhdGl2ZTpffSksdz0iZ2V0Ij09PWYudG9Mb3dlckNhc2UoKT8iZ2V0IjoicG9zdCI7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCgiZm9ybSIsYyh7cmVmOnQsbWV0aG9kOncsYWN0aW9uOnYsb25TdWJtaXQ6bz9wOmU9PntpZihwJiZwKGUpLGUuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB0PWUubmF0aXZlRXZlbnQuc3VibWl0dGVyLG89KG51bGw9PXQ/dm9pZCAwOnQuZ2V0QXR0cmlidXRlKCJmb3JtbWV0aG9kIikpfHxmO2codHx8ZS5jdXJyZW50VGFyZ2V0LHtmZXRjaGVyS2V5OnIsbWV0aG9kOm8sbmF2aWdhdGU6bixyZXBsYWNlOmksc3RhdGU6cyxyZWxhdGl2ZTpfLHByZXZlbnRTY3JvbGxSZXNldDpoLHVuc3RhYmxlX3ZpZXdUcmFuc2l0aW9uOm19KX19LHkpKX0pKTt2YXIgRD1mdW5jdGlvbihlKXtyZXR1cm4gZS5Vc2VTY3JvbGxSZXN0b3JhdGlvbj0idXNlU2Nyb2xsUmVzdG9yYXRpb24iLGUuVXNlU3VibWl0PSJ1c2VTdWJtaXQiLGUuVXNlU3VibWl0RmV0Y2hlcj0idXNlU3VibWl0RmV0Y2hlciIsZS5Vc2VGZXRjaGVyPSJ1c2VGZXRjaGVyIixlLnVzZVZpZXdUcmFuc2l0aW9uU3RhdGU9InVzZVZpZXdUcmFuc2l0aW9uU3RhdGUiLGV9KER8fHt9KSxMPWZ1bmN0aW9uKGUpe3JldHVybiBlLlVzZUZldGNoZXI9InVzZUZldGNoZXIiLGUuVXNlRmV0Y2hlcnM9InVzZUZldGNoZXJzIixlLlVzZVNjcm9sbFJlc3RvcmF0aW9uPSJ1c2VTY3JvbGxSZXN0b3JhdGlvbiIsZX0oTHx8e30pO2Z1bmN0aW9uIFUoZSl7bGV0IHQ9YS51c2VDb250ZXh0KG4uVU5TQUZFX0RhdGFSb3V0ZXJDb250ZXh0KTtyZXR1cm4gdHx8by5VTlNBRkVfaW52YXJpYW50KCExKSx0fWZ1bmN0aW9uIHooZSl7bGV0IHQ9YS51c2VDb250ZXh0KG4uVU5TQUZFX0RhdGFSb3V0ZXJTdGF0ZUNvbnRleHQpO3JldHVybiB0fHxvLlVOU0FGRV9pbnZhcmlhbnQoITEpLHR9ZnVuY3Rpb24gQihlLHQpe2xldHt0YXJnZXQ6cixyZXBsYWNlOm8sc3RhdGU6aSxwcmV2ZW50U2Nyb2xsUmVzZXQ6cyxyZWxhdGl2ZTpjLHVuc3RhYmxlX3ZpZXdUcmFuc2l0aW9uOnV9PXZvaWQgMD09PXQ/e306dCxsPW4udXNlTmF2aWdhdGUoKSxmPW4udXNlTG9jYXRpb24oKSxkPW4udXNlUmVzb2x2ZWRQYXRoKGUse3JlbGF0aXZlOmN9KTtyZXR1cm4gYS51c2VDYWxsYmFjaygodD0+e2lmKGZ1bmN0aW9uKGUsdCl7cmV0dXJuISgwIT09ZS5idXR0b258fHQmJiJfc2VsZiIhPT10fHxmdW5jdGlvbihlKXtyZXR1cm4hIShlLm1ldGFLZXl8fGUuYWx0S2V5fHxlLmN0cmxLZXl8fGUuc2hpZnRLZXkpfShlKSl9KHQscikpe3QucHJldmVudERlZmF1bHQoKTtsZXQgcj12b2lkIDAhPT1vP286bi5jcmVhdGVQYXRoKGYpPT09bi5jcmVhdGVQYXRoKGQpO2woZSx7cmVwbGFjZTpyLHN0YXRlOmkscHJldmVudFNjcm9sbFJlc2V0OnMscmVsYXRpdmU6Yyx1bnN0YWJsZV92aWV3VHJhbnNpdGlvbjp1fSl9fSksW2YsbCxkLG8saSxyLGUscyxjLHVdKX1sZXQgSD0wLFc9KCk9PiJfXyIrU3RyaW5nKCsrSCkrIl9fIjtmdW5jdGlvbiAkKCl7bGV0e3JvdXRlcjplfT1VKEQuVXNlU3VibWl0KSx7YmFzZW5hbWU6dH09YS51c2VDb250ZXh0KG4uVU5TQUZFX05hdmlnYXRpb25Db250ZXh0KSxyPW4uVU5TQUZFX3VzZVJvdXRlSWQoKTtyZXR1cm4gYS51c2VDYWxsYmFjaygoZnVuY3Rpb24obixvKXt2b2lkIDA9PT1vJiYobz17fSksZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGRvY3VtZW50KXRocm93IG5ldyBFcnJvcigiWW91IGFyZSBjYWxsaW5nIHN1Ym1pdCBkdXJpbmcgdGhlIHNlcnZlciByZW5kZXIuIFRyeSBjYWxsaW5nIHN1Ym1pdCB3aXRoaW4gYSBgdXNlRWZmZWN0YCBvciBjYWxsYmFjayBpbnN0ZWFkLiIpfSgpO2xldHthY3Rpb246aSxtZXRob2Q6YSxlbmNUeXBlOnMsZm9ybURhdGE6Yyxib2R5OnV9PXkobix0KTtpZighMT09PW8ubmF2aWdhdGUpe2xldCB0PW8uZmV0Y2hlcktleXx8VygpO2UuZmV0Y2godCxyLG8uYWN0aW9ufHxpLHtwcmV2ZW50U2Nyb2xsUmVzZXQ6by5wcmV2ZW50U2Nyb2xsUmVzZXQsZm9ybURhdGE6Yyxib2R5OnUsZm9ybU1ldGhvZDpvLm1ldGhvZHx8YSxmb3JtRW5jVHlwZTpvLmVuY1R5cGV8fHMsdW5zdGFibGVfZmx1c2hTeW5jOm8udW5zdGFibGVfZmx1c2hTeW5jfSl9ZWxzZSBlLm5hdmlnYXRlKG8uYWN0aW9ufHxpLHtwcmV2ZW50U2Nyb2xsUmVzZXQ6by5wcmV2ZW50U2Nyb2xsUmVzZXQsZm9ybURhdGE6Yyxib2R5OnUsZm9ybU1ldGhvZDpvLm1ldGhvZHx8YSxmb3JtRW5jVHlwZTpvLmVuY1R5cGV8fHMscmVwbGFjZTpvLnJlcGxhY2Usc3RhdGU6by5zdGF0ZSxmcm9tUm91dGVJZDpyLHVuc3RhYmxlX2ZsdXNoU3luYzpvLnVuc3RhYmxlX2ZsdXNoU3luYyx1bnN0YWJsZV92aWV3VHJhbnNpdGlvbjpvLnVuc3RhYmxlX3ZpZXdUcmFuc2l0aW9ufSl9KSxbZSx0LHJdKX1mdW5jdGlvbiBxKGUsdCl7bGV0e3JlbGF0aXZlOnJ9PXZvaWQgMD09PXQ/e306dCx7YmFzZW5hbWU6aX09YS51c2VDb250ZXh0KG4uVU5TQUZFX05hdmlnYXRpb25Db250ZXh0KSxzPWEudXNlQ29udGV4dChuLlVOU0FGRV9Sb3V0ZUNvbnRleHQpO3N8fG8uVU5TQUZFX2ludmFyaWFudCghMSk7bGV0W3VdPXMubWF0Y2hlcy5zbGljZSgtMSksbD1jKHt9LG4udXNlUmVzb2x2ZWRQYXRoKGV8fCIuIix7cmVsYXRpdmU6cn0pKSxmPW4udXNlTG9jYXRpb24oKTtpZihudWxsPT1lKXtsLnNlYXJjaD1mLnNlYXJjaDtsZXQgZT1uZXcgVVJMU2VhcmNoUGFyYW1zKGwuc2VhcmNoKTtlLmhhcygiaW5kZXgiKSYmIiI9PT1lLmdldCgiaW5kZXgiKSYmKGUuZGVsZXRlKCJpbmRleCIpLGwuc2VhcmNoPWUudG9TdHJpbmcoKT8iPyIrZS50b1N0cmluZygpOiIiKX1yZXR1cm4gZSYmIi4iIT09ZXx8IXUucm91dGUuaW5kZXh8fChsLnNlYXJjaD1sLnNlYXJjaD9sLnNlYXJjaC5yZXBsYWNlKC9eXD8vLCI/aW5kZXgmIik6Ij9pbmRleCIpLCIvIiE9PWkmJihsLnBhdGhuYW1lPSIvIj09PWwucGF0aG5hbWU/aTpvLmpvaW5QYXRocyhbaSxsLnBhdGhuYW1lXSkpLG4uY3JlYXRlUGF0aChsKX1jb25zdCBHPSJyZWFjdC1yb3V0ZXItc2Nyb2xsLXBvc2l0aW9ucyI7bGV0IFY9e307ZnVuY3Rpb24gWShlKXtsZXR7Z2V0S2V5OnQsc3RvcmFnZUtleTpyfT12b2lkIDA9PT1lP3t9OmUse3JvdXRlcjppfT1VKEQuVXNlU2Nyb2xsUmVzdG9yYXRpb24pLHtyZXN0b3JlU2Nyb2xsUG9zaXRpb246cyxwcmV2ZW50U2Nyb2xsUmVzZXQ6dX09eihMLlVzZVNjcm9sbFJlc3RvcmF0aW9uKSx7YmFzZW5hbWU6bH09YS51c2VDb250ZXh0KG4uVU5TQUZFX05hdmlnYXRpb25Db250ZXh0KSxmPW4udXNlTG9jYXRpb24oKSxkPW4udXNlTWF0Y2hlcygpLHA9bi51c2VOYXZpZ2F0aW9uKCk7YS51c2VFZmZlY3QoKCgpPT4od2luZG93Lmhpc3Rvcnkuc2Nyb2xsUmVzdG9yYXRpb249Im1hbnVhbCIsKCk9Pnt3aW5kb3cuaGlzdG9yeS5zY3JvbGxSZXN0b3JhdGlvbj0iYXV0byJ9KSksW10pLGZ1bmN0aW9uKGUsdCl7bGV0e2NhcHR1cmU6cn09dHx8e307YS51c2VFZmZlY3QoKCgpPT57bGV0IHQ9bnVsbCE9cj97Y2FwdHVyZTpyfTp2b2lkIDA7cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsZSx0KSwoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsZSx0KX19KSxbZSxyXSl9KGEudXNlQ2FsbGJhY2soKCgpPT57aWYoImlkbGUiPT09cC5zdGF0ZSl7bGV0IGU9KHQ/dChmLGQpOm51bGwpfHxmLmtleTtWW2VdPXdpbmRvdy5zY3JvbGxZfXRyeXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHJ8fEcsSlNPTi5zdHJpbmdpZnkoVikpfWNhdGNoKGUpe313aW5kb3cuaGlzdG9yeS5zY3JvbGxSZXN0b3JhdGlvbj0iYXV0byJ9KSxbcix0LHAuc3RhdGUsZixkXSkpLCJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJihhLnVzZUxheW91dEVmZmVjdCgoKCk9Pnt0cnl7bGV0IGU9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShyfHxHKTtlJiYoVj1KU09OLnBhcnNlKGUpKX1jYXRjaChlKXt9fSksW3JdKSxhLnVzZUxheW91dEVmZmVjdCgoKCk9PntsZXQgZT10JiYiLyIhPT1sPyhlLHIpPT50KGMoe30sZSx7cGF0aG5hbWU6by5zdHJpcEJhc2VuYW1lKGUucGF0aG5hbWUsbCl8fGUucGF0aG5hbWV9KSxyKTp0LHI9bnVsbD09aT92b2lkIDA6aS5lbmFibGVTY3JvbGxSZXN0b3JhdGlvbihWLCgoKT0+d2luZG93LnNjcm9sbFkpLGUpO3JldHVybigpPT5yJiZyKCl9KSxbaSxsLHRdKSxhLnVzZUxheW91dEVmZmVjdCgoKCk9PntpZighMSE9PXMpaWYoIm51bWJlciIhPXR5cGVvZiBzKXtpZihmLmhhc2gpe2xldCBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRlY29kZVVSSUNvbXBvbmVudChmLmhhc2guc2xpY2UoMSkpKTtpZihlKXJldHVybiB2b2lkIGUuc2Nyb2xsSW50b1ZpZXcoKX0hMCE9PXUmJndpbmRvdy5zY3JvbGxUbygwLDApfWVsc2Ugd2luZG93LnNjcm9sbFRvKDAscyl9KSxbZixzLHVdKSl9ZnVuY3Rpb24gSyhlLHQpe3ZvaWQgMD09PXQmJih0PXt9KTtsZXQgcj1hLnVzZUNvbnRleHQoayk7bnVsbD09ciYmby5VTlNBRkVfaW52YXJpYW50KCExKTtsZXR7YmFzZW5hbWU6aX09VShELnVzZVZpZXdUcmFuc2l0aW9uU3RhdGUpLHM9bi51c2VSZXNvbHZlZFBhdGgoZSx7cmVsYXRpdmU6dC5yZWxhdGl2ZX0pO2lmKCFyLmlzVHJhbnNpdGlvbmluZylyZXR1cm4hMTtsZXQgYz1vLnN0cmlwQmFzZW5hbWUoci5jdXJyZW50TG9jYXRpb24ucGF0aG5hbWUsaSl8fHIuY3VycmVudExvY2F0aW9uLnBhdGhuYW1lLHU9by5zdHJpcEJhc2VuYW1lKHIubmV4dExvY2F0aW9uLnBhdGhuYW1lLGkpfHxyLm5leHRMb2NhdGlvbi5wYXRobmFtZTtyZXR1cm4gbnVsbCE9by5tYXRjaFBhdGgocy5wYXRobmFtZSx1KXx8bnVsbCE9by5tYXRjaFBhdGgocy5wYXRobmFtZSxjKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiQWJvcnRlZERlZmVycmVkRXJyb3IiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLkFib3J0ZWREZWZlcnJlZEVycm9yfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJBd2FpdCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uQXdhaXR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIk1lbW9yeVJvdXRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVtb3J5Um91dGVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJOYXZpZ2F0ZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uTmF2aWdhdGV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIk5hdmlnYXRpb25UeXBlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5OYXZpZ2F0aW9uVHlwZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiT3V0bGV0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5PdXRsZXR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIlJvdXRlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5Sb3V0ZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiUm91dGVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5Sb3V0ZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIlJvdXRlcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uUm91dGVzfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJVTlNBRkVfRGF0YVJvdXRlckNvbnRleHQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLlVOU0FGRV9EYXRhUm91dGVyQ29udGV4dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiVU5TQUZFX0RhdGFSb3V0ZXJTdGF0ZUNvbnRleHQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLlVOU0FGRV9EYXRhUm91dGVyU3RhdGVDb250ZXh0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJVTlNBRkVfTG9jYXRpb25Db250ZXh0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5VTlNBRkVfTG9jYXRpb25Db250ZXh0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJVTlNBRkVfTmF2aWdhdGlvbkNvbnRleHQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLlVOU0FGRV9OYXZpZ2F0aW9uQ29udGV4dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiVU5TQUZFX1JvdXRlQ29udGV4dCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uVU5TQUZFX1JvdXRlQ29udGV4dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiVU5TQUZFX3VzZVJvdXRlSWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLlVOU0FGRV91c2VSb3V0ZUlkfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJjcmVhdGVNZW1vcnlSb3V0ZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLmNyZWF0ZU1lbW9yeVJvdXRlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiY3JlYXRlUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uY3JlYXRlUGF0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiY3JlYXRlUm91dGVzRnJvbUNoaWxkcmVuIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5jcmVhdGVSb3V0ZXNGcm9tQ2hpbGRyZW59fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImNyZWF0ZVJvdXRlc0Zyb21FbGVtZW50cyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uY3JlYXRlUm91dGVzRnJvbUVsZW1lbnRzfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJkZWZlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uZGVmZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImdlbmVyYXRlUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uZ2VuZXJhdGVQYXRofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJpc1JvdXRlRXJyb3JSZXNwb25zZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uaXNSb3V0ZUVycm9yUmVzcG9uc2V9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImpzb24iLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLmpzb259fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIm1hdGNoUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4ubWF0Y2hQYXRofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJtYXRjaFJvdXRlcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4ubWF0Y2hSb3V0ZXN9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInBhcnNlUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4ucGFyc2VQYXRofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJyZWRpcmVjdCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4ucmVkaXJlY3R9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInJlZGlyZWN0RG9jdW1lbnQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLnJlZGlyZWN0RG9jdW1lbnR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInJlbmRlck1hdGNoZXMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLnJlbmRlck1hdGNoZXN9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInJlc29sdmVQYXRoIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5yZXNvbHZlUGF0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidXNlQWN0aW9uRGF0YSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4udXNlQWN0aW9uRGF0YX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidXNlQXN5bmNFcnJvciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4udXNlQXN5bmNFcnJvcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidXNlQXN5bmNWYWx1ZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4udXNlQXN5bmNWYWx1ZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidXNlQmxvY2tlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4udXNlQmxvY2tlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidXNlSHJlZiIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4udXNlSHJlZn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidXNlSW5Sb3V0ZXJDb250ZXh0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi51c2VJblJvdXRlckNvbnRleHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInVzZUxvYWRlckRhdGEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLnVzZUxvYWRlckRhdGF9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInVzZUxvY2F0aW9uIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi51c2VMb2NhdGlvbn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidXNlTWF0Y2giLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLnVzZU1hdGNofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ1c2VNYXRjaGVzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi51c2VNYXRjaGVzfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ1c2VOYXZpZ2F0ZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4udXNlTmF2aWdhdGV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInVzZU5hdmlnYXRpb24iLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLnVzZU5hdmlnYXRpb259fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInVzZU5hdmlnYXRpb25UeXBlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi51c2VOYXZpZ2F0aW9uVHlwZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidXNlT3V0bGV0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi51c2VPdXRsZXR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInVzZU91dGxldENvbnRleHQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLnVzZU91dGxldENvbnRleHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInVzZVBhcmFtcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4udXNlUGFyYW1zfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ1c2VSZXNvbHZlZFBhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLnVzZVJlc29sdmVkUGF0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidXNlUmV2YWxpZGF0b3IiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLnVzZVJldmFsaWRhdG9yfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ1c2VSb3V0ZUVycm9yIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi51c2VSb3V0ZUVycm9yfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ1c2VSb3V0ZUxvYWRlckRhdGEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLnVzZVJvdXRlTG9hZGVyRGF0YX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwidXNlUm91dGVzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi51c2VSb3V0ZXN9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIlVOU0FGRV9FcnJvclJlc3BvbnNlSW1wbCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uVU5TQUZFX0Vycm9yUmVzcG9uc2VJbXBsfX0pLGUuQnJvd3NlclJvdXRlcj1mdW5jdGlvbihlKXtsZXR7YmFzZW5hbWU6dCxjaGlsZHJlbjpyLGZ1dHVyZTppLHdpbmRvdzpzfT1lLGM9YS51c2VSZWYoKTtudWxsPT1jLmN1cnJlbnQmJihjLmN1cnJlbnQ9by5jcmVhdGVCcm93c2VySGlzdG9yeSh7d2luZG93OnMsdjVDb21wYXQ6ITB9KSk7bGV0IHU9Yy5jdXJyZW50LFtsLGZdPWEudXNlU3RhdGUoe2FjdGlvbjp1LmFjdGlvbixsb2NhdGlvbjp1LmxvY2F0aW9ufSkse3Y3X3N0YXJ0VHJhbnNpdGlvbjpkfT1pfHx7fSxwPWEudXNlQ2FsbGJhY2soKGU9PntkJiZFP0UoKCgpPT5mKGUpKSk6ZihlKX0pLFtmLGRdKTtyZXR1cm4gYS51c2VMYXlvdXRFZmZlY3QoKCgpPT51Lmxpc3RlbihwKSksW3UscF0pLGEuY3JlYXRlRWxlbWVudChuLlJvdXRlcix7YmFzZW5hbWU6dCxjaGlsZHJlbjpyLGxvY2F0aW9uOmwubG9jYXRpb24sbmF2aWdhdGlvblR5cGU6bC5hY3Rpb24sbmF2aWdhdG9yOnUsZnV0dXJlOml9KX0sZS5Gb3JtPWosZS5IYXNoUm91dGVyPWZ1bmN0aW9uKGUpe2xldHtiYXNlbmFtZTp0LGNoaWxkcmVuOnIsZnV0dXJlOmksd2luZG93OnN9PWUsYz1hLnVzZVJlZigpO251bGw9PWMuY3VycmVudCYmKGMuY3VycmVudD1vLmNyZWF0ZUhhc2hIaXN0b3J5KHt3aW5kb3c6cyx2NUNvbXBhdDohMH0pKTtsZXQgdT1jLmN1cnJlbnQsW2wsZl09YS51c2VTdGF0ZSh7YWN0aW9uOnUuYWN0aW9uLGxvY2F0aW9uOnUubG9jYXRpb259KSx7djdfc3RhcnRUcmFuc2l0aW9uOmR9PWl8fHt9LHA9YS51c2VDYWxsYmFjaygoZT0+e2QmJkU/RSgoKCk9PmYoZSkpKTpmKGUpfSksW2YsZF0pO3JldHVybiBhLnVzZUxheW91dEVmZmVjdCgoKCk9PnUubGlzdGVuKHApKSxbdSxwXSksYS5jcmVhdGVFbGVtZW50KG4uUm91dGVyLHtiYXNlbmFtZTp0LGNoaWxkcmVuOnIsbG9jYXRpb246bC5sb2NhdGlvbixuYXZpZ2F0aW9uVHlwZTpsLmFjdGlvbixuYXZpZ2F0b3I6dSxmdXR1cmU6aX0pfSxlLkxpbms9RixlLk5hdkxpbms9SSxlLlJvdXRlclByb3ZpZGVyPWZ1bmN0aW9uKGUpe2xldHtmYWxsYmFja0VsZW1lbnQ6dCxyb3V0ZXI6cixmdXR1cmU6b309ZSxbaSxzXT1hLnVzZVN0YXRlKHIuc3RhdGUpLFtjLHVdPWEudXNlU3RhdGUoKSxbbCxmXT1hLnVzZVN0YXRlKHtpc1RyYW5zaXRpb25pbmc6ITF9KSxbZCxwXT1hLnVzZVN0YXRlKCksW18saF09YS51c2VTdGF0ZSgpLFttLHldPWEudXNlU3RhdGUoKSxnPWEudXNlUmVmKG5ldyBNYXApLHt2N19zdGFydFRyYW5zaXRpb246dn09b3x8e30sYj1hLnVzZUNhbGxiYWNrKChlPT57dj9mdW5jdGlvbihlKXtFP0UoZSk6ZSgpfShlKTplKCl9KSxbdl0pLHc9YS51c2VDYWxsYmFjaygoKGUsdCk9PntsZXR7ZGVsZXRlZEZldGNoZXJzOm4sdW5zdGFibGVfZmx1c2hTeW5jOm8sdW5zdGFibGVfdmlld1RyYW5zaXRpb25PcHRzOml9PXQ7bi5mb3JFYWNoKChlPT5nLmN1cnJlbnQuZGVsZXRlKGUpKSksZS5mZXRjaGVycy5mb3JFYWNoKCgoZSx0KT0+e3ZvaWQgMCE9PWUuZGF0YSYmZy5jdXJyZW50LnNldCh0LGUuZGF0YSl9KSk7bGV0IGE9bnVsbD09ci53aW5kb3d8fG51bGw9PXIud2luZG93LmRvY3VtZW50fHwiZnVuY3Rpb24iIT10eXBlb2Ygci53aW5kb3cuZG9jdW1lbnQuc3RhcnRWaWV3VHJhbnNpdGlvbjtpZihpJiYhYSl7aWYobyl7UigoKCk9PntfJiYoZCYmZC5yZXNvbHZlKCksXy5za2lwVHJhbnNpdGlvbigpKSxmKHtpc1RyYW5zaXRpb25pbmc6ITAsZmx1c2hTeW5jOiEwLGN1cnJlbnRMb2NhdGlvbjppLmN1cnJlbnRMb2NhdGlvbixuZXh0TG9jYXRpb246aS5uZXh0TG9jYXRpb259KX0pKTtsZXQgdD1yLndpbmRvdy5kb2N1bWVudC5zdGFydFZpZXdUcmFuc2l0aW9uKCgoKT0+e1IoKCgpPT5zKGUpKSl9KSk7cmV0dXJuIHQuZmluaXNoZWQuZmluYWxseSgoKCk9PntSKCgoKT0+e3Aodm9pZCAwKSxoKHZvaWQgMCksdSh2b2lkIDApLGYoe2lzVHJhbnNpdGlvbmluZzohMX0pfSkpfSkpLHZvaWQgUigoKCk9PmgodCkpKX1fPyhkJiZkLnJlc29sdmUoKSxfLnNraXBUcmFuc2l0aW9uKCkseSh7c3RhdGU6ZSxjdXJyZW50TG9jYXRpb246aS5jdXJyZW50TG9jYXRpb24sbmV4dExvY2F0aW9uOmkubmV4dExvY2F0aW9ufSkpOih1KGUpLGYoe2lzVHJhbnNpdGlvbmluZzohMCxmbHVzaFN5bmM6ITEsY3VycmVudExvY2F0aW9uOmkuY3VycmVudExvY2F0aW9uLG5leHRMb2NhdGlvbjppLm5leHRMb2NhdGlvbn0pKX1lbHNlIG8/UigoKCk9PnMoZSkpKTpiKCgoKT0+cyhlKSkpfSksW3Iud2luZG93LF8sZCxnLGJdKTthLnVzZUxheW91dEVmZmVjdCgoKCk9PnIuc3Vic2NyaWJlKHcpKSxbcix3XSksYS51c2VFZmZlY3QoKCgpPT57bC5pc1RyYW5zaXRpb25pbmcmJiFsLmZsdXNoU3luYyYmcChuZXcgTil9KSxbbF0pLGEudXNlRWZmZWN0KCgoKT0+e2lmKGQmJmMmJnIud2luZG93KXtsZXQgZT1jLHQ9ZC5wcm9taXNlLG49ci53aW5kb3cuZG9jdW1lbnQuc3RhcnRWaWV3VHJhbnNpdGlvbigoYXN5bmMoKT0+e2IoKCgpPT5zKGUpKSksYXdhaXQgdH0pKTtuLmZpbmlzaGVkLmZpbmFsbHkoKCgpPT57cCh2b2lkIDApLGgodm9pZCAwKSx1KHZvaWQgMCksZih7aXNUcmFuc2l0aW9uaW5nOiExfSl9KSksaChuKX19KSxbYixjLGQsci53aW5kb3ddKSxhLnVzZUVmZmVjdCgoKCk9PntkJiZjJiZpLmxvY2F0aW9uLmtleT09PWMubG9jYXRpb24ua2V5JiZkLnJlc29sdmUoKX0pLFtkLF8saS5sb2NhdGlvbixjXSksYS51c2VFZmZlY3QoKCgpPT57IWwuaXNUcmFuc2l0aW9uaW5nJiZtJiYodShtLnN0YXRlKSxmKHtpc1RyYW5zaXRpb25pbmc6ITAsZmx1c2hTeW5jOiExLGN1cnJlbnRMb2NhdGlvbjptLmN1cnJlbnRMb2NhdGlvbixuZXh0TG9jYXRpb246bS5uZXh0TG9jYXRpb259KSx5KHZvaWQgMCkpfSksW2wuaXNUcmFuc2l0aW9uaW5nLG1dKSxhLnVzZUVmZmVjdCgoKCk9Pnt9KSxbXSk7bGV0IFM9YS51c2VNZW1vKCgoKT0+KHtjcmVhdGVIcmVmOnIuY3JlYXRlSHJlZixlbmNvZGVMb2NhdGlvbjpyLmVuY29kZUxvY2F0aW9uLGdvOmU9PnIubmF2aWdhdGUoZSkscHVzaDooZSx0LG4pPT5yLm5hdmlnYXRlKGUse3N0YXRlOnQscHJldmVudFNjcm9sbFJlc2V0Om51bGw9PW4/dm9pZCAwOm4ucHJldmVudFNjcm9sbFJlc2V0fSkscmVwbGFjZTooZSx0LG4pPT5yLm5hdmlnYXRlKGUse3JlcGxhY2U6ITAsc3RhdGU6dCxwcmV2ZW50U2Nyb2xsUmVzZXQ6bnVsbD09bj92b2lkIDA6bi5wcmV2ZW50U2Nyb2xsUmVzZXR9KX0pKSxbcl0pLEE9ci5iYXNlbmFtZXx8Ii8iLFQ9YS51c2VNZW1vKCgoKT0+KHtyb3V0ZXI6cixuYXZpZ2F0b3I6UyxzdGF0aWM6ITEsYmFzZW5hbWU6QX0pKSxbcixTLEFdKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxhLmNyZWF0ZUVsZW1lbnQobi5VTlNBRkVfRGF0YVJvdXRlckNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOlR9LGEuY3JlYXRlRWxlbWVudChuLlVOU0FGRV9EYXRhUm91dGVyU3RhdGVDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTppfSxhLmNyZWF0ZUVsZW1lbnQoeC5Qcm92aWRlcix7dmFsdWU6Zy5jdXJyZW50fSxhLmNyZWF0ZUVsZW1lbnQoay5Qcm92aWRlcix7dmFsdWU6bH0sYS5jcmVhdGVFbGVtZW50KG4uUm91dGVyLHtiYXNlbmFtZTpBLGxvY2F0aW9uOmkubG9jYXRpb24sbmF2aWdhdGlvblR5cGU6aS5oaXN0b3J5QWN0aW9uLG5hdmlnYXRvcjpTLGZ1dHVyZTp7djdfcmVsYXRpdmVTcGxhdFBhdGg6ci5mdXR1cmUudjdfcmVsYXRpdmVTcGxhdFBhdGh9fSxpLmluaXRpYWxpemVkfHxyLmZ1dHVyZS52N19wYXJ0aWFsSHlkcmF0aW9uP2EuY3JlYXRlRWxlbWVudChQLHtyb3V0ZXM6ci5yb3V0ZXMsZnV0dXJlOnIuZnV0dXJlLHN0YXRlOml9KTp0KSkpKSksbnVsbCl9LGUuU2Nyb2xsUmVzdG9yYXRpb249ZnVuY3Rpb24oZSl7bGV0e2dldEtleTp0LHN0b3JhZ2VLZXk6cn09ZTtyZXR1cm4gWSh7Z2V0S2V5OnQsc3RvcmFnZUtleTpyfSksbnVsbH0sZS5VTlNBRkVfRmV0Y2hlcnNDb250ZXh0PXgsZS5VTlNBRkVfVmlld1RyYW5zaXRpb25Db250ZXh0PWssZS5VTlNBRkVfdXNlU2Nyb2xsUmVzdG9yYXRpb249WSxlLmNyZWF0ZUJyb3dzZXJSb3V0ZXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gby5jcmVhdGVSb3V0ZXIoe2Jhc2VuYW1lOm51bGw9PXQ/dm9pZCAwOnQuYmFzZW5hbWUsZnV0dXJlOmMoe30sbnVsbD09dD92b2lkIDA6dC5mdXR1cmUse3Y3X3ByZXBlbmRCYXNlbmFtZTohMH0pLGhpc3Rvcnk6by5jcmVhdGVCcm93c2VySGlzdG9yeSh7d2luZG93Om51bGw9PXQ/dm9pZCAwOnQud2luZG93fSksaHlkcmF0aW9uRGF0YToobnVsbD09dD92b2lkIDA6dC5oeWRyYXRpb25EYXRhKXx8dygpLHJvdXRlczplLG1hcFJvdXRlUHJvcGVydGllczpuLlVOU0FGRV9tYXBSb3V0ZVByb3BlcnRpZXMsdW5zdGFibGVfZGF0YVN0cmF0ZWd5Om51bGw9PXQ/dm9pZCAwOnQudW5zdGFibGVfZGF0YVN0cmF0ZWd5LHVuc3RhYmxlX3BhdGNoUm91dGVzT25NaXNzOm51bGw9PXQ/dm9pZCAwOnQudW5zdGFibGVfcGF0Y2hSb3V0ZXNPbk1pc3Msd2luZG93Om51bGw9PXQ/dm9pZCAwOnQud2luZG93fSkuaW5pdGlhbGl6ZSgpfSxlLmNyZWF0ZUhhc2hSb3V0ZXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gby5jcmVhdGVSb3V0ZXIoe2Jhc2VuYW1lOm51bGw9PXQ/dm9pZCAwOnQuYmFzZW5hbWUsZnV0dXJlOmMoe30sbnVsbD09dD92b2lkIDA6dC5mdXR1cmUse3Y3X3ByZXBlbmRCYXNlbmFtZTohMH0pLGhpc3Rvcnk6by5jcmVhdGVIYXNoSGlzdG9yeSh7d2luZG93Om51bGw9PXQ/dm9pZCAwOnQud2luZG93fSksaHlkcmF0aW9uRGF0YToobnVsbD09dD92b2lkIDA6dC5oeWRyYXRpb25EYXRhKXx8dygpLHJvdXRlczplLG1hcFJvdXRlUHJvcGVydGllczpuLlVOU0FGRV9tYXBSb3V0ZVByb3BlcnRpZXMsdW5zdGFibGVfZGF0YVN0cmF0ZWd5Om51bGw9PXQ/dm9pZCAwOnQudW5zdGFibGVfZGF0YVN0cmF0ZWd5LHVuc3RhYmxlX3BhdGNoUm91dGVzT25NaXNzOm51bGw9PXQ/dm9pZCAwOnQudW5zdGFibGVfcGF0Y2hSb3V0ZXNPbk1pc3Msd2luZG93Om51bGw9PXQ/dm9pZCAwOnQud2luZG93fSkuaW5pdGlhbGl6ZSgpfSxlLmNyZWF0ZVNlYXJjaFBhcmFtcz1wLGUudW5zdGFibGVfSGlzdG9yeVJvdXRlcj1mdW5jdGlvbihlKXtsZXR7YmFzZW5hbWU6dCxjaGlsZHJlbjpyLGZ1dHVyZTpvLGhpc3Rvcnk6aX09ZSxbcyxjXT1hLnVzZVN0YXRlKHthY3Rpb246aS5hY3Rpb24sbG9jYXRpb246aS5sb2NhdGlvbn0pLHt2N19zdGFydFRyYW5zaXRpb246dX09b3x8e30sbD1hLnVzZUNhbGxiYWNrKChlPT57dSYmRT9FKCgoKT0+YyhlKSkpOmMoZSl9KSxbYyx1XSk7cmV0dXJuIGEudXNlTGF5b3V0RWZmZWN0KCgoKT0+aS5saXN0ZW4obCkpLFtpLGxdKSxhLmNyZWF0ZUVsZW1lbnQobi5Sb3V0ZXIse2Jhc2VuYW1lOnQsY2hpbGRyZW46cixsb2NhdGlvbjpzLmxvY2F0aW9uLG5hdmlnYXRpb25UeXBlOnMuYWN0aW9uLG5hdmlnYXRvcjppLGZ1dHVyZTpvfSl9LGUudW5zdGFibGVfdXNlUHJvbXB0PWZ1bmN0aW9uKGUpe2xldHt3aGVuOnQsbWVzc2FnZTpyfT1lLG89bi51c2VCbG9ja2VyKHQpO2EudXNlRWZmZWN0KCgoKT0+eyJibG9ja2VkIj09PW8uc3RhdGUmJih3aW5kb3cuY29uZmlybShyKT9zZXRUaW1lb3V0KG8ucHJvY2VlZCwwKTpvLnJlc2V0KCkpfSksW28scl0pLGEudXNlRWZmZWN0KCgoKT0+eyJibG9ja2VkIiE9PW8uc3RhdGV8fHR8fG8ucmVzZXQoKX0pLFtvLHRdKX0sZS51bnN0YWJsZV91c2VWaWV3VHJhbnNpdGlvblN0YXRlPUssZS51c2VCZWZvcmVVbmxvYWQ9ZnVuY3Rpb24oZSx0KXtsZXR7Y2FwdHVyZTpyfT10fHx7fTthLnVzZUVmZmVjdCgoKCk9PntsZXQgdD1udWxsIT1yP3tjYXB0dXJlOnJ9OnZvaWQgMDtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsZSx0KSwoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLGUsdCl9fSksW2Uscl0pfSxlLnVzZUZldGNoZXI9ZnVuY3Rpb24oZSl7dmFyIHQ7bGV0e2tleTpyfT12b2lkIDA9PT1lP3t9OmUse3JvdXRlcjppfT1VKEQuVXNlRmV0Y2hlcikscz16KEwuVXNlRmV0Y2hlciksdT1hLnVzZUNvbnRleHQoeCksbD1hLnVzZUNvbnRleHQobi5VTlNBRkVfUm91dGVDb250ZXh0KSxmPW51bGw9PSh0PWwubWF0Y2hlc1tsLm1hdGNoZXMubGVuZ3RoLTFdKT92b2lkIDA6dC5yb3V0ZS5pZDt1fHxvLlVOU0FGRV9pbnZhcmlhbnQoITEpLGx8fG8uVU5TQUZFX2ludmFyaWFudCghMSksbnVsbD09ZiYmby5VTlNBRkVfaW52YXJpYW50KCExKTtsZXQgZD1UP1QoKToiIixbcCxfXT1hLnVzZVN0YXRlKHJ8fGQpO3ImJnIhPT1wP18ocik6cHx8XyhXKCkpLGEudXNlRWZmZWN0KCgoKT0+KGkuZ2V0RmV0Y2hlcihwKSwoKT0+e2kuZGVsZXRlRmV0Y2hlcihwKX0pKSxbaSxwXSk7bGV0IGg9YS51c2VDYWxsYmFjaygoKGUsdCk9PntmfHxvLlVOU0FGRV9pbnZhcmlhbnQoITEpLGkuZmV0Y2gocCxmLGUsdCl9KSxbcCxmLGldKSxtPSQoKSx5PWEudXNlQ2FsbGJhY2soKChlLHQpPT57bShlLGMoe30sdCx7bmF2aWdhdGU6ITEsZmV0Y2hlcktleTpwfSkpfSksW3AsbV0pLGc9YS51c2VNZW1vKCgoKT0+YS5mb3J3YXJkUmVmKCgoZSx0KT0+YS5jcmVhdGVFbGVtZW50KGosYyh7fSxlLHtuYXZpZ2F0ZTohMSxmZXRjaGVyS2V5OnAscmVmOnR9KSkpKSksW3BdKSx2PXMuZmV0Y2hlcnMuZ2V0KHApfHxvLklETEVfRkVUQ0hFUixiPXUuZ2V0KHApO3JldHVybiBhLnVzZU1lbW8oKCgpPT5jKHtGb3JtOmcsc3VibWl0OnksbG9hZDpofSx2LHtkYXRhOmJ9KSksW2cseSxoLHYsYl0pfSxlLnVzZUZldGNoZXJzPWZ1bmN0aW9uKCl7bGV0IGU9eihMLlVzZUZldGNoZXJzKTtyZXR1cm4gQXJyYXkuZnJvbShlLmZldGNoZXJzLmVudHJpZXMoKSkubWFwKChlPT57bGV0W3Qscl09ZTtyZXR1cm4gYyh7fSxyLHtrZXk6dH0pfSkpfSxlLnVzZUZvcm1BY3Rpb249cSxlLnVzZUxpbmtDbGlja0hhbmRsZXI9QixlLnVzZVNlYXJjaFBhcmFtcz1mdW5jdGlvbihlKXtsZXQgdD1hLnVzZVJlZihwKGUpKSxyPWEudXNlUmVmKCExKSxvPW4udXNlTG9jYXRpb24oKSxpPWEudXNlTWVtbygoKCk9PmZ1bmN0aW9uKGUsdCl7bGV0IHI9cChlKTtyZXR1cm4gdCYmdC5mb3JFYWNoKCgoZSxuKT0+e3IuaGFzKG4pfHx0LmdldEFsbChuKS5mb3JFYWNoKChlPT57ci5hcHBlbmQobixlKX0pKX0pKSxyfShvLnNlYXJjaCxyLmN1cnJlbnQ/bnVsbDp0LmN1cnJlbnQpKSxbby5zZWFyY2hdKSxzPW4udXNlTmF2aWdhdGUoKSxjPWEudXNlQ2FsbGJhY2soKChlLHQpPT57Y29uc3Qgbj1wKCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UoaSk6ZSk7ci5jdXJyZW50PSEwLHMoIj8iK24sdCl9KSxbcyxpXSk7cmV0dXJuW2ksY119LGUudXNlU3VibWl0PSQsT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSh0LHIoOTY1NDApLHIoNDA5NjEpLHIoNTEwOTApLHIoNTk0MCkpfSw1MTA5MDpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1yKDM4NzYwKX0sMzg3NjA6ZnVuY3Rpb24oZSx0LHIpeyFmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGUmJk9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKHIpe2lmKCJkZWZhdWx0IiE9PXIpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxyKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLG4uZ2V0P246e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGVbcl19fSl9fSkpLHQuZGVmYXVsdD1lLE9iamVjdC5mcmVlemUodCl9dmFyIG89bih0KTtmdW5jdGlvbiBpKCl7cmV0dXJuIGk9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcj1hcmd1bWVudHNbdF07Zm9yKHZhciBuIGluIHIpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsbikmJihlW25dPXJbbl0pfXJldHVybiBlfSxpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jb25zdCBhPW8uY3JlYXRlQ29udGV4dChudWxsKSxzPW8uY3JlYXRlQ29udGV4dChudWxsKSxjPW8uY3JlYXRlQ29udGV4dChudWxsKSx1PW8uY3JlYXRlQ29udGV4dChudWxsKSxsPW8uY3JlYXRlQ29udGV4dChudWxsKSxmPW8uY3JlYXRlQ29udGV4dCh7b3V0bGV0Om51bGwsbWF0Y2hlczpbXSxpc0RhdGFSb3V0ZTohMX0pLGQ9by5jcmVhdGVDb250ZXh0KG51bGwpO2Z1bmN0aW9uIHAoKXtyZXR1cm4gbnVsbCE9by51c2VDb250ZXh0KGwpfWZ1bmN0aW9uIF8oKXtyZXR1cm4gcCgpfHxyLlVOU0FGRV9pbnZhcmlhbnQoITEpLG8udXNlQ29udGV4dChsKS5sb2NhdGlvbn1mdW5jdGlvbiBoKGUpe28udXNlQ29udGV4dCh1KS5zdGF0aWN8fG8udXNlTGF5b3V0RWZmZWN0KGUpfWZ1bmN0aW9uIG0oKXtsZXR7aXNEYXRhUm91dGU6ZX09by51c2VDb250ZXh0KGYpO3JldHVybiBlP2Z1bmN0aW9uKCl7bGV0e3JvdXRlcjplfT1SKEEuVXNlTmF2aWdhdGVTdGFibGUpLHQ9TyhULlVzZU5hdmlnYXRlU3RhYmxlKSxyPW8udXNlUmVmKCExKTtyZXR1cm4gaCgoKCk9PntyLmN1cnJlbnQ9ITB9KSksby51c2VDYWxsYmFjaygoZnVuY3Rpb24obixvKXt2b2lkIDA9PT1vJiYobz17fSksci5jdXJyZW50JiYoIm51bWJlciI9PXR5cGVvZiBuP2UubmF2aWdhdGUobik6ZS5uYXZpZ2F0ZShuLGkoe2Zyb21Sb3V0ZUlkOnR9LG8pKSl9KSxbZSx0XSl9KCk6ZnVuY3Rpb24oKXtwKCl8fHIuVU5TQUZFX2ludmFyaWFudCghMSk7bGV0IGU9by51c2VDb250ZXh0KGEpLHtiYXNlbmFtZTp0LGZ1dHVyZTpuLG5hdmlnYXRvcjppfT1vLnVzZUNvbnRleHQodSkse21hdGNoZXM6c309by51c2VDb250ZXh0KGYpLHtwYXRobmFtZTpjfT1fKCksbD1KU09OLnN0cmluZ2lmeShyLlVOU0FGRV9nZXRSZXNvbHZlVG9NYXRjaGVzKHMsbi52N19yZWxhdGl2ZVNwbGF0UGF0aCkpLGQ9by51c2VSZWYoITEpO3JldHVybiBoKCgoKT0+e2QuY3VycmVudD0hMH0pKSxvLnVzZUNhbGxiYWNrKChmdW5jdGlvbihuLG8pe2lmKHZvaWQgMD09PW8mJihvPXt9KSwhZC5jdXJyZW50KXJldHVybjtpZigibnVtYmVyIj09dHlwZW9mIG4pcmV0dXJuIHZvaWQgaS5nbyhuKTtsZXQgYT1yLnJlc29sdmVUbyhuLEpTT04ucGFyc2UobCksYywicGF0aCI9PT1vLnJlbGF0aXZlKTtudWxsPT1lJiYiLyIhPT10JiYoYS5wYXRobmFtZT0iLyI9PT1hLnBhdGhuYW1lP3Q6ci5qb2luUGF0aHMoW3QsYS5wYXRobmFtZV0pKSwoby5yZXBsYWNlP2kucmVwbGFjZTppLnB1c2gpKGEsby5zdGF0ZSxvKX0pLFt0LGksbCxjLGVdKX0oKX1jb25zdCB5PW8uY3JlYXRlQ29udGV4dChudWxsKTtmdW5jdGlvbiBnKGUpe2xldCB0PW8udXNlQ29udGV4dChmKS5vdXRsZXQ7cmV0dXJuIHQ/by5jcmVhdGVFbGVtZW50KHkuUHJvdmlkZXIse3ZhbHVlOmV9LHQpOnR9ZnVuY3Rpb24gdihlLHQpe2xldHtyZWxhdGl2ZTpufT12b2lkIDA9PT10P3t9OnQse2Z1dHVyZTppfT1vLnVzZUNvbnRleHQodSkse21hdGNoZXM6YX09by51c2VDb250ZXh0KGYpLHtwYXRobmFtZTpzfT1fKCksYz1KU09OLnN0cmluZ2lmeShyLlVOU0FGRV9nZXRSZXNvbHZlVG9NYXRjaGVzKGEsaS52N19yZWxhdGl2ZVNwbGF0UGF0aCkpO3JldHVybiBvLnVzZU1lbW8oKCgpPT5yLnJlc29sdmVUbyhlLEpTT04ucGFyc2UoYykscywicGF0aCI9PT1uKSksW2UsYyxzLG5dKX1mdW5jdGlvbiBiKGUsdCl7cmV0dXJuIHcoZSx0KX1mdW5jdGlvbiB3KGUsdCxuLGEpe3AoKXx8ci5VTlNBRkVfaW52YXJpYW50KCExKTtsZXR7bmF2aWdhdG9yOnN9PW8udXNlQ29udGV4dCh1KSx7bWF0Y2hlczpjfT1vLnVzZUNvbnRleHQoZiksZD1jW2MubGVuZ3RoLTFdLGg9ZD9kLnBhcmFtczp7fTshZHx8ZC5wYXRobmFtZTtsZXQgbT1kP2QucGF0aG5hbWVCYXNlOiIvIjtkJiZkLnJvdXRlO2xldCB5LGc9XygpO2lmKHQpe3ZhciB2O2xldCBlPSJzdHJpbmciPT10eXBlb2YgdD9yLnBhcnNlUGF0aCh0KTp0OyIvIj09PW18fChudWxsPT0odj1lLnBhdGhuYW1lKT92b2lkIDA6di5zdGFydHNXaXRoKG0pKXx8ci5VTlNBRkVfaW52YXJpYW50KCExKSx5PWV9ZWxzZSB5PWc7bGV0IGI9eS5wYXRobmFtZXx8Ii8iLHc9YjtpZigiLyIhPT1tKXtsZXQgZT1tLnJlcGxhY2UoL15cLy8sIiIpLnNwbGl0KCIvIik7dz0iLyIrYi5yZXBsYWNlKC9eXC8vLCIiKS5zcGxpdCgiLyIpLnNsaWNlKGUubGVuZ3RoKS5qb2luKCIvIil9bGV0IFM9ci5tYXRjaFJvdXRlcyhlLHtwYXRobmFtZTp3fSksaz1FKFMmJlMubWFwKChlPT5PYmplY3QuYXNzaWduKHt9LGUse3BhcmFtczpPYmplY3QuYXNzaWduKHt9LGgsZS5wYXJhbXMpLHBhdGhuYW1lOnIuam9pblBhdGhzKFttLHMuZW5jb2RlTG9jYXRpb24/cy5lbmNvZGVMb2NhdGlvbihlLnBhdGhuYW1lKS5wYXRobmFtZTplLnBhdGhuYW1lXSkscGF0aG5hbWVCYXNlOiIvIj09PWUucGF0aG5hbWVCYXNlP206ci5qb2luUGF0aHMoW20scy5lbmNvZGVMb2NhdGlvbj9zLmVuY29kZUxvY2F0aW9uKGUucGF0aG5hbWVCYXNlKS5wYXRobmFtZTplLnBhdGhuYW1lQmFzZV0pfSkpKSxjLG4sYSk7cmV0dXJuIHQmJms/by5jcmVhdGVFbGVtZW50KGwuUHJvdmlkZXIse3ZhbHVlOntsb2NhdGlvbjppKHtwYXRobmFtZToiLyIsc2VhcmNoOiIiLGhhc2g6IiIsc3RhdGU6bnVsbCxrZXk6ImRlZmF1bHQifSx5KSxuYXZpZ2F0aW9uVHlwZTpyLkFjdGlvbi5Qb3B9fSxrKTprfWZ1bmN0aW9uIFMoKXtsZXQgZT1NKCksdD1yLmlzUm91dGVFcnJvclJlc3BvbnNlKGUpP2Uuc3RhdHVzKyIgIitlLnN0YXR1c1RleHQ6ZSBpbnN0YW5jZW9mIEVycm9yP2UubWVzc2FnZTpKU09OLnN0cmluZ2lmeShlKSxuPWUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrOm51bGwsaT17cGFkZGluZzoiMC41cmVtIixiYWNrZ3JvdW5kQ29sb3I6InJnYmEoMjAwLDIwMCwyMDAsIDAuNSkifTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KG8uRnJhZ21lbnQsbnVsbCxvLmNyZWF0ZUVsZW1lbnQoImgyIixudWxsLCJVbmV4cGVjdGVkIEFwcGxpY2F0aW9uIEVycm9yISIpLG8uY3JlYXRlRWxlbWVudCgiaDMiLHtzdHlsZTp7Zm9udFN0eWxlOiJpdGFsaWMifX0sdCksbj9vLmNyZWF0ZUVsZW1lbnQoInByZSIse3N0eWxlOml9LG4pOm51bGwsbnVsbCl9Y29uc3Qgaz1vLmNyZWF0ZUVsZW1lbnQoUyxudWxsKTtjbGFzcyBDIGV4dGVuZHMgby5Db21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5zdGF0ZT17bG9jYXRpb246ZS5sb2NhdGlvbixyZXZhbGlkYXRpb246ZS5yZXZhbGlkYXRpb24sZXJyb3I6ZS5lcnJvcn19c3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihlKXtyZXR1cm57ZXJyb3I6ZX19c3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhlLHQpe3JldHVybiB0LmxvY2F0aW9uIT09ZS5sb2NhdGlvbnx8ImlkbGUiIT09dC5yZXZhbGlkYXRpb24mJiJpZGxlIj09PWUucmV2YWxpZGF0aW9uP3tlcnJvcjplLmVycm9yLGxvY2F0aW9uOmUubG9jYXRpb24scmV2YWxpZGF0aW9uOmUucmV2YWxpZGF0aW9ufTp7ZXJyb3I6dm9pZCAwIT09ZS5lcnJvcj9lLmVycm9yOnQuZXJyb3IsbG9jYXRpb246dC5sb2NhdGlvbixyZXZhbGlkYXRpb246ZS5yZXZhbGlkYXRpb258fHQucmV2YWxpZGF0aW9ufX1jb21wb25lbnREaWRDYXRjaChlLHQpe2NvbnNvbGUuZXJyb3IoIlJlYWN0IFJvdXRlciBjYXVnaHQgdGhlIGZvbGxvd2luZyBlcnJvciBkdXJpbmcgcmVuZGVyIixlLHQpfXJlbmRlcigpe3JldHVybiB2b2lkIDAhPT10aGlzLnN0YXRlLmVycm9yP28uY3JlYXRlRWxlbWVudChmLlByb3ZpZGVyLHt2YWx1ZTp0aGlzLnByb3BzLnJvdXRlQ29udGV4dH0sby5jcmVhdGVFbGVtZW50KGQuUHJvdmlkZXIse3ZhbHVlOnRoaXMuc3RhdGUuZXJyb3IsY2hpbGRyZW46dGhpcy5wcm9wcy5jb21wb25lbnR9KSk6dGhpcy5wcm9wcy5jaGlsZHJlbn19ZnVuY3Rpb24geChlKXtsZXR7cm91dGVDb250ZXh0OnQsbWF0Y2g6cixjaGlsZHJlbjpufT1lLGk9by51c2VDb250ZXh0KGEpO3JldHVybiBpJiZpLnN0YXRpYyYmaS5zdGF0aWNDb250ZXh0JiYoci5yb3V0ZS5lcnJvckVsZW1lbnR8fHIucm91dGUuRXJyb3JCb3VuZGFyeSkmJihpLnN0YXRpY0NvbnRleHQuX2RlZXBlc3RSZW5kZXJlZEJvdW5kYXJ5SWQ9ci5yb3V0ZS5pZCksby5jcmVhdGVFbGVtZW50KGYuUHJvdmlkZXIse3ZhbHVlOnR9LG4pfWZ1bmN0aW9uIEUoZSx0LG4saSl7dmFyIGE7aWYodm9pZCAwPT09dCYmKHQ9W10pLHZvaWQgMD09PW4mJihuPW51bGwpLHZvaWQgMD09PWkmJihpPW51bGwpLG51bGw9PWUpe3ZhciBzO2lmKG51bGw9PShzPW4pfHwhcy5lcnJvcnMpcmV0dXJuIG51bGw7ZT1uLm1hdGNoZXN9bGV0IGM9ZSx1PW51bGw9PShhPW4pP3ZvaWQgMDphLmVycm9ycztpZihudWxsIT11KXtsZXQgZT1jLmZpbmRJbmRleCgoZT0+ZS5yb3V0ZS5pZCYmdm9pZCAwIT09KG51bGw9PXU/dm9pZCAwOnVbZS5yb3V0ZS5pZF0pKSk7ZT49MHx8ci5VTlNBRkVfaW52YXJpYW50KCExKSxjPWMuc2xpY2UoMCxNYXRoLm1pbihjLmxlbmd0aCxlKzEpKX1sZXQgbD0hMSxmPS0xO2lmKG4mJmkmJmkudjdfcGFydGlhbEh5ZHJhdGlvbilmb3IobGV0IGU9MDtlPGMubGVuZ3RoO2UrKyl7bGV0IHQ9Y1tlXTtpZigodC5yb3V0ZS5IeWRyYXRlRmFsbGJhY2t8fHQucm91dGUuaHlkcmF0ZUZhbGxiYWNrRWxlbWVudCkmJihmPWUpLHQucm91dGUuaWQpe2xldHtsb2FkZXJEYXRhOmUsZXJyb3JzOnJ9PW4sbz10LnJvdXRlLmxvYWRlciYmdm9pZCAwPT09ZVt0LnJvdXRlLmlkXSYmKCFyfHx2b2lkIDA9PT1yW3Qucm91dGUuaWRdKTtpZih0LnJvdXRlLmxhenl8fG8pe2w9ITAsYz1mPj0wP2Muc2xpY2UoMCxmKzEpOltjWzBdXTticmVha319fXJldHVybiBjLnJlZHVjZVJpZ2h0KCgoZSxyLGkpPT57bGV0IGEscz0hMSxkPW51bGwscD1udWxsO3ZhciBfO24mJihhPXUmJnIucm91dGUuaWQ/dVtyLnJvdXRlLmlkXTp2b2lkIDAsZD1yLnJvdXRlLmVycm9yRWxlbWVudHx8ayxsJiYoZjwwJiYwPT09aT8oaltfPSJyb3V0ZS1mYWxsYmFjayJdfHwoaltfXT0hMCkscz0hMCxwPW51bGwpOmY9PT1pJiYocz0hMCxwPXIucm91dGUuaHlkcmF0ZUZhbGxiYWNrRWxlbWVudHx8bnVsbCkpKTtsZXQgaD10LmNvbmNhdChjLnNsaWNlKDAsaSsxKSksbT0oKT0+e2xldCB0O3JldHVybiB0PWE/ZDpzP3A6ci5yb3V0ZS5Db21wb25lbnQ/by5jcmVhdGVFbGVtZW50KHIucm91dGUuQ29tcG9uZW50LG51bGwpOnIucm91dGUuZWxlbWVudD9yLnJvdXRlLmVsZW1lbnQ6ZSxvLmNyZWF0ZUVsZW1lbnQoeCx7bWF0Y2g6cixyb3V0ZUNvbnRleHQ6e291dGxldDplLG1hdGNoZXM6aCxpc0RhdGFSb3V0ZTpudWxsIT1ufSxjaGlsZHJlbjp0fSl9O3JldHVybiBuJiYoci5yb3V0ZS5FcnJvckJvdW5kYXJ5fHxyLnJvdXRlLmVycm9yRWxlbWVudHx8MD09PWkpP28uY3JlYXRlRWxlbWVudChDLHtsb2NhdGlvbjpuLmxvY2F0aW9uLHJldmFsaWRhdGlvbjpuLnJldmFsaWRhdGlvbixjb21wb25lbnQ6ZCxlcnJvcjphLGNoaWxkcmVuOm0oKSxyb3V0ZUNvbnRleHQ6e291dGxldDpudWxsLG1hdGNoZXM6aCxpc0RhdGFSb3V0ZTohMH19KTptKCl9KSxudWxsKX12YXIgQT1mdW5jdGlvbihlKXtyZXR1cm4gZS5Vc2VCbG9ja2VyPSJ1c2VCbG9ja2VyIixlLlVzZVJldmFsaWRhdG9yPSJ1c2VSZXZhbGlkYXRvciIsZS5Vc2VOYXZpZ2F0ZVN0YWJsZT0idXNlTmF2aWdhdGUiLGV9KEF8fHt9KSxUPWZ1bmN0aW9uKGUpe3JldHVybiBlLlVzZUJsb2NrZXI9InVzZUJsb2NrZXIiLGUuVXNlTG9hZGVyRGF0YT0idXNlTG9hZGVyRGF0YSIsZS5Vc2VBY3Rpb25EYXRhPSJ1c2VBY3Rpb25EYXRhIixlLlVzZVJvdXRlRXJyb3I9InVzZVJvdXRlRXJyb3IiLGUuVXNlTmF2aWdhdGlvbj0idXNlTmF2aWdhdGlvbiIsZS5Vc2VSb3V0ZUxvYWRlckRhdGE9InVzZVJvdXRlTG9hZGVyRGF0YSIsZS5Vc2VNYXRjaGVzPSJ1c2VNYXRjaGVzIixlLlVzZVJldmFsaWRhdG9yPSJ1c2VSZXZhbGlkYXRvciIsZS5Vc2VOYXZpZ2F0ZVN0YWJsZT0idXNlTmF2aWdhdGUiLGUuVXNlUm91dGVJZD0idXNlUm91dGVJZCIsZX0oVHx8e30pO2Z1bmN0aW9uIFIoZSl7bGV0IHQ9by51c2VDb250ZXh0KGEpO3JldHVybiB0fHxyLlVOU0FGRV9pbnZhcmlhbnQoITEpLHR9ZnVuY3Rpb24gUChlKXtsZXQgdD1vLnVzZUNvbnRleHQocyk7cmV0dXJuIHR8fHIuVU5TQUZFX2ludmFyaWFudCghMSksdH1mdW5jdGlvbiBPKGUpe2xldCB0PWZ1bmN0aW9uKCl7bGV0IGU9by51c2VDb250ZXh0KGYpO3JldHVybiBlfHxyLlVOU0FGRV9pbnZhcmlhbnQoITEpLGV9KCksbj10Lm1hdGNoZXNbdC5tYXRjaGVzLmxlbmd0aC0xXTtyZXR1cm4gbi5yb3V0ZS5pZHx8ci5VTlNBRkVfaW52YXJpYW50KCExKSxuLnJvdXRlLmlkfWZ1bmN0aW9uIE0oKXt2YXIgZTtsZXQgdD1vLnVzZUNvbnRleHQoZCkscj1QKFQuVXNlUm91dGVFcnJvciksbj1PKFQuVXNlUm91dGVFcnJvcik7cmV0dXJuIHZvaWQgMCE9PXQ/dDpudWxsPT0oZT1yLmVycm9ycyk/dm9pZCAwOmVbbl19ZnVuY3Rpb24gRigpe2xldCBlPW8udXNlQ29udGV4dChjKTtyZXR1cm4gbnVsbD09ZT92b2lkIDA6ZS5fZGF0YX1sZXQgST0wO2NvbnN0IGo9e30sRD1vLnN0YXJ0VHJhbnNpdGlvbjtmdW5jdGlvbiBMKGUpe2xldHtyb3V0ZXM6dCxmdXR1cmU6cixzdGF0ZTpufT1lO3JldHVybiB3KHQsdm9pZCAwLG4scil9ZnVuY3Rpb24gVShlKXtyLlVOU0FGRV9pbnZhcmlhbnQoITEpfWZ1bmN0aW9uIHooZSl7bGV0e2Jhc2VuYW1lOnQ9Ii8iLGNoaWxkcmVuOm49bnVsbCxsb2NhdGlvbjphLG5hdmlnYXRpb25UeXBlOnM9ci5BY3Rpb24uUG9wLG5hdmlnYXRvcjpjLHN0YXRpYzpmPSExLGZ1dHVyZTpkfT1lO3AoKSYmci5VTlNBRkVfaW52YXJpYW50KCExKTtsZXQgXz10LnJlcGxhY2UoL15cLyovLCIvIiksaD1vLnVzZU1lbW8oKCgpPT4oe2Jhc2VuYW1lOl8sbmF2aWdhdG9yOmMsc3RhdGljOmYsZnV0dXJlOmkoe3Y3X3JlbGF0aXZlU3BsYXRQYXRoOiExfSxkKX0pKSxbXyxkLGMsZl0pOyJzdHJpbmciPT10eXBlb2YgYSYmKGE9ci5wYXJzZVBhdGgoYSkpO2xldHtwYXRobmFtZTptPSIvIixzZWFyY2g6eT0iIixoYXNoOmc9IiIsc3RhdGU6dj1udWxsLGtleTpiPSJkZWZhdWx0In09YSx3PW8udXNlTWVtbygoKCk9PntsZXQgZT1yLnN0cmlwQmFzZW5hbWUobSxfKTtyZXR1cm4gbnVsbD09ZT9udWxsOntsb2NhdGlvbjp7cGF0aG5hbWU6ZSxzZWFyY2g6eSxoYXNoOmcsc3RhdGU6dixrZXk6Yn0sbmF2aWdhdGlvblR5cGU6c319KSxbXyxtLHksZyx2LGIsc10pO3JldHVybiBudWxsPT13P251bGw6by5jcmVhdGVFbGVtZW50KHUuUHJvdmlkZXIse3ZhbHVlOmh9LG8uY3JlYXRlRWxlbWVudChsLlByb3ZpZGVyLHtjaGlsZHJlbjpuLHZhbHVlOnd9KSl9dmFyIEI9ZnVuY3Rpb24oZSl7cmV0dXJuIGVbZS5wZW5kaW5nPTBdPSJwZW5kaW5nIixlW2Uuc3VjY2Vzcz0xXT0ic3VjY2VzcyIsZVtlLmVycm9yPTJdPSJlcnJvciIsZX0oQnx8e30pO2NvbnN0IEg9bmV3IFByb21pc2UoKCgpPT57fSkpO2NsYXNzIEogZXh0ZW5kcyBvLkNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnN0YXRlPXtlcnJvcjpudWxsfX1zdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGUpe3JldHVybntlcnJvcjplfX1jb21wb25lbnREaWRDYXRjaChlLHQpe2NvbnNvbGUuZXJyb3IoIjxBd2FpdD4gY2F1Z2h0IHRoZSBmb2xsb3dpbmcgZXJyb3IgZHVyaW5nIHJlbmRlciIsZSx0KX1yZW5kZXIoKXtsZXR7Y2hpbGRyZW46ZSxlcnJvckVsZW1lbnQ6dCxyZXNvbHZlOm59PXRoaXMucHJvcHMsaT1udWxsLGE9Qi5wZW5kaW5nO2lmKG4gaW5zdGFuY2VvZiBQcm9taXNlKWlmKHRoaXMuc3RhdGUuZXJyb3Ipe2E9Qi5lcnJvcjtsZXQgZT10aGlzLnN0YXRlLmVycm9yO2k9UHJvbWlzZS5yZWplY3QoKS5jYXRjaCgoKCk9Pnt9KSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksIl90cmFja2VkIix7Z2V0OigpPT4hMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLCJfZXJyb3IiLHtnZXQ6KCk9PmV9KX1lbHNlIG4uX3RyYWNrZWQ/KGk9bixhPSJfZXJyb3IiaW4gaT9CLmVycm9yOiJfZGF0YSJpbiBpP0Iuc3VjY2VzczpCLnBlbmRpbmcpOihhPUIucGVuZGluZyxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX3RyYWNrZWQiLHtnZXQ6KCk9PiEwfSksaT1uLnRoZW4oKGU9Pk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfZGF0YSIse2dldDooKT0+ZX0pKSwoZT0+T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9lcnJvciIse2dldDooKT0+ZX0pKSkpO2Vsc2UgYT1CLnN1Y2Nlc3MsaT1Qcm9taXNlLnJlc29sdmUoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwiX3RyYWNrZWQiLHtnZXQ6KCk9PiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksIl9kYXRhIix7Z2V0OigpPT5ufSk7aWYoYT09PUIuZXJyb3ImJmkuX2Vycm9yIGluc3RhbmNlb2Ygci5BYm9ydGVkRGVmZXJyZWRFcnJvcil0aHJvdyBIO2lmKGE9PT1CLmVycm9yJiYhdCl0aHJvdyBpLl9lcnJvcjtpZihhPT09Qi5lcnJvcilyZXR1cm4gby5jcmVhdGVFbGVtZW50KGMuUHJvdmlkZXIse3ZhbHVlOmksY2hpbGRyZW46dH0pO2lmKGE9PT1CLnN1Y2Nlc3MpcmV0dXJuIG8uY3JlYXRlRWxlbWVudChjLlByb3ZpZGVyLHt2YWx1ZTppLGNoaWxkcmVuOmV9KTt0aHJvdyBpfX1mdW5jdGlvbiBXKGUpe2xldHtjaGlsZHJlbjp0fT1lLHI9RigpLG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChyKTp0O3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLG4pfWZ1bmN0aW9uICQoZSx0KXt2b2lkIDA9PT10JiYodD1bXSk7bGV0IG49W107cmV0dXJuIG8uQ2hpbGRyZW4uZm9yRWFjaChlLCgoZSxpKT0+e2lmKCFvLmlzVmFsaWRFbGVtZW50KGUpKXJldHVybjtsZXQgYT1bLi4udCxpXTtpZihlLnR5cGU9PT1vLkZyYWdtZW50KXJldHVybiB2b2lkIG4ucHVzaC5hcHBseShuLCQoZS5wcm9wcy5jaGlsZHJlbixhKSk7ZS50eXBlIT09VSYmci5VTlNBRkVfaW52YXJpYW50KCExKSxlLnByb3BzLmluZGV4JiZlLnByb3BzLmNoaWxkcmVuJiZyLlVOU0FGRV9pbnZhcmlhbnQoITEpO2xldCBzPXtpZDplLnByb3BzLmlkfHxhLmpvaW4oIi0iKSxjYXNlU2Vuc2l0aXZlOmUucHJvcHMuY2FzZVNlbnNpdGl2ZSxlbGVtZW50OmUucHJvcHMuZWxlbWVudCxDb21wb25lbnQ6ZS5wcm9wcy5Db21wb25lbnQsaW5kZXg6ZS5wcm9wcy5pbmRleCxwYXRoOmUucHJvcHMucGF0aCxsb2FkZXI6ZS5wcm9wcy5sb2FkZXIsYWN0aW9uOmUucHJvcHMuYWN0aW9uLGVycm9yRWxlbWVudDplLnByb3BzLmVycm9yRWxlbWVudCxFcnJvckJvdW5kYXJ5OmUucHJvcHMuRXJyb3JCb3VuZGFyeSxoYXNFcnJvckJvdW5kYXJ5Om51bGwhPWUucHJvcHMuRXJyb3JCb3VuZGFyeXx8bnVsbCE9ZS5wcm9wcy5lcnJvckVsZW1lbnQsc2hvdWxkUmV2YWxpZGF0ZTplLnByb3BzLnNob3VsZFJldmFsaWRhdGUsaGFuZGxlOmUucHJvcHMuaGFuZGxlLGxhenk6ZS5wcm9wcy5sYXp5fTtlLnByb3BzLmNoaWxkcmVuJiYocy5jaGlsZHJlbj0kKGUucHJvcHMuY2hpbGRyZW4sYSkpLG4ucHVzaChzKX0pKSxufWZ1bmN0aW9uIHEoZSl7bGV0IHQ9e2hhc0Vycm9yQm91bmRhcnk6bnVsbCE9ZS5FcnJvckJvdW5kYXJ5fHxudWxsIT1lLmVycm9yRWxlbWVudH07cmV0dXJuIGUuQ29tcG9uZW50JiZPYmplY3QuYXNzaWduKHQse2VsZW1lbnQ6by5jcmVhdGVFbGVtZW50KGUuQ29tcG9uZW50KSxDb21wb25lbnQ6dm9pZCAwfSksZS5IeWRyYXRlRmFsbGJhY2smJk9iamVjdC5hc3NpZ24odCx7aHlkcmF0ZUZhbGxiYWNrRWxlbWVudDpvLmNyZWF0ZUVsZW1lbnQoZS5IeWRyYXRlRmFsbGJhY2spLEh5ZHJhdGVGYWxsYmFjazp2b2lkIDB9KSxlLkVycm9yQm91bmRhcnkmJk9iamVjdC5hc3NpZ24odCx7ZXJyb3JFbGVtZW50Om8uY3JlYXRlRWxlbWVudChlLkVycm9yQm91bmRhcnkpLEVycm9yQm91bmRhcnk6dm9pZCAwfSksdH1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiQWJvcnRlZERlZmVycmVkRXJyb3IiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLkFib3J0ZWREZWZlcnJlZEVycm9yfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJOYXZpZ2F0aW9uVHlwZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuQWN0aW9ufX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJjcmVhdGVQYXRoIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5jcmVhdGVQYXRofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJkZWZlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuZGVmZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImdlbmVyYXRlUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuZ2VuZXJhdGVQYXRofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJpc1JvdXRlRXJyb3JSZXNwb25zZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuaXNSb3V0ZUVycm9yUmVzcG9uc2V9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImpzb24iLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLmpzb259fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIm1hdGNoUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIubWF0Y2hQYXRofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJtYXRjaFJvdXRlcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIubWF0Y2hSb3V0ZXN9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInBhcnNlUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIucGFyc2VQYXRofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJyZWRpcmVjdCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIucmVkaXJlY3R9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInJlZGlyZWN0RG9jdW1lbnQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLnJlZGlyZWN0RG9jdW1lbnR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInJlc29sdmVQYXRoIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5yZXNvbHZlUGF0aH19KSxlLkF3YWl0PWZ1bmN0aW9uKGUpe2xldHtjaGlsZHJlbjp0LGVycm9yRWxlbWVudDpyLHJlc29sdmU6bn09ZTtyZXR1cm4gby5jcmVhdGVFbGVtZW50KEose3Jlc29sdmU6bixlcnJvckVsZW1lbnQ6cn0sby5jcmVhdGVFbGVtZW50KFcsbnVsbCx0KSl9LGUuTWVtb3J5Um91dGVyPWZ1bmN0aW9uKGUpe2xldHtiYXNlbmFtZTp0LGNoaWxkcmVuOm4saW5pdGlhbEVudHJpZXM6aSxpbml0aWFsSW5kZXg6YSxmdXR1cmU6c309ZSxjPW8udXNlUmVmKCk7bnVsbD09Yy5jdXJyZW50JiYoYy5jdXJyZW50PXIuY3JlYXRlTWVtb3J5SGlzdG9yeSh7aW5pdGlhbEVudHJpZXM6aSxpbml0aWFsSW5kZXg6YSx2NUNvbXBhdDohMH0pKTtsZXQgdT1jLmN1cnJlbnQsW2wsZl09by51c2VTdGF0ZSh7YWN0aW9uOnUuYWN0aW9uLGxvY2F0aW9uOnUubG9jYXRpb259KSx7djdfc3RhcnRUcmFuc2l0aW9uOmR9PXN8fHt9LHA9by51c2VDYWxsYmFjaygoZT0+e2QmJkQ/RCgoKCk9PmYoZSkpKTpmKGUpfSksW2YsZF0pO3JldHVybiBvLnVzZUxheW91dEVmZmVjdCgoKCk9PnUubGlzdGVuKHApKSxbdSxwXSksby5jcmVhdGVFbGVtZW50KHose2Jhc2VuYW1lOnQsY2hpbGRyZW46bixsb2NhdGlvbjpsLmxvY2F0aW9uLG5hdmlnYXRpb25UeXBlOmwuYWN0aW9uLG5hdmlnYXRvcjp1LGZ1dHVyZTpzfSl9LGUuTmF2aWdhdGU9ZnVuY3Rpb24oZSl7bGV0e3RvOnQscmVwbGFjZTpuLHN0YXRlOmkscmVsYXRpdmU6YX09ZTtwKCl8fHIuVU5TQUZFX2ludmFyaWFudCghMSk7bGV0e2Z1dHVyZTpzLHN0YXRpYzpjfT1vLnVzZUNvbnRleHQodSkse21hdGNoZXM6bH09by51c2VDb250ZXh0KGYpLHtwYXRobmFtZTpkfT1fKCksaD1tKCkseT1yLnJlc29sdmVUbyh0LHIuVU5TQUZFX2dldFJlc29sdmVUb01hdGNoZXMobCxzLnY3X3JlbGF0aXZlU3BsYXRQYXRoKSxkLCJwYXRoIj09PWEpLGc9SlNPTi5zdHJpbmdpZnkoeSk7cmV0dXJuIG8udXNlRWZmZWN0KCgoKT0+aChKU09OLnBhcnNlKGcpLHtyZXBsYWNlOm4sc3RhdGU6aSxyZWxhdGl2ZTphfSkpLFtoLGcsYSxuLGldKSxudWxsfSxlLk91dGxldD1mdW5jdGlvbihlKXtyZXR1cm4gZyhlLmNvbnRleHQpfSxlLlJvdXRlPVUsZS5Sb3V0ZXI9eixlLlJvdXRlclByb3ZpZGVyPWZ1bmN0aW9uKGUpe2xldHtmYWxsYmFja0VsZW1lbnQ6dCxyb3V0ZXI6cixmdXR1cmU6bn09ZSxbaSxjXT1vLnVzZVN0YXRlKHIuc3RhdGUpLHt2N19zdGFydFRyYW5zaXRpb246dX09bnx8e30sbD1vLnVzZUNhbGxiYWNrKChlPT57dSYmRD9EKCgoKT0+YyhlKSkpOmMoZSl9KSxbYyx1XSk7by51c2VMYXlvdXRFZmZlY3QoKCgpPT5yLnN1YnNjcmliZShsKSksW3IsbF0pLG8udXNlRWZmZWN0KCgoKT0+e30pLFtdKTtsZXQgZj1vLnVzZU1lbW8oKCgpPT4oe2NyZWF0ZUhyZWY6ci5jcmVhdGVIcmVmLGVuY29kZUxvY2F0aW9uOnIuZW5jb2RlTG9jYXRpb24sZ286ZT0+ci5uYXZpZ2F0ZShlKSxwdXNoOihlLHQsbik9PnIubmF2aWdhdGUoZSx7c3RhdGU6dCxwcmV2ZW50U2Nyb2xsUmVzZXQ6bnVsbD09bj92b2lkIDA6bi5wcmV2ZW50U2Nyb2xsUmVzZXR9KSxyZXBsYWNlOihlLHQsbik9PnIubmF2aWdhdGUoZSx7cmVwbGFjZTohMCxzdGF0ZTp0LHByZXZlbnRTY3JvbGxSZXNldDpudWxsPT1uP3ZvaWQgMDpuLnByZXZlbnRTY3JvbGxSZXNldH0pfSkpLFtyXSksZD1yLmJhc2VuYW1lfHwiLyIscD1vLnVzZU1lbW8oKCgpPT4oe3JvdXRlcjpyLG5hdmlnYXRvcjpmLHN0YXRpYzohMSxiYXNlbmFtZTpkfSkpLFtyLGYsZF0pO3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLG8uY3JlYXRlRWxlbWVudChhLlByb3ZpZGVyLHt2YWx1ZTpwfSxvLmNyZWF0ZUVsZW1lbnQocy5Qcm92aWRlcix7dmFsdWU6aX0sby5jcmVhdGVFbGVtZW50KHose2Jhc2VuYW1lOmQsbG9jYXRpb246aS5sb2NhdGlvbixuYXZpZ2F0aW9uVHlwZTppLmhpc3RvcnlBY3Rpb24sbmF2aWdhdG9yOmYsZnV0dXJlOnt2N19yZWxhdGl2ZVNwbGF0UGF0aDpyLmZ1dHVyZS52N19yZWxhdGl2ZVNwbGF0UGF0aH19LGkuaW5pdGlhbGl6ZWR8fHIuZnV0dXJlLnY3X3BhcnRpYWxIeWRyYXRpb24/by5jcmVhdGVFbGVtZW50KEwse3JvdXRlczpyLnJvdXRlcyxmdXR1cmU6ci5mdXR1cmUsc3RhdGU6aX0pOnQpKSksbnVsbCl9LGUuUm91dGVzPWZ1bmN0aW9uKGUpe2xldHtjaGlsZHJlbjp0LGxvY2F0aW9uOnJ9PWU7cmV0dXJuIGIoJCh0KSxyKX0sZS5VTlNBRkVfRGF0YVJvdXRlckNvbnRleHQ9YSxlLlVOU0FGRV9EYXRhUm91dGVyU3RhdGVDb250ZXh0PXMsZS5VTlNBRkVfTG9jYXRpb25Db250ZXh0PWwsZS5VTlNBRkVfTmF2aWdhdGlvbkNvbnRleHQ9dSxlLlVOU0FGRV9Sb3V0ZUNvbnRleHQ9ZixlLlVOU0FGRV9tYXBSb3V0ZVByb3BlcnRpZXM9cSxlLlVOU0FGRV91c2VSb3V0ZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIE8oVC5Vc2VSb3V0ZUlkKX0sZS5VTlNBRkVfdXNlUm91dGVzSW1wbD13LGUuY3JlYXRlTWVtb3J5Um91dGVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHIuY3JlYXRlUm91dGVyKHtiYXNlbmFtZTpudWxsPT10P3ZvaWQgMDp0LmJhc2VuYW1lLGZ1dHVyZTppKHt9LG51bGw9PXQ/dm9pZCAwOnQuZnV0dXJlLHt2N19wcmVwZW5kQmFzZW5hbWU6ITB9KSxoaXN0b3J5OnIuY3JlYXRlTWVtb3J5SGlzdG9yeSh7aW5pdGlhbEVudHJpZXM6bnVsbD09dD92b2lkIDA6dC5pbml0aWFsRW50cmllcyxpbml0aWFsSW5kZXg6bnVsbD09dD92b2lkIDA6dC5pbml0aWFsSW5kZXh9KSxoeWRyYXRpb25EYXRhOm51bGw9PXQ/dm9pZCAwOnQuaHlkcmF0aW9uRGF0YSxyb3V0ZXM6ZSxtYXBSb3V0ZVByb3BlcnRpZXM6cSx1bnN0YWJsZV9kYXRhU3RyYXRlZ3k6bnVsbD09dD92b2lkIDA6dC51bnN0YWJsZV9kYXRhU3RyYXRlZ3ksdW5zdGFibGVfcGF0Y2hSb3V0ZXNPbk1pc3M6bnVsbD09dD92b2lkIDA6dC51bnN0YWJsZV9wYXRjaFJvdXRlc09uTWlzc30pLmluaXRpYWxpemUoKX0sZS5jcmVhdGVSb3V0ZXNGcm9tQ2hpbGRyZW49JCxlLmNyZWF0ZVJvdXRlc0Zyb21FbGVtZW50cz0kLGUucmVuZGVyTWF0Y2hlcz1mdW5jdGlvbihlKXtyZXR1cm4gRShlKX0sZS51c2VBY3Rpb25EYXRhPWZ1bmN0aW9uKCl7bGV0IGU9UChULlVzZUFjdGlvbkRhdGEpLHQ9TyhULlVzZUxvYWRlckRhdGEpO3JldHVybiBlLmFjdGlvbkRhdGE/ZS5hY3Rpb25EYXRhW3RdOnZvaWQgMH0sZS51c2VBc3luY0Vycm9yPWZ1bmN0aW9uKCl7bGV0IGU9by51c2VDb250ZXh0KGMpO3JldHVybiBudWxsPT1lP3ZvaWQgMDplLl9lcnJvcn0sZS51c2VBc3luY1ZhbHVlPUYsZS51c2VCbG9ja2VyPWZ1bmN0aW9uKGUpe2xldHtyb3V0ZXI6dCxiYXNlbmFtZTpufT1SKEEuVXNlQmxvY2tlciksYT1QKFQuVXNlQmxvY2tlciksW3MsY109by51c2VTdGF0ZSgiIiksdT1vLnVzZUNhbGxiYWNrKCh0PT57aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpcmV0dXJuISFlO2lmKCIvIj09PW4pcmV0dXJuIGUodCk7bGV0e2N1cnJlbnRMb2NhdGlvbjpvLG5leHRMb2NhdGlvbjphLGhpc3RvcnlBY3Rpb246c309dDtyZXR1cm4gZSh7Y3VycmVudExvY2F0aW9uOmkoe30sbyx7cGF0aG5hbWU6ci5zdHJpcEJhc2VuYW1lKG8ucGF0aG5hbWUsbil8fG8ucGF0aG5hbWV9KSxuZXh0TG9jYXRpb246aSh7fSxhLHtwYXRobmFtZTpyLnN0cmlwQmFzZW5hbWUoYS5wYXRobmFtZSxuKXx8YS5wYXRobmFtZX0pLGhpc3RvcnlBY3Rpb246c30pfSksW24sZV0pO3JldHVybiBvLnVzZUVmZmVjdCgoKCk9PntsZXQgZT1TdHJpbmcoKytJKTtyZXR1cm4gYyhlKSwoKT0+dC5kZWxldGVCbG9ja2VyKGUpfSksW3RdKSxvLnVzZUVmZmVjdCgoKCk9PnsiIiE9PXMmJnQuZ2V0QmxvY2tlcihzLHUpfSksW3Qscyx1XSkscyYmYS5ibG9ja2Vycy5oYXMocyk/YS5ibG9ja2Vycy5nZXQocyk6ci5JRExFX0JMT0NLRVJ9LGUudXNlSHJlZj1mdW5jdGlvbihlLHQpe2xldHtyZWxhdGl2ZTpufT12b2lkIDA9PT10P3t9OnQ7cCgpfHxyLlVOU0FGRV9pbnZhcmlhbnQoITEpO2xldHtiYXNlbmFtZTppLG5hdmlnYXRvcjphfT1vLnVzZUNvbnRleHQodSkse2hhc2g6cyxwYXRobmFtZTpjLHNlYXJjaDpsfT12KGUse3JlbGF0aXZlOm59KSxmPWM7cmV0dXJuIi8iIT09aSYmKGY9Ii8iPT09Yz9pOnIuam9pblBhdGhzKFtpLGNdKSksYS5jcmVhdGVIcmVmKHtwYXRobmFtZTpmLHNlYXJjaDpsLGhhc2g6c30pfSxlLnVzZUluUm91dGVyQ29udGV4dD1wLGUudXNlTG9hZGVyRGF0YT1mdW5jdGlvbigpe2xldCBlPVAoVC5Vc2VMb2FkZXJEYXRhKSx0PU8oVC5Vc2VMb2FkZXJEYXRhKTtpZighZS5lcnJvcnN8fG51bGw9PWUuZXJyb3JzW3RdKXJldHVybiBlLmxvYWRlckRhdGFbdF07Y29uc29sZS5lcnJvcigiWW91IGNhbm5vdCBgdXNlTG9hZGVyRGF0YWAgaW4gYW4gZXJyb3JFbGVtZW50IChyb3V0ZUlkOiAiK3QrIikiKX0sZS51c2VMb2NhdGlvbj1fLGUudXNlTWF0Y2g9ZnVuY3Rpb24oZSl7cCgpfHxyLlVOU0FGRV9pbnZhcmlhbnQoITEpO2xldHtwYXRobmFtZTp0fT1fKCk7cmV0dXJuIG8udXNlTWVtbygoKCk9PnIubWF0Y2hQYXRoKGUsdCkpLFt0LGVdKX0sZS51c2VNYXRjaGVzPWZ1bmN0aW9uKCl7bGV0e21hdGNoZXM6ZSxsb2FkZXJEYXRhOnR9PVAoVC5Vc2VNYXRjaGVzKTtyZXR1cm4gby51c2VNZW1vKCgoKT0+ZS5tYXAoKGU9PnIuVU5TQUZFX2NvbnZlcnRSb3V0ZU1hdGNoVG9VaU1hdGNoKGUsdCkpKSksW2UsdF0pfSxlLnVzZU5hdmlnYXRlPW0sZS51c2VOYXZpZ2F0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIFAoVC5Vc2VOYXZpZ2F0aW9uKS5uYXZpZ2F0aW9ufSxlLnVzZU5hdmlnYXRpb25UeXBlPWZ1bmN0aW9uKCl7cmV0dXJuIG8udXNlQ29udGV4dChsKS5uYXZpZ2F0aW9uVHlwZX0sZS51c2VPdXRsZXQ9ZyxlLnVzZU91dGxldENvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gby51c2VDb250ZXh0KHkpfSxlLnVzZVBhcmFtcz1mdW5jdGlvbigpe2xldHttYXRjaGVzOmV9PW8udXNlQ29udGV4dChmKSx0PWVbZS5sZW5ndGgtMV07cmV0dXJuIHQ/dC5wYXJhbXM6e319LGUudXNlUmVzb2x2ZWRQYXRoPXYsZS51c2VSZXZhbGlkYXRvcj1mdW5jdGlvbigpe2xldCBlPVIoQS5Vc2VSZXZhbGlkYXRvciksdD1QKFQuVXNlUmV2YWxpZGF0b3IpO3JldHVybiBvLnVzZU1lbW8oKCgpPT4oe3JldmFsaWRhdGU6ZS5yb3V0ZXIucmV2YWxpZGF0ZSxzdGF0ZTp0LnJldmFsaWRhdGlvbn0pKSxbZS5yb3V0ZXIucmV2YWxpZGF0ZSx0LnJldmFsaWRhdGlvbl0pfSxlLnVzZVJvdXRlRXJyb3I9TSxlLnVzZVJvdXRlTG9hZGVyRGF0YT1mdW5jdGlvbihlKXtyZXR1cm4gUChULlVzZVJvdXRlTG9hZGVyRGF0YSkubG9hZGVyRGF0YVtlXX0sZS51c2VSb3V0ZXM9YixPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KHQscig5NjU0MCkscig1OTQwKSl9LDI5Njk4OmZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO3ZhciByPVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50Iiksbj1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpO2Z1bmN0aW9uIG8oZSx0LG4pe3ZhciBvPW51bGw7aWYodm9pZCAwIT09biYmKG89IiIrbiksdm9pZCAwIT09dC5rZXkmJihvPSIiK3Qua2V5KSwia2V5ImluIHQpZm9yKHZhciBpIGluIG49e30sdCkia2V5IiE9PWkmJihuW2ldPXRbaV0pO2Vsc2Ugbj10O3JldHVybiB0PW4ucmVmLHskJHR5cGVvZjpyLHR5cGU6ZSxrZXk6byxyZWY6dm9pZCAwIT09dD90Om51bGwscHJvcHM6bn19dC5GcmFnbWVudD1uLHQuanN4PW8sdC5qc3hzPW99LDI5ODY5OmZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO3ZhciByPVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50Iiksbj1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSxvPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksaT1TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLGE9U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSxzPVN5bWJvbC5mb3IoInJlYWN0LmNvbnN1bWVyIiksYz1TeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0IiksdT1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLGw9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxmPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSxkPVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSxwPVN5bWJvbC5mb3IoInJlYWN0LmFjdGl2aXR5IiksXz1TeW1ib2wuaXRlcmF0b3I7dmFyIGg9e2lzTW91bnRlZDpmdW5jdGlvbigpe3JldHVybiExfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oKXt9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbigpe319LG09T2JqZWN0LmFzc2lnbix5PXt9O2Z1bmN0aW9uIGcoZSx0LHIpe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9eSx0aGlzLnVwZGF0ZXI9cnx8aH1mdW5jdGlvbiB2KCl7fWZ1bmN0aW9uIGIoZSx0LHIpe3RoaXMucHJvcHM9ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLnJlZnM9eSx0aGlzLnVwZGF0ZXI9cnx8aH1nLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LGcucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9ZSl0aHJvdyBFcnJvcigidGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuIik7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLGUsdCwic2V0U3RhdGUiKX0sZy5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGUsImZvcmNlVXBkYXRlIil9LHYucHJvdG90eXBlPWcucHJvdG90eXBlO3ZhciB3PWIucHJvdG90eXBlPW5ldyB2O3cuY29uc3RydWN0b3I9YixtKHcsZy5wcm90b3R5cGUpLHcuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIFM9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiBrKCl7fXZhciB4PXtIOm51bGwsQTpudWxsLFQ6bnVsbCxTOm51bGx9LEU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBBKGUsdCxuKXt2YXIgbz1uLnJlZjtyZXR1cm57JCR0eXBlb2Y6cix0eXBlOmUsa2V5OnQscmVmOnZvaWQgMCE9PW8/bzpudWxsLHByb3BzOm59fWZ1bmN0aW9uIFQoZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmZS4kJHR5cGVvZj09PXJ9dmFyIFI9L1wvKy9nO2Z1bmN0aW9uIFAoZSx0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiZudWxsIT1lLmtleT8ocj0iIitlLmtleSxuPXsiPSI6Ij0wIiwiOiI6Ij0yIn0sIiQiK3IucmVwbGFjZSgvWz06XS9nLChmdW5jdGlvbihlKXtyZXR1cm4gbltlXX0pKSk6dC50b1N0cmluZygzNik7dmFyIHIsbn1mdW5jdGlvbiBPKGUsdCxvLGksYSl7dmFyIHM9dHlwZW9mIGU7InVuZGVmaW5lZCIhPT1zJiYiYm9vbGVhbiIhPT1zfHwoZT1udWxsKTt2YXIgYyx1LGw9ITE7aWYobnVsbD09PWUpbD0hMDtlbHNlIHN3aXRjaChzKXtjYXNlImJpZ2ludCI6Y2FzZSJzdHJpbmciOmNhc2UibnVtYmVyIjpsPSEwO2JyZWFrO2Nhc2Uib2JqZWN0Ijpzd2l0Y2goZS4kJHR5cGVvZil7Y2FzZSByOmNhc2UgbjpsPSEwO2JyZWFrO2Nhc2UgZDpyZXR1cm4gTygobD1lLl9pbml0KShlLl9wYXlsb2FkKSx0LG8saSxhKX19aWYobClyZXR1cm4gYT1hKGUpLGw9IiI9PT1pPyIuIitQKGUsMCk6aSxTKGEpPyhvPSIiLG51bGwhPWwmJihvPWwucmVwbGFjZShSLCIkJi8iKSsiLyIpLE8oYSx0LG8sIiIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpKTpudWxsIT1hJiYoVChhKSYmKGM9YSx1PW8rKG51bGw9PWEua2V5fHxlJiZlLmtleT09PWEua2V5PyIiOigiIithLmtleSkucmVwbGFjZShSLCIkJi8iKSsiLyIpK2wsYT1BKGMudHlwZSx1LGMucHJvcHMpKSx0LnB1c2goYSkpLDE7bD0wO3ZhciBmLHA9IiI9PT1pPyIuIjppKyI6IjtpZihTKGUpKWZvcih2YXIgaD0wO2g8ZS5sZW5ndGg7aCsrKWwrPU8oaT1lW2hdLHQsbyxzPXArUChpLGgpLGEpO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mKGg9bnVsbD09PShmPWUpfHwib2JqZWN0IiE9dHlwZW9mIGY/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YoZj1fJiZmW19dfHxmWyJAQGl0ZXJhdG9yIl0pP2Y6bnVsbCkpZm9yKGU9aC5jYWxsKGUpLGg9MDshKGk9ZS5uZXh0KCkpLmRvbmU7KWwrPU8oaT1pLnZhbHVlLHQsbyxzPXArUChpLGgrKyksYSk7ZWxzZSBpZigib2JqZWN0Ij09PXMpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLnRoZW4pcmV0dXJuIE8oZnVuY3Rpb24oZSl7c3dpdGNoKGUuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIGUudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgZS5yZWFzb247ZGVmYXVsdDpzd2l0Y2goInN0cmluZyI9PXR5cGVvZiBlLnN0YXR1cz9lLnRoZW4oayxrKTooZS5zdGF0dXM9InBlbmRpbmciLGUudGhlbigoZnVuY3Rpb24odCl7InBlbmRpbmciPT09ZS5zdGF0dXMmJihlLnN0YXR1cz0iZnVsZmlsbGVkIixlLnZhbHVlPXQpfSksKGZ1bmN0aW9uKHQpeyJwZW5kaW5nIj09PWUuc3RhdHVzJiYoZS5zdGF0dXM9InJlamVjdGVkIixlLnJlYXNvbj10KX0pKSksZS5zdGF0dXMpe2Nhc2UiZnVsZmlsbGVkIjpyZXR1cm4gZS52YWx1ZTtjYXNlInJlamVjdGVkIjp0aHJvdyBlLnJlYXNvbn19dGhyb3cgZX0oZSksdCxvLGksYSk7dGhyb3cgdD1TdHJpbmcoZSksRXJyb3IoIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogIisoIltvYmplY3QgT2JqZWN0XSI9PT10PyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKGUpLmpvaW4oIiwgIikrIn0iOnQpKyIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuIil9cmV0dXJuIGx9ZnVuY3Rpb24gTShlLHQscil7aWYobnVsbD09ZSlyZXR1cm4gZTt2YXIgbj1bXSxvPTA7cmV0dXJuIE8oZSxuLCIiLCIiLChmdW5jdGlvbihlKXtyZXR1cm4gdC5jYWxsKHIsZSxvKyspfSkpLG59ZnVuY3Rpb24gRihlKXtpZigtMT09PWUuX3N0YXR1cyl7dmFyIHQ9ZS5fcmVzdWx0Oyh0PXQoKSkudGhlbigoZnVuY3Rpb24odCl7MCE9PWUuX3N0YXR1cyYmLTEhPT1lLl9zdGF0dXN8fChlLl9zdGF0dXM9MSxlLl9yZXN1bHQ9dCl9KSwoZnVuY3Rpb24odCl7MCE9PWUuX3N0YXR1cyYmLTEhPT1lLl9zdGF0dXN8fChlLl9zdGF0dXM9MixlLl9yZXN1bHQ9dCl9KSksLTE9PT1lLl9zdGF0dXMmJihlLl9zdGF0dXM9MCxlLl9yZXN1bHQ9dCl9aWYoMT09PWUuX3N0YXR1cylyZXR1cm4gZS5fcmVzdWx0LmRlZmF1bHQ7dGhyb3cgZS5fcmVzdWx0fXZhciBJPSJmdW5jdGlvbiI9PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcjpmdW5jdGlvbihlKXtpZigib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5FcnJvckV2ZW50KXt2YXIgdD1uZXcgd2luZG93LkVycm9yRXZlbnQoImVycm9yIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLG1lc3NhZ2U6Im9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmInN0cmluZyI9PXR5cGVvZiBlLm1lc3NhZ2U/U3RyaW5nKGUubWVzc2FnZSk6U3RyaW5nKGUpLGVycm9yOmV9KTtpZighd2luZG93LmRpc3BhdGNoRXZlbnQodCkpcmV0dXJufWVsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiBwcm9jZXNzJiYiZnVuY3Rpb24iPT10eXBlb2YgcHJvY2Vzcy5lbWl0KXJldHVybiB2b2lkIHByb2Nlc3MuZW1pdCgidW5jYXVnaHRFeGNlcHRpb24iLGUpO2NvbnNvbGUuZXJyb3IoZSl9LGo9e21hcDpNLGZvckVhY2g6ZnVuY3Rpb24oZSx0LHIpe00oZSwoZnVuY3Rpb24oKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLHIpfSxjb3VudDpmdW5jdGlvbihlKXt2YXIgdD0wO3JldHVybiBNKGUsKGZ1bmN0aW9uKCl7dCsrfSkpLHR9LHRvQXJyYXk6ZnVuY3Rpb24oZSl7cmV0dXJuIE0oZSwoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSl8fFtdfSxvbmx5OmZ1bmN0aW9uKGUpe2lmKCFUKGUpKXRocm93IEVycm9yKCJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC4iKTtyZXR1cm4gZX19O3QuQWN0aXZpdHk9cCx0LkNoaWxkcmVuPWosdC5Db21wb25lbnQ9Zyx0LkZyYWdtZW50PW8sdC5Qcm9maWxlcj1hLHQuUHVyZUNvbXBvbmVudD1iLHQuU3RyaWN0TW9kZT1pLHQuU3VzcGVuc2U9bCx0Ll9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERT14LHQuX19DT01QSUxFUl9SVU5USU1FPXtfX3Byb3RvX186bnVsbCxjOmZ1bmN0aW9uKGUpe3JldHVybiB4LkgudXNlTWVtb0NhY2hlKGUpfX0sdC5jYWNoZT1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseShudWxsLGFyZ3VtZW50cyl9fSx0LmNhY2hlU2lnbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LHQuY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGUsdCxyKXtpZihudWxsPT1lKXRocm93IEVycm9yKCJUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkICIrZSsiLiIpO3ZhciBuPW0oe30sZS5wcm9wcyksbz1lLmtleTtpZihudWxsIT10KWZvcihpIGluIHZvaWQgMCE9PXQua2V5JiYobz0iIit0LmtleSksdCkhRS5jYWxsKHQsaSl8fCJrZXkiPT09aXx8Il9fc2VsZiI9PT1pfHwiX19zb3VyY2UiPT09aXx8InJlZiI9PT1pJiZ2b2lkIDA9PT10LnJlZnx8KG5baV09dFtpXSk7dmFyIGk9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1pKW4uY2hpbGRyZW49cjtlbHNlIGlmKDE8aSl7Zm9yKHZhciBhPUFycmF5KGkpLHM9MDtzPGk7cysrKWFbc109YXJndW1lbnRzW3MrMl07bi5jaGlsZHJlbj1hfXJldHVybiBBKGUudHlwZSxvLG4pfSx0LmNyZWF0ZUNvbnRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKGU9eyQkdHlwZW9mOmMsX2N1cnJlbnRWYWx1ZTplLF9jdXJyZW50VmFsdWUyOmUsX3RocmVhZENvdW50OjAsUHJvdmlkZXI6bnVsbCxDb25zdW1lcjpudWxsfSkuUHJvdmlkZXI9ZSxlLkNvbnN1bWVyPXskJHR5cGVvZjpzLF9jb250ZXh0OmV9LGV9LHQuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihlLHQscil7dmFyIG4sbz17fSxpPW51bGw7aWYobnVsbCE9dClmb3IobiBpbiB2b2lkIDAhPT10LmtleSYmKGk9IiIrdC5rZXkpLHQpRS5jYWxsKHQsbikmJiJrZXkiIT09biYmIl9fc2VsZiIhPT1uJiYiX19zb3VyY2UiIT09biYmKG9bbl09dFtuXSk7dmFyIGE9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1hKW8uY2hpbGRyZW49cjtlbHNlIGlmKDE8YSl7Zm9yKHZhciBzPUFycmF5KGEpLGM9MDtjPGE7YysrKXNbY109YXJndW1lbnRzW2MrMl07by5jaGlsZHJlbj1zfWlmKGUmJmUuZGVmYXVsdFByb3BzKWZvcihuIGluIGE9ZS5kZWZhdWx0UHJvcHMpdm9pZCAwPT09b1tuXSYmKG9bbl09YVtuXSk7cmV0dXJuIEEoZSxpLG8pfSx0LmNyZWF0ZVJlZj1mdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fSx0LmZvcndhcmRSZWY9ZnVuY3Rpb24oZSl7cmV0dXJueyQkdHlwZW9mOnUscmVuZGVyOmV9fSx0LmlzVmFsaWRFbGVtZW50PVQsdC5sYXp5PWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjpkLF9wYXlsb2FkOntfc3RhdHVzOi0xLF9yZXN1bHQ6ZX0sX2luaXQ6Rn19LHQubWVtbz1mdW5jdGlvbihlLHQpe3JldHVybnskJHR5cGVvZjpmLHR5cGU6ZSxjb21wYXJlOnZvaWQgMD09PXQ/bnVsbDp0fX0sdC5zdGFydFRyYW5zaXRpb249ZnVuY3Rpb24oZSl7dmFyIHQ9eC5ULHI9e307eC5UPXI7dHJ5e3ZhciBuPWUoKSxvPXguUztudWxsIT09byYmbyhyLG4pLCJvYmplY3QiPT10eXBlb2YgbiYmbnVsbCE9PW4mJiJmdW5jdGlvbiI9PXR5cGVvZiBuLnRoZW4mJm4udGhlbihrLEkpfWNhdGNoKGUpe0koZSl9ZmluYWxseXtudWxsIT09dCYmbnVsbCE9PXIudHlwZXMmJih0LnR5cGVzPXIudHlwZXMpLHguVD10fX0sdC51bnN0YWJsZV91c2VDYWNoZVJlZnJlc2g9ZnVuY3Rpb24oKXtyZXR1cm4geC5ILnVzZUNhY2hlUmVmcmVzaCgpfSx0LnVzZT1mdW5jdGlvbihlKXtyZXR1cm4geC5ILnVzZShlKX0sdC51c2VBY3Rpb25TdGF0ZT1mdW5jdGlvbihlLHQscil7cmV0dXJuIHguSC51c2VBY3Rpb25TdGF0ZShlLHQscil9LHQudXNlQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0KXtyZXR1cm4geC5ILnVzZUNhbGxiYWNrKGUsdCl9LHQudXNlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4geC5ILnVzZUNvbnRleHQoZSl9LHQudXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe30sdC51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHguSC51c2VEZWZlcnJlZFZhbHVlKGUsdCl9LHQudXNlRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHguSC51c2VFZmZlY3QoZSx0KX0sdC51c2VFZmZlY3RFdmVudD1mdW5jdGlvbihlKXtyZXR1cm4geC5ILnVzZUVmZmVjdEV2ZW50KGUpfSx0LnVzZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIHguSC51c2VJZCgpfSx0LnVzZUltcGVyYXRpdmVIYW5kbGU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB4LkgudXNlSW1wZXJhdGl2ZUhhbmRsZShlLHQscil9LHQudXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHguSC51c2VJbnNlcnRpb25FZmZlY3QoZSx0KX0sdC51c2VMYXlvdXRFZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4geC5ILnVzZUxheW91dEVmZmVjdChlLHQpfSx0LnVzZU1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm4geC5ILnVzZU1lbW8oZSx0KX0sdC51c2VPcHRpbWlzdGljPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHguSC51c2VPcHRpbWlzdGljKGUsdCl9LHQudXNlUmVkdWNlcj1mdW5jdGlvbihlLHQscil7cmV0dXJuIHguSC51c2VSZWR1Y2VyKGUsdCxyKX0sdC51c2VSZWY9ZnVuY3Rpb24oZSl7cmV0dXJuIHguSC51c2VSZWYoZSl9LHQudXNlU3RhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHguSC51c2VTdGF0ZShlKX0sdC51c2VTeW5jRXh0ZXJuYWxTdG9yZT1mdW5jdGlvbihlLHQscil7cmV0dXJuIHguSC51c2VTeW5jRXh0ZXJuYWxTdG9yZShlLHQscil9LHQudXNlVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiB4LkgudXNlVHJhbnNpdGlvbigpfSx0LnZlcnNpb249IjE5LjIuNyJ9LDk2NTQwOmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXIoMjk4NjkpfSw3NDg0ODpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1yKDI5Njk4KX0sNzQ1MjpmdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlKXsidXNlIHN0cmljdCI7dmFyIHQscj1PYmplY3QucHJvdG90eXBlLG49ci5oYXNPd25Qcm9wZXJ0eSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24oZSx0LHIpe2VbdF09ci52YWx1ZX0saT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxhPWkuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIixzPWkuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIsYz1pLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gdShlLHQscil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSxlW3RdfXRyeXt1KHt9LCIiKX1jYXRjaChlKXt1PWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZVt0XT1yfX1mdW5jdGlvbiBsKGUsdCxyLG4pe3ZhciBpPXQmJnQucHJvdG90eXBlIGluc3RhbmNlb2YgeT90OnksYT1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSxzPW5ldyBPKG58fFtdKTtyZXR1cm4gbyhhLCJfaW52b2tlIix7dmFsdWU6QShlLHIscyl9KSxhfWZ1bmN0aW9uIGYoZSx0LHIpe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6ZS5jYWxsKHQscil9fWNhdGNoKGUpe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOmV9fX1lLndyYXA9bDt2YXIgZD0ic3VzcGVuZGVkU3RhcnQiLHA9InN1c3BlbmRlZFlpZWxkIixfPSJleGVjdXRpbmciLGg9ImNvbXBsZXRlZCIsbT17fTtmdW5jdGlvbiB5KCl7fWZ1bmN0aW9uIGcoKXt9ZnVuY3Rpb24gdigpe312YXIgYj17fTt1KGIsYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgdz1PYmplY3QuZ2V0UHJvdG90eXBlT2YsUz13JiZ3KHcoTShbXSkpKTtTJiZTIT09ciYmbi5jYWxsKFMsYSkmJihiPVMpO3ZhciBrPXYucHJvdG90eXBlPXkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoYik7ZnVuY3Rpb24geChlKXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3UoZSx0LChmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5faW52b2tlKHQsZSl9KSl9KSl9ZnVuY3Rpb24gRShlLHQpe2Z1bmN0aW9uIHIobyxpLGEscyl7dmFyIGM9ZihlW29dLGUsaSk7aWYoInRocm93IiE9PWMudHlwZSl7dmFyIHU9Yy5hcmcsbD11LnZhbHVlO3JldHVybiBsJiYib2JqZWN0Ij09dHlwZW9mIGwmJm4uY2FsbChsLCJfX2F3YWl0Iik/dC5yZXNvbHZlKGwuX19hd2FpdCkudGhlbigoZnVuY3Rpb24oZSl7cigibmV4dCIsZSxhLHMpfSksKGZ1bmN0aW9uKGUpe3IoInRocm93IixlLGEscyl9KSk6dC5yZXNvbHZlKGwpLnRoZW4oKGZ1bmN0aW9uKGUpe3UudmFsdWU9ZSxhKHUpfSksKGZ1bmN0aW9uKGUpe3JldHVybiByKCJ0aHJvdyIsZSxhLHMpfSkpfXMoYy5hcmcpfXZhciBpO28odGhpcywiX2ludm9rZSIse3ZhbHVlOmZ1bmN0aW9uKGUsbil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgdCgoZnVuY3Rpb24odCxvKXtyKGUsbix0LG8pfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX0pfWZ1bmN0aW9uIEEoZSxyLG4pe3ZhciBvPWQ7cmV0dXJuIGZ1bmN0aW9uKGksYSl7aWYobz09PV8pdGhyb3cgbmV3IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYobz09PWgpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19Zm9yKG4ubWV0aG9kPWksbi5hcmc9YTs7KXt2YXIgcz1uLmRlbGVnYXRlO2lmKHMpe3ZhciBjPVQocyxuKTtpZihjKXtpZihjPT09bSljb250aW51ZTtyZXR1cm4gY319aWYoIm5leHQiPT09bi5tZXRob2Qpbi5zZW50PW4uX3NlbnQ9bi5hcmc7ZWxzZSBpZigidGhyb3ciPT09bi5tZXRob2Qpe2lmKG89PT1kKXRocm93IG89aCxuLmFyZztuLmRpc3BhdGNoRXhjZXB0aW9uKG4uYXJnKX1lbHNlInJldHVybiI9PT1uLm1ldGhvZCYmbi5hYnJ1cHQoInJldHVybiIsbi5hcmcpO289Xzt2YXIgdT1mKGUscixuKTtpZigibm9ybWFsIj09PXUudHlwZSl7aWYobz1uLmRvbmU/aDpwLHUuYXJnPT09bSljb250aW51ZTtyZXR1cm57dmFsdWU6dS5hcmcsZG9uZTpuLmRvbmV9fSJ0aHJvdyI9PT11LnR5cGUmJihvPWgsbi5tZXRob2Q9InRocm93IixuLmFyZz11LmFyZyl9fX1mdW5jdGlvbiBUKGUscil7dmFyIG49ci5tZXRob2Qsbz1lLml0ZXJhdG9yW25dO2lmKG89PT10KXJldHVybiByLmRlbGVnYXRlPW51bGwsInRocm93Ij09PW4mJmUuaXRlcmF0b3IucmV0dXJuJiYoci5tZXRob2Q9InJldHVybiIsci5hcmc9dCxUKGUsciksInRocm93Ij09PXIubWV0aG9kKXx8InJldHVybiIhPT1uJiYoci5tZXRob2Q9InRocm93IixyLmFyZz1uZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK24rIicgbWV0aG9kIikpLG07dmFyIGk9ZihvLGUuaXRlcmF0b3Isci5hcmcpO2lmKCJ0aHJvdyI9PT1pLnR5cGUpcmV0dXJuIHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9aS5hcmcsci5kZWxlZ2F0ZT1udWxsLG07dmFyIGE9aS5hcmc7cmV0dXJuIGE/YS5kb25lPyhyW2UucmVzdWx0TmFtZV09YS52YWx1ZSxyLm5leHQ9ZS5uZXh0TG9jLCJyZXR1cm4iIT09ci5tZXRob2QmJihyLm1ldGhvZD0ibmV4dCIsci5hcmc9dCksci5kZWxlZ2F0ZT1udWxsLG0pOmE6KHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxyLmRlbGVnYXRlPW51bGwsbSl9ZnVuY3Rpb24gUihlKXt2YXIgdD17dHJ5TG9jOmVbMF19OzEgaW4gZSYmKHQuY2F0Y2hMb2M9ZVsxXSksMiBpbiBlJiYodC5maW5hbGx5TG9jPWVbMl0sdC5hZnRlckxvYz1lWzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaCh0KX1mdW5jdGlvbiBQKGUpe3ZhciB0PWUuY29tcGxldGlvbnx8e307dC50eXBlPSJub3JtYWwiLGRlbGV0ZSB0LmFyZyxlLmNvbXBsZXRpb249dH1mdW5jdGlvbiBPKGUpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSxlLmZvckVhY2goUix0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBNKGUpe2lmKG51bGwhPWUpe3ZhciByPWVbYV07aWYocilyZXR1cm4gci5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG89LTEsaT1mdW5jdGlvbiByKCl7Zm9yKDsrK288ZS5sZW5ndGg7KWlmKG4uY2FsbChlLG8pKXJldHVybiByLnZhbHVlPWVbb10sci5kb25lPSExLHI7cmV0dXJuIHIudmFsdWU9dCxyLmRvbmU9ITAscn07cmV0dXJuIGkubmV4dD1pfX10aHJvdyBuZXcgVHlwZUVycm9yKHR5cGVvZiBlKyIgaXMgbm90IGl0ZXJhYmxlIil9cmV0dXJuIGcucHJvdG90eXBlPXYsbyhrLCJjb25zdHJ1Y3RvciIse3ZhbHVlOnYsY29uZmlndXJhYmxlOiEwfSksbyh2LCJjb25zdHJ1Y3RvciIse3ZhbHVlOmcsY29uZmlndXJhYmxlOiEwfSksZy5kaXNwbGF5TmFtZT11KHYsYywiR2VuZXJhdG9yRnVuY3Rpb24iKSxlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oZSl7dmFyIHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUuY29uc3RydWN0b3I7cmV0dXJuISF0JiYodD09PWd8fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0odC5kaXNwbGF5TmFtZXx8dC5uYW1lKSl9LGUubWFyaz1mdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihlLHYpOihlLl9fcHJvdG9fXz12LHUoZSxjLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGspLGV9LGUuYXdyYXA9ZnVuY3Rpb24oZSl7cmV0dXJue19fYXdhaXQ6ZX19LHgoRS5wcm90b3R5cGUpLHUoRS5wcm90b3R5cGUscywoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLkFzeW5jSXRlcmF0b3I9RSxlLmFzeW5jPWZ1bmN0aW9uKHQscixuLG8saSl7dm9pZCAwPT09aSYmKGk9UHJvbWlzZSk7dmFyIGE9bmV3IEUobCh0LHIsbixvKSxpKTtyZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKHIpP2E6YS5uZXh0KCkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZG9uZT9lLnZhbHVlOmEubmV4dCgpfSkpfSx4KGspLHUoayxjLCJHZW5lcmF0b3IiKSx1KGssYSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSx1KGssInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxlLmtleXM9ZnVuY3Rpb24oZSl7dmFyIHQ9T2JqZWN0KGUpLHI9W107Zm9yKHZhciBuIGluIHQpci5wdXNoKG4pO3JldHVybiByLnJldmVyc2UoKSxmdW5jdGlvbiBlKCl7Zm9yKDtyLmxlbmd0aDspe3ZhciBuPXIucG9wKCk7aWYobiBpbiB0KXJldHVybiBlLnZhbHVlPW4sZS5kb25lPSExLGV9cmV0dXJuIGUuZG9uZT0hMCxlfX0sZS52YWx1ZXM9TSxPLnByb3RvdHlwZT17Y29uc3RydWN0b3I6TyxyZXNldDpmdW5jdGlvbihlKXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD10LHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXQsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goUCksIWUpZm9yKHZhciByIGluIHRoaXMpInQiPT09ci5jaGFyQXQoMCkmJm4uY2FsbCh0aGlzLHIpJiYhaXNOYU4oK3Iuc2xpY2UoMSkpJiYodGhpc1tyXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgZT10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZigidGhyb3ciPT09ZS50eXBlKXRocm93IGUuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZG9uZSl0aHJvdyBlO3ZhciByPXRoaXM7ZnVuY3Rpb24gbyhuLG8pe3JldHVybiBzLnR5cGU9InRocm93IixzLmFyZz1lLHIubmV4dD1uLG8mJihyLm1ldGhvZD0ibmV4dCIsci5hcmc9dCksISFvfWZvcih2YXIgaT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tpXSxzPWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbygiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIGM9bi5jYWxsKGEsImNhdGNoTG9jIiksdT1uLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKGMmJnUpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX1lbHNlIGlmKGMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBvKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIXUpdGhyb3cgbmV3IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG8oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtyPj0wOy0tcil7dmFyIG89dGhpcy50cnlFbnRyaWVzW3JdO2lmKG8udHJ5TG9jPD10aGlzLnByZXYmJm4uY2FsbChvLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJigiYnJlYWsiPT09ZXx8ImNvbnRpbnVlIj09PWUpJiZpLnRyeUxvYzw9dCYmdDw9aS5maW5hbGx5TG9jJiYoaT1udWxsKTt2YXIgYT1pP2kuY29tcGxldGlvbjp7fTtyZXR1cm4gYS50eXBlPWUsYS5hcmc9dCxpPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyxtKTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbihlLHQpe2lmKCJ0aHJvdyI9PT1lLnR5cGUpdGhyb3cgZS5hcmc7cmV0dXJuImJyZWFrIj09PWUudHlwZXx8ImNvbnRpbnVlIj09PWUudHlwZT90aGlzLm5leHQ9ZS5hcmc6InJldHVybiI9PT1lLnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz1lLmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09ZS50eXBlJiZ0JiYodGhpcy5uZXh0PXQpLG19LGZpbmlzaDpmdW5jdGlvbihlKXtmb3IodmFyIHQ9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO3Q+PTA7LS10KXt2YXIgcj10aGlzLnRyeUVudHJpZXNbdF07aWYoci5maW5hbGx5TG9jPT09ZSlyZXR1cm4gdGhpcy5jb21wbGV0ZShyLmNvbXBsZXRpb24sci5hZnRlckxvYyksUChyKSxtfX0sY2F0Y2g6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTt0Pj0wOy0tdCl7dmFyIHI9dGhpcy50cnlFbnRyaWVzW3RdO2lmKHIudHJ5TG9jPT09ZSl7dmFyIG49ci5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1uLnR5cGUpe3ZhciBvPW4uYXJnO1Aocil9cmV0dXJuIG99fXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpNKGUpLHJlc3VsdE5hbWU6cixuZXh0TG9jOm59LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dCksbX19LGV9KGUuZXhwb3J0cyk7dHJ5e3JlZ2VuZXJhdG9yUnVudGltZT10fWNhdGNoKGUpeyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzLnJlZ2VuZXJhdG9yUnVudGltZT10OkZ1bmN0aW9uKCJyIiwicmVnZW5lcmF0b3JSdW50aW1lID0gciIpKHQpfX0sMTA2NjE6ZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuY3JlYXRlQ2FjaGVLZXlDb21wYXJhdG9yPW8sdC5kZWZhdWx0RXF1YWxpdHlDaGVjaz12b2lkIDAsdC5kZWZhdWx0TWVtb2l6ZT1mdW5jdGlvbihlLHQpe3ZhciBpPSJvYmplY3QiPT10eXBlb2YgdD90OntlcXVhbGl0eUNoZWNrOnR9LGE9aS5lcXVhbGl0eUNoZWNrLHM9dm9pZCAwPT09YT9uOmEsYz1pLm1heFNpemUsdT12b2lkIDA9PT1jPzE6YyxsPWkucmVzdWx0RXF1YWxpdHlDaGVjayxmPW8ocyksZD0xPT09dT8ocD1mLHtnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIF8mJnAoXy5rZXksZSk/Xy52YWx1ZTpyfSxwdXQ6ZnVuY3Rpb24oZSx0KXtfPXtrZXk6ZSx2YWx1ZTp0fX0sZ2V0RW50cmllczpmdW5jdGlvbigpe3JldHVybiBfP1tfXTpbXX0sY2xlYXI6ZnVuY3Rpb24oKXtfPXZvaWQgMH19KTpmdW5jdGlvbihlLHQpe3ZhciBuPVtdO2Z1bmN0aW9uIG8oZSl7dmFyIG89bi5maW5kSW5kZXgoKGZ1bmN0aW9uKHIpe3JldHVybiB0KGUsci5rZXkpfSkpO2lmKG8+LTEpe3ZhciBpPW5bb107cmV0dXJuIG8+MCYmKG4uc3BsaWNlKG8sMSksbi51bnNoaWZ0KGkpKSxpLnZhbHVlfXJldHVybiByfWZ1bmN0aW9uIGkodCxpKXtvKHQpPT09ciYmKG4udW5zaGlmdCh7a2V5OnQsdmFsdWU6aX0pLG4ubGVuZ3RoPmUmJm4ucG9wKCkpfWZ1bmN0aW9uIGEoKXtyZXR1cm4gbn1mdW5jdGlvbiBzKCl7bj1bXX1yZXR1cm57Z2V0Om8scHV0OmksZ2V0RW50cmllczphLGNsZWFyOnN9fSh1LGYpO3ZhciBwLF87ZnVuY3Rpb24gaCgpe3ZhciB0PWQuZ2V0KGFyZ3VtZW50cyk7aWYodD09PXIpe2lmKHQ9ZS5hcHBseShudWxsLGFyZ3VtZW50cyksbCl7dmFyIG49ZC5nZXRFbnRyaWVzKCkuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuIGwoZS52YWx1ZSx0KX0pKTtuJiYodD1uLnZhbHVlKX1kLnB1dChhcmd1bWVudHMsdCl9cmV0dXJuIHR9cmV0dXJuIGguY2xlYXJDYWNoZT1mdW5jdGlvbigpe3JldHVybiBkLmNsZWFyKCl9LGh9O3ZhciByPSJOT1RfRk9VTkQiO3ZhciBuPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10fTtmdW5jdGlvbiBvKGUpe3JldHVybiBmdW5jdGlvbih0LHIpe2lmKG51bGw9PT10fHxudWxsPT09cnx8dC5sZW5ndGghPT1yLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG49dC5sZW5ndGgsbz0wO288bjtvKyspaWYoIWUodFtvXSxyW29dKSlyZXR1cm4hMTtyZXR1cm4hMH19dC5kZWZhdWx0RXF1YWxpdHlDaGVjaz1ufSw5NzEzMjpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3QuTXo9dm9pZCAwLHQuajg9dm9pZCAwO3ZhciBuPXIoMTA2NjEpO2Z1bmN0aW9uIG8oZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkodD4xP3QtMTowKSxuPTE7bjx0O24rKylyW24tMV09YXJndW1lbnRzW25dO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KHQpLG89MDtvPHQ7bysrKW5bb109YXJndW1lbnRzW29dO3ZhciBpLGE9MCxzPXttZW1vaXplT3B0aW9uczp2b2lkIDB9LGM9bi5wb3AoKTtpZigib2JqZWN0Ij09dHlwZW9mIGMmJihzPWMsYz1uLnBvcCgpKSwiZnVuY3Rpb24iIT10eXBlb2YgYyl0aHJvdyBuZXcgRXJyb3IoImNyZWF0ZVNlbGVjdG9yIGV4cGVjdHMgYW4gb3V0cHV0IGZ1bmN0aW9uIGFmdGVyIHRoZSBpbnB1dHMsIGJ1dCByZWNlaXZlZDogWyIrdHlwZW9mIGMrIl0iKTt2YXIgdT1zLm1lbW9pemVPcHRpb25zLGw9dm9pZCAwPT09dT9yOnUsZj1BcnJheS5pc0FycmF5KGwpP2w6W2xdLGQ9ZnVuY3Rpb24oZSl7dmFyIHQ9QXJyYXkuaXNBcnJheShlWzBdKT9lWzBdOmU7aWYoIXQuZXZlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlfSkpKXt2YXIgcj10Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGU/ImZ1bmN0aW9uICIrKGUubmFtZXx8InVubmFtZWQiKSsiKCkiOnR5cGVvZiBlfSkpLmpvaW4oIiwgIik7dGhyb3cgbmV3IEVycm9yKCJjcmVhdGVTZWxlY3RvciBleHBlY3RzIGFsbCBpbnB1dC1zZWxlY3RvcnMgdG8gYmUgZnVuY3Rpb25zLCBidXQgcmVjZWl2ZWQgdGhlIGZvbGxvd2luZyB0eXBlczogWyIrcisiXSIpfXJldHVybiB0fShuKSxwPWUuYXBwbHkodm9pZCAwLFtmdW5jdGlvbigpe3JldHVybiBhKyssYy5hcHBseShudWxsLGFyZ3VtZW50cyl9XS5jb25jYXQoZikpLF89ZSgoZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD1kLmxlbmd0aCxyPTA7cjx0O3IrKyllLnB1c2goZFtyXS5hcHBseShudWxsLGFyZ3VtZW50cykpO3JldHVybiBpPXAuYXBwbHkobnVsbCxlKX0pKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihfLHtyZXN1bHRGdW5jOmMsbWVtb2l6ZWRSZXN1bHRGdW5jOnAsZGVwZW5kZW5jaWVzOmQsbGFzdFJlc3VsdDpmdW5jdGlvbigpe3JldHVybiBpfSxyZWNvbXB1dGF0aW9uczpmdW5jdGlvbigpe3JldHVybiBhfSxyZXNldFJlY29tcHV0YXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIGE9MH19KSxffX12YXIgaT1vKG4uZGVmYXVsdE1lbW9pemUpO3QuTXo9aTt0Lmo4PWZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwPT09dCYmKHQ9aSksIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiY3JlYXRlU3RydWN0dXJlZFNlbGVjdG9yIGV4cGVjdHMgZmlyc3QgYXJndW1lbnQgdG8gYmUgYW4gb2JqZWN0IHdoZXJlIGVhY2ggcHJvcGVydHkgaXMgYSBzZWxlY3RvciwgaW5zdGVhZCByZWNlaXZlZCBhICIrdHlwZW9mIGUpO3ZhciByPU9iamVjdC5rZXlzKGUpLG49dChyLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19KSksKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIHQucmVkdWNlKChmdW5jdGlvbihlLHQsbil7cmV0dXJuIGVbcltuXV09dCxlfSkse30pfSkpO3JldHVybiBufX0sNzU2MTc6ZnVuY3Rpb24oZSx0LHIpe2UuZXhwb3J0cz1yKDU4MzAzKX0sNTgzMDM6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoOTM5NjEpO3Qub3BlcmF0aW9uPWZ1bmN0aW9uKGUpe3ZhciByPXQudGltZW91dHMoZSk7cmV0dXJuIG5ldyBuKHIse2ZvcmV2ZXI6ZSYmKGUuZm9yZXZlcnx8ZS5yZXRyaWVzPT09MS8wKSx1bnJlZjplJiZlLnVucmVmLG1heFJldHJ5VGltZTplJiZlLm1heFJldHJ5VGltZX0pfSx0LnRpbWVvdXRzPWZ1bmN0aW9uKGUpe2lmKGUgaW5zdGFuY2VvZiBBcnJheSlyZXR1cm5bXS5jb25jYXQoZSk7dmFyIHQ9e3JldHJpZXM6MTAsZmFjdG9yOjIsbWluVGltZW91dDoxZTMsbWF4VGltZW91dDoxLzAscmFuZG9taXplOiExfTtmb3IodmFyIHIgaW4gZSl0W3JdPWVbcl07aWYodC5taW5UaW1lb3V0PnQubWF4VGltZW91dCl0aHJvdyBuZXcgRXJyb3IoIm1pblRpbWVvdXQgaXMgZ3JlYXRlciB0aGFuIG1heFRpbWVvdXQiKTtmb3IodmFyIG49W10sbz0wO288dC5yZXRyaWVzO28rKyluLnB1c2godGhpcy5jcmVhdGVUaW1lb3V0KG8sdCkpO3JldHVybiBlJiZlLmZvcmV2ZXImJiFuLmxlbmd0aCYmbi5wdXNoKHRoaXMuY3JlYXRlVGltZW91dChvLHQpKSxuLnNvcnQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUtdH0pKSxufSx0LmNyZWF0ZVRpbWVvdXQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj10LnJhbmRvbWl6ZT9NYXRoLnJhbmRvbSgpKzE6MSxuPU1hdGgucm91bmQocipNYXRoLm1heCh0Lm1pblRpbWVvdXQsMSkqTWF0aC5wb3codC5mYWN0b3IsZSkpO3JldHVybiBuPU1hdGgubWluKG4sdC5tYXhUaW1lb3V0KX0sdC53cmFwPWZ1bmN0aW9uKGUscixuKXtpZihyIGluc3RhbmNlb2YgQXJyYXkmJihuPXIscj1udWxsKSwhbilmb3IodmFyIG8gaW4gbj1bXSxlKSJmdW5jdGlvbiI9PXR5cGVvZiBlW29dJiZuLnB1c2gobyk7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBhPW5baV0scz1lW2FdO2VbYV09ZnVuY3Rpb24obil7dmFyIG89dC5vcGVyYXRpb24ociksaT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSksYT1pLnBvcCgpO2kucHVzaCgoZnVuY3Rpb24oZSl7by5yZXRyeShlKXx8KGUmJihhcmd1bWVudHNbMF09by5tYWluRXJyb3IoKSksYS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSkpLG8uYXR0ZW1wdCgoZnVuY3Rpb24oKXtuLmFwcGx5KGUsaSl9KSl9LmJpbmQoZSxzKSxlW2FdLm9wdGlvbnM9cn19fSw5Mzk2MTpmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUsdCl7ImJvb2xlYW4iPT10eXBlb2YgdCYmKHQ9e2ZvcmV2ZXI6dH0pLHRoaXMuX29yaWdpbmFsVGltZW91dHM9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShlKSksdGhpcy5fdGltZW91dHM9ZSx0aGlzLl9vcHRpb25zPXR8fHt9LHRoaXMuX21heFJldHJ5VGltZT10JiZ0Lm1heFJldHJ5VGltZXx8MS8wLHRoaXMuX2ZuPW51bGwsdGhpcy5fZXJyb3JzPVtdLHRoaXMuX2F0dGVtcHRzPTEsdGhpcy5fb3BlcmF0aW9uVGltZW91dD1udWxsLHRoaXMuX29wZXJhdGlvblRpbWVvdXRDYj1udWxsLHRoaXMuX3RpbWVvdXQ9bnVsbCx0aGlzLl9vcGVyYXRpb25TdGFydD1udWxsLHRoaXMuX3RpbWVyPW51bGwsdGhpcy5fb3B0aW9ucy5mb3JldmVyJiYodGhpcy5fY2FjaGVkVGltZW91dHM9dGhpcy5fdGltZW91dHMuc2xpY2UoMCkpfWUuZXhwb3J0cz10LHQucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5fYXR0ZW1wdHM9MSx0aGlzLl90aW1lb3V0cz10aGlzLl9vcmlnaW5hbFRpbWVvdXRzLnNsaWNlKDApfSx0LnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7dGhpcy5fdGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpLHRoaXMuX3RpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpLHRoaXMuX3RpbWVvdXRzPVtdLHRoaXMuX2NhY2hlZFRpbWVvdXRzPW51bGx9LHQucHJvdG90eXBlLnJldHJ5PWZ1bmN0aW9uKGUpe2lmKHRoaXMuX3RpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KSwhZSlyZXR1cm4hMTt2YXIgdD0obmV3IERhdGUpLmdldFRpbWUoKTtpZihlJiZ0LXRoaXMuX29wZXJhdGlvblN0YXJ0Pj10aGlzLl9tYXhSZXRyeVRpbWUpcmV0dXJuIHRoaXMuX2Vycm9ycy5wdXNoKGUpLHRoaXMuX2Vycm9ycy51bnNoaWZ0KG5ldyBFcnJvcigiUmV0cnlPcGVyYXRpb24gdGltZW91dCBvY2N1cnJlZCIpKSwhMTt0aGlzLl9lcnJvcnMucHVzaChlKTt2YXIgcj10aGlzLl90aW1lb3V0cy5zaGlmdCgpO2lmKHZvaWQgMD09PXIpe2lmKCF0aGlzLl9jYWNoZWRUaW1lb3V0cylyZXR1cm4hMTt0aGlzLl9lcnJvcnMuc3BsaWNlKDAsdGhpcy5fZXJyb3JzLmxlbmd0aC0xKSxyPXRoaXMuX2NhY2hlZFRpbWVvdXRzLnNsaWNlKC0xKX12YXIgbj10aGlzO3JldHVybiB0aGlzLl90aW1lcj1zZXRUaW1lb3V0KChmdW5jdGlvbigpe24uX2F0dGVtcHRzKyssbi5fb3BlcmF0aW9uVGltZW91dENiJiYobi5fdGltZW91dD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe24uX29wZXJhdGlvblRpbWVvdXRDYihuLl9hdHRlbXB0cyl9KSxuLl9vcGVyYXRpb25UaW1lb3V0KSxuLl9vcHRpb25zLnVucmVmJiZuLl90aW1lb3V0LnVucmVmKCkpLG4uX2ZuKG4uX2F0dGVtcHRzKX0pLHIpLHRoaXMuX29wdGlvbnMudW5yZWYmJnRoaXMuX3RpbWVyLnVucmVmKCksITB9LHQucHJvdG90eXBlLmF0dGVtcHQ9ZnVuY3Rpb24oZSx0KXt0aGlzLl9mbj1lLHQmJih0LnRpbWVvdXQmJih0aGlzLl9vcGVyYXRpb25UaW1lb3V0PXQudGltZW91dCksdC5jYiYmKHRoaXMuX29wZXJhdGlvblRpbWVvdXRDYj10LmNiKSk7dmFyIHI9dGhpczt0aGlzLl9vcGVyYXRpb25UaW1lb3V0Q2ImJih0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ci5fb3BlcmF0aW9uVGltZW91dENiKCl9KSxyLl9vcGVyYXRpb25UaW1lb3V0KSksdGhpcy5fb3BlcmF0aW9uU3RhcnQ9KG5ldyBEYXRlKS5nZXRUaW1lKCksdGhpcy5fZm4odGhpcy5fYXR0ZW1wdHMpfSx0LnByb3RvdHlwZS50cnk9ZnVuY3Rpb24oZSl7Y29uc29sZS5sb2coIlVzaW5nIFJldHJ5T3BlcmF0aW9uLnRyeSgpIGlzIGRlcHJlY2F0ZWQiKSx0aGlzLmF0dGVtcHQoZSl9LHQucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKGUpe2NvbnNvbGUubG9nKCJVc2luZyBSZXRyeU9wZXJhdGlvbi5zdGFydCgpIGlzIGRlcHJlY2F0ZWQiKSx0aGlzLmF0dGVtcHQoZSl9LHQucHJvdG90eXBlLnN0YXJ0PXQucHJvdG90eXBlLnRyeSx0LnByb3RvdHlwZS5lcnJvcnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZXJyb3JzfSx0LnByb3RvdHlwZS5hdHRlbXB0cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hdHRlbXB0c30sdC5wcm90b3R5cGUubWFpbkVycm9yPWZ1bmN0aW9uKCl7aWYoMD09PXRoaXMuX2Vycm9ycy5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKHZhciBlPXt9LHQ9bnVsbCxyPTAsbj0wO248dGhpcy5fZXJyb3JzLmxlbmd0aDtuKyspe3ZhciBvPXRoaXMuX2Vycm9yc1tuXSxpPW8ubWVzc2FnZSxhPShlW2ldfHwwKSsxO2VbaV09YSxhPj1yJiYodD1vLHI9YSl9cmV0dXJuIHR9fSw2NzA5ODpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuOyFmdW5jdGlvbigpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBvKXt2YXIgbz1mdW5jdGlvbihlKXtyZXR1cm4gZX07by5ub25OYXRpdmU9ITB9Y29uc3QgaT1vKCJwbGFpbnRleHQiKSxhPW8oImh0bWwiKSxzPW8oImNvbW1lbnQiKSxjPS88KFx3Kik+L2csdT0vPFwvPyhbXlxzXC8+XSspLztmdW5jdGlvbiBsKGUsdCxyKXtyZXR1cm4gZChlPWV8fCIiLGYodD10fHxbXSxyPXJ8fCIiKSl9ZnVuY3Rpb24gZihlLHQpe3JldHVybnthbGxvd2FibGVfdGFnczplPWZ1bmN0aW9uKGUpe2xldCB0PW5ldyBTZXQ7aWYoInN0cmluZyI9PXR5cGVvZiBlKXtsZXQgcjtmb3IoO3I9Yy5leGVjKGUpOyl0LmFkZChyWzFdKX1lbHNlIG8ubm9uTmF0aXZlfHwiZnVuY3Rpb24iIT10eXBlb2YgZVtvLml0ZXJhdG9yXT8iZnVuY3Rpb24iPT10eXBlb2YgZS5mb3JFYWNoJiZlLmZvckVhY2godC5hZGQsdCk6dD1uZXcgU2V0KGUpO3JldHVybiB0fShlKSx0YWdfcmVwbGFjZW1lbnQ6dCxzdGF0ZTppLHRhZ19idWZmZXI6IiIsZGVwdGg6MCxpbl9xdW90ZV9jaGFyOiIifX1mdW5jdGlvbiBkKGUsdCl7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIidodG1sJyBwYXJhbWV0ZXIgbXVzdCBiZSBhIHN0cmluZyIpO2xldCByPXQuYWxsb3dhYmxlX3RhZ3Msbj10LnRhZ19yZXBsYWNlbWVudCxvPXQuc3RhdGUsYz10LnRhZ19idWZmZXIsdT10LmRlcHRoLGw9dC5pbl9xdW90ZV9jaGFyLGY9IiI7Zm9yKGxldCB0PTAsZD1lLmxlbmd0aDt0PGQ7dCsrKXtsZXQgZD1lW3RdO2lmKG89PT1pKWlmKCI8Ij09PWQpbz1hLGMrPWQ7ZWxzZSBmKz1kO2Vsc2UgaWYobz09PWEpc3dpdGNoKGQpe2Nhc2UiPCI6aWYobClicmVhazt1Kys7YnJlYWs7Y2FzZSI+IjppZihsKWJyZWFrO2lmKHUpe3UtLTticmVha31sPSIiLG89aSxjKz0iPiIsci5oYXMocChjKSk/Zis9YzpmKz1uLGM9IiI7YnJlYWs7Y2FzZSciJzpjYXNlIiciOmw9ZD09PWw/IiI6bHx8ZCxjKz1kO2JyZWFrO2Nhc2UiLSI6IjwhLSI9PT1jJiYobz1zKSxjKz1kO2JyZWFrO2Nhc2UiICI6Y2FzZSJcbiI6aWYoIjwiPT09Yyl7bz1pLGYrPSI8ICIsYz0iIjticmVha31jKz1kO2JyZWFrO2RlZmF1bHQ6Yys9ZH1lbHNlIGlmKG89PT1zKWlmKCI+Ij09PWQpIi0tIj09Yy5zbGljZSgtMikmJihvPWkpLGM9IiI7ZWxzZSBjKz1kfXJldHVybiB0LnN0YXRlPW8sdC50YWdfYnVmZmVyPWMsdC5kZXB0aD11LHQuaW5fcXVvdGVfY2hhcj1sLGZ9ZnVuY3Rpb24gcChlKXtsZXQgdD11LmV4ZWMoZSk7cmV0dXJuIHQ/dFsxXS50b0xvd2VyQ2FzZSgpOm51bGx9bC5pbml0X3N0cmVhbWluZ19tb2RlPWZ1bmN0aW9uKGUsdCl7bGV0IHI9ZihlPWV8fFtdLHQ9dHx8IiIpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZChlfHwiIixyKX19LHZvaWQgMD09PShuPWZ1bmN0aW9uKCl7cmV0dXJuIGx9LmNhbGwodCxyLHQsZSkpfHwoZS5leHBvcnRzPW4pfSgpfSw4NTE2MDpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoOTY1NDApO3ZhciBvPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuaXM/T2JqZWN0LmlzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10JiYoMCE9PWV8fDEvZT09MS90KXx8ZSE9ZSYmdCE9dH0saT1uLnVzZVN5bmNFeHRlcm5hbFN0b3JlLGE9bi51c2VSZWYscz1uLnVzZUVmZmVjdCxjPW4udXNlTWVtbyx1PW4udXNlRGVidWdWYWx1ZTt0LnVzZVN5bmNFeHRlcm5hbFN0b3JlV2l0aFNlbGVjdG9yPWZ1bmN0aW9uKGUsdCxyLG4sbCl7dmFyIGY9YShudWxsKTtpZihudWxsPT09Zi5jdXJyZW50KXt2YXIgZD17aGFzVmFsdWU6ITEsdmFsdWU6bnVsbH07Zi5jdXJyZW50PWR9ZWxzZSBkPWYuY3VycmVudDtmPWMoKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXtpZighcyl7aWYocz0hMCxpPWUsZT1uKGUpLHZvaWQgMCE9PWwmJmQuaGFzVmFsdWUpe3ZhciB0PWQudmFsdWU7aWYobCh0LGUpKXJldHVybiBhPXR9cmV0dXJuIGE9ZX1pZih0PWEsbyhpLGUpKXJldHVybiB0O3ZhciByPW4oZSk7cmV0dXJuIHZvaWQgMCE9PWwmJmwodCxyKT8oaT1lLHQpOihpPWUsYT1yKX12YXIgaSxhLHM9ITEsYz12b2lkIDA9PT1yP251bGw6cjtyZXR1cm5bZnVuY3Rpb24oKXtyZXR1cm4gZSh0KCkpfSxudWxsPT09Yz92b2lkIDA6ZnVuY3Rpb24oKXtyZXR1cm4gZShjKCkpfV19KSxbdCxyLG4sbF0pO3ZhciBwPWkoZSxmWzBdLGZbMV0pO3JldHVybiBzKChmdW5jdGlvbigpe2QuaGFzVmFsdWU9ITAsZC52YWx1ZT1wfSksW3BdKSx1KHApLHB9fSw3ODQxODpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1yKDg1MTYwKX0sNTgxNjg6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7cmV0dXJuIG49T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcj1hcmd1bWVudHNbdF07Zm9yKHZhciBuIGluIHIpKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsbikmJihlW25dPXJbbl0pfXJldHVybiBlfSxuLmFwcGx5KG51bGwsYXJndW1lbnRzKX1yLmQodCx7QTpmdW5jdGlvbigpe3JldHVybiBufX0pfSwxNTQ1MjpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtjaDpmdW5jdGlvbigpe3JldHVybiBBdH0sVTE6ZnVuY3Rpb24oKXtyZXR1cm4gTWV9LFZQOmZ1bmN0aW9uKCl7cmV0dXJuIHhlfSx6RDpmdW5jdGlvbigpe3JldHVybiBWZX0sTmM6ZnVuY3Rpb24oKXtyZXR1cm4gT3R9LHZ5OmZ1bmN0aW9uKCl7cmV0dXJuIEllfSxaMDpmdW5jdGlvbigpe3JldHVybiBRZX0sc2Y6ZnVuY3Rpb24oKXtyZXR1cm4gemV9fSk7dmFyIG49U3ltYm9sLmZvcigiaW1tZXItbm90aGluZyIpLG89U3ltYm9sLmZvcigiaW1tZXItZHJhZnRhYmxlIiksaT1TeW1ib2wuZm9yKCJpbW1lci1zdGF0ZSIpO2Z1bmN0aW9uIGEoZSwuLi50KXt0aHJvdyBuZXcgRXJyb3IoYFtJbW1lcl0gbWluaWZpZWQgZXJyb3IgbnI6ICR7ZX0uIEZ1bGwgZXJyb3IgYXQ6IGh0dHBzOi8vYml0Lmx5LzNjWEVLV2ZgKX12YXIgcz1PYmplY3QsYz1zLmdldFByb3RvdHlwZU9mLHU9ImNvbnN0cnVjdG9yIixsPSJwcm90b3R5cGUiLGY9ImNvbmZpZ3VyYWJsZSIsZD0iZW51bWVyYWJsZSIscD0id3JpdGFibGUiLF89InZhbHVlIixoPWU9PiEhZSYmISFlW2ldO2Z1bmN0aW9uIG0oZSl7cmV0dXJuISFlJiYodihlKXx8RShlKXx8ISFlW29dfHwhIWVbdV0/LltvXXx8QShlKXx8VChlKSl9dmFyIHk9c1tsXVt1XS50b1N0cmluZygpLGc9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gdihlKXtpZighZXx8IVIoZSkpcmV0dXJuITE7Y29uc3QgdD1jKGUpO2lmKG51bGw9PT10fHx0PT09c1tsXSlyZXR1cm4hMDtjb25zdCByPXMuaGFzT3duUHJvcGVydHkuY2FsbCh0LHUpJiZ0W3VdO2lmKHI9PT1PYmplY3QpcmV0dXJuITA7aWYoIVAocikpcmV0dXJuITE7bGV0IG49Zy5nZXQocik7cmV0dXJuIHZvaWQgMD09PW4mJihuPUZ1bmN0aW9uLnRvU3RyaW5nLmNhbGwociksZy5zZXQocixuKSksbj09PXl9ZnVuY3Rpb24gYihlLHQscj0hMCl7aWYoMD09PXcoZSkpeyhyP1JlZmxlY3Qub3duS2V5cyhlKTpzLmtleXMoZSkpLmZvckVhY2goKHI9Pnt0KHIsZVtyXSxlKX0pKX1lbHNlIGUuZm9yRWFjaCgoKHIsbik9PnQobixyLGUpKSl9ZnVuY3Rpb24gdyhlKXtjb25zdCB0PWVbaV07cmV0dXJuIHQ/dC50eXBlXzpFKGUpPzE6QShlKT8yOlQoZSk/MzowfXZhciBTPShlLHQscj13KGUpKT0+Mj09PXI/ZS5oYXModCk6c1tsXS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCksaz0oZSx0LHI9dyhlKSk9PjI9PT1yP2UuZ2V0KHQpOmVbdF0seD0oZSx0LHIsbj13KGUpKT0+ezI9PT1uP2Uuc2V0KHQscik6Mz09PW4/ZS5hZGQocik6ZVt0XT1yfTt2YXIgRT1BcnJheS5pc0FycmF5LEE9ZT0+ZSBpbnN0YW5jZW9mIE1hcCxUPWU9PmUgaW5zdGFuY2VvZiBTZXQsUj1lPT4ib2JqZWN0Ij09dHlwZW9mIGUsUD1lPT4iZnVuY3Rpb24iPT10eXBlb2YgZSxPPWU9PiJib29sZWFuIj09dHlwZW9mIGU7dmFyIE09ZT0+ZS5jb3B5X3x8ZS5iYXNlXyxGPWU9PmUubW9kaWZpZWRfP2UuY29weV86ZS5iYXNlXztmdW5jdGlvbiBJKGUsdCl7aWYoQShlKSlyZXR1cm4gbmV3IE1hcChlKTtpZihUKGUpKXJldHVybiBuZXcgU2V0KGUpO2lmKEUoZSkpcmV0dXJuIEFycmF5W2xdLnNsaWNlLmNhbGwoZSk7Y29uc3Qgcj12KGUpO2lmKCEwPT09dHx8ImNsYXNzX29ubHkiPT09dCYmIXIpe2NvbnN0IHQ9cy5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGUpO2RlbGV0ZSB0W2ldO2xldCByPVJlZmxlY3Qub3duS2V5cyh0KTtmb3IobGV0IG49MDtuPHIubGVuZ3RoO24rKyl7Y29uc3Qgbz1yW25dLGk9dFtvXTshMT09PWlbcF0mJihpW3BdPSEwLGlbZl09ITApLChpLmdldHx8aS5zZXQpJiYodFtvXT17W2ZdOiEwLFtwXTohMCxbZF06aVtkXSxbX106ZVtvXX0pfXJldHVybiBzLmNyZWF0ZShjKGUpLHQpfXtjb25zdCB0PWMoZSk7aWYobnVsbCE9PXQmJnIpcmV0dXJuey4uLmV9O2NvbnN0IG49cy5jcmVhdGUodCk7cmV0dXJuIHMuYXNzaWduKG4sZSl9fWZ1bmN0aW9uIGooZSx0PSExKXtyZXR1cm4gTChlKXx8aChlKXx8IW0oZSl8fCh3KGUpPjEmJnMuZGVmaW5lUHJvcGVydGllcyhlLHtzZXQ6RCxhZGQ6RCxjbGVhcjpELGRlbGV0ZTpEfSkscy5mcmVlemUoZSksdCYmYihlLCgoZSx0KT0+e2oodCwhMCl9KSwhMSkpLGV9dmFyIEQ9e1tfXTpmdW5jdGlvbigpe2EoMil9fTtmdW5jdGlvbiBMKGUpe3JldHVybiBudWxsPT09ZXx8IVIoZSl8fHMuaXNGcm96ZW4oZSl9dmFyIFU9Ik1hcFNldCIsej0iUGF0Y2hlcyIsQj0iQXJyYXlNZXRob2RzIixIPXt9O2Z1bmN0aW9uIFcoZSl7Y29uc3QgdD1IW2VdO3JldHVybiB0fHxhKDApLHR9dmFyICQscT1lPT4hIUhbZV07dmFyIEc9KCk9PiQ7ZnVuY3Rpb24gVihlLHQpe3QmJihlLnBhdGNoUGx1Z2luXz1XKHopLGUucGF0Y2hlc189W10sZS5pbnZlcnNlUGF0Y2hlc189W10sZS5wYXRjaExpc3RlbmVyXz10KX1mdW5jdGlvbiBZKGUpe0soZSksZS5kcmFmdHNfLmZvckVhY2goWiksZS5kcmFmdHNfPW51bGx9ZnVuY3Rpb24gSyhlKXtlPT09JCYmKCQ9ZS5wYXJlbnRfKX12YXIgWD1lPT4kPXtkcmFmdHNfOltdLHBhcmVudF86JCxpbW1lcl86ZSxjYW5BdXRvRnJlZXplXzohMCx1bmZpbmFsaXplZERyYWZ0c186MCxoYW5kbGVkU2V0XzpuZXcgU2V0LHByb2Nlc3NlZEZvclBhdGNoZXNfOm5ldyBTZXQsbWFwU2V0UGx1Z2luXzpxKFUpP1coVSk6dm9pZCAwLGFycmF5TWV0aG9kc1BsdWdpbl86cShCKT9XKEIpOnZvaWQgMH07ZnVuY3Rpb24gWihlKXtjb25zdCB0PWVbaV07MD09PXQudHlwZV98fDE9PT10LnR5cGVfP3QucmV2b2tlXygpOnQucmV2b2tlZF89ITB9ZnVuY3Rpb24gUShlLHQpe3QudW5maW5hbGl6ZWREcmFmdHNfPXQuZHJhZnRzXy5sZW5ndGg7Y29uc3Qgcj10LmRyYWZ0c19bMF07aWYodm9pZCAwIT09ZSYmZSE9PXIpe3JbaV0ubW9kaWZpZWRfJiYoWSh0KSxhKDQpKSxtKGUpJiYoZT1lZSh0LGUpKTtjb25zdHtwYXRjaFBsdWdpbl86bn09dDtuJiZuLmdlbmVyYXRlUmVwbGFjZW1lbnRQYXRjaGVzXyhyW2ldLmJhc2VfLGUsdCl9ZWxzZSBlPWVlKHQscik7cmV0dXJuIGZ1bmN0aW9uKGUsdCxyPSExKXshZS5wYXJlbnRfJiZlLmltbWVyXy5hdXRvRnJlZXplXyYmZS5jYW5BdXRvRnJlZXplXyYmaih0LHIpfSh0LGUsITApLFkodCksdC5wYXRjaGVzXyYmdC5wYXRjaExpc3RlbmVyXyh0LnBhdGNoZXNfLHQuaW52ZXJzZVBhdGNoZXNfKSxlIT09bj9lOnZvaWQgMH1mdW5jdGlvbiBlZShlLHQpe2lmKEwodCkpcmV0dXJuIHQ7Y29uc3Qgcj10W2ldO2lmKCFyKXtyZXR1cm4gc2UodCxlLmhhbmRsZWRTZXRfLGUpfWlmKCFyZShyLGUpKXJldHVybiB0O2lmKCFyLm1vZGlmaWVkXylyZXR1cm4gci5iYXNlXztpZighci5maW5hbGl6ZWRfKXtjb25zdHtjYWxsYmFja3NfOnR9PXI7aWYodClmb3IoO3QubGVuZ3RoPjA7KXt0LnBvcCgpKGUpfWllKHIsZSl9cmV0dXJuIHIuY29weV99ZnVuY3Rpb24gdGUoZSl7ZS5maW5hbGl6ZWRfPSEwLGUuc2NvcGVfLnVuZmluYWxpemVkRHJhZnRzXy0tfXZhciByZT0oZSx0KT0+ZS5zY29wZV89PT10LG5lPVtdO2Z1bmN0aW9uIG9lKGUsdCxyLG4pe2NvbnN0IG89TShlKSxpPWUudHlwZV87aWYodm9pZCAwIT09bil7aWYoayhvLG4saSk9PT10KXJldHVybiB2b2lkIHgobyxuLHIsaSl9aWYoIWUuZHJhZnRMb2NhdGlvbnNfKXtjb25zdCB0PWUuZHJhZnRMb2NhdGlvbnNfPW5ldyBNYXA7YihvLCgoZSxyKT0+e2lmKGgocikpe2NvbnN0IG49dC5nZXQocil8fFtdO24ucHVzaChlKSx0LnNldChyLG4pfX0pKX1jb25zdCBhPWUuZHJhZnRMb2NhdGlvbnNfLmdldCh0KT8/bmU7Zm9yKGNvbnN0IGUgb2YgYSl4KG8sZSxyLGkpfWZ1bmN0aW9uIGllKGUsdCl7aWYoZS5tb2RpZmllZF8mJiFlLmZpbmFsaXplZF8mJigzPT09ZS50eXBlX3x8MT09PWUudHlwZV8mJmUuYWxsSW5kaWNlc1JlYXNzaWduZWRffHwoZS5hc3NpZ25lZF8/LnNpemU/PzApPjApKXtjb25zdHtwYXRjaFBsdWdpbl86cn09dDtpZihyKXtjb25zdCBuPXIuZ2V0UGF0aChlKTtuJiZyLmdlbmVyYXRlUGF0Y2hlc18oZSxuLHQpfXRlKGUpfX1mdW5jdGlvbiBhZShlLHQscil7Y29uc3R7c2NvcGVfOm59PWU7aWYoaChyKSl7Y29uc3Qgbz1yW2ldO3JlKG8sbikmJm8uY2FsbGJhY2tzXy5wdXNoKChmdW5jdGlvbigpe3BlKGUpO2NvbnN0IG49RihvKTtvZShlLHIsbix0KX0pKX1lbHNlIG0ocikmJmUuY2FsbGJhY2tzXy5wdXNoKChmdW5jdGlvbigpe2NvbnN0IG89TShlKTszPT09ZS50eXBlXz9vLmhhcyhyKSYmc2UocixuLmhhbmRsZWRTZXRfLG4pOmsobyx0LGUudHlwZV8pPT09ciYmbi5kcmFmdHNfLmxlbmd0aD4xJiYhMD09PShlLmFzc2lnbmVkXy5nZXQodCk/PyExKSYmZS5jb3B5XyYmc2UoayhlLmNvcHlfLHQsZS50eXBlXyksbi5oYW5kbGVkU2V0XyxuKX0pKX1mdW5jdGlvbiBzZShlLHQscil7cmV0dXJuIXIuaW1tZXJfLmF1dG9GcmVlemVfJiZyLnVuZmluYWxpemVkRHJhZnRzXzwxfHxoKGUpfHx0LmhhcyhlKXx8IW0oZSl8fEwoZSl8fCh0LmFkZChlKSxiKGUsKChuLG8pPT57aWYoaChvKSl7Y29uc3QgdD1vW2ldO2lmKHJlKHQscikpe2NvbnN0IHI9Rih0KTt4KGUsbixyLGUudHlwZV8pLHRlKHQpfX1lbHNlIG0obykmJnNlKG8sdCxyKX0pKSksZX12YXIgY2U9e2dldChlLHQpe2lmKHQ9PT1pKXJldHVybiBlO2xldCByPWUuc2NvcGVfLmFycmF5TWV0aG9kc1BsdWdpbl87Y29uc3Qgbj0xPT09ZS50eXBlXyYmInN0cmluZyI9PXR5cGVvZiB0O2lmKG4mJnI/LmlzQXJyYXlPcGVyYXRpb25NZXRob2QodCkpcmV0dXJuIHIuY3JlYXRlTWV0aG9kSW50ZXJjZXB0b3IoZSx0KTtjb25zdCBvPU0oZSk7aWYoIVMobyx0LGUudHlwZV8pKXJldHVybiBmdW5jdGlvbihlLHQscil7Y29uc3Qgbj1mZSh0LHIpO3JldHVybiBuP18gaW4gbj9uW19dOm4uZ2V0Py5jYWxsKGUuZHJhZnRfKTp2b2lkIDB9KGUsbyx0KTtjb25zdCBhPW9bdF07aWYoZS5maW5hbGl6ZWRffHwhbShhKSlyZXR1cm4gYTtpZihuJiZlLm9wZXJhdGlvbk1ldGhvZCYmcj8uaXNNdXRhdGluZ0FycmF5TWV0aG9kKGUub3BlcmF0aW9uTWV0aG9kKSYmZnVuY3Rpb24oZSl7Y29uc3QgdD0rZTtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih0KSYmU3RyaW5nKHQpPT09ZX0odCkpcmV0dXJuIGE7aWYoYT09PWxlKGUuYmFzZV8sdCkpe3BlKGUpO2NvbnN0IHI9MT09PWUudHlwZV8/K3Q6dCxuPV9lKGUuc2NvcGVfLGEsZSxyKTtyZXR1cm4gZS5jb3B5X1tyXT1ufXJldHVybiBhfSxoYXMoZSx0KXtyZXR1cm4gdCBpbiBNKGUpfSxvd25LZXlzKGUpe3JldHVybiBSZWZsZWN0Lm93bktleXMoTShlKSl9LHNldChlLHQscil7Y29uc3Qgbj1mZShNKGUpLHQpO2lmKG4/LnNldClyZXR1cm4gbi5zZXQuY2FsbChlLmRyYWZ0XyxyKSwhMDtpZighZS5tb2RpZmllZF8pe2NvbnN0IG49bGUoTShlKSx0KSxzPW4/LltpXTtpZihzJiZzLmJhc2VfPT09cilyZXR1cm4gZS5jb3B5X1t0XT1yLGUuYXNzaWduZWRfLnNldCh0LCExKSwhMDtpZigoKG89cik9PT0oYT1uKT8wIT09b3x8MS9vPT0xL2E6byE9byYmYSE9YSkmJih2b2lkIDAhPT1yfHxTKGUuYmFzZV8sdCxlLnR5cGVfKSkpcmV0dXJuITA7cGUoZSksZGUoZSl9dmFyIG8sYTtyZXR1cm4gZS5jb3B5X1t0XT09PXImJih2b2lkIDAhPT1yfHx0IGluIGUuY29weV8pfHxOdW1iZXIuaXNOYU4ocikmJk51bWJlci5pc05hTihlLmNvcHlfW3RdKXx8KGUuY29weV9bdF09cixlLmFzc2lnbmVkXy5zZXQodCwhMCksYWUoZSx0LHIpKSwhMH0sZGVsZXRlUHJvcGVydHkoZSx0KXtyZXR1cm4gcGUoZSksdm9pZCAwIT09bGUoZS5iYXNlXyx0KXx8dCBpbiBlLmJhc2VfPyhlLmFzc2lnbmVkXy5zZXQodCwhMSksZGUoZSkpOmUuYXNzaWduZWRfLmRlbGV0ZSh0KSxlLmNvcHlfJiZkZWxldGUgZS5jb3B5X1t0XSwhMH0sZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCl7Y29uc3Qgcj1NKGUpLG49UmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iocix0KTtyZXR1cm4gbj97W3BdOiEwLFtmXToxIT09ZS50eXBlX3x8Imxlbmd0aCIhPT10LFtkXTpuW2RdLFtfXTpyW3RdfTpufSxkZWZpbmVQcm9wZXJ0eSgpe2EoMTEpfSxnZXRQcm90b3R5cGVPZihlKXtyZXR1cm4gYyhlLmJhc2VfKX0sc2V0UHJvdG90eXBlT2YoKXthKDEyKX19LHVlPXt9O2ZvcihsZXQgZSBpbiBjZSl7bGV0IHQ9Y2VbZV07dWVbZV09ZnVuY3Rpb24oKXtjb25zdCBlPWFyZ3VtZW50cztyZXR1cm4gZVswXT1lWzBdWzBdLHQuYXBwbHkodGhpcyxlKX19ZnVuY3Rpb24gbGUoZSx0KXtjb25zdCByPWVbaV07cmV0dXJuKHI/TShyKTplKVt0XX1mdW5jdGlvbiBmZShlLHQpe2lmKCEodCBpbiBlKSlyZXR1cm47bGV0IHI9YyhlKTtmb3IoO3I7KXtjb25zdCBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iocix0KTtpZihlKXJldHVybiBlO3I9YyhyKX19ZnVuY3Rpb24gZGUoZSl7ZS5tb2RpZmllZF98fChlLm1vZGlmaWVkXz0hMCxlLnBhcmVudF8mJmRlKGUucGFyZW50XykpfWZ1bmN0aW9uIHBlKGUpe2UuY29weV98fChlLmFzc2lnbmVkXz1uZXcgTWFwLGUuY29weV89SShlLmJhc2VfLGUuc2NvcGVfLmltbWVyXy51c2VTdHJpY3RTaGFsbG93Q29weV8pKX11ZS5kZWxldGVQcm9wZXJ0eT1mdW5jdGlvbihlLHQpe3JldHVybiB1ZS5zZXQuY2FsbCh0aGlzLGUsdCx2b2lkIDApfSx1ZS5zZXQ9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBjZS5zZXQuY2FsbCh0aGlzLGVbMF0sdCxyLGVbMF0pfTtmdW5jdGlvbiBfZShlLHQscixuKXtjb25zdFtvLGldPUEodCk/VyhVKS5wcm94eU1hcF8odCxyKTpUKHQpP1coVSkucHJveHlTZXRfKHQscik6ZnVuY3Rpb24oZSx0KXtjb25zdCByPUUoZSksbj17dHlwZV86cj8xOjAsc2NvcGVfOnQ/dC5zY29wZV86RygpLG1vZGlmaWVkXzohMSxmaW5hbGl6ZWRfOiExLGFzc2lnbmVkXzp2b2lkIDAscGFyZW50Xzp0LGJhc2VfOmUsZHJhZnRfOm51bGwsY29weV86bnVsbCxyZXZva2VfOm51bGwsaXNNYW51YWxfOiExLGNhbGxiYWNrc186dm9pZCAwfTtsZXQgbz1uLGk9Y2U7ciYmKG89W25dLGk9dWUpO2NvbnN0e3Jldm9rZTphLHByb3h5OnN9PVByb3h5LnJldm9jYWJsZShvLGkpO3JldHVybiBuLmRyYWZ0Xz1zLG4ucmV2b2tlXz1hLFtzLG5dfSh0LHIpO3JldHVybihyPy5zY29wZV8/P0coKSkuZHJhZnRzXy5wdXNoKG8pLGkuY2FsbGJhY2tzXz1yPy5jYWxsYmFja3NfPz9bXSxpLmtleV89bixyJiZ2b2lkIDAhPT1uP2Z1bmN0aW9uKGUsdCxyKXtlLmNhbGxiYWNrc18ucHVzaCgoZnVuY3Rpb24obil7Y29uc3Qgbz10O2lmKCFvfHwhcmUobyxuKSlyZXR1cm47bi5tYXBTZXRQbHVnaW5fPy5maXhTZXRDb250ZW50cyhvKTtjb25zdCBpPUYobyk7b2UoZSxvLmRyYWZ0Xz8/byxpLHIpLGllKG8sbil9KSl9KHIsaSxuKTppLmNhbGxiYWNrc18ucHVzaCgoZnVuY3Rpb24oZSl7ZS5tYXBTZXRQbHVnaW5fPy5maXhTZXRDb250ZW50cyhpKTtjb25zdHtwYXRjaFBsdWdpbl86dH09ZTtpLm1vZGlmaWVkXyYmdCYmdC5nZW5lcmF0ZVBhdGNoZXNfKGksW10sZSl9KSksb31mdW5jdGlvbiBoZShlKXtpZighbShlKXx8TChlKSlyZXR1cm4gZTtjb25zdCB0PWVbaV07bGV0IHIsbj0hMDtpZih0KXtpZighdC5tb2RpZmllZF8pcmV0dXJuIHQuYmFzZV87dC5maW5hbGl6ZWRfPSEwLHI9SShlLHQuc2NvcGVfLmltbWVyXy51c2VTdHJpY3RTaGFsbG93Q29weV8pLG49dC5zY29wZV8uaW1tZXJfLnNob3VsZFVzZVN0cmljdEl0ZXJhdGlvbigpfWVsc2Ugcj1JKGUsITApO3JldHVybiBiKHIsKChlLHQpPT57eChyLGUsaGUodCkpfSksbiksdCYmKHQuZmluYWxpemVkXz0hMSkscn12YXIgbWU9bmV3IGNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuYXV0b0ZyZWV6ZV89ITAsdGhpcy51c2VTdHJpY3RTaGFsbG93Q29weV89ITEsdGhpcy51c2VTdHJpY3RJdGVyYXRpb25fPSExLHRoaXMucHJvZHVjZT0oZSx0LHIpPT57aWYoUChlKSYmIVAodCkpe2NvbnN0IHI9dDt0PWU7Y29uc3Qgbj10aGlzO3JldHVybiBmdW5jdGlvbihlPXIsLi4ubyl7cmV0dXJuIG4ucHJvZHVjZShlLChlPT50LmNhbGwodGhpcyxlLC4uLm8pKSl9fWxldCBvO2lmKFAodCl8fGEoNiksdm9pZCAwPT09cnx8UChyKXx8YSg3KSxtKGUpKXtjb25zdCBuPVgodGhpcyksaT1fZShuLGUsdm9pZCAwKTtsZXQgYT0hMDt0cnl7bz10KGkpLGE9ITF9ZmluYWxseXthP1kobik6SyhuKX1yZXR1cm4gVihuLHIpLFEobyxuKX1pZighZXx8IVIoZSkpe2lmKG89dChlKSx2b2lkIDA9PT1vJiYobz1lKSxvPT09biYmKG89dm9pZCAwKSx0aGlzLmF1dG9GcmVlemVfJiZqKG8sITApLHIpe2NvbnN0IHQ9W10sbj1bXTtXKHopLmdlbmVyYXRlUmVwbGFjZW1lbnRQYXRjaGVzXyhlLG8se3BhdGNoZXNfOnQsaW52ZXJzZVBhdGNoZXNfOm59KSxyKHQsbil9cmV0dXJuIG99YSgxKX0sdGhpcy5wcm9kdWNlV2l0aFBhdGNoZXM9KGUsdCk9PntpZihQKGUpKXJldHVybih0LC4uLnIpPT50aGlzLnByb2R1Y2VXaXRoUGF0Y2hlcyh0LCh0PT5lKHQsLi4ucikpKTtsZXQgcixuO3JldHVyblt0aGlzLnByb2R1Y2UoZSx0LCgoZSx0KT0+e3I9ZSxuPXR9KSkscixuXX0sTyhlPy5hdXRvRnJlZXplKSYmdGhpcy5zZXRBdXRvRnJlZXplKGUuYXV0b0ZyZWV6ZSksTyhlPy51c2VTdHJpY3RTaGFsbG93Q29weSkmJnRoaXMuc2V0VXNlU3RyaWN0U2hhbGxvd0NvcHkoZS51c2VTdHJpY3RTaGFsbG93Q29weSksTyhlPy51c2VTdHJpY3RJdGVyYXRpb24pJiZ0aGlzLnNldFVzZVN0cmljdEl0ZXJhdGlvbihlLnVzZVN0cmljdEl0ZXJhdGlvbil9Y3JlYXRlRHJhZnQoZSl7bShlKXx8YSg4KSxoKGUpJiYoZT1mdW5jdGlvbihlKXtoKGUpfHxhKDEwKTtyZXR1cm4gaGUoZSl9KGUpKTtjb25zdCB0PVgodGhpcykscj1fZSh0LGUsdm9pZCAwKTtyZXR1cm4gcltpXS5pc01hbnVhbF89ITAsSyh0KSxyfWZpbmlzaERyYWZ0KGUsdCl7Y29uc3Qgcj1lJiZlW2ldO3ImJnIuaXNNYW51YWxffHxhKDkpO2NvbnN0e3Njb3BlXzpufT1yO3JldHVybiBWKG4sdCksUSh2b2lkIDAsbil9c2V0QXV0b0ZyZWV6ZShlKXt0aGlzLmF1dG9GcmVlemVfPWV9c2V0VXNlU3RyaWN0U2hhbGxvd0NvcHkoZSl7dGhpcy51c2VTdHJpY3RTaGFsbG93Q29weV89ZX1zZXRVc2VTdHJpY3RJdGVyYXRpb24oZSl7dGhpcy51c2VTdHJpY3RJdGVyYXRpb25fPWV9c2hvdWxkVXNlU3RyaWN0SXRlcmF0aW9uKCl7cmV0dXJuIHRoaXMudXNlU3RyaWN0SXRlcmF0aW9uX31hcHBseVBhdGNoZXMoZSx0KXtsZXQgcjtmb3Iocj10Lmxlbmd0aC0xO3I+PTA7ci0tKXtjb25zdCBuPXRbcl07aWYoMD09PW4ucGF0aC5sZW5ndGgmJiJyZXBsYWNlIj09PW4ub3Ape2U9bi52YWx1ZTticmVha319cj4tMSYmKHQ9dC5zbGljZShyKzEpKTtjb25zdCBuPVcoeikuYXBwbHlQYXRjaGVzXztyZXR1cm4gaChlKT9uKGUsdCk6dGhpcy5wcm9kdWNlKGUsKGU9Pm4oZSx0KSkpfX0seWU9bWUucHJvZHVjZSxnZT1yKDE0NjQ0KTtmdW5jdGlvbiB2ZShlKXtyZXR1cm4oe2Rpc3BhdGNoOnQsZ2V0U3RhdGU6cn0pPT5uPT5vPT4iZnVuY3Rpb24iPT10eXBlb2Ygbz9vKHQscixlKTpuKG8pfXZhciBiZT12ZSgpLHdlPXZlLFNlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fQ09NUE9TRV9fP3dpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX186ZnVuY3Rpb24oKXtpZigwIT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGFyZ3VtZW50c1swXT9nZS5aejpnZS5aei5hcHBseShudWxsLGFyZ3VtZW50cyl9LGtlPSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18mJndpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fLGU9PmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLm1hdGNoKTtmdW5jdGlvbiB4ZShlLHQpe2Z1bmN0aW9uIHIoLi4ucil7aWYodCl7bGV0IG49dCguLi5yKTtpZighbil0aHJvdyBuZXcgRXJyb3IoTnQoMCkpO3JldHVybnt0eXBlOmUscGF5bG9hZDpuLnBheWxvYWQsLi4uIm1ldGEiaW4gbiYme21ldGE6bi5tZXRhfSwuLi4iZXJyb3IiaW4gbiYme2Vycm9yOm4uZXJyb3J9fX1yZXR1cm57dHlwZTplLHBheWxvYWQ6clswXX19cmV0dXJuIHIudG9TdHJpbmc9KCk9PmAke2V9YCxyLnR5cGU9ZSxyLm1hdGNoPXQ9PigwLGdlLnZlKSh0KSYmdC50eXBlPT09ZSxyfXZhciBFZT1jbGFzcyBfVHVwbGUgZXh0ZW5kcyBBcnJheXtjb25zdHJ1Y3RvciguLi5lKXtzdXBlciguLi5lKSxPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxfVHVwbGUucHJvdG90eXBlKX1zdGF0aWMgZ2V0W1N5bWJvbC5zcGVjaWVzXSgpe3JldHVybiBfVHVwbGV9Y29uY2F0KC4uLmUpe3JldHVybiBzdXBlci5jb25jYXQuYXBwbHkodGhpcyxlKX1wcmVwZW5kKC4uLmUpe3JldHVybiAxPT09ZS5sZW5ndGgmJkFycmF5LmlzQXJyYXkoZVswXSk/bmV3IF9UdXBsZSguLi5lWzBdLmNvbmNhdCh0aGlzKSk6bmV3IF9UdXBsZSguLi5lLmNvbmNhdCh0aGlzKSl9fTtmdW5jdGlvbiBDZShlKXtyZXR1cm4gbShlKT95ZShlLCgoKT0+e30pKTplfWZ1bmN0aW9uIEFlKGUsdCxyKXtyZXR1cm4gZS5oYXModCk/ZS5nZXQodCk6ZS5zZXQodCxyKHQpKS5nZXQodCl9dmFyIFRlPSgpPT5mdW5jdGlvbihlKXtjb25zdHt0aHVuazp0PSEwLGltbXV0YWJsZUNoZWNrOnI9ITAsc2VyaWFsaXphYmxlQ2hlY2s6bj0hMCxhY3Rpb25DcmVhdG9yQ2hlY2s6bz0hMH09ZT8/e307bGV0IGk9bmV3IEVlO3JldHVybiB0JiYoImJvb2xlYW4iPT10eXBlb2YgdD9pLnB1c2goYmUpOmkucHVzaCh3ZSh0LmV4dHJhQXJndW1lbnQpKSksaX0sUmU9IlJUS19hdXRvQmF0Y2giLFBlPWU9PnQ9PntzZXRUaW1lb3V0KHQsZSl9LE9lPShlPXt0eXBlOiJyYWYifSk9PnQ9PiguLi5yKT0+e2NvbnN0IG49dCguLi5yKTtsZXQgbz0hMCxpPSExLGE9ITE7Y29uc3Qgcz1uZXcgU2V0LGM9InRpY2siPT09ZS50eXBlP3F1ZXVlTWljcm90YXNrOiJyYWYiPT09ZS50eXBlPyJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lPyh1PXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUsbD0xMDAsZT0+e2xldCB0PSExO2NvbnN0IHI9KCk9Pnt0fHwodD0hMCxjYW5jZWxBbmltYXRpb25GcmFtZShuKSxjbGVhclRpbWVvdXQobyksZSgpKX0sbj11KHIpLG89c2V0VGltZW91dChyLGwpfSk6UGUoMTApOiJjYWxsYmFjayI9PT1lLnR5cGU/ZS5xdWV1ZU5vdGlmaWNhdGlvbjpQZShlLnRpbWVvdXQpO3ZhciB1LGw7Y29uc3QgZj0oKT0+e2E9ITEsaSYmKGk9ITEscy5mb3JFYWNoKChlPT5lKCkpKSl9O3JldHVybiBPYmplY3QuYXNzaWduKHt9LG4se3N1YnNjcmliZShlKXtjb25zdCB0PW4uc3Vic2NyaWJlKCgoKT0+byYmZSgpKSk7cmV0dXJuIHMuYWRkKGUpLCgpPT57dCgpLHMuZGVsZXRlKGUpfX0sZGlzcGF0Y2goZSl7dHJ5e3JldHVybiBvPSFlPy5tZXRhPy5bUmVdLGk9IW8saSYmKGF8fChhPSEwLGMoZikpKSxuLmRpc3BhdGNoKGUpfWZpbmFsbHl7bz0hMH19fSl9LE5lPWU9PmZ1bmN0aW9uKHQpe2NvbnN0e2F1dG9CYXRjaDpyPSEwfT10Pz97fTtsZXQgbj1uZXcgRWUoZSk7cmV0dXJuIHImJm4ucHVzaChPZSgib2JqZWN0Ij09dHlwZW9mIHI/cjp2b2lkIDApKSxufTtmdW5jdGlvbiBNZShlKXtjb25zdCB0PVRlKCkse3JlZHVjZXI6cixtaWRkbGV3YXJlOm4sZGV2VG9vbHM6bz0hMCxkdXBsaWNhdGVNaWRkbGV3YXJlQ2hlY2s6aT0hMCxwcmVsb2FkZWRTdGF0ZTphLGVuaGFuY2VyczpzfT1lfHx7fTtsZXQgYyx1O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiByKWM9cjtlbHNle2lmKCEoMCxnZS5RZCkocikpdGhyb3cgbmV3IEVycm9yKE50KDEpKTtjPSgwLGdlLkhZKShyKX11PSJmdW5jdGlvbiI9PXR5cGVvZiBuP24odCk6dCgpO2xldCBsPWdlLlp6O28mJihsPVNlKHt0cmFjZTohMSwuLi4ib2JqZWN0Ij09dHlwZW9mIG8mJm99KSk7Y29uc3QgZj0oMCxnZS5UdykoLi4udSksZD1OZShmKTtjb25zdCBwPWwoLi4uImZ1bmN0aW9uIj09dHlwZW9mIHM/cyhkKTpkKCkpO3JldHVybigwLGdlLnkkKShjLGEscCl9ZnVuY3Rpb24gRmUoZSl7Y29uc3QgdD17fSxyPVtdO2xldCBuO2NvbnN0IG89e2FkZENhc2UoZSxyKXtjb25zdCBuPSJzdHJpbmciPT10eXBlb2YgZT9lOmUudHlwZTtpZighbil0aHJvdyBuZXcgRXJyb3IoTnQoMjgpKTtpZihuIGluIHQpdGhyb3cgbmV3IEVycm9yKE50KDI5KSk7cmV0dXJuIHRbbl09cixvfSxhZGRBc3luY1RodW5rKGUsbil7cmV0dXJuIG4ucGVuZGluZyYmKHRbZS5wZW5kaW5nLnR5cGVdPW4ucGVuZGluZyksbi5yZWplY3RlZCYmKHRbZS5yZWplY3RlZC50eXBlXT1uLnJlamVjdGVkKSxuLmZ1bGZpbGxlZCYmKHRbZS5mdWxmaWxsZWQudHlwZV09bi5mdWxmaWxsZWQpLG4uc2V0dGxlZCYmci5wdXNoKHttYXRjaGVyOmUuc2V0dGxlZCxyZWR1Y2VyOm4uc2V0dGxlZH0pLG99LGFkZE1hdGNoZXIoZSx0KXtyZXR1cm4gci5wdXNoKHttYXRjaGVyOmUscmVkdWNlcjp0fSksb30sYWRkRGVmYXVsdENhc2UoZSl7cmV0dXJuIG49ZSxvfX07cmV0dXJuIGUobyksW3QscixuXX1mdW5jdGlvbiBJZShlLHQpe2xldCByLFtuLG8saV09RmUodCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUpcj0oKT0+Q2UoZSgpKTtlbHNle2NvbnN0IHQ9Q2UoZSk7cj0oKT0+dH1mdW5jdGlvbiBhKGU9cigpLHQpe2xldCBhPVtuW3QudHlwZV0sLi4uby5maWx0ZXIoKCh7bWF0Y2hlcjplfSk9PmUodCkpKS5tYXAoKCh7cmVkdWNlcjplfSk9PmUpKV07cmV0dXJuIDA9PT1hLmZpbHRlcigoZT0+ISFlKSkubGVuZ3RoJiYoYT1baV0pLGEucmVkdWNlKCgoZSxyKT0+e2lmKHIpe2lmKGgoZSkpe2NvbnN0IG49cihlLHQpO3JldHVybiB2b2lkIDA9PT1uP2U6bn1pZihtKGUpKXJldHVybiB5ZShlLChlPT5yKGUsdCkpKTt7Y29uc3Qgbj1yKGUsdCk7aWYodm9pZCAwPT09bil7aWYobnVsbD09PWUpcmV0dXJuIGU7dGhyb3cgRXJyb3IoIkEgY2FzZSByZWR1Y2VyIG9uIGEgbm9uLWRyYWZ0YWJsZSB2YWx1ZSBtdXN0IG5vdCByZXR1cm4gdW5kZWZpbmVkIil9cmV0dXJuIG59fXJldHVybiBlfSksZSl9cmV0dXJuIGEuZ2V0SW5pdGlhbFN0YXRlPXIsYX12YXIgamU9KGUsdCk9PmtlKGUpP2UubWF0Y2godCk6ZSh0KTtmdW5jdGlvbiBEZSguLi5lKXtyZXR1cm4gdD0+ZS5zb21lKChlPT5qZShlLHQpKSl9ZnVuY3Rpb24gTGUoZSx0KXtpZighZXx8IWUubWV0YSlyZXR1cm4hMTtjb25zdCByPSJzdHJpbmciPT10eXBlb2YgZS5tZXRhLnJlcXVlc3RJZCxuPXQuaW5kZXhPZihlLm1ldGEucmVxdWVzdFN0YXR1cyk+LTE7cmV0dXJuIHImJm59ZnVuY3Rpb24gVWUoZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGVbMF0mJiJwZW5kaW5nImluIGVbMF0mJiJmdWxmaWxsZWQiaW4gZVswXSYmInJlamVjdGVkImluIGVbMF19ZnVuY3Rpb24gemUoLi4uZSl7cmV0dXJuIDA9PT1lLmxlbmd0aD9lPT5MZShlLFsiZnVsZmlsbGVkIl0pOlVlKGUpP0RlKC4uLmUubWFwKChlPT5lLmZ1bGZpbGxlZCkpKTp6ZSgpKGVbMF0pfXZhciBCZT0oZT0yMSk9PntsZXQgdD0iIixyPWU7Zm9yKDtyLS07KXQrPSJNb2R1bGVTeW1iaGFzT3duUHItMDEyMzQ1Njc4OUFCQ0RFRkdITlJWZmdjdGlVdnpfS3FZVEprTHhwWlhJalFXIls2NCpNYXRoLnJhbmRvbSgpfDBdO3JldHVybiB0fSxIZT1bIm5hbWUiLCJtZXNzYWdlIiwic3RhY2siLCJjb2RlIl0sV2U9Y2xhc3N7Y29uc3RydWN0b3IoZSx0KXt0aGlzLnBheWxvYWQ9ZSx0aGlzLm1ldGE9dH1wYXlsb2FkO21ldGE7X3R5cGV9LCRlPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5wYXlsb2FkPWUsdGhpcy5tZXRhPXR9cGF5bG9hZDttZXRhO190eXBlfSxxZT1lPT57aWYoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSl7Y29uc3QgdD17fTtmb3IoY29uc3QgciBvZiBIZSkic3RyaW5nIj09dHlwZW9mIGVbcl0mJih0W3JdPWVbcl0pO3JldHVybiB0fXJldHVybnttZXNzYWdlOlN0cmluZyhlKX19LEdlPSJFeHRlcm5hbCBzaWduYWwgd2FzIGFib3J0ZWQiLFZlPSgoKT0+e2Z1bmN0aW9uIGUoZSx0LHIpe2NvbnN0IG49eGUoZSsiL2Z1bGZpbGxlZCIsKChlLHQscixuKT0+KHtwYXlsb2FkOmUsbWV0YTp7Li4ubnx8e30sYXJnOnIscmVxdWVzdElkOnQscmVxdWVzdFN0YXR1czoiZnVsZmlsbGVkIn19KSkpLG89eGUoZSsiL3BlbmRpbmciLCgoZSx0LHIpPT4oe3BheWxvYWQ6dm9pZCAwLG1ldGE6ey4uLnJ8fHt9LGFyZzp0LHJlcXVlc3RJZDplLHJlcXVlc3RTdGF0dXM6InBlbmRpbmcifX0pKSksaT14ZShlKyIvcmVqZWN0ZWQiLCgoZSx0LG4sbyxpKT0+KHtwYXlsb2FkOm8sZXJyb3I6KHImJnIuc2VyaWFsaXplRXJyb3J8fHFlKShlfHwiUmVqZWN0ZWQiKSxtZXRhOnsuLi5pfHx7fSxhcmc6bixyZXF1ZXN0SWQ6dCxyZWplY3RlZFdpdGhWYWx1ZTohIW8scmVxdWVzdFN0YXR1czoicmVqZWN0ZWQiLGFib3J0ZWQ6IkFib3J0RXJyb3IiPT09ZT8ubmFtZSxjb25kaXRpb246IkNvbmRpdGlvbkVycm9yIj09PWU/Lm5hbWV9fSkpKTtyZXR1cm4gT2JqZWN0LmFzc2lnbigoZnVuY3Rpb24oZSx7c2lnbmFsOmF9PXt9KXtyZXR1cm4ocyxjLHUpPT57Y29uc3QgbD1yPy5pZEdlbmVyYXRvcj9yLmlkR2VuZXJhdG9yKGUpOkJlKCksZj1uZXcgQWJvcnRDb250cm9sbGVyO2xldCBkLHA7ZnVuY3Rpb24gXyhlKXtwPWUsZi5hYm9ydCgpfWEmJihhLmFib3J0ZWQ/XyhHZSk6YS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsKCgpPT5fKEdlKSkse29uY2U6ITB9KSk7Y29uc3QgaD1hc3luYyBmdW5jdGlvbigpe2xldCBhO3RyeXtsZXQgaT1yPy5jb25kaXRpb24/LihlLHtnZXRTdGF0ZTpjLGV4dHJhOnV9KTtpZihudWxsIT09KGg9aSkmJiJvYmplY3QiPT10eXBlb2YgaCYmImZ1bmN0aW9uIj09dHlwZW9mIGgudGhlbiYmKGk9YXdhaXQgaSksITE9PT1pfHxmLnNpZ25hbC5hYm9ydGVkKXRocm93e25hbWU6IkNvbmRpdGlvbkVycm9yIixtZXNzYWdlOiJBYm9ydGVkIGR1ZSB0byBjb25kaXRpb24gY2FsbGJhY2sgcmV0dXJuaW5nIGZhbHNlLiJ9O2NvbnN0IG09bmV3IFByb21pc2UoKChlLHQpPT57ZD0oKT0+e3Qoe25hbWU6IkFib3J0RXJyb3IiLG1lc3NhZ2U6cHx8IkFib3J0ZWQifSl9LGYuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixkLHtvbmNlOiEwfSl9KSk7cyhvKGwsZSxyPy5nZXRQZW5kaW5nTWV0YT8uKHtyZXF1ZXN0SWQ6bCxhcmc6ZX0se2dldFN0YXRlOmMsZXh0cmE6dX0pKSksYT1hd2FpdCBQcm9taXNlLnJhY2UoW20sUHJvbWlzZS5yZXNvbHZlKHQoZSx7ZGlzcGF0Y2g6cyxnZXRTdGF0ZTpjLGV4dHJhOnUscmVxdWVzdElkOmwsc2lnbmFsOmYuc2lnbmFsLGFib3J0Ol8scmVqZWN0V2l0aFZhbHVlOihlLHQpPT5uZXcgV2UoZSx0KSxmdWxmaWxsV2l0aFZhbHVlOihlLHQpPT5uZXcgJGUoZSx0KX0pKS50aGVuKCh0PT57aWYodCBpbnN0YW5jZW9mIFdlKXRocm93IHQ7cmV0dXJuIHQgaW5zdGFuY2VvZiAkZT9uKHQucGF5bG9hZCxsLGUsdC5tZXRhKTpuKHQsbCxlKX0pKV0pfWNhdGNoKHQpe2E9dCBpbnN0YW5jZW9mIFdlP2kobnVsbCxsLGUsdC5wYXlsb2FkLHQubWV0YSk6aSh0LGwsZSl9ZmluYWxseXtkJiZmLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsZCl9dmFyIGg7cmV0dXJuIHImJiFyLmRpc3BhdGNoQ29uZGl0aW9uUmVqZWN0aW9uJiZpLm1hdGNoKGEpJiZhLm1ldGEuY29uZGl0aW9ufHxzKGEpLGF9KCk7cmV0dXJuIE9iamVjdC5hc3NpZ24oaCx7YWJvcnQ6XyxyZXF1ZXN0SWQ6bCxhcmc6ZSx1bndyYXAoKXtyZXR1cm4gaC50aGVuKFllKX19KX19KSx7cGVuZGluZzpvLHJlamVjdGVkOmksZnVsZmlsbGVkOm4sc2V0dGxlZDpEZShpLG4pLHR5cGVQcmVmaXg6ZX0pfXJldHVybiBlLndpdGhUeXBlcz0oKT0+ZSxlfSkoKTtmdW5jdGlvbiBZZShlKXtpZihlLm1ldGEmJmUubWV0YS5yZWplY3RlZFdpdGhWYWx1ZSl0aHJvdyBlLnBheWxvYWQ7aWYoZS5lcnJvcil0aHJvdyBlLmVycm9yO3JldHVybiBlLnBheWxvYWR9dmFyIEtlPVN5bWJvbC5mb3IoInJ0ay1zbGljZS1jcmVhdGVhc3luY3RodW5rIik7ZnVuY3Rpb24gSmUoZSx0KXtyZXR1cm5gJHtlfS8ke3R9YH1mdW5jdGlvbiBYZSh7Y3JlYXRvcnM6ZX09e30pe2NvbnN0IHQ9ZT8uYXN5bmNUaHVuaz8uW0tlXTtyZXR1cm4gZnVuY3Rpb24oZSl7Y29uc3R7bmFtZTpyLHJlZHVjZXJQYXRoOm49cn09ZTtpZighcil0aHJvdyBuZXcgRXJyb3IoTnQoMTEpKTtjb25zdCBvPSgiZnVuY3Rpb24iPT10eXBlb2YgZS5yZWR1Y2Vycz9lLnJlZHVjZXJzKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe3JldHVybntfcmVkdWNlckRlZmluaXRpb25UeXBlOiJhc3luY1RodW5rIixwYXlsb2FkQ3JlYXRvcjplLC4uLnR9fXJldHVybiBlLndpdGhUeXBlcz0oKT0+ZSx7cmVkdWNlcihlKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7W2UubmFtZV0oLi4udCl7cmV0dXJuIGUoLi4udCl9fVtlLm5hbWVdLHtfcmVkdWNlckRlZmluaXRpb25UeXBlOiJyZWR1Y2VyIn0pfSxwcmVwYXJlZFJlZHVjZXIoZSx0KXtyZXR1cm57X3JlZHVjZXJEZWZpbml0aW9uVHlwZToicmVkdWNlcldpdGhQcmVwYXJlIixwcmVwYXJlOmUscmVkdWNlcjp0fX0sYXN5bmNUaHVuazplfX0oKSk6ZS5yZWR1Y2Vycyl8fHt9LGk9T2JqZWN0LmtleXMobyksYT17c2xpY2VDYXNlUmVkdWNlcnNCeU5hbWU6e30sc2xpY2VDYXNlUmVkdWNlcnNCeVR5cGU6e30sYWN0aW9uQ3JlYXRvcnM6e30sc2xpY2VNYXRjaGVyczpbXX0scz17YWRkQ2FzZShlLHQpe2NvbnN0IHI9InN0cmluZyI9PXR5cGVvZiBlP2U6ZS50eXBlO2lmKCFyKXRocm93IG5ldyBFcnJvcihOdCgxMikpO2lmKHIgaW4gYS5zbGljZUNhc2VSZWR1Y2Vyc0J5VHlwZSl0aHJvdyBuZXcgRXJyb3IoTnQoMTMpKTtyZXR1cm4gYS5zbGljZUNhc2VSZWR1Y2Vyc0J5VHlwZVtyXT10LHN9LGFkZE1hdGNoZXIoZSx0KXtyZXR1cm4gYS5zbGljZU1hdGNoZXJzLnB1c2goe21hdGNoZXI6ZSxyZWR1Y2VyOnR9KSxzfSxleHBvc2VBY3Rpb24oZSx0KXtyZXR1cm4gYS5hY3Rpb25DcmVhdG9yc1tlXT10LHN9LGV4cG9zZUNhc2VSZWR1Y2VyKGUsdCl7cmV0dXJuIGEuc2xpY2VDYXNlUmVkdWNlcnNCeU5hbWVbZV09dCxzfX07ZnVuY3Rpb24gYygpe2NvbnN0W3Q9e30scj1bXSxuXT0iZnVuY3Rpb24iPT10eXBlb2YgZS5leHRyYVJlZHVjZXJzP0ZlKGUuZXh0cmFSZWR1Y2Vycyk6W2UuZXh0cmFSZWR1Y2Vyc10sbz17Li4udCwuLi5hLnNsaWNlQ2FzZVJlZHVjZXJzQnlUeXBlfTtyZXR1cm4gSWUoZS5pbml0aWFsU3RhdGUsKGU9Pntmb3IobGV0IHQgaW4gbyllLmFkZENhc2UodCxvW3RdKTtmb3IobGV0IHQgb2YgYS5zbGljZU1hdGNoZXJzKWUuYWRkTWF0Y2hlcih0Lm1hdGNoZXIsdC5yZWR1Y2VyKTtmb3IobGV0IHQgb2YgcillLmFkZE1hdGNoZXIodC5tYXRjaGVyLHQucmVkdWNlcik7biYmZS5hZGREZWZhdWx0Q2FzZShuKX0pKX1pLmZvckVhY2goKG49Pntjb25zdCBpPW9bbl0sYT17cmVkdWNlck5hbWU6bix0eXBlOkplKHIsbiksY3JlYXRlTm90YXRpb246ImZ1bmN0aW9uIj09dHlwZW9mIGUucmVkdWNlcnN9OyFmdW5jdGlvbihlKXtyZXR1cm4iYXN5bmNUaHVuayI9PT1lLl9yZWR1Y2VyRGVmaW5pdGlvblR5cGV9KGkpP2Z1bmN0aW9uKHt0eXBlOmUscmVkdWNlck5hbWU6dCxjcmVhdGVOb3RhdGlvbjpyfSxuLG8pe2xldCBpLGE7aWYoInJlZHVjZXIiaW4gbil7aWYociYmIWZ1bmN0aW9uKGUpe3JldHVybiJyZWR1Y2VyV2l0aFByZXBhcmUiPT09ZS5fcmVkdWNlckRlZmluaXRpb25UeXBlfShuKSl0aHJvdyBuZXcgRXJyb3IoTnQoMTcpKTtpPW4ucmVkdWNlcixhPW4ucHJlcGFyZX1lbHNlIGk9bjtvLmFkZENhc2UoZSxpKS5leHBvc2VDYXNlUmVkdWNlcih0LGkpLmV4cG9zZUFjdGlvbih0LGE/eGUoZSxhKTp4ZShlKSl9KGEsaSxzKTpmdW5jdGlvbih7dHlwZTplLHJlZHVjZXJOYW1lOnR9LHIsbixvKXtpZighbyl0aHJvdyBuZXcgRXJyb3IoTnQoMTgpKTtjb25zdHtwYXlsb2FkQ3JlYXRvcjppLGZ1bGZpbGxlZDphLHBlbmRpbmc6cyxyZWplY3RlZDpjLHNldHRsZWQ6dSxvcHRpb25zOmx9PXIsZj1vKGUsaSxsKTtuLmV4cG9zZUFjdGlvbih0LGYpLGEmJm4uYWRkQ2FzZShmLmZ1bGZpbGxlZCxhKTtzJiZuLmFkZENhc2UoZi5wZW5kaW5nLHMpO2MmJm4uYWRkQ2FzZShmLnJlamVjdGVkLGMpO3UmJm4uYWRkTWF0Y2hlcihmLnNldHRsZWQsdSk7bi5leHBvc2VDYXNlUmVkdWNlcih0LHtmdWxmaWxsZWQ6YXx8ZXQscGVuZGluZzpzfHxldCxyZWplY3RlZDpjfHxldCxzZXR0bGVkOnV8fGV0fSl9KGEsaSxzLHQpfSkpO2NvbnN0IHU9ZT0+ZSxsPW5ldyBNYXAsZj1uZXcgV2Vha01hcDtsZXQgZDtmdW5jdGlvbiBwKGUsdCl7cmV0dXJuIGR8fChkPWMoKSksZChlLHQpfWZ1bmN0aW9uIF8oKXtyZXR1cm4gZHx8KGQ9YygpKSxkLmdldEluaXRpYWxTdGF0ZSgpfWZ1bmN0aW9uIGgodCxyPSExKXtmdW5jdGlvbiBuKGUpe2xldCBvPWVbdF07cmV0dXJuIHZvaWQgMD09PW8mJnImJihvPUFlKGYsbixfKSksb31mdW5jdGlvbiBvKHQ9dSl7Y29uc3Qgbj1BZShsLHIsKCgpPT5uZXcgV2Vha01hcCkpO3JldHVybiBBZShuLHQsKCgpPT57Y29uc3Qgbj17fTtmb3IoY29uc3RbbyxpXW9mIE9iamVjdC5lbnRyaWVzKGUuc2VsZWN0b3JzPz97fSkpbltvXT1aZShpLHQsKCgpPT5BZShmLHQsXykpLHIpO3JldHVybiBufSkpfXJldHVybntyZWR1Y2VyUGF0aDp0LGdldFNlbGVjdG9yczpvLGdldCBzZWxlY3RvcnMoKXtyZXR1cm4gbyhuKX0sc2VsZWN0U2xpY2U6bn19Y29uc3QgbT17bmFtZTpyLHJlZHVjZXI6cCxhY3Rpb25zOmEuYWN0aW9uQ3JlYXRvcnMsY2FzZVJlZHVjZXJzOmEuc2xpY2VDYXNlUmVkdWNlcnNCeU5hbWUsZ2V0SW5pdGlhbFN0YXRlOl8sLi4uaChuKSxpbmplY3RJbnRvKGUse3JlZHVjZXJQYXRoOnQsLi4ucn09e30pe2NvbnN0IG89dD8/bjtyZXR1cm4gZS5pbmplY3Qoe3JlZHVjZXJQYXRoOm8scmVkdWNlcjpwfSxyKSx7Li4ubSwuLi5oKG8sITApfX19O3JldHVybiBtfX1mdW5jdGlvbiBaZShlLHQscixuKXtmdW5jdGlvbiBvKG8sLi4uaSl7bGV0IGE9dChvKTtyZXR1cm4gdm9pZCAwPT09YSYmbiYmKGE9cigpKSxlKGEsLi4uaSl9cmV0dXJuIG8udW53cmFwcGVkPWUsb312YXIgUWU9WGUoKTtmdW5jdGlvbiBldCgpe312YXIgdHQ9Imxpc3RlbmVyIixydD0iY29tcGxldGVkIixudD0iY2FuY2VsbGVkIixvdD1gdGFzay0ke250fWAsaXQ9YHRhc2stJHtydH1gLGF0PWAke3R0fS0ke250fWAsc3Q9YCR7dHR9LSR7cnR9YCxjdD1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmNvZGU9ZSx0aGlzLm1lc3NhZ2U9YHRhc2sgJHtudH0gKHJlYXNvbjogJHtlfSlgfWNvZGU7bmFtZT0iVGFza0Fib3J0RXJyb3IiO21lc3NhZ2V9LHV0PShlLHQpPT57aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihOdCgzMikpfSxsdD0oKT0+e30sZnQ9KGUsdD1sdCk9PihlLmNhdGNoKHQpLGUpLGR0PShlLHQpPT4oZS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsdCx7b25jZTohMH0pLCgpPT5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0Iix0KSkscHQ9ZT0+e2lmKGUuYWJvcnRlZCl0aHJvdyBuZXcgY3QoZS5yZWFzb24pfTtmdW5jdGlvbiBfdChlLHQpe2xldCByPWx0O3JldHVybiBuZXcgUHJvbWlzZSgoKG4sbyk9Pntjb25zdCBpPSgpPT5vKG5ldyBjdChlLnJlYXNvbikpO2UuYWJvcnRlZD9pKCk6KHI9ZHQoZSxpKSx0LmZpbmFsbHkoKCgpPT5yKCkpKS50aGVuKG4sbykpfSkpLmZpbmFsbHkoKCgpPT57cj1sdH0pKX12YXIgaHQ9ZT0+dD0+ZnQoX3QoZSx0KS50aGVuKCh0PT4ocHQoZSksdCkpKSksbXQ9ZT0+e2NvbnN0IHQ9aHQoZSk7cmV0dXJuIGU9PnQobmV3IFByb21pc2UoKHQ9PnNldFRpbWVvdXQodCxlKSkpKX0se2Fzc2lnbjp5dH09T2JqZWN0LGd0PXt9LHZ0PSJsaXN0ZW5lck1pZGRsZXdhcmUiLGJ0PShlLHQpPT4ocixuKT0+e3V0KHIpO2NvbnN0IG89bmV3IEFib3J0Q29udHJvbGxlcjt2YXIgaTtpPW8sZHQoZSwoKCk9PmkuYWJvcnQoZS5yZWFzb24pKSk7Y29uc3QgYT0oYXN5bmMoZSx0KT0+e3RyeXtyZXR1cm4gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkse3N0YXR1czoib2siLHZhbHVlOmF3YWl0IGUoKX19Y2F0Y2goZSl7cmV0dXJue3N0YXR1czplIGluc3RhbmNlb2YgY3Q/ImNhbmNlbGxlZCI6InJlamVjdGVkIixlcnJvcjplfX1maW5hbGx5e3Q/LigpfX0pKChhc3luYygpPT57cHQoZSkscHQoby5zaWduYWwpO2NvbnN0IHQ9YXdhaXQgcih7cGF1c2U6aHQoby5zaWduYWwpLGRlbGF5Om10KG8uc2lnbmFsKSxzaWduYWw6by5zaWduYWx9KTtyZXR1cm4gcHQoby5zaWduYWwpLHR9KSwoKCk9Pm8uYWJvcnQoaXQpKSk7cmV0dXJuIG4/LmF1dG9Kb2luJiZ0LnB1c2goYS5jYXRjaChsdCkpLHtyZXN1bHQ6aHQoZSkoYSksY2FuY2VsKCl7by5hYm9ydChvdCl9fX0sd3Q9KGUsdCk9PihyLG4pPT5mdCgoYXN5bmMocixuKT0+e3B0KHQpO2xldCBvPSgpPT57fTtjb25zdCBpPVtuZXcgUHJvbWlzZSgoKHQsbik9PntsZXQgaT1lKHtwcmVkaWNhdGU6cixlZmZlY3Q6KGUscik9PntyLnVuc3Vic2NyaWJlKCksdChbZSxyLmdldFN0YXRlKCksci5nZXRPcmlnaW5hbFN0YXRlKCldKX19KTtvPSgpPT57aSgpLG4oKX19KSldO251bGwhPW4mJmkucHVzaChuZXcgUHJvbWlzZSgoZT0+c2V0VGltZW91dChlLG4sbnVsbCkpKSk7dHJ5e2NvbnN0IGU9YXdhaXQgX3QodCxQcm9taXNlLnJhY2UoaSkpO3JldHVybiBwdCh0KSxlfWZpbmFsbHl7bygpfX0pKHIsbikpLFN0PWU9PntsZXR7dHlwZTp0LGFjdGlvbkNyZWF0b3I6cixtYXRjaGVyOm4scHJlZGljYXRlOm8sZWZmZWN0Oml9PWU7aWYodClvPXhlKHQpLm1hdGNoO2Vsc2UgaWYocil0PXIudHlwZSxvPXIubWF0Y2g7ZWxzZSBpZihuKW89bjtlbHNlIGlmKCFvKXRocm93IG5ldyBFcnJvcihOdCgyMSkpO3JldHVybiB1dChpKSx7cHJlZGljYXRlOm8sdHlwZTp0LGVmZmVjdDppfX0sa3Q9eXQoKGU9Pntjb25zdHt0eXBlOnQscHJlZGljYXRlOnIsZWZmZWN0Om59PVN0KGUpO3JldHVybntpZDpCZSgpLGVmZmVjdDpuLHR5cGU6dCxwcmVkaWNhdGU6cixwZW5kaW5nOm5ldyBTZXQsdW5zdWJzY3JpYmU6KCk9Pnt0aHJvdyBuZXcgRXJyb3IoTnQoMjIpKX19fSkse3dpdGhUeXBlczooKT0+a3R9KSx4dD0oZSx0KT0+e2NvbnN0e3R5cGU6cixlZmZlY3Q6bixwcmVkaWNhdGU6b309U3QodCk7cmV0dXJuIEFycmF5LmZyb20oZS52YWx1ZXMoKSkuZmluZCgoZT0+KCJzdHJpbmciPT10eXBlb2Ygcj9lLnR5cGU9PT1yOmUucHJlZGljYXRlPT09bykmJmUuZWZmZWN0PT09bikpfSxFdD1lPT57ZS5wZW5kaW5nLmZvckVhY2goKGU9PntlLmFib3J0KGF0KX0pKX0sQ3Q9KGUsdCxyKT0+e3RyeXtlKHQscil9Y2F0Y2goZSl7c2V0VGltZW91dCgoKCk9Pnt0aHJvdyBlfSksMCl9fSxBdD15dCh4ZShgJHt2dH0vYWRkYCkse3dpdGhUeXBlczooKT0+QXR9KSxUdD14ZShgJHt2dH0vcmVtb3ZlQWxsYCksUnQ9eXQoeGUoYCR7dnR9L3JlbW92ZWApLHt3aXRoVHlwZXM6KCk9PlJ0fSksUHQ9KC4uLmUpPT57Y29uc29sZS5lcnJvcihgJHt2dH0vZXJyb3JgLC4uLmUpfSxPdD0oZT17fSk9Pntjb25zdCB0PW5ldyBNYXAscj1uZXcgTWFwLHtleHRyYTpuLG9uRXJyb3I6bz1QdH09ZTt1dChvKTtjb25zdCBpPWU9PihlPT4oZS51bnN1YnNjcmliZT0oKT0+dC5kZWxldGUoZS5pZCksdC5zZXQoZS5pZCxlKSx0PT57ZS51bnN1YnNjcmliZSgpLHQ/LmNhbmNlbEFjdGl2ZSYmRXQoZSl9KSkoeHQodCxlKT8/a3QoZSkpO3l0KGkse3dpdGhUeXBlczooKT0+aX0pO2NvbnN0IGE9ZT0+e2NvbnN0IHI9eHQodCxlKTtyZXR1cm4gciYmKHIudW5zdWJzY3JpYmUoKSxlLmNhbmNlbEFjdGl2ZSYmRXQocikpLCEhcn07eXQoYSx7d2l0aFR5cGVzOigpPT5hfSk7Y29uc3Qgcz1hc3luYyhlLGEscyxjKT0+e2NvbnN0IHU9bmV3IEFib3J0Q29udHJvbGxlcixsPXd0KGksdS5zaWduYWwpLGY9W107dHJ5e2UucGVuZGluZy5hZGQodSksKGU9Pntjb25zdCB0PXIuZ2V0KGUpPz8wO3Iuc2V0KGUsdCsxKX0pKGUpLGF3YWl0IFByb21pc2UucmVzb2x2ZShlLmVmZmVjdChhLHl0KHt9LHMse2dldE9yaWdpbmFsU3RhdGU6Yyxjb25kaXRpb246KGUsdCk9PmwoZSx0KS50aGVuKEJvb2xlYW4pLHRha2U6bCxkZWxheTptdCh1LnNpZ25hbCkscGF1c2U6aHQodS5zaWduYWwpLGV4dHJhOm4sc2lnbmFsOnUuc2lnbmFsLGZvcms6YnQodS5zaWduYWwsZiksdW5zdWJzY3JpYmU6ZS51bnN1YnNjcmliZSxzdWJzY3JpYmU6KCk9Pnt0LnNldChlLmlkLGUpfSxjYW5jZWxBY3RpdmVMaXN0ZW5lcnM6KCk9PntlLnBlbmRpbmcuZm9yRWFjaCgoKGUsdCxyKT0+e2UhPT11JiYoZS5hYm9ydChhdCksci5kZWxldGUoZSkpfSkpfSxjYW5jZWw6KCk9Pnt1LmFib3J0KGF0KSxlLnBlbmRpbmcuZGVsZXRlKHUpfSx0aHJvd0lmQ2FuY2VsbGVkOigpPT57cHQodS5zaWduYWwpfX0pKSl9Y2F0Y2goZSl7ZSBpbnN0YW5jZW9mIGN0fHxDdChvLGUse3JhaXNlZEJ5OiJlZmZlY3QifSl9ZmluYWxseXthd2FpdCBQcm9taXNlLmFsbChmKSx1LmFib3J0KHN0KSwoZT0+e2NvbnN0IHQ9ci5nZXQoZSk/PzE7MT09PXQ/ci5kZWxldGUoZSk6ci5zZXQoZSx0LTEpfSkoZSksZS5wZW5kaW5nLmRlbGV0ZSh1KX19LGM9KChlLHQpPT4oKT0+e2Zvcihjb25zdCBlIG9mIHQua2V5cygpKUV0KGUpO2UuY2xlYXIoKX0pKHQscik7cmV0dXJue21pZGRsZXdhcmU6ZT0+cj0+bj0+e2lmKCEoMCxnZS52ZSkobikpcmV0dXJuIHIobik7aWYoQXQubWF0Y2gobikpcmV0dXJuIGkobi5wYXlsb2FkKTtpZihUdC5tYXRjaChuKSlyZXR1cm4gdm9pZCBjKCk7aWYoUnQubWF0Y2gobikpcmV0dXJuIGEobi5wYXlsb2FkKTtsZXQgdT1lLmdldFN0YXRlKCk7Y29uc3QgbD0oKT0+e2lmKHU9PT1ndCl0aHJvdyBuZXcgRXJyb3IoTnQoMjMpKTtyZXR1cm4gdX07bGV0IGY7dHJ5e2lmKGY9cihuKSx0LnNpemU+MCl7Y29uc3Qgcj1lLmdldFN0YXRlKCksaT1BcnJheS5mcm9tKHQudmFsdWVzKCkpO2Zvcihjb25zdCB0IG9mIGkpe2xldCBpPSExO3RyeXtpPXQucHJlZGljYXRlKG4scix1KX1jYXRjaChlKXtpPSExLEN0KG8sZSx7cmFpc2VkQnk6InByZWRpY2F0ZSJ9KX1pJiZzKHQsbixlLGwpfX19ZmluYWxseXt1PWd0fXJldHVybiBmfSxzdGFydExpc3RlbmluZzppLHN0b3BMaXN0ZW5pbmc6YSxjbGVhckxpc3RlbmVyczpjfX07ZnVuY3Rpb24gTnQoZSl7cmV0dXJuYE1pbmlmaWVkIFJlZHV4IFRvb2xraXQgZXJyb3IgIyR7ZX07IHZpc2l0IGh0dHBzOi8vcmVkdXgtdG9vbGtpdC5qcy5vcmcvRXJyb3JzP2NvZGU9JHtlfSBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzLiBgfX0sODEyMDpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IuZCh0LHtNejpmdW5jdGlvbigpe3JldHVybiB1fX0pO2Z1bmN0aW9uIG4oZSx0PSJleHBlY3RlZCBhIGZ1bmN0aW9uLCBpbnN0ZWFkIHJlY2VpdmVkICIrdHlwZW9mIGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IodCl9dmFyIG89ZT0+QXJyYXkuaXNBcnJheShlKT9lOltlXTtmdW5jdGlvbiBpKGUpe2NvbnN0IHQ9QXJyYXkuaXNBcnJheShlWzBdKT9lWzBdOmU7cmV0dXJuIGZ1bmN0aW9uKGUsdD0iZXhwZWN0ZWQgYWxsIGl0ZW1zIHRvIGJlIGZ1bmN0aW9ucywgaW5zdGVhZCByZWNlaXZlZCB0aGUgZm9sbG93aW5nIHR5cGVzOiAiKXtpZighZS5ldmVyeSgoZT0+ImZ1bmN0aW9uIj09dHlwZW9mIGUpKSl7Y29uc3Qgcj1lLm1hcCgoZT0+ImZ1bmN0aW9uIj09dHlwZW9mIGU/YGZ1bmN0aW9uICR7ZS5uYW1lfHwidW5uYW1lZCJ9KClgOnR5cGVvZiBlKSkuam9pbigiLCAiKTt0aHJvdyBuZXcgVHlwZUVycm9yKGAke3R9WyR7cn1dYCl9fSh0LCJjcmVhdGVTZWxlY3RvciBleHBlY3RzIGFsbCBpbnB1dC1zZWxlY3RvcnMgdG8gYmUgZnVuY3Rpb25zLCBidXQgcmVjZWl2ZWQgdGhlIGZvbGxvd2luZyB0eXBlczogIiksdH1TeW1ib2woKSxPYmplY3QuZ2V0UHJvdG90eXBlT2Yoe30pO3ZhciBhPSJ1bmRlZmluZWQiIT10eXBlb2YgV2Vha1JlZj9XZWFrUmVmOmNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMudmFsdWU9ZX1kZXJlZigpe3JldHVybiB0aGlzLnZhbHVlfX07ZnVuY3Rpb24gcyhlLHQ9e30pe2xldCByPXtzOjAsdjp2b2lkIDAsbzpudWxsLHA6bnVsbH07Y29uc3R7cmVzdWx0RXF1YWxpdHlDaGVjazpufT10O2xldCBvLGk9MDtmdW5jdGlvbiBzKCl7bGV0IHQ9cjtjb25zdHtsZW5ndGg6c309YXJndW1lbnRzO2ZvcihsZXQgZT0wLHI9cztlPHI7ZSsrKXtjb25zdCByPWFyZ3VtZW50c1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcnx8Im9iamVjdCI9PXR5cGVvZiByJiZudWxsIT09cil7bGV0IGU9dC5vO251bGw9PT1lJiYodC5vPWU9bmV3IFdlYWtNYXApO2NvbnN0IG49ZS5nZXQocik7dm9pZCAwPT09bj8odD17czowLHY6dm9pZCAwLG86bnVsbCxwOm51bGx9LGUuc2V0KHIsdCkpOnQ9bn1lbHNle2xldCBlPXQucDtudWxsPT09ZSYmKHQucD1lPW5ldyBNYXApO2NvbnN0IG49ZS5nZXQocik7dm9pZCAwPT09bj8odD17czowLHY6dm9pZCAwLG86bnVsbCxwOm51bGx9LGUuc2V0KHIsdCkpOnQ9bn19Y29uc3QgYz10O2xldCB1O2lmKDE9PT10LnMpdT10LnY7ZWxzZSBpZih1PWUuYXBwbHkobnVsbCxhcmd1bWVudHMpLGkrKyxuKXtjb25zdCBlPW8/LmRlcmVmPy4oKT8/bztudWxsIT1lJiZuKGUsdSkmJih1PWUsMCE9PWkmJmktLSk7bz0ib2JqZWN0Ij09dHlwZW9mIHUmJm51bGwhPT11fHwiZnVuY3Rpb24iPT10eXBlb2YgdT9uZXcgYSh1KTp1fXJldHVybiBjLnM9MSxjLnY9dSx1fXJldHVybiBzLmNsZWFyQ2FjaGU9KCk9PntyPXtzOjAsdjp2b2lkIDAsbzpudWxsLHA6bnVsbH0scy5yZXNldFJlc3VsdHNDb3VudCgpfSxzLnJlc3VsdHNDb3VudD0oKT0+aSxzLnJlc2V0UmVzdWx0c0NvdW50PSgpPT57aT0wfSxzfWZ1bmN0aW9uIGMoZSwuLi50KXtjb25zdCByPSJmdW5jdGlvbiI9PXR5cGVvZiBlP3ttZW1vaXplOmUsbWVtb2l6ZU9wdGlvbnM6dH06ZSxhPSguLi5lKT0+e2xldCB0LGE9MCxjPTAsdT17fSxsPWUucG9wKCk7Im9iamVjdCI9PXR5cGVvZiBsJiYodT1sLGw9ZS5wb3AoKSksbihsLGBjcmVhdGVTZWxlY3RvciBleHBlY3RzIGFuIG91dHB1dCBmdW5jdGlvbiBhZnRlciB0aGUgaW5wdXRzLCBidXQgcmVjZWl2ZWQ6IFske3R5cGVvZiBsfV1gKTtjb25zdCBmPXsuLi5yLC4uLnV9LHttZW1vaXplOmQsbWVtb2l6ZU9wdGlvbnM6cD1bXSxhcmdzTWVtb2l6ZTpfPXMsYXJnc01lbW9pemVPcHRpb25zOmg9W10sZGV2TW9kZUNoZWNrczptPXt9fT1mLHk9byhwKSxnPW8oaCksdj1pKGUpLGI9ZCgoZnVuY3Rpb24oKXtyZXR1cm4gYSsrLGwuYXBwbHkobnVsbCxhcmd1bWVudHMpfSksLi4ueSk7Y29uc3Qgdz1fKChmdW5jdGlvbigpe2MrKztjb25zdCBlPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgcj1bXSx7bGVuZ3RoOm59PWU7Zm9yKGxldCBvPTA7bzxuO28rKylyLnB1c2goZVtvXS5hcHBseShudWxsLHQpKTtyZXR1cm4gcn0odixhcmd1bWVudHMpO3JldHVybiB0PWIuYXBwbHkobnVsbCxlKSx0fSksLi4uZyk7cmV0dXJuIE9iamVjdC5hc3NpZ24odyx7cmVzdWx0RnVuYzpsLG1lbW9pemVkUmVzdWx0RnVuYzpiLGRlcGVuZGVuY2llczp2LGRlcGVuZGVuY3lSZWNvbXB1dGF0aW9uczooKT0+YyxyZXNldERlcGVuZGVuY3lSZWNvbXB1dGF0aW9uczooKT0+e2M9MH0sbGFzdFJlc3VsdDooKT0+dCxyZWNvbXB1dGF0aW9uczooKT0+YSxyZXNldFJlY29tcHV0YXRpb25zOigpPT57YT0wfSxtZW1vaXplOmQsYXJnc01lbW9pemU6X30pfTtyZXR1cm4gT2JqZWN0LmFzc2lnbihhLHt3aXRoVHlwZXM6KCk9PmF9KSxhfXZhciB1PWMocyksbD1PYmplY3QuYXNzaWduKCgoZSx0PXUpPT57IWZ1bmN0aW9uKGUsdD0iZXhwZWN0ZWQgYW4gb2JqZWN0LCBpbnN0ZWFkIHJlY2VpdmVkICIrdHlwZW9mIGUpe2lmKCJvYmplY3QiIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKHQpfShlLCJjcmVhdGVTdHJ1Y3R1cmVkU2VsZWN0b3IgZXhwZWN0cyBmaXJzdCBhcmd1bWVudCB0byBiZSBhbiBvYmplY3Qgd2hlcmUgZWFjaCBwcm9wZXJ0eSBpcyBhIHNlbGVjdG9yLCBpbnN0ZWFkIHJlY2VpdmVkIGEgIit0eXBlb2YgZSk7Y29uc3Qgcj1PYmplY3Qua2V5cyhlKTtyZXR1cm4gdChyLm1hcCgodD0+ZVt0XSkpLCgoLi4uZSk9PmUucmVkdWNlKCgoZSx0LG4pPT4oZVtyW25dXT10LGUpKSx7fSkpKX0pLHt3aXRoVHlwZXM6KCk9Pmx9KX0sODI1MTM6ZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyLmQodCx7RzpmdW5jdGlvbigpe3JldHVybiBFdmVudFNvdXJjZX19KTtjbGFzcyBQYXJzZUVycm9yIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlKSx0aGlzLm5hbWU9IlBhcnNlRXJyb3IiLHRoaXMudHlwZT10LnR5cGUsdGhpcy5maWVsZD10LmZpZWxkLHRoaXMudmFsdWU9dC52YWx1ZSx0aGlzLmxpbmU9dC5saW5lfX1mdW5jdGlvbiBuKGUpe31mdW5jdGlvbiBvKGUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoImBjYWxsYmFja3NgIG11c3QgYmUgYW4gb2JqZWN0LCBnb3QgYSBmdW5jdGlvbiBpbnN0ZWFkLiBEaWQgeW91IG1lYW4gYHtvbkV2ZW50OiBmbn1gPyIpO2NvbnN0e29uRXZlbnQ6dD1uLG9uRXJyb3I6cj1uLG9uUmV0cnk6bz1uLG9uQ29tbWVudDppfT1lO2xldCBhLHM9IiIsYz0hMCx1PSIiLGw9IiI7ZnVuY3Rpb24gZihlKXtpZigiIj09PWUpcmV0dXJuIHUubGVuZ3RoPjAmJnQoe2lkOmEsZXZlbnQ6bHx8dm9pZCAwLGRhdGE6dS5lbmRzV2l0aCgiXG4iKT91LnNsaWNlKDAsLTEpOnV9KSxhPXZvaWQgMCx1PSIiLHZvaWQobD0iIik7aWYoZS5zdGFydHNXaXRoKCI6IikpcmV0dXJuIHZvaWQoaSYmaShlLnNsaWNlKGUuc3RhcnRzV2l0aCgiOiAiKT8yOjEpKSk7Y29uc3Qgcj1lLmluZGV4T2YoIjoiKTtpZigtMT09PXIpZChlLCIiLGUpO2Vsc2V7Y29uc3QgdD1lLnNsaWNlKDAsciksbj0iICI9PT1lW3IrMV0/MjoxO2QodCxlLnNsaWNlKHIrbiksZSl9fWZ1bmN0aW9uIGQoZSx0LG4pe3N3aXRjaChlKXtjYXNlImV2ZW50IjpsPXQ7YnJlYWs7Y2FzZSJkYXRhIjp1PWAke3V9JHt0fVxuYDticmVhaztjYXNlImlkIjphPXQuaW5jbHVkZXMoIlwwIik/dm9pZCAwOnQ7YnJlYWs7Y2FzZSJyZXRyeSI6L15cZCskLy50ZXN0KHQpP28ocGFyc2VJbnQodCwxMCkpOnIobmV3IFBhcnNlRXJyb3IoYEludmFsaWQgXGByZXRyeVxgIHZhbHVlOiAiJHt0fSJgLHt0eXBlOiJpbnZhbGlkLXJldHJ5Iix2YWx1ZTp0LGxpbmU6bn0pKTticmVhaztkZWZhdWx0OnIobmV3IFBhcnNlRXJyb3IoYFVua25vd24gZmllbGQgIiR7ZS5sZW5ndGg+MjA/YCR7ZS5zbGljZSgwLDIwKX3igKZgOmV9ImAse3R5cGU6InVua25vd24tZmllbGQiLGZpZWxkOmUsdmFsdWU6dCxsaW5lOm59KSl9fXJldHVybntmZWVkOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9Yz9lLnJlcGxhY2UoL15ceEVGXHhCQlx4QkYvLCIiKTplLFtyLG5dPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9W107bGV0IHI9IiIsbj0wO2Zvcig7bjxlLmxlbmd0aDspe2NvbnN0IG89ZS5pbmRleE9mKCJcciIsbiksaT1lLmluZGV4T2YoIlxuIixuKTtsZXQgYT0tMTtpZigtMSE9PW8mJi0xIT09aT9hPU1hdGgubWluKG8saSk6LTEhPT1vP2E9bz09PWUubGVuZ3RoLTE/LTE6bzotMSE9PWkmJihhPWkpLC0xPT09YSl7cj1lLnNsaWNlKG4pO2JyZWFrfXtjb25zdCByPWUuc2xpY2UobixhKTt0LnB1c2gociksbj1hKzEsIlxyIj09PWVbbi0xXSYmIlxuIj09PWVbbl0mJm4rK319cmV0dXJuW3Qscl19KGAke3N9JHt0fWApO2Zvcihjb25zdCBlIG9mIHIpZihlKTtzPW4sYz0hMX0scmVzZXQ6ZnVuY3Rpb24oZT17fSl7cyYmZS5jb25zdW1lJiZmKHMpLGM9ITAsYT12b2lkIDAsdT0iIixsPSIiLHM9IiJ9fX1jbGFzcyBFcnJvckV2ZW50IGV4dGVuZHMgRXZlbnR7Y29uc3RydWN0b3IoZSx0KXt2YXIgcixuO3N1cGVyKGUpLHRoaXMuY29kZT1udWxsIT0ocj1udWxsPT10P3ZvaWQgMDp0LmNvZGUpP3I6dm9pZCAwLHRoaXMubWVzc2FnZT1udWxsIT0obj1udWxsPT10P3ZvaWQgMDp0Lm1lc3NhZ2UpP246dm9pZCAwfVtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpXShlLHQscil7cmV0dXJuIHIoYSh0aGlzKSx0KX1bU3ltYm9sLmZvcigiRGVuby5jdXN0b21JbnNwZWN0IildKGUsdCl7cmV0dXJuIGUoYSh0aGlzKSx0KX19ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEVycm9yPyJlcnJvcnMiaW4gZSYmQXJyYXkuaXNBcnJheShlLmVycm9ycyk/ZS5lcnJvcnMubWFwKGkpLmpvaW4oIiwgIik6ImNhdXNlImluIGUmJmUuY2F1c2UgaW5zdGFuY2VvZiBFcnJvcj9gJHtlfTogJHtpKGUuY2F1c2UpfWA6ZS5tZXNzYWdlOmAke2V9YH1mdW5jdGlvbiBhKGUpe3JldHVybnt0eXBlOmUudHlwZSxtZXNzYWdlOmUubWVzc2FnZSxjb2RlOmUuY29kZSxkZWZhdWx0UHJldmVudGVkOmUuZGVmYXVsdFByZXZlbnRlZCxjYW5jZWxhYmxlOmUuY2FuY2VsYWJsZSx0aW1lU3RhbXA6ZS50aW1lU3RhbXB9fXZhciBzLGMsdSxsLGYsZCxwLF8saCxtLHksZyx2LGIsdyxTLGsseCxFLEEsVCxSLFAsTz1lPT57dGhyb3cgVHlwZUVycm9yKGUpfSxNPShlLHQscik9PnQuaGFzKGUpfHxPKCJDYW5ub3QgIityKSxGPShlLHQscik9PihNKGUsdCwicmVhZCBmcm9tIHByaXZhdGUgZmllbGQiKSxyP3IuY2FsbChlKTp0LmdldChlKSksST0oZSx0LHIpPT50LmhhcyhlKT9PKCJDYW5ub3QgYWRkIHRoZSBzYW1lIHByaXZhdGUgbWVtYmVyIG1vcmUgdGhhbiBvbmNlIik6dCBpbnN0YW5jZW9mIFdlYWtTZXQ/dC5hZGQoZSk6dC5zZXQoZSxyKSxqPShlLHQscixuKT0+KE0oZSx0LCJ3cml0ZSB0byBwcml2YXRlIGZpZWxkIiksdC5zZXQoZSxyKSxyKSxEPShlLHQscik9PihNKGUsdCwiYWNjZXNzIHByaXZhdGUgbWV0aG9kIikscik7Y2xhc3MgRXZlbnRTb3VyY2UgZXh0ZW5kcyBFdmVudFRhcmdldHtjb25zdHJ1Y3RvcihlLHQpe3ZhciByLG47c3VwZXIoKSxJKHRoaXMsYiksdGhpcy5DT05ORUNUSU5HPTAsdGhpcy5PUEVOPTEsdGhpcy5DTE9TRUQ9MixJKHRoaXMscyksSSh0aGlzLGMpLEkodGhpcyx1KSxJKHRoaXMsbCksSSh0aGlzLGYpLEkodGhpcyxkKSxJKHRoaXMscCksSSh0aGlzLF8sbnVsbCksSSh0aGlzLGgpLEkodGhpcyxtKSxJKHRoaXMseSxudWxsKSxJKHRoaXMsZyxudWxsKSxJKHRoaXMsdixudWxsKSxJKHRoaXMsUywoYXN5bmMgZT0+e3ZhciB0O0YodGhpcyxtKS5yZXNldCgpO2NvbnN0e2JvZHk6cixyZWRpcmVjdGVkOm4sc3RhdHVzOm8saGVhZGVyczppfT1lO2lmKDIwND09PW8pcmV0dXJuIEQodGhpcyxiLFQpLmNhbGwodGhpcywiU2VydmVyIHNlbnQgSFRUUCAyMDQsIG5vdCByZWNvbm5lY3RpbmciLDIwNCksdm9pZCB0aGlzLmNsb3NlKCk7aWYoaih0aGlzLHUsbj9uZXcgVVJMKGUudXJsKTp2b2lkIDApLDIwMCE9PW8pcmV0dXJuIHZvaWQgRCh0aGlzLGIsVCkuY2FsbCh0aGlzLGBOb24tMjAwIHN0YXR1cyBjb2RlICgke299KWAsbyk7aWYoIShpLmdldCgiY29udGVudC10eXBlIil8fCIiKS5zdGFydHNXaXRoKCJ0ZXh0L2V2ZW50LXN0cmVhbSIpKXJldHVybiB2b2lkIEQodGhpcyxiLFQpLmNhbGwodGhpcywnSW52YWxpZCBjb250ZW50IHR5cGUsIGV4cGVjdGVkICJ0ZXh0L2V2ZW50LXN0cmVhbSInLG8pO2lmKEYodGhpcyxzKT09PXRoaXMuQ0xPU0VEKXJldHVybjtqKHRoaXMscyx0aGlzLk9QRU4pO2NvbnN0IGE9bmV3IEV2ZW50KCJvcGVuIik7aWYobnVsbD09KHQ9Rih0aGlzLHYpKXx8dC5jYWxsKHRoaXMsYSksdGhpcy5kaXNwYXRjaEV2ZW50KGEpLCJvYmplY3QiIT10eXBlb2Ygcnx8IXJ8fCEoImdldFJlYWRlciJpbiByKSlyZXR1cm4gRCh0aGlzLGIsVCkuY2FsbCh0aGlzLCJJbnZhbGlkIHJlc3BvbnNlIGJvZHksIGV4cGVjdGVkIGEgd2ViIFJlYWRhYmxlU3RyZWFtIixvKSx2b2lkIHRoaXMuY2xvc2UoKTtjb25zdCBjPW5ldyBUZXh0RGVjb2RlcixsPXIuZ2V0UmVhZGVyKCk7bGV0IGY9ITA7ZG97Y29uc3R7ZG9uZTplLHZhbHVlOnR9PWF3YWl0IGwucmVhZCgpO3QmJkYodGhpcyxtKS5mZWVkKGMuZGVjb2RlKHQse3N0cmVhbTohZX0pKSxlJiYoZj0hMSxGKHRoaXMsbSkucmVzZXQoKSxEKHRoaXMsYixSKS5jYWxsKHRoaXMpKX13aGlsZShmKX0pKSxJKHRoaXMsaywoZT0+e2oodGhpcyxoLHZvaWQgMCksIkFib3J0RXJyb3IiIT09ZS5uYW1lJiYiYWJvcnRlZCIhPT1lLnR5cGUmJkQodGhpcyxiLFIpLmNhbGwodGhpcyxpKGUpKX0pKSxJKHRoaXMsRSwoZT0+eyJzdHJpbmciPT10eXBlb2YgZS5pZCYmaih0aGlzLF8sZS5pZCk7Y29uc3QgdD1uZXcgTWVzc2FnZUV2ZW50KGUuZXZlbnR8fCJtZXNzYWdlIix7ZGF0YTplLmRhdGEsb3JpZ2luOkYodGhpcyx1KT9GKHRoaXMsdSkub3JpZ2luOkYodGhpcyxjKS5vcmlnaW4sbGFzdEV2ZW50SWQ6ZS5pZHx8IiJ9KTtGKHRoaXMsZykmJighZS5ldmVudHx8Im1lc3NhZ2UiPT09ZS5ldmVudCkmJkYodGhpcyxnKS5jYWxsKHRoaXMsdCksdGhpcy5kaXNwYXRjaEV2ZW50KHQpfSkpLEkodGhpcyxBLChlPT57aih0aGlzLGQsZSl9KSksSSh0aGlzLFAsKCgpPT57aih0aGlzLHAsdm9pZCAwKSxGKHRoaXMscyk9PT10aGlzLkNPTk5FQ1RJTkcmJkQodGhpcyxiLHcpLmNhbGwodGhpcyl9KSk7dHJ5e2lmKGUgaW5zdGFuY2VvZiBVUkwpaih0aGlzLGMsZSk7ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFVSTCIpO2oodGhpcyxjLG5ldyBVUkwoZSxmdW5jdGlvbigpe2NvbnN0IGU9ImRvY3VtZW50ImluIGdsb2JhbFRoaXM/Z2xvYmFsVGhpcy5kb2N1bWVudDp2b2lkIDA7cmV0dXJuIGUmJiJvYmplY3QiPT10eXBlb2YgZSYmImJhc2VVUkkiaW4gZSYmInN0cmluZyI9PXR5cGVvZiBlLmJhc2VVUkk/ZS5iYXNlVVJJOnZvaWQgMH0oKSkpfX1jYXRjaHt0aHJvdyBmdW5jdGlvbihlKXtjb25zdCB0PWdsb2JhbFRoaXMuRE9NRXhjZXB0aW9uO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P25ldyB0KGUsIlN5bnRheEVycm9yIik6bmV3IFN5bnRheEVycm9yKGUpfSgiQW4gaW52YWxpZCBvciBpbGxlZ2FsIHN0cmluZyB3YXMgc3BlY2lmaWVkIil9aih0aGlzLG0sbyh7b25FdmVudDpGKHRoaXMsRSksb25SZXRyeTpGKHRoaXMsQSl9KSksaih0aGlzLHMsdGhpcy5DT05ORUNUSU5HKSxqKHRoaXMsZCwzZTMpLGoodGhpcyxmLG51bGwhPShyPW51bGw9PXQ/dm9pZCAwOnQuZmV0Y2gpP3I6Z2xvYmFsVGhpcy5mZXRjaCksaih0aGlzLGwsbnVsbCE9KG49bnVsbD09dD92b2lkIDA6dC53aXRoQ3JlZGVudGlhbHMpJiZuKSxEKHRoaXMsYix3KS5jYWxsKHRoaXMpfWdldCByZWFkeVN0YXRlKCl7cmV0dXJuIEYodGhpcyxzKX1nZXQgdXJsKCl7cmV0dXJuIEYodGhpcyxjKS5ocmVmfWdldCB3aXRoQ3JlZGVudGlhbHMoKXtyZXR1cm4gRih0aGlzLGwpfWdldCBvbmVycm9yKCl7cmV0dXJuIEYodGhpcyx5KX1zZXQgb25lcnJvcihlKXtqKHRoaXMseSxlKX1nZXQgb25tZXNzYWdlKCl7cmV0dXJuIEYodGhpcyxnKX1zZXQgb25tZXNzYWdlKGUpe2oodGhpcyxnLGUpfWdldCBvbm9wZW4oKXtyZXR1cm4gRih0aGlzLHYpfXNldCBvbm9wZW4oZSl7aih0aGlzLHYsZSl9YWRkRXZlbnRMaXN0ZW5lcihlLHQscil7Y29uc3Qgbj10O3N1cGVyLmFkZEV2ZW50TGlzdGVuZXIoZSxuLHIpfXJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0LHIpe2NvbnN0IG49dDtzdXBlci5yZW1vdmVFdmVudExpc3RlbmVyKGUsbixyKX1jbG9zZSgpe0YodGhpcyxwKSYmY2xlYXJUaW1lb3V0KEYodGhpcyxwKSksRih0aGlzLHMpIT09dGhpcy5DTE9TRUQmJihGKHRoaXMsaCkmJkYodGhpcyxoKS5hYm9ydCgpLGoodGhpcyxzLHRoaXMuQ0xPU0VEKSxqKHRoaXMsaCx2b2lkIDApKX19cz1uZXcgV2Vha01hcCxjPW5ldyBXZWFrTWFwLHU9bmV3IFdlYWtNYXAsbD1uZXcgV2Vha01hcCxmPW5ldyBXZWFrTWFwLGQ9bmV3IFdlYWtNYXAscD1uZXcgV2Vha01hcCxfPW5ldyBXZWFrTWFwLGg9bmV3IFdlYWtNYXAsbT1uZXcgV2Vha01hcCx5PW5ldyBXZWFrTWFwLGc9bmV3IFdlYWtNYXAsdj1uZXcgV2Vha01hcCxiPW5ldyBXZWFrU2V0LHc9ZnVuY3Rpb24oKXtqKHRoaXMscyx0aGlzLkNPTk5FQ1RJTkcpLGoodGhpcyxoLG5ldyBBYm9ydENvbnRyb2xsZXIpLEYodGhpcyxmKShGKHRoaXMsYyksRCh0aGlzLGIseCkuY2FsbCh0aGlzKSkudGhlbihGKHRoaXMsUykpLmNhdGNoKEYodGhpcyxrKSl9LFM9bmV3IFdlYWtNYXAsaz1uZXcgV2Vha01hcCx4PWZ1bmN0aW9uKCl7dmFyIGU7Y29uc3QgdD17bW9kZToiY29ycyIscmVkaXJlY3Q6ImZvbGxvdyIsaGVhZGVyczp7QWNjZXB0OiJ0ZXh0L2V2ZW50LXN0cmVhbSIsLi4uRih0aGlzLF8pP3siTGFzdC1FdmVudC1JRCI6Rih0aGlzLF8pfTp2b2lkIDB9LGNhY2hlOiJuby1zdG9yZSIsc2lnbmFsOm51bGw9PShlPUYodGhpcyxoKSk/dm9pZCAwOmUuc2lnbmFsfTtyZXR1cm4id2luZG93ImluIGdsb2JhbFRoaXMmJih0LmNyZWRlbnRpYWxzPXRoaXMud2l0aENyZWRlbnRpYWxzPyJpbmNsdWRlIjoic2FtZS1vcmlnaW4iKSx0fSxFPW5ldyBXZWFrTWFwLEE9bmV3IFdlYWtNYXAsVD1mdW5jdGlvbihlLHQpe3ZhciByO0YodGhpcyxzKSE9PXRoaXMuQ0xPU0VEJiZqKHRoaXMscyx0aGlzLkNMT1NFRCk7Y29uc3Qgbj1uZXcgRXJyb3JFdmVudCgiZXJyb3IiLHtjb2RlOnQsbWVzc2FnZTplfSk7bnVsbD09KHI9Rih0aGlzLHkpKXx8ci5jYWxsKHRoaXMsbiksdGhpcy5kaXNwYXRjaEV2ZW50KG4pfSxSPWZ1bmN0aW9uKGUsdCl7dmFyIHI7aWYoRih0aGlzLHMpPT09dGhpcy5DTE9TRUQpcmV0dXJuO2oodGhpcyxzLHRoaXMuQ09OTkVDVElORyk7Y29uc3Qgbj1uZXcgRXJyb3JFdmVudCgiZXJyb3IiLHtjb2RlOnQsbWVzc2FnZTplfSk7bnVsbD09KHI9Rih0aGlzLHkpKXx8ci5jYWxsKHRoaXMsbiksdGhpcy5kaXNwYXRjaEV2ZW50KG4pLGoodGhpcyxwLHNldFRpbWVvdXQoRih0aGlzLFApLEYodGhpcyxkKSkpfSxQPW5ldyBXZWFrTWFwLEV2ZW50U291cmNlLkNPTk5FQ1RJTkc9MCxFdmVudFNvdXJjZS5PUEVOPTEsRXZlbnRTb3VyY2UuQ0xPU0VEPTJ9LDcxNDY4OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7ci5kKHQse0txOmZ1bmN0aW9uKCl7cmV0dXJuIG9lfSxOZzpmdW5jdGlvbigpe3JldHVybiBuZX0sZDQ6ZnVuY3Rpb24oKXtyZXR1cm4gcGV9LHdBOmZ1bmN0aW9uKCl7cmV0dXJuIGxlfX0pO3ZhciBuPXIoOTY1NDApLG89cig3ODQxOCksaT1uLnZlcnNpb24uc3RhcnRzV2l0aCgiMTkiKSxhPVN5bWJvbC5mb3IoaT8icmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnQiOiJyZWFjdC5lbGVtZW50Iikscz1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSxjPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksdT1TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLGw9U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSxmPVN5bWJvbC5mb3IoInJlYWN0LmNvbnN1bWVyIiksZD1TeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0IikscD1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLF89U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxoPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlX2xpc3QiKSxtPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSx5PVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSxnPXAsdj1tO2Z1bmN0aW9uIGIoZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSl7Y29uc3R7JCR0eXBlb2Y6dH09ZTtzd2l0Y2godCl7Y2FzZSBhOnN3aXRjaChlPWUudHlwZSl7Y2FzZSBjOmNhc2UgbDpjYXNlIHU6Y2FzZSBfOmNhc2UgaDpyZXR1cm4gZTtkZWZhdWx0OnN3aXRjaChlPWUmJmUuJCR0eXBlb2Ype2Nhc2UgZDpjYXNlIHA6Y2FzZSB5OmNhc2UgbTpjYXNlIGY6cmV0dXJuIGU7ZGVmYXVsdDpyZXR1cm4gdH19Y2FzZSBzOnJldHVybiB0fX19ZnVuY3Rpb24gdyhlLHQscixuLHthcmVTdGF0ZXNFcXVhbDpvLGFyZU93blByb3BzRXF1YWw6aSxhcmVTdGF0ZVByb3BzRXF1YWw6YX0pe2xldCBzLGMsdSxsLGYsZD0hMTtmdW5jdGlvbiBwKGQscCl7Y29uc3QgXz0haShwLGMpLGg9IW8oZCxzLHAsYyk7cmV0dXJuIHM9ZCxjPXAsXyYmaD8odT1lKHMsYyksdC5kZXBlbmRzT25Pd25Qcm9wcyYmKGw9dChuLGMpKSxmPXIodSxsLGMpLGYpOl8/KGUuZGVwZW5kc09uT3duUHJvcHMmJih1PWUocyxjKSksdC5kZXBlbmRzT25Pd25Qcm9wcyYmKGw9dChuLGMpKSxmPXIodSxsLGMpLGYpOmg/ZnVuY3Rpb24oKXtjb25zdCB0PWUocyxjKSxuPSFhKHQsdSk7cmV0dXJuIHU9dCxuJiYoZj1yKHUsbCxjKSksZn0oKTpmfXJldHVybiBmdW5jdGlvbihvLGkpe3JldHVybiBkP3AobyxpKToocz1vLGM9aSx1PWUocyxjKSxsPXQobixjKSxmPXIodSxsLGMpLGQ9ITAsZil9fWZ1bmN0aW9uIFMoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2NvbnN0IHI9ZSh0KTtmdW5jdGlvbiBuKCl7cmV0dXJuIHJ9cmV0dXJuIG4uZGVwZW5kc09uT3duUHJvcHM9ITEsbn19ZnVuY3Rpb24gayhlKXtyZXR1cm4gZS5kZXBlbmRzT25Pd25Qcm9wcz9Cb29sZWFuKGUuZGVwZW5kc09uT3duUHJvcHMpOjEhPT1lLmxlbmd0aH1mdW5jdGlvbiB4KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHQse2Rpc3BsYXlOYW1lOnJ9KXtjb25zdCBuPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uZGVwZW5kc09uT3duUHJvcHM/bi5tYXBUb1Byb3BzKGUsdCk6bi5tYXBUb1Byb3BzKGUsdm9pZCAwKX07cmV0dXJuIG4uZGVwZW5kc09uT3duUHJvcHM9ITAsbi5tYXBUb1Byb3BzPWZ1bmN0aW9uKHQscil7bi5tYXBUb1Byb3BzPWUsbi5kZXBlbmRzT25Pd25Qcm9wcz1rKGUpO2xldCBvPW4odCxyKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgbyYmKG4ubWFwVG9Qcm9wcz1vLG4uZGVwZW5kc09uT3duUHJvcHM9ayhvKSxvPW4odCxyKSksb30sbn19ZnVuY3Rpb24gRShlLHQpe3JldHVybihyLG4pPT57dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHZhbHVlIG9mIHR5cGUgJHt0eXBlb2YgZX0gZm9yICR7dH0gYXJndW1lbnQgd2hlbiBjb25uZWN0aW5nIGNvbXBvbmVudCAke24ud3JhcHBlZENvbXBvbmVudE5hbWV9LmApfX1mdW5jdGlvbiBBKGUsdCxyKXtyZXR1cm57Li4uciwuLi5lLC4uLnR9fWZ1bmN0aW9uIFQoZSl7ZSgpfXZhciBSPXtub3RpZnkoKXt9LGdldDooKT0+W119O2Z1bmN0aW9uIFAoZSx0KXtsZXQgcixuPVIsbz0wLGk9ITE7ZnVuY3Rpb24gYSgpe3Uub25TdGF0ZUNoYW5nZSYmdS5vblN0YXRlQ2hhbmdlKCl9ZnVuY3Rpb24gcygpe28rKyxyfHwocj10P3QuYWRkTmVzdGVkU3ViKGEpOmUuc3Vic2NyaWJlKGEpLG49ZnVuY3Rpb24oKXtsZXQgZT1udWxsLHQ9bnVsbDtyZXR1cm57Y2xlYXIoKXtlPW51bGwsdD1udWxsfSxub3RpZnkoKXtUKCgoKT0+e2xldCB0PWU7Zm9yKDt0Oyl0LmNhbGxiYWNrKCksdD10Lm5leHR9KSl9LGdldCgpe2NvbnN0IHQ9W107bGV0IHI9ZTtmb3IoO3I7KXQucHVzaChyKSxyPXIubmV4dDtyZXR1cm4gdH0sc3Vic2NyaWJlKHIpe2xldCBuPSEwO2NvbnN0IG89dD17Y2FsbGJhY2s6cixuZXh0Om51bGwscHJldjp0fTtyZXR1cm4gby5wcmV2P28ucHJldi5uZXh0PW86ZT1vLGZ1bmN0aW9uKCl7biYmbnVsbCE9PWUmJihuPSExLG8ubmV4dD9vLm5leHQucHJldj1vLnByZXY6dD1vLnByZXYsby5wcmV2P28ucHJldi5uZXh0PW8ubmV4dDplPW8ubmV4dCl9fX19KCkpfWZ1bmN0aW9uIGMoKXtvLS0sciYmMD09PW8mJihyKCkscj12b2lkIDAsbi5jbGVhcigpLG49Uil9Y29uc3QgdT17YWRkTmVzdGVkU3ViOmZ1bmN0aW9uKGUpe3MoKTtjb25zdCB0PW4uc3Vic2NyaWJlKGUpO2xldCByPSExO3JldHVybigpPT57cnx8KHI9ITAsdCgpLGMoKSl9fSxub3RpZnlOZXN0ZWRTdWJzOmZ1bmN0aW9uKCl7bi5ub3RpZnkoKX0saGFuZGxlQ2hhbmdlV3JhcHBlcjphLGlzU3Vic2NyaWJlZDpmdW5jdGlvbigpe3JldHVybiBpfSx0cnlTdWJzY3JpYmU6ZnVuY3Rpb24oKXtpfHwoaT0hMCxzKCkpfSx0cnlVbnN1YnNjcmliZTpmdW5jdGlvbigpe2kmJihpPSExLGMoKSl9LGdldExpc3RlbmVyczooKT0+bn07cmV0dXJuIHV9dmFyIE89KCgpPT4hKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93fHx2b2lkIDA9PT13aW5kb3cuZG9jdW1lbnR8fHZvaWQgMD09PXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KSkoKSxNPSgoKT0+InVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJiJSZWFjdE5hdGl2ZSI9PT1uYXZpZ2F0b3IucHJvZHVjdCkoKSxGPSgoKT0+T3x8TT9uLnVzZUxheW91dEVmZmVjdDpuLnVzZUVmZmVjdCkoKTtmdW5jdGlvbiBJKGUsdCl7cmV0dXJuIGU9PT10PzAhPT1lfHwwIT09dHx8MS9lPT0xL3Q6ZSE9ZSYmdCE9dH1mdW5jdGlvbiBqKGUsdCl7aWYoSShlLHQpKXJldHVybiEwO2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWV8fCJvYmplY3QiIT10eXBlb2YgdHx8bnVsbD09PXQpcmV0dXJuITE7Y29uc3Qgcj1PYmplY3Qua2V5cyhlKSxuPU9iamVjdC5rZXlzKHQpO2lmKHIubGVuZ3RoIT09bi5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKyspaWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHJbbl0pfHwhSShlW3Jbbl1dLHRbcltuXV0pKXJldHVybiExO3JldHVybiEwfXZhciBEPXtjaGlsZENvbnRleHRUeXBlczohMCxjb250ZXh0VHlwZTohMCxjb250ZXh0VHlwZXM6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLGdldERlZmF1bHRQcm9wczohMCxnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I6ITAsZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOiEwLG1peGluczohMCxwcm9wVHlwZXM6ITAsdHlwZTohMH0sTD17bmFtZTohMCxsZW5ndGg6ITAscHJvdG90eXBlOiEwLGNhbGxlcjohMCxjYWxsZWU6ITAsYXJndW1lbnRzOiEwLGFyaXR5OiEwfSxVPXskJHR5cGVvZjohMCxjb21wYXJlOiEwLGRlZmF1bHRQcm9wczohMCxkaXNwbGF5TmFtZTohMCxwcm9wVHlwZXM6ITAsdHlwZTohMH0sej17W2ddOnskJHR5cGVvZjohMCxyZW5kZXI6ITAsZGVmYXVsdFByb3BzOiEwLGRpc3BsYXlOYW1lOiEwLHByb3BUeXBlczohMH0sW3ZdOlV9O2Z1bmN0aW9uIEIoZSl7cmV0dXJuIGIoZSk9PT1tP1U6eltlLiQkdHlwZW9mXXx8RH12YXIgSD1PYmplY3QuZGVmaW5lUHJvcGVydHksVz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcywkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMscT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLEc9T2JqZWN0LmdldFByb3RvdHlwZU9mLFY9T2JqZWN0LnByb3RvdHlwZTtmdW5jdGlvbiBZKGUsdCl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXtpZihWKXtjb25zdCByPUcodCk7ciYmciE9PVYmJlkoZSxyKX1sZXQgcj1XKHQpOyQmJihyPXIuY29uY2F0KCQodCkpKTtjb25zdCBuPUIoZSksbz1CKHQpO2ZvcihsZXQgaT0wO2k8ci5sZW5ndGg7KytpKXtjb25zdCBhPXJbaV07aWYoIShMW2FdfHxvJiZvW2FdfHxuJiZuW2FdKSl7Y29uc3Qgcj1xKHQsYSk7dHJ5e0goZSxhLHIpfWNhdGNoKGUpe319fX1yZXR1cm4gZX12YXIgSz1TeW1ib2wuZm9yKCJyZWFjdC1yZWR1eC1jb250ZXh0IiksWD0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczp7fTtmdW5jdGlvbiBaKCl7aWYoIW4uY3JlYXRlQ29udGV4dClyZXR1cm57fTtjb25zdCBlPVhbS10/Pz1uZXcgTWFwO2xldCB0PWUuZ2V0KG4uY3JlYXRlQ29udGV4dCk7cmV0dXJuIHR8fCh0PW4uY3JlYXRlQ29udGV4dChudWxsKSxlLnNldChuLmNyZWF0ZUNvbnRleHQsdCkpLHR9dmFyIFE9WigpLGVlPVtudWxsLG51bGxdO2Z1bmN0aW9uIHRlKGUsdCxyLG4sbyxpKXtlLmN1cnJlbnQ9bixyLmN1cnJlbnQ9ITEsby5jdXJyZW50JiYoby5jdXJyZW50PW51bGwsaSgpKX1mdW5jdGlvbiByZShlLHQpe3JldHVybiBlPT09dH12YXIgbmU9ZnVuY3Rpb24oZSx0LHIse3B1cmU6byxhcmVTdGF0ZXNFcXVhbDppPXJlLGFyZU93blByb3BzRXF1YWw6YT1qLGFyZVN0YXRlUHJvcHNFcXVhbDpzPWosYXJlTWVyZ2VkUHJvcHNFcXVhbDpjPWosZm9yd2FyZFJlZjp1PSExLGNvbnRleHQ6bD1RfT17fSl7Y29uc3QgZj1sLGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGU/ImZ1bmN0aW9uIj09dHlwZW9mIGU/eChlKTpFKGUsIm1hcFN0YXRlVG9Qcm9wcyIpOlMoKCgpPT4oe30pKSl9KGUpLHA9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJvYmplY3QiPT10eXBlb2YgZT9TKCh0PT5mdW5jdGlvbihlLHQpe2NvbnN0IHI9e307Zm9yKGNvbnN0IG4gaW4gZSl7Y29uc3Qgbz1lW25dOyJmdW5jdGlvbiI9PXR5cGVvZiBvJiYocltuXT0oLi4uZSk9PnQobyguLi5lKSkpfXJldHVybiByfShlLHQpKSk6ZT8iZnVuY3Rpb24iPT10eXBlb2YgZT94KGUpOkUoZSwibWFwRGlzcGF0Y2hUb1Byb3BzIik6UygoZT0+KHtkaXNwYXRjaDplfSkpKX0odCksXz1mdW5jdGlvbihlKXtyZXR1cm4gZT8iZnVuY3Rpb24iPT10eXBlb2YgZT9mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCx7ZGlzcGxheU5hbWU6cixhcmVNZXJnZWRQcm9wc0VxdWFsOm59KXtsZXQgbyxpPSExO3JldHVybiBmdW5jdGlvbih0LHIsYSl7Y29uc3Qgcz1lKHQscixhKTtyZXR1cm4gaT9uKHMsbyl8fChvPXMpOihpPSEwLG89cyksb319fShlKTpFKGUsIm1lcmdlUHJvcHMiKTooKT0+QX0ociksaD1Cb29sZWFuKGUpO3JldHVybiBlPT57Y29uc3QgdD1lLmRpc3BsYXlOYW1lfHxlLm5hbWV8fCJDb21wb25lbnQiLHI9YENvbm5lY3QoJHt0fSlgLG89e3Nob3VsZEhhbmRsZVN0YXRlQ2hhbmdlczpoLGRpc3BsYXlOYW1lOnIsd3JhcHBlZENvbXBvbmVudE5hbWU6dCxXcmFwcGVkQ29tcG9uZW50OmUsaW5pdE1hcFN0YXRlVG9Qcm9wczpkLGluaXRNYXBEaXNwYXRjaFRvUHJvcHM6cCxpbml0TWVyZ2VQcm9wczpfLGFyZVN0YXRlc0VxdWFsOmksYXJlU3RhdGVQcm9wc0VxdWFsOnMsYXJlT3duUHJvcHNFcXVhbDphLGFyZU1lcmdlZFByb3BzRXF1YWw6Y307ZnVuY3Rpb24gbCh0KXtjb25zdFtyLGksYV09bi51c2VNZW1vKCgoKT0+e2NvbnN0e3JlYWN0UmVkdXhGb3J3YXJkZWRSZWY6ZSwuLi5yfT10O3JldHVyblt0LmNvbnRleHQsZSxyXX0pLFt0XSkscz1uLnVzZU1lbW8oKCgpPT5mKSxbcixmXSksYz1uLnVzZUNvbnRleHQocyksdT1Cb29sZWFuKHQuc3RvcmUpJiZCb29sZWFuKHQuc3RvcmUuZ2V0U3RhdGUpJiZCb29sZWFuKHQuc3RvcmUuZGlzcGF0Y2gpLGw9Qm9vbGVhbihjKSYmQm9vbGVhbihjLnN0b3JlKTtjb25zdCBkPXU/dC5zdG9yZTpjLnN0b3JlLHA9bD9jLmdldFNlcnZlclN0YXRlOmQuZ2V0U3RhdGUsXz1uLnVzZU1lbW8oKCgpPT5mdW5jdGlvbihlLHtpbml0TWFwU3RhdGVUb1Byb3BzOnQsaW5pdE1hcERpc3BhdGNoVG9Qcm9wczpyLGluaXRNZXJnZVByb3BzOm4sLi4ub30pe3JldHVybiB3KHQoZSxvKSxyKGUsbyksbihlLG8pLGUsbyl9KGQuZGlzcGF0Y2gsbykpLFtkXSksW20seV09bi51c2VNZW1vKCgoKT0+e2lmKCFoKXJldHVybiBlZTtjb25zdCBlPVAoZCx1P3ZvaWQgMDpjLnN1YnNjcmlwdGlvbiksdD1lLm5vdGlmeU5lc3RlZFN1YnMuYmluZChlKTtyZXR1cm5bZSx0XX0pLFtkLHUsY10pLGc9bi51c2VNZW1vKCgoKT0+dT9jOnsuLi5jLHN1YnNjcmlwdGlvbjptfSksW3UsYyxtXSksdj1uLnVzZVJlZih2b2lkIDApLGI9bi51c2VSZWYoYSksUz1uLnVzZVJlZih2b2lkIDApLGs9bi51c2VSZWYoITEpLHg9bi51c2VSZWYoITEpLEU9bi51c2VSZWYodm9pZCAwKTtGKCgoKT0+KHguY3VycmVudD0hMCwoKT0+e3guY3VycmVudD0hMX0pKSxbXSk7Y29uc3QgQT1uLnVzZU1lbW8oKCgpPT4oKT0+Uy5jdXJyZW50JiZhPT09Yi5jdXJyZW50P1MuY3VycmVudDpfKGQuZ2V0U3RhdGUoKSxhKSksW2QsYV0pLFQ9bi51c2VNZW1vKCgoKT0+ZT0+bT9mdW5jdGlvbihlLHQscixuLG8saSxhLHMsYyx1LGwpe2lmKCFlKXJldHVybigpPT57fTtsZXQgZj0hMSxkPW51bGw7Y29uc3QgcD0oKT0+e2lmKGZ8fCFzLmN1cnJlbnQpcmV0dXJuO2NvbnN0IGU9dC5nZXRTdGF0ZSgpO2xldCByLHA7dHJ5e3I9bihlLG8uY3VycmVudCl9Y2F0Y2goZSl7cD1lLGQ9ZX1wfHwoZD1udWxsKSxyPT09aS5jdXJyZW50P2EuY3VycmVudHx8dSgpOihpLmN1cnJlbnQ9cixjLmN1cnJlbnQ9cixhLmN1cnJlbnQ9ITAsbCgpKX07cmV0dXJuIHIub25TdGF0ZUNoYW5nZT1wLHIudHJ5U3Vic2NyaWJlKCkscCgpLCgpPT57aWYoZj0hMCxyLnRyeVVuc3Vic2NyaWJlKCksci5vblN0YXRlQ2hhbmdlPW51bGwsZCl0aHJvdyBkfX0oaCxkLG0sXyxiLHYsayx4LFMseSxlKTooKT0+e30pLFttXSk7dmFyIFIsTyxNO2xldCBJO1I9dGUsTz1bYix2LGssYSxTLHldLEYoKCgpPT5SKC4uLk8pKSxNKTt0cnl7ST1uLnVzZVN5bmNFeHRlcm5hbFN0b3JlKFQsQSxwPygpPT5fKHAoKSxhKTpBKX1jYXRjaChlKXt0aHJvdyBFLmN1cnJlbnQmJihlLm1lc3NhZ2UrPWBcblRoZSBlcnJvciBtYXkgYmUgY29ycmVsYXRlZCB3aXRoIHRoaXMgcHJldmlvdXMgZXJyb3I6XG4ke0UuY3VycmVudC5zdGFja31cblxuYCksZX1GKCgoKT0+e0UuY3VycmVudD12b2lkIDAsUy5jdXJyZW50PXZvaWQgMCx2LmN1cnJlbnQ9SX0pKTtjb25zdCBqPW4udXNlTWVtbygoKCk9Pm4uY3JlYXRlRWxlbWVudChlLHsuLi5JLHJlZjppfSkpLFtpLGUsSV0pO3JldHVybiBuLnVzZU1lbW8oKCgpPT5oP24uY3JlYXRlRWxlbWVudChzLlByb3ZpZGVyLHt2YWx1ZTpnfSxqKTpqKSxbcyxqLGddKX1jb25zdCBtPW4ubWVtbyhsKTtpZihtLldyYXBwZWRDb21wb25lbnQ9ZSxtLmRpc3BsYXlOYW1lPWwuZGlzcGxheU5hbWU9cix1KXtjb25zdCB0PW4uZm9yd2FyZFJlZigoZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5jcmVhdGVFbGVtZW50KG0sey4uLmUscmVhY3RSZWR1eEZvcndhcmRlZFJlZjp0fSl9KSk7cmV0dXJuIHQuZGlzcGxheU5hbWU9cix0LldyYXBwZWRDb21wb25lbnQ9ZSxZKHQsZSl9cmV0dXJuIFkobSxlKX19O3ZhciBvZT1mdW5jdGlvbihlKXtjb25zdHtjaGlsZHJlbjp0LGNvbnRleHQ6cixzZXJ2ZXJTdGF0ZTpvLHN0b3JlOml9PWUsYT1uLnVzZU1lbW8oKCgpPT57Y29uc3QgZT1QKGkpO3JldHVybntzdG9yZTppLHN1YnNjcmlwdGlvbjplLGdldFNlcnZlclN0YXRlOm8/KCk9Pm86dm9pZCAwfX0pLFtpLG9dKSxzPW4udXNlTWVtbygoKCk9PmkuZ2V0U3RhdGUoKSksW2ldKTtGKCgoKT0+e2NvbnN0e3N1YnNjcmlwdGlvbjplfT1hO3JldHVybiBlLm9uU3RhdGVDaGFuZ2U9ZS5ub3RpZnlOZXN0ZWRTdWJzLGUudHJ5U3Vic2NyaWJlKCkscyE9PWkuZ2V0U3RhdGUoKSYmZS5ub3RpZnlOZXN0ZWRTdWJzKCksKCk9PntlLnRyeVVuc3Vic2NyaWJlKCksZS5vblN0YXRlQ2hhbmdlPXZvaWQgMH19KSxbYSxzXSk7Y29uc3QgYz1yfHxRO3JldHVybiBuLmNyZWF0ZUVsZW1lbnQoYy5Qcm92aWRlcix7dmFsdWU6YX0sdCl9O2Z1bmN0aW9uIGllKGU9USl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG4udXNlQ29udGV4dChlKX19dmFyIGFlPWllKCk7ZnVuY3Rpb24gc2UoZT1RKXtjb25zdCB0PWU9PT1RP2FlOmllKGUpLHI9KCk9Pntjb25zdHtzdG9yZTplfT10KCk7cmV0dXJuIGV9O3JldHVybiBPYmplY3QuYXNzaWduKHIse3dpdGhUeXBlczooKT0+cn0pLHJ9dmFyIGNlPXNlKCk7ZnVuY3Rpb24gdWUoZT1RKXtjb25zdCB0PWU9PT1RP2NlOnNlKGUpLHI9KCk9PnQoKS5kaXNwYXRjaDtyZXR1cm4gT2JqZWN0LmFzc2lnbihyLHt3aXRoVHlwZXM6KCk9PnJ9KSxyfXZhciBsZT11ZSgpLGZlPShlLHQpPT5lPT09dDtmdW5jdGlvbiBkZShlPVEpe2NvbnN0IHQ9ZT09PVE/YWU6aWUoZSkscj0oZSxyPXt9KT0+e2NvbnN0e2VxdWFsaXR5Rm46aT1mZX09ImZ1bmN0aW9uIj09dHlwZW9mIHI/e2VxdWFsaXR5Rm46cn06cjtjb25zdCBhPXQoKSx7c3RvcmU6cyxzdWJzY3JpcHRpb246YyxnZXRTZXJ2ZXJTdGF0ZTp1fT1hLGw9KG4udXNlUmVmKCEwKSxuLnVzZUNhbGxiYWNrKHtbZS5uYW1lXSh0KXtyZXR1cm4gZSh0KX19W2UubmFtZV0sW2VdKSksZj0oMCxvLnVzZVN5bmNFeHRlcm5hbFN0b3JlV2l0aFNlbGVjdG9yKShjLmFkZE5lc3RlZFN1YixzLmdldFN0YXRlLHV8fHMuZ2V0U3RhdGUsbCxpKTtyZXR1cm4gbi51c2VEZWJ1Z1ZhbHVlKGYpLGZ9O3JldHVybiBPYmplY3QuYXNzaWduKHIse3dpdGhUeXBlczooKT0+cn0pLHJ9dmFyIHBlPWRlKCl9LDE0NjQ0OmZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlKXtyZXR1cm5gTWluaWZpZWQgUmVkdXggZXJyb3IgIyR7ZX07IHZpc2l0IGh0dHBzOi8vcmVkdXguanMub3JnL0Vycm9ycz9jb2RlPSR7ZX0gZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycy4gYH1yLmQodCx7SFk6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sUWQ6ZnVuY3Rpb24oKXtyZXR1cm4gc30sVHc6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sWno6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sdmU6ZnVuY3Rpb24oKXtyZXR1cm4gX30seSQ6ZnVuY3Rpb24oKXtyZXR1cm4gY30sekg6ZnVuY3Rpb24oKXtyZXR1cm4gZn19KTt2YXIgbz0oKCk9PiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIikoKSxpPSgpPT5NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoNykuc3BsaXQoIiIpLmpvaW4oIi4iKSxhPXtJTklUOmBAQHJlZHV4L0lOSVQke2koKX1gLFJFUExBQ0U6YEBAcmVkdXgvUkVQTEFDRSR7aSgpfWAsUFJPQkVfVU5LTk9XTl9BQ1RJT046KCk9PmBAQHJlZHV4L1BST0JFX1VOS05PV05fQUNUSU9OJHtpKCl9YH07ZnVuY3Rpb24gcyhlKXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiExO2xldCB0PWU7Zm9yKDtudWxsIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpOyl0PU9iamVjdC5nZXRQcm90b3R5cGVPZih0KTtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09dHx8bnVsbD09PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKX1mdW5jdGlvbiBjKGUsdCxyKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IobigyKSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiByfHwiZnVuY3Rpb24iPT10eXBlb2YgciYmImZ1bmN0aW9uIj09dHlwZW9mIGFyZ3VtZW50c1szXSl0aHJvdyBuZXcgRXJyb3IobigwKSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQmJnZvaWQgMD09PXImJihyPXQsdD12b2lkIDApLHZvaWQgMCE9PXIpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiByKXRocm93IG5ldyBFcnJvcihuKDEpKTtyZXR1cm4gcihjKShlLHQpfWxldCBpPWUsdT10LGw9bmV3IE1hcCxmPWwsZD0wLHA9ITE7ZnVuY3Rpb24gXygpe2Y9PT1sJiYoZj1uZXcgTWFwLGwuZm9yRWFjaCgoKGUsdCk9PntmLnNldCh0LGUpfSkpKX1mdW5jdGlvbiBoKCl7aWYocCl0aHJvdyBuZXcgRXJyb3IobigzKSk7cmV0dXJuIHV9ZnVuY3Rpb24gbShlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3Iobig0KSk7aWYocCl0aHJvdyBuZXcgRXJyb3Iobig1KSk7bGV0IHQ9ITA7XygpO2NvbnN0IHI9ZCsrO3JldHVybiBmLnNldChyLGUpLGZ1bmN0aW9uKCl7aWYodCl7aWYocCl0aHJvdyBuZXcgRXJyb3Iobig2KSk7dD0hMSxfKCksZi5kZWxldGUociksbD1udWxsfX19ZnVuY3Rpb24geShlKXtpZighcyhlKSl0aHJvdyBuZXcgRXJyb3Iobig3KSk7aWYodm9pZCAwPT09ZS50eXBlKXRocm93IG5ldyBFcnJvcihuKDgpKTtpZigic3RyaW5nIiE9dHlwZW9mIGUudHlwZSl0aHJvdyBuZXcgRXJyb3IobigxNykpO2lmKHApdGhyb3cgbmV3IEVycm9yKG4oOSkpO3RyeXtwPSEwLHU9aSh1LGUpfWZpbmFsbHl7cD0hMX1yZXR1cm4obD1mKS5mb3JFYWNoKChlPT57ZSgpfSkpLGV9eSh7dHlwZTphLklOSVR9KTtyZXR1cm57ZGlzcGF0Y2g6eSxzdWJzY3JpYmU6bSxnZXRTdGF0ZTpoLHJlcGxhY2VSZWR1Y2VyOmZ1bmN0aW9uKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcihuKDEwKSk7aT1lLHkoe3R5cGU6YS5SRVBMQUNFfSl9LFtvXTpmdW5jdGlvbigpe2NvbnN0IGU9bTtyZXR1cm57c3Vic2NyaWJlKHQpe2lmKCJvYmplY3QiIT10eXBlb2YgdHx8bnVsbD09PXQpdGhyb3cgbmV3IEVycm9yKG4oMTEpKTtmdW5jdGlvbiByKCl7Y29uc3QgZT10O2UubmV4dCYmZS5uZXh0KGgoKSl9cigpO3JldHVybnt1bnN1YnNjcmliZTplKHIpfX0sW29dKCl7cmV0dXJuIHRoaXN9fX19fWZ1bmN0aW9uIHUoZSl7Y29uc3QgdD1PYmplY3Qua2V5cyhlKSxyPXt9O2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtjb25zdCBvPXRbbl07MCwiZnVuY3Rpb24iPT10eXBlb2YgZVtvXSYmKHJbb109ZVtvXSl9Y29uc3Qgbz1PYmplY3Qua2V5cyhyKTtsZXQgaTt0cnl7IWZ1bmN0aW9uKGUpe09iamVjdC5rZXlzKGUpLmZvckVhY2goKHQ9Pntjb25zdCByPWVbdF07aWYodm9pZCAwPT09cih2b2lkIDAse3R5cGU6YS5JTklUfSkpdGhyb3cgbmV3IEVycm9yKG4oMTIpKTtpZih2b2lkIDA9PT1yKHZvaWQgMCx7dHlwZTphLlBST0JFX1VOS05PV05fQUNUSU9OKCl9KSl0aHJvdyBuZXcgRXJyb3IobigxMykpfSkpfShyKX1jYXRjaChlKXtpPWV9cmV0dXJuIGZ1bmN0aW9uKGU9e30sdCl7aWYoaSl0aHJvdyBpO2xldCBhPSExO2NvbnN0IHM9e307Zm9yKGxldCBpPTA7aTxvLmxlbmd0aDtpKyspe2NvbnN0IGM9b1tpXSx1PXJbY10sbD1lW2NdLGY9dShsLHQpO2lmKHZvaWQgMD09PWYpe3QmJnQudHlwZTt0aHJvdyBuZXcgRXJyb3IobigxNCkpfXNbY109ZixhPWF8fGYhPT1sfXJldHVybiBhPWF8fG8ubGVuZ3RoIT09T2JqZWN0LmtleXMoZSkubGVuZ3RoLGE/czplfX1mdW5jdGlvbiBsKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKC4uLnIpe3JldHVybiB0KGUuYXBwbHkodGhpcyxyKSl9fWZ1bmN0aW9uIGYoZSx0KXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZSlyZXR1cm4gbChlLHQpO2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpdGhyb3cgbmV3IEVycm9yKG4oMTYpKTtjb25zdCByPXt9O2Zvcihjb25zdCBuIGluIGUpe2NvbnN0IG89ZVtuXTsiZnVuY3Rpb24iPT10eXBlb2YgbyYmKHJbbl09bChvLHQpKX1yZXR1cm4gcn1mdW5jdGlvbiBkKC4uLmUpe3JldHVybiAwPT09ZS5sZW5ndGg/ZT0+ZToxPT09ZS5sZW5ndGg/ZVswXTplLnJlZHVjZSgoKGUsdCk9PiguLi5yKT0+ZSh0KC4uLnIpKSkpfWZ1bmN0aW9uIHAoLi4uZSl7cmV0dXJuIHQ9PihyLG8pPT57Y29uc3QgaT10KHIsbyk7bGV0IGE9KCk9Pnt0aHJvdyBuZXcgRXJyb3IobigxNSkpfTtjb25zdCBzPXtnZXRTdGF0ZTppLmdldFN0YXRlLGRpc3BhdGNoOihlLC4uLnQpPT5hKGUsLi4udCl9LGM9ZS5tYXAoKGU9PmUocykpKTtyZXR1cm4gYT1kKC4uLmMpKGkuZGlzcGF0Y2gpLHsuLi5pLGRpc3BhdGNoOmF9fX1mdW5jdGlvbiBfKGUpe3JldHVybiBzKGUpJiYidHlwZSJpbiBlJiYic3RyaW5nIj09dHlwZW9mIGUudHlwZX19LDI2NzY1OmZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJhX2JfdGVzdGluZ19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiVGVzdCBkaWZmZXJlbnQgbWVzc2FnZSB2YXJpYXRpb25zIGFuZCBjaG9vc2UgdGhlIHdpbm5pbmcgdmFyaWFibGUuIiwiYV9iX3Rlc3RpbmdfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkEvQiB0ZXN0aW5nIiwiYV9iX3Rlc3RpbmdfZmVhdHVyZV90aXRsZSI6IkEvQiB0ZXN0aW5nIiwiYV9kYXkiOiJBIGRheSIsImFfZmV3X2hvdXJzIjoiQSBmZXcgaG91cnMiLCJhX2Zld19taW51dGVzIjoiQSBmZXcgbWludXRlcyIsImFfd2VlayI6IkEgd2VlayIsImFjY291bnRfb3duZXJzaGlwX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJTZXQgYW4gb3duZXIgZm9yIHlvdXIgbGVhZHMgYW5kIHVzZXJzIHNvIHlvdSBjYW4gYXV0by1hc3NpZ24gbWVzc2FnZXMgdG8gb3duZXJzLCBnZXQgYWxlcnRzLCBhbmQgZWFzaWx5IG1vbml0b3IgYW5kIG1lc3NhZ2UgYWNjb3VudHMuIiwiYWNjb3VudF9vd25lcnNoaXBfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkFjY291bnQgb3duZXJzaGlwIiwiYWNjb3VudF9vd25lcnNoaXBfZmVhdHVyZV90aXRsZSI6IkFjY291bnQgb3duZXJzaGlwIiwiYWN0aW9uX3RlbXBsYXRlc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQ29ubmVjdCBGaW4gdG8gdGhlIGRhdGEgc291cmNlcyBhbmQgc3lzdGVtcyB5b3UgdXNlIGRhaWx54oCUbm8gY29kZSByZXF1aXJlZOKAlHdpdGggcmVhZHktbWFkZSB0ZW1wbGF0ZXMgZm9yIFN0cmlwZSwgU2hvcGlmeSBhbmQgbW9yZS4iLCJhY3Rpb25fdGVtcGxhdGVzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJBY3Rpb24gdGVtcGxhdGVzIiwiYWN0aW9uX3RlbXBsYXRlc19mZWF0dXJlX3RpdGxlIjoiQWN0aW9uIHRlbXBsYXRlcyIsImFjdGl2ZV8xNW1fYWdvIjoiQWN0aXZlIGluIHRoZSBsYXN0IHttaW51dGVzfW0iLCJhY3RpdmVfZGF5X2FnbyI6IkFjdGl2ZSB7ZGF5c31kIGFnbyIsImFjdGl2ZV9ob3VyX2FnbyI6IkFjdGl2ZSB7aG91cnN9aCBhZ28iLCJhY3RpdmVfbWludXRlX2FnbyI6IkFjdGl2ZSB7bWludXRlc31tIGFnbyIsImFjdGl2ZV9zdGF0ZSI6IkFjdGl2ZSIsImFjdGl2ZV93ZWVrX2FnbyI6IkFjdGl2ZSBvdmVyIDF3IGFnbyIsImFjdGl2aXRpZXMiOiJBY3Rpdml0aWVzIiwiYWRkX3BhcnRpY2lwYW50IjoiQWRkIHBhcnRpY2lwYW50IiwiYWRkX3BlcnNvbiI6IkFkZCBwZXJzb24iLCJhZHZhbmNlZF9xdWFsaWZpY2F0aW9uX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJDYXRlZ29yaXplIGxlYWRzIGJhc2VkIG9uIGRpZmZlcmVudCBydWxlcyBzbyB5b3UgY2FuIGZvbGxvdyB1cCB3aXRoIGVhY2ggY2F0ZWdvcnkgZGlmZmVyZW50bHkuIiwiYWR2YW5jZWRfcXVhbGlmaWNhdGlvbl9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQWR2YW5jZWQgcXVhbGlmaWNhdGlvbiIsImFkdmFuY2VkX3F1YWxpZmljYXRpb25fZmVhdHVyZV90aXRsZSI6IkFkdmFuY2VkIHF1YWxpZmljYXRpb24iLCJhZ3JlZV90b19wcml2YWN5X3BvbGljeSI6IkJ5IGNoYXR0aW5nIHdpdGggdXMsIHlvdSBhZ3JlZSB0byBvdXIge3ByaXZhY3lfcG9saWN5fS4iLCJhaV9hbnN3ZXIiOiJBSSBBbnN3ZXIiLCJhaV9hbnN3ZXJfaW5mb3JtYXRpb24iOiJBSSBBbnN3ZXIsIGluZm9ybWF0aW9uIiwiYWlfYXV0b2ZpbGxfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkF1dG9tYXRpY2FsbHkgcG9wdWxhdGUga2V5IGluZm9ybWF0aW9uIGZyb20gY29udmVyc2F0aW9ucyBmb3IgdGlja2V0IGF0dHJpYnV0ZXMuIiwiYWlfYXV0b2ZpbGxfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkFJIEF1dG9maWxsIiwiYWlfYXV0b2ZpbGxfZmVhdHVyZV90aXRsZSI6IkFJIEF1dG9maWxsIiwiYWlfYm90IjoiQUkgQm90IiwiYWlfY2F0ZWdvcnlfZGV0ZWN0aW9uX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJGaW4gY2FuIGNhdGVnb3JpemUgY29udmVyc2F0aW9ucyBieSB0b3BpY3MgaW4gb3JkZXIgdG8gb3B0aW1pemUgd29ya2Zsb3dzIGFuZCBzdHJlYW1saW5pbmcgY29udmVyc2F0aW9uIHJvdXRpbmcgdG8geW91ciB0ZWFtLiIsImFpX2NhdGVnb3J5X2RldGVjdGlvbl9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQUkgQ2F0ZWdvcnkgRGV0ZWN0aW9uIiwiYWlfY2F0ZWdvcnlfZGV0ZWN0aW9uX2ZlYXR1cmVfdGl0bGUiOiJBSSBDYXRlZ29yeSBEZXRlY3Rpb24iLCJhaV9jb21wb3NlX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJFeHBhbmQgcmVwbGllcywgcmVwaHJhc2UgYW5zd2Vycywgb3IgY2hhbmdlIHRvbmUgdXNpbmcgQUkuIiwiYWlfY29tcG9zZV9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQUkgQ29tcG9zZSIsImFpX2NvbXBvc2VfZmVhdHVyZV90aXRsZSI6IkFJIENvbXBvc2UiLCJhaV9jb21wb3NlX215X3RvbmVfb2Zfdm9pY2VfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlJld3JpdGVzIHJlcGxpZXMgaW4geW91ciB0b25lIG9mIHZvaWNlIGJhc2VkIG9uIHlvdXIgcHJldmlvdXMgcmVzcG9uc2VzLiIsImFpX2NvbXBvc2VfbXlfdG9uZV9vZl92b2ljZV9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQUkgQ29tcG9zZSAobXkgdG9uZSBvZiB2b2ljZSkiLCJhaV9jb21wb3NlX215X3RvbmVfb2Zfdm9pY2VfZmVhdHVyZV90aXRsZSI6IkFJIENvbXBvc2UgKG15IHRvbmUgb2Ygdm9pY2UpIiwiYWlfZ2VuZXJhdGVkX2NzYXRfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkZGb3IgdGhlIGZpcnN0IHRpbWUgZXZlciwgeW91IGNhbiBnZXQgQ1NBVCBzY29yZXMgYWNyb3NzIDEwMCUgb2YgeW91ciBjdXN0b21lciBjb252ZXJzYXRpb25zIHVzaW5nIEFJLWdlbmVyYXRlZCBhbmFseXNpcy4iLCJhaV9nZW5lcmF0ZWRfY3NhdF9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQ1ggU2NvcmUiLCJhaV9nZW5lcmF0ZWRfY3NhdF9mZWF0dXJlX3RpdGxlIjoiQ1ggU2NvcmUiLCJhaV9zdW1tYXJpemVfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlN1bW1hcml6ZSBjb252ZXJzYXRpb25zIGluIHRoZSBpbmJveCB1c2luZyBBSS4iLCJhaV9zdW1tYXJpemVfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkFJIFN1bW1hcml6ZSIsImFpX3N1bW1hcml6ZV9mZWF0dXJlX3RpdGxlIjoiQUkgU3VtbWFyaXplIiwiYWlfc3VtbWFyaXplX3dvcmtmbG93X2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJBbGxvdyB0ZWFtbWF0ZXMgdG8gdXNlIEFJIFN1bW1hcml6ZSB0byBzdW1tYXJpemUgY29udmVyc2F0aW9ucyBpbiB3b3JrZmxvd3MuIiwiYWlfc3VtbWFyaXplX3dvcmtmbG93X2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJBSSBTdW1tYXJpemUgKFdvcmtmbG93cykiLCJhaV9zdW1tYXJpemVfd29ya2Zsb3dfZmVhdHVyZV90aXRsZSI6IkFJIFN1bW1hcml6ZSAoV29ya2Zsb3dzKSIsImFpX3RvcGljc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQXV0b21hdGljYWxseSBjYXRlZ29yaXplIGFsbCB5b3VyIHN1cHBvcnQgY29udmVyc2F0aW9ucyBpbnRvIHRvcGljcyBhbmQgc3VwdG9waWNzLiIsImFpX3RvcGljc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQUkgVG9waWNzIiwiYWlfdG9waWNzX2ZlYXR1cmVfdGl0bGUiOiJBSSBUb3BpY3MiLCJhbGV4YW5kcmlhX3VuYXV0aG9yaXplZCI6IllvdSBjYW4gdHJ5IHNlbmRpbmcgdXMgYSBtZXNzYWdlIG9yIGxvZ2dpbmcgaW4gYXQge2FwcF9uYW1lfSIsImFsbW9zdF90aGVyZSI6IkFsbW9zdCB0aGVyZS4uLiIsImFsc29faW5fdGhpc19jb252ZXJzYXRpb24iOiJBbHNvIGluIHRoaXMgY29udmVyc2F0aW9uIiwiYW1hemluZyI6IkFtYXppbmciLCJhbmltYWxzX25hdHVyZSI6IkFuaW1hbHMgJiBOYXR1cmUiLCJhbnN3ZXIiOiJBbnN3ZXIiLCJhbnN3ZXJfaW5zcGVjdGlvbl9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiU2VlIHRoZSBzb3VyY2VzIGFuZCBzZXR0aW5ncyB0aGF0IHNoYXBlIEZpblwncyByZXNwb25zZXMuIiwiYW5zd2VyX2luc3BlY3Rpb25fZmVhdHVyZV9zaG9ydF90aXRsZSI6IkFuc3dlciBpbnNwZWN0aW9uIiwiYW5zd2VyX2luc3BlY3Rpb25fZmVhdHVyZV90aXRsZSI6IkFuc3dlciBpbnNwZWN0aW9uIiwiYW5zd2VyX2lzX2dlbmVyYXRlZF93aXRoX2FpIjoiVGhpcyBhbnN3ZXIgaXMgYmFzZWQgb25seSBvbiBjb250ZW50IHNwZWNpZmllZCBieSB7Y29tcGFueV9uYW1lfS4gSXQgaXMgQUkgZ2VuZXJhdGVkIHNvIG1heSBub3QgYmUgZnVsbHkgY29ycmVjdC4iLCJhbnN3ZXJfaXNfZ2VuZXJhdGVkX3dpdGhfYWlfbWF5X2JlX2luY29ycmVjdCI6IlRoaXMgYW5zd2VyIHdhcyBhdXRvIGdlbmVyYXRlZCB1c2luZyBBSS4gVGhlcmXigJlzIGEgY2hhbmNlIGl0IG1heSBub3QgYmUgZnVsbHkgY29ycmVjdC4iLCJhbnN3ZXJfaXNfZ2VuZXJhdGVkX3dpdGhfYWlfc291cmNlcyI6IkFJIGFuc3dlcnMgYXJlIGdlbmVyYXRlZCBiYXNlZCBvbiBib3RoIHB1YmxpYyBhbmQgcHJpdmF0ZSBzb3VyY2VzIHByb3ZpZGVkIGJ5IHtjb21wYW55X25hbWV9LiIsImFuc3dlcl9sZW5ndGhfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IllvdSBjYW4gY2hvb3NlIGhvdyBsb25nIEZpblwncyBhbnN3ZXJzIGFyZSwgZnJvbSBzaG9ydGVyIGFuZCBjb25jaXNlLCB0byBsb25nZXIgYW5kIG1vcmUgdGhvcm91Z2guIiwiYW5zd2VyX2xlbmd0aF9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQW5zd2VyIGxlbmd0aCIsImFuc3dlcl9sZW5ndGhfZmVhdHVyZV90aXRsZSI6IkFuc3dlciBsZW5ndGgiLCJhbnN3ZXJfcmF0aW5nX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJSZXZpZXcgYW5kIHJhdGUgZWFjaCBvZiBGaW5cJ3MgYW5zd2Vycy4iLCJhbnN3ZXJfcmF0aW5nX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJBbnN3ZXIgcmF0aW5nIiwiYW5zd2VyX3JhdGluZ19mZWF0dXJlX3RpdGxlIjoiQW5zd2VyIHJhdGluZyIsImFwcF9wZXJtaXNzaW9uc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiU2V0IHBlcm1pc3Npb25zIGZvciB3aG8gY2FuIGluc3RhbGwsIGNvbmZpZ3VyZSwgYW5kIGRlbGV0ZSBhcHBzLiIsImFwcF9wZXJtaXNzaW9uc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQXBwIHBlcm1pc3Npb25zIiwiYXBwX3Blcm1pc3Npb25zX2ZlYXR1cmVfdGl0bGUiOiJBcHAgcGVybWlzc2lvbnMiLCJhcHJpbF9kYXRlIjoiQXByaWwge2RhdGV9IiwiYXJ0aWNsZSI6ImFydGljbGUiLCJhcnRpY2xlX2RvdWJsZV9hdXRob3IiOiJCeSB7YXV0aG9yX2ZpcnN0X25hbWUxfSBhbmQge2F1dGhvcl9maXJzdF9uYW1lMn0iLCJhcnRpY2xlX211bHRpcGxlX2F1dGhvcnMiOiJCeSB7YXV0aG9yX2ZpcnN0X25hbWUxfSBhbmQge251bWJlcl9vZl9vdGhlcl9hdXRob3JzfSBvdGhlcnMiLCJhcnRpY2xlX3F1ZXN0aW9uIjoiRGlkIHRoaXMgYW5zd2VyIHlvdXIgcXVlc3Rpb24/IiwiYXJ0aWNsZV9zZWFyY2hfaGludF90ZXh0IjoiU2VhcmNoIGFydGljbGVzLi4uIiwiYXJ0aWNsZV9zZWFyY2hfbm9fcmVzdWx0c19mb3JfcXVlcnkiOiJObyByZXN1bHRzIGZvciBcXCJ7cXVlcnl9XFwiIiwiYXJ0aWNsZV9zZWFyY2hfc2VhcmNoX3Jlc3VsdHMiOiJTZWFyY2ggcmVzdWx0cyIsImFydGljbGVfc2VhcmNoX3NlYXJjaF9yZXN1bHRzX2Zvcl9xdWVyeSI6IlNlYXJjaCByZXN1bHRzIGZvciBcXCJ7cXVlcnl9XFwiIiwiYXJ0aWNsZV9zaW5nbGVfYXV0aG9yIjoiQnkge2F1dGhvcl9maXJzdF9uYW1lfSIsImFza19hX3F1ZXN0aW9uIjoiQXNrIGEgcXVlc3Rpb24iLCJhc2tfYV9xdWVzdGlvbl9wbGFjZWhvbGRlciI6IkFzayBhIHF1ZXN0aW9u4oCmIiwiYXNrX2FfcXVlc3Rpb25fd2l0aF9lbGxpcHNpcyI6IkFzayBhIHF1ZXN0aW9uLi4uIiwiYXNrX2Fub3RoZXJfcXVlc3Rpb25fd2l0aF9lbGxpcHNpcyI6IkFzayBhbm90aGVyIHF1ZXN0aW9uLi4uIiwiYXNrX2FueXRoaW5nX3BsYWNlaG9sZGVyIjoiQXNrIGFueXRoaW5n4oCmIiwiYXNrX2Zpbl9zZHJfc29tZXRoaW5nX3RvX3N0YXJ0IjoiQXNrIEZpbiBhIHF1ZXN0aW9uIHlvdXIgY3VzdG9tZXJzIG1pZ2h0IGFzaywgdG8gcHJldmlldyBpdHMgcmVzcG9uc2UuIiwiYXNrX2Zpbl9zb21ldGhpbmdfdG9fc3RhcnQiOiJBc2sgRmluIGEgcXVlc3Rpb24geW91ciBjdXN0b21lcnMgbWlnaHQgYXNrLCB0byBwcmV2aWV3IGl0cyByZXNwb25zZS4iLCJhc2tfb3VyX2JvdF9hX3F1ZXN0aW9uIjoiQXNrIG91ciBib3QgYSBxdWVzdGlvbiIsImFza2VkX2Fib3V0IjoiQXNrZWQgYWJvdXQiLCJhc3NpZ25fYW5kX3Nub296ZV9jb252ZXJzYXRpb25zX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJBdXRvbWF0aWNhbGx5IGFzc2lnbiBjb252ZXJzYXRpb25zIHRvIHRoZSByaWdodCB0ZWFtIG9yIHRlYW1tYXRlLiIsImFzc2lnbl9hbmRfc25vb3plX2NvbnZlcnNhdGlvbnNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkFzc2lnbiBhbmQgc25vb3plIGNvbnZlcnNhdGlvbnMiLCJhc3NpZ25fYW5kX3Nub296ZV9jb252ZXJzYXRpb25zX2ZlYXR1cmVfdGl0bGUiOiJBc3NpZ24gYW5kIHNub296ZSBjb252ZXJzYXRpb25zIiwiYXNzaWduZWRfdG9fYWRtaW4iOiJBc3NpZ25lZCB0byB7YWRtaW59IiwiYXR0YWNoX2ltYWdlc19vcl9maWxlcyI6IkF0dGFjaCBpbWFnZXMgb3IgZmlsZXMiLCJhdHRyaWJ1dGVfY29sbGVjdG9yX25lZ2F0aXZlIjoiTm8iLCJhdHRyaWJ1dGVfY29sbGVjdG9yX3Bvc2l0aXZlIjoiWWVzIiwiYXVkaWVuY2VfcnVsZXNfbm90X2FwcGxpZWQiOiJOb3RlOiBUaGlzIHByZXZpZXcgZG9lcyBub3QgYXBwbHkgYXVkaWVuY2UgcnVsZXMiLCJhdWRpZW5jZV90ZXN0aW5nX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJUZXN0IGhvdyBGaW4gYW5zd2VycyB2YXJ5IGJ5IGF1ZGllbmNlIHR5cGVzLiIsImF1ZGllbmNlX3Rlc3RpbmdfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkF1ZGllbmNlIHRlc3RpbmciLCJhdWRpZW5jZV90ZXN0aW5nX2ZlYXR1cmVfdGl0bGUiOiJBdWRpZW5jZSB0ZXN0aW5nIiwiYXVndXN0X2RhdGUiOiJBdWd1c3Qge2RhdGV9IiwiYXZhdGFyIjoiQXZhdGFyIiwiYXZhdGFycyI6IkF2YXRhcnMiLCJhd2F5X3N0YXRlIjoiQXdheSIsImJhZCI6IkJhZCIsImJhbm5lciI6ImJhbm5lciIsImJhbm5lcl9tZXNzYWdlc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiSGlnaGxpZ2h0IGltcG9ydGFudCBpbmZvcm1hdGlvbiB3aXRoIHBlcnNpc3RlbnQgYmFubmVycyBpbiB5b3VyIGFwcCBvciB3ZWJzaXRlLiIsImJhbm5lcl9tZXNzYWdlc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQmFubmVyIG1lc3NhZ2VzIiwiYmFubmVyX21lc3NhZ2VzX2ZlYXR1cmVfdGl0bGUiOiJCYW5uZXIgbWVzc2FnZXMiLCJiYXNpY19jaGF0Ym90c19hbmRfYXV0b21hdGlvbnNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlNpbXBsZSBib3RzIGFuZCBhdXRvbWF0aW9ucyBmb3IgdHJpYWdpbmcgY29udmVyc2F0aW9ucywgcXVhbGlmeWluZyBsZWFkcywgYW5kIGdhdGhlcmluZyBjdXN0b21lciBpbmZvcm1hdGlvbi4iLCJiYXNpY19jaGF0Ym90c19hbmRfYXV0b21hdGlvbnNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkJhc2ljIGF1dG9tYXRpb24iLCJiYXNpY19jaGF0Ym90c19hbmRfYXV0b21hdGlvbnNfZmVhdHVyZV90aXRsZSI6IkJhc2ljIGNoYXRib3RzIGFuZCBhdXRvbWF0aW9ucyIsImJhdGNoX3Rlc3RpbmdfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkltcG9ydCBjb252ZXJzYXRpb25zIGZyb20geW91ciBzdXBwb3J0IGluYm94LCBvdGhlciBzb3VyY2VzIHRvIHRlc3QgaG93IHJlYWR5IHlvdXIgY29udGVudCBpcyBmb3IgRmluLiIsImJhdGNoX3Rlc3RpbmdfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkJhdGNoIHRlc3RpbmciLCJiYXRjaF90ZXN0aW5nX2ZlYXR1cmVfdGl0bGUiOiJCYXRjaCB0ZXN0aW5nIiwiYm9va19hX21lZXRpbmciOiJCb29rIGEgbWVldGluZyIsImJvdCI6IkJvdCIsImJvdF9hbnN3ZXJzX2luc3RhbnRseSI6IkJvdCBhbnN3ZXJzIGluc3RhbnRseSIsImJvdF9leHBlY3RhdGlvbl90ZXh0IjoiT3VyIGJvdCBjYW4gYW5zd2VyIG1hbnkgY29tbW9uIHF1ZXN0aW9ucyIsImJvdF9pc19zdGlsbF90aGlua2luZyI6IkJvdCBpcyBzdGlsbCB0aGlua2luZy4uLiIsImJvdF9pc190aGlua2luZyI6IkJvdCBpcyB0aGlua2luZy4uLiIsImJyb3dzZV9jb2xsZWN0aW9ucyI6IkJyb3dzZSBjb2xsZWN0aW9ucyIsImJ1bGtfd2hhdHNhcHBfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IldoYXRzQXBwIGNvbnZlcnNhdGlvbnMgc2VudCB2aWEgdGhlIE91dGJvdW5kIHNlY3Rpb24gb3Igc2VyaWVzLCByZWdhcmRsZXNzIG9mIGF1ZGllbmNlIHNpemUuIiwiYnVsa193aGF0c2FwcF9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiV2hhdHNBcHAiLCJidWxrX3doYXRzYXBwX2ZlYXR1cmVfdGl0bGUiOiJCdWxrIFdoYXRzQXBwIiwiYnlfZW1haWwiOiJCeSBlbWFpbCIsImJ5X3dlYl9ub3RpZmljYXRpb24iOiJCeSB3ZWIgbm90aWZpY2F0aW9uIiwiY2FsZW5kYXJfYmFjayI6IkJhY2siLCJjYWxlbmRhcl9ib29raW5nX2NvbmZpcm1lZCI6IkJvb2tpbmcgY29uZmlybWVkIiwiY2FsZW5kYXJfYm9va2luZ19mYWlsZWRfcmV0cnkiOiJCb29raW5nIGZhaWxlZCAtIFJldHJ5IiwiY2FsZW5kYXJfY29uZmlybV9ib29raW5nIjoiQ29uZmlybSBib29raW5nIiwiY2FsZW5kYXJfZXhwaXJlZCI6IkNhbGVuZGFyIGV4cGlyZWQiLCJjYWxlbmRhcl9uZXh0X21vbnRoIjoiTmV4dCBtb250aCIsImNhbGVuZGFyX25vX2RhdGVfc2VsZWN0ZWQiOiJObyBkYXRlIHNlbGVjdGVkIiwiY2FsZW5kYXJfcGxlYXNlX3RyeV9hZ2FpbiI6IlBsZWFzZSB0cnkgYWdhaW4uIiwiY2FsZW5kYXJfcHJldmlvdXNfbW9udGgiOiJQcmV2aW91cyBtb250aCIsImNhbGVuZGFyX3NlbGVjdF9kYXRlIjoiU2VsZWN0IGEgZGF0ZSIsImNhbGVuZGFyX3NvbWV0aGluZ193ZW50X3dyb25nIjoiU29tZXRoaW5nIHdlbnQgd3JvbmciLCJjYWxlbmRhcl90cnlfYWdhaW4iOiJQbGVhc2UgdHJ5IGFnYWluLiIsImNhbGxfYmFyZ2luZ19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiTWFuYWdlcnMgY2FuIGp1bXAgaW4gZHVyaW5nIGEgY2FsbCB0byBoZWxwIG91dCB3aXRoIGN1c3RvbWVyIHJlcXVlc3RzLiIsImNhbGxfYmFyZ2luZ19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQ2FsbCBiYXJnaW5nIiwiY2FsbF9iYXJnaW5nX2ZlYXR1cmVfdGl0bGUiOiJDYWxsIGJhcmdpbmciLCJjYWxsX2NzYXRfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkNhcHR1cmUgY3VzdG9tZXIgc2F0aXNmYWN0aW9uIHJhdGluZ3MgYWZ0ZXIgdGhlIGNhbGwgZW5kcy4iLCJjYWxsX2NzYXRfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkNhbGwgQ1NBVCIsImNhbGxfY3NhdF9mZWF0dXJlX3RpdGxlIjoiQ2FsbCBDU0FUIiwiY2FsbF9saXZlX21vbml0b3JpbmdfZmVhdHVyZV9kZXNjcmlwdGlvbiI6Ik1hbmFnZXJzIGNhbiBsaXN0ZW4gaW4gZHVyaW5nIGEgY2FsbCBhbmQgY29hY2ggYWdlbnRzLiIsImNhbGxfbGl2ZV9tb25pdG9yaW5nX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJDYWxsIGxpdmUgbW9uaXRvcmluZyIsImNhbGxfbGl2ZV9tb25pdG9yaW5nX2ZlYXR1cmVfdGl0bGUiOiJDYWxsIGxpdmUgbW9uaXRvcmluZyIsImNhbGxfb3ZlcmZsb3dfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlJvdXRlIGNhbGxzIHRvIGEgc2Vjb25kYXJ5IHRlYW0gb3IgY29uZmlndXJlIG9uZSBvZiBvdXIgY2FsbCBkZWZsZWN0aW9uIG9wdGlvbnMuIiwiY2FsbF9vdmVyZmxvd19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQ2FsbCBvdmVyZmxvdyIsImNhbGxfb3ZlcmZsb3dfZmVhdHVyZV90aXRsZSI6IkNhbGwgb3ZlcmZsb3ciLCJjYWxsX3dyYXBfdXBfdGltZV9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiU2V0IHRoZSBhbW91bnQgb2YgdGltZSBhZ2VudHMgaGF2ZSBhZnRlciBhIGNhbGwgdG8gd3JhcC11cCBiZWZvcmUgYWNjZXB0aW5nIG5ldyBjYWxscy4iLCJjYWxsX3dyYXBfdXBfdGltZV9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQ2FsbCB3cmFwLXVwIHRpbWUiLCJjYWxsX3dyYXBfdXBfdGltZV9mZWF0dXJlX3RpdGxlIjoiQ2FsbCB3cmFwLXVwIHRpbWUiLCJjYWxsZXJfaWRfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkF1dG9tYXRpY2FsbHkgaWRlbnRpZnkgdGhlIGN1c3RvbWVyIGFuZCBoYXZlIGZ1bGwgY29udGV4dCBiZWZvcmUgdGhlIGNhbGwgc3RhcnRzLiIsImNhbGxlcl9pZF9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQ2FsbGVyIElEIiwiY2FsbGVyX2lkX2ZlYXR1cmVfdGl0bGUiOiJDYWxsZXIgSUQiLCJjYW5fY29udGludWVfd2hhdHNhcHAiOiJZb3UgY2FuIGNvbnRpbnVlIHlvdXIgY29udmVyc2F0aW9uIG9uIFdoYXRzQXBwIiwiY2FuY2VsIjoiQ2FuY2VsIiwiY2FuY2VsX3RyYW5zY3JpcHRpb24iOiJDYW5jZWwgdHJhbnNjcmlwdGlvbiIsImNhbnRfbG9hZF9uZXdfbWVzc2FnZXMiOiJDYW5cJ3QgbG9hZCBuZXcgbWVzc2FnZXMiLCJjYXB0aW9ucyI6IkNhcHRpb25zIiwiY2Fyb3VzZWxfYWRkX3RvX2NhcnQiOiJBZGQgdG8gY2FydCIsImNhcm91c2VsX2FkZF90b19jYXJ0X21lc3NhZ2UiOiJDYW4geW91IGFkZCB7cHJvZHVjdH0gdG8gbXkgY2FydCBwbGVhc2UiLCJjaGF0X3dpdGgiOiJDaGF0IHdpdGgge2Fzc2lnbmVlX25hbWV9IiwiY2hhdF93aXRoX3VzIjoiQ2hhdCB3aXRoIHVzIiwiY2hhdHNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlNlbmQgb25lLW9mZiBtZXNzYWdlcyB0byBzcGVjaWZpYyBjdXN0b21lcnMuIiwiY2hhdHNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkNoYXRzIiwiY2hhdHNfZmVhdHVyZV90aXRsZSI6IkNoYXRzIiwiY2hlY2tfbGF0ZXJfZm9yX3VwZGF0ZXMiOiJDaGVjayBiYWNrIGxhdGVyIGZvciB1cGRhdGVzLiIsImNoZWNrbGlzdF9jYXJkX2ZpcnN0X3N0ZXAiOiJGaXJzdCBzdGVwIiwiY2hlY2tsaXN0X2NhcmRfbmV4dF9zdGVwIjoiTmV4dCBzdGVwIiwiY2hlY2tsaXN0X2NvbXBsZXRlZCI6IkNvbXBsZXRlZCIsImNoZWNrbGlzdF9pbl9wcm9ncmVzc190aW1lX3JlbWFpbmluZ19wbHVyYWwiOiJBYm91dCB7bWludXRlc30gbWludXRlcyBsZWZ0IiwiY2hlY2tsaXN0X2luX3Byb2dyZXNzX3RpbWVfcmVtYWluaW5nX3Npbmd1bGFyIjoiQWJvdXQgMSBtaW51dGUgbGVmdCIsImNoZWNrbGlzdF9tYXJrX3N0ZXBfYXNfY29tcGxldGUiOiJNYXJrIGFzIGNvbXBsZXRlZCIsImNoZWNrbGlzdF9ub3Rfc3RhcnRlZF90aW1lX3JlbWFpbmluZ19wbHVyYWwiOiJBYm91dCB7bWludXRlc30gbWludXRlcyIsImNoZWNrbGlzdF9ub3Rfc3RhcnRlZF90aW1lX3JlbWFpbmluZ19zaW5ndWxhciI6IkFib3V0IDEgbWludXRlIiwiY2hlY2tsaXN0X251bWJlcl9vZl9zdGVwc19wbHVyYWwiOiJ7bnVtYmVyX29mX3N0ZXBzfSBzdGVwcyIsImNoZWNrbGlzdF9udW1iZXJfb2Zfc3RlcHNfcHJvZ3Jlc3NfcGx1cmFsIjoie3N0ZXBzX2NvbXBsZXRlZH0gb2Yge3RvdGFsX3N0ZXBzfSBkb25lIiwiY2hlY2tsaXN0X251bWJlcl9vZl9zdGVwc19wcm9ncmVzc19zaW5ndWxhciI6IjEgb2Yge3RvdGFsX3N0ZXBzfSBkb25lIiwiY2hlY2tsaXN0X251bWJlcl9vZl9zdGVwc19zaW5ndWxhciI6IjEgc3RlcCIsImNoZWNrbGlzdF9wcm9ncmVzcyI6IkNoZWNrbGlzdCBwcm9ncmVzczoge2NvbXBsZXRlZENoZWNrbGlzdFRhc2tzfSBvZiB7Y2hlY2tsaXN0VGFza3N9IHRhc2tzIGNvbXBsZXRlZCIsImNoZWNrbGlzdF9zZW5kZXJfbmFtZSI6IlNoYXJlZCBieSB7bmFtZX0iLCJjaGVja2xpc3Rfc3RlcF9hY3Rpb25fYnV0dG9uIjoiU3RlcCBhY3Rpb24gYnV0dG9uIiwiY2hlY2tsaXN0X3N0ZXBfY29tcGxldGVkIjoiQ29tcGxldGVkIiwiY2hlY2tsaXN0X3RvZ2dsZV90YXNrX2RldGFpbHMiOiJUb2dnbGUgdGFzayBkZXRhaWxzIiwiY2hlY2tsaXN0c19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiSW4tcHJvZHVjdCBtZXNzYWdlIHRoYXQgYWxsb3dzIHlvdSB0byBkZWxpdmVyIGNvbnRleHR1YWwgYW5kIHBlcnNvbmFsaXplZCBsaXN0cyBvZiB0YXNrcyB0byBjdXN0b21lcnMuIiwiY2hlY2tsaXN0c19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQ2hlY2tsaXN0cyIsImNoZWNrbGlzdHNfZmVhdHVyZV90aXRsZSI6IkNoZWNrbGlzdHMiLCJjaG9vc2VfZGF0ZSI6IkNob29zZSBkYXRlIiwiY2hvb3NlX29uZSI6IkNob29zZSBvbmXigKYiLCJjbGVhciI6IkNsZWFyIiwiY2xlYXJfYWxsIjoiQ2xlYXIgQWxsIiwiY2xlYXJfcmVjb3JkaW5nIjoiQ2xlYXIgcmVjb3JkaW5nIiwiY2xlYXJiaXRfaW50ZWdyYXRpb25fZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlVzZSBDbGVhcmJpdCBkYXRhIHRvIGlkZW50aWZ5LCB0YXJnZXQsIGFuZCByb3V0ZSB3ZWJzaXRlIHZpc2l0b3JzLiIsImNsZWFyYml0X2ludGVncmF0aW9uX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJDbGVhcmJpdCBpbnRlZ3JhdGlvbiIsImNsZWFyYml0X2ludGVncmF0aW9uX2ZlYXR1cmVfdGl0bGUiOiJDbGVhcmJpdCBpbnRlZ3JhdGlvbiIsImNsaWNrX29wZW5fd2hhdHNhcHAiOiJDbGljayBoZXJlIHRvIG9wZW4gV2hhdHNBcHAiLCJjbGlja190b191bm11dGUiOiJDbGljayB0byB1bm11dGUiLCJjbGlja2FibGVfYnV0dG9uIjoiQ2xpY2thYmxlIGJ1dHRvbiIsImNsb3NlIjoiQ2xvc2UiLCJjbG9zZV9pbnRlcmNvbV9tZXNzZW5nZXIiOiJDbG9zZSBJbnRlcmNvbSBNZXNzZW5nZXIiLCJjb2RlX2Jsb2NrX2xhYmVsIjoiQ29kZSIsImNvbXBvbmVudCI6IkNvbXBvbmVudCIsImNvbm5lY3RpbmciOiJDb25uZWN0aW5nLi4uIiwiY29udGFjdF9zdXBwb3J0IjoiQ29udGFjdCBzdXBwb3J0IiwiY29udGFjdF91cyI6IkNvbnRhY3QgdXMiLCJjb250aW51ZV9vbl93aGF0c2FwcCI6IkNvbnRpbnVlIG9uIFdoYXRzQXBwIiwiY29udGludWVfdGhlX2NvbnZlcnNhdGlvbiI6IkNvbnRpbnVlIHRoZSBjb252ZXJzYXRpb24iLCJjb250aW51ZV93aGF0c2FwcF9pbnN0ZWFkIjoiWW91IGNhbiBjb250aW51ZSB0aGUgY29udmVyc2F0aW9uIG9uIFdoYXRzQXBwIGluc3RlYWQuIiwiY29udmVyc2F0aW9uX2NhcmRfb2ZmaWNlX2hvdXJzX2hlYWRlciI6IldlXCdsbCBiZSBiYWNrIG9ubGluZSIsImNvbnZlcnNhdGlvbl9jYXJkX3JlcGx5X3RpbWVfaGVhZGVyIjoiT3VyIHVzdWFsIHJlcGx5IHRpbWUiLCJjb252ZXJzYXRpb25fY2FyZF9yZXBseV90aW1lX2hlYWRlcl9tNSI6IlVzdWFsIHJlcGx5IHRpbWUiLCJjb252ZXJzYXRpb25fY2FyZF91bmtub3duX3Jlc3BvbnNlX3RpbWUiOiJXZeKAmWxsIHJlcGx5IGFzIHNvb24gYXMgd2UgY2FuIiwiY29udmVyc2F0aW9uX2RhdGFfYXR0cmlidXRlc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQ2F0ZWdvcml6ZSBhbGwgb2YgeW91ciBjb252ZXJzYXRpb25zIGZvciByZXBvcnRpbmcgcHVycG9zZXMsIGUuZy4gYnkgdHlwZSwgdXJnZW5jeSwgcHJvZHVjdCBhcmVhIGV0Yy4iLCJjb252ZXJzYXRpb25fZGF0YV9hdHRyaWJ1dGVzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJDb252ZXJzYXRpb24gZGF0YSBhdHRyaWJ1dGVzIiwiY29udmVyc2F0aW9uX2RhdGFfYXR0cmlidXRlc19mZWF0dXJlX3RpdGxlIjoiQ29udmVyc2F0aW9uIGRhdGEgYXR0cmlidXRlcyIsImNvbnZlcnNhdGlvbl9oYXNfZW5kZWQiOiJZb3VyIGNvbnZlcnNhdGlvbiBoYXMgZW5kZWQiLCJjb252ZXJzYXRpb25faGlzdG9yeV9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRmluIEFJIENvcGlsb3QgdXNlcyB5b3VyIHRlYW1cJ3MgcGFzdCBjb252ZXJzYXRpb24gaGlzdG9yeSB0byBnaXZlIHlvdXIgdGVhbSB0aGUgYmVzdCBwb3NzaWJsZSBhbnN3ZXIuIiwiY29udmVyc2F0aW9uX2hpc3RvcnlfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkNvbnZlcnNhdGlvbiBoaXN0b3J5IiwiY29udmVyc2F0aW9uX2hpc3RvcnlfZmVhdHVyZV90aXRsZSI6IkNvbnZlcnNhdGlvbiBoaXN0b3J5IiwiY29udmVyc2F0aW9uX2hpc3Rvcnlfbm9fcmVjZW50X3RleHQiOiJZb3VyIHJlY2VudCBjb252ZXJzYXRpb25zIHdpbGwgYXBwZWFyIGhlcmUuIiwiY29udmVyc2F0aW9uX2hpc3Rvcnlfbm9fcmVjZW50X3RpdGxlIjoiTm8gcmVjZW50IGNvbnZlcnNhdGlvbnMiLCJjb252ZXJzYXRpb25fbW9uaXRvcmluZ19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRWFzaWx5IHJldmlldyBGaW4gY29udmVyc2F0aW9ucyBpbiByZWFsIHRpbWUgcmlnaHQgd2l0aGluIHRoZSBJbmJveC4iLCJjb252ZXJzYXRpb25fbW9uaXRvcmluZ19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQ29udmVyc2F0aW9uIG1vbml0b3JpbmciLCJjb252ZXJzYXRpb25fbW9uaXRvcmluZ19mZWF0dXJlX3RpdGxlIjoiQ29udmVyc2F0aW9uIG1vbml0b3JpbmciLCJjb252ZXJzYXRpb25fbW92ZWRfd2hhdHNhcHAiOiJZb3VyIGNvbnZlcnNhdGlvbiBoYXMgbW92ZWQgdG8gV2hhdHNBcHAiLCJjb252ZXJzYXRpb25fb3B0aW9ucyI6IkNvbnZlcnNhdGlvbiBvcHRpb25zIiwiY29udmVyc2F0aW9uX3F1YWxpdHlfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlF1aWNrbHkgaWRlbnRpZnkgYXJlYXMgb2YgcG9vciBxdWFsaXR5IGFjcm9zcyBhbGwgeW91ciBzdXBwb3J0IHRvIHVuZGVyc3RhbmQgd2hlcmUgeW91IG5lZWQgdG8gaW1wcm92ZS4iLCJjb252ZXJzYXRpb25fcXVhbGl0eV9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQUkgSW5zaWdodHMiLCJjb252ZXJzYXRpb25fcXVhbGl0eV9mZWF0dXJlX3RpdGxlIjoiQUkgSW5zaWdodHMiLCJjb252ZXJzYXRpb25fcmF0aW5nc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQXNrIHlvdXIgY3VzdG9tZXJzIGZvciBmZWVkYmFjayBhZnRlciBhIGNvbnZlcnNhdGlvbiBpcyBjbG9zZWQuIiwiY29udmVyc2F0aW9uX3JhdGluZ3NfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkNvbnZlcnNhdGlvbiByYXRpbmdzIiwiY29udmVyc2F0aW9uX3JhdGluZ3NfZmVhdHVyZV90aXRsZSI6IkNvbnZlcnNhdGlvbiByYXRpbmdzIiwiY29udmVyc2F0aW9uX3RvcGljc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRGVmaW5lIGEgc2V0IG9mIGtleXdvcmRzIGFuZCBwaHJhc2VzIHRvIGluY2x1ZGUgKG9yIGV4Y2x1ZGUpIGFuZCBhbnkgbWF0Y2hpbmcgY29udmVyc2F0aW9uIHdpbGwgYmUgYXV0b21hdGljYWxseSBhZGRlZCB0byBhIHRvcGljLiIsImNvbnZlcnNhdGlvbl90b3BpY3NfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkNvbnZlcnNhdGlvbiB0b3BpY3MiLCJjb252ZXJzYXRpb25fdG9waWNzX2ZlYXR1cmVfdGl0bGUiOiJDb252ZXJzYXRpb24gdG9waWNzIiwiY29udmVyc2F0aW9ucyI6IkNvbnZlcnNhdGlvbnMiLCJjb252ZXJzYXRpb25zX2VtcHR5X3N0YXRlX3RleHQiOiJQcmV2aW91cyBjb252ZXJzYXRpb25zIHdpbGwgYmUgc2hvd24gaGVyZSIsImNvbnZlcnNhdGlvbnNfcG9ydGFsX2NhcmRfbGlua190aXRsZSI6IkdvIHRvIGN1c3RvbWVyIHBvcnRhbCIsImNvbnZlcnNhdGlvbnNfcG9ydGFsX2NhcmRfdGl0bGUiOiJMb29raW5nIGZvciB5b3VyIGNvbXBhbnnigJlzIGNvbnZlcnNhdGlvbnM/IiwiY29udmVyc2F0aW9uc19zcGFjZV90aXRsZSI6IkNvbnZlcnNhdGlvbnMiLCJjb3BpbG90X211bHRpbGluZ3VhbF9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiVXNlIEZpbiBBSSBDb3BpbG90IGluIDQ1IGRpZmZlcmVudCBsYW5ndWFnZXMuIiwiY29waWxvdF9tdWx0aWxpbmd1YWxfZmVhdHVyZV9zaG9ydF90aXRsZSI6Ik11bHRpbGluZ3VhbCIsImNvcGlsb3RfbXVsdGlsaW5ndWFsX2ZlYXR1cmVfdGl0bGUiOiJNdWx0aWxpbmd1YWwiLCJjb3B5IjoiQ29weSIsImNvcHlfdG9fY2xpcGJvYXJkIjoiQ29weSB0aGlzIGNvZGUgYmxvY2sgdG8geW91ciBjbGlwYm9hcmQuIiwiY291bGRudF9sb2FkX2FwcCI6IkNvdWxkblwndCBsb2FkIHRoZSBhcHAuIiwiY291bGRudF9sb2FkX2FwcHMiOiJDb3VsZG5cJ3QgbG9hZCBhcHBzLiIsImNvdWxkbnRfbG9hZF9jb250ZW50IjoiQ291bGRuXCd0IGxvYWQgdGhlIGNvbnRlbnQiLCJjb3VudF9tb3JlIjoie2NvdW50fSBtb3JlIiwiY3JlYXRlX2FfdGlja2V0IjoiQ3JlYXRlIGEgdGlja2V0IiwiY3VycmVudGx5X25vX2hlbHBfYXJ0aWNsZXMiOiJUaGVyZeKAmXMgY3VycmVudGx5IG5vIGhlbHAgYXJ0aWNsZXMgYXZhaWxhYmxlLiIsImN1c3RvbV9hY3Rpb25zX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJDYWxsIGV4dGVybmFsIEFQSXMgd2l0aCBjdXN0b20gYWN0aW9ucy4iLCJjdXN0b21fYWN0aW9uc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQ3VzdG9tIGFjdGlvbnMiLCJjdXN0b21fYWN0aW9uc19mZWF0dXJlX3RpdGxlIjoiQ3VzdG9tIGFjdGlvbnMiLCJjdXN0b21fYW5zd2Vyc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRmluIGNhbiB1c2UgaHVtYW4td3JpdHRlbiBhbnN3ZXJzIHdpdGggZW1iZWRkZWQgcmljaCBtZWRpYSBsaWtlIG1hcHMsIGV4dGVybmFsIGRhdGEsIGFuZCBjdXN0b20gYWN0aW9ucyB0byBnaXZlIHlvdSBjb21wbGV0ZSBjb250cm9sIG92ZXIgZXhhY3RseSBob3cgc3BlY2lmaWMsIGhpZ2ggcHJpb3JpdHkgb3IgY3JpdGljYWwgcXVlc3Rpb25zIHNob3VsZCBiZSBhbnN3ZXJlZC4iLCJjdXN0b21fYW5zd2Vyc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQ3VzdG9tIEFuc3dlcnMiLCJjdXN0b21fYW5zd2Vyc19mZWF0dXJlX3RpdGxlIjoiQ3VzdG9tIEFuc3dlcnMiLCJjdXN0b21fY2FsbF9yZXBvcnRzX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJDcmVhdGUgY3VzdG9tIHJlcG9ydHMgdG8gZGl2ZSBkZWVwZXIgaW50byBjYWxsIHZvbHVtZSBhbmQgcGVyZm9ybWFuY2UgZGF0YS4iLCJjdXN0b21fY2FsbF9yZXBvcnRzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJDdXN0b20gY2FsbCByZXBvcnRzIiwiY3VzdG9tX2NhbGxfcmVwb3J0c19mZWF0dXJlX3RpdGxlIjoiQ3VzdG9tIGNhbGwgcmVwb3J0cyIsImN1c3RvbV9lbW9qaXMiOiJDdXN0b20gZW1vamlzIiwiY3VzdG9tX2V2ZW50c19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiVHJhY2sgYWN0aXZpdHkgYW5kIGNoYW5naW5nIGRhdGEgd2l0aCBjdXN0b20gZXZlbnRzLiIsImN1c3RvbV9ldmVudHNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkN1c3RvbSBldmVudHMiLCJjdXN0b21fZXZlbnRzX2ZlYXR1cmVfdGl0bGUiOiJDdXN0b20gZXZlbnRzIiwiY3VzdG9tX29iamVjdHNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkJyaW5nIGluIGJ1c2luZXNzLWNyaXRpY2FsIGRhdGEgdG8gcG93ZXIgYXV0b21hdGVkIHdvcmtmbG93cy4iLCJjdXN0b21fb2JqZWN0c19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQ3VzdG9tIG9iamVjdHMiLCJjdXN0b21fb2JqZWN0c19mZWF0dXJlX3RpdGxlIjoiQ3VzdG9tIG9iamVjdHMiLCJjdXN0b21fcmVwb3J0c19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQ3JlYXRlIGN1c3RvbSByZXBvcnRzIGFuZCBidWlsZCBjaGFydHMgdXNpbmcgb3VyIGV4dGVuc2l2ZSBtZXRyaWMgbGlicmFyeSBhbmQgY2hhcnQtYnVpbGRpbmcgdG9vbHMuIiwiY3VzdG9tX3JlcG9ydHNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkFkdmFuY2VkIGN1c3RvbSByZXBvcnRzIiwiY3VzdG9tX3JlcG9ydHNfZmVhdHVyZV90aXRsZSI6IkFkdmFuY2VkIGN1c3RvbSByZXBvcnRzIiwiY3VzdG9tX3Jlc3BvbnNlX2RlbGF5XzAiOiJUeXBpY2FsbHkgcmVwbGllcyBpbiBhIGZldyBtaW51dGVzIiwiY3VzdG9tX3Jlc3BvbnNlX2RlbGF5XzEiOiJUeXBpY2FsbHkgcmVwbGllcyBpbiBhIGZldyBob3VycyIsImN1c3RvbV9yZXNwb25zZV9kZWxheV8yIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gYSBkYXkiLCJjdXN0b21fcmVzcG9uc2VfZGVsYXlfMyI6IlR5cGljYWxseSByZXBsaWVzIGluIGEgd2VlayIsImN1c3RvbV9yZXNwb25zZV9kZWxheV91bmtub3duIjoiV2lsbCByZXBseSBhcyBzb29uIGFzIHRoZXkgY2FuLiIsImN1c3RvbV9yb2xlc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQ3JlYXRlIGN1c3RvbSByb2xlcyB0byBhc3NpZ24gY29uc2lzdGVudCBwZXJtaXNzaW9ucyB0byB5b3VyIHRlYW0uIiwiY3VzdG9tX3JvbGVzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJDdXN0b20gcm9sZXMiLCJjdXN0b21fcm9sZXNfZmVhdHVyZV90aXRsZSI6IkN1c3RvbSByb2xlcyIsImN1c3RvbWl6YWJsZV9jaGFydHNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkN1c3RvbWl6YWJsZSBjaGFydHMgdXNlZCB0byBhbmFseXplIGFuZCBkaXNwbGF5IGRhdGEgb24gcmVwb3J0cy4iLCJjdXN0b21pemFibGVfY2hhcnRzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJDdXN0b21pemFibGUgY2hhcnRzIiwiY3VzdG9taXphYmxlX2NoYXJ0c19mZWF0dXJlX3RpdGxlIjoiQ3VzdG9taXphYmxlIGNoYXJ0cyIsImN1c3RvbWl6YWJsZV9yZXBvcnRfbGF5b3V0X2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJDdXN0b21pemUgeW91ciByZXBvcnQgYnkgcmVzaXppbmcgdmlzdWFscyBhbmQgYXJyYW5naW5nIGxheW91dHMuIiwiY3VzdG9taXphYmxlX3JlcG9ydF9sYXlvdXRfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkN1c3RvbWl6YWJsZSByZXBvcnQgbGF5b3V0IiwiY3VzdG9taXphYmxlX3JlcG9ydF9sYXlvdXRfZmVhdHVyZV90aXRsZSI6IkN1c3RvbWl6YWJsZSByZXBvcnQgbGF5b3V0IiwiY3VzdG9taXplX2xhdW5jaGVyX2xvZ29fZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkRpc3BsYXkgeW91ciBsb2dvIG9uIHRoZSBtZXNzZW5nZXIgbGF1bmNoZXIuIiwiY3VzdG9taXplX2xhdW5jaGVyX2xvZ29fZmVhdHVyZV9zaG9ydF90aXRsZSI6IkN1c3RvbWl6ZSBsYXVuY2hlciBsb2dvIiwiY3VzdG9taXplX2xhdW5jaGVyX2xvZ29fZmVhdHVyZV90aXRsZSI6IkN1c3RvbWl6ZSBsYXVuY2hlciBsb2dvIiwiY3VzdG9taXplZF9ncmVldGluZ3NfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkdlbmVyYXRlIGdyZWV0aW5ncyB3aXRoIHRleHQgdG8gc3BlZWNoIG9yIHVwbG9hZCBjdXN0b20gYXVkaW8gZm9yIGJyYW5kZWQgb3IgbG9jYWxpemVkIG1lc3NhZ2VzLiIsImN1c3RvbWl6ZWRfZ3JlZXRpbmdzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJDdXN0b21pemVkIGdyZWV0aW5ncyIsImN1c3RvbWl6ZWRfZ3JlZXRpbmdzX2ZlYXR1cmVfdGl0bGUiOiJDdXN0b21pemVkIGdyZWV0aW5ncyIsImN4X3Njb3JlX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJBbiBBSS1nZW5lcmF0ZWQgbWV0cmljIHRoYXQgc2NvcmVzIHRoZSBjdXN0b21lciBleHBlcmllbmNlIGFjcm9zcyBhbGwgb2YgeW91ciBjb252ZXJzYXRpb25zLiIsImN4X3Njb3JlX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJDWCBTY29yZSIsImN4X3Njb3JlX2ZlYXR1cmVfdGl0bGUiOiJDWCBTY29yZSIsImRhdGFfZXhwb3J0X2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJFeHBvcnQgSW50ZXJjb20gZGF0YSB0byBhIGRhdGEgd2FyZWhvdXNlLiIsImRhdGFfZXhwb3J0X2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJEYXRhIGV4cG9ydCIsImRhdGFfZXhwb3J0X2ZlYXR1cmVfdGl0bGUiOiJEYXRhIGV4cG9ydCIsImRhdGFfdGFibGUiOiJEYXRhIHRhYmxlIiwiZGVjZW1iZXJfZGF0ZSI6IkRlY2VtYmVyIHtkYXRlfSIsImRpY3RhdGUiOiJEaWN0YXRlIiwiZGlzY292ZXJ5X2xhdW5jaGVyIjoiZGlzY292ZXJ5IGxhdW5jaGVyIiwiZGlzY292ZXJ5X21vZGVfZW50cnlfdGV4dCI6Ik5lZWQgaGVscD8iLCJkaXNtaXNzIjoiRGlzbWlzcyIsImRvbnRfc2hvd19zdWdnZXN0aW9ucyI6IkRvbuKAmXQgc2hvdyBzdWdnZXN0aW9ucyIsImRvd25sb2FkX3RyYW5zY3JpcHQiOiJEb3dubG9hZCB0cmFuc2NyaXB0IiwiZHJhZ19kcm9wX292ZXJsYXlfc3VidGl0bGUiOiJUaGV5XCdsbCBiZSBhZGRlZCB0byB5b3VyIGNvbnZlcnNhdGlvbiIsImRyYWdfZHJvcF9vdmVybGF5X3RpdGxlIjoiRHJvcCBmaWxlcyBvciBpbWFnZXMgaGVyZSIsImVmZmVjdGl2ZW5lc3NfcmVwb3J0X2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJHZXQgaW5zaWdodCBpbnRvIHlvdXIgc3VwcG9ydCB0ZWFtXCdzIGVmZmVjdGl2ZW5lc3MgYW5kIGlkZW50aWZ5IGluZWZmaWNpZW5jaWVzLiIsImVmZmVjdGl2ZW5lc3NfcmVwb3J0X2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJFZmZlY3RpdmVuZXNzIHJlcG9ydCIsImVmZmVjdGl2ZW5lc3NfcmVwb3J0X2ZlYXR1cmVfdGl0bGUiOiJFZmZlY3RpdmVuZXNzIHJlcG9ydCIsImVtYWlsIjoiRW1haWwiLCJlbWFpbF9jYW1wYWlnbnNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkNyZWF0ZSBhbmQgc2VuZCB0YXJnZXRlZCBlbWFpbHMgdG8gY3VzdG9tZXJzLiIsImVtYWlsX2NhbXBhaWduc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiRW1haWwgY2FtcGFpZ25zIiwiZW1haWxfY2FtcGFpZ25zX2ZlYXR1cmVfdGl0bGUiOiJFbWFpbCBjYW1wYWlnbnMiLCJlbW9qaV9waWNrZXIiOiJFbW9qaSBwaWNrZXIiLCJlbXB0eV9jb252ZXJzYXRpb25zIjoiTWVzc2FnZXMgZnJvbSB0aGUgdGVhbSB3aWxsIGJlIHNob3duIGhlcmUiLCJlbXB0eV9zdWdnZXN0aW9uX3Byb21wdCI6Ik5vIHJlbGF0ZWQgc3VnZ2VzdGlvbnMiLCJlbmFibGVfbWljcm9waG9uZV9mb3Jfdm9pY2VfZmVhdHVyZXMiOiJFbmFibGUgbWljcm9waG9uZSBhY2Nlc3MgaW4geW91ciBicm93c2VyIHNldHRpbmdzIHRvIHVzZSB2b2ljZSBmZWF0dXJlcy4iLCJlbnRlcl9mdWxsc2NyZWVuIjoiRW50ZXIgZnVsbHNjcmVlbiIsImVudGVyX3RleHRfcGxhY2Vob2xkZXIiOiJFbnRlciB0ZXh04oCmIiwiZW50ZXJfeW91cl9lbWFpbCI6IkVudGVyIHlvdXIgZW1haWwiLCJleGl0X2Z1bGxzY3JlZW4iOiJFeGl0IGZ1bGxzY3JlZW4iLCJleHBhbmRfaGVhZGVyIjoiRXhwYW5kIGhlYWRlciIsImV4cGFuZGVkIjoiRXhwYW5kZWQiLCJleHBhbmRlZF9tb2RlX2Rpc2FibGUiOiJDb2xsYXBzZSB3aW5kb3ciLCJleHBhbmRlZF9tb2RlX2VuYWJsZSI6IkV4cGFuZCB3aW5kb3ciLCJleHBlY3RlZF9yZXNwb25zZV9kZWxheV8xMDgwMCI6InVuZGVyIDMgaG91cnMiLCJleHBlY3RlZF9yZXNwb25zZV9kZWxheV8xMjAiOiJ1bmRlciAyIG1pbnV0ZXMiLCJleHBlY3RlZF9yZXNwb25zZV9kZWxheV8xMjAwIjoidW5kZXIgMjAgbWludXRlcyIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzE0NDAwIjoidW5kZXIgNCBob3VycyIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzE3MjgwMCI6IjIgZGF5cyIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzE4MCI6InVuZGVyIDMgbWludXRlcyIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzE4MDAiOiJ1bmRlciAzMCBtaW51dGVzIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMTgwMDAiOiJ1bmRlciA1IGhvdXJzIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMjE2MDAiOiJ1bmRlciA2IGhvdXJzIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMjQwIjoidW5kZXIgNCBtaW51dGVzIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMjU5MjAwIjoiMyBkYXlzIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMzAwIjoidW5kZXIgNSBtaW51dGVzIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMzQ1NjAwIjoiNCBkYXlzIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMzYwMCI6InVuZGVyIDEgaG91ciIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzQzMjAwIjoidW5kZXIgMTIgaG91cnMiLCJleHBlY3RlZF9yZXNwb25zZV9kZWxheV80MzIwMDAiOiI1IGRheXMiLCJleHBlY3RlZF9yZXNwb25zZV9kZWxheV81MTg0MDAiOiI2IGRheXMiLCJleHBlY3RlZF9yZXNwb25zZV9kZWxheV82MCI6InVuZGVyIDEgbWludXRlIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfNjAwIjoidW5kZXIgMTAgbWludXRlcyIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzYwNDgwMCI6InVuZGVyIDEgd2VlayIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzcyMDAiOiJ1bmRlciAyIGhvdXJzIiwiZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfODY0MDAiOiIxIGRheSIsImV4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzkwMCI6InVuZGVyIDE1IG1pbnV0ZXMiLCJleHBvcnRfY29udmVyc2F0aW9uX2RhdGFfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkVhc2lseSBleHBvcnQgeW91ciBjb252ZXJzYXRpb24gYW5kIG1lc3NhZ2UgZGF0YSB0byBmdXJ0aGVyIGFuYWx5emUgeW91ciB0ZWFtXCdzIHBlcmZvcm1hbmNlLiIsImV4cG9ydF9jb252ZXJzYXRpb25fZGF0YV9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiRXhwb3J0IGNvbnZlcnNhdGlvbiBkYXRhIiwiZXhwb3J0X2NvbnZlcnNhdGlvbl9kYXRhX2ZlYXR1cmVfdGl0bGUiOiJFeHBvcnQgY29udmVyc2F0aW9uIGRhdGEiLCJleHRlbmRlZF9hcGlfbGltaXRfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkNvbXBhbmllcyByZXF1aXJpbmcgbW9yZSBBUEkgdm9sdW1lIGNhbiBleHRlbmQgdG8gMzAsMDAwIGNhbGxzIHBlciBtaW51dGUuIiwiZXh0ZW5kZWRfYXBpX2xpbWl0X2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJFeHRlbmRlZCBBUEkgbGltaXQiLCJleHRlbmRlZF9hcGlfbGltaXRfZmVhdHVyZV90aXRsZSI6IkV4dGVuZGVkIEFQSSBsaW1pdCIsImV4dGVybmFsX2FuZF9pbnRlcm5hbF9zb3VyY2VzX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJGaW4gQUkgQ29waWxvdCBjb25uZWN0cyB0byBleHRlcm5hbCBjb250ZW50IChhcnRpY2xlcywgcHVibGljIFVSTHMsIFBERnMpIGFuZCBpbnRlcm5hbCBjb250ZW50IChhcnRpY2xlcyBvciBzeW5jcyB3aXRoIENvbmZsdWVuY2UsIE5vdGlvbiwgb3IgR3VydS4pIiwiZXh0ZXJuYWxfYW5kX2ludGVybmFsX3NvdXJjZXNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkV4dGVybmFsICYgaW50ZXJuYWwgc291cmNlcyIsImV4dGVybmFsX2FuZF9pbnRlcm5hbF9zb3VyY2VzX2ZlYXR1cmVfdGl0bGUiOiJFeHRlcm5hbCAmIGludGVybmFsIHNvdXJjZXMiLCJleHRyYV9sYWJlbHNfY291bnQiOiIrIHtsYWJlbHNfY291bnR9IGxhYmVscyIsImZhaWxlZF9tZXNzYWdlIjoiRmFpbGVkIG1lc3NhZ2UiLCJmYWlsZWRfdG9fc2VuZCI6IkNvdWxkblwndCBzZW5kIiwiZmVicnVhcnlfZGF0ZSI6IkZlYnJ1YXJ5IHtkYXRlfSIsImZpZWxkX2lzX3JlcXVpcmVkIjoiRmllbGQge2ZpZWxkX25hbWV9IGlzIHJlcXVpcmVkIiwiZmlsZSI6IkZpbGUiLCJmaWxlX21heF9saW1pdCI6Ik1heGltdW0ge2xpbWl0fSBmaWxlcyIsImZpbGVfdG9vX2JpZyI6IkNhblwndCBzZW5kIGZpbGVzIG92ZXIge2xpbWl0fU1CIiwiZmlsZV90b29fbGFyZ2VfdG9fdHJhbnNjcmliZSI6IkZpbGUgdG9vIGxhcmdlIHRvIHRyYW5zY3JpYmUiLCJmaWxlX3R5cGVfbm90X2FsbG93ZWQiOiJGaWxlIHR5cGUgaXMgbm90IGFsbG93ZWQiLCJmaW5fZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkZpbiBpcyB0aGUgbW9zdCBzb3BoaXN0aWNhdGVkIEFJIGFnZW50IGluIGN1c3RvbWVyIHNlcnZpY2UsIGhhbmRsaW5nIGFsbCBvZiB5b3VyIGZyb250bGluZSBzdXBwb3J0IHdoaWxlIGRlbGl2ZXJpbmcgaHVtYW4tcXVhbGl0eSBzZXJ2aWNlLiIsImZpbl9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiRmluIEFJIEFnZW50IiwiZmluX2ZlYXR1cmVfdGl0bGUiOiJGaW4gQUkgQWdlbnQiLCJmaW5fZ3VpZGFuY2VfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkZpbiBjYW4gbGVhcm4geW91ciBzdXBwb3J0IHBvbGljaWVzIG9yIGluc3RydWN0aW9ucyBpbiBuYXR1cmFsIGxhbmd1YWdlLCBlbnN1cmluZyBpdCBhbHdheXMgZm9sbG93cyB0aGUgY29ycmVjdCBwcm9jZXNzZXMgd2l0aCBjdXN0b21lcnMuIiwiZmluX2d1aWRhbmNlX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJGaW4gR3VpZGFuY2UiLCJmaW5fZ3VpZGFuY2VfZmVhdHVyZV90aXRsZSI6IkZpbiBHdWlkYW5jZSIsImZpbl9rbm93bGVkZ2VfbWFuYWdlbWVudF9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRmluXCdzIGluZHVzdHJ5IGxlYWRpbmcgS25vd2xlZGdlIEh1YiBtYWtlcyBpdCBlYXN5IGZvciB5b3VyIHRlYW0gdG8gY29udHJvbCwgdXBkYXRlIGFuZCBtYWludGFpbiBhbGwgb2YgdGhlIGtub3dsZWRnZSBGaW4gbGVhcm5zIGZyb20gaW4gYSBjZW50cmFsaXplZCBsb2NhdGlvbi4iLCJmaW5fa25vd2xlZGdlX21hbmFnZW1lbnRfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkZpbiBLbm93bGVkZ2UgTWFuYWdlbWVudCIsImZpbl9rbm93bGVkZ2VfbWFuYWdlbWVudF9mZWF0dXJlX3RpdGxlIjoiRmluIEtub3dsZWRnZSBNYW5hZ2VtZW50IiwiZmluX2tub3dsZWRnZV9zb3VyY2VzX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJGaW4gaW5zdGFudGx5IGxlYXJucyBmcm9tIGEgdmFyaWV0eSBvZiBwdWJsaWMgYW5kIHByaXZhdGUga25vd2xlZGdlIHNvdXJjZXMsIGluY2x1ZGluZyBIZWxwIENlbnRlciBhcnRpY2xlcywgaW50ZXJuYWwgc3VwcG9ydCBjb250ZW50LCBQREZzLCBhbmQgVVJMcy4iLCJmaW5fa25vd2xlZGdlX3NvdXJjZXNfZmVhdHVyZV9zaG9ydF90aXRsZSI6Iktub3dsZWRnZSBzb3VyY2VzIiwiZmluX2tub3dsZWRnZV9zb3VyY2VzX2ZlYXR1cmVfdGl0bGUiOiJLbm93bGVkZ2Ugc291cmNlcyIsImZpbl9tdWx0aV9zb3VyY2VfZ2VuZXJhdGl2ZV9hbnN3ZXJzX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJGaW4gY2FuIGNvbnN0cnVjdCBhbiBhbnN3ZXIgdXNpbmcgbXVsdGlwbGUgY29udGVudCBzb3VyY2VzLCBlbmhhbmNpbmcgaXRzIGFiaWxpdHkgdG8gc29sdmUgY29tcGxleCBxdWVzdGlvbnMgYnkgdXNpbmcgdGhlIG1vc3QgcmVsZXZhbnQgaW5mb3JtYXRpb24gZnJvbSBlYWNoIHNvdXJjZSB0byBjcmVhdGUgYSBtb3JlIHRob3JvdWdoIGFuZCBjb21wcmVoZW5zaXZlIHJlc3BvbnNlLiIsImZpbl9tdWx0aV9zb3VyY2VfZ2VuZXJhdGl2ZV9hbnN3ZXJzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJNdWx0aS1Tb3VyY2UgR2VuZXJhdGl2ZSBBbnN3ZXJzIiwiZmluX211bHRpX3NvdXJjZV9nZW5lcmF0aXZlX2Fuc3dlcnNfZmVhdHVyZV90aXRsZSI6Ik11bHRpLVNvdXJjZSBHZW5lcmF0aXZlIEFuc3dlcnMiLCJmaW5fbXVsdGlsaW5ndWFsX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJGaW4gY2FuIGF1dG9tYXRpY2FsbHkgZGV0ZWN0IGFuZCByZXNvbHZlIGlzc3VlcyBpbiBtb3JlIHRoYW4gNDUgbGFuZ3VhZ2VzLCBnaXZpbmcgeW91IGNvbXBsZXRlIGNvbnRyb2wgb3ZlciB3aGljaCBvZiB0aG9zZSBsYW5ndWFnZXMgeW91IHdvdWxkIGxpa2UgdG8gc3VwcG9ydC4iLCJmaW5fbXVsdGlsaW5ndWFsX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJNdWx0aWxpbmd1YWwiLCJmaW5fbXVsdGlsaW5ndWFsX2ZlYXR1cmVfdGl0bGUiOiJNdWx0aWxpbmd1YWwiLCJmaW5fb3Zlcl9hcGlfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkludGVncmF0ZSBGaW4gYWxtb3N0IGFueXdoZXJlIHVzaW5nIGFuIEFQSSBjb25uZWN0aW9uLiIsImZpbl9vdmVyX2FwaV9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiRmluIG92ZXIgQVBJIiwiZmluX292ZXJfYXBpX2ZlYXR1cmVfdGl0bGUiOiJGaW4gb3ZlciBBUEkiLCJmaW5fb3Zlcl9lbWFpbF9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRmluIGNhbiByZXNwb25kIHRvIGN1c3RvbWVycyBvdmVyIGVtYWlsLCB3aXRoIHJlc3BvbnNlcyBzdHJ1Y3R1cmVkIGluIGEgd2F5IHRoYXQgZmVlbHMgbmF0dXJhbCB0byB0aGUgY2hhbm5lbC4gQXQgdGhlIHNhbWUgdGltZSwgRmluIGZpbHRlcnMgb3V0IHBoaXNoaW5nIGF0dGVtcHRzLCBzcGFtLCBhbmQgb3RoZXIgdGhyZWF0cy4iLCJmaW5fb3Zlcl9lbWFpbF9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiRmluIG92ZXIgZW1haWwiLCJmaW5fb3Zlcl9lbWFpbF9mZWF0dXJlX3RpdGxlIjoiRmluIG92ZXIgZW1haWwiLCJmaW5fb3Zlcl9zbGFja19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRGVsaXZlciBpbnN0YW50LCBhY2N1cmF0ZSBhbnN3ZXJzIG9uIFNsYWNrLiIsImZpbl9vdmVyX3NsYWNrX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJGaW4gb3ZlciBTbGFjayIsImZpbl9vdmVyX3NsYWNrX2ZlYXR1cmVfdGl0bGUiOiJGaW4gb3ZlciBTbGFjayIsImZpbl9vdmVyX3NvY2lhbF9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRmluIGNhbiBkZWxpdmVyIGNvbnZlcnNhdGlvbmFsIHN1cHBvcnQgYWNyb3NzIHNvY2lhbCBjaGFubmVscywgaW5jbHVkaW5nIEZhY2Vib29rIGFuZCBJbnN0YWdyYW0uIiwiZmluX292ZXJfc29jaWFsX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJGaW4gb3ZlciBzb2NpYWwiLCJmaW5fb3Zlcl9zb2NpYWxfZmVhdHVyZV90aXRsZSI6IkZpbiBvdmVyIHNvY2lhbCIsImZpbl9vdmVyX3doYXRzYXBwX2FuZF9zbXNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkZpbiBjYW4gZGVsaXZlciBjb252ZXJzYXRpb25hbCBzdXBwb3J0IGFjcm9zcyBXaGF0c2FwcCBhbmQgU01TLiIsImZpbl9vdmVyX3doYXRzYXBwX2FuZF9zbXNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkZpbiBvdmVyIFdoYXRzYXBwICYgU01TIiwiZmluX292ZXJfd2hhdHNhcHBfYW5kX3Ntc19mZWF0dXJlX3RpdGxlIjoiRmluIG92ZXIgV2hhdHNhcHAgJiBTTVMiLCJmaW5fb3Zlcl93aGF0c2FwcF9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRmluIGNhbiByZXNwb25kIHRvIGN1c3RvbWVycyBvdmVyIFdoYXRzQXBwLCB3aXRoIHJlc3BvbnNlcyBzdHJ1Y3R1cmVkIGluIGEgd2F5IHRoYXQgZmVlbHMgbmF0dXJhbCB0byB0aGUgY2hhbm5lbC4iLCJmaW5fb3Zlcl93aGF0c2FwcF9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiRmluIG92ZXIgV2hhdHNBcHAiLCJmaW5fb3Zlcl93aGF0c2FwcF9mZWF0dXJlX3RpdGxlIjoiRmluIG92ZXIgV2hhdHNBcHAiLCJmaW5fcHJldmlld19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiU2VlIGhvdyB1cGRhdGVzIHRvIGd1aWRhbmNlLCBkZXBsb3ltZW50IHNldHRpbmdzIHdpbGwgYXBwZWFyIHRvIGN1c3RvbWVycyBpbiByZWFsIHRpbWUuIiwiZmluX3ByZXZpZXdfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkZpbiBwcmV2aWV3IiwiZmluX3ByZXZpZXdfZmVhdHVyZV90aXRsZSI6IkZpbiBwcmV2aWV3IiwiZmluX3ByZXZpZXdfaGFuZG92ZXJfbWVzc2FnZV9wYXJ0X29uZSI6IkF0IHRoaXMgcG9pbnQsIEnigJlkIGhhbmQgdGhlIGNvbnZlcnNhdGlvbiBvdmVyIHRvIGEgdGVhbW1hdGUuIEhvd2V2ZXIgdGhpcyBpcyBqdXN0IGEgcHJldmlldy4gWW91IGNhbiBjb250cm9sIGhhbmRvdmVycyBmcm9tIDxhIGhyZWY9XFwie2RlcGxveV91cmx9XFwiIHJlbD1cXCJub2ZvbGxvdyBub29wZW5lciBub3JlZmVycmVyXFwiIHRhcmdldD1cXCJfYmxhbmtcXCI+RGVwbG95PC9hPi4iLCJmaW5fcHJldmlld19oYW5kb3Zlcl9tZXNzYWdlX3BhcnRfdHdvIjoiVG8ga2VlcCBnb2luZywgYXNrIG1lIGFub3RoZXIgcXVlc3Rpb24uIiwiZmluX3Byb2NlZHVyZXNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlByb2NlZHVyZXMgY29tYmluZSB0aGUgZmxleGliaWxpdHkgb2YgbmF0dXJhbCBsYW5ndWFnZSB3aXRoIHRoZSByZWxpYWJpbGl0eSBvZiBkZXRlcm1pbmlzdGljIGNvbnRyb2xzLCBlbmFibGluZyBGaW4gdG8gcmVzb2x2ZSBjb21wbGV4IGN1c3RvbWVyIHF1ZXJpZXMgZnJvbSBzdGFydCB0byBmaW5pc2guIiwiZmluX3Byb2NlZHVyZXNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkZpbiBQcm9jZWR1cmVzIiwiZmluX3Byb2NlZHVyZXNfZmVhdHVyZV90aXRsZSI6IkZpbiBQcm9jZWR1cmVzIiwiZmluX3Zpc2lvbl9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRmluIGNhbiByZWFkLCBhbmFseXplIGFuZCB1bmRlcnN0YW5kIGltYWdlcyDigJQgbGlrZSBzY3JlZW5zaG90cywgaW52b2ljZXMsIGFuZCBlcnJvciBtZXNzYWdlcy4iLCJmaW5fdmlzaW9uX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJGaW4gVmlzaW9uIiwiZmluX3Zpc2lvbl9mZWF0dXJlX3RpdGxlIjoiRmluIFZpc2lvbiIsImZpbl92b2ljZV9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRmluIFZvaWNlIGlzIEludGVyY29tXCdzIEFJIEFnZW50IGZvciBwaG9uZSBzdXBwb3J0LiIsImZpbl92b2ljZV9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiRmluIFZvaWNlIiwiZmluX3ZvaWNlX2ZlYXR1cmVfdGl0bGUiOiJGaW4gVm9pY2UiLCJmbGFncyI6IkZsYWdzIiwiZm9vZF9kcmluayI6IkZvb2QgJiBEcmluayIsImZvcndhcmRfdG9fZXh0ZXJuYWxfbnVtYmVyX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJGb3J3YXJkIGNhbGxzIHRvIGV4dGVybmFsIG51bWJlcnMgd2hlbiBvdXQgb2Ygb2ZmaWNlIG9yIHRvIGNvbm5lY3QgY3VzdG9tZXJzIHdpdGggYSBwYXJ0bmVyLiIsImZvcndhcmRfdG9fZXh0ZXJuYWxfbnVtYmVyX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJGb3J3YXJkIHRvIGV4dGVybmFsIG51bWJlciIsImZvcndhcmRfdG9fZXh0ZXJuYWxfbnVtYmVyX2ZlYXR1cmVfdGl0bGUiOiJGb3J3YXJkIHRvIGV4dGVybmFsIG51bWJlciIsImZyZXF1ZW50bHlfdXNlZCI6IkZyZXF1ZW50bHkgdXNlZCIsImZyb21fYXBwIjoiZnJvbSB7YXBwX25hbWV9IiwiZnJvbV9uYW1lIjoiZnJvbSB7bmFtZX0iLCJmdWxsX3BhZ2VfaGVscF9hcnRpY2xlX3RpdGxlIjoiSGVscCBjZW50ZXIgYXJ0aWNsZSIsImZ1bGxfcGFnZV9uZXdfY29udmVyc2F0aW9uX2xhYmVsIjoiTmV3IGNvbnZlcnNhdGlvbiIsImZ1bGxfcGFnZV9ub19jb252ZXJzYXRpb25zX3lldCI6Ik5vIGNvbnZlcnNhdGlvbnMgeWV0IiwiZnVsbF9wYWdlX3Jlc291cmNlc19zZWN0aW9uX3RpdGxlIjoiUmVzb3VyY2VzIiwiZnVsbF9wYWdlX3dlbGNvbWVfc3VidGl0bGUiOiJZb3VyIHN0ZXAtYnktc3RlcCBzZXR1cCBndWlkZSIsImZ1bGxfcGFnZV93ZWxjb21lX3RpdGxlIjoiR2V0IHN0YXJ0ZWQiLCJnZW5lcmF0aW5nX2Fuc3dlciI6IkdlbmVyYXRpbmcgYW5zd2VyLi4uIiwiZ2VuZXJhdGluZ190YWJsZSI6IkdlbmVyYXRpbmcgdGFibGXigKYiLCJnZXRfYW5faW5zdGFudF9hbnN3ZXIiOiJHZXQgYW4gaW5zdGFudCBhbnN3ZXIiLCJnZXRfaGVscCI6IkdldCBoZWxwIiwiZ2V0X25vdGlmaWVkIjoiR2V0IG5vdGlmaWVkIiwiZ2V0X25vdGlmaWVkX2J5X2VtYWlsIjoiR2V0IG5vdGlmaWVkIGJ5IGVtYWlsIiwiZ2V0X3Jlc3BvbnNlc19ieV9lbWFpbCI6IkdldCByZXBsaWVzIGJ5IGVtYWlsIiwiZ2lmX2F0dHJpYnV0aW9uIjoidmlhIHtwcm92aWRlcm5hbWV9IiwiZ2lmX3BpY2tlciI6IkdpZiBwaWNrZXIiLCJnaWZzX2xvYWRfZXJyb3IiOiJDb3VsZG5cJ3QgbG9hZCBHSUZzIiwiZ2l0aHViX2ludGVncmF0aW9uX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJTeW5jIEdpdEh1YiBpc3N1ZXMgd2l0aCB5b3VyIGNvbnZlcnNhdGlvbnMuIiwiZ2l0aHViX2ludGVncmF0aW9uX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJHaXRIdWIgaW50ZWdyYXRpb24iLCJnaXRodWJfaW50ZWdyYXRpb25fZmVhdHVyZV90aXRsZSI6IkdpdEh1YiBpbnRlZ3JhdGlvbiIsImdvX2JhY2siOiJHbyBiYWNrIiwiZ29fYmFja190byI6IkdvIGJhY2ssIHtkZXN0aW5hdGlvbn0iLCJnb190byI6IkdvIHRvIHthcHBfbmFtZX0iLCJncmVhdCI6IkdyZWF0IiwiZ3JvdXBfY29udmVyc2F0aW9uXzFfb3RoZXJfcGFydGljaXBhbnRfY291bnRfc2hvcnQiOiIrMSBvdGhlciIsImdyb3VwX2NvbnZlcnNhdGlvbl9tdWx0aXBsZV9vdGhlcl9wYXJ0aWNpcGFudF9jb3VudF9zaG9ydCI6Iit7b3RoZXJfcGFydGljaXBhbnRfY291bnR9IG90aGVycyIsImdyb3VwX2NvbnZlcnNhdGlvbl9tdWx0aXBsZV9wZXJzb25fYWxzb19wYXJ0aWNpcGF0aW5nIjoie290aGVyX3BhcnRpY2lwYW50X2NvdW50fSBvdGhlcnMgYXJlIGFsc28gcGFydGljaXBhdGluZyIsImdyb3VwX2NvbnZlcnNhdGlvbl9uYW1lX2Fsc29fcGFydGljaXBhdGluZyI6IntwYXJ0aWNpcGFudF9uYW1lfSBpcyBhbHNvIHBhcnRpY2lwYXRpbmciLCJncm91cF9jb252ZXJzYXRpb25fbmFtZV9hbmRfMV9vdGhlcl9hbHNvX3BhcnRpY2lhcHRpbmciOiJ7cGFydGljaXBhbnRfbmFtZX0gYW5kIDEgb3RoZXIgYXJlIGFsc28gcGFydGljaXBhdGluZyIsImdyb3VwX2NvbnZlcnNhdGlvbl9uYW1lX2FuZF9tdWx0aXBsZV9vdGhlcnNfYWxzb19wYXJ0aWNpcGF0aW5nIjoie3BhcnRpY2lwYW50X25hbWV9IGFuZCB7b3RoZXJfcGFydGljaXBhbnRfY291bnR9IG90aGVycyBhcmUgYWxzbyBwYXJ0aWNpcGF0aW5nIiwiZ3JvdXBfY29udmVyc2F0aW9uX29uZV9wZXJzb25fYWxzb19wYXJ0aWNpcGF0aW5nIjoiMSBvdGhlciBpcyBhbHNvIHBhcnRpY2lwYXRpbmciLCJoYW5kb3Zlcl9jb250ZXh0X2Zyb21fY29udmVyc2F0aW9uIjoiQ29udGV4dCBmcm9tIHtjb252ZXJzYXRpb259IiwiaGFuZG92ZXJfY29udGV4dF9zb3VyY2VfY29udmVyc2F0aW9uIjoib3RoZXIgY29udmVyc2F0aW9uIiwiaGFuZG92ZXJfY3RhX2NvbnZlcnNhdGlvbl9jcmVhdGVkIjoiU2VwYXJhdGUgY29udmVyc2F0aW9uIGNyZWF0ZWQiLCJoYW5kb3Zlcl9jdGFfZXJyb3IiOiJTb21ldGhpbmcgd2VudCB3cm9uZy4gUGxlYXNlIHRyeSBhZ2Fpbi4iLCJoYW5kb3Zlcl9jdGFfdGFsa190b190ZWFtIjoiVGFsayB0byB0ZWFtIiwiaGVscF9jZW50ZXJfYXJ0aWNsZSI6IkhlbHAgQ2VudGVyIEFydGljbGUiLCJoZWxwX2NlbnRlcl9jdXN0b21pemF0aW9uX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJDdXN0b21pemUgdGhlIHZpc3VhbCBhcHBlYXJhbmNlIG9mIHlvdXIgaGVscCBjZW50ZXIgdG8ga2VlcCBpdCBsb29raW5nIG9uIGJyYW5kLiIsImhlbHBfY2VudGVyX2N1c3RvbWl6YXRpb25fZmVhdHVyZV9zaG9ydF90aXRsZSI6IkhlbHAgY2VudGVyIGN1c3RvbWl6YXRpb24iLCJoZWxwX2NlbnRlcl9jdXN0b21pemF0aW9uX2ZlYXR1cmVfdGl0bGUiOiJIZWxwIGNlbnRlciBjdXN0b21pemF0aW9uIiwiaGVscF9zcGFjZV90aXRsZSI6IkhlbHAiLCJoaV9uYW1lIjoiSGkge2ZpcnN0X25hbWV9IPCfkYsiLCJoaV90aGVyZSI6IkhpIDxpbXQ+Zmlyc3RfbmFtZSB8IGZhbGxiYWNrOiBcJ3RoZXJlXCc8L2ltdD4g8J+RiyIsImhpZGVfbWVzc2VuZ2VyX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJDaG9vc2Ugd2hldGhlciB0byBoaWRlIHRoZSBtZXNzZW5nZXIuIiwiaGlkZV9tZXNzZW5nZXJfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkhpZGUgbWVzc2VuZ2VyIiwiaGlkZV9tZXNzZW5nZXJfZmVhdHVyZV90aXRsZSI6IkhpZGUgbWVzc2VuZ2VyIiwiaGlwYWFfc3VwcG9ydF9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiSW50ZXJjb20gaXMgSElQQUEgY29tcGxpYW50LiIsImhpcGFhX3N1cHBvcnRfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkhJUEFBIHN1cHBvcnQiLCJoaXBhYV9zdXBwb3J0X2ZlYXR1cmVfdGl0bGUiOiJISVBBQSBzdXBwb3J0IiwiaG9tZV9zcGFjZV90aXRsZSI6IkhvbWUiLCJob3dfY2FuX3dlX2hlbHAiOiJIb3cgY2FuIHdlIGhlbHA/IiwiaG93X3dvdWxkX3lvdV9yYXRlX3RoaXMiOiJIb3cgd291bGQgeW91IHJhdGUgdGhpcz8iLCJodWJzcG90X2ludGVncmF0aW9uX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJTZWUgSHViU3BvdCBkYXRhIGluIEludGVyY29tXCdzIGluYm94IGFuZCBzeW5jIGxlYWRzIGFuZCBjb252ZXJzYXRpb25zLiIsImh1YnNwb3RfaW50ZWdyYXRpb25fZmVhdHVyZV9zaG9ydF90aXRsZSI6Ikh1YlNwb3QgaW50ZWdyYXRpb24iLCJodWJzcG90X2ludGVncmF0aW9uX2ZlYXR1cmVfdGl0bGUiOiJIdWJTcG90IGludGVncmF0aW9uIiwiaHVtYW5faGFuZG9mZl9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQ29uZmlndXJlIGhvdyBhbmQgd2hlbiBGaW4gdHJpYWdlcyBjb252ZXJzYXRpb25zIG9yIGhhbmRzIG9mZiB0byB5b3VyIGh1bWFuIHN1cHBvcnQgdGVhbS4gRmluIHdpbGwgYWx3YXlzIGF1dG9tYXRpY2FsbHkgaGFuZG9mZiB3aGVuIHRoYXQgaXMgdGhlIHNhZmVzdCBvcHRpb24gZm9yIHRoZSBjdXN0b21lci4iLCJodW1hbl9oYW5kb2ZmX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJIdW1hbiBoYW5kb2ZmIiwiaHVtYW5faGFuZG9mZl9mZWF0dXJlX3RpdGxlIjoiSHVtYW4gaGFuZG9mZiIsImltYWdlX3ByZXZpZXdfYWx0IjoiSW1hZ2UgcHJldmlldyB7aW5kZXh9IG9mIHt0b3RhbH0iLCJpbWFnZV9wcmV2aWV3cyI6IkltYWdlIHByZXZpZXdzIiwiaW5ib3VuZF9hbmRfb3V0Ym91bmRfcGhvbmVfY2FsbHNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkN1c3RvbWVycyBjYW4gcmVhY2ggeW91IGJ5IHBob25lIGFuZCBhZ2VudHMgcmVjZWl2ZSBvciBwbGFjZSBpbi1icm93c2VyIHRocm91Z2ggdGhlIEludGVyY29tIEluYm94LiIsImluYm91bmRfYW5kX291dGJvdW5kX3Bob25lX2NhbGxzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJJbmJvdW5kIGFuZCBvdXRib3VuZCBwaG9uZSBjYWxscyIsImluYm91bmRfYW5kX291dGJvdW5kX3Bob25lX2NhbGxzX2ZlYXR1cmVfdGl0bGUiOiJJbmJvdW5kIGFuZCBvdXRib3VuZCBwaG9uZSBjYWxscyIsImluYm91bmRfZW1haWxfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlJlY2VpdmUgYW5kIHJlcGx5IHRvIHN1cHBvcnQgZW1haWxzIGZyb20gdGhlIEluYm94LCBmcmVlIG9mIGNoYXJnZS4iLCJpbmJvdW5kX2VtYWlsX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJJbmJvdW5kIGVtYWlsIiwiaW5ib3VuZF9lbWFpbF9mZWF0dXJlX3RpdGxlIjoiSW5ib3VuZCBlbWFpbCIsImluYm94X3ZpZXdzX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJCdWlsZCBjdXN0b20gZmlsdGVyZWQgdmlld3MgdG8gbW9uaXRvciBjb252ZXJzYXRpb25zIGluIHJlYWwgdGltZS4iLCJpbmJveF92aWV3c19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiSW5ib3ggdmlld3MiLCJpbmJveF92aWV3c19mZWF0dXJlX3RpdGxlIjoiSW5ib3ggdmlld3MiLCJpbmNsdWRlZF91c2FnZV9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiTW9udGhseSBGaW4gQUkgQ29waWxvdCBVc2FnZSBpbmNsdWRlZCBpbiBldmVyeSBjb3JlIHBsYW4uIiwiaW5jbHVkZWRfdXNhZ2VfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkluY2x1ZGVkIHVzYWdlIiwiaW5jbHVkZWRfdXNhZ2VfZmVhdHVyZV90aXRsZSI6IkluY2x1ZGVkIHVzYWdlIiwiaW50ZWdyYXRlZF9jYWxsc19hbmRfY29udmVyc2F0aW9uc19pbmJveF9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiU2F2ZSB0aW1lIGJ5IGhhbmRsaW5nIGNhbGxzIHdpdGhpbiB0aGUgSW50ZXJjb20gSW5ib3guIFF1aWNrbHkgZm9sbG93IHVwIHdpdGggY3VzdG9tZXJzIHRocm91Z2ggdGlja2V0cyBvciBtZXNzYWdpbmcgYWNyb3NzIHZhcmlvdXMgY2hhbm5lbHMuIiwiaW50ZWdyYXRlZF9jYWxsc19hbmRfY29udmVyc2F0aW9uc19pbmJveF9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiSW50ZWdyYXRlZCBjYWxscyBhbmQgY29udmVyc2F0aW9ucyBJbmJveCIsImludGVncmF0ZWRfY2FsbHNfYW5kX2NvbnZlcnNhdGlvbnNfaW5ib3hfZmVhdHVyZV90aXRsZSI6IkludGVncmF0ZWQgY2FsbHMgYW5kIGNvbnZlcnNhdGlvbnMgSW5ib3giLCJpbnRlcmNvbV9tZXNzZW5nZXJfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkdpdmUgcHJvYWN0aXZlIGhlbHAsIHNlbGYtc2VydmUgb3B0aW9ucywgYW5kIHBlcnNvbmFsIGFzc2lzdGFuY2UgdGhyb3VnaCBjaGF0IG9uIHlvdXIgd2Vic2l0ZSBvciBtb2JpbGUgYXBwLiIsImludGVyY29tX21lc3Nlbmdlcl9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiSW50ZXJjb20gbWVzc2VuZ2VyIiwiaW50ZXJjb21fbWVzc2VuZ2VyX2ZlYXR1cmVfdGl0bGUiOiJJbnRlcmNvbSBtZXNzZW5nZXIiLCJqYW51YXJ5X2RhdGUiOiJKYW51YXJ5IHtkYXRlfSIsImpvaW5fY29udmVyc2F0aW9uIjoiSm9pbiBjb252ZXJzYXRpb24iLCJqdWx5X2RhdGUiOiJKdWx5IHtkYXRlfSIsImp1bmVfZGF0ZSI6Ikp1bmUge2RhdGV9IiwibGFzdF9hY3RpdmVfaG91cnNfYWdvIjoiTGFzdCBhY3RpdmUge21pbnN9IGhvdXJzIGFnbyIsImxhc3RfYWN0aXZlX21pbnNfYWdvIjoiTGFzdCBhY3RpdmUge21pbnN9IG1pbnMgYWdvIiwibGFzdF9hY3RpdmVfb3Zlcl9hX3dlZWsiOiJMYXN0IGFjdGl2ZSBvdmVyIDF3IGFnbyIsImxhdW5jaGVyX25ld19tZXNzYWdlX3Npbmd1bGFyIjoie2NvdW50fSBuZXcgbWVzc2FnZSIsImxhdW5jaGVyX25ld19tZXNzYWdlc19wbHVyYWwiOiJ7Y291bnR9IG5ldyBtZXNzYWdlcyIsImxlYXJuX21vcmUiOiJMZWFybiBtb3JlIiwibGVhdmVfdXNfYV9tZXNzYWdlIjoiTGVhdmUgdXMgYSBtZXNzYWdlIiwibGVhdmVfeW91cl9lbWFpbCI6IkxlYXZlIHlvdXIgZW1haWwuLi4iLCJsaXN0X3BsYWNlaG9sZGVyIjoiTGlzdCIsImxpdGVfc2VhdHNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkJhY2stb2ZmaWNlIHRlYW1zIGNhbiBhY2Nlc3MgSW50ZXJjb20gYXMgYSBjb2xsYWJvcmF0b3IgYXQgbm8gZXh0cmEgY29zdC4iLCJsaXRlX3NlYXRzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJMaXRlIHNlYXRzIiwibGl0ZV9zZWF0c19mZWF0dXJlX3RpdGxlIjoiTGl0ZSBzZWF0cyIsImxpdmVfY2hhdF9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiU3VwcG9ydCBjdXN0b21lcnMgdmlhIGxpdmUgY2hhdCBvbiB0aGUgbWVzc2VuZ2VyICh3ZWIsIGlPUywgQW5kcm9pZCkuIiwibGl2ZV9jaGF0X2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJMaXZlIGNoYXQiLCJsaXZlX2NoYXRfZmVhdHVyZV90aXRsZSI6IkxpdmUgY2hhdCIsImxvYWRpbmciOiJMb2FkaW5nIiwibG9jYWxfYW5kX3RvbGxfZnJlZV9udW1iZXJzX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJTZXQtdXAgYSBuZXcgbnVtYmVyIG9yIHBvcnQgb3ZlciB5b3VyIGV4aXN0aW5nIG51bWJlci4iLCJsb2NhbF9hbmRfdG9sbF9mcmVlX251bWJlcnNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkxvY2FsIGFuZCB0b2xsLWZyZWUgbnVtYmVycyIsImxvY2FsX2FuZF90b2xsX2ZyZWVfbnVtYmVyc19mZWF0dXJlX3RpdGxlIjoiTG9jYWwgYW5kIHRvbGwtZnJlZSBudW1iZXJzIiwibWFjcm9zX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJTYXZlIHRpbWUgb24gcmVwZXRpdGl2ZSB0YXNrcyBieSBjcmVhdGluZyBzYXZlZCByZXBsaWVzIGFuZCBhY3Rpb25zIGZvciB5b3VyIHRlYW0uIiwibWFjcm9zX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJNYWNyb3MiLCJtYWNyb3NfZmVhdHVyZV90aXRsZSI6Ik1hY3JvcyIsIm1hcmNoX2RhdGUiOiJNYXJjaCB7ZGF0ZX0iLCJtYXJrZXRvX2ludGVncmF0aW9uX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJBdXRvbWF0aWNhbGx5IHNlbmQgbGVhZHMgYW5kIGNvbnZlcnNhdGlvbnMgdG8gTWFya2V0by4iLCJtYXJrZXRvX2ludGVncmF0aW9uX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJNYXJrZXRvIGludGVncmF0aW9uIiwibWFya2V0b19pbnRlZ3JhdGlvbl9mZWF0dXJlX3RpdGxlIjoiTWFya2V0byBpbnRlZ3JhdGlvbiIsIm1heGltdW1fYXR0YWNobWVudF9saW1pdF9yZWFjaGVkIjoiTWF4aW11bSBhdHRhY2htZW50IGxpbWl0IHJlYWNoZWQiLCJtYXlfZGF0ZSI6Ik1heSB7ZGF0ZX0iLCJtZXNzYWdlIjoibWVzc2FnZSIsIm1lc3NhZ2VfcGxhY2Vob2xkZXIiOiJNZXNzYWdl4oCmIiwibWVzc2FnZV9zZWVuIjoiU2VlbiIsIm1lc3NhZ2Vfc2VudCI6Ik1lc3NhZ2Ugc2VudC4iLCJtZXNzYWdlX3N0YXRlX3NlbmRpbmciOiJTZW5kaW5n4oCmIiwibWVzc2FnZV91bnNlZW4iOiJOb3Qgc2VlbiB5ZXQiLCJtZXNzYWdlc19icm93c2VfYXJ0aWNsZXNfYnRuIjoiQnJvd3NlIGZvciBoZWxwIiwibWVzc2FnZXNfZW1wdHlfc3RhdGVfdGV4dCI6Ik1lc3NhZ2VzIGZyb20gdGhlIHRlYW0gd2lsbCBiZSBzaG93biBoZXJlIiwibWVzc2FnZXNfZW1wdHlfc3RhdGVfdGl0bGUiOiJObyBtZXNzYWdlcyIsIm1lc3NhZ2VzX3NwYWNlX3RpdGxlIjoiTWVzc2FnZXMiLCJtZXNzZW5nZXIiOiJtZXNzZW5nZXIiLCJtZXNzZW5nZXJfYXBwX3RhcmdldGluZ19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQ29uZmlndXJlIHlvdXIgbWVzc2VuZ2VyXCdzIGhvbWUgc2NyZWVuIHdpdGggYXBwcyBhbmQgYXBwbHkgdGFyZ2V0aW5nIHRvIGRpZmZlcmVudCB1c2Vycy4iLCJtZXNzZW5nZXJfYXBwX3RhcmdldGluZ19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiTWVzc2VuZ2VyIGFwcCB0YXJnZXRpbmciLCJtZXNzZW5nZXJfYXBwX3RhcmdldGluZ19mZWF0dXJlX3RpdGxlIjoiTWVzc2VuZ2VyIGFwcCB0YXJnZXRpbmciLCJtZXNzZW5nZXJfYm90X3JlcGx5X3RpbWUiOiJPdXIgYm90IHdpbGwgcmVwbHkgaW5zdGFudGx5IiwibWVzc2VuZ2VyX2NhbGxzX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJBZ2VudHMgY2FuIGdvIGZyb20gYSBsaXZlIGNoYXQgdG8gYSB2b2ljZSBvciB2aWRlbyBjYWxsIGluIHRoZSBNZXNzZW5nZXIgZm9yIHJpY2hlciBjdXN0b21lciBpbnRlcmFjdGlvbnMuIiwibWVzc2VuZ2VyX2NhbGxzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJNZXNzZW5nZXIgY2FsbHMiLCJtZXNzZW5nZXJfY2FsbHNfZmVhdHVyZV90aXRsZSI6Ik1lc3NlbmdlciBjYWxscyIsIm1lc3Nlbmdlcl9zY3JlZW5fc2hhcmluZ19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQ3VzdG9tZXJzIGNhbiBzaGFyZSB0aGVpciBzY3JlZW4gdG8gaGF2ZSBjb21wbGV4IHByb2JsZW1zIHNvbHZlZCBpbiBjb250ZXh0LiIsIm1lc3Nlbmdlcl9zY3JlZW5fc2hhcmluZ19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiTWVzc2VuZ2VyIHNjcmVlbiBzaGFyaW5nIiwibWVzc2VuZ2VyX3NjcmVlbl9zaGFyaW5nX2ZlYXR1cmVfdGl0bGUiOiJNZXNzZW5nZXIgc2NyZWVuIHNoYXJpbmciLCJtb2JpbGVfY2Fyb3VzZWxzX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJIaWdobGlnaHQgdGhlIGJlc3QgcGFydHMgb2YgeW91ciBtb2JpbGUgYXBwIHdpdGggc2ltcGxlLXRvLWNyZWF0ZSwgZnVsbHkgY3VzdG9taXphYmxlIHNjcmVlbnMuIiwibW9iaWxlX2Nhcm91c2Vsc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiTW9iaWxlIGNhcm91c2VscyIsIm1vYmlsZV9jYXJvdXNlbHNfZmVhdHVyZV90aXRsZSI6Ik1vYmlsZSBjYXJvdXNlbHMiLCJtb3JlX2FjdGlvbnMiOiJNb3JlIGFjdGlvbnMiLCJtdWx0aV9icmFuZF9lbWFpbF9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiTWFuYWdlIGVtYWlsIHNldHRpbmdzLCBzaWduYXR1cmVzLCBhbmQgbm90aWZpY2F0aW9ucyBmb3IgbXVsdGlwbGUgYnJhbmRzLiIsIm11bHRpX2JyYW5kX2VtYWlsX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJNdWx0aS1icmFuZCBlbWFpbCIsIm11bHRpX2JyYW5kX2VtYWlsX2ZlYXR1cmVfdGl0bGUiOiJNdWx0aS1icmFuZCBlbWFpbCIsIm11bHRpYnJhbmRfbWVzc2VuZ2VyX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJDcmVhdGUgZGlmZmVyZW50IG1lc3NlbmdlciBzdHlsZXMgZm9yIGVhY2ggb2YgeW91ciB1bmlxdWUgYnJhbmRzLiIsIm11bHRpYnJhbmRfbWVzc2VuZ2VyX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJNdWx0aWJyYW5kIG1lc3NlbmdlciIsIm11bHRpYnJhbmRfbWVzc2VuZ2VyX2ZlYXR1cmVfdGl0bGUiOiJNdWx0aWJyYW5kIG1lc3NlbmdlciIsIm11bHRpbGluZ3VhbF9oZWxwX2NlbnRlcl9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQ29uZmlndXJlIHlvdXIgaGVscCBjZW50ZXIgdG8gd29yayBpbiBtdWx0aXBsZSBsYW5ndWFnZXMsIHNvIHlvdSBjYW4gcHJvdmlkZSBzZWxmLXNlcnZpY2Ugc3VwcG9ydCBpbiB0aGUgbGFuZ3VhZ2VzIHlvdXIgY3VzdG9tZXJzIHNwZWFrLiIsIm11bHRpbGluZ3VhbF9oZWxwX2NlbnRlcl9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiTXVsdGlsaW5ndWFsIGhlbHAgY2VudGVyIiwibXVsdGlsaW5ndWFsX2hlbHBfY2VudGVyX2ZlYXR1cmVfdGl0bGUiOiJNdWx0aWxpbmd1YWwgaGVscCBjZW50ZXIiLCJtdWx0aXBsZV9hcnRpY2xlcyI6Int0b3RhbF9hcnRpY2xlc30gYXJ0aWNsZXMiLCJtdWx0aXBsZV9jb2xsZWN0aW9ucyI6Int0b3RhbF9jb2xsZWN0aW9ufSBjb2xsZWN0aW9ucyIsIm11bHRpcGxlX2hlbHBfY2VudGVyc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQ3JlYXRlIHNlcGFyYXRlIGtub3dsZWRnZSBiYXNlcyBmb3IgeW91ciBkaWZmZXJlbnQgcHJvZHVjdHMgb3IgYnJhbmRzLiIsIm11bHRpcGxlX2hlbHBfY2VudGVyc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiTXVsdGlwbGUgaGVscCBjZW50ZXJzIiwibXVsdGlwbGVfaGVscF9jZW50ZXJzX2ZlYXR1cmVfdGl0bGUiOiJNdWx0aXBsZSBoZWxwIGNlbnRlcnMiLCJtdWx0aXBsZV90ZWFtX2luYm94ZXNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlByb3ZpZGUgbXVsdGlwbGUgaW5ib3hlcyBwZXIgdGVhbSBmcm9tIHRoZSBzYW1lIHdvcmtzcGFjZS4iLCJtdWx0aXBsZV90ZWFtX2luYm94ZXNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IlRlYW0gaW5ib3hlcyIsIm11bHRpcGxlX3RlYW1faW5ib3hlc19mZWF0dXJlX3RpdGxlIjoiTXVsdGlwbGUgdGVhbSBpbmJveGVzIiwibXV0ZV9ob2xkX3RyYW5zZmVyX2NhbGxzX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJNdXRlLCBob2xkIGFuZCB0cmFuc2ZlciBjYWxscyB0byBvdGhlciB0ZWFtcyBhcyBuZWVkZWQuIiwibXV0ZV9ob2xkX3RyYW5zZmVyX2NhbGxzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJNdXRlLCBob2xkICYgdHJhbnNmZXIgY2FsbHMiLCJtdXRlX2hvbGRfdHJhbnNmZXJfY2FsbHNfZmVhdHVyZV90aXRsZSI6Ik11dGUsIGhvbGQgJiB0cmFuc2ZlciBjYWxscyIsIm11dGVfc291bmQiOiJNdXRlIHNvdW5kIiwibmFtZV9hbmRfMV9vdGhlciI6IntuYW1lfSBhbmQgMSBvdGhlciIsIm5hbWVfYW5kX29uZV9vdGhlciI6IntuYW1lfSBhbmQgb25lIG90aGVyIiwibmFtZV9hbmRfdHdvX290aGVycyI6IntuYW1lfSBhbmQgMiBvdGhlcnMiLCJuYW1lX2FuZF94X290aGVycyI6IntuYW1lfSBhbmQge2NvdW50fSBvdGhlcnMiLCJuYXR1cmUiOiJOYXR1cmUiLCJuYXZpZ2F0aW9uX2JhY2siOiJCYWNrIiwibmV3IjoiTmV3IiwibmV3X2NoYXQiOiJOZXcgY2hhdCIsIm5ld19jb252ZXJzYXRpb24iOiJOZXcgY29udmVyc2F0aW9uIiwibmV3X21lc3NhZ2UiOiJOZXcgbWVzc2FnZSIsIm5ld3MiOiJOZXdzIiwibmV3c19lbXB0eV90aXRsZSI6Ik5vIG5ld3MgeWV0IiwibmV3c19pdGVtc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiU2hhcmUgY29udGV4dHVhbCBhbmQgcmVsZXZhbnQgYW5ub3VuY2VtZW50cyB3aXRoIHlvdXIgY3VzdG9tZXJzIGRpcmVjdGx5IGluIHRoZSBtZXNzZW5nZXIuIiwibmV3c19pdGVtc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiTmV3cyBpdGVtcyIsIm5ld3NfaXRlbXNfZmVhdHVyZV90aXRsZSI6Ik5ld3MgaXRlbXMiLCJuZXdzX2xhdGVzdF9zdWJ0aXRsZSI6IkZyb20gVGVhbSB7dGVhbV9uYW1lfSIsIm5ld3NfbGF0ZXN0X3RpdGxlIjoiTGF0ZXN0IiwibmV3c19vbGRlcl90aXRsZSI6Ik9sZGVyIiwibmV3c19zcGFjZV90aXRsZSI6Ik5ld3MiLCJuZXdzZmVlZCI6Ik5ld3NmZWVkIiwibm9fYXJ0aWNsZXNfdG9fZGlzcGxheSI6Ik5vIGFydGljbGVzIHlldCIsIm5vX2NvbnZlcnNhdGlvbnMiOiJObyBjb252ZXJzYXRpb25zIiwibm9fZW1vamlfZm91bmQiOiJObyBlbW9qaSBjb3VsZCBiZSBmb3VuZCIsIm5vX2dpZnNfZm91bmQiOiJObyBHSUZzIGZvdW5kIiwibm9faGVscF9hcnRpY2xlc190b19kaXNwbGF5IjoiTm8gaGVscCBhcnRpY2xlcyIsIm5vX21lc3NhZ2VzX2Zyb21fdGhlX3RlYW0iOiJObyBtZXNzYWdlcyBmcm9tIHRoZSB0ZWFtIiwibm9fcmVzdWx0c19mb3Jfc2VhcmNodGVybSI6Ik5vIHJlc3VsdHMgZm9yIHtzZWFyY2hUZXJtfSIsIm5vX3Rhc2tzIjoiTm8gdGFza3MiLCJub190YXNrc19hdmFpbGFibGVfY3VycmVudGx5IjoiVGhlcmUgYXJlIGN1cnJlbnRseSBubyB0YXNrcyBhdmFpbGFibGUuIiwibm90aGluZ190b19zZWVfaGVyZV95ZXQiOiJOb3RoaW5nIHRvIHNlZSBoZXJlIHlldCIsIm5vdGlmaWNhdGlvbiI6Im5vdGlmaWNhdGlvbiIsIm5vdmVtYmVyX2RhdGUiOiJOb3ZlbWJlciB7ZGF0ZX0iLCJudW1iZXJfaXNfaW5jb3JyZWN0IjoiVGhhdCBudW1iZXIgZG9lc25cJ3QgbG9vayBxdWl0ZSByaWdodCIsIm9iamVjdHMiOiJPYmplY3RzIiwib2N0b2Jlcl9kYXRlIjoiT2N0b2JlciB7ZGF0ZX0iLCJvZmZpY2VfaG91cnNfYW5kX3JlcGx5X3RpbWVfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlNldCBvZmZpY2UgaG91cnMgYW5kIHJlcGx5IHRpbWUgc28gY3VzdG9tZXJzIGtub3cgd2hlbiB0byBleHBlY3QgYSByZXBseSBhbmQgd2hlbiB5b3VcJ3JlIG91dCBvZiBvZmZpY2UuIiwib2ZmaWNlX2hvdXJzX2FuZF9yZXBseV90aW1lX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJPZmZpY2UgaG91cnMgYW5kIHJlcGx5IHRpbWUiLCJvZmZpY2VfaG91cnNfYW5kX3JlcGx5X3RpbWVfZmVhdHVyZV90aXRsZSI6Ik9mZmljZSBob3VycyBhbmQgcmVwbHkgdGltZSIsIm9mZmljZV9ob3Vyc19jbGllbnRfcmVzcG9uc2VfMWgiOiJCYWNrIGluIDFoIiwib2ZmaWNlX2hvdXJzX2NsaWVudF9yZXNwb25zZV8yaCI6IkJhY2sgaW4gMmgiLCJvZmZpY2VfaG91cnNfY2xpZW50X3Jlc3BvbnNlXzMwbSI6IkJhY2sgaW4gMzBtIiwib2ZmaWNlX2hvdXJzX2NsaWVudF9yZXNwb25zZV8zaCI6IkJhY2sgaW4gM2giLCJvZmZpY2VfaG91cnNfY2xpZW50X3Jlc3BvbnNlX2RheV8wIjoiQmFjayBvbiBNb24iLCJvZmZpY2VfaG91cnNfY2xpZW50X3Jlc3BvbnNlX2RheV8xIjoiQmFjayBvbiBUdWUiLCJvZmZpY2VfaG91cnNfY2xpZW50X3Jlc3BvbnNlX2RheV8yIjoiQmFjayBvbiBXZWQiLCJvZmZpY2VfaG91cnNfY2xpZW50X3Jlc3BvbnNlX2RheV8zIjoiQmFjayBvbiBUaHUiLCJvZmZpY2VfaG91cnNfY2xpZW50X3Jlc3BvbnNlX2RheV80IjoiQmFjayBvbiBGcmkiLCJvZmZpY2VfaG91cnNfY2xpZW50X3Jlc3BvbnNlX2RheV81IjoiQmFjayBvbiBTYXQiLCJvZmZpY2VfaG91cnNfY2xpZW50X3Jlc3BvbnNlX2RheV82IjoiQmFjayBvbiBTdW4iLCJvZmZpY2VfaG91cnNfY2xpZW50X3Jlc3BvbnNlX2xhdGVyX3RvZGF5IjoiQmFjayBsYXRlciB0b2RheSIsIm9mZmljZV9ob3Vyc19jbGllbnRfcmVzcG9uc2VfbmV4dF93ZWVrIjoiQmFjayBuZXh0IHdlZWsiLCJvZmZpY2VfaG91cnNfY2xpZW50X3Jlc3BvbnNlX3RvbW9ycm93IjoiQmFjayB0b21vcnJvdyIsIm9rX2Rlc2NyaXB0aW9uIjoiT0siLCJvbl9iZWhhbGZfb2ZfYXBwIjoib24gYmVoYWxmIG9mIHthcHBfbmFtZX0iLCJvcGVuX2FydGljbGVfaW5faGVscF9jZW50ZXIiOiJPcGVuIGluIGhlbHAgY2VudGVyIiwib3Blbl9jb252ZXJzYXRpb25fYW5kX3JlcGx5IjoiT3BlbiBjb252ZXJzYXRpb24gYW5kIHJlcGx5Iiwib3Blbl9maWxlIjoiT3BlbiB7ZmlsZW5hbWV9Iiwib3Blbl9pbnRlcmNvbV9tZXNzZW5nZXIiOiJPcGVuIEludGVyY29tIE1lc3NlbmdlciIsIm9wZW5zX2luX25ld190YWIiOiJvcGVucyBpbiBuZXcgdGFiIiwib3BlcmF0b3JfYXNrZWRfZm9yX2F0dHJpYnV0ZSI6IkFza2VkIGZvciB7YXR0cmlidXRlfSIsIm9wdGltaXplX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJVbmRlcnN0YW5kIHdoZXJlIEZpbiBjYW4gcmVzb2x2ZSBtb3JlIGNvbnZlcnNhdGlvbnMsIGFuZCB0YWtlIGluc3RhbnQgYWN0aW9uIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuIiwib3B0aW1pemVfZmVhdHVyZV9zaG9ydF90aXRsZSI6Ik9wdGltaXplIERhc2hib2FyZCIsIm9wdGltaXplX2ZlYXR1cmVfdGl0bGUiOiJPcHRpbWl6ZSBEYXNoYm9hcmQiLCJvcl9jbGlja19vcGVuX3doYXRzYXBwIjoiT3IgY2xpY2sgaGVyZSB0byBvcGVuIFdoYXRzQXBwIiwib3JfY29udGludWVfb25fd2hhdHNhcHBfd2ViIjoiT3IgY29udGludWUgb24gV2hhdHNBcHAgd2ViIiwib3VyX2JvdF9hbnN3ZXJzX2luc3RhbnRseSI6Ik91ciBib3QgYW5zd2VycyBpbnN0YW50bHkiLCJvdmVydmlld19yZXBvcnRfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkFuYWx5emUgaG93IEZpbiBpcyBpbXBhY3RpbmcgeW91ciByZXNvbHV0aW9uIHJhdGVzIGFuZCBDU0FULCB3aXRoIGEgY29tcGxldGUgb3ZlcnZpZXcgb2YgRmluXCdzIHBlcmZvcm1hbmNlIGluIGEgcHJlLWJ1aWx0LCBjdXN0b21pemFibGUgcmVwb3J0LiIsIm92ZXJ2aWV3X3JlcG9ydF9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiRmluIHBlcmZvcm1hbmNlIHJlcG9ydCIsIm92ZXJ2aWV3X3JlcG9ydF9mZWF0dXJlX3RpdGxlIjoiRmluIHBlcmZvcm1hbmNlIHJlcG9ydCIsInBhdXNlIjoiUGF1c2UiLCJwZW9wbGUiOiJQZW9wbGUiLCJwZW9wbGVfYm9keSI6IlBlb3BsZSAmIEJvZHkiLCJwZXJzb25hbGl6ZWRfYW5zd2Vyc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRmluIHVzZXMgY3VzdG9tZXIgaW5mb3JtYXRpb24gZnJvbSBleHRlcm5hbCBzeXN0ZW1zIC0gaW5jbHVkaW5nIGFjY291bnQsIHB1cmNoYXNlIGFuZCBzdWJzY3JpcHRpb24gaGlzdG9yeSAtIHRvIHBlcnNvbmFsaXplIGFuc3dlcnMgZm9yIGVhY2ggaW5kaXZpZHVhbCBjdXN0b21lci4iLCJwZXJzb25hbGl6ZWRfYW5zd2Vyc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiUGVyc29uYWxpemVkIGFuc3dlcnMiLCJwZXJzb25hbGl6ZWRfYW5zd2Vyc19mZWF0dXJlX3RpdGxlIjoiUGVyc29uYWxpemVkIGFuc3dlcnMiLCJwaG9uZV9hdmFpbGFiaWxpdHlfY29udHJvbHNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6Ik1hbmFnZSB0ZWFtIHBob25lIFwnYXZhaWxhYmlsaXR5XCcgdG8gbWVldCBwaG9uZSB2b2x1bWUuIiwicGhvbmVfYXZhaWxhYmlsaXR5X2NvbnRyb2xzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJQaG9uZSBcJ2F2YWlsYWJpbGl0eVwnIGNvbnRyb2xzIiwicGhvbmVfYXZhaWxhYmlsaXR5X2NvbnRyb2xzX2ZlYXR1cmVfdGl0bGUiOiJQaG9uZSBcJ2F2YWlsYWJpbGl0eVwnIGNvbnRyb2xzIiwicGhvbmVfZmVhdHVyZV9kZXNjcmlwdGlvbiI6Ik1ha2UgZXZlcnkgY2FsbCBjb3VudC4gU29sdmUgY3VzdG9tZXIgcHJvYmxlbXMgZmFzdGVyIHdpdGggcGhvbmUgY2FsbHMsIHZpZGVvIGNhbGxzLCBhbmQgc2NyZWVuIHNoYXJpbmcuIEFsbCB3aXRoaW4gSW50ZXJjb20uIiwicGhvbmVfZmVhdHVyZV9zaG9ydF90aXRsZSI6IlBob25lIiwicGhvbmVfZmVhdHVyZV90aXRsZSI6IlBob25lIiwicGhvbmVfaW50ZWdyYXRpb25zX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJBbHJlYWR5IHVzaW5nIGEgQ2FsbCBDZW50ZXIgeW91IHdhbnQgdG8ga2VlcD8gSW50ZWdyYXRlIHlvdXIgY2FsbCBjZW50ZXIgd2l0aCBJbnRlcmNvbSBzbyBhbGwgZGF0YSBpcyBzeW5jZWQgYW5kIGFnZW50cyBjYW4gd29yayBvdXQgb2Ygb25lIHRvb2wuIiwicGhvbmVfaW50ZWdyYXRpb25zX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJQaG9uZSBpbnRlZ3JhdGlvbnMiLCJwaG9uZV9pbnRlZ3JhdGlvbnNfZmVhdHVyZV90aXRsZSI6IlBob25lIGludGVncmF0aW9ucyIsInBob25lX251bWJlciI6IlBob25lIG51bWJlciIsInBpcGVkcml2ZV9pbnRlZ3JhdGlvbl9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQm9vc3QgeW91ciBzYWxlcyBieSBjcmVhdGluZyBhbmQgdHJhY2tpbmcgUGlwZWRyaXZlIGRlYWxzIHdoaWxlIHlvdSBjaGF0LiIsInBpcGVkcml2ZV9pbnRlZ3JhdGlvbl9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiUGlwZWRyaXZlIGludGVncmF0aW9uIiwicGlwZWRyaXZlX2ludGVncmF0aW9uX2ZlYXR1cmVfdGl0bGUiOiJQaXBlZHJpdmUgaW50ZWdyYXRpb24iLCJwbGFjZWhvbGRlcl9kYXRlcGlja2VyIjoiREQtTU0tWVlZWSIsInBsYWNlaG9sZGVyX2VtYWlsX2lucHV0IjoiRW50ZXIgZW1haWwgaGVyZS4uLiIsInBsYWNlaG9sZGVyX251bWVyaWNhbF9pbnB1dHMiOiJFbnRlciBudW1iZXIgaGVyZS4uLiIsInBsYWNlaG9sZGVyX3RleHRfaW5wdXRzIjoiRW50ZXIgdGV4dCBoZXJlLi4uIiwicGxhY2VzIjoiUGxhY2VzIiwicGxhbl9jYXJkX2Vycm9yX3RleHQiOiJDb3VsZG5cJ3QgbG9hZCBwbGFuLiIsInBsYW5fY2FyZF9sb2FkaW5nX3RleHQiOiJMb2FkaW5nIHBsYW7igKYiLCJwbGFuX2NhcmRfb3V0ZGF0ZWRfc3VmZml4Ijoib3V0ZGF0ZWQiLCJwbGFuX2NhcmRfc2tlbGV0b25fc3VidGl0bGUiOiJGaW4gd2lsbCBjcmVhdGUgYSB0YWlsb3JlZCBvbmJvYXJkaW5nIHBsYW4iLCJwbGFuX2NhcmRfc2tlbGV0b25fdGl0bGUiOiJTZXR1cCBwbGFuIiwicGxhbl9jYXJkX3RpdGxlIjoiT25ib2FyZGluZyBQbGFuIiwicGxhbl9jYXJkX3RpdGxlX3N1Y2Nlc3MiOiJTdWNjZXNzIFBsYW4iLCJwbGFuX2NhcmRfdXBkYXRlZF9zdWZmaXgiOiJ1cGRhdGVkIHBsYW4gYmVsb3ciLCJwbGF5IjoiUGxheSIsInBsYXlfc291bmQiOiJQbGF5IHNvdW5kIiwicGxheV92aWRlbyI6IlBsYXkgdmlkZW8iLCJwbGVhc2Vfc2VsZWN0IjoiUGxlYXNlIHNlbGVjdC4uLiIsInBsdXNfeF9wYXJ0aWNpcGFudHMiOiIrIHtjb3VudH0iLCJwb2ludGVyIjoicG9pbnRlciIsInBvc3QiOiJwb3N0IiwicG9zdHNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlByb2FjdGl2ZWx5IHNlbmQgY3VzdG9tZXJzIHBvcC11cCBtZXNzYWdlcyBpbiB5b3VyIGFwcC4iLCJwb3N0c19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiUG9zdHMiLCJwb3N0c19mZWF0dXJlX3RpdGxlIjoiUG9zdHMiLCJwb3dlcmVkX2J5X2Zpbl9haV9hZ2VudCI6IlBvd2VyZWQgYnkgRmluIiwicG93ZXJlZF9ieV9pbnRlcmNvbSI6IlBvd2VyZWQgYnkgSW50ZXJjb20iLCJwcmVfYnVpbHRfcmVwb3J0c19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiSW5ib3ggY29tZXMgd2l0aCByZXBvcnRzIGxpa2UgY29udmVyc2F0aW9ucywgY3VzdG9tZXIgc2F0aXNmYWN0aW9uLCBhbmQgbW9yZS4iLCJwcmVfYnVpbHRfcmVwb3J0c19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiUHJlLWJ1aWx0IHJlcG9ydHMiLCJwcmVfYnVpbHRfcmVwb3J0c19mZWF0dXJlX3RpdGxlIjoiUHJlLWJ1aWx0IHJlcG9ydHMiLCJwcmV2aWV3X2N1c3RvbWVyX3ZpZXdfZW1wdHlfc3RhdGVfc3VidGV4dCI6Ik5vdGU6IFlvdSB3b25cJ3QgYmUgY2hhcmdlZCBmb3IgcHJldmlldyBjb252ZXJzYXRpb25zLiIsInByaXZhY3lfcG9saWN5IjoiUHJpdmFjeSBQb2xpY3kiLCJwcml2YXRlX2hlbHBfY2VudGVyX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJLZWVwIGFydGljbGVzIHByaXZhdGUgb3IgZGVmaW5lIGEgc2V0IG9mIGF1ZGllbmNlIHJ1bGVzIHRvIGNvbnRyb2wgd2hpY2ggY3VzdG9tZXJzIGNhbiBzZWUgd2hpY2ggYXJ0aWNsZXMuIiwicHJpdmF0ZV9oZWxwX2NlbnRlcl9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiUHJpdmF0ZSBoZWxwIGNlbnRlciIsInByaXZhdGVfaGVscF9jZW50ZXJfZmVhdHVyZV90aXRsZSI6IlByaXZhdGUgaGVscCBjZW50ZXIiLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMTA4MDAiOiJUeXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciAzaCIsInByb2FjdGl2ZV9leHBlY3RlZF9yZXNwb25zZV9kZWxheV8xMjAiOiJUeXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciAybSIsInByb2FjdGl2ZV9leHBlY3RlZF9yZXNwb25zZV9kZWxheV8xMjAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgMjBtIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzE0NDAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgNGgiLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMTcyODAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gMmQiLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMTgwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgM20iLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMTgwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDMwbSIsInByb2FjdGl2ZV9leHBlY3RlZF9yZXNwb25zZV9kZWxheV8xODAwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDVoIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzIxNjAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgNmgiLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMjQwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgNG0iLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMjU5MjAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gM2QiLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMzAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgNW0iLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMzQ1NjAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gNGQiLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMzYwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDFoIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzQzMjAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gMTJoIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzQzMjAwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIDVkIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzUxODQwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIDZkIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzYwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgMW0iLCJwcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfNjAwIjoiVHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgMTBtIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzYwNDgwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDF3IiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzcyMDAiOiJUeXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciAyaCIsInByb2FjdGl2ZV9leHBlY3RlZF9yZXNwb25zZV9kZWxheV84NjQwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIDFkIiwicHJvYWN0aXZlX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzkwMCI6IlR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDE1bSIsInByb2FjdGl2ZV9leHBlY3RlZF9yZXNwb25zZV9kZWxheV91bmtub3duIjoiV2lsbCByZXBseSBhcyBzb29uIGFzIHRoZXkgY2FuIiwicHJvY2Vzc2luZ19yZWNvcmRpbmciOiJQcm9jZXNzaW5nIHJlY29yZGluZyIsInByb2R1Y3RfdG91cnNfYXV0aG9yIjoiQnkge25hbWV9IGZyb20ge2NvbXBhbnl9IiwicHJvZHVjdF90b3Vyc19kb25lIjoiRG9uZSIsInByb2R1Y3RfdG91cnNfZXJyb3IiOiJXZeKAmXJlIHNvcnJ5LCB0aGVyZSB3YXMgYW4gdW5leHBlY3RlZCBpc3N1ZSB3aXRoIHRoaXMgdG91ciIsInByb2R1Y3RfdG91cnNfZXJyb3JfY3RhIjoiVGFsayB0byB0aGUgdGVhbSIsInByb2R1Y3RfdG91cnNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6Ik1ha2UgaXQgZWFzeSBmb3IgbmV3IHVzZXJzIHRvIGdldCBzdGFydGVkIHdpdGggYXV0b21hdGVkLCBpbnRlcmFjdGl2ZSBvbmJvYXJkaW5nLiIsInByb2R1Y3RfdG91cnNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IlByb2R1Y3QgdG91cnMiLCJwcm9kdWN0X3RvdXJzX2ZlYXR1cmVfdGl0bGUiOiJQcm9kdWN0IHRvdXJzIiwicHJvZHVjdF90b3Vyc19uYW1lIjoiUHJvZHVjdCB0b3VyIiwicHJvZHVjdF90b3Vyc19uZXh0IjoiTmV4dCIsInByb2R1Y3RfdG91cnNfcmVzdGFydCI6IlJlc3RhcnQiLCJwcm9kdWN0X3RvdXJzX3Nub296ZSI6IlNub296ZSIsInByb2R1Y3RfdG91cnNfdG91cl9zdGVwX251bWJlciI6IntzdGFydF9udW1iZXJ9IG9mIHtlbmRfbnVtYmVyfSIsInByb2R1Y3RfdG91cnNfdmlldyI6IlZpZXcgdG91ciIsInByb2ZpbGVfbG9jYXRpb24iOiJ7dGltZX0gaW4ge2xvY2F0aW9ufSIsInB1YmxpY19oZWxwX2NlbnRlcl9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQSB3ZWIgcGFnZSBmb3IgeW91ciBjdXN0b21lcnMgdG8gcXVpY2tseSBhbmQgcmVsaWFibHkgZmluZCBzdXBwb3J0IGNvbnRlbnQuIiwicHVibGljX2hlbHBfY2VudGVyX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJQdWJsaWMgaGVscCBjZW50ZXIiLCJwdWJsaWNfaGVscF9jZW50ZXJfZmVhdHVyZV90aXRsZSI6IlB1YmxpYyBoZWxwIGNlbnRlciIsInB1c2hfbm90aWZpY2F0aW9uc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiU2VuZCBjb250ZXh0dWFsIHB1c2ggbWVzc2FnZXMgYW5kIGJyaW5nIGN1c3RvbWVycyBkaXJlY3RseSBpbnRvIHlvdXIgbW9iaWxlIGFwcC4iLCJwdXNoX25vdGlmaWNhdGlvbnNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IlB1c2ggbm90aWZpY2F0aW9ucyIsInB1c2hfbm90aWZpY2F0aW9uc19mZWF0dXJlX3RpdGxlIjoiUHVzaCBub3RpZmljYXRpb25zIiwicmF0ZV95b3VyX2NvbnZlcnNhdGlvbiI6IlJhdGUgeW91ciBjb252ZXJzYXRpb24iLCJyZWFsX3RpbWVfY2FsbF9hZ2VudF9kYXNoYm9hcmRfZmVhdHVyZV9kZXNjcmlwdGlvbiI6Ik1vbml0b3IgYWdlbnQgcGhvbmUgdm9sdW1lIGFuZCBwZXJmb3JtYW5jZSBpbiByZWFsLXRpbWUuIiwicmVhbF90aW1lX2NhbGxfYWdlbnRfZGFzaGJvYXJkX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJSZWFsLXRpbWUgY2FsbCBhZ2VudCBkYXNoYm9hcmQiLCJyZWFsX3RpbWVfY2FsbF9hZ2VudF9kYXNoYm9hcmRfZmVhdHVyZV90aXRsZSI6IlJlYWwtdGltZSBjYWxsIGFnZW50IGRhc2hib2FyZCIsInJlYWxfdGltZV9jYWxsX3RlYW1fZGFzaGJvYXJkX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJNb25pdG9yIHRlYW0gcGhvbmUgdm9sdW1lIGFuZCBwZXJmb3JtYW5jZSBpbiByZWFsLXRpbWUuIiwicmVhbF90aW1lX2NhbGxfdGVhbV9kYXNoYm9hcmRfZmVhdHVyZV9zaG9ydF90aXRsZSI6IlJlYWwtdGltZSBjYWxsIHRlYW0gZGFzaGJvYXJkIiwicmVhbF90aW1lX2NhbGxfdGVhbV9kYXNoYm9hcmRfZmVhdHVyZV90aXRsZSI6IlJlYWwtdGltZSBjYWxsIHRlYW0gZGFzaGJvYXJkIiwicmVhbF90aW1lX2Rhc2hib2FyZF9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiTW9uaXRvciB5b3VyIHRlYW1cJ3Mgd29ya2xvYWQgYW5kIGNhcGFjaXR5IGluIHJlYWwgdGltZS4iLCJyZWFsX3RpbWVfZGFzaGJvYXJkX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJSZWFsLXRpbWUgZGFzaGJvYXJkIiwicmVhbF90aW1lX2Rhc2hib2FyZF9mZWF0dXJlX3RpdGxlIjoiUmVhbC10aW1lIGRhc2hib2FyZCIsInJlYWxfdGltZV90cmFuc2xhdGlvbnNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkZpbiBjYW4gYXV0b21hdGljYWxseSB0cmFuc2xhdGUgc3VwcG9ydCBjb250ZW50IHdyaXR0ZW4gaW4gYW55IGxhbmd1YWdlIGFuZCByZXBseSB0byBlYWNoIGN1c3RvbWVyIGluIHRoZSBsYW5ndWFnZSB0aGV5IGFyZSBzcGVha2luZyBpbi4iLCJyZWFsX3RpbWVfdHJhbnNsYXRpb25zX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJSZWFsLXRpbWUgVHJhbnNsYXRpb25zIiwicmVhbF90aW1lX3RyYW5zbGF0aW9uc19mZWF0dXJlX3RpdGxlIjoiUmVhbC10aW1lIFRyYW5zbGF0aW9ucyIsInJlY2VpdmVfcmVwbGllc190aGVyZSI6IllvdVwnbGwgcmVjZWl2ZSByZXBsaWVzIHRoZXJlIHdoZW4gdGhlIHRlYW0gcmVwbGllcyIsInJlY2VudF90aWNrZXQiOiJSZWNlbnQgdGlja2V0IiwicmVjZW50X3RpY2tldHMiOiJSZWNlbnQgdGlja2V0cyIsInJlY29ubmVjdCI6IlJlY29ubmVjdCIsInJlY29yZGVkX2RheXNfYWdvIjoiUmVjb3JkZWQge2RheXN9IGRheXMgYWdvIiwicmVjb3JkZWRfb3Zlcl93ZWVrX2FnbyI6IlJlY29yZGVkIG92ZXIgYSB3ZWVrIGFnbyIsInJlY29yZGVkX3RvZGF5IjoiUmVjb3JkZWQgdG9kYXkiLCJyZWNvcmRlZF95ZXN0ZXJkYXkiOiJSZWNvcmRlZCB5ZXN0ZXJkYXkiLCJyZWNvcmRpbmdzX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJFbmFibGUgY2FsbCByZWNvcmRpbmdzIGZvciBxdWljayByZWZlcmVuY2UgYW5kIHF1YWxpdHkgYXNzdXJhbmNlLiIsInJlY29yZGluZ3NfZmVhdHVyZV9zaG9ydF90aXRsZSI6IkNhbGwgcmVjb3JkaW5ncyIsInJlY29yZGluZ3NfZmVhdHVyZV90aXRsZSI6IkNhbGwgcmVjb3JkaW5ncyIsInJlbW92ZV9maWxlIjoiUmVtb3ZlIGZpbGUiLCJyZW1vdmVfaW1hZ2UiOiJSZW1vdmUgaW1hZ2Uge2luZGV4fSIsInJlbW92ZV9wYXJ0aWNpcGFudCI6IlJlbW92ZSBwYXJ0aWNpcGFudCIsInJlbW92ZV9wZXJzb24iOiJSZW1vdmUgcGVyc29uIiwicmVwbHkiOiJSZXBseSIsInJlcGx5X2Zyb20iOiJSZXBseSBmcm9tIiwicmVwbHlfdG9fY29udmVyc2F0aW9uIjoiV3JpdGUgYSByZXBseeKApiIsInJlcGx5X3RvX25hbWUiOiJSZXBseSB0byB7bmFtZX3igKYiLCJyZXBvcnRfYWlfYW5zd2VyIjoiUmVwb3J0IEFJIGFuc3dlciIsInJlcG9ydF9idWlsZGVyX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJDcmVhdGUgdW5pcXVlIHJlcG9ydHMgZnJvbSBzY3JhdGNoIHdpdGggeW91ciBjaG9pY2Ugb2YgY2hhcnRzIGZyb20gb3VyIHRlbXBsYXRlIGxpYnJhcnkuIiwicmVwb3J0X2J1aWxkZXJfZmVhdHVyZV9zaG9ydF90aXRsZSI6IlJlcG9ydCBidWlsZGVyIiwicmVwb3J0X2J1aWxkZXJfZmVhdHVyZV90aXRsZSI6IlJlcG9ydCBidWlsZGVyIiwicmVwb3J0aW5nX2RyaWxsX2Rvd25zX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJDdXN0b21pemFibGUgcmVwb3J0aW5nIGRyaWxsLWRvd25zIHRoYXQgYWxsb3cgdXNlIG9mIGZpbHRlcnMuIiwicmVwb3J0aW5nX2RyaWxsX2Rvd25zX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJSZXBvcnRpbmcgZHJpbGwtZG93bnMiLCJyZXBvcnRpbmdfZHJpbGxfZG93bnNfZmVhdHVyZV90aXRsZSI6IlJlcG9ydGluZyBkcmlsbC1kb3ducyIsInJlcG9ydGluZ19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiR2V0IGluc2lnaHRzIG9uIGhvdyBtYW55IGNvbnZlcnNhdGlvbnMgYXJlIHVzaW5nIEZpbiBBSSBDb3BpbG90LCB0cmFjayB0ZWFtbWF0ZSB1c2FnZSwgYW5kIHJldmlldyB0aGUgcXVhbGl0eSBvZiBGaW5cJ3MgYW5zd2Vycy4iLCJyZXBvcnRpbmdfZmVhdHVyZV9zaG9ydF90aXRsZSI6IlJlcG9ydGluZyIsInJlcG9ydGluZ19mZWF0dXJlX3RpdGxlIjoiUmVwb3J0aW5nIiwicmVxdWVzdF9jYWxsYmFja19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQWxsb3cgY3VzdG9tZXJzIHRvIHJlcXVlc3QgYSBjYWxsYmFjayBhdCBhIGNvbnZlbmllbnQgdGltZSBpbnN0ZWFkIG9mIHdhaXRpbmcgb24gaG9sZC4iLCJyZXF1ZXN0X2NhbGxiYWNrX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJSZXF1ZXN0IGNhbGxiYWNrIiwicmVxdWVzdF9jYWxsYmFja19mZWF0dXJlX3RpdGxlIjoiUmVxdWVzdCBjYWxsYmFjayIsInJlcXVpcmVfZW1haWxfdG9fY2hhdF9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiUmVxdWlyZSBhbiBlbWFpbCBmb3IgbmV3IGNvbnZlcnNhdGlvbnMuIiwicmVxdWlyZV9lbWFpbF90b19jaGF0X2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJSZXF1aXJlIGVtYWlsIHRvIGNoYXQiLCJyZXF1aXJlX2VtYWlsX3RvX2NoYXRfZmVhdHVyZV90aXRsZSI6IlJlcXVpcmUgZW1haWwgdG8gY2hhdCIsInJlcXVpcmVkX2ZpZWxkc19hc3Rlcmlza19leHBsYW5hdGlvbiI6IkFzdGVyaXNrcyAoKikgaW5kaWNhdGUgcmVxdWlyZWQgZmllbGRzLiIsInJvdW5kX3JvYmluX2Fzc2lnbm1lbnRfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlNoYXJlIG5ldyBpbmJvdW5kIGNvbnZlcnNhdGlvbnMgZXZlbmx5IGFtb25nIHlvdXIgdGVhbS4iLCJyb3VuZF9yb2Jpbl9hc3NpZ25tZW50X2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJSb3VuZC1yb2JpbiBhc3NpZ25tZW50Iiwicm91bmRfcm9iaW5fYXNzaWdubWVudF9mZWF0dXJlX3RpdGxlIjoiUm91bmQtcm9iaW4gYXNzaWdubWVudCIsInNhbGVzX3JlcG9ydHNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlRyYWNrIHlvdXIgc2FsZXMgdGVhbVwncyBwZXJmb3JtYW5jZSBhbmQgSW50ZXJjb21cJ3MgaW1wYWN0IG9uIHlvdXIgcmV2ZW51ZS4iLCJzYWxlc19yZXBvcnRzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJTYWxlcyByZXBvcnRzIiwic2FsZXNfcmVwb3J0c19mZWF0dXJlX3RpdGxlIjoiU2FsZXMgcmVwb3J0cyIsInNhbGVzZm9yY2VfaW50ZWdyYXRpb25fZmVhdHVyZV9kZXNjcmlwdGlvbiI6IjItd2F5IHN5bmMgb2YgQ29udGFjdCwgQWNjb3VudCwgYW5kIENhc2UgZGF0YSBiZXR3ZWVuIFNhbGVzZm9yY2UgYW5kIEludGVyY29tLiIsInNhbGVzZm9yY2VfaW50ZWdyYXRpb25fZmVhdHVyZV9zaG9ydF90aXRsZSI6IlNhbGVzZm9yY2UgaW50ZWdyYXRpb24iLCJzYWxlc2ZvcmNlX2ludGVncmF0aW9uX2ZlYXR1cmVfdGl0bGUiOiJTYWxlc2ZvcmNlIGludGVncmF0aW9uIiwic2Nhbl9xciI6IlNjYW4gdGhlIFFSIHdpdGggeW91ciBwaG9uZSIsInNlYXJjaCI6IlNlYXJjaCIsInNlYXJjaF9icm93c2VfZW1wdHlfc3RhdGVfdGV4dCI6IlNvcnJ5LCB3ZSBjb3VsZG7igJl0IGZpbmQgYW55IHJlc3VsdHMgZm9yIHRoYXQuIFRyeSByZXdvcmRpbmcgeW91ciBzZWFyY2guIiwic2VhcmNoX2Zvcl9hbnN3ZXJzIjoiU2VhcmNoIGZvciBhbnN3ZXJz4oCmIiwic2VhcmNoX2Zvcl9lbW9qaSI6IlNlYXJjaCBlbW9qaeKApiIsInNlYXJjaF9mb3JfaGVscCI6IlNlYXJjaCBmb3IgaGVscCIsInNlYXJjaF9naWYiOiJTZWFyY2ggR0lGc+KApiIsInNlZV9hbGwiOiJTZWUgYWxsIiwic2VlX2FsbF9jb252ZXJzYXRpb25zIjoiU2VlIGFsbCB5b3VyIGNvbnZlcnNhdGlvbnMiLCJzZWVfcGFzdF9jb252ZXJzYXRpb25zIjoiU2VlIHByZXZpb3VzIiwic2VlX3ByZXZpb3VzX2NvbnZlcnNhdGlvbnMiOiJTZWUgeW91ciBwcmV2aW91cyBjb252ZXJzYXRpb25zIiwic2Vla192aWRlbyI6IlNlZWsgdmlkZW8iLCJzZWxlY3RfYW5fb3B0aW9uIjoiUGxlYXNlIHNlbGVjdCBhbiBvcHRpb246Iiwic2VuZCI6IlNlbmQiLCJzZW5kX2FfbWVzc2FnZSI6IlNlbmQgYSBtZXNzYWdl4oCmIiwic2VuZF9hX21lc3NhZ2VfcmVwbHlfdGltZSI6IlVzdWFsIHJlcGx5IHRpbWUgaXMiLCJzZW5kX2FfbWVzc2FnZV9yZXBseV90aW1lX2NhcmQiOiJVc3VhbCByZXBseSB0aW1lIGlzIHtyZXBseVRpbWV9Iiwic2VuZF9hX3ZvaWNlX25vdGUiOiJTZW5kIGEgdm9pY2Ugbm90ZeKApiIsInNlbmRfcHJlZmlsbGVkX21lc3NhZ2UiOiJXaGVuIFdoYXRzQXBwIG9wZW5zLCBzZW5kIHRoZSBwcmUtZmlsbGVkIG1lc3NhZ2UgdG8gY29udGludWUgdGhlIGNvbnZlcnNhdGlvbiIsInNlbmRfdXNfYV9tZXNzYWdlIjoiU2VuZCB1cyBhIG1lc3NhZ2UiLCJzZW5kX3VzX2FfbWVzc2FnZV9ib3QiOiJTZW5kIHVzIGEgbWVzc2FnZSBhbmQgb3VyIGJvdCB3aWxsIHJlcGx5IGluc3RhbnRseSIsInNlbnRfYV92aWRlbyI6InNlbnQgYSB2aWRlbyIsInNlbnRfYV92b2ljZV9ub3RlIjoiU2VudCBhIHZvaWNlIG5vdGUiLCJzZW50X2FuX2FwcCI6InNlbnQgYW4gYXBwIiwic2VudF9hbl9hdHRhY2htZW50Ijoic2VudCBhbiBhdHRhY2htZW50Iiwic2VudF9hbl9pbWFnZSI6InNlbnQgYW4gaW1hZ2UiLCJzZW50X3lvdV9hX3ZpZGVvIjoiU2VudCB5b3UgYSB2aWRlbyIsInNlbnRfeW91X2FfdmlkZW9fcmVwbHkiOiJTZW50IHlvdSBhIHZpZGVvIHJlcGx5Iiwic2VudF95b3VfYV92b2ljZV9ub3RlIjoiU2VudCB5b3UgYSB2b2ljZSBub3RlIiwic2VudF95b3VfYW5fYXBwIjoiU2VudCB5b3UgYW4gYXBwIiwic2VudF95b3VfYW5fYXR0YWNobWVudCI6IlNlbnQgeW91IGFuIGF0dGFjaG1lbnQiLCJzZW50X3lvdV9hbl9pbWFnZSI6IlNlbnQgeW91IGFuIGltYWdlIiwic2VudF95b3VfYW5faW50ZXJhY3RpdmVfbWVzc2FnZSI6IlNlbnQgeW91IGFuIGludGVyYWN0aXZlIG1lc3NhZ2UiLCJzZXB0ZW1iZXJfZGF0ZSI6IlNlcHRlbWJlciB7ZGF0ZX0iLCJzZXJpZXNfY2FtcGFpZ25fYnVpbGRlcl9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQ3JlYXRlIGNvaGVzaXZlIHRhcmdldGVkIG1lc3NhZ2Ugc2VxdWVuY2VzIGFjcm9zcyBjaGFubmVscyB3aXRoIGEgbm8tY29kZSB2aXN1YWwgYnVpbGRlci4iLCJzZXJpZXNfY2FtcGFpZ25fYnVpbGRlcl9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiU2VyaWVzIGNhbXBhaWduIGJ1aWxkZXIiLCJzZXJpZXNfY2FtcGFpZ25fYnVpbGRlcl9mZWF0dXJlX3RpdGxlIjoiU2VyaWVzIGNhbXBhaWduIGJ1aWxkZXIiLCJzZXJ2aWNlX2xldmVsX2FncmVlbWVudHNfc2xhc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQXV0b21hdGljYWxseSBhcHBseSBTTEFzIHRvIGluYm91bmQgY29udmVyc2F0aW9ucyB1c2luZyBydWxlcy4iLCJzZXJ2aWNlX2xldmVsX2FncmVlbWVudHNfc2xhc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiU2VydmljZSBsZXZlbCBhZ3JlZW1lbnRzIChTTEFzKSIsInNlcnZpY2VfbGV2ZWxfYWdyZWVtZW50c19zbGFzX2ZlYXR1cmVfdGl0bGUiOiJTZXJ2aWNlIGxldmVsIGFncmVlbWVudHMgKFNMQXMpIiwic2hhcmVkX2J5IjoiU2hhcmVkIGJ5Iiwic2hhcmVkX2luYm94X2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJNYW5hZ2UgY29udmVyc2F0aW9ucyBmcm9tIGEgc2luZ2xlLCBjb2xsYWJvcmF0aXZlIEluYm94LiIsInNoYXJlZF9pbmJveF9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiU2hhcmVkIEluYm94Iiwic2hhcmVkX2luYm94X2ZlYXR1cmVfdGl0bGUiOiJTaGFyZWQgSW5ib3giLCJzaG93X2FkbWluX25hbWUiOiJTaG93IGFkbWluIG5hbWUiLCJzaG93X2NvdW50X21vcmUiOiJTaG93IHtjb3VudH0gbW9yZSIsInNob3dfbGVzcyI6IlNob3cgbGVzcyIsInNob3dfbW9yZSI6IlNob3cgbW9yZSIsInNpZGVfY29udmVyc2F0aW9uc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQ29sbGFib3JhdGUgd2l0aCBleHRlcm5hbCBwYXJ0bmVycyBieSBzdGFydGluZyBhIHNpZGUgY29udmVyc2F0aW9uIGZyb20gdGhlIHRpY2tldC4iLCJzaWRlX2NvbnZlcnNhdGlvbnNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IlNpZGUgY29udmVyc2F0aW9ucyIsInNpZGVfY29udmVyc2F0aW9uc19mZWF0dXJlX3RpdGxlIjoiU2lkZSBjb252ZXJzYXRpb25zIiwic2ltdWxhdGlvbnNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlNpbXVsYXRpb25zIGFyZSBhIHNjYWxhYmxlIHdheSB0byB0ZXN0LCBldmFsdWF0ZSwgYW5kIHJlZmluZSBGaW5cJ3MgYmVoYXZpb3IgYW5kIGFjdGlvbnMuIiwic2ltdWxhdGlvbnNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IlNpbXVsYXRpb25zIiwic2ltdWxhdGlvbnNfZmVhdHVyZV90aXRsZSI6IlNpbXVsYXRpb25zIiwic2luZ2xlX2FydGljbGUiOiIxIGFydGljbGUiLCJzaW5nbGVfY29sbGVjdGlvbiI6IjEgY29sbGVjdGlvbiIsInNsYWNrX2ludGVncmF0aW9uX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJBdXRvbWF0aWNhbGx5IHNlbmQgbm90aWZpY2F0aW9ucyB0byBTbGFjayBjaGFubmVscyB1c2luZyBXb3JrZmxvd3MuIiwic2xhY2tfaW50ZWdyYXRpb25fZmVhdHVyZV9zaG9ydF90aXRsZSI6IlNsYWNrIGludGVncmF0aW9uIiwic2xhY2tfaW50ZWdyYXRpb25fZmVhdHVyZV90aXRsZSI6IlNsYWNrIGludGVncmF0aW9uIiwic21pbGV5c19lbW90aW9uIjoiU21pbGV5cyAmIEVtb3Rpb24iLCJzbXMiOiJTTVMiLCJzbXNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlNlbmQgYW5kIHJlY2VpdmUgU01TIHRleHQgbWVzc2FnZXMgZnJvbSB0aGUgaW5ib3guIiwic21zX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJTTVMiLCJzbXNfZmVhdHVyZV90aXRsZSI6IlNNUyIsInNvY2lhbF9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiSW50ZWdyYXRlIHdpdGggRmFjZWJvb2sgYW5kIEluc3RhZ3JhbS4iLCJzb2NpYWxfZmVhdHVyZV9zaG9ydF90aXRsZSI6IlNvY2lhbCIsInNvY2lhbF9mZWF0dXJlX3RpdGxlIjoiU29jaWFsIiwic29jaWFsX2ludGVncmF0aW9uc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiSW50ZWdyYXRlIHdpdGggRmFjZWJvb2sgYW5kIEluc3RhZ3JhbS4iLCJzb2NpYWxfaW50ZWdyYXRpb25zX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJTb2NpYWwgaW50ZWdyYXRpb25zIiwic29jaWFsX2ludGVncmF0aW9uc19mZWF0dXJlX3RpdGxlIjoiU29jaWFsIGludGVncmF0aW9ucyIsInNvbWVfdGhpbmdzX2ZhaWxlZF90b19sb2FkIjoiU29tZSB0aGluZ3MgZmFpbGVkIHRvIGxvYWQuIFRyeSBhZ2Fpbi4iLCJzb21ldGhpbmdfaXNfd3JvbmciOiJTb21ldGhpbmdcJ3Mgd3JvbmciLCJzb3BoaXN0aWNhdGVkX2ludGVyYWN0aXZlX3ZvaWNlX3Jlc3BvbnNlX3RyZWVzX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJSb3V0ZSwgYXNzaWduIG9yIGF1dG9tYXRlIGNhbGxzIGJhc2VkIG9uIHVzZXIgZGF0YSB3aXRoIGZ1bGx5IGN1c3RvbWl6YWJsZSBtdWx0aS1sZXZlbCBJVlIgdHJlZXMuIiwic29waGlzdGljYXRlZF9pbnRlcmFjdGl2ZV92b2ljZV9yZXNwb25zZV90cmVlc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiU29waGlzdGljYXRlZCBpbnRlcmFjdGl2ZSB2b2ljZSByZXNwb25zZSB0cmVlcyIsInNvcGhpc3RpY2F0ZWRfaW50ZXJhY3RpdmVfdm9pY2VfcmVzcG9uc2VfdHJlZXNfZmVhdHVyZV90aXRsZSI6IlNvcGhpc3RpY2F0ZWQgaW50ZXJhY3RpdmUgdm9pY2UgcmVzcG9uc2UgdHJlZXMiLCJzb3VyY2UiOiJTb3VyY2UiLCJzb3VyY2VzIjoiU291cmNlcyIsInNwYWNlc19lcnJvcl9kZXNjcmlwdGlvbiI6IkNvbnRlbnQgY291bGQgbm90IGJlIGxvYWRlZCIsInNwYWNlc19lcnJvcl90aXRsZSI6IlNvbWV0aGluZ1wncyBnb25lIHdyb25nIiwic3NvX2lkZW50aXR5X21hbmFnZW1lbnRfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkxvZyBpbiB0byBJbnRlcmNvbSB3aXRoIFNBTUwgU1NPIHVzaW5nIE9rdGEsIE9uZUxvZ2luLCBvciBhbm90aGVyIGlkZW50aXR5IHByb3ZpZGVyLiIsInNzb19pZGVudGl0eV9tYW5hZ2VtZW50X2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJTaW5nbGUgc2lnbi1vbiIsInNzb19pZGVudGl0eV9tYW5hZ2VtZW50X2ZlYXR1cmVfdGl0bGUiOiJTU08gJiBpZGVudGl0eSBtYW5hZ2VtZW50Iiwic3RhbmRhcmRfY2FsbF9yZXBvcnRzX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJBbmFseXplIGNhbGwgdm9sdW1lIGFuZCBwZXJmb3JtYW5jZSB0cmVuZHMgd2l0aCBvdXQtb2YtdGhlLWJveCByZXBvcnRzLiIsInN0YW5kYXJkX2NhbGxfcmVwb3J0c19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiU3RhbmRhcmQgY2FsbCByZXBvcnRzIiwic3RhbmRhcmRfY2FsbF9yZXBvcnRzX2ZlYXR1cmVfdGl0bGUiOiJTdGFuZGFyZCBjYWxsIHJlcG9ydHMiLCJzdGFydF9hX2NvbnZlcnNhdGlvbiI6IlN0YXJ0IGEgY29udmVyc2F0aW9uIiwic3RhcnRfYW5vdGhlcl9jb252ZXJzYXRpb24iOiJTdGFydCBhbm90aGVyIGNvbnZlcnNhdGlvbiIsInN0YXJ0X2RpY3RhdGluZyI6IlN0YXJ0IGRpY3RhdGluZyIsInN0YXJ0X3JlY29yZGluZyI6IlN0YXJ0IHJlY29yZGluZyIsInN0YXJ0X3JlY29yZGluZ193aXRoX3Nob3J0Y3V0IjoiU3RhcnQgcmVjb3JkaW5nIChob2xkIHtzaG9ydGN1dH0pIiwic3RhcnRfdHlwaW5nIjoiU3RhcnQgdHlwaW5nLi4uIiwic3RhdHVzIjoiU3RhdHVzIiwic3RpbGxfZ2VuZXJhdGluZ19hbnN3ZXIiOiJTdGlsbCBnZW5lcmF0aW5nIGFuc3dlci4uLiIsInN0aWxsX3RoaW5raW5nIjoiU3RpbGwgdGhpbmtpbmcuLi4iLCJzdGlsbF93b3JraW5nX29uX2l0IjoiU3RpbGwgd29ya2luZyBvbiBpdC4uLiIsInN0b3BfZGljdGF0aW5nIjoiU3RvcCBkaWN0YXRpbmciLCJzdG9wX3JlY29yZGluZyI6IlN0b3AgcmVjb3JkaW5nIiwic3RyaW5nX2lzX2luY29ycmVjdCI6IlRoYXQgZG9lc25cJ3QgbG9vayBxdWl0ZSByaWdodCIsInN1Ym1pdCI6IlN1Ym1pdCIsInN1Y2Nlc3NmdWxseV9yZWNvbm5lY3RlZCI6IlN1Y2Nlc3NmdWxseSByZWNvbm5lY3RlZCIsInN1Z2dlc3RlZF9hcnRpY2xlcyI6IlN1Z2dlc3RlZCBhcnRpY2xlcyIsInN1Z2dlc3RlZF9jb250ZW50X3Byb21wdCI6IkFyZSBhbnkgb2YgdGhlc2UgcmVsYXRlZCB0byB5b3VyIHF1ZXN0aW9uPyIsInN1Z2dlc3Rpb25zX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJBY3Rpb25hYmxlIEFJLWdlbmVyYXRlZCBzdWdnZXN0aW9ucyB5b3UgY2FuIGFwcHJvdmUgaW4gb25lIGNsaWNrIHRvIGltcHJvdmUgRmluXCdzIHBlcmZvcm1hbmNlLiIsInN1Z2dlc3Rpb25zX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJTdWdnZXN0aW9ucyIsInN1Z2dlc3Rpb25zX2ZlYXR1cmVfdGl0bGUiOiJTdWdnZXN0aW9ucyIsInN1cnZleSI6IlN1cnZleSIsInN1cnZleXNfYWxsX29wdGlvbnNfcmVzcG9uc2VfaGludCI6IlBsZWFzZSBzZWxlY3QgYWxsIG9wdGlvbnMgdGhhdCBhcHBseSIsInN1cnZleXNfY2xvc2Vfc3VydmV5IjoiQ2xvc2Ugc3VydmV5Iiwic3VydmV5c19kb25lX2J1dHRvbiI6IkRvbmUiLCJzdXJ2ZXlzX2Ryb3Bkb3duX2RlZmF1bHRfb3B0aW9uIjoiUGxlYXNlIHNlbGVjdCBhIHJlc3BvbnNlLi4uIiwic3VydmV5c19lbWFpbF9lcnJvciI6IlBsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MiLCJzdXJ2ZXlzX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJDYXB0dXJlIGN1c3RvbWVyIGZlZWRiYWNrIGFuZCB1c2UgaXQgdG8gY3JlYXRlIGEgYmV0dGVyIGN1c3RvbWVyIGV4cGVyaWVuY2UuIiwic3VydmV5c19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiU3VydmV5cyIsInN1cnZleXNfZmVhdHVyZV90aXRsZSI6IlN1cnZleXMiLCJzdXJ2ZXlzX2ZpeGVkX3Jlc3BvbnNlX2NvdW50X3Jlc3BvbnNlX2hpbnQiOiJQbGVhc2Ugc2VsZWN0IHtyZXNwb25zZV9jb3VudH0gb3B0aW9ucyIsInN1cnZleXNfZnJvbV9jb21wYW55IjoiU3VydmV5IGZyb20ge2NvbXBhbnl9Iiwic3VydmV5c19mcm9tX3RlYW1tYXRlIjoiU3VydmV5IGJ5IHtzZW5kZXJfbmFtZX0gZnJvbSB7Y29tcGFueX0iLCJzdXJ2ZXlzX211bHRpX3NlbGVjdF90b29fZmV3X3Jlc3BvbnNlcyI6IlRoaXMgcXVlc3Rpb24gcmVxdWlyZXMgYXQgbGVhc3Qge3Jlc3BvbnNlX2NvdW50fSBvcHRpb25zIHRvIGJlIHNlbGVjdGVkIiwic3VydmV5c19tdWx0aV9zZWxlY3RfdG9vX21hbnlfcmVzcG9uc2VzIjoiVGhpcyBxdWVzdGlvbiByZXF1aXJlcyB7cmVzcG9uc2VfY291bnR9IG9wdGlvbnMgdG8gYmUgc2VsZWN0ZWQiLCJzdXJ2ZXlzX211bHRpc2VsZWN0X290aGVyX29wdGlvbiI6Ik90aGVyIChQbGVhc2Ugc3BlY2lmeSkiLCJzdXJ2ZXlzX211bHRpc2VsZWN0X290aGVyX29wdGlvbl9pbnB1dF9sYWJlbCI6IlBsZWFzZSBzcGVjaWZ5Iiwic3VydmV5c19tdWx0aXNlbGVjdF9vdGhlcl9vcHRpb25faW5wdXRfcGxhY2Vob2xkZXIiOiJFbnRlciByZXNwb25zZSIsInN1cnZleXNfbXVsdGlzZWxlY3Rfb3RoZXJfb3B0aW9uX3ZhbHVlIjoiT3RoZXIiLCJzdXJ2ZXlzX25leHRfYnV0dG9uIjoiTmV4dCIsInN1cnZleXNfbnBzX2xvd2VyX2xhYmVsIjoiTm90IGxpa2VseSIsInN1cnZleXNfbnBzX3VwcGVyX2xhYmVsIjoiVmVyeSBsaWtlbHkiLCJzdXJ2ZXlzX251bWJlcl9lcnJvciI6IlBsZWFzZSBlbnRlciBhIG51bWJlciIsInN1cnZleXNfcmVxdWlyZWRfcXVlc3Rpb24iOiJUaGlzIGlzIGEgcmVxdWlyZWQgcXVlc3Rpb24iLCJzdXJ2ZXlzX3JlcXVpcmVkX3Jlc3BvbnNlIjoiVGhpcyBpcyBhIHJlcXVpcmVkIHJlc3BvbnNlIiwic3VydmV5c19yZXNwb25zZV9yYW5nZV9yZXNwb25zZV9oaW50IjoiUGxlYXNlIHNlbGVjdCBhIG1pbmltdW0gb2Yge21pbmltdW1fcmVzcG9uc2VfY291bnR9IGFuZCBhIG1heGltdW0gb2Yge21heGltdW1fcmVzcG9uc2VfY291bnR9IG9wdGlvbnMiLCJzdXJ2ZXlzX3Jlc3BvbnNlX3Rvb19sb25nIjoiUGxlYXNlIGtlZXAgYW5zd2VycyB0byBhIG1heGltdW0gb2Yge2NoYXJhY3Rlcl9jb3VudH0gY2hhcmFjdGVycyIsInN1cnZleXNfc2luZ2xlX3Jlc3BvbnNlX2hpbnQiOiJQbGVhc2Ugc2VsZWN0IDEgb3B0aW9uIiwic3VydmV5c19zdWJtaXRfcmVzcG9uc2UiOiJTdWJtaXQgeW91ciByZXNwb25zZSIsInN1cnZleXNfdGVsZXBob25lX2Vycm9yIjoiUGxlYXNlIGVudGVyIGEgdmFsaWQgdGVsZXBob25lIG51bWJlciIsInN1cnZleXNfdGV4dF9pbnB1dF9xdWVzdGlvbl9wbGFjZWhvbGRlciI6IlBsZWFzZSB0eXBlIHlvdXIgcmVzcG9uc2UgaGVyZS4uLiIsInN3aXRjaF9waG9uZV9kZWZsZWN0aW9uX3RvX21lc3Nlbmdlcl9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiUmVkdWNlIHdhaXQgdGltZXMgYnkgZ2l2aW5nIHlvdXIgY3VzdG9tZXJzIHRoZSBjaG9pY2UgdG8gc3dpdGNoIHRvIG1lc3NhZ2luZyBtaWQtY2FsbC4iLCJzd2l0Y2hfcGhvbmVfZGVmbGVjdGlvbl90b19tZXNzZW5nZXJfZmVhdHVyZV9zaG9ydF90aXRsZSI6IlN3aXRjaDogcGhvbmUgZGVmbGVjdGlvbiB0byBNZXNzZW5nZXIiLCJzd2l0Y2hfcGhvbmVfZGVmbGVjdGlvbl90b19tZXNzZW5nZXJfZmVhdHVyZV90aXRsZSI6IlN3aXRjaDogcGhvbmUgZGVmbGVjdGlvbiB0byBNZXNzZW5nZXIiLCJzeW1ib2xzIjoiU3ltYm9scyIsInRhcmdldGluZ19hbmRfc2NoZWR1bGluZ19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRGVjaWRlIGhvdyBhbmQgRmluIGNhbiBzaG93IHVwIGZvciB5b3VyIGN1c3RvbWVycyBiYXNlZCBvbiBhdWRpZW5jZSwgcmVnaW9uLCBjaGFubmVsLCBhbmQgbW9yZeKAlGhlbHBpbmcgeW91IGNvbnRyb2wgYW5kIG1haW50YWluIHlvdXIgc3VwcG9ydCBhdmFpbGFiaWxpdHkgZXZlbiB3aGVuIHlvdVwncmUgb3V0IG9mIG9mZmljZS4iLCJ0YXJnZXRpbmdfYW5kX3NjaGVkdWxpbmdfZmVhdHVyZV9zaG9ydF90aXRsZSI6IlRhcmdldGluZyAmIHNjaGVkdWxpbmciLCJ0YXJnZXRpbmdfYW5kX3NjaGVkdWxpbmdfZmVhdHVyZV90aXRsZSI6IlRhcmdldGluZyAmIHNjaGVkdWxpbmciLCJ0YXNrc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQ29ubmVjdCBGaW4gdG8geW91ciBkYXRhIHNvdXJjZXMgYW5kIHN5c3RlbXMgc28gaXQgY2FuIHVwZGF0ZSBkYXRhLCBlbmFibGluZyBpdCB0byBwZXJmb3JtIGNvbXBsZXggdGFza3Mgb24gYmVoYWxmIG9mIHlvdXIgY3VzdG9tZXJzLiIsInRhc2tzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJGaW4gVGFza3MiLCJ0YXNrc19mZWF0dXJlX3RpdGxlIjoiRmluIFRhc2tzIiwidGFza3Nfc3BhY2VfdGl0bGUiOiJUYXNrcyIsInRlYW1fbmFtZV9jdXN0b21fcmVzcG9uc2VfZGVsYXlfMiI6InthcHBfbmFtZX0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gYSBkYXkiLCJ0ZWFtX25hbWVfY3VzdG9tX3Jlc3BvbnNlX2RlbGF5XzMiOiJ7YXBwX25hbWV9IHR5cGljYWxseSByZXBsaWVzIGluIGEgd2VlayIsInRlYW1fbmFtZV9wcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfb25lX2J1c2luZXNzX2RheSI6InthcHBfbmFtZX0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gb25lIGJ1c2luZXNzIGRheSIsInRlYW1fbmFtZV9wcm9hY3RpdmVfZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfdHdvX2J1c2luZXNzX2RheXMiOiJ7YXBwX25hbWV9IHR5cGljYWxseSByZXBsaWVzIGluIHR3byBidXNpbmVzcyBkYXlzIiwidGVhbV9vZmZpY2VfaG91cnNfYW5kX3JlcGx5X3RpbWVfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlNldCB1bmlxdWUgb2ZmaWNlIGhvdXJzIGFuZCByZXBseSB0aW1lcyBmb3IgZWFjaCB0ZWFtIHRvIGJldHRlciBzZXQgY3VzdG9tZXIgZXhwZWN0YXRpb25zLiIsInRlYW1fb2ZmaWNlX2hvdXJzX2FuZF9yZXBseV90aW1lX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJUZWFtIG9mZmljZSBob3VycyBhbmQgcmVwbHkgdGltZSIsInRlYW1fb2ZmaWNlX2hvdXJzX2FuZF9yZXBseV90aW1lX2ZlYXR1cmVfdGl0bGUiOiJUZWFtIG9mZmljZSBob3VycyBhbmQgcmVwbHkgdGltZSIsInRlYW1fcGVyZm9ybWFuY2VfcmVwb3J0c19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRWFzaWx5IG1lYXN1cmUgYW5kIGNvbXBhcmUgeW91ciB0ZWFtXCdzIHBlcmZvcm1hbmNlLiIsInRlYW1fcGVyZm9ybWFuY2VfcmVwb3J0c19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiVGVhbSBwZXJmb3JtYW5jZSByZXBvcnRzIiwidGVhbV9wZXJmb3JtYW5jZV9yZXBvcnRzX2ZlYXR1cmVfdGl0bGUiOiJUZWFtIHBlcmZvcm1hbmNlIHJlcG9ydHMiLCJ0ZWFtX3JvdXRpbmdfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlNwZWNpZnkgdGhlIHRlYW1zIGZvciBjYWxsIHJvdXRpbmcgdG8gZW5zdXJlIGN1c3RvbWVycyBjb25uZWN0IHdpdGggdGhlIHJpZ2h0IGFnZW50LiIsInRlYW1fcm91dGluZ19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiVGVhbSByb3V0aW5nIiwidGVhbV9yb3V0aW5nX2ZlYXR1cmVfdGl0bGUiOiJUZWFtIHJvdXRpbmciLCJ0ZWFtbWF0ZV9jYWxlbmRhcl9saW5rIjoiVGVhbW1hdGUgY2FsZW5kYXIiLCJ0ZWFtbWF0ZV9pbmFjdGl2aXR5X2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJUcmlnZ2VyIHJ1bGVzIHdoZW4gYSB0ZWFtbWF0ZSBoYXNuXCd0IHJlcGxpZWQgdG8gYSBuZXcgY29udmVyc2F0aW9uIGluIGEgc3BlY2lmaWVkIHRpbWUuIiwidGVhbW1hdGVfaW5hY3Rpdml0eV9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiVGVhbW1hdGUgaW5hY3Rpdml0eSIsInRlYW1tYXRlX2luYWN0aXZpdHlfZmVhdHVyZV90aXRsZSI6IlRlYW1tYXRlIGluYWN0aXZpdHkiLCJ0ZWFtbWF0ZV9wcm9maWxlIjoie3Byb3ZpZGVyfSB0ZWFtbWF0ZSBwcm9maWxlIiwidGVsbF91c19tb3JlIjoiVGVsbCB1cyBtb3Jl4oCmIiwidGVsbF91c193aGF0X3lvdV9uZWVkIjoiVGVsbCB1cyB3aGF0IHlvdSBuZWVkIGhlbHAgd2l0aCBhbmQgb3VyIGJvdCB3aWxsIGRvIGl0cyBiZXN0IHRvIGFuc3dlciIsInRlcnJpYmxlIjoiVGVycmlibGUiLCJ0aGFua195b3UiOiJUaGFuayB5b3UiLCJ0aGFua3NfY3VzdG9tX3Jlc3BvbnNlX2RlbGF5X29uZV9idXNpbmVzc19kYXkiOiJUaGFua3MhIFRoZSB0ZWFtIHdpbGwgcmVwbHkgaW4gb25lIGJ1c2luZXNzIGRheSIsInRoYW5rc19jdXN0b21fcmVzcG9uc2VfZGVsYXlfdHdvX2J1c2luZXNzX2RheXMiOiJUaGFua3MhIFRoZSB0ZWFtIHdpbGwgcmVwbHkgaW4gdHdvIGJ1c2luZXNzIGRheXMiLCJ0aGFua3NfZm9yX2xldHRpbmdfdXNfa25vdyI6IlRoYW5rcyBmb3IgbGV0dGluZyB1cyBrbm93IiwidGhhbmtzX3Byb2FjdGl2ZV9leHBlY3RlZF9yZXNwb25zZV9kZWxheV91bmtub3duIjoiVGhhbmtzISBUaGUgdGVhbSB3aWxsIHJlcGx5IGFzIHNvb24gYXMgdGhleSBjYW4iLCJ0aGF0X2NvdW50cnlfY29kZV9kb2VzbnRfbG9va19xdWl0ZV9yaWdodCI6IlRoYXQgY291bnRyeSBjb2RlIGRvZXNuXCd0IGxvb2sgcXVpdGUgcmlnaHQiLCJ0aGF0X2VtYWlsX2FkZHJlc3NfZG9lc250X2xvb2tfcXVpdGVfcmlnaHQiOiJUaGF0IGVtYWlsIGRvZXNuXCd0IGxvb2sgcXVpdGUgcmlnaHQiLCJ0aGF0X251bWJlcl9kb2VzbnRfbG9va19xdWl0ZV9yaWdodCI6IlRoYXQgbnVtYmVyIGRvZXNuXCd0IGxvb2sgcXVpdGUgcmlnaHQiLCJ0aGF0X251bWJlcl9oYXNfdG9vX21hbnlfZGlnaXRzIjoiVGhhdCBudW1iZXIgaGFzIHRvbyBtYW55IGRpZ2l0cyIsInRoYXRfbnVtYmVyX2lzX21pc3NpbmdfYV9mZXdfZGlnaXRzIjoiVGhhdCBudW1iZXIgaXMgbWlzc2luZyBhIGZldyBkaWdpdHMiLCJ0aGF0X251bWJlcl9uZWVkc19hX3ByZWZpeCI6IlRoYXQgbnVtYmVyIG5lZWRzIGEgcHJlZml4ICgrIG9yIDAwKSIsInRoZV90ZWFtX2Nhbl9oZWxwX2lmX25lZWRlZCI6IlRoZSB0ZWFtIGNhbiBoZWxwIGlmIG5lZWRlZCIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzEwODAwIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gdW5kZXIgM2giLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl8xMjAiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciAybSIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzEyMDAiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciAyMG0iLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl8xNDQwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDRoIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fMTcyODAwIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gMmQiLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl8xODAiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciAzbSIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzE4MDAiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciAzMG0iLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl8xODAwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDVoIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fMjE2MDAiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciA2aCIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzI0MCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDRtIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fMjU5MjAwIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gM2QiLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl8zMDAiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciA1bSIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzM0NTYwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIDRkIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fMzYwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDFoIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fNDMyMDAiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciAxMmgiLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl80MzIwMDAiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiA1ZCIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzUxODQwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIDZkIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fNjAiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciAxbSIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzYwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDEwbSIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzYwNDgwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDF3IiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fNzIwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDJoIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fODY0MDAiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiAxZCIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luXzkwMCI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIDE1bSIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luX2RheSI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIGEgZGF5LiIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luX2hvdXJzIjoiVGhlIHRlYW0gdHlwaWNhbGx5IHJlcGxpZXMgaW4gYSBmZXcgaG91cnMuIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fbWludXRlcyI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIGEgZmV3IG1pbnV0ZXMuIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fb25lX2J1c2luZXNzX2RheSI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIG9uZSBidXNpbmVzcyBkYXkuIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fdHdvX2J1c2luZXNzX2RheXMiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiB0d28gYnVzaW5lc3MgZGF5cyIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luX3VuZGVyX25faG91cnMiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiB1bmRlciB7aG91cnN9aC4iLCJ0aGVfdGVhbV90eXBpY2FsbHlfcmVwbGllc19pbl91bmRlcl9uX21pbiI6IlRoZSB0ZWFtIHR5cGljYWxseSByZXBsaWVzIGluIHVuZGVyIHttaW51dGVzfW0uIiwidGhlX3RlYW1fdHlwaWNhbGx5X3JlcGxpZXNfaW5fdW5rbm93biI6IlRoZSB0ZWFtIHdpbGwgcmVwbHkgYXMgc29vbiBhcyB0aGV5IGNhbiIsInRoZV90ZWFtX3R5cGljYWxseV9yZXBsaWVzX2luX3dlZWsiOiJUaGUgdGVhbSB0eXBpY2FsbHkgcmVwbGllcyBpbiBhIHdlZWsuIiwidGhpbmtpbmciOiJUaGlua2luZy4uLiIsInRoaXNfY2hhdF9pc19wb3dlcmVkX2J5X2ludGVyY29tIjoiVGhpcyBjaGF0IGlzIHBvd2VyZWQgYnkgSW50ZXJjb20iLCJ0aWNrZXRfY291bGRfbm90X2JlX2NyZWF0ZWQiOiJUaWNrZXQgY291bGQgbm90IGJlIGNyZWF0ZWQiLCJ0aWNrZXRfY3JlYXRlX3RpY2tldF93aXRoX3R5cGVfdGl0bGUiOiJDcmVhdGUge3RpY2tldF90eXBlX3RpdGxlfSB0aWNrZXQiLCJ0aWNrZXRfY3VycmVudF9zdGF0dXMiOiJDdXJyZW50IHN0YXR1czoge2N1cnJlbnRfc3RhdHVzX3RpdGxlfSIsInRpY2tldF9jdXJyZW50X3N0YXR1c193aXRoX2RhdGUiOiJDdXJyZW50IHN0YXR1czoge2N1cnJlbnRfc3RhdHVzX3RpdGxlfSwge2RhdGV9IiwidGlja2V0X2RhdGFfYXR0cmlidXRlc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQ3JlYXRlIHRpY2tldCB0eXBlcyBhbmQgYXR0cmlidXRlcy4iLCJ0aWNrZXRfZGF0YV9hdHRyaWJ1dGVzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJUaWNrZXQgZGF0YSBhdHRyaWJ1dGVzIiwidGlja2V0X2RhdGFfYXR0cmlidXRlc19mZWF0dXJlX3RpdGxlIjoiVGlja2V0IGRhdGEgYXR0cmlidXRlcyIsInRpY2tldF9kZXRhaWxzX2F0dHJpYnV0ZXNfYWNjZXNzaWJpbGl0eV90ZXh0IjoiVGlja2V0IGF0dHJpYnV0ZXM7IiwidGlja2V0X2RldGFpbHNfZm9yX3RpdGxlIjoiVGlja2V0IGRldGFpbHMgZm9yIHt0aXRsZX0iLCJ0aWNrZXRfZGV0YWlsc19ub3RpZmljYXRpb25fZGV0YWlsIjoiWW91IHdpbGwgYmUgbm90aWZpZWQgaGVyZSBhbmQgdmlhIGVtYWlsIGF0IiwidGlja2V0X2Zvcm1zX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJDb2xsZWN0IGluZm9ybWF0aW9uIHVwZnJvbnQgdGhyb3VnaCBhIGJvdCBpbiBtZXNzZW5nZXIgb3IgZGlyZWN0bHkgaW4geW91ciBwcm9kdWN0LiIsInRpY2tldF9mb3Jtc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiVGlja2V0IGZvcm1zIiwidGlja2V0X2Zvcm1zX2ZlYXR1cmVfdGl0bGUiOiJUaWNrZXQgZm9ybXMiLCJ0aWNrZXRfaGFzX2JlZW5fY3JlYXRlZCI6IlRpY2tldCBoYXMgYmVlbiBjcmVhdGVkIiwidGlja2V0X2hhc19iZWVuX3VwZGF0ZWQiOiJUaWNrZXQgaGFzIGJlZW4gdXBkYXRlZCIsInRpY2tldF9wb3J0YWxfY2FyZF9saW5rX3RpdGxlIjoiR28gdG8gdGlja2V0IHBvcnRhbCIsInRpY2tldF9wb3J0YWxfY2FyZF90aXRsZSI6Ikxvb2tpbmcgZm9yIHlvdXIgY29tcGFueeKAmXMgdGlja2V0cz8iLCJ0aWNrZXRfc2xhX2RldGFpbHMiOiJTTEEgZGV0YWlsczoge3NsYV9kZXRhaWxzfSIsInRpY2tldF9zdGF0dXNfZGV0YWlscyI6IlN0YXR1cyBkZXRhaWxzOiB7c3RhdHVzX2RldGFpbHN9IiwidGlja2V0X3N0YXR1c19ldmVudF9tb3ZlZF9hdXRvbWF0aW9uX3dpdGhfYnVsbGV0X3BvaW50IjoiVGlja2V0IG1vdmVkIGludG8ge3N0YXR1c30g4oCiIHt0aW1lc3RhbXB9IiwidGlja2V0X3N0YXR1c19ldmVudF9tb3ZlZF93aXRoX2J1bGxldF9wb2ludCI6Int0ZWFtbWF0ZX0gbW92ZWQgdGlja2V0IGludG8ge3N0YXR1c30g4oCiIHt0aW1lc3RhbXB9IiwidGlja2V0aW5nX3N5c3RlbV9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiVGlja2V0cyBvcHRpbWl6ZWQgZm9yIHRlYW0gY29sbGFib3JhdGlvbiBhbmQgcmVhbC10aW1lIGN1c3RvbWVyIHVwZGF0ZXMuIiwidGlja2V0aW5nX3N5c3RlbV9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiVGlja2V0aW5nIHN5c3RlbSIsInRpY2tldGluZ19zeXN0ZW1fZmVhdHVyZV90aXRsZSI6IlRpY2tldGluZyBzeXN0ZW0iLCJ0aWNrZXRzX2FkZF9maWxlIjoiQWRkIGZpbGUiLCJ0aWNrZXRzX2FkZF9maWxlcyI6IkFkZCBmaWxlcyIsInRpY2tldHNfY3JlYXRlX3RpY2tldCI6IkNyZWF0ZSB0aWNrZXQiLCJ0aWNrZXRzX2NyZWF0ZV90aWNrZXRfZmFsbGJhY2siOiJQbGVhc2UgcmVwbHkgd2l0aCB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGFuZCBzb21lb25lIHdpbGwgZ2V0IGJhY2sgdG8geW91IHNvb24uIiwidGlja2V0c19jcmVhdGVkX2NvbmZpcm1hdGlvbl9oZWFkZXIiOiJUaWNrZXQgaXMgY3JlYXRlZCIsInRpY2tldHNfY3RhX3RleHQiOiJIYXZlIGEgcXVlc3Rpb24gYWJvdXQgdGhpcyB0aWNrZXQ/IiwidGlja2V0c19lbWFpbF9jb3B5IjoiUmVwbGllcyBhbmQgdGlja2V0IHVwZGF0ZXMgd2lsbCBiZSBzZW50IHRvIHRoaXMgZW1haWwiLCJ0aWNrZXRzX2VtYWlsX3N1YmplY3QiOiJZb3VyIHt0aWNrZXRfdHlwZV9uYW1lfSB0aWNrZXQiLCJ0aWNrZXRzX2VtYWlsX3N1YmplY3Rfd2l0aF90aWNrZXRfaWQiOiJZb3VyIHt0aWNrZXRfdHlwZV9uYW1lfSB0aWNrZXQgI3t0aWNrZXRfaWR9IiwidGlja2V0c19lc3RpbWF0ZWRfcmVzb2x1dGlvbiI6IkVzdGltYXRlZCB0aW1lIHRvIHJlc29sdXRpb246IHtkdXJhdGlvbn0iLCJ0aWNrZXRzX2ZpbGVzX2FkZGVkIjoiRmlsZXMgYWRkZWQiLCJ0aWNrZXRzX2hhdmVfYV9xdWVzdGlvbiI6IkhhdmUgYSBxdWVzdGlvbiBhYm91dCB0aGlzIGlzc3VlPyIsInRpY2tldHNfaW5fcHJvZ3Jlc3Nfc3RhdHVzX2RldGFpbCI6Ildl4oCZcmUgd29ya2luZyBvbiB0aGlzIPCfmYwiLCJ0aWNrZXRzX2luX3Byb2dyZXNzX3N0YXR1c19kZXRhaWxfd2l0aF9hc3NpZ25lZSI6IntmaXJzdF9uYW1lfSBpcyB3b3JraW5nIG9uIHRoaXMhIiwidGlja2V0c19pc19yZXNvbHZlZCI6IklzIHRoaXMgdGlja2V0IHJlc29sdmVkPyIsInRpY2tldHNfbG9nX2FfdGlja2V0IjoiTG9nIGEgdGlja2V0IiwidGlja2V0c19wb3J0YWxfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkFsbG93IGJ1c2luZXNzIGN1c3RvbWVycyB0byB2aWV3IGFuZCB0cmFjayBhbGwgdGhlaXIgdGVhbVwncyB0aWNrZXRzIGluIG9uZSBwbGFjZS4iLCJ0aWNrZXRzX3BvcnRhbF9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiVGlja2V0cyBwb3J0YWwiLCJ0aWNrZXRzX3BvcnRhbF9mZWF0dXJlX3RpdGxlIjoiVGlja2V0cyBwb3J0YWwiLCJ0aWNrZXRzX3Jlc29sdmVkX3N0YXR1c19kZXRhaWwiOiJXZeKAmXZlIGNvbXBsZXRlZCB5b3VyIHRpY2tldCIsInRpY2tldHNfcmVzb2x2ZWRfc3RhdHVzX2RldGFpbF93aXRoX2Fzc2lnbmVlIjoie2ZpcnN0X25hbWV9IGhhcyBjb21wbGV0ZWQgeW91ciB0aWNrZXQiLCJ0aWNrZXRzX3NsYSI6IkVzdGltYXRlZCB0byBiZSByZXNvbHZlZCB7dGltZX0iLCJ0aWNrZXRzX3NwYWNlX3RpdGxlIjoiVGlja2V0cyIsInRpY2tldHNfc3RhdHVzX2NoYW5nZV9ldmVudCI6IlRpY2tldCBpcyBub3cge3N0YXR1c30g4oCiIHt0aW1lc3RhbXB9IiwidGlja2V0c19zdGF0dXNfZGVzY3JpcHRpb25fY29tcGxldGVkIjoiV2VcJ3ZlIGNvbXBsZXRlZCB5b3VyIHRpY2tldCIsInRpY2tldHNfc3RhdHVzX2Rlc2NyaXB0aW9uX21vcmVfaW5mbyI6IldlIG5lZWQgbW9yZSBpbmZvcm1hdGlvbiIsInRpY2tldHNfc3RhdHVzX2Rlc2NyaXB0aW9uX3dlbGxfcGlja191cF9zb29uIjoiV2VcJ2xsIHBpY2sgdXAgeW91ciB0aWNrZXQgc29vbiIsInRpY2tldHNfc3RhdHVzX2Rlc2NyaXB0aW9uX3dvcmtpbmdfb24iOiJXZVwncmUgd29ya2luZyBvbiB5b3VyIHRpY2tldCIsInRpY2tldHNfc3RhdHVzX2V2ZW50X21vdmVkIjoie3RlYW1tYXRlfSBtb3ZlZCB0aWNrZXQgaW50byB7c3RhdHVzfSB7dGltZXN0YW1wfSIsInRpY2tldHNfc3RhdHVzX2V2ZW50X21vdmVkX2F1dG9tYXRpb24iOiJUaWNrZXQgbW92ZWQgaW50byB7c3RhdHVzfSB7dGltZXN0YW1wfSIsInRpY2tldHNfc3RhdHVzX2V2ZW50X3N1Ym1pdHRlZCI6IlRpY2tldCBoYXMgYmVlbiB7c3VibWl0dGVkX3N0YXR1c30g4oCiIHt0aW1lc3RhbXB9IiwidGlja2V0c19zdGF0dXNfaW5fcHJvZ3Jlc3MiOiJJbiBwcm9ncmVzcyIsInRpY2tldHNfc3RhdHVzX3Jlc29sdmVkIjoiUmVzb2x2ZWQiLCJ0aWNrZXRzX3N0YXR1c19zdWJtaXR0ZWQiOiJTdWJtaXR0ZWQiLCJ0aWNrZXRzX3N0YXR1c193YWl0aW5nX29uX3lvdSI6IldhaXRpbmcgb24geW91IiwidGlja2V0c19zdWJtaXR0ZWRfY29uZmlybWF0aW9uX2hlYWRlciI6IlRpY2tldCBpcyBzdWJtaXR0ZWQiLCJ0aWNrZXRzX3N1Ym1pdHRlZF9jb25maXJtYXRpb25fcGFyYWdyYXBoIjoiV2VcJ2xsIG5vdGlmeSB5b3Ugb25jZSB5b3VyIHRpY2tldCBoYXMgYW4gdXBkYXRlIiwidGlja2V0c19zdWJtaXR0ZWRfc3RhdHVzX2RldGFpbCI6Ildl4oCZbGwgcGljayB0aGlzIHVwIHNvb24iLCJ0aWNrZXRzX3N1Ym1pdHRlZF9zdGF0dXNfZGV0YWlsX3dpdGhfYXNzaWduZWUiOiJ7Zmlyc3RfbmFtZX0gd2lsbCBwaWNrIHRoaXMgdXAgc29vbiIsInRpY2tldHNfdXBkYXRlc19wcm9tcHQiOiJZb3Ugd2lsbCByZWNlaXZlIHVwZGF0ZXMgaW4gdGhlIE1lc3NlbmdlciBhbmQgdmlhIGVtYWlsIiwidGlja2V0c192aWV3X3RpY2tldCI6IlZpZXcgdGlja2V0IGRldGFpbHMiLCJ0aWNrZXRzX3dhaXRpbmdfb25fY3VzdG9tZXJfc3RhdHVzX2RldGFpbCI6IldlIG5lZWQgbW9yZSBpbmZvcm1hdGlvbiBmcm9tIHlvdSIsInRpY2tldHNfd2FpdGluZ19vbl9jdXN0b21lcl9zdGF0dXNfZGV0YWlsX3dpdGhfYXNzaWduZWUiOiJ7Zmlyc3RfbmFtZX0gbmVlZHMgbW9yZSBpbmZvcm1hdGlvbiIsInRpbWVfZGF5X2FnbyI6IntkZWx0YX1kIiwidGltZV9mdXR1cmVfMWgiOiJJbiAxIGhvdXIiLCJ0aW1lX2Z1dHVyZV8yaCI6IkluIDIgaG91cnMiLCJ0aW1lX2Z1dHVyZV8zMG0iOiJJbiAzMCBtaW51dGVzIiwidGltZV9mdXR1cmVfM2giOiJJbiAzIGhvdXJzIiwidGltZV9mdXR1cmVfZGF5XzAiOiJNb25kYXkiLCJ0aW1lX2Z1dHVyZV9kYXlfMSI6IlR1ZXNkYXkiLCJ0aW1lX2Z1dHVyZV9kYXlfMiI6IldlZG5lc2RheSIsInRpbWVfZnV0dXJlX2RheV8zIjoiVGh1cnNkYXkiLCJ0aW1lX2Z1dHVyZV9kYXlfNCI6IkZyaWRheSIsInRpbWVfZnV0dXJlX2RheV81IjoiU2F0dXJkYXkiLCJ0aW1lX2Z1dHVyZV9kYXlfNiI6IlN1bmRheSIsInRpbWVfZnV0dXJlX2xhdGVyX3RvZGF5IjoiTGF0ZXIgdG9kYXkiLCJ0aW1lX2Z1dHVyZV9uZXh0X3dlZWsiOiJOZXh0IHdlZWsiLCJ0aW1lX2Z1dHVyZV90b21vcnJvdyI6IlRvbW9ycm93IiwidGltZV9ob3VyX2FnbyI6IntkZWx0YX1oIiwidGltZV9qdXN0X25vdyI6Ikp1c3Qgbm93IiwidGltZV9taW51dGVfYWdvIjoie2RlbHRhfW0iLCJ0aW1lX21vbnRoX2FnbyI6IntkZWx0YX1tbyIsInRpbWVfd2Vla19hZ28iOiJ7ZGVsdGF9dyIsInRpbWVfeWVhcl9hZ28iOiJ7ZGVsdGF9eSIsInRpbWVfeWVzdGVyZGF5IjoieWVzdGVyZGF5IiwidG9uZV9vZl92b2ljZV9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiRmluIGNhbiBpbmNvcnBvcmF0ZSB5b3VyIHN1cHBvcnQgdG9uZSBvZiB2b2ljZSBwcmVmZXJlbmNlcywgYWxsb3dpbmcgeW91IHRvIGN1c3RvbWl6ZSB5b3VyIG93biwgb3IgY2hvb3NlIGZyb20gYSBzZWxlY3Rpb24gb2Ygb3B0aW9ucyBsaWtlIHByb2Zlc3Npb25hbCwgZnJpZW5kbHksIGh1bW9yb3VzLCBhbmQgbW9yZS4iLCJ0b25lX29mX3ZvaWNlX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJUb25lIG9mIHZvaWNlIiwidG9uZV9vZl92b2ljZV9mZWF0dXJlX3RpdGxlIjoiVG9uZSBvZiB2b2ljZSIsInRvb2x0aXBfYW5jaG9yIjoiVG9vbHRpcCBhbmNob3IiLCJ0b29sdGlwc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiSGlnaGxpZ2h0IGZlYXR1cmVzIHdpdGggYSBsYWJlbCB0aGF0IGRyYXdzIGF0dGVudGlvbiB0byBhIHNwZWNpZmljIGFyZWEgb2YgeW91ciBwcm9kdWN0LiIsInRvb2x0aXBzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJUb29sdGlwcyIsInRvb2x0aXBzX2ZlYXR1cmVfdGl0bGUiOiJUb29sdGlwcyIsInRvcGljc19leHBsb3Jlcl9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiVmlzdWFsaXplIHN1cHBvcnQgdm9sdW1lIGFuZCBrZXkgcGVyZm9ybWFuY2UgbWV0cmljcyBieSB0b3BpYyBhbmQgc3VidG9waWMuIiwidG9waWNzX2V4cGxvcmVyX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJUb3BpY3MgRXhwbG9yZXIiLCJ0b3BpY3NfZXhwbG9yZXJfZmVhdHVyZV90aXRsZSI6IlRvcGljcyBFeHBsb3JlciIsInRvdXIiOiJ0b3VyIiwidHJhbnNjcmliaW5nIjoiVHJhbnNjcmliaW5nLi4uIiwidHJhbnNjcmlwdGlvbl9mYWlsZWQiOiJUcmFuc2NyaXB0aW9uIGZhaWxlZCIsInRyYW5zY3JpcHRzX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJFbmFibGUgY2FsbCB0cmFuc2NyaXB0cyBmb3IgcXVpY2sgcmVmZXJlbmNlIGFuZCBxdWFsaXR5IGFzc3VyYW5jZS4iLCJ0cmFuc2NyaXB0c19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiQ2FsbCB0cmFuc2NyaXB0cyIsInRyYW5zY3JpcHRzX2ZlYXR1cmVfdGl0bGUiOiJDYWxsIHRyYW5zY3JpcHRzIiwidHJhdmVsX3BsYWNlcyI6IlRyYXZlbCAmIFBsYWNlcyIsInRyZW5kaW5nX3RvcGljc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiQXV0b21hdGljYWxseSBkZXRlY3QgbWVhbmluZ2Z1bCBjaGFuZ2VzIGluIHN1cHBvcnQgYWN0aXZpdHkgYW5kIHBlcmZvcm1hbmNlLiIsInRyZW5kaW5nX3RvcGljc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiVHJlbmRzIiwidHJlbmRpbmdfdG9waWNzX2ZlYXR1cmVfdGl0bGUiOiJUcmVuZHMiLCJ0cnlfYWdhaW4iOiJUcnkgQWdhaW4iLCJ0cnlfaGVscF9jZW50ZXIiOiJUcnkgb3VyIEhlbHAgQ2VudGVyIiwidHJ5X3VzZV9kaWZmZXJlbnRfa2V5d29yZHMiOiJUcnkgZGlmZmVyZW50IGtleXdvcmRzIG9yIHR5cGUgeW91ciBmdWxsIHF1ZXN0aW9uIiwidHdvX2J1c2luZXNzX2RheXMiOiJUd28gYnVzaW5lc3MgZGF5cyIsInR5cGVfYV9udW1iZXIiOiJUeXBlIGEgbnVtYmVy4oCmIiwidHlwaWNhbGx5X3JlcGxpZXNfaW5fb25lX2J1c2luZXNzX2RheSI6IlR5cGljYWxseSByZXBsaWVzIGluIG9uZSBidXNpbmVzcyBkYXkiLCJ0eXBpY2FsbHlfcmVwbGllc19pbl90d29fYnVzaW5lc3NfZGF5cyI6IlR5cGljYWxseSByZXBsaWVzIGluIHR3byBidXNpbmVzcyBkYXlzIiwidHlwaW5nIjoiVHlwaW5nIiwidW5hYmxlX3RvX2xvYWRfdGhlX21lc3NlbmdlciI6IldlXCdyZSB1bmFibGUgdG8gbG9hZCB0aGUgbWVzc2VuZ2VyIiwidW5icmFuZGVkX2hlbHBfY2VudGVyX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJBIGhlbHAgY2VudGVyIHRoYXQgd2lsbCBub3QgaW5jbHVkZSBcJ0J1aWx0IGJ5IEludGVyY29tXCcgaW4gdGhlIGZvb3Rlci4iLCJ1bmJyYW5kZWRfaGVscF9jZW50ZXJfZmVhdHVyZV9zaG9ydF90aXRsZSI6IlVuYnJhbmRlZCBoZWxwIGNlbnRlciIsInVuYnJhbmRlZF9oZWxwX2NlbnRlcl9mZWF0dXJlX3RpdGxlIjoiVW5icmFuZGVkIGhlbHAgY2VudGVyIiwidW5saW1pdGVkX2FydGljbGVzX2FuZF9jb2xsZWN0aW9uc19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiUHVibGlzaCBhbiB1bmxpbWl0ZWQgYW1vdW50IG9mIGFydGljbGVzIGFuZCBvcmdhbml6ZSB0aGVtIGJ5IHRvcGljIGluIGNvbGxlY3Rpb25zLiIsInVubGltaXRlZF9hcnRpY2xlc19hbmRfY29sbGVjdGlvbnNfZmVhdHVyZV9zaG9ydF90aXRsZSI6IlVubGltaXRlZCBhcnRpY2xlcyIsInVubGltaXRlZF9hcnRpY2xlc19hbmRfY29sbGVjdGlvbnNfZmVhdHVyZV90aXRsZSI6IlVubGltaXRlZCBhcnRpY2xlcyAmIGNvbGxlY3Rpb25zIiwidW5saW1pdGVkX3VzYWdlX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJVbmxpbWl0ZWQgRmluIEFJIENvcGlsb3QgdXNhZ2UuIiwidW5saW1pdGVkX3VzYWdlX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJGaW4gQUkgQ29waWxvdCIsInVubGltaXRlZF91c2FnZV9mZWF0dXJlX3RpdGxlIjoiVW5saW1pdGVkIHVzYWdlIiwidW5yZWFkX21lc3NhZ2VzIjoiVW5yZWFkIG1lc3NhZ2VzIiwidW5zdWJzY3JpYmVfc3luY19mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiS2VlcCB5b3VyIGN1c3RvbWVyc1wnIHN1YnNjcmlwdGlvbiBjaG9pY2VzIGluIHN5bmMgYWNyb3NzIEludGVyY29tIGFuZCBNYWlsY2hpbXAvTWFya2V0by4iLCJ1bnN1YnNjcmliZV9zeW5jX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJVbnN1YnNjcmliZSBzeW5jIiwidW5zdWJzY3JpYmVfc3luY19mZWF0dXJlX3RpdGxlIjoiVW5zdWJzY3JpYmUgc3luYyIsInVwZGF0ZWRfaW5fdGhlX2xhc3RfMTVtIjoiVXBkYXRlZCBpbiB0aGUgbGFzdCAxNSBtaW51dGVzIiwidXBkYXRlZF9pbl90aGVfbGFzdF9ob3VyIjoiVXBkYXRlZCBpbiB0aGUgbGFzdCBob3VyIiwidXBkYXRlZF9tdWx0aXBsZV9tb250aHNfYWdvIjoiVXBkYXRlZCBvdmVyIHtjb3VudH0gbW9udGhzIGFnbyIsInVwZGF0ZWRfbXVsdGlwbGVfd2Vla3NfYWdvIjoiVXBkYXRlZCBvdmVyIHtjb3VudH0gd2Vla3MgYWdvIiwidXBkYXRlZF9tdWx0aXBsZV95ZWFyc19hZ28iOiJVcGRhdGVkIG92ZXIge2NvdW50fSB5ZWFycyBhZ28iLCJ1cGRhdGVkX292ZXJfYV9tb250aF9hZ28gIjoiVXBkYXRlZCBvdmVyIGEgbW9udGggYWdvIiwidXBkYXRlZF9vdmVyX2Ffd2Vla19hZ28iOiJVcGRhdGVkIG92ZXIgYSB3ZWVrIGFnbyIsInVwZGF0ZWRfb3Zlcl9hX3llYXJfYWdvIjoiVXBkYXRlZCBvdmVyIGEgeWVhciBhZ28iLCJ1cGRhdGVkX3RoaXNfd2VlayI6IlVwZGF0ZWQgdGhpcyB3ZWVrIiwidXBkYXRlZF90b2RheSI6IlVwZGF0ZWQgdG9kYXkiLCJ1cGRhdGVkX3llc3RlcmRheSI6IlVwZGF0ZWQgeWVzdGVyZGF5IiwidXBmcm9udF9jb2xsZWN0aW9uX2Zvcm1fY2xvc2Vfb3V0IjoiWW91IGNhbiByZXR1cm4gaGVyZSBhbnl0aW1lIHRvIHNlZSByZXNwb25zZXMgYW5kIHNlbmQgdXBkYXRlcy4iLCJ1cGZyb250X2NvbGxlY3Rpb25fZm9ybV9pbnRyb2R1Y3Rpb24iOiJTaGFyZSBzb21lIGNvbnRleHQgdG8gaGVscCB0aGUgdGVhbSByZXNwb25kIGJldHRlciBhbmQgZmFzdGVyLiIsInVwZnJvbnRfY29sbGVjdGlvbl9mb3JtX3N1Ym1pc3Npb25fY29uZmlybWF0aW9uIjoiVGhhbmtzIGZvciBzZW5kaW5nIHRoYXQgY29udGV4dC4gVG8gc2F2ZSB0aW1lIGxhdGVyLCBmZWVsIGZyZWUgdG8gYWRkIG1vcmUgZGV0YWlscyBub3cuIiwidXBmcm9udF9jb2xsZWN0aW9uX2Zvcm1fc3VidGl0bGUiOiJTZW5kIHRoZSB0ZWFtIHNvbWUgY29udGV4dCIsInVwZnJvbnRfY29sbGVjdGlvbl9mb3JtX3N1YnRpdGxlX3N1Ym1pdHRlZCI6IlRoZXlcJ2xsIGtlZXAgdGhpcyBjb250ZXh0IGluIG1pbmQiLCJ1cGZyb250X2NvbGxlY3Rpb25fZm9ybV90aXRsZSI6IkdldCBoZWxwIGZhc3RlciIsInVwZnJvbnRfY29sbGVjdGlvbl9mb3JtX3RpdGxlX3N1Ym1pdHRlZCI6IlNlbnQgdG8gdGhlIHRlYW0hIiwidXBsb2FkX2F0dGFjaG1lbnQiOiJVcGxvYWQgYXR0YWNobWVudCIsInVwbG9hZF9mYWlsZWQiOiJVcGxvYWQgZmFpbGVkIiwidXBsb2FkX21heF9maWxlc19hbGxvd2VkIjoiTWF4aW11bSB7bGltaXR9IGZpbGVzIGFsbG93ZWQiLCJ1cGxvYWRfbWF4X2ZpbGVzX3NpemUiOiJNYXhpbXVtIGZpbGUgc2l6ZSBpcyB7bGltaXR9TUIiLCJ1cGxvYWRfcmV0cnkiOiJSZXRyeSB1cGxvYWQiLCJ1c2VyX2NvbXBhbnlfc2VnbWVudHNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkZpbHRlciBhbmQgZ3JvdXAgdXNlcnMgYW5kIGNvbXBhbmllcyB3aXRoIHNlZ21lbnRzLiIsInVzZXJfY29tcGFueV9zZWdtZW50c19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiVXNlciAmIGNvbXBhbnkgc2VnbWVudHMiLCJ1c2VyX2NvbXBhbnlfc2VnbWVudHNfZmVhdHVyZV90aXRsZSI6IlVzZXIgJiBjb21wYW55IHNlZ21lbnRzIiwidXNlcl9zYXlzIjoie2ZpcnN0TmFtZX0gc2F5c+KApiIsInVzdWFsX3JlcGx5X3RpbWVfaGVhZGVyX2xhYmVsIjoiVXN1YWwgcmVwbHkgdGltZSIsInZpZXdfYWxsIjoiVmlldyBhbGwiLCJ2aWV3X2NvbnZlcnNhdGlvbiI6IlZpZXcgY29udmVyc2F0aW9uIiwidmlld19tb3JlIjoiVmlldyBtb3JlIiwidmlld19tb3JlX2RldGFpbHMiOiJWaWV3IG1vcmUgZGV0YWlscyIsInZpZXdfcG9zdCI6IlZpZXcgcG9zdCIsInZvaWNlX3Nob3J0Y3V0X2hpbnQiOiJSZWNvcmQgYSB2b2ljZSBub3RlIOKAlCBob2xkIHtzaG9ydGN1dH0gd2hpbGUgdGhlIGNvbXBvc2VyIGlzIGVtcHR5LiIsInZvaWNlbWFpbF9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiVHVybiBvbiB0cmFuc2NyaWJlZCB2b2ljZW1haWxzIHRvIGVhc2lseSByZXR1cm4gY3VzdG9tZXIgY2FsbHMuIiwidm9pY2VtYWlsX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJWb2ljZW1haWwiLCJ2b2ljZW1haWxfZmVhdHVyZV90aXRsZSI6IlZvaWNlbWFpbCIsIndlX3J1bl9vbl9maW4iOiJXZSBydW4gb24gRmluIiwid2VfcnVuX29uX2ludGVyY29tIjoiV2UgcnVuIG9uIEludGVyY29tIiwid2ViaG9va3NfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IlN1YnNjcmliZSB0byByZWFsLXRpbWUgbm90aWZpY2F0aW9ucyBvZiBldmVudHMgaGFwcGVuaW5nIGluIEludGVyY29tLiIsIndlYmhvb2tzX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJXZWJob29rcyIsIndlYmhvb2tzX2ZlYXR1cmVfdGl0bGUiOiJXZWJob29rcyIsIndlbGNvbWVfbWVzc2FnZXNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkF1dG9tYXRpY2FsbHkgbWVzc2FnZSBuZXcgdXNlcnMgYW5kIHZpc2l0b3JzIHdpdGggYSBwZXJzb25hbGl6ZWQgZ3JlZXRpbmcuIiwid2VsY29tZV9tZXNzYWdlc19mZWF0dXJlX3Nob3J0X3RpdGxlIjoiV2VsY29tZSBtZXNzYWdlcyIsIndlbGNvbWVfbWVzc2FnZXNfZmVhdHVyZV90aXRsZSI6IldlbGNvbWUgbWVzc2FnZXMiLCJ3aGF0c2FwcF9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiU2VuZCBhbmQgcmVjZWl2ZSBXaGF0c0FwcCBtZXNzYWdlcyBmcm9tIHRoZSBpbmJveC4iLCJ3aGF0c2FwcF9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiV2hhdHNBcHAiLCJ3aGF0c2FwcF9mZWF0dXJlX3RpdGxlIjoiV2hhdHNBcHAiLCJ3aGF0c2FwcF9pbmJvdW5kX2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJXaGF0c0FwcCBjb252ZXJzYXRpb25zIGluIHRoZSBJbmJveCBhbmQgc2VudCBmcm9tIFdvcmtmbG93cywgZnJlZSBvZiBjaGFyZ2UuIiwid2hhdHNhcHBfaW5ib3VuZF9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiSW5ib3VuZCBXaGF0c0FwcCIsIndoYXRzYXBwX2luYm91bmRfZmVhdHVyZV90aXRsZSI6IkluYm91bmQgV2hhdHNBcHAiLCJ3aXRoX3RlYW1uYW1lIjoid2l0aCB7dGVhbW5hbWV9Iiwid2l0aGluX2N1c3RvbV9yZXNwb25zZV9kZWxheV8wIjoiYSBmZXcgbWludXRlcyIsIndpdGhpbl9jdXN0b21fcmVzcG9uc2VfZGVsYXlfMSI6ImEgZmV3IGhvdXJzIiwid2l0aGluX2N1c3RvbV9yZXNwb25zZV9kZWxheV8yIjoiYSBkYXkiLCJ3aXRoaW5fY3VzdG9tX3Jlc3BvbnNlX2RlbGF5XzMiOiJhIHdlZWsiLCJ3aXRoaW5fZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMTA4MDAiOiIzIGhvdXJzIiwid2l0aGluX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzEyMCI6IjIgbWludXRlcyIsIndpdGhpbl9leHBlY3RlZF9yZXNwb25zZV9kZWxheV8xMjAwIjoiMjAgbWludXRlcyIsIndpdGhpbl9leHBlY3RlZF9yZXNwb25zZV9kZWxheV8xNDQwMCI6IjQgaG91cnMiLCJ3aXRoaW5fZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMTcyODAwIjoiMiBkYXlzIiwid2l0aGluX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzE4MCI6IjMgbWludXRlcyIsIndpdGhpbl9leHBlY3RlZF9yZXNwb25zZV9kZWxheV8xODAwIjoiMzAgbWludXRlcyIsIndpdGhpbl9leHBlY3RlZF9yZXNwb25zZV9kZWxheV8xODAwMCI6IjUgaG91cnMiLCJ3aXRoaW5fZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMjE2MDAiOiI2IGhvdXJzIiwid2l0aGluX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzI0MCI6IjQgbWludXRlcyIsIndpdGhpbl9leHBlY3RlZF9yZXNwb25zZV9kZWxheV8yNTkyMDAiOiIzIGRheXMiLCJ3aXRoaW5fZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfMzAwIjoiNSBtaW51dGVzIiwid2l0aGluX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzM0NTYwMCI6IjQgZGF5cyIsIndpdGhpbl9leHBlY3RlZF9yZXNwb25zZV9kZWxheV8zNjAwIjoiMSBob3VyIiwid2l0aGluX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzQzMjAwIjoiMTIgaG91cnMiLCJ3aXRoaW5fZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfNDMyMDAwIjoiNSBkYXlzIiwid2l0aGluX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzUxODQwMCI6IjYgZGF5cyIsIndpdGhpbl9leHBlY3RlZF9yZXNwb25zZV9kZWxheV82MCI6IjEgbWludXRlIiwid2l0aGluX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzYwMCI6IjEwIG1pbnV0ZXMiLCJ3aXRoaW5fZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfNjA0ODAwIjoiMSB3ZWVrIiwid2l0aGluX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5XzcyMDAiOiIyIGhvdXJzIiwid2l0aGluX2V4cGVjdGVkX3Jlc3BvbnNlX2RlbGF5Xzg2NDAwIjoiMSBkYXkiLCJ3aXRoaW5fZXhwZWN0ZWRfcmVzcG9uc2VfZGVsYXlfOTAwIjoiMTUgbWludXRlcyIsIndvcmtmbG93c19mb3JfYWR2YW5jZWRfYXV0b21hdGlvbnNfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkF1dG9tYXRpY2FsbHkgYXNzaWduLCBjbG9zZSwgYW5kIHByaW9yaXRpemUgY29udmVyc2F0aW9ucyBhbmQgdGlja2V0cywgYW5kIGRvIG1vcmUgd2l0aCBvdXIgdmlzdWFsIGF1dG9tYXRpb24gYnVpbGRlci4iLCJ3b3JrZmxvd3NfZm9yX2FkdmFuY2VkX2F1dG9tYXRpb25zX2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJXb3JrZmxvd3MgZm9yIGFkdmFuY2VkIGF1dG9tYXRpb24iLCJ3b3JrZmxvd3NfZm9yX2FkdmFuY2VkX2F1dG9tYXRpb25zX2ZlYXR1cmVfdGl0bGUiOiJXb3JrZmxvd3MgZm9yIGFkdmFuY2VkIGF1dG9tYXRpb25zIiwid29ya2Zsb3dzX2Zvcl9maW5fZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkFkZCBGaW4gdG8gc29waGlzdGljYXRlZCBXb3JrZmxvd3MgYXV0b21hdGlvbnMgdG8gdHJpYWdlLCBoYW5kbGUgY29tcGxleCBjdXN0b21lciBxdWVyaWVzIGFuZCBnZW5lcmF0ZSBhbnN3ZXJzIHdoZW4gY3VzdG9tZXJzIHRha2Ugc3BlY2lmaWMgYWN0aW9ucy4iLCJ3b3JrZmxvd3NfZm9yX2Zpbl9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiV29ya2Zsb3dzIGZvciBGaW4iLCJ3b3JrZmxvd3NfZm9yX2Zpbl9mZWF0dXJlX3RpdGxlIjoiV29ya2Zsb3dzIGZvciBGaW4iLCJ3b3JraW5nX29uX2l0IjoiV29ya2luZyBvbiBpdC4uLiIsIndvcmtsb2FkX21hbmFnZW1lbnRfZmVhdHVyZV9kZXNjcmlwdGlvbiI6IkFzc2lnbiB0aGUgbW9zdCBjcml0aWNhbCBjb252ZXJzYXRpb25zIGZyb20gdmFyaW91cyB0ZWFtIGluYm94ZXMgdG8gdGhlIG1vc3QgYXZhaWxhYmxlIGFuZCByZWxldmFudCB0ZWFtbWF0ZS4iLCJ3b3JrbG9hZF9tYW5hZ2VtZW50X2ZlYXR1cmVfc2hvcnRfdGl0bGUiOiJXb3JrbG9hZCBtYW5hZ2VtZW50Iiwid29ya2xvYWRfbWFuYWdlbWVudF9mZWF0dXJlX3RpdGxlIjoiV29ya2xvYWQgbWFuYWdlbWVudCIsIndvcmtzcGFjZV9zYW5kYm94X2ZlYXR1cmVfZGVzY3JpcHRpb24iOiJTYW5kYm94IHRvIHRlc3QgZmVhdHVyZXMgYW5kIHdvcmtmbG93cyB3aXRob3V0IGltcGFjdGluZyB0aGUgbGl2ZSB3b3Jrc3BhY2UuIiwid29ya3NwYWNlX3NhbmRib3hfZmVhdHVyZV9zaG9ydF90aXRsZSI6IldvcmtzcGFjZSBzYW5kYm94Iiwid29ya3NwYWNlX3NhbmRib3hfZmVhdHVyZV90aXRsZSI6IldvcmtzcGFjZSBzYW5kYm94Iiwid3JpdGVfeW91cl9tZXNzYWdlIjoiV3JpdGUgeW91ciBtZXNzYWdlLi4uIiwid3JpdHRlbl9ieSI6IldyaXR0ZW4gYnkiLCJ5b3UiOiJZb3UiLCJ5b3VfYXJlX2FsbF91cF90b19kYXRlIjoiWW91XCdyZSBhbGwgY2F1Z2h0IHVwISIsInlvdV9oYXZlX25ld19tZXNzYWdlcyI6IllvdSBoYXZlIG5ldyBtZXNzYWdlcy4iLCJ5b3VfcmF0ZWRfdGhlX2NvbnZlcnNhdGlvbiI6IllvdSByYXRlZCB0aGUgY29udmVyc2F0aW9uIiwieW91X3dpbGxfZ2V0X2FfcmVwbHlfaGVyZV9hbmRfYXRfZW1haWwiOiJZb3VcJ2xsIGdldCBhIHJlcGx5IGhlcmUgYW5kIGF0IHtlbWFpbH0iLCJ5b3VsbF9iZV9ub3RpZmllZF9oZXJlX2FuZF9ieV9lbWFpbCI6IllvdSB3aWxsIGJlIG5vdGlmaWVkIGhlcmUgYW5kIGJ5IGVtYWlsIiwieW91bGxfYmVfbm90aWZpZWRfaGVyZV9hbmRfYnlfc21zIjoiWW91XCdsbCBiZSBub3RpZmllZCBoZXJlIGFuZCBieSBTTVMiLCJ5b3VyX2NoZWNrbGlzdHMiOiJZb3VyIGNoZWNrbGlzdHMiLCJ5b3VyX2NvbnZlcnNhdGlvbnMiOiJZb3VyIGNvbnZlcnNhdGlvbnMiLCJ5b3VyX2VtYWlsIjoiWW91ciBlbWFpbCIsInlvdXJfbWVzc2FnZSI6IllvdXIgbWVzc2FnZSIsInlvdXJfcmVjZW50X2NvbnZlcnNhdGlvbnMiOiJSZWNlbnQgY29udmVyc2F0aW9ucyIsInlvdXJfcmVjZW50X21lc3NhZ2UiOiJSZWNlbnQgbWVzc2FnZSIsInlvdXJfcmVjZW50X21lc3NhZ2VzIjoiUmVjZW50IG1lc3NhZ2VzIiwieW91cl90aWNrZXQiOiJZb3VyIHRpY2tldCIsInplbmRlc2tfc3VwcG9ydF9pbnRlZ3JhdGlvbl9mZWF0dXJlX2Rlc2NyaXB0aW9uIjoiVmlldyBaZW5kZXNrIHRpY2tldHMgb3IgY3JlYXRlIG5ldyBvbmVzIHdpdGhvdXQgbGVhdmluZyB5b3VyIGluYm94LiIsInplbmRlc2tfc3VwcG9ydF9pbnRlZ3JhdGlvbl9mZWF0dXJlX3Nob3J0X3RpdGxlIjoiWmVuZGVzayBTdXBwb3J0IGludGVncmF0aW9uIiwiemVuZGVza19zdXBwb3J0X2ludGVncmF0aW9uX2ZlYXR1cmVfdGl0bGUiOiJaZW5kZXNrIFN1cHBvcnQgaW50ZWdyYXRpb24ifScpfX1dKTs="}},"time_used":50,"timings":{"blocked":-1,"dns":1,"connect":8,"send":0,"wait":10,"receive":16,"ssl":14},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"jnn-pa.googleapis.com/$rpc/google.internal.waa.v1.Waa/GenerateIT","fqdn":"jnn-pa.googleapis.com","domain":"jnn-pa.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"172.217.116.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://www.youtube.com/embed/Ymge-qh3m4E","date":"2026-07-27T03:07:41.773Z","timestamp":1785121661773,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:20 GMT","end":"Mon, 21 Sep 2026 08:39:19 GMT"},"fingerprint":{"sha1":"2A:E6:04:0E:76:A4:02:27:67:28:31:4D:E5:61:19:26:CA:0E:32:84","sha256":"D4:ED:C4:F8:DB:31:8A:2D:35:15:01:14:C0:49:CB:47:FF:5B:CC:17:14:82:63:9B:A8:6F:61:4D:AA:E5:96:94"}}},"request":{"raw":"OPTIONS /$rpc/google.internal.waa.v1.Waa/GenerateIT HTTP/1.1\r\nHost: jnn-pa.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nAccess-Control-Request-Method: POST\r\nAccess-Control-Request-Headers: content-type,x-goog-api-key\r\nReferer: https://www.youtube.com/\r\nOrigin: https://www.youtube.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=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"OPTIONS"},"response":{"raw":"HTTP/2 200 \r\naccess-control-allow-origin: https://www.youtube.com\r\nvary: origin, referer, x-origin\r\naccess-control-allow-credentials: true\r\naccess-control-allow-methods: DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT\r\naccess-control-allow-headers: content-type,x-goog-api-key\r\naccess-control-max-age: 3600\r\ndate: Mon, 27 Jul 2026 03:07:41 GMT\r\ncontent-type: text/html\r\nserver: ESF\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":555,"mime_type":"text/html","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-27T05:14:11.3544Z","times_seen":17556491,"resource_available":true,"data":""}},"time_used":48,"timings":{"blocked":0,"dns":0,"connect":8,"send":0,"wait":17,"receive":0,"ssl":23},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/fonts/RedHatDisplay-Bold.woff2","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:39.812Z","timestamp":1785121659812,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /fonts/RedHatDisplay-Bold.woff2 HTTP/1.1\r\nHost: 7bridgecapital.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: gzip, deflate, br, zstd\r\nReferer: https://7bridgecapital.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 03:07:39 GMT\r\ncontent-type: font/woff2\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 19688\r\ndate: Mon, 27 Jul 2026 03:07:39 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":19688,"size_decoded":19955,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 19688, version 1.0","md5":"02e7adabf7a6dbabe8dde9566b25fd4b","sha1":"855855255ab38f66f4b532dec353b7d248ec54f8","sha256":"2632350150729e5432013ca98c01588c89c707f4dcf359076ce8b90cbf369dc3","sha512":"2028d537318915109d610b344d87e2b6c53b7d8fa4b462c8fbcb0925e8aa3559857e73fc4e5137f2dd59850258a7e4a9af338a83838342e9d503d06a0ba07498","ssdeep":"384:nVDm5IDdxSDzEQ5uckrIgQ2h5irFI+1RsnOsek8uX5hNKw+hnCT58nN/X1:nLZxiYJhFxTirFpjSMv2KjRCNEX1","tlshash":"8592d0f18aba8a4db57c5bbc676aaed44210870387543b93e01d887fe4b371e15e2613","first_seen":"2023-10-28T00:17:16Z","last_seen":"2026-07-27T03:09:30.372212Z","times_seen":6,"resource_available":false,"data":"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"}},"time_used":209,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":110,"receive":99,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/js/app.js?v=1684946825","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.035Z","timestamp":1785121660035,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /js/app.js?v=1684946825 HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 6664\r\ndate: Mon, 27 Jul 2026 03:07:39 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":27696,"size_decoded":6901,"mime_type":"text/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (27693), with no line terminators","md5":"3e5132621504d036256cf63373fe03c0","sha1":"1a460ed5dd953011072e00b0c19a01aa82c72fef","sha256":"fc307c165e547184a53a96ac052f3c32f5aa1a07cb852d010be895f32a3af295","sha512":"b0a0d2bc486acc222161d998755aead741d2385f7f6bc15e1e2bfdc5f1947ab7dbb281597c4c6b8a3c535d1330bc56616d23d01b6c691e222a6bb8d84ccb9324","ssdeep":"384:wSAUKWRrVHuPkOY2Hqnj46ldmXMxZ53BUaZe2MEgVnZDZDz9PdmnMybxko7NMuDc:wHhkxkCjRldLgOkLDZD1QnbbN7CuglwK","tlshash":"6fc2b540b2c5b4bb43a7d56284178106b0647249a81b94bcf7bdbcd48baac04f67af77","first_seen":"2026-07-27T02:49:41.0193Z","last_seen":"2026-07-27T03:09:30.377056Z","times_seen":3,"resource_available":true,"data":"IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlLHQ9ezczODpmdW5jdGlvbihlLHQsaSl7dmFyIHIsbixzLGE9aSg1OTkpLG89aSg5MzUpO2NsYXNzIGwgZXh0ZW5kcyBhLlFye29wZW4oKXsoMCxvLklPKSh0aGlzLnBhbmVsVGFyZ2V0LCJuYXYtbW9iaWxlIil9Y2xvc2UoKXsoMCxvLlp1KSh0aGlzLnBhbmVsVGFyZ2V0LCJuYXYtbW9iaWxlIil9fXI9bCxzPVsicGFuZWwiXSwobj1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIGk9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWkpe3ZhciByPWkuY2FsbChlLHQpO2lmKCJvYmplY3QiIT10eXBlb2YgcilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcoZSl9KGUsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgdD90OlN0cmluZyh0KX0obj0idGFyZ2V0cyIpKWluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbix7dmFsdWU6cyxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbbl09cztjbGFzcyBjIGV4dGVuZHMgYS5Rcntjb25uZWN0KCl7fXN3aXRjaChlKXt0aGlzLnRvZ2dsZUFjdGl2ZUNsYXNzKCksdGhpcy5kaXNwbGF5UGFuZWwoKSx0aGlzLmRpc3BhdGNoKCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOmUucGFyYW1zLnZhbHVlfX0pfXRvZ2dsZUFjdGl2ZUNsYXNzKCl7dGhpcy50YWJUYXJnZXRzLmZvckVhY2goKGU9PntlLmNsYXNzTGlzdC50b2dnbGUoImlzLWFjdGl2ZSIsZT09PWV2ZW50LmN1cnJlbnRUYXJnZXQpfSkpfWRpc3BsYXlQYW5lbCgpe3RoaXMudGFiVGFyZ2V0cy5mb3JFYWNoKCgoZSx0KT0+e2NvbnN0IGk9dGhpcy5wYW5lbFRhcmdldHNbdF07ZS5jbGFzc0xpc3QuY29udGFpbnMoImlzLWFjdGl2ZSIpP2kuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6aS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0pKX19IWZ1bmN0aW9uKGUsdCxpKXsodD1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIGk9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWkpe3ZhciByPWkuY2FsbChlLHQpO2lmKCJvYmplY3QiIT10eXBlb2YgcilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcoZSl9KGUsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgdD90OlN0cmluZyh0KX0odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTppLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1pfShjLCJ0YXJnZXRzIixbInRhYiIsInBhbmVsIl0pO3ZhciB1PWkoNDE4KTtjbGFzcyBkIGV4dGVuZHMgYS5Rcnt0b2dnbGUoKXsoMCx1LlopKHRoaXMuYm9keVRhcmdldCx7ZHVyYXRpb246MzAwfSksdGhpcy5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImlzLW9wZW4iKX19IWZ1bmN0aW9uKGUsdCxpKXsodD1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIGk9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWkpe3ZhciByPWkuY2FsbChlLHQpO2lmKCJvYmplY3QiIT10eXBlb2YgcilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcoZSl9KGUsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgdD90OlN0cmluZyh0KX0odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTppLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1pfShkLCJ0YXJnZXRzIixbImJvZHkiXSk7Y2xhc3MgaCBleHRlbmRzIGEuUXJ7aW5pdGlhbGl6ZSgpe3RoaXMub3Blbj10aGlzLm9wZW4uYmluZCh0aGlzKX1jb25uZWN0KCl7dGhpcy50cmlnZ2VyVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLm9wZW4pfW9wZW4oKXtjb25zdCBlPXRoaXMuZHJvcGRvd25UYXJnZXQ7ZnVuY3Rpb24gdChpKXtlLmNvbnRhaW5zKGkudGFyZ2V0KXx8KCgwLG8uWnUpKGUsImRyb3Bkb3duIiksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0KSl9ZS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpJiYoZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSwoMCxvLklPKShlLCJkcm9wZG93biIpLHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0KX0pKSl9fSFmdW5jdGlvbihlLHQsaSl7KHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiBlO3ZhciBpPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1pKXt2YXIgcj1pLmNhbGwoZSx0KTtpZigib2JqZWN0IiE9dHlwZW9mIHIpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKGUpfShlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHQ/dDpTdHJpbmcodCl9KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6aSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09aX0oaCwidGFyZ2V0cyIsWyJ0cmlnZ2VyIiwiZHJvcGRvd24iXSk7dmFyIHA9aSg1MSk7Y2xhc3MgbSBleHRlbmRzIGEuUXJ7Y29ubmVjdCgpe2NvbnN0IGU9T2JqZWN0LmFzc2lnbih7fSx0aGlzLmRlZmF1bHRPcHRpb25zLHRoaXMub3B0aW9uc1ZhbHVlKTt0aGlzLnN3aXBlckluc3RhbmNlPW5ldyBwLlpQKHRoaXMuZWxlbWVudCxlKX1nZXQgZGVmYXVsdE9wdGlvbnMoKXtyZXR1cm57bW9kdWxlczpbcC5vTSxwLkxXLHAucHRdLGRpcmVjdGlvbjoiaG9yaXpvbnRhbCIsbG9vcDohMSxzY3JvbGxiYXI6e2VsOiIuc3dpcGVyLXNjcm9sbGJhciIsZHJhZ2dhYmxlOiEwfSxzbGlkZXNQZXJWaWV3OjUsY2VudGVySW5zdWZmaWNpZW50U2xpZGVzOiEwLGdyYWJDdXJzb3I6ITAscHJlbG9hZEltYWdlczohMSx3YXRjaFNsaWRlc1Zpc2liaWxpdHk6ITAscm91bmRMZW5ndGhzOiEwLGxhenk6e2NoZWNrSW5WaWV3OiEwfSxyZXNpc3RhbmNlUmF0aW86LjYsd2F0Y2hPdmVyZmxvdzohMH19fWZ1bmN0aW9uIHYoZSx0LGkpe3JldHVybih0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgaT1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09aSl7dmFyIHI9aS5jYWxsKGUsdCk7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyhlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOmksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPWksZX0hZnVuY3Rpb24oZSx0LGkpeyh0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgaT1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09aSl7dmFyIHI9aS5jYWxsKGUsdCk7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyhlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOmksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPWl9KG0sInZhbHVlcyIse29wdGlvbnM6T2JqZWN0fSk7Y2xhc3MgZyBleHRlbmRzIGEuUXJ7aW5pdGlhbGl6ZSgpe3RoaXMudGljaz10aGlzLnRpY2suYmluZCh0aGlzKSx0aGlzLnRpY2soKSx0aGlzLmludGVydmFsPXNldEludGVydmFsKHRoaXMudGljaywxZTMpfXRpY2soKXtjb25zdCBlPXRoaXMudGltZXN0YW1wVmFsdWUtRGF0ZS5ub3coKTtpZihlPDApcmV0dXJuIHZvaWQgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTtjb25zdCB0PU1hdGguZmxvb3IoZS84NjRlNSksaT1NYXRoLmZsb29yKGUlODY0ZTUvMzZlNSkscj1NYXRoLmZsb29yKGUlMzZlNS82ZTQpLG49TWF0aC5mbG9vcihlJTZlNC8xZTMpO3RoaXMuZGF5c1RhcmdldC50ZXh0Q29udGVudD10aGlzLnBhZCh0KSx0aGlzLmhvdXJzVGFyZ2V0LnRleHRDb250ZW50PXRoaXMucGFkKGkpLHRoaXMubWludXRlc1RhcmdldC50ZXh0Q29udGVudD10aGlzLnBhZChyKSx0aGlzLnNlY29uZHNUYXJnZXQudGV4dENvbnRlbnQ9dGhpcy5wYWQobil9cGFkKGUpe3JldHVybiBTdHJpbmcoZSkucGFkU3RhcnQoMiwiMCIpfX12KGcsInRhcmdldHMiLFsiZGF5cyIsImhvdXJzIiwibWludXRlcyIsInNlY29uZHMiXSksdihnLCJ2YWx1ZXMiLHt0aW1lc3RhbXA6TnVtYmVyfSk7Y2xhc3MgZiBleHRlbmRzIGEuUXJ7Y3JlYXRlUG9wdXAoZSl7Y29uc3QgdD12b2lkIDAhPT13aW5kb3cuc2NyZWVuTGVmdD93aW5kb3cuc2NyZWVuTGVmdDp3aW5kb3cuc2NyZWVuWCxpPXZvaWQgMCE9PXdpbmRvdy5zY3JlZW5Ub3A/d2luZG93LnNjcmVlblRvcDp3aW5kb3cuc2NyZWVuWSxyPXdpbmRvdy5pbm5lcldpZHRoP3dpbmRvdy5pbm5lcldpZHRoOmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aD9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg6c2NyZWVuLndpZHRoLG49d2luZG93LmlubmVySGVpZ2h0P3dpbmRvdy5pbm5lckhlaWdodDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0P2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ6c2NyZWVuLmhlaWdodCxzPXIvd2luZG93LnNjcmVlbi5hdmFpbFdpZHRoLGE9KHItNjAwKS8yL3MrdCxvPShuLTQwMCkvMi9zK2ksbD13aW5kb3cub3BlbihlLCIiLGBcbiAgICAgICAgc2Nyb2xsYmFycz15ZXMsXG4gICAgICAgIHdpZHRoPSR7NjAwL3N9LCBcbiAgICAgICAgaGVpZ2h0PSR7NDAwL3N9LCBcbiAgICAgICAgdG9wPSR7b30sIFxuICAgICAgICBsZWZ0PSR7YX1cbiAgICAgICAgYCk7d2luZG93LmZvY3VzJiZsLmZvY3VzKCl9c2hhcmVQYWdlKGUpe2xldHtwYXJhbXM6dH09ZTtjb25zdCBpPWVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24ub3JpZ2luK3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7c3dpdGNoKHQubmV0d29yayl7Y2FzZSJmYWNlYm9vayI6dGhpcy5jcmVhdGVQb3B1cChgaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3NoYXJlci9zaGFyZXIucGhwP3U9JHtpfWApO2JyZWFrO2Nhc2UidHdpdHRlciI6dGhpcy5jcmVhdGVQb3B1cChgaHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQ/dXJsPSR7aX1gKX19fWNsYXNzIHkgZXh0ZW5kcyBhLlFye2Nvbm5lY3QoKXtjb25zdCBlPXRoaXMuZWxlbWVudDtlLnN0eWxlLnNldFByb3BlcnR5KCItLXZhbHVlIixlLnZhbHVlKSxlLnN0eWxlLnNldFByb3BlcnR5KCItLW1pbiIsZS5taW58fCIwIiksZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1tYXgiLGUubWF4fHwiMTAwIiksZS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCgpPT5lLnN0eWxlLnNldFByb3BlcnR5KCItLXZhbHVlIixlLnZhbHVlKSkpfX12YXIgYj1pKDQ2Nik7Y2xhc3MgdyBleHRlbmRzIGEuUXJ7Y29ubmVjdCgpe3RoaXMuc2xpbXNlbGVjdD1uZXcgYi5aKHtzZWxlY3Q6dGhpcy5lbGVtZW50LHNob3dTZWFyY2g6ITEsaGlkZVNlbGVjdGVkT3B0aW9uOiEwLG9uQ2hhbmdlOmU9Pnt0aGlzLmRpc3BhdGNoKCJjaGFuZ2UiLHtkZXRhaWw6ZX0pfSwuLi50aGlzLm9wdGlvbnNWYWx1ZX0pfWRpc2Nvbm5lY3QoKXt0aGlzLnNsaW1zZWxlY3QuZGVzdHJveSgpfX0hZnVuY3Rpb24oZSx0LGkpeyh0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgaT1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09aSl7dmFyIHI9aS5jYWxsKGUsdCk7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyhlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOmksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPWl9KHcsInZhbHVlcyIse29wdGlvbnM6T2JqZWN0fSk7dmFyIFA9aSgxMzEpO2Z1bmN0aW9uIF8oZSl7bGV0IHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O3JldHVybihlPU51bWJlcihlKSkudG9Mb2NhbGVTdHJpbmcoImVuIix0KX1mdW5jdGlvbiBTKGUpe2xldCB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm5gJHtfKGUse21pbmltdW1GcmFjdGlvbkRpZ2l0czoyLG1heGltdW1GcmFjdGlvbkRpZ2l0czoyLC4uLnR9KX3CoFVTRGB9ZnVuY3Rpb24geChlLHQsaSl7cmV0dXJuKHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiBlO3ZhciBpPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1pKXt2YXIgcj1pLmNhbGwoZSx0KTtpZigib2JqZWN0IiE9dHlwZW9mIHIpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKGUpfShlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHQ/dDpTdHJpbmcodCl9KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6aSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09aSxlfWNsYXNzIFQgZXh0ZW5kcyBhLlFye2Nvbm5lY3QoKXt0aGlzLmluaXRDdXJyZW5jeVNlbGVjdCgpLHRoaXMuaW5pdEFtb3VudElucHV0KCksdGhpcy5pbml0UGVyaW9kSW5wdXQoKSx0aGlzLnNldFZpc3VhbCgpLHRoaXMuY2FsY3VsYXRlKCl9aW5pdEN1cnJlbmN5U2VsZWN0KCl7Y29uc3QgZT10aGlzLnBhcmFtc1ZhbHVlLm1hcCgoZT0+e2NvbnN0IHQ9IlBFUEUiPT09ZS5jaWQ/InBuZyI6InN2ZyI7cmV0dXJue3RleHQ6ZS5uYW1lLHZhbHVlOmUuY2lkLGlubmVySFRNTDpgPGltZyBzcmM9Ii9pbWcvY3J5cHRvLyR7ZS5jaWR9LiR7dH0iIGNsYXNzPSJzcy1vcHRpb24taWNvbiIgYWx0PSIiPjxzcGFuPiR7ZS5uYW1lfTwvc3Bhbj48c3BhbiBjbGFzcz0ibWwtYXV0byB0ZXh0LXNlY29uZGFyeSI+JHtlLmVzdEFweX0lPC9zcGFuPmB9fSkpO3RoaXMuY3VycmVuY3lTZWxlY3Q9bmV3IGIuWih7c2VsZWN0OnRoaXMuY3VycmVuY3lUYXJnZXQsZGF0YTplLHNob3dTZWFyY2g6ITEsaGlkZVNlbGVjdGVkT3B0aW9uOiEwLG9uQ2hhbmdlOmU9Pnt0aGlzLmNhbGN1bGF0ZSgpfX0pfWluaXRBbW91bnRJbnB1dCgpe3RoaXMuYW1vdW50SW5wdXQ9KDAsUC5aUCkodGhpcy5hbW91bnRUYXJnZXQse21hc2s6TnVtYmVyLHNjYWxlOjIsc2lnbmVkOiExLHRob3VzYW5kc1NlcGFyYXRvcjoiLCIscGFkRnJhY3Rpb25hbFplcm9zOiEwLG5vcm1hbGl6ZVplcm9zOiEwLHJhZGl4OiIuIixtYXBUb1JhZGl4OlsiLCIsIi4iXSxtaW46MH0pLHRoaXMuYW1vdW50SW5wdXQub24oImFjY2VwdCIsdGhpcy5jYWxjdWxhdGUuYmluZCh0aGlzKSl9aW5pdFBlcmlvZElucHV0KCl7dGhpcy5wZXJpb2RUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLChlPT57dGhpcy5tb250aHNUYXJnZXQudGV4dENvbnRlbnQ9ZS50YXJnZXQudmFsdWUsdGhpcy5zZXRWaXN1YWwoKSx0aGlzLmNhbGN1bGF0ZSgpfSkpfXNldFZpc3VhbCgpe3RoaXMudmlzdWFsVGFyZ2V0LnN0eWxlLndpZHRoPXRoaXMucGVyaW9kVGFyZ2V0LnZhbHVlL3RoaXMucGVyaW9kVGFyZ2V0Lm1heCoxMDArIiUifWNhbGN1bGF0ZSgpe2NvbnN0IGU9dGhpcy5jdXJyZW5jeVNlbGVjdC5zZWxlY3RlZCgpLHQ9TnVtYmVyKHRoaXMuYW1vdW50SW5wdXQudW5tYXNrZWRWYWx1ZSksaT1OdW1iZXIodGhpcy5wZXJpb2RUYXJnZXQudmFsdWUpLHI9dCp0aGlzLnBhcmFtc1ZhbHVlLmZpbmQoKHQ9PnQuY2lkPT09ZSkpLnN0YWtlUGVyY2VudERhaWx5LzEwMCppKjMwO3RoaXMucmVzdWx0VGFyZ2V0LnRleHRDb250ZW50PVMocil9fXgoVCwidGFyZ2V0cyIsWyJjdXJyZW5jeSIsImFtb3VudCIsInBlcmlvZCIsIm1vbnRocyIsInJlc3VsdCIsInZpc3VhbCJdKSx4KFQsInZhbHVlcyIse3BhcmFtczpBcnJheX0pO2Z1bmN0aW9uIGooZSx0LGkpe3JldHVybih0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgaT1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09aSl7dmFyIHI9aS5jYWxsKGUsdCk7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyhlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOmksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPWksZX1jbGFzcyBFIGV4dGVuZHMgYS5Rcntjb25uZWN0KCl7dGhpcy5pbml0Q3VycmVuY3lTZWxlY3QoKSx0aGlzLmluaXRBbW91bnRJbnB1dHMoKSx0aGlzLmluaXRQZXJpb2RJbnB1dCgpLHRoaXMuc2V0VmlzdWFsKCksdGhpcy5jYWxjdWxhdGUoKX1nZXQgcGFyYW1zKCl7cmV0dXJuIHRoaXMucGFyYW1zVmFsdWUuZmluZCgoZT0+ZS5jaWQ9PT10aGlzLmN1cnJlbmN5U2VsZWN0LnNlbGVjdGVkKCkpKX1nZXQgc2VsZWN0ZWRDaWQoKXtyZXR1cm4gdGhpcy5jdXJyZW5jeVNlbGVjdC5zZWxlY3RlZCgpfWdldCBhbW91bnRWYWx1ZSgpe3JldHVybiBOdW1iZXIodGhpcy5hbW91bnRJbnB1dC51bm1hc2tlZFZhbHVlKX1nZXQgYW1vdW50RXh0cmFWYWx1ZSgpe3JldHVybiBOdW1iZXIodGhpcy5hbW91bnRFeHRyYUlucHV0LnVubWFza2VkVmFsdWUpfWdldCBjb252ZXJ0ZWRFeHRyYSgpe3JldHVybiBOdW1iZXIodGhpcy5hbW91bnRJbnB1dC51bm1hc2tlZFZhbHVlKS8xfWdldCBwZXJpb2QoKXtyZXR1cm4gTnVtYmVyKHRoaXMucGVyaW9kVGFyZ2V0LnZhbHVlKX1nZXQgZGFpbHlQZXJjZW50KCl7cmV0dXJuIHRoaXMucGVyaW9kPT09dGhpcy5wYXJhbXMubWF4Q291bnREYXlzP051bWJlcih0aGlzLnBhcmFtcy5wZXJjZW50RGFpbHlNYXgpOk51bWJlcih0aGlzLnBhcmFtcy5wZXJjZW50RGFpbHlNaW4pfWdldCBkYWlseVBlcmNlbnRXaXRoRXh0cmEoKXtjb25zdCBlPXRoaXMuYW1vdW50RXh0cmFWYWx1ZS90aGlzLmNvbnZlcnRlZEV4dHJhKjEwMCp0aGlzLmV4dHJhUGVyY2VudFZhbHVlO3JldHVybiB0aGlzLmRhaWx5UGVyY2VudCtlfWluaXRDdXJyZW5jeVNlbGVjdCgpe2NvbnN0IGU9dGhpcy5wYXJhbXNWYWx1ZS5tYXAoKGU9Pntjb25zdCB0PSJQRVBFIj09PWUuY2lkPyJwbmciOiJzdmciO3JldHVybnt0ZXh0OmUuY2lkTmFtZSx2YWx1ZTplLmNpZCxpbm5lckhUTUw6YDxpbWcgc3JjPSIvaW1nL2NyeXB0by8ke2UuY2lkfS4ke3R9IiBjbGFzcz0ic3Mtb3B0aW9uLWljb24iIGFsdD0iIj48c3Bhbj4ke2UuY2lkTmFtZX08L3NwYW4+PHNwYW4gY2xhc3M9Im1sLWF1dG8gdGV4dC1zZWNvbmRhcnkiPiR7ZS5lc3RBcHlNYXh9JTwvc3Bhbj5gfX0pKTt0aGlzLmN1cnJlbmN5U2VsZWN0PW5ldyBiLlooe3NlbGVjdDp0aGlzLmN1cnJlbmN5VGFyZ2V0LGRhdGE6ZSxzaG93U2VhcmNoOiExLGhpZGVTZWxlY3RlZE9wdGlvbjohMCxvbkNoYW5nZTplPT57dGhpcy5jYWxjdWxhdGUoKX19KX1pbml0QW1vdW50SW5wdXRzKCl7dGhpcy5hbW91bnRJbnB1dD0oMCxQLlpQKSh0aGlzLmFtb3VudFRhcmdldCx7bWFzazpOdW1iZXIsc2NhbGU6MixzaWduZWQ6ITEsdGhvdXNhbmRzU2VwYXJhdG9yOiIsIixwYWRGcmFjdGlvbmFsWmVyb3M6ITAsbm9ybWFsaXplWmVyb3M6ITAscmFkaXg6Ii4iLG1hcFRvUmFkaXg6WyIsIiwiLiJdLG1pbjowfSksdGhpcy5hbW91bnRFeHRyYUlucHV0PSgwLFAuWlApKHRoaXMuYW1vdW50RXh0cmFUYXJnZXQse21hc2s6TnVtYmVyLHNjYWxlOjIsc2lnbmVkOiExLHRob3VzYW5kc1NlcGFyYXRvcjoiLCIscGFkRnJhY3Rpb25hbFplcm9zOiEwLG5vcm1hbGl6ZVplcm9zOiEwLHJhZGl4OiIuIixtYXBUb1JhZGl4OlsiLCIsIi4iXSxtaW46MCxhdXRvZml4OiJwYWQifSksdGhpcy5hbW91bnRJbnB1dC5vbigiYWNjZXB0IiwoKCk9Pnt0aGlzLmNhbGN1bGF0ZSgpfSkpLHRoaXMuYW1vdW50RXh0cmFJbnB1dC5vbigiYWNjZXB0IiwoKCk9Pnt0aGlzLmFtb3VudEV4dHJhVmFsdWU+dGhpcy5hbW91bnRWYWx1ZSYmKHRoaXMuYW1vdW50RXh0cmFJbnB1dC52YWx1ZT1TdHJpbmcodGhpcy5hbW91bnRWYWx1ZSkpLHRoaXMuY2FsY3VsYXRlKCl9KSl9aW5pdFBlcmlvZElucHV0KCl7dGhpcy5wZXJpb2RUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLChlPT57dGhpcy5kYXlzVGFyZ2V0LnRleHRDb250ZW50PWUudGFyZ2V0LnZhbHVlLHRoaXMuc2V0VmlzdWFsKCksdGhpcy5jYWxjdWxhdGUoKX0pKX1zZXRWaXN1YWwoKXt0aGlzLnZpc3VhbFRhcmdldC5zdHlsZS53aWR0aD0odGhpcy5wZXJpb2QtdGhpcy5wZXJpb2RUYXJnZXQubWluKS8odGhpcy5wZXJpb2RUYXJnZXQubWF4LXRoaXMucGVyaW9kVGFyZ2V0Lm1pbikqMTAwKyIlIn1jYWxjdWxhdGUoKXtjb25zdCBlPXRoaXMuYW1vdW50VmFsdWUsdD0oKGUsdCxpKT0+e2NvbnN0IHI9e2VzdEFQWTowLHRvdGFsUHJvZml0OjB9O2ZvcihsZXQgbj0wO248PXQtMTtuKyspe2NvbnN0IHQ9ZSppO3IuZXN0QVBZPXIuZXN0QVBZK2ksci50b3RhbFByb2ZpdD1yLnRvdGFsUHJvZml0K3R9cmV0dXJuIHIuZXN0QVBZPTEwMCpyLmVzdEFQWSxyfSkoZSx0aGlzLnBlcmlvZCx0aGlzLmRhaWx5UGVyY2VudFdpdGhFeHRyYS8xMDApLnRvdGFsUHJvZml0O3RoaXMucmVzdWx0VGFyZ2V0LnRleHRDb250ZW50PVModCtlKX19aihFLCJ0YXJnZXRzIixbImN1cnJlbmN5IiwiYW1vdW50IiwiYW1vdW50RXh0cmEiLCJwZXJpb2QiLCJkYXlzIiwicmVzdWx0IiwidmlzdWFsIl0pLGooRSwidmFsdWVzIix7cGFyYW1zOkFycmF5LGV4dHJhUGVyY2VudDpOdW1iZXJ9KTt2YXIgaz1pKDcyMSksQz1pKDkyNyksJD1pLm4oQyksTz1pKDQ3OCksVj0oZSx0KT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKih0LWUpKStlO2Z1bmN0aW9uIEEoZSx0LGkpe3JldHVybih0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgaT1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09aSl7dmFyIHI9aS5jYWxsKGUsdCk7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyhlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOmksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPWksZX1jbGFzcyBMIGV4dGVuZHMgYS5Rcntjb25uZWN0KCl7dGhpcy5pbml0UmVxdWVzdERhdGEoKSx0aGlzLmJ1eUFuaW1hdGU9KDAsTy5aUCkodGhpcy5idXlUYXJnZXQse2Rpc3Jlc3BlY3RVc2VyTW90aW9uUHJlZmVyZW5jZTohMH0pLHRoaXMuc2VsbEFuaW1hdGU9KDAsTy5aUCkodGhpcy5zZWxsVGFyZ2V0LHtkaXNyZXNwZWN0VXNlck1vdGlvblByZWZlcmVuY2U6ITB9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwoKCk9PnsidmlzaWJsZSI9PT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU/KHRoaXMuYnV5QW5pbWF0ZS5lbmFibGUoKSx0aGlzLnNlbGxBbmltYXRlLmVuYWJsZSgpKToodGhpcy5idXlBbmltYXRlLmRpc2FibGUoKSx0aGlzLnNlbGxBbmltYXRlLmRpc2FibGUoKSl9KSl9aW5pdFJlcXVlc3REYXRhKCl7Y29uc3QgZT10aGlzO3NldFRpbWVvdXQoKGZ1bmN0aW9uIHQoKXtrLlpQLmdldCgic2l0ZS9wcmljZS1jdXJyZW5jeSIpLnRoZW4oKHQ9PntlLm5ld0RhdGE9dC5kYXRhLmRhdGEucmVzdWx0LGUudXBkYXRlRGF0YSgpfSkpLmNhdGNoKChlPT5jb25zb2xlLmVycm9yKGUpKSkuZmluYWxseSgoKCk9PnNldFRpbWVvdXQodCxWKDNlMywxZTQpKSkpfSksVigzZTMsMWU0KSl9dXBkYXRlRGF0YSgpe3RoaXMudXBkYXRlQ2lkKCksdGhpcy51cGRhdGVDaGFydERhdGEoKSx0aGlzLnVwZGF0ZVdyYXBwZWQoKSx0aGlzLnVwZGF0ZUJ1eSgpLHRoaXMudXBkYXRlU2VsbCgpfXVwZGF0ZVdyYXBwZWQoKXtPYmplY3QuZW50cmllcyh0aGlzLm5ld0RhdGEuY2lkV3JhcHBlZCkuZm9yRWFjaCgoZT0+e2xldFt0LGldPWUscj0iIjtpLmZvckVhY2goKGU9PntyKz1gXG4gICAgICAgIDxkaXYgY2xhc3M9Im9wLXJhdGVfX2l0ZW0iPlxuICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2V4cGxvcmVycy8ke2Uuc2lzdGVtU2x1Z30uc3ZnIiBhbHQ9IiIgbG9hZGluZz0iZWFnZXIiIHdpZHRoPSIzMiJcbiAgICAgICAgICAgIGhlaWdodD0iMzIiIGNsYXNzPSJvcC1yYXRlX19jdXJyZW5jeSI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wLXJhdGVfX25hbWUiPiR7ZS5uYW1lfSAke2UubmFtZUFkZGl0aW9ufTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3AtcmF0ZV9fdGl0bGUiPiR7ZS50aXRsZX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPSJvcC1yYXRlX192YWx1ZSAke2Uudm9sdW1lMjREZWx0YVVzZD4wPyJpcy11cCI6ImlzLWRvd24ifSI+XG4gICAgICAgICAgICAkJHtlLnByaWNlVXNkfVxuICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiBvcC1yYXRlX192YWx1ZS1pY29uIj5cbiAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1hcnJvdy1kb3duIj48L3VzZT5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgYH0pKSx0aGlzLndyYXBwZWRUYXJnZXRzLmZpbmQoKGU9PmUuZGF0YXNldC5jaWQ9PT10KSkuaW5uZXJIVE1MPXJ9KSl9dXBkYXRlQnV5KCl7bGV0IGU9IiI7dGhpcy5uZXdEYXRhLm9wZXJhdGlvbldyYXBwZWQuYnV5LmZvckVhY2goKHQ9PntlKz1gXG4gICAgICA8ZGl2IGNsYXNzPSJidXktb3JkZXIiPlxuICAgICAgICA8ZGl2IGNsYXNzPSJidXktb3JkZXJfX2l0ZW0iPlxuICAgICAgICAgIDxpbWcgc3JjPSIvaW1nL2NyeXB0by9VU0RULnN2ZyIgY2xhc3M9ImJ1eS1vcmRlcl9fY3VycmVuY3kiIGFsdD0iIiBsb2FkaW5nPSJsYXp5IiB3aWR0aD0iMzIiXG4gICAgICAgICAgICBoZWlnaHQ9IjMyIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPSJidXktb3JkZXJfX2JvZHkiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV5LW9yZGVyX192YWx1ZSI+JHt0LnByaWNlVXNkfTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV5LW9yZGVyX19sYWJlbCI+JHt0LnNpc3RlbX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzdmcgY2xhc3M9Imljb24gYnV5LW9yZGVyX19hcnIiPlxuICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtYXJyb3ctcmlnaHQiPjwvdXNlPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPGRpdiBjbGFzcz0iYnV5LW9yZGVyX19pdGVtIj5cbiAgICAgICAgICA8aW1nIHNyYz0iL2ltZy9leHBsb3JlcnMvJHt0LnNpc3RlbVNsdWd9LnN2ZyIgY2xhc3M9ImJ1eS1vcmRlcl9fY3VycmVuY3kiIGFsdD0iIlxuICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPSJidXktb3JkZXJfX2JvZHkiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV5LW9yZGVyX192YWx1ZSI+JHt0LndyYXBwZWRDaWR9PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPSJidXktb3JkZXJfX2xhYmVsIj4ke3Quc2lzdGVtfTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgYH0pKSx0aGlzLmJ1eVRhcmdldC5pbnNlcnRBZGphY2VudEhUTUwoImFmdGVyYmVnaW4iLGUpLHRoaXMuYnV5VGFyZ2V0LnJlbW92ZUNoaWxkKHRoaXMuYnV5VGFyZ2V0Lmxhc3RFbGVtZW50Q2hpbGQpfXVwZGF0ZVNlbGwoKXtsZXQgZT0iIjt0aGlzLm5ld0RhdGEub3BlcmF0aW9uV3JhcHBlZC5zZWxsLmZvckVhY2goKHQ9PntlKz1gXG4gICAgICA8ZGl2IGNsYXNzPSJzZWxsLW9yZGVyIj5cbiAgICAgICAgPGRpdiBjbGFzcz0ic2VsbC1vcmRlcl9faXRlbSI+XG4gICAgICAgICAgPGltZyBzcmM9Ii9pbWcvZXhwbG9yZXJzLyR7dC5zaXN0ZW1TbHVnfS5zdmciIGNsYXNzPSJzZWxsLW9yZGVyX19jdXJyZW5jeSIgYWx0PSIiXG4gICAgICAgICAgICBsb2FkaW5nPSJsYXp5IiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9InNlbGwtb3JkZXJfX2JvZHkiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VsbC1vcmRlcl9fdmFsdWUiPiR7dC53cmFwcGVkQ2lkfTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VsbC1vcmRlcl9fbGFiZWwiPiR7dC5zaXN0ZW19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPSJzZWxsLW9yZGVyX19pdGVtIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWxsLW9yZGVyX19ib2R5Ij5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlbGwtb3JkZXJfX3ZhbHVlIj4ke3QucHJpY2VVc2R9PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWxsLW9yZGVyX19sYWJlbCI+PSAxICR7dC53cmFwcGVkQ2lkfTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj4gICAgICAgIFxuICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIHNlbGwtb3JkZXJfX2FyciI+XG4gICAgICAgICAgPHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1hcnJvdy1yaWdodCI+PC91c2U+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgICA8ZGl2IGNsYXNzPSJzZWxsLW9yZGVyX19pdGVtIj5cbiAgICAgICAgICA8aW1nIHNyYz0iL2ltZy9jcnlwdG8vVVNEVC5zdmciIGNsYXNzPSJzZWxsLW9yZGVyX19jdXJyZW5jeSIgYWx0PSIiIGxvYWRpbmc9ImxhenkiIHdpZHRoPSIzMiJcbiAgICAgICAgICAgIGhlaWdodD0iMzIiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9InNlbGwtb3JkZXJfX2JvZHkiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VsbC1vcmRlcl9fdmFsdWUgdGV4dC1zZWNvbmRhcnkiPiR7dC5wcm9maXR9PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWxsLW9yZGVyX19sYWJlbCI+UHJvZml0PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICBgfSkpLHRoaXMuc2VsbFRhcmdldC5pbnNlcnRBZGphY2VudEhUTUwoImFmdGVyYmVnaW4iLGUpLHRoaXMuc2VsbFRhcmdldC5yZW1vdmVDaGlsZCh0aGlzLnNlbGxUYXJnZXQubGFzdEVsZW1lbnRDaGlsZCl9b25DdXJyZW5jeUNoYW5nZShlKXtsZXR7ZGV0YWlsOnt2YWx1ZTp0fX09ZTt0aGlzLmNpZFZhbHVlPXR9Y2lkVmFsdWVDaGFuZ2VkKCl7dGhpcy5jaGFydHx8dGhpcy5yZW5kZXJDaGFydCgpLHRoaXMudXBkYXRlQ2hhcnREYXRhKCksdGhpcy50b2dnbGVDaWQoKX1yZW5kZXJDaGFydCgpe3RoaXMuY2hhcnQ9bmV3KCQoKSkodGhpcy5jaGFydFRhcmdldCx0aGlzLmNoYXJ0T3B0aW9ucyksdGhpcy5jaGFydC5yZW5kZXIoKX11cGRhdGVDaGFydERhdGEoKXtjb25zdCBlPSh0aGlzPy5uZXdEYXRhPy5oaXN0b3J5fHx0aGlzLmhpc3RvcnlWYWx1ZSlbdGhpcy5jaWRWYWx1ZV0ubWFwKChlPT4oe3g6bmV3IERhdGUoMWUzKmVbMF0pLHk6Wy4uLmUuc2xpY2UoMSldfSkpKTt0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoe3Nlcmllczpbe2RhdGE6ZX1dfSwhMSksdGhpcy5hZGRBbm5vdGF0aW9uKCl9YWRkQW5ub3RhdGlvbigpe2NvbnN0IGU9dGhpcy5jaGFydC53LmNvbmZpZy5zZXJpZXNbMF0uZGF0YSx0PXRoaXMuY2hhcnQudy5nbG9iYWxzLm1pblksaT10aGlzLmNoYXJ0LncuZ2xvYmFscy5tYXhZLHI9ZVtlLmxlbmd0aC0xXS55WzNdLG49KHItdCkvKGktdCkqMTAwO3RoaXMuYW5ub3RhdGlvblRhcmdldC50ZXh0Q29udGVudD1yLHRoaXMuYW5ub3RhdGlvblRhcmdldC5zdHlsZS5ib3R0b209YCR7bn0lYCx0aGlzLmFubm90YXRpb25UYXJnZXQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9dG9nZ2xlQ2lkKCl7dGhpcy5jaWRUYXJnZXRzLmZvckVhY2goKGU9PntlLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsZS5kYXRhc2V0LmNpZCE9PXRoaXMuY2lkVmFsdWUpfSkpfXVwZGF0ZUNpZCgpe2xldCBlPSIiO09iamVjdC5lbnRyaWVzKHRoaXMubmV3RGF0YS5jaWQpLmZvckVhY2goKHQ9PntsZXRbaSxyXT10O2UrPWBcbiAgICAgIDxkaXYgZGF0YS1jaWQ9IiR7aX0iIGRhdGEtbWF0cml4LXRhcmdldD0iY2lkIj5cbiAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1wcmltYXJ5LWg0IGZvbnQtYmxhY2sgbWItOCI+JHsiQlRDIj09PWk/IkJpdGNvaW4iOiJFdGhlcmV1bSJ9IOKAkyBVU0RUPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9InRleHQtcHJpbWFyeS1oNSI+XG4gICAgICAgICAgPHNwYW4+JHtyLnByaWNlfTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz0ibWwtMzIgJHtyLnBlcmNlbnRfY2hhbmdlXzI0aD4wPyJ0ZXh0LXNlY29uZGFyeSI6InRleHQtZGFuZ2VyIn0iPlxuICAgICAgICAgICAgJHtyLnBlcmNlbnRfY2hhbmdlXzI0aD4wPyIrIjoiIn0ke3IucGVyY2VudF9jaGFuZ2VfMjRofSVcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICBgfSkpLHRoaXMucmF0ZVRhcmdldC5pbm5lckhUTUw9ZSx0aGlzLnRvZ2dsZUNpZCgpfWdldCBjaGFydE9wdGlvbnMoKXtyZXR1cm57c2VyaWVzOltdLGNoYXJ0Ont0eXBlOiJjYW5kbGVzdGljayIsaGVpZ2h0OjQwMCxmb250RmFtaWx5OiJ2YXIoLS1mb250LWJvZHkpIixmb3JlQ29sb3I6InZhcigtLWNvbG9yLWRhcmspIixzZWxlY3Rpb246e2VuYWJsZWQ6ITF9LHRvb2xiYXI6e3Nob3c6ITF9LHpvb206e2VuYWJsZWQ6ITF9fSxncmlkOntib3JkZXJDb2xvcjoiI2VhZWFlYiIsc3Ryb2tlRGFzaEFycmF5OjcseWF4aXM6e2xpbmVzOntzaG93OiEwfX0scGFkZGluZzp7bGVmdDotMTB9fSx4YXhpczp7dHlwZToiZGF0ZXRpbWUiLHRvb2x0aXA6e2VuYWJsZWQ6ITF9LGF4aXNCb3JkZXI6e3Nob3c6ITF9LGF4aXNUaWNrczp7c2hvdzohMX0sbGFiZWxzOntvZmZzZXRZOjQsb2Zmc2V0WDotOH0sY3Jvc3NoYWlyczp7c3Ryb2tlOntjb2xvcjoiI2VhZWFlYiIsd2lkdGg6MSxkYXNoQXJyYXk6MH19fSx5YXhpczp7ZGVjaW1hbHNJbkZsb2F0OjAsdG9vbHRpcDp7ZW5hYmxlZDohMX0sbGFiZWxzOntvZmZzZXRYOi04LGFsaWduOiJyaWdodCJ9LG9wcG9zaXRlOiEwfSxwbG90T3B0aW9uczp7Y2FuZGxlc3RpY2s6e2NvbG9yczp7dXB3YXJkOiIjMDliZThiIixkb3dud2FyZDoiI2ZiNGU0ZSJ9fX0sc3RhdGVzOntob3Zlcjp7ZmlsdGVyOnt0eXBlOiJub25lIix2YWx1ZTowfX19fX19QShMLCJ0YXJnZXRzIixbImNoYXJ0IiwiYW5ub3RhdGlvbiIsImNpZCIsInJhdGUiLCJ3cmFwcGVkIiwiYnV5Iiwic2VsbCJdKSxBKEwsInZhbHVlcyIse2NpZDpTdHJpbmcsaGlzdG9yeTpPYmplY3R9KTt2YXIgST1pKDY4NSksRD1pKDY4OSk7Y2xhc3MgTSBleHRlbmRzIGEuUXJ7Y29ubmVjdCgpe3RoaXMubm90eWY9bmV3IEkuSXEoe2R1cmF0aW9uOjRlMyxyaXBwbGU6ITEscG9zaXRpb246e3g6InJpZ2h0Iix5OiJ0b3AifX0pfXN1Ym1pdEZvcm0oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHQ9T2JqZWN0LmZyb21FbnRyaWVzKG5ldyBGb3JtRGF0YSh0aGlzLmZvcm1UYXJnZXQpKTt0aGlzLnN1Ym1pdFRhcmdldC5kaXNhYmxlZD0hMCwoMCxrLlpQKSh7bWV0aG9kOnRoaXMuZm9ybVRhcmdldC5tZXRob2QsdXJsOnRoaXMuZm9ybVRhcmdldC5hY3Rpb24sZGF0YTp0LGhlYWRlcnM6eyJ4LWNsaWVudCI6IndlYiJ9fSkudGhlbigoZT0+e3RoaXMubm90eWYuc3VjY2VzcygiWW91ciByZXF1ZXN0IGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBzZW50IiksRC5LUi5jbG9zZSgpfSkpLmNhdGNoKChlPT57ZS5yZXNwb25zZSYmNDAxPT09ZS5yZXNwb25zZS5zdGF0dXM/dGhpcy5ub3R5Zi5lcnJvcigiUGxlYXNlIGxvZ2luIHRvIGNvbnRpbnVlIik6dGhpcy5ub3R5Zi5lcnJvcigiU29tZXRoaW5nIHdlbnQgd3JvbmciKX0pKS5maW5hbGx5KCgoKT0+e3RoaXMuc3VibWl0VGFyZ2V0LmRpc2FibGVkPSExfSkpfX1mdW5jdGlvbiBOKGUsdCxpKXtyZXR1cm4odD1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIGk9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWkpe3ZhciByPWkuY2FsbChlLHQpO2lmKCJvYmplY3QiIT10eXBlb2YgcilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcoZSl9KGUsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgdD90OlN0cmluZyh0KX0odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTppLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1pLGV9IWZ1bmN0aW9uKGUsdCxpKXsodD1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIGk9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWkpe3ZhciByPWkuY2FsbChlLHQpO2lmKCJvYmplY3QiIT10eXBlb2YgcilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcoZSl9KGUsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgdD90OlN0cmluZyh0KX0odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTppLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1pfShNLCJ0YXJnZXRzIixbImZvcm0iLCJzdWJtaXQiXSk7Y2xhc3MgWiBleHRlbmRzIGEuUXJ7aW5pdGlhbGl6ZSgpe2Zvcih0aGlzLl92aWRlb3M9dGhpcy52aWRlb3NWYWx1ZSx0aGlzLl9jaHVua3M9W107dGhpcy5fdmlkZW9zLmxlbmd0aD4wOyl0aGlzLl9jaHVua3MucHVzaCh0aGlzLl92aWRlb3Muc3BsaWNlKDAsdGhpcy5wYWdlU2l6ZVZhbHVlKSl9Z2V0IHZpZGVvc0NvdW50KCl7cmV0dXJuIHRoaXMueXRWaWRlb3NUYXJnZXQucXVlcnlTZWxlY3RvckFsbCgiaWZyYW1lIikubGVuZ3RofWNoZWNrTG9hZGVkVmlkZW9zKCl7dGhpcy52aWRlb3NDb3VudD09PXRoaXMudmlkZW9zQ291bnRWYWx1ZSYmKHRoaXMuc2hvd01vcmVUYXJnZXQucGFyZW50RWxlbWVudC5oaWRkZW49ITApfWN1cnJlbnRQYWdlVmFsdWVDaGFuZ2VkKGUpe2NvbnN0IHQ9dGhpcy5fY2h1bmtzW2VdLm1hcCgoZT0+YFxuICAgICAgICAgIDxpZnJhbWUgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke2V9IiB0aXRsZT0iWW91VHViZSB2aWRlbyBwbGF5ZXIiIGZyYW1lYm9yZGVyPSIwIlxuICAgICAgICAgIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlOyB3ZWItc2hhcmUiXG4gICAgICAgICAgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPlxuICAgICAgICBgKSkuam9pbigiIik7dGhpcy55dFZpZGVvc1RhcmdldC5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsdCksdGhpcy5jaGVja0xvYWRlZFZpZGVvcygpfXNob3dNb3JlSGFuZGxlcigpe3RoaXMuY3VycmVudFBhZ2VWYWx1ZT10aGlzLmN1cnJlbnRQYWdlVmFsdWUrPTF9fU4oWiwidGFyZ2V0cyIsWyJzaG93TW9yZSIsInl0VmlkZW9zIl0pLE4oWiwidmFsdWVzIix7cGFnZVNpemU6TnVtYmVyLHZpZGVvc0NvdW50Ok51bWJlcixjdXJyZW50UGFnZTpOdW1iZXIsdmlkZW9zOkFycmF5fSk7Y2xhc3MgUSBleHRlbmRzIGEuUXJ7c3dpdGNoKGUpe2NvbnN0IHQ9ZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXQubGFuZzt0aGlzLnZhbHVlVGFyZ2V0LnZhbHVlPXQsdGhpcy5lbGVtZW50LnN1Ym1pdCgpfX0hZnVuY3Rpb24oZSx0LGkpeyh0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUsdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgaT1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09aSl7dmFyIHI9aS5jYWxsKGUsdCk7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyhlKX0oZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOmksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPWl9KFEsInRhcmdldHMiLFsidmFsdWUiXSk7Y29uc3QgRj17dG9wcGVkX3VwX3dhbGxldDp7YnV0dG9uUHJvcHM6e2ljb246JzxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtcGx1cyI+PC91c2U+PC9zdmc+Jyx0aGVtZToic2Vjb25kYXJ5In19LGpvaW5lZF9uZW9zaWZ5OntidXR0b25Qcm9wczp7aWNvbjonPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy11c2VyIj48L3VzZT48L3N2Zz4nLHRoZW1lOiJzZWNvbmRhcnkifX0saW52aXRlZF9hX2ZvbGxvd2VyOntidXR0b25Qcm9wczp7aWNvbjonPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy11c2VycyI+PC91c2U+PC9zdmc+Jyx0aGVtZToic2Vjb25kYXJ5In19LHN0YWtlZF9iaXRjb2luOntidXR0b25Qcm9wczp7aWNvbjonPGltZyBzcmM9Ii9pbWcvY3J5cHRvL0JUQy5zdmciIGFsdD0iIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPicsdGhlbWU6ImxpZ2h0In19LGV4Y2hhbmdlZF9jcnlwdG86e2J1dHRvblByb3BzOntpY29uOic8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLXN5bmMiPjwvdXNlPjwvc3ZnPicsdGhlbWU6ImxpZ2h0In19LGpvaW5lZF9yZWRfcGlsbF9wcm86e2J1dHRvblByb3BzOntpY29uOic8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLW1lZGFsIj48L3VzZT48L3N2Zz4nLHRoZW1lOiJkYW5nZXIifX0sc3Rha2VkX2xpdGVjb2luOntidXR0b25Qcm9wczp7aWNvbjonPGltZyBzcmM9Ii9pbWcvY3J5cHRvL0xUQy5zdmciIGFsdD0iIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPicsdGhlbWU6ImxpZ2h0In19LHdpdGhkcmF3bl9jcnlwdG86e2J1dHRvblByb3BzOntpY29uOic8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLXdpdGhkcmF3Ij48L3VzZT48L3N2Zz4nLHRoZW1lOiJsaWdodCJ9fSxtYWRlX2FfdmlkZW9fcmV2aWV3OntidXR0b25Qcm9wczp7aWNvbjonPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1wbGF5Ij48L3VzZT48L3N2Zz4nLHRoZW1lOiJwcmltYXJ5In19LHN0YWtlZF9uZW9zOntidXR0b25Qcm9wczp7aWNvbjonPGltZyBzcmM9Ii9pbWcvY3J5cHRvL05FT1Muc3ZnIiBhbHQ9IiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij4nLHRoZW1lOiJsaWdodCJ9fSxsZWZ0X2FfY29tbWVudDp7YnV0dG9uUHJvcHM6e2ljb246JzxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iL2ljb25zL3Nwcml0ZS5zdmcjaWNvbnMtY29tbWVudCI+PC91c2U+PC9zdmc+Jyx0aGVtZToicHJpbWFyeSJ9fSxlYXJuZWRfbmVvc19yZXdhcmQ6e2J1dHRvblByb3BzOntpY29uOic8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9Ii9pY29ucy9zcHJpdGUuc3ZnI2ljb25zLWdpZnQiPjwvdXNlPjwvc3ZnPicsdGhlbWU6InByaW1hcnkifX0sbGlrZWRfYV9Db21tZW50OntidXR0b25Qcm9wczp7aWNvbjonPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIvaWNvbnMvc3ByaXRlLnN2ZyNpY29ucy1oZWFydCI+PC91c2U+PC9zdmc+Jyx0aGVtZToiZGFuZ2VyIn19fTtjbGFzcyB6IGV4dGVuZHMgYS5Rcntjb25uZWN0KCl7dGhpcy5zdGF0ZT17fSx0aGlzLmZldGNoUHJvb2ZUYXNrKCl9YXN5bmMgZmV0Y2hQcm9vZlRhc2soKXtjb25zdCBlPTFlMypWKDEwLDMwKTt2YXIgdDthd2FpdCh0PWUsbmV3IFByb21pc2UoKGU9PnNldFRpbWVvdXQoZSx0KSkpKTtjb25zdHtkYXRhOml9PWF3YWl0KDAsay5aUCkoe3VybDoiL2FwaS9zb2MtcHJvb2YvaW5kZXgiLG1ldGhvZDoiZ2V0IixoZWFkZXJzOnsieC1jbGllbnQiOiJ3ZWIifX0pO3RoaXMuc3RhdGU9aS5kYXRhLHRoaXMucmVuZGVyTm90aWZpY2F0aW9uKCksdGhpcy5mZXRjaFByb29mVGFzaygpfXJlbmRlck5vdGlmaWNhdGlvbigpe2NvbnN0IGU9YFxuICAgICAgPGRpdiBjbGFzcz0ic29jLXByb29mICR7dGhpcy5zdGF0ZS50eXBlfSI+XG4gICAgICAgIDxkaXYgY2xhc3M9InNvYy1wcm9vZl9fYXZhdGFyLWNvbnRhaW5lciI+XG4gICAgICAgICAgPGltZyBzcmM9IiR7dGhpcy5zdGF0ZS5hdmF0YXJ9IiBhbHQ9IiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBjbGFzcz0ic29jLXByb29mX19hdmF0YXIiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPSJzb2MtcHJvb2ZfX2J1dHRvbiBpY29uLXJhaXNlZCBpY29uLXJhaXNlZC0tJHtGW3RoaXMuc3RhdGUudHlwZV0uYnV0dG9uUHJvcHMudGhlbWV9IGljb24tcmFpc2VkLS14cyI+XG4gICAgICAgICAgJHtGW3RoaXMuc3RhdGUudHlwZV0uYnV0dG9uUHJvcHMuaWNvbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9InNvYy1wcm9vZl9fYm9keSI+XG4gICAgICAgICAgPGRpdiBjbGFzcz0ic29jLXByb29mX191c2VybmFtZSI+JHt0aGlzLnN0YXRlLnVzZXJOYW1lfSBoYXMganVzdDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9InNvYy1wcm9vZl9fdHlwZW5hbWUiPiR7dGhpcy5zdGF0ZS50eXBlTmFtZX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO3RoaXMuY29udGFpbmVyVGFyZ2V0LmlubmVySFRNTD1lLHNldFRpbWVvdXQoKCgpPT50aGlzLmNvbnRhaW5lclRhcmdldC5pbm5lckhUTUw9IiIpLDhlMyl9fSFmdW5jdGlvbihlLHQsaSl7KHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiBlO3ZhciBpPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1pKXt2YXIgcj1pLmNhbGwoZSx0KTtpZigib2JqZWN0IiE9dHlwZW9mIHIpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKGUpfShlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHQ/dDpTdHJpbmcodCl9KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6aSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09aX0oeiwidGFyZ2V0cyIsWyJjb250YWluZXIiXSk7dmFyIEg9aSg5NTUpO2NsYXNzIFIgZXh0ZW5kcyBhLlFye2Nsb3NlKCl7dGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLEguWi5zZXQoImZyaWRheSIsImhpZGRlbiIse2V4cGlyZXM6OTB9KX19IWZ1bmN0aW9uKGUsdCxpKXsodD1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlLHQpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIGU7dmFyIGk9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWkpe3ZhciByPWkuY2FsbChlLHQpO2lmKCJvYmplY3QiIT10eXBlb2YgcilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcoZSl9KGUsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgdD90OlN0cmluZyh0KX0odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTppLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1pfShSLCJ0YXJnZXRzIixbImNsb3NlIl0pO3ZhciBXPWkoMTkyKSxVPWkubihXKTt3aW5kb3cuU3RpbXVsdXM9YS5NeC5zdGFydCgpLFN0aW11bHVzLnJlZ2lzdGVyKCJuYXYiLGwpLFN0aW11bHVzLnJlZ2lzdGVyKCJ0YWJzIixjKSxTdGltdWx1cy5yZWdpc3RlcigiYWNjb3JkaW9uIixkKSxTdGltdWx1cy5yZWdpc3RlcigiZHJvcGRvd24iLGgpLFN0aW11bHVzLnJlZ2lzdGVyKCJzd2lwZXIiLG0pLFN0aW11bHVzLnJlZ2lzdGVyKCJjb3VudGRvd24iLGcpLFN0aW11bHVzLnJlZ2lzdGVyKCJzaGFyZSIsZiksU3RpbXVsdXMucmVnaXN0ZXIoInJhbmdlIix5KSxTdGltdWx1cy5yZWdpc3Rlcigic2VsZWN0Iix3KSxTdGltdWx1cy5yZWdpc3Rlcigic3Rha2UtY2FsY3VsYXRvciIsVCksU3RpbXVsdXMucmVnaXN0ZXIoImxpcXVpZGl0eS1jYWxjdWxhdG9yIixFKSxTdGltdWx1cy5yZWdpc3RlcigibWF0cml4IixMKSxTdGltdWx1cy5yZWdpc3RlcigiYXBwbHktcmVkLXBpbGwiLE0pLFN0aW11bHVzLnJlZ2lzdGVyKCJjb21tdW5pdHkiLFopLFN0aW11bHVzLnJlZ2lzdGVyKCJsYW5nIixRKSxTdGltdWx1cy5yZWdpc3Rlcigic29jLXByb29mIix6KSxTdGltdWx1cy5yZWdpc3RlcigiZnJpZGF5IixSKSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHlwZXdyaXRlciIpJiZuZXcoVSgpKSgiI3R5cGV3cml0ZXIiLHtsb29wOiEwfSkudHlwZVN0cmluZygiQml0Y29pbiIpLnBhdXNlRm9yKDEyMDApLmRlbGV0ZUFsbCgpLnR5cGVTdHJpbmcoIkV0aGVyZXVtIikucGF1c2VGb3IoMTIwMCkuZGVsZXRlQWxsKCkudHlwZVN0cmluZygiTGl0ZWNvaW4iKS5wYXVzZUZvcigxMjAwKS5kZWxldGVBbGwoKS50eXBlU3RyaW5nKCJEb2dlY29pbiIpLnBhdXNlRm9yKDEyMDApLnN0YXJ0KCksRC5LUi5kZWZhdWx0cy5IYXNoPSExLEQuS1IuZGVmYXVsdHMuYXV0b0ZvY3VzPSExLEQuS1IuZGVmYXVsdHMuZHJhZ1RvQ2xvc2U9ITEsRC5LUi5kZWZhdWx0cy50cmFwRm9jdXM9ITEsRC5LUi5iaW5kKCJbZGF0YS1mYW5jeWJveF0iLHt9KX19LGk9e307ZnVuY3Rpb24gcihlKXt2YXIgbj1pW2VdO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG4uZXhwb3J0czt2YXIgcz1pW2VdPXtleHBvcnRzOnt9fTtyZXR1cm4gdFtlXS5jYWxsKHMuZXhwb3J0cyxzLHMuZXhwb3J0cyxyKSxzLmV4cG9ydHN9ci5tPXQsZT1bXSxyLk89ZnVuY3Rpb24odCxpLG4scyl7aWYoIWkpe3ZhciBhPTEvMDtmb3IodT0wO3U8ZS5sZW5ndGg7dSsrKXtpPWVbdV1bMF0sbj1lW3VdWzFdLHM9ZVt1XVsyXTtmb3IodmFyIG89ITAsbD0wO2w8aS5sZW5ndGg7bCsrKSghMSZzfHxhPj1zKSYmT2JqZWN0LmtleXMoci5PKS5ldmVyeSgoZnVuY3Rpb24oZSl7cmV0dXJuIHIuT1tlXShpW2xdKX0pKT9pLnNwbGljZShsLS0sMSk6KG89ITEsczxhJiYoYT1zKSk7aWYobyl7ZS5zcGxpY2UodS0tLDEpO3ZhciBjPW4oKTt2b2lkIDAhPT1jJiYodD1jKX19cmV0dXJuIHR9cz1zfHwwO2Zvcih2YXIgdT1lLmxlbmd0aDt1PjAmJmVbdS0xXVsyXT5zO3UtLSllW3VdPWVbdS0xXTtlW3VdPVtpLG4sc119LHIubj1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLl9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gZS5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBlfTtyZXR1cm4gci5kKHQse2E6dH0pLHR9LHIuZD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgaSBpbiB0KXIubyh0LGkpJiYhci5vKGUsaSkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkse2VudW1lcmFibGU6ITAsZ2V0OnRbaV19KX0sci5vPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpfSxmdW5jdGlvbigpe3ZhciBlPXsxNzk6MH07ci5PLmo9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1lW3RdfTt2YXIgdD1mdW5jdGlvbih0LGkpe3ZhciBuLHMsYT1pWzBdLG89aVsxXSxsPWlbMl0sYz0wO2lmKGEuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIDAhPT1lW3RdfSkpKXtmb3IobiBpbiBvKXIubyhvLG4pJiYoci5tW25dPW9bbl0pO2lmKGwpdmFyIHU9bChyKX1mb3IodCYmdChpKTtjPGEubGVuZ3RoO2MrKylzPWFbY10sci5vKGUscykmJmVbc10mJmVbc11bMF0oKSxlW3NdPTA7cmV0dXJuIHIuTyh1KX0saT1zZWxmLndlYnBhY2tDaHVua2Zyb250ZW5kPXNlbGYud2VicGFja0NodW5rZnJvbnRlbmR8fFtdO2kuZm9yRWFjaCh0LmJpbmQobnVsbCwwKSksaS5wdXNoPXQuYmluZChudWxsLGkucHVzaC5iaW5kKGkpKX0oKTt2YXIgbj1yLk8odm9pZCAwLFs3MzBdLChmdW5jdGlvbigpe3JldHVybiByKDczOCl9KSk7bj1yLk8obil9KCk7"}},"time_used":355,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":344,"receive":11,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/levels-star-1.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.072Z","timestamp":1785121660072,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/levels-star-1.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:39 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 10772\r\ndate: Mon, 27 Jul 2026 03:07:39 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":10772,"size_decoded":11038,"mime_type":"image/png","magic":"PNG image data, 198 x 190, 8-bit colormap, non-interlaced","md5":"49b9f1e2a90b994d330fe3711e778d36","sha1":"9b8a733d8290281be7732bef93edbba294530eda","sha256":"804fa4d59fbd306a686abac60ee96358ac2f612db0bb34efe085bc902f7c5251","sha512":"93004e746121b324b22be19bf74e617c5e6a1eaaae106f416381101c54f370edcfff2e1ee16ee1b46f61005e7b458699f38419c659816fe3651d96c9fd4b72b6","ssdeep":"192:8k7E1RvxLcOL0Vl0kzjqXArY6OvtfE0qH7/0+1M3k/i4Ne3O3Hef0REV98G/c8Hi:n7E/xLwv0nTLfSbFM3mA3+rqVjcm6GU","tlshash":"4422bf52a7f3f92647f2fe6285499ca09e858f45432411f6041e829c0d2f8fabdb73b4","first_seen":"2026-07-27T02:49:41.038207Z","last_seen":"2026-07-27T03:09:30.363808Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":384,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":381,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/css/main.css?v=1684946825","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.025Z","timestamp":1785121660025,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /css/main.css?v=1684946825 HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:39 GMT\r\ncontent-type: text/css\r\nlast-modified: Tue, 17 Oct 2023 16:14:22 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 21204\r\ndate: Mon, 27 Jul 2026 03:07:39 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":110052,"size_decoded":21514,"mime_type":"text/css","magic":"ASCII text, with very long lines (65536), with no line terminators","md5":"d8d6714df51241403cb5a6947a086cbb","sha1":"174918b375c75a5c19756ebbf0f07601da0ba4c5","sha256":"dde13008d4b1e94304aff6fa2ef8b6b9b583db510c8ed5bfedc910c5941a3b79","sha512":"df511e419052943bcad7f372a442b14763e1e3ad1f7fd0d7c08a858f1cc920a47bb878dc061da5154bf320372f40adf4a17ee0704178e3d924cbd7872499e41e","ssdeep":"3072:EwZGvXLfwTvPTCjeB4pDzA7uo4CHsL3VGc0Agdnso0QJH57WA/aQdNs4kVna2SIq:EwZGvXLfwTvPTCjeB4pDzA7uo4CHsL3Q","tlshash":"c2b3e655b300203fa927993ac7e6d51df138e442df130befba11a629c6d73e212b7658","first_seen":"2026-07-27T02:49:41.015922Z","last_seen":"2026-07-27T03:09:30.417834Z","times_seen":3,"resource_available":false,"data":"LyohIHRhaWx3aW5kY3NzIHYzLjIuNCB8IE1JVCBMaWNlbnNlIHwgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20qLyosOmFmdGVyLDpiZWZvcmV7Ym9yZGVyOjAgc29saWQ7Ym94LXNpemluZzpib3JkZXItYm94fTphZnRlciw6YmVmb3Jley0tdHctY29udGVudDoiIn1odG1se2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7Zm9udC1mYW1pbHk6dWktc2Fucy1zZXJpZixzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsU2Vnb2UgVUksUm9ib3RvLEhlbHZldGljYSBOZXVlLEFyaWFsLE5vdG8gU2FucyxzYW5zLXNlcmlmLEFwcGxlIENvbG9yIEVtb2ppLFNlZ29lIFVJIEVtb2ppLFNlZ29lIFVJIFN5bWJvbCxOb3RvIENvbG9yIEVtb2ppO2xpbmUtaGVpZ2h0OjEuNTstbW96LXRhYi1zaXplOjQ7LW8tdGFiLXNpemU6NDt0YWItc2l6ZTo0fWJvZHl7bGluZS1oZWlnaHQ6aW5oZXJpdDttYXJnaW46MH1ocntib3JkZXItdG9wLXdpZHRoOjFweDtjb2xvcjppbmhlcml0O2hlaWdodDowfWFiYnI6d2hlcmUoW3RpdGxlXSl7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdHRlZDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdHRlZH1oMSxoMixoMyxoNCxoNSxoNntmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDppbmhlcml0fWF7dGV4dC1kZWNvcmF0aW9uOmluaGVyaXR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfWNvZGUsa2JkLHByZSxzYW1we2ZvbnQtZmFtaWx5OnVpLW1vbm9zcGFjZSxTRk1vbm8tUmVndWxhcixNZW5sbyxNb25hY28sQ29uc29sYXMsTGliZXJhdGlvbiBNb25vLENvdXJpZXIgTmV3LG1vbm9zcGFjZTtmb250LXNpemU6MWVtfXNtYWxse2ZvbnQtc2l6ZTo4MCV9c3ViLHN1cHtmb250LXNpemU6NzUlO2xpbmUtaGVpZ2h0OjA7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9c3Vie2JvdHRvbTotLjI1ZW19c3Vwe3RvcDotLjVlbX10YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7dGV4dC1pbmRlbnQ6MH1idXR0b24saW5wdXQsb3B0Z3JvdXAsc2VsZWN0LHRleHRhcmVhe2NvbG9yOmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6MTAwJTtmb250LXdlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7bWFyZ2luOjA7cGFkZGluZzowfWJ1dHRvbixzZWxlY3R7dGV4dC10cmFuc2Zvcm06bm9uZX1bdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSxbdHlwZT1zdWJtaXRdLGJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTpub25lfTotbW96LWZvY3VzcmluZ3tvdXRsaW5lOmF1dG99Oi1tb3otdWktaW52YWxpZHtib3gtc2hhZG93Om5vbmV9cHJvZ3Jlc3N7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31bdHlwZT1zZWFyY2hdey13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7b3V0bGluZS1vZmZzZXQ6LTJweH06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2ZvbnQ6aW5oZXJpdH1zdW1tYXJ5e2Rpc3BsYXk6bGlzdC1pdGVtfWJsb2NrcXVvdGUsZGQsZGwsZmlndXJlLGgxLGgyLGgzLGg0LGg1LGg2LGhyLHAscHJle21hcmdpbjowfWZpZWxkc2V0e21hcmdpbjowfWZpZWxkc2V0LGxlZ2VuZHtwYWRkaW5nOjB9bWVudSxvbCx1bHtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowfXRleHRhcmVhe3Jlc2l6ZTp2ZXJ0aWNhbH1pbnB1dDo6LW1vei1wbGFjZWhvbGRlcix0ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjojOWNhM2FmO29wYWNpdHk6MX1pbnB1dDo6cGxhY2Vob2xkZXIsdGV4dGFyZWE6OnBsYWNlaG9sZGVye2NvbG9yOiM5Y2EzYWY7b3BhY2l0eToxfVtyb2xlPWJ1dHRvbl0sYnV0dG9ue2N1cnNvcjpwb2ludGVyfTpkaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH1hdWRpbyxjYW52YXMsZW1iZWQsaWZyYW1lLGltZyxvYmplY3Qsc3ZnLHZpZGVve3ZlcnRpY2FsLWFsaWduOm1pZGRsZX1baGlkZGVuXXtkaXNwbGF5Om5vbmV9Kiw6YWZ0ZXIsOmJlZm9yZXstLXR3LWJvcmRlci1zcGFjaW5nLXg6MDstLXR3LWJvcmRlci1zcGFjaW5nLXk6MDstLXR3LXRyYW5zbGF0ZS14OjA7LS10dy10cmFuc2xhdGUteTowOy0tdHctcm90YXRlOjA7LS10dy1za2V3LXg6MDstLXR3LXNrZXcteTowOy0tdHctc2NhbGUteDoxOy0tdHctc2NhbGUteToxOy0tdHctcGFuLXg6IDstLXR3LXBhbi15OiA7LS10dy1waW5jaC16b29tOiA7LS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzOnByb3hpbWl0eTstLXR3LW9yZGluYWw6IDstLXR3LXNsYXNoZWQtemVybzogOy0tdHctbnVtZXJpYy1maWd1cmU6IDstLXR3LW51bWVyaWMtc3BhY2luZzogOy0tdHctbnVtZXJpYy1mcmFjdGlvbjogOy0tdHctcmluZy1pbnNldDogOy0tdHctcmluZy1vZmZzZXQtd2lkdGg6MHB4Oy0tdHctcmluZy1vZmZzZXQtY29sb3I6I2ZmZjstLXR3LXJpbmctY29sb3I6cmdiYSg1OSwxMzAsMjQ2LC41KTstLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzowIDAgIzAwMDA7LS10dy1yaW5nLXNoYWRvdzowIDAgIzAwMDA7LS10dy1zaGFkb3c6MCAwICMwMDAwOy0tdHctc2hhZG93LWNvbG9yZWQ6MCAwICMwMDAwOy0tdHctYmx1cjogOy0tdHctYnJpZ2h0bmVzczogOy0tdHctY29udHJhc3Q6IDstLXR3LWdyYXlzY2FsZTogOy0tdHctaHVlLXJvdGF0ZTogOy0tdHctaW52ZXJ0OiA7LS10dy1zYXR1cmF0ZTogOy0tdHctc2VwaWE6IDstLXR3LWRyb3Atc2hhZG93OiA7LS10dy1iYWNrZHJvcC1ibHVyOiA7LS10dy1iYWNrZHJvcC1icmlnaHRuZXNzOiA7LS10dy1iYWNrZHJvcC1jb250cmFzdDogOy0tdHctYmFja2Ryb3AtZ3JheXNjYWxlOiA7LS10dy1iYWNrZHJvcC1odWUtcm90YXRlOiA7LS10dy1iYWNrZHJvcC1pbnZlcnQ6IDstLXR3LWJhY2tkcm9wLW9wYWNpdHk6IDstLXR3LWJhY2tkcm9wLXNhdHVyYXRlOiA7LS10dy1iYWNrZHJvcC1zZXBpYTogfTo6YmFja2Ryb3B7LS10dy1ib3JkZXItc3BhY2luZy14OjA7LS10dy1ib3JkZXItc3BhY2luZy15OjA7LS10dy10cmFuc2xhdGUteDowOy0tdHctdHJhbnNsYXRlLXk6MDstLXR3LXJvdGF0ZTowOy0tdHctc2tldy14OjA7LS10dy1za2V3LXk6MDstLXR3LXNjYWxlLXg6MTstLXR3LXNjYWxlLXk6MTstLXR3LXBhbi14OiA7LS10dy1wYW4teTogOy0tdHctcGluY2gtem9vbTogOy0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzczpwcm94aW1pdHk7LS10dy1vcmRpbmFsOiA7LS10dy1zbGFzaGVkLXplcm86IDstLXR3LW51bWVyaWMtZmlndXJlOiA7LS10dy1udW1lcmljLXNwYWNpbmc6IDstLXR3LW51bWVyaWMtZnJhY3Rpb246IDstLXR3LXJpbmctaW5zZXQ6IDstLXR3LXJpbmctb2Zmc2V0LXdpZHRoOjBweDstLXR3LXJpbmctb2Zmc2V0LWNvbG9yOiNmZmY7LS10dy1yaW5nLWNvbG9yOnJnYmEoNTksMTMwLDI0NiwuNSk7LS10dy1yaW5nLW9mZnNldC1zaGFkb3c6MCAwICMwMDAwOy0tdHctcmluZy1zaGFkb3c6MCAwICMwMDAwOy0tdHctc2hhZG93OjAgMCAjMDAwMDstLXR3LXNoYWRvdy1jb2xvcmVkOjAgMCAjMDAwMDstLXR3LWJsdXI6IDstLXR3LWJyaWdodG5lc3M6IDstLXR3LWNvbnRyYXN0OiA7LS10dy1ncmF5c2NhbGU6IDstLXR3LWh1ZS1yb3RhdGU6IDstLXR3LWludmVydDogOy0tdHctc2F0dXJhdGU6IDstLXR3LXNlcGlhOiA7LS10dy1kcm9wLXNoYWRvdzogOy0tdHctYmFja2Ryb3AtYmx1cjogOy0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzczogOy0tdHctYmFja2Ryb3AtY29udHJhc3Q6IDstLXR3LWJhY2tkcm9wLWdyYXlzY2FsZTogOy0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZTogOy0tdHctYmFja2Ryb3AtaW52ZXJ0OiA7LS10dy1iYWNrZHJvcC1vcGFjaXR5OiA7LS10dy1iYWNrZHJvcC1zYXR1cmF0ZTogOy0tdHctYmFja2Ryb3Atc2VwaWE6IH06cm9vdHstLWNvbG9yLXByaW1hcnk6NDcgNiAxODc7LS1jb2xvci1wcmltYXJ5LXNvZnQ6NjggMzEgMTkzOy0tY29sb3ItcHJpbWFyeS1oYXJkOjQ1IDggMTcxOy0tY29sb3Itc2Vjb25kYXJ5OjkgMTkwIDEzOTstLWNvbG9yLXNlY29uZGFyeS1zb2Z0OjM0IDE5NiAxNTA7LS1jb2xvci1zZWNvbmRhcnktaGFyZDoxMSAxNzMgMTI4Oy0tY29sb3Itd2hpdGU6MjU1IDI1NSAyNTU7LS1jb2xvci1kYXJrOjI2IDI3IDM4Oy0tY29sb3ItZGFyay1zb2Z0OjQ5IDUwIDYwOy0tY29sb3ItZ3JheS1kYXJrOjE0MCAxNDUgMTY0Oy0tY29sb3ItZ3JheS1kYXJrLXNvZnQ6MTUxIDE1NiAxNzM7LS1jb2xvci1ncmF5LWRhcmstaGFyZDoxMjggMTMzIDE1MTstLWNvbG9yLWdyYXk6MjI5IDIyOSAyMjk7LS1jb2xvci1ncmF5LWhhcmQ6MjA4IDIwOCAyMDk7LS1jb2xvci1saWdodDoyMzkgMjQxIDI0ODstLWNvbG9yLWxpZ2h0LWhhcmQ6MjE3IDIxOSAyMjY7LS1jb2xvci1kYW5nZXI6MjUxIDc4IDc4Oy0tY29sb3ItZGFuZ2VyLXNvZnQ6MjUxIDk2IDk2Oy0tY29sb3ItZGFuZ2VyLWhhcmQ6MjI4IDczIDc0Oy0tY29sb3Itd2FybmluZzoyNTUgMjEwIDA7LS1jb2xvci12aXA6MjUwIDE4MiA1Oy0tZm9udC1wcmltYXJ5OiJSZWQgSGF0IERpc3BsYXkiLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFNlZ29lIFVJLFJvYm90byxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjstLWZvbnQtYm9keToiT3V0Zml0IiwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxTZWdvZSBVSSxSb2JvdG8sSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7LS1mb250LXdlaWdodC1ub3JtYWw6NDAwOy0tZm9udC13ZWlnaHQtYm9sZDo3MDA7LS1mb250LXdlaWdodC1ibGFjazo5MDA7LS1mb250LXNpemUtaGVybzpjYWxjKDIxLjMzMzMzcHggKyA3LjQwNzQxdncpOy0tZm9udC1zaXplLWgxOmNhbGMoMTYuNjY2NjdweCArIDQuMzk4MTV2dyk7LS1mb250LXNpemUtaDI6Y2FsYygyNi42NjY2N3B4ICsgMC45MjU5M3Z3KTstLWZvbnQtc2l6ZS1oMzpjYWxjKDE4LjY2NjY3cHggKyAwLjkyNTkzdncpOy0tZm9udC1zaXplLWg0OmNhbGMoMTRweCArIDAuNjk0NDR2dyk7LS1mb250LXNpemUtaDU6Y2FsYygxNC42NjY2N3B4ICsgMC4yMzE0OHZ3KTstLWZvbnQtc2l6ZS1oNjoxNnB4Oy0tZm9udC1zaXplLXNtYWxsOjE0cHg7LS1mb250LXNpemUtdGlueToxMnB4Oy0tbGVhZGluZy1wcmltYXJ5LWhlcm86MS4zMjgxMjU7LS1sZWFkaW5nLXByaW1hcnktaDE6MS4yNTstLWxlYWRpbmctcHJpbWFyeS1oMjoxLjQ7LS1sZWFkaW5nLXByaW1hcnktaDM6MS4yNTstLWxlYWRpbmctcHJpbWFyeS1oNDoxLjMzMzM7LS1sZWFkaW5nLXByaW1hcnktaDU6MS4zMzMzOy0tbGVhZGluZy1wcmltYXJ5LWg2OjEuMjU7LS1sZWFkaW5nLXByaW1hcnktc21hbGw6MS4xNDI4NTstLWxlYWRpbmctcHJpbWFyeS10aW55OjEuMzMzMzstLWxlYWRpbmctYm9keS1oNDoxLjU7LS1sZWFkaW5nLWJvZHktaDU6MS41NTU1Oy0tbGVhZGluZy1ib2R5LWg2OjEuNTstLWxlYWRpbmctYm9keS1zbWFsbDoxLjU3MTQyOy0tbGVhZGluZy1ib2R5LXRpbnk6MS42NjY3Oy0tdHJhY2tpbmctcHJpbWFyeS1oZXJvOi0wLjAzOTA2MjVlbTstLXRyYWNraW5nLXByaW1hcnktaDE6LTAuMDM3NWVtOy0tc2hhZG93LXNtOjAgNHB4IDhweCAwIHJnYmEoMTQwLDE0NSwxNjQsLjA4KTstLXNoYWRvdy1tZDowIDE0cHggMjhweCAwIHJnYmEoMTQwLDE0NSwxNjQsLjE2KTstLXNoYWRvdy1sZzowIDI0cHggNDhweCAwIHJnYmEoMTQwLDE0NSwxNjQsLjI0KTstLWdsb3ctcHJpbWFyeS1sb3c6MCAxNnB4IDMycHggMCByZ2JhKDQ3LDYsMTg3LC4zMiksMCA4cHggMjRweCAwIHJnYmEoNDcsNiwxODcsLjI0KSwwIDNweCA4cHggMCByZ2JhKDQ3LDYsMTg3LC4xNiksMCAwIDFweCAwIHJnYmEoNDcsNiwxODcsLjA4KTstLWdsb3ctcHJpbWFyeS1oaWdoOjAgMzJweCA0OHB4IDAgcmdiYSg0Nyw2LDE4NywuNDgpLDAgMjRweCAzMnB4IDAgcmdiYSg0Nyw2LDE4NywuNCksMCAzcHggOHB4IDAgcmdiYSg0Nyw2LDE4NywuMzIpLDAgMCAxcHggMCByZ2JhKDQ3LDYsMTg3LC4yNCk7LS1nbG93LXNlY29uZGFyeS1sb3c6MCAxNnB4IDMycHggMCByZ2JhKDksMTkwLDEzOSwuMzIpLDAgOHB4IDI0cHggMCByZ2JhKDksMTkwLDEzOSwuMjQpLDAgM3B4IDhweCAwIHJnYmEoOSwxOTAsMTM5LC4xNiksMCAwIDFweCAwIHJnYmEoOSwxOTAsMTM5LC4wOCk7LS1nbG93LXNlY29uZGFyeS1oaWdoOjAgMzJweCA0OHB4IDAgcmdiYSg5LDE5MCwxMzksLjQ4KSwwIDI0cHggMzJweCAwIHJnYmEoOSwxOTAsMTM5LC40KSwwIDNweCA4cHggMCByZ2JhKDksMTkwLDEzOSwuMzIpLDAgMCAxcHggMCByZ2JhKDksMTkwLDEzOSwuMjQpOy0tZ2xvdy1kYW5nZXItbG93OjAgMTZweCAzMnB4IDAgcmdiYSgyNTEsNzgsNzgsLjMyKSwwIDhweCAyNHB4IDAgcmdiYSgyNTEsNzgsNzgsLjI0KSwwIDNweCA4cHggMCByZ2JhKDI1MSw3OCw3OCwuMTYpLDAgMCAxcHggMCByZ2JhKDI1MSw3OCw3OCwuMDgpOy0tZ2xvdy1kYW5nZXItaGlnaDowIDMycHggNDhweCAwIHJnYmEoMjUxLDc4LDc4LC40OCksMCAyNHB4IDMycHggMCByZ2JhKDI1MSw3OCw3OCwuNCksMCAzcHggOHB4IDAgcmdiYSgyNTEsNzgsNzgsLjMyKSwwIDAgMXB4IDAgcmdiYSgyNTEsNzgsNzgsLjI0KTstLXJhZGl1cy1tZDo4cHg7LS16LW5lZ2F0aXZlOi0xOy0tei1wYWdlOjE7LS16LXBvcG92ZXI6MTA7LS16LWhlYWRlcjoyMDstLXotb3ZlcmxheTozMDstLXotbm90aWZpY2F0aW9uOjQwOy0tY29udGFpbmVyLW1heC13aWR0aDoxNDQwcHg7LS1jb250YWluZXItcGFkZGluZzoyMHB4Oy0taGVhZGVyLWhlaWdodDo3MnB4Oy0tZmFuY3lib3gtYWNjZW50LWNvbG9yOnJnYih2YXIoLS1jb2xvci1zZWNvbmRhcnkpLzEpOy0tZmFuY3lib3gtY29udGVudC1jb2xvcjpyZ2IodmFyKC0tY29sb3ItZ3JheS1kYXJrKS8xKTstLWZhbmN5Ym94LWJnOnJnYmEoMCwwLDAsLjUpfUBtZWRpYSAobWluLXdpZHRoOjEyNDBweCl7OnJvb3R7LS1oZWFkZXItaGVpZ2h0OjgwcHh9fTpyb290W2xhbmc9cnVdLDpyb290W2xhbmc9dWtdey0tZm9udC1wcmltYXJ5OiJJbnRlciIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsU2Vnb2UgVUksUm9ib3RvLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmOy0tZm9udC1ib2R5OiJSdWJpayIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsU2Vnb2UgVUksUm9ib3RvLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmfWh0bWx7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCk7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCU7dGV4dC1yZW5kZXJpbmc6b3B0aW1pemVMZWdpYmlsaXR5fWJvZHl7LW1zLW92ZXJmbG93LXN0eWxlOnNjcm9sbGJhcjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZ3JheS1kYXJrKS8xKTtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OnNjcm9sbH1bcm9sZT1idXR0b25dLGEsYXJlYSxidXR0b24saW5wdXQ6bm90KFt0eXBlPXJhbmdlXSksbGFiZWwsc2VsZWN0LHN1bW1hcnksdGV4dGFyZWF7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbn1hdWRpbyxjYW52YXMsZW1iZWQsaWZyYW1lLGltZyxvYmplY3Qsc3ZnLHZpZGVve2Rpc3BsYXk6YmxvY2t9aW1nLHZpZGVve2hlaWdodDphdXRvO21heC13aWR0aDoxMDAlfWltZ3tjb2xvcjp0cmFuc3BhcmVudH1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTtjb2xvcjppbmhlcml0O2N1cnNvcjpwb2ludGVyO2ZvbnQ6aW5oZXJpdDtwYWRkaW5nOjA7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3doaXRlLXNwYWNlOm5vd3JhcH1idXR0b246Zm9jdXN7b3V0bGluZTpub25lIWltcG9ydGFudH1pbnB1dCx0ZXh0YXJlYXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6bm9ybWFsO21hcmdpbjowO3BhZGRpbmc6MDt3aWR0aDoxMDAlfWlucHV0OmZvY3VzLHRleHRhcmVhOmZvY3Vze291dGxpbmU6bm9uZSFpbXBvcnRhbnR9Y29kZSxrYmQscHJlLHNhbXB7Zm9udC1mYW1pbHk6Q29uc29sYXMsTW9uYWNvLG1vbm9zcGFjZX1jb2RlLHByZXt3b3JkLXdyYXA6bm9ybWFsOy13ZWJraXQtaHlwaGVuczpub25lO2h5cGhlbnM6bm9uZTt3aGl0ZS1zcGFjZTpwcmU7d29yZC1icmVhazpub3JtYWw7d29yZC1zcGFjaW5nOm5vcm1hbH06Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6I2IzZDRmYztjb2xvcjojMDAwO3RleHQtc2hhZG93Om5vbmV9OjpzZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjojYjNkNGZjO2NvbG9yOiMwMDA7dGV4dC1zaGFkb3c6bm9uZX06Zm9jdXN7b3V0bGluZTpub25lIWltcG9ydGFudH1AZm9udC1mYWNle2ZvbnQtZGlzcGxheTpzd2FwO2ZvbnQtZmFtaWx5Ok91dGZpdDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7c3JjOnVybCguLi9mb250cy9PdXRmaXQtUmVndWxhci53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpfUBmb250LWZhY2V7Zm9udC1kaXNwbGF5OnN3YXA7Zm9udC1mYW1pbHk6UmVkIEhhdCBEaXNwbGF5O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjcwMDtzcmM6dXJsKC4uL2ZvbnRzL1JlZEhhdERpc3BsYXktQm9sZC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpfUBmb250LWZhY2V7Zm9udC1kaXNwbGF5OnN3YXA7Zm9udC1mYW1pbHk6UmVkIEhhdCBEaXNwbGF5O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjkwMDtzcmM6dXJsKC4uL2ZvbnRzL1JlZEhhdERpc3BsYXktQmxhY2sud29mZjIpIGZvcm1hdCgid29mZjIiKX1AZm9udC1mYWNle2ZvbnQtZGlzcGxheTpzd2FwO2ZvbnQtZmFtaWx5OkludGVyO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjYwMDtzcmM6dXJsKC4uL2ZvbnRzL0ludGVyLVNlbWlCb2xkLndvZmYyKSBmb3JtYXQoIndvZmYyIil9QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTpJbnRlcjtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo3MDA7c3JjOnVybCguLi9mb250cy9JbnRlci1FeHRyYUJvbGQud29mZjIpIGZvcm1hdCgid29mZjIiKX1AZm9udC1mYWNle2ZvbnQtZGlzcGxheTpzd2FwO2ZvbnQtZmFtaWx5OlJ1YmlrO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKC4uL2ZvbnRzL1J1YmlrLVJlZ3VsYXIud29mZjIpIGZvcm1hdCgid29mZjIiKX1oMSxoMixoMyxoNCxoNSxoNntjb2xvcjp2YXIoLS10ZXh0LWNvbG9yLHJnYih2YXIoLS1jb2xvci1kYXJrKS8xKSl9LnRleHQtcHJpbWFyeS1oZXJve2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtcHJpbWFyeSk7Zm9udC1zaXplOnZhcigtLWZvbnQtc2l6ZS1oZXJvKTtsZXR0ZXItc3BhY2luZzp2YXIoLS10cmFja2luZy1wcmltYXJ5LWhlcm8pO2xpbmUtaGVpZ2h0OnZhcigtLWxlYWRpbmctcHJpbWFyeS1oZXJvKX0udGV4dC1wcmltYXJ5LWgxLGgxe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtcHJpbWFyeSk7Zm9udC1zaXplOnZhcigtLWZvbnQtc2l6ZS1oMSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tdHJhY2tpbmctcHJpbWFyeS1oMSk7bGluZS1oZWlnaHQ6dmFyKC0tbGVhZGluZy1wcmltYXJ5LWgxKX0uYmxvZy1hcnRpY2xlX190aXRsZSwuc3RhdF9fdmFsdWUsLnRleHQtcHJpbWFyeS1oMiwudmlkZW9zX19pdGVtLXRpdGxlLGgye2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtcHJpbWFyeSk7Zm9udC1zaXplOnZhcigtLWZvbnQtc2l6ZS1oMik7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OnZhcigtLWxlYWRpbmctcHJpbWFyeS1oMil9Lm5lb3MtdmFsdWVzX19wYW5lbHMsLnRleHQtcHJpbWFyeS1oMyxoM3tmb250LWZhbWlseTp2YXIoLS1mb250LXByaW1hcnkpO2ZvbnQtc2l6ZTp2YXIoLS1mb250LXNpemUtaDMpO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDp2YXIoLS1sZWFkaW5nLXByaW1hcnktaDMpfS5iZnJpZGF5LC5ibG9nLWFydGljbGVfX2NvbW1lbnRzLXRpdGxlLC5ibG9nLWFydGljbGVfX3NoYXJlLXRpdGxlLC5ibG9nLWNhcmRfX3RpdGxlLC5ibG9nLWNhdHNfX2xpbmssLmNhcmRfX3RpdGxlLC5mb290ZXItbWVudV9fY2F0ZWdvcnksLm5hdi1tb2JpbGVfX21lbnUtbGluaywubmVvcy12YWx1ZXNfX3RhYiwudGV4dC1wcmltYXJ5LWg0LGg0e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtcHJpbWFyeSk7Zm9udC1zaXplOnZhcigtLWZvbnQtc2l6ZS1oNCk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OnZhcigtLWxlYWRpbmctcHJpbWFyeS1oNCl9LmFjY29yZGlvbl9fdGl0bGUsLmJsb2ctY2FyZF9fcmVhZG1vcmUsLmJ0bi0tbWQsLmNhcmRfX2V4dCwuY29tbWVudF9fbmFtZSwubGluaywubmF2X19zdWJtZW51LWxpbmstdGl0bGUsLnJldmlld19fbmFtZSwucmV3YXJkX190aXRsZSwudGV4dC1wcmltYXJ5LWg1LC50b2tlbi1jb3VudGVyX19sYWJlbCwudHJ1c3RwaWxvdC1leHRfX3RleHQsaDV7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1wcmltYXJ5KTtmb250LXNpemU6dmFyKC0tZm9udC1zaXplLWg1KTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6dmFyKC0tbGVhZGluZy1wcmltYXJ5LWg1KX0uYnRuLS1zbSwuYnV5LW9yZGVyX192YWx1ZSwuZHJvcGRvd24tbWVudV9fYnV0dG9uLC5naWZ0X190ZXh0LC5pbnB1dF9fZmllbGQsLmlucHV0X190ZXh0YXJlYSwub3Atb3JkZXJfX3ZhbHVlLC5vcC1yYXRlX192YWx1ZSwuc2VsbC1vcmRlcl9fdmFsdWUsLnNzLWNvbnRlbnQgLnNzLWxpc3QgLnNzLW9wdGlvbiwuc3MtbWFpbiAuc3Mtc2luZ2xlLXNlbGVjdGVkIC5wbGFjZWhvbGRlciwudGV4dC1wcmltYXJ5LWg2LGg2e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtcHJpbWFyeSk7Zm9udC1zaXplOnZhcigtLWZvbnQtc2l6ZS1oNik7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OnZhcigtLWxlYWRpbmctcHJpbWFyeS1oNil9Lm9wLXJhdGVfX3RpdGxlLC5yZXdhcmRfX3ZhbHVlLXRleHQsLnNvYy1wcm9vZl9fdHlwZW5hbWUsLnRleHQtcHJpbWFyeS1zbWFsbHtmb250LWZhbWlseTp2YXIoLS1mb250LXByaW1hcnkpO2ZvbnQtc2l6ZTp2YXIoLS1mb250LXNpemUtc21hbGwpO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDp2YXIoLS1sZWFkaW5nLXByaW1hcnktc21hbGwpfS5idXktb3JkZXJfX2xhYmVsLC5vcC1vcmRlcl9fbGFiZWwsLm9wLXJhdGVfX25hbWUsLnNlbGwtb3JkZXJfX2xhYmVsLC50ZXh0LXByaW1hcnktdGlueXtmb250LWZhbWlseTp2YXIoLS1mb250LXByaW1hcnkpO2ZvbnQtc2l6ZTp2YXIoLS1mb250LXNpemUtdGlueSk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OnZhcigtLWxlYWRpbmctcHJpbWFyeS10aW55KX0ubmF2LW1vYmlsZV9fc3VibWVudS1saW5rLC50ZXh0LWJvZHktaDQsYm9keXtmb250LWZhbWlseTp2YXIoLS1mb250LWJvZHkpO2ZvbnQtc2l6ZTp2YXIoLS1mb250LXNpemUtaDQpO2xpbmUtaGVpZ2h0OnZhcigtLWxlYWRpbmctYm9keS1oNCl9LmJsb2ctYXJ0aWNsZV9fY29udGVudCBwLC5ibG9nLWFydGljbGVfX3Nob3J0LC5ibG9nLWNhcmRfX3ByZXZpZXcsLmNhcmRfX2Rlc2MsLmNvbW1lbnRfX2xhYmVsLC5jb21tZW50X19saWtlLWNvdW50LC5yZXZpZXdfX3Jldmlld2VkLC50ZXh0LWJvZHktaDV7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1ib2R5KTtmb250LXNpemU6dmFyKC0tZm9udC1zaXplLWg1KTtsaW5lLWhlaWdodDp2YXIoLS1sZWFkaW5nLWJvZHktaDUpfS5ibG9nLWFydGljbGVfX2RhdGUsLmNvbW1lbnRfX2JvZHksLmZvb3Rlcl9fY29weSwubmF2LW1vYmlsZV9fZG9jcy1saW5rLC5ub3R5Zl9fbWVzc2FnZSwucmV2aWV3X190ZXh0LC5zdGF0X19kZXNjLC50ZXh0LWJvZHktaDZ7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1ib2R5KTtmb250LXNpemU6dmFyKC0tZm9udC1zaXplLWg2KTtsaW5lLWhlaWdodDp2YXIoLS1sZWFkaW5nLWJvZHktaDYpfS5hY2NvcmRpb25fX2JvZHktaW5uZXIgcCwuYmFkZ2UsLmJsb2ctY2FyZF9fbWV0YSwuZm9vdGVyX19kb21haW5zIGEsLmlucHV0X19lcnJvciwubmF2LW1vYmlsZV9fc3VibWVudS1iYWRnZSwubmF2X19zdWJtZW51LWxpbmstZGVzYywudGV4dC1ib2R5LXNtYWxse2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtYm9keSk7Zm9udC1zaXplOnZhcigtLWZvbnQtc2l6ZS1zbWFsbCk7bGluZS1oZWlnaHQ6dmFyKC0tbGVhZGluZy1ib2R5LXNtYWxsKX0uc29jLXByb29mX191c2VybmFtZSwudGV4dC1ib2R5LXRpbnl7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1ib2R5KTtmb250LXNpemU6dmFyKC0tZm9udC1zaXplLXRpbnkpO2xpbmUtaGVpZ2h0OnZhcigtLWxlYWRpbmctYm9keS10aW55KX1he2NvbG9yOmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3Isb3BhY2l0eSxiYWNrZ3JvdW5kLWNvbG9yO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfW9se2NvdW50ZXItcmVzZXQ6bGlzdDF9b2w+bGk6YmVmb3Jle2NvbnRlbnQ6Y291bnRlcihsaXN0MSkgIi4gIjtjb3VudGVyLWluY3JlbWVudDpsaXN0MX1vbD5saTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH1vbCBvbHtjb3VudGVyLXJlc2V0Omxpc3QyfW9sIG9sPmxpOmJlZm9yZXtjb250ZW50OmNvdW50ZXIobGlzdDEpICIuIiBjb3VudGVyKGxpc3QyKSAiLiAiO2NvdW50ZXItaW5jcmVtZW50Omxpc3QyfW9sIG9sIG9se2NvdW50ZXItcmVzZXQ6bGlzdDN9b2wgb2wgb2w+bGk6YmVmb3Jle2NvbnRlbnQ6Y291bnRlcihsaXN0MSkgIi4iIGNvdW50ZXIobGlzdDIpICIuIiBjb3VudGVyKGxpc3QzKSAiLiAiO2NvdW50ZXItaW5jcmVtZW50Omxpc3QzfW1hcmt7YmFja2dyb3VuZDpub25lO2NvbG9yOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xKTtmb250LXNpemU6aW5oZXJpdDtmb250LXN0eWxlOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH0ubWFyay0tZGFuZ2Vye2NvbG9yOnJnYih2YXIoLS1jb2xvci1kYW5nZXIpLzEpfS5jb250YWluZXJ7d2lkdGg6MTAwJX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNvbnRhaW5lcnttYXgtd2lkdGg6NTc2cHh9fUBtZWRpYSAobWluLXdpZHRoOjc2MHB4KXsuY29udGFpbmVye21heC13aWR0aDo3NjBweH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jb250YWluZXJ7bWF4LXdpZHRoOjk5MnB4fX1AbWVkaWEgKG1pbi13aWR0aDoxMjQwcHgpey5jb250YWluZXJ7bWF4LXdpZHRoOjEyNDBweH19QG1lZGlhIChtaW4td2lkdGg6MTQ0MHB4KXsuY29udGFpbmVye21heC13aWR0aDoxNDQwcHh9fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6c3dpcGVyLWljb25zO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKCJkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCwgZDA5R1JnQUJBQUFBQUFaZ0FCQUFBQUFBREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJHUmxSTkFBQUdSQUFBQUJvQUFBQWNpNnFIa1VkRVJVWUFBQVdnQUFBQUl3QUFBQ1FBWUFCWFIxQlBVd0FBQmhRQUFBQXVBQUFBTnVBWTcreEhVMVZDQUFBRnhBQUFBRkFBQUFCbTJmUGN6VTlUTHpJQUFBSGNBQUFBU2dBQUFHQlA5VjVSWTIxaGNBQUFBa1FBQUFDSUFBQUJZdDZGMGNCamRuUWdBQUFDekFBQUFBUUFBQUFFQUJFQlJHZGhjM0FBQUFXWUFBQUFDQUFBQUFqLy93QURaMng1WmdBQUF5d0FBQURNQUFBRDJNSHRyeVZvWldGa0FBQUJiQUFBQURBQUFBQTJFMitlb1dob1pXRUFBQUdjQUFBQUh3QUFBQ1FDOWdEemFHMTBlQUFBQWlnQUFBQVpBQUFBcmdKa0FCRnNiMk5oQUFBQzBBQUFBRm9BQUFCYUZRQVVHRzFoZUhBQUFBRzhBQUFBSHdBQUFDQUFjQUJBYm1GdFpRQUFBL2dBQUFFNUFBQUNYdkZkQndsd2IzTjBBQUFGTkFBQUFHSUFBQUNFNXM3NGhYamFZMkJrWUdBQVlwZjVIdS9qK1cyK01uQXpNWURBemFYNlFqRDYvNC8vQnhqNUdBOEF1UndNWUdrQVB5d0wxM2phWTJCa1lHQTg4UDhBZ3g0aisvOGZRRFlmQTFBRUJXZ0RBSUIyQk9vQWVOcGpZR1JnWU5CaDRHZGdZZ0FCRU1uSUFCSnpZTkFEQ1FBQUNXZ0FzUUI0Mm1OZ1lmekNPSUdCbFlHQjBZY3hqWUdCd1IxS2YyV1FaR2hoWUdCaVlHVm1nQUZHQmlRUWtPYWF3dERBb01CUXhYamcvd0VHUGNZRERBNHdOVUEyQ0Nnd3NBQUFPNEVMNmdBQWVOcGoyTTBneUFBQ3F4Z0dOV0JrWjJENC93TUEreGtEZGdBQUFIamFZMkJnWUdhQVlCa0dSZ1lRaUFIeUdNRjhGZ1lISU0zRHdNSEFCR1FyTU9neVdETEVNMVQ5L3c4VUJmRU1nTHpFLy8vL1AvNS8vZi9WL3h2K3I0ZWFBQWVNYkF4d0lVWW1JTUhFZ0tZQVlqVWNzREF3c0xLeGMzQnljZlB3OGpFUUEvZ1pCQVNGaEVWRXhjUWxKS1drWldUbDVCVVVsWlJWVk5YVU5UUVpCZ01BQU1SK0UrZ0FFUUZFQUFBQUtnQXFBQ29BTkFBK0FFZ0FVZ0JjQUdZQWNBQjZBSVFBamdDWUFLSUFyQUMyQU1BQXlnRFVBTjRBNkFEeUFQd0JCZ0VRQVJvQkpBRXVBVGdCUWdGTUFWWUJZQUZxQVhRQmZnR0lBWklCbkFHbUFiSUJ6Z0hzQUFCNDJ1Mk5NUTZDVUF5R1c1Njh4OUFuZVlZZ200TUpiaEtGYUV4SU9BVlg4QXBld1N0NEJpYzRBZmVBaWQzVk9CaXhEeGZQWUV6YTVPK1hmaTA0WUFEZ2dpVUlVTEN1RUpLOFZoTzRiU3ZwZG5rdEhJNVFDWXRkaTJzbDhablhhSGxxVXJOS3pkS2NUOGNqbHErcndaU3ZJVmN6TmllenNmblAvdXpubWZQRkJOT0RNMks3TVRRNDVZRUFacUdQODFBbUdHY0YzaVBxT29wMHIxU1BUYVRiVmtmVWU0SFhqOTd3WUUreU53V1l4d1d1NHYxdWdXSGdvM1MxWGRaRVZxV003RVQwY2ZuTEd4V2ZrZ1I0Mm8yUHZXckRNQlNGai9JSExhRjB6S2pSZ2RpVk13U2NOUkFvV1VvSDc4WTJpY0IveUlZMDlBbjZBSDJCZHUvVUIreXhvcFlzaFFpRXZudnUwZFVSZ0R0OFFlQzhQRHc3RnBqaTNmRUE0ei9QRUo2WU9CNWhLaDRkajNFdlhoeFBxSC9TS1VZM3JKN3NyWjRGWm5oMVBNQXRQaHdQNmZsMlBNSk1QRGdlUTRyWThZVDZHemFvMGVBRUE0MDlEdWdnbVRuRm5PY1NDaUVpTE1neENpVEk2Q3E1RFpVZDNRbXAxMHZPMExhTFRkMmNqTjRmT3VtbGM3bFVZYlNRY1pGa3V0Ukc3ZzZKS1pLeTBSbWRMWTY4MENEbkVKK1VNa3BGRmUxUk43bnhkVnBYckM0YVR0bmF1ck9uWWVyY1pnMllWbUxOL2QvZ2N6ZkVpbXJFL2ZzL2JPdXEyOVptbjh0bG9PUmFYZ1pnR2E3OHlPOS9jblhtMkJwYUd2cTI1RHY5UzRFOSs1U0ljOVBxdXBKS2hZRlNTbDQ3K1FjcjFtWU5BQUFBZU5wdHcwY0t3a0FBQU1EWkpBOFE3T1VKdmtMc1BmWjZ6RlZFUlB5OHFIaDJZRVIrM2kvQlA4M3ZJQkxMeVNzb0tpbXJxS3FwYTJocDYranE2UnNZR2htYm1KcVpTeTBzcmF4dGJPM3NIUnlkbkVNVTR1UjZ5eDdKSlh2ZVA3V3JEeWNBQUFBQUFBSC8vd0FDZU5wallHUmdZT0FCWWhrZ1pnSkNaZ1pOQmtZR0xRWnRJSnNGTE1ZQUFBdzNBTGdBZU5vbGl6RUtnREFRQkNjaFJiQzJzRkVSMFlENnFWUWlCQ3YvSDllekdJNlo1WEJBdzhDQksvbTVpUVFWYXVWYlhMbk9yTVp2Mm9MZEtGYThQanVydTJoSnpHYWJtT1NMek5NenZ1dHBCM040Mm1OZ1pHQmc0R0tRWXpCaFlNeEpMTWxqNEdCZ0FZb3cvUC9QQUpKaExNNnNTb1dLZldDQUF3REFqZ2JSQUFCNDJtTmdZR0JrQUlJYkNabzVJUHJtVW4waEdBMEFPOEVGVFFBQSIpfTpyb290ey0tc3dpcGVyLXRoZW1lLWNvbG9yOiMwMDdhZmZ9LnN3aXBlcntsaXN0LXN0eWxlOm5vbmU7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bztvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX0uc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItd3JhcHBlcntmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnN3aXBlci13cmFwcGVye2JveC1zaXppbmc6Y29udGVudC1ib3g7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO3dpZHRoOjEwMCU7ei1pbmRleDoxfS5zd2lwZXItYW5kcm9pZCAuc3dpcGVyLXNsaWRlLC5zd2lwZXItd3JhcHBlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0uc3dpcGVyLXBvaW50ZXItZXZlbnRze3RvdWNoLWFjdGlvbjpwYW4teX0uc3dpcGVyLXBvaW50ZXItZXZlbnRzLnN3aXBlci12ZXJ0aWNhbHt0b3VjaC1hY3Rpb246cGFuLXh9LnN3aXBlci1zbGlkZXtmbGV4LXNocmluazowO2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO3dpZHRoOjEwMCV9LnN3aXBlci1zbGlkZS1pbnZpc2libGUtYmxhbmt7dmlzaWJpbGl0eTpoaWRkZW59LnN3aXBlci1hdXRvaGVpZ2h0LC5zd2lwZXItYXV0b2hlaWdodCAuc3dpcGVyLXNsaWRle2hlaWdodDphdXRvfS5zd2lwZXItYXV0b2hlaWdodCAuc3dpcGVyLXdyYXBwZXJ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybSxoZWlnaHR9LnN3aXBlci1iYWNrZmFjZS1oaWRkZW4gLnN3aXBlci1zbGlkZXstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5zd2lwZXItM2QsLnN3aXBlci0zZC5zd2lwZXItY3NzLW1vZGUgLnN3aXBlci13cmFwcGVye3BlcnNwZWN0aXZlOjEyMDBweH0uc3dpcGVyLTNkIC5zd2lwZXItY3ViZS1zaGFkb3csLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3csLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsLnN3aXBlci0zZCAuc3dpcGVyLXdyYXBwZXJ7dHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkfS5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3csLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3B7aGVpZ2h0OjEwMCU7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJTt6LWluZGV4OjEwfS5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3d7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xNSl9LnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0e2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDI3MGRlZyxyZ2JhKDAsMCwwLC41KSx0cmFuc3BhcmVudCl9LnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCg5MGRlZyxyZ2JhKDAsMCwwLC41KSx0cmFuc3BhcmVudCl9LnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3B7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMGRlZyxyZ2JhKDAsMCwwLC41KSx0cmFuc3BhcmVudCl9LnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b217YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMCwwLDAsLjUpLHRyYW5zcGFyZW50KX0uc3dpcGVyLWNzcy1tb2RlPi5zd2lwZXItd3JhcHBlcnstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTtvdmVyZmxvdzphdXRvO3Njcm9sbGJhci13aWR0aDpub25lfS5zd2lwZXItY3NzLW1vZGU+LnN3aXBlci13cmFwcGVyOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9LnN3aXBlci1jc3MtbW9kZT4uc3dpcGVyLXdyYXBwZXI+LnN3aXBlci1zbGlkZXtzY3JvbGwtc25hcC1hbGlnbjpzdGFydCBzdGFydH0uc3dpcGVyLWhvcml6b250YWwuc3dpcGVyLWNzcy1tb2RlPi5zd2lwZXItd3JhcHBlcntzY3JvbGwtc25hcC10eXBlOnggbWFuZGF0b3J5fS5zd2lwZXItdmVydGljYWwuc3dpcGVyLWNzcy1tb2RlPi5zd2lwZXItd3JhcHBlcntzY3JvbGwtc25hcC10eXBlOnkgbWFuZGF0b3J5fS5zd2lwZXItY2VudGVyZWQ+LnN3aXBlci13cmFwcGVyOmJlZm9yZXtjb250ZW50OiIiO2ZsZXgtc2hyaW5rOjA7b3JkZXI6OTk5OX0uc3dpcGVyLWNlbnRlcmVkLnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItd3JhcHBlcj4uc3dpcGVyLXNsaWRlOmZpcnN0LWNoaWxkey13ZWJraXQtbWFyZ2luLXN0YXJ0OnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYmVmb3JlKTttYXJnaW4taW5saW5lLXN0YXJ0OnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYmVmb3JlKX0uc3dpcGVyLWNlbnRlcmVkLnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItd3JhcHBlcjpiZWZvcmV7aGVpZ2h0OjEwMCU7bWluLWhlaWdodDoxcHg7d2lkdGg6dmFyKC0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1hZnRlcil9LnN3aXBlci1jZW50ZXJlZC5zd2lwZXItdmVydGljYWw+LnN3aXBlci13cmFwcGVyPi5zd2lwZXItc2xpZGU6Zmlyc3QtY2hpbGR7LXdlYmtpdC1tYXJnaW4tYmVmb3JlOnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYmVmb3JlKTttYXJnaW4tYmxvY2stc3RhcnQ6dmFyKC0tc3dpcGVyLWNlbnRlcmVkLW9mZnNldC1iZWZvcmUpfS5zd2lwZXItY2VudGVyZWQuc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItd3JhcHBlcjpiZWZvcmV7aGVpZ2h0OnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIpO21pbi13aWR0aDoxcHg7d2lkdGg6MTAwJX0uc3dpcGVyLWNlbnRlcmVkPi5zd2lwZXItd3JhcHBlcj4uc3dpcGVyLXNsaWRle3Njcm9sbC1zbmFwLWFsaWduOmNlbnRlciBjZW50ZXI7c2Nyb2xsLXNuYXAtc3RvcDphbHdheXN9LnN3aXBlci12aXJ0dWFsIC5zd2lwZXItc2xpZGV7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0uc3dpcGVyLXZpcnR1YWwuc3dpcGVyLWNzcy1tb2RlIC5zd2lwZXItd3JhcHBlcjphZnRlcntjb250ZW50OiIiO2xlZnQ6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS5zd2lwZXItdmlydHVhbC5zd2lwZXItY3NzLW1vZGUuc3dpcGVyLWhvcml6b250YWwgLnN3aXBlci13cmFwcGVyOmFmdGVye2hlaWdodDoxcHg7d2lkdGg6dmFyKC0tc3dpcGVyLXZpcnR1YWwtc2l6ZSl9LnN3aXBlci12aXJ0dWFsLnN3aXBlci1jc3MtbW9kZS5zd2lwZXItdmVydGljYWwgLnN3aXBlci13cmFwcGVyOmFmdGVye2hlaWdodDp2YXIoLS1zd2lwZXItdmlydHVhbC1zaXplKTt3aWR0aDoxcHh9OnJvb3R7LS1zd2lwZXItbmF2aWdhdGlvbi1zaXplOjQ0cHh9LnN3aXBlci1idXR0b24tbmV4dCwuc3dpcGVyLWJ1dHRvbi1wcmV2e2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1zd2lwZXItbmF2aWdhdGlvbi1jb2xvcix2YXIoLS1zd2lwZXItdGhlbWUtY29sb3IpKTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7aGVpZ2h0OnZhcigtLXN3aXBlci1uYXZpZ2F0aW9uLXNpemUpO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXRvcDpjYWxjKDBweCAtIHZhcigtLXN3aXBlci1uYXZpZ2F0aW9uLXNpemUpLzIpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7d2lkdGg6Y2FsYyh2YXIoLS1zd2lwZXItbmF2aWdhdGlvbi1zaXplKS80NCoyNyk7ei1pbmRleDoxMH0uc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24tZGlzYWJsZWQsLnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLWRpc2FibGVke2N1cnNvcjphdXRvO29wYWNpdHk6LjM1O3BvaW50ZXItZXZlbnRzOm5vbmV9LnN3aXBlci1idXR0b24tbmV4dC5zd2lwZXItYnV0dG9uLWhpZGRlbiwuc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24taGlkZGVue2N1cnNvcjphdXRvO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lfS5zd2lwZXItbmF2aWdhdGlvbi1kaXNhYmxlZCAuc3dpcGVyLWJ1dHRvbi1uZXh0LC5zd2lwZXItbmF2aWdhdGlvbi1kaXNhYmxlZCAuc3dpcGVyLWJ1dHRvbi1wcmV2e2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LnN3aXBlci1idXR0b24tbmV4dDphZnRlciwuc3dpcGVyLWJ1dHRvbi1wcmV2OmFmdGVye2ZvbnQtZmFtaWx5OnN3aXBlci1pY29ucztmb250LXNpemU6dmFyKC0tc3dpcGVyLW5hdmlnYXRpb24tc2l6ZSk7Zm9udC12YXJpYW50Om5vcm1hbDtsZXR0ZXItc3BhY2luZzowO2xpbmUtaGVpZ2h0OjE7dGV4dC10cmFuc2Zvcm06bm9uZSFpbXBvcnRhbnR9LnN3aXBlci1idXR0b24tcHJldiwuc3dpcGVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0e2xlZnQ6MTBweDtyaWdodDphdXRvfS5zd2lwZXItYnV0dG9uLXByZXY6YWZ0ZXIsLnN3aXBlci1ydGwgLnN3aXBlci1idXR0b24tbmV4dDphZnRlcntjb250ZW50OiJwcmV2In0uc3dpcGVyLWJ1dHRvbi1uZXh0LC5zd2lwZXItcnRsIC5zd2lwZXItYnV0dG9uLXByZXZ7bGVmdDphdXRvO3JpZ2h0OjEwcHh9LnN3aXBlci1idXR0b24tbmV4dDphZnRlciwuc3dpcGVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1wcmV2OmFmdGVye2NvbnRlbnQ6Im5leHQifS5zd2lwZXItYnV0dG9uLWxvY2t7ZGlzcGxheTpub25lfS5zd2lwZXItcGFnaW5hdGlvbntwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzO3otaW5kZXg6MTB9LnN3aXBlci1wYWdpbmF0aW9uLnN3aXBlci1wYWdpbmF0aW9uLWhpZGRlbntvcGFjaXR5OjB9LnN3aXBlci1wYWdpbmF0aW9uLWRpc2FibGVkPi5zd2lwZXItcGFnaW5hdGlvbiwuc3dpcGVyLXBhZ2luYXRpb24uc3dpcGVyLXBhZ2luYXRpb24tZGlzYWJsZWR7ZGlzcGxheTpub25lIWltcG9ydGFudH0uc3dpcGVyLWhvcml6b250YWw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMsLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24taG9yaXpvbnRhbCwuc3dpcGVyLXBhZ2luYXRpb24tY3VzdG9tLC5zd2lwZXItcGFnaW5hdGlvbi1mcmFjdGlvbntib3R0b206MTBweDtsZWZ0OjA7d2lkdGg6MTAwJX0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWlje2ZvbnQtc2l6ZTowO292ZXJmbG93OmhpZGRlbn0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNmb3JtOnNjYWxlKC4zMyl9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSwuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLW1haW57dHJhbnNmb3JtOnNjYWxlKDEpfS5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUtcHJldnt0cmFuc2Zvcm06c2NhbGUoLjY2KX0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLXByZXYtcHJldnt0cmFuc2Zvcm06c2NhbGUoLjMzKX0uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlLW5leHR7dHJhbnNmb3JtOnNjYWxlKC42Nil9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZS1uZXh0LW5leHR7dHJhbnNmb3JtOnNjYWxlKC4zMyl9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHtiYWNrZ3JvdW5kOnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1pbmFjdGl2ZS1jb2xvciwjMDAwKTtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWhlaWdodCx2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtc2l6ZSw4cHgpKTtvcGFjaXR5OnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1pbmFjdGl2ZS1vcGFjaXR5LC4yKTt3aWR0aDp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtd2lkdGgsdmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LXNpemUsOHB4KSl9YnV0dG9uLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7Ym9yZGVyOm5vbmU7Ym94LXNoYWRvdzpub25lO21hcmdpbjowO3BhZGRpbmc6MH0uc3dpcGVyLXBhZ2luYXRpb24tY2xpY2thYmxlIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7Y3Vyc29yOnBvaW50ZXJ9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldDpvbmx5LWNoaWxke2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1zd2lwZXItcGFnaW5hdGlvbi1jb2xvcix2YXIoLS1zd2lwZXItdGhlbWUtY29sb3IpKTtvcGFjaXR5OnZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1vcGFjaXR5LDEpfS5zd2lwZXItcGFnaW5hdGlvbi12ZXJ0aWNhbC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLC5zd2lwZXItdmVydGljYWw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHN7cmlnaHQ6MTBweDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC01MCUsMCl9LnN3aXBlci1wYWdpbmF0aW9uLXZlcnRpY2FsLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCwuc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7ZGlzcGxheTpibG9jazttYXJnaW46dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LXZlcnRpY2FsLWdhcCw2cHgpIDB9LnN3aXBlci1wYWdpbmF0aW9uLXZlcnRpY2FsLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljLC5zd2lwZXItdmVydGljYWw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWlje3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7d2lkdGg6OHB4fS5zd2lwZXItcGFnaW5hdGlvbi12ZXJ0aWNhbC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LC5zd2lwZXItdmVydGljYWw+LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzLHRvcCAuMnN9LnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQsLnN3aXBlci1wYWdpbmF0aW9uLWhvcml6b250YWwuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e21hcmdpbjowIHZhcigtLXN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1ob3Jpem9udGFsLWdhcCw0cHgpfS5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMsLnN3aXBlci1wYWdpbmF0aW9uLWhvcml6b250YWwuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWN7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7d2hpdGUtc3BhY2U6bm93cmFwfS5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLWR5bmFtaWMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCwuc3dpcGVyLXBhZ2luYXRpb24taG9yaXpvbnRhbC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRzLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMtZHluYW1pYyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0e3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyxsZWZ0IC4yc30uc3dpcGVyLWhvcml6b250YWwuc3dpcGVyLXJ0bD4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cy1keW5hbWljIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXR7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzLHJpZ2h0IC4yc30uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4yNSk7cG9zaXRpb246YWJzb2x1dGV9LnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1maWxse2JhY2tncm91bmQ6dmFyKC0tc3dpcGVyLXBhZ2luYXRpb24tY29sb3IsdmFyKC0tc3dpcGVyLXRoZW1lLWNvbG9yKSk7aGVpZ2h0OjEwMCU7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3RyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm0tb3JpZ2luOmxlZnQgdG9wO3dpZHRoOjEwMCV9LnN3aXBlci1ydGwgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1maWxse3RyYW5zZm9ybS1vcmlnaW46cmlnaHQgdG9wfS5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIsLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLnN3aXBlci1wYWdpbmF0aW9uLWhvcml6b250YWwsLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLnN3aXBlci1wYWdpbmF0aW9uLXZlcnRpY2FsLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLW9wcG9zaXRlLC5zd2lwZXItdmVydGljYWw+LnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyLW9wcG9zaXRle2hlaWdodDo0cHg7bGVmdDowO3RvcDowO3dpZHRoOjEwMCV9LnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1vcHBvc2l0ZSwuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIuc3dpcGVyLXBhZ2luYXRpb24taG9yaXpvbnRhbC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2Jhci1vcHBvc2l0ZSwuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIuc3dpcGVyLXBhZ2luYXRpb24tdmVydGljYWwsLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXJ7aGVpZ2h0OjEwMCU7bGVmdDowO3RvcDowO3dpZHRoOjRweH0uc3dpcGVyLXBhZ2luYXRpb24tbG9ja3tkaXNwbGF5Om5vbmV9LnN3aXBlci1zY3JvbGxiYXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xKTtib3JkZXItcmFkaXVzOjEwcHg7cG9zaXRpb246cmVsYXRpdmU7LW1zLXRvdWNoLWFjdGlvbjpub25lfS5zd2lwZXItc2Nyb2xsYmFyLWRpc2FibGVkPi5zd2lwZXItc2Nyb2xsYmFyLC5zd2lwZXItc2Nyb2xsYmFyLnN3aXBlci1zY3JvbGxiYXItZGlzYWJsZWR7ZGlzcGxheTpub25lIWltcG9ydGFudH0uc3dpcGVyLWhvcml6b250YWw+LnN3aXBlci1zY3JvbGxiYXIsLnN3aXBlci1zY3JvbGxiYXIuc3dpcGVyLXNjcm9sbGJhci1ob3Jpem9udGFse2JvdHRvbTozcHg7aGVpZ2h0OjVweDtsZWZ0OjElO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjk4JTt6LWluZGV4OjUwfS5zd2lwZXItc2Nyb2xsYmFyLnN3aXBlci1zY3JvbGxiYXItdmVydGljYWwsLnN3aXBlci12ZXJ0aWNhbD4uc3dpcGVyLXNjcm9sbGJhcntoZWlnaHQ6OTglO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjNweDt0b3A6MSU7d2lkdGg6NXB4O3otaW5kZXg6NTB9LnN3aXBlci1zY3JvbGxiYXItZHJhZ3tiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjUpO2JvcmRlci1yYWRpdXM6MTBweDtoZWlnaHQ6MTAwJTtsZWZ0OjA7cG9zaXRpb246cmVsYXRpdmU7dG9wOjA7d2lkdGg6MTAwJX0uc3dpcGVyLXNjcm9sbGJhci1jdXJzb3ItZHJhZ3tjdXJzb3I6bW92ZX0uc3dpcGVyLXNjcm9sbGJhci1sb2Nre2Rpc3BsYXk6bm9uZX0uc3dpcGVyLXpvb20tY29udGFpbmVye2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlfS5zd2lwZXItem9vbS1jb250YWluZXI+Y2FudmFzLC5zd2lwZXItem9vbS1jb250YWluZXI+aW1nLC5zd2lwZXItem9vbS1jb250YWluZXI+c3Zne21heC1oZWlnaHQ6MTAwJTttYXgtd2lkdGg6MTAwJTstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWlufS5zd2lwZXItc2xpZGUtem9vbWVke2N1cnNvcjptb3ZlfS5zd2lwZXItbGF6eS1wcmVsb2FkZXJ7Ym9yZGVyOjRweCBzb2xpZCB2YXIoLS1zd2lwZXItcHJlbG9hZGVyLWNvbG9yLHZhcigtLXN3aXBlci10aGVtZS1jb2xvcikpO2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlci10b3A6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6NDJweDtsZWZ0OjUwJTttYXJnaW4tbGVmdDotMjFweDttYXJnaW4tdG9wOi0yMXB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtLW9yaWdpbjo1MCU7d2lkdGg6NDJweDt6LWluZGV4OjEwfS5zd2lwZXItd2F0Y2gtcHJvZ3Jlc3MgLnN3aXBlci1zbGlkZS12aXNpYmxlIC5zd2lwZXItbGF6eS1wcmVsb2FkZXIsLnN3aXBlcjpub3QoLnN3aXBlci13YXRjaC1wcm9ncmVzcykgLnN3aXBlci1sYXp5LXByZWxvYWRlcnthbmltYXRpb246c3dpcGVyLXByZWxvYWRlci1zcGluIDFzIGxpbmVhciBpbmZpbml0ZX0uc3dpcGVyLWxhenktcHJlbG9hZGVyLXdoaXRley0tc3dpcGVyLXByZWxvYWRlci1jb2xvcjojZmZmfS5zd2lwZXItbGF6eS1wcmVsb2FkZXItYmxhY2t7LS1zd2lwZXItcHJlbG9hZGVyLWNvbG9yOiMwMDB9QGtleWZyYW1lcyBzd2lwZXItcHJlbG9hZGVyLXNwaW57MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3t0cmFuc2Zvcm06cm90YXRlKDF0dXJuKX19LnN3aXBlciAuc3dpcGVyLW5vdGlmaWNhdGlvbntsZWZ0OjA7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7ei1pbmRleDotMTAwMH0uc3dpcGVyLWZyZWUtbW9kZT4uc3dpcGVyLXdyYXBwZXJ7bWFyZ2luOjAgYXV0bzt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dH0uc3dpcGVyLWdyaWQ+LnN3aXBlci13cmFwcGVye2ZsZXgtd3JhcDp3cmFwfS5zd2lwZXItZ3JpZC1jb2x1bW4+LnN3aXBlci13cmFwcGVye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LXdyYXA6d3JhcH0uc3dpcGVyLWZhZGUuc3dpcGVyLWZyZWUtbW9kZSAuc3dpcGVyLXNsaWRle3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0fS5zd2lwZXItZmFkZSAuc3dpcGVyLXNsaWRle3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5fS5zd2lwZXItZmFkZSAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGV7cG9pbnRlci1ldmVudHM6bm9uZX0uc3dpcGVyLWZhZGUgLnN3aXBlci1zbGlkZS1hY3RpdmUsLnN3aXBlci1mYWRlIC5zd2lwZXItc2xpZGUtYWN0aXZlIC5zd2lwZXItc2xpZGUtYWN0aXZle3BvaW50ZXItZXZlbnRzOmF1dG99LnN3aXBlci1jdWJle292ZXJmbG93OnZpc2libGV9LnN3aXBlci1jdWJlIC5zd2lwZXItc2xpZGV7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtoZWlnaHQ6MTAwJTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zZm9ybS1vcmlnaW46MCAwO3Zpc2liaWxpdHk6aGlkZGVuO3dpZHRoOjEwMCU7ei1pbmRleDoxfS5zd2lwZXItY3ViZSAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGV7cG9pbnRlci1ldmVudHM6bm9uZX0uc3dpcGVyLWN1YmUuc3dpcGVyLXJ0bCAuc3dpcGVyLXNsaWRle3RyYW5zZm9ybS1vcmlnaW46MTAwJSAwfS5zd2lwZXItY3ViZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSwuc3dpcGVyLWN1YmUgLnN3aXBlci1zbGlkZS1hY3RpdmUgLnN3aXBlci1zbGlkZS1hY3RpdmV7cG9pbnRlci1ldmVudHM6YXV0b30uc3dpcGVyLWN1YmUgLnN3aXBlci1zbGlkZS1hY3RpdmUsLnN3aXBlci1jdWJlIC5zd2lwZXItc2xpZGUtbmV4dCwuc3dpcGVyLWN1YmUgLnN3aXBlci1zbGlkZS1uZXh0Ky5zd2lwZXItc2xpZGUsLnN3aXBlci1jdWJlIC5zd2lwZXItc2xpZGUtcHJldntwb2ludGVyLWV2ZW50czphdXRvO3Zpc2liaWxpdHk6dmlzaWJsZX0uc3dpcGVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctYm90dG9tLC5zd2lwZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LC5zd2lwZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCwuc3dpcGVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47ei1pbmRleDowfS5zd2lwZXItY3ViZSAuc3dpcGVyLWN1YmUtc2hhZG93e2JvdHRvbTowO2hlaWdodDoxMDAlO2xlZnQ6MDtvcGFjaXR5Oi42O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7ei1pbmRleDowfS5zd2lwZXItY3ViZSAuc3dpcGVyLWN1YmUtc2hhZG93OmJlZm9yZXtiYWNrZ3JvdW5kOiMwMDA7Ym90dG9tOjA7Y29udGVudDoiIjtmaWx0ZXI6Ymx1cig1MHB4KTtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH0uc3dpcGVyLWZsaXB7b3ZlcmZsb3c6dmlzaWJsZX0uc3dpcGVyLWZsaXAgLnN3aXBlci1zbGlkZXstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoxfS5zd2lwZXItZmxpcCAuc3dpcGVyLXNsaWRlIC5zd2lwZXItc2xpZGV7cG9pbnRlci1ldmVudHM6bm9uZX0uc3dpcGVyLWZsaXAgLnN3aXBlci1zbGlkZS1hY3RpdmUsLnN3aXBlci1mbGlwIC5zd2lwZXItc2xpZGUtYWN0aXZlIC5zd2lwZXItc2xpZGUtYWN0aXZle3BvaW50ZXItZXZlbnRzOmF1dG99LnN3aXBlci1mbGlwIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSwuc3dpcGVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCwuc3dpcGVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsLnN3aXBlci1mbGlwIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcHstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO3otaW5kZXg6MH0uc3dpcGVyLWNyZWF0aXZlIC5zd2lwZXItc2xpZGV7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtvdmVyZmxvdzpoaWRkZW47dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm0sb3BhY2l0eSxoZWlnaHR9LnN3aXBlci1jYXJkc3tvdmVyZmxvdzp2aXNpYmxlfS5zd2lwZXItY2FyZHMgLnN3aXBlci1zbGlkZXstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO292ZXJmbG93OmhpZGRlbjt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBib3R0b219LmNhcm91c2Vse2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZX0uY2Fyb3VzZWwgKiwuY2Fyb3VzZWwgOmFmdGVyLC5jYXJvdXNlbCA6YmVmb3Jle2JveC1zaXppbmc6aW5oZXJpdH0uY2Fyb3VzZWwuaXMtZHJhZ2dhYmxle2N1cnNvcjptb3ZlO2N1cnNvcjpncmFifS5jYXJvdXNlbC5pcy1kcmFnZ2luZ3tjdXJzb3I6bW92ZTtjdXJzb3I6Z3JhYmJpbmd9LmNhcm91c2VsX192aWV3cG9ydHttYXgtaGVpZ2h0OjEwMCU7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5jYXJvdXNlbF9fdHJhY2t7ZGlzcGxheTpmbGV4fS5jYXJvdXNlbF9fc2xpZGV7ZmxleDowIDAgYXV0bzttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWluO3BhZGRpbmc6MXJlbTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDp2YXIoLS1jYXJvdXNlbC1zbGlkZS13aWR0aCw2MCUpfS5oYXMtZG90c3ttYXJnaW4tYm90dG9tOmNhbGMoLjVyZW0gKyAyMnB4KX0uY2Fyb3VzZWxfX2RvdHN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bGVmdDowO2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MCBhdXRvO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDpjYWxjKDEwMCUgKyAuNXJlbSk7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5jYXJvdXNlbF9fZG90cyAuY2Fyb3VzZWxfX2RvdHtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrO2hlaWdodDoyMnB4O21hcmdpbjowO3BhZGRpbmc6MDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoyMnB4fS5jYXJvdXNlbF9fZG90cyAuY2Fyb3VzZWxfX2RvdDphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOmN1cnJlbnRDb2xvcjtib3JkZXItcmFkaXVzOjUwJTtjb250ZW50OiIiO2hlaWdodDo4cHg7bGVmdDo1MCU7b3BhY2l0eTouMjU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgZWFzZS1pbi1vdXQ7d2lkdGg6OHB4fS5jYXJvdXNlbF9fZG90cyAuY2Fyb3VzZWxfX2RvdC5pcy1zZWxlY3RlZDphZnRlcntvcGFjaXR5OjF9LmNhcm91c2VsX19idXR0b257YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6dmFyKC0tY2Fyb3VzZWwtYnV0dG9uLWJnLHRyYW5zcGFyZW50KTtib3JkZXI6MDtib3JkZXItcmFkaXVzOnZhcigtLWNhcm91c2VsLWJ1dHRvbi1ib3JkZXItcmFkaXVzLDUwJSk7Ym94LXNoYWRvdzp2YXIoLS1jYXJvdXNlbC1idXR0b24tc2hhZG93LG5vbmUpO2NvbG9yOnZhcigtLWNhcm91c2VsLWJ1dHRvbi1jb2xvcixjdXJyZW50Q29sb3IpO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6dmFyKC0tY2Fyb3VzZWwtYnV0dG9uLWhlaWdodCw0OHB4KTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MDtwb2ludGVyLWV2ZW50czphbGw7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgZWFzZTt3aWR0aDp2YXIoLS1jYXJvdXNlbC1idXR0b24td2lkdGgsNDhweCl9LmNhcm91c2VsX19idXR0b24uaXMtbmV4dCwuY2Fyb3VzZWxfX2J1dHRvbi5pcy1wcmV2e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LmNhcm91c2VsX19idXR0b24uaXMtcHJldntsZWZ0OjEwcHh9LmNhcm91c2VsX19idXR0b24uaXMtbmV4dHtyaWdodDoxMHB4fS5jYXJvdXNlbF9fYnV0dG9uW2Rpc2FibGVkXXtjdXJzb3I6ZGVmYXVsdDtvcGFjaXR5Oi4zfS5jYXJvdXNlbF9fYnV0dG9uIHN2Z3tmaWxsOm5vbmU7c3Ryb2tlOmN1cnJlbnRDb2xvcjtzdHJva2Utd2lkdGg6dmFyKC0tY2Fyb3VzZWwtYnV0dG9uLXN2Zy1zdHJva2Utd2lkdGgsMS41KTtzdHJva2UtbGluZWpvaW46YmV2ZWw7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7ZmlsdGVyOnZhcigtLWNhcm91c2VsLWJ1dHRvbi1zdmctZmlsdGVyLG5vbmUpO2hlaWdodDp2YXIoLS1jYXJvdXNlbC1idXR0b24tc3ZnLWhlaWdodCw1MCUpO3BvaW50ZXItZXZlbnRzOm5vbmU7d2lkdGg6dmFyKC0tY2Fyb3VzZWwtYnV0dG9uLXN2Zy13aWR0aCw1MCUpfWh0bWwud2l0aC1mYW5jeWJveHtzY3JvbGwtYmVoYXZpb3I6YXV0b31ib2R5LmNvbXBlbnNhdGUtZm9yLXNjcm9sbGJhcntvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O3RvdWNoLWFjdGlvbjpub25lfS5mYW5jeWJveF9fY29udGFpbmVyey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApOy0tY2Fyb3VzZWwtYnV0dG9uLXdpZHRoOjQ4cHg7LS1jYXJvdXNlbC1idXR0b24taGVpZ2h0OjQ4cHg7LS1jYXJvdXNlbC1idXR0b24tc3ZnLXdpZHRoOjI0cHg7LS1jYXJvdXNlbC1idXR0b24tc3ZnLWhlaWdodDoyNHB4Oy0tY2Fyb3VzZWwtYnV0dG9uLXN2Zy1zdHJva2Utd2lkdGg6Mi41Oy0tY2Fyb3VzZWwtYnV0dG9uLXN2Zy1maWx0ZXI6ZHJvcC1zaGFkb3coMXB4IDFweCAxcHggcmdiYSgwLDAsMCwuNCkpO2JvdHRvbTowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjp2YXIoLS1mYW5jeWJveC1jb2xvciwjZmZmKTtkaXJlY3Rpb246bHRyO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bGVmdDowO21hcmdpbjowO291dGxpbmU6bm9uZTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzplbnYoc2FmZS1hcmVhLWluc2V0LXRvcCwwKSBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0LDApIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLDApIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCwwKTtwb3NpdGlvbjpmaXhlZDtyaWdodDowO3RvcDowO3RyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnQ7ei1pbmRleDoxMDUwfS5mYW5jeWJveF9fY29udGFpbmVyICosLmZhbmN5Ym94X19jb250YWluZXIgOmFmdGVyLC5mYW5jeWJveF9fY29udGFpbmVyIDpiZWZvcmV7Ym94LXNpemluZzppbmhlcml0fS5mYW5jeWJveF9fY29udGFpbmVyIDpmb2N1c3tvdXRsaW5lOm5vbmV9Ym9keTpub3QoLmlzLXVzaW5nLW1vdXNlKSAuZmFuY3lib3hfX2NvbnRhaW5lciA6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAxcHggI2ZmZiwwIDAgMCAycHggdmFyKC0tZmFuY3lib3gtYWNjZW50LWNvbG9yLHJnYmEoMSwyMTAsMjMyLC45NCkpfUBtZWRpYSAobWluLXdpZHRoOjEwMjRweCl7LmZhbmN5Ym94X19jb250YWluZXJ7LS1jYXJvdXNlbC1idXR0b24td2lkdGg6NDhweDstLWNhcm91c2VsLWJ1dHRvbi1oZWlnaHQ6NDhweDstLWNhcm91c2VsLWJ1dHRvbi1zdmctd2lkdGg6MjdweDstLWNhcm91c2VsLWJ1dHRvbi1zdmctaGVpZ2h0OjI3cHh9fS5mYW5jeWJveF9fYmFja2Ryb3B7YmFja2dyb3VuZDp2YXIoLS1mYW5jeWJveC1iZyxyZ2JhKDI0LDI0LDI3LC45MikpO2JvdHRvbTowO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowO3otaW5kZXg6LTF9LmZhbmN5Ym94X19jYXJvdXNlbHtmbGV4OjEgMSBhdXRvO2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjEwfS5mYW5jeWJveF9fY2Fyb3VzZWwuaGFzLWRvdHN7bWFyZ2luLWJvdHRvbTpjYWxjKC41cmVtICsgMjJweCl9LmZhbmN5Ym94X192aWV3cG9ydHtjdXJzb3I6ZGVmYXVsdDtoZWlnaHQ6MTAwJTtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LmZhbmN5Ym94X190cmFja3tkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCV9LmZhbmN5Ym94X19zbGlkZXstLWNhcm91c2VsLWJ1dHRvbi13aWR0aDozNnB4Oy0tY2Fyb3VzZWwtYnV0dG9uLWhlaWdodDozNnB4Oy0tY2Fyb3VzZWwtYnV0dG9uLXN2Zy13aWR0aDoyMnB4Oy0tY2Fyb3VzZWwtYnV0dG9uLXN2Zy1oZWlnaHQ6MjJweDtkaXNwbGF5OmZsZXg7ZmxleDowIDAgYXV0bztmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luOjA7bWF4LXdpZHRoOjEwMCU7b3V0bGluZTowO292ZXJmbG93OmF1dG87b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWluO3BhZGRpbmc6NDhweCA4cHggOHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LmZhbmN5Ym94X19zbGlkZTphZnRlciwuZmFuY3lib3hfX3NsaWRlOmJlZm9yZXtjb250ZW50OiIiO2ZsZXg6MCAwIDA7bWFyZ2luOmF1dG99QG1lZGlhIChtaW4td2lkdGg6MTAyNHB4KXsuZmFuY3lib3hfX3NsaWRle3BhZGRpbmc6NjRweCAxMDBweH19LmZhbmN5Ym94X19jb250ZW50e2FsaWduLXNlbGY6Y2VudGVyO2JhY2tncm91bmQ6dmFyKC0tZmFuY3lib3gtY29udGVudC1iZywjZmZmKTtjb2xvcjp2YXIoLS1mYW5jeWJveC1jb250ZW50LWNvbG9yLCMzNzQxNTEpO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luOjAgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCwwKSAwIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCwwKTtwYWRkaW5nOjM2cHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyMH0uZmFuY3lib3hfX2NvbnRlbnQgOmZvY3VzOm5vdCguY2Fyb3VzZWxfX2J1dHRvbi5pcy1jbG9zZSl7Ym94LXNoYWRvdzpub25lO291dGxpbmU6dGhpbiBkb3R0ZWR9LmZhbmN5Ym94X19jYXB0aW9ue2FsaWduLXNlbGY6Y2VudGVyO2NvbG9yOnZhcigtLWZhbmN5Ym94LWNvbG9yLGN1cnJlbnRDb2xvcik7Y3Vyc29yOmF1dG87ZmxleC1zaHJpbms6MDtsaW5lLWhlaWdodDoxLjM3NTttYXJnaW46MDttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3BhZGRpbmc6MXJlbSAwIDA7dmlzaWJpbGl0eTp2aXNpYmxlfS5pcy1sb2FkaW5nIC5mYW5jeWJveF9fY2FwdGlvbnt2aXNpYmlsaXR5OmhpZGRlbn0uZmFuY3lib3hfX2NvbnRhaW5lcj4uY2Fyb3VzZWxfX2RvdHN7Y29sb3I6dmFyKC0tZmFuY3lib3gtY29sb3IsI2ZmZik7dG9wOjEwMCV9LmZhbmN5Ym94X19uYXYgLmNhcm91c2VsX19idXR0b257ei1pbmRleDo0MH0uZmFuY3lib3hfX25hdiAuY2Fyb3VzZWxfX2J1dHRvbi5pcy1uZXh0e3JpZ2h0OjhweH1AbWVkaWEgKG1pbi13aWR0aDoxMDI0cHgpey5mYW5jeWJveF9fbmF2IC5jYXJvdXNlbF9fYnV0dG9uLmlzLW5leHR7cmlnaHQ6NDBweH19LmZhbmN5Ym94X19uYXYgLmNhcm91c2VsX19idXR0b24uaXMtcHJldntsZWZ0OjhweH1AbWVkaWEgKG1pbi13aWR0aDoxMDI0cHgpey5mYW5jeWJveF9fbmF2IC5jYXJvdXNlbF9fYnV0dG9uLmlzLXByZXZ7bGVmdDo0MHB4fX0uY2Fyb3VzZWxfX2J1dHRvbi5pcy1jbG9zZXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDo4cHg7cmlnaHQ6Y2FsYyhlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0LCAwcHgpICsgOHB4KTt0b3A6OHB4O3RvcDpjYWxjKGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwcHgpICsgOHB4KTt6LWluZGV4OjQwfUBtZWRpYSAobWluLXdpZHRoOjEwMjRweCl7LmNhcm91c2VsX19idXR0b24uaXMtY2xvc2V7cmlnaHQ6NDBweH19LmZhbmN5Ym94X19jb250ZW50Pi5jYXJvdXNlbF9fYnV0dG9uLmlzLWNsb3Nle2NvbG9yOnZhcigtLWZhbmN5Ym94LWNvbG9yLCNmZmYpO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOi00MHB4fS5mYW5jeWJveF9fbm8tY2xpY2ssLmZhbmN5Ym94X19uby1jbGljayBidXR0b257cG9pbnRlci1ldmVudHM6bm9uZX0uZmFuY3lib3hfX3NwaW5uZXJ7Y29sb3I6dmFyKC0tZmFuY3lib3gtY29sb3IsY3VycmVudENvbG9yKTtoZWlnaHQ6NTBweDtsZWZ0OjUwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt3aWR0aDo1MHB4fS5mYW5jeWJveF9fc2xpZGUgLmZhbmN5Ym94X19zcGlubmVye2N1cnNvcjpwb2ludGVyO3otaW5kZXg6MTA1M30uZmFuY3lib3hfX3NwaW5uZXIgc3Zne2FuaW1hdGlvbjpmYW5jeWJveC1yb3RhdGUgMnMgbGluZWFyIGluZmluaXRlO2JvdHRvbTowO2hlaWdodDoxMDAlO2xlZnQ6MDttYXJnaW46YXV0bztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGNlbnRlcjt3aWR0aDoxMDAlfS5mYW5jeWJveF9fc3Bpbm5lciBzdmcgY2lyY2xle2ZpbGw6bm9uZTtzdHJva2Utd2lkdGg6Mi43NTtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2UtZGFzaGFycmF5OjEsMjAwO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlOmN1cnJlbnRDb2xvcjthbmltYXRpb246ZmFuY3lib3gtZGFzaCAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlfUBrZXlmcmFtZXMgZmFuY3lib3gtcm90YXRle3Rve3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX1Aa2V5ZnJhbWVzIGZhbmN5Ym94LWRhc2h7MCV7c3Ryb2tlLWRhc2hhcnJheToxLDIwMDtzdHJva2UtZGFzaG9mZnNldDowfTUwJXtzdHJva2UtZGFzaGFycmF5Ojg5LDIwMDtzdHJva2UtZGFzaG9mZnNldDotMzVweH10b3tzdHJva2UtZGFzaGFycmF5Ojg5LDIwMDtzdHJva2UtZGFzaG9mZnNldDotMTI0cHh9fS5jYXJvdXNlbF9fYnV0dG9uLmlzLWNsb3NlLC5jYXJvdXNlbF9fZG90cywuZmFuY3lib3hfX2JhY2tkcm9wLC5mYW5jeWJveF9fY2FwdGlvbiwuZmFuY3lib3hfX25hdntvcGFjaXR5OnZhcigtLWZhbmN5Ym94LW9wYWNpdHksMSl9LmZhbmN5Ym94X19jb250YWluZXIuaXMtYW5pbWF0ZWRbYXJpYS1oaWRkZW49ZmFsc2VdIC5jYXJvdXNlbF9fYnV0dG9uLmlzLWNsb3NlLC5mYW5jeWJveF9fY29udGFpbmVyLmlzLWFuaW1hdGVkW2FyaWEtaGlkZGVuPWZhbHNlXSAuY2Fyb3VzZWxfX2RvdHMsLmZhbmN5Ym94X19jb250YWluZXIuaXMtYW5pbWF0ZWRbYXJpYS1oaWRkZW49ZmFsc2VdIC5mYW5jeWJveF9fYmFja2Ryb3AsLmZhbmN5Ym94X19jb250YWluZXIuaXMtYW5pbWF0ZWRbYXJpYS1oaWRkZW49ZmFsc2VdIC5mYW5jeWJveF9fY2FwdGlvbiwuZmFuY3lib3hfX2NvbnRhaW5lci5pcy1hbmltYXRlZFthcmlhLWhpZGRlbj1mYWxzZV0gLmZhbmN5Ym94X19uYXZ7YW5pbWF0aW9uOmZhbmN5Ym94LWZhZGVJbiAuMTVzIGVhc2UgYmFja3dhcmRzfS5mYW5jeWJveF9fY29udGFpbmVyLmlzLWFuaW1hdGVkLmlzLWNsb3NpbmcgLmNhcm91c2VsX19idXR0b24uaXMtY2xvc2UsLmZhbmN5Ym94X19jb250YWluZXIuaXMtYW5pbWF0ZWQuaXMtY2xvc2luZyAuY2Fyb3VzZWxfX2RvdHMsLmZhbmN5Ym94X19jb250YWluZXIuaXMtYW5pbWF0ZWQuaXMtY2xvc2luZyAuZmFuY3lib3hfX2JhY2tkcm9wLC5mYW5jeWJveF9fY29udGFpbmVyLmlzLWFuaW1hdGVkLmlzLWNsb3NpbmcgLmZhbmN5Ym94X19jYXB0aW9uLC5mYW5jeWJveF9fY29udGFpbmVyLmlzLWFuaW1hdGVkLmlzLWNsb3NpbmcgLmZhbmN5Ym94X19uYXZ7YW5pbWF0aW9uOmZhbmN5Ym94LWZhZGVPdXQgLjE1cyBlYXNlIGJvdGh9LmZhbmN5Ym94LWZhZGVJbnthbmltYXRpb246ZmFuY3lib3gtZmFkZUluIC4xNXMgZWFzZSBib3RofS5mYW5jeWJveC1mYWRlT3V0e2FuaW1hdGlvbjpmYW5jeWJveC1mYWRlT3V0IC4xcyBlYXNlIGJvdGh9LmZhbmN5Ym94LXpvb21JblVwe2FuaW1hdGlvbjpmYW5jeWJveC16b29tSW5VcCAuMnMgZWFzZSBib3RofS5mYW5jeWJveC16b29tT3V0RG93bnthbmltYXRpb246ZmFuY3lib3gtem9vbU91dERvd24gLjE1cyBlYXNlIGJvdGh9LmZhbmN5Ym94LXRocm93T3V0VXB7YW5pbWF0aW9uOmZhbmN5Ym94LXRocm93T3V0VXAgLjE1cyBlYXNlIGJvdGh9LmZhbmN5Ym94LXRocm93T3V0RG93bnthbmltYXRpb246ZmFuY3lib3gtdGhyb3dPdXREb3duIC4xNXMgZWFzZSBib3RofUBrZXlmcmFtZXMgZmFuY3lib3gtZmFkZUluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgZmFuY3lib3gtZmFkZU91dHt0b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgZmFuY3lib3gtem9vbUluVXB7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguOTcpIHRyYW5zbGF0ZTNkKDAsMTZweCwwKX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVooMCl9fUBrZXlmcmFtZXMgZmFuY3lib3gtem9vbU91dERvd257dG97b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguOTcpIHRyYW5zbGF0ZTNkKDAsMTZweCwwKX19QGtleWZyYW1lcyBmYW5jeWJveC10aHJvd091dFVwe3Rve29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMzAlLDApfX1Aa2V5ZnJhbWVzIGZhbmN5Ym94LXRocm93T3V0RG93bnt0b3tvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMzAlLDApfX0uZmFuY3lib3hfX2Nhcm91c2VsIC5jYXJvdXNlbF9fc2xpZGV7c2Nyb2xsYmFyLWNvbG9yOiNjY2MgaHNsYSgwLDAlLDEwMCUsLjEpO3Njcm9sbGJhci13aWR0aDp0aGlufS5mYW5jeWJveF9fY2Fyb3VzZWwgLmNhcm91c2VsX19zbGlkZTo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjhweDt3aWR0aDo4cHh9LmZhbmN5Ym94X19jYXJvdXNlbCAuY2Fyb3VzZWxfX3NsaWRlOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSwxMDAlLC4xKX0uZmFuY3lib3hfX2Nhcm91c2VsIC5jYXJvdXNlbF9fc2xpZGU6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQtY29sb3I6I2NjYztib3JkZXItcmFkaXVzOjJweDtib3gtc2hhZG93Omluc2V0IDAgMCA0cHggcmdiYSgwLDAsMCwuMil9LmZhbmN5Ym94X19jYXJvdXNlbC5pcy1kcmFnZ2FibGUgLmZhbmN5Ym94X19zbGlkZSwuZmFuY3lib3hfX2Nhcm91c2VsLmlzLWRyYWdnYWJsZSAuZmFuY3lib3hfX3NsaWRlIC5mYW5jeWJveF9fY29udGVudHtjdXJzb3I6bW92ZTtjdXJzb3I6Z3JhYn0uZmFuY3lib3hfX2Nhcm91c2VsLmlzLWRyYWdnaW5nIC5mYW5jeWJveF9fc2xpZGUsLmZhbmN5Ym94X19jYXJvdXNlbC5pcy1kcmFnZ2luZyAuZmFuY3lib3hfX3NsaWRlIC5mYW5jeWJveF9fY29udGVudHtjdXJzb3I6bW92ZTtjdXJzb3I6Z3JhYmJpbmd9LmZhbmN5Ym94X19jYXJvdXNlbCAuZmFuY3lib3hfX3NsaWRlIC5mYW5jeWJveF9fY29udGVudHtjdXJzb3I6YXV0b30uZmFuY3lib3hfX2Nhcm91c2VsIC5mYW5jeWJveF9fc2xpZGUuY2FuLXpvb21faW4gLmZhbmN5Ym94X19jb250ZW50e2N1cnNvcjp6b29tLWlufS5mYW5jeWJveF9fY2Fyb3VzZWwgLmZhbmN5Ym94X19zbGlkZS5jYW4tem9vbV9vdXQgLmZhbmN5Ym94X19jb250ZW50e2N1cnNvcjp6b29tLW91dH0uZmFuY3lib3hfX2Nhcm91c2VsIC5mYW5jeWJveF9fc2xpZGUuaXMtZHJhZ2dhYmxlIC5mYW5jeWJveF9fY29udGVudHtjdXJzb3I6bW92ZTtjdXJzb3I6Z3JhYn0uZmFuY3lib3hfX2Nhcm91c2VsIC5mYW5jeWJveF9fc2xpZGUuaXMtZHJhZ2dpbmcgLmZhbmN5Ym94X19jb250ZW50e2N1cnNvcjptb3ZlO2N1cnNvcjpncmFiYmluZ30uZmFuY3lib3hfX2ltYWdle3RyYW5zZm9ybS1vcmlnaW46MCAwO3RyYW5zaXRpb246bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9Lmhhcy1pbWFnZSAuZmFuY3lib3hfX2NvbnRlbnR7YmFja2dyb3VuZDp0cmFuc3BhcmVudDttaW4taGVpZ2h0OjFweDtwYWRkaW5nOjB9LmlzLWNsb3NpbmcgLmhhcy1pbWFnZSAuZmFuY3lib3hfX2NvbnRlbnR7b3ZlcmZsb3c6dmlzaWJsZX0uaGFzLWltYWdlW2RhdGEtaW1hZ2UtZml0PWNvbnRhaW5de292ZXJmbG93OnZpc2libGU7dG91Y2gtYWN0aW9uOm5vbmV9Lmhhcy1pbWFnZVtkYXRhLWltYWdlLWZpdD1jb250YWluXSAuZmFuY3lib3hfX2NvbnRlbnR7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDp3cmFwfS5oYXMtaW1hZ2VbZGF0YS1pbWFnZS1maXQ9Y29udGFpbl0gLmZhbmN5Ym94X19pbWFnZXttYXgtaGVpZ2h0OjEwMCU7bWF4LXdpZHRoOjEwMCU7LW8tb2JqZWN0LWZpdDpjb250YWluO29iamVjdC1maXQ6Y29udGFpbn0uaGFzLWltYWdlW2RhdGEtaW1hZ2UtZml0PWNvbnRhaW4td117b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvfS5oYXMtaW1hZ2VbZGF0YS1pbWFnZS1maXQ9Y29udGFpbi13XSAuZmFuY3lib3hfX2NvbnRlbnR7bWluLWhlaWdodDphdXRvfS5oYXMtaW1hZ2VbZGF0YS1pbWFnZS1maXQ9Y29udGFpbi13XSAuZmFuY3lib3hfX2ltYWdle2hlaWdodDphdXRvO21heC13aWR0aDoxMDAlfS5oYXMtaW1hZ2VbZGF0YS1pbWFnZS1maXQ9Y292ZXJde292ZXJmbG93OnZpc2libGU7dG91Y2gtYWN0aW9uOm5vbmV9Lmhhcy1pbWFnZVtkYXRhLWltYWdlLWZpdD1jb3Zlcl0gLmZhbmN5Ym94X19jb250ZW50e2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lmhhcy1pbWFnZVtkYXRhLWltYWdlLWZpdD1jb3Zlcl0gLmZhbmN5Ym94X19pbWFnZXtoZWlnaHQ6MTAwJTstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXI7d2lkdGg6MTAwJX0uZmFuY3lib3hfX2Nhcm91c2VsIC5mYW5jeWJveF9fc2xpZGUuaGFzLWh0bWw1dmlkZW8gLmZhbmN5Ym94X19jb250ZW50LC5mYW5jeWJveF9fY2Fyb3VzZWwgLmZhbmN5Ym94X19zbGlkZS5oYXMtaWZyYW1lIC5mYW5jeWJveF9fY29udGVudCwuZmFuY3lib3hfX2Nhcm91c2VsIC5mYW5jeWJveF9fc2xpZGUuaGFzLW1hcCAuZmFuY3lib3hfX2NvbnRlbnQsLmZhbmN5Ym94X19jYXJvdXNlbCAuZmFuY3lib3hfX3NsaWRlLmhhcy1wZGYgLmZhbmN5Ym94X19jb250ZW50LC5mYW5jeWJveF9fY2Fyb3VzZWwgLmZhbmN5Ym94X19zbGlkZS5oYXMtdmlkZW8gLmZhbmN5Ym94X19jb250ZW50e2ZsZXgtc2hyaW5rOjE7bWF4LXdpZHRoOjEwMCU7bWluLWhlaWdodDoxcHg7b3ZlcmZsb3c6dmlzaWJsZX0uZmFuY3lib3hfX2Nhcm91c2VsIC5mYW5jeWJveF9fc2xpZGUuaGFzLWlmcmFtZSAuZmFuY3lib3hfX2NvbnRlbnQsLmZhbmN5Ym94X19jYXJvdXNlbCAuZmFuY3lib3hfX3NsaWRlLmhhcy1tYXAgLmZhbmN5Ym94X19jb250ZW50LC5mYW5jeWJveF9fY2Fyb3VzZWwgLmZhbmN5Ym94X19zbGlkZS5oYXMtcGRmIC5mYW5jeWJveF9fY29udGVudHtoZWlnaHQ6ODAlO3dpZHRoOjEwMCV9LmZhbmN5Ym94X19jYXJvdXNlbCAuZmFuY3lib3hfX3NsaWRlLmhhcy1odG1sNXZpZGVvIC5mYW5jeWJveF9fY29udGVudCwuZmFuY3lib3hfX2Nhcm91c2VsIC5mYW5jeWJveF9fc2xpZGUuaGFzLXZpZGVvIC5mYW5jeWJveF9fY29udGVudHtoZWlnaHQ6NTQwcHg7bWF4LWhlaWdodDoxMDAlO21heC13aWR0aDoxMDAlO3dpZHRoOjk2MHB4fS5mYW5jeWJveF9fY2Fyb3VzZWwgLmZhbmN5Ym94X19zbGlkZS5oYXMtaHRtbDV2aWRlbyAuZmFuY3lib3hfX2NvbnRlbnQsLmZhbmN5Ym94X19jYXJvdXNlbCAuZmFuY3lib3hfX3NsaWRlLmhhcy1tYXAgLmZhbmN5Ym94X19jb250ZW50LC5mYW5jeWJveF9fY2Fyb3VzZWwgLmZhbmN5Ym94X19zbGlkZS5oYXMtcGRmIC5mYW5jeWJveF9fY29udGVudCwuZmFuY3lib3hfX2Nhcm91c2VsIC5mYW5jeWJveF9fc2xpZGUuaGFzLXZpZGVvIC5mYW5jeWJveF9fY29udGVudHtiYWNrZ3JvdW5kOnJnYmEoMjQsMjQsMjcsLjkpO2NvbG9yOiNmZmY7cGFkZGluZzowfS5mYW5jeWJveF9fY2Fyb3VzZWwgLmZhbmN5Ym94X19zbGlkZS5oYXMtbWFwIC5mYW5jeWJveF9fY29udGVudHtiYWNrZ3JvdW5kOiNlNWUzZGZ9LmZhbmN5Ym94X19odG1sNXZpZGVvLC5mYW5jeWJveF9faWZyYW1le2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5mYW5jeWJveC1wbGFjZWhvbGRlcntjbGlwOnJlY3QoMCwwLDAsMCk7Ym9yZGVyLXdpZHRoOjA7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoxcHh9LmZhbmN5Ym94X190aHVtYnN7ZmxleDowIDAgYXV0bztvcGFjaXR5OnZhcigtLWZhbmN5Ym94LW9wYWNpdHksMSk7cGFkZGluZzowIDNweDtwb3NpdGlvbjpyZWxhdGl2ZX0uZmFuY3lib3hfX2NvbnRhaW5lci5pcy1hbmltYXRlZFthcmlhLWhpZGRlbj1mYWxzZV0gLmZhbmN5Ym94X190aHVtYnN7YW5pbWF0aW9uOmZhbmN5Ym94LWZhZGVJbiAuMTVzIGVhc2UtaW4gYmFja3dhcmRzfS5mYW5jeWJveF9fY29udGFpbmVyLmlzLWFuaW1hdGVkLmlzLWNsb3NpbmcgLmZhbmN5Ym94X190aHVtYnN7b3BhY2l0eTowfS5mYW5jeWJveF9fdGh1bWJzIC5jYXJvdXNlbF9fc2xpZGV7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaXppbmc6Y29udGVudC1ib3g7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXg6MCAwIGF1dG87anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW46MDtvdmVyZmxvdzp2aXNpYmxlO3BhZGRpbmc6OHB4IDNweDt3aWR0aDp2YXIoLS1mYW5jeWJveC10aHVtYnMtd2lkdGgsOTZweCl9LmZhbmN5Ym94X190aHVtYnMgLmNhcm91c2VsX19zbGlkZSAuZmFuY3lib3hfX3RodW1iOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1mYW5jeWJveC1hY2NlbnQtY29sb3IscmdiYSgzNCwyMTMsMjMzLC45NikpO2JvcmRlci1yYWRpdXM6dmFyKC0tZmFuY3lib3gtdGh1bWJzLWJvcmRlci1yYWRpdXMsNHB4KTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjVweDtib3R0b206MDtjb250ZW50OiIiO2xlZnQ6MDtvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBlYXNlfS5mYW5jeWJveF9fdGh1bWJzIC5jYXJvdXNlbF9fc2xpZGUuaXMtbmF2LXNlbGVjdGVkIC5mYW5jeWJveF9fdGh1bWI6YWZ0ZXJ7b3BhY2l0eTouOTJ9LmZhbmN5Ym94X190aHVtYnMgLmNhcm91c2VsX19zbGlkZT4qe3BvaW50ZXItZXZlbnRzOm5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5mYW5jeWJveF9fdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuMSk7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb3Zlcjtib3JkZXItcmFkaXVzOnZhcigtLWZhbmN5Ym94LXRodW1icy1ib3JkZXItcmFkaXVzLDRweCk7cGFkZGluZy10b3A6Y2FsYygxMDAlLyh2YXIoLS1mYW5jeWJveC10aHVtYnMtcmF0aW8sIDEuNSkpKTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfS5mYW5jeWJveF9fdG9vbGJhcnstLWNhcm91c2VsLWJ1dHRvbi1zdmctd2lkdGg6MjBweDstLWNhcm91c2VsLWJ1dHRvbi1zdmctaGVpZ2h0OjIwcHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRlZyx0cmFuc3BhcmVudCAwLHJnYmEoMCwwLDAsLjAwNikgOC4xJSxyZ2JhKDAsMCwwLC4wMjEpIDE1LjUlLHJnYmEoMCwwLDAsLjA0NikgMjIuNSUscmdiYSgwLDAsMCwuMDc3KSAyOSUscmdiYSgwLDAsMCwuMTE0KSAzNS4zJSxyZ2JhKDAsMCwwLC4xNTUpIDQxLjIlLHJnYmEoMCwwLDAsLjE5OCkgNDcuMSUscmdiYSgwLDAsMCwuMjQyKSA1Mi45JSxyZ2JhKDAsMCwwLC4yODUpIDU4LjglLHJnYmEoMCwwLDAsLjMyNikgNjQuNyUscmdiYSgwLDAsMCwuMzYzKSA3MSUscmdiYSgwLDAsMCwuMzk0KSA3Ny41JSxyZ2JhKDAsMCwwLC40MTkpIDg0LjUlLHJnYmEoMCwwLDAsLjQzNCkgOTEuOSUscmdiYSgwLDAsMCwuNDQpKTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bGVmdDowO29wYWNpdHk6dmFyKC0tZmFuY3lib3gtb3BhY2l0eSwxKTtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0ZXh0LXNoYWRvdzp2YXIoLS1mYW5jeWJveC10b29sYmFyLXRleHQtc2hhZG93LDFweCAxcHggMXB4IHJnYmEoMCwwLDAsLjQpKTt0b3A6MDt0b3VjaC1hY3Rpb246bm9uZTt6LWluZGV4OjIwfUBtZWRpYSAobWluLXdpZHRoOjEwMjRweCl7LmZhbmN5Ym94X190b29sYmFye3BhZGRpbmc6OHB4fX0uZmFuY3lib3hfX2NvbnRhaW5lci5pcy1hbmltYXRlZFthcmlhLWhpZGRlbj1mYWxzZV0gLmZhbmN5Ym94X190b29sYmFye2FuaW1hdGlvbjpmYW5jeWJveC1mYWRlSW4gLjE1cyBlYXNlLWluIGJhY2t3YXJkc30uZmFuY3lib3hfX2NvbnRhaW5lci5pcy1hbmltYXRlZC5pcy1jbG9zaW5nIC5mYW5jeWJveF9fdG9vbGJhcntvcGFjaXR5OjB9LmZhbmN5Ym94X190b29sYmFyX19pdGVtc3tkaXNwbGF5OmZsZXh9LmZhbmN5Ym94X190b29sYmFyX19pdGVtcy0tbGVmdHttYXJnaW4tcmlnaHQ6YXV0b30uZmFuY3lib3hfX3Rvb2xiYXJfX2l0ZW1zLS1jZW50ZXJ7bGVmdDo1MCU7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSl9LmZhbmN5Ym94X190b29sYmFyX19pdGVtcy0tcmlnaHR7bWFyZ2luLWxlZnQ6YXV0b31AbWVkaWEgKG1heC13aWR0aDo2NDBweCl7LmZhbmN5Ym94X190b29sYmFyX19pdGVtcy0tY2VudGVyOm5vdCg6bGFzdC1jaGlsZCl7ZGlzcGxheTpub25lfX0uZmFuY3lib3hfX2NvdW50ZXJ7LXdlYmtpdC1mb250LXNtb290aGluZzpzdWJwaXhlbC1hbnRpYWxpYXNlZDtmb250LXNpemU6MTdweDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7bGluZS1oZWlnaHQ6dmFyKC0tY2Fyb3VzZWwtYnV0dG9uLWhlaWdodCw0OHB4KTttaW4td2lkdGg6NzJweDtwYWRkaW5nOjAgMTBweDt0ZXh0LWFsaWduOmNlbnRlcn0uZmFuY3lib3hfX3Byb2dyZXNze2JhY2tncm91bmQ6dmFyKC0tZmFuY3lib3gtYWNjZW50LWNvbG9yLHJnYmEoMzQsMjEzLDIzMywuOTYpKTtoZWlnaHQ6M3B4O2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowO3RyYW5zZm9ybTpzY2FsZVgoMCk7dHJhbnNmb3JtLW9yaWdpbjowO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7ei1pbmRleDozMH0uZmFuY3lib3hfX2NvbnRhaW5lcjotd2Via2l0LWZ1bGwtc2NyZWVuOjpiYWNrZHJvcHtvcGFjaXR5OjB9LmZhbmN5Ym94X19jb250YWluZXI6ZnVsbHNjcmVlbjo6YmFja2Ryb3B7b3BhY2l0eTowfS5mYW5jeWJveF9fYnV0dG9uLS1mdWxsc2NyZWVuIGc6bnRoLWNoaWxkKDIpe2Rpc3BsYXk6bm9uZX0uZmFuY3lib3hfX2NvbnRhaW5lcjotd2Via2l0LWZ1bGwtc2NyZWVuIC5mYW5jeWJveF9fYnV0dG9uLS1mdWxsc2NyZWVuIGc6Zmlyc3QtY2hpbGR7ZGlzcGxheTpub25lfS5mYW5jeWJveF9fY29udGFpbmVyOmZ1bGxzY3JlZW4gLmZhbmN5Ym94X19idXR0b24tLWZ1bGxzY3JlZW4gZzpmaXJzdC1jaGlsZHtkaXNwbGF5Om5vbmV9LmZhbmN5Ym94X19jb250YWluZXI6LXdlYmtpdC1mdWxsLXNjcmVlbiAuZmFuY3lib3hfX2J1dHRvbi0tZnVsbHNjcmVlbiBnOm50aC1jaGlsZCgyKXtkaXNwbGF5OmJsb2NrfS5mYW5jeWJveF9fY29udGFpbmVyOmZ1bGxzY3JlZW4gLmZhbmN5Ym94X19idXR0b24tLWZ1bGxzY3JlZW4gZzpudGgtY2hpbGQoMil7ZGlzcGxheTpibG9ja30uZmFuY3lib3hfX2J1dHRvbi0tc2xpZGVzaG93IGc6bnRoLWNoaWxkKDIpLC5mYW5jeWJveF9fY29udGFpbmVyLmhhcy1zbGlkZXNob3cgLmZhbmN5Ym94X19idXR0b24tLXNsaWRlc2hvdyBnOmZpcnN0LWNoaWxke2Rpc3BsYXk6bm9uZX0uZmFuY3lib3hfX2NvbnRhaW5lci5oYXMtc2xpZGVzaG93IC5mYW5jeWJveF9fYnV0dG9uLS1zbGlkZXNob3cgZzpudGgtY2hpbGQoMil7ZGlzcGxheTpibG9ja31Aa2V5ZnJhbWVzIG5vdHlmLWZhZGVpbnVwezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyNSUpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19QGtleWZyYW1lcyBub3R5Zi1mYWRlaW5sZWZ0ezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyNSUpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19QGtleWZyYW1lcyBub3R5Zi1mYWRlb3V0cmlnaHR7MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfXRve29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyNSUpfX1Aa2V5ZnJhbWVzIG5vdHlmLWZhZGVvdXRkb3duezAle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX10b3tvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjUlKX19QGtleWZyYW1lcyByaXBwbGV7MCV7dHJhbnNmb3JtOnNjYWxlKDApIHRyYW5zbGF0ZVkoLTQ1JSkgdHJhbnNsYXRlWCgxMyUpfXRve3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKC00NSUpIHRyYW5zbGF0ZVgoMTMlKX19Lm5vdHlme2FsaWduLWl0ZW1zOmZsZXgtZW5kO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojZmZmO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2xlZnQ6MDtwYWRkaW5nOjIwcHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjpmaXhlZDt0b3A6MDt3aWR0aDoxMDAlO3otaW5kZXg6OTk5OX0ubm90eWZfX2ljb24tLWVycm9yLC5ub3R5Zl9faWNvbi0tc3VjY2Vzc3tiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTpibG9jaztoZWlnaHQ6MjFweDttYXJnaW46MCBhdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjIxcHh9Lm5vdHlmX19pY29uLS1lcnJvcjphZnRlciwubm90eWZfX2ljb24tLWVycm9yOmJlZm9yZXtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjtib3JkZXItcmFkaXVzOjNweDtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEycHg7bGVmdDo5cHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjVweDt3aWR0aDozcHh9Lm5vdHlmX19pY29uLS1lcnJvcjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9Lm5vdHlmX19pY29uLS1lcnJvcjpiZWZvcmV7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9Lm5vdHlmX19pY29uLS1zdWNjZXNzOmFmdGVyLC5ub3R5Zl9faWNvbi0tc3VjY2VzczpiZWZvcmV7YmFja2dyb3VuZDpjdXJyZW50Q29sb3I7Ym9yZGVyLXJhZGl1czozcHg7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjNweH0ubm90eWZfX2ljb24tLXN1Y2Nlc3M6YWZ0ZXJ7aGVpZ2h0OjZweDtsZWZ0OjZweDt0b3A6OXB4O3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX0ubm90eWZfX2ljb24tLXN1Y2Nlc3M6YmVmb3Jle2hlaWdodDoxMXB4O2xlZnQ6MTBweDt0b3A6NXB4O3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5ub3R5Zl9fdG9hc3R7YW5pbWF0aW9uOm5vdHlmLWZhZGVpbnVwIC4zcyBlYXNlLWluIGZvcndhcmRzO2JvcmRlci1yYWRpdXM6MnB4O2JveC1zaGFkb3c6MCAzcHggN3B4IDAgcmdiYSgwLDAsMCwuMjUpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmJsb2NrO2ZsZXgtc2hyaW5rOjA7bWF4LXdpZHRoOjMwMHB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjAgMTVweDtwb2ludGVyLWV2ZW50czphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDI1JSl9Lm5vdHlmX190b2FzdC0tZGlzYXBwZWFye2FuaW1hdGlvbjpub3R5Zi1mYWRlb3V0ZG93biAuM3MgZm9yd2FyZHM7YW5pbWF0aW9uLWRlbGF5Oi4yNXM7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9Lm5vdHlmX190b2FzdC0tZGlzYXBwZWFyIC5ub3R5Zl9faWNvbiwubm90eWZfX3RvYXN0LS1kaXNhcHBlYXIgLm5vdHlmX19tZXNzYWdle2FuaW1hdGlvbjpub3R5Zi1mYWRlb3V0ZG93biAuM3MgZm9yd2FyZHM7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfS5ub3R5Zl9fdG9hc3QtLWRpc2FwcGVhciAubm90eWZfX2Rpc21pc3N7YW5pbWF0aW9uOm5vdHlmLWZhZGVvdXRyaWdodCAuM3MgZm9yd2FyZHM7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfS5ub3R5Zl9fdG9hc3QtLWRpc2FwcGVhciAubm90eWZfX21lc3NhZ2V7YW5pbWF0aW9uLWRlbGF5Oi4wNXN9Lm5vdHlmX190b2FzdC0tdXBwZXJ7bWFyZ2luLWJvdHRvbToyMHB4fS5ub3R5Zl9fdG9hc3QtLWxvd2Vye21hcmdpbi10b3A6MjBweH0ubm90eWZfX3RvYXN0LS1kaXNtaXNzaWJsZSAubm90eWZfX3dyYXBwZXJ7cGFkZGluZy1yaWdodDozMHB4fS5ub3R5Zl9fcmlwcGxle2FuaW1hdGlvbjpyaXBwbGUgLjRzIGVhc2Utb3V0IGZvcndhcmRzO2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDo0MDBweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowO3RyYW5zZm9ybTpzY2FsZSgwKSB0cmFuc2xhdGVZKC01MSUpIHRyYW5zbGF0ZVgoMTMlKTt0cmFuc2Zvcm0tb3JpZ2luOmJvdHRvbSByaWdodDt3aWR0aDo0MDBweDt6LWluZGV4OjV9Lm5vdHlmX193cmFwcGVye2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOjNweDtkaXNwbGF5OmZsZXg7cGFkZGluZy1ib3R0b206MTdweDtwYWRkaW5nLXJpZ2h0OjE1cHg7cGFkZGluZy10b3A6MTdweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjEwfS5ub3R5Zl9faWNvbnthbmltYXRpb246bm90eWYtZmFkZWludXAgLjNzIGZvcndhcmRzO2FuaW1hdGlvbi1kZWxheTouM3M7Zm9udC1zaXplOjEuM2VtO21hcmdpbi1yaWdodDoxM3B4O29wYWNpdHk6MDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoyMnB4fS5ub3R5Zl9fZGlzbWlzc3thbmltYXRpb246bm90eWYtZmFkZWlubGVmdCAuM3MgZm9yd2FyZHM7YW5pbWF0aW9uLWRlbGF5Oi4zNXM7aGVpZ2h0OjEwMCU7bWFyZ2luLXJpZ2h0Oi0xNXB4O29wYWNpdHk6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowO3dpZHRoOjI2cHh9Lm5vdHlmX19kaXNtaXNzLWJ0bntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjI1KTtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MTAwJTtvcGFjaXR5Oi4zNTtvdXRsaW5lOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2U7d2lkdGg6MTAwJX0ubm90eWZfX2Rpc21pc3MtYnRuOmFmdGVyLC5ub3R5Zl9fZGlzbWlzcy1idG46YmVmb3Jle2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmFkaXVzOjNweDtjb250ZW50OiIiO2hlaWdodDoxMnB4O2xlZnQ6Y2FsYyg1MCUgLSAxcHgpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDUwJSAtIDVweCk7d2lkdGg6MnB4fS5ub3R5Zl9fZGlzbWlzcy1idG46YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfS5ub3R5Zl9fZGlzbWlzcy1idG46YmVmb3Jle3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5ub3R5Zl9fZGlzbWlzcy1idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xNSk7b3BhY2l0eTouN30ubm90eWZfX2Rpc21pc3MtYnRuOmFjdGl2ZXtvcGFjaXR5Oi44fS5ub3R5Zl9fbWVzc2FnZXthbmltYXRpb246bm90eWYtZmFkZWludXAgLjNzIGZvcndhcmRzO2FuaW1hdGlvbi1kZWxheTouMjVzO2xpbmUtaGVpZ2h0OjEuNWVtO29wYWNpdHk6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQ4MHB4KXsubm90eWZ7cGFkZGluZzowfS5ub3R5Zl9fcmlwcGxle2FuaW1hdGlvbi1kdXJhdGlvbjouNXM7aGVpZ2h0OjYwMHB4O3dpZHRoOjYwMHB4fS5ub3R5Zl9fdG9hc3R7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6MCAtMnB4IDdweCAwIHJnYmEoMCwwLDAsLjEzKTttYXgtd2lkdGg6bm9uZTt3aWR0aDoxMDAlfS5ub3R5Zl9fZGlzbWlzc3t3aWR0aDo1NnB4fX0ucGFnZS0tNDA0IC5oZWFkZXJfX2xvZ28sLnBhZ2UtLWVjb3N5c3RlbSAuaGVhZGVyX19sb2dvLC5wYWdlLS1sZXZlbHMgLmhlYWRlcl9fbG9nbywucGFnZS0tbmZ0IC5oZWFkZXJfX2xvZ28sLnBhZ2UtLXJld2FyZHMgLmhlYWRlcl9fbG9nbywucGFnZS0tdG9rZW4gLmhlYWRlcl9fbG9nb3tmaWx0ZXI6YnJpZ2h0bmVzcygwKSBpbnZlcnQoMSl9LnBhZ2UtLTQwNCAuaGVhZGVyX19pbm5lciwucGFnZS0tZWNvc3lzdGVtIC5oZWFkZXJfX2lubmVyLC5wYWdlLS1sZXZlbHMgLmhlYWRlcl9faW5uZXIsLnBhZ2UtLW5mdCAuaGVhZGVyX19pbm5lciwucGFnZS0tcmV3YXJkcyAuaGVhZGVyX19pbm5lciwucGFnZS0tdG9rZW4gLmhlYWRlcl9faW5uZXJ7LS1oZWFkZXItaG92ZXItY29sb3I6cmdiKHZhcigtLWNvbG9yLWxpZ2h0LWhhcmQpLzEpO2NvbG9yOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvMSl9LnBhZ2UtLXRva2Vue2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLWRhcmspLzEpfS5wYWdlLS1ibG9ne2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE3NGRlZyxyZ2JhKDYzLDU5LDI1NSwuMjUpIDQlLHJnYmEoOSwxOTAsMTM5LC4yNSkgOTYlKX0ucGFnZS0tNDA0IC5tYWlue2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE2M2RlZywjM2YzYmZmIDE5JSwjMDliZThiIDgxJSl9LndyYXBwZXJ7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z3JpZC10ZW1wbGF0ZS1yb3dzOmF1dG8gMWZyIGF1dG87bWluLWhlaWdodDoxMDB2aH0ud3JhcHBlci5oYXMtdG9wLWJucntncmlkLXRlbXBsYXRlLXJvd3M6YXV0byBhdXRvIDFmciBhdXRvfS53cmFwcGVyPi5oZWFkZXJ7bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLWhlYWRlci1oZWlnaHQpKi0xKX0ubWFpbnttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW59Lm1haW4+c2VjdGlvbjpmaXJzdC1vZi10eXBlOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OnZhcigtLWhlYWRlci1oZWlnaHQpO3BvaW50ZXItZXZlbnRzOm5vbmU7d2lkdGg6MTAwJX0uY29udGFpbmVye21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG87bWF4LXdpZHRoOnZhcigtLWNvbnRhaW5lci1tYXgtd2lkdGgpO3BhZGRpbmctbGVmdDp2YXIoLS1jb250YWluZXItcGFkZGluZyk7cGFkZGluZy1yaWdodDp2YXIoLS1jb250YWluZXItcGFkZGluZyl9QG1lZGlhIChtYXgtd2lkdGg6NzU5cHgpey5jb250YWluZXJ7bWF4LXdpZHRoOjU3NnB4fX0uc2VjdGlvbntwb3NpdGlvbjpyZWxhdGl2ZX0uc2VjdGlvbi0teHN7cGFkZGluZzpjYWxjKDEzLjMzMzMzcHggKyA0LjYyOTYzdncpIDB9LnNlY3Rpb24tLXNte3BhZGRpbmc6Y2FsYygxNnB4ICsgNS41NTU1NnZ3KSAwfS5zZWN0aW9uLS1tZHtwYWRkaW5nOmNhbGMoMjYuNjY2NjdweCArIDYuNDgxNDh2dykgMH0uc2VjdGlvbi0tbGd7cGFkZGluZzpjYWxjKDI2LjY2NjY3cHggKyAzLjI1OTI2dncpIDB9LnNlY3Rpb24tLW11dGVke2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLWxpZ2h0KS8xKX0uc2VjdGlvbi0tZGFya3stLXRleHQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS8xKTtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1kYXJrKS8xKTtjb2xvcjpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzEpfS5pY29ue2ZpbGw6Y3VycmVudENvbG9yO2Rpc3BsYXk6YmxvY2s7ZmxleC1zaHJpbms6MDtoZWlnaHQ6MWVtO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNmb3JtOnNjYWxlKDEpO3dpZHRoOjFlbX0uaWNvbi1yYWlzZWR7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtc2hyaW5rOjA7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uaWNvbi1yYWlzZWQgLmljb257ZmlsdGVyOmRyb3Atc2hhZG93KDAgMnB4IDFweCByZ2JhKDAsMCwwLC4xNikpfS5pY29uLXJhaXNlZC0tcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xKTtib3gtc2hhZG93OnZhcigtLWdsb3ctcHJpbWFyeS1sb3cpfS5pY29uLXJhaXNlZC0tcHJpbWFyeSAuaWNvbntmaWxsOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvMSl9Lmljb24tcmFpc2VkLS1zZWNvbmRhcnl7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3Itc2Vjb25kYXJ5KS8xKTtib3gtc2hhZG93OnZhcigtLWdsb3ctc2Vjb25kYXJ5LWxvdyl9Lmljb24tcmFpc2VkLS1zZWNvbmRhcnkgLmljb257ZmlsbDpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzEpfS5pY29uLXJhaXNlZC0td2hpdGV7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzEpO2JveC1zaGFkb3c6MCAxNHB4IDI4cHggMCByZ2JhKDE0MCwxNDUsMTY0LC4xNil9Lmljb24tcmFpc2VkLS13aGl0ZSAuaWNvbntmaWxsOnJnYih2YXIoLS1jb2xvci1zZWNvbmRhcnkpLzEpfS5pY29uLXJhaXNlZC0tZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLWRhbmdlcikvMSk7Ym94LXNoYWRvdzowIDE0cHggMjhweCAwIHJnYmEoMTQwLDE0NSwxNjQsLjE2KX0uaWNvbi1yYWlzZWQtLWRhbmdlciAuaWNvbntmaWxsOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvMSl9Lmljb24tcmFpc2VkLS1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1saWdodCkvMSk7Ym94LXNoYWRvdzowIDE0cHggMjhweCAwIHJnYmEoMTQwLDE0NSwxNjQsLjE2KX0uaWNvbi1yYWlzZWQtLWxpZ2h0IC5pY29ue2ZpbGw6cmdiKHZhcigtLWNvbG9yLXByaW1hcnkpLzEpfS5pY29uLXJhaXNlZC0tZ3JheS1kYXJre2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLWdyYXktZGFyaykvMSk7Ym94LXNoYWRvdzowIDE0cHggMjhweCAwIHJnYmEoMTQwLDE0NSwxNjQsLjE2KX0uaWNvbi1yYWlzZWQtLWdyYXktZGFyayAuaWNvbntmaWxsOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvMSl9Lmljb24tcmFpc2VkLS14c3tib3JkZXItYm90dG9tOjNweCBzb2xpZCByZ2IodmFyKC0tY29sb3ItZGFyaykvMjAlKTtib3JkZXItcmFkaXVzOjZweDtoZWlnaHQ6MzJweDt3aWR0aDozMnB4fS5pY29uLXJhaXNlZC0teHMgLmljb257aGVpZ2h0OjE2cHg7d2lkdGg6MTZweH0uaWNvbi1yYWlzZWQtLXNte2JvcmRlci1ib3R0b206M3B4IHNvbGlkIHJnYih2YXIoLS1jb2xvci1kYXJrKS8yMCUpO2hlaWdodDo0MHB4O3dpZHRoOjQwcHh9Lmljb24tcmFpc2VkLS1zbSAuaWNvbntoZWlnaHQ6MjBweDt3aWR0aDoyMHB4fS5pY29uLXJhaXNlZC0tbWR7Ym9yZGVyLWJvdHRvbTo0cHggc29saWQgcmdiKHZhcigtLWNvbG9yLWRhcmspLzIwJSk7aGVpZ2h0OjQ4cHg7d2lkdGg6NDhweH0uaWNvbi1yYWlzZWQtLW1kIC5pY29ue2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9Lmxpbmt7Y29sb3I6cmdiKHZhcigtLWNvbG9yLWdyYXktZGFyaykvMSk7ZGlzcGxheTppbmxpbmUtZmxleH1AbWVkaWEgKGhvdmVyOmhvdmVyKXsubGluazpob3Zlcntjb2xvcjpyZ2IodmFyKC0tY29sb3ItcHJpbWFyeSkvMSl9fS5saW5rIC5pY29ue2hlaWdodDoyNHB4O21hcmdpbi1yaWdodDoxNnB4O3dpZHRoOjI0cHh9LmJ0bnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtmb250LXdlaWdodDo5MDA7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bWF4LXdpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tcHJvcGVydHk6YmFja2dyb3VuZC1jb2xvcixib3gtc2hhZG93LGNvbG9yO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpO3doaXRlLXNwYWNlOm5vd3JhcH0uYnRuLS1wcmltYXJ5Om5vdChbZGlzYWJsZWRdKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xKTtib3gtc2hhZG93OnZhcigtLWdsb3ctcHJpbWFyeS1sb3cpO2NvbG9yOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvMSl9QG1lZGlhIChob3Zlcjpob3Zlcil7LmJ0bi0tcHJpbWFyeTpub3QoW2Rpc2FibGVkXSk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3ItcHJpbWFyeS1zb2Z0KS8xKTtib3gtc2hhZG93OnZhcigtLWdsb3ctcHJpbWFyeS1oaWdoKX19LmJ0bi0tcHJpbWFyeTpub3QoW2Rpc2FibGVkXSk6YWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXByaW1hcnktaGFyZCkvMSk7Ym94LXNoYWRvdzpub25lfS5idG4tLXNlY29uZGFyeTpub3QoW2Rpc2FibGVkXSl7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3Itc2Vjb25kYXJ5KS8xKTtib3gtc2hhZG93OnZhcigtLWdsb3ctc2Vjb25kYXJ5LWxvdyk7Y29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS8xKX1AbWVkaWEgKGhvdmVyOmhvdmVyKXsuYnRuLS1zZWNvbmRhcnk6bm90KFtkaXNhYmxlZF0pOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXNlY29uZGFyeS1zb2Z0KS8xKTtib3gtc2hhZG93OnZhcigtLWdsb3ctc2Vjb25kYXJ5LWhpZ2gpfX0uYnRuLS1zZWNvbmRhcnk6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1zZWNvbmRhcnktaGFyZCkvMSk7Ym94LXNoYWRvdzpub25lfS5idG4tLWRhbmdlcjpub3QoW2Rpc2FibGVkXSl7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFuZ2VyKS8xKTtjb2xvcjpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzEpfUBtZWRpYSAoaG92ZXI6aG92ZXIpey5idG4tLWRhbmdlcjpub3QoW2Rpc2FibGVkXSk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFuZ2VyLXNvZnQpLzEpfX0uYnRuLS1kYW5nZXI6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1kYW5nZXItaGFyZCkvMSl9LmJ0bi0tcmFpc2Vke2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzowIWltcG9ydGFudH0uYnRuLS1yYWlzZWQgLmljb257ZmlsdGVyOmRyb3Atc2hhZG93KDAgMnB4IDFweCByZ2JhKDAsMCwwLC4xNikpO21hcmdpbjowIWltcG9ydGFudH0uYnRuLS1yYWlzZWQuYnRuLS1wcmltYXJ5Om5vdChbZGlzYWJsZWRdKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xKTtib3gtc2hhZG93OnZhcigtLWdsb3ctcHJpbWFyeS1sb3cpO2NvbG9yOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvMSl9QG1lZGlhIChob3Zlcjpob3Zlcil7LmJ0bi0tcmFpc2VkLmJ0bi0tcHJpbWFyeTpub3QoW2Rpc2FibGVkXSk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3ItcHJpbWFyeS1zb2Z0KS8xKTtib3gtc2hhZG93OnZhcigtLWdsb3ctcHJpbWFyeS1oaWdoKX19LmJ0bi0tcmFpc2VkLmJ0bi0tcHJpbWFyeTpub3QoW2Rpc2FibGVkXSk6YWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXByaW1hcnktaGFyZCkvMSk7Ym94LXNoYWRvdzpub25lfS5idG4tLXJhaXNlZC5idG4tLXNlY29uZGFyeTpub3QoW2Rpc2FibGVkXSl7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3Itc2Vjb25kYXJ5KS8xKTtib3gtc2hhZG93OnZhcigtLWdsb3ctc2Vjb25kYXJ5LWxvdyk7Y29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS8xKX1AbWVkaWEgKGhvdmVyOmhvdmVyKXsuYnRuLS1yYWlzZWQuYnRuLS1zZWNvbmRhcnk6bm90KFtkaXNhYmxlZF0pOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXNlY29uZGFyeS1zb2Z0KS8xKTtib3gtc2hhZG93OnZhcigtLWdsb3ctc2Vjb25kYXJ5LWhpZ2gpfX0uYnRuLS1yYWlzZWQuYnRuLS1zZWNvbmRhcnk6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1zZWNvbmRhcnktaGFyZCkvMSk7Ym94LXNoYWRvdzpub25lfS5idG4tLXJhaXNlZC5idG4tLWRhbmdlcjpub3QoW2Rpc2FibGVkXSl7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFuZ2VyKS8xKTtib3gtc2hhZG93OnZhcigtLWdsb3ctZGFuZ2VyLWxvdyk7Y29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS8xKX1AbWVkaWEgKGhvdmVyOmhvdmVyKXsuYnRuLS1yYWlzZWQuYnRuLS1kYW5nZXI6bm90KFtkaXNhYmxlZF0pOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLWRhbmdlci1zb2Z0KS8xKTtib3gtc2hhZG93OnZhcigtLWdsb3ctZGFuZ2VyLWhpZ2gpfX0uYnRuLS1yYWlzZWQuYnRuLS1kYW5nZXI6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1kYW5nZXItaGFyZCkvMSk7Ym94LXNoYWRvdzpub25lfS5idG4tLXJhaXNlZC5idG4tLW1ke2JvcmRlci1ib3R0b206NHB4IHNvbGlkIHJnYih2YXIoLS1jb2xvci1kYXJrKS8yMCUpO2hlaWdodDo0OHB4O3dpZHRoOjQ4cHh9LmJ0bi0tcmFpc2VkLmJ0bi0tbWQgLmljb257aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0uYnRuLS1yYWlzZWQuYnRuLS1zbXtib3JkZXItYm90dG9tOjNweCBzb2xpZCByZ2IodmFyKC0tY29sb3ItZGFyaykvMjAlKTtoZWlnaHQ6NDBweDt3aWR0aDo0MHB4fS5idG4tLXJhaXNlZC5idG4tLXNtIC5pY29ue2hlaWdodDoyMHB4O3dpZHRoOjIwcHh9LmJ0bi0tbWR7aGVpZ2h0OjQ4cHh9LmJ0bi0tbWQsLmJ0bi0tc217Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO3BhZGRpbmc6MCAyNHB4fS5idG4tLXNte2hlaWdodDo0MHB4fS5idG5bZGlzYWJsZWRde2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLWdyYXkpLzEpO2NvbG9yOnJnYih2YXIoLS1jb2xvci1ncmF5LWRhcmspLzEpO2N1cnNvcjpub3QtYWxsb3dlZH0uYnRuX19sYWJlbHttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LmJ0biAuaWNvbntmbGV4LXNocmluazowO2hlaWdodDoyMHB4O21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0Oi04cHg7d2lkdGg6MjBweH0uaW5wdXR7bWF4LXdpZHRoOjEwMCV9LmlucHV0LC5pbnB1dF9faW5uZXJ7cG9zaXRpb246cmVsYXRpdmV9LmlucHV0X19maWVsZCwuaW5wdXRfX3RleHRhcmVhe2NvbG9yOnJnYih2YXIoLS1jb2xvci1kYXJrKS8xKTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5pbnB1dF9fZmllbGQ6Oi1tb3otcGxhY2Vob2xkZXIsLmlucHV0X190ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjpyZ2IodmFyKC0tY29sb3ItZ3JheS1kYXJrKS8xKTtvcGFjaXR5OjF9LmlucHV0X19maWVsZDo6cGxhY2Vob2xkZXIsLmlucHV0X190ZXh0YXJlYTo6cGxhY2Vob2xkZXJ7Y29sb3I6cmdiKHZhcigtLWNvbG9yLWdyYXktZGFyaykvMSk7b3BhY2l0eToxfS5pbnB1dF9fdGV4dGFyZWF7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7cmVzaXplOm5vbmV9LmlucHV0IC5pY29ue3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNpdGlvbjpmaWxsIDgwbXMgZWFzZS1pbjt6LWluZGV4OjF9LmlucHV0X19lcnJvcntjb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFuZ2VyKS8xKTtkaXNwbGF5Om5vbmU7bWFyZ2luLXRvcDoycHh9LmlucHV0LS1kZWZhdWx0IC5pbnB1dF9fZmllbGQsLmlucHV0LS1kZWZhdWx0IC5pbnB1dF9fdGV4dGFyZWF7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3ItbGlnaHQpLzEpfS5pbnB1dC0tZGVmYXVsdCAuaWNvbntmaWxsOnJnYih2YXIoLS1jb2xvci1ncmF5LWRhcmspLzEpfS5pbnB1dC0tbWQgLmlucHV0X19maWVsZHtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7aGVpZ2h0OjQwcHg7cGFkZGluZzoxMHB4IDE2cHh9LmlucHV0LS1tZCAuaW5wdXRfX3RleHRhcmVhe2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtoZWlnaHQ6ODBweDttaW4taGVpZ2h0OjgwcHg7cGFkZGluZzoxMHB4IDE2cHh9LmlucHV0LS1tZCAuaWNvbntoZWlnaHQ6MjBweDtsZWZ0OjE2cHg7dG9wOjEwcHg7d2lkdGg6MjBweH0uaW5wdXQtLWhhcy1wcmVmaXgtaWNvbiAuaW5wdXRfX2ZpZWxkLC5pbnB1dC0taGFzLXByZWZpeC1pY29uIC5pbnB1dF9fdGV4dGFyZWF7cGFkZGluZy1sZWZ0OjQ4cHh9LmRyb3Bkb3duey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzEpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1tZCk7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDp2YXIoLS16LXBvcG92ZXIpfS5kcm9wZG93bl9fYXJyb3d7YmFja2dyb3VuZDpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzEpO2hlaWdodDoxMnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNnB4O3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3dpZHRoOjEycHh9LmRyb3Bkb3duLWVudGVyLC5kcm9wZG93bi1sZWF2ZXtvcGFjaXR5OjE7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgdG9wO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZSx0cmFuc2Zvcm0gLjJzIGVhc2V9LmRyb3Bkb3duLWVudGVyLXN0YXJ0LC5kcm9wZG93bi1sZWF2ZS1lbmR7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZVkoMCl9LmRyb3Bkb3duLW1lbnV7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO3Njcm9sbGJhci13aWR0aDp0aGlufS5kcm9wZG93bi1tZW51X19saXN0e21hcmdpbjo4cHggMH0uZHJvcGRvd24tbWVudV9fYnV0dG9ue2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZ3JheS1kYXJrKS8xKTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7cGFkZGluZzo4cHggMjRweDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi1wcm9wZXJ0eTphbGw7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOjEwMCV9QG1lZGlhIChob3Zlcjpob3Zlcil7LmRyb3Bkb3duLW1lbnVfX2J1dHRvbjpob3ZlcntiYWNrZ3JvdW5kOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xMCUpO2NvbG9yOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xKX19LmRyb3Bkb3duLW1lbnVfX2J1dHRvbiAuaWNvbiwuZHJvcGRvd24tbWVudV9fYnV0dG9uIGltZ3tmbGV4LXNocmluazowO2hlaWdodDoxZW07bWFyZ2luLXJpZ2h0OjEycHg7d2lkdGg6MWVtfXNlbGVjdHtoZWlnaHQ6NDBweDt2aXNpYmlsaXR5OmhpZGRlbjt3aWR0aDoxMDAlfS5zcy1tYWlue2NvbG9yOnJnYih2YXIoLS1jb2xvci1kYXJrKS8xKTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7d2lkdGg6MTAwJTt6LWluZGV4OnZhcigtLXotcG9wb3Zlcil9LnNzLW1haW4gLnNzLXNpbmdsZS1zZWxlY3RlZHthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3ItbGlnaHQpLzEpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjQwcHg7b3V0bGluZTowO3BhZGRpbmc6MCAxNnB4O3dpZHRoOjEwMCV9LnNzLW1haW4gLnNzLXNpbmdsZS1zZWxlY3RlZC5zcy1vcGVuLWFib3ZlKy5zcy1jb250ZW50e2JvdHRvbTowO3BhZGRpbmctYm90dG9tOjQwcHg7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgYm90dG9tfS5zcy1tYWluIC5zcy1zaW5nbGUtc2VsZWN0ZWQuc3Mtb3Blbi1iZWxvdysuc3MtY29udGVudHtwYWRkaW5nLXRvcDo0MHB4O3RvcDowO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIHRvcH0uc3MtbWFpbiAuc3Mtc2luZ2xlLXNlbGVjdGVkIC5wbGFjZWhvbGRlcntmbGV4OjEgMSAxMDAlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uc3MtbWFpbiAuc3Mtc2luZ2xlLXNlbGVjdGVkIC5wbGFjZWhvbGRlciwuc3MtbWFpbiAuc3Mtc2luZ2xlLXNlbGVjdGVkIC5wbGFjZWhvbGRlciAqe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5zcy1tYWluIC5zcy1zaW5nbGUtc2VsZWN0ZWQgLnBsYWNlaG9sZGVyICp7d2lkdGg6YXV0b30uc3MtbWFpbiAuc3Mtc2luZ2xlLXNlbGVjdGVkIC5zcy1kZXNlbGVjdHthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXg6MCAxIGF1dG87Zm9udC13ZWlnaHQ6NzAwO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uc3MtbWFpbiAuc3Mtc2luZ2xlLXNlbGVjdGVkIC5zcy1kZXNlbGVjdC5zcy1oaWRle2Rpc3BsYXk6bm9uZX0uc3MtbWFpbiAuc3Mtc2luZ2xlLXNlbGVjdGVkIC5zcy1hcnJvd3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHdpZHRoPScxMCcgaGVpZ2h0PScxMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTkuNzU0IDQuNDA4YS44MzIuODMyIDAgMCAwLTEuMTgzIDBsLTIuNzQgMi43NVYuODMzYS44MzMuODMzIDAgMSAwLTEuNjY0IDB2Ni4zMjVsLTIuNzQtMi43NUEuODM2LjgzNiAwIDEgMCAuMjQ1IDUuNTkybDQuMTYzIDQuMTY2Yy4wOC4wNzYuMTczLjEzNS4yNzUuMTc1LjIwMS4wOS40MzEuMDkuNjMzIDBhLjgzMy44MzMgMCAwIDAgLjI3NC0uMTc1bDQuMTY0LTQuMTY2YS44MzQuODM0IDAgMCAwIDAtMS4xODR6JyBmaWxsPSclMjM4YzkxYTQnIGZpbGwtcnVsZT0nZXZlbm9kZCcvJTNFJTNDL3N2ZyUzRSIpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MTAwJTtmbGV4LXNocmluazowO2hlaWdodDoxNnB4O21hcmdpbi1sZWZ0OjE0cHg7d2lkdGg6MTZweH0uc3MtY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1saWdodCkvMSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LW1kKTtvcGFjaXR5OjA7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zZm9ybTpzY2FsZVkoMCk7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgdG9wO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyxvcGFjaXR5IC4yczt3aWR0aDoxMDAlO3otaW5kZXg6dmFyKC0tei1uZWdhdGl2ZSl9LnNzLWNvbnRlbnQuc3Mtb3BlbntkaXNwbGF5OmJsb2NrO29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGVZKDEpfS5zcy1jb250ZW50IC5zcy1zZWFyY2h7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztwYWRkaW5nOjhweCA4cHggNnB4fS5zcy1jb250ZW50IC5zcy1zZWFyY2guc3MtaGlkZSwuc3MtY29udGVudCAuc3Mtc2VhcmNoLnNzLWhpZGUgaW5wdXR7aGVpZ2h0OjA7bWFyZ2luOjA7b3BhY2l0eTowO3BhZGRpbmc6MH0uc3MtY29udGVudCAuc3Mtc2VhcmNoIGlucHV0ey13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgI2RjZGVlMjtib3JkZXItcmFkaXVzOjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4OjEgMSBhdXRvO2ZvbnQtc2l6ZTppbmhlcml0O2hlaWdodDozMHB4O2xpbmUtaGVpZ2h0OmluaGVyaXQ7bWFyZ2luOjA7bWluLXdpZHRoOjA7b3V0bGluZTowO3BhZGRpbmc6NnB4IDhweDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJX0uc3MtY29udGVudCAuc3Mtc2VhcmNoIGlucHV0OjotbW96LXBsYWNlaG9sZGVye2NvbG9yOiM4YThhOGE7dmVydGljYWwtYWxpZ246bWlkZGxlfS5zcy1jb250ZW50IC5zcy1zZWFyY2ggaW5wdXQ6OnBsYWNlaG9sZGVye2NvbG9yOiM4YThhOGE7dmVydGljYWwtYWxpZ246bWlkZGxlfS5zcy1jb250ZW50IC5zcy1zZWFyY2ggaW5wdXQ6Zm9jdXN7Ym94LXNoYWRvdzowIDAgNXB4ICM1ODk3ZmJ9LnNzLWNvbnRlbnQgLnNzLXNlYXJjaCAuc3MtYWRkYWJsZXthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyOjFweCBzb2xpZCAjZGNkZWUyO2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXg6MCAwIDMwcHg7Zm9udC1zaXplOjIycHg7Zm9udC13ZWlnaHQ6NzAwO2hlaWdodDozMHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjAgMCAwIDhweH0uc3MtY29udGVudCAuc3MtYWRkYWJsZXtwYWRkaW5nLXRvcDowfS5zcy1jb250ZW50IC5zcy1saXN0e21heC1oZWlnaHQ6MjMycHg7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO3RleHQtYWxpZ246bGVmdH0uc3MtY29udGVudCAuc3MtbGlzdCAuc3Mtb3B0aW9ue2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZ3JheS1kYXJrKS8xKTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7cGFkZGluZzo4cHggMTZweDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9QG1lZGlhIChob3Zlcjpob3Zlcil7LnNzLWNvbnRlbnQgLnNzLWxpc3QgLnNzLW9wdGlvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xMCUpO2NvbG9yOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xKX19LnNzLWNvbnRlbnQgLnNzLWxpc3QgLnNzLW9wdGlvbi5zcy1oaWdobGlnaHRlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xMCUpO2NvbG9yOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xKX0uc3MtY29udGVudCAuc3MtbGlzdCAuc3Mtb3B0aW9uOm5vdCguc3MtZGlzYWJsZWQpLnNzLW9wdGlvbi1zZWxlY3RlZHtjb2xvcjp2YXIoLS1jb2xvci1kYXJrKX0uc3MtY29udGVudCAuc3MtbGlzdCAuc3Mtb3B0aW9uLnNzLWhpZGV7ZGlzcGxheTpub25lfS5zcy1vcHRpb24taWNvbntmbGV4LXNocmluazowO2hlaWdodDoyMHB4O21hcmdpbi1yaWdodDoxMnB4O3dpZHRoOjIwcHh9LmFjY29yZGlvbntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvNzAlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCl9LmFjY29yZGlvbi5pcy1vcGVuIC5hY2NvcmRpb25fX2Fycm93e3RyYW5zZm9ybTpzY2FsZVkoLTEpfS5hY2NvcmRpb25fX2hlYWRlcnthbGlnbi1pdGVtczpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O3BhZGRpbmc6MTZweDt0ZXh0LWFsaWduOmxlZnQ7d2hpdGUtc3BhY2U6bm9ybWFsO3dpZHRoOjEwMCV9QG1lZGlhIChtaW4td2lkdGg6NzYwcHgpey5hY2NvcmRpb25fX2hlYWRlcntwYWRkaW5nOjE2cHggMjRweH19LmFjY29yZGlvbl9fcXVlc3Rpb257ZmlsbDpyZ2IodmFyKC0tY29sb3ItZ3JheSkvMSk7ZmxleC1zaHJpbms6MDtoZWlnaHQ6MzJweDt3aWR0aDozMnB4fS5hY2NvcmRpb25fX3RpdGxle2NvbG9yOnJnYih2YXIoLS1jb2xvci1kYXJrKS8xKTtwYWRkaW5nOjAgMTZweH0uYWNjb3JkaW9uX19hcnJvd3tmaWxsOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xKTtmbGV4LXNocmluazowO2hlaWdodDoyNHB4O21hcmdpbi1sZWZ0OmF1dG87dHJhbnNpdGlvbi1kdXJhdGlvbjouM3M7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm07dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7d2lkdGg6MjRweH0uYWNjb3JkaW9uX19ib2R5e2Rpc3BsYXk6bm9uZX0uYWNjb3JkaW9uX19ib2R5LWlubmVye3BhZGRpbmc6MCAxNnB4IDE2cHggNjRweH1AbWVkaWEgKG1pbi13aWR0aDo3NjBweCl7LmFjY29yZGlvbl9fYm9keS1pbm5lcntwYWRkaW5nLWxlZnQ6NzJweH19LmFjY29yZGlvbl9fYm9keS1pbm5lciBwe2NvbG9yOnJnYih2YXIoLS1jb2xvci1ncmF5LWRhcmspLzEpfS5iYWRnZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvMjAlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7Y29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS8xKTtkaXNwbGF5OmlubGluZS1mbGV4O3BhZGRpbmc6MXB4IDhweH0uYmFkZ2UtLWRhbmdlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1kYW5nZXIpLzEpfS5mb2xsb3d7LS1mb2xsb3ctaXRlbS1tYXJnaW46MjRweDstLWZvbGxvdy1pdGVtLXNpemU6MzJweDtkaXNwbGF5OmZsZXh9QG1lZGlhIChtYXgtd2lkdGg6MTQzOXB4KXsuZm9sbG93ey0tZm9sbG93LWl0ZW0tbWFyZ2luOjE2cHg7LS1mb2xsb3ctaXRlbS1zaXplOjI0cHh9fS5mb2xsb3ctLXNtYWxsey0tZm9sbG93LWl0ZW0tbWFyZ2luOjE2cHg7LS1mb2xsb3ctaXRlbS1zaXplOjI0cHh9LmZvbGxvd19faXRlbXtmbGV4LXNocmluazowfS5mb2xsb3dfX2l0ZW06bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6dmFyKC0tZm9sbG93LWl0ZW0tbWFyZ2luKX0uZm9sbG93X19saW5re2NvbG9yOnJnYih2YXIoLS1jb2xvci1ncmF5LWRhcmspLzEpO2Rpc3BsYXk6YmxvY2s7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3I7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9QG1lZGlhIChob3Zlcjpob3Zlcil7LmZvbGxvd19fbGluazpob3Zlcntjb2xvcjp2YXIoLS1mb2xsb3ctaG92ZXItY29sb3IscmdiKHZhcigtLWNvbG9yLXByaW1hcnkpLzEpKX19LmZvbGxvd19fbGluayAuaWNvbntoZWlnaHQ6dmFyKC0tZm9sbG93LWl0ZW0tc2l6ZSk7d2lkdGg6dmFyKC0tZm9sbG93LWl0ZW0tc2l6ZSl9LmFwcHN7ZGlzcGxheTpncmlkO2dhcDo4cHg7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpdCwxMjdweCl9LmFwcHMtLWdob3N0IC5hcHBzX19saW5re29wYWNpdHk6LjV9LmFwcHNfX2JhZGdle2hlaWdodDozN3B4O3dpZHRoOjEyN3B4fS50cnVzdHBpbG90LWNvbXBhY3R7ZGlzcGxheTpibG9ja30udHJ1c3RwaWxvdC1jb21wYWN0X19sb2dve2hlaWdodDoyOXB4O21hcmdpbi1ib3R0b206OHB4O3dpZHRoOjEyN3B4fS50cnVzdHBpbG90LWNvbXBhY3RfX3N0YXJze2hlaWdodDoyNHB4O3dpZHRoOjEyN3B4fS50cnVzdHBpbG90LWV4dHtkaXNwbGF5OmJsb2NrO3dpZHRoOi1tb3otZml0LWNvbnRlbnQ7d2lkdGg6Zml0LWNvbnRlbnR9LnRydXN0cGlsb3QtZXh0X19zdGFyc3ttYXJnaW4tYm90dG9tOjE2cHh9LnRydXN0cGlsb3QtZXh0X190ZXh0e2NvbG9yOnJnYih2YXIoLS1jb2xvci1kYXJrKS8xKTtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXB9LnRydXN0cGlsb3QtZXh0X19yZXZpZXdze21hcmdpbi1yaWdodDoxMHB4fUBrZXlmcmFtZXMgc3dpcGVyLXByZWxvYWRlcnt0b3t0cmFuc2Zvcm06cm90YXRlKDF0dXJuKX19LnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbD4uc3dpcGVyLXNjcm9sbGJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvMSk7Ym9yZGVyLXJhZGl1czo5OTllbTtib3R0b206MDtoZWlnaHQ6NHB4O2xlZnQ6MDttYXJnaW46NDhweCBhdXRvIDhweDttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMzJweCk7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6MDt3aWR0aDozNDBweH0uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsPi5zd2lwZXItc2Nyb2xsYmFyLS1naG9zdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvMjAlKX0uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsPi5zd2lwZXItc2Nyb2xsYmFyIC5zd2lwZXItc2Nyb2xsYmFyLWRyYWd7YmFja2dyb3VuZDpyZ2IodmFyKC0tY29sb3ItcHJpbWFyeSkvMSk7Ym9yZGVyLXJhZGl1czo5OTllbTtoZWlnaHQ6OHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMnB4fWltZy5zd2lwZXItbGF6eXtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC42cyBlYXNlfWltZy5zd2lwZXItbGF6eS5zd2lwZXItbGF6eS1sb2FkZWR7b3BhY2l0eToxfS5zd2lwZXItbGF6eS1wcmVsb2FkZXJ7YW5pbWF0aW9uOnN3aXBlci1wcmVsb2FkZXIgLjZzIGxpbmVhciBpbmZpbml0ZTtib3JkZXItd2lkdGg6MnB4O2hlaWdodDozMnB4O3dpZHRoOjMycHh9LnN3aXBlci1sYXp5LXByZWxvYWRlci13aGl0ZXtvcGFjaXR5Oi41fS5yYW5nZXstLXJhbmdlOmNhbGModmFyKC0tbWF4KSAtIHZhcigtLW1pbikpOy0tcmF0aW86Y2FsYygodmFyKC0tdmFsdWUpIC0gdmFyKC0tbWluKSkvdmFyKC0tcmFuZ2UpKTstLXN4OmNhbGMoMTZweCArIHZhcigtLXJhdGlvKSooMTAwJSAtIDMycHgpKTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7aGVpZ2h0OjMycHg7d2lkdGg6MTAwJX0ucmFuZ2U6Zm9jdXN7b3V0bGluZTpub25lfS5yYW5nZTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2t7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodmFyKC0tbWFpbi1jb2xvciksdmFyKC0tbWFpbi1jb2xvcikpIDAvdmFyKC0tc3gpIDEwMCUgbm8tcmVwZWF0LHJnYih2YXIoLS1jb2xvci1saWdodCkvMSk7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czo5OTllbTtib3gtc2hhZG93Om5vbmU7aGVpZ2h0OjRweDt3aWR0aDoxMDAlfS5yYW5nZTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWFpbi1jb2xvcik7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNicgaGVpZ2h0PScxMiclM0UlM0NwYXRoIGQ9J00xLjUgMS41NTZoMTNtLTEzIDguODg4aDEzJyBmaWxsPSdub25lJyBmaWxsLXJ1bGU9J2V2ZW5vZGQnIHN0cm9rZT0nJTIzRkZGJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS13aWR0aD0nMycgb3BhY2l0eT0nLjUnLyUzRSUzQy9zdmclM0UiKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJSA1MCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtib3gtc2hhZG93OnZhcigtLXRodW1iLXNoYWRvdyk7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjMycHg7bWFyZ2luLXRvcDotMTRweDt3aWR0aDozMnB4fS5yYW5nZTo6LW1vei1yYW5nZS10cmFja3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh2YXIoLS1tYWluLWNvbG9yKSx2YXIoLS1tYWluLWNvbG9yKSkgMC92YXIoLS1zeCkgMTAwJSBuby1yZXBlYXQscmdiKHZhcigtLWNvbG9yLWxpZ2h0KS8xKTtib3JkZXI6MDtib3JkZXItcmFkaXVzOjk5OWVtO2JveC1zaGFkb3c6bm9uZTtoZWlnaHQ6NHB4O3dpZHRoOjEwMCV9LnJhbmdlOjotbW96LXJhbmdlLXRodW1iey1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1haW4tY29sb3IpO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTYnIGhlaWdodD0nMTInJTNFJTNDcGF0aCBkPSdNMS41IDEuNTU2aDEzbS0xMyA4Ljg4OGgxMycgZmlsbD0nbm9uZScgZmlsbC1ydWxlPSdldmVub2RkJyBzdHJva2U9JyUyM0ZGRicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2Utd2lkdGg9JzMnIG9wYWNpdHk9Jy41Jy8lM0UlM0Mvc3ZnJTNFIik7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCUgNTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtib3JkZXI6MDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7Ym94LXNoYWRvdzp2YXIoLS10aHVtYi1zaGFkb3cpO2N1cnNvcjpwb2ludGVyO2hlaWdodDozMnB4O21hcmdpbi10b3A6LTEycHg7d2lkdGg6MzJweH0ucmFuZ2UtLXByaW1hcnl7LS1tYWluLWNvbG9yOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xKTstLXRodW1iLXNoYWRvdzp2YXIoLS1nbG93LXByaW1hcnktbG93KX0ucmFuZ2UtLXNlY29uZGFyeXstLW1haW4tY29sb3I6cmdiKHZhcigtLWNvbG9yLXNlY29uZGFyeSkvMSk7LS10aHVtYi1zaGFkb3c6dmFyKC0tZ2xvdy1zZWNvbmRhcnktbG93KX0uZ2lmdHtkaXNwbGF5OmZsZXh9LmdpZnRfX2ljb257bWFyZ2luLXJpZ2h0OjE2cHh9LmdpZnRfX3RleHR7Y29sb3I6dmFyKC0tdGV4dC1jb2xvcixyZ2IodmFyKC0tY29sb3ItZGFyaykvMSkpO3RleHQtYWxpZ246bGVmdH0uZ2lmdF9fdmFsdWV7Y29sb3I6cmdiKHZhcigtLWNvbG9yLXNlY29uZGFyeSkvMSl9LmNhcmR7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3ItbGlnaHQpLzEpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtoZWlnaHQ6MTAwJTtwYWRkaW5nOjI0cHg7dGV4dC1hbGlnbjpsZWZ0fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY2FyZHtwYWRkaW5nOjMycHh9fS5jYXJkX190b3B7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW4tYm90dG9tOjI0cHh9LmNhcmRfX2V4dHttYXJnaW4tbGVmdDoxNnB4fS5jYXJkX190aXRsZXtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFyaykvMSk7bWFyZ2luLWJvdHRvbToxNnB4fS5uYXZfX2xpc3R7LS1nYXA6MzJweDthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O21hcmdpbjowIGNhbGModmFyKC0tZ2FwKS8tMil9QG1lZGlhIChtaW4td2lkdGg6MTI0MHB4KXsubmF2X19saXN0ey0tZ2FwOjQwcHh9fS5uYXZfX2l0ZW0uaGFzLXN1Ym1lbnV7cG9zaXRpb246cmVsYXRpdmV9Lm5hdl9faXRlbS5oYXMtc3VibWVudTpob3ZlciAubmF2X19zdWJtZW51e29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApO3RyYW5zaXRpb24tZHVyYXRpb246LjRzO3Zpc2liaWxpdHk6dmlzaWJsZX0ubmF2X19saW5re2NvbG9yOmluaGVyaXQ7ZGlzcGxheTpibG9jaztmb250LWZhbWlseTp2YXIoLS1mb250LXByaW1hcnkpO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjkwMDtsaW5lLWhlaWdodDp2YXIoLS1sZWFkaW5nLXByaW1hcnktaDYpO3BhZGRpbmc6MjhweCBjYWxjKHZhcigtLWdhcCkvMik7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3I7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9QG1lZGlhIChob3Zlcjpob3Zlcil7Lm5hdl9fbGluazpob3Zlcntjb2xvcjp2YXIoLS1oZWFkZXItaG92ZXItY29sb3IscmdiKHZhcigtLWNvbG9yLXByaW1hcnkpLzEpKX19QG1lZGlhIChtaW4td2lkdGg6MTI0MHB4KXsubmF2X19saW5re2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OnZhcigtLWxlYWRpbmctcHJpbWFyeS1oNSl9fS5uYXYgYnV0dG9uLm5hdl9fbGlua3tjdXJzb3I6ZGVmYXVsdH0ubmF2X19zdWJtZW51ey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzEpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1tZCk7bGVmdDo1MCU7bWFyZ2luLXRvcDotOHB4O29wYWNpdHk6MDtwYWRkaW5nOjI0cHg7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSg4cHgpO3RyYW5zaXRpb24tZHVyYXRpb246LjJzO3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eSx2aXNpYmlsaXR5LHRyYW5zZm9ybTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt2aXNpYmlsaXR5OmhpZGRlbjt6LWluZGV4OnZhcigtLXotb3ZlcmxheSl9Lm5hdl9fc3VibWVudS1saXN0e2Rpc3BsYXk6Z3JpZDtnYXA6MjRweCAzMnB4O2dyaWQtdGVtcGxhdGUtY29sdW1uczptYXgtY29udGVudH1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7Lm5hdl9fc3VibWVudS1saXN0e2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMixtYXgtY29udGVudCl9fS5uYXZfX3N1Ym1lbnUtaXRlbXttYXgtd2lkdGg6MjQwcHh9Lm5hdl9fc3VibWVudS1saW5re2NvbG9yOnJnYih2YXIoLS1jb2xvci1kYXJrKS8xKTtkaXNwbGF5OmZsZXg7dGV4dC1hbGlnbjpsZWZ0fS5uYXZfX3N1Ym1lbnUtbGluay5pcy1pbmFjdGl2ZXtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZ3JheS1kYXJrKS8xKX0ubmF2X19zdWJtZW51LWxpbmsuaXMtaW5hY3RpdmUgLmljb257ZmlsbDpyZ2IodmFyKC0tY29sb3ItZ3JheS1kYXJrKS8xKX1AbWVkaWEgKGhvdmVyOmhvdmVyKXsubmF2X19zdWJtZW51LWxpbms6bm90KC5pcy1pbmFjdGl2ZSk6aG92ZXJ7Y29sb3I6cmdiKHZhcigtLWNvbG9yLXByaW1hcnkpLzEpfX0ubmF2X19zdWJtZW51LWxpbmsgLmljb257ZmlsbDpyZ2IodmFyKC0tY29sb3ItcHJpbWFyeSkvMSk7ZmxleC1zaHJpbms6MDtoZWlnaHQ6MjRweDttYXJnaW4tcmlnaHQ6MTZweDt3aWR0aDoyNHB4fS5uYXZfX3N1Ym1lbnUtbGluay10aXRsZXtjb2xvcjppbmhlcml0fS5uYXZfX3N1Ym1lbnUtbGluay1kZXNje2NvbG9yOnJnYih2YXIoLS1jb2xvci1ncmF5LWRhcmspLzEpfS5uYXYtbW9iaWxle2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS8xKTtib3R0b206MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2xlZnQ6MDtwb3NpdGlvbjpmaXhlZDtyaWdodDowO3RvcDowO3otaW5kZXg6dmFyKC0tei1vdmVybGF5KX1AbWVkaWEgKG1pbi13aWR0aDo3NjBweCl7Lm5hdi1tb2JpbGV7ZGlzcGxheTpub25lIWltcG9ydGFudH19Lm5hdi1tb2JpbGVfX2hlYWRlcnthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzEpO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6dmFyKC0taGVhZGVyLWhlaWdodCk7bWluLWhlaWdodDp2YXIoLS1oZWFkZXItaGVpZ2h0KTtwYWRkaW5nOjIwcHg7cG9zaXRpb246cmVsYXRpdmV9Lm5hdi1tb2JpbGVfX2xvZ28td3JhcHBlcnttYXJnaW4tbGVmdDo0NHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5uYXYtbW9iaWxlX19sb2dve3dpZHRoOjExNnB4fS5uYXYtbW9iaWxlX19jbG9zZXtsZWZ0OjIwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjI0cHh9Lm5hdi1tb2JpbGVfX2Nsb3NlIC5pY29ue2ZpbGw6cmdiKHZhcigtLWNvbG9yLWdyYXktZGFyaykvMSk7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ubmF2LW1vYmlsZV9fYm9keS13cmFwcGVyey13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO292ZXJmbG93OmF1dG99Lm5hdi1tb2JpbGVfX2JvZHksLm5hdi1tb2JpbGVfX2JvZHktd3JhcHBlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZ3JvdzoxfS5uYXYtbW9iaWxlX19ib2R5e2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbjoyNHB4IDAgNDBweDtwYWRkaW5nOjAgNDBweH0ubmF2LW1vYmlsZV9fbWVudXttYXJnaW46MCBhdXRvO21heC13aWR0aDozNjBweDt3aWR0aDoxMDAlfS5uYXYtbW9iaWxlX19tZW51LWl0ZW0rLm5hdi1tb2JpbGVfX21lbnUtaXRlbXttYXJnaW4tdG9wOjQwcHh9Lm5hdi1tb2JpbGVfX21lbnUtbGlua3tjb2xvcjpyZ2IodmFyKC0tY29sb3ItZ3JheS1kYXJrKS8xKTtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6OTAwO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXByb3BlcnR5OmNvbG9yO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpO3dpZHRoOjEwMCV9LmlzLW9wZW4gLm5hdi1tb2JpbGVfX21lbnUtbGlua3tjb2xvcjpyZ2IodmFyKC0tY29sb3ItcHJpbWFyeSkvMSl9Lm5hdi1tb2JpbGVfX21lbnUtbGluayAuaWNvbntmbGV4LXNocmluazowO21hcmdpbi1sZWZ0OjI0cHg7bWFyZ2luLXRvcDo1cHh9Lm5hdi1tb2JpbGVfX3N1Ym1lbnV7ZGlzcGxheTpub25lO3BhZGRpbmctbGVmdDoyNHB4fS5uYXYtbW9iaWxlX19zdWJtZW51LWl0ZW17cGFkZGluZy10b3A6MjRweH0ubmF2LW1vYmlsZV9fc3VibWVudS1saW5re2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Y29sb3I6cmdiKHZhcigtLWNvbG9yLWdyYXktZGFyaykvMSk7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2ZvbnQtc2l6ZToyNHB4O2dhcDo4cHggMTZweH0ubmF2LW1vYmlsZV9fc3VibWVudS1saW5rLmlzLWluYWN0aXZle29wYWNpdHk6LjV9Lm5hdi1tb2JpbGVfX3N1Ym1lbnUtYmFkZ2V7YmFja2dyb3VuZDpyZ2JhKDI2LDI3LDM4LC40KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7Y29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS8xKTttYXJnaW4tdG9wOjRweDtwYWRkaW5nOjRweCA4cHh9Lm5hdi1tb2JpbGVfX3N1Ym1lbnUtYmFkZ2UtLWRhbmdlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1kYW5nZXIpLzEpfS5uYXYtbW9iaWxlX19mb290ZXJ7cGFkZGluZzowIDQwcHggMzJweH0ubmF2LW1vYmlsZV9fYWN0aW9uc3thbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2dhcDoxNnB4O2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lm5hdi1tb2JpbGVfX2hlbHB7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjI0MHB4O21pbi13aWR0aDowfS5uYXYtbW9iaWxlX19zb2NpYWx7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXRvcDozMnB4fS5uYXYtbW9iaWxlX19zb2NpYWwgLmZvbGxvd3tmb250LXNpemU6MjRweH0ubmF2LW1vYmlsZV9fZG9jc3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjhweCAxNnB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXRvcDoyNHB4fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsubmF2LW1vYmlsZV9fZG9jc3ttYXJnaW4tdG9wOjE2cHh9fS5uYXYtbW9iaWxlX19kb2NzLWxpbmt7Y29sb3I6cmdiKHZhcigtLWNvbG9yLWdyYXktZGFyaykvMSl9Lm5hdi1tb2JpbGUtZW50ZXIsLm5hdi1tb2JpbGUtbGVhdmV7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgZWFzZX0ubmF2LW1vYmlsZS1lbnRlci1zdGFydCwubmF2LW1vYmlsZS1sZWF2ZS1lbmR7b3BhY2l0eTowfS5oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzEwJSk7ei1pbmRleDp2YXIoLS16LWhlYWRlcil9LmhlYWRlciwuaGVhZGVyX19pbm5lcntoZWlnaHQ6dmFyKC0taGVhZGVyLWhlaWdodCl9LmhlYWRlcl9faW5uZXJ7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnJnYih2YXIoLS1jb2xvci1kYXJrKS8xKTtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmV9LmhlYWRlcl9fYnVyZ2Vye21hcmdpbi1yaWdodDoyMHB4fUBtZWRpYSAobWluLXdpZHRoOjc2MHB4KXsuaGVhZGVyX19idXJnZXJ7ZGlzcGxheTpub25lfX0uaGVhZGVyX19idXJnZXIgLmljb257ZmlsbDpyZ2IodmFyKC0tY29sb3ItZ3JheS1kYXJrKS8xKTtoZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS5oZWFkZXJfX2xvZ28td3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZX0uaGVhZGVyX19sb2dvLXdyYXBwZXIgaW1ne3dpZHRoOjExNnB4fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuaGVhZGVyX19sb2dvLXdyYXBwZXIgaW1ne3dpZHRoOjE3MnB4fX0uaGVhZGVyX19uYXZ7bWFyZ2luLWxlZnQ6YXV0b31AbWVkaWEgKG1heC13aWR0aDo3NTlweCl7LmhlYWRlcl9fbmF2e2Rpc3BsYXk6bm9uZX19LmhlYWRlcl9fYWN0aW9uc3stLWdhcDoyMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7Z2FwOnZhcigtLWdhcCk7cGFkZGluZy1sZWZ0OnZhcigtLWdhcCl9QG1lZGlhIChtYXgtd2lkdGg6NzU5cHgpey5oZWFkZXJfX2FjdGlvbnN7bWFyZ2luLWxlZnQ6YXV0b319QG1lZGlhIChtaW4td2lkdGg6NzYwcHgpey5oZWFkZXJfX2FjdGlvbnN7LS1nYXA6MzJweH19QG1lZGlhIChtaW4td2lkdGg6MTI0MHB4KXsuaGVhZGVyX19hY3Rpb25zey0tZ2FwOjQwcHh9fS5oZWFkZXJfX2xhbmcsLmhlYWRlcl9fdGhlbWV7ZGlzcGxheTpibG9jazt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi1wcm9wZXJ0eTpjb2xvcjt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX1AbWVkaWEgKGhvdmVyOmhvdmVyKXsuaGVhZGVyX19sYW5nOmhvdmVyLC5oZWFkZXJfX3RoZW1lOmhvdmVye2NvbG9yOnZhcigtLWhlYWRlci1ob3Zlci1jb2xvcixyZ2IodmFyKC0tY29sb3ItcHJpbWFyeSkvMSkpfX0uaGVhZGVyX19sYW5nIHN2ZywuaGVhZGVyX190aGVtZSBzdmd7ZmlsbDpjdXJyZW50Q29sb3I7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0uaGVhZGVyX19sYW5nLWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZX0uaGVhZGVyX19sYW5nLWRyb3Bkb3due2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0xMTBweDttYXJnaW4tdG9wOjI4cHg7dG9wOjEwMCU7d2lkdGg6MjIwcHh9LmhlYWRlcl9fbGFuZy1kcm9wZG93biAuZHJvcGRvd24tbWVudXttYXgtaGVpZ2h0OjMxMHB4fS5oZWFkZXJfX2xhbmctZHJvcGRvd24gLmRyb3Bkb3duX19hcnJvd3tsZWZ0OjUwJTttYXJnaW4tbGVmdDotNnB4fS5oZWFkZXJfX2xhbmctZHJvcGRvd24gaW1ne2hlaWdodDoyNHB4O2ltYWdlLXJlbmRlcmluZzpvcHRpbWl6ZVF1YWxpdHk7d2lkdGg6MjRweH0uaGVhZGVyX19sb2dpbntmb250LWZhbWlseTp2YXIoLS1mb250LXByaW1hcnkpO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjkwMDtsaW5lLWhlaWdodDp2YXIoLS1sZWFkaW5nLXByaW1hcnktaDYpO21heC13aWR0aDoxMDAlO21heC13aWR0aDo4MHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH1AbWVkaWEgKGhvdmVyOmhvdmVyKXsuaGVhZGVyX19sb2dpbjpob3Zlcntjb2xvcjp2YXIoLS1oZWFkZXItaG92ZXItY29sb3IscmdiKHZhcigtLWNvbG9yLXByaW1hcnkpLzEpKX19QG1lZGlhIChtYXgtd2lkdGg6OTkxcHgpey5oZWFkZXJfX2xvZ2lue2Rpc3BsYXk6bm9uZX19QG1lZGlhIChtaW4td2lkdGg6MTI0MHB4KXsuaGVhZGVyX19sb2dpbntmb250LXNpemU6MThweDtsaW5lLWhlaWdodDp2YXIoLS1sZWFkaW5nLXByaW1hcnktaDUpfX1AbWVkaWEgKG1heC13aWR0aDo5OTFweCl7LmhlYWRlcl9fY29ubmVjdHtkaXNwbGF5Om5vbmV9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuaGVhZGVyX19jb25uZWN0LWljb257ZGlzcGxheTpub25lfX0uaGVhZGVyX191c2VyLWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZX0uaGVhZGVyX191c2Vye2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbn0uaGVhZGVyX191c2VyLWRyb3Bkb3due21hcmdpbi10b3A6MTZweDtyaWdodDotOHB4O3RvcDoxMDAlfS5oZWFkZXJfX3VzZXItZHJvcGRvd24gLmRyb3Bkb3duX19hcnJvd3tyaWdodDoyMnB4fUBtZWRpYSAobWluLXdpZHRoOjEyNDBweCl7LmhlYWRlcl9fdXNlci1kcm9wZG93biAuZHJvcGRvd25fX2Fycm93e3JpZ2h0OjI2cHh9fS5oZWFkZXJfX3VzZXItYXZhdGFye2hlaWdodDo0MHB4O3dpZHRoOjQwcHh9QG1lZGlhIChtaW4td2lkdGg6MTI0MHB4KXsuaGVhZGVyX191c2VyLWF2YXRhcntoZWlnaHQ6NDhweDt3aWR0aDo0OHB4fX0uZm9vdGVyLW1lbnVfX2NhdGVnb3J5e2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tYm90dG9tOjI0cHh9QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5mb290ZXItbWVudV9fY2F0ZWdvcnl7bWFyZ2luLWJvdHRvbTo0MHB4fX0uZm9vdGVyLW1lbnVfX2xpc3R7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDoxNnB4IDI0cHh9QG1lZGlhIChtaW4td2lkdGg6NzYwcHgpey5mb290ZXItbWVudV9fbGlzdHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjI0cHh9fS5mb290ZXItbWVudV9faXRlbS0tbmV3LC5mb290ZXItbWVudV9faXRlbS0tc29vbnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo4cHggMTZweH0uZm9vdGVyLW1lbnVfX2l0ZW0tLXNvb24gLmZvb3Rlci1tZW51X19saW5re29wYWNpdHk6LjIhaW1wb3J0YW50fS5mb290ZXItbWVudV9fbGlua3tvcGFjaXR5Oi41O3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9QG1lZGlhIChob3Zlcjpob3Zlcil7LmZvb3Rlci1tZW51X19saW5rOmhvdmVye29wYWNpdHk6Ljc1fX0uZm9vdGVye2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLWRhcmspLzEpO2NvbG9yOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvMSk7cGFkZGluZzpjYWxjKDE2cHggKyA1LjU1NTU2dncpIDB9LmZvb3Rlcl9faW5uZXJ7YWxpZ24taXRlbXM6c3RhcnQ7ZGlzcGxheTpncmlkO2dhcDo2NHB4O3Bvc2l0aW9uOnJlbGF0aXZlfUBtZWRpYSAobWluLXdpZHRoOjEyNDBweCl7LmZvb3Rlcl9faW5uZXJ7Z2FwOjQwcHg7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgxOCxtaW5tYXgoMCwxZnIpKX19LmZvb3Rlcl9fbWlzY3tkaXNwbGF5OmdyaWQ7Z2FwOjQwcHh9QG1lZGlhIChtaW4td2lkdGg6MTI0MHB4KXsuZm9vdGVyX19taXNje2dyaWQtY29sdW1uOjEvNjtncmlkLXJvdzoxO3BhZGRpbmctdG9wOjk2cHh9fS5mb290ZXJfX2xvZ28tbGlua3tkaXNwbGF5OmJsb2NrO2hlaWdodDo1NnB4O3dpZHRoOjI0MHB4fUBtZWRpYSAobWluLXdpZHRoOjEyNDBweCl7LmZvb3Rlcl9fbG9nby1saW5re2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MH19LmZvb3Rlcl9fbG9nb3tmaWx0ZXI6YnJpZ2h0bmVzcygwKSBpbnZlcnQoMSl9LmZvb3Rlcl9fZm9sbG93ey0tZm9sbG93LWhvdmVyLWNvbG9yOnJnYih2YXIoLS1jb2xvci1zZWNvbmRhcnkpLzEpfS5mb290ZXJfX3RydXN0e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LmZvb3Rlcl9fZG9tYWluc3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjRweCAxNnB4O21hcmdpbi10b3A6MjRweDt3aWR0aDoyODBweH0uZm9vdGVyX19kb21haW5zIGF7b3BhY2l0eTouNTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5O3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfUBtZWRpYSAoaG92ZXI6aG92ZXIpey5mb290ZXJfX2RvbWFpbnMgYTpob3ZlcntvcGFjaXR5Oi43NX19LmZvb3Rlcl9fY29weXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O21hcmdpbi1sZWZ0OjM2cHh9LmZvb3Rlcl9fY29weSBhe2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXJpZ2h0OjE2cHh9LmZvb3Rlcl9fY29weSBzcGFue29wYWNpdHk6LjV9LmZvb3Rlcl9fbWVudXN7ZGlzcGxheTpncmlkO2dhcDo2MHB4IDQwcHh9QG1lZGlhIChtaW4td2lkdGg6NzYwcHgpey5mb290ZXJfX21lbnVze2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMixtaW5tYXgoMCwxZnIpKX19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5mb290ZXJfX21lbnVze2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCxtaW5tYXgoMCwxZnIpKX19QG1lZGlhIChtaW4td2lkdGg6MTI0MHB4KXsuZm9vdGVyX19tZW51c3tncmlkLWNvbHVtbjo2LzE5O2dyaWQtcm93OjF9fS50b2tlbi1jb3VudGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyfS50b2tlbi1jb3VudGVyX19pdGVte3BhZGRpbmc6MCBjYWxjKC03LjMzMzMzcHggKyAzLjAwOTI2dncpIDAgY2FsYygtMy4zMzMzM3B4ICsgMy4wMDkyNnZ3KX0udG9rZW4tY291bnRlcl9faXRlbTpub3QoOmxhc3QtY2hpbGQpe2JvcmRlci1yaWdodDoycHggc29saWQgcmdiKHZhcigtLWNvbG9yLXdoaXRlKS8yMCUpfS50b2tlbi1jb3VudGVyX19kaWdpdHtmb250LXNpemU6Y2FsYygtMi42NjY2N3B4ICsgNy40MDc0MXZ3KTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7bGluZS1oZWlnaHQ6MS4yNjkyMzA3Njl9LnRva2VuLWNvdW50ZXJfX2xhYmVse2xldHRlci1zcGFjaW5nOi40NDQ0NGVtO29wYWNpdHk6Ljc7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDRweCl9LnRva2VuLWFubm91bmNlbWVudHtiYWNrZ3JvdW5kOnVybCguLi9pbWcvYmctdG9rZW4uanBnKSBuby1yZXBlYXQgNTAlIDUwJS9jb3ZlcjtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1kYXJrKS8xKTtwYWRkaW5nLWJvdHRvbTpjYWxjKDQyLjY2NjY3cHggKyAzLjcwMzd2dyk7cGFkZGluZy10b3A6Y2FsYygxOS4zMzMzM3B4ICsgMTIuMjY4NTJ2dyk7dGV4dC1hbGlnbjpjZW50ZXJ9LnJld2FyZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvMSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0ucmV3YXJkX19pbWFnZS1ib3h7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3ItbGlnaHQtaGFyZCkvMSk7bWF4LXdpZHRoOjEwMCU7cGFkZGluZy1ib3R0b206MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfS5yZXdhcmRfX2ltYWdle2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS5yZXdhcmRfX2JvZHl7cGFkZGluZzoxNnB4IDE2cHggMjRweH0ucmV3YXJkX190aXRsZXtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFyaykvMSk7bWFyZ2luLWJvdHRvbTo0cHh9LnJld2FyZF9fdmFsdWV7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0ucmV3YXJkX192YWx1ZS1pY29ue2ZsZXgtc2hyaW5rOjA7aGVpZ2h0OjE2cHg7bWFyZ2luLXJpZ2h0OjhweDt3aWR0aDoxNnB4fS5yZXdhcmRfX3ZhbHVlLXRleHR7Y29sb3I6cmdiKHZhcigtLWNvbG9yLWdyYXktZGFyaykvMSl9LnN0YXR7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOi0zNnB4fS5zdGF0Pip7bWFyZ2luOjM2cHh9QG1lZGlhIChtaW4td2lkdGg6NzYwcHgpey5zdGF0e2ZsZXgtd3JhcDpub3dyYXB9fS5zdGF0X19pdGVte3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEwMCV9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5zdGF0X19pdGVte3dpZHRoOjIyMHB4fX1AbWVkaWEgKG1pbi13aWR0aDo3NjBweCl7LnN0YXRfX2l0ZW17d2lkdGg6YXV0b319QG1lZGlhIChtaW4td2lkdGg6MTI0MHB4KXsuc3RhdF9faXRlbXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246bGVmdH19LnN0YXRfX3ZhbHVle2NvbG9yOnJnYih2YXIoLS1jb2xvci1kYXJrKS8xKX1AbWVkaWEgKG1pbi13aWR0aDoxMjQwcHgpey5zdGF0X192YWx1ZXttYXJnaW4tcmlnaHQ6MTZweH19LnJldmlld3tiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvMSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXNtKTtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFyaykvMSk7cGFkZGluZzoyNHB4O3dpZHRoOjM2NHB4fS5yZXZpZXdfX2hlYWRlcnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbi1ib3R0b206MTZweH0ucmV2aWV3X19hdmF0YXJ7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2hlaWdodDo0OHB4O3dpZHRoOjQ4cHh9LnJldmlld19fdXNlcnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O21hcmdpbi1ib3R0b206OHB4O3doaXRlLXNwYWNlOm5vd3JhcH0ucmV2aWV3X19uYW1le21hcmdpbi1yaWdodDo4cHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5yZXZpZXdfX3Jldmlld2Vke2NvbG9yOnJnYih2YXIoLS1jb2xvci1ncmF5LWRhcmspLzEpfS5yZXZpZXdfX25lb3N7ZmxleC1zaHJpbms6MDtoZWlnaHQ6MjBweDttYXJnaW4tbGVmdDoxNnB4O3dpZHRoOjg2cHh9LnJldmlld19fdGV4dHstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1saW5lLWNsYW1wOjQ7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW59QG1lZGlhIChtaW4td2lkdGg6MTI0MHB4KXsub3BpbmlvbnN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMixtaW5tYXgoMCwxZnIpKX19Lm9waW5pb25zX19yZXZpZXdzLWNvbnRhaW5lcntwYWRkaW5nOjY0cHggMjBweH0ub3BpbmlvbnNfX3N0b3JpZXMtY29udGFpbmVye292ZXJmbG93OmhpZGRlbn1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7Lm9waW5pb25zX19zdG9yaWVzLWNvbnRhaW5lcntoZWlnaHQ6Y2FsYyg0NTMuMzMzMzNweCArIDMyLjQwNzQxdncpfX0ub3BpbmlvbnNfX3Jldmlld3MtY29udGFpbmVye2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1saWdodCkvMSk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO292ZXJmbG93OmhpZGRlbn0ub3BpbmlvbnNfX3Jldmlld3N7bWF4LXdpZHRoOjEwMCV9LnZpZGVvc3stLXRleHQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS8xKTtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1kYXJrKS8xKTtjb2xvcjpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzEpO2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9QG1lZGlhIChtYXgtd2lkdGg6OTkxcHgpey52aWRlb3N7aGVpZ2h0OjEwMCV9fS52aWRlb3NfX2l0ZW17aGVpZ2h0OjEwMCU7cG9zaXRpb246cmVsYXRpdmV9LnZpZGVvc19faXRlbS1pbWFnZXtoZWlnaHQ6MTAwJTstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXI7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJX0udmlkZW9zX19pdGVtLWNvbnRlbnR7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx0cmFuc3BhcmVudCAyMCUscmdiYSgwLDAsMCwuOSkpO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3BhZGRpbmctYm90dG9tOjEwNHB4O3BhZGRpbmctbGVmdDoyMHB4O3BhZGRpbmctcmlnaHQ6MjBweDtwb3NpdGlvbjpyZWxhdGl2ZX0udmlkZW9zX19pdGVtLXRpdGxle2ZvbnQtd2VpZ2h0OjkwMDttYXJnaW4tYm90dG9tOjI0cHg7cGFkZGluZzowIDE2cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LnZpZGVvcyAuc3dpcGVyLXNjcm9sbGJhcntib3R0b206NDhweCFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudDttYXJnaW4tdG9wOjAhaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlfUBtZWRpYSAobWluLXdpZHRoOjc2MHB4KXsudmlkZW9zIC5zd2lwZXItc2Nyb2xsYmFye2JvdHRvbTo1NnB4IWltcG9ydGFudH19Lm5lb3MtdmFsdWVze2Rpc3BsYXk6Z3JpZDttYXJnaW46MCBhdXRvIDQ4cHg7bWF4LXdpZHRoOjEyNDBweH1AbWVkaWEgKG1pbi13aWR0aDo3NjBweCl7Lm5lb3MtdmFsdWVze2dhcDo2NHB4O2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCw3ZnIpIG1pbm1heCgwLDlmcil9fUBtZWRpYSAobWF4LXdpZHRoOjc1OXB4KXsubmVvcy12YWx1ZXNfX3RhYnN7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7ZGlzcGxheTpmbGV4O21hcmdpbi1ib3R0b206MjBweDtvdmVyZmxvdzphdXRvO3BhZGRpbmctYm90dG9tOjIwcHh9fUBtZWRpYSAobWluLXdpZHRoOjc2MHB4KXsubmVvcy12YWx1ZXNfX3RhYnN7bWF4LXdpZHRoOjkwJTt3aWR0aDozNTBweH19Lm5lb3MtdmFsdWVzX190YWJ7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0O3doaXRlLXNwYWNlOm5vcm1hbH1AbWVkaWEgKG1heC13aWR0aDo3NTlweCl7Lm5lb3MtdmFsdWVzX190YWJ7d2hpdGUtc3BhY2U6bm93cmFwfS5uZW9zLXZhbHVlc19fdGFiOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLXJpZ2h0OjMycHh9Lm5lb3MtdmFsdWVzX190YWIgLmljb257ZGlzcGxheTpub25lfX1AbWVkaWEgKG1pbi13aWR0aDo3NjBweCl7Lm5lb3MtdmFsdWVzX190YWJ7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1wcmltYXJ5KTtmb250LXNpemU6dmFyKC0tZm9udC1zaXplLWgyKTtsaW5lLWhlaWdodDp2YXIoLS1sZWFkaW5nLXByaW1hcnktaDIpfS5uZW9zLXZhbHVlc19fdGFiOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbTo0OHB4fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7Lm5lb3MtdmFsdWVzX190YWI6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjY0cHh9fS5uZW9zLXZhbHVlc19fdGFiLmlzLWFjdGl2ZXtjb2xvcjpyZ2IodmFyKC0tY29sb3ItcHJpbWFyeSkvMSl9Lm5lb3MtdmFsdWVzX190YWIuaXMtYWN0aXZlIC5pY29ue29wYWNpdHk6MX0ubmVvcy12YWx1ZXNfX3RhYiBzcGFue3Bvc2l0aW9uOnJlbGF0aXZlfS5uZW9zLXZhbHVlc19fdGFiIC5pY29ue2JvdHRvbTouMjVlbTtoZWlnaHQ6LjhlbTtsZWZ0OjEwMCU7bWFyZ2luLWxlZnQ6MTZweDtvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6LjhlbX0ubmVvcy12YWx1ZXNfX3BhbmVsc3tjb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFyaykvMSl9Lm5lb3MtdmFsdWVzX19wYW5lbHMgcHtsaW5lLWhlaWdodDoxLjV9LmNvbW1lbnQtZm9ybXtkaXNwbGF5OmZsZXh9LmNvbW1lbnQtZm9ybV9fZmllbGR7ZmxleC1ncm93OjF9LmNvbW1lbnQtZm9ybV9fc3VibWl0e2ZsZXgtc2hyaW5rOjA7bWFyZ2luLWxlZnQ6MTZweH0uY29tbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1saWdodCkvMSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO3BhZGRpbmc6MjRweH0uY29tbWVudF9faGVhZGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW4tYm90dG9tOjE2cHh9LmNvbW1lbnRfX3VzZXJ7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDttYXJnaW4tcmlnaHQ6MjRweDttaW4td2lkdGg6MH0uY29tbWVudF9fYXZhdGFyLWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZX0uY29tbWVudF9fYXZhdGFyLXZpcHtib3JkZXI6MnB4IHNvbGlkIHJnYih2YXIoLS1jb2xvci12aXApLzEpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjEwMCU7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCV9LmNvbW1lbnRfX2F2YXRhci1jcm93bnthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3ItdmlwKS8xKTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtib3R0b206LTJweDtjb2xvcjpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzEpO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6M3B4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0Oi0ycHh9LmNvbW1lbnRfX2F2YXRhci1jcm93bi1pY29ue2hlaWdodDoxMnB4O3dpZHRoOjEycHh9LmNvbW1lbnRfX2F2YXRhcntib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7ZmxleC1zaHJpbms6MH0uY29tbWVudF9fbmFtZXttYXJnaW4tbGVmdDoxNnB4O21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uY29tbWVudF9fbGFiZWx7Y29sb3I6cmdiKHZhcigtLWNvbG9yLWdyYXktZGFyaykvMSk7bWFyZ2luLWxlZnQ6OHB4fUBtZWRpYSAobWF4LXdpZHRoOjc1OXB4KXsuY29tbWVudF9fbGFiZWx7ZGlzcGxheTpub25lfX0uY29tbWVudF9fbGlrZXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uY29tbWVudF9fbGlrZS5pcy1saWtlZCAuY29tbWVudF9fbGlrZS1jb3VudHtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFuZ2VyKS8xKX0uY29tbWVudF9fbGlrZSAuaWNvbntmaWxsOnJnYih2YXIoLS1jb2xvci1kYW5nZXIpLzEpO2hlaWdodDoyNHB4O21hcmdpbi1yaWdodDo4cHg7d2lkdGg6MjRweH0uY29tbWVudF9fbGlrZS1jb3VudHtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZ3JheS1kYXJrKS8xKX0uYmxvZy1jYXJke2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS8xKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctc20pO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb24tZHVyYXRpb246LjNzO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtLGJveC1zaGFkb3c7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9QG1lZGlhIChob3Zlcjpob3Zlcil7LmJsb2ctY2FyZDpob3Zlcntib3gtc2hhZG93OnZhcigtLXNoYWRvdy1sZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLThweCl9LmJsb2ctY2FyZDpob3ZlciAuYmxvZy1jYXJkX190aXRsZXtjb2xvcjpyZ2IodmFyKC0tY29sb3ItcHJpbWFyeSkvMSl9fUBtZWRpYSAobWF4LXdpZHRoOjk5MXB4KXsuYmxvZy1jYXJkLS13aWRlIC5ibG9nLWNhcmRfX3ByZXZpZXcsLmJsb2ctY2FyZC0td2lkZSAuYmxvZy1jYXJkX19yZWFkbW9yZXtkaXNwbGF5Om5vbmV9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuYmxvZy1jYXJkLS13aWRle2ZsZXgtZGlyZWN0aW9uOnJvd30uYmxvZy1jYXJkLS13aWRlIC5ibG9nLWNhcmRfX2ltYWdlLW91dGVye2ZsZXg6MSAwIGF1dG87d2lkdGg6NDguMjc1ODYyMDY5JX0uYmxvZy1jYXJkLS13aWRlIC5ibG9nLWNhcmRfX2JvZHl7cGFkZGluZzpjYWxjKDE4LjY2NjY3cHggKyAuOTI1OTN2dykgY2FsYygxMy4zMzMzM3B4ICsgMS44NTE4NXZ3KX19LmJsb2ctY2FyZF9faW1hZ2Utb3V0ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3ItbGlnaHQpLzEpfS5ibG9nLWNhcmRfX2ltYWdlLWJveHtoZWlnaHQ6MTAwJTtwYWRkaW5nLWJvdHRvbTo1Ni4yNSU7cG9zaXRpb246cmVsYXRpdmV9LmJsb2ctY2FyZF9faW1hZ2V7aGVpZ2h0OjEwMCU7bGVmdDowOy1vLW9iamVjdC1maXQ6Y292ZXI7b2JqZWN0LWZpdDpjb3Zlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS5ibG9nLWNhcmRfX2JvZHl7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWdyb3c6MTtoZWlnaHQ6MTAwJTtwYWRkaW5nOjI0cHh9LmJsb2ctY2FyZF9fdGl0bGV7Y29sb3I6cmdiKHZhcigtLWNvbG9yLWRhcmspLzEpO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXByb3BlcnR5OmNvbG9yO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS5ibG9nLWNhcmRfX3ByZXZpZXcsLmJsb2ctY2FyZF9fdGl0bGV7bWFyZ2luLWJvdHRvbToxNnB4fS5ibG9nLWNhcmRfX3JlYWRtb3Jle2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjpyZ2IodmFyKC0tY29sb3ItcHJpbWFyeSkvMSk7ZGlzcGxheTpmbGV4O21hcmdpbi1ib3R0b206MjRweH0uYmxvZy1jYXJkX19yZWFkbW9yZSAuaWNvbntoZWlnaHQ6MTZweDttYXJnaW4tbGVmdDo4cHg7d2lkdGg6MTZweH0uYmxvZy1jYXJkX19tZXRhe2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXRvcDphdXRvfS5ibG9nLWNhcmRfX2NvbW1lbnRze2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7bWFyZ2luLXJpZ2h0OjE2cHh9LmJsb2ctY2FyZF9fY29tbWVudHMgLmljb257aGVpZ2h0OjE2cHg7bWFyZ2luLXJpZ2h0OjhweDt3aWR0aDoxNnB4fS5ibG9nLWNhcmRfX2NhdGVnb3J5e2NvbG9yOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xKTttYXJnaW4tcmlnaHQ6YXV0bztwYWRkaW5nLXJpZ2h0OjI0cHh9LmJsb2ctY2F0c3thbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS5ibG9nLWNhdHNfX2l0ZW06bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6NDBweH1AbWVkaWEgKGhvdmVyOmhvdmVyKXsuYmxvZy1jYXRzX19saW5rOmhvdmVye2NvbG9yOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xKX19LmJsb2ctY2F0c19fbGluay5pcy1hY3RpdmV7Y29sb3I6cmdiKHZhcigtLWNvbG9yLWRhcmspLzEpfS5ibG9nLWFydGljbGV7bWFyZ2luOjAgYXV0bzttYXgtd2lkdGg6OTIwcHh9LmJsb2ctYXJ0aWNsZV9faGVhZGVye21hcmdpbi1ib3R0b206NDBweDt0ZXh0LWFsaWduOmNlbnRlcn0uYmxvZy1hcnRpY2xlX190aXRsZXtmb250LXdlaWdodDo5MDA7bWFyZ2luOjAgYXV0byAyNHB4O21heC13aWR0aDo4MDBweH0uYmxvZy1hcnRpY2xlX19zaG9ydHtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFyaykvMSk7bWFyZ2luOjAgYXV0byAyNHB4O21heC13aWR0aDo2MDBweH0uYmxvZy1hcnRpY2xlX19wb3N0ZXJ7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjQwcHh9LmJsb2ctYXJ0aWNsZV9fYm9keXtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFyaykvMSk7bWFyZ2luOjAgYXV0bzttYXgtd2lkdGg6ODAwcHh9LmJsb2ctYXJ0aWNsZV9fY29udGVudCBwOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbTozMnB4fS5ibG9nLWFydGljbGVfX2NvbnRlbnQgaDIsLmJsb2ctYXJ0aWNsZV9fY29udGVudCBoMywuYmxvZy1hcnRpY2xlX19jb250ZW50IGg0LC5ibG9nLWFydGljbGVfX2NvbnRlbnQgaDUsLmJsb2ctYXJ0aWNsZV9fY29udGVudCBoNnttYXJnaW4tYm90dG9tOjE2cHh9LmJsb2ctYXJ0aWNsZV9fY29udGVudCBpbWd7ZGlzcGxheTpibG9jazttYXJnaW46MzJweCBhdXRvfS5ibG9nLWFydGljbGVfX3NoYXJle2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bWFyZ2luLWJvdHRvbToxNnB4O21hcmdpbi10b3A6NDBweH0uYmxvZy1hcnRpY2xlX19zaGFyZS10aXRsZXttYXJnaW4tYm90dG9tOjI0cHg7bWFyZ2luLXJpZ2h0OjMycHh9LmJsb2ctYXJ0aWNsZV9fY29tbWVudHMtZm9ybSwuYmxvZy1hcnRpY2xlX19jb21tZW50cy1oZWFkZXIsLmJsb2ctYXJ0aWNsZV9fc2hhcmUtbmV0d29ya3N7bWFyZ2luLWJvdHRvbToyNHB4fS5ibG9nLWFydGljbGVfX2NvbW1lbnRzLWl0ZW06bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjE2cHh9LmJsdXJ7YmFja2dyb3VuZC1wb3NpdGlvbjowIDA7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtoZWlnaHQ6MTE1MHB4O29wYWNpdHk6LjM7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTE1MHB4O3otaW5kZXg6dmFyKC0tei1uZWdhdGl2ZSl9LmJsdXItLWJsdWV7YmFja2dyb3VuZC1pbWFnZTp1cmwoLi4vaW1nL2JsdWUtb3ZhbC5wbmcpfS5ibHVyLS1ncmVlbntiYWNrZ3JvdW5kLWltYWdlOnVybCguLi9pbWcvZ3JlZW4tb3ZhbC5wbmcpfS5ibHVyLS1yZWR7YmFja2dyb3VuZC1pbWFnZTp1cmwoLi4vaW1nL3JlZC1vdmFsLnBuZyl9LmJsdXItLXZpcHtiYWNrZ3JvdW5kLWltYWdlOnVybCguLi9pbWcvdmlwLW92YWwucG5nKX0ubWFzcy1tZWRpYXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbjotMjBweH0ubWFzcy1tZWRpYV9faXRlbXttYXJnaW46MjBweH0ubWFzcy1tZWRpYV9fbGlua3tmaWx0ZXI6Z3JheXNjYWxlKDEpIGJyaWdodG5lc3MoMCkgaW52ZXJ0KC41NSk7dHJhbnNpdGlvbjphbGwgLjE1c31AbWVkaWEgKGhvdmVyOmhvdmVyKXsubWFzcy1tZWRpYV9fbGluazpob3ZlcntmaWx0ZXI6bm9uZTtvcGFjaXR5OjF9fS5idXktb3JkZXJ7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS83MCUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtkaXNwbGF5OmZsZXg7Z2FwOjE2cHg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxNnB4fUBtZWRpYSAobWluLXdpZHRoOjc2MHB4KXsuYnV5LW9yZGVye2dhcDoyNHB4O3BhZGRpbmc6MTZweCAyNHB4fX0uYnV5LW9yZGVyX19pdGVte2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleDoxIDAgMCU7bWF4LXdpZHRoOjE5NXB4O21pbi13aWR0aDowO3doaXRlLXNwYWNlOm5vd3JhcH0uYnV5LW9yZGVyX19ib2R5e21pbi13aWR0aDowfS5idXktb3JkZXJfX2N1cnJlbmN5e2ZsZXgtc2hyaW5rOjA7aGVpZ2h0OjI0cHg7bWFyZ2luLXJpZ2h0OjhweDt3aWR0aDoyNHB4fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuYnV5LW9yZGVyX19jdXJyZW5jeXttYXJnaW4tcmlnaHQ6MTZweH19QG1lZGlhIChtaW4td2lkdGg6MTA4MHB4KXsuYnV5LW9yZGVyX19jdXJyZW5jeXtoZWlnaHQ6MzJweDt3aWR0aDozMnB4fX0uYnV5LW9yZGVyX192YWx1ZXtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFyaykvMSl9QG1lZGlhIChtYXgtd2lkdGg6MTA3OXB4KXsuYnV5LW9yZGVyX192YWx1ZXtmb250LXNpemU6MTRweH19LmJ1eS1vcmRlcl9fbGFiZWx7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5idXktb3JkZXJfX2Fycntjb2xvcjpyZ2IodmFyKC0tY29sb3ItZ3JheSkvMSk7ZmxleC1zaHJpbms6MH1AbWVkaWEgKG1heC13aWR0aDo3NTlweCl7LmJ1eS1vcmRlcl9fYXJye2Rpc3BsYXk6bm9uZX19LnNlbGwtb3JkZXJ7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS83MCUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtkaXNwbGF5OmZsZXg7Z2FwOjE2cHg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxNnB4fUBtZWRpYSAobWluLXdpZHRoOjc2MHB4KXsuc2VsbC1vcmRlcntnYXA6MjRweDtwYWRkaW5nOjE2cHggMjRweH19LnNlbGwtb3JkZXJfX2l0ZW17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMCAwJTttYXgtd2lkdGg6MTYwcHg7bWluLXdpZHRoOjA7d2hpdGUtc3BhY2U6bm93cmFwfS5zZWxsLW9yZGVyX19ib2R5e21pbi13aWR0aDowfS5zZWxsLW9yZGVyX19jdXJyZW5jeXtmbGV4LXNocmluazowO2hlaWdodDoyNHB4O21hcmdpbi1yaWdodDo4cHg7d2lkdGg6MjRweH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LnNlbGwtb3JkZXJfX2N1cnJlbmN5e21hcmdpbi1yaWdodDoxNnB4fX1AbWVkaWEgKG1pbi13aWR0aDoxMDgwcHgpey5zZWxsLW9yZGVyX19jdXJyZW5jeXtoZWlnaHQ6MzJweDt3aWR0aDozMnB4fX0uc2VsbC1vcmRlcl9fdmFsdWV7Y29sb3I6cmdiKHZhcigtLWNvbG9yLWRhcmspLzEpfUBtZWRpYSAobWF4LXdpZHRoOjEwNzlweCl7LnNlbGwtb3JkZXJfX3ZhbHVle2ZvbnQtc2l6ZToxNHB4fX0uc2VsbC1vcmRlcl9fbGFiZWx7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5zZWxsLW9yZGVyX19hcnJ7Y29sb3I6cmdiKHZhcigtLWNvbG9yLWdyYXkpLzEpO2ZsZXgtc2hyaW5rOjB9QG1lZGlhIChtYXgtd2lkdGg6NzU5cHgpey5zZWxsLW9yZGVyX19hcnJ7ZGlzcGxheTpub25lfX0ub3Atb3JkZXJ7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS83MCUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxNnB4fUBtZWRpYSAobWluLXdpZHRoOjc2MHB4KXsub3Atb3JkZXJ7cGFkZGluZzoxNnB4IDI0cHh9fS5vcC1vcmRlcl9faXRlbXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXg6MSAwIDAlO21heC13aWR0aDoyMTBweDttaW4td2lkdGg6MDt3aGl0ZS1zcGFjZTpub3dyYXB9Lm9wLW9yZGVyX19jdXJyZW5jeXtmbGV4LXNocmluazowO2hlaWdodDoyNHB4O21hcmdpbi1yaWdodDoxNnB4O3dpZHRoOjI0cHh9QG1lZGlhIChtYXgtd2lkdGg6NTc1cHgpey5vcC1vcmRlcl9fY3VycmVuY3l7ZGlzcGxheTpub25lfX1AbWVkaWEgKG1pbi13aWR0aDoxMDgwcHgpey5vcC1vcmRlcl9fY3VycmVuY3l7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH19Lm9wLW9yZGVyX192YWx1ZXtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFyaykvMSl9QG1lZGlhIChtYXgtd2lkdGg6MTA3OXB4KXsub3Atb3JkZXJfX3ZhbHVle2ZvbnQtc2l6ZToxNHB4fX0ub3Atb3JkZXJfX2Fycntjb2xvcjpyZ2IodmFyKC0tY29sb3ItZ3JheSkvMSk7ZmxleC1zaHJpbms6MDttYXJnaW46MCAxNnB4fUBtZWRpYSAobWluLXdpZHRoOjc2MHB4KXsub3Atb3JkZXJfX2FycnttYXJnaW46MCAyNHB4fX0ub3AtcmF0ZV9fdGFicy1saXN0e2Rpc3BsYXk6Z3JpZDtnYXA6MTZweDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsbWlubWF4KDAsMWZyKSk7bWFyZ2luLWJvdHRvbToxNnB4fS5vcC1yYXRlX190YWJ7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS82MCUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtkaXNwbGF5OmZsZXg7cGFkZGluZzoxNnB4O3RleHQtYWxpZ246bGVmdDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi1wcm9wZXJ0eTpiYWNrZ3JvdW5kLWNvbG9yO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS5vcC1yYXRlX190YWIuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS8xKX0ub3AtcmF0ZV9faXRlbXthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzYwJSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjE2cHh9Lm9wLXJhdGVfX2l0ZW0rLm9wLXJhdGVfX2l0ZW17bWFyZ2luLXRvcDoxNnB4fS5vcC1yYXRlX19jdXJyZW5jeXtmbGV4LXNocmluazowO2hlaWdodDozMnB4O21hcmdpbi1yaWdodDoxNnB4O3dpZHRoOjMycHh9Lm9wLXJhdGVfX3RpdGxle2NvbG9yOnJnYih2YXIoLS1jb2xvci1kYXJrKS8xKX0ub3AtcmF0ZV9fdmFsdWV7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDttYXJnaW4tbGVmdDphdXRvO3BhZGRpbmctbGVmdDoxNnB4fS5vcC1yYXRlX192YWx1ZS5pcy11cHtjb2xvcjpyZ2IodmFyKC0tY29sb3Itc2Vjb25kYXJ5KS8xKX0ub3AtcmF0ZV9fdmFsdWUuaXMtZG93bntjb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFuZ2VyKS8xKX0ub3AtcmF0ZV9fdmFsdWUtaWNvbntmbGV4LXNocmluazowO2hlaWdodDoxMnB4O21hcmdpbi1sZWZ0OjhweDt3aWR0aDoxMnB4fS5pcy11cCAub3AtcmF0ZV9fdmFsdWUtaWNvbnt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmZhbmN5Ym94X19zbGlkZXtwYWRkaW5nOjQ4cHggOHB4fS5mYW5jeWJveF9fc2xpZGUuaGFzLWNsb25lIC5mYW5jeWJveF9fY29udGVudCwuZmFuY3lib3hfX3NsaWRlLmhhcy1pbmxpbmUgLmZhbmN5Ym94X19jb250ZW50e2JvcmRlci1yYWRpdXM6NDBweH0uZmFuY3lib3hfX3NsaWRlLmhhcy1jbG9uZSAuZmFuY3lib3hfX2NvbnRlbnQ+LmNhcm91c2VsX19idXR0b24uaXMtY2xvc2UsLmZhbmN5Ym94X19zbGlkZS5oYXMtaW5saW5lIC5mYW5jeWJveF9fY29udGVudD4uY2Fyb3VzZWxfX2J1dHRvbi5pcy1jbG9zZXtyaWdodDoyNHB4O3RvcDoyNHB4fUBtZWRpYSAobWluLXdpZHRoOjc2MHB4KXsuZmFuY3lib3hfX3NsaWRlLmhhcy1jbG9uZSAuZmFuY3lib3hfX2NvbnRlbnQ+LmNhcm91c2VsX19idXR0b24uaXMtY2xvc2UsLmZhbmN5Ym94X19zbGlkZS5oYXMtaW5saW5lIC5mYW5jeWJveF9fY29udGVudD4uY2Fyb3VzZWxfX2J1dHRvbi5pcy1jbG9zZXtyaWdodDozMnB4O3RvcDozMnB4fX0uZmFuY3lib3hfX3NsaWRlLmhhcy12aWRlbyAuZmFuY3lib3hfX2NvbnRlbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFyaykvMSkhaW1wb3J0YW50fS5mYW5jeWJveF9fc2xpZGUuaGFzLXZpZGVvIC5mYW5jeWJveF9fY29udGVudD4uY2Fyb3VzZWxfX2J1dHRvbi5pcy1jbG9zZXtjb2xvcjpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLy43NSl9LmZhbmN5Ym94X19jb250ZW50e3BhZGRpbmc6MzJweCAyNHB4fS5mYW5jeWJveF9fY29udGVudD4uY2Fyb3VzZWxfX2J1dHRvbi5pcy1jbG9zZXtib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50O2NvbG9yOnJnYih2YXIoLS1jb2xvci1ncmF5LWRhcmspLzEpO2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9LmZhbmN5Ym94X19jb250ZW50Pi5jYXJvdXNlbF9fYnV0dG9uLmlzLWNsb3NlIHN2Z3tmaWx0ZXI6bm9uZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5ub3R5Zl9fdG9hc3R7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LW1kKX0ubm90eWZfX3RvYXN0LS1lcnJvcntiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1kYW5nZXIpLzEpIWltcG9ydGFudH0ubm90eWZfX3RvYXN0LS1zdWNjZXNze2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXNlY29uZGFyeSkvMSkhaW1wb3J0YW50fS5ub3R5Zl9faWNvbntmbGV4LXNocmluazowfS5ub3R5Zl9faWNvbi0tZXJyb3J7Y29sb3I6cmdiKHZhcigtLWNvbG9yLWRhbmdlcikvMSkhaW1wb3J0YW50fS5ub3R5Zl9faWNvbi0tc3VjY2Vzc3tjb2xvcjpyZ2IodmFyKC0tY29sb3Itc2Vjb25kYXJ5KS8xKSFpbXBvcnRhbnR9LmNvbW11bml0eV9fc29je2dyaWQtcm93LWdhcDo4MHB4O2dyaWQtY29sdW1uLWdhcDozMnB4O2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDAsMWZyKTttYXJnaW4tYm90dG9tOjgwcHh9QG1lZGlhIChtaW4td2lkdGg6NzYwcHgpey5jb21tdW5pdHlfX3NvY3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsbWlubWF4KDAsMWZyKSl9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY29tbXVuaXR5X19zb2N7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpfX1AbWVkaWEgKG1pbi13aWR0aDoxMjQwcHgpey5jb21tdW5pdHlfX3NvY3tncmlkLWNvbHVtbi1nYXA6NjRweH19QG1lZGlhIChtaW4td2lkdGg6NzYwcHgpIGFuZCAobWF4LXdpZHRoOjk5MXB4KXsuY29tbXVuaXR5X190d3tncmlkLWNvbHVtbi1lbmQ6LTE7Z3JpZC1jb2x1bW4tc3RhcnQ6MX19LmNvbW11bml0eV9feXQtdmlkZW9ze2Rpc3BsYXk6Z3JpZDtnYXA6MzJweDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDAsMWZyKX1AbWVkaWEgKG1pbi13aWR0aDo3NjBweCl7LmNvbW11bml0eV9feXQtdmlkZW9ze2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMixtaW5tYXgoMCwxZnIpKX19QG1lZGlhIChtaW4td2lkdGg6MTI0MHB4KXsuY29tbXVuaXR5X195dC12aWRlb3N7Z2FwOjY0cHh9fS5jb21tdW5pdHlfX3l0LXZpZGVvcyBpZnJhbWV7YXNwZWN0LXJhdGlvOjE2Lzl9LmNvbW11bml0eV9faWNvbntmaWxsOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xKTtoZWlnaHQ6NDhweDttYXJnaW4tYm90dG9tOjMycHg7d2lkdGg6NDhweH0uY29tbXVuaXR5IGlmcmFtZXt3aWR0aDoxMDAlfUBrZXlmcmFtZXMgc29jLXByb29mLWFuaW1hdGlvbnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX0uc29jLXByb29mLWNvbnRhaW5lcntib3R0b206MDtsZWZ0OjA7cGFkZGluZzoxNHB4O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDp2YXIoLS16LW5vdGlmaWNhdGlvbil9QG1lZGlhIChtaW4td2lkdGg6NzYwcHgpey5zb2MtcHJvb2YtY29udGFpbmVye3BhZGRpbmc6MzJweH19LnNvYy1wcm9vZnthbGlnbi1pdGVtczpjZW50ZXI7YW5pbWF0aW9uOnNvYy1wcm9vZi1hbmltYXRpb24gLjVzIGVhc2U7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzEpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1tZCk7ZGlzcGxheTpmbGV4O2dhcDo4cHg7cGFkZGluZzoxNnB4O3BvaW50ZXItZXZlbnRzOmFsbDt3aWR0aDoyNjBweH0uc29jLXByb29mLmVhcm5lZF9uZW9zX3Jld2FyZCBtYXJrLC5zb2MtcHJvb2YubGVmdF9hX2NvbW1lbnQgbWFyaywuc29jLXByb29mLmxpa2VkX2FfY29tbWVudCBtYXJrLC5zb2MtcHJvb2YubWFkZV9hX3ZpZGVvX3JldmlldyBtYXJre2NvbG9yOnJnYih2YXIoLS1jb2xvci1wcmltYXJ5KS8xKX0uc29jLXByb29mLmpvaW5lZF9yZWRfcGlsbF9wcm8gbWFya3tjb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFuZ2VyKS8xKX0uc29jLXByb29mLnN0YWtlZF9uZW9zIG1hcmt7Y29sb3I6cmdiKHZhcigtLWNvbG9yLXNlY29uZGFyeSkvMSl9LnNvYy1wcm9vZi5zdGFrZWRfYml0Y29pbiBtYXJre2NvbG9yOiNmNzkzMWF9LnNvYy1wcm9vZi5zdGFrZWRfbGl0ZWNvaW4gbWFya3tjb2xvcjojMzQ1ZDlkfS5zb2MtcHJvb2ZfX2F2YXRhci1jb250YWluZXJ7ZmxleC1zaHJpbms6MDtwb3NpdGlvbjpyZWxhdGl2ZX0uc29jLXByb29mX19hdmF0YXItY29udGFpbmVyOmFmdGVye2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXNlY29uZGFyeSkvMSk7Ym9yZGVyLXJhZGl1czoxMDAlO2JvdHRvbTotMnB4O2NvbnRlbnQ6IiI7aGVpZ2h0OjhweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMnB4O3dpZHRoOjhweH0uc29jLXByb29mX19hdmF0YXJ7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2hlaWdodDozMnB4O3dpZHRoOjMycHh9LnNvYy1wcm9vZl9fYnV0dG9ue2ZsZXgtc2hyaW5rOjA7cG9pbnRlci1ldmVudHM6bm9uZX0uc29jLXByb29mX19ib2R5e21pbi13aWR0aDowO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMnB4fS5zb2MtcHJvb2ZfX3R5cGVuYW1lLC5zb2MtcHJvb2ZfX3VzZXJuYW1le21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uc29jLXByb29mX190eXBlbmFtZXtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFyaykvMSl9LmJmcmlkYXl7YmFja2dyb3VuZDp1cmwoLi4vaW1nL2JnLW1hdHJpeC1ibnIucG5nKSBuby1yZXBlYXQgNTAlIDA7YmFja2dyb3VuZC1jb2xvcjojMWExYTFhO2JhY2tncm91bmQtc2l6ZTpjb3Zlcjtjb2xvcjpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzEpfS5iZnJpZGF5X19jb250ZW50LC5iZnJpZGF5X190ZXh0e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uYmZyaWRheV9fdGV4dHtmbGV4LWdyb3c6MTttaW4taGVpZ2h0OjYwcHh9QG1lZGlhIChtYXgtd2lkdGg6NzU5cHgpey5iZnJpZGF5X190ZXh0e3BhZGRpbmc6MTZweCAwfX1AbWVkaWEgKG1pbi13aWR0aDo3NjBweCl7LmJmcmlkYXlfX3RleHR7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfX0uYmZyaWRheV9fdGV4dCBpbWd7ZGlzcGxheTppbmxpbmU7ZmxleC1zaHJpbms6MTttaW4td2lkdGg6MH1AbWVkaWEgKG1heC13aWR0aDo3NTlweCl7LmJmcmlkYXlfX3RleHQgaW1ne2Rpc3BsYXk6bm9uZX19LmJmcmlkYXlfX2Nsb3Nle2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tbGVmdDphdXRvO3BhZGRpbmctbGVmdDoxNnB4fS5wb2ludGVyLWV2ZW50cy1ub25le3BvaW50ZXItZXZlbnRzOm5vbmV9LnZpc2libGV7dmlzaWJpbGl0eTp2aXNpYmxlfS5zdGF0aWN7cG9zaXRpb246c3RhdGljfS5hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZX0ucmVsYXRpdmV7cG9zaXRpb246cmVsYXRpdmV9LnRvcC1cWzBcLjE1ZW1cXXt0b3A6LjE1ZW19LnJpZ2h0LTB7cmlnaHQ6MH0uYm90dG9tLTB7Ym90dG9tOjB9LmxlZnQtMVwvMntsZWZ0OjUwJX0ubGVmdC0we2xlZnQ6MH0udG9wLTB7dG9wOjB9LnRvcC0zMnt0b3A6MzJweH0uYm90dG9tLTMye2JvdHRvbTozMnB4fS56LXBhZ2V7ei1pbmRleDp2YXIoLS16LXBhZ2UpfS5teS00MHttYXJnaW4tYm90dG9tOjQwcHg7bWFyZ2luLXRvcDo0MHB4fS5teC1hdXRve21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG99Lm14LTI0e21hcmdpbi1sZWZ0OjI0cHg7bWFyZ2luLXJpZ2h0OjI0cHh9Lm15LTI0e21hcmdpbi1ib3R0b206MjRweDttYXJnaW4tdG9wOjI0cHh9Lm15LTMye21hcmdpbi1ib3R0b206MzJweDttYXJnaW4tdG9wOjMycHh9Lm15LTE2e21hcmdpbi1ib3R0b206MTZweDttYXJnaW4tdG9wOjE2cHh9Lm15LWF1dG97bWFyZ2luLWJvdHRvbTphdXRvO21hcmdpbi10b3A6YXV0b30ubXktNTZ7bWFyZ2luLWJvdHRvbTo1NnB4O21hcmdpbi10b3A6NTZweH0ubWItMjR7bWFyZ2luLWJvdHRvbToyNHB4fS5tci0yNHttYXJnaW4tcmlnaHQ6MjRweH0ubWItMTJ7bWFyZ2luLWJvdHRvbToxMnB4fS5tci0xNnttYXJnaW4tcmlnaHQ6MTZweH0ubWItMTZ7bWFyZ2luLWJvdHRvbToxNnB4fS5tYi0zMnttYXJnaW4tYm90dG9tOjMycHh9Lm1iLTQ4e21hcmdpbi1ib3R0b206NDhweH0ubXQtOHttYXJnaW4tdG9wOjhweH0ubWItNDB7bWFyZ2luLWJvdHRvbTo0MHB4fS5tYi02NHttYXJnaW4tYm90dG9tOjY0cHh9Lm10LTMye21hcmdpbi10b3A6MzJweH0ubXQtNDB7bWFyZ2luLXRvcDo0MHB4fS4tbWwtXFsyM1wlXF17bWFyZ2luLWxlZnQ6LTIzJX0ubWItOHttYXJnaW4tYm90dG9tOjhweH0ubXQtNDh7bWFyZ2luLXRvcDo0OHB4fS5tYi04MHttYXJnaW4tYm90dG9tOjgwcHh9Lm1iLTU2e21hcmdpbi1ib3R0b206NTZweH0ubWItXFsxMHB4XF17bWFyZ2luLWJvdHRvbToxMHB4fS5tYi00e21hcmdpbi1ib3R0b206NHB4fS5tdC0yNHttYXJnaW4tdG9wOjI0cHh9Li1tYi0zMnttYXJnaW4tYm90dG9tOi0zMnB4fS5tdC0xNnttYXJnaW4tdG9wOjE2cHh9Lm1sLTMye21hcmdpbi1sZWZ0OjMycHh9Lm1iLTExMnttYXJnaW4tYm90dG9tOjExMnB4fS5tbC1hdXRve21hcmdpbi1sZWZ0OmF1dG99Lm10LTY0e21hcmdpbi10b3A6NjRweH0ubWwtOHttYXJnaW4tbGVmdDo4cHh9LmJsb2Nre2Rpc3BsYXk6YmxvY2t9LmlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9ja30uZmxleHtkaXNwbGF5OmZsZXh9LmdyaWR7ZGlzcGxheTpncmlkfS5pbmxpbmUtZ3JpZHtkaXNwbGF5OmlubGluZS1ncmlkfS5oaWRkZW57ZGlzcGxheTpub25lfS5oLVxbMjg4cHhcXXtoZWlnaHQ6Mjg4cHh9LmgtOTZ7aGVpZ2h0Ojk2cHh9LmgtZnVsbHtoZWlnaHQ6MTAwJX0uaC1cWzQwMHB4XF17aGVpZ2h0OjQwMHB4fS5cIWgtXFsxMjhweFxde2hlaWdodDoxMjhweCFpbXBvcnRhbnR9LnctXFsyMDBweFxde3dpZHRoOjIwMHB4fS53LW1heHt3aWR0aDotbW96LW1heC1jb250ZW50O3dpZHRoOm1heC1jb250ZW50fS53LVxbMTE0MHB4XF17d2lkdGg6MTE0MHB4fS53LWZ1bGx7d2lkdGg6MTAwJX0udy05Nnt3aWR0aDo5NnB4fS53LVxbMjEwcHhcXXt3aWR0aDoyMTBweH0udy1maXR7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudH0udy1cWzI4MHB4XF17d2lkdGg6MjgwcHh9LnctXFs3MzZweFxde3dpZHRoOjczNnB4fS5taW4tdy1cWzIyMHB4XF17bWluLXdpZHRoOjIyMHB4fS5taW4tdy1cWzI2MHB4XF17bWluLXdpZHRoOjI2MHB4fS5taW4tdy1cWzI0MHB4XF17bWluLXdpZHRoOjI0MHB4fS5taW4tdy1cWzI4MHB4XF17bWluLXdpZHRoOjI4MHB4fS5taW4tdy1cWzIwMHB4XF17bWluLXdpZHRoOjIwMHB4fS5taW4tdy1cWzMyMHB4XF17bWluLXdpZHRoOjMyMHB4fS5taW4tdy1cWzMwNHB4XF17bWluLXdpZHRoOjMwNHB4fS5taW4tdy1cWzI5NnB4XF17bWluLXdpZHRoOjI5NnB4fS5tYXgtdy1cWzExNjBweFxde21heC13aWR0aDoxMTYwcHh9Lm1heC13LVxbNTgwcHhcXXttYXgtd2lkdGg6NTgwcHh9Lm1heC13LVxbOTAwcHhcXXttYXgtd2lkdGg6OTAwcHh9Lm1heC13LVxbMTAwMHB4XF17bWF4LXdpZHRoOjEwMDBweH0ubWF4LXctXFsxMjgwcHhcXXttYXgtd2lkdGg6MTI4MHB4fS5tYXgtdy1cWzUxMnB4XF17bWF4LXdpZHRoOjUxMnB4fS5tYXgtdy1cWzYwXCVcXXttYXgtd2lkdGg6NjAlfS5tYXgtdy1cWzcwXCVcXXttYXgtd2lkdGg6NzAlfS5tYXgtdy1cWzEyMDBweFxde21heC13aWR0aDoxMjAwcHh9Lm1heC13LVxbNTUwcHhcXXttYXgtd2lkdGg6NTUwcHh9Lm1heC13LVxbMzJjaFxde21heC13aWR0aDozMmNofS5tYXgtdy1cWzExODBweFxde21heC13aWR0aDoxMTgwcHh9Lm1heC13LVxbMTA4MHB4XF17bWF4LXdpZHRoOjEwODBweH0ubWF4LXctXFsxMTAwcHhcXXttYXgtd2lkdGg6MTEwMHB4fS5tYXgtdy1cWzI4Y2hcXXttYXgtd2lkdGg6MjhjaH0ubWF4LXctXFs4ODBweFxde21heC13aWR0aDo4ODBweH0ubWF4LXctXFs0ODBweFxde21heC13aWR0aDo0ODBweH0ubWF4LXctXFs3NzBweFxde21heC13aWR0aDo3NzBweH0ubWF4LXctXFs2MDBweFxde21heC13aWR0aDo2MDBweH0ubWF4LXctXFs4NDBweFxde21heC13aWR0aDo4NDBweH0ubWF4LXctXFs5ODBweFxde21heC13aWR0aDo5ODBweH0ubWF4LXctXFs0MDBweFxde21heC13aWR0aDo0MDBweH0ubWF4LXctXFs2NDBweFxde21heC13aWR0aDo2NDBweH0ubWF4LXctXFs5MjBweFxde21heC13aWR0aDo5MjBweH0ubWF4LXctXFs4NjBweFxde21heC13aWR0aDo4NjBweH0ubWF4LXctXFsxMTQwcHhcXXttYXgtd2lkdGg6MTE0MHB4fS5tYXgtdy1cWzEyNDBweFxde21heC13aWR0aDoxMjQwcHh9Lm1heC13LVxbMzBjaFxde21heC13aWR0aDozMGNofS5tYXgtdy1cWzEwNjBweFxde21heC13aWR0aDoxMDYwcHh9Lm1heC13LVxbODUycHhcXXttYXgtd2lkdGg6ODUycHh9Lm1heC13LVxbMTA0MHB4XF17bWF4LXdpZHRoOjEwNDBweH0ubWF4LXctZnVsbHttYXgtd2lkdGg6MTAwJX0ubWF4LXctXFs1MjBweFxde21heC13aWR0aDo1MjBweH0uZmxleC0xe2ZsZXg6MSAxIDAlfS5ncm93e2ZsZXgtZ3JvdzoxfS50cmFuc2xhdGUteS04ey0tdHctdHJhbnNsYXRlLXk6OHB4fS50cmFuc2xhdGUteS0xMiwudHJhbnNsYXRlLXktOHt0cmFuc2Zvcm06dHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSx2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSl9LnRyYW5zbGF0ZS15LTEyey0tdHctdHJhbnNsYXRlLXk6MTJweH0uZ3JpZC1jb2xzLTF7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgxLG1pbm1heCgwLDFmcikpfS5ncmlkLWNvbHMtMntncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsbWlubWF4KDAsMWZyKSl9LmZsZXgtY29se2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZmxleC13cmFwe2ZsZXgtd3JhcDp3cmFwfS5pdGVtcy1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS5qdXN0aWZ5LWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5qdXN0aWZ5LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59Lmp1c3RpZnktYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9Lmp1c3RpZnktaXRlbXMtY2VudGVye2p1c3RpZnktaXRlbXM6Y2VudGVyfS5nYXAtMjR7Z2FwOjI0cHh9LmdhcC0xNntnYXA6MTZweH0uZ2FwLTQwe2dhcDo0MHB4fS5nYXAtNDh7Z2FwOjQ4cHh9LmdhcC14LTY0ey1tb3otY29sdW1uLWdhcDo2NHB4O2NvbHVtbi1nYXA6NjRweH0uZ2FwLXktMjR7cm93LWdhcDoyNHB4fS5nYXAteC1cWzE4MHB4XF17LW1vei1jb2x1bW4tZ2FwOjE4MHB4O2NvbHVtbi1nYXA6MTgwcHh9LmdhcC15LTY0e3Jvdy1nYXA6NjRweH0uZ2FwLXgtMjR7LW1vei1jb2x1bW4tZ2FwOjI0cHg7Y29sdW1uLWdhcDoyNHB4fS5nYXAteS00e3Jvdy1nYXA6NHB4fS5nYXAteC00MHstbW96LWNvbHVtbi1nYXA6NDBweDtjb2x1bW4tZ2FwOjQwcHh9LmdhcC15LTQ4e3Jvdy1nYXA6NDhweH0uc3BhY2UteS00MD46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXR3LXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi1ib3R0b206Y2FsYyg0MHB4KnZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpO21hcmdpbi10b3A6Y2FsYyg0MHB4KigxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpfS5zcGFjZS15LTE2Pjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOjA7bWFyZ2luLWJvdHRvbTpjYWxjKDE2cHgqdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7bWFyZ2luLXRvcDpjYWxjKDE2cHgqKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSl9Lm92ZXJmbG93LWF1dG97b3ZlcmZsb3c6YXV0b30ub3ZlcmZsb3ctaGlkZGVue292ZXJmbG93OmhpZGRlbn0ud2hpdGVzcGFjZS1ub3dyYXB7d2hpdGUtc3BhY2U6bm93cmFwfS5yb3VuZGVkLW1ke2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKX0ucm91bmRlZC1cWzRweFxde2JvcmRlci1yYWRpdXM6NHB4fS5yb3VuZGVkLWZ1bGx7Ym9yZGVyLXJhZGl1czo5OTk5cHh9LnJvdW5kZWQtdC1tZHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKX0ucm91bmRlZC1iLW1ke2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpfS5ib3JkZXItXFsxcHhcXXtib3JkZXItd2lkdGg6MXB4fS5ib3JkZXItZGFzaGVke2JvcmRlci1zdHlsZTpkYXNoZWR9LmJvcmRlci1saWdodHstLXR3LWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYih2YXIoLS1jb2xvci1saWdodCkvdmFyKC0tdHctYm9yZGVyLW9wYWNpdHkpKX0uYmctbGlnaHR7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3ItbGlnaHQpL3ZhcigtLXR3LWJnLW9wYWNpdHkpKX0uYmctd2hpdGV7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IodmFyKC0tY29sb3Itd2hpdGUpL3ZhcigtLXR3LWJnLW9wYWNpdHkpKX0uYmctXFtcIzAxMDgwNFxdey0tdHctYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDEgOCA0L3ZhcigtLXR3LWJnLW9wYWNpdHkpKX0uYmctd2hpdGVcLzUwe2JhY2tncm91bmQtY29sb3I6cmdiKHZhcigtLWNvbG9yLXdoaXRlKS8uNSl9LmJnLVxbXCMwMDAxMDNcXXstLXR3LWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDEgMy92YXIoLS10dy1iZy1vcGFjaXR5KSl9LmJnLXNlY29uZGFyeXstLXR3LWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1zZWNvbmRhcnkpL3ZhcigtLXR3LWJnLW9wYWNpdHkpKX0uYmctXFtcIzFkNTA4M1xdey0tdHctYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI5IDgwIDEzMS92YXIoLS10dy1iZy1vcGFjaXR5KSl9LmJnLVxbXCMwMzAyMDhcXXstLXR3LWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigzIDIgOC92YXIoLS10dy1iZy1vcGFjaXR5KSl9LmJnLWRhbmdlcnstLXR3LWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYih2YXIoLS1jb2xvci1kYW5nZXIpL3ZhcigtLXR3LWJnLW9wYWNpdHkpKX0uYmctXFt1cmxcKFwnXC9pbWdcL2JnLWFib3V0XC5qcGdcJ1wpXF17YmFja2dyb3VuZC1pbWFnZTp1cmwoLi4vaW1nL2JnLWFib3V0LmpwZyl9LmJnLWdyYWRpZW50LXRvLXR7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gdG9wLHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSl9LmJnLVxbdXJsXChcJ1wvaW1nXC9iZy1tYXRyaXhcLnBuZ1wnXClcXXtiYWNrZ3JvdW5kLWltYWdlOnVybCguLi9pbWcvYmctbWF0cml4LnBuZyl9LmJnLVxbdXJsXChcL2ltZ1wvcmFuZ2UtYWN0aXZlLXByaW1hcnlcLnN2Z1wpXF17YmFja2dyb3VuZC1pbWFnZTp1cmwoLi4vaW1nL3JhbmdlLWFjdGl2ZS1wcmltYXJ5LnN2Zyl9LmJnLVxbdXJsXChcJ1wvaW1nXC9iZy1uZnRcLmpwZ1wnXClcXXtiYWNrZ3JvdW5kLWltYWdlOnVybCguLi9pbWcvYmctbmZ0LmpwZyl9LmJnLVxbdXJsXChcJ1wvaW1nXC9iZy1uZnQtbWF0cml4XC5qcGdcJ1wpXF17YmFja2dyb3VuZC1pbWFnZTp1cmwoLi4vaW1nL2JnLW5mdC1tYXRyaXguanBnKX0uYmctXFt1cmxcKFwnXC9pbWdcL2JnLXJld2FyZHNcLmpwZ1wnXClcXXtiYWNrZ3JvdW5kLWltYWdlOnVybCguLi9pbWcvYmctcmV3YXJkcy5qcGcpfS5iZy1cW3VybFwoXC9pbWdcL3JhbmdlLWFjdGl2ZVwuc3ZnXClcXXtiYWNrZ3JvdW5kLWltYWdlOnVybCguLi9pbWcvcmFuZ2UtYWN0aXZlLnN2Zyl9LmZyb20td2hpdGV7LS10dy1ncmFkaWVudC1mcm9tOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvMSk7LS10dy1ncmFkaWVudC10bzpyZ2IodmFyKC0tY29sb3Itd2hpdGUpLzApOy0tdHctZ3JhZGllbnQtc3RvcHM6dmFyKC0tdHctZ3JhZGllbnQtZnJvbSksdmFyKC0tdHctZ3JhZGllbnQtdG8pfS5iZy1jb3ZlcntiYWNrZ3JvdW5kLXNpemU6Y292ZXJ9LmJnLWNlbnRlcntiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJX0uYmctbGVmdC10b3B7YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9LmJnLVxbMzJcJV9jZW50ZXJcXXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjMyJX0uYmctbm8tcmVwZWF0e2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0ucC00MHtwYWRkaW5nOjQwcHh9LnB5LTgwe3BhZGRpbmctYm90dG9tOjgwcHg7cGFkZGluZy10b3A6ODBweH0ucHgtNHtwYWRkaW5nLWxlZnQ6NHB4O3BhZGRpbmctcmlnaHQ6NHB4fS5weC0zMntwYWRkaW5nLWxlZnQ6MzJweDtwYWRkaW5nLXJpZ2h0OjMycHh9LnB5LTI0e3BhZGRpbmctYm90dG9tOjI0cHg7cGFkZGluZy10b3A6MjRweH0ucHgtMjR7cGFkZGluZy1sZWZ0OjI0cHg7cGFkZGluZy1yaWdodDoyNHB4fS5wYi0xMntwYWRkaW5nLWJvdHRvbToxMnB4fS5cIXBiLVxbNDAwcHhcXXtwYWRkaW5nLWJvdHRvbTo0MDBweCFpbXBvcnRhbnR9LlwhcGItODB7cGFkZGluZy1ib3R0b206ODBweCFpbXBvcnRhbnR9LlwhcHQtNjR7cGFkZGluZy10b3A6NjRweCFpbXBvcnRhbnR9LlwhcGItNDh7cGFkZGluZy1ib3R0b206NDhweCFpbXBvcnRhbnR9LlwhcHQtMHtwYWRkaW5nLXRvcDowIWltcG9ydGFudH0uXCFwdC00MHtwYWRkaW5nLXRvcDo0MHB4IWltcG9ydGFudH0uXCFwYi0we3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50fS5cIXB0LTQ4e3BhZGRpbmctdG9wOjQ4cHghaW1wb3J0YW50fS50ZXh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0fS50ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcn0uZm9udC1ibGFja3tmb250LXdlaWdodDo5MDB9LnVwcGVyY2FzZXt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LnRyYWNraW5nLVxbMFwuODNlbVxde2xldHRlci1zcGFjaW5nOi44M2VtfS50cmFja2luZy1cWzVweFxde2xldHRlci1zcGFjaW5nOjVweH0udGV4dC1zZWNvbmRhcnl7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IodmFyKC0tY29sb3Itc2Vjb25kYXJ5KS92YXIoLS10dy10ZXh0LW9wYWNpdHkpKX0udGV4dC1cW1wjMDlmZjAwXF17LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoOSAyNTUgMC92YXIoLS10dy10ZXh0LW9wYWNpdHkpKX0udGV4dC1wcmltYXJ5ey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKHZhcigtLWNvbG9yLXByaW1hcnkpL3ZhcigtLXR3LXRleHQtb3BhY2l0eSkpfS50ZXh0LWRhcmt7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZGFyaykvdmFyKC0tdHctdGV4dC1vcGFjaXR5KSl9LnRleHQtZGFuZ2Vyey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKHZhcigtLWNvbG9yLWRhbmdlcikvdmFyKC0tdHctdGV4dC1vcGFjaXR5KSl9LnRleHQtZ3JheXstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYih2YXIoLS1jb2xvci1ncmF5KS92YXIoLS10dy10ZXh0LW9wYWNpdHkpKX0udGV4dC1ncmF5LWRhcmt7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IodmFyKC0tY29sb3ItZ3JheS1kYXJrKS92YXIoLS10dy10ZXh0LW9wYWNpdHkpKX0udGV4dC13aGl0ZXstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYih2YXIoLS1jb2xvci13aGl0ZSkvdmFyKC0tdHctdGV4dC1vcGFjaXR5KSl9Lm9wYWNpdHktNTB7b3BhY2l0eTouNX0ub3BhY2l0eS04MHtvcGFjaXR5Oi44fS5zaGFkb3ctZ2xvdy1kYW5nZXItbG93ey0tdHctc2hhZG93OnZhcigtLWdsb3ctZGFuZ2VyLWxvdyk7LS10dy1zaGFkb3ctY29sb3JlZDp2YXIoLS1nbG93LWRhbmdlci1sb3cpO2JveC1zaGFkb3c6dmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LDAgMCAjMDAwMCksdmFyKC0tdHctcmluZy1zaGFkb3csMCAwICMwMDAwKSx2YXIoLS10dy1zaGFkb3cpfS5ibHVyey0tdHctYmx1cjpibHVyKDhweCl9LmJsdXIsLmZpbHRlcntmaWx0ZXI6dmFyKC0tdHctYmx1cikgdmFyKC0tdHctYnJpZ2h0bmVzcykgdmFyKC0tdHctY29udHJhc3QpIHZhcigtLXR3LWdyYXlzY2FsZSkgdmFyKC0tdHctaHVlLXJvdGF0ZSkgdmFyKC0tdHctaW52ZXJ0KSB2YXIoLS10dy1zYXR1cmF0ZSkgdmFyKC0tdHctc2VwaWEpIHZhcigtLXR3LWRyb3Atc2hhZG93KX1AbWVkaWEgKG1heC13aWR0aDo1NzZweCl7OnJvb3R7LS1mb250LXNpemUtaGVybzo2NHB4Oy0tZm9udC1zaXplLWgxOjQycHg7LS1mb250LXNpemUtaDI6MzJweDstLWZvbnQtc2l6ZS1oMzoyNHB4Oy0tZm9udC1zaXplLWg0OjE4cHg7LS1mb250LXNpemUtaDU6MTZweH0uc2VjdGlvbi0teHN7cGFkZGluZzo0MHB4IDB9LnNlY3Rpb24tLXNte3BhZGRpbmc6NDhweCAwfS5zZWN0aW9uLS1tZHtwYWRkaW5nOjY0cHggMH0uc2VjdGlvbi0tbGd7cGFkZGluZzo4MHB4IDB9LmZvb3RlcntwYWRkaW5nOjQ4cHggMH0udG9rZW4tY291bnRlcl9faXRlbXtwYWRkaW5nOjAgMTBweCAwIDE0cHh9LnRva2VuLWNvdW50ZXJfX2RpZ2l0e2ZvbnQtc2l6ZTo0MHB4fS50b2tlbi1hbm5vdW5jZW1lbnR7cGFkZGluZy1ib3R0b206NjRweDtwYWRkaW5nLXRvcDo5MHB4fS5vcGluaW9uc19fc3Rvcmllcy1jb250YWluZXJ7aGVpZ2h0OjY0MHB4fS5ibG9nLWNhcmQtLXdpZGUgLmJsb2ctY2FyZF9fYm9keXtwYWRkaW5nOjI0cHh9fUBtZWRpYSAobWluLXdpZHRoOjE0NDBweCl7OnJvb3R7LS1mb250LXNpemUtaGVybzoxMjhweDstLWZvbnQtc2l6ZS1oMTo4MHB4Oy0tZm9udC1zaXplLWgyOjQwcHg7LS1mb250LXNpemUtaDM6MzJweDstLWZvbnQtc2l6ZS1oNDoyNHB4Oy0tZm9udC1zaXplLWg1OjE4cHh9LnNlY3Rpb24tLXhze3BhZGRpbmc6ODBweCAwfS5zZWN0aW9uLS1zbXtwYWRkaW5nOjk2cHggMH0uc2VjdGlvbi0tbWR7cGFkZGluZzoxMjBweCAwfS5zZWN0aW9uLS1sZ3twYWRkaW5nOjE2MHB4IDB9LmZvb3RlcntwYWRkaW5nOjk2cHggMH0udG9rZW4tY291bnRlcl9faXRlbXtwYWRkaW5nOjAgMzZweCAwIDQwcHh9LnRva2VuLWNvdW50ZXJfX2RpZ2l0e2ZvbnQtc2l6ZToxMDRweH0udG9rZW4tYW5ub3VuY2VtZW50e3BhZGRpbmctYm90dG9tOjk2cHg7cGFkZGluZy10b3A6MTk2cHh9Lm9waW5pb25zX19zdG9yaWVzLWNvbnRhaW5lcntoZWlnaHQ6OTIwcHh9LmJsb2ctY2FyZC0td2lkZSAuYmxvZy1jYXJkX19ib2R5e3BhZGRpbmc6MzJweCA0MHB4fX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LnhzXDpjb2wtc3Bhbi0ye2dyaWQtY29sdW1uOnNwYW4gMi9zcGFuIDJ9LnhzXDpncmlkLWNvbHMtMntncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsbWlubWF4KDAsMWZyKSl9LnhzXDpiZy1cW3VybFwoXCdcL2ltZ1wvYmctZWNvc3lzdGVtXC5qcGdcJ1wpXF17YmFja2dyb3VuZC1pbWFnZTp1cmwoLi4vaW1nL2JnLWVjb3N5c3RlbS5qcGcpfS54c1w6YmctXFt1cmxcKFwnXC9pbWdcL2JnLWxldmVsc1wuanBnXCdcKVxde2JhY2tncm91bmQtaW1hZ2U6dXJsKC4uL2ltZy9iZy1sZXZlbHMuanBnKX0ueHNcOmJnLVxbdXJsXChcJ1wvaW1nXC9iZy1saXF1aWRpdHlcLmpwZ1wnXClcXXtiYWNrZ3JvdW5kLWltYWdlOnVybCguLi9pbWcvYmctbGlxdWlkaXR5LmpwZyl9LnhzXDpiZy1jZW50ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCV9fUBtZWRpYSAobWluLXdpZHRoOjc2MHB4KXsuc21cOm9yZGVyLWxhc3R7b3JkZXI6OTk5OX0uc21cOmNvbC1zcGFuLTJ7Z3JpZC1jb2x1bW46c3BhbiAyL3NwYW4gMn0uc21cOmNvbC1zdGFydC0xe2dyaWQtY29sdW1uLXN0YXJ0OjF9LnNtXDpyb3ctc3RhcnQtMXtncmlkLXJvdy1zdGFydDoxfS5zbVw6bXktNjR7bWFyZ2luLWJvdHRvbTo2NHB4O21hcmdpbi10b3A6NjRweH0uc21cOi1tbC00MHttYXJnaW4tbGVmdDotNDBweH0uc21cOi1tYi1cWzE1XCVcXXttYXJnaW4tYm90dG9tOi0xNSV9LnNtXDptYi05NnttYXJnaW4tYm90dG9tOjk2cHh9LnNtXDptYi0xMjh7bWFyZ2luLWJvdHRvbToxMjhweH0uc21cOm1iLTgwe21hcmdpbi1ib3R0b206ODBweH0uc21cOm10LTgwe21hcmdpbi10b3A6ODBweH0uc21cOm1iLTY0e21hcmdpbi1ib3R0b206NjRweH0uc21cOm1iLTQwe21hcmdpbi1ib3R0b206NDBweH0uc21cOi1tdC0zMnttYXJnaW4tdG9wOi0zMnB4fS5zbVw6aGlkZGVue2Rpc3BsYXk6bm9uZX0uc21cOmgtMTkye2hlaWdodDoxOTJweH0uc21cOnctMTkye3dpZHRoOjE5MnB4fS5zbVw6bWF4LXctXFsyMGNoXF17bWF4LXdpZHRoOjIwY2h9LnNtXDptYXgtdy1cWzEyY2hcXXttYXgtd2lkdGg6MTJjaH0uc21cOm1heC13LVxbMjVjaFxde21heC13aWR0aDoyNWNofS5zbVw6bWF4LXctXFs1MTBweFxde21heC13aWR0aDo1MTBweH0uc21cOm1heC13LVxbMzRjaFxde21heC13aWR0aDozNGNofS5zbVw6bWF4LXctXFsxMGNoXF17bWF4LXdpZHRoOjEwY2h9LnNtXDptYXgtdy1cWzI5Y2hcXXttYXgtd2lkdGg6MjljaH0uc21cOm1heC13LVxbNjgwcHhcXXttYXgtd2lkdGg6NjgwcHh9LnNtXDptYXgtdy1cWzUwMHB4XF17bWF4LXdpZHRoOjUwMHB4fS5zbVw6bWF4LXctXFsyNmNoXF17bWF4LXdpZHRoOjI2Y2h9LnNtXDptYXgtdy1cWzE1Y2hcXXttYXgtd2lkdGg6MTVjaH0uc21cOm1heC13LVxbNTgwcHhcXXttYXgtd2lkdGg6NTgwcHh9LnNtXDptYXgtdy1cWzQ2MHB4XF17bWF4LXdpZHRoOjQ2MHB4fS5zbVw6Z3JpZC1jb2xzLTJ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpfS5zbVw6Z3JpZC1jb2xzLVxbcmVwZWF0XCgyXDJjIF9taW4tY29udGVudFwpXF17Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbi1jb250ZW50KX0uc21cOmdyaWQtY29scy0ze2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMyxtaW5tYXgoMCwxZnIpKX0uc21cOmdyaWQtY29scy1cWzlmclwyYyBfOGZyXF17Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjlmciA4ZnJ9LnNtXDpncmlkLWNvbHMtXFszMjBweF9taW5tYXhcKDBcMmMgXzFmclwpXF17Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjMyMHB4IG1pbm1heCgwLDFmcil9LnNtXDpncmlkLWNvbHMtXFsxZnJcMmMgXzFmclxde2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyfS5zbVw6Z3JpZC1jb2xzLVxbOGZyXDJjIF8xMGZyXF17Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjhmciAxMGZyfS5zbVw6Z3JpZC1jb2xzLTR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LG1pbm1heCgwLDFmcikpfS5zbVw6Z3JpZC1jb2xzLVxbOGZyXDJjIF85ZnJcXXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6OGZyIDlmcn0uc21cOmp1c3RpZnktYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uc21cOmdhcC15LVxbODBweFxde3Jvdy1nYXA6ODBweH0uc21cOnB5LVxbMjFweFxde3BhZGRpbmctYm90dG9tOjIxcHg7cGFkZGluZy10b3A6MjFweH0uc21cOnB4LTE2e3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6MTZweH0uc21cOnRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsubWRcOmNvbC1zcGFuLTN7Z3JpZC1jb2x1bW46c3BhbiAzL3NwYW4gM30ubWRcOm1yLTQwe21hcmdpbi1yaWdodDo0MHB4fS5tZFw6ZmxleHtkaXNwbGF5OmZsZXh9Lm1kXDpncmlkLWNvbHMtM3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsbWlubWF4KDAsMWZyKSl9Lm1kXDpncmlkLWNvbHMtMXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDEsbWlubWF4KDAsMWZyKSl9Lm1kXDpncmlkLWNvbHMtXFsxZnJfMzIwcHhcXXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDMyMHB4fS5tZFw6Z3JpZC1jb2xzLTJ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpfS5tZFw6aXRlbXMtY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlcn0ubWRcOmdhcC00MHtnYXA6NDBweH0ubWRcOmdhcC04MHtnYXA6ODBweH0ubWRcOmdhcC14LTQwey1tb3otY29sdW1uLWdhcDo0MHB4O2NvbHVtbi1nYXA6NDBweH19QG1lZGlhIChtaW4td2lkdGg6MTI0MHB4KXsubGdcOi1tbC0xOTZ7bWFyZ2luLWxlZnQ6LTE5NnB4fS5sZ1w6bWItNDB7bWFyZ2luLWJvdHRvbTo0MHB4fS5sZ1w6Z3JpZC1jb2xzLVxbMlwuODVmclwyYyBfOVwuMTVmclxde2dyaWQtdGVtcGxhdGUtY29sdW1uczoyLjg1ZnIgOS4xNWZyfS5sZ1w6Z2FwLTQwe2dhcDo0MHB4fS5sZ1w6Z2FwLXgtNDB7LW1vei1jb2x1bW4tZ2FwOjQwcHg7Y29sdW1uLWdhcDo0MHB4fS5sZ1w6cGwtODB7cGFkZGluZy1sZWZ0OjgwcHh9fUBtZWRpYSAobWluLXdpZHRoOjE0NDBweCl7LnhsXDptbC0xMjB7bWFyZ2luLWxlZnQ6MTIwcHh9LnhsXDpncmlkLWNvbHMtNHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsbWlubWF4KDAsMWZyKSl9LnhsXDpnYXAtNDB7Z2FwOjQwcHh9LnhsXDpwbC04MHtwYWRkaW5nLWxlZnQ6ODBweH19QG1lZGlhIChtYXgtd2lkdGg6NTc1cHgpey51bnRpbC14c1w6XCFoLVxbMTI4cHhcXXtoZWlnaHQ6MTI4cHghaW1wb3J0YW50fX1AbWVkaWEgKG1heC13aWR0aDo3NTlweCl7LnVudGlsLXNtXDpteC1hdXRve21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG99LnVudGlsLXNtXDpoaWRkZW57ZGlzcGxheTpub25lfS51bnRpbC1zbVw6bWF4LXctXFs4MFwlXF17bWF4LXdpZHRoOjgwJX0udW50aWwtc21cOm1heC13LVxbNzBcJVxde21heC13aWR0aDo3MCV9LnVudGlsLXNtXDpmbGV4LWNvbHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnVudGlsLXNtXDppdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfX1AbWVkaWEgKG1heC13aWR0aDo5OTFweCl7LnVudGlsLW1kXDptdC0yNHttYXJnaW4tdG9wOjI0cHh9LnVudGlsLW1kXDpmbGV4LWNvbHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59fUBtZWRpYSAobWF4LXdpZHRoOjEyMzlweCl7LnVudGlsLWxnXDpoaWRkZW57ZGlzcGxheTpub25lfX1AbWVkaWEgKG1heC13aWR0aDoxNDM5cHgpey51bnRpbC14bFw6bXgtYXV0b3ttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfS51bnRpbC14bFw6bWF4LXctXFs2NjRweFxde21heC13aWR0aDo2NjRweH19"}},"time_used":120,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":98,"receive":22,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/mass-media/digital-journal.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.071Z","timestamp":1785121660071,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/mass-media/digital-journal.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:39 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 03 Oct 2023 13:16:00 GMT\r\naccept-ranges: bytes\r\ncontent-length: 4152\r\ndate: Mon, 27 Jul 2026 03:07:39 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":4152,"size_decoded":4417,"mime_type":"image/png","magic":"PNG image data, 200 x 88, 8-bit colormap, non-interlaced","md5":"aa97a68771a4068c1d9469e17b387001","sha1":"2f9eb2c2c5e6c55766955ebbb48e2128b6d3ffe0","sha256":"389fc39a9c0cd21e9aa8653a9eeb904f5aa4ab7126fe9961213b773079129d42","sha512":"06f176257d63c823f7528f3973975f637d260fef3da3155875276210b3f18234b49ac4cecc1a2a106c36080f046b9e519da19afb2aae530da82e49337bbaae2e","ssdeep":"96:DEXyNEjKeq/Ib5HzyvjgK7kQ0S+UavfOsPDNNXEE2B44g:D9/ItyrgK7h0S+dvmsrXEq","tlshash":"d7819e4bc37b494bfe722ba90fdac754e8bd24df4922684d5b3882fd1210a5b06d2155","first_seen":"2026-07-27T02:49:41.018158Z","last_seen":"2026-07-27T03:09:30.361245Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":385,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":383,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"7bridgecapital.com/img/calendar-365-days.png","fqdn":"7bridgecapital.com","domain":"7bridgecapital.com","tld":"com"},"ip":{"addr":"157.250.205.210","port":443,"asn":0,"as":"","country":"Japan","country_code":"JP"},"is_navigation_request":false,"resource_type":"lazy-img","requested_by":"https://7bridgecapital.com/","date":"2026-07-27T03:07:40.244Z","timestamp":1785121660244,"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":"*.7bridgecapital.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 26 Jul 2026 16:05:11 GMT","end":"Sat, 24 Oct 2026 16:05:10 GMT"},"fingerprint":{"sha1":"BD:E8:84:02:AF:61:A1:58:84:61:E0:9F:8B:34:32:55:B5:B3:F4:72","sha256":"28:0E:EC:A7:43:0D:49:9C:CE:29:08:D7:8A:D7:4E:98:D9:35:B8:35:C3:9E:0C:00:84:4B:F2:56:AF:E9:B1:55"}}},"request":{"raw":"GET /img/calendar-365-days.png HTTP/1.1\r\nHost: 7bridgecapital.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://7bridgecapital.com/\r\nCookie: PHPSESSID=0309012af21666c6088ee48aa1461548\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 03:07:40 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 25 Mar 2025 18:35:48 GMT\r\naccept-ranges: bytes\r\ncontent-length: 33746\r\ndate: Mon, 27 Jul 2026 03:07:40 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":33746,"size_decoded":34012,"mime_type":"image/png","magic":"PNG image data, 361 x 384, 8-bit/color RGBA, non-interlaced","md5":"2776e66851b56a1abddce6607cf31aee","sha1":"e591315ece9013abe48504107d889a555a1ee640","sha256":"d4f66a41f3201b3e081df303b1a42f9ba2a691d15cf35fa0248cb718aaea1b71","sha512":"bda3b0d7a9e264d3934c28b26bd5dd44b0dc5090a720c2c371a235a4a2f29862c48fc109c54ab381b6fac1ac489caa63638b53a6e8571a2db90733cd90d2db3c","ssdeep":"768:Pgw8uAcopv2gcaAEmjk4Pzkj9tUGqoF6huyUZp7l+ygANjoqm:X1AlpcaAjvPIZtLh6hID7llgANNm","tlshash":"c8e2f2ddfe5191c70da02c4a26d4c58bda352ab49ffe3896f8c0d54a4ca45c4e01d4bf","first_seen":"2026-07-27T02:49:41.039402Z","last_seen":"2026-07-27T03:09:30.388914Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":431,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":390,"receive":41,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"7bridgecapital.com","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}}]}
